Follow Along: Model a Double Pipe HEX

Transcript

Hello everyone and welcome back to the Intro to Modeling course on nTop Learn. Today we are going to be learning how to model a simple double-pipe heat exchanger inside of nTop using all of our new curve blocks available in the software.

Right now in this file, we can see that we have our sample part on the screen here, which basically consists of two fluid interfaces where we actually have two separate layers of pipes going on top of each other. And although this may look like a complex workflow in typical CAD terms, this really has to do with curve and volume manipulation inside nTop, and we’re going to make a repeatable workflow using this.

To start off here too, I see that we have our sample located over here to the left. And also, if I open up my left side panel here, I can see all of the custom blocks that I’m going to be using to import located here on our left as well. These will be extra blocks associated in the file that you can download into your own custom block library, or since these are preloaded into the file, we can use Flange, Remove Every Other Point, and Arc By Tangent From A Point List separately as well. And again, all of these blocks really are just using profile and curve tools in nTop, but we’re just going to use these already assembled custom blocks as an advantage to help us get to our end workflow faster.

Now, to begin here, we’re going to do a little bit of a tour of how we’re going to construct this. And along the way, we’re actually going to create some scalar and integer inputs that we’re going to put at the top of our screen in our input section. So we can actually reference those to drive everything as we go along. So if I look at our pipe sections here, I can see that we have a pipe that kind of weaves back and forth in a zigzag as we go and outputs at the top. And then we also have one that starts and then does a smaller version of that without doing the complete bend, so that we have heat transfer in between the two fluids that would flow through these.

The way that I broke it down when I created this is that if we think of the centerlines of each of these, we basically have a straight line at each one of these interfaces. So we’re going to list process and create a list of centerlines as we go. Then we also have connecting left arcs here as well as a finish arc at the top. And then we have right arcs here with a finish arc at the bottom. That’s how we’re going to create the first centerline inside of our fluid one centerline location here. Then we’re going to build that volume by thickening that curve. And then we’re going to create our fluid two centerline in a similar way where we’re going to have those centerlines here. And then we’re going to connect it with verticals that connect it in between. And then we’re going to thicken that pipe in a similar manner. Once that’s done, then we’re going to use that simple Flange custom block that I created to create these flanges at either side of our outputs.

To begin, I’m going to actually create a section at the top in our input section here where we’re going to have scalar and integer variables that are going to let us drive every other parameter that we need to create. So since we can create those inputs at the beginning, it makes it easier to kind of follow along and use the information that we have to start. I’m going to just create a scalar variable in nTop, and I’m going to need about six of these. So I’ll simply do Ctrl C and then Ctrl V until I have six of these scalar inputs made. And then I’m also going to have one integer as well. So an integer variable for my first integer variable here as my input, I’m going to call this my Unit Count. And my Unit Count means that the amount of repeats that I’m going to have or the amount of repeat units. So each one of these bends to a certain side is going to count as one complete S unit. And since I’m counting these at units, this means that we’re going to guarantee that our pipe on either side is going to start at kind of this general side of our heat exchanger each time.

So that first one is going to be our Unit Count. Then I’m going to call this next my F1 for Fluid One Centerline Width. So this is going to be the straight line distance here from my fluid one centerline that snakes around. So this will tell us the width before we actually reach our arcs. Then we’re going to have our Fluid One Centerline Bend Radius or F1 Centerline Bend Radius. This is going to tell us the radius of the centerline for each of these bends, which will also dictate, since we don’t have any straight lines in between, will also dictate the height of each one of these units as well. Then we’re going to have our Fluid One Fluid Diameter telling us how thick we’re going to make the fluid itself. And on top of that, we’re also going to have our Fluid One Pipe Thickness. So the thickness that we want to create our pipe for our last two variables. These are going to retain more information for our Fluid Two, and it’s going to be our Fluid Two Centerline Width. And then lastly, our Fluid Two Thickness as well. And I’ll get to what that means when we get to our Fluid Two section. But for now, I’m just going to enter this up to our top portion. And then this is going to be our total count of variables that we’re going to use to drive everything inside of this part.

