3D Profile Machining Operation

3D Profiles can be used to machine 3D objects from triangular mesh files. Currently 3DS and STL files are supported.

3D Profiles support the following features.

  • Waterline roughing and finishing methods.
  • Z scanline roughing and finishing methods.
  • Front face and back face machining
  • Generation of negative molds from positive shapes.
  • Restriction of machining boundary to save machining time.
  • Experimental additive support for extrusion heads.

This method replaces the Bas Relief method in older CamBam versions.

See also:
3D Profile Tutorial, 3D Profile Tutorial - Back face



If set to True, an additive toolpath will be generated, suitable for extrusion heads.

Additive toolpaths are generated from lowest to highest Z levels with the lowest (starting) level at Z=Stock Surface

For best results, this setting would be combined with a Waterline Rough 3D profile methods, and a small Depth Increment.

This method is very experimental at the moment and more work is needed to tie in with the post processor to control the extruder.

Arc Fit Tolerance
[New! 0.9.8N]

The tolerance used when automatic arc fitting is applied.

Zero will use an automatically calculated value.

Auto Arc Fitting
[New! 0.9.8N]

Whether to apply arc fitting.

Arc fitting will make toolpaths smoother to machine and faster to calculate, but may introduce some inaccuracy.

Back Face

When set to True, a toolpath for the back face of the model will be generated.

If the back face option enabled, a valid Back Face Zero Z setting should also be supplied.

Back Face Culling

To improve code generation speed, model faces pointing away from the front are ignored.

This can cause problems when the triangle winding order is inconsistent, so this behaviour can be disabled by setting Back Face Culling to False.

Back Face Zero Z

If the Back Face setting is enabled, this is the current Z coordinate that will be at Z=0 after the model is 'Flipped' about the Flip Axis.

Boundary Margin

The outer boundary shape, as determined by the Boundary Method setting, is extended by the distance give in the Boundary Margin setting.

It is recommended that a margin greater than 0 is used when using waterline profile methods in combination with Shape Outline boundary methods.

Boundary Method

This property controls the shape of the area around the model to machine.

Boundary shapes options are:

Shape Outline - the outline shape of the source 3d models.

Bounding Box - a rectangle enclosing the source geometry.

Selected Shapes - A list of 3D or 2D shapes specified in Boundary Shape Ids.

Boundary Shape IDs

A list of drawing entity IDs that represent the shapes to use to determine the boundary shape.

Boundary Taper

Angle in degrees from vertical to taper the outer boundary edge.

Clearance Plane

The clearance plane (offset from the work plane).

The clearance plane should be clear of the stock and any holding devices to allow free movement to any location.

Clip Area Max
[New! 0.9.8]

A 2D Point, used with Clip Area Min to define a clipping area.

Clip Area Min
[New! 0.9.8]

A 2D Point, used with Clip Area Max to define a clipping area.

If Clip Area Max and Clip Area Min coordinates are both 0, the machining area will not be clipped.

Custom MOP Footer A multi-line gcode script that will be inserted into the gcode post after the current machining operation.
Custom MOP Header A multi-line gcode script that will be inserted into the gcode post before the current machining operation.
Cut Feedrate The feed rate to use when cutting.
Cut Ordering Controls whether to cut to depth first or all cuts on this level first.
Depth Increment Depth increment of each machining pass. Determines the number of passes to reach the final target depth.
Enabled True: The toolpaths associated with this machining operation are displayed and included in the gcode output
False: The operation will be ignored and no gcode or tool paths will be produced for this operation.
Flip Axis

The axis around which you would flip the stock to machine the back face.

Lead In Move

Defines the type of lead in move to use.

Lead Move Type: None | Spiral | Tangent
Spiral Angle: Used by spiral and tangents to control ramp angle.
Tangent Radius : The radius of the tangent lead in
Lead Move Feedrate : The feedrate to use for the lead move. If 0, Cut Feedrate is used.

Refer to the lead move section for more information.

Lead Out Move
[New! 0.9.8]

Defines the type of lead out move to use.

Refer to the lead move section for more information.

Max Crossover Distance

Maximum distance as a fraction (0-1) of the tool diameter to cut in horizontal transitions.

If the distance to the next toolpath exceeds MaxCrossoverDistance, a retract, rapid and plunge to the next position, via the clearance plane, is inserted.

Milling Direction

Controls the direction the cutter moves around the toolpath.

Conventional | Climb | Mixed


If set to True, a negative mold toolpath is generated from a positive shape.


Each machine operation can be given a meaningful name or description.
This is output in the gcode as a comment and is useful for keeping track of the function of each machining operation.

Optimisation Mode

An option that controls how the toolpaths are ordered in gcode output.

New (0.9.8) - A new, improved optimiser currently in testing.
Legacy (0.9.7) - Toolpaths are ordered using same logic as version 0.9.7.
None - Toolpaths are not optimised and are written in the order they were generated.

Plane Slice Only

