一种激光三维加工模型切片数据处理方法

文档序号:30972216发布日期:2022-08-02 22:08阅读:91来源:国知局
一种激光三维加工模型切片数据处理方法

1.本发明属于激光三维加工领域,更具体地,涉及一种激光三维加工模型切片数据处理方法。


背景技术:

2.激光三维加工技术是一种新型的技术,具有精度高、绿色环保、高效快捷、设计自由度高等众多优点,广泛应用于电子工业、材料包装、航天航空、皮革制品、汽车工业等众多领域。激光三维加工制造中,一般采用逐层加工的设计思想,将三维模型分层,然后对每一层进行增材或减材操作。其中,一般使用切片算法对模型进行分层,切片算法指使用一系列的平行平面,与三维数字模型求交,得到交集部分。对于获取的交集,以线画面,使用短线段进行填充,这一步算法称为填充算法。切片算法是填充算法的前置操作,因此,合理的切片数据处理方法会影响后续填充算法的实现难度和效率,而填充算法的数据处理方法也会影响后续激光器控制模块的实现难度。
3.目前,常用的三维加工算法具有数据量大、存在曲面误差、缺少拓扑信息等缺点,这不仅增加后续填充算法的开发成本,也降低了加工数据的精度。


技术实现要素:

4.针对现有技术的以上缺陷或改进需求,本发明提供了一种激光三维加工模型切片数据处理方法,其目的在于解决现有的三维加工模型中切片数据复杂导致后续加工精度低、填充算法成本高的技术问题。
5.为实现上述目的,按照本发明的一个方面,提供了一种激光三维加工模型切片数据处理方法,包括以下步骤:
6.s1,读取三维加工模型并获取其aabb包围盒;
7.s2,在z轴方向上根据aabb包围盒的上表面生成若干层切片平面,将若干层切片平面与三维加工模型求交集,获得若干层的交集信息;
8.s3,根据每一层的交集信息提取当前层的交集轮廓线,存储交集轮廓线中的轮廓序号及轮廓环信息,形成当前层的轮廓列表;
9.s4,遍历当前层轮廓列表中的轮廓,并按照填充单元划分外轮廓及其对应的所有内轮廓,获得多个轮廓信息,一个填充单元为一个外轮廓及其对应的所有内轮廓,一个填充单元一定含有一个外轮廓,含有零个或多个内轮廓,每个轮廓信息包括:该轮廓的轮廓序号、该轮廓的轮廓环信息、该轮廓是否为外轮廓、该轮廓的内轮廓链表;
10.s5,根据多个轮廓信息生成当前层的填充数据并保存;
11.s6,遍历所有层,重复步骤s3-s5,直到保存三维加工模型中所有层的填充数据为止。
12.通过上述技术方案,本技术的填充数据中,以一个外轮廓及其对应的所有内轮廓为一个填充单元,将填充单元作为单位来对轮廓列表中的轮廓进行处理,并在形成的填充
数据中增加了轮廓的包含信息,简化了统一填充输入数据,使得后续填充算法可按照填充单元进行填充,提供了便利。
13.优选地,s1中读取三维加工模型时,选择三维加工模型的step文件,以获取三维加工模型的aabb包围盒位置及大小。
14.优选地,s2中生成若干层切片平面的具体操作为:以包围盒上表面作为第一层切片平面,然后将切片平面沿z轴负方向移动一个切片高度单元,获得新的切片平面,如此重复,直至切片平面的z值小于包围盒下表面的z值。
15.优选地,s4中,按照填充单元划分外轮廓及其对应的所有内轮廓的具体操作为:先根据轮廓的内外标准判断当前轮廓是否为外轮廓,如果当前轮廓不是外轮廓,则跳过该轮廓,进行下一个轮廓的判断;如果当前轮廓是外轮廓,则标识当前轮廓为外轮廓,并找到当前轮廓对应的所有内轮廓,再进行下一个轮廓的判断。
16.优选地,找到当前轮廓对应的所有内轮廓的具体操作为:依据当前轮廓的包围轮廓个数,逐一判断包围轮廓个数比当前轮廓的包围轮廓个数大一的轮廓中,其包围轮廓中是否存在当前轮廓,如存在,则标识其为当前轮廓的内轮廓,然后进行下一个轮廓的判断,否则跳过该轮廓,直接进行下一个轮廓的判断。
17.优选地,一个轮廓的包围轮廓是指该轮廓的所有点都在包围轮廓所形成的区域内。
18.优选地,s4中在遍历当前层轮廓列表中的轮廓,并按照填充单元划分外轮廓及其对应的所有内轮廓之前,需先遍历一次当前层轮廓列表中的每一个轮廓,以找到其所有的包围轮廓,具体操作为:从当前轮廓上取一点,依次与其他轮廓进行比较,若该点落在其他轮廓所围成的范围内,则找到当前轮廓的包围轮廓,再遍历剩余轮廓,直到轮廓列表中的所有轮廓包围轮廓均被找到。
19.优选地,s4中该轮廓的内轮廓链表节点的数据为该轮廓对应的内轮廓在轮廓列表中的序号。
20.优选地,s5中填充数据存储在内存中或磁盘中,每层填充数据由多条折线组成,每条折线由多个点组成。
21.优选地,填充数据存储在内存中时,一层填充数据结构为折线的一维数组,点的二维数组,三维加工模型的填充数据结构为点的三维数组;填充数据存储在磁盘中时,第一行为三维加工模型的分层层数,接下来每两行为一层的填充数据,其中第一行为该层填充折线的个数,第二行为多条填充折线单元,每条填充折线单元为当前折线的加工点数,随后为有序的加工点坐标。
附图说明
22.图1是本方法的流程示意图;
23.图2是本方法s2中构建若干层切片平面求交集的原理示意图;
24.图3是本方法一些实施例中直线填充的示意图;
25.图4是本方法另一些实施例中轮廓填充的示意图;
26.图5是本方法的填充数据存储组织方法示意图。
具体实施方式
27.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
28.如图1和图2所示,本发明提出一种激光三维加工模型切片数据处理方法,包括以下步骤:
29.s1,读取三维加工模型并获取其aabb包围盒;
30.s2,在z轴方向上根据aabb包围盒的上表面生成若干层切片平面,将若干层切片平面与三维加工模型求交集,获得若干层的交集信息;
31.s3,根据每一层的交集信息提取当前层的交集轮廓线,存储交集轮廓线中的轮廓序号及轮廓环信息,形成当前层的轮廓列表;
32.s4,遍历当前层轮廓列表中的轮廓,并按照填充单元划分外轮廓及其对应的所有内轮廓,获得多个轮廓信息,一个填充单元为一个外轮廓及其对应的所有内轮廓,一个填充单元一定含有一个外轮廓,含有零个或多个内轮廓,每个轮廓信息包括:该轮廓的轮廓序号、该轮廓的轮廓环信息、该轮廓是否为外轮廓、该轮廓的内轮廓链表;
33.s5,根据多个轮廓信息生成当前层的填充数据并保存;
34.s6,遍历所有层,重复步骤s3-s5,直到保存三维加工模型中所有层的填充数据为止。
35.上述技术方案中,通过将一个轮廓的轮廓序号、轮廓环信息、是否为外轮廓以及其对应的内轮廓链表数据整合为一个轮廓信息,每一次s3-s5都可以获取一层交集内所有轮廓的轮廓信息,从而形成该层的填充数据,所有层的填充数据最终为三维加工模型的填充数据,可用于形成激光头的加工路径。本技术的填充数据中,以一个外轮廓及其对应的所有内轮廓为一个填充单元,将填充单元作为单位来对轮廓列表中的轮廓进行处理,并在形成的填充数据中增加了轮廓的包含信息,简化了统一填充输入数据,无需针对每一种输入都进行特殊处理,使得后续填充算法可按照填充单元进行填充,提供了便利。
36.在一些实施例中,s1中读取三维加工模型时,选择三维加工模型的step文件,以获取三维加工模型的aabb包围盒位置及大小。例如可以使用open cascade technology(一种开源几何库,简称occt)提供的接口进行文件解析,将三维加工模型文件转化为软件内部使用边界表示存储模型。当然,另一些实施例中,在s1中读取三维加工模型时,也可以选择stl文件,但是,常用的三维加工算法大多基于stl文件,stl文件由大量三角面片逼近三维加工模型,它有数据量大、存在曲面误差、缺少拓扑信息等缺点,这不仅增加后续填充算法的开发成本,也降低了加工数据的精度。而本技术优选为step文件,当导入处理的数据文件类型为step格式时,内部使用边界表示存储模型,初始三维加工模型误差较stl格式的小,有利于减小数据量并提高加工数据的精度,从而降低后续处理算法的开发成本。
37.进一步地,在一些实施例中,s2中生成若干层切片平面的具体操作为:以包围盒上表面作为第一层切片平面,然后将切片平面沿z轴负方向移动一个切片高度单元,获得新的切片平面,如此重复,直至切片平面的z值小于包围盒下表面的z值。可以每获得一层切片平面就与三维加工模型求交集,例如,先以包围盒上表面作为第一层切片平面,根据包围盒形
心和包围盒的长宽高计算包围盒上表面的四个顶点坐标,以这的哥点生成矩形面,该矩形面即为第一层切片平面。在求交集过程中,可以使用occt提供的布尔运算功能对切片平面和三维加工模型求取交面,保存求取的交面。
38.s3中,每一层的交集信息中,实际有用的信息为轮廓线,即约束区域的闭合边界曲线。每一个交集轮廓线均有一个原始序号,将交集轮廓线中的轮廓序号及轮廓环信息存储起来,形成当前层的轮廓列表,用于s4。例如,某一层中共有10个轮廓,它们的原始序号分别为0-9,那么轮廓列表中则存储了这10个轮廓的轮廓序号以及每个轮廓对应的轮廓环信息。
39.进一步地,在一些实施例中,s4按照填充单元划分外轮廓及其对应的所有内轮廓的具体操作为:先根据轮廓的内外标准判断当前轮廓是否为外轮廓,如果当前轮廓不是外轮廓,则跳过该轮廓,进行下一个轮廓的判断;如果当前轮廓是外轮廓,则标识当前轮廓为外轮廓,并找到当前轮廓对应的所有内轮廓,再进行下一个轮廓的判断。例如,当判断轮廓0为外轮廓后,则将其标识为外轮廓,并找到其对应的所有内轮廓,即在轮廓1-9中寻找轮廓0的内轮廓。当判断轮廓0为内轮廓时,则无需做任何标识,直接进行下一个轮廓的判断。
40.进一步地,找到当前轮廓对应的所有内轮廓的具体操作为:依据当前轮廓的包围轮廓个数,逐一判断包围轮廓个数比当前轮廓的包围轮廓个数大一的轮廓中,其包围轮廓中是否存在当前轮廓,如存在,则标识其为当前轮廓的内轮廓,然后进行下一个轮廓的判断,否则跳过该轮廓,直接进行下一个轮廓的判断。例如,当前轮廓为轮廓0,而轮廓0的包围轮廓个数为0,轮廓4的包围轮廓个数为1,那么,就判断轮廓4的包围轮廓中是否有轮廓0,如是,则表示轮廓4为轮廓0的内轮廓。
41.一个轮廓的包围轮廓是指该轮廓的所有点都在包围轮廓所形成的区域内。因此,在找到当前轮廓对应的所有内轮廓之前,可以先将轮廓列表中的所有轮廓按其包围轮廓的个数进行升序排序,那么在寻找内轮廓时,更加方便。具体可以在s4中遍历当前层轮廓列表中的轮廓,并按照填充单元划分外轮廓及其对应的所有内轮廓之前,通过遍历一次当前层轮廓列表中的每一个轮廓的方式来找到其所有的包围轮廓。即从当前轮廓上取一点,依次与其他轮廓进行比较,若该点落在其他轮廓所围成的范围内,则找到当前轮廓的包围轮廓,再遍历剩余轮廓,直到轮廓列表中的所有轮廓包围轮廓均被找到。然后,将当前层轮廓列表中的所有轮廓按照其拥有的包围轮廓个数进行升序排序,用于s4中寻找内轮廓时使用。例如轮廓列表中有轮廓0-轮廓9共10条轮廓,他们的包围轮廓个数依次为0、2、3、2、1、1、0、0、3、4,那么就按照包围轮廓的个数进行升序排序,轮廓0-轮廓9排序后依次为:轮廓0、轮廓6、轮廓7、轮廓4、轮廓5、轮廓1、轮廓3、轮廓2、轮廓8、轮廓9。
42.进一步地,在一些实施例中,s4中该轮廓的内轮廓链表节点的数据为该轮廓对应的内轮廓在轮廓列表中的序号,可以减少存储空间。
43.进一步地,s5中填充数据存储在内存中或磁盘中,每层填充数据由多条折线组成,每条折线由多个点组成。更具体地,由于一个三维加工模型在本技术中分为了若干层,因此,一个三维加工模型的填充数据由多层填充数据组成,利用填充算法,以填充单位为单位,使用线段填充,最终这些填充数据形成激光头的加工路径。如图3和图4所示,填充算法可以使用直线填充算法,也可以使用轮廓偏置算法。
44.在一些实施例中,使用直线填充算法,即使用一系列平行直线填充,直线填充算法可以参考计算机图形学中的扫描线填充算法,以填充单元为单位,使用一组垂直或者水平
扫描线从下到上(或者从左到右)扫描简单多边形,每条扫描线和多边形部分边相交产生交点,这些交点将扫描线划分成在多边形内部的线段和在多边形外部的线段(或射线)。加工时,将多边形内部的线段进行加工即可完成填充。
45.在另一些实施例中,使用轮廓偏置算法,即不断向外偏置内轮廓或向内偏置外轮廓,形成填充路径。例如,可以使用clipper library(一种几何裁剪库)辅助偏置,以填充单元为单位,按照外轮廓逆时针、内轮廓顺时针的顺序将轮廓输入到clipper library的路径中,然后执行一次偏置算法,保存偏置结果,执行结束后如果路径中仍然存在多边形,则增加偏置距离,再次执行一次偏置算法,保存偏置结果,直至偏置结果中无多边形,则当前可连填充单元填充完毕。
46.如图5所示,加工时,激光器的轨迹在几何上为折线形式,激光器从折线起点出发,沿着折线点进行加工,加工至折线终点时,关灯,跳转到下一条折线的起点,开灯继续加工。为了统一后续处理和显示操作,在存储形式上统一直线填充和轮廓偏置算法的加工数据。
47.当填充数据存储在内存中时,一层填充数据结构为折线的一维数组,点的二维数组,三维加工模型的填充数据结构为点的三维数组。
48.当填充数据存储在磁盘中时,第一行为三维加工模型的分层层数,接下来每两行为一层的填充数据,其中第一行为该层填充折线的个数,第二行为多条填充折线单元,每条填充折线单元为当前折线的加工点数,随后为有序的加工点坐标,每个坐标按x、y、z顺序排列,数据之间使用分隔符分隔。
49.当填充方式为直线填充时,折线点数均为2,即加工折线均为直线段;当填充方式为轮廓填充时,一条加工折线代表一条闭合多边形,即一条加工折线的终点等于其起点,这样,不论是直线填充,还是轮廓填充,加工路径在内存和磁盘中的存储形式是统一的。规范统一的直线填充和轮廓填充的内存组织方式,可以降低三维加工过程中激光器控制模块的开发难度,不用针对每一种输入都进行特殊处理。
50.本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1