一种3D打印模型支撑结构生成过程中干涉点获取方法与流程

文档序号:17440583发布日期:2019-04-17 04:42阅读:616来源:国知局
一种3D打印模型支撑结构生成过程中干涉点获取方法与流程

本发明属于3d打印领域,更具体地,涉及一种3d打印模型支撑结构生成过程中干涉点获取方法。



背景技术:

在3d打印领域,并不是所有的模型都可以直接进行制造,例如对于具有悬垂区域的模型,往往需要在模型的悬垂区域添加支撑结构,从而确保模型能够被成功打印。否则,没有添加支撑的悬垂区域则会在打印过程中出现坍塌,变形从而导致打印失败。本质上讲,支撑结构不是模型结构的一部分,因此支撑结构在一定程度上增加了模型的打印时间以及材料的消耗。因此,在支撑生成技术中也要考虑到优化支撑结构,以确保支撑结构的体积最少,从而降低打印时间以及打印支撑材料的消耗。

在3d打印中,模型的支撑算法的往往要经过下列过程组成:支撑区域的识别过程,支撑点采样过程以及支撑结构生成过程,其中悬垂区域的识别广泛采用的是基于stl模型的三角面片判别的方法,如果三角面片的法向矢量与z轴的夹角大于临界角度αmax,则该三角形被识别为待支撑三角形,这个角度αmax称为最大倾斜角度,该αmax与具体的工艺和打印材料相关,因此可以通过实验获得具体的值,因此,为了保证支撑杆能够被成功打印,因此所有支撑该的倾斜角度必须小于αmax;显然,对于每个支撑点都伴随这一个支撑搜索区域,以圆锥搜索空间(或者称为:支撑圆锥)为例,如说明书附图2所示,对于图2a,由于支撑圆锥高度太小,因此不能和网格实体发生交集,对于图2b,则支撑圆锥与网格模型产生交集,因此需要在交集中进行干涉搜索找到干涉点,确保干涉点到支撑点的距离最短,这样可以直接在网格模型表面直接建立支撑结构。

在给定高度的支撑圆锥区域内,进行圆锥与网格模型的干涉搜索过程是十分复杂且非常消耗时间的,以stl网格模型为例,首先,需要遍历整个stl网格模型的三角面片,确定与支撑圆锥相交的三角面片,然后将这些三角面片与圆锥区域最相交计算处理,然后再相交三角面片上搜索到优选的干涉点,确保与支撑点之间的连线长度最短,在当前的支撑生成技术中,并没有很好的给出很好的解决方案,这严重阻碍着支撑算法的生成效率的提高,当前支撑生成技术中,vanke等人则是通过在利用gpu强大的计算能力来加速干涉搜索的过程,他们具体实现是通过在gpu的深度缓存中绘制支撑圆锥以及网格模型,然后在相交空间中找到最近的位置即座位干涉点返回,尽管vanke降低了干涉搜索的计算时间,但是他们并没有降低圆锥与网格模型之间干涉搜索的计算复杂度,还有其他的方法则避免在3d空间进行支撑圆锥与网格模型之间的干涉搜索,在支撑区域的垂直向下空间内进行填充简单的阵列结构作为支撑结构,如qian等人则通过discrete-marking方法生成快速生成网状支撑结构,dumax等人利用切片数据进行分析,建立了桥形的支撑结构形式,还有jin等人则采用类似的方法切片数据分析,建立了支撑结构。用于支撑圆锥和网格模型之间的干涉搜索在树形支撑生成过程中起着关键的作用,当前的干涉搜索方法,严重阻碍着支撑算法效率的提高,因此,迫切需要提出一种快速高效的干涉搜索方法,来提高树形支撑算法的效率。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明提供了一种3d打印模型支撑结构生成过程中干涉点获取方法,通过对3d模型分别建立一级体素和二级体素后,判断任意点的支撑圆锥是否与二级体素相交,首先在二级体素中搜索相交的连通区域,然后在连通区域中搜索相交的壳体体素,将搜索范围从二级体素、连通区域到壳体体素逐渐缩小,最后选取到支撑点距离最短的壳体体素中心点作为干涉点,该搜索方法所计算干涉点所需要的搜索区域小,获取最终干涉搜索结果计算时间短,计算效率高,准确度高。

为实现上述目的,按照本发明,提供了一种3d打印模型支撑结构生成过程中干涉点获取方法,其特征在于,该方法包括下列步骤:

(a)将待打印3d模型进行网格化处理获得其网格模型,将该网格模型进行一级体素化离散,获得所述网格模型的一级体素,且该一级体素中与所述网格模型外壳相交的部分作为壳体体素;

(b)将经步骤(a)处理后的所述网格模型进行二级体素化离散,获得该网络模型的二级体素,该二维体素将所述一级体素包含在其中,对于所述壳体体素,在所述二级体素中将彼此相连的所述壳体体素作为一个连通区域,以此在所述二级体素中获得多个连通区域,计算每个所述连通区域的轴对齐包围盒;

(c)在3d模型的支撑结构生成过程中,对于支撑结构中的每个支撑点,建立该支撑点的支撑圆锥,并计算该支撑圆锥的轴对齐包围盒,然后判定该支撑圆锥包围盒是否与相交的二级体素内的多个连通区域的轴对齐包围盒是否相交,

当所述支撑圆锥的轴对齐包围盒与多个连通区域的轴对其包围盒均不相交时,所述支撑圆锥与所述待打印的3d模型不相交;

当所述支撑圆锥的轴对齐包围盒与所述多个连通区域的轴对齐包围盒中至少一个相交时,在相交的所述连通区域中搜索与所述支撑圆锥的轴对齐包围盒相交的壳体体素,以此获得多个相交的壳体体素,该相交的壳体体素中在所述支撑圆锥内的壳体体素作为目标壳体体素,并计算每个目标壳体体素的中心点与所述支撑点之间的距离,将距离最小的壳体体素的中心点作为待求解的干涉点,以此实现干涉点的获取。

进一步优选地,在步骤(b)中,所述连通区域的获取采用种子填充算法实现。

进一步优选地,在步骤(b)中,对于所述连通区域,当该连通区域的高度大于预设阈值时,优选将该连通区域按照高度均匀等分为多个连通区域。

进一步优选地,在步骤(b)中,所述二维体素的尺寸大小是所述一维体素的整数倍。

进一步优选地,在步骤(c)中,所述判断该支撑圆锥的轴对齐包围盒是否与所述多个连通区域相交的方法,优选将所述支撑圆锥的轴对齐包围盒按照高度方向从上到下的方式与所述多个连通区域逐一判断。

进一步优选地,在步骤(b)中,所述在所述相交的连通区域中搜索与所述支撑圆锥的轴对齐包围盒相交的壳体体素,优选按照高度方向从上到下的搜素所述壳体体素。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:

本发明通过采用一级体素和二级体素的划分,并在二级体素内对相所述壳体体素进行连通区域划分,则在计算支撑圆锥与网格模型之间的干涉情况时,可以快速高效地计算出优选干涉点的位置,在实际实现中,由于一级体素的空间尺寸相对较小,因此一级体素的中心位置可以近似作为在与圆锥相交的网格模型区域内最近的干涉点位置,其次在3d打印领域中,对支撑干涉点的精确度要求不高,因此本发明方法可以在3d打印支撑技术中应用,综上,本发明方法提出了一种3d打印模型支撑结构生成过程中快速获取干涉点的方法,从而可以提高支撑结构的生成效率。

附图说明

图1是按照本发明的优选实施例所构建的3d打印模型与其支撑结构的干涉点获取方法的流程图;

