Pressure vessel workflow

This post will take you through the CAD design of this pressure vessel. The vessel is composed of a solid outer shell reinforced with a lattice on the underside. With two halves bolting together to create the entire vessel, each screw hole is also reinforced with a lattice of its own.


Let’s say that I need to create an underwater vessel that can withstand relatively high pressure while maintaining low weight. The key to making my design work lies in lattice structures, and luckily there is a free software package called Element that, granted I have access to a metal 3D printer, gives me all the tools I need to complete the job. The pressure vessel we are going to 3D print will contain a thin skin, reinforced with lattices, and the first step in the process is to use CAD software and construct a model. As you can see, I’ve created an assembly in SolidWorks containing various parts of the vessel. It is important to note that at this stage in the design, the parts of the vessel which will later become lattices should be modeled as solid regions.

I save all the individual parts of the vessel as STL files. I do this so that I can turn necessary parts into lattices and then reconnect the lattices to the other parts of the structure. This is where it is important to illuminate a workflow hack that will make this process go much smoother. I make two versions of the parts I want to make lattices out of in SolidWorks. One version is slightly oversized, while the other is very oversized, on the faces that will connect to other parts. The reason why I have two variations will become evident as we move further along the process.

This post will be broken into sections, each containing the steps of my procedure accompanied by a gallery with corresponding pictures to help illustrate the process. Let’s get started.

Step 1: Generate
I import the very oversized STL file for the structure that represents the lattice reinforcing the underside of the pressure vessel into element. Using the generate lattice tool, I create the initial lattice structure - choosing the shape, size, and start point of the cells in my lattice. I click ’Generate’ and hit ‘Step’ a couple times to make sure that the entire solid is filled and then hit 'Trim' the trim the lattice to the size of the original part.

Step 2: Remove Open Beams
Due to the fact that I trimmed the lattice, there are now a bunch of open beams (open beams are beams that are either floating or connected on only one side) on the lattice structure. We don’t want these, especially on the inner side face of the lattice. To get rid of them, I open the ’Clean up’ tool and click ‘Select by valence’ with ‘Valence <= 1’. As displayed in the picture, Element highlights all of the open beams and I remove them by clicking ‘Delete’ and hitting ’Save lattice and close’. Removing open beams will ultimately reduce the size of the lattice structure because all of the beams that get deleted are on the surface of the lattice. This is precisely the reason why I started with a largely oversized part to construct the lattice.

Step 3: Trim
Now it is time to trim the oversized lattice to the slightly oversized profile. I select ‘Edit Lattice’ and click the ’Trim’ tab. From the dropdown menu select the slightly oversized part file and hit ’Trim’. As you may have predicted I have created more open beams. However, I designed the slightly bigger part to have the same inner dimensions as the much larger part to prevent creating more open beams on the inner face of the lattice. Therefore, the only open beams now exist on the outside of my lattice shell.  When it comes time to put all of the parts together in mesh mixing software, my lattice will be slightly too large on the face that will connect to the rest of the vessel. Consequently, when I boolean the parts together, I am guaranteed that all of the open beams will make contact with the shell of vessel and that a solid connection will be made.

Step 4: Add Point Modifiers
Due to the nature of the problem, a cylindrical shell like vessel under uniform pressure is weakest along the cylindrical face. Given this, I want to make the lattice denser along those areas. I click the ’Modifiers’ tool and display the lattice I want to modify. I create a new class of modifiers and strategically place points around the lattice where I need it to be strengthened. Each point will apply variable thickness to the regions nearby on the lattice. I can alter the range of each point and change how the thickness gradient changes as I move away from it.

Step 5: Thicken
The only thing left to do it thicken the lattice. I do this by clicking the ‘Thicken Lattice’ tool and switching to the ’Variable’ tab. I chose the lattice I want to thicken, the modifier I would like to apply to it, and set the minimum and maximum beam diameters for the thickened lattice.

Step 6: Export
Click 'file' and export the lattice as an obj. file.

Next, I generate a lattice for the fins -- the part that reinforces the screw holes that connect the two halves of the pressure vessel. This process follows closely to that in the previous section; however, since the fin contains a mechanical feature (the screw hole), I must include a few additional steps. 

Step 1: Generate
Like in the previous, I start by generating a volume lattice from the largely oversized part. I trim the lattice, save and close.

Step 2: Generate Surface
Instead of removing open beams I import the screw face mesh and generate a surface lattice from it.

Step 3: Attract Lattice
Using the 'Move' tool, I attract nodes from the volume lattice to the screw face lattice. I can select a maximum valence (limitation of what nodes can be moved) and the snap distance (the maximum distance away from the attractor lattice the node can be). The nodes that will be moved under my specific parameters are highlighted when I press tab, and once I click ’Move selected nodes’ the volume lattice will be altered.

Step 4: Merge Lattices
Now that the nodes have been moved, I can merge the two lattices. Using the Merge/split tool, I am able to do this by selecting which two lattices to merge.

Step 5: Remove Open Beams, Trim, Add Modifiers, Thicken and Export
Now that I have merged, I can remove the open beams, trim to the slightly larger part profile, add the point modifier, variable thicken the lattice, and export it.

Now that my lattices have been created, the only thing left to do is to connect them to the other parts of the pressure vessel. There are many programs that will allow you to do this, and Netfabb happens to be a very good one. I simply import the files for the various parts into the software, trim the lattices a bit, and unite the parts into one. 

Step 1: Trim mesh to design space
As a consequence of thickening the lattice --which thickens in all directions -- it is now larger than the original design space. I use the intersect tool with the lattice and slightly oversized part to remove the extra material.

Step 2: Repeat
Perform the same intersect with the other lattice

Step 3: Apply rotation to fin
Using the rotation tool, I copy and rotate the fin to create all four fins.

Step 4: Unite outer shell
I use the unite tool to connect the inner lattice to the outer vessel shell.

Step 5: Unite connector and fins
Similarly, I unite the bottom fin connector and the fins to the now connected outer shell and inner lattice.

Thanks for your time!