Preview3D
获取

什么是 .gcode 文件?里面有什么,以及为什么它只适合一台打印机

G-code 是一份由打印机逐行执行的文本命令清单,规定喷嘴往哪里走、推出多少材料、保持什么温度。切片软件根据 3D 模型为某一台特定的打印机写出它,并加上注释,记录打印时间、耗材用量和预览图。模型本身并不在里面——只有喷嘴的路径。

概览

扩展名
.gcode, .gco, .g
类型
打印路径(给打印机的指令)
创建者
EIA RS-274, RepRap
标准
ISO 6983 (CNC)
macOS 自身(不装应用)
不认识:没有预览,也没有缩略图

信息核对于 2026年11月4日

每行一条命令

每一行是一条由“字”组成的指令:一个字母加一个数字。G1 X10 Y-5 F2400 的意思是“以 2400 mm/min 的速度直线移动到 X 10、Y −5”。G 表示移动,M 表示其他命令(温度、风扇),T 表示换工具。X、Y 和 Z 是坐标轴,E 是挤出的材料,F 是速度,S 是温度或主轴转速。分号之后的一切都是注释。

下面是一个真实文件中某一层的开头,来自 PrusaSlicer 2.9.5 切出的 3DBenchy:

;LAYER_CHANGE
;Z:0.6
;HEIGHT:0.2
;BEFORE_LAYER_CHANGE
G92 E0.0
;0.6
G1 E-.7 F2700
G1 X135.159 Y110.836 Z.4 F21000
G1 X136.128 Y110.075 Z.6 F4491.905
;AFTER_LAYER_CHANGE
;0.6
G1 X136.128 Y110.075 F21000
G1 Z.6 F720
G1 E.7 F1500

喷嘴先把耗材回抽(E-.7),在升到 0.6 mm 的新层的同时快速空移,然后再把耗材推回去(E.7)。

G-code 来自机床。在美国,它由 RS-274 标准定义,其最后一次修订 RS-274-D 可追溯到 1979 年;在国际上则由 ISO 6983 定义。它通过 RepRap 项目进入了 3D 打印领域。不过,3D 打印机并没有统一的标准:每种固件——Marlin、Klipper、RepRapFirmware、Prusa 的固件——都有自己的命令和自己的扩展。

除了 .gcode,也会用到 .gco 和 .g 扩展名。Klipper 会从虚拟 SD 卡中列出这三种,Marlin 也是如此,它会显示 8.3 扩展名以 G 开头的任何文件。

切片软件在文件里写了什么

光有命令,打印机就够用了。但切片软件还会添加注释,几乎能告诉你这次打印的一切。同一个文件的开头:

; generated by PrusaSlicer 2.9.5 on 2026-07-03 at 11:30:45 UTC
; printer_model = COREONE
; filament_type = PC
; nozzle_diameter = 0.4
; layer_height = 0.2
; temperature = 285
; filament used [mm] = 5786.33
; filament used [g] = 16.98
; filament cost = 1.27
; estimated printing time (normal mode) = 1h 4m 39s
; estimated printing time (silent mode) = 1h 10m 11s

除此之外,文件还包含:

  • 预览图,以文本(base64)编码,位于 ; thumbnail begin 和 ; thumbnail end 这样的行之间。这个文件有四张:三张供打印机屏幕使用的 QOI 图片(16 × 16、313 × 173 和 480 × 240 像素),以及一张供电脑使用的 380 × 285 PNG。
  • 每段路径的类型。每段之前都有一行,例如 ;TYPE:External perimeter 或 ;TYPE:Internal infill。这个 Benchy 中有 772 行标记最外层外壁,163 行标记内部填充。查看器根据它们给路径着色。
  • 层的边界:;LAYER_CHANGE、;Z: 和 ;HEIGHT:。这个 Benchy 有 240 层。
  • 切片软件的全部设置,位于文件末尾的 ; prusaslicer_config = begin 和 = end 之间。这里共有 373 行。
  • 打印进度,供屏幕显示:像 M73 P0 R64 这样的行说明完成了百分之多少、还剩多少分钟;Q 和 S 则在静音模式下起同样的作用。

不过,每个切片软件都按自己的方式写注释。PrusaSlicer 把路径类型标记为 ;TYPE:External perimeter,Cura 是 ;TYPE:WALL-OUTER,Bambu Studio 和 OrcaSlicer 是 ; FEATURE:。不认识其他切片软件标记的查看器,就无法给那部分路径着色。

所有这些注释让 G-code 变得很大。这个 Benchy 有 180,291 行、4.5 MB,其中 142,090 行是 G1 移动。同一次打印保存为二进制的 .bgcode 只有 1.76 MB。

为什么 G-code 只适合一台打印机

G-code 是为一台打印机切出来的:它的打印床尺寸、喷嘴直径、固件和起始序列。NIST 在 2000 年的报告中就已提醒,为一台机器编写的程序很可能无法在另一家厂商的机器上运行。3D 打印机也是如此。

Prusa 打印机会自己检查。这个 Benchy 以下面几行开头:

M862.1 P0.4 A1 F0
M862.3 P "COREONE"
M862.5 P2
M115 U6.5.3+12780

M862.1 检查喷嘴直径,M862.3 检查打印机型号,M862.5 检查 G-code 级别。M115 U 比较固件版本:根据 Prusa 的文档,如果固件较旧,打印机会暂停 30 秒并提示你更新。如果型号不匹配,打印机会警告这个 G-code 是为另一种打印机型号切片的——于是 Prusa 论坛上就有人问,继续打印是否安全。

稳妥的做法永远是同一个:为你自己的打印机重新切片。只有在型号相同、喷嘴也相同的打印机之间分享成品 G-code 才有意义。

在切片软件中,你可以选择 G-code 风格(flavor)。PrusaSlicer 提供十多种,从 Marlin 2 到 Klipper 再到 RepRapFirmware。Bambu Studio 导出切好的打印板时,会保存一个 .gcode.3mf 包,里面是每个打印板的 G-code。

G-code 能变回模型吗?

不能。G-code 携带的是喷嘴的路径,而不是形状。提供 G-code 转 STL 的网站会根据路径构建一个近似的体积,连同支撑和填充一起。那并不是原始模型,而且平滑的形状无法从 0.2 mm 的层中恢复。如果你需要模型,请向设计者索要 STL、3MF 或 STEP。

如何在 Mac、iPad 和 iPhone 上查看 G-code 的内容

macOS 没有 G-code 的文件类型。文本编辑会把它当作文本打开,访达显示空白图标——没有预览,也没有缩略图。在 Windows 上有 PowerToys 可以处理;在 Mac 上你需要一个应用:

  • PrusaSlicer G-code Viewer 免费,能读取 PrusaSlicer、Cura、Simplify3D 和其他切片软件的 G-code。
  • 网页查看器,例如 gcode.ws,直接在浏览器中逐层显示路径。gcode.ws 自己也说它“慢、吃内存”(slow, memory hungry)。
  • ThumbHost3mf 根据切片软件存进文件的预览图添加访达缩略图。
  • Preview3D,我的应用,可以在窗口中、在快速查看里以及作为访达缩略图打开 G-code,支持 Mac、iPad、iPhone 和 Apple Vision Pro。

Preview3D 能从 G-code 中显示:

  • 按类型着色的路径,带图例,和切片软件的画法一样;
  • 按真实宽度绘制的挤出线;
  • 层级滑块,可在任意高度剖开打印件;
  • 从文件头读取的打印时间、耗材、重量和材料;
  • 作为访达缩略图,显示切片软件存进文件的预览图。

它能读取 PrusaSlicer、SuperSlicer、OrcaSlicer、Cura 和 Bambu Studio 的 G-code。

Preview3D 在 iPad 上打开的 G-code:按类型着色的打印路径、层级滑块和打印详情
Preview3D 在 iPad 上打开的 G-code:按类型着色的打印路径、层级滑块和打印详情

关于 G-code 预览有什么用,详见:不打开切片软件,在 Mac 上查看 G-code。

常见问题

G-code 能在所有 3D 打印机上使用吗?

不能。它是为特定的打印机、喷嘴和固件切出来的。在另一台打印机上,它可能打到打印床外面、温度不对,或者根本无法开始。

.gcode、.gco 和 .g 有什么区别?

没有区别——它们是同一种文本格式,只是扩展名不同。

G-code 文件中的打印时间和耗材用量在哪里?

在文件开头或末尾的注释中。PrusaSlicer 写的是 ; estimated printing time (normal mode) 和 ; filament used [g];Cura 和 Bambu Studio 以各自的格式写类似的行。

我可以编辑 G-code 吗?

在文本编辑器中可以,但手动修改打印内容有风险。请在切片软件中修改温度、层高或材料,然后重新切片。

G-code 能转换为 STL 吗?

无法还原成原始模型。你只能根据路径构建一个近似的体积,连同支撑和填充一起。

.gcode 和 .bgcode 有什么区别?

它们包含相同的命令;.bgcode 是二进制的,并且经过压缩。详情见 .bgcode 页面。

相关页面

资料来源

Preview3D 把哪个切片软件的 G-code 颜色弄错了?请发到 apps@xfanta.com,我会加上它还不认识的标记。

在 Preview3D 中打开

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

App Store 上的 Preview3D