G92 Threading Cycle Simulator and NC Code Generator (FANUC Lathe)

13 July 2026

Mentor CNC Editör Ekibi

⚙️ MENTOR CNC
G92 Dis Kesme Cevrimi · FANUC 0i-TC Uyumlu · Egitim Simulatoru
G92 MODULU
⚙️ Dis Parametreleri
 
Disinin nominal (dislik) capi
Komsu dis tepeleri arasi mesafe
Dis derinligi: 0.6134 × 2.5 = 1.534 mm
Takimin yaklastigi Z (genelde +2..+5)
Dis uzunlugu (negatif)
Her paso radyal derinligi
Son paso payi (0=birak)
Hesaplaniyor...
🔧 Malzeme & Kesme
⚡ Kesme Parametreleri
Vc (kesme hizi)100 m/dak
f (dis adimi)2.50 mm/dev
n (devir/dak)1591 dev/dak
Maks. devir (G50)1500 dev/dak
🖥️ Canli Takim Yolu Simulasyonu hazir
🟦 Ham yuzey 🟦 Islenen yuzey ── G0 hizli ── G1 dis kesme ▮ Takim
⚡ G-Kod Ciktisi (CNC'ye hazir)
 
💡 G92 Dis Kesme Cevrimi — Bilmen Gerekenler
▸ G92 ile G76 farki nedir?
▸ G97 neden zorunlu?
▸ Devir neden dusuk tutulur?
▸ Paso derinligi neden azaltilir?

With this free G92 threading simulator and NC code generator you can enter the nominal diameter, pitch, pass depth and finish allowance (or pick a metric preset), watch the live toolpath simulation and instantly generate a FANUC 0i-TC compatible G92 program with progressive infeed. For the theory see our G92 Threading Canned Cycle guide, and for thread calculation the Thread Calculator and G32 Zigzag Threading tools. For automatic multi-pass threading also try our G76 Threading Cycle Simulator.

What the G92 threading cycle does and when to use it

G92 is the FANUC single-block threading cycle. One G92 block performs four moves on its own: rapid infeed to X, a thread cut along Z synchronised to the lead, rapid retract in X and rapid return to the start Z. For every further pass you write only a new X value; the cycle is modal and repeats the other moves. It is the most transparent form of CNC threading: you set the depth of every pass yourself and the control does no calculation.

G32G92G76
Blocks per pass4 (approach, cut, retract, return)12 blocks for all passes
Pass calculationProgrammerProgrammerControl
InfeedRadialRadialFlank (one side)
Taper threadX and Z togetherR addressR(i) address
Best forSpecial profiles, macrosFine pitch, 3–8 passes, any controlCoarse pitch, production

Rule of thumb: pitch 1.5 mm or finer, no more than about 8 passes, and you want to see every pass: G92. On coarser pitches the pass list gets long; then the G76 Threading Cycle Simulator produces a shorter program. For learning, G92 is the better cycle: every line does one obvious thing.

How to use the simulator step by step

  1. Thread standard and quick select: metric coarse (M6–M30 preset buttons), metric fine or manual. A preset fills in the nominal diameter and pitch; the tool immediately shows the thread depth (0.6134 × P) and the root diameter underneath.
  2. Start and end Z: start at least 2–3 pitches in front of the face (+3 to +5 mm). End Z is the end of the thread length; with no relief groove the tool retracts radially where the thread ends and the last half turn stays incomplete, so either cut a groove or stop one pitch short.
  3. Pass depth (radial): the depth of the first pass; the tool makes the following passes progressively shallower with the √n rule. 0.15–0.25 mm in steel and 0.3 mm in aluminium are sensible. You get a summary such as "8 rough + 1 finish = 9 passes".
  4. Finish allowance (radial): the thin last cut; 0.03–0.05 mm. Zero means no finishing pass is written.
  5. Material and speed: the material button brings in Vc, the tool calculates rpm but caps threading at 1500 rpm and writes G97 into the program. Leave that alone; at high rpm the slide cannot keep up with the lead.
  6. Simulation and code: each pass is listed as its own line; rapid and cutting moves are drawn in different colours in the toolpath. Download the program with ".nc".

Reading the generated program

G92 X(1st pass dia) Z(thread end) F(lead) ;   ← first pass, cycle defined
X(2nd pass dia) ;                             ← X only, cycle repeats
X(3rd pass dia) ;
...
X(root diameter) ;                            ← finishing pass
G00 X.. Z.. ;                                 ← cancels the cycle
AddressMeaningNote
XEnd diameter of this passDecreases per line on external threads, increases on internal
ZThread end pointWritten once, modal
FLead (mm/rev)In threading F is the lead; multi-start: F = pitch × starts
RTaper (radius difference)Omitted on straight threads; on tapers (D − d)/2, sign by cutting direction
Start pointThe G00 X.. Z.. before G92The cycle returns here after every pass; X must be larger than the stock

The most overlooked detail: G92 is modal. If you do not cancel it with G00 or G01 after the last pass, the next X.. line in the program runs as another threading pass and the tool plunges where you did not expect it. That is why the tool writes G0 X.. Z200. after the cycle.

Pass plan: why do the passes get smaller?

With a constant depth each pass takes a wider chip as the groove deepens; the insert load grows pass by pass and the edge chips on the last cuts. The tool instead applies the constant chip area logic that G76 also uses: the total depth of pass n is Δd × √n. The first pass is deep, the last ones thin, and the load stays the same on every pass. If you write the pass list by hand, use the same rule: each X = nominal diameter − 2 × Δd × √n.

Worked example: M20×2.5 external thread, 30 mm long

Nominal Ø20, pitch 2.5 mm; thread depth 0.6134 × 2.5 = 1.534 mm, root Ø16.933. First pass 0.52 mm (radial), finish allowance 0.05 mm, start Z+3, end Z−30. The program the simulator generates, with the pass depths:

O0001
G21 G99
G50 S1500
T0303 M08
G97 S1500 M03
G0 X24. Z3.00              (start point: stock + 4, 3 mm in front of the face)
G92 X18.951 Z-30.00 F2.500 (pass 1, 0.52 mm)
X18.517                    (pass 2, total 0.74)
X18.183                    (pass 3, total 0.91)
X17.902                    (pass 4, total 1.05)
X17.654                    (pass 5, total 1.17)
X17.431                    (pass 6, total 1.28)
X17.225                    (pass 7, total 1.39)
X17.033                    (pass 8, total 1.48)
X16.933                    (finishing pass, 0.05)
G0 X60. Z200.              (cycle cancelled, safe position)
M09
M05
M30

Nine lines, nine passes; G76 would cut the same thread in two blocks, but here you can see and edit the diameter of every pass. On the first part, stopping after pass 4 to check with a thread gauge and trimming the last two passes to size is exactly what this cycle is good at.

Internal and taper threads

Internal threads: same logic, opposite direction. The start X is smaller than the minor diameter (the tool enters the bore), X grows on every pass and the last pass reaches the major diameter. Drill the hole to nominal diameter − pitch (Ø17.5 for M20×2.5); the G92 passes open it up to Ø20.

Taper threads (NPT, BSPT, R): add R to the G92 block: the radius difference between thread start and end. On an external taper the tool runs from the large to the small diameter, so R is negative; on a 1:16 taper over 30 mm, R = −30/32 = −0.94. For taper and multi-start calculations use the Thread Calculator and NC Program Generator.

Shop-floor problems and fixes

SymptomCauseFix
Thread comes out "double start", passes do not overlapSpindle speed changed between passes (G96 active or S edited)G97 and the same S for all passes; switch constant surface speed back on afterwards
Lead error in the first turnStart Z too close to the face, slide could not accelerateStart at least 2–3 pitches in front
Notch at the thread end / tool hits the shoulderEnd Z runs to the shoulder, no relief grooveCut a groove or shorten the end; the chamfer amount is set by FANUC parameter 5130
Tool plunges into a thread later in the programG92 not cancelled, a later X line ran as a cycleProgram G00 after the cycle
Feed override does nothingNormal: feed override is ignored during threadingBy design, not a setting; change S for speed
Feed hold pressed, tool did not stopThe hold is delayed until the threading block endsNormal; the tool stops on the retract move
Rough flank finish on the last pass, chatterΔd too large, worn insert, long overhangReduce Δd, add one "spring" pass at the same X

Six common mistakes

  • Starting X at the nominal diameter. The first pass must be below nominal: for M20 the first X is 18.95 (0.52 mm deep), not 19.0. A pass at nominal only skims the raw surface and damages the crest.
  • Repeating Z on every pass. Harmless but unnecessary; the dangerous version is mistyping Z on one line, which ends that pass at a different length.
  • Constant pass depth. 8 passes × 0.19 mm evenly split chips the edge on the last passes; use the √n distribution.
  • Writing a feed rate in F. In threading F is the lead, not mm/rev feed. F0.25 cuts a "thread" with a 0.25 mm pitch.
  • Leaving the start point inside the thread. The G00 before G92 must put the tool outside the stock and in front of the face; the tool uses stock + 4 mm.
  • Running the first part without watching each pass. Use single block and 50% rapid on the first part, gauge after 3–4 passes and correct the remaining passes to size.

Frequently asked questions

Which controls support G92?

It is standard on every FANUC lathe control (0, 0i, 16i/18i/21i, 30i series), even on older machines where G76 is an option. On machines using FANUC G-code system B or C the equivalent is G78; on Siemens the equivalent is CYCLE97.

Can I cut a multi-start thread with G92?

Yes. F takes the lead (pitch × number of starts), the start Z is shifted by one pitch for each start and the pass list is repeated. Some controls use a Q start angle instead (Q180000 = 180°); check your machine manual.

What can I use instead of 0.6134 × pitch for the thread depth?

That value is for a sharp-point (partial profile) insert. Full-profile inserts follow the manufacturer's catalog value (usually 0.54–0.58 × P); in manual mode enter the root diameter accordingly and verify the last pass with a gauge.

Why is the rpm capped at 1500?

In threading the slide must advance one lead per revolution: 2.5 mm lead at 1500 rpm is 3.75 m/min slide speed. The higher the rpm, the longer the acceleration distance and the more the lead drifts in the first turns. If your machine has fast axes you can raise the cap; run the first test at low rpm.