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.