• 1.86 MB
  • 2022-04-22 11:26:04 发布

三维打印支撑结构的生成算法研究

  • 36页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'本科毕业设计论文题目三维打印支撑结构的生成算法研究专业名称统计学学生姓名李威指导教师刘哲毕业时间2015年6月 本科毕业设计论文摘要在快速成型技术中,熔融沉积成型(FusedDepositionModeling,FDM)工艺已经较为成熟,因为低廉的生产维护成本和廉价丰富的材料,FDM型打印机受到广泛欢迎。由于此类打印机的工作原理是逐层喷料累积打印,新的一层材料要和其下面一层融合,故模型的悬空部位无法打印。因而任意给定一个模型,如何生成稳定性高、易于剥离、节省材料的支撑结构,是一个有必要也很重要的工作。本文主要研究一种基于悬空点集的树状支撑结构的生成算法。第一章介绍了支撑结构生成算法的有关研究背景和研究意义,简要描述有关该问题的研究现状,然后重点介绍生成支撑的主要研究内容,包括悬空部位的确定和支撑结构的生成两个部分,并分别简述了有关这两个问题的基本研究方法。第二章着重研究树状支撑结构的生成算法。首先定义三角网格中的悬空点和悬空面,提出模型悬空部位的确定方法。介绍了三种针对悬空面的悬空点采样方法,包括均匀采样、自适应均匀采样和泊松圆盘采样,并比较了三种采样方法的实际效果。然后重点介绍基于悬空点集的树状支撑结构的生成算法,并针对算法中涉及到的几个问题进行了具体而详尽的叙述。最后对支撑算法进行优化,包括支撑杆直径的改善和杆末端的削尖处理,考虑到直杆的可打印长度受其倾斜程度的限制,将算法进一步改进,使得生成的支撑结构更加稳定牢固。®™第三章对算法的运行结果进行了展示,并用MakerBotReplicator2三维打印机打印了部分模型,生成的支撑足够稳定,均能保证打印顺利完成,此外支撑®™®都比较容易剥离。针对两种比较常见的切片引擎UltimakerCura和Autodesk™MeshMixer生成的支撑结构,将本文的结果与其做了对比,并比较了模型的打印时间和材料消耗量等。最后简要定量分析了三种采样方法的差别和整个算法的运行效率。关键词:熔融沉积成型,三维打印,支撑结构,均匀采样,泊松圆盘采样I 本科毕业设计论文ABSTRACTAsamainrapidprototypingtechnology,fuseddepositionmodeling(FDM)processhasbeenmoremature.AndFDM3Dprinterwasbroadlywelcomedbecauseofitslowmaintenancecostsandawidevarietyofcheapmaterials.AsaresultoftheworkingprincipalofFDMprinter,whichprintsmodelsaccumulativelylayerbylayer,thedanglingpartscannotbeprinted.Givenanarbitrarymodel,howtogenerateasufficientlystablesupportstructure,whichiseasytopeelaswellasmaterial-saving,isanecessaryandimportantwork.Inthisarticle,analgorithmoftree-likesupportstructuregenerationispresentedandcontentsarearrangedasfollows.Inthefirstpart,thebackgroundofresearchonsupportstructuregenerationalgorithmisintroduced.Andithasgreatsignificancetoundertakerelatedresearch.Thenthemaincontentsoftheresearcharedescribedindetails,includingthedetectionofoverhangsandgenerationofsupport.Andtheessentialresearchmethodsofthetwostepsfollow.Thesecondpartfocusesonthetree-likesupportstructuregenerationalgorithm,whichisthekeyofthearticle.Firstdefinethepointoverhangsandfaceoverhangsanddetecttheoverhangingregionsofagivenmodel.Thenthreesamplingmethodsbasedontheoverhangingregionsareintroduced,includinguniformsampling,self-adaptiveuniformsamplingandPoissonDisksampling,respectively.Afterwards,thegenerationalgorithmisdescribedandsomecrucialandspecificproblemsrelatedareexplainedindetails.Thealgorithmisoptimizedatlast,includingthesizeconstrainofstrutdiameterandsharpeningprocessattheendofstrut.Consideringtherelationandlimitbetweenactualprintablelengthofstrutanditstiltangle,thealgorithmisimprovedsoastoassurethesupportstructuremorestableandrobust.Inthethirdpart,theresultsofalgorithmareshownbysomemodels.Andsome®™ofthemodelsareprintedbyMakerBotReplicator23Dprinter.Thesupportstructureisstableenoughandveryeasytopeel.Thentheresultsarecomparedwith®™®™thesupportgeneratedbyUltimakerCuraandAutodeskMeshMixer.Andtherearecomparisonsintheprintingtimeandmaterialconsumption,too.Thedifferenceamongthethreesamplingmethodsandtheanalysisoftheentirealgorithmaredescribedbrieflyintheend.KEYWORDS:FDM;3Dprint;supportstructure;uniformsampling;poissondisksamplingII 本科毕业设计论文目录第一章绪论.................................................................................................................11.1研究背景与意义.................................................................................................11.2研究现状.............................................................................................................21.3研究的主要内容及方法.....................................................................................31.3.1支撑部位的寻找...........................................................................................31.3.2支撑结构的生成...........................................................................................41.4本文内容与结构安排.........................................................................................4第二章基于悬空点集的树状支撑生成算法.............................................................52.1寻找支撑部位.....................................................................................................52.2悬空面的采样.....................................................................................................62.2.1均匀采样.......................................................................................................72.2.2自适应均匀采样...........................................................................................82.2.3泊松圆盘采样.............................................................................................102.2.4采样方法的比较.........................................................................................112.3树状支撑结构的生成.......................................................................................122.3.1圆锥的代数表示.........................................................................................132.3.2圆锥与圆锥相交.........................................................................................142.3.3圆锥与网格相交.........................................................................................162.4支撑结构的优化改进.......................................................................................172.4.1支撑杆直径的层次优化.............................................................................172.4.2支撑杆末端的削尖处理.............................................................................182.4.3支撑杆长度的控制.....................................................................................19第三章支撑结果的展示与分析比较.......................................................................213.1支撑算法的效果...............................................................................................213.2支撑结果的比较...............................................................................................233.3算法的分析.......................................................................................................25第四章总结与展望...................................................................................................274.1总结...................................................................................................................274.2展望...................................................................................................................27参考文献.....................................................................................................................29致谢…………………..................................................................................................30毕业设计小结.............................................................................................................31III 本科毕业设计论文第一章绪论1.1研究背景与意义快速成型技术(RapidPrototyping,RP)是20世纪80年代中后期逐步发展起来的一种颠覆传统的新兴制造技术,被认为是近20年来制造领域的一个重大研究成果。它集材料科学、计算机辅助设计、激光技术、分层制造技术、数控技术等众多学科于一身,可以自动、快速、精确地制造出三维物体,提供了一种高效率[1]低成本的制造技术。快速成型技术与传统制造方式相比拥有许多突出优势:其可生产的物体复杂度高,产品的制造过程几乎与零件的复杂程度无关;生产制造成本较为固定,省去了传统工艺中制作模板的时间、经济成本,尤其对于小规模生产,成本更将大大降低;模型修改便捷,生产迅速,在生产过程中,可随时修改调整模型数据,从而进行再次制造,简单轻松,方便快捷;技术高度集成,可实现设计制造一体化。经过不断的创新与发展,快速成型的工艺方法已经达到十几种之多,这其中[1-6]有四种基本的技术方法:1)光固化成型(StereoLithographyApparatus,SLA):该技术以光敏树脂为原材料,按照零件分层截面的轮廓,用紫外激光束对液态树脂进行逐层扫描固化,直至形成三维实体模型。该技术精度高,表面光洁,但运行成本高,对操作人员的要求也高。2)分层实体制造(LaminatedObjectManufacturing,LOM):该技术利用激光等工具逐层切割、堆积薄板材料,最终形成三维实体。该技术的最大缺点是精度有限,做不了太复杂的物体。3)选择性激光烧结(SelectiveLaserSintering,SLS):该方法的材料为各种粉末材料,通过激光束,将工作台面上很薄的粉末,按照零件分层截面的轮廓有选择性的烧结,最终完成制造过程。该工艺的特点是材料适应面广,造型精度高。4)熔融沉积成型(FusedDepositionModeling,FDM):该工艺以热塑性塑料丝为材料,通过喷嘴挤压出熔化的塑料丝,沿物体截面的轮廓逐层堆积成型。该工艺成本低速度快,使用简单,但物体表面的光洁度较差。1 本科毕业设计论文以上介绍的诸多快速成型技术都有各自的优缺点,其中FDM型三维打印机借助其低廉的生产维护成本,丰富实惠的制造材料,简单便捷的操作而受到广大科研工作者的欢迎,更有进入普通家庭之势。但目前摆在FDM型三维打印机面前的一个有待于解决优化的障碍是模型的支撑问题。FDM型三维打印机打印模型的主要流程是:首先通过计算机软件建模得到物®™体的三维网格模型,再利用切片引擎软件(如UltimakerCura)获得模型逐层的截面,即切片。最后让三维打印机读取模型的切片信息,从模型的最底层开始逐层喷料打印。打印时丝状塑料在喷头内被加热熔化,喷头在某一层切片沿预定的轨迹移动,同时挤出处于熔融态的塑料,被挤出的材料在冷却后迅速凝固,与其下方的打印底座或已打印出的模型融合。喷头从底座开始,逐层喷料打印,直至到达模型顶部打印完成。由于此类打印机的工作原理类似于简单的“堆积木”,故在打印模型中的悬空部位时,被挤出的处于熔融状态的塑料丝会悬在空中无法融合,因此在对模型进行切片前,用户必须事先在模型悬空部位下方添加支撑,如此才能保证整个打印过程的顺利进行。在打印途中,这些支撑结构作为物体模型的一部分被打印机打印,这样在打印模型的悬空部位时,由于下方有已经打印完毕的支撑,熔融的塑料丝才能够与其下方的支撑结构凝结,打印的物体才不至于严重变形甚至毁坏。由于添加的支撑并不是物体所需要的,故在打印完成后,需要人工将支撑剥除,而这或多或少会对实际物体模型的表面造成损伤。因而应在确保打印成功的前提下,尽可能的减少支撑结构的体积(节省材料)和支撑结构与物体表面接触[5]的面积(减少剥除时的模型损伤)。1.2研究现状伴随着三维打印技术的发展,有关支撑结构的研究从来没有中断过,以稳定性高,节省材料,易于剥离为目标,各种各样的支撑算法被提出又被改进,这些方法有各自的优势,但也有着明显的局限性,虽然有些算法已经被商业应用,但有关方法还急需完善。[7]早在1995年,Kumaretal.便提出了三种简单的支撑方案,第一种先找到物体模型在平面上的最大投影轮廓,再添加容器状的支撑结构将物体模型包含在内,这种方法支撑稳定性好,但浪费材料且难于剥离;第二种方法由用户指定一块需要支撑的区域生成支撑;第三种方法借由材料的自我支撑性,根据切片的情况,自动添加支撑结构。Wangetal.经过实验得到支撑杆可打印的最大长度与倾斜角度的关系p()θ,通过将网格中每条边的长度与p()θ作比较,并根据结果确定需要支撑的边,在所有需要支撑的边中插入等距点,通过连接支撑点使支撑杆2 本科毕业设计论文[8]在倾角为θ时,其长度不大于p()θ,从而生成支撑结构,该方法虽然简单,但对模型的依赖性太大,同一物体不同的网格模型会导致不同的结果。Vaneketal.在相对较平的面上采样,以确定模型需要支撑的点,然后从上到下,生成树状支[9]撑结构,该方法中确定支撑点所采用的均匀采样效果不佳有待改进。Dumasetal.则认为树状支撑的稳定性不够好,效率较低,他们采用类似于桥梁状的支撑结构,首先在模型的打印路径上寻找需要支撑的点,再构建立柱,并在其上搭上[10]横梁以生成最终的支撑结构,由于涉及到打印路径,该方法的运行速度受到很大限制,且稳定性也并不好,比较浪费材料。陈岩等先对整个模型重采样,通过给每个采样点赋予一个支撑参数来衡量该点的支撑效果,当某一点的支撑参数值小于临界值时,该点即为需要支撑的点,在所有支撑点中寻找其下方满足条件的[5]点生成支撑杆,继而生成整个支撑结构,这种方法摆脱了支撑点对模型的依赖性,但生成的支撑的稳定性,打印的成功率不是很好。在以上的简要回顾介绍中,虽然每种方法都有自己的优势所在,但也都存在着明显的缺陷,各种方法常常都是顾此失彼,没有一个真正有效的支撑结构生成算法。1.3研究的主要内容及方法支撑结构的生成主要包含两个基本问题,包括支撑部位的寻找和支撑结构的生成。对于第一个问题,主要是确保模型中所有需要支撑的部位都能够被检测到,并针对确定的悬空区域进行适当的重采样,以得到初始支撑点集,逐步生成支撑结构。第二个问题就涉及到生成支撑结构的具体算法设计,使得添加的支撑结构足够稳定,以确保能够支撑相应的部位,在打印完毕之后,支撑能够轻松地从物体上剥除,同时对物体表面的损伤最小。1.3.1支撑部位的寻找对支撑部位的寻找这个问题,目前主要有两种方法。第一种方法根据三角网格模型中三角面片的位置与指向来确定其是否需要支撑。选择输入的网格模型中外法向朝下且与水平面夹角较大的面(即接近水平的面)作为需要支撑的悬空区域,然后在这些区域重新采样,得到需要支撑的悬空点集。第二种方法基于输入模型的切片信息,对两个连续的切片层作布尔差分,以确定需要支撑的切片层,[5]然后针对这些切片层的轮廓线进行重采样,得到一个需要支撑的悬空点集合。由于第二种方法需要提前对模型进行切片处理,因而需要花费大量的时间成本,相比而言,第一种方法简单快速,效果也不比第二种方法差,因而本文支撑算法中寻找支撑部位时采用第一种方法。3 本科毕业设计论文1.3.2支撑结构的生成在添加支撑结构方面,也有两种常用方法。一种做法是在所需支撑的悬空区®™域下方挤出稀疏的网格作为支撑,UltimakerCura切片引擎使用了这种方法,这种方法支撑的稳定性很好,但浪费材料,且支撑不易从模型剥离,在剥离时极容易对模型产生大的损伤。而另一种方法是在确定悬空区域后,采样得到需要支®™撑的点,基于悬空点集生成树状支撑结构,AutodeskMeshMixer使用了这种方法,但是这种方法生成的支撑结构在打印时稳定性不太好,打印的成功率不是[5,9]很高。1.4本文内容与结构安排本文主要研究三维打印中,物体模型支撑结构的生成算法研究。全文的结构安排如下:第一章阐述了三维打印支撑结构的研究背景与意义,有关该内容的研究现状,以及研究的主要内容与方法。第二章首先介绍了支撑部位的确定,并详细描述了三种获取悬空点的采样方法,然后重点研究了一种基于悬空点集的树状支撑结构的生成算法,并对其进行了一定的优化与改进。第三章对第二章介绍的支撑算法的结果进行了展示,与现行的一些支撑算法进行了比较,最后对本文中的算法进行了简要分析。第四章是对全文的总结与展望。4 本科毕业设计论文第二章基于悬空点集的树状支撑生成算法2.1寻找支撑部位支撑部位的确定是整个支撑算法的前提与基础,对于产生一个好的支撑效果有着重要的作用。首先给定任意一个三角网格模型,我们定义其上的两类悬空部[9]位:悬空点:对于网格中的任意一个顶点,如果某一顶点的竖坐标比其所有的一邻域顶点的竖坐标都要小,即某一点在局部或整体处于最低位置,即该点为肯定需要支撑的悬空点。悬空面:对于网格中的任意一个三角面片,如果某一个面片所在的平面与竖直方向向上的夹角大于某一阈值,即该面片较为水平,则这个面片属于悬空面。[9]图2-1悬空结构的表示阈值的选择关乎悬空面的判定以及后面支撑结构的生成,因而对整个支撑算法相当重要。不同的打印机,不同的打印材料,其打印的最大倾斜角度不尽相同,本®™文以MakerBotReplicator2三维打印机使用聚乳酸(PolyLacticAcid,PLA)材料为标准。通过实验得到直杆与竖直方向向上的夹角,即倾斜角对直杆可打印长度的影响,将直杆的直径分别固定为1mm、2mm和3mm,通过多次打印各种倾斜度的直杆,图2-2是三种不同规格直径下的一次打印实验结果。将多次打印5 本科毕业设计论文的结果平均,得到直杆的最大可打印长度与倾斜角度的关系,由图2-3中的散点图表示,再用分段线性函数拟合出两者的具体函数关系。图2-2倾斜角对直杆可打印长度的影响的一次打印实验结果(从左到右直杆的直径分别为1mm、2mm和3mm)由图2-3中的拟合直线,可以发现从倾斜角为60°时,直杆的可打印长度急剧下降,虽然在60°时打印出的直杆的长度还比较长,但为了探测到面积更大的悬空面,以确保后面的支撑结构能保证模型的顺利打印,此处将临界角度选作50°,记为θ=50°。0图2-3直杆的可打印长度与其倾斜角度的函数关系(直径为2mm时)大部分情况下,悬空面连接在一起,形成一大块悬空的区域,由于支撑结构是在一个需要支撑的点集的基础上生成的,因而我们需要在这些悬空区域进行合理的采样,以确保由这些采样点生成的支撑结构足够支撑每一块悬空区域。2.2悬空面的采样对于支撑算法来说,支撑点的采样效果是一个极其重要的问题,对于同一块悬空区域,如果采样点过少,则由此生成的支撑结构很可能无法确保打印的顺利完成。相反,如果采样点过多,虽然能够确保模型的顺利打印,但由于支撑点过6 本科毕业设计论文于密集,在打印完毕后,支撑杆很难从模型剥离,而且剥离的过程中还会增加对原始模型的损伤,太多的支撑还过于浪费材料。因而采样点应维持在一个合理的范围,在考虑确保打印顺利的情况下,兼顾支撑的易剥离与材料的节省。本节将由简单到复杂,介绍三种在悬空区域的网格上采样的方法。由于悬空面与水平面的夹角小于某一阈值,故悬空部位是较为平坦的网格面,其在水平面的正投影不会有重叠的部分。基于此,三种采样方法均在投影区域内进行,然后对应到悬空的网格面上的相应点。这样避免了直接在网格上操作,大大加快了算法的运行效率,得到的效果又不至于很差。2.2.1均匀采样对于每一块悬空区域,将其投影在水平面上,投影区域处于一个矩形中,称之为投影矩形,其边界为xxxxyyyy=,,,===。给定采样间隔d,将minmaxminmax投影矩形的长和宽分别分成n,n份:xyxx−maxminn=xd(2-1)yy−maxminn=yd这里表示向下取整。由于此处矩形的长和宽不一定是采样间隔的整数倍,所以在x方向和y方向上可能会有一个偏差∆=xx−x−⋅dnmaxminx(2-2)∆=yy−y−⋅dnmaxminy考虑到可能存在的偏差,将采样点做适当的平移以得到更加准确的结果。此时可以在投影矩形中得到(nn++1)(1)个采样点(,)xyxyij1xxix=min+∆+⋅xidi(=0,1,,n)2(2-3)1yjy=ymin+∆+⋅yjd(j=0,1,,n)2然后针对每一个矩形采样点(,)xy,判断直线xxyy=,=与悬空区域是否相交,ijij如果相交,则交点坐标(,,)xyz即为一个悬空区域采样点。ijij由于采样间隔d无法事先获知,在算法具体实现的过程中,通过尝试不同的d,生成支撑结构,观察并记录最好的采样间隔。这种方法虽然大部分情况下能够寻找到一个合适的采样间隔,生成较好的支撑结构并能成功的打印大部分模型,但却在很大程度上限制了支撑结构生成的自动性,对于缺乏相关经验的用户操作更加困难,因此有必要介绍下面的两种采样方法。7 本科毕业设计论文图2-4均匀采样2.2.2自适应均匀采样上面介绍的均匀采样在采样之前需要指定一个采样间隔,但通常情况下,不同模型的采样间隔不尽相同,甚至相同的模型在不同的网格表示中也有不同的情况,因而无法对所有的模型提前指定一个采样间隔,甚至很难就具体一个模型指定合适的采样间隔。因此有必要提出下面这种基于采样点数目的自适应均匀采样。自适应均匀采样是在均匀采样的基础上改进而来的,均匀采样基于采样间隔,而自适应均匀采样则基于采样点数目。对于给定面积的悬空区域,其上需要采样的点的数目N应该有一个合理的区间[,]NN,当实际采样的数目小于minmaxN时,由采样得到的悬空点生成的支撑结构可能无法保证模型的成功打印,相min反,数目过多亦有难以剥离等缺陷。但更多时候,只需保证实际的采样点数目稍大于N即可。设某一悬空区域有T个三角形面片,其在水平面上的投影面积Amin为TAA=∑tt⋅cos()θ(2-4)t=1其中A为第t块三角形的面积,θ为其与水平面的夹角。一般情况下,随着投影tt面积的增加,最少采样点数目也将随之增加,即两者之间成正比例关系。故当悬空区域的水平投影面积为A时,实际需要的最少采样点数目为N=⋅kA(2-5)min式中的k为一个经验常数。经过大量实验发现,每八平方毫米的区域采取一个悬空点比较合适,故此处将k取作64。在悬空区域的投影矩形中,将沿x轴方向和y轴方向分别分为n和n等份,这样投影矩形内的采样点数目为(nn+⋅+1)(1),xyxy同均匀采样类似,通过判断每个矩形采样点(,)xy与悬空面是否相交来确定最终ij8 本科毕业设计论文的悬空区域采样点数目N。初始情况下将n和n均设为1,此后判断N与N的xymin大小关系,当NN<时,将n或n增加1,直至NN≥为止。有关算法如下minxymin所示:functionS←SelfUniformSampling(N,widthx,widthy,faceOverhangs)minnx←1ny←1dx←widthxdy←widthywhilesampleCntdy)nx++elseny++;dx=wx/nx;dy=wy/ny;forallpointp(i,j)ifp(i,j)belongstofaceOverhangssampleCnt++endifendforendwhile//restorethesamplesforallpointp(i,j)ifp(i,j)belongstofaceOverhangsaddptoSendifendforreturnS自适应均匀采样的具体步骤可由图2-5简单表示如下:图2-5自适应均匀采样9 本科毕业设计论文2.2.3泊松圆盘采样泊松圆盘采样(PoissonDiskSampling)是一种重要的采样方法,在图形图像处理方面有着广泛的应用。与其他的采样方法不同,泊松圆盘采样有着很好的视觉效果,而且具有良好的蓝噪声特性。对于二维平面的泊松圆盘采样,已经有了[11,12]大量的研究,比较成熟的有两种算法。第一种即所谓的“掷飞镖”(Dart[13]Throwing)算法,其基本思路是每次在采样区域内随机布点,在确定一个新的随机点是否为采样点之前,比较该点与所有已确定的采样点之间的距离,若距离均大于泊松圆盘的半径,则将该点接受为采样点,否则拒绝该点并生成新的随机点继续比较。这种经典的方法虽然简单易懂,但效率低下,且不一定具有收敛性。另一种算法称为松弛法(Relaxation-basedMethod),是对已有的位置进行不断地迭代调整,直至得到泊松圆盘采样效果。虽然对于二维平面和高维欧式空间,泊松圆盘采样都已经有了较为深入的研究,但对于二维流形表面的泊松圆盘采样的有关研究却相对较少,已有的方法的效率都比较低,特别在模型比较复杂,网格比较密集,采样点比较多的情况下,算法的运行速度很慢。鉴于泊松圆盘采样的种种优良特性,这里考虑采用此种采样方法获取悬空[14]点。Li.etal.提出了一种基于二维流形的泊松圆盘采样方法,该算法的基本思路如下:Step1给定网格M,将其参数化fM:Ω→,计算其雅克比矩阵(Jacobian)J,从而得到两个采样点s与s之间的近似测地线距离12Tdss(,)12=−−(Jsss()(121)(Jsss()(121)(2-6)Step2将雅克比矩阵缩小r倍,这里rr=r(2-7)maxSr=2(2-8)max23N其中S是网格M的面积,N是需要采样点数目,r∈[0,1]是一个常量;Step3在二维参数空间进行泊松采样;Step4利用重心坐标,将采样结果对应到三维网格上。由于要计算网格上两点之间的测地距离,虽然该算法已经给出了一种近似算法,但整个算法的运行速度仍然很慢。考虑到整个支撑算法的运行效率,这里将抛弃这种方法,直接在悬空区域的投影矩形内运用掷飞镖算法,然后将平面的采样结果对应到悬空区域。算法的伪代码如下:10 本科毕业设计论文functionS←PoissonDiskSampling(r,Ω,N,MT,faceOverhangs)min//Ω:samplingdomain//N:numberofsamplestobegeneratedmin//MT:maximumnumberoftrialsS←∅trials←0whiletrials()θ(2-21)即不满足支撑杆的最大长度限制,此时将圆锥的半顶角减少∆θ,即在计算新的支撑杆时取θθθ=−∆(2-22)继续计算直至支撑杆的长度满足条件。在每次添加完一根支撑杆后,需将圆锥的半顶角设置为初始状态,即θθ==50°。019 本科毕业设计论文图2-15支撑算法改进前后的结果(左图为改进前,右图为改进后结果)20 本科毕业设计论文第三章支撑结果的展示与分析比较3.1支撑算法的效果通过C++语言实现第二章介绍的树状支撑结构的生成算法,网格的处理维护运用了开源库OpenMesh,用户界面(UserInterface,UI)由Qt完成,利用OpenGL®API渲染结果。所有的实验均运行于配置普通的笔记本电脑,处理器为Intel™®®Corei53210M2.5GHz,显卡为NVidiaGeForceGT630,内存4GB。执行添加支撑算法后,程序界面在原始网格的基础上显示添加的支撑,其中红色线段表示由圆锥与圆锥相交生成的支撑杆,绿色线段表示支撑杆与网格相连,而蓝色线段则表示支撑杆与基准面相连。程序运行完毕输出文件名为support.obj的网格文件用于打印,网格文件包括原始模型,支撑结构和底座,其可以被绝大部分三维打印机识别,直接打印。下图是部分模型的程序运行结果截图。图3-1支撑算法的结果(程序运行界面截图,紫色部分为悬空区域,红线表示由圆锥与圆锥相交生成的支撑杆,绿线表示支撑杆与网格相连,而蓝线则表示支撑杆与基准面相连)21 本科毕业设计论文®™选取几个模型进行打印,使用的三维打印机依然是MakerBotReplicator2打印机,打印材料是聚乳酸(PolyLacticAcid,PLA),打印速度为90mm/s,喷头的移动速度为150mm/s,打印的层高为0.2mm,填充比为20%,模型的高度均为60mm。图3-2展示了其中的三种模型的实际打印效果。图3-2三种模型的实际打印结果(上面一行为生成的带支撑的网格文件的渲染结果,下面一行为对应模型的打印结果,从左到右分别为马,马踏飞燕和恐龙模型)从结果来看,本文的树状支撑结构能够确保常见模型的成功打印,生成的支撑简单实用高效,由于在支撑杆的末端作了削尖处理,大部分支撑杆能够比较轻松地从模型上剥离,但有些特殊的区域,比如图3-2中第三列恐龙牙齿的部位,由于每一颗牙齿下面都有一个很短的支撑,如此密集的支撑挤在一个特别小的区域,再加上支撑杆有一定的直径,支撑杆在剥离的过程中很难保持牙齿的原状,总而言之,该算法的结果对大部分的模型能够起到很好的支撑作用,且比较容易剥离,但对于少数模型,在其结构比较复杂的部位不论是支撑结构的生成还是剥离都需要有所改进。我们尝试剥离打印出的马踏飞燕模型的支撑,在剥离支撑的过程中并没有遇到多大困难,在经过将近一小时的打磨后,得到相对比较完好的原始模型,如下图所示。图3-3剥离支撑并打磨后的马踏飞燕模型(模型的两个侧面)22 本科毕业设计论文3.2支撑结果的比较为了比较本文中的支撑结构生成算法和部分已有的主流支撑算法的效率,用®同样的打印机在同样的设置下,打印了部分模型以作比较。此处选取Ultimaker™®™Cura和AutodeskMeshMixer两款切片引擎所带的支撑生成算法,由于®™MakerBotMakerWare生成的支撑与Cura相同,故不再考虑。Cura首先检测出模型需要支撑的区域,然后在这些区域的下方生成网格状的支撑。而MeshMixer首先检测悬空区域,并在此基础上获得一个需要添加支撑的悬空点集合,在悬空点的基础上聚类生成树状支撑结构。为了保证比较的公平性,在实际中尽量保证条件的一致性,Cura与MeshMixer中的支撑临界角均设为50°,与本文保持一致。打印模型的高度均为60mm,打®™印机仍为MakerBotReplicator2,且打印参数与前面保持一致。MeshMixer支撑杆的直径为2mm,本文中的支撑杆的直径最大为3mm,最小为2mm。在图3-4、3-5中,展示了三种算法生成的支撑结构以及实际的打印效果。图3-4不同算法生成的恐龙支撑结构的比较(从左到右分别为本文的算法,MeshMixer的算法和Cura的算法)23 本科毕业设计论文图3-5不同算法生成的马踏飞燕支撑结构的比较(从左到右分别为本文的算法,MeshMixer的算法和Cura的算法)从结果来看,Cura使用的是一种简单粗暴的方法,在所有悬空的区域下面均添加网格状的支撑,这种方法虽然能确保模型的打印成功率接近百分之百,但却有着致命的缺点:耗材严重,支撑不易剥离,剥离支撑时对模型的损伤太大等等。MeshMixer生成的树状支撑结构较为复杂,大部分支撑杆过于曲折,树状支撑的分叉过多,这严重的影响了支撑的稳定性。下面将从打印时间、材料消耗两个方面对三者的效果进行定量的分析,实际打印过程中的统计结果如表3-1所示。图3-6不同支撑结构下恐龙模型和马踏飞燕模型打印所耗时间(模型高度均为60mm)表3-1不同支撑结构下恐龙和马踏飞燕模型打印所消耗的时间和材料(模型高度均为60mm)time/minmaterial/gCura9117.72dinosaurMeshMixer7612.09OurSolution6511.99Cura6512.86mtfyMeshMixer6310.36OurSolution6210.4824 本科毕业设计论文可以发现,Cura的算法生成的支撑在打印时无论在时间还是材料的消耗上,相比其他两种方法都很大。MeshMixer的算法生成的支撑在打印时的时间和材料消耗与本文中的算法的差异并不是很大,但相比而言,本文的支撑结构更加稳定,打印的成功率相对更高。3.3算法的分析在本章的最后,对本文中的树状支撑结构的生成算法的效率进行分析。主要从几个模型出发,比较算法运行时的具体表现。从表3-2中可以大概地看到许多关于该算法的信息。可以比较在相同的采样方法下,不同模型的采样点数目和采样时间的差异;还可以比较同一个模型,不同采样方法所带来结果的差异。随着模型点、边、面的数目的增加,各种采样方法的时间消耗均有所增加,但均匀采样增加的幅度最大。三种采样方法中,泊松圆盘采样的时间消耗最小,但随着模型复杂程度的增加,三者的差异变得不再明显,都特别耗时。表3-2三种采样方法的比较(采样半径取作6mm)horsemtfydinosaurtotal2000642110508verticesoverhangs27950491959total59941925731188edgesmeshoverhangs63850494478informationtotal39961283820792facesoverhangs36016832565actual546.52784.53922.68areaprojected495.11735.41838.59uniformpoints121718samplingtime/ms608901715694samplingself-uniformpoints233937methodssamplingtime/ms733608413728PoissonDiskpoints212015samplingtime/ms453577213572本文中介绍的树状支撑结构的生成算法主要包括三个步骤,首先是悬空部位的检测,这部分包括悬空点的确定与悬空面的采样,最终得到一个用于生成支撑结构的悬空点集;其次便是支撑结构的生成,基于悬空点集,自上而下构建树状支撑结构;最后是最终的模型输出阶段,即将原始模型和添加的支撑组合成一个新的网格文件,必要时还需添加底座以增加整个模型的稳定性,此阶段是模型打印的必经之路。在表3-3中给出了马、马踏飞燕和恐龙模型下,采样方法为均匀采样,采样半径为4mm时,这三个阶段运行所消耗的时间和整个算法运行的总时间,这三个模型的信息可由表3-2得到,支撑结构的生成阶段所消耗的时间随25 本科毕业设计论文网格复杂度增加而增加的程度并不是很大,而悬空部位的检测受模型的影响较大,这是采样过程导致的。整个算法运行的总时间受模型的复杂程度的影响很大,而这也是后期需要改进的地方。表3-3算法各部分的运行时间(采样方法为均匀采样,采样半径取作4mm)horsemtfydinosauroverhangsdetection671728415085supportgeneration57713264540time/msfinalmeshoutputting1514312010837totalruntime2762117303049826 本科毕业设计论文第四章总结与展望4.1总结本文就三维打印过程中的一个重要问题——支撑结构的生成提供了一种简单高效的算法,为物体模型的顺利打印提供了保障,促进了三维打印技术的进一步成熟发展。全文大致分为三部分:在第一章中,首先介绍了有关问题的研究背景及重要的研究意义,分析了学术界有关该研究的现状,其次重点介绍了支撑结构生成的主要研究内容与方法,使读者对有关问题有了一个初步的认识,最后叙述了全文各个章节的结构安排。第二章是全文的重点,主要介绍了一种树状支撑结构的生成算法。首先提出了模型悬空部位的确定方法,第二节着重介绍了三种针对悬空部位的悬空点采样方法,包括均匀采样、自适应均匀采样和泊松圆盘采样,并比较了三种采样方法的具体效果。之后便开始重点介绍树状支撑结构的生成算法,并针对算法中涉及到的几个问题进行了具体而详尽的叙述。在本章的最后,对支撑算法进行了优化,包括支撑杆直径的控制和杆末端的削尖处理,最后考虑到直杆的可打印长度与其和竖直方向倾斜角度的关系,将算法进一步优化,使得生成的支撑结构更加稳定结实。在第三章中,对算法的运行结果进行了展示,并打印了部分模型验证支撑的可靠性。针对两种比较常见的切片引擎生成的支撑结构,将本文的算法与其做了对比,并分析了算法的运行时间,支撑结构所消耗的材料量等。最后简要分析了算法的运行效率。4.2展望通过本次毕业设计,我对三维打印的原理、方法有了初步的了解,对支撑结构的有关问题、一般方法也有了更加深刻的了解,虽然本次毕业设计已经接近尾声,但对有关问题的研究还远远没有结束,虽然本算法在大部分情况下能够保证模型的成功打印,但还是有一些明显的弊端,比如均匀采样算法中采样间隔的选取,对于不同的模型,采样间隔可能差异很大,甚至对于相同的模型,在不同的网格表述下,采样间隔也可能不同,这就要求人工手动去选择较为合适的采样,麻烦且费时。而且在个别情况下,有些支撑杆会附着在模型的表面,这样的支撑27 本科毕业设计论文杆起不到支撑的作用,由于与模型的接触面积较大,特别不容易剥离,剥离时对模型的损伤很大。除此之外,软件的用户交互系统还有待于改善,以提供更加友好的用户体验。后期将着重改进诸如此类问题,以得到稳定更高、更易剥离的支撑结构。28 本科毕业设计论文参考文献[1]张永.FDM快速成型中工艺支撑的智能化设计[D].南昌:南昌大学,2008.[2]龚志海.熔丝沉积成型工艺支撑自动生成技术研究[D].武汉:华中科技大学,2006.[3]李向前.快速成型中支撑结构的智能化设计系统[D].西安:西安科技大学,2005.[4]彭安华,张剑锋.FDM工艺中支撑添加技术的研究[J].机床与液压,2007,35(12):67-70.[5]陈岩,王士玮,杨周旺,等.FDM三维打印的支撑结构的设计算法[J].中国科学:信息科学,2015,45(2):259-269.[6]DuttaD,PrinzFB,RosenD,etal.LayeredManufacturing:CurrentStatusandFutureTrends[J].JournalofComputing&InformationScienceinEngineering,2000,1(1):60-71.[7]KumarC,LarryJ,LarryR.SupportGenerationforFusedDepositionModeling[J].ProceedingsofSolidFreeformFabricationSymposium,1995,73(5-8):913-928.[8]WangWM,WangTFY,YangZW,etal.Cost-effectivePrintingof3DObjectswithSkin-FrameStructures[J].ACMTransactionsonGraphics,2013,32(6):2504-2507.[9]VanekJ,GaliciaJAG,BenesB.CleverSupport:EfficientSupportStructureGenerationforDigitalFabrication[J].ComputerGraphicsForum,2014,33(5):117-125.[10]DumasJ,HergelJandLefebvreS.BridgingtheGap:AutomatedSteadyScafoldingsfor3DPrinting[J].ACMTransactionsonGraphics,2014,33(4):1-10.[11]GengB,ZhangHJ,WangH,etal.ApproximatePoissonDiskSamplingonMesh[J].ScienceChinaInformationSciences,2011,56(9):1-12.[12]WeiLY.ParallelPoissonDiskSampling[J].ACMTransactionsonGraphics,2008,27(3):1-9.[13]CookRL.StochasticSamplinginComputerGraphics[J].ACMTransactionsonGraphics,1986,5(1):51-72.[14]LiHW,WeiLY,PedroV,etal.AnisotropicBlueNoiseSampling[J].ACMTransactionsonGraphics,2010,29(6):81-95.[15]EberlyD.IntersectionofaLineandaCone.Mar.2008.URL:http://www.geometrictools.com/Documentation/IntersectionLineCone.pdf29 本科毕业设计论文致谢经过半年多的努力,毕业设计终于告一段落,而我也度过了大学生活中一段极其丰富非常充实的快乐时光。在认真负责的刘利刚老师和刘哲老师的指导下,在友好热情的教研室师兄师姐的帮助下,以及同学好友的交流讨论中,在这半年时间里,我了解了三维打印的原理,明白了支撑问题的重要性,增强了编程能力,提高了写作水平,但更重要的是,我学会了如何快速进入新的领域展开学习,懂得了查阅资料、讨论交流的重要性,我相信这对我以后的学习科研都会提供巨大的帮助。首先我要感谢刘利刚老师和刘哲老师,毕设是在两位老师的耐心指导下完成的。从刘利刚老师身上,我不仅学到了许多专业知识,更感受到刘老师认真严谨的治学态度,积极乐观的生活作风,我相信以后能够学到更多的知识,得到全面的发展。而从刘哲老师那里,我看到的是一位亲切和蔼、认真负责的好老师,总是在需要的时候给予学生全力的帮助。在此,我对两位老师的耐心指导和热心帮助致以最诚挚的谢意,感谢老师在这几个月来付出的关爱。其次我要感谢我的父母,是他们将我抚育成人,一直为我默默付出。在外求学的四年来,每周的电话都能感受到父母对我深深的爱,而这也一直激励着我向前,没有他们我便不会走到今天。我还要感谢我的两位姐姐,大姐总是在学业上给我建议指导,二姐则更多的给予我生活中的问候帮助,能够做她们的弟弟是我此生的荣幸。此外我还要感谢陪伴了我将近四年的女友王迁,谢谢她一直以来对我的支持与鼓励,四年的异地时光,我们携手走过来了,未来一起继续努力。另外我要感谢教研室的师兄师姐、同学朋友们,是他们在我遇到问题时,热情耐心地给我帮助。感谢陈岩师兄,感谢李航、董志超、高瑞良、付钟奇、胡鑫,谢谢他们在整个毕设过程中给我的无私帮助,让我能够顺利解决遇到的一个又一个问题。还要感谢詹佩、杨彩琼、姬建雨、李军章、刘一鸣、伍廷鸿,让我能够在科大安心地完成毕业设计。最后,感谢大学四年来传授我知识的老师们,感谢为我提供良好的学习生活条件的学校领导,感谢始终支持关心我的朋友们和同学们,感谢所有曾关心、帮助过我的人,新的生活即将开始,新的征程将要起航,我会带着大家的期待,奋力前行!30 本科毕业设计论文毕业设计小结转眼之间,半年时间就过去了,毕设也即将告一段落。回首毕设之路,虽然很是忙碌,但却是累并快乐着,因为这段时间确实学到了很多,收获了很多,很是充实,也很享受。三维打印,以前只在新闻中见过有关报道,觉得是一种很炫酷、很高端的新技术,却没想到毕设做的正是和这相关,从一开始的什么都不懂,到学会操作打印机,打印出自己的第一个模型。从阅读文献理解算法开始,到最后完成上千行的代码。每当遇到困难,我便积极寻找解决的办法,上网查资料,请教老师同学,每次解决一个哪怕在旁人看来微不足道的小困难,都能让自己兴奋许久。而我相信,正是这种兴奋感的激励,才有动力去解决下一个、下下一个可能面临的困难。在以后的学习生活中,我也还会保持这种对探寻未知时的兴奋感的渴望,继续前行。一直以来,我都希望不管是自己以后的科研或者工作,都能够做到动脑与动手的结合,这是我的爱好,也是我的优势。而在毕设中,通过编写程序实现算法,通过打印实物检验效果,我也算是初步满足了自己的这个愿望。在以后的工作生活中,我也还会继续坚持这个爱好,努力发挥这个优势。在实验室,看到了许多勤奋好学、学业出色的同学,在向他们请教的过程中,我不仅解决了遇到的问题,更学到了他们身上的热情、好学、努力。实验室老师、师兄师姐们的勤奋好学也让我印象深刻。我会记住毕设期间的点点滴滴,记住所有帮助过我的老师、师兄师姐和同学朋友们。毕设虽然结束了,大学生活也即将画上句号,但学习的脚步却不能停滞,在即将到来的研究生阶段,我会以更加饱满的热情投入到更加紧张的学习之中,努力做到学有所得,学有所用!31 本科毕业设计论文空白页32'