Merge pull request #241 from SpectralVectors/master

4.4 Updates and Fixes
pull/292/head
SpectralVectors 2025-03-28 11:54:59 -04:00 zatwierdzone przez GitHub
commit 74e9dc29f8
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: B5690EEEBB952194
330 zmienionych plików z 159 dodań i 66 usunięć

Wyświetl plik

@ -77,11 +77,11 @@ jobs:
export PATH=$PATH:${BLENDER_BIN_PATH}
fi
export ADDON_PATH=${PWD}/scripts/addons/blendercam.zip
cd scripts/addons/cam/tests
cd scripts/addons/fabex/tests
python install_addon.py ${ADDON_PATH}
python test_suite.py -vvv
- uses: actions/upload-artifact@v4
if: always()
with:
name: blendercam-${{matrix.os}}-${{matrix.blender_version}}
path: ./scripts/addons/cam
path: ./scripts/addons/fabex

Wyświetl plik

@ -28,7 +28,7 @@ jobs:
from pathlib import Path
import re
import os
v_file=Path("scripts","addons","cam","version.py")
v_file=Path("scripts","addons","fabex","version.py")
version_txt=v_file.read_text()
major,minor,patch = re.match(r".*\(\s*(\d+),(\s*\d+),(\s*\d+)\)",version_txt).groups()
major=int(major)
@ -48,7 +48,7 @@ jobs:
patch=0
v_file.write_text(f"__version__=({major},{minor},{patch})")
# update in bl_info structure (which can't be dynamic because blender...)
toml_file=Path("scripts","addons","cam","blender_manifest.toml")
toml_file=Path("scripts","addons","fabex","blender_manifest.toml")
toml_text=toml_file.read_text()
version_regex= r'version\s=\s"[0-9]+\.[0-9]+\.[0-9]+"'
toml_text = re.sub(version_regex,f'version = "{major}.{minor}.{patch}"',toml_text)
@ -80,4 +80,4 @@ jobs:
artifacts: "scripts/addons/fabexcnc.zip"
tag: ${{ env.VERSION_TAG }}
allowUpdates: true
body: "To install Fabexcnc extension for Blender, download fabexcnc.zip and *don't* extract it. In blender, go to preferences, Get Extensions, and select 'install from disk' and select the CNCCAM.zip file you downloaded"
body: "To install FabexCNC extension for Blender, download fabexcnc.zip and *don't* extract it. In Blender, go to Preferences, Get Extensions, and select 'Install from Disk' and select the CNCCAM.zip file you downloaded"

Wyświetl plik

@ -31,7 +31,7 @@ jobs:
- name: make the sphinx docs
run: |
make -C scripts/addons/docs clean
sphinx-apidoc -f -o scripts/addons/docs scripts/addons/cam
sphinx-apidoc -f -o scripts/addons/docs scripts/addons/fabex
make -C scripts/addons/docs html
- name: Init new repo in dist folder and commit generated files

Wyświetl plik

@ -3,16 +3,16 @@
import os
import sys
sys.path.insert(0, os.path.abspath("../cam/"))
sys.path.insert(0, os.path.abspath("../fabex/"))
# -- Project information -----------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
project = "Fabex"
copyright = "2024"
copyright = "2025"
author = "Vilem Novak, Alain Pelletier & Contributors"
release = "1.0.38"
release = "1.0.65"
# -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
@ -28,7 +28,7 @@ extensions = [
]
autoapi_type = "python"
autoapi_dirs = ["../cam"]
autoapi_dirs = ["../fabex"]
autoapi_ignore = [
"*post_processors*",
"*presets*",

Wyświetl plik

@ -1,4 +1,4 @@
cam package
fabex package
===========
Subpackages
@ -7,187 +7,187 @@ Subpackages
.. toctree::
:maxdepth: 4
cam.operators
cam.post_processors
cam.properties
cam.ui
cam.utilities
fabex.operators
fabex.post_processors
fabex.properties
fabex.ui
fabex.utilities
Submodules
----------
cam.bas\_relief module
fabex.bas\_relief module
--------------------
.. automodule:: cam.bas_relief
.. automodule:: fabex.bas_relief
:members:
:undoc-members:
:show-inheritance:
cam.bridges module
fabex.bridges module
------------------
.. automodule:: cam.bridges
.. automodule:: fabex.bridges
:members:
:undoc-members:
:show-inheritance:
cam.cam\_chunk module
fabex.fabex\_chunk module
---------------------
.. automodule:: cam.cam_chunk
.. automodule:: fabex.fabex_chunk
:members:
:undoc-members:
:show-inheritance:
cam.collision module
fabex.collision module
--------------------
.. automodule:: cam.collision
.. automodule:: fabex.collision
:members:
:undoc-members:
:show-inheritance:
cam.constants module
fabex.constants module
--------------------
.. automodule:: cam.constants
.. automodule:: fabex.constants
:members:
:undoc-members:
:show-inheritance:
cam.engine module
fabex.engine module
-----------------
.. automodule:: cam.engine
.. automodule:: fabex.engine
:members:
:undoc-members:
:show-inheritance:
cam.exception module
fabex.exception module
--------------------
.. automodule:: cam.exception
.. automodule:: fabex.exception
:members:
:undoc-members:
:show-inheritance:
cam.gcode\_import\_parser module
fabex.gcode\_import\_parser module
----------------------------
.. automodule:: cam.gcode_import_parser
.. automodule:: fabex.gcode_import_parser
:members:
:undoc-members:
:show-inheritance:
cam.gcode\_path module
fabex.gcode\_path module
--------------------
.. automodule:: cam.gcode_path
.. automodule:: fabex.gcode_path
:members:
:undoc-members:
:show-inheritance:
cam.involute\_gear module
fabex.involute\_gear module
-------------------------
.. automodule:: cam.involute_gear
.. automodule:: fabex.involute_gear
:members:
:undoc-members:
:show-inheritance:
cam.joinery module
fabex.joinery module
------------------
.. automodule:: cam.joinery
.. automodule:: fabex.joinery
:members:
:undoc-members:
:show-inheritance:
cam.pack module
fabex.pack module
---------------
.. automodule:: cam.pack
.. automodule:: fabex.pack
:members:
:undoc-members:
:show-inheritance:
cam.parametric module
fabex.parametric module
---------------------
.. automodule:: cam.parametric
.. automodule:: fabex.parametric
:members:
:undoc-members:
:show-inheritance:
cam.pattern module
fabex.pattern module
------------------
.. automodule:: cam.pattern
.. automodule:: fabex.pattern
:members:
:undoc-members:
:show-inheritance:
cam.preferences module
fabex.preferences module
----------------------
.. automodule:: cam.preferences
.. automodule:: fabex.preferences
:members:
:undoc-members:
:show-inheritance:
cam.puzzle\_joinery module
fabex.puzzle\_joinery module
--------------------------
.. automodule:: cam.puzzle_joinery
.. automodule:: fabex.puzzle_joinery
:members:
:undoc-members:
:show-inheritance:
cam.simulation module
fabex.simulation module
---------------------
.. automodule:: cam.simulation
.. automodule:: fabex.simulation
:members:
:undoc-members:
:show-inheritance:
cam.slice module
fabex.slice module
----------------
.. automodule:: cam.slice
.. automodule:: fabex.slice
:members:
:undoc-members:
:show-inheritance:
cam.strategy module
fabex.strategy module
-------------------
.. automodule:: cam.strategy
.. automodule:: fabex.strategy
:members:
:undoc-members:
:show-inheritance:
cam.testing module
fabex.testing module
------------------
.. automodule:: cam.testing
.. automodule:: fabex.testing
:members:
:undoc-members:
:show-inheritance:
cam.version module
fabex.version module
------------------
.. automodule:: cam.version
.. automodule:: fabex.version
:members:
:undoc-members:
:show-inheritance:
cam.voronoi module
fabex.voronoi module
------------------
.. automodule:: cam.voronoi
.. automodule:: fabex.voronoi
:members:
:undoc-members:
:show-inheritance:
@ -195,7 +195,7 @@ cam.voronoi module
Module contents
---------------
.. automodule:: cam
.. automodule:: fabex
:members:
:undoc-members:
:show-inheritance:

Wyświetl plik

@ -31,6 +31,9 @@ class FABEX_ENGINE(RenderEngine):
bl_label = "Fabex CNC/CAM"
bl_use_eevee_viewport = True
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
def get_panels():
"""Retrieve a list of panels for the Blender UI.

Wyświetl plik

@ -16,7 +16,7 @@ class AsyncCancelledException(Exception):
class AsyncOperatorMixin:
def __init__(self):
def __init__(self, *args, **kwargs):
self.timer = None
self.coroutine = None
self._is_cancelled = False

Wyświetl plik

@ -246,6 +246,11 @@ class CalculatePath(Operator, AsyncOperatorMixin):
bl_label = "Calculate CAM Paths"
bl_options = {"REGISTER", "UNDO", "BLOCKING"}
def __init__(self, *args, **kwargs):
Operator.__init__(self, *args, **kwargs)
AsyncOperatorMixin.__init__(self, *args, **kwargs)
super().__init__(*args, **kwargs)
@classmethod
def poll(cls, context):
"""Check if the current CAM operation is valid.
@ -346,6 +351,11 @@ class PathsChain(Operator, AsyncOperatorMixin):
bl_label = "Calculate CAM Paths in Current Chain and Export Chain G-code"
bl_options = {"REGISTER", "UNDO", "BLOCKING"}
def __init__(self, *args, **kwargs):
Operator.__init__(self, *args, **kwargs)
AsyncOperatorMixin.__init__(self, *args, **kwargs)
super().__init__(*args, **kwargs)
@classmethod
def poll(cls, context):
"""Check the validity of the active CAM chain in the given context.

Wyświetl plik

@ -41,6 +41,11 @@ class CAMSimulate(Operator, AsyncOperatorMixin):
default="Operation",
)
def __init__(self, *args, **kwargs):
Operator.__init__(self, *args, **kwargs)
AsyncOperatorMixin.__init__(self, *args, **kwargs)
super().__init__(*args, **kwargs)
async def execute_async(self, context):
"""Execute an asynchronous simulation operation based on the active CAM
operation.
@ -100,6 +105,11 @@ class CAMSimulateChain(Operator, AsyncOperatorMixin):
bl_label = "CAM Simulation"
bl_options = {"REGISTER", "UNDO", "BLOCKING"}
def __init__(self, *args, **kwargs):
Operator.__init__(self, *args, **kwargs)
AsyncOperatorMixin.__init__(self, *args, **kwargs)
super().__init__(*args, **kwargs)
@classmethod
def poll(cls, context):
"""Check the validity of the active CAM chain in the scene.

Some files were not shown because too many files have changed in this diff Show More