8
S206E057 – Spring 2021 Page 1 (5/24/2021) Copyright ©2021, Chiu-Shui Chan. All Rights Reserved. Morph revisit: Concept of Morph in Rhino and Grasshopper Morphing is a technique that could precisely stretch and distort geometry to meet the desired forms. Here are the steps of turning a sphere into a deformed box geometry. 1. We will use Transform Tag > Morph panel > Box Morph (type either Morph or Box Morph) to put a morph component in GH. 2. Create a sphere in Rhino, generate a geometry component in GH. 3. Right click on Geometry > Set one Geometry > Select the Sphere > right click the geometry component again > Internalize Data. This step would apply the sphere to the geometry component, and copy the sphere into the GH definition through the “internalize data” function. We could delete the Rhino geometry to display the original Geometry component in GH format. This way, the sphere geometry is a part of the GH data. 4. Connect the geometry output to Morph Geometry input. 5. In Morph component, it requires a reference box; which is the bounding box of the original geometry of the sphere. One method of setting up the reference box is to plug in the geometry parameter into the reference box input. GH will automatically figure out the proper bounds of that reference box. The other method, which is more flexible and visible, is to use a Bounding Box component for the geometry and to serve for the box reference box input. Surface > Primitive > Bounding Box (or type BBox). Results of the BBox are to have a bounding box set around the basic geometry that we created, which also visually helps to preview the possible framework. Note: In this BBox data management, C is the geometry to contain in a “list” format; P is the orientation plane, which has the world xy plane as default plane but it could also be defined by users. The first output parameter of B is the aligned bounding box in world coordinates. The second box output B is the bounding box in orientation plane coordinates, which is the defined plane by P. 6. The last input needed by the Morph component is a Target box for T, which determines how the base geometry of (the sphere) is morphed. A simple “Center Box” component could set it up for this exercise to serve the purpose. Surface > Primitive > Center Box > (Type Center Box) Center Box will create a box, which is centered on a base plane defined by B input. Here the default base plane is the world coordinate of X, Y plane on the ground. 7. Define the output of the Box component to the Target of Morph to see the result. The values of X, Y, Z will control the related dimensions for Morph results. Thus, the sphere turns to a squeezed geometry. S206E057 -- Lecture 18, 5/25/2021, Rhino & Grasshopper, Tower modeling

