G96, G97 and How To Calculate Surface Speeds

G96, G97 and How To Calculate Surface Speeds

Basic Turning

Basic Turning
G96 Hamsters Large wheel Small wheel
Call us for CNC Training and hamsters

Basic Turning, in the early days of CNC Turning G96 was one of the things that really made a massive difference.

It meant that instead of having to turn a part at a fixed speed and feed, the part could be programmed in G96 which was a constant surface speed.

Where diameters changed, particularly when facing, it made a massive improvement to tool life and surface finish as well as speeding up the whole process.

G97 Speed In RPM

In Basic Turning when you program G97 your machine will start the chuck up at a speed in RPM. So if you program.
G97 S1500 M3
Your chuck will start revolving clockwise at 1500 rpm.

G97 for Drilling Tapping and Screwcutting

When drilling  a hole you are on the centreline of the machine so you just want plain old simple RPM.

When tapping or spot drilling it’s the same.

Screw Threading (G76) can only be done in G97


G96 however means meters per minute. This is a surface speed.
G96 S200 M3
Your machine would start up at a surface speed of 200 meters a minute. Now your RPM would depend on where on the diameter the tool was positioned.

Basic Turning

If the tool was positioned  at a 100mm diameter it would be as if the tool were able to run around this diameter at  a speed 200 meters a minute.
It’s a bit like being on a running machine if you ran at 200 meters a minute and placed various diameters under your feet the large ones would turn at slow rpm and the small ones would turn at high rpm. (Just like the hamsters above)

Basic Turning

 That’s why on a manual lathe it is hard to face a large diameter without changing speed half way.


You know when you face a part on a CNC Lathe and you hear that change in pitch? It’s the spindle increasing in RPM as it gets closer to the center of the part.

When it gets to the center your spindle is flat out so the G50 becomes crucial.

The G50 restricts the speed of the machine.

G50 S2000 machine will go no higher than 2000 rpm.


G96 G97 hamster on a Wheel

Did you have a pet hamster as a child?

I know it’s a random question but bear with me there is a point to this.

Well maybe you still have a Hamster and that’s not a problem. Time you fuckin grew up but it’s not for me to judge.

Anyway I did and his name was Harold Wilson (British Prime Minister at the time).

Well I bought my hamster loads of different wheels to play on just like the one above.

My hamster suffered with depression on account of being stuck in a cage all day and not having a girlfriend oh and he had a lot of credit card debts too.

These wheels varied in diameter from about 6 inches to a massive 2 foot one. They kept him happy all night. He was so tired he slept all day.

Harold could only run so fast but I noticed when he was on the small 6 inch wheel it absolutely whizzed around. Now on the big two foot diameter one it took him ages just to get it to spin around once.

Basic Turning
G96 G97 all about hamsters

Harold Had G96

A CNC machine in G96 will give a lovely finish because the surface speed always remains the same.

So even though Harold ran at 200 metres a minute (this is fuckin lightening speed for a hamster)

The wheels ran at different RPM depending on what diameter they were.

Harold Was a Clever Bastard

Oh by the way Harold had a tail (unlike other hamsters) and a maths qualification.

He knew that if he multiplied the diameter of the wheel by .00312 it would give him the circumference of whatever wheel he was running on in meters.

200 mm wheel (.00312 x 200 = .6864)

All he now needed to do was divide this answer into the speed he was running at and he would know how many RPM his wheel was revolving at.

If he was running at 200 meters a minute not only would he be fuckin knackered but the wheel would be running at 291 rpm

200 / .6864 = 291

Basic Turning Manual Machining

Using a manual machine you have to compromise. At the outside your speed is too fast and when you get to the centre you are too slow.

Manual Lathe

On a CNC lathe we would normally program in mm per revolution as well because the speed is changing all the time so we need our feed to be locked into the speed.
With a machining centre our cutter is always revolving at the same speed so the feed can be constant in mm per minute.

Someone out there will be thinking “what happens in G96 when you get to the centre of the part”. Well the spindle will be flat out!

Could be a problem. That’s where your G50 comes in to restrict the speed. Very important! CNC Basics G50

cnc turning basics
G50 Warning

Watch the video

See how surface speeds are translated to speeds in RPM. There are many converters online that you can use for this and I do recommend their use. It will also mean you don’t have to watch my tedious video.
When I train people at the CNC Training Centre my emphasis is on understanding not memorising. I usually start by saying “please don’t remember all the things I am telling you”.

 In the early days training students in Basic Turning I remember them saying to me the next day that they had G codes floating around in their head from the lessons the day before.

