FANUC Series 0i-MODEL F. For Lathe System OPERATOR'S MANUAL (B-64604EN-1/01) - page 13

 

  Index      Manuals     FANUC Series 0i-MODEL F. For Lathe System OPERATOR'S MANUAL (B-64604EN-1/01)

 

Search            copyright infringement  

 

   

 

   

 

Content      ..     11      12      13      14     ..

 

 

 

FANUC Series 0i-MODEL F. For Lathe System OPERATOR'S MANUAL (B-64604EN-1/01) - page 13

 

 

 B-64604EN-1/01

 PROGRAMMING 

5.COMPENSATION FUNCTION

 

- 185 - 

α

L

S

L

C

r

r

r

α

C

L

S

C

r

α

C

L

S

r

C

r

Linear

Linear

(Circular
connection type)

Linear

Circular

(Circular
connection type)

Circular

Linear

(Circular
connection type)

Circular

Circular

(Circular
connection type)

Tool nose radius
center path

Programmed path

Workpiece

Tool nose radius
center path

Programmed path

Work-
piece

Workpiece

Tool nose radius
center path

Programmed path

Programmed path

α

S

r

r

 

C

C

C

Tool nose radius
center path

Work-
piece

 

 

5.COMPENSATION FUNCTION

 PROGRAMMING 

 B-64604EN-1/01

 

- 186 - 

