一种生成3D打印模型的树形支撑结构的方法与流程

文档序号:17440580发布日期:2019-04-17 04:42阅读:1090来源:国知局
一种生成3D打印模型的树形支撑结构的方法与流程

本发明属于3d打印的技术领域,更具体地,涉及一种生成3d打印模型的树形支撑结构的方法。



背景技术:

在3d打印领域,并不是所有的模型都可以直接进行制造,例如对于具有悬垂区域的模型,往往需要在模型的悬垂区域添加支撑结构,从而确保模型能够被成功打印。否则,没有添加支撑的悬垂区域则会在打印过程中出现坍塌,变形从而导致打印失败。当前的支撑算法从某种程度上效率不高,并且支撑的结构形式并不是高效,因此本专利提出一种高效的支撑生成算法,在3d打印软件处理中成为重要的研究方向。

在3d打印中,模型的支撑算法的往往要经过下列过程组成:支撑区域的识别过程,支撑点采样过程以及支撑结构生成过程。其中悬垂区域的识别广泛采用的是基于stl模型的三角面片判别的方法,如果三角面片的法向矢量与z轴的夹角大于临界角度αmax,则该三角形被识别为待支撑三角形。这个角度αmax称为最大倾斜角度。该αmax与具体的工艺和打印材料相关,因此可以通过实验获得具体的值,所有相邻的待支撑三角形组成一个完整的支撑区域,显然,一个模型可能包含多个支撑区域。

在所有的支撑点中生成树形支撑结构,通知保证生成的树枝长度最短。这在3d空间中生成树形支撑生成方式可以被描述成为欧几里得steiner最小生成树问题(euclideansteinerminimaltreeproblem,esmt),具有至少np的复杂度,当前大部分的工作是在2d空间中给出解决方案。toppur等人给出了在3d空间生成最小树方法,但是该方法的复杂度是o(n2);最近vanke等人提出了一种聪明的树形支撑结构方法,他们采用了一种基于几何模型的支撑形式来减少支撑材料的使用。在实现方式上,他们采用每次在3d空间中寻找最近的两个支撑点,并在其相交区域通过面扫描算法来计算新生成的点,直到所有的支撑点都处理完毕结束,假定支撑点的数量是n,则vanke的算法的时间复杂度是o(n2);meshmixertm软件也可以提供支撑结构生成,但是该支撑方法并不公开,其次树形支撑的生成效率不高,其次,生成的树枝结构是扭曲的,并且是等直径的树枝结构,这种支撑结构可以通过使用类截圆锥状的树枝结构进行优化,从而可以减少支撑材料的使用。支撑生成算法对3d打印软件的应用性起着重要的作用,首先,低效率的支撑算法严重影响3d打印软件的客户体验,其次,臃肿的支撑结构,则增加了模型整体的打印时间,以及耗材成本的增加,因此,迫切需要提出一种快速高效的支撑算法来提高3d打印软件的高效性和应用型。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明提供了一种生成3d打印模型的树形支撑结构的方法,本发明通过对待打印的3d模型的支撑面进行分层分区处理,以此建立树形支撑结构,其中每层的支撑点通过上一层的支撑点计算获取,每层的树枝的形状呈圆台状,该支撑结构能有效缓解抖动现象,提供更好的支撑稳定性,同时使用支撑材料少,且计算时间短,效率高。

为实现上述目的,按照本发明,提供了一种生成3d打印模型的树形支撑结构的方法,其特征在于,该方法包括下列步骤:

s1构建第一层支撑点

对于待打印的3d模型,识别该模型的待支撑区域,并将该待支撑区域作为第一层支撑区域,将该待支撑区域进行网格划分,每个网格节点为一个支撑点;

s2第i+1层的支撑点的形成

将第i层的所有支撑点投影在水平面xoy中,以此获得多个投影点,其中所有投影点形成的区域作为投影区域,按照预设尺寸将该投影区域划分为m个子区域,每个子区域包括多个投影点,其中,i=1,2,…,n,j=1,2,…,m,

(a)对于第j个子区域,根据该第j个子区域中的投影点生成一个第i+1层的支撑点p(i+1,j);以3d打印机的基台为底面,判断生成的所述支撑点p(i+1,j)是否在打印基台之上:

(a1)当所述支撑点p(i+1,j)不在所述基台之上时,删除该支撑点p(i+1,j),然后将所述将第j个子区域中的每个支撑点分别投影在所述基台上,以此形成多个投影点,该多个投影点即为所述第j个子区域在第i+1层的支撑点,将每个投影点与形成该投影点的第i层的支撑点连接,以此形成第i层与第i+1层之间的一根树枝,最后将所述第j个子区域中所有的支撑点从第i层删除所述;

(a2)当所述支撑点p(i+1,j)在所述基台之上时,将该支撑点p(i+1,j)与第j个子区域中每个支撑点相连分别连成多条线段,判断每条线段是否与待打印模型是否发生干涉:

