其他方式登錄
掃一掃微信咨詢(xún)
010-53652212
(工作日)
152 0110 5575
152 1011 0562
(周末)
QQ咨詢(xún)

【經(jīng)驗(yàn)分享】STL格式3D打印文件轉(zhuǎn)換小技巧

stl 文件是在計(jì)算機(jī)圖形應(yīng)用系統(tǒng)中,用于表示三角形網(wǎng)格的一種文件格式,由于它的文件格式非常簡(jiǎn)單,所以應(yīng)用很廣泛。幾乎所有市面上的3D打印機(jī)都是通過(guò)識(shí)別STL模型來(lái)進(jìn)行打印生產(chǎn)。

?

STL是用三角網(wǎng)格來(lái)表現(xiàn)三維模型,表面的三角剖分之后會(huì)造成三維模型呈現(xiàn)多面體狀。

?

當(dāng)三維模型轉(zhuǎn)化輸出為STL格式時(shí),其參數(shù)設(shè)置會(huì)直接影響到最終模型成型質(zhì)量的良莠。所以如果STL模型屬于粗糙的或是呈現(xiàn)多面體狀,在最終打印出來(lái)的模型上也會(huì)得到真實(shí)的反應(yīng)。

?

那么如何保證三維模型在轉(zhuǎn)換成STL格式時(shí)做到最優(yōu)呢?

?

一般三維軟件導(dǎo)出STL方式:

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

?

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

?

ASCII碼格式的STL文件逐行給出三角面片的幾何信息,每一行以1個(gè)或2個(gè)關(guān)鍵字開(kāi)頭。在STL文件中的三角面片的信息單元 facet 是一個(gè)帶矢量方向的三角面片,STL三維模型就是由一系列這樣的三角面片構(gòu)成。整個(gè)STL文件的首行給出了文件路徑及文件名。在一個(gè) STL文件中,每一個(gè)facet由7 行數(shù)據(jù)組成,facet normal 是三角面片指向?qū)嶓w外部的法矢量坐標(biāo),outer loop 說(shuō)明隨后的3行數(shù)據(jù)分別是三角面片的3個(gè)頂點(diǎn)坐標(biāo),3頂點(diǎn)沿指向?qū)嶓w外部的法矢量方向逆時(shí)針排列。

?

ASCII格式的STL 文件結(jié)構(gòu)如下:

明碼://字符段意義

solidfilenamestl//文件路徑及文件名

facetnormalxyz//三角面片法向量的3個(gè)分量值

outerloop

vertexxyz//三角面片第一個(gè)頂點(diǎn)坐標(biāo)

vertexxyz//三角面片第二個(gè)頂點(diǎn)坐標(biāo)

vertexxyz//三角面片第三個(gè)頂點(diǎn)坐標(biāo)

endloop

endfacet//完成一個(gè)三角面片定義

......//其他facet

endsolidfilenamestl//整個(gè)STL文件定義結(jié)束


二進(jìn)制STL文件用固定的字節(jié)數(shù)來(lái)給出三角面片的幾何信息。

?

文件起始的80個(gè)字節(jié)是文件頭,用于存貯文件名,緊接著用 4 個(gè)字節(jié)的整數(shù)來(lái)描述模型的三角面片個(gè)數(shù),后面逐個(gè)給出每個(gè)三角面片的幾何信息。每個(gè)三角面片占用固定的50個(gè)字節(jié),依次是:

3個(gè)4字節(jié)浮點(diǎn)數(shù)(角面片的法矢量)

3個(gè)4字節(jié)浮點(diǎn)數(shù)(1個(gè)頂點(diǎn)的坐標(biāo))

3個(gè)4字節(jié)浮點(diǎn)數(shù)(2個(gè)頂點(diǎn)的坐標(biāo))

3個(gè)4字節(jié)浮點(diǎn)數(shù)(3個(gè)頂點(diǎn)的坐標(biāo))個(gè)

三角面片的最后2個(gè)字節(jié)用來(lái)描述三角面片的屬性信息。

?

一個(gè)完整二進(jìn)制STL文件的大小為三角形面片數(shù)乘以 50再加上84個(gè)字節(jié)。

UINT8//Header//文件頭

UINT32//Numberoftriangles//三角面片數(shù)量

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

REAL32[3]//Normalvector//法線(xiàn)矢量

REAL32[3]//Vertex1//頂點(diǎn)1坐標(biāo)

REAL32[3]//Vertex2//頂點(diǎn)2坐標(biāo)

REAL32[3]//Vertex3//頂點(diǎn)3坐標(biāo)

UINT16//Attributebytecountend//文件屬性統(tǒng)計(jì)

?

當(dāng)設(shè)計(jì)者設(shè)計(jì)完模型,轉(zhuǎn)格式可能會(huì)出現(xiàn)下面的情況:



作為3D 打印,一般選擇二進(jìn)制,因?yàn)?,二進(jìn)制導(dǎo)出的模型內(nèi)存會(huì)比ASCII小,方便于后面,模型修復(fù)軟件和3D 打印切片軟件的順暢操作。如果一定要選擇ASCII,那么此時(shí)對(duì)電腦性能要求就會(huì)高一些。

?

當(dāng)輸出STL檔案時(shí),您可能會(huì)看到的參數(shù)設(shè)定名稱(chēng),如弦高(chord height)、誤差(deviation)、角度公差(angle tolerance)



這些數(shù)值代表你導(dǎo)出來(lái)的STL模型的三角形數(shù)量,數(shù)值越小,模型表面越光滑,所以設(shè)計(jì)者在導(dǎo)出模型的時(shí)候,建議在默認(rèn)的值的基礎(chǔ)上改小一點(diǎn),將儲(chǔ)存值改為0.01或是0.02。