Category Archives: Fanuc Turn

CNC Turning Using T00 to Cancel Offset

CNC Turning Using T0000 to Cancel Offset

This article is about CNC turning programs and the use of T00 to cancel the tool offset.

My daughter is autistic, and one of the things that she has taken great delight in doing during the current lock down, is picking up on the stupid nonsensical phrases and expressions that neurotypicals have created in their non-binary brains.

In case you don’t already know neurotypical is an expression used by autistic people to describe non-autistic people. I still haven’t worked out if it is a term of endearment or mildly offensive but I don’t really care anyway.

Anyway, whilst I was writing an article about using multiple offsets, yet to be completed, I suddenly realised why it is a good idea to cancel the tool offset on a CNC Lathe (more about that later).

We were sat drinking tea in our summer house, me my wife and my daughter.

I know it sounds grand but really, it’s not exactly a summer-house it’s more of an old shed. It’s one I converted to compete with my neighbours when they had a fancy new summer house built.

Just a few finishing touches needed

I was talking about this article in rather abstract terms as my wife and daughter are none engineers but always pretend to be interested in my rantings.

Anyway, with reference to tool offset cancellation I said “you learn something new every day”.
My daughter immediately retorted “oh so what did you learn yesterday?”. Fortunately, I could think of something I remembered learning that there are 206 bones in the human body, so I used it.


I need to add a this point that my daughter is not an autistic savant and we still need google and takeaway menus. She’s not like that bloke in “Rain Man” who can remember every number in a fuckin’ phonebook.

The expression is “if you know one autistic person, you know one autistic person”

Anyway with her autistic brain I should have known this wouldn’t suffice. “The world tilts at 23.5 degrees on its axis” I quickly added.

“You already knew that” she said.

(Please ignore this if you think the world is flat as I know a lot of my readers do)

She insisted that I should go back at least three weeks in order to prove the validity of the statement.
I decided to give in and the conversation ended by me admitting that all neurotypicals are stupid. In our household that’s a result and a common strategy we use to resolve this kind of conflict.
Such idioms as “washing your dirty laundry in public” are just banned unless you think you have a simple way of explaining it.

A friend once exclaimed that “there is more than one way to skin a cat!” and as a result required a police escort to get home (joke).

My daughter has a cat and her whole existence revolves around it. I’ll let you imagine her reaction.

Using T00 to Cancel tool Offsets

Anyway, this was going to be an article about using multiple offsets in a CNC Turning program.

It’s a bit like multiple orgasms but not nearly as much fun. Anyway I had this eureka moment with regards to T00 and ditched the whole thing.

On a CNC Lathe we use a four-digit number when we do a tool change.

T0101 for example.

The first two digits make the turret index T01 (index to tool 1)

The second two T0101 will call an offset. You will note I said an offset because it can be any.

CNC Turning
Geometry offset page on a Fanuc CNC Lathe

In the above case it’s offset 1 but it could be T0112 this would index to tool 1 and use offset 12.

CNC Turning
Geometry offset page on a Fanuc CNC Lathe

Anyway thinking about these four digit numbers made me think about when you use zeros.

On older machines you used to have to cancel the offset by stating T0100 or much safer T0000. Otherwise the machine would add the new offset to the old one and a shitstorm would ensue.

I had consigned this now inert procedure to the CNC Turning equivalent of room 101 or at least the annals of CNC History. Anyhow, it seems there is life in the old T000 dog yet.

I love this puppy I’m going to use it in every post from now on

Now this is where that eureka moment happened in my summer house and I wrongly claimed to learn something new every day.

The Theory

When you write a CNC Turning program you can either return the tool back to the machine reference or return it to a tool change position.

Now the first option (reference) is OK if it is a small a machine. In other words it’s not gonna take it a week to get there.

On a big machine you would have to navigate around all sorts of shit like the tailstock or a steady or the boss’s Bentley. And it would almost definitely be a waste of time.

Soooo normally we would use a tool change position this would be making use of G53

CNC Turning

Using G53 for tool change position

CNC Turning G53

Because the G53 uses the machine coordinate system it will be the same place for each tool.

You could then put this position in a sub program. That way it would be the same for every tool. If you needed to change the position you would only need to change it once in the sub-program.

I will forgive beginners for thinking you could just rapid each tool to the same position away from the work piece.

For example G0 X100. Z100. for every tool.

CNC Turning
Sending a drill to a position
CNC Turning
Sending a turning tool to a position

Just look at the turret position in the pictures above. Although the X Z position of both tools is the same there is a huge difference in the turret position.

This could work but when you pick the program up again maybe months later. The tools could be different lengths the tool-change position would have to be altered.

Your drills may not be the same length and the machine may even over-travel when you try to move it to your old tool change position..

Using a G53 you can always allow for the longest tool and know your index position is safe.

Remember G53 does not consider the tool offset or the work offset. To be honest G53 is the selfish bastard of the G codes it just does not give a flying shit what offset is active.


