使三维对象的表示序列化的制作方法

文档序号:17439790发布日期:2019-04-17 04:36阅读:233来源:国知局
使三维对象的表示序列化的制作方法

增材制造技术可以通过构建材料的凝固在逐层基础上生成三维对象。在此类技术的示例中,构建材料被以逐层方式供应并且凝固方法可以包括把构建材料的层加热以在选定区域中引起熔化。在其他技术中,可以使用其他凝固方法,诸如化学凝固方法或粘结材料。

与要生成的三维对象有关的数据可以被提供给增材制造设备并用于生成三维对象。

附图说明

现在将参考附图描述非限制性示例,在附图中:

图1是用于布置表示三维对象的数据的示例方法的流程图;

图2是图示了八叉树结构的示意绘图;

图3是用于生成对象层的示例方法的流程图;

图4是示例计算机系统的示意绘图;

图5是示例增材制造设备的示例示意绘图的示意绘图;以及

图6a和图6b是图示了八叉树结构的表示的示意绘图。

具体实施方式

增材制造技术可以通过构建材料的凝固来生成三维对象。在一些示例中,构建材料可以是粉末状粒状材料,其可以例如是塑料、陶瓷或金属粉末。生成的对象的性质可以取决于构建材料的类型和使用的凝固机制的类型。构建材料可以被例如沉积在打印床上并逐层处理,例如在制作室内。

在一些示例中,选择性凝固是通过能量的定向施加来实现的,例如使用导致被施加有定向能量的构建材料的凝固的激光或电子束。

在其他示例中,至少一种打印剂可以被选择性地施加到构建材料,并且在施加时可以是液体。例如,可以将熔剂(也称为“聚结剂”或“聚结剂”)按照从表示要生成的三维对象的切片的数据导出的图案(其可以例如从结构设计数据生成)选择性地分配到构建材料的层的各部分上。熔剂可以具有吸收能量的成分,使得当能量(例如,热)被施加到层时,构建材料依照图案聚结和凝固以形成三维对象的切片。在其他示例中,可以以某种其他方式实现聚结。聚结改性剂(也称为改性剂或细化剂)用来例如通过减少或者增加聚结来修改熔剂的效果或者用来帮助产生对象的特定饰面或外观,并且此类试剂可以因此被称为细化剂,在一些示例中还可以被用作打印剂。着色剂(例如包括染料或色料)可以在一些示例中被用作熔剂或改性剂,和/或用作打印剂以为对象提供特定颜色。

增材制造系统可以基于结构设计数据生成对象。这可以涉及设计者例如使用计算机辅助设计(cad)应用来生成要生成的对象的三维模型。模型可以定义对象的实体部分。为了使用增材制造系统来从模型生成三维对象,可处理模型数据以生成模型的平行平面的切片。每个切片可以定义构建材料的相应层的一部分,所述构建材料将由增材制造系统凝固或者使得其聚结。

图1是可以为计算机实现的方法的方法的流程图,包括在块102中在处理器处接收用于提供要在逐层制造过程中制造的对象的至少一部分的八叉树表示的数据。

在一些示例中,可以将此数据提供为经典八叉树表示,其中表示最大体积的节点(‘根’节点)被首先描述,后面是其八分体,后面是其八分体并且依此类推。

在其他示例中,八叉树可以由对象的另一表示构建,例如由设计文件(诸如stl文件、.obj文件、dxf文件、json文件、3mf文件、vtk文件等)构建。对象可以被表示为网格(例如,多边形网格),或者用一系列切片加以表示。在一些示例中,表示可以包括数据的打印分辨率表示,例如包括为对象和/或周围体积(例如,包封对象的长方体)的每个“体素”指定至少一种属性(例如,存在或不存在、颜色、纹理、透明度、导电性、强度、孔隙率、弹性等)或打印材料(例如,打印剂或构建材料的选择)。体素可以被认为是体积像素,并且每个体素可以是打印可寻址区域。在一些示例中,体素是以设备的打印分辨率定义的。在一些示例中,每个体素是相同的形状和/或大小,例如包括立方体或相同的大小,然而在其他示例中体素可以在大小和/或形状上不同。