Coming down to our constant section, then, this is where we’re actually just going to have a few constants that are going to make it easier to actually work throughout our workflow. So our first constant here is just going to be our bend diameter. So instead of our bend radius, it’s just going to be our diameter, so we’re just going to be multiplying it by two. I’ll hit S to context search here.

For our first one, I’m simply just going to multiply our fluid centerline bend radius by two, and this variable is going to be named our bend diameter. To test this out, I can give us a radius of 50 mm here at the top, and then I can see that we get 100 millimeters for that diameter.

For my next one, then, I’m going to call this our line count, or the total amount of center lines that we’re going to need depending on the units that we have. I can see that in this example, we have 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 center lines for something that has six units total. So this means that we always need to multiply the amount of units that we want by two and then add one on the end to give us a full rotation. So for this, I’m going to multiply our unit count by two. And so our unit count in this case is going to be for example, six. So if I multiply this by two, that’s going to give us the center lines that we need minus one. So to give us that final center line count that we need, I’m going to simply add one more to that multiplication step. And then this is going to be our line count variable, or the total amount of center lines that we’re going to need to construct this. So I’ll name this line count. And then this is basically going to be the end of our preparation steps before we really start creating these example lines.

To create these lines, I’m going to collapse these two blocks here and I’m going to move on to our center line section. So I can see that we have these center lines as we go up. So I’m going to create these by list processing our Line By Direction block. With this block, I need a set of points, a direction, and a length each time.

I can see that since this line direction is going to be the same for each one of these center lines that we create, I’m simply just going to choose a direction of 1 0 0. And the length is also going to be the same each time, which is going to be equal to our F1 CL width that we created above, or again, our fluid one center line width. And to approximate this to start, I’m going to give this a value of 1,000 mm.

I’m also going to choose to center these around these points at 0 0 and X and Y as I go. And so the only input that we need now to actually list process our Line By Direction is going to be a list of points to create these from. So to create that list of points, I’m going to use a Sequence block. The Sequence block is going to give us a start, an increment, and a total count. So for our start, I’m going to say zero. And our initial point is going to be at 0 0. This is going to be my sequence in our Z direction. And for my increment, I’m going to give it my bend diameter because my bend diameter is going to be my total distance in between each one of these center lines vertically.

Finally, for my total count of lines that I need, that’s just going to be my line count variable that I created above. So after I drop that in, I see almost everything worked here, but we messed up our units with our start here, so I’m just going to give that 0 mm. And I can see now we’ve created a sequence between 0 and 1,200.

Next, I’m going to create a point variable, excuse me, a point block. And for our sequence, I’m going to go ahead and drop that into our Z. Now, if I click on this, I can see I have created a sequence of center points to create our lines. And to create these center lines, all I have to do is drop this block into our Lines By Direction. Then I can see the center lines for our body have now been populated. I’m going to make this a variable, and I’m going to name this F1 center lines.

The next step here then is going to be creating our list process arcs on either side of these center lines to combine all of these into a final polyline. To do this, I’m going to use my first included custom block that we talked about, which is going to be our Arc By Tangent From A Point List. So I’ll search for this really quick, and I’ll bring in that Arc By Tangent From Point List block here. I can see if I look at the information from this that this block runs arc from tangent, a block that we’re familiar with where the start and end points for that are chosen by points grouped in two. So that means if I take this total grouping of center line end points here, that each group of two is going to be connected by an arc by tangent. And notice that this rule is going to work everywhere until I get to that odd one at the top. So we need to remove this point from where we take the end points of our center lines to use as inputs here.

I can do this by using the Remove block. I’ll load in a Remove block really quick. And then I’m going to navigate into the properties of our center lines. And I’m going to hover over either our start points, or I can see that we’re looking for our end points here in this case. And that’s going to be the list that I want to remove one point from. Since we started with our points down here, that means the end of our list is going to be up here. So I want to remove one from the end of our list here. To do that, I’m just going to use a simple Subtract block. And if I come to our results here, I can take the size of my list, subtract one from that, and then that is going to be the last index to remove that from. So now if I hover over this, I can see we’ve always removed the last index from that last center line up at the top. Meaning that if I use these points now as an input for this Arc By Tangent Point List, and I choose a start tangent for each one of these, I can see our start tangent should be in the positive X. I get a list of arcs connecting all of these points as I go up this left-hand side of my body. Now that I have this list of arcs, I’m going to right-click and make this a variable. And I’m going to name this left arcs.

Now that I understand this process with our left side arcs, I’m going to repeat that on our right side, but in a slightly different process, because now we want to remove the first start point rather than the last. So I’ll load in another Arc By Tangent block again with our point list. And I’m going to use a similar approach, but now I’m going to use that Remove block with the start points, which are on the right-hand side. I’ll pull those in. And for my index now, I don’t need to do that automatic sizing index before, since I know I always just want to remove the first point, giving us the results that we see on our screen. I’ll then drop this into my point input. And then for my start tangent this time, I’m going to say -1 0 0. And this is going to give us our finished arc list on the right. So I’ll make this a variable and I’ll name this right arcs.

Now that these three are done, I’m going to collapse these for now. Now that we’ve finished our arcs on either side, we just need to create our start and our finish arc here at the bottom. So I’m going to do this by loading in two Arc By Tangent blocks so we can finish our polyline with these blocks. Then we need a start point, an end point, and a start tangent. So we’re going to use these again, using kind of the list element versions that we’ve been working with so far, and then also with a translation and a vector. So for our start point for our start arc, I’m going to begin by using the List Element block and pulling the first index of our start points out from our original center lines. So to create this arc at the bottom, I’m going to pull the first point out of our start points. So at index 0 of that list, this is going to be my start point. So my corresponding start tangent for this is going to be -1 0 0. For my end point then, I’m simply going to translate this by our bend radius here, downwards and to the right. So again, I’m going to load in a Translate Object block. And to finish this, I’m going to translate this point that we’ve just created by the vector of just down by our bend radius and over by our bend radius. So I’ll make a Vector block as well. And inside of this vector, again, we’re going to translate it down. So in our negative Z direction, by our bend radius. So if I come up to our inputs at the top, since I know I want it to go down in our Z direction, I’m going to take the negative of that block. And I’m also going to translate this point in the negative X direction as well. So again, I’ll drag the negative version of this and put this in our X direction. And to fix our error here, I’m going to give units to our Y in the middle. And now if I look at this translated point, I can see it’s correctly at our end region. If I use this as my end point, then I can see that we’ve successfully created our start tangent here. I’ll make this a variable, and I’m going to name this start arc.

Using a very similar process, then I’m going to create our end arc here at the top where we’re just really going to have a different index. So I’ll load in another Arc By Tangent block. And for our first point, I’m going to use List Element again, but this time it’s going to be the last in the list on our left-hand side. So that means that I need to use that little subtraction and list size trick that we used before. So I’m going to take our list size, subtract one, and that is going to be our index. And for our list, that’s going to be our end points from above. This is going to give us again our end point that we trimmed out from the other ones. That will be my start point. And for my start tangent, I’m going to choose 1 0 0 since it’s facing in the positive direction. For our end point then, again, we’re going to translate by our bend radius vector. So I’ll choose a Translate Object block, and we’re going to choose that point that we had just created. So I’m just going to copy and then paste that selection of blocks, use that as our object or the point that we’re going to be translating. And for our vector this time, since we’re going in our positive X and positive Z direction, all I need to do is drag our bend radius into both our X and our Z. I can also type in the name of the variable that I’m looking for so I don’t have to go all the way to the top. I can then see this has correctly translated our point. And if I use this as my end point, we’ve successfully created that end arc. So I’ll make it a variable, and I’ll name this end arc.

