EMC2 "G-Code" Quick Reference
| Code | Parameters | Description |
| Motion | (X Y Z A B C U V W apply to all motions) |
| G0 | | Rapid motion |
| G1 | | Coordinated motion ("Straight feed") |
| G2, G3 | I J K or R | Coordinated helical motion ("Arc feed") CW or CCW |
| G4 | P | Dwell (no motion for P seconds) |
| G38.2…G38.5 | | Straight probe |
| G80 | | Cancel motion mode |
| G81, G82 | R L (P) | Drilling cycle without (with) dwell |
| G83, G73 | R L Q | Peck and Chip-break drilling cycles |
| G85, G89 | R L (P) | Boring cycle without (with) dwell |
| G33 | K | Spindle-synchronized motion |
| G33.1 | K | Rigid tapping |
| G76 | P Z I J R K Q H L E | Multipass lathe threading cycle |
| Distance Mode |
| G90 | | Absolute distance mode |
| G91 | | Incremental distance mode |
| G90.1 | | Arc centers I,J,K are absolute |
| G91.1 | | Arc centers I,J,K are relative to the arc's starting point |
| G7 | | X Diameter mode (lathe) |
| G8 | | X Radius mode (lathe) |
| Feed Rate Mode |
| G93 | | Inverse time feed rate |
| G94 | | Units per minute feed rate |
| G95 | | Units per revolution |
| Spindle Control |
| M3, M4 | S | Turn spindle clockwise or counterclockwise |
| M5 | | Stop spindle |
| G96 | S D | Constant surface speed mode (foot/minute or meter/minute) with top speed |
| G97 | | RPM mode |
| Coolant |
| M7 | | Turn mist on |
| M8 | | Turn flood on |
| M9 | | Turn all coolant off |
| Tool Length Offset |
| G43 | H | Use tool length offset from tool table |
| G43.1 | I K | Use specified tool length offset for transient tool |
| G49 | | Cancel tool length offset |
| Stopping |
| M0 | | Pause Program |
| M1 | | Optional Stop |
| M2 | | End Program |
| M1, M30, M60 | Other stop codes |
| Units |
| G20 | | Inches |
| G21 | | Millimeters |
| Plane Selection (affects G2, G3, G81…G89, G40…G42) |
| G17 | | Select XY plane |
| G18 | | Select XZ plane |
| G19 | | Select YZ plane |
| Cutter Radius Compensation |
| G40 | | Cancel cutter radius compensation |
| G41,G42 | D | Start cutter radius compensation left or right |
| G41.1, G42.1 | D L | Start cutter radius compensation left or right, transient tool |
| Path Control Mode |
| G61 | | Exact Path mode |
| G61.1 | | Exact Stop mode |
| G64 | P | Continuous mode with optional path tolerance |
| Return Mode in Canned Cycles |
| G98 | | Retract to prior position |
| G99 | | Retract to R position |
| Other Modal Codes |
| F | | Set Feed Rate |
| S | | Set Spindle Speed |
| T | | Select Tool |
| M50…M53 | P0 (off) or P1 (on) | Feed Override, Spindle Override, Adaptive Feed, Feed Hold |
| G54…G59, G59.1…G59.3 | Select coordinate system |
| Flow-control Codes |
| O … | sub/endsub, while/endwhile, if/else/endif, do/while, call, break/continue/return |
| Non-modal Codes |
| M6 | T | Change tool |
| G4 | P | Dwell (seconds) |
| G10 L1 | P Q R X W Z | Tool offset, radius, orientation setting |
| G10 L10 | P Q R X W Z | Tool offset, radius, orientation setting calculated |
| G10 L2 | P R X Y Z A B C | Coordinate system origin setting |
| G10 L20 | P R X Y Z A B C | Coordinate system origin setting calculated |
| G28, G28.1 | | Return to or Set reference point 1 |
| G30, G30.1 | | Return to or Set reference point 2 |
| G53 | | Motion in machine coordinate system |
| G92 | X Y Z A B C | Offset coordinate systems and set parameters |
| G92.1 | | Cancel offset coordinate systems and set parameters to zero |
| G92.2 | | Cancel offset coordinate systems but do not reset parameters |
| G92.3 | | Apply parameters to offset coordinate systems |
| M101…M199 | P Q | User-defined M-codes |
| (…) | | A comment "…" to the user |
| (MSG,…) | | Display the message "…" to the user (e.g., in a popup) |
| (DEBUG,…#123…#<foo>) | Display the message (with variables substituted) like MSG |
| (PRINT,…#123…#<foo>) | Display the message (with variables substituted) to stderr |