Patent Publication Number: US-9902114-B2

Title: Method for creating three dimensional lattice structures in computer-aided design models for additive manufacturing

Description:
CROSS-REFERENCE TO OTHER APPLICATION 
     This application claims the benefit of the filing date of U.S. Provisional Patent Application 61/925,362, filed Jan. 9, 2014, which is hereby incorporated by reference. 
     This application claims the benefit of the filing date of U.S. Provisional Patent Application 61/948,157, filed Mar. 5, 2014, which is hereby incorporated by reference. 
     This application shares some subject matter with commonly-assigned, concurrently filed U.S. patent application Ser. No. 14/591395 for “Method for Structure Preserving Topology Optimization of Lattice Structures for Additive Manufacturing” , which is hereby incorporated by reference. 
    
    
     TECHNICAL FIELD 
     The present disclosure is directed, in general, to additive manufacturing and more particularly to a system and method for performing additive manufacturing using lattice models. 
     BACKGROUND OF THE DISCLOSURE 
     Additive manufacturing enables fabrication of products with complex internal lattice structures, which are repeated arrangements of shapes in a grid-like pattern or other pattern of repeated shapes that replace a solid volume. A lattified part is defined as a part where a portion of the volume has been replaced with an appropriate lattice that consists of a pattern of cell shapes. 
     SUMMARY OF THE DISCLOSURE 
     Various disclosed embodiments include methods for creating three dimensional lattice structures in computer-aided design models. A method includes receiving a solid model containing a plurality of boundary surfaces for a void region, computing a bounding box of the solid model and a plurality of grid points on an axis-aligned grid within the bounding box, creating a lattice cell layout for a lattice structure within the void region, computing an implicit model defined by a scalar value for each of the grid points on the axis-aligned grid, wherein the scalar value for each grid point is determined by: (i) calculating a surface distance based on a minimum distance for the grid point to the boundary surfaces; (ii) calculating a lattice distance based on the minimum distance for the grid point to the lattice structure; and (iii) setting the scalar value based on a lesser of the surface distance and the lattice distance; and extracting the lattice structure in the solid model based on the implicit model. 
     Various disclosed embodiments include a data processing system for creating three dimensional lattice structures in computer-aided design models. The data processing system includes a processor and an accessible memory. The data processing system particularly configured to receive a solid model containing a plurality of boundary surfaces for a void region, compute a bounding box of the solid model and a plurality of grid points on an axis-aligned grid within the bounding box, create a lattice cell layout for a lattice structure within the void region, compute an implicit model defined by a scalar value for each of the grid points on the axis-aligned grid, wherein the scalar value for each grid point is determined by: (i) calculate a surface distance based on a minimum distance for the grid point to the boundary surfaces; (ii) calculate a lattice distance based on the minimum distance for the grid point to the lattice structure; 
     and (iii) set the scalar value based on a lesser of the surface distance and the lattice distance; and extract the lattice structure in the solid model based on the implicit model. 
     Various disclosed embodiments include non-transitory computer-readable mediums for creating three dimensional lattice structures in computer-aided design models. The non-transitory computer-readable medium encoded with executable instructions that, when executed, cause one or more data processing systems to receive a solid model containing a plurality of boundary surfaces for a void region, compute a bounding box of the solid model and a plurality of grid points on an axis-aligned grid within the bounding box, create a lattice cell layout for a lattice structure within the void region, compute an implicit model defined by a scalar value for each of the grid points on the axis-aligned grid, wherein the scalar value for each grid point is determined by: (i) calculate a surface distance based on a minimum distance for the grid point to the boundary surfaces; (ii) calculate a lattice distance based on the minimum distance for the grid point to the lattice structure; and (iii) set the scalar value based on a lesser of the surface distance and the lattice distance; and extract the lattice structure in the solid model based on the implicit model. 
     The foregoing has outlined rather broadly the features and technical advantages of the present disclosure so that those skilled in the art may better understand the detailed description that follows. Additional features and advantages of the disclosure will be described hereinafter that form the subject of the claims. Those skilled in the art will appreciate that they may readily use the conception and the specific embodiment disclosed as a basis for modifying or designing other structures for carrying out the same purposes of the present disclosure. Those skilled in the art will also realize that such equivalent constructions do not depart from the spirit and scope of the disclosure in its broadest form. 
     Before undertaking the DETAILED DESCRIPTION below, it may be advantageous to set forth definitions of certain words or phrases used throughout this patent document: the terms “include” and “comprise,” as well as derivatives thereof, mean inclusion without limitation; the term “or” is inclusive, meaning and/or; the phrases “associated with” and “associated therewith,” as well as derivatives thereof, may mean to include, be included within, interconnect with, contain, be contained within, connect to or with, couple to or with, be communicable with, cooperate with, interleave, juxtapose, be proximate to, be bound to or with, have, have a property of, or the like; and the term “controller” means any device, system or part thereof that controls at least one operation, whether such a device is implemented in hardware, firmware, software or some combination of at least two of the same. It should be noted that the functionality associated with any particular controller may be centralized or distributed, whether locally or remotely. Definitions for certain words and phrases are provided throughout this patent document, and those of ordinary skill in the art will understand that such definitions apply in many, if not most, instances to prior as well as future uses of such defined words and phrases. While some terms may include a wide variety of embodiments, the appended claims may expressly limit these terms to specific embodiments. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       For a more complete understanding of the present disclosure, and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, wherein like numbers designate like objects, and in which: 
         FIG. 1  illustrates a block diagram of a data processing system in which an embodiment can be implemented; 
         FIGS. 2-4B  illustrate examples of lattified parts in accordance with disclosed embodiments; 
         FIG. 5  illustrates a rod lattice in accordance with disclosed embodiments; 
         FIGS. 6A and 6B  illustrate a user defined lattice template in accordance with disclosed embodiments; 
         FIGS. 7A and 7B  illustrate lattice structures with the lattice template applied at the lattice cells in accordance with disclosed embodiments; 
         FIGS. 8A and 8B  illustrate conformal lattices in accordance with disclosed embodiments; 
         FIGS. 9A-9E  illustrate a lattice created by extending solid modeling concepts in accordance with disclose embodiments; 
         FIG. 10  illustrates creation of lattice structures within an computer-aided system (CAD/CAM/CAE) in accordance with disclosed embodiments; 
         FIGS. 11, 12A and 12B  illustrate high resolution lattices can be applied arbitrarily to shapes in accordance with disclosed embodiments; 
         FIG. 13A  illustrates a uniform hollowing of an organic shape that has been hollowed out with a uniform thickness and with a lattice applied in accordance with disclosed embodiments; 
         FIG. 13B  illustrates non-uniform hollowing of the same organic shape hollowed with variable thickness in accordance with disclosed embodiments; and 
         FIG. 14  depicts a flowchart of a process for creating three dimensional lattice structures in computer-aided design models for additive manufacturing in accordance with disclosed embodiments that may be performed, for example, by a PLM or PDM system. 
     
    
    
     DETAILED DESCRIPTION 
       FIGS. 1 through 14 , discussed below, and the various embodiments used to describe the principles of the present disclosure in this patent document are by way of illustration only and should not be construed in any way to limit the scope of the disclosure. Those skilled in the art will understand that the principles of the present disclosure may be implemented in any suitably arranged device. The numerous innovative teachings of the present application will be described with reference to exemplary non-limiting embodiments. 
     Disclosed is a method using implicit volumetric scalar field representations and processes for creating models with varying surface thickness and lattices. The input is a solid model in either boundary representation (Brep) CAD or polygonal mesh format. The bounding box of the solid model is computed and an axis-aligned grid covering the bounding box is created to compute an implicit volumetric scalar field representation of the region. The thickness of the surface is specified in order to create the hollow model. The thickness value can be variable across the surface of the model. A cell template is specified for application within the lattice model. The cell template shape is designed as a skeleton structured of connected line segments and an associated thickness that defines the 3D volume of the template as an offset of the skeleton. A lattice cell layout is created that defines the arrangement of the lattice cell template within the desired region, and this is not limited to the axis-aligned grid. At each point of the implicit volume grid, the distance to the surface is computed. The surface thickness at the computed closest surface point is subtracted from the distance value. The distance to the closest lattice cell shape is also computed using the transformed representation of the template skeleton and the scaled value of its associated thickness. The scaled thickness value is subtracted from the lattice cell distance. The minimum value of the two distances is then set as the scalar value at the corresponding volume point. From the implicit volume representation, the internal lattice structure surface is extracted as a polygonal mesh and post-processed to improve the shape. The internal surface is then combined with the outer surface of the solid model to fabricate the desired model with lattice structures. 
     By using implicit volume data representations and methods, the method enables a simple approach for complicated offsetting to create non-uniform thickness shells, and explicit surface-intersection based Booleans with lattice cells and the shell. The implicit-based offsetting method automatically addresses the situation when the solid model is thinner than the hollowing thickness specified. The method creates smoothly joined surfaces at lattice cell junctions as well as at the interface of the inner surface of the hollowed out shell model, thereby removing the need for applying post-Boolean edge blends. Smooth surfaces improve manufacturing output quality, avoid stress concentrations, and enhance product functionality and ergonomics. 
     Although the outer surface of the solid model typically has a high precision representation, the same level of accuracy may not be required for the internal geometry and therefore the method can increase computation speed by using a low resolution representation of the implicit functions. 
     Commercial computer-aided design (CAD) systems do not have sufficient support for creating lattice structures in a solid CAD model, and lattice modeling has typically used the existing functionality of commercial CAD systems, which is laborious, computationally demanding and error-prone. The disclosed method can be implemented with commercial CAD systems, without the need for new implicit representations, and creates user-friendly interactive applications for lattice modeling. 
       FIG. 1  illustrates a block diagram of a data processing system in which an embodiment can be implemented, for example as a PDM system particularly configured by software or otherwise to perform the processes as described herein, and in particular as each one of a plurality of interconnected and communicating systems as described herein. The data processing system depicted includes a processor  102  connected to a level two cache/bridge  104 , which is connected in turn to a local system bus  106 . Local system bus  106  may be, for example, a peripheral component interconnect (PCI) architecture bus. Also connected to local system bus in the depicted example are a main memory  108  and a graphics adapter  110 . The graphics adapter  110  may be connected to display  111 . 
     Other peripherals, such as local area network (LAN)/Wide Area Network/Wireless (e.g. WiFi) adapter  112 , may also be connected to local system bus  106 . Expansion bus interface  114  connects local system bus  106  to input/output (I/O) bus  116 . I/O bus  116  is connected to keyboard/mouse adapter  118 , disk controller  120 , and I/O adapter  122 . Disk controller  120  can be connected to a storage  126 , which can be any suitable machine usable or machine readable storage medium, including but not limited to nonvolatile, hard-coded type mediums such as read only memories (ROMs) or erasable, electrically programmable read only memories (EEPROMs), magnetic tape storage, and user-recordable type mediums such as floppy disks, hard disk drives and compact disk read only memories (CD-ROMs) or digital versatile disks (DVDs), and other known optical, electrical, or magnetic storage devices. The storage  126  stores the boundary surfaces  150 , the bounding box  152 , the axis-aligned grid  154 , the grid points  156 , the lattice cell layout  158 , the surface distances  160 , the minimum distances  162 , the lattice distance  164 , the lattice cells  166 , the neighboring lattice cells  168 , the hollowed surfaces  170 , scalar values  172 , and so on, which are described below. 
     Also connected to I/O bus  116  in the example shown is audio adapter  124 , to which speakers (not shown) may be connected for playing sounds. Keyboard/mouse adapter  118  provides a connection for a pointing device (not shown), such as a mouse, trackball, trackpointer, touchscreen, etc. 
     Those of ordinary skill in the art will appreciate that the hardware depicted in  FIG. 1  may vary for particular implementations. For example, other peripheral devices, such as an optical disk drive and the like, also may be used in addition or in place of the hardware depicted. The depicted example is provided for the purpose of explanation only and is not meant to imply architectural limitations with respect to the present disclosure. 
     A data processing system in accordance with an embodiment of the present disclosure includes an operating system employing a graphical user interface. The operating system permits multiple display windows to be presented in the graphical user interface simultaneously, with each display window providing an interface to a different application or to a different instance of the same application. A cursor in the graphical user interface may be manipulated by a user through the pointing device. The position of the cursor may be changed and/or an event, such as clicking a mouse button, generated to actuate a desired response. 
     One of various commercial operating systems, such as a version of Microsoft Windows™, a product of Microsoft Corporation located in Redmond, Wash. may be employed if suitably modified. The operating system is modified or created in accordance with the present disclosure as described. 
     LAN/WAN/Wireless adapter  112  can be connected to a network  130  (not a part of data processing system  100 ), which can be any public or private data processing system network or combination of networks, as known to those of skill in the art, including the Internet. Data processing system  100  can communicate over network  130  with server system  140 , which is also not part of data processing system  100 , but can be implemented, for example, as a separate data processing system  100 . 
       FIGS. 2-4B  illustrate examples of lattified parts in accordance with disclosed embodiments. Lattice structures can replace a region of an otherwise solid part, or reinforce an otherwise empty region of space in a complicated part. 
       FIG. 2  illustrates a cutaway view of a lattified part  200  in accordance with disclosed embodiments. The lattice structure  205  replaces a void region completely encased by the solid model  210 . The void region is defined by the surface thickness  215  of the solid model  210 . 
       FIG. 3A  illustrates a cube shaped shell  300  with an opening region  305  cutting the top region  315  of the shell  300  in accordance with disclosed embodiments.  FIG. 3B  illustrates a sectioned view of the cube shaped shell  300  with the opening region  305  including a lattice structure  310  created within the void region  325  that the shell  300  partly encloses in accordance with disclosed embodiments. 
       FIG. 4A  illustrates a CAD part  400  with through holes  405  in accordance with disclosed embodiments.  FIG. 4B  illustrates the CAD part  400  with one of the through holes  405  reinforced with a lattice structure  410  in accordance with disclosed embodiments. 
     Lattified parts cannot be fabricated with other conventional manufacturing processes such as subtractive computer numerical control (CNC) or formative molding type processes. A primary need for lattices is motivated by the desire to create functional parts with high structural strength accompanied by low mass. Lattified parts can also provide enhanced energy absorption characteristics in order to dampen shocks or vibrations. For parts that are used in high temperature operating environments such as engines and turbines, lattices can provide enhanced internal cooling by possessing an increased effective surface area available for heat transfer. Lattified parts provide other advantages realized through raw material and manufacture time savings as there is lesser material to deposit, and as a result savings in energy utilization of manufacturing machines. Lighter moving parts require less driving physical forces and torques, therefore, consuming less energy during operation resulting in more sustainable and green product designs. Lattices can also be used to optimize the additive manufacturing process itself through optimal support structure designs. 
     Disclosed embodiments for creating lattices decouple the notion of lattice layout design with lattice surface extraction. The lattice layout design is the arrangement of lattice cells within a region of space. The lattice surface extraction is the creation of the boundary between the lattice material and air. Volumetric mesh representations and processes are used for designing lattice layouts, and discrete sampled implicit representations are used for representing the lattice surface. 
       FIG. 5  illustrates a rod lattice  500  in accordance with disclosed embodiments. The layout generation can be performed by volumetric meshing using tetrahedral, hexahedral or any other type of volumetric element. The edges of the resulting volume mesh are treated as the rods  505  of the rod lattice  500 . CAE analysis such as finite element analysis (FEA) can be performed efficiently using the rod or beam one dimensional (1D) element representation. The lattice surface  510  can be defined as an offset off the edges, with constant or varying thicknesses. 
       FIGS. 6A and 6B  illustrate a user defined lattice template  600  in accordance with disclosed embodiments. The lattice templates  600  are lattice skeletons  605  created for maximizing the properties of the object. Each lattice template  600  is created within a unit cube  610 , including edges  615  and vertexes  620 . The lattice template  600  can be defined by line  625  and curve  630  segments. This enables 1D element CAE analysis as in the case of rod lattices. The lattice template  600  can also be defined with any of the available modeling tools in a CAD system, creating flexibility in the creation of lattice templates  600 . 
       FIGS. 7A and 7B  illustrate lattice structures  700  with the lattice template applied at the lattice cells  166  in accordance with disclosed embodiments. The layout generation is performed with hexahedral elements, and a lattice template is defined within a lattice cell  166 . Each of the hexahedral elements is replaced with a transformed template lattice skeleton. The lattice surface is then an offset, lattice thickness  705 , from the template skeleton within each lattice cell  166 . The minimum distance  162  from each grid point  156  is measured to the lattice skeleton and the thickness is subtracted for calculation of the implicit scalar lattice value. When the grid point  156  is located on a vertex or edge of the lattice cell  166 , the minimum distance  162  to the lattice skeletons of the neighboring lattice cells  168  are also measured. 
       FIGS. 8A and 8B  illustrate conformal lattices in accordance with disclosed embodiments.  FIG. 8A  illustrates a conformal lattice  800  where the lattice structure conforms to the irregular boundary surfaces  810 .  FIG. 8B  illustrates a conformal lattice  805  where the lattice structure incorporates a user defined lattice template  812 . 
       FIGS. 9A-9E  illustrate a lattice created by extending solid modeling concepts in accordance with disclose embodiments.  FIG. 9A  illustrates a 2D sketch  900  with freeform curves  925 .  FIG. 9B  illustrates a 2D lattice design  905  based on the geometry of the 2D sketch  900 .  FIG. 9C  illustrates a 3D lattice design  910  based on the 2D lattice design  905 .  FIG. 9D  illustrates a 3D lattice  915  extruded using solid modeling operations.  FIG. 9E  illustrates a sampled implicit representation  920  of the lattice surface. The sampled implicit representation  920  can be converted to a voxel representation and combined with a suitable finite element mesh of the part for FEA, greatly simplifying the challenging problem of computing volumetric meshes for lattices and enables application of commercial solvers. Sampled implicit representations  920  can be used for complex lattice templates in place of 1D elements. 
     The sampled implicit representation  920  can be used directly create manufacturing instructions by performing slicing on the implicit representations and combining with manufacturing instructions for the rest of the part. Polygonal facet mesh representations may be extracted from the implicit representations for visualization and manufacturing. The junctions of lattice cells are blended smoothly through implicit function blending processes therefore avoid complex computationally-intensive and error-prone B-rep type surface filleting and blending. The trimming of the lattice to retain only a certain subsection can be achieved easily through implicit Booleans, which are straightforward to compute. Mass properties, such as volume, center of gravity, etc., can be computed on the implicit representation  920  to calculate accurate mass properties of the part. Different lattice templates can be blended together to create innovative lattice designs. 
       FIG. 10  illustrates creation of lattice structures within a computer-aided system  1000  (CAD/CAM/CAE) in accordance with disclosed embodiments. The computer-aided system  1000  is used to define part geometry, generate manufacturing operations and perform analyses such as finite element analysis (FEA). Lattices can be created within CAD system  1000  and therefore managed like other design geometry. Lattices can be linked to other design features and therefore can be automatically updated if design geometry changes. The approach allows the user to refine and edit the lattice structures after generation as they would any other geometry in their CAD/CAM environment. This approach enables analyzing mass properties of parts with lattices. It enables more straightforward computer-aided engineering analysis, including but not limited to finite element simulations, of parts with lattices within the PLM system. It enables creation of optimized manufacturing instructions of parts with lattices within same PLM system. 
       FIGS. 11, 12A and 12B  illustrate high resolution lattices can be applied arbitrarily to shapes in accordance with disclosed embodiments.  FIG. 11  illustrates a high resolution lattice  1100  created on a CAD part.  FIGS. 12A and 12B  illustrate a high resolution lattice  1200  created on a polygonal mesh object with uniform hollowing. 
       FIG. 13A  illustrates a uniform hollowing  1300  of an organic shape  1310  that has been hollowed out with a uniform thickness  1315  and with a lattice  1320  applied in accordance with disclosed embodiments.  FIG. 13B  illustrates non-uniform hollowing  1305  of the same organic shape  1310  hollowed with variable thickness  1325  in accordance with disclosed embodiments. The variable thickness  1325  provides that the hollowed surface  1330  is thicker on the left and thinner on the right. As a consequence, the left region of the organic shape  1310  is more solid with less lattice  1320  and vice versa on the other region. 
       FIG. 14  depicts a flowchart of a process for creating three dimensional lattice structures  1400  in computer-aided design models for additive manufacturing in accordance with disclosed embodiments that may be performed, for example, by a PLM or PDM system. 
     In step  1405 , the system receives a solid model containing a plurality of boundary surfaces  150  for a void region. The system starts with a closed solid model of arbitrary genus and containing a void region, R v , to be lattified. The void region can be specified as either a volume to be hollowed from the solid model, with a constant or varying surface thickness, or as an empty region of the solid model, in which case, the hollowing operation can be skipped. The method is applicable to any geometric representation for a set of boundary surfaces  150 , S, of the void region for which point-to-surface distances  160  can be computed and inside-outside queries can be determined. A number of opening bodies, R o , can be specified when the region to be lattified is not fully enclosed, such as illustrated in  FIGS. 3A and 3B . 
     In step  1410 , the system computes a bounding box  152  and a plurality of grid points  156  on an axis-aligned grid  154  within a bounding box  152 . Let V=v i εR 3 , i=0 . . . m be a collection of grid points  156  lying on an axis-aligned grid  154  that is a discrete representation of the volume within the bounding box  152  of S.
 
