Free CAM Software: From Drawing to Safe G-Code

Free CAM software can produce correct g-code, but it will not protect you from every incorrect assumption in the setup. The workable path is open-source vector or CAD geometry, a CAM job with deliberate depths and offsets, then simulation and a dry run before the cutter reaches material.
Draw geometry that CAM can interpret
For flat artwork, start in Inkscape. For dimensioned parts, start in FreeCAD Sketcher. Neither drawing is a cutting strategy by itself.
In Inkscape, set the document units and page size in File > Document Properties before drawing. Convert artwork to paths with Path > Object to Path. If a shape is made from a stroke, use Path > Stroke to Path when the stroke itself represents the cut boundary. A visible stroke that remains a stroke can be exported as a line with no meaningful tool diameter, or as two edges when you expected one.
For a laser outline, one closed path is usually the cleanest input. For a router profile, decide whether the drawn line represents the finished edge or the centre of a slot. Most free CAM software assumes the geometry is the boundary and applies the cutter offset later. Drawing an already-offset outline and then applying another cutter compensation is a reliable way to produce the wrong part size.
Save a plain SVG for vector work, or export a DXF when the next operation needs CAD geometry. After importing a DXF into FreeCAD, measure a known line with the measurement tools. DXF unit interpretation is a common place for a millimetre drawing to arrive at another scale. Do not continue until one known dimension agrees with the original.
FreeCAD is the better choice for a plate with holes, pockets, or mating features. In Part Design, create a Body and Sketch, constrain the important dimensions, then pad the sketch to the stock thickness. A fully constrained sketch separates design dimensions from later CAM choices. The cutting depth belongs in the job, not hidden in a drawing that may be reused for another material.
Create the CAM job around the real stock
Switch to the Path workbench and create a Job. Select the model, define the stock, and set the job origin in the Setup or Job dialog. The origin must match the physical zero you will set at the machine. We use the top of the stock for jobs where pocket depth is measured downward from the surface, and a corner or centre only when that location can be found repeatably.
The first setup choice that diverges from a tutorial is usually Z zero. A tutorial may touch off on the top face, while a maker’s machine may be zeroed on the spoilboard. Both are valid. They require different operation depths. If the stock is 12 mm thick and the job is zeroed on its top, a through-cut needs a negative final depth beyond the nominal 12 mm so the cutter clears fibres and surface variation. If the job is zeroed on the spoilboard, the same operation must stop above that plane instead.
In the Job setup, check these items before adding operations:
- Stock length, width, and thickness match the clamped material, not the nominal CAD model.
- The selected post processor matches the controller, such as GRBL, LinuxCNC, or another supported dialect.
- The tool diameter matches the cutter actually installed, including whether the tool is a straight bit, upcut, downcut, or compression cutter.
- Safe height clears clamps and workholding, while the clearance height allows rapid moves over the stock.
- The cutting depth is measured from the selected Z zero and includes a sensible finish allowance or breakthrough allowance.
Create a tool controller from Path > Tool Manager or the tool-controller command in the current Path workbench. Enter diameter, cutting edge length, and feeds deliberately. Feed rate, spindle speed, stepdown, and stepover depend on the cutter, machine rigidity, material, and chip evacuation. Use the cutter maker’s chipload guidance as the starting point, then test a small square or slot. A hot edge, melted plastic, stalled spindle, or dusty burnished cut tells you to change the combination rather than treat one feed value as universal.
Build operations in the order the cutter works
For a pocket, use Path > Pocket after selecting the face or closed pocket geometry. Set the final depth, stepdown, stepover, and direction. For a perimeter, use Profile Edges or Contour, select inside or outside compensation, and add lead-in or lead-out only where the workholding and material allow it.
Tabs are part of the toolpath, not a last-minute visual feature. Use the holding-tag or tab control available in the Profile operation or its dress-up tools. Put tabs where they will not interfere with a mating edge, and check that their height leaves enough material to hold the part without forcing a large cleanup job. A profile that reaches final depth before the tabs are active can release the part during the cut.
For engraving, use an Engrave operation when the geometry is intended as a centreline path. A V-bit changes the visible width with depth, so the same file can produce different lettering when the included angle, depth, or material changes. For a flat-bottomed mark, use a small end mill and treat the geometry as a pocket or narrow profile instead.
For holes, use a Drilling operation only when the selected geometry and post processor produce the drilling cycles your controller understands. Some controllers accept canned cycles; others need the post processor to expand them into ordinary moves. Inspect the output rather than assuming the simulator and machine interpret every cycle identically.
The paid CAM safety checks still have to happen somewhere in a free workflow. Check cutter reach, collision clearance, travel limits, spindle direction, clamp locations, and whether the operation order leaves enough material attached. Free CAM tools generally produce correct code with less checking built in. They leave more of the verification burden with the operator.
Inspect the g-code before cutting
Use Path > Path Utilities or the job output controls to inspect the generated file and confirm the post processor. The header may contain commands such as G21 for millimetres, G90 for absolute positioning, and spindle or coolant commands, but the exact header depends on the post processor. Do not add commands by habit without checking what the controller supports.
Open the g-code in CAMotics or another simulator that supports your controller’s output. Load the correct tool diameter, stock size, and origin. A simulation is useful for finding an operation that cuts on the wrong side, plunges to an unexpected depth, or rapids through a clamp that was left out of the model. It cannot detect a loose workpiece, a blunt cutter, a wrong physical tool, or a machine whose configured travel is shorter than the job.
Then read the actual file around the first cutting move. Confirm the initial rapid is above the work, the first plunge is where expected, and the profile compensation is on the intended side. Search for the final Z depth and compare it with your written setup notes. This check catches a sign error faster than a replayed animation.
A paid package may warn about gouging, tool reach, stock collision, or missing holding tabs as part of its interface. In a free workflow, those checks are a sequence: model the stock, simulate the code, inspect the text, and dry-run the machine. One check does not replace the others.
Dry-run, test cut, then save the setup
Clamp the stock as it will be cut, load the actual tool, and set X, Y, and Z zero. Run the program with the cutter above the stock if the controller and machine allow a controlled air cut. Watch the first rapid, the first plunge, and every move near workholding. A correct simulation with the wrong zero is still a wrong cut.
For a new material or cutter, use a small test file with a pocket, an outside profile, and a slot. Change one variable at a time. If the slot is undersize, check tool diameter, runout, and compensation before changing the CAD dimension. If the outside profile is oversize, check whether an inside offset was used. If the cut burns, produces fine dust, or welds plastic to the tool, review chipload, spindle speed, depth per pass, and extraction.
Record the material, cutter diameter, tool stickout, zero location, depth per pass, stepover, feed, spindle setting, and post processor with the project file. The reusable asset is not only the drawing. It is the relationship between that drawing and the machine setup that produced a clean test cut.
| Operation | Depth decision | Offset decision | Common failure mode | First verification |
|---|---|---|---|---|
| Final depth is measured from the job’s Z zero; add breakthrough only when the stock and workholding allow it | The tool centre stays inside the selected boundary | A shallow pocket from the wrong Z reference | Touch off again and compare the displayed Z value with the job setup | |
| Outside profile | Cut below the stock face only as far as needed to separate the part | Tool centre runs outside the finished boundary | Part is undersize because inside compensation was selected | Measure a dry-run path or inspect the simulator’s tool envelope |
| Inside profile | Depth must clear the intended cavity floor without cutting through unwanted material | Tool centre runs inside the finished boundary | Hole or slot is oversize from an incorrect cutter diameter | Measure the real tool and verify compensation side |
| Engraving | Visible width depends on bit angle and programmed depth | Usually follows the selected centreline | Text is too wide, narrow, or inconsistent across the design | Cut one character at the intended depth in scrap |
| Drilling | Peck depth and final depth depend on hole depth, chip evacuation, and tool geometry | Hole location comes from the selected point geometry | A canned cycle is unsupported or retracts unexpectedly | Read the post output and run the cycle above the stock |
Frequently asked questions
Is FreeCAD Path good enough for a hobby CNC?
Yes, for 2.5D parts, pockets, profiles, drilling, and engraving, provided the model and job setup are checked. I would pick FreeCAD Path over a limited free trial when the part has several operations because the project, model, stock, and toolpaths can stay together. Its weaker point is operator guidance: you must verify the post processor, collision clearance, tabs, and depths yourself.
What is the best free CAM workflow for SVG files?
Clean the SVG in Inkscape first, converting objects and strokes to paths, then import the geometry into a CAD or CAM tool and verify one known dimension. Use an Engrave operation for centreline marks and a Profile or Pocket operation when the boundary has a physical width. Do not assume an SVG stroke width becomes a cutter diameter.
Why is my free CAM g-code cutting at the wrong depth?
The usual causes are a mismatch between top-of-stock and spoilboard Z zero, a negative depth entered with the wrong reference, or stock thickness that differs from the model. Compare the job origin, stock thickness, final depth, and the first plunge in the g-code. A simulator will reproduce the wrong reference accurately, so it cannot correct an incorrect touch-off.
We build made-to-order CNC and laser-cut work through the quote page.
Have a project in mind?
Tell us what you want built — we reply within 24–48 hours.