i对于发生干涉的线段,将干涉点作为第i+1层中的支撑点,并删除所述支撑点p(i+1,j)和发生干涉的线段在第i层中对应的支撑点,最后连接所述干涉点和第i层中形成该干涉点的支撑点,以此形成第i层与第i+1层之间的一根树枝;

ii对于不发生干涉的线段,当不发生干涉的线段大于1条时,将没有发生干涉的线段在在第i层中对应的支撑点形成的集合作为第i层的第j个子区域,返回步骤(a),当发生干涉的线段等于1时,将该不发生干涉的线段在第i层中对应的支撑点作为第i+1层的支撑点;

(b)j=j+1,返回步骤(a)直至完成第m个子区域生成第i+1层的支撑点p(i+1,m),并以此完成第i层到i+1层所用树枝的建立;

s3i=i+1,重复步骤s2,直至第n层的支撑点为0,以此获得树形支撑结构。

进一步优选地,在步骤(a)中,所述根据该第j个子区域中的投影点生成一个第i+1层的支撑点p(i+1,j),优选按照下列方法进行:

(1)设定所述第j个子区域中第s个支撑点的重量ws,计算支撑点p(i+1,j)在xoy平面中的投影点的坐标,

其中,s是第j个子区域中支撑点的数量,k是第j个子区域中支撑点的总数量,s=1,2,…k,xs是第j个子区域中第s个支撑点的横坐标,ys是第j个子区域中第s个支撑点的纵坐标;

(2)在xoy平面中,计算所述第j个子区域中每个支撑点在xoy平面的投影点到所述投影点之间的距离,以此获得k个距离值,该距离值中的最大值lmax对应的投影点为sp',该投影点sp'对应的支撑点为sp,所述支撑点p(i+1,j)的z方向的坐标计算按照下列表达式进行:

p(i+1,j),z=spz-lmaxcotαmax

由此获得所述支撑点的坐标为:

其中,spz为所述支撑点sp的z轴方向的坐标,αmax是所述支撑点的最大倾斜角。

进一步优选地,对于所述支撑结构中的每个树枝而言,每个树枝呈圆台状,每个树枝的上端和下端的直径的关系按照下列表达式进行:

ddown=dup(1+fαα+fll+fwwup)

其中,dup是树枝的上端的直径,ddown是树枝下端的直径,α是树枝的倾斜角,l是树枝的长度,wup是该树枝上端支撑点的重量,fα、fl和fw分别是设定的树枝倾斜、长度和支撑点重量的权重值。

进一步优选地,在步骤(1)中,所述设定所述第j个子区域中第s个支撑点的重量ws,则第i+1层的所述支撑点p(i+1,j)的重量优选按照下列表达式进行:

其中,是所述支撑点p(i+1,j)的重量。

进一步优选地,在步骤s2中,所述按照预设尺寸将该投影区域划分为m个子区域,其中,第i+1层的预设尺寸是第i层预设尺寸的整数倍。

进一步优选地,在步骤s2中,当i=1时,即第一层支撑层,该第一层支撑层的所述预设尺寸设定为采样间隔的2倍。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:

1、本发明通过对待打印的3d模型的待支撑面进行分层分区进行处理,从而简化每层的支撑点的计算问题,同时缩短每层支撑点的计算时间,提高计算效率;

2、本发明的树形支撑结构中,每个树枝的均呈圆台状,一方面使得树形支撑结构具有良好结构稳定性,同时也减少了每个树枝使用的支撑材料,从而降低整体的支撑结构使用的支撑材料,降低成本。

附图说明

图1是按照本发明的优选实施例所构建的生成3d打印模型的树形支撑结构的方法的流程图;

图2是按照本发明的优选实施例所构建的生成3d打印模型的树形支撑结构的方法的第一层支撑区域的形成示意图;

图3是按照本发明的优选实施例所构建的在xoy平面将第一层支撑区域划分为多个子区域的示意图;

图4是按照本发明的优选实施例所构建的计算支撑点的z轴坐标的示意图;

图5是按照本发明的优选实施例所构建的相邻两层之间树枝的示意图;

图6是按照本发明的优选实施例所构建的树形支撑结构的形成示意图;

图7是按照本发明的优选实施例所构建的对比试验的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

图1是按照本发明的优选实施例所构建的生成3d打印模型的树形支撑结构的方法的流程图,如图所示,一种生成3d打印模型的树形支撑结构的方法,在整个处理流程中,我们采用与qian相同的递归支撑区域识别方法,得到模型相应的悬垂区域,然后对这些悬垂区域进行均匀采样,采样间隔为hs,获得相应的支撑点集合s。

图2是按照本发明的优选实施例所构建的生成3d打印模型的树形支撑结构的方法的第一层支撑区域的形成示意图,如图2所示,对于l待打印3d模型,识别的悬垂区域如图2右边图中的灰色区域所示,采用分治思策略对这些支撑点s进行局部区域划分,图3是按照本发明的优选实施例所构建的在xoy平面将第一层支撑区域划分为多个子区域的示意图,如图3所示,在每个局部区域进行树枝构建,然后依次迭代,最终完成具有层次结构树形支撑生成。

