适配3D打印文件的制作方法

文档序号:16506961发布日期:2019-01-05 09:05阅读:329来源:国知局
适配3D打印文件的制作方法

本说明书涉及一种三维(3d)打印方法及系统。三维(3d)打印是用于从数字3d模型制造三维实体对象的增材打印过程。更具体地,本说明书涉及一种用于将3d打印文件适配为用于3d打印系统的方法及系统。

附图说明

将参考附图、仅通过举例来描述示例,附图中相应的附图标记表示相应的部件,且其中

图1为根据示例的用于由3d打印机对3d打印文件进行适配的示例性方法的框图;

图2示出根据示例的奇偶填充规则(上)、非零填充规则(中)和正填充规则(下);并且

图3为示例性3d打印机的框图。

具体实施方式

一般而言,3d打印也称为增材制造,因为它涉及连续材料层的联合施加。一般而言,关于3d打印,术语“材料”在物理物质的意义上理解为可以用于生成对象。3d打印是从主要以某种格式定义的数字3d模型制造具有几乎任意形状的三维实体或物理对象。如本文所用的,术语“3d模型”指的是在打印操作期间经3d制造过程所创建的一个对象或多个对象。它可以包括单个对象、多个同质对象、多个异质对象、完全封装在另一对象中的对象、或在互锁且不可分离的组件中的多个对象。

3d打印包括一组具有增加材料以形成对象的共同特性的技术,即可以通过放置连续的材料层直至创建整个对象来创建对象。存在使用大量材料(例如,沙、胶、陶瓷、织物、生物材料、玻璃、树脂或塑料)的诸如立体光刻(sla)、数字光处理(dlp)、连续液体接口制造(clip)、直接金属激光烧结(dmls)、选择性沉积层压、熔融沉积成型(fdm)和选择性激光烧结(sls)的广泛应用的解决方案。一般而言,关于3d打印,术语“材料”在物理物质的意义上理解为可以用于输出对象。

在一些示例中,可以将3d打印文件提供给3d打印系统。3d打印文件可为计算机设备上处理的任何一种软件。在一些示例中,3d打印文件可以由3d打印系统处理。在一些其它示例中,3d打印文件可以由单独的计算机设备处理。例如,由3d打印系统处理3d打印文件可以取决于3d打印文件的结构和3d打印系统中所用的处理器等。在一些示例中,3d打印文件可以由3d打印机处理,即3d打印文件可以在预打印过程中处理,并且在实际的3d打印过程期间打印物理对象。

除非另外明确规定,诸如“处理”、“计算”、“运算”、“确定”等的术语是指操纵数据和/或将数据变换为其它数据的计算机设备的动作和/或处理,所述数据表示为例如诸如电子的物理数量。术语“计算机设备”应宽泛地被解释为涵盖任何一种具有数据处理能力的电子设备,举非限制性示例来说,包括个人计算机、服务器、计算系统、通信设备、处理器(诸如例如数字信号处理器(dsp)、微控制器、场可编程门阵列(fpga)、专用集成电路(asic)等)和其它电子计算设备。而且,根据本文教导的操作可以由专门为期望目的而构建的计算机设备、或由通过计算机存储在可读存储介质中的计算机程序为期望目的而专门配置的通用计算机设备来执行。

在一些示例中,由3d打印机处理3d打印文件可包括生成要打印的一个或多个对象的3d表示,即3d模型。它还可包括通过3d打印机打印或制造对象本身。在一些示例中,3d模型可以由3d打印系统生成。在一些其它示例中,3d模型可以在单独的计算机系统上生成。在一些示例中,在要处理的3d打印文件中已包含至少一个3d模型。

在一些示例中,3d打印文件可包括至少一个3d模型,即3d模型数据,其中3d打印文件可以具有适于3d打印的特定文件格式。3d打印机可以对包括至少一个3d模型的3d打印文件进行处理,即可以生成指令,且可以重建物理对象。处理可以在本文理解为在实际打印过程之前发生的处理。在一些示例中,处理还包括物理3d对象的实际打印过程。

在一些示例中,包括至少一个3d模型的3d打印文件的格式可以基于开放打包约定(openpackagingconventions)标准。开放打包约定标准为对打包模型进行描述的规范,即如何用部件和关系来表示包(例如3d打印文件)。

在一些示例中,3d打印文件可以具有基于3d制造格式标准的格式。3d制造格式(3mf)可以定义一个或多个旨在由3d打印机输出到物理形式的3d对象。3mf是允许将全保真度3d模型从制造应用发送到3d打印机、平台和服务。3mf实现了由开放打包约定规范所规定的通用包特征。也就是说,具有3mf格式的3d打印文件可以遵循开放打包约定。具有3mf格式的3d打印文件可以表示至少一个3d模型。因此,实施3mf格式的3d打印文件包括关于如何通过增材制造技术生成物理对象的信息。对于关于3mf文件格式的更多细节,参考“3d制造格式——核心规范&参考指南(版本1.1),版权归3mfconsortium2015”。

在一些示例中,只要用有效的可打印的3d模型供给3d打印机,它们就能够制造正确的3d物理对象。在一些示例中,此类3d模型被表示为例如多边形网。多边形网为顶点、边及面的集合,定义了多面3d对象的形状。在一些示例中,面可以包括三角形、四边形或其它凸多边形,因为这简化了渲染(render)。在一些示例中,面还可以由更普遍的凹多边形、有孔的多边形等构成。在一些示例中,这些多边形网可为sla(立体光刻)文件格式或任何其它合适的数据格式。

表示为多边形网的有效模型可以包括表示闭合2d流形的多边形的任意集,即基本上无人工制品的防水对象,例如自交叉,或基本上不互相交叉的闭合2d流形的集合。有效的可打印模型满足各种打印设备所施加的额外需求(不同的打印设备施加不同的需求,因为它们基于不同的技术)。

在一些示例中,3d打印文件中包含的3d模型包括若干多边形切片,即包括由3d模型表示的对象的多边形截面的2d切片。

在一些示例中,多边形网可以重叠或自交叉。因此,可以定义填充规则来指示什么封闭区域在3d对象的体积内部、哪些在3d对象的体积外部。一组多边形网的封闭体积可以通过应用填充算法来定义。填充算法确定几何形状的交叉区域如何组合以形成区域。填充规则在2d中的定义可以和在3d中一样,因此,为附图简单起见,本文的示例将示出2d等同体。此事实可以允许在切片后应用填充规则,从而通过在2d中操作来简化算法。按照惯例,2d图逆时针卷绕时具有正区,因此当沿边看时,局部“外面”是朝右,等同于三角形的局部“外面”为法线方向。

在一些示例中,3mf文件格式可以定义切片扩展。该扩展允许将要打印的对象的模型作为多边形切片的堆栈而不是多边形网来提供。在一些示例中,它可以允许具有多边形交叉,并可以将切片定义为多边形的平的无层次的列表。在一些示例中,它可以定义称为“正填充规则”的填充规则。

正填充规则通过在任意方向画从一个点到无限的射线、接着对它穿过形状的地方进行检查,来确定该点的“内部”。从计数为0开始,每次射线从局部“内部”通向局部“外部”,加1,反之减1。对交叉进行计数后,如果结果为1或更大,那么该点全局在体积内部;否则,它在外部。不是所有的可用渲染器(例如3d打印系统)都可以支持正填充规则。

因此,提供了一种用于将包括至少一个3d模型的3d打印文件适配为用于3d打印系统的方法及系统。更具体地,提供了一种用于对3mf文件格式的包括至少一个具有多边形切片的3d模型的3d打印文件进行适配的方法及系统。在一些示例中,3mf文件由计算机设备或3d打印系统处理时,可以生成3d模型。

可以将用于对包括至少一个数字3d模型的3d打印文件进行适配的方法实现到诸如3d打印机的任意3d打印系统或制造系统中。

该方法包括对3mf文件进行解析,并基于3mf文件的内容生成用于3mf文件包含或生成的每个3d模型的中间文件。在一些示例中,3d模型由多边形切片构成。该方法进一步包括对3mf文件中包含的3d模型的多边形切片执行多边形清理。在一些示例中,对每个3d模型的每个多边形切片执行多边形清理。在一些示例中,多边形清理限于至少一个3d模型的一些多边形切片。例如,可以对那些多边形切片执行多边形清理,那些多边形切片包括下列中的一种或多种:多边形自动交叉、完全或部分在同一或不同类型的多边形(例如,两个实心多边形,两个孔多边形,或一个实心和一个孔多边形)内部的多边形、两个以上多边形之间的交叉。使用多边形剪裁算法的实施来执行多边形清理。在一些示例中,实施的多边形剪裁算法为vatti剪裁算法。该方法进一步包括生成结果文件,该结果文件至少包括执行过多边形清理的多边形切片。在一些示例中,该结果文件可以包括3d模型的全部多边形切片。在一些示例中,可以通过用执行过多边形清理的对应多边形切片对中间文件进行更新来生成结果文件。此外,提供了一种用于应用该方法的3d打印系统和一种用于存储使计算机处理器执行该方法的程序的计算机可读介质。

