For the correct syntax and full description of these codes, consult the relevent machine programming handbook. | The help of HAAS Automation and Heidenhain are gratefully acknowledged in compiling this list. | |||||

ISO Programming - TNC 410, 426, 430 (Milling) | ISO Programming - TNC 407, 415B, 425, 426 (Milling) | ISO Programming - TNC 360 | HAAS VF series fitted with Yasnac, Fanuc or HAAS control (Incomplete - codes above G72 are missing) | Microkinetics MillMaster | Microkinetics TurnMaster | Adolph Numerical Controls M768 for Turning applications |

G00 Straight-line interpolation, Cartesian coordinates, rapid traverse | G00 Straight line interpolation, Cartesian coordinates, rapid traverse | G00 Linear interpolation, Cartesian coordinates, at rapid traverse | G00 Rapid motion | G00 Rapid positioning position | G00 Rapid positioning position | G00 Rapide traverse, Positioning mode |

G01 Straight-line interpolation, Cartesian coordinates | G01 Straight line interpolation, Cartesian coordinates | G01 Linear interpolation, Cartesian coordinates | G01 Linear interpolation motion | G01 Linear cutting move | G01 Linear cutting move | G01 Linear contouring mode |

G02 Circular interpolation, Cartesian coordinates, clockwise | G02 Circular interpolation, Cartesian coordinates, clockwise | G02 Circular interpolation, Cartesian coordinates, clockwise | G02 CW interpolation motion | G02 CW circular cutting move | G02 CW circular cutting move | G02 CW circular motion |

G03 Circular interpolation, Cartesian coordinates, anticlockwise | G03 Circular interpolation, Cartesian coordinates, counterclockwise | G03 Circular interpolation, Cartesian coordinates, counterclockwise | G03 CCW interpolation motion | G03 CCW circular cutting move | G03 CCW circular cutting move | G03 CCW circular motion |

G04 Dwell time with F seconds * | G04 Dwell time F (in seconds) * | G04 Dwell time | G04 Dwell | G04 Dwell in seconds | G04 Dwell in seconds | G04 Dwell, time delay |

G05 Circular interpolation, Cartesian coordinates, without indication of direction | G05 Circular interpolation, Cartesian coordinates, no direction of rotation | G05 Circular interpolation, Cartesian coordinates, no direction of rotation defined | G09 Exact stop | G17 Select XY plane for contouring (default) | G19 Conditional jump | |

G06 Circular interpolation, Cartesian coordinates, tangential contour approach | G06 Circular interpolation, Cartesian coordinates, tangential contour transition | G06 Circular interpolation, Cartesian coordinates, tangential connection | G10 Set offsets | G18 Select XZ plane for contouring | G33 Thread cutting | |

G07 Paraxial positioning block * | G07 Paraxial positioning block * | G07 Single axis positioning block | G12 CW circular pocket milling (Yasnac) | G19 Select YZ plane for contouring | G40 Tool tip radius compensation off | |

G10 Straight-line interpolation, polar coordinates, rapid traverse | G10 Straight line interpolation, polar coordinates, rapid traverse | G10 Linear interpolation, polar coordinates, at rapid traverse | G13 CCW circular pocket milling (Yasnac) | G25 Execute subroutine | G25 Execute subroutine | G41 Tool tip radius compensation left |

G11 Straight-line interpolation, polar coordinates | G11 Straight line interpolation, polar coordinates | G11 Linear interpolation, polar coordinates | G17 XY plane selection | G26 Conditional branch | G26 Conditional branch | G42 Tool tip radius compensation right |

G12 Circular interpolation, polar coordinates, clockwise | G12 Circular interpolation, polar coordinates, clockwise | G12 Circular interpolation, polar coordinates, clockwise | G18 ZX plane selection | G27 Undconditional branch | G27 Undconditional branch | G60 Cancel G61,G62 |

G120 Contour data (applies to G121 to G124) | G120 Contour data (applies to G121 to G124) | G13 Circular interpolation, polar coordinates, counterclockwise | G19 YZ plane selection | G28 Set system or user devined variable to value | G28 Set system or user devined variable to value | G61 Positioning mode |

G121 Pilot drilling | G121 Pilot drilling | G15 Circular interpolation, polar coordinates, no direction of rotation defined | G20 Select inches | G70 Set inch programming (default) | G33 Canned threading cycle | G62 Wait for spindle stop |

