利用三维半色调处理的结构转让专利

申请号 : CN201580074461.6

文献号 : CN107206676B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 彼得·莫罗维奇贾恩·莫罗维奇

申请人 : 惠普发展公司有限责任合伙企业

摘要 :

本文所述的某些实施例涉及在三维对象的生成中使用三维阈值矩阵。在一种情况下,基于结构体积覆盖表示来为在半色调处理中使用的三维矩阵赋予数据值。在某些所述的情况下,该结构体积覆盖表示定义了可用于生成三维对象的至少两个不同的结构的概率分布。基于结构体积覆盖表示的数据值进行比较。该比较的输出为待赋予所述三维矩阵的数据值。所得的三维矩阵被用于半色调处理操作中,以控制该三维对象中的结构分布。

权利要求 :

1.一种产生用于生成三维对象的控制数据的装置,所述装置包含:

半色调生成器,所述半色调生成器对定义至少一部分的所述三维对象的数据进行半色调处理操作,所述半色调生成器被布置为与三维阈值矩阵联合处理定义所述至少一部分的所述三维对象的所述数据以输出针对至少一种生产材料的离散材料形成指令;以及矩阵生成器,所述矩阵生成器用于产生供所述半色调生成器使用的所述三维阈值矩阵,所述矩阵生成器被布置为:获得参照对应于所述三维对象的至少一个体积元素定义的结构体积覆盖表示,所述结构体积覆盖表示包含定义可用于生成所述三维对象的至少两个不同结构的概率分布的数据值;

将所述结构体积覆盖表示的至少一个所述数据值与预定的混合阈值进行比较;以及基于所述比较,为所述三维阈值矩阵的至少一个对应的体积元素赋予与所述至少两个结构之一相关的数据值。

2.权利要求1所述的装置,

其中所述结构体积覆盖表示包含至少一个结构体积覆盖矢量,所述结构体积覆盖矢量具有对应于所述至少两个不同结构的至少两个矢量分量,所述结构体积覆盖矢量对应于一组体积元素中的至少第一体积元素;且其中所述矩阵生成器被布置为,针对与所述第一体积元素相关的位置,在所述至少两个不同结构中基于确定的过渡行为针对至少两个矢量分量获得数据值,其中所述过渡行为是基于过渡函数确定的,所述过渡函数在所述一组体积元素的至少两个进一步的体积元素的位置之间被预定义。

3.权利要求2所述的装置,其中,所述过渡行为是基于所述第一体积元素的位置和所述至少两个进一步的体积元素的位置之间的确定的距离度量。

4.权利要求1所述的装置,其中,所述矩阵生成器被布置为将所述结构体积覆盖表示的至少一个所述数据值与预定的混合阈值矩阵中的至少一个值进行比较。

5.权利要求4所述的装置,其中,所述预定的混合阈值矩阵与对应于所述至少两个不同结构中每一个的半色调阈值矩阵具有相同的维度和尺寸。

6.权利要求1所述的装置,包含:

沉积机构,所述沉积机构通信连接至所述半色调生成器,以根据所述半色调生成器输出的所述离散材料形成指令来沉积可用的生产材料。

7.权利要求1所述的装置,

其中定义所述三维对象的所述数据包含针对所述三维对象的至少一个体积的至少一个材料体积覆盖矢量,其中,对于可用于生成所述的三维对象的k种材料和所述材料的L个离散材料形成状态,所述材料体积覆盖矢量包含Lk个矢量分量,每个矢量分量具有相关的概率值,其中所述半色调生成器被布置为在所述至少一个材料体积覆盖矢量上进行半色调处理操作,且其中所述离散材料形成指令包含来自一组L*k个可用指令值的生产指令,具有生产分辨率的每一个元素针对所述k种材料中的每一种具有L个材料形成状态指令之一。

8.一种产生用于生成三维对象的三维半色调阈值矩阵的方法,所述方法包括:针对所述三维对象获得结构体积覆盖表示,

所述结构体积覆盖表示包含针对所述三维对象的至少一个体积的结构体积覆盖矢量,所述结构体积覆盖矢量代表至少两个不同矩阵的成比例体积覆盖;以及基于所述结构体积覆盖矢量与预定的混合阈值的比较,为所述三维半色调阈值矩阵的相应体积赋予半色调阈值,所述半色调阈值对应于所述至少两个不同矩阵之一,其中所述三维半色调阈值矩阵可应用于针对至少一部分的所述三维对象的对象定义,以指示生成所述三维对象的所述至少一部分。

9.权利要求8所述的方法,其中,获得结构体积覆盖表示包含基于预定义的过渡函数,针对所述至少一个体积来确定局部过渡行为,其中在至少两个进一步的体积的位置之间预定义所述过渡函数。

10.权利要求8所述的方法,其中,结构体积覆盖表示包含针对至少一个体积,相对于所述三维对象的一组至少两个进一步的体积,来确定一组中心坐标。

11.权利要求8所述的方法,其中,为所述三维半色调阈值的相应体积赋予半色调阈值包含将与所述至少一个体积相关的所述结构体积覆盖矢量与对应于所述至少一个体积的预定的过渡阈值矩阵中的值进行比较。

12.权利要求11所述的方法,其中,所述预定的过渡阈值矩阵与所述至少两个不同矩阵中的每一个具有相等尺寸。

13.权利要求8所述的方法,包括:

获得所述至少一部分的所述三维对象的数字表示;

利用所述三维半色调阈值矩阵对所述数字表示进行半色调处理,以产生用于生成所述至少一部分的所述三维对象的控制数据;以及利用所述产生的控制数据在添加剂制造系统上生成所述至少一部分的所述三维对象。

14.权利要求13所述的方法,

其中所述数字表示包含针对所述三维对象的至少一个体积的至少一个材料体积覆盖矢量,其中,对于可用于生成所述的三维对象的k种材料和所述材料的L个离散材料形成状态,所述材料体积覆盖矢量包含Lk个矢量分量,每个矢量分量具有相关的概率值,其中在所述至少一个材料体积覆盖矢量上进行半色调处理,且其中所述控制数据包含来自一组L*k个可用指令值的离散的生产指令,具有生产分辨率的每一个元素针对所述k种材料中的每一种具有L个材料形成状态指令之一。

15.一种非暂时性机器可读介质,包含有关用于三维半色调处理中以在半色调生成器中使用的电子数据结构的指令,所述指令被配置为:连同三维空间中的多个坐标一起定义的数据值,所述坐标是根据x、y和z维度的网格分辨率来定义的,其中所述数据值包含三维半色调操作的阈值并且代表平行于x和y维度布置的多个z-维度平面,以及其中至少一个数据值包含至少两个不同的预定义空间结构之一的指征,以及基于针对与所述数据值相关的坐标获得的所述至少两个不同的预定义空间结构的概率分布来确定所述指征。

说明书 :

利用三维半色调处理的结构

背景技术

