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.

TermDefinition
Machine & motion
AxisA 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.
BacklashLost 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 loadThe 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 rateThe 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-aheadA 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 tappingSynchronized 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.
SpindleThe 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
DatumA 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 offsetA shift added on top of every active work offset at once (the external work-zero offset), used to nudge all of G54G59 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 P1P48 (or more). Their values live in system variables from #7001 up — see Modal & Position Data.
G92 offsetA 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 zeroThe 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 tableThe 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 G54G59 (and G54.1 for extended). Values are held in system variables from #5221 up — see Modal & Position Data.
Tooling
Cutter compensationRadius (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-codeThe address (Dnn) that selects which cutter-radius (diameter) offset the control applies during G41/G42.
Gauge lineThe 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 offsetThe 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-codeThe address (Hnn) that selects which tool-length offset the control applies with G43/G44 (tool length compensation).
Offset memory type A / B / CThree 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 presetterAn 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 tableThe 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 offsetA 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
BlockOne 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 skipThe 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 cycleA single G-code that performs a fixed multi-move operation — drilling, peck drilling, tapping, boring (G73G89) — so the sequence need not be programmed move by move. Custom cycles can be built as macros; see Custom G/M Cycles.
Conversational programmingBuilding 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-feedRunning 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).
DPRNTA 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.
MacroA 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-modalA 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 groupA 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 programmingWriting one variable-driven program that machines a whole family of parts by changing inputs instead of coordinates. See Parametric Programming.
Single blockA run mode that executes one block per cycle-start press, used to prove out a new program cautiously.
SubprogramA reusable program called from another (M98 on Fanuc, returning with M99), used for repeated features and to keep the main program short.
WordThe 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 variableA 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 addressingUsing 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 variableA 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 / vacantA 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 parameterHeidenhain'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 parameterSINUMERIK arithmetic variables (R0, R1, …) used for calculation and passing values; the classic Siemens counterpart to Fanuc macro variables. See SINUMERIK Programming Basics.
System variableA 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
CalibrationMeasuring 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 gaugingMeasuring 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 moveA 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 setterA 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 probeA 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
CAMComputer-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 / ISOThe 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.
FanucThe 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 KlartextHeidenhain's conversational plain-language (“clear text”) programming format, the native language of TNC controls alongside DIN/ISO. See Heidenhain TNC Series Guide.
KinematicsThe 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.
MAZATROLMazak's conversational, unit-based programming language, an alternative to writing EIA/ISO G-code. See MAZATROL Programming.
OSPOkuma's control platform, with its own programming and variable environment — common variables (VC) and system variables (VS). See Okuma Variable Types.
Post-processorThe 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 SINUMERIKSiemens' CNC control family (828D, 840D sl, SINUMERIK ONE) with its own NC language, R parameters, and transformations. See SINUMERIK Family Guide.
TCPM / TRAORITool 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 planeDefining 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