G122 Rough-out | G122 Rough-out | G16 Circular interpolation, polar coordinates, tangential connection | G21 Select metric | G71 Set metric programming | G70 Set inch programming (default) | G70 Inch dimensions |

G123 Floor finishing | G123 Floor finishing | G17 Select plane XY, tool axis Z | G28 Return to reference point | G72 Set rotary table scaling | G71 Set metric programming | G71 Metric dimensions |

G124 Side finishing | G124 Side finishing | G18 Select plane ZX, tool axis Y | G29 Return from reference point | G74 Set single quadrant arc mode | G80 Canned cycles off | |

G125 Contour train (machining open contour) | G125 Contour train (machine open contour) | G19 Select plane YZ, tool axis X | G31 Automatic tool diameter measurement (optional) | G75 Set multiple quadrant arc mode | G74 Set single quadrant arc mode | G81 Canned turning cycle |

G127 Cylinder surface | G127 Cylinder surface | G20 Tool axis IV | G36 Automatic work offset measurement (optional) | G79 Canned cycle for milling a deep channel | G75 Set multiple quadrant arc mode | G82 Canned facing cycle |

G13 Circular interpolation, polar coordinates, anticlockwise | G13 Circular interpolation, polar coordinates, counterclockwise | G24 Chamfer with chamfer length R | G37 Automatic tool offset measurement (optional) | G80 Cancel canned cycle | G83 Canned deep hole cycle with chip break | |

G15 Circular interpolation, polar coordinates, without indication of direction | G15 Circular interpolation, polar coordinates, no direction of rotation | G25 Corner rounding with radius R | G40 Cutter compensation cancel | G81 Canned cycle for drilling a hole | G80 Cancel canned cycle | G84 Canned thread cutting cycle |

G16 Circular interpolation, polar coordinates, tangential contour approach | G16 Circular interpolation, polar coordinates, tangential contour transition | G26 Smooth approach of a contour with radius R | G41 2D cutter compensation Left | G82 Canned cycle for spot facing | G81 Canned cycle for turning down outside diameter | G85 Canned paraxial roughing cycle |

G17 Working plane: X/Y; tool axis: Z | G17 Working plane: X/Y; tool axis: Z | G27 Smooth departure from a contour with radius R | G42 2D cutter compensation Right | G83 Canned cycle for deep hole drilling | G82 Canned cycle for reducing part length (part facing) | G86 Canned contour parallel roughing cycle |

G18 Working plane: Z/X; tool axis: Y | G18 Working plane: Z/X; tool axis: Y | G28 Mirror image | G43 Tool length compesation + | G85 Canned boring cycle | G87 Canned contour finishing cycle | |

G19 Working plane: Y/Z; tool axis: X | G19 Working plane: Y/Z; tool axis: X | G29 Define the last programmed position as a pole | G44 Tool length compensation - | G87 Canned drilling cycle with chip break | G88 Canned diameter grooving cycle | |

G20 Tool axis IV | G20 Tool axis: IV | G30 Define the blank form for graphic simulation, MIN point | G47 Text engraving | G89 Canned boring cycle with dwell | G89 Canned face grooving | |

G200 Drilling | G24 Chamfer with length R * | G31 Define the blank form for graphic simulation, MAX point | G49 G43/G44/G143 cancel | G90 Set absolute programming mode | ||

G201 Reaming | G25 Corner rounding with radius R * | G36 Oriented spindle stop | G50 G51 cancel | G91 Set incremental programming mode | G90 Set absolute programming mode | |

G202 Boring | G26 Tangential contour approach with radius R * | G37 Definition of the pocket contour | G51 Scaling (optional) | G92 Set current tool position counters to zero | G91 Set incremental programming mode | |

G203 Universal drilling | G27 Tangential contour departure with radius R * | G38 Stop program run | G52 Set work coordinate system G52 (Yasnac) | G95 Chain to next part program | G92 Set current tool position counters to zero | |

G204 Back boring | G28 Mirror image | G39 Cycle for program call, cycle call with G79 | G52 Set local coordinate coordinate system (Fanuc) | G95 Chain to next part program | ||

G210 Slot milling with reciprocating plunge | G29 Transfer the last nominal position value as a pole (circle center) | G40 No tool compensation (R0) | G52 Set local coordinate coordinate system (HAAS) | |||

G211 Round slot with reciprocating plunge | G30 (G17/G18/G19) MIN point | G41 Tool radius compensation, tool traverse to the left of the contour (RL) | G53 Non-modal machine coordinate selection | |||

