CN117828816A - 利用连接性过滤的计算机辅助形状合成 - Google Patents
利用连接性过滤的计算机辅助形状合成 Download PDFInfo
- Publication number
- CN117828816A CN117828816A CN202311275509.2A CN202311275509A CN117828816A CN 117828816 A CN117828816 A CN 117828816A CN 202311275509 A CN202311275509 A CN 202311275509A CN 117828816 A CN117828816 A CN 117828816A
- Authority
- CN
- China
- Prior art keywords
- shape
- path
- thickness
- geometry
- modeled object
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000001914 filtration Methods 0.000 title claims abstract description 29
- 230000015572 biosynthetic process Effects 0.000 title abstract description 14
- 238000003786 synthesis reaction Methods 0.000 title abstract description 14
- 238000000034 method Methods 0.000 claims abstract description 161
- 238000013461 design Methods 0.000 claims abstract description 143
- 238000005457 optimization Methods 0.000 claims abstract description 92
- 238000004590 computer program Methods 0.000 claims abstract description 25
- 238000004088 simulation Methods 0.000 claims description 46
- 230000008859 change Effects 0.000 claims description 32
- 238000012545 processing Methods 0.000 claims description 30
- 238000010845 search algorithm Methods 0.000 claims description 25
- 230000009467 reduction Effects 0.000 claims description 22
- 230000004913 activation Effects 0.000 claims description 18
- 230000000670 limiting effect Effects 0.000 claims description 13
- 239000000463 material Substances 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 12
- 230000000717 retained effect Effects 0.000 claims description 12
- 238000009499 grossing Methods 0.000 claims description 8
- 230000008602 contraction Effects 0.000 claims description 2
- 230000000116 mitigating effect Effects 0.000 claims description 2
- 238000011960 computer-aided design Methods 0.000 abstract description 15
- 238000001514 detection method Methods 0.000 abstract description 4
- 238000004519 manufacturing process Methods 0.000 description 62
- 230000008569 process Effects 0.000 description 54
- 230000006870 function Effects 0.000 description 30
- 238000012938 design process Methods 0.000 description 25
- 230000014759 maintenance of location Effects 0.000 description 23
- 238000004422 calculation algorithm Methods 0.000 description 22
- 238000005094 computer simulation Methods 0.000 description 13
- 239000007787 solid Substances 0.000 description 11
- 230000004048 modification Effects 0.000 description 10
- 238000012986 modification Methods 0.000 description 10
- 230000000704 physical effect Effects 0.000 description 10
- 238000001308 synthesis method Methods 0.000 description 10
- 239000000654 additive Substances 0.000 description 9
- 230000000996 additive effect Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000003860 storage Methods 0.000 description 8
- 238000003754 machining Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 239000012530 fluid Substances 0.000 description 5
- 239000000203 mixture Substances 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000005266 casting Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000007670 refining Methods 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 238000000110 selective laser sintering Methods 0.000 description 4
- 230000035945 sensitivity Effects 0.000 description 4
- 239000000243 solution Substances 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 238000005520 cutting process Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012886 linear function Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 230000008439 repair process Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005242 forging Methods 0.000 description 2
- 238000009472 formulation Methods 0.000 description 2
- 238000001746 injection moulding Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000003801 milling Methods 0.000 description 2
- 239000000843 powder Substances 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 239000002994 raw material Substances 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000008719 thickening Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000010146 3D printing Methods 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000000149 argon plasma sintering Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000009430 construction management Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000003628 erosive effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000001125 extrusion Methods 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 238000010100 freeform fabrication Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000001976 improved effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000011068 loading method Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000001465 metallisation Methods 0.000 description 1
- 238000000465 moulding Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000011548 physical evaluation Methods 0.000 description 1
- 238000000053 physical method Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000013442 quality metrics Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000007711 solidification Methods 0.000 description 1
- 230000008023 solidification Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Landscapes
- Processing Or Creating Images (AREA)
Abstract
用于在形状合成期间利用连接性过滤的计算机辅助设计的方法、系统和设备,包括介质编码的计算机程序产品,包括:三维建模程序,所述三维建模程序被配置为在形状和/或拓扑优化期间提供断开检测、形状合成和/或连接性过滤。所述三维建模程序可以是架构、工程和/或构造程序(例如,建筑信息管理程序)、产品设计和/或制造程序(例如,CAM程序)和/或媒体和/或娱乐制作程序(例如,动画制作程序)。
Description
相关申请的交叉引用
本申请根据35USC§119(e)要求2023年10月3日提交的名称为“COMPUTER AIDEDSHAPE SYNTHESIS WITH CONNECTIVITY FILTERING(利用连接性过滤的计算机辅助形状合成)”的美国专利申请号63/412,843的权益。
背景技术
本说明书涉及可使用增材制造、减材制造和/或其他制造系统和技术来制造的物理结构或者可作为数字资产(诸如用于动画)提供的其他结构的计算机辅助设计。
计算机辅助设计(CAD)软件已经被开发并且用于生成对象的三维(3D)表示,并且计算机辅助制造(CAM)软件已经被开发并且用于评估、计划和控制那些对象的物理结构的制造(例如,使用计算机数控(CNC)制造技术)。通常,CAD软件使用边界表示(B-Rep)格式来存储正在被建模的对象的几何形状的3D表示。B-Rep模型是一组连接的表面元素,其指定建模3D对象的实心部分与非实心部分之间的边界。在B-Rep模型(通常称为B-Rep)中,几何形状使用平滑和精确的数学表面存储在计算机中,这与网格模型的离散和近似曲面形成对比,后者可能很难在CAD程序中使用。
CAD程序已经与减材制造系统和技术结合使用。减材制造是指通过切除部分库存材料而从库存材料(通常是比3D对象大的“坯件”或“工件”)创建3D对象的任何制造过程。此类制造过程通常涉及在从粗加工操作、可选半精加工操作和精加工操作开始的一系列操作中使用多个CNC机床切削工具。除CNC加工外,其他减材制造技术还包括电极放电加工、化学加工、水射流加工等。相比之下,增材制造,也称为实体自由成形制造或3D打印,是指在一系列层或横截面中由原材料(一般是粉末、液体、悬浮液或熔融固体)构建3D对象的任何制造过程。增材制造的示例包括熔丝制造(FFF)和选择性激光烧结(SLS)。由原材料构建3D对象的其他制造技术包括铸造和锻造(热和冷两者)以及成型。
此外,CAD软件已经在一种设计(称为“拓扑优化”、“生成设计”或“生成建模”等)中被设计成执行一个或多个零件的3D几何形状的自动生成。这种3D几何形状的自动生成通常在由用户或CAD软件指定的“设计域”内起作用,并且通常通过优化设计目标并遵守设计约束(其可以由用户、CAD软件或第三方定义)来生成几何形状。设计目标可以包括但不限于最小化材料浪费、最小化零件的重量以及最小化顺应性、应力、最大质量、负载下的最大挠度或零件的其他固有性质,并且用于驱动形状合成过程以获得更好的设计。尽管不是必需的,但设计目标通常植根于设计仿真(线性静态、流体动力学、电磁等)。设计约束可以包括任何生成的设计中必须满足的各种物理特性或行为(也可以接受对各个零件或整个总成的要求);示例包括最大质量、负载下的最大挠度、最大应力等。
还可提供几何约束,例如以确保所生成的形状没有微小的特征或者更容易使用特定的制造过程实现。此外,这种3D几何形状生成工具的几何输入可以包括在设计中应始终存在的一个或多个用户或CAD系统提供的“保留主体”(指示设计空间的在最终设计中应用材料填充的体积区域)或“保留面”(指示设计空间与应当被所生成的3D几何形状接触的相邻组件之间的界面)。“保留主体”或“保留面”可表示与系统的其他零件或应对其应用边界条件(例如,机械负载和约束)的位置的界面。也可以以类似的方式提供应或不应生成几何形状的其他区域(例如,用于指示何处不应创建几何形状的“障碍物主体”)。在一些情况下,形状合成过程使用与CAD系统所采用的不同的几何形状表示来进行。例如,CAD系统可能使用边界表示(“B-Rep”),而几何形状生成引擎可能采用嵌入体素或四面体网格中的水平集函数。
发明内容
本说明书描述了与在形状合成期间(例如,在使用生成设计过程自动设计物理结构期间)利用连接性过滤的计算机辅助结构设计相关的技术。当形状的两个或更多个区域应彼此连接或应保持彼此连接时,所描述的系统和技术可以与二维(2D)或三维(3D)几何形状的计算机辅助设计一起使用。此外,虽然本公开集中于3D水平集拓扑优化,但是所描述的系统和技术适用于其他尝试的技术领域,包括用于评估设计的连接性,或作为独立的几何形状合成方法,例如,创建起始形状以用于形状和/或拓扑优化。其他应用包括生成概念作品或纯数字资产,诸如以用于动画。
一般而言,本说明书中描述的主题的一个或多个方面可以体现在一种或多种方法中(以及还体现在有形地编码计算机程序的一种或多种非暂时性计算机可读介质中,所述计算机程序可操作以使数据处理设备执行操作),所述方法包括:通过形状建模计算机程序获得在由形状建模计算机程序使用的数据结构中定义的几何形状的两个或更多个指定区域;通过形状建模计算机程序识别两个或更多个指定区域之间的至少一条路径,其中所述至少一条路径对应于必须包括在几何形状中以确保几何形状的两个或更多个指定的区域中的至少两者之间的连接的一个或多个所需区域;以及通过形状建模计算机程序产生在数据结构中针对一个或多个所需区域定义的新的几何形状,所述新的几何形状使用所述至少一条路径来产生。
两个或更多个指定区域可以是两个或更多个保留主体,可以针对几何形状指定两个或更多个保留主体和至少一个障碍物主体,并且所述产生可以涉及基于两个或更多个保留主体、至少一条路径以及至少一个障碍物主体生成新的几何形状。所述产生可以包括:在优化循环的多次迭代中的每一次中执行识别;在优化循环的多次迭代中的每一次中改变建模对象的形状,包括限制形状在沿着至少一条路径的一个或多个所需区域的至少一部分中的厚度减小;以及输出建模对象的形状以至少产生数据结构中定义的新的几何形状。
建模对象的形状可以包括建模对象的隐式表面的水平集表示,所述产生可以包括:在优化循环的多次迭代中的每一次中调整至少一条路径的数据值以产生至少一条路径的调整后的数据值,限制形状的厚度减小可以包括在优化循环的多次迭代中的每一次中改变建模对象的形状期间使用调整后的数据值来限制形状在一个或多个所需区域中的厚度减小,并且调整可以包括:针对至少一条路径的与形状的中轴相对应的数据值的第一部分,从与数据值的第一部分相对应的多个空间点中的每一者投射光线,并估计沿着每条光线的水平集表示中的值的极值以产生调整后的空间点;以及针对不与形状的中轴相对应的至少一条路径的数据值的第二部分,使与数据值的第二部分相对应的空间点平滑以产生调整后的空间点。
所述识别可以包括薄化几何形状的体素化模型以在两个或更多个指定区域之间产生至少一条路径。所述识别可以包括在包括几何形状的体素化模型的体素空间内运行路径搜索算法以在两个或更多个指定区域之间产生至少一条路径,以及任选地调整路径搜索算法的成本函数以基于形状的局部厚度来惩罚路径。路径搜索算法可以限于搜索包括在两个或更多个保留主体中以及来自薄化的输出中的体素。
路径搜索算法可以针对一个或多个目的地中的每一者同时运行,并且所述方法可以包括在到达每个相应的目的地保留主体时从搜索中移除目的地保留主体。一个或多个目的地中的每一者可以包括在所述保留主体中的一者或多者中的相应保留主体中的一组两个或更多个结束体素。所述方法可以包括在从相应的目的地保留主体到起始保留主体的回溯期间更新从起始保留主体发现的路径。
路径搜索算法可以限于在第一遍搜索期间搜索包括在两个或更多个保留主体中以及来自薄化的输出中的体素,并且当第一遍搜索未能发现起始保留主体与所有目的地保留主体之间的路径时,可以执行第二遍搜索。所述识别可以包括搜索包括节点和边的图形,节点表示两个或更多个指定区域以及沿着两个或更多个指定区域之间的初始路径的任何交汇点,并且边表示两个或更多个指定区域之间的至少一条路径的各个单独部分以及沿着两个或更多个指定区域之间的初始路径的任何交汇点。两个或更多个指定区域之间的初始路径可以包括使用形状的体素化薄化生成的线骨架,并且所述方法可以包括回退到在包括几何形状的体素化模型的体素空间内运行路径搜索算法以在两个或更多个指定区域之间产生至少一条路径。
所述产生可以包括:在优化循环的多次迭代中的每一次中调整至少一条路径的数据值以产生至少一条路径的调整后的数据值,限制形状的厚度减小可以包括在优化循环的多次迭代中的每一次中改变建模对象的形状期间使用调整后的数据值来限制形状在一个或多个所需区域中的厚度减小,并且使用调整后的数据值来限制形状在一个或多个所需区域中的厚度减小可以包括:使用调整后的数据值来计算建模对象的形状厚度值;以及通过根据目标断开厚度和形状厚度值来减缓形状改变,根据优化循环的多次迭代中的每一次中的数值模拟来修改建模对象的改变量。
建模对象的形状可以包括建模对象的隐式表面的水平集表示,并且所述计算可以包括:通过针对调整后的点中的每一个执行球体的布尔并集来将加厚水平集表示形成为建模对象的隐式表面的水平集表示的副本;以及基于建模对象的隐式表面的水平集表示与加厚水平集表示之间的差值来估计形状厚度值。
所述改变可以包括根据一个或多个设计标准来改变建模对象的三维形状和拓扑,并且所述修改可以包括:在建模对象中形状厚度值大于目标断开厚度或在目标断开厚度的预定义距离内的位置处沿朝向目标断开厚度的方向执行减慢;以及在建模对象中形状厚度值小于目标断开厚度的位置处迫使形状沿朝向目标断开厚度的方向改变。
可以在所述位置中的每一者处执行减慢达基于所述位置处的形状厚度值与目标断开厚度之间的差值的量,并且可以在所述位置中的每一者处执行所述迫使达基于所述位置处的形状厚度值与目标断开厚度之间的差值的量。可以通过执行操作来计算减慢中所使用的量,所述操作包括:使用所述位置处的形状厚度值与目标断开厚度之间的差值的固定百分比来计算减慢中所使用的量。
所述产生可以包括:确定建模对象沿着至少一条路径的厚度已下降到激活厚度以下;以及响应于建模对象沿着至少一条路径的厚度已下降到激活厚度以下,限制形状在沿着至少一条路径的一个或多个所需区域的至少一部分中的厚度减小。所述确定可以在优化循环的每次迭代中执行,直到建模对象沿着至少一条路径的厚度已下降到激活厚度以下,并且多次迭代可以是优化循环的所有迭代的真子集。
数据结构中定义的几何形状可以用建模对象的隐式表面的水平集表示来建模,并且所述产生可以包括:通过针对对应于至少一条路径的多个点中的每一者执行球体的布尔并集来将加厚水平集表示形成为建模对象的隐式表面的水平集表示的副本;以及将建模对象的隐式表面的水平集表示替换为建模对象的加厚水平集表示,以产生在数据结构中针对一个或多个所需区域定义的新的几何形状。所述产生可以包括:检测在优化循环的至少一次迭代中已经沿着至少一条路径发生断开;以及响应于检测到断开而执行所述形成和所述替换。
可以实施本说明书中描述的主题的特定实施方案以实现以下优点中的一者或多者。可以在对象的形状和/或拓扑优化(例如,自动生成要制造的零件的至少一部分)期间采用所描述的连接性过滤,以减少所产生的设计由于正在合成的形状的相应部分的断开而引起的失败;当设计在形状优化过程开始时或期间针对相应的保留主体分成两个单独的部分时,就会发生断开。可以识别和/或防止即将发生的几何形状(例如,使用拓扑优化合成的几何形状)的断开。可以检测和/或校正已经发生的几何形状(例如,使用拓扑优化合成的几何形状)的断开。此外,在障碍物对现有形状合成算法造成问题的情况下,可以创建有效的起始形状。
在生成设计中,连接性过滤可以用于提高起始形状有效性和结果质量,并且可以与所有合适的制造约束、最小特征大小约束以及线性静态和流体通道优化范式两者或其他物理特性域(例如,热的、多重物理特性的等)中的无约束运行一起工作。连接性过滤可以通过防止否则将由第一保留主体具有的施加负载比第二保留主体处的施加负载小多个数量级而引起的断开来提高生成设计中的结果质量。生成设计的此类初始设置可能会导致正在生成的形状的数值模拟在连接第一保留主体与设计的其余部分的区域中产生非常小的灵敏度,实际上是太小,以至于所需的成员大小无法在数值模拟中使用的分辨率中得以实现,并且因此通常会在优化过程的早期发生断开,从而导致形状的其余部分不会显著演变,从而产生对用户几乎没有价值的结果。
生成设计中断开的另一个常见原因是多组受约束的保留主体。两个或更多个保留主体(例如,将用于将生成设计形状连接到较大系统中的其他零件的螺栓孔)都可以被分配固定约束,但优化器可能够仅使用所提供的保留主体的真子集来最高效地响应负载,从而导致保留主体的断开不包括在此真子集中。这种断开也可能在优化过程的相对较早期发生。本申请中描述的连接性过滤防止生成设计中的此类断开(例如,由一组受约束的保留主体和/或由不同保留主体的施加负载的大的失配引起的断开)并且允许形状优化继续完成并产生可用的结果。
此外,所描述的技术可以用于改进自动建模,所述自动建模也可以使用拓扑优化来合成设计,但速度更快(使用当前的计算机处理器只需几分钟,而不是几小时),并且没有诸如生成设计中通常使用的起始形状或物理边界条件。由于自动建模通常使用一种或多种物理模拟方法以及几何形状的过程网格表示,因此几何形状的断开在自动建模中很常见。例如,由于自动建模通常采用的物理方法,无法保证所提供的应变能场会产生连接所有输入保留主体的形状。因此,使用本文档中描述的系统和技术可以大幅改进自动建模。此外,以几何级别处理断开(而不是使用优化或模拟调整来最小化断开,或者对使用优化或模拟调整来最小化断开进行补充)提供了一种计算高效且稳健的解决方案,其防止断开并降低产生不可用设计的风险。
在附图和以下描述中阐述了本说明书中描述的主题的一个或多个实施方案的细节。本发明的其他特征、方面和优点将从描述、附图和权利要求中变得显而易见。
附图说明
图1A示出了可用于促进在形状合成期间利用连接性过滤的计算机辅助结构设计的系统的示例。
图1B示出了自动建模、生成设计和/或形状合成的过程的示例。
图1C示出了防止保留主体断开的自动建模或生成设计过程中的迭代循环的示例。
图2A示出了在二维或三维计算机模型中(包括当存在障碍物主体时)连接指定区域的形状生成的示例。
图2B示出了形状的体素化线骨架的示例。
图2C和图2D示出了用于将骨架点细化为更靠近3D形状的中轴的光线投射和极值估计的过程。
图2E和图2F示出了用于沿着搜索方向发现尽可能靠近带符号的距离场的谷底的体素的过程。
图3A示出了在体素化模型内使用路径搜索算法来识别关键路径的示例。
图3B示出了使用路径发现算法来搜索保留主体之间的路径的示例。
图3C示出了两遍路径发现搜索过程的示例。
图3D示出了对保留主体之间的一些路径进行优先级排序的示例。
图4A至图4F示出了用于识别关键路径的图形搜索程序的示例。
图5A示出了在优化循环中改变建模对象的形状期间使用调整后的数据值(针对所识别的路径)来限制一个或多个所需区域中的形状的厚度减小的过程的示例。
图5B示出了计算建模对象的形状厚度值的示例。
图6是包括数据处理设备的数据处理系统的示意图,所述数据处理设备可以被编程为客户端或服务器并且实施本文档中描述的技术。
在各个附图中,相似参考标记和名称指示相似元件。
具体实施方式
图1A示出了可用于促进在形状合成期间利用连接性过滤的计算机辅助结构设计的系统的示例。计算机110包括处理器112和存储器114,并且计算机110可以连接到网络140,所述网络可以是专用网络、公共网络、虚拟专用网络等。处理器112可以是一个或多个硬件处理器,所述一个或多个硬件处理器可以各自包括多个处理器核心。存储器114可以包括易失性存储器和非易失性存储器两者,诸如随机存取存储器(RAM)和快闪RAM。计算机110可以包括各种类型的计算机存储介质和装置(其可以包括存储器114),以存储在处理器112上运行的程序的指令,所述程序包括计算机辅助设计(CAD)程序116,所述CAD程序实施二维(2D)和/或三维(3D)建模函数并且包括在形状合成期间进行过滤,所述过滤可以在拓扑优化的其他应用中(例如,自动化建模)被实施为针对拓扑优化(例如,使用所描述的至少一个水平集方法)的一个或多个生成设计过程的一部分,和/或实施用于评估设计的几何形状的连接性,或作为独立的几何形状合成方法。
在一些情况下,由本文档中描述的系统和技术执行的数值模拟可以模拟一种或多种物理性质,并且可以使用一种或多种类型的模拟来产生对建模对象的物理响应(例如,结构响应)的数值评估。例如,可以使用有限元分析(FEA),包括线性静态FEA、有限差分法和物质点法。此外,物理性质的模拟可以包括计算流体动力学(CFD)、声学/噪声控制、热传导、计算注塑成型、电或电磁通量和/或材料凝固(这对于成型过程中的相变很有用)模拟。
如本文所用,CAD是指用于设计满足设计要求的物理结构的任何合适的程序,而不管所述程序是否能够与制造装备对接和/或控制制造装备。因此,CAD程序116可以包括计算机辅助工程(CAE)程序、计算机辅助制造(CAM)程序等。程序116可以在计算机110上本地运行、在一个或多个远程计算机系统150(例如,计算机110可经由网络140访问的一个或多个第三方提供商的一个或多个服务器系统)的计算机上远程运行、或本地和远程两者。因此,CAD程序116可以是在两个或更多个单独的计算机处理器上协作地操作的两个或更多个程序,其中在计算机110处本地操作的一个或多个程序116可以通过使一个或多个计算机150上的一个或多个程序116执行卸载的处理操作来“向云”卸载处理操作(例如,形状生成和/或物理模拟操作)。在一些实施方式中,所有形状生成操作由云中的一个或多个程序运行,而不是在本地计算机上运行的形状表示建模器(例如,B-Rep建模器)中运行。此外,在一些实施方式中,形状生成程序可以从由程序调用的应用程序接口(API)在云中运行,而无需通过图形用户界面进行用户输入。
CAD程序116在计算机110的显示装置120上呈现用户界面(UI)122,所述用户界面可以使用计算机110的一个或多个输入装置118(例如,键盘和鼠标)来操作。应注意,虽然在图1A中示出为单独的装置,但显示装置120和/或输入装置118还可以彼此集成和/或与计算机110集成,诸如在平板计算机中(例如,触摸屏可以是输入/输出装置118、120)。此外,计算机110可以包括虚拟现实(VR)和/或增强现实(AR)系统或者是其一部分。例如,输入/输出装置118和120可以包括VR/AR输入控制器、手套、或其他手动操纵工具118a,和/或VR/AR头戴式耳机120a。在一些情况下,输入/输出装置可以包括基于传感器的手部跟踪装置,所述传感器跟踪移动并重新创建交互,就像使用物理输入装置执行一样。在一些实施方式中,VR和/或AR装置可以是可能不需要连接到计算机110的独立装置。VR和/或AR装置可以是具有处理能力的独立装置和/或诸如计算机110的集成计算机,例如具有诸如控制器、传感器、检测器等的输入/输出硬件组件。
在任何情况下,用户160与CAD程序116交互以创建和修改2D和/或3D模型,所述2D和/或3D模型可以存储在模型文档130中。在图1A所示的示例中,3D模型132包括已经使用采用本文档中描述的系统和技术的过程自动生成的几何形状132A。形状生成过程可以接收初始3D模型作为输入,即,起始形状(或“种子几何形状”)。在一些实施方式中,种子几何形状包括一个或多个保留区域,诸如保留主体134A、134B、134C、134D、134E、134F。在一些实施方式中,边界约束可以相对于此类保留区域定义,并且用于形状优化(任选地,和拓扑优化)的起始形状可被形成为保留区域的凸包或由用户指定。在一些实施方式中,可以使用本文档中描述的系统和技术来生成起始形状。
输入保留区域可以是未连接的建模实体或表面(例如,建模实体的用户识别的面),并且使用形状生成过程来在设计空间中产生新的3D几何形状,所述设计空间是在形状和/或拓扑优化期间在其内要设计对象的空间体积,并且其中该新的3D几何形状连接所有输入保留区域,诸如在图1A的示例中。在一些情况下,用户可以明确地指定设计空间。在一些实施方式中,CAD程序116可以自动确定设计空间。此外,虽然以下讨论集中于连接3D模型中的保留区域,但是本公开更一般地适用于确保正在自动生成的2D或3D形状的两个或更多个指定区域之间的连接。
在一些实施方式中,用户160可以定义生成设计过程从起始3D模型产生期望3D模型的拓扑优化问题,或者输入可以是没有特定起始3D模型的设计空间。一般而言,输入设计空间可以是自动生成的或用户指定的。应注意,生成设计过程本身可以在设计空间内产生起始几何形状。例如,可以将一个或多个种子模型用作生成设计过程的输入,以在形状演变开始时引入孔,以便修改生成设计的拓扑。
CAD程序116可以实施至少一个生成设计过程,所述至少一个生成设计过程使得CAD程序116能够基于设计目标和约束(即,设计标准)自动地生成3D模型的一个或多个部分(或整个3D模型),其中可以基于模拟反馈(例如,基于数值物理特性模拟)迭代地优化几何设计。在一些情况下,可以通过一个或多个生成设计过程共同创建多个3D模型,并且可以对其进行组装以形成新的3D模型。应注意,如本文所用,“优化”(或“最优”等)并不意指在所有情况下都实现了所有可能设计中的最佳设计,而是意指最佳(或接近最佳)设计是从可以在给定可用处理资源的情况下在分配的时间内生成的一组有限的可能设计中选择的。
设计标准可以由用户160或由另一方定义并输入到CAD程序116中。设计标准可以包括几何目标,所述几何目标在具有或没有物理特性/物理响应模拟的情况下,使用迭代数值模拟过程驱动形状(任选地,和拓扑)演变。设计标准还可包括3D模型的结构的演变的物理特性目标。例如,几何目标可对应于3D模型的伪物理响应。在一些实施方式中,生成设计过程可以是可与边界条件相关联的结构生成设计过程,所述边界条件可指定物理结构的使用中负载情况。在一些情况下,边界条件可以是压力和速度边界条件。在一些实施方式中,设计标准可以包括对各个零件的结构完整性约束(例如,要求零件在使用零件期间在预期结构负载下不应失效)和由较大系统施加的物理约束(例如,要求零件包含在指定的体积内,以免在使用期间干扰系统中的其他零件)。
可使用可优化3D模型的至少一部分的形状和拓扑的各种生成设计过程。CAD程序116对3D模型的几何设计的优化可涉及拓扑优化,这是一种轻量化方法,其中通过使受制于设计约束的目标函数最小化来确定材料的最优分布(例如,对作为约束的体积的结构合规性)。拓扑优化有两大类:基于密度的方法和基于边界的方法。基于密度的方法将零件的体积离散化,并向每个离散单元分配密度,诸如在固体各向同性材料惩罚(SIMP)方法中。然后将密度朝向实心和空心驱动,同时最小化受约束的目标。相反,基于边界的方法跟踪固体零件的外部界面的形状并且移动边界,使得满足约束并且使目标最小化,诸如在水平集方法中。
在一些实施方式中,建模对象的生成设计的3D形状具有在对象的生成建模期间使用的水平集表示。可以使用拓扑优化来改变对象的生成设计的3D形状,以根据基于数值模拟评估的形状改变速度来更新水平集表示。水平集表示方法可以用于在拓扑优化期间跟踪建模对象的形状的边界,其优点在于提供边界的精确认知,并且允许拓扑随着表面的演化而改变,而无需重新建网。在任何情况下,应注意,形状合成过程可以(并且通常将)使用与由CAD程序116采用来进行3D建模的几何形状表示不同的几何形状表示来进行。例如,CAD程序116可以针对输入几何形状使用B-Rep模型,而几何形状生成引擎(在CAD程序116中)可以采用嵌入体素或四面体网格中的水平集函数。
更一般地,在一些实施方式中,2D或3D建模对象的形状(可选地,和拓扑)是使用生成设计过程或自动建模来产生的,所述生成设计过程或自动建模采用连接性过滤来确保在正在生成的2D或3D形状的两个或更多个指定区域之间维持连接。在一些实施方式中,所描述的评估设计的几何形状的连接性的过程在生成新的几何形状的上下文之外使用。例如,连接性评估过程可以用于在复杂结构的显示器120上的UI 122中提供简化的可视化,例如,以用于增材或注塑成型制造准备软件,或者用于动画准备软件。
一旦用户160对算法设计的3D模型132感到满意,就可将计算机模型132存储为模型文档130和/或用于生成模型的另一表示(例如,用于制造过程的工具路径规范)。这可以应用户160请求或者鉴于用户对另一动作(诸如将计算机3D模型132发送到制造机器,例如增材制造(AM)机器和/或减材制造(SM)机器170或其他制造机械,制造机器可以直接连接到计算机110或者如图所示经由网络140连接)的请求进行。这可以涉及在本地计算机110上执行或在外部执行(例如,基于调用在云中运行的云服务)以进一步处理所生成的3D模型(例如,基于与增材制造过程相关联的考虑因素)并且将3D模型导出为根据其进行制造的电子文档的后处理。应注意,电子文档(为简洁起见,将其简称为文档)可以是文件,但不一定对应于文件。可以将文档存储在保存其他文档的文件的一部分中,存储在专用于所讨论的文档的单个文件中,或存储在多个协同文件中。此外,用户160可以保存或传输3D模型以备后用。例如,CAD程序116可以存储包括算法设计的模型132的文档130。
CAD程序116可以向AM和/或SM机器170提供文档135(其具有适当格式的工具路径规范)以产生对应于算法设计的模型132的至少一部分的物理结构。AM机器170可采用一种或多种增材制造技术,诸如颗粒技术(例如,粉末床融合(PBF)、选择性激光烧结(SLS)和直接金属激光烧结(DMLS))或挤出技术(例如,熔丝制造(FFF)、金属沉积)。在一些情况下,AM机器170直接构建物理结构,并且在一些情况下,AM机器170构建用于铸造或锻造物理结构的模具。
SM机器170可以是在制造过程中使用的计算机数控(CNC)铣床,诸如多轴、多工具铣床。例如,CAD程序116可生成用于机床系统170的CNC指令,所述机床系统包括可用于各种加工操作的多个工具(例如,不同大小和形状的实心硬质合金圆角工具,以及接收金属插入件以产生不同切削表面的不同大小的插入件工具)。因此,在一些实施方式中,CAD程序116可以向SM机器170提供对应文档135(其具有适当格式的工具路径规范,例如CNC数控(NC)程序)以用于使用各种切削工具等制造物理结构。
另外,在一些实施方式中,不涉及物理制造。本文所述的系统和技术适用于任何合适的2D或3D建模软件。因此,在一些实施方式中,CAD程序116可以是动画制作程序,其将3D模型132渲染为适当格式的文档165以用于视觉显示,诸如通过数字投影仪174进行视觉显示(例如,用于电影发行的数字影院包(DCP)165)或通过其他高分辨率显示装置进行视觉显示。其他应用也是可能的。然而,在各种实施方式中,系统100的CAD程序116实施一个或多个生成设计过程以寻求最优几何形状、拓扑或两者,诸如2022年3月29日提交的名称为“COMPUTER AIDED GENERATIVE DESIGN WITH FEATURE THICKNESS CONTROL TOFACILITATE MANUFACTURING AND STRUCTURAL PERFORMANCE(利用特征厚度控制以促进制造和结构性能的计算机辅助生成设计)”并在2023年6月8日作为美国公布号2023-0177224-A1公布的美国申请号17/707,886,其通过引用并入本文。
图1B示出了自动建模、生成设计和/或形状合成的过程的示例。生成设计过程通过最小化受制于约束的性能相关目标函数来在替代设计中寻求最优几何形状:
使得gi(s,u(s))=0 i=1,…,ng (2)
其中s是与域的几何形状相关的设计变量的向量,并且u是取决于s的状态变量(例如,位移)的向量。附加约束(例如,平衡)由集合gi表示。为了简单起见,这里假设等式约束。用于最小化等式(1)的数学编程方法可以是基于梯度的或非基于梯度的。基于梯度的方法(与非基于梯度的方法相比)通常使用更多与设计灵敏度相关联的信息,例如:
这是与性能相关的目标函数相对于设计变量的导数。在基于水平集的拓扑优化方法中,s表示实心区域的边界。
拓扑优化历来集中于在体积约束下最小化零件的某种物理响应。用户提供一个或多个保留主体,对其应用边界条件(即机械模拟的“负载”和“约束”)。模拟器采用初始形状和这些边界条件,并在几何形状中的各处产生灵敏度,所述灵敏度指示每个区域对设计性能的相对重要性,并且优化器根据此灵敏度来更新设计以产生下一个迭代设计。
在这种形状合成方法的实际应用中,特别是在存在多于两个保留主体的情况下,应用于两个保留主体的边界条件的相对重要性可能会有很大差异。在这些情况下,随着优化的进行,优化器可能会故意(或由于数值精度或几何形状分辨率限制)断开一个或多个保留主体之间的连接。例如,考虑在中间受到约束并且在一端施加1000牛顿(N)的负载且在另一端施加0.1N的负载的矩形设计域。当通过以体积约束最小化应变能的拓扑优化例程解决问题时,一种可能的优化设计可以是这样的:几乎所有允许的体积都用于支撑较大的负载,只有一个非常小的肋将较小的负载连接到设计空间中间的受约束保留主体。在实践中,这个小肋通常比优化器的几何形状离散化所能表示的更薄,并且其被完全移除。一个保留主体与其他保留主体的这种“断开”会带来两个问题:首先,这可能是用户不期望的(隐式或明确的,用户的意图是所提供的所有保留主体都应该在最终设计中连接起来);其次,其可能会导致模拟代码出现数值问题(所加载但不受约束的主体现在不再处于静态平衡,并且状态方程无法求解)。
本文档中描述的系统和技术可以防止生成设计过程中的此类断开。所描述的断开防止技术可以用于提高通过生成设计创建的形状的稳健性,并且可以提高结果的质量和/或减少许多生产生成设计运行中的失败。此外,所描述的技术还可以与生成流体流动设计一起使用,以确保流体问题的所有出口保持附接到主流通道,即使这不是最优构型。所描述的技术可以使非专家人士更容易理解生成设计过程。
除了防止之外,所描述的技术还解决了断开检测和校正问题,并且可以应用于更广泛的优化设置。所描述的系统和技术可以与自动建模一起使用,自动建模与生成设计不同,其可能具有非常高的断开率,这会导致失败次数不可接受。将所描述的技术与自动建模结合使用可以显著减少或消除自动建模求解期间的此类断开和求解失败。所描述的技术可以防止传统自动建模中由于障碍物几何形状将起始形状分成单独部分而导致的失败,从而有效地消除该失败模式并提高解决方案的稳健性。
除了形状和拓扑优化上下文之外,所描述的技术还可以应用于两个或更多个主体(例如,保留主体)需要与新的几何形状连接的任何问题,所述问题可以被称为起始形状创建问题。一般而言,形状建模计算机程序(例如,CAD程序116)获得180在由形状建模计算机程序使用的数据结构中定义的几何形状的两个或更多个指定区域(例如,保留主体),并且产生185在数据结构中针对一个或多个区域定义的新的几何形状,所述一个或多个区域是为确保几何形状的至少两个指定区域之间的连接所必需的。这是使用指定区域(例如,保留主体)之间的至少一条识别路径来完成的,所述路径必须包括在几何形状中以确保几何形状的指定区域之间的连接。
在一些实施方式中,这是在自动建模、生成设计或两者期间完成的,例如使用下面进一步描述的基于水平集的方法。在一些实施方式中,这样做是为了解决起始形状创建问题,例如,作为水平集拓扑优化(TO)的预处理,以产生连接所有保留主体的初始形状(在用户没有指定这种形状的情况下)。图2A示出了在2D或3D计算机模型中(包括当存在障碍物主体时)连接指定区域的形状生成的示例。在该示例中,保留主体202需要以起始形状彼此连接,但是使用保留主体202作为输入来生成凸包204的传统方法将不起作用,因为障碍物主体206阻止所有保留主体202由该凸包204以单个起始形状接合在一起以进行形状和/或拓扑优化;由于障碍物,凸包断开(分成两个主体)。在一些实施方式中,当传统方法(诸如凸包生成)无法产生用于优化(例如,用于自动建模或生成设计过程)的可用起始形状时,本文档中描述的技术可以用于生成绕过障碍物主体206的起始形状208。然后可以优化该起始形状以产生最终的设计209。
此外,在一些实施方式中,本文档中描述的技术通常用于形状创建(在2D或3D中),其中产生的形状可以用于除迭代形状或拓扑优化之外的过程。例如,下面详细描述的断开几何形状过滤器可以用于创建连接一组保留主体202(无论是否存在障碍物主体206)的形状,然后将所述形状作为输出提供给用户(提供给显示装置和/或存储装置)和/或作为进一步过程的输入。换句话说,产生185的新的几何形状可以是为某种进一步用途而创建的附加几何形状,诸如作为迭代形状和/或拓扑优化循环的输入,和/或产生185的新的几何形状可以是提供给迭代形状和/或拓扑优化循环的输入几何形状的修改版本,其中该修改在迭代循环中发生。
在形状和/或拓扑优化(例如,自动建模或生成设计)的情况下,可以例如通过CAD程序116获得180建模对象的设计空间和一个或多个设计标准,以用于产生2D或3D模型。3D建模对象的设计空间是要在其内设计零件的体积。设计空间可包括包含对象的3D拓扑的一个或多个外部形状的初始规范的边界体积。如上所述,设计空间可包括:在CAD程序116中设计或加载到其中的3D模型,所述3D模型用作所描述的生成设计过程的优化域的子空间;和/或一组输入区域,例如保留主体和/或表面,所述一组输入区域用于指定生成设计几何产生的边界条件,例如,由用户通过用户界面诸如UI 122选择以指定保留用作与更大3D模型中的其他部件或与单独3D模型的连接点的子区域的B-Rep(或其面)。
设计标准可包括对象的设计目标和设计约束两者。设计目标可以包括但不限于最小化材料浪费、最小化零件的重量以及最小化顺应性、应力或零件的其他固有性质,并且用于驱动形状合成过程以获得更好的设计。尽管不是必需的,但设计目标通常植根于设计仿真(线性静态、流体动力学、电磁等)。设计约束可以包括任何生成的设计中应得到满足的各种几何和物理特性或行为(也可以接受对各个零件或整个总成的要求);示例包括最大质量、负载下的最大挠度、最大应力等。
设计标准还可包括形状的几何目标和几何约束。几何约束可由用户或从CAD程序116提供以确保实现形状的某些特性,例如,提供更容易制造的形状。例如,可限定几何约束以确保所生成的形状可没有微小特征。输入几何可包括在设计中应存在作为表示与系统的其他零件的界面的保留区域的细节,或者识别应对其应用边界条件(例如,机械负载和约束)的位置。
此外,可以通过使用设计参数和设计变量的不同组合来制定不同的生成设计过程。在一些实施方式中,设计参数可以包括(例如,通过UI 122接收的)各种类型的输入,诸如在由系统100中的CAD程序提供的不同生成设计和/或自动建模形状合成方法之间进行的选择。在一些实施方式中,可用的生成设计和/或自动建模形状合成方法可以包括提供用于拓扑优化的基本水平集方法的基于水平集的拓扑优化。其他形状合成方法也是可能的并且可以由系统100中的CAD程序提供。响应于来自用户160的输入,例如CAD程序116可以使用设计参数和设计变量的不同组合。例如,用户160可以选择不同的形状合成方法来在单个3D模型内的相应不同的设计空间内使用。
所获得180的一个或多个设计标准可以包括待从生成设计的零件制造的物理结构的一个或多个使用中负载情况(例如,指定一个或多个使用中负载情况的一个或多个边界条件)。一个或多个使用中负载情况可以与数值模拟的设置(例如,要与正在生成设计的零件的优化3D拓扑一起使用的FEA模型中的元素的密度)相关联。然而,如本文所使用的,“使用中负载情况”通常是指在其下评估零件性能的单独的负载和约束组,并且对应于各种类型的物理特性模拟(诸如流体流动模拟、电磁(EM)行为模拟、多物理特性模拟等)的多组边界条件。因此,可以使用各种类型的边界条件,例如压力和/或速度边界条件。
一般而言,数值模拟的设置可以包括要模拟的一种或多种物理性质和要执行的一种或多种模拟类型,以及潜在的替代建模或其他近似方法。在一些实施方式中,针对程序的所有用途,或者在给定程序中启动生成设计过程所根据的特定上下文的情况下,预定义数值模拟的类型。此外,数值模拟的设置可以包括与要执行的数值模拟的类型相关联的至少一组负载条件和/或其他物理环境信息。
在自动建模的情况下,不需要物理边界条件作为数值模拟的用户输入;可以使用具有预定义边界条件的模拟(例如,由程序使用启发法提供)、没有边界条件的模拟或其组合(例如,以将任何需要的边界条件与输入保留主体相关联),并且数值模拟可以使用伪应变能场来生成用于指导建模形状的变化的数值评估,例如,通过在自动建模过程的迭代循环中使用体积约束来最小化伪应变能。其他数值模拟方法可以在自动建模实施方式中使用,诸如在由程序施加的合适的预定义边界条件下使用热、流体或电磁模拟。此外,本文档中描述的系统和技术可用于其他内容创建上下文中,诸如用于媒体和娱乐应用(例如,动画制作)以及建筑设计和施工管理中。
在一些实施方式中,所产生185的3D模型可以用于增材制造、减材制造(例如,使用2.5轴减材制造过程制造)和/或其他制造系统和技术。由例如CAD程序116执行的一个或多个生成设计过程可以包括拓扑优化的基于边界的生成设计过程(例如,使用水平集方法)、基于密度的生成设计过程(例如,使用SIMP方法),或两者。拓扑优化包括修改3D形状的几何形状和3D形状的拓扑两者(例如,添加孔或空隙以修改表面的不受连续变形影响的空间性质而不撕裂,因此改变形状元素在3D模型中界定和连接的方式)。在一些实施方式中,一个或多个生成设计过程可以使用所描述的水平集方法,其中来自等式(1)、(2)和(3)的s表示使用一个或多个水平集隐式表示的实体区域的边界,所述边界可以作为采样值存储在背景栅格或网格上。带符号的距离场是这种水平集函数的示例,其中零等高线表示形状边界,函数的正值对应于材料域外部的点并且量化点与最近域表面之间的距离,并且负值对应于材料域内的点并且量化点与最近域表面之间的距离。在基于水平集的拓扑优化方法中,由水平集函数的等高线表示结构的外部形状,并且由水平集函数值的变化表示形状和构型的变化。
在任何情况下,3D模型的产生185可以涉及例如通过CAD程序116迭代地修改建模对象的3D形状,同时防止指定区域(例如,保留主体)的断开并且可选地检测那些指定的区域并在发生断开时重新连接那些指定的区域。在一些实施方式中,3D模型的产生185包括发现形状的体素化线骨架(直接地或通过在模型的3D形状的生成的体素化片骨架内进行路径搜索),并且可以使用体素化线骨架来测量2D或3D形状的厚度,以及识别用于防止指定区域断开的路径。还描述了用于识别路径的其他方法。在任何情况下,结果是例如用于与制造过程结合使用的至少一个产生的2D模型或3D模型。
可以例如在显示装置120上的UI 122中将生成设计处理的结果连同接受或拒绝设计的选项190一起呈现给用户。例如,可以在UI 122中将通过处理185产生的3D模型呈现给用户160。在一些实施方式中,用户可以为每个设计研究从最终设计或多种先前迭代中的任何一种中进行选择。在一些实施方式中,可以将由产生185过程产生的两个或更多个3D模型连同设计复杂性与制造成本的权衡分析一起呈现给用户,例如,基于将需要的外部支撑结构的量,或各种其他感兴趣的量中的任一种。权衡分析可以帮助用户160接受或拒绝所呈现的3D模型中的一个或多个3D模型。
如果设计被拒绝,则图1B的过程可以返回以由例如CAD程序116获得180新的设计空间和/或新的设计标准以用于产生新的2D或3D模型。一旦未拒绝190设计,图1B的过程就可以通过例如CAD程序116提供195具有合成形状和/或拓扑的对象模型,以用于制造物理结构。提供195可以涉及:将3D模型发送或保存到永久存储装置以用于使用制造系统制造对应于对象的物理结构。在一些实施方式中,提供195涉及:由例如CAD程序116使用计算机模型生成195A用于计算机控制的制造系统的工具路径规范,以及由例如CAD程序116使用工具路径规范利用计算机控制的制造系统制造195B对应于对象的物理结构的至少一部分。在一些实施方式中,提供195可以包括使用所生成195A的工具路径规范利用制造机器制造195B用于物理结构的模具,其中计算机模型可以是将使用减材制造过程制造的模具的模型。
所提供195的计算机模型可以是通过生成设计或自动模型合成方法产生185的计算机模型或这种合成方法的输出的后处理版本。在一些实施方式中,可以由例如CAD程序116将可以从基于边界的拓扑优化过程的输出中提取的多边形网格或直接从基于边界的拓扑优化过程获得的设计数据转换成边界表示(B-Rep)模型和/或参数化特征模型。例如,拓扑优化数据可以是直接从基于边界的拓扑优化过程获得的水平集距离场数据。边界表示模型或参数特征模型可编辑为骨架几何形状和参数特征。例如,在一些实施方式中,可以在提供195之前将通过生成设计合成方法产生的3D网格模型转换成防水B-Rep 3D模型。
图1C示出了防止保留主体断开的自动建模或生成设计过程中的迭代循环的示例。该示例表示在图1B的定义过程185中执行的拓扑优化。针对对象的当前计算机模型(例如,根据一个或多个设计标准,使用3D形状的隐式表面的水平集表示)执行185A数值模拟,以产生建模对象的当前数值评估。如上所述,设计标准可以包括可以定义使用中负载情况或其他要求的边界条件(例如,压力和速度边界条件、拓扑演变的几何目标等),并且当前数值评估可以是针对建模对象的物理响应(例如,结构响应)。此外,如上所述,可以执行各种类型的数值模拟。例如,FEA模拟可以计算3D模型的当前版本的体积内各处的应变能。在任何情况下,执行185A当前形状的物理模拟,诸如通过计算当前体积内的应变能,以产生当前数值评估,所述当前数值评估然后可以用于改变当前计算机模型的形状和/或拓扑(例如,考虑到设计标准)。
另外,在两个或更多个指定区域之间(例如,在保留主体之间)识别185B至少一条路径。在一些实施方式中,识别185B可以涉及薄化几何形状的体素化模型以在两个或更多个指定区域之间产生至少一条路径,如下文进一步详细描述的。几何形状的体素化模型可以是与数值模拟185A中使用的相同的体素化模型,并且识别185B不需要出现在数值模拟185A之后(或与所述数值模拟分开),例如,识别185B可以与数值模拟185A集成。在一些实施方式中,用于识别185B的几何形状的体素化模型可以具有与用于数值模拟185A的不同的分辨率(以及不同的体素类型)。
建模对象的形状根据数值模拟185A的结果而改变185F。该改变185F包括限制形状在沿着至少一条路径的区域中的厚度减小。这种对当前形状内至少一个位置的厚度减小的限制用于防止在优化循环期间出现不期望的断开。应从优化循环开始时就防止这种断开,但在形状优化过程开始时,断开的风险可能很小,甚至没有。由于可能期望连接性过滤(即,断开过滤)最小化对形状演变的影响并且仅在断开发生或接近发生时才激活,因此在一些实施方式中,激活厚度用于连接性过滤。
可以进行检查185D以确定在沿着至少一条路径的一个或多个所需区域的至少一部分中限制185F形状的厚度减小之前,建模对象沿着至少一条路径(例如,在沿着关键路径的单个点处)的厚度是否已下降到最小激活厚度以下。应注意,一些实施方式采用了2022年3月29日提交的名称为“COMPUTER AIDED GENERATIVE DESIGN WITH FEATURE THICKNESSCONTROL TO FACILITATE MANUFACTURING AND STRUCTURAL PERFORMANCE(利用特征厚度控制以促进制造和结构性能的计算机辅助生成设计)”并在2023年6月8日作为美国公布号2023-0177224-A1公布的美国申请号17/707,886中描述的模型厚度测量系统和技术,其通过引用并入本文。例如,可以针对拓扑优化指定最小厚度,并且可以基于该最小厚度(例如,作为其一部分)来设置激活厚度。在一些实施方式中,向用户提供对激活厚度的控制。例如,激活厚度可以设置为等于最小厚度(分数设置为1.0),因此一旦沿着路径的区域缩小到指定的目标(最小)厚度,连接性过滤就会打开,这是一种保守的方法。相比之下,分数可以设置为0.0,在这种情况下,允许形状在连接性过滤激活之前完全断开,从而等到最后可能的时刻来使用几何形状过滤器来校正形状(参见下面有关检测断开并将指定区域重新连接的详细信息),然后在打开连接性过滤的情况下继续优化。根据具体实施方式和/或用户的目标,0.0和1.0之间的分数的其他值也是可能的。
在一些实施方式中,为了最小化断开过滤器处于其“非活动”模式下的运行时间,仅运行获得关键路径以执行激活检查185D所需的步骤。例如,在水平集实施方式中,关键路径上的每个点可以具有等于其相关联半径两倍的近似厚度,所述半径是与路径上的点相关联的带符号的距离值。可以对厚度低于激活厚度的关键路径点的数量进行计数,并且当低于启动阈值的关键路径点的分数超过启动违规阈值(例如,5%至10%)时,过滤器被激活。
其他方法可用于确定185D沿着路径的厚度已经下降到已经发生断开的量。例如,在水平集实施方式中,形状的水平集表示可以向内偏移等于激活厚度的量,然后可以进行检查185D以确定所得的水平集表示是否被分成多个部分,例如使用连接组件代码。如果指定区域(例如,保留主体)位于向内偏移水平集表示的不同组件中,则激活连接性过滤185F。作为另一示例,可以通过分析当前形状的表面网格表示来检测断开(例如,当分数设置为0.0时),并且在一些情况下,表面网格分析可以与由断开过滤器使用的另一个断开检查组合地用作预检查。
一般而言,可以观察形状的演变以确定路径的一部分何时下降到低于(或等于)指定的厚度阈值(其可以低至零)以激活连接性过滤185F。此外,在一些实施方式中,不需要检查指定区域之间的整个路径来做出该确定。例如,检查185D可以涉及使用下面描述的图形搜索方法,这意指在一些情况下不需要检查保留主体之间的整个路径,因为由图形方法输出的关键路径可能是连接所有保留主体的被认为对于避免断开至关重要的路径子集。在一些实施方式中,该检查185D在循环的每次迭代中进行。在一些实施方式中,该检查185D在循环的每次迭代中进行,直到沿着至少一条路径的建模对象的厚度已下降到激活厚度以下为止;因此,一旦激活检查185D被触发一次,连接性过滤185F就可以针对优化循环的剩余部分保持激活,并且此后无需再执行检查185D。
在激活连接性过滤185F之前,根据数值模拟185A的结果改变185E建模对象的形状。在一些实施方式中,改变185E和改变185F中的每一者涉及将数值模拟185A的输出(例如,体积内部的应变能场)变换成形状外部上(例如,体积的表面上)的速度场,其中根据每个点处的速度演变形状使几何形状朝向更优的形状移动;通过根据形状的速度移动形状外部的每一部分来更新形状。在一些实施方式中,形状由用于模拟的体素网格、用于形状更新的隐式形状以及用于设计导出的多边形网格来表示。
一般而言,来自数值模拟185A的数值评估指示在计算机模型中的各种位置(例如,在3D形状的表面上的位置)处的一定量的变化,以便例如相对于设计标准改进模型。例如,在一些实施方式中,建模对象的合成的3D形状包括建模对象的隐式表面的水平集表示,并且改变185E、185F包括:根据基于当前物理评估针对隐式表面计算的形状改变速度来使水平集表示平流。然而,在改变185F的情况下,在沿着所识别的路径的区域中修改185F-1速度场(其指定由建模对象的当前数值评估所指示的改变量),如下面进一步详细描述的,然后使用修改后的速度场使3D模型的形状平流185F-2。
在形状修改循环的每次迭代完成之后,所述过程检查185G到最终形状的收敛。这可以是隐式收敛,如当迭代次数对应于要完成的预定义形状修改迭代次数时,和/或当修改不再改变(或不再显著改变)形状并且因此进一步的迭代不会改进计算机模型时。另外或替代地,可以通过评估当前模型是否满足形状和/或拓扑优化的设计标准来对显式收敛进行检查185G。如果尚未实现(隐式或显式)收敛185G,则开始优化循环的另一次迭代。
一旦已经实现(隐式或显式)收敛185G,则提供185H对象的模型的合成形状,例如以用于制造。可以输出185H建模对象的形状以至少产生数据结构中定义的新的几何形状。应注意,数据结构的几何形状可以是离散模型,诸如多边形网格或体积网格,和/或精确表面模型,诸如非均匀有理基础样条(NURBS)或T样条模型,并且可以提供该几何形状以用于使用一个或多个计算机控制的制造系统来制造物理结构或用于其他用途,诸如动画。
可以使用各种方法来识别185B两个或更多个指定区域之间(例如,保留主体之间)的至少一条路径。该路径(或其一部分)可以称为“关键路径”,因为其是穿过设计内部的必须保持完整以便保持连接的形状的路径。在一些实施方式中,关键路径是形状的体素化线骨架的真子集。
例如,识别185B关键路径可以包括发现185B三维形状的体素化线骨架,诸如通过使用以下文献中描述的薄化算法:Building Skeleton Models via 3-D Medial Surface/Axis Thinning Algorithms(经由3D中面/中轴薄化算法构建骨架模型);Lee,Ta-Chih和Kashyap,Rangasami;6,s.l.:Academic Press,Inc.,1994;CVGIP:Graphical Models andImage Processing,Vol.56,pp.462-478,下文称为“Lee和Kashyap算法”,其中进行了调整以不允许有骨架端点,即每组线骨架体素在保留主体或与另一线骨架块的交汇处开始和结束,并且没有“指部”延伸到空间中。此外,体素可以固定在每个保留主体中,使得它们不会因薄化而被移除。这些修改导致所得的线骨架成为真实中轴的子集,其反映了保留主体之间形状的连接性,同时保持路径靠近该连接性的每个臂的几何中心,从而避免了有时因薄化而出现在中轴构型中的突出和其他噪声伪影。可以使用其他体素化的薄化算法。
体素化线骨架包括将形状的不同部分彼此连接并且具体地通过形状将保留区域彼此连接的一个或多个线段。图2B示出了针对三维形状210已经发现(例如,使用修改的Lee和Kashyap算法计算)的体素化线骨架212的示例,其中要求每个保留主体214存在于结果中。用于发现形状的线骨架的进一步细节在美国公布号2023-0177224-A1中提供。例如,可以利用薄化算法(例如,使用Lee和Kashyap算法)执行体素侵蚀,以首先形成体素化的片骨架,然后可以利用相同的薄化算法将该体素化片骨架侵蚀成体素化线骨架。另外,应注意,发现185B形状的体素化线骨架(用于识别关键路径)可以涉及首先计算3D形状的片骨架,然后搜索穿过片骨架的路径以发现线骨架。更一般地,识别185B关键路径可以包括薄化几何形状的体素化模型,或者使用其他方法,以在两个或更多个指定区域之间产生至少一条路径。
在一些实施方式中,识别185B关键路径涉及在几何形状的体素化模型内运行路径搜索算法以在两个或更多个指定区域之间产生至少一条路径。图3A示出了在体素化模型内使用路径搜索算法来识别关键路径的示例。在此示例中,采用了A星搜索算法。A星搜索算法使用启发法来探索离散空间,以获得起始体素和目的地体素之间的路径,从而平衡探索的域量与所获得的路径的最优性。在图3A中,初始状态在部分(a)处示出,部分(b)、(c)、(d)和(e)示出了当探索体素时搜索进程的选定快照。部分(f)示出了最终状态,其中使用回溯来识别路径。
这种路径发现算法可以用于搜索保留主体之间的路径。可以选择一个保留主体作为路径的“起点”,并且另一个作为“终点”,并且可以在离散的体素网格中搜索连接这两个保留主体的路径。如果可以在不离开形状内部的情况下发现每对保留主体之间的路径,则保留主体系统是连接的。如果保留主体的系统已经通过形状连接,例如在拓扑优化循环中,则路径发现搜索可以仅限于保留主体体素和线骨架中的那些体素,这保证连接所有保留主体。
图3B示出了使用路径发现算法来搜索保留主体之间的路径的示例。可以运行252路径搜索算法直到发现了所有目的地保留主体。在一些实施方式中,不是搜索每对保留主体之间的路径(这往往会创建重复路径),而是可以选择保留主体中的一个(例如,几何上最接近形状中心的保留主体)并将其用作从其可以发现通往每个其他保留主体的路径的“起始保留主体”。在使用A星搜索算法的情况下,可以对该算法采用三种修改。
在一些实施方式中,路径搜索算法可以针对两个或更多个目的地中的每一者同时运行252,并且然后在到达每个相应的目的地保留主体时将目的地保留主体从搜索中移除。允许同时搜索多个目的地可以提高速度。A星公式中的启发法可以被更新为使用从当前体素到目的地保留主体中的每一者的质心的距离的最小值。当到达目的地保留主体时,可以执行回溯以确定路径,存储该路径,将该保留主体从所寻找的目的地集合中移除,并且继续搜索程序,直到已经联系了所有保留主体或已经探索了所有体素。
在一些实施方式中,搜索252中使用的目的地中的每一者是一个或多个目的地保留主体中的相应目的地保留主体中的一组两个或更多个结束体素。因此,代替单个起点和终点,可以允许路径在一组起始体素(即,由起始保留主体占据的体素)中的任一者处开始,并在一组结束体素(由目的地保留主体占据的体素)中的任一者处结束。应注意,A星公式中的启发法仍然需要接近目的地的单个点来测量距离;为了处理这个问题,目的地保留主体的几何质心可以用于测量该目的地保留主体中每个结束体素的距离。也可以使用其他点,诸如目的地保留主体中最接近形状中心的点。
在一些实施方式中,在从相应的目的地保留主体到起始保留主体的回溯期间,更新252从起始保留主体发现的路径。在一些情况下,用于路径发现的权重字段不一致并产生非最优路径。为了提高路径的质量,可以在回溯算法中引入细化操作,其重复遍历路径,重新计算路径中的每个体素和所有相邻体素的累积路径成本,并在新的成本揭示一条更低成本、更优的替代路径的情况下更新路径以使用新的路线。此外,在一些实施方式中,采用成本函数网格来平衡保持在形状内部、采取直接路径以及避免遍历薄成员的竞争目标。
上面的示例集中于使用A星搜索算法,但也可以使用其他路径发现算法,诸如Dijkstra搜索。此外,上述三个修改中的每一者可以独立地应用或者与其他修改中的一者或两者一起应用。即使仅搜索单条路径,目的地的多个体素也适用。即使仅定义了单个起始和结束体素,也可以搜索多个目的地。当从一组移动成本构建路径时,可以应用利用细化的回溯。因此,这些搜索修改适用于各种不同的路径搜索算法,包括A星搜索(全部三种)、Dijkstra搜索(多个目的地和多个搜索)以及在初始图形探索期间使用的任何非一致启发法,使得返回的路径可能不是最短的(利用细化的回溯)。
许多路径发现算法,包括A星,都允许指定从一个体素到下一个体素的行进“成本”。无限成本指示体素无法通过,并且不应添加到队列。这种体素成本分配可以用于限制搜索,如在总体避免形状的障碍物的情况下。此外,在一些实施方式中,路径发现分两遍运行,例如以不同的成本/权重。在第一遍中,路径搜索算法可以被限制250于搜索包括在保留主体以及来自体素化薄化的输出中的体素(当前形状中的所有其他体素被体素成本分配标记为不可通过)。如果形状是连接的,则这种受限的搜索空间的探索速度要快得多,并且提供可接受的关键路径。
如果第一遍未能254发现起始保留主体和所有目的地保留主体之间的路径,则执行第二遍搜索,其允许256搜索当前形状中的所有体素。每个体素的成本可以由启发法驱动,所述启发法惩罚(1)接近障碍物,(2)离开形状的内部,以及(3)离开保留主体的边界框(例如,使用上面提到的成本函数网格)。图3C示出了两遍路径发现搜索过程的示例。当第1遍足以将起始保留主体连接到所有结束保留主体时,不执行第2遍,并且形状由第1遍路径发现的结果370连接,所述结果将起始保留主体C连接到沿着体素化线骨架的每个目的地保留主体A、B、D。如果第1遍不充分,则第1遍的结果372无法创建保留主体D的路径(例如,选定的体素不在形状的内部),因此形状被声明为断开的,并且需要第2遍。第2遍路径发现可以离开体素化线骨架和甚至形状内部,因此第2遍的结果374发现与保留主体D的连接。应注意,由于第2遍类型搜索可以离开形状内部,所以这种类型的搜索方法可以发现围绕图2A中的障碍物206的路径,并且当凸包不能自行产生可用形状时,该路径然后可以用于创建连接保留主体202的形状208(例如,以用作拓扑优化过程的输入)。此外,在一些实施方式中,路径发现所使用的数据结构可以是无界的(例如,开放体素空间),使得路径可以离开用于优化的设计域(例如,体素网格),并且当这种偏离设计时域出现时,程序自动调整设计域的大小以能够表示所发现的路径。
尽管如此,路径发现方法的一个缺点是,当还存在较长、较厚的路径时,它倾向于在较薄的设计部分中采用较短的路径。这导致较短的路径被添加到关键路径并由连接性过滤器保留,即使其被移除也不会造成断开。图3D示出了这一点以及对保留主体之间的一些路径进行优先级排序的示例380。在图3D中,可以选择路径B而不是路径A,因为路径B的成本比路径A低。但是,虽然路径A较长,但是路径A也穿过较厚的几何形状,因此是优选的,虽然路径B较短,但穿过较薄的几何形状,所述较薄的几何形状可以被移除而不产生断开。
为了解决这个问题,在一些实施方式中,调整252路径搜索算法的成本函数以基于形状的局部厚度(例如,如使用上文和美国公布号2023-0177224-A1中描述的系统和技术测量的)来惩罚路径。例如,每当体素化线骨架的半径下降到低于阈值(例如,设置为断开过滤器的目标半径)时,就可以添加对成本函数的惩罚。当还存在穿过设计的较厚区域的较长路径时,该惩罚(例如,作为上面提到的成本函数网格的一部分提供)阻碍了穿过设计的较薄区域的较短路径。在实践中,这有帮助,但可能无法完全减轻关键路径中包括优化器可能希望移除并且可以被移除而不导致断开出现的设计部分的情况。为了解决这个问题,可以使用图形搜索程序。
在一些实施方式中,当连接形状时,图形搜索过程可以用于从体素化线骨架识别关键路径。图4A示出了由保留主体A、B、C、D和连接它们的几何形状组成、覆盖有体素化线骨架的物理系统的示例。体素化线骨架可以转换成图形,其中节点表示体素化线骨架中的每个保留主体以及交汇处,并且边连接体素化线骨架行进的节点。图4B示出了图4A的系统的图形表示,其中节点作为保留主体和骨架交汇处。
可以定义“断开的图形检查”例程,其中确定图形是否连接,即,确定所有保留主体都彼此连接。例如,这可以通过从任意保留主体到所有其他保留主体的广度优先搜索来实施。如果初始图形未通过断开的图形检查,则系统断开,并且程序可以回退到使用第2遍路径发现以确保发现连接所有保留主体的路径。在一些实施方式中,在继续图形搜索过程之前,可以使用第2遍类型路径发现搜索来提供图形的缺失边(即,一起将图形拼接回)。应注意,由第2遍路径发现搜索创建的离开零件内部的任何几何形状都可能会是“桥”边,并将作为关键路径的一部分持续存在,并且在第2遍类型路径发现之后使用图形搜索过程可以在激活几何形状过滤器时防止不必要地加厚形状的冗余区域。
在一些实施方式中,可以发现维持图形中保留主体的连接性所需的“桥”边。对于图形中的每条边,可以创建由除当前边之外的所有内容组成的子图,并且可以重新运行断开的图形检查。如果子图断开,则当前边是桥,因此是关键路径的一部分,否则当前边不是桥。图4C示出了子图中当前边被移除而不断开保留主体的情况下的示例,这意指该边不是关键的(在移除该边之后图形保持连接)。相比之下,图4D给出了桥边的示例,所述桥边是关键的边,因为在移除当前边之后子图变得不交汇。所有桥边都可以被收集到关键路径中,如图4E中以图形形式示出,并且如图4F中以示意形式示出。
与路径发现不同,由图形搜索算法提供的“关键路径”可能不会连接所有保留主体,因为由于关键路径加保留主体中的循环,它可能只是完整关键路径的一部分;图形搜索的输出仅突出显示形状中那些被移除时就会导致断开的区域。因此,从图形搜索算法生成的关键路径将始终是保持保留主体连接所需的至少一条路径的一部分。
这种图形搜索方法允许优化器通过移除形状的连接保留主体但并非避免保留主体断开严格所需的部分来打破形状的线骨架中的循环。这可以显著减少处理资源的使用,因为被检查(例如,在优化循环中重复地)以防止断开的路径的长度被最小化。尽管如此,如果优化器决定同时移除设计的两个成员(例如,分别连接保留主体D与保留主体A和保留主体C的两条边),则图形搜索方法可能无法防止断开。实际上,这种情况非常罕见(几乎总是将形状中连接保留主体的材料的单独肋一次移除一个),并且如果确实发生,则可以在平流之后通过下面进一步描述的几何形状过滤器来校正断开。
在任何情况下,不管如何执行识别185B的细节为何,都可以处理连接形状的保留主体的关键路径以调整用于定义穿过形状的路径的数据值。因此,产生185可以包括调整185C至少一条路径的数据值以提高质量,并且限制185F形状的厚度减小可以包括使用调整后的数据值来在建模对象的形状的改变185F期间限制一个或多个所需区域中形状的厚度减小。在一些实施方式中,仅调整185C一些数据值,而不是调整所有数据值。调整185C可以包括细化逼近形状中轴的体素化线骨架的部分的数据值和/或使不逼近中轴的体素化线骨架的部分的数据值平滑和/或使体素化线骨架的两个部分的数据值平滑。此外,可以对体素化线骨架中靠近形状的中面的任何点进行细化,甚至对那些不靠近中轴的点进行细化,并且可以使体素化线骨架中的所有点平滑。
近似中轴的体素中心通常不完全位于形状的中轴上。为了解决问题,可以采用细化过程来生成更接近地沿循实际中轴的最终点集。在基于水平集的实施方式中,可使用来自水平集的信息来细化体素化线骨架的骨架点位置。在一些实施方式中,此过程涉及:使用线性逼近来逼近骨架体素的邻域中的带符号的距离场,然后发现两个线段之间的交点。这提供了位置的估计和非常靠近中轴的附近点处的带符号的距离场值(在实验上,这通常精确到约0.1体素宽度)两者。
图2C示出了用于将骨架点细化成更靠近3D形状的中轴的光线投射和极值估计的几何上下文。考虑输入形状231的体素化骨架232A。所述算法针对每个骨架体素运行一次;在此示例中,处理突出显示的骨架体素1。寻求非常靠近输入形状231的真实中轴2(并且尽可能靠近起始体素)的点。为此,可以在方向3(例如,沿逆风梯度方向)上投射光线,所述光线从体素的中心(或在体素中或其附近(例如,在体素的一个体素的距离内)的另一点)开始并且朝向中轴前进。该光线与真实中轴的交点4是算法的预期输出。
图2D示出了带符号的距离值场对沿着梯度方向的距离的绘图。在该绘图中,x轴表示沿着光线行进的距离,并且Y轴是带符号的距离场值φ。光线的起始点可以是体素(图2C中的体素1)的中心点,并且对应于图2D中的点A。可以沿着负梯度方向采样两个点(B1和B2),并且可以沿着正方向采样两个点(C1和C2)。可以将线拟合到每对点,从而分别形成线B′和C′。只要带符号的距离场不改变得过快,这两个线段之间的交点234A就逼近光线与中轴的交点(图2C中的点4)。应注意,点A不在两条线B′和C′中的一条线上,因为投射光线在相对于体素网格的对角线上射出(不是对实际体素进行采样),并且数据都是插值的,这意指A不是纯数据,而是其邻点的某一线性组合(应注意,由于带符号的距离场的高曲率,三线性插值的准确性在接近中轴处降低,这意指接近中轴的插值通常由于采样点位于中轴的相对侧上而被高估)。因此,由于使用了插值,A很少落在两条线中的一条线上。关键点在于线性插值允许得到与A相比更靠近中轴的点,并且还会更准确地估计带符号的距离场的值。
在一些实施方式中,估计极值可涉及:搜索逆风梯度的方向或幅度的变化。应注意,寻求最大值还是最小值将取决于线性逼近的Y轴是表示半径值(SDF值的负值)还是SDF值。在任何情况下,所估计的带符号的距离场值φp都提供对3D模型在此点处的厚度的估计。应注意,当映射回3D模型的表面时,使用子体素位置,因为输出点在3D空间中,而不是体素坐标中。
在一些实施方案中,此细化程序使用1D细化程序来实施,所述1D细化程序是将从其开始搜索程序的体素(位于体素化骨架上,或是所述体素的相邻体素)的中心以及进行搜索的方向作为输入的函数,其如下定义:
表1
/>
此例程中的三个关键函数是:Localize,其试图沿着搜索方向发现尽可能靠近带符号的距离场的谷底的体素;Refine,其使用线性逼近来估计中轴的交叉点的坐标和距离所述交叉点的边界的距离;以及MeasureQuality,其为该中轴交点产生可用于如稍后描述的后续步骤的质量量度。
Localize函数可以用于解决以下事实:有时图2D中的点A不够靠近中轴以使点B1和B2以及C1和C2落在中轴交叉点的相对侧上。例如,如果点C1落在中轴的与两个点B1和B2相同的侧上,则线性逼近C’将不会与中轴相交,并且两个线性逼近B'和C’的交点将不够靠近3D形状的实际中轴(例如,距离中轴超过半个体素)。在一些情况下,这由于产生二进制形状时的离散化误差和薄化算法中材料移除速率的轻微不规则性而可能发生。
为了解决此问题,可以使用第一定位操作来从输入位置沿着搜索方向(向前或向后)移动,并且试图识别尽可能接近中轴交叉点的体素。应注意,只需要识别与中轴交叉点相邻的体素中的一个,即,识别点A或C1中的任一者;不需要最靠近中轴的体素。因此,在一些实施方式中,使用以下Localize程序:
表2
/>
表2的Localize程序由三个部分组成。首先,在起始点的任一侧上对带符号的距离场进行采样,以确定哪一方向距离形状边界更远,这对应于更负的带符号的距离场。接下来,沿着移动方向以一个体素的增量收集一系列带符号的距离场(SDF)样本,这从在相反方向上的一个体素的后退步长开始,并且将结果存储在多对{s值,SDF值}的列表中。最后,(例如)使用一阶中心有限差分计算二阶导数,并且返回最大二阶导数值及其对应的样本点(应记得,SDF值从负斜率转变为正斜率,因此二阶导数在交叉点附近应是大的且正的)。
图2E和图2F示出了此沿着搜索方向发现尽可能靠近带符号的距离场的谷底的体素的过程。图2E示出了沿着搜索方向的带符号的距离场上的样本S,由s用参数表示。在第一步中,给定起始点(s=0),所述过程在任一侧进行采样以计算φ-和φ+(在代码中分别为minusVal和plusVal)。发现φ+距离形状边界更远,选择正移动方向。接下来,通过以甚至多个体素的增量改变s来沿着方向dir收集带符号的距离场的一系列样本(这些样本是图中的Sj,并且作为样本存储在代码中)。应注意,第一样本是在负移动方向上的一个体素(即,在s=-1)处取得的。
图2F示出了由样本索引j用参数表示的逼近二阶导数的值。如图所示,绘制了矢量样本中的每个点处的计算二阶导数。应注意,省略了向量的端点,因为每一侧上都需要有邻点以计算中心有限差分。最大二阶导数对应于j=3处的样本,并且此二阶导数值与对应点的坐标一起从函数返回。应注意,在一些情况下,如果在定位之后二阶导数值小于固定截止值(例如,0.25),则可放弃搜索。这通常是搜索方向与梯度显著不同造成的。
在Localize程序之后,可以向Refine程序提供起始点,所述起始点位于非常接近实际中轴交点的体素上。根据表1,应注意,Refine函数的起始点变元是Localize函数的输出(x1),且不是起始体素的中心(x0)。搜索仍沿着方向dir(d)进行,但起始点不同。为了提醒自己坐标的变化,将下面的自变量从s切换到t(这两个变量都表示沿着方向矢量的一段距离的移动,但起始点不同;两者之间的关系是t=s-(x1-x0)d)。除了x1和d之外,Refine函数还取得名为“后退距离”并且标示为b的变元。
线B′由起始体素(A)(其对应于表1中的体素x_1)左侧的两个采样点B1和B2构成,并且线C′由两个采样点C1和C2构成。每对点相隔体素大小的距离,并且每组中的第一点和中心点A相隔后退距离b。因此,t中的每个点的位置是
b参数由d不与体素栅格对齐的情况促成。在此情况下,进入带符号的距离场中的每个样本都使用三线性插值,这引入场值的模糊。在中轴附近,此模糊导致距离函数中的谷的单体素舍入。通过选择b>体素,可以更准确地估计基础带符号的距离场的行为,而不存在由于此模糊效应造成的误差。例如,当d不是轴对齐的时,b可设定为1.5个体素。
令mB和mC分别标示线B′和C′的斜率。首先通过确保mB和mC之间的绝对差大于阈值(例如,0.01)来检查两个线性逼近是否不平行。如果确定这些线(几乎)平行,则搜索失败。计算这两条线之间的交点。交点的t坐标由下式给出
其中tB1和φB1表示点B1处的t坐标和带符号的距离场值。如果搜索成功,则此交点应出现在t=0的一个体素的长度内。但如果线性逼近并不反映在此区域中的带符号的距离场的合理形状,则可检测到这种情况并且可中止搜索。交点处的带符号的距离场的值容易通过下式求解
φp=φB1+mB(tp-tB1) | (6) |
并且同样地,交点的3D坐标求解为
xp=x1+tpd | (7) |
这使用搜索起始点x1和搜索方向d
Refine例程的最终输出是两条线之间的斜率变化的量度。这计算为
另外,在一些实施方式中,对此算法的进一步细化涉及:调节用于产生两条拟合线的点的位置,以在高曲率区域中产生更好的结果。在高曲率区域中,使用相邻样本(例如B1和B2)逼近每条线B′和C′可能会引入误差,因为分段线性公式无法充分逼近带符号的距离场。在此类情况下,可以使用远离中轴交叉点的更少数据获得更好的线逼近,例如,通过使用点A来代替点B2以形成线B′。这可以通过在中轴的每一侧上生成多于一个线逼近并且使用具有更陡斜率的线逼近来进行。
一旦Localize和Refne例程完成,就可以给通过搜索发现的中轴点分配质量。质量是一种启发法,其试图平衡搜索方向垂直于中轴的程度(更加垂直的搜索由于更大的斜率变化而产生更加准确的中轴位置估计)和在起始点x0与精细化中轴逼近xp之间行进的距离。此质量量度可计算为
q=φ″+tan-1(Δm)-2q0|xp-x0| | (9) |
其中φ″是来自Localize函数的二阶导数量度,并且q0是常数(例如,0.2除以体素大小)。
LocalizeAndRefine例程的结果是在从指定搜索点开始沿着指定搜索方向搜索时对靠近中轴的位置的估计。所述例程还返回描述此中轴点用于下游计算的“良好”程度的质量量度。如果不满足任何以下要求,搜索例程可能会中途失败:(1)最大二阶导数必须大于指定最小值(例如,0.25);(2)两条拟合线(mB和mC)之间的斜率的绝对差必须大于阈值(例如,0.01);以及(3)在Refine步骤中发现的中轴点(tp)的位置必须在中心点(t=0)的指定距离(一个体素)内。当搜索路由失败时,所述函数返回无效结果,并且可针对此骨架体素使用另一搜索方向。这可以重复,直到返回有效结果。
3D细化程序可以对给定起始骨架体素执行一个或多个1D细化程序,并且选择一个作为最靠近且最佳的中轴点返回。表3中以伪代码描述3D细化程序。
表3
在此例程中,函数UpwindGradient返回逆风梯度的估计,并且可能更新搜索的起始点。如果搜索例程由于上一部分中识别的任何原因而失败,则候选无效。在倒数第二行中,搜索例程检查候选结果的列表并且定位具有最大质量量度的结果,除非所有搜索都失败(在这种情况下,结果是原始点)。
应注意,将由体素指示的点细化成更靠近中轴不需要局限于初始点到细化点的一对一映射,如上所述。因此,每个初始点的细化可以产生位于中轴上(或非常接近中轴)的两个或更多个点,并且这些附加点然后可以用于厚度计算以调整形状更新来防止断开以及使用几何形状过滤器来修复任何断开。例如,表3中伪代码倒数第二行中的搜索例程可以返回所有可行的细化点坐标。此外,不需要针对每个骨架体素调用3D细化例程,并且gradSearch参数可以取决于正在分析的骨架体素的种类。
上述细化过程可以在设计区域的中轴上产生一组亚体素精确点,其中关键路径是从中轴的各个部分导出的。但无论是否使用该细化过程,调整185C都可以包括使体素化线骨架的数据值平滑。在一些实施方式中,通过将点的位置值和/或“半径”值改变成来自其邻点(紧邻的点或在点的预定义距离内的所有点)或来自其邻点及其本身的数据值的平均值或中值来使数据值平滑。其他平滑操作也是可能的,诸如选择每个邻点应对加权平均结果造成的影响的加权。应注意,当这些数据点用于添加几何形状以重新连接断开的保留主体时,骨架点的这种平滑可以提高形状的表面质量,但这种平滑是任选的,并且在一些应用程序中可能不需要。应注意,点的位置在设计空间的坐标系中,并且点的“半径”对应于形状在所述位置处的厚度的一半,例如,在水平集实施方式的情况下,该点处的带符号的距离场值的负值。
用于识别185B两个或更多个指定区域之间(例如,保留主体之间)的至少一条路径的其他方法也是可能的,并且可以与下面详细描述的连接性过滤一起工作。此外,虽然下面描述的连接性过滤使用调整后的数据值,但是不需要在所有实施方式中都是这种情况。此外,虽然下面描述的连接性过滤使用速度过滤器和几何形状过滤器两者,但是一些实施方式在形状或拓扑优化循环中仅采用这两个过滤器中的一者或另一者。
图5A示出了在优化循环的多次迭代中的每一次中改变建模对象的形状期间使用调整后的数据值(针对所识别的路径)来限制一个或多个所需区域中的形状的厚度减小的过程500的示例。过程500是在拓扑优化循环中改变185F建模对象的形状的示例。因此,过程500针对优化循环的多次迭代而重复,并且可以访问指定至少一条路径的信息。
例如,使用调整后的数据值来计算505建模对象的形状厚度值。例如,建模对象的形状可以是建模对象的隐式表面的水平集表示,并且所述计算505可以包括:通过(针对调整后的点中的每一个)执行球体/球的布尔并集来将加厚水平集表示形成为建模对象的隐式表面的水平集表示的副本;然后基于建模对象的隐式表面的水平集表示与加厚水平集表示之间的差值来估计形状厚度值。
与此处和美国公布号2023-0177224-A1中描述的厚度测量类似,可以通过测量表面点与关键路径之间的距离来为连接性过滤器创建伪厚度量度。因此,通过围绕关键路径中的每个点执行固定大小的球体/球的布尔并集来创建校正的水平集,以创建“校正的形状”。输入水平集和校正形状之间的差异用于近似表面上的每个点处的“断开厚度”。
图5B示出了使用3D模型570A(为清晰呈现而表示为简单的2D梯形)的加厚水平集表示来计算3D模型570A的表面处的形状厚度值的示例。表面点s处的厚度值可以定义为2|p-s|,其中p是关键路径中的最近点。但不是进行搜索以发现点p,而是使用校正的水平集表示,这可以提高稳健性并且减少厚度计算的处理时间。制作输入3D模型570A的副本,并且针对关键路径中的每个点,对副本执行球体(以所述点为中心)的布尔并集以形成加厚水平集表示570B,其中这些球体的直径可以被设置为等于需要测量的最大厚度(2rmax,稍后描述)。然后使用输入水平集场φ和校正的水平集场C之间的差值来计算570C厚度。应注意,表面上每个点A处的断开厚度可以测量为tA=2(rmax-(φ(A)-C(A))),其中rmax是需要测量的最大厚度的一半,其可能会有所不同,这取决于所使用的过滤算法(例如,用于通过速度过滤器防止断开的目标厚度,或通过几何形状过滤器添加回形状的几何形状的最小厚度)。在B点处,两个水平集相同,这指示如果该点靠近关键路径,则该点的厚度必须大于或等于2rmax,否则该点远离关键路径,并且不需要被约束。
计算水平集表示之间的差值以确定输入水平集表示局部比加厚水平集表示薄的程度。此外,因为关键路径可能仅穿过形状的各种区域的小子集,例如使用图形搜索程序识别的关键路径,所以校正后的形状仅在少数地方与输入形状不同,从而导致形状的大部分在最大厚度值处测量或根本不测量(例如,加厚水平集的检查以及任选地水平集表示的加厚可以限于所识别的关键路径)。这允许形状的大部分以不受约束的方式演变,同时仅应用速度过滤器来防止设计区域中的断开,如果将区域移除,则会产生断开。因此,仅在计算机模型中存在不期望的断开风险的区域中选择性地调整平流速度。同样,由几何形状过滤器生成几何形状以修复断开选择性地仅应用在计算机模型的已经不期望地断开的区域中。
返回到图5A,修改510由建模对象的当前数值评估指示的变化量,以用于通过根据目标断开厚度和形状厚度值来减慢形状变化来更新建模对象的当前版本。上述断开厚度量度可以用于在平流发生之前过滤由优化器提供的平流速度。这里的目标是减少或消除沿着关键路径的区域的收缩,因为这些区域开始收缩到可能断开的点。为了促进这一点,选择用于断开的目标厚度,并且这形成被断开过滤器冻结的任何成员的标称直径。在优化域的分辨率不改变的实施方式中,用于断开的目标厚度可以是固定数量的体素,但在一些实施方式中,目标厚度被选择为具有与设计的边界框相同体积的立方体框的边的分数(例如,1%至5%),或者是用户指定的,或者可以使用启发法来设置目标厚度。
过滤器的制定可以是多种过滤器或用于厚度控制的约束制定中的任何一种。在一些实施方式中,修改510包括在建模对象中形状厚度值大于目标断开厚度(但在目标断开厚度的预定距离内)的位置处执行512减慢(在朝向目标断开厚度的方向上),并且修改510包括迫使514在建模对象中形状厚度值小于目标断开厚度的位置处进行形状改变(在朝向目标断开厚度的方向上)。此外,可以在所述位置中的每一个处执行减慢512达基于所述位置处的形状厚度值与目标断开厚度之间的差值的量,并且可以在所述位置中的每一个处执行所述迫使514达基于所述位置处的形状厚度值与目标断开厚度之间的差值的量。
在一些实施方式中,“渐近”速度过滤器被用作断开过滤器。该速度过滤器类似于美国公布号2023-0177224-A1中的“稳态”速度过滤器,其中根据等式10在每个点处操纵速度:
v′=max(αv,v)+β | (10) |
新速度v′分别通过因子α和β进行缩放并与输入速度v偏离。max(·)运算符确保过滤器从不缩放向外取向的速度(因此缩放分量仅适用于向内速度的区域),并添加了偏差项β。偏差项用于校正小于目标厚度的特征,并遵循与稳态约束公式中相同的配置。因此,β(速度过滤器的加性分量)的值可以通过分段线性函数来定义,当测量的厚度大于tmin(目标断开厚度)时,将β设置为零,当测量的厚度小于tmin但大于零时,将β设置为vp(其为小的向外速度(例如,0.3体素/迭代)),否则,根据测量的厚度的线性函数将β设置为介于零与vp之间的值。因此,β的正值迫使514在建模对象中形状厚度值小于目标断开厚度的位置处发生形状改变。
然而,即使β的值由分段线性函数控制,α的值也不需要如此。缩放项(α,其减缓512形状变化)公式可以通过首先考虑将由给定缩放值产生的厚度变化的近似值来推导:tnew(α)=t+αvΔT,其中tnew是平流后根据缩放分量变化的估计厚度,t是当前测量的厚度,并且ΔT是平流时间。这种近似是一阶的,并且可以使用更好的估计(具体来说,忽略水平集中该光束另一侧的平流对新厚度的影响,以及平流方向和将该表面点连接到细化关键路径上最近点的向量之间失配的可能性)。
然后可以使用新的厚度估计器来选择α,使得“厚度缓冲区”(定义为b(t)=t-tmin)在每次迭代中减少固定量Δb(实验上为4%)。也就是说,b(t)-b(tnew)/b(t)=Δb,或同等地,t-tnew/t-tmin=Δ。α的所得公式在等式11中示出。
应注意,该等式仅在速度v为向内(负)且厚度t大于目标厚度tmin时才有效。函数clamp(x,l,h)=min(max(x,l),h)将第一变元约束为介于第二变元和第三变元中提供的下限和上限之间。
在测量断开厚度时,指定期望来测量的最大厚度(tmax),所述最大厚度应足够高于tmin,以允许在α=1与α=0之间的平滑过渡。例如,对于断开过滤器,tmax=tmin+7.0s可以用于分段线性约束,并且tmax=tmin+11.0s可以用于渐近约束,其中s是两个体素之间的距离(体素大小)。在实践中,Δb可以在in clamp()函数中设置为(tmin-t)的固定百分比(例如,4%)。
在任何情况下,无论形状变化如何减慢512,并且任选地反转514,在特定位置处,建模对象的隐式形状的修改510后的速度场被用于使形状平流520以产生新形状以用于下一次迭代。然而,尽管修改510用于防止断开,但在一些情况下,仍然可能发生不期望的断开。因此,在一些实施方式中,检测525沿至少一条路径(例如,沿关键路径)已经发生的任何断开,并且触发几何形状过滤器以修复所述断开。与间接调整形状(例如,通过操纵表面平流速度)的速度过滤器不同,几何形状过滤器直接修改形状(例如,形状的带符号距离场)。在拓扑优化中,几何形状过滤器可以用作辅助过滤器,其中大部分形状调整由速度过滤器执行。因此,在一些实施方式中,仅当检测到完全断开时才激活几何形状过滤器,并且然后使用几何形状过滤器来重新连接形状的区域,以便可以继续优化。
用于实现几何形状过滤器的过程可以基本上与上面结合图5B描述的过程相同。几何形状过滤器通过构建如上所述的用于测量断开厚度的校正水平集来进行操作,并且该校正后的水平集通过布尔并集与当前形状合并。因此,检测到的断开可以通过以下步骤来修复:通过针对对应于至少一条路径的多个点中的每一个执行球体的布尔并集来将加厚水平集表示形成530为建模对象的隐式表面的水平集表示的副本;以及将建模对象的隐式表面的水平集表示替换535为建模对象的加厚水平集表示,以产生在数据结构中针对一个或多个所需区域定义的新几何形状。
如上所述,可以以各种方式执行检测525。在一些情况下,断开被定义为关键路径上存在未包含在形状内部的体素。此外,检测525可以使用与速度过滤器所使用的关键路径不同的版本,包括通过在形状被修改之后潜在地重新识别185B至少一条路径,以便捕获并校正其中优化器决定同时移除设计中保持保留主体连接但不在速度过滤器所使用的关键路径中的两个成员的情况。在一些实施方式中,当几何形状过滤器运行时,总是可以重新计算关键路径,并且这可以涉及使用第2遍类型路径发现搜索,可选地随后应用图形搜索。此外,在一些实施方式中,几何形状过滤器的断开检查可以在每次迭代之后运行,或者仅在速度过滤器检测到断开的情况下运行。
应注意,在大多数优化运行中,断开几何形状过滤器可能很少被激活,其中断开速度过滤器已启用并处于活动状态,但断开几何形状过滤器在某种活动(非优化活动或罕见的优化活动)导致形状发生变化使得发生断开的情况下充当故障保护装置。此外,如上所述,几何形状过滤器还可以用于预处理起始形状,因此可以应用于表示为水平集的任何形状,而不考虑优化框架。此外,其他过滤器和约束公式可以与上述关键路径确定技术结合使用以实现断开控制;断开过滤器可以被认为是选择性最小特征大小过滤器。
图6是包括数据处理设备600的数据处理系统的示意图,所述数据处理设备可以被编程为客户端或服务器。数据处理设备600通过网络680与一个或多个计算机690连接。虽然在图6中仅一个计算机被示出为数据处理设备600,但可使用多个计算机。数据处理设备600包括可分布在应用层和操作系统之间的各种软件模块。这些可以包括可执行和/或可解译的软件程序或库,包括实施连接性控制的一个或多个3D建模程序604的工具和服务,如上所述。因此,3D建模程序604可以是CAD程序604(诸如CAD程序116),并且可以针对形状和/或拓扑优化和物理模拟操作(有限元分析(FEA)或其他)实施一种或多种基于水平集的方法,其并入模拟结果过滤和/或几何形状过滤。此外,程序604可以潜在地实施制造控制操作(例如,生成和/或应用工具路径规范以实现设计对象的制造)。所使用的软件模块的数量可以因实施方式而异。此外,软件模块可以分布在由一个或多个计算机网络或其他合适的通信网络连接的一个或多个数据处理设备上。
数据处理设备600还包括硬件或固件装置,包括一个或多个处理器612、一个或多个附加装置614、计算机可读介质616、通信接口618和一个或多个用户接口装置620。每个处理器612能够处理用于在数据处理设备600内执行的指令。在一些实现方式中,处理器612是单线程或多线程处理器。每个处理器612能够处理存储在计算机可读介质616或存储装置(诸如附加装置614中的一者)上的指令。数据处理设备600使用通信接口618与一个或多个计算机690通信,例如,通过网络680进行通信。用户接口装置620的示例包括显示器、相机、扬声器、麦克风、触觉反馈装置、键盘、鼠标以及VR和/或AR设备。数据处理设备600可将实现与上述程序相关联的操作的指令存储在例如计算机可读介质616或一个或多个附加装置614上,例如硬盘装置、光盘装置、磁带装置和固态存储器装置中的一者或多者。
本说明书中描述的主题和功能操作的实施方案可在数字电子电路中实现,或在计算机软件、固件或硬件中实现(包括本说明书中公开的结构和它们的结构等同物),或在它们中的一者或多者的组合中实现。本说明书中描述的主题的实施方案可使用编码在非暂时性计算机可读介质上以供数据处理设备执行或用于控制数据处理设备的操作的一个或多个计算机程序指令模块来实现。所述计算机可读介质可为制造产品,诸如计算机系统中的硬盘驱动器,或通过零售渠道销售的光盘,或嵌入式系统。可单独获取计算机可读介质,并且稍后用一个或多个计算机程序指令模块编码,例如,在通过有线或无线网络传送一个或多个计算机程序指令模块之后。计算机可读介质可以是机器可读存储装置、机器可读存储基板、存储器装置或它们中的一者或多者的组合。
术语“数据处理设备”涵盖用于处理数据的所有设备、装置和机器,包括例如可编程处理器、计算机或多个处理器或计算机。除了硬件之外,所述设备还可以包括为所讨论的计算机程序产生执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、运行时环境或它们中的一者或多者的组合的代码。此外,所述设备可以采用各种不同的计算模型基础设施,诸如网络服务、分布式计算和网格计算基础设施。
可以任何合适形式的编程语言来编写计算机程序(还被称为程序、软件、软件应用程序、脚本或代码),所述编程语言包括经过编译或解译的语言、声明性或程序性语言,并且可以任何合适的形式来部署所述计算机程序,包括部署成独立的程序或适合于在计算环境中使用的模块、部件、子例程或其他单元。计算机程序不一定与文件系统中的文件相对应。程序可存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中、存储在专用于所讨论的程序的单个文件中,或者存储在多个协同文件(例如,存储一个或多个模块、子程序或代码的部分的文件)中。计算机程序可被部署成在一个计算机上执行,或者在位于一个场所处或跨多个场所分布并且通过通信网络互连的多个计算机上执行。
本说明书中描述的过程和逻辑流可以由一个或多个可编程处理器执行,所述一个或多个可编程处理器执行一个或多个计算机程序以通过对输入数据进行操作并且产生输出来执行功能。所述过程和逻辑流还可以由专用逻辑电路执行,并且还可将设备实施为专用逻辑电路,所述专用逻辑电路例如现场可编程门阵列(FPGA)或ASIC(专用集成电路)。
适合于执行计算机程序的处理器包括例如通用和专用微处理器两者,以及任何种类的数字计算机的任何一个或多个处理器。一般来说,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元素是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器装置。一般来说,计算机还将包括用于存储数据的一个或多个大容量存储装置,例如,磁盘、磁光盘或光盘,或者操作性地耦合到所述一个或多个大容量存储装置以从其接收数据或向其传递数据或以上两者。然而,计算机不需要具有此类装置。此外,计算机可嵌入到另一个装置中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储装置(例如,通用串行总线(USB)闪存驱动器),仅举几例。适合于存储计算机程序指令和数据的装置包括所有形式的非易失性存储器、介质和存储器装置,包括例如:示例性半导体存储器装置,例如,EPROM(可擦除可编程只读存储器)、EEPROM(电可擦除可编程只读存储器)和快闪存储器装置;磁盘,例如,内部硬盘或可移除盘;磁光盘;以及CD-ROM和DVD-ROM盘。可通过专用逻辑电路来补充处理器和存储器,或者处理器和存储器可并入专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实施方案可以在计算机上实施,所述计算机具有:显示装置,例如,LCD(液晶显示器)显示装置、OLED(有机发光二极管)显示装置或用于向用户显示信息的另一监视器;以及键盘和指示装置,例如,鼠标或轨迹球,用户可以借此向计算机提供输入。还可使用其他种类的装置来提供与用户的交互;例如,向用户提供的反馈可以是任何合适形式的感官反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且可接收来自用户的呈任何合适的形式的输入,包括声学、语音或触觉输入。
计算系统可以包括客户端和服务器。客户端和服务器一般彼此远离并且通常通过通信网络进行交互。客户端和服务器的关系凭借在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。本说明书中描述的主题的实施方案可以在计算系统中实施,所述计算系统包括:后端部件,例如,作为数据服务器;或中间件部件,例如,应用服务器;或前端部件,例如,具有图形用户接口或浏览器用户接口的客户端计算机,用户可以借此与本说明书中描述的主题的实施方式交互;或一个或多个此类后端部件、中间件部件或前端部件的任何组合。系统的部件可以通过任何合适形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互联网络(例如,互联网)和对等网络(例如,专用对等网络)。
虽然本说明书包含许多实施细节,但是这些细节不应理解为限制被要求保护或可要求保护的内容的范围,而是对所公开的主题的特定实施方案特有的特征的描述。本说明书中在单独的实施方案的背景下描述的某些特征也可在单个实施方案中组合实现。相反地,在单个实施方案的背景下描述的各种特征也可单独地在多个实施方案中实现或以任何合适的子组合实现。此外,尽管特征在上文可被描述为以某些组合起作用并且甚至最初如此要求受到保护,但是来自要求保护的组合的一个或多个特征在一些情况下可与所述组合分离,并且要求保护的组合可涉及子组合或子组合的变动。
类似地,尽管在附图中按特定次序描绘操作,但是这不应被理解为要求此类操作以所示的特定次序或以连续次序执行,或要求执行所有所示的操作,以实现期望结果。在某些情况中,多任务和并行处理可能是有利的。此外,上述实施方案中的各种系统部件的分离不应理解为在所有实施方案中都需要这样分离,并且应理解,所描述的程序部件和系统可大体上一起集成在单个软件产品中或封装到多个软件产品中。
因此,已经描述了本发明的特定实施方案。其他实施方案在以下权利要求的范围内。另外,权利要求中所述的动作可按不同次序执行并且仍然实现期望结果。
Claims (25)
1.一种方法,其包括:
通过形状建模计算机程序获得在由所述形状建模计算机程序使用的数据结构中定义的几何形状的两个或更多个指定区域;
通过所述形状建模计算机程序识别所述两个或更多个指定区域之间的至少一条路径,其中所述至少一条路径对应于必须包括在所述几何形状中以确保所述几何形状的所述两个或更多个指定区域中的至少两者之间的连接的一个或多个所需区域;以及
通过所述形状建模计算机程序产生在所述数据结构中针对所述一个或多个所需区域定义的新的几何形状,所述新的几何形状使用所述至少一条路径产生。
2.如权利要求1所述的方法,其中所述两个或更多个指定区域是两个或更多个保留主体,针对所述几何形状指定所述两个或更多个保留主体和至少一个障碍物主体,并且所述产生包括基于所述两个或更多个保留主体、所述至少一条路径以及所述至少一个障碍物主体生成所述新的几何形状。
3.如权利要求1所述的方法,其中所述产生包括:
在优化循环的多次迭代中的每一次中执行所述识别;
在所述优化循环的所述多次迭代中的每一次中改变建模对象的形状,包括限制所述形状在沿着所述至少一条路径的所述一个或多个所需区域的至少一部分中的厚度减小;以及
输出所述建模对象的所述形状以至少产生在所述数据结构中定义的所述新的几何形状。
4.如权利要求3所述的方法,其中所述建模对象的所述形状包括所述建模对象的隐式表面的水平集表示,所述产生包括:在所述优化循环的所述多次迭代中的每一次中调整所述至少一条路径的数据值以产生所述至少一条路径的调整后的数据值,限制所述形状的所述厚度减小包括在所述优化循环的所述多次迭代中的每一次中改变所述建模对象的所述形状期间使用所述调整后的数据值来限制所述形状在所述一个或多个所需区域中的厚度减小,并且所述调整包括:
针对所述至少一条路径的与所述形状的中轴相对应的所述数据值的第一部分,
从与所述数据值的所述第一部分相对应的多个空间点中的每一者投射光线,以及
估计沿每条光线的所述水平集表示中的值的极值以产生调整后的空间点;并且
针对所述至少一条路径的不与所述形状的所述中轴相对应的所述数据值的第二部分,使与所述数据值的所述第二部分相对应的空间点平滑以产生调整后的空间点。
5.如权利要求3所述的方法,其中所述识别包括薄化所述几何形状的体素化模型以在所述两个或更多个指定区域之间产生所述至少一条路径。
6.如权利要求3所述的方法,其中所述识别包括在包括所述几何形状的体素化模型的体素空间内运行路径搜索算法以在所述两个或更多个指定区域之间产生所述至少一条路径。
7.如权利要求6所述的方法,其中所述路径搜索算法限于搜索包括在所述两个或更多个保留主体中以及来自薄化所述几何形状的所述体素化模型的输出中的体素,以在所述两个或更多个指定区域之间产生所述至少一条路径。
8.如权利要求7所述的方法,其中:
针对一个或多个目的地中的每一者同时运行所述路径搜索算法,并且所述方法包括在到达每个相应的目的地保留主体时从所述搜索中移除目的地保留主体;
所述一个或多个目的地中的每一者包括在所述保留主体中的一者或多者中的相应保留主体中的一组两个或更多个结束体素;并且/或者
所述方法包括在从所述相应的目的地保留主体到起始保留主体的回溯期间更新从所述起始保留主体发现的路径。
9.如权利要求8所述的方法,其中所述路径搜索算法限于在第一遍搜索期间搜索包括在所述两个或更多个保留主体中以及来自所述薄化的所述输出中的体素,并且当所述第一遍搜索未能发现起始保留主体与所有目的地保留主体之间的路径时,执行第二遍搜索。
10.如权利要求3所述的方法,其中所述识别包括搜索包括节点和边的图形,所述节点表示所述两个或更多个指定区域以及沿着所述两个或更多个指定区域之间的初始路径的任何交汇点,并且所述边表示所述两个或更多个指定区域之间的所述至少一条路径的各个单独部分以及沿着所述两个或更多个指定区域之间的所述初始路径的任何交汇点。
11.如权利要求10所述的方法,其中所述两个或更多个指定区域之间的所述初始路径包括使用所述形状的体素化薄化生成的线骨架,并且所述方法包括回退到在包括所述几何形状的体素化模型的体素空间内运行路径搜索算法以在所述两个或更多个指定区域之间产生所述至少一条路径。
12.如权利要求3所述的方法,其中所述产生包括:在所述优化循环的所述多次迭代中的每一次中调整所述至少一条路径的数据值以产生所述至少一条路径的调整后的数据值,限制所述形状的所述厚度减小包括在所述优化循环的所述多次迭代中的每一次中所述改变所述建模对象的所述形状期间使用所述调整后的数据值来限制所述形状在所述一个或多个所需区域中的所述厚度减小,并且使用所述调整后的数据值来限制所述形状在所述一个或多个所需区域中的厚度减小包括:
使用所述调整后的数据值来计算所述建模对象的形状厚度值;以及
通过根据目标断开厚度和所述形状厚度值来减缓形状改变,根据所述优化循环的所述多次迭代中的每一次中的数值模拟来修改所述建模对象的改变量。
13.如权利要求12所述的方法,其中所述建模对象的所述形状包括所述建模对象的隐式表面的水平集表示,并且所述计算包括:
通过针对所述调整后的点中的每一者执行球体的布尔并集来将加厚水平集表示形成为所述建模对象的所述隐式表面的所述水平集表示的副本;以及
基于所述建模对象的所述隐式表面的所述水平集表示与所述加厚水平集表示之间的差值来估计所述形状厚度值。
14.如权利要求12所述的方法,其中所述改变包括根据一个或多个设计标准来改变所述建模对象的三维形状和拓扑,并且所述修改包括:
在所述建模对象中所述形状厚度值大于所述目标断开厚度但在所述目标断开厚度的预定义距离内的位置处沿朝向所述目标断开厚度的方向执行所述减慢;以及
在所述建模对象中所述形状厚度值小于所述目标断开厚度的位置处迫使形状沿朝向所述目标断开厚度的方向改变。
15.如权利要求14所述的方法,其中在所述位置中的每一者处执行所述减慢达基于所述位置处的形状厚度值与所述目标断开厚度之间的差值的量,并且在所述位置中的每一者处执行所述迫使达基于所述位置处的形状厚度值与所述目标断开厚度之间的差值的量。
16.如权利要求15所述的方法,其中通过执行操作来计算所述减慢中所使用的所述量,所述操作包括:
使用所述位置处的所述形状厚度值与所述目标断开厚度之间的所述差值的固定百分比来计算所述减慢中所使用的所述量。
17.如权利要求3所述的方法,其中所述产生包括:
确定所述建模对象沿着所述至少一条路径的厚度已下降到激活厚度以下;以及
响应于所述建模对象沿着所述至少一条路径的所述厚度已下降到所述激活厚度以下,限制所述形状在沿着所述至少一条路径的所述一个或多个所需区域的至少一部分中的所述厚度减小。
18.如权利要求17所述的方法,其中所述确定在所述优化循环的每次迭代中执行,直到所述建模对象沿着所述至少一条路径的所述厚度已下降到所述激活厚度以下,并且所述多次迭代是所述优化循环的所有所述迭代的真子集。
19.如权利要求3所述的方法,其中在所述数据结构中定义的所述几何形状用建模对象的隐式表面的水平集表示来建模,并且所述产生包括:
通过针对对应于所述至少一条路径的多个点中的每一者执行球体的布尔并集来将加厚水平集表示形成为所述建模对象的所述隐式表面的所述水平集表示的副本;以及
将所述建模对象的所述隐式表面的所述水平集表示替换为所述建模对象的所述加厚水平集表示,以产生在所述数据结构中针对所述一个或多个所需区域定义的所述新的几何形状。
20.如权利要求19所述的方法,其中所述产生包括:
检测在所述优化循环的至少一次迭代中已经沿着所述至少一条路径发生断开;以及
响应于检测到所述断开而执行所述形成和所述替换。
21.一种非暂时性计算机可读介质,其编码计算机辅助设计程序,所述计算机辅助设计程序可操作以使一个或多个数据处理设备执行操作,所述操作包括:
获得在由所述形状建模计算机程序所使用的数据结构中定义的几何形状的两个或更多个指定区域;
识别所述两个或更多个指定区域之间的至少一条路径,其中所述至少一条路径对应于必须包括在所述几何形状中以确保所述几何形状的所述两个或更多个指定区域中的至少两者之间的连接的一个或多个所需区域;以及
产生在所述数据结构中针对所述一个或多个所需区域定义的新的几何形状,所述新的几何形状使用所述至少一条路径产生。
22.如权利要求21所述的非暂时性计算机可读介质,其中所述两个或更多个指定区域是两个或更多个保留主体,针对所述几何形状指定所述两个或更多个保留主体和至少一个障碍物主体,并且所述产生包括基于所述两个或更多个保留主体、所述至少一条路径以及所述至少一个障碍物主体生成所述新的几何形状。
23.如权利要求22所述的非暂时性计算机可读介质,其中所述产生包括:
在优化循环的多次迭代中的每一次中执行所述识别;
在所述优化循环的所述多次迭代中的每一次中改变建模对象的形状,包括限制所述形状在沿着所述至少一条路径的所述一个或多个所需区域的至少一部分中的厚度减小;以及
输出所述建模对象的所述形状以至少产生在所述数据结构中定义的所述新的几何形状。
24.一种系统,其包括:
一个或多个数据处理设备;以及
一个或多个非暂时性计算机可读介质,其对指令进行编码,所述指令能够由所述一个或多个数据处理设备执行,所编码指令包括用于过滤对象形状的变化的速度以选择性地限制所述形状沿着关键路径的收缩以防止在所述形状的优化期间发生断开的装置。
25.如权利要求24所述的系统,其中所编码指令包括用于过滤所述形状的几何形状以添加材料来重新连接检测到的断开的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/412,843 | 2022-10-03 | ||
US18/240,185 | 2023-08-30 | ||
US18/240,185 US20240126933A1 (en) | 2022-10-03 | 2023-08-30 | Computer aided shape synthesis with connectivity filtering |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117828816A true CN117828816A (zh) | 2024-04-05 |
Family
ID=90519872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311275509.2A Pending CN117828816A (zh) | 2022-10-03 | 2023-09-28 | 利用连接性过滤的计算机辅助形状合成 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117828816A (zh) |
-
2023
- 2023-09-28 CN CN202311275509.2A patent/CN117828816A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7376233B2 (ja) | ピクセルワイズ分類器による2dフロアプランのセマンティックセグメンテーション | |
CN105740497B (zh) | 对工件的加工进行仿真 | |
Hichri et al. | Review of the “as-buit BIM” approaches | |
CN110009727A (zh) | 一种具有结构语义的室内三维模型自动重构方法及系统 | |
CN115769155B (zh) | 具有刀具尺寸控制以促进2.5轴减材制造过程的计算机辅助生成式设计 | |
EP3340085B1 (en) | B-rep of the result of a two-axis 3d printing process | |
CN110232741B (zh) | 多层包围盒确定方法、碰撞检测及运动控制方法与设备 | |
JP7417815B2 (ja) | 製造及び構造的パフォーマンスを促進する全体的な厚さの制御によるコンピュータ支援のジェネレーティブデザイン | |
JP2020115339A (ja) | メッシュからの特徴木の抽出 | |
US20220373996A1 (en) | Computer aided generative design with filtering to facilitate 2.5-axis subtractive manufacturing processes | |
Pantoja-Rosero et al. | Damage-augmented digital twins towards the automated inspection of buildings | |
CN115769210A (zh) | 对层边界进行确定以促进2.5轴减材制造工艺的计算机辅助生成式设计 | |
JP2021082297A (ja) | 実オブジェクト上での形状属性の3d信号の処理 | |
EP4195086A1 (en) | Computer aided generative design with feature thickness control to facilitate manufacturing and structural performance | |
Erber et al. | Geometry-based assurance of directional solidification for complex topology-optimized castings using the medial axis transform | |
CA2966299C (en) | Method for immediate boolean operations using geometric facets | |
JP6645509B2 (ja) | 構造解析方法、及び構造解析プログラム | |
EP4092557A1 (en) | Parameterization of digital irregular freeform geometries | |
EP4350566A1 (en) | Computer aided shape synthesis with connectivity filtering | |
EP3675064B1 (en) | Generation of a structured 3d model from a raw mesh | |
CN117828816A (zh) | 利用连接性过滤的计算机辅助形状合成 | |
EP1685509B1 (en) | System, method, and computer program product for determining wall thickness in a graphic model | |
JP2019145083A (ja) | 実オブジェクトのスキンを表すファセットの集合の決定 | |
WO2013033534A1 (en) | Tolerant intersections in graphical models | |
CN115917457A (zh) | 具有过滤以促进2.5轴减材制造过程的计算机辅助生成式设计 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |