g代码详解(g代码大全用法)
导语:G-code代码新手教程!一招提高你的3D打印技巧
G代码是连接电脑和3d打印机的“桥梁”,利用G代码,我们可以通过电脑“告诉”3d打印机什么时候打印,在哪儿打印,如何移动,挤出多少等。
现实中Cura和Simplify3D是我们使用得最多的两款切片软件,而这类型的切片软件会从CAD模型中“自动”生成G代码, 所以大部分用户没见过或编写过单行代码。但是,如果我们想要对3D打印有更深的理解,清楚G-code这种程序语言是很有必要的!
这是因为,了解G代码的你可以很好的充当打印机的故障检测员,控制打印过程的各个方面,在故障发生前就可以识别并防止打印失败。
听起来是不是很有趣?下面让我们一起来看看如何看懂并理解G代码、如何自己编写代码并在线测试、如何使用切片的G代码预览功能来解决复杂的版画~
一、什么是G代码?
G代码代表“几何码”。它的主要功能是指导机器头如何在3个维度上几何移动。不过,它也可以指示机器做非几何的东西。例如,G代码可以命令3D打印机用指定的挤出速度挤压材料或改变其床温。
从专业术语角度,G代码是一种数控编程语言。对于那些知道如何编程的人来说,G代码是一种简单的编程语言。这是最基本的代码,没有先进的结构比如可变因素、条件结构和循环结构。
对于那些不知道如何编程的人来说,我们可以认为是将G代码作为指令的顺序线。每行告诉打印机做一个特定的任务。打印机一行一行地执行,直到它结束。
二、如何读懂G代码
当屏幕上布满着密密麻麻的G代码时,乍一看还蛮令人头晕目眩的。但当你一行一行细细地去思考时,会发现这些代码还是挺简单的!如:
这一行告诉打印机向目的地直线移动,目的地坐标x = 9.2,y=-5.42,和Z = 0.5,进给速度为3000。
那么我们应该如何理解呢?其实G代码的每一行以命令开头。在这个例子中,命令是G1,而命令后面出现的代码段称为参数。
这意味着“以受控的方式直线运动”(查看文末附录二可查看每一个G代码命令的意义)。
每个参数告诉打印机如何执行命令。参数以英文字母开头,然后指定一个值。例如,X-9.2意味着终点X坐标- 9.2。F3000.0意味着进给速度(F)是3000。E0.0377意味着挤出率(E)是0.0377。
从字母G开始的命令是几何命令,它们告诉打印机头如何移动,但这显然不足以控制3D打印机的所有方面。如果你需要告诉打印机关掉电机或提高床温呢?对于这些非几何任务,G代码的实现还定义了一组以字母M开头的命令,它们被贴切地称为M码。命令M140设置床温,命令M190使打印机等待达到目标温度。
你在G代码中遇到的每一个英文字母都有特定的意义。例如,G表示几何命令,M表示非几何命令,x表示x坐标,y表示y坐标,f表示进给速度等。其实在G-M代码中有时候还会掺杂一些其它字母标示参数意义,比如T、S、F、P等,具体意义见下表。
(ps:表中 nnn 表示的是数字)
三、一些常用的G代码命令
正如指令G1:以直线的方式控制喷嘴。这只是众多G代码命令中的其中一个,下面,我们将讨论其他一些我们会使用到的重要的G代码命令。
1、G0(快速移动)
G0命令让打印头以最大行程速度从当前位置移动到命令指定的坐标处。打印头将以协调的方式移动,使得两个轴同时完成路径。
执行此命令时,喷嘴不会挤压任何材料。这个命令通常用于将喷嘴迅速地送到打印开始或打印时所需的坐标处。
2、G1(可控移动)
G1命令让打印头以指定的速度从当前位置移动到由命令指定的协调位置,其中速度由进给速度参数F指定。打印头将以协调的方式移动,使得两个轴同时完成路径。
当打印机执行此命令,挤出速率参数E确定了挤出率时,打印机可以挤出材料。
3、G17/G18/G19(选择平面)
这些G代码指令设置喷嘴应该移动到哪个平面。通常,G17是大多数机器的默认,它表示x-y平面。而G18、G19分别表示的是Z-X平面和Y-Z平面。
4、G20/G21(单位设置)
这些指令设置的是代码单位:G20代表英寸,G21表示毫米。两者间差异很大,这是因为图中G20意味着“迅速移动到x = 7英寸和Y = 18英寸”
G21意味着“迅速移动到x = 7毫米和Y = 18毫米”。
5、G28(返回参考点)
G28命令让机器返回参考点,如返回初始位置:
6、G90(绝对值指令)
绝对值指令让机器将坐标解释为绝对坐标,这意味着一个命令:将机器头移动到坐标x = 10。
7、G91(增量值指令)
增量值指令与绝对值指令相反,它让机器将坐标解释为相对坐标。如果机器当前是x = 10,则以下命令是告诉机器从当前位置向X方向移动10个单位。在操作结束时,机器头将位于坐标x = 20处。
8、G2(顺时针方向移动)
G2让机器从其当前位置开始顺时针移动,端点由坐标X和Y指定。旋转中心由参数 I 确定,它表示旋转中心的当前位置的X偏移量。J表示旋转中心的当前位置的Y偏移量。
9、G3(逆时针方向移动)
就像G2命令,G3命令创建一个圆周运动,但它是逆时针方向。
10、Code comments(代码注释)
现实中的G代码文件,除了G代码命令和参数,它还包含用浅显的英语写的别的东西。 其实“;”后面的内容为解释性语句,即注释,固件会忽略其内容。为了减少通信量,可以把注释信息都去掉。
程序员通常需要用简单的英文写下解释,一方面可以预防自己遗忘掉,另一方面以便其他程序员能够理解某一行或部分代码的意思。
五、一个成熟的G代码程序的结构
大多数的G代码程序包含三个重要部分。第一部分打印过程中初始化打印机。第二部分指示打印机打印模型。第三部分在打印完成后将打印机重置为默认配置。具体如下
1、初始阶段
在打印开始之前需要执行某些任务。例如,我们需要加热打印床,加热挤出机,清洗喷嘴,将喷嘴移动到起始位置等。这些任务是所有程序的第一部分。
这是一个实际的3D打印任务的前五行的初始化代码。就此,在最后的参考表的帮助下,你应该能看并理解他们。
第一行将坐标设置为绝对坐标。第二行设置挤出机的挤出率为绝对值。第三行打开风扇,但设置速度为0,这基本上意味着风扇关闭。第四行设置床温为100度。第五行是指,在这种情况下,打印机等待床温达到期望值100℃。
在初始化阶段,打印机将不会挤压任何材料,除非它是在清洗喷嘴。这是一个简单的方法来区分初始化阶段停止和实际打印开始。在实际的打印过程中,打印机几乎每一步都在挤出材料。
2、打印阶段
3D打印机逐层打印模型。像simplify3d或Cura这类的切片软件通常将三维模型分成多个水平层,堆叠在彼此的顶部来完成最终的打印。
因此,打印阶段包括在X-Y平面移动(印刷一层),然后在Z方向移动(移动到下一层)随后在X Y平面再移动(打印下一层)。具体如下:
3、重置打印机
最后,当打印结束时,最后的一些G代码行会将打印机重置到默认状态。例如,喷嘴回到原点,加热关闭(无论是热床或是挤出机)和电机禁用。
六、输入和输出
到目前为止,我们只谈到了计算机发送指令到打印机,看来传达指令是一种方式。但是3D打印实际上涉及计算机和打印机之间的双向通信。
当你点击您的计算机上的“打印”按钮时,3D打印软件开始发送指令到打印机,一次一行。打印机执行指令并反馈给计算机。如果反馈的指示没有错误,则计算机将发送要执行的下一行代码。打印机的反馈通常遵循以下格式:
其中:
• ok 意味着没有检测到错误。这提示计算机发送的G代码的下一行到打印机。
• rs 表示“重新发送指令”。这通常是重发代码行。
• 两个感叹号(!!)意味着硬件错误。在这种情况下,机器立即关闭,打印作业中止。
除了这3个反馈,打印机还可以报告打印机参数到计算机,如温度,喷嘴的坐标等。如对M105(查看文末附录二可查看每一个G代码命令的意义)命令温度反馈,反馈的格式会是:
其中:T表示挤出机温度,B表示床层温度。如果机器没有温度传感器,则-273将作为一个值被返回。
对M114和M117(查看文末附录二可查看每一个G代码命令的意义)命令坐标反馈,反馈的格式会是:
这里,C代表“坐标跟随”,也就是当前x,y,Z坐标和其他信息。
七、用G代码预览的功能防止打印失败
在复杂的3D模型打印中,成功与失败的关键在于是否会利用G代码预览功能。一般来说,当你想打印一个复杂的三维模型时,我们最好是使用G代码查看器,检查每一步的打印步骤。
之所以这样做,是因为自动生成的G代码往往不会很理想,容易导致打印失败。在这种情况下,我们需要修改代码以确保打印成功。
附录1:兼容性说明
每台3D打印机都会自带一些固件,而这些固件的开发者往往都有自己编程风格。这就造成了兼容性问题,适合一种机器的G代码,未必就一定适合其它的机子!
当然,我们可以通过联机的方式来处理这个问题~
附录2:G代码命令的意义
(本文为ANYCUBIC原创内容,禁止抄袭,如需转载请注明来源)
本文内容由小鸣整理编辑!