三维物体子结构的制作方法

文档序号:16506210发布日期:2019-01-05 09:03阅读:220来源:国知局
三维物体子结构的制作方法

通过增材制造工艺生成的三维物体可以以逐层的方式形成。在增材制造的一个示例中,通过固化构造材料层的部分来生成物体。在示例中,构造材料可以是粉末、液体或片材的形式。在一些系统中,可以通过将试剂打印到构造材料层上来实现期望的固化和/或物理属性。可以将能量施加到该层,并且其上施加有试剂的构造材料可以在冷却时聚结和结合。在其他示例中,可以通过使用挤出塑料或喷涂材料作为固化以形成物体的构造材料来生成三维物体。

用于生成三维物体的一些打印过程利用根据三维物体的模型生成的控制数据。例如,该控制数据可以指明将试剂施加到构造材料的位置,或者放置构造材料本身的位置,以及要放置的量。

附图说明

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

图1是用于生成中间子结构的示例性处理装置的简化示意图;

图2a-2d、3a-3b和4a-4b示出了确定中间子结构的示例中的各阶段;

图5是用于生成制造三维物体所用的控制数据的处理装置的示例的简化示意图;

图6是用于生成中间子结构的方法的示例;

图7是用于生成制造三维物体所用的控制数据的方法的示例;

图8a-8c示出了组合两个三维子结构的示例;并且

图9是与机器可读介质相关联的处理器的示例。

具体实施方式

本文描述的一些示例提供了用于生成可用于制作三维物体的控制数据的装置和方法。一些示例允许具有各种指定物体属性的任意三维内容被处理并用于生成三维物体。这些物体属性可包括外观属性(颜色、透明度、光泽度等)、电导率、密度、孔隙率和/或诸如强度的机械属性,并且不同的物体部分可包括不同的物体属性。

在本文的一些示例中,三维空间的特征在于“体素”,即三维像素,其中每个体素表示离散体积。在对三维物体进行建模的数据中,给定位置处的体素可具有至少一个特征。例如,它可以是空的,或者可以具有特定颜色,表示特定材料,和/或特定物体属性等。表示物体的体素可以具有相同的形状(例如,立方体或四面体),或者可以在形状和/或尺寸上不同。体素可以对应于三维物体的一区域,其是增材制造中的可单独寻址的区域。在可以通过将试剂打印到构造材料层上实现预期的固化和/或物理属性以形成物体切片的一些示例中,体素尺寸可以由构造材料层的厚度以及可用试剂单独寻址的层的表面积来限定。在一些上下文中,体素可以是定义物体模型、物体或物体生成数据的分辨率。

在一些示例中,对表示三维物体的数据进行处理,以生成要在生成物体时使用的控制数据。

在一些示例中,材料体积覆盖表示定义了打印材料数据,例如详细说明打印材料(诸如要沉积到构造材料层上的试剂,或者在一些示例中,构造材料本身)的量,以及打印材料的组合的量(在适用的情况下)。在一些示例中,这可以被指定为比例体积覆盖(例如,构造材料层的区域的x%应该被施加试剂y)。这种打印材料可以关于或被选择为提供物体属性,诸如颜色、透明度、柔软度、弹性、硬度、表面粗糙度、孔隙率、电导率、层间强度和密度等。

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

例如,物体模型数据内的一组体素可具有相关联的一组材料体积覆盖矢量。在一个简单的情况下,这种矢量可以指示三维空间的给定区域的x%应该被施加特定试剂,而(100-x)%应该没有试剂。然后,材料体积覆盖表示可以为“半色调”处理提供输入,以生成可由增材制造系统使用以制作三维物体的控制数据。例如,可以确定的是,为了产生指定的物体属性,25%的构造材料层(或层的一部分)应该被施加试剂。半色调处理例如通过将每个位置与半色调阈值矩阵中提供的阈值进行比较来确定试剂滴落下的位置,以便提供25%的覆盖率。

在一些示例中,表示三维结构或物体的数据被“栅格化”,即在一些示例中被逐层地转换为一系列离散位置。栅格化数据的分辨率可以是可被提供控制数据的三维打印装置的可打印分辨率。

在本文的一些示例中,控制数据被生成为使得根据该数据生成的物体具有至少一个子结构。例如,物体可以打算具有开放的网状结构,这可以使得其具有轻质和/或抗冲击性和/或减少材料使用。术语“子结构”被用于区分物体模型的结构或形态。因此,尽管可以例如在数据中将物体指定或描述为具有至少一个实心部分,但是可以在实心部分上施加子结构,使得在所生成的物体中,该部分至少部分地具有网状结构。

