STL文件格式解析

STL文件規則
(1)共頂點規則
每一個三角面片必須與其相鄰的每一個面片共兩個頂點 ,即一個三角面片的頂點不能落在相鄰的任何三角面片的邊上;

(2)取向規則
單個面片法向量符合右手法則且其法向量必須指向實體外面;

(3)充滿規則
小三角面片必須佈滿三維模型的所有表面,不得有任何遺漏;

(4)取值規則
每個頂點的座標值必須爲非負 ,即 STL 文件的實體應該在座標系的第一象限.

 

STL文件的分類
目前的STL文件格式包括二進制文件(BINARY)和文本文件(ASCII)兩種.

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

前面84個字節描述3D模型文件信息。文件起始的80個字節是文件頭,用於存貯零件名;緊接着用 4個字節的整數來描述模型的三角面片個數。

後面逐個給出每個三角面片的幾何信息.每個三角面片佔用固定的50個字節,依次是 3個4 字節浮點數(角面片的法矢量)3個4 字節浮點數(第一個個頂點的座標)3個4 字節浮點數(第二個頂點的座標)3個4 字節浮點數(第三個頂點的座標)最後2個字節用來描述三角面片的屬性信息。

ASCII文件格式
ASCII碼格式的STL文件逐行給出三角面片的幾何信息,每一行以1個或2個關鍵字開頭。在STL文件中的三角面片的信息單元 facet 是一個帶矢量方向的三角面片,STL 三維模型就是由一系列這樣的三角面片構成。整個STL文件首行給出了文件路徑及文件名。在一個 STL 文件中,每一個 facet 由 7 行數據組成,facet normal是三角面片指向實體外部的法矢量座標,outer loop說明隨後的3行數據分別是三角面片的 3 個頂點座標,3 頂點沿指向實體外部的法矢量方向逆時針排列。

solid filename stl   //自定義文件頭 
   facet normal x y z  //三角面片法向量的3個
       outer loop 
           vertex x y z       //三角面片第一個頂點座標 
           vertex x y z       //三角面片第二個頂點座標 
           vertex x y z       //三角面片第三個頂點座標 
      endloop   
   endfacet         //完成一個三角面片定義 
   …… 
endsolid filename stl ∥整個STL文件定義結束 

以上抄自:https://blog.csdn.net/ytffhew/article/details/84137433

未完待續,後續添加解析代碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章