From 96a04977a132f30308abe8f0bfc2916e1f8fcac4 Mon Sep 17 00:00:00 2001 From: Markus Lampert Date: Sun, 1 Oct 2017 16:04:48 -0700 Subject: [PATCH] Added job default values to template export. --- .../Resources/panels/DlgJobTemplateExport.ui | 38 +++++++++++++++++-- src/Mod/Path/Gui/Resources/panels/PathEdit.ui | 4 +- src/Mod/Path/PathScripts/PathJob.py | 3 +- src/Mod/Path/PathScripts/PathJobCmd.py | 29 ++++++++++++-- 4 files changed, 64 insertions(+), 10 deletions(-) diff --git a/src/Mod/Path/Gui/Resources/panels/DlgJobTemplateExport.ui b/src/Mod/Path/Gui/Resources/panels/DlgJobTemplateExport.ui index 293b56dc2a..ed28fef3b9 100644 --- a/src/Mod/Path/Gui/Resources/panels/DlgJobTemplateExport.ui +++ b/src/Mod/Path/Gui/Resources/panels/DlgJobTemplateExport.ui @@ -109,6 +109,38 @@ + + + + Defaults + + + true + + + + + + Tool Rapid Speeds + + + true + + + + + + + Operation Heights + + + true + + + + + + @@ -148,12 +180,12 @@ stockGroup stockExtent stockPlacement + defaultsGroup + defaultToolRapid + defaultOperationHeights toolsGroup toolsList buttonBox - stockExtentHint - stockPlacementHint - postProcessingHint diff --git a/src/Mod/Path/Gui/Resources/panels/PathEdit.ui b/src/Mod/Path/Gui/Resources/panels/PathEdit.ui index 26d98cd62d..c97a991d43 100644 --- a/src/Mod/Path/Gui/Resources/panels/PathEdit.ui +++ b/src/Mod/Path/Gui/Resources/panels/PathEdit.ui @@ -14,7 +14,7 @@ Job Edit - 3 + 0 @@ -401,7 +401,7 @@ - Tool Rapid Feed + Tool Rapid Speed false diff --git a/src/Mod/Path/PathScripts/PathJob.py b/src/Mod/Path/PathScripts/PathJob.py index e2b09c2a15..67b8677b2d 100644 --- a/src/Mod/Path/PathScripts/PathJob.py +++ b/src/Mod/Path/PathScripts/PathJob.py @@ -123,6 +123,8 @@ class ObjectJob: obj.setEditorMode('Operations', 2) # hide obj.setEditorMode('Placement', 2) + self.initDefaultValues(obj) + obj.Base = createResourceClone(obj, base, 'Base', 'BaseGeometry') obj.Proxy = self @@ -136,7 +138,6 @@ class ObjectJob: if obj.Stock.ViewObject: obj.Stock.ViewObject.Visibility = False - self.initDefaultValues(obj) def initDefaultValues(self, obj): if not hasattr(obj, 'DefaultHorizRapid'): diff --git a/src/Mod/Path/PathScripts/PathJobCmd.py b/src/Mod/Path/PathScripts/PathJobCmd.py index b91599c362..e8ca2ae244 100644 --- a/src/Mod/Path/PathScripts/PathJobCmd.py +++ b/src/Mod/Path/PathScripts/PathJobCmd.py @@ -183,13 +183,18 @@ class DlgJobTemplateExport: def includeStock(self): return self.dialog.stockGroup.isChecked() - def includeStockExtent(self): return self.dialog.stockExtent.isChecked() - def includeStockPlacement(self): return self.dialog.stockPlacement.isChecked() + def includeDefaults(self): + return self.dialog.defaultsGroup.isChecked() + def includeDefaultToolRapid(self): + return self.dialog.defaultToolRapid.isChecked() + def includeDefaultOperationHeights(self): + return self.dialog.defaultOperationHeights.isChecked() + def exec_(self): return self.dialog.exec_() @@ -223,14 +228,20 @@ class CommandJobTemplateExport: @classmethod def Execute(cls, job, path, dialog=None): attrs = job.Proxy.templateAttrs(job) + + # post processor settings if dialog and not dialog.includePostProcessing(): attrs.pop(PathJob.JobTemplate.PostProcessor, None) - attrs.pob(PathJob.JobTemplate.PostProcessorArgs, None) - attrs.pob(PathJob.JobTemplate.PostProcessorOutputFile, None) + attrs.pop(PathJob.JobTemplate.PostProcessorArgs, None) + attrs.pop(PathJob.JobTemplate.PostProcessorOutputFile, None) + + # tool controller settings toolControllers = dialog.includeToolControllers() if dialog else job.ToolController if toolControllers: tcAttrs = [tc.Proxy.templateAttrs(tc) for tc in toolControllers] attrs[PathJob.JobTemplate.ToolController] = tcAttrs + + # stock settings stockAttrs = None if dialog: if dialog.includeStock(): @@ -239,6 +250,16 @@ class CommandJobTemplateExport: stockAttrs = PathStock.TemplateAttributes(job.Stock) if stockAttrs: attrs[PathJob.JobTemplate.Stock] = stockAttrs + + # defaults settings + if dialog and not (dialog.includeDefaults() and dialog.includeDefaultToolRapid()): + attrs.pop(PathJob.JobTemplate.DefaultVertRapid, None) + attrs.pop(PathJob.JobTemplate.DefaultHorizRapid, None) + if dialog and not (dialog.includeDefaults() and dialog.includeDefaultOperationHeights()): + attrs.pop(PathJob.JobTemplate.DefaultSafeHeight, None) + attrs.pop(PathJob.JobTemplate.DefaultClearanceHeight, None) + + # write template with open(unicode(path), 'wb') as fp: json.dump(attrs, fp, sort_keys=True, indent=2)