创建三维(3D)物体的体素表示的制作方法

文档序号:11288975阅读:310来源:国知局
创建三维(3D)物体的体素表示的制造方法与工艺



背景技术:

三维(3d)打印通常用来描述用于制造3d物体过程的术语。在3d打印中,增材过程可用于连续层叠材料以创建3d物体。被打印3d物体的分辨率可能受到打印3d物体的3d打印机分辨率的限制。

附图说明

图1图示根据本公开的计算设备的示例框图。

图2图示根据本公开创建三维(3d)物体的体素表示的系统的示例框图。

图3图示根据本公开生成切片数据的示例框图。

图4图示根据本公开创建3d物体体素表示的示例框图。

图5图示根据本公开的体素的示例网格。

图6图示根据本公开的体素的示例。

图7图示根据本公开用于创建3d物体体素表示的方法的示例流程图。

具体实施方式

创建三维(3d)物体的体素表示可包括获取3d物体的形状规范和3d物体的多个目标。如本文所使用的,3d物体为可沿x轴、y轴和z轴表示的物体。形状规范定义3d物体的形状(例如几何)。该形状规范可为几何参数和/或坐标的规范。形状规范还可为几何参数和/或坐标的可接受范围。创建3d物体的体素表示可包括,通过将来自多个材料类型中的材料类型分配给3d物体的体素表示中的定义3d物体的每个体素来创建体素表示。创建3d物体的体素表示可包括评估体素表示以确定多个目标是否被满足。

在多个其他方法中,体素为3d网格的体积实体,其为3d物体最基本的构成块。因此,任何形状的分辨率和/或材料的改变最多可达到体素等级而不划分体素,与不划分体素相比,这导致对计算资源(例如处理资源和/或存储器资源)的附加需求。小于体素的细节可被丢弃。这可能是不希望的,与利用边界网络表示3d物体的其他方法相反,其中尖锐特征(例如角)被保存。

相反,在本公开的多个示例中,每个体素关联于多种数据类型和/或材料类型,以编码3d物体的特征。关联于体素的数据类型可用于解码具有比给定体素更高分辨率的物体的特征材料。3d类型可定义关联于体素的材料。在多个示例中,材料类型为加载在3d打印机中用于利用3d物体的体素表示来打印3d物体的材料类型(例如凝聚改性剂、详细制剂和/或构建材料)和/或与3d打印机兼容的材料类型。

图1图示根据本公开的计算设备的示例的框图。计算设备100可包括处理资源102,连接104至存储器资源106(例如计算机可读介质(crm)、机器可读介质(mrm)、数据库等)。存储器资源106可包括多个计算模块。图1的示例示出了规范模块108、合并模块109、分配模块110和/或评估模块111。如本文所使用的,计算模块可包括程序代码(例如计算机可执行指令、硬件、固件和/或逻辑),还至少包括可由处理资源102执行的指令(例如以模块的形式执行本文参考附图3-7更详细描述的特定动作、任务和功能)。

如本文所使用并结合图3更详细地说明的规范模块108可包括由处理资源102执行的指令,以创建和/或接收多个形状规范和/或多个材料规范。形状规范可描述3d物体的形状(例如几何结构)。例如,单个形状规范可描述3d物体或多个形状规范的每一个可描述3d物体的多个部分。

材料规范定义了形成3d物体的材料和/或材料属性(例如弹性、强度和/或颜色,以及其他材料属性)。在多个示例,材料规范的维度可为形状规范的维度,或材料规范的维度可不同于形状规范的维度。材料规范可由多个材料属性值定义。

合并模块109可包括由处理资源102执行的指令,以合并多个形状规范与多个材料规范。形状规范和材料规范可被合并以创建3d物体的单个模型。3d物体的单个模型可由体素的网格定义(例如3d网格)。体素可为关联于3d空间的体积。体素可关联于多种数据类型和/或材料类型,其可在比体素网格提供的更高分辨率下定义3d物体的特征。体素位置可基于其相对于其他体素的位置而推断。从形状规范330和材料规范332的合并而创建的体素网格为3d物体模型的示例。图3进一步描述了形状规范与材料规范的合并结果。

分配模块110可包括由处理资源102执行的指令,以通过将来自多个材料类型中的材料类型分配给3d物体的体素表示中的每个体素。材料类型可由3d打印机定义。例如,3d打印机可为分配模块110提供多个材料类型,其定义由3d打印机使用的多个打印材料。在多个示例,分配模块110可将材料类型分配给体素,与材料规范是否被获取或材料规范是否未被获取无关。

评估模块111可包括由处理资源102执行的指令,以在体素已被分配材料类型以确定多个目标和/或多个标准是否被满足之后评估体素表示。评估体素表示可包括评估体素表示中表示的3d物体。评估3d物体可包括评估3d物体的多个组件(例如部件),以确定组件是否满足多个目标和/或多个标准的至少一个。

标准可包括形状需求。形状需求可描述不同的部件在3d物体中如何交互。标准可包括机械强度需求,例如。机械强度需求的示例包括应力需求、拉力需求、压缩需求和/或温度需求。温度需求可定义3d物体在没有形变和/或没有预定义变化内的形变时可承受的低温和/或高温。形变可包括3d物体形状扩展和/或3d物体形状的收缩。

目标可包括重量目标、成本目标和/或制作成本目标。重量目标可请求3d物体尽可能地轻。成本目标可请求3d物体的制作成本尽可能低。制作时间目标可请求制作时间尽可能低。

分配模块110可当评估确定多个目标和/或多个标准未满足时,将材料类型重新分配给3d物体的体素表示中的体素。当多个目标和/或多个标准被满足和/或预定义数量的多个目标和/或多个标准被满足时,3d物体的体素表示可为完整的。例如,当满足多个目标和/或多个标准中不存在更多改进时,3d目标的体素表示可为完整的。当关联于满足目标和/或多个标准的计算成本大于预定义阈值时,3d目标的体素表示也可为完整的。

