CN102446368A - 快速成型制造中基于分层邻接排序算法的stl模型快速切片方法 - Google Patents

快速成型制造中基于分层邻接排序算法的stl模型快速切片方法 Download PDF

Info

Publication number
CN102446368A
CN102446368A CN2010105019082A CN201010501908A CN102446368A CN 102446368 A CN102446368 A CN 102446368A CN 2010105019082 A CN2010105019082 A CN 2010105019082A CN 201010501908 A CN201010501908 A CN 201010501908A CN 102446368 A CN102446368 A CN 102446368A
Authority
CN
China
Prior art keywords
triangle
intersection point
stl
chained list
slicing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2010105019082A
Other languages
English (en)
Inventor
王素
刘恒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN2010105019082A priority Critical patent/CN102446368A/zh
Publication of CN102446368A publication Critical patent/CN102446368A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

快速成型制造中基于分层邻接排序算法的STL模型快速切片方法采用邻接插入法建立三角形邻接关系,根据三角形各点坐标在切片方向上投影的最大值和最小值反求与此三角形相交的切片平面,并通过分析相邻两三角形公共边与切片平面的位置关系,按邻接顺序建立交点链表。相比已有的基于STL全模型拓扑信息提取的切片方法以及分组矩阵切片方法,该方法并不进行整体拓扑信息的提取和三角形的分组排序,而是将三角形顺序关系融合于交点链表中,从而达到节省系统资源,提高切片效率的目的。

Description

快速成型制造中基于分层邻接排序算法的STL模型快速切片方法
技术领域
本发明为涉及快速成型制造中STL模型的切片算法,具体为快速成型制造中STL模型的一种快速切片方法。
技术背景
快速原型技术根据切分三维实体模型获得的一系列平面几何信息,逐层堆积原材料制作产品原型。切片处理技术作为快速原型关键技术之一,可在两类三维CAD模型基础上实现,一类是基于STEP、IGES精确数据模型,另一类是基于STL离散数据模型。
STL文件是快速原型系统应用的标准文件类型,由三角形网格单元(以下简称三角形)顶点坐标和外法向量构成三角网格,不包含三角形拓扑结构,离散近似表现三维CAD模型。由于STL模型数据格式简单,易于交换处理,基于STL模型的切片处理已被大多数快速原型系统采用。
按照对三角形信息利用方式的不同,已有的STL模型快速切片算法主要可分为两类:
(1)基于拓扑信息的切片算法。算法提取三角形的点、边和面信息并建立其间的拓扑关系。利用拓扑信息可以迅速查找到相邻三角形,并通过对相邻三角形的追踪得到有向轮廓曲线。这种算法的优点是可直接获得首尾相连的有向封闭轮廓线,无需对交点进行重新排序。算法的局限性在于获取模型整体拓扑信息的处理时间较长,尤其对于复杂的STL模型,占用系统资源较多。
(2)基于三角形位置信息的切片算法。算法根据三角形顶点坐标沿切片方向投影的大小进行分组排序,减少三角形与切片平面位置关系的判断次数,加快分层处理速度。但耗时较长的分组排序会降低算法的运行效率,难以处理数据量较大的STL模型。
发明内容
为了克服背景技术中所述算法处理几何拓扑信息时间较长、占用系统资源较多以及分组排序切片算法中分组排序耗时较长等问题,本发明提出了基于分层邻接排序算法的STL模型切片方法,其具体技术方案如下:
算法以切片平面的法线方向为z轴正方向为例,首先,对每一个三角形,根据各点z坐标的最大值、最小值以及切片精度,反求与三角形相交的各切片平面及其索引号,计算交点;其次,将包含交点和前趋后继指针的节点依照三角形的邻接顺序插入与当前切片平面对应的交点链表中。遍历全部三角形后,形成各切片平面的交点链表,依次连接交点即为切片轮廓线。
切片平面与三角形网格相交如图1所示。相邻两三角形与切片平面的位置关系主要有三种形式:当切片平面与相邻两三角形公共边相交时,如图2(a)所示,切片时记录待插入三角形并计算交点;当两三角形的公共边在切片平面内时,如图2(b)所示,切片时不记录此三角形也不计算交点;当切片平面与两三角形公共边不相交时,如图2(c)所示,切片时记录此三角形但不计算交点。
已知两三角形公共边顶点坐标,公共边上的每一点坐标都可由空间线段参数方程(1)求得,
&lambda; ( &mu; ) = p + &mu; v &RightArrow; ( 0 &le; &mu; < 1 ) - - - ( 1 )
其中λ为空间公共边上点的坐标,μ为参数,p为起始点坐标,
Figure BSA00000296268400022
为线段方向向量。为了得到公共边与切片平面的交点,需确定参数μ。由于位于切片平面上的交点z坐标已知,则将其代入参数方程(1),求得μ,
&mu; = z - p z v &RightArrow; z ( v &NotEqual; 0 &RightArrow; ) - - - ( 2 )
其中pz
Figure BSA00000296268400032
分别为线段起始点坐标和线段方向向量在z轴上的投影。将μ代入(1)即可求得公共边与切片平面的交点空间坐标。
与基于三角形位置信息的切片算法求交计算相比,按照三角形的相邻关系计算交点的方法为单次计算,不重复计算交点,有利于提高算法效率。
为了辅助分层邻接排序算法的构建,需要自定义几个关键的结构体。定义结构体TriMeshLinkList作为交点链表的节点,其包含三个成员,分别为交点、指向其前驱的指针和指向其后继的指针,如图3所示。切片平面与三角形求交后,将交点存入节点,节点的前驱和后继根据三角形邻接顺序确定。定义结构体HeadTailPointer作为指向交点链表的指针,其包含四个成员,分别为指向交点链表的表头与表尾的指针和两个指向相关三角形的指针,如图4所示。带有链表指针的交点链表结构如图5(a)所示,链表指针构成分组数组,如图5(b)所示。
链表内节点按三角形邻接顺序排列,节点内包含相邻三角形公共边与切片平面的交点。链表指针内的两个三角形指针分别指向与邻接关系相关的两个三角形。这两个三角形记录了链表的两个增长方向。
三角形与切片平面相交次数由STL网格精度决定,平均每个三角形与m=p/q个切片平面相交,对每个三角形切片操作的时间复杂度为O(m);对n个三角形分层邻接排序的时间复杂度为O(n);采用顺序查找方式在list数据结构中查找与待插入三角形相邻的三角形,查找算法的平均时间复杂度为O(n/2),插入和删除元素的时间复杂度为O(1)。综上,算法的平均时间复杂度为O(mn2/2),其中m为三角形平均切分层数,n为三角形个数,当m<<n  时,算法平均时间复杂度趋近于O(n2/2)≤O(n2)。
STL模型有n个三角形网格单元,平均每个三角形与m=p/q个切片平面相交,每个TriMeshLinkList结构体包含三个成员,因此该算法的最大空间复杂度为O(3mn),当m<<n  时,算法平均时间复杂度趋近于O(3n)。
算法在运行之初会产生较多断裂的交点链表,链表的指针存储头三角形和尾三角形的索引号,内存占用逐渐增加。随着算法的运行,断裂的交点链表逐渐被新建立的节点连接,链表个数逐渐减少,内存占用趋于平稳,最终形成连续的交点链表,链表个数等于当前切片平面中封闭轮廓的个数。链表中每个节点包含交点和节点前趋后继指针,数据量较小。因此算法具有良好的空间复杂度。
由前述可知,本发明具有如下有益效果:算法不进行模型整体几何拓扑信息的提取,而是根据三角形坐标在切片方向上投影的最大值和最小值,反求与三角形相交的切片平面,读取一次信息即可建立有序的交点链表,从而获得完整的有向封闭轮廓线,大大提高了切片速度。
附图说明
图1,切片平面与三角形网格相交。
图1示出局部区域切片平面与三角形网格的交线。在图1中,1代表三角形网格,2代表交线。
图2,切片平面与相邻两三角形公共边关系。
图2示出切片平面与相邻两三角形公共边关系。在图2中,图2(a)为两三角形公共边与切片平面相交,图2(b)为两三角形公共边在切片平面内,图2(c)为两三角形公共边与切片平面不相交。在各个图中,1、2分别代表两相邻三角形,3代表切片平面,4代表相邻两三角形的公共边。
图3,TriMeshLinkList结构体。
图3示出TriMeshLinkList结构体。在图3中,1代表切片平面与三角形边的交点。
图4,HeadTailPointer结构体。
图4示出HeadTailPointer结构体。在图4中,1代表链表中的头三角形,2代表尾三角形。
图5,算法数据结构。
图5示出了交点链表和分组数组的数据结构。在图5中,1代表切片平面与三角形边的交点,2代表链表中的头三角形,3代表尾三角形。
图6,分层邻接关系算法流程图。
具体实施方式
根据前述的描述,以下给出发明者的对所发明的算法的一个具体实施流程,但本专利所保护的范围并不限于该实施流程。
首先建立行数为切片平面个数的分组数组,每行存储指向交点链表的指针。
(1)插入下一个三角形,如果已遍历各三角形,结束算法;否则判断三角形是否与切片平面平行,如果判断为真,返回(1),否则转向(2);
(2)反求与该三角形相交的切片平面及其序号,考察分组数组中各序号对应的行,生成新的节点。如果行为空,以此节点建立带有链表指针的链表并存入行中,返回(1)。若行不为空,在行中查找链表指针指向的头三角形与插入的三角形相邻的链表指针。如果找到该指针,保留该指针信息并将其从行中删除。求出交点并存入对应节点,按邻接顺序将此节点插入该指针指向的链表,更新链表指针,转向(3),否则转向(4);
(3)判断行中剩余各链表指针指向的头三角形和尾三角形是否与插入的三角形相邻。如果头尾三角形均与插入的三角形相邻,求出交点并存入对应节点,按邻接顺序连接(2)中节点所在链表和该指针指向的链表,更新链表指针,转向(1);如果仅头三角形与插入的三角形相邻,求出交点,反转链表,按邻接关系连接(2)中节点所在链表和该指针指向的链表,更新链表指针,转向(1);如果仅尾三角形与插入的三角形相邻,求出交点,按邻接关系连接(2)中节点所在链表和该指针指向的链表,更新链表指针,转向(1);如果头尾三角形均不与插入的三角形相邻,则将(2)中链表存储在对应行中,转向(1);
(4)在行中查找链表指针的尾三角形与插入的三角形相邻的链表指针。如果未找到该指针,转向(5),否则保留该指针信息并将其从行中删除。求交点,将节点插入链表。判断行中剩余各链表指针的尾三角形是否与插入的三角形相邻。如果相邻,反转当前链表,将(2)中节点所在链表与该指针指向的链表相连,更新链表指针,返回(1),否则将(2)中链表存入行中,返回(1);
(5)以此节点建立新链表并存入行中,链表指针中指向交点链表表头和表尾的两指针均指向此节点,指向两个相关三角形的两个指针均指向插入的三角形,返回(1)
至此已建立各切片平面有序的交点链表,依次链接交点即可得到切片轮廓。

Claims (4)

1.快速成型制造中基于分层邻接排序算法的STL模型快速切片方法采用邻接插入法建立三角形邻接关系,根据三角形各点坐标在切片方向上投影的最大值和最小值反求与此三角形相交的切片平面,并通过分析相邻两三角形公共边与切片平面的位置关系,按邻接顺序建立交点链表。相比已有的基于STL全模型拓扑信息提取的切片方法以及分组矩阵切片方法,该方法并不进行整体拓扑信息的提取和三角形的分组排序,而是将三角形顺序关系融合于交点链表中,从而达到节省系统资源,提高切片效率的目的。
2.根据权利1所述的基于分层邻接排序算法的STL模型快速切片方法,其特征在于:该算法不进行模型整体几何拓扑信息的提取。
3.根据权利1所述的基于分层邻接排序算法的STL模型快速切片方法,其特征还在于:切片过程中按照三角形的相邻关系计算交点的方法为单次计算,不重复计算交点。
4.根据权利1所述的基于分层邻接排序算法的STL模型快速切片方法,其特征还在于:切片过程根据三角形坐标在切片方向上投影的最大值和最小值,反求与三角形相交的切片平面,读取一次信息即可建立有序的交点链表。
CN2010105019082A 2010-10-11 2010-10-11 快速成型制造中基于分层邻接排序算法的stl模型快速切片方法 Pending CN102446368A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010105019082A CN102446368A (zh) 2010-10-11 2010-10-11 快速成型制造中基于分层邻接排序算法的stl模型快速切片方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010105019082A CN102446368A (zh) 2010-10-11 2010-10-11 快速成型制造中基于分层邻接排序算法的stl模型快速切片方法

