一种FDM三维打印垂直支撑模型的垂直投影求交方法与流程

文档序号:13497219阅读:318来源:国知局

本发明涉及三维打印相关技术领域,尤其是指一种fdm三维打印垂直支撑模型的垂直投影求交方法。



背景技术:

fdm是“fuseddepositionmodeling”的简写形式,即为熔融沉积成型。搞懂fdm成型技术,首先我们需要转变思维。通常2d打印是在一张纸上(一个平面上)完成打印,而3d打印是完成一个立体模型的打印。fdm,通俗来讲就是利用高温将材料融化成液态,通过打印头挤出后固化,最后在立体空间上排列形成立体实物。

由于fdm设备的特殊性,数据预处理部分需要为零件生成支撑部分以防止加工过程中防止坍塌。基于已有stl模型生成支持fdm设备的支撑数据是一个复杂的问题,其中涉及到数字几何处理很难处理的布尔操作、容差处理、鲁棒性处理等问题。一般网格模型的布尔操作,其操作对算法要求较高,这主要表现在容差、求交效率、奇异判断、拓扑重建等方面。



技术实现要素:

本发明是为了克服现有技术中存在上述的不足,提供了一种对算法要求较低的基于fdm三维打印垂直支撑模型的垂直投影求交方法。

为了实现上述目的,本发明采用以下技术方案:

一种fdm三维打印垂直支撑模型的垂直投影求交方法,具体包括如下步骤:

(1)基于stl网格模型对支撑区域进行搜索,扫成支撑轮廓;

(2)对支撑轮廓进行垂直投影求交,具体为:对于一个待求支撑区域,看成一个从支撑区域向下投影而扫成的网格模型,这个模型在扫成中,遇到的零件表面为该支撑模型的底面,该底面和所有的侧面组成支撑模型;

(3)重新网格化;

(4)布尔并操作,并输出支撑模型。

该方法实际先通过垂直支撑模型和物体模型的“布尔差”得到支撑体,然后经过重新网格化将这些支撑体进行布尔并操作得到,其中“垂直投影求交”实际为“布尔差”操作的实现。该方法对垂直投影求交操作加以优化,即考虑顶面向-z方向投影求交的求解方法,以得到合适的支撑模型,大大简化了对于算法的要求。

作为优选,在步骤(1)中,支撑区域搜索目标是搜索需要支撑的模型表面,这些支撑区域分别表示了倾斜角度过大、悬挂点、悬挂边而导致的在加工过程中容易造成坍塌的情况,这些情况归结起来表示各个类的面片,在这些不同的面片中,倾斜面的判断比较简单,只要判断面法向和z轴的夹角即可,而悬挂点和悬挂线的判断则要对网格模型进行几何分析。

作为优选,在得到需要支撑的各个类面片中包括了三角面片,而在得到需要支撑的三角面片后,需要基于它们之间的几何信息建立其拓扑关系,将具有公共边的三角面片合并,最终形成一个个连贯的区域。

作为优选,三角面片合并方法如下:所有需要支撑的三角面片组成一系列支撑区域,这些支撑区域通过对得到的三角面片进行聚类获得,具体为,对所有三角形进行两两测试,如果二者共边,则将该三角形合并为一个区域,所有相互邻接的三角面片组成待支撑区域。

作为优选,在步骤(2)中,垂直投影求交方法如下:

step1:支持顶面面片集合sa向底面投影,得到一个平面区域a,平面区域a为同平面三角形集合;

step2:计算落于平面区域a中的区域的三角面片集合w;

step3:对三角面片集合w中的三角形,计算其相互遮挡关系;

step4:组成支撑网格模型,其中:可见面片集合vs、平面区域a、支持顶面面片集合sa以及支持顶面面片集合sa向下投影的侧面hsa,组成新的支撑模型的实体;

step5:面片集合nhs、可见面片集合vs、平面区域a、支持顶面面片集合sa组成新的支撑网格的面片集合。

作为优选,在步骤step2中,三角面片集合w获取方法如下:

step2.1:对网格模型面片集合st-支持顶面面片集合sa中的每个三角形t,与平面区域a中的三角面片两两相交,其重叠区域为r,对重叠区域r进行三角化,得到三角形集合m;

step2.2:对三角形集合m中的每个三角面片,比较和支持顶面面片集合sa的关系,如果高于支持顶面面片集合sa中的面片,则放弃,否则进入三角面片集合w中。

作为优选,在步骤step3中,计算其相互遮挡关系的方法如下:

step3.1:记录已经就绪的可见面片集合为vs,其中:初始的可见面片集合vs=null;

step3.2:取三角面片集合w中的一个三角形t,计算三角形t和可见面片集合vs中的每个面片的关系,可见面片集合vs中的任意面片为ts,计算t和ts之差,得到的区域则为新的可见面,对这个可见面进行三角化,得到可见面片集合vs中的新的面片集合。

作为优选,在步骤step3.2中,t和ts的关系有两种:(1)t在ts之上;(2)ts在t之上;若t在ts之上,则ts将可能遮挡掉部分或者全部的t;若ts在t之上,则t将可能遮挡掉部分或者全部的ts。

作为优选,在步骤step4中,新的支撑模型的实体获取方法如下:

step4.1:将可见面片集合vs向底面投影,得到新的底面tvs,其中:新的底面tvs和侧面hsa相交;

step4.2:对新的底面tvs的面片集合建立邻接关系,显然每条边对应一个新的侧面;

