STL文件
STL文件是在計(jì)算機(jī)圖形應(yīng)用系統(tǒng)中桐智,用于表示三角形網(wǎng)格的一種文件格式,是最多快速原型系統(tǒng)所應(yīng)用的標(biāo)準(zhǔn)文件類型。
STL文件有兩種:一種是ASCII明碼格式奥秆,另一種是二進(jìn)制格式。
ASCII格式
ASCII碼格式的STL文件逐行給出三角面片的幾何信息咸灿,每一行以1個(gè)或2個(gè)關(guān)鍵字開頭构订。
在STL文件中的三角面片的信息單元 facet 是一個(gè)帶矢量方向的三角面片,STL三維模型就是由一系列這樣的三角面片構(gòu)成避矢。
整個(gè)STL文件的首行給出了文件路徑及文件名悼瘾。
在一個(gè) STL文件中囊榜,每一個(gè)facet由7 行數(shù)據(jù)組成,
facet normal 是三角面片指向?qū)嶓w外部的法矢量坐標(biāo)亥宿,
outer loop 說明隨后的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)制格式
二進(jìn)制STL文件用固定的字節(jié)數(shù)來給出三角面片的幾何信息烫扼。
文件起始的80個(gè)字節(jié)是文件頭曙求,用于存貯文件名;
緊接著用 4 個(gè)字節(jié)的整數(shù)來描述模型的三角面片個(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é)用來描述三角面片的屬性信息堰氓。
一個(gè)完整二進(jìn)制STL文件的大小為三角形面片數(shù)乘以 50再加上84個(gè)字節(jié)挤渐。
二進(jìn)制格式的STL 文件結(jié)構(gòu)如下:
UINT8//Header//文件頭
UINT32//Numberoftriangles//三角面片數(shù)量
//foreachtriangle(每個(gè)三角面片中)
REAL32[3]//Normalvector//法線矢量
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ì)