From c0ebb8e88d1110af5c1a22548a817cf5ab97f4ee Mon Sep 17 00:00:00 2001 From: tarman3 Date: Tue, 4 Nov 2025 22:36:47 +0200 Subject: [PATCH] CAM: Slot - Reject incorrect faces selection --- src/Mod/CAM/Path/Op/Slot.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/Mod/CAM/Path/Op/Slot.py b/src/Mod/CAM/Path/Op/Slot.py index d9d0f3f7d2..757b785d8d 100644 --- a/src/Mod/CAM/Path/Op/Slot.py +++ b/src/Mod/CAM/Path/Op/Slot.py @@ -963,9 +963,9 @@ class ObjectSlot(PathOp.ObjectOp): deg -= 180.0 return deg - # Reject triangular faces - if len(shape.Edges) < 4: - msg = translate("CAM_Slot", "A single selected face must have four edges minimum.") + # Reject incorrect faces + if len(shape.Edges) != 4: + msg = translate("CAM_Slot", "A single selected face must have four edges.") FreeCAD.Console.PrintError(msg + "\n") return False @@ -984,12 +984,9 @@ class ObjectSlot(PathOp.ObjectOp): parallel_pairs = [] parallel_flags = [0] * len(shape.Edges) current_flag = 1 - last_edge_index = len(shape.Edges) - 1 - - for i in range(len(shape.Edges)): - if i >= last_edge_index: - continue + last_edge_index = min(len(shape.Edges), len(edge_info_list)) - 1 + for i in range(last_edge_index): next_i = i + 1 edge_a_info = edge_info_list[i] edge_b_info = edge_info_list[next_i]