在 3D 打印过程中,G 代码控制着打印机的每一个动作,从移动喷头到控制温度。本文将介绍如何逐行读取 G 代码文件,并将这些指令转化为 X、Y、Z 三轴的运动控制,特别是 X 和 Y 轴的同步控制以及 Z 轴的独立控制。
1. 逐行读取 G 代码文件
G 代码文件是由一系列命令组成的文本文件,每一行指示打印机执行一个具体的操作。我们可以通过以下代码逐行读取这些命令:
void loop() {
if (printFile.available()) {
String line = printFile.readStringUntil('\n');
parse_line(line);
} else {
printFile.close();
while (1); // 停止执行
}
}
在这个代码中,readStringUntil('\n')
函数每次读取一行文本,并在遇到换行符时停止。下一次调用时,文件指针自动移到下一行,这样就能依次读取文件的每一行。
2. G 代码指令解析
G 代码文件中的每一行通常以不同的字母开头,如 G 或 M,这代表不同类型的指令。我们可以根据这些前缀解析出相应的指令并执行相应操作:
void parse_line(String line) {
line.trim(); // 去除行首尾的空格
if (line.startsWith("G")) {
parse_g_command(line); // 解析G代码指令
} else if (line.startsWith("M")) {
parse_m_comma