S206E057 -- Lecture 18, 4/22/2020, Rhino & Grasshopper, Tower … · 2020. 4. 22. · Morph revisit: Concept of Morph in Rhino and Grasshopper . Morphing is a technique that could

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

  • S206E057 – Spring 2021

    Page 1 (5/24/2021)

    Copyright ©2021, Chiu-Shui Chan. All Rights Reserved. Morph revisit: Concept of Morph in Rhino and Grasshopper Morphing is a technique that could precisely stretch and distort geometry to meet the desired forms. Here are the steps of turning a sphere into a deformed box geometry.

    1. We will use Transform Tag > Morph panel > Box Morph (type either Morph or Box Morph) to put a morph component in GH.

    2. Create a sphere in Rhino, generate a geometry component in GH.

    3. Right click on Geometry > Set one Geometry > Select the Sphere > right click the geometry component again > Internalize Data. This step would apply the sphere to the geometry component, and copy the sphere into the GH definition through the “internalize data” function. We could delete the Rhino geometry to display the original Geometry component in GH format. This way, the sphere geometry is a part of the GH data.

    4. Connect the geometry output to Morph Geometry input.

    5. In Morph component, it requires a reference box; which is the bounding box of the original geometry of the sphere.

    One method of setting up the reference box is to plug in the geometry parameter into the reference box input. GH will automatically figure out the proper bounds of that reference box. The other method, which is more flexible and visible, is to use a Bounding Box component for the geometry and to serve for the box reference box input. Surface > Primitive > Bounding Box (or type BBox). Results of the BBox are to have a bounding box set around the basic geometry that we created, which also visually helps to preview the possible framework. Note: In this BBox data management, C is the geometry to contain in a “list” format; P is the orientation plane, which has the world xy plane as default plane but it could also be defined by users. The first output parameter of B is the aligned bounding box in world coordinates. The second box output B is the bounding box in orientation plane coordinates, which is the defined plane by P.

    6. The last input needed by the Morph component is a Target box for T, which determines how the base geometry of (the sphere) is morphed. A simple “Center Box” component could set it up for this exercise to serve the purpose. Surface > Primitive > Center Box > (Type Center Box) Center Box will create a box, which is centered on a base plane defined by B input. Here the default base plane is the world coordinate of X, Y plane on the ground.

    7. Define the output of the Box component to the Target of Morph to see the result. The values of X, Y, Z will control the related dimensions for Morph results. Thus, the sphere turns to a squeezed geometry.

    S206E057 -- Lecture 18, 5/25/2021, Rhino & Grasshopper, Tower modeling

  • S206E057 – Spring 2021

    Page 2 (5/24/2021)

    Coastal Fog Skyscraper, Huasco City, Chile High-rise building GH construction methods:

    Step one: Generate four spiral lines first.

    1. Create a rectangle in GH with the following values for X: -40 to 40; Y: -40 to 40; and R: 0. Values inside the input components are established by “Set Domain” local input method.

    2.1 Create a “series” of list. Here, “Series” will create a series of number as a list. a. S is the first number in the series, it is 0 by default. b. N is the step size for each successive number: 0.26. 1 is the default value. c. C is the number of values in the series: 30 numbers representing floor numbers. Default value of 10.

    2.2 The numbers on the list will be calculated by multiplying the step size of 0.26 (or the length of an edge of a box) by

    itself twice through “Cube” (for instance, the second number on the list is 0.26 * 0.26 * 0.26 = 0.017576).

    2.3 Turn this resulting list to 30 coordinates along Z axis (“Unit Z”), i.e., (0.0, 0.0, 0.017576)

    2.4 “Move” the 30 rectangles up along the given Z values (see Fig 1 below).

    3 Convert the list of (the moved 30 pieces) geometry through “Plane” parameter to create the list of moved 30 rectangles’ data into 30 of 3D data and used as the rotation (Rotate) plane.

    4 Rotate the rectangles. The Rotate input G is from the Move G output, and rotation angle of 30 planes is determined by a “Series” list with 30 numbers with increment of 0.4 (degree), 11.6 is the max. (Figure 2 below).

    5 The rotated rectangle will be divided (Divide curve) into four segments (N in divide component is 4). (Fig 3 below)

    6 Flip the data matrix (Flip Matrix) by swapping rows and columns to make spiral shapes.

    7 Create an interpolated (Interpolate) curve through the swapped set of points – curve degree is 3. (Fig 4 below)

    Degree must be greater than 0, less than 12; and it shall be in odd number. 8 Make the four curves into four pipes, with pipe radius of 4. (Fig 5 below).

  • S206E057 – Spring 2021

    Page 3 (5/24/2021)

    Step two: Create faces for the four curves.

    1. “Flatten Tree” function to remove all branching information to flatten the data tree for making 4 curves.

    2. “List Item” to retrieve the data item back to the list, by increasing the output number from 1 to +3 (zoom in to the component and click the + sign three times to add three more output items).

    3. These four outputs will serve as the four input data for the “Curve” parameters.

    4. These four spiral curve lines will be connected to 4 sets of “Ruled Surface” to generate four faces. Each “Ruled

    Surface” will create a surface between two curves. Use the Rhino image to determine which line goes to A or B.

    Step three: Creating the skin to be assigned to the exterior faces.

    • Draw triangular shapes (TriGrid, or Triangular) 1 (or 10 Ex) by 30 (Ey) with size of 35 (1 by 30 grid). Try 1 first.

    • Make (or turn) these triangular shapes to curve (Curve) representation and “Flatten” the data. Concept of flatten is to make a linked data list.

    • Set up a “Graft Tree” component, (In this example, we have a number of items generated. If we want to attach the data items of the shape to a structure, we need these points to be able to flexibly attach to the points in the structure. Grafting allows each data item to create a new branch for every single data item.)

    • Apply “Pipe” to make these triangles as pipes. The radius of the pipe is 2.

    • Put these pipes into a bounding box (BBox), flatten the data list to make 10 boxes, and turn off the Preview on BBox to make it invisible. (Note: "Graft" and "Flatten" changes the data structure inside a parameter. Sometimes it is necessary to modify the data structure because the default layout does not result in the desired operations. Imagine you divide 5 closed curves into 10 segments each. The result of this operation is a data structure of 5 lists with 10 items (points) each. If you were to Flatten this structure, you'd end up with a single list containing 50 items. If you were to Graft this structure, you'd end up with 50 lists of one item each.)

  • S206E057 – Spring 2021

    Page 4 (5/24/2021)

    Step four: assign the framework in step three to the surfaces created in step two.

    1. Create 4 sets of “Divide Domain2”, separate the U and V direction of the vertical spiral face into a number of surfaces. Their inputs of I are from the RuleSrf. U of 30 is from the step 3 TriGrid of Ey, and V of 1 (or 10) is from the TriGrid of Ex.

    2. Use 4 “surface boxes” (SBox) to create twisted box on the curved spiral surface patch. Its basic surface is the curved spiral surface (Rulesrf) output, Domain D is from the “Divided” output, and Height is 3.

    3. Apply Morph Box (Morph) to morph an object into a twisted box. Inside this component, the base geometry is the pipe in step 3. The reference box is the BBox in step 3. Target box is the resulting surface of the twisted box SBox on item 2 in this step four. Do one Morph at a time. Do the second one after the first one is done to save time.

    4. Finally, apply “BREP Join” component to join these four spiral surfaces together into one big tower. After the objects were joined together, all previews could be turned off to get a better result. Note: It took around 10 minutes for the first three components and 25 minutes for the fourth one of the morph to complete the operation in a lab machine, due to that each surface will go through the sequences of dividing it into 30 subversions, and morph them into a triangle target shape. So, it takes huge computational power with time to complete the task. Thus, constantly save the GH file. If the program doesn’t work, then hit ESC key to stop it. Try Ex of TriGrid of 1 (or 10) and Ey of 30, which will also have the same value of U and V in Divide Domain2 respectively, to see the results.

  • S206E057 – Spring 2021

    Page 5 (5/24/2021)

    Step four coding:

    Final coding:

    Here the number of triangles is 10 after the first time of using 1. 10 will increase the number of elements created on the elevation surfaces. Of course, computation time is much longer than one. Examples of different kinds of skin compositions:

  • S206E057 – Spring 2021

    Page 6 (5/24/2021)

    Take home exercises: Apply a series of mesh grid to construct the façade of a high rise building.

    1. Draw an enclosed NURB curve, set it up as the “Curve” parameter input.

    2. Apply “Series” to generate a list of a series of numbers, which has two number sliders to define the “N” input of 5 and the number of “Counts” as 20. The series of number will be [0, 5, 10, 15…]. This means the tower will have 20 floors with 5 units as level interval.

    3. Apply the “Unit Z” to generate a unit vector that is the World (Z) axis. Export the

    list from the “Series” to the Unit Z to generate a series of coordinates of [0, 0, 0], [0, 0, 5], [0, 0. 10]…

    4. “Move” the geometry from the “Curve” parameter along the imported translation

    vector, which is the list of coordinates, up 20 times.

    5. After planes are moved up, each plane will be “rotated” (rotate) along “World XY Plane” (XY Plane) by certain angles.

    6. We could apply Loft to create the skin. 7. We could apply Morph to create a complicated shape. 8. We could also apply Twist to manipulate the final form.

    Example 2:

  • S206E057 – Spring 2021

    Page 7 (5/24/2021)

    Results (see the image on the lower left):

    Coding example 3 (see the image above right):

    Coding example 4 (see the image on next page):

  • S206E057 – Spring 2021

    Page 8 (5/24/2021)

    The thickness of the wall is not controlled by Extrude, but, by the height of BBox and DeBox. Summaries of GH: There are many functions, components, and plug-ins available in GH, and many different ways to complete the same tasks. Please do more research on the use of GH, particularly the newly developed plug-ins for getting good controls of the system. Reminder for midterm: The midterm will be conducted on 5/29. Here are the requirements:

    1. Please modify and improve your Rhino model.

    2. Apply GH to operate shape/geometries for form generation. This shall be the first try of your GH modeling, which will be finalized in the final project submission.

    3. Write a project summary to reflect the entire executing sequences. Please clearly (descriptively) describe the major GH components that you applied and the sequential steps that you used to generate the building forms.

    4. The project GH summaries should be saved as PDF file. All file submission should use the following filename convention: “StdID_Firstname_Lastname_Keywords” for all pdf, doc and 3dm files.

    Get the Rhino modeling, GH programming, and project summary done – for the midterm presentation.