一种保留模型非常规特征的3D打印自适应分层方法

文档序号:26098611发布日期:2021-07-30 18:09阅读:116来源:国知局
一种保留模型非常规特征的3D打印自适应分层方法

本发明属于3d打印数据处理技术领域,具体涉及一种保留模型非常规特征的3d打印自适应分层方法。



背景技术:

3d打印技术是一种通过逐层累加材料的方式将三维cad模型加工成实体的增材制造技术,其基本原理是“分层制造、逐层叠加”,通过数据处理软件对待加工零件模型进行一系列的数据处理过程,将三维cad模型离散成二维层片,再将层片文件的加工路径转化为打印机可识别机器代码完成零件的实体打印。因此,数据处理过程特别是分层切片环节是3d打印的核心内容,对实体打印的精度和效率有着至关重要的影响。

目前关于分层算法的研究主要分为两类:等厚分层和自适应分层。等厚分层算法是将整个模型按照固定层厚均匀分层,该算法实现简单,但易造成模型外表面密集特征的丧失;自适应分层算法则是依照模型外表面的曲率变化自动修正打印厚度,以尽可能少的分层数减低打印误差。但在处理模型外表面的细节特征问题上,目前大多数自适应分层算法只对常规特征如阶梯、孔等做了归纳和定义,对于斜槽一类不满足常规定义的非常规特征则无法识别和处理,易导致该类特征在分层过程中被丢失,因此,有必要考虑在自适应分层过程中模型非常规特征的丢失和偏移情况,进一步降低打印误差。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种在分层过程中不仅能识别模型常规特征,保证这些特征不发生丢失和偏移,同时在非常规特征处进行细分,有效保留模型非常规特征的3d打印自适应分层方法。

本发明的目的是通过以下技术方案来实现的:一种保留模型非常规特征的3d打印自适应分层方法,包括以下步骤:

s1、定义并识别模型常规特征,调整特征高度间距,在调整后的每一个常规特征高度处设置分层平面;

s2、在每两个相邻特征高度之间通过体积误差率控制层厚对模型细分,保留非常规特征;

s3、根据实际打印层厚限制调整分层高度。

进一步地,所述步骤s1具体包括以下子步骤:

s11、将常规特征归纳为特征点、特征线、特征面三类,然后依据拓扑结构数据分别对特征点、特征线、特征面进行识别;

s12、调整特征高度间距:

s121、将模型的最低点高度和最高点高度存入特征高度序列中,并对整个序列按照由低到高的顺序进行去重排序;

s122、从模型最低点开始由低到高计算每两个特征高度之间的高度差,设这两个特征高度由低到高分别为hc1和hc2,若hc2-hc1<min_δh,则计算hc2下一个特征高度hc3与hc1的高度差;若hc3-hc1>=2*min_δh,则将hc2的高度调整为hc1+min_δh;若hc3-hc1<2*min_δh且hc3-hc1>=min_δh,则直接丢弃hc2;若hc3-hc1<min_δh,则丢弃hc2,继续判断hc3下一个特征高度hc4与hc1的高度差;重复上述操作,直至hc1与下一个特征高度的高度差大于或等于min_δh;再将hc1的下一个特征高度设为新的hc1调整高度差,直至hc2为模型最高点高度;若当hc2为模型最高点高度时hc2-hc1<min_δh,则丢弃hc1;其中,min_δh表示最小可打印厚度。

进一步地,所述特征点、特征线、特征面定义如下:

特征点:在打印方向上局部最高或最低的点;该点为多个三角面片的共同交点,且沿打印方向的坐标值是所在三角面片所有顶点中沿打印方向坐标值中的最小值或最大值;

特征线:垂直于打印方向的线段,且该线段两邻接三角面片均不平行于分层平面,同时两三角面片的法向量夹角大于设定阈值;

特征面:垂直于打印方向的平面。

进一步地,对特征点、特征线、特征面进行识别的方法如下:

特征点:遍历stl模型所有顶点,查找该点所在所有三角面片的全部顶点,若该点的z坐标值为所有顶点z坐标值中的最大值或最小值,则认定该点为特征点,特征高度为该点z坐标值;

