理论教育 STL文件格式的详解

STL文件格式的详解

时间:2023-06-26 理论教育 版权反馈
【摘要】:STL是由3D Systems公司为光固化CAD软件创建的一种文件格式,STL也被称为标准镶嵌语。如图2-8所示,三角形ABC为STL文件中的一个三角形面片,它用A、B、C三点的坐标和法向量n 来表示,三角形面片的三个顶点按照右手法则进行存储。STL文件有两种格式,即文本格式和二进制格式。

STL文件格式的详解

STL(STereolithography)是由3D Systems公司为光固化CAD软件创建的一种文件格式,STL也被称为标准镶嵌语(Standard Tessellation Language)。该文件格式被许多软件支持,并广泛用于3D打印和计算机辅助制造领域

图2-8 STL三角形面片

STL数据格式的出发点就是利用小三角形面片的形式去逼近三维实体的自由曲面,是对三维CAD实体模型进行三角形网格化后得到的集合。每个三角形面片都可由三角形的三个顶点和指向模型外部的三角面片的法矢量组成。如图2-8所示,三角形ABC为STL文件中的一个三角形面片,它用A、B、C三点的坐标和法向量n ⇀来表示,三角形面片的三个顶点按照右手法则进行存储。STL文件只描述三维对象表面几何图形,不含有任何色彩、纹理或者其他常见CAD模型属性的信息。图2-9所示为3D模型三角化前后对比图。

图2-9 三D模型三角化前后对比

(a)原始三维模型;(b)三角化后数据模型

一般地,在CAD软件中输出STL文件时,设置的精度越高,STL数据的三角形数目越多,文件就越大。STL文件有两种格式,即文本格式(ASCII码)和二进制(Binary)格式。(www.daowen.com)

1.ASCII文件格式

ASCII格式以关键字为标志逐行给出三角形面片几何信息,关键字依次为:solid、facet normal、outer loop、vertex、endfacet、endsolid。其中solid表示STL模型的文件名;facet normal表示三角形面片的单位法向量坐标;outer loop表示三角形顶点坐标开始记录;vertex表示三个顶点坐标,存储顺序符合右手定则;endfacet代表一个三角形面片已经记录完成,然后循环记录每一个三角形面片的数据;endsolid代表三角形已经被全部记录,文件完成。每个三角面片所占用的文件存储空间为150个字节。

2.二进制文件格式

二进制文件格式是采用固定字节给出三角形面片几何信息的格式,它包含80 B的头文件信息和文件名称、4 B的三角形面片个数信息、50 B的描述三角形面片的信息;单位法线矢量与3个顶点坐标各占12 B;剩余2 B用于描述三角形面片的属性。一个完整的二进制STL文件的字节大小即为三角形面片个数×50 B+84 B。

ASCII码格式的存储形式,可以使得三角形面片的顶点信息和外法向矢量坐标更清晰,方便直接使用文本阅读、编辑和修改。但是关键词的重复使用,使得ASCII格式的存储空间大小是相应二进制文件的6倍,二进制文件由于简洁而更加常见。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