指南

单位:OBJ转STL 时的毫米与米

更新 · 仅网格 OBJ 到 STL

STL 没有内嵌单位。弄清模型为什么会大或小 1000×,查看包围盒,并在浏览器里选中 mm 再转换。

切片前拦住 1000× 的尺寸错误

确定 OBJ 里一个单位是什么,缩进毫米,下载 STL 前确认包围盒。

  1. 步骤 1

    说出 OBJ 的单位

    确定 OBJ 里一个坐标单位是毫米、厘米、米还是英寸。文件不会替你标出来。

  2. 步骤 2

    在转换里选这个单位

    选对应的选项。毫米是默认,乘数是 1。厘米乘 10,米乘 1000,英寸乘 25.4。

  3. 步骤 3

    用毫米读包围盒

    和你知道的尺寸比。40 mm 的零件不该读成 40 米,也不该读成 0.04 mm。

  4. 步骤 4

    尺寸看起来对了再下载

    保存二进制 STL,并在切片软件里确认同样的毫米。不要再叠一层 1000% 的缩放。

STL 是带坐标和面法线的三角形列表。它没有单位栏。数字 10 可能是 10 毫米,也可能是 10 米。程序用习惯填上这段沉默。FDM 切片软件几乎总把一个单位当成一毫米。建模软件常常不是这样。两种习惯之间的空隙,会让钥匙扣变成一间房那么大的零件,或让一间房大的道具变成热床上的一粒点。

1000× 的情况

一米是 1000 毫米。如果 OBJ 把 0.08 米的手办存成数字 0.08,而你把转换留在毫米,STL 仍然是 0.08。切片软件会打出 0.08 mm。你在构建板上找不到它。反过来才是人们记得住的文件:按“1 单位 = 1 米”建的物体导出成数字 1,再被读成 1 mm,就会极小;有人把米场景的原始数字不缩放就导出,坐标已经是几千,物体就会巨大。

如果 OBJ 确实是米,把单位菜单设成米。转换在写 STL 之前把每个坐标乘以 1000。0.08 个模型单位变成 80 mm。包围盒随后应该在你期待的轴上读出大约 80 mm。这个盒子就是这个控件的全部意义。没有测量的单位菜单,是你看不见的猜测。

厘米是 10× 的亲戚。按厘米做的建筑网格,留在毫米上,会打成预定尺寸的十分之一。英寸乘以 25.4。2 英寸的零件留在毫米上,会变成 2 mm 的零件。这些倍数事后都不会存在 STL 里。它们被烤进坐标。改主意就再转换一次。不要留着错误文件,在脑子里“记住”缩放。

一米等于一千毫米,以及切片软件假设毫米时这个比例如何出现的图

算例:10 单位的示例立方体

内置示例是一个 10×10×10 的立方体(每条轴的坐标从 −5 到 5)。选中 毫米 且缩放为 1 时,包围盒大约读作 10 × 10 × 10 mm。选中 米 时,每个坐标都乘以 1000,于是同一个立方体大约读作 10000 × 10000 × 10000 mm(每条边 10 m,线性上是 1000× 的跳跃)。单位菜单就是干这个的。等盒子和你要的尺寸一致后再下载。

怎么判断你手里是哪种单位

找一个你已经知道的尺寸。应该是 40 mm 的微缩模型底座,应该宽 80 mm 的手机支架,应该是 5 mm 的支架孔。选中毫米放下 OBJ,读包围盒。已知的那条边对了,就结束。如果大约小了 1000×,文件是米。大约小了 10×,试厘米。大约小了 25.4×,试英寸。

Blender 的场景单位是线索,不是证据。有人把场景设成米,然后输入“40”时想的是毫米,或者相反。导出器写下它有的数字。本站的单位菜单问的是那些数字是什么意思,这不总是场景面板说的那样。两者不一致时,相信一个已知的毫米测量。

导出前在 Blender 里应用物体缩放。物体上 0.01 的缩放可以把单位换算藏在物体变换里。如果那个缩放没应用,你在这里“修好”单位仍然可能是错的,因为顶点从来没有视口暗示的那么大。应用缩放,导出一份新的 OBJ,再转换那个文件。

转换上的额外缩放是另一个旋钮。它是单位换算之后的乘数。只是把米翻译成毫米时,把它留在 1。想故意做配合调整时用 1.05 或 0.98,并把这个选择写下来。用额外缩放来表示“这个文件是米”会让你下周糊涂。米这个选项已经是那个意思。

热床、轴,以及切片软件里的第二次缩放

Y 朝上和 Z 朝上改变的是哪根轴是高度。它不该改变立方体最长的那一边,但会改变手办上哪个数字是 Z。先选朝上轴,再读高度,不要反过来。把网格放到热床上会移动 Z,让最小值变成 0。它不改变零件尺寸。高度错了,热床位移修不好。

缩放只在一个地方做。如果在这里选了米,就不要在 Cura 里再输入 1000%。两处修正会相乘。干净的路径是:本页选对单位,额外缩放 1,然后切片软件保持 100%,除非你是在按自己理解的收缩来调整。把切片软件报告的尺寸和包围盒对一下。它们应该一致。

文件里仍然不会有的东西

缩放正确之后,STL 仍然没有单位。别的程序仍可能读错。缩放不改变三角形数量:12 个三角形的立方体,在 10 mm 或 10 m 时仍然是 12 个三角形。缩放不加细节,也不补洞。1000× 的尺寸错误和破掉的外壳是两件事。二进制与 ASCII 的选择也不改变尺寸。ASCII 不是更精确的单位制。它只是把同样的角点写成文本。

如果想要围绕这次检查的 Blender 逐步点击,用 如何 OBJ转STL。数字看起来对了,你在决定要不要留源文件时,用 OBJ 与 STL。

问题

为什么默认是毫米?

用于 FDM 打印的切片软件,包括 Bambu Studio、Cura 和 PrusaSlicer,通常把 STL 坐标当成毫米。跟上这个默认,可以避免常见情况下被悄悄重缩放。

Blender 场景写的是米,但我是按毫米建的。选哪个?

如果两者不一致,选和文件里的数字一致的单位,而不是场景面板上的标签。你知道是 40 mm 的 40 单位底座就是毫米,哪怕场景单位显示写着米。

STL 会记下我选了毫米吗?

不会。文件只存坐标。这个选择会改变数字。然后切片软件假设是毫米。包围盒就是你看见这个选择的方式。

选中毫米再转换