Hotline: +84 (0) 8686 21 553  


Offset memory type

From the chapter describing work offsets, you know that X-615.375 setting indicates the distance of 615.375 mm measured from machine zero to part zero, parallel to the X-axis. The Y-axis setting of Y-304.540, which is 304.540 mm, is also measured from machine zero to part zero, this time parallel to the Y-axis. Note that the work offset setting for the Z-axis is zero (normally). 

No doubt, the tool is now located exactly at the part position as programmed – X100.0 170.0 22.0, all measured from program zero. Is there anything else to consider? Is there a clue somewhere to something else? Think about both questions before reading further. 

The answer to the two questions above is simple but not quite obvious. While the work offset setting will do exactly what the program requires, there is a severe re striction: 

The ‘missing’ Z-axis setting mentioned in the previous chapter gets another look in this chapter that covers the subject of tool length offset principles and settings. 

Once the tool length measurement is completed, it has to be entered into the control system, using a specific registry called the tool length offset. 

Tool length offset specified as Z-axis setting 

in the work offset, applies to ALL tools 

Limitations of Work Offsets 

What about the Z-setting? Where is the offset? If the settings for X and Y axes indicate the distance from ma chine reference point (spindle centerline), does not the Z-setting indicate the same distance for the tool length reference point? Of course it does. Work offset com mands are applicable to all axes. The persisting question is still unanswered. If you can set a work offset in X and Y axes, you can also set it in the Z axis. The Z-setting in the work offset would reflect the tool length setting for the tool used. Let’s take a tool that has setting of 336.7 mm in the negative direction. That would change the previous G54 work offset to: 

Here is the real problem – while the G54 can be set to accommodate all three axes, including the Z-setting is not practical, for one simple reason – most programs use more than one tool to machine a part. 

Only one Z-axis setting is available in G54, meaning only one tool length can be set in the G54 registry. Log ically, other work offsets could be used with identical XY settings, but Z-settings for additional tools. This is still quite limiting and not very practical. Fanuc has solved this problem by delegating the tool length offset to a different registry, called the Tool Length Offset. 


First, what is a tool length? This simple question does not have a simple answer. For programming and setup purposes, tool length is not the actual length of the tool from one end to another. The required tool length is the length of the tool measured between the spindle gage line and the tool tip (end point). 

Typical CNC program calls several tools used in the machining process. These tools often belong to many categories, they have different diameters, and they also have different lengths. They are the focus of this chapter. 

Tool Length Offset Register 

Typical capacity of the tool length offset register is at least 32 offsets for very small machines (usually more), and up to 999 offset entries for larger machines. 

In the part program, it is typical to assign the same tool length offset number as the tool number, whenever pos sible. For example, the tool selected as T01 will use H01 as the tool length offset number, the tool selected as T04 will use H04 as the tool length offset number, etc. The reason is simplicity – after all, each tool number is unique, and each tool is associated only with one tool length offset (for the majority of work), so keeping both numbers the same makes it easier during part setup. 


X -615.375 

Y -304.540 

Z -336.700 

Tool length offsets are based on the same principle as work offsets 


How do we check if the new settings work? A four block program segment will do the job: 

G43 command behaves the same way for the Z-axis, as work offsets G54-G59 behave for all axes. 

G90 G54 GOO 81200 MO3 (INITIAL SETTINGS) X100.0 

(DISTANCE-TO-GO IS -515.375) 


(DISTANCE-TO-GO IS -234.540) 


(DISTANCE-TO-GO IS -334.700) 

G43 and G44 Commands 

Most control system manuals list two commands that activate tool length offset: 

• G43 … Tool length offset POSITIVE 

G44 … Tool length offset NEGATIVE 


Fanuc and similar controls support four features re lated to tool length offsets used in programs for milling applications: 

G43 … Tool length offset positive I G44 … Tool length offset negative I 649 … Tool length offset cancel I H.. … Tool length offset number 

There are at least three common methods of measur ing tool length: 

In order to verify that the setting is correct, watch the Distance-To-Go’ screen display when each block is be ing processed. Distance-To-Go uses the following calcu lation for the actual length of tool motion: X-axis … -615.375 + 100.0 = -515.375 actual motion Y-axis … -304.540 + 70.0 = -234.540 actual motion Z-axis … -336.700 +2.0 = -334.700 actual motion 

The calculation is constant for all axes and results in correct distance to travel by the tool in all three axes), to reach the programmed position. 

Feel free to read further if you wish, but you may want to stop for a moment and think about the results. 

• Presetting method 1 Touch-off method 

• Reference tool method 

… off-machine 


… on machine 

Both commands G43 and G44 can be quite mislead ing, if you try to understand them only by their defini tion, G43 is describes as tool length offset positive – positive what? Even if command descriptions are not meant to give exact and lengthy definitions, this one can be outright misleading. The word positive and negative relates to the basic way the total tool travel – Distance To-Go – is calculated by the control system: G43: Distance-To-Go = Length offset PLUS Z-target G44: Distance-To-Go = Length offset MINUS Z-target 

Each method will be described separately. 

Before you understand how the tool length offset ac tually works, you should be familiar with the concepts of work offset settings (work coordinate system com mands G54-G59 and higher). Work offsets have been de scribed in the previous chapter. 

Using a typical 3-axis vertical machining center as an example, the work offset G54 may be set to the follow ing amounts: 

01 654 


Y -304.540 

Z 0.000 

The main purpose of measuring tool length is to establish relationship between 

