STL 转 OBJ

在你的设备上运行 · 你的文件从不离开你的设备。

STL 文件来自扫描仪、切片软件和打印网站,里面只有形状。把它转成 OBJ,就得到大多数建模软件更乐意导入的文件,而且之后可以为它加上材质和贴图。

STL 几乎从不带颜色,所以 OBJ 通常只带着一个朴素的单一材质——转换没有什么可以凭空造出来(少数为每个三角形存了颜色的二进制 STL 会保留这些颜色,写成顶点颜色)。你得到的是一个可以在 Blender、Maya、3ds Max 以及许多其他软件里打开的网格,可以开始给它指定表面。

全部在你自己的机器上完成,这一点对 3D 文件尤其重要:模型往往是客户的产品、建筑的扫描件或尚未公开的设计。没有任何东西发往服务器,因此事后也没有什么需要删除。

如何STL 转 OBJ

  1. 放入 STL 文件——有配套文件的话一起放入。
  2. 确认已选中 OBJ。
  3. 点「转换」。
  4. 下载 OBJ 文件。

支持的格式与限制

输入
STL
输出
OBJ
配套文件
无——STL 是单个文件
保留动画
否——该格式无法存放
在哪里运行
在浏览器本地完成,不上传

不适用于: 添加 STL 中从未有过的颜色或贴图——没有任何转换器能还原源格式无法存储的信息。

三角面是怎样写入的

STL 把每个三角面的三个角各自单独列出,从不记录两个三角面共用一个角。OBJ 则把每个不同的角点位置只写一次,让三角面共用它,所以建模软件打开时,模型是一个连在一起的表面。每个三角面保留 STL 为它存储的朝向,因此表面看起来仍有棱面,和在 STL 里一样。

OBJ 里没有 UV 坐标,因为 STL 本来就没有。它在一行 usemtl 里指定一个名为 default 的材质,但不附带 .mtl 文件,所以打开它的软件会给这个材质套用自己的朴素表面。少数打印软件会用非标准的方式在二进制 STL 里为每个三角面存一种颜色,这种颜色会保留,写在每个点的坐标后面。含有多个命名实体(solid)的 STL 会合成一个对象,名称不保留。

为什么 OBJ 更大

OBJ 是文本。每个数字都写出足够的位数,以便精确还原 STL 存储的值,所以存成 37.3 的坐标会写成 37.29999923706055。数值本身没有变;是文本这种写法让 OBJ 比二进制 STL 大,即使共用的角点只写一次。

尺寸和方向

为打印制作的 STL 几乎都以毫米为单位,但格式本身不注明,OBJ 也不注明,所以默认情况下 OBJ 里的数字与 STL 相同。如果你要用来打开 OBJ 的软件把数字当作米来读(Blender 默认如此),请选择“一毫米”:数字会改写成以米为单位,45 mm 的零件到了那里仍是 45 mm。哪些格式会注明自己的单位,见 /3d-converter 。

打印文件以 Z 轴朝上,而 OBJ 通常按 Y 轴朝上读取。除非你选择“保持坐标轴不变”,模型会转动四分之一圈,在打开 OBJ 的地方竖直站立。

常见问题

我的文件会上传到服务器吗?
不会。转换完全在你的浏览器里完成,用的是你自己设备的算力。文件不会离开你的电脑或手机;每个工具用过一次之后,断网也照样能用。
OBJ 会有颜色吗?
通常不会,因为 STL 没有颜色可给。STL 只存三角面。OBJ 会带一个中性材质,等你替换。少数为每个三角面存了颜色的二进制 STL 会保留这些颜色,在 OBJ 里写成点的颜色。
尺寸会保持准确吗?
会。默认情况下数值原样写出,模型仍是当初创作时的那个尺寸和单位;为了让模型在 OBJ 里竖直站立,它会整体转动四分之一圈,这不改变尺寸。

相关工具

3D 模型中的更多工具

本页的其他语言版本: English · العربية · Deutsch · Français · Español · Русский · Português · हिन्दी · Türkçe · עברית · فارسی · اردو · Bahasa Indonesia · বাংলা