CAM Waterline

This operation requires OpenCamLib and the preference Edit  Preferences  CAM  Advanced  Enable OCL dependent features. Enabling it requires a restart of FreeCAD.
This page is incomplete; it was marked as unfinished on the wiki.

CAM Waterline CAM Waterline

Menu location

CAM  Waterline

Toolbar

New Operations → Waterline (shown only when OCL dependent features are enabled)

Workbenches

CAM

Default shortcut

None

Introduced in version

0.19

See also

CAM Surface, CAM RotarySurface

Description

The CAM Waterline CAM Waterline command creates a new Waterline operation. Its tooltip reads: Create a Waterline toolpath from a model. The Operation works on the whole Model by default. Faces can be added as Base Geometry on the Base Geometry tab to limit the scan (verify the behaviour for your chosen algorithm); the OCL Adaptive algorithm ignores Waterline boundaries, use a Boundary Dressup if required.

The Waterline operation has three algorithms: OCL Dropcutter, OCL Adaptive, and Experimental.

  • The OCL Dropcutter and OCL Adaptive algorithms interface to OCL.pyd, a 3rd party Open Source module titled OpenCamLib, that generates Toolpaths from a 3D Model. OpenCamLib is not integrated directly into FreeCAD.

  • introduced in 26.3: The OCL Adaptive algorithm is available. It can generate smoother paths more quickly for suitable models. It is not restricted by Waterline boundaries; use a Boundary Dressup if required.

  • The Experimental algorithm makes use of the built-in Path.Area() class.

Note: In order to use the Waterline operation you must:

  1. Properly install OpenCamLib.

  2. Check Edit  Preferences  CAM  Advanced  Enable OCL dependent features and restart FreeCAD.

Usage

Usage instructions for multiple variations of the Waterline operation are presented here.

Basic Operation

  1. Press the CAM Waterline Waterline icon, or select the Waterline tool from the CAM menu.

  2. On the Tool Controller tab select the Tool Controller and Coolant mode. 26.3 and later

  3. On the Heights tab adjust Clearance, Retract, Start depth, Final depth and Step down. 26.3 and later depths and heights share a single Heights tab.

  4. Configure settings in the Operations tab based on the Algorithm selected:

    1. OCL Dropcutter

      1. Choose the BoundBox: Stock or BaseBoundBox.

      2. Set the Layer Mode: Single-pass or Multi-pass.

      3. Set the Sample Interval used for the OCL scan.

    2. OCL Adaptive

      1. Set the Layer Mode: Single-pass or Multi-pass.

      2. Set the Sample Interval and Min Sample Interval for the adaptive OCL scan.

      3. Optionally enable Optimize Linear Paths.

    3. Experimental

      1. Choose the BoundBox: Stock or BaseBoundBox.

      2. Set the Layer Mode: Single-pass or Multi-pass.

      3. Set the Cut Pattern if clearing is desired at each layer.

      4. Set the Step over percentage (shown when a Cut Pattern other than None is selected).

      5. Set the Boundary Adjustment (material allowance).

  5. If you wish to preview the result before accepting the settings, click Apply

  6. Click OK button to confirm and generate the Toolpath.

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

Notes About Experimental Algorithm

  • It does not handle overhangs correctly.

  • It only returns paths for an End Mill type cutter (Tool Bit).

  • It might not correctly catch all interior features.

  • It is just that, experimental, and not ready for mainstream integration. Please inspect Toolpaths with the built-in CAM SimulatorGL CAM Simulator, or other 3rd-party G-code inspection tools, before cutting with your machine.

Available Tool (Cutter) Shapes

With the OCL Dropcutter and OCL Adaptive algorithms, the Waterline operation uses OpenCamLib OCL to extract Toolpaths from the part base. As such, the Tool Bit is translated to an OpenCamLib cutter. Supported Tool Shapes:

  • Endmill

  • Ballend

  • Bullnose

  • TaperedBallNose (treated as a ball end of the same diameter)

  • V-bit (treated as a cone with the cutting edge angle)

  • Drill (treated as a cone with the tip angle)

Chamfer and the remaining shapes are not supported; the Operation reports Failed to map selected tool to an OCL tool type.

Additional Notes

  • A small trial job using foam or other very non-dense material is recommended to verify the Toolpath is correct with your selected Tool Controller before cutting real stock.

  • Please post any feedback about the FreeCAD-to-OCL translation of non-endmill Tool Shapes to the CAM section in the FreeCAD forums.

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.

Base

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

  • Placement: Overall placement[position and rotation] of the object - with respect to the origin (or origin of parent object container)

    • Angle: Angle in degrees applied to rotation of the object around Axis property value

    • Axis: Axis (one or multiple) around which to rotate the object, set in sub-properties: X, Y, Z

      • X: X-axis value

      • Y: Y-axis value

      • Z: Z-axis value

    • Position: Position of the object, set in sub-properties: X, Y, Z - with respect to the origin (or origin of parent object container)

      • X: X-distance value

      • Y: Y-distance value

      • Z: Z-distance value

  • Label: User-provided name of the object (UTF-8)

