From 79c9e2d872ca3b6686ff4b6247d7bb4b06af8f04 Mon Sep 17 00:00:00 2001 From: Markus Lampert Date: Tue, 29 May 2018 07:48:32 -0700 Subject: [PATCH] Fixed selection of vertexes and faces - and added support for faces as base objects. --- src/Mod/Path/PathScripts/PathEngrave.py | 8 +++++--- src/Mod/Path/PathScripts/PathEngraveGui.py | 6 +++++- src/Mod/Path/PathScripts/PathOpGui.py | 4 ++-- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/Mod/Path/PathScripts/PathEngrave.py b/src/Mod/Path/PathScripts/PathEngrave.py index 557d4c1f11..e6a28577a8 100644 --- a/src/Mod/Path/PathScripts/PathEngrave.py +++ b/src/Mod/Path/PathScripts/PathEngrave.py @@ -106,7 +106,9 @@ class ObjectEngrave(PathOp.ObjectOp): elif obj.Base: wires = [] for base, subs in obj.Base: - edges = [base.Shape.getElement(sub) for sub in subs] + edges = [] + for sub in subs: + edges.extend(base.Shape.getElement(sub).Edges) wires.extend(TechDraw.edgeWalker(edges)) output += self.buildpathocc(obj, wires, zValues) self.wires = wires @@ -124,8 +126,8 @@ class ObjectEngrave(PathOp.ObjectOp): self.commandlist.append(Path.Command('G0', {'Z': obj.ClearanceHeight.Value, 'F': self.vertRapid})) except Exception as e: - #PathLog.error("Exception: %s" % e) - #traceback.print_exc() + PathLog.error("Exception: %s" % e) + traceback.print_exc() PathLog.error(translate("Path", "The Job Base Object has no engraveable element. Engraving operation will produce no output.")) def buildpathocc(self, obj, wires, zValues): diff --git a/src/Mod/Path/PathScripts/PathEngraveGui.py b/src/Mod/Path/PathScripts/PathEngraveGui.py index ffce6bed30..80454052df 100644 --- a/src/Mod/Path/PathScripts/PathEngraveGui.py +++ b/src/Mod/Path/PathScripts/PathEngraveGui.py @@ -61,8 +61,12 @@ class TaskPanelBaseGeometryPage(PathOpGui.TaskPanelBaseGeometryPage): if sel.Object.isDerivedFrom('Part::Part2DObject'): if sel.HasSubObjects: for sub in sel.SubElementNames: - self.obj.Proxy.addBase(self.obj, sel.Object, sub) + if 'Vertex' in sub: + PathLog.info(translate("Path", "Ignoring vertex")) + else: + self.obj.Proxy.addBase(self.obj, sel.Object, sub) else: + self.obj.Base = [p for p,el in self.obj.Base if p != sel.Object] shapes.append(sel.Object) self.obj.BaseShapes = shapes added = True diff --git a/src/Mod/Path/PathScripts/PathOpGui.py b/src/Mod/Path/PathScripts/PathOpGui.py index b5c072abfb..63e65113da 100644 --- a/src/Mod/Path/PathScripts/PathOpGui.py +++ b/src/Mod/Path/PathScripts/PathOpGui.py @@ -675,9 +675,9 @@ class TaskPanelDepthsPage(TaskPanelPage): def selectionZLevel(self, sel): if len(sel) == 1 and len(sel[0].SubObjects) == 1: sub = sel[0].SubObjects[0] + if 'Vertex' == sub.ShapeType: + return sub.Z if PathGeom.isHorizontal(sub): - if 'Vertex' == sub.ShapeType: - return sub.Z if 'Edge' == sub.ShapeType: return sub.Vertexes[0].Z if 'Face' == sub.ShapeType: