gcode 指令参考表

描述

此页说明了函式gcode()所支援的指令、指令格式以及使用方法。
其中指令格式(如: G1 Axes- F- )内的– 号,代表数值输入。
各种运动效果请详见运动方法解说页面。

G-Code 参考表

G代码 说明
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)

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

2.将当前位置作为基准,相对移动(10,-10,20)

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

3.当前位置的X 与Y 轴位置不变, Z 轴移动到绝对座标Z=50 的位置

1
2
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∘圆弧

1
2
3
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∘圆弧

1
2
3
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∘圆弧

1
2
3
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∘圆弧

1
2
3
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) 开始顺时针画一个圆

1
2
3
4
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) 结束顺时针的螺旋线

1
2
3
4
5
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) 的位置

1
2
3
4
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) 的位置

1
2
3
4
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 的圆

1
2
3
4
5
6
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) 结束。

1
2
3
4
5
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)

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

2.将当前位置作为基准,相对移动(10,-10,20)

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

3.从座标(50,0,0) 顺时针画一圆心为(100,0,0) 半径为50 的弧,移动到(150,0,0)

1
2
3
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)

1
2
3
4
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)

1
2
3
4
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)

1
2
3
4
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) 。

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

参见

运动方法解说()
gcode ()


函式库参考主页面

86Duino 参考资料的文本遵循Creative Commons Attribution-ShareAlike 3.0 许可证。参考资料中的代码示例已发布到公共领域。