STL文件规范
IGES太复杂了,我实在做不下来,改用STL文件格式。
STL文件格式
STL文件由多个三角形面片的定义组成,每个三角形面片的定义包括三角形各个顶点的三维坐标,三角形面片的法矢量。三角形顶点的排列顺序遵循右手法则,三角形面片的个数则按STL文件的类型,有直接给出的,也有不给出的。STL文件中还包括其它一些信息,如文件名,文件描述等等。
STL文件有两种类型,ASCⅡ格式和二进制格式:
◆ ASCⅡ格式,即文本格式,使用字符串来描述三角形面片的定义及其它信息。它使用以下关键字:solid, facet normal, outer loop, vertex, endloop, endfacet, endsolid。整个文件可描述如下:
solid filename //STL文件开始标志及此文件名
facet normal 法矢量的三个分量值
outer loop
vertex 第一个顶点的三维坐标
vertex 第二个顶点的三维坐标
vertex 第三个顶点的三维坐标
endloop //三角形顶点定义结束
endfacet //第一个三角形面片定义结束
……
endsolid filename //整个文件结束
◆ 二进制格式,在此格式下的每个三角形面片占固定的50字节。其格式描述如下:
地址 长度(字节) 数据类型 描述
-----------------------------
三角网格模型(STL格式)文件文本格式存储方式为以三角面片为单位存储,以关键字facet为标识,依次是法矢,和三个顶点的三个坐标(X,Y,Z),部分如下:
solid MYQT//标识零件名
facet normal 0.000000e+00 -1.000000e+00 0.000000e+00//三角面片的法矢
outer loop //第一个三角面片三个顶点坐标开始
vertex -1.545480e+02 0.000000e+00 -4.140959e+01//第一个顶点
vertex 1.545480e+02 0.000000e+00 -4.140959e+01 //第二个顶点
vertex 1.600000e+02 0.000000e+00 0.000000e+00 //第三个顶点
endloop //第一个三角面片三个顶点坐标结束
endfacet//第一个三角面片结束
facet normal 9.853842e-01 -1.103934e-01 -1.297356e-01
outer loop
vertex 1.551677e+02 1.561120e+01 -4.998626e+01
vertex 1.600000e+02 0.000000e+00 0.000000e+00
vertex 1.545480e+02 0.000000e+00 -4.140959e+01
endloop
endfacet
…
endsolid MYQT//结束标识
- 本周学习日志(2007-01-21星期日 至 2007-01-27星期六)
- 自明天起正式使用Linux。