免费在线 · 无需注册 · 100% 本地

OBJ 转 STL 转换器

拖入 .obj 文件,直接在浏览器中转换为 .stl。文件不会离开你的电脑。

⇪
将 OBJ 文件拖到这里
支持 .obj · 转换为 .stl

为什么要把 OBJ 转换为 STL?

切片软件仍然偏好 STL。在 Blender / ZBrush 中雕刻的模型通常先导出为 OBJ,到打印机的最后一步就是把这个 OBJ 转成二进制 STL。这是“在 DCC 里画好了,现在想打印”的标准交接流程。

谁会做这种转换

从 Blender 直接到打印机的爱好者、打印雕塑和手办的艺术家,以及从 Sketchfab 等网站下载 CC 许可 OBJ 素材并需要切片的任何人。

常见问题

  • 非平面的 n-gon 在导入时会被三角化,打印表面上可能出现难看的扇形纹路。纯四边形的 Blender 导出效果最好。
  • 多材质 OBJ 会丢失全部材质信息;STL 只包含几何。
  • OBJ 没有单位声明,因此 STL 会沿用原文件的缩放,而这往往是随意的。请在切片软件中核对尺寸。

本工具的技术说明

Three.js OBJLoader 解析位置、法线和索引;STLExporter 写出二进制 STL。n-gon 在加载时三角化,因此导出结果是纯三角面。

OBJ 与 STL 有什么区别?

OBJ.obj

人类可读的 Wavefront 网格格式——在 3D 图形、游戏美术和资产流程中无处不在。与 .mtl 材质文件配套使用。

优点
  • 几乎所有 3D 工具都支持(Blender、Maya、3ds Max、Unity、Unreal……)
  • 纯文本,便于 diff 和手动编辑
  • 保留 UV 坐标和顶点法线,这一点 STL 做不到
  • 通过配套的 .mtl 文件引用材质
局限
  • 文本格式——磁盘占用比二进制网格大
  • 没有场景层级、动画和骨骼
  • 材质存放在单独的文件中,容易丢失
典型用途:3D 美术流程、DCC 交接、资产归档
STL.stl

所有 3D 打印切片软件都能识别的三角网格格式。只有几何——没有单位、颜色或装配体。

优点
  • 通用 3D 打印格式——Cura、PrusaSlicer、Bambu Studio 都支持 STL
  • 小巧、简单,加载极快
  • 非常适合网格处理流程、仿真前处理器和快速预览
局限
  • 三角化近似——曲面会损失精度
  • 没有颜色、材质或装配体数据
  • 按惯例每个文件只有一个壳体(多实体会被合并)
典型用途:3D 打印、快速原型、基于网格的工作流程

深入了解这两种格式

OBJ 的由来

由 Wavefront Technologies 在 1980 年代后期为其 Advanced Visualizer 软件创建。Wavefront 被并入 Alias(后来又归入 Autodesk)后,该格式依然公开,成为学术 3D 研究、业余建模和早期游戏美术的通用语言。正因为它的 ASCII 格式足够简单,每本图形学教材至今仍附带 OBJ 示例文件。

注意事项
  • .mtl 材质文件必须与 .obj 一起传递——请打包成 zip 发送,否则对方那边的纹理会消失。
  • 规范中存在负索引和逐面法线,但许多导入器会悄悄读错。如果下游工具报错,请在 Blender 中往返一次后重新导出。
  • 如果目标是游戏引擎,请在导出前三角化——Unity 和 Unreal 的 OBJ 导入器处理不了 n-gon。

实际用途:计算机图形学研究论文至今仍以 OBJ 作为网格的参考格式。爱好者模型市场(TurboSquid、CGTrader 的免费区)以 OBJ + MTL 包的形式分发。摄影测量流程(Meshroom、RealityCapture)以 OBJ 作为可移植的中间格式输出。当一个陌生人只说了一句“我需要一个 3D 模型”时,交给对方 OBJ 仍然是最稳妥的选择。

STL 的由来

由 3D Systems 于 1987 年为第一台商用光固化(立体光刻)设备发明(名称由此而来——“STereoLithography”)。它原本只是一个用完即弃的内部格式;近四十年后,它仍是 CAD 与市面上所有切片软件之间的默认交接格式,原因很简单:没有其他格式及时获得普遍支持。

注意事项
  • STL 没有单位——以英寸创建的文件在公制切片软件中重新打开,会按 1/25.4 的比例打印。切片前务必确认源单位。
  • 非流形网格(孔洞、翻转的法线、内部壁面)切片时不会报错,但打印出来是无法挽救的废品。浪费耗材之前,请先运行网格修复工具。
  • ASCII STL 比二进制 STL 大约 5×,却毫无好处——除非确实需要对文件做 diff,否则请始终导出二进制。

实际用途:所有 FDM 和 SLA 切片软件(Cura、PrusaSlicer、Bambu Studio、Lychee、Chitubox)都把 STL 作为首要输入格式。仿真前处理器(Ansys、Abaqus)也读取 STL 进行网格划分。按需制造服务(Shapeways、JLCPCB 的 3D 打印业务、Protolabs)直接接受 STL 上传。

如何将 OBJ 转换为 STL

  1. 1
    将 .obj 文件拖放到页面上(或点击浏览)。全部在浏览器中运行,无需上传。
  2. 2
    在 3D 中预览网格,确认外观正确。留意侧边栏中的三角面数。
  3. 3
    点击“下载 STL”保存为二进制 STL。在 Cura、PrusaSlicer 或 Bambu Studio 中打开即可打印。

常见问题解答

我的 OBJ 会被上传到任何地方吗?

不会。转换在浏览器中通过 Three.js 的 OBJ 加载器和 STL 导出器完成,不会向服务器发送任何内容。

会丢失材质/纹理信息吗?

会。STL 只包含几何,源 OBJ 中的 .mtl 材质、UV 和纹理数据都会被丢弃。如需颜色,请改为导出 3MF 或 GLB(本站即将支持)。

转换出的 STL 能直接打印吗?

如果 OBJ 网格是流形的(水密、无翻转法线),可以。如果切片软件报错,在 Blender 中载入 STL,执行 Mesh → Clean Up → Merge by Distance,再重新导出。

输出的是二进制还是 ASCII STL?

二进制——比 ASCII 小约 5×,在所有切片软件中加载更快。

Blender 的四边形网格怎么办?

Three.js 在导入时会自动将四边形和 n-gon 三角化。输出始终是纯三角面,符合 STL 的要求。

相关转换器

STL → OBJSTEP → STLSTEP → OBJFBX → GLB