包含晶格结构的3D部件的3D有限元网格的设计的制作方法

文档序号:18165860发布日期:2019-07-13 09:36阅读:296来源:国知局
包含晶格结构的3D部件的3D有限元网格的设计的制作方法

本发明涉及计算机程序和系统领域,并更具体地,涉及用于设计包含晶格结构(latticestructure)的3d部件的3d有限元网格(mesh)的方法、系统和程序。



背景技术:

市场上存在用于对象的设计、工程规划和制造的多种系统和程序。cad是“计算机辅助设计”的缩略词,例如,其涉及用于设计对象的软件解决方案。cae是“计算机辅助工程”的缩略词,例如,其涉及用于仿真未来产品的物理行为的软件解决方案。cam是“计算机辅助制造”的缩略词,例如,其涉及用于规定制造过程和操作的软件解决方案。在这些计算机辅助设计系统中,图形用户界面针对技术的高效性起到了重要作用。这些技术可以被嵌入到产品生命周期管理(plm)系统中。plm指的是在扩展型企业的概念上的一种商业策略,其用来帮助各个公司针对从产品概念提出到产品生命周期结束的产品研发,来共享产品数据、应用公共过程、并利用团体知识。由达索系统(dassaultsystèmes)(使用商标catia、enovia和delmia)提供的plm解决方案提供了工程中心(其对产品工程知识进行组织)、制造中心(其管理制造工程知识)以及企业中心(其使得企业集成和连接到工程中心和制造中心)。所有这些使得该系统产生了将产品、过程、资源链接在一起的开放式对象模型,实现了动态的基于知识的产品创建和决策支持,其推动了优化的产品定义、制造准备、生产以及服务。

cad/cae系统用于实现物理系统的仿真,该物理系统可以属于但不限于航空、汽车、海事以及城市工程。尤其是,这些系统用于使用有限元方法(fem)来执行对该物理系统上的物理现象的仿真。这种仿真允许预测使用中的物理系统的性能(热学性能、机器性能或任何其他物理性能)并对设计进行优化以改善所述性能。其还允许预测部件的可制造性。在3d打印的情况下,可制造性可能是成败的关键,例如,对具有诸如在直接金属打印期间部件中的热分布之类的现象的打印过程进行仿真。事实上,诸如残余应力之类的现象在3d打印中可能存在严重问题,并且可能使得物理系统没有资格被用于诸如航空等关键应用。因此,能够仿真在打印过程中出现的现象是非常重要的。

晶格结构经常被用于设计所建模的物理系统的一个或多个部件。晶格结构表示在建模物理系统的部件中重复交替的实体和空心的图案。这种晶格图案的目的可以是调整部件的重量、机械阻力、传热或其他属性。因此,晶格结构改善了部件的整体性能;尤其是,由于晶格结构,机械应力能够在整个部件上更好地分布。由于对3d打印的兴趣的提高,晶格实体(latticesolid)的设计和分析变得非常重要。3d打印机对形状的复杂性几乎没有任何限制。因此,设计人员可以自由地创建以前无法制造的非常复杂的形状。特别是,3d打印机可以容易地打印晶格实体。

为了用有限元分析(fea)对建模的物理系统进行分析,必须将其分解成多个有限元。将建模的物理系统的一部分分解成元素的过程称为网格划分。这种分解越精细,有限元分析就越精确。当前,看到单个机械部件分解成几百万个元素并不罕见。在有限元分析开始时,网格的布局是手工创建的,但这是一个痛苦的过程,是实现物理仿真真正效益的主要瓶颈,因为每个新的或改进的设计都涉及重新创建这个有限元网格的任务。近20年来,自动化3d网格划分逐渐取代手工网格划分,使得有限元分析的整体成本大大降低。在有限元网格划分中,两种主要元素形状是占大多数的:具有4条边的四面体(tet)以及具有6条边的六面体(hex)。对于大多数类型的问题,有限元分析使用六面体元素将是更有效的。因此,当用手工进行网格划分时,工程师将引入大比例的这些六面体元素。然而,3d六面体网格划分已经被证明是很难实现自动化的。因此,目前使用的大多数自动化3d网格划分是基于四面体的。由于自动化3d网格划分带来的整体生产率的巨大提高,该计算效率的牺牲对于用户而言是可接受的。

通常,自动化3d网格划分试图用有限元填充一个体积,而不对体积的性质做出太多的假设。由于要填充的体积的所有潜在形状变化,该算法必然是复杂且执行时间长的。这些算法的执行时间中最重要的因素是要填充的形状的边界复杂度。

在晶格结构的情况下,自动化3d网格划分会遇到问题。第一个问题是晶格实体像海绵一样是微孔的。这意味着它们具有特别高的边界复杂性,并且非常不适用于自动化3d网格划分,3d网格划分对于边界的情况复杂性会增加。对于具有数万或数十万个单位单元(unitcells)的晶格,边界变得过于复杂,使得使用自动化3d网格划分变得不切实际。另一个问题是,自动化3d网格划分不会在每个晶格单元(latticecell)中产生相同的网格,从而产生不均匀的结果和局部伪影,这在分析中造成了噪声和不精确性。为了避免这种伪影,用户可能会选择生成更精细的网格,但是这构成了恶性循环,因为其将加剧上面提到的第一个问题的复杂度增加问题。此外,为了选择有利于最有效计算的元素类型,3d网格划分将不会利用晶格实体的重复性质的优势。特别是,自动化3d网格划分将通常用四面体元素填充实体,而有限元分析技术(在大多数情况下)在六面体占大多数的网格(也就是其中大多数元素是六面体的网格)上表现最好。

在这种情况下,仍然存在对于包含晶格结构的3d部件的3d有限元网格的3d结构的改善设计的需求。



技术实现要素:

因此,提供了一种用于设计包含晶格结构的三维(3d)部件的3d有限元网格的计算机实现的方法。该方法包括:提供3d部件的实体表示(solidrepresentation);提供单元的规则拼接(tiling),每个单元包括有限元网格;将所述单元的规则拼接与3d部件的实体表示相叠加。该方法还包括:将所述单元划分成两组:第一组单元,其中每一个单元与3d部件的实体表示相接触,以及第二组单元,其中没有一个单元与3d部件的实体表示相接触。该方法还包括:对3d部件的实体表示的边界进行有限元网格划分;提取第一组单元的边界有限元网格;计算3d部件的实体表示的边界的有限元网格与所提取的第一组单元的边界有限元网格的布尔并集。该方法还包括:对所计算的布尔并集的体积进行有限元网格划分;以及对所计算的布尔并集的经网格划分的体积的有限元网格与第二组单元中的单元的有限元网格进行合并。

该方法可以包括以下一项或几项:

-所述规则拼接的单元在拓扑上相同;

-对所计算的第一组单元与3d部件的实体表示的布尔并集进行修剪;

-修正所计算的布尔并集的边界;

-通过重新计算所计算的布尔并集的边界的有限元网格来执行对所计算的布尔并集的边界的所述修正;

-对所计算的布尔并集的边界的有限元网格的所述重新计算是针对所述有限元网格的如下面来局部地执行的:所述面对所述3d部件的实体表示的边界的有限元网格与所提取的第一组单元的边界有限元网格之间的交集(intersection)做出贡献;

-所计算的布尔并集的边界的有限元网格的局部重新计算是通过对所述面应用基于松弛的算法来执行的;

-首先对有限元网格的、在计算布尔并集之前属于3d部件的实体表示的面应用基于松弛的算法;

-首先对有限元网格的、属于第一组单元中一个或多个单元的面应用基于松弛的算法;

-在划分之后,实例化第二组单元中每个单元的有限元网格。

还提供了一种用于增材制造的方法,该方法包括:提供根据上述方法设计的包含晶格结构的三维(3d)部件的3d有限元网格;以及对该3d部件进行增材制造。

该用于增材制造的方法可以包括以下一项或多项:

-提供步骤包括:由计算机对包含晶格结构的三维(3d)部件的3d有限元网格进行仿真;

-对包含晶格结构的三维(3d)部件的3d有限元网格进行仿真的步骤包括:仿真在增材制造过程中发生的至少一个物理现象;

-所仿真的所述至少一个物理现象是从如下中选择的:在直接金属打印过程中3d部件中的热分布、3d部件中的残余应力。

还提供了一种包括用于执行所述方法的指令的计算机程序。

还提供了一种其上记录有所述计算机程序的计算机可读存储介质。

还提供了一种系统,其包括耦合到存储器的处理器,所述存储器中记录有所述计算机程序。

还提供了一种通过上述用于增材制造的方法可以获得的所制作的3d部件。

附图说明

现在将借助于非限定性示例以及参考附图来描述本发明的实施例,其中:

-图1示出了方法的示例的流程图;

-图2示出了cad/cae系统的图形用户界面的示例;

-图3示出了cad/cae系统的示例;

-图4-9示出了图1的流程图的步骤;

-图10示出了两个晶格单元;

-图11-13示出了边界表面的示例。

具体实施方式

参照图1的流程图,提出一种用于设计包含晶格结构的三维(3d)部件的3d有限元网格的计算机实现的方法。该方法包括提供3d部件的实体表示以及提供单元的规则拼接。该规则拼接的每个单元包括有限元网格。该方法还包括将单元的规则拼接与3d部件的实体表示相叠加。然后,将所述单元分成两个组,即第一组和第二组。第一组单元包括与3d部件的实体表示接触的单元,并且第二组单元包括与3d部件的实体表示不接触的单元。接下来,对3d部件的实体表示的边界进行有限元网格划分。还提取第一组单元的边界有限元网格。然后,计算布尔并集;计算3d部件实体表示的边界的有限元网格与所提取的第一组单元的边界有限元网格的布尔并集。作为布尔并集的结果,获得一体积。该体积被称为布尔并集的体积并被有限元网格划分。然后,对布尔并集的体积的有限元网格和第二组单元中的单元的有限元网格进行合并。

这种方法改善了3d有限元网格的创建,并且允许用有限元方法来分析至少部分地由晶格组成的实体的结构性能。本发明通过首先创建与每个晶格单元相关联的有限元网格来实现该目的。当将各个晶格单元放置在一起时,这些晶格单元的相关联的有限元被添加到网格中,使得生成整个网格的过程非常有效。所有有限元在所述单元的公共面上节点对节点地完全匹配。然后,将晶格区域的由晶格生成的有限元附接到一个(或多个)非晶格区域,而不需要进一步计算,例如,不必计算进一步的表面网格。这是可行的,因为第一组单元的与第二组单元共享的面的集合被保留。因此,本发明允许将由晶格生成的有限元附接到非晶格区域(布尔并集)中使用的“填充物(filler)”元素(第二组单元中的单元)上。生成了一个连贯的整体网格。

因此,本发明提出了一种混合网格划分方法,该方法针对全部晶格区域使用预先计算的有限元网格的重复,并且使用填充物网格划分来填充非晶格区域。本发明使预先网格划分的晶格与填充物网格划分的非晶格区域正确匹配。有趣的是,本发明允许处理重叠的单元。最终结果是一种用于对晶格实体进行网格划分的方法,其性能、可靠性和精度高于现有技术能够做到的。此外,由于本发明依赖于每个晶格单元中的有限元的预先计算的布局,因此有可能对该单元使用六面体占大多数的布局。对于许多应用来说,六面体占大多数的网格优于现有技术中的自动化3d网格划分所生成的四面体占大多数的网格。

