STL、3MF、OBJ 到底差在哪?—— 一句话:STL 只存形状,3MF 存"怎么打",OBJ 存"长什么样"。选错了,轻则颜色丢失,重则打印失败。

新手最容易踩的坑是"下载了 STL 却发现颜色没了",或者"多色件导成 STL 打印出来是一坨白"。这篇把三个格式的本质差别和选择规则讲清楚。

速查表

STL 3MF OBJ
存什么 只有三角面几何 几何 + 打印配置 + 颜色 几何 + 材质 + UV
文件大小 1–20MB 2–50MB 5–100MB
颜色/分色 ❌ 无 ✅ 原生支持 AMS 分色 ⚠️ 靠材质,兼容性差
打印参数 ❌ 无 ✅ 放层高/壁层/材料 ❌ 无
切片软件支持 几乎全部 全部主流(Bambu/Prusa/Orca) 部分
能否继续建模 ⚠️ 只能当网格 ❌ ✅ 可转曲面

STL:兼容性的最后一道保险

STL 是 1987 年的格式,只有一行行三角面坐标。它什么都不知道——不知道这是什么材料、什么颜色、多少层高、哪里是外壁内壁。

它的唯一价值是"几乎所有人都能打开"。 这是它没被淘汰的唯一原因。

什么时候用 STL:

  • 单色件——这是 STL 的正确用法,也是绝大多数场景
  • 要给第三方打印——对方用什么软件未知,STL 最安全
  • 要进 CAD 软件做进一步处理——虽然会转成网格丢失精度,但流程通
  • 需要做减面/修复——PrusaSlicer、Meshmixer 这类工具对 STL 的支持最成熟

STL 的两个坑:

一、"STL 不能上色"是个误解。 STL 格式确实不带颜色信息,但多色件可以拆成多个 STL 分件打印,然后按名称分色组装。我们的挂件、灯壳都是这么处理的——生成器会把不同颜色导出成一个 3MF(自动分色),同时也支持按色拆分多个 STL。

二、STL 不区分外壁内壁。 切片软件会自己推导"哪里是实体",但如果模型有细小的悬空结构或内部空腔,STL 导出时可能被错误地当成实心或非实心。这是 3MF 明确记录、STL 靠猜的地方。

格式选择上有个陷阱:binary STL(二进制)比 ASCII STL 小 5–10 倍,但没有单位信息——它不记录这个模型是毫米还是厘米。有些切片软件默认按毫米读,导入一个按厘米导出的 STL 就会变成原来的 1/10 大小。3MF 有标准单位约定(默认毫米,遵循 XML 声明),没这个坑。

3MF:唯一能存"怎么打"的开放格式

3MF 是 2015 年微软等厂商联合推出的开放标准,核心是把切片软件里的配置和模型打包在一个文件里。

它能存的东西:

  • 几何模型
  • 多色分色信息(哪个面用哪种颜色 → AMS 自动换料)
  • 打印配置:层高、壁层数、支撑类型、填充率
  • 单位声明:不再有"这是毫米还是厘米"的歧义
  • 元数据:作者、许可证、创建软件版本

对多色打印来说,3MF 不是"更好",是"唯一可行"。 AMS 多色打印的原理是靠文件里的颜色分割指令告诉机器"哪几段用哪一卷料"。这个信息在 STL 里无处存放,所以你必须用 3MF。

使用注意两点:

一、3MF 会被切片软件改写。 你用 Bambu Studio 打开一个 3MF 调整参数再保存,文件里的配置就变了。所以3MF 是"当前配置的快照",不是"永久设置"。给别人的 3MF 可能带着对方机器的微调。

二、不同品牌的 3MF 有细微不兼容。 Bambu 的 3MF 在 OrcaSlicer 里打开可能丢失部分 AMS 高级设置(喷嘴编号、多料位配置)。跨品牌时降级导出 STL 更保险——除非你确定对方用什么软件。

判断是不是好 3MF 的一个标准:打开它之后,切片界面的"彩色预览"应该立刻显示分色效果。如果显示成一坨单色,说明这个 3MF 根本没写颜色信息(有些工具导出的 3MF 只是把 STL 换了个后缀)。

OBJ:给"继续做"用的,不是给"打印"用的

OBJ 诞生于 1990 年代,是建模和渲染领域的格式,不是打印格式。

它的独特能力是UV 展开和材质引用——这意味着它可以贴图。所以 OBJ 适合的场景是:你在 Blender 里做了一个模型,贴上材质图导出 OBJ,再拿去做渲染或继续编辑。

但 OBJ 不是打印格式:

  • 没有打印配置——切片时要全部重设
  • 不是封闭实体——OBJ 常见是曲面网格,不保证水密,很多切片软件直接拒绝或需要先修复
  • 多色靠材质 ID,各家切片软件对 OBJ 材质的支持差异很大,不可靠

结论:除非你在做渲染或二次建模,OBJ 对 3D 打印来说没有优势。 我们的工具导出格式是 STL / 3MF / SVG(图纸类)/ PNG(减色稿),刻意不提供 OBJ——因为它对打印没用。

STEP:机械件才用得上

补一个常被提到的格式:STEP(.stp/.step) 是 CAD 行业的标准交换格式,保存的是精确的 B-Rep 几何(曲面实体),不是三角网格。

它的意义是不丢精度。STL 是把曲面离散成三角面,圆柱变成多边形;STEP 里的圆柱还是真圆柱。

什么时候需要 STEP:

  • 机械配合件(轴孔、螺纹接口)——STL 的离散误差会导致"装不上"
  • 需要交给工厂开模、CNC 加工
  • 需要在 CAD 软件里继续改

完全不适用于:3D 打印成品件、装饰件、任何"打印出来就完事"的东西。你会先把它转成 STL 再切片,多一步。

选择规则(记这三条就够)

  1. 单色件 → STL。别想多,别嫌它老。
  2. 多色/AMS 件 → 3MF。这是硬要求,STL 做不到。
  3. 要继续建模/贴图渲染 → OBJ;要机械精度 → STEP。这两个跟打印关系不大。

再加一条保险:不确定对方用什么软件、或者要发给不确定的人 → 导 STL + 3MF 两个文件,3MF 给自己保留分色信息,STL 作为兜底。

导出前的检查清单

  • 这是单色还是多色件?→ 决定 STL 还是 3MF
  • 导出的 STL 能在切片软件里直接切吗?(几何水密检查)
  • 3MF 在切片软件里能看到彩色预览吗?(分色信息检查)
  • 单位对吗?(STL 无单位信息,改用 3MF 更安全)
  • 需要给第三方吗?→ 附一个 STL 版本做兼容

工具库里每个工具的详情页都标注了支持的导出格式,选之前可以先看一眼。