I’ll collapse these two blocks. And then our last step here is going to be creating a polycurve from all of these lists of curves. I’ll load in a Polycurve From Curves block. And what we’re basically going to do here is we’re going to concatenate a bunch of lists of these arcs that we’ve created. So to start, I’m going to load in a Concatenate List block. And I’m actually going to copy this block three times so we can concatenate all of the lists of curves that we’ve made. An important thing to note when we use the curve types in nTop, we just need to make sure that they end up being all curves when we union them together. So I’ll start off by putting our left arcs and our right arcs into a concatenate list here. And again, I’m just going to change our type to make sure that these are both curves and not both arcs. Since again, curves are the overarching type, but arc, center line, line, these could all be different types as well. So we need to make sure that they’re all curves. I’ll change these other types too, just to make sure that these are all





Now that our centerline is created, it’s a pretty easy process to, excuse me, make our fluid one volume. That, which really is just going to involve a few thickening and Boolean operations.

To start off, we’re just going to do a simple Thicken Body on the poly curve field that we’ve created. And then we’re going to intersect that with the two planes that we can create on either side as well. So I’ll load in a Thicken Body to start with. And because we don’t have an overload for an implicit body inside of our poly curve, we can’t natively drive or drop it into thicken. So I can just take the scalar field inside of the properties, use that as a body for Thicken Body. And then for our thickness here, we can go ahead and we can actually use the Fluid 1 fluid diameter, which is going to be at our top. And the value that we can use for that input then to actually start with is going to be 50 mm to start. So I’ll go ahead and add in 50 mm up here at the top. And then we can see our poly curve immediately thicken.

However, because it’s a curve, when we thicken, we’re always going to get those little half circles on either end of the curve. There’s a pretty simple way to get rid of that though, and that in this case is by creating a plane on either side and then doing a Boolean intersect operation with this thickened body. So I’ll go ahead and I’m going to load in two Plane From Normal blocks. For the first one, I’m just going to use our start and our start tangent. And for our second, I’ll use our end point and our end tangent. And just like that, we have two slicing planes on either side of our body.

I’m going to name this one our F1 start plane. So I’ll make a variable out of it and name it F1 start plane. And for the next, I’ll name this F1 end plane. Now, if I do a Boolean intersect with our thickened body and our two planes, this is going to give us a trimmed version of what we’ve just created with a flat body on either side. I’m going to make this a variable and I’m going to name this F1 fluid. We also need to create a pipe out of this, so we’re just going to use a few more Boolean operations to actually get that pipe to work for us.

Next, we’re going to create a solid version of that same pipe from before. So we’re really just going to thicken our body and we’re just going to make it thicker and do the same intersect interaction. So I’ll load in another Thicken Body block. I’m going to use that same poly curve property inside our conversions. And then for the thickness here, I’m going to use our F1 fluid diameter as one of the thicknesses. I’ll collapse these for now. So I’ll use our F1 fluid diameter for one of these, but then we also need to account for our pipe thickness inside of our solid pipe as well. And the pipe thickness, if we think about, we need to multiply by two because there’s thickness on either side of our pipe. So I’m going to multiply our pipe thickness by two and then I’m going to add that to our F1 fluid diameter. And as a good test value for that pipe thickness, we’re going to use 8 mm to start. So if I type in 8 mm, I can see now we have a new amount to thicken by. And I can see we get a slightly thicker body on our screen.

If I do that same Boolean intersect operation then with our two planes and this thickened body, this is going to give us a solid version of our pipe, which we’re going to use later on. So I’ll make this a variable and I’ll name this solid, or excuse me, F1 solid pipe.

And then finally, to give us that final shelled look, we’re going to use a shell with a thickened body, and then we’re going to trim it as well to open up those side regions. So I’m going to again use our Thicken Body block where I’m going to thicken that same poly curve property that we used before. And we’re going to use our same fluid diameter thickness to start with and then create an external shell afterwards. So I can see that I’ve thickened our body. And now I’m going to use the Shell block where my shell thickness is going to be my F1 pipe thickness. And instead of shelling inward, I’m going to shell outward to give us the thickened version that we saw before with our solid pipe. And then finally, if I trim off each end again using our Boolean intersect, this is going to give us our Fluid 1 pipe. I’ll drag both of these planes. And if I isolate this block, I can see that we have an open pipe on either side. And if I hit X to do a section cut and choose the correct plane, I can see our fluid channel going through our part. I’ll simply right-click, make this a variable, and I’m going to name this F1 pipe.

Now that our Fluid 1 portion is completed, we’re going to go ahead and start by building our Fluid 2 centerline. So I’m going to go ahead and bring up our sample part once again so we can visualize that centerline that we need to create. And I’m just going to collapse these two sections just so we can see a bit easier. I can see we’re going to make this in a similar fashion where we create our centerlines again, and then we just need to create some vertical lines throughout our part as well.

So we’re going to start off using that same process of creating our centerlines using a point, a centered centerline, and then our F2 centerline width. To save us some time since this is the exact same process as our F1 centerlines, I’m actually just going to copy that variable. And then I’m going to paste it into our Fluid 2 centerline portion. And instead of our F1 centerline width here, we’re actually just going to use our new F2 centerline width. So I can drop that variable in here. And as an example value, we can go ahead and use 700 millimeters for that width as well. So I’ll go ahead, type 700 in. And now if I view these lines that I’ve created and change our variable name to F2 centerlines, I can see the appropriate centerlines on our screen.

And using a similar approach then, we’re going to create the verts, or the verticals that we need as well. And we’re going to use a slightly different technique and a slightly different custom block, but kind of the same as we did for our arcs. We’re really, I just want to remove every other point and then create a line by direction in between to the other points. Although we could use a line by point list like we did for our arcs as well. Either way would work and either would be pretty much the same efficiency wise, which is kind of the beauty of nTop here where we can kind of pick and choose and create those points that we need.

I’ll collapse our centerlines here and I’m going to load in a Line By Direction block. So first off, let’s start with our right side here. And I’m going to start with a point list. And if we look at this, we want to create a line basically starting with every other point going up. So I’m going to use our remove custom block that we have called remove every other point that’s loaded in. So if I type in remove every other point, this is going to give us a point list. And if I drop in our list of start points here, and now I look at this list, I can see that we’ve removed every other point to start with. I want to start with this one here though. So I’ll uncheck that alternate option. And now if I look, I can see that all of these points are going to be the start point for our verticals. I’ll use these as a start point for my direction. They’re all in the positive Z, so I’ll select that option. And then for our length, I’m going to use our bend radius from above, excuse me, our bend diameter. If I drag in our bend diameter for our length, then I can see our verticals connected all the way above for this body. I’ll right-click, make this a variable, and I’ll name this right verticals.

Next, we’re going to use a similar process here for our left verticals. So, I’ll go ahead and again grab our Line By Direction block. And I’m also going to use our Remove Every Other Points block again. So, I’ll copy and paste that. Instead of our start points, I’ll use our end points here. And now if I look at this, I can see if we now look downwards with what we’re creating, that this is going to create the necessary verticals. So this is going to be our input point here. For our direction, I’ll choose 0 01. I’ll use that same bend diameter as my length. And now if I view this, I can see our verticals down the left-hand side ready to use as well. I’ll right-click, make this a variable, and I’m going to name this left verts for left verticals. For our next step, then, I’m going to combine our verticals into one list. We’re going to need that later on because we’re going to thicken them slightly different. So, I’ll use Concatenate List and I’m going to create one block here just called verticals or verts in this case.

So, to finish off our polycurve, then, I’m going to use Polycurve From Curves. And then the two curves that I’ll put in here inside this list are going to be our verts that I need to concatenate with our center lines. So, I’ll use Concatenate Lists, use our verts, our center lines. I can see our types aren’t matching up, so I’ll simply change this to a curve type. Everything works. Drag this into my Polycurve From Curves. And if I click on that block, I can see our polycurve ready to go. I’ll right-click, make this a variable, and I’ll name this F2 for fluid 2 polycurve.

Now, in our next section here called fluid 2 calculations, as I close these two, we’re going to need to do some math in nTop to kind of figure out the thickening that we want to use to create our second fluid domain here. So, we’re really going to thicken our verticals different than we’re going to thicken the center line portions here to create a desired effect. To do this, we’re going to use some calculations, some cross-sectional area so we can have kind of an equivalent cross-sectional area through our verticals just as we do through our part, so we can have kind of more even fluid flow throughout. Excuse me.

So, what we’re going to do is we’re going to get, if I take a section cut of this, we’re going to take the inner radius here and then the outer radius of our fluid. So, we’re going to calculate both of those. We’re going to get the cross-sectional area of our fluid. And then we’re just going to make sure that then that can be, that cross-sectional area can be equivalent to then the radius of this thickness that we have throughout the center of our part there. So, our first calculation is just going to be getting the inner diameter of this horizontal portion, which if we think about it, is really just going to be the same as the outer diameter of our, excuse me, pipe. So, this calculation is going to be pretty simple because we’re really just multiplying our F1 pipe thickness by two and adding it to our original fluid diameter. So, I’ll load in a Multiply block. I’m going to multiply our pipe thickness by two. And I’m going to add this to our F1 fluid diameter. I’ll make this a variable. And this is going to be our F2 horizon. I’ll approximate with that inner diameter because this is going to be the inner diameter of what our fluid 2 is going to be, because we have that same wall again through the center of our part here.

Our next calculation then is going to be getting the outer diameter of what our fluid to fluid is going to be. So, to get this, I’m going to simply add what I’ve just created, so this diameter, with what we want our F2 thickness to be. So, I’m going to approximate this thickness as 10 mm here. And this is again the thickness, if I section cut this one more time, the thickness of this region where we want fluid to flow. So, it’s just going to be adding that thickness in. And then I’ll make this a variable. And I’ll name this F2 horizon outer diameter.

To calculate the cross-sectional area in between, then, we’re going to take the area of both of those circles and then we’re going to subtract from each other. So, to do this, we’re going to use some multiplication, squaring, and division blocks in nTop here. And we’re just going to repeat it really quick to make it an easy operation. So, I’m going to first start with our outer diameter and I’m going to divide it by two to give us our radius. Then I’m going to square it, excuse me. And then I’m going to, yeah, excuse me, square it. And then I’ll multiply by pi. And then this is going to be our first area. To get the second, I’m just going to copy and paste this. Excuse me, not pi. Copy and paste our multiply here. And I’ll just drag in our inner diameter instead of our outer. And then this is going to be our second cross-sectional area. So, if I just subtract both of these, now this is going to give us the actual area of that region or the cross-sectional area inside. So, if I make this a variable, I can then name this fluid 2 F2 cross-sectional area. And since I just want this area to be consistent everywhere, I can then use this area to calculate what I want the thickness of our vertical regions to be. So, if I collapse this then, and I take this result and I divide this by pi and then take the square root and finish off by multiplying by two, this is going to be our outer vertical diameter. So, I’ll make this a variable and then I’ll name this F2 vert diameter. So, this is going to be the diameter of the fluid 2 in our vertical regions.

So, for our final section here for fluid 2, excuse me, before flanges, we’re going to create our volumetric fluid region using our curves and our calculations again that we just made. So, I’m going to do this with two Thickened Body blocks. And we’re going to thicken our verticals and our center lines because we created those two different thicknesses that we need to use. So, first off, I’m going to drop our center lines into our body. And again, I need to take out our scalar field to use as our body here. And then for the thickness that we’re actually going to use, I’m going to use our outer diameter that we just created for our horizontal ones. This is going to give us a list of 13 thickened bodies. And to finish that off, then I’m simply going to union these 13 bodies together, excuse me, to create our thickened horizontal regions. And I’ll isolate those. I’ll make this a variable. And I’ll name this thickened horizontal.

For our verticals, then, I’ll repeat this same exact process. So, I’ll grab the scalar field of our verticals as our body. And for our thickness, I’ll use the fluid 2 vertical diameter. I’m going then going to Boolean Union these 14 together, and this is going to give us the verticals that we were looking for connecting our regions. I’ll make this a variable and I’m going to name this thickened vert. I’ll collapse these two. And then, unsurprisingly, our next operation will just be Boolean Unioning these two together to give us a kind of raw fluid domain. I’ll make this a variable and I’ll name this F2 fluid raw, because again we need to trim out that other pipe that’s actually going through here to give us our desired result.

So, in our next step then, we’re going to actually do that using a Boolean Subtract block. So, I’ll use a Boolean Subtract and I’m going to take our F2 fluid raw as our primary body. And for our subtraction body here, I’m going to come back up to our volume section, our fluid one volumes, and I’m going to use that F1 solid pipe that we had created before but didn’t really have a use for. Now this is actually going to trim out those regions. So, this is going to be our final fluid domain here. It will be final though after we intersect with two start and end planes. So, I’ll use our Plane From Normal once again. And I’ll come back up to our fluid 2 center line here, or excuse me, our polycurve. And for our start point, I’ll choose that. And then our start tangent. And I’ll repeat the same with our end point and our end tangent. So, this will be my start plane, start plane. And this will be my end plane. And I’ll put two behind just to signal our fluid two here. So, if I add two more, excuse me, not that.

The final step in this workflow, then, is going to be using our flange custom block in our next section to create these flanges. Then I’m simply going to use the Flange Custom Block that I already have loaded into my notebook. In this custom block, we can actually open it up and see what I’ve done inside. And really, what I do is I create a variety of profiles and extrude these, but using this custom block makes this process extremely fast and repeatable. So this will create a flange on the end of whatever frame that I choose, with whatever fluid radius, bolt hole count, bolt hole radius, flange width, and flange thickness that I desire as well. So in this case, I’m going to go ahead and make a plane list.

And I’m going to throw our first two flanges on our start plane one and our start plane two, located in our fluid one volume section. I’ll make a list of these, and then I’ll drop this plane list into our frames here. I can see, when I do this, that we’re not seeing anything perfect show up yet, but that’s again because our values that we’re using aren’t correct for what we actually need for this to show up. So for our fluid radius here, for our first one, I’m going to actually use our actual F1 fluid diameter divided by two. So I’m going to take a multi, excuse me, a Divide block, and I’m going to divide our F1 fluid diameter by two.

For our bolt hole count, I’ll let that remain at four. For our radius for our bolt hole, I’ll change that to five. For our flange width, I’ll choose 18 mm. And for our thickness, I’ll choose 10 mm. I’ll then drop in our fluid radius here. And after this is done loading, I can see our flanges have now updated to the top of our body. I’m going to union these flanges together, and I’m going to name these to our F1 flanges.

F1 flanges. I’ll then copy and paste this block, and we can then repeat that same process with our fluid two volumes and fluid two radius. So I’ll drop in our end plane and our start plane two. And for our fluid radius, I’m then going to take our fluid two vertical diameter, since that’s what’s on the top to use as our fluid radius. And then I’ll choose something like a bolt hole count of seven and a flange width of 25, just so we can see a difference in our actual flange creation here. Once these update rendering, I’m going to change our variable name to F2 flanges. And now I can see everything properly located on the outside of our part. The final step for this entire workflow, then, is just going to be doing a Boolean union on our flanges and our final pipe. And then we have a completely final design, ready to actually be tested.

0:00 Introduction to Double-Pipe Heat Exchanger
1:25 Setting Up Scalar and Integer Inputs
6:25 Creating Constant Variables
8:50 Constructing Fluid 1 Centerlines
11:53 Creating Left and Right Arcs
23:40 Building Fluid 1 Pipe
30:04 Constructing Fluid 2 Centerline
31:45 Creating Vertical Connections
37:04 Assembling Fluid 2 Volumetric Region
49:18 Building Flanges

Download the starter file below to follow along.

  • 0:00 Intro & Custom Blocks
  • 3:10 Input Variables
  • 8:50 Fluid 1 Centerlines
  • 23:38 Fluid 1 Volumes
  • 30:02 Fluid 2 Centerlines
  • 36:18 Fluid 2 Calculations
  • 42:05 Fluid 2 Volumes
  • 49:20 Flanges

Downloadable Files:

This file was last updated in nTop 5.23.2