熔融沉积成型树状支撑生成算法设计

2022-01-27 15:23龚张顺赵东标
机械设计与制造 2022年1期
关键词:支撑点树状面片

龚张顺,赵东标,薛 乐

(南京航空航天大学机电学院,江苏 南京 210016)

1 引言

增材制造(Additive Manufacturing,AM)又被称为3D打印,它采用自下而上逐层叠加的方式直接将三维虚拟模型转变为实体零件[1-3],大大缩短了产品从概念设计到实体模型的研发周期,能给产品开发带来极大的方便,被应用于制造业[4]、医疗[5]和动漫模型制作[6]等领域。在众多的增材制造技术中,熔融沉积成型(Fused Deposition Modeling,FDM)是应用最为广泛的一种,它采用熔融状态的熔丝按照扫描路径依次堆积并冷却得到实体模型。

支撑算法是国内外研究的热门领域,主要围绕着支撑点的选取和支撑形状特征生成两方面。文献[7]设计了一种斜壁支撑结构,根据不同的悬空特征生成三种不同形状的支撑,与一般采用的直壁结构相比,这种支撑结构大大减少了支撑结构的体积。文献[8]将单个细胞结构组合成支撑形式应用在金属3D打印中,并对复杂几何形状进行支撑优化。文献[9]根据待支撑区域的几何特征设计十字支撑、单壁板支撑以及多壁板锯齿形支撑结构。文献[10]对熔融沉积快速成型的支撑优化工艺方法进行了研究。

首先分析了基于面片倾角支撑区域选择方法;利用切片算法得到的切片轮廓简化三维布尔运算,结合切片分组的思想生成树状支撑结构;最后进行对比实验,验证了该算法能有效支撑模型悬空区域,并且节省了打印材料和打印时间。

2 支撑点筛选

熔融沉积使用的是热塑性材料,材料本身具有一定的粘黏性,所以当倾角在一定范围内时不需要添加支撑,当倾角过大时,粘黏力无法抵抗材料的重力而产生坍塌,此时需要添加辅助支撑。因此将保证模型不需要添加支撑就能正常打印的最大倾斜角度称为临界角,记为β。对于STL文件可以通过解析得到每个面片的法向量n,z轴正方向向量为v(0,0,1),面片的倾斜角θ可以通过下面公式计算:

将模型上所有面片可以进行分类,如表1所示。

表1 三角面片分类Tab.1 The Classification of Triangles

由表1可知,当θ<β时三角面片不需要添加支撑,当θ≥β时需要添加支撑,模型加粗部分即为需要添加支撑的部分,临界角β会在4小节用实验确定,如图1所示。

图1 模型待支撑面提取原理Fig.1 Principle of Extracting Model Support Surface

根据上述原理,在模型全部三角面片中提取出所有待支撑面片,将这些面片依据拓扑关系利用种子扩散法进行整合,得到模型若干个待支撑区域,整合过程为:从总待支撑三角面片容器中任选一个三角面片,把此三角面片作为种子,依据拓扑关系判断其相邻的三角面片是否为待支撑区域三角面片,若是则将其加入对应待支撑区域容器,若不是则用该面片单独创建一个独立待支撑区域,如此遍历所有待支撑三角面片,即可得到整个模型的所有待支撑区域。

由于模型的复杂多样性,各待支撑区域的大小差异较大,对于那些面积较小的待支撑区域可以忽略不计,使用的方法如下:遍历该待支撑区域所有三角面片,得到面片顶点坐标值的最大最小值xmax,ymax,xmin和ymin,用一个矩形将该区域包络,如图2所示。计算矩形面积S计算如下:

图2 单个待支撑区域矩形包络图Fig.2 Rectangular Envelope Map of a Single Supporting Region

去除面积过小的支撑区域后,在剩下的区域内均匀散布支撑点,将包络矩形均匀划分为多个小矩形,小矩形的中心就是假定的支撑点,如图3所示。由图3可以看出,假定支撑点可以分为三类:在区域外,在边界上和在区域内。后两种支撑点为有效支撑点,将其装入支撑点容器,以便后续支撑生成算法使用。

图3 支撑区域支撑点散布图Fig.3 Support Points Distribution Map of Supporting Region

基于面片倾角待支撑区域选择算法流程图,如图4所示。

图4 基于面片倾角待支撑区域选择算法流程图Fig.4 Flow Chart of Algorithm for Selecting Supporting Area Based on Face Inclination Angle

3 树状支撑结构生成

对于树状支撑生成算法,其它相关研究都采用的是圆锥与圆锥进行布尔运算或者圆锥与实体进行布尔运算,这运算都是三维空间里的几何运算,尤其是圆锥与实体模型间的布尔运算较为复杂且耗时,因此利用切片轮廓信息简化三维运算,降低了算法复杂程度。

该算法的特点在于将模型的切片轮廓分为多组,每组包括多个相邻切片轮廓层,在每组切片轮廓内进行支撑路径的运算,如图5所示。将该模型分为3个普通组切片和1个基座组切片。对于普通组切片,运算顺序自上而下,当前组运算完留下的支撑点传递给下一组普通组切片,作为下一组普通组切片支撑生成运算的一部分支撑点的输入信息,直到所有普通组运算完毕,最后以普通组运算留下的支撑点作为基座组运算的一部分输入信息,基座组运算完即可得到所有树状支撑的生成路径。

图5 树状支撑生成示意图Fig.5 Tree Support Generation Schematic Map

由于树状生成的底部为了保证支撑下端的稳定性,基座组和普通组的运算有些许差异,普通组支撑生成算法步骤如下:

(1)接收并记录普通组的起始切片层start_layer和终止切片层end_layer的层序号,先将上一普通切片轮廓组留下的支撑点装入当前组支撑点容器A中,并立即清除上层支撑点遗留容器B,方便这层运算完毕装入;

(2)除了上组遗留的支撑点,还需要装入起始切片层和终止切片层之间生成的原始支撑点,此时支撑点容器A装入了当前组需要运算的所有支撑点;

(3)首先遍历容器A中所有支撑点,判断该点是否落在其下方层轮廓内,若在轮廓内则将其向下延伸,下一个支撑点落在实体上,并将其从容器A中擦除;若不在轮廓内,则跳过此点,检测下一点;

(4)重新遍历容器A,判断当前点ɑk是否能与容器A中其它点连线并且这些线段不穿越模型实体,代表两点满足了支撑点融合的初步条件,若有能连线的支撑点转入步骤5,否则转入步骤6;

(5)求出能与当前点ɑk连线的点中离该点最近的点ɑj,判断这两点能否满足支撑倾斜角规则,即两支撑点融合时生成的支撑结构倾角不能过大。若满足则将这两点融合为一个支撑点,去除两点,将新得到的支撑点装入容器A;

(6)没有能和当前点ɑk连线的点时,判断该点能否倾斜落在实体模型上,若能则下一点落在实体上结束该点的支撑生成,否则将其向下延伸到终止层,作为下一个普通组的输入信息。

与普通组树状支撑生成相比,基座组缺少了两支撑点的靠近与相融计算,也省去了倾斜落于实体上的支撑计算,这些是为了保证支撑下端稳定坚固,基座组支撑生成算法步骤如下:

①接收并记录基座组的起始切片层start_layer和终止切片层end_layer的层序号,将最后一组普通组遗留的支撑点装入支撑点容器A中;

②将起始切片层和终止切片层之间生成的原始支撑点装入支撑点容器A中;

③遍历容器A中所有支撑点,判断该点是否落在其下方层轮廓内,若在轮廓内则将其向下延伸,下一个支撑点落在实体上,并将其从容器A中擦除,否则转入步骤4;

④下方没有实体,则下一支撑点落在基座上,结束该点的支撑生成。

利用该树状支撑算法对多个模型进行处理,生成的树状支撑结构,如图6所示。