该方法是计算机实现的。这意味着该方法的步骤(或基本上所有步骤)由至少一个计算机或任何类似系统执行。因此,该方法的步骤由计算机执行,可能完全自动地或半自动地执行。在示例中,可以通过用户-计算机交互来执行对该方法的至少一些步骤的触发。所需的用户-计算机交互的级别可以取决于所预见的自动化级别,并与实现用户愿望的需要保持平衡。在示例中,该级别可以是用户定义的和/或预定义的。

例如,可以在用户操作时触发用于提供的步骤s10、s20。例如,在图1的步骤s10,用户选择3d部件,并且作为该选择的结果执行步骤s10。

方法的计算机实现的典型示例是使用适用于此目的的系统执行该方法。该系统包括耦合到存储器的处理器。可选地,该系统可以包括:用于显示图形用户界面(gui)的显示器,存储器具有在其上记录的计算机程序,计算机程序包括用于执行该方法的指令。存储器还可以存储数据库。存储器是适用于这种存储的任何硬件,可能包括几个物理上不同的部分(例如,一个用于程序,并可能一个用于数据库)。

所谓“数据库”,是指为搜索和检索而组织的任何数据(即信息)集合(例如,关系数据库,例如,基于预定结构化语言,例如,sql)。当存储在存储器中时,数据库允许计算机进行快速搜索和检索。数据库的结构确实是为了便于与各种数据处理操作相结合地存储、检索、修改和删除数据。数据库可以由文件或文件集合组成,文件或文件集合可以被分解为记录,每个记录由一个或多个字段组成。字段是数据存储的基本单元。用户可以主要通过查询来检索数据。通过使用关键字和排序命令,用户可以根据所使用的数据库管理系统的规则,快速地搜索、重新排列、分组和选择许多记录中的字段,以检索或创建关于特定数据集合的报告。

该方法通常处理建模对象。建模对象是由存储在例如数据库中的数据定义的任何对象。通过扩展,表述“建模对象(modeledobject)”表示该数据本身。根据系统的类型,建模对象可以由不同类型的数据定义。该系统实际上可以是cad系统、cae系统、cam系统、pdm系统和/或plm系统的任何组合。在这些不同的系统中,建模对象由相应的数据定义。人们可以相应地谈论cad对象、plm对象、pdm对象、cae对象、cam对象、cad数据、plm数据、pdm数据、cam数据、cae数据。然而,这些系统并非互斥的,因为建模对象可以由对应于这些系统的任何组合的数据定义。因此,系统可以是cad与plm系统,从下面提供的这些系统的定义中可以明显看出。

“cad系统”还表示至少适用于基于建模对象的图形表示来设计该建模对象的任何系统,诸如catia。在这种情况下,定义建模对象的数据包括允许建模对象的表示的数据。在某些具有面(face)或表面(surface)的情况下,cad系统可以例如使用边或线来提供cad建模对象的表示。线、边或表面可以用各种方式来表示,例如非均匀有理b样条(nurbs)。具体而言,cad文件包含规格(specification),可以从规格中生成几何图形,这又允许生成表示。建模对象的规格可以存储在单个cad文件中,也可以存储在多个cad文件中。在cad系统中表示建模对象的文件的典型大小是在每个部件1兆字节的范围内。并且,建模对象通常可以是数千个部件的组装件。

在cad的上下文中,建模对象通常可以是3d建模对象,例如,表示产品,诸如部件或部件的组装件,或者可能表示产品的组装件。所谓“3d建模对象”,是指任何由允许其3d表示的数据建模的对象。3d表示允许从各个角度观察部件。例如,当对3d建模对象进行3d表示时,可以对3d建模对象进行处理,并围绕3d建模对象的任何轴对其进行旋转,或者围绕显示该表示的屏幕中的任何轴旋转。这尤其排除了2d图标,它们不是3d建模的。3d表示的显示便于设计(即,提高设计人员在统计上完成其任务的速度)。这加快了工业中的制造过程,因为产品的设计是制造过程的一部分。

3d建模对象可以表示在使用例如cad软件解决方案或cad系统完成其虚拟设计之后,在真实世界中要制造的产品的几何形状,诸如(例如,机械)部件或部件的组装件(或等同于部件的组装件,因为从该方法的角度来看,部件的组装件可以被视为一个部件本身,或者该方法可以独立地应用于组装件的每个部件),或者更一般而言,任何刚性体组装件(例如,移动机构)。cad软件解决方案允许在各种的无限制的工业领域中设计产品,包括:航空航天、建筑、建造、消费品、高科技设备、工业设备、运输、海事和/或海上油/气生产或运输。由此,由该方法设计的3d建模对象可以表示工业产品,其可以是任何机械部件,诸如地面车辆(包括例如汽车和轻型卡车设备、赛车、摩托车、卡车和摩托设备、卡车和公共汽车、火车)的部件、飞行器(包括例如机身设备、航空航天设备、推进设备、国防产品、航空设备、空间设备)的部件、海洋船只(包括例如海军设备、商船、离岸设备、游艇和工作艇、海洋设备)的部件、一般机械部件(包括例如工业制造机械、重型移动机械或设备、安装的设备、工业设备产品、制造的金属产品、轮胎制造产品)、机电或电子部件(包括例如消费电子、安全和/或控制和/或仪表产品、计算和通信设备、半导体、医疗设备和装备)、消费商品(包括例如家具、家庭和花园产品、休闲用品、时尚产品、耐用品零售商的产品、非耐用品零售商的产品)、包装(包括例如食品和饮料以及香烟、美容和个人护理、家用产品包装)。