特征线:遍历stl模型所有边,若边的起始点和终止点的z坐标值相等,再判断该线段两邻接三角面片是否为特征面,若均不是,计算两三角面片法向量夹角,若两三角面片法向量夹角超过设定阈值,则认定该线段为特征线,特征高度为线段起始点或终止点z坐标值;

特征面:遍历stl模型所有三角面片,若三角面片三个顶点的z坐标值均相等,则认定该三角面片所在平面为特征面,特征高度为任一顶点z坐标值。

进一步地,所述步骤s2具体包括以下步骤:

s21、将最低常规特征高度所在分层平面设为基准分层平面,沿分层方向,下一分层高度预设为当前高度加上最大可打印厚度;

s22、计算两分层平面间的体积误差率:

其中,η为体积误差率,vm和vp分别为当前两层间模型实际体积和打印体积,ve为打印误差体积;其计算方法如下:

(1)模型打印体积vp计算方法为:设两分层高度由低到高分别为h1和h2,由于3d打印的成型原理是以分层截面为底、层厚为高的柱体逐层堆积成实体,故h1和h2间模型打印体积实际上是以h1处截面为底面,h2-h1为高的柱体体积;

因此首先需得到h1高度处的截面轮廓数据:首先对三角面片进行排序预处理,再找到与h1高度相交的三角面片,计算得到所有的交线段,然后将交线段依次首尾相连,得到封闭轮廓线,最后判断内外轮廓并存储轮廓线;

得到当前层所有封闭轮廓线后,通过三角形分割法计算当前层截面多边形面积;设分层方向沿z轴正向,则平面多边形面积计算公式为:

其中,n为多边形顶点个数,(xa,ya)、(xb,yb)为除原点外三角形另外两个顶点坐标;

由公式(2)得出h1高度处的分层截面面积sh1,进而得到当前部分模型的打印体积vp=sh1·(h2-h1);

(2)打印误差体积ve为两个分层平面间的打印误差体积由所有三角面片在两平面间产生的体积误差和组成;设si为三角面片acd在h1和h2两分层平面间面积,θi为三角面片法向量和h1高度处分层平面的夹角,则三角面片acd在h1和h2两层间的体积误差计算方法为:

遍历三角面片,找到h1与h2两分层高度间的所有三角面片,由公式(4)计算两层间打印误差:

然后根据公式(1)得出当前层厚下两层间打印的体积误差率ηc,将ηc与打印允许的体积误差率阈值η0进行比较,若ηc>η0,则依据式(5)对层厚进行调整:

将层高调整为当前层高与δhnew之和,重复上述步骤,计算新的体积误差率,直至体积误差率在给定阈值范围内;

s23、将得到层高所在的分层平面作为新的基准分层平面,重复s21和s23,直至两特征高度间的模型分层完成。

进一步地,所述步骤s3调整方法如下:设最小可打印厚度为min_δh,当前常规特征高度为hc,与其相邻的上两个分层高度分别为h1、h2,若hc-h2<min_δh且hc-h1>=2*min_δh,则将h2的高度调整为hc-min_δh;

若hc-h1<2*min_δh,则丢弃h2。

本发明的有益效果是:本发明在对三维模型进行自适应分层的过程中,首先定义并识别大多数模型普遍存在的常规特征点、特征线、特征面,保证了这些特征在打印过程中不发生丢失和偏移;然后采用计算体积误差率的方法在不满足常规定义的细节特征处对模型进行细分,有效保留了模型非常规特征,进一步降低了打印误差,提高了模型成型精度。

附图说明

图1为本发明的3d打印自适应分层方法的流程图;

图2为stl文件拓扑结构示意图;

图3为多边形求面积示意图;

图4为常规特征示意图;

图5为本发明方法对常规特征的分层示意图;

图6为顶尖高度法对常规特征的分层示意图;

图7为非常规特征示意图;

图8为本发明方法对非常规特征的分层示意图;

图9为顶尖高度法对非常规特征的分层示意图。

具体实施方式

下面结合附图进一步说明本发明的技术方案。

如图1所示,本发明的一种基于体积误差率的保留模型非常规特征的3d打印自适应分层方法,包括以下步骤:

s1、定义并识别模型常规特征,调整特征高度间距,在调整后的每一个常规特征高度处设置分层平面;

