CNC Programming Glossary
Every CNC control speaks its own dialect, but the underlying vocabulary is shared: a work offset is a work offset whether you set it on a Fanuc, a Siemens SINUMERIK, a Heidenhain TNC, or an Okuma OSP. This glossary collects the terms a programmer or setter meets across those controls and gives each a plain, one-to-two-sentence definition, grouped by theme. Where a term has its own article in this wiki, the definition links to it. Definitions are written to be control-neutral; where a term is specific to one platform, that is called out.
The Glossary
Terms are grouped by theme and listed alphabetically within each group. Section rows mark the boundaries between groups.
| Term | Definition |
|---|---|
| Machine & motion | |
| Axis | A single controlled direction of motion. Linear axes are named X, Y, Z; rotary axes A, B, C (rotating about X, Y, Z respectively). How many axes the control can interpolate at once defines a machine as 3-, 4-, or 5-axis. |
| Backlash | Lost motion when an axis reverses direction, caused by clearance in ballscrews, gears, and couplings. The control applies a backlash-compensation parameter, but a worn machine still leaves reversal marks in the cut. |
| Chip load | The thickness of material each cutting edge takes per revolution — the feed per tooth. Feed rate = chip load × number of flutes × RPM; keeping it in range protects tool life and finish. |
| Constant Surface Speed (CSS) | A turning mode (G96) that continuously varies spindle RPM to hold a constant surface speed (SFM/SMM) at the cutting point as the diameter changes. G97 cancels it back to constant RPM. |
| Feed per minute (IPM) | Feed mode G94, where the F word is distance travelled per minute (in/min or mm/min). The normal mode for milling. |
| Feed per revolution (IPR) | Feed mode G95, where the F word is distance travelled per spindle revolution (in/rev or mm/rev). The normal mode for turning and drilling. |
| Feed rate | The speed at which the tool advances through the material, commanded by an F word and interpreted as feed per minute (G94) or feed per revolution (G95) depending on the active feed mode. |
| Home / Reference (G28) | The machine's fixed reference position, established at power-up by homing to the axis limit switches or encoder markers. G28 returns axes to it; it is the origin of the machine coordinate system. |
| Look-ahead | A control feature that reads many blocks beyond the one being cut so it can plan acceleration, deceleration, and cornering, holding feed as high as possible without overshooting the programmed path. |
| Rapid traverse (G00) | Non-cutting positioning at the machine's maximum traverse rate. Rapid moves are not coordinated into a straight cutting line and must clear the part and fixtures. |
| Rigid tapping | Synchronized tapping (e.g. G84 with M29, or G84.2) in which spindle rotation and Z feed are electronically geared so the tap advances exactly one pitch per revolution — no floating tap holder required. |
| SFM (Surface Feet per Minute) | The cutting speed at the tool's edge, in feet per minute (SMM in metric). With the tool or part diameter it determines spindle RPM; see Constant Surface Speed for holding it fixed on a lathe. |
| Spindle | The rotating assembly that carries the tool (mill) or the workpiece (lathe). Commanded by an S word for speed and M03/M04/M05 for clockwise, counter-clockwise, and stop. |
| Coordinate & offset | |
| Datum | A reference feature or point on the part or fixture from which dimensions are measured. The setup datum is aligned to the origin of the work coordinate system. |
| External offset | A shift added on top of every active work offset at once (the external work-zero offset), used to nudge all of G54–G59 together — for example to correct thermal growth or trim a whole pallet. |
| G52 (local coordinate system) | A temporary shift of the active work coordinate system by a programmed amount, handy for machining repeated features at an offset without disturbing the base work offset. Cancelled with G52 X0 Y0 Z0. |
| G54.1 (extended work offsets) | Additional work offsets beyond the standard six, addressed as G54.1 P1…P48 (or more). Their values live in system variables from #7001 up — see Modal & Position Data. |
| G92 offset | A command that declares the current tool position to be a stated coordinate, thereby shifting the coordinate system. An older method largely superseded by work offsets; it leaves a residual shift that must be cancelled. |
| Machine coordinate system (MCS) | The fixed frame tied to the machine's home/reference position; it never moves. Positions in it are read from system variable #5021 up, and G53 commands a move directly in machine coordinates. |
| Part zero | The origin of the work coordinate system — the point on the part (often a corner or bore center) that program coordinates are measured from. Also called program zero or the work origin. |
| Preset table | The control's table of work-offset (preset) values. On Heidenhain the preset table holds the datum for each setup; selecting a preset row activates that datum. |
| Work coordinate system (WCS) | The frame the program is written in, located at part zero. The WCS is positioned relative to the machine coordinate system by a work offset. |
| Work offset (G54) | The stored distance from machine zero to part zero for a fixture, selected by G54–G59 (and G54.1 for extended). Values are held in system variables from #5221 up — see Modal & Position Data. |
| Tooling | |
| Cutter compensation | Radius (cutter) compensation — G41 left, G42 right, G40 cancel — offsets the tool path by the cutter's radius so you can program the finished part profile directly. The offset amount comes from the D-code / tool table. |
| D-code | The address (Dnn) that selects which cutter-radius (diameter) offset the control applies during G41/G42. |
| Gauge line | The reference plane on the tool-holder taper (typically the spindle-nose face) from which tool length is measured. A tool length offset is the distance from the gauge line to the tool tip. |
| Geometry offset | The nominal, measured size of a tool — its length or diameter/radius — stored separately from the wear offset. Geometry is set once at tool setting; wear carries the small running correction. |
| H-code | The address (Hnn) that selects which tool-length offset the control applies with G43/G44 (tool length compensation). |
| Offset memory type A / B / C | Three Fanuc schemes for storing tool offsets: Type A keeps one combined value per number, Type B splits geometry from wear, and Type C keeps H-code (length) and D-code (diameter) offsets independent. See Tool Offset Variables. |
| Tool length offset (TLO) | The compensation (G43 Hnn, cancel G49) that shifts Z by the tool's length so every tool cuts from the same programmed Z regardless of how far it protrudes from the holder. |
| Tool nose radius compensation (TNRC) | The lathe counterpart of cutter comp (G41/G42/G40) that corrects for the rounded nose of a turning insert so tapers and radii finish to size; it needs a tool-tip orientation (imaginary tool nose) code. |
| Tool presetter | An off-machine or on-machine gauge that measures a tool's length and diameter before use, so the values can be loaded into the tool table without cutting a test part. |
| Tool table | The control's table of per-tool data — length and radius geometry, wear, and often tool life and tool type — indexed by tool or offset number. |
| Wear offset | A small correction added to the geometry offset to account for tool wear or to dial a dimension to size, adjustable right at the machine without disturbing the measured geometry value. |
| Programming | |
| Block | One line of an NC program, terminated by end-of-block (newline or ;). A block is built from words and may be numbered with an N word. |
| Block skip | The slash (/) at the start of a block, which the control ignores when its Block Skip (Optional Block Skip) switch is on — used to make optional moves such as a probing pass switchable at the panel. |
| Canned cycle | A single G-code that performs a fixed multi-move operation — drilling, peck drilling, tapping, boring (G73–G89) — so the sequence need not be programmed move by move. Custom cycles can be built as macros; see Custom G/M Cycles. |
| Conversational programming | Building a program by filling in guided on-screen forms rather than writing G-code, letting the control generate the toolpath. Examples include MAZATROL, ShopMill/ShopTurn, and Heidenhain Klartext — see MAZATROL Programming. |
| DNC / drip-feed | Running a program straight from an external computer, streamed block by block over a serial or network link because it is too large to fit in control memory (Direct / Distributed Numerical Control). |
| DPRNT | A Fanuc macro command that outputs formatted text — probe results, SPC data, part counts — to an external device between POPEN and PCLOS. See External Output / DPRNT. |
| Macro | A parametric subprogram that uses variables, arithmetic, and logic (Fanuc Custom Macro B) to make decisions and compute values at run time; called with G65/G66. See Macro Structure. |
| MDI (Manual Data Input) | A control mode for keying in and running a few blocks by hand — to change a tool or orient the spindle, say — without loading a stored program. |
| Modal / non-modal | A modal command stays in effect until cancelled or replaced by another in its group (e.g. G01); a non-modal (one-shot) command acts only in the block it appears in (e.g. G04 dwell). |
| Modal group | A set of G-codes that switch each other off because only one can be active at a time (e.g. Group 1 motion: G00/G01/G02/G03). The active code of each group is readable from system variable #4001 up — see Modal & Position Data. |
| Parametric programming | Writing one variable-driven program that machines a whole family of parts by changing inputs instead of coordinates. See Parametric Programming. |
| Single block | A run mode that executes one block per cycle-start press, used to prove out a new program cautiously. |
| Subprogram | A reusable program called from another (M98 on Fanuc, returning with M99), used for repeated features and to keep the main program short. |
| Word | The basic unit of an NC block: an address letter plus a number (e.g. G01, X2.5, F10.). Each word tells the control one thing. |
| Macro & variables | |
| Common variable | A macro variable shared across all programs and macro levels — on Fanuc #100–#199 (volatile) and #500–#999 (retained through power-off). See Variable Types. |
| GUD (Global User Data) | SINUMERIK user-defined global variables, declared in definition files, that persist and are visible across all programs — the Siemens counterpart to Fanuc common variables. |
| Indirect addressing | Using the value of one variable as the number of another, written #[expression] on Fanuc, to build array-like lookups and loops. See Variable Types. |
| Local variable | A macro variable (#1–#33) private to one macro call level and used to receive G65 arguments; reset to null when the level returns. See Argument Variables. |
| Null / vacant | A variable that has never been assigned, or was cleared (Fanuc #0). Null is not zero — it drops the address from a block and compares differently — and confusing the two is the number-one source of macro bugs. See Variable Types. |
| Q parameter | Heidenhain's arithmetic variables (Q, QL, QR, QS) used for calculation, FN functions, and parametric Klartext programs — the Heidenhain equivalent of Fanuc macro variables. See Heidenhain TNC Series Guide. |
| R parameter | SINUMERIK arithmetic variables (R0, R1, …) used for calculation and passing values; the classic Siemens counterpart to Fanuc macro variables. See SINUMERIK Programming Basics. |
| System variable | A reserved variable that reads or writes the control's internal state — positions, offsets, modal codes, alarms, clock (Fanuc #1000 and up). See Fanuc System Variables. |
| Probing & metrology | |
| Calibration | Measuring a probe's stylus-ball offsets and effective trigger radius against a known reference (a ring gauge or calibration sphere) and storing the results, so probed positions read true. Recalibrate after any stylus change. |
| In-process gauging | Measuring the part on the machine during the cycle with a probe and feeding the result back to update offsets or accept/reject the part, rather than waiting for offline inspection. |
| Protected positioning move | A probe move that halts safely if the stylus touches anything unexpected before reaching the target, used to approach features without risking a crash into the sensor. |
| Skip signal (G31) | A feed move that stops the instant an external signal (the probe trigger) goes true, latching the stopped position into system variables (#5061 and up). It is the primitive underneath every probing routine. |
| Tool setter | A bench- or table-mounted trigger device that measures tool length and diameter, and detects breakage, by touching the tool off it on the machine. |
| Touch-trigger probe | A spindle- or turret-mounted sensor that emits a signal the moment its stylus contacts a surface, letting the control record the position for setting offsets and inspecting features. |
| Control terms | |
| CAM | Computer-Aided Manufacturing software that generates toolpaths from a CAD model; its neutral output is turned into machine-specific G-code by a post-processor. |
| EIA / ISO | The two names for standard G-code/M-code programming — EIA RS-274 (US) and ISO 6983 (international) — used to distinguish plain G-code from conversational languages such as MAZATROL. |
| Fanuc | The dominant CNC control brand; its G-code dialect and Custom Macro B are the de-facto reference this wiki treats as the baseline. |
| Five-axis (5-axis) | Machining with two rotary axes added to the three linear ones, letting the tool reach any face and hold an optimal cutting attitude. It relies on orientation transforms such as TCPM/TRAORI — see SINUMERIK Transformations & 5-Axis. |
| Heidenhain Klartext | Heidenhain's conversational plain-language (“clear text”) programming format, the native language of TNC controls alongside DIN/ISO. See Heidenhain TNC Series Guide. |
| Kinematics | The geometric description of how a machine's axes are arranged and move — the locations of rotary centers and axis offsets — which the control needs to run transformations and TCPM correctly. |
| MAZATROL | Mazak's conversational, unit-based programming language, an alternative to writing EIA/ISO G-code. See MAZATROL Programming. |
| OSP | Okuma's control platform, with its own programming and variable environment — common variables (VC) and system variables (VS). See Okuma Variable Types. |
| Post-processor | The CAM module that converts generic toolpath data into the exact G-code dialect a specific machine and control expect — their addresses, cycles, and number formatting. |
| Siemens SINUMERIK | Siemens' CNC control family (828D, 840D sl, SINUMERIK ONE) with its own NC language, R parameters, and transformations. See SINUMERIK Family Guide. |
| TCPM / TRAORI | Tool Center Point Management (Fanuc/Heidenhain TCPM) and its SINUMERIK equivalent TRAORI: a 5-axis mode that keeps the programmed point at the tool tip while the head or table tilts, so the contour stays correct through orientation changes. See SINUMERIK Transformations. |
| Tilted work plane | Defining an inclined machining plane (Heidenhain PLANE / Cycle 19, Fanuc G68.2, SINUMERIK CYCLE800) so ordinary XY programming and cycles run on an angled face without hand-calculated coordinates. |
See Also
For deeper reference on the terms above: Variable Types and Fanuc System Variables for macro and system variables; Tool Offset Variables for offsets, geometry, and wear; Modal & Position Data for modal groups and work coordinate offsets; Custom G/M Cycles and Parametric Programming for building your own cycles; External Output / DPRNT for data output; and the control guides — SINUMERIK, Heidenhain TNC, and MAZATROL.
References
- Peter Smid, Fanuc CNC Custom Macros, Industrial Press, 2004.
- Fanuc, Operator’s Manual / Parameter Manual, FANUC Corporation.
- Heidenhain, TNC User’s Manuals (Klartext / DIN-ISO Programming), Heidenhain Corporation.
- Siemens, SINUMERIK 840D sl / ONE Programming and Operating Manuals, Siemens AG.
Have a question or want to contribute?
Contact us with corrections, additions, or topics you'd like covered.
Get in Touch