CAM: Engrave - Fix #22380 - duplicates

This commit is contained in:
tarman3
2025-11-16 21:15:45 +02:00
parent 8c8b26ee4b
commit 5dd3d3d8b1

View File

@@ -99,30 +99,31 @@ class ObjectEngrave(PathEngraveBase.ObjectOp):
jobshapes = []
if len(obj.Base) >= 1: # user has selected specific subelements
if obj.Base:
# user has selected specific subelements
Path.Log.track(len(obj.Base))
wires = []
for base, subs in obj.Base:
edges = []
basewires = []
wires = []
for feature in subs:
sub = base.Shape.getElement(feature)
if type(sub) == Part.Edge:
if isinstance(sub, Part.Edge):
edges.append(sub)
elif sub.Wires:
basewires.extend(sub.Wires)
wires.extend(sub.Wires)
else:
basewires.append(Part.Wire(sub.Edges))
wires.append(Part.Wire(sub.Edges))
for edgelist in Part.sortEdges(edges):
basewires.append(Part.Wire(edgelist))
for sortedEdges in Part.sortEdges(edges):
wires.append(Part.Wire(sortedEdges))
wires.extend(basewires)
jobshapes.append(Part.makeCompound(wires))
elif len(obj.BaseShapes) > 0: # user added specific shapes
elif obj.BaseShapes:
# user added specific shapes
jobshapes.extend([base.Shape for base in obj.BaseShapes])
else:
# process all objects in Job.Model.Group
Path.Log.track(self.model)
for base in self.model:
Path.Log.track(base.Label)