Checking Cutting Tool Offset Values

A setup program can be used to test for overtravel issues before a workpiece is run, eliminating program verification delays.


Facebook Share Icon LinkedIn Share Icon Twitter Share Icon Share by EMail icon Print Icon

Cutting tools used in CNC machining applications must possess certain attributes in order to work properly. For instance, every cutting tool used in a vertical machining center (VMC) has a minimum and maximum length that is limited by the Z-axis stroke (among other things). As shown in the figure, the spindle nose will be at its maximum distance above the table top when it is at the positive end of the Z-axis stroke. At the minimum Z-axis position, the spindle nose will still be well above the table top.

The tool tip must be able to reach the smallest and largest Z coordinates in the program, otherwise, a Z-axis overtravel will occur. Each cutting tool’s length, which is specified in an offset register, determines whether these extremes can be reached without a Z-axis overtravel. Consider, for example, a very short cutting tool that is machining a thin workpiece held close to the table top. If the tool is too short, the Z axis will not be able to reach the program’s smallest Z-axis coordinate.

A horizontal machining center (HMC) has the same concern. With a horizontal, however, the minimum spindle Z position is usually specified from the table centerline instead of the table top. A similar issue is especially problematic with the maximum spindle Z position on an HMC. A cutting tool may have to clear a large flange that is flush with the table edge, and then reach far into the workpiece. The Z axis may not be able to back up far enough to allow the needed clearance.

Without explicit setup instructions, cutting tool lengths will vary from one time a job is run to the next. Machine operators may unwittingly assemble tools that are too long or short. An easy-to-use setup program can be used to test for overtravel issues before a workpiece is run, eliminating time-consuming delays during the program’s verification.

To use this program, determine these constant values:

  • The distance from the table top (or table center) to the spindle nose at the Z-axis reference position.
  • The Z-axis stroke.

The setup program will reference these values from offsets:

  • The current Z-axis fixture offset register value.
  • Current values in tool-length compensation registers.

And operators will specify in the testing program:

  • The largest and smallest Z coordinates in the program.

While this may seem like a lot of work, only the largest and smallest Z coordinates must regularly be determined and entered. Everything else is either a constant or specified in offsets as part of the setup process.

For our example VMC, we determine that the maximum Z-spindle position is 28.327 inches. We will say this machine’s Z-axis stroke is 19.4769 inches. This makes the minimum Z-spindle position 8.8501 inches. We will place the maximum Z-spindle position and Z-axis stroke values in permanent common variables #500 and #501, respectively. They will remain there as system constants.

The Z register of fixture offset number one is referenced by system variable #5203 with most FANUC CNCs and contains the negative distance from the Z-axis reference position (also the maximum Z-spindle position) to the program-zero point.

System variables in the 2000 series contain tool-length compensation register values. #2001, for instance, contains the length of tool number one.

We will specify the smallest and largest programmed Z coordinates in the setup program with common variables #100 and #101, respectively.

With meanings of the related variables understood, consider these expressions:

  • #110=#500+#5203+#100+#2001 (smallest Z-axis machine position for tool one)
  • #111=#500+#5203+#101+#2001 (largest Z-axis machine position for tool one)

Results can be compared with the minimum and maximum Z-spindle positions:

  • IF [#110 LT [#500-#501] THEN #3000=101 (tool is too short)
  • IF [#111 GT #500] THEN #3000=102 (tool is too long)

Here is a setup program that tests tools one though 10. The setup person will modify and run this program once the setup is made:

  • #100=-[2.5] (SMALLEST Z IN PROGRAM)
  • #101=3.0 (LARGEST Z IN PROGRAM)
  • #102=1 (FIRST TOOL TO TEST)
  • #103=10 (LAST TOOL TO TEST)]
  • WHILE [#102 LE #103] DO 1
  • IF [[#500+#5203+#100+#[2000+#102]] LT [#500-#501]] THEN #3000=101(TOOL IS TOO SHORT)
  • IF [[#500+#5203+#101+#[2000+#102]] GT #500] THEN #3000=102(TOOL IS TOO LONG)
  • #102=#102+1 (Step counter)
  • END 1
  • M30

The Z axis will not overtravel if this program completely executes and the message “lengths acceptable” appears. If the “tool is too short” or “tool is too long message appears instead, check the current value of common variable #102 (on the variable display screen page) to determine which tool is causing the problem and correct it. Rerun the program until you see the “lengths acceptable” message.


  • Key CNC Concept #1—The Fundamentals Of CNC

    Though the thrust of this presentation is to teach you CNC usage, it helps to understand why these sophisticated machines have become so popular. Here are but a few of the more important benefits offered by CNC equipment.

  • 5 Mistakes We Find in Most CNC Programs

    While the mistakes listed here will not sound an alarm or cause a program to fail, they will cause confusion, wasted time and scrap parts.

  • Key CNC Concept #8—The Modes Of Machine Operation

    This concept introduces the three basic modes of operation, presents examples of when they are used, explores more about the mode switch, and categorizes each position of the mode switch into one of the three basic modes.