在本实施例中,针对支撑点集合s,进行树形支撑构建的具体实现方式如下:

步骤1:首先对支撑点集合s进行投影到xoy平面,针对这些投影点进行均匀网格划分,如图2所示,每个子区域中大约包含4个支撑点,第一层的投影区域划分的尺寸hg设定为采样间隔hs的2倍;

步骤2:对于第i+1层的支撑点的生成,是根据第第i层的第j个子区域中的支撑点计算获得,我们通过基于局部质心的方法生成一个新的支撑点p(i+1,j),从而构建从p(i+1,j)到支撑点的树枝结构,其中,该新生点p(i+1,j)要在每个支撑点的圆锥区域内部生成,这样可以保证连接到该支撑点的树枝结构可以被打印出来,p(i+1,j)处于所有支撑点的支撑圆锥的相交空间内,因为这些支撑点在3d空间并非处于一个等高面上,因此,在3d空间精确计算出相交空间中的最高点很复杂,我们提出采用一种实际高效的计算公式能够快速实现p(i+1,j)的位置计算。图4是按照本发明的优选实施例所构建的计算支撑点的z轴坐标的示意图,如图4所示,具体步骤如下:

首先,在子区域中的投影点中,根据公式(1)计算出在水平面中子区域的质心位置,即支撑点p(i+1,j)在xoy平面中的投影点

然后,在子区域中的所有投影点中,计算出特殊投影点sp,即子区域中四个节点中与质心距离最远的节点sp',根据几何关系,计算获得支撑点p(i+1,j)的z轴坐标,

p(i+1,j),z=spz-lmaxcotαmax(2)

设定所述第j个子区域中第s个支撑点的重量ws,其中,s是第j个子区域中支撑点的数量,k是第j个子区域中支撑点的总数量,s=1,2,…k,xs是第j个子区域中第s个支撑点的横坐标,ys是第j个子区域中第s个支撑点的纵坐标,对于子区域中的新支撑点p(i+1,j)的重量,则是由j个子区域中所有支撑点的重量之和。在计算好p(i+1,j)位置之后,则需要判定p(i+1,j)是否在打印基台之上,如果在打印基台之上,则说明p(i+1,j)的位置有效,则在此局部区域建立从p(i+1,j)到支撑点的树枝结构,并将p(i+1,j)作为新生成的支撑点返回,否则,直接从支撑点到打印平台垂直建立支撑树枝结构,此时,将当前子区域的支撑点都清空,并且不返回任何新的支撑点,如果当前子区域的支撑点数量减少为1,则该唯一支撑点作为新支撑点返回。

步骤3:在所有的子区域计算完成后,则所有返回的新支撑点pnew都将合并在一起,并更新支撑点集合s。

重复对集合s执行步骤1、步骤2和步骤3的迭代处理,在每次迭代处理过程中,hg=2hg,直到s集合数量收缩到0,则算法结束,树形支撑结构生成完毕,图5是按照本发明的优选实施例所构建的相邻两层之间树枝的示意图,图6是按照本发明的优选实施例所构建的树形支撑结构的形成示意图,如图5所示是相邻两层结构时间的树枝,图6是按照上述方法获得的最终的树形支撑结构。

根据获取的树形拓扑信息,确定合理的树形节点直径的,每个树枝呈圆台状,每个树枝的上端和下端的直径的关系按照下列表达式(3)进行:

ddown=dup(1+fαα+fll+fwwup)(3)

其中,dup是树枝的上端的直径,ddown是树枝下端的直径,α是树枝的倾斜角,l是树枝的长度,wup是该树枝上端支撑点的重量,fα、fl和fw分别是设定的树枝倾斜、长度和支撑点重量的权重值。α和l在确定树枝上下两端的支撑点后,可根据支撑点的坐标计算获得,wup可根据上端支撑点对应的上层子区域内各个支撑点的重量计算获得。

按照上述表达式计算获得的树枝可以保证所有的树枝都保持是圆台状的结构,同时,还可以保证在树枝节点之间的光滑平顺性,这增加的支撑结构的稳定性。

图7是按照本发明的优选实施例所构建的对比试验的结构示意图,如图7所示,实验a1、a2、b3和b4实验中采用的参数见下表,通过在实验中对比分析,具有圆台状的支撑结构具有良好结构稳定性,同时能够降低支撑材料的使用,在a1和a2中的两个树枝都因为树枝太细而导致打印失败,通过加粗两个树枝结构的直径,如b3和b4中两个模型都可以成功打印,但是,b4比b3有更好的成形质量,因为在fdm工艺中,喷头在沉积过程中对成形好的支撑结构会施加一个力,从而对树杈结构产生扭矩,引起树枝结构的抖动现象,b3的较差的成形质量可以说明等直径的树杈结构更容易产生抖动效应,然而,圆台状的支撑结构可以缓解这种抖动现象,提供更好的支撑稳定性,同时使用较少的支撑材料。

表1对比实验数据

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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