Notes - This writing is based on the behavior of the Haas CNC control on a SL-10 lathe. This is an enclosed lathe with a 3 jaw, hydraulically controlled chuck. It has a slant bed and a tool holder turret and is equipped for flood coolant. There are 2 canned cycle G codes on the lathe to first rough out stock to a given geometry with a specific amount of material remaining and a second cycle to finish to size. Both cycles use block numbers to define the geometry of the part. The initial position is significant as it is used to deduce if it will be a boring cycle or a turning cycle.

Keep in mind all X axis call outs on a lathe are in diameter.

The roughing cycle is invoked by G71. It takes the following parameters:

P/QThis is the beginning and ending block numbers to describe the geometry.

U/WThis is the X and Y amount of material to leave on the part.

I/KHaas defines this as the last pass amount with direction. I have never used this personally and cannot comment on it. This is an optional parameter.

DThis is the depth of cut per pass.

FThis is a feed rate to use when roughing. It overrides feed rates provided in the geometry blocks.

SThis is an optional spindle speed override while roughing.

TThis is an optional tool to use while roughing. A typical all out for G71 is:

G71 P25 Q28 U0.01 W0.02 D0.125 F0.007

The P and Q define the beginning and ending blocks that define the geometry. U and W define the amount of stock to leave behind in the X and Y directions. D defines the maximum death of cut on each pass. F defines the feed rate to use when roughing. F can override the feed rate defined between blocks called out by P and Q.

If the position of the tool is on the center line side of the geometry, a boring operation is assumed. A turning operation is will be used if the initial position is outside of the part. Note that this operation will not drill the stock for clearance of a boring bar. Typically a boring operation requires a prior drilling operation. Furthermore, the initial position is used for the retract between passes. As such, the initial position may not be on the center line as the back of the boring bar needs to clear!

The finishing cycle is invoked by G70. It takes exactly two parameter, P/Q block numbers defining the geometry.

A typical call out for G70 is:

G70 P25 Q28

This will cut the part to the geometry defined between blocks called out by P and Q. A single pass using the feed rates called out by the block will be used.

This is a sample program that uses the G70 and G71 codes on a lathe to create ER32 lathe chuck blanks.

%

O01016

(ER32 Lathe chuck)

(T4 .75 in drill)

(T6 spotting drill)

(T9 Turning tool)

(T2 Boring bar)

(T8 Outside Threading tool)

N10 G18 G20 G40 G54 G80 G97 G99 (Insurance line)

G28 (Home turret)

(Face and turn to size)

N20 T909

G50 S1500 (Cap speed at 1500RPM)

G96 S100 M03 (100 SFPM)

G00 X2.125 Z1.

M08

G00 Z0.1

G01 Z0. F0.007

G01 X0. F0.007

G00 Z0.1

G00 X0.

G01 Z0. F0.007

G01 X2.125

G71 P25 Q28 U0.01 W0.02 D0.05 F0.007

N25 G01 X1.525 F0.002

G01 Z-0.05 F0.002 X1.5748

G01 Z-0.77

G01 X1.725

N28 G01 Z-2.125

G70 P25 Q28

G28

T900

M01

(Spot drill)

N30 T606

G50 S1500 (Cap speed at 1500RPM)

G97 S1200 M03 (Spindle on)

G00 X0. Z1.

M08

G00 X0. Z0.1

G01 Z-0.125 F0.001

G00 Z0.1

G28 (Home turret)

T600

M01

(Drill out to 0.75, 1.25 deep)

N40 T404

G50 S1500

G97 S533 M03 (Spindle on - 100SFPM)

G00 X0. Z1.

M08

G00 X0. Z0.1

(Drill down -1.5)

G01 Z-0.25 F0.005

G00 Z0.1

G01 Z-0.5 F0.005

G00 Z0.1

G00 Z-0.375

G00 Z-0.625 F0.005

G00 Z0.1

G00 Z-0.5

G01 Z-0.75 F0.005

G00 Z0.1

G00 Z-0.675

G01 Z-0.875 F0.005

G00 Z0.1

G00 Z-0.75

G01 Z-1. F0.005

G00 Z0.1

G00 Z-0.875

G01 Z-1.125 F0.005

G00 Z0.1

G00 Z-1.

G01 Z-1.25 F0.005

G00 Z0.1

G00 Z-1.125

G01 Z-1.375 F0.005

G00 Z0.1

G00 Z-1.25

G01 Z-1.5 F0.005

G00 Z0.1

G28

T400

M01

(Bore out inside taper)

N50 T202

G50 S1500

G96 S40 M03

G00 X0.6 Z1.

M08

G00 X0.6 Z0.1

G01 Z0. F0.002

G71 P55 Q58 U0.01 W0.02 D0.02 F0.007

N55 G01 X1.26 F0.002

N58 G01 X0.94 Z-1.138

G70 P55 Q58

G00 Z0.1

G28

T200

M01

(Thread the outside M40-1.5)

N60 T808

G50 S1500

G97 S200 M03

G00 Z1.

G00 X1.65

G00 Z0.1

M08

G76 D0.01 F0.05906 K0.0362 Z-0.75 X1.491

G00 X1.775

G00 Z1.

G28

T800

M01

M05

M30

%