Introduction
When it comes to CNC programming, two essential coordinate systems define how a machine interprets tool movement: Absolute Programming (G90) and Incremental Programming (G91). Understanding the difference between the two is crucial for CNC programmers, as it directly affects accuracy, efficiency, and error prevention.
In this post, we’ll break down both methods with clear explanations, examples, and images so you can master their applications.
What is Absolute Programming (G90)?
In Absolute programming, every tool position is defined with respect to a fixed origin point (usually the workpiece zero).
-
The machine always references coordinates from this fixed zero point.
-
This makes programming more intuitive and reduces the chances of cumulative errors.
Example (Absolute mode – G90):
What is Incremental Programming (G91)?
In Incremental programming, each tool position is defined relative to its current position, not the origin.
- The next position is always calculated from where the tool is currently located.
- This method is often used for repetitive patterns or loop-based machining.
Example (Incremental mode – G91):
🔹 Key Differences: Absolute vs. Incremental
Feature | Absolute (G90) | Incremental (G91) |
---|---|---|
Reference Point | From workpiece zero (origin) | From the current tool position |
Ease of Use | Easier to read and debug | Flexible for repetitive moves |
Error Risk | Less chance of cumulative errors | Errors may accumulate over multiple moves |
Best Use Case | Precise machining, complex parts | Patterns, drilling cycles, repetitive cuts |
Practical Example – Drilling Holes
Absolute (G90):
- G90
- G81 X20 Y20 Z-10 R2 F100
- X-20 Y20
- X-20 Y-20
- X20 Y-20
- G80
Each hole is referenced from the fixed zero point.

Incremental (G91):
- G91
- G81 X20 Y20 Z-10 R2 F100
- X-40 Y0
- X0 Y-40
- X40 Y0
- G80
Each hole is referenced from the fixed zero point.
Conclusion
Both Absolute (G90) and Incremental (G91) programming are powerful in CNC machining.
-
Use Absolute when accuracy and clarity are most important.
-
Use Incremental when repeating patterns or relative movements are needed.
A skilled CNC programmer knows when to switch between the two for the best efficiency and precision.