指南
如何OBJ转STL
更新 · 仅网格 OBJ 到 STL
导出 OBJ,在本机转换,核对 mm 尺寸,再在 Bambu Studio、Cura 或 PrusaSlicer 里打开 STL。然后在浏览器里私下完成 OBJ转STL。
为 Bambu、Cura 或 Prusa 做 OBJ转STL
从 Blender 导出 Wavefront OBJ,在浏览器里按毫米缩放,下载二进制 STL,再在切片软件里核对尺寸。
步骤 1
在 Blender 里应用缩放
选中网格,导出前应用缩放,让物体缩放变成 1, 1, 1。没应用的缩放是 STL 尺寸和视口对不上的常见原因。
步骤 2
导出 Wavefront OBJ
用 File、Export、Wavefront (.obj)。导出你要打印的网格。这个转换不需要 MTL。
步骤 3
打开本地转换
打开 OBJ转STL 工具。放下 .obj。它在浏览器里读取,不会上传。
步骤 4
设成毫米
OBJ 如果是按毫米做的,单位就留在毫米。只有文件确实按厘米、米或英寸保存时,才选那些单位。看包围盒。
步骤 5
下载二进制 STL
下载二进制 STL。ASCII 是可选的,默认关闭。不需要账号。
步骤 6
在切片软件里核对
把 STL 导入 Bambu Studio、UltiMaker Cura 或 PrusaSlicer,切片前在热床上确认毫米尺寸。
打印文件是切片软件能放到热床上的一串三角形。Wavefront OBJ 常常是你已经从 Blender 拿到的文件。它可能有多个物体、材质库,以及不是毫米的坐标。这篇指南是从那个 OBJ 到二进制 STL,再到 Bambu Studio、UltiMaker Cura 或 PrusaSlicer 的短路。转换留在你的浏览器里。这些步骤都不会上传网格。
先应用缩放,再从 Blender 导出 OBJ
打开 blend 文件,看物体属性。如果缩放不是 1, 1, 1,视口大小和导出的顶点位置可能对不上,这取决于导出器怎么设。选中物体,应用缩放,让缩放栏变成 1。在导出之前做,不要等你已经在切片软件里猜百分比。
先决定这个场景里“一个单位”是什么。Blender 的默认单位常常是米,而手办可能是按格子等于毫米来建的。它们在屏幕上看起来一样,直到切片软件把单位当成毫米。如果不确定,记下一个你知道的尺寸——“这个底座是 40 mm”——等一下拿它和包围盒比。单位菜单编不出这个事实。你得知道,或者去量。
用 File → Export → Wavefront (.obj) 导出。导出你打算打印的物体,不要把整套灯光或藏起来的副本一起导出。这次导出可能在 OBJ 旁边写出的 MTL,可以不管。转换不读材质、UVs 或贴图。如果带贴图的资产还要用,把 OBJ 和 MTL 一起留在项目文件夹里。STL 是给切片软件的第二份文件,不是源文件的替代品。
还没变成网格的曲线、文字和修改器,不会变成实心的面。把物体转成网格,让 OBJ 里有 v 行和 f 行。只有点的文件,STL 没有东西可存。
在浏览器里转换,并读包围盒
打开 OBJ转STL,放下 .obj,或用文件选择。页面一开始就写出上限:40 MB。比这更大的雕刻应该减面,或者只导出你要打印的部分。Worker 在你的设备上解析文件。如果标签页内存用尽,关掉其他标签页,或减少三角形数量再导出。那次失败是本地的。不是服务器拒绝了上传。
OBJ 如果按毫米建的,就让 毫米 保持选中。真实单位是厘米、米或英寸时再切换。额外缩放保持 1,除非你确实想在单位换算之上再改尺寸。包围盒会按毫米更新。如果你期待 40 mm 的底座,盒子显示 40 × 40 × 40,你就在正确的范围里。如果显示 0.04 或 40000,停下来改单位。不要下载一个你已经知道尺寸不对的文件。
Blender 的 OBJ 通常是 Y 轴朝上。切片软件把 Z 当朝上。默认的轴选项把 Y 转到 Z,也可以把最低点放到 Z = 0,让零件躺在热床上。如果你的导出已经是 Z 朝上,选“已经是 Z 朝上”,避免模型侧躺。可选预览用的是同一个朝向。预览可以跳过。STL 不依赖 WebGL。
给 Bambu、Cura 和 Prusa 的下载应该是二进制 STL。除非你需要能在编辑器里读的文本,否则不要勾选 ASCII。按钮会立刻保存文件。没有账号,也没有第二步来解锁它。
在切片软件里打开 STL
Bambu Studio。 把 STL 导入你那台打印机用的构建板。切片前在物体面板里读尺寸。毫米对了,就摆好方向,网格需要就加支撑,然后切片。如果尺寸大约差了 10×、25.4× 或 1000×,删掉物体,用正确单位重新做 STL。在切片软件里“凭眼睛”缩放,同时又在转换里缩放,两层会叠在一起,下一次打印会错成另一种样子。
UltiMaker Cura。 打开 STL,看工具面板里的尺寸。Cura 对 STL 的默认理解是毫米。按米保存、又没用米这个选项转换的 OBJ,会看起来像一粒尘点;如果数字本来就大,就会像一个放不进热床的模型。把你在转换里已经看到的包围盒和 Cura 的尺寸对一下。它们应该在很小的舍入误差里一致。
PrusaSlicer。 导入后用同样的方法确认尺寸。有些破损网格,PrusaSlicer 也会警告。这里的警告意味着三角形本来就有问题。这个转换没有补洞,也没有翻面。把 STL 拿回 Blender,修好网格,重新导出 OBJ,再转换一次。不要指望 STL 这一步会修好非流形的外壳。
三个切片软件里有用的习惯是一样的:相信一个已知尺寸,而不是相信文件下载成功了。转换成功只说明三角形被重写了。
这条路不做什么
STL 不会带走 MTL 里的涂装。如果打印只用一种线材颜色,这样就行。如果需要颜色,你仍然需要 OBJ,或者这个工具不写的格式。这条路也不接受 STEP 实体。先从 CAD 导出网格,再从 OBJ 这一步开始。它不接受 PNG 或 JPG。图片不是面的列表。
一次一个文件。如果是一套零件,把你在意的每个网格分别导出并转换,STL 用零件来命名。转换上的三角形数量就是下载里的数量。数量巨大时,即使不到 40 MB,切片也会慢。切片软件卡住时,在 Blender 里减面,再转换更轻的 OBJ。你不是失去了“高质量 STL 模式”。你是在选打印机和电脑都能应付的网格密度。
尺寸看起来对了,切片软件也能打开文件,这个网站的事就做完了。如果还会再改模型,留着 OBJ。OBJ 与 STL 是这个选择的长版本。热床预览仍然荒唐时,读 毫米与米。二进制与 ASCII 解释你刚刚下载的默认格式。
问题
必须用 Blender 吗?
不用。任何能写出 Wavefront OBJ 网格的应用都可以喂给这个转换。这篇指南写 Blender,是因为它是常见的免费建模软件。文件仍然需要顶点和面。
为什么切片软件里的零件极小或巨大?
STL 不存单位。把单位菜单设成和 OBJ 一致,再用毫米读包围盒。毫米与米的指南会把 1000× 的情况走一遍。
同一条流程能转换 PNG 吗?
不能。这条流程从网格 OBJ 开始。照片和平的图片不会被接受。