关联于3d物体的多个特征可在体素的每个网格中编码。子体素特征由体素中的存储数据(例如数据类型和/或材料类型)编码。

在多个示例,3d物体的体素表示可被切片为切片数据。切片数据为获取自3d物体模型的数据,其可被提供至3d打印机并用以打印3d物体。切片数据在图3进一步描述。

具有比来自给定体素的体素网格提供分辨率更高的分辨率的3d物体的特征可被解码。具有比来自体素网格的任何体素提供分辨率更高的分辨率的特征可被解码以利用比体素网格提供的分辨率更高的分辨率打印3d物体。

图1示出的多个模块(例如规范模块108、合并模块109、分配模块110和评估模块111)可与其他模块合并或作为其他模块的子模块。模块可存储于图1所示的存储器资源106和/或包含于相同的计算设备中。在另一示例,多个模块(例如规范模块108、合并模块109、分配模块110和评估模块111)可包括如分布式计算环境(例如云计算环境)的不同存储器资源(例如crm等)独立而不同位置上的独立模块。进一步,执行关联于特定模块(例如规范模块108、合并模块109、分配模块110和评估模块111)的指令的处理资源102可作为引擎,如图2所示的示例引擎。如本文所使用的,多个模块和/或多个引擎可包括比所示出的更多或更少的引擎/模块。

图2说明了根据本公开从体素表示生成切片数据的系统示例的框图。系统220可执行多个功能和操作,如图3描述(例如生成数据以驱动3d打印机)。系统220可包括数据存储221,连接于用户定义的功能系统222。在该示例中,用户定义的功能系统222可包括多个计算引擎。图2的示例示出了规范引擎223、合并引擎224、分配引擎225和评估引擎226。如本文所使用的,计算引擎可包括硬件固件,逻辑和/或可执行指令,还至少包括硬件(例如处理器、晶体管逻辑、专用集成电路(asic)等)执行指令,以执行本文参考图3更详细地描述的特定动作、任务和功能。

在图2的示例,规范引擎223可包括硬件和/或硬件和编程的组合(例如可执行指令),但至少包括硬件,以创建、接收和/或定义多个3d物体的规范,多个目标和多个标准。

合并引擎224可包括硬件和/或硬件和编程的组合,但至少包括硬件,以合并3d物体的规范以创建3d物体的体素表示。分配引擎225可包括硬件和/或硬件和编程的组合,但至少包括硬件,以将体素表示中表示的3d物体划分为3d物体的外壳部分和内部部分。分配引擎225可包括硬件和/或硬件和编程的组合,但至少包括硬件,以将材料类型分配给体素表示中的每个体素。

评估引擎226可包括硬件和/或硬件和编程的组合,但至少包括硬件,以在每次材料类型被分配给体素表示中的体素时评估体素表示,以确定多个目标和/或标准是否被满足。3d物体可被划分为外壳部分和内部部分,以满足多个目标和/或标准。内部部分可被分配void材料类型。即,关联于内部部分的一部分体素可根据目标和/或标准而被分配void材料类型和/或任何其他材料类型。为3d物体的内部部分的体素分配void材料类型可导致中空的内部结构和/或完全中空的3d物体的内部部分。分配给体素表示的体素材料类型可与体素相关材料规范中定义的材料兼容。

分配引擎225还可包括硬件和/或硬件和编程的组合,但至少包括硬件,以当多个条件在评估引擎226被确定为未满足时,将材料类型重新分配给体素表示中的体素。材料类型可基于学习模块如遗传学习模块重新分配,以尝试引导材料类型朝向满足体素表示中定义的3d目标的条件和/或标准的状态进行分配。材料类型还可基于其他进化学习模块重新分配(例如模拟退火学习模块和/或蜂群学习模块)。

图2所示的规范引擎223、合并引擎224、分配引擎225和评估引擎226和/或图1中的规范模块108、合并模块109、分配模块110和评估模块111可为其他引擎/模块的子引擎/模块和/或合并以执行特定系统和/或计算设备中的特定动作、任务和功能。进一步,结合附图1和2描述的引擎和/或模块可位于单个系统和/或计算设备或驻留于分布式计算环境(例如云计算环境)的独立而不同的位置。示例不限于该示例。

图3说明了根据本公开生成切片数据的示例的框图。图3说明了形状规范330、材料规范332、形状规范330和材料规范332的体素化334,以合并形状规范330与材料规范332以创建3d物体的体素表示(例如模型)。图4描述了创建3d物体的体素表示。图3还说明了异常342、树形数据结构336的构造、树形数据结构的串行化导出344、树形数据结构的缩放338、树形数据结构的切片340,以及提供切片数据至3d打印机(例如打印机)346。

如本文所使用的,创建形状规范330和材料规范332、合并形状规范330和材料规范332、创建形状规范330和材料规范332的体素表示、构造树形数据结构336、缩放338关联于树形数据结构的树形数据结构和/或切片340数据可为设计过程的一部分。设计过程可独立于打印过程,包括提供切片数据至打印机346和/或打印切片数据。例如,设计过程可产生于3d打印机和/或关联于打印机的处理资源之外。设计过程还可为打印过程的一部分。例如,设计过程可执行于3d打印机和/或关联于3d打印机的处理资源。

形状规范330可为定义3d物体形状的3d模型。形状规范330可定义3d物体的内部和外部部分。形状规范330可为多个形状规范330。多个形状规范330可共同定义3d物体。例如,多个形状规范330的每一个可定义3d物体的不同部分。3d物体的每个不同部分可定义3d物体的不同部件。

