<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <!-- Copyright (C) 2006, 2007 Jeff Epler This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA --> <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <STYLE type="text/css"><!-- table { border: 1px solid black; border-collapse: collapse; } table #titlerow th { border-bottom: 2px solid black; border-left: 2px solid black; text-align: center; } table #titlerow th:first-child { border-bottom: 2px solid black; border-left: 0px; text-align: center; } table td:first-child { border-left: 0px; } table td { border-left: 1px solid black; padding-left: .25em; padding-right: .25em; } table th { text-align: left; border-bottom: 1px solid black; border-top: 1px solid black; } @media print { @page { margin: .150in; } html { padding: 0; margin: 0; } body { padding: 3px; margin: 3px; } * { font-size: 8pt } a { text-decoration: none; color: black; } table { width: 100%; } } td { background: white; color: black; } tr.odd td { background: #d9d9d9; } tr.head td, tr.head th { background: black; color: white; } --></STYLE> <TITLE>LinuxCNC "G-Code" Quick Reference</TITLE> </HEAD> <BODY> <TABLE ID=ref1> <CAPTION> LinuxCNC "G-Code" Quick Reference </CAPTION> <COL id="group"> <COL id="code"> <COL id="params"> <COL id="description"> <TR id="titlerow"> <TH>Code <TH>Parameters <TH>Description </TR> <TR> <TH>Motion <TD COLSPAN=2 STYLE="border-bottom: 1px solid black">(X Y Z A B C U V W apply to all motions) </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G0">G0</A> <TD> <TD> Rapid motion </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G1">G1</A> <TD> <TD> Coordinated motion ("Straight feed") </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G2-G3-Arc">G2, G3</A> <A HREF="gcode/gcode.html#sec:G2-G3-Arc"></A> <TD> I J K or R, P <TD> Coordinated helical motion ("Arc feed") CW or CCW </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G4-Dwell">G4</A> <TD> P <TD> Dwell (no motion for P seconds) </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G5-Cubic-Spline">G5</A> <TD> I J P Q <TD> Cubic spline </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G5_1-Quadratic-Spline">G5.1</A> <TD> I J <TD> Quadratic spline </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G5_2-G5_3-NURBS">G5.2</A> <TD> P L <TD> NURBS, add control point </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G5_2-G5_3-NURBS">G5.3</A> <TD> <TD> NURBS, execute </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G38-probe">G38.2…G38.5</A> <TD> <TD> Straight probe </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G33-Spindle-Sync">G33</A> <TD> K <TD> Spindle-synchronized motion </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G33_1-Rigid-Tapping">G33.1</A> <TD> K <TD> Rigid tapping </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G80-Cancel-Modal">G80</A> <TD> <TD> Cancel motion mode </TR> <TR> <TH>Canned cycles <TD COLSPAN=2>(X Y Z or U V W apply to canned cycles, depending on active plane) </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G81-Drilling-Cycle">G81</A>, <A HREF="gcode/gcode.html#sec:G82-Drilling-Dwell">G82</A> <TD> R L (P) <TD> Drilling cycle without (with) dwell </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G83-Drilling-Peck">G83</A>, <A HREF="gcode/gcode.html#sec:G73-Drilling-Cycle">G73</A> <TD> R L Q <TD> Peck and Chip-break drilling cycles </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G85-Boring-Feed-Out">G85</A>, <A HREF="gcode/gcode.html#sec:G89-Boring-Dwell">G89</A> <TD> R L (P) <TD> Boring cycle without (with) dwell </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G76-Threading-Canned">G76</A> <TD> P Z I J R K Q H L E<TD> Multipass lathe threading cycle </TR> <TR> <TH COLSPAN=3>Distance Mode </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G90-G91">G90</A> <TD> <TD> Absolute distance mode </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G90-G91">G91</A> <TD> <TD> Incremental distance mode </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G90_1-G91_1">G90.1</A> <TD> <TD> Arc centers I,J,K are absolute </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G90_1-G91_1">G91.1</A> <TD> <TD> Arc centers I,J,K are relative to the arc's starting point </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G7-Diameter-Mode">G7</A> <TD> <TD> X Diameter mode (lathe) </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G8-Radius-Mode">G8</A> <TD> <TD> X Radius mode (lathe) </TR> <TR> <TH COLSPAN=3>Feed Rate Mode </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G93-G94-G95-Mode">G93</A> <TD> <TD> Inverse time feed rate </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G93-G94-G95-Mode">G94</A> <TD> <TD> Units per minute feed rate </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G93-G94-G95-Mode">G95</A> <TD> <TD> Units per revolution </TR> <TR> <TH COLSPAN=3>Spindle Control </TR> <TR> <TD> <A HREF="gcode/m-code.html#sec:M3-M4-M5">M3, M4</A> <TD> S <TD> Turn spindle clockwise or counterclockwise </TR> <TR> <TD> <A HREF="gcode/m-code.html#sec:M3-M4-M5">M5</A> <TD> <TD> Stop spindle </TR> <TR> <TD> <A HREF="gcode/m-code.html#sec:M19">M19</A> <TD> <TD> Orient spindle </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G96-G97-Spindle">G96</A> <TD> S D <TD> CSS mode (Constant Surface Speed)</TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G96-G97-Spindle">G97</A> <TD> <TD> RPM mode </TR> <TR> <TH COLSPAN=3>Coolant </TR> <TR> <TD> <A HREF="gcode/m-code.html#sec:M7-M8-M9">M7</A> <TD> <TD> Turn mist on </TR> <TR> <TD> <A HREF="gcode/m-code.html#sec:M7-M8-M9">M8</A> <TD> <TD> Turn flood on </TR> <TR> <TD> <A HREF="gcode/m-code.html#sec:M7-M8-M9">M9</A> <TD> <TD> Turn all coolant off </TR> <TR> <TH COLSPAN=3>Tool Length Offset </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G43">G43</A> <TD> H <TD> Use tool length offset from tool table</TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G43_1">G43.1</A> <TD> I K <TD> Use specified tool length offset for transient tool</TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G49-Tool">G49</A> <TD> <TD> Cancel tool length offset </TR> <TR> <TH COLSPAN=3>Stopping </TR> <TR> <TD> <A HREF="gcode/m-code.html#sec:M0-M1">M0</A> <TD> <TD> Program Pause </TR> <TR> <TD> <A HREF="gcode/m-code.html#sec:M0-M1">M1</A> <TD> <TD> Optional Pause </TR> <TR> <TD> <A HREF="gcode/m-code.html#sec:M2-M30">M2, M30</A> <TD> <TD> End Program </TR> <TR> <TD> <A HREF="gcode/m-code.html#sec:M60">M60</A> <TD> <TD> Pallet Change Pause </TR> <TR> <TH COLSPAN=3>Units </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G20-G21-Units">G20</A> <TD> <TD> Inches </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G20-G21-Units">G21</A> <TD> <TD> Millimeters </TR> <TR> <TH>Plane Selection <TD COLSPAN=2>(affects G2, G3, G81…G89, G40…G42) </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G17-G18-G19">G17</A> <TD> <TD> Select XY plane </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G17-G18-G19">G18</A> <TD> <TD> Select XZ plane </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G17-G18-G19">G19</A> <TD> <TD> Select YZ plane </TR> <TR> <TH COLSPAN=3>Cutter Radius Compensation </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G40">G40</A> <TD> <TD> Cancel cutter radius compensation </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G41-G42">G41,G42</A> <TD> D <TD> Start cutter radius compensation left or right </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G41_1-G42_1">G41.1, G42.1</A> <TD> D L <TD> Start cutter radius compensation left or right, transient tool </TR> <TR> <TH COLSPAN=3>Path Control Mode </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G61-G61_1">G61</A> <TD> <TD> Exact Path mode </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G61-G61_1">G61.1</A> <TD> <TD> Exact Stop mode </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G64">G64</A> <TD> P <TD> Continuous mode with optional path tolerance </TR> <TR> <TH COLSPAN=3>Return Mode in Canned Cycles </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G98-G99-Set">G98</A> <TD> <TD> Retract to prior position </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G98-G99-Set">G99</A> <TD> <TD> Retract to R position </TR> <TR> <TH COLSPAN=3>Other Modal Codes </TR> <TR> <TD> <A HREF="gcode/other-code.html#sec:F-feed-rate">F</A> <TD> <TD> Set Feed Rate </TR> <TR> <TD> <A HREF="gcode/other-code.html#sec:S-spindle-speed">S</A> <TD> <TD> Set Spindle Speed </TR> <TR> <TD> <A HREF="gcode/other-code.html#sec:T-Select-Tool">T</A> <TD> <TD> Select Tool (also see <a href="gcode/m-code.html#sec:M6-Tool-Change">M6</a>)</TR> <TR> <TD> <A HREF="gcode/m-code.html#sec:M48-M49-Override">M48, M49</A> <TD> <TD> Speed and Feed Override Control</TR> <TR> <TD> <A HREF="gcode/m-code.html#sec:M50-Feed-Override">M50</A> <TD> P0 (off) or P1 (on) <TD> Feed Override Control</TR> <TR> <TD> <A HREF="gcode/m-code.html#sec:M51-Spindle-Override">M51</A> <TD> P0 (off) or P1 (on) <TD> Spindle Speed Override Control</TR> <TR> <TD> <A HREF="gcode/m-code.html#sec:M52-Adaptive-Feed-Control">M52</A> <TD> P0 (off) or P1 (on) <TD> Adaptive Feed Control</TR> <TR> <TD> <A HREF="gcode/m-code.html#sec:M53-Feed-Stop-Control">M53</A> <TD> P0 (off) or P1 (on) <TD> Feed Stop Control</TR> <TR> <TD><A HREF="gcode/gcode.html#sec:G54-G59_3">G54…G59.3</A> <TD> <TD> Select coordinate system </TR> <TR> <TH COLSPAN=3>Flow-control Codes </TR> <TR> <TD> <A HREF="gcode/o-code.html#sec:subroutines">O- sub</A> <TD> <TD>Subroutines, sub/endsub call</TR> <TR> <TD> <A HREF="gcode/o-code.html#sec:looping">O- while</A> <TD> <TD>Looping, while/endwhile do/while</TR> <TR> <TD> <A HREF="gcode/o-code.html#sec:conditional">O- if</A> <TD> <TD>Conditional, if/else/endif</TR> <TR> <TD> <A HREF="gcode/o-code.html#sec:repeat">O- repeat</A> <TD> <TD>Run enclosed code more than once</TR> <TR> <TD> <A HREF="gcode/m-code.html#_m70_save_modal_state_a_id_sec_m70_save_modal_state_a">M70</A> <TD> <TD>Save modal state</TR> <TR> <TD> <A HREF="gcode/m-code.html#_m71_invalidate_stored_modal_state_a_id_sec_m71_invalidate_stored_modal_state_a">M71</A> <TD> <TD>Invalidate stored state</TR> <TR> <TD> <A HREF="gcode/m-code.html#_m72_restore_modal_state_a_id_sec_m72_restore_modal_state_a">M72</A> <TD> <TD>Restore modal state</TR> <TR> <TD> <A HREF="gcode/m-code.html#_m73_save_and_autorestore_modal_state_a_id_sec_m73_save_autorestore_modal_state_a">M73</A> <TD> <TD>Save and Auto-restore modal state</TR> <TR> <TH COLSPAN=3>Input/Output Codes </TR> <TR> <TD> <A HREF="gcode/m-code.html#sec:M62-M65">M62…M65</A> <TD> P <TD> Digital Output Control </TR> <TR> <TD> <A HREF="gcode/m-code.html#sec:M66-Input-Control">M66</A> <TD> P E L Q <TD> Digital and Analog Input Control </TR> <TR> <TD> <A HREF="gcode/m-code.html#sec:M67-Analog-Output">M67</A> <TD> T <TD> Analog Output Synchronized with Motion </TR> <TR> <TD> <A HREF="gcode/m-code.html#sec:M68-Analog-Output">M68</A> <TD> T <TD> Analog Output Immediate </TR> <TR> <TH COLSPAN=3>Non-modal Codes </TR> <TR> <TD> <A HREF="gcode/m-code.html#sec:M6-Tool-Change">M6</A> <TD> T <TD> Change tool </TR> <TR> <TD> <A HREF="gcode/m-code.html#sec:M61-Set-Current-Tool-Number">M61</A> <TD> Q <TD> Set Current Tool </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G4-Dwell">G4</A> <TD> P <TD> Dwell (seconds) </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G10-L1_">G10 L1</A> <TD> P Q R <em>axes</em> <TD> Tool offset, radius, orientation setting </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G10-L10">G10 L10</A> <TD> P <em>axes</em> <TD> Tool offset, setting calculated from workpiece</TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G10-L11">G10 L11</A> <TD> P <em>axes</em> <TD> Tool offset, setting calculated from fixture</TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G10-L2_">G10 L2</A> <TD> P R <em>axes</em> <TD> Coordinate system origin, rotation setting </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G10-L20">G10 L20</A> <TD> P <em>axes</em> <TD> Coordinate system origin setting calculated</TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G28-G28_1">G28, G28.1</A> <TD> <TD> Return to or Set reference point 1 </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G30-G30_1">G30, G30.1</A> <TD> <TD> Return to or Set reference point 2 </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G53-Move-in">G53</A> <TD> <TD> Motion in machine coordinate system </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G92">G92</A> <TD> <em>axes</em> <TD> Offset coordinate systems and set parameters </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G92_1-G92_2">G92.1</A> <TD> <TD> Cancel offset coordinate systems and set parameters to zero </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G92_1-G92_2">G92.2</A> <TD> <TD> Cancel offset coordinate systems but do not reset parameters </TR> <TR> <TD> <A HREF="gcode/gcode.html#sec:G92_3">G92.3</A> <TD> <TD> Apply parameters to offset coordinate systems </TR> <TR> <TD> <A HREF="gcode/m-code.html#sec:M100-to-M199">M101…M199</A> <TD> P Q <TD> User-defined M-codes </TR> <TR> <TH COLSPAN=3>Comments & Messages</TR> <TR> <TD> <A HREF="gcode/overview.html#sec:comments">(…)</A> <TD> <TD> An inline comment </TR> <TR> <TD> <A HREF="gcode/overview.html#sec:messages">(MSG,…)</A> <TD> <TD> Display a message "<STRONG>…</STRONG>" to the user (e.g., in a popup)</TR> <TR> <TD> <A HREF="gcode/overview.html#sec:debug-messages">(DEBUG,…)</A> <TD> <TD> Display a message (with variables substituted) like MSG</TR> <TR> <TD> <A HREF="gcode/overview.html#sec:print-messages">(PRINT,…)</A> <TD> <TD> Display a message (with variables substituted) to stderr</TR> </TABLE> <SCRIPT type="text/javascript"><!-- var rows=document.evaluate('//tr', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); var j=0; for(var i=0; i<rows.snapshotLength; i++) { var it = rows.snapshotItem(i); var th = document.evaluate('th', it, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); if(th.snapshotLength) { it.setAttribute('class', 'head'); j = 0; } else { if(j) it.setAttribute('class', 'odd'); j = !j; } } function fixup_urls() { var links=document.evaluate('//a[@href]', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); for(var i=0; i<links.snapshotLength; i++) { var it = links.snapshotItem(i); it.setAttribute('href', "http://linuxcnc.org/docs/devel/html/" + it.getAttribute('href')); } } // In the LinuxCNC package, gcode/gcode.html is (probably) not included. In this // case, fix up the links to point at the online version instead of a local // version if(document.location.protocol == "file:") { try { var x = document.implementation.createDocument("", "", null); x.load("gcode/gcode.html"); x.onerror = fixup_urls; } catch(err) { fixup_urls(); } } // --></SCRIPT> </BODY>