Path: Synchronize tooltips. Apply DepthOffset. Hide properties.
Sync tooltip text between 3D Surface and Waterline. Also, apply `DepthOffset` to Experimental Waterline algorithm. Hide some properties in Data tab.
This commit is contained in:
@@ -97,7 +97,7 @@ class ObjectSurface(PathOp.ObjectOp):
|
||||
|
||||
PROPS = [
|
||||
("App::PropertyBool", "ShowTempObjects", "Debug",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "If true, the temporary path construction objects will be shown.")),
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Show the temporary path construction objects when module is in DEBUG mode.")),
|
||||
|
||||
("App::PropertyDistance", "AngularDeflection", "Mesh Conversion",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Smaller values yield a finer, more accurate mesh. Smaller values increase processing time a lot.")),
|
||||
@@ -117,62 +117,62 @@ class ObjectSurface(PathOp.ObjectOp):
|
||||
("App::PropertyFloat", "StopIndex", "Rotational",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Stop index(angle) for rotational scan")),
|
||||
|
||||
("App::PropertyEnumeration", "BoundBox", "Surface",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Should the operation be limited by the stock object or by the bounding box of the base object")),
|
||||
("App::PropertyEnumeration", "ScanType", "Surface",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Planar: Flat, 3D surface scan. Rotational: 4th-axis rotational scan.")),
|
||||
("App::PropertyDistance", "SampleInterval", "Surface",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "The Sample Interval. Small values cause long wait times")),
|
||||
|
||||
("App::PropertyInteger", "AvoidLastX_Faces", "Selected Face(s) Settings",
|
||||
("App::PropertyInteger", "AvoidLastX_Faces", "Selected Geometry Settings",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Avoid cutting the last 'N' faces in the Base Geometry list of selected faces.")),
|
||||
("App::PropertyBool", "AvoidLastX_InternalFeatures", "Selected Face(s) Settings",
|
||||
("App::PropertyBool", "AvoidLastX_InternalFeatures", "Selected Geometry Settings",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Do not cut internal features on avoided faces.")),
|
||||
("App::PropertyDistance", "BoundaryAdjustment", "Selected Face(s) Settings",
|
||||
("App::PropertyDistance", "BoundaryAdjustment", "Selected Geometry Settings",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Positive values push the cutter toward, or beyond, the boundary. Negative values retract the cutter away from the boundary.")),
|
||||
("App::PropertyBool", "BoundaryEnforcement", "Selected Face(s) Settings",
|
||||
("App::PropertyBool", "BoundaryEnforcement", "Selected Geometry Settings",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "If true, the cutter will remain inside the boundaries of the model or selected face(s).")),
|
||||
("App::PropertyEnumeration", "HandleMultipleFeatures", "Selected Face(s) Settings",
|
||||
("App::PropertyEnumeration", "HandleMultipleFeatures", "Selected Geometry Settings",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Choose how to process multiple Base Geometry features.")),
|
||||
("App::PropertyDistance", "InternalFeaturesAdjustment", "Selected Face(s) Settings",
|
||||
("App::PropertyDistance", "InternalFeaturesAdjustment", "Selected Geometry Settings",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Positive values push the cutter toward, or into, the feature. Negative values retract the cutter away from the feature.")),
|
||||
("App::PropertyBool", "InternalFeaturesCut", "Selected Face(s) Settings",
|
||||
("App::PropertyBool", "InternalFeaturesCut", "Selected Geometry Settings",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Ignore internal feature areas within a larger selected face.")),
|
||||
|
||||
("App::PropertyEnumeration", "BoundBox", "Clearing Options",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Select the overall boundary for the operation. ")),
|
||||
("App::PropertyVectorDistance", "CircularCenterCustom", "Clearing Options",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "The start point of this path")),
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Set the start point for circular cut patterns.")),
|
||||
("App::PropertyEnumeration", "CircularCenterAt", "Clearing Options",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Choose what point to start the ciruclar pattern: Center Of Mass, Center Of Boundbox, Xmin Ymin of boundbox, Custom.")),
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Choose location of the center point for starting the ciruclar pattern.")),
|
||||
("App::PropertyEnumeration", "CutMode", "Clearing Options",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "The direction that the toolpath should go around the part: Climb(ClockWise) or Conventional(CounterClockWise)")),
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Set the direction for the cutting tool to engage the material: Climb (ClockWise) or Conventional (CounterClockWise)")),
|
||||
("App::PropertyEnumeration", "CutPattern", "Clearing Options",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Clearing pattern to use")),
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Set the geometric clearing pattern to use for the operation.")),
|
||||
("App::PropertyFloat", "CutPatternAngle", "Clearing Options",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Yaw angle for certain clearing patterns")),
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "The yaw angle used for certain clearing patterns")),
|
||||
("App::PropertyBool", "CutPatternReversed", "Clearing Options",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "If true, the order of the step-overs will be reversed; the operation will begin cutting the outer most line/arc, and work toward the inner most line/arc.")),
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Reverse the cut order of the stepover paths. For circular cut patterns, begin at the outside and work toward the center.")),
|
||||
("App::PropertyDistance", "DepthOffset", "Clearing Options",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Z-axis offset from the surface of the object")),
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Set the Z-axis depth offset from the target surface.")),
|
||||
("App::PropertyEnumeration", "LayerMode", "Clearing Options",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "The completion mode for the operation: single or multi-pass")),
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Complete the operation in a single pass at depth, or mulitiple passes to final depth.")),
|
||||
("App::PropertyEnumeration", "ProfileEdges", "Clearing Options",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Profile the edges of the selection.")),
|
||||
("App::PropertyDistance", "SampleInterval", "Clearing Options",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Set the sampling resolution. Smaller values quickly increase processing time.")),
|
||||
("App::PropertyPercent", "StepOver", "Clearing Options",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Step over percentage of the drop cutter path")),
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Set the stepover percentage, based on the tool's diameter.")),
|
||||
|
||||
("App::PropertyBool", "OptimizeLinearPaths", "Surface Optimization",
|
||||
("App::PropertyBool", "OptimizeLinearPaths", "Optimization",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Enable optimization of linear paths (co-linear points). Removes unnecessary co-linear points from G-Code output.")),
|
||||
("App::PropertyBool", "OptimizeStepOverTransitions", "Surface Optimization",
|
||||
("App::PropertyBool", "OptimizeStepOverTransitions", "Optimization",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Enable separate optimization of transitions between, and breaks within, each step over path.")),
|
||||
("App::PropertyBool", "CircularUseG2G3", "Surface Optimization",
|
||||
("App::PropertyBool", "CircularUseG2G3", "Optimization",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Convert co-planar arcs to G2/G3 gcode commands for `Circular` and `CircularZigZag` cut patterns.")),
|
||||
("App::PropertyDistance", "GapThreshold", "Surface Optimization",
|
||||
("App::PropertyDistance", "GapThreshold", "Optimization",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Collinear and co-radial artifact gaps that are smaller than this threshold are closed in the path.")),
|
||||
("App::PropertyString", "GapSizes", "Surface Optimization",
|
||||
("App::PropertyString", "GapSizes", "Optimization",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Feedback: three smallest gaps identified in the path geometry.")),
|
||||
|
||||
("App::PropertyVectorDistance", "StartPoint", "Start Point",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "The start point of this path")),
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "The custom start point for the path of this operation")),
|
||||
("App::PropertyBool", "UseStartPoint", "Start Point",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Make True, if specifying a Start Point"))
|
||||
]
|
||||
@@ -199,7 +199,7 @@ class ObjectSurface(PathOp.ObjectOp):
|
||||
'BoundBox': ['BaseBoundBox', 'Stock'],
|
||||
'CircularCenterAt': ['CenterOfMass', 'CenterOfBoundBox', 'XminYmin', 'Custom'],
|
||||
'CutMode': ['Conventional', 'Climb'],
|
||||
'CutPattern': ['Line', 'ZigZag', 'Circular', 'CircularZigZag'], # Additional goals ['Offset', 'Spiral', 'ZigZagOffset', 'Grid', 'Triangle']
|
||||
'CutPattern': ['Line', 'Circular', 'CircularZigZag', 'ZigZag'], # Additional goals ['Offset', 'Spiral', 'ZigZagOffset', 'Grid', 'Triangle']
|
||||
'DropCutterDir': ['X', 'Y'],
|
||||
'HandleMultipleFeatures': ['Collectively', 'Individually'],
|
||||
'LayerMode': ['Single-pass', 'Multi-pass'],
|
||||
|
||||
@@ -22,11 +22,6 @@
|
||||
# * USA *
|
||||
# * *
|
||||
# ***************************************************************************
|
||||
# * *
|
||||
# * Additional modifications and contributions beginning 2019 *
|
||||
# * by Russell Johnson <russ4262@gmail.com> 2020-03-30 22:27 CST *
|
||||
# * *
|
||||
# ***************************************************************************
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
@@ -83,7 +78,7 @@ class ObjectWaterline(PathOp.ObjectOp):
|
||||
return PathOp.FeatureTool | PathOp.FeatureDepths | PathOp.FeatureHeights | PathOp.FeatureStepDown | PathOp.FeatureCoolant | PathOp.FeatureBaseFaces
|
||||
|
||||
def initOperation(self, obj):
|
||||
'''initPocketOp(obj) ...
|
||||
'''initPocketOp(obj) ...
|
||||
Initialize the operation - property creation and property editor status.'''
|
||||
self.initOpProperties(obj)
|
||||
|
||||
@@ -98,7 +93,7 @@ class ObjectWaterline(PathOp.ObjectOp):
|
||||
'''initOpProperties(obj) ... create operation specific properties'''
|
||||
PROPS = [
|
||||
("App::PropertyBool", "ShowTempObjects", "Debug",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "If true, the temporary path construction objects will be shown.")),
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Show the temporary path construction objects when module is in DEBUG mode.")),
|
||||
|
||||
("App::PropertyDistance", "AngularDeflection", "Mesh Conversion",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Smaller values yield a finer, more accurate the mesh. Smaller values increase processing time a lot.")),
|
||||
@@ -125,27 +120,27 @@ class ObjectWaterline(PathOp.ObjectOp):
|
||||
("App::PropertyEnumeration", "BoundBox", "Clearing Options",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Select the overall boundary for the operation. ")),
|
||||
("App::PropertyVectorDistance", "CircularCenterCustom", "Clearing Options",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "The start point of this path.")),
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Set the start point for circular cut patterns.")),
|
||||
("App::PropertyEnumeration", "CircularCenterAt", "Clearing Options",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Choose center point to start the ciruclar pattern.")),
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Choose location of the center point for starting the ciruclar pattern.")),
|
||||
("App::PropertyEnumeration", "ClearLastLayer", "Clearing Options",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Set to clear last layer in a `Multi-pass` operation.")),
|
||||
("App::PropertyEnumeration", "CutMode", "Clearing Options",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Set the direction for the cutting tool to engage the material: Climb (ClockWise) or Conventional (CounterClockWise)")),
|
||||
("App::PropertyEnumeration", "CutPattern", "Clearing Options",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Set the geometric clearing pattern to use.")),
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Set the geometric clearing pattern to use for the operation.")),
|
||||
("App::PropertyFloat", "CutPatternAngle", "Clearing Options",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Yaw angle for certain clearing patterns")),
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "The yaw angle used for certain clearing patterns")),
|
||||
("App::PropertyBool", "CutPatternReversed", "Clearing Options",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Reverse the cut order of the stepover paths. For circular cut patterns, begin at the outside and work toward the center.")),
|
||||
("App::PropertyDistance", "DepthOffset", "Clearing Options",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Set the Z-axis depth offset from the target surface.")),
|
||||
("App::PropertyEnumeration", "LayerMode", "Clearing Options",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "The step down mode for the operation.")),
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Complete the operation in a single pass at depth, or mulitiple passes to final depth.")),
|
||||
("App::PropertyEnumeration", "ProfileEdges", "Clearing Options",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Profile the edges of the selection.")),
|
||||
("App::PropertyDistance", "SampleInterval", "Clearing Options",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Set the sampling resolution. Smaller values increase processing time.")),
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Set the sampling resolution. Smaller values quickly increase processing time.")),
|
||||
("App::PropertyPercent", "StepOver", "Clearing Options",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Set the stepover percentage, based on the tool's diameter.")),
|
||||
|
||||
@@ -159,7 +154,7 @@ class ObjectWaterline(PathOp.ObjectOp):
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Feedback: three smallest gaps identified in the path geometry.")),
|
||||
|
||||
("App::PropertyVectorDistance", "StartPoint", "Start Point",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "The start point of this path")),
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "The custom start point for the path of this operation")),
|
||||
("App::PropertyBool", "UseStartPoint", "Start Point",
|
||||
QtCore.QT_TRANSLATE_NOOP("App::Property", "Make True, if specifying a Start Point"))
|
||||
]
|
||||
@@ -204,6 +199,14 @@ class ObjectWaterline(PathOp.ObjectOp):
|
||||
obj.setEditorMode('ProfileEdges', hide)
|
||||
obj.setEditorMode('InternalFeaturesAdjustment', hide)
|
||||
obj.setEditorMode('InternalFeaturesCut', hide)
|
||||
obj.setEditorMode('GapSizes', hide)
|
||||
obj.setEditorMode('GapThreshold', hide)
|
||||
obj.setEditorMode('AvoidLastX_Faces', hide)
|
||||
obj.setEditorMode('AvoidLastX_InternalFeatures', hide)
|
||||
obj.setEditorMode('BoundaryAdjustment', hide)
|
||||
obj.setEditorMode('HandleMultipleFeatures', hide)
|
||||
if hasattr(obj, 'EnableRotation'):
|
||||
obj.setEditorMode('EnableRotation', hide)
|
||||
if obj.CutPattern == 'None':
|
||||
show = 2
|
||||
hide = 2
|
||||
@@ -265,6 +268,7 @@ class ObjectWaterline(PathOp.ObjectOp):
|
||||
obj.ClearLastLayer = 'Off'
|
||||
obj.StepOver = 100
|
||||
obj.CutPatternAngle = 0.0
|
||||
obj.DepthOffset.Value = 0.0
|
||||
obj.SampleInterval.Value = 1.0
|
||||
obj.BoundaryAdjustment.Value = 0.0
|
||||
obj.InternalFeaturesAdjustment.Value = 0.0
|
||||
@@ -2793,6 +2797,7 @@ class ObjectWaterline(PathOp.ObjectOp):
|
||||
for ca in range(0, caLen):
|
||||
area = CUTAREAS[ca]
|
||||
csHght = area.BoundBox.ZMin
|
||||
csHght += obj.DepthOffset.Value
|
||||
cont = False
|
||||
caCnt += 1
|
||||
if area.Area > 0.0:
|
||||
|
||||
Reference in New Issue
Block a user