← Back to CNC Programming

Planes, Units & Numeric Conventions

Plane selection and units seem trivial but cause real scrap parts. This page explains G17/G18/G19, G20/G21, and why the number 100 might mean 100 mm or 1.0 inch.

Concept

G17 selects the XY plane (mill default). G18 selects the XZ plane (lathe default). G19 selects the YZ plane. Plane selection matters for circular interpolation: the I/J/K vectors and G02/G03 direction are interpreted in the selected plane. Program an arc in G17 when the machine is in G18, and the circle comes out in the wrong plane.

G21 = metric (mm). G20 = inch. Everything in the program — coordinates, feeds, offsets — follows the active unit mode. Mixing mm and inch is catastrophic: a program written in mm run in inch mode cuts everything 25.4× off.

The plane also affects which I, J, and K values the controller expects when programming arcs. In G17 (XY), I and J are the arc center offsets in X and Y. In G18 (XZ), I and K are the center offsets in X and Z. In G19 (YZ), J and K are the center offsets in Y and Z. The unused address is not necessarily ignored; the controller may use it for another purpose or reject the block. Switching planes without understanding this causes arcs that go in the wrong direction or radius. This is why the startup block always sets the plane explicitly — it must match how the rest of the program is written.

Unit errors are not caught by syntax checks. A program that looks perfectly correct will move 25.4 times too far if G20 is active instead of G21, or shrink to 1/25.4 of the intended distance if G21 is active instead of G20. Always confirm the unit mode on the controller display before pressing cycle start. The G20 or G21 state is part of the machine modal display, not just the program — it persists between programs until changed.

Many shops standardize on G21 (metric) and G17 (XY) in their startup block for milling work, but a lathe program that uses G18 (XZ plane) for turning arcs must set it explicitly at the start. Failing to set the correct plane can cause the controller to reject arc commands or compute them in the wrong orientation.

Why It Matters

A G20/G21 mismatch produces parts that are 25.4 times too small or too large. Plane errors cause arcs to be in the wrong plane — the tool makes a circular move in XZ instead of XY, producing a groove instead of a circle. These errors are not caught by syntax checkers; they may be caught by graphical verification, travel checks, or inspection — not only by final measurement. Always set units explicitly in the startup block.

How It Works

Plane Selection

CodePlaneUsed For
G17XYMilling, drilling, pocketing (mill default)
G18XZLathe turning, facing (lathe default)
G19YZRare; special applications
Three Plane Codes G17 X Y G18 X Z G19 Y Z

Units

G21 mm: X25.4 means 25.4 mm. G20 inch: X1.0 means 1.0 inch. Always confirm units before running. On Haas, the default is set by machine parameter; the G-code should still explicitly command G21 (or G20) in the startup block.

Decimal Point Convention

On Haas controls, Setting 162 determines whether numbers without a decimal point are treated as if they had one (e.g., X100 = 100.0) or scaled down. The safe habit regardless of setting: always write the decimal point — X100. or X100.0. This removes ambiguity when programs are moved between machines or settings.

Example

A program written in mm (G21) drills at X25.4 Y12.7. If you forget G21 and the machine defaults to G20 (inch), X25.4 means 25.4 inches = 645.16 mm — 25.4 times larger than intended. Whether this exceeds travel depends on the machine, work offset, and current limits; even if it does not overtravel, it can still cause a collision or a badly wrong part. Always set G21 explicitly in the startup block.

Common Mistakes

Practice

1. You program X10.5 in G21. What is the actual position?

Show answer

10.5 mm.

2. Same X10.5 in G20. What is that in mm?

Show answer

10.5 inches = 266.7 mm. This is why unit mismatch is catastrophic.

3. Which plane should a mill use for pocketing?

Show answer

G17 (XY plane). G18 would make circular moves in XZ, producing arcs in the wrong plane.

Sources