Publications (1)

Publication Number Publication Date
CN102446368A true CN102446368A (zh) 2012-05-09

Family

ID=46008842

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010105019082A Pending CN102446368A (zh) 2010-10-11 2010-10-11 快速成型制造中基于分层邻接排序算法的stl模型快速切片方法

Country Status (1)

Country Link
CN (1) CN102446368A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103970949B (zh) * 2014-05-05 2017-04-05 华侨大学 一种快速成型中三角面片模型的逐边分层方法
CN106803278A (zh) * 2016-12-07 2017-06-06 珠海金山网络游戏科技有限公司 一种虚拟人物半透明分层排序方法及系统
CN107775956A (zh) * 2016-08-27 2018-03-09 北京易加三维科技有限公司 一种用于增材制造的优化轮廓扫描路径的方法
WO2023029619A1 (zh) * 2021-08-30 2023-03-09 深圳市纵维立方科技有限公司 三维模型的切片方法、打印方法及相关设备

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103970949B (zh) * 2014-05-05 2017-04-05 华侨大学 一种快速成型中三角面片模型的逐边分层方法
CN107775956A (zh) * 2016-08-27 2018-03-09 北京易加三维科技有限公司 一种用于增材制造的优化轮廓扫描路径的方法
CN107775956B (zh) * 2016-08-27 2018-12-07 北京易加三维科技有限公司 一种用于增材制造的优化轮廓扫描路径的方法
CN106803278A (zh) * 2016-12-07 2017-06-06 珠海金山网络游戏科技有限公司 一种虚拟人物半透明分层排序方法及系统
WO2023029619A1 (zh) * 2021-08-30 2023-03-09 深圳市纵维立方科技有限公司 三维模型的切片方法、打印方法及相关设备

Similar Documents

Publication Publication Date Title
CN102306396B (zh) 一种三维实体模型表面有限元网格自动生成方法
CN103885385B (zh) 一种三角网格模型的分治加工方法
CN104331555A (zh) 一种针对带有边界的非封闭stl模型的切片处理方法
CN111709092B (zh) 一种基于有限元单元节点的子午线轮胎胎面花纹有限元自动建模方法
CN101510225B (zh) 产品stl模型布尔运算方法
CN110956699B (zh) 一种三角形网格模型gpu并行切片方法
CN103970949B (zh) 一种快速成型中三角面片模型的逐边分层方法
CN109325316B (zh) 基于共点焊接排序的stl模型高效并行切层方法
CN105654552B (zh) 一种面向任意分布大规模点云数据的快速Delaunay构网方法
CN102446368A (zh) 快速成型制造中基于分层邻接排序算法的stl模型快速切片方法
CN111710022B (zh) 一种避免轮廓相交的快速成型切片处理方法
CN110442994A (zh) 一种基于图论的3d打印切片处理方法
CN113953685B (zh) 一种平面板材激光切割路径规划方法
CN103366401B (zh) 多层次虚拟服饰试穿的快速显示方法
CN105225272B (zh) 一种基于多轮廓线三角网重构的三维实体建模方法
CN106125671A (zh) 一种多类图元混合加工路径优化方法
WO2019183992A1 (zh) 剥离式激光牙体预备方法、装置、设备及介质
CN101853525A (zh) 基于网格分割的带纹理模型细节保持简化方法
CN106296824B (zh) 一种基于半边数据结构的T-mesh局部细化实现方法
CN102436217A (zh) 飞机结构件槽特征腹板加工驱动几何重构方法
Gregori et al. Slicing triangle meshes: An asymptotically optimal algorithm
CN104143214A (zh) 一种电子地图多边形三角剖分方法与装置
CN103839081A (zh) 一种基于拓扑表达的跨视角步态识别方法
CN112734934B (zh) 一种基于相交边映射的stl模型3d打印切片方法
CN112598724B (zh) 一种改进的基于tin的矢量数据中心线提取方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
DD01 Delivery of document by public notice

Addressee: Liu Heng

Document name: Notification that Application Deemed to be Withdrawn

C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20120509