文档库 最新最全的文档下载
当前位置:文档库 › 3D打印的支撑算法_中国科学技术大学本科毕业论文

3D打印的支撑算法_中国科学技术大学本科毕业论文

中国科学技术大学

University of Science and Technology of China

本科毕业论文

A Dissertation Submitted for the Bachelor’s Degree

3D打印的支撑算法

Self-supporting extension for extrusion-type 3D printers

姓名陈岩

B.S. Candidate Chen Yan

导师刘利刚

Supervisor Liu Ligang

2014 年 6 月

June, 2014

致 谢

经历许多辛苦终于将这篇本科毕业设计论文写完。在论文的写作过程中遇到的许多困难和障碍,都在同学和老师的帮助下度过了。尤其要强烈感谢我的论文指导老师刘利刚老师,他对我的实验设计进行了无私的指导和帮助,并帮助进行我的论文的修改和改进。导师的严谨的治学态度、敬业的工作精神给了我很大的启迪,尊尊教诲令我受益匪浅。

感谢王仕玮和王康两位师兄以及王杨抟风同学对我的本科毕业设计实验进

行指导和帮助,令我获益良多。

感谢这篇论文所涉及到的各位学者。本文引用了数位学者的研究文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇论文的写作。

感谢母校以及所有的任课老师对我四年以来的培养。母校为我提供了良好的学习环境,而老师则对我积累知识帮助很大。

感谢父母家人多年的养育之恩。最后感谢我的同学和朋友,在我写论文的过程中给予我了很多你问素材,还在论文的撰写和排版灯过程中提供热情的帮助。由于我的学术水平有限,所写论文难免有不足之处,恳请各位老师和同学批评和指正!

目录

摘要 (3)

Abstract (4)

第一章绪论 (5)

1.1 背景介绍 (5)

1.2 相关工作 (7)

1.3 本文的主要内容和组织形式 (7)

第二章 算法设计与实现 (8)

2.1 算法思路 (8)

2.2 算法内容 (9)

2.3 算法的改进 (11)

2.3.1 多余支撑的精简 (11)

2.3.2 支撑柱结构的优化 (12)

第三章 实验 (13)

3.2 结果展示 (13)

3.2 文中算法与Cura软件算法的效果比较 (14)

第四章总结与展望 (17)

4.1 总结 (17)

4.2 未来工作 (17)

参考文献 (18)

摘要

三维打印,即快速成型技术的一种,它是一种以数字模型文件为基础,运用粉末状金属或塑料等可粘合材料,通过增材制造的方式来构造几乎任意形状三维实体的技术。主要过程是建模,切片,打印。在打印时,如果需要打印的三维物体模型可能有悬空或较为平坦的部分,则打印过程中无法正常进行。需要对物体增加额外的支撑以保证可打印性。

本论文改进并实现了一种自动生成三维物体模型的支撑方法。该方法相比一般切片引擎的处理方法,能够在确保可打印性的前提下,有效减少三维打印的材料消耗和时间消耗。

这种方法首先寻找三维物体模型中所有不可打印的部分,然后在所有不可打印部分的下方添加杆状支撑结构。这些支撑连接不可打印处和物体表面(或底平面),以确保三维物体模型都可打印。杆状支撑的结构经过了调整以增加稳定性并且方便从原物体中剥离。最后组合形成新的三维物体模型以完成三维打印。本方法相比于原方法,能够更准确地判断所需打印的部分。

对于不同大小的模型,可以调整生成支撑的密度以及支撑杆的宽度以确保三维物体模型在打印时的稳定性和可靠性,可以对生成支撑结果进行调整删除不必要的支撑以节省材料和时间成本。

关键字:三维打印、支撑、网格模型

Abstract

3D printing is a process of making a three-dimensional solid object of virtually any shape from a digital model. The main process of 3D printing are modeling, slicing and printing. If your 3D objects have vacant or relatively flat part, the 3D printing may not succeed during the printing. Then we need to add some additional support structures on the objects to ensure the printability.

In this paper, we present a method for automatically generating necessary support structures on the 3D objects. Comparing to general method dealt by some software, this method can reduce the cost of material and time.

We first find out the parts of the 3D object model which cannot be printed normally (called unprintable parts). Then we add some necessary support structures on all those parts. These support structures connect those unprintable parts to the object itself or the bottom plane. Besides, the support structure has been tweaked to increase the stability while printing the object.

For models of different sizes, we can adjusted the density and the width of the support structures to ensure the stability and reliability in the printing. Also we remove unnecessary support structure to save material and time.

Keywords: 3D printing, support structure, mesh

第一章 绪论

1.1 背景介绍

三维打印,即快速成型技术的一种,它是一种以数字模型文件为基础,运用粉末状金属或塑料等可粘合材料,通过逐层打印的方式来构造物体的技术。

三维打印通常是采用数字技术材料打印机来实现的。现在存在着许多不同的三维打印技术。它们的不同之处在于以可用的材料的方式,并以不同层构建创建部件。有些技术利用熔化或软化可塑性材料的方法来制造打印的“墨水”,例如:选择性激光烧结(selective laser sintering,SLS)和熔融沉积式(fused deposition modeling,FDM),还有一些技术是用液体材料作为打印的“墨水”的,例如:立体平板印刷(stereolithography,SLA)、分层实体制造(laminated object manufacturing,LOM)。每种技术都有各自的优缺点,一般来说,主要的考虑因素是打印的速度和成本,3D打印机的价格,物体原型的成本,还有材

料以及色彩的选择和成本。

三维打印在全社会的渗透应用需要依托多个学科领域的尖端技术,至少包括信息技术、精密机械和材料科学三大技术。近年来,3D打印技术发展迅速,在

各个环节都取得了长足进步。通过与数控加工、铸造、金属冷喷涂、硅胶模等制造手段结合,该技术已成为现代模型、模具和零件制造的有效手段,在航空航天、汽车摩托车、家电、生物医学等领域得到了一定应用,在工程和教学研究等应用领域也占有独特地位。

相对于传统制造业而言,三维打印具有以下几种优势。首先,三维打印能够制造复杂物品不增加成本。就传统制造而言,物体形状越复杂,制造成本越高。对三维打印机而言,制造形状复杂的物品成本不增加,制造一个华丽的形状复杂的物品并不比打印一个简单的方块消耗更多的时间、技能或成本。其次,三维打印能够零时间交付。三维打印机可以按需打印。即时生产减少了企业的实物库存,企业可以根据客户订单使用3D打印机制造出特别的或定制的产品满足客户需求。此外,三维打印有很大的设计空间。传统制造技术和工匠制造的产品形状有限,制造形状的能力受制于所使用的工具。例如,传统的木制车床只能制造圆形物品,轧机只能加工用铣刀组装的部件,制模机仅能制造模铸形状。3D打印机可以突

破这些局限,开辟巨大的设计空间,甚至可以制作目前可能只存在于自然界的形状。

三维打印的设计过程是:先通过计算机建模软件建模。再将利用软件(一般称为切片引擎)将建成的三维模型“分区”成逐层的截面,即切片,从而指导打印机逐层打印。最后让打印机通过读取文件中的横截面信息,用液体状、粉状或片状的材料将这些截面逐层地打印出来,再将各层截面以各种方式粘合起来从而制造出一个实体。这种技术的特点在于其几乎可以造出任何形状的物品。

对于部分三维物体模型,由于材料粘滞力的问题,现有的三维打印方式无法正常的支撑并打印整个模型,即不可打印。为了解决这个问题,我们需要为三维物体模型添加支撑结构。

现有的一些切片引擎如Cura或Repetier-Host,它们自带简单的支撑添加功能以保证三维物体模型的可打印性。不同的切片引擎有不同的方法但大同小异:通常的做法是先按照用户指定的判定条件(如:最小需要生成支撑的悬空角度等)简单判断三维物体模型中所需要支撑的部分,再在在物体下方填充预先定义好的简单规则模式以支撑物体。

以Cura软件为例,用户可以设定需要支撑结构的悬空角度,填充量,支撑与表面的距离以及与物体本身的距离。然后生成线状或网状支撑,如图1-1。

(a)(b)

图1-1:(a)Cura软件设置参数的界面;(b)Cura软件生成牛模型的支撑预览

但是这样的做法有以下的不足和缺陷。首先:在判断所需添加支撑的部分时,部分切片引擎仅仅以物体表平面的角度的大小为依据,这样判断出来的区域有可能不准确或者过剩。其次,切片引擎会在所有选定部分的下方添加支撑,这样会造成不必要的浪费,增加了材料成本和时间成本。

因而我们需要寻找一个合理的算法来精简所添加支撑。

1.2 相关工作

支撑生成算法首先在需要确定物体表面的哪些部分需要支撑。第一种方法是考虑输入的网格模型中方向朝下且过于陡峭以至于不能打印的面(参见参考文献[1][2])。第二家方法是在对两个连续切片之间的作布尔差分(参见参考文献[3][4][5])。这通常会得到一个紧集以表示需要支撑的点。Eggers和Renap[6]通过向下采样选取了一个子集。Chalasani等[7]考虑了打印路径来确定需要支撑的层。

一旦需要支撑的物体表面部分被确定,我们就需要进行几何计算以添加支撑。一般做法是在所需表面下方挤出支撑,而支撑的结构通常为稀疏密度的网格(参见参考文献[8])。该支撑需要从物体上手动剥除。对于多种材料的三维打印机,溶性材料也可用于打印支撑结构(参见参考文献[9])。支撑结构通常与物体表面和打印床有大面积接触,以保证在大多数情况下物体的打印稳定性。而支撑结构本身也需足够大以保证打印。打印支撑网格会耗费大量的材料和打印时间。

Wang等[10]优化了物体的框架结构以加强对象的三维打印未定型,并拓展了一种支撑生成方法。支撑柱在确保结果是可打印的前提下在物体表面上寻找合适的基点来添加的。但支撑柱没有进行分组以减少打印时间和材料用量。本文中算法是基于此方法的改进。

1.3 本文的主要内容和组织形式

本文共分为四章.

第一章作为绪论,先介绍了三维打印的背景并引出了需要添加支撑的问题。然后介绍了相关工作。

接下来第二章将要介绍本文的主要算法:3D打印的支撑算法。包括算法的思路、算法的主要步骤以及对算法的改进。

第三章展示了在几个三维物体模型应用本算法的实验结果,并展示了本算法与Cura软件自带算法的的效果对比和成本对比。

最后第四章是对本文的总结和对将来工作的展望。

第二章 算法设计与实现

本文提出的算法是基于参考文献[10]第四章第五节中提出的算法的改进,主要包含两个部分:寻找三维物体模型中所有不可打印的部分,在不可打印部分的下方添加支撑结构。这两个部分在算法实现的过程中是交替进行的。

2.1 算法思路

首先需要寻找三维物体模型中所有不可打印的部分。经过大量实验和测试,我们发现出一系列规律:对于不同的物体结构,三维打印的粘滞效果不同。较为水平的部分(即倾斜度较大的部分)粘滞效果较差,即不能很好地被物体模型自身支撑;反之,垂直的部分可以很好地被支撑。因此:物体表面中较为水平的部分可以被认为是不可打印的部分。此外,物体中悬空的部分也应当被认为不可打印的部分,如图2-1。

图2-1 红色(深色)部分可以被认为是需要添加支撑的区域于是,我们总结设计出一个方法来模拟三维打印机的打印过程以判断并寻找模型中不可打印的部分。我们利用三维物体的网格模型来进行判断。首先我们设想为物体的三维网格模型中的每个顶点赋予一个支撑参数(记为P,最大为20,最小为0,临界值为10)用以衡量在打印过程中对模型上该点的支撑效果,来判断它是否可打印。参数值越大说明该点越稳定。然后,我们基于传递的思想自低至高计算每一个顶点的该参数值:物体的网格模型上的某一顶点的支撑参数P值

是经由其他的与该顶点相邻的顶点的支撑参数P 值传递产生。当某一顶点的支撑参数P 的数值低于一个临界值时,则认定该部分需要添加支撑。

当选定了一个需要添加支撑的点后,我们选取在物体上的该点下方并使得连接两点的立柱能够正常支撑的最近的顶点作为支撑基点(若在物体上不存在这样的点,选取基平面上处于所需支撑点正下方的点作为支撑基点),生成一个以所需点和基点为端点的支撑柱。然后我们为该顶点的支撑参数P 赋予最大值。

2.2 算法内容

对于一个三维物体模型,我们首先获取它的三维网格模型(,)T V E =,其中V V 为顶点集,E 为边集。

我们找出V 中z 坐标最低的点,将其所在平面记为基平面B ,这些点记为0V 。为0V 中所有顶点的支撑参数P 赋予最大值20P =。

将0V V ?中所有元素按z 坐标由低至高排序,记为1012{,,...}V v v v =。依次计算1V 中每个定点的支撑参数值。对于每个1i v V ∈,其支撑参数P 的数值由所有与

其相邻且z 坐标低于它的顶点传递得出。具体传递公式为:

()max {()}i i i i i vv vv P v P v l θa =?××与v 相邻且在v 下方的点v , (2.1)

其中,i vv l 为连接网格模型上顶点i v 和顶点v 的边的长度,i vv θ为边i vv 与水平面的

夹角,a 为传递系数。经试验测试,a 可由以下数值表示:

0H a βa =××,

(2.2) 其中,H 为模型的高度,β为材料系数,0a 为修正系数。 当出现某一个1i v V ∈使得()10i P v <时,则为该点添加支撑。选取规则为:在i v 下方并使得连接两点的支撑柱可打印的最近的顶点0i v 作为支撑基点(若在网

格中不存在这样的点,则选取底面上处于所需支撑点正下方的点0i v 作为支撑基

点),生成一个以0i v 和i v 为端点的支撑柱。支撑柱可打印的最大长度p 和倾斜角

度θ有关,立柱的倾斜角度越小,可打印的长度越长,如图2-2(该关系参考自参考文献[1])。

图2-2 θ为支撑柱与z轴夹角,()

P v=。计算完每一个顶点后就对该之后为顶点i v赋予最大支撑参数值()20

i

物体生成了一个初始支撑结构,如图2-3。

网格模型,红色为支撑结构

2.3 算法的改进

2.3.1 多余支撑的精简

对于一些三维物体模型,算法生成的部分支撑是不必要的,如图2-4。

图2-4 以图2-3中的初始支撑结构为例,被圈中的支撑是多余的

观察结果不难发现,多余的支撑可以分为以下两种情形:部分支撑过短或与贴附于物体的表面(图2-4中浅蓝色圈中的部分);部分支撑完全落在物体内部(图2-4中深蓝色圈中的部分)。前者不但对增加物体的打印稳定性帮助不大,而且在剥除支撑时可能会破坏物体本身的结构,影响成品的外观。至于后者,在打印时为了保证三维物体模型的硬度,通常会选择在物体内部填充材料,因而不需要这部分支撑。故我们需要优化算法将它们剔除。

首先,我们设定最小支撑长度0l ,当一个支撑的长度小于0l 时,我们将其删

除。然后设定最短贴面距离d (或最小贴面角度ρ),当一个支撑与物体表面的距离小于d (或与表面的夹角小于ρ)时,我们将其删除。

最终,我们得到了一个良好的支撑结果,如图2-5。这样即增加了外观效果,又可以节约成本。

图2-5 精简后的支撑结构预览图

2.3.2 支撑柱结构的优化

当成品被打印出来后,我们需要将支撑结构剥除。记过实验,我们发现:若支撑柱仅仅是简单立柱,则难以剥除。主要原因是支撑柱与三维物体模型表面的接触面积过大。故我们可以适当的将支撑柱的端点部分(与物体表面接触的部分)削尖。

此外,对于连接基平面B的支撑柱,我们将其底端加粗,形成底座,以增加

支撑效果。

第三章 实验

3.2 结果展示

结果一:

(a)

(b)

图3-1 马踏飞燕模型(a)打印结果;(b)生成支撑后的模拟结果结果二:

图3-2 牛模型的模拟结果

结果三:

图3-3 超级香蕉模型的模拟结果

从以上数个结果可以看出,生成支撑的效果良好,模型能够打印。对于不同的模型,本算法都能够生效。因此,本算法能够确保生成支撑后的模型能够顺利的被三维打印机打印,而并不依赖与某一个模型。

此外可以看出,本算法能够精简许多不必要的支撑,并优化修改了支撑柱两端的结构以减少剥除支撑柱时对三维物体模型本身的破坏。

3.2 文中算法与Cura软件算法的效果比较

以图3-1中的高50mm的马踏飞燕模型为例,利用Cura软件进行切片。如图3-4,Cura估算的打印原始模型耗时36分钟,消耗材料1.49米;打印原始模型以及Cura自带的支撑结构耗时59分钟,消耗材料2.47米;打印原始模型以及本文中算法生成的支撑结构耗时49分钟,消耗材料1.85米。本算法与Cura自带算法相比,节省打印支撑材料比例为:

%2.47 1.85

53.3% 2.47 1.49

l ?

==

?。节省打印支撑时间比例为:

%594943.5%5936

t ?==?。

由此可见,本算法相比于Cura 软件自带的算法,能够节约大量的耗材和耗时。用户可以节约许多成本。

(a )

(b )

(c)

图3-4 (a)马踏飞燕原始模型切片示意图;(b)Cura自带支撑的切片层结构图;

(c)本算法生成的支撑结构模型的切片示意图。

第四章 总结与展望

4.1 总结

三维打印是时下非常热门的研究领域,因而三维物体模型的支撑问题也成为了一个亟需解决的难题。研究者们提出了很多方法来解决此问题。本文改进并实现了Wang等[10]提出的简单算法。

