指南

如何 OBJ 轉 STL

更新 · 僅網格 OBJ 到 STL

匯出 OBJ,在本機轉換,核對 mm 尺寸,再在 Bambu Studio、Cura 或 PrusaSlicer 裡打開 STL。然後在瀏覽器裡私下完成 OBJ 轉 STL。

為 Bambu、Cura 或 Prusa 做 OBJ 轉 STL

從 Blender 匯出 Wavefront OBJ,在瀏覽器裡按毫米縮放,下載二進位 STL,再在切片器裡核對尺寸。

  1. 步驟 1

    在 Blender 裡套用縮放

    選取網格,匯出前套用縮放,讓物件縮放變成 1, 1, 1。沒套用的縮放是 STL 尺寸和檢視畫面對不上的常見原因。

  2. 步驟 2

    匯出 Wavefront OBJ

    用 File、Export、Wavefront (.obj)。匯出你要列印的網格。這個轉換不需要 MTL。

  3. 步驟 3

    打開本機轉換

    打開 OBJ 轉 STL 工具。放下 .obj。它在瀏覽器裡讀取,不會上傳。

  4. 步驟 4

    設成毫米

    OBJ 如果是按毫米做的,單位就留在毫米。只有檔案確實按公分、公尺或英吋儲存時,才選那些單位。看包圍盒。

  5. 步驟 5

    下載二進位 STL

    下載二進位 STL。ASCII 是可選的,預設關閉。不需要帳號。

  6. 步驟 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 開始。照片和平的圖片不會被接受。

用毫米 OBJ 轉 STL