Commit Graph

80 Commits

Author SHA1 Message Date
David Kaufman
0335d06311 [CAM] make the adaptive model aware feature optional (#24553)
* [CAM] make the adaptive model aware feature optional

* fix CAM tests

* placate github codql

* remove model-aware-only properties from the adaptive task ui panel
2025-10-17 10:42:15 -05:00
ᴩʜᴏɴᴇᴅʀᴏɪᴅ
c727846508 CAM: Remove UTF-8 coding declarations (#24527)
These declarations are no longer needed for Python 3+.
2025-10-09 13:49:18 -05:00
sliptonic
6be30cfa63 Merge pull request #23856 from Connor9220/library-editor
CAM: Replace the main library editor dialog and add copy & paste & drag & drop support
2025-09-15 10:37:19 -05:00
sliptonic
420bd63f76 Ensure Qt5 compatibility with enums
Correct LGPL headers

rework bullnose  Fixes #19050
2025-09-12 15:24:16 -04:00
Billy
a7774a5100 CAM: Remove hardcoded style for Tool Number, Fix TestPathToolBitSerializer
Fix issue with toolshapes
Renamed fillet to radius
Added Tool Type Filter to library
Fix units so that they honor user preference
Remove the QToolBox widget from the Shape Selector page and combine into a single page.
Fix issue with PropertyBag so that CustomPropertyGroups as a string is converted to enum and enums are handled correctly.
Update TestPathPropertyBag test for enum changes.
Update TestPathToolBitListWidget
Update TestPathToolLibrarySerializer to match new LinuxCNC output
Fix LinuxCNC export too handle ALL tool types, use user preferences for units, and include all lcnc fields
2025-09-12 14:18:33 -04:00
sliptonic
03714bf60c Make default postprocessor empty string. (#23706)
* Make default postprocessor empty string.

Default post when creating a job is now not set.  This will cause the user to be prompted for a post instead
This PR also cleans up some unit tests to avoid loading from disk

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-09-11 16:07:38 -05:00
Samuel Abels
6150eac59f CAM: Add AssetManager.copy() and .deepcopy()
CAM: Add copy/paste support for the ToolBitBrowser

CAM: Move library dropdown and sort order combo to dedicated row to give them more space

CAM: Fix: PathAssetManagerTest failed

CAM: Add YamlSerializer

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

CAM: Fix CodeQL complaints

CAM: add LibraryProperties dialog

CAM: Replace the LibraryEditor

CAM: allow for editing tool number in the tool editor dialog

CAM: Remember last selected library and sort order in preferences

CAM: support natural sort order in tool and library lists

CAM: Fix CodeQL complaints

CAM: Fix: not all attributes included in YAML serialization

CAM: Fix: UTF8 chars not included in LinuxCNC export

Fix: tool library not displayed when loading it for the first time

CAM: Fix: custom shape class not found

CAM: Check dependencies on import for friendlier error messages

CAM: Open file dialogs in home by default

CAM: Show "All Tools" entry in library list in the library editor

CAM: fix: error on sorting tools with no tool number

CAM: Fix: traceback if library contained tool number as string

CAM: Fix: Linter errors in manager.py

CAM: Fix: separator between library and tool buttons

CAM: Add drag & drop support to the library editor

CAM: Fix numerous linter errors on the AssetManager

CAM: Show current library in library editor window title

CAM: Add dedicated icons for library add + remove

CAM: Support F2 key in library editor

CAM: library editor handles delete key when library list is in focus; focus search field by default

CAM: fix: tool list in dock initially not loading

CAM: Fix: library editor did not open from "all tools" list

CAM: Increase precision of parameters in tool summary to 3 digits

fix TestToolBitListWidget
2025-09-11 10:45:41 -05:00
David Kaufman
68d13987ca [CAM] Fix ramp dressup performance (#21944)
* [CAM] fix biggest performance problems in ramp dressup

key items:

- finding the index of the current edge with edeges.index(edge) was very
  expensive; fixed by tracking the index while looping

- checking which edges were rapids with edge equality was also
  expensive; fixed by keeping a list of indexes of rapid input edges,
and tagging output edges with whether or not they are rapids

* [CAM] comment out Path.Log.debug in hot segments of ramping code

Even when low level logs are supposed to be suppressed, Path.Log.debug
takes take invoking traceback.extract_stack. This time adds up if logs
are invoked in frequently run loops.

* Fix CAM test

* [CAM] reimplment ramp method 1 with faster code

* [CAM] reimplement ramp methods 2, 3, and helix

* [CAM] patch to make output match original

* [CAM] ramping full performance + functionality fix
2025-09-02 10:32:03 -05:00
Samuel Abels
59b73c08d3 CAM: Fix: rename vbit and threadmill back to v-bit and thread-mill to avoid backward compatibility issues 2025-06-30 22:59:14 +02:00
Samuel Abels
e23a01d8c6 CAM: Fix: Remove invalid normalization of shape name 2025-06-30 20:26:51 +02:00
Samuel Abels
7a614cb45a CAM: store tool quantities in user units, not metric 2025-06-29 11:52:07 +02:00
Samuel Abels
d19dcb2bcb CAM: Fix: custom shape attributes not showing in toolbit editor 2025-06-29 01:30:06 +02:00
sliptonic
441d3742cc Merge pull request #21961 from knipknap/tool-cleanups
CAM: Some cleanups (moving DetachedDocumentObject around)
2025-06-23 15:02:24 -05:00
LarryWoestman
f6842ebbf8 CAM: added command line arguments for finish label, (#21881)
output machine name, and post operation.
	With tests.
2025-06-23 10:45:19 -05:00
Samuel
4a52ab9f05 CAM: Show abbreviations next to properly labels in the toolbit editor (#21887) 2025-06-16 10:40:32 -05:00
Samuel Abels
2c39ba622a CAM: fix: broken import in tests 2025-06-12 18:17:21 +02:00
Samuel Abels
a07303025a CAM: move DetachedDocumentObject into a dedicated module for better reuse 2025-06-12 17:01:36 +02:00
Samuel
66022b4924 CAM: fix default asset directory (#21775) 2025-06-05 08:20:19 -05:00
tarman3
af88760744 CAM: Vcarve - fix zStart 2025-06-02 22:53:37 +03:00
sliptonic
e6119c2ce5 Merge pull request #21425 from knipknap/btl
CAM: Integration of the tool and shape editors from BTL (Better Tool Library)
2025-06-02 10:37:38 -05:00
sliptonic
d16dc38f26 Merge pull request #21563 from LarryWoestman/tests
CAM:  added command line arguments for line number start, increment
2025-06-02 10:07:22 -05:00
Samuel Abels
6be1fc9bf4 CAM: Handle import of unknown shape types gracefully; allow case insensitive filenames, and allow invalid tool ID data type 2025-05-29 19:50:51 +02:00
sliptonic
40ed30397c Merge pull request #21416 from jffmichi/custom_gcode_allow_empty_lines
CAM: allow empty lines in Custom operation
2025-05-29 09:47:32 -05:00
Samuel Abels
23536f0ff3 CAM: No need to copy defaultl shapes anymore, because the asset manager now dynamically fetches built-in shapes as a fallback 2025-05-27 16:04:10 +02:00
Samuel Abels
a2a5303df8 CAM: Improved handling of toolbit shape type inference 2025-05-27 12:07:19 +02:00
Samuel Abels
ff2a060d1e CAM: Improve LinuxCNC and Camotics serializer tests 2025-05-26 23:53:30 +02:00
pre-commit-ci[bot]
3be67e0286 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-05-26 17:17:07 +00:00
Samuel Abels
cf2d1ae480 CAM: AssetManager now supports passing mutilple stores to all get_*() methods 2025-05-26 17:40:03 +02:00
Samuel Abels
6d11221461 CAM: Rename getBuiltinToolPath to getBuiltinAssetPath 2025-05-26 17:34:49 +02:00
Lawrence Woestman
37f8176430 CAM: added command line arguments for line number start, increment
Also added command line arguments for listing tools in preamble
2025-05-24 18:43:11 -07:00
sliptonic
7d2c90bb31 Merge pull request #21437 from mosfet80/moveLibarea
Update clipper lib
2025-05-20 08:39:56 -05:00
jffmichi
60925d6ae5 CAM: add configuration value to suppress blank lines in refactored postprocessors 2025-05-20 02:37:00 +02:00
Lawrence Woestman
087d393449 CAM: added three command line arguments, with tests 2025-05-19 13:52:20 -07:00
Samuel Abels
f384656d87 CAM: Fix Gui test for ToolBitBrowserWidget 2025-05-19 21:02:54 +02:00
Samuel Abels
b14d8ff98e CAM: Replace complete tool management (PR 21425) 2025-05-19 20:27:28 +02:00
Andrea
d7516d24ed update clipper 2025-05-19 16:40:24 +02:00
jffmichi
972a4908b9 CAM: add test for refactored postprocessor using dressups 2025-05-07 04:58:07 +02:00
jffmichi
6539f90e92 CAM: respect SHOW_OPERATION_LABELS in post-operation information 2025-05-07 04:56:08 +02:00
sliptonic
2b50357b45 Merge pull request #20928 from LarryWoestman/refactor
CAM:  Fix tool changes not correctly output in gcode in the refactored code base
2025-05-06 10:47:47 -05:00
sliptonic
2302645ace Merge pull request #20591 from jalapenopuzzle/jalapenopuzzle/cam_snapmaker_machine_types
CAM: snapmaker improve support for different machine variants and toolheads
2025-05-05 10:47:07 -05:00
Lawrence Woestman
778102c890 CAM: Fix tool change output errors, with tests 2025-04-22 14:57:45 -07:00
sliptonic
6732480f4c Merge pull request #18880 from dbtayl/adaptive_roughing
[CAM] Adaptive roughing/overhang detection
2025-04-21 09:21:13 -05:00
jalapenopuzzle
6e190328a8 CAM: Snapmaker use manufacturer's data table instead of calculating boundary offsets 2025-04-14 08:03:17 +10:00
pre-commit-ci[bot]
8f7488479c [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-04-14 08:03:17 +10:00
jalapenopuzzle
89a0faf8ee CAM: snapmaker add --quick-swap and --bracing-kit options 2025-04-14 08:03:16 +10:00
jalapenopuzzle
e22eb3cce9 CAM: snapmaker clean output_header() 2025-04-14 08:03:16 +10:00
jalapenopuzzle
394046df36 CAM: snapmaker toolheads and spindle speeds
* Removed generic snapmaker machine and toolhead configuration. The idea of running a CNC code that is not matched to the machine's abilities and work area seems dangerous.
* --machine argument is required
* --toolhead argument is required when the selected machine is compatible with more than one toolhead. When the selected machine only supports one toolhead, it is selected as the default.
* --spindle-percent defaults according to the selected toolhead capabilities. If the toolhead can do RPM, then RPM is used, otherwise falls back to percent. This option now functions as an override.
* fixed a bug in convert_spindle() when RPM is selected. The gcode was not returned.
2025-04-14 08:03:14 +10:00
jalapenopuzzle
26c8aacc54 CAM: snapmaker --machine is a required option 2025-04-14 08:03:14 +10:00
jalapenopuzzle
f6e12966dc CAM: snapmaker machines separate T machines and capitalise names 2025-04-14 08:03:13 +10:00
jalapenopuzzle
cb5966371c CAM: snapmaker unit tests fix type lint
NOTE get_gcode() can return an argparse.Namespace if something goes wrong with parsing the arguments.
This is contrary to the str specification.
2025-04-14 08:03:11 +10:00