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 The Authors. Published by Elsevier Ltd. This B.V. is an open access article under the CC BY-NC-ND license © 2015 The Authors. Published by Elsevier (http://creativecommons.org/licenses/by-nc-nd/4.0/). Peer-review under responsibility of School of Engineering, Faculty of Science Engineering & Built Environment, 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 threedimensional 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:
[email protected]
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
solid
facet normal outer loop vertex vertex loop vertex endloop endfacet ... Endsolid
183
uint32(total No. facets) float32(normal) float32(V1) float32(V2) loop float32(V3) uint16(0) ...
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
5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Matthew McMillan et al. / Procedia Technology 20 (2015) 178 – 184
Cook, D., et al. EFFECTIVE THERMAL CONDUCTIVITIES OF UNIT-LATTICE STRUCTURES FOR MULTI-FUNCTIONAL COMPONENTS. 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. Brennan-Craddock, J., et al., The design of impact absorbing structures for additive manufacture. 2012. p. 1-7. 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. 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. Hussein, A., et al., Advanced lattice support structures for metal additive manufacturing. Journal of Materials Processing Technology, 2013. 213(7): p. 1019-1026. 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. Chu, C., G. Graf, and D.W. Rosen, Design for Additive Manufacturing of Cellular Structures. ComputerAided Design and Applications, 2008. 5(5): p. 686-696. 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. 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. 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. 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(14): p. 231-239. Guo, N. and M.C. Leu, Additive manufacturing: technology, applications and research needs. Frontiers of Mechanical Engineering, 2013. 8(3): p. 215-243. 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. Doubrovski, Z., Optimal design for additive manufacturing: Opportunities and challenges. ASME 2011 …, 2011: p. 1-12. 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. 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. Jurg, M., STL Lattice Generator. 2015. Vince, J., Matrix Transforms for Computer Games and Animation. 2012. 166-166.