Clearing Options
  • Algorithm: Select the algorithm to use: OCL Dropcutter (default), OCL Adaptive (introduced in 26.3) or Experimental (not OCL based)

  • Bound Box: Select the overall boundary for the Operation. Values: BaseBoundBox, Stock. Not used by OCL Adaptive

  • Clear Last Layer: Pattern used to clear the last layer of a Multi-pass Experimental Operation. Values: Off (default), Circular, CircularZigZag, Line, Offset, Spiral, ZigZag. Only visible with the Experimental algorithm

  • Cut Mode: The direction that the Toolpath should go around the part: Climb (ClockWise) or Conventional (CounterClockWise)

  • Cut Pattern: Clearing pattern applied at each layer (Experimental algorithm only). Values: None (default), Circular, CircularZigZag, Line, Offset, Spiral, ZigZag

  • Cut Pattern Angle: The yaw angle used for the Line and ZigZag patterns. Only visible with the Experimental algorithm and a matching Cut Pattern

  • Cut Pattern Reversed: Reverse the cut order of the stepover paths; for circular patterns begin at the outside and work toward the center. Only visible with the Experimental algorithm and a matching Cut Pattern

  • Depth Offset: Set the Z-axis depth offset from the target surface. Default 0

  • Ignore Outer Above: Ignore outer waterlines above this height. Defaults to the top of the Stock. Experimental algorithm only

  • Layer Mode: The completion mode for the operation: single or multi-pass

  • Min Sample Interval: Minimum sampling resolution for the OCL Adaptive algorithm. Smaller values quickly increase processing time. Default 0.005 mm, limited to 0.0001-25.4 mm. introduced in 26.3

  • Optimize Linear Paths: Remove unnecessary co-linear points from G-code output. Default on. Editable in the task panel for the OCL Adaptive algorithm (introduced in 26.3)

  • Pattern Center At: Center point for circular and spiral patterns. Values: CenterOfMass, CenterOfBoundBox, XminYmin, Custom. Only visible with the Experimental algorithm and a matching Cut Pattern

  • Pattern Center Custom: Custom center point for the cut pattern. Only visible with the Experimental algorithm and a matching Cut Pattern

  • Sample Interval: Set the sampling resolution. Smaller values quickly increase processing time. Default 1 mm; OCL algorithms only

  • Step Over: Step over as a percentage of the Tool Bit diameter for the clearing pattern. Default 100, range 1-100. Experimental algorithm only

Depth
  • Clearance Height: The height needed to clear clamps and obstructions

  • Final Depth: Final Depth of Tool- lowest value in Z

  • Safe Height: Rapid safety height between locations.

  • Start Depth: Starting Depth of Tool- first cut depth in Z

  • Step Down: Incremental Step Down of Tool

Mesh Conversion
  • Angular Deflection: Smaller values yield a finer, more accurate mesh but increase processing time a lot. Default 0.25

  • Linear Deflection: Smaller values yield a finer, more accurate mesh. Default: the Job Geometry Tolerance (0.0001 mm if the tolerance is 0)

Both are hidden for the OCL Adaptive algorithm, which overrides them.

Optimization
  • Optimize Linear Paths: See Clearing Options above

  • Optimize Step Over Transitions: Hidden; reserved for the Experimental algorithm

  • Gap Threshold: Hidden; reserved for the Experimental algorithm

  • Gap Sizes: Hidden; reserved for the Experimental algorithm

Selected Geometry Settings

These properties are hidden in the Property view.

  • Boundary Adjustment: Positive values push the cutter toward or beyond the boundary, negative values retract it (material allowance); set it in the task panel with the Experimental algorithm

  • The remaining properties (Avoid Last X Faces, Avoid Last X Internal Features, Boundary Enforcement, Handle Multiple Features, Internal Features Adjustment, Internal Features Cut) mirror the 3D Surface operation

Path
  • Active: Make False, to prevent operation from generating code

  • Base: The base geometry for this operation

  • Block Delete: Enable post processor to add block delete commands. introduced in 26.3

  • Comment: An optional comment for this Operation

  • Coolant Mode: Coolant mode for this Operation (None, Flood, Mist)

  • Cycle Time: Read-only estimate of the Operation cycle time

  • Tool Controller: Defines the Tool Controller used in the Operation

  • User Label: User assigned label

  • Workplane: introduced in 26.3 The link to the Work Plane that the Operation works in. An Operation with no link works in the XY of the Job.

Op Values

Read-only values computed by the Operation:

  • Op Start Depth: Holds the calculated value for the StartDepth

  • Op Final Depth: Holds the calculated value for the FinalDepth

  • Op Tool Diameter: Holds the diameter of the Tool Bit

  • Op Stock Z Max: Holds the max Z value of Stock

  • Op Stock Z Min: Holds the min Z value of Stock

Start Point
  • Start Point: The custom start point for the Toolpath of this operation.

    • X: X-distance value

    • Y: Y-distance value

    • Z: Z-distance value

  • Use Start Point: Make True, if specifying a Start Point

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 Geometry

  • Import: Imports the Base Geometry of another Operation.

  • Add: Adds the selected faces.

  • Remove: Removes the selected list items.

  • Clear: Clears the list.

Heights

  • Clearance Height (Clearance)

  • Safe Height (Retract)

  • Start Depth

  • Step Down

  • Final Depth

Tool Controller

26.3 and later

  • Tool Controller

  • Coolant Mode

Operation

  • Algorithm

  • BoundBox (OCL Dropcutter, Experimental)

  • Layer Mode

  • Cut Pattern (Experimental)

  • Boundary Adjustment (Experimental)

  • Step Over (Experimental, Cut Pattern not None)

  • Sample Interval (OCL Dropcutter, OCL Adaptive)

  • Min Sample Interval (OCL Adaptive)

  • Optimize Linear Paths (OCL Adaptive)

Note: the task panel tooltip for Boundary adjustment repeats the Depth offset text; Boundary adjustment actually controls the boundary: positive values push the cutter toward or beyond the boundary, negative values leave material (allowance).

Scripting

import Path.Op.Waterline as PathWaterline

op = PathWaterline.Create('Waterline')
op.ToolController = job.Tools.Group[0]
op.Algorithm = 'OCL Adaptive'
op.LayerMode = 'Multi-pass'
doc.recompute()