plm系统还意味着任何适用于管理表示物理制造的产品(或将要制造的产品)的建模对象的系统。因此,在plm系统中,建模对象由适于制造物理对象的数据定义。这些数据通常可以是尺寸值和/或公差值。对于一个对象的正确制造,拥有这样的值确实更好。

cam解决方案还意味着任何适用于管理产品的制造数据的解决方案、硬件软件。制造数据通常包括与要制造的产品、制造过程和所需资源有关的数据。cam解决方案用于规划和优化产品的整个制造过程。例如,其可以向cam用户提供关于制造过程的可行性、持续时间或可在制造过程的特定步骤中使用的资源(诸如特定机器人)数量的信息;并且从而允许就管理或所需投资作出决定。cam是在cad过程和潜在的cae过程之后的后续过程。这种cam解决方案是由达索系统使用商标来提供的。

cae解决方案还意味着适合于分析建模对象的物理行为的任何解决方案、硬件软件。一种众所周知且广泛使用的cae技术是有限元方法(fem),该方法通常涉及将建模对象划分成可以通过方程计算和仿真其物理行为的元素。这种cae解决方案由达索系统使用商标来提供。另一种正在发展的cae技术涉及对由来自不同物理领域的多个组件组成的复杂系统的建模和分析,而没有cad几何数据。cae解决方案允许对要制造的产品进行仿真,并且从而允许进行优化、改善和验证。这种cae解决方案是由达索系统使用商标提供的。

pdm代表产品数据管理。pdm解决方案意味着适合于管理与特定产品相关的所有类型的数据的任何解决方案、硬件软件。pdm解决方案可以被在产品生命周期中所有参与者使用:主要是工程师,但也包括项目经理、财务人员、销售人员和买家。pdm解决方案通常基于面向产品的数据库。其允许参与者共享关于其产品的一致数据,并且从而防止参与者使用有差异的数据。这种pdm解决方案是由达索系统使用商标提供的。

图2示出了系统的gui的示例,其中该系统是cad系统。

gui2100可以是典型的类cad接口,具有标准菜单栏2110、2120以及底部和侧部工具栏2140、2150。这些菜单栏和工具栏包含一组用户可选择的图标,每个图标与一个或多个操作或功能相关联,如本领域已知的。这些图标中的一些图标与软件工具相关联,所述软件工具适用于对在gui2100中显示的3d建模对象2000进行编辑和/或处理。软件工具可以分组到工作台(workbench)中。每个工作台包括软件工具的子集。特别地,其中一个工作台是编辑工作台,适用于对建模产品2000的几何特征进行编辑。在操作中,设计人员可以例如预先选择对象2000的一部分,然后通过选择适当的图标来发起操作(例如,改变尺寸、颜色等)或编辑几何约束。例如,典型的cad操作是在屏幕上显示的3d建模对象的冲压或折叠的建模。gui可以例如显示与所显示的产品2000相关的数据2500。在该图的示例中,被显示为“特征树”的数据2500及其3d表示2000涉及包括制动卡钳和制动盘的制动组装件。该gui可以进一步显示各种类型的图形工具2130、2070、2080,例如用于促进对象的3d定向、用于触发对所编辑的产品的操作的仿真,或呈现所显示的产品2000的各种属性。光标2060可以由触觉设备控制以允许用户与图形工具交互。

图3示出了系统的示例,其中该系统是客户端计算机系统,例如用户的工作站。

该示例的客户端计算机包括连接到内部通信总线1000的中央处理单元(cpu)1010、同样连接到总线的随机存取存储器(ram)1070。客户端计算机还设有图形处理单元(gpu)1110,图形处理单元(gpu)1110与连接到总线的视频随机存取存储器1100相关联。在本领域中,视频ram1100也被称为帧缓冲器。大容量存储设备控制器1020管理对大容量存储设备(诸如硬盘驱动器1030)的访问。适用于有形地体现计算机程序指令和数据的大容量存储设备包括所有形式的非易失性存储器,包括:例如,半导体存储设备,诸如eprom、eeprom和闪存设备;磁盘,诸如内部硬盘和可移动磁盘;磁光盘;以及cd-rom盘1040。上述任一项可以附带有特别设计的asic(专用集成电路),或者合并到特别设计的asic(专用集成电路)中。网络适配器1050管理对网络1060的访问。客户端计算机还可以包括触觉设备1090,诸如光标控制设备、键盘等。在客户端计算机中使用光标控制设备,以允许用户选择性地将光标定位在显示器1080上的任何期望位置处。此外,光标控制设备允许用户选择各种命令,并输入控制信号。光标控制设备包括用于向系统输入控制信号的许多信号产生设备。通常,光标控制设备可以是鼠标,鼠标的按钮用于生成信号。可选地或附加地,客户端计算机系统可以包括触摸板和/或触摸屏。

计算机程序可以包括可由计算机执行的指令,指令包括用于使上述系统执行该方法的单元。程序可以在任何数据存储介质上记录,包括系统的存储器。程序可以例如以数字电子电路实现,或者以计算机硬件、固件、软件实现,或者以它们的组合实现。程序可被实现为装置,例如有形地体现在机器可读存储设备中的产品,用于由可编程处理器执行。方法步骤可由可编程处理器执行,可编程处理器执行指令的程序以通过对输入数据进行操作并生成输出来执行方法的功能。处理器因此可以是可编程的并且被耦合以从数据存储系统、至少一个输入设备和至少一个输出设备接收数据和指令以及向其发送数据和指令。应用程序可以用高级过程性或面向对象的编程语言实现,或者如果需要,可以用汇编语言或机器语言实现。在任何情况下,语言可以是被编译或解释的语言。程序可以是完整的安装程序或更新程序。在系统上应用该程序在任何情况下都会产生用于执行该方法的指令。

