面向STL文件的截面轮廓线段连接方法研究
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
来稿日期:2020-05-08 基金项目:国家自然科学基金重点项目一广东省联合基金项目(U1601202);广东省普通高校青年创新人才项目(2018KQNCX342) 作者简介:文豪,(1990-),男,广东珠海人,博士研究生,讲师,主要研究方向:复杂曲面测量数据的直接精密加工与误差控制;
高健,(1964-),女,山东青岛人,博士研究生,博士生导师,教授,主要研究方向:精密在线检测技术与微电子封装装备方向
end facet
图3算法流程 Fig.3 Algorithm Flow
3.1相交面片判断与数据选取
欲使模型轮廓与截平面求交,则截面不能与轮廓重合,面片 与截面只有相交和不相交的两种位置关系。若面片与截面不相 交,则面片三个顶点均位于截面的一侧,可利用该特征依次提取
STL文件中的面片数据,再判断是否与截面相交,如图4所示。
0,说明了面片的三个顶点均位于截面的一侧,面片与截面不相 交。否则应选取当前面片数据,并用于下一步的算法处理操作。
No.7
July.2021
机械设计与制造
173
3.2截面轮廓线段的计算生成
截面与面片相交可划分为四种情况,如图5所示。其中,相 交的结果均可表示为一段长度大于或等于0的直线线段,并可用 两个顶点的三维坐标表示。
相连、不重叠重复的有序线段,且每条轮廓线段对应一个面片,如 图2所示。
目前研究的操作过程为先对STL文件进行模型数据的几何 关系拓扑重构,建立几何数据的映射关系,再在此基础上计算截 面交点的坐标数据,并根据模型重构的几何拓扑关系连接截面交 点生成截面轮廓。然而拓扑重构的数据处理量大,并伴随着与当 前截面求交无关的大量冗余数据操作,对于STL文件的直接截面 轮廓生成操作不具备速度优势。另一方面,由于截面轮廓线段分 别对应于网格模型的相交三角面片,其数据信息已于STL文件中 逐一记录。因此,针对STL文件的截面轮廓生成操作,应宜接处 理STL文件的模型数据。
Key Words:STL File; Intersection Operation; Contour Segment; Connection Judgment; 3D Printing
1引言
在计算机中,STL的文件格式m可用于表示三维模型的外形 尺寸,常用于逆向工程、快速原型、快速制造等相关工业领域叫 其中针对3D打印及快速原型等应用环境,STL文件经常需要进 行轮廓切片及截面求交的数据处理操作。对此,可行的计算机数 据处理操作为先判断网格面片与截平面的位置关系并提取相交 面片的几何信息眄再依次计算相交截点的坐标信息并连接形成 截面轮廓叫
Abstract: Aiming at the problem ofobtaining the cross-sectional contourfrom the model data in 3D printing, the dataformat characteristics of STLfiles in computer are analyzed, and an algorithm, ofcross contour segments connectionfor STLfile is pro posed. Firstly, select and calculate the intersecting coordinates through the intersectionfacets ofthe STLfile, and directly gener
Research of Cross Contour Segments Connection for STL File
WEN Hao12, GAO Jian2, ZHANG Zheng-fu1
(1.School of Mechanical Engineering, Guangdong Polytechnic of Science and Technology, Guangdong Zhuhai 519090, China;2.School of Electromechanical Engineering, Guangdong University of Technology, Guangdong Guangzhou 510006, China)
列三角面片表示模型的外形轮廓。在计算机中常以STL的文件 格式存储模型数据,其中随机记录了三维模型的网格面片信息。
STL文件中的一个面片数据只包含面片法矢与三个顶点的三维 坐标,如图]所示。
facet nomal nx ny outer loop vertex vlx % vh vertex % v2y % vertex v3x 呜 % endloop
然而,STL的文件格式Q収随机记录三维模型的网格面片信
息,并且只包含面片法矢与三个顶点的三维坐标。STL文件的模 型数据无法直接实现截面交点的相邻关系位置判断,需要在模型 的切片操作前对STL文件进行拓扑重构的数据处理操作,建立多 种模型几何数据的直接映射关系叫文献旳提出了基于标准模板 库set容器的拓扑关系重建算法,可有效去除STL文件的冗余数 据,实现了模型数据的快速切片操作。文献™根据模型的冗余信 息确廓。文卿使用半边数据结构重构了三角面片间的邻接拓 扑关系,解决了截面轮廓生成中截面交点的有序连接问题。基于
172
文 豪等:面向STL文件的截面轮廓线段连接方法研究
第7期
ACIS平台,文献阿CT究了 STL模型的拓扑重构问题,实现了模型 数据快速准确的算法操作。文献1切使用三维树的方法实现 了网格模型的自适应分层切片,并在增材制造中实际应用。文 献"握出了基于链表的拓扑重建算法,可有效提高切片算法的整 体效率。文献™以哈希表作为查找表,建立了模型的几何拓扑关 系,可显著提升后续的切片效率。文献网提出了STL文件的数据 扩展格式,丰富了模型文件内容,可实现切片数据的直接生成。
图5截面与面片相交的四种情况 Fig.5 Four Situations of Cross Section and Facet 轮廓线段两个顶点的三维坐标计算判断如下: ⑴若面片三个顶点的计算值有两个为0,则截面 与一条边重合,轮廓线段的两个顶点即为畑y, z)计算值为0的 两个面片顶点。 ⑵若面片三个顶点的/ (”, y, z)计算值有且仅有一个为0, 则需判断另外两个面片顶点相对截面的位置关系。若另外两个 面片顶点的/3,y,z)计算值均大于或小于0,则说明了面片与截 面相交于一个顶点,轮廓线段的长度为0,两个顶点均为/(”, y, Z) 计算值为0的面片顶点。若另外两个面片顶点的/ (%, y, z)计算 值出现一个大于0和另一个小于0的情况,则说明了面片与截面 相交于边上点与顶点。此时轮廓线段的一个顶点为fgy, z)计 算值为0的面片顶点,另一个顶点为面片边与截面交点,需要选 取/ y, z)计算值不为0的两个面片点与截面方程联合求解。 (3)若面片三个顶点的计算值均不为0,则面片与 截面相交于两条边上的两个点。截面与边相交,边的两个顶点也 应分别位于截面两侧。从面片三个顶点中选取两组/(”, y, z)计 算值分别大于0和小于0的两个面片顶点组成两条面片边,再分 别与截面方程联合求解,可得轮廓线段两个顶点的坐标数据。 截面与面片边的交点计算,如图6所示。根据截面方程和两 个分别位于截面两侧的面片顶点可实现交点坐标的联合求解。
Ax + By+Cz + D = 0
(1)
式中:4、B、C、B—已知常数,4、B、C不可同时为0。
设顶点与截面的位置判断函数:
f(x, y, z} = Ax + By + Cz
(2)
对于提取的一个网格面片数据,可将三个顶点幻、”2、%的三
维坐标分别代入式(2),若/■(%, y, z)的三个计算值均大于或小于
OCC and computerprogramming by Python, a cross-sectional profile generation modulefor STLfiles is developed, and the effec tiveness ofthe proposed method is verified through data testing ofseveral models. The experimental results show that the proposed method can completely avoid the topological data reconstruction operation of model data, and generate the cross contour directly in 3D printing through the direct data processing of file.
综上所述,针对3D打印中模型数据的截面轮廓求取问题, 目前研究知寸模型文件进行几何拓扑数据重构,註已知几何邻 接关系的基础上依次求取表示截面轮廓的交点坐标,从而根据模 型重构的几何拓扑关系连接截面交点生成截面轮廓。然而模型 文件的几何拓扑数据重构操作复杂,常伴随着大量的冗余数据处 理,严重影响3D打印系统中的截面轮廓与加工路径生成速度o 对此重点研究STL文件的截面求交操作与轮廓线段的连接方法, 通过STL文件的计算机数据格式特征分析,提出了面向STL文件 的截面轮廓线段连接算法,先通过截面与面片的相交判断与交点 计算,获取所有的相交轮廓线段,再对相交轮廓线段的邻接关系 进行判断,最终形成有效的截面轮廓,并于PythonOCC的测试平 台中编程述。该算法可直接避免模型数据的拓扑数据操作,通 过STL文件的直接数据处理,直接实现3D打印中模型数据截面 轮廓的获取生成。
轮廓的求交计算错误。然而STL文件中并未直接反映这些几何 缺陷问题,在截面轮廓的生成计算前应优化模型文件,确保网格 质量。对于正确有效的模型数据,算法生成的截面轮廓应为首尾
图4截面与面片不相交的情况 Fig.4 Situation that Cross Section and Facet are not Intersect 截平面的空间坐标表达式均可转换为一般方程:
第7期
机械设计与制造
2021年7月
Machinery Design & Manufacture
171
面向STL文件的截面轮廓线段连接方法研究
文豪巴高健2,张正甫1 (l.r东科学技术职业学院机械与汽车学院,广东珠海519090;
2.广东工业大学机电工程学院,广东广州510006)
摘要:针对3D打印中模型数据的截面轮廓求取问题,分析STL文件的计算机数据格式特征,提出面向STL文件的截面轮 廓线段连接算法。首先,通过STL文件的相交面片选取与求交计算,直接生成相交截面的轮廓线段;然后,通过轮廓线段 的连接判断,快速生成模型数据的截面轮廓;最后,借助PythonOCC的开源三维模型显示平台,使用Python的计算机编程 语言编程开发面向STL文件的截面轮廓生成模块,并通过多个模型的数据测试对所提算法的有效性给予验证。实验结 果表明,所提算法可完全避免模型数据的拓扑数据操作,并通过STL文件的直接数据处理,直接实现3D打印中模型数据 截面轮廓的快速生成。 关键词:STL文件;截面求交;轮廓线段;连接判断;3D打印 中图分类号:TH16;TH164文献标识码:A 文章编号= 1001-3997(2021)07-0171-05
ate the contour segments ofthe intersecting cross-section. Then, byjudging the connection ofthe contour segments, the cross con
tour ofthe model data can be quickly generated. Finally, on the basis ofan open source 3D model displayplatform called Python
3算法原理与操作步骤
所提算法的主要思路是利用STL文件逐次记录的面片信息 直接计算截面轮廓线段,再直接判断各线段的邻接关系生成截面 轮廓,无需依靠模型重构的几何拓扑关系判断截面交点的连接丿顷 序。算法流程,如图3所示。其中可分为三步操作。
2 STL文件的数据处理分析
区别于工程领域中的参数化模型,三角网格模型使用一系
图1 STL文件中的一个面片数据 Fig.l One Facet Data in STL File
图2 STL文件的截面轮廓线段 Fig.2 Cross Contour Segments of STL File 在模型数据的获取与处理当中,三角网格模型可能存在着 几何缺陷问题,包括共边、相交、重叠、孔洞裂缝等閃,会造成截面