LCD光固化3D打印技术支撑之间添加连接杆算法研究
2022-03-12林云森
陈 英,林云森
(南昌航空大学 软件学院,南昌 330063)
0 引言
随着社会的发展和科学技术的进步,人们对于信息化、智能化和高效化的要求越来越高,这促使3D打印快速成型技术得以迅速发展。3D打印技术作为一种新型的快速成型方法已不是什么新鲜的话题[1],如LCD、FDM、SLA、SLM技术,这几种3D打印技术它们都有各自的优势。但是不管是哪种3D打印技术,都不可避免要面对模型添加支撑打印和后处理中支撑的去除的问题。有过3D打印经验的都知道,在模型打印中,模型支撑的添加和设置对模型打印成功率和模型成型效果的影响非常大。同时对打印完成后模型支撑的后处理也非常重要。因此,模型支撑问题可以说是3D打印技术中急需解决的一个难点问题[2]。
在LCD光固化3D打印技术中,3D打印机是根据切片图形,一层一层的打印模型,打印过程中,由于成型耗材受重力影响,每成型一层就必须在上一层成型面的基础上给予支撑[3]。对于结构复杂的零部件模型,其在成型过程中,片层截面轮廓变化明显,如果上一层成型面不能为下一层成型面提供支撑定位,会严重影响模型的成型质量甚至无法成型,因此,对于中空的部位,需要添加支撑来保证模型打印成功。
但是又因为目前3D打印材料较为昂贵,同时模型打印完成后清除支撑会大大影响模型表面光洁度等麻烦的问题,所以,不会给模型的所有中空位置都添加支撑,而是给一些关键或者特别突出的中空位置添加一些支撑。但如果增加支撑体积,又会增加支撑和模型的接触面积进而影响模型表面光洁度增加清除支撑的难度。
因此,为解决现有技术中,支撑数量过多会增加打印成本,影响成型效果,过少又不能起到较好的支撑作用的问题,本文以LCD光固化3D打印技术为例,在支撑之间设计自动添加连接杆的算法,可有效提高支撑稳定性从而提高模型成功率和成型效果[4],又无需增加支撑数量和体积的,还能减少耗材,降低成本,使3D打印效果达到最优化。
1 自动添加连接杆算法
1.1 算法概述
本文自动添加连接杆算法主要分为支撑生成模块和连接杆生成模块。支撑生成模块包括从3D模型文件导入,待支撑区域提取,支撑生成。连接杆生成模块主要步骤包括,连接杆参数设置、连接杆计算、连接杆生成和切片文件生成。算法总体流程图如图1所示。
图1 算法步骤流程图
1.2 算法实现
对待加支撑区域,通过手动添加支撑,然后遍历支撑 生成模块生成的当前所有支撑,将与当前最新支撑的距离在预设间距范围内的支撑作为目标支撑[5]。根据预设角度(图2中θ)和当前最新支撑与目标支撑的距离(图2中Cd),计算得到连接杆高度,所述连接杆高度为垂直方向的连接杠高度(图2中Hd),以及,根据所述连接杆高度和支撑总高度,计算得到预备添加连接杆的数量。其中所述支撑总高度为所述当前最新支撑和目标支撑两者顶点中的较低点减去预设的第一预留高度后,与两者底点中的较高点加上预设的第二预留高度后,之间的高度差(图2中H)。图2显示了模型1,在支撑31与支撑32之间连接杆生成的结构的过程。连接杆支撑算法设计步骤如下:
步骤一:遍历当前所有支撑,将与当前最新支撑的距离在预设间距范围内的支撑,作为目标支撑。
具体的,如图2所示,在导入3D模型文件后,首先模型1待加支撑区域上生成第一根支撑31,可手动设置支撑31的添加位置和大小等参数,也可以通过软件系统内置的参数生成第一根支撑31。其中,支撑参数包括但不限于,支撑位置信息,支撑直径、支撑高度等。
图2 连接杆生成结构图
生成第一根支撑31之后,开始执行步骤一,如果没有其他支撑即只有一根支撑时,不遍历当前支撑,即不执行步骤一。
按照生成第一根支撑31的方法继续添加第二根支撑32,在生成第二根支撑32后,又开始执行步骤一,判断当前最新支撑(即第2根支撑)32与第一根支撑31的距离Cd是否在预设的间距范围内,如果在预设的间距范围内,就将第一根支撑31作为目标支撑,并进入步骤二;否则,继续添加下一根支撑。在算法中另一实施例中,当有两根以上支撑时,在步骤一中,遍历除自身(即当前最新支撑)外的其他所有支撑。当有3根或更多根支撑时,可将与当前最新支撑的距离在间距范围内,且距离最短的支撑作为目标支撑。
步骤二:根据预设角度和所述当前最新支撑与目标支撑之间的距离,计算得到连接杆高度。
具体的,在算法计算中,连接杆高度为连接杆在垂直方向的投影高度。根据正切三角函数的公式,连接杆高度Hd=Cd/tan(θ)。其中,Cd为当前最新支撑与目标支之间的距离。在本算法中,所述预设角度为连接杆和支撑之间的夹角的角度θ,可预置在系统内的默认参考角度,或者用户可根据实际情况设置具体数值,但需要在步骤一之前预设完成,在本步骤二计算得到连接杆高度后,进入步骤三。
步骤三:根据所述连接杆高度和总高度,计算得到预备添加数量。
具体的,在本实施例中,如图2所示,所述总高度H为当前最新支撑32和目标支撑31两者顶点中的较低点减去预设的第一预留高度h1后,与两者底点中的较高点加上预设的第二预留高度h2后,两者之间的高度差。其中,两者顶点中的较低点为当前最新支撑32和目标支撑31两者顶面圆心(顶点)中的高度较低的点Lm3。另外,由于当前最新支撑32和目标支撑31两者的底面处于不同的水平面,所以,两者底点中的较高点Ln3为当前最新支撑32的底面圆心,点Ln3加上第二预留高度h2后得到结束点Fin。预备添加数量等于点Lm3的高度减去第一预留高度h1,与结束点Fin之间的高度差(即总高度H),再除以步骤二得出的连接杆高度Hd,所得的商数,忽略余数。其中,高度差是指垂直方向的高度差,至此得到预备添加的连接杆数量。
在本算法中另一情况[6],当新增支撑与目标支撑两者处于相同水平面时,如图3所示,则两个的底部就不需预留高度h2,此时总高度H为当前最新支撑32和目标支撑31两者顶点中的较低点减去预设的第一预留高度H1后,两者之间的高度差。将总高度H再除以步骤二连接杆高度,所得的商数,忽略余数。其中,高度差是指垂直方向的高度差,至此得到预备添加的连接杆数量。
图3 同一平面连接杆生成结构图
步骤四:从目标支撑的当前顶点起始点开始,按照所述预设角度和预设连接杆直径,生成最新支撑和目标支撑的第一根连接杆。
具体的,所述预设直径为连接杆直径,可预置在系统内,通常,连接杆直径要小于支撑的直径,或者用户可根据实际情况设置具体数值,必需要步骤一之前完成设置。
步骤五,以前一连接杆的终点为起点,按照所述预设角度和预设连接杆直径,生成连接所述当前最新支撑和目标支撑的第二根及以上的连接杆,直至连接杆数量达到步骤三计算得到的预备添加连接杆数量。
具体的,如图2生成第一根连接杆41后,即可从第一根连接杆41的终点En开始生成第二根连接杆42,直径、角度和、高度和形状都和第一根连接杆41相同。依此类推,第三根连接杆及后续连接杆都是在前一根连接杆终点开始生成,直到连接杆数量达到步骤三计算得到的预备添加连接杆数量。
至此,系统已经完成了第一根支撑31和第二根支撑32之间连接杆的添加。然后,继续添加第三根支撑时,又回到步骤一,继续寻找与第三根支撑的距离在预设间距范围内的目标支撑。依此类推,直到所需支撑和连接杆添加完毕。如图4添加支撑的效果图。
图4 模型添加支撑效果图
2 实验结果与分析
本文算法的目的是为3D模型支撑之间建立稳定且节省耗材的连接杆支撑结构,是为3D模型的顺利打印建立良好的前提。
文中的算法主要包含3个参数,连接杆与垂直支撑夹角θ预设为π/4,上顶点的预设高度h1设为0.8mm,底部预设高度h2设为0.5mm。
实验测试集选用8个3D模型数据,模型主要来源于 3D模型打印啦网站。
实验采用NOVA3D BENE3-L3121打印机,打印参数设置为层厚0.05mm,底部层数3层,底部曝光时间60s,普通曝光时间8s,每层曝光电机抬升高度4mm,电机上下速度100mm/min,静止等待时间为2s。打印材料为普通刚性光敏树脂。
为了检验支撑之间的连接杆对3D模型打印成型效果和模型消耗耗材效果。选取了8组不同的模型作为实验对象,这8个模型复杂度和需加支撑数逐一递增,然后分别采用支撑之间加连接杆与支撑之间未加连接杆进行打印,打印对比如图5所示,分析图5可知没有采用连接杆打印,模型越复杂,加的支撑越多,打印出来模型的表面误差越大,一方面由于过多支撑与模型接触导致后处理中修剪支撑时,修剪后模型有微变形从而导致表面误差变大,另一方面与支撑在打印过程中不能稳定支撑住模型,如图6(a)、图6(b)在动漫模型手臂A处必须添加支撑,来保证模型成功打印,当未采用添加连接杆方式的支撑打印,支撑稳固性差,支撑不住手臂的悬空重量,导致手臂处打印变形,也导致表面误差增大。而采用支撑之间添加连接杆方式,无论是打印结构比较简单的3D模型,还是结构相对复杂的3D模型,得到的表面误差都较小,误差值没有超过0.01,可以说明使用连接杆方式打印,实体3D模型表面光滑,误差很小,这与连接杆使模型的支撑更加稳固,同时也大大减少支撑与模型接触面[7]。
图5 两种方式打印模型表面误差对比
图6 模型打印实物图
对比添加连接杆模型和未添加连接杆模型两种方式打印获得实物,模型打印耗材使用情况对比如图7所示,从图7中可以清楚地看出,未添加连接杆模型打印,由于模型复杂度影响,需要添加支撑会越多,增加了耗材[8]。而添加连接杆的模型可使得支撑减少,减少耗材使用,由此可以见支撑之间添加连接杆,其耗材明显较少。
图7 添加连接杆和未添加连接杆模型打印耗材对比
实验结果显示无论是打印结构比较简单的3d模型,还是结构相对复杂的3D模型,模型在支撑之间添加连接杆条件下,有效提高支撑稳定性使其稳定打印保证其成型效果和模型表面光洁度,并且能有效减少打印耗材。
3 结语
本文针对3D打印中由于添加支撑数量过多导致支撑与模型接触面增多导致模型表面成型效果差,增加打印支撑材料成本,后期清除支撑麻烦,过少又使支撑不稳固导致打印失败的问题,提出了一种支撑之间添加自动连接杆算法,目标支撑与最新支撑之间生成连接杆,继续添加的支撑也与目标支撑之间生成连接杠。实验结果表明,针对多个代表性的模型,该算法均能有效提高支撑稳定性使其稳定打印保证其成型效果和模型表面光洁度,并且能有效减少打印耗材。
文中算法主要针对人造模型,该类模型通常加支撑都为垂直于底面的笔直支撑,若模型过于特殊,需要有幅度的支撑时,则支撑与目标支撑不能形成稳定的三角结构,可能导致打印失败,此时需要设计能根据幅度生成有对应幅度的连接杆。这也是后续重点的研究方向。