一种用于SLA3D打印机的平面分割方法及装置与流程

文档序号:12927232阅读:133来源:国知局
一种用于SLA3D打印机的平面分割方法及装置与流程
本发明涉及图像分割技术领域,尤其涉及一种用于SLA3D打印机的平面分割方法及装置。

背景技术:
图像分割技术是图像处理与计算机视觉的基本问题之一,在计算机视觉中占有非常重要的地位,其主要目标是将图像分割为多个互不相重叠的区域。3D打印机又称三维打印机,是一种累积制造技术,即快速成形技术的一种机器,它是一种数字模型文件为基础,运用特殊蜡材、粉末状金属或塑料等可粘合材料,通过打印一层层的粘合材料来制造三维的物体。现阶段三维打印机被用来制造产品。逐层打印的方式来构造物体的技术。3D打印机的原理是把数据和原料放进3D打印机中,机器会按照程序把产品一层层造出来。随着近几年3D打印技术的不断发展,3D打印技术被不断完善,同时市场上也出现了各种各样的3D打印机产品。其中以熔融沉积成型(FusedDepositionModeling,简称FDM)3D打印机和光固化成型(StereolithographyAppearance,简称SLA)原理的3D打印机的最为广泛。由于FDM打印机的打印原理是线打印,SLA打印机的打印原理是面打印。FDM打印机和SLA打印机的面打印相比,SLA不管是在打印速度、打印精度以及打印面的平滑性上都要比FDM好。对于SLA原理的打印机而言,由于受到了投影光源强度的限制,使得投影光源必须聚集到很小的区域,才能让光固化材料快速凝固成型,从而限制了SLA打印机可打印模型的尺寸。目前市场上出现的成型的SLA打印机,其最大打印尺寸为125*125*165mm,如Form1打印机,这远远达不到打印超大模型的要求。由于受SLA打印机尺寸的限制,使得SLA打印机难以满足对大规模的模型的打印,限制了SLA打印机的应用。

