用于3D打印的3D对象数据的压缩表示的制作方法

文档序号:11288985阅读:197来源:国知局
用于3D打印的3D对象数据的压缩表示的制造方法与工艺



背景技术:

通过增材制造方法生成的三维对象以逐层方式形成。在增材制造的一个实例中,通过聚结和固化构造材料层的部分来生成对象。在实例中,构造材料可以是粉末、流体或板材的形式。可以通过将试剂打印到构造材料层上来实现预期的聚结、固化和/或物理属性。可以将能量施加到层,并且其上已经打印了合适的试剂的构造材料可以在冷却时聚结并固化。在其他实例中,可以通过使用挤出的塑料或喷涂材料作为构造材料来生成三维对象,所述构造材料固化以形成对象。

一些生成三维对象的打印方法使用由三维对象的模型生成的控制数据。例如,该控制数据可以指定将加试剂施加到构造材料的位置,或者可以将构造材料本身放置到何处。

附图说明

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

图1是用于将表示三维对象的模型的输入对象数据转换成压缩形式的转换器;

图2是用于生成用于产生三维对象的控制数据的装置的实例的简化示意图;

图3是用于生成用于产生三维对象的控制数据的装置的模块的实例的简化示意图;

图4是用于处理表示三维对象的数据的方法的实例。

具体实施方式

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

在本文的一些实例中,三维空间以“体素”,即三维像素为特征,其中每个体素占据离散体积。当产生建模三维对象的数据时,给定位置处的体素可以具有至少一个特征。例如,它可以是空的,或者可以具有特定的颜色,或者可以表示特定的材料或特定的对象属性等。

在一些实例中,处理表示三维对象的数据以生成用于对象的至少一部分的打印材料覆盖表示。在一些实例中,打印材料覆盖表示定义打印材料数据,例如详述了每种可用打印材料(比如要打印到构造材料层上的(多种)试剂,或者在一些实例中构造材料本身)的数量,以及它们的组合的数量(如果需要)。这可以规定为成比例的体积覆盖(例如,构造材料层的区域的x%应具有对其施加的试剂y)。这样的打印材料可以与以下属性相关,或者可以被选择以提供以下属性,比如,例如颜色、透明度、柔性、弹性、刚度、表面粗糙度、孔隙率、导电性、层间强度、密度等。

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

在一个实例中,对象模型数据内的体素集可以具有相关联的打印材料(或打印材料组合)体积覆盖(mvoc)矢量集。可以通过使用映射来进行关联。在一个简单的实例中,这样的矢量可以指示三维空间的给定区域中的可编址位置的x%应该具有对其施加的一个单位的特定试剂,而剩下(100-x)%应该没有试剂。mvoc表示可以为“半色调”过程提供输入以生成可被增材制造系统用来产生三维对象的控制数据。例如,可以确定,为了产生期望的对象属性,25%的构造材料层应该具有对其施加的特定的试剂。半色调过程确定了要沉积的试剂滴的位置以便提供25%的覆盖率(例如通过将每个位置与在半色调阈值矩阵中提供的阈值进行比较)。

在一些实例中,表示三维结构或对象的平面的数据被“栅格化”,即转换成一系列离散位置。栅格化平面可具有可向其提供控制数据的三维打印装置的可打印分辨率(resolution)。

图1中示出用于将表示三维对象的模型的输入对象数据转换为压缩形式的转换器100。数据可以例如用于通过增材制造工艺生成三维对象。

转换器100包括数据接收模块102,用于接收表示要由增材制造装置生成的三维对象的对象属性的数据;数据识别模块104,用于识别表示具有共同属性规范的对象的连续区域的数据;子区域定义模块106,用于在表示连续区域的数据内确定相连子区域集;以及对象数据模块108,用于将连续区域表示为子区域集。

