Tutorial: 3D Profile
This tutorial gives an introduction to the new 3D profiling operation and covers:
- Loading 3D models, sizing and positioning.
- Front face waterline roughing.
- Front face scanline finishing.
- Back face machining.
- 3D Holding Tabs.
WARNING! These 3D routines are very new and still in testing stages. It is strongly recommended to run simulations first or test cuts in soft
materials.

Loading 3D models, sizing and positioning.
Loading
CamBam currently can read .3DS file, .STL and .RAW 3D mesh files. These can be loaded using the File - Open menu option.
To position objects correctly a number of transformations may need to be applied.
Center
Moving objects to the drawing origin can help simplify other transformations. To center objects, select
them in the drawing view then select Transform - Center (Extents). It is a good idea to then use Transform - Apply Transformations.
This has the effect of transforming all the vertices of the model and resetting the transformation to a default state (an identity matrix).
Rotating
The model should then be rotated so that it is facing toward the screen (i.e. in the positive Z direction).
Objects can be rotated by selecting them, then opening the transformation property editor.
Rotations follow a right hand rule, so to visualise this, point your right thumb in the direction of the positive axis of rotation.
A positive rotation is then in the direction that your fingers curl around the axis.
An alternative to using the transformation matrix is to use a free-hand rotation. This is done by selecting objects,
then holding the SHIFT key while using the view rotation key+mouse combination (ie ALT + left mouse drag
or Center mouse + Left mouse drag, depending on you configuration settings).
Once again, it is a good idea to apply transformations, to make further transformations clearer.
Sizing
The next step is to make the model the correct size. To do this, it is helpful to know how big the model already is. This information
can be displayed by selecting objects then using Tools - Get Object Extremas, which will display information such as height, width
and depth as well as maximum and minimum points in the information pane at the bottom of the application.
To make the object a fixed size, the Transform - Scale command can be used . This will prompt for the
target dimensions in the format X,Y,Z. If dimensions are omitted, the object's aspect ratio will be used to fill in any blanks.
For example a scale of ',200' will make the selected object 200mm tall (Y) and the X and Z dimensions will be sized proportionately.
Positioning
Finally, the object should be translated to the required position. One method that can help simplify the 3D machining method is to
position the model so that the highest Z part of the model is just beneath the Z=0 plane which works well when the StockSurface property
is set to 0. Use Get Object Extremas to find the highest Z point, then use the the transformation property editor
to enter a Z translation of negative the highest Z value.
Alternatively, it may be easier to reference machine's Z=0 to the work table, then use a StockSurface value that is the depth of your stock.
This works well when the stock used has an uneven surface or is difficult to reference a tool too (particularly after a roughing pass).
Another advantage is, if you are doing a front and back face operation no more translations are needed.

This image shows a 3D model loaded, sized and positioned
Front face waterline roughing.
Waterline roughing is a nice efficient way to clear the bulk of the stock around the 3D model.
Create a 3D Profile operation
Select the 3D surfaces to machine, then insert a 3D Profile machining operation (Machining - 3D Profile (new))
or select the
icon from the toolbar.
Most of the 3D profile properties can be left as their defaults or set to the appropriate values
for your machine such as feed rates and clearance planes.
Properties of interest
Note: dimensions shown here are metric.
| Property |
Value |
Notes |
| Profile3DMethod | WaterlineRough |
| BoundaryMargin | 2 |
Adds a small extra margin around the shape outline bounday. |
| BoundaryTaper | 3 |
Tapers the bounary edge which helps give cutter clearance at lower depths. |
| ClearancePlane | 54 |
This example uses machine Z=0 at the table surface, so clearance plane needs to be high enough to clear the stock height. |
| CutOrdering | LevelFirst |
LevelFirst ordering is recomended. DepthFirst can result in some inefficiencies which are under investigation. |
DepthIncrement
| 3
|
LeadInMove
| Spiral 3 degree
|
As well as make life easier for the cutter, this also gives the FastPlunge behaviour a refrence point which
helps avoid slow plunges. |
| RoughingClearance | 1 | |
StepOver
| 0.5
|
Distance between toolpaths expressed as a % of cutter diameter. |
| StockSurface | 52 |
In this example, Z=0 is referenced to the machine's table surface. |
| ToolDiameter | 6 | |
| ToolProfile | EndMill |
The waterline methods do not currently adjust toolpaths for bull/ball nose cutters. |
| VolumeMax | 0,0,50 |
In this example, only the front half of the model is going to be machined, so set up a clipping
volume to reduce the models Z depth. |
| VolumeMin | 0,0,0 |
Note, the volume max and min X and Y coordinates are left at 0, which implies that the full height
and width of the model is to machined. |
There are also some properties under Machining that are useful when working with 3D file.
| Property |
Value |
Notes |
| RebuildToolpathBeforePost | Prompt |
3D Toolpath generation can take many minutes. This option will prompt whether to regenerate toolpaths
before creating g-code. If 'No' is specified, the post processor will use the last generated toolpaths. |
| FastPlungeHeight | 0.2 |
A small value here allows the post post processor to rapid down to the fast plunge height distance
above the last cut stock value. Warning! care should be taken with this setting, especially for
machines with flex or backlash. Setting FastPlungeHeight to a little larger than DepthIncrement should be safer.. |
ToolpathVisibility
| SelectedOnly
|
Having front roughing, finishing and back face toolpaths visible is very confusing. This option will only
show the toolpaths for the machining operation selected in the drawing tree. |

This image shows the waterline roughing toolpath
Front face scanline finishing.
Once the bulk of the material has been cleared by roughing, a scanline finishing pass can be applied.
Scan lines can be vertical or horizontal. It may also be beneficial to do a horizontal finishing pass followed
byt a vertical finishing pass, to remove more toolmarks and get a smoother finish.
Properties of interest
Note: dimensions shown here are metric.
| Property |
Value |
Notes |
| Profile3DMethod | Horizontal or Vertical |
| BoundaryMargin | 0 |
A boundary margin is not so important for finishing. |
| BoundaryTaper | 0 |
Boundary taper does not apply. |
DepthIncrement
| 0
|
Depth increment should be 0 to do a single finishing pass. |
| RoughingClearance | 0 |
No roughing clearance - will clear off clearance stock from the roughing pass. |
StepOver
| 0.1
|
Distance between toolpaths expressed as a % of cutter diameter.
Smaller stepovers will give a nicer finish but take longer to machine. |
Resolution
| 0.1
|
This is the distance along toolpaths expressed as a % of cutter diameter, at which the height of
the model is tested.
0.1 should be adequate, but a smaller value could be used if innacuracies occur (esppecially around
small features or perpendicular edges). |
| ToolDiameter | 3 | |
| ToolProfile | BullNose |
The horizontal and vertical scanline methods will adjust toolpaths for ball nose cutters. |

Back face machining.
Back face machining is very similar to the front face roughing and finishing passes, with a few extra parameters
to control the back face machining behaviour.
Properties of interest
| Property |
Value |
Notes |
| BackFace | True |
| BackFaceZeroZ | 0 |
In this example, as the table surface Z=0 is used, the model is rotated about Z=0 to machine the back face.
If the top of the stock was used for machine Z=0, BackFaceZeroZ would be the deepest Z offset of the model
(a negative amount). |
| FlipAxis | X |
The stock will be rotated around the X axis (top to bottom), when the back face is to machined. |
| VolumeMax | 0,0,0 |
The clipping volume needs to be adjusted to include the back half of the model. |
| VolumeMin | 0,0,-50 |
|
3D Holding Tabs.
There is currently no automatic 3D holding tabs funcionality, but this is planned for a future release.
Here is a method to manually create 3D holding tabs or sprues using cylinder meshes.
Extrude a circle
Hide the drawing layer containing the 3D mesh and create a new layer to hold the holding 'tabs'.
Draw a 2D circle with a diameter of the holding tabs to be used. Place the center of the cirlce at the drawing origin (0,0).
With the circle selected, select Draw - Surface -Extrude. Enter an extrusion height large enough to span the largest width
of the model plus an extra margin to allow for tool diameters. Enter the number of extrusion steps or facets around the extruded mesh to create.
Rotating the drawing view should show a 3D cylinder extending in the positive Z direction.
Position the cylinder
First, center the cylinder (Transform - Center (Extents))
Use a combination of cut and paste and transformation rotations to position the cylinders at required positions around the model.
Adjust the machining boundary
The holding tab shapes need to be added to the 3D profiles list of surfaces to machine. To do this, right click on the machining
operation in the drawing tree and select Select Drawing Objects. Ctrl+click to select the extruded cylinders.
To prevent the machining operation machining around the ends of the cylinders, we need to reduce the bounday shape.
This is acheived by specifying SelectedShapes in the BoundaryMethod property and selecting only the main surface object,
exluding any holding tab cylinders.
| Property |
Value |
Notes |
| BoundaryMethod | SelectedShapes |
This will create a trimming boundary just from selected shapes. |
| BoundaryShapeIds | 1 |
Enter the ID of the main 3D surface to machine, excluding any holding cylinders.
The [...] button to the right of the property can be used to select the shapes. |

Front roughing toolpath with manual holding tabs.