diff --git a/src/Mod/Path/PathScripts/PathWaterline.py b/src/Mod/Path/PathScripts/PathWaterline.py index 98465b0171..060bde9b19 100644 --- a/src/Mod/Path/PathScripts/PathWaterline.py +++ b/src/Mod/Path/PathScripts/PathWaterline.py @@ -406,6 +406,31 @@ class ObjectWaterline(PathOp.ObjectOp): obj.AvoidLastX_Faces = 100 PathLog.error(translate('PathWaterline', 'AvoidLastX_Faces: Avoid last X faces count limited to 100.')) + def opUpdateDepths(self, obj): + if hasattr(obj, 'Base') and obj.Base: + base, sublist = obj.Base[0] + fbb = base.Shape.getElement(sublist[0]).BoundBox + zmin = fbb.ZMax + for base, sublist in obj.Base: + for sub in sublist: + try: + fbb = base.Shape.getElement(sub).BoundBox + zmin = min(zmin, fbb.ZMin) + except Part.OCCError as e: + PathLog.error(e) + obj.OpFinalDepth = zmin + elif self.job: + if hasattr(obj, 'BoundBox'): + if obj.BoundBox == 'BaseBoundBox': + models = self.job.Model.Group + zmin = models[0].Shape.BoundBox.ZMin + for M in models: + zmin = min(zmin, M.Shape.BoundBox.ZMin) + obj.OpFinalDepth = zmin + if obj.BoundBox == 'Stock': + models = self.job.Stock + obj.OpFinalDepth = self.job.Stock.Shape.BoundBox.ZMin + def opExecute(self, obj): '''opExecute(obj) ... process surface operation''' PathLog.track()