近些年来,3D打印产业发展迅猛, 新型打印技术和设备层出不穷。3D打印技术被认为将会为个性化产品的设计及生产带来革新。同时,3D打印技术的发展也给数字几何处理带来了新的挑战。研究人员从探索并优化3D打印这一实例化模型的过程出发,结合三维模型的几何特性开展一系列的研究,并受到越来越多的重视和关注。

在传统的建模过程中,研究人员更多考虑的是三维模型与实体的几何相似性。而随着3D打印机的日益普及, 对模型进行实例化制造也变得越发便捷,这使得研究人员开始了对于优化这一过程方式的探索,即希望能通过更加快速、廉价的方式打印出可以实现某些特定功能的实例化模型。由于3D打印技术的发展历史以及研究现状并非本文的重点,本文将不对其进行详细介绍,具体请参见这方面的相关综述。本文将着重介绍在3D打印启发下对模型实例化这一过程进行优化方面的研究工作,并分别从模型设计和打印过程2个阶段进行阐述。值得注意的是,不同于之前工作中对于相关几何计算问题基于自身特点的分类,接下来我们侧重分析问题提出的背景以及其在整个实例化过程中所起到的作用,从而希望能够对想要寻找新的研究问题的读者有所启发。
1 模型设计优化
3D打印技术的广泛适用性,使得通过传统方式建模得到的三维模型理论上都可以直接通过3D打印机得到实体。但是,由于在模型设计过程中并没有考虑模型自重、受力等因素,打印完成的实体可能极易断裂或者无法实现如平稳站立等特殊的功能性要求。因此,研究人员通过对现有模型进行改造的方式优化静态三维模型的设计。另外,3D打印的发展同时也为动态模型的制造提供了极大的便利;相应地,可打印的动态模型设计方面的研究也成为了热点。

1.1 静态模型
对静态的实例化模型*基本的要求是其结构的稳定性,即打印过程中以及完成后的实物不易断裂或破损. 为了保证模型的这一特性,研究人员对模型进行了可打印性(printability)分析。Telea等根据经验得出模型中过细的部分是影响可打印性的关键,并制定出了多个相应的判定准则,进而给出了**个自动分析模型可打印性的算法;但是他们并没有给出完善模型可打印性的方案。此后,Nelaturi等在分析精确度上对其进行了改进,并提出了局部加粗的修正方法。Stava等则依靠分析模型的自重以及模型被拿起时可能的受力点来检测出薄弱结构,然后通过增加支柱、局部加粗以及内部挖洞等方式,在尽可能小地改变模型外形情况下来增强模型的可打印性。
以图1a所示打印完成的卡通香蕉模型为例,通过加粗腿部结构以及在后背加上支柱,模型得以完整打印并且不会因为自重破裂。另外,Umetani等通过分析给定方向切面上的受力信息来对结构强度进行分析。上述对可打印性以及结构稳定性分析的方法,都依赖于对模型所受外力以及自身重力的物理结构分析,但是对外力的预估往往并不是十分准确,因此他们分析结果的真实性和可靠性相对减弱。针对上述问题,Zhou等在不对模型受力情况进行假设的前提下,单纯从模型的几何形态及其组成材料对*容易断裂或者破损的部分进行分析检测,其中技术关键则是模态分析(modal analysis)。但也正是由于他们假设的限制性,所提出的算法只初步考虑了材料的线性弹性,并未对材料的各种属性进行充分的分析。

平衡性是对静态模型的另一个常规要求,但是如果将给定模型直接打印,则可能会由于重心不稳定的原因无法使其保持平衡。Prévost等提出了一个交互式对模型体进行改变的方式,使得模型能够以指定的方式稳定站立或者悬挂;其中允许的改变包括对模型表面进行形变以及在模型内部挖洞。类似地,为了能够让模型像陀螺或者悠悠球一样旋转,B?cher等通过在模型体内挖洞来改变质量分布的方式,使模型在旋转过程中保持稳定状态。Yamanaka等则通过改变模型内部结构使其质量分布满足预定的期望。
图1b和图1c中分别展示了3D打印出来的可以稳定站立和旋转的模型。这方面的研究通常是先分析出模型为满足所研究的某一功能性要求的理想密度分布,然后通过改变模型内部材料分布,以及对模型外形进行轻微形变来达到要求。除了通过对现有模型进行改造得到满足特定要求的模型外,新的以3D打印为目的的建模方式也应运而生,如合理的家具模型设计、几何装饰品设计以及平板拼装模型的设计等。此外,由于通常情况下设计和生产需要经过多次反复测试才能*终得到理想的模型和实物,快速打印出近似的模型设计来查看当前存在问题,可以有效地加快设计修改的进度。
1.2 动态模型
关节模型是较为常见的一种动态模型,且在计算机动画领域应用广泛。然而,传统的关节模型通常不能直接作为3D打印机的输入进行制造,因此如何在已有数据基础上设计出可直接打印的关节模型成为一个关键问题。以包含表面几何信息以及内部骨骼信息的蒙皮网格为输入,B?cher等将其自动转化成单个可以直接打印的关节模型,图2a显示了同一个关节模型的不同姿势。Calì等则将重点放在不同类型关节结构的设计上,对于给定的一个普通静态网格,他们通过用户交互的方式构造出相似的关节模型。同样,这里的关节模型也是可以直接打印的整体,不需要拼装。图2b显示了一个3D打印得到的手关节模型。这一类研究工作的重点主要在于关节结构的设计,以及如何在输入模型中分布这些关节以使得*终模型能够自如活动。

