Grasshopper Tutorial for Beginners蚱蜢初學 GIA JH

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 75

蚱蜢初學

閱讀指南 Guide
• 本冊的案例編輯以基於後續接軌建築景觀空間等設計應用為導向。
• 大標題:說明本系統的要義;文字段落:說明本系統的作用;虛線:代表可連結的其他選
項。
• 比例尺:工作網格或有數字標註的線段,可提供製作物件的大小參考。許多案例中,RH起
始幾何地大小與GH參數有關連性,將兩者都設定成與示範案例大致相同,有助於學習者
Grasshopper Tutorial 做出相同效果。
• 越是在左側的代表生產原料或原始物件,越是在右側的代表產出物。

for Beginners 學習建議 Tips


• 建議注重基本功。有些功能複雜的component能夠很快速取代一大串的基本component

_v2021a 組合起來的功能,然而,具備將基本功能的component組合來的能力,能夠讓使用者遇到
特定問題時找出解決之道。
• 某些案例形體在視覺上顯得單調,但仍具有學習價值。
• 大膽創作之際,也請謹慎使用造型,請勿濫用造型工具,避免造型成為唾手可得的廉價之
物。
• 個別component基本功能介紹,建議可查看:www.applicraft.com/ghcp_index/
讀者回饋 Feedback
編者 Editor
• 如內容有發現錯誤或任何建議與意見,歡迎來信 Jenhwang.ho@arch.nycu.edu.tw
何震寰 Ho, Jenhwang
感謝 Thank
副教授 Associate Professor
• ZHA (於本人任職期間提供GH workshop)、Suryansh Chandra (本人初學GH的老師)、國
陽明交通大學建築研究所 內外相關workshop教學、網路上的眾多高手分享、陽明交大教學資源。
Graduate Institute of Architecture, NYCU 版權說明 Copyright
台灣新竹 Hsinchu, Taiwan
• 本文檔為開放資源(Open Source)。基於共享精神及應用推廣,讀者可自由分享。本文件
中案例除特別標示外皆為GH教學案例,而非編者的創作作品。讀者當應用於創作設計作
品時,須進行改寫編輯,使產出幾何具有設計者個人之明顯特徵,並將之結合於特定設計
助理編輯 Assistant Editor
概念、特定基地、特定機能之特定用途之開發,即可作為讀者之個人作品。
王楷廷 WANG, Kai-Ting
#001 控制/操作:透過一種特定的操
控機制,進行調整或變化。
給予差異化的參數來加以控制或操作,
或是以一個控制機制來產出差異化參數,
進而控制幾何。或在多個幾何之間建立

Control / Manipulation 一種關聯性,藉由改變其中一個幾何,


進而使其他幾何基於隨時保持此一關聯
性而因應地改變。

#RepeatDate #Jitter
#002
Curves Divide
and Connect
#GlobalForm
#Continuity

少數且全面的(Global)幾何控制
著眾多的產出物。

三條曲線做為控制線,做為隔柵長度與
傾斜角度變化的來源依據。個別
degree 3的曲線自身永遠保持著高度連
續性,因此從曲線產生的等分點再產生
的一群連接折線,也保持著連續性。剖
面三個點,定義兩條折線,產生向前凸
或向後凹陷的雙重可能的自由度。
CRV. 1

CRV. 2

CRV. 3
#003 以有次序的方式,在曲線
(curves)之間產生版片
整個幾何系統由初始的少數幾條控制線加以操控,
形成一套簡單而少的控制器(數量少且能由效控制
是良好的系統),操控複雜多重且差異化的子系幾
(surfaces)或開口,藉由操控曲
Panels Between Curves 線,進而操控版片。
何。
控制線(curves)之間建立起有次序的網格系統,
在網格上以每三到四點產生一個版片(surfaces)。
所有的版片依據同樣的產生機制,但因應父系曲
#DivideCurve 線之間的變化,而產生連續性的個別的差異變化,
#4PointSurface 或版片之間的開口變化。版片或開口之間連續性
來自任一父系曲線自身的連續性。

CRV. 1

CRV. 2
CRV. 1

CRV. 2
CRV. 3
CRV. 3
#004a 以等差級數做為旋轉角度參數
而形成扭轉。
將每一個樓層視為獨立量體,由最底層開
始,每向上一層都微幅增加旋轉角度,形
成整體扭轉的效果。
Twist Tower 邏輯上,每一個樓層都同時被旋轉,而基
於每向上一層都微幅增加旋轉角度的原則,
給予一套等差級數做為整體的旋轉參數。
#005a 對形體做平行連續平切 Contour最普遍的用途即地形等高線。
Contour是以無限大平面與某個幾何形狀量
斜向contour:contour不必然與量體主要方
向平行或垂直。斜向的contour經常可以創
體相切而得到的平面切片, 當量體非平直, 造特別的效果。
Contour 則得到連續變化斷面。
共平面(planar)能夠使建築的製造流程獲致極
雙向contour增加間距,即成立體造型變化
層架。
大可能性。平板類的材料極多,以某種平板 Contour也是製作樓板輪廓、尺寸模矩,與
的厚度來做為contour的距離參數,所得到 立面分割的有效方法。應用在立面分割時,
的輪廓線用為該類平板切割輪廓,再逐層堆 有助於分割縫在不同立面之間的對齊。
疊或組合,即成該量體。
棗莊百貨中庭提案
棗莊百貨中庭提案
#006 CRV. 1

Mean Curves
#DivideCurve
#4PointSurface

CRV. 2

在兩曲線中製造均分漸變曲線

在初始的兩曲線上的均分點之間先製作
建構線,接著將建構線再均分,再製作
通過這些均分點的曲線。
均分的數量越多,就越提高準確度。
可以用FlipMatrix代替系統中的兩個
Series、ListItem的組合,更為簡便。
此處是藉此提供如何以Series取用
branch之中的資料的方法。

CRV. 1

CRV. 2
#007a
Data Tree
#List #Branch

樹枝狀的、有階層的資料結構 以資料數少的List為基準﹑將兩組
List的數據剪裁至一樣數量。(兩筆
資料中,短的完成即結束)
EX:
List A 有5筆數據 {1,2,3,4,5}
List B 有2筆數據 {7,10}
每一筆資料皆有在資料串中的特定位置, 經short後會得到
資料串中的資料是有排序的一種結構狀 List A {1,2}
態。資料結構將有助於正確地將不同的 List B {7,10}
資料在某個特定運算動作中加以配對, 兩筆List都變成2筆數據。
進而產出期望的結果。譬如某一群pts
與另一群pts之間的連線。
每個運算動作,都可選用下列三種模式
的其中一種:Shortest, Longest, Cross
Reference。若無特別選擇,大多數的
是以Longest模式為預設。 以資料數多的List為基準,將資料
數少的List用最後一筆資料重複至
兩個List長度一致。 (兩筆資料中,
長的完成才結束)
EX:
List A 有5筆數據 {1,2,3,4,5}
List B 有2筆數據 {7,10}
經long後會得到
List A {1,2,3,4,5}
List B {7,10,10,10,10}
兩筆List都變成5筆數據。

將兩筆List的數量相乘,再將兩筆
List內的資料不斷重複至此數量。
EX:
List A 有5筆數據 {1,2,3,4,5}
List B 有2筆數據 {7,10}
經cross reference後會得到
List A {1,2,3,4,5,1,2,3,4,5}
List B {7,10,7,10,7,10,7,10,7,10,}
兩筆List都變成10筆數據。
#007b
Data Tree
#List #Branch

樹枝狀的、有階層的資料結構 以資料數少的List為基準﹑將兩組
List的數據剪裁至一樣數量。(兩筆
資料中,短的完成即結束)
EX:
List A 有5筆數據 {1,2,3,4,5}
List B 有2筆數據 {7,10}
經short後會得到
運算中的資料結構的配對,譬如將一筆 List A {1,2}
大小不等的數值(作為半徑參數)與一 List B {7,10}
群點(作為圓心)給與畫圓圈的指令, 兩筆List都變成2筆數據。
數值與點之間依據資料結構的排序配對
結果,在每一個點上產出不同大小的圓
圈。
每個運算動作,都可選用下列三種模式
的其中一種:Shortest, Longest, Cross
Reference。若無特別選擇,大多數的 以資料數多的List為基準,將資料
是以Longest模式為預設。 數少的List用最後一筆資料重複至
兩個List長度一致。 (兩筆資料中,
長的完成才結束)
EX:
List A 有5筆數據 {1,2,3,4,5}
List B 有2筆數據 {7,10}
經long後會得到
List A {1,2,3,4,5}
List B {7,10,10,10,10}
兩筆List都變成5筆數據。

將兩筆List的數量相乘,再將兩筆
List內的資料不斷重複至此數量。
EX:
List A 有5筆數據 {1,2,3,4,5}
List B 有2筆數據 {7,10}
經cross reference後會得到
List A {1,2,3,4,5,1,2,3,4,5}
List B {7,10,7,10,7,10,7,10,7,10,}
兩筆List都變成10筆數據。
#007c
Data Tree
GRAFT MERGE
將資料分組,如樹枝分岔。 將多筆資料結合,合成同一組資料。

ENTWINE WEAVE
將多筆輸入的資料結合,一個輸入源形成一組資料,多組資料合成一大組資料。 將兩筆輸入的資料,將兩組資料內容依照指定的順序重新穿插排列,合成同一組資料。
#008
Cull Dup Pts
刪除重複點,並保留重複中的
最後一個。

將眾多的點的x, y, z值取出,加以排序
對比,當x, y, z值都相符於另一點時,
判定為重複點,並加以刪除。 在點形成
的編號資料序列中,使每個點都向該點
順序之後的點比對是否有重複,而不向
順序之前的點進行比對。如果有比對出
重複者,該點即刪去。如此便能夠解決
所有點對所有點交叉比對時,每個重複
點都會發現有彼此重複的問題。
(雖然component中已經有Cull
Duplicates或Create Set足以滿足這個
範例的功能,此例的用意,是透過更基
本的一些component的組合,來製作
出特定功能的系統,可有助於學習者的
基礎能力。 )
原有的點

找出重複的點

去除重複的點,
並保留重複中
的最後一個
#009 將曲線分段點加上空間座標文
字標註
將曲線產生分段點,並空間中的點座標數
值進行四捨五入,再加上文字化標註,用
以於施工時準確放樣曲線的位置與形狀。
Text Tag
#Round #Evaluate
#TextTag

Ceiling無條件進位
round四捨五入
floor無條件退位
#010 將幾何物件、資料或數值進行
重新排序。
將幾何物件、資料或數值,依據與其相關
的某種數值大小,進行資料結構上的重新
排序。排序的依據必須是數值,依照數值
Sort 大小而排序,其他的資料可隨著數值一併
依照數值排序的次序而排序。
Jitter在此的作用是干擾由小而大排序的
精準性。Jitter的程度越愈大,則由小至
#SortList #Jitter
大的次序性則愈低。
#011
Hexgonal Grid
建立有立體變化的六角網格

從均勻分布網格轉變成非均勻分布網格。
首先創建均勻六角網格,然後透過一個曲
線的影響,使鄰近曲線的距離,控制六角
格子端點高度,形成連續變化高度的六角
網格。
#012 磁力線 在空間中設定正極點與負極點,點可為複
數。接著Field Lline繪製出空間中磁力線
分布,表現整體磁場狀態。
Field
#MagneticField
#013
Network
#DelaunayMesh 在一群點之中建立三角網格
#014
Galapagos_ 以基因演算法找出極端值

ClosestPtbetweenCrvs 以Galapogos來反覆驗算,找出兩條曲線
之間最接近的位置。

#GeneticAlgorithm

CRV. 1

CRV. 2

CRV. 1

CRV. 2
#015
以距離遠近關係影響所有元素
Attractor-pts
所有的圓的半徑由圓心與控制點之間的距
#VBScript #VB
離決定,越近則半徑越小,越遠則半徑越
大,但半徑超過相鄰圓相切距離時,以相
鄰圓相切為半徑最大值。

Attractor
point

