From 4dcf6b88a37fcc3d8d0a814ed648daa2f7f96496 Mon Sep 17 00:00:00 2001 From: Markus Lampert Date: Sat, 25 Aug 2018 19:14:19 -0700 Subject: [PATCH] Added operation setting support to profile ops. --- src/Mod/Path/PathScripts/PathProfileBase.py | 9 +++++++++ src/Mod/Path/PathScripts/PathProfileContour.py | 8 ++++++-- src/Mod/Path/PathScripts/PathProfileContourGui.py | 3 ++- src/Mod/Path/PathScripts/PathProfileEdges.py | 8 ++++++-- src/Mod/Path/PathScripts/PathProfileEdgesGui.py | 3 ++- src/Mod/Path/PathScripts/PathProfileFaces.py | 12 ++++++++++-- src/Mod/Path/PathScripts/PathProfileFacesGui.py | 3 ++- 7 files changed, 37 insertions(+), 9 deletions(-) diff --git a/src/Mod/Path/PathScripts/PathProfileBase.py b/src/Mod/Path/PathScripts/PathProfileBase.py index ba83b6e8c7..e328d179b2 100644 --- a/src/Mod/Path/PathScripts/PathProfileBase.py +++ b/src/Mod/Path/PathScripts/PathProfileBase.py @@ -145,3 +145,12 @@ class ObjectProfile(PathAreaOp.ObjectOp): obj.JoinType = "Round" obj.MiterLimit = 0.1 +def SetupProperties(): + setup = [] + setup.append('Side') + setup.append('OffsetExtra') + setup.append('Direction') + setup.append('UseComp') + setup.append('JoinType') + setup.append('MiterLimit') + return setup diff --git a/src/Mod/Path/PathScripts/PathProfileContour.py b/src/Mod/Path/PathScripts/PathProfileContour.py index f992c5ea5e..0442be3489 100644 --- a/src/Mod/Path/PathScripts/PathProfileContour.py +++ b/src/Mod/Path/PathScripts/PathProfileContour.py @@ -108,9 +108,13 @@ class ObjectContour(PathProfileBase.ObjectProfile): obj.OpStartDepth = obj.OpStockZMax obj.OpFinalDepth = obj.OpStockZMin +def SetupProperties(): + return [p for p in PathProfileBase.SetupProperties() if p != 'Side'] -def Create(name): +def Create(name, obj=None): '''Create(name) ... Creates and returns a Contour operation.''' - obj = FreeCAD.ActiveDocument.addObject("Path::FeaturePython", name) + if obj is None: + obj = FreeCAD.ActiveDocument.addObject("Path::FeaturePython", name) proxy = ObjectContour(obj, name) return obj + diff --git a/src/Mod/Path/PathScripts/PathProfileContourGui.py b/src/Mod/Path/PathScripts/PathProfileContourGui.py index bb75be675a..6c9321ac6c 100644 --- a/src/Mod/Path/PathScripts/PathProfileContourGui.py +++ b/src/Mod/Path/PathScripts/PathProfileContourGui.py @@ -46,6 +46,7 @@ Command = PathOpGui.SetupOperation('Contour', TaskPanelOpPage, 'Path-Contour', QtCore.QT_TRANSLATE_NOOP("PathProfileContour", "Contour"), - QtCore.QT_TRANSLATE_NOOP("PathProfileContour", "Creates a Contour Path for the Base Object ")) + QtCore.QT_TRANSLATE_NOOP("PathProfileContour", "Creates a Contour Path for the Base Object "), + PathProfileContour.SetupProperties) FreeCAD.Console.PrintLog("Loading PathProfileContourGui... done\n") diff --git a/src/Mod/Path/PathScripts/PathProfileEdges.py b/src/Mod/Path/PathScripts/PathProfileEdges.py index 0e62c7b2c4..dd87cd6904 100644 --- a/src/Mod/Path/PathScripts/PathProfileEdges.py +++ b/src/Mod/Path/PathScripts/PathProfileEdges.py @@ -100,8 +100,12 @@ class ObjectProfile(PathProfileBase.ObjectProfile): shapes.append((env, False)) return shapes -def Create(name): +def SetupProperties(): + return PathProfileBase.SetupProperties() + +def Create(name, obj = None): '''Create(name) ... Creates and returns a Profile based on edges operation.''' - obj = FreeCAD.ActiveDocument.addObject("Path::FeaturePython", name) + if obj is None: + obj = FreeCAD.ActiveDocument.addObject("Path::FeaturePython", name) proxy = ObjectProfile(obj, name) return obj diff --git a/src/Mod/Path/PathScripts/PathProfileEdgesGui.py b/src/Mod/Path/PathScripts/PathProfileEdgesGui.py index d2ae49b2a8..205af01bed 100644 --- a/src/Mod/Path/PathScripts/PathProfileEdgesGui.py +++ b/src/Mod/Path/PathScripts/PathProfileEdgesGui.py @@ -47,6 +47,7 @@ Command = PathOpGui.SetupOperation('Profile Edges', TaskPanelOpPage, 'Path-Profile-Edges', QtCore.QT_TRANSLATE_NOOP("PathProfile", "Edge Profile"), - QtCore.QT_TRANSLATE_NOOP("PathProfile", "Profile based on edges")) + QtCore.QT_TRANSLATE_NOOP("PathProfile", "Profile based on edges"), + PathProfileEdges.SetupProperties) FreeCAD.Console.PrintLog("Loading PathProfileEdgesGui... done\n") diff --git a/src/Mod/Path/PathScripts/PathProfileFaces.py b/src/Mod/Path/PathScripts/PathProfileFaces.py index 25157aa914..5bdd0dfb82 100644 --- a/src/Mod/Path/PathScripts/PathProfileFaces.py +++ b/src/Mod/Path/PathScripts/PathProfileFaces.py @@ -138,8 +138,16 @@ class ObjectProfile(PathProfileBase.ObjectProfile): obj.processCircles = False obj.processPerimeter = True -def Create(name): +def SetupProperties(): + setup = [] + setup.append("processHoles") + setup.append("processPerimeter") + setup.append("processCircles") + return PathProfileBase.SetupProperties() + setup + +def Create(name, obj = None): '''Create(name) ... Creates and returns a Profile based on faces operation.''' - obj = FreeCAD.ActiveDocument.addObject("Path::FeaturePython", name) + if obj is None: + obj = FreeCAD.ActiveDocument.addObject("Path::FeaturePython", name) proxy = ObjectProfile(obj, name) return obj diff --git a/src/Mod/Path/PathScripts/PathProfileFacesGui.py b/src/Mod/Path/PathScripts/PathProfileFacesGui.py index 8c725a8286..9deb81f00c 100644 --- a/src/Mod/Path/PathScripts/PathProfileFacesGui.py +++ b/src/Mod/Path/PathScripts/PathProfileFacesGui.py @@ -47,6 +47,7 @@ Command = PathOpGui.SetupOperation('Profile Faces', TaskPanelOpPage, 'Path-Profile-Face', QtCore.QT_TRANSLATE_NOOP("PathProfile", "Face Profile"), - QtCore.QT_TRANSLATE_NOOP("PathProfile", "Profile based on face or faces")) + QtCore.QT_TRANSLATE_NOOP("PathProfile", "Profile based on face or faces"), + PathProfileFaces.SetupProperties) FreeCAD.Console.PrintLog("Loading PathProfileFacesGui... done\n")