具体包括以下子步骤:

s11、将常规特征归纳为特征点、特征线、特征面三类,然后依据拓扑结构数据分别对特征点、特征线、特征面进行识别;

所述特征点、特征线、特征面定义如下:

特征点:在打印方向上局部最高或最低的点;该点为多个三角面片的共同交点,且沿打印方向的坐标值是所在三角面片所有顶点中沿打印方向坐标值中的最小值或最大值;

特征线:垂直于打印方向的线段,且该线段两邻接三角面片均不平行于分层平面,同时两三角面片的法向量夹角大于设定阈值;

特征面:垂直于打印方向的平面。

为方便对常规特征的识别,首先建立图2所示的stl模型数据拓扑结构,其用于存储点、线、面的数据结构如下:

对特征点、特征线、特征面进行识别的方法如下:

特征点:遍历stl模型所有顶点,查找该点所在所有三角面片的全部顶点,若该点的z坐标值为所有顶点z坐标值中的最大值或最小值,则认定该点为特征点,特征高度为该点z坐标值;

特征线:遍历stl模型所有边,若边的起始点和终止点的z坐标值相等,再判断该线段两邻接三角面片是否为特征面,若均不是,计算两三角面片法向量夹角,若两三角面片法向量夹角超过设定阈值,则认定该线段为特征线,特征高度为线段起始点或终止点z坐标值;

特征面:遍历stl模型所有三角面片,若三角面片三个顶点的z坐标值均相等,则认定该三角面片所在平面为特征面,特征高度为任一顶点z坐标值。

s12、调整特征高度间距:

s121、将模型的最低点高度和最高点高度存入特征高度序列中,并对整个序列按照由低到高的顺序进行去重排序;

s122、从模型最低点开始由低到高计算每两个特征高度之间的高度差,设这两个特征高度由低到高分别为hc1和hc2,若hc2-hc1<min_δh,则计算hc2下一个特征高度hc3与hc1的高度差;若hc3-hc1>=2*min_δh,则将hc2的高度调整为hc1+min_δh;若hc3-hc1<2*min_δh且hc3-hc1>=min_δh,则直接丢弃hc2;若hc3-hc1<min_δh,则丢弃hc2,继续判断hc3下一个特征高度hc4与hc1的高度差;重复上述操作,直至hc1与下一个特征高度的高度差大于或等于min_δh;再将hc1的下一个特征高度设为新的hc1调整高度差,直至hc2为模型最高点高度;若当hc2为模型最高点高度时hc2-hc1<min_δh,则丢弃hc1;其中,min_δh表示最小可打印厚度。

s2、在每两个相邻特征高度之间通过体积误差率控制层厚对模型细分,保留非常规特征;

具体包括以下步骤:

s21、将最低常规特征高度所在分层平面设为基准分层平面,沿分层方向,下一分层高度预设为当前高度加上最大可打印厚度;

s22、计算两分层平面间的体积误差率:

其中,η为体积误差率,vm和vp分别为当前两层间模型实际体积和打印体积,ve为打印误差体积;其计算方法如下:

(1)模型打印体积vp计算方法为:设两分层高度由低到高分别为h1和h2,由于3d打印的成型原理是以分层截面为底、层厚为高的柱体逐层堆积成实体,故h1和h2间模型打印体积实际上是以h1处截面为底面,h2-h1为高的柱体体积;

因此首先需得到h1高度处的截面轮廓数据:首先对三角面片进行排序预处理,再找到与h1高度相交的三角面片,计算得到所有的交线段,然后将交线段依次首尾相连,得到封闭轮廓线,最后判断内外轮廓并存储轮廓线;

得到当前层所有封闭轮廓线后,通过三角形分割法计算当前层截面多边形面积;设分层方向沿z轴正向,则平面多边形面积计算公式为:

其中,n为多边形顶点个数,(xa,ya)、(xb,yb)为除原点外三角形另外两个顶点坐标;

由公式(2)得出h1高度处的分层截面面积sh1,进而得到当前部分模型的打印体积vp=sh1·(h2-h1);

