gcode 指令參考表

描述

此頁說明了函式 gcode() 所支援的指令、指令格式以及使用方法。
其中指令格式(如: G1 Axes- F- )內的 – 號,代表數值輸入。
各種運動效果請詳見運動方法解說頁面。

G-Code 參考表

G-Code 說明
G1 直線運動
G2 順時針圓弧運動
G3 逆時針圓弧運動
G4 暫停命令
G17 選擇 XY 平面作圓弧運動
G18 選擇 XZ 平面作圓弧運動
G19 選擇 YZ 平面作圓弧運動
G90 絕對位置模式
G91 相對位置模式
G90.1 弧線圓心絕對位置模式
G91.1 弧線圓心相對位置模式
G92 坐標系偏移

G1

G1 Axes- F-

進行直線移動,可搭配 G90 與 G91 指定為絕對模式或相對模式。

  • Axes: 為終點座標
  • F: 為進給速度
使用範例:

1.由當前位置以進給速度 500 直線移動到絕對座標 (10,10,20)

    machine.gcode("G90");
    machine.gcode("G1 X10 Y10 Z20 F500");        

2.將當前位置作為基準,相對移動 (10,-10,20)

        machine.gcode("G91");
        machine.gcode("G1 X10 Y-10 Z20 F500");            

3.當前位置的 X 與 Y 軸位置不變, Z 軸移動到絕對座標 Z=50 的位置

    machine.gcode("G90");
    machine.gcode("G1 Z50 F500");                        

G2、G3

圓心模式:

G2 Axes- Offsets- P- F-

半徑模式:

G2 Axes- R- P- F-

G2 為順時針進行圓弧移動, G3 為逆時針進行圓弧移動,搭配 G17、G18、G19 能指定畫出的圓弧平面與螺旋線軸向。

  • Axes: 為終點座標
  • Offsets: 為圓弧之圓心
  • R: 為圓弧半徑
  • P: 為畫圓之圈數
  • F: 為進給速度

其中圓弧半徑 R 之值可以為負,若為負值則畫出的弧線路徑將大於 180∘。根據不同的參數組合能夠畫出弧、圓、螺旋線等圖形,關於其詳細的運動方法解說請參見運動方法解說

使用範例:

1.在XY平面上以圓心 (50,0,0) 畫出從 (0,0,0) 到 (50,50,0) 的 90∘圓弧

    machine.gcode("G90");
    machine.gcode("G1 X0 Y0 Z0 F500");
    machine.gcode("G2 X50 Y50 I50 J0 F500");//使用圓心模式,圓心為 (50,0,0),作弧至 (50,50,0)

2.在 XY 平面上以圓心 (50,0,0) 畫出從 (0,0,0) 到 (50,50,0) 的 90∘圓弧

    machine.gcode("G90");
    machine.gcode("G1 X0 Y0 Z0 F500");
    machine.gcode("G2 X50 Y50 R50 F500");//使用半徑模式,半徑為 50,順時針作弧至 (50,50,0)

3.在 XY 平面上以圓心 (50,0,0) 畫出從 (0,0,0) 到 (50,50,0) 的 270∘圓弧

    machine.gcode("G90");
    machine.gcode("G1 X0 Y0 Z0 F500");
    machine.gcode("G3 X50 Y50 R-50 F500");//R -50 代表作大弧

4.在 XY 平面上以圓心 (0,50,0) 畫出從 (0,0,0) 到 (50,50,0) 的 90∘圓弧

    machine.gcode("G90");
    machine.gcode("G1 X0 Y0 Z0 F500");
    machine.gcode("G3 X50 Y50 R50 F500"); //使用半徑模式,半徑為 50,逆時針作弧至 (50,50,0)

5.在 XZ 平面上以圓心 (0,0,50) 從 (0,0,0) 開始順時針畫一個圓

    machine.gcode("G90");
    machine.gcode("G1 X0 Y0 Z0 F500");
    machine.gcode("G18");
    machine.gcode("G2 X0 Z0 I0 K50 F500");//起、終點相同,則為一個圓

6.畫出以 XY 為圓弧平面,原點為圓心, Z 軸為高,螺距為 10,從 (50,0,0) 出發到 (50,0,100) 結束順時針的螺旋線

    machine.gcode("G90");
    machine.gcode("G1 X50 Y0 Z0 F500");
    machine.gcode("G17");
    //在xy平面上,以z軸向上作螺旋線 ; P 10代表一共10圈直到目的地。
    machine.gcode("G2 X50 Y0 Z100 I-50 J0 P10 F500");

G4

G4 S-

G4 P-

機器暫停運動一段時間。

  • S: 時間,單位為秒兩者輸入皆為整數
  • P: 時間,單位為毫秒
使用範例:

1.在座標 (50,0,0) 等待 2 秒後直線移動到座標 (0,50,0) 的位置

    machine.gcode("G90");
    machine.gcode("G1 X50 Y0 Z0 F500");
    machine.gcode("G4 S2");
    machine.gcode("G1 X0 Y50 Z0 F500");

2.在座標 (50,0,0) 等待 0.5 秒後直線移動到座標 (0,50,0) 的位置

    machine.gcode("G90");
    machine.gcode("G1 X50 Y0 Z0 F500");
    machine.gcode("G4 P500");
    machine.gcode("G1 X0 Y50 Z0 F500");

G17、G18、G19

G17

G18

G19

指定作弧線運動的平面。若無指定則預設為 G17

  • G17: 指定平面為 XY 平面
  • G18: 指定平面為 XZ 平面
  • G19: 指定平面為 YZ 平面
使用範例:

1.從原點 (0,0,0) 開始,在 XY 平面上順時針畫出圓心在 (50,0,0) 半徑為 50 的圓,在 YZ 平面上逆時針畫出圓心在 (0,0,50) 半徑為 50 的圓

    machine.gcode("G90");
    machine.gcode("G1 X0 Y0 Z0 F500");
    machine.gcode("G17")
    machine.gcode("G2 X0 Y0 I50 J0 F500");
    machine.gcode("G19")
    machine.gcode("G3 Y0 Z0 J0 K50 F500");

2.畫出以 XZ 為圓弧平面, (0,0,50) 為圓心, Y 軸為高,螺距為 10 ,作順時針的螺旋線,從 (0,0,0) 出發到 (0,100,0) 結束。

    machine.gcode("G90");
    machine.gcode("G1 X0 Y0 Z0 F500");
    machine.gcode("G18");
    //以Y軸順時針螺旋線,高度100,共10圈
    machine.gcode("G2 X0 Y100 Z0 I0 K50 P10 F500");

G90、G91

G90

G91

設定位置座標的模式。若無指定則預設為 G90。

  • G90: 使用絕對模式,則 G1、G2、G3 指令中的參數 Axes 值為絕對位置
  • G91: 使用相對模式,則 G1、G2、G3 指令中的參數 Axes 值為相對位置
使用範例:

1.由當前位置直線移動到絕對座標 (10,10,20)

    machine.gcode("G90");
    machine.gcode("G1 X10 Y10 Z20 F500");

2.將當前位置作為基準,相對移動 (10,-10,20)

    machine.gcode("G91");
    machine.gcode("G1 X10 Y-10 Z20 F500");

3.從座標 (50,0,0) 順時針畫一圓心為 (100,0,0) 半徑為 50 的弧,移動到 (150,0,0)

    machine.gcode("G90");
    machine.gcode("G1 X50 Y0 Z0 F500");
    machine.gcode("G2 X150 Y0 I50 J0 F500");

4.從座標 (50,0,0) 順時針畫一圓心為 (100,0,0) 半徑為 50 的弧,移動到 (150,0,0)

    machine.gcode("G90");
    machine.gcode("G1 X50 Y0 Z0 F500");
    machine.gcode("G91");
    machine.gcode("G2 X100 Y0 I50 J0 F500");

G90.1、G91.1

G90.1

G91.1

設定圓心座標的模式。若無指定則預設為 G91.1。

  • G90.1: 使用絕對模式,則 G2、G3 指令中的參數 Offsets 值為絕對位置
  • G91.1: 使用相對模式,則 G2、G3 指令中的參數 Offsets 值為相對位置
使用範例:

1.從座標 (50,0,0) 順時針畫一圓心為 (100,0,0) 半徑為 50 的弧,移動到 (150,0,0)

    machine.gcode("G90");
    machine.gcode("G1 X50 Y0 Z0 F500");
    machine.gcode("G90.1");
    machine.gcode("G2 X150 Y0 I100 J0 F500");

2.從座標 (50,0,0) 順時針畫一圓心為 (100,0,0) 半徑為 50 的弧,移動到 (150,0,0)

    machine.gcode("G90");
    machine.gcode("G1 X50 Y0 Z0 F500");
    machine.gcode("G91.1");
    machine.gcode("G2 X150 Y0 I50 J0 F500");

G92

G92 Axes-

座標系偏移,指定 Axes 為當前位置的座標值。

  • Axes: 當前位置的座標
使用範例:

1.偏移座標系,將當前位置指定為絕對座標 (50,50,50) 。

    machine.gcode("G92 X50 Y50 Z50");

See also


函式庫參考主頁面

The text of the 86Duino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.