Implicit method and an algorithm for flexible functionally tailorable slicing for additive manufacturing
A method for flexible functionally tailorable slicing for additive manufacturing includes the steps of receiving and parsing an input model of an object to be additively manufactured; reconstructing a domain boundary of the object; computing individual layer boundaries of the object; constructing, for each layer, layer domains from respective enclosing boundaries; computing, for each layer, a perimeter shell and a volumetric infill by finding level sets of a field function selected by a user; collecting and arranging into a coherent sequence each perimeter shell and volumetric infill; and formatting the coherent sequence as motion commands for an additive manufacturing system.
Latest The Government of the United States of America, as represented by the Secretary of the Navy Patents:
 ZIRCONIA AEROGELS AS SUBSTRATES FOR THE SORPTION AND DECOMPOSITION OF TOXIC ORGANOPHOSPHOROUS AGENTS
 Suppression of Samson Phase Formation in AlMg Alloys by Boron Addition
 Quantitative quality assurance for mixed reality
 POWDER SIEVING CAPSULE
 Secure computer operating system through interpreted user applications
This application claims the benefit of U.S. Provisional Application No. 62/429,110 filed Dec. 2, 2017, which is hereby incorporated herein by reference.
FIELD OF INVENTIONThe present invention relates generally to additive manufacturing, and more particularly to toolpath generation for additive manufacturing.
BACKGROUNDAdditive manufacturing, also known as layered manufacturing, rapid prototyping, or less formally as 3D printing, is an increasingly important family of fabrication techniques for the production of a wide variety of objects and components.
Slicers are a class of algorithms in the domain of computational geometry that are used to convert input 3D geometry into a series of motion commands (a “toolpath”) for an additive manufacturing machine. The slicer is required to both process the input geometry into a suitable toolpath for additive manufacturing, and export this toolpath as a series of numeric control (NC) commands that are subsequently conveyed to the additive manufacturing hardware.
The development of modern slicers was preconditioned by prior developments in the field of Computer Numeric Control (CNC) machining. NC toolpath generators, as well as slicers, rely heavily on an approach known as “polygon offsetting.” In both NC machining and additive manufacturing contexts, the intersection of the input polygon model and a plane defines a set of polygons corresponding to the desired production geometry. In NC machining, it is necessary to offset the toolpath from this geometry in order to provide cutting tool clearances.
Because additive manufacturing machines operate in a layerbylayer fashion, it is necessary to subdivide the input threedimensional input model into a series of twodimensional crosssections or “slices.” To facilitate this process, the input geometry is typically (although not necessarily) given as a series of triangular facets approximating the surface of the object of interest; this reduces the computation of the twodimensional slices to the calculation of triangleplane intersections. In additive manufacturing it is necessary to define the perimeters or “shells”, as well as a spacefilling “infill” pattern, for each slice as seen in
A great number of approaches have been developed to solve the polygon offsetting problem. Many are based on the use of Voronoi diagrams. Alternative approaches are based on the application of various explicit offset transformations.
Efforts to improve the results of slicing, for instance by eliminating voids in the infill portion of the toolpath, have been explored. Recent research into slicing has primarily been focused on increasing computational performance. Additionally, some has focused on “direct” slicers that bypass the aforementioned triangularization step and convert the input CAD geometry directly into toolpaths. Most recently, imagespace approaches to slicing have emerged that operate on pointcloud or volumetric image data in a reverseengineering context. Additionally, slicers intended to produce objects with spatiallyvarying stiffness properties have also been developed.
SUMMARY OF INVENTIONIn view of the above, existing approaches may be broadly characterized as explicit methods descended from the polygon offsetting problem and earlier NC path planning tools. In practice, available slicers operate by means of explicit geometric transforms corresponding to the boundary of each slice γ_{i}, as shown in
Therefore, described herein is an efficient and flexible implicit methodology for toolpath generation or “slicing” within the domain of additive manufacturing that incorporates functional responses of interest. Also described herein is a set of algorithms used for this purpose that are collectively known as a “slicer.” The principal function of this slicer is to convert an input, in the form of a threedimensional geometric model, into a series of commands that drive the motions and actions of an additive manufacturing machine. Specifically, the present subject matter defines a new implicit mathematical basis for the slicing operation, and provides means for the use of relevant physics fields to dictate the toolpath generated by the slicer. By doing so, aspects of the present invention enable the additive manufacturing of objects and components with physical properties that are tailored towards the object's intended use and function.
According to one aspect of the invention, a method for flexible functionally tailorable slicing for additive manufacturing includes the steps of receiving an input model of an object to be additively manufactured; parsing the input model; reconstructing a domain boundary of the object; computing individual layer boundaries of the object; constructing, for each layer, layer domains from respective enclosing boundaries; computing, for each layer, a perimeter shell; computing, for each layer, a volumetric infill by finding level sets of a field function selected by a user; collecting and arranging into a coherent sequence each perimeter shell and volumetric infill from each layer; and formatting the coherent sequence as motion commands for a target additive manufacturing system.
Optionally, the step of computing individual layer boundaries includes intersecting a series of parallel planes with the domain boundary.
Optionally, the step of computing, for each layer, a perimeter shell includes finding level sets of a distance function applied to the boundaries.
Optionally, the step of computing individual layer boundaries includes partitioning subdomain boundaries into contiguous ordered subsets of line segments.
Optionally, the step of constructing, for each layer, layer domains includes utilizing constrained Delaunay triangulation to define the layer domains as a set of planar facets.
Optionally, the step of computing, for each layer, a volumetric infill by finding level sets of a field function selected by a user includes solving a partial differential equation or system of such equations with userspecified boundary conditions on the domain boundary.
Optionally, the step of computing, for each layer, a volumetric infill by finding level sets of a field function selected by a user includes basing the volumetric infill on relevant physical fields computed by numeric analysis.
Optionally, the field function is equation (3), defined below.
Optionally, the method further includes interfacing with a simulation tool for material mechanics. The field function selected by a user is automatically generated based on computed results of the simulation tool.
Optionally, the method includes interfacing with one or more external data sources or databases. The field function selected by a user is automatically generated based on experimental data from the one or more external data sources or databases.
According to another aspect, a computer program product stored on a nontransitory computerreadable medium is configured to cause one or more processors to execute the following method steps: receiving an input model of an object to be additively manufactured; parsing the input model; reconstructing a domain boundary of the object; computing individual layer boundaries of the object; constructing, for each layer, layer domains from respective enclosing boundaries; computing, for each layer, a perimeter shell; computing, for each layer, a volumetric infill by finding level sets of a field function selected by a user; collecting and arranging into a coherent sequence each perimeter shell and volumetric infill from each layer; and formatting the coherent sequence as motion commands for a target additive manufacturing system.
Optionally, the step of computing individual layer boundaries includes intersecting a series of parallel planes with the domain boundary.
Optionally, the step of computing, for each layer, a perimeter shell includes finding level sets of a distance function applied to the boundaries.
Optionally, the step of computing individual layer boundaries includes partitioning subdomain boundaries into contiguous ordered subsets of line segments.
Optionally, the step of constructing, for each layer, layer domains includes utilizing constrained Delaunay triangulation to define the layer domains as a set of planar facets.
Optionally, the step of computing, for each layer, a volumetric infill by finding level sets of a field function selected by a user includes solving a partial differential equation or system of such equations with userspecified boundary conditions on the domain boundary.
Optionally, the step of computing, for each layer, a volumetric infill by finding level sets of a field function selected by a user includes basing the volumetric infill on stress or strain fields computed by finite element analysis.
Optionally, the field function is equation (3), defined below.
Optionally, the method further includes the step of interfacing with a simulation tool for material mechanics. The field function selected by a user is automatically generated based on computed results of the simulation tool.
Optionally, the method further includes the step of interfacing with one or more external data sources or databases. The field function selected by a user is automatically generated based on experimental data from the one or more external data sources or databases.
The foregoing and other features of the invention are hereinafter described in greater detail with reference to the accompanying drawings.
Presented herein is a slicer in accordance with the present invention, wherein relevant functional fields may be incorporated into the toolpath generation procedure. Unlike prior approaches, exemplary slicers are based on an implicit mathematical formulation; that is to say that the toolpath is based on the level sets of functional fields, not upon transformations applied to the input geometry. Such an exemplary “implicit slicer” 100 includes the following steps, where the variables are illustrated in
Referring now to
In the present application, a standard stereolithography (.stl) file is used as an example for input, due to its widespread use in the additive manufacturing industry. The algorithms presented herein are readily adaptable by those of ordinary skill in the art to other input types once the invention is understood. The only precondition placed on the input file is that it must describe a manifold or finite set of manifolds, without gaps or degenerate geometric features.
The input .stl file explicitly defines Γ as a set of triangular facets (), each defined by three vertices in ^{3 }. Because of the limitations of the .stl file format, which does not contain any long range ordering of the facets nor any connectivity information, Γ is known only in a piecewise, discontinuous fashion.
The subdomain boundaries γ_{i }are computed directly from Γ, by sequential intersections with the slicing planes ρ_{i }as shown in
Referring now to block 130, to enable the recovery of ω_{i}, γ_{i }is partitioned into contiguous ordered subsets of line segments. Each subset is denoted γ_{ij }as shown in
Referring now to block 140, once γ_{i }has been properly organized, the reconstruction of the domain ω_{i }may be achieved using several wellknown algorithms. In the present application, by way of example, we utilize constrained Delaunay triangulation for this purpose. This approach is available, for example, in commonlyused computer algebra tools such as Mathematica and Matlab. The result of computing the ω_{i }corresponding to the γ_{ij }of
Once the boundaries and domains for each layer have been defined, the additive manufacturing machine toolpath is determined by the calculation of the level sets of functions defined upon these domains and boundaries. For simplicity, but without loss of generality, we examine the specific case where the perimeters and infill are each dictated by a single field function, H_{pr}. and H_{in}, respectively. In general, several different fields could be weighted and combined to weigh different functional objectives in order to produce H_{pr }and H_{in}.
The most fundamental requirement of the slicer is that the output toolpath must replicate the geometry of the input model. Since the shape of γ must be strongly encoded in H_{pr}, the distance transform is the most logical selection for this function. With this choice,
H_{pr}(x)=min∥x−x_{γ}∥,x_{γ}∈γ_{i } (1)
While the form of H_{pr }is necessarily dictated by γ, the infill function H_{in }is not similarly constrained. This is one of the principle advantages of the implicit methodology, as the infill may be dictated by an arbitrary field of functional or design interest. Several examples are given in
The infill patterns of
The only restriction on H_{in }is that it must be a function that returns a realvalued result. This opens the possibility of using the infill to couple the performance properties of the additively manufactured component to some field of engineering or design interest. For example, the stress or strain fields computed by finite element analysis (FEA) could be used as the basis for the infill geometry.
Due to the widespread use of contour plots in a huge number of computer tools and programs, algorithms for computing level sets and contours of functions/data are very well developed and may be used in exemplary slicers. Various fast algorithms for the calculation of contours have been developed, and these algorithms are embodied in virtually all modern computer algebra tools, as well as in libraries for most computer programming languages.
Any of the existing algorithms for computing contour plots may be employed to calculate the contours of H_{in }in order to produce the corresponding toolpath components. In the present work, the following method is employed. The function H_{in }is used to transform the 2D mesh of ω_{i }into the 3D domain by application of this function to the mesh vertex coordinates. This 3D mesh is then intersected by parallel planes using the algorithm described earlier for the calculation of γ_{i }from Γ. The sets of line segments resulting from this intersection are then projected back into 2D space. This process is illustrated in
Once the perimeter and infill tool path components have been computed individually for each layer, they must be assembled into a single cohesive NC program. The first stage of this process is to ensure that the infill and perimeter toolpaths for each layer are compatible and do not overlap. This is achieved by pruning the infill contours and discarding any portions of the infill that fall outside of the innermost perimeter shell. A small margin of overlap (or clearance) between the infill and perimeters may be provided if necessary. An example showing the infill trimmed to fit the perimeters is given in
The sequencing of the toolpaths within each layer is a general combinatorial optimization problem that is constrained by the physics of the additive manufacturing process that is being targeted by the slicer. Any of a large number of existing optimization algorithms and tools may be utilized to effect a solution to this problem. As an example, herein is illustrated a relatively simple scheme: For every layer:

 1. Begin with the outermost perimeter, traverse it in a clockwise fashion, starting/ending at a randomly selected point.
 2. Select the nearest point on the next perimeter, traverse in clockwise fashion. Repeat for all perimeters.
 3. Select the endpoint of an infill curve that is nearest to the start/end point of the final perimeter. Traverse it to the other endpoint.
 4. Select the endpoint of an untraversed infill curve that is closest to the current endpoint. Traverse this new infill curve. Repeat until all infill curves are traversed.
Once these steps have been completed for every layer, the final output toolpath is simply the sequence of these layers from first to last (typically from lowest to highest in the zdirection). These motion commands are converted to machine specific NCcommands, often known as “gcodes” in a trivial fashion. These commands can then be transmitted to an additive manufacturing machine for execution. We note that such transmission and physical manufacturing processes are well understood in the art and will not be further explained for the sake of brevity.
Many components which are additively manufactured require socalled “support material.” This support material is deposited by the additive manufacturing process outside of the component domain, in order to prevent the sagging or curling of the component itself under gravitational or other forces during the manufacturing process. The implicit methodology may also be used to compute the toolpaths associated with the support material, in a very simple fashion. The support material domain ω_{si}, for any layer is defined as the difference between a layer's region ω_{i }and the union of all layer regions above ω_{i}. The distance transform may be used to compute perimeters for this support region, and any suitable function may be used to compute the support region infill, in a fashion identical to that described previously.
Now presented is a simple example: a “dogbone” test specimen designed to support uniaxial tension loads. The input geometry of the dogbone test specimen is shown in
H_{lin }(x, y, z)=x+y (−1^{(z/l}^{t}^{)%2}) (2)
where x and y are the Cartesian coordinates within each slice, z is the Cartesian coordinate normal to the slices, It is the layer thickness, and % indicates the arithmetic modulo operator. This function creates a grid of parallel diagonal lines for each slice's infill, with the lines changing orientation by 90 degrees every layer. In this example, the linear infill is modulated according to the value of σ_{vm }in order to produce infill that is denser in highstress regions. The infill function thus takes the form
H_{in }(x, y, z)=σ_{vm}(x, y, z)H_{lin}(x, y, z) k, (3)
where k is a scalar parameter that controls the relative infill density. A visualization of the field functions σ_{vm}, H_{lin}, and H_{in }is given in
Three replicates of each specimen photographed in
The results of the testing are shown in
The present invention provides for many advantages and new features when compared to conventional explicit slicing tools. Exemplary implicit slicing tools enable the tailoring of the physical responses of additively manufactured components, structures, and objects. It may be used to produce objects with specified properties or performance. Further, exemplary slicers may be used to create objects that are “functionally graded” and feature variations in properties or performance throughout the spatial domain. For example, objects may be designed to fail in a prespecified, controlled fashion (i.e. a mechanical ‘fuse’). In contrast to explicit slicers, exemplary implicit slicers allow for the generation of toolpaths that are based on the physical response of the object being produced and its intended use or function—even based on multiple physical responses of interest simultaneously.
Exemplary slicers may interface with existing simulation tools for material mechanics. These include finite element solvers and other simulations of physical phenomena. Results computed by these tools may be used to direct the toolpath generation process in order to achieve a specified response, property, or performance. Moreover, exemplary slicers may interface with external data sources and databases that may be produced by any source. For example, results from fullfield strain imaging during a physical experiment may be used to dictate the toolpath generation process.
Exemplary slicers may utilize an extremely general implicit formulation and can slice arbitrarily complex models, solving the polygon offsetting problem in a computationally straightforward fashion. Exemplary slicers may reconstruct each slice as a 2D geometric domain. These domains may be used to effect a solution to a relevant physics problem in order to generate the infill. Further, exemplary slicers may utilizes the distance transformation to compute the perimeter shells, and thereby solve the polygon offsetting problem in a simple, computationally straightforward manner.
Exemplary slicers may allow for nonuniform or user specified spacing perimeter shells and/or geometric infill patterns. The variety of infill patterns that may be generated using the implicit method are much more numerous than those that may be realized using conventional slicers. Exemplary slicers may also allow for variation in slice thickness in order to improve geometric tolerances.
Moreover, exemplary slicers allow for the generation of functionally tuned ancillary structures such as support material. These structures may optionally be designed to reduce sagging, warping, distortion, or other deleterious phenomena, which may occur during the additive manufacturing process.
Exemplary slicers may be used to create toolpaths for any additive manufacturing technology, system, or machine, and should not be considered limited to examples used herein. Additionally, exemplary slicers are applicable to additive manufacturing systems for plastics, polymers, metals, ceramics, and other materials. They are applicable to manufacturing systems that use lasers, electron beams, heated dies, or other tools to deliver material and/or energy. Exemplary slicers can use any suitable input file format and produce output files of any format necessary, provided that the details of that format are available.
Various blocks, processing functions, logic or modules described above may be provided by one or more discrete processing units, modules or components. Additionally, various blocks, processing functions, logic or modules described above may be provided by a system controller or system control logic.
Unless specifically stated otherwise, as apparent from the forgoing discussions, it is appreciated that throughout the specification discussions utilizing terms such as “processing”, “computing”, “calculating”, “determining”, or the like, refer to the action and/or processes of a computer or computing system, or similar electronic computing device, that manipulate and/or transform data represented as physical, such as electronic, quantities within the computing system's registers and/or memories into other data similarly represented as physical quantities within the computing system's memories, registers or other such information storage, transmission or display devices. In addition, the term “plurality” may be used throughout the specification to describe two or more components, devices, elements, parameters and the like.
In some embodiments, a data processing system suitable for storing and/or executing program code may include at least one processor coupled directly or indirectly to memory elements, for example, through a system bus. The memory elements may include, for example, local memory employed during actual execution of the program code, bulk storage, and cache memories which may provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
In some embodiments, input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) may be coupled to the system either directly or through intervening I/O controllers. In some embodiments, network adapters may be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices, for example, through intervening private or public networks. In some embodiments, modems, cable modems and Ethernet cards are demonstrative examples of types of network adapters. Other suitable components may be used.
Functions, operations, components and/or features described herein with reference to one or more blocks, units, modules or embodiments may be combined with, or may be utilized in various combination with one or more other functions, operations, components and/or features described herein with reference to one or more other units, modules or embodiments.
Although the invention has been shown and described with respect to a certain embodiment or embodiments, it is obvious that equivalent alterations and modifications will occur to others skilled in the art upon the reading and understanding of this specification and the annexed drawings. In particular regard to the various functions performed by the above described elements (components, assemblies, devices, compositions, etc.), the terms (including a reference to a “means”) used to describe such elements are intended to correspond, unless otherwise indicated, to any element which performs the specified function of the described element (i.e., that is functionally equivalent), even though not structurally equivalent to the disclosed structure which performs the function in the herein illustrated exemplary embodiment or embodiments of the invention. In addition, while a particular feature of the invention may have been described above with respect to only one or more of several illustrated embodiments, such feature may be combined with one or more other features of the other embodiments, as may be desired and advantageous for any given or particular application.
Claims
1. A method for flexible functionally tailorable slicing for additive manufacturing, the method including the steps of:
 receiving an input model of an object to be additively manufactured;
 parsing the input model;
 reconstructing a domain boundary of the object;
 computing individual layer boundaries of the object;
 constructing, for each layer, layer domains from respective enclosing boundaries;
 computing, for each layer, a perimeter shell by finding level sets of distance function applied to the boundaries;
 computing, for each layer, a volumetric infill by finding level sets of a specified field function;
 collecting and arranging into one or more contiguous ordered sets of line segments each perimeter shell and volumetric infill from each layer; and
 formatting the one or more contiguous ordered sets of line segments as motion commands for a target additive manufacturing system.
