Guide to Conformal Latticing

Summary:

This article provides multiple workflow options for creating conformal lattices. We recommend trying several of them to see which method works best for your situation. 

Applies to:

  • Conformal Latticing
  • Lattices
  • Textures

This article uses a Custom Block to create our desired outcome. If you are new to using Custom Blocks, learn how to import, modify, and update them with the following resources:

Methods:

CB - Conformal Lattice Skin

  • Custom block approach best used for bodies with curvature and few sharp edges
Conformal Lattice Skin Seciton.jpg

1. Start by converting the imported CAD body into an implicit. The body was rotated for convenience, this block is not necessary.

Import Part.jpg

2. Next we create a surface mesh of the implicit. The surface mesh will be used later to define the boundary of the body for trimming.

Surface Mesh.jpg

3. For this example we will be using a Rectangular Cell Map to generate our Periodic Lattice. The volume lattice is then trimmed using the original implicit body.

Trimmed volume lattice.jpg

4. We can now generate the surface lattice using our CB - Conformal Lattice Skin. This block utilizes the original implicit body as a solid reference, the surface mesh as a boundary, and the trimmed lattice for its boundary points. These inputs, coupled with the tolerance inputs, generate a surface lattice that matches the internal volume lattice beams.

Surface Lattice Skin.jpg

5. The final blocks are used to clean the lattice. We merge the Volume Lattice with the Surface Lattice into one body.

At this point, the lattice has many overlapping beams, so we can use the Collapse Vertices block to reduce the number of vertices. This eliminates excess beams and results in a cleaner lattice. The final step is to filter out any open beams that may exist.

Lattice Skin Clean up.gif

The example file also includes another section demonstrating how the lattice adapts to different shapes. You can modify the Roughness amplitude input to change the shape of the original Torus.

roughness amplitude.jpg

Attachment:

Back to top

Lattice Projection

  • Custom block approach best used when starting from a CAD body with a large face to use for projection
Projected Lattice Section.jpg

1. Starting with a CAD part, we first create several variables that will be used later in the workflow. The part is also converted to an implicit body.

Starting Faces.gif

2. We create an oversized Rectangular Cell Map using the implicit body. The size isn't crucial; it just needs to be larger than the body.

Master Cell Map.png

3. Next, we create a Periodic Lattice using the cell map created in Step 2. The rectangular lattice is then trimmed using a Trim Lattice block around the original implicit body.

Starting Trimmed Volume Lattice.png

4. We can use the CB - Project Rectangular Lattice on CAD Surface block to create the surface lattice. Using the CAD variables and cell map, we defined previously, this block makes a conformal surface lattice on the top face of the body. The projection direction input corresponds to the perpendicular direction to the CAD face.

Projected Conformal Lattice.png

5. Next, we use a Thicken Body block to create an implicit body from the CAD faces that we saved to integrate into the final design. A Boolean Union block is used to join them, and then we use another one to combine the bodies with the conformal lattice.

Solid Faces.gif

6. Finally, we use the CB - Clean Trimmed Lattice using Outer Skin block to clean up the volume lattice before blending it into the final product. The last step is to use a Boolean Union block to combine the volume lattice with the outer body.

Final Lattice.gif


The example workflow included in this article contains two other examples using a Cylindrical Cell Map and a Spherical Cell Map. They follow very similar steps to the abovementioned process, and their results are shown below.


Cylinder transform.png
Sphere transform.png

 

Attachment:

Back to top

Delaunay Lattice

  • A Periodic Lattice approach best used for simple and uniform shapes
Delaunay Section.jpg

1. Extract all of the vertices of your trimmed lattice.

  • Go to the Properties tab of your lattice body and locate the lattice property. The lattice property contains information about the graph of your lattice.
  • Expand this property and drag the vertices into your notebook.
  • Convert the thickness value of your lattice into a design variable called "Lattice Beam Thickness" to reuse in other steps throughout the workflow. In this example, the Lattice Beam Thickness value is constant. 

CloseTrimmed1.png

CloseTrimmed2.png

2. Use these vertices to create a volume mesh using the Delaunay Volume Mesh block. This function creates a mesh composed of tetrahedral elements based on all of the vertices of the trimmed lattice.

  • Extract the surface mesh chip from the properties panel of the Delaunay Volume Mesh block to derive a new exterior network of beams to join to our trimmed lattice. 

Surface_Mesh.jpg

3. Use the Lattice from Surface Mesh block to extract the edges of each mesh face and convert them into beams in a new lattice body.

  • Change the Method input to view different arrangements of lattice beams.
  • Use the Lattice Thickness variable to apply the same thickness to this lattice body as your original trimmed lattice body. 

Surface_Lattice.jpg

4. The resulting lattice from this operation may require some additional fine-tuning to get the desired outcome you're looking for. We have a handful of useful lattice beam filters currently available. In this specific example, we'll use the Filter Beams by Containment block to remove the top and bottom beams of our cylindrical lattice. If filtering beams by volume isn't the best approach for your application, you can also filter by a beam's angle, length, connectivity (closed, floating, open), and thickness. 

Filter_by_Containment.jpg

5. Now that we have a network of beams to fully close off our original trimmed lattice, use the Merge Lattice block to arrive at one single lattice body. Then we will remove any open beams using the Remove Open Beams block to create our final lattice.

  • Input the original trimmed lattice and the new exterior lattice into the Lattices input.

Merge.jpg

Attachment:

Back to top

Voronoi Lattice

  • A Voronoi Lattice approach for any voronoi applications
Voronoi Section.jpg

1. For this example, we will use a lattice cube with a sphere cutout. The goal is to eliminate the open beams from where the sphere was removed.

Starting_Lattice.JPG

2. As opposed to how it was shown in Step 1, we instead want to use a Boolean Subtract block to remove the Sphere from the Cube initially.

Boolean_Subtract_Body.jpg

3. The next step is to create a mesh of the new body using the Mesh from Implicit Body block.

Mesh_of_Body.jpg

4. Use the Random Points in Body block to generate points for the lattice.

Random_Points.jpg

5. Finally, input everything into a Voronoi Volume Lattice block to create your closed beams lattice.

Final_Closed_Beams.jpg

Attachment:

Back to top

Quad Mesh

  • Creates a Conformal Surface Lattice using a Quadrangulate Mesh
Conformal Quad Mesh Preview.jpg

1. Create a mesh, import a mesh, or extract mesh faces.

2. Add a Filter Mesh by Flood Fill block and input your mesh to filter it.

Import and convert.gif

3. Convert your mesh into a Quad Mesh.

    • Add a Quadrangulate Mesh block.
      • Input your Filter Mesh by Flood Fill block.
      • Edit the Quad Mesh settings until you are happy with the result (Each quad will be a lattice unit cell).

Quad Mesh.jpg

4. Convert the Quad Mesh into a lattice.

    • Add a Periodic Lattice block. 
      • Add a Cell Map from Quad Mesh block.
        • Add a Walled TPMS Unit Cell block (You can use custom, graph, or TPMS).
          • For desired results, make sure your unit cell is symmetrical.
        • Edit the Height, Layer count, and Unit cell parameter 1 until you are happy with the results.

Quad Periodic Lattice.jpg

Test out the different unit cells and settings to see what you can create.

Note: Since there are many different faces within a quad mesh, the UVW of those faces may not align perfectly. This can be an issue if you are using a unit cell that isn't the same in every direction, like the gyroid unit cell. In this case, the Surface Lattice from CAD Body block may be a better option.

quad_lattices.jpg

Attachment:


Back to top

More on this topic:

Keywords:

 mesh voronoi surface lattice volume conformal quadrangulate quad delaunay document latticing projection skin 
Was this article helpful?