由数据接收模块102接收的数据可以是例如体素阵列,其中每个体素可以占据对象内的唯一位置。可以从计算机辅助设计(cad)包等接收数据。对象属性可以包括颜色、柔性、弹性、刚度、表面粗糙度、孔隙率、导电性、层间强度、密度等中的任一种或任意组合。体素也可以是空的,表明在该位置,不存在材料。

由数据识别模块104识别的连续区域可以是其中体素具有共同对象属性的连续区域。在一个实例中,共同属性规范可以是期望特性(例如,共同的颜色和密度的区域)的共同规范。在另一实例中,属性规范可以涉及打印材料覆盖表示,例如要用来生成对象的一个或若干个打印材料的比例的规范。在这样的实例中,可以实施对象属性到材料体积覆盖(mvoc)矢量的映射,以及由被识别为具有共同属性规范的数据的共同mvoc矢量识别的区域。在一些情况下,可以针对属性的集合(单独作为任何指定属性的集合或子集)中的每个执行该确定。在一些实例中,属性规范可以指定数据值的范围。这样,即使体素的对象数据和/或打印材料覆盖表示不同于连续区域中的其他体素,该体素也可以属于具有共同属性规范的区域。例如,如果对象数据/打印材料覆盖表示在彼此的边距或范围之内,或者如果它们足够相似,则具有不同对象数据/打印材料覆盖表示(如适用)的两个体素的属性规范可被认为是共同的。

例如,由子区域定义模块106定义的相连子区域可以例如依据对象属性或者依据打印材料覆盖来指定。

通过将对象的部分分组成具有共同属性的至少一个连续区域,可以用更少的数据点来完整描述对象,且因此可以减少存储对象模型的文件大小,即数据可以是压缩的形式。

在一些实例中,确定表示子区域集的打印材料覆盖表示,例如指定至少一个打印材料以产生对象属性。这可以包括将指示对象属性的数据映射到打印材料覆盖数据,该数据在一些实例中可以依据例如mvoc的矢量对象来表达。或者,如果该数据已经依据打印材料覆盖来表达,则确定打印材料覆盖表示可以包括将打印材料覆盖表示划分成所识别的相连子区域集,在该情况下,打印材料覆盖表示的集合(例如,mvocs的集合)被确定。

在一些实例中,打印材料覆盖表示或子区域集可被存储为表征模型的数据。在一些实例中,打印材料覆盖表示或子区域集可以替换例如在存储器等中的输入数据。

在一些实例中,可以使用对象的打印材料覆盖表示(例如,依据(多个)矢量对象表示对象)来生成用于由增材制造装置根据对象模型生成三维对象的控制数据。

在一个实例中,由子区域定义模块106定义的每个子区域具有(单个或共同的)预定形状或形式(例如多面体)的按比例缩放的实例的形状。多面体是几何对象,例如多边形或多面体。这种多面体形式可以例如是立方体、椭圆形、四面体等。多面体形式可以是空间填充多面体;即可以在三维空间内堆叠而在多面体之间不留下任何空间的多面体。因此,如该术语在数学上被使用的,多面体集由“相似的”对象组成,即具有相同的相对比例但是尺寸彼此不同的对象。在一些实例中,可以存在预定的多面体形状。在其他实例中,多面体可以例如从存储器中保存的多面体形状的范围内选择或确定,或者作为多面体生成过程的结果。这样的选择或确定可以基于所识别的对象的有效表示(例如,假定子区域的形状,提供最小多面体集的多面体)。在其他实例中,可以选择或生成在最大适用尺寸下最佳填充子区域的多面体形式。

因此,在一些实例中,连续区域的形状由许多大小不同的多面体表示。在一个实例中,由子区域定义模块106定义的最大子区域是能够包含在连续区域内的多面体形式的最大实例。例如,如果连续区域是半径r的球体,并且多面体是立方体,则最大的多面体将是内部对角线尺寸为2r的立方体。在一些实例中,由子区域定义模块106定义的最小子区域(即,最小的多面体)可以是能够由增材制造装置单独编址的多面体形式的最小实例。如果这两个条件都适用,并且多面体按大小顺序从最大到最小来选择,随着当不能放置更多给定尺寸的多面体时多面体尺寸减小,则矢量对象集表示以增材制造装置的分辨率填充连续区域的该多面体的最小集合。