形状规范330可利用多边形网络定义。例如,形状规范330可利用多个格式定义,如立体平板印刷(stl)文件格式、obj文件格式和/或x3d文件格式以及其他类型的文件格式。

材料规范332为3d物体的材料类型和/或材料属性的3d分布。如本文所使用的,术语材料类型和材料可互换使用。材料属性可为材料类型的属性。例如,材料类型可为由3d打印机使用的颜色,而材料属性可为红色、绿色、蓝色(rgb)值。材料规范332可为多个材料规范332。例如,第一材料规范332可定义第一材料类型,而第二材料规范332可定义第二材料类型,第一材料类型和第二材料类型包括3d物体中的材料(例如不同的材料)。然而,多个材料规范332可包括多于两个材料规范。

材料规范332还可定义关联于包括3d物体的材料类型和/或多个材料类型的多个材料属性。例如,第一材料规范332可定义特定材料的密度,而当材料类型的密度和颜色为关联于材料类型的材料属性时,第二材料规范332可定义特定材料的颜色。

材料规范332可提供3d物体内部和3d物体的部分表面的材料异质性的描述。材料规范332可描述不同的材料类型和/或属性类型之间的多个交互。例如材料规范332可描述分离式多材料交互、功能定级的多材料交互和数字工程多材料交互。

材料(类型或属性)分布独立于形状规范来指定(例如顶点、元素、碎片)。材料规范可为描述材料属性的分布(例如平面形状)的三维数学函数,具有材料量的连续变型(例如热传导性、同心形状、小波等)。分布还可描述3d空间中希望的变型(离散或连续),其允许使用任意材料分布图案,包括连续(例如同心图案)和离散(例如二进制平面图案)。分布可通过数学表达式描述或来自其他数字化源(例如图像)的映射。分布还可由将材料类型分配给每个体素的描述。

形状规范330和材料规范332相互独立。即,形状规范330和材料规范332可互不遵守。例如,形状规范330可定义3d物体的形状,而材料规范332可定义形状规范332所定义的3d物体形状的材料内部和/或外部边界。然而,该独立性不排除形状规范330作为材料规范332的一部分或材料规范332作为形状规范330的一部分。即,该独立性不排除形状规范330和材料规范332被存储为同一文件。

在多个示例,形状规范330和材料规范332可在形状规范330和材料规范332被合并之前和/或在形状规范330进行体素化334之前被几何缩放。形状规范330可被几何缩放至材料规范332的分辨率。材料规范332可被几何缩放至形状规范332的分辨率。以上几何缩放可利用缩放向量而呈现各向异性。即,以上几何缩放可为方向依赖。

形状规范330和材料规范332的体素化334可定义形状规范330和材料规范332的合并器。合并形状规范330和材料规范332还可描述为将形状规范330和材料规范332的进行合成。

形状规范330和材料规范332可通过相对于另一规范而固定一个规范的六个自由度来合并。例如,质心(x,y和z)可需要三个自由度,而三个旋转角(翻滚,偏航和俯仰)可需要附加的三个自由度。固定质心(x,y和z)和三个旋转角(翻滚,偏航和俯仰)可相对于形状规范330合并材料规范332,结果可将材料规范332和形状规范330绑定。

在多个示例,多个形状规范330可与一个材料规范332合并以定义3d物体。例如,第一形状规范330和第二形状规范330可与材料规范332合并。即,材料规范330可用于描述3d物体的多个部分的材料分布。多个材料规范332可与形状规范合并以定义3d物体。例如,第一材料规范332和第二材料规范332可与形状规范330合并。即,多个材料规范330可描述3d物体的不同材料属性。多个材料规范332可与多个形状规范330合并以定义3d物体。例如,第一材料规范332可与第一形状规范330合并,而第二材料规范332可与第二形状规范330合并,其可定义3d物体。即,3d物体的第一部分可由第一材料规范332和第一形状规范330定义,而3d物体的第二部分可由第二材料规范332和第二形状规范330定义。此外,第一材料规范332可定义3d物体的部分(例如部件)的热传导性,而第二材料规范332可定义3d物体的相同部分的纹理。

形状规范330和材料规范332的合并可利用多个处理资源并行执行。例如,多个处理资源可包括多个cpu和/或多个图形处理单元(gpu)。

合并形状规范330和材料规范332可包括将利用边界网络描述的形状规范330扫描转换为体素网格。在多个示例,形状规范330可被扫描转换,以创建体素网格而不合并材料规范332。即,3d物体的体素表示可从形状规范330创建而不需要材料规范332。

体素网格的示例在图5提供。如本文所使用的,体素表示3d空间的值。体素可为关联于3d空间的体积。体素可具有实体值、void(例如空),或不同地定义3d空间的描述,如材料类型。体素位置可基于其相对于其他体素的位置来推断。从形状规范330和材料规范332的合并而创建的体素网格可为3d物体体素表示的示例(例如模型)。

在创建体素网格中,体素网格的每个体素被定义。定义体素可包括以体素编码形状特征。在多个示例,体素网格可在体素网格被定义之后利用形状特征编码。编码形状特征可包括存储实体值和/或空值以外的关联于3d物体形状的多种数据类型。关联于体素的多种数据类型可用于从特定体素和/或一组体素解码(例如重构)多个特征。多个解码特征可为形状(例如几何)特征或关联于3d物体的材料边界。存储于体素网格的每个体素的多种数据类型可提供利用比体素网格所提供的更高分辨率来打印3d物体的能力。从体素网格的多个体素解码的多个特征可提供3d物体的增加的分辨率。例如,在分配材料类型期间,多个材料类型可被分配给体素。分配给体素的每个材料类型可占据体素片段。体素的不同材料类型之间的接口可由体素中记录的形状特征数据来定义。

