vcad.
Back to App
App

CAM Panel

CNC tool paths, operations, tool library, G-code generation

The CAM panel generates CNC toolpaths directly from BRep geometry. It covers 2.5D and 3D milling operations, with a built-in tool library and G-code post-processor. Open the CAM panel from the workspace selector in the sidebar after modeling your part.

Workflow

A typical CAM workflow in vcad follows four steps: define the stock, select tools, create operations, and generate G-code. Each step builds on the previous one, and you can iterate on any step without starting over.

Define stock. Specify the raw material dimensions and material type. The stock is displayed as a translucent bounding shape in the viewport so you can see how the part fits within the raw material.

Select tools. Pick cutting tools from the built-in library or define custom tools. Each tool has geometry (diameter, flute length, corner radius) and feed/speed recommendations per material.

Create operations. Add one or more machining operations. Each operation references a tool and a set of geometry (faces, pockets, contours). The panel computes toolpaths and displays them as colored lines in the viewport.

Generate G-code. Post-process the toolpath into machine-specific G-code. Select a post-processor profile for your CNC controller and export.

Stock Definition

typestringrequired

Stock shape: box (rectangular prism) or cylinder (round bar). Box stock is aligned to the part bounding box with configurable offsets. Cylinder stock wraps around the part's vertical extent.

offsetVec3 (mm)required

Extra material around the part bounding box on each side. Default 2mm on all sides.

materialstringrequired

Stock material for feed/speed recommendations: aluminum, steel, stainless, brass, plastic, wood, foam.

Tool Library

The built-in tool library provides common cutting tools organized by type.

End Mills

NameDiameterFlutesCorner RadiusUse
1/8" Flat3.175mm20Fine detail, small pockets
1/4" Flat6.35mm30General purpose
3/8" Flat9.525mm30Roughing, large pockets
1/2" Flat12.7mm40Heavy roughing
1/4" Bull6.35mm31mmBlended floor-wall transitions

Ball Nose

NameDiameterFlutesUse
1/8" Ball3.175mm2Fine 3D finishing
1/4" Ball6.35mm23D surface finishing
3/8" Ball9.525mm23D roughing and finishing

Drill Bits

NameDiameterPoint AngleUse
#7 Drill5.105mm118 deg1/4-20 tap drill
#21 Drill4.039mm118 deg#10-24 tap drill
1/4" Drill6.35mm118 degGeneral drilling

Custom Tools

Define custom tools with full geometry:

namestringrequired

Tool name for identification.

typestringrequired

Tool type: flat_endmill, ball_endmill, bull_endmill, drill, spot_drill, chamfer_mill.

diameternumber (mm)required

Cutting diameter.

flute_lengthnumber (mm)required

Maximum depth of cut (length of cutting flutes).

corner_radiusnumber (mm)required

Corner radius for bull endmills. 0 for flat, diameter/2 for ball.

flutesintegerrequired

Number of cutting flutes. Affects chip load calculations.

Operations

Face

Faces the top surface of the stock flat. Removes material in parallel passes across the entire stock width.

toolstringrequired

Tool reference. Flat endmills recommended.

step_overnumber (%)required

Percentage of tool diameter per pass (default 70%).

depth_of_cutnumber (mm)required

Maximum depth per facing pass.

Pocket

Clears material from an enclosed region. Supports rectangular, circular, and arbitrary profile pockets.

toolstringrequired

Tool reference. Flat endmills for 2.5D, ball nose for curved-bottom pockets.

step_downnumber (mm)required

Depth per roughing layer (default: 50% of tool diameter for aluminum).

step_overnumber (%)required

Lateral step as percentage of tool diameter (default 45%).

finishing_passbooleanrequired

Add a final light pass at full depth with reduced step-over for surface finish.

Contour

Traces the outside or inside profile of a shape. Used for cutting parts from stock and profiling edges.

sidestringrequired

Cut side: outside (profile cut), inside (pocket boundary), on (center-line).

tabsbooleanrequired

Add holding tabs to prevent the part from moving when cutting free from stock.

tab_widthnumber (mm)required

Width of each holding tab (default 5mm).

tab_heightnumber (mm)required

Height of each holding tab (default 2mm).

3D Roughing

Removes bulk material from a 3D surface using waterline (constant-Z) or adaptive strategies.

strategystringrequired

Roughing strategy: waterline (constant-Z layers), adaptive (trochoidal engagement control).

stock_to_leavenumber (mm)required

Material left for the finishing pass (default 0.3mm).

3D Finishing

Produces the final surface quality on 3D geometry. Ball nose endmills give the best results on curved surfaces.

strategystringrequired

Finishing strategy: raster (parallel lines), spiral (inside-out), pencil (follow concave edges).

step_overnumber (mm)required

Distance between passes. Smaller values produce smoother surfaces but take longer. For ball nose tools, a step-over of 5-10% of the tool diameter gives scallop heights under 0.01mm.

Feeds and Speeds

The CAM panel calculates recommended feed rates and spindle speeds based on the tool geometry, stock material, and operation type. These are starting recommendations that you can override.

MaterialSFM (Carbide)Chip Load (1/4" 3-flute)
Aluminum 6061800-12000.05-0.08mm
Mild Steel300-5000.03-0.06mm
Stainless 304150-2500.02-0.04mm
Brass600-9000.05-0.08mm
Plastic (HDPE)1000-15000.08-0.15mm
Hardwood600-10000.05-0.10mm

Feed rate is calculated as: feed = RPM * flutes * chip_load. Plunge rate defaults to 50% of feed rate.

Verify on your machine

Feed and speed recommendations are starting points. Verify with your machine's capabilities, rigidity, and workholding before running any program. Start conservative and increase from there.

Work Coordinate System

The CAM panel uses the part's coordinate system (Z-up) with the WCS origin at a user-selectable point. Common choices are top-center of stock (G54 at the top face center) or bottom-left corner.

wcs_originstringrequired

Origin location: top_center, top_left, bottom_center, bottom_left, part_origin (use the vcad origin).

G-code Export

After computing toolpaths, export G-code for your machine controller.

post_processorstringrequired

Controller profile: grbl (GRBL/Arduino), linuxcnc, mach3, fanuc, haas. Determines dialect, tool change sequences, and safety blocks.

filenamestringrequired

Output filename (.nc or .gcode extension).

The exported G-code includes a header with tool table, operation summary, and estimated run time. Each operation is separated by a tool change block with safe retract, optional spindle warm-up, and approach sequence.