定义

很多系统都使用 G0/G1 等常见移动指令,但这不表示所有打印机共用一套完全统一的语言。Marlin 功能可能取决于编译选项;Klipper 有意采用常用指令子集、长名称扩展指令和可配置宏;RepRapFirmware 大量使用 G-code 进行配置;CNC 控制器还有自己的模态组和语义。

在切片软件中选择 flavor,只会改变切片软件准备输出什么。它能说明文件原本面向哪类目标,却不能证明打印机实际安装了哪种固件。厂商分支、机器配置、后处理脚本和自定义宏都可能继续改变文件或执行行为。因此文件头写着 Marlin,只能支持“文件面向 Marlin 兼容方言”,不能写成“这台机器一定运行上游 Marlin”。

实际使用中要注意什么

它是输出约定

Flavor 决定切片软件为目标控制器选择哪些指令形式和默认写法。

同一编号可能含义不同

例如 G28 在打印机场景常表示归位,在 CNC 场景可能表示返回已保存参考位置。

扩展也属于方言

Klipper 长名称指令、RepRapFirmware 表达式、厂商指令和用户宏都可能只在特定环境有效。

它不是固件指纹

配置名称和文件注释不能证明真实固件、版本、已启用功能或宏定义。

G-code 示例

一个概念,三种不能互换的指令

; Same concept, different dialect-specific commands
M900 K0.18 ; Marlin Linear Advance
SET_PRESSURE_ADVANCE ADVANCE=0.04 ; Klipper
M572 D0 S0.10 ; RepRapFirmware

示例展示三类固件配置压力补偿的不同方式;指令名和数值不能当作等价语法跨方言复制。

这个查看器能显示什么

在本查看器中

查看器只处理已经测试过的指令子集,也能从明确注释中识别部分切片软件特征;它不会根据 flavor 标签认证打印机固件。未知宏和控制器专用行为可能没有建模,发送到机器前仍要检查源代码和目标固件文档。

主要资料来源

本说明参考固件文档和 G-code 文件中能直接看到的内容。真实机器最终怎样执行,仍由打印机设置决定。