step4.3:对新的侧面进行三角化,得到面片集合nhs。

本发明的有益效果是:对垂直投影求交操作加以优化,即考虑顶面向-z方向投影求交的求解方法,以得到合适的支撑模型,大大简化了对于算法的要求。

下面结合具体实施方式对本发明做进一步的描述。

一种fdm三维打印垂直支撑模型的垂直投影求交方法,具体包括如下步骤:

(1)基于stl网格模型对支撑区域进行搜索,扫成支撑轮廓;

支撑区域搜索目标是搜索需要支撑的模型表面,这些支撑区域分别表示了倾斜角度过大、悬挂点、悬挂边而导致的在加工过程中容易造成坍塌的情况,这些情况归结起来表示各个类的面片,在这些不同的面片中,倾斜面的判断比较简单,只要判断面法向和z轴的夹角即可,而悬挂点和悬挂线的判断则要对网格模型进行几何分析。

在得到需要支撑的各个类面片中包括了三角面片,而在得到需要支撑的三角面片后,需要基于它们之间的几何信息建立其拓扑关系,将具有公共边的三角面片合并,最终形成一个个连贯的区域。三角面片合并方法如下:所有需要支撑的三角面片组成一系列支撑区域,这些支撑区域通过对得到的三角面片进行聚类获得,具体为,对所有三角形进行两两测试,如果二者共边,则将该三角形合并为一个区域,所有相互邻接的三角面片组成待支撑区域。

(2)对支撑轮廓进行垂直投影求交,具体为:对于一个待求支撑区域,看成一个从支撑区域向下投影而扫成的网格模型,这个模型在扫成中,遇到的零件表面为该支撑模型的底面,该底面和所有的侧面组成支撑模型;

其中输入:支持顶面面片集合sa,网格模型面片集合st;输出:支撑网格模型面片集合ss;垂直投影求交方法如下:

step1:支持顶面面片集合sa向底面投影,得到一个平面区域a,平面区域a为同平面三角形集合;

step2:计算落于平面区域a中的区域的三角面片集合w;

step2.1:对网格模型面片集合st-支持顶面面片集合sa中的每个三角形t,与平面区域a中的三角面片两两相交,其重叠区域为r,对重叠区域r进行三角化,得到三角形集合m;

step2.2:对三角形集合m中的每个三角面片,比较和支持顶面面片集合sa的关系,如果高于支持顶面面片集合sa中的面片,则放弃,否则进入三角面片集合w中;

step3:对三角面片集合w中的三角形,计算其相互遮挡关系;

step3.1:记录已经就绪的可见面片集合为vs,其中:初始的可见面片集合vs=null;

step3.2:取三角面片集合w中的一个三角形t,计算三角形t和可见面片集合vs中的每个面片的关系,可见面片集合vs中的任意面片为ts,计算t和ts之差,得到的区域则为新的可见面,对这个可见面进行三角化,得到可见面片集合vs中的新的面片集合;

其中t和ts的关系有两种:(1)t在ts之上;(2)ts在t之上;不失一般性,若t在ts之上,则ts将可能遮挡掉部分或者全部的t;若ts在t之上,则t将可能遮挡掉部分或者全部的ts;

step4:组成支撑网格模型,其中:可见面片集合vs、平面区域a、支持顶面面片集合sa以及支持顶面面片集合sa向下投影的侧面hsa,组成新的支撑模型的实体;

step4.1:将可见面片集合vs向底面投影,得到新的底面tvs,其中:新的底面tvs和侧面hsa相交;

step4.2:对新的底面tvs的面片集合建立邻接关系,显然每条边对应一个新的侧面;

step4.3:对新的侧面进行三角化,得到面片集合nhs;

step5:面片集合nhs、可见面片集合vs、平面区域a、支持顶面面片集合sa组成新的支撑网格的面片集合。

(3)重新网格化;

(4)布尔并操作,并输出支撑模型。

在步骤(2)中,大量用到同一平面内的两个三角形之间的差运算,两个三角形相互质检可以具有0、1、2、3、4、6个交点,这些情况需要分别处理,并进行三角化,得到新的面片集合;这一问题已经具有比较成熟的算法,具体算法可以采用如下文献中的方法:philippeguigue,olivierdevillers.fastandrobusttriangle-triangleoverlaptestusingorientationpredicates[j].journalofgraphicstools.2003,8(1):25-32.

在步骤(3)中,重新网格化就是将上述三角网格边界处的网格重新建立对应关系,从而保证得到的支撑模型为有效的二维流形,这方面的算法已经比较成熟,如:pierrealliez,et,al.anisotropicpolygonalremeshing.acmsiggraph2003papers.

在步骤(4)中,对一般的布尔并操作,其核心的操作为两个:1)模型表面求交,得到相交交线;2)物体表面被交线分割的部分相互判断包含关系,即判断物体的两两之间的包含关系。其中第二步骤费时且容易出错,这事由于判断一个点是否在网格内部或者外部难以做的鲁棒高效,在本方法中,这一问题不再存在,这是因为基于前面所描述的垂直投影求交方法,所有的体不会相互包容,而仅仅是面邻接贴合。

该方法实际先通过垂直支撑模型和物体模型的“布尔差”得到支撑体,然后经过重新网格化将这些支撑体进行布尔并操作得到,其中“垂直投影求交”实际为“布尔差”操作的实现。该方法对垂直投影求交操作加以优化,即考虑顶面向-z方向投影求交的求解方法,以得到合适的支撑模型,大大简化了对于算法的要求。

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