Computer-Aided Generative Design by Layer Boundary Determination to Facilitate 2.5-Axis Removal Manufacturing Processes

The method enhances CAD software by iteratively modifying 3D shape density based on 2.5-axis milling directions, addressing the challenge of generating 3D models compatible with 2.5-axis subtractive manufacturing, and improving manufacturing efficiency.

JP7691441B2Active Publication Date: 2025-06-11AUTODESK INC
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2022570341
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-05-20
Filing Date
2021-04-21
Publication Date
2025-06-11
Estimated Expiration
2041-04-21

AI Technical Summary

Technical Problem

Existing computer-aided design (CAD) software struggles to efficiently generate 3D models compatible with 2.5-axis subtractive manufacturing processes, which limits the complexity and efficiency of manufactured parts.

Method used

A method involving a computer-aided design program that iteratively modifies a generatively designed 3D shape by adjusting its density representation based on the milling direction of a 2.5-axis subtractive manufacturing process, allowing for the creation of discrete layers and optimized tool path specifications.

Benefits of technology

This approach enables the generation of 3D models that can be efficiently manufactured using 2.5-axis subtractive processes, reducing machining time and improving manufacturing efficiency while maintaining compatibility with conventional machining tools.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007691441000017
    Figure 0007691441000017
  • Figure 0007691441000018
    Figure 0007691441000018
  • Figure 0007691441000019
    Figure 0007691441000019
Patent Text Reader

Abstract

The method, system, and apparatus includes a computer program product encoded on a medium for computer-aided design of a physical structure using a generative design process, wherein a 3D model of the physical structure is generated to facilitate manufacturing of the physical structure using 2.5-axis subtractive manufacturing systems and techniques, the method, system, and apparatus including obtaining a design space, design criteria, and in-use case(s); iteratively modifying the generatively designed shape within the design space according to the design criteria and in-use case(s) using a density-based representation of the generatively designed shape, the iteratively modifying including adjusting the density-based representation of the generatively designed three-dimensional shape according to a 2.5-axis subtractive manufacturing milling direction in at least two iterations of the iteratively modifying; and providing the generatively designed shape for use in manufacturing the physical structure using computer-controlled manufacturing employing a 2.5-axis subtractive manufacturing process.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Cross - Reference to Related Applications This application claims the benefit of U.S. Patent Application No. 16 / 879,547, filed May 20, 2020, in the names of David Jon Weinberg and Nam Ho Kim, which is hereby incorporated by reference herein.

Background Art

[0002] This specification relates to computer - aided design of physical structures that can be manufactured using additive manufacturing, subtractive manufacturing, and / or other manufacturing systems and techniques.

[0003] Computer - aided design (CAD) software has been developed and used to generate three - dimensional (3D) representations of objects. For example, computer - aided manufacturing (CAM) software has been developed and used to evaluate, plan, and control the manufacture of the physical structures of those objects using computer numerical control (CNC) manufacturing techniques. Typically, CAD software stores a 3D representation of the geometry of an object modeled using a boundary representation (B - Rep) format. A B - Rep model is a set of connected surface elements that define the boundary between the solid and non - solid parts of a modeled 3D object. In a B - Rep model (often referred to as a B - Rep), geometry is stored in the computer using flat and exact mathematical surfaces, as opposed to the discrete and approximate surfaces of a mesh model, which can be difficult to operate on within a CAD program.

[0004] CAD programs have been used in conjunction with subtractive manufacturing systems and techniques. Subtractive manufacturing refers to any manufacturing process by which a 3D object is created from a stock material (generally a "blank" or "workpiece" that is larger than the 3D object) by removing portions of the stock material. Such manufacturing processes typically involve the use of multiple CNC machine cutting tools in a series of operations that commence with roughing operations, optional semi-finishing operations, and finishing operations. In addition to CNC machining, other subtractive manufacturing techniques include electrical discharge machining, chemical mechanical machining, water jet machining, and the like. In contrast, additive manufacturing, also known as solid freeform fabrication or 3D printing, refers to any manufacturing process by which a 3D object is constructed from raw materials (generally powders, liquids, suspensions, or molten solutions) within a series of layers or cross-sections. Examples of additive manufacturing include fused filament fabrication (FFF) and selective laser sintering (SLS). Other manufacturing techniques for constructing 3D objects from raw materials include casting and forging (both high and low temperature).

[0005] In addition, CAD software has been designed to perform automatic generation of 3D geometry using topology optimization (generative design) for parts within a larger system of parts to be manufactured or for one or more parts. This automated generation of 3D geometry is often restricted to the design space defined by the user of the CAD software, and 3D geometry generation is typically governed by design objectives and design constraints, which may be defined by the user of the CAD software or another party and may be imported into the CAD software. Design objectives (such as minimizing the weight of the designed part) may be used to drive the geometry generation process towards a better design. Design constraints may include both structural integrity constraints for individual parts (i.e., the requirement that the part should not fall below the predicted structural loads during use of the part) and physical constraints imposed by the larger system (i.e., the requirement that the part does not interfere with other parts within the system during use). Further examples of design constraints include maximum mass, maximum displacement under load, maximum stress, etc.

[0006] The input to the generative design process may include a set of input solids (B-Rep input) that define the boundary conditions for the generative design, but many modern generative design solvers do not operate directly on the exact surface boundary representation of those input solids. Instead, the B-Rep is sampled and replaced by a volumetric representation such as a level set or a tetrahedral mesh or a hexahedral mesh, which is significantly more convenient and efficient for physical simulations and material synthesis calculated by the solver. The set of input solids may include "keepers" that represent joints to other parts or locations where boundary conditions should be applied (e.g., mechanical loads and constraints). Other regions may also be provided, such as input solids that define "obstacles" that represent regions where new geometry should not be generated.

Summary of the Invention

Problems to be Solved by the Invention

[0007] This specification describes techniques related to computer-aided design of physical structures using generative design processes, and three-dimensional (3D) models of physical structures are created to facilitate the manufacture of physical structures using 2.5-axis subtractive manufacturing systems and techniques. Subtractive manufacturing techniques may include 2-axis, 2.5-axis, 3-axis, or further axis milling. 2-axis milling cuts into a workpiece without the ability to adjust the height level of the milling head, and 3-axis milling cuts into a workpiece while moving the milling tool in, for example, three separate dimensions simultaneously, with the milling tool (or a combination of the milling tool and fixture support) able to move within all three separate dimensions. Thus, 2.5-axis milling may use a 3-axis milling machine, but during most of the cutting operation, only the milling tool moves within 2 axes with respect to the workpiece, which results in a more efficient manufacturing process.

Means for Solving the Problems

[0008] Generally, one or more aspects of the subject matter described in this specification may be embodied in one or more methods (and also in one or more non-transitory computer-readable media tangibly encoded with a computer program operable to cause a data processing apparatus to perform operations), the methods comprising obtaining, by a computer-aided design program, a design space for a modeled object, one or more design criteria for the modeled object, and one or more in-use cases for a physical structure, wherein a corresponding physical structure is to be manufactured using a 2.5-axis subtractive manufacturing process; iteratively modifying, by the computer-aided design program, a generatively designed three-dimensional shape of the modeled object within the design space according to the one or more design criteria and the one or more in-use cases, the iterative modification comprising adopting a representation based on the density of the generatively designed three-dimensional shape of the modeled object, and the iterative modification comprising adjusting a representation based on the density of the generatively designed three-dimensional shape in accordance with the milling direction of the 2.5-axis subtractive manufacturing process in at least two iterations of the iterative modification; and providing, by the computer-aided design program, the generatively designed three-dimensional shape of the modeled object for use in manufacturing the physical structure using one or more computer-controlled manufacturing systems employing the 2.5-axis subtractive manufacturing process. Additionally, the adjusting comprises collecting different milling depths associated with different subsets of individual elements in a representation based on the density of the generatively designed three-dimensional shape; grouping the different milling depths into respective ones of three or more discrete layers, each of the three or more discrete layers being perpendicular to the milling direction of the 2.5-axis subtractive manufacturing process; and changing density values for at least some of the individual elements in the density-based representation such that a single milling depth is produced for each of the three or more discrete layers.

[0009] A method (or operations performed by a data processing apparatus according to a computer program tangibly encoded on one or more non-transitory computer-readable media) may include grouping, which includes classifying different milling depths to generate classified milling depth values, identifying two or more maximum differences in the classified milling depth values, assigning each of different subsets of individual elements to one of three or more discrete layers based on the positions of the milling depths of each subset within the classified milling depth values associated with the two or more maximum differences, and setting a single milling depth in each of the three or more discrete layers based on the milling depth associated with the element subsets assigned to the discrete layer. The number of three or more discrete layers may be a user input value that remains fixed during iterative modification, or the number may vary during iterative modification.

[0010] A method (or operations performed by a data processing apparatus according to a computer program tangibly encoded on one or more non - transitory computer - readable media) includes, in at least two iterations, performing a numerical simulation of a modeled object according to a latest version of a three - dimensional shape and one or more in - use cases so as to generate a latest numerical evaluation of a physical response of the modeled object; calculating sensitivity analysis data based on the latest numerical evaluation of the physical response of the modeled object and according to the milling direction of a 2.5 - axis subtractive manufacturing process; calling a density - based topology optimization code with an input including the latest numerical evaluation of the physical response and the sensitivity analysis data so as to improve an expression based on the density of a generatively designed three - dimensional shape with respect to one or more design criteria; adjusting the density - based expression according to the milling direction of the 2.5 - axis subtractive manufacturing process; and iterating until the generatively designed three - dimensional shape of the modeled object within the design space converges to a stable solution for one or more design criteria and one or more in - use cases, which may include iteratively modifying. The density - based topology optimization code may implement another method such as the Solid Isotropic Material with Penalization method or the homogenization method of topology optimization.

