基于垂直扫成的三维打印支撑生成与优化研究

2019-09-27 05:05江志伟李耀棠
制造业自动化 2019年9期
关键词:切片成形物体

江志伟,李耀棠

JIANG Zhi-wei,LI Yao-tang

(中科院广州电子技术有限公司,广州 5 100701)

0 引言

熔融沉积制造(Fused Deposition Modeling,FDM)[1]技术是目前应用最为广泛的三维打印技术之一,在注塑模具、医疗、玩具、汽车、电子以及个人定制等领域得到大量应用。FDM的制造原理是分层累积成形,其制造过程中每一层都是通过数据处理软件将数字化三维模型切片后得到截面轮廓,然后规划生成打印设备喷头的运动轨迹并输出到打印设备进行成形制造[2,3]。支撑自动生成算法是3D打印软件的关键内容之一,不仅是实现离散堆积成形的重要环节,而且对成形速度、成形精度、零件表面质量等方面都有很大影响[4]。

三维打印支撑生成方法主要有两种,一是基于CAD(Computer Aided Design)几何模型的支撑生成,这种方式需要通过CAD软件手工添加支撑体,然后将其转换为网格模型进行打印,这种方式对用户要求较高,生成的支撑对于复杂模型难以保证其打印质量[5]。另外一种是基于网格模型[6~8]的支撑自动生成方法,网格模型数据格式公开而简洁,是事实上的三维打印软件数据输入格式标准,因而其支撑生成算法研究也更为广泛。陈之佳[9]等提出了一种基于直线扫描的支撑自动生成算法,通过扫描线段的并、差运算快速获得打印支撑。为进一步降低打印设备运行成本,提高成形效率,黄小毛[10]等设计了一种斜壁结构的支撑自动生成算法,不仅能够有效辅助零件实体的成形过程,而且能够减少支撑材料消耗量和成形时间。“蒙皮-刚架”(Skin-Frame)是刘利刚[11,12]等提出的轻质结构用来解决材料优化问题,该结构由一些细杆通过一些节点相连而成,形成空间的一个图结构,通过将模型表达成一个很薄的蒙皮以及内部刚架结构,使得表达后的物体的体积最小,而且使得打印物体能够满足所要求的物理强度,受力稳定性,自平衡性及可打印性等要求。Dumas[13]等给出了一个“脚手架”状的支撑生成算法,该支撑采用圆柱截面形状的细柱状支撑结构,每个支撑结构与模型连接处人为变小,以利于支撑结构的后处理,该算法有时需要交互增减支撑脚手架的数量。魏潇然[14]等提出一种以熔丝为支撑单位的树形稀疏支撑结构,与传统算法计算模型表面支撑区域不同,该算法计算每段熔丝需要支撑的区域,使支撑结构更契合熔丝沉积特点。Hu[15]等提出一个金字塔分解方法,把三维模型切割成尽可能少的几个不需要支撑的模块,分别打印然后拼接起来,实现零件零支撑结构。沈振宏[16]等为节省三维打印的材料和时间,提出了一种基于临界倾角约束的树形支撑结构生成算法,在保证打印稳定性的前提下,有效减少了支撑材料,缩短了打印时间。

3D打印技术是制造史上的巨大突破,其市场前景远大,但竞争也日趋激烈,要在激烈的市场竞争中占有一席之地,三维打印设备必须从各方面提高其性能。面向三维打印的数据预处理技术对于提高三维打印质量非常关键,在性能近似的硬件设备中,更好的数据预处理能够使类似的硬件设备产生更好的打印效果,从而提高打印设备的市场竞争力。高端的商业三维打印数据处理系统价格昂贵,而开源系统在商业应用上的许可制度等因素,大大影响了我国三维打印行业的进一步发展,开发具有自主产权的三维打印软件系统,对于缩小我国三维打印与先进国家的差距具有重要意义。