Tool movement around the outside corner at an acute angle (

α

<90

°

C

α

L

L

L

r

r

L

S

α

L

L

S

r

r

L

L

C

Linear

Linear

(Linear
connection type)

Linear

Circular

(Linear
connection type)

Circular

Linear

(Linear
connection type)

Circular

Circular

(Linear
connection type)

Tool nose radius
center path

Programmed path

α

L

L

L

L

S

r

r

L

Workpiece

Work-
piece

Tool nose radius
center path

Programmed path

Tool nose radius center path

Programmed path

Workpiece

α

L

S

r

r

L

C

C

L

Work-
piece

Tool nose radius center path

Programmed path

 

 B-64604EN-1/01

 PROGRAMMING 

5.COMPENSATION FUNCTION

 

- 187 - 

α

L

L

S

r

r

C

α

S

r

r

C

L

C

C

α

C

L

r

r

S

Linear

Linear

(Circular
connection type)

Linear

Circular

(Circular
connection type)

Circular

Linear

(Circular
connection type)

Circular

Circular

(Circular
connection type)

Tool nose radius
center path

Programmed path

Workpiece

Work-
piece

Tool nose radius
center path

Programmed path

Tool nose radius center path

Programmed path

Workpiece

α

S

r

r

C

C

C

Work-
piece

Tool nose radius center path

Programmed path

 

 

5.COMPENSATION FUNCTION

 PROGRAMMING 

 B-64604EN-1/01

 

- 188 - 

  - 

When it is exceptional 

 

End position for the arc is not on the arc 

If the end of a line leading to an arc is not on the arc as illustrated below (Fig. 5.4.3 (a)), the system 
assumes that the tool nose radius compensation has been executed with respect to an imaginary circle that 
has the same center as the arc and passes the specified end position. Based on this assumption, the system 
creates a vector and carries out compensation. The same description applies to tool movement between 
two circular paths. 

Tool nose radius 
center path 

Programmed path 

r

r

Center of the arc

Imaginary circle

End the arc

L

L

L

S

Workpiece 

 

Fig. 5.4.3 (a) 

 

 

There is no inner intersection 

If the cutter or tool nose radius compensation value is sufficiently small, the two circular tool center paths 
made after compensation intersect at a position (P). Intersection P may not occur if an excessively large 
value is specified for cutter or tool nose radius compensation. When this is predicted, alarm PS0033, “NO 
INTERSECTION AT CUTTER COMPENSATION” occurs at the end of the previous block and the tool 
is stopped.   
In the example shown Fig. 5.4.3 (b), tool center paths along arcs A and B intersect at P when a 
sufficiently small value is specified for cutter or tool nose radius compensation. If an excessively large 
value is specified, this intersection does not occur. 

P

r

r

When the cutter or tool nose radius
compensation value is small

When the cutter or tool nose radius
compensation value is large

Programmed path

Alarm occurs and the tool stops

Center of the arc A

Center of the arc B

Arc A

Arc B

 

Fig. 5.4.3 (b) 

 

 B-64604EN-1/01

 PROGRAMMING 

5.COMPENSATION FUNCTION

 

- 189 - 

  - 

When the center of the arc is identical with the start point or the end position 

If the center of the arc is identical with the start point or end point, alarm PS0041, “INTERFERENCE IN 
CUTTER COMPENSATION” is displayed, and the tool will stop at the start point of the preceding block 
of the arc. 

N8

(G41) 
N5 G01 W50.0 ; 
N6 W50.0 ; 
N7 G02 W100.0 I0 K0 ; 
N8 G01 U-100.0 ; 
 

Alarm is displayed and the 
tool stops 

Programmed path 

Tool nose radius center path

N6 N7

N5

 

 
  - 

Change in the offset direction in the offset mode 

The offset direction is decided by G codes (G41 and G42) for cutter or tool nose radius compensation and 
the sign of the compensation value as follows. 
 

Sign of compensation

G code 

+ - 

G41 

Left side offset 

Right side offset 

G42 

Right side offset 

Left side offset 

 
The offset direction can be changed in the offset mode. If the offset direction is changed in a block, a 
vector is generated at the intersection of the tool nose radius center path of that block and the tool nose 
radius center path of a preceding block. 
However, the change is not available in the start-up block and the block following it. 
 

5.COMPENSATION FUNCTION

 PROGRAMMING 

 B-64604EN-1/01

 

- 190 - 

Tool nose radius center path with an intersection   

Linear

Linear

Linear

Circular

Circular

Linear

Circular

Circular

Programmed path

Tool nose radius center path

L

L

S

r

r

G42

G41

Workpiece

Intersection

L

G41

G42

r

r

S

C

r

r

L

C

S

G41

G42

S

G41

G42

C

C

r

r

Workpiece

Workpiece

Programmed path

Programmed path

Intersection

Workpiece

Tool nose radius center path

Workpiece

Programmed path

Tool nose radius center path

Intersection

Workpiece

Tool nose radius center path

Workpiece

Intersection

Workpiece

Programmed path

 

 B-64604EN-1/01

 PROGRAMMING 

5.COMPENSATION FUNCTION

 

- 191 - 

  - 

Tool nose radius center path without an intersection 

When changing the offset direction in block A to block B using G41 and G42, if intersection with the 
offset path is not required, the vector normal to block B is created at the start point of block B. 

An arc whose end position
is not on the arc

Tool nose radius
center path

L

G41

C

C

r

r

r

(G42)

S

S

Center

Center

Linear

Circular

Tool nose radius
center path

Programmed path

Programmed path

Tool nose radius
center path

L

S

L

S

(G41)

G42

A

B

Programmed path

Tool nose radius
center path

L

S

r

Circular

Circular

(G41)

Linear

Linear

Intersection

G41

B

G42

(G42)

L

L

L

A

r

r

S

G42

G41

Workpiece

S

r

Workpiece

L

(G42)

Programmed path

C

 

5.COMPENSATION FUNCTION

 PROGRAMMING 

 B-64604EN-1/01

 

- 192 - 

 

 

The length of tool center path larger than the circumference of a circle 

Normally there is almost no possibility of generating this situation. However, when G41 and G42 are 
changed, or when a G40 was commanded with address I, J, and K this situation can occur. 
In this case of the Fig. 5.4.3 (c), the cutter compensation is not performed with more than one circle 
circumference: an arc is formed from P

1

 to P

2

 as shown. Depending on the circumstances, an alarm may 

be displayed due to the "Interference Check" described later. To execute a circle with more than one 
circumference, the circle must be specified in segments. 

(G42)
N5 G01 U-700.0 W500.0 ;
N6 G41 G02 I-500.0 ;
N7 G42 G01 U700.0 W500.0 ;

N7

P1

P2

N6

N5

Tool nose radius
center path

Programmed path

 

Fig. 5.4.3 (c) 

 

  - 

Tool nose radius compensation G code in the offset mode 

The offset vector can be set to form a right angle to the moving direction in the previous block, 
irrespective of machining inner or outer side, by commanding the tool nose radius compensation G code 
(G41, G42) in the offset mode, independently. If this code is specified in a circular command, correct 
circular motion will not be obtained. 
When the direction of offset is expected to be changed by the command of tool nose radius compensation 
G code (G41, G42), see "Change in the offset direction in the offset mode". 

A block specified by G42

Linear

Linear

Tool nose radius center path

Circular

Linear

Intersection

S

r

G42 mode

L

L

Programmed path

r

C

Intersection

S

L

G42 mode

A block specified by G42

 

 B-64604EN-1/01

 PROGRAMMING 

5.COMPENSATION FUNCTION

 

- 193 - 

 

  - 

Command canceling the offset vector temporarily 

During offset mode, if G50 (workpiece coordinate system setting) or G52 (local coordinate system 
setting) is commanded, the offset vector is temporarily cancelled and thereafter offset mode is 
automatically restored. 
In this case, without movement of offset cancel, the tool moves directly from the intersecting point to the 
commanded point where offset vector is canceled.   
Also when restored to offset mode, the tool moves directly to the intersecting point. 

Tool nose radius
center path

Programmed path

N7

G50 block

(G41)
N5 G01 U300.0 W700.0 ;
N6 U-300.0 W600.0 ;
N7 G50 X100.0 Z200.0 ;
N8 G01 X400.0 Z800.0 ;

S

L

L

L

L

S

S

N5

N6

N8

 

 
Before specifying G28 (reference position return), G29 (return from reference position), G30 (second, 
third, and fourth reference position returns), and G53 (machine coordinate system selection) commands, 
cancel offset mode, using G40. If an attempt is made to specify any of the commands in offset mode, the 
offset vector temporarily disappears. 
 

  - 

Canned cycles (G90, G92, G94) and multiple repetitive canned cycles (G71 to 
G76) 

See the cautions for the tool nose radius compensation related canned cycles. 

Tool nose radius
center path

(G42)
N5 G01 U50.0 W-60.0 ;
N6 W-80.0 ;
N7 G90 U-60.0 W-80.0 R-30.0 ;
N8 G01 U120.0 W50.0 ;
N9 W50.0 ;

N5

N6(G42)

N7

N8

N9

S

S

S

Programmed path

r

r

 

 
  - 

If I, J, and K are specified in a G00/G01 mode block 

At the start of tool nose radius compensation or in that mode, by specifying I, J, and K in a positioning 
mode (G00) or linear interpolation mode (G01) block, it is possible to set the compensation vector at the 
end point of that block in the direction vertical to that specified by I, J, and K. This makes it possible to 
change the compensation direction intentionally. 
 

5.COMPENSATION FUNCTION

 PROGRAMMING 

 B-64604EN-1/01

 

- 194 - 

 

IJ type vector (XY plane) 

The following explains the compensation vector (IJ type vector) to be created on the XY compensation 
plane (G17 mode). (The same explanation applies to the KI type vector on the G18 plane and the JK type 
vector on the G19 plane.) As shown in the Fig. 5.4.3 (d) and Fig. 5.4.3 (e), it is assumed that the 
compensation vector (IJ type vector) is the vector with a size equal to the compensation value and vertical 
to the direction specified by I and J, without performing intersection calculation on the programmed path. 
I and J can be specified both at the start of tool nose radius compensation and in that mode. If they are 
specified at the start of compensation, any start-up type set in the appropriate parameter will be invalid, 
and an IJ type vector is assumed. 
 

 

Offset vector direction 

In G41 mode, the direction specified by I, J, and K is assumed an imaginary tool movement direction, and 
an offset vector is created vertical to that direction and on the left side. 

Compensation vector

I, J, K

 

Fig. 5.4.3 (d) 

 
In G42 mode, the direction specified by I, J, and K is assumed an imaginary tool movement direction, and 
an offset vector is created vertical to that direction and on the right side. 

Compensation vector

I, J, K

 

Fig. 5.4.3 (e) 

 

Example 

 

Programmed path 

        (G40) 
N10 G41 U100.0 W100.0 
     K1 T0101 ; 
N20 G04 X1000 ; 
N30 G01 F1000 ; 
N40 S300 ; 
N50 M50 ; 
N60 W150.0 ; 
 
Note) In N10, a vector is specified with 

a size of T1 in the direction 
vertical to the Z axis, using K1.

If I and J are specified at the start of compensation (with 
tool movement) 

Tool nose radius 
center path 

T1

N10

N50
N40
N30
N20

N60

 

 

 B-64604EN-1/01

 PROGRAMMING 

5.COMPENSATION FUNCTION

 

- 195 - 

 

If I and J are specified at the start of compensation 
(without tool movement) 

        (G40) 
N10 G41 K1 T0101 ; 
N20 U100.0 W100.0 ; 
N30 W150.0 ; 
 
Note) In N10, a vector is specified 

with a size of T1 in the 
direction vertical to the Z 
axis, using K1. 

Tool nose radius 
center path 

Programmed path 

N10

N20

N30

T1

 

 

    (G17 G41 T0101) 
N10 G00 U150.0 J50.0 ; 
N20 G02 I50.0 ; 
N30 G00 U-150.0 ; 
 
Note) In N10, a vector is specified 

with a size of T1 in the 
direction vertical to the Y axis, 
using J50.0. 

 
<1>  IJ type vector 
<2>  Vector determined with 

intersection calculation 

If I and J are specified at the start of compensation (with 
tool movement) 

Path determined with 
intersection calculation 

Programmed path 

Tool center path

<1>

<2>

