Path: Add opUpdateDepths() method as in 3D Surface

This commit is contained in:
Russell Johnson
2020-06-07 01:19:48 -05:00
parent 99038db23e
commit 82fbfa95d1

View File

@@ -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()