面向三维打印的三维模型处理方法及装置的制造方法
【技术领域】
[0001]本发明涉及三维打印技术领域,特别涉及一种面向三维打印的三维模型处理方法及装置。
【背景技术】
[0002]三维模型一般是由三角网格构成的。三维打印由于受到技术的局限性,只能打印特定的三维模型。世界上的有一小部分三维模型是针对三维打印而设计的,因此这部分模型基本可以直接打印,并且取得比较好的打印效果。
[0003]当前,大多数三维模型并不是针对三维打印而设计的,例如,动漫、游戏、建筑等领域中的三维模型,由于这些三维模型的设计者没有考虑到三维打印的要求,故而在对这些三维模型的打印过程中,非常容易出现错误。
[0004]最新的现有技术中,针对三维打印技术陆续给出了一些解决方案,取得了初步进展,但仍然存在多种问题和缺陷,也没有针对三维打印的需求设计出一套完整的解决方案,导致三维打印技术的一些问题一直无法得到解决。
[0005]因此,有必要提出一种面向三维打印的三维模型处理方法及装置,以能够解决上述问题,提供三维打印的整体解决方案。
【发明内容】
[0006]本发明的目的是提供一种避免出现打印错误的面向三维打印的三维模型处理方法及装置。
[0007]根据本发明的一个方面,提供了一种面向三维打印的三维模型优化方法,所述方法包括:
[0008]检测待处理三维模型中是否存在空隙,在所述待处理三维模型中存在空隙时,对所述空隙进行修补;
[0009]检测所述待处理三维模型中是否存在自相交部分,在所述待处理三维模型中存在自相交部分时,对所述自相交部分进行移除;
[0010]检测所述待处理三维模型中各三角形的法矢量方向,在所述三角形的法矢量方向指向所述待处理三维模型内部时,将该三角形中三个顶点的顺序方向设置为相反方向,从而反转该三角形法矢量的方向。
[0011]可选地,所述检测待处理三维模型中是否存在空隙,进一步包括:
[0012]若所述待处理三维模型中各三角形的三个边均存在唯一的邻接三角形,则认为所述待处理三维模型中存在空隙,否则认为所述待处理三维模型中不存在空隙。
[0013]可选地,所述对所述空隙进行修补,进一步包括:
[0014]将所述待处理三维模型中各三角形设置为约束,通过约束Delaunay四面体剖分算法对所述空隙进行修补,以使得在所述空隙处生成四面体网格,将生成的四面体网格的外表面作为所述空隙处的三角网格;
[0015]或,
[0016]根据在所述空隙处的各三角形,生成由所述空隙的边界所组成的多边形,对所述多边形进行遍历,并将遍历到的多边形的最小二乘平面作为XY平面,并在所述XY平面中建立局部坐标系,将所述遍历到的多边形的各边设置为约束,在所述局部坐标系中通过约束Delaunay三角剖分算法为所述空隙生成三角网格,将生成的三角网格从所述局部坐标系转换至所述待处理三维模型的坐标系中,并将转换后的三角网格添加至所述空隙处。
[0017]可选地,所述对所述自相交部分进行移除,进一步包括:
[0018]对所述待处理二维模型中各二角形进彳丁二维模型的布尔并运算,从布尔并运算的结果获取所述待处理三维模型的外表面,将所述待处理三维模型的外表面作为移除所述自相交部分后的待处理三维模型。
[0019]可选地,所述方法还包括:
[0020]检测所述待处理三维模型中是否存在薄壁,在所述待处理三维模型存在薄壁时,向用户展示模型更换信息。
[0021]可选地,所述检测所述待处理三维模型中是否存在薄壁,进一步包括:
[0022]对所述待处理三维模型中的三角形进行遍历,将遍历到的当前三角形添加至三角形区域,将该三角形区域的邻接三角形也添加至该三角形集合中,直至该三角形集合的面积大于预设面积,若该三角形集合中各三角形与除该三角形集合之外的其他三角形均小于等于预设距离,则认为所述待处理三维模型存在薄壁。
[0023]可选地,所述检测待处理三维模型中是否存在空隙之前,所述方法还包括:
[0024]对所述待处理三维模型进行三角网格分离,以获得所述待处理三维模型中的各三角网格。
[0025]可选地,所述对所述待处理三维模型进行三维网格分离之前,所述方法还包括:
[0026]获取所述待处理三维模型,计算所述待处理三维模型中的任意两点之间的距离,若计算的距离小于预设距离,则将该两个点中的一个点删除,并将被删除的点的邻接三角形的顶点指向该两个点的另一个点。
[0027]根据本发明的另一个方面,提供了一种面向三维打印的三维模型优化装置,所述装置包括:
[0028]空隙修补单元,用于检测待处理三维模型中是否存在空隙,在所述待处理三维模型中存在空隙时,对所述空隙进行修补;
[0029]自相交移除单元,用于检测所述待处理三维模型中是否存在自相交部分,在所述待处理三维模型中存在自相交部分时,对所述自相交部分进行移除;
[0030]法矢量设置单元,用于检测所述待处理三维模型中各三角形的法矢量方向,在所述三角形的法矢量方向指向所述待处理三维模型内部时,将该三角形中三个顶点的顺序方向设置为相反方向,从而反转该三角形法矢量的方向。
[0031]可选地,所述空隙修补单元,进一步用于若所述待处理三维模型中各三角形的三个边均存在唯一的邻接三角形,则认为所述待处理三维模型中存在空隙,否则认为所述待处理三维模型中不存在空隙。
[0032]可选地,所述空隙修补单元,进一步用于将所述待处理三维模型中各三角形设置为约束,通过约束Delaunay四面体剖分算法对所述空隙进行修补,以使得在所述空隙处生成四面体网格,将生成的四面体网格的外表面作为所述空隙处的三角网格;
[0033]或,
[0034]根据在所述空隙处的各三角形,生成由所述空隙的边界所组成的多边形,对所述多边形进行遍历,并将遍历到的多边形的最小二乘平面作为XY平面,并在所述XY平面中建立局部坐标系,将所述遍历到的多边形的各边设置为约束,在所述局部坐标系中通过约束Delaunay三角剖分算法为所述空隙生成三角网格,将生成的三角网格从所述局部坐标系转换至所述待处理三维模型的坐标系中,并将转换后的三角网格添加至所述空隙处。
[0035]可选地,所述自相交移除单元,进一步用于对所述待处理三维模型中各三角形进行三维模型的布尔并运算,从布尔并运算的结果获取所述待处理三维模型的外表面,将所述待处理三维模型的外表面作为移除所述自相交部分后的待处理三维模型。
[0036]可选地,所述装置还包括:
[0037]薄壁检测单元,用于检测所述待处理三维模型中是否存在薄壁,在所述待处理三维模型存在薄壁时,向用户展示模型更换信息。
[0038]可选地,所述薄壁检测单元,进一步用于对所述待处理三维模型中的三角形进行遍历,将遍历到的当前三角形添加至三角形区域,将该三角形区域的邻接三角形也添加至该三角形集合中,直至该三角形集合的面积大于预设面积,若该三角形集合中各三角形与除