<2>

(I,J)

N10

N20 

N30

 

 

Start-up/cancel type C 
 
N10 G41 T0101 G01 F1000 ; 
N20 U100.0 W100.0 ; 
N30 K10.0 ; 
N40 W150.0 ; 
N50 G40 ; 

If I and J are specified in a block without tool movement in 
compensation mode 

N10

N30

N20

N40 
 

N50 

S S

T1

Tool nose 
radius center 
path 

Programmed path 

(I, J)

 

 

Limitation 

If an IJ type vector is specified, tool interference may occur due to that vector alone, depending on the 
direction. If this occurs, no interference alarm will occur, or no interference avoidance will be performed. 
Overcutting may, therefore, result. 

5.COMPENSATION FUNCTION

 PROGRAMMING 

 B-64604EN-1/01

 

- 196 - 

 

 
Start-up/cancel 
Type C 
 
N10 G42 T0101 F1000 ; 
N20 W100.0; 
N30 U100.0 W100.0 K10.0 ; 
N40 U-100.0 W100.0 ; 
N50 G40 ; 

Tool nose radius 
center path 

Overcutting 

Programmed 
path

N10

N30

N20

N40

N50

 

(I, J) 

 

 

  - 

A block without tool movement 

The following blocks have no tool movement. In these blocks, the tool will not move even if cutter 
compensation is effected. 

M05 ; 

:  M code output 

S21 ; 

:  S code output 

G04 X10.0 ; 

:  Dwell 

G22 X100000 ;   

:  Machining area setting 

G10 P01 X10 Z20 R10.0 ;  :  Tool nose radius compensation value setting/changing 
(G18) Y200.0 ; 

:  Move command not included in the offset plane. 

G98 ;, O10 ;, N20 ; 

:  G, O, and N codes only 

U0 ; 

:  Move distance is zero. 

 

  - 

A block without tool movement specified in offset mode 

Unless the number of blocks without movement consecutively specified is more than N-2 blocks (where 
N is the number of blocks to read in offset mode (parameter No. 19625)) in offset mode, the vector and 
the tool nose radius center path will be as usual. This block is executed at the single block stop point. 

Programmed path

Block N7 is executed here.

Tool nose radius
center path

N6 U100.0 W100.0 ;
N7 G04 X10.0 ;
N8 W100.0 ;

L

N6

N7

N8

L

