G76 threading start point, when you use a G76 threading cycle on a CNC Lathe the position that you start the tool at is really important.
This is the position you rapid the tool to just before you call the G76 threading cycle.
For example how does the control know if you are producing an internal thread or an external thread.
Actually I learnt this the hard way. It was on an old machine.
Maybe not that old. Anyway I couldn’t get it to perform a G76 threading cycle. It was cutting an external thread but the tool was working it’s way outwards.
What to do Next?
Everything rushed through my head, senile dementia, flashbacks from a misspent youth, did I feed the dog?
Anyway I suddenly realised I didn’t have a dog and that the start position of the tool was wrong.
G76 threading start point how was it wrong?
Well that’s how the machine knows whether you want an internal or external thread. Your start point needs to be inside or outside the thread. What a fuckin dipstick I was.
I had the tool just below the external diameter of the thread. If you do this the machine thinks the thread is internal and therefore cuts outwards.
Correct
So providing the tool is initially placed outside of the maximum diameter it will do exactly what you want.
Incorrect
Put it here and you are in deep shit. The tool will work from this position backwards and you will be totally confused.
So be careful because you might not notice that tiny amount.
Of course if you have a Siemens control Sinumerik 828 840D then this does not apply because you have to specify if the thread is internal or external in the cycle.
Front Clearance (G76 threading start point)
Now let’s think about how far in front of the part you need to be with the threading tool.
Maybe you never thought about it?
Well now’s the time.
Spare a thought for people like me who lie awake at night ruminating about these things. If you don’t know what ruminating means then maybe you shouldn’t be reading this article. Or maybe you just like the pictures.
This is my puppy his name is Donald he is learning to programme a G71 woofing cycle.
Now I need to feed at 6000 mm per minute so this pitch problem will be twice as bad.
Can you see where this is going?
Eat more fish.
No not really, well it is good for you but it’s not what I meant.
The faster you go and the courser your thread pitch the quicker the machine will have to feed.
If you have a coarse pitch thread in aluminium you probably will end up with a super high feed-rate your machine can’t even achieve.
This will all depend on the age of your machine but you must always make this calculation just in case you are trying to cut a thread at the speed of light.
G76 threading start point in Z Axis
This start point distance is really important because it will allow the machine to get up to speed.
I can’t give you exact figures for this, not because I can’t be arsed but because it will vary depending on your machine.
The machine will have a maximum feedrate and it will be in the manual.
You know that old book that you use to prop the door open.
The bigger you make this Z figure the more time your machine will have to get up to speed.
So don’t forget if you are starting at Z1. then the poor old machine doesn’t have much time to get up to 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.
Well Set Out CNC Code is really important. It can save lots of time spent trawling through code trying to find the section you’re looking for. Simple things like leaving gaps after the tool change line can really help.
The program runs exactly the same but……
Look at the two examples of the same program
Well Set-Out
Uncluttered CNC Code
Not Well Set-Out
Cluttered CNC Code
Notice where the gaps are.
They give clarity to what’s happening in your program.
Try to create your own convention and always lay your program out in the same way.
Notice how your eyes are drawn to the tool change lines. These are usually the first things you are looking for.
Read On
It’s like reading a book without paragraphs, and page numbers. It also makes it easy to spot mistakes with well set out CNC code.
Dog reading a book
This is my dog, his name s “Get Back Here You Bastard”
See if you can find the simple error in the well set out code and let me know what it is. That way I will know you’re concentrating.
Clue: if you are the fortunate owner of a Haas machine it will spot this for you and alarm out.
Insert meaningful comments. Remember you might not see this code for two years and you won’t remember what you did or how you were thinking at the time.
When you eventually come back to this code you’ll be scratching your arse for hours trying to figure it out.
You’ll think:
“Why the fuck did I do that”
A little comment will explain everything
An Elephant and my wife never forget
Come on Get a Grip
Yes you will figure it out eventually but that’s the same with the human genome project.
It takes time to remember what you were doing
Why do I need Well Set Out CNC Code (Things To Do)
Leave gaps at strategic points in the program.
Loads and loads of comments, write them as you would say it, (don’t try to be posh).
Make the tool change lines stand out these are the key points.
Use N numbers at strategic points so that you can easily find things.
Don’t use too many N numbers or you will get confused they are like E numbers they can drive you crazy. They also take up loads of memory.
The machine setter and operator are your customers and you need to make their lives as easy as possible. Give em code that’s easy to read.
If your writing X50. Y50. Z50. don’t write Z50. Y50. X50. Yes it will run OK trouble is it’s bloody confusing.
Someone suggested adding M01 after each tool so I’m adding this in. (Thanks Michael)
An M1 or M01 is an optional stop which means you have the choice to stop at each tool. (Very useful if you want to stop at the next tool and you can’t stand around.)
Continuity
When you arrange the program in the same way every time it will be easy to spot mistakes. If you always put your spindle start and speed at the end of the first position line like this.
G90 G0 G54 X50. Y50. S1500 M03
Were you to miss out the speed you would have a very good chance of noticing it because the line will look wrong.
G90 G0 G54 X50. Y50. M03
Tidy neat code is the same as a neat tidy workshop. It’s much easier to find things.
G0 G54 X0 Y0 (Rapid to X0 Y0 using G54) X50. Y50. (Still rapid still G54) Z10. (Don’t panic I know you still want rapid and G54)
Zero Return
When you first turn on your CNC Machine you would normally reference or Zero Return all the axis. The machine then knows where it is.
All machines will have a position display. This position display will have one set of figures normally called “MACHINE“. This is the machines position from zero return. So when the machine is at zero return this will read.
X 0.000 Y 0.000 Z 0.000
The “MACHINE” position tells us how far we are from the machine zero. We don’t use this once we have set our datums.
This is the position we need to write into the work offset page to tell the control where each datum is (G54 to G59)
What we do when we are setting (G54 to G59) is enter this position in the work offset page.
When we subsequently call this G code the machine will use this position as it’s datum.
On the screen above if you programmed G0 G54 X0 Y0 the machine would move -75. in X and –145.5 in Y. This is it’s new zero position. Every subsequent command will work from this datum.
Now Let’s Set The Work Offsets
What we do when we are setting the machines datums or Work Offsets is we tell the machine where our datum is from Zero Return.
In the above case the datum is 806.25 away from X Zero Return and 147.1 away from Y Zero Return. These will both be minus figures.
What about Z you say?
Well yes we need to do that also. The Z will be the distance from Zero return to the top of the work-piece.
So in the above case the distance from the spindle nose to the top of the work-piece is 530.570. Again this will be a minus figure.
So there you have it your work offset in X Y and Z.
This is how it looks in the offset file on a Haas machine.
This is an imperial (inch) machine so this datum is 12.568 inches away from the X zero and 8.489 from the Y zero.
On the Fanuc control below it has values set in G54 G55 and G56. you could use any of these offsets.
Not all machines will have minus figures in these offsets as the zero return can be in a different place.
Mazak Work Offsets
Now if this were on a Mazak control it would be exactly the same if you were using the machine in ISO G Code type programming.
If you were using Mazatrol and not ISO this would be recorded in a WPC. No that’s not a Woman Police Constable.
Anyway it looks the same it’s just that they call them WPC 1 and WPC 2 etc.
WPS’s are set in the program as you go along. It’s the sort of “pay as you go” datum system.
Toshiba BMC 800 Work Offsets
On the Toshiba BMC 800 machine which uses the Tosnuc Control, H numbers are used for Work Offsets H901 to H999. Even the greediest programmer won’t run out of work offsets on this machine.
Is Six Enough?
Unfortunately on most Fanuc Controls you only get six offsets G54 to G59 this should be enough really. Anyway you can get what is called “Extended Offsets” as an option this gives you another 99.
These are called G54.1 P1, G54.1 P2, G54 P3 etc etc. You get the idea?
They work in exactly the same way as G54 to G59 you just stick in a P number.
G0 G54 X0 Y0 (Work offset G54)
G0 G54.1 P1 X0 Y0 (Work offset G54.1 P1)
Right Let’s Wrap This Up
So what we did is told the machine where G54 was in it’s own master “Machine Coordinate System”.
So now if we program
G0 G54 X0 Y0 the machine will rapid to the position that we set as the datum. All subsequent moves will be around this G54 Datum.
Imagine how difficult it would be if we had to keep adding all our figures onto the machine position. It’s just like when you have a manual machine with a Digital Readout (DRO).
You just clock up your datum position and Zero the display. Well that’s what this is doing on your CNC Machine.
The good news is you get to keep the position and there are six of them.
Toshiba BMC 800 Tosnuc 888 Control
Oh yea let’s come back to the Toshiba BMC 800 Tosnuc Control.
This is one of my favourite controls. Call me a geek but I get really excited about this kind of stuff. Below is the 888 control. (The 666 is a bit of a devil to program)
On this control you would just record the figures in H901. The program would read.
G57 H901 G0 X0 Y0
The G57 activates H numbered offsets and it needs to be on a separate line.
So Where’s This All Going?
Now then think about this.
Once this offset is in the machine it stays in no matter what. Like the curry you spilt down your white shirt when you were pissed on Saturday. “It’s going nowhere”.
So where do the other offsets come in.
Well. Imagine you set this job up and the boss came over and said “Jack, can you fit in an urgent job before you do that one”
(Please substitute your own name above)
Don’t panic no need to punch the boss or tell him to stick his job up his arse. No no it’s easy. You smile and say “No problem sir I’ll leave that job set up in G54 and I will use G55 for your new job”
Don’t Just Plonk It Anywhere
Something I forgot to tell you. Always set your parts up as near to one end of the table as you possibly can. Never in the middle of the table. That way you get to leave the part on the table and set up another job.
So you would just load up another vice or whatever and set the datum in G55.
Now when you program.
G0 G55 X0 Y0
The machine will use the new datum…. Easy what.
By The Way
Oh and obviously if you call out your old program, for that job the boss doesn’t want yet, it will use G54. Everything will work around the old datum.
There’s More
A tool change on a modern machine is amazingly fast like a fraction of a second.
But we don’t all have super fast tool changers and I have worked on big machines where a tool change can be two minutes!!
Well let’s compromise. Your machine is a bit of n old banger.
Actually these old Matsuura Machines with Yasnac Controls are awesome if you can get hold of one.
The tool change chip to chip is going to be about 17 seconds. Machines like the new Matsuura MX 520 tool change in just over a second. In my world that’s shit off a fuckin stick.
Lets Save Some Time
Imagine if we could get 17 parts on the machine table and set 17 datums. We pick up a spot drill. The tool change time is 17 seconds.
Ah but sunshine it’s gonna spot drill 17 parts so the tool change time really is only one second.
That’s 17 seconds divided by 17 parts. One second per part. It really is that simple.
It’s A Myth Size Really Does Matter
I had you fooled there just when you thought I was talking about Pizzas. I was talking about machines.
Look at the size of this Mazak Machining Centre it has the new Mazak Smooth Technology control.
Imagine you have an old machine but it has a huge table. Well if you fill the table with parts suddenly your slow tool changer does not matter.
Oh and about the slow rapid moves.
Doesn’t matter either.
The longest rapid moves are the ones to and from tool change. But we took care of them because one tool change does 17 parts.
From part to part there are only small rapid moves so we gain there too.
So our big old Tortoise can beat the Young Fast Hare.
Now The Bit You All Waited For
Work Offset G54 G55 G56
So these figures above would be entered into your work Offsets.
This is how it looks when it machines all three parts. No wasted moves and your making maximum use of each tool.
Another thing, notice how the drill starts at one end and instead of going all the way back. The next tool starts where the last one finished.
This won’t be possible on some machines but on most you can tool change wherever you want.
Lets Take A Look Under The Bonnet
The program looks something like this.
Just by putting the new work offset in front of the X and Y figures will make the coordinate system swap to the new work offset.
And…
Because the G code is modal it stays active until you call a different work offset.
Heidenhain
Found on a lot of Bridgeport Machines like the Interact 412, the Heidenhain Control can use the same method as above. You would have an offset table the same where all your offsets are stored.
Bridgeport Interact 412
Great little machines Bridgeport Interact 412 still loads of these in service.
These are then called out by numbers.
This would call out offset 1.
Heidenhain There’s Always a Simple Way
Just zero the display.
How easy is that?
Mmm don’t be confused. That really is all you do and your datum is set.
When you want a different datum you just use a datum shift command.
This would shift the datum by the above amount from your zero. And to change it back.
These can be put in Label commands so that they can be retrieved and used again.
Oh and you can have as many of these as you like.
So there you go from Heidenhain on a Bridgeport Machine to Matsuura MX520 with a Matsuura G-Tech 31i control. There are loads of different machines but the principle is always the same.
Understand one and you’ll easily understand them all.
On a Fanuc or Haas control G02 G03 are the two G codes we use to move around clockwise and counterclockwise circles. You don’t need the leading zeros so from now on I will call them G2 and G3.
And by the way never use the letter O it’s number zero
GO2 GO3 looks almost exactly the same as G02 G03. But your control will blow it’s mind and get real mad with you.
It will also do some really weird shit like trying to start a new program. Anyway just don’t do it.
Oh and please don’t call it interpolation as it annoys the shit out of me.
Linear interpolation is movement in a straight line.
Circular interpolation in moving in a circle.
Interpolation is movement.
Now that’s the telling off out of the way let’s move on. It’s ok I don’t hold a grudge.
Which one of you bastards said interpolation?
Let’ Talk About Milling A Shape
When you are milling a shape and you want to move in a circular motion you use G2 or G3
For a clockwise arc use G2 and for a counter clockwise arc use G3.
They both work the same way. On a modern control you programme the endpoint (an XY figure on a milling machine) and the radius you require.
Then your CNC controller magically creates your circle. You can programme any arc like this with one exception.
Do you know what it is?
Ok I will tell you later, it’s OK to not know. (Just means you are little thick).
Lets go back to school.
Remember construction? Of course you do.
We are going to mill the top section of this part
Let’s see what the control has to do to work out where the centre of the circle is.
It knows its current position and in your G3 line you tell it the end point and the radius you want.
Well it gets out its little compasses and draws two circles at the radius you told it.
It positions the compass first on the start point and draws an arc. Then on the end point and draws an arc.
Where these two arcs cross it places the point of the compass. Now it can strike an arc that touches your start point and your end point.
Get yourself a pair of compasses and try it. It’s great fun.
That’s how the maths works.
Tell me did you really believe that inside your CNC machine there is a little man with a pair of compasses?
Fuckin hell I give up.
Sorry I lied it’s all done with simple trigonometry. But at least I tricked you into understanding the principle.
So you should now begin to work out why you get an alarm when the radius is too small. Your two arcs just don’t cross. In other words you are trying to fit an arc between two point that simply miss one another.
G2 G3 No Pot of Gold
Your control will give you an alarm “End Point Not Found” which makes sense because it can’t find one. It’s like the pot of gold at the end of the rainbow.
Oh Before you Go More on G02 G03
What about the question. When can you not use endpoint and radius with G02 and G03 ?
Answer: When you want to machine a full circle using G02 and G03.
You can do it but you would have to break it into two halves. I’m not going to explain anymore because this method is for wimps and peole who can’t be arsed to read my articles.
You know who you are, ordering Chicken Korma in an Indian Restaurant.
Well…… what follows is a full, blow your bollocks off, shit your pants the next day, vindaloo.
And Now Ladies and Gentlemen the Infamous I and J
At the CNC Training Centre we don’t get too excited about I and J when it comes to programming circles. That’s because you don’t need to worry your pretty head about it anymore. You almost never need it.
Did he say almost?
Well yes almost. You could programme forever and never bother about using I and J with G02 G03. So just go off and watch some porn for awhile and I will explain to the real programmers when you can use it.
In the old days I and J was the only way to programme an arc. You would tell the control where the centre of the circle is and the endpoint. This is cumbersome and a bit tricky. That’s why I’m not telling you about it.
Anyway one really good simple way to use I and J is for a full circle. Oh and it’s bloody easy. That is once I’ve explained it to you.
When I was a boy hundreds of years ago I had a toy called a Spiro Graph.
Spirograph those were the days
It consisted of a series of plastic gears. You stuck your pen in a hole in the gear and rotated it around another gear. With a bit of practice you could make some really nice pictures. Kept us happy for hours. The crime rate dropped dramatically in my area when these things came out.
What’s this to do with CNC programming you ask? Well if you tried to use end point and radius for a full circle this is what you would get:
If your start point was X0 Y0 you would program G3 X0 Y0 R100. assuming radius was 100mm.
So in a full circle your endpoint is the same as your start point. There are millions of circles the computer could pick. It would be just like the shapes above. If you do the compass trick you will see what I mean. That’s why it’s impossible.
In Comes I and J
So some clever bloke thought fucks this I’ll invent I and J.
If we use I and J there are four options as above.
You would simply program as below for a full circle (20mm Radius)
G3 I-20.
G3 I20.
G3 J20.
G3 J-20.
And that’s it.
So these are the four options
So there you have a fantastic way to programme a full circle without having to break it down into two halves or be clever like a newsreader or some twat off mastermind.
Why do you only need the I and not X and Y Dave?
For fucks sake don’t call me Dave my name is David.
I had this really nice guy phone me from Africa the other day. He explained to me that he needed to get his inheritance of 10 million pounds out of England and if I helped him he would give me £20,000. All I had to do was give him all my bank and credit card details. Oh and a small one off payment of £1000.
Of course I agreed, what a bargain. Just as I was about to do this the cheeky bastard called me Dave.
I immediately told him to fuck off. I just hate being called Dave.
I gave him my 96 year old mothers phone number because I thought at least she can benefit from it all. Her name is Mary so he couldn’t shorten that. She only has £1200 in savings so it would be doing her a massive favour.
Explanation
You don’t need to re-state the X and Y because you are already at the endpoint
If you want to learn CNC programming then you need to know what a canned cycle is.
I’m going to have to be honest here it is a funny choice of words “Canned Cycle”. But a wild guess would be that all the information to drill a hole would be kept together in a “Can” ready to use.
In a Can…….
So let’s learn CNC Programming….
Make sure you read the end of this article to see a really cool way to drill equally spaced holes.
First of all we state the cycle:
G81 Z-20. R1. F100. X50. Y50. F200.
The machine will move to X50. Y50. then rapid to 1mm above the part (this is the R1.). It will then feed down to Z-20. at a feedrate of 200 mm per minute F200.
Finally it will rapid out of the hole.
It then sits ready for the next move.
All you need to do now is just keep giving positions.
G81 Z-20. R1. F100. X50. Y50. F200. X60. X70. X80. X90. Y60. G80
The G80 at the end will cancel the canned cycle. It just means “Look I am a bit pissed off with drilling holes so can you stop”
So that’s it Canned Cycles it really is that easy you put all the information in the “Can” then each time you give a position you get another hole.
Want to know More?
Thought you would. You want to learn CNC programming don’t you?
There are loads of these canned cycle but I am not going to talk about every one in detail. No sorry you will have to read the boring old manual for that.
Not to Worry They Are All The Same
Well sort of. You state the cycle then it repeats at each position given until you cancel it (and that applies to all the cycles).
Anyway Here are a few:
G84 taps holes, tell it the pitch depth usual stuff.
G73 peck drilling is the same as drilling (G81) but you give it the peck depth.It pecks the hole breaking up the swarf.
G83 same as G73 but with each peck the drill comes right out of the hole. For deep holes or swarf that clogs.
G76 bores a hole, stops at the bottom, moves over and rapids out to avoid marking the bore.
Ok let me tell you this, you are doing great so far. This is how we learn CNC programming. Nice small steps.
I already wrote a post on this click to see it all (it’s truly amazing). I purposely didn’t include it in the cycle above which is ok. The idea was to keep it simple.