From c495ed43f8cd4d41e84616b49c6ec594d2ad34a0 Mon Sep 17 00:00:00 2001 From: Markus Lampert Date: Mon, 13 Aug 2018 22:49:42 -0700 Subject: [PATCH] Fixed heights and introduced OpStockZMin/Max. --- src/Mod/Path/PathScripts/PathEngrave.py | 2 +- src/Mod/Path/PathScripts/PathOp.py | 15 +++++++++++++++ src/Mod/Path/PathScripts/PathProfileContour.py | 9 +++------ src/Mod/Path/PathScripts/PathSetupSheet.py | 4 ++-- 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/Mod/Path/PathScripts/PathEngrave.py b/src/Mod/Path/PathScripts/PathEngrave.py index 2eaac83397..8240c56dfa 100644 --- a/src/Mod/Path/PathScripts/PathEngrave.py +++ b/src/Mod/Path/PathScripts/PathEngrave.py @@ -145,7 +145,7 @@ class ObjectEngrave(PathEngraveBase.ObjectOp): traceback.print_exc() PathLog.error(translate('PathEngrave', 'The Job Base Object has no engraveable element. Engraving operation will produce no output.')) - def updateDepths(self, obj, ignoreErrors=False): + def opUpdateDepths(self, obj, ignoreErrors=False): '''updateDepths(obj) ... engraving is always done at the top most z-value''' self.opSetDefaultValues(obj) diff --git a/src/Mod/Path/PathScripts/PathOp.py b/src/Mod/Path/PathScripts/PathOp.py index c79a83fb0f..aebbbd68d9 100644 --- a/src/Mod/Path/PathScripts/PathOp.py +++ b/src/Mod/Path/PathScripts/PathOp.py @@ -108,6 +108,11 @@ class ObjectOp(object): if 'tooldia' in values: obj.addProperty("App::PropertyDistance", "OpToolDiameter", "Op Values", QtCore.QT_TRANSLATE_NOOP("PathOp", "Holds the diameter of the tool")) obj.setEditorMode('OpToolDiameter', 1) # read-only + if 'stockz' in values: + obj.addProperty("App::PropertyDistance", "OpStockZMax", "Op Values", QtCore.QT_TRANSLATE_NOOP("PathOp", "Holds the max Z value of Stock")) + obj.setEditorMode('OpStockZMax', 1) # read-only + obj.addProperty("App::PropertyDistance", "OpStockZMin", "Op Values", QtCore.QT_TRANSLATE_NOOP("PathOp", "Holds the min Z value of Stock")) + obj.setEditorMode('OpStockZMin', 1) # read-only def __init__(self, obj): PathLog.track() @@ -139,6 +144,8 @@ class ObjectOp(object): obj.addProperty("App::PropertyDistance", "StartDepth", "Depth", QtCore.QT_TRANSLATE_NOOP("PathOp", "Starting Depth internal use only for derived values")) obj.setEditorMode('StartDepth', 1) # read-only + self.addOpValues(obj, ['stockz']) + if FeatureStepDown & features: obj.addProperty("App::PropertyDistance", "StepDown", "Depth", QtCore.QT_TRANSLATE_NOOP("PathOp", "Incremental Step Down of Tool")) @@ -185,6 +192,11 @@ class ObjectOp(object): if FeatureDepths & features and not hasattr(obj, 'OpStartDepth'): self.addOpValues(obj, ['start', 'final']) + if FeatureNoFinalDepth & features: + obj.setEditorMode('OpFinalDepth', 2) + + if not hasattr(obj, 'OpStockZMax'): + self.addOpValues(obj, ['stockz']) self.setEditorModes(obj, features) self.opOnDocumentRestored(obj) @@ -355,6 +367,9 @@ class ObjectOp(object): zmin = stockBB.ZMin zmax = stockBB.ZMax + obj.OpStockZMin = zmin + obj.OpStockZMax = zmax + if hasattr(obj, 'Base') and obj.Base: for base, sublist in obj.Base: bb = base.Shape.BoundBox diff --git a/src/Mod/Path/PathScripts/PathProfileContour.py b/src/Mod/Path/PathScripts/PathProfileContour.py index 08547783c9..1e46429a12 100644 --- a/src/Mod/Path/PathScripts/PathProfileContour.py +++ b/src/Mod/Path/PathScripts/PathProfileContour.py @@ -104,12 +104,9 @@ class ObjectContour(PathProfileBase.ObjectProfile): params['Coplanar'] = 2 return params - def updateDepths(self, obj, ignoreErrors=False): - if not hasattr(self, 'stock'): - self.stock = self.getJob(obj).Stock - stockBB = self.stock.Shape.BoundBox - obj.OpFinalDepth = stockBB.ZMin - obj.OpStartDepth = stockBB.ZMax + def opUpdateDepths(self, obj): + obj.OpStartDepth = obj.OpStockZMax + obj.OpFinalDepth = obj.OpStockZMin def Create(name): diff --git a/src/Mod/Path/PathScripts/PathSetupSheet.py b/src/Mod/Path/PathScripts/PathSetupSheet.py index d7ffbeca1d..6f5f59210c 100644 --- a/src/Mod/Path/PathScripts/PathSetupSheet.py +++ b/src/Mod/Path/PathScripts/PathSetupSheet.py @@ -81,8 +81,8 @@ class SetupSheet: DefaultSafeHeightOffset = '3 mm' DefaultClearanceHeightOffset = '5 mm' - DefaultSafeHeightExpression = "StartDepth+${SetupSheet}.SafeHeightOffset" - DefaultClearanceHeightExpression = "StartDepth+${SetupSheet}.ClearanceHeightOffset" + DefaultSafeHeightExpression = "OpStockZMax+${SetupSheet}.SafeHeightOffset" + DefaultClearanceHeightExpression = "OpStockZMax+${SetupSheet}.ClearanceHeightOffset" DefaultStartDepthExpression = 'OpStartDepth' DefaultFinalDepthExpression = 'OpFinalDepth'