“设计3d建模对象”指的是作为详细描述3d建模对象的过程的至少一部分的任何动作或动作系列。因此,该方法可以包括从零开始创建3d建模对象。可替换地,该方法可以包括提供先前创建的3d建模对象,然后修改该3d建模对象。

该方法可以包括在制造过程中,所述制造过程可以包括:在执行该方法之后,生产与建模对象相对应的物理产品。在任何情况下,由该方法设计的建模对象可以表示制造对象。因此,建模对象可以是被建模的实体(即,表示实体的建模对象)。制造对象可以是产品,诸如部件,或者部件的组装件。由于该方法改善了建模对象的设计,所以该方法也改善了产品的制造,并且从而提高了制造过程的生产率。

尤其是,包括该方法的制造过程可以包括通过fem仿真物理现象。例如,所述3d表示对飞机机翼进行建模,并且fem被用来仿真机翼在飞行过程中的行为。这种fem仿真允许预测使用中的物理系统的性能(热性能、机械性能或任何其它物理性能),以及优化设计以改善所述性能。制造过程可以包括预测部件的可制造性,并最终制造部件。在3d打印的情况下,可制造性可能是成败的关键,例如,对具有诸如在直接金属打印期间部件中的热分布之类的现象的打印过程进行仿真。事实上,诸如残余应力之类的现象在3d打印中可能存在严重问题,并且可能使得物理系统没有资格被用于诸如航空之类的关键应用。“3d部件的3d打印”也称为“3d部件的增材制造”或“3d建模对象的增材制造”。增材制造(additivemanufacturing,am)指的是通过将能量和/或材料顺序输送到空间中的指定点以生产实体3d部件来制造该3d部件的过程。所述材料可以是但不限于:逐层添加的材料,不论该材料是塑料、金属、混凝土…。生产与建模对象(所提供的3d部件)相对应的物理产品。增材制造的对象可以是产品,诸如部件,或者部件的组装件。该方法改善了所提供的3d部件的3d表示的可制造性,并且因此该方法也改善了产品的制造,并且从而提高了制造过程的生产率。

现在参考图1的流程图,讨论3d部件的3d有限元网格的设计方法的示例。该3d部件包含晶格结构。

该方法可以从提供(s10)3d部件的实体表示开始。3d部件通常对物理系统进行建模,例如要制造的真实世界的产品。如前所述,3d部件可以是3d建模对象。该实体表示包括至少一个要用晶格填充的空腔。空腔是可以是封闭或不封闭的体积。空腔是在所提供的3d部件中的中空;因此空腔没有任何材料。更一般地说,空腔可以从实体表示的边界的任何所连接的子集创建。此后,所连接的子集将被称为空腔表面。在空腔表面形成一个封闭的体积的情况中,这就明确地定义了要由晶格填充的空间。如果不是,即如果空腔不形成封闭的体积,则空腔表面可以包括一个开口,例如它类似于碗;空腔甚至可以具有两个或更多个开口,例如具有两个开口的管道。在实践中,为了从空腔表面构建封闭的体积,设计人员将指定一个或多个盖表面(capsurface)。盖表面的存在可以堵住一个开口,就像罐子的盖子。盖表面可以通过合并将会位于开口位置处的内边界和外边界来获得。一个或多个盖表面的集合与空腔表面一起限定了一个封闭的体积。

加盖(capping)过程开始于定义一个或多个边缘(rim),这些边缘是在实体表示的边界上形成一个闭环的一维(1d)曲线或线的集合。该一个或多个边缘类似于罐子的边缘(罐盖在该处附着到罐子上)。然后,将盖表面创建为将该边缘作为外边界的表面。这种操作可以通过“填充表面(fillsurface)”来实现,“填充表面”是现代cad/cam系统中常见的功能。对开放空腔加盖的过程是自愿的;设计人员可以在本发明的意义上,自由地决定将形状中的中空或管道(如果有的话)或封闭体积(如果有的话)中的哪一者作为用于由晶格填充的空腔来对待。例如,这在图12和13中表示。图12示出了图13的加盖实体190。加盖实体190包括外边界196、由边缘192限定的开口,该开口由盖表面194填充。如图12所示,加盖实体190包括空腔180,空腔180可以由晶格填充。因此,图12示出了包括一个开口的空腔的3d部件的实体表示,其中空腔已用盖表面处理并填充有晶格。图11还示出了包括已填充有晶格的一个封闭空腔的3d部件的实体表示。

晶格是多孔结构—也可以说是肺泡结构,其使得降低材料的密度成为可能。术语“晶格”表示3d实体部件中交替出现的实体和空心的图案;换句话说,实体和空心的图案可能是重复的。晶格的目的是改善部件的机械阻力、稳定性、传热或其他性能。在非限制性示例中,由晶格结构引入的材料的孔隙率等于或大于50%:由材料定义的体积的50%或更多是空的(即,没有材料)。应当理解,本发明可以用具有任意百分比孔隙率的任何类型的晶格结构来实现。

仍然参照步骤s10,可以显示或不显示所提供的3d部件的实体表示。当显示时,实体表示显示在3d场景中,如本领域已知的。

三维部件的实体表示可以是边界表示(称为b-rep),如本领域已知的。b-rep使用拓扑(顶点、边、表面)和几何形状(点、曲线、表面)信息来计算所述表示。

