用于增材制造的物体数据表示转让专利

申请号 : CN201580074423.0

文献号 : CN107428086B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 曾俊阿纳·代勒·安杰尔斯科特·怀特塞巴斯蒂·科特斯·I·赫尔姆斯

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

摘要 :

在一个示例中,组合物体的三维(3D)模型以用于增材制造。针对每个3D模型确定二维(2D)切片。如果确定2D切片完整,则根据布尔操作组合2D切片,以生成由增材制造系统可打印的组合的2D切片。

权利要求 :

1.一种用于生成物体的数据表示以用于增材制造的装置,所述装置包括:至少一个处理器,用于

确定3D物体模型中的每个3D物体模型的二维(2D)切片,其中所述2D切片针对沿切割轴的坐标;

对于每个2D切片,通过以下步骤确定所述2D切片关于增材制造完整或不完整:确定所述2D切片的边界是否形成闭合多边形;响应于确定所述边界形成闭合多边形,确定所述2D切片完整;响应于确定所述边界具有缺口,确定所述2D切片不完整;并且响应于确定所述2D切片是完整的,根据布尔操作将针对每个坐标的对应2D切片进行组合,以生成由增材制造系统可打印的组合的2D切片。

2.根据权利要求1所述的装置,其中响应于所述至少一个处理器确定所述2D切片中的至少一个2D切片不完整,生成缺陷3D模型的指示。

3.根据权利要求1所述的装置,其中所述3D模型包括实体模型或表面模型。

4.根据权利要求1所述的装置,其中所述2D切片为向量化层格式或栅格格式。

5.根据权利要求1所述的装置,其中所述增材制造系统生成由多层构成的3D物体,其中所述多层由所述组合的2D切片定义。

6.根据权利要求1所述的装置,其中所述布尔操作包括AND、OR以及XOR中的至少一个。

7.根据权利要求1所述的装置,其中所述物体由不同材料构成,并且为了组合对应的2D切片,所述至少一个处理器针对组合的2D切片确定包含或移除哪些材料。

8.一种生成物体的数据表示以用于增材制造的计算机系统,所述计算机系统包括:用于存储基于方案构架的编程规范的数据存储器,其中所述编程规范标识:物体的3D模型;每个3D模型的坐标空间内的质心、定向和缩放比例中的至少一个;对3D模型执行的布尔操作;以及用于布尔操作的参数;

至少一个处理器,用于:

针对所存储3D模型的所述坐标空间内的沿切割轴的坐标,生成所述3D模型中的每个3D模型的二维(2D)切片;

对于每个2D切片,通过以下步骤确定所述2D切片完整或不完整:确定所述2D切片的边界是否形成闭合多边形;响应于确定所述边界形成闭合多边形,确定所述2D切片完整;响应于确定所述边界具有缺口,确定所述2D切片不完整;并且响应于确定所述2D切片完整,根据所述布尔操作以及所述参数对处于沿所述切割轴上的每个坐标处的对应2D切片进行组合,以生成由增材制造系统可打印的组合的2D切片。

9.根据权利要求8所述的计算机系统,其中所述物体由不同材料构成,并且所述参数规定在执行所述布尔操作时包含或移除哪些材料。

10.根据权利要求8所述的计算机系统,其中响应于所述至少一个处理器确定所述2D切片中的至少一个2D切片不完整,生成缺陷3D模型的指示。

11.一种生成物体的数据表示以用于增材制造的方法,所述方法包括:确定多个物体的3D模型中的每个3D模型的二维(2D)切片;

针对每个2D切片,通过以下步骤确定所述2 D切片关于增材制造完整或不完整:确定所述2D切片的边界是否形成闭合多边形;响应于确定所述边界形成闭合多边形,确定所述2D切片完整;并且响应于确定所述边界具有缺口,确定所述2D切片不完整;

