三维物体数据 背景技术 [0001] 由增材制造工艺产生的三维物体以逐层的方式形成。在增材制造的一个示例中,物体通过在装置中固化构造材料的层的部分来产生。在示例中,构造材料可以以粉末、流体或薄片材料的形式。预期的固化和/或物理特性可以通过将试剂打印到构造材料的层上来实现。能量可以被施加到层上,并且一旦冷却,其上施加有试剂的构造材料可以聚结并固化。在其他示例中,化学粘合剂可以被用于固化构造材料。在其他示例中,可以通过使用挤出塑料或者喷涂材料作为固化以形成物体的构造材料,来生成三维物体。 [0002] 产生三维物体的一些打印工艺使用由三维物体的模型产生的控制数据。控制数据可以例如指定将试剂或试剂组合施加到构造材料的位置,或者构造材料本身可以被放置的位置、以及要放置的量。 [0003] 控制数据可以由要打印的三维物体的表示而产生。本文中,这样的表示可以被称为三维模型,并且可以被存储为数据文档。控制数据可以被适合的打印装置使用以制作物体。 附图说明 [0004] 为了更加完整地理解,现在结合附图参考以下描述,其中: [0005] 图1是包括物体特性数据转换的方法的示例的流程图; [0006] 图2是包括物体特性数据对象的示例的示意图; [0007] 图3是包括物体特性数据转换的方法的另一个示例的流程图; [0008] 图4是产生用于制作三维物体的控制数据的处理装置的示例的简化示意图; [0009] 图5是存储并处理表示三维物体的数据的装置的示例。 具体实施方式 [0010] 本文描述的一些示例提供用于表示三维物体和/或用于产生可以被用于制作三维物体的控制数据的装置和方法。一些示例允许对具有多个指定物体特性的任意三维内容进行处理并使用以产生三维物体。这些物体特性可以包括例如以下中的任一个或任意组合: 电导率、密度、孔隙率、塑性、硬度、延展性、强度、层间强度和/或外观特性(颜色、透明度、光泽度、表面纹理等)中的任一个或任意组合。 [0011] 在本文的一些示例中,三维空间用词语“体素”来表征,即三维像素,其中每个体素占据离散体积。在对三维物体进行建模的数据中,给定位置上的体素可以具有至少一个特征。例如,体素可以是空的,或者可以具有特定颜色,或者可以表示特定材料或者特定物体特性等。物体的体素可以是相同尺寸,例如与空间中的立方体或其他形状的区域有关,或者尺寸和/或形式可以在物体内改变。 [0012] 在一些示例中,表示三维物体的数据被处理以产生在产生物体的过程中使用的控制数据。 [0013] 在一些示例中,打印材料覆盖规格指定打印材料数据,例如细化可用打印材料(诸如要沉积到构造材料层上的试剂,或者在一些示例中构造材料本身)的量,以及如果需要的话打印材料组合的量。在一些示例中,这可以被指定为成比例的体积覆盖(proportional volume coverage)(例如,构造材料层的区域的X%应当具有施加于其上的试剂Y)。这样的打印材料可以与物体特性有关或被选择为提供物体特性。 [0014] 根据控制数据中的指定,每种打印材料(例如,试剂的液滴)应当被施加的实际位置可以使用半色调技术来确定。 [0015] 例如,物体模型数据内的一组体素可以具有以一组材料体积覆盖(Mvoc)矢量的形式的关联打印材料覆盖规格。在简单情况下,这样的矢量可以指示三维空间的给定区域的X%应当具有施加于此的特定试剂,而(100-X)%应当没有试剂。在其他示例中,材料组合可以被指定。然后,材料体积覆盖矢量提供用于“半色调”处理的输入以产生可以被增材制造系统使用以制作三维物体的控制数据。例如,可以确定,为了制作指定物体特性,构造材料的层(或层的一部分)的25%应当具有施加于此的试剂。例如通过将每个位置与半色调阈值矩阵中提供的阈值相比较,半色调处理确定试剂液滴要掉落的地方以提供25%的覆盖。 [0016] 在一些示例中,表示三维结构或物体的数据被“栅格化”,即被转换为一系列离散位置。栅格化的数据可以处于三维打印装置的可打印分辨率上,控制数据被提供至该三维打印装置。 [0017] 可能是以下情况,在三维数据模型被构建时,要用于打印物体的打印装置至少未根据其能力而被指定。 [0018] 在图1的框102中,表示三维物体的数据被接收,该数据包括指示三维物体的至少一部分的属性(例如,至少一个物理属性或特性)的物体特性数据。在框104中,物体特性数据被转换为具有共同的数据结构的多个设备无关的物体特性数据对象,数据对象的每一个包括指示在共同的数据结构内保存的物体特性的预定集合(共同)中的每一个的值。如本文所用,词语“设备无关”意思是数据对象不针对特定模型产生装置、打印装置或打印产生工作流程来设计。相反,数据对象包含表示预确定的特性的集合的值,该特性可以源自设备的范围、软件包等并可以由设备的范围、软件包等解释。 [0019] 因为物体特性数据是设备无关的,其可以被用作中间表示,以将来自数据源(诸如CAD包、物体分析装置或表示物体的任意其他数据源)范围的数据,(例如,根据特定打印装置重现(reproduce)特定特性的能力)映射到用于特定打印装置的控制数据。在物体特性数据对象用于提供控制数据时,设备无关的数据对象的使用意思是,无论原始数据格式如何,从设备无关的数据对象的映射(例如,查找表等)可以被用于产生用于特定打印设备的控制数据。如果反而使用原始物体模型表示,则从具体表示类型的映射就必须被指定或确定,这可以造成多个映射以支持多个物体模型数据源。类似地,从特定模型数据源到设备无关的数据对象的映射可以在不知道打印装置的知识的情况下作出。 [0020] 在示例中,数据对象的内容与特定模型中指定的特性无关地被指定,和/或与用于根据模型产生物体的打印装置的能力无关地被指定。因此,物体特性数据对象中指定的特性可以与接收的数据中指定的特性相同(但是,在一些示例中可以不同描述),或者物体特性数据对象中指定的特性可以包括与另外的特性有关的值,和/或可以包含与特性的子集有关的值,该特性在接收的数据中指定或源自接收的数据。这允许数据对象与广泛的数据源一起使用并被用于产生用于广泛的打印装置的控制数据。例如,在与用于二维打印的指定打印颜色相比时,在三维打印中,针对模型数据,存在广泛的可能的打印装置能力和广泛的可能的数据规格。如本文所指定的设备无关的数据对象可以允许指定和/或可实现特性的不同集合之间的转换。 [0021] 设备无关的物体特性数据对象200的示例被示意性示出在图2中。在这个示例中,该特性的集合包括表示红色颜色值、绿色颜色值和蓝色颜色值的三个颜色值VR、VG、VB、密度值VD、刚度值VS、电导率值VC和不透明度值VO。可以在数据对象中描述的其他物体特性可以包括以下中的任一个:柔性;弹性;硬度;表面粗糙度;孔隙率;强度;延展性;塑性等。 [0022] 在一些示例中,预确定针对每个特性的值的集合,并且从该集合中取值。例如,可以针对每个特性指定位深度。对于图2中示出的值的集合,位深度可以例如被指定为[8,8, 8,5,4,1,6]。在这样的物体中,使用8比特分辨率来指定颜色值,并且因此颜色值可以为值的集合[0,1,2……254,255]中的任意值。5比特(32级分辨率)被用于指定密度值,因此密度值可以为值的集合[0,1,2,……30,31]中的任意值。4比特(16级分辨率)被用于指定刚度值,1比特(开/关,或[0,1])用于电导率,并且6比特(64级分辨率)用于不透明度。这造成七个特性数据对象的5字节编码。 [0023] 在一些示例中,值的集合可以根据特定单元限定。例如,在RGB值的情况下,RGB值可以根据诸如sRGB的设备无关的颜色限定来识别。在其他示例中,颜色可以根据具体ICC文件限定,或者根据国际照明委员会(CIE)1931XYZ颜色空间来限定,其中三个变量(“X”、“Y”和“Z”或三色刺激值)被用于使颜色模型化;根据CIE1976(L*,a*,b*-CIELAB或'LAB')颜色空间来限定,其中三个变量表示亮度('L')和相对颜色维度('a'和'b');或根据任意其他颜色空间或衍生颜色空间来限定。 [0024] 例如,在简单的情况下,RGB颜色值可以包括三个8比特的值,同样地,每个红色值、绿色值和蓝色值可以在0至255的范围内。密度值VD可以以kg/m3表达,刚度VS以N/m表达,电导率VC以S/m表达,并且不透明度VO作为无量纲光学密度值表示0和1之间的值,该值指定通过材料的指定厚度传输的光与被材料的指定厚度阻挡的光的比率。在一些示例中,除了根据绝对值表达外,特定特性的全部值可以指示范围中的位置。在一些示例中,与数据值中的至少一个的解释有关的数据可以使用数据对象来产生和/或提供。在一些示例中,当数据对象被用于产生控制数据时,特定打印装置可实现的、与特定特性有关的范围可以被考虑并用于确定该范围内的设备有关值,即可由特定打印装置实现的值,其最好地表示设备无关值。在没有单位规格的情况下,还可以使用这种设备有关解释。在与数据值的至少一个的解释有关的数据被提供有数据对象时,这可以被用于产生控制数据。 [0025] 在一些示例中,可以限定默认值。在示例中,只要在接收的物体特性数据的至少一部分中未限定数据特性,默认值可以被使用。默认值可以用户指定的、预确定的或基于接收的模型数据导出。在默认值被使用的情况下,标准化数据对象甚至能够在没有明确限定值的情况下形成,并且因此允许具有一致的数据格式的数据对象由各种各样的模型数据源和格式产生。在一些示例中,默认值可以例如是可用范围中的中点,或者可以根据实际或经济考虑来预确定。例如,拉伸强度或刚度可以鉴于允许物体自身支持或相当稳健的实际最小值,和/或考虑成本而确定。某些默认值可以指定特性不存在(例如,作为默认值,除非电导率被指定在所接收的表示三维物体的数据中,否则电导率可以在数据对象中被设置为取消或0,该电导率可以规定专门试剂的使用),或被避免(例如,因为白色对于复制来说可能是相对昂贵的颜色,并且在白色物体中可以实现的其他特性的组合可能是有限的,所以默认值可能不是白色的,例如中间灰色)。 [0026] 在一些示例中,与编码范围对应的值的范围可以被指定或确定。为了给出特定示例,不透明度(opacity)可以被指定,以使其可以在0.1至1.6的绝对值之间改变,1.6的绝对值可以是针对特定或针对一般的打印装置的密度最高值(例如,该范围可以反映工业标准可实现范围)。最大值和/或最小值可以被用在映射中,以使例如所有规定的0.1或更低的绝对透明度值被映射到0(0是示例的64比特数据值的集合中的最小值),并且1.6或更高的绝对透明度值被映射到63(63是示例的64比特数据值的集合中的最大值)。在示例中,专门规定的最大值或最小值(和/或特定的绝对值,该特定的绝对值可以与与特定特性关联的值的结合中的值的任一个或全部关联)可以被提供有物体模型数据。在其他示例中,范围可以从模型数据内提供的实际值(例如,最高规定的密度可以映射至63,并且最低规定的密度可以映射至0,和/或范围可以被存储)导出。在其他示例中,用于最大值的默认值可以被预先限定或用户指定。允许范围的明确说明允许对特性范围的有效编码,同时允许在可实现范围内的改变。例如,如果意在由特定编码反映的值的范围的解释被固定,则这可以跨越一个太大而不能充分利用的范围,或者无法跨越整个可实现范围,特别是在特性被编码之后,可实现范围应当增加的情况下。 [0027] 在一些示例中,表示三维物体的数据进一步包括限定三维物体的几何图形的物体模型数据。设备无关的数据对象可以被存储为与物体内的物理位置(其可以是体积)相关联,以使每个位置伴随着特性列表。 [0028] 因此,数据对象可以包括设备无关的对象描述中的一部分。因为设备无关的对象描述未被限定为与特定处理或打印装置有关,所以可以被用于针对或通过具有数据结构和打印装置能力的知识(或识别)的任意打印装置来产生控制数据。 [0029] 结合图3的流程图讨论进一步的示例。在示例中,在框302中,接收表示三维物体的数据。数据包括指示三维物体的至少一部分的属性的物体特性数据和限定三维物体的几何图形的物体模型数据。 [0030] 在框304中,物体特性数据被转换为设备无关的物体特性数据对象,其中每个值是来自针对每个物体特性预确定的值的集合中的值,并且未指定的物体特性被分配默认值。 在框306中,指示特定打印装置的能力的打印装置数据被接收。在框308中,基于打印装置数据将物体特性数据对象的集合转换为打印控制数据。 [0031] 例如,特定打印装置可以允许密度控制,同时其他特性被固定,然而另一个可以允许颜色控制,又一个允许密度和电导率控制等。在一些示例中,为了获取打印装置数据,打印装置可以被查询并要求返回其能力。在其他示例中,这个数据可以被预确定,和/或从存储器获取,保存在查找表中等。在其他示例中,打印装置本身可以执行处理。 [0032] 图4示出处理装置400的示例,处理装置400包括接口402、映射模块404和控制数据模块406。 [0033] 接口402接收模型数据408和打印装置能力数据410。在这个示例中,模型数据408表示三维模型物体中的至少一部分,并包括多个物体特性数据对象。每个数据对象具有共同的数据对象结构(例如,诸如图2的数据对象200中示出的数据结构)并表示三维物体中的位置。每个数据对象包括限定在该位置处的三维物体的特性的预定集合中的多个特性值。 [0034] 在示例中,每个数据值限定的特性可以被明确限定。在其他示例中,每个数据值限定的特性可以通过考虑数据形式或数据内容来识别或确定。例如,映射模块402可以基于值所指定的分辨率和具有给定分辨率的值被包含在数据对象内的频率中的至少一个来识别数据对象的值所指定的特性。例如,数据对象的其他未指定的三通道8比特数据部分可以被默认解释为RGB数据。如果存在具有特定位深度的单通道数据,则这个单通道数据可以被当作密度值,并且在没有任何规格的情况下,这里的密度值可以被解释为与打印装置能够提供的密度范围匹配(以使规定值0映射到最小可实现密度等)。其他默认值可以以类似的方式预确定。这允许对甚至未明确限定的输入的处理,如果接收到不完全指定输入,这样可以为中止处理操作提供可供选择的方案。 [0035] 在这个示例中,映射模块404根据打印装置能力数据将至少一个接收的物体特性数据对象映射到打印材料覆盖规格。这种映射可以根据模型物体的栅格化表示而执行。在一些示例中,这个表示可以包括多个平面,每个平面被格栅为离散位置。在一些示例中,平面内的位置是任意的:物体或者存在于一位置并具有关联特性,或者不存在。 [0036] 在一些示例中,基于可由打印装置实现的特性的最大值和最小值、和/或物体特性数据对象内的特性的最大值和最小值,数据对象的至少一个值被映射到打印材料覆盖规格。如上所指出,可能针对特定特性(可以是全部特性)没有指定范围和单位,并且在这样的示例中,数据对象中提供的值可以被当作从0-100%或可以由用户指定的一些其他范围中的范围中的点的指示。100%点可以是特定特性可以针对特定特性(可以被制作的最强烈的红色或最密集构造等)所具有的最大值。0%点可以是可以表示特性不存在(例如,内有导电剂,或者没有使用颜色)的最小值,或者可以指示该值是最低可能值(例如,密度处于最小值)。在数据对象内,最大值可以是数据对象的特定集合中看到的最大值(这可以造成特性被更多样化地表示在打印物体中),或者给定范围的最大值(例如,位深度)。 [0037] 在一些示例中,数据对象的解释被用户确定或控制,该用户可以由选择根据特定特性和/或打印操作限制打印装置的能力。在其他示例中,至少一个特性的范围可以被提供给数据对象的结合的最大值和/或最小值限制或指定。在其他示例中,如上所指出,绝对值(例如在标准化单位中的绝对值)可以与特定特性的值的集合中的值的任一个或每一个相关联。 [0038] 因此,总而言之,在一些示例中,数据值的解释可以取决于以下中的任一个或任意组合:所规定的值的范围,数据对象的集合内的数据值的范围,关于绝对值和数据对象中的值之间的关系的附加信息,打印装置能力,用户指明,默认值。 [0039] 数据对象可以被映射到从材料体积覆盖(Mvoc)矢量。Mvoc矢量可以具有多个值,其中每个值限定在三维物体的层的可寻址位置中的打印材料的每一种或每一种组合的比例。例如,在具有两种可用打印材料(例如,试剂)M1和M2的增材制造系统中,其中每种打印材料可以独立地被沉积在三维物体的层的可寻址区域中,在给定Mvoc中可以存在22(即,四)个比例:没有M2时针对M1的第一比例;没有M1时针对M2的第二比例;针对M1和M2过度沉积(即,组合)时的第三比例(例如,M2沉积在M1上,或者反之亦然);以及针对不存在M1和M2时的第四比例。在这种情况下,用于模型内栅格化层的Mvoc矢量可以是:[M1,M2,M1,M2,Z]或者具有示例值[0.2,0.2,0.5,0.1]—即在层中的给定可寻址位置中,在没有M2的情况下M1被施加的可能性是20%,在没有M1的情况下M2的可能性为20%,M1和M2都施加的可能性是50%,而该位置空的可能性是10%。因为每个值是比例并且值的集合表示可用材料组合,所以每个矢量中的值的集合之和为1或100%。 [0040] 例如,在试剂被着色的情况下,则Mvoc矢量随后可以被确定为选择试剂组合,该试剂组合产生与提供的物体特性值(例如物体特性数据对象中的提供的RGB值)的匹配。在示例中,这种映射可以被保存在查找表等中。 [0041] 在这个示例中,打印装置能力数据410包括至少一种可用打印材料的指示。在其他示例中,打印装置能力数据410可以包括打印分辨率的指示,打印分辨率即物体的几何图形和/或局部物体特性可以被复制的细节水平。在其他示例中,打印装置能力数据410可以包括可用于至少一个物体特性的值的范围的指示。例如,这可以是在特定打印装置上,不可以改变特定参数(例如诸如颜色、电导率或密度的特定特性),而其他特性可以被改变。这样,打印材料覆盖规格可以表示可由打印装置实现的特性,这些特性不同于设备无关的数据对象中指定的那些特性。 [0042] 控制数据模块406用于从打印材料覆盖规格产生控制数据412,控制数据412用于三维物体的制作。在这个示例中,控制数据模块406包括半色调模块414以提供半色调数据。 [0043] 在这个示例中,半色调数据包括阈值的阵列。在一个示例中,阈值用于执行半色调操作,半色调操作将阈值矩阵的值与指示打印材料(诸如试剂或试剂组合)可能性分配的值相比较,在这个示例中,指示打印材料可能性分配的值被表达为Mvoc矢量。这基于阈值选择单个“状态”(可能的材料或材料组合中的一个)。这样的半色调阈值可以根据诸如空白聚类(void-and-cluster)矩阵、误差扩散技术、基于抖动的技术、AM屏幕、簇点类型模式等半色调技术确定。 [0044] 在特定示例中,模型数据包括三维模型对象,三维模型对象包含表示三维模型物体的体素的阵列,每个体素位于唯一的三维位置。体素可以是相同尺寸和/或形式,或者尺寸和/或形式可以改变。每个体素与指定该体素的物体特性的设备无关的物体特性数据对象相关联。针对每个体素,控制数据模块406由指示可用的打印材料的打印装置能力以及在一些示例中打印材料可以被打印装置施加的分辨率来确定表示特性值的打印材料组合。然后,表示三维模型物体的每个体素被映射到打印材料覆盖规格,该打印材料覆盖规格将打印材料指定为在一位置处的可用打印材料的集合的比例。如上所述,打印材料覆盖规格可以被用于产生如上概述的控制数据。 [0045] 在一些示例中,如果打印装置不能提供特定特性或特定特性组合,则可以产生警报并且例如显示给用户或另外递送给用户。在一些示例中,处理或打印操作可以被中止。 [0046] 图5示出与处理器502关联的存储器500。存储器是存储数据的计算机可读介质,该数据由处理器502执行时用于应用程序的访问,该存储器包括包含应用程序使用的信息的数据结构。数据结构包括多个数据对象504。每个数据对象504具有共同数据对象结构,且并表示三维物体的物理特性的集合,其中每个物理特性被指定为的预定的值的集合中的一个。每个值可以包括默认值或被分配的值(其中被分配的值可以基于物体特性数据而分配)。在一个示例中,物体特性包括:至少一种颜色,以及刚度、透明度、电导率和密度中的至少一个。在一些示例中,数据对象504可以具有包括如上关于图2描述的特性中的任一个的数据结构。在一些示例中,每个数据对象504与三维物体内的位置关联。 [0047] 本公开中的示例可以被提供为方法、系统或诸如软件、硬件、固件等的任意组合的机器可读指令。这些机器可读指令可以被包括在其中或其上具有计算机可读程序代码的计算机可读存储介质(包括但不限于光盘存储、CD-ROM、光存储)上。 [0048] 根据本公开的示例,结合方法、设备和系统的流程图和/或框图描述本公开。虽然上面描述的流程图示出执行的具体顺序,但是执行的顺序可以与描述的顺序不同。关于一个流程图描述的框可以与另一个流程图中的框组合。应当理解,流程图和/或框图中的每个流程和/或框、以及流程图和/或框图中的流程和/或图形的组合可以通过机器可读指令来实现。 [0049] 机器可读指令可以例如由通用计算机、专用计算机、嵌入式处理器、或者其他可编程数据处理设备的嵌入式处理器执行,以实现说明书和附图中描述的功能。特别地,处理器或处理装置,诸如处理装置400或处理器502,可以执行机器可读指令。因此,装置和设备的功能模块可以由执行存储在存储器中的机器可读指令的处理器或者根据嵌入在逻辑电路中的指令进行操作的处理器实施。词语“处理器”被宽泛地解释为包括CPU、处理单元、ASIC、逻辑单元或可编程门阵列等。方法和功能模块可以都由单个处理器或分开的几个处理器执行。 [0050] 这种机器可读指令还可以被存储在可以引导计算机或其他可编程数据处理设备以特定模式操作的机器可读存储器中。 [0051] 这种机器可读指令还可以被下载到计算机或其他可编程数据处理设备上,以使计算机或其他可编程数据处理设备执行一系列操作以产生计算机可实施的处理,因此计算机或其他可编程设备上执行的指令提供了实现由流程图中的流程和/或框图中的框规定的功能的手段。 [0052] 进一步,本文的教导可以以计算机软件产品的形式实施,计算机软件产品被存储在存储介质中并且包括用于使计算机设备实现本公开的示例中所述的方法的多个指令。 [0053] 虽然已经参考某些示例描述了方法、装置和相关方面,但是在不脱离本公开的精神的情况下可以进行各种修改、改变、省略和替换。应当注意,上述示例说明而不是限制本文所描述的内容,并且本领域技术人员将能够设计许多替代性实施方式而不脱离所附权利要求的范围。具体而言,来自一个示例的特征或框可以与另一个示例的特征/框组合,或被另一个示例的特征/框组合替代。 [0054] 单词“包括”不排除在权利要求中列出的元件之外的元件的存在,“一”或“一个”不排除多个,并且单个处理器或其它单元可以实现权利要求中叙述的几个单元的功能。 [0055] 任何从属权利要求的特征可以与独立权利要求或其他从属权利要求中的任一个的特征组合。