50% found this document useful (4 votes)
3K views12 pages

RHINO GRASSHOPPER. WWW - Woojsung.com TUTORIAL Woo Jae Sung

This Grasshopper tutorial document summarizes steps for creating a lofted surface from dividing and connecting two planar surfaces. [1] The first step divides two planar surfaces into a grid and connects them with a loft to create an initial lofted surface. [2] The second step introduces a component idea to generate midpoints and vectors from the divided surfaces for interpolation. [3] A VB script component is created to remap the point data into a 2D array and generate interpolate curves between the midpoints. [4] Lofting and post-processing steps are described, including using grafting or modifying the input curves when initial lofting results are unexpected.

Uploaded by

api-26010409
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
50% found this document useful (4 votes)
3K views12 pages

RHINO GRASSHOPPER. WWW - Woojsung.com TUTORIAL Woo Jae Sung

This Grasshopper tutorial document summarizes steps for creating a lofted surface from dividing and connecting two planar surfaces. [1] The first step divides two planar surfaces into a grid and connects them with a loft to create an initial lofted surface. [2] The second step introduces a component idea to generate midpoints and vectors from the divided surfaces for interpolation. [3] A VB script component is created to remap the point data into a 2D array and generate interpolate curves between the midpoints. [4] Lofting and post-processing steps are described, including using grafting or modifying the input curves when initial lofting results are unexpected.

Uploaded by

api-26010409
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

RHINO GRASSHOPPER TUTORIAL

woo jae sung . ws92@cornell.edu . www.woojsung.com


STEP01 . GRID ON SURFACES

++ Draw three lines [Rhino input]


•• Note line direction

++ Crv object [GH object]


++ Connect Rhino & GH objects
•• RMB, select ‘set multiple curves’
•• Note line picking order

1ST

2ND

3RD

++ Do the same thing for upper layer

++ Loft object
•• Default loft option

step01_01
++ Divide object for surface division

++ Number slider setting


•• ‘Even numbers’ for U direction
•• ‘Integer’ for V direction

++ Connect Divide object to surfaces & sliders

step01_02
STEP02 . COMPONENT IDEA

++ By default, points generated through ‘Divide Srf’


object are to be ordered in zigzag fashion.

++ For better control, point ordering method should


be changed into 2 x 2 array or list.

++ Get mid points


•• pt01A = ( ptA(0)(0) + ptA(1)(0) ) / 2
pt01A
•• pt02A = ( ptA(1)(1) + ptB(1)(1) ) / 2
•• pt03A = ( ptA(2)(0) + ptA(1)(2) ) / 2

pt02A •• pt01B = ( ptB(0)(0) + ptB(1)(0) ) / 2

pt01B •• pt02B = ( ptA(1)(0) + ptB(1)(0) ) / 2


•• pt03B = ( ptB(2)(0) + ptB(1)(2) ) / 2
pt03A
pt02B

pt03B

++ Set direction vectors

step02_01
++ Draw two interpolate curves.

++ Loft

++ Component expansion

step02_02
STEP03 . VB Scripting

++ Point List object attached to see point order on


surfaces (zigzag order)

++ Setting VB component
•• Four input parameters
•• ptSetA : points set A from upper surface
•• ptSetB : points set B from lower surface
•• divU : U direction division factor
•• divV : V direction division factor

++ Get connected

++ Set input parameters : ptSetA & B


•• Check ‘List’ - multiple point input

step03_01
++ Set input parameters : ptSetA & B
•• Check ‘On3dPoint’ for data type hint

++ Set input parameters : divU & V


•• Check ‘Integer’

++ Double ‘For ~ Next’


•• To remap one dimensional linear point input
data into two dimensional array or list, we will
use double ‘for ~ next’ loop.

++ Iteration for V direction(‘j’ direction, pt01 ~ pt06)


•• Define ‘n’ as integer. (Overall index, 0 to point
upper bound)
•• Define ‘ptRowA’ as list of points
•• Define ‘ptA’ as individual points
•• Assign the point ‘ptSetA(n)’, n th member of
input point list, onto ‘ptA’, temporary address
•• Add the point on ‘ptRow’
•• Increase ‘n’ by 1

step03_02
++ Iteration for U direction(‘i’ direction, pt07 ~ pt13 /
pt14 ~ pt20 / ... / pt28 ~ pt34)
•• Define ‘ptListA’ as list of list (not list of points)
•• Add ‘ptRowA’ to ‘ptList’

++ Duplicate for the lower surface points


•• Duplicate codes for ‘ptSetB’

++ Double ‘For ~ Next’ for point assigning


•• Since our component is 2(U) by 1(V), set U
direction step as 2

++ Get mid points


•• Note that 4th point is to get direction vectors

pt01A

pt02A

pt03A

step03_03
++ Get U directional module distances and directional
vectors to unitize starting and ending vectors

vector

distance

++ Since we need to draw ‘interpolate curves’, look up


Rhino .NET SDK help file.
•• Rhino4DotNetPlugIns
++ To draw interpolate curves, we should define
point array first.
•• In this case, the point array should contain
three points defined in the previous step except
point #4. Remember the 4 th point was just to
get vectors.
•• Note that On3dPointArray is not same with
Array of On3dPoint.

•• Define new list of Nurbs curve


•• Define On3dPointArray.
•• Append three points to the Array
•• Define interpolate curve as a nurbs curve
•• Draw interpolate curve with argument (3,
ptArrA, vt01A, vt02A, Nothing)
•• Add the curve to interpolate curve list

++ Set output as the list of interpolate curves

step03_04
++ Duplicate each codes for the lower surface

step03_05
STEP04 . LOFTING AND POST PROCESS

++ Loft using two sets of interpolate curves


•• Unexpected loft result

•• Curves on the same data branch

++ Grafting
•• Creates a new branch for every single data
item.

++ Lofting

step04_01
++ Modify input curves

++ Or control div numbers

step04_02

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy