Explained · Software
CNC Software Explained: CAD, CAM, G-Code and Sender Programs
New CNC owners often discover that the machine is the easy part. The software chain that turns an idea into a cut has several links, and the names overlap in confusing ways. Some programs do one step, others bundle three.
This guide explains each step, what it produces, and the general paths hobbyists take. It deliberately avoids quoting prices or license terms, because those change; check each vendor's current terms before you commit.
The chain from idea to cut
- CAD (computer-aided design): You draw the shape: 2D vectors, a 3D model, or both. Output is a design file such as SVG, DXF or STL, or the program's own format.
- CAM (computer-aided manufacturing): You tell the software what bit to use, how deep to cut, which areas to pocket, profile or carve, and the feeds and speeds. It calculates toolpaths and outputs G-code.
- Post-processor: A small translator inside the CAM that formats the G-code for your specific controller. Choosing the right post matters.
- Sender / control software: Loads the G-code, lets you jog the machine, set work zero, and streams the program to the controller.
- Controller firmware: Runs on the machine's board, interprets G-code and drives the motors.
When something goes wrong, knowing which link failed narrows the fix. A wrong dimension is usually CAD. A wrong depth or bit is usually CAM. A machine that moves the wrong way or errors on a command is often the post-processor or sender settings.
What G-code actually is
G-code is a plain-text list of instructions: move here, at this speed, turn the spindle on, and so on. You can open a file in a text editor and read it. A few common commands:
| Command | Meaning |
|---|---|
G0 | Rapid move (positioning, not cutting) |
G1 | Linear cutting move at the set feed rate |
G2 / G3 | Clockwise / counterclockwise arc |
G20 / G21 | Units in inches / millimetres |
G90 / G91 | Absolute / incremental positioning |
M3 / M5 | Spindle on clockwise / spindle off |
F and S words | Feed rate and spindle speed |
Different controllers support different subsets and dialects, which is why the post-processor matters. You don't need to write G-code by hand, but recognizing these lines helps you spot problems, such as a file in the wrong units. For a deeper dive, see our list of books for learning CNC, G-code and CAM.
The common software paths
Rather than rank products, here are the broad paths hobbyists use. Each has free and paid options in the market; check current availability and terms for anything you are considering.
All-in-one machine software
Some machine makers bundle design, CAM and sending in one program. Easiest start; may limit you later if it only supports their machines.
Sign and 2.5D design-and-CAM
Programs focused on vectors, text, V-carving, pockets and profiles, sometimes with 3D relief carving. Great for signs, decor and products.
Parametric CAD with integrated CAM
Model parts with dimensions and constraints, then generate toolpaths in the same program. Strong for mechanical and precision parts.
Separate CAD + separate CAM
Draw in any vector or 3D program, export, and toolpath elsewhere. Most flexible; more file juggling.
Senders
For GRBL-based and similar machines there are several sender programs, some free and open source, some bundled by manufacturers. Look for clear jogging controls, probing support, a visual preview of the toolpath, and good handling of pause and resume. Check that it supports your controller and operating system.
How to choose your path
| If you mostly make... | Start with |
|---|---|
| Signs, plaques, V-carving, engraved gifts | A 2.5D design-and-CAM program with good text and V-carve tools |
| Furniture parts, joinery, flat panels | 2.5D CAM, possibly with a CAD program for planning assemblies |
| Brackets, enclosures, mechanical parts | Parametric CAD with integrated CAM |
| 3D carvings and reliefs | CAM with 3D roughing and finishing toolpaths |
| A bit of everything, just starting | Whatever your machine maker supports, then branch out |
Questions to ask before committing to any program:
- Does it have a post-processor for my controller?
- Does it run on my operating system and hardware? Our CNC computer guide covers requirements.
- What are the current license terms: one-time, subscription, hobby/personal restrictions, commercial use?
- Is there a trial so I can test my real projects first?
- Are there tutorials and a user community for the kind of work I do?
- Does it support the toolpaths I need: V-carve, pocketing with islands, adaptive clearing, 3D finishing, tabs?
CAM concepts worth learning early
- Tool library: Store each bit's geometry and your proven feeds and speeds once, then reuse them. Start from the bit maker's chip load chart and record what works on your machine.
- Profile inside / outside / on line: Which side of the vector the bit runs on. Getting this wrong makes parts the wrong size.
- Tabs: Small bridges that keep cut-out parts attached until the job ends.
- Climb vs conventional milling: The direction the bit moves relative to its rotation. It affects finish and forces; many CAM programs let you choose.
- Ramping and lead-ins: Gentler entries into the cut than a straight plunge.
- Stock and zero definition: Where X0, Y0 and Z0 are in your CAM must match where you set them on the machine.
- Simulation: Preview the cut on screen before cutting stock.
Common software-chain problems and where to look
| Symptom | Most likely link | What to check |
|---|---|---|
| Part is the wrong size by about one bit width | CAM | Profile side (inside, outside, on line) and tool diameter |
| Part is wildly too big or small | Post or CAD units | Inches vs millimetres in the design, CAM and G-code header |
| Machine cuts in the wrong place | Sender / setup | Work zero location vs the CAM stock origin |
| Plunges into the spoilboard | CAM or setup | Z zero on stock top vs machine bed; stock thickness in CAM |
| Sender reports an unsupported command | Post-processor | Choose the post that matches your controller firmware |
| Arcs look faceted or jerky | CAM or controller | Arc output settings in the post; controller acceleration settings |
| Job pauses or stutters | Sender / computer | USB connection, power-saving settings, background programs |
Working through the chain in order, from design to controller, usually finds the problem faster than changing random settings.
A beginner workflow that avoids most mistakes
- Draw a simple part and add dimensions you can check later.
- In CAM, set stock size and thickness, and choose zero at a corner on top of the stock.
- Select the bit from your library and confirm its diameter.
- Create toolpaths, then run the simulation and look for anything odd.
- Export with the correct post-processor.
- In the sender, home the machine if supported, set work zero to match CAM, and air-cut above the stock to check motion.
- Cut in scrap first, measure the result, and adjust.
Keep a few cheap offcuts and a basic set of bits just for these test runs, so mistakes cost scrap and a spare bit rather than good stock.
Browse CNC router bit sets on Amazon
Browse CNC and G-code books on Amazon
FAQ
Do I need separate CAD and CAM programs?
Not necessarily. Many programs combine both, and some machine makers bundle design, CAM and control in one tool. Separate programs offer flexibility but add export and import steps.
What is a post-processor?
It is the part of your CAM software that formats G-code for your specific controller. Using the wrong post can cause errors or unexpected moves, so select the one that matches your machine.
Can I run my CNC without CAM software?
For very simple jobs you could write G-code by hand, and some senders include basic surfacing or jogging routines. For anything beyond that, CAM software is what makes the machine practical.
Is free CNC software good enough?
Many hobbyists do excellent work with free or open-source tools. The right choice depends on the toolpaths you need, your controller and your comfort with the interface. Check current terms, especially for commercial use.
Bottom line
Think of CNC software as a chain: design, toolpaths, G-code, sender, controller. Pick a path that matches your projects, confirm there's a post-processor for your controller, and check current license terms before you invest time learning a program. Then build a tool library and a simple, repeatable workflow. Most early mistakes come from mismatched zero points and wrong profile sides, and both are easy to catch in simulation.