From 4bc038fc88e67a0d4b6c489e2d73ea5f3e85e8f2 Mon Sep 17 00:00:00 2001 From: jffmichi <> Date: Mon, 2 Mar 2026 03:51:16 +0100 Subject: [PATCH 1/3] CAM: Fix operations needing recompute after post-process --- src/Mod/CAM/Path/Post/Processor.py | 7 ------- src/Mod/CAM/Path/Post/UtilsParse.py | 5 ++++- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/Mod/CAM/Path/Post/Processor.py b/src/Mod/CAM/Path/Post/Processor.py index b1ee7e8d97..d0e0e9e08c 100644 --- a/src/Mod/CAM/Path/Post/Processor.py +++ b/src/Mod/CAM/Path/Post/Processor.py @@ -296,13 +296,6 @@ class PostProcessor: postables = self._buildPostList() - # Process canned cycles for drilling operations - for _, section in enumerate(postables): - _, sublist = section - for obj in sublist: - if hasattr(obj, "Path"): - obj.Path = PostUtils.cannedCycleTerminator(obj.Path) - Path.Log.debug(f"postables count: {len(postables)}") g_code_sections = [] diff --git a/src/Mod/CAM/Path/Post/UtilsParse.py b/src/Mod/CAM/Path/Post/UtilsParse.py index 6b9713f05b..20c7d02424 100644 --- a/src/Mod/CAM/Path/Post/UtilsParse.py +++ b/src/Mod/CAM/Path/Post/UtilsParse.py @@ -705,8 +705,11 @@ def parse_a_path(values: Values, gcode: Gcode, pathobj) -> None: ) adaptive_op_variables = determine_adaptive_op(values, pathobj) - # Apply arc splitting if requested + # Process canned cycles for drilling operations path_to_process = pathobj.Path + path_to_process = PostUtils.cannedCycleTerminator(path_to_process) + + # Apply arc splitting if requested if values["SPLIT_ARCS"]: path_to_process = PostUtils.splitArcs(path_to_process) From 9616795cf72897060e2a8110828bdbc803263b89 Mon Sep 17 00:00:00 2001 From: sliptonic Date: Thu, 19 Mar 2026 10:26:06 -0500 Subject: [PATCH 2/3] Update src/Mod/CAM/Path/Post/UtilsParse.py Co-authored-by: tarman3 --- src/Mod/CAM/Path/Post/UtilsParse.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Mod/CAM/Path/Post/UtilsParse.py b/src/Mod/CAM/Path/Post/UtilsParse.py index 20c7d02424..1670cd0824 100644 --- a/src/Mod/CAM/Path/Post/UtilsParse.py +++ b/src/Mod/CAM/Path/Post/UtilsParse.py @@ -707,6 +707,8 @@ def parse_a_path(values: Values, gcode: Gcode, pathobj) -> None: # Process canned cycles for drilling operations path_to_process = pathobj.Path + + # Process canned cycles for drilling operations path_to_process = PostUtils.cannedCycleTerminator(path_to_process) # Apply arc splitting if requested From 44dd6161b7409d1858343e011a6e03a11d73aaa1 Mon Sep 17 00:00:00 2001 From: sliptonic Date: Thu, 19 Mar 2026 11:06:16 -0500 Subject: [PATCH 3/3] Update src/Mod/CAM/Path/Post/UtilsParse.py Co-authored-by: tarman3 --- src/Mod/CAM/Path/Post/UtilsParse.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Mod/CAM/Path/Post/UtilsParse.py b/src/Mod/CAM/Path/Post/UtilsParse.py index eb6e249d6b..5bfbcfc5c7 100644 --- a/src/Mod/CAM/Path/Post/UtilsParse.py +++ b/src/Mod/CAM/Path/Post/UtilsParse.py @@ -708,7 +708,6 @@ def parse_a_path(values: Values, gcode: Gcode, pathobj) -> None: ) adaptive_op_variables = determine_adaptive_op(values, pathobj) - # Process canned cycles for drilling operations path_to_process = pathobj.Path # Process canned cycles for drilling operations