Systems and Methods for Preparing a Virtual Three-Dimensional (3D) Object for 3D Printing
Computer-implemented systems and methods for preparing a virtual three-dimensional (3D) object for 3D printing are provided. A hollowed-out representation of an input model is generated. The input model defines a solid virtual 3D object, and the hollowed-out representation comprises a shell and an internal volume that is a void. The internal volume is meshed to generate a polygonal mesh representation of the internal volume. A lattice microstructure corresponding to the polygonal mesh representation is generated by (i) replacing each edge of the polygonal mesh representation with a solid part, and (ii) uniting the solid parts to form the lattice microstructure. A lightweight representation of the input model is generated, where the lightweight representation comprises the shell and the lattice microstructure.
The present application is a continuation application of U.S. application Ser. No. 15/850,143, filed Dec. 21, 2017, which claims the priority U.S. provisional patent application 62/447,040 filed Jan. 17, 2017, both of which are hereby incorporated by reference in their entirety.
FIELDThe present description relates to computer-based techniques for preparing a virtual three-dimensional (3D) object for 3D printing.
BACKGROUNDAdditive manufacturing technologies, such as 3D printing, are commonly used to construct physical objects based on virtual 3D objects (e.g., CAD models, etc.). Generally, such additive manufacturing technologies are used to convert design data of the virtual 3D object into a plurality of consecutively stacked, thin, cross-sectional layers. For example, a printing unit of a 3D printing device can move above a printing platform along the XY-plane according to coordinates specified by the virtual 3D object, such that a deposited material forms a correct shape at each cross-sectional layer. The printing unit moves layer-by-layer along the Z-axis, with the cross-sectional layers being stacked consecutively to form a physical object corresponding to the virtual 3D object.
SUMMARYComputer-implemented systems and methods for preparing a virtual three-dimensional (3D) object for 3D printing are provided. In a computer-implemented method for preparing a virtual 3D object for 3D printing, a hollowed-out representation of an input model is generated using a processing system. The input model defines a solid virtual 3D object, and the hollowed-out representation comprises a shell and an internal volume that is a void. The internal volume is meshed using the processing system to generate a polygonal mesh representation of the internal volume. A lattice microstructure corresponding to the polygonal mesh representation is generated by (i) replacing each edge of the polygonal mesh representation with a solid part, and (ii) uniting the solid parts to form the lattice microstructure. A lightweight representation of the input model is generated using the processing system, where the lightweight representation comprises the shell and the lattice microstructure.
A system for preparing a virtual 3D object for 3D printing includes a processing system and computer-readable memory in communication with the processing system encoded with instructions for commanding the processing system to execute steps. In executing the steps, a hollowed-out representation of an input model is generated. The input model defines a solid virtual 3D object, and the hollowed-out representation comprises a shell and an internal volume that is a void. The internal volume is meshed to generate a polygonal mesh representation of the internal volume. A lattice microstructure corresponding to the polygonal mesh representation is generated by (i) replacing each edge of the polygonal mesh representation with a solid part, and (ii) uniting the solid parts to form the lattice microstructure. A lightweight representation of the input model is generated, where the lightweight representation comprises the shell and the lattice microstructure. In interrelated embodiments, the input model may be based on a physical real world object, or it may be a design object model intended for generating a new physical real world object. In other interrelated embodiments, the lightweight representation may serve as an input to a 3D printer for printing a physical 3D object based on the lightweight representation and having a lattice microstructure.
In a non-transitory computer-readable storage medium for preparing a virtual 3D object for 3D printing comprises computer executable instructions which, when executed, cause a processing system to execute steps. In executing the steps, a hollowed-out representation of an input model is generated. The input model defines a solid virtual 3D object, and the hollowed-out representation comprises a shell and an internal volume that is a void. The internal volume is meshed to generate a polygonal mesh representation of the internal volume. A lattice microstructure corresponding to the polygonal mesh representation is generated by (i) replacing each edge of the polygonal mesh representation with a solid part, and (ii) uniting the solid parts to form the lattice microstructure. A lightweight representation of the input model is generated, where the lightweight representation comprises the shell and the lattice microstructure. In interrelated embodiments, the input model may be based on a physical real world object, or it may be a design object model intended for generating a new physical real world object. In other interrelated embodiments, the lightweight representation may serve as an input to a 3D printer for printing a physical 3D object based on the lightweight representation and having a lattice microstructure.
The subject matter described herein provides many technical advantages. As described below, the computer-based techniques of the present disclosure enable the preparation of a relatively lightweight representation of a solid virtual 3D object. The lightweight representation includes an internal framework (e.g., a lattice microstructure) that replaces a solid interior of the solid virtual 3D object. Replacing the solid interior with the internal framework enables the creation of a physical object that corresponds to the virtual 3D object (e.g., via 3D printing) that uses less material. Further, replacing the solid interior with the internal framework enables the creation of a lighter physical object that still maintains an appropriate stiffness, rigidity, and strength. These technical advantages and others of the present disclosure are described in detail below. In interrelated embodiments, the input model may be based on a physical real world object, or it may be a design object model intended for generating a new physical real world object. In other interrelated embodiments, the lightweight representation may serve as an input to a 3D printer for printing a physical 3D object based on the lightweight representation and having a lattice microstructure.
The details of one or more variations of the subject matter described herein are set forth in the accompanying drawings and the description below. Other features and advantages of the subject matter described herein will be apparent from the description and drawings, and from the claims.
The present disclosure relates generally to computer-based techniques for preparing a virtual 3D object for 3D printing, and for printing a physical 3D object according to the prepared virtual 3D object. As described above, 3D printing techniques are commonly used to create physical objects corresponding to virtual 3D objects. For instance, a virtual 3D object or data derived therefrom is provided to a 3D printer, such that the 3D printer can be operated to create a physical object corresponding to the virtual 3D object (e.g., by successive deposition of multiple layers). In some conventional approaches, the data that is provided to the 3D printer corresponds to a solid virtual 3D object. In these conventional approaches, the resulting physical object printed by the 3D printer is a solid object having an internal volume that is filled with material. An amount of material needed to print such solid objects is relatively large, and the solid objects may be relatively heavy. These characteristics of the conventional techniques are generally undesirable.
The present inventor has observed a need for improved techniques for preparing a virtual 3D object for 3D printing. Specifically, the present inventor has observed a need for automated, computer-based techniques for generating a lightweight representation of a solid virtual 3D object. Embodiments of the present disclosure are directed to computer-implemented systems and methods that may satisfy this need. Accordingly, the present disclosure provides computer-implemented systems and methods for automatically generating a lightweight representation of a solid virtual 3D object that includes an internal framework (e.g., a lattice microstructure) that replaces the solid interior of the solid virtual 3D object. Data corresponding to the lightweight representation of the object may be provided to a 3D printer, and the resulting physical object printed by the printer uses less material as compared to comparable objects created according to the conventional approaches. The resulting physical object is lighter than comparable objects created according to the conventional approaches, yet still maintains an appropriate stiffness, rigidity, and strength.
Accordingly, the techniques of the present disclosure enable users (e.g., engineers, etc.) to take full advantage of the power of 3D printing in the context of creating strong yet lightweight parts automatically. 3D printing can produce models with complexities which traditional manufacturing methods are not capable of. As described in further detail below, a hollowed-out version (e.g., a shelled version) of an input model with open faces is created in a robust way that provides advantages over conventional CAD and polygonal shelling approaches. A volumetric mesh is re-interpreted as a lattice to produce an interior portion of the model. Further, the density and thickness of the lattice elements are controlled by results from computer simulation and analyses in several ways, thus creating a model that is strong and/or dense where it needs to be, yet porous and/or coarse where it can be. These steps are described in further detail below.
To illustrate features of the computer-implemented systems and methods described herein, reference is made to
In embodiments, the lightweight representation 106 comprises a thin-walled shell and a lattice microstructure that fills an internal volume of the shell. With the lattice microstructure filling the internal volume, rather than solid material, the lightweight representation 106 is relatively porous, having a structure that is neither entirely solid nor entirely void. The lattice microstructure may be understood as comprising a connected array of support struts, with each of the struts being formed of a solid part. The solid parts may be, for example, cylinders, cones, or other types of solid parts.
As illustrated in
In some embodiments, based on the output of the stress analysis 112, the conformal lattice generation software 104 controls a density of support struts in the lightweight representation 106. For example, the conformal lattice generation software 104 may be configured to automatically generate the lightweight representation 106 having (i) a higher density of support struts in an area of the model having a higher amount of stress, and (ii) a lower density of support struts in an area of the model having a lower amount of stress. In embodiments, the conformal lattice generation software 104 analyzes (e.g., processes) the output of the stress analysis 112 and generates the lightweight representation 106 in an automated manner that requires no human intervention (or only minimal human intervention).
In some embodiments, based on the output of the stress analysis 112, the conformal lattice generation software 104 controls dimensions of support struts in the lightweight representation 106. For example, the conformal lattice generation software 104 may be configured to automatically generate the lightweight representation 106 having (i) cylinders or cones of larger radii in an area of the model having a higher amount of stress, and (ii) cylinders or cones of smaller radii in an area of the model having a lower amount of stress. In embodiments, the conformal lattice generation software 104 analyzes the output of the stress analysis 112 and generates the lightweight representation 106 in an automated manner that requires little or no human intervention.
As described in further detail below, the present disclosure provides computer-implemented techniques for creating a lightweight part from a solid part automatically. The solid part can be a traditional CAD model or a closed triangle mesh, for instance. The automatically generated lattice can be uniform or non-uniform if further density constraints are provided. In embodiments, a result of the computer-implemented techniques described herein is a boundary conformal lattice that does not have any tangling spurs, thus resulting in superior structural integrity. Furthermore, the generated lattice and hollowed-out model lends itself to straight-forward and fast structural analysis by leveraging shells and beams simulations. Additionally, new and robust algorithms for shelling an input model are described below.
To implement the technical advantages of the present disclosure, the computer-implemented operations of
At operation 202, an input model defining a solid virtual 3D object is received. An example of such an input model is illustrated in
In some embodiments, a selection of one or more faces of the input model is received. The one or more faces may be selected by a user via a graphical user interface (GUI), with the selected faces being faces that the user wishes to have removed (e.g., be open) in displays of the model that are subsequently presented to the user. In
With reference again to
The void internal volume of the hollowed-out representation of
With reference again to
In other embodiments, the volumetric mesher utilizes a density function to vary the mesh's density of edges across the mesh. For instance, as described in further detail below, in embodiments, an output of a stress analysis is provided to the volumetric mesher, and the volumetric mesher is configured to control a density of edges of the polygonal mesh representation based on the stress analysis output. By controlling the density of edges based on the stress analysis output, the volumetric mesher may generate a mesh having (i) a higher density of edges in areas having higher amounts of stress, and (ii) a lower density of edges in areas having a lower amounts of stress, for instance. In this manner, a lattice microstructure that is generated based on the mesh has increased strength in areas of higher stress and is more porous (e.g., lighter) in areas of lower stress. As described in further detail below, in embodiments, the density of the volumetric mesh is controlled via size functions (e.g., user-defined size functions, size functions generated automatically by software, etc.).
With reference again to
The example lattice microstructure 902 of
Additionally, as described in further detail below, in some embodiments, one or more dimensions of the solid parts of the lattice microstructure are controlled based on an output of a stress analysis or another type of simulation or analysis. For instance, in an example where the lattice microstructure comprises cylinders or cones, the lattice microstructure may be engineered to include (i) cylinders or cones of larger radii in areas having a higher amount of stress, and (ii) cylinders or cones of smaller radii in areas having a lower amount of stress. In this manner, the lattice microstructure has increased strength in areas of higher stress and a lower strength in areas of lower stress.
Although the example of
With reference again to
In the example of
In embodiments, a selection of one or more triangles of the input model 1102 is received. The one or more triangles may be selected by a user via a GUI, with the selected triangles being triangles that the user wishes to have removed (e.g., be open) in displays of the model that are subsequently presented to the user. For example, triangles seen at 1104, 1106 may be selected by the user, and
A hollowed-out representation of the input model 1102 is generated. In embodiments, an approach to generating the hollowed-out representation that differs from conventional shelling techniques is utilized. In this approach, the closed triangle mesh 1102 is offset by a predetermined distance (e.g., a constant distance field, a user-defined thickness value, etc.) to generate an offset model.
After the hollowed-out representation 1502 is generated, operations similar to those described above with reference to
As is customary with Finite Element Analysis (FEA) result models,
To expand further on the way these lattices are created, the stress at any point in the volume is known as a scalar value, and this is known as a size field. Volumetric meshers can create uniform-density 3D tetrahedron-shaped internal meshes (or sets of connected lines) as is generally required to subdivide volumes (to create the Finite Elements) and prepare a 3D model for analysis. The output of this meshing (or 3D tetrahedron creation operation) can be interpreted as a set of 3D lines, and these lines can be used as the centers for the placement of cylinders.
As noted above, the thickness of the lattice elements are varied in some embodiments.
In the variable case at
As can be appreciated from the description above, the present disclosure addresses numerous issues. These issues include, for instance, how to generate a boundary conformal lattice model with shelled regions without broken ligaments, where every vertex in the lattice is connected to at least three other vertices. This issue is addressed by using a volumetric mesh which conforms to the boundary of the original model. The present disclosure further enables the creation of both lattice infills as well as shelled components of the original model. Additionally, the present disclosure addresses the issue of robust open shelling. In general, open shelling of solid models is a difficult problem. The present disclosure addresses this problem by defining the open shell as a volumetric distance field intersected with the original model. This approach guarantees the success of the operation even in cases where conventional shelling techniques fail. Another aspect of the present disclosure is that the generated lattice can be non-uniform given appropriate sizing functions used in the generation of the surface and volumetric mesh. The present disclosure further enables a simple integration with existing simulation approaches like shell and beam analysis.
In
Each of the element managers, real-time data buffer, conveyors, file input processor, database index shared access memory loader, reference data buffer and data managers may include a software application stored in one or more of the disk drives connected to the disk controller 2390, the ROM 2358 and/or the RAM 2359. The processor 2354 may access one or more components as required.
A display interface 2387 may permit information from the bus 2352 to be displayed on a display 2380 in audio, graphic, or alphanumeric format. Communication with external devices may optionally occur using various communication ports 2382.
In addition to these computer-type components, the hardware may also include data input devices, such as a keyboard 2379, or other input device 2381, such as a microphone, remote control, pointer, mouse and/or joystick. Such data input devices communicate with the standalone computer architecture 2350 via an interface 2388, in some embodiments. The standalone computer architecture 2350 further includes a network interface 2399 that enables the architecture 2350 to connect to a network, such as a network of the one or more networks 2328.
Additionally, the methods and systems described herein may be implemented on many different types of processing devices by program code comprising program instructions that are executable by the device processing subsystem. The software program instructions may include source code, object code, machine code, or any other stored data that is operable to cause a processing system to perform the methods and operations described herein and may be provided in any suitable language such as C, C++, JAVA, for example, or any other suitable programming language. Other implementations may also be used, however, such as firmware or even appropriately designed hardware configured to carry out the methods and systems described herein.
The systems' and methods' data (e.g., associations, mappings, data input, data output, intermediate data results, final data results, etc.) may be stored and implemented in one or more different types of computer-implemented data stores, such as different types of storage devices and programming constructs (e.g., RAM, ROM, Flash memory, flat files, databases, programming data structures, programming variables, IF-THEN (or similar type) statement constructs, etc.). It is noted that data structures describe formats for use in organizing and storing data in databases, programs, memory, or other computer-readable media for use by a computer program.
The computer components, software modules, functions, data stores and data structures described herein may be connected directly or indirectly to each other in order to allow the flow of data needed for their operations. It is also noted that a module or processor includes but is not limited to a unit of code that performs a software operation, and can be implemented for example as a subroutine unit of code, or as a software function unit of code, or as an object (as in an object-oriented paradigm), or as an applet, or in a computer script language, or as another type of computer code. The software components and/or functionality may be located on a single computer or distributed across multiple computers depending upon the situation at hand.
One or more aspects or features of the subject matter described herein can be realized in digital electronic circuitry, integrated circuitry, specially designed application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs) computer hardware, firmware, software, and/or combinations thereof. These various aspects or features can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which can be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device. The programmable system or computing system may include clients and servers. A client and server are generally remote from each other and typically interact through a communication 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.
These computer programs, which can also be referred to as programs, software, software applications, applications, components, or code, include machine instructions for a programmable processor, and can be implemented in a high-level procedural language, an object-oriented programming language, a functional programming language, a logical programming language, and/or in assembly/machine language. As used herein, the term “machine-readable medium” refers to any computer program product, apparatus and/or device, such as for example magnetic discs, optical disks, memory, and Programmable Logic Devices (PLDs), used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term “machine-readable signal” refers to any signal used to provide machine instructions and/or data to a programmable processor. The machine-readable medium can store such machine instructions non-transitorily, such as for example as would a non-transient solid-state memory or a magnetic hard drive or any equivalent storage medium. The machine-readable medium can alternatively or additionally store such machine instructions in a transient manner, such as for example as would a processor cache or other random access memory associated with one or more physical processor cores.
In the descriptions above and in the claims, phrases such as “at least one of” or “one or more of” may occur followed by a conjunctive list of elements or features. The term “and/or” may also occur in a list of two or more elements or features. Unless otherwise implicitly or explicitly contradicted by the context in which it is used, such a phrase is intended to mean any of the listed elements or features individually or any of the recited elements or features in combination with any of the other recited elements or features. For example, the phrases “at least one of A and B,” “one or more of A and B;” and “A and/or B” are each intended to mean “A alone, B alone, or A and B together.” A similar interpretation is also intended for lists including three or more items. For example, the phrases “at least one of A, B, and C;” “one or more of A, B, and C;” and “A, B, and/or C” are each intended to mean “A alone, B alone, C alone, A and B together, A and C together, B and C together, or A and B and C together.” In addition, use of the term “based on,” above and in the claims is intended to mean, “based at least in part on,” such that an unrecited feature or element is also permissible.
The subject matter described herein can be embodied in systems, apparatus, methods, and/or articles depending on the desired configuration. The implementations set forth in the foregoing description do not represent all implementations consistent with the subject matter described herein. Instead, they are merely some examples consistent with aspects related to the described subject matter. Although a few variations have been described in detail above, other modifications or additions are possible. In particular, further features and/or variations can be provided in addition to those set forth herein. For example, the implementations described above can be directed to various combinations and subcombinations of the disclosed features and/or combinations and subcombinations of several further features disclosed above. In addition, the logic flows depicted in the accompanying figures and/or described herein do not necessarily require the particular order shown, or sequential order, to achieve desirable results. Other implementations may be within the scope of the following claims.
Claims
1. A computer-implemented method for printing a 3D object based on a virtual three dimensional (3D) object, the method comprising:
- receiving a model of a solid 3D object, the model including a shell and an internal volume that is a void;
- meshing the internal volume to generate a polygonal mesh representation of the internal volume, wherein a density of edges in the polygonal mesh representation is controlled based on a stress analysis for the model;
- generating a lattice microstructure corresponding to the polygonal mesh representation, wherein the lattice microstructure includes solid parts for the edges of the polygonal mesh; and
- generating a lightweight representation for the solid 3D object, the lightweight representation comprising the shell and the lattice microstructure.
2. The computer-implemented method of claim 1, further comprising:
- sending the lightweight representation to a 3D printer for creating the solid 3D object.
3. The computer-implemented method of claim 1, wherein the model is based on a computer-aided design (CAD) model for a physical object.
4. The computer-implemented method of claim 1, wherein the model comprises a closed triangle mesh.
5. The computer-implemented method of claim 4, further comprising:
- offsetting the closed triangle mesh by a predetermined distance to generate an offset model; and
- determining an intersection between the closed triangle mesh and the offset model, wherein the shell and the internal volume are represented based on the intersection.
6. The computer-implemented method of claim 1, further comprising:
- receiving a selection of one or more faces or triangles of the model; and
- generating a display for the 3D object based on the model, wherein the display does not include the selected one or more faces or triangles.
7. The computer-implemented method of claim 1, wherein one of the solid parts of the lattice microstructure comprises a cylinder.
8. The computer-implemented method of claim 1, wherein a density of edges in an area of the model is directly related to an amount of stress based on the stress analysis.
9. The computer-implemented method of claim 7, wherein the generating of the lattice microstructure comprises:
- controlling one or more dimensions of the solid parts of the lattice microstructure based on the stress analysis for the model.
10. The computer-implemented method of claim 9, wherein a radius of a cylinder or cone in an area of the model is directly related to an amount of stress based on the stress analysis.
11. A system for preparing a virtual 3D object for 3D printing, the system comprising:
- a processing system; and
- computer-readable memory in communication with the processing system encoded with instructions for commanding the processing system to execute steps comprising: receiving a model of a solid 3D object, the model including a shell and an internal volume that is a void; meshing the internal volume to generate a polygonal mesh representation of the internal volume, wherein a density of edges in the polygonal mesh representation is controlled based on a stress analysis for the model; generating a lattice microstructure corresponding to the polygonal mesh representation, wherein the lattice microstructure includes solid parts for the edges of the polygonal mesh; and generating a lightweight representation for the solid 3D object, the lightweight representation comprising the shell and the lattice microstructure.
12. The system of claim 11, further comprising:
- sending the lightweight representation to a 3D printer for creating the solid 3D object.
13. The system of claim 11, wherein the model is based on a computer-aided design (CAD) model for a physical object.
14. The system of claim 11, wherein the model comprises a closed triangle mesh.
15. The system of claim 14, further comprising:
- offsetting the closed triangle mesh by a predetermined distance to generate an offset model; and
- determining an intersection between the closed triangle mesh and the offset model, wherein the shell and the internal volume are represented based on the intersection.
16. The system of claim 11, further comprising:
- receiving a selection of one or more faces or triangles of the model; and
- generating a display for the 3D object based on the model, wherein the display does not include the selected one or more faces or triangles.
17. The system of claim 11, wherein one of the solid parts of the lattice microstructure comprises a cylinder.
18. The system of claim 11, wherein a density of edges in an area of the model is directly related to an amount of stress based on the stress analysis.
19. The system of claim 17, wherein the generating of the lattice microstructure comprises:
- controlling one or more dimensions of the solid parts of the lattice microstructure based on the stress analysis for the model.
20. A non-transitory computer-readable storage medium for preparing a virtual 3D object for 3D printing, the computer-readable storage medium comprising computer executable instructions which, when executed, cause a processing system to execute steps comprising:
- receiving a model of a solid 3D object, the model including a shell and an internal volume that is a void;
- meshing the internal volume to generate a polygonal mesh representation of the internal volume, wherein a density of edges in the polygonal mesh representation is controlled based on a stress analysis for the model;
- generating a lattice microstructure corresponding to the polygonal mesh representation, wherein the lattice microstructure includes solid parts for the edges of the polygonal mesh; and
- generating a lightweight representation for the solid 3D object, the lightweight representation comprising the shell and the lattice microstructure.
Type: Application
Filed: Jun 26, 2020
Publication Date: Oct 15, 2020
Inventor: Wolfgang Seibold (Lafayette, CO)
Application Number: 16/913,152