2018年11月25日星期日

干貨,STL格式3D打印文件轉換小技巧


  stl 文件是在計算機圖形應用系統中,用於表樣品示三角形網格的一種文件格式,由於它的文件格式非常簡單,所以應用很廣泛。幾乎所有市面上的3D打印機都是通過識別STL模型來進行打印生產。

  STL是用三角網格來表現三維模型,表面的三角剖RP分之後會造成三維模型呈現多面體狀。

  當三維模型轉化輸出為STL格式時,其參數設置會直接影響到最終模型成型質量的良莠。所以如果STL模型屬於粗糙的或是呈現多面體狀,在最終打印出來的模型3D列印上也會得到真實的反應。

  那麼如何保證三維模型在轉換成STL格式時做到最優呢?

  一般三維軟件導出STL方式:

  File(文件)=>Export(輸出)如果沒有Export可以選擇Save As(另存為)=>選擇STL=>輸入文件名=>save(保存)

  STL文件有兩種:一種是ASCII明碼格式,另一種是二進制格式。

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

  ASCII格式的STL 文件結構如下:

  明碼://字符段意義

  solidfilenamestl//文件路徑及文件名

  facetnormalxyz//三角面片法向量的3個分量值

  outerloop

  vertexxyz//三角面片第一個頂點坐標

  vertexxyz//三角面片第二個頂點坐標

  vertexxyz//三角面片第三個頂點坐標

  endloop

  endfacet//完成一個三角面片定義

  。。。。。。//其他facet

  endsolidfilenamestl//整個STL文件定義結束

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

  文件起始的80個字節是文件頭,用於存貯文件名,緊接著用 4 個字節的整數來描述模型的三角面片個數,後面逐個給出每個三角面片的幾何信息。每個三角面片占用固定的50個字節,依次是:

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

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

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

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

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

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

  UINT8//Header//文件頭

  UINT32//Numberoftriangles//三角面片數量

  //foreachtriangle(每個三角面片中)

  REAL32[3]//Normalvector//法線矢量

  REAL32[3]//Vertex1//頂點1坐標

  REAL32[3]//Vertex2//頂點2坐標

  REAL32[3]//Vertex3//頂點3坐標

  UINT16//Attributebytecountend//文件屬性統計

  當設計者設計完模型,轉格式可能會出現下面的情況:

  作為3D 打印,一般選擇二進制,因為,二進制導出的模型內存會逆向工程比ASCII小,方便於後面,模型修復軟件和3D 打印切片軟件的順暢操作。如果一定要選擇ASCII,那麼此時對電腦性能要求就會高一些。

  當輸出STL檔案時,您可能會看到的參數設定名稱,如弦高(chord height)、誤差(deviation)、角度公差(angle tolerance)

  這些數值代表你導出來的STL模型的三角形數量,數值越小,模型表面越光滑,所以設計者在導出模型的時候,建議在默認的值的基礎上改小一點,將儲存值改為0。01或是0。02。

没有评论:

发表评论