CNC ALPHABET
A
B
C
D
Defines diameter or radial offset used for cutter compensation. D is used for depth of cut on lathes.
E
F
Defines feed rate Common units are distance per time for mills (inches per minute, IPM, or millimetres per minute, mm/min) and distance per revolution for lathes (inches per revolution, IPR, or millimetres per revolution, mm/rev)
G
Address for preparatory commands G commands often tell the control what kind of motion is wanted (e.g., rapid positioning, linear feed, circular feed, fixed cycle) or what offset value to use.
H
Defines tool length offset; Incremental axis corresponding to C axis (e.g., on a turn-mill)
I
Defines arc center in X axis for G02 or G03 arc commands. Also used as a parameter within some fixed cycles.
J
Defines arc center in Y axis for G02 or G03 arc commands. Also used as a parameter within some fixed cycles.
K
Defines arc center in Z axis for G02 or G03 arc commands. Also used as a parameter within some fixed cycles, equal to L address.
L
Fixed cycle loop count; Specification of what register to edit using G10 Fixed cycle loop count: Defines number of repetitions ("loops") of a fixed cycle at each position. Assumed to be 1 unless programmed with another integer. Sometimes the K address is used instead of L. With incremental positioning ( G91), a series of equally spaced holes can be programmed as a loop rather than as individual positions. G10 use: Specification of what register to edit (work offsets, tool radius offsets, tool length offsets, etc.).
M
Miscellaneous function Action code, auxiliary command; descriptions vary. Many M-codes call for machine functions, which is why people often say that the "M" stands for "machine", although it was not intended to.
N
Line (block) number in program; System parameter number to be changed using G10 Line (block) numbers: Optional, so often omitted. Necessary for certain tasks, such as M99 P address (to tell the control which block of the program to return to if not the default one) or G.T. statements (if the control supports those). N numbering need not increment by 1 (for example, it can increment by 10, 20, or 1000) and can be used on every block or only in certain spots throughout a program. System parameter number: G10 allows changing of system parameters under program control.
O
Program name For example, O4501. For many years it was common for CNC control displays to use slashed zero glyphs to ensure effortless distinction of letter "O" from digit "0". Today's GUI controls often have a choice of fonts, like a PC does.
P
Serves as parameter address for various G and M codes With G04, defines dwell time value. Also serves as a parameter in some canned cycles, representing dwell times or other variables. Also used in the calling and termination of subprograms. (With M98 , it specifies which subprogram to call; with M99, it specifies which block number of the main program to return to.)
Q
R
Defines size of arc radius, or defines retract height in milling canned cycles For radiuses, not all controls support the R address for G02 and G03, in which case IJK vectors are used. For retract height, the "R level", as it's called, is returned to if G99 is programmed.
S
Defines speed , either spindle speed or surface speed depending on mode Data type = integer. In G97 mode (which is usually the default), an integer after S is interpreted as a number of rev/min (rpm). In G96 mode (CSS), an integer after S is interpreted as surface speed —sfm ( G20 ) or m/min (G21 ). See also Speeds and feeds . On multifunction (turn-mill or mill-turn) machines, which spindle gets the input (main spindle or subspindles) is determined by other M codes.
T
Tool selection To understand how the T address works and how it interacts (or not) with M06 , one must study the various methods, such as lathe turret programming, ATC fixed tool selection, ATC random memory tool selection, the concept of "next tool waiting", and empty tools. Programming on any particular machine tool requires knowing which method that machine uses. Ways of obtaining this training are mentioned in the comments for M06.
U
Incremental axis corresponding to X axis (typically only lathe group A controls) Also defines dwell time on some machines (instead of " P " or " X "). In these controls, X and U obviate G90 and G91 , respectively. On these lathes, G90 is instead a fixed cycle address for roughing .
V
Incremental axis corresponding to Y axis Until the 2000s, the V address was very rarely used, because most lathes that used U and W didn't have a Y- axis, so they didn't use V. (Green et al. 1996 did not even list V in their table of addresses.) That is still often the case, although the proliferation of live lathe tooling and turn-mill machining has made V address usage less rare than it used to be. See also G18 .
W
Incremental axis corresponding to Z axis (typically only lathe group A controls) In these controls, Z and W obviate G90 and G91 , respectively. On these lathes, G90 is instead a fixed cycle address for roughing .
X
Absolute or incremental position of X axis. Also defines dwell time on some machines (instead of " P " or " U ").
Y
Z
Absolute or incremental position of Z axis The main spindle's axis of rotation often determines which axis of a machine tool is labeled as Z.