Path: Adaptive - keep tool down ratio option + bugfixes
This commit is contained in:
@@ -236,7 +236,10 @@ def Execute(op,obj):
|
||||
opType = area.AdaptiveOperationType.ProfilingInside
|
||||
|
||||
|
||||
keepToolDownRatio=3.0
|
||||
if hasattr(obj, 'KeepToolDownRatio'): keepToolDownRatio = float(obj.KeepToolDownRatio)
|
||||
# put here all properties that influence calculation of adaptive base paths,
|
||||
|
||||
inputStateObject = {
|
||||
"tool": float(op.tool.Diameter),
|
||||
"tolerance": float(obj.Tolerance),
|
||||
@@ -247,6 +250,7 @@ def Execute(op,obj):
|
||||
"operationType": obj.OperationType,
|
||||
"side": obj.Side,
|
||||
"forceInsideOut" : obj.ForceInsideOut,
|
||||
"keepToolDownRatio": keepToolDownRatio,
|
||||
"stockToLeave": float(obj.StockToLeave)
|
||||
}
|
||||
|
||||
@@ -277,6 +281,7 @@ def Execute(op,obj):
|
||||
a2d.stepOverFactor = 0.01*obj.StepOver
|
||||
a2d.toolDiameter = float(op.tool.Diameter)
|
||||
a2d.helixRampDiameter = helixDiameter
|
||||
a2d.keepToolDownDistRatio = keepToolDownRatio
|
||||
a2d.stockToLeave =float(obj.StockToLeave)
|
||||
a2d.tolerance = float(obj.Tolerance)
|
||||
a2d.forceInsideOut = obj.ForceInsideOut
|
||||
@@ -329,6 +334,7 @@ class PathAdaptive(PathOp.ObjectOp):
|
||||
obj.addProperty("App::PropertyFloat", "Tolerance", "Adaptive", "Influences accuracy and performance")
|
||||
obj.addProperty("App::PropertyPercent", "StepOver", "Adaptive", "Percent of cutter diameter to step over on each pass")
|
||||
obj.addProperty("App::PropertyDistance", "LiftDistance", "Adaptive", "Lift distance for rapid moves")
|
||||
obj.addProperty("App::PropertyDistance", "KeepToolDownRatio", "Adaptive", "Max length of keep tool down path compared to direct distance between points")
|
||||
obj.addProperty("App::PropertyDistance", "StockToLeave", "Adaptive", "How much stock to leave (i.e. for finishing operation)")
|
||||
# obj.addProperty("App::PropertyBool", "ProcessHoles", "Adaptive","Process holes as well as the face outline")
|
||||
|
||||
@@ -366,6 +372,7 @@ class PathAdaptive(PathOp.ObjectOp):
|
||||
obj.AdaptiveInputState =""
|
||||
obj.AdaptiveOutputState = ""
|
||||
obj.StockToLeave= 0
|
||||
obj.KeepToolDownRatio=3.0
|
||||
|
||||
def opExecute(self, obj):
|
||||
'''opExecute(obj) ... called whenever the receiver needs to be recalculated.
|
||||
|
||||
@@ -83,6 +83,15 @@ class TaskPanelOpPage(PathOpGui.TaskPanelPage):
|
||||
form.LiftDistance.setToolTip("How much to lift the tool up during the rapid repositioning moves (used when no obstacles)")
|
||||
formLayout.addRow(QtGui.QLabel("Lift Distance"),form.LiftDistance)
|
||||
|
||||
#KeepToolDownRatio
|
||||
form.KeepToolDownRatio = QtGui.QDoubleSpinBox()
|
||||
form.KeepToolDownRatio.setMinimum(1.0)
|
||||
form.KeepToolDownRatio.setMaximum(10)
|
||||
form.KeepToolDownRatio.setSingleStep(1)
|
||||
form.KeepToolDownRatio.setValue(3.0)
|
||||
form.KeepToolDownRatio.setToolTip("Max length of keep tool down path compared to direct distance between points")
|
||||
formLayout.addRow(QtGui.QLabel("Keep Tool Down Ratio"),form.KeepToolDownRatio)
|
||||
|
||||
#stock to leave
|
||||
form.StockToLeave = QtGui.QDoubleSpinBox()
|
||||
form.StockToLeave.setMinimum(0.0)
|
||||
@@ -124,6 +133,7 @@ class TaskPanelOpPage(PathOpGui.TaskPanelPage):
|
||||
signals.append(self.form.HelixAngle.valueChanged)
|
||||
signals.append(self.form.HelixDiameterLimit.valueChanged)
|
||||
signals.append(self.form.LiftDistance.valueChanged)
|
||||
signals.append(self.form.KeepToolDownRatio.valueChanged)
|
||||
signals.append(self.form.StockToLeave.valueChanged)
|
||||
|
||||
# signals.append(self.form.ProcessHoles.stateChanged)
|
||||
@@ -139,6 +149,9 @@ class TaskPanelOpPage(PathOpGui.TaskPanelPage):
|
||||
self.form.HelixAngle.setValue(obj.HelixAngle)
|
||||
self.form.HelixDiameterLimit.setValue(obj.HelixDiameterLimit)
|
||||
self.form.LiftDistance.setValue(obj.LiftDistance)
|
||||
if hasattr(obj, 'KeepToolDownRatio'):
|
||||
self.form.KeepToolDownRatio.setValue(obj.KeepToolDownRatio)
|
||||
|
||||
if hasattr(obj, 'StockToLeave'):
|
||||
self.form.StockToLeave.setValue(obj.StockToLeave)
|
||||
|
||||
@@ -163,6 +176,10 @@ class TaskPanelOpPage(PathOpGui.TaskPanelPage):
|
||||
obj.HelixAngle = self.form.HelixAngle.value()
|
||||
obj.HelixDiameterLimit = self.form.HelixDiameterLimit.value()
|
||||
obj.LiftDistance = self.form.LiftDistance.value()
|
||||
|
||||
if hasattr(obj, 'KeepToolDownRatio'):
|
||||
obj.KeepToolDownRatio = self.form.KeepToolDownRatio.value()
|
||||
|
||||
if hasattr(obj, 'StockToLeave'):
|
||||
obj.StockToLeave = self.form.StockToLeave.value()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user