G212 Rectangular pocket finishing | G31 (G90/G91) MAX point | G42 Tool radius compensation, tool traverse to the right of the contour (RR) | G54 Select work coordinate system 1 | |||

G213 Rectangular stud finishing | G36 Oriented spindle stop | G43 Lengthening single-axis movements (R+) | G55 Select work coordinate system 2 | |||

G214 Circular pocket finishing | G37 Contour geometry, list of subcontour program numbers | G44 Shortening single-axis movements (R-) | G56 Select work coordinate system 3 | |||

G215 Circular stud finishing | G37 Contour geometry, list of subcontour program numbers | G50 Edit protection at the beginning of a program | G57 Select work coordinate system 4 | |||

G220 Circular pattern | G38 Stop program run | G51 Next tool number (with central tool memory) | G58 Select work coordinate system 5 | |||

G221 Linear pattern | G39 Program call * | G54 Datum shift in a part program | G59 Select work coordinate system 6 | |||

G230 Multipass milling of smooth surfaces | G40 No tool radius compensation | G55 Touch probe function | G60 Unidirectional positioning | |||

G231 Multipass milling of tilted surfaces | G41 Tool radius compensation, left of the contour | G56 Pilot drilling contour pockets (combined with G37) | G61 Exact stop modal | |||

G24 Chamfer with length R * | G42 Tool radius compensation, right of the contour | G57 Roughing out contour pockets (combined with G37) | G64 G61 cancel | |||

G25 Corner rounding with radius R * | G43 Paraxial compensation for G07, lengthening | G58 Contour milling, clockwise (combined with G37) | G65 Macro subroutine call (optional) | |||

G26 Tangential contour approach with radius R * | G44 Paraxial compensation for G07, shortening | G59 Contour milling, counterclockwise (combined with G37) | G68 Rotation (optional) | |||

G27 Tangential contour departure with radius R * | G51 Next tool number (with central tool file) * | G70 Unit of measurement: Inches (at beginning of program) | G69 G68 cancel (optional) | |||

G28 Mirror image | G53 Datum shift in datum table | G71 Unit of measurement: Millimeters (at beginning of program) | G70 Bolt hole circle (Yasnac) | |||

G29 Transfer the last nominal position value as a pole (circle center) | G54 Datum shift in program | G72 Scaling factor | G71 Bolt hole arc (Yasnac) | |||

G30 (G17/G18/G19) min. point | G55 Probing function | G73 Rotation of the coordinate system | ||||

G31 (G90/G91) max. point | G56 Pilot drilling | G74 Slot milling | ||||

G36 Oriented spindle stop | G57 Rough-out | G75 Rectangular pocket milling, clockwise | ||||

G37 Contour geometry, list of subcontour program numbers | G58 Contour milling, clockwise (finishing) | G76 Rectangular pocket milling, counterclockwise | ||||

G37 Contour geometry, list of subcontour program numbers | G59 Contour milling, counterclockwise (finishing) | G77 Circular pocket milling, clockwise | ||||

G38 Program run STOP | G70 Inches (define at start of program) | G78 Circular pocket milling, counterclockwise | ||||

G39 Program call * | G71 Millimeters (define at start of program) | G79 Cycle call | ||||

G40 No tool radius compensation | G72 Scaling factor (reduce or enlarge contour) | G83 Pecking | ||||

G41 Tool radius compensation, left of the contour | G73 Rotation of the coordinate system | G84 Tapping with a floating tap holder | ||||

G42 Tool radius compensation, right of the contour | G74 Slot milling | G85 Rigid tapping | ||||

G43 Paraxial compensation for G07, lengthening | G75 Rectangular pocket milling, clockwise | G90 Absolute workpiece positions | ||||

G44 Paraxial compensation for G07, shortening | G76 Rectangular pocket milling, counterclockwise | G91Incremental workpiece positions | ||||

G51 Next tool number (with central tool file) * | G77 Circular pocket milling, clockwise | G98 Assigning a label number | ||||

G53 Datum shift in datum table | G78 Circular pocket milling, counterclockwise | G99 Tool definition | ||||

G54 Datum shift in program | G79 Cycle call * | |||||

G55 Programmable probing function | G80 Working plane (except TNC 407) | |||||

G56 Pilot drilling | G83 Pecking | |||||

G57 Rough-out | G84 Tapping with floating tap holder | |||||

G58 Contour milling in clockwise direction (finishing) | G85 Rigid tapping | |||||

G59 Contour milling in anticlockwise direction (finishing) | G86 Thread cutting | |||||