SS

 

 
In offset mode, the number of blocks without movement consecutively specified must not exceed N-2 
(where N is the number of blocks to read in offset mode (parameter No. 19625). If commanded, a vector 
whose length is equal to the offset value is produced in a normal direction to tool motion in earlier block, 
so overcutting may result. 

N6 U100.0 W100.0 ;
N7 S21 ;
N8 G04 X10.0 ;
N9 W100.0 ;
(No. of blocks to read in
offset mode = 3)

L

N6

N7,N8

N9

L

SSS

Programmed path

Blocks N7 and N8 are executed here.

Tool nose radius
center path

 

 

  - 

If an M/G code that suppresses buffering is specified 

If an M/G code that suppresses buffering is specified in offset mode, it is no longer possible to read and 
analyze subsequent blocks regardless of the number of blocks to read in offset mode, which is determined 
by parameter No. 19625.   

 B-64604EN-1/01

 PROGRAMMING 

5.COMPENSATION FUNCTION

 

- 197 - 

Then, intersection calculation and a interference check, described later, are no longer possible. If this 
occurs, overcutting may occur because a vertical vector is output in the immediately preceding block. 

If an M code (M50) that suppresses buffering is not specified

Programmed path

Tool nose radius
center path

   (G42)
N5 G01 U40.0 W40.0 ;
N6 W40.0 ;
          :
          :

Intersection

L

N5

N6

L

S

If an M code (M50) that suppresses buffering is specified

   (G42)
N5 G01 U40.0 W40.0 ;
N6 M50 ;
N7 W40.0 ;
          :
          :

L

N5

N6

N7

L

SS

Block N6 is executed here.

Programmed path

Tool nose radius
center path

 

 

  - 

Workpiece coordinate system or local coordinate system command in the 
offset mode 

If the local coordinate system (G52) or workpiece coordinate system (G50) is specified in the tool nose 
radius compensation (G41 or G42) mode, G52 or G50 is assumed to be a buffering masked G code. The 
subsequent blocks are not executed until the G52 or G50 block is executed. 
 

 -  Corner movement 

When two or more offset vectors are produced at the end of a block, the tool moves linearly from one 
vector to another. This movement is called the corner movement.   
If these vectors almost coincide with each other (the distance of corner movement between the vectors is 
judged short due to the setting of parameter No. 5010), corner movement is not performed. In this case, 
the vector to the single block stop point takes precedence and remains, while other vectors are ignored. 
This makes it possible to ignore the very small movements arising from performing tool nose radius 
compensation, thereby preventing velocity changes due to interruption of buffering. 

5.COMPENSATION FUNCTION

 PROGRAMMING 

 B-64604EN-1/01

 

- 198 - 

 

The vector to the single 
block stop point remains 
even if 

Δ

V

Z

 

 

Δ

V

limit

 and 

Δ

V

X

 

 V

limit

Tool nose radius 
center path 

Δ

V

limit

 is determined with the setting of parameter (No. 5010). 

Programmed path 

This vector is ignored, if   

Δ

V

 

Δ

V

limit 

and  

Δ

V

 

Δ

V

limit

 

Δ

V

X

Δ

V

Z

r

r

N1 

N1 

N2

 

 
If the vectors are not judged to almost coincide (therefore, are not erased), movement to turn around the 
corner is performed. The corner movement that precedes the single block stop point belongs to the 
previous block, while the corner movement that succeeds the single block stop point belongs to the latter 
block. 

This move belongs to block N7, thus, the
feedrate is equal to that in block N7.

This move belongs to block N6, thus, the feedrate is equal
to that in block N6.

S

N6

N7

 

 
However, if the path of the next block is semicircular or more, the above function is not performed. 
The reason for this is as follows: 

(G17)
N4 G41 G01 U150.0 V200.0 ;
N5 U150.0 V200.0 ;
N6 G02 J-600.0 ;
N7 G01 U150.0 V-200.0 ;
N8 G40 U150.0 V-200.0 ;

Tool center path

P

1

P

2

P

3

P

4

P

5

P

6

N

5

N

6

N

4

N

7

N

8

Programmed path

 

 

 B-64604EN-1/01

 PROGRAMMING 

5.COMPENSATION FUNCTION

 

- 199 - 

If the vector is not ignored, the tool path is as follows: 
P

1

 

 P

2

 

 P

3

 

 (Circle) 

 P

4

 

 P

5

 

 P

6

   

But if the distance between P

2

 and P

3

 is negligible, the point P

3

 is ignored. Therefore, the tool path is as 

follows:  
P

2

 

 P

4

   

Namely, circle cutting by the block N6 is ignored. 
 

  - 

Interruption of manual operation 

For manual operation during the offset mode, see "Manual Absolute ON and OFF." 

5.COMPENSATION FUNCTION

 PROGRAMMING 

 B-64604EN-1/01

 

- 200 - 

5.4.4 

Tool Movement in Offset Mode Cancel 

Explanation 

  - 

If the cancel block is a block with tool movement, and the tool moves around 
the inside (180

°

 

 

α

Linear

Linear

Circular

Linear

Programmed path

Tool nose radius center path

Programmed path

Tool nose radius
center path

α

L

S

G40

r

L

Workpiece

α

S

G40

r

L

C

Work-
piece

 

Fig. 5.4.4 (a) 

 

 

 

 

 

 

 

 

Content      ..     11      12      13      14     ..