Basic Turning
G96 and G97

What I really mean is that the most important thing is to understand what the machine can do and the concepts of programming and Basic Turning.
You could say “I know there is a G code that makes the machine run in RPM” so all you need is a list of G codes.

If you can be bothered to work through the simple maths above. It will help you to fully understand how G96 is works.

Here is a list of Basic Turning G Codes.

The ones you use every day you will remember whether you want to or not.

G96 Whoopee It’s amazing

So use G96 for everything.

Except for:

  • Drilling.
  • Tapping
  • Threading (Screw cutting)
  • Cutting the Lawn

If you feel you have been affected by any of the issues mentioned in this post please Contact me

If you liked this video, please don’t forget to subscribe to my YouTube channel by going to: CNC Training Centre

Please contact me if you require:

  • CNC programming training.
  • Want to learn CNC programming.
  • Fanuc control training.
  • Yasnac programming training.
  • Any type of CNC course.
  • Fanuc training courses
  • CNC lathe training
  • CNC Vertical Machining Centre training

Services offered at CNC Training Centre

Edgecam Training.

Classroom programmer training.

Onsite CNC Machine Training.

CNC Training on all controls and machines.

Mazak Training Fanuc Training

Don’t forget we offer training on all types of Mazak Machines and all Fanuc Controls 6m to 31i Oi old to young.

G76 Threading Cycle How Many Passes

G76 Threading Cycle you must agree that it’s not easy to use.

Read this article, no more sleepless nights worrying about G76 Threading Cycle. Myth busting information that simplifies and demystified. Applies to Haas, Fanuc and Mazak ISO

G76 Threading Cycle

Be sure to read the end of this article to see a simple way to calculate the number of passes needed.

I noticed quite a few people posting problems on Machining forums etc and as usual loads of misinformation. I decided to do a search on this and frankly there is “Bugger All”. So here we are.

 What Exactly is a G76 Threading Cycle?

G76 Threading Cycle

To cut a thread with a long hand G code program would take ages. Just one thread could need 30 lines of code. So to me that means loads of opportunities to screw up and it’s complicated.

Oh and It Gets Worse.

If you want to change something it is a nightmare. You will have to reprogram it just to change the depth of cut.

And not to mention all that boring maths that you will have to do. You remember that teacher with the beard that kept banging on about ratios and differentiation? Well, maybe you should have paid more attention.

Just One or Two Lines and It’s Done.

Read on, it’s simple and it’s complicated.

Sounds daft I know but you can miss out a lot of the complicated stuff in the cycle as a lot of the values have defaults (meaning you can miss them out).

Some of them are just boring and only used by clever fuckers, not normal people like you and me.

G76 X16.93 Z-25. K1.534 D.485 F2.5 (Simple as this)

Multi Repetitive Cycles do you know what they are?

Really, you don’t need to know, it’s just me trying to impress. Most of the cycles on a CNC Lathe are wrongly call Canned Cycles. The correct name for a cycle like G76 Threading Cycle and G71 Roughing Cycle is a Multi Repetitive Cycle. No that’s not an illness it’s the correct name. So don’t start ringing the “no win no” fee lawyers.

Canned cycles repeat each time a position is given. Multi Repetitive Cycles do what the title suggests, they repeat moves within a process. In threading, the cycle creates all the repeated moves needed for the thread to be produced.

That’s another piece of useeless information.

G76 Threading Cycle. So How Does It Work?

On a Fanuc control this is either a one line cycle or a two line cycle depending on age of control and parameter setting. Haas is a one line cycle.

You tell the cycle the depth, pitch, core diameter, length and maybe a few more “bits n bobs”. Then at the push of a button your thread appears.

Haas and Some Fanucs

G76 X16.93 Z-25. K1.534 D.485 A60 Q0 P2 F2.5

X = Core diameter of thread
Z = Thread end point
K = Depth of thread (as a radius)
D = Depth of first cut
A = Insert angle (Assumed A0 if not entered)
Q = The thread start angle this is used for multi start threads and can be omitted.
P = Cutting method (see later explanation, can be omitted)
F = Pitch of thread

Note on the Fanuc control you would have to enter the D value with no decimal point (D485)

So G76 Threading Cycle in it’s simplest form

You could write:
G76 X16.93 Z-25. K1.534 D.485 F2.5


G76 P010060 Q20 R.02
G76 X16.93 Z-25. P1534 Q485 F2.5

G76 Threading Cycle First Line
P01   One spring pass       00   Chamfer        60   Thread angle
Q       Minimum depth of cut
R       Finishing allowance