图2a是按照本发明的优选实施例所构建的支撑圆锥与打印模型不发生干涉的结构示意图;

图2b是按照本发明的优选实施例所构建的支撑圆锥与打印模型发生干涉的结构示意图;

图3是按照本发明的优选实施例所构建的一级体素的结构示意图;

图4a是按照本发明的优选实施例所构建的壳体体素的结构示意图;

图4b是按照本发明的优选实施例所构建的二级体素的结构示意图;

图4c是按照本发明的优选实施例所构建的一级和二级体素共存的结构示意图;

图5是按照本发明的优选实施例所构建的干涉点的搜索示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

图1是按照本发明的优选实施例所构建的3d打印模型与其支撑结构的干涉点获取方法的流程图,如图1所示,一种3d打印模型支撑结构生成过程中干涉点,本发明提供如下的技术方案:

步骤1:建立网格模型的两级体素模型,具体实现方式如下:

(1)对网格模型进行一级体素化处理,并将网格模型所接触到的一级体素标记为壳体体素,即shell体素,图3是按照本发明的优选实施例所构建的一级体素的结构示意图,如图3所示,图中三角网格部分是待打印3d网络模型,方块部分是一级体素。

(2)对网格模型进行二级体素化处理,二级体素的大小是一级体素的整数倍,这样可以保证在二级体素中可以含有完整的一级体素,即保证一级体素与二级体素之间的唯一映射关系,图4b是按照本发明的优选实施例所构建的二级体素的结构示意图,如图4b所示,图中中心的飞机模型即为待打印的3d模型。这样在二级体素中可能包含壳体体素,因此可以利用经典的种子填充算法对二级体素内的壳体体素依据区域连通性进行分组,将连通在一起的多个壳体体素作为一个连通区域,标记为element,如果对于某些连通区域的高度大于给定的阈值,例如设定阈值为二级体素大小的1/5,则可以根据高度将连通区域进行均匀等分;计算每个连通区域的轴对齐包围盒,并将其包含的壳体体素的中心位置也保存在连通区域中,注意,这些壳体体素的中心位置按照从上到下的顺序(即z轴方向的坐标从小到大的顺序)保存在有序数组之中。

图4a是壳体体素结果,图4b是二级体素体素结果,图4c是飞机模型的两级体素结果,从图中可以看出,通过两级体素化处理,该飞机网格模型就可以用离散化的不同尺度的体素信息数据表示,继而为后续的支撑结构中支撑点的干涉点获取提供丰富的感知该飞机网格模型的空间分布信息,便于在支撑圆锥内的网格表面上快速获取干涉点。

步骤2:对于3d模型的支撑结构,该支撑结构中支撑点可以是3d空间中的任意点,可称为任意支撑点,建立该任意点的支撑圆锥,首先计算支撑圆锥的轴对齐包围盒,通过从上到下的方法快速查找在相交二级体素内的连通区域是否与支撑圆锥相交。可通过判断该支撑圆锥的轴对齐包围盒与连通区域的轴对齐包围盒的相交性来判定。如果没有相交,则支撑圆锥与3d模型不相交,图5是按照本发明的优选实施例所构建的干涉点的搜索示意图。如图5所示,若相交,则通过从上到下的方法快速查找该连通区域(element)内的有序数组,从首到尾的遍历,获得连通区域内且在支撑圆锥空间内的相交的壳体体素,计算支撑点与相交的壳体体素之间的距离,将距离支撑点最近的壳体体素的中心点作为干涉点,显然,如果只有唯一的一个优选壳体体素,则其中心点坐标直接作为干涉点返回。

在上述的一级体素离散化中,一级体素的尺寸设置的小,因此壳体体素的中心坐标在网格模型的表面的误差不大,另外,在支撑生成技术对支撑结构的位置精度要求不高,本发明提供的方法可行性高,最后,本方法不需要对大量的三角面片进行求交测试以及干涉点精确计算,执行效率高。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1