子结构可以与至少一个属性相关联。在一些示例中,第一子结构可以提供第一属性或者与第一属性相关联——例如特定的强度、回弹性、密度等(或其特定组合)——而第二子结构可以针对那些属性中的一个或组合提供不同的值或者提供不同的属性。在一些示例中,可以是物体的第一部分具有第一属性和/或属性值,而物体的第二部分具有第二属性和/或属性值。在这种示例中,可以存在物体的过渡区域,在其中可以确定第一子结构如何与第二子结构(或任何数量的子结构)接合,例如,没有不适当的中断。在本文的示例中,可以通过使用至少一个中间子结构来提供这种过渡区域。在其他示例中,虽然多个子结构可以被明确地定义并且与属性相关联,但是物体仍可以具有中间属性。在这种示例中,子结构可以被“内插”为两个预先定义的子结构的中间物,例如以包括是预先定义的子结构中每一个的属性的平均值的属性值。通过以这种方式组合子结构,可以精确地控制物体属性(其可以包括诸如重心的属性)。

图1是处理装置100的示例,处理装置100可以是用于定义中间子结构的处理装置。处理装置100包括子结构模块102,其用于定义三维物体的子结构。子结构模块102包括加权模块104和混合模块106。

子结构模块102可以基于与多个不同子结构相关的数据来定义中间子结构。在一些示例中,与子结构中的至少一个相关的数据可以是表示明确的、完全定义的三维模型的数据,例如被定义为矢量对象。在另一示例中,与子结构中的至少一个相关的数据可以是数学或算法数据,例如作为计算机可读指令,其在被执行时可以构造或生成子结构的表示。

每个子结构可以例如包括网状或晶格结构。以体素考虑时,这种子结构占据的物理空间可以包括相对大比例的未占据的或空的体素。以二进制数据考虑时,数据可以包括比指示被占据空间的比特更大比例的指示空的空间的比特。每个子结构可以是连续的规则结构或者不规则(例如,树枝状或血管状)结构,连续的规则结构诸如网格或由填充多面体或棱柱的空间形成的三维晶格(其可以形成例如由链接例如多面体或棱柱的顶点的条状结构构成的三维网格的规则结构,或者其可以包括填充的和空的多面体的混合)。每个结构可以是一致的,或者其体积可以变化。在一些示例中,子结构可以包括可拼贴的元素,使得该元素可以被拼贴以形成任意大的体积。

在一些示例中,与子结构相关的数据可以包括半色调数据。例如,数据可以包括与多个位置(例如,多个体素)中的每一个相关存储的半色调阈值,其中数值指示在该位置处存在材料。然而,在其他示例中,可以使用二进制数据来定义子结构。例如,数据可以包括与多个位置中的每一个相关存储的比特,即“0”或“1”,以指示在该位置处不存在或存在结构。在其他示例中,这种二进制数据可以从半色调数据(其中半色调数据可以在子结构不存在时为空,并且在子结构存在时存在)导出。

子结构可以以任何方式不同。例如,子结构可以在以下中的至少一个方面是不同的:尺度(例如,第一和第二子结构都可以包括立方晶格,但是不同之处在于一个由比另一个更大的立方体形成)、拼贴类型(例如,第一子结构可以是立方晶格,第二子结构可以是蜂窝晶格)、元素尺寸(例如,第一子结构可以具有第一直径的条状元素,第二子结构可以具有不同直径的条状元素)、形态(例如,基于多边形以几何方式定义的,或例如基于仿生学具有血管或树状子结构)、目的(例如,功能或美学)等。

加权模块104被设置为将相对权重应用于与子结构中的每一个有关的数据。例如,可以是中间或混合子结构被形成为较第二子结构更接近第一子结构。在这种示例中,中间子结构可以具有四倍于来自第二子结构的来自第一子结构的贡献。在这种示例中,第一子结构的权重可以是80%,第二子结构的权重可以是20%。三个子结构可以由x%、y%和z%的权重组合,其中x+y+z=100,对于任意数量的原始子结构依此类推。

混合模块106被设置为混合与子结构相关的数据,其可以根据它们的权重进行混合。在一些示例中,混合模块106可以执行与有关子结构的加权后数据相对应的体素值的逐个体素的组合。实际上,数据可以用栅格化层表示,每个栅格化层对应于要形成的物体的切片,并且混合模块106可以对表示第一子结构的层中给定x-y位置处的像素的加权后值与表示至少一个其他子结构的层中相同x-y位置处的像素的加权后值求和。在一些示例中,混合模块106将阈值应用于确定的值以返回层中的每个像素的二进制值。

图2a和图2b分别表示第一子结构200和第二子结构202的二维切片的二进制位图。在以下示例中,组合了两个不同的子结构,但是其他示例中,这可以是任意数量。在该示例中,第一子结构200包括圆形特征,而第二子结构具有雪茄形特征。这些特征可以包括例如用于构成晶格的条状元素的横截面。

图2c示出叠加的这些图,分别给予80%和20%的权重,并且在该示例中,已经被5×5像素(在x-y平面中,在该示例中为二进制位图平面)卷积核模糊或卷积。如下面进一步阐述的,卷积核的使用促进了不同子结构之间的交联。