3d部件的实体表示可以是几何形状,其是点、段、多边形面或更复杂的元素(例如,基于nurbs的表面)的集合。更一般地说,表面表示是网格。不需要关于这些元素的方向或连通性的信息。例如,如果用nurbs对3d部件建模,则所述表示将被细分(例如,所述表示被细分为三角形)。

如图12所示,实体表示190包括外边界196和一个或多个空腔表面182,其形成了实体表示的表皮或包络。一个或多个空腔表面182与盖表面194(如果有的话)组合限定了实体表示的一个或多个空腔180;这等于说,空腔表面是实体表示的表皮的与空腔接触的部分。外边界196是实体表示的表皮的与空腔不接触的部分。在只具有封闭空腔的实体的情况中,如图11所示,空腔表面不与外边界连接。在具有一个或多个开口空腔的实体的情况下,如图12所示,外边界连接到该开口空腔的空腔表面。空腔表面与外边界之间的边界由一个或多个边缘192形成。

提供实体表示意味着用于显示实体表示或至少用于计算实体表示所需的信息可用于执行该方法的计算机化系统。例如,这些信息存储在计算机化系统的存储器中。实体表示是在用户操作时提供的,例如,用户在本领域公知的图形用户界面上选择文件。可以自动提供实体表示;在这种情况下,不需要用户的干预。

图4示出了在步骤s10中提供的实体表示的示例。在此示例中,3d部件40的表示包括空腔42,并且该空腔由大致具有矩形形状的材料限定。材料具有厚度48。因此,所提供的3d部件的实体表示具有空腔表面46和外边界44,所述空腔表面46和外边界44形成实体表示的充满材料48的部分。在这个例子中,没有盖表面,并且因此空腔表面完全限定了空腔42:空腔表面包括面的集合,并且该面的集合中的每个面都为限定空腔做出贡献。

在图1的步骤s20处,提供单元的规则拼接。单元的拼接使体积离散化,并且每个单元表示离散化体积的子体积;因此,该离散化体积内的任何点位于(或封闭于)一个单元中。因此,单元即是3d对象。

拼接是规则拼接,也就是说,存在一个由诸如(等边)三角形、正方形、六边形等等的全等的规则的多边形构成的边对边的拼接。实际上,拼接包括是四面体或六面体的单元,并且全等的四面体或六面体共享匹配在一起的至少一个公共面(这些面相符(coincide)):公共面具有相同的形状和大小,并且公共面在拼接中彼此叠加。例如,立方体的规则拼接形成体素的规则网格。

每个单元包括一个有限元网格:在方法的这个步骤中,有限元网格可以被实例化或不被实例化。如果网格没有被实例化,那么其将在稍后的阶段(s52,s54)被实例化。fem是基于从问题域的精化或“离散化”中获得的数值模型的,并结合了物理问题的完整定义所需的附加信息。有限元模型是有限元网格与仿真属性的集合的关联。按照本领域所公知的,来执行每个单元的网格生成过程,可以使用生成网格的任何过程而不会背离本发明,包括特定布局的手动交互创建。在佛罗里达州博卡拉顿的crc出版社2013年的s.w.cheng,t.dey和j.shewchuk著作的“delaunaymeshgeneration”精装本(isbn978-1-58488-730-0)中,给出了可用于本发明的自动算法的示例,要理解的是,可以使用任何其他网格生成过程。在示例中,为了在每个单元内生成网格,设计人员可能希望手动地对元素进行排列。虽然这个过程缓慢,但是将给出最佳类型的排列,并且由于相同的单元可能被本发明重复使用数千次甚至数百万次,因此额外的努力可能是值得的。因此,每个单元包括更小的有限元。每个单元的fem网格通常是四面体或六面体,但其优选地是六面体网格,因为fem分析在六面体占优势的经网格划分的单元上表现最好。在本发明中,包括有限元网格意味着单元被分解成有限元,或者单元可分解成有限元并且在根据本发明的方法的后期阶段将被分解成有限元网格。

规则拼接的单元在拓扑上可以是相同的。这使得对单元的重新使用成为可能;最终可能需要一个或多个单元的变形。单元可以是拓扑和几何上相同的,并且两个单元的迭合面(congruentfaces)必须彼此完全匹配;通过这种方式,使拼接保持规则。尤其是,如果遵循正确的间距,则在拼接的单元之间没有可能的相交。

拼接的单元是晶格单元。晶格单元对表示晶格结构的图案进行建模;换言之,晶格单元是包括多孔材料的单元。因此,晶格单元不充满材料,而是部分地没有材料。例如,晶格单元可以是正六面体(立方体),其仅包括沿着该立方体的对角线的材料,例如连接该立方体的相对边的材料条。作为另一个例子,晶格单元可以是立方体,该立方体仅包括沿着连接该立方体的两个相对面的中心的轴线的材料。

选择晶格单元的图案以使两个单元的迭合面的交界面处的材料匹配。换句话说,该图案按照相邻面的对进行重复;因此相邻面是迭合面。例如,晶格立方体最多有三个面图案:针对该立方体的每对相对面,有一个面图案。

规则拼接的所有单元可以呈现相同的图案,这涉及所有单元具有相同的有限元网格;因此,单元的规则拼接中的单元的网格生成更快,因为为一个单元生成的网格将应用于其他单元。

图6显示了形成拼接的单元集合的示例。为了便于理解该图,该图用2d表示拼接;本例中的拼接的单元是具有相同拓扑结构的矩形长方体。每个矩形长方体都是具有基本晶格结构的晶格单元,晶格单元中心附近的体积是没有任何材料的。例如,这在图5中图示,其示出了图6中的拼接的单元之一的实例。