块104包括从数据并使用处理器生成对象的序列化八叉树表示。在一些示例中,块104可以包括重新布置八叉树表示,然而在其他示例中,可以从表示对象的数据生成八叉树表示,其可以以逐层方式(例如对象的表示可能已被分割成表示对象的切片的层)或者以打印分辨率或者以某种其他方式表示数据(注意在块102中获取的数据它本身可以不是八叉树表示,但是它确实提供用于构建八叉树表示的数据)。如在下面更详细地阐述的,序列化表示被构造为使得节点被以特定方式排序。当考虑z坐标与对象的高度有关的xyz空间时,这可以被认为是“z优先”排序,因为对象是在位于xy平面中的层中生成的。如将变得显而易见的,这种排序可以适于处理与要在层中生成的三维对象有关的数据。

在此示例中,序列化表示符合关于图2中所示的3级八叉树而讨论的三条规则。在图2中,根节点a是单个体积。下一级将此体积分割成八分体b1-b8,其中的每一个均表示物理子体积。b1、b2、b3和b4表示体积的下半部分的象限,然而b5、b6、b7和b8与体积的上半部分有关。图2还示出了下一级,但是出于图示的简单的目的,仅针对b1示出了这个。下一级将b1分割成八分体c11至c18(其中此表示法在下面延伸,使得b2可以被分割成标记为c21至c28的八分体,并且更一般地bn可以被分割成标记为cn1至cn8的八分体),其中的每一个均表示物理子体积。再次,在此示例中cn1-cn4表示n=1至8的每个b体积的下半部分。应理解的是,每个节点包括描述对象的至少一个方面的数据,如在下面进一步阐述的那样。

要在形成序列化表示时应用的第一规则是表示包括要按照对象生成的预定顺序较早地生成的对象的层的体积的节点在表示由要随后生成的对象的(一个或多个)层构成的体积的节点之前。

在增材制造中,一般地自底向上构建对象。以图2为例,要在这种示例中首先生成的层是最低层,其包括用于n=1至4的cn1-cn4。b1-b4也包括此层,a也一样。因此,此规则意味着a和b1-b4将被列举在b5-b6(其不包括第一层的表示,并且排他地由要随其后生成的层构成)之前。它还意味着n=1至4的cn1至cn4将被列举在所有其他c节点之前。

第二规则是表示包括对象的给定层的体积的节点基于八叉树表示内的节点的级被排序,其中父节点出现在后代节点之前。因此,对于第一层,a将被列举在b1至b4中的任一个之前并且b1至b4将被列举在n=1至4的cn1至cn4之前。

第三规则是,在已经应用第一规则和第二规则之后,即对于表示包括对象的给定层并且在八叉树内具有相同级的体积的节点,节点根据位置编码图案被序列化。例如,这可以是定义通过空间的特定路径的莫顿(z顺序)码等。莫顿码是将多维数据映射到一个维度同时保存局部性的函数的一个示例。在此示例中,因此可以应用位置编码图案来确定b1至b4的顺序以及n=1至4的cn1至cn4的顺序。

如上面所指出的,对于对象的第一层,这将导致a、b1-4(根据位置编码图案排序)、n=1至4的cn1-cn4(根据空间编码图案排序)的顺序。这给出序列化表示的第一部分。为了易于表示,方括号中指示的位置编码图案和此部分能被概括为:

a:[b1-b4]:[cn1-cn4]n=1-4

不通过n=1至4的cn1-cn4来表示的下一层向上包括n=1至4的cn5-cn8。然而,此层也通过b1-b4和a来表示,并且因此表示此层仅意指将n=5至8的cn1-cn4添加到以上码部分的末尾,因为这未打破任何规则,从而扩展序列化表示如下:

a:[b1-b4]:[cn1-cn4]n=1-4:[cn5-cn8]n=1-4

仍然未被表示的下一层向上包括b5-b8的部分,其应该被包括在其后代节点之前。在此示例中,这给出包含在体积a中的对象的序列化表示如下:

a:[b1-b4]:[cn1-cn4]n=1-4:[cn5-cn8]n=1-4:[b5-b8]:[cn1-cn4]n=5-8:[cn5-cn8]n=5-8

尽管未示出,然而可以定义‘d’级节点,包括每个cnm(其中n=1至8且m=1至8)体积被分割成八分体。在示例中这些八分体可以描述打印分辨率体素。可以根据z优先排序来将这种d级节点插入到其对应‘c’级表示之后的序列化表示中。

以上讨论假定八叉树在所有可能的节点被显式地表示的意义上是完整的。在如在下面所陈述的所有示例中情况可能不是这样的。