VB CODE
#016 以距離遠近關係影響所有元素 所有的圓的半徑由圓心與控制曲線之間的
距離決定,越近則半徑越小,越遠則半徑
越大,但半徑超過相鄰圓相切距離時,以
Attractor-curves 相鄰圓相切為半徑最大值。
上述關係帶有一些噪音或隨機效果,是來
自Jitter的作用。
#Minimum #Jitter

Attractor
Curve
#017 以距離遠近關係影響所有元素 所有的中空方盒的旋轉角度由中心點與控
制曲面之間的距離決定,越近則角度越小,
越遠則角度越大。
Attractor-surface Remap將距離數值轉變成分布於最小0度
到最大90度之間的數值,使曲面不管如何
變化,最小角度到最大角度都是恆定。

#Remap #Distance
#Bounds

Reference
Brep

Target
Surface
以控制點推開周邊的點 所有的點受到兩個控制點的放射狀推力,越近則強度越大,越遠則強度越小。
#018a Gragh Mapper用來使曲面均分點到控制點之間的距離轉變為負相關(輸入越大
就輸出越小)的數值,使形成越靠近控制點就位移越多的效果。
兩個點的作用於本例中以兩次接續的處理程序,這樣的方式也可用兩組的距離
Repelling-pts 相加取代兩次程序,適合多點的狀態使用。

#VBScript #VB

Repelling pt1 Repelling pt2

In Cluster:
#018b 以控制點推開平行曲線 在一個曲面上以DivideSrf、InterpolateCrv創造平行
曲線(即曲面的Isocurve),並在過程當中放入控制點,
造成對曲面均分點的排開作用,使平行曲線經過控制

Repelling-curves 點時,如同受到向外推開的力。
Gragh Mapper用來使曲面均分點到控制點之間的距
離轉變為負相關(輸入越大就輸出越小)的數值,使形成
越靠近控制點就位移越多的效果。
#Remap #GraphMapper
#Bounds #Attractor
#019 從圓點向外向上移動且旋轉的
序列連線
將點以等差級數(series)做X方向及Z方向
的移動與旋轉,便形成逐漸向外且向上延
展的螺旋狀分布的點序列。
Spiral & Helix
#Series #Interpolate
#020 如松果狀的螺旋分割 以等差級數使PointPolar製造螺旋狀分布
的點序列,然後找出特定間距數字取出點
並加以連線,形成在螺旋上的多條線。此
Pine Cone 程序以不同間距數字再進行一次,即可得
到一組順時針一組逆時針的分割線,綜合
成菱形分割。

#Series #PointPolar
將同樣的幾何物件進行放大且 將同樣的幾何物件進行放大且旋轉的不斷複製,
#021 旋轉的序列複製 而形成一種具有自相似性特質的重複性圖案
(pattern),在旋轉角度為參數控制的連續變化中,

Scale & Rotate 嘗試找到有意義的形態湧現。範例1的作法較為直


觀,適合初學,範例2的作法透過series使運算結
果是多重且有差異變化,較為成熟且精簡。

#Series 1

2
#022
Whirl
#GraphMapper #Bounds
#Attractor

在均勻的場(field)中加以扭轉, Point 1
形成漩渦。

在平行水流狀的均勻分布的曲線場 Point 2
(field)中,以某些點為旋轉中心,對曲
線施以扭轉的力,在點的週邊形成漩渦
效果。水流自一側而來,經過漩渦週邊,
依據距離不同而決定捲入的幅度,而後
又離開漩渦,向另一側流去。
(範例2中的封包,內容即為範例 1的群
組內容)
1 2

1 2
以特定圖形(Graph)改寫數值 以特定圖形(Graph)將輸入數值重新改寫
#023a (remap),輸入的數值在X軸上分布,對
應圖形所得的Y值,即為輸出的改寫後的
新數值。在Graph上以手動調整的頻率變
Graph Mapper 化與配對的網格次序之下,找出一個頻率
浮現的特定圖形或幾何。

#GraphMapper #VB

VB CODE

VB CODE
#024a 以不同波形數值轉為高低起伏
曲面
將曲面均分點以波形轉為高低起伏

