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.
| G32 | G92 | G76 | |
|---|---|---|---|
| Blocks per pass | 4 (approach, cut, retract, return) | 1 | 2 blocks for all passes |
| Pass calculation | Programmer | Programmer | Control |
| Infeed | Radial | Radial | Flank (one side) |
| Taper thread | X and Z together | R address | R(i) address |
| Best for | Special profiles, macros | Fine pitch, 3–8 passes, any control | Coarse 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
- 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.
- 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.
- 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".
- Finish allowance (radial): the thin last cut; 0.03–0.05 mm. Zero means no finishing pass is written.
- Material and speed: the material button brings in Vc, the tool calculates rpm but caps threading at 1500 rpm and writes
G97into the program. Leave that alone; at high rpm the slide cannot keep up with the lead. - 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| Address | Meaning | Note |
|---|---|---|
X | End diameter of this pass | Decreases per line on external threads, increases on internal |
Z | Thread end point | Written once, modal |
F | Lead (mm/rev) | In threading F is the lead; multi-start: F = pitch × starts |
R | Taper (radius difference) | Omitted on straight threads; on tapers (D − d)/2, sign by cutting direction |
| Start point | The G00 X.. Z.. before G92 | The 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
M30Nine 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
| Symptom | Cause | Fix |
|---|---|---|
| Thread comes out "double start", passes do not overlap | Spindle 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 turn | Start Z too close to the face, slide could not accelerate | Start at least 2–3 pitches in front |
| Notch at the thread end / tool hits the shoulder | End Z runs to the shoulder, no relief groove | Cut a groove or shorten the end; the chamfer amount is set by FANUC parameter 5130 |
| Tool plunges into a thread later in the program | G92 not cancelled, a later X line ran as a cycle | Program G00 after the cycle |
| Feed override does nothing | Normal: feed override is ignored during threading | By design, not a setting; change S for speed |
| Feed hold pressed, tool did not stop | The hold is delayed until the threading block ends | Normal; the tool stops on the retract move |
| Rough flank finish on the last pass, chatter | Δd too large, worn insert, long overhang | Reduce Δ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.