stl文件格式简介及转换技巧
ASCII格式的STL 文件结构如下:
明码: //字符段意义
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 //完成一个三角面片定义
...... //其他facet
Endsolid filename stl //整个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//文件属性统计
有些软件在进行STL格式转换时可以设置文件格式是ASCII格式还是二进制格式。一般采用二进制导出的模型内存占用会比ASCII小。有些软件当输出STL文件时,可能会看到具体的参数设置,如弦高(chord height)、误差(deviation)、角度公差(angle tolerance)等,通过这些设置可以保证输出STL模型的精度。
下图所示为在Solidworks中输出STL格式文件时可以设置的选项。
下图所示为在UG NX中输出STL格式文件时可以设置的选项。
这些数值代表导出来的STL模型的三角形数量,数值越小,模型表面越光滑。