响应于确定所述2D切片完整,根据布尔操作对对应的2D切片进行组合,以生成由增材制造系统可打印的组合的2D切片;并且响应于确定所述2D切片中的至少一个2D切片不完整,终止根据所述布尔操作对对应的

2D切片的组合。

12.根据权利要求11所述的方法,其中所述布尔操作包括AND、OR以及XOR中的至少一个。

说明书 :

用于增材制造的物体数据表示

背景技术

[0001] 增材制造系统,诸如三维(3D)打印机,可以通过实施逐层制造过程来生成3D物体。比如,可以逐层固化构建材料以形成3D物体。这些类型的系统已被用于构建具有相对复杂的内部和外部特征的3D物体。
[0002] 通常,通过3D打印创建的物体根据物体的数据表示或模型来制造。3D模型可以是要被创建的物体的表面几何和/或体积信息的数字表示。该模型可以从零开始创建,或根据物体的3D扫描或以诸如数学方式之类等的其它方式创建。现成的软件能够用于创建该模型,并通常将该模型存储在文件内,诸如立体光刻(STL)文件、增材制造文件(AMF)文件或另一类型的3D建模文件。可以将文件载入3D打印机,以让3D打印机根据模型创建物体。

附图说明

[0003] 本公开的特征是通过举例图示的,且不限于下图,其中类似的标号指示类似的元件,其中:
[0004] 图1根据本公开的示例示出了控制装置;
[0005] 图2根据本公开的示例示出了生成组合的二维(2D)切片以用于增材制造的方法的流程图;
[0006] 图3根据本公开的示例示出了数据流图;
[0007] 图4A-4B根据本公开的示例示出了3D模型;
[0008] 图4C-4D根据本公开的示例示出了要对3D模型执行的布尔操作;
[0009] 图5A根据本公开的示例示出了3D模型和2D切片;
[0010] 图5B-C根据本公开的示例示出了完整的2D切片及不完整的2D切片;以及[0011] 图6根据本公开的示例示出了编程规范。

具体实施方式

[0012] 出于简化及说明的目的,主要通过参考示例来描述本公开。在下面的描述中,陈述了若干具体细节以提供对本公开的彻底理解。然而显而易见的是,实践本公开可以无需受限于所有这些具体细节。在其它实例中,未详细描述一些方法及结构,以免不必要地模糊本公开。如本文所用的,术语“一”旨在表示至少一个特定元件,术语“包括”意指包括但不限于此,术语“包含”意指包括但不限于此,而术语“基于”意指至少部分地基于。
[0013] 本公开的示例包括用于增材制造(例如3D打印)的物体的3D表示或模型的生成。3D打印例如包括通过根据物体的3D模型在计算机的控制下顺序地添加熔接或粘合在一起的材料层来创建物体。3D打印由诸如3D打印机之类的增材制造系统来执行。
[0014] 在特定实例中,物体的3D模型根据两个或两个以上其它物体的3D模型创建。例如,将一个物体的3D模型与另一物体的3D模型组合,以创建单个物体的3D模型。根据本公开的示例,计算机系统及方法实现一片一片地根据规定的布尔操作对3D模型进行组合。例如,每个物体的3D模型被切片,以生成物体的二维(2D)切片,并且能够一片一片地执行布尔操作,以可由生成3D打印机打印的组合的2D切片。2D切片例如是3D模型的平行平面。组合的2D切片表示根据组合的模型生成的物体的每个层,并且可由3D打印机打印。布尔操作的示例包括AND、OR、XOR等。这些操作可以用于至少两个物体的接合、剪裁等,以形成单个物体。
[0015] 物体的3D模型为该物体的数字表示。例如,3D模型可以是表面模型或实体模型。描述表面几何的3D模型可以是基于网格的表面几何模型,此处的网格指的是表面元素的集合,诸如三角形或其它形状,其形成了物体的表面。基于网格的表面几何模型为能够用于3D打印的边界表示(BREP)模型的示例。3D模型文件的示例可以包括STL文件、AMF文件、描述物体的体积信息的文件等。
[0016] 组合的2D切片可以是向量化层格式(即向量图形)的,且所述格式的示例包括通用层接口(CLI)、可缩放向量图形(SVG)或描述限定物体内部和/或外部的折线的任意格式。在另一示例中,组合的2D切片可以是栅格化层格式的。可以通过根据规定的诸如AND、OR、XOR等布尔操作将向量进行组合,对向量化切片执行布尔操作。可以通过以相同的分辨率对像素进行采样来对栅格化的切片执行布尔操作,然后使一种材料类型覆写其他材料类型。对栅格化切片执行的布尔操作可能比向量化切片简单。然而,对于对向量化切片执行的布尔操作,边界是明确限定的,这样能够直接施加具体试剂。对于栅格化切片,可以执行额外的边缘检测(材料边界检测)。
[0017] 编程规范,诸如可扩展标记语言构架,可以用于规定模型、布尔操作和用于组合3D模型的参数。所述参数能够规定不同的材料类型,并且指示保存哪些材料以用于布尔操作。该编程规范是灵活且可编程的,并且能重新用于针对通用目的计算机辅助设计(CAD)形状实现通用目的建构性实体几何过程。
[0018] 3D模型可能是复杂的,且将3D域内的3D模型进行组合可能易出错并且较为耗时。例如,STL文件描述物体的三角化表面。三角形可能具有不同尺寸和不同的角。对多个STL文件执行布尔操作(诸如接合)可以包括匹配每个文件中的三角形。由于三角形的尺寸和角是多样的,可能由于多个错误,难于执行该接合以为能够用于3D打印的物体创建防水模型。如上面所讨论的,根据本公开的示例,用于接和、剪裁等的布尔操作是在每个切片或每个层的基础上执行的,其有效地将3D布尔操作转化为对2D切片执行的2D布尔操作集合。这不仅使得用于布尔操作的计算更加健壮(例如,线剪裁,而不是三角形剪裁),还实现了符合预期结果的更快更好的平行化。而且,在布尔操作之前执行切片允许较早地检测有缺陷的输入文件。例如,如果确定切片不防水,可以停止处理,并且生成异常以指示有缺陷的输入文件。
[0019] 图1根据示例示出了控制装置100,该控制装置100可以用于生成用于3D打印的物体的数据表示,诸如组合的2D切片。应该理解的是,控制装置100可以包括额外的元件,且在一些示例中,可以移除和/或更改本文描述的一些元件,而不背离控制装置100的范畴。控制装置100可以是另一系统的一部分,诸如包含在3D打印机内,或可以是分立的装置。例如,控制装置100可以是计算机系统,诸如服务器或另一类型的计算机,其生成层的数据表示并发送给3D打印机以用于打印。
[0020] 将控制装置100描述为包括处理器102和数据存储器106。处理器102可以包括一个以上处理器。例如,控制装置100可以包括多个提供3D模型的并行处理的处理器。处理器102可以是微处理器、微控制器、图形处理器单元、场可编程门阵列、特定用途集成电路(ASIC)等。数据存储器106可以包括易失性和/或非易失性数据存储器。数据存储器106的示例可以包括存储器,诸如动态随机存取存储器、电可擦除可编程只读存储器、磁阻随机存取存储器、忆阻器、闪存、硬盘或其它光或磁或其它类型的非暂时性计算机可读介质。
[0021] 数据存储器106可以存储机器可读指令110。机器可读指令可由处理器运行,以执行本文描述的功能和操作。所述功能的示例示为111-113,且可以包括根据3D模型111生成2D切片,确定不完整的切片/有缺陷的输入文件112,以及对2D切片执行布尔操作113。在另一示例中,至少一个功能由诸如ASIC、场可编程门阵列或其它定制的电路的硬件、而不是通过运行机器可读指令执行。
[0022] 尽管未示出,但数据存储器106还可以存储用于处理功能的数据。例如,数据存储器106可以存储根据113的布尔操作所组合的物体的3D模型。其它数据还可以存储在数据存储器106内。例如,所述功能处理3D模型以生成2D切片并且可以根据编程规范中规定的布尔操作来组合2D切片。2D切片、组合的2D切片和/或编程规范可以存储在数据存储器106中。每个组合的2D切片限定增材制造过程期间要创建的物体的相应的层。例如,每个组合的2D切片由3D打印机使用以生成增材制造过程期间固化的构建材料层,所述层根据规定的布尔操作形成根据组合3D模型来创建的物体。尽管未示出,但控制装置100可以包括由硬件和/或软件构成的接口,以允许例如经网络通过有线或无线的连接与另一装置进行通信。
[0023] 图2示出了根据用于组合3D模型的示例的方法200。举例来说,将方法200和下面描述的其它方法及数据流描述为由控制装置100执行。然而,所述方法及数据流可以由其它装置及系统执行。在201处,处理器102根据要组合的物体的3D模型确定2D切片。例如,3D模型代表坐标空间内的物体。沿称作切割轴的轴切割该3D模型,以沿切割轴的坐标生成切片。切割要组合的各3D模型。在202处,针对每个2D切片,处理器202确定2D切片关于增材制造完整或不完整。此确定可以用于标识来自步骤201的缺陷3D模型。例如,完整的2D切片可以由3D打印机生成,但不完整的2D切片不能,并可以针对对应的3D模型指示缺陷输入文件。在一个示例中,完整的2D切片由在那一切片的构建期间沉积并熔接材料的闭合多边形或区域(或多个闭合区域或多边形)构成。例如,确定2D切片的外表面或边界是否为完整多边形,其进一步关于图5B-5C来描述。例如,切片构建期间要沉积并熔接材料的闭合区域或多边形的外表面或边界应该形成无缺口的闭合多边形。例如,完整的2D切片代表防水层。例如,不完整的2D切片代表非防水层;例如,外表面未形成完整的多边形,且有缺口。在203处,响应于确定2D切片完整,根据一个布尔操作或多个布尔操作,将用于3D模型的对应2D切片进行组合,以生成诸如3D打印机之类的增材制作系统可打印的组合的2D切片。对应的2D切片例如为关于切割轴的同一坐标的切片。在204处,响应于确定2D切片不完整,停止处理。可以生成消息或其它指示,以指示可能有的有缺陷的3D模型/包含3D模型的输入文件。此消息还可以包括指示哪一层不防水的实体模型上的标记。在一个示例中,根据要组合的3D模型中的每个3D模型生成的2D切片应该是完整的,以继续进行到203处的组合;否则,可以认为对应的3D模型文件有缺陷,并在204处停止处理。
[0024] 图3根据示例示出了数据流图300。数据流图300包括方法200的一个以上的操作。在此实例中,将2个3D模型作为输入文件(例如,STL文件)301a和301b来提供。在302a和
302b,STL文件301a和301b例如由处理器102来读取,并在303a和303b被切割以生成2D切片
311a和311b。在304a和304b,处理器102确定各2D切片是否完整。如果任一2D切片不完整,停止处理。若完整,则在305处根据布尔操作对对应的2D切片进行配对。例如,关于例如切割轴的z轴的每个z坐标,诸如剪裁、连接等的布尔操作将对应的2D切片连接为一层,即组合的2D切片。布尔操作的输出为组合的2D切片306。可以将组合的2D切片306发送到3D打印机用于打印。可以将编程规范310作为处理器102的输入来提供,以标识3D模型并确定要对3D模型执行的布尔操作以及用于布尔操作的参数。在305读取编程规范310,以确定要执行的布尔操作。下面关于图6描述了编程规范的示例。
[0025] 图4A-D示出了3D模型的示例和图2-3所示的运算的示例。例如,图4A示出了由STL文件301a表示的块体的3D模型,图4B示出了由STL文件301b表示的球体的3D模型。如以上所讨论的,关于202和305,执行布尔操作。图4C-D示出了布尔操作的示例。图4C示出了针对STL文件301a和310b的3D模型的对应2D切片执行的连接。在图4C,将球体的3D模型添加到块体的3D模型。不同于用于块体的材料的用于球体的材料被添加到块体,置换来自块体的初始材料。图4D示出了针对STL文件301a和301b的3D模型的对应切片执行的剪裁。在图4D,从块体的3D模型移除球体的3D模型。在此情况下,移除形成块体的材料,而不用来自球体的材料重新填充。图4C-D示出了布尔操作的部分完成,诸如直到总共40层中的第28层,但重复进行用于组合对应的2D切片的操作,直至将两个3D模型完全组合,除非确定输入的3D模型有缺陷。
[0026] 在方法200的201处和数据流图300的303a处及303b处,根据3D模型创建2D切片。3D切片器可以用来生成2D切片。3D切片器例如是由处理器102执行的机器可读指令。开放源3D切片器以及现成的3D建模软件内包含的3D切片器使用程序是可用的。被切割的3D模型可以是实体模型,例如使用原始实例化,或建构性立体几何创建的,或者是表面模型,例如由BREP创建的。针对所有的3D模型,沿同一切割轴执行切割。例如,如图5A所示,沿z轴的坐标切割块体的3D模型,z轴在此实例中为切割轴,每个2D切片处于x-y平面内。示出了单个2D切片501,但沿z轴的坐标切割整个块体。x、y、z轴形成了3D模型的坐标空间。
[0027] 如以上所讨论的,诸如在方法200的202和在图3的304a及304b处,评估每个2D切片以确定它完整或不完整。并且,如以上所讨论的,完整的2D切片由完整的多边形构成。例如,评估2D切片的外表面或边界以确定它是否为完整的多边形。例如,如图5B所示,2D切片501的外边缘代表该层的外表面或边界。2D切片501的外边缘,如图5B中的502所示,形成了完整的球体。换言之,502中无缺口,它形成了完整的多边形,即无缺口的方块),且层(即2D切片)被认为是完整的且防水的。图5C示出了2D切片504不完整的示例,2D切片504还可以是图5A所示的块体的切片。例如,缺口510和511在边界或外表面512内,因而对应的层不防水。一个物体可以具有多个外表面或边界。完整的切片可以基于外表面中的每一个是否形成完整多边形。
[0028] 如上关于图3讨论的,可以将编程规范310作为处理器102的输入来提供,以标识3D模型并确定要对3D模型执行的布尔操作,以及用于布尔操作的参数。图6示出了编程规范的构架600的示例。该构架可以是可扩展标记语言构架。该构架可以由用户编程以控制布尔操作。构架600的601部分为标识要组合的3D模型。可以针对每个3D模型提供信息,诸如模型名称,文件名称,质心,定向,缩放比例。602部分规定一个布尔操作或多个布尔操作、以及用于各布尔操作的参数。例如,针对每个布尔操作规定运算名称,并规定用于该运算的运算符。还规定了运算类型。所述参数可以规定布尔操作的特征、属性等。所述参数能够指示用于布尔操作的材料。例如,如果创建由多种材料构成的物体,所述参数可以为布尔操作规定要剪裁或保留哪些材料。构架600通过对多个3D模型执行多个布尔操作,使得易于对可以由多种材料构成的物体的创建进行编程。
[0029] 尽管贯穿整个本公开进行了具体描述,但本公开的表示性示例在范围广泛的应用中有用,上面的描述不旨在且不应该解释为是限定性的,而是作为本公开的方面的说明性讨论而提供。而且,本文已描述且图示的是本公开的示例以及一些变例。本文使用的术语、描述和附图是通过举例陈述的。在本公开的范畴内可能有许多变化。