You are on page 1of 7

Available online at www.sciencedirect.

com

ScienceDirect
Procedia Technology 20 (2015) 178 – 184

The International Design Technology Conference, DesTech2015, 29th of June – 1st of July 2015,
Geelong, Australia

Programmatic Lattice Generation for Additive Manufacture


Matthew McMillana, Marten Jurga, Martin Learya*, Milan Brandta
RMIT Centre for Additive Manufacturing
School of Aerospace, Mechanical and Manufacturing Engineering
RMIT University, Melbourne, Australia

Abstract

Advances in additive manufacturing hardware have enabled the creation of lattice structures for engineering
purposes; however the use of standard CAD software for the design of lattice structures is grossly inefficient, time
consuming, and can lead to processing issues. To assist designer engineers that intend to implement large lattice
structures a highly customisable free open source method of generating periodic lattice structures directly to the
generic STL format has been developed. Programmatic method also offers a significant advantage to designers
seeking to optimise or conduct finite element simulations on lattice structures allowing a batch export of both STL
parts and a geometrically equivalent FE beam models.

© 2015
© 2015 The Authors.
The Authors. Published
Published by Elsevier
by Elsevier Ltd. This B.V.
is an open access article under the CC BY-NC-ND license
Peer-review under responsibility of School of Engineering, Faculty of Science Engineering & Built Environment,
(http://creativecommons.org/licenses/by-nc-nd/4.0/).
Peer-review under responsibility of School of Engineering, Faculty of Science Engineering & Built Environment, Deakin University
Deakin University.
Keywords: Additive manufacture, DFAM, lattice structure, STL, lattice FEA, cellular structure.

1. Introduction
Additive Manufacturing (AM) enables the fabrication of novel, highly complex geometries such as three-
dimensional lattice structures. Lattices, three-dimensional periodic cellular structures [1], have been proven in
multiple engineering applications due to their high specific strength [2, 3], stiffness [4], thermal isolation capability
[5, 6], impact absorption properties [4, 7, 8], and ability to replace support material [9, 10].
A lattice is a series of interconnected struts, analysed as representative volume elements [11] or unit cells
tessellated in three dimensions. The unit cell encapsulates many of the basic lattice properties such as strut diameter

* Corresponding author. Tel.: +61 3 9925 6177 ; fax: +61 3 9925 6108.
E-mail address: martin.leary@rmit.edu.au

2212-0173 © 2015 The Authors. Published by Elsevier Ltd. This is an open access article under the CC BY-NC-ND license
(http://creativecommons.org/licenses/by-nc-nd/4.0/).
Peer-review under responsibility of School of Engineering, Faculty of Science Engineering & Built Environment, Deakin University
doi:10.1016/j.protcy.2015.07.029
Matthew McMillan et al. / Procedia Technology 20 (2015) 178 – 184 179

and lattice type. While many examples of lattice configurations are available in literature [3, 12-16], this work
focuses on periodic hexahedral (cubic) lattice types.
Given the current capability and availability of AM equipment, it has been observed that the widespread
implementation of periodic lattice structures are hindered by their relative design complexity coupled with the
unavailability of capable design for additive manufacture software (DFAM) [2, 17, 18]. Furthermore, traditional
Computer Aided Design (CAD) and Computer Aided Engineering (CAE) packages are extremely demanding of
computational resources [18] and are often not able to represent lattices with a large number of cells, further
restricting the use of lattice structures.
Design for additive manufacture (DFAM) is the use of tools or rules that assist in the generation of robust
structures suited to AM processes. DFAM tools are limited and research contributions that assist operators to engage
with AM are required [18, 19]. Furthermore although commercial tools exist their cost [20] and licensing make them
hard to access and customise to a designers specific requirements. The Programmatic Lattice Generator (PLG)
method was developed as a free, open source, fully customisable piece of software that generates periodic lattices in
an efficient method directly to STL without the use of CAD software. The PLG software is a standalone DFAM tool
that addresses some of the limitations of existing CAD at generating large periodic structures. The open source
nature of the code allows customisation to a designers specific engineering requirements, finite element (FE) beam
models can be easily generated and the precise number of faces in on each strut of the lattice can be controlled which
allows reduced file sizes.
Commercial CAD packages, while able to represent hundreds or thousands of design features effectively, are not
computationally efficient when the number of features extends beyond the thousands due to the nature of geometry
representation [7, 18, 21].
The implementation of tailored lattice structures of many hundreds of thousands of elements in parametric CAD
is not a trivial problem. Overall modelling time is highly dependent on the available computational resources, the
software used, and designer proficiency. Regardless of these factors, the nature of geometric calculations inside
parametric CAD practically restricts the maximum complexity of a lattice that can be created [18].
Through experimentation it has been found that the minimum representative facet order (number of facets
bounding a cylindrical strut) in traditional CAD is much higher than required for the AM production of small
diameter struts, even at the minimum resolution settings [1].
Finer resolution settings create more accurate virtual representations; however the unintended consequence is a
reduction in computational performance without improving the manufactured component. Instead, it is highly
desirable to have direct control over the number of facets used to represent a cylindrical strut, minimising the
memory footprint, and able to optimise cross-section based on the strut diameter and additive process used.

2. Programmatic Lattice Generator (PLG) method


Due to the considerable challenges in reliably implementing large periodic lattice structures, a programmatic
method has been created. In place of a traditional parametric CAD approach, a programmatic approach has been
found to be highly efficient at creating cellular structures, in terms of user time and computational resources.
Created using the MATLAB environment (although also able to run in Octave), the Programmatic Lattice
Generator (PLG) is currently able to generate regular uniform, bounding region, and cylindrical lattices with various
cell configurations. The method of solution is described below to omit the majority of the programing detail,
however the full code is available online for a more detailed reference [22].
Similar to CAD, manually creating a lattice model for finite element (FE) software is an arduous task. To simplify
the process of creating FE lattice models, the PLG can produce beam model meshes alongside or separate to the STL
creation process.
180 Matthew McMillan et al. / Procedia Technology 20 (2015) 178 – 184

Figure 1 – Basic cell library

3. Generation Method
The lattice generation process involves a number of processes that are common to all lattice types with different
initial configurations for each unit cell and lattice configuration. The process has six sequential phases, in which the
input parameters form the desired lattice.
Phase 1 – Node Generation: The first step in the lattice generation process is the assignment of a unit cell,
modified to match the user input parameters in the local Cartesian coordinate system. The main cell types available
within the program are shown in Figure 1. For example, the definition of a BCC unit cell   is defined as shown
in Eq. 1 with any given cell size  and starting origin  .
  
  
  
  
        
 

  
  
  
  
  
  

           



At this point the unit cell consists solely of nodes, with one placed at each location where two or more struts of
the lattice will intersect. With one unit cell created, the nodes are then replicated sequentially for the number of times
desired in each principle direction as shown in Eq. 3-5.
              

             

             

Following the node cloud  generation the points are sorted and duplicate nodes are removed. If a FE model is
requested, then at this point the grid point data (nodes) are written to the FE file.
Phase 2 – Node Connections: With the node positions set, they are processed for connections based on the cell
type. Each node has a unique identification number (based on its location within the node matrix) which is used to
Matthew McMillan et al. / Procedia Technology 20 (2015) 178 – 184 181

populate a table of connecting nodes, defining every node that is to connect to another node for that lattice
configuration. For a BCC lattice, using the node definition from Eq. 1, the table of connecting nodes would be:
 
 
 
 
    

 
 
 

If a FE model is requested, the node connections found in this phase are used as the linking identifiers for the
beam members. At this point the FE file can be closed and transferred to an appropriate pre-process for the addition
of FE properties, loads and constraints.
Phase 3 – Creating Vertices: After establishing the nodal connections, the vertices that will define the STL facets
on each strut must be placed. The first step of the phase is to define the strut orientation vector from the current node
to the next adjoining node, shown as node A and B respectively in Figure 2.

Figure 2 – Assignment of vertices about the orientation vector


Using the orientation vector to define the normal direction of the strut, a vector with a length of the strut radius is
rotated about the strut normal at the angle,. This is repeated for all divisions   specified by the user around
the strut perimeter to form the overall cross-sectional shape. To calculate the various vector rotations quaternion
transformations are utilised, allowing for increased computational efficiency while avoiding issues such as gimbal
lock [23]. With the unit orientation vector of , the rotation quaternion is:
 
              

 
Where the angle of rotation  
             

The new rotated point is then:
     

Where the original radius vector is:
          

The resultant vertices lie in the plane normal to the orientation vector, evenly spaced around the current node.
Phase 4 – Correcting Vertices: With the vertices placed around the orientation vector at the current node they
must be adjusted along the orientation vector to correctly meet the adjoining struts at the current node location. As
182 Matthew McMillan et al. / Procedia Technology 20 (2015) 178 – 184

all intersecting struts are defined in the same manner, they will all have the same cross-sectional profile, and as such
the points of intersection for each strut can be found reliably, creating a water-tight junction.
To find the point of intersection independently of the number of struts at any given junction, the list of connecting
nodes generated in phase 2 is searched for all other nodes connecting to the current node point. Then an array of
additional intersecting vectors is generated to represent all of the struts that will intersect at that junction. By
considering each vertex on the current strut as a line in the direction of the orientation vector, and each of the
additional intersecting struts as perfect cylinders with a common radius in the direction of the various intersecting
vectors, the intersection points can easily be found. After finding every intersection point for each vertex-line, the
largest point in the direction of the orientation vector is selected as the new vertex location. This process is repeated
for every vertex around the strut, from each end of every strut in the lattice.

Figure 3 – Vertex correction process based on intersecting cylinders (left); results (right)
Phase 5 – Facet Forming: With the lattice vertices now correctly located, they must then be divided into facets.
This process is completed strut-by-strut through the ordered selection vertices at opposing ends of each strut. As all
of the vertices were created in the same order, selecting vertices in an ascending order at one end of the strut and in a
descending order at the opposing end allows for correct face matching regardless of lattice type or polygon order.
In practice, this process is completed by matching vertices of node A with the index of one (V1) and two (V2) to
the vertex    of node B, where  is the number of polygon division inputted by the user. For the second facet,
vertex two of node A is connected to vertex    and   of node B. This process is continued in this fashion
until all vertices are connected as facets.

Figure 4 – Facet formation using predefined vertices


Phase 6 – STL Writing: The final phase is writing facet data to the STL file in either binary or ASCII format. To
follow the STL format convention, the facet normal is also included for each facet.
Matthew McMillan et al. / Procedia Technology 20 (2015) 178 – 184 183

solid <name> <ASCII header 80 characters>


facet normal <n1> <n2> <n3> uint32(total No. facets)
outer loop float32(normal)
vertex <v1-1> <v 1-2> <v1-3> float32(V1)
vertex <v2-1> <v 2-2> <v2-3> loop float32(V2) loop
vertex <v3-1> <v 3-2> <v3-3> float32(V3)
endloop uint16(0)
endfacet ...
...
Endsolid <name>
Figure 5 – STL formatting: ASCII (left) and binary (right)
While either file type contains the same information and is acceptable for most AM pre-processors, the binary
option offers a large reduction in file size over ASCII files. Given a certain number of facets, the file size in
bytes   of an ASCII and binary STL are shown in Eq. 11 and Eq. 12 respectively.
     

     


4. Method Restrictions
The PLG method of solution is able to generate a STL lattice with a degree of accuracy exceeding the resolution
of any AM process, does have some inbuilt restrictions and limitations. When using the PLG the user is restricted to
the predefined cell types and configurations. While in theory this method of generation could be used to create
various non-uniform, irregular lattice configurations, the current program is limited to having: consistent and regular
cell size, a constant strut profile, and be capable of filling a cubic volume.
In its current form the lattice requires some additional post processing to make the STL watertight. As the
generation program is only concerned with the creation of lattice struts, the ends of the lattices will be left open and
are required to be closed for most AM processes. To close the ends the freely available, open-source program
Meshlab can be used, utilising filter ‘close holes’. This filter simply creates additional facets to fill in the open ends
in an efficient manner. As the lattice is generally intended to be added to another structure to act as a stiffener,
further operations can be conducted in Meshlab alongside the closing of the free ends.
Other software exists such as Netfabb, 3Matic and Magics which are highly developed comprehensive DFAM
tools. The PLG method does not aim to compete with these software packages in term of features, it does however
offer a significant advantage in the customisable nature and capability of generating a STL file. In addition, the
creation of a matching FE beam model is a new DFAM feature not available from commercial packages.

5. Conclusion
The PLG was developed as part of a student project and solves the specific problem of generating periodic lattice
structures that would be time consuming in traditional parametric CAD software. The output of both STL files for
manufacture and matching FE beam models offers a unique DFAM feature not known to exist in other STL
manipulation programs. The full source code is available online under the MATLAB file exchange [22] and will
continue to be available as further refinements are made.

References
1. Gibson, I., D.W. Rosen, and B. Stucker, Additive Manufacturing Technologies. Vol. 32. 2010, Boston, MA:
Springer US.
2. Rosen, D.W., Research supporting principles for design for additive manufacturing. Virtual and Physical
Prototyping, 2014. 9(February 2015): p. 225-232.
3. Challis, V.J., et al., High specific strength and stiffness structures produced using selective laser melting.
Materials & Design, 2014. 63: p. 783-788.
4. Shen, Y., et al., The Mechanical Properties of Sandwich Structures Based on Metal Lattice Architectures.
Journal of Sandwich Structures and Materials, 2009. 12(2): p. 159-180.
184 Matthew McMillan et al. / Procedia Technology 20 (2015) 178 – 184

5. Cook, D., et al. EFFECTIVE THERMAL CONDUCTIVITIES OF UNIT-LATTICE STRUCTURES FOR


MULTI-FUNCTIONAL COMPONENTS.
6. Wong, M., et al., Convective heat transfer and pressure losses across novel heat sinks fabricated by
Selective Laser Melting. International Journal of Heat and Mass Transfer, 2009. 52(1-2): p. 281-288.
7. Brennan-Craddock, J., et al., The design of impact absorbing structures for additive manufacture. 2012. p.
1-7.
8. Mines, R.a.W., et al., Drop weight impact behaviour of sandwich panels with metallic micro lattice cores.
International Journal of Impact Engineering, 2013. 60: p. 120-132.
9. Leary, M., et al., Feasible Build Orientations for Self-Supporting Fused Deposition Manufacture: A Novel
Approach to Space-Filling Tesselated Geometries. Advanced Materials Research, 2013. 633: p. 148-168.
10. Hussein, A., et al., Advanced lattice support structures for metal additive manufacturing. Journal of
Materials Processing Technology, 2013. 213(7): p. 1019-1026.
11. Masoumi Khalil Abad, E., S. Arabnejad Khanoki, and D. Pasini, Fatigue design of lattice materials via
computational mechanics: Application to lattices with smooth transitions in cell geometry. International
Journal of Fatigue, 2013. 47: p. 126-136.
12. Chu, C., G. Graf, and D.W. Rosen, Design for Additive Manufacturing of Cellular Structures. Computer-
Aided Design and Applications, 2008. 5(5): p. 686-696.
13. Li, S.J., et al., Compression fatigue behavior of Ti–6Al–4V mesh arrays fabricated by electron beam
melting. Acta Materialia, 2012. 60(3): p. 793-802.
14. Ptochos, E. and G. Labeas, Shear modulus determination of cuboid metallic open-lattice cellular structures
by analytical, numerical and homogenisation methods. Strain, 2012. 48: p. 415-429.
15. Wang, J., et al., On the performance of truss panels with Kagomé cores. International Journal of Solids and
Structures, 2003. 40(25): p. 6981-6988.
16. Williams, C.B., J.K. Cochran, and D.W. Rosen, Additive manufacturing of metallic cellular materials via
three-dimensional printing. The International Journal of Advanced Manufacturing Technology, 2010. 53(1-
4): p. 231-239.
17. Guo, N. and M.C. Leu, Additive manufacturing: technology, applications and research needs. Frontiers of
Mechanical Engineering, 2013. 8(3): p. 215-243.
18. Bourell, D.L., M.C. Leu, and D.W. Rosen, Roadmap for Additive Manufacturing - Identifying the Future of
Freeform Processing. 2009: The University of Texas.
19. Doubrovski, Z., Optimal design for additive manufacturing: Opportunities and challenges. ASME 2011 …,
2011: p. 1-12.
20. Rengier, F., et al., 3D printing based on imaging data: review of medical applications. International journal
of computer assisted radiology and surgery, 2010. 5(4): p. 335-341.
21. Rosen, D.W., Design for additive manufacturing: A method to explore unexplored regions of the design
space. Eighteenth Annual Solid Freeform Fabrication …, 2007: p. 402-415.
22. Jurg, M., STL Lattice Generator. 2015.
23. Vince, J., Matrix Transforms for Computer Games and Animation. 2012. 166-166.

You might also like