[0011] A method (or operations performed by a data processing apparatus according to a computer program tangibly encoded on one or more non - transitory computer - readable media) includes arranging individual elements in a density - based expression of a generatively designed three - dimensional shape into milling lines parallel to the milling direction, where each of the milling lines corresponds to one of different subsets of the individual elements; aggregating the density of the elements along each of the milling lines such that the aggregated density of the elements increases monotonically along each of the milling lines; and using the aggregated density in each of the milling lines to identify a milling depth for each of the milling lines, which may include collecting.

[0012] The milling direction may be the first of two or more milling directions in a 2.5-axis removal manufacturing process, and adjusting may be performed separately for each of the two or more milling directions to generate a respective milling direction-specific data set, and iteratively modifying may include combining the respective milling direction-specific data sets to update a representation based on the density of the three-dimensional shape designed generatively of the modeled object. Additionally, iteratively modifying may include a first set of iterations that is performed without adjusting, and a second set of iterations that is performed after the first set of iterations, and the second set of iterations includes at least two iterations in which adjusting is performed.

[0013] A method (or operations performed by a data processing apparatus according to a computer program tangibly encoded on one or more non-transitory computer-readable media) may include providing, using a three-dimensional shape designed generatively of a modeled object, to generate tool path specifications for a removal manufacturing machine according to a 2.5-axis removal manufacturing process, and using the tool path specifications to manufacture, by the removal manufacturing machine, at least a part of a physical structure or a mold for a physical structure.

[0014] One or more aspects of the subject matter described in this specification may also be embodied by one or more systems that include a non-transitory storage medium having instructions of a computer-aided design program stored therein, and one or more data processing apparatuses configured to execute the instructions of the computer-aided design program to perform any of the one or more methods described herein. The one or more systems may further include a 2.5-axis removal manufacturing machine, or other removal manufacturing machines capable of performing a 2.5-axis removal manufacturing process, such as a 3-axis or multi-axis (e.g., 4, 5, 6, 7, 8, or 9-axis) removal manufacturing machine.

[0015] Certain embodiments of the subject matter described in this specification may be implemented so as to realize one or more of the following advantages. The generative design may be produced by topology optimization and the generative design may be less complex to manufacture using conventional machining tools. The generated design includes discrete layers defined for 2.5-axis machining, including discrete (but intersecting) layers defined for more than one milling direction. The generated design may be constructed using a multi-axis CNC machine, allowing multiple milling directions to be used without the need to reposition and re-fixture the workpiece, and further reducing the time required to manufacture the part beyond the time saved by using 2.5-axis milling. Moreover, the generative design algorithm can be improved by using the disclosed method(s) of adjusting (projecting) design variables, such that a final product can be manufactured by a 2.5-axis machine, and the sensitivity information provided can formulate how much the objective(s) and constraint(s) can be changed due to the adjustment.

[0016] Details of one or more embodiments of the subject matter described in this specification are set forth in the accompanying drawings and the following description. Other features, objects, and advantages of the invention will be apparent from the description, drawings, and claims.

Brief Description of the Drawings

[0017]

Figure 1A

Figure 1B

Figure 2

Figure 3A

Figure 3B

Figure 4A

Figure 4B

Figure 4C

Figure 4D

Figure 5

Figure 6

Best Mode for Carrying Out the Invention

[0018] Like numbers and designations in the various drawings refer to like elements.

[0019] FIG. 1A shows an embodiment of a system 100 that can be used to determine layer boundaries during generative design to generate a physical structure adapted for manufacturing by a 2.5-axis removal manufacturing process. The computer 110 includes a processor 112 and a memory 114. The computer 110 may be connected to a network 140, which may be a private network, a public network, a virtual private network, or the like. The processor 112 may be one or more hardware processors, each of which can include a plurality of processor cores. The memory 114 may include both volatile memory and non-volatile memory, such as random access memory (RAM) and flash RAM. The computer 110 may implement a three-dimensional (3D) modeling function and include computer-aided design (CAD) program(s) 116 that use one or more generative design processes (e.g., the Solid Isotropic Material with Penalization (SIMP) method) for topology optimization by numerical simulation. The memory 114 may include various types of computer storage media and devices for storing program instructions that operate on the processor 112. The numerical simulations performed by the systems and techniques described herein can simulate one or more physical properties and use one or more types of simulations to generate a numerical evaluation of the physical response (e.g., structural response) of the modeled object. For example, finite element analysis (FEA), including linear static finite element analysis, finite difference method(s), and material point method(s), may be used. Further, the simulation of physical properties may include computational fluid dynamics (CFD), acoustic / noise control, heat conduction, computational injection molding, electrical or electromagnetic flux, material solidification (useful for phase changes in forming processes) simulation, linear transient dynamic analysis, modal analysis, buckling analysis, and / or heat transfer analysis.

[0020] As used herein, CAD refers to any suitable program used to design a physical structure that meets design requirements, whether or not the program can interface with and / or control manufacturing equipment. Thus, CAD program(s) 116 may include computer-aided engineering (CAE) program(s), computer-aided manufacturing (CAM) program(s), and the like. The program(s) 116 may operate locally on computer 110, remotely on a computer of one or more remote computer systems 150 (e.g., one or more server systems of one or more third-party providers accessible by computer 110 via network 140), or both locally and remotely. Thus, the CAD program 116 can offload processing operations (e.g., generative design and / or numerical simulation operations) “to the cloud” by causing one or more programs 116 operating locally on computer 110 to execute processing operations offloaded to one or more programs 116 on one or more computers 150. In some implementations, the CAD program 116 may be two or more programs that operate cooperatively on two or more separate computer processors. In some implementations, all generative design operations are performed by one or more programs in the cloud rather than in a B-Rep solid modeler operating on a local computer. Moreover, in some implementations, the generative design program(s) may operate in the cloud from an API (application programming interface) called by the program without user input through a graphical user interface.

[0021] The CAD program(s) 116 presents a user interface (UI) 122 on the display device 120 of the computer 110, which can operate using one or more input devices 118 (e.g., keyboard and mouse) of the computer 110. Although shown as separate devices in FIG. 1A, the display device 120 and / or the input device 118 may also be integrated with each other and / or with the computer 110 such as a tablet computer (e.g., a touch screen may be the input / output devices 118, 120). Note that, moreover, the computer 110 may include, or be part of, a virtual reality (VR) system and / or an augmented reality (AR) system. For example, the input / output devices 118, 120 may include VR / AR input clusters 118a and / or VR / AR headsets 120a. In any case, the user 160 interacts with the CAD program(s) 116 to create and modify 3D model(s) that can be stored in the 3D model document(s) 130.

[0022] The initial 3D model may be an input to the generative design process. The initial 3D model may be a set of volumes and potentially obstacles. The input saved geometry may be non-connected modeled solids, and the generative design process is used to generate new 3D geometry to connect the input saved solids. The design space 131 may be obtained by determining the encompassing volume or convex hull for the input model, or another technique may be used to obtain the design space 131, which is the volume of the space within which parts will be designed during topology optimization. In some cases, the user can explicitly define a solid as the design space 131.

[0023] User 160 can define a topology optimization problem for a generative design process to generate a desired 3D model from a starting 3D model, or the input may be a design space 131 without a specific initial 3D model. For example, the design space 131 may be a (n x per, n y per, n z per element) box-shaped domain. Generally, the input design space 131 may be generated automatically or defined by the user, and the design space 131 may include one or more non-design regions in addition to the design region, and each different region may have different initial volume fractions, different minimum member sizes, different design criteria (e.g., different manufacturing constraints), and model-dependent default values.

[0024] As described herein, the CAD program(s) 116 implement at least one generative design process, and at least one generative design process enables the CAD program(s) 116 to generate one or more parts (or the whole of the 3D model) of the 3D model based on the design objective(s) and design constraint(s), i.e., design criteria, and the geometry of the design is iteratively optimized based on simulation feedback. As used herein, "optimization" (or "optimal" or "optimizer") does not mean that the best of all possible designs is achieved in all cases, but rather, for example, assuming available processing resources and / or within the time allocated considering competing objectives for the optimization process, the best (or nearly the best) design is selected from a finite set of possible designs that can be generated.

[0025] Design criteria may be defined by user 160 or by another party and may be imported into CAD program(s) 116. Design criteria may include structural integrity constraints for individual parts (e.g., the requirement that a part should not fall below the predicted structural loads during use of the part) and physical constraints imposed by the larger system (e.g., the requirement that a part be contained within a defined volume so as not to interfere with other part(s) within the system during use; the requirement that the CAD software be able to support assembly by linear contact). One or more of the design criteria (e.g., stress constraints) may be defined over the entire region within design space 131 or over individual regions within design space 131. Design criteria may also include a desired 2.5-axis subtractive manufacturing process to be facilitated (e.g., using a 2.5-axis CNC machine, or a 3-axis or multi-axis CNC machine, having a defined type and size of tool).

