To be a good NC/CNC programmer you must understand how the radius of a tool affects your programming points. The radius may be on the end of a lathe tool or the radius of a milling cutter.
The following is excerpted from the FAQ section of 7 Easy Steps to CNC Programming: Book II, Beyond the Beginning.
CNC Tool Nose Radius
Lathe tools rarely have a perfectly sharp corner at the tool nose. As a result, when you program lathes, it is important to compensate for the tool nose radius.
As you look at the tool nose radius example below, imagine these two situations. Assume you are using a tool with a .031 nose radius. As you cut down the face of the part, if you stop at X0, the tool, the actual cut will be .031 above the center of the part, leaving a .062 nub at the center of the part. Then if you want to drill a hole in the center of the part, the drill walks off center because of the nub.
In another situation, assume you are using the same tool to cut a profile. If the program does not compensate for the tool nose radius the part will be cut under / over size.
The solution is to program the desired tool path relative to the center of the cutter. This is true for lathes as well as mills.
When programming a lathe, use the center of the tool nose radius. This is particularly important when manually programming machines. If you are generating G-code using a Computer Aided Manufacturing (CAM) system this is less critical.
Programming to the center of the cutter is essential for correctly applying the math to generate accurate machine control data.

Fig. 13 (from 7 Easy Steps to CNC Programming: Book II, Beyond the Beginning) above shows how a 1.00” cutter must be programmed so that there is 5” between parallel cuts if you need the part 4” wide.
Examine the previous Tool Nose Radius example. Notice that if you program using the center of the tool nose radius, programming an X0 will move the tool so that its center stops at the center of the part. That’s the good news. The bad news is that the tool would then cut with the center of the tool on the profile, thus making the part too small.
You must compensate the tool path for the tool nose radius by adding the tool nose radius to the part diameter. For example assume the following:
- The the small diameter of the finished part is 1.000
- The Tool Nose Radius is .031
- The machine is programmed in the radius mode
- The program is written for the center of the tool nose radius
In this case, the center of part would be programmed as X.0 Z.031. The X dimension to turn the diameter would be X.531.
Many lathes let you enter diameters instead of radii. In this case, the center of part would be programmed as X.0 Z.031. The X dimension to turn the diameter would be X1.062, the diametrical result of changing the cutting radius by .031.
So, when facing to the center of a work piece with a .031” radius tool, you can actually program the cutter to go to X0
Note: The above descriptions are “old school” in that most machines on the shop floor today have offsets for tool nose radius. Using offsets allows you to program right to the dimensions of the part. But goodCNC programmers know that, just because the machine can do something, does not excuse them for knowing how it works or how to do it manually.

