e-works数字化企业网  »  文章频道  »  先进制造技术  »  逆向工程

STL文件的应用与研究进展

2009/8/25    来源:万方数据    专家:朱虎  杨忠凤  张伟      
关键字:STL文件  快速成形  数控加工  逆向工程  
STL文件作为一种三维数据格式具有格式简单、跨平台性良好等优点,广泛应用于快速成形、数控加工、反求工程等诸多领域,同时与其相关的研究也广泛开展起来。作者综述了STL文件的应用与研究现状,探讨了STL文件存在的问题和发展趋势。

0 前言
    STL文件格式最早是由美国3D System公司推出,并在快速成形领域得到了广泛应用,成为该领域事实上的接口标准和最常用的数据文件。目前,STL文件格式已经被广泛应用于各种CAD平台之中,很多主流商用CAD软件平台都支持STL文件的输入、输出。相对于其它数据文件而言,此类文件主要的优势在于数据格式简单和良好的跨平台性,可以输出各种类型的空间表面。因此,STL文件不只限于应用在快速成形等少数领域,在其它需要进行三维实体模型处理的领域(如数控加工、反求工程、有限元分析及仿真等)都有较好的应用。同时,与其相关的研究也广泛地开展起来。
1 STL文件格式
    STL文件格式是一种用三角面片表达实体表面数据的文件格式。它是若干空间小三角形面片的集合,每个三角形面片用三角形的3个顶点和指向模型外部的法向量表示,如图1所示。这种文件格式类似于有限元的网格划分,即将物体表面划分成很多小三角形,用很多个三角形面片去逼近CAD实体模型。它所描述的是一种空间封闭的、有界的、正则的、唯一表达物体的模型,它包含点、线、面的几何信息,能够完整表达实体表面信息。


图1 STL模型及单个三角面片


    按照数据储存形式的不同,STL文件可以分为Binary和ASCII码两种形式。为了保证STL文件的通用性,这两种文件格式均只保存实体名称、三角面片个数、每个三角形的法矢量以及顶点坐标值这四大类信息,而且两种格式之间可以互相转换而不丢失任何信息。Binary格式文件以二进制形式储存信息,具有文件小(只有ASCII码格式文件的1/5左右)、读入处理快等特点;ASCII码格式文件则具有阅读和改动方便,信息表达直观等特点。因此,两者都是目前使用较为广泛的文件格式。
2 STL文件相关研究
2.1 STL文件的读取与可视化
    由于STL文件是一系列三角面片的无序组合,而且数据量庞大。因此,对STL文件数据的快速读取及真实感显示对后续的模型处理影响甚大。STL文件的读取主要是将每个三角形面片的3个顶点坐标及其法向量存入相应的数据结构中。在数据读取过程中,相邻三角形的共享顶点将被多次记录,这就影响数据读取的速度。因此,如何快速有效地删除冗余顶点就成为提高读取速度的关键。至于STL模型的显示,大多数是把三维图形库OpenGL作为图形处理工具,这要归因于其高效的图形和交互式场景处理能力。在STL文件中记录的每个三角面片的法矢量和3个顶点坐标正好符合OpenGL的光照建模要求。
2.2 STL数据拓扑信息生成
    由于在STL文件中存在着大量的冗余数据,如图2所示,同时构成STL模型的几何元素之间也缺少必要的拓扑关系。所以,有必要对其所包含的几何信息进行归纳整理并建立合适的拓扑结构。


图2 STL文件的冗余信息


    如何才能快速建立一个合理高效的拓扑关系。对此,有许多学者进行了研究。如,张翔等针对逆向工程中的需要,建立了通过边的两个顶点查找到与该边相邻的面的拓扑信息。张必强等选用AVL树为顶点存储结构,充分利用顶点与其邻接点和邻接面的关系,通过高效的搜索策略实现了STL模型完整拓扑关系的快速建立。戴宁等采用虚AVL的快速邻边搜索优化算法,实现了相邻半边的快速搜索,高效地构建了半边拓扑结构。
    此外,建立STL数据拓扑信息要有针对性,也就是说要以后续数据处理为依据;而且,在考虑时间复杂度的同时,还要考虑空间复杂度。这样既达到了数据处理速度快的目的,同时又节省了计算机内存空间。李仲阳等在没有进行顶点合并的基础上,利用前截分组表和后截分组表建立了相邻面的拓扑信息。此方法虽然省去了顶点合并的时间,但却消耗了大量的内存空间。Qu等为建立用于生成点偏置模型的拓扑信息,利用散列函数方法建立面与面的邻接关系,进而建立了面、点、边之间的拓扑信息。但其中的边拓扑信息在后续工作中是用不到的,却占用了一定的内存空间,增加了空间复杂度。
2.3 STL数据错误修正
    由于STL文件格式本身的缺陷以及数据转换过程中出现错误等原因,在STL模型中也存在着诸如漏洞、裂缝或重叠、顶点不重合及法向量错误等诸多缺陷。这些都将给后续处理带来很多麻烦。因此,有必要对其进行数据错误检查,并做出相应的修复。
    常见的方法是针对STL文件的某一类或几类特定的缺陷采用专门的纠错程序。如,习俊通等针对STL模型中的裂缝和空洞缺陷问题,提出了自动优化修复算法并开发出了相应软件系统;张剑锋等针对STL模型中的裂缝缺陷问题,在对STL模型的整体合法性进行检验的前提下提出了相应的自动修复算法。
    但是,在实际应用中,人们往往希望能够对STL文件的各种错误进行全面系统的修复。如,周华民等综合考虑了STL文件的各类错误,通过对错误的整体描述和特征分析,提出了相应的解决办法,从而实现了对STL文件全面系统的修复。但在某些特殊情况下自动修复仍然不能达到满意效果或无法完成,如复杂的空洞或内环重叠等错误,这时可以采用手工修复的方法,也能取得了较好的效果。

责任编辑:杜凯
本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。
e-works
官方微信
掌上
信息化
编辑推荐
新闻推荐
博客推荐
视频推荐