图5示出了一个晶格单元,已经为该晶格单元生成或计算了有限元网格。这个2d例子中的fem网格是三角形的,并且类似于具有四面体网格的3d例子。对于图5的“空”体积没有计算fem网格。

图10显示了标记为a和b的晶格单元的细节。单元a和单元b具有相同的拓扑结构和相同的晶格图案。单元a和b的每个具有匹配的迭合面,分别是a1和b1。也就是说,顶点1与顶点5、顶点2与顶点6、顶点4与顶点7、顶点3与顶点8分别相符。这里,晶格图案是凹槽(recess),其包括三个通孔,每个通孔都居中于其穿过的两个相对面上。例如,单元a的面a1上的孔a2与单元b的面b1上的孔2b相同,使得当单元a和b属于拼接时,面a1和1b的fem网格的三角形的顶点和边相符。

返回参考图1,在步骤s22,将单元的规则拼接与3d部件的实体表示相叠加。规则拼接的尺寸可以等于或大于在步骤s10处提供的实体表示的要由晶格填充的至少一个空腔。将规则拼接与实体表示相叠加意味着规则拼接与实体表示相符;更具体地说,规则拼接与实体表示的至少一个空腔相符。作为步骤s22的结果,规则拼接与实体表示的至少一个空腔相交;用规则拼接填充空腔。如果拼接比空腔大,那么规则拼接的一部分将与实体表示相交(或冲突)。

正如所讨论的,规则拼接可能大于空腔。但是,规则拼接甚至可以大于加盖的实体表示。由于这个原因,作为步骤s22的叠加的结果,拼接的单元可能位于加盖的实体表示的外部。这些在加盖的实体表示的外部的单元与加盖的实体表示的至少一个空腔的外部一样是无用的。在步骤s30,删除规则拼接中的完全位于加盖的实体表示外部的单元。因此,保持规则拼接中的、与加盖的实体表示接触(例如通过冲突)和/或包含在加盖的实体表示的至少一个空腔中的单元。

在步骤s30中未删除的单元被划分成两组单元(步骤s40)。分成两组就意味着这些单元被分为第一组单元和第二组单元。

第一组单元被创建(s42),并且包括与3d部件的实体表示接触的单元。“接触”意味着:(i)单元和实体表示之间存在冲突;单元和实体表示之间至少有一个公共点。

第二组单元被创建(s44),并且包括与3d部件的实体表示没有接触的单元。应当理解,第二组可以是空的,尽管这种情况并不完全利用本发明的优点。

步骤s42和s44可以同时执行,也可以一个接一个地执行。

图6示出了单元的规则拼接与图4所示的实体表示的叠加。在这个例子中,不存在完全位于实体表示外部的单元。因此,步骤s30并没有涉及到规则拼接的单元。拼接的三个单元a、b和c被添加到与实体表示没有接触(或没有冲突)的第二组单元中。拼接的其他单元被添加到第一组单元中,因为这些单元与3d部件的实体表示相接触(其冲突)。

在图1的步骤s50处,对3d部件的实体表示的边界进行有限元网格划分。实体表示的边界是3d部件的包络(也称为表皮)。按照本领域公知的,来执行对实体表示的边界的有限元网格划分。例如,可以使用前沿(advancingfront)表面网格划分算法,要理解的是,可以使用任何有限元网格划分算法。

步骤s50可以在任何时刻独立地执行,或者与步骤s20到s54中任一者一起执行。

在步骤s53处,提取第一组单元的边界有限元网格。提取意味着仅考虑有限元网格的在边界上的元素,而不使用其他元素。在实践中,形成规则拼接的每个单元都包括有限元网格,从而仅执行对边界有限元网格的提取。如果单元的有限元网格在提供步骤s20处没有被实例化,则首先对单元进行实例化(s52),然后在步骤s53处提取边界。按照本领域公知的,来执行实例化(s52)。第一组单元的有限元网格的边界至少包括外边界。应当理解,第一组单元的外边界和内边界(如果有的话)包括单元的有限元网格的元素。

在步骤s54处,实例化第二组单元中的每个单元的有限元网格。在具有拼接的步骤s20中提供的单元的有限元网格没有被实例化(即没有被计算)的情况下,执行此步骤s54。按照本领域公知的,来执行实例化。

通常刚好在执行了步骤s42(s44)之后执行步骤s52(相应的s54)。可替换地,可以同时执行步骤s52、s54。

然后,在步骤s60处,计算3d部件的实体表示的边界的有限元网格与所提取的第一组单元的边界有限元网格的布尔并集。因此,仅用实体表示的有限元网格与第一组单元中的单元的有限元网格来执行布尔并集操作。

布尔并集运算是按照本领域公知的来执行的,并且可以使用能够计算部分之间的布尔并集的任何算法;通常,执行多面体部分之间的布尔并集。作为布尔并集操作的结果,得到一个新的部分,并且这个新的部分形成一个体积。尤其是,这个体积仍然包括原始提供的表示的空腔,除非第二组单元是空的—也就是说,没有单元属于第二组,并且拼接的所有单元都属于第一组单元—这涉及所提供的拼接的单元的大小与要用晶格结构填充的空腔的体积相比太粗糙—拼接的每个单元总是与实体表示至少有一个接触。如果出现这种情况,根据本发明的方法可以用包括更小单元(体积更小的单元)的新拼接重新启动。

第一组单元和3d部件的实体表示的布尔并集包括至少两个边界。第一个边界是布尔并集的外边界,其通常由一个或多个两流形(two-manifold)外壳组成,每个外壳具有零个或更多个两流形内壳。第二个边界是由在步骤s46计算并存储的交界面最初形成的边界;该交界面边界包括一个或多个单流形外环,每个外环具有零个或更多个单流形内环。

一旦执行了步骤s60,就可以在该布尔并集内区分出仅来自第二组单元中的单元的材料、仅来自3d部件的实体表示的材料以及来自实体表示和第一组单元中的单元的并集的材料。对于来自第一组单元中的单元的材料,可以区分出3d部件外边界的位于实体表示内部的单元部分和3d外边界的位于实体表示外部的单元部分。3d外边界的位于实体表示外部的单元部分是不希望的,因为它们造成了所提供的实体表示的原始形状的变形。

为了保持实体表示的原始形状—即保持实体表示的外边界—可以执行对所计算的第一组单元和3d部件的实体表示的布尔并集进行修剪(s70)的步骤。经修剪的并集保持与加盖的实体表示相同的外边界。换言之,作为步骤s60的并集的结果,所提供的实体表示的原始外边界未被修改,并且只有实体表示的空腔表面(即,所述表示的与空腔接触的表皮或包络的子集)可被修改。

图7示出了图6的实体表示与规则拼接的布尔并集。在这个例子中,只要第一组单元中的单元会影响实体的外包络,步骤s70的修剪就是必需的。为了使得该附图清楚,示出了为了保持实体表示的原始外边界,将会通过修剪操作移除第一组单元中的仅一个单元(标注为e)。

在布尔体积的计算过程中,可能出现对布尔并集的空腔表面的修改。尤其是,这些修改可以涉及将第一组单元中的单元的有限元网格与实体表示的有限元网格边界连接的面(例如,三角形):该单元的一个或多个面可以被修改,以创建与空腔表面的有限元网格(s50)的一个或多个面的连接。对布尔并集的空腔表面,尤其是对现在属于作为布尔并集的结果获得的体积的、第一组单元中的单元的有限元网格边界的这些细微修改,能够防止合并步骤(s100)的良好执行。

为了确保布尔并集(s60,s70)的空腔表面的有限元表面网格遵循所提取的第一组单元中每个单元的有限元网格,对所计算的布尔并集的边界进行修正(s80),以消除不必要的变化。在实践中,这种修正将限于布尔并集的内边界。

所计算的布尔并集的空腔表面的修正可以包括:对所计算的布尔并集的空腔表面的有限元网格进行重新计算。该重新计算是根据对布尔并集的空腔表面做出贡献的、第一组单元中的单元的原始的所提取的有限元网格来执行的,从而修正后的空腔表面再现了这些所提取的有限元网格。

为了限制在修正布尔并集的空腔表面时计算资源的消耗,可以针对有限元网格的如下面局部地执行该重新计算:这些面对3d部件的实体表示的边界的有限元网格与所提取的第一组单元的边界有限元网格之间的交集做出贡献。因此,只有属于一个或多个交集(或可能在该一个或多个交集中所涉及)的面将参与该重新计算。为了确保所计算的布尔并集的边界的有限元网格的局部重新计算,可以对所述面应用基于松弛的算法。基于松弛的算法可以使用(但不限于)本领域公知的基于弹簧的松弛方法。例如,可以使用拉普拉斯平滑法,诸如如下论文中的方法:计算机图形学论坛(computergraphicsforum),18:131-138中的vollmer,j.,mencl,r.和müller,h.(1999)的“improvedlaplaciansmoothingofnoisysurfacemeshes”。基于松弛的算法可以首先应用于在计算布尔并集之前属于3d部件的实体表示的有限元网格的面。相反地,基于松弛的算法可以首先应用于属于第一组单元中一个或多个单元的有限元网格的面。在这两种情况下,使用一个或多个单元作为基于松弛的算法的起始点。

接下来,在步骤s90处,对所计算的布尔并集的体积进行有限元网格划分。可以使用任何有限元网格生成器;特别是,可以使用任何三面体或四面体网格生成器。

图8示出了图7的布尔并集的经有限元网格划分的体积的示例。有趣的是,由于在步骤s80中执行的修正,(修剪的或未修剪的)布尔并集的该空腔表面与由第二组单元中的单元集合形成的边界相同。

在步骤s100,对第二组单元中的单元的有限元网格和所计算的布尔并集的经网格划分的体积的有限元网格进行合并。结果,得到了一个有限元网格。该合并可以在不需要对两个网格进行任何进一步修改的情况下进行:实际上,所计算的布尔并集的经网格划分的体积的空腔表面和第二组单元中的单元的边界呈现相同的有限元表面网格,从而使得该合并相当于识别两个有限元表面网格上的公共点对。步骤s100的合并通常是按照本领域所公知地来执行。图9示出了步骤s100的结果。

虽然已经参照本发明的示例性实施例具体示出和描述了本发明,但是本领域技术人员将理解,在不脱离所附权利要求所涵盖的本发明范围的情况下,可以在形式和细节上做出各种改变。例如,本发明还可以包括对包含晶格结构的3d部件进行增材制造。该3d部件包括根据前面讨论的方法设计的三维(3d)有限元网格。然后将3d部件提供给3d打印机,3d打印机执行增材制造或3d打印。3d打印机可以与提供3d部件的系统可通信地耦合。3d打印机通常包括用于存储3d部件的存储器。可以在增材制造之前对所提供的3d部件进行仿真;该仿真通常是用有限元方法仿真至少一个物理现象。所述至少一个物理现象可以是在增材制造期间发生的物理现象。例如,可能重要的是,仿真在直接金属打印过程中3d部件中的热分布或打印过程中的残余应力。因此,3d部件受益于用于预测在使用中的3d部件的性能和/或预测对3d部件的增材制造的可制造性的仿真。因此,所制造的3d部件提供了改善的物理和/或技术特性。

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