Open a print file and a milling program side by side and the first impression is kinship: the same G1 moves, the same coordinates, the same block shapes. Keep reading and the families split, each carrying a professional vocabulary the other never uses. Knowing exactly where the split runs is what lets 3D printing people read machining code, and vice versa, without bluffing.

What do both dialects share?

The motion grammar. G0 and G1 for rapid and feed moves, G28 homing, G90 and G91 positioning modes, millimeter units, and the letter-plus-value word format itself. This shared core is why the two communities can talk at all, and why a printing background shortens the machining curve so much, the practical journey mapped in the 3D printer to CNC router transition guide.

Where does printer code go its own way?

Toward heat and deposition. The printer dialect revolves around words machining never prints:

Printer-onlyWhat it does
E axis wordExtrusion, coordinated with motion
M104 / M109Set hotend temperature / set and wait
M140 / M190Bed temperature / wait
M106 / M107Part fan on / off
G29 familyBed leveling routines
G92 E0Reset the extrusion counter

The E word is the deepest difference: extrusion handled as an axis, so G1 X50 Y20 E4.5 weaves filament feed into the move itself. Temperature waits are the other signature, programs that pause until physics catches up, a concept machining code simply does not contain.

Where does machining code go its own way?

Toward force and variable geometry. The machining dialect adds:

Machining-onlyWhat it does
S + M03 / M05Spindle speed, start, stop
G54 familyWork offsets locating the part
G43 / G41 / G42Tool length and radius compensation
T + M06Tool selection and change
G81, G83, G71Canned cycles
M08 / M09Coolant

Every row exists because machining geometry varies: parts clamp anywhere, tools differ in length and radius, and operations repeat in patterns. Printing’s fixed bed and single nozzle make the whole offset apparatus unnecessary, which is exactly why G54 confuses printer people, the story told in what G54 means in 3D printing, and why the tool change sequence has no slicer equivalent.

What is the deeper difference behind the words?

Stakes and direction. Additive code commands material to arrive, and its failure mode is waste: bad code prints spaghetti, costs filament and hours, and embarrasses nobody twice. Subtractive code commands a tool through resistance, and its failure mode is force: bad code breaks tools, throws parts, and damages machines. The vocabularies reflect it, machining’s offsets, compensation, and prove-out culture are all force-management, and so should reading habits: a machining program deserves the line-by-line scrutiny a print file rarely gets.

A concrete illustration: G1 X100 F3000 is a routine travel move in a print and a possible disaster in a pocket, depending entirely on context the code itself does not show. Same words, different worlds around them.

Bottom line

One language, two vocabularies: a shared motion core, then E, temperatures, and fans on the additive side versus spindle, offsets, compensation, and cycles on the subtractive side, with force as the real divider. Whichever direction you are crossing, the gap is a compact recall set, and short drills on the G-code practice hub close it from either shore.

Sources

Frequently asked questions

What are the differences between additive and subtractive G-code?

A shared motion core (G0, G1, homing, positioning), then split vocabularies: extrusion E, temperatures, and fans for printing; spindle, work offsets, compensation, tool changes, and canned cycles for machining.

What is the E axis in printer G-code?

The extruder treated as an axis: G1 X50 Y20 E4.5 feeds 4.5 mm of filament during the move. Machining has no equivalent because material leaves rather than arrives.

Why does machining G-code need offsets when printing does not?

Machining geometry varies per setup, parts clamp anywhere and tools differ, so G54 and G43 reconcile program coordinates with reality. A printer’s fixed bed and nozzle let homing and leveling cover it.

What is the best way to learn machining G-code if I know printer G-code?

Drill the machining-only vocabulary with active recall; the motion core transfers. A free app like G-Code Sprint quizzes the everyday machining codes and repeats whichever ones you miss.

G-Code Sprint is a study and practice tool only. Always follow your instructor, employer, machine manual, and shop safety procedures.