What a post processor is, and where G-code fits
7 September 2026 · 5 min read
Post, post processor, G-code, NC file — mostly one thing said four ways. What the translator actually does, and which eight controllers WoodWright writes for.
Somebody tells you their software has a post for your machine and you nod, because asking what a post is at this point feels like admitting you have been nodding for years.
It is a translator. That is the whole idea, and the rest of this note is detail.
## The chain, start to finish
Your machine does not understand a cabinet. It understands go here, spin this fast, drop this deep. Something has to get from one to the other, and it goes in this order:
1. The design. A box with a back, two sides, a deck, a dado for the deck, a couple of shelf-pin holes. 2. The parts. The design implies them, so the app generates them — sides, backs, stretchers, dados, bores — and nests them onto sheets. 3. The toolpath. For each part on each sheet: which bit, how deep, in what order, along which line. Still just geometry and intent, not yet a file your machine can open. 4. The post processor. Turns that toolpath into text your particular control reads. 5. The controller. Reads the text and moves the gantry.
Step 4 is the post. Everything before it is the same no matter what machine you own; everything after it is your machine's business.
## So is a post the same thing as G-code?
Close enough that most people use the words interchangeably, and for four of the eight machines below they are the same thing exactly.
G-code is the text. It is the file — lines like G1 X412.7 F17780, meaning cut in a straight line to X 412.7 at that feed. NC file, NC program, and "the code" all mean this too.
The post processor is the thing that writes it. If somebody asks whether your software has "a post for a ShopBot," they are asking whether it can produce the file a ShopBot reads.
The two words get confused because the answer to both questions is usually yes or no together. If there is no post for your machine, there is no G-code for your machine.
## Why every machine needs its own
They do not all speak the same dialect. A tool change on a Mach3 control is T1 M6 followed by G43 H1; a Masso wants T1 M06 and no G43, because Masso keeps its tool geometry in its own table.
Send it the Mach version and the offset gets applied twice.
GRBL errors on G91.1 and never gets to see it. ShopBot does not read G-code at all — it reads OpenSBP, where a cut is M2 and a jog is J2.
Same cut. Same bit. Four different files. That is why "does it have a post for my machine" is a real question and not a technicality.
## What WoodWright writes
the four that read G-code Mach3 / Mach4 .tap ISO G-code GRBL 1.1 .nc G-code, pecks spelled out, no canned cycles LinuxCNC .ngc RS274/NGC Masso G3 .nc G-code, tool geometry on the control the four that read their own dialect SCM · Xilog Plus .xxl ShopBot PRS .sbp OpenSBP Biesse · bSolid .cix Homag / Weeke .mpr woodWOP
Tick yours in Sheets ▸ Machines. The public build starts with none ticked, so nothing posts until you say which controller is reading it.
Programs then save one per sheet, named WW-<room>-<material>-S01.<ext>. A SETUP.txt saves beside each one with the origin corner, the face that is up, the Z reference, and every tool with its T number — so the changer, or the hand, can be checked against paper before anything spins.
## The part you should hear from us
There is one toolpath planner behind all eight. It writes SCM Xilog, because that is the machine it was decoded against: three real jobs' programs off the shop's own N100, every program re-parsed byte-identical and run through an independent dry-run simulator.
Every other post is a translation of that simulated program — move for move, bore for bore. The translated text is then read back by its own parser and compared against the source before a machine card is allowed to offer it.
And then the honest part: no WoodWright program has cut on a machine yet. A simulation is not a router.
The app will ask you to tick that you have read it before it saves a program on a new machine, and it asks for the first one on scrap, at reduced feed, with a hand on the stop.
## If you would rather not use a post at all
You do not have to. WoodWright also exports a layered DXF for whatever CAM you already run — VCarve, Aspire, Fusion, EnRoute, or your machine's own software — and that is the proven path today.
It is ASCII DXF, R2010, in inches, and every layer name is a tool selector: OUTLINE is the through cut, POCKET_0.385 is a dado pocketed to 0.385″, BORE_0.197 is a 5 mm drill centre.
One thing to know before you open it: the DXF is not the nest. It is every cut part of that material, each in its own frame, laid out in tidy rows for your CAM to nest and toolpath itself.
The layers and the G-code, line by line, including a real generated program, are on the CNC page.
## Questions
What is a post processor?
Is G-code the same thing as a post?
Does WoodWright output G-code, or do I need a separate CAM program?
Which CNC machines can WoodWright write a program for?
Next: How to measure a kitchen for cabinets · How true-shape nesting saves a sheet