From 82fbfa95d126f7d3aa3cefa94475d3cf3413fe90 Mon Sep 17 00:00:00 2001 From: Russell Johnson <47639332+Russ4262@users.noreply.github.com> Date: Sun, 7 Jun 2020 01:19:48 -0500 Subject: [PATCH] Path: Add `opUpdateDepths()` method as in 3D Surface --- src/Mod/Path/PathScripts/PathWaterline.py | 25 +++++++++++++++++++++++ 1 file changed, 25 insertions(+) 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()