G03 CNC Code Explained: An Easy Intro for Beginners [Counterclockwise Circular Interpolation]

Welcome to our comprehensive guide to using the G03 CNC code. Whether you’re a beginner learning CNC programming or an experienced machinist, understanding the G03 CNC code is extremely important.

In this guide, we’ll break down everything you need to know about this circular interpolation command, including how, when, and why to use it.

What does a G03 code do?

G03 sets the CNC movement mode to counterclockwise circular movement, otherwise known as circular interpolation.

illustration showing how a cnc machine moves from the start to end point when using counterclockwise circular interpolation

G03 is used to move the CNC around along a specified radius set with the R code in a counterclockwise direction and at a feed rate set with the F code.

illustration showing the radius in a circular interpolation move

G03 is a modal command which means it will stay on until switched to another code in the same movement group of codes such as G00 – Rapid travelG01 – Linear interpolation or G02 – Clockwise circular interpolation.

Learn CNC Programming – It’s Easier Than You Think!

Learning G Code doesn’t have to be difficult…

If you know what to focus on.

Join our simple, easy-to-follow course, “G Code Made Easy: CNC Programming for Beginners“. We walk you through all the important codes – with simple explanations and real-world examples.

Want to become a super-skilled CNC programmer? Join now to take the shortcut to becoming a G Code Master today!

Make Learning G Code Easy

What is circular interpolation?

You know how when you zoom in real far on a photo, it starts to look all pixelated?

Circular interpolation is kind of like that. When we zoom in real close and look at how the machine is moving, we see it isn’t so smooth.

illustration showing how a CNC machine makes steps when using circular interpolation
A series of small steps that look like a circle

While it may look like your CNC machine is moving in a perfect circle, it is actually moving in a series of small steps that look like a circle. This is called interpolation.

Basically, your CNC is doing the best it can to mimic a perfect circle.

You don’t need to do anything differently, it’s just good to know what we mean by interpolation.

G03 [counterclockwise circular interpolation] vs G02 [clockwise circular interpolation]

Everything that applies to the G03 code applies to the G02 code as well.

The only difference between the two is the direction of movement. 

illustration showing how a cnc machine moves from the start to end point when using clockwise circular interpolation

G02 moves clockwise and G03 moves counterclockwise.

G03 vs G3

Some people get confused about whether the 0 is required to be included in a G03 code.

To clear this up, there is no need to include the extra zero in the code. The CNC machine will read the code the same. It really is just a matter of preference.

Often you will see the full G03 code used in textbooks or other reference materials. In practice though, many prefer the shortened G3 code in their programs.

If you are working on your own, then go with whichever format you prefer. If you work in a bigger shop, make sure to stick to the format that the business has been using.

When to use a G03 code?

G03 codes will usually be in the lines of the program that are used to cut the part.

The G03 code allows the programmer to cut a full circle or portion of a circle.

Feed rate (F) and spindle speed (S) codes are used together with a G03 code to control the speeds and feeds.

An R code is used as well to tell the machine what size radius to move along. Some CNC programs will use IJK codes instead of an R code to describe the circular move.

Other codes used with G03

The codes below are used with the G03 code or commonly found very close to a G03 command in a CNC program:

Format for using a G03 code

G03 X7.5 Y1.5 R0.5

Once the G03 code is used the machine will move to any XYZ locations given in a circular movement going counterclockwise along the given radius size and the set feed rate. 

Because G03 is a modal code, you don’t need to specify it on every line of code. 

If the next line of code after the one above was:

X7.0 Y1.0 R0.5

then the machine would still move to the location in a circle at the set feed rate. Because it’s modal, it stays on until switched to another mode.

The feed rate will also remain the same until it is changed and isn’t required to be on every line. This means that the feed rate can be set before the G03 code is used as well.

How to turn off a G03 code

There isn’t a specific cancel command for G03 like there is for canned cycles. Instead to turn G03 off you will need to switch it to another code in the same group of movement codes.

The other codes in the movement group are:

Using any of these codes will turn G03 counterclockwise circular interpolation off and switch to the new movement mode.

What to think about when using a G03 code?


First, make sure you know what units you are working in. Moving 10 inches instead of 10 millimeters is a big difference.

A G20 (inches) or G21 (mm) code should identify the units you are working in before your G03 code.

comparison of units of measurement for cnc programming

Absolute vs incremental mode

The second thing to know is how the machine will understand position locations.

This is determined by whether you are working in absolute (G90) or incremental (G91) coordinates. The most recent G90 or G91 code in the program will determine which mode you are in.

Absolute positioning will move from a set zero location such as your machines home location or a specified location on your part.

Incremental positioning will move relative to your current position. 

The images below show the difference between the absolute and incremental positioning modes. The numbers in parentheses are the locations given to the the machine to make the move.

graph paper example of absolute positioning with multiple points as examples
graph paper example of incremental positioning with multiple points as examples

Notice how in absolute mode, all locations are relative to a single location, usually either the workpiece zero or machine home location. 

In incremental mode, all locations are relative to the machine’s current location.

Start and stop locations

Lastly, make sure you understand the path that the tool will take from it’s start location to the new location.

Check  where you are currently position wise (X, Y & Z location), where you will be moving to and if there is anything in between the two locations.

The G03 code will move the machine in a circular arc to your new location. You don’t want anything in the way or to miscalculate your stop point. Clamps or vises can be easy to forget about and run into.

Crashing your machine is never a good time.

CNC codes that are similar to G03

a comparison of the type of movement created with G00, G01, G02 and G03 cnc g codes

Note that all the movement codes listed below are modal. This means they will stay in the movement mode identified by the code until switched to a different mode.

Ready to master CNC programming?

Join our simple, easy-to-follow course, ‘G Code Made Easy: CNC Programming for Beginners’ and take the shortcut to becoming a G Code Master today!

Master G Code Today

Leave a Comment