[0026] It should be noted that in machining, "2.5D" refers to a plane that is the projection of a surface onto a single coordinate axis. In 3D space, the planes of a 2.5-axis subtractive manufacturing process are parallel to x-y with respect to machining, but have different z coordinates. Those planes are defined by different heights, and 2.5-axis milling is a process in which the material is cut according to a shape defined in 2.5D. Since it is easy to generate G-code with an optimal tool path for such a shape, this is a well-known machining process. Furthermore, a 2.5-axis CNC machine has the ability to translate in all three axes, but due to hardware and / or software constraints, it can only perform cutting operations in two of the three axes at a time. For example, the machine has a solenoid instead of a true linear z-axis. A typical example involves an x-y table positioned for each hole center, and the spindle (z-axis) then completes a fixed cycle for drilling by angling in and out. The code for 2.5-axis machining is significantly less than that for 3-axis contour machining, and the software and hardware requirements are (typically) not expensive. Drilling and turning centers are relatively inexpensive (e.g., load-limited machining centers starting in the 2.5-axis market category), but one of many later models is 3-axis because the software and hardware costs have come down with the development of the technology.

[0027] Various generative design processes may be used, which can optimize the shape and topology of at least a part of the 3D model. The optimization of the geometric design of the 3D model(s) by the CAD program(s) 116 involves topology optimization, which is a lightweighting method in which the optimal distribution of materials is determined by minimizing an objective function that is affected by design constraints (e.g., structural compliance with respect to volume as a constraint). There are two main categories of topology optimization, density-based approaches, and boundary-based approaches. Density-based approaches (e.g., SIMP or homogenization methods) discretize the volume of the part into individual elements and assign a density to each discrete element. The density is then driven towards solid and void, while minimizing the objective(s) affected by the constraints. Boundary-based approaches, instead, in methods such as the level set method, track the shape of the external junctions of the solid part and move the boundaries so that the constraints are satisfied and the objective(s) is minimized.

[0028] As described herein, the density-based topology optimization process can guide the generative design process to generate the final shape for a design that facilitates the manufacture of a physical structure using a 2.5-axis manufacturing process that employs two or more z-depth planes (2.5D). The machine tool remains at the z-axis position for each plane, and the machine tool moves within the x-y plane. To achieve this goal, the generative design process can determine the z-depth planes (i.e., the boundaries between different layers of the 3D model), optionally the number of z-depth planes, and the generative design process can use this determined information during density-based topology optimization.

[0029] The shape synthesis process is performed using a representation based on the density of a generatively designed 3D shape of a modeled object, but it should be noted that CAD program(s) 116 typically use different representations of geometry for 3D modeling. For example, the geometry generation engine of the generative design process (e.g., implemented in CAD program(s) 116) employs a density-based representation (e.g., density values associated with voxels or tetrahedral meshes), and CAD program(s) 116 can use a B-Rep model for any input geometry and for the final geometry of the 3D model 132 produced using the generative design process. In some implementations, density-based topology optimization in the generative design process uses a standard finite element grid, and the density for each element is controlled by the associated design variables. Further details regarding the generative design process(es) are provided below in connection with FIGS. 1B - 5.

[0030] When user 160 is satisfied with the generatively designed 3D model 132, the 3D model 132 may be stored as a 3D model document 130 and / or used to generate another representation of the model (e.g., toolpath specifications for a 2.5-axis subtractive manufacturing process). This may be done in view of a request by user 160 or for another action such as sending the generatively designed 3D model 132 to a subtractive manufacturing (SM) machine 170, or as shown, to another manufacturing machine device that can be directly connected to computer 110 or connected via network 140. This may involve a post-process executed on local computer 110 or a cloud service to export the 3D model 132 to an electronic document for manufacturing therefrom. Note that the electronic document (simply referred to as a document for brevity) may be a file, but does not necessarily correspond to a file. The document may be stored in part of a file that holds other documents, in a single file dedicated to the document of interest, or in multiple coordinated files. Additionally, user 160 can save or transmit the 3D model 132 for later use. For example, CAD program(s) 116 can store or transmit document 130 that includes the generated 3D model 132.

[0031] The CAD program(s) 116 may provide the SM machine 170 with the document 135 (having tool path specifications in a suitable format) to create a complete structure from the stock material 137, and the physical structure includes an optimized topology and shape that facilitates the stepped design generated for 2.5-axis machining, 2.5-axis milling. The SM machine 170 may employ one or more subtractive manufacturing techniques, such as a computer numerical control (CNC) milling machine, such as a multi-axis, multi-tool milling machine. The SM machine 170 may be a 2.5-axis CNC machine, where the degrees of freedom of movement of the spindle 171 and the attached tool 172 (e.g., a rotary cutter or router selected from a set of available tools) are limited to the x-y plane for most milling and only move in the z direction in discrete steps.

[0032] However, the SM machine 170 may also be a 3-axis CNC machine, where the spindle 171 has complete freedom of movement in each of the x, y, and z dimensions, i.e., the tool 172 can move simultaneously in all three axes. The 2.5-axis milling process may be performed by a 3-axis milling machine, and since a 2.5D image is a simplified three-dimensional (x, y, z) surface representation that constrains a maximum of one depth (z) value for each point in the (x, y) plane, there is no need to use any of the features of a higher-axis machine. Thus, the SM machine 170 may also be a multi-axis machine, where the tool 172 can translate within three axes (x, y, z) and rotate simultaneously within two axes (roll and pitch) and cut the workpiece 137. It should be noted that those additional degrees of freedom of movement may be affected by the computer-controlled movement of the spindle 171, the computer-controlled movement of the clamp or anchor points (e.g., the machine table) 173 for the part being machined, or a combination of both. Nevertheless, due to the generation of a 2.5-axis design, the advanced capabilities of a 3-axis or multi-axis machine need not be used in all or most of the milling operations.

[0033] Even when the SM machine 170 is not specifically a 2.5-axis machine, using a 2.5-axis removal manufacturing process has advantages. This is due to the fact that performing a cutting operation only once in two dimensions simplifies the generation of a tool path specification (e.g., G-code) closer to the optimal cutting tool path design. Designing the part to have a layered or stepped shape can result in more rapid programming of the removal machine tool path. Further, by restricting the movement of the milling tool to two axes during most of the cutting operation (although in continuous movement within a plane perpendicular to the milling tool, the removal process is performed in discrete steps parallel to the milling tool), the 2.5-axis removal manufacturing process can rapidly remove successive layers of material and create parts that often have a series of "pockets" at variable depths, thus improving the efficiency of the manufacturing process, i.e., shortening the machining time. Moreover, since 2.5-axis machining equipment is more generally available and not more expensive than 3-axis and 5-axis machining equipment, providing the CAD program(s) 116 to the generative design process(es) that may limit the design to 2.5-axis manufactured parts increases the practical utility of the generative design process(es).

[0034] In any case, the CNC machine 170 should, in some way, anchor the stock during machining to prevent unintended movement, and sometimes the location of the stock anchoring should be changed (either by a human operator or by some other means available) so that some of the stock previously used in the anchoring process can be exposed for subsequent cutting by the CNC machine 170. The orientation or arrangement of the part and its anchoring are known as the "part setup". Depending on the ability to rotate the workpiece (either by adopting an entirely different part setup or by rotating the tool or table on which the workpiece is anchored in a multi-axis CNC machine), or the ability to rotate the tool (in a multi-axis CNC machine rather than a 2.5-axis CNC machine), multiple milling directions may be used.

[0035] Thus, regardless of the degree of freedom of movement and the anchoring capabilities of the SM machine 170, the SM machine 170 can perform a 2.5-axis machining process in that the tool moves synchronously within two axes and gradually moves within a third axis such that the tool creates a series of "steps" in the part geometry. Each step wall and floor may be cut by the respective side and end of the tool, which are more efficient than a contoured ("3-axis") surface. At the same time, 2.5-axis machining provides improved control of the geometry over 2-axis machining where the tool always cuts wide through the part. This results in a significant savings in programming time and machining time for the SM machine 170 as a result of using a simpler geometry for the part, even when the SM machine 170 is dealing with a more complex geometry for the part, due to the generative design process(es) in the CAD program(s) 116 generating 2.5-axis compatible geometry.

[0036] Figure 1B shows an example of a generative design process that involves adjusting the density to define the determined layer boundaries and manufacturing a physical structure using a 2.5-axis subtractive manufacturing process. For use in generating a generative 3D model of a physical structure manufactured using a 2.5-axis subtractive manufacturing process, for example, a design space for an object, one or more design criteria, and one or more in-use cases are obtained (180) by, e.g., a CAD program(s) 116. The design space for a modeled object is the volume within which the part is to be designed. The design space may include an enclosing solid that includes an initial specification of one or more outer shapes of the three-dimensional topology for the object. As described above, the design space may be a subspace of the optimization domain of the generative design process and / or a set of input solids that define boundary conditions for generative design geometry generation, e.g., a B-Rep selected using a UI 122 to define a (sub)space(s) saved for use as connection point(s) to other component(s) in a larger 3D model or separate 3D model(s), and may include a 3D model(s) designed in or loaded into a CAD program(s) 116 that serves as the B-Rep.

[0037] The design criteria may include design objectives(s) and design constraints(s) for the object. The design objectives may include, but are not limited to, minimizing waste material, minimizing part weight, minimizing compliance or maximizing stiffness, minimizing stress, and / or minimizing or maximizing other intrinsic properties of the part, and are used to drive a shape synthesis process towards a better design. Although not essential, it is typical for the design objectives to be established in simulations of the design, e.g., linear static, hydrodynamics, electromagnetics, etc. The design constraints may include various geometric and physical properties or behaviors that should be satisfied in any generated design (requirements for either individual parts or the entire assembly are also acceptable), examples including maximum mass, maximum displacement under load, maximum stress, etc.

[0038] Furthermore, different generative design processes may be formulated by using different combinations of design parameters and design variables. In some implementations, the design parameters may include various types of inputs received through the UI122, such as a selection among different generative design synthesis methods made available by CAD program(s) in system 100. In some implementations, the available generative design synthesis methods may include the SIMP method that provides a method based on the density of topology optimization. Other generative design synthesis methods are possible and may be provided by CAD program(s) 116 in system 100. In response to input from the user 160, different combinations of design parameters and design variables may be used, for example, by CAD program(s) 116. For example, the user 160 may select different generative design synthesis methods to use within each different design space within a single 3D model.

[0039] Furthermore, the one or more in-use cases obtained (180) are for physical structures manufactured from generatively designed parts using a 2.5-axis subtractive manufacturing process. The one or more in-use cases may include one or more loads predicted to be supported by the physical structure and may be associated with the density of elements in an FEA model to be used, for example, by an optimized 3D topology of the generatively designed part for numerical simulation. However, as used herein, "in-use case" generally refers to distinct operating constraints under which part performance is evaluated and corresponds to one or more sets of boundary conditions for various types of physics simulations, such as flow simulations, electromagnetic (EM) behavior simulations, multiphysics simulations, etc.

[0040] Generally, the setup for numerical simulation may include one or more physical properties to be simulated and one or more types of simulations to be performed, along with other methods of potential surrogate modeling or approximation. In some implementations, the type of numerical simulation is predefined either for all uses of the program or, alternatively, for a specific context in the program from which a generative design process has been initiated. Further, the setup for numerical simulation may include at least one set of loading conditions and / or other physical environment information associated with the type of numerical simulation to be performed, i.e., the case(s) in use.

[0041] With the defined generative design space and design criteria, one or more generative design processes are used to generate, e.g., one or more 3D models by a CAD program(s) 116 (185), and the physical structure(s) corresponding to those 3D models are designed to be manufactured using a 2.5-axis subtractive manufacturing process. For example, one or more generative design processes executed by a CAD program(s) 116 include, e.g., at least one density-based generative design process using the SIMP method, which involves iteratively modifying the generatively designed three-dimensional shape of the modeled object by the CAD program(s) 116. This includes modifying both the geometry and the topology of the three-dimensional shape within the design space according to one or more design criteria and one or more cases in use. In particular, step 185 can generate an optimal topology design that minimizes the objective function and satisfies multiple constraints, and the design is compatible with 2.5-axis machining. The iterative update of the 3D shape and topology of the generative design in step 185 continues until the generative design satisfies all the constraint(s) and minimizes (or maximizes) the objective(s).

[0042] Generating a 3D model(s) (185) includes adjusting an expression based on the density of a three-dimensional shape generatively designed according to one or more milling directions of a 2.5-axis subtractive manufacturing process. Adjusting may be done only as part of an iteration of repeatedly modifying, or throughout an iterative modification of the 3D shape after an iteration of repeatedly modifying topological optimization has ended. However, regardless of whether the adjustment is done within the topological optimization loop, adjusting defines boundaries between three or more discrete layers for the object, and one or more generative 3D models compatible with the 2.5-axis subtractive manufacturing process are produced.

[0043] Such 3D models have discrete layers corresponding to the 2.5-axis subtractive manufacturing process, and the discrete layers create flat areas within one or more 3D model(s) that facilitate the manufacture of the corresponding physical structure(s) by facilitating side milling (removing stock material using the side or flank of the tool) and end milling (removing stock material using the end or face of the tool). Note that even when 2.5-axis manufacturability need not be implemented as a formal constraint within the topological optimization process, repeatedly modifying (185) the generatively designed 3D shape of the modeled object effectively constrains the geometry generation process to produce shapes that can be manufactured using 2.5-axis machining.

[0044] In some implementation modes, the results of the generative design process are presented to the user, for example, within the UI 122 on the display device 120, according to option 190 to accept or reject the design. In some implementation modes, the user can select from either the final design or various previous iterations for each design investigation. In some implementation modes, two or more 3D models resulting from the generative design process may be presented to the user according to a trade-off analysis of the manufacturing cost (or any of various other quantities of interest) against the design complexity. The trade-off analysis can assist the user 160 in determining whether to accept or reject one or more of the presented 3D models.

[0045] If the design is rejected, the process of FIG. 1B may return, for example, by CAD program(s) 116, to obtaining a new design space and / or new design criteria for use in generating a new generative 3D model (180). If the design is not rejected (190), the process of FIG. 1B can, for example, by CAD program(s) 116, provide the 3D model of the object with a generatively designed shape and topology for use in 2.5-axis subtractive manufacturing of the physical structure (195). Providing (195) may involve transmitting or storing the 3D model in a persistent storage device for use in manufacturing the physical structure corresponding to the object using an SM manufacturing system. In some implementations, providing (195) includes, for example, by CAD program(s) 116, generating tool path specifications for a computer-controlled SM manufacturing system(s) using the 3D model (195A), and, for example, by CAD program(s) 116, manufacturing at least a portion of the physical structure corresponding to the object by a computer-controlled SM manufacturing system(s) using the tool path specifications generated for 2.5-axis SM machining (195B). In some implementations, providing (195) may include manufacturing a mold for the physical structure by 2.5-axis subtractive machining using the generated (195A) tool path specifications, and the 3D model may be a model of the mold to be manufactured using a 2.5-axis subtractive manufacturing process.

[0046] The provided (195) 3D model may be a generative design synthesis method or a (185) 3D model produced by a post-processed version of the generative design output. For example, in some implementations, the 3D mesh model produced by the generative design synthesis method may be converted to a watertight B-Rep 3D model before being provided (195). In some implementations, a polygon mesh that can be extracted from the output of a density-based generative design process, or generative design data obtained directly from a density-based generative design process, may be converted, for example, by a CAD program(s) 116, to a boundary representation (B-Rep) model and / or a parametric feature model. The boundary representation model or parametric feature model may be editable, for example, as sketch geometry with parametric features.

[0047] Thus, the generative design method(s) described herein may be implemented, for example, in a CAD program(s) 116 to provide both (1) substantial user control over the generative design process and (2) a control function that provides a generatively designed 3D model for use in manufacturing a physical structure corresponding to the object. In either case, the goal is to generate a 3D model of the object that facilitates 2.5-axis subtractive manufacturing of the object.

[0048] FIG. 2 shows an example of a process of adjusting a density-based representation of a generatively designed three-dimensional shape according to one or more milling directions of a 2.5-axis subtractive manufacturing process. The process of FIG. 2 is an example of adjusting in the defined process 185 from FIG. 1B. Different milling depths associated with different subsets of individual elements in the density-based representation of the generatively designed three-dimensional shape are collected (200).

[0049] Collecting (200) may include arranging individual elements into an expression based on the density of a generated three-dimensional shape in milling lines parallel to the milling direction (205), where each of the milling lines corresponds to one of different subsets of the individual elements. For example, the milling array may be defined directly on the physical domain of the density-based expression. Note that it is not necessary to have a virtual embedding domain (in which the milling process is established) nor an interpolation of the physical model (within the virtual domain using coordinate transformation and mapping).

[0050] FIG. 3A shows an example of arranging elements in milling lines. In the example shown, it is presumed that the milling direction is in the negative z - coordinate direction. Arrow 300 represents a milling line parallel to the milling direction 305 of the tool. In each milling line 300, the first element 310 that the tool touches is referred to as the starting element. In some implementations, arranging (205) involves identifying the starting element based on the milling direction 305, establishing a milling line for each identified starting element, discovering which of the remaining elements are intersected by each milling line, and storing the sequence of elements along each milling line in the array.

[0051] The presumption that the milling direction is in the negative z - coordinate direction is for ease of presentation only, and note that various different milling directions may be used, such as a milling direction angled at 45 degrees for 3 - axis milling or multi - axis milling. Further, the numbers 1 - 64 in the elements shown in FIG. 3A represent finite elements within a standard Cartesian grid mesh. If the domain is rectangular or cubic, the starting elements may be determined based on the coordinates or surfaces to which they belong. The algorithm can be much simpler if all elements are ordered starting from the lowest coordinate values, increasing first in the x - direction, then in the y - direction, and finally in the z - direction. In such an implementation, if the number of elements in the x -, y -, and z - directions is known, discovering the starting element is straightforward.

[0052] In implementations where the elements cannot be ordered in such a way, a proximity array and a milling direction array may be used to sequentially discover the starting and subsequent elements along each milling line. In some implementations, the mesh is searched based on element coordinates and positions to discover those elements that come next in the latest sequence along the milling line. In some cases, the user, geometry modeler, or preprocessor stage can result in (non-conventional) element sequencing from which milling line intersections and adjacent elements can be discovered. Additionally, in some implementations, symmetry is considered and the milling direction needs to be towards or parallel to the symmetry plane(s). For example, when the y-plane is the symmetry plane, the milling direction cannot be in the positive y-coordinate direction.

[0053] Thus, the example presented in FIG. 3A represents a standard Cartesian grid mesh and it is not essential to use finite elements within the standard Cartesian grid mesh. Each mesh element need not be square (2D) or cubic (3D). Each mesh element may be rectangular (2D) and cuboid (3D). Moreover, some implementations operate on other types of mesh elements and mesh types such as tetrahedral elements and meshes composed of unstructured meshes. For example, for non-standard meshes, element center coordinates may be used to determine whether an element belongs to a particular milling line, and a tolerance may be used to determine acceptance of an element as belonging to the milling line since the element center coordinates may not be on the milling line. Generally, for a given mesh and a given milling direction, all elements may be arranged within the milling line by a unique starting element for each milling line. Additionally, 2.5-axis milling conditions may be applied due to various types of constraints such as minimum feature size and maximum feature size.

[0054] Returning to FIG. 2, collecting (200) may further include aggregating the density of elements along each of the milling lines such that the aggregated density of the elements increases monotonically along each of the milling lines to one maximum value or another maximum value, e.g., a value provided by a user. Aggregating (210) may include accumulating density values along the milling lines and projecting the accumulated density values, as described below. Note that the following derivation considers only a single milling line, but the same process may be applied to each of the milling lines.

[0055] Initial density ρ i (i = 1, …, N) are referred to as blueprint densities. They are design variables used in the optimization. Then, along the tool direction, the density is accumulated as shown in Table 1 below.

[0056] [Table 1]

[0057] The accumulated density is

[0058] [Equation]

[0059] It may be described as such. Thus, the first element within each milling line maintains its own density, the second element obtains the sum of the first and second elements, the third element obtains the sum of the first, second, and third elements, and so on. This accumulation process ensures that the density increases monotonically along the tool direction. Therefore, it prevents holes from occurring within the tool path.

[0060] However, it is possible that the accumulated density may be greater than 1. In some implementations, a flat Heaviside step function is applied to set the maximum density to 1.

[0061]

Number

[0062] When it is less than the threshold η, the projected density becomes zero; otherwise, it becomes 1. Mathematically, the Heaviside function can be defined as

[0063]

Number

[0064] and may be defined as H(a) = 1 when a > 0 and H(a) = 0 when a < 0. However, since the Heaviside function is not differentiable, a flattened Heaviside step function of the following form may be used:

[0065]

Number

[0066] where β is a parameter for controlling the approximation. As β → ∞, the flattened Heaviside step function approaches the true step function. In some implementations, η = 0.5 and β = 10, which limits the density between zero and one and may define the milling depth as

[0067]

Number

[0068] Of course, other values including different cutoffs of the density value for the milling depth are possible. Nevertheless, for a given milling line, the topological density of the elements may be accumulated such that the topological density increases monotonically along each milling line, and the accumulated density may be projected so that the maximum density value does not exceed 1.0.

[0069] In addition, collecting (200) may further include identifying (215) a milling depth for each of the milling lines using the aggregated density in each of the milling lines. For example, the projected density may be used to identify each milling depth as the position where the density = 0.5. Generally, the milling depth for each line may be set to an intermediate density value between 0 and 1, such as a value provided by the user.

[0070] FIG. 3B shows a plurality of milling lines 320 (L 1 , L 2 , …, L n ) and their milling depths 325 (d 1 , …, d n ). Due to the density increasing monotonically along each of the milling lines, for example, when the cumulative density

[0071]

Number

[0072] exceeds, the milling depth for each milling line is identified as the point where the cumulative density exceeds a common threshold, and each different milling line can have a different milling depth. For the different milling lines to have different milling depths, the machine tool needs to cut at different heights for the different milling lines, that is, 3-axis or more milling is still required. Those different milling depths 325 do not work for 2.5-axis milling. To address this problem, the milling lines may be grouped together, and the same milling depth may be assigned to the milling lines within each group.

[0073] Returning to FIG. 2, different milling depths may be grouped into one of each of three or more discrete layers (220), and each of the three or more discrete layers is perpendicular to the milling direction of the 2.5-axis removal manufacturing process. The number of discrete layers may be a user input value that remains fixed during the iterative modification of the 3D shape. Alternatively, a program that performs the adjustment, e.g., a CAD program(s) 116, may determine the number of discrete layers regardless of whether it is outside or inside the topology optimization loop. For example, if the user input indicates six layers, the program may end up with five layers if two layers have the same depth, i.e., the program determines the optimal grouping that results in fewer discrete layers than specified by the user.

[0074] In some implementations, the program may determine the number of discrete layers within a range of the number of layers provided by the user. For example, the number of layers (within the range) may be included in a set of variables controlled by the optimizer. In some implementations, the program may determine the optimal number of discrete layers by splitting the layers until each layer contains at least the number of elements provided by the user. In some implementations, the program continues to split the layers until the minimum difference in the spacing between two layers is less than a threshold provided by the user. Further, in some implementations, one or more planes between the discrete layers may be determined by preprocessing any geometry input into the generative design process, such as by identifying one or more planes (perpendicular to the milling axis) of any of the input bodies.

[0075] Grouping (220) may include classifying (225) different milling depths to produce classified milling depth values. FIG. 4A shows an example of classifying milling depths. As shown, (d 1 , d 2 , …, d n) is a milling depth of 400 for all milling lines. Those milling depths of 400 may be classified in ascending order as represented by

[0076]

Number

[0077] (405). Figure 4B shows an example of defined layer boundaries for the classified milling depths 410. Note that Figure 4B is a hypothetical graph, but it shows the logic for grouping milling lines when their depths are similar. Additionally, other approaches to grouping the milling depths are possible. For example, in some implementations, a clustering algorithm such as a support vector machine algorithm that divides the data into a given set of groups may be used.

[0078] Referring back to Figure 2, in some implementations, grouping (220) may include identifying two or more maximum differences in the classified milling depth values (230), and based on the positions of the milling depths of each subset within the classified milling depth values associated with the two or more maximum differences, assigning each of the different subsets of individual elements to one of three or more discrete layers (235). For example, the boundary for a layer may be defined as the point where the largest jump in milling depth exists. Referring to Figure 4A, the difference in milling depth

[0079]

Number

[0080] may be calculated for all milling lines (415), for example, the difference between the most recent milling depth and the previous milling depth is calculated and stored.

[0081] All Δd iAmong them, the maximum NLEVEL milling depth difference (as described above, NLEVEL is defined by the user or determined partially or fully automatically) may be selected as the boundary between discrete layers. In Figure 4B, those boundaries are L 1 , L 2 , …, L 6 are represented as. When NLEVEL = 3, only L 1 , L 2 , and L 3 are used. Once the layer boundaries are defined, all elements between two boundaries (or on each side of the maximum of the two boundaries) belong to the same level for 2.5-axis machining. For example, the milling depth differences may be classified until the NLEVEL groups of milling depths are defined, the maximum difference may be used to identify the first boundary, the second maximum difference may be used to define the second boundary, and so on. Further, it should be noted that it is not necessary to classify the depth at each iteration during generative design optimization, let alone frequently. For example, if the maximum change in the design variables in one iteration is relatively small, this may mean that classification is not required. Therefore, as the process approaches the optimal design (as it approaches convergence), it may not be necessary to classify the milling depth at each iteration.

[0082] Returning again to FIG. 2, grouping (220) may include, for example, preserving the total amount of material and setting a single milling depth in each of the discrete layers of three or more discrete layers based on the milling depth associated with a subset of elements assigned to the discrete layers (240). In some implementations, the single milling depth in each group is defined as the average of all the milling depths within the group. Note that topology optimization often includes the total amount of material used as an objective or constraint. Thus, when adjusting the design for 2.5-axis milling, it may be preferable to maintain the same material before and after the adjustment. Calculating the layer depth by averaging all the depths in the group automatically preserves the amount of material used, thus improving the accuracy of the topology optimization process with respect to the adjustments for 2.5-axis milling.

[0083] The density values for at least some of the individual elements in a density-based representation are changed (250) such that a single milling depth is generated for each of three or more discrete layers. Note that not all mesh elements need to be changed in all implementations, as some elements may be in regions excluded from the 2.5-axis machining requirements. Also note that in addition to potentially having two or more design and non-design regions, different design regions may have different 2.5-axis conditions, such as the number of layers and milling directions. Changing (250) may involve, as follows, reassigning the milling depth of all the milling lines within each group using the average depth (such that all the milling lines having the group have the same milling depth).

[0084] For a given layer L, assume that there are M L milling lines. Since all the milling lines have different milling depths, the average milling depth may be used as the representative milling depth for layer L. d i (i = 1, …, M L) is assumed to be the milling depth for the layer. Then, the average milling depth may be defined as

[0085]

Number

[0086] as follows.

[0087] When the average milling depth for layer L is calculated, the topological density of all elements in all milling lines within the layer may be recalculated using the average milling depth

[0088]

Number

[0089] as follows.

[0090] In Equation (4), the parameter β may be the same as or different from that in Equation (2). In some implementations, the same value of β = η = 3.0 may be used. Along the milling line, if the element depth position is less than the averaged milling depth, the element has a zero density; otherwise, it has a density of 1. Note that, apart from the approach of Equation (4), additional approaches are possible to modify the density, such as using a step function to enforce a shared milling depth in each group. Generally, any suitable monotonically increasing function between 0 and 1 may be used.

[0091] Figure 4C shows Example 450 of projecting the element topological density along a milling line. In this example, there are 100 elements along the milling line and the average milling depth is 25. By repeating this projection for all milling lines in the same group, all milling lines are made to have the same milling depth, i.e., the milling plane is defined with an average milling depth comparable to the height.

[0092] Therefore, the description has so far focused on optimizing the part shape for only one milling direction. However, the projected topology density in Equation (4) may be applied for each milling direction. Let NT be the total number of milling directions. Then, the topology density may be determined by

[0093]

Number

[0094] This density may be stored in an array, and the optimization uses ρ as the main variable. Thus, the described embodiments may be extended to two or more milling directions. The two or more milling directions may be determined by user input or automatic detection. i Figure 4D shows examples of different milling directions 485, 490, 495 associated with the workpiece 480. The two or more milling directions may include one or more pairs of parallel (or collinear) milling directions 490, 495 having opposite signs (i.e., the part is machined, reversed, and machined again). The two or more milling directions may also include non - parallel milling directions 485, 490. However, the approach described herein is applicable to many additional non - parallel (and non - collinear) milling directions beyond those shown in Figure 4D. In fact, the number and arrangement of milling directions may be under overall user control.

[0095]

[0096] ​Thus, in some cases, only one milling direction is used during the process of FIG. 2, while in other cases, more than one milling direction is used, and for each of the two or more milling directions, the density is adjusted separately to generate a respective milling direction specific data set. Thus, in some implementations, an inspection 260 is performed to check whether any additional milling directions are still to be processed. If so, the process switches (270) to a new orientation for the next milling direction before starting to collect (200), group (220), and modify (250). In some implementations, switching (270) involves performing a coordinate transformation such that the cutting coordinates are parallel to the x-y plane and the milling direction is in the negative z coordinate. However, as described above, the mapping between the physical domain (used in topology optimization) and the virtual domain (for milling direction processing) of the density-based representation is not essential, and it can result in a faster and more accurate process. In some implementations, switching (270) can involve switching to a new data structure (or a new part of a common data structure) for storing the start element and the sequence of elements along each milling line for each different milling direction, so switching (270) does not need to involve any coordinate transformation for different milling directions.

[0097] When all different milling directions have been processed, the respective milling direction specific data sets may be combined (280) to update the representation based on the density of the generatively designed three-dimensional shape of the modeled object. The combining (280) may involve multiplying the densities together. Nevertheless, regardless of whether multiple milling directions are used, the resulting design of the part / object consists (entirely or mostly) of a plurality of flat surfaces that have different heights and no undercuts. The final design need not consist entirely of such flat surfaces, such as when an input stock with a curved surface is used, or when a topology optimization process takes into account the shape of the machine tool, which may be a ball end cutter.

[0098] FIG. 5 shows an example of a process of generative design by layer boundary determination for generating a 3D model compatible with a 2.5-axis removal manufacturing process. The shape and topology optimization loop includes performing a numerical simulation 555 of the modeled object according to the latest version of the 3D shape and one or more in-use cases so as to generate an up-to-date numerical evaluation of the physical response (e.g., structural response) of the modeled object. The up-to-date numerical evaluation may be voxel-based stress field data, strain field data, or both. However, as described above, various types of numerical simulations may be performed, which may include, but are not limited to, an FEA simulation that calculates the strain energy at any location inside the volume of the latest version of the 3D shape. In any case, the physics simulation of the latest 3D shape produces an up-to-date numerical evaluation, which may then be used to modify the 3D shape in view of the design criteria.

[0099] After numerical simulation 555, gradients (e.g., sensitivity analysis data) are calculated (560) based on the latest numerical evaluation of the physical response of the modeled object from simulation 555 and following the milling direction of the 2.5-axis removal manufacturing process. It will be noted that the optimization engine requires the gradient to know how a given pattern changes the shape to improve the design. For the given example, it will be noted that the proximity sensitivity method calculates the gradient of the objective(s) and constraints with respect to the build density, and the optimization uses the sensitivity with respect to the blueprint density. Thus, the sensitivity with respect to the build density needs to be converted to the sensitivity with respect to the blueprint density by using the chain rule of differentiation.

[0100] Using the chain rule of differentiation, the sensitivity ∂g / ∂ρ with respect to the build density e,N is

[0101]

Number

[0102] to blueprint ∂g / ∂ρ e may be used to calculate the sensitivity, where N k is the number of elements in the milling direction k. If i >= e

[0103]

Number

[0104] it is, otherwise it is 0. Note that the other two terms in Equation (6) are

[0105]

Number

[0106]

Number

[0107] may be defined as.

[0108] Generally, calculating (560) tracks the process used for adjusting (570) in that the projection of an element onto a defined plane (the average used to define a plane for 2.5-axis milling from a variable contour for 3-axis milling) is considered when determining how much the density of an element is affected by a change during topology optimization. Note that a change to the density of one additional element for a variable contour has an impact on all elements grouped in the same plane. In cases where an average is used to define the milling depth, every element density contributes to 1 / n at a level where there are n elements. When the layer height is calculated as the average of grouped milling depths, this equation is differentiated to be equivalent to a single element contribution.

[0109] When a gradient is calculated, a density-based topology optimization code is called (565). The input to the density-based topology optimizer may include the most recent numerical evaluation of the physical response from simulation 555 and the calculated (560) sensitivity analysis data. The density-based topology optimizer may process those inputs using density-based optimization (e.g., SIMP) to improve the density-based representation of a generatively designed three-dimensional shape with respect to one or more design criteria by changing the density to move the geometry towards a more optimal shape (including possible topology changes).

[0110] As described above, adjusting the density-based representation according to the milling direction of the 2.5-axis removal manufacturing process may be performed to assist in ensuring that the final output is compatible with 2.5-axis machining (570), and an inspection for convergence 575 may be performed (575), i.e., an iterative process continues until the generatively designed three-dimensional shape of the modeled object within the design space converges to a stable solution that satisfies one or more design criteria and one or more in-use cases. In some implementations, the numerical simulation 555, calculating the gradient (560), topology optimization 565, and adjusting (570) iterate until a predefined number of shape modifications are performed, until convergence, or both (575).

[0111] As described above, in some implementations, adjusting is performed throughout the iterative modification of the 3D shape. Thus, operations 555-575 may, in some implementations, be the entire topology optimization loop. However, in other implementations, operations 555-575 represent only a portion of the iterative modification of the 3D shape. For example, operations 555-575 may be two or more iterations performed in a topology optimization loop that is separate from one or more subsequent topology optimization loops of the iterative shape modification process.

[0112] In some implementations, a first set of iterations is performed without adjusting the density (500), and then a second set of iterations is performed with adjusting the density (550). For example, a first topology optimization may be performed assuming 3-axis milling until a predefined number of shape modifications are performed, until convergence, or both (500), and then a second topology optimization may be performed according to 2.5-axis milling (as described herein) until a predefined number of shape modifications are performed, until convergence, or both (550).

[0113] 3-axis milling-based topology optimization has a variable contour of milling depth, while 2.5-axis milling has discrete milling depths. By performing 3-axis topology optimization first (e.g., until convergence), special processing steps of 2.5-axis topology optimization in the process are avoided early, which can generate a significant saving of processing resources because the initial stage of topology optimization typically has little advantage in points that enforce discrete milling depths and is accompanied by significant changes in shape. When 3-axis topology optimization is performed first, it should be noted that convergence can be reached for 2.5-axis topology optimization in just 2 to 5 additional iterations, e.g., 3 additional iterations. Moreover, using 2.5-axis topology optimization from the beginning may cause rapid changes in the design during the initial iterations. Thus, using the two-stage process of Figure 5 helps to stabilize the optimization convergence and makes the process more efficient. Nevertheless, when the user requests 2.5-axis topology optimization, it may look strange to display the 3-axis intermediate results. Thus, in some implementation modes, for the purpose of displaying the 2.5-axis results to the user, a 2.5-axis projection may be executed for each iteration during topology optimization.

[0114] In addition, in some implementation modes, the initial 3-axis milling topology optimization 500 does not need to adopt the systems and techniques described in this application. Rather, other 3-axis milling constraints in topology optimization may be adopted as a whole. Nevertheless, assuming that the surface contour for 3-axis milling is received, the 2.5-axis topology optimization 550 based on its 2.5-axis layer definition may be used for the output from such other processes. In such cases, the surface contour may be used as the milling depth, and the same procedure in 550 may be adopted to find the optimal design that meets the 2.5-axis milling conditions.

[0115] FIG. 6 is a schematic diagram of a data processing system including a data processing apparatus 600 that can be programmed as a client or a server to implement the embodiments described herein. The data processing apparatus 600 is connected to one or more computers 690 through a network 680. Only one computer is shown in FIG. 6 as the data processing apparatus 600, but a plurality of computers may be used. The data processing apparatus 600 includes various software modules that can be distributed between an application layer and an operating system. They may include executable and / or interpretable software programs or libraries, including tools and services of one or more 3D modeling programs 604 that implement the systems and techniques described above. Thus, the 3D modeling program(s) 604 may be a CAD program(s) 604 (such as CAD program(s) 116), and may implement one or more generative design processes for layer boundary determination for generating 2.5-axis machining output with or without a plurality of milling directions, and for topological optimization and physical simulation operations (such as finite element analysis (FEA) or others) (e.g., using a method(s) based on SIMP). Further, the program(s) 604 may potentially implement manufacturing control operations (generating and / or applying tool path specifications that affect the manufacture of the designed object). The number of software modules used may vary from one implementation to another. Moreover, the software modules may be distributed over one or more data processing apparatuses connected by one or more computer networks or other suitable communication networks.

[0116] The data processing apparatus 600 also includes a hardware device or a firmware device including one or more processors 612, one or more additional devices 614, a computer-readable medium 616, a communication interface 618, and one or more user interface devices 620. Each processor 612 is capable of processing instructions for execution within the data processing apparatus 600. In some implementations, the processor 612 is a single-threaded processor or a multi-threaded processor. Each processor 612 is capable of processing instructions stored in a storage device such as the computer-readable medium 616 or one of the additional devices 614. The data processing apparatus 600 uses the communication interface 618, for example, to communicate with one or more computers 690 through the network 680. Examples of the user interface device 620 include a display, a camera, a speaker, a microphone, a tactile feedback device, a keyboard, a mouse, and VR and / or AR devices. The data processing apparatus 600 may store instructions for implementing operations associated with the above-described program(s) in, for example, the computer-readable medium 616 or one or more additional devices 614, such as a hard disk device, an optical disk device, a tape device, and a solid-state memory device.

[0117] Embodiments of the subject matter and the functional operations described in this specification may be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or combinations of one or more of them. Embodiments of the subject matter described in this specification may be implemented using one or more modules of computer program instructions encoded on a non-transitory computer-readable medium for execution by, or to control the operation of, a data processing apparatus. The computer-readable medium may be a manufactured product, such as a hard drive or an optical disk in a computer system sold through a retail channel, or an embedded system. The computer-readable medium may be separately acquired and later encoded, for example, after the distribution of one or more modules of computer program instructions through a wired or wireless network by one or more modules of computer program instructions. The computer-readable medium may be a machine-readable storage device, a machine-readable storage substrate, a memory device, or a combination of one or more of them.

[0118] The term “data processing apparatus” encompasses, by way of example, all apparatus, devices, and machines for processing data, including programmable processors, computers, or multiple processors or computers. The apparatus may include, in addition to hardware, code that creates an execution environment for the computer programs of interest, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, a runtime environment, or a combination of one or more of them. Additionally, the apparatus may employ various different computing model infrastructures, such as web services, distributed computing, and grid computing infrastructures.

[0119] A computer program (also known as a program, software, software application, script, or code) may be described in any suitable form of programming language, including a compiled or interpreted language, a declarative or procedural language, and it may be deployed in any suitable form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. The program may be stored as part of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in a plurality of coordinated files (e.g., files that hold one or more modules, subprograms, or portions of code). A computer program may be deployed to be executed on one computer, or located on one site, or distributed across multiple sites and executed on multiple computers interconnected by a communication network.

[0120] The processes and logic described herein may be executed by one or more programmable processors executing one or more computer programs to perform functions that operate on input data and generate output. The process and logic flow may also be executed by special purpose logic circuitry, such as an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit), and the apparatus may also be implemented as an FPGA or an ASIC.

[0121] Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, as well as any one or more processors of any kind of digital computer. In general, a processor receives instructions and data from a read only memory or a random access memory or both. Essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. In general, a computer also includes one or more mass storage devices for storing data, such as magnetic disks, magneto - optical disks, or optical disks, or receives data from them, or transfers data to them, or is operatively coupled to them for both. However, a computer need not have such devices. Moreover, a computer may be embedded in another device, such as, by way of example, a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a global positioning system (GPS) receiver, or a portable storage device (such as a universal serial bus (USB) flash drive). Devices suitable for storing computer program instructions and data include, by way of example, semiconductor memory devices, such as, erasable programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto - optical disks; and CD ROM and DVD - ROM disks, including all forms of non - volatile memory, media, and memory devices. The processor and the memory may be supplemented by, or incorporated in, special purpose logic circuitry.

[0122] To provide an interaction with a user, the embodiments described herein may be implemented on a computer having a display device for displaying information to the user, such as an LCD (liquid crystal display) display device, an OLED (organic light emitting diode) display device, or another monitor, and a keyboard and a pointing device by which the user can provide input to the computer, such as a mouse or a trackball. Other types of devices may also be used to provide an interaction with the user. For example, the feedback provided to the user may be any suitable form of perceptual feedback, such as visual feedback, auditory feedback, or tactile feedback, and the input received from the user may be in any suitable form, including acoustic input, speech input, or tactile input.

[0123] A computing system may include a client and a server. The client and the server are generally remote from each other and typically interact through a communication network. The client-server relationship results from computer programs running on respective computers and having a client-server relationship with each other. Embodiments of the subject matter described herein may be implemented in a computing system that includes, for example, backend components as a data server, or includes middleware components, such as an application server, or includes frontend components, such as a client computer having a graphical user interface or a browser user interface through which a user can interact with an implementation of the subject matter described herein, or includes any combination of one or more such backend components, middleware components, or frontend components. The components of the system may be interconnected by any suitable form or medium of digital data communication, such as by a communication network. Examples of communication networks include local area networks (“LANs”) and wide area networks (“WANs”), the Internet network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).

[0124] This specification includes many implementation details, but they should not be construed as limitations on the scope of what is claimed or what might be claimed, but rather as descriptions of features specific to particular embodiments of the disclosed subject matter. The particular features described herein in the context of separate embodiments may also be implemented in combination within a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented separately in multiple embodiments or in any suitable sub-combination. Moreover, features are described above as acting in certain combinations and may initially be claimed as such, but one or more features from a claimed combination may in some instances be excised from the combination, and the claimed combination may be directed to a sub-combination or variation of a sub-combination.

[0125] Similarly, it should not be understood that operations are represented in the drawings in a particular order and that such operations are to be performed in that particular order or in sequential order, or that all illustrated operations are required to achieve the desired result. In certain circumstances, multitasking and parallel processing may have advantages. Moreover, the separation of various system components in the embodiments described above should not be understood as required in all embodiments, and it should be understood that the described program components and systems may be integrated together in an overall single software product or packaged in multiple software products.

[0126] Thus, particular embodiments of the invention have been described. Other embodiments are within the scope of the following claims. Additionally, the actions recited in the claims may be performed in a different order and still achieve the desired result.

Claims

1. Obtaining a design space for a modeled object, one or more design criteria for the modeled object, and one or more in-use cases for the physical structure, where the corresponding physical structure is manufactured using a 2.5-axis removal manufacturing process; Iteratively modifying a generatively designed three-dimensional shape of the modeled object within the design space according to the one or more design criteria and the one or more in-use cases, where the iteratively modifying employs a representation based on the density of the generatively designed three-dimensional shape of the modeled object, and the iteratively modifying includes adjusting the representation based on the density of the generatively designed three-dimensional shape according to the milling direction of the 2.5-axis removal manufacturing process in at least two iterations of the iteratively modifying, and the adjusting includes: Collecting different milling depths for different subsets of individual elements in the representation based on the density of the generatively designed three-dimensional shape; Grouping the different milling depths into one for each of three or more discrete layers, where each of the three or more discrete layers is perpendicular to the milling direction of the 2.5-axis removal manufacturing process; Changing density values for at least some of the individual elements in the representation based on the density so that a single milling depth is produced for each of the three or more discrete layers, including the iteratively modifying; Providing the generatively designed three-dimensional shape of the modeled object for use in manufacturing the physical structure using one or more computer-controlled manufacturing systems employing the 2.5-axis removal manufacturing process; A method comprising the above.

2. The grouping includes: Classifying the different milling depths to generate classified milling depth values; Identifying two or more maximum differences in the classified milling depth values; Assigning each of the different subsets of the individual elements to one of the three or more discrete layers based on the position of the milling depth of each subset within the classified milling depth values related to the two or more maximum differences. Setting the single milling depth in each of the discrete layers of the three or more discrete layers based on a milling depth associated with an element subset assigned to the discrete layer; The method according to claim 1, comprising.

3. The method according to claim 2, wherein the number of the three or more discrete layers is a user input value that remains fixed during the repeatedly modifying.

4. The repeatedly modifying is in the at least two repetitions, Performing a numerical simulation of the modeled object according to the latest version of the three-dimensional shape and the one or more in-use cases so as to generate a latest numerical evaluation of the physical response of the modeled object; Calculating sensitivity analysis data based on the latest numerical evaluation of the physical response of the modeled object and according to the milling direction of the 2.5-axis removal manufacturing process; Calling a density-based topology optimization code with an input including the latest numerical evaluation of the physical response and the sensitivity analysis data so as to improve a representation based on the density of the generatively designed three-dimensional shape with respect to the one or more design criteria; Performing the adjusting the representation based on the density according to the milling direction of the 2.5-axis removal manufacturing process; Repeating until the generatively designed three-dimensional shape of the modeled object in the design space converges to a stable solution for the one or more design criteria and the one or more in-use cases. The method according to claim 1, comprising.

5. The method according to claim 4, wherein the density-based topology optimization code implements the Solid Isotropic Material with Penalization method of topology optimization.

6. The collecting is Arranging individual elements in the representation based on the density of the generatively designed three-dimensional shape into milling lines parallel to the milling direction, each of the milling lines corresponding to one of the different subsets of the individual elements, the arranging; Aggregating the density of the elements along each of the milling lines such that the aggregated density of the elements increases monotonically along each of the milling lines. Using the aggregated density in each of the milling lines to identify the milling depth for each of the milling lines The method according to claim 1, comprising

7. The milling direction is the first of two or more milling directions of the 2.5-axis removal manufacturing process, and the adjusting is performed separately for each of the two or more milling directions so as to generate a respective milling direction-specific data set, and the iteratively correcting includes combining the respective milling direction-specific data sets so as to update a representation based on the density of the generatively designed three-dimensional shape of the modeled object. The method according to claim 1

8. The iteratively correcting includes a first set of iterations performed without the adjusting and a second set of iterations performed after the first set of iterations, and the second set of iterations includes at least two iterations in which the adjusting is performed. The method according to claim 1

9. The providing comprises Using the generatively designed three-dimensional shape of the modeled object to generate tool path specifications for a removal manufacturing machine according to the 2.5-axis removal manufacturing process Using the tool path specifications to manufacture at least a part of the physical structure or a mold for the physical structure by the removal manufacturing machine The method according to claim 1, comprising

10. A non-transitory storage medium storing instructions of a computer-aided design program One or more data processing devices configured to execute the instructions of the computer-aided design program, the instructions causing the one or more data processing devices to Obtain a design space for a modeled object for which a corresponding physical structure is manufactured using a 2.5-axis removal manufacturing process, one or more design criteria for the modeled object, and one or more in-use cases for the physical structure Iteratively modifying the generatively designed three-dimensional shape of the modeled object within the design space according to the one or more design criteria and the one or more in-use cases, wherein the iterative modification employs a representation based on the density of the generatively designed three-dimensional shape of the modeled object, and the one or more data processing devices collect different milling depths associated with different subsets of individual elements in the representation based on the density of the generatively designed three-dimensional shape for the one or more data processing devices, group the different milling depths into one for each of three or more discrete layers, each of the three or more discrete layers being perpendicular to the milling direction of the 2.5-axis subtractive manufacturing process, and change density values for at least some of the individual elements in the density-based representation such that a single milling depth is produced for each of the three or more discrete layers, thereby adjusting the density-based representation of the generatively designed three-dimensional shape according to the milling direction of the 2.5-axis subtractive manufacturing process in at least two iterations, configured to execute the instructions of the computer-aided design program to perform the iterative modification, and, providing the generatively designed three-dimensional shape of the modeled object for use in manufacturing the physical structure using a manufacturing system controlled by one or more computers employing the 2.5-axis subtractive manufacturing process to cause a system. **Claim 11** The one or more data processing devices, for the one or more data processing devices, classifying the different milling depths to generate classified milling depth values, identifying two or more maximum differences in the classified milling depth values, assigning each of the different subsets of the individual elements to one of the three or more discrete layers based on the position of the milling depth of each subset within the classified milling depth values associated with the two or more maximum differences, setting the single milling depth in each of the three or more discrete layers based on the milling depth associated with the element subset assigned to the discrete layer The system according to claim 10, configured to execute the instructions of the computer-aided design program so as to cause the above to be performed.

12. The one or more data processing devices cause the one or more data processing devices to perform a numerical simulation of the modeled object according to the latest version of the three-dimensional shape and the one or more in-use cases so as to generate a latest numerical evaluation of the physical response of the modeled object; calculate sensitivity analysis data based on the latest numerical evaluation of the physical response of the modeled object and according to the milling direction of the 2.5-axis machining process; call density-based topology optimization code with an input including the latest numerical evaluation of the physical response and the sensitivity analysis data so as to improve the representation based on the density of the generatively designed three-dimensional shape with respect to the one or more design criteria; perform the adjusting of the density-based representation according to the milling direction of the 2.5-axis machining process; iterate until the generatively designed three-dimensional shape of the modeled object in the design space converges to a stable solution for the one or more design criteria and the one or more in-use cases; The system according to claim 10, configured to execute the instructions of the computer-aided design program so as to cause the above to be performed.

13. The one or more data processing devices cause the one or more data processing devices to arrange individual elements in the density-based representation of the generatively designed three-dimensional shape into milling lines parallel in the milling direction, each of the milling lines corresponding to one of the different subsets of the individual elements; aggregate the density of the elements along each of the milling lines so that the aggregated density of the elements increases monotonically along each of the milling lines; and identify the milling depth for each of the milling lines using the aggregated density in each of the milling lines; The system according to claim 10, configured to execute the instructions of the computer-aided design program so as to cause the above to be performed.

14. The milling direction is the first of two or more milling directions in the 2.5-axis removal manufacturing process, and the one or more data processing devices are configured to execute the instructions of the computer-aided design program to adjust the representation based on the density separately for each of the two or more milling directions so as to generate a data set specific to each milling direction for the one or more data processing devices. The one or more data processing devices are configured to execute the instructions of the computer-aided design program to combine the respective data sets specific to each milling direction so as to update the representation based on the density of the generatively designed three-dimensional shape of the modeled object. The system according to claim 10.

15. The one or more data processing devices are configured to execute the instructions of the computer-aided design program to cause the one or more data processing devices to perform a first set of iterations without adjusting the representation based on the density and a second set of iterations in which the representation based on the density is adjusted. The system according to claim 10.

16. The system according to claim 10, comprising a numerically controlled removal manufacturing milling machine controlled by a computer that employs the 2.5-axis removal manufacturing process.

17. A non-transitory computer-readable medium encoded with a computer-aided design program, the computer-aided design program comprising obtaining a design space for a modeled object for which a corresponding physical structure is manufactured using a 2.5-axis removal manufacturing process, one or more design criteria for the modeled object, and one or more in-use cases for the physical structure Iteratively modifying the generatively designed three-dimensional shape of the modeled object within the design space according to the one or more design criteria and the one or more in-use cases, wherein the iteratively modifying employs a representation based on the density of the generatively designed three-dimensional shape of the modeled object, and the iteratively modifying includes adjusting the representation based on the density of the generatively designed three-dimensional shape in at least two iterations in accordance with the milling direction of the 2.5-axis subtractive manufacturing process, and the adjusting includes collecting different milling depths associated with different subsets of individual elements in the representation based on the density of the generatively designed three-dimensional shape; grouping the different milling depths into one of each of three or more discrete layers, each of the three or more discrete layers being perpendicular to the milling direction of the 2.5-axis subtractive manufacturing process; changing density values for at least some of the individual elements in the density-based representation such that a single milling depth is produced for each of the three or more discrete layers, including the iteratively modifying; providing the generatively designed three-dimensional shape of the modeled object for use in manufacturing the physical structure using one or more computer-controlled manufacturing systems employing the 2.5-axis subtractive manufacturing process; The non-transitory computer-readable medium causes one or more data processing devices to execute operations including. **Claim 18** The grouping includes classifying the different milling depths to generate classified milling depth values; identifying two or more maximum differences in the classified milling depth values; assigning each of the different subsets of the individual elements to one of the three or more discrete layers based on the position of the milling depth of each subset within the classified milling depth values associated with the two or more maximum differences; setting the single milling depth in each of the three or more discrete layers based on the milling depth associated with the element subset assigned to the discrete layer; The non-transitory computer-readable medium according to claim 17, comprising **Claim 19** Said repeatedly modifying, in said at least two iterations, performing a numerical simulation of the modeled object according to the latest version of the three-dimensional shape and said one or more in-use cases so as to generate a latest numerical evaluation of the physical response of the modeled object; calculating sensitivity analysis data based on said latest numerical evaluation of the physical response of the modeled object and according to the milling direction of said 2.5-axis subtractive manufacturing process; calling a density-based topology optimization code with an input including said latest numerical evaluation of the physical response and said sensitivity analysis data so as to improve an expression based on the density of the generatively designed three-dimensional shape with respect to said one or more design criteria; performing said adjusting the expression based on the density according to the milling direction of said 2.5-axis subtractive manufacturing process; iterating until the generatively designed three-dimensional shape of the modeled object within the design space converges to a stable solution for said one or more design criteria and said one or more in-use cases; The non-transitory computer-readable medium according to claim 17, comprising **Claim 20** Said collecting is arranging individual elements in the expression based on the density of the generatively designed three-dimensional shape into milling lines parallel to the milling direction, each of said milling lines corresponding to one of said different subsets of said individual elements; aggregating the density of the elements along each of said milling lines such that the aggregated density of the elements increases monotonically along each of said milling lines; identifying a milling depth for each of said milling lines using the aggregated density in each of said milling lines; The non-transitory computer-readable medium according to claim 17, comprising **Claim 21** The milling direction is the first one of two or more milling directions in the 2.5-axis removal manufacturing process, and the adjusting is performed separately for each of the two or more milling directions so as to generate a respective milling direction-specific data set. The repeatedly correcting includes combining the respective milling direction-specific data sets so as to update an expression based on the density of the generatively designed three-dimensional shape of the modeled object. The non-transitory computer-readable medium according to claim 17.

22. The repeatedly correcting includes a first set of iterations executed without the adjusting, and a second set of iterations executed after the first set of iterations. The second set of iterations includes at least two iterations in which the adjusting is executed. The non-transitory computer-readable medium according to claim 17.

23. The providing using the generatively designed three-dimensional shape of the modeled object to generate tool path specifications for a removal manufacturing machine according to the 2.5-axis removal manufacturing process; manufacturing at least a part of the physical structure or a mold for the physical structure by the removal manufacturing machine using the tool path specifications; The non-transitory computer-readable medium according to claim 17.

Citation Information

Patent Citations

  • Tool route data forming device

    JP1994210550A

  • High Speed Smooth Tool Path

    US20160246280A1

  • Topology optimization for subtractive manufacturing techniques

    US20180345647A1

  • Conversion of geometry to boundary representation with facilitated editing for computer aided design and 2.5-axis subtractive manufacturing

    US20200151286A1