通过对关节的控制,可以将关节模型摆出不同的姿势,而机械模型(mechanical model)则能进一步通过控制齿轮运动得到模型的动画。机械玩具、机械人及机械卡通等设计相继得以实现,并通过3D打印技术得以快速制造,如图3所示。机械模型的设计依赖于初始输入对*终动画的要求,从预先生成的部件库中选取并组装合适的部件,使得*终的模型能够完成输入的动画要求。

此外,3D打印技术的发展还激发了其他一些有趣动态模型的创造。Zhou等在将一个给定模 型体素化(voxelization)之后,通过优化相邻体素之间的关节类型分布以及折叠路径的设置,*终使得体素化后的模型能够折叠成方块。Megaro等则提供了一个交互工具用来设计类似于皮影戏中人偶的动态模型。
2 打印过程优化
设计完成的三维模型将作为3D打印机的输入用于实例化制造。通常,模型是以三维表面网格的形式表示, 但是3D打印出来的是实体模型,所以**步需要先将表面网格转化为体表达。接着,在确定出打印方向之后, 实体模型需要被切割成垂直于打印方向的层结构,*终通过逐层堆叠积累的方式打印出完整模型。以下将就打印不同阶段所遇到的优化问题分别对相应研究进行简介。
2.1 容量限制
每一款3D打印机都有可打印容量的限制, 所以在打印开始前可能出现的情况是现有的打印机无法容纳下需要打印的模型。就这一问题,将输入模型自动切割并分别打印之后再组装回原模型的算法相继被提出。这些算法都采用平面切割,并且都在切割面上设计并分布了连接器(connector),以使得部件间可以灵活组装。相比之前的工作,Luo等在切割过程中更多地考虑了可打印性、结构稳定性、拼装简易性、美学特征等信息,分割块数也更少。图4a显示了采用该算法得到的对椅子模型的分割结果以及打印后拼装成的实体模型。通过限制用平面对模型切割,从而便于在其上增加连接器,并将这一模型分割问题转化为寻找*优BSP树的问题,再通过束搜索(beam search)算法对其进行求解。

针对连接器在有些情况下不能给部件之间提供充分的结构性保证,而且在运输或者装配过程中容易损坏的问题,Song等提出了将三维模型切割成互锁的(interlocking)部件来避免使用连接器,如图4b所示。通过这种互锁的方式,拼装之后的模型具备了较高的稳定性,又保证了每一块分割模型的表面的光滑性。但是,这一方式的分割又无法同时达到拼装简易性、具有美学特征等方面的要求。
2.2 打印实体
在对模型进行可打印性分析以及在为实现其他功能特性对模型进行改造时,一般都会假设对*终得到的网格进行实心打印(除了改造过程中已挖空的部分)。然而,为了节省打印材料以及打印时间,通常3D打印机都会对模型体内用相对于表面较为松散的结构进行稀疏填充。但是,一般自带软件的稀疏填充功能在材料以及时间上的节省度往往达不到用户期望,所以不少研究者提出了不同的从三维表面网格到可打印实体的转化方式。
Wang等将模型表达成如图5a所示一个很薄的蒙皮以及内部的刚架结构,使得表达后的物体体积*小,且打印物体能够满足所要求的物理强度、受力稳定性、自平衡性及可打印性等要求。Lu等则用图5b所示蜂窝结构作为模型的内部结构,在减少材料损耗的同时保证了模型的强度。
这2项工作的主要贡献在于对自稳定结构的探索并将其成功引入到3D打印过程中来。用自稳定结构对模型进行近似,使得其在打印过程中的材料消耗大大降低的同时保证了结构的稳定性。为了在结构优化过程中实现结构几何形状与对象受力传递路径保持一致,徐文鹏等通过逐步删除无效或者低利用率的内部材料来*小化打印体积。Vanek等则并未从自稳定结构出发,且减弱了对模型稳定性的考虑,更侧重于材料和时间的节省。他们直接用图5c所示表面的薄层来表示模型,并且将表面薄层分割堆叠后再一起进行打印,从而达到进一步节省打印时间和材料的目的。