G-Code and M-Code Reference for Milling
These are the common g-codes and m-codes for milling that G-Wizard Editor supports for Mills. Code categories are the groupings for the g-code Wizard (type Ctrl+G for the Wizard). Function tells what the g-code does, Notes gives a little more information such as the parameters, and Tutorial is a link (if any) to a tutorial from our Online G-Code Tutorial that uses G-Wizard Editor to teach how to program the g-code.
Pssst! Hey, if you're here looking up g-codes, maybe you'd like to find an easier way. What could be better than software that tells you exactly what each g-code does in plain English?
That's what G-Wizard Editor is like.
GCode is complicated.
G-Wizard Editor makes it easy.
Code |
Category
|
Function |
Notes |
Tutorials |
||
G00 | Motion |
Move in a straight line at rapids speed. | XYZ of endpoint | |||
G01 | Motion |
Move in a straight line at last speed commanded by a (F)eedrate | XYZ of endpoint | |||
G02 | Motion |
Clockwise circular arc at (F)eedrate | XYZ of endpoint IJK relative to center R for radius |
G02 / G03 Tutorial and Examples | ||
G03 | Motion |
Counter-clockwise circular arc at (F)eedrate | XYZ of endpoint IJK relative to center R for radius |
G02 / G03 Tutorial and Examples | ||
G04 | Motion |
Dwell: Stop for a specified time. | P for milliseconds X for seconds |
Precise Timing and Speed: Dwell, Exact Stop, Backlash Compensation | ||
G05 | Motion |
FADAL Non-Modal Rapids | ||||
G09 | Motion |
Exact stop check | Precise Timing and Speed: Dwell, Exact Stop, Backlash Compensation | |||
G10 | Compensation |
Programmable parameter input | ||||
G15 | Coordinate |
Turn Polar Coordinates OFF, return to Cartesian Coordinates | G15/G16 Polar Coordinates | |||
G16 | Coordinate |
Turn Polar Coordinates ON | G15/G16 Polar Coordinates | |||
G17 | Coordinate |
Select X-Y plane | CNC G-Code Coordinates | |||
G18 | Coordinate |
Select X-Z plane | CNC G-Code Coordinates | |||
G19 | Coordinate |
Select Y-Z plane | CNC G-Code Coordinates | |||
G20 | Coordinate |
Program coordinates are inches | G20 and G21: Unit Conversion | |||
G21 | Coordinate |
Program coordinates are mm | G20 and G21: Unit Conversion | |||
G27 | Motion |
Reference point return check | G28: Return to Reference Point | |||
G28 | Motion |
Return to home position | G28: Return to Reference Point | |||
G29 | Motion |
Return from the reference position | G28: Return to Reference Point | |||
G30 | Motion |
Return to the 2nd, 3rd, and 4th reference point | G28: Return to Reference Point | |||
G32 | Canned |
Constant lead threading (like G01 synchronized with spindle) | ||||
G40 | Compensation |
Tool cutter compensation off (radius comp.) | ||||
G41 | Compensation |
Tool cutter compensation left (radius comp.) | ||||
G42 | Compensation |
Tool cutter compensation right (radius comp.) | ||||
G43 | Compensation |
Apply tool length compensation (plus) | ||||
G44 | Compensation |
Apply tool length compensation (minus) | ||||
G49 | Compensation |
Tool length compensation cancel | ||||
G50 | Compensation |
Reset all scale factors to 1.0 | ||||
G51 | Compensation |
Turn on scale factors | ||||
G52 | Coordinate
|
Local workshift for all coordinate systems: add XYZ offsets | ||||
G53 | Coordinate
|
Machine coordinate system (cancel work offsets) | ||||
G54 | Coordinate
|
Work coordinate system (1st Workpiece) | ||||
G55 | Coordinate
|
Work coordinate system (2nd Workpiece) | ||||
G56 | Coordinate
|
Work coordinate system (3rd Workpiece) | ||||
G57 | Coordinate
|
Work coordinate system (4th Workpiece) | ||||
G58 | Coordinate
|
Work coordinate system (5th Workpiece) | ||||
G59 | Coordinate
|
Work coordinate system (6th Workpiece) | ||||
G61 | Other |
Exact stop check mode | Precise Timing and Speed: Dwell, Exact Stop, Backlash Compensation | |||
G62 | Other |
Automatic corner override | ||||
G63 | Other |
Tapping mode | ||||
G64 | Other |
Best speed path | ||||
G65 | Other |
Custom macro simple call | Subprograms and Macros | |||
G68 | Coordinate |
Coordinate System Rotation | G68 and G69 Tutorial and Examples | |||
G69 | Coordinate |
Cancel Coordinate System Rotation | G68 and G69 Tutorial and Examples | |||
G73 | Canned |
High speed drilling cycle (small retract) | ||||
G74 | Canned |
Left hand tapping cycle | ||||
G76 | Canned |
Fine boring cyle | ||||
G80 | Canned |
Cancel canned cycle | ||||
G81 | Canned |
Simple drilling cycle | ||||
G82 | Canned |
Drilling cycle with dwell (counterboring) | ||||
G83 | Canned |
Peck drilling cycle (full retract) | ||||
G84 | Canned |
Tapping cycle | ||||
G85 | Canned |
Boring canned cycle, no dwell, feed out | ||||
G86 | Canned |
Boring canned cycle, spindle stop, rapid out | ||||
G87 | Canned |
Back boring canned cycle | ||||
G88 | Canned |
Boring canned cycle, spindle stop, manual out | ||||
G89 | Canned |
Boring canned cycle, dwell, feed out | ||||
G90 | Coordinate
|
Absolute programming of XYZ (type B and C systems) | ||||
G90.1 | Coordinate
|
Absolute programming IJK (type B and C systems) | ||||
G91 | Coordinate
|
Incremental programming of XYZ (type B and C systems) | ||||
G91.1 | Coordinate
|
Incremental programming IJK (type B and C systems) | ||||
G92 | Coordinate
|
Offset coordinate system and save parameters | ||||
G92 (alternate) | Motion |
Clamp of maximum spindle speed | S | |||
G92.1 | Coordinate
|
Cancel offset and zero parameters | ||||
G92.2 | Coordinate
|
Cancel offset and retain parameters | ||||
G92.3 | Coordinate
|
Offset coordinate system with saved parameters | ||||
G94 | Motion |
Units per minute feed mode. Units in inches or mm. | ||||
G95 | Motion |
Units per revolution feed mode. Units in inches or mm. | ||||
G96 | Motion |
Constant surface speed | G96: Constant Surface Speed | |||
G97 | Motion |
Cancel constant surface speed | G96: Constant Surface Speed | |||
G98 | Canned |
Return to initial Z plane after canned cycle | ||||
G99 | Canned |
Return to initial R plane after canned cycle | ||||
M-Codes |
||||||
Code |
Category
|
Function |
Notes |
Tutorials |
||
M00 | M-Code |
Program Stop (non-optional) | ||||
M01 | M-Code |
Optional Stop: Operator Selected to Enable | ||||
M02 | M-Code |
End of Program | ||||
M03 | M-Code |
Spindle ON (CW Rotation) | M03 and MDI. | |||
M04 | M-Code |
Spindle ON (CCW Rotation) | ||||
M05 | M-Code |
Spindle Stop | M05 and MDI. | |||
M06 | M-Code |
Tool Change | ||||
M07 | M-Code |
Mist Coolant ON | M07 and MDI. | |||
M08 | M-Code |
Flood Coolant ON | M08 and MDI. | |||
M09 | M-Code |
Coolant OFF | M09 and MDI. | |||
M17 | M-Code |
FADAL subroutine return | ||||
M29 | M-Code |
Rigid Tapping Mode on Fanuc Controls | ||||
M30 | M-Code |
End of Program, Rewind and Reset Modes | ||||
M97 | M-Code |
Haas-Style Subprogram Call | Subprograms and Macros | |||
M98 | M-Code |
Subprogram Call | Subprograms and Macros | |||
M99 | M-Code |
Return from Subprogram | Subprograms and Macros |
Bonus: Check Out our Other CNC Cookbooks for More In-Depth CNC Information!
If you're a CNC Beginnner, check out our CNC Beginner's Cookbook. It'll get you up to speed with a solid CNC foundation fast.
We also have Cookbooks for Feeds and Speeds, G-Code Programming, CNC Manufacturing and Shop Management, DIY CNC, and don't forget the CNC Cookbook Blog--with over 2 million visitors a year it's the most popular CNC blog by far on the web.