(2)打印误差体积ve为两个分层平面间的打印误差体积由所有三角面片在两平面间产生的体积误差和组成;如图3所示,设si为三角面片acd在h1和h2两分层平面间面积,θi为三角面片法向量和h1高度处分层平面的夹角,则三角面片acd在h1和h2两层间的体积误差计算方法为:

遍历三角面片,找到h1与h2两分层高度间的所有三角面片,由公式(4)计算两层间打印误差:

然后根据公式(1)得出当前层厚下两层间打印的体积误差率ηc,将ηc与打印允许的体积误差率阈值η0进行比较,若ηc>η0,则依据式(5)对层厚进行调整:

将层高调整为当前层高与δhnew之和,重复上述步骤,计算新的体积误差率,直至体积误差率在给定阈值范围内;

s23、将得到层高所在的分层平面作为新的基准分层平面,重复s21和s23,直至两特征高度间的模型分层完成。

s3、根据实际打印层厚限制调整分层高度;由于本发明方法分层思想是由当前层高度得出下一分层高度,因此可能会出现某些常规特征高度与上一分层高度间距小于最小可打印厚度的情况,需对分层高度进行调整,调整方法如下:设最小可打印厚度为min_δh,当前常规特征高度为hc,与其相邻的上两个分层高度分别为h1、h2,若hc-h2<min_δh且hc-h1>=2*min_δh,则将h2的高度调整为hc-min_δh;

若hc-h1<2*min_δh,则丢弃h2。

本实施例采用图4所示的奖杯模型和图7所示的斜槽模型测试本发明方法对常规特征和非常规特征丢失和偏移情况的改善效果,基于c++编程,具体包括以下步骤:

奖杯模型:

s1:识别模型常规特征,选择图4所示的h0、h1、h2、h3三个特征高度用以衡量常规特征的偏移和丢失情况。

s2:依据实际打印需求,设置最小可打印厚度为1mm,最大可打印厚度为4mm。针对本发明方法,设置体积误差率阈值为0.1。

s3:将模型导入程序,运行得到分层结果。

s4:为方便进行效果比对,在相同打印条件下,采用1mm的顶尖高度值对模型用顶尖高度法进行分层,得到分层结果。

本发明方法和顶尖高度法对奖杯模型的分层结果分别如图5和图6所示,两种方法下的分层层数与体积误差率列于表1,模型特征的偏移情况列于表2。对比可知,顶尖高度法的分层层数为148,本发明方法的分层层数为153,两种方法产生的体积误差率均为0.2左右,但在处理常规特征的丢失和偏移上,顶尖高度法导致了h0高度处的特征丢失(见图6)和h1、h2、h3高度处特征不同程度的偏移(见表2),而本发明方法不仅保留了h0高度处的特征(见图6),同时保证了h1、h2、h3高度处特征不发生偏移(见表2)。由此证明了本发明方法在处理常规特征丢失和偏移情况上的有效性。

表1

表2

斜槽模型:

s1:依据实际打印需求,设置最小可打印厚度为0.5mm,最大可打印厚度为10mm。针对本发明方法,设置体积误差率阈值为0.1。

s2:将模型导入程序,运行得到分层结果。

s3:为方便进行效果比对,在相同打印条件下,采用0.5mm的顶尖高度值对模型用顶尖高度法进行分层,得到分层结果。

本发明方法和顶尖高度法对斜槽模型的分层结果分别如图8和9所示,两种方法下的分层层数与体积误差率列于表3。由图表可以看出,顶尖高度法在模型外表面的曲率变化不可识别为常规特征点、特征线、特征面时,无法有效的保留这些模型特征,从而产生了较大的体积误差,比如图9所示情况,依据该算法,模型打印成型后将会是一个四棱柱,所有斜槽均被丢失;而本发明方法在各斜槽所在高度上均进行了细分,有效的保留了这些细节特征,最大限度地降低了体积误差。由此证明了本发明方法在处理非常规特征丢失情况上的有效性。

本发明提出了一种保留模型非常规特征的3d打印自适应分层方法,通过定义和识别特征点、特征线、特征面有效防止了这些常规特征在分层过程中发生丢失和偏移,同时采用计算体积误差率的方法控制层厚细分模型,有效保留模型不满足常规定义的非常规特征,进一步降低打印误差,提高模型成型精度。

表3

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。

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