图1示出用于将包括至少一个3d模型的3mf文件适配为用于3d打印系统的示例性方法。至少一个3d模型包括多边形切片。

如图1中的框10所示,适配3mf文件的示例性方法包括将解析3mf文件,以获得表示要打印的3d对象的3d模型数据。在一些示例中,3mf文件进一步包括额外的内容,例如,标头。例如,标头中包含的信息还可以通过解析3mf文件来获得。

此外,如图1中的框12所示,针对解析过的3mf文件中的每个3d模型生成中间文件。中间文件可以用于将信息传给处理组件,即传给执行本文描述的示例性方法的组件。在一些示例中,将关于3d模型的信息传给处理组件。在一些示例中,将进一步的信息,例如3mf文件的标头中包含的信息,传给处理组件。

在一些示例中,处理组件可以是3d打印系统。在一些示例中,3d打印系统可以包括处理器。在一些其它示例中,处理组件可以是单独的计算机设备。

要理解,尽管在本文描述的示例性方法中,针对每个3d模型独立地生成对应的中间文件,但也可能是针对若干3d模型(例如2个或更多个3d模型)生成中间文件。

在一些示例中,中间文件具有二进制格式。在一些示例中,可以在中间文件中存储具有3d坐标的对应的3d模型的多边形切片。也就是说,例如,可以存储具有笛卡尔(cartesian)坐标的多边形切片,通常标记为x、y和z,其中x和y坐标表示切片的平面,并且用于同一切片的所有多边形的z坐标等于所表示的3d模型内那一切片的z坐标。本文规定的笛卡尔坐标可以基于右手笛卡尔坐标空间。也就是说,坐标空间的原点可以映射到3d打印系统的输出域的下前左角(例如托盘、平台、床等),x轴增长到输出域的右边,y轴增长到输出域的后面,z轴增长到输出域的顶部。

如本文所用的,术语顶部可以是指具有最大可打印z值的坐标空间的xy平面。术语底部可以是指坐标空间的最小可打印xy平面,定义为z值为0的xy平面。这通常与打印床表面一致。术语左边可以是指坐标空间的最小可打印yz平面,定义为x值为0的yz平面。术语右边可以指的是具有最大可打印x值的坐标空间的yz平面。术语前面可以是指空间坐标的最小可打印xz平面,定义为y值为0的xz平面。术语后面可以是指具有最大可打印y值的坐标空间的xz平面。

在图1的框14中,对每个中间文件的3d模型的多边形切片执行多边形清理。在本文描述的示例性方法中,对中间文件的3d模型的多边形切片堆栈执行多边形清理。也就是说,可以对3d模型的所有切片进行清理,而不是逐片对多边形进行清理。

如上所解释的,在一些示例中,3mf文件可以是具有切片扩展的格式。切片扩展允许提供对象的3d模型被打印为多边形切片堆栈而不是多边形网。为了放松3mf文件生成者可以满足的约束,它允许具有多边形交叉,并将切片定义为多边形的平的无层次的列表。为了允许具有此约束放松的切片内容的唯一定义,它可以定义非通用的多边形填充规则,正填充规则。不是所有可用的3d打印系统都可以支持此正填充规则。

如本文所用的,填充规则(或有时叫做填满规则)是用于确定是否将任一特定点视为在表示对象的3d模型的几何形状“内部”的算法。

在一些示例中,3d打印系统可以使用奇偶填充规则。这意味着在渲染过程期间,它逐行渲染图像进行,用渲染的行来评估多边形边的交叉。接着,在与多边形边的各自交叉后,它进行从实(部件)到空(孔)的转变,随后用相反方式。奇偶填充规则通过在任意方向画从一个点到无限的射线并对来自射线所穿过的指定形状的路径段的数目进行计数,来确定切片上那个点的“内部”。若此数为奇,该点在内部;若为偶,该点在外部(如图2所示,顶部)。

在一些示例中,3d打印系统可以使用非零填充规则。通常,非零填充规则为确定指定点是否落入闭合曲线内的方式。不同于相似的奇偶规则,它取决于了解曲线每个部分的笔划方向。非零填充规则通过在任意方向画从一个点到无限的射线,接着对形状的段穿过该射线的地方进行检查,来确定画布上那个点的“内部”。从计数为0开始,每次路径段从左至右穿过该射线,加1,而每次路径段从右至左穿过该射线,减1。对交叉进行计数后,如果结果为0,那么该点在路径外部。否则,它在内部(如图2所示,中心)。

在一些示例中,3d打印系统可以使用正填充规则,其通过在任意方向画从一个点到无限的射线,接着对它穿过形状的地方进行检查,来确定该点的“内部”。从计数为0开始,每次射线从局部“内部”通向局部“外部”,加1,反正则减1。对交叉进行计数后,如果结果为1或更大,那么该点全局在体积内部;否则,它在外部。与其它两种填充规则的主要区别在于为了对每个切片进行渲染,需要考虑来自完整切片的多边形,而对于其它,边的子集的局部评估可能就足够了,即与当前行交叉的(如图2所示,底部)。

在一些示例中,可以通过使用任何一种上面阐述的规则来生成相同的输出。尤其是,这些可能是简单情况,即,既无多边形交叉也无自交叉的那些情况。这种情况下,“奇偶”填充规则可以生成与“正”填充规则相同的输出。

在一些其它示例中,情况并非如此。尤其是有三种情况,其中输出可以不相同:

·多边形自动交叉;

·完全在同一类型(两个实心多边形,或两个孔多边形)或不同类型的多边形内部的多边形;

·两个或更多个多边形之间的交叉。

在这些情况下,可以执行多边形清理。在一些示例中,将中间文件传给模型清洁组件。该组件可以执行多边形清理。在一些示例中,它使用多边形剪裁算法的实施。在一些示例中,实施vatti剪裁算法。结果,可以通过合并多边形来抑制多边形交叉,和/或可以通过分割多边形来抑制多边形自动交叉。

根据示例性方法,在框16中,生成结果文件,其包括清理过的多边形切片。在一些示例中,结果文件可以是由执行本文描述的示例性方法的计算机设备所生成的独立的新文件。在一些其它示例中,用清理过的多边形切片对包括执行过多边形清理的多边形切片堆栈的先前中间文件进行更新。然后该结果文件与更新的中间文件相对应。

在一些示例中,生成结果文件后,对包括清理过的多边形的多边形切片堆栈进行处理。通常,处理器可以以每切片单个文件对切片堆栈进行分割。每个切片文件包含用于切片的清理过的多边形。处理器还可以执行坐标变换,将多边形转换为打印像素坐标,其定义了将要打印多边形的精确位置。

一旦处理器完成,切片文件的内容就可以准备由3d打印系统打印。在一些示例中,3d打印系统可以能够遵循“奇偶”填充规则,为要打印的每一个切片进行渲染,只要移除了有问题的多边形。另外,平均来说,该清理可以减少每切片的多边形数,使切片的处理时间更快,因为它直接与切片上的边数相关。

提出的解决方案可以使通用3d打印系统能够使用,使它适于根据3mf多边形切片来打印内容。而且,它可以通过减少切片中包含的多边形总量而在打印时减少用于渲染层的处理时间。由于切片渲染发生在打印时间,这是对时间敏感的操作,因为渲染器上的延迟可能导致制造的部件上机械性能损耗,因此,对此加速将减少发生这种延迟的可能性。

现在参照图3,其示出包括处理器21、机器可读存储介质22和打印机构23的示例性3d打印机20的框图。除其它数据和程序之外,存储介质22还包括输入文件24(例如表示zip包的3d打印文件)。3d打印机20可以具体配置为执行本文描述的处理。在一些示例中,处理器21可以执行存储介质22中存储的输入文件24,其中根据图1描述的示例性方法,输入文件24包括用于由3d打印机20处理3d打印文件的示例性方法。在一些示例中,3d打印机20可以由个人计算机控制个人计算机还可以包括处理器和存储器。可以通过网络连接来创建个人计算机与打印机之间的通信。

机器可读存储介质22可以是存储可执行指令的任意电子、磁、光或其它物理存储设备。因此,机器可读存储介质22可以例如为随机存取存储器(ram)、电可擦除可编程只读存储器(eerpom)、闪存、存储设备、光盘等。

尽管详细描述了若干示例,但要理解,可以对所公开的示例进行修改。因此,前面的描述被认为是非限制性的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1