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.

Half way through finishing pass

Loading 3D models, sizing and positioning.


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.


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).


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.


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.


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.

3D Model loaded and positioned

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 3D Surface 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
BoundaryMargin2 Adds a small extra margin around the shape outline bounday.
BoundaryTaper3 Tapers the bounary edge which helps give cutter clearance at lower depths.
ClearancePlane54 This example uses machine Z=0 at the table surface, so clearance plane needs to be high enough to clear the stock height.
CutOrderingLevelFirst LevelFirst ordering is recomended. DepthFirst can result in some inefficiencies which are under investigation.
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.
Distance between toolpaths expressed as a % of cutter diameter.
StockSurface52 In this example, Z=0 is referenced to the machine's table surface.
ToolProfileEndMill The waterline methods do not currently adjust toolpaths for bull/ball nose cutters.
VolumeMax0,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.
VolumeMin0,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
RebuildToolpathBeforePostPrompt 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.
FastPlungeHeight0.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..
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.

Waterline roughing pass

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
or Vertical
BoundaryMargin0 A boundary margin is not so important for finishing.
BoundaryTaper0 Boundary taper does not apply.
Depth increment should be 0 to do a single finishing pass.
RoughingClearance0 No roughing clearance - will clear off clearance stock from the roughing pass.
Distance between toolpaths expressed as a % of cutter diameter.
Smaller stepovers will give a nicer finish but take longer to machine.
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).
ToolProfileBullNose The horizontal and vertical scanline methods will adjust toolpaths for ball nose cutters.

Horizontal finish pass

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
BackFaceZeroZ0 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).
FlipAxisX The stock will be rotated around the X axis (top to bottom), when the back face is to machined.
VolumeMax0,0,0 The clipping volume needs to be adjusted to include the back half of the model.

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
BoundaryMethodSelectedShapes This will create a trimming boundary just from selected shapes.
BoundaryShapeIds1 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.

Manual 3D holding tabs

Front roughing toolpath with manual holding tabs.

Copyright (c) 2018 HexRay Ltd