diff --git a/src/Mod/Path/Gui/Resources/panels/PageOpDrillingEdit.ui b/src/Mod/Path/Gui/Resources/panels/PageOpDrillingEdit.ui
index 3d2d7191e8..e815e4cc86 100644
--- a/src/Mod/Path/Gui/Resources/panels/PageOpDrillingEdit.ui
+++ b/src/Mod/Path/Gui/Resources/panels/PageOpDrillingEdit.ui
@@ -63,13 +63,6 @@
-
-
-
-
-
- Use Tip Length
-
-
-
-
@@ -135,6 +128,32 @@
+ -
+
+
+ Extend Depth
+
+
+
+ -
+
+
-
+
+ None
+
+
+ -
+
+ Drill Tip
+
+
+ -
+
+ 2x Drill Tip
+
+
+
+
@@ -164,7 +183,6 @@
toolController
peckEnabled
dwellEnabled
- useTipLength
diff --git a/src/Mod/Path/Gui/Resources/panels/PageOpPocketFullEdit.ui b/src/Mod/Path/Gui/Resources/panels/PageOpPocketFullEdit.ui
index 00f822df6e..d1a81ae2c1 100644
--- a/src/Mod/Path/Gui/Resources/panels/PageOpPocketFullEdit.ui
+++ b/src/Mod/Path/Gui/Resources/panels/PageOpPocketFullEdit.ui
@@ -255,6 +255,13 @@
+ -
+
+
+ Clear Edges
+
+
+
diff --git a/src/Mod/Path/PathScripts/PathDrilling.py b/src/Mod/Path/PathScripts/PathDrilling.py
index 64d5447abe..99d3b8ac74 100644
--- a/src/Mod/Path/PathScripts/PathDrilling.py
+++ b/src/Mod/Path/PathScripts/PathDrilling.py
@@ -75,6 +75,8 @@ class ObjectDrilling(PathCircularHoleBase.ObjectOp):
obj.addProperty("App::PropertyEnumeration", "ReturnLevel", "Drill", QtCore.QT_TRANSLATE_NOOP("App::Property", "Controls how tool retracts Default=G99"))
obj.ReturnLevel = ['G99', 'G98'] # Canned Cycle Return Level
obj.addProperty("App::PropertyDistance", "RetractHeight", "Drill", QtCore.QT_TRANSLATE_NOOP("App::Property", "The height where feed starts and height during retract tool when path is finished while in a peck operation"))
+ obj.addProperty("App::PropertyEnumeration", "ExtraOffset", "Drill", QtCore.QT_TRANSLATE_NOOP("App::Property", "How far the drill depth is extended"))
+ obj.ExtraOffset = ['None', 'Drill Tip', '2x Drill Tip'] # Canned Cycle Return Level
# Rotation related properties
if not hasattr(obj, 'EnableRotation'):
@@ -103,8 +105,10 @@ class ObjectDrilling(PathCircularHoleBase.ObjectOp):
self.commandlist.append(Path.Command('G0', {'Z': obj.ClearanceHeight.Value, 'F': self.vertRapid}))
tiplength = 0.0
- if obj.AddTipLength:
+ if obj.ExtraOffset == 'Drill Tip':
tiplength = PathUtils.drillTipLength(self.tool)
+ elif obj.ExtraOffset == '2x Drill Tip':
+ tiplength = PathUtils.drillTipLength(self.tool) * 2
holes = PathUtils.sort_jobs(holes, ['x', 'y'])
self.commandlist.append(Path.Command('G90'))
@@ -201,6 +205,7 @@ class ObjectDrilling(PathCircularHoleBase.ObjectOp):
obj.InverseAngle = False
obj.B_AxisErrorOverride = False
obj.AttemptInverseAngle = False
+ obj.ExtraOffset = "None"
# Initial setting for EnableRotation is taken from Job SetupSheet
# User may override on per-operation basis as needed.
@@ -218,6 +223,7 @@ def SetupProperties():
setup.append("DwellEnabled")
setup.append("AddTipLength")
setup.append("ReturnLevel")
+ setup.append("ExtraOffset")
setup.append("RetractHeight")
setup.append("EnableRotation")
setup.append("ReverseDirection")
diff --git a/src/Mod/Path/PathScripts/PathDrillingGui.py b/src/Mod/Path/PathScripts/PathDrillingGui.py
index 6d8d8249a4..10e4965c19 100644
--- a/src/Mod/Path/PathScripts/PathDrillingGui.py
+++ b/src/Mod/Path/PathScripts/PathDrillingGui.py
@@ -97,8 +97,8 @@ class TaskPanelOpPage(PathCircularHoleBaseGui.TaskPanelOpPage):
obj.DwellEnabled = self.form.dwellEnabled.isChecked()
if obj.PeckEnabled != self.form.peckEnabled.isChecked():
obj.PeckEnabled = self.form.peckEnabled.isChecked()
- if obj.AddTipLength != self.form.useTipLength.isChecked():
- obj.AddTipLength = self.form.useTipLength.isChecked()
+ if obj.ExtraOffset != str(self.form.ExtraOffset.currentText()):
+ obj.ExtraOffset = str(self.form.ExtraOffset.currentText())
self.updateToolController(obj, self.form.toolController)
self.updateCoolant(obj, self.form.coolantController)
@@ -118,10 +118,7 @@ class TaskPanelOpPage(PathCircularHoleBaseGui.TaskPanelOpPage):
else:
self.form.peckEnabled.setCheckState(QtCore.Qt.Unchecked)
- if obj.AddTipLength:
- self.form.useTipLength.setCheckState(QtCore.Qt.Checked)
- else:
- self.form.useTipLength.setCheckState(QtCore.Qt.Unchecked)
+ self.selectInComboBox(obj.ExtraOffset, self.form.ExtraOffset)
self.setupToolController(obj, self.form.toolController)
self.setupCoolant(obj, self.form.coolantController)
@@ -136,10 +133,10 @@ class TaskPanelOpPage(PathCircularHoleBaseGui.TaskPanelOpPage):
signals.append(self.form.dwellTime.editingFinished)
signals.append(self.form.dwellEnabled.stateChanged)
signals.append(self.form.peckEnabled.stateChanged)
- signals.append(self.form.useTipLength.stateChanged)
signals.append(self.form.toolController.currentIndexChanged)
signals.append(self.form.coolantController.currentIndexChanged)
signals.append(self.form.coolantController.currentIndexChanged)
+ signals.append(self.form.ExtraOffset.currentIndexChanged)
return signals
diff --git a/src/Mod/Path/PathScripts/PathMillFace.py b/src/Mod/Path/PathScripts/PathMillFace.py
index cbb7e0d624..9fa300ef71 100644
--- a/src/Mod/Path/PathScripts/PathMillFace.py
+++ b/src/Mod/Path/PathScripts/PathMillFace.py
@@ -59,7 +59,7 @@ class ObjectFace(PathPocketBase.ObjectPocket):
'''initPocketOp(obj) ... create facing specific properties'''
obj.addProperty("App::PropertyEnumeration", "BoundaryShape", "Face", QtCore.QT_TRANSLATE_NOOP("App::Property", "Shape to use for calculating Boundary"))
obj.BoundaryShape = ['Perimeter', 'Boundbox', 'Stock']
- obj.addProperty("App::PropertyBool", "ClearEdges", "Face", QtCore.QT_TRANSLATE_NOOP("App::Property", "Clear edges"))
+ obj.addProperty("App::PropertyBool", "ClearEdges", "Face", QtCore.QT_TRANSLATE_NOOP("App::Property", "Clear edges of surface (Only applicable to BoundBox)"))
if not hasattr(obj, 'ExcludeRaisedAreas'):
obj.addProperty("App::PropertyBool", "ExcludeRaisedAreas", "Face", QtCore.QT_TRANSLATE_NOOP("App::Property", "Exclude milling raised areas inside the face."))
diff --git a/src/Mod/Path/PathScripts/PathPocketBaseGui.py b/src/Mod/Path/PathScripts/PathPocketBaseGui.py
index 809bff2dc1..ad8dda997c 100644
--- a/src/Mod/Path/PathScripts/PathPocketBaseGui.py
+++ b/src/Mod/Path/PathScripts/PathPocketBaseGui.py
@@ -62,6 +62,7 @@ class TaskPanelOpPage(PathOpGui.TaskPanelPage):
if not FeatureFacing & self.pocketFeatures():
form.facingWidget.hide()
+ form.clearEdges.hide()
if FeaturePocket & self.pocketFeatures():
form.extraOffsetLabel.setText(translate("PathPocket", "Pass Extension"))
@@ -121,6 +122,8 @@ class TaskPanelOpPage(PathOpGui.TaskPanelPage):
if FeatureFacing & self.pocketFeatures():
if obj.BoundaryShape != str(self.form.boundaryShape.currentText()):
obj.BoundaryShape = str(self.form.boundaryShape.currentText())
+ if obj.ClearEdges != self.form.clearEdges.isChecked():
+ obj.ClearEdges = self.form.clearEdges.isChecked()
def setFields(self, obj):
'''setFields(obj) ... transfers obj's property values to UI'''
@@ -143,6 +146,7 @@ class TaskPanelOpPage(PathOpGui.TaskPanelPage):
if FeatureFacing & self.pocketFeatures():
self.selectInComboBox(obj.BoundaryShape, self.form.boundaryShape)
+ self.form.clearEdges.setChecked(obj.ClearEdges)
def getSignalsForUpdate(self, obj):
'''getSignalsForUpdate(obj) ... return list of signals for updating obj'''
@@ -161,5 +165,6 @@ class TaskPanelOpPage(PathOpGui.TaskPanelPage):
if FeatureFacing & self.pocketFeatures():
signals.append(self.form.boundaryShape.currentIndexChanged)
+ signals.append(self.form.clearEdges.clicked)
return signals