在形状规范330的扫描转换期间,其可确定形状规范330是否为水密(例如气密)。如本文所使用的,水密用于描述适合3d打印的模型。水密模型表示模型中不存在将使模型不适合3d打印的孔隙、缝隙,或遗漏的特征。异常342可出现,以使扫描转换过程终止并参考体素网格的一部分,其在体素网格并非水密时应当被修复以继续3d物体的3d打印。

扫描转换还可包括将关联于材料规范332的材料属性值变换为制作3d物体的不同类型的材料和/或材料属性。即,形状规范330和材料规范332的体素化334可包括将利用材料规范332中描述的材料类型和/或材料属性来映射体素。

通过利用自底向上并行化构造来构建树形数据结构336,同时评估树形数据结构中每个节点的材料类型,体素可被映射至材料类型和/或材料属性。

自底向上并行化构造可包括遍历体素网格。例如,多个叶节点可关联于体素网格。叶节点(例如等级i)可向上游遍历(例如从叶节点到根节点)以查找在其双亲等级(例如等级i-1)的非叶节点。节点数组可被创建以将节点保持为叶节点。叶节点数量可为等级i-1中非叶节点的8倍。在树形结构每个等级(例如等级i-2,…,等级i-q)的节点可加入节点数组,直到达到根节点。

节点数组可并行创建。即,树形结构中不同的路径可并行遍历以将节点加入节点数组。在创建节点数组之后,关联于叶节点的材料可基于材料规范332的定义。层次化传播可用于标识交叉体素,其表明材料属性的变化,并将材料信息(例如给定体素的材料类型)填充至交叉体素之间的体素。填充过程指定沿x轴。然而,填充过程可沿任何预定义的轴。

在多个示例,适合利用材料和/或材料属性映射体素网格的树形数据结构可为八叉树。八叉树可存储形状规范330和材料规范332的体素化334的结果。

体素网格中的每个体素可由树形数据结构(例如八叉树)的节点表示。每个节点可包括关联于对应体素的数据。例如,在图1的子体素特征解码模块112,每个节点可通过利用关联于使形状特征从给定体素和/或一组体素来解码(例如提取)的体素的数据类型而编码形状特征来定义。结果,多个形状特征还可从图2的子体素特征解码模块227的给定节点中解码。利用相关数据类型从特定节点解码形状特征可提供重构形状特征以达到小于体素尺寸的分辨率的能力。

八叉树可表示任意形状(例如凸面体、凹面体和/或具有孔)并可携带节点属性以表示任何材料分布(例如材料类型和/或材料属性)。八叉树可通过利用最大可能的体素来压缩体素数据结构以表示同质区域。如本文所使用的,当树形数据结构(例如八叉树)中的多个邻居节点具有统一形状、材料类型和/或材料属性而没有关联于3d物体形状的边界和/或关联于形成交叉多个邻居节点的3d物体的材料类型和/或材料属性的边界时,区域是同质的。

附加的轻量级后处理过程,本文称为八叉树剪切,可被实现以进一步检查该树以将邻居同质节点合并为一个。用于存储树形数据结构的文件的显著文件尺寸缩小可通过执行后处理八叉树剪切而实现。此外,树形数据结构串行化导出344(例如解串行化)可被实现以允许将树形数据结构写入文件用于未来使用或用于其他应用。即,八叉树可被串行化和导出以提供3d物体的模板,其可独立于在特定3d打印机打印3d物体而参考。例如,被创建以在第一3d打印机打印3d物体的八叉树可被重用于在第二3d打印机中利用不同于第一3d打印机的打印分辨率打印3d物体,而不需要重建八叉树。

树形数据结构可被缩放338后处理,以满足特定3d打印机的打印分辨率。如本文所使用的,后处理指代产生在树形数据结构336的构造之后的处理。即,树形数据结构可独立于树形数据结构336的构造而被缩放338。缩放338树形数据结构后处理提供了重用树形数据结构以在多个3d打印机用不同的打印分辨率打印3d物体的能力,而不需要多次重构树形数据结构。

在多个示例,树形数据结构的缩放338可利用多个处理器并行执行。具有特定分辨率的树形数据结构可通过检查和划分叶节点而被缩放至更高分辨率,其中更深的异质性可被材料化,同时保留已有树形数据结构。

将树形数据结构缩放至比树形数据结构所提供的更高分辨率可包括,利用关联于独立体素的相关数据类型从独立的体素解码形状特征。形状特征可分别在附图1和2的子体素特征模块110和/或子体素特征引擎225解码。

通过检查和合并可包括相似性的叶节点同时保留已有树形数据结构,具有特定分辨率的树形数据结构还可被缩放338至较低的分辨率。例如,树形数据结构底层的实体节点可被合并以将树形数据结构缩放338至较低分辨率。

缩放338同时保留已有树形数据结构,本文称为适度缩放,因为树形数据结构不被重构,而是使用先前已有的树形数据结构来进一步定义(例如提供更高分辨率)树形数据结构。

适度缩放提供了树形数据结构的有效处理。例如,树形数据结构可利用形状规范330和材料规范332而以默认分辨率计算和存储一次。3d打印机所允许的打印分辨率和多个材料可被获取以利用树形数据结构打印3d物体。打印分辨率和多个材料可与树形数据结构的默认分辨率和树形数据结构中使用的多个材料相比较。基于该比较,树形数据结构可被缩放338以满足特定3d打印机的分辨率。在多个示例,树形数据结构可被重新评估以在树形数据结构被缩放338之后移除冗余节点。

树形数据结构可被切片340以提供切片数据至3d打印机。树形数据结构可在树形数据结构的构造336和/或树形数据结构的缩放338之后被切片340。如本文所使用的,切片数据为记入树形数据结构的一部分数据。

