3D打印格式STL


STL格式及其轉換

  近期接觸了3D打印的一些東西,也制作了一個vrml轉stl的插件,對該領域多了一些認識。

  目前尚沒有打印機直接支持stl、obj等格式,在打印之前需使用廠家提供的軟件將stl等格式轉換為G-CODE(G指令),也就是切片過程。打印過程中也有許多細節問題:

    如選擇切片方向、

    打印對象底部分無法與打印平台粘牢導致打印過程失敗、

    模型頂弧等位置處理不夠精細、

    開始打印的棱邊角處容易出現小刺導致對象被打印頭掛到脫離平台、

    底面平板打印時熱脹冷縮導致底面自動脫離平台等。

  總體來講比較方便打印的對象比較有限,打印機功能細節上還需要進一步完善才能有較好的體驗。

 

STL只能用來表示封閉的面或者體,stl文件有兩種:一種是ASCII明碼格式,另一種是二進制格式。

一、ASCII格式

ASCII碼格式的STL文件逐行給出三角面片的幾何信息,每一行以1個或2個關鍵字開頭。

在STL文件中的三角面片的信息單元 facet 是一個帶矢量方向的三角面片,STL三維模型就是由一系列這樣的三角面片構成。

整個STL文件的首行給出了文件路徑及文件名。

在一個 STL文件中,每一個facet由7 行數據組成,

facet normal 是三角面片指向實體外部的法矢量坐標,

outer loop 說明隨后的3行數據分別是三角面片的3個頂點坐標,3頂點沿指向實體外部的法矢量方向逆時針排列

  ASCII格式的STL 文件結構如下:
 
  明碼: //字符段意義
solid filenamestl        //文件路徑及文件名     facet normal x y z    //三角面片法向量的3個分量值      outerloop       vertex x y z  //三角面片第一個頂點坐標       vertex x y z  //三角面片第二個頂點坐標       vertex x y z  //三角面片第三個頂點坐標     endloop     endfacet         //完成一個三角面片定義     ......          //其他facet endsolid filenamestl     //整個STL文件定義結束


二、二進制格式

二進制STL文件用固定的字節數來給出三角面片的幾何信息。

文件起始的80個字節是文件頭,用於存貯文件名;

緊接着用 4 個字節的整數來描述模型的三角面片個數,

后面逐個給出每個三角面片的幾何信息。每個三角面片占用固定的50個字節,依次是:

3個4字節浮點數(角面片的法矢量)

3個4字節浮點數(1個頂點的坐標)

3個4字節浮點數(2個頂點的坐標)

3個4字節浮點數(3個頂點的坐標)個

三角面片的最后2個字節用來描述三角面片的屬性信息。

一個完整二進制STL文件的大小為三角形面片數乘以 50再加上84個字節。

  二進制:
1 UINT8//Header//文件頭 2 UINT32//Numberoftriangles//三角面片數量 3 //foreachtriangle(每個三角面片中) 4 REAL32[3]//Normalvector//法線矢量 5 REAL32[3]//Vertex1//頂點1坐標 6 REAL32[3]//Vertex2//頂點2坐標 7 REAL32[3]//Vertex3//頂點3坐標 8 UINT16//Attributebytecountend//文件屬性統計
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM