Preview3D
获取

什么是 .bgcode 文件?Prusa 的二进制 G-code 详解

.bgcode 文件是 PrusaSlicer 从 2.7 版起以二进制形式保存的 G-code,据 Prusa 称,它平均比文本格式小约 70%。但任何文本编辑器都读不了它,而且除了 Prusa 的打印机,几乎没有别的东西支持它。下面说说里面有什么、哪些软件能打开它,以及如何把它变回普通的 .gcode。

概览

扩展名
.bgcode
类型
打印路径(给打印机的指令)
创建者
Prusa Research
始于
2023
标准
不是正式标准
规范
libbgcode
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 MK3SPrusaSlicer 不为它启用
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 上也一样。
在 Preview3D 中打开的一个 PrusaSlicer 生成的 .bgcode 文件:按类型着色的打印路径、层级滑块和打印详情
在 Preview3D 中打开的一个 PrusaSlicer 生成的 .bgcode 文件:按类型着色的打印路径、层级滑块和打印详情

缩略图:给打印机用 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 模型和纹理不在其中——只有喷嘴的路径。

相关格式

资料来源

你是否在 Prusa 打印机以外的地方打印 .bgcode——比如通过 Repetier-Server,或者装了插件的 OctoPrint?请写信到 apps@xfanta.com 告诉我哪些可行,我会把它加进表格。

在 Preview3D 中打开

在 Mac、iPad、iPhone 和 Vision Pro 上打开 STEP、3MF、STL、G-code、BGCODE 等格式。一次购买,无需账户,无需联网。

App Store 上的 Preview3D