掌桥专利:专业的专利平台
掌桥专利
首页

用于设计多级晶格结构的计算机辅助设计系统

文献发布时间:2023-06-19 12:07:15


用于设计多级晶格结构的计算机辅助设计系统

技术领域

本申请涉及计算机辅助设计(CAD)。更具体地,本申请涉及多级晶格结构的CAD建模。

关于联邦政府赞助的研究或开发的声明

本发明在政府的支持下完成并被美国国防部高级研究计划局(DARPA)授予政府优质奖序号:HR0011-17-2-0015。政府对于本发明拥有一定的权利。

背景技术

增材制造能够制造出具有空前的物理属性的零件。这主要通过设计内部微结构来实现,该内部微结构通常被描述为由球和连接杆组成的桁架状晶格。设计这种微结构的方法之一是将其定义为多级晶格,其中每个元素(球或杆)在粗略级别下都是晶格(即晶格的晶格,例如埃菲尔铁塔)。在研究层次结构对材料属性的影响时,最大的问题之一是以紧凑和有效的方式表示和建模多级晶格结构。此类晶格的传统边界表示太大而难以管理。

如今,具有晶格建模功能的大多数CAD系统都能够对单级晶格进行建模。此外,晶格的种类限于球和杆的模板的图案。使用标准的CAD功能对多级晶格进行建模将是非常繁琐且耗时的,并且所得到的模型将是巨大的,从而限制了在CAD系统上的图形处理和显示。

发明内容

本发明公开了用于多级晶格结构的CAD建模的方法和系统。公开了用于定义粗略晶格结构和精细晶格结构的各种组合,从中可以通过递归修整操作或通过漫水填充来构造新的下一级晶格结构。

附图说明

当结合附图阅读时,从以下详细描述中可以最好地理解本发明的前述和其它方面。为了说明本发明,在附图中示出目前优选的实施例,然而应当理解,本发明不限于所公开的具体手段。附图中包括以下附图:

图1示出根据本公开实施例的用于设计多级晶格的CAD系统的一组应用模块的示例;

图2示出根据本公开实施例的用于构造多级晶格的递归修整操作的示例;

图3示出根据本公开实施例的使用周期性模板来构造多级晶格的修整操作的示例;

图4示出根据本公开实施例的通过粗略晶格修整精细晶格的修整操作的示例;

图5示出根据本公开实施例的通过从粗略晶格的细分定义精细晶格而构造的多级晶格的示例;

图6示出根据本公开实施例的通过在粗略晶格内部进行漫水填充来定义精细晶格而构造的多级晶格的示例;以及

图7示出可以在其中实现本公开实施例的计算环境的示例。

具体实施方式

本发明公开了用于多级晶格结构的CAD建模的方法和系统,用于通过使精细晶格生成最小化来优化计算机处理。在此,“精细”晶格被定义为这样的晶格结构,其中杆可以由3D打印机所能产生的尽可能细(例如,1mil),并且杆长度小至0.25-1.0cm。“粗略”晶格通常被定义为这样的晶格结构,其中结构元素在比例上明显大于精细晶格。例如,粗略晶格可以包括厚度为精细晶格杆或精细晶格核的几倍的杆。在一些实施例中,粗略晶格构造允许CAD设计者在引入精细晶格生成之前使晶格结构“粗略化”,以最小化可能使计算机系统负担过重的繁重的计算处理。例如,用主要精细的晶格结构渲染大规模的晶格(例如具有几米到一百米的实际比例)可能导致几分钟的时间延迟或者可能使CAD程序崩溃。下面描述的方法和系统提供一种技术方案,以通过在晶格结构的边界内的精细晶格和粗略晶格表示之间进行递归交替,并使用去除晶格结构图案的修整操作,对多级晶格进行建模。

图1示出根据本公开实施例的用于设计多级晶格的CAD系统的一组应用模块的示例。CAD系统包括处理器120和存储器110,存储器存储了用于设计多级晶格的各种程序。粗略晶格模块111包括用于定义多级晶格的粗略晶格的算法。多级晶格的精细晶格由精细晶格模块112定义。修整模块113包括用于执行修整操作的算法,该修整操作在多级晶格的设计期间从多级晶格结构中去除精细晶格或粗略晶格的部分,这将在下面进一步详细的描述。

图2示出根据本公开实施例的用于构造多级晶格的递归修整操作的示例。在实施例中,精细晶格模块111利用边界并通过特定几何形状的核的精细晶格定义精细晶格结构201,如细节211所示。使用粗略晶格模块112,根据模板202来定义具有拓扑的粗略晶格,以被容纳在精细晶格结构201的边界内。通过修整模块113执行修整操作210来构造两级的多级晶格结构203。在实施例中,布尔字段可以由粗略晶格模块112定义,该粗略晶格模块具有将粗略晶格从模板的横向元素向外扩展距离为r的拓扑。可以基于粗略晶格为布尔字段定义逻辑函数,该逻辑函数对不与粗略晶格交叉的精细晶格给出0值,并对与粗略晶格交叉的精细晶格给出1值。在该示例中,对于值0,精细晶格被修整掉,而针对值1,则保留该精细晶格。布尔函数可以被定义为参数函数或隐函数。以递归的方式,第二修整操作212可以由修整模块113执行,由此根据重新缩放的模板202a沿着精细晶格结构203来定义多个粗略晶格。再次使用修整模块113,针对在精细晶格与粗略晶格之间不具有交点的区域,将精细晶格修整掉,以产生三级晶格结构204。为了解决修整精细晶格的球,可以基于球的中心点来定义交点。修整精细晶格的杆可以由落入粗略晶格内的杆所连接的一个或两个球的交点来定义。可以重复进行精细晶格模块111、粗略晶格模块112和修整模块113的附加的递归操作,以进一步修改多级晶格204,从而构造四级和更高级别的多级晶格。在任一递归操作中,精细晶格模块111可以为剩余精细晶格的一些部分或全部重新定义核几何形状。与图2相关的实施例的技术优势包括提高了构造多级晶格的每个元素的效率,例如应用模板以对修整操作进行聚类。与一次一个元素地沿着复杂的多级拓扑结构构造精细晶格相比,这节省了计算资源。

图3示出根据本公开实施例的使用周期性模板来构造多级晶格的修整操作的示例。精细晶格模块111可以定义具有如图3所示的边界的精细晶格301。可以选择周期性结构(例如五角三八面体)作为模板302。粗略晶格模块112可以以与上面参照图2描述的类似方式基于模板302定义布尔字段,修整模块113关于该布尔字段执行修整操作以去除不与粗略晶格交叉的精细晶格。所得到的两级晶格303具有基于模板结构302的拓扑。

图4示出根据本公开实施例的通过粗略晶格修整精细晶格的修整操作的示例。在实施例中,精细晶格401和粗略晶格403可以由精细晶格模块111和粗略晶格模块112独立地定义。在该示例中,精细晶格可以具有基于核402a的几何形状402。为了简化说明,仅示出粗略晶格403的一部分。修整模块113通过识别非干扰节点411和干扰节点412、去除由非干扰节点411组成的精细晶格以及构造示出剩余的经修整的精细晶格的多级晶格405来执行修整操作404。

图5示出根据本公开实施例的通过从粗略晶格的细分来定义精细晶格而建模的多级晶格的示例。在实施例中,粗略晶格501由粗略晶格模块112定义。精细晶格模块111执行细分操作502,该细分操作将精细晶格512定义为粗略晶格511的细分。例如,如图5所示,粗略晶格511的所有杆可以被细分成六分之一并以编织图案在粗略晶格上网格化。修整模块113执行修整操作,以通过去除没有与粗略晶格结构511交叉的精细晶格结构512来产生两级晶格503。

图6示出根据本公开实施例的通过在粗略晶格内部进行漫水填充来定义精细晶格而建模的多级晶格的示例。在实施例中,作为以上针对图5描述的建模的变型,通过粗略晶格内的精细晶格的漫水填充来代替修整操作。粗略晶格601由粗略晶格模块112定义,漫水填充操作602由精细晶格模块111基于单点612和径向距离来执行,以定义精细晶格的边界613。所得到的多级晶格可以被递归地漫水填充,以在粗略晶格611内添加额外的精细晶格结构。精细晶格的几何形状可以独立于粗略晶格601而定义,或者可以是如上针对图5中的细分502所描述的细分操作。

上述系统和方法使得能够实现具有数万亿个以上元素的大规模多级晶格的基于CAD的表示。可以表示多种多级晶格,范围从简单的网格状结构到螺旋状和五角三八面体结构。晶格部分的快速按需生成避免了迭代整个晶格结构。

图7示出可以在其中实现本公开的实施例的计算环境的示例。计算环境700包括计算机系统710,该计算机系统可以包括通信机制,诸如系统总线721或用于在计算机系统710内传递信息的其它通信机制。计算机系统710还包括与系统总线721耦合的一个或多个处理器720,用于处理信息。在实施例中,计算环境700对应于CAD系统的一部分,其中计算机系统710涉及下面更详细描述的中央单元301。

处理器720可以包括一个或多个中央处理单元(CPU)、图形处理单元(GPU)或本领域已知的任何其它处理器。更一般地,本文描述的处理器是用于执行存储在计算机可读介质上的机器可读指令的设备,用于执行任务,并且可以包括硬件和固件中的任何一个或其组合。处理器还可以包括存储可执行用于执行任务的机器可读指令的存储器。处理器通过操纵、分析、修改、转化或传输由可执行程序或信息设备使用的信息,和/或通过将信息路由到输出设备,从而对信息起作用。例如,处理器可以使用或包括计算机、控制器或微处理器的能力,并且可以使用可执行指令进行调节,以执行通用计算机不执行的专用功能。处理器可以包括任何类型的合适的处理单元,包括但不限于中央处理单元、微处理器、精简指令集计算机(RISC)微处理器、复杂指令集计算机(CISC)微处理器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、片上系统(SoC)、数字信号处理器(DSP)等。此外,(一个或多个)处理器720可以具有任何合适的微体系结构设计,其包括任何数量的组成部件,例如寄存器、多路复用器、算术逻辑单元、用于控制对高速缓存存储器的读/写操作的高速缓存控制器、分支预测器等。处理器的微体系结构设计能够支持多种指令集中的任何一种。处理器可以与能够在其间进行交互和/或通信的任何其它处理器耦合(电耦合和/或包括可执行部件)。用户界面处理器或生成器是包括电子电路或软件或两者的组合的已知元件,用于生成显示图像或其部分。用户界面包括一个或多个显示图像,该显示图像使得用户能够与处理器或其它设备进行交互。

系统总线721可以包括系统总线、存储器总线、地址总线或消息总线中的至少一个,并且可以允许在计算机系统710的各个部件之间交换信息(例如,数据(包括计算机可执行代码)、信令等)。系统总线721可以包括但不限于存储器总线或存储器控制器、外围总线、加速图形端口等。系统总线721可以与任何合适的总线架构相关联,包括但不限于工业标准架构(ISA)、微通道架构(MCA)、增强型ISA(EISA)、视频电子标准协会(VESA)架构、加速图形端口(AGP)架构、外围组件互连(PCI)架构、PCI-Express架构、个人计算机存储卡国际协会(PCMCIA)架构、通用串行总线(USB)架构等。

继续参考图7,计算机系统710还可以包括耦合到系统总线721的系统存储器730,用于存储由处理器720执行的信息和指令。系统存储器730可以包括易失性和/或非易失性存储器形式的计算机可读存储介质,例如只读存储器(ROM)731和/或随机存取存储器(RAM)732。RAM 732可以包括(一个或多个)其它动态存储设备(例如,动态RAM、静态RAM和同步DRAM)。ROM 731可以包括(一个或多个)其它静态存储设备(例如,可编程ROM、可擦除PROM和电可擦除PROM)。另外,系统存储器730可被用于在处理器720执行指令期间存储临时变量或其它中间信息。基本输入/输出系统733(BIOS)包括诸如在启动期间有助于在计算机系统710内的元件之间传递信息的基本例程,可以存储在ROM 731中。RAM 732可以包括处理器720可以立即访问和/或当前正在操作的数据和/或程序模块。系统存储器730可以另外包括例如操作系统734、应用模块735和其它程序模块736。应用模块735可以包括上述应用模块,并且还可以包括用于开发或修改应用程序的用户门户。

操作系统734可以被加载到存储器730中,并且可以提供在计算机系统710上执行的其它应用软件与计算机系统710的硬件资源之间的接口。更具体地,操作系统734可以包括一组计算机可执行指令,用于管理计算机系统710的硬件资源,并用于向其它应用程序提供公共服务(例如,管理各种应用程序之间的存储器分配)。在某些示例性实施例中,操作系统734可以控制被描述为存储在数据存储器740中的一个或多个程序模块的执行。操作系统734可以包括现在已知或将来可能开发的任何操作系统,包括但不限于任何服务器操作系统、任何大型机操作系统或任何其它专有或非专有操作系统。

计算机系统710还可以包括耦合到系统总线721的磁盘/介质控制器743,以控制用于存储信息和指令的一个或多个存储设备,例如磁性硬盘741和/或可移动介质驱动器742(例如,软盘驱动器、光盘驱动器、磁带驱动器、闪存驱动器和/或固态驱动器)。可以使用适当的设备接口(例如,小型计算机系统接口(SCSI)、集成设备电子设备(IDE)、通用串行总线(USB)或FireWire)将存储设备740添加到计算机系统710。存储设备741、742可以在计算机系统710的外部。

计算机系统710还可以包括耦合到系统总线721的显示器控制器765,以控制显示器或监视器766,例如阴极射线管(CRT)或液晶显示器(LCD),用于向计算机用户显示信息。计算机系统710可以包括用户输入界面或图形用户界面(GUI)761,其可以包括一个或多个输入设备,例如键盘、触摸屏、平板电脑和/或定点设备,以与计算机用户交互并向处理器720提供信息。显示器766可以提供触摸屏界面,该界面允许输入以补充或替代用户终端设备761的方向信息和命令选择的通信。

响应于处理器720执行包含在诸如系统存储器730之类的存储器中的一个或多个指令的一个或多个序列,计算机系统710可以执行本发明实施例的部分或全部处理步骤。此类指令可以从存储设备740的另一计算机可读介质(例如,磁性硬盘741或可移动介质驱动器742)读入系统存储器730中。磁性硬盘741和/或可移动介质驱动器742可以包含由本公开的实施例使用的一个或多个数据存储和数据文件。数据存储740可以包括但不限于数据库(例如,关系数据库、面向对象数据库等)、文件系统、平面文件、其中数据存储在计算机网络的一个以上节点上的分布式数据存储、对等网络数据存储等。数据存储内容和数据文件可以加密以提高安全性。还可以在多处理布置中采用处理器720,以执行包含在系统存储器730中的一个或多个指令序列。在替代实施例中,可以使用硬连线电路来代替软件指令或者与软件指令相结合。因此,实施例不限于硬件电路和软件的任何特定组合。

如上所述,计算机系统710可以包括至少一个计算机可读介质或存储器,用于保存根据本发明实施例的编程的指令,并且用于包含数据结构、表格、记录或本文描述的其它数据。本文使用的术语“计算机可读介质(computer readable medium)”是指参与向处理器720提供指令以供执行的任何介质。计算机可读介质可以采取许多形式,包括但不限于非暂时性、非易失性介质、易失性介质和传输介质。非易失性介质的非限制性示例包括光盘、固态驱动器、磁盘和磁光盘,例如磁性硬盘741或可移动介质驱动器742。易失性介质的非限制性示例包括动态存储器,例如系统存储器730。传输介质的非限制性示例包括同轴电缆、铜线和光纤,包括组成系统总线721的电线。传输介质也可以采用声波或光波的形式,例如在无线电波和红外数据通信期间产生的那些。

