Intralattice is a plugin for Grasshopper used to generate solid lattice structures within a 3D design space. It was developed as an extensible, open-source alternative to current commercial solutions. As an ongoing project developed at McGill’s Additive Design & Manufacturing Laboratory (ADML), it has been a valuable research tool, serving as a platform for breakthroughs in multi-scale design and optimization. By giving you full access to the source, we hope to collectively explore lattice design at a deeper level, and consequently, engineer better products.
The rise of additive manufacturing (i.e. 3D printing) has allowed engineers to integrate new orders of complexity into their designs. In that regard, this software generates lattice structures as a means to:
- Reduce volume/weight while maintaining structural integrity.
- Increase surface area as a means of maximizing heat transfer.
- Generate porosity in bone scaffolds and implants
- Serve as a platform for structural optimization.
In doing so, it should always output a watertight mesh suited for 3D printing.
The primary goal of Intralattice is to serve as a research platform where flexibility and versatility are primordial. Users are given the freedom to define custom unit cells, choose from diverse lattice mapping methods, and set the thickness of struts individually. Moreover, the benefits of being integrated into CAD software Rhinoceros are evident. Renderings of solid models output (in .stl format) by Intralattice are shown below.
The core of Intralattice is concerned with the geometric modeling of solid lattice structures. The generative process is split into 3 consecutive modules: the cell module, which generates a unit cell, the frame module, which generates a lattice wireframe within a design space, and the mesh module, which converts the wireframe (list of curves) to a solid mesh that can be exported as a .STL and 3D printed. A fourth, optional utility module can be used for pre/post-processing. In Grasshopper, the generative algorithm will look something like this:
The components available for each module are summarized below.
For more information, refer to the User Docs.
|Cell||+ PresetCell - Library of preset unit cells.
+ CustomCell - Formats custom unit cells.
|Frame||+ BasicBox - Generates a simple lattice box.
+ BasicCylinder - Generates a simple lattice cylinder.
+ ConformSS - Generates a conformal lattice between 2 surfaces.
+ ConformSA - Generates a conformal lattice between a surface and an axis.
+ ConformSP - Generates a conformal lattice between a surface and a point.
+ UniformDS - Generates a trimmed uniform lattice within a Mesh/Brep design space.
|Mesh||+ Homogen - Generates homogeneous mesh for set of curves.
+ HeterogenGradient - Generates a gradient-based heterogeneous mesh.
+ HeterogenCustom - Generates a custom heterogeneous mesh.
|Utility||+ AdjustUV - Adjusts the UV-map of a surface.
+ CleanNetwork - Cleans curve network by removing duplicates, within tolerance.
+ MeshReport - Returns comprehensive report regarding solidity of mesh.
+ MeshPreview - Generates preview of the mesh.
The opti modules are concerned with mechanical optimization. The first set of components provide interfaces with various FEA software, such as Nastran and Hyperworks. Optimization algorithms have been developed for properties ranging from structural strength to heat transfer. These components will be released shortly.