12、G、M代码详解
(2017-05-06 08:57:15)
标签:
开源软件gcodeg代码 |
分类: 3D打印 |
介绍
本页面描述了G代码在RepRap固件中的使用,以及它们如何工作。
G代码还是可扩展的。
一个典型的G代码发送到RepRap机器:
N3 T0*57
N4 G92 E0*67
N5 G28*22
N6 G1 F1500.0*82
N7 G1 X2.0 Y2.0 F3000.0*85
N8 G1 X3.0 Y3.0*33
(该行结束要标记和。如果你想使用Arduino的串行接口手动输入reprap GCodes,在底部应选择“NL&CR”。)
这是不准确的,固件接受的单,以及单,或其组合。
一、3D打印机的固件(firmware)介绍
二、代码详解
1、前缀
字母 |
意义 |
Gnnn |
标准 |
Mnnn |
RepRap定义的命令,例如打开一个冷却风扇 |
Tnnn |
选择工具代码。 |
Snnn |
命令参数, |
Pnnn |
命令参数, |
Xnnn |
X坐标, |
Ynnn |
Y坐标, |
Znnn |
Z坐标, |
Ennn |
挤出长度,用于控制挤出线材的长度. |
Innn |
参数 |
Jnnn |
参数 |
Fnnn |
打印头移动速度单位:毫米每分钟 |
Rnnn |
参数 |
Qnnn |
参数- |
Nnnn |
行码,在发送错误情况后,用来重复输入某行代码(命令)。 |
*nnn |
校验码(Checksum). |
2、注释:G-Code一行中分号“;”后面的内容为解释性语句,即注释。固件会忽略其内容。为了减少通信量,可以把注释信息都去掉。
介绍
G代码还是可扩展的。
一个典型的G代码发送到RepRap机器:
N3 T0*57
N4 G92 E0*67
N5 G28*22
N6 G1 F1500.0*82
N7 G1 X2.0 Y2.0 F3000.0*85
N8 G1 X3.0 Y3.0*33
(该行结束要标记和。如果你想使用Arduino的串行接口手动输入reprap GCodes,在底部应选择“NL&CR”。)
这是不准确的,固件接受的单,以及单,或其组合。
RepRapG代码字段
定义的数字nnn代表。
N3 T0*57
N4 G92 E0*67; So is this
N5 G28*22
将会被RepRap忽略,就如空白行。
例如:N123 [G代码...] * 71
这些行号和校验。
你可以不要这两个
The checksum "cs" for a GCode string "cmd" (including its line number) is computed by exor-ing the bytes in the string up to and not including the * character as follows:
int cs = 0;
for(i = 0; cmd[i]
cs &= 0xff;
这个值作为一个十进制整数*字符命令后追加值。
RepRap固件期望行数每行增加1,如果不发生,它是标记为错误。但你可以使用的M110(见下文)重置计数。
该的RepRap固件存储这些命令在一个环形缓冲区内部执行。
例如:G0 X12
在这种情况下快速移动到X
= 12毫米。
例如:G1 X90.6 Y13.8 E22.4
在一条直线上从目前的(X,Y)点移动到点(90.6,13.8),挤出材料现在开始移动到22.4毫米的长度。
RepRap与材料进给都做出了反应。
将设置为1500毫米/分钟的进给率,那么进给速度会根据上面的去移动。
将设置为1500毫米/分钟的进给速度,然后根据上述加速到进给3000毫米/分钟。
RepRap只是以另一个变量(如,X,Y,Z和E)进行线性插值去处理进给率。
第一个例子显示了如何获得一个恒定的速度运动。
会首先加速,然后从3000毫米/分钟减速至1500毫米/分钟。
挤出机倒退一个给定的数量(例如,以减少其内部的压力,同时空气在流动,以便它不会滴下),只需使用G1发送小于目前的挤压长度的E值。
例如:G28
这将导致RepRap机器移动回其x,y和Z原点的限位开关,被称为“归位”的过程。
如果添加坐标,则刚指定的坐标轴将被清零。
指令G28
X0
将使X和Y轴都为零,但没有Z轴的,它的实际坐标值将被忽略。
下面的命令没有缓冲。
Teacup Firmware缓冲G20,G21,G90和G91。(Teacup Firmware是FiveD RepRap固件的一个完整的重写。它适合ATmega168-based板,比如Arduino Diecimila,以及更大的控制器。)
例如:G4
在这种状态下暂停200毫秒不工作。
例如:G20
从现在开始单位是英寸。
例如:G21
从现在开始单位是毫米。
例如:G90
从现在起,所有的坐标是绝对的,相对的机器的原点。
例如:G91
从现在起,所有的坐标是相对最后一个位置的。
例如:G92
允许编程的绝对零点,通过重置当前位置为指定的值。
若没有指定坐标的G92将重置所有轴为零。
例如:M0
RepRap机器完成其缓冲区中留下任何动作,然后关闭。
例如:M17
例如:M18
禁用步进电机,允许轴的自由移动。
例如:M20
SD卡的根文件夹中的所有文件列出了串口。
确定文件:{SQUARE.G,SQCOM.G,}
后面的逗号是可选的。