Path: Add opUpdateDepths() method as in 3D Surface
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user