本发明涉及一种3d打印模型的几何修正方法,属于3d打印技术领域。
背景技术:
选择性激光烧结(sls)是一种以激光为热源,使粘结剂熔化后将粉末材料烧结成型的3d打印技术。选择性激光烧结(sls)技术在新产品研发、模具制造、小批量产品生产等方面均已显示出了广阔的市场前景。然而在激光烧结过程中,熔化的粘结剂在粉末材料内部扩散会产生两个副作用:孔洞填充和细节缺失。对于产品模型中的孔洞,因粘结剂的扩散效应导致孔洞区域被部分覆盖甚至全部覆盖,易使一些细长孔洞消失不见,如图1(a)所示。对于产品模型中的细小特征,粘结剂的扩散现象会降低这些部位的粘接剂密度,从而降低这些部位的强度,如图1(b)所示。在清洗等后处理过程中,这些细小部位可能会断裂,导致3d打印出来的产品细节特征缺失。孔洞填充和细节缺失现象严重影响了产品精度和质量,是目前迫切需要解决的问题。
技术实现要素:
针对上述现有技术存在的问题,本发明提供一种3d打印模型的几何修正方法,采用低通滤波器模拟选择性激光烧结过程,能够找出发生孔洞填充和细节缺失的部位,在不需要人工干预的前提下自动对其进行几何修正,可在一定程度上减少产品细节特征的破坏或缺失现象,提高产品精度和质量。
为了实现上述目的,本发明采用如下技术方案:一种3d打印模型的几何修正方法,包括如下步骤:
步骤一、构造初始模型:
首先将输入的网格模型进行切片,得到若干个切片层,切片厚度为3d打印机的打印层厚;然后将每一层切片转化为像素模型,每个像素模型中的每个像素单元都是一个正方形,正方形的边长l为3d打印机的分辨率大小;每个像素单元都有对应的状态值original_state,original_state=1表示该像素单元的粉末材料需要被烧结,original_state=0表示该像素单元不需要被烧结;所有切片层中所有状态值original_state为1的像素共同构成了3d打印模型,所有像素模型共同组成了初始模型;
步骤二、构造模拟模型:
用低通滤波器模拟3d打印过程中的孔洞填充和细节缺失现象,即将一个内核大小为n×n的均值滤波器作用在初始模型的每个像素模型中,n表示组成内核边长的像素个数,得到模拟模型,模拟模型中的每个像素模型的每个像素单元也有对应的状态值simulate_state,simulate_state=1表示该像素单元的粉末材料需要被烧结,simulate_state=0表示该像素单元不需要被烧结;
步骤三、构造差值模型:
从模拟模型中减去初始模型得到差值模型,即将模拟模型的每个像素状态值simulate_state减去初始模型中对应的像素状态值original_state,即差值模型中每一个像素的值dif=simulate_state-original_state,dif的值为-1,0或1;dif=-1表示发生了细节缺失现象,dif=1表示发生了孔洞填充现象,dif=0表示没有变化;
步骤四、构造增强模型:
根据差值模型先处理发生孔洞填充现象的像素,再处理发生细节缺失现象的像素;对初始模型进行孔洞填充处理和细节缺失处理之后,得到增强模型;
步骤五、重构网格模型:
将增强模型中所有切片层(即像素层)依次叠加得到体素模型;使用lorensen和cline提出的marchingcubes算法将体素模型重构为网格模型,作为3d打印软件的输入模型。
优选地,上述步骤二中内核大小n=w/2l;其中,l为3d打印机的分辨率大小,w为发生孔洞填充现象后消失不见的细缝的最大宽度,n取整。
优选地,上述步骤四中对于发生孔洞填充现象的像素的处理方式为:
s1、发生孔洞填充现象的像素为p,将像素p及其八个邻域像素进行编号:#1:(x-1,y-1),#2:(x-1,y),#3:(x-1,y+1),#4:(x,y-1),#5:(x,y),#6:(x,y+1),#7:(x+1,y-1),#8:(x+1,y),#9:(x+1,y+1);其中,像素p的编号为#5;(x,y)表示像素p的坐标;
s2、当#1-#9中连续三个或三个以上相邻的像素发生孔洞填充现象时,根据孔洞填充的不同形态在初始模型中将相应的像素的状态值original_state设为0;
所述步骤四中对于发生细节缺失现象的像素的处理方式与发生孔洞填充现象的像素的处理方式类似,不同之处在于,当#1-#9中连续三个或三个以上相邻的像素发生细节缺失现象时,根据细节缺失的不同形态在初始模型中将相应的像素的状态值original_state设为1。
进一步,所述孔洞填充的形态和细节缺失的形态均分为直线型、直角型和田字型,
当孔洞填充的形态为直线型时,在初始模型中将连线过像素p,并与直线型垂直相交的两个像素的状态值original_state设为0;
当孔洞填充的形态为直角型时,在初始模型中将能够与直角型构成完整田字的一个像素的状态值original_state设为0;
当孔洞填充的形态为田字型时,在初始模型中将与像素p相邻、田字型之外的两个像素的状态值original_state设为0;
当细节缺失的形态为直线型时,在初始模型中将连线过像素p,并与直线型垂直相交的两个像素的状态值original_state设为1;
当细节缺失的形态为直角型时,在初始模型中将能够与直角型构成完整田字的一个像素的状态值original_state设为1;
当细节缺失的形态为田字型时,在初始模型中将与像素p相邻、田字型之外的两个像素的状态值original_state设为1。
进一步,所述步骤五中使用marchingcubes算法将体素模型重构为网格模型的具体步骤是:逐个处理体素模型中的每个体素,求出与等值面相交的体素,采用线性插值方法计算出等值面与体素棱边的交点;根据体素中每个顶点与等值面的相对位置关系,连接这些交点得到一个或多个三角面片,所有三角面片构成了网格模型;其中,等值面是空间中所有具有某个相同值的点的集合,可以表示为{(x,y,z)|f(x,y,z)=c},其中,(x,y,z)表示体素的顶点坐标,f(x,y,z)表示顶点的数据值,c表示给定的阈值。
与现有的技术相比,本发明针对3d打印过程中因粘结剂的扩散效应导致的孔洞填充和细节缺失现象,采用低通滤波器模拟选择性激光烧结过程,可找出发生孔洞填充和细节缺失的部位,在不需要人工干预的前提下自动对其进行几何修正,在一定程度上减少了产品细节特征的破坏或缺失现象,提高了产品精度和质量。本发明能够抵消粘结剂的扩散效应对产品精度造成的影响,使3d打印过程中被破坏或者完全丢失的产品几何细节特征重新可见,提高产品质量。
附图说明
图1为粘结剂的扩散效应导致的孔洞填充和细节缺失示意图;
图2为本发明的流程图;
图3为本发明用于确定内核大小的测试模型(单位:mm);
图4为图3中测试模型的打印效果举例(单位:mm);
图5为像素p及其八个邻域的编号方法;
图6为本发明中直线型孔洞填充的增强方法;
图7为本发明中直角型孔洞填充的增强方法;
图8为本发明中田字型孔洞填充的增强方法;
图9为3d打印模型的几何修正方法效果图。
图中:
具体实施方式
下面结合附图对本发明实施中的技术方案进行清楚,完整的描述,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供的一种3d打印模型的几何修正方法,包括如下步骤:
步骤一、构造初始模型(originalmodel):
首先将输入的网格模型进行切片,得到若干个切片层,切片厚度为3d打印机的打印层厚;然后将每一层切片转化为像素模型,每个像素模型中的每个像素单元都是一个正方形,正方形的边长l为3d打印机的分辨率大小;每个像素单元都有对应的状态值original_state,original_state=1表示该像素单元的粉末材料需要被烧结,original_state=0表示该像素单元不需要被烧结;所有切片层中所有状态值original_state为1的像素共同构成了3d打印模型,所有像素模型共同组成了初始模型。
步骤二、构造模拟模型(simulatedmodel):
用低通滤波器模拟3d打印过程中的孔洞填充和细节缺失现象,即将一个内核大小为n×n的均值滤波器作用在初始模型的每个像素模型中,n表示组成内核边长的像素个数,得到模拟模型,模拟模型中的每个像素模型的每个像素单元也有对应的状态值simulate_state,simulate_state=1表示该像素单元的粉末材料需要被烧结,simulate_state=0表示该像素单元不需要被烧结。
其中,内核大小的确定是关键,影响内核大小的主要因素是粉末材料的性质。本发明可采用实验法确定内核大小。制作如图3所示的测试模型,该模型上有10条细缝,最左端的细缝宽度为0.1mm,最右端的细缝宽度为1.0mm,其余细缝宽度从左至右依次递增。使用3d打印设备打印该测试模型,从右到左依次寻找第一个消失不见的细缝,得到其宽度为w,由此确定内核大小为n=w/2l。其中,l表示3d打印机的分辨率大小;w为发生孔洞填充现象后消失不见的细缝的最大宽度,若测试模型的3d打印效果如图4所示,则表示w=0.5mm,n取整。
步骤三、构造差值模型(differencemodel):
从模拟模型中减去初始模型得到差值模型,即将模拟模型中的每个像素模型的每个像素状态值simulate_state减去初始模型中对应的像素状态值original_state,即差值模型中每一个像素的值dif=simulate_state-original_state,dif的值为-1,0或1;dif=-1表示该像素发生了细节缺失现象,dif=1表示该像素发生了孔洞填充现象,dif=0表示该像素没有变化。
步骤四、构造增强模型(enhancedmodel):
根据差值模型先处理发生孔洞填充现象的像素,再处理发生细节缺失现象的像素;对初始模型进行孔洞填充处理和细节缺失处理之后,得到增强模型。增强模型如初始模型一样,也有若干个切片层,每个切片层都是一个像素模型。
其中,对于发生孔洞填充现象的像素的处理方式为:
s1、如图5所示,假设发生孔洞填充现象的像素为p,将像素p及其八个邻域像素进行编号:#1:(x-1,y-1),#2:(x-1,y),#3:(x-1,y+1),#4:(x,y-1),#5:(x,y),#6:(x,y+1),#7:(x+1,y-1),#8:(x+1,y),#9:(x+1,y+1);其中,像素p的编号为#5;(x,y)表示像素p的坐标;
s2、当#1-#9中连续三个或三个以上相邻的像素发生孔洞填充现象时,根据孔洞填充的不同形态在初始模型中将相应的像素的状态值original_state设为0。
具体的,所述孔洞填充的形态分为直线型、直角型和田字型,分别如图6、图7、图8所示,以像素p的八个邻域像素为像素p的处理单元;
当孔洞填充的形态为直线型时,在初始模型内将像素p的处理单元中(即像素p的八个邻域像素,下同)的两个连线过像素p,并与直线型垂直相交的像素的状态值original_state设为0;如图6所示,直线型孔洞填充的形态有两种;若#4、#5、#6像素发生孔洞填充现象,则在初始模型中将#2和#8像素的状态值original_state设为0;若#2、#5、#8像素发生孔洞填充现象,则在初始模型中将#4和#6像素的状态值original_state设为0;
当孔洞填充的形态为直角型时,在初始模型内将像素p的处理单元中的一个能够与直角型构成完整田字的像素的状态值original_state设为0;如图7所示,直角型孔洞填充的形态有十二种;若#2、#4、#5像素发生孔洞填充现象,则在初始模型中将#1像素的状态值original_state设为0;若#1、#2、#5像素发生孔洞填充现象,则在初始模型中将#4像素的状态值original_state设为0;若#1、#4、#5像素发生孔洞填充现象,则在初始模型中将#2像素的状态值original_state设为0;若#2、#5、#6像素发生孔洞填充现象,则在初始模型中将#3像素的状态值original_state设为0;......以此类推;
当孔洞填充的形态为田字型时,在初始模型内将像素p的处理单元中的与像素p相邻、田字型之外的两个像素的状态值original_state设为0;如图8所示,田字型孔洞填充的形态有四种;若#1、#2、#4、#5像素发生孔洞填充现象,则在初始模型中将#6、#8像素的状态值original_state设为0;若#2、#3、#5、#6像素发生孔洞填充现象,则在初始模型中将#4、#8像素的状态值original_state设为0;若#4、#5、#7、#8像素发生孔洞填充现象,则在初始模型中将#2、#6像素的状态值original_state设为0;若#5、#6、#8、#9像素发生孔洞填充现象,则在初始模型中将#2、#4像素的状态值original_state设为0。
对于发生细节缺失现象的像素的处理方式与发生孔洞填充现象的像素的处理方式类似,也是先进行编号,再进行增强处理,细节缺失的形态与孔洞填充的形态一致,也分为直线型、直角型和田字型。唯一不同之处在于,当#1-#9中连续三个或三个以上相邻的像素发生细节缺失现象时,根据细节缺失的不同形态在初始模型中将相应的像素的状态值original_state设为1,而不是设为0。如当细节缺失的形态为直线型时,在初始模型内将像素p的处理单元中(即像素p的八个邻域像素)的两个连线过像素p,并与直线型垂直相交的像素的状态值original_state设为1;当细节缺失的形态为直角型时,在初始模型内将像素p的处理单元中(即像素p的八个邻域像素)的一个能够与直角型构成完整田字的像素的状态值original_state设为1;当细节缺失的形态为田字型时,在初始模型内将像素p的处理单元中的两个与像素p相邻、田字型之外的像素的状态值original_state设为1。具体样例如上述发生孔洞填充现象的像素的处理方式类似,在此不做详述。
步骤五、重构网格模型(meshmodel):
将增强模型中所有切片层(即像素层)依次叠加得到体素模型;使用lorensen和cline提出的marchingcubes算法将体素模型重构为网格模型,作为3d打印软件的输入模型。
其中,使用marchingcubes算法将体素模型重构为网格模型的具体步骤是:逐个处理体素模型中的每个体素,求出与等值面相交的体素,采用线性插值方法计算出等值面与体素棱边的交点;根据体素中每个顶点与等值面的相对位置关系,连接这些交点得到一个或多个三角面片,所有三角面片构成了网格模型;其中,等值面是空间中所有具有某个相同值的点的集合,可以表示为{(x,y,z)|f(x,y,z)=c},其中,(x,y,z)表示体素的顶点坐标,f(x,y,z)表示顶点的数据值,c表示给定的阈值。
如图9所示,图(a)为初始模型,图(b)是将初始模型作为输入模型直接用于3d打印时的示意图,图(c)是图(b)与图(a)间的差值模型,图(d)是采用本发明修正方法修正后获得的增强模型,图(e)是将图(d)中的增强模型作为输入模型用于3d打印时的示意图,图(f)是图(e)与图(d)间的差值模型。可见,如果将初始模型直接用于3d打印,会出现孔洞填充和细节缺失现象。而对输入模型进行本发明的几何修正后,能在一定程度上减少产品细节特征的破坏或缺失现象,提高了产品精度和质量。
综上所述,本发明针对3d打印过程中因粘结剂的扩散效应导致的孔洞填充和细节缺失现象,采用低通滤波器模拟选择性激光烧结过程,可找出发生孔洞填充和细节缺失的部位,在不需要人工干预的前提下自动对其进行几何修正,在一定程度上减少了产品细节特征的破坏或缺失现象,提高了产品精度和质量。本发明能够抵消粘结剂的扩散效应对产品精度造成的影响,使3d打印过程中被破坏或者完全丢失的产品几何细节特征重新可见,提高产品质量。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神和基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。