3D Profile 3D Profile Machining Operation

This section describes the new 3D Profile machining operation.
This method will eventually replace the current Bas Relief method.

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

3D Profiles support the following features.

  • Waterline roughing and finishing methods.
  • Z scanning roughing and finishing methods (similar to Bas Relief).
  • Front face and back face machining
  • Generation of molds
  • Restriction of machining boundary to save machining time.
  • Experimental additive support for extrusion heads.
For more information, see the 3D Profile Tutorial.


Horizontal and Vertical 3D profiling methods will adjust the toolpath for ball nose tools.

For waterline methods, the tool profile is currently ignore.


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=StockSurface

For best results, this setting would be combined with a WaterlineRough 3D profile methods, and a small DepthIncrement.

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

ArcFitTolerance To help improve efficiency and toolpath smoothing, arc fitting routines are used in Waterline 3D profile methods. This value controls the maximum error allowed when fitting arcs. Larger values will result in smoother toolpaths but may lose accuracy. If set to 0, a default tolerance is used which is calculated from the size of the model.

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

If the back face option enabled, a valid BackStockSurface setting should also be supplied.

The VolumeMax and VolumeMin clipping points may also need to be adjusted to include the back part of the model.


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

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


If the BackFace setting is enabled, this is the current Z coordinate that willl be at Z=0 after the model is 'Flipped' about the FlipAxis.

This value replaces the some what confusing BackStockSurface property used previously in BasReliefs.


The outer boundary shape, as determined by the BoundayMethod setting, is extended by the distance give in the BoundaryMargin setting.

It is recomended that a margin greater than 0 is used when using waterline profile methods in combination with ShapeOutline boundary methods.


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

Boundary shapes options are:

ShapeOutline - the outline shape of the source 3d models.

BoundingBox - a rectangle enclosing the source geometry.

SelectedShapes - A list of 3D or 2D shapes specified in BoundaryShapeIds.


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


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


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.

CustomMOPFooterA multi line gcode script that will be inserted into the final gcode post before the machine operation.

See available macros in CustomMopHeader

CustomMOPHeaderA multi line gcode script that will be inserted into the final gcode post before the machine operation.

Various macros can be used in this script which will be expanded by the post processor.

| - denotes a new line
$f - cut feedrate
$t - tool diameter
$n - tool number
$x - X coordinate of 1st toolpath point
$y - Y coordinate of 1st toolpath point
$z - Z coordinate of 1st toolpath point
$r - Clearance Plane
$s - Stock Surface
$q - Peck distance (drilling only)
$p - Dwell (drilling only)
$d - Hole diameter (drilling only)

CutFeedrateThe feed rate to use when cutting.
CutOrderingControls whether to cut to depth first or all cuts on this level first.
DegenerateChecksIf a model contains faces that are next to each other but not joined, this option can be enabled to perform an extra check to help avoid waterline toolpath errors.
DegenerateToleranceDistance to use in waterline degenerate test when DegenerateChecks is True.
DepthIncrementDepth increment of each machining pass. For waterline machining, this is the distance between each layer.

Controls what the TargetDepth coordinates are relative to.

Warning! Any setting other than Absolute may give unpredictable results.

EnabledIf Enabled is true, then display the toolpaths associated with this machine op and include in gcode output.
FlipAxisThe axis around which you would flip the stock to machine the back face.

Defines which drawing point will be at the machines 0,0 location.

Settings other than DrawingOrigin will use the select extremety point.
This point is calculated from all drawing objects used in all machine operations.

GCodeOriginOffSetThis offset is applied to the point determined in the GCodeOrigin to determine the gcode's machine 0,0 origin.
LeadInMoveDefines the type of lead in move to use.

LeadInType : None | Spiral | Tangent
SpiralAngle : Used by spiral and tangents to control ramp angle.
TangentRadius : The radius of the tangent lead in

MaxCrossoverDistanceMaximum distance as a % of the tooldiameter to be cut in horizontal transitions.
If distance to next toolpath exceeds this then a rapid to next position via the clearance plane is inserted.

Controls the direction the cutter moves around the toolpath.

Conventional or Climb milling supported.

MillingDirection is not yet working in 3D profiling.

MoldIf set to True, a Mold toolpath is generated.
NameEach machine operation can be given a meaningful name or description.
This is output in the gcode as a comment and is very useful for keeping track of the function
of each machining operation.
OptimisationModeIf OptimisationMode=Default, then toolpaths are ordered to minimise rapids between toolpaths.
If OptimisationMode=None, then toolpaths are not optimised and are written in the order they were generated.
PlungeFeedrateThe feed rate to use when plunging or crossover moves.
PrimitiveIdsList of drawing objects from which this machine operation is defined.

The method used to generate the 3D toolpath.

Options are:

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

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

Example fill patterns...

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

Options are:

  • HorizontalHatch region filled with horizontal lines
  • VerticalHatch region filled with vertical lines
  • InsideOutsideOffsets region filled with progressive offsets from outside in, unioned with offsets from islands radiating outward.
  • OutsideOffsets region filled with progressive offsets from outside in (like current pocket method).
  • InsideOffsets 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 % of cutter diameter), for each Z height test point.
Larger resolution values may be faster but could result in some model features being over cut.


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.

SpindleDirectionThe direction of rotation of the spindle.
SpindleSpeedThe speed in RPM of the spindle
StartCorner Corner to start profiling. Used in Horizonatal and Vertical 3D profiling methods only.

The cut is increased by this amount each step, expressed as a % of the cutter width.

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.

StockSurface This is the Z offset of the stock surface at which to start machining.
ToolDiameter This is the diameter of the current tool in drawing units.

The ToolNumber is used to identify the current tool.

If ToolNumber changes between successive machine ops a toolchange instruction is created in g-code.

ToolNumber=0 is a special case which will not issue a toolchange.


The shape of the cutter


Used to transform the toolpath.

Warning! The property is experimental and may give unpredictable results.


Instructs the gcode interpretter whether or to use 'look ahead' smoothing.

Options are:

  • ConstantVelocity - (G64) Smoother but less accurate.
  • ExactStop - (G61) All control points are hit but movement may be slower and jerky.
  • Default - Uses the global VelocityMode value under machining options.
VolumeMax A Point, used with VolumeMax to define a clipping volume.

A Point, used with VolumeMin to define a clipping volume.

If a VolumeMin and VolumeMax coordinate are both 0, the 3d profile will not be clipped.


Used to define the gcode workplane. Arc moves are defined within this plane.

Options are XY, XZ and YZ

Copyright (c) 2018 HexRay Ltd