PathSurface: Add select-face(s) feature and other improvements
New feature: Limit 3D Surface op to selected faces. Disabled the IgnoreWaste feature, until it can be made compatible with new features. New feature: Face avoidance using new `AvoidLastXFaces` property. New cut patterns: `Circular` and `CircularZigZag`. New patterns include customizable center point and optional optimizations. Implemented G2/G3 gcode commands. New feature: Safe travel for transitional paths. New methods to allow safe travel over stock, cut area, and avoided features. New feature: Start point for operation. Choose a custom XY start point for the operation. Restructure code to improve management and prepare for separation of the `Waterline` algorithm into an independent operation in the PathWB. New feature: `ProfileEdges`. Allows the user to profile the edges(boundary) of the selected face(s) with or without cutting the entire face area. Add my name to the `Credits` tab in the `About FreeCAD` documentation. Added new feature and property: `CutPatternReversed`. This will make Circular, Line, and ZigZag patterns work in reverse order - outside to inside. PathSurface: Add select-face(s) feature and other improvements New feature: Limit 3D Surface op to selected faces. Disabled the IgnoreWaste feature, until it can be made compatible with new features. New feature: Face avoidance using new `AvoidLastXFaces` property. New cut patterns: `Circular` and `CircularZigZag`. New patterns include customizable center point and optional optimizations. Implemented G2/G3 gcode commands. New feature: Safe travel for transitional paths. New methods to allow safe travel over stock, cut area, and avoided features. New feature: Start point for operation. Choose a custom XY start point for the operation. Restructure code to improve management and prepare for separation of the `Waterline` algorithm into an independent operation in the PathWB. New feature: `ProfileEdges`. Allows the user to profile the edges(boundary) of the selected face(s) with or without cutting the entire face area. Add my name to the `Credits` tab in the `About FreeCAD` documentation.
This commit is contained in:
@@ -462,6 +462,7 @@ p, li { white-space: pre-wrap; }
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Rentlau</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">R. Kuster</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">† Roland Frank (1970-2017) Thanks for everything, Roland!</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Russell Johnson (russ4262)</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ryan Pavlik</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Sabin Iacob</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Saso Badovinac</p>
|
||||
|
||||
@@ -207,7 +207,12 @@ def adaptiveselect():
|
||||
FreeCAD.Console.PrintWarning("Adaptive Select Mode\n")
|
||||
|
||||
def surfaceselect():
|
||||
FreeCADGui.Selection.addSelectionGate(MESHGate())
|
||||
if(MESHGate() is True or PROFILEGate() is True):
|
||||
FreeCADGui.Selection.addSelectionGate(True)
|
||||
else:
|
||||
FreeCADGui.Selection.addSelectionGate(False)
|
||||
# FreeCADGui.Selection.addSelectionGate(MESHGate())
|
||||
# FreeCADGui.Selection.addSelectionGate(PROFILEGate()) # Added for face selection
|
||||
FreeCAD.Console.PrintWarning("Surfacing Select Mode\n")
|
||||
|
||||
def select(op):
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -63,8 +63,8 @@ class TaskPanelOpPage(PathOpGui.TaskPanelPage):
|
||||
obj.DropCutterExtraOffset.x = FreeCAD.Units.Quantity(self.form.boundBoxExtraOffsetX.text()).Value
|
||||
obj.DropCutterExtraOffset.y = FreeCAD.Units.Quantity(self.form.boundBoxExtraOffsetY.text()).Value
|
||||
|
||||
if obj.Optimize != self.form.optimizeEnabled.isChecked():
|
||||
obj.Optimize = self.form.optimizeEnabled.isChecked()
|
||||
if obj.OptimizeLinearPaths != self.form.optimizeEnabled.isChecked():
|
||||
obj.OptimizeLinearPaths = self.form.optimizeEnabled.isChecked()
|
||||
|
||||
self.updateToolController(obj, self.form.toolController)
|
||||
self.updateCoolant(obj, self.form.coolantController)
|
||||
@@ -81,7 +81,7 @@ class TaskPanelOpPage(PathOpGui.TaskPanelPage):
|
||||
self.form.sampleInterval.setText(str(obj.SampleInterval))
|
||||
self.form.stepOver.setValue(obj.StepOver)
|
||||
|
||||
if obj.Optimize:
|
||||
if obj.OptimizeLinearPaths:
|
||||
self.form.optimizeEnabled.setCheckState(QtCore.Qt.Checked)
|
||||
else:
|
||||
self.form.optimizeEnabled.setCheckState(QtCore.Qt.Unchecked)
|
||||
|
||||
Reference in New Issue
Block a user