这种数据结构很适于三维打印,因为描述对象的特定级的数据被级联成连续串。这可以与按照级顺序(其可以被称为‘广度优先’排序)表示的n八叉树对比,其中,在相同的表示法下,对象的描述可以如下:

a:[b1-b8]:[c11-c18]:...:[c81-c88]

数据的另一可能的表示可以是“深度优先”排序,其能被表达如下:

a:b1:c11-c18:b2:c21-c28:b3:c31-c38...b8:c81-c88

在此类表示中,要制造的第一层的描述(n=1-4的cn1-cn4)分散在数据各处并且检索数据变得复杂。此外,如从接下来的讨论中将变得显而易见的,此类表示不允许关于一个层而检索到的数据有助于检索与后续层有关的数据。

在以上示例中,表示根节点a的节点被首先布置在序列化中。

在数据读取器将理解数据与所指定的顺序相关联的意义上,数据被布置在序列化中。在一些示例中,数据可以在物理上分散在存储介质(例如,随机存取存储介质)上。然而,数据被存储以便具有关系,在所述关系中所描述的数据的布置被编码。

在一些示例中,八叉树的节点表示体积并包括八个子体积并且每个体积可以被分类为下列中的一个:(i)在整个体积上具有预定属性(即每一子体积或其区域共享预定属性),(ii)完全缺少预定属性(即每一子体积或其区域缺少预定属性),或者(iii)包括具有预定属性的子区域和缺少预定属性的子区域。

在一个示例中,属性可以是体积是否包括对象的一部分并且每个体积可以被分类为下列中的一个:

完全在对象内部(被称为“黑色”),

完全在对象外部(被称为“白色”),

横跨对象边界(被称为“灰色”),使得体积的子区域在对象内部并且另一子区域在外部。

能同样地关于其他属性使用灰色、白色和黑色的指定。在此示例中,扫描边界的体积有两种可能的类别:“末端灰色”体积或“中间灰色”体积。当体积是打印分辨率体积或者是由特定模型编码的最小体积时,可以对末端灰色体积进行编码。可以与中间灰色体积不同地处理此类灰色体积,因为可以做出关于将体积视为黑色体积还是白色体积的判定;即实际上,体积被指派为在对象内部或外部。然而,在一些示例中可以省略这种末端灰色体积。

在此示例中,体积的分类用两个比特表达:00用于白色体积,01用于黑色体积,10用于中间灰色体积并且11用于末端灰色体积。

每个节点被表达为表征其子体积的16比特串。因此,如果对象占据了填充立方体的底部的切片,从而占去图1中所示的立方体的底部四分之一,则‘a’节点将具有4个“灰色”子体积和4个白色子体积。在一些示例中,可以基于体积内的子体积的位置对描述节点的数据进行排序。例如,“最低有效比特”(即在比特串的末尾的比特)包含关于具有较小z坐标的子体积的信息,当z坐标相等时那么具有较小x坐标的子体积占据最低有效比特等。然而,能使用任何其他预定顺序。

例如,a节点能在其子体积方面按照数量顺序被表示为

b1{10}、b2{10}、b3{10}、b4{10}、b5{00}、b6{00}、b7{00}、b8{00},或者表示为:

[1010101000000000]

b1节点在上半部分中具有白色体积并在下半部分中具有黑色(包含在对象中)体积,所以能被编码为

[0101010100000000]

在其他示例中,能使用不同的顺序。

b5体积是白色:在一些示例中,这可以意味着表示b5体积的节点未显式地形成在八叉树内,因为除通过a节点的编码所提供的信息之外不存在要关于b5体积获得的更多信息。如可容易地理解的,如果b级体积完全在对象内部,则其任何子节点也完全在对象内部。因此,可以存在仅“灰色”节点(即包括具有属性的子区域和缺少属性的子区域的那些节点)被存储的情况。换句话说,在一些示例中,如果体积是白色或黑色,则它未被存储为节点,因为体积被表征在在先节点中,并且这种表征延伸到所有后代。例如,对于占据体积的下半部分的对象,这能通过具有单个节点的一级八叉树来充分地表征,其中4个白色子体积具有较高z并且4个黑色子体积具有较低z。例如,16比特串能将根节点(其是灰色节点)表征为:0000000001010101。这充分地表示整个对象。然而如果黑色子体积或白色子体积中的一个替代地是灰色,则能针对该子体积形成另一个节点,从而表征其子体积。

