Historical Context & Motivation
For centuries, shaping raw material into finished objects required the skilled hands of artisans who read blueprints and manually guided cutting tools along precise paths. The advent of Computer Numerical Control (CNC) in the mid-twentieth century transformed this ancient craft by delegating the physical choreography of cutting to a coded language that machines could interpret. That coded language—G-code—became the universal lingua franca between digital design environments and the physical machines that mill, turn, route, and laser-cut material. Understanding how a post-processor translates abstract toolpath data into machine-readable G-code is essential for any visual artist working with digital fabrication, because it bridges the gap between creative intent in software and physical reality on the shop floor.
This historical trajectory reveals a persistent problem: every CNC machine speaks a slightly different dialect of G-code, shaped by its manufacturer, controller hardware, and mechanical capabilities. The question that defines this lesson is therefore: How does Fusion 360 translate a single set of toolpath data into the precise G-code dialect required by your specific machine? The answer lies in the concept of post-processing, and mastering this final link in the digital fabrication chain ensures that the objects you design on screen emerge faithfully from raw material.
Core Principles & Definitions
Before diving into the mechanics of G-code generation, it helps to establish the foundational vocabulary. In Fusion 360's CAM environment, your creative journey from 3D model to physical part passes through several conceptual stages: you define operations (how a tool should interact with material), the software computes toolpaths (the geometric trajectories the tool follows), and finally a post-processor converts those generic toolpaths into a G-code file that your particular machine controller can execute. Think of the post-processor as a translator fluent in many machine dialects, ensuring that the same creative intent yields correct physical actions regardless of which machine sits in your studio.
Toolpath (Internal Representation)
Post-Processor
G-Code (RS-274 / ISO 6983)
Machine Controller
Machine Configuration
Visual Explanation — The Post-Processing Pipeline
As the diagram illustrates, the post-processor sits at a critical juncture between the abstract world of CAM computation and the physical reality of machine motion. Everything upstream of the post-processor—your design, your choice of cutting strategy, your feeds and speeds—remains independent of the target machine. Everything downstream—the text file that the controller reads—must conform precisely to that machine's expectations. This separation of concerns is powerful for visual artists because it means you can design once in Fusion 360 and then output G-code for a desktop CNC router in your studio, a waterjet cutter at a fabrication lab, or a 5-axis mill at an industrial facility, simply by selecting the appropriate post-processor.
How the Post-Processor Works
Although G-code generation is not governed by a single mathematical formula, understanding the underlying data transformations clarifies why different machines require different post-processors. At the most fundamental level, a toolpath is a sequence of cutter-location (CL) records that describe the tool's tip position in 3D space plus auxiliary data like feed rate and spindle speed. The post-processor iterates through these records and emits corresponding G-code lines. Two key translations happen during this process: coordinate formatting (how numbers are expressed) and modal command mapping (which G and M codes correspond to which actions on a given controller).
{x}, {y}, {z}, and {f} from the toolpath's CL record, applying machine-specific decimal precision and unit conventions.Beyond coordinate arithmetic, the post-processor also injects critical program structure: a header block (program number, units declaration, work offset), tool-change sequences (T01 M06), spindle start commands (S12000 M03), coolant codes (M08/M09), and a safe program ending (M30). Each of these elements varies by controller. A Haas controller, for example, expects a specific program-number format (O1001), while a GRBL-based hobby router typically omits it entirely. The post-processor encodes all of these idiosyncrasies so that you, the artist, never have to memorize machine-specific syntax.
Anatomy of a G-Code File
A complete G-code file produced by Fusion 360's post-processor has a recognizable anatomy, much like a well-structured screenplay has an opening, body, and closing. Understanding these sections helps you read and verify the output before sending it to your machine. The diagram below dissects a simplified G-code file to reveal the role of each section.
| G/M Code | Name | What It Does |
|---|---|---|
G00 | Rapid Positioning | Moves tool at maximum speed to a coordinate (no cutting) |
G01 | Linear Feed Move | Moves tool in a straight line at a controlled feed rate (cutting) |
G02 / G03 | Arc Interpolation | CW (G02) or CCW (G03) arc move; post-processor selects I/J or R format |
G28 | Return to Home | Sends axis to machine home position; critical safety command |
M03 / M05 | Spindle On / Off | M03 starts spindle clockwise; M05 stops it |
M06 | Tool Change | Initiates an automatic tool change (ATC) or prompts manual swap |
M30 | Program End & Reset | Ends program and rewinds to the beginning; equivalent to closing a file |
Worked Example — Post-Processing in Fusion 360
Imagine you have designed a decorative relief panel in Fusion 360 and set up a 3D Adaptive Clearing operation followed by a Parallel finishing pass. You are ready to generate G-code for a Shopbot Desktop CNC router running a GRBL-based controller. Walk through the following conceptual steps to see how post-processing works in practice.
grbl.cps). If your machine vendor supplies a custom post, you can import a local .cps file instead..nc or .gcode). Some posts offer toggles such as "Use radius arcs (R) instead of I/J" or "Output line numbers." For GRBL, leave I/J arcs enabled and disable line numbers (GRBL does not require them)..gcode text file. The file opens in Fusion's NC editor, where you can scroll through the code. You should see a short header (G21 for metric, G90 for absolute mode), followed by your cutting moves (G01, G02, G03 lines), and a clean ending (M05, M30).Comparing Post-Processors for Common Machines
Not all post-processors are created equal, and visual artists frequently encounter different machines in studio environments, fabrication labs, and collaborative workshops. The table below compares the behavior of three common post-processors you might encounter as a Fusion 360 user. Notice how the same toolpath data can produce subtly different G-code depending on the target machine.
| Feature | GRBL (Hobby CNC) | Haas (Industrial Mill) | Shopbot OpenSBP |
|---|---|---|---|
| File extension | .gcode | .nc | .sbp |
| Program number | Not used | Required (O1001) | Not used |
| Arc format | I/J incremental | I/J or R (configurable) | CG command (proprietary) |
| Tool change | Pause for manual change (M06 + M00) | Automatic tool changer (T## M06) | C6 command for ATC |
| Feed rate units | mm/min | mm/min or in/min | in/sec (unique!) |
| Typical use | Desktop routers, 3018 mills | Professional machining centers | Education/art CNC routers |
Connection to Advanced CAM Concepts
The conceptual post-processing workflow introduced in this lesson forms the foundation for more sophisticated techniques that you may encounter as your digital fabrication practice grows. Multi-axis machining (4-axis and 5-axis) demands post-processors that output rotary axis coordinates (A, B, or C axes) alongside the standard X, Y, Z linear axes. Custom post-processor editing allows advanced users to modify the JavaScript source of a post-processor to add custom comments, change formatting, or support non-standard machines such as robotic arms used in sculptural fabrication. Additionally, Fusion 360's Machine Simulation feature can replay the generated G-code against a virtual model of the physical machine, detecting collisions between the tool, workholding, and machine structure before any material is cut.
| Concept | This Lesson (Basic) | Advanced Extension |
|---|---|---|
| Axes | 3-axis milling (X, Y, Z) | 5-axis simultaneous (X, Y, Z, A, B) |
| Post-processor | Select from Fusion library | Edit JavaScript (.cps) source code |
| Verification | Toolpath simulation in Fusion | Full machine simulation with collision detection |
| Machine types | CNC routers, basic mills | Robotic arms, lathes, wire EDM, hybrid additive-subtractive |
| Output format | Standard G-code (RS-274) | Vendor-specific languages (Heidenhain, Mazak, RAPID for robots) |
For visual artists specifically, the frontier of post-processing intersects with computational design and robotic art. Artists like Madeline Gannon and studios such as Gramazio Kohler Research use custom post-processors to drive industrial robots for sculptural and architectural fabrication. Understanding the conceptual framework of post-processing established in this lesson gives you the vocabulary and mental model to engage with these advanced practices when the time comes.
Practice Problems
Lesson Summary
This lesson traced the journey from a digital design in Fusion 360 to a physical object on a CNC machine, revealing the critical role of the post-processor as the translator between machine-neutral toolpath data and machine-specific G-code. We explored the historical evolution from punched-tape NC machines to modern cloud-based CAM, established definitions for CL data, G-code commands (G00, G01, G02, M-codes), and machine controllers, and visualized both the post-processing pipeline and the anatomy of a G-code file.
Key practical takeaways include: always select the correct post-processor for your target machine from Fusion 360's library; verify the output by inspecting the header and footer of the generated file; and remember that the same design can be output for multiple machines simply by changing the post-processor—your creative work stays intact. As you advance, you will encounter multi-axis machining, custom post-processor editing, and even robotic fabrication—all of which build upon the foundational concepts introduced here.