三维对象表示的制作方法

文档序号:11288978阅读:178来源:国知局
三维对象表示的制造方法与工艺



背景技术:

增材制造过程所生成的三维对象可以以逐层的方式形成。在增材制造的一个示例中,通过固化部分构造材料层来生成对象。在示例中,该构造材料可呈粉末、流体或板材的形式。可以通过将试剂打印到一层构造材料上来实现想要的固化和/或物理属性。可以对层施加能量,且一旦冷却,已在其上施有试剂的构造材料可以聚结并固化。在其它示例中,化学粘合剂可以用来固化构造材料。在其它示例中,可以通过将冲压塑料或喷涂材料用作构造材料来生成三维对象,构造材料固化以形成对象。

一些生成三维对象的打印工艺使用由三维对象的模型生成的控制数据。该控制数据例如可以规定将试剂施加至构造材料的位置,或构造材料本身会置于何处,以及放置的数量。可以根据要打印的对象的3d表示来生成控制数据。

附图说明

为了更完整的理解,现在结合附图来参考以下的描述,其中:

图1为用于处理对象的表示的方法的示例的流程图;

图2为对象属性描述的示例的示意图;

图3和4为对象属性体积的示例的示意图;

图5为用于将对象属性描述映射到打印材料覆盖表示的方法的示例的流程图;

图6为用于生成控制数据的方法的示例的流程图;

图7为用于表示三维对象的处理装置的示例的简化示意图;

图8为用于生成用于制造三维对象的控制数据的处理装置的示例的简化示意图。

具体实施方式

本文描述的一些示例提供了用于表示三维对象和/或用于生成可以用来制造三维对象的控制数据的装置及方法。一些示例允许具有各种规定的对象属性的任意三维内容被处理且用于生成三维对象。这些对象属性可以包括外观属性(颜色、透明度、光泽度等)、导电性、密度、孔隙度和/或诸如强度的机械属性。

在本文的一些示例中,根据“体素”,即三维像素,来表现三维空间的特征,其中各体素占据离散的体积。在给三维对象建模的数据中,在指定位置的体素可以具有至少一个特性。例如,它可以是空的,或可以有特定的颜色,或可以表示特定的材料,或特定的对象属性,等等。对象的体素可以具有相同的形状(例如,立方体或四面体),或形状和/或大小可以不同。

在一些示例中,打印材料覆盖表示定义了打印材料数据,例如详述了打印材料的数量(例如沉积到构造材料层上的(多种)试剂,或在一些示例中,构造材料本身),且如果适用,还详述了它们的组合。在一些示例中,这可以规定为成比例的体积覆盖(例如,构造材料层的区域的x%应该向其施有试剂y)。此类打印材料可以与对象属性相关,或被选来提供对象属性,诸如例如颜色、透明度、柔性、弹性、刚性、表面粗糙度、孔隙度、导电性、层间强度、密度,等等。

可以使用半色调技术来确定如控制数据规定的应该施加各打印材料(例如,一滴试剂)的实际位置。

例如,对象模型数据内的体素集可以具有关联的包括打印材料体积覆盖矢量集(mvoc)的打印材料覆盖表示。在一个简单实例中,此类矢量可以指示三维空间的指定区域的x%应该施有特定的试剂,而(100-x)%应该没有试剂。这可以为指定材料定义概率分布。在一些示例中,材料覆盖表示可以包括特定材料的覆盖的描述。打印材料覆盖描述然后可以提供用于“半色调”工艺的输入,以生成增材制造系统可以用来制造三维对象的控制数据。例如,可以确定的是,为了生成规定的对象属性,构造材料层的25%(或部分层)应该施有试剂。为了提供25%覆盖率,半色调工艺例如通过将各位置与半色调阈值矩阵中提供的阈值进行比较,来确定试剂滴落之处。

图1为用于变换数据对象的方法的示例。在框102中,接收表示三维对象的数据,该数据包括与对象内多个位置中的每个关联的对象属性描述。该数据例如可以是计算机辅助设计(cad)程序的输出,或三维对象的一些其它数字表示。

在一些示例中,所述位置可以包括点位置,例如定义空间内点的[x,y,z]坐标。在其它示例中,如上所述,所述位置可以包括区域,例如体素。在其它示例中,其它体积描述可以用来定义位置。在一些示例中,可以在对象的几何模型中定义位置。

对象属性描述可以描述归属于数据所表示的对象的任意属性,例如外观属性(颜色、透明度、光泽度等)、导电性、密度、孔隙度和/或诸如强度的机械属性。出于举例的目的,对象属性描述可以是例如图2示意性示出的数据对象200。在此示例中,属性集包括三个颜色值vr、vg、vb,表示红色、绿色和蓝色值,密度值vd、硬度值vs,导电值vc,以及不透明值vo。可以描述其它对象属性集,且其它对象属性集可以包括上面提及的任意属性,以及其它任一的:柔性;弹性;刚性;表面粗糙度;孔隙度;强度,等等。

在一些示例中,为各属性预定值集,且从该集取值。例如,可以为各属性规定比特深度(bitdepth)。对于图2所示的值集,比特深度可以例如规定为[8,8,8,5,4,1,6],即用8比特分辨率规定颜色值,密度值5比特(32级分辨率),硬度值4比特(16级分辨率),导电性1比特(开/关),不透明性6比特(64级分辨率)。这会导致7属性数据的5字节编码。

然而,在其它示例中,对象属性描述能够采取任意形式,包括用于制造具有一个属性或多个属性的对象所用的材料/试剂的特定组合的指令。在位置表示对象区域的示例中,对象属性描述可以包括至少一个在区域内变化的对象属性的标示。例如,它能够包括空间功能或属性变化的标示,例如属性梯度等,而不是单一属性的标示。

在框104中,识别接收的数据内相异的对象属性描述(在一些示例中,所有相异的对象属性),而在框106,用指示相异的对象属性描述的数据填充具有多个地址(例如,存储器地址)的数据对象,以使指示各个相异的对象属性描述的数据由不同的地址表示。

不是所有可能的属性且不是所有可能的属性组合都可能在任意指定的对象中看到。如果考虑所有的属性组合,那么占用的存储空间会非常大。以上面陈述的比特深度为例,对于处于8比特的rgb域中的颜色描述,总的可能地址空间为2563。增加两个额外的8比特编码的属性,诸如例如结构和不透明性,会产生2565的地址空间(即~1012)。然而,对于指定对象,此空间可能是稀疏的。因此,可以通过将离散的对象属性描述与各描述的位置相关联来表示三维对象,而不是给此类大地址空间编索引。然而,这也是低效的,因为一些位置可能具有相同的对象描述。另外,一个对象可以将大范围的值用于一个属性,但将小范围(或完全同质)用于另一属性(例如,可以有颜色范围,但不透明度全相同)。

因此,通过用各个存储在不同地址的相异对象属性描述(即不包括作为独立条目的重复项)填充数据对象(可以是数据库,存在存储器内),考虑为对象确定占据的地址空间的大小,占据的存储空间小于可能的对象属性描述的全集。

进一步地,在一些示例中,不是所有相异的对象属性描述都显性地存储在数据对象内。例如,如下面详释的,可以确定并存储对象属性描述的子集,同时可以抛弃中间值,例如假如能够使用内插来重新计算这些。

在一些示例中,可以用接收的对象属性描述的至少一个子集来填充数据对象。在其它示例中,可以用指示对象属性描述的其它数据来填充数据对象,例如指示制造具有那些特性(例如,打印材料覆盖表示,规定要施加的打印材料的体积)的对象所用的一种材料或试剂或其组合的数据,或表示至少一种应用于发现合适的打印材料覆盖表示等的变换的映射。

在框108中,生成包括对象的(新)表示的数据。该数据包括与多个位置(可以与提供对象属性描述的位置相同)中的每个关联的数据对象地址,其中数据对象地址与指示用于那一位置的对象属性描述的数据相对应。

在该数据内,例如,如果多个对象位置共享对象属性,则可能所述位置与同一数据对象地址相关联。这可以进一步减少占用的存储空间。

在一些示例中,可能应该一起考虑对象位置。例如,可以有对象属性的特定梯度——例如,一个对象可以旨在具有缓和的颜色变化,或在其至少一个区域内不透明度逐步增加。在对象属性描述能够产生多个打印材料覆盖表示的情况下,例如,可以规定跨此区域使用一致性映射。因此,在一些示例中,生成对象的新表示可以包括确定指示用于多个位置的对象属性描述的数据之间的关联,以及将此关联存储在例如数据对象中或在所生成的对象的表示中。在一些示例中,当确定至打印材料数据的映射时,接着可以使用此关联。

在一些示例中,如现在关于图3和4所描述的,填充数据对象,例如如框106中所述,包括确定包含对象属性体积300、400的数据对象。

在图3的示例中,要表示的对象为单位大小的立方体,给每个[x,y,z]位置分配成比例的rgb值-产生rgb立方体。三属性对象属性体积300提供了红、绿和蓝(rgb)颜色值的表达式。体积300包括多个顶点,各自具有关联的n-元组,其中n为由其表示的对象属性的数目。更具体地,在此示例中,体积300由具有沿各长度的8个单位(因各自颜色被定义为8比特值)和8个顶点的立方体表示。8个顶点各自具有与它相关联的3元组(即n=3)rgb值。体积300被细分为多个棋盘格状的多面体302,其在该图的示例中为四面体,但能够包括任意形状或形式。可以基于与那四面体的顶点相关联的rgb值,内插各四面体302中的颜色(即当显性存储对象属性描述的子集——定义顶点的那些——时,可以由其内插其它对象属性描述)。

对象的几何形状可以由仅为8个顶点所表示的立方体的几何模型表示,而对象属性由分配给立方体的极值顶点的8个rgb值表示。尽管在此示例中颜色是可变的,但在其它示例中可以考虑其它属性或属性组合。

在此示例中,形成数据对象,例如如框106中所述,包括将8个rgb值分配给顶点,以及定义4个四面体的细分曲面(tessellation),以使这些几何四面体中的每个指向4个rgb值的4元组之一,从而定义了rgb立方体的完整范围。

可以通过识别多面体302和多面体302内对象属性描述的重心坐标来表示指示对象属性描述的地址。尽管可以在三维内表示对象几何形状,但几何对象空间、位置和/或其中的子区域可以与对象属性体积300内的位置/区域相关联,从而是n-元组对象属性(可以是显性或内插的)。

存储对象模型的存储器/存储的总量为8个rgb值、4个对象属性四面体、几何描述(在此示例中可以包括4个几何四面体)、几何四面体与立方体的8个顶点中的每个之间的关联。

在图3的示例中,对象中包含各个颜色的完整范围,并且对象的几何形状与体积300的形状相匹配。图4显示了表示数据对象的任意形状的对象属性体积400的另一示例。对象属性体积400表示在它自己的区域上所定义的多个属性值,每个值都是独特(uniquely)表示的(例如,提供相异对象属性的标示的各属性值,或在接收的表示三维对象的数据中描述的相异对象属性集)。在一些示例中,可以在所有位置显性定义对象属性描述。然而,在其它示例中,可以在体积内的一个位置子集、而非所有位置(例如,在顶点)显性地定义对象属性,且中间值可以通过内插恢复。

在一个示例中,体积400由n个顶点和细分曲面定义,以使在那些n个顶点,用它们的细分曲面定义对象属性。中间对象属性描述(即,不处于n个顶点的对象属性描述)可以由内插确定,例如通过确定由n个顶点及其细分曲面所限定的体积400内的重心坐标。

对象的子区域可以与体积400的子区域相关联,例如假如定义了转换行为。

图5显示了对象属性描述与打印材料覆盖表示之间的数据映射的示例。此类数据映射可以在各个阶段进行。例如,数据映射可以在框104之后进行,以使用打印材料覆盖值填充数据对象,否则在框106之后,以使通过将数据对象中相异的对象属性描述映射到打印材料覆盖表示来变换数据对象,或者可以对如框108中形成的三维对象的所生成的表示进行操作,或者基于位置进行,或者作为整体。

因此,图5的流程图可以从框104、106或108开始。在此示例中,在框502中接收打印机能力数据。打印机能力数据可以包括在特定打印装置可用的试剂和/或构造材料的标示,以及在一些示例中可以施加试剂的分辨率。在此类示例中,映射(框504)可以基于打印机能力数据。

例如可以根据将多个对象属性描述关联到多个打印材料覆盖表示的查找表内所存的数据进行映射,这样当使用打印材料覆盖表示中规定的比例生成对象时,看到具有规定属性的对象。在其它示例中,可以分别映射描述内的个体属性。

在一些示例中,如上提及的,映射可以考虑任意创建的位置之间的关系,这样可以进行一致性映射(存在一个以上映射选项)。在此类示例中,每个位置可以具有不仅是到指示对象属性的数据的关联,还可以具有与应该应用的映射相关的其它位置的关联。尤其是,相关联的位置可以识别为属于对象的几何子部分,其可以例如定义为参考三维空间内各自具有其[x,y,z]坐标的4个顶点所定义的元组[i,j,k,l]。此信息可以存作与应用于对象属性的那个相平行的几何细分曲面。

在一个示例中,当将预定的子部分内的位置映射到打印材料覆盖域时,识别元组连同相关联的体积概率转换数据,其可以例如定义或反映对象属性转换或梯度。接着,一致性映射可以用于子部分内的所有位置。此类元组的定义允许在规定的情况下保留特定的几何关系。在一些示例中,此类子部分可以由用户识别,在输入数据中规定,自动确定或以某种其它方式识别。这意味着即使跨对象的此类子区域的对象属性的变化也能够被有效地表示,和/或在使用由对象的表示所生成的控制数据生成的对象中被有效地复制。

映射的结果可以是为各个位置指示要使用的所有打印材料的体积概率(因而打印材料可以指的是可以在要生成的对象中施加在单一打印分辨率位置的试剂和/或构造材料)的数据对象以及它们的结构分布,且还可以包括打印装置控制数据,例如热参数、打印速度参数等。

打印材料覆盖表示值或矢量可以与位置相关联,或通过使用数据标签等被关联到包含对象属性的标示的数据对象。

因此对象的打印材料覆盖表示可以是大小与包含指示对象属性描述的数据的数据对象相同的数据对象。打印材料覆盖表示因此还可以受益于无重复条目(即,无冗余)。在一些实例中,可能单个打印材料覆盖表示应用于多于一个的对象属性描述,在此情况下用于对象属性描述的条目可被认为是不清楚的,且在一些示例中可以合并。

在一些示例中,打印材料覆盖表示可以包括多个用于指定对象属性描述的可能映射。例如,可能能够通过任意一种若干试剂组合实现特定的属性。在此类实例中,多个打印材料覆盖表示或用于那一对象属性描述的映射可以作为元组等存储,意味着它大于对象属性域表示。

在其它示例中,可以使用用于特定的对象属性集的预定控制数据将对象属性描述直接映射到控制数据,而不是将它们映射到打印材料覆盖表示。

图6示出了用于生成控制数据的方法的示例,在此示例中以打印分辨率(即,以用于生成如数据描述的三维对象的打印装置的分辨率)执行该方法。

在框602处,识别处于打印分辨率的空间位置(在此示例中,[x,y,z]位置)。基于该空间位置,发现(或在一些示例中内插)通过映射识别的打印材料覆盖表示(例如mvoc)(框604)。在框606中接收半色调数据。在一个示例中,可以使用三维半色调阈值矩阵,且可以识别与矩阵内的同一[x,y,z]位置相对应的(多个)阈值。然而,在其它示例中,可以以一些其它方式提供半色调数据。

通过将(多个)半色调阈值与打印材料覆盖表示中陈述的体积覆盖数据集比较,生成控制数据(框608)。

如上所述,对于一些对象表示,显性定义对象属性描述的子集(例如,对象属性体积的顶点)。在第一示例中,内插的对象属性描述可以首先在对象属性空间内确定,接着映射到打印材料覆盖表示,例如在逐体素(voxel-by-voxel)或逐位置

(location-by-location)的基础上。在第二示例中,显性定义的对象属性描述子集首先映射到材料打印覆盖表示,进一步映射到由其内插的打印材料覆盖描述。在第一示例中,打印材料覆盖映射的对象属性与内插的对象属性组合一样多,而在第二示例中,映射较少,因而可以更为经济地使用数据存储设施。一些半色调机制,例如错误扩散,可以依赖于内插的打印材料覆盖表示数据的预计算。

图7示出了可用于生成用于制造三维对象的控制数据的处理装置700的示例。此示例中的装置700包括接口702、数据分析器704、存储器706和模型生成器708。

在图7的示例中,表示三维模型对象710的数据包括对象模型数据712和对象属性数据714。对象模型数据712可以定义模型对象710的至少一部分的三维几何模型,包括三维坐标系统内对象的全部或部分的形状与程度,例如对象的实体部分。对象模型数据712可以由计算机辅助设计(cad)应用生成。对象属性数据714定义至少一个用于要生成的三维对象的对象属性。在一个实例中,对象属性数据714可以包括用于要生成的对象的至少一部分的颜色、柔性、弹性、刚性、表面粗糙度、孔隙度、层间强度、密度、导电性等。在一个示例中,它可以包括如关于图2描述的多个对象属性描述数据对象200。对象属性数据714可以为对象的一部分或多个部分定义多个对象属性。

接口702接收表示三维模型对象710的数据712、714。在一些示例中,接口702可以接收对象模型数据712和对象属性数据714作为单一文件;在其它示例中,接口702可以接收部分对象模型数据712和/或对象属性数据714作为多个数据对象,其中对象模型数据712和对象属性数据714跨若干相关联的数据结构分布。在一个示例中,对象模型数据712可以包括在三维(本文也称作[x,y,z])空间内定义的体素。一个给定的体素可以具有相关联的、指示在那个位置是否存在模型对象710的一部分的数据。对象属性数据714可以包括全局及局部对象属性数据,例如如对象属性数据714中定义的某些对象属性值可以与定义该对象的每个体素相关联,和/或某些对象属性值可以与体素集相关联,例如范围从单个体素到与该对象相关联的所有体素。在一个实例中,表示三维对象的数据包括三维对象的模型,其具有在该模型内的每个位置,例如在每个[x,y,z]坐标,规定的至少一个对象属性。

数据分析器704识别相异的对象属性描述,并将这些存储在存储器706内。存储器706包括可编址存储空间,并存有指示相异的对象属性描述的数据。该存储空间因此存有独特(非复制)的对象属性描述(即,无重复或冗余)。在一些示例中,所有存储的相异对象属性描述是显性存储的,每个存于不同的存储器地址。然而,在其它示例中,对象属性描述的子集可以显性保存,而这些值之间的转换可以被定义或是可推导的。例如,数据分析器704可以定义对象属性体积中的顶点,在该体积内用在顶点显性定义的对象属性来表示相异的对象属性描述。数据分析器704可以进一步确定顶点之间的转换,这样能够通过来自为顶点提供保存的描述的值的内插,来恢复提供相异对象属性值描述的全集的中间值。

模型生成器708生成表示对象的数据模型716,该数据模型包括各体素的几何描述与指示数据的位置的存储器地址之间的关联,该数据指示用于那一体素的对象属性描述。在此示例中,对象属性描述本身存储在存储器706内。因此数据模型716可以包括三维对象的几何描述,定义该三维对象内的多个位置,其中每个位置都与可编址存储空间的独特(unique)存储器地址相关联,并且至少一个独特的存储器地址与多个位置相关联。

图8示出了另外的处理装置800,其在一些示例中能够包含在图7的处理装置中。处理装置800包括将指示对象属性描述的数据映射到打印材料覆盖表示的映射模块802,以及由打印材料描述生成控制数据的控制数据模块804。

在此示例中,映射模块802接收存储器704中保存的数据对象,并将其中的每个(独特)条目映射到至少一个打印材料表示,在此示例中,至少一个材料体积覆盖(mvoc)矢量。在一些示例中,如上所述,不是所有的对象属性描述都是显性提供的。在此类示例中,可以通过在映射之前内插显性保存的对象属性描述来确定对象属性描述,和/或可以由确定的为显性定义的对象属性描述生成的打印材料表示来内插打印材料表示。

