G94 cevrimi nasil calisir?
FANUC G94, torna tezgahinda alin yuzeylerini kaba islemek icin kullanilan tek-paso hazir cevrimdir. G90 boyuna kesim yaparken G94 alin kesimi yapar.With this free G94 face turning simulator and NC code generator you can enter the stock diameter, target inner diameter, face depth and pass step, watch the live toolpath simulation and instantly generate the FANUC 0i-TC compatible G94 program with modal Z blocks. For the theory see our G94 Face Turning Cycle guide, for longitudinal cutting the G90 Turning Simulator, and for multi-pass face roughing the G72 Face Roughing Simulator.
What G94 is and where it is used
In FANUC G-code system A, G94 is the single-pass face turning cycle, the X-direction sibling of G90. One G94 block rapids the tool to the programmed Z depth, feeds in X to the inner limit, feeds back out in Z to the start point and finally rapids back to the start X. On milling controls and on lathes running G-code system B or C the same code means "feed per minute"; there the facing cycle is called with G79. This simulator covers the facing cycle on system A controls such as the FANUC 0i-TC. It is the shortest way to remove stock from a rough face down to a required depth on flanges, pulleys, discs, covers and hubbed parts, in other words on short, large-diameter work. The theory and the U/W/R details are in the G94 face turning cycle guide; this page concentrates on using the tool and reading the generated code.
G94, G90 or G72: which one when?
| Cycle | Cutting direction | Who manages the passes? | Where it makes sense |
|---|---|---|---|
| G94 | Parallel to X (facing), flat or inclined | You: deepen Z line by line | Flat faces, hub shoulders, short wide parts, 2–12 passes |
| G90 | Parallel to Z (longitudinal) | You: reduce X line by line | Shafts, steps, long parts |
| G72 | Facing, following a profile | Control: automatic via W/R/P/Q | Stepped or radiused face profiles, multi-pass roughing |
| G01 | Free | You, every move written out | Single-pass finish facing, chamfers, radii |
The rule is simple: if the face is flat and the inner limit is a single diameter, use G94; if the face has steps, radii or tapers, use the G72 face roughing cycle. When you have to machine a face and a longitudinal step in the same setup, facing first with G94 and then turning with G90 gives the most readable program.
Using the simulator step by step
- Raw stock diameter: the outside diameter where the facing cut starts. For Ø80 the tool puts the start point 4 mm outside on diameter, at X84.
- Target inner diameter: the X limit where the facing cut stops. Enter 30 to leave a Ø30 hub, or 0 for a full face. To avoid a centre nub when programming by hand, it is common to run X to minus twice the nose radius, e.g. X-1.6.
- Start Z: the safe distance the tool waits at in front of the rough face, typically +2 mm. Every pass returns here.
- Face depth Z: the total depth to remove from the rough face, entered negative. Z-20 means 20 mm into the part.
- Depth of cut: the step in Z. In facing the depth of cut is the chip thickness itself; 1.5–2.5 mm in steel, 2–4 mm in cast iron and 1–2 mm in stainless are reasonable.
- Finish allowance: the Z stock left for the last pass. With 0.2 mm the tool finishes roughing at Z-19.8 and adds Z-20 as a finish pass at a lower feed.
- Material, Vc and G50: for facing the tool outputs G96 constant surface speed; the G50 S value stops the RPM running away as the tool approaches the centre. The RPM shown in the info box is the starting speed at the outside diameter.
- Start the simulation, watch the face come off slice by slice, then copy the code or download the .nc file.
Reading the generated program line by line
With the default values (Ø80 stock, Ø30 hub, Z2 → Z-20, 2 mm depth of cut, 0.2 mm finish allowance, steel) the simulator produces:
O0001
G21 G99
G50 S2500
T0303 M08
G96 S150 M03
G00 X84. Z2.00
G94 X30.000 Z0.000 F0.250
Z-2.000
Z-4.000
Z-6.000
Z-8.000
Z-10.000
Z-12.000
Z-14.000
Z-16.000
Z-18.000
Z-19.800
Z-20.000 F0.150
G00 X120. Z200.
M09
M05
M30
%| Block | What it does |
|---|---|
G50 S2500 + G96 S150 | Constant surface speed 150 m/min; as the diameter drops from 80 to 30 the RPM rises from 597 to 1592, capped at 2500 by G50. |
G00 X84. Z2.00 | Cycle start point: 4 mm outside the stock on diameter, 2 mm in front of the face. Every pass returns here. |
G94 X30. Z0. F0.25 | First pass cleans the rough face: rapid to Z0, face at F0.25 to X30, feed back to Z2, rapid to X84. |
Z-2. … Z-18. | Modal repeats: G94, X30 and F0.25 are remembered; each line takes a slice 2 mm deeper. The FANUC training manual example (Ø85 → X40) has exactly the same shape: G94 X40.0 Z-2.0 F0.2, Z-4.0 … Z-18.0, Z-19.7, Z-20.0. |
Z-19.800 | Last roughing pass, leaving 0.2 mm finish allowance. |
Z-20.000 F0.150 | Finish pass at a lower feed. The block carries an F as well as a Z, but the cycle is still modal. |
G00 X120. Z200. | Leaves the cycle; G00 from group 01 cancels G94. |
The four moves and the hub surface
An important difference from G90 lies in the third move. In G90 the tool retracts in X at rapid after the cut; in G94, once it reaches X30, it comes back out in Z to the start point at feed rate. That retract skims the cylindrical surface of the Ø30 hub, so if the hub diameter is toleranced the side cutting edge of the insert has to suit that surface and the feed on the last pass should be kept low. The move also leaves a sharp corner between the face and the hub; if a radius is required there, add a separate G01/G02 pass. An easy way to remember the four steps is R–F–F–R: rapid in, cut, cut out, rapid back.
Pass calculation: why 11 roughing + 1 finish?
The tool measures the total distance from the start Z: 2 mm clearance + 20 mm depth − 0.2 mm finish allowance = 21.8 mm; divided by the 2 mm step that is 10.9, rounded up to 11 roughing passes. The first pass at Z0 cleans the rough face (crossing the 2 mm gap in air), the next nine go 2 mm deeper each, the eleventh ends at Z-19.8 with the remaining 1.8 mm, and the twelfth block is the finish. Use the same approach by hand: a rough face may be uneven, so always start the first pass at Z0 or slightly positive, step down evenly, and leave a small remainder pass plus the finish. Because the RPM keeps changing during facing, programming the feed in mm/rev (G99) keeps the surface finish constant; with feed per minute (G98) the chip thickness changes as the tool nears the centre.
Stepped faces: changing X and Z together
In the modal repeat blocks you can change X as well as Z. For a two-step flange face with a Ø12 centre and a Ø40 outer step the FANUC training example reads: G94 X12.0 Z-2.0 F0.2, Z-4.0, Z-6.0, Z-7.0, then X40.0 Z-9.0, Z-11.0 … Z-17.0. The first group faces down to the hub at 7 mm, the second pulls X out to 40 and opens the outer step to 17 mm; no G00 retract is needed in between, the cycle stays modal. The simulator generates one step; for a second step run it again with the new X and Z values and merge the blocks.
Inclined faces: the R parameter
For a tapered face the format becomes G94 X(U)_ Z(W)_ R_ F_. Whereas R in G90 is a radius difference, R in G94 is a difference in Z: the distance between the Z of the cut start at the outside diameter and the Z of the end point at the inner diameter. If the outer edge is deeper (closer to the chuck) than the inner edge, R is negative; if the outer edge stands proud, R is positive. To make the face 3 mm deeper at the outside while going from Ø80 to Ø30, write G94 X30. Z-20. R-3. F0.25; the tool starts at Z-23 on the outside and reaches Z-20 at X30. This simulator produces flat faces only; add inclined blocks by hand using this rule and always dry-run them.
Alarms and problems seen on the shop floor
| Symptom | Cause | Fix |
|---|---|---|
| PS0011 FEED ZERO (COMMAND) | No F in the first G94 block | Add F; mm/rev under G99 |
| Nub (small cone) left at the centre | Target X exactly 0 and the nose radius cannot pass centre | On a full face run X to −(2 × nose radius), e.g. X-1.6 |
| Squeal and burnt surface near the centre | G96 with no RPM ceiling | Set a G50 S limit; the tool writes it automatically |
| Hub diameter oversize | The third move (feed retract in Z) skims the hub with the side edge; tool geometry not suited | Choose an insert with a suitable side cutting edge angle; finish the hub with a separate G90/G01 pass |
| Tool approached the chuck jaws | Face depth exceeds the length sticking out of the chuck | Z depth ≤ overhang − clearance; check in the simulation |
| Cycle did not repeat, tool only moved in Z | A G00/G01 block was inserted and cancelled G94 | Give only Z (and X, R if they change) in the repeat blocks |
| Feed unit changed and nothing moved on a system B/C machine | G94 means feed per minute there | Use G79 for the facing cycle |
Six common mistakes
- Starting the first pass straight at Z-2 and skipping the rough face; if the face is uneven the first slice is uneven too. Start at Z0.
- Setting the start X equal to the stock diameter; the tool plunges into the outer edge. Start 4 mm outside on diameter.
- Facing with G97 constant RPM; the cutting speed is too low at the outside and far too high at the centre. Use G96 + G50.
- Choosing too large a depth of cut for facing; in facing the depth of cut is the chip thickness itself, not a radial reduction as in turning.
- Relying on G94 for a toleranced hub diameter; the third move skims the hub but does not size it accurately.
- Forcing G94 onto a curved or domed face; G94 cuts flat and inclined faces only, a curve needs G02/G03 or G72.
Frequently asked questions
What is the difference between G94 and facing with G01?
With G01 every pass needs four separate blocks: down in Z, cut in X, out in Z, back in X. G94 does all of that in one block and the following passes are repeated with a Z value only. A ten-pass face is forty blocks with G01 and ten with G94, and it is far easier to read and edit at the machine.
What happens if I enter 0 as the target inner diameter?
The tool cuts right to the centre. Because of the nose radius a tiny nub can remain; on the machine you remove it by running X to minus twice the nose radius (X-1.6 for a 0.8 mm radius). Do not forget the G50 spindle limit when passing through the centre.
How are U and W used in G94?
U is the diameter change relative to the current X, W the distance relative to the current Z. For a tool starting at X84 Z2, G94 U-54. W-22. F0.25 gives the same result as X30 Z-20. Incremental values are handy in subprograms reused for different stock sizes; absolute X/Z is safer while learning.
Why is F not repeated on every line?
F is a modal address: once commanded it stays active until changed. The tool writes F0.15 only on the finish line, because that is where the feed actually changes. When reading a program, any block without an F runs at the last F given.