文章翻译自官方说明文档,如有错误请积极发言不吝指正
CuraEngine.wiki - Gcode Export
导出为 GCode
在切片过程结束时,CuraEngine 将创建一个完整的计划,其中包含打印机必须执行的所有操作,以便生产所需的产品。该计划在 CuraEngine 的内部数据结构中表示,现在必须转换为 G 代码。转换作为单独的线程与规划阶段并行进行,以节省内存使用。
翻译GCode
从 CuraEngine 的内部数据结构到 G 代码有一个一对一的映射,因此转换步骤非常简单:
- 路径转换为
G1
命令,命令的参数中包含路径的目标坐标。 - 旅行移动被转换为
G0
命令,同样只有目的地坐标。 - 根据打印机是否需要等待,加热命令将转换为
M104
或M109
命令。 - 根据打印机是否需要等待,使用
M140
或M190
命令更改床温度。
如此等等。CuraEngine 实现了几十个不同的命令。CuraEngine 只实现了 G 代码,因此如果输出需要不同的格式(如 X3G),Cura 的前端将安排从 G 代码到最终格式的转换。
更改状态
路径在内部表示中有几个属性。每个路径具有线宽、速度、风扇速度、加速度、急动度、层厚度和流量。如果这些属性中的任何一个(除线宽和层厚外)发生变化,则必须更改该命令或在其之前加上其他命令。
- 如果速度发生变化,则命令必须包括将其设置为正确速度的
F
参数。 - 如果加速度发生变化,则命令之前必须有一个
M204
命令来设置正确的加速度。 - 如果加加速度改变,则命令之前必须有一个
M207
命令来设置正确的加加速度。 - 如果风扇转速发生变化,则命令之前必须有一个
M106
用于调节风扇转速的命令。 - 如果耗材丝必须在此(行进)路径中缩回,则在此之前会有一个单独的缩回命令。对于某些 G 代码风格,这将使用
G10
命令来完成。对于其他人,这将通过一个G1
命令来完成,该命令将E
参数设置为比以前更低的值。
E 参数
每个拉伸 G1
命令都包含一个 E
参数。此参数指示移动时应拉伸多少材料。
CuraEngine 命令喷嘴挤出的材料量等于与线具有相同长度、宽度和深度的长方体的体积。线的长度乘以线的宽度乘以层的高度就是线的体积。将其乘以所需的材料流量比率,并将其与前一命令的 E
参数相加,以获得 E
该命令的参数。尽管在某些 G 代码版本中,该体积还必须除以耗材丝的横截面积,以获得进料器电机必须覆盖的距离。
某些固件无法处理长打印中非常高的 E 值。每次 E
参数超过 10.000 时,使用 G92
命令重置坐标。