G60 Running point tables (not TNC 410) | G98 Set label number * | |||||

G62 Tolerance deviation for fast contour milling (not TNC 410) | G99 With tool number T, length L, radius R * | |||||

G70 Inches (set at start of program) | ||||||

G71 Millimeters (set at start of program) | ||||||

G72 Scaling factor (reduce or enlarge contour) | ||||||

G73 Rotation of the coordinate system | ||||||

G74 Slot milling | ||||||

G75 Rectangular pocket milling in clockwise direction | ||||||

G76 Rectangular pocket milling in anticlockwise direction | ||||||

G77 Circular pocket milling in clockwise direction | ||||||

G78 Circular pocket milling in anticlockwise direction | ||||||

G79 Cycle call * | ||||||

G80 Tilting the working plane | ||||||

G83 Pecking | ||||||

G84 Tapping with a floating tap holder | ||||||

G85 Rigid tapping | ||||||

G86 Thread cutting (not TNC 410) | ||||||

G90 Absolute dimensions | ||||||

G91 Incremental dimensions | ||||||

G98 Set label number * | ||||||

G99 With tool number T, length L, radius R * | ||||||

M00 Stop program run/Spindle STOP/Coolant OFF | M05 Spindle stop | M00 Stop program run / Spindle stop / Coolant off | M00 Stop program | M00 Temporary stop | M00 Temporary stop | M00 Intermediate stop. Require pressing the start button the start button to continue |

M01 Optional program run interruption | M06 Tool change/spindle stop (depending on machine parameter)/Stop program run | M02 Stop program run / Spindle stop / Coolant off. Clear the status display (de-pending on machine parameter) / Return to block 1 | M01 Optional program stop | M02 End of program stop | M02 End of program stop | M01 Optional intermediate stop |

M02 Stop program run/Spindle STOP/Coolant OFF/Clear status display (depending on machine parameter)/Go to block 1 | M08 Coolant ON | M03 Spindle on clockwise | M02 Program end | M03 Spindle ON CW | M03 Spindle ON CW | M02 Program end |

M03 Spindle ON clockwise | M09 Coolant OFF | M04 Spindle on counterclockwise | M03 Spindle forward | M04 Spindle ON CCW | M04 Spindle ON CCW | M03 Spindle clockwise |

M04 Spindle ON counterclockwise | M101 Automatic tool change with sister tool if maximum tool life has expired | M05 Spindle stop | M04 Spindle reverse | M05 Spindle OFF | M05 Spindle OFF | M04 Spindle anti-clockwise |

M05 Spindle STOP | M102 Reset M101 | M06 Tool change / Stop program run (depending on machine parameter) / Spindle stop | M05 Spindle stop | M06 Tool change | M06 Tool change | M05 Spindle stop |

M06 Tool change/Stop program run (depending on machine parameter)/Spindle STOP | M103 Reduce plunging rate to factor F (percent) | M08 Coolant on | M06 Tool change | M08 Coolant on | M08 Coolant on | M06 Tool change |

M08 Coolant ON | M104 Reserved | M09 Coolant off | M08 Coolant on | M09 Coolant off | M09 Coolant off | M08 Coolant on |

M09 Coolant OFF | M105 Machining with first Kv factor | M13 Spindle on clockwise / Coolant on | M09 Coolant off | M10 Vacuum on | M10 Vacuum on | M09 Coolant off |

M101 Automatic tool change with replacement tool if maximum tool life has expired | M106 Machining with second Kv factor | M14 Spindle on counterclockwise / Coolant on | M10 Engage 4th axis brake | M11 Vacuum off | M11 Vacuum off | M30 Program end as M02 but resets control to start at begin of program |

M102 Reset M101 | M109 Constant contouring speed at the tool cutting edge on inside and outside corners | M30 Same function as M02 | M11 Release 4th axis brake | M12 Auxiliary output on | M12 Auxiliary output on | |

M103 Reduce feed rate during plunging to factor F (percentage) | M110 Constant contouring speed at the tool cutting edge on inside corners | M12 Engage 5th axis brake | M13 Auxiliary output off | M13 Auxiliary output off | Other M functions can be programmed into the control - Consult machine tool builder for further information. | |

M105 Machining with first kv factor | M111 Feed rate refers to the tool path center (standard setting) | M13 Release 5th axis brake | M17 Return from subroutine | M17 Return from subroutine | ||