树形数据结构可通过在多个cpu和/或gpu实现树形数据结构的自顶向下遍历并通过将邻居节点相互关联来切片340。邻居节点可例如利用节点等级来关联。即,关联于树形数据结构的树形层次化结构可被定义。在多个示例,关联于树形数据结构的树形层次化结构可在形状规范330和/或材料规范332的体素化334,在树形数据结构336的构造期间和/或在树形数据结构的缩放338期间而被定义。实现树形数据结构的自顶向下遍历和节点组合可加速树形数据结构的切片340。

对树形数据结构进行切片340可包括标识切片平面的z坐标。切片平面的z坐标可用于遍历树形数据结构以标识由切片平面所截取的相关节点。关联于相关节点的形状和材料属性可被收集以包括切片数据。在多个示例,切片数据可进一步分为每个材料类型的多个位图,其可被传输至打印机以驱动3d物体的打印(例如驱动材料的沉积和物体的形成)。

切片平面可与关联于体素表示(例如体素网格)的体素尺寸和/或体素分辨率无关。体素分辨率和切片平面之间的无关性可由于与体素网格的每个体素关联存储的数据类型而创建。例如,数据类型可提供创建切片平面的能力,其可通过解码体素而不将体素划分为多个体素而用于提供形状特征。形状特征可利用利用数据类型计算(例如边缘数据、表面数据、体积数据和/或节点数据)的表面三角形而被重构。

当实现平面切割体素时,材料分辨率的改变不限于体素尺寸(例如等级),相反,材料的改变可例如通过以截取线截取该切割平面而在体素中定义。

表面三角形可定义切割边界,如图6所描述。切割边界为3d表面(例如平面或曲面),其表示具有特定体素的3d物体的特征截取(例如形状边界和/或材料边界)。切割边界可由多个截取线定义。存储于体素的数据类型可用于重构表面三角形以用切割边界的形式定义形状特征。如本文所使用的,切割边界可描述将体素的体积划分为至少两个部分的平面。然而,本文提供的示例不限于重构表面三角形。在多个示例,其他类型的形式可被重构。例如,重构形状特征可包括其他形式的切割边界表示技术,如功能表示。

在多个示例,形状特征和/或材料边界可在树形数据结构的切片340之前和/或期间从体素中利用相关数据类型解码。切片数据可包括从体素中利用相关数据类型解码的形状特征(子体素特征)。如本文所使用的,术语形状特征和子体素特征可互换使用。

提供346切片数据至打印机可包括渐进式将切片数据流动传输至3d打印机以打印3d物体。切片数据的流动传输可提供打印大型和复杂3d物体的能力,而不增加关联于3d打印机的打印机网络和存储的负担。切片数据的流动传输可降低由3d打印机使用以接收切片数据的存储空间,因为流动传输至3d打印机的切片数据不会一次描述整个3d物体,而是在给定时间提供3d物体的一部分描述。

3d打印机中树形数据结构的切片可由安装于3d打印机的cpu和存储器来限定。上传切片数据至3d打印机将由安装于3d打印机的存储空间界定。

计算设备可利用并行化gpu对树形数据结构切片。计算设备还可将切片数据流动传输至3d打印机。将切片数据流动传输至3d打印机可包括将单个切片或多个切片在给定时间流动传输。流动传输至3d打印机的切片数据的切片速率可与可用于3d打印机的存储空间和利用3d打印机打印一层的时间相关。例如,在3d打印机打印关联于数据切片的一部分3d物体之后,当切片数据的第一切片可被提供至3d打印机时,数据的第二切片可被提供至3d打印机。

在多个示例,切片数据可连续地流动传输至打印机,直到存储在3d打印机中总的未打印切片计数等于特定切片数量(例如打印机的存储限制所限定的用户设置的数量)。在多个示例,被打印的切片数据被丢弃。

先进先出队列可用于存储3d打印机中流动传输的切片。队列长度(n)可由3d打印机的存储空间限定。3d打印机可从队列头部拉取切片数据的切片(例如当前切片),打印拉取的切片和/或丢弃打印切片。3d打印机可在队列中存在空的单元时,从切片引擎请求附加的切片数据。切片引擎可处理附加的切片并提供附加的切片至3d打印机。

图4说明了根据本公开创建3d物体体素表示的示例的框图。如472所示出,多个输入被获取。输入可包括形状规范、材料规范(未示出)、多个材料类型、3d物体标准、约束和/或3d物体目标。然而,比本文所示更多或更少的输入可用于创建3d物体的体素表示。

在图4,在472获取的材料类型可不同于材料规范所提供的材料类型。即,由用户通过材料规范提供的材料类型可不同于3d打印机提供的材料类型。例如,材料规范中(例如由用户)呈现的材料类型可描述用于创建3d物体的理想材料。在472获取的材料类型可描述可用于特定3d打印机的材料,用于利用3d物体的体素表示打印3d物体。

在多个示例,在472获取的材料类型可基于其对打印机的立即可用性来排序,用于在3d打印机中打印。在472获取的材料类型还可基于其成本来排序,其影响打印3d物体的成本。在472获取的材料类型还可基于其他因素排序。材料类型对体素的初始分配可基于材料类型的排序。材料类型对体素的后续分配还可基于材料类型的排序。

在472获取的材料类型可影响3d物体和/或3d物体的相关部件的结果性能。void值可为标识意图将该体素置空的材料类型。

3d物体和/或3d物体的相关部件性能可描述工程属性和/或制造属性的性能。3d物体标准可为3d物体和/或3d物体相关部件所满足的硬件工程属性。例如,3d物体需求可定义关联于3d物体和/或3d物体的一部分的硬度和/或半透明度。其他3d物体标准可定义3d物体的不同属性。

