I’ve tried to analyze and dissect Dan’s geodesic grasshopper definition. Here, I’ve gone through and modified the definition a bit, especially the beginning steps to show another way to solve the gridshell definition with the intention to make a more universal tool for four-sided curved surfaces. The initial issue with a general geodesic definition is isolating individual curves and points along the surface for the purpose of generating the laths later on in the process. Through various iterations we are able to see how certain functions can be performed early on in the definition, though this is not obvious when logically developing the process down step-by-step. Here are the steps taken in this version, again this is a variation of what Dan has done as a way for me to understand the process:
Step 1: To obtain edge curves the surface is broken down into its components and edges are divided into equal smaller segments.
Step 2: This part is a little tricky. Essentially this part is isolating and grouping points according to which edge curve they define. Using data mapping, the points are organized into four branches on a data tree, each branch representing an edge curve. These points are then merged according to start and end points necessary to extract geodesic curves later on. The complexity of this part helps to funnel the information into two Geodesic components, as opposed to one component per edge curve.
Step 3: Here the geodesics are extracted from the surface. The endpoints of which create errors via overlapping points so these items need to be removed from the list. Once this is done the data is then re-grafted back into the data tree to maintain the isolation of geodesic curves.
Step 4: The idea behind this step is to use a large number of points along the geodesic curve as a means to evaluate the surface and generate multiple normal vectors for sweeping. The ‘Interpolate Curve’ component recreates the geodesic curves through the newly evaluated points while the ‘Line’ component creates vector lines normal to the surface for section curves.
Step 5: This is where the physical laths begin to take form. The geodesic curves are swept using the normal vectors as section curves. The resulting surfaces are offset to a specified distance for lath widths. This is important since a cross section of a physical lath, at any point, must maintain the profile of an exact rectangle. By offsetting a surface, the resulting surfaces are independent of the initial surface. To compare components, however, simply offsetting the initial geodesic curves from Step 3 wasted more processes and proved to be less computationally efficient. Strange. The edge curves of the resulting surfaces are extracted for the next step.
Step 6: In order to loft curves for laths, the paths must first be paired so not to be confused with other curves in the group. The Path Mapper groups similar paths into pairs, which are then used for the loft. Laths are placed into two groups; each group represents the laths running in the same direction. Lofted surfaces are offset a specified distance to create a double-lath system, which are controlled using function components to account for surface direction.
Step 7: Here is where the edge conditions for the laths are extended to account for pin connections. Up to this point the definition generates curves which stop at intersection points. The pins, however, rest on the intersection points so the laths are needed to extend a bit farther. There are two things to notice in this section. The first is that extending lath curves results in some fidgety solutions. For example, sometimes one or two of the extended curves would reverse orientation and prevent successful lofts. Secondly, it would make sense that this step should be performed after geodesic curves are extracted in Step 3. Similarly, performing this step after Step 3 results in even less than desirable geometry and lofting. Yet I was able to successfully extend the laths by increasing the number of division points evaluated along the curves in Step 4.
Step 8: This step generates the pin connections to be located at lath intersection points. Here intersections are evaluated along the surface to find the normal vectors which are then piped to illustrate the pins.
This was as far as I had time to investigate a slightly alternate method of developing a gridshell. So far this particular definition doesn’t always seem to generate all of the laths, depending on the number of initial divisions created at the edge curves. Perhaps Dan’s method of breaking down the surface and indirectly creating the geodesics is a more reliable solution. I haven’t had the time to compare solutions to find this out but overall the necessary steps generally the same.