G76 Threading Cycle Second line

X         Core diameter of thread
Z         Thread end point
P         Depth of thread (as a radius no decimal point)
Q        Depth of first cut no decimal point.
F         Pitch of thread

On the Fanuc control it uses a two line display the P010060 is split into three sets of two digits.

First two being the number of spring passes.
Second two are chamfer. (More Details)
Third two are the tool angle.

So G76 Threading Cycle (Two Line) in it’s simplest form

Sorry there ain’t one, it’s complicated!

What on Earth are Spring Passes?

G76 Threading Cycle

When you cut a thread you get push off on the last cut so you can go over this a few times to get the correct size. These extra cuts are called spring passes. It depends on the material as to how many you will need.

Fuck The Zeus Book

Oh and by the way don’t go looking up the thread depth in some Zeus Book or some such thing. Just multiply the pitch by .614

Lets Cut an M20 x 2.5  Thread Using The G76 Threading Cycle

Thread Depth =.614 x Pitch

.614 x 2.5 = 1.535

X Minor Diameter to cut = 20 – (1.535 x 2)

X Minor Diameter to cut = 16.93


G76 Threading Cycle

G76 X16.93 Z-25. K1.535 D.485 F2.5

Have You Been Doing it Wrong for Years?

As I said above when I started googling G76, it’s not a pretty sight. For one there’s not that much information and not least of all some of it is wrong.

There are some absolute pricks out there claiming to know all about CNC Programming who actually know Jack Shit.

The way you use this cycle makes a big difference to the way the tool performs. The default above for the Haas G76 Threading Cycle would give you what is known as a “plunge cut”.
G76 Threading Cycle

It is where the tool plunges into the thread and the cut gets wider and therefore is more prone to chatter as it deepens. It is going straight down the centre of the thread vee.

If you put in A60 then the cycle will flank cut.

Flank Cut?????

See below:

Don’t know what flank cutting is? Don’t worry it just means you are stupid. I won’t tell anyone, your secret is safe with me.

Help is At Hand

Ways to cut a thread

(1) Plunge: cut straight down the middle of the thread programme. A0 or simply miss it out.


G76 Threading Cycle

(2) Flank cut: Cuts down the flank of the thread. A60 on a 60 degree thread form.

G76 Threading Cycle

(3) Alternate flank Cut: Switched from side to side cutting down the flank of the thread. A60 P2 if you have the option.

G76 Threading Cycle

So Which One Is Best.

The last one number (3) is the best and number (1) is worst.

Sorry to you geeks but I am going to over simplify it.


With method three you get a nice even cut with less chatter and less tool wear. It’s also kinder to your insert and better for the environment.

G76 Threading Cycle

If you don’t believe me then talk to your tooling guy. He knows more than me anyway.

G76 has a P value of 1 to 4 (P1 P2 etc). This determines the four different methods you can use. My advice is just ignore them all and use P2. This means the tool cuts by alternating between the two sides of the thread as above. You will also need to input A60 for the angle of the tread.

G76 D.485 K1.534 X16.93 Z-25. A60 P2 F2.5

Yes and as Always There’s a Catch

You will only have alternate flank cutting on a newer machine if you have an old banger then you’re stuffed.

Not to worry just use method (2) flank cutting it’s fine.

G76 Threading Cycle

Providing you input the insert angle A60 on a 60 degree thread form then you will get flank cutting.

 Cut Depth (The Elephant in The Room)

How do you work out the number of cuts?

G76 Threading Cycle

Be honest I know what you do, you guess. Well you are not alone actually I think loads of people do this. They guess a depth for the first cut then they just run the cycle and see how many passes they get.

Is this you?

Come on now this is not good.

For years I had seen that formula in the big yellow Fanuc Manual.

To be honest it just looked way too complicated. Then one day when my counselling sessions had finished I gingerly opened the big yellow book and decided once and for all to conquer it.

Wooppee It’s Easy

It’s just the depth of the thread divided by the square root of the number of passes. Bit of a mouthful.

So on your calculator:

(1) Press keys for depth of the thread eg 1.534

G76 Threading Cycle

(2) Press divide key (÷)

then press the √ key

G76 Threading Cycle

(3)Enter the number then press 10 then press =


G76 Threading Cycle

1.534 ÷ √10 = 0.4854

This is the value to enter for D


So Easy You Can Do it Backwards

So your cycle reads

G76 D.485 K1.534 X16.93 Z-25. A60 P2 F2.5