3d物体目标可为关联于3d物体和/或3d物体的部件工程属性性能的测量。3d物体目标还可为关联于3d物体的制造属性性能的测量。如本文所使用的,工程属性的性能描述3d物体的功能和/或影响3d物体性能的3d物体的属性。制造属性的性能描述3d物体和/或3d物体的相关部件的制造。例如,制造属性可包括关联于打印3d物体和/或3d物体的相关部件的成本、关联于打印3d物体和/或3d物体的相关部件的持续时间、希望打印3d物体和/或3d物体的相关部件的打印机类型,以及其他制造属性。

如473所示出,3d物体的体素表示可被创建,如图3所描述。创建3d物体的体素表示可进一步包括将体素表示中的体素分类为外部体素、表面体素和/或内部体素,或外壳体素,以及体素的其他分类。

外部体素可标识3d物体体素表示的部分,其不属于3d物体的部件。即,外部体素可标识3d打印机不打印的负空间。

创建3d物体的体素表示可包括将3d物体划分为表面体素和/或内部体素。在多个示例,形状规范和/或材料规范可标识3d物体的表面部分和/或3d物体的内部部分。在该示例,表面体素可从形状规范和/或材料规范中标识的表面部分创建。内部体素可从形状规范和/或材料规范中标识的内部部分创建。

在多个示例,形状规范和/或材料规范不标识3d物体的表面部分和/或3d物体的内部部分。在该示例,3d物体可被划分为表面部分和/或3d物体的内部部分。表面体素和/或外壳体素可表示3d物体的表面部分。内部体素可表示3d物体的内部部分。将3d物体划分为表面部分和/或3d物体的内部部分达到多种目的。将3d物体划分为表面部分和/或内部部分在满足多个3d物体目标和/或多个3d标准中可提供可伸缩性。例如,将3d物体划分为表面部分和/或内部部分可提供满足3d物体的重量目标和/或需求的能力。

表面体素(例如外壳体素)可包括形状表面所切割的体素。表面体素还可包括暴露至3d物体的形状边界的体素。当体素表面、体素边缘和/或体素的角被暴露至形状边界时,表面体素可被暴露至3d物体的形状边界。

外壳体素可包括表面体素和接近表面体素的内部体素。例如,外壳体素可为靠近表面体素的附加体素,根据邻近标准其可看作表面体素。邻近标准可由多个体素定义,包括形状表面的深度。例如,形状表面的深度可由6邻近体素、18邻近体素和/或26邻近体素,以及其他可能的深度组成。代替表面体素,体素可被分类为外壳体素,以定义表面属性。例如,定义关联于外壳体素的材料类型的颜色和/或纹理可通过多个邻接的体素传播材料类型属性,而定义材料类型的表面体素的颜色和/或纹理不影响邻接于表面体素的体素。在多个示例,表面体素和/或外壳体素无法被分配void材料类型。

在多个示例,3d物体的体素表示之外的不同表示可由用于表示3d物体的不同的基本单元组成。例如,3d物体的节点表示(例如八叉树)可包括由节点组成的表面部分。

从内部体素划分表面体素可提供满足3d物体的目标和/或关联于3d物体表面的3d标准的能力。例如,从内部体素分离表面体素可提供将相比于内部体素不同的材料类型分配给表面体素的能力。不同的材料类型可提供不同的属性至表面体素和/或内部体素。例如,关联于3d物体的表面的颜色和/或纹理可通过将相比于内部体素不同的材料类型分配给表面体素而在表面体素中表示。

表面体素不应被填充void材料类型以保存3d物体的形状。在多个示例,附加的限制可位于表面体素。例如,将材料类型分配给表面体素可受将材料类型分配给内部体素,3d物体目标和/或3d标准的限制。

内部体素可被分配void材料类型和/或可用于特定3d打印机以打印的其他任何材料类型。内部体素的材料类型选项的选择可由3d物体目标和/或3d标准引导。

如474所示出,材料类型可被分配给每个体素以使每个体素被分配材料类型。可分配给体素和/或体素片段。将材料类型分配给体素片段可包括分配第一材料类型至体素的第一部分并分配第二材料类型至体素的第二部分。

分配给体素片段的材料类型可受特定打印过程的影响。特定技术的固化过程可描述分配给体素片段的材料类型和形成固化剂的位图(例如多射流熔融的情况下的喷墨滴、sls的情况下的激光光束)之间的不同转换(例如补偿)。修改分配给体素的部分的材料类型的这种转换可导致固化过程的不同选择。不同的选择可包括材料类型、固化剂、半色调(例如点图形)和/或制剂限制的覆盖范围,以及固化过程的其他选择。

不同的材料经历不同的打印过程。不同的打印过程可具有不同的物理扭曲。例如,第一打印过程可导致所使用材料类型的收缩。第二打印过程可导致所使用材料类型的扩展。物理扭曲可在材料类型和/或打印过程之间不同地变化。为补偿打印过程的物理扭曲,3d物体的体素表示可被预先扩展或/或预先收缩。例如,体素表示的不同部分可被预先扩展和/或预先收缩,以使最终制造产品具有正确的形状。

将材料类型分配给体素和/或体素片段可为随机,由材料规范引导和/或由下文所述的学习模块引导。随机数生成器可用于为体素(例如表面体素和/或内部体素)选择材料类型。例如,[0,1]之间的浮点f在可由随机数生成器生成。材料类型可通过用n乘以f(例如f*n)并将结果取整为最接近的整数来选择,其中n为材料类型的总数并且[0,n]之间的每个整数表示不同的材料类型标识(id)。例如,如果随机数生成器生成具有0.3数值的浮点并且存在10个不同的材料类型,则选择的材料类型可为具有材料类型id等于三个(3)的材料类型,其结果为0.3乘以10。