the tool tip (cutting point) and the part zero in Z-axis (20) 

| 87 


CNC Control Setup for Milling and Tuming TOOL LENGTH OFFSET 

CNC Control Setup for Milling and Turning 



Offset Memory-Type A 

This offset memory type is the most common. It is generally available on lower level controls. Lower level applies to features, not quality, as all Fanuc controls are known for their excellent quality and reliability. 

Type A offset register has only one column: 

Adjustment to a stored offset is done by adding to or subtracting from the current offset amount in the Wear column, GEOMETRY column should always contain the original setting and WEAR column should always contain adjustments, as necessary. 




Offset Memory – Type C 

On the higher level controls, the Type C is standard. It offers the highest level of flexibility. It is commonly used on CNC machine tools with a large number of au tomated features. 

Type C offset register has four columns: 












D-offset Geometry Wear Geometry Wear 

0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0,000 0.000 0.000 














Both tool length and radius offsets are stored (shared) within the available range of offsets (99 offsets shown). That means there can be no duplication of offset num bers between Hnumber for tool length and D number for radius. 

Adjustment to a stored offset is done by adding to or subtracting from the current offset amount. 





Although not shown in the following example, the cal- G49 Command culation of the total travel distance will also include the Z-setting of the current work offset as well as the Z-set 

Command G49 cancels any active tool length offset. 

ting of the EXT work offset. 

This simple statement, while true, is a subject of some 

controversy. One group of programmers insists on using 

Z-axis with G43 … -336.700 + 2.0 

it in the program, in fact, they use it for every tool. Other 

= -334.700 actual motion 

group never programs G49 at all. Which group is right? 

The previous section covered G43 tool length offset 

Using G44 is extremely rare in a CNC program 

command. In a rather simple definition, consider the fol lowing statement regarding the G49 command – tool 

length offset cancel: 

Applying Tool Length Offset In the program, the tool length offset is typically in 

G49 command in a program is not necessary 

cluded shortly after a tool change. For safety reasons, 

if every tool uses G43 tool length offset 

programmers like to rapid along XY axes first, then ap ply the tool length offset for the Z-axis. In order to select 

This is the point where we should be very clear here – 

the appropriate length offset from the registry, the G43 

including G49 at the end of each tool will cause no prob 

command has to be paired with the tool length offset 

lems, if used properly. 649 is often used together with 

number, and programmed with the H-address. 

the G28 command – machine zero return. In reality, G49 

is a totally redundant entry, as G28 machine zero return 

The following example shows the tool motions to the programmed target position of x100.0 170.0 22.0: 

in Z-axis will cancel the tool length offset anyway. 

Now, think about what can happen, if the programmer 

N71 T04 

forgot to include G43 H.. for a particular tool, and the 

N72 MO6 

previous tool canceled the length offset with G49? In this 

N73 G90 G54 GOO X100.0 470,0 1200 M03 T05 

hopefully rare situation, the control system has no way 

N74 G43 22.0 H04 MOR 

of ‘knowing the length of the new tool, so it assumes the 

N75 … 

spindle gage line location as the tool tip reference point As tool T04 is used in the example, H04 is the recom- – yes, this is wrong and potentially dangerous. The dan mended tool length offset number. 

ger is particularly high, if the new tool is longer than the 

previous tool. For the machine operators, this short les 

Another technique CNC programmers often use is to 

son statement is quite simple: 

split the Z-axis motion into two – mainly for safety dur ing setup: 

Always check that each tool is assigned G43 H.. 

N71 T04 

N72 M06 N73 G90 G54 GOO X100.0 770.0 S1200 MO3 T05 N74 G43 Z25.0 404 MO8 N75 22.0 

Fanuc and similar control systems offer a variety of 

N76 … 

options and features available, and one such feature re 

When used in single block mode during part setup, 

lates to tool length offset. In Fanuc terms, the feature is this method enables the CNC operator to check the tool called offset memory type. tip clearance while it is still safely away from 20 of the 

There are three types: 

part. This method does not influence total cycles time during automatic mode. 

Type A … shared register (one column) 

Type B .. shared register (two columns) Note that although there are different ways to physi • Type C … dedicated register (four columns) cally measure the tool length offset at the CNC machine, the program itself does not change, only the offset itself. Both types A and B are called shared offset registers, 

because a single range of offsets is used for both tool Actual measured tool length will be different length and cutter radius offsets. Type C allows tool for each setup method 

length offsets to be stored independently of the cutter ra dius offsets (described in separate chapter). 

Offset Memory-Type B 

Type B offset register has two columns: 

Adjustment to a stored offset is done by adding to or subtracting from the current offset amount in the Wear column of the H-offset for tool length and the D-offset for cutter radius offset. GEOMETRY column should al ways contain the original setting and WEAR column should always contain adjustments, as necessary. This is the same approach as for Type B. 


Offset Geometry Wear No. 

0.000 0.000 0.000 0.000 0.000 0.000 

INPUT and +INPUT Key Selection 

The same hard or soft keys that were used for work offset adjustment are used for tool length offset: <INPUT … replaces the current setting I+INPUT … adds to the current setting 











Type B is similar to Type A in the sense that they are both shared offsets. Again, both tool length and radius offsets are stored within the available range of offsets. No duplication of offset numbers between Hnumber for tool length and D number for radius is possible. 

Keep in mind that +INPUT key always adds the amount entered to the current amount of the offset. For that rea son, it is important to enter the adjustment either as a positive amount or as a negative amount.