在一些示例中,因此,八叉树可以仅包括灰色节点(因为没有存储黑色和白色节点),并且在体素或打印分辨率级下,可以将子体积分类为黑色或白色。在其他示例中,灰色节点可以是被细分的任何节点(即使后代节点全部具有或者缺少属性)。黑色或白色节点可以是未被细分的那些节点。

这种编码能用于指定任何二元属性,例如,特定颜色、导电性、弹性、打印剂等的存在与否。例如,每个体积能被分类为“红色”或“非红色”或“包含红色子区域和非红色子区域”,或者被分类为“导电”或“不导电”或“包含导电子区域和非导电子区域”。在其他示例中,能使用诸如霍夫曼(huffman)编码之类的其他编码。

图3是可以为计算机实现的方法的方法的示例,包括生成要在逐层制造过程中生成的对象的多个层的数据表示,可以对像上面参考图1所描述的那样布置的序列化八叉树表示执行所述逐层制造过程。在一些示例中,序列化数据可以被存储在存储器中并且可以检索其部分以便执行图3的方法。在其他示例中,序列化数据可以在它被形成时被处理。

块302包括从序列化八叉树表示中提取表示包含第一层的至少一部分的所有节点的数据。

考虑图2的示例,包含对象的最低层的一部分的所有节点被布置在单个连续串中,所述单个连续串可以被表达为:

a:[b1-b4]:[cn1-cn4]n=1-4

注意,在此讨论中,假定了所有节点b1-b8和所有c节点存在于八叉树内-例如如果b或c节点将在被形成的情况下描述完全具有或者完全缺少属性的体积(即如上所述,在一些示例中,仅“灰色”节点可以被编码在八叉树内和/或在其序列化表示内),则情况可能不是这样的。此外,在此示例的讨论中,第一层对应于较低级c节点并且第二层对应于较高级c节点,但是在其他示例中,这些节点中的每一个均可以被分割成子体积,并且可以表示若干层。

块304包括根据所提取的数据确定第一层的表示。例如,这可以包括提取提供关于其许多子体积中的每一个的信息的节点[cn1-cn4]n=1-4(就这些节点被显式地表示来说)。如果未显式地表示c节点中的任一个,则确定第一层的表示可以包括考虑较高级节点(即在此示例中,b或a节点)的内容。在一些示例中,所确定的第一层的表示可以处于对象生成分辨率下。在包括末端灰色体积的示例中,确定第一层的表示可以包括将每个体积指派为黑色或白色体积。在一些示例中,第一层的表示可以被用作输入来生成用于增材制造设备的控制指令。例如,将体积表征为在对象内部可以产生将熔剂放置在与该体积相对应的物理位置处的指令。将体积表征为完全在对象外部可以产生在与该体积相对应的物理位置处不放置熔剂或者放置细化剂的指令。

在一些示例中,控制指令可以用于由增材制造设备生成对象。

在此示例中,在块306中,方法进一步包括使用第一层的表示来生成对象层。

在一些示例中,第一层的表示可以被存储在存储器中。

在块308中,方法进一步包括确定包括所提取的数据以及指示未被包括在所提取的数据中的序列化表示中的位置的索引的数据块;并且,在块310中,将数据块存储在存储器中。

此数据块可以例如包括作为c编程语言(以及其他语言)中使用的术语的‘结构(struct)’。

索引可以包括指示最后提取的节点或者序列化数据中的第一“未提取的”节点的指针。

因为这种数据块当与对象的序列化表示相比较时可以是相对较小的,它实际上可以被保持在本地存储器、处理器存储器或相对较快的核心内存储器中,与大容量或较慢的存储器资源(例如,“核心外”或固态存储器资源)相反,所述大容量或较慢的存储器资源可以在一些示例中存储对象的序列化表示。

在块312至318中,生成要在逐层制造过程中生成的对象的第二层的数据表示。在此示例中,将紧接在第一层之后生成第二层(即,第二层将直接地在物理上生成的对象中的第一层之上)。在其中c级节点表示多于一个层的示例中,用于生成这种层的数据可以被包含在已经提取的数据内,并且因此可以针对适当的后续层执行此方法。然而,在此示例中,第二层对应于较高的c节点。

块312包括访问数据块。如上面所指出的,此数据块可以在一些示例中被保持在本地快速存储器中,因为它相对较小。这能导致存储器访问延迟减小,这对大型数据文件来说可能很重要。块314包括从所提取的数据中丢弃表示不表示第二层的任何部分的任何节点的数据。在此示例中,这留下数据:

a:[b1-b4]

块316包括使用索引来确定序列化数据中的起始位置。在此示例中,索引可以是到被最后读取的序列化数据中的位置的指针,在此示例中,下面的位置“loc”。实际上,这可以是到被提取的数据部分的末尾或到尚未被提取的后续数据的开始的指针。

a:[b1-b4]:[cn1-cn4]n=1-4:*loc*:[cn5-cn8]n=1-4:[b5-b8]:[cn1-cn4]n=5-8:[cn5-cn8]n=5-8

块318包括从序列化八叉树表示中提取表示所有节点并且出现在起始位置之后的数据,所述所有节点表示第二层的至少一部分。这可以连同保留数据一起用于生成第二层的表示。在此示例中,它所基于的数据是:

a:[b1-b4]:[cn5-cn8]n=1-4(如上面所指出的,就b和/或c节点存在来说)。

在块320中,使用第二层的表示来生成对象层,

在块322中,包括从第一数据块保留的数据和在块318中提取的数据的更新的数据块连同到新位置的指针一起被存储在存储器中。在此示例中,指针将是到在下面指示为*loc*的位置的指针:

a:[b1-b4]:[cn1-cn4]n=1-4:[cn5-cn8]n=1-4:*loc*:[b5-b8]:[cn1-cn4]n=5-8:[cn5-cn8]n=5-8

可以按照预定制造顺序一层一层地迭代地执行此过程,其中更新的数据块被创建并用于下一层,直到检索到与最终层有关的数据为止。在此示例中,下一层向上是在区域b5-b8而不是b1-b4中,所以要丢弃的数据将在前一个数据块中只留下节点a,并且要提取的下一个数据串将包括[b5-b8]:[cn1-cn4]n=5-8。

如上面已讨论的,在一些示例中数据块可以被保持在核心内或相对较快的存储器资源(例如,本地ram)中并且相对高效地存取。序列化表示可以被保持在诸如固态存储器资源之类的“核心外”高容量存储器资源中。用于在数据存取时间方面可能相对较慢的这种高容量存储器的数据提取任务有效地分散在处理各处以生成层。在以上示例中,在对象生成期间执行方法,在此情况下它可以有助于提供不过度冗长的基本上恒定的层处理时间。可以在在先层的生成正在进行的同时执行用于后续层的数据处理。在一些示例中,可以同时执行用于多个层的数据处理。

为了考虑层处理时间的影响,示例增材制造过程可以涉及各种过程。可以在打印床或构建平台上形成构建材料的层。可以使用例如构建材料分配器来形成构建材料的层,所述构建材料分配器可以以预定厚度使构建材料沉积并散布到打印床上。

可以使用例如诸如红外灯之类的辐射源或者通过某种其他装置来预热构建材料的层。打印剂可以由试剂分配器分配到构建材料的层上。可以对构建材料的层施加能量(例如,来自熔灯或来自多个熔灯的热量)以便引起已被施加有熔剂的构建材料的那些部分的聚结和凝固。在另一个示例中,可以允许构建材料的层沉降和冷却。

上面参考示例增材制造过程所描述的过程可以形成层处理循环的一部分,可以针对要生成的多层对象的每个层重复所述层处理循环。层处理循环或层生成循环可以被认为包括关于构建材料的单个层执行以便形成要构建的三维对象的切片的一组过程,并且关于构建材料的单个层执行该组过程的时间可以被认为是层处理时间或层生成时间。这可以包括用于生成要在形成层时使用的指令(例如指定打印剂的放置、温度等)的处理时间,所述指令可以基于从对象的表示中提取的数据。

意图可以是,层处理时间对于要生成的对象的所有层来说是相同的或大致相同的。也就是说,在增材制造过程中用于每个层的层处理时间可以是大致恒定的或固定的。这里,表达“相同的”旨在意指确切相同的或大致相同的。

针对要生成的对象的所有层维持恒定的或大致恒定的层处理时间有助于确保对象被生成有一致层。

通过以所描述的序列化方式存储数据,可以贯穿数据处理有效地“摊销”其检索,并且可以更容易地实现不过度冗长的恒定的层处理时间。在一些示例中,后续层的处理可以在在先层的生成正在进行的同时开始。