在474分配的材料类型可由材料规范中定义的材料类型引导。在472获取的材料类型可关联于材料规范中定义的材料类型。材料类型可基于在472获取的材料类型和材料规范中定义的材料类型之间的相关性而被分配给体素。例如,当材料规范中特定体积关联于由材料规范定义的第一材料类型并且第一材料类型关联于在472获取的第二材料类型时,关联于体积的体素可被分配第二材料类型。一旦3d物体的体素表示中所有体素被分配材料类型,则3d物体的体素表示可为完成。

如475所示出,3d物体(例如体素表示中描述的3d物体)可被评估。评估3d物体可包括评估3d物体的性能。关联于3d物体的性能可包括3d物体的工程属性性能和/或3d物体的制造属性的性能。3d性能可满足3d物体目标和/或3d标准。工程属性可包括体积属性,如硬度,或表面属性,如纹理和/或颜色,以及其他体积属性。制造属性可包括时间和/或材料成本,并可包括其他属性,如确定3d物体是否可与其他部件批量制造。

3d物体可基于3d物体的仿真制作和/或3d物体的物理制造来评估。3d物体还可基于3d物体的多个部件的仿真制作和/或多个3d物体部件的物理制造来评估。

3d物体和/或3d物体部件的仿真可通过执行图4中所定义指令的计算设备的一部分的仿真模块和/或仿真引擎和/或第三方仿真模块和/或仿真引擎来执行。例如,仿真可通过有限元方法(fea)多物理量仿真和/或颜色/纹理外观仿真,以及可执行的其他类型的仿真来执行。

评估3d物体还可包括制造3d物体并物理评估3d物体和/或3d物体相关部件以在实验上测量3d物体的功能。打印3d物体可包括将3d物体的体素表示进行切片,如图3所描述。3d物体的评估可确定3d物体目标和/或3d标准是否被满足。3d目标和/或3d标准的量化评估可与472提供的3d目标和/或3d标准相比较,以评估材料分配的质量(例如将材料类型分配给体素)。可达到3d物体的量化评估而与评估方法无关。

如476所示出,可确定终止条件是否满足。终止条件可被定义为满足所有3d物体目标和/或所有3d标准。不同的终止条件可确定与在474和477分配材料类型的先前迭代(例如生成)相比较,3d物体的性能是否覆盖满足3d物体目标和/或3d标准。即,可确定3d物体的性能是否覆盖3d物体的目标和/或3d标准的最佳满足。其他终止条件可用于确定材料类型是否应当被重新分配和/或是否继续至478。

在多个示例,终止条件可基于外部服务结果而触发。例如,3d打印机可在打印不同的3d物体之后准备用于3d物体的打印。为有效利用多个外部服务,终止服务可被触发。

如477所示出,当终止条件在476确定材料类型应当被重新分配时,材料类型可被重新分配给3d物体的体素表示中的体素。即,当终止条件在476未满足时,材料类型可被重新分配给体素。

在多个示例,3d物体的体素表示中体素的某些而非所有部分可被重新分配材料类型。例如,当3d物体的第一部件满足多个3d物体目标但3d物体的第二部件不满足多个3d物体目标时,材料类型可被重新分配给第二部件的体素,而第一部件体素的材料类型不被重新分配。

将材料类型重新分配给体素可从先前分配和3d物体的性能评估中学习。例如,重新分配可由学习模块的进化操作驱动(例如变异,交叉和/或精英选拔,以及其他)。材料类型的重新分配还可增强3d物体的性能评估。

材料类型的重新分配可基于学习算法。学习算法的示例可包括遗传学习模块,以及其他类型的学习算法。利用遗传学习模块分配材料类型,材料类型分配和/或重新分配给体素可分配的一代。多个进化操作可被正确选择并将材料类型分配给体素。多个进化操作可包括变异,繁殖和/或精英选拔,以及其他进化操作。进化操作可描述材料类型分配的不同的代如何被合并以创建新的一代。例如,变异进化可将材料类型分配的最后一代赋给体素并将随机将材料类型分配给体素改变为分配新的材料类型至体素。繁殖进化操作可将材料类型分配的两代或多代赋给体素并将材料类型分配赋给来自每一代的体素组,以对体素创建新的材料类型分配。在多个示例,利用遗传学习模块的并行化实现并利用多个计算资源,多代分配可并行创建。

如478所示出,利用所分配的材料类型,3d物体体素表示的数据创建可通过将数据结构写入树形结构如八叉树而终止。体素表示还可存储于存储器用于由图3的树形结构构造336以后使用。体素表示还可被提供用于在图3的338缩放和在切片之后打印至打印设备。

图5说明了根据本公开的体素网格的示例。图5说明了3d物体550和体素网格552。体素网格552可为3d物体的体素表示。

如图5所说明,每个体素由立方体表示。然而,其他形状可用于表示体素。多个体素的每一个可具有不同的维度。例如,来自体素网格552的第一体素可定义第一体积,而来自体素网格552的第二体素可定义第二体积。关联于体素网格552的分辨率和/或对应于体素网格552的树形数据结构可由来自体素网格552的最小体素定义。最小体素可从体积、面积、材料类型和/或材料属性离散化和/或提供用于比较体素的其他任何标准上定义。

在图5,关联于给定体素的体积可减少以适应3d物体的形状550。例如,关联于3d物体550的第一形状可利用第一数量的体素表示,其中第一数量的体素的每一个具有第一体积。关联于3d物体550的相比第一形状更不复杂的第二形状可在第一数量的体素中表示,其中第一数量的体素的每一个具有大于第一体积的第二体积。

图6说明了根据本公开的体素的示例。图6示出了具有多种数据类型的体素654。数据类型包括表面数据660、体积数据662、边缘数据664-1、664-2、664-3(例如本文称为边缘数据664),以及节点数据666。比图6所示更多或更少的数据类型可被使用。