So how many passes will I get from this?

  1. Enter the depth of thread (K Value).
  2. Press ÷
  3. Enter depth of first cut (D value)
  4. Press =
  5. Press the squared key (²)

The answer is:

10.01689871 that’s 10 to you.

G76 Threading Cycle

So next time you cut a thread don’t guess the number of passes uses this formula it’s dead easy. You can also loose weight if you do this as part of a calorie controlled diet.

As I Said You Can Do it Backwards

Depth of thread divided by the depth of first pass squared.

As in the example above.

I know my depth of thread is 1.534 and I have

(1.534 / .4854)²

1.534/.4854 = 3.1602

3.1602 x 3.1602 = 9.98737 (10 to you)

Read on To See How to Get Every pass.

So you can use this formula to calculate the depth of every pass.

1.534 ÷√1   = 1.534      Cut = .000
1.534 ÷√2  = 1.084     Cut = .450
1.534 ÷√3  = 0.885     Cut = .199
1.534 ÷√4  = 0.767     Cut = .118
1.534 ÷√5  = 0.686     Cut = .081
1.534 ÷√6  = 0.626     Cut = .060
1.534 ÷√7  = 0.579      Cut = .047
1.534 ÷√8  = 0.542     Cut = .037
1.534 ÷√9  = 0.511      Cut = .031
1.534 ÷√10 = 0.485     Cut = .026

Notice how as the thread gets deeper the cuts become smaller. This is because the width of the cut gets bigger.

So making the depth less levels out the load on the tool.

Some friendly Advice

Keep it simple on your first attempt. That means missing out as much as possible. Cut your thread in fresh air (no component in the chuck). Then you can play around with all the little adjustments and watch what they do. This engineering business is so much fun. Oh and slow the speed down when you are testing it so you can see exactly what is happening. You can get ready with the E Stop.

Oh Yea Here Is Another Tip

Run your spindle really slow (like 100 rpm) that way you can stop the machine with the E Stop if it looks like it’s going to collide with a shoulder.

You only need run one pass like this. It may just scratch the first pass. Put your speed back up and you won’t see it. (It can be our secret)

Single Block, What about that?

When using G76 you can’t use feedhold. On some controls the tool will retract but please check the small print first or try it in fresh air.

Why? ……. Come on think about it.

You also can’t use spindle override. These are both blocked by the cycle to stop you messing up your precious thread.

In “Single Block” each press of the cycle start will give you one complete pass.

A Few Rules

Rules rules always stupid dumb ass rules.

  1. Always use G97 speed in RPM you can’t use G96.
  2. Don’t move the Z start position unless it’s by a multiple of the pitch.
  3. Don’t change the speed.
  4. Machine has to accelerate into the thread so start at Z5. depending on the speed and pitch this may need to be more.
  5. Watch out for that Z end point. That’s the one that will make it hit the chuck if you get it wrong.
  6. Come and train with us.

Some more useful information from Vardex.

Thanks For Reading

Don’t forget there’s loads more folks.

And a YouTube channel

Contact Us

Services offered at CNC Training Centre

Siemens Sinumerik Training

Edgecam training.

Classroom programmer training.

Onsite CNC Machine Training.

CNC Training on all controls and machines.


Mazak Training Fanuc Training

Don’t forget we offer training on all types of Mazak Machines and all Fanuc Controls 6m to 31i Oi old to young.

G92 Threading Single Line Method

G92 threading Cycle is something that concerns me. It’s sadly neglected. Now I know you’re probably saying “no one uses that old shit anymore”

Well you could be wrong.

G92 Threading works exactly the same as G76 except you need to programme every pass. This would be a pain in the arse but hear me out.

The Haas G76 cycle does not have any facility for a spring pass. This is where you add extra cuts at the end of a threading cycle to take out any metal left from the tool pushing off.

On a Fanuc control you can put these extra spring passes in as part of the G76 cycle.

Read this if you need to know more.

If you want this on your Haas control or an old Fanuc control then you can do this.

G76 X16.93 Z-25. K1.534 D.485 F2.5

G92 X16.93 Z-25.

Just add the G92 after your G76 cycle and whatever X figure you want to go to.

The G92 is modal so you will need a G0 move to cancel it. The code above would give you three spring passes.

Here is a load more interesting stuff.

I hope you have enjoyed reading this article.

Thanks for watching and reading

If you have been affected by any of the issues in this post or need CNC Counselling then contact me.

Siemens 828 840 Sinumerik Training

Or call us 

If you want to learn to program CNC Milling Machines

Look no further Contact CNC Training Centre



Using G10 On A Fanuc CNC Lathe