(φ( x )&lt;0=&gt; x  inside  (1)
 
(φ( x )=0=&gt; x  on the boundary  (2)
 
(φ( x )&gt;0=&gt; x  is outside  (3)
 
     Equations 1-3 define an implicit surface, φ, by a set of coefficients defined at each grid point  156  v i . At any point in space within the bounding box  152 , xεR 3 , (φ(x) can be computed by interpolating the coefficients of the neighboring grid points. The point x can then be classified to be lying inside (equation 1), on the surface (equation 2), or outside (equation 3) of the region R v . 
     In step  1415 , the system creates a lattice cell layout  158  for a lattice structure within the void region. A lattice cell layout  158 , L=1 j , j=0 . . . n, covering the void region to be lattified is created. For the rod or beam type lattice, the lattice cell layout  158  can be any type of element, for instance tetrahedra, hexahedra, etc. For the template type lattice, each lattice cell is a hexahedron that is homeomorphic to the lattice cell  166 . Any volumetric mesh generation process can be used for grid creation, the simplest being an axis-aligned grid  154  creation. The final object will contain the lattice trimmed away by the boundary surfaces  150  of the void region. 
     In step  1420 , the system computes an implicit model representation of the solid model defined by a scalar value  172  for each of the grid points  156  on the axis-aligned grid  154 . The discrete implicit representation spans the bounding box  152  of the void region. If opening bodies are present, the opening regions are also converted to discrete implicit representations. Distance fields are used as implicit surface representations, i.e., the coefficients are signed distances to S or surface distances  160 . The distance field is a calculation for model values of the minimum distance  162  from each grid point  156  to one of the boundary surfaces  150 .
 
θ S ( v   i )=sign*argmin S   ∥v   i   −S∥   (4)
 
 v   i   ∩R   v =Φ=&gt;sign=1  (5)
 
 v   i   ∩R   v   =v   i =&gt;sign=−1  (6)
 
     Equation 4 defines the isosurface θ O(L) (v i )=0 of the boundary surfaces  150 . While the grid point  156  is part of the void region, the sign is negative as in equation 5. While the grid point  156  is not part of the void region, the sign is positive as in equation 6. As discussed above with equation 2, a negative sign corresponds to grid points  156  that are external to the lattice structure and a positive sign corresponds to grid points  156  that are internal to the lattice structure.
 
θ O(S) ( v   i )=θ S ( v   i )− t   s   (7)
 
     Equation 7 is used if hollowing is required, and the surface thickness at the computed closest surface point is subtracted from the surface distance  160  value to calculate the hollowed surface  170 . Let sε S be the closest surface point to the grid point  156  and let t s  be the surface thickness specified at the closest surface point, s. The isosurface θ O(S) =0 gives the variable thickness offset to the boundary surfaces  150  as specified by the thickness field. Non-uniform hollowing can be performed using scaled distance fields defined over a volumetric mesh. 
     A cell template can also be specified to be applied within the lattice. The template shape is defined within a lattice cell  166 . An associated thickness defines the surface of a lattice shape within a cell as an offset of the skeleton. The lattice template is applied at each lattice cell after suitable transformation (including perhaps morphing) from the definition within a lattice cell  166 .
 
θ L ( v   i )=argmin X   ∥v   i   −X∥   (8)
 
     In equation 8, at each grid point  156 , v i , of the volume, the lattice distance  164  to the closest lattice cell shape is also computed. Where X represents the transformed representation of the lattice cell template into the closest lattice cell  166   1   j . For a rod/beam type lattice, the lattice grid edges are themselves used as the cell template and the lattice distances  164  are computed from them. The closest lattice cell  166 ,  1   j , to the grid point  156  is first identified. In the instance the grid point  156  lies on an edge or vertex of the closest lattice cell  166 , the neighboring lattice cells  168  of the closest lattice cell  166  are also considered. The lattice template is appropriately transformed into the shape of the closest lattice cell  166  and the lattice distance  164  to the transformed representation of the template skeleton is then computed. Cell templates can be extended to evaluate analytic functions. Instead of computing distance fields to cell templates, the analytic functions may be evaluated at corresponding grid points  156  v i  within closest lattice cells  1   j .
 
θ O(L) ( v   i )=θ L ( v   i )− t   L   (9)
 
     In equation 9, the thickness value representing the lattice thickness, t L , is subtracted from the lattice distance  164 . The thickness value can also be scaled according to the size of the closest lattice cell  166   1   j  relative to a model lattice cell  166 . The isosurface θ O(L) (v i )=0 gives the lattice surface.
 
θ F =min(θ O(S) ,θ O(L) )  (10)
 
     In equation 10, a boolean combination of the surface distance  160 , θ O(S) (v i ), and the lattice distance  164 , θ O(L) (v i ), is then set as the scalar value  172  at each corresponding grid point  156 . The isosurface θ F =0 gives the lattice surfaces bounded by the surfaces S or the internal surfaces generated by the variable thickness offset to S. If opening bodies are present, the distance fields are also combined to create the appropriately oriented lattice surface. 
     In step  1425 , the system extracts the lattice structure in the solid model. The internal lattice structure surface can be extracted as a polygonal mesh from the implicit volume representation using an iso-surfacing technique such as marching cubes. The polygonal meshes can be post-processed using Delaunay methods to improve the shape. 
     In step  1430 , the system stores the lattice structure in the solid model based on the implicit final representation. The lattice surface is then combined with the outer surface of the solid model to fabricate the desired model with lattice structures. This step allows only updating the data structure for the solid model and does not require any geometric operations for modifications. The correct orientation of the internal surface is obtained directly by choosing the signs of the distance fields in an appropriate manner and therefore, additional processing is not required. The resulting lattified models are topologically correct with solid and void in appropriate regions. The surfaces are clean, self-intersection free and without non-manifoldness or holes. In step  1435 , the system manufactures the resulting lattified models. 
     Of course, those of skill in the art will recognize that, unless specifically indicated or required by the sequence of operations, certain steps in the processes described above may be omitted, performed concurrently or sequentially, or performed in a different order. 
     Those skilled in the art will recognize that, for simplicity and clarity, the full structure and operation of all data processing systems suitable for use with the present disclosure is not being depicted or described herein. Instead, only so much of a data processing system as is unique to the present disclosure or necessary for an understanding of the present disclosure is depicted and described. The remainder of the construction and operation of data processing system  100  may conform to any of the various current implementations and practices known in the art. 
     It is important to note that while the disclosure includes a description in the context of a fully functional system, those skilled in the art will appreciate that at least portions of the mechanism of the present disclosure are capable of being distributed in the form of instructions contained within a machine-usable, computer-usable, or computer-readable medium in any of a variety of forms, and that the present disclosure applies equally regardless of the particular type of instruction or signal bearing medium or storage medium utilized to actually carry out the distribution. Examples of machine usable/readable or computer usable/readable mediums include: nonvolatile, hard-coded type mediums such as read only memories (ROMs) or erasable, electrically programmable read only memories (EEPROMs), and user-recordable type mediums such as floppy disks, hard disk drives and compact disk read only memories (CD-ROMs) or digital versatile disks (DVDs). 
     Although an exemplary embodiment of the present disclosure has been described in detail, those skilled in the art will understand that various changes, substitutions, variations, and improvements disclosed herein may be made without departing from the spirit and scope of the disclosure in its broadest form. 
     None of the description in the present application should be read as implying that any particular element, step, or function is an essential element which must be included in the claim scope: the scope of patented subject matter is defined only by the allowed claims. Moreover, none of these claims are intended to invoke 35 USC §112(f) unless the exact words “means for” are followed by a participle.