After presenting Project 1, I received input on the grasshopper script to streamline the process. The sliders of the X, Y, and Z scale and the amount of structure are still included in the script, but the process in order to get to the final model has changed.
Still using the base skeleton to create initial curves, I extract the control points from the curves and use these points to create NURBS curves for the outer and inner wings as well as the base structure using the NURBS node in grasshopper. The reason I used NURBS curves was because I needed to be able to move the control points in order create a scaling parameter.
From these curves, I began with the outer wings. I first divided the outer two wing curves by a number controlled by the structure slider. I then created lines between the divided points of the two lines and divided each of those lines by 8. I divided by 8 because I need to create a line offset 1/8 the distance of the outer curve to become the new outer curve for the lofted surface between the curves I couldn't loft between the resulting offset curve and inner curve because they both began and ended at the ground plane, while the model shows a surface that begins at the ground plane and ends a certain distance from the ended of the curve. This distance was calculated to be about 20 percent, so I needed to create a node that would cull out about 20 percent of the points starting from the end of the curve that would give me the base points for the resulting curves.
I created a python script node to do just that. It is extremely simple, but cuts out a lot of the code in the previous grasshopper script. It calls for the length of the list of points of the given divided curve and uses a sequence variable to extract the points in the range of given variables. I assigned numbers to start and end point variables and converted the variables to rounded integers by assigning those start and end variables to another x and y variable. I then outputted the values giving me 80 percent of the points on the line. I then lofted between these new curves to create the outer wing.
Next was the vertical structure. I began by extracting the mid points of lines created by connecting the inner and outer curves. These lines were divided by 8 and I extracted the midpoints of each line using the LIST ITEM NODE to create the base points of the vertical structure. Since the structure didn’t run throughout the entire length of the structure, I used a python script node to create a node that would cull out points. Using the same premise of the script used to cull out 20 percent of the points before, I adjusted the start and end parameters to reflect vertical structure of the TGV station. I then simply projected lines created by the points outputted by the python node onto the base tunnel surface and created a loft between the lines.
The next step was to create the inner wings. What made it difficult to create these wings were that they also contained skylights. To do this, I created a lofted surface between corresponding lines but used the sub-surf node to divide the surface and explode and extract the vertices I then used these vertices and through the use of various list item nodes, I was able to create paths that resembled that of the TGV's skylights. I finally used the surface split node to split the surface at the paths and used the cull node to delete the unwanted surfaces.
Finally, I used the pipes node to visualize the structure much like the TGV on the curves created by the script and joined all of my lofts. I then mirrored the piping and the joined lofts across a plane created by the control points corresponding to the center of the model creating a final product closely resembling the TGV Station.