2. The method of claim 1, wherein the step of computing individual layer boundaries includes intersecting a series of parallel planes with the domain boundary.
3. The method of claim 1, wherein the step of computing individual layer boundaries includes partitioning subdomain boundaries into contiguous ordered subsets of line segments.
4. The method of claim 1, wherein the step of constructing, for each layer, layer domains includes utilizing constrained Delaunay triangulation to define the layer domains as a set of planar facets.
5. The method of claim 1, wherein the step of computing, for each layer, a volumetric infill by finding level sets of a field function selected by a user includes solving a partial differential equation or system of such equations with userspecified boundary conditions on the domain boundary.
6. The method of claim 1, wherein the step of computing, for each layer, a volumetric infill by finding level sets of a field function selected by a user includes basing the volumetric infill on relevant physical fields computed by computational simulation.
7. The method of claim 1, wherein the field function is a userspecified modulation of another field function based on relevant physical fields as computed by the solution of one or more partial differential equations or of computational simulation.
8. The method of claim 1, further comprising the step of:
 interfacing with a simulation tool for material mechanics; and
 wherein the specified field function is automatically generated based on computed results of the simulation tool.
9. The method of claim 1, further comprising the step of:
 interfacing with one or more external data sources or databases; and
 wherein the field function selected by a user is automatically generated based on experimental data from the one or more external data sources or databases.