Tags :

Category : Fanuc Turn Haas Turn

This article is about using G10 on a CNC Lathe to set the work shift or work zero offset as it is known on a Haas control.

If you have ever used Mazak machines you will know that when you call a program the work offset is kept with it.

Obvious really……

I mean if you were teaching your dog or your cat to program a CNC Lathe and you told him that he had to reset the workshift every time he called a new program what would he say.

I mean nothing really but he’d probably give you a strange look.

But you can do it on a Fanuc control or on a Haas control.

You just put this………………….

G10 P0 X0 Z-98.1

Using G10

So you would put that at the head of your program and it would change the work shift screen as above.


No need to set workshift everytime.

Automatically sets X figures so there’s no chance you could alter it by accident.


Well there is a slight catch.

It’s obvious really but from now on you can only change the workshift from the program.

If you altered it on the workshift screen it would just change back when you run the program.

Now I know your not stupid enough to do that but I bet the bloke on nights is.

The Big One

When you restart a program you must remember to read this line.

Imagine if you tried to re-run the threading tool after altering the G10 you would just jump to that tool and run it. (Your new offset wouldn’t work)

Therefore you must remember to make the control read it in before running any tools.

Now the clever bastards will have a solution to this.

(This songs hilarious by the way)

What you could do is use a subprogram, if you had one for tool change position you could dump the G10 there.

That way each tool would read it.

Oh yea and it’s probably a bit more tricky to alter as you can’t use input plusUsing G10

So you have to revert to mental arithmetic.

Ok So Why Do I Need All This Crap

Do you use the same chuck day in day out?

Do you keep the jaws for each job?

Well if the answer to these questions is yes, your workshift value is the same every time you set up this part.

Do you really want to reinvent the wheel?


Thanks for watching and reading

If you have been affected by any of the issues in this post or need CNC Counselling then contact me.

Or call us

If you want to learn to program CNC Milling Machines

Look no further Contact CNC Training Centre


G74 Drilling Cycle With G96

Tags :

Category : Fanuc Turn Mazak Turn

G74 Drilling Cycle With G96

G74 Drilling Cycle with G96.

On a CNC lathe G96 is used for most machining. It was amazing in the old days when we suddenly discovered G96.

Because you are using a constant surface speed the metal cutting is consistent so you get a great finish.

The Black Art Of CNC Programming

CNC Programming was a bit of a black art back in the old days and generally speaking we used G96 for everything except for screw cutting and drilling holes on centreline (G74 Drilling Cycle).

When CNC Programming a drilled hole you would always use G97, (this means the speed is in RPM).

If you were to program for example G96 S50 M3 and then rapid to X0 and Z3. ready to drill a hole the machine would just go to its maximum RPM. This would be the speed you set in your G50. (The G code used to restrict the speed.)

Oh by the way that 50 meters per minute is for a B & Q drill.

Don’t get me wrong I love B & Q products but HSS drills are not for grown up engineers they are great for metal work classes at school and making a coffee table for the misses but it’s time to join the big boys and spend some money.

I Digress

Anyway the machine would calculate the speed at its current diameter. So at zero the spindle would always be flat out.

So you could say G96 is pretty useless for a drill.

But you would be wrong!!!!!!

Take a look at this bit of code.

G74 Drilling Cycle

The idea is to send the machine to the drill diameter. Because the machine is in G96 it calculates the correct speed. When you then issue G97 it fixes the speed. Now when you move to X0 it has the correct speed.

Let The Machine Do What It’s Good At

Mmmmmmm… So all you need to do is send the drill to its diameter and the machine does the arithmetic.

Let the machine do what it’s good at and you do what you’re good at.

What are you good at by the way?

Threading is the same if you were machining an M20 thread at 100m/min calculate the surface speed.

(This is the quickest way I have seen)

20/314.2 =.06365

100/.06365 = 1571 RPM

You could do the same thing let the machine do it’s shit.

Rapid to the diameter of the thread then program G96

G0 X20. Z5.;
G96 S100 M3 (Start Spindle at 100 metres per min);
G97 (This will swap to RPM and clamp the speed at the correct RPM);
G76 P010060 Q20 R.02;
G76 X16.93 Z-25. P1534 Q485 F2.5;


So with this bit of code you can get the machine to calculate your speed.

Thanks for watching and reading

If you have been affected by any of the issues in this post or need CNC Counselling then contact me.

Or call us

If you want to learn to program CNC Milling Machines

Look no further Contact CNC Training Centre



WP to LinkedIn Auto Publish Powered By : XYZScripts.com