Carvect™

Guides

What a post-processor actually changes

Two G-code files can describe the same toolpath and still be different files. Here is exactly what differs, and why picking the wrong post shows up as a crash rather than an error message.

A post-processor is not a translator between languages. Every controller in common use reads a variation of the same G-code, and the moves themselves — G0, G1, G2, G3 — are the same everywhere. What differs is a short list of conventions, and each of them can turn a correct toolpath into a wrong cut.

Arcs, and how they name their centre

Most controllers accept G2 and G3 arcs; a few do not, and want every curve broken into short straight moves. Of those that do accept arcs, some expect the I and J words to give the centre relative to the arc's start point, and others expect the centre in absolute coordinates. Get that backwards and the machine will cut a real arc — just not the one you drew, usually swinging out somewhere else entirely.

Units, and where they are declared

G20 and G21 select inches and millimetres. The question is not which the controller supports but whether it remembers: some machines keep the last mode across power cycles, so a file that does not state its units will run in whatever the previous job left behind. A good post declares units in the header every time.

Number formatting

Coordinates, feeds, arc words and spindle speeds each get a number of decimal places. Too few and a curve becomes a series of small flats; too many and older controllers overflow their line buffer or simply refuse the block. Feed rates in particular are often integers on hardware that would choke on 1234.5678.

Comments

Parentheses and semicolons are both used to introduce comments, and a controller that expects one treats the other as an error or, worse, as a command. Whether operation names are emitted at all is a separate choice: they make a file readable at the machine and make it longer.

Header, tool change and footer

The blocks around the cutting are where machines differ most: which plane and coordinate system to select, whether to home first, how a tool change is announced and whether the machine pauses for it, whether the spindle is commanded or switched on by hand, and what happens at the end — retract, park, coolant off, program end.

Why they are data, not code

In Carvect a post is a JSON description of exactly these choices, not a script. That has one practical consequence worth knowing: if your machine is nearly one of the shipped posts but differs in its header or its tool change, you do not need a new post written for you. Copy the closest one in the Post Library, edit the block that differs, and keep the rest.

Every post in the Post Library is editable, and a copy is yours to change without affecting the original.

More guides Download the trial