在一些示例中,可以同时在存储器中制备并保持与许多层有关的数据块,例如以协助计算诸如要生成的对象的部分的层间间距之类的某些性质。

图4示出了包括处理器402、核心外存储器404和核心内存储器406的计算机系统的示意表示。核心外存储器404和核心内存储器406可以分别包括“远程”存储器和“本地”存储器,其中应该按处理器的数据检索来理解那些术语:可以比核心外存储器404更快地访问核心内存储器406。核心外存储器404可以例如被构造用于数据的高效大容量存储,然而核心内存储器可以被配置成基本上按需提供数据。为此,存储器404、406可以是不同类型的。例如,核心外存储器404可以包括固态存储器,例如硬盘驱动器hdd或固态驱动器(ssd),然而核心内存储器可以包括随机存取存储器(ram)。在其他示例中,核心外存储器404可以包括只读存储器。

在一些示例中,核心内存储器406可以在物理上更靠近处理器402(以便允许更短的信号路径实现),并且可以在物理上小于核心外存储器404。在一些示例中,处理器402可以经由计算机网络(诸如局域网、广域网或互联网)连接到核心外存储器404,然而核心内存储器可以被布置在包括处理器402的设备中或附近。在一些示例中,可以在与处理器相同的芯片或管芯上提供核心内存储器402,或者处理器可以是“在存储器中处理”处理器。在一些示例中,存储器404、406能基本上位于一处。在其他示例中核心内存储器和核心外存储器分别可以用本地存储器和远程存储器替换。

在一些示例中,序列化数据可以被存储在核心外存储器404中并且仅包括与特定层有关的数据的那些部分的数据块可以被存储在核心内存储器406中。可以注意到,一旦已制定了用于第一层的数据块,就已经从核心外存储器404中检索到与第二层有关的至少一些数据。数据的相对较慢的检索遍布数据检索和处理(并且在一些示例中,遍布对象生成运用)。

图5示出了包括处理电路504的增材制造设备502。处理电路504被适配成从要制造的对象的至少一部分的序列化表示生成要在逐层制造过程中生成的对象的第一层的数据表示,其中序列化表示包括表示多个节点的数据,所述节点以第一体积分辨率和第二体积分辨率表示对象,并且所述节点被排序为使得:

表示包括要按照对象生成的预定顺序较早地生成的对象的层的体积的节点在表示由要随后生成的对象的(一个或多个)层构成(即,完全由(一个或多个)层组成)的体积的节点之前;

对于表示包括所述对象的给定层的体积的节点,以较粗体积分辨率表示对象的节点在以更精细体积分辨率表示对象的节点之前被排序;并且

表示包括给定层并具有相同分辨率的体积的节点根据预定位置编码图案被序列化;

处理电路504可以被布置成通过从序列化表示中提取表示所有节点的连续数据串来生成第一层的数据表示,所述所有节点表示第一层的至少一部分;并且根据数据确定第一层的表示。

例如,处理电路504可以被布置成执行图3的块302到304。处理电路504可以被布置成从来自第一存储器资源(例如,远程存储器)的序列化表示中检索数据并且将所检索到的数据和/或第一层的表示存储在第二存储器资源(例如,本地存储器)中。在这种示例中,增材制造设备502可以包括第一存储器资源或第二存储器资源。在一些示例中,增材制造设备502包括第二存储器资源并且通过网络等连接到第一存储器资源。

处理电路504可以被布置成确定第一层和/或第二层(及任何后续层)的表示,并且在一些示例中可以被布置成针对处于打印设备可寻址分辨率下的多个体积中的每一个,确定该体积是在对象内部还是在对象外部。在其他示例中,可以确定该体积是否将被制造成具有特定属性或性质或者缺少特定属性或性质。

处理电路504可以被布置成确定包括提取的数据以及指示未被包含在所提取的数据中的序列化表示中的位置的索引的数据块,例如如关于块308所讨论的。

处理电路504可以被布置成生成要在逐层制造过程中生成的对象的第二层的数据表示,其中第二切片将在第一切片之后被生成,其中生成第二层的数据表示包括:从所提取的数据中丢弃表示不包含第二层的任何部分的任何节点的数据,使用索引来确定序列化数据中的起始位置;以及从序列化表示中提取表示包含第二层的至少一部分的所有节点并且出现在起始位置之后的数据。这可以包括提取连续数据串。例如,处理电路504可以被布置成执行图3的块312至318。

