Thursday, September 8, 2016

Form-Finding

What is Form-Finding?

Form-finding is  the way in which computer programs easily simulate the hanging-spring networks mentioned previously in this blog. Form-finding fits into the larger algorithm of this research:

1. Set 2-D grid
2. Use form-finding to optimize the grid for a given height
3. Convert the simple, shell model into distinct members
4. Create members in Solidworks and mark/note their intersection points
5. Create Solidworks assembly of grid of members
6. Add connections to members
7. Erect the gridshell assembly
8. Test the gridshell in Solidworks Simulation

Steps 3-8 of the process come from the work I did at my internship, which in turn come from the process in which real gridshells are constructed: you lay the members flat on the ground, attach the joints, then raise the gridshell and lock it into place. Steps 1 and 2 are the new part.

Why use form-finding at all?

During the internship, the shape of the gridshell was determined by my Matlab code; its dimensions didn't need to have any basis in reality. That is not the case under the new system, in which the research is set up to directly complement the gridshell capstone project here at the Academy.

What does form-finding have to do with capstone?

My capstone project is to design a gridshell that can essentially compete with a standardized SWA hut for Humanitarian Assidance/Disaster Relief (HA/DR) applications. This means that at some point, the capstone group will have to pick a size and rough shape of the capstone (in order to solidify materials needed, weight, interior space, etc). Once this happens, or even to help this happen, I can use form-finding to test any size gridshell that the capstone group needs.

PushMePullMe

PushMePullMe, which will now be referred to as PMPM, is a form-finding function that works well for gridshells, as shown by the model below, which took all of ten minutes to make:

Basic gridshell model found using PushMePullMe 3-D
PMPM, as far as I've found, isn't terribly precise in its height criteria for optimization, but it is extremely quick to raise the gridshell optimally once the grid and anchors are laid out on the ground.

We will also be looking into using Rhino with the Grasshopper plugin to allow for more precise parametric design in the optimization, but I haven't had a chance to look at that yet.

Taking a form from a shell model to Solidworks

A model such as the above PMPM model isn't exactly correct as far as the members; in the model above, all the members are on the same shell, which means they all take up no space and go through each other. Real gridshells have stacked members sandwiched with plates, which need to be modeled to ensure an accurate result.

Going from points generated from a model such as the above, and creating a Solidworks sketch is a fairly simple process, using one macro found online:

Simple Solidworks sketch from points
This model, however, still has all the members on the same plane, and wouldn't allow for the stacked members. This means I must manipulate the points in order to get one member at a time. Then I need the length of that member so that I can lay it flat in Solidworks and then get the pre-tension when the gridshell is raised.

I have done this before, over the internshp. Here is the Matlab plot of the points used to make the above sketch (note that the axes aren't the same scale so the cap dome looks much higher than it really is):

Matlab plot of points used to make Solidworks sketch shown above

By looking through the coordinate arrays, I was able to isolate one cross-member. This allowed me to then spline the points of that beam to create close to a smooth curve. This almost-smooth curve then allows me to measure and output the length of the member and the length in between intersection points, which I need in order to lay the flat grid of members in Solidworks. The plot below shows the nodes and spline of one member:

2-D Plot of one member in Matlab.
The blue circles are the nodes that define the member, and the red curve is the points that make up the spline approximation for the shape of the member, allowing me to calculate its overall length and length between nodes.

Next Steps

The next thing to try will be Rhino with Grasshopper. I am confident that I could finish the spherical cap, as it would essentially be the same process used in the last part of the internship. Focusing on steps 1 and 2 will also allow the research to better integrate with the capstone project.