一个mvoc矢量可以具有多个值,其中每个值定义了三维对象的层的可编址位置中用于各打印材料或各打印材料组合的比例。例如,在具有两种可用的打印材料(例如,试剂)——m1和m2——的增材制造系统中,各打印材料可以独立地沉积在三维对象的层的可编址区域内,在指定的mvoc矢量中可以有22(即4)种比例:第一比例用于m1、无m2;第二比例用于m2、无m1;第三比例用于m1和m2的过沉积(即组合),例如m2沉积在m1之上,或相反情况;第四比例用于无m1和m2。在此情况下,mvoc矢量可以是:[m1,m2,m1m2,z],或具有示例值[0.2,0.2,0.5,0.1]——即在z切片中的指定[x,y]位置,20%m1、无m2,20%m2、无m1,50%m1和m2以及10%空。由于每个值均为比例,且值的集合表示可用的材料组合,因此各矢量中的值集共计为1,即100%。

例如,在试剂有色的实例中,接着可确定mvoc矢量以选择用提供的对象属性,例如提供的rgb值,生成匹配的试剂组合。

在一个具有至少一个存储的半色调阈值矩阵(尺寸与为对象710规定的相同)的实例中,控制数据模块804使用半色调数据对打印材料覆盖表示进行操作。具体地,在此示例中,将打印材料覆盖表示与表示同一三维位置的阈值矩阵的阈值进行比较,以基于模型对象生成用于打印三维对象的控制数据806。控制数据806可以例如为用于平面内像素的离散打印选项集的形式,其中跨该平面的区域的离散值可以表示打印材料覆盖表示中陈述的比例。

本公开中的示例可提供为方法、系统或机器可读指令,例如软件、硬件、固件等的任意组合。此类机器可读指令可以包含在其内或其上具有计算机可读程序代码的计算机可读存储介质(包括但不限于磁盘存储、cd-rom、光存储等)上。

参考根据本公开的示例的方法、设备及系统的流程图和/或框图来描述本公开。尽管上面描述的流程图示出了特定的执行次序,但执行次序可以不同于所描述的。可以将与一个流程图相关的描述的框与另一流程图的那些进行组合。应理解的是,流程图和/或框图中的各流程和/或框,以及流程图和/或框图中流程和/或图的组合,可由机器可读指令实现。

机器可读指令可以例如由通用计算机、专用计算机、嵌入式处理器或其它可编程数据处理设备的处理器执行,以实现说明书和附图中描述的功能。尤其是,处理器或处理装置,诸如处理装置700、800可以执行机器可读指令。因此,所述装置及设备的功能模块可以由执行存储器内存储的机器可读指令的处理器、或根据逻辑电路中嵌入的指令操作的处理器来实现。术语“处理器”可以广义解释为包括cpu、处理单元、

asic、逻辑单元或可编程门阵列等。所述方法及功能模块可以全都由单个处理器执行,或在数个处理器之间划分。

此类机器可读指令还可以存储在计算机可读存储内,所述计算机可读存储能够指导计算机或其它可编程数据处理设备在特定模式中操作。

还可以将此类机器可读指令加载到计算机或其它可编程处理设备上,以使计算机或其它可编程数据处理设备执行一系列操作,以生成计算机实现的处理,因而在计算机或其它可编程设备上执行的指令提供一种用于实现流程图中的流程和/或框图中的框所规定的功能的方法。

进一步地,可以以计算机软件产品的形式实现本文的教导,该计算机软件产品存储在存储介质内,且包括用于使计算机设备实现本公开的示例中所记载的方法的多个指令。

尽管已参考某些示例描述了所述方法、装置及相关方面,但在不背离本公开的精神的情况下,可以进行各种更改、修改、省略和替换。应该注意的是,上面提及的示例说明、而不是限制本文所描述的,且本领域技术人员在不背离所附权利要求的范围的情况下将能够设计许多替换的实施方案。尤其是,来自一个示例的特征或框可以与另一示例的特征/框结合,或被其替换。

词语“包括”不排除存在权利要求中列出的那些元件之外的元件,“一个”或“一种”不排除多个,并且单个处理器或其它单元可以实现权利要求中记载的数个单元的功能。

任意从属权利要求的特征可以与任一独立权利要求或其它从属权利要求的特征结合。

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