G76 Cycles – Thread Turning Gcode Programming

CNC lathe programming cycles can be challenging to master due to the many parameters involved, which require a precise understanding and definition. Additionally, each controller may have a slightly different syntax, making it challenging to keep up. You can avoid the hassle by using our Thread Turning Gcode Generator. Nevertheless, it’s essential to familiarize yourself with these terms to achieve better results.

G-code G76 Program Generator

Get the Gcode CNC program for your thread based on the following parameters:

  • CNC Controller
  • Raw material
  • Thread & tool handedness (RH / LH)
  • Infeed method
  • Number of passes
  • Finish pass, chamfer, units, etc.

Thread Selection||Cutting Data||CNC Program

It’s essential to have a solid understanding of the terms that define the Gcode thread cycles before starting to program it!

Infeed methods

There are several methods to program how the threading tool enters the material, each with its own advantages and disadvantages, making each one suitable for different scenarios. 

Radial Infeed

Radial thread infeed method

It is the most straightforward method available on all controllers and can also be used on a manual lathe.

Common use cases:

Advantages:

  • Can be used on a manual lathe.
  • Easy to program manually.
  • Even wear on both flanks of the cutting edge.

Disadvantages:

  • Poor chip control.
  • Insert tip is exposed to high temperatures.
  • Risk of vibration due to high cutting forces.
  • Depth per pass is limited, resulting in a longer cycle time.
  • It is not possible to use inserts with chipformers.

Flank Feed

Flank threading infeed method

A good all-around choice that is available on all controllers.

Common use cases:

Advantages:

  • Better chip flow.
  • Inserts with a chip breaker can be used.
  • There is a lower chance for vibrations.
  • Higher depth of cuts per pass, improving the cycle time.

Disadvantages:

  • Not suitable for fine pitches below 24 TPI (1 mm).
  • Asymmetric wear.

Modified Flank

Modified Flank threading infeed method

The method is the same as the flank feed method, but it is slightly angled to avoid the insert edge rubbing against the component surface. It is not supported by all controllers. However, if your controller supports it, it is a better choice than the “regular” flank method.

The implementation is by subtracting twice the slant angle from the profile angle. For example, for a 60° thread with a modified flank cycle with 3°, you should enter 60-2X3=56° instead of 60°

Advantages (Relative to the regular flank method): 

  • Best chip flow.
  • Less flank wear.
  • Lower cutting load

Disadvantages (Relative to the regular flank method):

Alternating Flank

Alternating Flank infeed method

In this method, the cutting tool engages with the workpiece on each pass from the opposite side, resulting in an even distribution of wear. Not supported by all controllers.

Common use case: Longer tool-life becomes more beneficial in pitches greater than 5 TPI (5 mm) with much material to remove.

Advantages:

  • Even wear.
  • Longer tool-life.
  • Reduced load (Compared with radial infeed)

Disadvantages:

  • Controlling chips is difficult as they are directed in both ways.

Depth per Pass

The lead determines the feedrate and is much larger than regular feeds used in turning operations. The profile height dictates the total depth of the cut. Therefore, cutting the thread in multiple passes is the only way to control the chip load. There are two methods to divide the total depth into multiple passes.

Constant Depth

Thread Turning Constant Depth

The depth is divided equally between the passes. The depth of cut is the same in each pass; hence, the chipload increases from pass to pass.

\( ap_n=\large \frac {\text{Profile Height} – \text{Finish Pass}}{\text{Number of Passes}} \)

 Advantages:

  • Better chip control.
  • Reduced load on the tip of the cutting edge.

Disadvantages:

  • Less productive method (Requires more passes)
  • The load increases in the last passes. 
  • There is a higher risk of vibrations.

Constant Volume

Thread Turning constant volume

The depth is decreased in each pass to maintain a consistent chip load.

