HEX Core and Fluid Generation
Transcript
If you don’t have the beta blocks, we would come under File Settings, and under General, I click show beta blocks. Click okay. And since we’ve done a decent amount of work, we’ll go ahead and say File Save, and we’ll call this whatever you’d like. I’ll call it LMS Hex Walkthrough.
The first thing we’ll do is come under Lattice Generate and click Periodic Lattice Body. The next thing we’ll do is enable the overload option, and we’re going to select a two-parameter unit cell. I’ll talk about this later on. You’ll see that the only difference is now we need two input parameters to complete this otherwise unbuilt block. There are a couple ways we can go about filling out this block. We can, under the lattice unit cell type, select the individual components. Let’s say we want the Wall TPMS unit cell with bias. We can drag and drop that into here. Or my generally preferred method is to double click, and this will auto-filter what can be inserted into here. In this case, we’ll select Rectangular Cell Map. Our first unit cell parameter in this case is going to be the thickness of our lattice body. So we’ll right-click, and I’m going to call this TPMS thickness. Right-click the next variable, say make variable, and I’ll call this bias.
We can do the same thing, right-clicking on various inputs to make them variables and pull them out into the notebook. In this case, I’ll just leave Gyroid as the common unit cell type. We can see that it’s populated down here, and we can hit “I” to isolate just this unit cell. On the bottom right, you’ll see the HUD display for this, and we can visualize the different thicknesses, how that impacts what the unit cell will look like. The other aspect, looking at the bias, it’s going to either increase or decrease the passageways on either side, so we can now influence what the pressure drop is going to be discreetly. A bias of zero is going to have equal passage widths on each side.
The volume is going to be our design space, so I’ll right-click, make variable, and I’ll call this design space, and I’m going to drag this to the top of this section. I want the cell size to be a variable, so I’ll right-click, make variable, and leave the frame as is. The frame is just going to tell the cell map where to start its initial patterning. The default is going to be at the midpoint of our bounding box. So if we look at our properties bounding box, we have a max and midpoint associated with this bounding box. And so the starting point of the cell map, unless you change that frame, will be at that midpoint.
So the only thing that we need to do to complete this block is define these variables. Our design space for now, we’re just going to say, is our infill volume. And you’ll see we have three different infills here. Each of these little symbols next to the infill volume indicates a different geometric representation. This first one is the import, the second is the CAD, and this third here is the implicit. We can look at the left-hand side of this design space and match the symbols together, so we know that we can fit this into here. For instance, if I was to click the CAD, we would get this red saying that the block is unable to be built. But if we click the implicit, it’ll populate. So now we have our design space, which right now is just the cylinder. We’ll say our thickness is going to be 0.5 mm, we’ll leave our bias at 0 mm for now, and let’s put our cell size at 10 mm and isolate our Periodic Lattice Body.
So we’ll see that we’ve created our Rectangular Cell Map within the design space. We’re going to click on the Periodic Lattice Body block, right-click, make it a variable, and I’m going to call it raw lattice. The next step is going to be Boolean intersecting this with the design space. I’ll come up to the search blocks and start to type “bu intersect” to filter out the other blocks and select Boolean Intersect. I’ll drag the raw lattice variable into here along with the design space. Isolate the intersect, right-click, make it a variable, and call this hex core.
We can also use the Trim Cell Map or Trim Lattice Body beta blocks to perform a similar operation to the Boolean Intersect. If we look at the Trim Cell Map, we would put our cell map into the first input, the body we want to intersect it with, and define if we want, let’s say, all of the centroids inside, and maybe we want to keep only the outside cells. So this cell map is going to keep everything outside of this design space, and we can play with the fill type depending on what we may or may not want to capture.
Similarly, with the Trim Lattice Body, we would put our lattice body into here to find the design space that we want, and whether we want to keep all of the bodies inside or outside, as well as the feature tolerance. So we’re effectively doing the same thing that we did with this Boolean Intersect, but we’ve added another input to define outside or inside, as well as rounding the edges. And all that’s going to do, it’s hard to see with these periodic bodies, but it’ll give us a, if we look at a high-res image, we’ll select this and select Control H on the keyboard. We have sharp edges defined when we use our Boolean Intersect, or doing the same thing, Control H rounded edges defined with the Trimmed Lattice Body. It’s personal preference. Since I know I’m going to go ahead and put a blend radius or a fillet between my hex core and the intersect, I opted for just using the Boolean Intersect block.
Both the trim cell map, trim lattice body, and intersect all have their appropriate applications. Isolating on the Boolean Intersect, I can hit Z now and autofit to the page. The next thing we’ll do is generate our fluid domains. We’ll come back up to the top, select Periodic Lattice Body, and our unit cell type is going to be slightly different this time. We used the walled TPMS unit cell with bias; this time we’re going to use the TPMS unit cell with bias.
So I’ll double click in here, select TPMS unit cell with bias, select a gyroid. Now since we haven’t exposed the unit cell type in here as the variable, if I was to change one of these, the other wouldn’t change. So now let’s say I want to go back and do that, I would right-click, make variable. I can drag this unit cell type into here, and now they’re both linked.
The cell map is going to be the same, so I’ll capture the cell map from the raw LCE variable. I’ll hold the control key and drop it into this cell map. The control key is going to make a copy and keep this in both locations. The input value to the Periodic Lattice Body in this case is just going to be the bias. We don’t have a thickness associated with this unit cell. So now we’ve created one of our fluid domains. So we’ll right-click, make variable, and I’m going to call this raw fluid. Just for fun, we can give it a quick random color, and we’ll turn on the raw lattice body and our raw fluid.
All we’ve done is created one of the interior fluid volumes. The next step is to trim it to our design space and fit it within the hex core. So we’ll go ahead and come under modeling, under the Boolean operations. You can either select them here or under the search blocks. I’m going to capture one Boolean Subtract for now, as well as a Boolean Intersect. I’ll use the Boolean Intersect first, and I’m going to take the raw fluid, the design space, and that’s going to give me one of my fluid domains that fit within that volume.
Now if we look closely at the hex core and this fluid domain, there’s going to be a slight intersect between the two geometries. So we’re going to need to subtract out the walled TPMS structure from this interior fluid domain. So we’ll use this Boolean Subtract. Our primary input is going to be this Boolean Intersect, and our subtraction body is going to be our hex core. Now we can drag or drop this hex core into here, or once our notebook starts to get large enough and develop, it’s usually easier and quicker to just select in the input section and type for the variable you’re looking for. So I’ll just capture the hex core here.
I’ll click isolate, and all we’ve done is trim that down a little bit. So I’ll right-click this, make variable, and we’ll call this one hot fluid. I’ll go ahead and give it this warm red color here. Close the nested blocks, and minimize this hot fluid. We’ll use one more Boolean Subtract. So at the top, we’ll select boolean subtract. Now we’re going to go from our design space, we’re going to pull out the hex core and the hot fluid domain. We’ll click this plus symbol, add to this list, and we’ll drag the hot fluid, the hex core. We’ll right-click, make this a variable, and we’ll call this cold fluid. And we can get this a cool blue color. So now we’ve created both our fluid domains with a gap that fits the walled TPMS or the hex core in between.
Once we have our geometry defined, we can add a TPMS structure to the Core and create the starting fluid regions, as shown in this video.
For a faster or slower speed for the video, click on the settings in the bottom right of the video.
Note: This video was recorded with modeling techniques that do not reflect the most up-to-date practices as of April 2025. See the next lesson to understand how to better model your HEX Core and Fluid Domains. In the near future, you can expect to see this series updated to include all modeling best practices.
Note: This video was recorded with version 3.24.3. In 3.26.3, we changed the Periodic Lattice Body block name to Periodic Lattice and removed it from the BETA Tab.