处理电路504可以被布置成执行图3的任何其他块。

处理电路504可以具有关于处理器402所描述的任何属性。

增材制造设备502可以包括或者与打印床、制作室、打印头、一个或多个能量来源、构建材料源、源或一个或多个打印剂或任何其他增材制造设备组件相关联。

图6a示出了要在逐层制造过程中制造的对象的至少一部分的表示的八叉树表示。表示包括表示多个节点(作为圆示出)的数据,所述节点包括对象在第一体积分辨率、第二体积分辨率和第三体积分辨率下的表示,其中,在第二体积分辨率中,第一体积分辨率的体积被细分成八分体,并且在第三体积分辨率中,第二体积分辨率的体积被细分成八分体。这里,表示第三体积分辨率的圆小于表示第二体积分辨率的圆,其小于表示第一体积分辨率的圆。

表示是二维的,示出体积分辨率内的z维度(即给定大小的表示对象的下部部分的节点被示出为在页面上比该大小的表示在对象中较高的部分的节点低),但是x和y维度被展平。

图6b示出了节点的序列化表示,其中表示包括要按照对象生成的预定顺序较早地生成的对象的层的体积的节点在表示由要随后生成的对象的(一个或多个)层构成的体积的节点之前。

此外,对于表示包括对象的给定层的体积的节点,处于第一体积分辨率下的节点在处于第二体积分辨率下的节点之前并且处于第二体积分辨率下的节点在处于第三体积分辨率下的节点之前。

此外,表示包括给定层并具有相同分辨率的体积的节点根据预定位置编码图案被序列化。在图6b中这通过方括号来表示。可以使用任何位置编码图案(诸如莫顿或z顺序、码等)使每组方括号内的节点集展平成一维阵列。

应理解的是,能以多于三个分辨率级表示对象。

在图6b中,由于页面区域的约束序列化码被示出在两行上。在概念上,这应该被视为数据的连续序列化。

如上所述,图6b中所示的数据结构适于“摊销”增材制造过程中的数据检索。

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

参考根据本公开的示例的方法、装置和系统的流程图和/或框图对本公开进行描述。尽管上述的流程图示出了具体执行顺序,但是执行顺序可以与所描绘的顺序不同,并且可以并行执行至少一些过程。关于一个流程图所描述的块可以与另一流程图的块组合。应理解的是,流程图中的至少一些流程以及流程图和/或框图中的流程和/或图的组合可通过机器可读指令来实现。

机器可读指令可以例如由通用计算机、专用计算机、嵌入式处理器或其他可编程数据处理装置的处理器执行以实现说明书和图中描述的功能。特别地,处理器或处理设备可以执行机器可读指令。因此设备和装置的功能模块可以由执行存储在存储器中的机器可读指令的处理器或依照嵌入在逻辑电路中的指令操作的处理器来实现。术语“处理器”将被广义地解释成包括cpu、处理单元、asic、逻辑单元或可编程门阵列等。方法和功能模块可以全部由单个处理器执行或者划分在若干处理器之中。

此类机器可读指令还可以被存储在计算机可读储存器中,所述计算机可读储存器可引导计算机或其他可编程数据处理装置在具体模式下操作。

此类机器可读指令也可以被加载到计算机或其他可编程数据处理装置上,使得该计算机或其他可编程数据处理装置执行一系列操作来产生计算机实现的处理,从而在该计算机或其他可编程装置上执行的指令实现由流程图中的(一个或多个)流程和/或框图中的(一个或多个)块所指定的功能。

进一步地,可以以计算机软件产品的形式实现本文的教导,计算机软件产品被存储在存储介质中并且包括用于使计算机装置实现本公开的示例中叙述的方法的多个指令。

虽然已经参考某些示例描述了方法、设备和相关方面,但是在不脱离本公开的精神的情况下,可做出各种修改、改变、省略和取代。因此,意图是方法、设备和相关方面仅受到以下权利要求及其等同物的范围限制。应该注意的是,上面提及的示例图示而不是限制本文中描述的东西,并且本领域的技术人员将能够在不脱离所附权利要求的范围的情况下设计许多替代实施方式。关于一个示例所描述的特征可以与另一示例的特征组合。

单词“包括”不排除存在除权利要求中列举的那些元件以外的元件,“一”或“一个”不排除多个,并且单个处理器或其他单元可以履行权利要求中叙述的若干单元的功能。

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

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