\( n = \text {Pass number} \)
\( ap_1 = \large \frac {\text{Profile Height} – \text{Finish Pass}} {\sqrt{\text {Number of Passes}}} \)
\( ap_n = ap_1 \times \left [\sqrt{n} – \sqrt {\left ( n -1 \right )} \right ] \)

 Advantages:

  • Shorter cycle time, since fewer passes are required.
  • Less vibrations.

Disadvantages:

  • Problematic chip control in the later passes as the depth becomes very small.

Determining the thread height (Porife depth)

The profile depth (thread height) you need for programming a thread cycle is

External Profile height for G76

External thread:

From the flat (or rounded) crest, which is the major diameter to the theoretical apex of the root. In 60 degrees parallel threads like standard metric and inch threads, it equals 0.61343 * Pitch

Internal Profile height for G76

Internal thread:

From the flat (or rounded) crest, which is the minor diameter to the theoretical apex of the root. In 60 degrees parallel threads like standard metric and inch threads, it equals 0.57364 * Pitch

Determining the first cut depth

The threading cycles calculate internally the required number of passes and the depth of each to maintain a constant volume or depth, according to the depth of the first pass. There are two approaches to deciding its value. (The number of passes is not a parameter entered into any of the threading cycles!)

Option 1:

Decide what is the largest depth you think your cutting edge can take. The controller will decide on the number of passes to maintain the same chip load as in the first pass (The depth in each pass will be reduced). In this method, no calculations are needed.

Option 2:

Decide how many passes you want and calculate the depth of the first pass according to the below formulas:

For Constant Volume Method

\( ap_1 = \large \frac {\text{Profile Height} – \text{Finish Pass}} {\sqrt{\text {Number of Passes}}} \)

For Constant Depth Method

\( ap_1 = \large \frac {\text{Profile Height} – \text{Finish Pass}} {\text {Number of Passes}} \)

Additional parameters

Some controllers provide additional parameters to customize the cycle.

* Learn more about Single-point thread programming

Which options are supported by your controller?

ControllerModified FlankAlternating FlankFinish PassChamfer
OkumaVVVV
Fanuc
(One-line Format)
XVXX
HaasVVXV
Fanuc
(Two-lines Format)
XXVV
MazakVXVV
MitsubishiVXVV

* Options that don’t appear on the above chart are available on all the controllers.

Now that we know how to determine the parameters, it is time to see the Gcode syntax for the common threading cycles

Fanuc G76 threading cycle (two lines format)

This format is applicable for: 

  • Fanuc types A, B, and C. (On C type, replace G76 with G78)
  • Mazak
  • Mitsubishi

G76 P__ Q__ R__

G76 X__ Z__ R__ P__ Q__ F__ (P__)

Line 1: 

P = A six-digit code in three pairs:

Digits 1 and 2 – number of finishing cuts (01-99). Usually 00 or 01.

Digits 3 and 4 – Chamfer size expressed as a percentage of the lead. 00 means without a chamfer.

Digits 5 and 6 – Thread V angle (00, 29, 30, 55, 60, 80 degrees only). 00 is used for radial infeed.

Q = The minimum allowed cutting depth expressed in microns. If, according to the calculations, smaller depths are needed, they will be ignored. This parameter is used to restrict unnecessary passes with ridiculously small depths.

R = The depth of the additional finish pass. (0.0 if none)

Line 2:

X = The diameter of the last pass. (Minor diameter in external threads / and major diameter in internal threads). You should use the diameters as explained here and not the major/minor diameters used for measurements!

Z = The thread’s end along the axial axis.

R = The amount of taper over the total length (per side). Used for NPT & BSPT threads. Enter 0.0 for parallel threads.

P = Profile height (see above), expressed in microns.

Q = The depth of the first threading pass (see above), expressed in microns.

 F = the feed rate, which equals the thread’s lead (Or the pitch in single-start threads).

In Mazak and Mitsubishi controllers:

* There is an additional P parameter at the end of line 2 (after the F) that determines the in-feed method:

P1 = Constant Volume.

P3 = Constant depth.

* All the parameres are expressed in mm/inches (Not in microns)

To see Gocde examples with the different options, change them in the GCODE GENERATOR above and check how they reflect in the program!

Fanuc G76 threading cycle (one-line format)

This format is applicable for: 

  • Fanuc T series (T6, T11, T15, etc.)
  • Haas

G76 X__ Z__ I__ K__ D__ A__ F__ P__ Q_ (M_)

X = The diameter of the last pass. (Minor diameter in external threads / and major diameter in internal threads). You should use the diameters as explained here and not the major/minor diameters used for measurements!

Z = The thread’s end along the axial axis.

I = the amount of taper over the total length (per side). Used for NPT & BSPT threads. Enter 0 for parallel threads.

K = Profile height (see above), expressed in microns.

D = The depth of the first threading pass (see above), expressed in microns.

A = Thread V angle (00, 29, 30, 55, 60, 80 degrees only). 00 is used for radial infeed.

F = The feed rate, which equals the thread’s lead (Or the pitch in single-start threads).

P – Infeed method adjustment:

P1 = Flank/modified flank feed with constant volume

P2 = Alternating flank feed with constant volume.

P3 = Flank/modified flank feed with constant depth

P4 = Alternating flank feed with constant depth.

Q = Spindle rotation shift angle. The data range is from 0 to +/-360000 (360 degrees = 360000, without decimal point) This function is used for cutting multiple-lead threads. In the case of a 3-start thread, the shift angle between each thread is 120 degrees. This means that to cut the first thread lead, we use Q=0. To cut the second and third thread leads, we use Q=120000 and Q=240000, respectively. It’s important to note that the Z-axis start position remains the same for each thread.

Additional parameters for Haas controllers

M – Chamfering.

M23 = With chamfer

M24 = Without chamfer

* On Haas controllers, all the values are entered in mm/Icnhes (Not in microns!)

To see Gocde examples with the different options, change them in the GCODE GENERATOR above and check how they reflect in the program!

Okuma G71 threading cycle

Okuma controllers utilize a different cycle (G71), which includes all the aforementioned options and additional ones. This is the most comprehensive thread cycle available.

G71 X__ Z__ A__ (I__) B__ D__ U__ H__ L__ E__ F__ J__ M__ Q__ 

X = The diameter of the last pass. (Minor diameter in external threads / and major diameter in internal threads). You should use the diameters as explained here and not the major/minor diameters used for measurements!

Z = The thread’s end along the axial axis.

A = Taper angle. (For BSP/NPT threads)

I = Difference in radius between the starting point and end point (expressed as a radius).

* You can use either an A or I mode (Not both).

B = Thread V angle (e.g., 60, 55, 29)

D = The depth of the first threading pass (see above), expressed as a diameter.

U = The depth of the additional finish pass (0.0 if none), expressed as a diameter.

H = Profile height (see above), expressed as a diameter.

L = Chamfering distance in final thread cutting cycle(Effective in M23 mode; if no L word is designated in the M23 mode, L is assumed to be the distance equivalent to one lead.)

E = Lead variation rate per lead for variable lead thread

F = The feed rate, which equals the thread’s lead (Or the pitch in single-start threads).

J = Number of threads within a distance specified by F word (When no J word is designated, the control assumes J=1)

Q = Number of threads for multi-thread thread cutting.

M – Thread cutting pattern and mode of infeed. (Up to 3 M-codes are allowed – One from each set)

Set 1

M74 =Constant Depth

M75 =Constant Volume

Set 2

M32 = Flank Infeed (Right flank)

M33 = Alternating Flank Infeed

M34 = Flank Infeed (Left flank)

Set 3

M22 = No Chamfer

M23 = With Chamfer

To see Gocde examples with the different options, change them in the GCODE GENERATOR above and check how they reflect in the program!

Scroll to Top