CN115769155B - 具有刀具尺寸控制以促进2.5轴减材制造过程的计算机辅助生成式设计 - Google Patents
具有刀具尺寸控制以促进2.5轴减材制造过程的计算机辅助生成式设计 Download PDFInfo
- Publication number
- CN115769155B CN115769155B CN202180032611.2A CN202180032611A CN115769155B CN 115769155 B CN115769155 B CN 115769155B CN 202180032611 A CN202180032611 A CN 202180032611A CN 115769155 B CN115769155 B CN 115769155B
- Authority
- CN
- China
- Prior art keywords
- elements
- milling
- starting element
- layer
- starting
- 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.)
- Active
Links
- 238000013461 design Methods 0.000 title claims description 164
- 238000004519 manufacturing process Methods 0.000 title claims description 152
- 238000003801 milling Methods 0.000 claims abstract description 428
- 238000000034 method Methods 0.000 claims abstract description 232
- 238000012545 processing Methods 0.000 claims abstract description 72
- 230000004044 response Effects 0.000 claims abstract description 20
- 230000008569 process Effects 0.000 claims description 167
- 238000005457 optimization Methods 0.000 claims description 80
- 239000013598 vector Substances 0.000 claims description 55
- 239000000463 material Substances 0.000 claims description 25
- 230000005484 gravity Effects 0.000 claims description 17
- 238000003860 storage Methods 0.000 claims description 9
- 230000001788 irregular Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 abstract description 13
- 238000011960 computer-aided design Methods 0.000 abstract description 11
- 238000012938 design process Methods 0.000 description 39
- 238000003754 machining Methods 0.000 description 34
- 238000004088 simulation Methods 0.000 description 27
- 238000012986 modification Methods 0.000 description 15
- 230000004048 modification Effects 0.000 description 15
- 238000005520 cutting process Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 11
- 238000004458 analytical method Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 230000035945 sensitivity Effects 0.000 description 7
- 239000007787 solid Substances 0.000 description 7
- 238000013459 approach Methods 0.000 description 6
- 238000001308 synthesis method Methods 0.000 description 6
- 230000009466 transformation Effects 0.000 description 5
- 239000000654 additive Substances 0.000 description 4
- 230000000996 additive effect Effects 0.000 description 4
- 238000004873 anchoring Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000007689 inspection Methods 0.000 description 4
- 108010034145 Helminth Proteins Proteins 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 3
- 244000000013 helminth Species 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000011112 process operation Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005553 drilling Methods 0.000 description 2
- 239000012530 fluid Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000000704 physical effect Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 239000002994 raw material Substances 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000110 selective laser sintering Methods 0.000 description 2
- 238000010206 sensitivity analysis Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 238000010146 3D printing Methods 0.000 description 1
- 238000012935 Averaging Methods 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 238000005242 forging Methods 0.000 description 1
- 238000010100 freeform fabrication Methods 0.000 description 1
- 238000001746 injection moulding Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000000465 moulding Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000000843 powder Substances 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000007711 solidification Methods 0.000 description 1
- 230000008023 solidification Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/4097—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by using design data to control NC machines, e.g. CAD/CAM
- G05B19/4099—Surface or curve machining, making 3D objects, e.g. desktop manufacturing
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/4155—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric 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
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/36—Nc in input of data, input key till input tape
- G05B2219/36214—Pocket machining, area clearance, contained cutting, axis milling
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/37—Measurements
- G05B2219/37355—Cutting, milling, machining force
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/45—Nc applications
- G05B2219/45145—Milling
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/49—Nc machine tool, till multiple
- G05B2219/49237—Depth, tool depth control
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/49—Nc machine tool, till multiple
- G05B2219/49245—2-5-D pocket machining
-
- 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
- G06F2113/00—Details relating to the application field
- G06F2113/08—Fluids
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P80/00—Climate change mitigation technologies for sector-wide applications
- Y02P80/40—Minimising material used in manufacturing processes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Manufacturing & Machinery (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Automation & Control Theory (AREA)
- Computational Mathematics (AREA)
- Human Computer Interaction (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Fluid Mechanics (AREA)
- Mathematical Physics (AREA)
- Numerical Control (AREA)
Abstract
提供了用于物理结构的计算机辅助设计的方法、系统和设备,包括介质编码的计算机程序产品,所述方法、系统和设备包括:获得建模对象的基于密度的表示和指定多个不同元素子集中的每一者的起始元素的数据;处理具有与在最顶层下方的层相关联的铣削深度的起始元素,所述处理包括对于当前层的当前起始元素,识别具有与在所述当前层上方的层相关联的铣削深度并且靠近所述当前起始元素超过一定量的其他起始元素,所述量至少等于最小可用铣削刀具的半径;计算最大角差;以及响应于所述最大角差大于阈值,将所述当前起始元素的所述元素子集的所述铣削深度移动到在所述当前层上方的层,以去除不可制造的拐角。
Description
相关申请的交叉引用
本申请要求于2020年7月17日提交的美国专利申请号16/931,866的优先权,并且还要求授予发明人David Jon Weinberg和Nam Ho Kim的于2020年5月20日提交的美国专利申请号16/879,547的优先权。这些申请通过引用并入。
背景技术
本说明书涉及可使用增材制造、减材制造和/或其他制造系统和技术制造的物理结构的计算机辅助设计。
已经开发了计算机辅助设计(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软件的用户指定的设计空间,并且3D几何形状生成典型地由设计目标和约束管理,这些目标和约束可由CAD软件的用户或由另一方定义并导入到CAD软件中。设计目标(诸如最小化设计零件的重量)可用于推动几何形状生成过程朝向更好的设计。设计约束可包括对单个零件的结构完整性约束(即,要求在零件的使用期间零件在预期结构载荷下不应出故障)和由较大系统施加的物理约束(即,要求零件在使用期间不干扰系统中的另一个零件)两者。此外,设计约束的示例包括最大质量、载荷下的最大变形、最大应力等。
生成式设计过程的输入可包括指定了生成式设计过程的边界条件的一组输入实体(B-Rep输入),但许多现代生成式设计求解器并不直接对其输入实体的精确表面边界表示进行操作。相反,对B-Rep进行采样并将其替换为体积表示,诸如水平集或四面体或六面体网格,这对于求解器计算的物理模拟和材料合成来说明显更加方便和高效。输入实体集可包括“保留体”,保留体应始终存在于设计中并表示与其他零件或应当应用边界条件(例如,机械载荷和约束)的位置的接口。也可以类似的方式提供应当或不应当生成几何形状的其他区域,诸如定义“障碍体”的输入实体,障碍体表示不应当生成新几何形状的区域。
发明内容
本说明书描述了与使用生成式设计过程的物理结构的计算机辅助设计相关的技术,其中产生物理结构的三维(3D)模型以便促进使用2.5轴减材制造系统和技术来制造物理结构。减材制造技术可包括2轴、2.5轴、3轴或更多轴铣削;2轴铣削切穿工件但没有能力调整铣削头的高度水平;3轴铣削在沿三个单独的维度移动铣削刀具时切穿工件(例如,同时地);2.5轴铣削可使用3轴铣床,因为铣削刀具(或铣削刀具和夹具支架的组合)可在所有的三个单独维度上移动,但在大多数切削操作期间,铣削刀具仅相对于工件在2个轴上移动,这导致更高效的制造过程。
一般来说,本说明书中描述的主题的一个或多个方面可体现在一种或多种方法(以及一种或多种非暂时性计算机可读介质中,所述一种或多种非暂时性计算机可读介质对计算机程序有形地编码,所述计算机程序可操作以致使数据处理设备执行操作),所述一种或多种方法包括:获得(i)将用一个或多个计算机控制的制造系统使用2.5轴减材制造过程制造对应的物理结构的建模对象的基于密度的表示,以及(ii)指定所述建模对象的所述基于密度的表示中的多个不同元素子集中的每一者的起始元素的数据,其中所述元素子集中的每一者具有铣削深度,所述铣削深度是分别为三个或更多个离散层指派的三个或更多个共享铣削深度中的一者,所述三个或更多个离散层中的每一者垂直于所述2.5轴减材制造过程的铣削方向,并且其中所述基于密度的表示指定已经使用基于密度的拓扑优化生成式设计的所述建模对象的三维形状;处理所述元素子集的具有与相对于所述铣削方向在所述三个或更多个离散层中的最顶层下方的离散层相关联的铣削深度的起始元素,所述处理包括对于所述起始元素中的针对当前层处理的当前起始元素,识别(i)包括具有与在所述当前层上方的层相关联的铣削深度的元素子集并且(ii)靠近所述当前起始元素超过一定量的其他起始元素,所述量至少等于可用于与所述一个或多个计算机控制的制造系统一起使用的最小铣削刀具的半径,计算在相对于所述当前起始元素的所述其他起始元素之间的最大角差,以及响应于所述最大角差大于阈值,通过至少改变所述元素子集中的单独元素的至少一部分的密度值来将所述当前起始元素的所述元素子集的所述铣削深度移动到在所述当前层上方的层,以去除所述建模对象中的不可制造的拐角;以及提供所述建模对象的所述三维形状以用于使用采用所述2.5轴减材制造过程的所述一个或多个计算机控制的制造系统来制造所述物理结构。
所述识别可包括:选择要检查的起始元素,其中这个选定的起始元素的所述元素子集具有与在所述当前层上方的所述层相关联的铣削深度;将所述选定的起始元素的形心与所述当前起始元素的形心进行比较;响应于所述选定的起始元素的所述形心与所述当前起始元素的所述形心之间的距离小于所述量而将所述选定的起始元素确认为所述其他起始元素中的识别的起始元素,其中所述量被设定为等于以下项中的最大值:(i)可用的所述最小铣削刀具的所述半径和(ii)所述当前层的底部与所述最顶层之间的差值的预定义分数;以及重复所述选择、所述比较和所述确认,直到已经检查了具有与在所述当前层上方的所述层相关联的铣削深度的所述起始元素中的每一者。
所述计算可包括:找到所述当前层中的所述当前起始元素与具有与在所述当前层上方的一个或多个层相关联的铣削深度的所述其他起始元素中的每一者之间的二维向量;从所述二维向量确定重心向量;找到所述二维向量中的相对于与所述重心向量的方向相反的方向具有最大角度的第一二维向量;找到所述二维向量中的相对于与所述重心向量的所述方向相反的所述方向具有最小角度的第二二维向量;以及将所述二维向量中的所述第二二维向量从所述二维向量中的所述第一二维向量减去以产生所述最大角差。
找到所述二维向量可包括找到所述当前层中的所述当前起始元素与具有与在所述当前层上方的任何层相关联的铣削深度的所有起始元素中的每一者之间的二维向量。
所述识别、所述计算和所述移动可以是拐角去除过程的一部分,并且所述处理还可包括塌陷去除过程,所述塌陷去除过程包括对于所述起始元素中的针对附加的当前层处理的附加的当前起始元素:第二识别(i)包括具有与在所述附加的当前层上方的层相关联的铣削深度的附加的元素子集并且(ii)邻近所述附加的当前起始元素的附加的起始元素;第二计算在相对于所述附加的当前起始元素的所述附加的起始元素之间的第二最大角差;以及响应于所述第二最大角差大于或等于第二阈值,通过至少改变所述附加的元素子集中的附加的单独元素的至少一部分的密度值来将所述附加的当前起始元素的所述附加的元素子集的所述铣削深度第二移动到在所述附加的当前层上方的层,以去除所述建模对象中的不可制造的塌陷。
在相对于所述当前起始元素的所述其他起始元素之间的所述最大角差的所述阈值可以是一百九十五度,并且所述第二最大角差可以是一百八十度。对于在所述当前层上方的层可从紧接在所述当前层上方的层开始按顺序执行所述拐角去除过程,并且对于在所述当前层上方的层可以最顶层开始按顺序执行所述塌陷去除过程。
所述处理可包括重复所述拐角去除过程和所述塌陷去除过程,直到不执行所述元素子集的铣削深度的进一步移动。所述铣削方向可以是所述2.5轴减材制造过程的两个或更多个铣削方向中的第一铣削方向,可针对所述两个或更多个铣削方向中的每一者单独地执行所述拐角去除过程和所述塌陷去除过程以产生相应的铣削方向特定数据集,并且所述处理可包括将所述相应的铣削方向特定数据集进行组合以更新已经使用基于密度的拓扑优化生成式设计的所述建模对象的所述基于密度的表示。
所述建模对象的所述基于密度的表示可包括不规则网格,并且获得指定所述建模对象的所述基于密度的表示中的多个不同元素子集中的每一者的起始元素的所述数据可包括:根据沿所述铣削方向的轴线的所述元素的形心位置对所述基于密度的表示中的所述元素进行排序,以形成所述元素的排序列表;选择所述排序列表中的下一未指派元素作为下一起始元素;找到所述基于密度的表示中的形心在距所述下一起始元素的形心的预定义距离内的所述元素的下一集;将所述下一元素集指派到所述下一起始元素以形成所述建模对象的所述基于密度的表示中的所述多个不同元素子集中的一者;以及重复所述选择、所述找到和所述指派,直到所述排序列表中没有元素仍未被指派。
获得所述建模对象的所述基于密度的表示可包括使用所述基于密度的拓扑优化、一个或多个设计标准和一个或多个使用中情况来迭代地修改设计空间中的所述建模对象的所述三维形状,所述迭代地修改可包括在所述迭代地修改的至少两次迭代中根据所述2.5轴减材制造过程的所述铣削方向来调整所述生成式设计的三维形状的所述基于密度的表示,并且所述调整可包括所述获得指定所述建模对象的所述基于密度的表示中的多个不同元素子集中的每一者的起始元素的所述数据。
此外,所述提供可包括:使用所述建模对象的所述三维形状根据所述2.5轴减材制造过程来生成用于减材制造机器的刀具路径规范;以及使用所述刀具路径规范用所述减材制造机器来制造所述物理结构的至少一部分或用于所述物理结构的模具。
本说明书中描述的主题的一个或多个方面也可体现在一个或多个系统中,所述一个或多个系统包括:非暂时性存储介质,所述非暂时性存储介质具有存储在其上的计算机辅助设计程序的指令;以及一个或多个数据处理设备,所述一个或多个数据处理设备被配置为运行所述计算机辅助设计程序的所述指令以执行本文所描述的一种或多种方法中的任一种。所述一个或多个系统还可包括2.5轴减材制造机器或可执行2.5轴减材制造过程的其他减材制造机器,诸如3轴或多轴(例如,4轴、5轴、6轴、7轴、8轴或9轴)减材制造机器。
可实现本说明书中描述的主题的特定实施方案以实现以下优点中的一者或多者。不可制造的拐角和/或塌陷(即,窄通道)可容易例如使用拓扑优化从已经生成式设计的对象的3D模型中去除,以通过限于离散层来进行2.5轴机加工。去除过程可在不需要边界表面信息的情况下通过对3D模型(3D网格模型,其中为3D网格中的每个元素定义密度值)的基于密度的表示的数据进行操作来检查刀具干涉。去除过程可应用于被设计用于在两个或更多个铣削方向上进行2.5轴机加工的3D网格模型,在这种情况下,3D模型具有为不同的铣削方向定义的单独(但相交)的离散层。所产生的设计可使用多轴CNC机器来构建,从而允许使用多个铣削方向而无需重新定位和重新锚定工件,这可进一步减少制造零件所需的时间,高于且超出使用2.5轴铣削节省的时间。在一些实现方式中,可通过使用所公开的调整(投影)设计变量的方法来改进生成式设计算法,使得最终产品可由2.5轴机器制造,其中提供的灵敏度信息可对可因调整而改变多少目标和约束进行量化。
此外,去除过程(其修正任何不可到达的拐角和/或塌陷)可确保3D模型的体积将始终增加(或至少保持不变)而不会使3D模型在任何位置更薄,从而避免对零件性能的任何负面影响。另外,与模型的整体体积相比,体积的任何增加都将很小,因此任何最小化的体积目标或约束通常仍将由在通过去除过程修正不可制造的部分之后的最终3D模型满足。应注意,这从因为实施刀具尺寸检查而可添加更多材料但无法减小总材料体积的意义上说使该方法变得保守。
附图和以下描述中阐述了本说明书中描述的主题的一个或多个实施方案的细节。本发明的其他特征、方面及优点将从描述、附图和权利要求中变得显而易见。
附图说明
图1A示出了可用于为生成式设计提供刀具尺寸控制以产生适合于用2.5轴减材制造过程制造的物理结构的系统的示例。
图1B示出了针对具有确定的层边界以在使用2.5轴减材制造过程制造物理结构期间确保刀具接近的生成式设计执行的过程的示例。
图2示出了根据2.5轴减材制造过程的一个或多个铣削方向调整生成式设计的三维形状的基于密度的表示的过程的示例。
图3A示出了将元素布置在铣削线中的示例。
图3B示出了多条铣削线及其铣削深度。
图4A示出了对铣削深度进行排序的示例。
图4B示出了用于排序的铣削深度的指定的层边界的示例。
图4C示出了沿着铣削线对元素拓扑密度进行投影的示例。
图4D示出了关于工件的不同铣削方向的示例。
图5示出了利用层边界确定以产生与2.5轴减材制造过程兼容的3D模型的生成式设计过程的示例。
图6是包括数据处理设备的数据处理系统的示意图,该数据处理设备可被编程为客户端或服务器以实现本说明书中描述的实施方案。
图7A示出了2.5轴机加工中的刀具长度与刀具直径的示例。
图7B示出了无法用给定尺寸的刀具机加工的拐角区域的示例。
图7C示出了识别拐角区域的过程的示例。
图8A示出了被设计用于使用2.5轴制造过程制造的3D模型的起始元素阵列的示例。
图8B至图8D示出了不同元素的刀具相交的示例。
图8E示出了定义角度计算的起始向量的示例。
图8F示出了被识别的无法机加工的塌陷元素的示例。
图9A至图9E示出了去除被设计用于使用2.5轴制造过程制造的3D模型中的不可制造的拐角和塌陷的过程的示例。
各个附图中的相同附图标记和名称指示相同元件。
具体实施方式
图1A示出了可用于为生成式设计提供刀具尺寸控制(并且可能地在生成式设计期间确定层边界)以产生适合于用2.5轴减材制造过程制造的物理结构的系统100的示例。计算机110包括处理器112和存储器114,并且计算机110可连接到网络140,该网络可以是专用网络、公共网络、虚拟专用网络等。处理器112可以是一个或多个硬件处理器,每个硬件处理器可包括多个处理器核心。存储器114可包括易失性存储器和非易失性存储器两者,诸如随机存取存储器(RAM)和闪存RAM。计算机110可包括各种类型的计算机存储介质和装置,其可包括存储器114,以存储在处理器112上运行的程序指令,所述程序指令包括计算机辅助设计(CAD)程序116,所述CAD程序实现三维(3D)建模功能并可包括用于拓扑优化(例如,使用至少一种实体各向同性材料惩罚(SIMP)方法)和数值模拟的一个或多个生成式设计过程。由本文档中描述的系统和技术执行的数值模拟可模拟一种或多种物理特性,并且可使用一种或多种类型的模拟来产生对建模对象的物理响应(例如,结构响应)的数值评估。例如,可使用有限元分析(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。在任何情况下,用户160与CAD程序116交互以创建和修改可存储在3D模型文档130中的3D模型。
初始3D模型可以是生成式设计过程的输入。初始3D模型可以是一组保留体和潜在地障碍体。输入保留几何形状可以是未连接的建模实体,其中生成式设计过程用于产生连接输入保留实体的新的3D几何形状。可通过确定输入模型的边界体积或凸包来获得设计空间131,或者可使用另一种技术来获得设计空间131,该设计空间是在拓扑优化期间要在其内部设计零件的空间的体积。在一些情况下,用户可明确地指定实体作为设计空间131。
用户160可定义生成式设计过程的拓扑优化问题以从起始3D模型产生期望的3D模型,或者输入可以是没有特定初始3D模型的设计空间131。例如,设计空间131可以在其中定义密度场的盒形域(具有nx×ny×nz个元素)。一般来说,输入设计空间131可以是自动生成或用户指定的,除了设计区域外,设计空间131还可包括一个或多个非设计区域,并且每个不同的区域可具有不同的初始体积分数、不同的最小构件尺寸、不同的设计标准(例如,不同的制造约束)和模型相关的默认值。
如本文所描述,在一些实现方式中,CAD程序116实现至少一个生成式设计过程,该生成式设计过程使CAD程序116能够基于设计目标和设计约束(即,设计标准)自动地生成3D模型的一个或多个部分(或整个3D模型),其中基于模拟反馈迭代地优化设计的几何形状。应注意,如本文所用,“优化”(或“最优”或“优化器”)并不意味着在所有情况下都实现了所有可能设计中的最佳设计,而是意味着从可例如在给定可用处理资源的情况下和/或鉴于优化过程的竞争目标在指派的时间内生成的一组有限的可能设计中选择出最佳(或接近最佳)设计。
设计标准可由用户160或由另一方定义并导入到CAD程序116中。设计标准可包括对单个零件的结构完整性约束(例如,要求在零件的使用期间零件在预期结构载荷下不应出故障)和由较大系统施加的物理约束(例如,要求零件在使用期间被容纳在指定的体积内以便不干扰系统中的其他零件;具有线性接触的组件可由CAD软件支持)。可在设计空间131中的整个区域或在设计空间131中的单独区域上定义设计标准中的一者或多者(例如,应力约束)。设计标准还可包括要促进的期望的2.5轴减材制造过程(例如,使用具有指定的刀具类型和尺寸的2.5轴CNC机器,或3轴或多轴CNC机器)。
应注意,机加工中的“2.5维”是指平面,即,表面在一个坐标轴上的投影。在3D空间中,2.5轴减材制造过程的平面平行于相对于机加工的x-y平面,但具有不同的z坐标。这些平面被定义为具有不同的高度,并且2.5轴铣削是根据在2.5维中定义的形状切削材料的过程。这是普遍的机加工过程,因为容易为此类形状生成具有最佳刀具路径的G代码。此外,2.5轴CNC机器具有在所有三个轴上平移的能力,但由于硬件和/或软件限制,一次只能在三个轴中的两个上执行切削操作,例如,机器具有螺线管而不是真正的线性z轴。典型示例涉及针对每个孔中心定位的z-y工作台,其中主轴(z轴)然后通过轴向地插入和缩回来完成固定的钻孔循环。2.5轴机加工的代码明显少于3轴仿形机加工,并且软件和硬件要求(典型地)更便宜。钻孔和开孔中心相对便宜(例如,开始作为2.5轴市场类别的有限任务机加工中心),但许多新型号是3轴的,因为软件和硬件成本随着技术的进步而下降。
可使用可优化3D模型的至少一部分的形状和拓扑的各种生成式设计过程。CAD程序116对3D模型的几何设计的迭代优化涉及拓扑优化,拓扑优化是轻量化的方法,其中通过最小化受设计约束(例如,以体积为约束的结构柔顺度)的目标函数来确定材料的最优分布。拓扑优化主要有两类:基于密度的方法和基于边界的方法。基于密度的方法(例如,SIMP或均质方法)将零件的体积离散化为单独元素,并且为每个离散元素指派密度。然后将密度驱向实体和空洞,同时最小化受约束的目标。相反,基于边界的方法跟踪实体部分的外部界面的形状并且移动边界,使得满足约束并最小化目标,诸如在水平集方法中。
如本文所述,基于密度的拓扑优化过程可指导生成式设计过程以产生有助于使用2.5轴制造过程制造物理结构的设计的最终形状,该制造过程采用两个或更多个z深度平面(2.5维),其中当机床在x-y平面上移动时,机床保持在每个相应平面的z轴位置。为了实现这个目标,生成式设计过程可确定z深度平面(即,3D模型的不同层之间的边界)以及可选地z深度平面的数量,并且生成式设计过程可在基于密度的拓扑优化期间使用这个确定的信息。
应注意,使用建模对象的生成式设计的3D形状的基于密度的表示来完成形状合成过程,但CAD程序116典型地将使用几何形状的不同表示进行3D建模。例如,生成式设计过程(例如,在CAD程序116中实现)的几何形状生成引擎采用基于密度的表示(例如,与体素或四面体网格相关联的密度值),而CAD程序116可将B-Rep模型用于任何输入几何形状以及使用生成式设计过程产生的3D模型132的最终几何形状。在一些实现方式中,生成式设计过程中的基于密度的拓扑优化使用规则的有限元栅格,并且每个元素的密度由相关联的设计变量控制。
另外,不管使用何种特定的基于密度的拓扑优化过程以及如何确定层边界,都可为生成式设计提供刀具尺寸控制,以在使用2.5轴制造过程的制造期间确保刀具接近。下文结合图1B至图5提供了关于生成式设计过程的另外细节。下文结合图1B、图2、图5和图7A至图9E提供了关于提供刀具尺寸控制的另外细节。
一旦用户160对生成式设计的3D模型132感到满意,3D模型132就可存储为3D模型文档130和/或用于生成模型的另一个表示(例如,用于2.5轴减材制造过程的刀具路径规范)。这可根据用户160的请求来完成,或者依据用户对另一个动作的请求来完成,诸如将生成式设计的3D模型132发送到减材制造(SM)机器170,或者可直接连接到计算机110或者经由网络140连接的其他制造机械,如图所示。这可涉及在本地计算机110或云服务上执行的后处理,以将3D模型132导出到从其进行制造的电子文档。应注意,电子文档(为简洁起见将简称为文档)可以是文件,但未必对应于文件。文档可存储在保存其他文档的文件的一部分中、存储在专用于所讨论的文档的单个文件中,或存储在多个协调文件中。另外,用户160可保存或传输3D模型132以供稍后使用。例如,CAD程序116可存储或发送包括所生成的3D模型132的文档130。
CAD程序116可向SM机器170提供文档135(具有适当格式的刀具路径规范)以从毛坯材料137创建完整的结构,其中物理结构包括促进2.5轴机加工的经优化的拓扑和形状,即,为2.5轴铣削生成的楼梯状设计。SM机器170可采用一种或多种减材制造技术,例如,计算机数控(CNC)铣床,诸如多轴、多刀具铣床。SM机器170可以是2.5轴CNC机器,其中主轴171和附接的刀具172(例如,从一组可用的刀具选择的旋切机或槽刨机)的运动自由被限制在x-y平面以进行大多数铣削,并且仅在Z方向上以离散步长移动。
然而,SM机器170也可以是3轴CNC机器,其中主轴171在x、y和z维度中的每一个上都具有完全的运动自由,即,刀具172可在所有的三个轴上同时地移动。2.5轴铣削过程可用3轴铣床来执行,并且不需要使用更高轴机器的任何特征,因为2.5D图像是包含(x,y)平面中的每个点的至多一个深度(z)值的简化的三维(x,y,z)表面表示。因此,SM机器170也可以是多轴机器,其中当切削工件137时,刀具172可在三个轴(x、y、z)上平移并且同时在两个轴旋转(翻转和偏转)。应注意,这些额外的运动自由可通过主轴171的计算机控制的运动、用于正被机加工的零件的夹具或锚点(例如,机器工作台)173的计算机控制的运动或这两者的组合来实现。然而,由于生产2.5轴设计,因此根本不需要或在大多数的铣削操作中不需要使用3轴或多轴机器的高级能力。
即使当SM机器170具体地不是2.5轴机器时,使用2.5轴减材制造过程也是有利的。这是因为以下事实:一次仅在2个维度上执行切削操作可更简单地生成更接近最佳切削刀具路径设计的刀具路径规范(例如,G代码)。将零件设计为具有分层或楼梯形状可导致对减材机器刀具路径进行更快速的编程。此外,通过在大多数的切削操作期间将铣削刀具的移动限制到2轴(以在垂直于铣削刀具的平面中连续移动但平行于铣削刀具采用离散步长来进行减材过程),制造过程的效率可提高,即,机加工时间更短,因为2.5轴减材制造过程可按顺序快速地去除材料层,并且创建出经常具有一系列不同深度的“口袋”的零件。另外,由于2.5轴机加工设备比3轴和5轴机加工设备更常见且更便宜,因此为CAD程序116提供可将设计限制为2.5轴可制造零件的生成式设计过程增加了生成式设计过程的实际可用性。
在任何情况下,CNC机器170应在机加工期间以某种方式锚定毛坯以防止意外移动,并且有时应该、改变毛坯的锚定位置(通过人工操作,或通过存在其他方法),使得毛坯的先前在锚固过程中使用的部分可被暴露出来以供CNC机器170进行后续切削。零件及其锚定的这些取向或布置被称为“零件设置”。依据旋转工件的能力(通常通过采用不同的零件设置,或通过旋转多轴CNC机器中锚定到工件的刀具或工作台)或旋转刀具的能力(在多轴CNC机器中,但不是在2.5轴CNC机器中),可使用多个铣削方向。
因此,不管SM机器170的运动自由度和锚定能力如何,SM机器170都可执行2.5轴机加工过程,因为刀具在两个轴上同步地移动,而刀具在第三轴上增量移动以在零件几何形状中创建出一系列“层”。每一层的壁和地板可分别由刀具的侧面和端部切削,这比轮廓(“3轴”)表面更高效。同时,与其中刀具总是一直切穿零件的2轴机加工相比,2.5轴机加工提供对几何形状的改进的控制。因为CAD程序116中的生成式设计过程产生2.5轴兼容几何形状,所以这导致显著节省SM机器170的编程时间和机加工时间,作为将更简单的几何形状用于零件的结果,即使SM机器170可处理零件的更复杂的几何形状也是如此。
图1B示出了针对具有确定的层边界以在使用2.5轴减材制造过程制造物理结构期间确保刀具接近的生成式设计执行的过程的示例。例如,由CAD程序116获得185建模对象的基于密度的表示以及指定基于密度的表示中的元素子集的起始元素的数据。基于密度的表示是建模对象的,其中将利用一个或多个计算机控制的制造系统使用2.5轴减材制造过程来制造对应的物理结构,如本文档中所述。此外,数据是指定建模对象的基于密度的表示中的多个不同的元素子集(例如,铣削线)中的每一者的起始元素的数据。
在一些实现方式中,获得185基于密度的表示和指定起始元素的数据可涉及从另一个过程接收基于密度的表示和指定起始元素的数据。在一些实现方式中,获得185基于密度的表示和指定起始元素的数据可生成基于密度的表示和指定起始元素的数据。
例如,获得185可涉及例如由CAD程序116获得185A对象的设计空间、一个或多个设计标准以及一个或多个使用中情况,以用于产生要使用2.5轴减材制造过程制造的物理结构的生成式3D模型。建模对象的设计空间是要在其内部设计零件的体积。设计空间可包括包含对象的三维拓扑的一个或多个外部形状的初始规范的包围体积。如上所述,设计空间可包括在CAD程序116中设计或加载到其中的3D模型,其用作生成式设计过程的优化域的子空间,和/或指定生成式设计几何形状产生的边界条件的一组输入实体,例如,使用UI 122选择的B-Rep以指定保留来用作与更大3D模型或单独的3D模型中的其他部件的连接点的子空间。
设计标准可包括对象的设计目标和设计约束。设计目标可包括但不限于最小化废料、最小化零件重量以及最小化柔顺性或最大化刚度、最小化应力和/或最小化或最大化零件的其他固有属性,并且用于推动形状合成过程朝向更好的设计。虽然不是必需的,但设计目标典型地植根于设计的模拟,例如,线性静态、流体动力学、电磁等。设计约束可包括在任何生成的设计中应满足的各种几何和物理特性或行为(也可接受对单个零件或整个组件的要求);示例包括最大质量、载荷下的最大变形、最大应力等。
此外,可通过使用设计参数和设计变量的不同组合来制定不同的生成式设计过程。在一些实现方式中,设计参数可包括通过UI 122接收的各种类型的输入,诸如在系统100中的CAD程序可用的不同生成式设计合成方法中的选择。在一些实现方式中,可用的生成式设计合成方法可包括提供拓扑优化的基于密度的方法的SIMP方法。其他生成式设计合成方法也是可能的并且可由系统100中的CAD程序116提供。响应于来自用户160的输入,可例如由CAD程序116使用设计参数和设计变量的不同组合。例如,用户160可选择不同的生成式设计合成方法以在单个3D模型内的相应不同设计空间内使用。
此外,获得185A的一个或多个使用中情况是针对将使用2.5轴减材制造过程从生成式设计的零件制造的物理结构。一个或多个使用中情况可包括预期要由物理结构支撑的一个或多个载荷,并且可与数值模拟的设置相关联,例如,将与生成式设计的零件的经优化3D拓扑一起使用的FEA模型中的元素的密度。然而,如本文所用,“使用中情况”通常是指单独的操作约束,在这些操作约束下评估零件性能,并且这些操作约束对应于各种类型的物理模拟的一个或多个边界条件集,诸如流体流动模拟、电磁(EM)行为模拟、多物理场模拟等。
一般来说,数值模拟的设置可包括要模拟的一个或多个物理特性和要执行的一种或多种类型的模拟,以及潜在的替代建模或其他近似方法。在一些实现方式中,数值模拟的类型是针对程序的所有用途或鉴于程序中的已启动生成式设计过程的特定上下文预定义的。此外,用于数值模拟的设置可包括与要执行的数值模拟的类型相关联的至少一组载荷条件和/或其他物理环境信息,即,使用中情况。
在指定生成式设计空间和设计标准的情况下,可例如由CAD程序116使用一个或多个生成式设计过程来产生185B一个或多个3D模型,其中对应于这些3D模型的物理结构被设计为使用2.5轴减材制造过程来制造。例如,由CAD程序116执行的一个或多个生成式设计过程包括至少一个基于密度的生成式设计过程(例如,使用SIMP方法),其涉及例如由CAD程序116迭代地修改建模对象的生成式设计的三维形状。这包括根据一个或多个设计标准和一个或多个使用中情况在设计空间中修改三维形状的几何形状和三维形状的拓扑两者。特别地,过程185B可产生在满足多个约束的同时最小化目标函数的最优拓扑设计,其中设计与2.5轴机加工兼容。在过程185B中对生成式设计的3D形状和拓扑的迭代更新继续进行,直到生成式设计满足所有约束并最小化(或最大化)目标。
3D模型的产生185B可包括根据2.5轴减材制造过程的一个或多个铣削方向调整生成设计的三维形状的基于密度的表示。调整可在3D形状的整个迭代修改中进行、仅在迭代修改的一些迭代中进行,或者在拓扑优化的迭代修改结束之后进行。但不管是否在拓扑优化循环中进行调整,调整都会指定对象的三个或更多个离散层之间的边界,并且产生与2.5轴减材制造过程兼容的一个或多个生成式3D模型。
此类3D模型具有对应于2.5轴减材制造过程的离散层,其中离散层在一个或多个3D模型中创建平坦区域,所述平坦区域通过促进侧铣(使用刀具的侧或侧面来去除毛坯材料)和端面铣(使用刀具的端或面来去除毛坯材料)来促进对应的物理结构的制造。应注意,尽管2.5轴可制造性不需要被实现为拓扑优化过程中的正式约束,但对建模对象的生成式设计的3D形状的迭代修改185B有效地约束几何形状生成过程以产生可使用2.5轴机加工制造的形状。
其他方法也可能用于获得185基于密度的表示和指定起始元素的数据。但不管这些是接收的还是生成的,元素子集中的每一者都具有铣削深度,该铣削深度是分别为三个或更多个离散层指派的三个或更多个共享铣削深度中的一者,三个或更多个离散层中的每一者都垂直于2.5轴减材制造过程的铣削方向,并且基于密度的表示指定已经使用基于密度的拓扑优化生成式设计的建模对象的三维形状。在该数据可用的情况下,例如由CAD程序116处理190具有与在三个或更多个离散层的最顶层下方(相对于铣削方向)的离散层相关联的铣削深度的元素子集的起始元素。
处理190可进而针对每个起始元素(即,针对当前层正在处理的起始元素中的当前起始元素)执行并且包括以下操作。例如由CAD程序116识别190A(i)包括具有与在当前层上方的层相关联的铣削深度的元素子集并且(ii)更接近当前起始元素超过一定量的其他起始元素。该量至少等于可用于一个或多个计算机控制的制造系统的最小铣削刀具的半径。下面结合图7A至图8E和图9C来提供关于确定该量的另外细节。相对于当前起始元素来计算190B其他起始元件之间的最大角差。下面结合图9C至图9E来提供关于计算最大角差的另外细节。最后,例如由CAD程序通过响应于最大角差大于阈值而至少改变元素子集中的单独元素的至少一部分的密度值来将当前起始元素的元素子集的铣削深度移动190C到在当前层上方的层,以去除建模对象中的不可制造的拐角。下面结合图7A至图8E、图9A、图9C和图9D来提供关于改变铣削深度以去除不可制造的拐角和不可制造的塌陷(即,窄通道)的另外细节。
应注意,处理190也可被包括在产生建模对象的生成式设计的3D形状的生成式设计过程中。例如,处理190可被包括在生成式设计过程185B中。处理190可在3D形状的整个迭代修改中进行、仅在迭代修改的一些迭代中进行,或者在拓扑优化的迭代修改结束之后进行。但不管是否在拓扑优化循环中进行处理190,处理190都会重新分配对象的三个或更多个离散层之间的铣削深度,以提高与2.5轴减材制造过程兼容的生成式3D模型的可制造性(例如,确保工具可接近性)。
在一些实现方式中,例如在显示装置120上的UI 122中将生成式设计处理的结果连同接受或拒绝设计的选项一起呈现给用户。在一些实现方式中,用户可针对每个设计研究从最终设计或多种先前迭代中的任一者中进行选择。在一些实现方式中,可将由生成式设计过程产生的两个或更多个3D模型连同设计复杂性与制造成本(或各种其他感兴趣量中的任一者)的权衡分析一起呈现给用户。权衡分析可帮助用户160决定是接受还是拒绝所呈现的3D模型中的一个或多个3D模型。
如果设计被拒绝,则图1B的过程可返回到例如由CAD程序116获得185A新的设计空间和/或新的设计标准以用于产生新的生成式3D模型。一旦设计未被拒绝,则图1B的过程可例如通过CAD程序116来提供195具有生成式设计的形状和拓扑的对象的3D模型,以用于物理结构的2.5轴减材制造。提供195可涉及将3D模型发送或保存到持久性存储装置以用于使用SM制造系统来制造对应于对象的物理结构。在一些实现方式中,提供195涉及例如通过CAD程序116来生成195A使用3D模型的计算机控制的SM制造系统的刀具路径规范,以及例如通过CAD程序116来利用计算机控制的SM制造系统使用为2.5轴SM机加工生成的刀具路径规范制造195B对应于对象的物理结构的至少一部分。在一些实现方式中,提供195可包括利用2.5轴减材机加工使用生成195A的刀具路径规范来制造用于物理结构的模具,其中3D模型可以是将使用2.5轴减材制造过程制造的模具的模型。
提供195的3D模型是结合生成式设计合成方法或结合生成式设计输出的后处理来处理190的3D模型。例如,在一些实现方式中,处理190通过生成式设计合成方法产生的3D网格模型以改进可制造性(例如,去除不可制造的拐角和不可制造的塌陷)来作为3D模型的最终的刀具尺寸条件局部修正,并且然后3D模型可在被提供195之前转换为防水的B-Rep 3D模型。在一些实现方式中,可从基于密度的生成式设计过程的输出中提取的多边形网格或者直接从基于密度的生成式设计过程中获得的生成式设计数据可例如通过CAD程序116转换为边界表示(B-Rep)模型和/或参数特征模型。边界表示模型或参数特征模型可例如作为具有参数特征的草图几何形状进行编辑。
因此,除了处理3D模型的基于密度的表示以在使用2.5轴制造过程的制造期间考虑刀具接近并且潜在地确定用于2.5轴制造过程的3D模型的离散层的边界之外,本文档中描述的方法可例如在CAD程序116中实现,以提供以下两者:(1)对生成式设计过程的实质性用户控制,以及(2)用于提供在制造对应于对象的物理结构中使用的生成式设计的3D模型的控制函数。在任何情况下,目标都是产生促进对象的2.5轴减材制造的对象的3D模型。
图2示出了根据2.5轴减材制造过程的一个或多个铣削方向调整生成式设计的三维形状的基于密度的表示的过程的示例。图2的过程包括处理190的示例并且还包括来自图1B的生成式设计过程185B中的调整的示例。图2的过程包括收集200与生成式设计的三维形状的基于密度的表示中的单独元素的不同子集相关联的不同铣削深度。
收集200可包括将生成式设计的三维形状的基于密度的表示中的单独元素布置205成平行于铣削方向的铣削线,其中铣削线中的每一者对应于单独元素的不同子集中的一者。例如,可直接在基于密度的表示的物理域上定义铣削阵列。应注意,不需要虚拟嵌入域(在其中建立铣削过程)和物理模型的插值(在虚拟域内使用坐标变换和映射)。
图3A示出了将元素布置在铣削线中的示例。在所示的示例中,假定铣削方向是在负z坐标方向上。箭头300表示平行于刀具的铣削方向305的铣削线。在每个铣削线300中,刀具接触的第一元素310被称为起始元素。在一些实现方式中,布置205涉及基于铣削方向305来识别起始元素、为每个识别的起始元素建立铣削线、找到剩余元素中的哪些与每个铣削线相交,以及将沿每个铣削线的元素序列存储在阵列中。
应注意,既定铣削方向是负z坐标方向仅是为了便于呈现,并且可使用各种不同的铣削方向,例如,3轴或多轴铣削的45度角铣削方向。此外,图3A中所示的元素中的数字1至64表示规则笛卡尔栅格网格中的有限元。如果域是在矩形或长方体盒中,则可根据它们的坐标或它们所属的表面来确定起始元素。如果所有元素从最低坐标值开始排序并且首先在x方向上增加、接下来在y方向上增加且最后在z方向上增加,则算法可简单得多。在此类实现方式中,如果x方向、y方向和z方向上的元素数量是已知的,则找到起始元素就很直接。
在元素不是这样排序的实现方式中,邻接阵列和铣削方向阵列可用于沿每个铣削线找到序列中的起始元素和后续元素。在一些实现方式中,基于元素坐标和位置来搜索网格以找到沿铣削线在当前序列中接下来出现的那些元素。在一些情况下,用户、几何形状建模器或预处理器阶段可提供(非传统)元素定序,从中可找到铣削线相交点和相邻的元素。另外,在一些实现方式中,考虑了对称,并且铣削方向应朝向或平行于对称平面。例如,当y平面是对称平面时,铣削方向不能在正y坐标正方向上。
因此,虽然图3A中呈现的示例表示规则笛卡尔栅格网格,但不要求在规则笛卡尔栅格网格中使用有限元。每个网格元素不必是正方形(2D)或立方体(3D)。每个网格元素可以是矩形(2D)和矩形长方体(3D)。此外,一些实现方式将对其他类型的网格元素和网格类型进行操作,诸如由四面体元素组成的网格和/或非结构化网格。例如,对于不规则的网格,可使用元素中心坐标来确定元素是否属于特定铣削线,并且由于元素中心坐标可能不在铣削线上,因此可使用公差值来确定元素被接受为属于铣削线。一般来说,对于给定的网格和给定的铣削方向,所有元素都可布置在铣削线中,其中每个铣削线都有唯一的起始元素。此外,2.5轴铣削条件可与各种类型的约束一起应用,诸如最小构件尺寸和最大构件尺寸。
返回图2,收集200还可包括聚集210沿每个铣削线的元素的密度,使得元素的聚集密度沿每个铣削线单调增加直到一个或另一个最大值的最大值,例如,用户提供的值。聚集210可包括沿铣削线累加密度值并对累加的密度值进行投影,如下所述。应注意,下面的推导仅考虑单个铣削线,但相同的过程可应用于每个铣削线。
初始密度ρi(i=1、.....、N)被称为蓝图密度。这些是用于优化的设计变量。然后,沿刀具方向,对密度进行累加,如下表1所示。
ρ1 | ρ2 | ρ3 | ρ4 | ρ5 | ρ6 | ρ7 | ρ8 |
蓝图密度
累加的密度
表1
累加的密度可写为:
因此,每个铣削线中的第一元素保持其本身的密度,第二元素得到第一元素和第二元素的总和,第三元素得到第一元素、第二元素和第三元素的总和等。这个累加过程保证密度沿刀具方向单调增加。因此,防止在刀具路径中形成孔。
然而,累加的密度可能大于一。在一些实现方式中,为了使最大密度为一,应用了平滑亥维赛阶跃函数。当小于阈值η时,投影密度变为零,否则变为一。在数学上,亥维赛函数可被定义为/>其中当a>0时,H(a)为一,并且当a<0时,为零。然而,由于亥维赛函数是不可微分的,因此可利用以下形式的平滑亥维赛阶跃函数:
其中β是用于控制近似的参数。随着β→∞,平滑的亥维赛阶跃函数近似于真正的阶跃函数。在一些实现方式中,η=0.5并且β=10,这将密度限制在零和一之间,并且可定义铣削深度,其中当然,其他值也是可能的,包括用于铣削深度的密度值的不同截止。尽管如此,对于给定的铣削线,可累加元素的拓扑密度,使得拓扑密度沿每个铣削线单调增加,并且可对累加的密度进行投影,使得最大密度值不超过1.0。
另外,收集200还可包括使用每个铣削线中的聚集密度来识别215每个铣削线的铣削深度。例如,使用投影密度,可将每个铣削深度识别为密度=0.5的位置。一般来说,可将每个线的铣削深度设定为介于0和1之间的中间密度值,例如,用户提供的值。
图3B示出了多个铣削线320(L1、L2、......、Ln)及其铣削深度325(d1、......、dn)。因为密度沿每个铣削线单调增加,所以每个铣削线的铣削深度被定义为累加密度超过共同阈值的点,例如,当累加密度超过时,并且每个不同的铣削线可具有不同的铣削深度。应注意,由于不同的铣削线具有不同的铣削深度,因此机床将需要针对不同的铣削线切割不同的高度,即,仍需要3轴或更多轴铣削。这些不同的铣削深度325不适用于2.5轴铣削。为了解决这个问题,可将铣削线分组在一起,并且每一组内的铣削线可被指派相同的铣削深度。
返回图2,可将不同的铣削深度分组220成三个或更多个离散层中的相应层,其中三个或更多个离散层中的每一者垂直于2.5轴减材制造过程的铣削方向。离散层的数量可以是在3D形状的迭代修改期间保持固定的用户输入值。替代地,执行调整的程序(例如,CAD程序116)可在拓扑优化循环之外或之内确定离散层的数量。例如,如果用户输入指示六层,则如果两层具有相同的深度,则程序可以五层结束,即,程序确定导致离散层比用户指定的少的最优分组。
在一些实现方式中,程序可确定在由用户提供的层数范围内的离散层的数量,例如,层数(在该范围内)可被包括在由优化器控制的变量集中。在一些实现方式中,程序可通过划分层直到每个层至少包括用户提供的数量的元素来确定离散层的最优数量。在一些实现方式中,程序继续划分层,直到两层之间的间隙的最小差异小于用户提供的阈值。此外,在一些实现方式中,可通过对输入到生成式设计过程的任何几何形状进行预处理,诸如通过识别任何输入的保留体的一个或多个平面(其垂直于铣削轴)来确定离散层之间的一个或多个平面。
分组220可包括对不同的铣削深度进行排序225以产生排序的铣削深度值。图4A示出了对铣削深度进行排序的示例。如图所示,d1、d2、......、dn是所有铣削线的铣削深度400。这些铣削深度400可按升序进行排序405,其被表示为图4B示出了用于排序的铣削深度410的指定的层边界的示例。应注意,图4B是假想曲线图,但它示出了当铣削线的深度相似时对铣削线进行分组的逻辑。此外,对铣削深度进行分组的其他方法也是可能的。例如,在一些实现方式中,可使用将数据划分为给定的组集合的聚类算法,诸如支持向量机算法。
参考图2,在一些实现方式中,分组220可包括识别230排序的铣削深度值中的两个或更多个最大差值,并且基于排序的铣削深度值内的每个子集的铣削深度关于两个或更多个最大差值的位置将单独元素的不同子集中的每一者指派235到三个或更多个离散层中的一者。例如,层的边界可被定义为铣削深度跳跃最大的点。参考图4A,可针对所有铣削线计算415铣削深度的差值例如,计算并存储当前和先前的铣削深度之间的差值。
在所有的Δdi中,可选择最大的NLEVEL铣削深度差值(其中NLEVEL是用户定义的或者部分地或完全地自动确定的,如上所述)作为离散层之间的边界。在图4B中,这些边界被表示为L1、L2、......、L6。如果NLEVEL=3,则只有L1、L2和L3用于层边界。一旦定义了层边界,在两个边界之间(或在两个极端边界的相应侧上)的所有元素都属于2.5轴机加工的同一级别。例如,可对铣削深度差值进行排序,并且最大差值可用于识别第一边界,第二大差值可用于定义第二边界等,直到定义了铣削深度的NLEVEL组。此外,应注意,在生成式设计优化期间,不需要在每次迭代中都对深度进行排序,更不用说频繁地排序。例如,如果一次迭代中的设计变量的最大变化相对较小,则这意味着可能不需要排序。因此,在一些实现方式中,随着过程接近最优设计(接近收敛),可能不需要在每次迭代中对铣削深度进行排序。
再次返回图2,分组220可包括基于与指派给离散层的元素子集相关联的铣削深度来设定240三个或更多个离散层中的每个相应的离散层中的单个铣削深度,例如,同时保留总材料量。在一些实现方式中,每一组中的单个铣削深度被定义为组内的所有铣削深度的平均值。应注意,拓扑优化通常包括用作目标或约束的总材料量。因此,当调整用于2.5轴铣削的设计时,可能优选的是在调整之前和之后保持相同的总材料量。通过对组中的所有深度进行平均来计算层深度导致自动保留所使用的材料量,从而提高拓扑优化过程相对于2.5轴铣削的调整的准确性。
改变245基于密度的表示中的单独元素的至少一部分的密度值,使得为三个或更多个离散层中的每一者产生单个铣削深度。应注意,并非在所有情况下都需要改变所有网格元素,因为一些元素可能在2.5轴机加工要求之外的区域中。还应注意,除了潜在地具有两个或更多个设计区域和非设计区域外,不同的设计区域还可具有不同的2.5轴条件,例如,层数和铣削方向。改变245可涉及使用平均深度来重新指派每一组内的所有铣削线的铣削深度(使得组内的所有铣削线将具有相同的铣削深度),如下。
对于给定的层L,假定有ML个铣削线。由于所有铣削线都具有不同的铣削深度,因此平均铣削深度可用作层L的代表性铣削深度。令di(i=1、.....、ML)为该层的铣削深度。然后,平均铣削深度可被定义为
一旦计算出层L的平均铣削深度,就可使用平均铣削深度来重新计算层中的所有铣削线中的所有元素的拓扑密度:
在等式(4)中,参数β可与在等式(2)中相同,也可不同。在一些实现方式中,可使用β=η=3.0的相同值。沿铣削线,如果元素深度位置小于平均铣削深度,则元素的密度为零,否则密度为一。应注意,除了等式(4)的方法之外,改变密度以在每一组中强制共享铣削深度的附加方法也是可能的,诸如使用阶跃函数。一般来说,可使用在0和1之间的任何合适的单调增加函数。
图4C示出了沿铣削线对元素拓扑密度进行投影的示例450。在该示例中,沿铣削线有100个元素,并且平均铣削深度为25。通过对同一组中的所有铣削线重复此投影,将使所有铣削线具有相同的铣削深度;就是说,铣削平面被定义为平均铣削深度为高度。
现在为止的描述集中于仅针对一个铣削方向优化零件形状。但等式(4)中的投影拓扑密度可应用于每个铣削方向。令NT为铣削方向的总数。然后,拓扑密度可由下式确定:
这个密度可存储在阵列中,而优化将ρi用作主变量。因此,所描述的实现方式可扩展到两个或更多个铣削方向。两个或更多个铣削方向可通过用户输入或自动检测来确定。
图4D示出了关于工件480的不同铣削方向485、490、495的示例。两个或更多个铣削方向可包括一对或多对具有相反符号的平行(或共线)铣削方向490、495(即,零件被机加工、翻转并再次机加工)。两个或更多个铣削方向还可包括非平行铣削方向485、490。然而,本说明书中描述的方法适用于在图4D所示之外的许多附加的非平行(和非共线)的铣削方向。实际上,铣削方向的数量和布置可完全由用户控制。
另外,在产生建模对象的3D形状期间,可考虑用于制造结构的刀具的尺寸。应注意,即使当3D模型由具有不同高度的平坦平面组成时,这也不意味着所有的2.5维平面都可使用2.5轴铣床来机加工。为了实用,该刀具实际上必须可接近平面上的每个点。首先,刀具长度必须足够大,使得刀具可到达具有特定高度的平面。另外,由于刀具的横截面是圆形的,因此它无法切削凹形尖角。因此,拓扑优化设计应考虑刀具长度和刀具尺寸,使得可适当地对工件进行机加工。
因此,可应用刀具尺寸条件来修改在制造期间无法由刀具机加工的那些元素的铣削深度,并且这种修改提高了建模对象的可制造性。图7A示出了2.5轴机加工中的刀具长度与刀具直径的示例。各种刀具702可以、附接到减材制造机器的主轴701。如图7A所示,如果假定刀具702的长度大于所需的切削深度,则无需考虑主轴701的头部与待切削成正在制造的零件的物体(工件)705之间的干涉。因此,只需要考虑对刀具702的干涉。
如果用户(或另一个过程)提供了刀具702的最大长度,则在拓扑优化期间,机加工深度受该最大刀具长度限制。在一些实现方式中,在利用2.5轴条件的拓扑优化期间,可使用等式(3)来计算每一层处的铣削深度。令最小刀具长度(由用户或另一个过程提供)为Lmin,则等式(3)中的平均铣削深度可被调整为
如果则/>
然而,因为例如由于颤振而优选不使用小直径刀具来切削深平面,因此刀具尺寸约束可限于刀具直径取决于刀具长度的情况。因此,在一些实现方式中,刀具702长度与刀具702直径之间的关系是:
一般来说,用于制造设计的零件的给定层的刀具702的长度将足够长以使刀具702可切削到层的底部,而没有来自主轴701的头部的任何干涉,即,大于给定层的底部与最顶层的顶部之间的差值,并且用于制造设计的零件的给定层的刀具702的直径(或半径)将是给定层的底部与最顶层的顶部之间的差值的预定义分数(例如,1/2)。
尽管如此,仍可能存在不同尺寸的刀具702无法到达的建模对象的元素。图7B示出了无法用给定尺寸的刀具715机加工的拐角区域710的示例。与刀具尺寸有关的主要问题是圆形刀具715无法切削拐角710,如图7B所示。在图7B中,圆圈是刀具715的横截面的俯视图。预期刀具715将切削L形,因为它遵循刀具路径717。拐角区域710无法使用刀具715机加工,并且应向上移动到上层;应注意,区域710的尺寸取决于刀具715的直径。因此,刀具尺寸条件应用的关键问题是如何识别拐角区域并将拐角区域中的那些元素移动到上层。
图7C示出了识别拐角区域的过程的示例。对于正在处理的当前层,例如,从图7A中的对象705的3D模型中的底层开始,基于层深度和最小可用刀具尺寸来确定720当前层的刀具尺寸。在一些实现方式中,最小刀具直径dmin由用户例如在输入文件中提供,和/或由另一个过程提供。该最小刀具直径可以是所有可用刀具的最小值,也可以是可用于机加工当前层的那些刀具的最小值。此外,可诸如通过使用上面的等式(7)来计算默认刀具直径d刀具,并且可将要使用的刀具直径确定720为(amin,d刀具)的最大值。
选择725当前起始元素,其中起始元素在正在处理的当前层中具有铣削深度。在一些实现方式中,使用上面结合图2描述的过程步骤200至245来确定起始元素和铣削深度。在一些实现方式中,起始元素和铣削深度与生成初始2.5轴兼容设计的过程分开确定。在一些实现方式中,使用下面结合图9B描述的过程来确定起始元素和铣削深度。在任何情况下,为基于密度的表示识别的每个起始元素具有为起始元素指定的铣削深度,例如,起始元素的值阵列中的索引值,其中每个索引值针对起始元素指定沿铣削方向的三个或更多个离散层中的一者,并且因此容易识别在当前层中具有铣削深度的铣削线的起始元素。
对于当前起始元素,识别满足与当前起始元素有关的特定标准的其他起始元素。为此,选择730在当前层上方的层来检查刀具尺寸条件。例如,如果当前层是离散层3,则要检查的在当前层上方的初始层是离散层2。选择要检查的起始元素735,其中该选定的起始元素的元素子集具有与在当前层上方的层相关联的铣削深度。与选择当前起始元素一样,容易识别在当前层上方的层中具有铣削深度的铣削线的起始元素,而不管如何确定起始元素和铣削深度数据。因此,例如,选择735在离散层2中具有其铣削深度的下一起始元素。
将选定的起始元素(例如,其铣削深度在层2中)的形心与当前起始元素(例如,其铣削深度在层3中)的形心进行比较740。这些形心之间的距离的检查745确定正在检查的起始元素是否应被包括在可能使当前层中的起始元素在零件的机加工期间不可到达的其他起始元素的列表中。应注意,该距离是在垂直于铣削方向的投影平面上测量的,例如,在x-y维度上测量的距离;换句话说,被检查的距离是铣削线之间的距离。如果形心之间的距离小于要使用的刀具半径(如确定720的那样),则将选定的下一起始元素确认750为可能产生不可接近的拐角的其他起始元素中的一者。如果形心之间的距离小于要使用的刀具半径(如确定720的那样),则选定的下一起始元素不是可能产生不可接近的拐角的其他起始元素中的一者。
该选择735、比较740和确认750的过程重复进行,直到已经检查755具有与在当前层上方的层相关联的铣削深度的起始元素中的每一者。因此,过程操作735至755表示来自图1B的识别190A的示例。此外,当在相对于当前起始元素的其他起始元素(其已经被确认750)之间的最大角距离大于阈值时,将当前起始元素的铣削深度移动760到在当前起始元素上方的层。这可涉及改变对应于起始元素的基于密度的表示中的单独元素的至少一部分的密度值,诸如使用等式(4),以将当前起始元素的铣削深度重新指派到较高层。
另外,可进行对在当前层上方的更多层的检查765,并且当这样的层可用时,可通过选择730在当前层上方的下一层并且根据需要进行铣削深度的附加向上移动760来重复该过程。同样,当仍要检查770当前层中的更多起始元素时,通过选择725当前层中的下一当前起始元素来重复图7C的过程,并且当仍要处理775更多层时,通过确定720下一当前层的刀具尺寸来重复图7C的过程。因此,过程操作760对应于来自图1B的计算190B和移动190C,并且过程操作730至755和765至775对应于来自图1B的识别190A。
图8A示出了被设计用于使用2.5轴制造过程制造的3D模型805的起始元素阵列800的示例。在该示例中,使用起始元素的阵列800来实现刀具尺寸控制,该阵列包括每个铣削线的层信息。对于给定的铣削方向802,每个起始元素是刀具在接近3D模型805时遇到的基于密度的表示中的第一元素。在该示例中,3D模型805具有三层:层1具有最短深度,层2具有较长深度,并且层3具有最长深度。在一些实现方式中,为了计算方便,对所有起始元素执行坐标变换,使得它们在x-y平面中,其中铣削方向802在负z坐标方向上。但并非在所有实现方式中都需要这样的坐标变换。
矩形栅格800是起始元素的阵列,其具有指示起始元素的铣削线的铣削深度的相关联信息。在该示例中,起始元素阵列800包括该信息作为层索引值,所述层索引值指示起始元素的铣削线所属的层,并且因此铣削深度随层索引而增加。如图8A所示,索引=1的起始元素属于层1,索引=2的起始元素属于层2,并且索引=3的起始元素属于层3。在一些实现方式中,这些层索引值可用作来自结合图2描述的分组220的输出。在一些实现方式中,与为2.5轴铣削确定层边界分开计算这些层索引值。
由于铣削层1是顶层,因此它不会被任何其他层影响(在从该铣削方向制造期间)。因此,不需要检查第一层的刀具尺寸。铣削层2将受层1影响,但不受层3影响,因为后者比层2更深(当刀具沿铣削方向802接近工件时,层3中的元素不能阻止刀具到达层2中的元素)。因此,仅需要对照从1到“K-1”的层来检查“K”层的工具尺寸控制。刀具尺寸检查的基本思想是如果有刀具无法到达的任何元素(铣削线中的铣削深度处的元素),则将该元素的指派层向上移动,以便它可在上方层中被接近。应注意,这从因为实施刀具尺寸检查而将添加更多材料的意义上说也使该方法变得保守。在一些实现方式中,优化已经与3轴铣削条件收敛,并且因此刀具尺寸条件不是为了提供全新的最优设计。相反,刀具尺寸条件是局部修正,以使得可能用给定的刀具尺寸机加工工件(根据3D模型805)。
即便如此,在一些实现方式中,可通过调整其中通过刀具尺寸检查作出改变的三个或更多个离散层中的每一者中的共享铣削深度来保留总材料量,从而在拓扑优化期间保持用作目标或约束的总材料量。例如,可计算因刀具尺寸检查而通过调整铣削深度来添加的材料量,可计算属于当前层的铣削线的数量,并且然后可通过将总添加材料除以当前层中的铣削线的总数来调整当前层的平均深度。
图8B至图8D示出了不同元素的刀具相交的示例,其说明了如何检测元素是否可被切削的策略。圆圈810表示刀具的横截面。刀具直径覆盖8个元素,如图8B所示。对于属于层2的给定元素E1,搜索在刀具半径内(即,在垂直于铣削方向802的投影平面中)的元素,以找到属于上层(在这种情况下只有层1)的那些元素。通过测量E1与距离小于刀具半径的上层中的所有元素之间的角度,可识别E1与上层中的元素之间的最大角度和最小角度。
角度Δθ的范围可被计算为最大角度和最小角度之间的差值。在图8B中的E1的情况下,角度Δθ的范围是113°。相反,在图8C中的E2的情况下,角度Δθ的范围是233°。显然,可切削E1(可在没有来自层1中的元素的干涉的情况下通过在-y方向上将刀具向下移动来到达层2中的E1),但无法切削E2(移动刀具以避免来自层1的元素的干涉会阻止刀具的任何部分到达层2中的E2)。通过对不同的元素应用相同的想法,图8D示出了在该示例中无法切削元素815。它们的角度范围是195°至233°。一般来说,当角度范围大于195°时,无法用当前刀具切削对应的元素。应注意,其他角度阈值在不同的实现方式中是可能的。195°阈值是用于正方形元素,并且具有不同形状(例如,矩形)的元素可能需要不同的角度阈值。在任何情况下,当超过阈值角度时,应将当前元素的层移动到上层。因此,固定拐角元素的过程可包括:如果对于起始元素的当前铣削深度,Δθ>195°,则将铣削深度移动到该起始元素的上一级别,否则将铣削深度保持在当前级别。
然而,为了找到角度Δθ的范围,需要计算最大角度和最小角度,使得:
Δθ=gmax-θmin (8)
确定最大角度和最小角度可能具有挑战性,因为拐角可位于任意方向,并且计算角度的数学函数(例如,ATAN或ATAN2)可具有负值和正值两者。为了正确地计算最大角度和最小角度,可通过使所有上一级别元素聚集在一起的方式测量角度。例如,令e为当前层中的当前元素的索引,并且令N为上层中的距元素e的距离小于刀具半径的元素数量,令xj为上层元素j的位置,并且vej=xj-xe是元素j相对于当前元素e的相对位置向量。
图8E示出了这样的示例,其中箭头820表示E2与既在刀具810的半径内又在较高层中(在该示例中是在层1中)具有铣削深度的每个元素j之间的向量vej。然后,可通过下式计算这些相对向量的重心:
重心vCG是在朝向上层中的元素中心的方向上。因此,在角度计算中,可使用负方向-vCG 825来测量角度。通过这样做,与上层元素的所有角度都聚集在一起,并且可正确地计算最大角度和最小角度。
上述过程可用于从生成式设计的对象的3D模型去除不可制造的拐角,但即使在去除此类拐角之后,不可制造的塌陷仍可存在于生成式设计的对象的3D模型中。图8F示出了被识别的无法机加工的塌陷元素850的示例。如图8F所示,相对于-vCG 855的角度范围是180度,这小于195度的阈值。然而,该元素无法机加工,因为元素850的任一侧上的两上层元素之间的距离对于刀具来说太窄。因此,在固定所有拐角元素之后,塌陷元素(例如,如图8F所示)也可通过将它们移动到上层来固定。可通过在测量角度时使用相邻元素来识别塌陷元素,如下面结合图9D更详细地描述。
另外,由于许多生成式设计的3D模型将具有多个层,因此一层中的刀具可能会与多个上层产生干涉。在这种情况下,如果刀具无法加工特定元素,则不清楚该元素应该向上移动到哪一层。为了解决这个问题,可按倒序执行搜索干涉。例如,如果当前层是ILAYER,则可先对ILAYER-1层执行干涉检查。如果检测到干涉,则将该起始元素的铣削深度向上移动到ILAYER-1,并且对于该当前元素,过程停止。如果未检测到,则使用ILAYER-1和ILAYER-2进行干涉检查。如果检测到干涉,则该起始元素的铣削深度将向上移动到ILAYER-2,并且对于该当前元素,过程停止。重复此过程,直到到达顶层。如果该元素对上层中的所有元素没有任何干涉,则该起始元素的铣削深度保留在当前层中。因此,返回图2,可针对在当前层上方的层从紧接在当前层上方的层开始按顺序执行250拐角去除过程(其涉及识别其他起始元素(例如,识别190A)、计算其他起始元素之间的最大角距离(例如,计算190B),以及移动铣削深度(例如,移动190C))。
但是对于塌陷元素检测,可使用相反的过程。例如,如果当前层是ILAYER,则可先对第一(最顶)层执行干涉检查。如果检测到干涉,则将该起始元素的铣削深度向上移动到第一层,并且对于该当前元素,过程停止。如果未检测到,则使用前两层(层1和层2)进行干涉检查。如果检测到干涉,则将该起始元素的铣削深度向上移动到层2,并且对于该当前元素,过程停止。重复此过程,直到ILAYER-1层。如果该元素对上层中的所有元素没有任何干涉,则该元素保留在当前层中。因此,可针对在当前层上方的层从最顶层开始按顺序执行255塌陷去除过程(其涉及识别其他起始元素、计算其他起始元素之间的最大角度距离,以及移动铣削深度)。
此外,在一些实现方式中,没有假定基于密度的表示中的元素的特定序列。因此,对于具有不同元素序列的相同网格,应用刀具尺寸条件的结果可不同。为了防止依赖于元素序列的结果,可重复拐角去除过程250和/或塌陷去除过程255,直到没有进一步改变260,即,当在最后一次迭代中移动了任何铣削深度时,过程250、255都迭代。以此方式,最终的设计独立于特定的元素序列。
在一些情况下,例如,在图2的过程期间仅使用一个铣削方向,但在其他情况下,使用多于一个铣削方向,并且针对两个或更多个铣削方向中的每一者单独地执行拐角去除和塌陷去除过程(以及可能还有密度的调整),以产生相应的铣削方向特定数据集。因此,在一些实现方式中,执行检查265以看看是否仍要处理附加的铣削方向。如果是的话,则在可能继续进行收集200、分组220和改变250之前并且在继续进行拐角去除250和塌陷去除255之前,该过程切换270到用于下一铣削方向的新取向。在一些实现方式中,切换270涉及执行坐标变换,使得切削平面平行于x-y平面并且铣削方向是在负z坐标中。但如上所述,不要求在基于密度的表示的物理域(用于拓扑优化)与虚拟域(用于进行铣削方向处理)之间的映射,这可导致更快且更准确的过程。在一些实现方式中,切换270不需要涉及不同铣削方向的任何坐标变换,因为切换270可涉及切换到在其中存储沿不同铣削方向的每个铣削线的起始元素和元素序列的新数据结构(或公共数据结构的新部分)。
一旦已经处理了所有不同的铣削方向,就可组合280相应的铣削方向特定数据集以更新建模对象的生成式设计的三维形状的基于密度的表示。组合280可涉及将密度相乘在一起。尽管如此,不管是否使用多个铣削方向,零件/对象的最终设计都(完全或大部分)由具有不同高度且没有底切的多个平坦平面组成。应注意,最终设计不必完全由此类平坦平面组成,诸如当使用具有弯曲表面的输入保留实体时,或者当拓扑优化过程还考虑机床的形状时,该机床可能是球头切削器。
另外,如上所述,在一些实现方式中,与生成初始2.5轴兼容设计的过程分开确定起始元素和铣削深度。因此,在一些实现方式中,不使用过程步骤200至245,即使在使用过程步骤265至280时也是如此。图9A示出了去除被设计用于使用2.5轴制造过程制造的3D模型中的不可制造的拐角和塌陷的过程的示例。在该示例中,针对给定的铣削方向确定900起始元素的阵列及其铣削深度索引,但可使用其他数据结构来跟踪离散层的起始元素和铣削深度。在任何情况下,确定900可在生成2.5轴兼容设计的过程期间(例如,在图2中的过程步骤200至245期间)或在对通过单独的生成式设计过程产生的2.5轴兼容设计操作的过程中执行。
如上所述,一些实现方式将对由四面体元素组成的网格和/或非结构化网格进行操作。在一些实现方式中,建模对象的基于密度的表示是不规则网格,其中网格中元素的排序不符合规则化排序(例如,具有随机排序的元素的体素化网格)。刀具尺寸条件的实现涉及考虑垂直于铣削方向的平面中的元素之间的几何关系。当使用笛卡尔栅格生成网格并在每个坐标方向上对元素进行排序时,识别元素之间的几何关系要容易得多。然而,这可能会限制所描述的系统和技术的适用性,例如,在2.5轴铣削的拓扑优化期间。例如,初始域可能不是盒形。当用户具有预先存在的形状并且希望使用拓扑优化进一步减少材料时,通常会发生这种情况。另外,当存在对称和/或非设计区域时,很难拥有具有规则地排序的元素的盒形域。因此,在一些实现方式中,初始域以体素化网格的形式给出,并且元素可随机地排序。
图9B示出了用于针对不规则网格获得指定建模对象的基于密度的表示中的多个不同的元素子集中的每一者的起始元素的数据(例如,确定900起始元素的阵列及其铣削深度索引)的过程的示例,其中网格中的元素的排序不符合规则化排序。基于密度的网格表示中的元素根据沿铣削方向的轴的元素的形心位置进行排序902,以形成元素的排序列表。例如,这可在将所有元素形心转换到铣削方向的坐标系后进行。应注意,通过改变坐标使得铣削方向平行于z坐标维度,例如,作为切换270的一部分,起始元素的阵列有可能驻留在x-y平面中,如图8A所示。在任何情况下,在排序902之后,起始元素将朝向该排序列表的开头,例如,具有较小z值的元素。
排序列表中的下一未指派元素(即,沿铣削方向的轴具有最小值的下一元素)被选择904作为下一起始元素。找到906基于密度的网格表示中的形心在距下一起始元素的形心的预定距离内的下一元素集。应注意,该距离测量与上面结合图7C讨论的相同,因为在垂直于铣削方向的投影平面中测量距离,例如,在x-y维度上测量距离。另外,预定义距离可以是上面结合图3A提到的公差值,该公差值可具有基于程序参数的默认值并且可以是用户可改变的。例如,默认值可以是可使用单个元素体积的立方根计算的平均元素参考尺寸的0.01倍。如果元素形心(几何中心)在该公差内,则认为该元素位于铣削线上。
另外,在一些实现方式中,还可对先前指派给先前起始元素的元素进行检查,以看看它们是否比它们先前被指派给的起始元素更接近该下一起始元素。如果是的话,则将任何此类元素从先前的起始元素重新指派给该下一起始元素。将找到的下一元素集指派908给下一起始元素,以形成建模对象的基于密度的表示中的多个不同的元素子集中的一者(例如,以形成铣削线)。然后,重复选择904、找到906和指派908,直到排序列表中没有元素仍未被指派910。
此外,尽管系统和技术可高效地与可能规则或不规则的各种类型的体素化网格(例如,六面体(六面体)网格)一起使用,但本文档中描述的系统和技术不需要与体素化网格一起使用。在一些实现方式中,处理其他类型的网格和元素,诸如四面体(四面体)元素。然而,虽然四面体网格很好地适用于具有增材制造约束的拓扑优化,但期望使用体素化网格,因为元素排列得很好,所以能获得有意义的形状;它们不倾向于波动。
另外,虽然可探索潜在地无限数量的铣削方向,例如对于四面体元素,但本发明人已确定只需26个不同的方向就能改进用于使用可执行5轴铣削的CNC机器执行的2.5轴铣削过程的设计。具体地,铣削方向的数量可限制为在最通用的5轴铣削中使用的26个不同的方向:8个拐角、12个边缘和6个面。更少的铣削方向可用于2.5轴或3轴机器。例如,在一些实现方式中,5轴机器支持26个不同的方向,3轴机器支持21个不同的方向,并且2.5轴机器支持9个不同的方向。此外,在一些实现方式中,用户自由地做其他事情,因为用户可定义要使用的坐标系。
返回图9A,将不可制造的拐角从要使用2.5轴制造过程制造的物体的3D网格模型中去除930。这可涉及使用上面结合图1B、图2和图7A至图8E描述的操作和/或使用下面结合图9C描述的操作。另外,将不可制造的塌陷从要使用2.5轴制造过程制造的物体的3D网格模型中去除960。这可涉及使用上面结合图1B、图2、图8E和图8F描述的操作和/或使用下面结合图9D描述的操作。
此外,在一些实现方式中,虽然仍要处理990两个或多个铣削方向中的附加铣削方向,但针对下一铣削方向重复图9A的过程。一旦已经处理了所有不同的铣削方向,就可组合995相应的铣削方向特定数据集以更新建模对象的生成式设计的三维形状的基于密度的表示。组合995可涉及将密度相乘在一起。另外,在一些实现方式中,不维护单独的铣削方向特定数据集;例如,可直接在对象的单个3D网格模型上操作拐角去除930和塌陷去除960过程。
图9C示出了去除不可制造的拐角的过程的示例。该过程开始于将当前层K设定932为沿正在考虑的铣削方向的最底层,例如,3D模型805中的层3。至少基于正在处理的当前层K的铣削深度来确定934最小刀具尺寸,例如,使用等式(7)来设定用于当前层的最小刀具半径。
例如,使用等式(9)为在当前层K中具有铣削深度的每个起始元素计算936重心。应注意,计算936可使用在任何上层中识别的所有其他起始元素,例如,二维(2D)向量是在当前层中的当前起始元素和具有与在当前层上方的任何层相关联的铣削深度且距离小于刀具半径(在垂直于铣削线的投影平面中)的所有起始元素中的每一者之间。
对于当前层K中的每个起始元素,例如使用等式(8)来计算938在层K-X中具有铣削深度的其他元素的角度范围。应注意,X以值1开始,因此对照在层K-1中具有铣削深度的其他起始元素来进行对在当前层K中具有铣削深度的起始元素的第一检查。另外,其他起始元素必须在垂直于铣削线的投影平面中的距离内,即,小于刀具半径。
对于当前层K中的每个起始元素,如果发现940角度范围大于195度,则该起始元素的铣削深度向上移动942到层K-X。一旦已经相对于层K-X检查了所有起始元素,则过程继续944,直到已经针对角度检查范围处理了层1。如果该过程尚未完成944层1检查,则使X递增946,并且该过程继续。应注意,图9C中的操作936至946是图1B中的操作190A至190C的示例。
此外,一旦该过程完成了层1检查,即,当X=K-1时,图9C的过程确认948除了最顶层(层1)之外的所有层已经检查了它们对应的起始元素,即,直至层2的所有层都已经被处理以检查不可制造的拐角。如果层2尚未被处理948,则使当前层K递减950,并且该过程继续检查在3D模型的下一较高层中具有铣削深度的起始元素。另外,最终检查952可确认在该过程的最后一次迭代中是否移动了任何铣削深度。如果是的话,则可从头开始重复该过程,因为在该过程稍后所做的改变可能会影响该过程中较早地完成的检查。因此,可重复图9C的完整过程,直到没有在进行铣削深度改变。
图9D示出了去除不可制造的塌陷的过程的示例。该过程开始于将当前层K设定962为沿正在考虑的铣削方向的最底层,例如,3D模型805中的层3。至少基于正在处理的当前层K的铣削深度来确定964最小刀具尺寸,例如,使用等式(7)来设定用于当前层的最小刀具半径。
例如,使用等式(9)为在当前层K中具有铣削深度的每个起始元素计算966重心。应注意,计算966可使用在任何上层中识别的所有其他起始元素,例如,2D向量是在当前层中的当前起始元素和具有与在当前层上方的任何层相关联的铣削深度且距离小于刀具半径的所有起始元素中的每一者之间。应注意,使用该定义允许操作966和操作936相同,但在其他实现方式中,2D向量是在当前层中的当前起始元素和具有与在当前层上方的任何层相关联的铣削深度的邻近当前层中的当前起始元素的所有起始元素(即,具有紧邻当前起始元素的铣削线的铣削线的其他起始元素)中的每一者之间。
对于当前层K中的每个起始元素,例如使用等式(8)来计算968在层K-X中具有铣削深度的其他元素的角度范围。应注意(与图9C的拐角去除过程不同),X以值K-1开始,因此对照在层1中具有铣削深度的其他起始元素来进行在当前层K中具有铣削深度的起始元素的第一次检查。另外,其他起始元素仅限于邻近当前层中的当前起始元素的那些起始元素(即,具有紧邻当前起始元素的铣削线的铣削线的其他起始元素)。
对于当前层K中的每个起始元素,如果发现970角度范围大于或等于180度,则该起始元素的铣削深度向上移动972到层K-X。一旦已经相对于层K-X检查了所有起始元素,则过程继续974,直到已经针对角度检查范围处理了层K-1。如果该过程尚未完成层K-1检查974,则使X递减976,并且该过程继续。应注意,图9D中的操作966至976是与图1B中的操作190A至190C类似的操作的示例。因此,这些操作可被理解为涉及:识别968(i)包括具有与在当前层上方的层相关联的铣削深度的附加元素子集并且(ii)邻近当前起始元素的附加起始元素;计算966、968在相对于当前起始元素的附加起始元素之间的最大角差;以及响应于最大角差是970大于或等于阈值,通过至少改变附加的元素子集中的附加的单独元素的至少一部分的密度值来将附加的当前起始元素的附加的元素子集的铣削深度移动972到在附加的当前层上方的层。
此外,一旦该过程完成了层K-1检查,即,当X=1时,图9D的过程确认978除了最顶层(层1)之外的所有层已经检查了它们对应的起始元素,即,直至层2的所有层都已经被处理以检查不可制造的塌陷。如果层2尚未被处理978,则使当前层K递减980,并且该过程继续检查在3D模型的下一较高层中具有铣削深度的起始元素。另外,最终检查982可确认在该过程的最后一次迭代中是否移动了任何铣削深度。如果是的话,则可从头开始重复该过程,因为在该过程稍后所做的改变可能会影响该过程中较早地完成的检查。因此,可重复图9D的完整过程,直到没有在进行铣削深度改变。
如上所述,操作936和966可以相同,并且因此计算最大角差(对于角度计算938和角度计算968两者)可包括使用该共享操作936、966。图9E示出了计算在相对于当前层中的当前起始元素的上层中的起始元素之间的最大角差的过程的示例。找到920在当前层中的当前起始元素和具有与在当前层上方的一个或多个层相关联的铣削深度的其他起始元素(在半径距离内)中的每一者之间的2D向量。在一些实现方式中,这涉及找到920在当前层中的当前起始元素和具有与在当前层上方的任何层相关联的铣削深度的所有起始元素(在半径距离内)中的每一者之间的2D向量。
例如,使用等式(9)从2D向量确定922重心向量。该确定922的重心可由拐角去除过程和塌陷去除过程两者共享,而不是计算用于拐角去除和塌陷去除的单独重心。在一些实现方式中,找到920所有的2D向量,并且在进行任何范围的角度计算之前,计算922当前层中的当前起始元素中的每一者的共享重心,这可能会使整个过程更计算高效。但是用于何时进行找到920和计算922的其他方法也是可能的。
在任何情况下,为了计算当前起始元素的角度范围,找到9242D向量(到在正检查的当前起始元素的当前层上方的层中的另一个起始元素)中的相对于与中心向量的方向相反的方向具有最大角度的第一向量,找到9262D向量(到在正检查的当前起始元素的当前层上方的层中的另一个起始元素)中的相对于与重心向量的方向相反的方向具有最小角度的第二向量,并且将2D向量中的第二向量从2D向量中的第二向量减去928以产生当前说明元素的最大角差。此外,如上面结合图9A、图9C和图9D所讨论,可针对当前层中的每个起始元素(例如,对在当前层中具有铣削深度的元素的拐角和塌陷识别和去除)以沿铣削方向的最底层开始进行该范围的角度计算924、926、928。另外,可处理多于一个铣削方向,并且针对不同铣削方向中的每一者进行找到920和计算922。
图9A、图9C和图9D可与拓扑优化过程本身结合,例如,确定900可在生成2.5轴兼容设计的过程期间执行,其可包括具有层边界确定的生成式设计。此外,在一些实现方式中,生成式设计过程以假定3轴铣削能力的拓扑优化开始,并且然后在2.5轴条件下执行拓扑优化,并且刀具尺寸条件操作可用作2.5轴条件操作的一部分(或与其结合使用)。因此,当施加刀具尺寸条件时,设计已经满足2.5轴条件,并且刀具尺寸条件将修改因刀具无法到达元素而无法机加工的那些元素的铣削深度。
图5示出了利用层边界确定以产生与2.5轴减材制造过程兼容的3D模型的生成式设计过程的示例。形状和拓扑优化循环包括根据3D形状的当前版本和一个或多个使用中情况来执行建模对象的数值模拟555,以产生建模对象的物理响应(例如,结构响应)的当前数值评估。当前数值评估可以是基于体素的应力场数据、应变场数据或这两者。但如上所述,可执行各种类型的数值模拟,其中可但不必包括计算3D形状的当前版本的体积内各处的应变能的FEA模拟。在任何情况下,当前3D形状的物理模拟都会产生当前数值评估,该当前数值评估然后可用于根据设计标准来改变3D形状。
在数值模拟555之后,基于来自模拟555的建模对象的物理响应的当前数值评估并且根据2.5轴减材制造过程的铣削方向来计算560梯度(例如,灵敏度分析数据)。应注意,优化引擎需要梯度来了解改变形状以改进设计的方式。对于上面给出的示例,应注意,伴随灵敏度方法计算目标的梯度和相对于生产密度的约束,而优化使用相对于蓝图密度的灵敏度。因此,需要通过使用微分的链式法则将相对于生产密度的灵敏度转换为相对于蓝图密度的灵敏度。
使用微分的链式法则,可使用相对于生产密度的灵敏度来计算相对于蓝图的灵敏度/>得自:
其中Nk是在铣削方向k上的元素数量。应注意,如果i>=e,则否则为0。等式(10)中的另两项可被定义为:
一般来说,计算560跟踪用于调整570的过程,因为当确定在拓扑优化期间改变对元素密度的影响程度时,考虑到将元素投影到定义的平面上(例如,用于从3轴铣削的可变轮廓定义用于2.5轴铣削的平面的平均值)。应注意,即使改变可变轮廓上的一个元素的密度也会影响分组到同一平面中的所有元素。在使用平均值来定义铣削深度的情况下,如果级别中有n个元素,则每个元素密度贡献1/n。如果层的高度被计算为分组的铣削深度的平均值,则对该等式进行微分以得出单个元素贡献。
一旦计算出梯度,则调用565基于密度的拓扑优化代码。基于密度的拓扑优化器的输入可包括来自模拟555的物理响应的当前数值评估和计算560的灵敏度分析数据。基于密度的拓扑优化器可使用基于密度的优化(例如,SIMP)来处理这些输入,以通过改变密度以将几何形状朝向更优形状(包括可能的拓扑改变)移动来相对于一个或多个设计标准改进生成式设计的三维形状的基于密度的表示。
如上所述,执行570根据2.5轴减材制造过程的铣削方向调整基于密度的表示,以帮助确保最终输出与2.5轴机加工兼容,并且可执行575对收敛的检查,即,迭代过程继续,直到设计空间中的建模对象的生成式设计的三维形状收敛到稳定解,其中设计空间中的建模对象的生成式设计的三维形状满足多个设计标准和一个或多个使用中情况。
在一些实现方式中,数值模拟555、计算560梯度、拓扑优化565和调整570进行迭代575,直到已经执行了预定义数量的形状修改、直到收敛或以上两者。在任何情况下,一旦生成式设计收敛到与2.5轴机加工兼容的稳定解,则可使用上述系统和技术(例如,使用结合图7A至图9E描述的过程中的一者或多者)将生成式设计中的选定铣削深度移动580到三个或更多离散层(其已经针对生成式设计的2.5轴兼容3D模型定义)中的不同层。在一些实现方式中,在拓扑优化已经收敛575之后,仅执行一次移动580。在一些实现方式中,移动580被包括在拓扑优化循环中,在调整570和检查收敛575之间。当在拓扑优化过程期间向用户显示中间结果并且期望用户看到完全可制造的中间结果时,这可能很有用。
此外,如上所述,在一些实现方式中,在3D形状的整个迭代修改中进行调整。因此,在一些实现方式中,操作555至575可以是整个拓扑优化循环。然而,在其他实现方式中,操作555至575仅表示3D形状的迭代修改的一部分。例如,操作555至575可以是在与迭代形状修改过程的一个或多个较早拓扑优化循环分开的拓扑优化循环中执行的两次或更多次迭代。
在一些实现方式中,在不调整密度的情况下执行500第一组迭代,并且然后在调整密度的情况下执行550第二组迭代。例如,假定3轴铣削,可执行500第一拓扑优化,直到已经执行了预定义数量的形状修改、直到收敛或以上两者;然后,可根据2.5轴铣削(如本文所述)执行550第二拓扑优化,直到已经执行了预定义数量的形状修改、直到收敛或以上两者。
基于3轴铣削的拓扑优化具有可变的铣削深度轮廓,而2.5轴铣削具有离散的铣削深度。通过先进行3轴拓扑优化(例如,直到收敛),在过程的早期避免2.5轴拓扑优化的额外处理步骤,这可显著节省处理资源,因为拓扑优化的初始阶段通常涉及形状的重大改变,此时施加离散铣削深度可能没有什么益处。应注意,当先进行3轴拓扑优化时,只需二至五次附加迭代(例如,三次附加迭代)就可达到2.5轴拓扑优化的收敛,并且可在这些附加迭代期间施加刀具尺寸条件或仅在拓扑优化过程结束时施加一次。此外,从一开始就使用2.5轴拓扑优化可能会在初始迭代期间导致设计的突然改变,并且因此使用图5的两阶段过程有助于使优化收敛稳定,从而使过程更高效。尽管如此,当用户请求2.5轴拓扑优化时,显示3轴中间结果可能看起来很奇怪。因此,在一些实现方式中,出于向用户显示2.5轴结果的目的,可在拓扑优化期间的每次迭代中执行2.5轴投影。另外,如上所述,出于向用户显示结果的目的,还可在拓扑优化期间的每次迭代中执行针对刀具尺寸条件移动580选定的铣削深度。
另外,在一些实现方式中,初始3轴铣削拓扑优化500不需要采用本申请中描述的系统和技术,而是一般可在拓扑优化中采用其他3轴铣削约束。尽管如此,只要接收到用于3轴铣削的表面轮廓,具有2.5轴层定义的2.5轴拓扑优化550就可用于此类其他过程的输出。在这种情况下,表面的轮廓可用作铣削深度,并且可采用550中的相同过程来找到满足2.5轴铣削条件的最优设计。此外,可使用其他2.5轴拓扑优化系统和技术来产生生成式设计的2.5轴兼容3D模型,并且该生成式设计中的选定的铣削深度可使用本文档中描述的系统和技术移动580到为2.5轴兼容3D模型定义的不同离散层,例如,通过确定9002.5轴兼容3D模型的离散层的起始元素(用对于建模对象的基于密度的表示中的不同元素子集)和铣削深度并且然后去除930、960不可制造的拐角和塌陷(即,窄通道)来对3D模型进行局部修正以促进用不同尺寸的刀具(沿一个或多个铣削方向)对工件进行2.5轴机加工。
图6是包括数据处理设备600的数据处理系统的示意图,该数据处理设备可被编程为客户端或服务器以实现本说明书中描述的实施方案。数据处理设备600通过网络680与一个或多个计算机690连接。虽然在图6中仅一个计算机被示出为数据处理设备600,但可使用多个计算机。数据处理设备600包括可分布在应用层和操作系统之间的各种软件模块。这些可包括可执行和/或可解译的软件程序或库,包括实现上述系统和技术的一个或多个3D建模程序604的工具和服务。因此,3D建模程序604可以是CAD程序604(诸如CAD程序116)并且可实现(1)一个或多个生成式设计过程(例如,使用基于SIMP的方法用于生成式设计)以用于拓扑优化和物理模拟操作(有限元分析(FEA)或其他操作),所述操作结合层边界确定以产生2.5轴可机加工输出,和/或(2)一个或多个局部修正过程以在有或没有多个铣削方向的情况下去除不可制造的拐角和塌陷(即,窄通道)。此外,程序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 (24)
1.一种方法,所述方法包括:
获得(i)将用一个或多个计算机控制的制造系统使用2.5轴减材制造过程制造对应的物理结构的建模对象的基于密度的表示,以及(ii)指定所述建模对象的所述基于密度的表示中的多个不同元素子集中的每一者的起始元素的数据,
其中所述元素子集中的每一者具有铣削深度,所述铣削深度是分别为三个或更多个离散层指派的三个或更多个共享铣削深度中的一者,所述三个或更多个离散层中的每一者垂直于所述2.5轴减材制造过程的铣削方向,并且
其中所述基于密度的表示指定已经使用基于密度的拓扑优化生成式设计的所述建模对象的三维形状;
处理所述元素子集的具有与相对于所述铣削方向在所述三个或更多个离散层中的最顶层下方的离散层相关联的铣削深度的起始元素,所述处理包括对于所述起始元素中的针对当前层处理的当前起始元素,
识别(i)包括具有与在所述当前层上方的层相关联的铣削深度的元素子集并且(ii)靠近所述当前起始元素超过一定量的其他起始元素,所述量至少等于可用于与所述一个或多个计算机控制的制造系统一起使用的最小铣削刀具的半径,
计算在相对于所述当前起始元素的所述其他起始元素之间的最大角差,以及
响应于所述最大角差大于阈值,通过至少改变所述元素子集中的单独元素的至少一部分的密度值来将所述当前起始元素的所述元素子集的所述铣削深度移动到在所述当前层上方的层,以去除所述建模对象中的不可制造的拐角;以及
提供所述建模对象的所述三维形状以用于使用采用所述2.5轴减材制造过程的所述一个或多个计算机控制的制造系统来制造所述物理结构。
2.如权利要求1所述的方法,其中所述识别包括:
选择要检查的起始元素,其中这个选定的起始元素的所述元素子集具有与在所述当前层上方的所述层相关联的铣削深度;
将所述选定的起始元素的形心与所述当前起始元素的形心进行比较;
响应于所述选定的起始元素的所述形心与所述当前起始元素的所述形心之间的距离小于所述量而将所述选定的起始元素确认为所述其他起始元素中的识别的起始元素,其中所述量被设定为等于以下项中的最大值:(i)可用的所述最小铣削刀具的所述半径和(ii)所述当前层的底部与所述最顶层之间的差值的预定义分数;以及
重复所述选择、所述比较和所述确认,直到已经检查了具有与在所述当前层上方的所述层相关联的铣削深度的所述起始元素中的每一者。
3.如权利要求1所述的方法,其中所述计算包括:
找到所述当前层中的所述当前起始元素与具有与在所述当前层上方的一个或多个层相关联的铣削深度的所述其他起始元素中的每一者之间的二维向量;
从所述二维向量确定重心向量;
找到所述二维向量中的相对于与所述重心向量的方向相反的方向具有最大角度的第一二维向量;
找到所述二维向量中的相对于与所述重心向量的所述方向相反的所述方向具有最小角度的第二二维向量;以及
将所述二维向量中的所述第二二维向量从所述二维向量中的所述第一二维向量减去以产生所述最大角差。
4.如权利要求3所述的方法,其中找到所述二维向量包括找到所述当前层中的所述当前起始元素与具有与在所述当前层上方的任何层相关联的铣削深度的所有起始元素中的每一者之间的二维向量。
5.如权利要求3所述的方法,其中所述识别、所述计算和所述移动是拐角去除过程的一部分,并且所述处理还包括塌陷去除过程,所述塌陷去除过程包括对于所述起始元素中的针对附加的当前层处理的附加的当前起始元素:
第二识别(i)包括具有与在所述附加的当前层上方的层相关联的铣削深度的附加的元素子集并且(ii)邻近所述附加的当前起始元素的附加的起始元素;
第二计算在相对于所述附加的当前起始元素的所述附加的起始元素之间的第二最大角差;以及
响应于所述第二最大角差大于或等于第二阈值,通过至少改变所述附加的元素子集中的附加的单独元素的至少一部分的密度值来将所述附加的当前起始元素的所述附加的元素子集的所述铣削深度第二移动到在所述附加的当前层上方的层,以去除所述建模对象中的不可制造的塌陷。
6.如权利要求5所述的方法,其中在相对于所述当前起始元素的所述其他起始元素之间的所述最大角差的所述阈值是一百九十五度,其中所述第二最大角差是一百八十度,其中从紧接在所述当前层上方的层开始针对在所述当前层上方的层按顺序执行所述拐角去除过程,并且其中从所述最顶层开始针对在所述当前层上方的层按顺序执行所述塌陷去除过程。
7.如权利要求5所述的方法,其中所述处理包括重复所述拐角去除过程和所述塌陷去除过程,直到不执行所述元素子集的铣削深度的进一步移动。
8.如权利要求5所述的方法,其中所述铣削方向是所述2.5轴减材制造过程的两个或更多个铣削方向中的第一铣削方向,针对所述两个或更多个铣削方向中的每一者单独地执行所述拐角去除过程和所述塌陷去除过程以产生相应的铣削方向特定数据集,并且所述处理包括将所述相应的铣削方向特定数据集进行组合以更新已经使用基于密度的拓扑优化生成式设计的所述建模对象的所述基于密度的表示。
9.如权利要求1所述的方法,其中所述建模对象的所述基于密度的表示包括不规则网格,并且获得指定所述建模对象的所述基于密度的表示中的多个不同元素子集中的每一者的起始元素的所述数据包括:
根据沿所述铣削方向的轴线的所述元素的形心位置对所述基于密度的表示中的所述元素进行排序,以形成所述元素的排序列表;
选择所述排序列表中的下一未指派元素作为下一起始元素;
找到所述基于密度的表示中的形心在距所述下一起始元素的形心的预定义距离内的所述元素的下一集;
将所述下一元素集指派到所述下一起始元素以形成所述建模对象的所述基于密度的表示中的所述多个不同元素子集中的一者;以及
重复所述选择、所述找到和所述指派,直到所述排序列表中没有元素仍未被指派。
10.如权利要求9所述的方法,其中获得所述建模对象的所述基于密度的表示包括使用所述基于密度的拓扑优化、一个或多个设计标准和一个或多个使用中情况来迭代地修改设计空间中的所述建模对象的所述三维形状,其中所述迭代地修改包括在所述迭代地修改的至少两次迭代中根据所述2.5轴减材制造过程的所述铣削方向来调整所述生成式设计的三维形状的所述基于密度的表示,所述调整包括所述获得指定所述建模对象的所述基于密度的表示中的多个不同元素子集中的每一者的起始元素的所述数据。
11.如权利要求1所述的方法,其中所述提供包括:
使用所述建模对象的所述三维形状根据所述2.5轴减材制造过程来生成用于减材制造机器的刀具路径规范;以及
使用所述刀具路径规范用所述减材制造机器来制造所述物理结构的至少一部分或用于所述物理结构的模具。
12.一种系统,所述系统包括:
非暂时性存储介质,所述非暂时性存储介质具有存储在其上的计算机辅助设计程序的指令;以及
一个或多个数据处理设备,所述一个或多个数据处理设备被配置为运行所述计算机辅助设计程序的所述指令以致使所述一个或多个数据处理设备
获得(i)将用一个或多个计算机控制的制造系统使用2.5轴减材制造过程制造对应的物理结构的建模对象的基于密度的表示,以及(ii)指定所述建模对象的所述基于密度的表示中的多个不同元素子集中的每一者的起始元素的数据,
其中所述元素子集中的每一者具有铣削深度,所述铣削深度是分别为三个或更多个离散层指派的三个或更多个共享铣削深度中的一者,所述三个或更多个离散层中的每一者垂直于所述2.5轴减材制造过程的铣削方向,并且
其中所述基于密度的表示指定已经使用基于密度的拓扑优化生成式设计的所述建模对象的三维形状;
处理所述元素子集的具有与相对于所述铣削方向在所述三个或更多个离散层中的最顶层下方的离散层相关联的铣削深度的起始元素,其中所述指令通过致使所述一个或多个数据处理设备进行以下操作来致使所述一个或多个数据处理设备处理所述元素子集的所述起始元素:对于针对当前层处理的所述起始元素中的当前起始元素,
识别(i)包括具有与在所述当前层上方的层相关联的铣削深度的元素子集并且(ii)靠近所述当前起始元素超过一定量的其他起始元素,所述量至少等于可用于与所述一个或多个计算机控制的制造系统一起使用的最小铣削刀具的半径,
计算在相对于所述当前起始元素的所述其他起始元素之间的最大角差,以及
响应于所述最大角差大于阈值,通过至少改变所述元素子集中的单独元素的至少一部分的密度值来将所述当前起始元素的所述元素子集的所述铣削深度移动到在所述当前层上方的层,以去除所述建模对象中的不可制造的拐角;以及
提供所述建模对象的所述三维形状以用于使用采用所述2.5轴减材制造过程的所述一个或多个计算机控制的制造系统来制造所述物理结构。
13.如权利要求12所述的系统,其中所述指令通过致使所述一个或多个数据处理设备进行以下操作来致使所述一个或多个数据处理设备识别所述其他起始元素:
选择要检查的起始元素,其中这个选定的起始元素的所述元素子集具有与在所述当前层上方的所述层相关联的铣削深度;
将所述选定的起始元素的形心与所述当前起始元素的形心进行比较;
响应于所述选定的起始元素的所述形心与所述当前起始元素的所述形心之间的距离小于所述量而将所述选定的起始元素确认为所述其他起始元素中的识别的起始元素,其中所述量被设定为等于以下项中的最大值:(i)可用的所述最小铣削刀具的所述半径和(ii)所述当前层的底部与所述最顶层之间的差值的预定义分数;以及
重复所述选择、所述比较和所述确认,直到已经检查了具有与在所述当前层上方的所述层相关联的铣削深度的所述起始元素中的每一者。
14.如权利要求12所述的系统,其中所述指令通过致使所述一个或多个数据处理设备进行以下操作来致使所述一个或多个数据处理设备计算所述最大角差:
找到所述当前层中的所述当前起始元素与具有与在所述当前层上方的一个或多个层相关联的铣削深度的所述其他起始元素中的每一者之间的二维向量;
从所述二维向量确定重心向量;
找到所述二维向量中的相对于与所述重心向量的方向相反的方向具有最大角度的第一二维向量;
找到所述二维向量中的相对于与所述重心向量的所述方向相反的所述方向具有最小角度的第二二维向量;以及
将所述二维向量中的所述第二二维向量从所述二维向量中的所述第一二维向量减去以产生所述最大角差。
15.如权利要求14所述的系统,其中所述指令通过致使所述一个或多个数据处理设备进行以下操作来致使所述一个或多个数据处理设备找到所述二维向量:找到所述当前层中的所述当前起始元素与具有与在所述当前层上方的任何层相关联的铣削深度的所有起始元素中的每一者之间的二维向量。
16.如权利要求14所述的系统,其中作为拐角去除过程的一部分,所述指令致使所述一个或多个数据处理设备识别所述其他起始元素、计算所述最大角差和移动所述元素子集的所述铣削深度,所述指令通过致使所述一个或多个数据处理设备进行以下操作来致使所述一个或多个数据处理设备在塌陷去除过程中处理所述元素子集的所述起始元素:对于针对附加的当前层处理的所述起始元素中的附加的当前起始元素:
识别(i)包括具有与在所述附加的当前层上方的层相关联的铣削深度的附加的元素子集并且(ii)邻近所述附加的当前起始元素的附加的起始元素;
计算在相对于所述附加的当前起始元素的所述附加的起始元素之间的第二最大角差;以及
响应于所述第二最大角差大于或等于第二阈值,通过至少改变所述附加的元素子集中的附加的单独元素的至少一部分的密度值来将所述附加的当前起始元素的所述附加的元素子集的所述铣削深度移动到在所述附加的当前层上方的层,以去除所述建模对象中的不可制造的塌陷。
17.如权利要求16所述的系统,其中在相对于所述当前起始元素的所述其他起始元素之间的所述最大角差的所述阈值是一百九十五度,其中所述第二最大角差是一百八十度,其中从紧接在所述当前层上方的层开始针对在所述当前层上方的层按顺序执行所述拐角去除过程,并且其中从所述最顶层开始针对在所述当前层上方的层按顺序执行所述塌陷去除过程。
18.如权利要求16所述的系统,其中所述指令通过致使所述一个或多个数据处理设备进行以下操作来处理所述元素子集的所述起始元素:重复所述拐角去除过程和所述塌陷去除过程,直到所述元素子集的铣削深度都不进一步移动。
19.如权利要求16所述的系统,其中所述铣削方向是所述2.5轴减材制造过程的两个或更多个铣削方向中的第一铣削方向,针对所述两个或更多个铣削方向中的每一者单独地执行所述拐角去除过程和所述塌陷去除过程以产生相应的铣削方向特定数据集,并且所述指令通过致使所述一个或多个处理设备进行以下操作来致使所述一个或多个处理设备处理所述元素子集的所述起始元素:将所述相应的铣削方向特定数据集进行组合以更新已经使用基于密度的拓扑优化生成式设计的所述建模对象的所述基于密度的表示。
20.如权利要求12所述的系统,其中所述建模对象的所述基于密度的表示包括不规则网格,并且所述指令通过致使所述一个或多个数据处理设备进行以下操作来致使所述一个或多个数据处理设备获得所述数据:
根据沿所述铣削方向的轴线的所述元素的形心位置对所述基于密度的表示中的所述元素进行排序,以形成所述元素的排序列表;
选择所述排序列表中的下一未指派元素作为下一起始元素;
找到所述基于密度的表示中的形心在距所述下一起始元素的形心的预定义距离内的所述元素的下一集;
将所述下一元素集指派到所述下一起始元素以形成所述建模对象的所述基于密度的表示中的所述多个不同元素子集中的一者;以及
重复所述下一未指派元素选择、所述下一集找到和所述指派,直到所述排序列表中没有元素仍未被指派。
21.如权利要求20所述的系统,其中所述指令通过致使所述一个或多个数据处理设备使用所述基于密度的拓扑优化、一个或多个设计标准和一个或多个使用中情况迭代地修改设计空间中的所述建模对象的所述三维形状来致使所述一个或多个数据处理设备获得所述建模对象的所述基于密度的表示,所述指令通过致使所述一个或多个数据处理设备在所述迭代地修改的至少两次迭代中根据所述2.5轴减材制造过程的所述铣削方向调整所述生成式设计的三维形状的所述基于密度的表示来致使所述一个或多个数据处理设备迭代地修改所述建模对象的所述三维形状,并且所述指令通过致使所述一个或多个数据处理设备获得指定所述建模对象的所述基于密度的表示中的多个不同元素子集中的每一者的起始元素的所述数据来致使所述一个或多个数据处理设备调整所述基于密度的表示。
22.如权利要求12所述的系统,所述系统包括所述一个或多个计算机控制的制造系统,所述一个或多个计算机控制的制造系统包括采用所述2.5轴减材制造过程的计算机数控减材制造铣床,其中所述一个或多个处理设备被配置为运行所述计算机辅助设计程序的所述指令以致使所述一个或多个数据处理设备:
使用所述建模对象的所述三维形状根据所述2.5轴减材制造过程来生成所述计算机数控减材制造铣床的刀具路径规范;以及
使用所述刀具路径规范用所述计算机数控减材制造铣床制造所述物理结构的至少一部分或用于所述物理结构的模具。
23.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质对程序进行编码,所述程序可操作来致使一个或多个数据处理设备执行操作,所述操作包括:
获得(i)将用一个或多个计算机控制的制造系统使用2.5轴减材制造过程制造对应的物理结构的建模对象的基于密度的表示,以及(ii)指定所述建模对象的所述基于密度的表示中的多个不同元素子集中的每一者的起始元素的数据,
其中所述元素子集中的每一者具有铣削深度,所述铣削深度是分别为三个或更多个离散层指派的三个或更多个共享铣削深度中的一者,所述三个或更多个离散层中的每一者垂直于所述2.5轴减材制造过程的铣削方向,并且
其中所述基于密度的表示指定已经使用基于密度的拓扑优化生成式设计的所述建模对象的三维形状;
处理所述元素子集的具有与相对于所述铣削方向在所述三个或更多个离散层中的最顶层下方的离散层相关联的铣削深度的起始元素,所述处理包括对于所述起始元素中的针对当前层处理的当前起始元素,
识别(i)包括具有与在所述当前层上方的层相关联的铣削深度的元素子集并且(ii)靠近所述当前起始元素超过一定量的其他起始元素,所述量至少等于可用于与所述一个或多个计算机控制的制造系统一起使用的最小铣削刀具的半径,
计算在相对于所述当前起始元素的所述其他起始元素之间的最大角差,以及
响应于所述最大角差大于阈值,通过至少改变所述元素子集中的单独元素的至少一部分的密度值来将所述当前起始元素的所述元素子集的所述铣削深度移动到在所述当前层上方的层,以去除所述建模对象中的不可制造的拐角;以及
提供所述建模对象的所述三维形状以用于使用采用所述2.5轴减材制造过程的所述一个或多个计算机控制的制造系统来制造所述物理结构。
24.如权利要求23所述的非暂时性计算机可读介质,其中所述识别、所述计算和所述移动是拐角去除过程的一部分,并且所述处理还包括塌陷去除过程,所述塌陷去除过程包括对于所述起始元素中的针对附加的当前层处理的附加的当前起始元素:
第二识别(i)包括具有与在所述附加的当前层上方的层相关联的铣削深度的附加的元素子集并且(ii)邻近所述附加的当前起始元素的附加的起始元素;
第二计算在相对于所述附加的当前起始元素的所述附加的起始元素之间的第二最大角差;以及
响应于所述第二最大角差大于或等于第二阈值,通过至少改变所述附加的元素子集中的附加的单独元素的至少一部分的密度值来将所述附加的当前起始元素的所述附加的元素子集的所述铣削深度第二移动到在所述附加的当前层上方的层,以去除所述建模对象中的不可制造的塌陷。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311201324.7A CN117332518A (zh) | 2020-05-20 | 2021-04-21 | 具有刀具尺寸控制以促进2.5轴减材制造过程的计算机辅助生成式设计 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/879,547 US11762368B2 (en) | 2020-05-20 | 2020-05-20 | Computer aided generative design with layer boundary determination to facilitate 2.5-axis subtractive manufacturing processes |
US16/879,547 | 2020-05-20 | ||
US16/931,866 | 2020-07-17 | ||
US16/931,866 US11243510B2 (en) | 2020-05-20 | 2020-07-17 | Computer aided generative design with tool size control to facilitate 2.5-axis subtractive manufacturing processes |
PCT/US2021/028355 WO2021236281A1 (en) | 2020-05-20 | 2021-04-21 | Computer aided generative design with tool size control to facilitate 2.5-axis subtractive manufacturing processes |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311201324.7A Division CN117332518A (zh) | 2020-05-20 | 2021-04-21 | 具有刀具尺寸控制以促进2.5轴减材制造过程的计算机辅助生成式设计 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115769155A CN115769155A (zh) | 2023-03-07 |
CN115769155B true CN115769155B (zh) | 2023-10-03 |
Family
ID=75888228
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311201324.7A Pending CN117332518A (zh) | 2020-05-20 | 2021-04-21 | 具有刀具尺寸控制以促进2.5轴减材制造过程的计算机辅助生成式设计 |
CN202180032611.2A Active CN115769155B (zh) | 2020-05-20 | 2021-04-21 | 具有刀具尺寸控制以促进2.5轴减材制造过程的计算机辅助生成式设计 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311201324.7A Pending CN117332518A (zh) | 2020-05-20 | 2021-04-21 | 具有刀具尺寸控制以促进2.5轴减材制造过程的计算机辅助生成式设计 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11243510B2 (zh) |
EP (1) | EP4154073A1 (zh) |
JP (1) | JP2023526832A (zh) |
CN (2) | CN117332518A (zh) |
WO (1) | WO2021236281A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11734477B2 (en) * | 2018-03-08 | 2023-08-22 | Concurrent Technologies Corporation | Location-based VR topological extrusion apparatus |
US11762368B2 (en) | 2020-05-20 | 2023-09-19 | Autodesk, Inc. | Computer aided generative design with layer boundary determination to facilitate 2.5-axis subtractive manufacturing processes |
US11243510B2 (en) | 2020-05-20 | 2022-02-08 | Autodesk, Inc. | Computer aided generative design with tool size control to facilitate 2.5-axis subtractive manufacturing processes |
US11663379B2 (en) * | 2020-06-26 | 2023-05-30 | Autodesk, Inc. | Generative design shape optimization using build material strength model for computer aided design and manufacturing |
CN115587441B (zh) * | 2022-10-14 | 2024-01-05 | 山东大学 | 一种流道结构增减材复合制造工艺规划方法及系统 |
CN117034636B (zh) * | 2023-08-21 | 2024-02-06 | 广东云湃科技有限责任公司 | 一种模型与参数关联的方法及系统 |
CN117348524B (zh) * | 2023-12-05 | 2024-01-30 | 沈阳秀展科技有限公司 | 一种根据图纸自动控制加工中心的cam系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740497A (zh) * | 2014-12-31 | 2016-07-06 | 达索系统公司 | 对工件的加工进行仿真 |
CN108765558A (zh) * | 2018-05-29 | 2018-11-06 | 厦门理工学院 | 一种基于弧齿锥齿轮铣削齿面三维建模的齿面参数获取方法 |
CN110134982A (zh) * | 2018-02-09 | 2019-08-16 | 达索系统公司 | 可通过铣削操作制造的部件的设计 |
CN110348086A (zh) * | 2019-06-27 | 2019-10-18 | 西安理工大学 | 一种球头铣刀立铣表面粗糙度快速建模方法 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06190619A (ja) * | 1992-12-22 | 1994-07-12 | Iwai Tangata Seisakusho:Yugen | 三次元倣いフライス盤と彫成方法 |
WO2001088647A1 (en) | 2000-05-16 | 2001-11-22 | Brigham Young University | Method and system for controlling a machine tool with direct transfer of machining data |
US6680735B1 (en) * | 2000-10-04 | 2004-01-20 | Terarecon, Inc. | Method for correcting gradients of irregular spaced graphic data |
US7451013B2 (en) | 2004-04-29 | 2008-11-11 | Surfware, Inc. | Engagement milling |
US20090112354A1 (en) | 2007-10-30 | 2009-04-30 | Tahany Ibrahim El-Wardany | Method of determining optimal parameters for machining a workpiece |
WO2010029810A1 (ja) | 2008-09-11 | 2010-03-18 | 国立大学法人京都大学 | 構造最適化装置、構造最適化方法及び構造最適化プログラム |
US9336624B2 (en) | 2008-10-07 | 2016-05-10 | Mitsubishi Electric Research Laboratories, Inc. | Method and system for rendering 3D distance fields |
US8731876B2 (en) | 2009-08-21 | 2014-05-20 | Adobe Systems Incorporated | Creating editable feature curves for a multi-dimensional model |
WO2012107594A1 (en) | 2011-02-11 | 2012-08-16 | Ecole Polytechnique Federale De Lausanne (Epfl) | High speed pocket milling optimisation |
US9046888B2 (en) | 2012-06-27 | 2015-06-02 | Mitsubishi Electric Research Laboratories, Inc. | Method and system for detouring around features cut from sheet materials with a laser cutter according to a pattern |
US9789651B2 (en) | 2014-01-09 | 2017-10-17 | Siemens Product Lifecycle Management Software, Inc. | Method for structure preserving topology optimization of lattice structures for additive manufacturing |
US20170057011A1 (en) | 2014-02-20 | 2017-03-02 | Dmg Mori Advanced Solutions Development | A Processing Head for a Hybrid Additive/Subtractive Manufacturing Center |
US9921567B2 (en) | 2014-02-21 | 2018-03-20 | Samarinder Singh | High speed smooth tool path |
TWI497242B (zh) | 2014-04-11 | 2015-08-21 | Ind Tech Res Inst | 工具機之設計方法及設計系統 |
CN103984285A (zh) | 2014-05-27 | 2014-08-13 | 大连理工大学 | 一种多约束五轴加工进给率定制方法 |
CN105269052A (zh) | 2015-11-19 | 2016-01-27 | 中国南方航空工业(集团)有限公司 | 精密凸轮轴加工方法 |
CN109313670B (zh) | 2016-04-27 | 2023-08-04 | 欧特克公司 | 在计算机辅助设计应用中生成晶格建议的方法和系统 |
US20180239334A1 (en) | 2017-02-23 | 2018-08-23 | General Electric Company | Systems and methods for improved part design and inspection |
US11734471B2 (en) * | 2017-06-05 | 2023-08-22 | Autodesk, Inc. | Topology optimization for subtractive manufacturing techniques |
CN108416087B (zh) * | 2018-01-26 | 2020-02-18 | 大连理工大学 | 碳纤维复合材料铣削加工损伤深度的预测方法 |
US10635088B1 (en) | 2018-11-09 | 2020-04-28 | Autodesk, Inc. | Hollow topology generation with lattices for computer aided design and manufacturing |
US10467807B1 (en) | 2018-11-09 | 2019-11-05 | Autodesk, Inc. | Facilitated editing of generative design geometry in computer aided design user interface |
EP4224354A1 (en) * | 2018-11-09 | 2023-08-09 | Autodesk, Inc. | Aligning smooth boundary curves of height layers for 2.5-axis subtractive manufacturing |
US20210303743A1 (en) | 2020-03-24 | 2021-09-30 | Protolabs, Inc. | Methods and systems for generating an instant design for manufacturability of a part at a computing device |
US11762368B2 (en) | 2020-05-20 | 2023-09-19 | Autodesk, Inc. | Computer aided generative design with layer boundary determination to facilitate 2.5-axis subtractive manufacturing processes |
US11243510B2 (en) | 2020-05-20 | 2022-02-08 | Autodesk, Inc. | Computer aided generative design with tool size control to facilitate 2.5-axis subtractive manufacturing processes |
-
2020
- 2020-07-17 US US16/931,866 patent/US11243510B2/en active Active
-
2021
- 2021-04-21 EP EP21724905.1A patent/EP4154073A1/en active Pending
- 2021-04-21 CN CN202311201324.7A patent/CN117332518A/zh active Pending
- 2021-04-21 JP JP2022570396A patent/JP2023526832A/ja active Pending
- 2021-04-21 CN CN202180032611.2A patent/CN115769155B/zh active Active
- 2021-04-21 WO PCT/US2021/028355 patent/WO2021236281A1/en unknown
-
2022
- 2022-02-03 US US17/592,372 patent/US11789429B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740497A (zh) * | 2014-12-31 | 2016-07-06 | 达索系统公司 | 对工件的加工进行仿真 |
CN110134982A (zh) * | 2018-02-09 | 2019-08-16 | 达索系统公司 | 可通过铣削操作制造的部件的设计 |
CN108765558A (zh) * | 2018-05-29 | 2018-11-06 | 厦门理工学院 | 一种基于弧齿锥齿轮铣削齿面三维建模的齿面参数获取方法 |
CN110348086A (zh) * | 2019-06-27 | 2019-10-18 | 西安理工大学 | 一种球头铣刀立铣表面粗糙度快速建模方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115769155A (zh) | 2023-03-07 |
US20210365007A1 (en) | 2021-11-25 |
JP2023526832A (ja) | 2023-06-23 |
US11789429B2 (en) | 2023-10-17 |
US20220197254A1 (en) | 2022-06-23 |
CN117332518A (zh) | 2024-01-02 |
US11243510B2 (en) | 2022-02-08 |
WO2021236281A1 (en) | 2021-11-25 |
EP4154073A1 (en) | 2023-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115769155B (zh) | 具有刀具尺寸控制以促进2.5轴减材制造过程的计算机辅助生成式设计 | |
CN106133628B (zh) | 用于确定加工凹槽形状的刀具的路径的方法和系统 | |
EP3877890A1 (en) | Macrostructure topology generation with physical simulation for computer aided design and manufacturing | |
US9581992B2 (en) | Method and apparatus for a cutting process automatic generation tool of CAM | |
US20240085881A1 (en) | Computer aided generative design with layer boundary determination to facilitate 2.5-axis subtractive manufacturing processes | |
EP4325401A2 (en) | Toolpath generation by reinforcement learning for computer aided manufacturing | |
JP7417815B2 (ja) | 製造及び構造的パフォーマンスを促進する全体的な厚さの制御によるコンピュータ支援のジェネレーティブデザイン | |
US20220373996A1 (en) | Computer aided generative design with filtering to facilitate 2.5-axis subtractive manufacturing processes | |
EP4195086A1 (en) | Computer aided generative design with feature thickness control to facilitate manufacturing and structural performance | |
Chen et al. | Design for manufacturing: Geometric manufacturability evaluation for five-axis milling | |
US20220067240A1 (en) | Application of boundary conditions on voxelized meshes in computer aided generative design | |
JP2023528760A (ja) | 2.5軸減法製造プロセスを容易にするフィルタリングによるコンピュータ支援ジェネレーティブデザイン | |
Xú et al. | Feature recognition for virtual machining | |
US20240169109A1 (en) | Dual model shape synthesis | |
EP4350566A1 (en) | Computer aided shape synthesis with connectivity filtering | |
CN117828816A (zh) | 利用连接性过滤的计算机辅助形状合成 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |