• Note that G and M codes not universal standards, and may vary between machines. In any case of doubt, the manuals for the machine should be checked.

• A basic list of ‘G’ operation codes is given below. These direct motion of the tool.

G00 - Rapid move (not cutting)

G01 - Linear move

G02 - Clockwise circular motion

G03 - Counterclockwise circular motion

G04 - Dwell

G05 - Pause (for operator intervention)

G08 - Acceleration

G09 - Deceleration

G17 - x-y plane for circular interpolation

G18 - z-x plane for circular interpolation

G19 - y-z plane for circular interpolation

G20 - turning cycle or inch data specification

G21 - thread cutting cycle or metric data specification

G24 - face turning cycle

G25 - wait for input #1 to go low (Prolight Mill)

G26 - wait for input #1 to go high (Prolight Mill)

G28 - return to reference point

G29 - return from reference point

G31 - Stop on input (INROB1 is high) (Prolight Mill)

G33-35 - thread cutting functions (Emco Lathe)

G35 - wait for input #2 to go low (Prolight Mill)

G36 - wait for input #2 to go high (Prolight Mill)

G40 - cutter compensation cancel

G41 - cutter compensation to the left

G42 - cutter compensation to the right

G43 - tool length compensation, positive

G44 - tool length compensation, negative

G50 - Preset position

G70 - set inch based units or finishing cycle

G71 - set metric units or stock removal

G72 - indicate finishing cycle (EMCO Lathe)

G72 - 3D circular interpolation clockwise (Prolight Mill)

G73 - turning cycle contour (EMCO Lathe)

G73 - 3D circular interpolation counter clockwise (Prolight Mill)

G74 - facing cycle contour (Emco Lathe)

G74.1 - disable 360 deg arcs (Prolight Mill)

G75 - pattern repeating (Emco Lathe)

G75.1 - enable 360 degree arcs (Prolight Mill)

G76 - deep hole drilling, cut cycle in z-axis

G77 - cut-in cycle in x-axis

G78 - multiple threading cycle

G80 - fixed cycle cancel

G81-89 - fixed cycles specified by machine tool manufacturers

G81 - drilling cycle (Prolight Mill)

G82 - straight drilling cycle with dwell (Prolight Mill)

G83 - drilling cycle (EMCO Lathe)

G83 - peck drilling cycle (Prolight Mill)

G84 - taping cycle (EMCO Lathe)

G85 - reaming cycle (EMCO Lathe)

G85 - boring cycle (Prolight mill)

G86 - boring with spindle off and dwell cycle (Prolight Mill)

G89 - boring cycle with dwell (Prolight Mill)

G90 - absolute dimension program

G91 - incremental dimensions

G92 - Spindle speed limit

G93 - Coordinate system setting

G94 - Feed rate in ipm (EMCO Lathe)

G95 - Feed rate in ipr (EMCO Lathe)

G96 - Surface cutting speed (EMCO Lathe)

G97 - Rotational speed rpm (EMCO Lathe)

G98 - withdraw the tool to the starting point or feed per minute

G99 - withdraw the tool to a safe plane or feed per revolution

G101 - Spline interpolation (Prolight Mill)

• M-Codes control machine functions and these include,

M00 - program stop

M01 - optional stop using stop button

M02 - end of program

M03 - spindle on CW

M04 - spindle on CCW

M05 - spindle off

M06 - tool change

M07 - flood with coolant

M08 - mist with coolant

M08 - turn on accessory #1 (120VAC outlet) (Prolight Mill)

M09 - coolant off

M09 - turn off accessory #1 (120VAC outlet) (Prolight Mill)

M10 - turn on accessory #2 (120VAC outlet) (Prolight Mill)

M11 - turn off accessory #2 (120VAC outlet) (Prolight Mill) or tool change

M17 - subroutine end

M20 - tailstock back (EMCO Lathe)

M20 - Chain to next program (Prolight Mill)

M21 - tailstock forward (EMCO Lathe)

M22 - Write current position to data file (Prolight Mill)

M25 - open chuck (EMCO Lathe)

M25 - set output #1 off (Prolight Mill)

M26 - close chuck (EMCO Lathe)

M26 - set output #1 on (Prolight Mill)

M30 - end of tape (rewind)

M35 - set output #2 off (Prolight Mill)

M36 - set output #2 on (Prolight Mill)

M38 - put stepper motors on low power standby (Prolight Mill)

M47 - restart a program continuously, or a fixed number of times (Prolight Mill)

M71 - puff blowing on (EMCO Lathe)

M72 - puff blowing off (EMCO Lathe)

M96 - compensate for rounded external curves

M97 - compensate for sharp external curves

M98 - subprogram call

M99 - return from subprogram, jump instruction

M101 - move x-axis home (Prolight Mill)

M102 - move y-axis home (Prolight Mill)

M103 - move z-axis home (Prolight Mill)

• Other codes and keywords include,

Annn - an orientation, or second x-axis spline control point

Bnnn - an orientation, or second y-axis spline control point

Cnnn - an orientation, or second z-axis spline control point, or chamfer

Fnnn - a feed value (in ipm or m/s, not ipr), or thread pitch

Innn - x-axis center for circular interpolation, or first x-axis spline control point

Jnnn - y-axis center for circular interpolation, or first y-axis spline control point

Knnn - z-axis center for circular interpolation, or first z-axis spline control point

Lnnn - arc angle, loop counter and program cycle counter

Nnnn - a sequence/line number

Onnn - subprogram block number

Pnnn - subprogram reference number

Rnnn - a clearance plane for tool movement, or arc radius, or taper value

Qnnn - peck depth for pecking cycle

Snnn - cutting speed (rpm), spindle speed

Tnnn - a tool number

Unnn - relative motion in x

Vnnn - relative motion in y

Wnnn - relative motion in z

Xnnn - an x-axis value

Ynnn - a y-axis value

Znnn - a z-axis value

; - starts a comment (proLight Mill), or end of block (EMCO Lathe)