通过上一节的比较以及第三章的实验结果我们不难看到,本文中的算法确实能够节约了打印耗时和材料消耗,并能够保证模型的顺利打印,基本达到了预期。

但仍有以下不足之处:第一,对于不同的模型,我们暂时没有总结出公式(2.2)中参数的选取的确切规律,目前仅能通过实验估算出大致的参考范围。第二,对于网格疏密度差别过大的模型,本算法无法很好地生成支撑。主要原因是本算法过于依赖网格模型的网格均匀程度。第三,支撑柱的结构仍需要改进:在支撑性和易剥除性中寻找一个平衡点。由于时间所限,上述问题暂时没能解决。

4.2 未来工作

在未来的一个暑期时间内,作者将着手研究并解决4.1节中提到的三个问题。一方面,我们将测试更多的结果以确保算法的准确性;另一方面,我们将实现更友好的用户交互系统以提升用户体验并便于测试。

一个更长远的想法是,我们可以在三维物体模型的切片过程中进行支撑的添加,即将本算法集成至切片引擎中。这样本算法就可以摆脱对物体的网格模型的依赖,也可以提升算法本身的准确性和效率。

参考文献

[1] Allen S, Dutta D. Determination and evaluation of support structures in layered

manufacturing[J]. Journal of Design and Manufacturing, 5: 153-162, 1995.

[2] Alexander P, Allen S, Dutta D. Part orientation and build cost determination in

layered manufacturing[J]. Computer-Aided Design, 30(5): 343-356, 1998.

[3] Allison J W, Chen T P, Cohen A L, et al. Boolean layer comparison slice: U.S.

Patent 5,321,622[P]. 1994-6-14.

[4] Chalasani K, Jones L, Roscoe L. Support generation for fused deposition

modeling[C], In Solid Freeform Fabrication Symposium. University of Texas, Austin, August: 229-241, 1995.

[5] Huang X, Ye C, Mo J, et al. Slice data based support generation algorithm for

fused deposition modeling[J]. Tsinghua Science & Technology 14: 223-228, 2009.

[6] Eggers G, Renap K. Method and apparatus for automatic support generation for

an object made by means of a rapid prototype production method: U.S. Patent Application12/682,488[P]. 2008-10-10.

[7] Wang W, Wang T Y, Yang Z, et al. Cost-effective printing of 3D objects with

skin-frame structures[J]. ACM Transactions on Graphics (TOG), 32(6): 177, 2013.

[8] Strano G, Hao L, Everson R M, et al. A new approach to the design and

optimisation of support structures in additive manufacturing[J]. The International Journal of Advanced Manufacturing Technology, 66(9-12): 1247-1254, 2013. [9] Gothait H, Kritchman E, Miller G. System and method for printing and

supporting three dimensional objects: U.S. Patent 7,364,686[P]. 2008-4-29. [10] W ang W, Wang T Y, Yang Z, et al. Cost-effective printing of 3D objects with

skin-frame structures[J]. ACM Transactions on Graphics (TOG), 32(6): 177, 2013.

[11] D umas J, Hergel J, Lefebvre S. Bridging the Gap: Automated Steady

Scaffoldings for 3D Printing. ACM Transactions on Graphics (TOG), 2014, 33(4),155.

[12] G ibson L J, Ashby M F. Cellular solids: structure and properties[M]. Cambridge

university press, 1999.

[13] F rank D, Fadel G. Expert system-based selection of the preferred direction of

build for rapid prototyping processes[J].Journal of Intelligent Manufacturing, 1995, 6(5): 339-345.

[14] C heng W, Fuh J Y H, Nee A Y C, et al. Multi-objective optimization of

part-building orientation in stereolithography[J]. Rapid Prototyping Journal, 1995, 1(4): 12-23.

[15] M ajhi J, Janardan R, Smid M, et al. On some geometric optimization problems in

layered manufacturing[J]. Computational Geometry, 1999, 12(3): 219-239. [16] H eide E K. Method for generating and building support structures with

deposition-based digital manufacturing systems: U.S. Patent Application 12/687,996[P]. 2010-1-15.

[17] M AKERBOT, Rapid prototyping and 3D printing. https://www.wendangku.net/doc/9814429340.html,/.

1998.

[18]Schneider P J, 施奈德, Eberly D H, et al. 计算机图形学几何工具算法详解[M].

电子工业出版社, 2005.

[19] P hilip J S, DA VID H E, 周长发. 计算机图形学几何工具算法详解[J]. 2005.

相关文档