Anyway, thinking about cancelling tool offsets it gave me an idea.

If at the end of each CNC Turning tool you cancel its offset. you could send it to a known position.

Because no tool offset is active this would always be the same place.

Some of you probably already do this but honestly, I never thought of it.

I intend to program this way from now on.

CNC Turning
Using T00 for your tool change position

You should be able to use T00 or T000 to cancel your tool offset.

Don’t Do This (I really shouldn’t be telling you)

You can use the tool number plus the zeros so to cancel T0101 you could put T0100. I strongly recommend that you do not do this because it introduces an index move and therefore another potential collision.

You would need to remember to change this on all tools if for some reason you moved the tools around in the turret.

Oh yea about the multiple offsets. I will be writing and article on it when I can be arsed but in the meantime here is a video.

Thanks for reading my articles (no flies were killed in the writing of this article)


CNC Turning M Codes List For Beginners


CNC Turning M Codes
CNC turning M Codes

Download CNC Turning M Code List

This is my list of CNC Turning M Codes and you will notice there aren’t many.

That’s because you don’t actually need many.

M Codes are used to turn things on and off on a CNC Lathe. Sometimes known as miscellaneous functions.

A typical M Code would be M03 which would start your spindle forwards.

M04 would be reverse and guess what?

M05 is stop the spindle.

There, you learned three already.

You don’t need the extra zero so I advise you leave it out, program M3 M4 M5.

It really doesn’t matter but….. You could be wasting memory space or wearing out the tips of your fingers.

Here’s what I think about leading zeros.

M codes are the Snow Leopards of CNC Machining

Snow Leopards are Solitary Animals

Snow Leopards only ever get together to mate, they don’t even have a Christmas party or get pissed on a stag night.

With M codes they hate being on the same line of code. If they are then they will fight to the death.

Tigers Playing

Please note no animals were hurt in the making of this post.

There are exceptions to this rule, M Codes that is, but please don’t overload yourself with this at the moment.

Just trust me.

The first one in the block usually wins but I can’t  guarantee it. So you could get some crazy shit happening.

M8 G0 X50. Z2. G97 S1500 M3;

You wouldn’t even get an alarm on most controls and it may just obey the first M Code it sees and ignore the last one.

The other thing to note with M Codes is that it makes no difference where they are in a block of code.

So if you put your M Code at the front of a block of code.

M3 G97 S1500;

Or the end.

G97 S1500 M3;

The spindle will start according to the logic of the machine not where the M Code is in the block of code.

The Boring CNC Turning M Codes

That’s my list of M Codes the rest are really boring doing stuff like changing gear ranges and stuff.

Download CNC Turning M Code List

Sorry I’m being flippant again.

CNC Turning M Codes Where Are The Rest?

Sorry you can’t have them. The reason for this is that they are different depending on what machine they are on.

CNC Turning M Codes
Hand Em Over

For example this beast is a Mazak Megaturn

CNC Turning M Codes
Mazak Megaturn

It Has a Gearbox.

To change gear you program M41 M42 and M43 for the different gears

M40 is neutral. Now on machines with gearboxes they do normally use these same M Codes.

However they can be different.

M10….. mmmm well that’s normally a clamp.

I think you get the picture. It is up to the machine tool builder.

It is best to get a specific set of M Codes from your machine manual.

The manual by the way is that book that nobody ever reads, it’s usually at the bottom of a bent up old filing cabinet.

Please Don’t Read It

I’ll read it for you then charge you a shit load of money for training.

Click here for CNC Training

Joking aside please don’t be arsed to learn a load of M Codes you will probably never use.

Some M codes That Might be Useful

Open Chuck                         (Might be M11)

Close Chuck                         (Could be M10)

Parts Catcher Up               (Mmmmm)

Parts Catcher Down         (No idea)

Well Commented Programs

Try to put M Code descriptions in your program. That way you won’t need to keep looking them up. A part transfer on a CNC Lathe is a good example, there are an absolute shit load of em.

They are everywhere. If you put a meaning to each one in brackets it will make proving the program out really easy. Oh and if you have a CAM system then change your post processor to output them for you.



etc etc

I had a boss once who actually learnt sines and cosines of angles.

Cosines of Angles

Holy shit I mean it’s impressive and I must add in 1975 it was actually worth doing because we didn’t even have calculators.

Hope you enjoyed reading my article on CNC Turning M Codes.

Please remember that it keeps me occupied and while I’m writing these articles I am not holding you up in the supermarkets queue trying to find a coupon for 10p off my incontinence briefs.

Download CNC Turning M Code List






CNC Turning G Code List For Beginners

Download and print this nice large print CNC Turning G Code List

Download CNC turning G Code List PDF

I always begin my training sessions by telling my students not to remember anything I say.

This sounds completely stupid and my excuse is it wasn’t my idea to say it.

About ten years ago I worked in France. After about a year and it seemed obvious that I would need to speak to people to order “Fish n Chips” and stuff like that.

Anyway I got these CD’s to teach me French and the bloke (can’t remember his name) started off by telling you not to remember anything he told you.

I think there is a bit of reverse psychology going on but the main idea is that you understand not remember. It didn’t work for me because I still managed to completely fuck up the language. Not realizing French Canadians speak differently to native Frenchmen (I was working for Bombardier) . Anyway I asked this bloke, in French, to “come with me”. I can’t remember what it is in French and after all the bloke on the CD had specifically told me not to remember.

Anyway turns out this had a sexual connotation and made me the complete laughing stock everywhere I went from then on. (I’ll let you do the maths on that one.)

“OK which one of you bastards bought all the fuckin toilet paper in lock-down?”

Now I know what your thinking, “that is the gnats cock of CNC Turning G Code Lists”. Honestly size isn’t everything.

Learn these first and just by seeing um every day they will just sink into your brain.

When it comes to CNC Programming it is important to enjoy your self and not get bogged down trying to remember loads of G Codes.

The truth is you only need to remember a few and it’s all about understanding what they do.

For Example This is in your Program.

You watch in amazement as it cuts your part.

So you look up what G71 means on your list of G Codes printed in large letters on the side of your machine.

Download CNC turning G Code List PDF

“Oh yea it’s that’s roughing shit” you say.

As You Watch it Run It All Makes Sense

From your Classroom Training you know that there is a multi repetitive cycle that can rough out a part.

You understand how the cycle works already.

CNC Turning G Code List
G71 Rough Turning Cycle

So as it runs, it all makes sense.


CNC Turning G Code List
Keep it Simple

Type up or print this list in nice big letters and stick it to the side of your machine

Download CNC Turning G Code List PDF

CNC Turning G Code List

G00                 Move at Rapid speed
G01                 Feed in a Straight Line
G02                 Clockwise Arc
G03                 Counter Clockwise Arc

G04                 Time Dwell

G28                 Return Axis to Home

G41                 Cutter Compensation Left
G42                 Cutter Compensation Right
G40                 Cancel Cutter Compensation

G50                 Maximum Spindle Speed
G54                Work Offsets

G71                 Stock Removal Cycle
G70                 Finishing Cycle for Above
G76                 Threading Cycle

G83                 Peck Drilling Cycle

G96                 Constant Surface Speed
G96                 Speed in RPM

Download CNC turning G Code List PDF

G92 Threading Single Line Method

G92 threading Cycle is something that concerns me. It’s sadly neglected. Now I know your’e 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 program 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



G76 Chamfer End of Thread

Tags :

Category : Fanuc Turn

G76 Chamfer, this is another myth exploding article about the G76 threading cycle.

It’s so easy to use cycles like G76 day in day out and never really fully understand how they work.

I certainly did and then one day I thought “Fuck this I need to know more” 

That’s when I sorted out the number of passes thing. If you don’t know how to calculate the number of passes in a threading cycle then you should read the article above.

(G76 Chamfer) I want to talk about the P

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

G76 Threading Cycle First Line
P01   One spring pass       15   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

Six Figure P Number Holy Shit

G76 P011560 Q20 R.02

First two digits are easy, spring cuts. No it’s not the latest haircut for April.

It’s how many times it goes over the thread when it’s done. It just shaves off those last pieces of metal.

Oh and the last two are the thread angle like 60 degrees or 55 degrees.

But the middle two…….

G76 Chamfer

Do I need to say anymore.

I have read so many articles on this and they all gloss over this bit or just plain ignore it.

Here is an extract from a manual.


Now I know I’m a bit thick but what the fuck does that mean?

First of all why would you want a chamfer at the end of your thread? Well it’s obvious really.

Oh and by the way it’s not really a chamfer, which itself is confusing.

It’s the thread running off the part.

If you kept tightening a bolt it would eventually shear. That shear point would be the weakest part of your thread. That is the point where the thread runs out.


G76 Chamfer

Those middle two digits are to give you this run out. The tool comes out of the thread at an angle.

Now you might be thinking “I’ve done this for years and nobody gives a shit about this”.

Well you are wrong, if you ever worked for Rolls Royce you will know that aircraft threads are really strict on this.

This means if you screw a nut onto it, then it will tighten up as it gets closer to the end.

And obviously this takes away that shear point and makes the thread stronger.

The middle two numbers of the P value are multiplied by the pitch of the thread. The result would be the length of the run out.

There is no decimal point so P011516 the middle two numbers (15 ) would be taken as 1.5

So in the example:

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

The pitch of the thread is 2.5 (F2.5) and the middle two digits of the P number are 15 it would be

1.5 x 2.5 = 3.75

This means the tool would run off the part over a distance of 3.75mm

G76 Chamfer

If enter 00 in the middle two digits P010060 you get 45 degree angle.

Older Controls Oi 6T etc

On a 6T control you set this value in parameter 64

On the Oi control it’s parameter 5130 and 5131

Haas G76 explanation

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



CNC Training Centre
WP to LinkedIn Auto Publish Powered By :