Path Surface

Description
This tool creates a new 3D Surface Operation. A 3D Surface operation uses the entire top surface of the 3D Model to generate G-Code for the Job.

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

 * 1) Press the  button.
 * 2) Select the tool controller for the Operation from the Tool controller dialogue pop up window.
 * 3) Set the Finish Depth.
 * 4) Select between Dropcutter and Waterline for the Tool algorithm.
 * 5) Apply, then click OK button to confirm.

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 operation:

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.
 * End mill
 * Ball end mill
 * Bull nose end mill
 * Chamfer bit
 * Engraver

Properties
 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

 * : The library to use to generate the path
 * : Should the operation be limited by the stock object or by the bounding box of the base object
 * : The direction along which dropcutter lines are created
 * : Additional offset to the selected bounding box - use sub-properties to set values
 * : x distance value
 * : y distance value
 * : z distance value
 * : The completion mode for the operation: single or multi-pass
 * : Planar: Flat, 3D surface scan. Rotational: 4th-axis rotational scan.

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.


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

Depth

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

Path

 * : make False, to prevent operation from generating code
 * : An optional comment for this Operation
 * : The direction that the toolpath should go around the part: Climb(ClockWise) or Conventional(CounterClockWise)
 * : Defines the Tool controller used in the Operation
 * : Clearing pattern to use
 * : Identify cutter boundary for operation.
 * : User assigned label

Rotation

 * : Automatically attempt Inverse Angle if initial rotation is incorrect.
 * : Set the cutter (spindle) tilt angle.
 * : Enable rotation to gain access to pockets or areas not normal to Z axis.
 * : Set fixed index for rotation.
 * : Select indexing mode: auto = automatic angle detaction; fixed = user set angle.
 * : Inverse the angle of the rotation.   Example: change a rotation from -22.5 to 22.5 degrees.
 * : Reverse orientation of Operation by 180 degrees.
 * : Set the axis for model rotation.
 * : Start index(angle) for rotation
 * : Stop index(angle) for rotation
 * : Stop index(angle) for rotation

Surface

 * : Z-axis offset from the surface of the object
 * : Enable optimization which removes unnecessary points from G-Code output
 * : The Sample Interval. Small values cause long wait times
 * : Step over percentage of the drop cutter path

Waste

 * : Ignore areas that proceed below specified depth.
 * : Depth used to identify waste areas to ignore.
 * : 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

 * 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