应注意的是,这些特征现在包含阴影,而不是黑色和白色。通常,阴影越暗,像素的值越低(在0到1的范围内)。在图2c中,来自第二子结构(具有较低权重)的特征比来自第一子结构的特征更暗。这说明第一子结构的二进制值1现在表示为0.8,而来自第二子结构202的二进制1现在表示为0.2。此外,圆形和雪茄形的特征被模糊,这增大了它们的尺寸,但边缘颜色更暗。这是模糊处理的结果。考虑像素在加权之前被模糊的示例,标记了子结构特征的内边界的像素与该特征外部的像素值(二进制值0)组合,以将其值从1减小到0和1之间的较低值,而标记了子结构特征的外边界的像素与该特征内部的像素值(二进制值1)组合,以将其值从0增大到0和1之间的较高值。

可以注意到,两个几何形状在相对小的区域上重合。模糊操作扩展了重叠区域,从而促进了交联。在重叠区域中,被模糊的第一子结构200和第二子结构202的逐个像素的相加导致了高值,其可以接近或等于1,因此表示为亮部分。

在使用模糊或卷积核的一些示例中,可以基于子结构,例如基于最小的元素尺寸来选择核大小。在一些示例中,子结构本身和/或核可以基于可用的物体生成装置的类型或其分辨率。

在一些示例中,这种模糊核可以仅应用于特征重叠或者彼此接近(例如,在核的大小内,因此在该示例中在彼此的10个像素内)的区域。处理一些但不是全部的像素可能会减少数据处理。另外,在各个特征彼此远离的区域中进行模糊不会促进交联,但是可能导致增加材料(包括如果熔融则可以回收的打印剂和构造材料两者)的使用,因此,可以通过避免在不会导致子结构之间的交联的区域中使用核来减少材料的使用。但是,在过渡区域中增加材料的使用可以增强过渡的平滑性和该区域中子结构的强度。

在使用的情况下,模糊可以分别应用于每个子结构,或者应用于子结构的加权混合。实际上,前一种选择可能在计算上不那么复杂,因为它涉及单个卷积运算而不是两个(或n个,如果n个子结构被混合)运算。

因此,图2c示出了基于第一子结构200和第二子结构202应用卷积和加权(例如,使用加权模块104)的示例组合输出的示意性表示。

图2d示出了混合处理的结果。在该示例中,混合包括将阈值应用于每个卷积的加权的子结构。可以基于卷积核大小来选择阈值。核大小实际上确定了值的量化。对二进制位图运行2×2×2的核大小可导致在0和1之间的82(64)个可能值。随着核大小的增加,可能值的数量也会增加。同样地,随着核的大小增加,受其影响的区域(即“模糊”的程度)也增加。这两个因素可能会影响所选的阈值。例如,对于2×2×2核,阈值0.5会具有与对较大核(例如,4×4×4=642=4096个可能的级别)应用相同阈值不同的效果。在该示例中,应用了大约0.7的阈值。对于给定的核大小,较高的阈值将导致子结构的结构元素更厚,而较低的阈值则更忠实于原始几何形状。这在该示例中提供了二进制结果。

如在图2c的示例中,基于80%至20%的混合进行混合,圆形特征的存在占主导地位,而第二子结构的雪茄线特征几乎不可见——与圆形特征的位置重叠的那些可感知为圆形周边的凸起,而没有重叠的那些则根本不明显。由于模糊意味着原始圆周之外的区域被赋予超过在混合处理中应用的阈值的值,因此圆形特征略微被放大。

图3a、3b、4a和4b示出了第一子结构和第二子结构之间的不同权重的效果。图3a表示第一子结构200和第二子结构202的叠加,每个子结构具有应用于其上的模糊核,并且每个子结构的权重为50%。图3b示出在应用约0.5的阈值之后的混合结果。两个子结构在混合结果中都很明显。这两个子结构的元素的大小都略有减小,并且在它们相遇的区域有凸起。

图4a表示第一子结构200和第二子结构202的叠加,每个子结构都具有应用于其上的模糊核。在该示例中,第一子结构的权重为20%,第二子结构的权重为0.2。图4b示出在应用约0.7的阈值之后的混合结果。两个子结构在混合结果中都明显,但雪茄形元素占主导地位,圆形的尺寸被减小。不与第二子结构的元素重叠的第一子结构的元素未在混合结果中表示。

可以注意到,较薄的雪茄形元素可能在其整个区域上受模糊核的影响,而圆形可以包括不受影响的区域(例如,中心区域)。

当中间子结构要在子结构之间形成过渡区域时,可以定义多个中间子结构。不同中间子结构的数量可以基于以下中的任意一个或任意组合来确定:可以发生过渡的物体区域的厚度(例如可以是设计考虑因素)、打印分辨率、期望的过渡的精细程度等。在一些示例中,可以以第一分辨率(其可以例如是最精细的分辨率)确定中间子结构,然后可以对其进行处理以确定需要其他分辨率。这类似于颜色分离,其中从红色到绿色的过渡发生在10个像素上:确定最多10个不同的rgb值。在一些示例中,中间值(或者,返回到本示例,子结构)的数量可以由编码的比特深度(或装置的分辨率)来确定。

图5示出了处理装置500的另一示例。除了子结构模块102包括如关于图1所述的加权模块104和混合模块106之外,处理装置500还包括卷积模块504、映射模块506和半色调模块508。

处理装置500被设置为例如经由接口接收表示三维模型物体的数据。在该示例中,表示三维模型物体510的数据包括物体模型数据512和物体属性数据514。物体模型数据512可以定义模型物体510的至少一部分的三维模型。在图5中,物体510是简单的立方体,但是应当理解,物体可以具有其他更复杂的形态。模型物体510可以以三维坐标系统定义物体的全部或一部分的形状和范围,例如,物体的实心部分。物体模型数据512可以由计算机辅助设计(cad)应用程序生成。物体属性数据514定义要生成的三维物体的至少一个物体属性。在一种情况下,物体属性数据514可以包括要生成的物体的至少一部分的颜色、柔软度、弹性、硬度、表面粗糙度、孔隙率、层间强度、密度、电导率等。例如,可以针对要生成的整个物体定义物体属性数据514,例如全局属性数据,或者针对要生成的物体的一个或多个部分定义物体属性数据514,例如局部属性数据。物体属性数据514可以用于针对物体的一部分或多个部分定义多个物体属性。

在一些示例中,处理装置500可以接收作为单个文件的物体模型数据512和物体属性数据514;在其他示例中,处理装置500可以接收作为多个数据对象的物体模型数据512和/或物体属性数据514的各部分,其中物体模型数据512和物体属性数据514分布在多个相关联的数据结构上。在一个示例中,物体模型数据512可以包括在三维(在此也称为[x,y,z])空间中定义的体素。给定体素可以具有相关联的指示模型物体510的一部分是否存在于该位置的数据。如上所述,物体属性数据514可以包括全局和局部物体属性数据,例如,在物体属性数据514中定义的特定物体属性值可以与定义物体的每个体素相关联,和/或特定物体属性值可以与一组体素相关联,一组体素的范围例如从单个体素到与物体相关联的所有体素。在一种情况下,表示三维物体的数据包括三维物体的模型,其具有在模型内的每个位置(例如,在每个[x,y,z]坐标)处指定的至少一个物体属性。

处理装置500还可以例如经由接口接收表示或关于多个子结构的数据。

在一些示例中,至少物体模型数据512可以被处理以生成三维物体的栅格化表示。在一个示例中,可以生成并栅格化三维物体的模型的平行平面的切片。每个切片可以与增材制造系统中构造材料的相应层的一部分相关。在使用三坐标系例如使用[x,y,z]坐标的三维空间中,这些平行平面可以是平行于x和y轴(或xy平面)的z切片平面。每个z切片可以包括模型的具有共同的z坐标并且在x和y维度上延伸的一个或多个部分。z切片的数量可以取决于z维度中的细节的分辨率和/或构造材料的层的输出分辨率。

在该示例中包括子结构模块102的一部分的卷积模块504用于将卷积核应用于与每个子结构相关的数据。可以在应用卷积核之前组合与子结构相关的数据(例如,使用以上所述的混合模块106),或者可以使用卷积核单独地处理与每个子结构相关的数据。该数据可以是定义子结构的数据。在其他示例中,定义子结构的数据可能已经被处理,例如在应用卷积核之前由加权模块104对其进行加权。在定义子结构的数据被提供为半色调数据的示例中,可以从其导出二进制数据,并且可以将卷积核应用于该二进制数据。

在一些示例中,卷积核是模糊核。在以三个维度考虑子结构的示例中,卷积核例如是三维的球形的核。例如,核可以是5×5×5体素的量级(在体素可以是物体生成过程中的最小可寻址区域的示例中,核可以是要在物体生成中形成的层,或者可以是以任意三维(例如[x,y,z]空间)定义的体素)。模糊核可以例如将高斯函数应用于每个体素,从而确定该体素和附近(即,在核半径内)体素的值的平均值,其中归属于核的权重随着距离而减小。在其他示例中,可以使用其他模糊核。

混合模块106和卷积模块504的动作促进交联,即子结构的元素将倾向于合并。这在中间子结构用于形成过渡物体部分的至少一部分的示例中可以增强子结构之间的平滑过渡。

映射模块506被设置成将接收的数据映射到与给定位置处的物体属性数据相关的体积覆盖表示。在一个示例中,映射模块506可以接收栅格物体。这些可以逐个接收(例如,以表示物体的高度上升的顺序)或作为集合接收(例如,模型物体的所有切片)。在一个示例中,映射模块506将物体属性映射到材料体积覆盖(mvoc)矢量。在一些示例中,映射模块可以直接从接口接收物体模型数据512和物体属性数据514。

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切片中的给定区域上,20%的位置将接收m1并且没有m2,20%的位置将接收m2并且没有m1,50%的位置将接收m1和m2,10%没有试剂。由于每个值都是一个比例,并且该组值表示可用的材料组合,因此每个矢量中值的集合的总和为1或100%。

例如,在试剂被着色的情况下,mvoc矢量可以被确定为生成可生成与所提供的物体属性(例如,提供的rgb值)的匹配的选择试剂组合。这种匹配可能隐含在映射中。

被组合的子结构和/或中间子结构可包括任何结构,例如规则的三维晶格(例如基于任何空间填充的多面体的蜂窝结构,该空间填充的多面体例如是立方体、或八面体等)、空间填充的多面体或仿生学形态(例如血管或树枝状设计)等。这些子结构类型中的每一个可以称为子结构模型。在一些示例中,可以通过具有例如在矢量域完整描述其几何形状的和/或使用cad程序设计的输入三维模型来明确地定义子结构模型。在其他示例中,子结构模型的结构可以隐含地或解析地定义为例如基于规则的晶格、空间填充的多面体或分形,或者根据机器可读指令生成。在一些示例中,子结构模型可以由可拼贴元素形成,使得一结构(例如,立方体结构、或八面体结构、或树枝状元素)在形成子结构模型时可以重复。这种可拼贴元素可以用作种子,以便为要生成的物体提供子结构。在一些示例中,子结构模块102可以拼贴例如立方体或其他形状的基本元素或种子,以提供子结构。在一些示例中,子结构模块102可以生成至少一个子结构模型的栅格化表示。

例如,子结构可以包括堆叠的立方体网格或立方晶格结构,其在其占据的体积中相对稀疏。子结构模块102可以有效地复制或拼贴表示多个立方体或立方体网格的数据,直到子结构占据与模型物体510相同的体积。在其他示例中,可以复制和拼贴其它形状或形态以形成子结构,或子结构模型可以例如从空间填充的多面体整体“生长”,例如以填充可以与模型物体510的体积相同的预定体积。

半色调模块508被设置为提供半色调阈值数据,并且在该示例中用以输出控制数据516。在该示例中,控制数据516可以在基于输入物体数据512、514生成物体时使用,其中在物体的至少一部分上附加有中间子结构。

在一些示例中,处理装置500可以将至少一个子结构和半色调应用于体积覆盖表示,以生成用于制作具有子结构的三维物体的控制数据。换句话说,子结构可以被应用于模型数据,使得在其至少一个区域中在子结构具有空隙并且存在子结构的位置,模型也具有空隙。这实际上可以将晶格子结构施加到物体的至少一个区域上。

在一些示例中,半色调模块508可以填充要施加在物体上的子结构(或组合的子结构)。在其他示例中,半色调模块508可以填充物体的表示,并且此后子结构可以被施加。在一些示例中,半色调模块508可以被设置为将半色调数据应用于其上已经施加有子结构的物体数据。

在一个示例中,半色调数据可以作为半色调阈值矩阵而被接收。在一个示例中,阈值矩阵可以包括与三维子结构模型和/或模型物体本身相同的维度(即,是三维阈值矩阵)。在其他示例中,阈值数据可以以不同的形式提供(例如,可以使用更大的阈值矩阵的部分),或者可以根据存储的机器可读指令来生成,等等。

在使用半色调值定义原始子结构的示例中,接收的子结构数据可以包括原始半色调数据,其可以被用于填充中间子结构。对于至少一些,并且在许多示例中(例如,在没有使用模糊核的情况下),在存在中间子结构的所有位置,也将存在至少一个原始子结构。因此,该位置的半色调数据可用于填充中间子结构。对于存在一个以上原始子结构的位置,可以使用是加权平均值的平均值,或者值中的一个可以被选中(在一些示例中,基于概率基础,其可以被加权)用于该位置。

在一些示例中(其可能涉及使用卷积核),中间子结构中可能有在任何原始子结构中都不存在的位置。在这种示例中,可以使用完全填充的半色调阈值矩阵,并且中间子结构的几何形状可以与这种完全填充的矩阵相交。如果所有原始子结构与共同的半色调分布相关联(例如,是一般的蓝色噪声分布),则可以生成这种半色调矩阵并将其用于填充中间子结构。如果各个结构矩阵具有不同的例如定制的半色调矩阵分布,则可以使用按比例填充有每个分布的值的半色调矩阵。

在一些示例中,半色调数据包括阈值的阵列。在一个示例中,阈值用于执行半色调操作,该半色调操作将阈值矩阵的值与例如表示为mvoc(材料体积覆盖)矢量的指示打印材料(例如试剂或试剂组合)概率分布的值进行比较。这基于阈值选择单个“状态”(可能的材料或材料组合中之一)。

打印材料体积覆盖可以在物体内变化,并且可以在构建半色调阈值数据时考虑该变化。例如,可以将原本具有“连续色调”阈值的阈值矩阵格式化为具有局部的变化。在一些示例中,材料体积覆盖可以在各平面之间变化。

在其他示例中,半色调数据可以以某种其他方式提供,并且被用于用半色调数据填充中间子结构、物体或被修改为包括中间子结构的物体的至少一部分,以提供半色调矩阵。半色调数据可以根据半色调技术确定,例如空隙和簇矩阵、误差扩散技术、基于抖动的技术、am屏幕、簇点类型模式等。在一些示例中,子结构模型可以直接被填充有例如根据这些技术之一确定的半色调数据。在一些示例中,所选择的半色调方案可以根据其属性来选择。在一些示例中,所选择的半色调方案可以在物体和/或子结构上变化。例如,默认情况下可以使用蓝色噪声3d半色调矩阵,但是对于具有薄特征的物体或物体的区域,可以使用簇点方案来生成半色调数据以保留这些特征。换句话说,在一些示例中,半色调模块508可以被设置为基于要应用于半色调阈值的物体和子结构中的至少一个的几何形状来确定半色调阈值。

在一些示例中,中间子结构中存在结构的位置可以被填充有半色调阈值以提供这种半色调矩阵,其在示例中可以是二维或三维半色调阈值矩阵。

例如,子结构模块102可以定义子结构平面,每个平面与三维物体的平面相关。可以将这些平面栅格化为离散的位置以提供一系列阵列。如果子结构包括相对大比例的未占据或空的体素,则每个平面可以是部分或稀疏地填充的值阵列。在一些示例中,阵列是二进制的:结构要么存在于某个位置,要么不存在。在一些示例中,阵列可以是多个二进制位图的形式,每个二进制位图表示子结构的平面。半色调模块508可以用半色调阈值数据填充子结构平面。这提供了反映(在至少一些层或层的部分中)中间子结构(例如,可能没有与该平面中不存在子结构的位置相关的数据或存在与这种位置相关的空数据)的二维半色调矩阵。在其他示例中,半色调模块508提供半色调阈值数据,其中半色调模块508用于填充子结构以提供具有子结构的三维半色调阈值矩阵,并且半色调阈值矩阵可以应用于体积覆盖表示以生成控制数据。这种二维或三维半色调阈值矩阵可以适用于生成用于用增材制造装置制造三维物体的控制数据,例如使得所生成的物体具有中间子结构。

在该示例中,子结构模块102被设置为使用卷积模块504、加权模块104和混合模块106来定义中间子结构,并且为包括中间子结构的三维物体定义子结构。换句话说,三维物体可以被生成为在其至少一个区域中包括中间子结构。这种中间子结构可以例如提供任何原始子结构都没有提供的一组属性,在一些示例中,这些属性可以是在每个原始子结构所提供的属性的中间的一个或一组属性。在一些示例中,还可以包括在至少一个区域中包括原始子结构中的至少一个的物体。在特定示例中,可以在过渡区域中定义和使用至少一个中间子结构,以允许在物体的具有第一子结构的区域与该物体的具有至少一个其他子结构的区域之间的连续或基本上连续的链接。

半色调矩阵可以基于这种子结构,即其可以填充有指令以选择性地使打印材料沉积在子结构存在的位置,并且其可以应用于体积覆盖表示(例如mvoc矢量),从而以针对平面中像素的一组离散打印材料选择的形式来生成控制数据,其中平面的区域上的离散值可以表示在体积覆盖表示中设定的比例。在一些示例中,在填充之前对中间子结构模型进行栅格化。

在一些示例中,3d矩阵或半色调数据的2d矩阵的堆叠携带了中间子结构模型的结构:例如,矩阵可以在除了表征结构的那些位置之外的所有位置都是空的,使得无论为该位置指定的体积覆盖如何,矩阵的应用都将导致不在该空位置使用打印材料。

子结构模块102可以被设置为处理原始或中间子结构中的至少一个。例如,可以根据指示要生成的物体的信息来缩放这种子结构。这允许生成适当尺寸的子结构。

在一些示例中,子结构的缩放可以包括拼贴或复制该结构的基本“种子”元素。在其他示例中,子结构的缩放可以包括缩放子结构或其基本元素本身:例如,如果子结构由立方体结构构成,则立方体的尺寸可以被确定。缩放可以包括匹配要生成的物体的整体尺寸(使得例如物体和包括子结构的晶格的范围具有基本相同的大小,或者可以由相同大小的体素阵列描述)。在其他示例中,缩放可以包括匹配物体的具有该子结构的部分的大小(即,子结构可以在生成的物体上变化)。缩放可以包括考虑要生成的物体的最小特征的尺寸,并确保这些细节可以由适当尺度的子结构表示。缩放还可以包括考虑为要生成的物体指定的属性,例如特定体积中的材料的量,以确保物体具有指定的强度。

缩放可以自动地或利用用户输入来执行。在一些示例中,特定结构(例如,规则的立方体晶格)可以以多个分辨率/尺度(例如,使用不同尺寸的立方体作为基本元素)来定义,使得三维子结构的缩放包括选择预定义结构中的一个。

尽管上面的示例是关于混合两个子结构以形成中间子结构而阐述的,但是根据这些原理两个以上的子结构也可以被组合。

图6是提供方法的示例的流程图,该方法可以是生成中间子结构模型数据的方法。在一些示例中,该方法是例如使用至少一个处理器的计算机实现的方法。

块602包括接收表示第一三维材料结构的第一子结构模型数据和表示不同的第二三维材料结构的第二子结构模型。在块604中,生成表示至少一个中间三维材料结构的中间子结构模型数据。第一、第二和中间三维材料结构中的任何一个或每一个可包括网状或晶格结构。在一些示例中,生成中间子结构模型数据包括确定第一和第二子结构模型数据的加权混合,其中第一和第二子结构模型中的每一个具有预定权重。在一些示例中,加权混合的确定包括应用模糊卷积核。

从前述内容可以理解,可以组合两个以上的子结构以形成中间子结构。

图7是用于生成控制数据的方法的示例。

在该示例中,在块702中,接收第一和第二半色调矩阵,第一和第二半色调矩阵表示第一和第二子结构模型的结构。这些半色调阈值矩阵可适用于生成用于利用增材制造装置制造三维物体的控制数据,例如使得所生成的物体具有由相关联的子结构所指定的子结构。这种矩阵可以包括表示晶格结构的体素阵列,和/或可以基于或生长于例如遵循预定规则的立方体或其他空间填充多面体的种子或基本元素。可以存在多个子结构模型,并且矩阵的获得可以包括选择子结构模型。至少一个这种子结构可以是相对开放的网状结构。至少一个这种子结构可以在其体积上变化。在一些示例中,矩阵可以表示栅格化的平面。

在块704中,从矩阵导出定义第一和第二子结构的二进制数据,这种数据表示第一和第二子结构的相应晶格结构的存在或不存在。在一些示例中,这可以包括相应结构的栅格化表示。

在该示例中,在块706中,将加权应用于与子结构中的每一个相关联的二进制数据,并且在块708中,组合加权后数据。块710包括将模糊核应用于组合数据。在一些示例中,这可以应用于组合数据的一些部分但非全部部分,例如(如上所述)模糊核可以应用于与第一和第二子结构都存在(或彼此接近)的位置相关的数据。

在块712中,将阈值应用于结果数据以确定中间子结构模型数据。在该示例中,低于阈值的像素或体素的值被赋予值“0”,而等于或高于阈值的值被赋予值1。在该示例中,中间子结构模型数据包括表示中间结构存在或不存在的二进制数据。

块714包括接收半色调阈值数据,并使用半色调阈值数据来填充中间子结构模型数据中存在中间子结构的每个位置(在该示例中,位置(或更具体地,与位置相关联的数据点)与'1'相关联)。在该示例中,包括所接收的半色调矩阵的半色调数据可用于填充这些位置。如上所述,在有不存在任何原始子结构的位置的示例中,完全填充的半色调矩阵(其可以是与原始子结构相关联的不同半色调矩阵的比例组合)可以与中间子结构的几何形状相交。这种矩阵可用于填充所有位置,或仅用于填充不存在原始子结构的那些位置。

在块716中,确定复合子结构模型数据,该模型数据表示至少一个复合结构,该示例中的复合结构包括中间结构以及第一和第二子结构。以这种方式,具有复合结构的物体将具有包括第一子结构的第一区域、包括第二子结构的第二区域和包括中间子结构的第三区域。其他复合结构可包括一些但非全部的原始子结构。在该示例中,中间结构用作过渡区域,使得在物体的具有第一子结构的一部分与该物体的具有第二子结构的一部分之间存在至少一个连续的链接。这种过渡部分可以包括一个以上中间子结构,例如,在一些示例中,权重从偏好第一子结构经由至少一个中间子结构变为偏好第二子结构。不同中间子结构的数量可以取决于第一和第二子结构的区别程度,和/或可以被确定为使得第一和第二子结构之间存在至少一个连续链接,例如考虑将在其中发生过渡的距离或体积和/或物体生成装置的分辨率(如上所述),等等。在该示例中,复合子结构模型数据包括半色调矩阵。

块718包括接收表示三维模型物体的数据。例如,该数据可以指明三维物体的形态,在一些示例中还包括至少一个物体属性。在一个示例中,数据可以包括三维位图,该三维位图包括表示三维模型物体(其可以是物体的全部或一部分)的m×n×l体素阵列,其中m、n和l是正整数,并且其中每个体素位于唯一的三维位置。在一些示例中,m×n×l体素阵列是立方体,其包围三维模型物体的至少一部分(在一些示例中,包围三位模型物体的全部)。在一些示例中,表示三维物体的每个体素被表示为体积覆盖表示,体积覆盖表示将打印材料指明为该位置处的一组可用打印材料的比例。在一些示例中,描述物体的数据可以被映射到使用体积覆盖表示表示物体的数据。在一些这种示例中,如此映射,可以将模型物体栅格化为多个平面。所用平面的数量可取决于若干因素中的任何一个,例如,构造材料的类型、聚结剂的类型、使用的聚结改性剂的类型、提供属性和/或结束的每层的厚度等。

块720包括生成控制数据,控制数据用于生成在其至少一部分中具有中间子结构(并且在该示例中,具有根据复合子结构模型的材料子结构)的三维物体。在该示例中,这包括将携带该子结构的半色调数据应用于表示三维物体的数据。例如,可以将物体的体积覆盖表示与表示相同三维位置的阈值矩阵的阈值进行比较,以生成用于生成三维物体的控制数据,该三维物体基于模型物体并且具有根据复合子结构模型的材料子结构。

块722包括根据控制数据生成物体。例如,这可以包括使用任何增材制造技术或三维打印技术。因此,即使表示三维模型物体的数据指示该物体在不存在子结构的位置处存在(即,是实心的),这种物体也可以在该位置包括空隙。

可以以不同的顺序执行图7的各个块。例如,模糊核可以被应用于表示第一和第二结构的数据(即,块710可以在块706之后)。可以在块714之前执行块716。可以在生成中间子结构之前接收表示三维模型物体的数据(并且在一些示例中,至少一个子结构模型可以至少部分地基于该物体数据)。其他变化也是可能的。

图8a-8c示出了在三个维度对子结构进行混合的示例。包括半色调矩阵的第一子结构在图8a中示出,包括半色调矩阵的第二子结构在图8b中示出。图8c分别示出了图8a和8b的子结构的80:20混合。该混合在三个维度上操作,即模糊核是球形的并且对夹层和层内关系进行操作。可以注意到,图8a的相对稀疏的矩阵和图8b的相对密集的矩阵的组合在图8c中生成了中间密度的矩阵。

图9示出了结合非暂存有形机器可读介质902的处理装置900的示例,该非暂存有形机器可读介质902包括在被执行时使处理装置900执行以下操作的指令:

从第一和第二子结构确定包括第一和第二子结构的加权混合的中间子结构;

获得表示三维模型物体的数据;并且

生成控制数据,控制数据用于生成在其至少一部分中具有中间子结构的三维物体。加权混合可以包括除了第一和第二子结构之外的至少一个子结构的加权混合。

介质902可以包括使处理装置900执行图6或图7中的任何块的指令。

处理装置100、500或其至少一些模块可以包括增材制造装置的一部分,该增材制造装置可以被设置为生成具有子结构的物体。在其他示例中,处理装置100、500可以提供供增材制造装置使用的控制数据或至少一个半色调阈值矩阵。

在本文的一些示例中,提供模型物体以便可以生成物体。然而,生成的物体旨在具有不是作为模型物体数据提供的而是作为半色调操作的一部分提供的子结构。例如,这可能意味着即使根据模型物体模型将存在于子结构不存在的位置处,所生成的物体也在这种位置处具有空隙。这允许子结构被单独指定和/或稍后在设计管线中应用,因此新的或不同的子结构可以更容易地应用于要生成的物体。中间子结构包括使用至少两个其他子结构定义的子结构。在一些示例中,子结构可以是过渡子结构,以提供两个其他子结构之间的链接。

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

参考根据本公开的示例的方法、设备和系统的流程图和块图来描述本公开。尽管上述流程图示出了特定的执行顺序,但是执行的顺序可以与所描述的顺序不同。关于一个流程图描述的块可以与另一个流程图的块组合。应当理解的是,流程图和/或块图中的每个流程和/或块以及流程图和/或块图中的流程和/或图表的组合可以通过机器可读指令来实现。

机器可读指令可以例如由通用计算机、专用计算机、嵌入式处理器或其他可编程数据处理设备的处理器执行,以实现说明书和图中描述的功能。具体地,处理器或处理装置,例如处理装置100、500或其任何模块,可以执行机器可读指令。因此,装置和设备的功能模块(例如,子结构模块102、加权模块104、混合模块106、卷积模块504、映射模块506和半色调模块508中的任何一个)可以通过处理器执行存储在存储器中的机器可读指令实现,或者通过处理器根据嵌入在逻辑电路中的指令进行操作来实现。术语“处理器”将被广义地解释为包括cpu、处理单元、asic、逻辑单元或可编程门阵列等。方法和功能模块可全部由单个处理器执行或分布在若干处理器中。

这种机器可读指令还可以存储在可以引导计算机或其他可编程数据处理设备以特定模式操作的计算机可读存储器中。

这种机器可读指令也可以加载到计算机或其他可编程数据处理设备上,使得计算机或其他可编程数据处理设备执行一系列操作以生成计算机实现的处理,进而,在计算机或者其他可编程设备上执行的指令提供了用于实现流程图和/或块图中的流程所指定的功能的手段。

此外,本文的教导可以以计算机软件产品的形式实现,该计算机软件产品存储在存储介质中并且包括使计算机设备实现在本公开示例中所述的方法的多个指令。

尽管已经参考某些示例描述了方法、装置和相关方面,但在不脱离本公开的精神的情况下可以进行各种修改、改变、省略和替换。应当注意,上文所述示例说明而非限制本文描述的内容,并且本领域技术人员将能够在不脱离所附权利要求的范围的情况下设计多种替代实施方式。具体地,一个示例的特征或块可以与另一示例的特征/块组合或替换。

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

任何从属权利要求的特征可以与任何独立权利要求或其他从属权利要求的特征组合。

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