CamBam's waterline routines have been designed to work best with natural / curved shapes. Engineering shapes with perpendicular sides can potentially cause problems. If problems are encountered, setting Plane Slice Only to True can help but will only work with shapes that do not have any overhangs.

Plunge Feedrate The feed rate to use when plunging.
Primitive IDs List of drawing objects from which this machine operation is defined.
Profile 3D Method

The method used to generate the 3D toolpath.

  • Horizontal - Use a Z scanning method in horizontal direction.
  • Vertical - Use a Z scanning method in vertical direction.
  • Waterline Rough - Uses a series of waterline slices which are pocketed up to the boundary shape.
  • Waterline Finish - Creates a profile using the tool offset at each waterline slice.
Region Fill Style

When Waterline Rough 3D profile method is selected, this option controls the pattern used to fill the pockets at each waterline layer.

The effects of each option can be seen when using the new Draw - Fill Region menu option.

Options are:

  • Horizontal Hatch region filled with horizontal lines
  • Vertical Hatch region filled with vertical lines
  • Inside + Outside Offsets region filled with progressive offsets from outside in, unioned with offsets from islands radiating outward.
  • Outside Offsets region filled with progressive offsets from outside in (like current pocket method).
  • Inside Offsets region filled with offsets from islands radiating outward.

For Horizontal and Vertical 3D profile methods, this is the distance along each scan line (expressed as a fraction (0-1) of the cutter diameter), for each Z height test point.
Larger resolution values are faster but could result in some features being over cut.

Roughing / Finishing

Used for scanline operations (Profile 3D Method = Vertical / Horizontal). If set to Finishing then any Depth Increment value is ignored and only the final pass is generated.
This has the same effect as setting Depth Increment = 0.

Roughing Clearance

This is the amount of stock to leave after the final cut.

Remaining stock is typically removed later in a finishing pass.

Negative values can be used to oversize cuts.

Scanline Gradient Threshold
[New! 0.9.8N]

For horizontal and vertical scanline methods, this property will suppress tool path segments steeper than a given gradient.

The value is specified in degrees where 90 degrees is vertical (Z).

A scanline finish with a reduced gradient threshold is useful when combined with a waterline finish operation. Waterline finish is best suited for steep areas but may result in uncut bands in shallow areas due to the limits its depth increment. Whereas scanlines work well on flat areas but can result in scalloped tool marks on steep model sides.

Using a Boundary Margin of (minus) the tool radius is recommended when using this property to restrict tool paths to shallow areas.

Spindle Direction

The direction of rotation of the spindle.

CW | CCW | Off

Spindle Range The pulley number or dial setting of the spindle for the target speed.
Spindle Speed The speed in RPM of the spindle.
Start Corner

Corner to start profiling. Used in Horizontal and Vertical 3D profiling methods only.

Start Point

Used to select a point, near to where the first toolpath should begin machining.
If a start point is defined, a small circle will be displayed at this point when the machining operation is selected. The start point circle can be moved by clicking and dragging.


The cut is increased by this amount each step, expressed as a fraction (0-1) of the cutter diameter.

For horizontal and vertical 3D profile methods, this is the distance between each scan line.

For waterline roughing, this is the distance between fill offset lines.

For waterline finishing, this value is not used.

Stepover Feedrate

The feed rate to use for crossover moves.

Stock Surface

This is the Z offset of the stock surface at which to start machining.

[New! 0.9.8]

Select a CAM Style for this machining operation. All default parameters will be inherited from this style.

[New! 0.9.8]

A general purpose, multiline text field that can be used to store notes or parameters from plugins.

Target Depth

The Z coordinate of the final machining depth.

Tool Diameter

This is the diameter of the current tool in drawing units.

If the tool diameter is 0, the diameter from the tool information stored in the tool library for the given tool number will be used.

Tool Number

The ToolNumber is used to identify the current tool.

If ToolNumber changes between successive machine ops a toolchange instruction is created in gcode. ToolNumber=0 is a special case which will not issue a toolchange.

The tool number is also used to look up tool information in the current tool library. The tool library is specified in the containing Part, or if this is not present in the Machining folder level. If no tool library is defined the Default-(units) tool library is assumed.

Tool Profile

The shape of the cutter

If the tool profile is Unspecified, the profile from the tool information stored in the tool library for the given tool number will be used.

EndMill | BullNose | BallNose | Vcutter | Drill | Lathe


Used to transform the toolpath.

Warning! This property is experimental and may give unpredictable results.
Velocity Mode

Instructs the gcode interpreter whether or to use look ahead smoothing.

Constant Velocity - (G64) Smoother but less accurate.
Exact Stop - (G61) All control points are hit but movement may be slower and jerky.
Default - Uses the global VelocityMode value under machining options.

Work Plane Used to define the gcode workplane. Arc moves are defined within this plane.
Options are XY | XZ | YZ
Copyright (c) 2017 HexRay Ltd