Computer-aided design with geometry filtering to expedite manufacturing
The CAD program optimizes three-dimensional models by offsetting and filtering profile representations to minimize support structures, enhancing additive manufacturing efficiency and quality.
Patent Information
- Application Number
- JP2022182600
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-11-17
- Filing Date
- 2022-11-15
- Publication Date
- 2026-02-12
- Estimated Expiration
- 2042-11-15
AI Technical Summary
Existing computer-aided design (CAD) systems struggle to efficiently generate three-dimensional models that minimize the need for support structures in additive manufacturing, leading to increased costs and complexity.
A CAD program modifies the three-dimensional shape of a modeled object by extracting and offsetting two-dimensional profile representations for each discrete layer, applying filters to reduce overhang angles and support structures, and iteratively optimizing the geometry to meet design criteria, enabling the generation of shapes well-suited for additive manufacturing.
This approach reduces the amount of support structures required, making additive manufacturing cheaper and simpler, while improving the quality and manufacturability of the resulting shapes.
Smart Images

Figure 0007813213000012 
Figure 0007813213000013 
Figure 0007813213000014
Abstract
Description
[Technical Field]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of priority to prior U.S. Application No. 63 / 280,530, filed November 17, 2021, entitled "COMPUTER AIDED DESIGN WITH GEOMETRIC FILTERING TO FACILIATE MANUFACTURING," which is incorporated herein by reference.
[0002] This specification relates to the computer-aided design of physical structures that can be manufactured using additive manufacturing, subtractive manufacturing, and / or other manufacturing systems and techniques. [Background technology]
[0003] 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 those objects, for example, using computer numerical control (CNC) manufacturing techniques. CAD software typically stores the 3D representation of the geometry of the object being modeled using a boundary representation (B-Rep) format. A B-Rep model is a set of connected surface elements that define the boundaries between solid and non-solid portions of the modeled 3D object. In a B-Rep model (often referred to as B-Rep), the geometry is stored in the computer using flat and precise mathematical surfaces, as opposed to the discrete and approximate surfaces of a mesh model, which can be difficult to work with within a CAD program.
[0004] CAD programs have been used in conjunction with subtractive manufacturing systems and techniques. Subtractive manufacturing refers to any manufacturing process in which a 3D object is created from a stock material (generally a "blank" or "workpiece" larger than the 3D object) by removing portions of the stock material. Such manufacturing processes typically involve the use of multiple CNC machine cutting tools in a series of operations, beginning with roughening, optional semi-finishing, and finishing operations. In addition to CNC machining, other subtractive manufacturing techniques include electrical 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 in which a 3D object is built from raw material (generally a powder, liquid, suspension, or molten solution) 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 material include casting and forging (both hot and cold).
[0005] Additionally, CAD software has been designed to perform automated generation of 3D geometry for one or more parts in a design (known as "topology optimization," "generative design," or "generative modeling," among others). This automated generation of 3D geometry often operates within a "design domain" defined by the user or the CAD software, and typically generates geometry by optimizing design objectives and adhering to design constraints, which can be defined by the user, the CAD software, or a third party. Design objectives may include, but are not limited to, minimizing waste material, minimizing part weight, as well as minimizing part compliance, stress, maximum mass, maximum deflection under load, or other intrinsic characteristics, and are used to drive the shape synthesis process toward a better design. While not required, design objectives are typically established in simulations of the design (linear statics, fluid dynamics, electromagnetics, etc.). Design constraints may include various physical properties or behaviors that must be satisfied in any generated design (requirements for either individual parts or the entire assembly are acceptable); examples include maximum mass, maximum deflection under load, maximum stress, etc.
[0006] Geometric constraints may also be provided, for example, to ensure that the generated shape does not have extremely small features or is more easily realized using a particular manufacturing process. Furthermore, the geometric input to such a 3D geometry generation tool may include one or more user-provided or CAD system-provided "conservation bodies" (representing volumetric regions of the design space that should be filled with material in the final design) or certain "conservation planes" (representing junctions between the design space and adjacent components that should be contacted by the generated 3D geometry) that should always be present in the design. A "conservation body" or "conservation plane" may represent a junction to other parts of the system or a location where boundary conditions should be applied (e.g., mechanical loads and constraints). Other regions where geometry should or should not be generated may be provided as well (e.g., "obstacles" are used to indicate where geometry should not be created). In some cases, the shape synthesis process is performed using a representation of geometry different from that employed by the CAD system. For example, the CAD system may use boundary representations ("B-Rep"), and the geometry generation engine may employ level set functions embedded in a voxel or tetrahedral mesh. Summary of the Invention [Problem to be solved by the invention]
[0007] This specification describes technologies related to the computer-aided design of physical structures using techniques that facilitate manufacturing, such as generative design processes in which a three-dimensional (3D) model of the physical structure is generated to facilitate manufacturing of the physical structure using additive manufacturing systems and techniques by reducing the support structures required to manufacture the physical structure of a designed part. [Means for solving the problem]
[0008] In general, one or more aspects of the subject matter described herein include modifying, by a computer-aided design program, a three-dimensional shape of a modeled object for which a corresponding physical structure will be created using a manufacturing process to produce a modified three-dimensional shape of the modeled object, the modifying including extracting, for each of two or more discrete layers of the three-dimensional shape along a direction associated with the manufacturing process, a two-dimensional profile representation of the three-dimensional shape in a current discrete layer, the two-dimensional profile representation lying in a plane that is perpendicular to the direction associated with the manufacturing process; and extracting the offset two-dimensional profile representation of the current discrete layer. and modifying the next discrete layer using the offset two-dimensional profile representation of the current discrete layer; and providing, via a computer-aided design program, a modified three-dimensional shape of the modeled object for use in manufacturing the physical structure using one or more computer-controlled manufacturing systems employing the manufacturing process.
[0009] The manufacturing process may be an additive manufacturing process, in which case the direction is a build direction of the additive manufacturing process, and the offsetting includes offsetting the two-dimensional profile representation inward by an amount determined according to a maximum overhang angle for the additive manufacturing process.
[0010] In some implementations, the method may include receiving a three-dimensional shape of the modeled object, and the modifying includes preparing the three-dimensional shape of the modeled object for the additive manufacturing process. The three-dimensional shape may be a generatively designed three-dimensional shape of the modeled object. The method may include obtaining, by a computer-aided design program, a design space for the modeled object, one or more design criteria for the modeled object, and iteratively varying, by the computer-aided design program, a geometry of the generatively designed three-dimensional shape of the modeled object within the design space according to the one or more design criteria. The iteratively varying may include: performing a numerical simulation of the modeled object in accordance with the current version of the generatively designed three-dimensional shape and at least one of the one or more design criteria to produce a current numerical evaluation of the modeled object; updating the current version of the generatively designed three-dimensional shape based on the current numerical evaluation to produce an updated version of the generatively designed three-dimensional shape of the modeled object; performing modifications on the updated version to form a next version of the generatively designed three-dimensional shape of the modeled object; and repeating at least the performing, updating, and modifying until a predefined number of shape modification iterations have been performed, until the generatively designed three-dimensional shape of the modeled object in the design space satisfies the one or more design criteria, or both.
[0011] Modifying the next discrete layer may include performing a Boolean join of the offset two-dimensional profile representation with the next discrete layer to produce a larger sized two-dimensional profile for the next discrete layer, and adding geometry to the next discrete layer based on the larger sized two-dimensional profile and a distance between the generative designed three-dimensional shape and a build platform for the additive manufacturing process. In some cases, modifying may include calculating an external skeleton for the next discrete layer, producing a crosslinkable two-dimensional profile representation by expanding the external skeleton according to a maximum crosslink distance for the additive manufacturing process, subtracting the crosslinkable two-dimensional profile representation from the offset two-dimensional profile representation to produce a crosslinked two-dimensional profile representation, performing a Boolean join of the crosslinked two-dimensional profile representation with the next discrete layer to produce a larger sized two-dimensional profile for the next discrete layer, and adding geometry to the next discrete layer based on the larger sized two-dimensional profile. In some implementations, the extracting may include using interpolation to construct a two-dimensional profile representation from the three-dimensional shape in the current discrete layer. In some implementations, the iteratively varying may include optimizing the topology of the three-dimensional shape of the modeled object.
[0012] In some implementations, updating the current version of the generatively designed three-dimensional shape based on the current numerical evaluation as part of iteratively varying the geometry of the 3D shape to produce an updated version of the generatively designed three-dimensional shape of the modeled object may include: for each location in the current version of the generatively designed three-dimensional shape having a surface angle that exceeds a maximum overhang angle for the additive manufacturing process, adjusting an amount of change indicated by the current numerical evaluation at the location according to a build direction to lower the generatively designed three-dimensional shape at the location with respect to a build platform for the additive manufacturing process, and updating the current version of the three-dimensional shape according to the adjusting at each location. In some implementations, the adjusting may be performed according to a scale factor, and the iteratively varying includes increasing the scale factor from zero to a non-zero target value over multiple iterations of the iteratively varying. In some implementations, the amount may be set by an allowed overhang angle, and the offsetting includes reducing the allowed overhang angle from a first angle to a maximum overhang angle for the additive manufacturing process over multiple iterations of the iteratively varying.
[0013] In some examples, iteratively varying the geometry of the generatively designed three-dimensional shape of the modeled object within the design space according to one or more design criteria may include, for each of a plurality of iterations, producing a current version of the generatively designed three-dimensional shape of the modeled object by blending a next version of the generatively designed three-dimensional shape from a previous iteration with an updated version of the generatively designed three-dimensional shape from the previous iteration, wherein the amount of the next version used in the blending increases relative to the amount of the updated version in each of two or more subsequent iterations of the plurality of iterations.
[0014] In some implementations, the generative designed three-dimensional shape of the modeled object may include a level set representation of an implicit surface of the modeled object, and updating includes updating the level set representation according to a shape modification rate calculated for the implicit surface based on the current numerical evaluation.
[0015] In some implementations, providing a modified three-dimensional shape of the modeled object for use in manufacturing may include generating a toolpath specification for an additive manufacturing machine using the generative designed three-dimensional shape of the modeled object, and manufacturing at least a portion of the physical structure, or a mold for the physical structure, with the additive manufacturing machine using the toolpath specification.
[0016] In some implementations, the manufacturing process includes a casting or molding process, the direction is an extension direction of the casting or molding process, and the offsetting includes offsetting the two-dimensional profile representation outward by an amount determined according to a minimum draft angle for the casting or molding process.
[0017] In some implementations, the amount by which the two-dimensional profile is offset may vary across two or more discrete layers of the three-dimensional shape.
[0018] In some implementations, the manufacturing process includes a molding process having two or more sides, the stretch direction is a first stretch direction of two or more stretch directions corresponding to the two or more sides, the modified three-dimensional shape of the modeled object is an output three-dimensional shape of the modeled object, and the extracting, offsetting, and modifying produce the first modified three-dimensional shape. In these implementations, the modifying may include, for each of two or more discrete layers of the three-dimensional shape along a second stretch direction of the two or more stretch directions, extracting a second two-dimensional profile representation of the three-dimensional shape in the second current discrete layer, the second two-dimensional profile representation existing in a plane perpendicular to the second stretch direction, offsetting the second two-dimensional profile representation outward by an amount to form a second offset two-dimensional profile representation of the second current discrete layer, and modifying the second next discrete layer using the second offset two-dimensional profile representation of the second current discrete layer to produce a second modified three-dimensional shape; and performing a Boolean intersection of the first modified three-dimensional shape and the second modified three-dimensional shape to produce an output three-dimensional shape of the modeled object.
[0019] In some implementations, providing the modified three-dimensional shape of the modeled object for use in manufacturing includes storing the three-dimensional shape of the modeled object in persistent storage for use in manufacturing the physical structure using one or more computer-controlled manufacturing systems.
[0020] One or more aspects of the subject matter described herein may also be embodied in one or more systems including a non-transitory storage medium having computer-aided design program instructions stored thereon and one or more data processing devices configured to execute the computer-aided design program instructions to perform any of one or more methods described herein.
[0021] Particular embodiments of the subject matter described herein may be implemented to achieve one or more of the following advantages: The generative design process may be adapted to produce shapes well suited to additive manufacturing, such as by targeting overhang constraints, and to support considerations required for cost-effective additive manufacturing. Modifying the generated part design to reduce the amount of support structure required makes the additive manufacturing process for the part cheaper and simpler. A pair of filters (which operate differently on the generatively modeled shape) may be applied to the optimization procedure, encouraging shapes that require fewer support structures by reducing the amount of geometry in the 3D model that violates overhang constraints imposed by the additive manufacturing process to be used. The quality of the resulting shape of the part (from the generative design process) can be improved in terms of additive manufacturability and the surface quality of those shapes for the part (after removal of any support structures used during the additive manufacturing of the part) compared to traditional approaches to overhang angle control in topology optimization. Modification of the 3D shape of the object may be used to produce shapes well suited to other manufacturing processes, such as casting and molding processes. Modifications may be tailored to suit single or double sided casting or molding processes to produce shapes that are easier to manufacture, of higher quality, and associated with fewer resources for post processing, among other examples.
[0022] The details of one or more embodiments of the subject matter described herein 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 explanation of the drawings]
[0023] [Figure 1A]An example embodiment of a system that can be used to perform geometry filtering and / or simulation result filtering during generative design to produce physical structures adapted to facilitate manufacturing using additive manufacturing, subtractive manufacturing, and / or other manufacturing systems and techniques is presented. [Figure 1B] 1 illustrates an example of a process for generative design with geometry filtering adapted to fabricate physical structures using additive manufacturing processes. [Figure 1C] 1 illustrates an example of a Fused Filament Modeling process associated with an overhanging "overhang" issue. [Figure 1D] 10 shows an example of an overhang angle relative to a surface normal and a build direction of an additive manufacturing process. [Figure 2A] An example implementation of a process for generative design modification based on geometry filtering is presented, which produces a new 3D model of a part that reduces (or eliminates) the support structures required to fabricate the physical structure of the designed part during the additive manufacturing process. [Figure 2B] An example of a process is shown that provides a 3D shape of a modeled object that is modified through successive iterations of an optimization loop to yield an optimized design according to one or more constraints (e.g., mass, maximum stress, and manufacturability) that are suitable for optimization for manufacturing a physical structure by an additive manufacturing process. [Figure 2C] An example of a process for generating a 3D shape of a modeled object by applying simulation result filtering (e.g., advection velocity filtering) to determine the movement of the object's shape boundary and adjust the shape evolution to improve its manufacturability is shown. [Figure 3] An example of a process for modifying the 3D shape of a modeled object in layers by offsetting profile representations in discrete layers of the defined three-dimensional shape along directions associated with the manufacturing process to encourage the creation of a 3D model that is compatible with the additive manufacturing process is shown. [Figure 4]1 illustrates an example of a process of iterative topology optimization of an input polygonal mesh of an object based on simulation results filtering (e.g., advection velocity filtering) during generative design to generate an output polygonal mesh that can be used to improve the manufacturability of the object. [Figure 5] An example of a process for modifying the 3D shape of an object by applying geometric filtering to generate a profile in the case of high curvature and provide a modified three-dimensional shape of the object for use in manufacturing is shown. [Figure 6] 10 illustrates an example of a process for modifying the three-dimensional shape of a box by applying geometric filtering to provide a modified three-dimensional shape of the object for use in manufacturing. [Figure 7A] 10 shows an example of a 3D shape before and after applying a geometry filter to generate a modified 3D shape with minimized support material that needs to be used when manufacturing with an additive manufacturing process. [Figure 7B] 10 shows an example of a 3D shape before and after applying a geometry filter to generate a modified 3D shape with minimized support material that needs to be used when manufacturing with an additive manufacturing process. [Figure 7C] FIG. 10 shows an example of a 3D shape, presented in a cutaway view, generated after applying a geometry filter to generate a modified 3D shape with minimized support material that needs to be used when manufacturing by an additive manufacturing process. [Figure 8] An example of a process for generating an output 3D shape that matches a manufactured physical structure by using geometry filtering with and without considering bridging effects in regions of overhanging geometry is shown. [Figure 9] 10 illustrates an example of a casting process that includes offsetting the two-dimensional profile representation outward by an amount determined according to a minimum draft angle for the casting process. [Figure 10A]Figure 1 shows a comparison of the 3D shapes of GE bracket objects generated by either applying or not applying an additional overhang constraint when applying geometry filtering and velocity filtering to prepare the design for additive manufacturing. [Figure 10B] Figure 1 shows the results of comparing the 3D shape of a triple clamp object with and without applying an additional overhang constraint when applying geometry filtering and velocity filtering to prepare the design for additive manufacturing. [Figure 11] 1 is a schematic diagram of a data processing system including a data processing device that can be programmed as a client or a server. DETAILED DESCRIPTION OF THE INVENTION
[0024] Like numbers and designations in the various drawings refer to like elements.
[0025] 1A illustrates an example system that can be used to perform geometry filtering and / or simulation result filtering during generative design to produce physical structures that are compatible with manufacturing using additive manufacturing, subtractive manufacturing, and / or other manufacturing systems and techniques. Computer 110 includes processor 112 and memory 114. Computer 110 may be connected to network 140, which may be a private network, a public network, a virtual private network, or the like. Processor 112 may be one or more hardware processors, each of which may include multiple processor cores. Memory 114 may include both volatile and non-volatile memory, such as random access memory (RAM) and flash RAM. Computer 110 may include various types of computer storage media and devices, including memory 114 for storing instructions of programs running on processor 112, including computer-aided design (CAD) program(s) 116 that implement three-dimensional (3D) modeling functions and include one or more generative design steps for topology optimization with numerical simulation and geometry filtering (e.g., using at least one level set method as described) or topology optimization without numerical simulation and geometry filtering that can be used during the generative design process.
[0026] In some examples, the numerical simulations performed by the systems and techniques described herein can simulate one or more physical properties, and one or more types of simulations can be used to generate a numerical assessment of the physical response (e.g., structural response) of the modeled object. For example, FEA, including linear static finite element analysis (FEA), finite difference method(s), and material point method(s), may be used. Furthermore, simulation of physical properties may include computational fluid dynamics (CFD), acoustic / noise control, heat conduction, computational injection molding, electrical or electromagnetic flux, and / or material solidification (useful for phase changes in molding processes) simulation. Moreover, the CAD program(s) 116 can potentially implement hole and / or fixture generation techniques to support clamping during manufacturing and / or manufacturing control functions.
[0027] As used herein, CAD refers to any suitable program used to design a physical structure that meets design requirements, regardless of whether the program is capable of interfacing with and / or controlling manufacturing equipment. Thus, CAD program(s) 116 may include computer-aided engineering (CAE) program(s), computer-aided manufacturing (CAM) program(s), etc. Program(s) 116 may run locally on computer 110, remotely on one or more remote computer systems 150 (e.g., one or more server systems of one or more third-party providers accessible by computer 110 via network 140), or both locally and remotely. Thus, CAD program 116 may be two or more programs operating in concert on two or more separate computer processors, in that one or more programs 116 operating locally on computer 110 can offload processing operations (e.g., generative design and / or numerical 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 a shape representation modeler (e.g., a B-Rep modeler) running on a local computer. Moreover, in some implementations, the generative design program(s) may run in the cloud from programmatically invoked APIs (application program interfaces) without user input through a graphical user interface.
[0028] The CAD program(s) 116 present a user interface (UI) 122 on the display device 120 of the computer 110, which can be operated using one or more input devices 118 (e.g., a keyboard and mouse) of the computer 110. It will be noted that, although shown as separate devices in FIG. 1A , the display device 120 and / or the input device 118 may also be integrated with each other and / or with the computer 110, such as a tablet computer (e.g., a touchscreen may be an input / output device 118, 120). Moreover, the computer 110 may include or be part of a virtual reality (VR) system and / or an augmented reality (AR) system. For example, the input / output devices 118, 120 may include a VR / AR input group 118a and / or a VR / AR headset 120a. In either case, a user 160 interacts with the CAD program(s) 116 to create and modify 3D model(s), which can be stored in a 3D model document(s) 130.
[0029] An initial 3D model 132 may be input to the generative design process. In some implementations, the starting shape (or “seed geometry”) may include one or more conserved bodies. For example, the 3D model 132 may be various conserved bodies with boundary constraints defined thereon, the seed geometry for the generative design may be formed as a convex hull of the conserved bodies 132, the input conserved geometry 132 may be disjointed modeled solids, and the generative design process is used to generate new 3D geometry that connects the input conserved solids. Generally, the design space 131 for the generative design may be obtained by determining a bounding solid or convex hull for the input model 132, or another technique may be used to obtain a design space that is a volume of space within which a part will be designed during topology optimization. In some cases, a user may explicitly define the design space 131.
[0030] In some implementations, a user 160 can define a topology optimization problem for the generative design process to generate a desired 3D model from a starting 3D model, or the input can be a design space without a specific starting 3D model. Generally, the input design space can be automatically generated or user-defined. It is noted that the generative design process itself can generate starting geometry within the design space. One or more seed models can be used as input to the generative design process to introduce holes at the start of shape evolution to modify the topology of the generative design.
[0031] In some implementations, the shape of a modeled object created using a generative design process or generative modeling for additive manufacturing can be improved by implementing an overhang angle filter to modify the shape to minimize the support material that needs to be used to manufacture the part with an additive manufacturing tool (e.g., a 3D printer). Modifying the 3D shape can adjust the placement of material in the manufactured part design to make it more self-supporting and reduce areas that require external support material during additive manufacturing.
[0032] As described herein, the CAD program(s) 116 implement at least one generative design process that enables the CAD program(s) 116 to automatically generate one or more portions of a 3D model (or the entire 3D model) based on design objective(s) and design constraint(s), i.e., design criteria, and the geometric design may be iteratively optimized based on simulation feedback (e.g., based on numerical simulation). In some examples, multiple 3D models may be simultaneously created by one or more generative design processes and assembled to form a new 3D model. It should be noted that, as used herein, “optimization” (or “optimal”) does not mean that the best of all possible designs is achieved in all cases, but rather that the best (or near-best) design is selected from a finite set of possible designs that can be generated within an allotted time period, given available processing resources.
[0033] The design criteria may be defined by the user 160 or another party and imported into the CAD program(s) 116. The design criteria may include geometric objectives that drive shape (and optionally topology) evolution using an iterative numerical simulation process, with or without physics / physical response simulation. The design criteria may also include physics objectives for the evolution of the structure of the 3D model. For example, the geometric objectives may correspond to simulated physical responses of the 3D model. In some implementations, the generative design process may be a structural generative design process that can be associated with boundary conditions, which can specify in-service load case(s) of the physical structure. In some examples, the boundary conditions may be pressure boundary conditions and velocity boundary conditions.
[0034] In some implementations, the design criteria may include structural integrity constraints for individual parts (e.g., a requirement that the part not fall below the structural loads predicted during use of the part) and physical constraints imposed by the larger system (e.g., a requirement that the part be contained within a defined volume so as not to interfere with other part(s) in the system during use).
[0035] Various generative design processes may be used that can optimize the shape and topology of at least a portion of the 3D model. Optimizing the geometric design of a 3D model(s) using CAD program(s) 116 involves topology optimization, which is a lightweighting method in which the optimal distribution of material is determined by minimizing an objective function subject to design constraints (e.g., structural compliance to a volume as a constraint). There are two main categories of topology optimization: density-based approaches and boundary-based approaches. Density-based approaches discretize the volume of a part and assign a density to each discrete cell, such as in a solid isotropic material with penalties (SIMP) method. The density is then driven toward solids and voids while minimizing objective(s) subject to constraints. Boundary-based approaches instead track the shape of external joints of solid parts and move boundaries so that constraints are satisfied and objective(s) are minimized, such as in a level set method.
[0036] As described herein, filtering during topology optimization can guide the generative design process to produce a final shape for the design that facilitates the manufacture of the physical structure. Additive manufacturing is associated with considerations related to the effect of overhanging regions that require external support structures to facilitate manufacturing. Designs that can be manufactured with minimal support structures are cheaper and easier to create. Reducing or eliminating overhanging regions that require external support structures is a consideration when defining the 3D shape of a model for manufacturing by an additive manufacturing process.
[0037] In some examples, such filtering may be performed based on overhang angle optimization to improve the manufacturability of the final shape when provided for additive manufacturing. The designed object may be modified to adjust the 3D shape of the object to define a modified shape that reduces or eliminates overhanging regions that exceed an overhang angle associated with a given additive manufacturing process, which regions may require additional external support structures during that additive manufacturing process.
[0038] In some implementations, the generatively designed 3D shape of the modeled object has a level set representation used during generative modeling of the object. The generatively designed 3D shape of the object may be varied using topology optimization to update the level set representation according to the shape change rate based on numerical simulation evaluation. To track the boundary of the modeled object's shape during topology optimization, a level set representation method may be used, which has the advantage of providing accurate knowledge of the boundary and allowing topology changes as the surface evolves without the need for remeshing. It should be noted that in either case, the shape synthesis process may (and often does) occur using a representation of geometry different from that employed by the CAD program(s) 116 for 3D modeling. For example, the CAD program(s) 116 may use a B-Rep model for the input geometry 132, and the geometry generation engine (e.g., the CAD program(s) 116) in the generative design process may employ a level set function embedded in a voxel or tetrahedral mesh. Further details regarding the generative design process are provided below, such as in connection with Figures 1B, 2B, and 2C.
[0039] Once user 160 is satisfied with the generatively designed 3D model, the 3D model may be stored as 3D model document 130 and / or used to generate another representation of the model (e.g., a toolpath specification for a manufacturing process). This may be done upon request by user 160 or in light of a user's request for another action, such as sending the generatively designed 3D model to a manufacturing machine, e.g., an AM machine such as extrusion AM 170, or other manufacturing machine device, which may be connected directly to computer 110 or via network 140, as shown. This may involve a subsequent process performed on local computer 110 or externally, e.g., based on invoking a cloud service running in the cloud, to further process the generated 3D model (e.g., based on considerations associated with the additive manufacturing process) and then export the 3D model into an electronic document for manufacturing. It will be noted that the electronic document (referred to simply as a document for simplicity) may be a file, but does not necessarily correspond to a file. The document may be stored in part of a file that holds other documents, in a single file dedicated to the document, or in multiple coordinated files. Additionally, a user 160 can save or transmit the 3D model for later use. For example, CAD program(s) 116 can store a document 130 that includes the generated 3D model.
[0040] The CAD program(s) 116 can provide a document 135 (with appropriately formatted toolpath specifications) to a manufacturing machine 170 to create a complete structure 138 from stock material, the physical structure 138 including an optimized topology and shape that facilitates manufacturing, e.g., additive manufacturing as shown. Additive manufacturing involves converting a digital design into a physical part, for example, through the incremental addition of material inside a build volume under computer control. In some additive manufacturing processes, a part may be added layer by layer, starting at the bottom of the part and working upward.
[0041] In some implementations, the manufacturing machine 170 may include a subtractive machine capable of performing subtractive manufacturing processes, typically starting with a solid block of stock material and gradually removing material from the stock. One common subtractive approach is milling, which uses a rotating cutter or router, also known as a "tool" or "bit," to remove material. Milling processes can limit the types of shapes that can be produced because the milling machine must hold the part rigidly and the rotating bit must be able to access the material surface without interference. Other important considerations to be taken into account are vibration of the part during material removal and stress on the bit itself due to the milling process.
[0042] In some implementations, the generated 3D model in CAD program 116 may be first provided for additive manufacturing to one of the manufacturing machines 170, and then to a subtractive machine to perform post-processing on the structure created by additive manufacturing. Different 3D models of a single object may be available for manufacturing parts using additive manufacturing. To perform additive manufacturing and overcome the additive manufacturing overhang angle limitations, different 3D models may be associated with different requirements for support material. In some implementations, a 3D model may be generated to minimize the need for external support material (i.e., additional structure generated outside the manufactured object to support the object, based on the 3D model of the object) by incorporating additional material into the design of the 3D model (e.g., by modifying the shape of the object by applying a geometry overhang angle filter) that can provide self-support for the manufactured object based on the generatively designed 3D model. Such self-support can reduce or even eliminate the need for external support material.
[0043] For example, in the case where a circular beam 132 is to be fabricated as physical structure 138A, external support structure 139A is required because the beam (shown in cross section in FIG. 1A ) overhangs the build plate used during additive manufacturing. One way to reduce the amount of support structure 139A is to lower the beam so that it is closer to the build plate. This reduces the volume of external support structure 139A, but also impacts the performance of the design if enforced too strictly during the generative design process. Nevertheless, providing filters that tend to lower the part design during generative design modeling helps reduce external support material requirements.
[0044] Another way to reduce the amount of support structure is to modify the cross-section of the beam to minimize the size of the area that violates the overhang angle. As shown, the physical structure 138 is reshaped (in cross-section) to look like a balloon (or an inverted teardrop) rather than a ball, which significantly reduces the overall volume of the external support structure 139. Furthermore, it should be noted that this also significantly reduces the contact area between the part 138 and the support structure 139. This provides advantages when it comes to removing the external support structure 139 after the additive manufacturing process is complete, both because there is less area from which the support structure 139 needs to be removed and because there is less surface area of the part 138 that may need to be further processed after removal (e.g., using a finishing, subtractive manufacturing process to remove burrs and imperfections at the point of removal). Examples of processes for applying this inverted teardrop-shaped cross-section to beams and other structures are described in more detail below.
[0045] In various implementations, the CAD program(s) 116 of the system 100 can implement one or more generative design processes as described herein. A generative design process seeks optimal geometry, topology, or both. For example, a generative design process may:
[0046]
number
[0047]
number
[0048] The optimal geometry is sought among alternative designs by minimizing a performance-related objective function subject to constraints such that s is a vector of design variables related to the domain geometry, and u is a vector of state variables (e.g., displacements) that depend on s. Additional constraints (e.g., equilibrium) can be added to the set g i For simplicity, equality constraints are assumed here. The mathematical programming method used to minimize equation (1) may be gradient-based or non-gradient-based. Gradient-based methods (as opposed to non-gradient-based methods) utilize more information associated with design sensitivities, e.g., the derivation of a performance-related objective function with respect to the design variables.
[0049]
number
[0050] is used throughout. In level set-based topology optimization methods, s represents the boundary of a solid region. FIG. 1B shows an example of a process 175 of generative design with geometry filtering adapted for producing physical structures using additive manufacturing processes. In 175A, a design space for an object including one or more design criteria may be obtained by a CAD program, such as CAD program(s) 116 of FIG. 1A, for use in generating a generative 3D model. The design space for a modeled object is the volume within which a part will be designed. The design space may include an encompassing bounding volume that encompasses an initial specification of one or more external shapes of the 3D topology for the object. As described above, the design space may include 3D model(s) designed in or loaded into CAD program(s) 116 that serve as subspaces of the optimization domain of the described generative design process, and / or a set of input solids, e.g., preserved bodies, e.g., B-Reps selected by a user through a user interface such as UI 122 to define subspace(s) that are used to define boundary conditions for generating the generative design geometry, and / or that are saved for use as connection point(s) with other components in a larger or separate 3D model(s).
[0051] The design criteria may include design objective(s) and design constraint(s) for the object. The design objectives may include, but are not limited to, minimizing waste material, minimizing part weight, minimizing part compliance, stress, or other inherent properties, and are used to drive the shape synthesis process toward a better design. While not required, the design objectives are typically anchored in simulations of the design (linear statics, fluid dynamics, electromagnetics, etc.). The design constraints may include various geometric and physical properties or behaviors that must be met in any generated design (requirements for either individual parts or the entire assembly are acceptable); examples include maximum mass, maximum deflection under load, maximum stress, etc.
[0052] The design criteria may also include geometric objectives and constraints for the shape. The geometric constraints may be provided by the user or from the CAD program(s) 116 to ensure certain characteristics of the shape to provide a shape that is easier to manufacture. For example, geometric constraints may be defined to ensure that the generated shape is free of extremely small features. The input geometry may include details about "conservative bodies" that should be present in the design to represent connections to other parts of the system, or identify locations where boundary conditions should be applied (e.g., mechanical loads and constraints).
[0053] Furthermore, different combinations of design parameters and design variables may be used to formulate different generative design processes. In some implementations, the design parameters may include various types of input received through UI 122, such as a selection among different generative design synthesis methods made available by the CAD program(s) in system 100. In some implementations, available generative design synthesis methods may include level set-based topology optimization, which provides a basic level set method for topology optimization. Other generative design synthesis methods are also possible and may be provided by CAD program(s) 116 in system 100. Different combinations of design parameters and design variables may be used, for example, by CAD program(s) 116 in response to input from user 160. For example, user 160 may select different generative design synthesis methods to use within each different design space within a single 3D model.
[0054] Additionally, the one or more design criteria obtained (175A) may include one or more in-service load cases (e.g., one or more boundary conditions defining the one or more in-service load cases) for a physical structure to be manufactured from the generatively designed part. The one or more in-service load cases may be associated with the density of elements in an FEA model to be used by the setup for the numerical simulation, e.g., the optimized 3D topology of the generatively designed part. However, as used herein, "in-service load case" collectively refers to a distinct group of loads and constraints under which part performance is evaluated, and corresponds to one or more sets of boundary conditions for various types of physics simulations, such as fluid flow simulations, electromagnetic (EM) behavior simulations, multiphysics simulations, etc. Thus, various types of boundary conditions, e.g., pressure boundary conditions and / or velocity boundary conditions, may be used.
[0055] Generally, a setup for a numerical simulation may include one or more physical properties to be simulated and one or more types of simulation to be performed, along with potential surrogate modeling or other methods of approximation. In some implementations, the type of numerical simulation is predefined, either for all uses of the program or given a particular context in the program from which the generative design process is initiated. Additionally, a setup for a numerical simulation may include at least one set of loading conditions and / or other physical environment information associated with the type of numerical simulation to be performed.
[0056] With the defined generative design space and design criteria, one or more 3D model(s) may be generated at 175B using one or more generative design processes, for example, by CAD program(s) 116. In some implementations, the generated 3D model(s) may be designed for use in additive manufacturing, subtractive manufacturing (e.g., manufactured using a 2.5-axis subtractive manufacturing process), and / or other manufacturing systems and techniques.
[0057] For example, one or more generative design processes performed by CAD program(s) 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, one or more generative design processes may use the described level set method, where s from equations (1), (2), and (3) represents the boundary of a solid region implicitly represented using one or more level sets, which may be stored as sampled values relative to a 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. 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 level set function values.
[0058] In either case, generating 3D model(s) 175B involves iteratively modifying the generatively designed 3D shape of the modeled object, for example, by CAD program(s) 116. This includes both modifying the geometry of the 3D shape (e.g., by SIMP or level set methods) and modifying the topology of the 3D shape (e.g., adding holes or cavities to modify spatial properties of surfaces that are not affected by persistent deformation without tearing, thereby changing how shape elements are bounded and connected in the 3D model). In some implementations, generating 3D model(s) 175B may employ geometry filtering and / or simulation result filtering (as described in detail herein) in a topology optimization loop to generate one or more generative 3D models by reducing or eliminating the requirement for external support structures.
[0059] The results of the generative design process may be presented to the user, for example, in UI 122 on display device 120, along with an option to accept or reject the design. The option to accept or reject the design may be provided in 175C. For example, 3D models produced by the generative design process may be presented to user 160 in UI 122. In some implementations, the user may select from either the final design or various previous iterations for each design study. In some implementations, two or more 3D models resulting from the generative design process may be presented to the user along with a trade-off analysis of cost of manufacturing versus design complexity, for example, based on the amount of external support structure required or various other quantities of interest. The trade-off analysis can assist user 160 in accepting or rejecting one or more of the presented 3D models.
[0060] If the design is rejected, the process of FIG. 1B may return to obtaining a new design space and / or new design criteria (175A) for use in generating a new generative 3D model, for example, by CAD program(s) 116. If the design is not rejected (175C), the process of FIG. 1B may provide a generatively designed shape and topology for the 3D model of the object (175D), for example, by CAD program(s) 116, with reduced external support structure requirements for building the design by additive manufacturing. In some examples, the designed model may be further post-processed to be adjusted to improve additive manufacturing by requiring fewer support structures. In other words, the filtering described herein may be performed during the shape optimization loop of the generative design process and / or after the generative design process has finished.
[0061] At 175E, a modified 3D model is generated by applying a geometry filter. The geometry filter may implement an overhang angle filter to improve the additive manufacturability of a shape created (e.g., at 175B) using the generative design process in a post-process (as shown), and / or the geometry filter may be applied within an iterative optimization loop of the generative design process 175B (175E). In either or both cases, the 3D model is modified to reduce or eliminate areas requiring external support structures as described throughout this disclosure. Modification may be performed as described for method 200 of FIG. 2A. It should be noted that the 3D model provided at 175D may be a 3D model produced by the generative design synthesis method and / or a post-processed version of the generative design output at 175B (175B). Thus, modifying (175E) may be included in the generative design process 175B and / or providing (175D).
[0062] At 175F, the modified 3D model may be exported to an output format. For example, the 3D model modified (175E) in the generative design process 175B may be exported as a level set field, a polygonal mesh, or a B-Rep body (with assistance from mesh-to-B-Rep technology for conversion), among other examples. In some implementations, a polygonal mesh that can be extracted from the output of a boundary-based generative design process, or generative design data obtained directly from the boundary-based generative design process, may be converted into a boundary representation (B-Rep) model and / or a parametric feature model, for example, by CAD program(s) 116. For example, the generative design data may be level set distance field data obtained directly from the boundary-based generative design process. The boundary representation model or parametric feature model may be editable as sketch geometry and parametric features. In some implementations, the 3D mesh model produced by the generative design synthesis method may be converted into a watertight B-Rep 3D model before being provided (175D).
[0063] At 175G, the exported model is used to manufacture at least a portion of a physical structure. In some implementations, a toolpath specification for an additive manufacturing machine is generated for at least a portion of the generatively designed three-dimensional shape of the modeled object (175G), and a portion of the physical structure (or a mold for the physical structure) is manufactured by the additive manufacturing machine using the toolpath specification (175G). Moreover, both exporting (175F) and manufacturing (175G), as well as modifying (175E), may be included in providing (175D).
[0064] Additive manufacturing may be associated with the challenge of producing shapes that include regions that have no material directly beneath them (“unsupported” or “overhanging” regions). To avoid failure, such regions are made manufacturable through the addition of external support material, which is a sacrificial geometry fabricated beneath the unsupported region whose primary purpose is to mechanically support the next layer during layer-by-layer additive manufacturing. For example, FIG. 1C shows an example of a Fused Filament Fabrication process associated with an overhanging “overhang” challenge.
[0065] The Fused Filament Fabrication process is an example additive manufacturing process associated with challenges when creating a layer-by-layer part, starting from the bottom of the part and moving upward to deliver material. In this process, a printer or other additive manufacturing tool includes an initially empty print bed 177 and a numerically controlled print head 176. The print head 176 receives a feedstock filament 178 that is temporarily melted and squeezed through a nozzle. As the filament cools, it adheres to material directly below and adjacent to the extruded material (such as a filament placed in front of the part) or support structures (e.g., the print bed 177 or artificially added support structures outside the part design). Because the filament is in liquid form when it leaves the nozzle 179, if there is nothing (or nearly nothing) directly below the filament as it falls from the nozzle 179, the filament will droop as shown at 180.
[0066] As a part is fabricated, the print bed can serve as a support structure onto which the filament is deposited. On subsequent layers, if there is material from the previous layer directly below the currently deposited layer, the filament is supported by the previous layer. To avoid defects, during process planning, areas that do not have material directly below them (“unsupported” or “overhanging” areas) are made manufacturable by the addition of support material, which is a sacrificial geometry fabricated below the unsupported areas. Support material may be used to mechanically support new subsequent layers deposited from the print head 176.
[0067] Support materials are support structures that are not part of the manufactured physical object because they are not included in the 3D model of the physical object (i.e., the support material / structure is external to the physical structure defined by the 3D model). Support materials are external structures designed to support an already defined object, provided for manufacturing based on a pre-generated 3D model. Such support materials may be removed after additive manufacturing. In contrast, objects may be designed to include portions (inside the 3D model design) that modify the physical structure of the modeled object (i.e., the support portions are defined in the 3D model of the physical object) to facilitate manufacturing of the physical object by an additive manufacturing process.
[0068] Thus, a 3D model of an object (generated by a generative design process as described throughout this specification) may be adjusted or modified to minimize areas in the modeled shape that require external support structures, thereby reducing (or eliminating) the amount of external support material required to produce the additively manufactured design. Such minimization of areas in the modeled shape may be associated with fewer resources being spent on post-processing operations on the manufactured object after additive manufacturing, e.g., fewer finishing operations being isolated after the external support structures. Moreover, such minimization may be associated with fewer resources being spent on designing, preparing, and providing external support structures for additive manufacturing. Thus, additive manufacturing processes improve by modifying the 3D shape used to manufacture physical objects by additive manufacturing. In short, 3D modifications may be made (during and / or after generative design) to help make the physical object more self-supporting during manufacturing, e.g., during 3D printing, molding, or casting.
[0069] FIG. 1D shows an example overhang angle relative to the surface normal and the build direction of an additive manufacturing process. Typically, there is a maximum overhang angle above which external support material is required to ensure successful manufacturing. In the example of FIG. 1D, the overhang angle is identified as α 196. Generally, the overhang angle relates the surface normal to a part to the build direction used for that part. The maximum overhang angle is the maximum overhang angle that can be manufactured using a given additive process.
[0070] Overhang angle α 196 may be defined as the inclination of a build face (or wall, surface) of a part from a normal axis corresponding to build direction b. Overhang angle α 196 is determined at point A on the surface of the 3D shape of the part to be used for manufacturing by an additive manufacturing process. As shown with respect to FIG. 1D , t identifies the tangent at point A, and the overhang angle is defined between the tangent and build direction b. The surface normal is identified by n. In the example shown, sections 197 and 198 (shaded in light gray) correspond to areas where support structures are likely required, and section 199 (shaded in medium gray) defines regions of the shape that certainly require support structures to manufacture the part. Note that for ease of presentation, the example of FIG. 1D is in two dimensions; in three dimensions, there is a perfect plane of tangents perpendicular to surface normal n, and the tangents (from those different tangents in the plane perpendicular to n) are the lines that form the smallest angle with build direction b. Furthermore, the equivalent way to define the overhang angle is 90 degrees -<n,b> and<n,b> is the smaller angle between n and b.
[0071] FIG. 2A illustrates an example process 200 for generative design modification based on geometry filtering that produces a new 3D model of a part that reduces (or eliminates) the support structures required to manufacture the physical structure of the designed part during an additive manufacturing process. The process in FIG. 2A is an example of the modification process in 175E of FIG. 1B. Thus, the process in FIG. 2A may be performed after and / or within generative design process 175B during iterative modification of the generatively designed 3D shape, e.g., using topology optimization. In either case, the modified 3D shape of the modeled object facilitates manufacturing the physical structure for the 3D model by reducing (or eliminating) the need for external support structures during additive manufacturing. Process 200 may be performed by a CAD program similar to CAD program(s) 116 of FIG. 1A. The modification of the 3D shape may be performed for each discrete layer of the 3D shape, and the discrete layers may be defined along a direction associated with the manufacturing process (e.g., the build direction of the additive manufacturing process). Thus, the discrete layers may be defined according to the orientation of the modeled object relative to the build plate on which it is fabricated. In some implementations, modifications may be performed along the negative AM build direction starting from the upper discrete layers in the volume to the lower discrete layers.
[0072] Process 200 may be performed to modify the generative design of a cube based on the filtering described herein, as shown in FIG. 3. At 205, a two-dimensional profile representation of the 3D shape in the current discrete layer is extracted. The two-dimensional profile representation lies in a plane that is perpendicular to a direction associated with the manufacturing process. The 3D shape includes at least two discrete layers. If the manufacturing process is an additive manufacturing process, the direction is the build direction of the process.
[0073] At 210, the two-dimensional profile representation is offset by an amount associated with the manufacturing process to form an offset two-dimensional profile representation of the current discrete layer. In some implementations, when the 3D shape is modified to improve its manufacturability, the offsetting may include offsetting the two-dimensional profile representation inward by an amount determined according to the manufacturing process. In some examples, the 3D shape may be modified for use in additive manufacturing. In other examples, the 3D shape may be modified for use in a casting or molding process. In the case of additive manufacturing, the discrete layers may be determined according to the build direction, and the offsetting of the two-dimensional profile representation inward may be an amount determined according to the maximum overhang angle for the additive manufacturing process. In the case of a casting or molding process, the discrete layers may be determined according to the draw direction (as presented on FIG. 9 ) of the casting or molding process, and the offsetting of the two-dimensional profile representation outward may be an amount determined according to the minimum draft angle for the casting or molding process.
[0074] In some implementations, additive manufacturing of a part may be performed with different materials. Because different materials may have different physical properties (e.g., different viscosities and viscosity of the materials when in molten form), different materials may also have different overhang angles. In some examples, different manufacturing processes (e.g., FFF, SLA, SLM, etc.) may affect the determination of the overhang angle and thus may be associated with different overhang angles. In some examples, process conditions (e.g., melt temperature in FFF) may be a factor that affects the determination of the overhang angle.
[0075] The offset two-dimensional profile representation of the current discrete layer is used to modify the next discrete layer at 215. The next discrete layer may be determined as the subsequent layer swept from the top layer to the bottom layer, where the layers are swept in the opposite direction to the build direction.
[0076] In some implementations, modifications to the next discrete layer may be made by performing a Boolean join of the offset two-dimensional profile representation of the current discrete layer with the next discrete layer to yield a larger sized two-dimensional profile for the next discrete layer, and geometry is added to the next discrete layer based on the larger sized two-dimensional profile. It will be noted that the size of any given layer may not be modified in cases where layers are modified iteratively and the additive manufacturing process does not require support for layers above that given layer, or where draft angles for casting or molding processes are not violated between a given layer and the layer below.
[0077] In some implementations, when a layer is changed, bridging considerations may be taken into account when performing changes to the geometry to create a shape that allows for small areas of overhanging geometry when connecting two self-supporting beams of a face. When changing a next discrete layer during 3D shape modification, an external skeleton for the next discrete layer may be calculated. Based on the external skeleton, a bridgeable two-dimensional profile representation may be created by expanding the external skeleton according to the maximum bridge distance for the additive manufacturing process to be used to manufacture the modeled object. The bridgeable two-dimensional profile representation may be subtracted from the offset two-dimensional profile representation to create a bridged two-dimensional profile representation. A Boolean combination of the bridged two-dimensional profile representations may be performed with the next discrete layer to create a larger-sized two-dimensional profile for the next discrete layer. Geometry may be added to the next discrete layer based on the larger-sized two-dimensional profile. Further details related to additive manufacturing with or without bridging considerations are described in connection with FIG. 8.
[0078] At 217, it is determined whether all discrete layers of the 3D shape have been processed. If it is determined that all layers have not been processed, process 200 proceeds to 215 and repeats for the next identified layer by performing operations 205, 210, and 215. Thus, operations 205, 210, and 215 are performed iteratively to process each of the discrete layers of the 3D shape. Once it is determined that all layers of the 3D shape have been processed to modify each lower layer based on the offset two-dimensional profile of the layer above it, a modified 3D shape is provided at 220 for use in manufacturing.
[0079] In some implementations, the modified 3D shape is also provided for additional modification, simulation, or other rework steps before it is sent for use in manufacturing. Additional processing may be performed in or outside of the CAD program associated with the performed generation of the modified 3D shape. The additional processing may be based on further user input for modification of the generated 3D model. Furthermore, the modified 3D model may undergo simulation procedures and evaluations as described herein to adjust, modify, and / or improve the 3D model based on predefined simulation criteria that may be associated with, among other examples, work materials and manufacturing processes.
[0080] In some implementations, the modified 3D shape may be provided for generation of a toolpath specification for an additive manufacturing machine to use the generative designed 3D shape of the modeled object. At least a portion of the physical structure (or a mold for the physical structure) may be generated by the additive manufacturing machine using the toolpath specification. Further, the modified 3D shape may be provided for storage in persistent storage for use in manufacturing the physical structure using one or more computer-controlled manufacturing systems.
[0081] FIG. 2B illustrates an example of process 228, which provides a 3D shape of the modeled object that is modified through successive iterations of an optimization loop to yield an optimized design according to one or more constraints (e.g., mass, maximum stress, and manufacturability) that are suitable for optimization for manufacturing a physical structure by an additive manufacturing process.
[0082] The process of Figure 2B is an example of predefined process 175B from Figure 1B. Thus, process 228 includes performing iterative modification of the generatively designed 3D shape using a predefined generative design process based on inputs including a design space, a numerical simulation setup, and one or more design criteria, as detailed above. In some implementations, the shape synthesis process employs a bound-based (e.g., level set) method of shape optimization that begins with a starting shape or seed geometry, which is then modified through successive iterations of an optimization loop to produce an "optimized design" that minimizes some quantity of interest (e.g., strain energy) subject to some constraints (e.g., mass, maximum stress, and manufacturability).
[0083] Such modified design may then be further modified based on geometry filtering to produce a new 3D model that reduces (or eliminates) the support structures required to generate the physical structure of the designed part during the additive manufacturing process. Such further modification to adapt the 3D model for use in additive manufacturing with reduced support structure requirements may be performed as described for process 200 from FIG. 2A.
[0084] A shape optimization loop, such as that presented on FIG. 2B, involves iteratively varying the geometry of the 3D shape of the modeled object within a design space and according to design criteria.
[0085] At 230, a numerical simulation is performed on a current model of the object (e.g., a level set representation of the 3D shape's implicit surfaces) according to the object's current 3D shape and one or more design criteria. The design criteria may include boundary conditions that may define in-service load cases or other requirements (e.g., pressure and velocity boundary conditions, geometric objectives for topology evolution) to produce a current numerical evaluation of the modeled object. The current numerical evaluation may be for the modeled object's physical response (e.g., structural response). As described above, various types of numerical simulations may be performed. For example, an FEA simulation may calculate strain energy anywhere inside the volume of the current version of the 3D shape. In either case, the physics simulation of the current 3D shape produces a current numerical evaluation, which may then be used to modify the 3D shape in light of the design criteria.
[0086] In response to the performed numerical simulation, the current 3D shape is then updated at 235. The update is based on the current numerical evaluation. In some implementations, the generative designed 3D shape of the modeled object includes a level set representation of an implicit surface of the modeled object, and updating (235) includes updating the level set representation according to a shape change rate calculated for the implicit surface based on the current physics evaluation. For example, the strain energy field inside the volume (as determined by the numerical simulation) may be converted to a velocity field on the surface of the volume, and the velocity at each point can be advected to move the geometry toward a more optimal shape and update the shape by moving each portion of the boundary according to that velocity.
[0087] Various types of updating 235 steps may be used. For example, updating 235 may include performing simulation result filtering, as described in more detail below in connection with FIG. 4. Additionally, the 3D shape of the modeled object may be represented in different formats during different processing stages, such as representing the 3D shape using a grid of cubic voxels for simulation, using an implicit shape for shape update, and using a polygonal mesh for export of the generative design.
[0088] At 240, the updated 3D shape is provided (at 235) for modification to form a next version of the 3D shape of the modeled object. The modifying (240) may be to optimize the topology of the 3D shape for additive manufacturing. In some implementations, the modifying is to apply a geometry filter to the 3D shape to offset profiles from the shape's layers by a predefined amount associated with the additive manufacturing process to define a new 3D model that can support the creation of physical structures via additive manufacturing techniques that require fewer support structures as described throughout this specification. The modifying (240) may be the same as or substantially similar to the performed operations 205, 210, 215, and 217 of process 200 of FIG. 2A. The modifying at 240 is performed to change the 3D shape to facilitate additive manufacturing by reducing (or eliminating) external support structures for performing the manufacturing. The modified model produced through the optimization loop (operations 230, 235, and 245) may have an improved shape (and, optionally, topology) that meets the design criteria and is more self-supporting by reducing the support structures required for manufacturing using additive manufacturing tools.
[0089] After each iteration of modification is completed (processing iterations through operations 230, 235, and 240), it may be evaluated at 245 whether the number of iterations processed corresponds to a predefined number of shape modification optimizations to be completed. Additionally or alternatively, it may be evaluated at 245 whether the generatively designed 3D shape satisfies the design criteria for defining the 3D shape (convergence). If the predefined number is reached and / or the current model has not converged to a stable solution that meets the design criteria, method 228 may proceed with subsequent iterations to perform operations 230, 235, and 240. Once the predefined number of iterations is completed and / or the 3D model has converged to a stable solution that meets the design criteria, a modified 3D shape of the modeled object is provided at 250 for use in manufacturing, e.g., additive manufacturing. In some examples, the optimization of the 3D shape may be stopped in cases where the modifications do not change (or do not significantly change) the 3D shape.
[0090] The modified model generated through the loop optimization in Figure 2B may be provided to a CAD program for further modification as described in step 200 of Figure 2A. Thus, the resulting model from Figure 2B may be provided as input for subsequent modification and then provided for use in additive manufacturing. In some cases, the modified model generated through the loop optimization in Figure 2B may be provided directly to an additive manufacturing tool to manufacture the physical structure of the modeled object.
[0091] FIG. 2C illustrates an example of step 258, which generates a 3D shape of a modeled object by applying simulation result filtering (e.g., filtering the advected velocity field generated by an optimizer from the output of a numerical simulation) to determine the movement of the object's shape boundaries and adjust the shape evolution to improve its manufacturability. At 260, a numerical simulation is performed on a current model of the object (e.g., a level set representation of the 3D shape's implicit surfaces) according to the object's current 3D shape and one or more design criteria. The design criteria may include boundary conditions that may define in-service load cases or other requirements (e.g., pressure and velocity boundary conditions, geometric objectives for topology evolution) to generate a current numerical evaluation of the modeled object. The numerical simulation 260 may be identical to or substantially similar to the numerical simulation described at 230 in FIG. 2B. Step 258 may be performed in the context of performing a loop optimization by varying the geometry of the 3D shape within a design space according to one or more design criteria. Varying the geometry may include a topology evolution of the modeled object's 3D shape.
[0092] Based on the performed numerical simulation and the resulting current numerical evaluation of the modeled object, the current 3D version (generatively designed) is updated at 265. Updating (265) is performed for each location in the current version of the 3D shape that has a surface angle exceeding the maximum overhang angle (as previously discussed) for performing additive manufacturing. Updating (265) the geometry of the current 3D shape includes adjusting (at 270) the amount of change indicated by the current numerical evaluation at that location along the build direction to lower the generatively designed 3D shape relative to the build platform of the additive manufacturing process. Further, updating (265) includes updating (275) the current version of the 3D shape according to the adjustment at each location. Updating the current version as described at 275 may correspond to performing a transformation of the volume according to a filtered velocity field before application to the surface of the volume to lower the shape, as described below at 420 of FIG. 4 .
[0093] The applied adjustments at each point on the surface of the shape adjust the shape evolution to make it more manufacturable and encourage "low" designs that can still meet the design criteria, but require less support material during additive manufacturing, because the geometry of the updated shape is generally closer to the build plate in the additive manufacturing machine.
[0094] After applying simulation result filtering (e.g., advection velocity filtering) to update the version of the 3D shape, the updated 3D shape may be provided for further modification based on the geometry filter to form a next version of the generative design 3D shape. The further modifications at 278 may be optional modifications that relate to further improving the 3D shape to be prepared for the additive manufacturing process. The modifications at 278 may correspond to the modifications described for operation 240 of FIG. 2B.
[0095] After each iteration of modification is completed (repeating the process through operations 260, 265, and optionally 278), at 280, the generatively designed 3D shape may be evaluated for convergence (satisfaction of the design criteria for defining the 3D shape) after a predetermined number of shape modification iterations are completed. In other cases, the evaluation at 280 may correspond to the evaluation performed at 245 of FIG. 2B . If the predefined number is not reached and / or the current model has not converged to a stable solution that meets the design criteria, the method 258 may proceed with subsequent iterations to perform operations 260, 265, and optionally 278. Once the predefined number of iterations is completed and / or the 3D model has converged to a stable solution that meets the design criteria, at 285, the modified 3D shape of the modeled object is provided for further modification. In other cases, the modified 3D shape may be provided directly for use in manufacturing, e.g., additive manufacturing.
[0096] The updated 3D shape of the modeled object generated through loop optimization based on simulation result filtering (e.g., advection velocity filtering) and optionally geometry filters as described in Figure 2B may be provided to a CAD program for further modification as described in step 200 of Figure 2A, or may be provided directly for use in an additive manufacturing process. Thus, the resulting model from Figure 2C may be provided as input for subsequent modification and then provided for use in additive manufacturing. Alternatively, the new 3D shape generated through the update and modification operations defined in step 258 may be provided directly to an additive manufacturing tool for producing the physical structure of the modeled object.
[0097] Support material is additional material that is not part of the object and is provided to support additive manufacturing of the object as it is produced, for example, in a layer. The generatively designed 3D shape may be modified and / or adjusted as discussed above and in relation to Figures 1A, 1B, 2A, 2B, and 2C in a manner that improves the shape for additive manufacturing by reducing the requirements for support material for manufacturing.
[0098] For example, the amount of support material required during additive manufacturing can be reduced by adjusting the positioning of an object with respect to the build plate, as shown at 138A in FIG. 1A . In this example beam 138A in FIG. 1A , the volume of support material required to manufacture the beam is reduced. However, such reduction in support material may affect the performance of the resulting physical part design and the quality of the final result (e.g., depending on the reduction criteria). The 3D shape of the beam may be altered to reduce the geometry in the optimized design. For example, such reduction may be performed as described in connection with the simulation result filtering (e.g., advection velocity filtering) described in FIG. 2C . If the geometry is reduced in the optimized design closer to the build plate, the support material requirement can be reduced, or in some cases, eliminated.
[0099] As another example, the 3D shape of the object may be modified, as shown in physical structure 138 of FIG. 1A, to minimize the size of the region that violates the overhang angle. Such modification of the 3D shape to minimize the size of the region that violates the overhang angle may be performed, for example, based on geometry filtering applied to the 3D shape, as described for step 200 of FIG. 2A. Physical structure 138 presents a modified beam shape that reduces both its overall volume as well as its contact area with support structure 139. The shape of the original beam may be modified to form the teardrop shape of physical structure 138 based on the geometry filtering modifications in FIG. 2A (operations 205, 210, and 215).
[0100] In some implementations, initial inputs including a critical overhang angle (i.e., the angle below which a manufacturing process cannot reliably execute to build a physical object) and a build direction (i.e., the orientation on the build board at which the part is fabricated) may be provided to perform geometry filtering to modify the 3D shape to minimize areas of the object that require support material. The critical overhang angle and build direction may depend on the particular manufacturing process and manufacturing configuration.
[0101] 3 illustrates an example process 300 for modifying the 3D shape of a modeled object 310 in layers by offsetting profile representations in discrete layers of the defined three-dimensional shape along directions associated with a manufacturing process that encourages the creation of a 3D model compatible with the additive manufacturing process. The example process 300 substantially corresponds to process 200 of FIG. 2A. The example process 300 includes operations for generative design modification based on geometry filtering that creates a new 3D model of the part that reduces (or eliminates) support structures required to fabricate the physical structure of the designed part during the additive manufacturing process.
[0102] The CAD program may modify the 3D shape of the object 310 based on the geometry filtering using the profile offsetting. When geometry filtering is performed on the 3D shape to offset the profile by an amount associated with a manufacturing process, the 3D shape may be a generatively designed 3D shape, and the geometry of the 3D shape may iteratively change within a design space according to design criteria, for example, as illustrated in FIG. 2B . In some implementations, when the 3D shape is for use in additive manufacturing, the amount for the profile offsetting may be determined according to a maximum overhang angle for the additive manufacturing process.
[0103] In some implementations, performing geometry filtering on the 3D shape of the modeled object can minimize the area of the part that requires support material or structure during additive manufacturing.
[0104] The 3D geometry of the 3D shape may be cut parallel to the build plate 315. Multiple slicing planes, such as slicing plane 320, may be defined to form discrete layers of the 3D shape along directions associated with the manufacturing process. A two-dimensional profile representation of the 3D shape 310 at a given discrete layer may be extracted (e.g., as performed in operation 205 of FIG. 2A). At 330, such profile representation based on slicing plane 320 is presented.
[0105] For a profile in a current discrete layer to be manufacturable without support (or with reduced requirements therefor), the layer below that profile should provide some region (geometry) below at least some portion of the current discrete layer that supports the profile such that it does not have an overhang angle with respect to the underlying layer that is greater than a critical value associated with manufacturing. Different manufacturing processes and / or tools according to a particular technology may be associated with different limiting requirements for the overhang angle that is acceptable for the manufacturing to be performed.
[0106] In some implementations, some regions or locations within the object to be manufactured may be associated with different overhang angles, and therefore it may be relevant to offset such regions differently when evaluating a single profile representation.
[0107] At 330, a current 2D profile representation of the 3D shape at the current layer corresponding to the slice plane 320 is extracted and presented. The 2D profile representation 330 is taken from a layer (corresponding to the slice plane 320) that is perpendicular to a direction associated with fabrication. In some examples, the fabrication direction may be perpendicular to the build plate 315.
[0108] A profile offset curve 340 is defined for the 2D profile representation 330. The offset curve 340 may be determined as described in operation 210 of FIG. 2A. The distance between the discrete layers defined for the 3D shape 310 may be evaluated. If the distance between layer 320 of the 2D profile 330 and the layer below it (not shown) is h, then the offset curve 340 may be defined to offset the 2D profile 320 by an amount equal to a value determined according to equation (4) below:
[0109]
number
[0110] If the offset amount used to define offset curve 340 is determined based on the overhang angle of the manufacturing process along with the distance between the layer containing 2D profile 330 and the layer below it (i.e., equal to h), the layer below 2D profile 330 containing offset curve 340 will support the current layer containing 2D profile 330 in most places.
[0111] In example process 300, a geometry filter using profile offsetting may be implemented for the defined discrete layers of the 3D shape 310 by sweeping the layers from the top to the bottom of the volume along a negative build direction. For example, as described in this example, if an additive manufacturing process is to be used to manufacture an object based on the modified 3D shape based on the geometry filter, the build direction is from the bottom to the top layer. In this example, as the layers of the 3D shape are processed, they are processed in reverse to the build direction, i.e., starting from the top layer and working through the underlying layers until the bottom layer is reached.
[0112] For each layer of the voxel part in the slice plane (e.g., parallel to the build plate 315), a profile of the part is extracted (as shown at 330). The profile may be offset inward by an amount associated with the manufacturing process (e.g., as described in equation (4)), and a Boolean join of the offset profile with the 2D profile extracted from the layer below it may be performed (at 330).
[0113] In some implementations, such geometry filtering using profile offsetting may be applied as part of an iterative loop optimization process to generatively design 3D shapes within a design space that meet predefined design criteria. The incorporation of geometry filtering as part of such a process may be similar to the process described in Figures 2B and 2C.
[0114] Based on the numerical evaluation, geometry filtering may be iteratively applied to each discrete layer of the 3D shape. By incorporating geometry filtering as part of iteratively updating the 3D shape to meet design criteria and evolve the topology of the part, the final result of the modifications can ensure that the result 3D shape (updated according to simulation evaluation and modified based on geometry filtering using profile offsetting) minimizes the support required. Furthermore, because the shape is generated based on simulation and optimization considerations, the iterative nature of the shape modification process can be utilized, for example, to incorporate additional material to strengthen the part (such as by offsetting the shape as described in step 300).
[0115] The generated modified 3D shape of the modeled object is not necessarily completely self-supporting. In some cases, the offset curve cannot support the layers above it when it encounters an impact (or cusp) in the distance field. This can occur when there is an area of high curvature (as shown in FIG. 5) or when a set of surfaces collapses into one another (as shown in FIG. 6). In those cases, small regions of overhang violations exist, and support structures are required. However, the regions requiring support structures may be primarily lines and points instead of large areas, thus minimizing the amount of support material required. Because support material requirements can be minimized, their minimization may be associated with lower costs of post-processing manufactured parts to remove extraneous support material.
[0116] 4 shows an example process 400 of iterative topology optimization of an input polygonal mesh of an object based on simulation result filtering (e.g., advection velocity filtering) during generative design to generate an output polygonal mesh that can be used to improve the manufacturability of the object. In some implementations, the simulation result filtering may be performed as described in operation 265 of FIG. 2C.
[0117] Example process 400 is for simulation filtering during generative design to encourage the creation of 3D models that are compatible with manufacturing processes (e.g., subtractive or additive manufacturing). Process 400 is a specific level set topology optimization process that can be used to create an "optimized" design or "final outcome" that minimizes some quantity of interest (e.g., strain energy) subject to design constraints (e.g., mass, maximum stress, and manufacturability, among other examples).
[0118] Process 400 is an iterative process that includes performing 410 a physical and / or physics simulation of the current 3D shape of the object to be manufactured. The simulation may be performed to calculate strain energy inside the object's volume. The simulation may be performed on the input shape 400, which may be provided as an input polygonal mesh. The simulation may produce 415 a current numerical estimate of the object's physical response. In the illustrated embodiment, the numerical estimate 415 of the physical response is a strain energy field, although other types of physical estimates may also be used by the systems and techniques described herein. The physics simulator may produce stress, strain energy, etc. fields anywhere inside the modeled part's volume, which the shape optimizer may convert to a velocity field. This conversion from simulated fields to velocity may be as simple as scaling and offsetting the fields to achieve the desired volume reduction. At 420, the strain energy field inside the modeled part is converted to a velocity field relative to the surface of the volume to improve the shape. The transformation supports shape evolution according to velocity at each point by moving the part geometry towards a better optimized shape according to simulation evaluation.
[0119] At 425, the shape is updated by moving each portion of the boundary according to its velocity. When the shape is updated, it may be represented as an implicit shape (e.g., in a level set representation). In some implementations, the simulation, transformation, and update operations are performed iteratively until the 3D shape achieves a form that remains unchanged between subsequent iterations. In other examples, the operations are repeated until an exit condition is met. The exit condition may be a predefined condition for the optimized result of the 3D model. During the optimization process (steps 410, 415, 420, and 425), the shape undergoing modification is required to remain within a fixed design domain. The design domain may include user-defined regions, such as "conservative bodies," that are required to remain filled with material throughout the optimization process.
[0120] When the shape is refined according to velocity (at 420), a velocity field 435 is defined for the surface of the shape. It is determined how far the shape boundary should move at each point. The velocity field is defined as a scalar field, and the velocity field is filtered to adjust the shape evolution to make it more manufacturable. 3D shape adjustments to lower the design's position according to the build direction may be performed as described in 270 of FIG. 2C. The use of velocity filtering as described in FIG. 2C encourages the creation of "low" designs that meet design criteria (e.g., mechanical criteria) but require less support material during additive manufacturing. The shape generated based on velocity filtering to modify the shape provides a geometry that more closely matches the build plate of the manufacturing tool. The velocity field modification includes subtracting an amount dependent on the surface normal direction, the build direction, and the critical overhang angle. The modification may be applied to those surfaces of the shape that exceed the overhang angle. The strength of the velocity filtering's effect on the changes to the shape may be controlled by applying a scalar factor to monitor the shape evolution.
[0121] For example, the velocity field may be defined according to equation (5):
[0122]
number
[0123] where Vn is the velocity field, ∇φ is a quantity dependent on the subtracted surface, d is the build direction, and the critical overhang angle is represented by α0. R is a ramp function that ensures that the changes are only applied to regions beyond the overhang angle. By applying the velocity field as defined in equation (5), a lower design may be generated that still meets the design criteria.
[0124] In another implementation, a simple constant downward velocity may also be used to filter the velocity field. Such a simple velocity may follow equation (6):
[0125]
number
[0126] The filtered physics evaluation updates the current version of the 3D shape according to the calculated shape change velocities for the implicit surfaces (e.g., in the level set representation). The velocity field of the current 3D shape of the modeled object may be used to modify the 3D shape.
[0127] The current 3D shape is updated (425) by moving the boundary of the 3D shape according to the calculated shape change rate, and the optimization loop is repeated until a predefined number of iterations is completed, convergence is achieved, or no significant changes to the shape are made over a predefined number of iterations. Once the optimization loop has finished processing the shape, an output (e.g., a polygonal mesh representation of the object's shape) is provided (430).
[0128] FIG. 5 illustrates an example process 500 for modifying the 3D shape of an object 510 by applying geometry filtering to generate a profile with high curvature and provide a modified 3D shape of the object for use in manufacturing. The modification of the object 510 may be performed, for example, as described in FIGS. 2A, 2B, 2C, and 3. The example process 500 applies geometry filtering using profile offsetting to create a teardrop shape as previously discussed. In some implementations, the generation of such a teardrop shape may be performed by offsetting the profile by an amount corresponding to the maximum overhang angle associated with the additive manufacturing process. The 3D shape of the object 510 is associated with an area of high curvature. The beam may be processed layer-by-layer based on cutting the 3D shape (and defining the discrete layers of the 3D shape along the direction of manufacturing) to offset the two-dimensional profile representation of the 3D shape in each discrete layer corresponding to the slice. The resulting profile has high curvature. For example, 520 illustrates an example extracted 2D profile and its offset. The offset may be defined as described in Figure 3. At 530, a modified 3D shape generated based on the geometry filtering is provided.
[0129] FIG. 6 illustrates an example process 600 for modifying a three-dimensional shape of box 660 by applying geometric filtering to provide a modified three-dimensional shape of an object for use in manufacturing. The 3D shape of box 660 has mutually recessed surfaces. 3D shape 660 may be processed, for example, as described above in FIGS. 2A, 2B, 2C, and 3. 3D shape 660 may be modified by offsetting each of the determined discrete layers of the 3D shape along the direction of the manufacturing process by an amount associated with manufacturing, as discussed in FIG. 3. Profile 670 corresponds to an example 2D profile cut from 3D shape 660. In some cases, a profile such as profile 670 may be linearly offset based on the offset amount.
[0130] Based on geometry filtering using profile offsetting, 3D shape 660 may be modified to provide new 3D shape 680.
[0131] Both shapes 530 and 680 output from geometry filtering using profile offset do not result in self-supporting structures, but reduce the need for support structures to be used during manufacturing, such as additive manufacturing.
[0132] Table 1 below contains pseudocode for geometry filtering using profile offsets as described throughout this specification, for example, in FIGS.
[0133] [Table 1]
[0134] The utility function SliceVolumeTopToBottom (on line 1 of Table 1) divides a 3D voxel volume into one voxel-thick layers (or slices), where each entry in the layer list is a 2D array of voxels containing the same values as the corresponding slice in the 3D volume. Slices may be taken perpendicular (or substantially perpendicular) to the build direction. It may be necessary to define slices as vertical, to provide them as axis-aligned and ordered from top to bottom (i.e., along the negative build direction).
[0135] The volume of the object's 3D shape may be cut into one voxel thick layers, maintaining a one-to-one correspondence between pixels (in the 2D domain) and voxels in the 3D domain in each layer.
[0136] A MakeEmptyLayer function may be invoked to produce a 2D layer of the same size and shape as the layer extracted from the volume but without geometry. In some implementations, the 2D profile representation is a 2D level set. BooleanUnion is a routine (or procedure) that can combine two 2D profile representations (e.g., as a level set) by taking a pixel-wise minimum.
[0137] Renormalization may be applied to the combined 2D profile representation. For example, a level set renormalization routine can turn the 2D level set output from BooleanUnion into a signed distance field, keeping the zero contour position fixed and updating values at the level set value so that the gradient has unit magnitude anywhere. An offset function is used to perform an offset on the signed distance field by subtracting a predefined constant from the value of every voxel, so that positive offset values shift the zero contour position outward and negative values shift the zero contour position inward.
[0138] The AssembleVolumeFromSlices procedure reconstructs 3D shape from slice data. Table 2 below contains pseudocode for the AssembleVolumeFromSlices procedure.
[0139] [Table 2]
[0140] The algorithm implemented in the AssembleVolumeFromSlices procedure can add additional geometry to the input in the form of input geometry voxels for pixels based on the values from the layersOut list (based on the invocation of the min() function in line 9). If the support geometry extends beyond the intrinsic bottom of the part, an explicit "build plate" operation is performed to ensure that such geometry does not continue to the bottom of the volume. To accommodate this, the bottom coordinate of the part as seen from the build direction may be calculated by GetBottomDepth. Then, for each layer, the distance from the bottom of the part is calculated (based on the distFromBottom variable), and the calculated distance is used to perform a Boolean intersection of the supported shape with the half-space defined by the plane perpendicular to the build direction at the bottom depth (this is implemented by the max function in line 9).
[0141] The threshold (on line 7) limits the geometry updates so that updates can occur only in regions where the output layer differs significantly from the input layer. The threshold may be zero or some small value. In some cases, the threshold may be defined to be the narrowest bandwidth. Alternatively, pixel-wise differences between the input and output layers may be evaluated and compared to the threshold.
[0142] The GetBottomDepth() function finds the minimum of the point coordinate dot product for a point on a surface and a bdir vector. Similarly, the depth of a plane is the dot product between a point on the plane and a bdir vector. The VoxelFromPixel function inverts the mapping used in the SliceVolumeTopToBottom function to recover the source voxels originally used to populate the layer's pixels. In some implementations, such data may be stored as a lookup table when the original cutting is later performed and used at runtime.
[0143] 7A and 7B show example 3D shapes before and after applying a geometry filter to generate a modified 3D shape with minimized support material that needs to be used when manufacturing using an additive manufacturing process. FIGS. 7A and 7B include a 3D shape 700 before applying a geometry filter and a 3D shape 710 provided after applying the geometry filter. The applied geometry filter can use profile offsetting as discussed throughout this specification, for example, in FIGS. 2A, 2B, 2C, 5, 6A, and 6B. A 3D shape 710 is provided after applying modifications to each discrete layer of the 3D shape 700, defined along a direction associated with the manufacturing process. The 3D shape 710 is a generated shape that illustrates the effect of the geometry filter using profile offsetting by amount (e.g., based on overhang angle) on the design.
[0144] Figure 7B shows a design identical to the one associated with Figure 7A, but provides a generated shape after applying a geometry filter in which differences 720 from the original design are highlighted with lighter shading. When applied to the original design of Figure 7A, the geometry filter generates a cusp feature in the modified shape 710 located below the cylindrical region corresponding to the original design (see label A in Figure 7B) to allow the shape to be supported by a small column of support structure rather than the larger area of support required for the unmodified geometry.
[0145] A similar result can be seen by applying an offset to the 3D shape 700 around the concave region B of 710 modified by a tapered geometry that terminates at the line requiring support, instead of supporting the bulkier area.
[0146] The label C refers to a beam having a desired tapered or teardrop-shaped profile.
[0147] FIG. 7C shows an example 3D shape, presented in a cutaway view, generated after applying a geometry filter to generate a modified 3D shape with minimized support material that needs to be used when manufacturing using additive manufacturing processes.
[0148] 7C shows a cross-sectional view 730 of the 3D shape 710. The cross-sectional view 730 shows a teardrop-shaped profile modification (e.g., teardrop-shaped profile 740) associated with a modification performed on the 3D shape 710 based on geometry filtering using profile offsetting.
[0149] 7B indicates a region where the original design had an overhanging region that could have been completely corrected. The portion of modified 3D shape 710 in region E is an area that was generated by the geometry filter and supported by the existing geometry of modified 3D shape 710.
[0150] In some implementations, implementations of geometry filters with profile offsetting may require a one-to-one correspondence between pixels in each layer and voxels in the 3D volume. To enable such a correspondence, some constraint on the build direction, which may be along one of the main directions (X, Y, Z), may be implemented. In some cases, trilinear interpolation may be used to build layers from the input volume to constrain the build direction and maintain the required one-to-one correspondence. In such cases, the layers may form voxel volumes that are rotated relative to the input voxel volume. When reassembling the volume from the layers, a build-direction-aligned volume may be constructed based on data from the layersOut data, and trilinear interpolation may then be applied to determine new values corresponding to each pixel in the original volume geometry.
[0151] In some implementations, overhang angle-based filtering may be applied at each optimization iteration during the generative design process. Such filtering may include velocity filtering (e.g., as illustrated in FIG. 2C ), geometry filtering (e.g., as illustrated in FIGS. 2A, 2B, 2C, 5, 6A, and 6B), or both. In some other implementations, filtering may be implemented such that a set of iterations (or portions of a shape) is performed and only after the portion of the shape has gone through some optimization (e.g., based on simulation evaluation). In such implementations, filtering may be ramped up at certain stages of the optimization process or may be applied at the end of the process.
[0152] For implementations in which a velocity filter is incorporated into the 3D shape optimization process, the value of μ may be slowly increased from 0 to its target value, which slowly increases the degree to which the velocity filter influences the shape evolution.
[0153] For implementations in which a geometry filter is incorporated into the 3D shape optimization process, filtering may be implemented by starting with corrections associated with very high overhang angles (close to 90 degrees, corresponding to "all hang allowed") until the overhang angle used reaches a target value, and then slowly reducing the overhang angle used to offset the profile. Alternately, instead of directly applying the result of the geometry filter to the input volume, geometry filtering may be implemented by offsetting it by an amount fused with a scalar fusion factor β, so that the offset result is the sum of β times the input (unprocessed) signed distance field plus (1-β) times the output (processed) signed distance field. In some implementations, the current version of the 3D shape may be produced by blending a next version of the 3D shape from a previous iteration with an updated version of the 3D shape from the previous iteration based on the blending. The amount of the next version that can be used in blending may increase relative to the amount of the updated version in each of multiple subsequent iterations from the multi-iteration process.
[0154] In some implementations, the blending process may be performed until none of the updated versions are used as the current version of the 3D shape in the next iteration of the change (or modification), and all of the next versions are used. The decision of whether to continue blending until such a criterion is reached may be reduced, for example, to a certain percentage of blending, which can be thought of as a threshold blending, at which point blending may cease.
[0155] The introduction and enforcement of filtering during the generative design process may be performed either linearly or nonlinearly. In some instances where a geometry filter with solid fusion is applied, the ramp-up of the geometry filter may be performed as a quasi-linear ramp, since some of the added material from filtering in previous iterations is still present, thus creating a compounding effect.
[0156] In some implementations, additive manufacturing allows for "bridging" that allows for small areas of overhanging geometry to exist when connecting two self-supporting beams of a face. The geometry filtering present in Figures 7B and 7C does not account for such "bridging" effects. In some implementations, geometry filtering may be provided that accommodates bridging.
[0157] 8 shows an example process 800 for generating an output 3D shape that conforms to a manufactured physical structure by using geometry filtering with and without considering bridging effects in regions of overhanging geometry. Example process 800 modifies the generative designed 3D shape of the part generated as described in step 200 of FIG. 2A , step 228 of FIG. 2B , step 258 of FIG. 2C , and throughout this specification, and the generation of the output model allows for "bridging" effects to be enforced, and either allows or does not allow (on the left side of 810) overhanging geometry to be present when connecting self-supporting regions or faces (as presented on the right side of 820).
[0158] In one embodiment, process 800 involves computing an external shape skeleton for each 2D layer during processing of the 3D shape of the modeled object and identifying areas where the skeleton significantly intersects with the offset of the layer above. In those cases, the skeleton can be refreshed and a small tool geometry can be constructed by subtracting it from the geometry required to support the layer above.
[0159] An input model 805 is received. The input model 805 is an arch, and at 815 the arch can be imagined presented from a bird's-eye view, with the build direction extending out of the page, extending the shape far beneath the upper layers. In some implementations, such geometry may be slightly modified to reduce the area of overhang at the center of the arch and provide it in a shape that is easier to manufacture.
[0160] In some implementations, the 3D model may be implemented as described herein and according to implementations that apply filtering, such as a geometry filter using profile offsetting, to generate a 3D model that can be used to manufacture the arch. Such modification of the 3D model may be performed without considering the "bridging" effect.
[0161] If geometry filtering is used to modify the input model 805 to generate the output modified 3D shape at 810, the 3D shape may be truncated (as previously discussed) as shown at 815. To obtain geometry that needs to be supported by layers below the current layer (a) 815, an offset, i.e.,
[0162]
number
[0163] may be determined.
[0164] The next layer (subsequently identified layer along the direction of construction) below the current layer 815 may have a 2D profile slice b (profile b 825);
[0165]
number
[0166] The binding of a and b to layer b can set the output content of profile 830. Based on such geometry filtering, an output model 840 may be generated. The geometry filter applied to input model 805, when not applying bridge considerations, fills the entire inside of the arch, leaving a solid block.
[0167] In some implementations, bridging considerations may be taken into account when implementing filtering. For example, whether to implement bridging may be a configuration parameter for the generative design process. The configuration parameter may either be set by a user or provided by another system or application.
[0168] At 820, bridging considerations are taken into account when modifying the input model 805. To implement bridging, bonds
[0169]
number
[0170] Instead of directly computing (830), the external skeleton of shape b may be computed. The external skeleton may be defined as the center of a set of circles that are the entire exterior of b and touch surfaces in at least two planes. The external skeleton may be filtered such that the angle (ψ 850) between the vectors to the two contact points is greater than a predefined number of degrees (e.g., 110 degrees).
[0171] The skeleton is shown at 860. The skeleton may be "refreshed" by expanding the balls around each skeleton point by a ball diameter set by the maximum bridging distance. The maximum bridging distance may be a fixed value or may be process-dependent (e.g., dependent on the particular additive manufacturing process used to produce the part based on the output model). This "refreshed" external skeleton 870 may be subtracted from the shape required to support the layers above it, giving the new shape of layer b 870 and the final part shape in subsequent profiles (layers) below profile b shown at 880. An output model 890 may be generated based on implementing geometry filtering due to "bridging" considerations.
[0172] FIG. 9 illustrates an example casting process 900 that includes offsetting the two-dimensional profile representation outward by an amount determined according to a minimum draft angle for the casting process. In some implementations, the generated 3D shape based on modifications according to the filtering described throughout this disclosure may be provided for use in manufacturing processes other than additive manufacturing. Such processes may include casting or molding processes. The direction that can be used to define the discrete layers cut from the original shape may be the stretch direction 940 of either the casting or molding process. To implement filtering that produces a 3D shape compatible with a casting or molding process, the offsetting performed as part of the filtering may be offset outward by an amount determined according to a minimum draft angle for the casting or molding process.
[0173] The filtering described in this disclosure may be adjusted to different configurations to produce one or more stretch direction castable parts. Such different configurations may be implemented by adjusting the implementation of the geometry filtering as shown in Table 1. A change in implementation may be based on switching the sign of the offset operation in line 8 to cause an outward taper with draft angle α (e.g., minimum draft angle) as the shape progresses along what will be the negative stretch direction of the casting or molding process.
[0174] The original shape 910 may be used as input for modification based on implementing a geometry filter using profile offsetting to the profile representation in each discrete layer of the original shape 910 by an amount determined according to the minimum draft angle. At 920, the 3D modified shape is optimized for the defined single-sided molding or casting process by performing geometry filtering as described above.
[0175] A double-sided molding process may be approximated by performing the geometry filtering twice, once for each draw direction, and taking the Boolean intersection of the results as shown at 930. A multi-part molding process may also be approximated by performing a substantially similar modification to determine the resulting output model for manufacturing.
[0176] In some implementations, the offsetting value may vary across different layers by configuring the overhang angle (alpha in Table 1) to depend on the layer's identity (e.g., a function of the layer's ID).
[0177] In some examples, the amount of offsetting may vary within a single layer. For example, this may be done when it is undesirable to add geometry to force a conservation body to meet a specific draft angle. For example, such considerations or constraints on the modifications made may be based on user input for casting constraints and / or predefined user requirements. In such examples, one offset value may be associated with a design space away from the conservation body, and a second (different) offset value may be used near the conservation body. In some cases, the second offset value may be relatively small so that it can be associated with a more subtle correction of the shape near the conservation body. In some examples, a transition region (or zone) may be maintained between the two offset values to keep the overall “offset” field continuous. In some other examples, the use of different offset values within a single layer may be responsive to evaluations related to the geometry in the layer itself. In some implementations, the offsetting may be implemented as a 2D spatially varying offset. In that case, the offset function, such as that presented in Table 1, may be reformulated. An offset function may be defined to accommodate a (potentially) spatially varying 2D "offset field" that contains an amount to offset the 2D profile at each point in the slice. Then, for example, instead of applying the offset as a simple subtraction of a constant alpha, a value may be subtracted pixel-by-pixel within the corresponding location in the offset field. In some cases, implementations may use the "offset field" as a type of velocity field, perform a normal expansion to ensure that the velocity field is uniform along the normal direction of the profile (e.g., standard practice in level set topology optimization), and then use advection to perform the actual offsetting (e.g., with an advection time fixed at 1.0).
[0178] In some implementations, the manufacturing process is a two or more surface molding process in which a first of the multiple stretch directions corresponds to multiple sides. The input 3D shape may be modified, as described in step 200 of FIG. 2A , by implementing a filter using profile offsetting to generate a first modified 3D shape. Further modifications may be implemented based on the first modified 3D shape. The modifications may be performed on each of two or more discrete layers of the 3D shape along a second of the two or more stretch directions. The modification includes generating a second modified 3D shape by extracting a second two-dimensional profile representation of the 3D shape in a second current discrete layer. The second two-dimensional profile representation lies in a plane perpendicular to the second stretch direction. The modification further includes offsetting the second two-dimensional profile representation outward by an amount to form a second offset two-dimensional profile representation of the second current discrete layer. The second next discrete layer is then modified using the second offset two-dimensional profile representation of the second current discrete layer, and the second modified 3D shape is used for a Boolean intersection with the first modified 3D shape to produce an output 3D shape of the modeled object based on the second modified 3D shape.
[0179] FIG. 10A shows a comparison of the 3D shapes of a GE bracket object generated by either applying an additional overhang constraint or not applying an additional overhang constraint when applying geometry filtering and velocity filtering to prepare a design for additive manufacturing. In some implementations, the additional overhang constraint may be taken into account when filtering is performed to modify the 3D shape of the object for use in manufacturing a physical structure using an additive manufacturing tool. The additional overhang constraint may be used when filtering is performed to limit some of the modifications made to the shape in the offsetting iterations. For example, when the additional overhang constraint is used to generate the modified 3D shape as described in step 200 of FIG. 2A , 228 of FIG. 2B , or 258 of FIG. 2C , overhanging cavities in the center of the volume can be removed (e.g., filled with a thin sheet of material) instead of retaining them as cavities.
[0180] As an example, the GE bracket problem 1000 shown with respect to FIG. 10A is used to implement filtering without restrictions considering additional overhang constraints such as at 1010 and 1020, or with additional constraints as shown at 1030 and 1040. Parts 1010 and 1030 show front views of the part without or with additional constraint restrictions. Parts 1020 and 1040 present bottom views of the part without or with overhang constraints. In parts 1030 and 1040, overhang constraints are defined for the overhang for a particular input critical overhang angle.
[0181] Based on filtering, including geometry, velocity, or both, to modify the shape to make the part easier to manufacture, a part shape is generated, as shown for Figure 10A. The geometry and velocity filters can work together to bring some areas of the design downward closer to the build plate and ensure a uniform manufacturable draft for the shape upward to support defined criteria (e.g., manufacturing constraints such as additional constraints).
[0182] The darker highlighted areas in 1020 and 1040 are areas with overhangs greater than 55 degrees. By using geometry filtering and velocity filtering with additional constraints, the areas where the overhang is violated (as shown by the darker shading in 1040) are fewer compared to the areas where the overhang is violated (as shown by the darker shading in 1020).
[0183] FIG. 10B shows the results of comparing the 3D shape of a triple clamp object with either applying an additional overhang constraint (1060) or not applying an additional overhang constraint (1050) when applying geometry filtering and velocity filtering to prepare the design for additive manufacturing.
[0184] When geometry filtering and velocity filtering are applied to provide a modified 3D shape of the triple clamp as shown in FIG. 10B, the geometry filter and velocity filter work together to bring the geometry down toward the build plate and eliminate bars that require additional support. Instead, a larger supportable surface is provided. In this case, there are still areas in the middle of the domain that require support, but the teardrop shape of the bottom of the beam ensures that the required support can be minimized.
[0185] 11 is a schematic diagram of a data processing system including a data processing device 1100, which can be programmed as a client or a server. The data processing device 1100 is connected to one or more computers 1190 through a network 680. While only one computer is shown in FIG. 11 as the data processing device 1100, multiple computers may be used. The data processing device 1100 includes various software modules that may be distributed between an application layer and an operating system. These may include executable and / or interpretable software programs or libraries, including the tools and services of one or more 3D modeling programs 1104 that implement the systems and techniques described above. Thus, the 3D modeling program(s) 1104 may be CAD program(s) 1104 (such as CAD program(s) 116) and may implement one or more generative design processes (e.g., using level set-based method(s) for generative design) for topology optimization and physics simulation operations (Finite Element Analysis (FEA) or others) incorporating geometry filtering, simulation result filtering, and / or cavity generation and insertion, with or without multiple milling directions (e.g., multiple part setups). Additionally, the program(s) 1104 may potentially implement manufacturing control operations (e.g., generating and / or applying toolpath specifications that affect the manufacturing of the designed object). The number of software modules used may vary from one implementation to another. Moreover, the software modules may be distributed over one or more data processing devices connected by one or more computer networks or other suitable communication networks.
[0186] The data processing apparatus 1100 also includes hardware or firmware devices including one or more processors 1112, one or more additional devices 1114, a computer-readable medium 1116, a communication interface 1118, and one or more user interface devices 1120. Each processor 1112 is capable of processing instructions for execution within the data processing apparatus 1100. In some implementations, the processor 1112 is a single-threaded processor or a multi-threaded processor. Each processor 1112 is capable of processing instructions stored on a storage device, such as the computer-readable medium 1116 or one of the additional devices 1114. The data processing apparatus 1100 uses the communication interface 1118 to communicate with one or more computers 1190, for example, over a network 1180. Examples of user interface devices 1120 include a display, a camera, a speaker, a microphone, a tactile feedback device, a keyboard, a mouse, and VR and / or AR equipment. The data processing apparatus 1100 may store instructions that implement operations associated with the program(s) described above, for example, on a computer-readable medium 1116 or one or more additional devices 1114, such as a hard disk device, an optical disk device, a tape device, and a solid-state memory device.
[0187] The subject matter and functional operations described herein may be implemented in digital electronic circuitry, or computer software, firmware, or hardware, including the structures disclosed herein and their structural equivalents, or one or more combinations thereof. Embodiments of the subject matter described herein may be implemented using one or more modules of computer program instructions encoded on a non-transitory computer-readable medium for execution by or to control the operation of a data processing apparatus. The computer-readable medium may be a manufactured product, such as a hard drive or optical disk in a computer system sold through retail channels, or an embedded system. The computer-readable medium may be separately acquired or later encoded with one or more modules of computer program instructions, for example, after distribution of one or more modules of computer program instructions over 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 one or more combinations thereof.
[0188] The term "data processing apparatus" encompasses all apparatus, devices, and machines for processing data, including, by way of example, a programmable processor, a computer, or multiple processors or computers. In addition to hardware, an apparatus may include code that creates an execution environment for a subject computer program, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, a runtime environment, or one or more combinations thereof. Additionally, an apparatus may employ a variety of different computing model infrastructures, such as web services, distributed computing, and grid computing infrastructures.
[0189] A computer program (also known as a program, software, software application, script, or code) may be written in any suitable form of programming language, including a compiled or interpreted language, a declarative or procedural language, and it may be deployed in any suitable form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program may be stored as part of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files storing one or more modules, subprograms, or portions of code). A computer program may be deployed to be executed on one computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a communications network.
[0190] The processes and logic described herein may be performed by one or more programmable processors that execute one or more computer programs to perform functions that operate on input data and generate output. The processes and logic flows may also be performed by, and devices may be implemented as, special purpose logic circuitry, such as an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
[0191] Processors suitable for executing a computer program include, by way of example, both general-purpose and special-purpose microprocessors, as well as one or more processors of any kind of digital computer. Generally, a processor receives instructions and data from a read-only memory or a random-access memory, or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer also includes one or more mass storage devices, such as magnetic disks, magneto-optical disks, or optical disks, for storing data, or is operatively coupled to receive data from or transfer data to them, or both. However, a computer need not have such devices. Moreover, a computer may be incorporated into 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. Suitable devices for storing computer program instructions and data include, by way of example, all types of non-volatile memory, media, and memory devices, including 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 the memory may be supplemented by, or incorporated in, special purpose logic circuitry.
[0192] To provide for user interaction, the embodiments described herein may 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, by which the user can provide input to the computer. Other types of devices may also be used to provide for user interaction; for example, feedback provided to the user may be any suitable form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback, and input from the user may be received in any suitable form, including acoustic input, speech input, or tactile input.
[0193] A computing system may include clients and servers. Clients and servers are generally remote from each other and typically interact through a communications network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. Embodiments of the subject matter described herein may be implemented in a computing system that includes back-end components, such as a data server, or middleware components, such as an application server, or front-end components, such as a client computer having a graphical or browser user interface through which a user can interact with implementations of the subject matter described herein, or any combination of one or more such back-end components, middleware components, or front-end components. The components of the system may be interconnected by any suitable form or medium of digital data communication, e.g., a communications network. Examples of communications 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).
[0194] While this specification includes many implementation details, these should not be construed as limitations on the scope of what is or may be claimed, but rather as descriptions of features specific to particular embodiments of the disclosed subject matter. Certain features described herein in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, while features may be described above as acting in a particular combination and initially claimed as such, one or more features from a claimed combination may, in some cases, be carved out of the combination, and the claimed combination may be directed to a subcombination or a variation of the subcombination.
[0195] Similarly, while operations are depicted in the figures in a particular order, it should not be understood as requiring that such operations be performed in the particular order shown, or in any particular sequence, or that all illustrated operations be performed to achieve desired results. In certain situations, multitasking and parallel processing may be advantageous. Moreover, 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 as a whole may be integrated together in a single software product or packaged in multiple software products.
[0196] Thus, specific embodiments of the invention have been described. Other embodiments are within the scope of the following claims. In addition, the actions recited in the claims can be performed in a different order and still achieve desirable results. It should be noted that the present specification discloses the following aspects. [Aspect 1] modifying, by a computer-aided design program, a three-dimensional shape of the modeled object for which a corresponding physical structure will be created using a manufacturing process to produce a modified three-dimensional shape of the modeled object, the modifying including, for each of two or more discrete layers of the three-dimensional shape along a direction associated with the manufacturing process: extracting a two-dimensional profile representation of the three-dimensional shape in a current discrete layer, the two-dimensional profile representation lying in a plane that is perpendicular to the direction associated with the manufacturing process; offsetting the two-dimensional profile representation by an amount associated with the manufacturing process to form an offset two-dimensional profile representation of the current discrete layer; modifying a next discrete layer using the offset two-dimensional profile representation of the current discrete layer; providing, via the computer-aided design program, the modified three-dimensional shape of the modeled object for use in manufacturing the physical structure using one or more computer-controlled manufacturing systems employing the manufacturing process; and A method comprising: [Aspect 2] The method of claim 1, wherein the manufacturing process includes an additive manufacturing process, the direction is a build direction of the additive manufacturing process, and the offsetting includes offsetting the two-dimensional profile representation inward by an amount determined according to a maximum overhang angle for the additive manufacturing process. [Aspect 3] 3. The method of claim 2, comprising receiving the three-dimensional shape of the modeled object, and wherein the modifying includes preparing the three-dimensional shape of the modeled object for the additive manufacturing process. [Aspect 4] the three-dimensional shape is a generatively designed three-dimensional shape of the modeled object, and the method comprises: obtaining, by the computer-aided design program, a design space for the modeled object, one or more design criteria for the modeled object; iteratively varying, with the computer-aided design program, a geometry of the generatively designed three-dimensional shape of the modeled object within the design space according to the one or more design criteria, wherein the iteratively varying includes: performing a numerical simulation of the modeled object according to a current version of the generatively designed three-dimensional shape and at least one of the one or more design criteria to generate a current numerical evaluation of the modeled object; updating the current version of the generatively designed three-dimensional shape based on the current numerical evaluation to produce an updated version of the generatively designed three-dimensional shape of the modeled object; performing the modifications on the updated version to form a next version of the generatively designed three-dimensional shape of the modeled object; and repeating at least the performing, the updating, and the modifying until a predefined number of shape modification iterations are performed, until the generative designed three-dimensional shape of the modeled object in the design space satisfies the one or more design criteria, or both; 3. The method of embodiment 2, comprising: [Aspect 5] The said modifying performing a Boolean join of the offset two-dimensional profile representation with the next discrete layer to produce a larger sized two-dimensional profile for the next discrete layer; adding geometry to the next discrete layer based on the larger sized two-dimensional profile and a distance between the generative designed three-dimensional shape and a build platform for the additive manufacturing process; 5. The method of embodiment 4, comprising: [Aspect 6] The said modifying computing an external skeleton of the next discrete layer; generating a crosslinkable two-dimensional profile representation by expanding the external skeleton according to a maximum crosslink distance for the additive manufacturing process; subtracting the crosslinkable two-dimensional profile representation from the offset two-dimensional profile representation to produce a crosslinked two-dimensional profile representation; performing a Boolean join of the bridged two-dimensional profile representation with the next discrete layer to produce a larger sized two-dimensional profile for the next discrete layer; adding geometry to the next discrete layer based on the larger sized two-dimensional profile; 5. The method of embodiment 4, comprising: [Aspect 7] 5. The method of claim 4, wherein the extracting includes using interpolation to construct the two-dimensional profile representation from the three-dimensional shape in the current discrete layer. [Aspect 8] 5. The method of claim 4, wherein the iteratively varying comprises optimizing a topology of the three-dimensional shape of the modeled object. [Aspect 9] The updating includes: for each location in the current version of the generative designed three-dimensional shape having a surface angle that exceeds the maximum overhang angle for the additive manufacturing process; adjusting an amount of change indicated by the current numerical evaluation at the location according to the build direction to lower the generative designed three-dimensional shape at the location with respect to a build platform for the additive manufacturing process; updating the current version of the three-dimensional shape according to the adjustments at each location; and 9. The method of embodiment 8, comprising: [Aspect 10] 10. The method of claim 9, wherein the adjusting is performed according to a scale factor, and the iteratively varying includes increasing the scale factor from zero to a non-zero target value over multiple iterations of the iteratively varying. [Aspect 11] 9. The method of claim 8, wherein the amount is set by a allowed overhang angle, and the offsetting comprises reducing the allowed overhang angle from a first angle to the maximum overhang angle for the additive manufacturing process over multiple iterations of the iteratively varying. [Aspect 12] 5. The method of claim 4, wherein the iteratively varying includes, for each of a plurality of iterations, blending the next version of the generatively designed three-dimensional shape from a previous iteration with the updated version of the generatively designed three-dimensional shape from the previous iteration to produce the current version of the generatively designed three-dimensional shape of the modeled object, wherein the amount of the next version used in the blending increases relative to the amount of the updated version in each of two or more subsequent iterations of the plurality of iterations. [Aspect 13] The method of aspect 4, wherein the generatively designed three-dimensional shape of the modeled object includes a level set representation of an implicit surface of the modeled object, and the updating includes updating the level set representation according to a shape change rate calculated for the implicit surface based on the current numerical evaluation. [Aspect 14] The providing comprises: generating a toolpath specification for an additive manufacturing machine using the generatively designed three-dimensional shape of the modeled object; manufacturing at least a portion of the physical structure or a mold for the physical structure with the additive manufacturing machine using the toolpath specification; 5. The method of embodiment 4, comprising: [Aspect 15] The method of claim 1, wherein the manufacturing process includes a casting process or a molding process, the direction is an extension direction of the casting process or the molding process, and the offsetting includes offsetting the two-dimensional profile representation outward by an amount determined according to a minimum draft angle for the casting process or the molding process. [Aspect 16] 16. The method of claim 15, wherein the amount varies across the two or more discrete layers of the three-dimensional shape. [Aspect 17] the manufacturing process includes a mold process having two or more sides, the drawing direction is a first drawing direction of two or more drawing directions corresponding to the two or more sides, the modified three-dimensional shape of the modeled object is an output three-dimensional shape of the modeled object, the extracting, the offsetting, and the modifying produce a first modified three-dimensional shape, and the modifying includes: for each of two or more discrete layers of the three-dimensional shape along a second of the two or more stretch directions; extracting a second two-dimensional profile representation of the three-dimensional shape in a second current discrete layer, the second two-dimensional profile representation lying in a plane that is perpendicular to the second stretch direction; offsetting the second two-dimensional profile representation outward by the amount to form a second offset two-dimensional profile representation of the second current discrete layer; modifying a second next discrete layer using the second offset two-dimensional profile representation of the second current discrete layer; generating a second modified three-dimensional shape by performing a Boolean intersection of the first modified three-dimensional shape and the second modified three-dimensional shape to produce the output three-dimensional shape of the modeled object; 16. The method of embodiment 15, further comprising: [Aspect 18] 2. The method of claim 1, wherein the providing includes storing the three-dimensional shape of the modeled object in persistent storage for use in manufacturing the physical structure using the one or more computer-controlled manufacturing systems. [Aspect 19] a non-transitory storage medium having computer-aided design program instructions stored thereon; one or more data processing devices configured to execute the instructions of the computer-aided design program, the instructions configuring the one or more data processing devices to: modifying, by a computer-aided design program, a three-dimensional shape of the modeled object for which a corresponding physical structure will be created using a manufacturing process to produce a modified three-dimensional shape of the modeled object, the modifying including, for each of two or more discrete layers of the three-dimensional shape along a direction associated with the manufacturing process: extracting a two-dimensional profile representation of the three-dimensional shape in a current discrete layer, the two-dimensional profile representation lying in a plane that is perpendicular to the direction associated with the manufacturing process; offsetting the two-dimensional profile representation by an amount associated with the manufacturing process to form an offset two-dimensional profile representation of the current discrete layer; modifying a next discrete layer using the offset two-dimensional profile representation of the current discrete layer; causing the computer-aided design program to provide the modified three-dimensional shape of the modeled object for use in manufacturing the physical structure using one or more computer-controlled manufacturing systems employing the manufacturing process; system. [Aspect 20] A non-transitory computer readable medium encoding a computer aided design program operable to cause one or more data processing devices to perform operations, said operations comprising: modifying, by a computer-aided design program, a three-dimensional shape of the modeled object for which a corresponding physical structure will be created using a manufacturing process to produce a modified three-dimensional shape of the modeled object, the modifying including, for each of two or more discrete layers of the three-dimensional shape along a direction associated with the manufacturing process: extracting a two-dimensional profile representation of the three-dimensional shape in a current discrete layer, the two-dimensional profile representation lying in a plane that is perpendicular to the direction associated with the manufacturing process; offsetting the two-dimensional profile representation by an amount associated with the manufacturing process to form an offset two-dimensional profile representation of the current discrete layer; modifying a next discrete layer using the offset two-dimensional profile representation of the current discrete layer; providing, via the computer-aided design program, the modified three-dimensional shape of the modeled object for use in manufacturing the physical structure using one or more computer-controlled manufacturing systems employing the manufacturing process; and The non-transitory computer-readable medium comprising:
Claims
1. modifying, by a computer-aided design program, a three-dimensional shape of the modeled object for which a corresponding physical structure will be created using a manufacturing process to produce a modified three-dimensional shape of the modeled object, the modifying including, for each of two or more discrete layers of the three-dimensional shape along a direction associated with the manufacturing process: extracting a two-dimensional profile representation of the three-dimensional shape in a current discrete layer, the two-dimensional profile representation lying in a plane that is perpendicular to the direction associated with the manufacturing process; offsetting the two-dimensional profile representation by an amount associated with the manufacturing process to form an offset two-dimensional profile representation of the current discrete layer; modifying a next discrete layer using the offset two-dimensional profile representation of the current discrete layer; providing, via the computer-aided design program, the modified three-dimensional shape of the modeled object for use in manufacturing the physical structure using one or more computer-controlled manufacturing systems employing the manufacturing process; and A method comprising:
2. 2. The method of claim 1 , wherein the manufacturing process comprises an additive manufacturing process, the direction is a build direction of the additive manufacturing process, and the offsetting comprises offsetting the two-dimensional profile representation inward by an amount determined according to a maximum overhang angle for the additive manufacturing process.
3. 3. The method of claim 2, comprising receiving the three-dimensional shape of the modeled object, and wherein modifying comprises preparing the three-dimensional shape of the modeled object for the additive manufacturing process.
4. the three-dimensional shape is a generatively designed three-dimensional shape of the modeled object, and the method comprises: obtaining, with the computer-aided design program, a design space for the modeled object, one or more design criteria for the modeled object; iteratively varying, with the computer-aided design program, a geometry of the generatively designed three-dimensional shape of the modeled object within the design space according to the one or more design criteria, wherein the iteratively varying includes: performing a numerical simulation of the modeled object according to a current version of the generatively designed three-dimensional shape and at least one of the one or more design criteria to generate a current numerical evaluation of the modeled object; updating the current version of the generatively designed three-dimensional shape based on the current numerical evaluation to produce an updated version of the generatively designed three-dimensional shape of the modeled object; performing the modifications on the updated version to form a next version of the generatively designed three-dimensional shape of the modeled object; and repeating at least the performing, the updating, and the modifying until a predefined number of shape modification iterations are performed, until the generative designed three-dimensional shape of the modeled object in the design space satisfies the one or more design criteria, or both; The method of claim 2 comprising:
5. The said modifying performing a Boolean join of the offset two-dimensional profile representation with the next discrete layer to produce a larger sized two-dimensional profile for the next discrete layer; adding geometry to the next discrete layer based on the larger sized two-dimensional profile and a distance between the generative designed three-dimensional shape and a build platform for the additive manufacturing process; The method of claim 4 comprising:
6. The said modifying computing an external skeleton of the next discrete layer; generating a crosslinkable two-dimensional profile representation by expanding the external skeleton according to a maximum crosslink distance for the additive manufacturing process; subtracting the crosslinkable two-dimensional profile representation from the offset two-dimensional profile representation to produce a crosslinked two-dimensional profile representation; performing a Boolean join of the bridged two-dimensional profile representation with the next discrete layer to produce a larger sized two-dimensional profile for the next discrete layer; adding geometry to the next discrete layer based on the larger sized two-dimensional profile; The method of claim 4 comprising:
7. The method of claim 4 , wherein the extracting comprises using interpolation to construct the two-dimensional profile representation from the three-dimensional shape in the current discrete layer.
8. The method of claim 4 , wherein the iteratively varying comprises optimizing a topology of the three-dimensional shape of the modeled object.
9. The updating includes: for each location in the current version of the generative designed three-dimensional shape having a surface angle that exceeds the maximum overhang angle for the additive manufacturing process; adjusting an amount of change indicated by the current numerical evaluation at the location according to the build direction to lower the generative designed three-dimensional shape at the location with respect to a build platform for the additive manufacturing process; updating the current version of the three-dimensional shape according to the adjustments at each location; and The method of claim 8, comprising:
10. 10. The method of claim 9, wherein the adjusting is performed according to a scale factor, and the iteratively varying includes increasing the scale factor from zero to a non-zero target value over multiple iterations of the iteratively varying.
11. 9. The method of claim 8, wherein the amount is set by a allowed overhang angle, and wherein the offsetting comprises reducing the allowed overhang angle from a first angle to the maximum overhang angle for the additive manufacturing process over multiple iterations of the iteratively varying.
12. 5. The method of claim 4, wherein the iteratively varying includes, for each of a plurality of iterations, blending the next version of the generatively designed three-dimensional shape from a previous iteration with the updated version of the generatively designed three-dimensional shape from the previous iteration to produce the current version of the generatively designed three-dimensional shape of the modeled object, wherein an amount of the next version used in the blending increases relative to an amount of the updated version in each of two or more subsequent iterations of the plurality of iterations.
13. 5. The method of claim 4, wherein the generative designed three-dimensional shape of the modeled object includes a level set representation of an implicit surface of the modeled object, and wherein the updating includes updating the level set representation according to a shape modification rate calculated for the implicit surface based on the current numerical evaluation.
14. The providing comprises: generating a toolpath specification for an additive manufacturing machine using the generatively designed three-dimensional shape of the modeled object; manufacturing at least a portion of the physical structure or a mold for the physical structure with the additive manufacturing machine using the toolpath specification; The method of claim 4, comprising:
15. 2. The method of claim 1, wherein the manufacturing process comprises a casting or molding process, the direction is an elongation direction of the casting or molding process, and the offsetting comprises offsetting the two-dimensional profile representation outward by an amount determined according to a minimum draft angle for the casting or molding process.
16. The method of claim 15 , wherein the amount varies across the two or more discrete layers of the three-dimensional shape.
17. the manufacturing process includes a mold process having two or more sides, the drawing direction is a first drawing direction of two or more drawing directions corresponding to the two or more sides, the modified three-dimensional shape of the modeled object is an output three-dimensional shape of the modeled object, the extracting, the offsetting, and the modifying produce a first modified three-dimensional shape, and the modifying includes: for each of two or more discrete layers of the three-dimensional shape along a second of the two or more stretch directions; extracting a second two-dimensional profile representation of the three-dimensional shape in a second current discrete layer, the second two-dimensional profile representation lying in a plane that is perpendicular to the second stretch direction; offsetting the second two-dimensional profile representation outward by the amount to form a second offset two-dimensional profile representation of the second current discrete layer; modifying a second next discrete layer using the second offset two-dimensional profile representation of the second current discrete layer; generating a second modified three-dimensional shape by performing a Boolean intersection of the first modified three-dimensional shape and the second modified three-dimensional shape to produce the output three-dimensional shape of the modeled object; 16. The method of claim 15, further comprising:
18. 10. The method of claim 1, wherein said providing comprises storing the three-dimensional shape of the modeled object in persistent storage for use in manufacturing the physical structure using the one or more computer-controlled manufacturing systems.
19. a non-transitory storage medium having computer-aided design program instructions stored thereon; one or more data processing devices that execute the instructions of the computer-aided design program to cause the one or more data processing devices to perform the method of any one of claims 1 to 18. system.
20. A computer aided design program causing one or more data processing devices to carry out the method according to any one of claims 1 to 18.
Citation Information
Patent Citations
Object support during 3D printing of object based on model
CN111629886A
Penalty function on design variables for designing variables for designing cost-beneficially additive manufacturable structures
JP2017111826A