Merge pull request #8145 from sliptonic/bug/7600
[Path] use correct widgets in task panel Fix #7600
This commit is contained in:
@@ -49,24 +49,24 @@
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<item row="25" column="0">
|
||||
<widget class="QCheckBox" name="useOutline">
|
||||
<property name="text">
|
||||
<string>Cut Region</string>
|
||||
<string>Use Outline</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QComboBox" name="Side">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Cut inside or outside of the selected shapes</p></body></html></string>
|
||||
<item row="18" column="0">
|
||||
<widget class="QLabel" name="label_11">
|
||||
<property name="text">
|
||||
<string>Keep Tool Down Ratio</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<item row="14" column="0">
|
||||
<widget class="QLabel" name="label_9">
|
||||
<property name="text">
|
||||
<string>Operation Type</string>
|
||||
<string>Helix Max Diameter</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -77,6 +77,13 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Cut Region</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
@@ -84,20 +91,49 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QSpinBox" name="StepOver">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Optimal value for tool stepover</p></body></html></string>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>100</number>
|
||||
<item row="23" column="0">
|
||||
<widget class="QCheckBox" name="ForceInsideOut">
|
||||
<property name="text">
|
||||
<string>Force Clearing Inside-out</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="0" colspan="2">
|
||||
<item row="16" column="0">
|
||||
<widget class="QLabel" name="label_10">
|
||||
<property name="text">
|
||||
<string>Lift Distance</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="20" column="0">
|
||||
<widget class="QLabel" name="label_12">
|
||||
<property name="text">
|
||||
<string>Stock to Leave</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Operation Type</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="0">
|
||||
<widget class="QLabel" name="label_7">
|
||||
<property name="text">
|
||||
<string>Helix Ramp Angle</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="24" column="0">
|
||||
<widget class="QCheckBox" name="FinishingProfile">
|
||||
<property name="text">
|
||||
<string>Finishing Profile</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="0" colspan="2">
|
||||
<widget class="QFrame" name="frame_3">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
@@ -141,17 +177,10 @@
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="0">
|
||||
<widget class="QLabel" name="label_7">
|
||||
<property name="text">
|
||||
<string>Helix Ramp Angle</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="1">
|
||||
<widget class="QDoubleSpinBox" name="HelixAngle">
|
||||
<item row="0" column="1">
|
||||
<widget class="QComboBox" name="Side">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Angle of the helix ramp entry</p></body></html></string>
|
||||
<string><html><head/><body><p>Cut inside or outside of the selected shapes</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -162,91 +191,86 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="12" column="1">
|
||||
<widget class="QDoubleSpinBox" name="HelixConeAngle">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Angle of the helix entry cone</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="14" column="0">
|
||||
<widget class="QLabel" name="label_9">
|
||||
<property name="text">
|
||||
<string>Helix Max Diameter</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="14" column="1">
|
||||
<widget class="QDoubleSpinBox" name="HelixDiameterLimit">
|
||||
<widget class="Gui::QuantitySpinBox" name="HelixDiameterLimit">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>If &gt;0 it limits the helix ramp diameter</p><p>otherwise the 75 percent of tool diameter is used</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="15" column="0">
|
||||
<widget class="QLabel" name="label_10">
|
||||
<property name="text">
|
||||
<string>Lift Distance</string>
|
||||
<property name="unit" stdset="0">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="15" column="1">
|
||||
<widget class="QDoubleSpinBox" name="LiftDistance">
|
||||
<item row="16" column="1">
|
||||
<widget class="Gui::QuantitySpinBox" name="LiftDistance">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>How much to lift the tool up during the rapid linking moves over cleared regions.</p><p>If linking path is not clear tool is raised to clearence height.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="17" column="0">
|
||||
<widget class="QLabel" name="label_11">
|
||||
<property name="text">
|
||||
<string>Keep Tool Down Ratio</string>
|
||||
<property name="unit" stdset="0">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="17" column="1">
|
||||
<widget class="QDoubleSpinBox" name="KeepToolDownRatio">
|
||||
<item row="18" column="1">
|
||||
<widget class="Gui::QuantitySpinBox" name="KeepToolDownRatio">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Max length of keep-tool-down linking path compared to direct distance between points.</p><p>If exceeded link will be done by raising the tool to clearence height.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="19" column="0">
|
||||
<widget class="QLabel" name="label_12">
|
||||
<property name="text">
|
||||
<string>Stock to Leave</string>
|
||||
<property name="unit" stdset="0">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="19" column="1">
|
||||
<widget class="QDoubleSpinBox" name="StockToLeave">
|
||||
<item row="20" column="1">
|
||||
<widget class="Gui::QuantitySpinBox" name="StockToLeave">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>How much material to leave (i.e. for finishing operation)</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="22" column="0">
|
||||
<widget class="QCheckBox" name="ForceInsideOut">
|
||||
<property name="text">
|
||||
<string>Force Clearing Inside-out</string>
|
||||
<property name="unit" stdset="0">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="23" column="0">
|
||||
<widget class="QCheckBox" name="FinishingProfile">
|
||||
<property name="text">
|
||||
<string>Finishing Profile</string>
|
||||
<item row="4" column="1">
|
||||
<widget class="QSpinBox" name="stepOverPercent">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>The amount by which the tool is laterally displaced on each cycle of the pattern, specified in percent of the tool diameter.</p><p>A step over of 100% results in no overlap between two different cycles.</p></body></html></string>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>100</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>100</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="24" column="0">
|
||||
<widget class="QCheckBox" name="useOutline">
|
||||
<property name="text">
|
||||
<string>Use Outline</string>
|
||||
<item row="10" column="1">
|
||||
<widget class="Gui::InputField" name="HelixAngle">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Angle of the helix ramp entry</p></body></html></string>
|
||||
</property>
|
||||
<property name="unit" stdset="0">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
<item row="12" column="1">
|
||||
<widget class="Gui::InputField" name="HelixConeAngle">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Angle of the helix entry cone</p></body></html></string>
|
||||
</property>
|
||||
<property name="unit" stdset="0">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
@@ -271,6 +295,18 @@
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>Gui::InputField</class>
|
||||
<extends>QLineEdit</extends>
|
||||
<header>Gui/InputField.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>Gui::QuantitySpinBox</class>
|
||||
<extends>QWidget</extends>
|
||||
<header>Gui/QuantitySpinBox.h</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
|
||||
@@ -22,11 +22,14 @@
|
||||
# ***************************************************************************
|
||||
|
||||
import FreeCADGui
|
||||
import FreeCAD
|
||||
import Path.Op.Adaptive as PathAdaptive
|
||||
import Path.Op.Gui.Base as PathOpGui
|
||||
import Path.Op.Gui.FeatureExtension as PathFeatureExtensionsGui
|
||||
from PySide import QtCore
|
||||
|
||||
import Path.Base.Gui.Util as PathGuiUtil
|
||||
|
||||
|
||||
class TaskPanelOpPage(PathOpGui.TaskPanelPage):
|
||||
def getForm(self):
|
||||
@@ -40,14 +43,27 @@ class TaskPanelOpPage(PathOpGui.TaskPanelPage):
|
||||
self.populateCombobox(form, enumTups, comboToPropertyMap)
|
||||
return form
|
||||
|
||||
def initPage(self, obj):
|
||||
self.form.LiftDistance.setProperty(
|
||||
"unit", obj.LiftDistance.getUserPreferred()[2]
|
||||
)
|
||||
self.form.HelixDiameterLimit.setProperty(
|
||||
"unit", obj.HelixDiameterLimit.getUserPreferred()[2]
|
||||
)
|
||||
self.form.KeepToolDownRatio.setProperty(
|
||||
"unit", obj.KeepToolDownRatio.getUserPreferred()[2]
|
||||
)
|
||||
self.form.StockToLeave.setProperty(
|
||||
"unit", obj.StockToLeave.getUserPreferred()[2]
|
||||
)
|
||||
|
||||
def getSignalsForUpdate(self, obj):
|
||||
"""getSignalsForUpdate(obj) ... return list of signals for updating obj"""
|
||||
signals = []
|
||||
# signals.append(self.form.button.clicked)
|
||||
signals.append(self.form.Side.currentIndexChanged)
|
||||
signals.append(self.form.OperationType.currentIndexChanged)
|
||||
signals.append(self.form.ToolController.currentIndexChanged)
|
||||
signals.append(self.form.StepOver.valueChanged)
|
||||
signals.append(self.form.stepOverPercent.valueChanged)
|
||||
signals.append(self.form.Tolerance.valueChanged)
|
||||
signals.append(self.form.HelixAngle.valueChanged)
|
||||
signals.append(self.form.HelixConeAngle.valueChanged)
|
||||
@@ -56,8 +72,6 @@ class TaskPanelOpPage(PathOpGui.TaskPanelPage):
|
||||
signals.append(self.form.KeepToolDownRatio.valueChanged)
|
||||
signals.append(self.form.StockToLeave.valueChanged)
|
||||
signals.append(self.form.coolantController.currentIndexChanged)
|
||||
|
||||
# signals.append(self.form.ProcessHoles.stateChanged)
|
||||
signals.append(self.form.ForceInsideOut.stateChanged)
|
||||
signals.append(self.form.FinishingProfile.stateChanged)
|
||||
signals.append(self.form.useOutline.stateChanged)
|
||||
@@ -67,19 +81,32 @@ class TaskPanelOpPage(PathOpGui.TaskPanelPage):
|
||||
def setFields(self, obj):
|
||||
self.selectInComboBox(obj.Side, self.form.Side)
|
||||
self.selectInComboBox(obj.OperationType, self.form.OperationType)
|
||||
self.form.StepOver.setValue(obj.StepOver)
|
||||
self.form.stepOverPercent.setValue(obj.StepOver)
|
||||
self.form.Tolerance.setValue(int(obj.Tolerance * 100))
|
||||
self.form.HelixAngle.setValue(obj.HelixAngle)
|
||||
self.form.HelixConeAngle.setValue(obj.HelixConeAngle)
|
||||
self.form.HelixDiameterLimit.setValue(obj.HelixDiameterLimit)
|
||||
self.form.LiftDistance.setValue(obj.LiftDistance)
|
||||
|
||||
self.form.HelixAngle.setText(
|
||||
FreeCAD.Units.Quantity(obj.HelixAngle, FreeCAD.Units.Angle).UserString
|
||||
)
|
||||
|
||||
self.form.HelixConeAngle.setText(
|
||||
FreeCAD.Units.Quantity(obj.HelixConeAngle, FreeCAD.Units.Angle).UserString
|
||||
)
|
||||
|
||||
self.form.HelixDiameterLimit.setProperty(
|
||||
"rawValue", obj.HelixDiameterLimit.Value
|
||||
)
|
||||
|
||||
self.form.LiftDistance.setProperty("rawValue", obj.LiftDistance.Value)
|
||||
|
||||
if hasattr(obj, "KeepToolDownRatio"):
|
||||
self.form.KeepToolDownRatio.setValue(obj.KeepToolDownRatio)
|
||||
self.form.KeepToolDownRatio.setProperty(
|
||||
"rawValue", obj.KeepToolDownRatio.Value
|
||||
)
|
||||
# self.form.KeepToolDownRatio.setValue(obj.KeepToolDownRatio)
|
||||
|
||||
if hasattr(obj, "StockToLeave"):
|
||||
self.form.StockToLeave.setValue(obj.StockToLeave)
|
||||
self.form.StockToLeave.setProperty("rawValue", obj.StockToLeave.Value)
|
||||
|
||||
# self.form.ProcessHoles.setChecked(obj.ProcessHoles)
|
||||
self.form.ForceInsideOut.setChecked(obj.ForceInsideOut)
|
||||
self.form.FinishingProfile.setChecked(obj.FinishingProfile)
|
||||
self.form.useOutline.setChecked(obj.UseOutline)
|
||||
@@ -98,18 +125,24 @@ class TaskPanelOpPage(PathOpGui.TaskPanelPage):
|
||||
if obj.OperationType != str(self.form.OperationType.currentData()):
|
||||
obj.OperationType = str(self.form.OperationType.currentData())
|
||||
|
||||
obj.StepOver = self.form.StepOver.value()
|
||||
if obj.StepOver != self.form.stepOverPercent.value():
|
||||
obj.StepOver = self.form.stepOverPercent.value()
|
||||
|
||||
obj.Tolerance = 1.0 * self.form.Tolerance.value() / 100.0
|
||||
obj.HelixAngle = self.form.HelixAngle.value()
|
||||
obj.HelixConeAngle = self.form.HelixConeAngle.value()
|
||||
obj.HelixDiameterLimit = self.form.HelixDiameterLimit.value()
|
||||
obj.LiftDistance = self.form.LiftDistance.value()
|
||||
PathGuiUtil.updateInputField(obj, "HelixAngle", self.form.HelixAngle)
|
||||
PathGuiUtil.updateInputField(obj, "HelixConeAngle", self.form.HelixConeAngle)
|
||||
PathGuiUtil.updateInputField(
|
||||
obj, "HelixDiameterLimit", self.form.HelixDiameterLimit
|
||||
)
|
||||
PathGuiUtil.updateInputField(obj, "LiftDistance", self.form.LiftDistance)
|
||||
|
||||
if hasattr(obj, "KeepToolDownRatio"):
|
||||
obj.KeepToolDownRatio = self.form.KeepToolDownRatio.value()
|
||||
PathGuiUtil.updateInputField(
|
||||
obj, "KeepToolDownRatio", self.form.KeepToolDownRatio
|
||||
)
|
||||
|
||||
if hasattr(obj, "StockToLeave"):
|
||||
obj.StockToLeave = self.form.StockToLeave.value()
|
||||
PathGuiUtil.updateInputField(obj, "StockToLeave", self.form.StockToLeave)
|
||||
|
||||
obj.ForceInsideOut = self.form.ForceInsideOut.isChecked()
|
||||
obj.FinishingProfile = self.form.FinishingProfile.isChecked()
|
||||
|
||||
Reference in New Issue
Block a user