用于执行本公开的操作的计算机可读介质指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据,或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言例如Smalltalk、C++等,以及传统的过程编程语言例如“C”编程语言或类似的编程语言。计算机可读程序指令可以完全在用户的计算机上、部分在用户的计算机上,作为独立的软件包执行,部分在用户的计算机上、部分在远程计算机上或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以连接到外部计算机(例如,通过使用因特网服务提供商的因特网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来个性化电子电路,以执行计算机可读程序指令,以便执行本公开的各方面。

在此参考根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图,描述本公开的各方面。流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以通过计算机可读介质指令来实现。

计算环境700可以进一步包括计算机系统710,该计算机系统使用到一个或多个远程计算机(诸如,远程计算设备773)的逻辑连接在网络环境中操作。网络接口770可以实现例如经由网络771与其它远程设备773或系统和/或存储设备741、742的通信。远程计算设备773可以是个人计算机(膝上型或台式)、移动设备、服务器、路由器、网络PC、对等设备或其它公共网络节点,并且通常包括以上相对于计算机系统710描述的许多或所有元件。当在网络环境中使用时,计算机系统710可以包括调制解调器772,用于通过诸如因特网之类的网络771建立通信。调制解调器772可以经由用户网络接口770或经由另一种适当的机制连接到系统总线721。

网络771可以是本领域公知的任何网络或系统,包括因特网、内联网、局域网(LAN)、广域网(WAN)、城域网(MAN)、直接连接或一系列连接、蜂窝电话网络或能够促进计算机系统710与其它计算机(例如,远程计算设备773)之间的通信的任何其它网络或介质。网络771可以是有线的、无线的或其组合。有线连接可以使用以太网、通用串行总线(USB)、RJ-6或本领域公知的任何其它有线连接来实现。无线连接可以使用Wi-Fi、WiMAX和蓝牙、红外、蜂窝网络、卫星或本领域公知的任何其它无线连接方法来实现。此外,几个网络可以单独工作或彼此通信,以促进网络771中的通信。

图7中被描述为存储在系统存储器730中的程序模块、应用、计算机可执行指令、代码等仅是说明性的,而不是穷举性的,并且被描述为由任何特定模块支持的处理可以替代地分布在多个模块中,或者由不同的模块执行。另外,可以提供(一个或多个)各种程序模块、(一个或多个)脚本、(一个或多个)插件、(一个或多个)应用程序接口(API)、或本地托管在计算机系统710、远程设备773上和/或托管在可通过一个或多个网络771访问的(一个或多个)其它计算设备上的任何其它合适的计算机可执行代码,以支持由图7所示的程序模块、应用或计算机可执行代码提供的功能和/或附加或替代功能。此外,功能可以被不同地模块化,使得被描述为由图7所示的程序模块集合共同支持的处理可以由更少或更多数量的模块来执行,或者被描述为由任何特定模块支持的功能可以至少部分地由另一模块来支持。此外,支持本文描述的功能的程序模块可以根据任何合适的计算模型(例如,客户端-服务器模型、对等模型等),形成可在任何数量的系统或设备上执行的一个或多个应用的一部分。另外,被描述为由图7所示的任何程序模块支持的任何功能可以至少部分地在任何数量的设备上的硬件和/或固件中实现。

还应当理解,在不脱离本公开的范围的情况下,计算机系统710可以包括除了所描述或描绘的那些之外的替代和/或附加的硬件、软件或固件部件。更具体地,应当理解,被描绘为形成计算机系统710的一部分的软件、固件或硬件部件仅是说明性的,并且在各种实施例中可以不存在一些部件或者可以提供附加部件。虽然各种说明性程序模块已经被描绘和描述为存储在系统存储器730中的软件模块,但是被描述为由程序模块支持的功能可以由硬件、软件和/或固件的任何组合来实现。在各种实施例中,上述模块中的每个可以表示支持的功能的逻辑分区。该逻辑分区是为了便于解释功能而描述的,并且可能不代表用于实现该功能的软件、硬件和/或固件的结构。因此,应当理解,在各种实施例中,被描述为由特定模块提供的功能可以至少部分地由一个或多个其它模块提供。此外,在某些实施例中可能不存在一个或多个所描绘的模块,而在其它实施例中,未描绘的附加模块可能存在并且可以支持所描述的功能和/或附加功能的至少一部分。此外,虽然某些模块可以被描绘和描述为另一模块的子模块,但是在某些实施例中,可以将这些模块可以提供为独立的模块或者其它模块的子模块。

虽然已经描述了本公开的特定实施例,但是许多其它修改和替代实施例都在本公开的范围内。例如,关于特定设备或部件描述的任何功能或处理能力可以由任何其它设备或部件执行。此外,虽然已经根据本公开的实施例描述了各种示例性实现方式和架构,但是对本文描述的示例性实现方式和架构的许多其它修改也在本公开的范围内。另外,在此被描述为基于另一操作、元素、部件、数据等的任何操作、元素、部件、数据等可以另外基于一个或多个其它操作、元素、部件、数据等。因此,短语“基于”或其变体应被解释为“至少部分基于”。

虽然已经用特定于结构特征和/或方法动作的语言描述了实施例,但是应当理解,本公开不必限于所描述的特定特征或动作。相反,特定特征和动作被公开为实现实施例的说明性形式。除非另外特别说明或者在所使用的上下文中以其他方式理解,否则条件语言例如“能够(can)”、“能够(could)”、“可能(might)”或“可以(may)”通常旨在传达某些实施例可以包括某些特征、元素和/或步骤,而其它实施例不包括。因此,这种条件语言通常不旨在暗示一个或多个实施例以任何方式要求特征、元素和/或步骤,或者一个或多个实施例必须包括用于在有或没有用户输入或提示的情况下决定这些特征、元素和/或步骤是否包括在内或将在任何特定实施例中执行的逻辑。

附图中的流程图和框图说明了根据本公开的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现(一个或多个)指定逻辑功能的一个或多个可执行指令。在一些可替换的实施方式中,框中标注的功能可以不按附图中标注的顺序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还应注意,框图和/或流程图的每个框以及框图和/或流程图中的框的组合可以由基于专用硬件的系统来实现,该系统执行指定的功能或动作或者进行专用硬件和计算机指令的组合。

技术分类

06120113171986