CN116432329A - 利于制造和结构性能的具有特征厚度控制的计算机辅助生成设计 - Google Patents
利于制造和结构性能的具有特征厚度控制的计算机辅助生成设计 Download PDFInfo
- Publication number
- CN116432329A CN116432329A CN202211561816.2A CN202211561816A CN116432329A CN 116432329 A CN116432329 A CN 116432329A CN 202211561816 A CN202211561816 A CN 202211561816A CN 116432329 A CN116432329 A CN 116432329A
- Authority
- CN
- China
- Prior art keywords
- thickness
- skeleton
- voxelized
- dimensional shape
- design
- 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
- 238000013461 design Methods 0.000 title claims abstract description 183
- 238000004519 manufacturing process Methods 0.000 title claims description 84
- 238000000034 method Methods 0.000 claims abstract description 178
- 238000012545 processing Methods 0.000 claims abstract description 36
- 238000011960 computer-aided design Methods 0.000 claims abstract description 17
- 230000008859 change Effects 0.000 claims description 63
- 238000004088 simulation Methods 0.000 claims description 41
- 238000005259 measurement Methods 0.000 claims description 30
- 238000003860 storage Methods 0.000 claims description 9
- 230000000116 mitigating effect Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 abstract description 15
- 230000008569 process Effects 0.000 description 71
- 238000005457 optimization Methods 0.000 description 50
- 230000006870 function Effects 0.000 description 45
- 238000004422 calculation algorithm Methods 0.000 description 37
- 238000012938 design process Methods 0.000 description 37
- 239000000654 additive Substances 0.000 description 20
- 230000000996 additive effect Effects 0.000 description 20
- 239000000463 material Substances 0.000 description 18
- 239000007787 solid Substances 0.000 description 15
- 238000004364 calculation method Methods 0.000 description 14
- 230000000704 physical effect Effects 0.000 description 12
- 238000013459 approach Methods 0.000 description 10
- 238000005266 casting Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000001914 filtration Methods 0.000 description 8
- 238000012986 modification Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 230000004044 response Effects 0.000 description 8
- 238000009966 trimming Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 238000003754 machining Methods 0.000 description 7
- 230000014759 maintenance of location Effects 0.000 description 7
- 238000003801 milling Methods 0.000 description 7
- 230000007704 transition Effects 0.000 description 7
- 238000012886 linear function Methods 0.000 description 6
- 238000007670 refining Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 5
- 238000000691 measurement method Methods 0.000 description 5
- 238000001308 synthesis method Methods 0.000 description 5
- 230000015572 biosynthetic process Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000009499 grossing Methods 0.000 description 4
- 238000001746 injection moulding Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000002829 reductive effect Effects 0.000 description 4
- 230000000717 retained effect Effects 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 238000000110 selective laser sintering Methods 0.000 description 4
- 238000003786 synthesis reaction Methods 0.000 description 4
- 238000012800 visualization Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 238000005520 cutting process Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000005242 forging Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013442 quality metrics Methods 0.000 description 3
- 239000000243 solution Substances 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 239000000758 substrate Substances 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000005530 etching Methods 0.000 description 2
- 239000012530 fluid Substances 0.000 description 2
- 238000010100 freeform fabrication Methods 0.000 description 2
- 238000000465 moulding Methods 0.000 description 2
- 239000000843 powder Substances 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 239000002994 raw material Substances 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000010146 3D printing Methods 0.000 description 1
- 238000012935 Averaging Methods 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000000149 argon plasma sintering Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000010668 complexation reaction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011038 discontinuous diafiltration by volume reduction Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000003628 erosive effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000001125 extrusion Methods 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 230000008014 freezing Effects 0.000 description 1
- 238000007710 freezing Methods 0.000 description 1
- 230000004927 fusion Effects 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
- 230000004807 localization Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003340 mental effect Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000001465 metallisation Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 238000005728 strengthening Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000004441 surface measurement Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000008719 thickening Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/17—Mechanical parametric or variational design
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B33—ADDITIVE MANUFACTURING TECHNOLOGY
- B33Y—ADDITIVE MANUFACTURING, i.e. MANUFACTURING OF THREE-DIMENSIONAL [3-D] OBJECTS BY ADDITIVE DEPOSITION, ADDITIVE AGGLOMERATION OR ADDITIVE LAYERING, e.g. BY 3-D PRINTING, STEREOLITHOGRAPHY OR SELECTIVE LASER SINTERING
- B33Y50/00—Data acquisition or data processing for additive manufacturing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/12—Geometric CAD characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/23—Design optimisation, verification or simulation using finite element methods [FEM] or finite difference methods [FDM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/28—Design optimisation, verification or simulation using fluid dynamics, e.g. using Navier-Stokes equations or computational fluid dynamics [CFD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B22—CASTING; POWDER METALLURGY
- B22F—WORKING METALLIC POWDER; MANUFACTURE OF ARTICLES FROM METALLIC POWDER; MAKING METALLIC POWDER; APPARATUS OR DEVICES SPECIALLY ADAPTED FOR METALLIC POWDER
- B22F10/00—Additive manufacturing of workpieces or articles from metallic powder
- B22F10/80—Data acquisition or data processing
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B33—ADDITIVE MANUFACTURING TECHNOLOGY
- B33Y—ADDITIVE MANUFACTURING, i.e. MANUFACTURING OF THREE-DIMENSIONAL [3-D] OBJECTS BY ADDITIVE DEPOSITION, ADDITIVE AGGLOMERATION OR ADDITIVE LAYERING, e.g. BY 3-D PRINTING, STEREOLITHOGRAPHY OR SELECTIVE LASER SINTERING
- B33Y30/00—Apparatus for additive manufacturing; Details thereof or accessories therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/10—Numerical modelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2113/00—Details relating to the application field
- G06F2113/10—Additive manufacturing, e.g. 3D printing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/14—Force analysis or force optimisation, e.g. static or dynamic forces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/18—Manufacturability analysis or optimisation for manufacturability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/21—Collision detection, intersection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2016—Rotation, translation, scaling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2021—Shape modification
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Architecture (AREA)
- Computer Graphics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Chemical & Material Sciences (AREA)
- Materials Engineering (AREA)
- Manufacturing & Machinery (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Fluid Mechanics (AREA)
- Mathematical Physics (AREA)
- Processing Or Creating Images (AREA)
Abstract
用于具有特征厚度控制的计算机辅助设计的方法、系统和设备(包括介质编码的计算机程序产品),包括:三维建模程序,所述三维建模程序被配置来在形状和/或拓扑生成期间提供测量三维模型中的厚度的基于体素化减薄的到中轴面的距离的处理,和/或基于斜坡式缩放的厚度约束应用。所述三维建模程序可以是架构、工程和/或构造程序(例如,建筑信息管理程序),产品设计和/或制造程序(例如,CAM程序),和/或媒体和/或娱乐制作程序(例如,动画制作程序)。
Description
技术领域
本说明书涉及可使用增材制造、减材制造和/或其他制造系统和技术来制造的物理结构或者可作为数字资产(诸如用于动画)提供的其他结构的计算机辅助设计。
背景技术
计算机辅助设计(CAD)软件已经被开发并且用于生成对象的三维(3D)表示,并且计算机辅助制造(CAM)软件已经被开发并且用于评估、计划和控制那些对象的物理结构的制造(例如,使用计算机数控(CNC)制造技术)。通常,CAD软件使用边界表示(B-Rep)格式存储正在建模的对象的几何的3D表示。B-Rep模型是指定建模的3D对象的实心部分与非实心部分之间的边界的一组连接的表面元素。在B-Rep模型(通常称为B-Rep)中,使用平滑且精确的数学表面将几何存储在计算机中,这与可能难以在CAD程序中运作的网格模型的离散且逼近的表面形成对比。
CAD程序已经与减材制造系统和技术结合使用。减材制造是指通过切除毛坯材料(通常是大于3D对象的“坯件”或“工件”)的部分而由毛坯材料形成3D对象的任何制造过程。此类制造过程通常涉及在从粗加工操作、任选的半精加工操作和精加工操作开始的一系列操作中使用多个CNC机床切削工具。除了CNC机加工之外,其他减材制造技术包括电极放电机加工、化学机加工、水射流机加工等。相比之下,增材制造(additive manufacturing),也称为固体自由成形加工(solid free form fabrication)或3D打印,是指在一系列层或横截面中由原始材料(通常是粉末、液体、悬浮液或熔融固体)构建3D对象的任何制造过程。增材制造的实例包括熔丝制造(FFF)和选择性激光烧结(SLS)。用于由原材料构建3D对象的其他制造技术包括铸造和锻造(热锻和冷锻两者)以及成型。
另外,CAD软件已经被设计来在设计(称为“拓扑优化”、“生成设计”或“生成建模”等)中执行一个或多个零件的3D几何的自动生成。3D几何的此自动化生成通常在用户或CAD软件指定的“设计域”内运作,并且通常通过优化设计目标和遵守可由用户、CAD软件或第三方限定的设计约束来生成几何。设计目标可包括但不限于最小化废料、最小化零件的重量以及最小化零件的合规性(compliance)、应力、最大质量、最大负载下挠度或其他固有特性,并且用于将形状合成过程朝向更好的设计驱动。尽管不是必需的,但设计目标通常植根于设计的模拟(线性静态的、流体动力学的、电磁的等)。设计约束可包括在任何生成的设计中必须满足的多种物理特性或行为(对单独零件或整个组件的要求也是可接受的);实例包括最大质量、最大负载下挠度、最大应力等。
还可提供几何约束,例如以确保所生成的形状没有微小的特征或者更容易使用特定的制造过程实现。此外,这种3D几何生成工具的几何输入可包括在设计中应始终存在的一个或多个用户或CAD系统提供的“保留主体”(指示设计空间的在最终设计中应用材料填充的体积区域)或“保留面”(表示设计空间与应由所生成的3D几何接触的相邻部件之间的界面)。“保留主体”或“保留面”可表示与系统的其他零件或应对其应用边界条件(例如,机械负载和约束)的位置的界面。也可以类似方式提供其中应或不应生成几何的其他区域(例如,用于指示其中不应形成几何的“障碍主体”)。在一些情况下,形状合成过程使用与CAD系统所采用不同的几何表示来进行。例如,CAD系统可使用边界表示(“B-Rep”),而几何生成引擎可采用嵌入体素或四面体网格中的水平集函数。
发明内容
本说明书描述与具有特征厚度控制的结构的计算机辅助设计(例如,使用生成设计过程的物理结构的设计)相关的技术,其中根据设计标准产生物理结构的三维(3D)模型,所述设计标准控制生成设计的3D形状中的特征厚度,例如,最小特征大小控制。其他应用包括生成思维活动或纯数字资产;最小特征大小的增大可由可制造性考虑因素以外的考虑因素(诸如出于美学原因或期望承受非建模物理特性(诸如屈曲))驱动。
总体上,本说明书中描述的主题的一个或多个方面可体现在一种或多种方法(以及还有一种或多种非暂时性计算机可读介质,所述一种或多种非暂时性计算机可读介质对计算机程序进行有形编码,所述计算机程序可操作以使数据处理设备执行操作)中,所述一种或多种方法包括:通过计算机辅助设计程序获得要制造其对应物理结构的建模对象的设计空间,以及所述建模对象的一个或多个设计标准,其中所述一个或多个设计标准包括所述建模对象的厚度规范;通过所述计算机辅助设计程序根据所述一个或多个设计标准在所述设计空间中迭代地改变所述建模对象的三维形状,其中所述迭代地改变包括:通过在所述迭代地改变期间测量所述三维形状的厚度值来使用所述厚度规范控制所述三维形状的厚度,所述测量包括:制备所述三维形状的体素化片和线骨架;以及使用所述体素化片和线骨架限定所述三维形状的所述厚度值;以及通过所述计算机辅助设计程序提供所述建模对象的所述三维形状以用于使用所述一个或多个计算机控制的制造系统制造所述物理结构。
所述制备可包括:计算所述三维形状的体素化片骨架;计算所述三维形状的体素化线骨架,其中所述体素化线骨架包括将所述三维形状的不同部分彼此连接的一个或多个线段;任选地从所述体素化片骨架移除边远体素;以及将所述体素化线骨架的体素添加到所述体素化片骨架以形成所述三维形状的所述体素化片和线骨架。所述建模对象可包括针对所述三维形状指定的一个或多个保留区域,并且所述三维形状的所述不同部分可包括所述一个或多个保留区域。
从所述体素化片骨架移除所述边远体素可包括:移除与所述三维形状的所述体素化片骨架中的片边缘相关联的体素;移除形成所述三维形状的所述体素化片骨架的一个或多个体素化线骨架部分的体素;或既移除与所述片边缘相关联的所述体素又移除形成所述一个或多个体素化线骨架部分的所述体素。所述限定可包括:将所述体素化片和线骨架转变成逼近所述三维形状的中轴面的点;以及使用所述点生成所述厚度值。
逼近中轴面的所述点可以是第一组点,所述制备可包括:跟踪所述体素化线骨架的在从所述体素化片骨架移除所述边远体素之前不在所述体素化片骨架中的所述体素,并且所述生成可包括:除了所述第一组点之外,还使用第二组点生成所述厚度值,所述第二组点是所述体素化线骨架的在所述移除之前不在所述体素化片骨架中的所述体素的中心点。
所述建模对象的所述三维形状可包括所述建模对象的隐式表面的水平集表示,并且针对逼近所述中轴面的所述第一组点中的每个单独点,所述转变可包括:从在所述体素化片和线骨架中但不包括在所述体素化线骨架的在移除之前不在所述体素化片骨架中的所述体素中的下一个体素投射射线,或者从所述下一个体素的相邻体素投射射线;以及估计所述水平集表示中的值沿着所述三维形状内的所述射线的极值。
所述第一组点可包括片状点和线点,所述方法(或由所述数据处理设备根据有形地编码在一个或多个非暂时性计算机可读介质中的计算机程序执行的操作)可包括:针对所述片点执行多向搜索并且针对所述线点执行梯度优先搜索,其中对于所述多向搜索,所述投射包括:从与所述下一个体素相关联的初始点在不同方向上投射两条或更多条射线,其中所述两条或更多条射线任选地是至少三条正交射线,其任选地是所述设计空间中的X、Y、Z方向;并且所述估计包括:针对所述两条或更多条投射射线中的每一条,产生所述水平集表示中的值在所述中轴面的近侧上的近侧线性逼近,产生所述水平集表示中的值在所述中轴面的远侧上的远侧线性逼近,寻找所述近侧线性逼近与所述远侧线性逼近的交点以及所述交点的质量值,以及基于针对所述两条或更多条投射射线找到的所述交点的所述质量值选择所述交点中的至少一个交点作为所述第一组点中的点。此外,对于所述梯度优先搜索,所述投射包括:从所述初始点在对应于从所述下一个体素的所述相邻体素计算的逆风梯度的方向上投射射线;并且所述估计包括:产生所述水平集表示中的值在所述中轴面的近侧上的近侧线性逼近,产生所述水平集表示中的值在所述中轴面的远侧上的远侧线性逼近,寻找所述近侧线性逼近与所述远侧线性逼近的交点以及所述交点的质量值,以及当所述交点的所述质量值足够时,使用所述交点作为所述第一组点中的线点,并且当所述交点的所述质量值不足时,针对所述线点执行所述多向搜索。
所述转变可包括:寻找逼近所述三维形状的所述中轴面的第一组点;以及改变所述第一组点的位置和/或半径以平滑所述第一组点中的数据值。所述建模对象的所述三维形状可包括所述建模对象的隐式表面的水平集表示,并且所述生成可包括:通过针对从所述体素化片和线骨架产生的所述点中的每个点对所述建模对象的所述隐式表面的所述水平集表示的副本执行球体的布尔并集来形成加厚水平集表示;以及基于所述建模对象的所述隐式表面的所述水平集表示与所述加厚水平集表示之间的差来估计所述厚度值。此外,所述迭代地改变可包括:在所述设计空间中迭代地改变所述建模对象的三维形状和拓扑。
总体上,本说明书中描述的主题的一个或多个方面也可体现在一种或多种方法(以及还有一种或多种非暂时性计算机可读介质中,所述一种或多种非暂时性计算机可读介质对计算机程序进行有形编码,所述计算机程序可操作以使数据处理设备执行操作)中,所述一种或多种方法包括:通过计算机辅助设计程序获得要制造其对应物理结构的建模对象的设计空间,所述建模对象的一个或多个设计标准,以及所述建模对象的厚度规范;通过所述计算机辅助设计程序根据所述一个或多个设计标准在所述设计空间中迭代地改变所述建模对象的三维形状,其中所述迭代地改变包括:在第二组零次或更多次迭代之后执行第一组两次或更多次迭代,并且其中在所述第一组两次或更多次迭代期间,所述迭代地改变包括:在所述第一组两次或更多次迭代中的每次迭代中,修改由通过数值模拟生成的所述建模对象的当前数值估评指示的变化量以用于更新所述迭代中的所述生成设计的三维形状的当前版本;其中所述修改包括:针对所述生成设计的三维形状的当前版本中的多个位置中的每个位置,当所述位置处的测量厚度符合所述厚度规范时,将在朝向所述厚度规范的方向上的所述位置处的形状变化减缓一定量,所述量是基于所述厚度规范与所述测量厚度之间的差;以及通过所述计算机辅助设计程序提供所述建模对象的所述三维形状以用于使用一个或多个计算机控制的制造系统制造所述物理结构。
所述迭代地改变可包括:根据所述一个或多个设计标准在所述设计空间中迭代地改变所述建模对象的所述三维形状和拓扑两者,其中所述修改包括:针对所述生成设计的三维形状的当前版本中的多个位置中的每个位置,当所述测量厚度不符合所述厚度规范时,强制实施在朝向所述厚度规范的方向上的所述位置处的形状变化,并且任选地,其中所述强制实施包括:强制实施在朝向所述厚度规范的方向上的形状变化一定量,所述量是基于所述厚度规范与所述位置处的所述测量厚度之间的差。
所述修改可包括:针对所述生成设计的三维形状的所述当前版本中的所述多个位置中的每个位置:使用所述减缓的形状变化或所述强制实施的形状变化估计所述位置处的预期厚度变化;以及使用所述位置处的所述估计厚度变化调节所述减缓的形状变化或所述强制实施的形状变化。
所述第二组可以是第二组一次或多次迭代,并且所述迭代地改变可包括:在所述第二组一次或多次迭代与所述第一组两次或更多次迭代之间执行第三组两次或更多次迭代,并且其中在所述第三组两次或更多次迭代期间,所述迭代地改变包括:针对所述生成设计的三维形状的当前版本中的多个位置中的每个位置,当所述位置处的测量厚度在值范围内时,减缓在朝向所述厚度规范的方向上的所述位置处的形状变化,所述值范围的一侧由调节控制变量设定;以及在所述第三组两次或更多次迭代的进程中改变所述调节控制变量以使得更接近所述厚度规范。
所述迭代地改变可包括:将所述第一组两次或更多次迭代扩展超过满足所述一个或多个设计标准的迭代,以便确保不需要进一步强制实施形状变化。所述第二组可以是第二组两次或更多次迭代,并且其中在所述第二组两次或更多次迭代期间,不基于所述厚度规范执行由所述数值估评指示的量的变化。
所述迭代地改变可包括:测量所述三维形状的厚度值,所述测量包括:制备所述三维形状的体素化片和线骨架;以及使用所述体素化片和线骨架限定所述三维形状的所述厚度值。所述厚度规范可以是最大厚度值。所述厚度规范可对应于厚度长度比(thicknessaspect ratio),并且所述厚度规范可基于所述位置处的估评厚度相对于所述生成设计的三维形状的所述当前版本的一部分的长度的比率在所述位置处调节,所述部分包含所述位置。所述厚度规范可以是最小厚度值。当所述位置处的所述厚度满足(i)最大厚度值、(ii)厚度长度比或(iii)最小厚度值时,所述测量厚度符合所述厚度规范,其中缓冲区根据厚度测量误差的估计设定。此外,所述减缓可由第一函数控制,并且所述强制实施可由第二函数控制。
本说明书中描述的主题的一个或多个方面也可体现在一种或多种系统中,所述一种或多种系统包括:非暂时性存储介质,所述非暂时性存储介质具有存储在其上的计算机辅助设计程序的指令;以及一个或多个数据处理设备,所述一个或多个数据处理设备被配置来运行所述计算机辅助设计程序的所述指令以执行本文所述的一种或多种方法中的任一种。
本说明书中描述的主题的特定实施方案可被实施以实现以下优点中的一个或多个优点。生成设计过程可适用于产生非常适合制造的形状,诸如通过在正在设计的物理结构的生成建模期间强加最小特征大小约束。最小特征大小要求适用于一系列制造过程,包括(i)增材制造,例如FFF,其中存在针对给定增材制造过程限定的最小分辨率,(ii)减材制造,例如3轴铣削,其中零件的特征需要承受在制造过程期间强加在零件上的瞬态力,以及(iii)基于成型的制造,例如注射成型,其中零件特征大小受制造过程的物理要求限制。
在其中厚度是设计中的重要因素(例如,在制备用于注射成型的零件时)的上下文中,厚度测量算法也可用作对形状的分析以向设计者或算法提供反馈。此外,除了促进零件设计和/或制造之外,由所描述的生成设计过程生成的形状还可增强所制造零件的结构性能,因为薄特征容易由于意外负载诸如掉落或非建模屈曲相互作用而破损,并且形状可出于美学原因(诸如产生数字资产,例如用于电影动画制作)生成。所描述的特征大小约束可正确地且平滑地加厚3D模型的片状区域,而不引入表面缺陷。
所描述的用于厚度控制的过程(例如,在生成建模期间)不限于最小厚度控制,而是也适用于最大厚度控制和厚度长度比控制。可向用户提供一个或多个界面元素以作为生成设计问题设置的一部分指定此类厚度控制参数,这可改进用户对形状生成过程的控制并且得到更有用的设计。可关于以下方面使这些设计更加有用:美学(可向用户提供对输出形状的附加控制),物理性能(最终零件的提高的稳健性),和/或制造成本(例如,最小特征大小控制降低与特殊工具相关联的制造成本)。
在任何情况下,所描述的用于测量正在生成设计的演变形状的厚度的方法可减少处理资源的使用,同时还降低(或消除)对于特定位置的特定设计而言厚度量度将不明确或不准确的风险(厚度控制方案可对各种各样的3D模型稳健地起作用)。因此,厚度测量可应用于提高程序的稳健性的用于生成设计过程的约束公式。厚度测量可在生成设计期间应用于无限制求解。
此外,通过使用用于应用厚度约束的斜坡式缩放过程,可实现对厚度的控制(在使用或不使用所描述的基于体素化减薄的距离测量的情况下),同时还使在优化零件的形状和/或拓扑期间将过度地限制零件设计变化的风险最小化。由于厚度约束公式不需要曲率测量(通常向结果中引入噪声的计算),所生成的3D模型的噪声可减少。最后,因为厚度约束被实施为可隐式作用于速度场的过滤器,所述约束不需要并入显式约束的优化框架,从而使其适用性更广。
以下附图和描述中阐述本说明书中描述的主题的一个或多个实施方案的细节。从描述、附图和权利要求将显而易见本发明的其他特征、方面和优点。
附图说明
图1A示出可用于促进具有特征厚度控制的结构的计算机辅助设计的系统的实例。
图1B示出具有特征厚度控制的生成设计的过程的实例。
图1C示出具有特征厚度控制的生成设计的过程中的迭代循环的实例。
图2A示出用于测量3D模型中的厚度的基于体素化减薄的到中轴面的距离的过程的实例。
图2B示出形状的中轴的实例。
图2C示出形状的中轴面的逼近的实例。
图2D和图2E示出体素化片和线骨架的实例。
图2F和图2G示出用于将骨架点细化为更靠近3D形状的中轴面的射线投射和极值估计的过程。
图2H和图2I示出用于沿着搜索方向寻找尽可能靠近带符号的距离场的谷底的体素的过程。
图2J示出图2E的三维形状的最终点骨架。
图2K示出使用3D模型的加厚水平集表示生成3D模型的表面处的厚度值的实例。
图2L示出图2E的三维形状的表面处的水平集差测量厚度的实例。
图3A示出对从3D模型的体素化片和线骨架中的体素获得的点进行选择性细化的过程的实例。
图3B示出如何限定和计算3D模型的水平集表示中的逆风梯度。
图4A示出用于应用厚度约束的斜坡式缩放过程的实例。
图4B示出用于应用厚度约束的斜坡式缩放过程的功能控制的实例。
图5是包括数据处理设备的数据处理系统的示意图,所述数据处理设备可被编程为客户端或服务器并且实施本文档中描述的技术。
各个附图中相同的附图标号和名称指示相同的元件。
具体实施方式
图1A示出可用于促进具有特征厚度控制的结构的计算机辅助设计的系统的实例。计算机110包括处理器112和存储器114,并且计算机110可连接到网络140,所述网络140可以是专用网络、公共网络、虚拟专用网络等。处理器112可以是各自可包括多个处理器核心的一个或多个硬件处理器。存储器114可包括易失性存储器和非易失性存储器两者,诸如随机存取存储器(RAM)和闪存RAM。计算机110可包括各种类型的计算机存储介质和装置(可包括存储器114),以存储在处理器112上运行的程序的指令,所述程序包括计算机辅助设计(CAD)程序116,所述CAD程序116实施三维(3D)建模函数并且包括特征厚度控制,所述特征厚度控制可作为用于拓扑优化(例如,使用如所描述的至少一种水平集方法)的一个或多个生成设计过程的部分实施。
在一些情况下,由本文档中描述的系统和技术执行的数值模拟可模拟一种或多种物理特性,并且可使用一种或多种类型的模拟来产生建模对象的物理响应(例如,结构响应)的数值估评。例如,可使用有限元分析(FEA)(包括线性静态FEA)、有限差分法和物质点法。此外,对物理特性的模拟可包括计算流体动力学(CFD)、声学/噪声控制、热传导、计算注射成型、电或电磁通量和/或材料固化模拟(材料固化模拟对于成型过程中的相变是有用的)。此外,CAD程序116可潜在地实施孔和/或夹具生成技术以支持制造期间的夹持和/或制造控制功能。
如本文所用,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,所述UI 122可使用计算机110的一个或多个输入装置118(例如,键盘和鼠标)来操作。应注意,虽然在图1A中被示出为单独的装置,但是显示装置120和/或输入装置118也可彼此集成和/或与计算机110集成,诸如在平板计算机中(例如,触摸屏可以是输入装置118/输出装置120)。此外,计算机110可包括虚拟现实(VR)和/或增强现实(AR)系统或者是其一部分。例如,输入装置118/输出装置120可包括VR/AR输入手套118a和/或VR/AR头戴式耳机120a。在任何情况下,用户160与CAD程序116交互以创建和修改3D模型,所述3D模型可存储在3D模型文档130中。
在图1A所示的实例中,3D模型132是已经使用迭代生成建模过程产生的高级咨询摇杆的生成设计模型,所述迭代生成建模过程采用本文档中描述的系统和技术来将模型132的任何部分的最小厚度约束为至少5mm厚。生成建模过程可接收初始3D模型作为输入,即,起始形状(或“种子几何”)。在一些实施方式中,种子几何包括一个或多个保留区域,诸如保留主体134A、134B、134C、134D。边界约束可相对于此类保留区域限定,并且用于形状优化(和任选的拓扑优化)的起始形状可被形成为保留区域的凸包或由用户指定。输入保留区域可以是未连接的建模固体或表面(例如,建模固体的用户标识的面),并且生成设计过程用于产生连接输入保留区域的新3D几何,诸如在图1A的实例中。总体上,用于生成设计的设计空间可通过确定输入模型的包围体或凸包来获得,或者可使用另一技术来获得设计空间,所述设计空间是在形状和/或拓扑优化期间将要在其内设计零件的空间体积。在一些情况下,用户可明确地指定设计空间。
在一些实施方式中,用户160可限定让生成设计过程从起始3D模型产生期望3D模型的拓扑优化问题,或者输入可以是没有具体起始3D模型的设计空间。总体上,输入设计空间可以是自动生成的或用户指定的。应注意,生成设计过程本身可在设计空间内产生起始几何。例如,可将一个或多个种子模型用作生成设计过程的输入,以在形状演变开始时引入孔,以便修改生成设计的拓扑。
在一些实施方式中,建模对象的形状(和任选的拓扑)是使用生成设计过程或生成建模产生的,所述生成设计过程或生成建模采用用于控制所产生的建模对象的厚度的有效且稳健的测量厚度值的过程。在一些实施方式中,测量厚度的过程在于生成设计期间控制厚度的上下文之外使用。例如,厚度测量过程可用于在显示器120上的UI 122中提供零件厚度的可视化,例如,以用于在增材或注射成型制造制备软件中使用。
在一些实施方式中,建模对象的拓扑和形状是使用生成设计过程或生成建模产生的,所述生成设计过程或生成建模采用通过缩放斜坡强制执行的厚度约束,其中形状变化在逼近零件的厚度规范时减缓,例如使用从通过建模对象的数值模拟产生的数值估评生成的平流输送速度的局部过滤来减缓。在一些实施方式中,当违反厚度规范时也强制实施形状变化。总体上,在形状和/或拓扑优化期间使用厚度控制(例如,最小厚度约束)可指导生成设计过程产生利于制造物理结构的设计的最终形状,其中这可使用算法进行,所述算法是有效且稳健的并且可帮助生成设计求解器寻找使用更少材料和/或不太复杂的设计实现期望物理特性的设计结果。
因此,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可针对输入几何134A、134B、134C、134D使用B-Rep模型,而生成设计过程中(例如,CAD程序116中)的几何生成引擎可采用嵌入在体素或四面体网格中的水平集函数。
一旦用户160对生成设计的3D模型132感到满意,就可将3D模型132存储为3D模型文档130和/或用于生成模型的另一表示(例如,用于制造过程的工具路径规范)。这可应用户160请求或者鉴于用户对另一动作(诸如将生成设计的3D模型132发送到制造机器,例如增材制造(AM)机器和/或减材制造(SM)机器170或其他制造机械,制造机器可直接连接到计算机110或者如图所示通过网络140连接)的请求进行。这可涉及在本地计算机110上执行或在外部执行(例如,基于调用在云中运行的云服务)以进一步处理所生成的3D模型(例如,基于与增材制造过程相关联的考虑因素)并且将3D模型导出为根据其进行制造的电子文档的后处理。应注意,电子文档(为简洁起见,将简称为文档)可以是文件,但不一定对应于文件。文档可存储在保存其他文档的文件的一部分中、专用于所讨论文档的单个文件中、或多个协调文件中。另外,用户160可保存或传输3D模型以供后用。例如,CAD程序116可存储包括所生成的3D模型的文档130。
CAD程序116可向AM和/或SM机器170提供文档135(其具有适当格式的工具路径规范)以产生对应于3D模型132的至少一部分的物理结构。AM机器170可采用一种或多种增材制造技术,诸如颗粒技术(例如,粉末床融合(PBF)、选择性激光烧结(SLS)和直接金属激光烧结(DMLS))或挤出技术(例如,熔丝制造(FFF)、金属沉积)。在一些情况下,AM机器170直接构建物理结构,并且在一些情况下,AM机器170构建用于铸造或锻造物理结构的模具。
SM机器170可以是在制造过程中使用的计算机数控(CNC)铣床,诸如多轴、多工具铣床。例如,CAD程序116可生成用于机床系统170的CNC指令,所述机床系统170包括可用于各种机加工操作的多个工具(例如,不同大小和形状的实心硬质合金圆角工具,以及接收金属插入件以产生不同切削表面的不同大小的插入件工具)。因此,在一些实施方式中,CAD程序116可向SM机器170提供对应文档135(其具有适当格式的工具路径规范,例如,CNC数控(NC)程序)以用于使用各种切削工具制造物理结构等。应注意,铣削过程可能会限制可制造的形状的类型,因为铣床必须能够牢固地固持零件并且旋转钻头必须能够不受干扰地进入材料表面。其他应考虑的重要考虑因素是材料移除期间零件的振动以及铣削过程对钻头本身的应力。
由CAD程序116使用的形状和/或拓扑优化过程可通过确保结构的部分的最小厚度和/或通过降低结构的设计的复杂性而减少或移除使优化几何方案无法直接制造或以其他方式用于下游设计活动的障碍。通过确保满足所产生结构的性能要求,同时还考虑到在自动化设计过程中合成的几何的成本和可制造性,这可有利于通过AM和/或SM过程进行制造。这可使用算法进行,所述算法是有效且稳健的并且可帮助生成设计求解器寻找使用更少材料和/或不太复杂的设计实现期望物理特性的设计结果。
此外,在一些实施方式中,CAD程序116提供指令以在第一制造阶段例如使用直接AM和/或使用锻造和/或铸造方法构建工件,并且CAD程序116还提供指令以在第二制造阶段对工件进行机加工,例如粗加工和/或精加工操作(例如,在3轴CNC铣削系统中),以便形成完整的结构。总体上,可单独地或组合地采用各种不同的制造系统和技术来产生最终结构,并且CAD程序116可包括合适的算法以生成工具路径规范135,以供这些不同系统中的一个或多个系统制造已经使用本申请中描述的系统和技术设计的零件。
另外,在一些实施方式中,不涉及物理制造。本文所述的系统和技术适用于任何合适的3D建模软件。因此,在一些实施方式中,CAD程序116可以是动画制作程序,其将3D模型132渲染为适当格式的文档165以用于视觉显示,诸如通过数字投影仪174进行视觉显示(例如,用于电影发行的数字影院包(DCP)165)或通过其他高分辨率显示装置进行视觉显示。其他应用也是可能的。
尽管如此,在各种实施方式中,系统100的CAD程序116实施如本文档中描述的一个或多个生成设计过程。生成设计过程寻求最佳的几何、拓扑或两者。例如,生成设计过程通过使受制于约束的性能相关的目标函数最小化来在另选的设计中寻求最佳几何形状:
使得gi(s,i(s))=0 i=1,...,ng (2)
其中s是与域的几何形状相关的设计变量的矢量,并且u是取决于s的状态变量的矢量(例如,位移)。附加约束(例如,均衡)由集合gi标示。为简单起见,此处假设等式约束。用于最小化等式(1)的数学编程方法可以是基于梯度的或非基于梯度的。基于梯度的方法(对比非基于梯度的方法)通常使用更多的与设计敏感度相关联的信息,例如:
这是性能相关的目标函数相对于设计变量的导数。在基于水平集的拓扑优化方法中,s表示实心区域的边界。
图1B示出具有特征厚度控制的生成设计的过程的实例。由例如CAD程序116获得180建模对象的设计空间和一个或多个设计标准,以用于产生生成3D模型。建模对象的设计空间是将要在其内设计零件的体积。设计空间可包括包含对象的3D拓扑的一个或多个外部形状的初始规范的包围体。如上所述,设计空间可包括:在CAD程序116中设计或加载到其中的3D模型,所述3D模型用作所描述的生成设计过程的优化域的子空间;和/或一组输入区域,例如保留主体和/或表面,所述一组输入区域用于指定生成设计几何产生的边界条件,例如,由用户通过用户界面诸如UI 122选择以指定保留用作与更大3D模型中的其他部件或与单独3D模型的连接点的子区域的B-Rep(或其面)。
设计标准可包括对象的设计目标和设计约束两者。设计目标可包括但不限于最小化废料、最小化零件的重量以及最小化零件的合规性、应力或其他固有特性,并且用于将形状合成过程朝向更好的设计驱动。尽管不是必需的,但设计目标通常植根于设计的模拟(线性静态的、流体动力学的、电磁的等)。设计约束可包括在任何生成的设计中都应满足的多种几何和物理特性或行为(对单独零件或整个组件的要求也是可接受的);实例包括最大质量、最大负载下挠度、最大应力等。
设计标准还可包括形状的几何目标和几何约束。几何约束可由用户或从CAD程序116提供以确保实现形状的某些特性,例如,提供更容易制造的形状。例如,可限定几何约束以确保所生成的形状可没有微小特征。输入几何可包括在设计中应存在为表示与系统的其他零件的界面的保留区域的细节,或者标识应对其应用边界条件(例如,机械负载和约束)的位置。
此外,可通过使用设计参数和设计变量的不同组合来制定不同的生成设计过程。在一些实施方式中,设计参数可包括(例如,通过UI122接收的)各种类型的输入,诸如在由系统100中的CAD程序使得可用的不同生成设计合成方法之间进行的选择。在一些实施方式中,可用的生成设计合成方法可包括提供用于拓扑优化的基本水平集方法的基于水平集的拓扑优化。其他生成设计合成方法也是可能的并且可由系统100中的CAD程序提供。(例如)CAD程序116可响应于来自用户160的输入而使用设计参数和设计变量的不同组合。例如,用户160可选择不同的生成设计合成方法来在单个3D模型内的相应不同的设计空间内使用。
所获得180的一个或多个设计标准可包括将要从生成设计的零件制造物理结构的一个或多个使用中负载情况(例如,指定一个或多个使用中负载情况的一个或多个边界条件)。一个或多个使用中负载情况可与数值模拟的设置(例如,将要与正在生成设计的零件的优化3D拓扑一起使用的FEA模型中的元素的密度)相关联。然而,如本文所用,“使用中负载情况”通常是指在其下评估零件性能并且对应于各种类型的物理特性模拟(诸如流体流动模拟、电磁(EM)行为模拟、多物理特性模拟等)的多组边界条件的单独的多组负载和约束。因此,可使用各种类型的边界条件,例如,压力和/或速度边界条件。
总体上,数值模拟的设置可包括将要模拟的一种或多种物理特性和将要执行的一种或多种类型的模拟,以及潜在的替代建模或其他逼近方法。在一些实施方式中,数值模拟的类型是针对程序的所有用途或者鉴于生成设计过程已经从其启动的程序中的特定上下文预限定的。此外,数值模拟的设置可包括与将要执行的数值模拟的类型相关联的至少一组负载条件和/或其他物理环境信息。
最后,所获得180的一个或多个设计标准可包括建模对象的厚度规范。在一些情况下,厚度规范是最小厚度值,其指示将要生成的3D模型的最小可接受厚度。在一些情况下,厚度规范是最大厚度值,其指示将要生成的3D模型的最大可接受厚度。在一些情况下,厚度规范对应于厚度长度比,其指示局部厚度与3D模型在所述局部厚度的区域中的部分的长度的最小可接受比率。
在指定生成设计空间和设计标准的情况下,由例如CAD程序116使用一个或多个生成设计过程产生185一个或多个3D模型。在一些实施方式中,所产生的3D模型可被设计用于增材制造、减材制造(例如,使用2.5轴减材制造过程制造)和/或其他制造系统和技术,如上所述。由例如CAD程序116执行的一个或多个生成设计过程可包括拓扑优化的基于边界的生成设计过程(例如,使用水平集方法)、基于密度的生成设计过程(例如,使用SIMP方法),或两者。
在一些实施方式中,一个或多个生成设计过程可使用所描述的水平集方法,其中来自等式(1)、(2)和(3)的s表示使用一个或多个水平集隐式表示的实心区域的边界,所述一个或多个水平集可作为采样值存储在背景栅格或网格上。带符号的距离场是这种水平集函数的实例,其中零等高线表示形状边界,函数的正值对应于材料域外部的点并且量化点与最近域表面之间的距离,并且负值对应于材料域内的点并且量化点与最近域表面之间的距离。在基于水平集的拓扑优化方法中,由水平集函数的等高线表示结构的外部形状,并且由水平集函数值的变化表示形状和构型的变化。
在任何情况下,3D模型的产生185涉及:由例如CAD程序116基于厚度规范迭代地修改具有特征厚度控制的建模对象的生成设计的3D形状。这可包括:修改3D形状的几何和3D形状的拓扑(例如,添加孔或空隙以修改表面的不受连续变形影响的空间特性而不撕裂,因此改变形状元素在3D模型中界定和连接的方式)。在一些实施方式中,3D模型的产生185包括:使用体素化片和线骨架测量3D模型中的厚度。在一些实施方式中,3D模型的产生185包括:使用基于斜坡式缩放的厚度约束、使用体素化片和线骨架方法进行厚度测量或使用另一种方法进行厚度测量。在任何情况下,结果是例如用于与制造过程结合使用的至少一个生成3D模型。
可例如在显示装置120上的UI 122中将生成设计处理的结果连同接受或拒绝设计的选项190一起呈现给用户。例如,可在UI 122中将通过生成设计处理185产生的3D模型呈现给用户160。在一些实施方式中,用户可针对每个设计研究从最终设计或多种先前迭代中的任何先前迭代中进行选择。在一些实施方式中,可将通过生成设计过程产生的两个或更多个3D模型连同设计复杂性与制造成本的折中分析(例如,基于将需要的外部支撑结构的量,或多种其他感兴趣的量中的任何量)一起呈现给用户。折中分析可帮助用户160接受或拒绝所呈现的3D模型中的一个或多个3D模型。
如果设计被拒绝,则图1B的过程可返回以由例如CAD程序116获得180新的设计空间和/或新的设计标准以用于产生新的生成3D模型。一旦未拒绝设计190,图1B的过程就可通过例如CAD程序116提供195具有生成设计的形状和/或拓扑的对象的3D模型,以用于制造物理结构。提供195可涉及:将3D模型发送或保存到永久存储装置以用于使用制造系统制造对应于对象的物理结构。在一些实施方式中,提供195涉及:由例如CAD程序116使用3D模型生成195A用于计算机控制的制造系统的工具路径规范,以及由例如CAD程序116使用工具路径规范利用计算机控制的制造系统制造195B对应于对象的物理结构的至少一部分。在一些实施方式中,提供195可包括使用所生成195A的工具路径规范利用制造机器制造195B用于物理结构的模具,其中3D模型可以是将使用减材制造过程制造的模具的模型。
所提供195的3D模型可以是通过生成设计合成方法产生185的3D模型或生成设计输出的后处理版本。在一些实施方式中,可由例如CAD程序116将可从基于边界的生成设计过程的输出中提取的多边形网格或直接从基于边界的生成设计过程获得的生成设计数据转换成边界表示(B-Rep)模型和/或参数化特征模型。例如,生成设计数据可以是直接从基于边界的生成设计过程获得的水平集距离场数据。边界表示模型或参数化特征模型可作为草图几何和参数化特征进行编辑。例如,在一些实施方式中,可在提供195之前将通过生成设计合成方法产生的3D网格模型转换成防水B-Rep 3D模型。
图1C示出具有特征厚度控制的生成设计的过程中的迭代循环的实例。此实例表示在图1B的限定过程185中执行的拓扑优化。根据一个或多个设计标准对对象的当前3D模型(例如,3D形状的隐式表面的水平集表示)执行数值模拟185A,以产生建模对象的当前数值估评。如上所述,设计标准可包括可限定使用中负载情况或其他要求的边界条件(例如,压力和速度边界条件、拓扑演变的几何目标等),并且当前数值估评可用于建模对象的物理响应(例如,结构响应)。此外,如上所述,可执行各种类型的数值模拟。例如,FEA模拟可计算3D模型的当前版本的体积内各处的应变能。在任何情况下,当前3D模型的数值模拟都产生当前数值估评,所述当前数值估评然后可用于根据设计标准改变当前3D模型的形状和拓扑。
另外,测量185B目前3D模型的厚度。应注意,厚度测量185B可产生当前3D模型之上或之中的许多不同位置处的厚度值,并且不需要紧跟着数值模拟185A(或与之分开)。在一些实施方式中,厚度测量185B与数值模拟185A集成。此外,厚度测量185B可产生在当前3D模型的可响应于数值模拟185A改变的每个表面位置处的当前3D模型的厚度值,例如,针对表面上的每个点估计形状的局部厚度。在一些实施方式中,使用以下厚度测量技术中的一种或多种:(1)射线投射技术,(2)最大拟合球搜索,(3)滚球技术,以及(4)基于拉普拉斯算子的到中轴的距离的计算。
在一些实施方式中,使用基于体素化减薄的到中轴面的距离的过程。在此类过程中,针对当前3D模型的三维形状制备185B-1体素化片和线骨架。在一些情况下,这涉及:使用适当的腐蚀算法在单程中制备185B-1片骨架和临界线骨架,所述腐蚀算法并不移除线骨架的连接保留区域的环或部分。在一些情况下,这涉及:在两步过程中制备185B-1片骨架和临界线骨架,诸如下文结合图2A所描述。而且,应注意,用于生成厚度值的体素的尺寸/分辨率可与在数值模拟185A期间使用的任何体素的尺寸/分辨率相同或不同。
此外,可使用体素化片和线骨架针对三维形状限定185B-2厚度值。这可涉及:将体素化片和线骨架转变成逼近三维形状的中轴面的点;以及使用这些点生成厚度值。例如,针对骨架片中的每个体素,可通过使用水平集表示诸如带符号的距离场进行逼近来找到比所述骨架片体素的中心更靠近三维形状的真实中轴面的点,如下面更详细描述的。在一些实施方式中,使用这些细化骨架点生成厚度值涉及:搜索最靠近需要其厚度的表面点的骨架点,然后使用所述最靠近的骨架点的半径(或半径的两倍)作为表面点处的厚度,或计算表面点与所述最靠近的骨架点之间的距离(或距离的两倍),如下面结合图2A至图2L进一步详细描述的。
在考虑厚度约束的情况下更新185C 3D模型的3D形状。总体上,来自数值模拟185A的数值估评指示为相对于设计标准改进3D模型的3D模型中各种位置处(例如,3D模型的3D形状的表面上的位置处)的一定变化量,并且此指示用作形状更新185C的基础。例如,在一些实施方式中,建模对象的生成设计的3D形状包括建模对象的隐式表面的水平集表示,并且更新185C包括:根据基于当前物理估评针对隐式表面计算的形状变化速度来更新水平集表示。例如,可将体积内的应变能场(如通过数值模拟确定的)变换成体积的表面上的速度场,其中每个点处的速度将几何朝向更优的形状移动,并且可通过根据边界的每一块的速度移动这一块来平流输送3D形状以更新形状。此外,可在不同的处理阶段以不同的格式表示建模对象的3D形状,诸如使用立方体素的栅格表示3D形状以用于模拟,使用隐式形状表示以用于形状更新,以及使用多边形网格表示以用于导出生成设计。
在任何情况下,形状更新185C都将厚度约束考虑在内。可在各种实施方式中使用各种方法,包括:(1)当将来自模拟185A的数值估评变换成3D模型的形状/体积表面上的速度场时,使用考虑厚度规范的形状导数,(2)使用用于过滤速度场的启发法(例如,基于表面网格的启发法),以及(3)灵敏度或几何过滤。通常,应用厚度约束涉及:将测量厚度值映射到优化过程中的一定变化,例如,以惩罚和/或移除生成设计的过薄区域。
在一些实施方式中,修改185C-1速度场(其指定由建模对象的当前数值估评指示的变化量),然后使用修改的速度场来平流输送185C-2 3D模型的形状。通常,所述过程将在形状的边界上的每个点处测量的厚度映射到形状优化的每次迭代时的速度场的变化。在最低程度上,修改185C-1包括:当生成设计的三维形状的当前版本中的多个位置中的每个位置处的测量厚度符合厚度规范时,将在朝向厚度规范的方向上的(所述位置处的)形状变化减缓一定量,所述量是基于厚度规范与测量厚度之间的差。例如,对于最小厚度约束,所述过程可减缓已经接近最小特征大小的特征的收缩,并且在此类特征达到最小特征大小时停止它们的收缩。另外,所述过程可增大小于最小特征大小截止值的特征。下面结合图4A和图4B提供关于用于应用厚度约束的斜坡式缩放过程的另外的细节。
在形状修改循环的每次迭代完成之后,所述过程检查185D到最终形状的收敛。这可以是隐式收敛,如当迭代次数对应于将要完成的预限定形状修改迭代次数时,和/或当修改不再改变(或不再显著改变)3D形状并且因此另外的迭代将不改进3D模型时。另外地或另选地,检查185D可以是通过评估当前3D模型是否满足形状和/或拓扑优化的设计标准来检查显式收敛。如果尚未实现(隐式或显式)收敛185D,则开始优化循环的另一次迭代。一旦已经实现(隐式或显式)收敛185D,则提供185E对象的生成设计的3D模型,例如以用于制造。
图2A示出用于测量3D模型中的厚度的基于体素化减薄的到中轴面的距离的过程的实例。计算200三维形状的体素化片骨架。这可使用被设计来计算体素化中轴面的减薄算法(诸如Building Skeleton Models via 3-D Medial Surface/Axis ThinningAlgorithms;Lee,Ta-Chih和Kashyap,Rangasami;6,s.l.:Academic Press,Inc.,1994;CVGIP:Graphical Models and Image Processing,第56卷,第462-478页(以下称为“Leeand Kashyap算法”)中所描述)进行。体素化中轴面是3D形状的中轴面的粗略逼近。在概念上,中轴面(也称为“片骨架”)是距离形状边界上的两个或更多个最靠近的点等距的一组点。
图2B示出形状200A的中轴的实例。此实例是二维的,以便于呈现,但将了解,2D中的形状的中轴对应于3D中的形状的中轴面,在3D中,2D圆被3D球体代替。可通过创建一组圆200B在视觉上寻找中轴,所述一组圆200B在两个或更多个位置与形状的边界相切并且完全包含在形状内。这种圆的中心是距离形状的边界上的两个点等距的点,因此内切圆的中心的集合200C相当于形状的中轴。同样,一组球体(在两个或更多个位置与3D形状的边界相切)相当于3D形状的中轴面。
一旦建立了中轴面,就可通过检查与边界上的所述点接触的球体的直径来计算形状边界上的厚度。然而,以计算上有效且稳健的方式寻找3D形状的逼近中轴面并不简单,尤其是当3D形状在迭代优化过程中不断演变时,并且在一些情况下3D形状具有非常复杂的拓扑。为了提供以计算上有效的方式提供高质量结果的稳健算法,必须考虑若干因素。
首先,中轴面的逼近应由充分覆盖实际中轴面所需的尽可能少的点组成。图2C示出形状的中轴面的逼近的实例(为了便于呈现以2D表示)。在图2C中,形状用实线表示,实际中轴面用虚线表示,并且中轴面的逼近用小圆表示。将实例202A与202B进行比较,注意到:实例202A与实例202B相比具有更多的用于逼近的数据点(小圆)。因此,实例202B相对于第一考虑因素优于实例202A,原因在于实例202B具有中轴面的仍然充分覆盖中轴面相对薄的逼近。
第二考虑因素是逼近的数据点应定位成距离形状上的对应边界等距。因此,实例202C优于实例202B,因为逼近的数据点更准确地跟踪实际中轴面。但第三考虑因素在于:在没有间隙/孔或缺失区域的意义上,逼近应是“连续的”。因此,实例202D是不可接受的,因为它包括缺少数据点来逼近形状的中轴面的区域。这些考虑因素产生了折中,因为为产生既高度准确又薄的中轴面逼近而付出的努力也可能增加在中轴面逼近中留下间隙和孔或甚至完全缺失区域的机会。
这在形状和/或拓扑优化的上下文中可能是关键的。使用包括间隙和孔的中轴面逼近可能会导致降低所产生的3D形状的质量的表面噪声,并且可能会引入未检测到的对厚度约束的违反。使用具有缺失区域的中轴面逼近可能会导致梁断裂,从而阻止了生成设计过程寻找最佳拓扑。此外,当在拓扑优化期间使用基于中轴面逼近的厚度测量时,两个附加的考虑因素开始起作用。
在一些实施方式中,厚度测量被设计来拒绝形状的“不重要”特征,这可能会导致伪影冻结和保留,而不是随着拓扑优化的进行而随时间推移消失。例如,在机械合规性最小化的上下文中,当3D模型包括一个或多个“指状物”(其是不与其他任何东西连接并且因此不能用作负载路径的从形状突出的突起)时,拓扑优化过程应移除3D形状的这些部分,并且厚度测量过程不应阻止移除的发生。此外,厚度测量可被设计来区分当前3D形状的薄材料片的两个面与所述薄材料片的边缘。例如,当使用最小厚度约束时,应防止薄材料片的两个面变得更靠近彼此,但片边缘应在每次形状变化迭代中自由移动。然而,应注意,在应用厚度测量过程的上下文中,形状的“不重要”特征可能会改变;并且在一些实施方式中,拒绝“不重要”特征可能不相关,并且因此可消除厚度测量的此方面,诸如在传热拓扑优化问题(例如,设计散热器)的上下文中,或者在厚度可视化或者拓扑优化以外的某一其他应用的上下文中。
在任何情况下,使用减薄算法来计算当前3D模型的体素化中轴面解决了第一考虑因素和第三考虑因素,因为可快速计算没有间隙/孔或缺失区域的中轴面的相对薄的逼近。减薄算法通过取得平滑3D形状并且将其表示为一组固定大小的离散体素来起作用。根据确保减薄形状的拓扑与输入形状的拓扑相匹配的一组规则从形状的表面连续地移除体素。应注意,使用Lee和Kashyap算法提供一种变型,其进一步剔除体素,直到仅留下单体素宽的“中轴”。虽然中轴面是嵌入3D空间中的2D流形(一组弯曲表面),但中轴被修整,直到其仅由曲线(1D流形)组成。与中轴面一样,中轴保留了输入形状的拓扑(孔、环和梁都得以表示),并且在一些实施方式中,可使用Lee和Kashyap算法的此功能性。
返回图2A,计算205三维形状的体素化线骨架。这可使用Lee和Kashyap算法或使用另一种减薄算法来进行。在一些实施方式中,体素化线骨架包括将三维形状的不同部分彼此连接的一个或多个线段。例如,当存在一个或多个保留区域时,可计算205体素化线骨架,其中一个或多个保留区域需要在结果中,这意味着所产生的线骨架将与一个或多个保留区域中的每个保留区域连接。当没有保留区域时,所计算205的体素化线骨架是在腐蚀任何有末端的分支的所有体素以便保有拓扑的将拓扑的其他部分彼此连接的任何部分之后所剩下的线骨架,即,环连接拓扑的不同部分,因此需要将形状保持为有凝聚力的整体,同时消除线骨架的形成指状物或设计的其他“不重要”特征的区域。
图2D示出三维形状206的体素化片骨架206A和三维形状206的体素化线骨架206B的实例。应注意,当存在一个或多个保留区域时,在计算200三维形状的体素化片骨架时,这些区域不需要存在于结果中。事实上,这样做可能会导致片骨架偏离三维形状的实际中轴面。因此,可通过将计算200和计算205作为明确分离的操作而不是将它们组合到一个操作中进行来提高过程结果的准确性,诸如首先使用Lee和Kashyap算法将体素腐蚀成体素化片骨架,然后将此体素化片骨架腐蚀成体素化线骨架。
此外,在一些实施方式中,当210线骨架中存在不在片骨架中的体素时,跟踪215这些体素以备后用。在任何情况下,从体素化片骨架移除220边远体素,然后将体素化线骨架的体素添加225到体素化片骨架以形成三维形状的体素化片和线骨架,以用于测量3D模型的局部厚度。移除220可涉及:移除与三维形状的体素化片骨架中的片边缘相关联的体素。在一些实施方式中,从片骨架腐蚀的体素的数量是调谐参数,其中更强的腐蚀增加边缘处的厚度量度,从而避免对薄片边缘处的形状变化的所不期望的限制。移除220可涉及:移除形成三维形状的体素化片骨架的一个或多个体素化线骨架的体素。因此,可移除当前形状中的“指状物”的体素,这有助于在拓扑优化过程期间消除所不需要的从3D形状突出的突起。
图2E示出体素化片和线骨架的另一实例。(例如,使用Lee和Kashyap算法)计算200三维形状227的初始体素化片骨架227A。此片骨架227A中与片的边缘227B和退化线段227C相关联的体素被标识并移除220。移除骨架片的边缘隐式地增加了片边缘的测量厚度,这在使用最小厚度要求的拓扑优化的上下文中是所期望的,因为片的边缘未被阻止收缩,即使片的内部被阻止收缩(但应注意,在一些上下文(例如,将厚度量度用于可视化应用)中,不进行移除220,因为需要对整个3D模型进行精确的厚度测量)。骨架片边缘的移除220还降低了有时存在于骨架片的边缘周围的噪声。存在于基片骨架中的一个或多个线骨架的一些线段也是由算法中的噪声或对形状的结构不重要的从零件突出的突起(诸如人工突起227C)引起的。
为了标识重要的线骨架线段,(例如,使用Lee和Kashyap算法)计算205三维形状227的体素化线骨架227D,其中每个保留主体227E都需要存在于结果中。因此,可通过以下方式产生最终的体素化片和线骨架227F:减去220针对三维形状227标识的所有片边缘227B和线骨架线段227C,添加225回体素化线骨架227D,并且最后移除所有保留主体227E以产生最终的体素化片和线骨架227F。
应注意,在一些实施方式中,体素化片和/或线骨架的计算200、205仅针对3D形状的需要测量的区域进行,而不是针对整个3D形状进行,以便减少计算的次数并且因此提高处理速度。例如,在应用最小厚度约束的上下文中,仅需要在从最大值(其根据最小厚度值设定)一直到零的厚度值范围内测量厚度。因此,为了加快处理,可使用带符号的距离场(SDF)来隔离距离边界比将要测量的最大值更远的内部体素的一个或多个区域,然后可出于骨架计算、细化和所有后续操作的目的而忽略这一个或多个区域,即,可将中轴面、中轴和其他计算限制到3D模型中的感兴趣的那些部分,这些部分由于它们距离3D形状的边界并不比最小厚度规范的一半加上任选的缓冲量更远而是感兴趣的。在一些实施方式中,标识一组“远体素”(与小于最小厚度的一半的负数加上一个体素左右的SDF值相关联的体素),并且这组远体素需要包括在线和片骨架计算中(以与保留区域包括在临界线骨架计算中的方式相同),使得减薄算法不花费迭代来移除它们。然后,在继续进行后续步骤之前,从所得片和临界线骨架中减去远体素。
在任何情况下,虽然减薄算法的使用确保最终的体素化片和线骨架提供3D模型的在任何保留区域之外的所有部分(或所有相关部分)的一组或多组连接的体素,但这些体素的中心通常并不恰好位于3D模型的中轴面上。由于这可能导致实际上与真实中轴面相距相同距离的不同表面上的不同厚度量度,因此可采用细化过程来生成更紧密地遵循真实中轴面的最终的一组点。
返回图2A,将体素化片和线骨架转变230成更好地逼近3D模型的中轴面的点。在一些实施方式中,寻找232逼近3D形状的中轴面的第一组点,然后通过将点的位置值和/或“半径”值改变成来自其邻点(紧邻的点或在点的预限定距离内的所有点)或来自其邻点及其本身的数据值的平均值或中值来平滑234第一组点的数据值。其他平滑234操作也是可能的,诸如选择每个邻点应对加权平均结果造成的影响的加权。应注意,骨架点的此平滑234可提高最终3D形状的表面质量,然而此平滑是任选的并且在一些应用中可能不需要。例如,噪声数据值在生成用于动画制作的3D表面中可能不是所不期望的,并且可被放大。应注意,点的位置在设计空间的坐标系中,并且点的“半径”对应于所述位置处的厚度的一半,例如,在水平集实施方式的情况下,所述点处的带符号的距离场值的负值。
另外,在一些实施方式中,跟踪215体素化线骨架的在移除220之前不在体素化片骨架中的体素,并且这些体素提供第二组点(例如,这些体素的中心点),所述第二组点可能不需要或不可能进行细化(例如,在带符号的距离场中找不到峰值,如下文详细描述的)。这些体素是将形状保持为有凝聚力的整体(例如,连接保留区域)所需要的,并且存在其中这些添加的线骨架线段实际上并不接近3D模型的中轴面的情形。因此,这些体素可用于提供可防止优化器在保留区域附近进行所不期望的减薄的厚度量度。
为了解决上面提到的第二考虑因素(逼近的数据点应定位成距离形状上的对应边界等距),将骨架片中的体素转变230成骨架点位置可包括:将由体素指示的点(例如,体素中心点)细化成更靠近3D形状的中轴面。在基于水平集的实施方式中,可使用来自水平集的信息来细化骨架点位置。在一些实施方式中,此过程涉及:使用线性逼近来逼近骨架体素的邻域中的带符号的距离场,然后寻找两个线段之间的交点。这提供了位置的估计和非常靠近中轴面的附近点处的带符号的距离场值(在实验上,这通常精确到约0.1体素宽度)两者。
图2F示出用于将骨架点细化成更靠近3D形状的中轴面的射线投射和极值估计的几何上下文。考虑输入形状231的体素化骨架232A。所述算法针对每个骨架体素运行一次;在此实例中,处理突出显示的骨架体素1。寻求非常靠近输入形状231的真实中轴2(并且尽可能靠近起始体素)的点。为此,可在方向3(例如,沿逆风梯度方向)上投射射线,所述射线从体素的中心(或在体素中或其附近(例如,在体素的一个体素的距离内)的另一点)开始并且朝向中轴面前进。此射线与真实中轴的交点4是算法的预期输出。
图2G示出带符号的距离值场对沿着梯度方向的距离的绘图。在此绘图中,x轴表示沿着射线行进的距离,并且Y轴是带符号的距离场值φ。射线的起始点可以是体素(图2F中的体素1)的中心点,并且对应于图2G中的点A。可沿着负梯度方向采样两个点(B1和B2),并且可沿着正方向采样两个点(C1和C2)。可将线拟合到每对点,从而分别形成线B’和C’)。只要带符号的距离场不改变得过快,这两个线段之间的交点234A就逼近射线与中轴面的交点(图2F中的点4)。应注意,点A不在两条线B’和C’中的一条线上,因为投射射线在相对于体素栅格的对角线上射出(不是对实际体素进行采样),并且数据都是插值的,这意味着A不是纯数据,而是其邻点的某一线性组合(应注意,由于带符号的距离场的高曲率,三线性插值的准确性在接近中轴面处降低,这意味着接近中轴面的插值通常由于采样点位于中轴面的相反侧上而被高估)。因此,由于使用了插值,A很少落在两条线中的一条线上。关键点在于线性插值允许得到与A相比更靠近中轴面的点,并且还会更准确地估计带符号的距离场的值。
在一些实施方式中,估计极值可涉及:搜索逆风梯度的方向或幅度的变化。应注意,寻求最大值还是最小值将取决于线性逼近的Y轴是表示半径值(SDF值的负值)还是SDF值。在任何情况下,所估计的带符号的距离场值φp都提供对3D模型在此点处的厚度的估计。应注意,当映射回3D模型的表面时,使用子体素位置,因为输出点在3D空间中,而不是体素坐标中。
在一些实施方案中,此细化程序使用1D细化程序来实施,所述1D细化程序是将从其开始搜索程序的体素(位于最终的体素化骨架上,或是所述体素的相邻体素)的中心以及进行搜索的方向作为输入的函数,其如下限定:
表1
此例程中的三个关键函数是:Localize,其试图沿着搜索方向寻找尽可能靠近带符号的距离场的谷底的体素;Refine,其使用线性逼近来估计距离中轴面的交叉点的坐标和与边界的距离;以及MeasureQuality,其为此中轴面交点产生可用于如稍后描述的后续步骤的质量量度。
Localize函数可用于解决以下事实:有时图2G中的点A不够靠近中轴面以使点B1和B2以及C1和C2落在中轴面交叉点的相反侧上。例如,如果点C1落在中轴面的与两个点B1和B2相同的一侧上,则线性逼近C’将不会与中轴面相交,并且两个线性逼近B'和C’的交点将不够靠近3D形状的实际中轴面(例如,距离中轴面超过半个体素)。在一些情况下,这由于产生二进制形状时的离散化误差和减薄算法中材料移除速率的轻微不规则性而可能发生。
为了解决此问题,可使用第一定位操作从输入位置沿着搜索方向(向前或向后)移动,并且试图标识尽可能接近中轴交叉点的体素。应注意,只需要标识与中轴交叉点相邻的体素中的一个体素,即,标识点A或C1中的任一者;不需要最靠近中轴面的体素。因此,在一些实施方式中,使用以下Localize程序:
表2
表2的Localize程序由三个部分组成。首先,在起始点的任一侧上对带符号的距离场进行采样,以确定哪一方向距离形状边界更远,这对应于更负的带符号的距离场。接下来,沿着移动方向以一个体素的增量收集一系列带符号的距离场(SDF)样本,这从在相反方向上的一个体素的后退步长开始,并且将结果存储在多对{s值,SDF值}的列表中。最后,(例如)使用一阶中心有限差分计算二阶导数,并且返回最大二阶导数值及其对应的样本点(应记得,SDF值从负斜率转变为正斜率,因此二阶导数在交叉点附近应是大的且正的)。
图2H和图2I示出此沿着搜索方向寻找尽可能靠近带符号的距离场的谷底的体素的过程。图2H示出沿着搜索方向的带符号的距离场上的样本S,由s用参数表示。在第一步中,给定起始点(s=0),所述过程在任一侧进行采样以计算φ-和φ+(在代码中分别为minusVal和plusVal)。发现φ+距离形状边界更远,选择正移动方向。接下来,通过以甚至多个体素的增量改变s来沿着方向dir收集带符号的距离场的一系列样本(这些样本是图中的Sj,并且作为样本存储在代码中)。应注意,第一样本是在负移动方向上的一个体素(即,在s=-1)处取得的。
图2I示出由样本索引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) |
这使用搜索起始点B1和搜索方向d
Refine例程的最终输出是两条线之间的斜率变化的量度。这计算为
另外,在一些实施方式中,对此算法的进一步细化涉及:调节用于产生两条拟合线的点的位置,以在高曲率区域中产生更好的结果。在高曲率区域中,使用相邻样本(例如B1和B2)逼近每条线B′和C′可能会引入误差,因为分段线性公式无法充分逼近带符号的距离场。在此类情况下,可使用远离中轴面交叉点的更少数据获得更好的线逼近,例如,通过使用点A代替点B2来形成线B′。这可通过在中轴面的每一侧上生成多于一个线逼近并且使用具有更陡斜率的线逼近来进行。
一旦Localize和Refine例程完成,就可给通过搜索找到的中轴点分配质量。质量是一种启发法,其试图平衡搜索方向垂直于中轴面的程度(更加垂直的搜索由于更大的斜率变化而产生更加准确的中轴面位置估计)和在起始点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返回逆风梯度的估计,并且可能地更新搜索的起始点(这在下面进一步讨论)。如果搜索例程由于上一节中标识的任何原因而失败,则候选无效。在倒数第二行中,搜索例程检查候选结果的列表并且定位具有最大质量量度的结果,除非所有搜索都失败(在这种情况下,结果是原始点)。
应注意,将由体素指示的点细化230成更靠近中轴面不需要局限于初始点到细化点的一对一映射,如上所述。因此,每个初始点的细化230可产生位于中轴面上(或非常接近中轴面)的两个或更多个点,并且这些附加点然后可用于厚度计算。例如,表3中伪代码倒数第二行中的搜索例程可返回所有可行的细化点坐标。此外,不需要针对每个骨架体素调用3D细化例程,并且gradSearch参数可取决于正在分析的骨架体素的种类。
在一些实施方式中,对骨架体素进行分类并且可针对不同类别的骨架体素不同地处理细化。如上所述,最终的体素化片和线骨架包括与计算205的线骨架结合225的修整220的片骨架。通过检查体素的来源,可将每个骨架体素分类到以下三个类别中的一个:(1)片骨架体素是属于修整的片骨架的那些体素;(2)线体素是在修整前属于线骨架和片骨架但在修整后不包含在片骨架中的那些体素;(3)非中轴面体素是在修整前属于线骨架但不属于片骨架的那些体素。
标识非中轴面体素很重要,因为它们表示包括在骨架中以确保保留形状的连接性(例如,保留区域之间的连接)的体素,即使几乎没有实际上接触保留区域的中轴面。在这些区域中,尝试细化230骨架是没有意义的。不应细化不在中轴面附近的体素。在这些情况下运行细化算法要么会失败,要么得到中轴面的某一其他附近区域并且扭曲算法的意图。
片骨架体素可使用3D细化算法,其中gradSearch参数设为假。在这些区域中,虽然在梯度方向上搜索可能会产生与中轴面的质量稍高的交点,但是沿着设定数量的不同的预限定方向(例如,至少三个正交方向,诸如基本(x,y,z)方向)进行搜索且然后基于质量选择交点将产生足够好的逼近,并且具有以下优点:3D模型的片区域中的大多数(如果不是全部)骨架体素将使用与它们的相邻骨架体素相同的搜索方向来生成细化(交叉)点。此搜索方向一致性降低了细化骨架点的位置中的点-点噪声,并且有助于细化骨架点保持更均匀地分布在中轴片上。当在gradSearch设为真的情况下运行时,例如,针对线体素,3D细化程序将使用梯度搜索方向,并且如果梯度搜索失败,则仅回退到在设定数量的不同预限定方向上进行搜索。这避免了以下情况:在预限定方向(例如,基本方向)中的一个预限定方向上的搜索可能返回具有更高质量的结果并且取代(优选的)梯度搜索结果。
图3A示出对从3D模型的体素化片和线骨架中的体素获得的点进行选择性细化的过程的实例。图3A的过程是将体素化片和线骨架转变230成逼近3D模型的中轴面的点的实例。对体素化片和线骨架中的每个体素执行300图3A的过程,但是所述过程根据体素是片骨架体素(属于修整的片骨架)、线体素(在修整前属于片(加线)骨架,但在修整后不包含在片骨架中)、还是非中轴面(NMS)体素(在修整前属于线骨架但不属于片骨架)而变化。
针对每个NMS体素,使用302所述体素中的点(例如,体素的中心点)作为测量局部厚度所处的点(例如,因为对从此类体素生成的点进行位置细化可能是不可能的)。针对片点,执行多向搜索。针对每个片体素,检查310预限定方向(例如,至少三个正交方向,诸如基本(x,y,z)方向)中的每个预限定方向以查看哪个方向(如果有的话)是最好的。从与体素相关联的初始点沿着下一个方向投射312射线。在一些实施方式中,初始点使用上述Localize程序来确定。然后,通过寻找使用此投射射线生成的第一线性逼近与第二线性逼近的交点来估计380水平集表示中的值的极值。在一些实施方式中,估计380使用上述Refine程序来执行。
估计380过程可涉及:产生382水平集表示中的值的近侧线性逼近(即,在中轴面的更接近中轴面的初始点的一侧上);产生384水平集表示中的值的远侧线性逼近(即,在中轴面的与初始点的那一侧相反的一侧上);以及寻找386近侧线性逼近与远侧线性逼近的交点以及交点的质量值。例如,可如上所述执行产生382、384和寻找386,其中质量值是基于投射射线相对于中轴面的垂直度以及初始点与交点之间的距离。参见例如表3中的伪代码和对应描述,以及等式9。应注意,使用方向二阶导数和两条拟合线之间的斜率变化作为中轴面与投射射线之间的正交性的代替物只是一个可能的质量量度。
通常,质量量度从候选点相当靠近将要定位的中轴面(即,误差较低)的可能性开始。由于实际中轴面位置是未知的,因此所述算法可考虑将导致结果置信度低的一个或多个条件。质量的第一方面可由带符号的距离场的线性逼近中固有的假设(即带符号的距离场的行为是线性的)驱动。如果中轴面是弯曲的并且射线沿着梯度以外的方向投射,则此假设无效,但如果射线沿着(或几乎沿着)带符号的距离场的梯度投射,则线性逼近是合理的。然而,在起始点处沿着梯度投射并不完美,因为中轴面交叉点的另一侧上的梯度(通常)将具有不同的方向,因此沿着局部梯度方向投射的射线可能会与中轴面交叉点的远侧上的梯度不对齐。因此,最好的情况情形是垂直于中轴面投射射线,这在中轴面交叉点的两侧上就梯度而言产生小方向差。
因为随着两条线之间的斜率变化的增加,线-线交点的数学精度提高,所以出现质量的第二方面。如果分母保持相对较大,则在数据点φi(其通过斜率项直接和间接使用)的准确性的给定不确定性下,等式5的值tp将具有更低误差。随着分母的缩小,tp的值对带符号的距离场中的小误差变得更加敏感。
这些质量考虑因素都表明:垂直于中轴面投射的射线将给出误差最低的估计。由于中轴面的实际取向是未知的,因此可使用一个或多个代替量度来估计射线和中轴面的正交性。这些可包括:(1)斜率变化程度,如通过比较两条线之间的斜率所测量的,因为众所周知,当射线与中轴面倾斜交叉时,斜率变化极小,并且垂直于中轴面的交叉在斜率上具有对应地更大的变化;以及(2)中轴面交叉点上的带符号的距离场的估计二阶导数,如在Localize函数中所测量的。同样地,二阶导数越大,投射射线“迎面”遇到中轴面的可能性越大。其他量度也是可能的。例如,可检查拟合线的斜率的对称性,即,两条拟合线是否大致对称,一条拟合线具有另一拟合线的斜率的大致负数。作为另一实例,可在两侧上对逆风梯度进行采样,并且与搜索方向进行比较,以得出关于中轴面交叉的正交性的量度。
质量的第三个方面不是源于预测的准确性,而是源于逼近中轴面的点的散布的均匀性。期望具有细化点的均匀散布,但如果允许搜索沿着任何特定搜索方向过远地延伸,则可能会得到中轴面的具有更大斜率变化的另一分支。为了解决此问题,可包括在起始点与线交点之间行进的距离的量度作为质量量度的分量。因此,越靠近起始点越弱的斜率变化是有利的,以便避免在中轴面的细化逼近中出现大间隙。
可使用以下这些质量量度中的一个或多个质量量度来构造各种质量值:二阶导数、斜率变化以及与起始点的距离。这些不同质量值之间的差异可取决于将给予每个质量量度的重视程度。在一些实施方式中,使用二阶导数、两条线之间的角度(其可作为Δm的反正切求解)和所行进的距离的加权和,例如,如等式9中详述。在各种实施方式中,可使用许多其他质量函数来估计交点的质量。
执行多方向搜索,直到处理310了所有方向,然后进行检查314以确定在不同射线投射方向上找到的任何交点是否具有足够的质量。如果是,则选择316交点中的至少一个交点以用作片骨架的一个或多个细化点。如果不是,则使用302体素本身中的点(例如,体素的中心点)或与体素相关联的初始点作为要使用来测量局部厚度的点。应注意,足够质量检查可作为对上述质量量度中的每个质量量度的隐式检查来实施,诸如通过使用嵌入定位和细化函数中的检查。如果这些检查中的任何检查失败,则搜索终止,视为不成功。例如,搜索距离可由Localize函数的最大(例如,4个)体素的遍历来限制,可在Localize函数之后检查二阶导数值,并且如果二阶导数值不够大(例如,最小0.25),则终止搜索,并且如果两个斜率过于靠近在一起(例如,Δm<0.01),则Refine函数终止。应注意,在不同实施方式中,诸如在每输入体素将要保留多于一个中轴面逼近的情况下,可使用单独分量的计算质量的不同下限。在特定实施方式中,设定阈值是运行一些实验并且调谐结果以实现准确性和中轴面覆盖的期望平衡。
此使用预限定方向(例如,基本(x,y,z)方向)的过程具有以下优点:相邻骨架片体素将大多使用相同搜索方向,并且因此在相同方向上(朝向中轴面)细化它们的点,因此降低用于厚度测量的细化点中的噪声。相反,当接近线骨架时,沿着x、y和z方向的搜索可能会产生起伏的或混叠的厚度测量,因为骨架点位置根据哪个细化方向给出更好的质量而在细化方向之间切换。对于3D模型中的线骨架区域,中轴面实际上可能是更难命中的线性中轴,并且因此在基本(X,Y,Z)方向上搜索除了潜在地在线骨架区域中引入噪声之外还可能会一起错过中轴。
因此,对于线点,执行梯度优先搜索,这从在逆风方向上投射射线开始,然后在逆风方向没有产生可用结果的情况下回退到多方向搜索。针对每个线体素,在对应于从体素或其相邻体素计算的逆风梯度的方向上从初始点投射320射线。然后,通过寻找使用此基于逆风梯度的投射射线生成(如上所述)的第一线性逼近与第二线性逼近的交点来估计380水平集表示中的值的极值。然后进行检查322以确定找到的交点是否具有足够的质量(例如,使用上述的相同标准)。如果是,则使用324交点作为片骨架的细化点中的一个细化点。如果不是,则所述过程回退到针对此线体素的多向搜索。
图3B示出如何限定和计算3D模型的水平集表示中的逆风梯度,如可用于表3中的UpwindGradient函数。逆风梯度(如这里所用)寻求背离中轴面(即,朝向形状的外部)的方向上的梯度。需要描述最大水平集值增加的方向的梯度的量度。背离中轴面,中心有限差分效果很好,但接近中轴面,如果有限差分的模板跨越中轴面,则所计算的梯度的方向和大小可能不正确。因此,背离中轴的梯度的中心有限差分估计340提供与实际梯度场对齐的结果,但是接近中轴的梯度的中心有限差分估计342提供与中轴的两侧上的任一实际梯度场都不对应的结果。
在图3B中,体素由框表示,带符号的距离场值是框中的数字,虚线框是用于阴影体素的梯度计算的模板中的那些,并且每个粗箭头表示计算梯度的方向。粗线是形状的边界,并且中轴和实际梯度场如图3B中注释。
在1D中,经典逆风有限差分计算344使用前向346或后向348有限差分公式(这取决于哪个邻点具有更大的带符号的距离场值(离中轴面更远)),因此提供逆风有限差分350。在2D中,此逻辑适用于模板的每个轴。例如,使用x方向上的具有更大带符号的距离值的任何邻点,以及y方向上的具有最大带符号的距离值的任何邻点,并且对于z也是如此。但是此经典有限差分在有效模板(用于计算有限差分的一组邻点)跨越中轴面的情况下仍然存在困难,如跨越中轴面的梯度的经典逆风有限差分逼近352所示(应注意由于选择具有更大带符号的距离场值的邻点而导致的缩减模板)。这是(原本简单而巧妙的)逆风梯度计算的根本弱点。如果使用了不正确的梯度方向,则搜索将沿着与中轴面相切的线查找,这可能会导致搜索程序和所得骨架中的点的分布出现问题。
为了避免此风险,可将搜索的起始点移动到距离中轴更远的相邻体素。在此新起始点处,可按照通常的方式计算逆风梯度并且获得准确的结果。1D细化算法中的定位步骤仍然可容易地寻找中轴面交叉点,即使它远了一个体素。因此,在一些实施方式中,寻找354具有离散拉普拉斯算子(其度量二阶导数的大小,或度量梯度的净变化)的最低值的相邻体素,然后将其用作356搜索程序的修正起始点。
应注意,此方法可能不适用于中轴片,因为多于一个骨架体素可包括具有最低拉普拉斯算子值的相同的最近邻点。如果出现这种情况,则所得中轴面点会发生“聚集”,从而降低均匀性,或甚至在中轴面测量中引入明显的间隙。因此,在一些实施方式中,仅当在线骨架的区域中时使用逆风梯度搜索方向。尽管如此,中轴周围的带符号的距离场通常具有至少一个主曲率凸起,这显著增加了每个骨架体素将寻找唯一的最低拉普拉斯算子邻点的可能性。
另外,如上所述,为了降低噪声,在完成骨架细化后,可使点骨架平滑,例如,通过重复地对每个骨架点的位置(以及任选的半径)与(a)其邻点(紧邻点或所述点的预限定距离内的所有点)或(b)其邻点和本身的位置(以及任选的半径)求平均;这可降低或消除中轴面的估计中所剩余的任何误差。图2J示出图2E的三维形状227的最终点骨架227J(在已经执行修整、增强、细化和平滑操作之后)。返回图2A,使用点骨架(即,使用至少逼近3D模型的中轴面的点)生成240厚度值。在一些实施方式中,生成240涉及:搜索最靠近需要其厚度的表面点的骨架点,然后使用所述骨架点的半径(或半径的两倍)作为表面点处的厚度,或计算表面点与最靠近的骨架点之间的距离(或距离的两倍)。
因此,生成240可包括:计算242 3D模型上的表面位置与第一组细化中轴面点之间的距离;以及计算244表面位置与所跟踪215的体素的第二组点(例如,体素化线骨架的在移除220之前不在体素化片骨架中的体素的中心点)之间的距离。应注意,计算242、244不需要是单独的操作,并且可使用NMS、线和片骨架点的并集合并到单个操作中。在一些实施方式中,使用点的半径值,则生成240涉及:例如使用加速搜索的KD树或八叉树寻找离每个表面位置最近的骨架点,并且使用此点的半径值(或半径值的两倍)作为表面位置处的测量厚度。应注意,无论厚度是基于骨架点与表面之间的距离还是基于骨架点的负的带符号的距离场值限定的,都可使用搜索加速(例如,使用KD树或八叉树)。
在水平集实施方式中,生成240可涉及:使用“校正的”水平集表示计算3D模型的表面处的厚度值。点骨架(例如,点骨架227J)是3D模型的中轴面的重要部分以及任选的3D模型的其他重要部分(诸如与一个或多个保留区域连接的部分)的高质量逼近。这些点中的每个点具有基于水平集表示的SDF的相关联厚度(例如,点“半径”值)。虽然这些厚度值可按原样用于例如计算3D模型的统计数据,但3D模型的表面处的厚度的量度用于在形状(以及任选的拓扑)优化期间强制实施厚度约束。
图2K示出使用3D模型246A(为清晰呈现而表示为简单的2D梯形)的加厚水平集表示生成3D模型246A的表面处的厚度值的实例。表面点s处的厚度值可限定为2|p-s|,其中p是最终点骨架中的最近点。但不是进行搜索以寻找点p,而是使用校正的水平集表示,这可提高稳健性并且减少厚度计算的处理时间。制作输入3D模型246A的副本,并且针对最终骨架中的每个点,对副本执行球体(以所述点为中心)的布尔并集以形成加厚水平集表示246B,其中这些球体的直径可设定为等于要测量的最大厚度,例如tmin+∈+Δ。然后使用输入水平集场φ和校正的水平集场C之间的差来计算246C厚度。应注意,在点A处,厚度可估计为tA=2(rmax-(φ(A)-C(A))),其中rmax是要测量的最大厚度的一半。在点B处,两个水平集是相同的,因此此点处的厚度必须大于或等于2rmax。
应注意,此厚度量度的不同公式是可能的,例如,使用要测量的最大厚度而不是rmax。在任何情况下,计算水平集表示之间的差以确定输入水平集表示在局部比加厚水平集表示薄的程度。图2L示出三维形状227的表面处的水平集差测量厚度的实例。应注意分配给位置A处的突起(其在修整时被移除)的人工厚度值,以及分配给中央片的边缘和拐角(诸如位置B)的相对更大的厚度。
尽管如此,虽然可在各种实施方式中使用上述基于体素化减薄的到中轴面的距离的过程的一个或多个方面,但替代地可使用其他厚度测量技术进行3D模型的形状优化或形状和拓扑优化,如结合图1C所述。通常,下面描述的厚度约束技术(称为用于应用厚度约束的斜坡式缩放过程,其可在3D模型更新185C中实施)可使用用于测量3D形状的表面处的厚度的各种技术(包括过去已经在不同约束公式中使用的现有技术厚度测量技术)中的任一种。因此,虽然结合用于应用厚度约束的斜坡式缩放过程使用基于体素化减薄的到中轴面的距离的过程存在优势,但是许多不同类型的厚度测量可与斜坡式缩放过程一起使用。而且,如本文档别处所指出,反之亦然:基于体素化减薄的厚度度量可与其他约束公式一起使用。
例如,可采用逼近中轴面的过程的变型。拉普拉斯算符可用于在水平集场中寻找高曲率区域,所述区域对应于接近骨架的点。这些可用来代替通过减薄算法选择的点。Voronoi图可用于从3D固体提取中轴片。可使用将球体拟合到内部以寻找骨架的点的启发式方案。此外,此类方法可与上面呈现的细化、增强和映射算法中的一者或多者相结合,或者单独使用以产生表面测量方法。
上面呈现的修整和增强算法可用另选方法代替。例如,可使用路径寻找算法来连接保留区域,而不是腐蚀成体素化线骨架。可使用另一种方法来选择要移除的片骨架的边缘,诸如检查体素邻域,沿着逆风梯度方向投射射线,或测量接近中轴面的点的两个最接近的逆风梯度方向之间的差。可使用另一种方法来细化点骨架,诸如使用射线投射方法(例如,查找逆风梯度的方向或大小的变化),或通过解决定位在至少两个位置中精确地接触形状的边界的球体的中心的优化子问题来细化骨架点。
从点骨架计算表面厚度可通过从表面投射射线以寻找沿着法线方向最接近的骨架点来实现,或者可使用带符号的距离场或减薄算法来构建映射以将内部的每个体素连接到其最接近的表面体素。应注意,这种映射可在骨架形成时自动构造,而不必此后重新计算。此外,可使用其他厚度测量方法,诸如上面提到的射线投射、球体拟合或滚球技术。
此类厚度测量技术中的每种技术都可与现在描述的用于应用厚度约束的斜坡式缩放过程一起使用。图4A示出用于应用厚度约束的斜坡式缩放过程的实例,其可在图1C的3D模型更新185C中实施。接收400由当前数值估评指示的变化量(例如,从针对当前3D模型执行的数值模拟生成的速度场)连同厚度值(例如,当前3D模型的三维形状的表面处的水平集差测量厚度)。
在一些实施方式中,检查402确定优化循环的初始的一组一次或多次迭代是否已经完成。应注意,此检查可以是显式的,所述过程中的所得分支如图所示,或者此检查可以是隐式的,作为基于函数的方法的结果,所述方法使用控制变量来确保在迭代循环早期不对变化量进行任何修改(例如,平流输送速度)。在应用404变化量以更新当前3D模型以用于下一次迭代之前约束对当前3D模型的变化量的修改直到稍后在优化循环中,可在可实现的最终形状的质量方面提供优势。
这在拓扑优化的情况下尤其如此,其中在应用最小厚度约束之前允许当前3D形状的部分收缩到没有对于使得能够找到当前优化问题的不同几何解很重要。由于生成设计中发生拓扑变化的主要方式之一是通过将梁收缩到没有来移除梁,因此不期望使最小厚度约束在整个求解过程中有效,由此允许优化器有时间从设计中移除一些冗余梁。而且,厚度约束防止片减薄到因为两个面相交而产生新孔的程度。为了解决这些问题,可随着优化的进行以渐进方式打开(或斜升)速度过滤器。尽管如此,在一些实施方式中,诸如仅形状优化循环,形状变化的减缓410(下文提出)可在优化循环的第一迭代中开始。
当变化量的修改确实开始时,可将修改的可能应用406到在当前3D模型中要改变的每个位置。当给定位置符合408厚度规范时,修改410所述位置处的变化量以减缓朝向厚度规范的方向上的任何形状变化(例如,当厚度规范为最小厚度时减缓所述位置处的减薄,以及当厚度规范为最大厚度时减缓所述位置处的加厚)。另外,形状变化的减缓410可以是减缓一定量,所述量是基于厚度规范和所述位置处的测量厚度之间的差。因此,随着厚度逼近指定厚度极限,更加减缓朝向所述指定厚度的任何形状变化,包括潜在地停止已经达到指定厚度极限的位置处的任何形状变化。
即使在形状变化的此减缓下,给定位置也有可能达到不符合厚度规范的厚度,即,所述位置处的厚度已经超过指定厚度极限。当出现这种情况时,可修改412所述位置处的变化量以强制实施在朝向厚度规范的方向上的形状变化。在一些实施方式中,在朝向厚度规范的方向上的形状变化的此强制实施是强制实施一定量,所述量是基于厚度规范与在所述位置处的测量厚度之间的差。因此,所述位置处的厚度超出指定厚度极限越远,就越多地被推回到指定厚度极限。
在一些情况下,形状变化的此强制实施是不期望的,诸如应允许当前3D模型的某些部分变得越来越薄、直到它们从正在生成设计的当前3D模型中消除的情况。因此,在一些实施方式中,使用斜升期,其中形状变化的强制实施412(以及任选地形状变化的减缓410)直到循环的最后一组迭代才完全操作。在这些实施方式中,当所述位置处的厚度在由调节变量控制的值范围内时,可执行修改410和/或修改412。因此,在最后一组迭代414之前(例如,在没有修改平流输送速度的初始的一组迭代和完全修改对流速度的最后一组迭代之间的中间组迭代期间),可在优化循环的每次迭代中改变418控制一个或多个值范围的一个或多个调节变量。应注意,改变418可以是隐式的,因为迭代次数可以是基于函数的方法的输入,诸如下面结合图4B所描述。
此外,在一些情况下,3D模型的特定部分的厚度可能会在厚度规范周围浮动。例如,在最小厚度约束下,特定区域中的构件厚度可在最小特征大小周围浮动;在一次迭代中,特征大到足以不被减缓410,或者减缓410不充分,并且优化器以向内速度将其厚度减小到越过最小厚度。在下一次迭代中,发现构件过小,并且强制实施412形状变化以将构件厚度推回目标厚度。为了解决此问题,在一些实施方式中,(例如)使用平流输送时间和任选地减缓410的形状变化或强制实施412的形状变化来估计406所述位置处的厚度变化,然后使用所述位置处的估计厚度变化来调节减缓410的形状变化或强制实施412的形状变化。
当使用斜升期时,可能会出现在斜升完成之后存在违反厚度规范的情形,因为强制实施的形状变化可能无法在一次迭代中将薄构件完全恢复到厚度规范,而是可能需要两次或更多次迭代才能实现合规性。为了解决此问题,在一些实施方式中,将最终的一组迭代扩展416到越过显式收敛,即,超过满足一个或多个设计标准的迭代,以便确保不需要另外的强制实施的形状变化来确保满足厚度规范。
如上所述,可使用基于函数的实施方式。在此类实施方式中,可针对减缓410和强制实施412使用单独的函数。每个此类函数可以是连续函数或分段线性函数,或甚至潜在地是不连续函数。图4B示出用于应用厚度约束的斜坡式缩放过程的功能控制的实例。结合图4B,“t”现在用于标示3D模型的表面处的局部厚度,而不是上述骨架细化算法中的沿着射线的行程。而且,结合图4B讨论的实例是针对最小厚度约束的,但是这里描述的一般方法同样适用于最大厚度约束和厚度比约束。
测量厚度值用于驱动约束,其可操纵平流输送速度以防止零件的区域收缩到小于最小特征大小目标厚度。对于使用“稳态”约束的实施方式,约束可采用速度过滤器的形式,其根据公式10操纵每个点处的速度,其中新的速度v’分别以因子vα和β从输入速度缩放和偏离。max(·)运算符确保过滤器永远不会缩放向外定向的速度(因此缩放分量仅适用于向内速度的区域)。
v′=max(αv,v)+β | (10) |
缩放因子和加性因子的公式是启发式的,并且表示众多可能方法中的一种。直观地,如果设计的区域比最小特征大小厚得多,则不修改速度(α=1;β=0)。如果设计变得接近最小特征大小,则想要通过将α缓慢减小到0来防止速度进一步收缩形状。如果设计的区域小于目标最小特征大小,则添加小的正向外速度以使形状增大。因此,第一分段线性函数450控制α(速度过滤器的缩放分量)的值,并且第二分段线性函数452控制β(速度过滤器的加性分量)的值。
在图4B中,tmin是所请求的最小特征大小,∈是厚度测量误差的估计(例如,1个体素),Δ是介于α=0与α=1之间的过渡区的大小(例如,1.5*最大向外速度个体素),并且vp是在过小区域中应用的最大向外速度量(例如,0.5个体素/平流输送时间步长)。如图所示,缩放分量α从无约束收缩斜降到不再收缩,但斜坡部分(除了函数的针对α的其余部分)不需要是线性的。
然而,如果稳态速度过滤器从优化一开始就有效,则优化器将无法通过收缩条直到它们不再存在或向片添加孔来产生拓扑变化。此能力对于优化器移除冗余负载路径并且快速实现最佳设计非常重要。因此,在一些实施方式中,约束在优化循环的多次迭代中斜升。速度过滤器最初可能是无效的,在固定迭代次数之后,约束可开始斜升,并且在预定次数的另外迭代的进程中,它可从完全禁用平滑过渡到上面给出的稳态速度约束。
在斜升期间,缩放系数和加性系数同样可表示为分段线性函数。因此,第一分段线性函数454控制α(斜升期间的缩放分量)的值,并且第二分段线性函数456控制β(斜升期间的加性分量)的值。在图4B中,tmin是所请求的最小特征大小,tf是一定厚度,高于所述厚度,则降低向内速度或将其设定为零(随斜升而变化),te是“均衡”厚度,在所述厚度下,既不应用正的也不应用负的加性速度校正(随斜升而变化),其中g是te与tf之间的当前距离,∈是厚度测量误差的估计(例如,1个体素),Δ是介于α=0与α=1之间的过渡区的大小(例如,1.5*最大向外速度个体素),vp是在过小区域中应用的最大向外速度量(例如,0.5个体素/平流输送时间步长),vm是非常过小区域的任选最大向内速度(可设定为零以禁用),并且sl是加性分量斜坡过渡的斜率(0.25)。除了完全消除vm的选项外,在一些实施方式中,也不使用te。
斜变效应的实现方式为操纵“冻结厚度”tf,其从斜升开始时的tf=tmin+∈+Δ扫掠到斜升期结束时的tf=-Δ(例如,tf随着迭代次数改变)。以此方式,在斜升开始时,过滤器不起作用(因为所有α都是1,并且所有β都是0)。随着冻结厚度开始减小,首先约束结构的最厚构件以使得它们无法进一步收缩,并且使得更薄构件可自由改变。这使得优化器能够在其感觉到来自约束的压力时决定移除不必要的更薄构件,以使更厚构件与最小特征大小目标对齐。
此斜变方法(逐渐引入厚度约束)有助于产生更好的生成设计,因为优化器被迫按照特定次序从最大到最小做出决策(关于材料的小指状物是否值得保留):当tf从大值下降到小值时,开始阻碍更大指状物(即,大于tf并且小于tmin+∈+Δ的那些指状物)的收缩,但不阻碍更小指状物(即,小于tf的那些指状物)的收缩。对于加性分量β,tf是停止引入允许以得到局部厚度的最大允许推动量并且使其斜降的点;在tf左侧使用斜坡告诉优化器这些薄指状物不是释放体积的好地方,这促使优化器寻找其他地方来释放体积,或者完全消除指状物(如果不是真的需要)以获得期望体积减小。另外,在一些实施方式中,vm设定为非零负数,这意味着对于非常小的指状物,将尝试优先更快地收缩它们以使它们消失。
此外,如上所述,在启用斜升的情况下,可能存在以下情形:在斜升完成后出现对最小特征大小约束的违反。由于最小特征最后被冻结,因此过滤器可能需要多次迭代来将最小特征增大到最小特征大小目标厚度。此所谓的“稳定时间(settling time)”必须在设计完全满足最小特征大小要求之前过去,并且可计算为vp/tmin,假设设计在每次迭代时平流输送1.0倍。因此可抑制设计收敛,直到指定稳定迭代已经过去之后。
另外,有时特定区域中的构件厚度在最小特征大小周围浮动。在一次迭代中,特征大到足以不受约束,并且优化器以向内速度减小其厚度。在下一次迭代中,发现构件过小,并且添加非零β速度以将构件厚度推回目标厚度。为了对抗此浮动,“平流输送修正(advection fix)”向过滤器添加附加的加性项γ,以补偿任何尚未应用的向内平流输送。过滤器函数可重写,如等式11所示。
v′2=v′+γ×max(αv,v)+β+γ | (11) |
由于每个点处的过滤平流输送速度导致的可能厚度变化可估计为tnew=t+v′ΔT,其中ΔT是平流输送时间。如果法线方向不平行于骨架在此点处的矢量,则这可能会高估实际厚度变化,但如果结构的另一侧也有负速度,则这可能会低估厚度变化。在实践中,发现其运行良好并且避免了更正确地处理这些未知量的附加计算。加性项γ被选择成使得实际估计新厚度不小于目标最小特征大小,如在等式12中。
应注意,此厚度约束应用可能有许多变化。斜升阶段可省略,或者可在迭代0时开始(因此其从一开始就线性斜升,而不是等待预定迭代次数)。斜升可通过无约束速度值与约束速度值之间的线性插值来实现,其中在多次迭代的进程中混合比从0逐渐增加到接近1.0的值。斜升阶段可由混合几何/速度过滤器代替。在应当应用约束的第一次迭代中,几何过滤器可使用校正的水平集来膨胀设计的所有薄区域,并且速度过滤器可立即发挥最大作用。这将移除对稳定时间步长的任何需要。
稳定时间步长可省略,或者在斜升结束时由几何过滤器代替,这扩大所有剩余薄构件以满足特征大小要求。对于关于几何过滤的细节,请参见于2020年5月18日提交并且于2021年11月18日发布的标题为“COMPUTER AIDED GENERATIVE DESIGN WITH FILTER INGTO FACILITATE 2.5-AXIS SUBTRACTIVE MANUFACTURI NG PROCESSES”的美国公开号2021-0356939,所述公开特此通过引用并入。此外,平流输送修正可使用水平集场中的估计变化的一组不同的逼近来重新制定,或者可在执行平流输送并且再次测量所得厚度的循环中执行,其中过滤器迭代地更新速度值,直到获得此迭代的每个体素处的期望厚度。
作为速度过滤器方法的另选方案,可使用“步进和投影(step-and-project)”几何过滤器,其中几何在每次迭代后被调节为满足约束的最接近的形状。校正的水平集函数可用于这种形状的厚度测量,并且在步进和投影方法中,将在平流输送发生之后测量厚度,并且输出水平集将替换为校正的水平集函数。然后,此新形状既形成了到用户的输出,又形成了下一次拓扑优化迭代的输入。
最大特征大小控制可使用与上述那些类似的方法来实现。可使用相同的方法测量厚度,但可将校正的水平集替换为最接近骨架点方法(可能需要对保留区域进行显式过滤)。约束公式看起来将类似于针对最小特征大小控制所示的公式,只是可切换速度过滤器的符号,使得优化器只被允许收缩(而不是增大)几何,并且针对违反区域,可应用向内β校正项。
在一些情况下,约束不是对制造过程允许的绝对最小厚度的约束,而是对所得组件的整体机械稳定性的约束。在这些情况下,有时期望用最小厚长比约束替换或补充最小特征大小约束,这对细长条进行加厚,即使它们大于指定最小特征大小。
可在进行微小改变的情况下使用上述框架来进行厚长比控制。线骨架可被划分为连接区域(在接合点处或在向/从半径大于rmin的区域过渡的过渡处分割),并且每段的长度可用于选择维持目标厚长比所需的最小厚度。此外,约束公式可修改为使得tmin是基于每个点属于设计的哪个分区在空间上变化的参数。
图5是包括数据处理设备500的数据处理系统的示意图,所述数据处理设备500可编程为客户端或服务器。数据处理设备500通过网络680与一个或多个计算机590连接。虽然在图5中仅示出一个计算机作为数据处理设备500,但是可使用多个计算机。数据处理设备500包括各种软件模块,其可分布在应用层与操作系统之间。这些可包括可执行和/或可解释软件程序或库,包括一个或多个3D建模程序504的工具和服务,所述一个或多个3D建模程序504实施用于测量3D模型中的厚度的基于体素化减薄的到中轴面的距离的过程和/或用于应用厚度约束的斜坡式缩放过程,如上所述。因此,3D建模程序504可以是CAD程序504(诸如CAD程序116),并且可实施一个或多个生成设计过程(例如,使用基于水平集的生成设计方法)以进行拓扑优化和物理模拟操作(有限元分析(FEA)或其他),所述操作并入几何过滤和/或模拟结果过滤。此外,程序504可潜在地实施制造控制操作(例如,生成和/或应用工具路径规范以实现设计对象的制造)。所使用的软件模块的数量可因实施方式而异。此外,软件模块可分布在由一个或多个计算机网络或其他合适的通信网络连接的一个或多个数据处理设备上。
数据处理设备500还包括硬件或固件装置,包括一个或多个处理器512、一个或多个附加装置514、计算机可读介质516、通信接口518和一个或多个用户接口装置520。每个处理器512能够处理用于在数据处理设备500内执行的指令。在一些实施方式中,处理器512是单线程处理器或多线程处理器。每个处理器512能够处理存储在计算机可读介质516上或存储装置(诸如附加装置514中的一个)上的指令。数据处理设备500使用通信接口518例如通过网络580与一个或多个计算机590通信。用户接口装置520的实例包括显示器、相机、扬声器、麦克风、触觉反馈装置、键盘、鼠标以及VR和/或AR设备。数据处理设备500可将实施与上述程序相关联的操作的指令存储在例如计算机可读介质516或一个或多个附加装置514(例如,硬盘装置、光盘装置、磁带装置和固态存储器装置中的一者或多者)上。
本说明书中描述的主题的实施方案和功能操作可在数字电子电路中、或在计算机软件、固件或硬件(包括本说明书中公开的结构及其结构等效物)中、或它们中的一者或多者的组合中实施。本说明书中描述的主题的实施方案可使用编码在非暂时性计算机可读介质上以供由数据处理设备执行或控制数据处理设备的操作的计算机程序指令的一个或多个模块来实施。计算机可读介质可以是制成品(诸如计算机系统中的硬盘驱动器或通过零售渠道销售的光盘),或者嵌入式系统。计算机可读介质可单独获取,并且稍后用一个或多个计算机程序指令模块编码,例如,在通过有线或无线网络递送一个或多个计算机程序指令模块之后。计算机可读介质可以是机器可读存储装置、机器可读存储基底、存储器装置、或它们中的一者或多者的组合。
术语“数据处理设备”包含用于处理数据的所有设备、装置和机器,(通过举例)包括可编程处理器、计算机、或者多个处理器或计算机。除了硬件之外,所述设备还可包括为所讨论计算机程序创建执行环境的代码,例如,构成处理器固件、协议堆栈、数据库管理系统、操作系统、运行时环境、或它们中的一者或多者的组合的代码。另外,所述设备可采用各种不同的计算模型基础设施,诸如web服务、分布式计算和网格计算基础设施。
计算机程序(也称为程序、软件、软件应用程序、脚本、或代码)可以任何合适形式的编程语言(其包括编译或解释语言、声明或过程性语言)来书写,并且可以任何合适形式来部署,包括作为独立程序或作为模块、部件、子例程或适合在计算环境中使用的其他单元。计算机程序不一定对应于文件系统中的文件。程序可存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分,存储在专用于所讨论程序的单个文件中,或存储在多个协调文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。计算机程序可被部署成在一个计算机上或在多个计算机上执行,所述多个计算机位于一个位点处或跨多个位点分布并且通过通信网络互连。
本说明书中描述的过程和逻辑流程可由一个或多个可编程处理器实行,所述一个或多个可编程处理器执行一个或多个计算机程序以通过对输入数据进行操作并且生成输出来执行功能。所述过程和逻辑流程也可由专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))执行,并且所述设备也可被实现为所述专用逻辑电路。
适用于执行计算机程序的处理器(通过举例)包括通用和专用两种微处理器、以及任何种类的数字计算机的任何一个或多个处理器。总体上,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器,以及用于存储指令和数据的一个或多个存储器装置。总体上,计算机还将包括用于存储数据的一个或多个大容量存储装置(例如,磁盘、磁光盘、或光盘),或可操作地联接以从其接收数据、或向其传送数据、或进行两者。然而,计算机不必具有此类装置。此外,计算机可嵌入在另一个装置中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器、或便携式存储装置(例如,通用串行总线(USB)闪存驱动器),仅列出数个而言。适用于存储计算机程序指令和数据的装置包括所有形式的非易失性存储器、介质和存储器装置,(通过举例)包括半导体存储器装置(例如,EPROM(可擦除可编程只读存储器)、EEPROM(电可擦除可编程只读存储器)和闪存装置);磁盘(例如,内部硬盘或可移动磁盘);磁光盘;以及CD-ROM和DVD-ROM磁盘。处理器和存储器可由专用逻辑电路补充或并入其中。
为了提供与用户的交互,本说明书中描述的主题的实施方案可在计算机上实施,所述计算机具有用于向用户显示信息的显示装置(例如,LCD(液晶显示器)显示装置、OLED(有机发光二极管)显示装置或另一监视器),以及用户可借以向计算机提供输入的键盘和定点装置(例如,鼠标或跟踪球)。其他种类的装置也可用于提供与用户的相互作用;例如,提供给用户的反馈可以是任何合适形式的感官反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且来自用户的输入可以任何形式(包括声学、言语或触觉输入)接收。
计算系统可包括客户端和服务器。客户端和服务器一般彼此远离,并且通常通过通信网络进行交互。客户端与服务器的关系由于计算机程序在相应计算机上运行并且与彼此具有客户端-服务器关系而出现。本说明书中描述的主题的实施方案可在计算系统中实施,所述计算系统包括后端部件(例如,作为数据服务器),或包括中间件部件(例如,应用程序服务器),或包括前端部件(例如,客户端计算机,其具有用户可用来与本说明书中描述的主题的实施方式进行交互的图形用户界面或浏览器用户界面),或一个或多个这样的后端部件、中间件部件或前端部件的任何组合。所述系统的部件可通过任何合适的数字数据通信形式或介质(例如,通信网络)来互连。通信网络实例包括局域网(“LAN”)和广域网(“WAN”)、跨网(例如,互联网)、以及对等网络(例如,自组织对等网络)。
尽管本说明书包含许多实施细节,但是这些细节不应被解释为对所要求保护或可要求保护的范围的限制,而应被解释为是特定于所公开主题的特定实施方案的特征的描述。本说明书中在单独实施方案的上下文中描述的某些特征也可在单个实施方案中以组合形式实施。相反,在单个实施方案的上下文中描述的各种特征也可在多个实施方案中单独地或以任何合适的子组合的形式实施。此外,尽管上文可将特征描述为以某些组合的形式起作用,并且甚至初始地也是这样要求保护的,但是在一些情况下,来自所要求保护的组合的一个或多个特征可从所述组合中去除,并且所要求保护的组合可针对子组合或子组合的变型。
类似地,虽然在附图中按特定次序描绘操作,但是这不应理解为要求按所示的特定次序或按顺序次序执行这类操作,或者要求执行所有示出的操作,以实现期望结果。在某些情况下,多任务和平行处理可以是有利的。此外,上述实施方案中的各种系统部件的分离不应理解为在所有实施方案中都要求这种分离,而应理解,所描述的程序部件和系统通常可一起集成在单个软件产品中或封装到多个软件产品中。
因此,已经描述本发明的特定实施方案。其他实施方案在以下权利要求的范围内。例如,中轴面处的厚度的估计可用于执行逻辑,诸如在特定形状区域中是否完全激活厚度要求。此外,一些实施方式不需要特征厚度控制,例如,所描述的系统和技术可用于特征厚度可视化。另外,权利要求中所述的动作可按不同次序执行并且仍然实现期望结果。
Claims (29)
1.一种物理结构的计算机辅助设计的方法,所述方法包括:
通过计算机辅助设计程序获得要制造其对应物理结构的建模对象的设计空间,以及所述建模对象的一个或多个设计标准,其中所述一个或多个设计标准包括所述建模对象的厚度规范;
通过所述计算机辅助设计程序根据所述一个或多个设计标准在所述设计空间中迭代地改变所述建模对象的三维形状,其中所述迭代地改变包括:通过在所述迭代地改变期间测量所述三维形状的厚度值来使用所述厚度规范控制所述三维形状的厚度,所述测量包括:
制备所述三维形状的体素化片和线骨架;以及
使用所述体素化片和线骨架限定所述三维形状的所述厚度值;以及
通过所述计算机辅助设计程序提供所述建模对象的所述三维形状以用于使用所述一个或多个计算机控制的制造系统制造所述物理结构。
2.如权利要求1所述的方法,其中所述制备包括:
计算所述三维形状的体素化片骨架;
计算所述三维形状的体素化线骨架,其中所述体素化线骨架包括将所述三维形状的不同部分彼此连接的一个或多个线段;以及
将所述体素化线骨架的体素添加到所述体素化片骨架以形成所述三维形状的所述体素化片和线骨架。
3.如权利要求2所述的方法,其中所述制备包括:从所述体素化片骨架移除边远体素。
4.如权利要求3所述的方法,其中从所述体素化片骨架移除所述边远体素包括:
移除与所述三维形状的所述体素化片骨架中的片边缘相关联的体素;
移除形成所述三维形状的所述体素化片骨架的一个或多个体素化线骨架部分的体素;或
既移除与所述片边缘相关联的所述体素又移除形成所述一个或多个体素化线骨架部分的所述体素。
5.如权利要求4所述的方法,其中所述建模对象包括针对所述三维形状指定的一个或多个保留区域,并且所述三维形状的所述不同部分包括所述一个或多个保留区域。
6.如权利要求1至5中任一项所述的方法,其中所述限定包括:
将所述体素化片和线骨架转变成逼近所述三维形状的中轴面的点;以及
使用所述点生成所述厚度值。
7.如权利要求6所述的方法,其中逼近中轴面的所述点是第一组点,所述制备包括:跟踪所述体素化线骨架的在从所述体素化片骨架移除所述边远体素之前不在所述体素化片骨架中的所述体素,并且所述生成包括:除了所述第一组点之外,还使用第二组点生成所述厚度值,所述第二组点是所述体素化线骨架的在所述移除之前不在所述体素化片骨架中的所述体素的中心点。
8.如权利要求7所述的方法,其中所述建模对象的所述三维形状包括所述建模对象的隐式表面的水平集表示,并且针对逼近所述中轴面的所述第一组点中的每个单独点,所述转变包括:
从在所述体素化片和线骨架中但不包括在所述体素化线骨架的在移除之前不在所述体素化片骨架中的所述体素中的下一个体素投射射线,或者从所述下一个体素的相邻体素投射射线;以及
估计所述水平集表示中的值沿着所述三维形状内的所述射线的极值。
9.如权利要求8所述的方法,其中所述第一组点包括片点和线点,所述方法包括:针对所述片点执行多向搜索并且针对所述线点执行梯度优先搜索,
其中对于所述多向搜索,
所述投射包括:从与所述下一个体素相关联的初始点在不同方向上投射两条或更多条射线;
并且所述估计包括:
针对所述两条或更多条投射射线中的每一条,
产生所述水平集表示中的值在所述中轴面的近侧上的近侧线性逼近,
产生所述水平集表示中的值在所述中轴面的远侧上的远侧线性逼近,
寻找所述近侧线性逼近与所述远侧线性逼近的交点以及所述交点的质量值,以及
基于针对所述两条或更多条投射射线找到的所述交点的所述质量值选择所述交点中的至少一个交点作为所述第一组点中的点;
并且其中对于所述梯度优先搜索,
所述投射包括:从所述初始点在对应于从所述下一个体素的所述相邻体素计算的逆风梯度的方向上投射射线;
并且所述估计包括:
产生所述水平集表示中的值在所述中轴面的近侧上的近侧线性逼近,
产生所述水平集表示中的值在所述中轴面的远侧上的远侧线性逼近,
寻找所述近侧线性逼近与所述远侧线性逼近的交点以及所述交点的质量值,以及
当所述交点的所述质量值足够时,使用所述交点作为所述第一组点中的线点,并且当所述交点的所述质量值不足时,针对所述线点执行所述多向搜索。
10.如权利要求6所述的方法,其中所述转变包括:
寻找逼近所述三维形状的所述中轴面的第一组点;以及
改变所述第一组点的位置和/或半径以平滑所述第一组点中的数据值。
11.如权利要求10所述的方法,其中所述建模对象的所述三维形状包括所述建模对象的隐式表面的水平集表示,并且所述生成包括:
通过针对从所述体素化片和线骨架产生的所述点中的每个点对所述建模对象的所述隐式表面的所述水平集表示的副本执行球体的布尔并集来形成加厚水平集表示;以及
基于所述建模对象的所述隐式表面的所述水平集表示与所述加厚水平集表示之间的差来估计所述厚度值。
12.如权利要求11所述的方法,其中所述迭代地改变包括:在所述设计空间中迭代地改变所述建模对象的三维形状和拓扑。
13.一种非暂时性计算机可读介质,其对计算机辅助设计程序进行编码,所述计算机辅助设计程序能够操作以使一个或多个数据处理设备执行如权利要求1至12中任一项所述的操作。
14.一种物理结构的计算机辅助设备的方法,所述方法包括:
通过计算机辅助设计程序获得要制造其对应物理结构的建模对象的设计空间,所述建模对象的一个或多个设计标准,以及所述建模对象的厚度规范;
通过所述计算机辅助设计程序根据所述一个或多个设计标准在所述设计空间中迭代地改变所述建模对象的三维形状,其中所述迭代地改变包括:在第二组零次或更多次迭代之后执行第一组两次或更多次迭代,并且其中在所述第一组两次或更多次迭代期间,所述迭代地改变包括:在所述第一组两次或更多次迭代中的每次迭代中,修改由通过数值模拟生成的所述建模对象的当前数值估评指示的变化量以用于更新所述迭代中的所述三维形状的当前版本;
其中所述修改包括:针对所述三维形状的当前版本中的多个位置中的每个位置,当所述位置处的测量厚度符合所述厚度规范时,将在朝向所述厚度规范的方向上的所述位置处的形状变化减缓一定量,所述量是基于所述厚度规范与所述测量厚度之间的差;以及
通过所述计算机辅助设计程序提供所述建模对象的所述三维形状以用于使用一个或多个计算机控制的制造系统制造所述物理结构。
15.如权利要求14所述的方法,其中所述迭代地改变包括:根据所述一个或多个设计标准在所述设计空间中迭代地改变所述建模对象的所述三维形状和拓扑两者,其中所述修改包括:针对所述三维形状的当前版本中的多个位置中的每个位置,当所述测量厚度不符合所述厚度规范时,强制实施在朝向所述厚度规范的方向上的所述位置处的形状变化。
16.如权利要求15所述的方法,其中所述强制实施包括:强制实施在朝向所述厚度规范的方向上的形状变化一定量,所述量是基于所述厚度规范与所述位置处的所述测量厚度之间的差。
17.如权利要求15所述的方法,其中所述修改包括:针对所述三维形状的所述当前版本中的所述多个位置中的每个位置:
使用所述减缓的形状变化或所述强制实施的形状变化估计所述位置处的预期厚度变化;以及
使用所述位置处的所述估计厚度变化调节所述减缓的形状变化或所述强制实施的形状变化。
18.如权利要求14至17中任一项所述的方法,其中所述第二组是第二组一次或多次迭代,并且所述迭代地改变包括:在所述第二组一次或多次迭代与所述第一组两次或更多次迭代之间执行第三组两次或更多次迭代,并且其中在所述第三组两次或更多次迭代期间,所述迭代地改变包括:
针对所述三维形状的当前版本中的多个位置中的每个位置,当所述位置处的测量厚度在值范围内时,减缓在朝向所述厚度规范的方向上的所述位置处的形状变化,所述值范围的一侧由调节控制变量设定;以及
在所述第三组两次或更多次迭代的进程中改变所述调节控制变量以使得更接近所述厚度规范。
19.如权利要求18所述的方法,其中所述迭代地改变包括:将所述第一组两次或更多次迭代扩展超过满足所述一个或多个设计标准的迭代,以便确保不需要进一步强制实施形状变化。
20.如权利要求18所述的方法,其中所述第二组是第二组两次或更多次迭代,并且其中在所述第二组两次或更多次迭代期间,不基于所述厚度规范执行由所述数值估评指示的量的变化。
21.如权利要求18所述的方法,其中所述迭代地改变包括:测量所述三维形状的厚度值,所述测量包括:
制备所述三维形状的体素化片和线骨架;以及
使用所述体素化片和线骨架限定所述三维形状的所述厚度值。
22.如权利要求18所述的方法,其中所述厚度规范是最大厚度值。
23.如权利要求18所述的方法,其中所述厚度规范对应于厚度长度比,并且所述厚度规范基于所述位置处的估评厚度相对于所述三维形状的所述当前版本的一部分的长度的比率在所述位置处调节,所述部分包含所述位置。
24.如权利要求18所述的方法,其中所述厚度规范是最小厚度值。
25.如权利要求18所述的方法,其中当所述位置处的所述厚度满足(i)最大厚度值、(ii)厚度长度比或(iii)最小厚度值时,所述测量厚度符合所述厚度规范,其中缓冲区根据厚度测量误差的估计设定。
26.如权利要求25所述的方法,其中所述减缓由第一函数控制,并且所述强制实施由第二函数控制。
27.一种非暂时性计算机可读介质,其对计算机辅助设计程序进行编码,所述计算机辅助设计程序能够操作以使一个或多个数据处理设备执行如权利要求14至26中任一项所述的操作。
28.一种系统,其包括:
非暂时性存储介质,所述非暂时性存储介质具有存储在其上的三维建模程序的指令;以及
一个或多个数据处理设备,所述一个或多个数据处理设备被配置来运行所述三维建模程序的所述指令以执行如权利要求1至12和14至26中任一项所述的操作。
29.如权利要求28所述的系统,其中所述三维建模程序是(i)架构、工程和/或构造程序,(ii)产品设计和/或制造程序,和/或(iii)媒体和/或娱乐制作程序。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163286990P | 2021-12-07 | 2021-12-07 | |
US63/286,990 | 2021-12-07 | ||
US17/707,886 | 2022-03-29 | ||
US17/707,886 US20230177224A1 (en) | 2021-12-07 | 2022-03-29 | Computer aided generative design with feature thickness control to facilitate manufacturing and structural performance |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116432329A true CN116432329A (zh) | 2023-07-14 |
Family
ID=84439809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211561816.2A Pending CN116432329A (zh) | 2021-12-07 | 2022-12-07 | 利于制造和结构性能的具有特征厚度控制的计算机辅助生成设计 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230177224A1 (zh) |
EP (1) | EP4195086A1 (zh) |
JP (1) | JP2023084699A (zh) |
CN (1) | CN116432329A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240126933A1 (en) | 2022-10-03 | 2024-04-18 | Autodesk, Inc. | Computer aided shape synthesis with connectivity filtering |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8429174B2 (en) * | 2003-01-25 | 2013-04-23 | Purdue Research Foundation | Methods, systems, and data structures for performing searches on three dimensional objects |
US11409262B2 (en) | 2020-05-18 | 2022-08-09 | Autodesk, Inc. | Computer aided generative design with filtering to facilitate 2.5-axis subtractive manufacturing processes |
JP2023528760A (ja) * | 2020-05-18 | 2023-07-06 | オートデスク,インコーポレイテッド | 2.5軸減法製造プロセスを容易にするフィルタリングによるコンピュータ支援ジェネレーティブデザイン |
-
2022
- 2022-03-29 US US17/707,886 patent/US20230177224A1/en active Pending
- 2022-12-07 EP EP22211984.4A patent/EP4195086A1/en active Pending
- 2022-12-07 CN CN202211561816.2A patent/CN116432329A/zh active Pending
- 2022-12-07 JP JP2022195271A patent/JP2023084699A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230177224A1 (en) | 2023-06-08 |
EP4195086A1 (en) | 2023-06-14 |
JP2023084699A (ja) | 2023-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113366481B (zh) | 在计算机辅助设计与制造的2.5轴减材制造约束下的基于边界的生成式设计 | |
CN113348459B (zh) | 将网格几何结构转换为水密边界表示的方法、系统及介质 | |
EP1710720B1 (en) | Method of computer-aided design of a modeled object having several faces | |
JP4381743B2 (ja) | 境界表現データからボリュームデータを生成する方法及びそのプログラム | |
Chen et al. | Data reduction in integrated reverse engineering and rapid prototyping | |
CN115769208B (zh) | 促进制造和结构性能的具有总体厚度控制的计算机辅助生成式设计 | |
CN115769155B (zh) | 具有刀具尺寸控制以促进2.5轴减材制造过程的计算机辅助生成式设计 | |
KR20140139984A (ko) | 3d 모델링된 오브젝트의 압축 및 압축해제 | |
US20240085881A1 (en) | Computer aided generative design with layer boundary determination to facilitate 2.5-axis subtractive manufacturing processes | |
CN116432329A (zh) | 利于制造和结构性能的具有特征厚度控制的计算机辅助生成设计 | |
Erber et al. | Geometry-based assurance of directional solidification for complex topology-optimized castings using the medial axis transform | |
EP3347879A1 (en) | Method for immediate boolean operations using geometric facets | |
JP2022023010A (ja) | 2点接触曲線による乗り物衝撃解析 | |
CN107526859B (zh) | 设计复合零件的外表面以用于生产模具的方法、装置及系统 | |
JP2019185186A (ja) | 処理装置、cadモデルの特徴部分検出方法及びプログラム | |
EP4092557A1 (en) | Parameterization of digital irregular freeform geometries | |
JP2022186654A (ja) | 機械部品のcad 3dモデルの処理 | |
US20240126933A1 (en) | Computer aided shape synthesis with connectivity filtering | |
CN115917457A (zh) | 具有过滤以促进2.5轴减材制造过程的计算机辅助生成式设计 | |
CN117828816A (zh) | 利用连接性过滤的计算机辅助形状合成 | |
JP2008533614A (ja) | 整合輪郭プロファイルを生成するシステム及び方法 | |
US20240169109A1 (en) | Dual model shape synthesis | |
CN118586223A (zh) | 将网格几何结构转换成水密边界表示的方法和系统以及介质 | |
Awang et al. | Filling Simple Holes of Triangular Mesh by using Enhanced Advancing Front Mesh (EAFM) method | |
CN117131618A (zh) | 用于设计包括筋的片材部件的方法、系统和程序 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |