Follow Along: Non-Periodic Lattices

Transcript

In this lesson, we’ll discuss our options for stochastic or non-periodic lattices in nTop. We’ll discuss Voronoi and Delaunay lattices, as well as a custom block that adds noise to otherwise uniform periodic lattices. Download the starter file below to begin. When you open the starter file, you’ll see the part that we’ve been working with throughout this course. We’ve already defined the inner body and outer body implicits. Let’s begin with a Voro Volume lattice.

We’ll drop our white line into this section and add a Voro Volume Lattice block from our stochastic dropdown in our Lattices tab. With Voronoi lattices, we need to define seed points or locations for nodes. We can double click on this input and add a Random Points In Body block. This block takes a body input, which will be our inner body, and a point spacing input, which we’ll make 30 mm. We’ll add a random seed, typically one, unless you want to achieve a new random set of points. And we’ve created these points that are approximately 30 mm apart from one another. We can make these seed points a variable called “points in body.” We’ll also add a thickness of 5 mm. We can right-click to make this thickness a variable as well.

Now that we’ve created this Voro lattice, let’s trim it to fit completely within this inner body. From the utilities dropdown, I’ll add a Trim Lattice block and I’ll pull in our volume lattice as well as our inner body. For our volume, we’ll choose the lattice inside to remain and set a tolerance. Now we’ve trimmed our lattice to the inside of our inner body and we’ll right-click, make this a variable and call it “Voronoi Volume Open.”

With the lattice that we’ve created, notice that all of the outside branches are open. If you’d prefer closed beams, we could add a mesh to this optional mesh input. To do this, let’s copy using control C and paste using control V to create a new variable. We’ll rename this variable “Voronoi Volume Closed.” In our mesh input, we can double-click and we’ll add a Volume Mesh block. Within this domain, we’ll double-click and add a Mesh From CAD Body. This Mesh From CAD Body would run faster than a Mesh From Implicit Body if we wanted to mesh our inner body implicit. For our CAD body, we can pull in our inner body CAD by making this a variable called “inner CAD” and adding it to our CAD body input. We’ll add a tolerance and an edge length, and viewing our Voro lattice, we see that we now have a completely closed lattice.

Now let’s use a custom block with Voro properties to add noise to a lattice. We’ll start by importing the custom block that you downloaded below. Under file and import, you can choose this custom block, “Add Noise To Beam Lattice Vertices.” At any point, if you’re working with a custom block, you can right-click and export to save as an nTop file and see the workflow behind the block. We’ll drop this into our custom block section. Let’s start by creating a periodic lattice like we did in our last lessons, and we’ll add a Graph Unit Cell and a Rectangular Cell Map. We’ll choose a simple cubic, and for our Rectangular Cell Map, we’ll choose our inner body. We’ll make a cell size of 15x 15x 15 mm, and we’ll make our thickness a variable called “thickness.” We’ll make this a scalar input and make it 5 mm. If I isolate using I, I see that we have this regular periodic lattice. I’ll right-click, make it a variable and call it “Simple Cubic Lattice.”

Now let’s input this to our custom block and set a maximum offset of 5 mm. We’ll pull in our beam thickness and keep our collapse threshold at zero. If I isolate using I, I see that we still have this periodic body, but we have an element of randomness added into our lattice. I’ll make this a variable right-clicking and calling it “random.” Now in our Utilities tab, I’ll pull in a Trim Lattice block, drag in our random lattice and our inner body, and setting a tolerance isolating using I, I see that we now have this randomized periodic body for our inner bracket. I’ll make this a variable called “CB noise lattice.”

Next, let’s apply a Voronoi Surface Lattice to our inner body. We’ll start by pulling in a Voronoi Surface Lattice block, and for our seed points, we’ll assign Random Points On A Mesh. This will create points across the surface of a mesh. For our mesh, we can use the mesh that we created earlier for our inner body. We’ll scroll up to find that mesh, make it a variable, and call it “Mesh Inner Body.” For organization, I’ll pull it up into our geometry section. I’ll add this as our mesh and set a point count of 100, 30 relaxation iterations, and keep our random seed at one. I’ll use the same thickness as we used earlier and apply this surface lattice to our mesh. If I isolate using I, I see that we’ve created this Voro Surface Lattice with our points. I can call this “Voronoi Surface Lattice.”

Next, I can create a Delaunay Lattice from our stochastic dropdown in our Lattices tab. I’ll pull the Delaunay Lattice block into our notebook. For our vertices, I’ll use the same points in the body that we created for our Voronoi Volume lattice. I’ll select the mesh edges and assign my thickness that we used earlier. If I isolate using I, I see that we’ve created this Delaunay Lattice in place of our Voro. I’ll right-click to make this a variable and call it “Delaunay Lattice.”

Then to merge these lattices that we’ve created with our outer body, we’ll move our white line into our final part section and open our modeling tab to pull in a Boolean Intersect block. I can intersect any of these lattices with our inner body, and then I can pull in a Boolean Union block to union this with our outer body. I’ll assign a blend radius and view my results. In cases where this Boolean Union radius creates features that fall out of our initial design space, I’ll add a Boolean Intersect block and intersect our Boolean Union with a union of our initial inner and outer body bodies. I’ll add a Boolean Union block and drop in our inner and outer bodies. I’ll right-click and make this a variable called “Final Part.” To view all of our different lattice options in this final part, I can just pull in any of these lattices that we’ve created and replace our lattice in our “Final Part.”

This lesson will demonstrate how to use the Voronoi Volume Lattice block, the Voronoi Surface Lattice block, and the Delaunay Lattice blocks.

To learn more about the volume and surface meshes discussed in this video, please visit our 102: Guide to Meshing course. 

Please download the two nTop files below to follow along with the tutorial. This starter file is the same file used in the previous lesson, “Follow Along: Periodic Lattices,” so you can also use that same starting file. The only differences between the two are that there are different section titles in these two download files. Please also download the file labeled “CB Add Noise to Beam Lattice Vertices” which we will also use in this follow along. 

If you would prefer to walk through this lesson in PDF format, you can download our PDF guide below.

Example File:

This file was last updated in nTop 3.38.4

Example File:

This file was last updated in nTop 5.12.2

210_21_1 Follow Along – Non Periodic Lattices.pdf