通过使用多面体来表示数据,可以减少存储要求,因为即使没有单独描述每个位置,也可以至少基本上充分描述对象。替代地是,可以存储对象的子对象表示。

在一些实例中,子区域不必具有相同的形式。然而,与使用单个子区域形式相比,要进行的用于识别变量形式子区域的最佳布局和/或最佳集合的分析更加复杂。此外,依据子区域表征对象的数据还将另外包括针对每个子区域指示子区域形状或形式的数据。

图2中示出用于生成用于产生三维对象的控制数据的处理装置200的实例。装置200包括接口202,用于接收表示代表三维对象206的模型的对象数据204。该数据包括对象模型数据208和对象属性数据210的数据。在该实例中,对象206是基本平坦的六边形棱镜,其包括具有第一共同对象属性集的外部区域212和具有第二共同对象属性集的内部圆柱形区域214。

在一些实例中,接口202可以将对象模型数据208和对象属性数据210接收为单个文件;在其他实例中,接口202可以将对象模型数据208和/或对象属性数据210的部分接收为多个数据对象,其中对象模型数据208和对象属性数据210跨过多个相关联的数据结构分布。

在一个实例中,对象模型数据208可以包括以三维(本文也称为[x,y,z])空间定义的体素,并且可以由计算机辅助设计(cad)应用程序生成。给定的体素可以具有指示对象206的一部分是否存在于该位置的相关数据。

对象属性数据210可以包括全局和/或局部对象属性数据,例如,在对象属性数据210中定义的某些对象属性值可以与定义定对象的每个体素相关联,和/或某些对象属性值可以与体素集相关联,例如,从与对象相关联的个体体素到所有体素。对象属性可以包括例如颜色、柔性、弹性、刚度、表面粗糙度、孔隙率、层间强度、密度、导电性等,并且可取决于用于生成对象的构造材料和/或试剂的类型。

在一个实例中,表示三维模型206的对象数据204包括具有在模型内的每个位置处(例如,在每个[x,y,z]坐标处)指定的一个或若干个对象属性的三维对象的模型。

装置200还包括分类模块216,用于确定具有共同(即足够相似)属性规范的对象的连续区域。在该实例中,确定两个连续区域——具有切掉圆柱212和圆柱214的六边形棱镜。这些区域212、214是连续的,因为它们各自表示对象206的接合部分的而不是两个或更多个分离的或不相连的部分。在该实例中,可以从对象数据204直接识别这些区域。在其他实例中,可以将与每个体素有关的数据映射到打印材料覆盖表示,并且可以识别具有(多个)共同属性规范的打印材料覆盖表示的区域。分类模块216还确定所识别的区域212、214内的子区域。

装置200进一步包括映射模块218,用于将表示连续区域的对象数据映射到至少一个打印材料覆盖表示,例如指示至少一个打印材料以产生对象属性。在该实例中,这包括将识别为具有相同的(或足够相似的)对象属性数据210的连续区域的区域映射到打印材料覆盖表示。然而,在其他实例中,如上所述,映射模块218可以首先将对象数据204映射到打印材料覆盖表示(例如,mvoc矢量),并且打印材料覆盖表示随后被分类模块216表征为区域,然后为子区域。

在该实例中,由分类模块216确定的每个子区域具有这样的形状,即具有长方体形式(在图2中以平面图示出)的预定多面体的按比例缩放的实例的形状。考虑到圆柱形区域214,最大长方体220被放置在中心并延伸到区域214的外边缘。该长方体220是最大的长方体形状,其可以完全包含在圆柱形区域内。圆柱形区域214的其余部分基本上以类“分形”的方式被较小的长方体填充——长方体的尺寸随着最大可用体积的减小而降低(其中总是放置最大可能的长方体)直到最小的长方体(其在该实例中表示能够由预定的增材制造装置单独编址的最小长方体)。外部区域212也以类似的方式划分成长方体。尽管在该实例中,使用长方体占据区域212、214两者,但是不一定是这种情况,并且子区域形式在不同区域中可能不同。