M106 Machining with second kv factor | M112 Insert rounding arc between two straight lines, enter tolerance E | M16 Tool change (same as M06) | M25 Rapide traverse to home position | M25 Rapide traverse to home position | ||

M107 Suppress error message for replacement tool with oversize | M113 Reset M112 | M19 Orient spindle | M39 chuck close | M39 chuck close | ||

M108 Reset M107 | M114 Automatic compensation of the machine geometry when working with tilting axes | M21-M28 Optional pulsed M function | M40 Chuck open | M40 Chuck open | ||

M109 Constant contouring speed at tool cutting edge on circular arcs (increase and decrease feed rate) | M115 Reset M114 | M30 Program end and rewind | M94 Issue controller literal command | |||

M110 Constant contouring speed at tool cutting edge on circular arcs (feed rate decrease only) | M116 Feed rate for rotary axes in mm/min | M31 Chip conveyor forward | M97 Wait for true input state then continue | M97 Wait for true input state then continue | ||

M111 Reset M109/M110 | M126 Optimized traverse of rotary axes | M32 Chip conveyor reverse | M99 Restart part program from beginning | M99 Restart part program from beginning | ||

M112 Enter contour transition between two contour elements; Enter contour deviation tolerance via T | M127 Reset M126 | M33 Chip conveyor stop | ||||

M113 Reset M112 | M13 Spindle ON clockwise/Coolant ON | M34 Increment coolant spigot position | ||||

M114 Automatic compensation of machine geometry during operation with tilting axes | M14 Spindle ON counterclockwise/Coolant ON | M35 Decrement coolant spigot position | ||||

M115 Reset M114 | M30 Same as M02 | M36 Pallet rotate | ||||

M116 Feed rate for angular axes in mm/min | M89 Vacant miscellaneous function or Cycle call, modal | M39 Rotate tool turet | ||||

M118 Superimpose handwheel positioning during program run | M90 Constant contouring speed at inside corners and uncompensated corners | M41 Low gear override | ||||

M120 Pre-calculate radius-compensated contour (LOOK AHEAD) | M91 Coordinates in positioning block are referenced to the machine datum | M42 high gear override | ||||

M124 Contour filter | M92 Coordinates in positioning block are referenced to a position defined by the machine builder | M51-M58 Set optional user M function | ||||

M126 Shorter-path traverse of rotary axes | M93 Reserved | M61-M68 Clear optional user M function | ||||

M127 Reset M126 | M94 Reduce display of rotary axis to value under 360° | M75 set measure point | ||||

M128 Maintaining the position of the tool tip when positioning with tilted axes (TCPM) | M95 Reserved | M76 Disable displays | ||||

M129 Reset M128 | M96 Reserved | M77 Enable displays | ||||

M13 Spindle ON clockwise/Coolant ON | M97 Path compensation on outside corners: points of intersection instead of transition arc | M78 Alarm if skip signal found | ||||

M130 Moving to position in an untilted coordinate system with a tilted working plane | M98 End of path compensation, non-modal | M79 Alarm if skip signal not found | ||||

M14 Spindle ON counterclockwise/Coolant ON | M99 Cycle call, non-modal | M82 Tool unclamp | ||||

M200 Laser cutting: Output programmed voltage directly | Other G functions | M86 Tool clamp | ||||

M201 Laser cutting: Output voltage as function of distance | Simple fixed cycles | M88 Though spindle coolant on | ||||

M202 Laser cutting: Output voltage as function of speed | SL cycles, group 1 | M89 Through spindle coolant off | ||||

M203 Laser cutting: Output voltage as function of time (ramp) | SL cycles, group 2 | M95 Sleep mode | ||||

M204 Laser cutting: Output voltage as function of time (pulse) | Special cycles | M96 Jump if no input | ||||

M30 Same function as M02 | Tool definition | M97 Local sub-program call | ||||

M89 Vacant miscellaneous function or Cycle call, modally effective (depending on machine parameter) | Tool movement | M98 Sub program call | ||||

M90 Only in lag mode: Constant contouring speed at corners | Tool radius compensation | M99 Sub program return or loop | ||||

M91 Within the positioning block: Coordinates are referenced to machine datum | ||||||

M92 Within the positioning block: Coordinates are referenced to position defined by machine tool builder, such as tool change position | ||||||

M94 Reduce display of rotary axis to value less than 360° | ||||||

M97 Machine small contour steps | ||||||

M98 Completely machine open contours | ||||||

M99 Blockwise cycle call | ||||||

*Last Updated on 08/09/00*
*By PC*