Category Archives: Haas Turn

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 Haas end of Thread

Tags :

Category : Haas Turn

G76 Chamfer Haas, this is another myth busting 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.

Haas make this simpler as they just use one line as appose to the two lines on Fanuc.


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

These days people say “It’s not rocket science”. Sorry but this really is fuckin rocket science it’s so complicated.

“It’s not rocket science” what on earth is that all about.

I hate these phrases that people pick up on these days.

I was watching my favorite TV show “How to Look Ten Years Younger”.

It’s this TV program where they take a miserable old bastard like me and make them look 15 again.

Now I don’t have a problem with people saying “Oh my god”. I mean people have said it since God was a lad.

But this woman kept saying “Oh…………….My…………..God”  with long gaps between each word.

I thought about how annoying it was and suddenly realized everybody is fuckin doin it and it drives me bloody shitless.

Back To G76 Being Complicated

Remember I was on about how people use these cycles everyday without really understanding them.

Anyway I didn’t fully understand it so 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 G76 threading cycle then you should read the article above.

G76 Chamfer Haas, Setting 95 and 96

G76 Chamfer Haas

I have read so many articles on this and they either gloss over it, bullshit or just plain ignore it.

Why would you want a chamfer at the end of your thread anyway?

Well it’s obvious really.

Oh and by the way it’s not really a chamfer, which in 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

Setting 95 and 96 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 it”.

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.

Next time you are on a plane and it lands successfully without either of the wings dropping off you’ll know why.

G76 Chamfer Haas Setting 95

This is the number of threads you want it to run out over.

For example if you put 3.00 in here.

It would run out over 3 thread pitches. If your thread pitch was 2mm it would run out over a 6mm length (3 x 2 = 6)

G76 Chamfer Haas Setting 96

This is the angle of the thread run off.

If you put 20 in here it would run off at 20 degrees over the 6mm length above.

Be careful because the control doesn’t necessarily make sense of your figures. It’s up to you to make sure that the angle and the distance make sense.

See Below

G0 X22. Z3. G97 S1200 M3

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

The one above has 5.00 in setting 95 and 45 in setting 96. 

So because setting 96 is 45 degrees it runs off at 45 degrees.

Setting 95 is 5.00 and the pitch is 2.5  (F2.5) so the length of run out is:

5 x 2.5 = 12.5.

It still finishes at Z-25. by the way.

The example above is a load of bollocks so please don’t try this at home.

No screw threads have been injured or destroyed in the making of this post.

You will notice the tool jumps back in the X axis. It is going back to its start point. That is the X22. on the line before the cycle.

Now Another Example

G0 X22. Z3. G97 S1200 M3

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

The one above has 1.00 in setting 95 and 45 in setting 96. 

So because setting 96 is 45 degrees it runs off at 45 degrees.

Setting 95 is 1.00 and the pitch is 2.5  (F2.5) so the length of run out is

1 x 2.5 = 2.5.

It still finishes at Z-25. by the way.

This means your run-out will be in one thread pitch.

If you’re concentrating  you will notice the tool jumps back in the X axis. It is going back to its start point (X22.).

G0 X25. Z3. G97 S1200 M3

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

Notice above that by putting a bigger X figure (X25.) you get more clearance.

Just One More Before You Go


The above one has 3.00 in setting 95 and 10 degrees in setting 96

What If I Don’t Want All This Shit?

M23 means you will get a chamfer.

M24 means you won’t get the chamfer.

Please note M23 is active unless you program M24.

M23 is the default

So if you hit reset or switch the machine off it will always do the chamfer unless you program M24.

So if you don’t want it you need an M24 just before the G76 cycle.

Note: This works for G92 as well.

Here is what Haas have to say.

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, the tool change position might be a good place to put it.

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


CNC Training Centre
WP to LinkedIn Auto Publish Powered By :