Tag Archives: how to program

Absolute Vs. Incremental – CNC Programming

To be able to write and edit programs, you must know when and how to use Absolute and Incremental modes effectively. More programs are in absolute, but there are times when it’s easier to use incremental.

There are major differences between to the two, so if you don’t know how each one works, don’t start programming until you read this. Mixing the two up can and will cause a disaster

What Is Absolute?

When programming in absolute, all of your coordinates and movement values will come from the origin (0,0) point. If you want to be in Absolute, the G-code that defines this is G90, which is a modal code.

Absolute Programming
Absolute Dimensioning

Most CNC programs are written in absolute because it is easier to understand. Why is it easier, you ask? Because if you have a lot of coordinates to move, you always know where the center of the tool is in relation to the work offset.

What Is Incremental?

How is Incremental different from Absolute? Well, instead of all of your coordinates/numbers coming from one location (0,0 offset), each move is the distance from your current location. That means if you want 2 holes that are 4.000″ apart and start 4.000″ from your start location, you would use X4.0 twice, as opposed to using X4.0 and then X8.0 for the second hole if you were to use Absolute. G91 is the G-code that puts you in Incremental mode, and it is modal as well.

Incremental Programming
Incremental Dimensioning

Which one is better? That depends on what you’re doing, but 99% of the time Absolute programming will be easier. If you’re hand-programming, it may require a little more math, depending on how the blueprint is laid out, but it will be much easier to go back and read or edit the program if there is a mistake.

In G90 (absolute), no matter where your tool is, you can always go move to a certain location by inputting those coordinates, such as X1.625Y-.875. However, if you’re in G91, you can’t just punch those numbers in if your tool is somewhere other than the origin. If you put in those coordinates, your tool will move a positive 1.625 in the X direction, and a negative .875 in the Y direction from where it currently is.

So, how do you get to that location in G91? You have to know where you tool is, then add or subtract the distance of the location from where it is relative to the origin. You see now why incremental can be very confusing? If you’re in G91 and have dozens, or even hundreds of moves, one mistake in the middle of the program and all of the following numbers will be skewed because they all come from the previous location.

On the flip side, you can alternate between G90 and G91. If it’s easier to use incremental for a few moves, use G91, then when you want to go back to absolute, just put a G90 on the line of the next move.