On this page
No. Many CNC machines accept G-code-style programs, but their supported commands, cycles and machine functions can differ. Some controls also provide conversational programming formats. A shared language family does not make every program interchangeable.
For a part buyer, the practical distinction is between the design definition, the planned machining operations and the program prepared for a particular machine.
G-code is a common format, not one universal implementation
G-code-style programs organize instructions into blocks containing commands and values. These can describe motion, feed and related machining actions. LinuxCNC, for example, documents its language as based on RS274/NGC and explains how G and M commands appear in those blocks.
Controls can share familiar commands while differing in supported cycles, variables, auxiliary functions or syntax. A programmer must use the documentation for the target control and machine. Our guide to how a CNC system controls motion explains what happens after the instructions are interpreted.
Conversational programming is another route. HEIDENHAIN’s TNC 320 manual describes both its dialog-guided Klartext language and ISO-format programming. This is an example of one control supporting different formats, rather than evidence that every control accepts both.
A postprocessor prepares machine-specific output
In a CAM workflow, the programmer defines operations, tools and toolpaths from the part geometry. A postprocessor then converts that manufacturing data into the target machine’s program format. It does more than change a filename extension.

Autodesk’s postprocessor introduction describes machine-specific output and separate handling for program starts, tool changes and movement. Its post library also warns that a standard post may not match a particular CNC configuration. Selecting a similar machine name is therefore a starting point for verification.
| Layer | What needs to match | What it does not prove |
|---|---|---|
| Program format | Accepted syntax, cycles and functions | The physical setup is correct |
| Machine configuration | Available axes, options and auxiliary actions | Another machine uses identical behavior |
| Job setup | Tool assemblies, offsets, stock and fixtures | The finished part meets its drawing |
The term “NC program” is still used for files run by modern CNC controls. The NC-versus-CNC explanation separates that terminology from the older control architectures.
The same controller does not guarantee a reusable setup
Even within a control family, compatibility needs checking. The TNC 320 manual explicitly notes that programs from other HEIDENHAIN contouring controls may contain elements it does not accept.
There is a second issue after language compatibility: the physical job. If a fixture raises the part, the work reference and available clearance must reflect the new height. Changing the tool assembly can also change the tool data. Neither change necessarily requires a different programming language.

A program that loads without a syntax error has passed only one check. Its motions, tools and clearances still need verification against the intended setup. That distinction prevents “the code is accepted” from being mistaken for “the job is ready.”
For outsourced parts, send the definition of the part
The manufacturing team normally prepares the machine-specific program from the agreed geometry and requirements. A buyer does not usually need to select a control language. Supply the current design and acceptance requirements using the CNC machining RFQ guide.
If transferring an existing process is part of the order, identify that separately. Its program revision, target machine, tools and setup records matter alongside the drawing; an old NC file alone does not define the complete manufacturing process.
Frequently asked questions
Can I make a program compatible by changing .nc to another extension?
No. Renaming a file does not translate its instructions or change the required machine configuration. File naming and accepted program syntax are separate matters.
Is a STEP file a CNC programming language?
No. An ordinary STEP model used for part exchange supplies design data. The manufacturing workflow still needs to define the operations and produce instructions suited to the machine. A model and an executable machining program serve different purposes.
Must every CNC program come from CAM software?
No. Programs can also be written manually or prepared through supported conversational functions at the control. CAM is useful for many workflows, but its presence is not what makes a machine CNC.
Technical sources
LinuxCNC, G-code Overview, section 1. HEIDENHAIN, TNC 320 Klartext Programming User’s Manual, NC software 77185x-18, October 2023, page 80. Autodesk, Introduction to Post Processors in Fusion, updated September 4, 2025, and Post Library for Autodesk Fusion, compatibility information.



