Commit Graph

368 Commits

Author SHA1 Message Date
ᴩʜᴏɴᴇᴅʀᴏɪᴅ
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
ᴩʜᴏɴᴇᴅʀᴏɪᴅ
ddfa7e6750 CAM: Updated SPDX License Identifiers (#24525) 2025-10-09 00:36:39 +00:00
sliptonic
53b97c0472 Merge pull request #24069 from tarman3/leadinout_fix2
CAM: LeadInOut - Fix SafeHeight
2025-10-06 10:58:21 -05:00
sliptonic
8bee7d3455 Merge pull request #24179 from tarman3/oldsim
CAM: Old simulator - Fix z for G2,G3
2025-10-06 10:45:42 -05:00
sliptonic
8906aa3634 Merge pull request #24392 from Connor9220/FixToolbitTopo
CAM: Fix Topo recomputation by only updating when values change in Toolbits
2025-10-03 12:20:10 -05:00
sliptonic
b7c6d8d165 Merge pull request #24323 from tarman3/leadinout_fix6
CAM: LeadInOut - Fix ZeroDivisionError for LineZ
2025-10-03 11:30:24 -05:00
sliptonic
035e331739 Merge pull request #24216 from tarman3/leadinout_threshold
CAM: LeadInOut - Fix RetractThreshold in Task panel
2025-10-03 11:28:59 -05:00
Billy Huddleston
f02b6f43ca CAM: Fix Topo recomputation by only updating when values change in Toolbits
- Use PathUtil.setProperty instead of direct setattr for schema properties to ensure proper FreeCAD notifications.
- Only update custom shape properties if the value has changed, reducing unnecessary recomputation.
- For SpindleDirection and Material, only update the property if the new value differs from the current value, and use PathUtil.setProperty for consistency.
- This prevents overwriting existing values with defaults and avoids triggering unwanted recomputation.
2025-10-02 18:56:53 -04:00
tarman3
57e953462d CAM: LeadInOut - Fix ZeroDivisionError for LineZ 2025-09-29 19:09:15 +03:00
sliptonic
61d0262dab Merge pull request #24046 from Connor9220/FixCAMSanityReport
CAM: Fix CAM Sanity Report
2025-09-29 11:09:06 -05:00
sliptonic
bb4e22709e Merge pull request #24148 from Connor9220/ConvertTappingOpToExperimental
CAM: Convert tapping operation to experimental feature, Add tap pitch / spindle speed, Fix toolbit schema bugs, update legacy linuxcnc post
2025-09-29 11:03:13 -05:00
Billy Huddleston
3d3eaef02e CAM: Convert tapping operation to experimental feature, Add tap pitch support, improve tapping logic, and update toolbit schema and legacy linuxcnc post
CAM/App/PathSegmentWalker.cpp
- Add G74 to drill/tap/bore G-code recognition for tapping cycles

CAM/InitGui.py
- Move CAM_Tapping command behind experimental feature flag
- Only group drilling/tapping commands if both are enabled

CAM/Path/Base/Generator/tapping.py
- Add pitch and spindle_speed parameters to tapping.generate
- Output S (spindle speed) and F (pitch) in generated G-code

CAM/Path/Op/Tapping.py
- Require Pitch property for tap tools and SpindleSpeed for tool controllers
- Pass pitch and spindle speed to tapping.generate
- Use SpindleDirection to determine right/left hand tap

CAM/Path/Post/scripts/linuxcnc_post.py
- Handle G84/G74 tapping cycles: convert pitch and spindle speed to feed rate
- Remove F and S from output and recalculate F as needed

CAM/Path/Tool/shape/models/tap.py
- Add Pitch property to ToolBitShapeTap schema
- CAM/Path/Tool/toolbit/models/tap.py
- Show pitch and rotation in tap tool summary
- Use is_imperial_pitch to format pitch as TPI or mm

CAM/Path/Tool/toolbit/util.py
- Add is_imperial_pitch utility to classify pitch as imperial or metric

CAM/Tools/Bit/375-16_Tap.fctb
- Remove unused parameters (Coating, Rotation, TPI, Type)
- Keep only relevant tap parameters for new schema
2025-09-25 16:26:03 -04:00
Billy Huddleston
81c968e247 CAM: Fix SpindleDirection and Material not updating from toolbit files; reduce log noise
- Change missing property log in shape/doc.py from warning to debug
- Ensure SpindleDirection property exists and is set, defaulting to "Forward"
- Ensure Material property exists and is set, defaulting to "HSS"
- Update SpindleDirection and Material from toolbit file parameters if provided
2025-09-25 13:21:57 -04:00
tarman3
11893c27ad CAM: LeadInOut - Fix RetractThreshold in Task panel 2025-09-25 11:37:39 +03:00
tarman3
75b73d5a9f CAM: Old simulator - Fix z for G2,G3 2025-09-24 00:34:52 +03:00
Pascal de Bruijn
f3a0261cd0 CAM: fix PocketShape OffsetPattern broken by #23649 2025-09-23 17:25:44 +02:00
sliptonic
3f323a91a8 Merge pull request #22336 from dbtayl/fix_22177
[CAM] Correctly process Adaptive extensions
2025-09-23 09:24:01 -05:00
sliptonic
0d09f28986 Merge pull request #23575 from tarman3/stock1mm
CAM: Fix stock create for flat objects
2025-09-23 09:22:30 -05:00
sliptonic
e21ca3a42c Merge pull request #24070 from tarman3/leadinout_fix3
CAM: LeadInOut - Remove useless var
2025-09-23 09:20:59 -05:00
sliptonic
793961685c Merge pull request #24138 from pmjdebruijn/cam-stepover
CAM: Pocket sensible default StepOver
2025-09-23 09:20:17 -05:00
Billy Huddleston
3100cfb791 CAM: Fix CAM Sanity Report
Fix base template substitution and improve tool/op formatting in sanity report, also update HTML/CSS and image handling.

- Major HTML/CSS refactor for CAM Sanity Report template:
  - Rewrote HTMLTemplate.py with modern, responsive CSS, semantic HTML, and accessibility improvements.
  - Added CSS reset, responsive image handling, and improved table/list styling.
  - Introduced .heading-container and .top-link for right-aligned "Top" navigation links on all major sections and tool headers (hidden in print).
  - Updated all section and tool headers to use new navigation and layout.
  - Cleaned up legacy markup, removed inline styles, and standardized variable substitution using string.Template syntax (${key}, ${val}).
  - Updated base_template in HTMLTemplate.py to use string.Template syntax (${key}, ${val}) instead of %{key}, %{val} for correct variable substitution.

- Enhanced image generation and embedding:
  - Updated ImageBuilder to support high-DPI (800x800) images and direct byte output for embedding.
  - All report images (base, stock, datum, tool) now use in-memory bytes for embedding when possible.
  - Tool images support a toggle for using toolbit thumbnails or fallback head-on renders.
  - ReportGenerator now embeds images as base64 when requested, with correct HTML tags.

- Improved squawk, tool, and operation data formatting:
  - Squawk dates now use localized string formatting.
  - Tool diameter and feedrate now use .UserString for better display.
  - Spindle speed now formatted as integer with "rpm" suffix.
  - Operation feed and speed values also use .UserString and "rpm" formatting.
  - Fixed _format_bases in ReportGenerator.py to iterate over base_data.items() and pass {"key": key, "val": val} to the template, ensuring all bases are listed correctly.
  - General code cleanup and improved maintainability throughout the CAM Sanity reporting stack.
2025-09-22 13:44:53 -04:00
Billy Huddleston
6a212382a7 CAM: Fix group dropdown showing individual letters by ensuring groups is a list
- Add type check in PropertyCreate to wrap CustomPropertyGroups as a list if not already
- Prevents dropdown from displaying each character of a string as a separate group option
2025-09-22 12:59:26 -04:00
tarman3
3d89b66c65 CAM: LeadInOut - Remove useless var 2025-09-22 19:50:11 +03:00
sliptonic
4179075b72 Merge pull request #23892 from alihantadal/feature_23649_update_confusing_nomenclature_offset_pattern
CAM: Improve confusing nomenclature: Offset Pattern (#23649)
2025-09-22 11:42:31 -05:00
sliptonic
11762a32b1 Merge pull request #23957 from tarman3/leadinout_fix
CAM: LeadInOut - Fix for rapid move in end
2025-09-22 11:33:12 -05:00
Chris Hennes
dbc513503c Merge pull request #24113 from sliptonic/versions
[CAM]: Asset versions and Various Fixes
2025-09-22 11:04:09 -05:00
Pascal de Bruijn
60d343a5c5 CAM: Pocket sensible default StepOver 2025-09-22 17:46:16 +02:00
Chris Hennes
a684510778 Merge pull request #24017 from sliptonic/betterunitschema
[CAM] change dialog to allow directly switching unit schema
2025-09-22 10:40:24 -05:00
David Kaufman
c7806415ef [CAM] reorder job tabs to put Setup first 2025-09-22 10:37:27 -05:00
pre-commit-ci[bot]
5aadc9cd6c [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-09-22 13:51:05 +00:00
sliptonic
fee9d78fad codeQl and suggestions from discussion. 2025-09-22 08:47:48 -05:00
sliptonic
3b789eed2b fix default library name on import 2025-09-21 13:32:31 -05:00
sliptonic
ef08e4bf88 refactor migration 2025-09-21 13:14:13 -05:00
sliptonic
e956015f35 library and bit import improvements 2025-09-21 12:01:27 -05:00
sliptonic
cc8ea38a47 template directory to camassets 2025-09-21 12:01:27 -05:00
tarman3
6b1eb8cf82 CAM: LeadInOut - Fix SafeHeight 2025-09-19 23:06:01 +03:00
tarman3
19409fb765 CAM: LeadInOut - Fix for path without rapid move in the end 2025-09-19 22:59:10 +03:00
sliptonic
4137df2cee Merge pull request #23718 from pmjdebruijn/cam-pocketshape-offset
CAM: PocketShape defaults to Offset and 50% StepOver
2025-09-19 14:27:02 -05:00
pre-commit-ci[bot]
5368784ca4 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-09-19 19:17:09 +00:00
sliptonic
d925216042 [CAM] Robustly test schemas to find the ones that work.
Robustly test current schema.

Fixes #22549
2025-09-19 14:14:08 -05:00
sliptonic
53398c93ce [CAM] change dialog to allow directly switching unit schema 2025-09-19 14:12:50 -05:00
sliptonic
07e2b07bc0 Merge pull request #23720 from davidgilkaufman/leadinout_migration
[CAM] add missing migration from intermediate version for lead in/out dressup
2025-09-19 11:29:38 -05:00
sliptonic
cb1e4dfc38 Merge pull request #21578 from lagnat/main
CAM: Dragknife dressup adds unnecessary maneuvers
2025-09-19 11:24:43 -05:00
sliptonic
bb388f7f94 Merge pull request #23724 from davidgilkaufman/adaptive_reenable_profile
[CAM] regression fix: re-enable adaptive profile mode
2025-09-17 16:41:51 -05:00
sliptonic
085ac59966 Merge pull request #23902 from deimi/fix-import-snapmaker-post
CAM: fix library import in snapmaker postprocessor
2025-09-17 15:43:50 -05:00
sliptonic
7363baa4f5 Merge pull request #23916 from davidgilkaufman/remove_qsignalblocker
[CAM] bugfix: replace python uses of QSignalBlocker
2025-09-15 14:10:54 -05:00
sliptonic
14591ff1b1 Merge pull request #23776 from davidgilkaufman/fix_missing_tool_proxy
[CAM] regression fix: migrate old tools to new system
2025-09-15 14:08:47 -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
David Kaufman
5ceaaaad70 also add qt5 compatibility for checkbox state change signal 2025-09-14 14:59:21 -04:00
David Kaufman
06d833fe4e [CAM] replace python uses of QSignalBlocker 2025-09-13 22:13:55 -04:00