装置200进一步包括栅格化模块222,用来生成由(多个)矢量对象集表示的三维模型对象的至少一部分的平面的栅格化表示。因此,栅格化模块222可以生成由打印材料覆盖表示所表示的三维对象的模型的平行平面的切片。如果存在超过一个具有共同属性规范的连续区域(如图2所示,其示出两个这样的区域),则这些可以一起或分别加以考虑。在一些实例中,也可以有与不是连续区域的部分的体素相关的映射,并且这些也可以与一个、一些或所有集合一起或分别加以考虑。

在一个实例中,每个切片定义要由增材制造系统处理的构造材料的各自层的一部分。在使用三坐标系(例如,使用[x,y,z]坐标)的三维空间中,这些平行平面可以是z切片,平行于x轴和y轴的平面。每个z切片可以包括具有共同z坐标并且在x和y维度上延伸的模型的部分。z切片的数量可取决于z维度上的细节的分辨率和/或构造材料层的输出分辨率。

在一个实例中,栅格化模块222输出多个二维栅格对象,每个表示其中正在处理的对象区域212、214被定义的三维空间的平面。这些二维栅格对象中的每个可以包括例如由多面体构成的位图的图像,并且每个多面体与至少一个对象属性值相关联。在一个实例中,每个多面体可以与至少一个对象属性相关联。如果对象属性中的一种与颜色相关,则可以在颜色空间中定义颜色,例如:单色连续色调空间,例如,灰度;红、绿、蓝(rgb)颜色空间;国际照明委员会(cie)1931xyz颜色空间,其中使用三个变量('x'、'y'和'z'或三刺激值)来建模颜色;cie1976(l*、a*、b*-cielab或'lab')颜色空间,其中三个变量表示亮度('l')和相对的颜色维度('a'和'b');或任何其他颜色空间或派生颜色空间。这些颜色空间中的颜色值可以包括连续色调值,例如,在预定义的值范围内的值。例如,在一个简单的实例中,rgb颜色值可以包括三个8比特值;这样,红色、绿色和蓝色值各自可以在0至255的范围内。对象属性可以隐含地和/或明确地被定义,并且可以包括以下任一种或任意组合等等:指示将要使用的可用试剂的值;柔性值;弹性值;刚度值;表面粗糙度值;孔隙率值;强度值和密度值。

打印材料覆盖表示可以具有多个值,其中每个值定义要生成的三维对象的层的可编址区域中的材料(“主要材料(materialprimary)”或“mp”)的每种或每个组合的比例。可以提供材料覆盖表示作为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%。

装置200进一步包括半色调化模块224,用于执行半色调化以生成用于产生三维对象的控制数据。

在该实例中,使用包含阈值阵列的半色调阈值矩阵来执行半色调化。在一个实例中,阈值用于执行将阈值矩阵的值与打印材料(例如(多种)试剂)的值或颜色概率分布(例如mvoc矢量)进行比较并基于阈值选择单个“态”(例如试剂或试剂组合)的半色调操作。该矩阵可以以若干途径进行设计,包括考虑跨过每个切片要施加的所有打印材料的总面积覆盖(其可以基于关于要生成的对象接收的信息,和/或基于“全局”属性,例如在给定体积中要沉积的材料的最小量以产生具有特定特性(例如强度特性)的对象)。

