FANUC MANUAL GUIDE i
MANUAL GUIDE i is Fanuc’s shop-floor conversational layer. Per its own manual, it “features a single screen that can be used to create machining programs, check them using animation, set up machining, and perform actual machining” — and, critically, the programs it creates are in ISO code format, the same G-code the control runs anyway. That is the fundamental difference from MAZATROL, which is its own unit-based language: a MANUAL GUIDE i program is an ordinary Fanuc part program with special 4-digit G-code cycle blocks dropped into it, so you can read it, edit it, and mix it with hand-written or CAM-posted code. It ships in milling and turning variants (and compound mill-turn) and runs across the mainstream Fanuc range — Series 0i (C/D/F), 16i/18i/21i-B, and 30i/31i/32i-A/B. This page covers how a program is built, the cycle library with its actual G-numbers, contour input, and where MANUAL GUIDE i fits next to raw G-code and CAM.
How a MANUAL GUIDE i Program Is Built
You work on the all-in-one screen: a program window, a graphics window for the solid-model animation, and soft-key menus. Creating a program means creating a normal O-number program and then inserting three kinds of content into it:
- Plain ISO blocks, typed directly — tool change, spindle start, coolant, approach moves. The manual’s own worked example starts a process with hand-entered code:
G28 G91 Z0.,T01 M06,M03 S1000,G00 G90 G54 X0. Y0.,G43 Z100. H1. - Fixed form sentences — registered boilerplate called up from the [FIXFRM] menu, with
?placeholders you fill in (e.g. a registered “MILLING START” sentence ofG28 G91 Z0. ; T? M06 ; M03 S? ; …). This is how a shop standardizes its start/end-of-tool skeletons. - Machining cycle blocks — the conversational part. Each cycle is a 4-digit G code (G1xxx) whose arguments are filled in through a data-entry window, with a guide chart drawn next to each field so you can see which dimension you’re typing.
The data-entry windows follow a handful of conventions worth knowing before you fill in your first cycle:
| Convention | Meaning |
|---|---|
| CUT COND. tab | Cutting conditions — depths of cut, stock, feedrates. The manual is explicit that these are the dangerous-if-guessed values, so the operator always enters them; they are never auto-set from nothing. |
| DETAIL tab | Approach/escape types, clearances, up-cut vs down-cut, overrides. Auto-filled (largely by duplicating what you entered last time) — check and override rather than type from scratch. |
* marker | Optional item: takes a typical default value if left blank. |
| (COPY) items | The last value you entered for this field is carried forward as the initial value in the next cycle of the same kind. |
| Tool definition | When no tool database is used, a tool definition block entered beforehand (diameter for milling; nose radius and tool angles for turning) is copied into each cycle’s tool-condition data automatically. |
The load-bearing structural rule, stated repeatedly in the manual: a machining cycle is always a pair — a machining command block (what to do: feeds, depths, stock) followed immediately by one or more figure blocks (where to do it: hole positions, a rectangle, a free-form contour). One machining block can be followed by several figure blocks, and the cycle executes once per figure. Here is a real generated program from the manual — a lathe end-face finishing cycle with its contour figure stored as a subprogram:
O0001
G1128 I1. R0.8 A95. B80. J3. P3. L3. M0. F0.5 X1. Y1. Z10. ; (END FACE FINISHING - MACHINING BLOCK)
M98 P0002 ; (CALL THE FIGURE)
M30 ;
%
O0002 (FIGURE SUBPROGRAM)
G1450 H0. V75. ; (START POINT)
G1451 H0. V0. K7. D0. L0. M0. T1. ; (STRAIGHT LINE)
G1451 H5. V0. K1. C5. L0. M0. T1. ; (STRAIGHT LINE)
G1451 H5. V75. K3. D75. L0. M0. T2. ; (STRAIGHT LINE)
G1456 ; (END OF FIGURE)
M99 ;
%
Every argument in the G1128 block is one field from the data-entry screen (finish stock, nose radius, tool angles, feed, approach). That’s the whole trick: the screens are a form-filling front end, and the program is still text. Two execution details worth knowing: when a cycle finishes, the tool returns to the position where the cycle started (suppressible via bit 7 of parameter No. 27002 milling / 27102 turning), and there is an NC program conversion function ([NC CNV], MEM mode) that expands any 4-digit G cycle into plain single move commands (G0/G1/G2/G3) in a destination program — with the original G1xxx block optionally kept as a comment — when you need cycle-free code for another machine or for inspection.
The Cycle Library
These are the machining command blocks documented in B-63874EN/13, with the manual’s own G-numbers. Milling cycles apply to machining-center systems and to milling on lathes with live tooling; turning cycles apply to lathe systems.
| Family | G-numbers | Cycles |
|---|---|---|
| Milling | ||
| Hole machining (tool rotation) | G1000–G1006 | Center drilling, drilling, tapping, reaming, boring, fine boring, back boring (M series; on T-series lathes the live-tool equivalents are G1110–G1115) |
| Facing | G1020–G1021 | Roughing, finishing |
| Pocketing | G1040–G1043 | Roughing, bottom finishing, side finishing, chamfering |
| Grooving | G1050–G1054 | Roughing, bottom finishing, side finishing, chamfering, cylindrical-surface roughing |
| Contouring (side cutting) | G1060–G1071 | Outer wall / inner wall / partial × roughing, bottom finishing, side finishing, chamfering |
| Emboss (island) machining | G1080–G1083 | Roughing, bottom finishing, side finishing, chamfering |
| Turning (lathe systems) | ||
| Hole machining (workpiece rotation) | G1100–G1105 | Center drilling, drilling, tapping, reaming, boring, fine boring — on centerline only, no figure block |
| Turning | G1120–G1129, G1150–G1152 | Outer / inner / end-face × roughing, semifinishing, finishing; conical boring; combined rough-and-finish variants |
| Turning grooving | G1130–G1138 | Outer / inner / end-face × roughing, rough-and-finish, finishing |
| Threading | G1140–G1141 | Outer surface, inner surface |
| Residual machining | G1160–G1168 | Re-machining stock a previous tool couldn’t reach: outer / inner / end-face × roughing, semifinishing, finishing |
The figure blocks live in their own G-number bands, organized by plane — this is what makes a MANUAL GUIDE i program instantly recognizable when you scroll through someone else’s memory:
| G-numbers | Figure blocks |
|---|---|
G1200–G1206 | XY-plane arbitrary figure: start point, straight line, arc CW, arc CCW, chamfering, corner rounding, end |
G1210–G1217 | XY-plane hole positions: random points, linear (same/different interval), grid, rectangle, circle, arc patterns |
G1220–G1225 | XY-plane fixed figures: rectangle, circle, track (oblong), radial groove, straight groove, polygon |
G1300s | The same three sets on the YZ plane (horizontal-boring style work) |
G1450–G1456 | ZX-plane turning figure: start point, line, arcs, chamfer, corner R, end |
G1460–G1464 | Thread figures: general-purpose, metric, unified, PT, PF |
G1470–G1475 | Turning-groove figures: outer/inner/end-face, normal and trapezoidal |
G1500s / G1600s / G1700s | XC end-face, ZC cylindrical, and XA cylindrical figure sets for C-/A-axis live-tool work (polar and cylindrical interpolation) |
G1900s | Blank form blocks for simulation: G1902 rectangular solid, G1900 column, G1901 column with a hole, G1903/G1904 polygon, G1970–G1976 free-contour cylinder blank |
Contour Programming
The free-form figure input is the strongest single feature. You chain elements — straight line, arc CW/CCW, chamfer, corner R — entering exactly the dimensions the print gives you, and the control performs automatic figure calculation for whatever the print doesn’t: it computes intersection and tangency points that aren’t dimensioned, and when the math produces more than one candidate figure, “the figure that passes the shortest path will be selected automatically”; where an arc meets a line or another arc, it picks the smoothly tangent solution. End points can be given incrementally from the previous element ([ST.P+I] / [ST.P–I]), a [RECALC] key re-solves the whole chain after any edit, and one arbitrary-figure set can hold up to 50 elements on turning cycles and 90 on milling cycles. For pocketing, the chained figure must close — part elements and blank elements combined into a closed curve, which is also how you describe an open-sided pocket honestly.
The same engine is exposed outside the cycles as contour programming ([G-CONT]): the figure you chain is written out as plain G01/G02/G03 ISO blocks, with an INS.CODE field to prepend or append a word (a feedrate, a G-code) to each generated block. Each generated block carries its original input data as a comment, which is what lets the control re-open a finished contour for graphical re-editing later — and is exactly why you should re-edit contours through the screen rather than by hand-typing coordinates: edit the text and the comment no longer matches the motion.
Reading Someone Else’s MANUAL GUIDE i Program
The manual’s appendix builds a complete machining-center part — a 130×90×30 blank, outer wall contoured with a roughing end mill (T01), a pocket roughed and finished (T02), then drilled (T03) — and the finished program reads as a repeating rhythm: plain ISO tool-change skeleton, then cycle + figure pairs, per process. Stripped to its shape:
O1234
G1902 ... ; (BLANK FIGURE: 130 X 90 X 30 RECTANGULAR SOLID - FOR SIMULATION)
G28 G91 Z0. ; (PROCESS 1: ROUGHING END MILL)
T01 M06 ;
D1 ; M03 S1000 ;
G00 G90 G54 X0. Y0. ; G43 Z100. H1 ;
G1060 T20. S5. L3. J10. K0. H0. F500. V300. E200. ; (OUTER WALL CONTOURING ROUGH)
G1220 ... ; (FIGURE: RECTANGLE, 120 X 80, CONVEX)
G1040 ... ; (POCKETING ROUGH)
G1200 ... ; G1201 ... ; G1202 ... ; G1206 ; (FIGURE: ARBITRARY, CLOSED)
G28 G91 Z0. ; (PROCESS 2: FINISHING END MILL, T02)
...
G1041 ... ; G1042 ... ; (POCKET BOTTOM FINISH, SIDE FINISH - SAME FIGURE AGAIN)
G28 G91 Z0. ; (PROCESS 3: DRILL, T03)
...
G1001 ... ; (DRILLING)
G1213 ... ; (FIGURE: GRID POINTS)
M05 ; G28 G91 Z0. ; M30 ;
The rhythm of a MANUAL GUIDE i program: ordinary ISO skeleton code alternating with machining-cycle pairs — a G1xxx command block plus its figure block(s).
Three habits make an unfamiliar MANUAL GUIDE i program quick to decode. First, find the G1xxx pairs: the block in the G1000–G1100-odd range is the operation, and everything from the next G12xx/G14xx/G15xx-range block (or M98 P-call to a figure subprogram) down to the figure-end code is where it cuts. Second, don’t try to read the argument letters as normal G-code — F is still feed, but T in a cycle block is bottom thickness, not a tool call; the letters are per-cycle field addresses from the data-entry window, and the cursor-guidance text on the control (or the manual’s per-cycle tables) is the decoder. Third, everything between the pairs is honest ISO code you already know — that’s where the tool changes, offsets, and coolant live, exactly like a hand-written program.
Checking the Program Before It Cuts
Verification is built into the same screen. The graphics window runs either a tool path drawing or an animated machining simulation against a solid model — which is what the G1900-series blank form block and the tool definition data exist for: the manual’s simulation setup consists of defining the blank (rectangular solid, column, column-with-hole, polygon, or a free-contour cylinder chained like any other figure) and the tools, then watching the material come off. The animation renders the machined surface per tool tip and uses solid models for both milling and turning, supports blank cutout (quarter-section) views, speed change, and a machining-time display, so a cycle program gets a realistic dry run without ever touching the axes. For one-off moves and single cycles there is also full MDI editing with the same cycle menus — the conversational equivalent of punching in a quick canned cycle. None of this replaces the usual first-part caution, but it catches the classic conversational mistakes — wrong base position, figure on the wrong side, depth sign errors — while they’re still pixels.
MANUAL GUIDE i vs Raw G-Code vs CAM
Because the output is ordinary ISO code, this is not an either/or decision — the manual itself advertises “high affinity with CAD/CAM: ISO code machining programs created using CAD/CAM can be used without modification,” and the practical pattern follows from that:
- Simple prismatic or turned parts, programmed at the machine — MANUAL GUIDE i’s home turf. Facing, pockets, hole patterns, OD/ID roughing to a contour, grooves, threads: the cycle plus a figure is faster than hand-writing the moves, the animation check is built in, and the roughing cycles handle depth-of-cut passes and residual stock for you where a plain canned cycle would not.
- Family-of-parts work — use custom macros. A G1xxx cycle block takes literal numbers from the screen; a macro parameterizes the whole part. The two coexist fine in one program — but note the NC conversion function’s restriction list (no
GOTO/IF/WHILE, no#?=assignments) if you ever need to flatten it. - Complex 3D surfacing and full 5-axis — CAM and a post. MANUAL GUIDE i’s cycles are 2.5D features plus turning; it will happily host a CAM-posted program (and simulate it), but it doesn’t generate sculpted toolpaths.
- Editing generated code — allowed, with the usual caution. The blocks are text and the control doesn’t stop you. Keep the machining-block/figure-block pairing intact, re-edit cycles and contours through their data windows so the stored input data stays true, and re-run the animation after any change — same discipline as editing any posted program.
MANUAL GUIDE i and iHMI
On the Plus-generation controls (30i/31i/32i-B Plus, 0i-F Plus), Fanuc’s iHMI is the new operator environment, and its Machining Cycle screens are the evolution of MANUAL GUIDE i’s cycle input. The workflow is the same shape — a cycle selection screen (Turning / Milling categories, tabs for hole machining, facing, contouring, embossing, pocketing, grooving, threading), a cycle input screen with guidance graphics per field, and a free-figure creation screen chaining line / arc / corner R / chamfer elements (now up to 300 per figure) — and pressing [OK] “creates G codes with the values set to the input item” and inserts them into the program being edited. The generated blocks are the same 4-digit G cycle language documented above (the iHMI manual’s appendix lists the same G1xxx hole-machining, pocketing, contouring, and turning cycles, plus additions like thread milling), so cycle programs and the skills to read them carry across the generations; what changed is the screen around them.
Gotchas
- A cycle block alone cuts nothing. The machining command block and its figure block(s) must be entered in succession; if an ordinary ISO block sits between them, that ISO block executes first and the cycle only runs at the figure block. Delete a figure block during an edit and the orphaned cycle block silently does no machining.
- The cycles don’t manage the spindle or tool for you. Unlike MAZATROL, MANUAL GUIDE i expects the surrounding ISO code to have already done the tool change and started the spindle — the manual requires a spindle rotation command (and a
Doffset when using the tool database) before any cycle. Feedrate lives in the cycle; the rest of the setup is on you. - G-code system B/C lathes: command G90 first. On T-series controls using G-code system B or C, switch to absolute (
G90) before a machining cycle, and specifyG98/G99before live-tool hole machining — the cycles assume it. - T-series milling coordinates are radius values. When entering milling data on a lathe (an I-point coordinate, for example), enter X-axis values as radius even though the lathe otherwise thinks in diameter.
- Parameter settings can make programs non-portable between machines. Bit 0 of parameter No. 27095 moves the bottom/side thickness fields from the cycle block into the figure block; a program written under one setting alarms out (“WRONG THICKNESS” / “NO NECESSARY ADDRESS”, PS3043/PS3016-family) on a machine set the other way. If a known-good MANUAL GUIDE i program alarms on a sister machine, compare the 27xxx-range MANUAL GUIDE i parameters before blaming the program.
- Blank and part figures must agree. On turning cycles, a blank figure jutting outside the part figure stops the cycle from machining at all, and for pocketing the part+blank chain must form a closed curve. The animation check exists for a reason — simulate before you cut, every time the figures change.
- The tool goes back where the cycle started. Every cycle retraces its approach and returns to the pre-cycle position on completion (unless bit 7 (ESC) of parameter No. 27002/27102 suppresses it). Park somewhere sensible before the cycle block, or the “return” can be a longer trip than you expected.
See also: Fanuc Series Guide for which control generations you’ll meet in the field, Canned Cycles for the standard G73–G89 cycles the G1xxx family builds beyond, Intro to CNC Macros for parameterizing repeat work, and MAZATROL Conversational Programming for the contrasting approach where the conversational layer is the language.
References
- FANUC, MANUAL GUIDE i Operator’s Manual (Common to Lathe System/Machining Center System), B-63874EN/13.
- FANUC, MANUAL GUIDE i Operator’s Manual (For Machining Center System), B-63874EN-2/05.
- FANUC, iHMI Machining Cycle Operator’s Manual, B-64644EN-2/01.
Have a question or want to contribute?
Contact us with corrections, additions, or topics you'd like covered.
Get in Touch