10. The computer program product of claim 1, wherein the specified field function is selected by a user.
11. A computer program product stored on a nontransitory computerreadable medium, the computer program product configured to cause one or more processors to execute the method comprising the steps of:
 receiving an input model of an object to be additively manufactured;
 parsing the input model;
 reconstructing a domain boundary of the object;
 computing individual layer boundaries of the object;
 constructing, for each layer, layer domains from respective enclosing boundaries;
 computing, for each layer, a perimeter shell by finding level sets of distance function applied to the boundaries;
 computing, for each layer, a volumetric infill by finding level sets of a specified field function;
 collecting and arranging into one or more contiguous ordered sets of line segments each perimeter shell and volumetric infill from each layer; and
 formatting the one or more contiguous ordered sets of line segments as motion commands for a target additive manufacturing system.
12. The computer program product of claim 11, wherein the step of computing individual layer boundaries includes intersecting a series of parallel planes with the domain boundary.
13. The computer program product of claim 11, wherein the step of computing individual layer boundaries includes partitioning subdomain boundaries into contiguous ordered subsets of line segments.
14. The computer program product of claim 11, wherein the step of constructing, for each layer, layer domains includes utilizing constrained Delaunay triangulation to define the layer domains as a set of planar facets.
15. The computer program product of claim 11, wherein the step of computing, for each layer, a volumetric infill by finding level sets of a field function selected by a user includes solving a partial differential equation or system of such equations with userspecified boundary conditions on the domain boundary.
16. The computer program product of claim 11, wherein the step of computing, for each layer, a volumetric infill by finding level sets of a field function selected by a user includes basing the volumetric infill on stress or strain fields computed by computational simulation.
17. The computer program product of claim 11, wherein the field function is a userspecified modulation of another field function based on relevant physical fields as computed by the solution of one or more partial differential equations or of computational simulation.
18. The computer program product of claim 11, further comprising the step of:
 interfacing with a simulation tool for material mechanics; and
 wherein the specified field function is automatically generated based on computed results of the simulation tool.
19. The computer program product of claim 11, further comprising the step of:
 interfacing with one or more external data sources or databases; and
 wherein the field function selected by a user is automatically generated based on experimental data from the one or more external data sources or databases.
20. The computer program product of claim 11, wherein the specified field function is selected by a user.
20160096318  April 7, 2016  Bickel 
20180052433  February 22, 2018  Vernon 
20180250748  September 6, 2018  Page 
 Adams, D and C. J. Turner, “An Implicit Slicing Method for Additive Manufacturing Processes”, 2017, Journal: Virtual and Physical Prototyping, vol. 13, No. 1, pp. 27 (Year: 2017).
Type: Grant
Filed: Dec 1, 2017
Date of Patent: Sep 14, 2021
Patent Publication Number: 20180157243
Assignee: The Government of the United States of America, as represented by the Secretary of the Navy (Washington, DC)
Inventors: John Michopoulos (Washington, DC), Athanasios Iliopoulos (Chevy Chase, MD), John Steuben (Oxon Hill, MD)
Primary Examiner: Mohammad Ali
Assistant Examiner: Sheela Rao
Application Number: 15/829,088
International Classification: G05B 19/4099 (20060101); B33Y 50/02 (20150101);