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"); |
参见
函式库参考主页面
86Duino 参考资料的文本遵循Creative Commons Attribution-ShareAlike 3.0 许可证。参考资料中的代码示例已发布到公共领域。