Embodiments of the present invention relate generally to computer-aided design and manufacturing and, more specifically, to combining additive and conventional manufacturing techniques to improve manufacturability.
In a typical generative design workflow, an engineer provides a set of design criteria to a generative design software application, and the software application then generates a spectrum of different designs meeting those design criteria. Generative design applications, in general, and topology optimization applications, in particular, are known to produce designs having irregular or amorphous geometries that are generally complex. These types of complex geometries are oftentimes difficult to fabricate using traditional fabrication devices.
In some cases, an additive fabrication device, such as a three-dimensional (3D) printer, can be implemented to fabricate structures having the complex geometries oftentimes associated with generative design. However, conventional additive fabrication devices suffer from at least three drawbacks in this context. First, additive fabrication devices operate slowly and are poorly suited for large production volumes. Second, additive fabrication devices are usually small and cannot be used to fabricate large structures. Third, additive fabrication is more expensive relative to traditional manufacturing and fabrication techniques. Accordingly, although additive fabrication devices are technically capable of fabricating structures having complex geometries, these drawbacks limit the usefulness of additive manufacturing in generative design.
As the foregoing illustrates, what is needed in the art are more effective ways to fabricate structures that are designed using generative design techniques.
Various embodiments of the present invention set forth a computer- implemented method for generating a polygonal mesh, including determining that a first region included in an initial mesh meets a geometric criterion, determining a representative cross section along a centerline associated with the first region, generating simplified geometry for the initial mesh based on the representative cross section, and replacing the first region with the simplified geometry in the initial mesh to generate the polygonal mesh.
At least one advantage of the techniques described herein is that complex polygonal meshes generated via generative design can be simplified to facilitate more efficient fabrication. These techniques improve the operation of generative design applications because the generation of these simpler meshes reduces reliance on expensive and slow additive manufacturing devices.
So that the manner in which the above recited features of the present invention can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments.
In the following description, numerous specific details are set forth to provide a more thorough understanding of the present invention. However, it will be apparent to one of skill in the art that the present invention may be practiced without one or more of these specific details.
As noted above, a generative design engineering workflow oftentimes produces designs having geometries that can be difficult to fabricate using traditional fabrication techniques. Although additive fabrication machines may be capable of fabricating structures based on these designs, conventional additive fabrication machines cannot produce such structures in high volumes, with large sizes, and with low cost.
To address these issues, embodiments of the invention include a design engine that analyzes a complex polygonal mesh to identify regions of that mesh that can be simplified. The design engine then replaces those identified regions with simplified geometry that can be more easily fabricated using traditional techniques. The remaining complex regions of the mesh are fabricated using additive fabrication techniques. The design engine interacts with both a traditional fabrication device and an additive fabrication device to fabricate the simplified and complex regions of the polygonal mesh, respectively. In this manner, a hybrid 3D structure is generated that includes both simplified geometry and complex geometry. This approach minimizes the extent to which fabrication relies on additive manufacturing, while still permitting 3D structures to be generated based on designs produced via generative design.
As is shown, computing device 110 includes a processor 120, input/output (I/O) devices 130, and memory 140. Processor 120 includes any technically feasible set of hardware units configured to process data and execute software applications. Processor 120 could include, for example, one or more central processing units (CPUs), one or more graphics processing units (GPUs), one or more application specific integrated circuits (ASICs), and any combination thereof. I/O devices 130 include any technically feasible set of devices configured to perform input and/or output operations. I/O devices 130 could include, for example, a keyboard, a mouse, a display device, a speaker, a touchscreen, a universal serial bus (USB) port, and so forth. Memory 140 includes any technically feasible set of storage media configured to store data and software applications. Memory 140 could be, for example, a hard disk, a random access memory (RAM) module, a read-only memory (ROM), and and any combination thereof. Memory 140 includes a design engine 142, a 3D mesh 144, simplified mesh regions 146 and complex mesh regions 148.
Design engine 142 is a software application that, upon execution by processor 120, analyzes 3D mesh 144 to identify specific regions of 3D mesh 244 that can be replaced with simple geometric shapes. Design engine 142 then generates simplified mesh regions 144 to replace those specific regions. For example, design engine 142 could analyze 3D mesh 244 to identify tubular regions of 3D mesh 244, and then replace those regions with cylinders. Simplified mesh regions 144 may include simple geometric primitives, including cylinders, cubes, spheres, and so forth, or may include simple polygonal meshes. Simplified mesh regions 144 are suitable for fabrication via traditional fabrication device 150. Based on simplified mesh regions 144, traditional fabrication device 150 fabricates simple structural components 152.
Design engine 142 also outputs the remaining complex mesh regions 248. Complex mesh regions 248 are suitable for fabrication via additive fabrication device 160. Based on complex mesh regions 148, additive fabrication device fabricates complex structural components 162. Simple structural components 152 and complex structural components 162 can then be combined to produce a hybrid structure 170. In one embodiment, traditional fabrication device 150 and additive fabrication device 160 interact to cooperatively generate hybrid 3D structure 170 after fabrication of simple structural components 152 and complex structural components 162 is complete. In another embodiment, another fabrication machine (not shown) performs final assembly of hybrid structure 170.
Design engine 142 may apply any technically feasible criteria for distinguishing regions of 3D mesh 144 that are good candidates for simplification from complex regions of the mesh that are not good candidates for simplification. Design engine 142 may also perform a variety of approaches for simplifying regions of 3D mesh 144 to generate simplified mesh regions 146.
In operation, geometry classifier 200 analyzes 3D mesh 244 to identify candidate mesh regions 246 and complex mesh regions 248. Candidate mesh regions 246 can be replaced with simplified geometry that is suitable for traditional fabrication, while complex mesh regions 248 are more suitable for additive fabrication. The operation of geometry classifier 200 is described in greater detail below in conjunction with
Seed identifier 210 processes each candidate mesh region 246 identified by geometry classifier 200 and identifies a seed point 212 for each such region where geometry simplification can be initialized. Seed identifier 212 implements a multi-step geometric approach that is described in greater detail below in conjunction with
Based on seed point 212, centerline generator 220 performs a multi-step geometric approach to extend a centerline 222 along the length of each candidate mesh region 246. This centerline forms the basis for further geometric simplification. The operation of centerline generator 220 is described in greater detail below in conjunction with
Cross section approximator 230 analyzes each candidate mesh region 246 based on centerline 222 and then generates a set of cross sections 232. Cross section approximator 230 then produces an average cross section 234 based on the set of cross sections 232. Average cross section 234 can be extruded along centerline 222 to produce a simplified version of candidate mesh region 246. The operation of cross section approximator 230 is described in greater detail below in conjunction with
Geometry modifier 240 then generates hybrid 3D mesh 270 that includes complex mesh regions 248 originally found in 3D mesh 244, as well as simplified mesh regions 242 generated via the process described above. Based on hybrid mesh 270, design engine 142 causes traditional fabrication device 150 and additive fabrication device 160 to fabricate hybrid 3D structure 170.
An advantage of the approach discussed herein is that traditional fabrication techniques can be leveraged to efficiently fabricate certain portions of hybrid mesh 270, while additive fabrication techniques can be conservatively applied to fabricate other portions of that mesh. Distributing fabrication to different devices in this manner allows 3D meshes produced via generative design to be fabricated quickly and with low cost.
As a general matter, the number of intersection zones corresponds to the particular class of region. However, classifier 200 may additionally apply other classification criteria. For example, to classify tubular region 320, geometry classifier 200 may also determine that intersection zones 322 and 324 are approximately equal in size and reside on opposite sides of sphere 300.
Geometry classifier 200 may perform the above classification techniques with a range of spheres 300 having different sizes. Geometry classifier may also adjust the size of sphere 300 dynamically based on various geometrical characteristics of the 3D mesh, including average triangle edge length within sphere 300, among other things. Geometry classifier 200 iteratively scans all regions of the 3D mesh and assigns a class to each such region. Then, geometry classifier 200 extracts all tubular regions 320 for further processing and, ultimately, simplification.
As shown in
As shown in
As shown in
As shown in
As shown in
For example, as shown in
As shown in
Referring generally to
As shown in
Geometry modifier 240 within design engine 142 may then update 3D mesh 244 with the simplified geometry generated via the process described above. Geometry modifier 240 may also retriangulate portions of 3D mesh 244 to provide clean joins between complex mesh regions and simplified mesh regions. In one embodiment, geometry modifier 240 may enforce certain constraints on which regions of 3D mesh 244 can be replaced and which regions cannot, regardless of geometry. For example, geometry modifier 240 could prevent tubular regions having less than a minimum length from being replaced.
After design engine 142 generates a hybrid 3D mesh via the above techniques, design engine 142 may perform a number of different post-processing steps. Those post processing steps may include simulating structural attributes of the hybrid 3D mesh, optimizing the geometry of simplified mesh regions in that hybrid mesh, mapping simplified mesh regions to standardized parts, merging proximate co-linear tubular regions, applying lattice optimization to complex mesh regions, estimating fabrication cost, optimizing the hybridization to minimize cost, optimizing simplification to reduce print area for additive fabrication, and potentially others.
As shown, a method 800 begins at step 802, where geometry classifier 200 within design engine 142 analyzes a 3D mesh to identify tubular regions and non-tubular regions. The tubular regions of the 3D mesh are candidates for simplification, whereas the non-tubular regions are not candidates for simplification. Geometry classifier 200 implements the sphere intersection approach discussed above in conjunction with
At step 804, seed identifier 210 within design engine 142 identifies a seed point for a centerline within a tubular region of the 3D mesh. Seed identifier 210 performs the technique described above in conjunction with
At step 806, centerline generator 220 within design engine 142 expands a centerline from the seed point along the length of the tubular region. Centerline generator 220 implements the approach discussed above in conjunction with
At step 808, cross section approximator 230 computes the cross section of the tubular region along the centerline to generate an average cross section. The average cross section can then be extruded along the centerline to produce simplified geometry. In doing so, cross section approximator performs the approach discussed above in conjunction with
As shown, a method 900 begins at step 902, where seed identifier 210 projects a ray through triangles on opposing sides of the identified tubular region. At step 904, seed identifier 210 generates a sphere centered on the midpoint of the ray. At step 906, seed identifier 210 computes the intersection between the sphere and the tubular region to identify two intersection curves. At step 908, seed identifier 210 computes two centroids of the two intersection curves. At step 910, seed identifier 210 generates a line segment between the two centroids. At step 912, seed identifier 210 intersects a plane with the tubular region at the midpoint of line segment to generate a cross section. At step 914, seed identifier 210 determines the centroid of the cross section to generate a seed point. The seed point may be extrapolated to generate another seed point, and the two seed points can then be extended to form a centerline, as described below in conjunction with
As shown, a method 1000 begins at step 1002, where centerline generator 220 computes a difference vector based on a current centerline point and a previous centerline point. At step 1004, centerline generator 220 computes a step size based on the average triangle edge length. At step 1006, centerline generator 220 generates an intermediate centerline point based on the difference vector and the step size. At step 1008, centerline generator 220 intersects a plane with the tubular region at the intermediate point to generate a cross section. At step 1010, centerline generator 220 determines the centroid of the cross section to generate an additional centerline point.
As shown, a method 1100 begins at step 1102, cross section approximator 230 computes a set of cross sections of the tubular region at each centerline point. At step 1106, cross section approximator 230 calculates an oriented bounding box for each cross section in the set. At step 1108, cross section approximator 230 classifies each cross section based on an oriented bounding box. At step 1110, cross section approximator 230 determines an average cross section for the tubular region based on the determined cross section classifications. In doing so, cross section approximator 230 may determine the most common class assigned to those cross sections as the “average” cross section.
In sum, a design engine analyzes a complex polygonal mesh to identify regions of that mesh that can be simplified. The design engine then replaces those identified regions with simplified geometry that is more easily fabricated using traditional techniques. The remaining complex regions of the mesh are fabricated using additive fabrication techniques. The design engine interacts with both a traditional fabrication device and an additive fabrication device to fabricate the simplified and complex regions of the mesh, respectively. In this manner, a hybrid 3D structure is generated that includes both simplified geometry and complex geometry.
An advantage of the techniques set forth above is that complex polygonal meshes generated via generative design can be simplified to facilitate more efficient fabrication. These techniques improve the operation of generative design applications because the generation of these simpler meshes reduces reliance on expensive and slow additive manufacturing devices.
1. Some embodiments of the invention include a computer-implemented method for generating a polygonal mesh, the method comprising: determining that a first region included in an initial mesh meets a geometric criterion, determining a representative cross section along a centerline associated with the first region, generating simplified geometry for the initial mesh based on the representative cross section, and replacing the first region with the simplified geometry in the initial mesh to generate the polygonal mesh.
2. The computer-implemented method of clause 1, wherein determining that the first region meets the geometric criterion comprises: generating a sphere centered within the first region, and determining that two portions of the initial mesh intersect the sphere on opposing sides of the sphere.
3. The computer-implemented method of any of clauses 1 and 2, further comprising determining that a second region included in the initial mesh does not meet the geometric criterion by: generating a sphere centered within the second region, and determining that the number of portions of the initial mesh that intersect the sphere is not equal to two.
4. The computer-implemented method of any of clauses 1, 2, and 3, further comprising generating the centerline by extrapolating one or more centerline points based on a seed point that resides within the first region.
5. The computer-implemented method of any of clauses 1, 2, 3, and 4, further comprising generating the seed point by: projecting a ray from a first polygon to a second polygon, wherein the first polygon and the second polygon reside in the first region, computing a first midpoint along the ray between the first polygon and the second polygon, generating a sphere centered at the first midpoint, determining a first intersection zone where the sphere intersects the first region, computing a first centroid associated with the first intersection zone, determining a second intersection zone where the sphere intersects the second region, computing a second centroid associated with the second intersection zone, generating a line segment from the first centroid to the second centroid, computing a second midpoint associated with the line segment, generating a third cross section by transecting the first region at the second midpoint, and computing a third centroid associated with the third cross section to generate the seed point.
6. The computer-implemented method of any of clauses 1, 2, 3, 4, and 5, further comprising generating at least one centerline point by: generating a first cross section by transecting the first region proximate to the seed point, computing a first centroid based on the first cross section, generating a difference vector between the seed point and the first centroid, extending the difference vector from the first centroid to an intermediate point, generating a second cross section by transecting the first region at the intermediate point, and computing a second centroid associated with the second cross section to generate the at least one centerline point, wherein the centerline includes the seed point and the at least one centerline point.
7. The computer-implemented method of any of clauses 1, 2, 3, 4, 5, and 6, further comprising performing one or more post-processing operations that include replacing at least a portion of the centerline with a b-spline or a line segment.
8. The computer-implemented method of any of clauses 1, 2, 3, 4, 5, 6, and 7, wherein determining the representative cross section comprises: transecting the first region at a set of positions along the centerline to generate a set of cross sections, assigning a class to each cross section, determining which class is the most commonly assigned class across the set of cross sections, and designating the most commonly assigned class as the representative cross section.
9. The computer-implemented method of any of clauses 1, 2, 3, 4, 5, 6, 7, and 8, wherein generating simplified geometry for the initial mesh comprises extruding the representative cross section along the centerline.
10. Some embodiments of the invention include a non-transitory computer-readable medium storing program instructions that, when executed by a processor cause the processor to generate a polygonal mesh by performing the steps of: determining that a first region included in an initial mesh meets a geometric criterion, determining a representative cross section along a centerline associated with the first region, generating simplified geometry for the initial mesh based on the representative cross section, and replacing the first region with the simplified geometry in the initial mesh to generate the polygonal mesh.
11. The non-transitory computer-readable medium of clause 10, wherein the step of determining that the first region meets the geometric criterion comprises: generating a sphere centered within the first region, determining that two portions of the initial mesh intersect the sphere on opposing sides of the sphere, and determining that a ratio between the two portions of the initial mesh falls beneath a threshold.
12. The non-transitory computer-readable medium of any of clauses 10 and 11, further comprising the step of determining that a second region included in the initial mesh does not meet the geometric criterion by: generating a sphere centered within the second region, determining that two portions of the initial mesh intersect the sphere on opposing sides of the sphere, and determining that a ratio between the two portions of the initial mesh exceeds a threshold.
13. The non-transitory computer-readable medium of any of clauses 10, 11, and 12, further comprising the step of generating the centerline by extrapolating one or more centerline points based on a seed point that resides within the first region.
14. The non-transitory computer-readable medium of any of clauses 10, 11, 12, and 13, further comprising generating the seed point by: projecting a ray from a first polygon to a second polygon, wherein the first polygon and the second polygon reside in the first region, computing a first midpoint along the ray between the first polygon and the second polygon, generating a sphere centered at the first midpoint, determining a first intersection zone where the sphere intersects the first region, computing a first centroid associated with the first intersection zone, determining a second intersection zone where the sphere intersects the second region, computing a second centroid associated with the second intersection zone, generating a line segment from the first centroid to the second centroid, computing a second midpoint associated with the line segment, generating a third cross section by transecting the first region at the second midpoint, and computing a third centroid associated with the third cross section to generate the seed point.
15. The non-transitory computer-readable medium of any of clauses 10, 11, 12, 13, and 14, further comprising generating at least one centerline point by: generating a first cross section by transecting the first region proximate to the seed point, computing a first centroid based on the first cross section, generating a difference vector between the seed point and the first centroid, extending the difference vector from the first centroid to an intermediate point, generating a second cross section by transecting the first region at the intermediate point, and computing a second centroid associated with the second cross section to generate the at least one centerline point, wherein the centerline includes the seed point and the at least one centerline point.
16. The non-transitory computer-readable medium of any of clauses 10, 11, 12, 13, 14, and 15, further comprising the step of performing one or more post-processing operations that include replacing at least a portion of the centerline with a b-spline or a line segment.
17. The non-transitory computer-readable medium of any of clauses 10, 11, 12, 13, 14, 15, and 16, wherein the step of determining the representative cross section comprises: transecting the first region at a set of positions along the centerline to generate a set of cross sections, assigning a class to each cross section, determining which class is the most commonly assigned class across the set of cross sections, and designating the most commonly assigned class as the representative cross section.
18. The non-transitory computer-readable medium of any of clauses 10, 11, 12, 13, 14, 15, 16, and 17, wherein the step of generating simplified geometry for the initial mesh comprises extruding the representative cross section along the centerline.
19. The non-transitory computer-readable medium of any of clauses 10, 11, 12, 13, 14, 15, 16, 17, and 18, further comprising the steps of: causing a first fabrication device to fabricate a first structure based on the simplified geometry, causing a second fabrication device to fabricate a second structure based on a remaining portion of the polygonal mesh, and causing the first fabrication device to interoperate with the second fabrication device to combine the first structure with the second structure.
20. Some embodiments of the invention include a system for generating a polygonal mesh, comprising: a memory storing a design engine, and a processor that, upon executing the design engine, performs the steps of: determining that a first region included in an initial mesh meets a geometric criterion, determining a representative cross section along a centerline associated with the first region, generating simplified geometry for the initial mesh based on the representative cross section, and replacing the first region with the simplified geometry in the initial mesh to generate the polygonal mesh.
Any and all combinations of any of the claim elements recited in any of the claims and/or any elements described in this application, in any fashion, fall within the contemplated scope of the present invention and protection.
The descriptions of the various embodiments have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments.
Aspects of the present embodiments may be embodied as a system, method or computer program product. Accordingly, aspects of the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “module” or “system.” Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
Aspects of the present disclosure are described above with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, enable the implementation of the functions/acts specified in the flowchart and/or block diagram block or blocks. Such processors may be, without limitation, general purpose processors, special-purpose processors, application-specific processors, or field-programmable processors or gate arrays.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
While the preceding is directed to embodiments of the present disclosure, other and further embodiments of the disclosure may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.
This application claims priority benefit of United States Provisional Patent Application titled, “Combining Additive and Conventional Manufacturing Techniques to Improve Manufacturability,” filed on Apr. 12, 2017 and having Ser. No. 62/484,838. The subject matter of this related application is hereby incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
62484838 | Apr 2017 | US |