Tag Archives: tnr compensation

Cutter Compensation – a CNC Programmers Best Friend – Best CNC Programming Practices

Many programmers shy away from cutter compensation … primarily because they have never taken the time to fully understand both it’s power nor how to use it properly. But the reality is that cutter comp is one of a programmers best friends. The most common reason goes something like this “It’s just as easy to have the CAD/CAM system compensate for the TNR ( tool nose radius ) and out put the hard numbers.” That is true … but life on the shop floor makes this a bad practice. A couple of reasons why :

  1. The “numbers” in the G code don’t match the “numbers” on the part … because they are taking into account the TNR. If manual edits need to be made … even simple edits … this makes it much harder because the part dimensions don’t match the G code numbers.
  2. Say after cutting … the conditions warrant either a bigger or smaller TNR for better cutting conditions. If cutter comp is used … it’s a simple offset change. If not … it’s a trudge back to the CAD/CAM guy or system to re-post and make a new G code program for the revised tool and it’s TNR.
  3. In milling … let’s say I broke my last perfect .250R end mill … but I have a re-ground one that is .245R.. Again, if cutter comp is used … it’s a simple offset change. If not … it’s another trudge back to the CAD/CAM guy or system to re-post and make a new G code program for the revised tool radius.

But here we are going to stick with turning here … and here are a couple of simple rules for when to use and when not to use cutter compensation.

  • Whenever angles or radii are involved … you must use TNR compensation or the angles and radii will be off. Because the programmed point of the cutting tool, an imaginary sharp point, does not coincide with the actual point of the cutting tool which always has some corner radius. For this reason, when machining close tolerance angle or radius cuts, inaccurate workpieces will be produced. The amount of error is proportional to the amount of the tool nose radius.
  • Only worry about using it for finishing … It’s really not worth the effort to use it roughing … the amount you leave for finish allowance will probably “hide” the mismatch due to the TNR.
  • You must start cutter comp with a “start up block”. This block is usually the move as you approach the part … the move distance must be greater than the radius in the TNR offset. So if your tool has a radius of .032 … make a move at least .035 … preferably more.
  • Make sure that your TNR is less than any radius on the part … don’t try to jam an .032 tool into a .020 radius … alarms will greet you somewhere along the way.
  • We’ll cover some additional thoughts at the end of the post.

The Details :
The CNC control has the capability to automatically compensate for the tool nose radius thru the CUTTER COMPENSATION codes of G41 and G42. G41 is called cutter compensation left. The left side is explained as the side of the workpiece the cutting tool is on when viewed in the direction of cutter movement or the cutter is moving on the left side of the programmed path. Once commanded, G41 or G42 are modal commands and remain active until the G40 or cancel condition is obtained.

In Fanuc controls, in addition to commanding G41 or G42 direction, the programmer must also tell the control two other aspects of the cutting tool which are : (a) the amount of the tool nose radius and (b) the imaginary tool tip location. Both these values are entered in the tools geometry or wear offset table. In the offset table, the R value is the amount of the tools nose radius. If the program called T0101 in the tool command, in offset table #1, under the R column, the nose radius of the tool would be entered. The T column in the offset tables holds the imaginary tool tip location.

Cutter compensation must be programmed using what is commonly referred to as a start up block. This block, which must be a G01 type block, is used to activate the cutter compensation before the cutting tool actual contacts the workpiece. The movement amount in the start up block must always be greater than the nose radius of the tool stored in the R column of the offset table. Circular commands using G02 or G03 are not allowed on start up blocks.

G40 is used to cancel the automatic compensation of the tool nose radius. G40 should always be commanded on a G00 block as the tool moves away from the workpiece with the tool in a clearance position.

More Rules and Thoughts :
Many rules apply in the use of cutter compensation as the control is always checking the tool position so it can calculate for the tool nose radius. Three rules of thumb apply and should keep you free of the controls cutter compensation alarms :

(1) Always command a start up block before contacting the workpiece and move in the G01 mode with a move greater than the nose radius of the tool.

(2) Use cutter compensation primarily in the finishing cut and try to eliminate it in the roughing passes. The more moves made with G41 or G42 modal, the more likely for a problem. To finish the part, use the start up block, finish cut the part and command G40 when done. If additional cuts are required, use another start up block and cancel the cutter comp each time as soon as the profile cut is finished.

(3) Always cancel G41 or G42 using the G40 command. The best place to command G40 is on a G00 block, at a clearance point or moving to a clearance point.

Because cutter compensation causes the control to perform some powerful calculations and is a complex command, you should also consult your controls instruction manual for further info on G41 or G42.

Kenny Skonieczny – President
Kentech Inc.