Absolute vs Incremental CNC Positioning (G90 vs G91) Explained

Quick Answer: G90 vs G91 in CNC Programming

Absolute positioning (G90) moves the machine to an exact coordinate based on the active work offset or part zero. Incremental positioning (G91) moves the machine a specific distance from its current location. Most CNC programs primarily use G90 for predictable positioning, while G91 is commonly used for repetitive moves, canned cycles, and relative positioning operations.

If you spend enough time around CNC machines, sooner or later you’ll hear someone ask:

“Is that move in G90 or G91?”

And in real machine shops, that question matters a lot more than beginners realize.

One incorrect positioning mode can send a tool straight into a vise, fixture clamp, probe, rotary axis, or finished surface surprisingly fast. From real shop experience, G90/G91 confusion is one of the most common causes of beginner crashes — especially when operators mix CAM-generated code, MDI commands, and manual edits without checking the active coordinate mode first.

The confusing part is that both systems are technically simple once you understand how the machine interprets coordinates internally.

The hard part is learning when each method is safer, faster, or more practical in actual production machining.

What Is Absolute Positioning in CNC?

G90 absolute positioning example in CNC machining using fixed work coordinates

Absolute positioning means every coordinate references a fixed origin point.

In CNC machining, that origin is usually:

If you’re still learning how work offsets and machine coordinates interact, understanding the basics of CNC machining basics helps make G90 positioning logic much easier to visualize.

  • work offset zero
  • fixture offset location
  • part datum
  • probing origin
  • setup reference point

Most CNC controls activate absolute positioning using:

G90G90G90

When G90 is active:

  • every coordinate is tied to the same zero point
  • previous moves do not affect the next location
  • the control calculates the final destination automatically

Example:

G90
G00 X0. Y0.
G01 X2.000 Y1.000 F20.

The machine interprets this as:

  • move directly to X2.000
  • move directly to Y1.000
  • relative to the active work coordinate system

Even if the cutter starts somewhere completely different inside the machine envelope, the destination stays fixed.

Why Most CNC Programs Use G90

In real production environments, most full programs are written primarily in G90 because:

  • coordinates match engineering drawings
  • setup verification is easier
  • restart recovery is safer
  • proving out new programs becomes more predictable
  • dimensional inspection is simpler

If a print calls for a hole at:

  • X4.250
  • Y2.500

then absolute programming allows the machinist to verify location instantly without doing additional math.

That becomes especially important during:

Many setup and restart problems happen because operators misunderstand work offsets, tool length offsets, or machine position recovery after CNC programming errors.

  • first article inspection
  • manual code edits
  • mid-cycle recovery
  • crash troubleshooting
  • fixture offset adjustments

Absolute Positioning Advantages

AdvantageWhy It Matters
Easier troubleshootingCoordinates always reference the same origin
Safer restart recoveryEasier to restart mid-program
Better for complex geometryLower cumulative error risk
Easier print verificationMatches blueprint dimensions directly
Cleaner CAM outputMost post processors default to G90
Lower crash riskEasier for operators to visualize movement

What Is Incremental Positioning?

G91 incremental positioning showing relative movement between machined features

Incremental positioning works differently.

Instead of moving to a fixed coordinate, the machine moves a distance from its current location.

Most CNC controls activate incremental positioning using:

G91G91G91

Example:

G91
G01 X1.000

This does NOT mean:

  • move to X1.000

It means:

  • move 1 inch in the positive X direction from the current position

That distinction is critical.

Incremental Positioning Is Distance-Based

A good way to think about it:

  • G90 uses coordinates
  • G91 uses movement distances

Absolute positioning says:

“Go to this exact location.”

Incremental positioning says:

“Move this far from where you currently are.”

That makes G91 extremely useful for:

  • repeating hole patterns
  • subprogram loops
  • step-over toolpaths
  • peck drilling
  • canned cycles
  • engraving passes
  • bolt circle patterns

Real CNC Example of Incremental Movement

Suppose the cutter is currently located at:

X2.000 Y3.000

You command:

G91
G01 X1.000

The machine moves to:

X3.000 Y3.000

If you repeat the same command:

G01 X1.000

the machine now moves to:

X4.000 Y3.000

