---
title: "Mach3 G-Code List vs Fanuc: Same Core, Different Worlds"
description: "Mach3 and Fanuc share the standard core and diverge where dialects always do: cycles' fine print, macros, M-code ownership, and the strictness culture."
url: https://gcodepractice.com/journal/mach3-g-code-list-vs-fanuc/
canonical: https://gcodepractice.com/journal/mach3-g-code-list-vs-fanuc/
author: "Lawrence Arya"
authorUrl: https://www.linkedin.com/in/vibecoding/
published: 2026-06-07
updated: 2026-06-07
category: "Code reference"
tags: ["mach3", "fanuc", "dialect comparison", "g-code list"]
lang: en
---

# Mach3 G-Code List vs Fanuc: Same Core, Different Worlds

> **TL;DR** Mach3's G-code list and Fanuc's share the standard core, the motion four, planes and units, offset families, compensation, common drilling cycles, and the everyday M spine behave recognizably on both, and they diverge where dialects always diverge: Fanuc's canned-cycle fine print and Macro B layer have no full Mach3 equivalent, M-codes above the spine belong to the machine builder on Fanuc and to the screenset and plugins on Mach3, and the cultures differ, Fanuc's strictness (decimal conventions, alarms) versus Mach3's PC-software permissiveness. For a learner, the core is the curriculum and it transfers wholly in both directions.

The comparison sounds like David and Goliath, a hobbyist PC program against the [control that runs factories](https://en.wikipedia.org/wiki/FANUC), and the codes themselves refuse to play along: the lists overlap massively at the core, because both descend from the same standard, and the genuine differences live exactly where dialect differences always live. For a beginner deciding what to learn, or an owner moving programs, the overlap is most of the answer.

## The shared core, which is the curriculum

Motion (G00-G03), planes and units (G17-G21), distance modes (G90/G91), the [offset family](/journal/g54-work-offsets-explained/), compensation (G40-G43), the common drilling cycles, and the M spine (M00/M03/M05/M08/M30): all of it reads recognizably on a [Mach3](https://www.machsupport.com/) router and a Fanuc VMC, behaving as the [standard references](https://linuxcnc.org/docs/html/gcode/g-code.html) describe. This is the portable majority, the part worth drilling to recall, and the reason hobby-to-professional transitions work: the language learned on a garage router is the language the shop floor runs.

## Why the overlap exists at all

The convergence is not coincidence; it is lineage. Mach3 descends from the PC-control projects of the 1990s, which implemented the existing standard so that posted programs and trained machinists could use cheap hardware, and Fanuc's dialect is the de facto definition of that standard, the target everyone else aimed at. So Mach3 speaks Fanuc-shaped code for the same reason every controller in this site's comparisons does: compatibility was the product. The divergences below are what was expensive, proprietary, or unnecessary to copy, which is why they cluster in the deep cycle grammar and the macro layer rather than anywhere a beginner lives.

## Where the lists genuinely diverge

| Layer | Mach3 world | Fanuc world |
| --- | --- | --- |
| Cycle fine print | Common cycles, simpler parameters | Deep cycle families with per-model parameter grammar |
| Macro layer | Limited; logic lives in plugins and scripts | Macro B: variables, logic, the protection layer |
| M-codes above the spine | Screenset and plugin territory, per build | Machine-builder territory, per machine |
| Parsing culture | Permissive: forgiving formats | Strict: conventions enforced by alarm |
| Where it runs | A PC driving hobby and light iron | The control inside industrial machines |

Two rows deserve expansion. The macro row is the biggest capability gap: Fanuc's [Macro B layer](/journal/cnc-variable-programming-100/), variables, conditions, programmer-defined alarms, is where industrial programs carry their intelligence, and Mach3 puts equivalent logic outside the G-code, in plugins and scripts. The culture row is the biggest habit gap: Fanuc enforces format conventions by alarm, the [decimal-point family](/journal/missing-decimal-point-in-g-code-crash/) being the famous example, and the dwell-format story told in [G04 across dialects](/journal/g04-dwell-time-format-fanuc-vs-haas/) being its everyday cousin, while Mach3's parser forgives what it can. Programs grown on permissiveness carry habits strictness alarms on, which is why the working rule writes everything to the stricter standard, both worlds then accept it.

## What this means for the two people asking

The learner choosing where to start: start anywhere, drill the core, the free 60-second rounds on the [G-code practice page](/g-code-practice/) cover exactly the shared majority, and treat whichever control you meet first as one accent of a language you already speak. The Mach3 specifics worth knowing on day one are [their own short list](/journal/what-g-codes-do-i-need-to-know-for-mach3/).

The owner moving programs: core-only programs port with normal care, header read, dialect check on anything unusual, single-block prove. Anything touching cycles' fine print, macros, or above-the-spine M-codes gets rebuilt against the target control's documentation rather than translated on faith, the same inherited-program discipline the whole PC-controller family teaches, from [UCCNC](/journal/does-uccnc-use-standard-g-code/) to [PlanetCNC](/journal/planetcnc-vs-mach3-g-code-compatibility/), and the open-dialect side of the same map is drawn in the [LinuxCNC-versus-Fanuc comparison](/journal/linuxcnc-g-code-differences-vs-fanuc/). And in both directions, the comparison's quiet lesson stands: the lists differ at the edges because controls differ at the edges, and the core differs nowhere, which is exactly why the core is where the learning investment goes.

## Sources

- [Mach3: official site](https://www.machsupport.com/)
- [LinuxCNC: G-code reference](https://linuxcnc.org/docs/html/gcode/g-code.html)
- [Wikipedia: FANUC](https://en.wikipedia.org/wiki/FANUC)

## Frequently asked questions

### How different is the Mach3 G-code list from Fanuc?

Less than reputations suggest at the core, more at the edges: motion, planes, offsets, compensation, and common cycles read recognizably across both, while Fanuc's cycle fine print, Macro B layer, and builder M-codes have no exact Mach3 equivalents, and Mach3's plugin M-codes and permissiveness have none on Fanuc.

### Can I learn G-code on Mach3 and work on Fanuc machines later?

Yes: the core transfers intact. Budget for the culture shift, Fanuc's decimal conventions, alarm-driven strictness, and proven-program discipline, more than the vocabulary.

### Why does Fanuc reject programs that Mach3 runs fine?

Strictness as a design value: Fanuc enforces format conventions Mach3's parser forgives, decimals being the classic case. Write to the stricter standard and both accept it.

### Which list should a beginner actually memorize?

Neither as a list: memorize the shared core, the majority of both, and read each control's documentation for edges as machines enter your life. The free G-Code Sprint app drills that core in 60-second rounds.

---

Source: https://gcodepractice.com/journal/mach3-g-code-list-vs-fanuc/
Author: Lawrence Arya — https://www.linkedin.com/in/vibecoding/