Surface Fluctuate
#GraphMapper
#SrfFromPts

C
#025 洗牌,打亂原來次序。 以洗牌為比喻,將一筆資料的次序進行擾
亂。擾亂的幅度可自由決定,由0到1,0
為不擾亂,1為充分洗牌,完全打破原來

Jitter 的次序。

VB CODE
#026 Voronoi孔隙立面版片 以Voronoi圖形作為基本分割,再於每個
多邊形中其中加入封閉曲線,且移動使突
出,再於兩者之間以Loft製作面,整體結
Voronoi pattern facade 果如同藤壺狀。

#Merge #Loft
#027
Voronoi Structure
Voronoi 3D結構框架

參考2008北京奧運水立方游泳館,將一
個矩形體以隨機布點及Voronoi 3D得
到次分多面體,然後再將多面體擷取出
邊緣線及端點轉變成結構桿件與圓球形
接點。
(系統中的邊緣線及端點都有重複物件,
可用刪除重複物件工具加以刪除)
#028 將物件兩向陣列分布於曲面上 對一個曲面進行U方向、V方向進行均分,
再於兩向均分後所得的點上,以曲面之法
向量及UV方向共同決定參考物件的陣列
Array on Surface 方向。

#Normal Direction
#FlowAlongSrf
#029 一群任意或特定規則分布的點
決定分割圖形
以某數值對一個曲面進行U方向進行均分,
同時以另一數值對一個曲面在V方向進行
均分,再於兩向均分後所得的點上,以曲
2D Voronoi Pattern 面法向量及UV方向共同決定參考物件的
陣列方向。
#030 松樹針狀樹葉 在一Rhino crv上創造向前向外且微彎的
曲線,表現針葉,同時以螺旋分布、長短
變化、末端收束等動作,使整體形態更為
Pine Leaf 擬真。

#jitter #Pythhon #

Curve
#031a 在曲面上均布單元物件並加以
隨機高度變化
雙向分割曲面而形成小曲面,再製成隨機
高度的box,而後進行拓樸複製(box
morph),產生高度隨機的單元沿曲面複
Box Morph 製的效果。
曲面的分割,與曲面isocurve的分布有關,
可利用isocurve的變化來造成box morph
的變化。
#032 在曲面三角網格上做單元無縫
拼接
以一曲線對三角網格發揮引力而變形,而
後進行可拼接單元的沿網格複製。

Tri Map
#033a 沿曲面流動 Surface Morph就像是Rhino中的
FlowAlongSrf指令,可將基準物件,沿
著曲面貼覆。本例在進行Surface Morph
Surface Morph 之前,先於Rhino中以CageEdit對一組平
行格柵狀的曲面進行變形,結果呈現兩道
加工程序疊合的雙重效果。
#034
Profile Tower
由參數控制的輪廓線產生建築量體
#035 以環形輪廓線建立結構框架 於Rhino中繪製6條環形曲線,作為縱向
結構線,對之加以分段,並將相同序位的
點連接,形成橫向結構線。再連接相鄰環
Structure Frames 形曲線分段點的序位+1(ShiftList),產生
對角斜向結構線。

#FlipMatrix #ShiftList

6條環形曲線

這是直覺但無效率的寫法!
#036
4pt-panels Basic
曲面產生次分曲面並加以操作

將一個曲面做UV雙向分割,並以series
創造出特定數字來取出分割點(雖是有點
古老而搞缸的作法,但值得回味),建立
4pt Srf。
每個小曲面的第4點投影到1, 2, 3點建立
的plane上,並再加上10倍的距離,做
為新的第4點,再建立4pt Srf,形成鱗
片微微掀起的效果。
#037 在網格(Grid)上利用網格點的次
序建立版片。
此例參考位於倫敦的Swiss Re大樓。將水
平等高線整理成特定次序的網格(Grid),
並選用網格上的特定點,建立滿鋪的三角
Panels in Grid 板片。
#038a
Connect
點雨點之間連線越接近彼此或
越接近參考線則越容易連線

