Additive manufacturing is a process of creating three-dimensional parts by depositing overlapping layers of material under the guided control of a computer. Techniques of additive manufacturing include, without limitation, fused deposition modeling (FDM), fused filament fabrication (FFF), Plastic Jet Printing (PJP), stereolithography (SLA), selective laser sintering (SLS), selective laser melting (SLM), and material jetting (MJ). Using this technique, a material (e.g., a heated and/or pressurized thermoplastic) passes through a print head. The print head is moved in a predefined trajectory (a.k.a., a tool path) as the material discharges from the print head, such that the material is laid down in a particular pattern and shape of overlapping layers. The material, after exiting the print head, hardens into a final form.
In some applications, one or more fibers (e.g., one or more continuous or chopped fibers) move through the print head along with the material to act as reinforcement for the final solidified part. This process may be referred to as reinforced filament fusion (RFF).
Although FDM, FFF, PJP, and RFF manufacturing of structures can be an efficient way to produce high-performance and geometrically complex structures, the performance of the printed structures may be difficult to predict. In particular, mechanical properties (e.g., stiffness, strength, etc.) of such printed structures are anisotropic in nature, exhibiting different characteristics in X, Y, and Z directions.
Using SLA, SLS, and SLM, a material (e.g., a resin or a powder) may be deposited in a layer upon a base (e.g., a build platform or a previously fabricated part layer), and an energy source (e.g., an ultraviolet light or a laser beam) may be directed onto the layer in a particular pattern to cause the material to sinter, melt, and/or harden in the shape of the pattern. Using MJ, drops of liquid material may be placed at select locations on the base and then exposed to the energy source to cause the material to harden in a particular pattern. Traditionally, SLA, SLS, SLM, and MJ have been implemented using a slicing technique. In particular, a three-dimensional (3D) model of the part to be printed was sliced into multiple two-dimensional (2D) layers, which were then converted into machine code. The machine code was provided to the corresponding printer, allowing the printer to move the associated energy source in an x-y plane and print each overlapping layer of the part.
Historically, printed structures have been created using a trial-and-error method, where the part was printed, tested, and re-printed in a different manner until a successful part was produced. This process, while ultimately successful, can also be time consuming and expensive.
Recently, finite element analysis (FEA) has been used with some success to predict the performance of a printed part. In particular, printed parts have been analyzed using FEA, for example based on characteristics of the material and bind sites located between layers of deposited material. When using FEA, a physical part may not be printed until a theoretical design is created that may pass minimum FEA thresholds.
Recognized herein are various issues with prior methods for designing printed parts. For example, prior methods may not fully account for the actual tool path or the anisotropic nature of the printed structures.
As another example, printing parts may require a trial-and-error approach, in which a part having been assigned an initial layout is printed, tested, and re-printed using a different layout until a successful part is produced. This may be time consuming and ultimately expensive.
The present disclosure provides analysis systems and methods, including systems and methods for structurally analyzing voxel-printed parts. Such systems and methods may be used in three-dimensional printing.
The present disclosure provides methods for converting a three-dimensional (3D) part or model of the part into machine code. The 3D model may be pixelated into a collection of virtual volumetric shapes (e.g., cubes, spheres, pyramids, etc.), which may be referred to as voxels. In some instances, each voxel in a particular collection can be assigned a different material, a different size, a different shape, and/or a different property (e.g., stiffness, density, conductivity, reactivity, etc.). The collection of voxels may then be converted into machine code, which can be used to control movement of a 3D printer.
Mechanical properties (e.g., stiffness, strength, conductivity, reactivity, etc.) of printed structures may be anisotropic in nature, exhibiting different characteristics in X, Y, and Z directions depending on a layout of the voxels in the selected collection. This may make it difficult to predict the performance of the printed structures. However, the disclosed systems and methods advantageously enable such difficulty to be overcome. Systems and methods of the present disclosure may reduce, if not eliminate, any trial-and-error approach, in which a part having been assigned an initial layout is printed, tested, and re-printed using a different layout until a successful part is produced. This can advantageously reduce the time and cost associated with printed 3D parts.
Methods and systems provided herein may overcome various problems identified above. The present disclosure provides analysis systems and methods. In some cases, such systems and methods are used for structurally analyzing printed parts or objects.
In an aspect, the present disclosure provides a method for performing analysis on a part for printing, comprising (a) receiving, in computer memory, a computer model of the part; (b) partitioning the computer model of the part into at least (i) a first region comprising one or more voids and (ii) a second region that is filled with a representation of a material for forming the part, to yield a partitioned computer model; (c) generating at least a first mesh in the first region and at least a second mesh in the second region to yield a mesh array in the partitioned computer model; (d) using the mesh array, including the first mesh and the second mesh, to determine one or more properties of the part; and (e) upon determining that the one or more properties meet a predetermined value(s), using the mesh array to generate a print head toolpath usable to print the part. In some embodiments, the method for performing analysis on a part for printing further comprises using the print head toolpath to print the part. In some embodiments, the method for performing analysis on a part for printing further comprises using fused filament fabrication to print the part.
In some embodiments, the first mesh is at a smaller scale than the second mesh. In some embodiments, the one or more properties are selected from the group consisting of strength, structural deflections, stress, strain, tension, shear, load capacity, stiffness, factor-of safety, weight, strength to weight ratio, envelop geometry, minimal print time, thermal performance, electrical performance, porosity, infill, number of shells, layer height, extruder temperature, solid density, melt density, printing speed, and print head movement speed. In some embodiments, the second region encloses and/or connects to at least a portion of the first region. In some embodiments, the computer model of the part comprises one or more features of the part that is selected from the group consisting of corners, edges, surfaces, solids, ridges, salient points, and image texture. In some embodiments, the partitioning generates one or more parameters for printing the part, wherein the one or more parameters are selected from the group consisting of filament diameter, layer thickness, infill percentage, infill pattern, raster angle, build orientation, extrudate width, layer height, shell number, infill overlap, and grid spacing. In some embodiments, the partitioning generates one or more numerical control programming code of the partitioned computer model. In some embodiments, the partitioning comprises slicing the part into a plurality of layers.
In some embodiments, the method for performing analysis on a part for printing further comprises performing finite element analysis on the toolpath. In some embodiments, the method for performing analysis on a part for printing further comprises subjecting the tool path to an intersection algorithm. In some embodiments, the intersection algorithm determines a fiber direction dependent material propert(ies). In some embodiments, the fiber direction dependent material property is a stress-strain matrix, a thermal conductivity matrix, or electrical conductivity matrix. In some embodiments, the infill pattern is a repeating pattern. In some embodiments, the infill pattern is selected from the group consisting of honeycomb, grid, harmonic, linear, diagonal, rectilinear, concentric, Hilbert curve, Archimedean chords, octagram spiral, and any combination thereof. In some embodiments, the infill pattern is harmonic. In some embodiments, the first mesh comprises a sub-mesh for at least one repeating unit of the repeating pattern of the infill pattern. In some embodiments, the at least one repeating unit of the repeating pattern comprises boundary regions and boundary nodes. In some embodiments, the boundary nodes provide stress measurements of the repeating pattern of the infill pattern. In some embodiments, the at least a first mesh comprises a plurality of meshes. In some embodiments, partitioning the computer model comprises slicing the computer model. In some embodiments, the method for performing analysis on a part for printing further comprises electronically outputting the print head tool path on a user interface. In some embodiments, the print head tool path on a user interface is electronically outputted on a graphical user interface.
In another aspect, the present disclosure provides a method for optimizing a toolpath trajectory for printing a part, comprising (a) receiving, in computer memory, a computer model of the part; (b) initiating virtual printing of the part in accordance with one or more printing characteristics of a three-dimensional printer, which virtual printing is performed along a virtual print head toolpath in accordance with the computer model of the part; (c) while virtually printing the part, (i) obtaining one or more physical properties of the part using a physical model, and (ii) determining whether the one or more physical properties of the part measured in (i) meet at least one predetermined performance metric of the part; and (d) adjusting the virtual print head toolpath upon determining that the one or more physical properties of the part measured in (i) do not meet the at least one predetermined performance metric of the part, to yield an adjusted print head toolpath. In some embodiments, the method for optimizing a toolpath trajectory for printing a part further comprises determining that the one or more physical properties of the part measured in (i) meet at least one predetermined performance metric of the part under the adjusted print head toolpath. In some embodiments, the virtual printing is in the absence of printing the part.
In some embodiments, the method for optimizing a toolpath trajectory for printing a part further comprises printing the part. In some embodiments, the part is printed at least in part while virtually printing the part. In some embodiments, the part is printed along the print head tool path. In some embodiments, the part is printed along the adjusted print head tool path. In some embodiments, the part is printed using fused filament fabrication. In some embodiments, the method for optimizing a toolpath trajectory for printing a part further comprises electronically outputting the adjusted print head toolpath. In some embodiments, the method for optimizing a toolpath trajectory for printing a part further comprises continuing virtual printing of the part along the adjusted print head toolpath. In some embodiments, the method for optimizing a toolpath trajectory for printing a part further comprises displaying the virtual printing of the part to a user on a graphical user interface. In some embodiments, displaying the virtual printing comprises displaying the virtual print head toolpath on the graphical user interface. In some embodiments, measuring the one or more physical properties comprises thermal modeling, stress modeling, rheology modeling, or any combination thereof.
In some embodiments, the method for optimizing a toolpath trajectory for printing a part further comprises generating one or more optimization metrics for the part prior to initiating virtual printing of the part, wherein the one or more optimization metrics is selected from the group consisting of strength, structural deflections, stress, strain, tension, shear, load capacity, stiffness, factor-of safety, weight, strength to weight ratio, envelop geometry, minimal print time, thermal performance, electrical performance, porosity, infill, number of shells, layer height, extruder temperature, solid density, melt density, printing speed, and print head movement speed. In some embodiments, the one or more physical properties is selected from the group consisting of defects, strength, voids, surface roughness, stress, strain, tension, shear, stiffness, factor-of safety, weight, envelop geometry, thermal performance, electrical performance, porosity, infill, number of shells, layer height, extruder temperature, solid density, and melt density.
In another aspect, the present disclosure provides a method for optimizing a tool path trajectory for printing a part using a three-dimensional printer, comprising (a) printing the part using the three-dimensional printer, which printing is performed adjacent to a base along a toolpath in accordance with a computer model of the part; (b) while printing the part with the three-dimensional printer along the toolpath, (i) using one or more sensors to measure one or more structural or internal properties of the part, which one or more sensors are external to the base, and (ii) determining whether the one or more structural or internal properties of the part measured in (i) meet at least one performance metric of the part; (c) adjusting the toolpath upon determining that the one or more structural or internal properties of the part measured in (i) do not meet the at least one performance metric of the part, to yield an adjusted toolpath; and (d) continuing to print the part along the adjusted toolpath. In some embodiments, the printing includes use of fused filament deposition to generate at least a portion of the part.
In some embodiments, the method for optimizing a tool path trajectory for printing a part using a three-dimensional printer further comprises generating one or more optimization metrics for the part prior to initiating printing of the part. In some embodiments, the one or more optimization metrics comprise one or more members selected from the group consisting of strength, structural deflections, stress, strain, tension, shear, load capacity, stiffness, factor-of safety, weight, strength to weight ratio, envelop geometry, minimal print time, thermal performance, electrical performance, porosity, infill, number of shells, layer height, extruder temperature, solid density, melt density, printing speed, and print head movement speed. In some embodiments, the method for optimizing a tool path trajectory for printing a part using a three-dimensional printer further comprises prior to initiating printing of the part, analyzing the part by performing thermal modeling, stress modeling, rheology modeling structural analysis, electrical performance, or any combination thereof. In some embodiments, the structural or internal properties comprise one or more members selected from the group consisting of defects, strength, voids, surface roughness, stress, strain, tension, shear, stiffness, factor-of safety, weight, envelop geometry, thermal performance, electrical performance, porosity, infill, number of shells, layer height, solid density, and melt density. In some embodiments, the one or more sensors comprise a camera. In some embodiments, the camera detects light in the infrared or visible portion of the electromagnetic spectrum. In some embodiments, the method for optimizing a tool path trajectory for printing a part using a three-dimensional printer further comprises using an image processing algorithm to evaluate data generated by one or more sensors to extract one or more structural or internal properties of the part. In some embodiments, the one or more sensors are positioned on a robot end-effector of the three-dimensional printer.
In another aspect, the present disclosure provides a method for optimizing a toolpath trajectory for printing a part using a three-dimensional printer, comprising (a) printing the part using the three-dimensional printer, which printing is performed along a toolpath in accordance with a computer model of the part; (b) while printing the part with the three-dimensional printer along the toolpath, (i) using an optical sensor(s) to measure one or more structural or internal properties of the part, and (ii) determining whether the one or more structural or internal properties of the part measured in (i) meet at least one performance metric of the part; (c) adjusting the toolpath upon determining that the one or more structural or internal properties of the part measured in (i) do not meet the at least one performance metric of the part, to yield an adjusted print head toolpath; and (d) continuing to print the part along the adjusted toolpath. In some embodiments, the printing includes use of fused filament deposition to generate at least a portion of the part.
In some embodiments, the method for optimizing a toolpath trajectory for printing a part using a three-dimensional printer further comprises generating one or more optimization metrics for the part prior to initiating printing of the part. In some embodiments, the one or more optimization metrics comprise one or more members selected from the group consisting of strength, structural deflections, stress, strain, tension, shear, load capacity, stiffness, factor-of safety, weight, strength to weight ratio, envelop geometry, minimal print time, thermal performance, electrical performance, porosity, infill, number of shells, layer height, extruder temperature, solid density, melt density, printing speed, and print head movement speed. In some embodiments, the method for optimizing a toolpath trajectory for printing a part using a three-dimensional printer further comprises prior to initiating printing of the part, analyzing the part by performing thermal modeling, stress modeling, rheology modeling structural analysis, electrical performance, or any combination thereof. In some embodiments, the structural or internal properties comprise one or more members selected from the group consisting of defects, strength, voids, surface roughness, stress, strain, tension, shear, stiffness, factor-of safety, weight, envelop geometry, thermal performance, electrical performance, porosity, infill, number of shells, layer height, solid density, and melt density. In some embodiments, the optical sensor(s) comprise a camera. In some embodiments, the camera detects light in the infrared or visible portion of the electromagnetic spectrum. In some embodiments, the method for optimizing a toolpath trajectory for printing a part using a three-dimensional printer further comprises using an image processing algorithm to evaluate data generated by the optical sensor(s), to extract the one or more structural or internal properties of the part. In some embodiments, the optical sensor(s) are positioned on a robot end-effector of the three-dimensional printer.
In another aspect, the present disclosure provides a method for printing a part having a non-uniform stress profile, comprising (a) receiving, in computer memory, a computer model of the part; (b) partitioning the part into at least (i) a first region having a first stress profile and (ii) a second region having a second stress profile that is different than the first stress profile; (c) generating a print head toolpath in accordance with the first stress profile and the second stress profile, which print head toolpath compensates for stress difference(s) between the first region and the second region; and (d) outputting instructions comprising the toolpath for use in printing the part. In some embodiments, the method for printing a part having a non-uniform stress profile further comprises printing the part.
In some embodiments, the method for printing a part having a non-uniform stress profile further comprises using fused filament fabrication to print the part. In some embodiments, the method for printing a part having a non-uniform stress profile further comprises including fiber reinforcement along maximum non-uniform stress profiles of the first region. In some embodiments, the method for printing a part having a non-uniform stress profile further comprises including fiber reinforcement along maximum non-uniform stress profiles of the second region. In some embodiments, the second region encloses and/or connects to at least a portion of the first region. In some embodiments, the first stress profile and the second stress profile comprise maximum non-uniform stress profiles and minimum non-uniform stress profiles. In some embodiments, the stress profile provides a direction of stress and stress values. In some embodiments, the instructions comprise use of local thickening, strut addition, or hollowing for stress reduction. In some embodiments, the partitioning generates one or more parameters for printing the part, wherein the one or more parameters is selected from the group consisting of filament diameter, layer thickness, infill percentage, infill pattern, raster angle, build orientation, extrudate width, layer height, shell number, infill overlap, and grid spacing. In some embodiments, the partitioning generates one or more numerical control programming code of the computer model partitioned in (b) of the method for printing a part having a non-uniform stress profile. In some embodiments, the partitioning comprises slicing the part into a plurality of layers. In some embodiments, the method for printing a part having a non-uniform stress profile further comprises performing finite element analysis on the tool path.
In another aspect, the present disclosure provides a method for structurally analyzing and/or three-dimensional printing a part, comprising (a) receiving, in computer memory, a model of the part for three-dimensional printing from a material comprising a matrix and fiber material; (b) receiving, in computer memory, one or more properties for the material; (c) using the model, determining a print head tool path for use during the three-dimensional printing of the part; (d) determining a trajectory of at least one stiffness-contributing portion of the material based at least in part on the print head tool path; (e) using one or more computer processors to determine a performance of the part based at least in part on the one or more properties received in (b) and the trajectory of the at least one stiffness-contributing portion determined in (d); and (f) electronically outputting the performance of the part determined in (e).
In some embodiments, the at least one stiffness-contributing portion is at least one of a continuous fiber, chopped fibers, and polymer chains.
In some embodiments, the method further comprises generating a virtual mesh of analytic elements within the model of the part, wherein determining the trajectory of the at least one stiffness-contributing portion comprises determining the trajectory of the at least one stiffness-contributing portion through each of the analytic elements. In some embodiments, further comprising determining a three-dimensional stiffness of each of the analytic elements based at least in part on (i) the trajectory of the at least one stiffness-contributing portion through each of the analytic elements and (ii) the one or more properties of the material and the at least one stiffness-contributing portion, wherein (e) comprises determining the performance of the part based at least in part on an aggregation of three-dimensional stiffnesses of each of the analytic elements.
In some embodiments, determining the three-dimensional stiffness of each of the analytic elements comprises: determining intersection points and directional vectors of the at least one stiffness contributing element within each of the analytic elements; determining a volume of the analytic elements consumed by the at least one stiffness contributing element using the intersection points; and determining the three-dimensional stiffness of each of the analytic elements using the volume of the analytic elements consumed by the at least one stiffness contributing element, the one or more properties of the material, one or more properties of the at least one stiffness contributing element, and the directional vectors.
In some embodiments, the performance of the part determined in (e) comprises at least one of a displacement field and a stress field of the part. In some embodiments, further comprising receiving use information for the part, and wherein (e) comprises determining at least one of the displacement field and the stress field of the part based at least in part on the use information.
In some embodiments, (f) comprises displaying the performance of the part determined in (e) on a user interface. In some embodiments, displaying the performance of the part comprises displaying on the user interface a graphical representation of the performance determined in (e) overlapped with one or more of the model of the part and the print head tool path. In some embodiments, the method further comprises receiving a control instruction from a user regarding viewing of progression of the print head during virtual three-dimensional printing of the part; and responsively displaying on the user interface the performance overlapped with a corresponding portion of the print head tool path on the part.
In some embodiments, the method further comprises generating a comparison of the performance of the part against a reference performance; and using the comparison to generate an additional print head tool path.
In some embodiments, the method further comprises using the print head to generate the part along the print head tool path. In some embodiments, the print head additively generates the part.
In some embodiments, the part is generated if the performance determined in (e) meets a reference performance. In some embodiments, the method further comprises receiving instruction(s) from a user to generate the part prior to using the print head to generate the part.
In some embodiments, the material further comprises a fiber.
Another aspect provides a non-transitory computer-readable medium comprising machine-executable code that, upon execution by one or more computer processors, implements a method for structurally analyzing and/or three-dimensional printing a part, the method comprising: (a) receiving, in computer memory, a model of the part for three-dimensional printing from a material comprising a matrix and fiber material; (b) receiving, in computer memory, one or more properties for the material; (c) using the model, determining a print head tool path for use during the three-dimensional printing of the part; (d) determining a trajectory of at least one stiffness-contributing portion of the material based at least in part on the print head tool path; (e) determining a performance of the part based at least in part on the one or more properties received in (b) and the trajectory of the at least one stiffness-contributing portion determined in (d); and (f) electronically outputting the performance of the part determined in (e).
In some embodiments, the at least one stiffness-contributing portion is at least one of a continuous fiber, chopped fibers, and polymer chains.
In some embodiments, the method further comprises generating a virtual mesh of analytic elements within the model of the part, and wherein determining the trajectory of the at least one stiffness-contributing portion comprises determining the trajectory of the at least one stiffness-contributing portion through each of the analytic elements.
In some embodiments, the method further comprises determining a three-dimensional stiffness of each of the analytic elements based at least in part on (i) the trajectory of the at least one stiffness-contributing portion through each of the analytic elements and (ii) the one or more properties of the material and the at least one stiffness-contributing portion, wherein (e) comprises determining the performance of the part based at least in part on aggregation of three-dimensional stiffnesses of each of the analytic elements.
In some embodiments, determining the three-dimensional stiffness of each of the analytic elements comprises: determining intersection points and directional vectors of the at least one stiffness contributing element within each of the analytic elements; determining a volume of the analytic elements consumed by the at least one stiffness contributing element using the intersection points; and determining the three-dimensional stiffness of each of the analytic elements using the volume of the analytic elements consumed by the at least one stiffness contributing element, the one or more properties of the material, one or more properties of the at least one stiffness contributing element, and the directional vectors.
In some embodiments, the performance of the part determined in (e) comprises at least one of a displacement field and a stress field of the part. In some embodiments, the method further comprises receiving use information for the part, and wherein (e) comprises determining at least one of the displacement field and the stress field of the part based at least in part on the use information.
In some embodiments, (f) comprises displaying the performance of the part determined in (e) on a user interface. In some embodiments, displaying the performance of the part comprises displaying on the user interface a graphical representation of the performance determined in (e) overlapped with one or more of the model of the part and the print head tool path. In some embodiments, the method further comprises: receiving a control instruction from a user regarding viewing of progression of the print head during virtual three-dimensional printing of the part; and responsively displaying on the user interface the performance overlapped with a corresponding portion of the print head tool path on the part.
In some embodiments, the method further comprises generating a comparison of the performance of the part against a reference performance; and generating an additional print head tool path using the comparison. In some embodiments, the method further comprises using the print head to generate the part along the print head tool path. In some embodiments, the part is generated if the performance determined in (e) meets a reference performance.
In another aspect, a system for structurally analyzing and/or three-dimensional printing a part is provided. The system comprises computer memory comprising computer-executable instructions stored therein for analyzing and/or three-dimensional printing the part; and one or more computer processors in electrical communication with the computer memory and programmed to execute the computer-executable instructions to: (a) receive, in the computer memory, a model of the part for three-dimensional printing from a material comprising a matrix and fiber material; (b) receive, in the computer memory, one or more properties of the material; (c) using the model, determine a print head tool path for use during the three-dimensional printing of the part; (d) determine a trajectory of the at least one stiffness-contributing portion of the material based at least in part on the print head tool path; (e) determine a performance of the part based at least in part on the one or more properties received in (b) and the trajectory of the at least one stiffness-contributing portion determined in (d); and (f) electronically output the performance of the part determined in (e).
In another aspect, the present disclosure provides a method for structurally analyzing a printed part (or object). The method may include receiving a model of the part to be printed from a material consisting of at least a matrix, receiving properties for the material, and determining a print head tool path for printing the part. The method may also include determining a trajectory of at least one stiffness-contributing portion of the material. The trajectory may be determined based on the print head tool path. The method may further include predicting a performance of the part based on the properties and the trajectory, and displaying the predicted performance of the part.
In another aspect, the present disclosure provides a method for structurally analyzing a part, comprising (a) receiving a model of the part to be printed from a material consisting of at least a matrix; (b) receiving properties for the material; (c) determining a print head tool path for printing the part; (d) determining a trajectory of at least one stiffness-contributing portion of the material based on the print head tool path; (e) predicting a performance of the part based on the properties and also based on the trajectory of the at least one stiffness-contributing portion; and displaying the predicted performance of the part.
In another aspect, the present disclosure provides a non-transitory computer-readable medium storing instructions that are executable by at least one processor to cause the at least one processor to perform a method for structurally analyzing a part, the method comprising (a) receiving a model of the part to be printed from a material consisting of at least a matrix; (b) receiving properties for the material; (c) determining a print head tool path for printing the part; (d) determining a trajectory of at least one stiffness-contributing portion of the material based on the print head tool path; (e) predicting a performance of the part based on the properties and also based on the trajectory of the at least one stiffness-contributing portion; and (f) displaying the predicted performance of the part.
In another aspect, the present disclosure provides a system for structurally analyzing a part. The system may include a display, a memory having computer-executable instructions stored thereon, and a processor in communication with the display and configured to execute the stored instructions to receive a model of the part to be printed from a material comprising a matrix and at least one fiber, to receive material properties for the matrix and at least one fiber, to receive intended or predetermined use information associated with the part, and to determine a print head tool path for printing the part. In some cases, the material consists of the matrix and at least one fiber. The processor may also execute the stored instructions to generate a virtual mesh of analytic elements within the model of the part, to determine the trajectory of the at least one fiber through each of the analytic elements based on the print head tool path, and to determine a three-dimensional stiffness of each of the analytic elements based on the trajectory of the at least one fiber through each of the analytic elements and based on the material properties for the matrix and the at least one fiber. The processor may further execute the stored instructions to predict at least one of a stress field and a displacement field of the part based on aggregation of the three-dimensional stiffnesses of the analytic elements and the intended use information, and to show on the display a graphical representation of the predicted at least one of the stress field and the displacement field of the part overlapped with the model of the part and the print head tool path.
Consistent with other disclosed embodiments, non-transitory computer-readable storage media can store program instructions, which may be executed by a computer processor to perform any of the methods described herein.
In another aspect, the present disclosure provides a method for structurally analyzing and printing a part, comprising: (a) receiving, in computer memory, a model of the part for three-dimensional printing from a material comprising a matrix and fiber material; (b) receiving, in computer memory, one or more properties for the material; (c) using the model, determining a print head tool path for use during the three-dimensional printing of the part; (d) generating a virtual mesh of analytic elements within the model of the part and determining a trajectory of at least one stiffness-contributing portion of the material based at least in part on the print head tool path, wherein the trajectory of the at least one stiffness-contributing portion is determined through each of the analytic elements in the virtual mesh; (e) using one or more computer processors to determine a performance of the part based at least in part on the one or more properties received in (b) and the trajectory of the at least one stiffness-contributing portion determined in (d); (f) electronically outputting the performance of the part determined in (e); and (g) using a print head to print the part along the print head tool path. In some embodiments, the at least one stiffness-contributing portion is at least one of a continuous fiber, chopped fibers, and polymer chains. In some embodiments, the method for structurally analyzing and printing a part further comprises determining a three-dimensional stiffness of each of the analytic elements based at least in part on (i) the trajectory of the at least one stiffness-contributing portion through each of the analytic elements and (ii) the one or more properties of the material and the at least one stiffness-contributing portion, wherein (e) comprises determining the performance of the part based at least in part on an aggregation of three-dimensional stiffnesses of each of the analytic elements. In some embodiments, determining the three-dimensional stiffness of each of the analytic elements comprises determining intersection points and directional vectors of the at least one stiffness-contributing portion within each of the analytic elements; determining a volume of the analytic elements consumed by the at least one stiffness-contributing portion using the intersection points; and determining the three-dimensional stiffness of each of the analytic elements using the volume of the analytic elements consumed by the at least one stiffness-contributing portion, the one or more properties of the material, one or more properties of the at least one stiffness-contributing portion, and the directional vectors. In some embodiments, the performance of the part determined in (e) comprises at least one of a displacement field and a stress field of the part. In some embodiments, the method for structurally analyzing and printing a part further comprises receiving use information for the part, and wherein (e) comprises determining at least one of the displacement field and the stress field of the part based at least in part on the use information. In some embodiments, (f) comprises displaying the performance of the part determined in (e) on a user interface. In some embodiments, displaying the performance of the part comprises displaying on the user interface a graphical representation of the performance determined in (e) overlapped with one or more of the model of the part and the print head tool path. In some embodiments, the method for structurally analyzing and printing a part further comprises receiving a control instruction from a user regarding viewing of progression of the print head during virtual three-dimensional printing of the part; and responsively displaying on the user interface the performance overlapped with a corresponding portion of the print head tool path on the part.
In some embodiments, the method for structurally analyzing and printing a part further comprises generating a comparison of the performance of the part against a reference performance; and using the comparison to generate an additional print head tool path. In some embodiments, the print head additively prints the part. In some embodiments, the part is printed if the performance determined in (e) meets a reference performance. In some embodiments, the method for structurally analyzing and printing a part further comprises receiving instruction(s) from a user to print the part prior to using the print head to print the part. In some embodiments, the material further comprises a fiber.
In another aspect, the present disclosure provides a non-transitory computer-readable medium comprising machine-executable code that, upon execution by one or more computer processors, implements a method for structurally analyzing and printing a part, the method comprising: (a) receiving, in computer memory, a model of the part for three-dimensional printing from a material comprising a matrix and fiber material; (b) receiving, in computer memory, one or more properties for the material; (c) using the model, determining a print head tool path for use during the three-dimensional printing of the part; (d) generating a virtual mesh of analytic elements within the model of the part and determining a trajectory of at least one stiffness-contributing portion of the material based at least in part on the print head tool path, wherein the trajectory of the at least one stiffness-contributing portion is determined through each of the analytic elements in the virtual mesh; (e) determining a performance of the part based at least in part on the one or more properties received in (b) and the trajectory of the at least one stiffness-contributing portion determined in (d); (f) electronically outputting the performance of the part determined in (e); and (g) using a print head to print the part along the print head tool path. In some embodiments, the at least one stiffness-contributing portion is at least one of a continuous fiber, chopped fibers, and polymer chains.
In some embodiments, the method further comprises determining a three-dimensional stiffness of each of the analytic elements based at least in part on (i) the trajectory of the at least one stiffness-contributing portion through each of the analytic elements and (ii) the one or more properties of the material and the at least one stiffness-contributing portion, wherein (e) comprises determining the performance of the part based at least in part on aggregation of three-dimensional stiffnesses of each of the analytic elements. In some embodiments, determining the three-dimensional stiffness of each of the analytic elements comprises determining intersection points and directional vectors of the at least one stiffness-contributing portion within each of the analytic elements; determining a volume of the analytic elements consumed by the at least one stiffness-contributing portion using the intersection points; and determining the three-dimensional stiffness of each of the analytic elements using the volume of the analytic elements consumed by the at least one stiffness-contributing portion, the one or more properties of the material, one or more properties of the at least one stiffness-contributing portion, and the directional vectors. In some embodiments, the performance of the part determined in (e) comprises at least one of a displacement field and a stress field of the part. In some embodiments, the method further comprises receiving use information for the part, and wherein (e) comprises determining at least one of the displacement field and the stress field of the part based at least in part on the use information. In some embodiments, (f) comprises displaying the performance of the part determined in (e) on a user interface. In some embodiments, displaying the performance of the part comprises displaying on the user interface a graphical representation of the performance determined in (e) overlapped with one or more of the model of the part and the print head tool path. In some embodiments, the method further comprises: receiving a control instruction from a user regarding viewing of progression of the print head during virtual three-dimensional printing of the part; and responsively displaying on the user interface the performance overlapped with a corresponding portion of the print head tool path on the part.
In some embodiments, the method further comprises: generating a comparison of the performance of the part against a reference performance; and generating an additional print head tool path using the comparison. In some embodiments, the part is printed if the performance determined in (e) meets a reference performance.
In another aspect, the present disclosure provides a system for structurally analyzing and printing a part, comprising computer memory comprising computer-executable instructions stored therein for analyzing and printing the part; one or more computer processors in electrical communication with the computer memory and programmed to execute the computer-executable instructions to: (a) receive, in the computer memory, a model of the part for three-dimensional printing from a material comprising a matrix and fiber material; (b) receive, in the computer memory, one or more properties of the material; (c) using the model, determine a print head tool path for use during the three-dimensional printing of the part; (d) generate a virtual mesh of analytic elements within the model of the part and determine a trajectory of at least one stiffness-contributing portion of the material based at least in part on the print head tool path, wherein the trajectory of the at least one stiffness-contributing portion is determined through each of the analytic elements in the virtual mesh; (e) determine a performance of the part based at least in part on the one or more properties received in (b) and the trajectory of the at least one stiffness-contributing portion determined in (d); and (f) electronically output the performance of the part determined in (e); and (g) using a print head to print the part along the print head tool path.
In some embodiments, the one or more computer processors are programmed to execute the computer-executable instructions to determine a three-dimensional stiffness of each of the analytic elements based at least in part on (i) the trajectory of the at least one stiffness-contributing portion through each of the analytic elements and (ii) the one or more properties of the material and the at least one stiffness-contributing portion. In some embodiments, the one or more computer processors are programmed to execute the computer-executable instructions to determine the performance of the part based at least in part on an aggregation of three-dimensional stiffnesses of each of the analytic elements. In some embodiments, wherein the one or more computer processors are programmed to execute the computer-executable instructions to receive instruction(s) from a user to print the part prior to using the print head to print the part.
In another aspect, the present disclosure provides a method for structurally analyzing a three-dimensional object, comprising (a) using a model of the three-dimensional object, generating a print head tool path that is usable by a print head to print the three-dimensional object from a material comprising a fiber; (b) using one or more computer processors to determine a performance of the three-dimensional object based at least in part on (i) one or more properties of the material and (ii) a trajectory of at least one stiffness-contributing portion of the material determined based at least in part on the print head tool path, wherein the at least one stiffness-contributing portion corresponds to the fiber; and (c) electronically outputting the performance of the three-dimensional object. In some embodiments, the at least one stiffness-contributing portion corresponds to one or more members selected from the group consisting of a continuous fiber, chopped fibers, and polymer chains. In some embodiments, the method for structurally analyzing a three-dimensional object further comprises generating a mesh of analytic elements corresponding to the model of the three-dimensional object; and determining a trajectory of the at least one stiffness-contributing portion through the mesh of analytic elements. In some embodiments, the method for structurally analyzing a three-dimensional object further comprises determining a three-dimensional stiffness of each of the analytic elements using the at least one stiffness-contributing portion. In some embodiments, the method for structurally analyzing a three-dimensional object further comprises determining a three-dimensional stiffness of each of the analytic elements based at least in part on one or more of (i) the trajectory of the at least one stiffness-contributing portion through the analytic elements, (ii) the one or more properties of the material, and (iii) an orientation of the at least one stiffness-contributing portion relative to one another. In some embodiments, the method for structurally analyzing a three-dimensional object further comprises determining intersection points and directional vectors of the at least one stiffness contributing portion; using the intersection points to determine a volume of the analytic elements corresponding to the at least one stiffness contributing portion; and determining the three-dimensional stiffness of each of the analytic elements using the volume of the analytic elements corresponding to the at least one stiffness contributing portion, the one or more properties of the material, one or more properties of the at least one stiffness contributing portion, and the directional vectors. In some embodiments, (b) comprises determining the performance of the three-dimensional object based at least in part on an aggregation of three-dimensional stiffnesses of the analytic elements. In some embodiments, the performance of the three-dimensional object determined in (b) comprises at least one of a displacement field and a stress field of the three-dimensional object.
In some embodiments, the method for structurally analyzing a three-dimensional object further comprises receiving use information for the three-dimensional object; and determining at least one of the displacement field and the stress field of the three-dimensional object based at least in part on the use information. In some embodiments, the method for structurally analyzing a three-dimensional object further comprises displaying, on a graphical user interface, (i) the performance or (ii) the print head tool path. In some embodiments, the method for structurally analyzing a three-dimensional object further comprises displaying, on the graphical user interface, a graphical representation of the performance and one or more of (i) the model of the three-dimensional object, and (ii) the print head tool path. In some embodiments, the method for structurally analyzing a three-dimensional object further comprises receiving instruction from a user to view a progression of the print head during simulated printing of the three-dimensional object along the print head tool path; and displaying on the graphical user interface the performance and at least a portion of the print head tool path. In some embodiments, the method for structurally analyzing a three-dimensional object further comprises transmitting instructions to a three-dimensional printer comprising the print head to print at least a portion of the three-dimensional object along the print head tool path. In some embodiments, the method for structurally analyzing a three-dimensional object further comprises using a three-dimensional printer comprising the print head to print at least a portion of the three-dimensional object along the print head tool path. In some embodiments, the print head additively generates the at least the portion of three-dimensional object.
In some embodiments, the method for structurally analyzing a three-dimensional object further comprises prior to using the print head to print the at least the portion of the three-dimensional object, receiving instruction(s) from a user to print the at least the portion of the three-dimensional object. In some embodiments, the at least the portion of the three-dimensional object is printed if the performance meets with respect to at least one reference performance. In some embodiments, the method for structurally analyzing a three-dimensional object further comprises repeating (c) to generate one or more additional print head tool paths. In some embodiments, the method for structurally analyzing a three-dimensional object further comprises generating an additional print head tool path upon processing the performance of the three-dimensional object against at least one reference performance, which additional print head tool path provides an additional performance of the three-dimensional object; and electronically outputting the additional print head tool path, wherein the additional print head tool path is usable by the print head to print the three-dimensional object from the material comprising the fiber.
In another aspect, the present disclosure provides a non-transitory computer-readable medium comprising machine-executable code that, upon execution by one or more computer processors, implements a method for structurally analyzing a three-dimensional object, the method comprising (a) using a model of the three-dimensional object, generating a print head tool path that is usable by a print head to print the three-dimensional object from a material comprising a fiber; (b) determining a performance of the three-dimensional object based at least in part on (i) one or more properties of the material and (ii) a trajectory of at least one stiffness-contributing portion of the material determined based at least in part on the print head tool path, wherein the at least one stiffness-contributing portion corresponds to the fiber; and (c) electronically outputting the performance of the three-dimensional object.
In another aspect, the present disclosure provides a system for structurally analyzing a three-dimensional object, comprising computer memory comprising machine-executable instructions stored therein for structurally analyzing the three-dimensional object and one or more computer processors in electrical communication with the computer memory and programmed to execute the machine-executable instructions to (i) use a model of the three-dimensional object to generate a print head tool path that is usable by a print head to print the three-dimensional object from a material comprising a fiber; (ii) determine a performance of the three-dimensional object based at least in part on (a) one or more properties of the material and (b) a trajectory of at least one stiffness-contributing portion of the material determined based at least in part on the print head tool path, wherein the at least one stiffness-contributing portion corresponds to the fiber; and (iii) electronically output the performance of the three-dimensional object. In some embodiments, the system for structurally analyzing a three-dimensional object further comprises a print head that is configured to print the three-dimensional object along the print head tool path.
In an aspect, the present disclosure provides a method for structurally analyzing and/or printing a part. The method may include receiving a model of the part, and determining a layout of voxels within the model. The method may also include generating a mesh of analysis elements within the model, and predicting a performance of the part based at least in part on intersections of the voxels and the analysis elements. The method may further comprise displaying the predicted performance of the part.
In another aspect, the present disclosure provides a system for structurally analyzing and/or printing a part. The system may include a display, a memory having computer-executable instructions stored thereon, and a processor in communication with the display and configured to execute the stored instructions to receive a model of the part, to receive a desired (or predetermined) performance of the part, and to determine a layout of voxels within the model based at least in part on the desired performance. The processor may also execute the stored instructions to determine properties for each of the voxels in the layout, to generate a mesh of analysis elements within the model, and to determine local properties of each of the analysis elements of the mesh based at least in part on intersections of the voxels and the analysis elements and based at least in part on the properties of each of the voxels. The processor may further execute the instructions to receive intended (or predetermined) use information for the part, and to predict a performance of the part based at least in part on an aggregation of the properties of each of the analysis elements and based at least in part on the intended use information. The processor may execute the instructions to display the predicted performance of the part overlapped with the model of the part and the layout of the voxels, to make a comparison of the predicted performance of the part with the desired (or predetermined) performance, and to selectively generate a new layout of the voxels based at least in part on the comparison.
Consistent with other disclosed embodiments, non-transitory computer-readable storage media can store program instructions, which are executed by a processor to perform any of the methods described herein.
In another aspect, a method for structurally analyzing and/or printing a part comprises (a) receiving, in computer memory, a model of the part for three-dimensional printing; (b) determining a layout of voxels within the model; (c) generating a mesh of analysis elements within the model; (d) using one or more computer processors to determine a performance of the part based at least in part on intersections of the voxels and the analysis elements; and (e) providing an electronic output of the performance of the part determined in (d).
In another aspect, a non-transitory computer-readable medium comprises machine-executable code that, upon execution by one or more computer processors, implements a method for structurally analyzing and/or printing a part, the method comprising (a) receiving, in computer memory, a model of the part for three-dimensional printing; (b) determining a layout of voxels within the model; (c) generating a mesh of analysis elements within the model; (d) determining a performance of the part based at least in part on intersections of the voxels and the analysis elements; and (e) providing an electronic output of the performance of the part determined in (d).
In another aspect, a system for structurally analyzing and/or printing a part comprises computer memory comprising computer-executable instructions stored therein for analyzing and/or printing the part; and one or more computer processors in electrical communication with the computer memory and programmed to execute the computer-executable instructions to (a) receive a model of the part for three-dimensional printing; (b) determine a layout of voxels within the model; (c) generate a mesh of analysis elements within the model; (d) determine a performance of the part based at least in part on intersections of the voxels and the analysis elements; and (e) provide an electronic output of the performance of the part determined in (d).
In another aspect, a system for structurally analyzing a part comprises a display; a memory having computer-executable instructions stored thereon; and a processor in communication with the display and configured to execute the stored instructions to receive a model of the part; receive a predetermined performance of the part; determine a layout of voxels within the model based at least in part on the predetermined performance; determine one or more properties for each of the voxels in the layout; generate a mesh of analysis elements within the model; determine one or more local properties of each of the analysis elements of the mesh based at least in part on intersections of the voxels and the analysis elements and based at least in part on the one or more properties of each of the voxels; receive use information for the part; predict a performance of the part based at least in part on an aggregation of the one or more local properties of each of the analysis elements and based at least in part on the use information; display the performance of the part overlapped with the model of the part and the layout of the voxels; make a comparison of the performance of the part with the predetermined performance; and selectively generate a new layout of the voxels based at least in part on the comparison.
Additional aspects and advantages of the present disclosure will become readily apparent to those skilled in this art from the following detailed description, wherein only illustrative embodiments of the present disclosure are shown and described. As will be realized, the present disclosure is capable of other and different embodiments, and its several details are capable of modifications in various obvious respects, all without departing from the disclosure. Accordingly, the drawings and description are to be regarded as illustrative in nature, and not as restrictive.
All publications, patents, and patent applications mentioned in this specification are herein incorporated by reference to the same extent as if each individual publication, patent, or patent application was specifically and individually indicated to be incorporated by reference. To the extent publications and patents or patent applications incorporated by reference contradict the disclosure contained in the specification, the specification is intended to supersede and/or take precedence over any such contradictory material.
The novel features of the invention are set forth with particularity in the appended claims. A better understanding of the features and advantages of the present invention will be obtained by reference to the following detailed description that sets forth illustrative embodiments, in which the principles of the invention are utilized, and the accompanying drawings (also “Figure” and “FIG.” herein), of which:
While various embodiments of the invention have been shown and described herein, it will be obvious to those skilled in the art that such embodiments are provided by way of example only. Numerous variations, changes, and substitutions may occur to those skilled in the art without departing from the invention. It should be understood that various alternatives to the embodiments of the invention described herein may be employed.
The term “three-dimensional printing” (also “3D printing”), as used herein, generally refers to a process or method for generating a 3D part (or object). For example, 3D printing may refer to sequential addition of material layer or joining of material layers or parts of material layers to form a three-dimensional (3D) part or structure, in a controlled manner (e.g., under automated control). In the 3D printing process, the deposited material can be fused, sintered, melted, bound or otherwise connected to form at least a part of the 3D object. Fusing the material may include melting or sintering the material. Binding can comprise chemical bonding. Chemical bonding can comprise covalent bonding. Examples of 3D printing include additive printing (e.g., layer by layer printing, or additive manufacturing). The 3D printing may further comprise subtractive printing.
The term “part,” as used herein, generally refers to an object. A part may be generated using 3D printing methods and systems of the present disclosure. A part may be a portion of a larger part or object, or an entirety of an object. A part may have various form factors, as may be based on a model of such part. Such form factors may be predetermined.
The term “voxel,” as used herein, generally refers to a value on a regular grid in three-dimensional (3D) space. A voxel may have various dimensions in 3D space. A voxel may have volume. A voxel may have a unit volume. A voxel may have various shapes and sizes. In some examples, a voxel has a shape that is a sphere, pyramid (e.g., square-based pyramid or triangle-based pyramid), cube, cuboid, cylinder, cone, hexagonal prism, triangle prism, or a partial shape or a combination of shapes thereof. In some cases, in 3D printing, a voxel represents an individual fiber of a 3D printed part.
Examples of 3D printing methodologies comprise extrusion, wire, granular, laminated, light polymerization, or power bed and inkjet head 3D printing. Extrusion 3D printing can comprise robo-casting, fused deposition modeling (FDM) or fused filament fabrication (FFF). In some cases, the 3D printing may be performed without extrusion. For example, beads may be deposited (e.g., in FFF) in a manner that does not involve extrusion. Wire 3D printing can comprise electron beam freeform fabrication (EBF3). Granular 3D printing can comprise direct metal laser sintering (DMLS), electron beam melting (EBM), selective laser melting (SLM), selective heat sintering (SHS), or selective laser sintering (SLS). Power bed and inkjet head 3D printing can comprise plaster-based 3D printing (PP). Laminated 3D printing can comprise laminated object manufacturing (LOM). Light polymerized 3D printing can comprise stereo-lithography (SLA), digital light processing (DLP) or laminated object manufacturing (LOM).
3D printing may be performed using various materials. In some examples, a material that may be used in 3D printing includes a polymeric material, elemental metal, metal alloy, a ceramic, an allotrope of elemental carbon, or a combination thereof. The allotrope of elemental carbon may comprise amorphous carbon, graphite, graphene, diamond, or fullerene. The fullerene may be selected from the group consisting of a spherical, elliptical, linear, and tubular fullerene. The fullerene may comprise a buckyball or a carbon nanotube. The material may comprise an organic material, for example, a polymer or a resin. The material may comprise a solid or a liquid. The solid material may comprise powder material. The powder material may be coated by a coating (e.g., organic coating such as the organic material (e.g., plastic coating)). The powder material may comprise sand. The material may be in the form of a powder, wire, pellet, or bead. The material may have one or more layers. The material may comprise at least two materials. In some cases, the material includes a reinforcing material (e.g., that forms a fiber). The reinforcing material may comprise a carbon fiber, Kevlar®, Twaron®, ultra-high-molecular-weight polyethylene, or glass fiber.
The term “stiffness-contributing portion,” as used herein, generally refers to an element that provides structural support to a part. A stiffness-contributing portion may be a fiber. The fiber may be continuous or discontinuous. The fiber can include one or more strands, such as one or more strands of a polymeric material. The fiber may include a plurality of strands.
The flow chart diagram illustrates a staggered and iterative approach to the optimization. Prior to printing, a computer aided design (CAD) file 101 may be evaluated to determine the initial topology 103 of the part. After determining the topology of the part, a tool path 104 may be generated (e.g., by slicing or partitioning) by a tool path generator. In some cases, an algorithm, such as analytical finite element analysis (AFEA), may be performed to determine the part geometry and stress parameters 106. Initial material data and design requirements 102 may be inputted as additional factors for AFEA. The part may then be optimized to determine the improved tool path and topology 107. If the user's design requirements are met and optimized 108, then the optimized toolpath 109 may be used to print the part 110. If the design requirements are not met and not optimized 108, then the results 105 are sent back to the tool path generator 104 for another iteration of the optimization.
The optimizations for topology and material orientation (e.g., tool path) can be staggered. The optimizations for topology and material orientation can be accomplished separately in order to improve computational speed. For example, the topology optimization may be employed at most about 1 time, at most about 2 times, at most about 3 times, at most about 4 times, or at most about 5 times. Alternatively, such optimization may be employed at least 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, or more times. However, the material orientation, density and robot tool path are closely coupled, and, the optimum tool path as predicted by the structural optimization may not be performed by a robot. As a result, more iterations may be performed until the optimization converges meet acceptable structural performance criteria while being within the robots tool path capability. Despite the optimization being a staggered approach, the optimization may also comprise performing the material orientation, material density and topology in a fully coupled manner.
Printer 14 may be comprised of components that are controlled to create part 12 layer-by-layer using RFF technology. Specifically, printer 14 may include a support 16, a drive 18, and one or more heads 20. Each head 20 may be coupled to support 16 via drive 18. In the context of
Each head 20 (only one shown in
Drive 18 may move head 20 in a particular trajectory (e.g., a trajectory corresponding to an intended shape and size of part 12) at the same that the matrix-coated fiber(s) discharge from head 20, such that continuous tracks T of matrix-coated fiber(s) are formed along the trajectory. These tracks T of matrix-coated fiber(s) can be laid adjacent and/or on top of each other while the matrix is still in a liquid or semi-liquid state. The adjacent tracks T of matrix-coated fiber(s) form a connected layer, and the overlapping layers are built up to form part 12.
Example tracks T are illustrated in
It has been determined that a trajectory of portions of the material that make up each of the tracks T shown in
The alignment of the continuous fibers, chopped fibers, and polymer chains, along with properties of the matrix, properties of the fiber(s), a ratio of fiber volume-to-matrix volume within each track, etc., may have an effect on a performance (e.g., a strength, a deformation, a deflection, etc.) of part 12. Accordingly, the performance of part 12 may be selectively adjusted by adjusting the trajectory of head 20 during layer formation and/or adjusting the properties of the matrix, the properties of the fiber(s), the ratio of fiber area-to-matrix area, etc.
Any number of separate computing devices 15 may be used to control the trajectory of head 20 during formation of part 12 and/or to analyze the performance characteristics of part 12 before and/or after formation. Computing device 15 may include a display 24, one or more computer processors (“processors”) 26, any number of input/output (“I/O”) devices 28, and one or more memories 30 for storing programs 32 and data 34. Programs 32 may include, for example, any number of analysis and/or printing apps 36 and an operating system 38.
Display 24 of computing device 15 may include a liquid crystal display (LCD), a light emitting diode (LED) screen, an organic light emitting diode (OLED) screen, and/or another display device. Display 24 may be used for display of data under the control of processor 26.
Computer processor (“processor”) 26 may be a single or multi-core processor, in some cases configured with virtual processing technologies, and use logic to simultaneously execute and control any number of operations. Processor 26 may be configured to implement virtual machine or other technologies to execute, control, run, manipulate, and store any number of software modules, applications, programs, etc. In addition, in some cases, processor 26 may include one or more specialized hardware, software, and/or firmware modules (not shown) specially configured with particular circuitry, instructions, algorithms, and/or data to perform functions of the disclosed methods. It is appreciated that other types of processor arrangements may be implemented that provide for the capabilities disclosed herein.
Memory 30 can be a volatile or non-volatile, magnetic, semiconductor, tape, optical, removable, non-removable, or other type of storage device or tangible and/or non-transitory computer-readable medium that stores one or more executable programs 32, such as analysis and/or printing apps 36 and operating system 38. Common forms of non-transitory media include, for example, a flash drive, a flexible disk, a hard disk, a solid state drive, magnetic tape or other magnetic data storage medium, a CD-ROM or other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM or other flash memory, NVRAM, a cache, a register or other memory chip or cartridge, and networked versions of the same.
Memory 30 may store instructions that enable processor 26 to execute one or more applications, such as analysis and/or printing applications 36, operating system 38, and any other type of application or software available or executable on computer systems. Alternatively or additionally, the instructions, application programs, etc. can be stored in an internal and/or external database (e.g., a cloud storage system—not shown) that is in direct communication with computing device 15, such as one or more databases or memories accessible via one or more networks (not shown). Memory 30 can include one or more memory devices that store data and instructions usable to perform one or more features provided herein. Memory 30 can also include any combination of one or more databases controlled by memory controller devices (e.g., servers, etc.) or software, such as document management systems, Microsoft SQL databases, SharePoint databases, Oracle™ databases, Sybase™ databases, or other relational databases.
Computing device 15 may be communicatively connected to one or more remote memory devices (e.g., remote databases—not shown) through a network. The remote memory devices can be configured to store information that computing device 15 can access and/or manage. By way of example, the remote memory devices may be document management systems, Microsoft SQL database, SharePoint databases, Oracle™ databases, Sybase™ databases, Cassandra, HBase, or other relational or non-relational databases or regular files. Systems and methods provided herein, however, are not limited to separate databases or even to the use of a database.
Programs 32 may include one or more software or firmware modules causing processor 26 to perform one or more functions disclosed herein. Moreover, processor 26 can execute one or more programs located remotely from computing device 15. For example, computing device 15 can access one or more remote programs that, when executed, perform one or more functions disclosed herein. In some cases, programs 32 stored in memory 30 and executed by processor 26 can include one or more of analysis and/or printing apps 36 and operating system 38. Analysis and/or printing apps 36 may cause processor 26 to perform one or more functions of the disclosed methods.
Operating system 38 may perform operating system functions when executed by one or more processors such as processor 26. By way of example, operating system 38 may include Microsoft Windows™, Unix™, Linux™, OSX™, and IOS™ operating systems, Android™ operating systems, or another type of operating system 38. Accordingly, disclosed embodiments can operate and function with computer systems running any type of operating system 38.
I/O devices 28 may include one or more interfaces for receiving signals or input from a user and/or printer 14, and for providing signals or output to printer 14 that allow part 12 to be printed. For example, computing device 15 can include interface components for interfacing with one or more input devices, such as one or more keyboards, mouse devices, and the like, which enable computing device 15 to receive input from a user (not shown).
The disclosed systems and methods may be used to manufacture and/or analyze high-performance parts (e.g., parts with or without reinforcing fibers) of any shape and size. Performance analysis of the parts may be performed by the disclosed system before, during, and/or after fabrication. In this manner, the parts may be produced with a higher level of confidence regarding performance in an intended application and with less time and expense. Operation of system 10 will now be described in detail, with respect to method 200 shown in
As can be seen in
Processor 26 may use programs 32 to create a virtual mesh of connected analytic elements 42 (shown in
Information regarding an intended (or predetermined) use of part 12 (e.g., constraints—shown on the left of
As shown in
A stiffness of the elements 42 scales with the number and/or distribution of stiffness-contributing portions. For example, a first element with a greater number of stiffness-contributing portions as compared to a second element may be more stiff than the second element. As an alternative or in addition, the orientation of individual stiffness-contributing portions relative to one another may determine the stiffness of the elements. In an example, the elements 42 include a plurality of stiffness-contributing portions that are parallel or substantially parallel to one another, which may yield a stiffness that is different than a scenario in which the stiffness-contributing portions are not parallel to another (e.g., the stiffness-contributing portions are perpendicular to one another).
The arrangement of fibers within each analytic element 42 may be represented as a set of intersection points (i.e., points where each fiber intersects each analytic element 42 and/or each other) and directional vectors. The intersection points and directional vectors may be determined as a function of the virtual mesh created at operation 220 and a tool path (intended or actual) of head 20. The tool path may be manually generated, automatically generated by processor 26 as a function of a size and shape of model 40 and known or predetermined capabilities of printer 14, and/or manually selected by the user from a listing of available tool paths that have been automatically generated. Tool path generation may take place at a Operation 240.
After receiving the intended use information, the material properties information, and the tool path information, processor 26 may be configured to determine performance characteristics of each analytic element 42 (Operation 250). This may include, among other things, solving for the locations of the intersection points and the directional vectors described above. This is solved based on 3D geometry based algorithms (e.g., creating a convex hull from intersection points between a tetrahedron and a hexahedron, and then subsequently computing a volume of the convex hull to determine a filament contribution to the stiffness of the element). In addition, processor 26 may use the intersection points, the directional vectors, and the fiber properties (e.g., an assumed rectangular, circular, or oval cross-sectional fiber area) to determine a volume of the fibers and a remaining volume of the matrix encompassed within each analytic element 42. Further, processor 26 may determine, based also on the intersection points, the directional vectors, the fiber properties (e.g., compressive and/or tensile stiffness), and the matrix properties, the combined contributions of the fibers and the matrix to a three-dimensional stiffness of each analytic element 42.
Processor 26 may then apply the intended use conditions (e.g., the constraints and forces received at operation 230) at corresponding nodes and/or surfaces of analytic elements 42 in the mesh of model 40 (see
The displacement and/or stress fields may be viewed in a variety of ways. For example, a user interface, such as a graphical user interface or web-based user interface, may be provided that includes a slider (e.g., an actual or virtual slider), which can be moved by a user (e.g., left to right) to generate a viewing control instruction. Based on the viewing control instruction, a virtual progression of part 12 may be generated showing how part 12 will be printed and corresponding displacement and/or stress fields inside of part 12. In other words, the predicted performance of part 12 may be shown overlapped with only a portion of the print head tool path on part 12, the portion corresponding to a position of the slider.
Processor 26 may be configured to implement an optimization operation using the results of operation 260. Specifically, processor 26 may be configured to determine if the predicted performance of part 12 is acceptable (Operation 270), and to selectively repeat method 200 using a different tool path (and corresponding fiber trajectories) when the predicted performance is unacceptable. For example, processor 26 may compare one or more predicted performance parameters (e.g. stress field and/or displacement field) to one or more design criteria (maximum displacement field, maximum stress field, etc.). When the comparison indicates that part 12 is likely to perform poorly, processor 26 may return to operation 240 and generate an alternative tool path. Control may then loop through operations 240-280 until acceptable part performance is determined, at which point processor 26 may cause printer 14 to fabricate part 12 using the corresponding tool path (Operation 290).
In some cases, while the part 12 is printed, the performance of the part may be determined and used to update the tool path. In principle, this may be used to optimize fabrication of the part 12.
Printer 1014 may be comprised of components that are controlled to create part 1012 layer-by-layer using SLA technology. Specifically, printer 1014 may include a build chamber 1016, an elevator 1018 submerged within a photopolymer resin 1020, and an energy source 1022. During operation, elevator 1018 may selectively lower build platform 1024 a desired (or predetermined) distance into resin 1020, such that a specific thickness of resin 1020 coats build platform 1024 (and/or any previously fabricated portion(s) of part 1012). Energy source 1022 may then selectively generate a pattern within resin 1020 (e.g., by exposing select areas of resin 1020 to ultraviolet light) to produce individual voxels 1026 of solidified material that bond together to form component 1012.
Any number of separate computing devices 1015 may be used to control formation of part 1012 and/or to analyze performance characteristics of part 1012 before and/or after formation. Computing device 1015 may include a display 1025, one or more computer processors (“processors”) 1027, any number of input/output (“I/O”) devices 1028, and one or more memories 1030 for storing one or more executable programs 1032 and data 1034. Programs 1032 may include, for example, any number of analysis and/or printing applications 1036 and an operating system 1038.
Display 1025 of computing device 1015 may include a liquid crystal display (LCD), a light emitting diode (LED) screen, an organic light emitting diode (OLED) screen, and/or another display device. Display 1025 may be used for display of data under the control of processor 1027.
Computer processor (“processor”) 1027 may be a single or multi-core processor, in some cases configured with virtual processing technologies, and use logic to simultaneously execute and control any number of operations. Processor 1027 may be configured to implement virtual machine or other technologies to execute, control, run, manipulate, and store any number of software modules, applications, programs, etc. In addition, processor 1027 may include one or more specialized hardware, software, and/or firmware modules (not shown) specially configured with particular circuitry, instructions, algorithms, and/or data to perform functions of the disclosed methods. It is appreciated that other types of processor arrangements may be implemented that provide for the capabilities disclosed herein.
Memory 1030 can be a volatile or non-volatile, magnetic, semiconductor, tape, optical, removable, non-removable, or other type of storage device or tangible and/or non-transitory computer-readable medium that stores programs 1032, such as analysis and/or printing applications 1036 and operating system 1038. Common forms of non-transitory media include, for example, a flash drive, a flexible disk, a hard disk, a solid state drive, magnetic tape or other magnetic data storage medium, a CD-ROM or other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM or other flash memory, NVRAM, a cache, a register or other memory chip or cartridge, and networked versions of the same.
Memory 1030 may store instructions that enable processor 1027 to execute one or more applications, such as analysis and/or printing applications 1036, operating system 1038, and any other type of application or software available or executable on computer systems. Alternatively or additionally, the instructions, application programs, etc. can be stored in an internal and/or external database (e.g., a cloud storage system—not shown) that is in direct communication with computing device 1015, such as one or more databases or memories accessible via one or more networks (not shown). Memory 1030 can include one or more memory devices that store data and instructions usable to perform one or more features provided herein. Memory 1030 can also include any combination of one or more databases controlled by memory controller devices (e.g., servers, etc.) or software, such as document management systems, Microsoft SQL databases, SharePoint databases, Oracle™ databases, Sybase™ databases, or other relational databases.
Computing device 1015 may be communicatively connected to one or more remote memory devices (e.g., remote databases—not shown) through a network. The remote memory devices can be configured to store information that computing device 1015 can access and/or manage. By way of example, the remote memory devices may be document management systems, Microsoft SQL database, SharePoint databases, Oracle™ databases, Sybase™ databases, Cassandra, HBase, or other relational or non-relational databases or regular files. Systems and methods provided herein, however, are not limited to separate databases or even to the use of a database.
Programs 1032 may include one or more software or firmware modules causing processor 1027 to perform one or more functions disclosed herein. Moreover, processor 1027 can execute one or more programs located remotely from computing device 1015. For example, computing device 1015 can access one or more remote programs that, when executed, perform one or more functions disclosed herein. In some cases, programs 1032 stored in memory 1030 and executed by processor 1027 can include one or more of analysis and/or printing applications 1036 and operating system 1038. Analysis and/or printing applications 1036 may cause processor 1027 to perform one or more functions of the disclosed methods.
Operating system 1038 may perform operating system functions when executed by one or more processors such as processor 1027. By way of example, operating system 1038 may include Microsoft Windows™, Unix™, Linux™, OSX™, and IOS™ operating systems, Android™ operating systems, or another type of operating system 1038. Accordingly, disclosed embodiments can operate and function with computer systems running any type of operating system 1038.
I/O devices 1028 may include one or more interfaces for receiving signals or input from a user and/or printer 1014, and for providing signals or output to printer 1014 that allow part 1012 to be printed. For example, computing device 1015 can include interface components for interfacing with one or more input devices, such as one or more keyboards, mouse devices, and the like, which enable computing device 1015 to receive input from a user (not shown).
As shown in
It has been determined that a layout of specific voxels 1026 within part 1012 may contribute to an overall performance of part 1012. For example, a greater concentration of a first configuration of voxels 1026 (e.g., a first material, size, and/or shape of voxels 1026 having a first density) within a particular location in part 1012 may provide a first property to that location, while a greater concentration of a second configuration of voxels 1026 (e.g., a second material, size, and/or shape of voxels 1026 having a second density) within another location in part 1012 may provide a second property to that location. Accordingly, the overall performance of part 1012 may be selectively adjusted by adjusting the concentrations, locations, and/or configurations of voxels 1026 used within part 1012.
The disclosed system may be used to manufacture and/or analyze high-performance parts of any shape and size. Performance analysis of the parts may be performed by the disclosed system before, during, and/or after fabrication. In this manner, the parts may be produced with a higher level of confidence regarding performance in an intended (or predetermined) application and with less time and expense. Operation of system 1010 will now be described in detail, with respect to method 1200 shown in
As can be seen in
Processor 1027 may use programs 1032 to create a virtual mesh of connected analytic elements 1142 (shown in
Information regarding an intended (or predetermined) use of part 1012 (e.g., constraints—shown on the left of
Computing device 1015 may be configured to pixelate the model of part 1012 received, retrieved, and/or generated at operation 1210. In particular, processor 1027 may use programs 1032 to generate a virtual layout of voxels 1026 within model 1140 of part 1012 (operation 1240). Part 1012 may be created in an infinite number of different ways via any combination of different voxels 1026 having different materials, shapes, sizes, locations, orientations, and/or properties, and processor 1027 may generate at least one particular combination at operation 1240 for use in analyzing part 1012. The voxel layout may be automatically generated as a function of the size and shape of model 1140, capabilities of printer 1014, and/or the desired performance of part 1012. It is contemplated that the particular layout of voxels 1026 automatically generated by processor 1027 at operation 1240 may be manually overridden and/or adjusted, if desired before continuing to operation 1250. For example, the voxel layout may be manually selected by the user (e.g., from a listing of available layouts that have been automatically generated) and/or selectively modified after automatic selection.
The method may be fully automated. The method may be based on optimization (e.g., constrained optimization) to fully optimize the performance of the part subject to certain constraints, or, use combined performance indices which may weigh the cost of fully optimizing the part based on performance with other considerations, such as, for example time to manufacture and/or cost of final product.
As shown in
In some examples, a stiffness of the elements 1142 scales with the number and/or distribution of stiffness-contributing portions. For example, a first element with a greater number of stiffness-contributing portions as compared to a second element may be more stiff than the second element. As an alternative or in addition, the orientation of individual stiffness-contributing portions relative to one another may determine the stiffness of the elements. In an example, the elements 1142 include a plurality of stiffness-contributing portions that are parallel or substantially parallel to one another, which may yield a stiffness that is different than a scenario in which the stiffness-contributing portions are not parallel to another (e.g., the stiffness-contributing portions are perpendicular to one another).
The arrangement of voxels 1026 within each analytic element 1142 may be represented as a set of intersections (e.g., points, lines and/or planes where each voxel 1026 intersects a border of each analytic element 1142 and/or each other) and directional vectors corresponding to the properties of each individual voxel 1026. The intersections and directional vectors may be determined as functions of the virtual mesh created at operation 1220 and the particular layout of voxels 1026 generated by processor 1027.
After receiving the intended use information, the desired performance information, and the voxel layout information, processor 1027 may be configured to determine performance characteristics of each analytic element 1142 (operation 1250). This may include, among other things, solving for the locations of the intersections and the directional vectors described above. This may be solved based at least in part on 3D geometry based algorithms (e.g., creating a convex hull from intersection points between a tetrahedron and a hexahedron, and then subsequently computing a volume of the convex hull to determine a voxel contribution to performance characteristic of the element). In addition, processor 1027 may determine, based at least in part on the intersections and the directional vectors, the combined contributions of each voxel 1026 to a three-dimensional characteristic (e.g., hardness, stiffness, conductivity, reactivity, etc.) of each analytic element 1142.
Processor 1027 may then apply the intended use conditions (e.g., the constraints and forces received at operation 1230) to corresponding nodes and/or surfaces of analytic elements 1142 in the mesh of model 1140 (see
The voxel layout may determine or dictate a path of a tool used to generate the part 1012. For example, the voxel layout may define the path of the tool for generating the part 1012. Such layout and path may be updated.
The displacement and/or stress fields may be viewed in a variety of ways. For example, a graphical user interface may be provided that includes a slider (e.g., an actual or virtual slider), which can be moved by a user (e.g., left to right) to generate a viewing control instruction. Based on the viewing control instruction, a virtual progression of part 1012 may be generated showing how part 1012 will be printed and corresponding displacement and/or stress fields inside of part 1012. In other words, the predicted performance of part 1012 may be shown overlapped with a portion of the voxel layout of part 1012 or only a portion of the voxel layout of part 12, the portion corresponding to a position of the slider. The predicted performance may be an estimated performance. The predicted performance may be an estimated performance or performance based on known or predetermined criteria for particular classes of material implemented into programs 1032, such as, e.g., failure criteria for composite materials.
Processor 1027 may be configured to implement an optimization routine using the results of operation 1260. Specifically, processor 1027 may be configured to determine if the predicted performance of part 1012 is acceptable (operation 1280), and to selectively repeat method 1200 using a different layout of voxels 1026 when the predicted performance is unacceptable. For example, processor 1027 may compare one or more predicted performance parameters (e.g., the stress field and/or the displacement field) to one or more desired performance criteria received at operation 1230. When the comparison indicates that part 1012 is likely to perform poorly, processor 1027 may return to operation 1240 and generate an alternative voxel layout. The alternative voxel layout may be based on analysis predictions combined with manufacturing capabilities, and may be determined manually or based on optimization techniques provided by programs 1032. Control may then loop through operations 1240-1280 until acceptable part performance is determined, at which point processor 1027 may cause printer 1014 to fabricate part 1012 using the corresponding voxel layout (operation 1290).
In some cases, while the part 1012 is printed, the performance of the part may be determined and used to update the layout of voxels 1026. This may be used to optimize fabrication of the part 1012. In some examples, the layout of voxels 1026 may yield a tool path for the part 1012 being printed. See, e.g., U.S. patent application Ser. No. 15/232,767, which is entirely incorporated herein by reference.
In another aspect, the disclosure provides a method for performing analysis on a part for printing. Upon receiving, in computer memory, a computer model of the part, the computer model of the part may be partitioned. The part can be partitioned into at least (i) a first region comprising one or more voids and (ii) a second region that is filled with a representation of the material used for forming the part to yield a partitioned computer model. At least a first mesh may be generated in the first region and at least a second mesh may be generated in a second region to yield a mesh array in the partitioned computer model. The mesh array may be used to determine one or more properties of the part. The mesh array can include a first mesh and a second mesh. One or more properties may be analyzed to determine whether the one or more properties meet a predetermined value(s). The mesh array may be used to generate a print head toolpath usable to print the part if one or more properties meet a predetermined value(s). The print head toolpath can be used to print the part. The part may be printed using fused filament fabrication. The first mesh may comprise a plurality of meshes. Partitioning the computer model may comprise slicing the computer model. The method for performing analysis on a part for printing may further comprise electronically outputting the print head tool path on a user interface. The print head toolpath on a user interface can be electronically outputted on a graphical user interface.
Prior to printing the part, a computer aided design (CAD) model can be optimized based on specified requirements. For example, the CAD model may comprise a geometry “envelop”. A geometry envelop may be an initial shell design of the 3D part comprising design requirements and geometric features. The geometry of the CAD model may be received by way of I/O devices. Design requirements can be selected from the group consisting of strength, structural deflections, stress, strain, tension, shear, load capacity, stiffness, factor-of safety, weight, strength to weight ratio, envelop geometry, minimal print time, thermal performance, electrical performance, porosity, infill, number of shells, layer height, extruder temperature, solid density, melt density, printing speed, and print head movement speed.
The CAD model can comprise one or more features of the part that is selected from the group consisting of corners, edges, surfaces, solids, ridges, salient points, and image texture. The geometric features can define the form, fit, and function of the 3D printed part. The geometry envelop may have flexibility, for example, certain regions that are not critical to the form, fit, or function of the part may be adjusted to improve performance or optimize the part's properties.
The CAD model may be initially partitioned according to user input and built in tool path generator rules to produce numerical control programming codes of the partitioned computer model. Partitioning can generate one or more parameters for printing the part. One or more parameters may be selected from the group consisting of filament diameter, layer thickness, infill percentage, infill pattern, raster angle, build orientation, extrudate width, layer height, shell number, infill overlap, and grid spacing. Partitioning can generate one or more numerical control programming code of the partitioned computer model. Numerical control programming code can comprise G-code files and intermediate files. G-code files may be a numerical control programming language and can be used in computer-aided manufacturing as a way of controlling automated machine tools. The actions controlled by the G-code may comprise rapid movement, controlled feed in an arc or straight line, series of controlled feed movements, switch coordinate systems, and a set of tool information. Intermediate files may comprise supplemental files and tools for a primary build output. Additionally, intermediate files can comprise automatically generated source files or build output from helper tools. The information from the G-code files and the intermediate files may be extracted to determine the geometry of the 3D printed part.
Prior to 3D printing a part, a user may select for a solid fill pattern or a sparse fill pattern. A solid fill design may comprise block type structures with continual density throughout the object. The solid fill model can be an exact replica of what a printer can create when the part is processed in solid design. The solid fill option can be advantageous if part functionality and structural integrity are important factors for the object.
Following slicing, the part can be partitioned into at least a first region comprising one or more voids.
Alternatively, prior to 3D printing, a user may select for a sparse fill pattern. A sparse fill design does not produce a solid model. When viewed from the exterior, the printed part may still look entirely solid. However, the inside may comprise a web like pattern that can act to maintain the strength of the printed part. The pattern may also be a honeycomb structure. The sparse fill method comprises advantages including reduced weight, reduced cost, reduced build time, convenient manipulation of mechanical properties through design, advanced aesthetics without additional CAD work, and self-supporting parts. Since the sparse infill patterns can result in self-supporting parts, there one or more post processing operations may be employed, for example, cleaning of the support material. In addition, the sparse fill method can be used for strengthening porous objects by injecting resins through fill compositing.
Following slicing, the part can be partitioned into at least (i) a first region comprising one or more voids and (ii) a second region that is filled with a representation of a material used to form the part to yield a partitioned computer model. The second region can either enclose and/or connect to at least a portion of the first region. One or more of a first mesh may be generated in the first region and one or more of a second mesh may be generated in a second region to yield a mesh array in the partitioned computer model. The first mesh may be at a smaller scale than the second mesh. The first mesh may comprise infill regions. The second mesh may comprise large scale regions. The large scale regions can be meshed and processed with a tool path generator. Partitioning can comprise slicing the part into a plurality of layers. Partitioning may determine the toolpath based upon built in rules with the user input. The method for performing analysis on a part for printing may further comprise performing finite element analysis on the toolpath. The toolpath may further be subjected to an intersection algorithm. The material properties of the second mesh can be determined by an intersection algorithm.
The first mesh may be generated for an infill pattern of a part to determine material properties of the infill regions of the part. The infill pattern may be a repeating pattern. The first mesh can comprise sub-meshes. The first mesh may comprise a sub-mesh for at least one repeating unit of the repeating pattern. The infill regions can represent a percentage that indicates the amount of material a solid model should be filled with when printed. The percentage can determine the strength of the material. The infill can be found in the interior structure of a 3D printed model. Oftentimes, to prevent material waste, a 3D part may be printed with an inner mesh structure rather than a solid interior. An infill percentage (%) may be recorded, which measures the amount of material an object's volume is filled with inside. The infill may be at least about 20%, 25%, 30%, 35%, 40%, 45%, 50%, 55%, 60%, 65%, 70%, 75%, 80%, 85%, or 90% infill. The infill regions can be regions where small scales make them impractical to automatically mesh. The small scale can be associated with the thickness of the infill material. The criteria to define what constitutes infill versus large scale solid regions can be quantified through metrics contained in the “meta” data associated with the intermediate and/or G-code files. Metrics for determining infill can include infill percentage, layer height, and infill pattern.
Repeating patterns of the infill can also be identified from meta data. The infill patterns may be a pattern drawn to fill the 3D object. The infill pattern may be selected from the group consisting of honeycomb, grid, harmonic, linear, diagonal, rectilinear, concentric, Hilbert curve, Archimedean chords, octagram spiral, and any combination thereof. A diagonal infill pattern may be a linear infill pattern tilted at least about 20°, at least about 25°, at least about 30°, at least about 35°, at least about 40°, or at least about 45°,
Infill patterns may intersect with one another, in which the infill may be printed by interrupting one wall of the infill. That wall of the infill may then be filled in by the perpendicular wall to produce the grid infill in
The infill pattern may preferably be a wave or a combination of waves. For continuous fiber composite material, the grid infill pattern can cause an uneven z-layer height if one fiber prints on-top of another fiber. Additionally the multiple turns, for example if the infill is printed in the y-direction, can slow down the printing for the continuous fiber. Sharp turns may not be possible because of breakage or fiber damage to the continuous fiber. Finally, cutting the fiber frequently can also slows down the printing process and weakens the final infill structure.
A fine mesh for a repeating infill pattern may be generated. Since the infill is a repeating pattern only one fine mesh for a repeating infill region may be needed. The material properties for the repeating pattern section can be determined using the same intersection algorithm as described for the large scale regions as described herein. At least one repeating unit of the repeating pattern can comprise boundary regions and boundary nodes. The boundary nodes may provide stress measurements of the repeating pattern of the infill pattern.
After the overall structural analysis is performed, the displacement, stress, stiffness, and strain in all of the large scale solid regions can be determined using FEA procedures. A force may be applied on an object and the displacement, stress, stiffness, and strain values may be determined at each point along the material. The overall structural analysis can include the stiffness measurements from all sub-models. For repeating pattern infills, the computed boundary displacements can be applied to the sub-models that were created to form the sub-model stiffness matrix. From these sub-models, detailed stresses anywhere inside the infill can be determined. The same substructure can be analyzed for different sets of boundary displacements, thus determining peak stresses anywhere inside the printed part. The displacement, stress, stiffness, and strain measurements can then be used to drive tool path through optimization procedures such as examining levels and directions of principal stresses, optimizing layer thickness, and print orientation.
In another aspect, the disclosure provides a method for printing a part having a non-uniform stress profile. In computer memory, a computer model of the part may be received. The part may be partitioned into at least (i) a first region having a first stress profile and (ii) a second region having a second stress profile that is different than the first stress profile. A print head toolpath may be generated in accordance with the first stress profile and the second stress profile. The print head toolpath can compensate for stress difference(s) between the first region and the second region. Instructions comprising the toolpath for use in printing the part may be outputted. The instructions may comprise use of local thickening, strut addition, or hollowing for stress reduction. The part may then be printed. The printing may be fused filament fabrication. The first stress profile and the second stress profile can comprise maximum non-uniform stress profiles and minimum non-uniform stress profiles. The stress profile may provide a direction of stress and stress values. Fiber reinforcement may be included along maximum non-uniform stress profiles of the first region. Fiber reinforcement may be included along maximum non-uniform stress profiles of the second region. The second region can enclose and/or connect to at least a portion of the first region.
Principle stress can be the maximum normal stress that a body can carry at a particular point and can be derived from the 3D stress tensor and represent extrema. Extrema may be the maximum and minimum stresses. Principal stresses can carry the magnitude and direction of the extrema stresses and can be oriented on the area perpendicular to the associated directions. The principal stresses can generate a principal stress plot from a finite element model of a part. The stress along the part may be measured as the force per unit area on a reference area. By placing fiber along these extrema directions, the orientation of the material can be optimized and making sure the stress level will not exceed a maximum value, thereby the toolpath can be determined.
Partitioning can generate one or more parameters for printing the part. One or more parameters may be selected from the group consisting of filament diameter, layer thickness, infill percentage, infill pattern, raster angle, build orientation, extrudate width, layer height, shell number, infill overlap, and grid spacing. Partitioning may generate one or more numerical control programming code of the partitioned computer model. The numerical control programming code can comprise G-code files and intermediate files. The G-code files may comprise one or more of rapid movement, controlled feed in an arc or straight line, series of controlled feed movements, switch coordinate systems, and set of tool information. The intermediate files can comprise supplemental files, tools for a primary build output, automatically generated source files, or build output from helper tools. Partitioning can comprise slicing the part into a plurality of layers. Partitioning may determine the toolpath based upon built in rules with the user input. The method for performing analysis on a part for printing may further comprise performing finite element analysis on the toolpath. Once performance metrics are determined, they may be used to optimize fiber orientation for 3D printed parts. The tool path can dictate the fiber orientation, strength and stiffness properties, and print speed.
Another criterion that can be used to determine the material orientation is the Tsai-Wu (TW) failure criteria. The TW criterion is a material failure theory for anisotropic composite materials of varying strengths in tension and compression. The criteria may comprise an index in a laminate and the index may be at most about 0.1, at most about 0.2, at most about 0.3, at most about 0.4, at most about 0.5, at most about 0.6, at most about 0.7, at most about 0.8, at most about 0.9, or at most about 1. Preferably as the index approaches a value of 1, the criteria can predict failure of the part. This criterion can determine the appropriate fiber orientations and tool path. The same approach for connecting together the vector plot into a tool path may then be used as described in the principle stress approach described herein.
In another aspect, the disclosure provides a method for optimizing a toolpath trajectory for printing a part using a virtual three-dimensional printer to visualize a virtual 3D printing process. Such visualization may be used to print the part, in some cases once the toolpath has been optimized or otherwise found to be ready for use to print the part. Alternatively, such visualization may be in the absence of printing the part. In computer memory, a computer model of the part may be received and virtual printing of the part may be initiated in accordance with one or more printing characteristic of a three-dimensional printer. The virtual printing may be performed along a virtual print head toolpath in accordance with a computer model of the part. During virtual printing of the part, (i) one or more physical properties of the part may be obtained using a physical model, and (ii) whether one or more physical properties of the part measured in (i) meet at least one predetermined performance metric of the part may be determined. The virtual print head toolpath can be adjusted upon determining that one or more physical properties of the part measured in (i) do not meet at least one predetermined performance metric of the part to yield an adjusted print head toolpath. The virtual printing maybe performed in the absence of printing the part. After the virtual printing is complete, the adjusted print head toolpath may be outputted. Additionally, it may be determined that one or more physical properties of the part measured in (i) meet at least one predetermined performance metric of the part under the adjusted print head toolpath. One or more physical properties may be selected from the group consisting of defects, strength, voids, surface roughness, stress, strain, tension, shear, stiffness, factor-of safety, weight, envelop geometry, thermal performance, electrical performance, porosity, infill, number of shells, layer height, extruder temperature, solid density, and melt density. Virtual printing of the part may be continued along the adjusted print head toolpath. The virtual printing of the part may be displayed to a user on a graphical user interface. The displaying of the virtual printing can comprise displaying the virtual print head tool path on the graphical user interface. The print head toolpath may be further used to print the part. The part may be printed using fused filament fabrication. Virtual printing may be in the absence of printing the part. The method for optimizing the toolpath trajectory for printing a part may further comprise printing the part. The part may be printed at least in part while virtually printing the part. The part may be printed along the print head tool path. The part may be printed along the adjusted print head tool path. The part may be printed using fused filament fabrication. The method for optimizing the toolpath trajectory for printing a part may further comprise electronically outputting the adjusted print head tool path.
During 3D printing the quality of the final part may be enhanced by determining and tracking the deviations of the actual as-built part and the theoretical build. Prior to initiating virtual printing of the part, a first software may be provided to perform analysis of the part and to determine optimization metrics for the part. The method for optimizing the toolpath trajectory for printing the part may further comprise generating one or more optimization metrics for the part prior to initiating virtual printing of the part. The one or more optimization metrics may be selected from the group consisting of strength, structural deflections, stress, strain, tension, shear, load capacity, stiffness, factor-of safety, weight, strength to weight ratio, envelop geometry, minimal print time, thermal performance, electrical performance, porosity, infill, number of shells, layer height, extruder temperature, solid density, melt density, printing speed, and print head movement speed.
Using a second software, the virtual build simulator can create a “virtual build” model of the part. Such virtual build may be a complete virtual build. The virtual build simulator can reveal the final shape of the part and provide the user with visualization of the build in a virtual 3D printing process. The final shape of the part may match the input CAD drawing. Using the simulator, first, a 3D constructive geometry model may be developed. Graphically, users can visualize in 3D, the build process. This can allow for prior screening and detection of defects in the build process. Possible defects can include the inability of the robot to execute certain commands or resulting voids that may occur due to basic tool path algorithm. The virtual build model may also illustrate inefficiencies in the generated tool path and can therefore be used as a tool to develop better or more efficient algorithms for printing 3D parts based solely on 3D geometrical considerations.
Starting with the virtual constructive solid geometry part, refinement for the virtual build simulator can introduce important physical parameters into the build process. The physical parameters may comprise, but not be limited to, thermal modeling, stress modeling and rheology (flow) modeling, and applied pressure and stresses during deposition, or any combination thereof. Knowledge of the thermal field during the build can impact material process optimization. One or more of these parameters can help improve accuracy of the simulation result. For example, for best adhesion the temperature during deposition should be a certain optimum range. Different temperature ranges may lead to a corresponding simulation result. Variation of the physical parameters may or may not lead to simulation results that can be graphically visualized by a user. In some cases, a user may be able to visualize the simulation results directly associated to one or more parameters presented in the graphical model. In some cases, the results may be presented in a numerical format and a user may receive a warning indicative of a weak region of the part. The rheology of the material can impact the shape of the deposited bead and it's deviation from an ideal cross-sectional shape. The ideal cross-sectional shape may be rectangular, circular, triangular, trapezoidal, polygonal, or elliptical. The applied pressure during deposition can have a direct effect on the final material strength. The residual stresses that occur in the part during cool-down can cause part distortion at room temperature. Residual stresses may also creep due to viscoelastic effects. Being able to control the residual stresses can result in a higher quality part with much better performance characteristics. Accounting for residual stresses in the as-built part can result in a more accurate prediction of overall part strength and thermal distortion due to different operating temperatures for the part.
From the 3D constructive geometry model, it can be envisioned that a finite element mesh may be generated that accurately represents the part. This mesh can change during building of the part. At any point in the build process, a physics model can be applied to the current configuration. Using time or pseudo time stepping in the analysis can allow for transfer of a final state(s) from a given time operation to an initial state(s) for a subsequent time operation, thus, capturing the time evolution of the part state variables which will dictate the final build geometry, residual stresses, material strengths and final performance of the part.
In another aspect, the disclosure provides a method for optimizing a tool path trajectory for printing a part using a three-dimensional printer. The part may be printed using a three-dimensional printer. The printing may be performed adjacent to a base along a toolpath in accordance with a computer model of the part. During printing of the part with the three-dimensional printer along the toolpath, (i) one or more sensors may be used to measure one or more structural or internal properties of the part and (ii) it may be determined whether one or more structural or internal properties of the part measured in (i) meet at least one performance metric of the part. The sensors may be external to the base. During printing of the part with the three-dimensional printer along the toolpath, (i) an optical sensor may be used to measure one or more structural or internal properties of the part and (ii) it may be determined whether one or more structural or internal properties of the part measured in (i) meet at least one performance metric of the part. The toolpath may be adjusted upon determining that one or more structural or internal properties of the part measured in (i) do not meet at least one predetermined performance metric of the part, to yield an adjusted toolpath. The part may continue to print along the adjusted toolpath. The printing may include fused filament deposition to generate at least a portion of the part.
The method for optimizing the tool path trajectory for printing a part using a three-dimensional printer may further comprise generating one or more optimization metrics for the part prior to initiating printing of the part. The method for optimizing the tool path trajectory for printing the part using a three-dimensional printer may further comprise prior to initiating printing of the part, analyzing the part by performing thermal modeling, stress modeling, rheology modeling structural analysis, electrical performance, or any combination thereof. One or more optimization metrics can comprise one or more members selected from the group consisting of strength, structural deflections, stress, strain, tension, shear, load capacity, stiffness, factor-of safety, weight, strength to weight ratio, envelop geometry, minimal print time, thermal performance, electrical performance, porosity, infill, number of shells, layer height, extruder temperature, solid density, melt density, printing speed, and print head movement speed.
Structural and internal properties can comprise one or more members selected from the group consisting of defects, strength, voids, surface roughness, stress, strain, tension, shear, stiffness, factor-of safety, weight, envelop geometry, thermal performance, electrical performance, porosity, infill, number of shells, layer height, solid density, and melt density.
Monitoring one or more critical parameters provides an on-the-fly data used for predicting printing results or for improving the future simulation model. Also, waste associated with the printing may be eliminated resulting in a more cost effective process. Current technologies can create surface finishes that are too rough and too difficult to scan with a touch probe. Issues that can arise during the scans may include surface damage, obscurity of view of key features, inaccessibility of key features, internal structures can be difficult to measure, high cost of contact and non-contact measurement outside of x-ray tomography.
During 3D printing, certain parameters may be critical to printing high quality parts. These parameters include substrate temperature, melt zone temperature, as-built geometry, surface roughness and texture and density. Other critical visible or non-visible metrics include characterization of chemistry, bonding or adhesion strength. Measuring one or more structural or internal properties of the part can comprise one or more methods selected from the group consisting of scattered and reflected or absorbed radiation, x-ray imaging, sound waves, scatterometry techniques, ultrasonic techniques, X-ray Photoelectron Spectroscopy (XPS), Four Transform Infrared Spectroscopy (FTIR), Raman Spectroscopy and Laser-Microprobe Mass Spectrometry (LMMS). Specific metrology beneficial to the end goals of characterizing the critical process parameters can be used. This in-situ metrology coupled with fast processing of data can enable open or closed loop control of the manufacturing process. Sensors appropriate to the key parameters of interest can be selected and utilized during the part printing process. The sensors may comprise a camera. The camera can detect light in the infrared or visible portion of the electromagnetic spectrum. Sensors such as IR cameras may be used to measure temperature fields. An image processing algorithm may be used to evaluate data generated by one or more sensors, to extract one or more structural or internal properties of the part. Visual (e.g. high magnification) microscopy from digital camera(s) can be used with proper software processing to detect voids, defects, and surface roughness. In order to utilize this technique, potentially large quantities of data may need to be interrogated using image processing algorithms in order to extract features of interest. Scatterometry techniques may be adapted to provide roughness or other data.
Ultrasonic techniques can be used to measure solid density and fiber and particle density which in turn may be useful in characterizing bond strength and fiber dispersion. The characterization can affect material strength. Ultrasonic techniques can also be used to measure thickness of features. Chemical bonding characterization, which may be useful for understanding fiber and/or matrix adhesion and layer-to-layer bonding, can be performed by multiple techniques such as XPS (X-ray Photoelectron Spectroscopy), FTIR (Four Transform Infrared Spectroscopy) and Raman Spectroscopy and Laser-Microprobe Mass Spectrometry (LMMS). One or more of these techniques may be utilized as part of the in-situ metrology for 3D printing. Ex-situ techniques may also be utilized in order to help provide appropriate calibration data for the in-situ techniques.
Sensors may be positioned on the robot end-effector of the three-dimensional printer in order to provide a sensor moving along with the deposited material. A robot end-effector may be a device positioned at the end of a robotic arm. The robot end-effector may be programmed to interact with its surrounding environment. Sensors may be located at various positions. The positions can be on-board the robot, on the effector, or deployed in the environment. Sensors may be in communication with the system. The system can comprise one or more processors, a communication unit, memory, power supply, and storage. The communications unit can comprise an input and an output. The communication unit can be wired or wireless. The sensor measurements may or may not be stored in a database, and may or may not be used in future simulation and optimization operations. In-situ measurements may also be made using alternative methods with sensors in a cell but not directly attached to the robot end-effector.
Software technologies may be leveraged in order to differentiate its product and help deliver high performance parts. Certain users may not wish to purchase their own specialized computing resources. Appropriate software may be ported and executable in-the-cloud. This can ensure that a developed code is not operating system specific. The system may be a Windows, Linux, or Mac operating system. In-the-cloud software can include improvement of throughput of computer intensive jobs. The computer intensive jobs can comprise FEA or preparation of CAD models through slicing algorithms. Additionally, in-the-cloud computing can allow for the ability to utilize multi-processing and parallelization techniques. The developed software may be enabled to leverage these programming paradigms.
The present disclosure provides computer systems that may be programmed or otherwise configured to implement devices, methods and systems of the present disclosure.
The computer system 2301 includes a central processing unit (CPU, also “processor” and “computer processor” herein) 2305, which can be a single core or multi core processor, or a plurality of processors for parallel processing. The computer system 2301 also includes memory or memory location 2310 (e.g., random-access memory, read-only memory, flash memory), electronic storage unit 2315 (e.g., hard disk), communication interface 2320 (e.g., network adapter) for communicating with one or more other systems, and peripheral devices 2325, such as cache, other memory, data storage and/or electronic display adapters. The memory 2310, storage unit 2315, interface 2320 and peripheral devices 2325 are in communication with the CPU 2305 through a communication bus (solid lines), such as a motherboard. The storage unit 2315 can be a data storage unit (or data repository) for storing data. The computer system 2301 can be operatively coupled to a computer network (“network”) 2330 with the aid of the communication interface 2320. The network 2330 can be the Internet, an internet and/or extranet, or an intranet and/or extranet that is in communication with the Internet. The network 2330 in some cases is a telecommunication and/or data network. The network 2330 can include one or more computer servers, which can enable distributed computing, such as cloud computing. The network 2330, in some cases with the aid of the computer system 2301, can implement a peer-to-peer network, which may enable devices coupled to the computer system 2301 to behave as a client or a server.
The CPU 2305 can execute a sequence of machine-readable instructions, which can be embodied in a program or software. The instructions may be stored in a memory location, such as the memory 2310. The instructions can be directed to the CPU 1805, which can subsequently program or otherwise configure the CPU 2305 to implement methods of the present disclosure. Examples of operations performed by the CPU 2305 can include fetch, decode, execute, and writeback.
The CPU 2305 can be part of a circuit, such as an integrated circuit. One or more other components of the system 2301 can be included in the circuit. In some cases, the circuit is an application specific integrated circuit (ASIC).
The storage unit 2315 can store files, such as drivers, libraries and saved programs. The storage unit 2315 can store user data, e.g., user preferences and user programs. The computer system 2301 in some cases can include one or more additional data storage units that are external to the computer system 2301, such as located on a remote server that is in communication with the computer system 2301 through an intranet or the Internet.
The computer system 2301 can communicate with one or more remote computer systems through the network 2330. For instance, the computer system 2301 can communicate with a remote computer system of a user (e.g., customer or operator of a 3D printing system). Examples of remote computer systems include personal computers (e.g., portable PC), slate or tablet PC's (e.g., Apple® iPad, Samsung® Galaxy Tab), telephones, Smart phones (e.g., Apple® iPhone, Android-enabled device, Blackberry®), or personal digital assistants. The user can access the computer system 2301 via the network 2330.
Methods as described herein can be implemented by way of machine (e.g., computer processor) executable code stored on an electronic storage location of the computer system 1801, such as, for example, on the memory 2310 or electronic storage unit 2315. The machine executable or machine readable code can be provided in the form of software. During use, the code can be executed by the processor 2305. In some cases, the code can be retrieved from the storage unit 2315 and stored on the memory 2310 for ready access by the processor 2305. In some situations, the electronic storage unit 2315 can be precluded, and machine-executable instructions are stored on memory 2310.
The code can be pre-compiled and configured for use with a machine having a processer adapted to execute the code, or can be compiled during runtime. The code can be supplied in a programming language that can be selected to enable the code to execute in a pre-compiled or as-compiled fashion.
Aspects of the systems and methods provided herein, such as the computer system 1801, can be embodied in programming. Various aspects of the technology may be thought of as “products” or “articles of manufacture” typically in the form of machine (or processor) executable code and/or associated data that is carried on or embodied in a type of machine readable medium. Machine-executable code can be stored on an electronic storage unit, such as memory (e.g., read-only memory, random-access memory, flash memory) or a hard disk. “Storage” type media can include any or all of the tangible memory of the computers, processors or the like, or associated modules thereof, such as various semiconductor memories, tape drives, disk drives and the like, which may provide non-transitory storage at any time for the software programming. All or portions of the software may at times be communicated through the Internet or various other telecommunication networks. Such communications, for example, may enable loading of the software from one computer or processor into another, for example, from a management server or host computer into the computer platform of an application server. Thus, another type of media that may bear the software elements includes optical, electrical and electromagnetic waves, such as used across physical interfaces between local devices, through wired and optical landline networks and over various air-links. The physical elements that carry such waves, such as wired or wireless links, optical links or the like, also may be considered as media bearing the software. As used herein, unless restricted to non-transitory, tangible “storage” media, terms such as computer or machine “readable medium” refer to any medium that participates in providing instructions to a processor for execution.
Hence, a machine readable medium, such as computer-executable code, may take many forms, including but not limited to, a tangible storage medium, a carrier wave medium or physical transmission medium. Non-volatile storage media include, for example, optical or magnetic disks, such as any of the storage devices in any computer(s) or the like, such as may be used to implement the databases, etc. shown in the drawings. Volatile storage media include dynamic memory, such as main memory of such a computer platform. Tangible transmission media include coaxial cables; copper wire and fiber optics, including the wires that comprise a bus within a computer system. Carrier-wave transmission media may take the form of electric or electromagnetic signals, or acoustic or light waves such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media therefore include for example: a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD or DVD-ROM, any other optical medium, punch cards paper tape, any other physical storage medium with patterns of holes, a RAM, a ROM, a PROM and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave transporting data or instructions, cables or links transporting such a carrier wave, or any other medium from which a computer may read programming code and/or data. Many of these forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to a processor for execution.
The computer system 2301 can include or be in communication with an electronic display 2335 that comprises a user interface (UI) 2340 for providing, for example, a print head tool path to a user. Examples of UI's include, without limitation, a graphical user interface (GUI) and web-based user interface.
Methods and systems of the present disclosure can be implemented by way of one or more algorithms. An algorithm can be implemented by way of software upon execution by the central processing unit 2305. The algorithm can, for example, partition a computer model of a part and generate a mesh array from the computer model.
The computer system 2301 can include a 3D printing system. The 3D printing system may include one or more 3D printers. A 3D printer may be, for example, a fused filament fabrication (FFF) printer. Alternatively or in addition to, the computer system 2301 may be in remote communication with the 3D printing system, such as through the network 2330.
While preferred embodiments of the present invention have been shown and described herein, it will be obvious to those skilled in the art that such embodiments are provided by way of example only. It is not intended that the invention be limited by the specific examples provided within the specification. While the invention has been described with reference to the aforementioned specification, the descriptions and illustrations of the embodiments herein are not meant to be construed in a limiting sense. Numerous variations, changes, and substitutions will now occur to those skilled in the art without departing from the invention. Furthermore, it shall be understood that all aspects of the invention are not limited to the specific depictions, configurations or relative proportions set forth herein which depend upon a variety of conditions and variables. It should be understood that various alternatives to the embodiments of the invention described herein may be employed in practicing the invention. It is therefore contemplated that the invention shall also cover any such alternatives, modifications, variations or equivalents. It is intended that the following claims define the scope of the invention and that methods and structures within the scope of these claims and their equivalents be covered thereby.
This application claims priority to U.S. Patent Application No. 15/232,767, filed Aug. 9, 2016, now U.S. Pat. No. 9,656,429, U.S. Provisional Application No. 62/404,476, filed Oct. 5, 2016, U.S. patent application Ser. No. 15/479,055, filed Apr. 4, 2017, and U.S. Provisional Application No. 62/492,066, filed Apr. 28, 2017, each of which is entirely incorporated herein by reference.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2017/045986 | 8/8/2017 | WO | 00 |
Number | Date | Country | |
---|---|---|---|
62404476 | Oct 2016 | US | |
62492066 | Apr 2017 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 15232767 | Aug 2016 | US |
Child | 16495383 | US | |
Parent | 15479055 | Apr 2017 | US |
Child | 15232767 | US |