Computer-aided generative design with filtering to facilitate 2.5-axis subtractive manufacturing processes
By using geometric shapes and simulation results filtering in the generative design process, a physical structural model suitable for 2.5-axis subtractive manufacturing is generated, which solves the problem of complex tool path planning by existing CAD software, and improves manufacturing efficiency and model applicability.
Patent Information
- Application Number
- CN202080100520.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-05-18
- Publication Date
- 2025-08-26
- Estimated Expiration
- 2040-05-18
AI Technical Summary
Existing computer-aided design (CAD) software is difficult to directly deal with the boundary representation (B-Rep) model during the generative design process, resulting in complex toolpath planning during the subtractive manufacturing process and difficult to generate geometric shapes suitable for 2.5-axis subtractive manufacturing.
By iteratively modifying the geometry and topology of the three-dimensional shape, a computer-aided design program is used to generate a physical structural model suitable for 2.5-axis subtractive manufacturing, including geometric shape filtering and simulation result filtering, ensuring that the model meets 2.5-axis manufacturing requirements in each iteration and optimizing toolpaths.
Improves efficiency of the subtractive manufacturing process, reduces CAM programming time and machining time, reduces the need for customized fixtures, while the resulting geometry is closer to traditional designs and is easy to modify and manufacture manually.
Smart Images

Figure CN115917457B_ABST
Abstract
Description
Background Art
[0001] This description relates to computer-aided design of physical structures that can be manufactured using additive manufacturing, subtractive manufacturing, and / or other manufacturing systems and techniques.
[0002] Computer-aided design (CAD) software has been developed and used to generate three-dimensional (3D) representations of objects, and computer-aided manufacturing (CAM) software has been developed and used to evaluate, plan, and control the manufacture of the physical structures of these objects, for example, using computer numerical control (CNC) manufacturing techniques. Typically, CAD software uses a boundary representation (B-Rep) format to store a 3D representation of the geometry of the object being modeled. A B-Rep model is a set of connected surface elements that specify the boundaries between the solid and non-solid parts of the 3D object being modeled. In a B-Rep model (often referred to as a B-Rep), the geometry is stored in the computer using smooth and precise mathematical surfaces, in contrast to the discrete and approximate surfaces of a mesh model, which can be difficult to use in a CAD program.
[0003] CAD programs have been used in conjunction with subtractive manufacturing systems and techniques. Subtractive manufacturing refers to any manufacturing process that creates a 3D object from a blank material by removing portions of the blank material (typically a "blank" or "workpiece" that is larger than the 3D object). Such manufacturing processes typically involve the use of multiple CNC machine cutting tools in a series of operations that begin with a roughing operation, an optional semi-finishing operation, and a finishing operation. In addition to CNC machining, other subtractive manufacturing techniques include electrode discharge machining, chemical 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 that builds a 3D object from a raw material (typically a powder, liquid, suspension, or molten solid) in 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 building 3D objects from raw materials include casting and forging (both hot and cold).
[0004] In addition, CAD software has been designed to perform automatic generation of 3D geometry using topology optimization (generative design) for one or more parts in a larger system of parts to be manufactured. This automatic generation of 3D geometry is typically limited to a design space specified by the user of the CAD software, and the 3D geometry generation is typically governed by design goals and constraints, which can be defined by the user of the CAD software or by another party and imported into the CAD software. Design goals (such as minimizing the weight of the designed part) can be used to drive the geometry generation process towards a better design. Design constraints can include both structural integrity constraints on individual parts (i.e., requiring that the part should not fail under the expected structural loads during the use of the part) and physical constraints imposed by the larger system (i.e., requiring that the part not interfere with another part in the system during use). In addition, examples of design constraints include maximum mass, maximum deformation under load, maximum stress, etc.
[0005] The input to a generative design process may include a set of input entities (B-Rep inputs) that specify the boundary conditions of the generative design process, but many modern generative design solvers do not operate directly on exact surface boundary representations of their input entities. Instead, the B-Rep is sampled and replaced with a volume representation, such as a level set or a tetrahedral or hexahedral mesh, which is significantly more convenient and efficient for physical simulation and material synthesis calculated by the solver. The set of input entities may include "retention volumes" that should always exist in the design and represent interfaces with other parts of the system or locations where boundary conditions (e.g., mechanical loads and constraints) should be applied. Other areas where geometry should or should not be generated can also be provided in a similar manner, such as input entities that define "obstacle volumes" that represent areas where new geometry should not be generated. Summary of the Invention
[0006] This specification describes techniques related to computer-aided design of a physical structure using a generative design process, wherein a three-dimensional (3D) model of the physical structure is generated to facilitate fabrication of the physical structure using 2.5-axis subtractive manufacturing systems and techniques. Subtractive manufacturing techniques may include 2-axis, 2.5-axis, 3-axis, or more-axis milling; 2-axis milling can cut through a blank but lacks the ability to adjust the height level of the milling head; 3-axis milling can cut through a blank while moving a milling tool in three separate dimensions; 2.5-axis milling can use a 3-axis milling machine because the milling tool (or a combination of a milling tool and a fixture holder) can move in all three separate dimensions, but during most cutting operations, the milling tool only moves in two axes relative to the workpiece, resulting in a more efficient manufacturing process.
[0007] In general, one or more aspects of the subject matter described in this specification may be embodied in one or more methods (and one or more non-transitory computer-readable media, the one or more non-transitory computer-readable media tangibly encoding a computer program, the computer program being operable to cause a data processing device to perform operations), the one or more methods comprising: obtaining, by a computer-aided design program, a design space of a modeling object whose corresponding physical structure is to be manufactured using a 2.5-axis subtractive manufacturing process, one or more design criteria for the modeling object, and one or more in-service load cases for the physical structure; iteratively modifying, by the computer-aided design program, a generatively designed three-dimensional shape of the modeling object in the design space according to the one or more design criteria and the one or more in-service load cases, including modifying both the geometry of the three-dimensional shape and the topology of the three-dimensional shape, wherein the iterative modification comprises: performing a numerical simulation of the modeling object according to a current version of the three-dimensional shape and the one or more in-service load cases to generate a current numerical evaluation of a physical response of the modeling object; and generating a numerical evaluation of a physical response based on the current numerical evaluation of the physical response. updating the current version of the three-dimensional shape to produce an updated version of the three-dimensional shape of the modeled object; generating a two-dimensional contour representation of the updated version of the three-dimensional shape, wherein the two-dimensional contour representation corresponds to discrete layers perpendicular to a milling direction of the 2.5-axis subtractive manufacturing process; extruding the two-dimensional contour representation along the milling direction to produce a three-dimensional representation of the updated version of the three-dimensional shape, wherein the three-dimensional representation has sides with normals perpendicular to the milling direction; forming a next version of the three-dimensional shape of the modeled object from a combination of the three-dimensional representations with sides with normals perpendicular to the milling direction; and repeating at least the performing, updating, generating, extruding and forming until a predefined number of shape modification iterations have been performed and the generatively designed three-dimensional shape of the modeled object in the design space satisfies the one or more design criteria and the one or more in-service load cases or both; and providing the generatively designed three-dimensional shape of the modeled object by the computer-aided design program for use in manufacturing the physical structure using one or more computer-controlled manufacturing systems employing the 2.5-axis subtractive manufacturing process.
[0008] The generating may include generating each of the two-dimensional contour representations of the corresponding discrete layers by determining a silhouette of one or more portions of the updated version of the three-dimensional shape that are both within the corresponding discrete layer and within any of the discrete layers above the corresponding discrete layer relative to the milling direction. The milling directions may include two or more milling directions having a corresponding set of discrete layers, the generating may be performed on each of the two or more milling directions to produce a corresponding set of two-dimensional contour representations of the updated version of the three-dimensional shape, the extruding may be performed on each of the two or more milling directions to produce a corresponding set of three-dimensional representations having side surfaces whose normals are perpendicular to the corresponding two or more milling directions, and the forming may include: performing a Boolean union on the three-dimensional representations in the corresponding three-dimensional representation sets to produce one or more three-dimensional bodies for each of the two or more milling directions; and performing a Boolean intersection on the three-dimensional bodies produced for the two or more milling directions to form the next version of the three-dimensional shape of the modeled object.
[0009] The iteratively modifying may include, for each of a plurality of iterations, generating the current version of the three-dimensional shape of the modeled object by blending the next version of the three-dimensional shape from a previous iteration with the updated version of the three-dimensional shape from the previous iteration, wherein, for each of two or more subsequent iterations of the plurality of iterations, the amount of the next version used in the blending increases relative to the amount of the updated version until neither the updated version nor all of the next versions are used as the current version of the three-dimensional shape of the modeled object in a next iteration of the modifying.
[0010] The generatively designed three-dimensional shape of the modeled object may include a level set representation of an implicit surface of the modeled object, and the updating may include updating the level set representation according to a shape change rate calculated for the implicit surface based on the current numerical evaluation of the physical response. The iteratively modifying may include, before the extrusion: offsetting each of the two-dimensional contour representations outward by an amount at least equal to the radius of a smallest milling tool usable with the one or more computer-controlled manufacturing systems; and subsequently offsetting each of the two-dimensional contour representations inward by the amount.
[0011] The method (or operations performed by the data processing device according to the computer program tangibly encoded in one or more non-transitory computer-readable media) may include setting the amount by which the two-dimensional contour representation of one of the discrete layers is offset based on an amount by which a tool would need to penetrate into the physical structure for milling one discrete layer for the two-dimensional contour representation during the 2.5-axis subtractive manufacturing process. Generating the two-dimensional contour representation of the corresponding discrete layer includes projecting a ray through the level set representation of the implicit surface along the milling direction from a top portion of an uppermost discrete layer downwardly to a bottom portion of the corresponding discrete layer, and the setting may include setting the amount to a maximum of (i) the radius of the smallest milling tool available and (ii) a predefined fraction of the difference, the predefined fraction being greater than zero and less than one.
[0012] The method (or operations performed by the data processing device according to the computer program tangibly encoded in one or more non-transitory computer-readable media) may include: comparing the two-dimensional contour representations to at least identify a first contour representation that is above a second contour representation relative to the milling direction, wherein a distance between a first portion of the first contour representation and a second portion of the second contour representation is below a threshold distance; changing the first portion of the first contour representation to match the second portion of the second contour representation; and modifying the first contour representation on either side of the first portion to remove any discontinuities in the first contour representation caused by the change. Modifying the topology of the three-dimensional shape may include inserting gaps into the level set representation at locations selected using a centerline generated for at least one of the two-dimensional contour representations to change the implicit surface during at least some of the plurality of iterations of the iterative modification.
[0013] The updating may include filtering the current numerical evaluations in the corresponding discrete layers to produce filtered physical evaluations, the filtered physical evaluations facilitating modifications to the geometry of the implicit surface of the three-dimensional shape consistent with the 2.5-axis subtractive manufacturing process during the updating, and updating the current version of the three-dimensional shape based on the filtered physical evaluations. The generatively designed three-dimensional shape of the modeled object may include a level set representation of the implicit surface, and the filtering may include finding a maximum value of the current numerical evaluations along the milling direction within a corresponding one of the discrete layers, and resetting the value of the current numerical evaluation within the corresponding one of the discrete layers based on the maximum value to produce the filtered physical evaluations.
[0014] The current numerical evaluation may include voxel-based stress field data, strain field data, or both, and the finding may include: projecting rays parallel to the milling direction through the current version of the three-dimensional shape of the modeled object within a corresponding discrete layer in the discrete layers; and collecting the maximum value of the stress data and / or the strain data encountered along each of the rays in a corresponding two-dimensional area of the discrete layer, and the resetting may include setting the stress data and / or the strain data in each voxel within the corresponding discrete layer to be equal to the maximum value at a position closest to the voxel in the corresponding two-dimensional area of the discrete layer.
[0015] The method (or operations performed by the data processing device according to the computer program tangibly encoded in one or more non-transitory computer-readable media) may include removing, by the computer-aided design program, any portion of the generatively designed three-dimensional shape of the modeled object that is smaller than a minimum feature size in at least one major axis of the 2.5-axis subtractive manufacturing process. The providing may include saving the generatively designed three-dimensional shape of the modeled object to a persistent storage device for use in manufacturing the physical structure using the one or more computer-controlled manufacturing systems. The providing may include: using the generatively designed three-dimensional shape of the modeled object to generate a tool path specification for a subtractive manufacturing machine according to the 2.5-axis subtractive manufacturing process; and using the tool path specification to manufacture the physical structure or at least a portion of a mold for the physical structure with the subtractive manufacturing machine.
[0016] One or more aspects of the subject matter described in this specification may also be embodied in one or more systems comprising: a non-transitory storage medium having stored thereon instructions for a computer-aided design program; and one or more data processing devices 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 also include a 2.5-axis subtractive manufacturing machine or other subtractive manufacturing machine capable of performing a 2.5-axis subtractive manufacturing process, such as a 3-axis or 5-axis subtractive manufacturing machine.
[0017] Specific embodiments of the subject matter described in this specification can be implemented to achieve one or more of the following advantages. Geometry filtering can be employed so that a 2.5-axis manufacturable result is guaranteed from the generative design process, and this can be done so that a 2.5-axis manufacturable result is achieved in each optimization iteration, or geometry filtering can be blended into shape and topology optimization over the course of multiple iterations to provide greater flexibility for shape and topology changes early in the generative design process while still ensuring a 2.5-axis manufacturable result. Thus, a three-dimensional model of a physical structure can be generated during a generative design process, where the model must include flat top, bottom, and side areas that facilitate 2.5-axis milling. This can result in reduced CAM programming time, machining time, a reduced need for custom fixtures for clamping, or a combination of the foregoing during machining of the physical structure in a 2.5-axis subtractive manufacturing process.
[0018] In addition, simulation result filtering (e.g., strain energy filtering) can be performed (with or without geometry filtering) to facilitate the production of 2.5-axis manufacturable results from the generative design process. If a signed distance field is used to represent the geometry, radii can be efficiently created to ensure that the generated geometry can be approached everywhere by a tool with a specified radius using a variation on the morphological closing operator from image processing, which is achieved using outward advection or offset followed by inward advection or offset. Tool accessibility can be further ensured during manufacturing using dynamic tool sizing based on part cut depth, so that parts can be machined using inexpensive, off-the-shelf tools, and nearly overlapping layers can be aligned to eliminate thin shelves in the final 3D model. Voids can be generated using shape skeletons to further enable topological changes, and multiple milling directions (two or more machining setups) can be handled.
[0019] Furthermore, parts generatively designed using the 2.5-axis manufacturing design constraint systems and techniques described herein can be weight competitive (roughly equivalent mass reduction) with parts generatively designed using 2-axis manufacturing design constraints or with no constraints on the machining axes, but these parts can also exhibit approximately half the maximum deflection of the 2-axis solution while still having the benefits of reduced CAM programming time, machining time, and reduced need for custom fixtures for clamping compared to parts generatively designed without machining constraints. Additionally, the generated geometry appears closer to that of the traditional design, making it easier to conceive and implement manual design changes and narrowing the gap between manufacturing planning and execution of traditional designs and 2.5-axis generative designs.
[0020] The details of one or more embodiments of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the invention will become apparent from the description, drawings, and claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0021] Figure 1A An example of a system that can be used to perform geometry filtering and / or simulation result filtering during generative design to produce a physical structure suitable for fabrication using a 2.5-axis subtractive manufacturing process is shown.
[0022] Figure 1B An example of a generative design process utilizing geometry filtering and / or simulation result filtering and fabricating a physical structure using a 2.5-axis subtractive manufacturing process is shown.
[0023] Figure 2A An example of a generative design process utilizing geometry filtering to produce a 3D model compatible with a 2.5-axis subtractive manufacturing process is shown.
[0024] Figure 2B Examples of invalid geometries for 2.5-axis machining are shown.
[0025] Figure 2C A graphical representation of an example of generating a two-dimensional contour representation is shown.
[0026] Figure 2D A graphical representation of the 2D slices projected back into the 3D extrusions and combined to form the combined geometry of the modeled object is shown.
[0027] Figure 2E A graphical representation of the morphological closure for tool approach is shown.
[0028] Figure 2F A graphical representation of the comparative tool modeling approaches is shown.
[0029] Figure 3A An example of a simulation results filtering process during generative design to facilitate the production of a 3D model compatible with a 2.5-axis subtractive manufacturing process is shown.
[0030] Figure 3B A graphical representation of the simulation results filtering in the corresponding discrete layers is shown.
[0031] Figure 3C A graphical representation of discrete layers within a modeled object is shown.
[0032] Figure 4A Additional process examples are shown for generatively designing a part using geometry filtering, simulation results filtering, or both to produce a 3D model compatible with a 2.5-axis subtractive manufacturing process.
[0033] Figure 4B An example of the effect of layer alignment parameters on removing discontinuities caused by changing the first layer profile to match the second layer profile is shown.
[0034] Figure 4C An example of generating and inserting gaps into, for example, a level set representation of a 3D shape is shown.
[0035] Figure 4D Another example of generating and inserting gaps into, for example, a level set representation of a 3D shape is shown.
[0036] Figure 4E An example of the effect of dividing the gap generation in multiple passes is shown.
[0037] Figure 5A An example of geometry filtering with three milling directions (eg, three setups) is shown.
[0038] Figure 5B Examples of undesirable gap locations are shown for multiple milling directions (eg, multiple setup configurations).
[0039] Figure 6 is a schematic diagram of a data processing system comprising a data processing device that can be programmed as a client or a server.
[0040] Like reference numbers and designations in the various drawings refer to like elements. DETAILED DESCRIPTION
[0041] Figure 1AAn example of a system 100 is shown that can be used to perform geometry filtering and / or simulation result filtering during generative design to produce physical structures suitable for fabrication using a 2.5-axis subtractive manufacturing process. A computer 110 includes a processor 112 and memory 114, and the computer 110 can be connected to a network 140, which can be a private network, a public network, a virtual private network, or the like. The processor 112 can be one or more hardware processors, each of which can include multiple processor cores. The memory 114 can include both volatile memory and non-volatile memory, such as random access memory (RAM) and flash RAM. The computer 110 can include various types of computer storage media and devices, including the memory 114, to store program instructions executed by the processor 112, including a computer-aided design (CAD) program 116 that implements three-dimensional (3D) modeling functionality and includes one or more generative design processes for topology optimization (e.g., using the level set method described above) and numerical simulation. The numerical simulations performed by the systems and techniques described in this document can simulate one or more physical properties, and can use one or more types of simulations to produce a numerical assessment of the physical response (e.g., structural response) of the modeled object. For example, finite element analysis (FEA) can be used, including linear static FEA, finite difference methods, and material point methods. In addition, simulations of physical properties can include computational fluid dynamics (CFD), acoustics / noise control, heat conduction, computational injection molding, electrical or electromagnetic flux, and / or material solidification (which is useful for phase changes during molding) simulations. In addition, the CAD program 116 can potentially implement hole and / or fixture generation technology to support clamping during manufacturing and / or support manufacturing control functions.
[0042] As used herein, CAD refers to any suitable program for designing physical structures that meet specific design requirements, regardless of whether the program is capable of interfacing with and / or controlling manufacturing equipment. Thus, CAD program 116 may include a computer-aided engineering (CAE) program, a computer-aided manufacturing (CAM) program, or the like. Program 116 may be run locally on computer 110, remotely on a computer on one or more remote computer systems 150 (e.g., one or more server systems of one or more third-party vendors accessible to computer 110 via network 140), or both locally and remotely. Thus, CAD program 116 may be two or more programs operating in concert on two or more separate computer processors, as one or more programs 116 operating locally on computer 110 may offload processing operations (e.g., generative design and / or physical simulation operations) “to the cloud” by having one or more programs 116 on one or more computers 150 perform the offloaded processing operations. In some implementations, all generative design operations are run by one or more programs in the cloud, rather than in the B-Rep solid modeler running on a local computer. Furthermore, in some implementations, the generative design program can be run in the cloud from an API (application programming interface) called by the program without requiring user input through a graphical user interface.
[0043] CAD program 116 presents a user interface (UI) 122 on display device 120 of computer 110, which can be operated using one or more input devices 118 (e.g., keyboard and mouse) of computer 110. Figure 1A 1 as separate devices, 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 in a tablet computer (e.g., a touch screen may be the input / output devices 118, 120). Additionally, the computer 110 may include or be part of a virtual reality (VR) or augmented reality (AR) system. For example, the input / output devices 118, 120 may include VR / AR input gloves 118a and / or a VR / AR headset 120a. In any case, the user 160 interacts with the CAD program 116 to create and modify a 3D model, which may be stored in the 3D model document 130.
[0044] The initial 3D model 132 can be the input to the generative design process. In the example shown, the initial 3D model 132 is a set of retained volumes (such as retained volume 133) and obstacle volumes (such as obstacle volume 134). The design space 131 can be obtained by determining the bounding volume or convex hull of the input model 132, or another technique can be used to obtain the design space, which is the volume of the space within which the part is to be designed during topology optimization. In some cases, the user can explicitly specify an entity as the design space. The user 160 can define the topology optimization problem of the generative design process to generate the desired 3D model from the starting 3D model, or the input can be a design space without a specific starting 3D model. In general, the input design space can be automatically generated or specified by the user. It should be noted that the generative design process itself can generate starting geometric shapes within the design space. One or more seed models can be used as input to the generative design process to introduce holes at the beginning of shape evolution in order to modify the topology of the generative design. Additionally, as shown, the starting model 132 may be an input retained geometry, which may be unconnected modeled entities, where the generative design process is used to generate new 3D geometry that connects the input retained entities.
[0045] As described herein, the CAD program 116 implements at least one generative design process that enables the CAD program 116 to automatically generate one or more portions of a 3D model (or the entire 3D model) based on design goals and design constraints (i.e., design criteria), wherein the geometric design is iteratively optimized based on simulation feedback. It should be noted that, as used herein, "optimization" (or "optimal") does not mean achieving the best design among all possible designs in all cases, but rather means selecting the best (or near-optimal) design from a limited set of possible designs that can be generated within the allotted time given available processing resources.
[0046] Design criteria may be defined by the user 160 or by another party and imported into the CAD program 116. The design criteria may include structural integrity constraints on individual parts (e.g., a requirement that a part should not fail under expected structural loads during its use) and physical constraints imposed by the larger system (e.g., a requirement that a part be contained within a specified volume during use so as not to interfere with other parts in the system). The 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 5-axis CNC machine).
[0047] Various generative design processes that can optimize the shape and topology of at least a portion of a 3D model can be used. The iterative optimization of the geometric design of the 3D model by the CAD program 116 involves topology optimization, which is a lightweight method in which the optimal distribution of material is determined by minimizing an objective function subject to design constraints (e.g., structural compliance constrained by volume). There are two main categories of topology optimization: density-based methods and boundary-based methods. Density-based methods discretize the volume of the part and assign a density to each discrete unit, such as in the solid isotropic material penalty (SIMP) method. The density is then driven toward solids and voids while minimizing the constrained objective. In contrast, boundary-based methods track the shape of the external interface of the solid part and move the boundaries so that the constraints are met and the objective is minimized, such as in the level set method.
[0048] As described herein, filtering during topology optimization can guide the generative design process to produce a final shape of the design that facilitates the fabrication of the physical structure using a 2.5 axis manufacturing process. Such filtering can be performed by density-based topology optimization or boundary-based topology optimization. In some implementations, a level set representation method is used to track the boundaries of the shape during topology optimization, which has the advantage of providing precise knowledge of the boundaries and allowing topological changes to be made as the surface evolves without the need for re-meshing. In any case, it should be noted that the shape synthesis process can (and often will) be accomplished using a different geometric representation than the geometric representation employed by the CAD program 116 for 3D modeling. For example, the CAD program 116 may use a B-Rep model for the input geometry 132, while the geometry generation engine in the generative design process (e.g., in the CAD program 116) may employ a level set function embedded in a voxel or tetrahedral mesh. The following description, such as in conjunction with Figure 1B Additional details about the generative design process are provided.
[0049] Once user 160 is satisfied with the generatively designed 3D model, the 3D model can be stored as a 3D model document 130 and / or another representation used to generate the model (e.g., a toolpath specification for a 2.5-axis subtractive manufacturing process). This can be done at the request of user 160, or upon the user's request for another action, such as sending the generatively designed 3D model to a subtractive manufacturing (SM) machine 170, or other manufacturing machinery that can be connected directly to computer 110 or via network 140, as shown. This can involve post-processing performed on the local computer 110 or a cloud service to export the 3D model into an electronic document from which fabrication is performed. It should be noted that an electronic document (referred to simply as a document for brevity) can be a file, but does not necessarily correspond to a file. A document can be stored in a portion of a file that stores other documents, in a single file dedicated to the document in question, or in multiple coordinated files. Additionally, user 160 can save or transfer the 3D model for later use. For example, CAD program 116 can store document 130 that includes the generated 3D model.
[0050] CAD program 116 can provide document 135 (with appropriately formatted toolpath specifications) to SM machine 170 to create a complete structure 138 from stock material 137, wherein physical structure 138 includes an optimized topology and shape that facilitates 2.5-axis machining, i.e., a staircase-like design generated for 2.5-axis milling. SM machine 170 can employ one or more subtractive manufacturing technologies, such as a computer numerically controlled (CNC) milling machine, such as a multi-axis, multi-tool milling machine. SM machine 170 can be a 2.5-axis CNC machine, in which the motion of spindle 171 and attached cutting tool 172 is limited to the XY plane for most milling operations and moves only in discrete steps in the Z direction. However, SM machine 170 can also be a 3-axis CNC machine, in which spindle 171 has full freedom of motion in each of the X, Y, and Z dimensions, or a 5-axis machine, in which additional axes of motion (e.g., roll and yaw rotation) are also possible.
[0051] It should be noted that these additional freedoms of motion can be achieved through computer-controlled motion of the spindle 171, computer-controlled motion of the fixture or anchor points 173 for the part being machined, or a combination of the two. The CNC machine 170 should anchor the blank in some manner during machining to prevent accidental movement, and should occasionally change the anchor position of the blank (typically by manual operation, but other methods exist) so that the portion of the blank previously used in the anchoring process can be exposed for subsequent cutting by the CNC machine 170. These orientations or arrangements of the part and its anchoring are called "setups."
[0052] Subtractive manufacturing processes typically begin with a solid block of material and gradually remove material from the block. One common subtractive method is milling, which uses a rotary cutter or router (also known as a "cutter" or "drill") to remove material. The milling process can limit the types of shapes that can be produced, as the milling machine must be able to hold the part securely and the rotating drill bit must be able to access the material surface without interference. Other important factors that should be considered are the vibration of the part during material removal and the stresses that the milling process puts on the drill bit itself.
[0053] Subtractive manufacturing techniques can include 2-axis, 2.5-axis, 3-axis, or more-axis milling. 2-axis milling can cut through the stock but lacks the ability to adjust the height level of the milling head. 3-axis milling can cut through the stock while moving the milling tool in three separate dimensions. 2.5-axis milling utilizes a 3-axis milling machine because the milling tool (or a combination of the milling tool and the fixture) can move in all three separate dimensions, but during most cutting operations, the milling tool only moves in two axes relative to the workpiece, resulting in a more efficient manufacturing process. In 2.5-axis milling, the subtractive process is performed with continuous movement in a plane perpendicular to the milling tool but in discrete steps parallel to the milling tool. This is in contrast to 3-axis milling, which involves continuous movement in both the plane perpendicular to the milling tool and the dimension parallel to the milling tool. In other words, 3-axis milling allows for continuous movement in all three dimensions. Compared to 3-axis subtractive manufacturing, 2.5-axis subtractive manufacturing processes rapidly and sequentially remove layers of material, creating parts that often have a series of "pockets" of varying depths. Targeting 2.5-axis subtractive manufacturing means the geometry should have a layered or staircase shape, which allows for faster programming of subtractive machine toolpaths and shorter machining times.
[0054] Thus, regardless of the SM machine 170's degrees of freedom of motion and anchoring capabilities, the SM machine 170 can perform 2.5-axis machining processes, and "2.5-axis machining" refers to a type of CNC machining in which two axes move synchronously (typically under computer control) while the third axis moves only incrementally to create a series of "layers" in the part geometry. The walls and floor of each layer can be cut by the side and end of the tool, respectively, which is more efficient than contoured ("3-axis") surfaces, which must be machined in multiple passes by a tool that contacts the part only at a single point. At the same time, compared to 2-axis machining, in which the tool always cuts all the way through the part, 2.5-axis machining provides improved control over the geometry. Because the generative design process in the CAD program 116 produces 2.5-axis compatible geometry, this results in significant savings in programming and machining time for the SM machine 170, as a result of using simpler geometry for the part, even though the SM machine 170 can handle more complex part geometries.
[0055] In various implementations, the CAD program 116 of the system 100 can implement one or more generative design processes as described herein. The generative design process seeks optimal geometry, topology, or both. For example, the generative design process seeks optimal geometry among alternative designs by minimizing a constrained performance-related objective function:
[0056] minimize
[0057] Make g i (s, u(s))=0 i=1,...,n g (2)
[0058] where s is a vector of design variables related to the geometry of the domain, and u is a vector of state variables (e.g., displacements) that depend on s. Additional constraints (e.g., equilibrium) are defined by the set g i For simplicity, equality constraints are assumed here. Mathematical programming methods for minimizing equation (1) can be gradient-based or non-gradient-based. Gradient-based methods (compared to non-gradient-based methods) typically use more information associated with design sensitivity, such as:
[0059]
[0060] This is the derivative of the performance-related objective function with respect to the design variables. In level set-based topology optimization methods, s represents the boundary of the solid region.
[0061] Figure 1B An example of a generative design process utilizing geometry filtering and / or simulation result filtering and fabricating a physical structure using a 2.5-axis subtractive manufacturing process is shown. For example, a design space for an object, one or more design criteria, and one or more in-use load cases are obtained 180 by a CAD program 116 for use in generating a generative 3D model. The design space for a modeled object is a volume within which a part is to be designed. The design space may include an enclosing volume that contains initial specifications of one or more external shapes of the object's three-dimensional topology. As described above, the design space may include a 3D model designed in or loaded into the CAD program 116 that serves as a subspace of the optimization domain of the described generative design process, and / or a set of input entities that specify boundary conditions for the generation of generative design geometry, such as a B-Rep selected using the UI 122 to specify a subspace reserved for use as a connection point with other components in a larger 3D model or a separate 3D model.
[0062] Design criteria may include design goals and design constraints for an object. Design goals may include, but are not limited to, minimizing scrap, minimizing part weight, and minimizing part compliance, stress, or other inherent properties, and are used to drive the shape synthesis process toward better designs. Although not required, design goals are typically rooted in simulations of design (linear statics, fluid dynamics, electromagnetics, etc.). Design constraints may include various geometric and physical properties or behaviors that should be met in any generated design (requirements for individual parts or entire assemblies are also acceptable); examples include maximum mass, maximum deformation under load, maximum stress, etc.
[0063] In addition, different generative design processes can be formulated by using different combinations of design parameters and design variables. In some implementations, the design parameters can include various types of input received through the UI 122, such as a selection among different generative design synthesis methods available to the CAD program in the system 100. In some implementations, the available generative design synthesis methods can include level set-based topology optimization that provides a basic level set method for topology optimization. Other generative design synthesis methods are also possible and can be provided by the CAD program in the system 100. In response to input from the user 160, different combinations of design parameters and design variables can be used, for example, by the CAD program 116. For example, the user 160 can select different generative design synthesis methods to use within corresponding different design spaces within a single 3D model.
[0064] Furthermore, one or more in-use load cases obtained 180 are for a physical structure to be manufactured from the generatively designed part using a 2.5-axis subtractive manufacturing process. The one or more in-use load cases can be associated with a setting for a numerical simulation, such as the density of elements in an FEA model to be used with the optimized 3D topology of the generatively designed part. However, as used herein, "in-use load case" generally refers to a separate set of loads and constraints under which part performance is evaluated, and these loads and constraints correspond to a set of boundary conditions for various types of physical simulations, such as fluid flow simulations, electromagnetic (EM) behavior simulations, multiphysics simulations, and the like.
[0065] Generally speaking, the settings for a numerical simulation can include one or more physical properties to be simulated and one or more types of simulations to be performed, as well as potential alternative modeling or other approximation methods. In some implementations, the types of numerical simulations are predefined for all uses of the program or for the specific context of the generative design process initiated within the program. Furthermore, the settings for a numerical simulation can include at least one set of loading conditions and / or other physical environment information associated with the type of numerical simulation to be performed.
[0066] Given a generative design space and design criteria, one or more 3D models are generated 185 using one or more generative design processes, such as by a CAD program 116, wherein physical structures corresponding to the 3D models are designed to be manufactured using a 2.5-axis subtractive manufacturing process. For example, the one or more generative design processes performed by the CAD program 116 may include a boundary-based generative design process for topology optimization (e.g., using a level set method), a density-based generative design process (e.g., using a SIMP method), or both. In some implementations, the one or more generative design processes may use the described level set method, wherein s from equations (1), (2), and (3) represents the boundaries of a solid region implicitly represented using one or more level sets, which may be stored as sampled values on a background grid or mesh. In a level set-based topology optimization method, the external shape of the structure is represented by the contour of the level set function, and changes in shape and configuration are represented by changes in the value of the level set function.
[0067] A level set function is a function that indicates whether each portion of the design domain in which the initial structure is set corresponds to a material domain (material phase) that forms the structure and is occupied by material, a void domain (void phase) that forms voids, or the boundary between the two domains, where a predetermined value between the value representing the material domain and the value representing the void domain represents the boundary between the material domain and the void domain. In some implementations, the level set function is implicitly represented by storing sampled values of the function in a discrete background grid or mesh. A signed distance field is an example of such a level set function, where a zero contour represents a shape boundary, positive values of the function correspond to points outside the material domain and quantify the distance between the point and the nearest domain surface, and negative values correspond to points inside the material domain and quantify the distance between the point and the nearest domain surface.
[0068] In any case, the generation 185 of the 3D model involves iteratively modifying the generatively designed three-dimensional shape of the modeled object, for example, by the CAD program 116. This includes modifying the geometry of the three-dimensional shape (e.g., using SIMP or level set methods) and the topology of the three-dimensional shape (e.g., adding holes or voids to modify the spatial properties of the surface that are not subject to continuous deformation without tearing, thereby changing how the shape elements are defined and connected in the 3D model). In addition, the generation 185 of the 3D model may employ geometry filtering and / or simulation result filtering (as described in detail throughout this document) in a topology optimization loop to produce one or more generative 3D models that are compatible with a 2.5-axis subtractive manufacturing process. Such 3D models may have discrete height levels corresponding to the 2.5-axis subtractive manufacturing process, wherein the discrete height levels create flat areas in the one or more 3D models that facilitate the manufacture of the corresponding physical structure.
[0069] This is in contrast to traditional topology optimization, which focuses on minimizing some physical response of a part under volume constraints, which often produces complex shapes that are difficult to manufacture and must be used as inspiration for human designers in subsequent design iterations. But in addition to generating designs that meet performance requirements, Generate 185 can also consider cost and manufacturability by promoting or forcing the generative design results to be compatible with 2.5-axis machining, resulting in designs that are easier and cheaper to manufacture and readily used in downstream design activities. Generate 185 can produce large flat areas perpendicular to the tool axis and side surfaces that are parallel to the tool entry and accessible to the tool, both of which produce geometries that are more easily machined. This is true even for multi-axis CNC milling machines, as the milling process is enhanced by facilitating side milling and face milling, which use the sides (flanks) and faces of the machining tool, respectively, to remove stock material.
[0070] Iterative modification 185 of the generatively designed 3D shape of the modeled object can facilitate or constrain the geometry generation process to produce a shape that can be manufactured using 2.5-axis machining. In some implementations, geometry filtering is used so that the geometry is updated after each shape synthesis operation to ensure that one or more specified tools can access the 2.5-axis hierarchy. Figures 2A to 2F In some implementations, simulation result filtering is used to filter the physical quantity of the boundary velocity from which the shape is derived in order to help the optimizer create a 2.5 axis machinable structure. Figures 3A to 3C In some implementations, gap generation and other techniques are used to improve the convergence rate of shape optimization and the quality of the generated results. Figures 4A to 4D Further details about such implementations are described in detail below. In addition, multiple milling directions and part settings can also be handled in all of these various implementations. Figure 5A and Figure 5B to describe additional details regarding such an implementation.
[0071] The results of the generative design process can be presented to the user, for example, in UI 122 on display device 120, along with an option 190 to accept or reject the design. For example, 3D models generated by the generative design process can be presented to user 160 in UI 122. In some implementations, the user can select from a final design or any of a variety of previous iterations for each design study. In some implementations, two or more 3D models generated by the generative design process can be presented to the user along with a trade-off analysis of design complexity and manufacturing cost (or any of various other quantities of interest). The trade-off analysis can help user 160 accept or reject one or more of the presented 3D models.
[0072] If the design is rejected, Figure 1B The process may return to obtaining 180 a new design space and / or new design criteria for generating a new generative 3D model, for example, from the CAD program 116. Once the design is not rejected 190, Figure 1B The process may provide 195 a 3D model of an object having a generatively designed shape and topology, for 2.5-axis subtractive manufacturing of a physical structure, for example, by a CAD program 116. Providing 195 may involve sending or saving the 3D model to a persistent storage device for use in manufacturing a physical structure corresponding to the object using a SM manufacturing system. In some implementations, providing 195 involves generating 195A a tool path specification for a computer-controlled SM manufacturing system using the 3D model, for example, by the CAD program 116, and manufacturing 195B at least a portion of the physical structure corresponding to the object using the computer-controlled SM manufacturing system using the tool path specification generated for a 2.5-axis SM machine, for example, by the CAD program 116. In some implementations, providing 195 may include manufacturing a mold for the physical structure using a 2.5-axis subtractive manufacturing machine using the tool path specification generated 195A, wherein the 3D model may be a model of the mold to be manufactured using the 2.5-axis subtractive manufacturing process.
[0073] The 3D model provided 195 can be a 3D model generated 185 by a generative design synthesis method or a post-processed version of a generative design output. In some implementations, a polygonal mesh extracted from the output of a boundary-based generative design process or generative design data obtained directly from a boundary-based generative design process can be converted into a boundary representation (B-Rep) model and / or a parametric feature model, for example, by a CAD program 116. For example, the generative design data can be level set distance field data obtained directly from a boundary-based generative design process. The boundary representation model or parametric feature model can be edited as sketch geometry and parametric features. For example, in some implementations, a 3D mesh model generated by a generative design synthesis method can be converted into a watertight B-Rep 3D model before being provided 195.
[0074] Thus, the generative design methods described in this document can be implemented, for example, in a CAD program 116 to provide both: (1) substantial user control over the generative design process, and (2) control functions for providing a 3D model of the generative design for use in fabricating a physical structure corresponding to the object. In any case, the goal is to produce a 3D model of the object that facilitates 2.5-axis subtractive fabrication of the object.
[0075] Figure 2AAn example of a generative design process utilizing geometry filtering to produce a 3D model compatible with a 2.5-axis subtractive manufacturing process is shown. Figure 2A The process comes from Figure 1B An example of the process of definition 185. Thus, Figure 2A The process involves iterative modification of a generatively designed 3D shape using a specified generative design process and based on inputs of a specified design space, numerical simulation settings, and one or more design criteria, as described in detail above. In some implementations, the shape synthesis process employs a boundary (e.g., level set) based shape optimization method that begins with a starting shape or seed geometry that is then modified through successive iterations of optimization cycles to produce an "optimized design" or "final result" that minimizes some quantity of interest (e.g., strain energy) subject to certain constraints (e.g., mass, maximum stress, and manufacturability).
[0076] The shape optimization loop includes performing a numerical simulation 200 of the modeled object based on the current version of the 3D shape and one or more in-use load cases to generate a current numerical estimate of the physical response (e.g., structural response) of the modeled object. As described above, various types of numerical simulations can be performed. For example, an FEA simulation can calculate strain energy at various locations within the volume of the current version of the 3D shape. In any case, the physical simulation of the current 3D shape generates a current numerical estimate, which can then be used to modify the 3D shape according to design criteria.
[0077] The current version of the 3D shape is then updated 210 based on the current numerical evaluation of the physical response to produce an updated version of the 3D shape of the modeled object. In some implementations, the generatively designed 3D shape of the modeled object includes a level set representation of an implicit surface of the modeled object, and updating 210 includes updating the level set representation based on a shape change velocity calculated for the implicit surface based on the current physical evaluation. For example, a strain energy field within a volume (as determined by numerical simulation) can be transformed into a velocity field on the surface of the volume, where the velocity at each point moves the geometric shape toward a more optimal shape, and the 3D shape can be advected to update the shape by moving each piece of the boundary according to the velocity of the boundary.
[0078] Various types of update 210 processes may be used. For example, update 210 may include performing simulation result filtering, as described below in conjunction with Figures 3A to 3CDetailed description. In addition, the 3D shape of the modeled object may be represented in different formats during different processing stages, such as using a cubic voxel mesh for simulation, using an implicit shape for shape updating, and using a polygonal mesh for deriving a generative design. Furthermore, as described above, the 3D shape of the modeled object may need to remain within a specified design space (or design domain) throughout the optimization process, wherein user-specified regions of the design domain (referred to as retained volumes) are required to remain filled with material throughout the optimization process and may be used to specify boundary conditions for the physical problem (e.g., loads and constraints in solid mechanics).
[0079] Figure 3A An example of a simulation result filtering process used during generative design to facilitate the production of a 3D model compatible with a 2.5-axis subtractive manufacturing process is shown. An input shape 300 has been processed 302 using numerical simulation and load cases to produce a current numerical estimate 304 of a physical response. In the example shown, the numerical estimate 304 of the physical response is a strain energy field, but other types of physical estimates can also be used with the systems and techniques described herein.
[0080] The physics simulator can generate stress fields, strain energy fields, and the like throughout the modeled part, and the shape optimizer can convert these into velocity fields. This conversion from simulated fields to velocities can be as simple as scaling and offsetting the fields to achieve the desired volume reduction. However, conventional shape optimization methods do not take into account the milling direction 308 to facilitate the generation of a shape compatible with 2.5-axis milling. Therefore, assuming the initial shape is 2.5-axis millable, the velocity field generated by the optimizer will typically result in a shape that is less manufacturable because the simulation results do not indicate that the target can be improved by moving in the 2.5-axis manufacturable direction.
[0081] To address this issue, a 2.5-axis milling filter can be used between the physics simulation and shape optimization operations to filter the simulation results to produce a nearly equivalent field that causes the optimizer to move in a direction consistent with 2.5-axis manufacturing. The current numerical (physical) evaluation 304 can be filtered 310 to produce a filtered physical evaluation that causes the geometry of the implicit surface of the three-dimensional shape to be modified during the process of updating the 3D shape of the modeled object consistent with the 2.5-axis subtractive manufacturing process.
[0082] Filtering 310 may include filtering in corresponding discrete layers of the modeled object, for example, as specified by a user or an automated process, but for ease of illustration, in Figure 3AThe example graphically shown in has only a single layer (the 2-axis example represents a special case of 2.5 axes with only one layer). Filtering 310 may include finding 312 a maximum value (or possibly slightly less than the maximum value, e.g., a 95th or 90th percentile value) in the current physics evaluation along the milling direction 308 (within a corresponding one of the discrete layers), and resetting 314 the value of the current physics evaluation (within a corresponding one of the discrete layers) based on the maximum value to produce a filtered physics evaluation. For example, rays 316 may be cast through the part along the milling direction 308, and all voxels along each ray may be set to the maximum value of the field within that layer, thereby creating a regularized field 318.
[0083] The current physics evaluation can be voxel-based stress field data, strain field data, or both. It should be noted that "stress" and "strain" are tensors, where "maximum" does not always have a good meaning. Therefore, filtering of voxel-based stress field data or strain field data (or both) can be filtering of scalar quantities derived from such tensors (e.g., von Mises stress and strain energy). It should be noted that other quantities can be used in place of these quantities, and thus, in some implementations, different fields from the simulation can be filtered.
[0084] In some implementations, rays are projected through the volume of the shape 300 along the milling direction 308, and the maximum values encountered along each ray are collected on a 2D plane perpendicular to the milling direction 308 and passing through the part. Other approaches are possible, such as using a different function for accumulation (e.g., the mean or median, or using the 95th or 90th percentile value instead of the maximum value) depending on the specific simulation results being filtered. The simulation results are then updated so that each voxel is set according to the closest point on the plane. Thus, finding 312 may include: projecting rays parallel to the milling direction through the current version of the three-dimensional shape of the modeled object within corresponding discrete layers of the discrete layers; and collecting the maximum values of the stress data and / or strain data encountered along each of the rays within corresponding two-dimensional regions of the discrete layers, and resetting 314 may include setting the stress data and / or strain data in each voxel within the corresponding discrete layers to the value of the location of the closest voxel in the corresponding two-dimensional region of the discrete layers. The closest point may be the point on the plane that is closest to the center of the 3D voxel in a Euclidean sense. In some cases, the ray may not be cast exactly to the point, in which case linear interpolation can be used between the nearest points on the plane, for which the aggregated value from the ray cast can be used. Figure 3B and Figure 3C Additional details are provided on extending this approach to two or more layers.
[0085] With the filtered physics evaluation 318, the current version of the 3D shape is updated according to the filtered physics evaluation, which may include computing 320 shape change velocities of an implicit surface (e.g., in a level set representation) using the filtered physics evaluation 318 of the current 3D shape of the modeled object. This computation 320 may use a conventional or new shape optimizer algorithm, but in either case, because the numerical evaluation from the simulation has been filtered to regularize the field with respect to the milling direction 308 and because the input to the shape optimizer is this regularized field 318, the computation 320 will generally produce shape change velocities 322 that are parallel or perpendicular to the milling direction 308, as shown in FIG. Figure 3A shown.
[0086] The current 3D shape is then updated 325 by moving the boundaries of the 3D shape according to the calculated shape change speed. Figure 3A As shown, the shape change rate 322 is parallel or perpendicular to the milling direction 308. Given this, the new shape 327 generated from the update 325 changes primarily in directions that maintain compatibility with 2.5-axis machining. In contrast, note the various directions of the shape change rate 330 that would be generated by providing the shape optimizer with the raw numerical evaluation 304 of the physical response rather than the filtered numerical evaluation 318 of the physical response; these various directions of the shape change rate 330 would result in a new shape that is less compatible with 2.5-axis milling.
[0087] Furthermore, as described above, filtering 310 may be performed in respective discrete layers of the modeled object, and these discrete layers may be specified by a user or by an automated process. Figure 3B A graphical representation of the simulation results filtering in the corresponding discrete layers is shown. Figure 3B The example shown is an input shape 350 residing in three discrete layers 352, 354, 356, each of which is perpendicular to the milling direction 308. However, this is only an example; a different number of discrete layers 352, 354, 356 can be used, and one or more (or each) of the discrete layers 352, 354, 356 can have a different thickness. As will be appreciated, in various embodiments, the number of discrete layers 352, 354, 356 and their thicknesses can be modified by the user and / or an automated process, depending on the details of the input shape 350 and the shape and topology optimization to be performed.
[0088] In any case, the design domain (space) can be divided into discrete layers 352, 354, 356, and a strain energy field 360 can be generated for the input shape 350 using numerical simulation, as described above. The ray casting technique described above can then be performed on each respective discrete layer 352, 354, 356, such that rays are cast locally within each layer, and the maximum values along the cast rays are collected in a respective separate 2D plane 362 for each layer. The values of the strain energy field 360 are then reset based on the collected maximum values to produce a regularized field 365, where the regularization is localized to each of the discrete layers 352, 354, 356.
[0089] Due to this localization of the input to the shape optimizer, the boundary velocities 370 calculated for shape 350 will differ in the corresponding layers 352, 354, and 356, but will still tend to produce a new shape 375 that changes primarily in a direction that maintains 2.5-axis machining compatibility. Thus, as shown, new shape 375 includes flat sections perpendicular to the milling direction 308 at the transitions between discrete layers 352, 354, and 356, and includes flat sections parallel to the milling direction 308 between these transition planes. Note that the exposed top surfaces of the layers and the bottom surface of the part do not need to be directly processed to account for the effects of shape change velocities. In some implementations, geometry filtering corrects for any undesirable shape changes in these sections. However, in some implementations, simulation results are distributed under the top / bottom surfaces so that they all move together, or motion is completely eliminated by filtering the velocity field after the shape change velocities are calculated.
[0090] Figure 3C A graphical representation 390 of discrete layers within a modeled object is shown. Consider an arbitrary voxel x within the domain D, with milling direction m. Without loss of generality, a "reference plane" B is defined as a plane passing through the origin and perpendicular to m. Voxel x has a "height" from this plane, as given by h(x) =<x,m> Define, or the projection of the vector from the origin to x onto the plane normal. Also, let x0 = x-<x,m> m is the projection of x onto the reference plane B. Layer boundaries are also specified (whether by the user or through an automated process) and take the form of a series of heights defining the boundaries above, below, and between layers h0, ..., h, as Figure 3C shown.
[0091] Furthermore, suppose that point x is located in layer l, where the top and bottom heights are h respectively. l and h l+1 , and the solver field ψ is positive inside the part volume and zero outside. The regularized value of the field ψ at a point x is defined as
[0092]
[0093] For all x, where h0≤h(x)≤h n , otherwise, ψ′(x) = ψ(x). It should be noted that this method is applied before the velocity calculation rather than after, and there is no need to attempt to correct misaligned faces to make the shape closer to a manufacturable shape, nor is there any need to minimize motion along the top and bottom surfaces of each layer. In practice, simulation result filtering / regularization is intended to help the optimizer push the shape in a generally manufacturable direction, but is generally not sufficient to maintain a 2.5-axis manufacturable shape. Therefore, although the simulation result filtering / regularization process can be used without geometry filtering / regularization, it is typically used in conjunction with geometry filtering / regularization, as described below, or with another suitable technique that can correct non-constrained conforming regions of the design.
[0094] Therefore, by Figure 2A The 3D shape generated by the update 210 in the optimization process may be incompatible with 2.5-axis machining because the simulation result filtering / regularization (or other techniques that push the shape optimization toward a more manufacturable result) does not ensure 2.5-axis milling compatibility, or because no simulation result filtering / regularization (or similar techniques) are used. In such cases, additional processing may be performed after the update 210 (e.g., in each iteration of the optimization loop) to ensure that the generated 3D shape is compatible with 2.5-axis machining and does not include invalid geometry for 2.5-axis machining.
[0095] Figure 2B Examples of invalid geometries for 2.5-axis machining are shown. As shown, the 3D model 212 includes undercut regions 212A (relative to the milling direction shown graphically in the orientation of the machining tool 214), unreachable corner regions 212B (determined by the drill and spindle dimensions of the machining tool 214), and non-side faces 212C. These are examples of invalid geometries for 2.5-axis machining because shapes that can be manufactured using 2.5-axis machining technology should meet three geometric requirements: (1) every point on the body should be "visible" from the milling direction (i.e., no undercuts); (2) every point should be reachable by a tool of a specified diameter (e.g., no square holes); and (3) the normal of each face should be either parallel to the milling direction (top or bottom faces) or perpendicular to the milling direction (side faces). In addition, the top or bottom faces should be aligned with the layer boundary to reduce the number of discrete vertical steps that need to be used in the 2.5-axis machining process.
[0096] By applying a series of transformations to the updated (e.g., advected) geometry of the 3D model, 2.5-axis machining incompatible geometry is converted to a "closest shape" with 2.5-axis machining compatible geometry, which is then displayed to the user as both the result and the starting shape for the next iteration. Figure 2A , it should be noted that the optimizer implementing the update 210 does not need to be aware of these transformations performed during the topology optimization loop.
[0097] A two-dimensional (2D) contour representation of an updated version of the 3D shape is generated 220. The 2D contour representation corresponds to discrete layers perpendicular to a milling direction of a 2.5-axis subtractive manufacturing process. In some implementations, the number and position of the discrete layers are determined by user input. In some implementations, the number and position of the discrete layers are determined by an automated process that analyzes one or more starting 3D models (e.g., an input saved volume). In some implementations, the number and position of the discrete layers can be changed during the optimization process.
[0098] For example, the number and position of discrete layers can be controlled by the optimizer as independent variables. In some implementations, the set of independent variables controlled by the optimizer is increased by adding the position of one or more of the discrete layer transition heights and / or the top and bottom surfaces. The objective function can be differentiated with respect to these additional variables using the chain rule to determine the rate of change of the target with respect to each height variable based on the individual element sensitivities. The derivative can be used to update the layer height position based on the optimization algorithm used. One or more heuristics can be applied to allow two almost overlapping layer heights (corresponding to very thin layers) to be automatically merged. Additional one or more heuristics can be used to detect high variance between element sensitivities that contribute to the layer height derivative and trigger the layer height to be divided into two parts (i.e., inserting a layer).
[0099] Generating 220 2D contour representations may include generating each of the 2D contour representations of the corresponding discrete layers by determining the silhouette of one or more portions of the updated version of the 3D shape that are both within the corresponding discrete layer (in 2D) and within any of the discrete layers above the corresponding discrete layer relative to the milling direction (e.g., the silhouette of all or most of the volume in the circumscribed layer, depending on how the location of the boundary is constructed). In some implementations, this involves (for each layer) casting a ray from the top portion of the topmost discrete layer (i.e., the top of the part) down through the level set representation of the implicit surface along the milling direction to the bottom portion of the current discrete layer. In some implementations, the ray is cast only through the current layer, and a Boolean union is then performed between the silhouette and the silhouette of the layer above.
[0100] Figure 2C A graphical representation of an example of generating a two-dimensional contour representation is shown. Note that Figures 2C to 2F A cross-section of the 3D part perpendicular to the milling direction is shown to facilitate visual clarity in this disclosure. Similar to the spirit of the regularized filtering of simulation results described above, rays can be cast through the volume to create, for each layer, a 2D slice or "silhouette" of the maximum envelope of the part contained in and above that layer. Figure 2C In the example shown, the current 3D shape of the modeled object spans four layers 222A, 222B, 222C, and 222D. A first set of light rays 224A is projected through the first layer 222A to produce a first layer silhouette 226A of the part. A second set of light rays 224B is projected through the first layer 222A and the second layer 222B to produce a second layer silhouette 226B of the part. A third set of light rays 224C is projected through the first layer 222A, the second layer 222B, and the third layer 222C to produce a third layer silhouette 226C of the part. And a fourth set of light rays 224D is projected through the first layer 222A, the second layer 222B, the third layer 222C, and the fourth layer 222D to produce a fourth layer silhouette 226D of the part.
[0101] Mathematically, the same terminology as above is used, but this time a ray is cast through the level set field Φ, where interior points are negative and exterior points are positive, to produce a 2D field φ of the level set containing the silhouette of layer l l For convenience, all layer silhouettes are made coplanar with the reference plane.
[0102]
[0103] In practice, choosing φ large enough l to include the shadow of the entire volume, and then use equation (5) for each pixel in the plane to create a 2D silhouette projection. Note that unlike equation (4), the aggregation uses min(·) and casts rays from the top of the part down to the bottom of layer l (rather than just within the layer). Because the rays start at the top of the volume, the undercuts are automatically filled in the layer silhouette.
[0104] It should be noted, however, that the maximum / maximum envelope of the parts in and above the current layer need not be used, and other methods may be used to define the extent of the silhouettes 226A, 226B, 226C, 226D, i.e., where to place the side vertical walls. In some implementations, the boundaries of the silhouettes 226A, 226B, 226C, 226D are defined by the average of the edges associated with the parts in and above the current layer. In some implementations, the boundaries of the silhouettes 226A, 226B, 226C, 226D are defined by a weighted average of the edges associated with the parts in and above the current layer. Other variations are possible, i.e., different mappings from an unconstrained design to a constrained 2.5-axis compliant design, e.g., using the 75th percentile or median, depending on how quickly the generative design process removes material and the potential risk of undesirably disconnecting two parts of a body that are held together in the milling direction by a relatively thin web. Thus, when examining the value of the signed distance field along a ray, instead of choosing the boundary as the minimum signed distance field value encountered (i.e., the innermost encountered point) and creating the outer envelope, the mathematics can easily be changed to use a different aggregation, such as an average aggregation.
[0105] return Figure 2A , the 2D contour representation is extruded 240 along the milling direction to produce a 3D representation of an updated version of the three-dimensional shape. It should be noted that since the 2D contour representation is extruded 240 along the milling direction, the resulting 3D representation necessarily has side faces parallel to the milling direction (each normal of each side face is perpendicular to the milling direction). Then, the next version of the 3D shape of the modeled object is formed 250 from the combination of the 3D representations with the side faces. For example, performing a Boolean union of the 3D representations produces a new 3D shape that has been modified from the previous iteration to better meet the design criteria of the generative design process, but the new 3D shape necessarily has no undercuts and no faces that are neither top or bottom faces (where the normals are parallel to the milling direction) nor side faces (where the normals are perpendicular to the milling direction).
[0106] Figure 2D Use from Figure 2C An example of a layer silhouette is shown from Figure 2A 2D extrusions 240 and 250. For each layer 222A, 222B, 222C, 222D, the corresponding 2D slice can be projected back into a 3D extrusion, and these 3D extrusions 242A, 242B, 242C, 242D can be combined to form a combined geometry 252 of the modeled object. In some implementations, the 3D level set field is reconstructed by projecting the 2D slices. To do this, each slice is used to construct a 3D extrusion representing the layer and its shadow, and these extrusions are combined using a Boolean union to produce a combined shape.
[0107] Mathematically, define Φ l , the 3D extrusion of layer l and the final regularized shape Φ′ are as follows:
[0108]
[0109] Where x0=x-<x,m> m is the projection of x on the reference plane B, and h(x)=<x,m> It is point x at Figure 3C The height above the datum plane B shown in . The second two arguments in the first row create the top and bottom faces of the extrusion, respectively. This new geometry satisfies the following requirements: all faces with normals parallel (or antiparallel) to m lie on the layer boundary, and all remaining faces have normals perpendicular to the layer boundary.
[0110] In some implementations, the regularization field Φ′ replaces the input field Φ as the output of the optimization in each iteration. In some implementations, the geometry filtering can be introduced more slowly, allowing the optimizer to optimize unconstrained for a period of time, and then gradually adding constraints by mixing the input and output fields using a mixing constant s∈[0,1],
[0111] Φ out =(1-s)Φ+sΦ′ (7)
[0112] And allow s to be 0 at the beginning of the optimization process, and then slowly increase it to 1 (linearly, or following any other continuous 0-1 function). This may require reinitializing Φ′ and Φ to be signed distance fields in a narrow band as large as max(abs(Φ(x)-Φ′(x))).
[0113] return Figure 2A , a check 260 can determine whether the current model has converged to a stable solution, i.e., whether all design constraints are satisfied and only minor changes have been made to the 3D shape of the modeled object since the last iteration, because the balance of the design objectives cannot be further improved due to the constraints. In addition, in some implementations, a check 270 can determine whether a predefined number of shape modification iterations have been completed, such that the iterative modification process will end after the predefined number of iterations (specified by the user or by an automated process). Generally speaking, the execution 200 of the numerical simulation, the updating 210 of the current 3D model, and the other operations in the iterative loop (e.g., generating 220, extruding 240, and forming 250) are repeated until the predetermined number of shape modification iterations have been performed and the generatively designed three-dimensional shape of the modeled object in the design space satisfies one or more design criteria and one or more in-use load cases, or both.
[0114] Furthermore, as described above, geometry filtering can be slowly introduced during the iterative modification of the 3D shape during the topology optimization process. Thus, in some implementations, iteratively modifying includes generating 280 a current version of the 3D shape of the modeled object (for the next iteration) by blending the next version of the 3D model formed 250 in incremental amounts with the updated 210 version of the 3D model. For each of a plurality of iterations, the current version of the 3D shape of the modeled object can be generated by blending the next version of the 3D shape from the previous iteration (the immediately previous version and / or the previous version before that) with the updated version of the 3D shape from the previous iteration. Furthermore, for each of two or more subsequent iterations in the plurality of iterations (e.g., for each subsequent iteration, or potentially for some intermediate iterations with a temporarily reduced blending ratio), neither the updated version nor all next versions are used as the current version of the 3D shape of the modeled object in the next iteration of the modification. Thus, early in the optimization cycle, with or without simulation result filtering, the optimizer can be allowed to operate with few constraints from geometry filtering, and then later in the optimization cycle, geometry filtering can be added (either gradually over multiple iterations or all at once) to ensure that the final output geometry is compatible with 2.5-axis milling.
[0115] In some implementations, any portion of the generatively designed three-dimensional shape of the modeled object that is smaller than a minimum feature size is removed 285 in at least one main axis of the 2.5-axis subtractive manufacturing process. Figure 4A 285. It should be noted that removal 285 can be done: (i) during iterative modification of the shape (i.e., as a step in an optimization loop where the next version of the 3D shape of the modeled object has any fragments of the geometry removed), e.g. Figure 2A As shown, (ii) after iterative modification of the shape (i.e., as post-processing after the optimization is completed), as Figure 4A as shown, or (iii) during and after iterative modification.
[0116] In addition, in some implementations, a morphological closing operation is performed to ensure that a circular milling tool can cut the contours contained in the 2D layer silhouette. This operation can be performed directly on each 2D layer silhouette to ensure tool accessibility. Therefore, in some implementations, each of the 2D contour representations is offset 230 outward by at least an amount equal to the smallest milled radius that can be used with one or more computer-controlled manufacturing systems to manufacture the physical structure of the modeled object. And after this outward offset 230, each of the 2D contour representations is offset 235 inward by at least an amount equal to the radius of the smallest available milling tool. These offsets 230, 235 for forming accessible contours for each layer should be completed before extrusion 240 and forming 250. Furthermore, in some implementations, the offset is set based on (e.g., proportional to or nonlinearly related to) the tool penetration required to mill the layer into the part. For example, the offset 230 may include setting 230 an amount for offsetting the 2D contour representation of one of the discrete layers based on a difference between a height (relative to the milling direction) of a bottom portion of the 2D contour representation of the discrete layer and a height (relative to the milling direction) of a top portion of the part. It should be noted that using this dynamic adjustment of tool size as the depth of cut increases improves manufacturability by avoiding the need for very long, slender, expensive, and fragile tools.
[0117] Figure 2E A graphical representation of morphological closure for tool approach is shown. As shown, morphological closure can involve applying a curve offset 230A to an input profile 232, where the amount of offset 230A is equal to the tool radius 233; this creates something similar to the tool path 231 used to cut this layer of geometry. This offset curve 231 is then offset 235A again by the same amount 233 toward the original profile 232, resulting in an updated profile 237 that is identical to the original profile, except that geometry 237A has been added to corners that are too tight for the tool to approach.
[0118] Mathematically, the morphological closure of the ray-cast 2D layer silhouette generated from above produces an accessible 2D silhouette for layer l (denoted as )
[0119]
[0120] The init(·) function is the signed distance field reinitialization process. Therefore, this morphological closure affects the tool proximity check, which effectively adds material to the part to ensure that it is accessible during the milling process. Therefore, every point can be reached by a tool of the specified diameter or radius (for example, no square holes).
[0121] In 3-axis and 5-axis milling, tool accessibility checks incorporate a model of the tool head to ensure that the part can be cut with a tool of the user-specified length. Doing so in 2.5-axis could create unwanted racks where the tool head interferes with the body. Therefore, instead of assuming an infinitely long tool (which might require the machinist to specially order a tool at high cost), a dynamic tool selection method can be employed that assumes that only the groove side of the tool enters the part bounding box and then selects a tool of the appropriate size, allowing the part to be cut with an inexpensive, off-the-shelf end milling tool.
[0122] Figure 2F A graphical representation of comparative tool modeling methods is shown. In tool modeling method 234A, a fixed diameter, infinite length tool is assumed. As described above, this may be unrealistic or result in expensive tool requirements. In contrast, in tool modeling method 234B, the tool diameter grows with the planned depth of cut. In some implementations, the user (or an automated process) supplies a minimum tool size that acts as a lower limit for the tool selected for each layer. The tool diameter d for layer 1 is d l It can be defined as follows:
[0123]
[0124] where d min is a user-specified minimum diameter, and h0 is the height of the top plane of the part (the plane closest to the tool holder). Thus, setting the offset may include setting that amount to the maximum of: (i) the radius of the smallest milling tool available, and (ii) a predefined fraction of the difference between the top of the part and the bottom of the layer to be machined, which is greater than zero and less than one (or in some cases greater than one). In the example above, the predefined fraction is one-half, but other predefined fractions are possible and may be tailored to the specific machine tool intended to be used to manufacture the part. It should be noted that this approach introduces the undesirable side effect of having corner radii that are different at different height levels, thereby creating thin shelves in the designed part, but these artifacts can be corrected using the following combination of Figure 4A and Figure 4B The layer alignment technique described is used to handle this.
[0125] In addition, the difference is not necessarily in h l+1and h0, i.e., the amount by which setting 230 is used to offset the 2D profile representation of one of the discrete layers need not be based on the difference between the bottom portion of the 2D profile representation of one discrete layer (relative to the milling direction) and the height of the topmost discrete layer of the part (relative to the milling direction); other measures of cut penetration depth are also possible. It should be noted that the h value here refers to the layer transition height, i.e., the distance from the outside of the part where one layer ends and the next begins along the milling direction, rather than the layer height itself, which may be associated with the height of the mid-plane of the layer; if there are N layers, there are N+1 layer transitions, where the first transition is the top of the part and the last is the bottom of the part, as measured along the milling direction.
[0126] In some implementations, the silhouette offset is a function of the distance, relative to the milling direction, between the topmost layer of the part and the next deepest layer transition (i.e., the bottom of the current layer). Thus, the distance from the topmost layer transition to the bottom of the current layer is measured, which corresponds to the maximum possible depth of cut. And in some implementations, the silhouette offset is a function of the distance between the top of the local part and the next deepest layer transition. Thus, the distance is measured from the top of the part locally in the area where the current simulated cut will occur (i.e., if there is no material on the top layer of a particular area, it is not included in the evaluation). Other measures of cut penetration depth are also possible.
[0127] In some implementations, setting the offset includes setting the amount to the maximum of: (i) the radius of the smallest milling tool available, and (ii) the diameter selected for the "actual milling tool" that should have a groove that achieves the full depth of cut. The selected diameter can be derived from a table or database of available milling tools, which can be user-specific or generally applicable to the process (such as an industry standard tool catalog). In some implementations, the diameter is determined by an equation-driven relationship between groove length and tool diameter derived from expert knowledge of typical end milling tool characteristics. For example, the equation-driven relationship between groove length and tool diameter can use a fixed positive tool aspect ratio, such as the ratio of one-half of equation (9), or more generally, instead of using 2 in the denominator of equation (9), use the variable r t , where r is selected t The values are used to describe typical inexpensive milling tools.
[0128] Figure 4A Additional process examples are shown for generatively designing a part using geometry filtering, simulation results filtering, or both to produce a 3D model compatible with a 2.5-axis subtractive manufacturing process. Figure 4A The process can be combined with the above Figures 1B to 3C
[0014] This can be accomplished with any of the processes described herein. In the case of boundary-based generative design processes, such as those using level set representations, holes or voids can be added and removed during the iterative modification process in order to change the topology of the generative design, or the topology of one or more individual layers. Removal of holes / voids can be accomplished based on the holes / voids becoming smaller than a threshold size as a result of the shape modification process; for example, holes / voids can be automatically removed (as a result of an offset) when they shrink to a size smaller than a tool radius. Furthermore, holes / voids can be added periodically or as needed during the iterative modification process.
[0129] Thus, a check 400 may be performed during the iterative modification process to determine whether additional topological changes should be made in the implicit surface of the current version of the 3D shape. In some implementations, the check 400 is whether a predefined number of iterations have occurred. In some implementations, the check 400 involves analyzing current data (e.g., current simulation results or current rate of change of the shape during an optimization process) to see if the data indicates that the shape would benefit from a topological change. If a topological change is indicated, the implicit surface used in the boundary-based generative design process is modified to insert at least one gap. In some implementations, one or more gaps are inserted 410 into the level set representation of the 3D shape, for example, at locations selected using centerlines generated for at least one of the 2D contour representations. In conjunction with Figures 4C to 4E to provide additional detail about this insertion 410. In some implementations, each layer is evaluated to see if a void can be safely inserted into any layer, where a void insertion is "safe" if the void is not created too close to the outer contour of the layer (it needs to be fully contained by the geometry), and the void is a reasonable distance from the contours of the layers above / below the layer in question (to avoid holes through vertical walls).
[0130] In any case, the generative design process is repeatedly performed 420 until a check 430 indicates convergence and / or completion of a predefined number of shape modifications. The generative design process can be any of the generative design processes described above and can also include a layer alignment process, for example, to remove undesirable corner radius differences on two layers that would otherwise overlap due to setting offsets based on (e.g., proportional to or non-linearly related to) tool penetration into the part. Thus, the 2D contour representations can be compared 422 to identify at least a first contour representation that is above a second contour representation (with respect to the milling direction), wherein a distance between a first portion of the first contour representation and a second portion of the second contour representation is below a threshold distance.
[0131] When any such first and second contour representations (having portions within a threshold distance) are identified, the first portion of the first contour representation can be changed 424 to match the second portion of the second contour representation, and the first contour representations on either side of the first portion can be modified 426 to remove any discontinuities in the first contour representation caused by the change. This layer alignment effectively snaps adjacent layers together to produce a more functional design, thereby improving the quality of the resulting generative design results, making the results easier to edit in downstream processes, and reducing CAM programming and machining time. It should be noted that this layer alignment technique is also useful in implementations that do not include a tool penetrating into the part (e.g., proportionally or nonlinearly related thereto) to set the offset.
[0132] While tools can efficiently cut layered structures, unnecessary shelves between layers can introduce stress concentration points, manual finishing steps (such as broken edges), and aesthetic issues. Thin shelves can occur during shape synthesis because the solver has no reason to avoid them, regardless of whether the dynamic tool selection process causes the radius to change with increasing depth, introducing additional shelves in tight corners. Therefore, it is often desirable to align layers on adjacent contours to simplify editing and programming tasks, reduce stress concentration points, manual finishing steps, and aesthetic issues.
[0133] To address thin shelves, adjacent layers can be aligned so that smooth sides are created by adding material to the upper layer whenever adjacent layers are close enough. To do this, the stack of layers can be traversed from bottom to top (with the top closest to the major axis). For each pixel in the signed distance field of each layer silhouette, the approximate distance between the silhouettes can be calculated as the difference between the signed distance value of the current layer and the value of the corresponding pixel on the layer below.
[0134] If the contour distance is less than the specified tolerance, the current layer is moved to align exactly with the layer below by setting the signed distance value of the current pixel to match the layer below. This produces a discontinuity in the top contour where the contour transitions between the corrected and uncorrected regions, and instead uses a smooth transition between the corrected and uncorrected boundaries. Given a constant transition start distance t1 and transition end distance t2, where contours approaching beyond t1 are perfectly aligned and contours farther away than t2 remain unchanged, the corresponding signed distance value from the layer below can be calculated according to the following formula: To update the pixel's signed distance value v:
[0135]
[0136] where the interpolation t manages the transition between the fully aligned and unchanged parts of the contour. Layer alignment allows pockets to span multiple layers without introducing thin shelves.
[0137] Figure 4B An example 428 of the effect of layer alignment parameters on removing discontinuities caused by changing the first layer profile to match the second layer profile is shown. As shown, various new upper profiles (for an upper layer above a lower layer) can be created depending on the values of t1 and t2. In this example, the values are (t1 = 0.0, t2 = 1.0); (t1 = 0.0, t2 = 2.0); and (t1 = 1.0, t2 = 2.0). Other values are possible and will still result in the removal of any discontinuities. In practice, the signed distance field difference There is sometimes a little noise far away from the boundaries, resulting in an irregular output contour after interpolation of equation (10). Therefore, in some implementations, the weight t is calculated over all voxels and then Gaussian blurred before interpolation.
[0138] return Figure 4A In some implants, after iteratively modifying 420 and before providing 450 the 3D model, any portion of the generatively designed three-dimensional shape of the modeled object that is smaller than a minimum feature size may be removed 440 in at least one principal axis of the 2.5-axis subtractive manufacturing process. Sometimes, thin fragments of material may appear in the resulting shape, for example, due to folded contours or due to obstacles placed within a layer (obstacles are areas that the user has excluded from the design domain). These material fragments are small fragments of geometry that technically meet the 2.5-axis machining requirements detailed above, but are actually impossible to manufacture in practice and should therefore be removed, preferably by an automated process rather than manually. It should be noted that the minimum feature size may be specified by the user or by an automated process. Additionally, as described above, the removal 440 may be accomplished within an iterative loop of the generative design process 420.
[0139] In some implementations, voxels are removed from the interior of the domain of the final 3D geometry when both adjacent voxels along one of the principal axes are outside the domain. In some implementations, regions of a 2D layer slice that are thinner than a specified size are removed. Thin sections in a given test contour can be identified by performing a morphological opening (i.e., performing an inward shift, renormalizing the signed distance length, and then performing an outward shift by the same amount), and then searching the opened version of the contour for regions that are significantly different from the original shape. In particular, a magnitude difference that is less than the opening distance corresponds to fine detail on the surface of an otherwise large contour, while a magnitude difference that is greater than the opening distance corresponds to a region of the design that is significantly thinner than twice the opening distance. This test can be performed on each 2D layer, and one or more obstacles that intersect the layer are also subtracted on each 2D layer, and regions identified as too thin can be removed from the 2D layer before constructing the final 3D geometry.
[0140] In some implementations, regions of the 2D layer slice with small areas are removed. Small areas can be identified by converting the level set field of the 2D layer into a Boolean (black and white) representation of the shape, where connected components or flood fill algorithms can be used to identify continuous pixel regions in the 2D layer. Regions that are too small are identified as groups of continuous voxels with an area less than a specified threshold and are removed from the 2D layer contour using Boolean subtraction or other methods. As described above, this test is performed on the 2D layer contour, and one or more intersecting obstacles are optionally removed by Boolean subtraction on the 2D layer contour, and the modified 2D layer contour is used to construct the final 3D geometry.
[0141] Regardless of the specific method used, debris removal will eliminate small extruded areas from the result, thereby improving the quality of the final generative design result. Once this or other post-processing is completed, such as converting the 3D model to another computer modeling format, a 3D model of the object having the generatively designed shape and topology is provided 450 for 2.5-axis subtractive manufacturing of the physical structure. This provision 450 may include the above combined with Figure 1B Any details described in 195 are provided.
[0142] In addition, as described above, the generative design process can include generating and inserting 410 voids into a boundary-based representation (e.g., a level set representation) of the 3D shape of the modeled object being generatively designed. Geometry filtering can, for example, ensure a 2.5-axis manufacturable result in each iteration of an optimization loop, but such filtering can also limit the active surface of the part where the optimizer can make changes to the sides, which can slow convergence and reduce the quality of the generative design results. To address this issue, a void generation operation (e.g., in geometry filtering) can introduce holes in the interior of the part away from existing sides, thereby providing the optimizer with new surface area to manipulate. This allows the final design to include pockets even if the starting shape did not include pockets, thereby achieving better results. It can also speed up convergence because each iteration can remove more material from a larger effective surface area.
[0143] Figure 4C An example of generating a void and inserting it into a level set representation of, for example, a 3D shape is shown. This example is based on using a von Mises stress field from a numerical simulation, but in various embodiments, other outputs from the numerical simulation can also be used, such as some scalar quantities provided by the numerical simulation that can be converted to surface velocities. Figure 4C The example is conceptually similar to the bubble method of classical level set topology optimization and introduces voids in regions of the part where the fields computed from the solver results (stress, strain energy, topology derivatives, etc.) are below a certain threshold (either in percentile or absolute quantity), but the method is adapted for 2.5-axis manufacturing requirements.
[0144] As in Figure 3B In the example shown, the input shape 412A resides in three discrete layers, each of which is perpendicular to the milling direction 405; a different number of discrete layers can be used, and one or more (or each) of the discrete layers can have different thicknesses. Furthermore, a von Mises stress field 412B can be generated for the input shape 412A using numerical simulation, as described above. The ray casting technique described above can then be performed for each respective discrete layer, such that rays are cast locally within each layer, and the maximum values along the cast rays are collected in a respective separate 2D plane for each layer. Thus, the simulation result field 412B (e.g., von Mises stress) is projected onto a respective 2D slice 412C per layer.
[0145] The areas 412C-1, 412C-2 below the threshold for each slice 412C are removed from the 2D silhouette, thereby forming voids in the projected 3D volume to produce a new shape 412D. The threshold used can be a percentile of the global stress field or can be derived by some other means. The resulting shape 412D now contains undercuts, but this can be corrected by extending the embedded voids upward through all layers above or removing the voids with material above; thus, the seeds are cylinders (with the sides parallel to the milling direction) rather than bubbles. The resulting shape may also introduce pockets that are inaccessible to the selected tool. To ensure that the results are acceptable, the void generation operation 410 can be placed before the tool approach operations 230, 235 in the geometry filtering, which may cause the tool to approach and fill some of the generated voids.
[0146] Figure 4D Another example of generating and inserting voids into, for example, a level set representation of a 3D shape is shown. This example is based on the use of a shape skeleton. Instead of using a solver field when selecting the void locations, a shape skeleton can be used to determine where to place cylindrical voids, extending one or more layers down into the part until a void of a specified volume is formed. In some implementations, circular voids that are equal to or larger than the tool diameter (e.g., 5% to 75% larger, and in some implementations, 50% larger than the tool diameter) can be placed at regular intervals along the centerline of the shape until a predetermined volume of the part has been removed (a "target void volume"; which can be fixed in advance, specified by the user, or dynamically adjusted when convergence is reached). The target void volume should be selected so as to produce enough topological changes to meaningfully affect the optimization process without removing so much material that the optimization problem is drastically altered (e.g., by introducing stress concentrations in narrow features). This centerline-driven geometric void spacing scheme can increase the convergence rate and provide higher quality results in terms of the final 3D shape being more similar to how a human would design a part for a 2.5-axis subtractive manufacturing process.
[0147] Consider the case where a void extends only one layer into the part. The process begins by computing a "free" surface on the current layer outline 414A by subtracting area 416A from the layer above and the retained geometry that intersects layer 415A (to which the void should not be added). A shape skeleton 416B is then computed for the free surface 414B, and points along the skeleton that are far enough from the boundary (e.g., that the void will maintain a minimum wall thickness) are identified as candidate void locations 416C. It should be noted that when a minimum feature size constraint is applied, the metric for "far enough" can be explicitly stated, or an explicit value can be requested from the user, or the wall thickness can be estimated as 0.5*(layer height) for 2.5-axis milling and 0.35*(part height) for 2-axis cutting, which can use the same void generation algorithm.
[0148] Starting with the candidate point 416C farthest from the free surface boundary 414B, candidate voids 416D are selected so that they are separated from each other by a specified "rib thickness". If a minimum feature size constraint is used, the rib thickness can be at least the required minimum thickness. The rib thickness can also be selected as a constant multiple of the wall thickness (e.g., 0.5*wall thickness), as a portion of the tool size, or as some combination of the minimum feature size, a portion of the wall thickness, and a portion of the tool size. In some implementations, candidate voids 416D are selected at regular intervals along the shape centerline. In some implementations, candidate voids 416D are continuously selected until a specified volume of material (the target void volume for the layer) has been removed or no candidate voids remain. The corresponding voids 416E are then removed from the layer outline, and if the generated void volume is less than the target volume, the process continues on the next layer below.
[0149] Additionally, it may be desirable to generate voids that penetrate more than one layer deep into the part. In this case, void generation in the current layer begins by attempting to create deeper voids, continuing to create shallower voids until the target volume is removed or no candidate voids exist. Generating voids that penetrate deeper into the part differs from single-layer generation in two ways. First, the available surface used takes into account not only the free surface minus the retained geometry in the current (top) layer, but also the retained geometry in the layers below that would intersect with the void. This limited available surface may result in a reduced area in which multiple layers of voids can be generated. Second, if dynamic tool sizing is enabled and the hole is deeper than the specified minimum tool diameter can reach, deeper voids may require a larger diameter. These two considerations may result in only a few (or possibly no) voids of a particular depth being generated, with execution proceeding to successively shallower voids until all candidate void points have been selected or discarded (or the target void volume has been reached).
[0150] In some implementations, void generation is divided into multiple passes, with each pass contributing only a portion of the total void volume. This distributes the generated voids more widely across the part, rather than forcing them all to lie on the shape skeleton of the initial free surface, which can result in voids being created in small areas of the free surface when the voids are relatively small. This is achieved by inserting a smaller number of voids in a first pass, as before, then recalculating the shape skeleton of the updated free surface so that it lies between the outer edge of the free surface and the voids placed in the first pass. Subsequent passes can be achieved by iteratively repeating the process of generating some voids, then recalculating the shape skeleton, then generating additional voids, and so on. Figure 4E An example of the effect of partitioning void generation in multiple passes is shown. In the case of a single pass, the contours of the available surface 418A are processed as described above to generate all voids 418B in a single pass on the original skeleton. In the case of a two-pass pass, some voids 418C (e.g., half of the voids) are generated in the first pass, and then a new skeleton is generated in the second pass and used to generate the remaining voids 418D.
[0151] Table 1 below includes pseudo code for the geometric gap generation process (with a single attack direction 405).
[0152]
[0153] Table 1
[0154] The FindVoids function uses a shape skeleton to locate voids given the starting and ending layers and the void volume target. Table 2 below shows the pseudo code for the FindVoids function. The list of voids to be generated is passed to the function and updated by it; voids are created in the layer object as part of PlaceVoids() in the pseudo code shown in Table 1.
[0155]
[0156] Table 2
[0157] Table 3 below gives additional details of the GetAvailableSurface() function used to calculate the area in which the void should be generated. The available surface consists of the free surface of the top layer (the layer outline Boolean minus the outline of the layer above), and then subtracting the projected preserved area of each successive layer that will intersect the void to ensure that the void is not generated inside or too close to the preserved area.
[0158]
[0159] Table 3
[0160] The pseudo-code example above references several utility functions described in Table 4 below.
[0161]
[0162] Table 4
[0163] The description of the various embodiments described above focuses on optimizing the part shape for a single setup (only one milling direction). However, the described implementation can be extended to two or more setups (two or more milling directions). The two or more milling directions can be determined by user input or automatic detection. In addition, the two or more milling directions can include one or more pairs of parallel (coaxial or colinear) milling directions with opposite signs, and / or non-parallel milling directions. In some implementations, the second milling direction is colinear with the first milling direction but opposite (i.e., the part is machined, flipped, and machined again), but the methods described herein are applicable to additional non-colinear milling directions.
[0164] 2.5-axis simulation results and geometry filtering operations can be performed independently for each milling direction and then combined to form the filtered output. Each milling direction can have its own set of discrete layers. These discrete layers can be defined in the same way, i.e., the same total number of layers and the same layer thickness (so as to create a pair of coaxial milling directions operating at geometrically equivalent layer boundary locations), but they are still considered to be corresponding discrete layer sets because the geometry in the layers will typically be different due to the different orientation of the 3D shape relative to each milling direction. Alternatively, the discrete layers can be defined differently for each of one or more of the two or more milling directions, i.e., with different numbers of layers and different layer thicknesses for different milling directions.
[0165] In the case of simulation result filtering for multiple part setups (multiple milling directions), the simulation result filtering is performed the same as for the single setup case, but independently for each part setup (each milling direction). The results are then combined into the final field to be returned to the optimizer. The final field (ψ″) is composed of the output 3D fields from each setup (ψ′ for setups 1..m) according to the following equation: i ) and the value of the input field ψ:
[0166]
[0167] This allows the optimizer to look at the field value at each voxel at the lowest value encountered in any of the set directions that intersect it, but never less than the value chosen by the solver.
[0168] In the case of geometry filtering for multiple part setups (multiple milling directions), the geometry filtering is run independently on each setup (for each milling direction). The final shape is then constructed by combining the results using Boolean intersection. This simulates the behavior of a milling machine, where the toolpath executed on each setup removes different parts of the geometry to produce the final shape.
[0169] Thus, generating 220 a 2D profile is performed for each of the two or more milling directions to generate a corresponding set of 2D profile representations of an updated version of the three-dimensional shape, and extruding 240 is performed for each of the two or more milling directions to generate a corresponding set of 3D representations having side faces normal to the corresponding two or more milling directions. Furthermore, forming 250 includes performing a Boolean union of the 3D representations in the corresponding set of 3D representations to generate one or more 3D bodies for each of the two or more milling directions, and performing a Boolean intersection of the generated 3D bodies for the two or more milling directions to form a next version of the three-dimensional shape of the modeled object.
[0170] Figure 5A An example of geometry filtering with three milling directions (e.g., three setups) is shown. A machine tool 500 is shown approaching an input geometry 510 from three directions A, B, and C (note that milling direction C is antiparallel to milling direction A). Each of these part setup milling directions A, B, and C is also shown relative to the milling direction 505 of the subtractive manufacturing machine, along with the 3D results 515A, 515B, and 515C of the regularized filtering. It should be noted that this example focuses on the case where the CNC machine is actually a 2.5-axis machine, and therefore each milling direction corresponds to a different part setup, where the part is manually repositioned and fixed in the CNC machine. However, the described systems and techniques can be used with 3-axis and 5-axis CNC machines, and therefore a given number of milling directions can be achieved with fewer than the given number of part setups. In any case, the 3D geometries 515A, 515B, and 515C generated by the regularized filtering are intersected 520 to produce a final shape 525 (where the original shape 510 is overlaid with a dashed line for comparison).
[0171] In this example, the input geometry 510 is filtered three times with different layer specifications, once for each setup, and the results are intersected to form the final shape 525. Note that the internal void 512 has been removed (as it was not accessible from all three setups). The top cut 514 is slightly misaligned because the input geometry was not aligned with the specified layer position. The diagonal cut 516 at the bottom left corner of the input part 510 could not be achieved with setup B, but was approximated with a step using setup C. The final part is the closest fully 2.5 axis manufacturable geometry to the input. Note that, by construction, the output of multi-setup filtering always completely contains the input shape (only material is added). Mathematically, given that for each setup φ′ i The 3D level set field of the geometric regularization result, where i = 1..m, is constructed as follows:
[0172]
[0173] And it should be noted that interpolation between the input and output shapes can still be achieved through the expression in equation (7).
[0174] Additionally, in some embodiments, void generation can be modified to account for multiple available milling directions (e.g., multiple part setups). The stress-driven void generation method does not need to be modified to handle multiple setups, but for geometric void generation, two undesirable situations should be corrected. First, it is undesirable to generate voids that intersect side edges on underlying layers. Second, it is desirable to generate voids only on surfaces that will fully appear in the final part.
[0175] Figure 5B An example of an undesirable void location in the case of multiple milling directions (e.g., multiple setup configurations) is shown. For the current milling direction 505A and the available surface cross section 550 that produces a projection 555 for that setup, a void 560 is undesirable because it intersects the boundary of the final shape 565 on the opposite milling setup of the second milling direction 505B. As another example, for the current milling direction 505A and the available surface cross section 570, a void 575 is undesirable because it intersects the geometry 580 generated by the different milling direction 505C.
[0176] To account for these changes, the free surface and available surface definitions are modified. The first defect can be avoided by identifying the "corresponding" layers in the antiparallel milling setup and removing the narrow band around the outline boundary from the available surface of each layer that intersects the gap. It should be noted that the creation of blind holes and through holes is still allowed, but holes located on the outline boundary of any corresponding layer are eliminated. Table 5 below includes pseudo code showing this update to GetAvailableSurface() for multiple attack directions (where changes are italicized).
[0177]
[0178] Table 5
[0179] The second flaw can be remedied by redefining the free surface. Define the solid layer outline using a ray casting operation similar to the one used to define the initial layer silhouette, except exclude interior points where the ray is not inside the shape for most of the time it passes through the layer. Then, redefine the free surface as the solid layer outline Boolean difference with the layer outline of the layer above.
[0180] Figure 6 6 is a schematic diagram of a data processing system including a data processing device 600, which can be programmed as a client or a server. The data processing device 600 is connected to one or more computers 690 via a network 680. Figure 6 Only one computer is shown as data processing device 600, but multiple computers may be used. Data processing device 600 includes various software modules that may be distributed between the application layer and the operating system. These may include executable and / or interpretable software programs or libraries, including tools and services for one or more 3D modeling programs 604 that implement the above-described systems and techniques. Thus, 3D modeling program 604 may be a CAD program 604 (such as CAD program 116) and may implement one or more generative design processes (e.g., using level set-based methods for generative design) for topology optimization and physical simulation operations (finite element analysis (FEA) or other operations), including geometry filtering with or without multiple milling directions (e.g., multiple part setups), simulation result filtering, layer alignment, and / or gap generation and insertion. In addition, program 604 may potentially implement manufacturing control operations (e.g., generating and / or applying tool path specifications to enable the manufacture of the designed object). The number of software modules used may vary depending on the implementation. Furthermore, the software modules may be distributed across one or more data processing devices connected via one or more computer networks or other suitable communication networks.
[0181] The data processing device 600 also includes a hardware or 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 device 600. In some implementations, the processor 612 is a single-threaded or multi-threaded processor. Each processor 612 is capable of processing instructions stored on a computer-readable medium 616 or a storage device (such as one of the additional devices 614). The data processing device 600 uses a communication interface 618 to communicate with one or more computers 690, for example, via a network 680. Examples of user interface devices 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 device 600 may store instructions for implementing operations associated with the above-mentioned programs, for example, on a computer-readable medium 616 or one or more additional devices 614, such as one or more of a hard disk device, an optical disk device, a magnetic tape device, and a solid-state memory device.
[0182] The embodiments of the subject matter and functional operations described in this specification may be implemented in digital electronic circuits, or in computer software, firmware or hardware (including the structures disclosed in this specification and their structural equivalents), or in a combination of one or more of them. The embodiments of the subject matter described in this specification may also be implemented using one or more computer program instruction modules encoded on a non-transitory computer-readable medium for execution by a data processing device or for controlling the operation of a data processing device. The computer-readable medium may be a manufactured product, such as a hard drive in a computer system or an optical disc sold through a retail channel, or an embedded system. The computer-readable medium may be obtained separately and then encoded with one or more computer program instruction modules, for example, after transmitting the one or more computer program instruction modules via a wired or wireless network. 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.
[0183] The term "data processing apparatus" encompasses all devices, apparatus, and machines for processing data, including, for example, a programmable processor, a computer, or multiple processors or computers. In addition to hardware, an apparatus may also include code that creates an execution environment for the computer program in question, such as processor firmware, a protocol stack, a database management system, an operating system, a runtime environment, or a combination of one or more of these. Furthermore, an apparatus may employ a variety of different computing model infrastructures, such as web services, distributed computing, and grid computing infrastructures.
[0184] A computer program (also referred to as a program, software, software application, script, or code) can be written in any suitable form of programming language, including compiled or interpreted languages, declarative or procedural languages, and can be deployed in any suitable form, including being deployed as a stand-alone program or 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. A program may be stored in a portion of a file that stores 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 multiple collaborative files (e.g., files that store one or more modules, subroutines, or parts of code). A computer program can be deployed to execute on one computer, or to execute on multiple computers that are located at one location or distributed across multiple locations and interconnected by a communication network.
[0185] The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and the device can also be implemented as, special purpose logic circuitry, such as an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
[0186] Processors suitable for executing computer programs include, for example, both general-purpose and special-purpose microprocessors, as well as any one or more processors of any type of digital computer. Generally speaking, a processor will receive instructions and data from a read-only memory or a random access memory or both. The basic elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally speaking, a computer will also include one or more mass storage devices for storing data, such as magnetic disks, magneto-optical disks, or optical disks, or be operatively coupled to the one or more mass storage devices to receive data from them or transfer data to them, or both. However, a computer does not need such devices. In addition, a computer can be embedded in another device, such as 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 (e.g., a universal serial bus (USB) flash drive), to name a few. Devices suitable for storing computer program instructions and data include all forms of nonvolatile memory, media, and storage devices, including, for example, semiconductor memory devices such as EPROM (erasable programmable read-only memory), EEPROM (electrically erasable programmable read-only memory), and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and memory may be supplemented by, or incorporated in, special purpose logic circuitry.
[0187] To provide interaction with a user, embodiments of the subject matter described in this specification can be implemented on a computer having: a display device, such as an LCD (liquid crystal display) display device, an OLED (organic light emitting diode) display device, or another monitor for displaying information to the user; and a keyboard and pointing device, such as a mouse or trackball, that the user can use to provide input to the computer. Other types of devices can also be used to provide interaction with the user; for example, the feedback provided to the user can be any suitable form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any suitable form, including acoustic, voice, or tactile input.
[0188] A computing system may include a client and a server. The client and the server are generally remote from each other and typically interact via a communication network. The relationship between the client and the server is due to a computer program running on a corresponding computer and having a client-server relationship between them. The embodiments of the subject matter described in this specification may be implemented in a computing system comprising a back-end component (e.g., as a data server) or comprising an intermediate component (e.g., an application server) or comprising a front-end component (e.g., a client computer with a graphical user interface or a browser user interface, through which a user can interact with the implementation of the subject matter described in this specification) or any combination of one or more such back-end components, intermediate components, or front-end components. The components of the system may be interconnected by digital data communication (e.g., a communication network) of any suitable form or medium. Examples of communication networks include local area networks ("LANs") and wide area networks ("WANs"), internetworks (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).
[0189] Although this specification includes many implementation details, these details should not be understood as limiting the scope of what is claimed or may be claimed, but rather as descriptions of features specific to the specific embodiments of the disclosed subject matter. Certain features described in this specification in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, the various features described in the context of a single embodiment may also be implemented individually in multiple embodiments or in any suitable sub-combination. In addition, although features may be described above as working in certain combinations and even initially claimed for this purpose, one or more features from the claimed combination may be separated from the combination in some cases, and the claimed combination may involve a sub-combination or a variation of the sub-combination.
[0190] Similarly, although operations are depicted in a particular order in the accompanying drawings, this should not be understood as requiring that such operations be performed in the particular order shown or in a continuous order, or that all of the illustrated operations be performed to achieve the desired result. In some cases, multitasking and parallel processing can be advantageous. Furthermore, the separation of various system components in the above-described embodiments should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
[0191] Thus, certain embodiments of the invention have been described. Other embodiments are also within the scope of the following claims. Additionally, the actions recited in the claims can be performed in a different order and still achieve the desired results.
Claims
1. A method comprising: Obtaining, by a computer-aided design program, a design space of a modeled object whose corresponding physical structure is to be manufactured using a 2.5-axis subtractive manufacturing process, one or more design criteria for the modeled object, and one or more in-service load conditions for the physical structure; iteratively modifying, by the computer-aided design program, a generatively designed three-dimensional shape of the modeled object in the design space according to the one or more design criteria and the one or more in-use load cases, including modifying both the geometry of the three-dimensional shape and the topology of the three-dimensional shape, wherein the iteratively modifying comprises: performing a numerical simulation of the modeled object based on the current version of the three-dimensional shape and the one or more in-service load cases to produce a current numerical estimate of a physical response of the modeled object; updating the current version of the three-dimensional shape based on the current numerical evaluation of the physical response to produce an updated version of the three-dimensional shape of the modeled object; generating a two-dimensional contour representation of the updated version of the three-dimensional shape, wherein the two-dimensional contour representation corresponds to discrete layers perpendicular to a milling direction of the 2.5-axis subtractive manufacturing process; extruding the two-dimensional outline representation along the milling direction to produce a three-dimensional representation of the updated version of the three-dimensional shape, wherein the three-dimensional representation has sides whose normals are perpendicular to the milling direction; forming a next version of the three-dimensional shape of the modeled object from a combination of the three-dimensional representations of the side faces having normals perpendicular to the milling direction; and repeating at least said executing, said updating, said generating, said extruding, and said forming until a predefined number of shape modification iterations have been performed and the generatively designed three-dimensional shape of the modeled object in the design space satisfies the one or more design criteria and the one or more in-use load cases, or both; and The generatively designed three-dimensional shape of the modeled object is provided by the computer-aided design program for fabrication of the physical structure using one or more computer-controlled manufacturing systems employing the 2.5-axis subtractive manufacturing process.
2. A method as claimed in claim 1, wherein the generating includes generating each of the two-dimensional contour representations of the corresponding discrete layers by determining the silhouette of one or more portions of the updated version of the three-dimensional shape that are both within the corresponding discrete layer and within any of the discrete layers above the corresponding discrete layer relative to the milling direction.
3. The method of claim 2 , wherein the milling directions include two or more milling directions having corresponding sets of discrete layers, the generating is performed for each of the two or more milling directions to produce a corresponding set of two-dimensional outline representations of the updated version of the three-dimensional shape, the extruding is performed for each of the two or more milling directions to produce a corresponding set of three-dimensional representations of side faces having normals perpendicular to the corresponding two or more milling directions, and the forming comprises: performing a Boolean union of the three-dimensional representations in the corresponding sets of three-dimensional representations to generate one or more three-dimensional volumes for each of the two or more milling directions; as well as A Boolean intersection is performed on the three-dimensional volumes generated for the two or more milling directions to form the next version of the three-dimensional shape of the modeled object.
4. The method of claim 2 , wherein the iteratively modifying comprises, for each of a plurality of iterations, generating the current version of the three-dimensional shape of the modeled object by blending the next version of the three-dimensional shape from a previous iteration with the updated version of the three-dimensional shape from the previous iteration, wherein, for each of two or more subsequent iterations of the plurality of iterations, the amount of the next version used in the blending increases relative to the amount of the updated version until neither the updated version nor all of the next versions are used as the current version of the three-dimensional shape of the modeled object in a next iteration of the modifying.
5. The method of claim 2 , wherein the generatively designed three-dimensional shape of the modeled object comprises a level set representation of an implicit surface of the modeled object, and the updating comprises updating the level set representation according to a shape change velocity calculated for the implicit surface based on the current numerical evaluation of the physical response.
6. The method of claim 5, wherein said iteratively modifying comprises, prior to said extruding: offsetting each of said two-dimensional contour representations outwardly by an amount at least equal to the radius of a smallest milling tool available for use with said one or more computer-controlled manufacturing systems; and Each of the two-dimensional contour representations is then offset inward by the amount.
7. The method of claim 6 , comprising setting the amount by which the two-dimensional contour representation of one of the discrete layers is offset based on an amount by which a tool would need to penetrate into the physical structure for milling one discrete layer for the two-dimensional contour representation during the 2.5-axis subtractive manufacturing process.
8. The method of claim 7 , wherein generating the two-dimensional contour representation of the corresponding discrete layer comprises projecting a ray through the level set representation of the implicit surface along the milling direction from a top portion of an uppermost discrete layer downwardly to a bottom portion of the corresponding discrete layer, and wherein the setting comprises setting the amount to a maximum of (i) the radius of the smallest milling tool available and (ii) a predefined fraction of the difference, the predefined fraction being greater than zero and less than one.
9. The method of claim 7, comprising: comparing the two-dimensional contour representations to identify at least a first contour representation that is above a second contour representation relative to the milling direction, wherein a distance between a first portion of the first contour representation and a second portion of the second contour representation is below a threshold distance; changing the first portion of the first outline representation to match the second portion of the second outline representation; as well as The first contour representation is modified on either side of the first portion to remove any discontinuities in the first contour representation caused by the change.
10. A method as claimed in claim 5, wherein modifying the topology of the three-dimensional shape includes inserting gaps into the level set representation at locations selected using centerlines generated for at least one of the two-dimensional contour representations to change the implicit surface during at least some of the multiple iterations of the iterative modification.
11. The method of claim 1 , wherein the updating comprises: filtering the current numerical evaluations in the discrete layers to produce filtered physical evaluations that, during the updating, facilitate modification of the geometry of the implicit surface of the three-dimensional shape consistent with the 2.5-axis subtractive manufacturing process; and The current version of the three-dimensional shape is updated based on the filtered physics evaluation.
12. The method of claim 11, wherein the generatively designed three-dimensional shape of the modeled object comprises a level set representation of the implicit surface, and the filtering comprises: finding a maximum value of the current numerical evaluation along the milling direction within a corresponding discrete layer of the discrete layers; as well as The value of the current numerical assessment is reset within the corresponding one of the discrete layers based on the maximum value to produce the filtered physical assessment.
13. The method of claim 12, wherein the current numerical assessment comprises voxel-based stress field data, strain field data, or both, wherein said finding comprises: casting rays parallel to the milling direction through the current version of the three-dimensional shape of the modeled object within respective ones of the discrete layers; and collecting the maximum values of the stress field data and / or the strain field data encountered along each of the rays in the corresponding two-dimensional region of the discrete layer, and wherein the resetting includes setting the stress field data and / or the strain field data in each voxel within the corresponding discrete layer to be equal to the maximum value at the position closest to the voxel in the corresponding two-dimensional region of the discrete layer.
14. The method of claim 1, comprising removing, by the computer-aided design program, any portion of the generatively designed three-dimensional shape of the modeled object that is smaller than a minimum feature size in at least one major axis of the 2.5-axis subtractive manufacturing process.
15. The method of claim 1, wherein said providing comprises saving the generatively designed three-dimensional shape of the modeled object to a persistent storage device for use in fabricating the physical structure using the one or more computer-controlled fabrication systems.
16. The method of claim 1, wherein said providing comprises: generating a tool path specification for a subtractive manufacturing machine according to the 2.5-axis subtractive manufacturing process using the generatively designed three-dimensional shape of the modeled object; as well as At least a portion of the physical structure or a mold for the physical structure is manufactured with the subtractive manufacturing machine using the tool path specification.
17. A system comprising: a non-transitory storage medium having instructions of a computer-aided design program stored thereon; as well as one or more data processing devices configured to execute the instructions of the computer-aided design program so as to cause the one or more data processing devices to: obtaining a design space of a modeled object whose corresponding physical structure is to be manufactured using a 2.5-axis subtractive manufacturing process, one or more design criteria for the modeled object, and one or more in-service load cases for the physical structure; iteratively modifying the generatively designed three-dimensional shape of the modeled object in the design space according to the one or more design criteria and the one or more in-service load cases, including modifying both the geometry of the three-dimensional shape and the topology of the three-dimensional shape, wherein the iterative modification comprises causing the one or more data processing devices, by the instructions of the computer-aided design program, to: perform a numerical simulation of the modeled object according to a current version of the three-dimensional shape and the one or more in-service load cases to produce a current numerical assessment of a physical response of the modeled object; updating the current version of the three-dimensional shape based on the current numerical evaluation of the physical response to produce an updated version of the three-dimensional shape of the modeled object; generating a two-dimensional contour representation of the updated version of the three-dimensional shape, wherein the two-dimensional contour representation corresponds to discrete layers perpendicular to a milling direction of the 2.5-axis subtractive manufacturing process; extruding the two-dimensional contour representation along the milling direction to produce a three-dimensional representation of the updated version of the three-dimensional shape, wherein the three-dimensional representation has sides having normals perpendicular to the milling direction; forming a next version of the three-dimensional shape of the modeled object from a combination of the three-dimensional representations having sides having normals perpendicular to the milling direction; and repeating the iteratively modifying until a predefined number of shape modification iterations have been performed and the generatively designed three-dimensional shape of the modeled object in the design space satisfies the one or more design criteria and the one or more in-service load cases or both; and The generatively designed three-dimensional shape of the modeled object is provided for fabrication of the physical structure using one or more computer-controlled manufacturing systems employing the 2.5-axis subtractive manufacturing process.
18. The system of claim 17, comprising a computer numerically controlled subtractive manufacturing milling machine.
19. A non-transitory computer-readable medium encoding a computer-aided design program operable to cause one or more data processing devices to perform operations comprising: obtaining a design space of a modeled object whose corresponding physical structure is to be manufactured using a 2.5-axis subtractive manufacturing process, one or more design criteria for the modeled object, and one or more in-service load cases for the physical structure; Iteratively modifying a generatively designed three-dimensional shape of the modeled object in the design space according to the one or more design criteria and the one or more in-use load cases, including modifying both the geometry of the three-dimensional shape and the topology of the three-dimensional shape, wherein the iteratively modifying comprises: performing a numerical simulation of the modeled object based on the current version of the three-dimensional shape and the one or more in-service load cases to produce a current numerical estimate of a physical response of the modeled object; updating the current version of the three-dimensional shape based on the current numerical evaluation of the physical response to produce an updated version of the three-dimensional shape of the modeled object; generating a two-dimensional contour representation of the updated version of the three-dimensional shape, wherein the two-dimensional contour representation corresponds to discrete layers perpendicular to a milling direction of the 2.5-axis subtractive manufacturing process; extruding the two-dimensional outline representation along the milling direction to produce a three-dimensional representation of the updated version of the three-dimensional shape, wherein the three-dimensional representation has sides whose normals are perpendicular to the milling direction; forming a next version of the three-dimensional shape of the modeled object from a combination of the three-dimensional representations of the side faces having normals perpendicular to the milling direction; and repeating at least said executing, said updating, said generating, said extruding, and said forming until a predefined number of shape modification iterations have been performed and the generatively designed three-dimensional shape of the modeled object in the design space satisfies the one or more design criteria and the one or more in-use load cases, or both; and The generatively designed three-dimensional shape of the modeled object is provided for fabrication of the physical structure using one or more computer-controlled manufacturing systems employing the 2.5-axis subtractive manufacturing process.
20. The non-transitory computer-readable medium of claim 19, wherein the providing comprises: generating a tool path specification for a subtractive manufacturing machine according to the 2.5-axis subtractive manufacturing process using the generatively designed three-dimensional shape of the modeled object; as well as At least a portion of the physical structure or a mold for the physical structure is manufactured with the subtractive manufacturing machine using the tool path specification.
Citation Information
Patent Citations
Conversion of geometry to boundary representation with facilitated editing for computer aided design and 2.5-axis subtractive manufacturing
US20200151286A1