在一些实例中,装置200可进一步包括子对象模块300。子对象模块300的实例在图3中示出。子对象模块300将表示依据子区域(例如,多面体)的三维对象的数据划分为表示三维子对象302、304、306的数据,每个子对象由完整(且相连的)子区域表示,并且是三维对象的一部分。可以分别处理表示三维子对象302、304、306的数据,以生成用于产生物理子对象的控制数据。这样的物理子对象可以被组装以形成对象并且将具有非平面的结合处,允许由这样的物理子对象构成的对象的鲁棒性组装。在一些实例中,可以定义定这样的子对象,以使每个都可以由单个增材制造装置打印,这可以对子对象的最大尺寸提供约束。这允许大于给定增材制造装置的最大对象尺寸的对象作为组装的子对象而产生。

在图4中列出用于生成用于产生三维对象的控制数据的方法的实例。该方法包括获得表示三维对象的体素的三维阵列,每个体素位于唯一的三维位置并与对象属性数据相关联(框402)。识别表示具有共同属性规范的对象的连续区域的数据(框404)。在一些实例中,如果属性规范足够相似,例如在指定范围内,则属性规范是共同属性规范。在表示连续区域的数据内,将相连子区域集确定为多面体集(框406)。在实例中,多面体集的多面体是特定多面体形式的尺度表示,并且该多面体集可以被细化(tessellate)以提供连续区域的表示。

确定向表示子区域集的至少一个打印材料覆盖表示的映射(框408)。打印材料覆盖表示可以指示用于产生对象属性的至少一种打印材料。可以在定义多面体集之前(例如,映射每个体素,并且从该映射确定多面体集)或之后(将表示对象属性数据的多面体集映射到打印材料覆盖率表示)确定映射。

在一些实例中,可以将体素映射到包括单个矢量对象的打印材料覆盖表示,并且具有相同或足够相似的打印材料体积覆盖规范的矢量对象被识别以定义连续区域,然后将其划分成子区域。在其他实例中,识别具有相同或足够相似的对象属性数据(例如涉及颜色、弹性、导电性等中的任何一个)的体素以定义连续区域,并且该区域被划分为子区域,然后可以将该子区域映射到诸如mvoc的打印材料覆盖表示。

在一些实例中,根据执行这些处理的顺序,特别是如果共同属性规范允许值之间的一些差异,则可能产生不同的对象表示。即使属性规范相同,也可能会出现一些差异,因为多个所需对象属性可能映射到相同的打印材料覆盖表示上。

在一些实例中,可以生成三维对象的至少一部分的平面的栅格化表示。这可以基于体素和打印材料覆盖表示之间的映射。然后可以对栅格化表示进行半色调化以生成用于产生三维对象的控制数据。

在一些实例中,并且例如如关于图3所描述的,可以将多边形的相连子集指定为表示模型的三维子对象部分。这样的多面体的子集可以被处理以生成用于产生包括三维对象的一部分的子对象的控制数据。

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

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

机器可读指令可以例如由通用计算机、专用计算机、嵌入式处理器或其他可编程数据处理设备的处理器来执行,以实现说明书和图中描述的功能。尤其是,处理器或处理装置可以执行机器可读指令以用作转换器100或装置200,或其任何组件或模块,或作为子对象模块300。因此,通过处理器执行存储在存储器中的机器可读指令,或者处理器根据逻辑电路中嵌入的指令进行操作可以实现装置200的功能模块。术语“处理器”应被广义地解释为包括cpu、处理单元、asic、逻辑单元或可编程门阵列等。方法和功能模块可以全部由单个处理器实施或在若干处理器之间划分。

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

这样的机器可读指令还可以被加载到计算机或其他可编程数据处理设备上,以使计算机或其他可编程数据处理设备执行一系列操作,以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现由流程图中的流程和/或框图中的框所指定的功能的手段。

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

虽然已经参照某些实例描述了方法、装置和相关方面,但是在不背离本公开的精神的情况下,可以进行各种修改、变化、省略和替换。应当注意,上述实例说明而不是限制本文所描述的内容,并且在不背离所附权利要求书的范围的情况下,本领域技术人员将能够设计许多可替换的实施方案。

关于一个实例描述的特征可以与关于另一实例描述的特征组合或用其替换。

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

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

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