Curve
#038b 將左右兩群的點之間建立起通
過中央節點的連線
首先區分全部的點,分為左-中-右的三群
點。先建立左右兩群點之間的直線連線,
然後從這些線段上做分段點,從分段點去
Connect 尋找所有的點,再取代重新連線。

VB CODE

VB CODE
#038c
Connect
將上一個案例的點分佈在圓周上並建立連線
#039 隨機漸變版片有無 Rhino中創建許多陣列的小型矩形曲面,
接著設定一個數值來控制保留或刪除的數
量,然後以jitter來模糊化保留與刪除之
Jitter Panels 間的清楚界線。

#Jitter #CullPattern
#040
Coloring Remap
#Remap #Gradient
#CustomPreview

將眾多物件從最高到最低的分
布從藍到紅著色

系統中的一Srf控制眾多圓筒高低,而後
將圓筒高度數值從高到低轉換為從藍到
紅的顏色資訊,對圓筒進行上色。
#041a
Color Wheel
Building Colorful Panels
#ColourWheel
#RandomColouring

在色輪上隨機取色對幾何物件
上色
#042 將兩類物件做棋盤狀分布 將兩個Series串聯起來(階差=1),恰巧可
以讓每個branch的第一個數值以雙數/單
數交替出現,加上Expression的函示,是
Chess Board 將單數轉換為1,將雙數轉換為0,使
series的等差級數轉變為010101…或
101010…的資料,輸入List Item就形成
交替取用方盒/圓球的結果,以Orient分
#Orient # Series 布在網格上,即形成棋盤狀。
#ChessBoardPattern
#043
Meta Ball
無重力環境中的液體形態

MetaBall製造出模擬無重力狀態中,接
近則融合的液體張力形態。
(MetaBall工具有三個,若需要以參數
控制不同液珠大小,可選用MetaBall
Custom)
#044 以迭代方式繪製螺旋 HoopSanke是GH製作迭代的工具之一。
也是少數可以將output再往前接入input
的component。
Hoopsnake_ 本系統以一Line開始,以該Line的尾端再
繪製下一段有轉折角度的Line,然後以
HoopSnake重覆地進行同樣的動作,直
Spiral 到結束的條件滿足時才停止。
注意HoopSnake的output與input必須是
同樣類型的幾何,才能運作正常。譬如本
#HoopSnake #Iterative 系統的輸入端(S)是Line,輸出端(F)也必
須是Line。
#045 以迭代方式繪製植物分枝 緒上例,HoopSanke在此仍是以迭代方
式製造物件的工具。
本系統以一Line開始,以該Line的尾端再
Hoopsnake_ 繪製下兩段有轉折角度的Line,然後以
HoopSnake重覆地進行同樣的動作,於
是便出現1分枝為2、2分枝為4,4分枝為
Tree Branch 8…的植物分枝。
Random提供了每次分枝的不同角度。
Length與Multiplication的組合,提供了
#HoopSnake #Iterative 下一代長度逐漸縮短的機制。
#046a
Kangaroo_
TensionStructure
#Kangaroo

模擬材料彈性與重力影響

將一個正交網格上的曲線賦予材料性質
(如彈性、硬度、阻尼係數等),並施加
力量(案例中為向上的力),設定錨點,
使呈現受力後的材料變形狀態。
#046b
Kangaroo_TensionStructure Anchor pts

模擬材料彈性與重力影響

如前例,本例仍是將一個正交網格上的
曲線賦予材料性質(如彈性、硬度、阻尼
係數等),並施加力量(案例中為向上的
力),設定錨點,使呈現受力後的材料變
形狀態。
相較前例,本例設置多重的水平面與垂
直筒狀,環繞狀周邊錨點,經
Kangaroo模擬後得到整體均勻受力且
內部力量平衡時的複雜形態。
#047
Voronoi+WeaverBird_SubD
多孔隙分枝管狀連續滑順曲面 原始定義檔於2013年北科建築專題課程中
學生研究網路案例而來,經過編修
voronoi cell縮小之基準點,改善橋接部
位之順暢度。
視觀察者的身處位置,而改變虛體與實體
的認知,是此系統的有趣之處。身處於管
狀空間的內側或外側,會經驗到類似的空
間狀態。

You might also like