2011/06/18

2011_06_19_grasshopper tutorial for ea3_1

不論你會或不會,這篇希望可以討論一些比較基礎的應用,和搭配一些其他指令
製作成的成品。
有需要的話參考參考。


首先,要先知道要做的東西是什麼性質。我個人認為,當你要用grasshopper去達成
一個目標物的時候,你要先去思考這個目標物的構成。你可以先去思考,當你用rhino
去做的時候,你會怎麼做。再來要了解grasshopper有哪些特性,是可以讓你在rhino當
中必須一一土法煉鋼才能完成的事情,只要簡單幾步驟就能夠完成。(當然我不排除對於
像我們這樣不熟悉的人,最簡單讓自己上手的方式就是土法煉鋼的操作grasshopper)

第一部分:產生surface

產生surface的方法有很多種,我個人認為最常用的是用loft,在這邊先以loft生成來舉例。
 首先我們要先知道loft這個指令可以做什麼用。

loft是一個可以幫你把兩條curve(不論是直線或曲線),做成一個surface的指令。所以當我
們在思考拆解時,要知道必須要在grasshopper中先畫出兩條(或以上)的curve。

步驟一:產生curve
產生curve的方式也有很多種,在這裡用的是利用point和intCurve的方式。
首先我們需要有至少三個點。
為了便於之後可以調整curve的形狀,請用Vector裡面point底下的pointXYZ。
在使用slider的時候,如果是在不太需要用到小數點的情形時,請記得雙擊slider之後
進到調整畫面,點選籃框的N,把slider的數值改成整數較好調整。而底下的min/max
/range則是調整你要的數值範圍。我暫時先將其調整為50。
接著我們在front做出(0,0,0) / (20,0,20) / (50,0,0)三個點
然後選擇curve底下的interpolate,將我們要做的三個點依照左中右的順序接到上面去。
請注意在接上去的時候,要按著shift。

接完之後就會看到由這三個點形成的curve。
第一個curve完成了,但我們要做loft時至少要有兩個curve才能完成,你可以如法炮製第二
條curve出來。或者你可以跟著我繼續用另一種方法做。

步驟二:創造第二條或n條curve

前面有提到,你可以土法煉鋼的在做一條curve出來。但如果你要做一條一樣的curve出來時
你可以選擇用move的方式。
在grasshopper的旋轉移動...等等指令在執行時,往往grasshopper會幫你保留下原來的圖,
因此我認為move等效果在grasshopper當中其實也具有了"移動複製"和"旋轉複製"...等效果
。move的G是你要移動的目標物,特別要注意T的部分是"要移動多少"和"要往哪個方向移動
"。因此在你急著將想移動多少接上去之前,記得要先接上移動的方向。

接上去之後,可以從top視窗看到,剛剛我們做的第一條curve已經被移動出來形成第二條
curve。

步驟三:loft

現在我們有了條curve了,第一條是從三點創造出來的,第二條是move出來的。接著我
們要用loft的指令將這兩條curve產生成一個surface。
loft的指令在surface底下。
然後把兩條curve接上去,盡量按照順序來接,從第一條curve接上去,然後是move出來
的那條。一樣要記得,在接兩個以上的電池到一個點上的時候,要按著shift。

接上去後,用loft產生的surface就完成了。

第二部分:桁架的製作


桁架的構成基本上是由兩條(以上)的主要線條,在其中由數條交叉而成的線組成。所以
當我們想做桁架時,要先有兩條(以上)的curve。

步驟一:畫出第二條curve
前面有講過的就不再重複,我在第一個curve底下造出了另一條curve。
步驟二:畫出連接點

接著,因為我們要在這兩條curve上面去做連結,因此我們要先找出能用的點。在這邊
要使用的方式是,利用連結curve上的分割點去做。使用到的指令是在curve底下的
divide curve。

同樣的在下面那條curve,也用divide curve來切分。為了便於辨識,我將原來的點先隱
藏起來。
步驟三:連結點
有了這些點,再將它們互相連接起來,就可以形成桁架了。將點連結成線,要用curve裡
面line的指令。

A點為第一點,B點為第二點,grasshopper會幫你依照你切分點的排序,將其一一接上。
特別注意的是,你在line的電池中間按右鍵,會看到三個選項。shortest list / longest list /
cross reference。這三種指令會讓接線的方式有所不同,一般來講當兩邊的點相同的時候
longest和shortest不會有差別。但兩邊點的數量不同時,shortes會只接到少的數量為止,
而longest會將多的那邊多出來的點,連接到少的那邊的最後一點上。
舉例(longest和shortest)

而cross reference則是會將所有的點交叉連結,點太多的時候不要嘗試,很恐怖。
到此為止不太會用的人可能會有疑問,桁架好像是要做出cross reference的效果,可是
reference又會跑到外面去怎麼辦?這個部份我們只好用比較笨的方式,來做出垂直連接
之外的兩條斜線。
先想想,應該要如何接才會跑出斜線?比方說用第一條的1點去接第二條的2點,第一條
的2點去接第二條的3點...如此類推。在這個地方可能比較難理解,但我們會用到sets當
中的shift list指令。
為了方便說明我拉兩塊板子出來看,左邊的板子是shift之前,右邊的板子是shift之後
,有沒有發現第一個點已經被shift的指令給剔除掉了?
而S是你要踢掉幾個,比方說下圖中S輸入4之後,它可以把原list中的前四個剔除掉。
如果還不是很懂shift的意思,可以把它想像成是左輪手槍的子彈,而S就是你開了幾發。
當你開一發時,第一個子彈沒了,因此原本十個子彈當中還剩下九個。開了四發之後,
前面四顆都被發出去了,所以剩下六個,依此類推。
shift過後再連接上的線,因為有跳格的關係,就會變成斜線了。如法炮製另一邊的斜線。
請注意要用"shift過後的第一條curve的切分點"去接"沒有shift的第二條的切分點",不然
接起來你會發現沒什麼變化還少一條線。

做完之後,將線全部打開,你就會看到桁架出現了。
只有線條當然無法滿足我們的需求,因此還會需要用到surface裡面的pipe指令,來將這些
線條實體化。

管子太粗的時候可以從R的地方來對管子半徑修改。

步驟四:複製桁架

快要接近完成了,你可能會想"天啊~那我要做十個桁架不就要做十次?"
事實上,別忘了剛剛我們用過的move的指令,它可以幫你輕鬆的將做過一次的東西複
製出來。(PS 在這邊只需要move剛剛畫的pipe就好了,畢竟線條只是輔助)
如果你想要複製多個的話,只要在複製的前面加上series的指令,就可以一次複製出
多個桁架了。
series在sets裡面可以找到,S是初始數值,N是間隔多少做一個,C是總共做幾個。
如此一來便大功告成。
進階變化的做法將在下一篇解說,謝謝。

附註:gh接線圖




沒有留言:

張貼留言