A CNC post processor is software that converts toolpaths created in CAM software into machine-specific instructions that a CNC controller can execute. Depending on the machine, the output may be standard G-code, a controller-specific NC program, or a native format such as XCS, MPR, CIX or HOP.
In Autodesk Fusion, the post processor is typically a .cps script that sits between the CAM toolpath and the CNC machine. Its job is not to change the machining strategy itself, but to translate that strategy into the exact syntax, cycles, tool calls, coordinate transformations and machine functions required by the target CNC.
A perfectly simulated toolpath therefore does not automatically mean that the program is ready for the machine. The post processor is the final translation layer between CAM and real production.
Quick summary
- What it is: A post processor converts CAM toolpaths into machine-specific CNC code.
- Input: Toolpaths, tools, feeds, speeds, work coordinates and machining parameters generated by CAM.
- Output: G-code, NC code or a native machine format such as
.xcs,.mpr,.cixor.hop. - Autodesk Fusion: Fusion post processors are normally
.cpsscripts executed during Post Process. - Why different posts exist: CNC controllers, machine kinematics, tool changers, drilling heads, aggregates and supported cycles differ between machines.
- When a custom post is needed: When a generic post cannot correctly control the actual machine configuration or required operations.
In this guide
What Is a CNC Post Processor?
A CNC post processor is the translation layer between CAM software and a specific CNC machine.
The CAM system calculates where the cutting tool should move, how fast it should move, which tool should be used and how the machining operation should behave. The CNC controller, however, does not directly understand the internal toolpath representation used by the CAM system.
The post processor reads the CAM data and generates the program structure expected by the machine.
Depending on the CNC configuration, this can include:
- axis coordinates and rotary-axis positions;
- rapid and feed moves;
- spindle speed and direction;
- tool calls and automatic tool changes;
- work offsets and coordinate systems;
- drilling and boring cycles;
- cutter compensation;
- coolant or dust-extraction commands;
- machine-specific macros;
- aggregate selection;
- 3+2 and 5-axis transformations;
- program headers, safety blocks and end-of-program commands.
This is why the same CAM toolpath can require very different output for a Fanuc machining centre, a Siemens-controlled machine, an SCM Maestro system or a Holzher CNC running NC HOPS.
Example: From a Fusion Toolpath to CNC Code
Consider a simple contour operation created in Autodesk Fusion:
CAM operation
Operation: 2D Contour
Tool: T5 – Ø10 mm end mill
Spindle speed: 18,000 RPM
Cutting feed: 4,000 mm/min
Depth: -10 mm
Fusion knows how the cutter should move, but this information still has to be converted into the language of the target machine.
Example of G-code output
T5 M6
S18000 M3
G90 G54
G0 X100 Y50
G43 H5 Z20
G1 Z-10 F1000
G1 X200 F4000
A different machine may require completely different output for exactly the same CAM operation.
For example, a woodworking CNC may expect structured native operations rather than conventional ISO G-code:
| Machine environment | Typical output |
|---|---|
| Fanuc / Haas / Siemens | G-code / ISO NC |
| SCM Maestro / Xilog | XCS |
| Homag WoodWOP | MPR |
| Biesse | CIX / machine-specific output |
| Holzher NC HOPS | HOP |
The CAM operation is the same idea in every case. The post processor determines how that operation is expressed for the actual CNC machine.
Post Processor, G-Code and CAM Data: What Is the Difference?
These terms are closely related but they are not the same thing.
CAM toolpath data
The CAM system contains the calculated machining movements, tools, feeds, speeds, orientations and other information required to manufacture the part.
This data is still independent of the final syntax required by a specific CNC controller.
Post processor
The post processor reads the CAM data and translates it according to the rules of the target machine.
In Autodesk Fusion this logic is normally contained in a .cps file.
G-code / ISO code
G-code is one possible result of post processing. Commands such as G0, G1, G2, G3, M3 or M6 describe machine movements and functions.
Different controllers implement these commands and machine functions differently.
Native CNC formats
Some CNC systems use structured or proprietary program formats instead of conventional line-by-line G-code.
Examples include:
- SCM Maestro / Xilog — XCS
- Homag WoodWOP — MPR
- Holzher NC HOPS — HOP
- Biesse — CIX and controller-specific formats
The post processor must generate the format required by the target production workflow.
Why Is There No Universal CNC Post Processor?
CNC machines differ in much more than their brand name.
Even two machines using the same controller can have different:
- axis configurations;
- rotary-axis directions;
- tool changers;
- spindle configurations;
- work-offset conventions;
- drilling cycles;
- probing functions;
- machine limits;
- safety positions;
- aggregates;
- macros;
- 5-axis kinematics.
A standard three-axis milling machine may be able to use a relatively generic post processor with only minor configuration changes.
A woodworking machining centre with a drilling head, horizontal spindles, saw aggregate, multiple work planes or native WOP output usually requires significantly more machine-specific logic.
The purpose of a post processor is therefore not simply to produce valid syntax. It must produce code that matches the real physical and software configuration of the CNC machine.
Older CNC controllers can introduce additional limitations such as restricted memory or slow block processing. See our guide to using Autodesk Fusion with older CNC machines.
Why Are Woodworking CNC Post Processors Different?
Woodworking CNC machines often combine functions that are uncommon on conventional metal-cutting machining centres.
A single machine may contain:
- a main routing spindle;
- vertical drilling spindles;
- horizontal drilling spindles;
- a multi-spindle drilling head;
- saw aggregates;
- angle heads;
- multiple vacuum zones;
- pod-and-rail positioning systems;
- automatic workpiece positioning;
- 3-axis, 3+2 or simultaneous 5-axis machining.
The machine may also use a native programming environment such as SCM Maestro, Homag WoodWOP, Biesse software or Holzher NC HOPS.
This means that a woodworking post processor may need to translate a Fusion operation into a structured machine operation rather than simply outputting XYZ coordinates as standard G-code.
For example, a drilling operation created in Fusion may need to become a native drilling block that tells the CNC which spindle in the drilling head to activate.
A saw operation may need information about aggregate orientation and machining plane.
Five-axis machining additionally requires the post processor to understand the real kinematics and rotary-axis behaviour of the machine.
Example: Autodesk Fusion → SCM Maestro
SCM machines using Maestro or Xilog can use a machine-specific Fusion post processor to generate structured XCS output instead of generic anonymous G-code.
See the SCM Maestro XCS postprocessor →Read more about using Fusion for woodworking CNC and machine-specific CAM workflows.
Generic vs Custom Post Processor
| Requirement | Generic post processor | Machine-specific custom post |
|---|---|---|
| Standard 3-axis milling | Usually | Yes |
| Basic ISO G-code | Usually | Yes |
| Machine-specific tool change | Limited | Yes |
| Drilling aggregates | Limited | Yes |
| Horizontal boring | Limited | Yes |
| Saw aggregates | Usually no | Yes |
| Native woodworking formats | Usually no | Yes |
| Custom machine macros | Limited | Yes |
| 3+2 machining | Depends | Yes, if configured |
| Simultaneous 5-axis | Machine dependent | Yes, if configured |
| Machine-specific safety logic | Limited | Yes |
A generic post processor is not automatically a bad solution. For a standard machine using common controller conventions, it may be exactly what is needed.
A custom post becomes necessary when the output must reflect machine-specific hardware, controller behaviour, native file formats or production rules that the generic configuration does not know about.
How Does a Post Processor Work in Autodesk Fusion?
Autodesk Fusion separates CAM toolpath calculation from machine-code generation.
You first create and simulate machining operations inside the Manufacture workspace. When the toolpaths are ready, Fusion runs the selected post processor during the Post Process step.
Fusion post processors normally use the .cps format.
A post processor can react to events such as:
- program start;
- new machining operation;
- tool change;
- rapid movement;
- linear movement;
- circular interpolation;
- work-plane changes;
- drilling cycles;
- spindle changes;
- program end.
The post then converts those events into the structure expected by the target CNC.
Code example
function onOpen() {
var machine = getMachineConfiguration();
writeComment(
"Machine: " +
machine.getVendor() +
" " +
machine.getModel()
);
writeBlock(
gFormat.format(90),
gFormat.format(40),
gFormat.format(80)
);
}
This is only a simplified example. A production post processor may contain logic for machine limits, rotary axes, aggregates, custom drilling cycles, native output formats and safety behaviour.
Cutter compensation is another example of the relationship between CAM settings and post-processing logic. When Fusion uses In Control, Wear or related compensation modes, the post processor must generate the appropriate lead-in moves and controller commands. See our guide to tool compensation in Autodesk Fusion for a practical example of how CAM settings affect the generated CNC program.
Warning Signs That Your Post Processor Needs Attention
A reliable production post processor should minimise repeated manual corrections between CAM and the machine.
Typical warning signs include:
You manually edit the program after every export
If the same lines have to be changed every time a program is generated, the correction probably belongs in the post processor rather than in the operator’s daily workflow.
The same error appears in the same type of operation
Repeated errors during tool changes, drilling, work-plane changes or program starts usually point to a repeatable post-processing rule that needs to be corrected. For a real woodworking example, see our Autodesk Fusion and Holzher NC HOPS integration guide.
CAM simulation is correct but the CNC behaves differently
Simulation proves the toolpath strategy inside CAM. It does not guarantee that every machine-specific command in the final NC program is correct.
Tool numbers, feeds or spindle speeds do not match
This can happen when CAM output and the machine’s own tool database or macros use different rules.
The program works, but operators do not trust it
If every program requires extensive manual verification because nobody trusts the generated output, the post processor has not yet created a reliable CAM-to-machine workflow.
How Is a Custom CNC Post Processor Built and Tested?
Developing a reliable post processor starts with the actual CNC machine, not just the machine brand.
1. Identify the exact machine configuration
Required information typically includes:
- CNC manufacturer and model;
- controller or machine software;
- number of axes;
- rotary-axis configuration;
- tool changer;
- drilling heads and aggregates;
- supported program format;
- machine-specific options.
2. Collect proven machine programs
A program that has already run successfully on the CNC is one of the most useful references during development.
It shows how the real machine expects:
- program headers;
- tool calls;
- work offsets;
- drilling;
- spindle commands;
- rotary positioning;
- program termination;
- special machine functions.
3. Configure the post-processing logic
The post processor is adjusted to produce the required output structure and machine behaviour.
4. Generate controlled test programs
Testing should begin with simple operations before moving to more complex functions.
Typical test sequence:
- program start and end;
- tool change;
- XYZ positioning;
- contour milling;
- pockets;
- drilling;
- work-plane changes;
- aggregates;
- indexed multi-axis machining;
- simultaneous 5-axis machining where required.
5. Validate on the real machine
Final validation must be performed safely on the actual CNC configuration.
Simulation alone cannot verify every controller setting, tool table, machine parameter or physical machine behaviour.
6. Production handover
After validation, the final post processor and its configurable properties should match the agreed machine configuration and production workflow.
Supported CNC Machines and Post Processors
CCSOFTCZ develops Autodesk Fusion postprocessors for both conventional CNC controllers and woodworking machining centres.
Supported workflows include machines and systems from SCM, Holzher, Homag, Biesse and other CNC manufacturers. See the full postprocessor list of supported CNC postprocessors.
View supported Autodesk Fusion postprocessors →
If your CAM toolpaths are correct but the generated machine program still requires manual edits, the problem may be in the post-processing layer.
Send us:
- CNC manufacturer and model;
- controller or machine software;
- number of axes;
- required output format;
- sample program that already works on the machine;
- typical machining operations.
We can check whether an existing Autodesk Fusion postprocessor can be adapted or whether your machine requires a custom configuration.

