Absolute and Incremental Positioning
Convert between positions and signed moves, and trace the endpoint of a program as its distance mode changes.
G90 gives a destination; G91 gives a signed change
G90 gives a destination; G91 gives a signed change
In common milling usage, G90 makes axis values absolute coordinates in the active coordinate system. G91 makes them signed changes from the current position. Neither command moves an axis by itself. Units and work offsets still matter.
Increment = next position − current position. Reverse the calculation with next position = current position + increment. Keep a separate running total for every axis.
For an ordinary G00/G01 move, an omitted axis stays in place. In G90, X0 requests X zero; in G91, X0 requests zero X movement. Do not reuse an omitted incremental value from the preceding block.
These G90/G91 meanings must not be assumed on every lathe. Some turning controls use X/Z for absolute and U/W for incremental coordinates, and use G90 for a turning cycle. Check the control before translating a mill program to a lathe.
One path can be written as points or as moves; Practice
One path can be written as points or as moves
Start at A = (6,4) mm. Visit B = (26,4), C = (26,19), then D = (11,19). Z is unchanged; these are coordinate exercises with no cutting setup implied.
| Move | Absolute destination, G90 | Increment, G91 |
|---|---|---|
| A → B | X26 Y4 | X20 Y0 |
| B → C | X26 Y19 | X0 Y15 |
| C → D | X11 Y19 | X−15 Y0 |
Check the conversion in both directions
Subtract endpoints: (26−6,4−4) = (20,0); (26−26,19−4) = (0,15); (11−26,19−19) = (−15,0). Add those changes to A: (6+20+0−15,4+0+15+0) = (11,19). The net move is (5,15), not the final absolute position.
Trace the active mode before evaluating each block; Practice
Trace the active mode before evaluating each block
Assume millimetres, one unchanged work coordinate system, no compensation and an initial position (6,4,12). This is a paper trace, not a machine-ready program. F120 is an arithmetic example.
G21 G90 G94
G01 X26 Y4 F120
G91 Y15
X-15
G90 X8
M30
| Motion block | Mode | Position afterward (mm) |
|---|---|---|
| G01 X26 Y4 F120 | Absolute | (26,4,12) |
| G91 Y15 | Incremental | (26,19,12) |
| X−15 | Incremental; G01 remains active | (11,19,12) |
| G90 X8 | Absolute; G01 remains active | (8,19,12) |
M30 ends this trace; it is not a command to move to zero. For arcs, the endpoint mode and centre mode are separate questions: see G-code and Toolpaths. For a broader view of modes use CNC Program Structure.