技术实现要素:
针对现有技术中的缺陷,本发明提供一种用于SLA3D打印机的平面分割方法及装置,能够使得SLA3D打印机适用于大规模的三维模型的打印,并在保证打印精度的前提下,获得较高的打印效率。第一方面,本发明提供了一种用于SLA3D打印机的平面分割方法,包括:根据预设的打印层高度,对待打印的三维模型进行分层,获得N个打印层;根据预设的SLA3D打印机尺寸,对每个所述打印层进行分割,获得所述每个打印层的M个矩形块;根据所述每个打印层的M个矩形块,确定每个打印层的打印序列,并将所述每个打印层的打印序列发送给所述SLA3D打印机,以使所述SLA3D打印机根据所述打印序列打印出三维模型;其中,N、M为正整数。进一步地,所述对待打印的三维模型进行分层包括:将所述待打印的三维模型置于三维坐标中,以使所述待打印的三维模型的打印方向与三维坐标的z轴的方向重合;获取所述待打印的三维模型映射在z轴方向上最大值和最小值;以z轴上的最小值到z轴上的最大值为方向,根据所述预设的打印层高度,对所述待打印的三维模型进行分层,获得N个打印层;其中,所述每个打印层包括至少一个多边形。进一步地,所述对每个所述打印层进行分割,获得所述每个打印层的M个矩形块,包括:预设每个所述打印层所在的平面旋转角为第一旋转角;采用扫描线方式,并根据所述第一旋转角和所述预设的SLA3D打印机尺寸,对所述每个打印层进行分割,获得每个打印层的矩形块;根据所述每个打印层的矩形块,采用遗传算法,获得第二旋转角;根据所述第二旋转角,进而获得与所述第二旋转角对应的每个打印层的M个矩形块;其中,所述矩形块的尺寸与所述SLA3D打印机尺寸相同。进一步地,所述采用扫描线方式,并根据所述第一旋转角和所述预设的,对所述每个打印层进行分割,获得每个打印层的矩形块,包括:对所述每个打印层中的多边形上的点,以原点为中心做第一旋转角的变化,获得变换后的多边形;根据所述变换后的多边形,确定所述变换后的多边形的边界值,以获得所述变换后的多边形的外接矩形;根据所述变换后的多边形的外接矩形的底部顶点和所述SLA3D打印机的尺寸的高度,做平行与x轴的扫描线,获得扫描线与所述变换后的多边形的外接矩形的相交点集;对所述扫描线与所述变换后的多边形的外接矩形的相交点集进行删除和包含的处理,获得处理后的相交点集;对所述处理后的相交点集,采用所述SLA3D打印机尺寸相同的矩形块进行平铺,获得每个打印层的矩形块。进一步地,所述根据所述每个打印层的矩形块,采用遗传算法,获得第二旋转角,包括:采用遗传算法计算模型Ε(α)=argminθF(θ),以获得所述第二旋转角,其中,θ为所述第一旋转角,α为所述第二旋转角,F(θ)为所述第一旋转角所对应的打印层的矩形块,Ε(α)为所述第二旋转角所对应的打印层的矩形块;采用二进制串对所述第一旋转角进行基因编码,并采用基因交叉重叠的方式对所基因编码的个体进行交配,获得新的基因编码的个体;对所述新的基因编码的个体采用基因编码位突变的方式进行基因的变异,获得新的基因个体,进而获得所述第二旋转角。进一步地,采用下式对所述第一旋转角进行基因编码;其中,INTMAX=216-1,b为二进制的形式,是由16个0,1组成的二进制串,θ为第一旋转角。进一步地,根据所述第一旋转角,采用下式,获得所述每个打印层的矩形块;其中,θ为第一旋转角,fi(θ)为打印层中的一个多边形所对应的矩形块,n为所述打印层中的多边形的个数,F(θ)为所述第一旋转角所对应的打印层的矩形块。进一步地,所述SLA3D打印机尺寸为所述SLA3D打印机的紫外光所投影的范围,所述投影的范围为矩形状。第二方面,本发明提供了一种用于SLA3D打印机的平面分割装置,包括:三维模型分层单元,用于根据预设的打印层高度,对待打印的三维模型进行分层,获得N个打印层;打印层分割单元,用于根据预设的SLA3D打印机尺寸,对每个所述打印层进行分割,获得所述每个打印层的M个矩形块;打印序列确定单元,用于根据所述每个打印层的M个矩形块,确定每个打印层的打印序列,并将所述每个打印层的打印序列发送给所述SLA3D打印机,以使所述SLA3D打印机根据所述打印序列打印出三维模型;其中,N、M为正整数。进一步地,所述三维模型分层单元,还用于:将所述待打印的三维模型置于三维坐标中,以使所述待打印的三维模型的打印方向与三维坐标的z轴的方向重合;获取所述待打印的三维模型映射在z轴方向上最大值和最小值;以z轴上的最小值到z轴上的最大值为方向,根据所述预设的打印层高度,对所述待打印的三维模型进行分层,获得N个打印层;其中,所述每个打印层包括至少一个多边形。由上述技术方案可知,通过本发明提供的一种用于SLA3D打印机的平面分割方法及装置,其中方法包括:根据预设的打印层高度,对待打印的三维模型进行分层,获得N个打印层;根据预设的SLA3D打印机尺寸,对每个所述打印层进行分割,获得所述每个打印层的M个矩形块;根据所述每个打印层的M个矩形块,确定每个打印层的打印序列,并将所述每个打印层的打印序列发送给所述SLA3D打印机,以使所述SLA3D打印机根据所述打印序列打印出三维模型;其中,N、M为正整数。通过本发明提供的用于SLA3D打印机的平面分割方法及装置,能够使得SLA3D打印机适用于大规模的三维模型的打印,并在保证打印精度的前提下,获得较高的打印效率。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的一种用于SLA3D打印机的平面分割方法的流程示意图;图2为本发明实施例提供的待打印的三维模型在三维空间中的示意图;图3为本发明实施例提供的对待打印的三维模型进行分层后的打印层的多边形示意图;图4为本发明实施例提供的打印层的多边形的目标函数模型的示意图;图5为本发明实施例提供的对多边形进行分割的平面分割示意图;图6为本发明实施例提供的一种遗传算法解决平面分割的流程示意图;图7为本发明实施例提供的通过基因分配变异产生新的个体的示意图;图8为本发明实施例提供的一种用于SLA3D打印机的平面分割装置的结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他的实施例,都属于本发明保护的范围。图1为本发明实施例提供的一种用于SLA3D打印机的平面分割方法的流程示意图,如图1所示,本实施例的用于SLA3D打印机的平面分割方法如下所述。SLA3D打印机为光固化快速成型3D打印机。101、根据预设的打印层高度,对待打印的三维模型进行分层,获得N个打印层。应理解的是,将待打印的三维模型置于三维空间中,按照预设的打印层高度对待打印的三维模型进行分层,进而获得N个打印层,其中,N为正整数,每个打印层至少包括一个多边形,多边形可以为规则的图形,也可以为不规则的图形。三维模型的每一个打印层具体指的是三维模型在其打印方向上每隔一个打印高度,使用一个平面切割三维模型得到的多个平面。每一个平面可以用一个或者多个不规则多边形表示,这样的平面被称之为打印层或者打印平面。102、根据预设的SLA3D打印机尺寸,对每个所述打印层进行分割,获得所述每个打印层的M个矩形块。应理解的是,按照预设的SLA3D打印机尺寸,对每个打印层进行分割,获得每个打印层的M个矩形块,其中,M为正整数。应理解的是,SLA3D打印机尺寸为SLA3D打印机的紫外光所投影的范围,投影的范围为矩形状。SLA3D打印机使用光固化成型技术,其打印尺寸是高强度投影光的范围,在投影光范围内,光固化树脂可以快速固化,在光投影范围外,光固化树脂不固化。应理解的是,本实施例中的三维模型的尺寸是远远大于SLA3D打印机尺寸的三维模型。103、根据所述每个打印层的M个矩形块,确定每个打印层的打印序列,并将所述每个打印层的打印序列发送给所述SLA3D打印机,以使所述SLA3D打印机根据所述打印序列打印出三维模型。应理解的是,根据每个打印层的M个矩形块,确定每个打印层的打印序列,并将每个打印层的打印序列发送给SLA3D打印机,SLA3D打印机接收每个打印层的打印序列,并按照打印序列进行打印,进而获得三维模型。通过本实施例提供的用于SLA3D打印机的平面分割方法,能够使得SLA3D打印机适用于大规模的三维模型的打印,并在保证打印精度的前提下,获得较高的打印效率。图2为本发明实施例提供的待打印的三维模型在三维空间中的示意图,三维空间中的图案为待打印的三维模型,线圈为这一层的分割结果。图3为本发明实施例提供的对待打印的三维模型进行分层后的打印层的多边形示意图,具体为分割后的截面信息在二维平面上的显示效果。对待打印的三维模型进行分层,具体包括:将所述待打印的三维模型置于三维坐标中,以使所述待打印的三维模型的打印方向与三维坐标的z轴的方向重合。获取待打印的三维模型映射在z轴方向上最大值和最小值,并以z轴上的最小值到z轴上的最大值为方向,根据预设的打印层高度,对待打印的三维模型进行分层,获得N个打印层,其中,每个打印层包括至少一个多边形。应理解的是,对每个打印层进行分割,获得每个打印层的M个矩形块,具体包括:预设每个打印层所在的平面旋转角为第一旋转角。采用扫描线方式,并根据第一旋转角和预设的SLA3D打印机尺寸,对每个打印层进行分割,获得每个打印层的矩形块。根据每个打印层的矩形块,采用遗传算法,获得第二旋转角。根据第二旋转角,进而获得与第二旋转角对应的每个打印层的M个矩形块,其中,矩形块的尺寸与SLA3D打印机尺寸相同。可以理解的是,对采用扫描线方式,并根据第一旋转角和预设的SLA3D打印机尺寸,对每个打印层进行分割,获得每个打印层的矩形块,具体为:对每个打印层中的多边形上的点,以原点为中心做第一旋转角的变化,获得变换后的多边形。根据变换后的多边形,确定变换后的多边形的边界值,以获得变换后的多边形的外接矩形。根据变换后的多边形的外接矩形的底部顶点和SLA3D打印机的尺寸的高度,做平行与x轴的扫描线,获得扫描线与所述变换后的多边形的外接矩形的相交点集。对扫描线与变换后的多边形的外接矩形的相交点集进行删除和包含的处理,获得处理后的相交点集。对处理后的相交点集,采用SLA3D打印机尺寸相同的矩形块进行平铺,获得每个打印层的矩形块。根据第一旋转角,采用下式,获得所述每个打印层的矩形块;其中,θ为第一旋转角,fi(θ)为打印层中的一个多边形所对应的矩形块,n为所述打印层中的多边形的个数,F(θ)为所述第一旋转角所对应的打印层的矩形块。举例来说,图4为本发明实施例提供的打印层的多边形的目标函数模型的示意图,如图4所示,打印平面由多边形P1和P2组成。过原点的射线l与打印平面呈θ角,矩形R1,R2是多边形p1,p2与射线l平行的最小外接矩形。我们定义fi(θ)为多边形pi被用一个固定大小的矩形分割的最小块数。定义为这个平面被一个固定大小的矩形分割的最小的块数。举例来说,使用标记P={p1,p2,...,pn}表示打印层的多边形,其中pi=(xi,yi)为第i个多边形的点,n为多边形点或者边的个数。使用标记Rsla=(wr,hr)表示SLA打机的最大可打印尺寸,其中,wr为打印机尺寸的宽度,hr为打印机尺寸的高度。在第一旋转角θ确定的情况下,使用扫描线确定多边形P矩形进行Rsla分割的块数。图5为本发明实施例提供的对多边形进行分割的平面分割示意图,如图5所示。1)对多边形P={p1,p2,...,pn}上的所有点,以原点为中心做θ的变换,得到新的多边形其中P表示原始多边形,表示旋转之后的多边形表示多边形上的第i个点。2)在旋转后的多边形上找出边界值使之成为多边形的一个平行于坐标轴的最小外接矩形M=(xm,ym;wm,hm),其中xm,ym表示外接矩形左下角的点,wm,hm表示外接矩形的宽和高。3)从矩形M的底部,每隔hr为打印尺寸的高度,作一条平行于x轴的扫描线l(y),其中l(y)表示纵坐标为y,平行于x轴的直线。由于是在多边形的外接矩形内部扫描,扫面线l(y)必然与多边形相交。根据扫描线算法,获得它和多边形两两相对的点集C={(p1,q1),(p2,q2),...,(pm,qm)},其中(pi,qi),pi(x)<qi(x),表示扫面线l(y)与多边形相交的第i个点对。4)对每个点对(pi,qi),从点pi向上找到它与下一条扫描线l(y+hr)上对应的点pi’间的最小的横坐标并令若pi’不在扫描线l(y+a)上,则pi’与qi-1或者qi重合;同理从点qi向上找到它与下一条扫描线l(y+hr)上对应的点qi’间的最大的横坐标令若下一条扫描线越过了矩形框,则使用矩形框的上边界代替l(y+a),进行扫描。5)检查点集C={(p1,q1),(p2,q2),...,(pm,qm)}去掉重复或者被包含的点对,得到新的地点集其中h≤m。6)根据得到的使用大小与打印尺寸相同的矩形平铺扫描线l(y)与l(y+hr)之间的多边形区域。7)令y=y+hr,重复步骤3-7的过程,直至扫面线l(y)越过多边形外接矩形的上边界。本实施例中只考虑打印尺寸Rsla水平摆放,是因为其垂直摆放的形式可以在θ旋转后得到,为了避免重复,每次摆放打印尺寸Rsla的时候,只考虑Rsla水平摆放的形式。图6为本发明实施例提供的一种遗传算法解决平面分割的流程示意图,如图6所示,本实施例的遗传算法解决平面分割的方法如下所述。根据每个打印层的矩形块,采用遗传算法,获得第二旋转角,包括:采用遗传算法计算模型Ε(α)=argminθF(θ),以获得第二旋转角,其中,θ为第一旋转角,α为第二旋转角,F(θ)为第一旋转角所对应的打印层的矩形块,Ε(α)为第二旋转角所对应的打印层的矩形块。采用二进制串对第一旋转角进行基因编码,并采用基因交叉重叠的方式对所基因编码的个体进行交配,获得新的基因编码的个体。对新的基因编码的个体采用基因编码位突变的方式进行基因的变异,获得新的基因个体,进而获得第二旋转角。采用下式对第一旋转角进行基因编码;其中,INTMAX=216-1,b为二进制的形式,是由16个0,1组成的二进制串,θ为第一旋转角。举例来说,使用遗传算法计算模型Ε(α)=argminθF(θ)的最优的角度α的值。即找到这个α,使得函数值Ε(α)最小,在遗传算法中每一个角度θ,被称之为一个个体。使用16位二进制串为个体进行基因编码。具体方法如下:令INTMAX=216-1。对于任意一个个体θ∈[0,2π),其基因编码其中下标b表示取它的二进制形式,是一个由16个0,1符号组成的二进制串;对一个基因编码v,它对应的个体为个体与基因编码的转换精度为使用函数T(θ)=1/F(θ),表示个体θ的适应度函数。对一个个体θ,其适应度好函数值越大,表示这个个体越容易存活。对一个角度θ,平面分割后得到的矩形个数越少,这个角度就越接近最优解。使用基因交叉重叠的方式完成两个个体的交配过程。两个个体θi,θj交配产生新个体θ的过程如下:首先取得个体θi,θj的基因编码,vi=E(θi),vj=E(θj)令新个体的基因编码复制个体θi的基因编码,即v=vi;在区间[0,16)上随机取两个整数k1,k2,其中k1≤k2,并令v(k1:k2)=vj(k1:k2),完成基因编码的交叉;通过对这新的基因编码v进行解码得到新的个体,即θ=D(v)。图7为本发明实施例提供的通过基因分配变异产生新的个体的示意图,如图7所示,本实施例的通过基因分配变异产生新的个体的方法如下所述。使用基因编码位突变的方式完成基因的变异过程。对于一个个体θ,当前的基因编码v=E(θ),是一个长度为16的二进制串。对于基因编码中的每一位,都有概率进行突变,其突变的公式如下:v(k)=~v(k),ifrand(0,1)<5%。即对于基因编码中的任何一位,都有5%的概率从0突变为1或者从1突变为0,且基因编码中任何两个位置的编码其突变的过程都是相互独立的。通过对突变后的基因编码v进行解码得到新的个体,即θ=D(v)。通过遗传算法,求解Ε(α)=argminθF(θ)的过程如下:1)在区间[0,2π)上均匀取24个点,即每隔π/12取一个点,组成一个种群P={θ1,θ2,...θ24}。2)对种群P中的每一个个体,计算它的适应度函数,并按照适应度从高到低排序,取出其中的四个适应度最高的个体。3)将这四个个体进行两两交配,每两个个体产生6个新的后代,则一共可以产生个新的个体。4)对这24个新的个体进行变异操作,并替代原来的种群。5)迭代重复步骤2)-4)的过程100次,将其中适应度最高的个体作为问题Ε(α)=argminθF(θ)的解。通过本实施例提供的用于SLA3D打印机的平面分割方法,能够使得SLA3D打印机适用于大规模的三维模型的打印,并在保证打印精度的前提下,获得较高的打印效率。图8为本发明实施例提供的一种用于SLA3D打印机的平面分割装置的结构示意图,如图8所示,本实施的用于SLA3D打印机的平面分割装置如下所述。用于SLA3D打印机的平面分割装置,包括:三维模型分层单元81、打印层分割单元82、打印序列确定单元83。三维模型分层单元81,用于根据预设的打印层高度,对待打印的三维模型进行分层,获得N个打印层。打印层分割单元82,用于根据预设的SLA3D打印机尺寸,对每个打印层进行分割,获得每个打印层的M个矩形块。打印序列确定单元83,用于根据所述每个打印层的M个矩形块,确定每个打印层的打印序列,并将所述每个打印层的打印序列发送给所述SLA3D打印机,以使所述SLA3D打印机根据所述打印序列打印出三维模型,其中,N、M为正整数。三维模型分层单元81,还用于:将所述待打印的三维模型置于三维坐标中,以使所述待打印的三维模型的打印方向与三维坐标的z轴的方向重合;获取待打印的三维模型映射在z轴方向上最大值和最小值;以z轴上的最小值到z轴上的最大值为方向,根据预设的打印层高度,对待打印的三维模型进行分层,获得N个打印层;其中,每个打印层包括至少一个多边形。通过本实施例提供的用于SLA3D打印机的平面分割装置,能够使得SLA3D打印机适用于大规模的三维模型的打印,并在保证打印精度的前提下,获得较高的打印效率。本领域普通技术人员可以理解:实现上述方法实施例的全部或者部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。以上所述,仅为本发明的具体实施方式,但是,本发明的保护范围不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替代,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1