图6还说明了利用体素652对切割边界668的截取,得到三角形切割。该切割边界668可为形状规范的一部分或材料规范的一部分,以描述两个不同的材料和/或材料属性之间的边界)。

体积数据662可描述材料的体积片段百分比。体积数据可关联于体素中心。体积片段百分比在将体素的体积分离为至少两部分的切割边界668的计算之后计算。切割边界668可利用多个截取线(例如三角形截取线)来计算。表面法线通常关联于切割边界668,其表示切割边界的哪一侧是哪种材料,或,从描述几何的角度,哪一侧在3d物体内部(例如实体)而哪一侧在3d物体外部(例如void)。表面法线通过通知切割三角形的哪一侧为实体,来允许计算体积片段百分比。由表面法线和体积片段百分比提供的信息(例如哪一侧为实体,哪一侧void)被记录为节点数据。例如,节点数据666可与关联于体素654的另外7个角的节点数据以不同方式标记。

例如,节点数据666可被标记为void以将由节点666和切割边界668定义的四面体体积标为没有材料类型和/或材料属性由链接边缘数据664-1,664-2和664-3的三条截取线定义。关联于体素654的另外7个角的节点数据可被标记为实体,以将体素654的剩余体积标记为由材料类型和/或材料属性形成。切割边界668由链接边缘数据664-1,664-2和664-3的三角形截取线定义。

表面数据660可描述材料的区域片段百分比。表面数据可关联于形成体素表面中心。表面片段可被记录为表面数值。例如,顶面可由连接边缘数据664-1和664-3的截取线划分为两个部件。该表面的表面片段记录顶面被占用的百分比(例如实体)。

边缘数据664可表示交叉点。连接截取点形成截取线。在图6截取线为直线但也可为曲线。截取线的封闭段可定义切割边界668,其切割体素654。在图6,切割边界668由连接边缘数据(例如截取点)664-1,664-2和664-3的线表示。切割边界668可表示材料的边界。当切割边界668位于体素654描述的体积中时,切割边界668可切割(例如交叉)体素。边缘数据664可描述切割边界668和体素的交叉,而不将体素654划分为多个体素,以提供体素654描述的体积的更高分辨率。节点数据666可提供关联于体素654的多个材料的id。

每种数据类型(例如表面数据660、体积数据662、边缘数据664和节点数据666)可为单个浮点或可为多个浮点。例如,体积数据662可包括多个浮点,其描述体素654的划分。例如,体积数据可包括0.7浮点和0.3浮点,其描述体素654所描述的体积的双态。例如,由边缘数据664定义的切割边界668可具有0.3的体积片段百分比,而体素654的另一部分可具有体积片段百分比0.7。

关联于体素654的形状和材料可进一步通过增加材料类型void来捕获,其填充由形状规范定义的实体外部的所有空间。void材料类型提供了统一形状规范和材料规范的能力。

为描述单材料部件,体积数据662可为单个浮点,记录填充体素654的该材料的体积百分比。void百分比占用可简单地计算为整体为1。为描述n材料部件,体积片段可为大小为n的多个浮点。表面数据660和边缘数据664可被类似地定义。

数据类型可用于描述形状和材料分布。本文未示出的附加数据类型可用于描述关联于体素654的材料属性。例如,颜色和纹理可为关联于表面的表面数据。热扩展系数和杨氏模量为大量材料属性,其可为关联于体素654的体积的体积数据662。

当处理形状和材料规范两者时,图3的形状规范和材料规范的体素化334可直接用于填充在这些数据类型中。例如,在分析关联于形状规范的表面三角形时,边缘数据664可被计算和存储。在体素化处理期间,节点数据666、表面数据660和/或体积数据662可被计算和关联于节点654。在多个示例,数据类型可在构造树形数据结构336,缩放338和/或树形数据结构的切片340期间关联于给定体素654,如图3所描述。

当所有邻居体素相似时(例如具有相似数据类型和对应数据类型的相似值),邻居体素可被合并至树形数据结构(例如八叉树)中的较大叶节点。换言之,树形数据结构的剪切可用于该数据结构。

图7说明了用于根据本公开创建3d物体体素表示的方法示例的流程图。如780所示出,3d物体的形状规范和3d物体的多个目标可被获取。3d物体的多个材料规范和/或多个材料类型也可被获取。

如782所示出,3d物体的体素表示可通过将来自多个材料类型中的材料类型分配给体素表示中的定义3d物体的每个体素来创建。材料类型可获取自3d打印机并可定义由3d打印机用来打印3d物体的多个材料。获取关联于3d打印机的材料类型并分配给体素可在定制中提供可伸缩性,并且打印3d物体利用总体形状规范和/或材料规范来创建。将材料类型分配给体素以满足3d物体目标和/或3d标准还可提供引导3d物体性能的能力。如784所示出,体素表示可被评估以确定多个目标是否被满足。

在本公开中参考了形成其部分的附图,并且其以说明公开的多个示例如何被实现的形式来示出。该示例用足够的细节来描述,以使本领域普通技术人员实现本公开的示例,并且应当理解,其他示例也可被使用,而且可进行过程、电气和/或结构的改变而不偏离本公开的范围。

本文的附图遵循数字惯例,即其中第一位数字对应于附图的图号而剩余数字标识附图中的元素或组件。本文多个附图所示出的元素可被添加、交换和/或消除,以提供本公开的多个附加的示例。附图提供的元素的比例和相对刻度意图说明本公开的示例,并且不应理解为限制意义。

说明书示例提供了应用的描述,并使用本公开的系统和方法。由于多个示例可被实现而不偏离本公开的系统和方法的精神和范围,本说明书提出了某些可能的示例配置和实现。

如本文所使用的,“一个”或“多个”某种事物可指代一个或多个这种事物。例如,“多个控件”可指代一个或多个控件。

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