Merge pull request #25372 from tarman3/engrave_fix22380

CAM: Engrave - Fix #22380 - duplicates
This commit is contained in:
sliptonic
2025-11-23 11:41:03 -06:00
committed by GitHub

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)