Difference between revisions of "Path Surface/en"

From FreeCAD Documentation
Jump to navigation Jump to search
(Updating to match new version of source page)
(Updating to match new version of source page)
Line 13: Line 13:
 
{{GuiCommand
 
{{GuiCommand
 
|Name=Path 3DSurface
 
|Name=Path 3DSurface
|Workbenches=[[Path Workbench|Path]]
 
 
|MenuLocation=Path → 3D Surface
 
|MenuLocation=Path → 3D Surface
 +
|Workbenches=[[Path_Workbench|Path]]
 
|Shortcut=
 
|Shortcut=
|Version=
+
|Version=0.19
 
|SeeAlso=
 
|SeeAlso=
 
}}
 
}}
Line 22: Line 22:
 
==Description==
 
==Description==
  
This tool creates a new 3D Surface Operation. The 3D Surface operation uses the '''entire top surface''' of the 3D Model to generate G-Code for the JobCurrently, within the operation's settings there is no functionality to select specific areas, faces, or regions of the Job base. The operation is applied to the '''entire surface''' of the Job base.
+
This tool creates a new {{KEY|[[Image:Path 3DSurface.svg|24px]] [[Path_3DSurface|3D Surface]]}} operation which is capable of generating G-Code paths for the entire top surface of a 3D model (or is able to work with selected faces) and allows for faces to be avoidedThis operation offers multiple cut patterns: Line, Zigzag, Circular, Circular Zigzag, Offset, and Spiral (similar to an adaptive pattern).  As of version 0.19, this operation offers many customizations to allow for greater productivity.
 +
 
  
The 3D Surface Tool interfaces to OCL.pyd, a 3rd party Open Source module titled [[OpenCamLib]], that generates tool paths from a 3D Model.  OpenCamLib is not integrated directly into FreeCAD to ensure their license is not violated.   
+
The {{KEY|[[Image:Path 3DSurface.svg|24px]] [[Path_3DSurface|3D Surface]]}} operation is also capable of generating basic rotational 3D surfacing paths.  The rotational capabilities are limited to the entire model, and do not allow for specific faces or regions to be isolated.  The rotational paths are also limited to line cut patterns.
 +
 +
 
 +
The 3D Surface Tool interfaces to OCL.pyd, a 3rd party Open Source module titled [[OpenCamLib|OpenCamLib]], that generates tool paths from a 3D model.  OpenCamLib is not integrated directly into FreeCAD to ensure their license is not violated.
 +
   
  
 
'''Note:''' In order to use the 3D Surface operation you must:
 
'''Note:''' In order to use the 3D Surface operation you must:
# Properly install [[OpenCamLib]].
+
# Properly install [[OpenCamLib|OpenCamLib]].
 
# Enable [[Path_experimental|Experimental Features]] for the Path Workbench.
 
# Enable [[Path_experimental|Experimental Features]] for the Path Workbench.
  
Line 36: Line 41:
 
====Basic Operation====
 
====Basic Operation====
  
# Press the {{KEY|[[Image:Path 3DSurface.svg|24px]] [[Path 3DSurface|3D Surface]]}} icon, or select the [[Path 3DSurface|3D Surface]] tool from the '''Path''' menu.
+
# Press the {{KEY|[[Image:Path 3DSurface.svg|24px]] [[Path_3DSurface|3D Surface]]}} icon, or select {{MenuCommand|Path 3D Surface}} from the dropdown menu.
# Select the tool controller for the Operation from the Tool controller dialogue pop up window.
+
# Select the tool controller for the Operation from the Tool controller dialogue pop up window, if presented.
 +
# In the Base Geometry tab, select any specific faces you wish to focus on and/or avoid for the operation.
 
# Adjust the operation depths as needed in the Depths tab: Start Depth, Finish Depth, Step Down.
 
# Adjust the operation depths as needed in the Depths tab: Start Depth, Finish Depth, Step Down.
 
# Make adjustments in Heights tab if needed.
 
# Make adjustments in Heights tab if needed.
# Configure settings in the Operations tab:
+
# Configure settings in the Operations tab as needed:
## Select an operation algorithm: OCL Dropcutter or OCL Waterline.
+
#* Choose your Coolant Mode.
## Choose the BoundBox: Stock or BaseBoundBox
+
#* Choose the BoundBox: Stock or BaseBoundBox
## Add additional BoundBox Extra Offset to X and Y as desired
+
#* Set the Scan Type for the operation: Planar or Rotational
## Set the Drop Cutter Direction: X or Y. This is the linear direction the cutter(spindle) will travel.
+
#* Select the Layer Mode for the operation: Single-pass or Multi-pass
## Add a Depth Offset value if you wish to leave a specified thickness of material on the surface.
+
#*# Single-pass is for a finishing pass
## Set the Sample Interval used for the OCL scan.
+
#*# Multi-pass could be used for clearing in combination with the use of Depth Offset to leave a thin surface layer for a finish pass
## Set the Step Over value as a percentage of the diameter of the Tool.
+
#* Add additional BoundBox Extra Offset to X and Y as desired (''Rotational scans only'')
## Optimize Output is enabled by default.  It is only a linear path optimization. Disabling will yield a longer gcode result and likely increase cut time.
+
#* Set the Drop Cutter Direction: X or Y. This is the linear direction the cutter(spindle) will travel. (''Rotational scans only'')
# If you wish to preview the result before accepting the settings, click Apply
+
#* Add a Depth Offset value if you wish to leave a specified thickness of material on the surface, for say a final finish pass
# Click '''OK''' button to confirm and generate paths.
+
#* Set the Sample Interval used for the OCL scan.
 +
#* Set the Step Over value as a percentage of the diameter of the Tool.
 +
#* Check the Use Start Point box if you wish to provide a start point for the operation in the properties view of the data tab for the operation.
 +
#* Boundary Enforcement is enabled by default.  This forces the cutter to remain inside the boundaries of the feature geometry for the operation, like a pocketing operation.  Disable to allow the cutter to extend to the outside of the feature geometry. The Boundary Adjustment property supersedes this property.
 +
#* Optimize Linear Paths is enabled by default. Disabling will yield a longer gcode result and likely increase cut time.
 +
# If you wish to preview the result before accepting the settings, click {{Button|Apply}}
 +
# Click {{Button|OK}} button to confirm and generate paths.
  
 
To achieve different, or more complex, effects, adjust additional operation properties within the Data tab of the Properties View for the operation.
 
To achieve different, or more complex, effects, adjust additional operation properties within the Data tab of the Properties View for the operation.
 
   
 
   
 
====Multi-pass Scan====
 
This variation is based on the {{PropertyData|Step Down}} property.  It produces the layering effect - removing material in layers.
 
# Create a [[#Basic_Operation|Basic Operation]] as described above. Multi-pass is available for both Algorithms.
 
# Select the new operation in the object tree in the Combo View.
 
# Locate the '''Algorithm''' section, In the Data tab in the Properties View of the operation.
 
# Toggle the {{PropertyData|Layer Mode}} property to '''Multi-pass''' to achieve the layering(step-down, multi-pass) effect.
 
 
   
 
   
 +
====Rotational Scans (4th-axis)====
  
====Rotational Scans (4th-axis)====
+
# Initiate a [[#Basic_Operation|Basic Operation]] as described above and set the '''Scan Type''' to '''Rotational'''.
# Create a [[#Basic_Operation|Basic Operation]] as described above using the '''OCL Dropcutter''' algorithm.
+
# '''Note:''' Face selection is unavailable for Rotational scans, so changes to Base Geometry are ignored.
# Locate the Data tab and Properties View for the new [[Path_3DSurface|3D Surface]] operation.<BR>It is recommended that you set the desired rotation properties all at once before recomputing. This is done by clicking the ENTER key immediately after changing a property setting. This process will allow you to change and save multiple properties before recomputing the operation.
+
# Locate the Data tab and Properties View for the new [[Path_3DSurface|3D Surface]] operation.  A '''Rotation''' section should be available with additional properties to adjust, listed below.<BR>It is recommended that you set the desired rotation properties all at once before recomputing. This is done by clicking the ENTER key immediately after changing a property setting. This process will allow you to change and save multiple properties before recomputing the operation.
# In the '''Rotation''' section set {{PropertyData|Enable Rotation}} to the correct setting.
 
 
# Adjust the following settings as needed:
 
# Adjust the following settings as needed:
#* In the '''Algorithm''' section, change {{PropertyData|Drop Cutter Dir}} to the axis of travel for the cutter(spindle).
+
#* Set {{PropertyData|Cutter Tilt}} to the offset index(angle) [0-90]. (Used for ball mill cutters)
#* In the '''Algorithm''' section, set {{PropertyData|Layer Mode}} to single or mulit-pass.
+
#* Change {{PropertyData|Drop Cutter Dir}} to the axis of travel for the cutter(spindle).
#* In the '''Rotation''' section, set {{PropertyData|Rotation Axis}} to the desired axis.
+
#* Change {{PropertyData|Drop Cutter Extra Offset}} to extend the BoundBox in the X and Y directions.
#* In the '''Rotation''' section, adjust {{PropertyData|Start Index}} to start index(angle) [0-360].
+
#* Set {{PropertyData|Rotation Axis}} to the desired axis.
#* In the '''Rotation''' section, adjust {{PropertyData|Stop Index}} to stop index(angle) [0-360].
+
#* Adjust {{PropertyData|Start Index}} to start index(angle) [0-360].
#* In the '''Rotation''' section, set {{PropertyData|Cutter Tilt}} to the offset index(angle) [0-90]. (Used for ball mill cutters)
+
#* Adjust {{PropertyData|Stop Index}} to stop index(angle) [0-360].
# With rotation-related properties set as needed, in the '''Algorithm''' section change the {{PropertyData|ScanMode}} from '''Planar''' to '''Rotational'''.
 
 
# Click the {{KEY|[[File:View-refresh.svg|16px]] Recompute}} icon in the tool bar.
 
# Click the {{KEY|[[File:View-refresh.svg|16px]] Recompute}} icon in the tool bar.
 
# Wait for the results...
 
# Wait for the results...
Line 82: Line 86:
 
* For time purposes, it is better that you not recompute a rotational scan after every property change; rather, consider one of the following:
 
* For time purposes, it is better that you not recompute a rotational scan after every property change; rather, consider one of the following:
 
** use the ' ''change all settings with ENTER key'' ' technique mentioned in Step 2 above, then {{KEY|[[File:View-refresh.svg|16px]] Recompute}} the operation.
 
** use the ' ''change all settings with ENTER key'' ' technique mentioned in Step 2 above, then {{KEY|[[File:View-refresh.svg|16px]] Recompute}} the operation.
** deactivate the operation with the {{KEY|[[Image:Path_OpActive.svg|16px]] [[Path OpActive|Active]]}} toggle tool, make your changes to the operation's properties, then click the {{KEY|[[Image:Path_OpActive.svg|16px]] [[Path OpActive|Active]]}} icon again to re-activate the operation - which triggers a recompute internally.
+
** deactivate the operation with the {{KEY|[[Image:Path_OpActive.svg|16px]] [[Path_OpActive|Active]]}} toggle tool, make your changes to the operation's properties, then click the {{KEY|[[Image:Path_OpActive.svg|16px]] [[Path_OpActive|Active]]}} icon again to re-activate the operation - which triggers a recompute internally.
* The {{KEY|[[Image:Path 3DSurface.svg|16px]] [[Path 3DSurface|3D Surface]]}} operation is still considered an ''experimental feature'' as of 2019-06-25. As such, it may contain a few bugs yet to be clearly identified.  Please report bugs and issues in the [https://forum.freecadweb.org/viewforum.php?f=15 FreeCAD Path/CAM Forum].
+
* The {{KEY|[[Image:Path 3DSurface.svg|16px]] [[Path_3DSurface|3D Surface]]}} operation is still considered an ''experimental feature'' as of 2019-06-25. As such, it may contain a few bugs yet to be clearly identified.  Please report bugs and issues in the [https://forum.freecadweb.org/viewforum.php?f=15 FreeCAD Path/CAM Forum].
* The OCL Waterline algorithm does not support rotational scans.
+
* The built in {{KEY|[[Image:Path_Simulator.svg|16px]] [[Path_Simulator|CAM Simulator]]}} does NOT support 4th-axis simulation.  You will need to use a third party simulator to inspect or verify paths visually.  See the [[#Resources|Resources]] section below for suggestions.
* The built in {{KEY|[[Image:Path_Simulator.svg|16px]] [[Path Simulator|CAM Simulator]]}} does NOT support 4th-axis simulation.  You will need to use a third party simulator to inspect or verify paths visually.  See the [[#Resources|Resources]] section below for suggestions.
 
 
* You will likely see red rotational lines around your model in the viewport.  This is normal in FreeCAD for the time being.
 
* You will likely see red rotational lines around your model in the viewport.  This is normal in FreeCAD for the time being.
 
   
 
   
 
   
 
   
 
====Available Tool (Cutter) Shapes====
 
====Available Tool (Cutter) Shapes====
This 3D Surface op currently uses OpenCamLib [OCL] to extract paths from the part base. As such, a tool setting translation is required between the FreeCAD tool controller and OCL in order to complete the scan with your chosen tool(cutter) shape.  
+
This 3D Surface op currently uses [[OpenCamLib]] [OCL] to extract paths from the part base. As such, a tool setting translation is required between the FreeCAD tool controller and OCL in order to complete the scan with your chosen tool(cutter) shape.  
  
 
These tool shapes are respected and available for this 3D Surface operation:
 
These tool shapes are respected and available for this 3D Surface operation:
Line 106: Line 109:
 
NOTE: As of May 2019, only the End Mill has any type of testing to determine accuracy of the FreeCAD-to-OCL tool settings translation. Please post any feedback for non-end-mill usage to the [https://forum.freecadweb.org/viewforum.php?f=15 Path/CAM] section in the FreeCAD forums.
 
NOTE: As of May 2019, only the End Mill has any type of testing to determine accuracy of the FreeCAD-to-OCL tool settings translation. Please post any feedback for non-end-mill usage to the [https://forum.freecadweb.org/viewforum.php?f=15 Path/CAM] section in the FreeCAD forums.
  
==Properties==
+
==Properties: Version 0.19==
  
 
''' ''Note'' ''': Not all of these Properties are available in the Task Window Editor. Some are only accessible in the Data tab of the Properties View panel for this Operation.
 
''' ''Note'' ''': Not all of these Properties are available in the Task Window Editor. Some are only accessible in the Data tab of the Properties View panel for this Operation.
 
====Algorithm====
 
 
* {{PropertyData|Algorithm}}: The library to use to generate the path
 
* {{PropertyData|BoundBox}}: Should the operation be limited by the stock object or by the bounding box of the base object
 
* {{PropertyData|Drop Cutter Dir}}: The direction along which dropcutter lines are created
 
* {{PropertyData|Drop Cutter Extra Offset}}: Additional offset to the selected bounding box - use sub-properties to set values
 
** {{PropertyData|X}}: x distance value
 
** {{PropertyData|Y}}: y distance value
 
** {{PropertyData|Z}}: z distance value
 
* {{PropertyData|Layer Mode}}: The completion mode for the operation: single or multi-pass
 
* {{PropertyData|Scan Type}}: Planar: Flat, 3D surface scan.  Rotational: 4th-axis rotational scan.
 
  
 
====Base====
 
====Base====
Line 137: Line 128:
 
*** {{PropertyData|Z}}: z distance value
 
*** {{PropertyData|Z}}: z distance value
 
* {{PropertyData|Label}}: User-provided name of the object (UTF-8)
 
* {{PropertyData|Label}}: User-provided name of the object (UTF-8)
 +
 +
====Clearing Options====
 +
 +
* {{PropertyData|Bound Box}}: Should the operation be limited by the stock object or by the bounding box of the base object
 +
* {{PropertyData|Cut Mode}}: The direction that the toolpath should go around the part: Climb(ClockWise) or Conventional(CounterClockWise)
 +
* {{PropertyData|Cut Pattern}}: Clearing pattern to use
 +
* {{PropertyData|Cut Pattern Reversed}}: Reverse the cut order of the stepover paths. For circular cut patterns, begin at the outside and work toward the center
 +
* {{PropertyData|Depth Offset}}: Z-axis offset from the surface of the object
 +
* {{PropertyData|Layer Mode}}: The completion mode for the operation: single or multi-pass
 +
* {{PropertyData|Pattern Center At}}: Choose location of the center point for starting the cut pattern
 +
* {{PropertyData|Pattern Center Custom}}: Set the start point for the cut pattern
 +
* {{PropertyData|Profile Edges}}: Profile the edges of the selection
 +
* {{PropertyData|Sample Interval}}: The Sample Interval. Small values cause long wait times
 +
* {{PropertyData|Step Over}}: Step over percentage of the drop cutter path
  
 
====Depth====
 
====Depth====
Line 145: Line 150:
 
* {{PropertyData|Start Depth}}: Starting Depth of Tool- first cut depth in Z
 
* {{PropertyData|Start Depth}}: Starting Depth of Tool- first cut depth in Z
 
* {{PropertyData|Step Down}}: Incremental Step Down of Tool
 
* {{PropertyData|Step Down}}: Incremental Step Down of Tool
 +
 +
====Mesh Conversion====
 +
 +
* {{PropertyData|Angular Deflection}}: Smaller values yield a finer, more accurate mesh. Smaller values increase processing time a lot
 +
* {{PropertyData|Linear Deflection}}: Smaller values yield a finer, more accurate mesh. Smaller values do not increase processing time much
 +
 +
====Optimization====
 +
 +
* {{PropertyData|Circular Use G2 G3}}: Convert co-planar arcs to G2/G3 gcode commands for `Circular` and `CircularZigZag` cut patterns
 +
* {{PropertyData|Gap Sizes}}: Feedback: three smallest gaps identified in the path geometry
 +
* {{PropertyData|Gap Threshold}}: Collinear and co-radial artifact gaps that are smaller than this threshold are closed in the path
 +
* {{PropertyData|Optimize Linear Paths}}: Enable optimization of linear paths (co-linear points). Removes unnecessary co-linear points from G-Code output
 +
* {{PropertyData|Optimize Step Over Transitions}}: Enable separate optimization of transitions between, and breaks within, each step over path
  
 
====Path====
 
====Path====
  
 
* {{PropertyData|Active}}: make False, to prevent operation from generating code
 
* {{PropertyData|Active}}: make False, to prevent operation from generating code
 +
* {{PropertyData|Base}}: The base geometry for this operation
 
* {{PropertyData|Comment}}: An optional comment for this Operation
 
* {{PropertyData|Comment}}: An optional comment for this Operation
* {{PropertyData|Cut Mode}}: The direction that the toolpath should go around the part: Climb(ClockWise) or Conventional(CounterClockWise)
+
* {{PropertyData|Coolant Mode}}: Coolant mode for this operation
 +
* {{PropertyData|Cycle Time}}: Operations Cycle Time Estimation
 
* {{PropertyData|Tool Controller}}: Defines the Tool controller used in the Operation
 
* {{PropertyData|Tool Controller}}: Defines the Tool controller used in the Operation
* {{PropertyData|Cut Pattern}}: Clearing pattern to use
 
* {{PropertyData|Cutter Boundary}}: Identify cutter boundary for operation.
 
 
* {{PropertyData|User Label}}: User assigned label
 
* {{PropertyData|User Label}}: User assigned label
  
 
====Rotation====
 
====Rotation====
  
* {{PropertyData|Alt Depth Calc}}:
 
* {{PropertyData|Attempt Inverse Angle}}: Automatically attempt Inverse Angle if initial rotation is incorrect.
 
 
* {{PropertyData|Cutter Tilt}}: Set the cutter (spindle) tilt angle.
 
* {{PropertyData|Cutter Tilt}}: Set the cutter (spindle) tilt angle.
* {{PropertyData|Enable Rotation}}: Enable rotation to gain access to pockets or areas not normal to Z axis.
+
* {{PropertyData|Drop Cutter Dir}}: The direction along which dropcutter lines are created
* {{PropertyData|Fixed Index}}: Set fixed index for rotation.
+
* {{PropertyData|Drop Cutter Extra Offset}}: Additional offset to the selected bounding box - use sub-properties to set values
* {{PropertyData|Indexing Mode}}: Select indexing mode: auto = automatic angle detaction; fixed = user set angle.
+
** {{PropertyData|X}}: x distance value
* {{PropertyData|Inverse Angle}}: Inverse the angle of the rotation.  '' '''Example:''' change a rotation from -22.5 to 22.5 degrees.''
+
** {{PropertyData|Y}}: y distance value
* {{PropertyData|Reverse Direction}}: Reverse orientation of Operation by 180 degrees.
+
** {{PropertyData|Z}}: z distance value
 
* {{PropertyData|Rotation Axis}}: Set the axis for model rotation.
 
* {{PropertyData|Rotation Axis}}: Set the axis for model rotation.
 
* {{PropertyData|Start Index}}: Start index(angle) for rotation
 
* {{PropertyData|Start Index}}: Start index(angle) for rotation
 
* {{PropertyData|Stop Index}}: Stop index(angle) for rotation
 
* {{PropertyData|Stop Index}}: Stop index(angle) for rotation
 +
 +
====Selected Geometry Settings====
 +
 +
* {{PropertyData|Avoid Last X Faces}}: Avoid cutting the last 'N' faces in the Base Geometry list of selected faces
 +
* {{PropertyData|Avoid Last X Internal Features}}: Do not cut internal features on avoided faces
 +
* {{PropertyData|Boundary Adjustment}}: Positive values push the cutter toward, or beyond, the boundary. Negative values retract the cutter away from the boundary
 +
* {{PropertyData|Boundary Enforcement}}: If true, the cutter will remain inside the boundaries of the model or selected face(s)
 +
* {{PropertyData|Handle Multiple Features}}: Choose how to process multiple Base Geometry features
 +
* {{PropertyData|Internal Features Adjustment}}: Positive values push the cutter toward, or into, the feature. Negative values retract the cutter away from the feature
 +
* {{PropertyData|Internal Features Cut}}: Cut internal feature areas within a larger selected face
 +
 +
====Start Point====
 +
 +
* {{PropertyData|Start Point}}:  The custom start point for the path of this operation, set in sub-properties: x, y, z
 +
** {{PropertyData|X}}: x axis value
 +
** {{PropertyData|Y}}: y axis value
 +
** {{PropertyData|Z}}: z axis value
 +
* {{PropertyData|Use Start Point}}: Make True, if specifying a Start Point
  
 
====Surface====
 
====Surface====
  
* {{PropertyData|Depth Offset}}: Z-axis offset from the surface of the object
+
* {{PropertyData|Scan Type}}: Planar: Flat, 3D surface scan.  Rotational: 4th-axis rotational scan.
* {{PropertyData|Optimize}}: Enable optimization which removes unnecessary points from G-Code output
 
* {{PropertyData|Sample Interval}}: The Sample Interval. Small values cause long wait times
 
* {{PropertyData|Step Over}}: Step over percentage of the drop cutter path
 
  
 
====Waste====
 
====Waste====
Line 182: Line 213:
 
* {{PropertyData|Ignore Waste Depth}}: Depth used to identify waste areas to ignore.
 
* {{PropertyData|Ignore Waste Depth}}: Depth used to identify waste areas to ignore.
 
* {{PropertyData|Release From Waste}}: Cut through waste to depth at model edge, releasing the model.
 
* {{PropertyData|Release From Waste}}: Cut through waste to depth at model edge, releasing the model.
 
  
 
==Tasks Window Editor Layout==
 
==Tasks Window Editor Layout==
Line 190: Line 220:
 
====Base Location====
 
====Base Location====
  
 +
* '''Base Geometry import selection''': Use this list to select Base Geometry to be imported from the selected, existing operation
 +
* '''Import''': imports the selected operation's Base Geometry into the current operations Base Geometry list
 +
* '''Base Geometry list for current operation''': List of Base Geometry for current operation, if any selected
 
* '''Add''': adds selected element(s) which should be the base(s) for the path(s)
 
* '''Add''': adds selected element(s) which should be the base(s) for the path(s)
 
* '''Remove''': remove the selected item(s) in the Base Location list
 
* '''Remove''': remove the selected item(s) in the Base Location list
Line 204: Line 237:
 
* {{PropertyData|Safe Height}}
 
* {{PropertyData|Safe Height}}
 
* {{PropertyData|Clearance Height}}
 
* {{PropertyData|Clearance Height}}
 
====Rotation (when available)====
 
 
* {{PropertyData|Enable Rotation}}
 
* {{PropertyData|Rotation Axis}}
 
* {{PropertyData|Indexing Mode}}
 
* {{PropertyData|Fixed Index}}
 
* {{PropertyData|Start Index}}
 
* {{PropertyData|Stop Index}}
 
* {{PropertyData|Cutter Tilt}}
 
* {{PropertyData|Reverse Direction}}
 
* {{PropertyData|Alternative Depth Calculation}}
 
  
 
====Operation====
 
====Operation====
  
* {{PropertyData|Algorithm}}
 
 
* {{PropertyData|Tool Controller}}
 
* {{PropertyData|Tool Controller}}
 +
* {{PropertyData|Coolant Mode}}
 +
 
* {{PropertyData|BoundBox}}
 
* {{PropertyData|BoundBox}}
 +
* {{PropertyData|Scan Type}}
 +
* {{PropertyData|Layer Mode}}
 
* {{PropertyData|BoundBox extra offset X}}
 
* {{PropertyData|BoundBox extra offset X}}
 
* {{PropertyData|BoundBox extra offset Y}}
 
* {{PropertyData|BoundBox extra offset Y}}
 
* {{PropertyData|Drop Cutter Direction}}
 
* {{PropertyData|Drop Cutter Direction}}
 
* {{PropertyData|Depth Offset}}
 
* {{PropertyData|Depth Offset}}
 +
* {{PropertyData|Step Over}}
 
* {{PropertyData|Sample Interval}}
 
* {{PropertyData|Sample Interval}}
* {{PropertyData|Step Over}}
 
 
* {{PropertyData|Optimize Output Enabled}}
 
* {{PropertyData|Optimize Output Enabled}}
+
 
 +
* {{PropertyData|Use Start Point}}
 +
* {{PropertyData|Boundary Enforcement}}
 +
* {{PropertyData|Optimize Linear Paths}}
  
 
==Resources==
 
==Resources==

Revision as of 20:43, 1 December 2020

Other languages:
English • ‎français • ‎italiano • ‎polski • ‎português do Brasil • ‎română • ‎русский
This is an unfinished experimental feature. Enable Experimental Features

This documentation is not finished. Please help and contribute documentation.

Gui Command explains how tools should be documented. See Draft ShapeString for an example of a well documented tool. Browse Category:UnfinishedDocu/en to see incomplete pages like this one. See Category:Command Reference/en for all commands.

See WikiPages to learn about editing the wiki pages, and go to Help FreeCAD to learn about other ways in which you can contribute.

Arrow-left.svg Previous: Path SimpleCopy.svg Simple Copy

Path 3DSurface.svg Path 3DSurface

Menu location
Path → 3D Surface
Workbenches
Path
Default shortcut
None
Introduced in version
0.19
See also
None

Description

This tool creates a new Path 3DSurface.svg 3D Surface operation which is capable of generating G-Code paths for the entire top surface of a 3D model (or is able to work with selected faces) and allows for faces to be avoided. This operation offers multiple cut patterns: Line, Zigzag, Circular, Circular Zigzag, Offset, and Spiral (similar to an adaptive pattern). As of version 0.19, this operation offers many customizations to allow for greater productivity.


The Path 3DSurface.svg 3D Surface operation is also capable of generating basic rotational 3D surfacing paths. The rotational capabilities are limited to the entire model, and do not allow for specific faces or regions to be isolated. The rotational paths are also limited to line cut patterns.


The 3D Surface Tool interfaces to OCL.pyd, a 3rd party Open Source module titled OpenCamLib, that generates tool paths from a 3D model. OpenCamLib is not integrated directly into FreeCAD to ensure their license is not violated.


Note: In order to use the 3D Surface operation you must:

  1. Properly install OpenCamLib.
  2. Enable Experimental Features for the Path Workbench.

Usage

Usage instructions for multiple variations of the 3D Surface operation are presented here.

Basic Operation

  1. Press the Path 3DSurface.svg 3D Surface icon, or select Path → 3D Surface from the dropdown menu.
  2. Select the tool controller for the Operation from the Tool controller dialogue pop up window, if presented.
  3. In the Base Geometry tab, select any specific faces you wish to focus on and/or avoid for the operation.
  4. Adjust the operation depths as needed in the Depths tab: Start Depth, Finish Depth, Step Down.
  5. Make adjustments in Heights tab if needed.
  6. Configure settings in the Operations tab as needed:
    • Choose your Coolant Mode.
    • Choose the BoundBox: Stock or BaseBoundBox
    • Set the Scan Type for the operation: Planar or Rotational
    • Select the Layer Mode for the operation: Single-pass or Multi-pass
      1. Single-pass is for a finishing pass
      2. Multi-pass could be used for clearing in combination with the use of Depth Offset to leave a thin surface layer for a finish pass
    • Add additional BoundBox Extra Offset to X and Y as desired (Rotational scans only)
    • Set the Drop Cutter Direction: X or Y. This is the linear direction the cutter(spindle) will travel. (Rotational scans only)
    • Add a Depth Offset value if you wish to leave a specified thickness of material on the surface, for say a final finish pass
    • Set the Sample Interval used for the OCL scan.
    • Set the Step Over value as a percentage of the diameter of the Tool.
    • Check the Use Start Point box if you wish to provide a start point for the operation in the properties view of the data tab for the operation.
    • Boundary Enforcement is enabled by default. This forces the cutter to remain inside the boundaries of the feature geometry for the operation, like a pocketing operation. Disable to allow the cutter to extend to the outside of the feature geometry. The Boundary Adjustment property supersedes this property.
    • Optimize Linear Paths is enabled by default. Disabling will yield a longer gcode result and likely increase cut time.
  7. If you wish to preview the result before accepting the settings, click Apply
  8. Click OK button to confirm and generate paths.

To achieve different, or more complex, effects, adjust additional operation properties within the Data tab of the Properties View for the operation.


Rotational Scans (4th-axis)

  1. Initiate a Basic Operation as described above and set the Scan Type to Rotational.
  2. Note: Face selection is unavailable for Rotational scans, so changes to Base Geometry are ignored.
  3. Locate the Data tab and Properties View for the new 3D Surface operation. A Rotation section should be available with additional properties to adjust, listed below.
    It is recommended that you set the desired rotation properties all at once before recomputing. This is done by clicking the ENTER key immediately after changing a property setting. This process will allow you to change and save multiple properties before recomputing the operation.
  4. Adjust the following settings as needed:
    • Set DataCutter Tilt to the offset index(angle) [0-90]. (Used for ball mill cutters)
    • Change DataDrop Cutter Dir to the axis of travel for the cutter(spindle).
    • Change DataDrop Cutter Extra Offset to extend the BoundBox in the X and Y directions.
    • Set DataRotation Axis to the desired axis.
    • Adjust DataStart Index to start index(angle) [0-360].
    • Adjust DataStop Index to stop index(angle) [0-360].
  5. Click the View-refresh.svg Recompute icon in the tool bar.
  6. Wait for the results...
Notes About Rotational Scans
  • Rotational scans require much more time and processing than Planar scans. Factors affecting processing time include: Sample Interval, Step Over, tool diameter, and model size. Again, rotational scans can take a long time. Some might take 3, 5 or 10 minutes or longer.
  • For time purposes, it is better that you not recompute a rotational scan after every property change; rather, consider one of the following:
    • use the ' change all settings with ENTER key ' technique mentioned in Step 2 above, then View-refresh.svg Recompute the operation.
    • deactivate the operation with the Path OpActive.svg Active toggle tool, make your changes to the operation's properties, then click the Path OpActive.svg Active icon again to re-activate the operation - which triggers a recompute internally.
  • The Path 3DSurface.svg 3D Surface operation is still considered an experimental feature as of 2019-06-25. As such, it may contain a few bugs yet to be clearly identified. Please report bugs and issues in the FreeCAD Path/CAM Forum.
  • The built in Path Simulator.svg CAM Simulator does NOT support 4th-axis simulation. You will need to use a third party simulator to inspect or verify paths visually. See the Resources section below for suggestions.
  • You will likely see red rotational lines around your model in the viewport. This is normal in FreeCAD for the time being.


Available Tool (Cutter) Shapes

This 3D Surface op currently uses OpenCamLib [OCL] to extract paths from the part base. As such, a tool setting translation is required between the FreeCAD tool controller and OCL in order to complete the scan with your chosen tool(cutter) shape.

These tool shapes are respected and available for this 3D Surface operation:

  • End mill
  • Ball end mill
  • Bull nose end mill
  • Chamfer bit
  • Engraver


Should you choose to run the path simulator in the Path Workbench, it only uses the standard end mill to simulate paths. Therefore, you will not see tool-shape-specific material removal. Material removal is shown using the end mill shape.


NOTE: As of May 2019, only the End Mill has any type of testing to determine accuracy of the FreeCAD-to-OCL tool settings translation. Please post any feedback for non-end-mill usage to the Path/CAM section in the FreeCAD forums.

Properties: Version 0.19

Note : Not all of these Properties are available in the Task Window Editor. Some are only accessible in the Data tab of the Properties View panel for this Operation.

Base

Note: It is suggested that you do not edit the Placement property of path operations. Rather, move or rotate the Path Job model as needed.

  • DataPlacement: Overall placement[position and rotation] of the object - with respect to the origin (or origin of parent object container)
    • DataAngle: Angle in degrees applied to rotation of the object around Axis property value
    • DataAxis: Axis(one or multiple) around which to rotate the object, set in sub-properties: x, y, z
      • DataX: x axis value
      • DataY: y axis value
      • DataZ: z axis value
    • DataPosition: Position of the object, set in sub-properties: x, y, z - with respect to the origin (or origin of parent object container)
      • DataX: x distance value
      • DataY: y distance value
      • DataZ: z distance value
  • DataLabel: User-provided name of the object (UTF-8)

Clearing Options

  • DataBound Box: Should the operation be limited by the stock object or by the bounding box of the base object
  • DataCut Mode: The direction that the toolpath should go around the part: Climb(ClockWise) or Conventional(CounterClockWise)
  • DataCut Pattern: Clearing pattern to use
  • DataCut Pattern Reversed: Reverse the cut order of the stepover paths. For circular cut patterns, begin at the outside and work toward the center
  • DataDepth Offset: Z-axis offset from the surface of the object
  • DataLayer Mode: The completion mode for the operation: single or multi-pass
  • DataPattern Center At: Choose location of the center point for starting the cut pattern
  • DataPattern Center Custom: Set the start point for the cut pattern
  • DataProfile Edges: Profile the edges of the selection
  • DataSample Interval: The Sample Interval. Small values cause long wait times
  • DataStep Over: Step over percentage of the drop cutter path

Depth

  • DataClearance Height: The height needed to clear clamps and obstructions
  • DataFinal Depth: Final Depth of Tool- lowest value in Z
  • DataSafe Height: The above which Rapid motions are allowed.
  • DataStart Depth: Starting Depth of Tool- first cut depth in Z
  • DataStep Down: Incremental Step Down of Tool

Mesh Conversion

  • DataAngular Deflection: Smaller values yield a finer, more accurate mesh. Smaller values increase processing time a lot
  • DataLinear Deflection: Smaller values yield a finer, more accurate mesh. Smaller values do not increase processing time much

Optimization

  • DataCircular Use G2 G3: Convert co-planar arcs to G2/G3 gcode commands for `Circular` and `CircularZigZag` cut patterns
  • DataGap Sizes: Feedback: three smallest gaps identified in the path geometry
  • DataGap Threshold: Collinear and co-radial artifact gaps that are smaller than this threshold are closed in the path
  • DataOptimize Linear Paths: Enable optimization of linear paths (co-linear points). Removes unnecessary co-linear points from G-Code output
  • DataOptimize Step Over Transitions: Enable separate optimization of transitions between, and breaks within, each step over path

Path

  • DataActive: make False, to prevent operation from generating code
  • DataBase: The base geometry for this operation
  • DataComment: An optional comment for this Operation
  • DataCoolant Mode: Coolant mode for this operation
  • DataCycle Time: Operations Cycle Time Estimation
  • DataTool Controller: Defines the Tool controller used in the Operation
  • DataUser Label: User assigned label

Rotation

  • DataCutter Tilt: Set the cutter (spindle) tilt angle.
  • DataDrop Cutter Dir: The direction along which dropcutter lines are created
  • DataDrop Cutter Extra Offset: Additional offset to the selected bounding box - use sub-properties to set values
    • DataX: x distance value
    • DataY: y distance value
    • DataZ: z distance value
  • DataRotation Axis: Set the axis for model rotation.
  • DataStart Index: Start index(angle) for rotation
  • DataStop Index: Stop index(angle) for rotation

Selected Geometry Settings

  • DataAvoid Last X Faces: Avoid cutting the last 'N' faces in the Base Geometry list of selected faces
  • DataAvoid Last X Internal Features: Do not cut internal features on avoided faces
  • DataBoundary Adjustment: Positive values push the cutter toward, or beyond, the boundary. Negative values retract the cutter away from the boundary
  • DataBoundary Enforcement: If true, the cutter will remain inside the boundaries of the model or selected face(s)
  • DataHandle Multiple Features: Choose how to process multiple Base Geometry features
  • DataInternal Features Adjustment: Positive values push the cutter toward, or into, the feature. Negative values retract the cutter away from the feature
  • DataInternal Features Cut: Cut internal feature areas within a larger selected face

Start Point

  • DataStart Point: The custom start point for the path of this operation, set in sub-properties: x, y, z
    • DataX: x axis value
    • DataY: y axis value
    • DataZ: z axis value
  • DataUse Start Point: Make True, if specifying a Start Point

Surface

  • DataScan Type: Planar: Flat, 3D surface scan. Rotational: 4th-axis rotational scan.

Waste

  • DataIgnore Waste: Ignore areas that proceed below specified depth.
  • DataIgnore Waste Depth: Depth used to identify waste areas to ignore.
  • DataRelease From Waste: Cut through waste to depth at model edge, releasing the model.

Tasks Window Editor Layout

Descriptions for the settings are provided in the Properties list above. This section is simply a layout map of the settings in the window editor for the Operation.

Base Location

  • Base Geometry import selection: Use this list to select Base Geometry to be imported from the selected, existing operation
  • Import: imports the selected operation's Base Geometry into the current operations Base Geometry list
  • Base Geometry list for current operation: List of Base Geometry for current operation, if any selected
  • Add: adds selected element(s) which should be the base(s) for the path(s)
  • Remove: remove the selected item(s) in the Base Location list
  • Edit: clear all items in the Base Location list

Depth

  • DataStart Depth
  • DataFinal Depth
  • DataStep Down

Height

  • DataSafe Height
  • DataClearance Height

Operation

  • DataTool Controller
  • DataCoolant Mode
  • DataBoundBox
  • DataScan Type
  • DataLayer Mode
  • DataBoundBox extra offset X
  • DataBoundBox extra offset Y
  • DataDrop Cutter Direction
  • DataDepth Offset
  • DataStep Over
  • DataSample Interval
  • DataOptimize Output Enabled
  • DataUse Start Point
  • DataBoundary Enforcement
  • DataOptimize Linear Paths

Resources

Arrow-left.svg Previous: Path SimpleCopy.svg Simple Copy