G84 Rigid Tapping Program Example

G84 Rigid Tapping Program Example

G84 Rigid Tapping Program Example

G84 is a tapping canned cycle.

G84 taps holes.

This simple part has four M12 holes, drilled, countersunk and tapped. The datum is the centre of the part so the holes positions are.

X55. Y55.
X-55. Y55.
X-55. Y-55.
X55. Y-55.

G84 Rigid Tapping Program Example

G84 Rigid Tapping Program Example

Here is the CNC code

G84 Rigid Tapping Program Example

The machine first moves to X-55. Y-55. and rapids the Z axis to 3mm above the part.

G84 Rigid Tapping Program Example

The G95 selects feed per revolution which means we only need to program the tap pitch for the feed-rate.

See full rigid tap G84 Rigid Tapping Program Example

The M29 engages the rigid tapping mode and the S800 is the speed. (It does not start the spindle)

It then rapids the Z axis down to 1mm above the part R1.

The G84 Cycle instructs it to tap a hole 17.mm deep (Z-17.) at a feed of 1.75mm per revolution (F1.75) 

So it feeds at 1.75mm per revolution with the spindle turning clockwise to depth.

At the bottom of the hole it reverses the spindle and feeds back to the initial point.

This initial point was in the line.

G84 Rigid Tapping Program Example

This is because of the G98.

If it were G99 it would return to 1mm above the job (R1.)

See explanation of G98 and G99

Once the cycle is active each time it sees a position it repeats the tapping process.

When the G80 is programmed it no longer taps holes.

Single block and feedhold do not work in a tapping cycle.

Why? You ask.


Now watch the video to see it all in action (not breaking the tap).


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

If you want to learn to program CNC Milling Machines

Look no further Contact CNC Training Centre




G10 Using G10 on a Fanuc Type Control


I am always amazed that so many companies still don’t use G10 in their CNC programs. If you know you know.

I must admit I fuckin hate a lot of the things that young people say like “can I get a Latte”. (Get behind this fuckin counter and make it yoursef if you want to “get it”).

Anyway I kind of like “If you know you know”

No G10… Is this you?

I am sure you have your reasons which I will accept. But if your reason is that you don’t understand it then that’s just not good enough.

So you make a part, it’s all setup and you need to break it down.

If you can fix the work holding in such a way that you can reload it in exactly the same place then you need G10.

Let me explain, watch this video to see how single point location works.

G10 No need to spend loads of money.

You could just bolt a sub plate to your machine table so that vices and chucks etc can have dowels to locate them.

But the main idea is that you can relocate your work holding in exactly the same place every time.

Using G10 on a Fanuc Type Control

This is your work offset page on a Fanuc control.


These figures are written in by hand or by automatic setting.

If you had written this line in your program.

G90 G10 L2 P1 X-440.500 Y-265.200 Z-443.00

They would have been written in automatically when you ran the program.

So the work offset page could have any values in G54 but as soon as you run your program this G10 command will replace them with its preset values.

Make Sure Your in Absolute

Try not to forget the G90 (Absolute) because you may accidentally be in G91 (Incremental). What would then happen is it would add these numbers to what is already in the work offset. Oh dear me.

In G90 it will always replace them.

You can write to G54 G55 G56 G57 G58 or G59 just by changing the P number.

G90 G10 L2 P1 X-140.600 Y-265.923 Z-400.00 (G54)

G90 G10 L2 P2 X-125.500 Y-236.865 Z-313.865 (G55)

G90 G10 L2 P3 X-800.500 Y-563.200 Z-125.00 (G56)

G90 G10 L2 P4 X-440.500 Y-265.200 Z-169.369 (G57)

G90 G10 L2 P5 X-440.500 Y-265.200 Z-123.568 (G58)

G90 G10 L2 P6 X-410.500 Y-235.200 Z-443.00 (G59)

The code above would setup all six work offsets.

What about the L2 you ask?

What’s that for?

L2 means you are writing to the work offsets (G54- G59)

But you can also write to the tool length offsets in which case it would be

G10 L10 P1 R200. (200 length into tool 1)

G10 L12 P1 R10.(10mm radius into tool 1)


Look David, I Have Shit Loads of Offsets

Don’t need your stupid G10.

Now I know some of us do have more offsets than you can shake a cheap memory stick at, but……..

With G10 it’s fixed in program so if some daft bastard alters your precious work offset you don’t give a flying monkey’s shit. Your program just reloads it.


G10 means your datum positions are saved with your CNC program.

The vice or fixture needs to be in exactly the same place when you next set it up.

You can use special single point location fixturing or just make a sub plate.

It’s great for horizontal machines.

Haas G10


G0 Cancels Canned Cycles

G0 Cancels Canned Cycles, this is not a news flash it’s always been the case.

G0 Cancels Canned Cycles

O0001(G28 Example)
G21 G90 G40


G90 G0 G54 X200. Y0 S1500 M3
G43 Z3. H1 M8
G81 G98 Z-5. R1. F100.
G0 X25. (No hole drilled here cycle would be cancelled)
G80 (This also cancels the cycle)

“Read More”

G28 G53 Zero Return

G28 G53 Zero Return

CNC Training (Call David: 07834 858 407)

G28 is used to send a machine to Zero return for a tool change or at the end of a program.
G28 G91 Z0                   (Z axis moves up to tool-change)

G28 G91 X0 Y0 Z0        (All three axis move to their respective zero return positions)

I know some of you don’t like three axis moves like the one above. If it don’t hit anything it’s just fine “Get Over It”

Below are the two ways of doing this.

Ignore This If You Get Bored Easily

G28 actually means return to the zero point via a reference point.

If you programmed
G28 G90 Z0 or you forgot the G91 this means return to zero point via a reference point. The reference point is Z0 so the spindle would rapid to Z0 (Bang) and then move up to reference return point.

G28 G53 Zero Return
That’s why if you have single block on you will notice this is two presses of the cycle start (two blocks).

Therefore if we use G28 G91 Z0 the first press will take it to the reference point which is incrementally zero form where you are (no move) the second press move to zero (no collision)

Using G53

Some older machines won’t have this so try not to get over excited.
G53 uses your absolute machine position (Machine) this means all moves are from home position and are not affected by datums (G54 etc) or tool length offsets.

It is one of the very few non modal commands so you can’t write

G53 Z0
X0 Y0 (this will use works offset not G53)
You need to write
G53 Z0
G53 X0 Y0

Advantages Disadvantages (G28 G53 Zero Return)

G28 uses G91 incremental so you must remember to write G90 (absolute) for your next command. In fact many a collision is caused by misuse of G28.

G53 is best if you have it just remember it is non modal.
So you write it in each time you need it.

Some machines have return to tool change built into the tool change line.
T01 M6

On a Haas machine for example where the return command is built in you would not need to send the Z axis home.
I recommend that you always put one in.
G53 Z0
T01 M6
If you are in single block you can stop before the tool-change if you wish.

Also I know someone who got into the habit of doing this and crashed a Fanuc Controlled machine that needed the command. (If you read this you know who you are)

G53 has another really good use and that is if you want the machine table (on a vertical machining centre) to move to a standard position to do things like changing the parts. It will always put the table in the same place regardless of work offset.

Bare in mind that if you put a position in that is relative to your work offset and not use G53 then the next time you set the fixture up your machine may over-travel because the fixture is in a different place.

If you read this article you will see how it could be used to set a vice in a known position regardless of datum.

Remember G53 is a position from the machine zero, it does not take into account the tool length offset or the datum. The other important thing is that it is non modal. That means you will need it on every line that you wish to use it for.


On Machines Like The BMC 800 from Toshiba

Tosnuc 888

This machine has the Tosnuc 888 control.

Tosnuc 888

For this control use G73 instead of G53.

If you have any questions about G28 G53 Zero Return or you are affected or have been affected by any of the issues in this post please contact me 07834 858 407

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.

Cutter Compensation

Cutter compensation explained.

Call 07834 858 407

This is a video explaining cutter compensation in CNC programming.

You will come across various terms to describe this such as:

  •  Tool cutter comp.
  •  CNC cutter comp.
  •  G41 G42 cutter compensation.
  •  Cutter diameter compensation.
  •  Cutter radius compensation.
  •  Heidenhain RL RR.

Cutter compensation is referred to as cutter diameter compensation and cutter radius compensation

Haas cutter compensation, Fanuc cutter compensation and Mazak cutter compensation all work in the same way.

Although Heidenhain cutter compensation or Heidenhain cutter comp looks different. In the programme it functions in exactly the same way.

Cutter Compensation

In the parameters or settings of your control you can set up your system to use the radius or the diameter of your cutting tool.

This means that when you input the data for your cutting tool in your offset table you can use the diameter or the radius of the tool.  This depends on your settings.

Cutter Compensation

When people talk about cutter compensation G code they may say “cutter comp G code” it’s often shortened.
(Cutter compensation G code)
The G codes used in this video are:

  •  G41 cutter compensation left
  •  G42 cutter compensation right
  •  G40 G code to cancel cutter compensation

This Video shows you :

  • How to program G41.
  • How to program G42.
  • CNC cutter compensation examples.
  • Cutter compensation Heidenhain style.
  • Heidenhain RL RR.

We always recommend that you climb mill so you will be using G41 most of the time.

Milling the outside of a square using G41.

Cutter Compensation

Milling the inside of a square using G41.

Cutter Compensation

Milling the inside of a square using G42 (should you want to conventional mill).

Cutter Compensation

Milling the outside of a square using G42 (should you want to conventional mill)

Cutter Compensation


The rules when using compensation on a CNC Milling machine.

Rules are the same as the tool nose radius compensation on a CNC Lathe.
If you programme a shape and you do not use cutter compensation you will have to work out the size of the shape with your tool radius added.

This is simple on a square sided figure or a simple radius. Anything more complex and it’s a nightmare.
I just heard some smart arse say “Ah well my CAD system takes care of that”.
So it should my friend but, and there is a but:

  • What will you do when your cutter wears?
  • What if you want to use a different size cutter?
  • The cutter may not run true.
  • What if the cutter is not exactly size?

In the old days of paper tape and Corned Beef we as programmers would write several programmes.

This was so that we could re-grind the milling cutters in fixed increments. A different programme could be used each time the tool was changed.

Sorry I can’t talk about this much longer as I still have the nightmares (mainly about corned beef sandwiches).

Cutter Compensation


Anyway enough of that. So when we machine our first profile we can add some on to the tool radius in the offset file. When we check the part we can adjust the offset and re-cut the profile to achieve an accurate result.

The Rules:

  • Shape must be continuous and consistent.
  • You can’t cut along a line and then go back along it.
  • It’s important to allow more than the tool radius when entering tool compensation. The same applies when you come out of tool compensation.
  • Internal corner radii and steps must be greater than the tool radius.

Always allow more than the radius because when you adjust it it may be larger than the actual tool you are using.

Don’t ask

For example if you have a 12mm endmill but you have .2mm in the wear compensation. The machine thinks that the tool is 12.4mm in diameter.

You can’t do this in cutter comp:

Cutter Compensation

You would have to apply one cut in G41 and cancel with G40 then do another cut in G42 and cancel with G40:

Cutter Compensation

Call 07834 858 407

Please contact me if you require:

  • Fanuc training.
  • CNC programming training.
  • Want to Learn CNC programming.
  • Fanuc programming   training.
  • Yasnac programming training.
  • Any type of CNC course.

Don’t forget to watch my Tutorial Videos

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.

WP to LinkedIn Auto Publish Powered By : XYZScripts.com