什么是 .bgcode 文件?Prusa 的二进制 G-code 详解
.bgcode 文件是 PrusaSlicer 从 2.7 版起以二进制形式保存的 G-code,据 Prusa 称,它平均比文本格式小约 70%。但任何文本编辑器都读不了它,而且除了 Prusa 的打印机,几乎没有别的东西支持它。下面说说里面有什么、哪些软件能打开它,以及如何把它变回普通的 .gcode。
概览
- 扩展名
- .bgcode
- 类型
- 打印路径(给打印机的指令)
- 创建者
- Prusa Research
- 始于
- 2023
- 标准
- 不是正式标准
- macOS 自身(不装应用)
- 不认识:没有预览,也没有缩略图
信息核对于 2026年11月2日
同样的命令,换了个包装
.bgcode 携带的打印机指令与文本 G-code 文件完全相同:喷嘴往哪里走、挤出多少、保持什么温度。不同的只是包装。文件不再是一整段长文本,而是被分成若干区块,每个区块都可以压缩,并带有自己的校验和。
Prusa 在 2023 年随 PrusaSlicer 2.7 推出了这种格式,并在 GitHub 上的 libbgcode 仓库中公开了规范。所以它是开放的,但不像 STEP 或 3MF 那样是一种标准——它属于 Prusa Research。读写它的库采用 AGPL-3.0 许可证。
这么做有三个理由。文件更小,复制到 U 盘或通过网络传输都更快。打印机能更快找到它需要的内容,因为打印详情和预览图各自放在单独的区块里,不必读完整个打印路径就能拿到。校验和还能发现在传输途中损坏的文件。
内部结构:GCDE 文件头和顺序固定的区块
每个 .bgcode 都以四个字母 GCDE 开头。接着是格式版本(目前只有版本 1)和校验和类型,实际上就是 CRC32。随后是各个区块,顺序始终相同:
- 文件元数据——文件由什么生成;
- 打印机元数据——这次打印针对哪台打印机和哪种喷嘴;
- 缩略图——模型的图片,每个区块一张;
- 打印元数据——预计时间、耗材用量;
- 切片软件元数据——PrusaSlicer 切片时使用的全部设置;
- G-code 区块——打印路径本身。
元数据是简单的 key = value 键值对。PrusaSlicer 用 Heatshrink 压缩打印路径,这是一种为内存很小的设备设计的算法;此外还用 MeatPack 编码,它把 G-code 中最常见的 15 个字符用四位而不是八位来写。MeatPack 最初是一个 OctoPrint 插件,用来加快与打印机之间缓慢的串口连接。
能小多少
Prusa 称,在其测试中,二进制 G-code 平均比文本小约 70%。在 libbgcode 自带的测试数据里,一个小立方体从 641,092 字节缩小到 149,258 字节——略低于四分之一。能省多少取决于模型和打印设置。
哪些能读,哪些不能
| 软件或打印机 | .bgcode |
|---|---|
| 使用 Buddy 固件 5.1.0 或更新版本的 Prusa 打印机(MINI、MK4 和 MK4S、MK3.5、MK3.9、XL、CORE One) | 支持 |
| PrusaSlicer 及其 G-code 查看器 | 支持,并能转换 |
| PrusaLink 和 Prusa Connect | 支持 |
| Repetier-Server | 从 1.4.16 版起 |
| OctoPrint | 仅限安装 BGCode 插件后 |
| Klipper | 不支持 |
| OrcaSlicer、Bambu Studio | 不支持 |
| Original Prusa MK3S | PrusaSlicer 不为它启用 |
| macOS(访达、快速查看) | 不支持 |
| Preview3D(Mac、iPad、iPhone、Vision Pro) | 支持 |
为什么打印机里看不到这个文件
通常是因为固件太旧。Buddy 固件低于 5.1.0 的 Prusa 打印机根本不会列出 .bgcode 文件,所以 U 盘看起来是空的。请更新固件,或者把文件转换成文本 G-code。
另一个原因是打印机完全不认识这种格式。Klipper 和其他厂商的打印机都不认识,PrusaSlicer 也不会为它们保存这种格式。如果有 Prusa 打印机的人给你发来一个 .bgcode,请把它转换一下。
从 .bgcode 到 .gcode,再转回来
在 PrusaSlicer 中,转换功能位于 File → Convert:
- Convert binary G-code to ASCII 把 .bgcode 转成文本 .gcode;
- Convert ASCII G-code to binary 则反过来。
如果你更喜欢命令行,libbgcode 附带一个 bgcode 工具。bgcode model.bgcode 会在旁边写出一个文本的 model.gcode。
要让 PrusaSlicer 完全不再保存 .bgcode,请打开 Preferences(在 Mac 上位于 PrusaSlicer 菜单中,⌘ ,),进入 Other 标签页,关闭 Use binary G-code when the printer supports it。这个开关从 2.7.1 版起才有。2.7.0 版会为所有支持它的打印机默认保存 .bgcode——结果也弄坏了向 OctoPrint 的上传。
如何在 Mac、iPad 或 iPhone 上查看 .bgcode 的内容
macOS 对 .bgcode 一无所知。它没有对应的文件类型,访达显示空白图标,按空格键(快速查看)也什么都不显示。在 Windows 上有 PowerToys 可以处理;在 Mac 上你需要另外装点东西。
- PrusaSlicer 会在它的 G-code 查看器中打开它,逐层显示打印路径。它是免费的,但为了一个预览你得启动一整套切片软件。
- ThumbHost3mf 为访达添加缩略图,包括 .bgcode。它不显示文件里的内容。
- Preview3D,也就是我的应用,可以在窗口中、在快速查看里以及作为访达缩略图打开 .bgcode。它按类型(外壁、填充、桥接、支撑)给打印路径着色,带有层级滑块,并从元数据中读取打印时间、耗材长度、重量、层高和材料。在 iPad、iPhone 和 Apple Vision Pro 上也一样。

缩略图:给打印机用 QOI,给电脑用 PNG
PrusaSlicer 生成的文件通常包含好几张缩略图。供打印机屏幕使用的是 QOI(Quite OK Image)格式,Prusa 在 5.1.0 固件中采用了它,因为解码 PNG 对打印机来说负担太重。PrusaSlicer 还会再加一张 PNG 图片供电脑使用。
这就解释了为什么有些工具显示不出 .bgcode 的预览:它们读不了 QOI。Preview3D 在访达中使用的是那张 PNG。
常见问题
.bgcode 比 .gcode 更好吗?
对于支持它的 Prusa 打印机来说,是的:文件更小,损坏也能被发现。对于其他一切来说,不是——不转换就无法阅读,而且大多数软件都不认识它。
除了 PrusaSlicer,其他切片软件能生成 .bgcode 吗?
据我所知,PrusaSlicer 是唯一一款会写出这种格式的常用切片软件。OrcaSlicer 和 Bambu Studio 不支持它。其他切片软件生成的文本 G-code 可以在 PrusaSlicer 中或用 bgcode 工具转换。
OctoPrint 支持 .bgcode 吗?
它本身不支持。BGCode 插件会把上传的文件转换成文本 G-code。OctoPrint 的维护者拒绝了原生支持,理由是 .bgcode 是用来存放在打印机上的,而不是用来发送给打印机的。
能用文本编辑器打开 .bgcode 吗?
不能,它是二进制的。请先按上文所述把它转换成 .gcode。
.bgcode 包含颜色和材料吗?
和 G-code 一样:换耗材的操作在命令里,材料类型和用量在元数据里。3D 模型和纹理不在其中——只有喷嘴的路径。
相关格式
- G-code——同样指令的文本形式。如何不用切片软件查看它的内容:不打开切片软件,在 Mac 上查看 G-code。
- 3MF——PrusaSlicer 用来切出 G-code 的项目文件。请参阅 Mac 版 3MF 查看器。
资料来源
- libbgcode 仓库中的格式规范
- Prusa 知识库:Binary G-code
- GitHub 上的 PrusaSlicer 2.7.0
- GitHub 上的 Buddy 固件 5.1.0
- OctoPrint issue #4900 和 BGCode 插件
- Repetier-Server 1.4.16
你是否在 Prusa 打印机以外的地方打印 .bgcode——比如通过 Repetier-Server,或者装了插件的 OctoPrint?请写信到 apps@xfanta.com 告诉我哪些可行,我会把它加进表格。
在 Preview3D 中打开
在 Mac、iPad、iPhone 和 Vision Pro 上打开 STEP、3MF、STL、G-code、BGCODE 等格式。一次购买,无需账户,无需联网。
App Store 上的 Preview3D