Stereolithography STL (.stl)
3D 標準Standard Triangle Language(STL,也稱為 Stereolithography)是廣泛用於 3D 列印與快速原型的格式。它以三角形面描述表面幾何圖形;應用程式支援以及色彩或單位的處理方式則各不相同。
將 OBJ 轉換為 STL
免費的瀏覽器端 OBJ 轉 STL 轉換器。在您的裝置上即時轉換檔案。
檢查與中繼資料
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 STL 檔案:
位元組層級標頭簽章(檔案簽章)
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 STL 檔案:
十六進位簽章(偏移量 0):
73 6F 6C 69 64ASCII 表示法: solid
標準化: 3D Systems Stereolithography Specification
技術規格
| 容器架構 | ASCII 格式(以「solid」開頭)或二進位格式(80 位元組標頭 + 32 位元三角形數量 + 50 位元組面記錄) |
| 壓縮 | 未壓縮的原始三角形面 |
| 位元組序 | 適用於二進位 STL 的 Little-Endian (Intel x86) |
| 色彩空間 | 無(單色幾何圖形;存在專有的 VisCAM/Magics 色彩變通做法) |
| 色版與結構 | 三角形面:表面法向量 (I, J, K) 與三個頂點座標 (X, Y, Z) |
| 最大尺寸 | 無上限的 3D 實體座標(通常以公釐為單位) |
| 透明度 | 無(實體物件) |
| 串流與漸進式 | 循序面串流允許進行連續的逐層切片 |
技術比較矩陣:STL 對比競爭格式
| 技術屬性 | STL (目前) | OBJ | 3MF | STEP |
|---|---|---|---|---|
| 3D 列印切片軟體採用率 | 廣受 3D 列印切片軟體使用;支援情形各異 | 在許多應用程式中皆有廣泛支援 | 現代後繼標準 | CAD 工程標準 |
| 色彩與紋理支援 | 無(純表面幾何圖形) | 完整 UV 紋理對應 | 全彩、材質與多重擠出機 | 參數化實體顏色 |
| 面結構 | 獨立三角形面 | 相連的共用頂點網格 | 共用頂點索引網格 | 精確的參數化曲線(NURBS) |
| 單位定義 | 無單位(假設為 mm) | 無單位(假設為公尺/mm) | 明確單位(mm、cm、英吋) | 明確工程單位 |
常見損壞模式與十六進位修復指南
3D 切片軟體顯示「Model is not manifold / Contains non-manifold edges」。
根本原因: 三角形網格中有破洞、自我相交的三角形,或表面法向量反轉。
修復: 使用 File2File.app 3D 網格修復工具或 Netfabb 將網格修復為封閉狀態。
安全性分析與解析器攻擊向量
二進位 STL 解析器會評估 32 位元三角形數量,其中的整數溢位可能會導致小型堆積配置與越界寫入。
已知攻擊向量
- 在進行 triangle_count * 50 位元組記憶體配置時發生整數溢位。
- 當實體檔案大小小於宣告的三角形數量時,發生緩衝區過度讀取。
- 透過多 GB 的三角形配置造成阻斷服務。
防禦最佳實務: 在讀取之前,請驗證宣告的三角形數量是否精確符合 (file_size - 84) / 50。
歷史起源與里程碑
主要優勢與優點
- STL 廣受 3D 列印切片軟體與 CAM 工具支援,但支援的功能與工作流程各有不同。
- 二進位格式簡單且精簡:剛好 84 位元組的標頭加上每個三角形面 50 位元組。
- 直接呈現積層製造刀具路徑生成所需的封閉表面邊界。
技術限制與缺點
- STL 標準沒有用於色彩、材質或紋理的可互通欄位;某些不相容的擴充功能會新增色彩資料。
- 曲面必須使用數千個平坦的平面三角形來近似,這會導致多邊形數量偏高。
- 未指定實體測量單位(切片軟體必須假設為公釐或英吋)。
有趣的技術冷知識
- Chuck Hull 於 1986 年取得 3D 列印專利,並於 1987 年建立 STL 格式,以便將 3D 模型傳送至他的 SLA-1 印表機。
- STL 檔案完全不含單位中繼資料:尺寸為「10」的立方體,依您的切片軟體設定,可能代表 10 公釐、10 公尺或 10 英吋。
- 二進位 STL 檔案有一個 80 位元組的標頭,可包含任何文字,但不能以「solid」這個單字開頭,否則某些解碼器會將它誤認為 ASCII 檔案。
常見技術問題
什麼程式可以開啟 STL 檔案?
您可以在 3D 列印切片軟體(例如 Cura、PrusaSlicer 和 Bambu Studio)、CAD 程式(例如 Fusion 360 和 Blender)中開啟 STL 檔案,或者直接在 File2File.app 中線上即時檢視。
ASCII 與二進位 STL 有什麼區別?
二進位 STL 將每個三角形儲存為數值記錄,而 ASCII STL 則以文字形式寫入座標。二進位通常較小;ASCII 可以直接檢查,但這兩種變體都不包含標準的顏色或材質欄位。
如何將 STL 檔案轉換為 OBJ 或 GLB?
您可以使用 File2File.app 直接在您的瀏覽器中,將 STL 檔案轉換為具備紋理的 OBJ 模型或可供網頁使用的 GLB 檔案。