图6 树状支撑算法生成模型图Fig.6 Model Diagram Generated by Tree Support Algorithm in the Paper

4 试验结果与分析

为确定支撑临界角参数,通过斜壁打印实验,每组斜壁倾角间隔5°,试验表明在倾角大于45°时,斜壁塌陷比较严重,所以将前述的临界角β取为45°,并将其嵌入树状支撑生成算法。然后利用切片引擎Slic3r自带支撑算法、立柱支撑算法和该树状支撑算法进行对比试验,一共使用了三组模型,对模型实际打印数据进行对比分析。实验所使用的机床为实验室自主研发的3D打印数控机床,其设备外形尺寸为(1400×1050×1100)mm,工作空间为(500×500×500)mm,运动控制系统采用“PC机+可编程运动控制卡”,以直径1.75mm的聚乳酸(PLA)为打印材料,材料熔融温度为190℃,喷头空行驶速度为60mm/s,打印速度为30mm/s,打印层厚为0.3mm。仿真模型和打印实物,如表2所示。开源切片软件Slic3r支持算法上层与下层切片轮廓间的布尔运算得到支撑点,生成的是薄壁形支撑;立柱支撑结构是一种向下寻找下另一支撑点的简易支撑形式;该树状支撑算法通过面片倾角寻找支撑点,将三维布尔运算简化并生成树状结构。从表2可以看出,树状算法选取的支撑区域与切片软件Slic3r选取的支撑区域一致性较高,狗的骨头,小黄人的手臂以及乔巴的角上都添加到了支撑;从支撑的稀疏程度,树状支撑明显优于前面两种,辅助支撑的耗材方面也明显减少。主要记录实际打印时的算法运行时间,打印时间,支撑耗材质量三个方面来比较三个算法的优劣,试验结果,如表3、表4所示。

表2 不同算法生成的模型效果图和打印实物图Tab.2 Model Effect Maps and Printed Physical Maps Generated by Different Algorithms

表3 试验数据表Tab.3 Test Data Sheet

表4 树状支撑算法与Slic3r,柱状支撑算法的节省比较Tab.4 Comparison of Tree Support Algorithm,Slic3r and Columnar Support Algorithm

从表3、表4可以看出,在打印耗时和支撑耗材方树状支撑算法明显优于其他两个算法。但是在算法运行时间方面,对于其他两个软件算法并无优势,因为树状支撑算法在生成树状过程上较其它两种算法复杂,由于对三维布尔运算进行了简化处理,运算时间并未增加太多。支撑算法生成的支撑结构可剥除性在实际应用中也很重要,对于Slic3r生成的薄壁支撑,和模型的接触面积较大,打印出的零件较难去除辅助支撑,并会对表面质量产生影响;而该树状支撑在设计时采用削尖处理,使支撑与模型的接触面积变小,降低剥除的难度,减小对模型表面的损伤。综合以上,该树状支撑算法的优点在于,能够准确地判断需要支撑的悬空区域,较明显地减少打印时间和打印耗材,并且减小了支撑剥除对模型表面的损伤。

5 结论

(1)针对熔融沉积成型技术提出了一种新的树状支撑生成算法,该算法通过面片倾角判断支撑区域,能准确选取支撑点。(2)通过切片轮廓信息简化三维布尔运算,降低了算法复杂度,减少了算法处理时间。(3)从生成树状结构和打印效果来看,该算法大大节省了打印时间和辅助支撑的材料耗损,并且减小了支撑与模型间的接触面积,方便后期剥除,保持模型较高的表面质量。

猜你喜欢
支撑点树状面片
树状月季的栽培管理及园林应用
三维模型有向三角面片链码压缩方法
初次来压期间不同顶板对工作面片帮影响研究
咬文嚼字 明辨概率
人生支撑点
飞机装配中支撑点设计方法研究
人生的支撑点
甜面片里的人生
列表画树状图各有所长
树状图为概率题做导航