[0001] 已经提出了产生三维对象的装置(包括在市场上被称为“3D打印机”的那些)作为潜在的方便方式来生成三维对象。这些装置通常接收对象模型形式的三维对象的定义。对这种对象模型进行处理以指示该装置利用至少一种生产材料来生成该对象。这些生产材料可以包含生产材料的试剂和粉末物质、加热的聚合物和/或液体溶液的组合。对象模型的处理可以逐层进行。生成具有至少一种性质,例如颜色、机械和/或结构性质的三维对象可能是需要的。对象模型的处理可以基于所装置的类型和/或所采用生产技术而不同。以三维形式产生对象面临着用二维打印装置所不具有的许多挑战。

附图说明

[0002] 根据下文的详细描述并结合附图,本文披露的多个特征将得以显现,该描述和附图均是以举例方式说明本文披露内容的特征,并且其中:
[0003] 图1是示出了根据一个实例的用于生成三维对象的用于产生控制数据的装置的示意图;
[0004] 图2是示出了根据一个实例的用于生成三维对象的装置的示意图;
[0005] 图3是示出了根据一个实例的可用于产生三维阈值矩阵的结构体积覆盖表示的一部分的示意图;
[0006] 图4是示出了根据一个实例的在结构体积覆盖表示的一部分上进行的操作以产生三维矩阵的示意图;
[0007] 图5是示出了根据一个实例的用于产生三维半色调阈值矩阵的方法的流程图;
[0008] 图6是示出了根据一个实例的用于生成三维对象的方法的流程图;
[0009] 图7是示出了根据一个实例的在三维半色调处理中使用的电子数据结构的示意图;以及
[0010] 图8是一组示例性三维半色调矩阵的举例说明。

具体实施方式

[0011] 在三维对象的生成中,例如在所谓的“3D打印”中,存在的挑战是控制所产生的对象的结构。例如,产生具有多种结构特性的对象可能是需要的,其会影响所产生对象的材料特性和/或机械特性,或者受其影响。还希望灵活控制所产生对象的结构。在某些情况下,变化该对象模型的至少一个部分而不需重新设计或重新产生该对象模型可能是需要的。此外,在对象模型的不同部分的不同预定结构之间产生平整的、受控的过渡可能是需要的。例如,可以针对第一对象部分来定义第一结构,并且针对第二对象部分来定义第二结构。对于两个部分之间的过渡区,两个结构的无缝拼接可能是需要的。如所理解的那样,使用常规二维打印时并不存在这样的考虑。
[0012] 本文中所述的某些实例使得能够产生三维矩阵以用于半色调阈值操作中。获得了结构体积覆盖表示。该结构体积覆盖表示参照对应于三维对象的至少一部分的至少一个体积元素来定义。该结构体积覆盖表示包含定义了可用于生成三维对象的至少两个不同结构的概率分布的数据值。该结构体积覆盖表示可以是基于在三维对象的至少两个进一步的体积元素的多个部分之间预定义的过渡函数,例如,结构体积覆盖表示的数据值可以代表根据至少两个所选部分的数据值之间的梯度来确定的中间值。
[0013] 在某些所述的实例中,将结构体积覆盖表示的所述数据值中的至少一个与预定的阈值进行比较。基于这种比较,然后将与该结构中的一个相关的半色调值赋予在半色调阈值操作中使用的三维矩阵的至少一个相应体积元素。因此,在这些实例中的该三维矩阵由这些所赋予的半色调值产生。然后,可将该三维矩阵应用于待生成的对象的数字表示,例如在半色调阈值操作中,以产生用于生成该对象的控制数据。例如,半色调阈值操作的输出可以包含用于添加剂制造系统的沉积或材料形成指令。通过控制用于阈值的三维矩阵的形式,可以控制三维对象的三维结构。此外,通过针对每个体积元素基于可用的预定义结构的概率分布产生三维矩阵,可以以半色调水平操作平整结构混合的机构。在这种情况下,“平整”可被定义为连续变化或接近于连续变化,例如,当随后数据值之间的差低于预定义的阈值时。在这些实例中,可以针对整个三维对象来操作该机构,或者针对三维对象的至少一个过渡区来操作该机构。过渡区可被定义为位于具有不同的预定义结构的至少两个对象部分之间的区域。在该过渡区内,可以通过这些实例中的机构以半色调水平获得结构的平整过渡。
[0014] 本文中所述的某些实例使得能够产生具有期望结构混合的三维对象而不需改变对象处理流水线的实质部分。这些实例还减少了在对象设计期间需要做出的具体选择,例如,当对象投产时,设计的对象的体积或对象模型无需表现出结构的所需混合。这可以通过使得在设计之后对象投产之前在对象处理流水线的阶段做出与对象的结构混合相关的选择来实现,例如,当设计对象被提交为“3D打印任务”时。因此,可以各种不同的结构、子结构和/或结构混合生成相同的对象。用于对象生成的具体结构混合可以是不同的,取决于以下至少之一:预定义的梯度函数、预定义的混合阈值或混合阈值矩阵、以及至少两个预定义结构。在某些情况下,利用基于所需结构混合在生产时间处或附近产生的三维矩阵来对指定对象的体积(体素)所用材料的对象设计的栅格化版本进行半色调处理。
[0015] 图1示出了布置为产生用于生成三维对象的控制数据的装置100的实例。该装置100包含半色调生成器110和矩阵生成器120。该半色调生成器110被布置为接收定义该三维对象的数据130并且输出针对至少一种生产材料的离散指令。这些指令可以包含沉积指令,例如用于将至少一种试剂沉积在粉末基质上或者沉积挤出的聚合物,和/或材料形成或布置指令,例如用于引导激光器件加热液体或固体材料的控制指令。为了产生沉积指令,该半色调生成器110能够联合三维阈值矩阵150一起处理数据130。在某些情况下,其可以包含将数据130的至少一部分与三维阈值矩阵150的相应部分进行比较或者等同操作。在一种情况下,该半色调生成器110能够利用取自对应于该体积的三维阈值矩阵150中的位置的半色调阈值,在与数据130的体积相关的材料-使用值(例如体素)上实施半色调阈值操作。在具有双层沉积机构的添加剂制造系统中,其可以包含“沉积材料”(例如“1”)或“不沉积材料”(例如“0”)形式的输出沉积指令。例如,如果给定体素的材料-使用值为65%且取回的半色调阈值为50%,则由于材料-使用值高于阈值,则会针对给定体素输出“1”的沉积指令。随着在对应于给定体素的输出位置处生产材料的沉积,这会受到驱使。在某些系统中,输出可以包含在生产分辨率下给定体积的三维对象的一组材料形成状态中的一个,例如可利用添加剂制造系统访问的输出对象的体积和其输出材料状态可通过该系统的选择性活动改变。
[0016] 在图1的实例中,该矩阵生成器120能够产生供半色调生成器110使用的三维阈值矩阵150。为了这样做,矩阵生成器120能够获得结构体积覆盖表示160。参照对应于三维对象的至少一个体积元素来定义该结构体积覆盖表示160。例如,可以结合该三维对象的数字表示的至少一个体素来定义该结构体积覆盖表示160。此外,该结构体积覆盖表示160包含定义了可用于生成三维对象的至少两个不同结构的概率分布的数据值。该矩阵生成器120能够将结构体积覆盖表示160的至少一个数据值与预定的阈值进行比较。该矩阵生成器120进一步被布置为基于该比较将与至少两个结构之一的相关的数据值赋予三维阈值矩阵150的至少一个相应体积元素。以这种方式,选择三维阈值矩阵150的取值,其中可通过半色调生成器110应用该三维阈值矩阵150以通过控制材料形成指令140(例如离散材料形成指令)的产生来影响特定结构。因此,根据材料形成指令140由添加剂制造系统产生的对象展示出取决于三维阈值矩阵150的值的结构特征。
[0017] 根据不同的实例,至少两个不同结构可以包含两个不同的半色调阈值矩阵,例如至少两个不同的三维阈值矩阵。这些阈值矩阵可以是基于如下阈值矩阵中的至少之一:空隙和聚类(void-and-cluster)矩阵;调幅(AM)矩阵,例如聚类点矩阵;有机散点型矩阵;和具有预定义颜色的噪声矩阵,例如具有不均匀随机噪声的白噪声矩阵或绿噪声矩阵(例如利用中频噪声分量)。根据一个实例,不同的结构可以是基于不同单元尺寸的散点。在一种情况下,每一种结构会受到相应半色调阈值矩阵取值的影响。在一个实例中,对应于每一种结构的半色调阈值矩阵可以各自具有相同维度和/或尺寸。
[0018] 在一个实例中,结构体积覆盖表示160可以包含至少一个结构体积覆盖矢量。该结构体积覆盖矢量可以具有对应于至少两个不同结构的至少两个矢量分量。在一种情况下,该结构体积覆盖矢量可以代表至少两个不同结构矩阵的成比例体积覆盖。例如,在一个简单的例子中,结构体积覆盖矢量可以包含两个矢量分量[S1,S2],其中每个矢量分量为从0至1的概率值(或者0%至100%的百分比)。在这种情况下,S1可以涉及具有给定半色调阈值矩阵SM1的第一结构。类似地,S2可以涉及具有给定半色调阈值矩阵SM2的第二结构。该结构体积覆盖矢量可以对应于一组体积元素中的至少一个第一体积元素,例如根据特定三维分辨率的一组体素中的一个体素。
[0019] 在一种情况下,矩阵生成器120可以被布置为基于在至少两个不同结构之中确定的过渡行为获得结构体积覆盖矢量中的至少两个矢量分量的数据值。该过渡行为可被确定为与给定体积元素相关的位置。在一个实例中,可以基于在至少两个进一步的体积元素的位置之间预定义的过渡函数来确定该过渡行为。这些进一步的体积元素可以包含三维对象的顶点和/或三维对象的对象属性几何形状中的特定点。可将该过渡行为施加于与每一结构相关的半色调阈值矩阵的取值,例如上文中讨论的SM1和SM2的取值。在一种情况下,该过渡行为可以代表半色调阈值矩阵的顶点的取值之间的梯度。根据一个实例,该过渡行为可以基于给定体积元素的位置距该至少两个进一步的体积元素的位置的确定距离。在一种情况下,该过渡行为可以是基于相对于一组该至少两个进一步的体积元素的一组重心坐标。在一个实例中,该过渡行为可以是基于相对于一组该四个进一步的体积元素的一组重心坐标,例如三维形式的单纯形(simplex)。在其他的情况下,该过渡行为可以被函数限定,例如基于立方体顶点之间的对数或线性过渡函数。
[0020] 在一种情况下,可将过渡函数应用于与至少两个进一步的体积元素相关的数据值,该至少两个进一步的体积元素本身就是结构体积覆盖的指征。在一种情况下,这可以是仅包含至少两个不同结构矩阵之一的结构体积覆盖表示。换言之,至少两个进一步的体积元素的结构体积覆盖矢量可以指示可用结构之一的100%覆盖和其余可用结构的0%覆盖。在一个实例中,一个进一步的体积元素的结构体积覆盖矢量可以指示第一可用结构的
100%覆盖,而另一进一步的体积元素的结构体积覆盖矢量可以指示第二可用结构的100%覆盖。因此,该至少两个进一步的体积元素可以代表在它们之间存在过渡区的极端位置。在每一极端位置处,该可用结构之一可被定义为100%体积覆盖。过渡区中的体积元素针对至少两个可用的结构可以具有包含非零概率的结构体积覆盖。
[0021] 在一个实例中,以类似于其中将二维图像分为被称为“像素”的单位面积类似的方式,每一个结构体积覆盖矢量可以与一系列被称作“体素”的单位体积相关。在一种情况下,立方体积可以与体素的每个高度、宽度和深度的常用值(common value)一起使用。在其他的情况下,可以定义自定义单位体积或体素,例如当单位体积不是立方的和/或具有彼此不同的高度、宽度和深度的取值(尽管每一个体素与以栅格表示的其他体素具有相同高度、宽度和深度)。在某些情况下,该单位体积或体素可以是非标准的或者自定义的三维形状,例如体素可以基于德劳内镶嵌(Delaunay tessellations)(例如填充对象的四面体)或任何其他空间填充多面体。在这种情况下,该结构体积覆盖表示可以被储存为一组数组(例如以阵列形式的结构),该数组的一个分量代表三维形式的体素坐标(例如质心或底角)而该数组的另外分量代表结构体积覆盖矢量。
[0022] 根据某些实例,矩阵生成器120可被布置为将结构体积覆盖表示160的至少一个数据值与预定的混合阈值矩阵中的至少一个值进行比较。在一种情况下,该预定的混合阈值矩阵可以与对应于至少两个不同结构中每一个的半色调阈值矩阵具有相同维度和/或尺寸。在一个实例中,该预定的混合阈值矩阵中的至少之一和至少两个半色调阈值矩阵可以是可重复的(tileable)。在一种情况下,混合阈值矩阵可以具有不同的粒度。在一个实例中,混合阈值矩阵可以与生成阶段体素具有相同的分辨率,例如对于相对高的-分辨率过渡。在另外的实例中,混合阈值矩阵较粗糙的,例如低于生产分辨率的分辨率。在这种情况下,单值可以替换在给定体积(例如立方体体积)内变化的一组取值。在这种情况下,单值可以对应于立方体乘以用于生产的半色调阈值矩阵的分辨率。为了举例说明该实例,使处于生产分辨率的三维对象具有128×128×128的尺寸。为了在两种结构之间完成混合,可以定义32×32×32混合矩阵,以使得在该特定情况下,在4×4×4打印-分辨率体素的块上可以使用相同的混合值。换言之,可将相同的混合值应用于4×4×4立方体的每一个体素,而不是可能具有不同的值的每一个体素,就像匹配128×128×128打印-分辨率的混合矩阵的情况那样。
[0023] 在一种实施方式中,数据130包含针对三维对象的至少一个体积的至少一个材料体积覆盖矢量。材料体积覆盖矢量代表可用于生成三维对象的添加剂制造系统的材料的概率分布。在一种情况下,每个矢量代表可用于生成三维对象的材料和所述材料的组合的成比例体积覆盖。例如,对于可用于生成三维对象的k种材料和所述材料的L个离散材料形成状态,该材料覆盖矢量包含Lk个矢量分量,每一个矢量分量均具有相关的概率值。在这种情况下,该离散的沉积指令包含来自一组L*k个可用指令值的生产指令,具有生产分辨率的每一个元素针对所述k种材料中的每一种具有L个材料形成状态指令之一。由材料体积覆盖矢量定义的该材料和材料组合可以与大量不同的材料类型相关,例如构造材料、整理材料、支持或支架材料、试剂和粉末,包括单独使用的材料、联合使用的材料和省略任意材料。
[0024] 为了解释材料体积覆盖矢量的分量,可以考虑一个简单举例。在该简单举例中,装置能够使用两种材料来产生三维对象:M1和M2。它们可以是被沉积在基材或台板上的流体构造材料,例如排出的或喷射的熔融聚合物,或者其可以包含两种可沉积的彩色试剂,其被沉积在粉末化构造材料的至少一个层上。在后一种情况下,在所制得的三维对象中,每一种“材料”可以对应于可沉积试剂和粉末化构造材料的固化组合。在前一种情况下,在所制得的三维对象中,每一种“材料”可以对应于排出的或喷射的聚合物的凝固部分。在任意情况下,每一种“材料”可通过添加剂制造装置来沉积,以产生输出三维对象的所定义的体积(例如以生产分辨率)。
[0025] 在这个简单举例中,如果添加剂制造装置能够沉积离散量的每一种材料,例如在二元沉积中,则存在四中不同的材料组合状态:第一状态用于M1而无M2的沉积;第二状态用于M2而无M1的沉积;第三状态用于M1和M2二者的沉积,例如M2沉积在M1之上或反之亦然;以及第四状态用于既无M1也无M2的沉积,例如“空白”(Z)或抑制剂。在这种情况下,该材料体积覆盖矢量具有四个矢量分量:[M1,M2,M1M2,Z]。在最后一个矢量分量的情况下,“空白”或“Z”可以代表“空”或处理层中不具有材料,例如如果将试剂沉积在构造材料的层上,则其可以代表不存在用于处理层的构造材料,即使该构造材料直至已经生成了完整的对象才能被除去。
[0026] 在另外的实例中,双-材料系统在[x,y,z]处可以具有材料体积覆盖矢量(MVoc)[M1:0.2,M2:0.1,M1M2:0.5,Z:0.2]且阈值为0.5([0至1]浮点数值范围),已经确立了MVoc和阈值对应于相同的空间位置[x,y,z]。在这个实例中,第一步是将MVoc解释为从cMVoc[M1:0.2,M2:0.1,M1M2:0.5,Z:0.2]到cMVoc[M1:0.2,M2:0.3,M1M2:0.8,Z:1.0]的累积的概率分布cMVoc,从而得到对应于M1的区间[0至0.2]、对应于M2的(0.2至0.3]、对应于M1M2的区间(0.3至0.8]以及对应于Z的区间(0.8至1.0],其中“(“代表开区间而“]”代表闭区间。然后将阈值(例如0.5)与这些区间进行比较。在这种具体情况下,0.5落入区间(0.3to 0.8]中,使得在位置[x,y,z]处选择M1M2。
[0027] 在一种情况下,装置100可以作为添加剂制造系统的一部分来实现,例如可以包含“3D打印机”电子器件或部分嵌入式控制器。在其他情况下,装置100的至少一个部分可以作为储存在非暂时性存储介质上的可执行代码来实现,其包括指令并且当该指令由至少一个处理器执行时会使得处理器实施本文所述的装置100的至少一个部分的功能性。这种可执行代码可以另外地从至少一个易失性或非易失性存储器存取数据,例如随机存取存储器、只读存储器和/或硬盘驱动器。该至少一个处理器可以形成添加剂制造系统的部分(例如“3D打印机”的计算模块)和/或可以形成通信连接至添加剂制造系统的计算机设备的部分(例如被构造为控制安装在计算机设备上的“3D打印机”和/或“3D打印驱动器”的台式电脑)。在一种情况下,该计算机设备可以包含通信连接至添加剂制造系统的服务器;例如使用者从移动计算设备提交定义三维对象的数据130以用于“在云端”通过装置100进行处理,然后该装置100将材料形成指令140经由网络通信信道发送至添加剂制造系统。在一种情况下,该装置100的至少一个部分可以作为至少一个应用型专用集成电路(ASIC)实现。ASIC可以是标准的、完全定制的或部分定制的。在一个实例中,ASIC可以具有结构化设计。该ASIC可以包含至少一个微处理器和/或至少一个存储块。在另外的实例中,ASIC可以包含至少一个门阵列,例如域可编程门阵列。该域可编程门阵列可以包含可编程逻辑块的阵列和可重构互连的层次。在特定的实例中,可编程逻辑块的阵列可以包含存储元件,例如触发器。在一个实例中,该ASIC可被布置成接收定义三维对象的数据130。根据一个实例,该ASIC可以通信连接至至少一个中央处理器。可以通过至少一个中央处理器来存取数据130。该至少一个中央处理器可以包含通用中央处理器和专用中央处理器中的至少一个。根据某些实例,该ASIC和/或中央处理器可被布置为操作半色调生成器110和矩阵生成器120中的至少一个。
[0028] 现将参照图2来描述布置为根据材料形成指令140来生成三维对象装置的一个实例。图2示出了布置为生成三维对象260的装置200的实例。该装置200能够接收三维对象的数据210,其可以包含如下文所述的材料形成指令140。在一种情况下,装置200的至少一个可以作为储存在非暂时性存储介质上的可执行代码来实现,其包括指令并且当该指令由至少一个处理器执行时会使得处理器实施本文所述的装置200的至少一个部分的功能性。装置200被示出和描述以用于更好地理解当前所述的实例;可以替代性地使用具有本文所述结构体积覆盖表示的不同形式和/或利用不同技术的其他装置。
[0029] 在图2中,装置200包含沉积控制器220和存储器225。该沉积控制器220可以包含形成嵌入式计算装置的部分的至少一个处理器,例如适用于控制添加剂制造系统。存储器225可以包含易失性和/或非易失性存储器,例如非暂时性存储介质,其被布置为存储计算机程序代码,例如以固件的形式。固件可以包含机器可读指令和/或可执行代码,其包含至少一个处理器的指令。该沉积控制器220通信连接至布置为构成三维对象的装置的方面(aspects)。其包含沉积机构230。该沉积机构230能够沉积生产材料以产生三维对象。在当前情况下,沉积机构包含基材供给机构235和试剂喷射机构240、245。在其他情况下,沉积机构230可以包含更少的或额外的部件,例如基材供给机构可以与试剂喷射机构分别提供或被省略,或者其他部件,例如沉积机构230可以包含聚合物挤出机构。在图2的示例性实例中,该试剂喷射机构240、245包含两个部件:第一部件用于提供第一试剂(例如上文所述的材料M1)而第二部件用于提供第二试剂(例如上文所述的材料M2)。本实例中存在两种材料是为了容易地解释,但也可以提供任意数目的材料。试剂形式的类似材料仅仅是处于举例的目的进行描述。基材供给机构235能够提供至少一个基材层,在该层上通过试剂喷射机构240、245来沉积可用于生产的材料以生成三维对象260。在当前情况下,该材料包含施加于粉末基材的试剂,其中试剂和粉末的组合,接着进行固化处理,形成对象的部分。然而,其他实施方式也是可能的,例如可将材料沉积形成部分的对象,例如按照上文讨论的聚合物的情况。在图2的实例中,三维对象260在台板250上逐层构造。图2中所示出的方面和部件的布置并不是限制性的;每个装置的精确布置将根据所实施的生产技术和装置的模型而变化。
[0030] 在图2的实例中,沉积控制器220被构造为处理和/或另外地利用数据210来控制沉积机构230的至少一个部件。该沉积控制器220可以控制基材供给机构235和试剂喷射机构240、245中的至少一个。例如,可以通过沉积控制器220来使用数据中的离散的材料形成指令以控制试剂喷射机构中的喷嘴。在一种实施方式中,装置200可被布置为使用分别由试剂喷射机构240、245的部件提供的凝聚试剂和凝聚改性剂。这些试剂使得三维对象具有不同的材料特性。它们可以与至少一种有色粉末状基材材料组合使用,例如利用喷墨机构来施加至沉积的粉末层,以产生具有不同材料特性的多色对象。如果可以使用多种粉末状基材材料,则在某些情况下,其也可以形成材料体积覆盖矢量的“材料”的部分。在这些情况下,可以通过将至少凝聚试剂和凝聚改性剂沉积在基材材料的层上,例如形成z-平面分割的粉末或其他材料的层,之后通过施加能量来粘合材料(例如红外或紫外光),来构造所产生的对象。例如,基材供给机构235和试剂喷射机构240、245中的至少一个可相对于台板250移动,例如在x、y和z中至少之一的方向上(其中对于图2,y轴指向纸张内)。基材供给机构235,试剂喷射机构240、245和台板250中的至少之一可以是可移动的,在沉积控制器220的控制下可实现这种移动。另外,也可以在固化的和/或未固化的层上沉积至少一层油墨,其中这些油墨也形成材料体积覆盖矢量的“材料”的部分。在其他的实施方式中,除此之外,该装置可以包含选择性激光烧结系统、立体光刻系统、喷墨系统、熔融沉积模拟系统、任意三维打印系统、喷墨沉积系统和分层对象制造系统的部分。它们包括直接沉积材料的装置,而不是所述那些使用各种不同试剂的装置。
[0031] 在一种情况下,可将装置100和沉积控制器220的功能性组合于一个嵌入式系统,其能够接收定义三维对象的数据130,或可用于产生它的数据,并且由此控制该装置200。这可能是因为“独立(stand alone)”装置能够接收数据210,例如通过物理传输和/或在网络上,并产生对象。例如,可将这种装置通信连接至能够将包含对象定义或可用于产生对象定义的数据的“打印任务”发送至二维打印机形式的装置的计算机设备。
[0032] 图3示意性地示出了根据一个实例的三维对象体积的结构体积覆盖矢量的表示300。对于体积,多个独立的预定义的结构表示是可用的,包括至少第一结构表示310和第二结构表示320。可以另外地使用进一步的结构表示,直至包括第N结构表示330。在一种情况下,每一个可用的结构表示可以具有用于针对给定体积进行半色调处理操作的相应概率。
在这种情况下,该相应概率由取值a1、a2、…、aN给定。例如,结构表示可以在特定的半色调阈值矩阵中体现。在图3的实例中,可以存在N个不同的半色调阈值矩阵。在这种情况下,取值a1代表使用第一结构表示310的概率,取值a2代表使用第二结构表示320的概率;等等直至使用代表第N结构表示330的取值aN。每个结构表示可以是独立的,例如其可以作为包含阈值的单独数据结构被储存。根据另外的情况,在半色调处理操作期间a1、a2、…、aN可以是由每一相应结构表示代表的给定体积的比例的取值指征。可将取值a1、a2、…、aN中的至少之一合并以形成至少部分的结构体积覆盖矢量340。在一个实例中,可将所有的取值a1、a2、…、aN组合以形成结构体积覆盖矢量340。可将形成结构体积覆盖矢量340的部分的取值a1、a2、…、aN各项加和达到统一。在一个实例中,取值a1、a2、…、aN可以来自于概率分布,其可以是连续表示的。在进一步的实例中,可基于预定义的过渡函数来确定取值a1、a2、…、aN。根据某些实例,该结构体积覆盖矢量340可以代表连续概率分布,例如作为特定的量化值。
[0033] 根据图3中所示出的实例,结构体积覆盖矢量340形成至少部分的该结构体积覆盖表示350。在一个实例中,该结构体积覆盖表示可以包含单个结构体积覆盖矢量340。在另外的实例中,该结构体积覆盖表示可以包含多个结构体积覆盖矢量340。形成结构体积覆盖表示350的部分的结构体积覆盖矢量340的数目可以对应于针对三维对象所定义的体积的数目。例如,可以针对三维对象的栅格化数字表示中的多个体素中的每一个来定义结构体积覆盖矢量。在另外的情况下,可以与三维对象的各自多个体积相关地来定义多个结构体积覆盖矢量,例如该三维对象的不同部分的表示。在后一种情况下,体积元素可以被几何定义,例如定义为由于多个点包围的体积。根据一个实例,除了至少一个结构体积覆盖矢量340之外,该结构体积覆盖表示350可以包含其他的信息、数据和/或表示。
[0034] 图4示出了根据一个实例在结构体积覆盖表示410的一部分上实施的操作400以产生三维矩阵的示意性表示。该结构体积覆盖表示410包含至少一个结构体积覆盖矢量420。该结构体积覆盖矢量420具有N个分量,每一个均对应于与N个结构矩阵之一相关的概率ai,如根据图3中所示的实例中所描述的。结构体积覆盖矢量420由矩阵生成器430获得。该矩阵生成器430将至少部分的结构体积覆盖矢量的与预定义的阈值进行比较。基于所述比较,将与N个结构矩阵之一相关的取值440赋予至三维矩阵。
[0035] 在特定的实例中,可以针对由矩阵生成器430获得的每一个结构体积覆盖矢量为三维矩阵赋值,例如所得的三维半色调阈值矩阵,例如可以与该结构体积覆盖表示相同的分辨率产生图1中的150。在其他的情况下,可以以不同于结构体积覆盖表示的分辨率产生所得的三维半色调阈值矩阵,例如通过将基于单个结构体积覆盖矢量产生的值映射至所得三维半色调阈值矩阵中的多个体积或者通过针对多个结构体积覆盖矢量组合取值。
[0036] 图5示出了根据一个实例的在三维对象的生成中使用的用于生成三维半色调阈值矩阵的方法500。该方法可以通过装置100和沉积控制器220中的任一种,通过另外的添加剂制造系统或通过布置为控制添加剂制造系统的计算机设备来应用。在块510中,获得了三维对象的结构体积覆盖表示。该结构体积覆盖表示包含三维对象的至少一个体积的结构体积覆盖矢量。该结构体积覆盖矢量代表至少两个不同结构矩阵的成比例体积覆盖。在块520中,将半色调阈值赋予至三维半色调阈值矩阵的对应体积。该半色调阈值对应于至少两个不同结构矩阵之一,例如可以包含来自至少两个不同结构矩阵之一的值。基于结构体积覆盖矢量与预定的混合阈值的比较来赋予该半色调阈值。来自方法500的所得的三维半色调阈值矩阵可应用于三维对象的对象定义,以指示三维对象的生成,例如通过半色调处理三维对象的数字对象表示。尤其是,所赋予的半色调阈值可用于应用于对应该三维对象的一个层的数字表示的一部分。
[0037] 在一种情况下,方法500包含针对三维对象获得前述数字表示;利用三维半色调阈值矩阵来半色调处理该数字表示以产生用于生成该三维对象的控制数据;以及利用所产生的控制数据在添加剂制造系统上产生该三维对象。在这种情况下,可以在设计阶段之后打印阶段之前实施该半色调处理,例如接近生产处理流水线的末端,或者在生产处理流水线的晚期。此外,针对不同的所需结构、子结构和/或结构混合可以差异化地产生三维半色调阈值矩阵,而无需改变三维对象的数字表示。这使得能够灵活地设计三维对象并且能够在生产时间附近进行结构选择。在一种情况下,方法500的至少一个部分可以通过储存在非暂时性存储介质上的可执行代码来实现,其包括指令,并且当该指令由至少一个处理器执行时会使得处理器实施本文所述的方法500的至少一个部分的功能性。在另外的情况下,可以通过至少一个ASIC来实施方法500的至少一个部分。该ASIC可以是标准的、完全定制的或部分定制的。在一个实例中,ASIC可以具有结构化设计。该ASIC可以包含至少一个微处理器和/或至少一个存储块。在另外的实例中,ASIC可以包含至少一个门阵列,例如域可编程门阵列。该域可编程门阵列可以包含可编程逻辑块的阵列和可重构互连的层次。在特定的实例中,可编程逻辑块的阵列可以包含存储元件,例如触发器。在一个实例中,ASIC可被布置为在块510处获得结构体积覆盖表示。根据一个实例,该ASIC可以通信连接至至少一个中央处理器。可以通过至少一个中央处理器在块520处为该半色调阈值赋值。该至少一个中央处理器可以包含通用中央处理器和专用中央处理器中的至少一个。
[0038] 图6示出了根据一个实例的在三维对象的生成中使用的用于产生三维半色调阈值矩阵的方法600。该方法可以通过装置100和沉积控制器220中的任一种,通过另外的添加剂制造系统或通过布置为控制添加剂制造系统的计算机设备来应用。该方法始于针对三维对象的数字表示,例如其可以在预处理步骤中获得。该数字表示可以包含针对三维对象的至少一个体积的至少一个材料体积覆盖矢量。在块610中,选择三维对象的给定体积并且获得针对该给定体积的局部过渡行为。在一种情况下,可针对该数字表示的每一定义体积重复块610至块650,例如针对每一输入体素。根据一个实例,局部过渡行为可以是基于预定义的过渡函数。这个函数可以在被选择性应用于包含矩阵取值的数据的计算机程序代码和/或处理电子器件中体现。该预定义的过渡函数可以在至少两个进一步的体积的位置之间,例如在对象的三维空间中的至少两个点之间被预定义。在一个实例中,该预定义的过渡函数可以是对数函数、多项式函数或指数函数。在另外的实例中,该预定义的过渡函数可以是各种函数的组合。在特定的实例中,该局部过渡行为可以是基于空间划分。在一个这样的实例中,该局部过渡行为可以是基于具有线性四面体插值的空间划分。在某些情况下,该局部过渡行为可以包含应用特定的计算机程序代码和/或处理电子器件。
[0039] 在块620中,针对三维对象获得了结构体积覆盖表示。该结构体积覆盖表示可以是基于在块610所获得的局部过渡行为。例如,可以针对多个体素的每一个获得局部过渡行为并且这可以被用于针对多个体素的每一个产生结构体积覆盖矢量(“SVoc”)取值。在图6的实例中,在块620获得的结构体积覆盖表示可以是基于针对相对于一组至少两个进一步的体积的特定给定体积确定的一组重心坐标,即,三维空间中的位置。在一个实例中,该结构体积覆盖表示可以是基于针对相对于一组四个进一步的体积的给定体积确定的一组重心坐标。该四个进一步的体积可以是三维简单形的顶点的表示。在另外的实例中,该进一步的体积可以是相对于三维简单形的顶点的面和或边的表示。该结构体积覆盖表示包含针对至少一个体积的结构体积覆盖矢量,其代表至少两个不同矩阵的成比例体积覆盖。一个实例中,该结构体积覆盖矢量可以包含一组概率,对应于该至少两个结构阈值矩阵之一的每一个概率可用于针对三维对象生成进行半色调操作。在一种情况下,结构体积覆盖矢量的取值可以基于在至少两个进一步的体积处的至少两个不同结构矩阵的取值之间的梯度来生成。换言之,该至少两个进一步的体积可被认为是结构绝对性(structural absolutes),在它们之间存在过渡区。例如,如果四个不同的可用的结构的四个结构矩阵(SMi)表示和局部过渡行为被定义为具有线性四面体插值的空间划分,则对于定位[x,y,z],结构体积覆盖矢量在结构划分中可被计算为重心坐标[a1,a2,a3,a4],以使得针对结构体积覆盖矢量的分量的取值为[S1:a1,S2:a2,S3:a3,S4:a4],其中分量S1至S4涉及各个矩阵SM1至SM4。
[0040] 结构划分可以被认为是其顶点与结构矩阵相关的空间位置的几何划分。对于示例性举例,使得存在待施加至立方对象的两个结构矩阵(SM1和SM2)。在这两个结构矩阵之一的八个立方体顶点处可以明确地定义为具有100%覆盖(或100%概率)。例如,SM1可以在顶点[0 0 0]、[0 1 0]、[1 0 0]和[1 1 0](例如立方体的底面)处具有100%覆盖,而SM2可以在顶点[0 0 1]、[0 1 1]、[1 0 1]和[1 1 1](例如立方体的顶面)处具有100%覆盖。对于这个空间可产生三角划分,产生结构划分(例如四面体化),其中在每一种情况下顶点中的至少一个来自不同于另外三个。例如,可以产生四面体,以使得[0 0 0]、[1 0 0]、[1 0 1]和[1 1 0]为其顶点,在该情况下,三个顶点使用SM1而一个顶点使用SM2。可以借助于重心坐标来计算前述结构划分(例如四面体)中的任意点,其将通过半色调处理对象的SM1和SM2来指示各个覆盖。换言之,结构划分可被认为是结构体积覆盖被定义处的定位的几何划分,从而可以借助于插值来计算中间结构体积覆盖。
[0041] 在块630中,将确定的结构体积覆盖矢量与预定的混合阈值进行比较以确定用于三维半色调阈值矩阵的取值。在一个实例中,该预定的混合阈值可以是基于预定的过渡阈值矩阵。因此,可将与至少一个体积相关的结构体积覆盖矢量与预定的过渡阈值矩阵中的取值进行比较,其中该预定的过渡阈值矩阵可被定义和/或预处理为对应于定义了结构体积覆盖表示的分辨率的分辨率,例如以使得可以基于特定的三维坐标([xc,yc,zc])取回适当的值。在一种情况下,该预定的过渡阈值矩阵可以与至少两个不同结构矩阵中的每一个具有相同等级。在图6所示的实例中,使得具有两个可用的结构矩阵(SM1和SM2),每一个具有不同的半色调阈值。在这种情况下,该结构体积覆盖矢量可被表示为[S1:a1,S2:a2],其中a1和a2可以是分别与使用SM1和SM2相关的概率的指征,并且S1和S2可以表示不同的矢量分量。在这种情况下,可以将预定的混合阈值和/或预定的过渡阈值矩阵中的取值与块630中的取值a1和a2进行比较。正如能够理解的,在某些情况下,概率值也可以被间接或者相对地定义,例如前述的结构体积覆盖矢量可被替代性地表示为[S1:a1,S2:(1-a1)],因为与第二结构矩阵SM2相关的概率a2可被定义为1-a1,其是与第一结构矩阵SM1相关的概率。在这些情况下,在块630中,可将该预定的混合阈值和/或预定的过渡阈值矩阵中的取值与单个取值a1进行比较。在两种情况下,在图6的实例中,如果预定的混合阈值和/或预定的过渡阈值矩阵中的取值落入第一范围内,例如0至a1之间,则在块640中将对应于第一结构的半色调阈值,例如结构矩阵SM1在坐标[xc,yc,zc]处的值,赋予至三维半色调阈值矩阵的体积。该三维半色调阈值矩阵的体积可以对应于与用于比较的该结构体积覆盖矢量相关的体积(例如可以由两个矩阵中的坐标[xc,yc,zc]来定义该体积)。在块630中,如果预定的混合阈值和/或预定的过渡阈值矩阵中的取值落入第二范围,例如a1至1之间,则在块650将对应于第二结构的半色调阈值,例如结构矩阵SM2在坐标[xc,yc,zc]处的取值,赋予至三维半色调阈值矩阵的体积。
[0042] 在其他的实例中,可以使用多于两个不同的结构矩阵。在一种情况下,可以使用四个结构矩阵。在这种情况下,该结构体积覆盖矢量可由[S1:a1,S2:a2,S2:a3,S4:a4](或[S1:a1,S2:a2,S3:a3,S4:(1-a1-a2-a3)])来表示。在这种情况下,如果预定的混合阈值落入第一范围,例如0至a1之间,则可将对应于第一结构的半色调阈值,例如结构矩阵SM1,赋予至三维半色调阈值矩阵的体积。如果预定的混合阈值落入第二范围,例如a1至a1+a2之间,则可将对应于第二结构的半色调阈值,例如结构矩阵SM2,赋予至三维半色调阈值矩阵的体积。如果预定的混合阈值落入第三范围,例如a1+a2至a1+a2+a3之间,则可将对应于第三结构的半色调阈值,例如结构矩阵SM3,赋予的至三维半色调阈值矩阵的体积。最后,如果预定的混合阈值落入第四范围,例如a1+a2+a3至1之间,则可将对应于第四结构的半色调阈值,例如结构矩阵SM4,赋予的至三维半色调阈值矩阵的体积。通常,对于N个可用的结构矩阵,可以使用一组至少N-1个概率值,将范围0至1之间的范围分割为N个区间,每一个结构矩阵针对一个区间。
在一个实例中,可以针对至少一个体积产生N个可用的结构矩阵的累积概率分布。在该实例中,可将预定的混合阈值和/或预定的过渡阈值矩阵的取值与累积概率分布进行比较,以确定哪个半色调阈值可以适合于被赋予至三维半色调阈值矩阵的相应体积。
[0043] 可针对多个体素中的每一个重复块610至块650,以产生具有每一个体素的阈值的完整三维半色调阈值矩阵。在这个实例中,在块660中,利用所产生的三维半色调阈值矩阵基于在块640和块650中所赋予的半色调阈值对三维对象的数字表示进行半色调处理。该半色调处理操作产生用于生成三维对象的控制数据。在块670,利用所产生的控制数据在添加剂制造系统上生成三维对象。
[0044] 在一种情况下,三维对象的数字表示可以至少来自于以基于矢量的格式接收的三维对象模型数据,例如数据来自STereoLithography“.stl”文件。在某些情况下,其可被转化为预定的栅格分辨率。基于矢量的格式利用所定义的几何模型代表三维对象,例如多边形的网孔和/或三维形状模型的组合。例如,“.stl”文件可以包含在三个维度中的一列顶点的形式的矢量表示,连同三角剖分或三个顶点之间关联的形式的表面划分。该栅格表示可以包含多个定义的单位体素或定制体素,例如至少一个尺寸的定义体积。
[0045] 图7示出了根据一个实例在三维半色调处理中使用的电子数据结构700。该电子数据结构700可被储存在非暂时性计算机可读存储介质中,例如易失性存储器、非易失性存储器以及磁存储器或固态存储器,以及其他存储介质。该非暂时性计算机可读存储介质可被布置为存储计算机程序代码,例如以固件的形式。固件可以包含机器可读指令和/或包括指令的可执行代码。在图7中,该电子数据结构700包含连同三维空间中的多个坐标720一起定义的数据值710。如所示出的,在x、y和z维度上根据网格分辨率定义坐标,例如可以包含根据x、y和z维度的每一个中的预定分辨率或一组离散值定义的体素的中心或角。在图7中,数据值710包含用于三维半色调操作的阈值。其为布置为平行于x和y维度的多个z-维度平面的表示,例如图7中的组730、740和750所示的。组730具有第一常用z坐标值(“0”);组740具有第二常用z坐标值(“1”);且组750具有第三常用z坐标值(“2”)。这可以对于多个z-层重复。数据值710中的至少一个包含至少两个不同的预定义空间结构之一的指征。该指征基于针对与所述数据值710有关的坐标的至少两个预定义空间结构的概率分布来确定。在图7所示的实例中,组730中的坐标分别具有空间结构“1”、“1”和“2”的数据值指征。组740中的坐标分别具有结构“2”、“1”和“1”的数据值指征。如此处示出的,不需要为每个坐标明确地赋予与每一空间结构相关的阈值数据值;而是,可以使用引用或索引来使用该值。此处,值为“1”可以指示在给定坐标720处将从结构矩阵SM1取回半色调阈值,而值为“2”可以指示在给定坐标720处将从结构矩阵SM2取回半色调阈值。因此,图7的电子数据结构700可被用于存储三维半色调阈值矩阵,以用于图1的半色调生成器110使用或者在图5的方法中使用。
[0046] 示出了图7举例,并且可以使用其他格式来存数电子数据结构的数据值。例如,电子数据结构700的紧凑表示可以替代性地包含:三维半色调阈值矩阵的宽度、深度和高度的定义;横跨矩阵的指示顺序;以及包含阈值的数据值710的序列。这不要求多个坐标720;它们可以通过其他指示参数被隐含编码。
[0047] 图8示出了可以利用本文所述的实例制造的三维半色调矩阵810、820和830的一系列实例。例如,三维半色调矩阵可以包含图1中的三维阈值矩阵150的多个版本。三维半色调矩阵810、820和830的每个实例包含两个不同结构840和850的混合或掺混。第一结构840包含在三个维度上分布的二维蓝噪声半色调矩阵。第二结构850包含在三个维度上定义的蓝噪声接种的有机晶格(blue-noise-seeded organic lattice)(Hart 10-3)。通过各自的三维半色调阈值矩阵来定义两种结构的每一种。在附图的右下方示出了定义第二结构850的三维半色调阈值矩阵860的实例。图中上方的三维半色调矩阵810和820的两个实例利用立方距离函数沿着z-轴具有过渡。三维半色调矩阵810的实例使用白噪声混合阈值矩阵,而三维半色调矩阵820的实例使用蓝噪声混合阈值矩阵。三维半色调矩阵830的实例示出了混合,例如过渡函数(其性质上为斜线),其中相同蓝噪声混合阈值矩阵用作三维半色调矩阵820的实例。
[0048] 本文所述的某些系统部件和方法可以通过可存储在非暂时性存储介质上计算机程序代码的方式来实施。该计算机程序代码可以通过包含至少一个处理器的控制系统来实施,该处理器能够从计算机可读存储介质取回数据。该控制系统可以包含部分的对象生产系统,例如添加剂制造系统。该计算机可读存储介质可以包含一组存储于其上的计算机可读指令。该至少一个处理器可被构造为将指令加载至用于处理的存储器中。该指令被布置以使得至少一个处理器实施一系列动作。该指令可指示图5的方法500和/或本文中所述任何其他块或工艺。该非暂时性存储介质能够是任意介质,其能够包含、存储或保持指令执行系统使用的或者与指令执行系统有关的程序和数据。该机器可读媒介能够包含许多物理介质中的任一种,例如电介质、磁介质、光学介质、电磁介质或半导体介质。稳定机器可读媒介的更多具体实例包括,但不限于,硬盘驱动器、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器、或便携式光盘。
[0049] 本文中所述的某些实例使得三维对象的数字表示(例如三维栅格表示)能够以产生三维对象中的多个结构的掺混或混合的方式被半色调处理,其中该掺混或混合可被看作“平整”,即,不连续性可以低于具体的阈值。这导致具有不同结构性质的三维对象以最小化不连续性的方式,例如在对象不同的部分或体积之间,构造上的突然变化。这是通过提供用于产生三维阈值矩阵的装置和方法来实现的,该三维阈值矩阵可被应用于数字表示。获得了结构体积覆盖表示,其包含针对三维对象的至少一个体积元素定义至少两个不同结构的概率分布的数据值。该结构体积覆盖表示可以基于在三维对象的至少两个进一步的体积元素的位置之间预定义的过渡函数。将结构体积覆盖表示的所述数据值中的至少之一与预定的阈值进行比较。基于这种比较,将与该结构之一相关的半色调值赋予至三维矩阵的至少一个相应体积元素。通过使用该结构体积覆盖表示,可以半色调水平应用可应用于任意数目预定义结构的单个机构,而不需运算成本高昂的子结构的设计阶段修改。某些实例也使得能够以运算有效并且可以平行进行的方式向三维对象的产生施加结构控制。通过利用结构体积覆盖表示,可将单独的半色调结构分类应用于对象的不同部分,以提供结构特性的有效编码。通过利用本文所述的某些实例,这种编码进一步使得能够以连续方式控制材料结构。例如,对象的一个部分可以包含在三个维度上分布的二维蓝噪声半色调矩阵,而对象的另外部分可以包含在三个维度上定义的蓝噪声接种的有机晶格;因此,本文所述的实例可以用于在对象的不同结构之间提供过渡。在特定的实例中,通过定义梯度或过渡函数并且然后通过应用特定的混合阈值矩阵来实现两种不同的结构的混合;例如,可将它们定义为待生产的对象(和/或所述对象的部分)的输入。在特定的实例中,该梯度或过渡函数被用于定义结构体积覆盖表示,然后在类似于半色调处理的操作中对其进行处理以产生与对象相关的半色调处理材料使用取值的三维阈值矩阵。通过进行这种混合,可将几何形状(例如由混合阈值矩阵或阈值定义的)从梯度几何形状割裂开来,例如在由过渡函数生成的结构体积覆盖矢量中表示的。
[0050] 本文所述的某些实例使得待生成的三维对象具有明确受控混合的多个结构。通过使用基于半色调处理的结构控制机构,所述的实例改变了用于生成三维对象的半色调输出,例如在添加剂制造系统中。尽管在某些情况下为了容易解释,已经描述了使用单一生产材料,但本文所述的实例可以扩展至多种材料,例如用多种生产材料,包括生产材料的组合。
[0051] 已经做出了前述描述来举例说明和描述本文所述的基本原则的实例。这种描述并不是意在穷尽或者将这些原则限制为所记载的任意精确形式。根据上述教导可以进行许多改变和变化。结合一个实例所描述的技术、功能和方法可以用于其他所述实例中,例如通过应用披露内容的相关部分。