Controller vs machine
The controller (FANUC, Siemens, Heidenhain and so on) defines the language. The machine tool builder (MTB) decides how that language is used on a particular machine: which options are enabled, which M-codes control which devices, how the tool changer works and how the axes are arranged. Two machines with identical controllers can need quite different code.
What differs between machines
| Difference | Example |
|---|---|
| Kinematics | Trunnion A/C table vs B-head with C-table; pivot distances |
| Travel and rotary limits | B axis ±110° vs -30°/+120°; C axis continuous vs limited |
| Tool changer | Arm type with pre-select vs umbrella changer; required tool change position |
| MTB M-codes | Rotary clamp/unclamp, through-spindle coolant, air blast, chip conveyor, probe on/off |
| Options | TCP, tilted plane, high-speed mode, extended work offsets, macro B |
| Memory and format | Program number range, file name rules, line number limits |
What happens with the wrong post
- Rotary axes move in the wrong direction or exceed limits.
- Unsupported codes cause alarms mid-program.
- Tool changes happen at unsafe positions.
- Clamping codes are missing, so rotary axes move under cutting load.
- Machine features like TCP or high-speed modes are never used.
Example: same controller, different code
(Machine A: VMC with 4th axis, clamp codes M10/M11)
M11
G00 A90.
M10
(Machine B: VMC with 4th axis, clamping handled automatically by the control)
G00 A90.
Clamp codes vary by MTB; the post must follow the machine's documentation.
Shop standards matter too
Even on identical machines, shops differ in how they want programs to look: comments, tool lists, probing routines, safe start lines. A machine-specific post captures these standards so every program is consistent.
A post processor should be matched to the machine serial number, not just the controller brand.
Get a post matched to your machine
See our CNC post processor development service and custom vs generic post processors.