,cnc machinist,cnc manufacturing,cnc mechanic,cnc mill,cnc milling center,cnc milling companies,cnc milling tools,cnc parts,cnc plasma cutter,cnc plasma cutting,cnc plasma table,cnc production,cnc router table,cnc screw machine,cnc service,cnc swiss,cnc turning,cnc turning center,cnc turning centers,cnc vertical lathe,horizontal cnc,how to cnc machine,machining cnc,manufacturing cnc machines,okuma cnc,plasma cnc machine,production cnc machining,troubleshooting cnc machines,used cnc machine tools,used cnc milling machines,vertical cnc lathe,what can a cnc machine make
Letter addresses
Some letter addresses are used only in milling or only in turning; most are used in both. Bold below are the letters seen most frequently throughout a program.
Variable | Description | Corollary info |
A | Absolute or incremental position of A axis (rotational axis around X axis) | |
B | Absolute or incremental position of B axis (rotational axis around Y axis) | |
C | Absolute or incremental position of C axis (rotational axis around Z axis) | |
D | Defines diameter or radial offset used for cutter compensation | |
E | Precision feed rate for threading on lathes | |
F | Defines feed rate | |
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 size in X axis for G02 or G03 arc commands. Also used as a parameter within some fixed cycles. | |
J | Defines arc size in Y axis for G02 or G03 arc commands. Also used as a parameter within some fixed cycles. | |
K | Defines arc size 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 GOTO 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. |
P | Serves as parameter address for various G and M codes |
|
Q | Peck increment in canned cycles | For example, G73,G83 (peck drilling cycles) |
R | Defines size of arc radius or defines retract height in canned cycles | |
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 sub spindles) 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. |
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 (Smid 2008 shows an example). |
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 | Absolute or incremental position of Y axis | |
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. |