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:
Russell Johnson
2020-03-15 23:39:06 -05:00
parent 5bfef75696
commit 2b094f0160
4 changed files with 3158 additions and 864 deletions

View File

@@ -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):