针对目前三维打印设备数据处理软件现状,我们研发了具有自主知识产权的数据预处理软件系统,提出了基于垂直扫成的支撑生成算法,并面向模型可打印性以及打印效率等方面进行了改进优化。接下来对该方法进行阐述,其中第一部分为算法总体框架,第二部分为层片化支撑算法的具体实现细节以及关键点介绍,第三部分介绍了针对可打印性以及模型细节的支撑优化,第四部分给出了系统实现和实例讨论,最后给出论文总结。

1 基于垂直扫成的支撑生成与优化算法概述

三维打印支撑是一些额外的支撑结构以防止打印过程中出现坍塌或者不能打印情况的出现,FDM支撑结构必须考虑可打印性,即支撑不仅仅是简单满足几何意义上的支撑,而且要有足够的强度和稳定性,在此基础上兼顾支撑加工材料的耗费以及后处理等因素,当模型变得复杂并且网格数目较多时,上述问题变得尤为突出。为此,我们提出基于垂直扫成的支撑生成与优化算法,该算法基于支撑区域纵向扫成建立支撑体三维包围空间,然后基于二维分层切片计算二维打印层上的支撑区域,并针对一些不能加工的细小特征进行改进优化,最终建立完整的层片化支撑模型。算法总体框架如图1所示,该算法以三角网格模型为输入,以层片化支撑模型为输出,其关键模块包括如何快速找到需要支撑的网格表面区域,消除该区域中的奇异情况以建立符合二维流形的垂直扫成网格模型,最终通过该模型与物体模型之间的关系求得层片化支撑并进行优化改进。

图1 基于垂直扫成的支撑生成与优化方法框架

2 基于垂直扫成的层片支撑生成算法

2.1 算法基本思想

该算法基本思想是从物体表面逆打印方向进行扫成,扫成体中去除被物体或者其他支撑体遮挡的部分,剩余的即是有效的支撑体,以图2所示的模型为例,其支撑区域向Z向反方向进行扫成,得到图3所示的扫成体,该扫成体包含了该区域的支撑,去除被模型遮挡的部分,得到图4所示的支撑模型。为此,首先对模型网格表面分析,得到需要支撑的表面区域,而要得到最终的支撑,则采用离散化的求解方法,即在二维分层切片轮廓上进行几何运算得到最终的打印支撑模型。

图2 模型支撑区域

图3 支撑区域扫成体

图4 支撑模型

2.2 层片支撑生成算法

基于物体支撑区域的垂直扫成以及二维分层切片几何运算的方法,给出了图6所示的层片支撑生成算法,该算法的输入为原始网格模型以及打印层高,输出为层片化支撑模型,以下介绍算法关键细节。

该算法首先进行网格模型表面分析,基于网格面片的倾斜度确定需要支撑的三角形。如图5所示,我们以打印层高(LH)和打印线宽(LW)作为计算临界倾角的依据,如式(1)所示,若倾角大于该临界角,则判定该三角形需要支撑,在实际应用中,用户可根据实际情况对该临界角进行适当微调。

另外,需要基于洪军[17]等的方法确定悬挂边、悬挂点,并将其邻面加入到需要支撑的区域。

图5 网格三角形倾斜度计算

图6 基于垂直扫成的层片化支撑算法

上述步骤得到的支撑网格模型进一步基于拓扑关系连成一些连通的区域,这些区域向Z向反向扫成到XOY平面,并保证新得到的扫成模型的三角形法向指向扫成体外部,这其中需要处理如图7所示的奇异情况,即多个三角形之间仅仅共点的情况,我们采用的方法将该点进行分裂,使相邻三角形不在拓扑上共点。如图5算法所示,通过对该扫成体进行二维分层切片,并将支撑切片区域去除物体部分,即可以得到所需要的支撑轮廓。在此过程中,原始物体模型的上层轮廓遮挡关系将被传递下层,以保证支撑生成的准确性。

图7 支撑区域奇异情况

3 层片支撑可打印性改进优化

前述得到的支撑是单纯几何意义上的支撑,更适用于细节较少的网格模型,而对于存在一些细小特征的模型,容易带来难以打印的问题。以图8为例,其中图8(a)中的模型存在一个非常些小的边缘区域,该区域从几何上看只要图8(b)中的蓝色支撑即可,但在实际打印过程中,由于该支撑非常细长,容易出现打印过程中支撑坍塌的情况,因此我们对前述算法得到的支撑结果进行可打印性优化改进,使其转化为图8(c)中蓝色的支撑模型,该支撑显然不会出现打印坍塌的情况。

图8 支撑可加工优化改进

针对上述目标的支撑优化改进基本思想是:识别其中细小的支撑区域,根据该支撑区域所在的连续层数,基于一定启发式规则对其进行区域扩充,使得最终的层片支撑变得更加牢固,从而起到支撑作用,其算法流程如图9所示。由于精确找到类似图8中的细长区域需要大量的运算,因此该算法中采用的方法是从顶层开始依次处理其中的细小特征区域,其界定尺度则依赖于该区域所处的层数,即与该区域有交叠的连续层数,从而给定该区域应该达到的宽度范围,若不足,则将该区域进行相应的放大膨胀。由于区域放缩后可能与物体相交,因此需要去掉其中的交叠部分。需要指出的时,由于该算法对每一层的连续区域为基本单元进行处理,因此可能带来一些额外的支撑膨胀,带来一定的支撑材料耗费。

图9 支撑可加工性优化改进算法

4 系统实现与实例分析

在Windows平台下,采用C++在Visual Studio 2013开发环境下实现了三维打印数据处理软件系统,该系统采用本文所介绍算法对STL模型进行支撑生成与优化。以下基于模型实例验证分析本文算法的有效性。

图10为采用该算法处理的一个杯子模型,该模型三角网格面片数为35661,物体长、宽、高分别为102、72、72。该模型的复杂之处在于其杯壁处的刻字非常细微,因此其支撑模型需要特殊处理以利于打印。图11为给该模型的中间支撑模型,即基于垂直扫成生成的基本支撑,看见其刻字处的支撑非常细小,在打印过程中非常容易坍塌。图12为最终生成的层片化支撑,该支撑在细节出进行适当的放大,因而能够稳定地辅助物体打印,图13为杯壁刻字处的支撑形状细节。

图14为采用该算法处理的一个玩具狗模型,该模型三角网格数为456552,物体长、宽、高分别为68、50、121。该模型的难点在于其形状变化很多,其细节处如耳朵、颈部等具有大量的微小悬挂特征,如图14所示,因此其需要的支撑很多。图15为耳朵处的支撑细节,可以看出耳朵底部以及弯曲侧面的支撑需求导致了支撑需要包绕整个耳朵周围。另外,该模型为薄壁形状,因此其内部也需要支持,图16为高度70.625处的分层切片,红色和蓝色之间为模型的薄壁,其他部分为物体的支撑区域。

图10 杯子网格模型

图11 基本支撑形状

图12 优化后的支撑形状

图13 可加工的支撑形状细节

图14 玩具狗网格模型

图15 可加工的支撑形状细节

图16 高度70.625截面轮廓

5 结论

给出了一种基于垂直扫成的三维打印支撑生成与优化算法,通过网格模型面片的倾斜度快速识别需要支撑的区域,将该区域垂直扫成为候选三维支撑模型区域,然后基于二维分层切片之间的关系求解得到需要打印的支撑层片,并对其进行可加工性优化改进。该算法数据结构简洁,内存耗费低。该方法得到的支撑材料耗费尚有进一步改进的潜力,我们通过设备打印路径的稀疏化处理对该问题加以改进并在另外文章中加以介绍。实例表明该算法稳定可靠,特别是针对复杂网格模型具有良好的效率和鲁棒性。

猜你喜欢
切片成形物体
管材成形
新局势下5G网络切片技术的强化思考
5G网络切片技术增强研究
深刻理解物体的平衡
弧线齿面齿轮成形原理及3D成形
MFC2019首届汽车冷弯(滚压与拉弯)成形技术论坛成功举办
网络切片标准分析与发展现状
浅析5G网络切片安全
人生若只如初见
揭开物体沉浮的秘密