diff --git a/src/Mod/Path/Gui/Resources/panels/PageOpWaterlineEdit.ui b/src/Mod/Path/Gui/Resources/panels/PageOpWaterlineEdit.ui new file mode 100644 index 0000000000..e9c94ac535 --- /dev/null +++ b/src/Mod/Path/Gui/Resources/panels/PageOpWaterlineEdit.ui @@ -0,0 +1,206 @@ + + + Form + + + + 0 + 0 + 400 + 400 + + + + Form + + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + ToolController + + + + + + + <html><head/><body><p>The tool and its settings to be used for this operation.</p></body></html> + + + + + + + + + + + + + mm + + + + + + + Cut Pattern + + + + + + + Sample interval + + + + + + + + + + + 9 + + + + + Line + + + + + ZigZag + + + + + Circular + + + + + CircularZigZag + + + + + + + + Depth offset + + + + + + + + 9 + + + + + Stock + + + + + BaseBoundBox + + + + + + + + mm + + + + + + + Optimize Linear Paths + + + + + + + BoundBox + + + + + + + Boundary Adjustment + + + + + + + <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> + + + 1 + + + 100 + + + 10 + + + 100 + + + + + + + Step over + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + Gui::InputField + QWidget +
gui::inputfield.h
+
+
+ + +
diff --git a/src/Mod/Path/PathScripts/PathWaterlineGui.py b/src/Mod/Path/PathScripts/PathWaterlineGui.py index 2c9e5d31d1..ece048ecee 100644 --- a/src/Mod/Path/PathScripts/PathWaterlineGui.py +++ b/src/Mod/Path/PathScripts/PathWaterlineGui.py @@ -2,7 +2,8 @@ # *************************************************************************** # * * -# * Copyright (c) 2017 sliptonic * +# * Copyright (c) 2020 sliptonic * +# * Copyright (c) 2020 russ4262 * # * * # * This program is free software; you can redistribute it and/or modify * # * it under the terms of the GNU Lesser General Public License (LGPL) * @@ -31,13 +32,9 @@ import PathScripts.PathOpGui as PathOpGui from PySide import QtCore __title__ = "Path Waterline Operation UI" -__author__ = "sliptonic (Brad Collette)" +__author__ = "sliptonic (Brad Collette), russ4262 (Russell Johnson)" __url__ = "http://www.freecadweb.org" __doc__ = "Waterline operation page controller and command implementation." -__contributors__ = "russ4262 (Russell Johnson)" -__created__ = "2019" -__scriptVersion__ = "3t Usable" -__lastModified__ = "2019-05-18 21:18 CST" class TaskPanelOpPage(PathOpGui.TaskPanelPage): @@ -49,26 +46,15 @@ class TaskPanelOpPage(PathOpGui.TaskPanelPage): def getFields(self, obj): '''getFields(obj) ... transfers values from UI to obj's proprties''' - # if obj.StartVertex != self.form.startVertex.value(): - # obj.StartVertex = self.form.startVertex.value() - PathGui.updateInputField(obj, 'DepthOffset', self.form.depthOffset) + PathGui.updateInputField(obj, 'BoundaryAdjustment', self.form.boundaryAdjustment) PathGui.updateInputField(obj, 'SampleInterval', self.form.sampleInterval) if obj.StepOver != self.form.stepOver.value(): obj.StepOver = self.form.stepOver.value() - # if obj.Algorithm != str(self.form.algorithmSelect.currentText()): - # obj.Algorithm = str(self.form.algorithmSelect.currentText()) - if obj.BoundBox != str(self.form.boundBoxSelect.currentText()): obj.BoundBox = str(self.form.boundBoxSelect.currentText()) - # if obj.DropCutterDir != str(self.form.dropCutterDirSelect.currentText()): - # obj.DropCutterDir = str(self.form.dropCutterDirSelect.currentText()) - - # obj.DropCutterExtraOffset.x = FreeCAD.Units.Quantity(self.form.boundBoxExtraOffsetX.text()).Value - # obj.DropCutterExtraOffset.y = FreeCAD.Units.Quantity(self.form.boundBoxExtraOffsetY.text()).Value - if obj.OptimizeLinearPaths != self.form.optimizeEnabled.isChecked(): obj.OptimizeLinearPaths = self.form.optimizeEnabled.isChecked() @@ -76,70 +62,38 @@ class TaskPanelOpPage(PathOpGui.TaskPanelPage): def setFields(self, obj): '''setFields(obj) ... transfers obj's property values to UI''' - # self.form.startVertex.setValue(obj.StartVertex) - # self.selectInComboBox(obj.Algorithm, self.form.algorithmSelect) + self.setupToolController(obj, self.form.toolController) self.selectInComboBox(obj.BoundBox, self.form.boundBoxSelect) - # self.selectInComboBox(obj.DropCutterDir, self.form.dropCutterDirSelect) - - # self.form.boundBoxExtraOffsetX.setText(str(obj.DropCutterExtraOffset.x)) - # self.form.boundBoxExtraOffsetY.setText(str(obj.DropCutterExtraOffset.y)) - # self.form.depthOffset.setText(FreeCAD.Units.Quantity(obj.DepthOffset.Value, FreeCAD.Units.Length).UserString) - self.form.sampleInterval.setText(str(obj.SampleInterval)) + self.form.boundaryAdjustment.setText(FreeCAD.Units.Quantity(obj.BoundaryAdjustment.Value, FreeCAD.Units.Length).UserString) self.form.stepOver.setValue(obj.StepOver) + self.form.sampleInterval.setText(str(obj.SampleInterval)) if obj.OptimizeLinearPaths: self.form.optimizeEnabled.setCheckState(QtCore.Qt.Checked) else: self.form.optimizeEnabled.setCheckState(QtCore.Qt.Unchecked) - self.setupToolController(obj, self.form.toolController) - def getSignalsForUpdate(self, obj): '''getSignalsForUpdate(obj) ... return list of signals for updating obj''' signals = [] - # signals.append(self.form.startVertex.editingFinished) signals.append(self.form.toolController.currentIndexChanged) - # signals.append(self.form.algorithmSelect.currentIndexChanged) signals.append(self.form.boundBoxSelect.currentIndexChanged) - # signals.append(self.form.dropCutterDirSelect.currentIndexChanged) - # signals.append(self.form.boundBoxExtraOffsetX.editingFinished) - # signals.append(self.form.boundBoxExtraOffsetY.editingFinished) - signals.append(self.form.sampleInterval.editingFinished) + signals.append(self.form.boundaryAdjustment.editingFinished) signals.append(self.form.stepOver.editingFinished) - # signals.append(self.form.depthOffset.editingFinished) + signals.append(self.form.sampleInterval.editingFinished) signals.append(self.form.optimizeEnabled.stateChanged) return signals def updateVisibility(self): - # self.form.boundBoxExtraOffsetX.setEnabled(True) - # self.form.boundBoxExtraOffsetY.setEnabled(True) self.form.boundBoxSelect.setEnabled(True) - self.form.sampleInterval.setEnabled(True) + self.form.boundaryAdjustment.setEnabled(True) self.form.stepOver.setEnabled(True) - ''' - if self.form.algorithmSelect.currentText() == "OCL Dropcutter": - self.form.boundBoxExtraOffsetX.setEnabled(True) - self.form.boundBoxExtraOffsetY.setEnabled(True) - self.form.boundBoxSelect.setEnabled(True) - self.form.dropCutterDirSelect.setEnabled(True) - self.form.stepOver.setEnabled(True) - else: - self.form.boundBoxExtraOffsetX.setEnabled(False) - self.form.boundBoxExtraOffsetY.setEnabled(False) - self.form.boundBoxSelect.setEnabled(False) - self.form.dropCutterDirSelect.setEnabled(False) - self.form.stepOver.setEnabled(False) - ''' - self.form.boundBoxExtraOffsetX.setEnabled(False) - self.form.boundBoxExtraOffsetY.setEnabled(False) - self.form.dropCutterDirSelect.setEnabled(False) - self.form.depthOffset.setEnabled(False) - # self.form.stepOver.setEnabled(False) - pass + self.form.sampleInterval.setEnabled(True) + self.form.optimizeEnabled.setEnabled(True) def registerSignalHandlers(self, obj): - # self.form.algorithmSelect.currentIndexChanged.connect(self.updateVisibility) + # self.form.clearLayers.currentIndexChanged.connect(self.updateVisibility) pass