Every movement builds from the previous location.

That’s why incremental positioning can become dangerous if the machine loses track of where it actually is.

Comparison between G90 absolute positioning and G91 incremental positioning in CNC programming

Absolute vs Incremental CNC Positioning Comparison

FeatureAbsolute Positioning (G90)Incremental Positioning (G91)
Reference PointWork offset zeroCurrent machine position
Coordinate LogicFixed destinationRelative movement
Best for BeginnersYesUsually harder
Best for Production ProgramsExcellentLimited
Best for Repeating MovesModerateExcellent
Restart SafetyBetterRiskier
Error AccumulationLowerHigher
CAM CompatibilityStandardUsed selectively
Operator VisualizationEasierHarde

Why G91 Causes CNC Crashes So Often

Broken CNC end mill caused by incorrect G91 incremental positioning command

From real workshop experience, many crashes involving G91 happen because operators forget the control is still in incremental mode after:

  • MDI testing
  • probing routines
  • canned cycles
  • setup movements
  • manual recovery operations

A very common scenario looks like this:

G91
G01 X1.0

Later, the operator runs:

X5.0

thinking the machine will move:

  • TO X5.0

But the machine actually moves:

  • 5 inches FROM the current location

That can instantly destroy:

Most CNC crash situations involving G91 happen during unsafe restart procedures, incorrect MDI usage, or manual edits made after interrupted machining cycles. Many of these situations start with simple unsafe CNC programming mistakes.

  • carbide end mills
  • probes
  • vises
  • soft jaws
  • tombstones
  • fixtures
  • spindle probes

In real shops, experienced programmers intentionally place:

G90

multiple times throughout programs purely as crash prevention insurance.

G90 vs G91 in Real CNC Programs

Most CNC programs primarily run in G90.

However, many controls temporarily switch into G91 automatically during:

  • canned drilling cycles
  • retract movements
  • cutter compensation logic
  • subprogram repetitions
  • probing macros

This is extremely common on:

  • Fanuc
  • Haas
  • Mitsubishi
  • Siemens
  • Mazatrol post outputs

Many beginner machinists don’t realize their CAM software may switch between G90 and G91 internally several times during a single program.

That’s why reading posted G-code carefully matters — especially before running an unfamiliar post processor.

How CAM Software Uses G90 and G91

CAM software generating CNC toolpaths using G90 and G91 positioning modes

Modern CAM systems usually output:

If you’re new to CNC programming, learning how G-code structure works can help explain why CAM software constantly switches between G90 and G91 automatically.

  • G90 for primary positioning
  • G91 for efficiency-based movements

For example, CAM software may use incremental positioning for:

  • repetitive Z retracts
  • peck drilling
  • arc transitions
  • helical interpolation
  • canned cycle optimization

In most cases, this improves code efficiency and reduces file size.

But during manual editing, these automatic transitions can confuse operators who are not expecting mode changes.

One common mistake machinists make is editing a single line without noticing the control switched modes several blocks earlier.

Safe Restart Techniques for G90 and G91

Safe CNC restart procedure checking work offsets and positioning modes

Safe restart recovery becomes much easier in absolute positioning.

With G90:

  • coordinates remain predictable
  • operators can restart from known locations
  • setup verification is simpler

With G91:

  • the machine position depends on all previous moves
  • interrupted cycles become harder to recover
  • operators may need to re-home or re-reference axes

In real production shops, restart mistakes happen most often during:

  • tool breakage recovery
  • insert changes
  • power interruptions
  • optional stop restarts
  • setup prove-outs

A good habit is verifying:

Many experienced machinists also run dry-run verification passes above the part before restarting programs after tool changes or interrupted machining cycles. These dry-run verification procedures help reduce crash risk significantly.

  • active work offset
  • tool length offset
  • machine coordinate position
  • active positioning mode
  • spindle state
  • safe Z height

before pressing cycle start again.

Beginner CNC Positioning Mistakes

CNC operator testing incremental positioning movements in MDI mode

Forgetting Active Coordinate Mode

This is the most common problem.

Many beginners assume:

  • the machine automatically resets to G90

Some controls do not.

Incremental Z-Axis Mistakes

This is where crashes become expensive.

Example:

G91
G00 Z-2.0

If the spindle is already close to the part surface, the machine may rapid directly into:

  • fixtures
  • clamps
  • the workpiece
  • the table

From real machine shop experience, incremental Z mistakes damage tools faster than almost anything else in beginner programming.

Mixing MDI and Production Code

Operators frequently:

  • jog the machine manually
  • test moves in MDI
  • forget the machine remains in G91

Then they load production code expecting normal absolute movement.

That situation causes a surprising number of spindle crashes.

Incremental Positioning in Canned Cycles

CNC canned drilling cycle using incremental positioning movements

Many canned drilling cycles internally rely on incremental logic.

Examples include:

Understanding how peck drilling cycles work internally makes canned cycle troubleshooting much easier during deep-hole machining operations.

  • G81
  • G83
  • G73

Some controls interpret retract distances incrementally depending on the cycle structure and return mode.

That’s why understanding G91 becomes important even if you rarely hand-write incremental code yourself.

Absolute vs Incremental Encoders: Similar Logic in Automation

The same positioning concept exists in industrial automation systems.

Absolute encoders retain true shaft position even after power loss, while incremental encoders track movement relative to a reference point.

This mirrors CNC positioning logic closely:

  • absolute systems always know exact position
  • incremental systems track relative movement changes

Modern automation systems often favor absolute feedback where:

  • restart recovery matters
  • positioning accuracy is critical
  • homing time must be minimized

Industrial motion control systems use these same principles heavily in robotics and precision automation.

Professional CNC Programming Tips

Machinist verifying CNC work offsets and safe Z height before cycle start

Always Declare G90 or G91 Explicitly

Never assume the machine is already in the correct mode.

Good programs clearly define:

  • G90/G91
  • work offsets
  • plane selection
  • tool length compensation
  • cutter compensation state

near the beginning of the file.

Verify Safe Z Height Before Restarting

Before restarting:

  • single block the first moves
  • check machine position page
  • confirm tool length offsets
  • confirm active coordinate mode
  • dry-run above the part if needed

This prevents many avoidable crashes.

Watch for CAM Post Processor Changes

Different post processors handle positioning logic differently.

Some aggressively optimize with G91 while others stay almost entirely in G90.

Always inspect:

  • canned cycles
  • retract logic
  • subprograms
  • probing macros

before running new post outputs on production parts.

FAQ: G90 vs G91 CNC Positioning Questions

Is G90 absolute or incremental?

G90 activates absolute positioning mode on most CNC controls.

Is G91 dangerous?

Not inherently, but forgetting the machine is still in G91 can easily cause crashes or positioning errors.

Why do CNC machinists prefer G90?

Because coordinates remain fixed relative to the work offset, making troubleshooting and restart recovery easier.

Can G90 and G91 appear in the same CNC program?

Yes. Most modern CNC programs switch between both modes depending on the operation being performed.

Why is G91 commonly used in canned cycles?

Incremental movement simplifies repetitive distances and retract logic during drilling and repetitive machining operations.

What happens if you restart a program in G91 accidentally?

The machine may move relative to the current location instead of the intended coordinate, potentially causing:
tool crashes
fixture damage
spindle overload
broken probes
ruined parts

Do all CNC controls use G90 and G91 the same way?

The overall concept is the same across most controls including Fanuc, Haas, Siemens, and Mitsubishi, although some canned cycles and macros may behave differently.

Final Thoughts on G90 vs G91 CNC Positioning

Absolute and incremental positioning are foundational CNC programming concepts, but understanding them properly goes far beyond memorizing:

  • G90
  • G91

The real skill is understanding how the machine interprets movement internally and how those positioning modes affect:

  • setup safety
  • restart recovery
  • CAM output
  • operator workflow
  • crash prevention

From real machine shop experience, beginners usually learn faster with G90 because it directly matches print dimensions and fixture offsets.

Incremental positioning becomes more valuable later when:

  • programming repetitive operations
  • optimizing toolpaths
  • troubleshooting canned cycles
  • writing macros
  • improving machining efficiency

Once machinists fully understand how G90 and G91 interact with work offsets, machine coordinates, tool offsets, and CAM-generated code, CNC programming becomes much easier to visualize and significantly safer to run.

Leave a Comment