Grasshopper 有哪些奇技淫巧?

求大神,發散思維,來個gh的小技巧集合!!


Grasshopper的奇巧淫技之不要把生命浪費在描圖上
如果你是一名城市規劃或者景觀或者建築的學生,一定知道在做一個設計前需要對基地及其周圍環境做出詳細的分析,首先必不可少需要一張基地周邊的平面圖。在我本科的時候接到設計任務一般首先去google查位置然後截圖,然後為分析圖做的好看並且儘可能精確就導入這張截圖去CAD分道路、建築、綠地等圖層對著一陣狂描。當地基面積小的時候好說,半小時或一小時功夫的事嘛,可當面臨一個區域的改造,全是密密麻麻房子的時候,眼睛都要瞄瞎腰酸背痛還老描不完的酸爽體驗無法忘懷。
下面就是教大家十分鐘四步完成描圖,想描多大描多大,再也不怕腰酸背疼眼睛花了。

步驟一:得到osm文件

  • 打開openstreetmap的網站OpenStreetMap

openstreetmap(OSM)創建並提供免費開源的地理數據, @蔡嘯 在為什麼 Apple、Foursquare、Wikipedia 和 Facebook 都不再使用 Google Maps 並且換成了 OpenStreetMap?的問題中討論分析了OSM成為谷歌地圖的替代品的原因,想了解更多openstreetmap的東西請戳OpenStreetMap Wiki
來看看它長啥樣:

要不就描個上海最熟悉的地方——同濟大學周圍吧

  • 導出——手動選擇區域(就按照自己需要的範圍隨便啦吧)——導出——直接下載得到map.osm文件

(當你一次需要下幾個的時候,最好下一個改一個名字,因為它下的每個文件名都是map.osm)

步驟二:安裝rhino/grasshopper/elk(這三個都有的估計早就知道這個奇巧淫技了)
打開rhino和grasshopper(grasshopper是rhino的插件,最近收到rhino6試用邀請裡面會直接內置grasshopper,可見其越來越重要了)

  • 在grasshopper里裝Elk的插件Elk(如果設計城市分析城市建模,這絕對是很常用的一個插件,扔個網址可自行下載安裝,注意要裝到grasshopper的libraries文件夾中)

上左樹枝狀為Location, 下左網格街區狀為OSM data 、上右蜈蚣狀為Topography步驟三:提取OSM信息

  • 關聯osm 文件,複製自己儲存文件的路徑C:UsersvividDownloadsTJU.osm

  • 電池連接如圖

file path 獲取下載的osm文件信息
location連接file path得到文件中的空間位置點(OSM point data)
OSM data 可以得到你想要描圖的一切(右鍵OSM電池可選擇feature type:building, highway, landuse……同樣還可以選sub-types,例如在highway中還有人行道,自行車道等等,可自行探索)

看看我們現在得到了啥(我選擇的是building,所以得到的建築的信息點),密集恐懼症退下吧。。。

步驟四:得到一幅完整的底圖圖
包括道路、建築、土地利用的電池長這樣

來看看我們得到了什麼:一個矢量化的描圖就誕生啦!

然後,我們來右鍵電池bake一下,再另存進CAD中看得到了怎樣的成品

我們不到十分鐘四步就完成了可能要描一下午的CAD圖!

附加步驟:我們來給建築拉個高度吧!
給建築部分的OSM來extrude+cap一下就好啦!電池如下:

效果如下:

想當年畫圖在SU一個個拉起來的小方塊房子,也是一種不用動腦無聊的消遣呢~

最後想說,這幾個月剛接觸grasshopper以及C#編程(僅僅是grasshopper初學者,甚至感覺自己並沒有入門)。學習grasshopper的起因是自己「作死」選了一門Introduction to Generative Urban Models,但一學期下來感覺竟然成為了最有收穫的一門課!為自己打開了新世界的大門。
這個奇巧淫技是今天結課的時候老師簡單展示了一下(平日都是打開C#講代碼),覺得適用性非常之高,怕自己不整理會忘記,所以想通過這個方式記錄下來,也希望跟各路大神們多多學習。
初學者依然存在一些問題:
1)導入CAD道路存在亂線
2)建築高度只能一個統一高度,在城市中是不現實的
這個方法本身存在的缺陷是只有別人錄入過信息的地方才能讓你偷懶,同濟周邊其實還有很多房子但在OSM里並沒有,說明沒有前人在這個開源網站中錄入過信息。相較之下國外更好一下,今天上課做慕尼黑的城市信息就相當全面,中國很多區域OSM沒有覆蓋到。

———————————————————————————————————
20170225
感謝大家的關注,因為自己也是初學者,所以有很多私信問我的問題我也是google再繼續學習盡享解決。因為有的朋友ELK的版本跟我的不是很一樣,我在YOUTUBE上找到了一個很詳細的教學視頻,希望可以幫助到大家。謝謝~~
site Modeling : Elk Grasshopper Tutorial
https://www.youtube.com/watch?v=8_uQj_Rr8eA


奇技淫巧,在本人理解就是:小巧簡單,效果震撼,效率驟增
———————————————————————————————

在以上的原則里,說個自認為排名第一的,它的名字是:jump。

雙擊grasshopper界面,在彈出的搜索欄輸入jump,就能查找到:

選中後在界面上會出現如下小巧可愛的Icon,就是它了:

這個東西怎麼用呢,看起來出雙入對的,看我把你們拆散!

矮油,還藕斷絲連是不,雙擊其中一個試試,神奇的效果出現了:

工作視窗會快速移動到另一個的界面坐標上,由於是動態效果,

這裡就沒辦法截圖了,可以自己試試,蠻有意思的。

確實是很小巧、效果很震撼,但是有什麼用呢,它的用途是這樣的:

這個運算器GH新手很少會用到,因為新手組建的運算器程序通常比較簡單,

但是GH用久了,組建起以下複雜的程序就可能是經常的事:

這樣的程序,為了看起來邏輯清晰,已經隱去了大部分的連接,

但仍需要各種界面跳轉,有了jump,省去了[大量]平移界面的時間,

而且邏輯也更加清晰(還有另一種定位界面坐標的方式)。

現在應該能理解它叫「jump」的原因了吧,不過我覺得它叫couple會更有愛!


===============================================================
2016-06-01
揭秘神秘的Results電池!
這個確實是插件裡面的,利用的是當初給grasshopper寫插件時發現的一個小BUG。
具體來說就是每一個電池都有一個24x24像素的圖標文件,如果給定的圖標文件大於這個尺寸,圖標文件並不會被縮小,還是以實際大小顯示在屏幕上。於是就有了一個這樣的電池,歸整輸出的數據並讓你在縮小視圖時還可以一眼看見結果在哪。
這個電池其實就是把所有輸入數據不做任何處理原樣輸出,只不過有一個大尺寸的圖標。
===============================================================
Grasshopper是我最喜歡的軟體,沒有之一。

可是為什麼回答這麼少呢?大概太精通的人不覺得有什麼tricks,都是基本的知識,而不精通的人又不知道有什麼可以拿來當tricks。
但Grasshopper是我最喜歡的軟體了,Rhino都答了,GH就是硬答也得答。沒有tricks,製造tricks也要上!

GH邏輯很簡單,軟體主要部分就三塊:
Menu:菜單欄
Ribbon:所有組件的位置,Components,俗稱電池
Toolbar:工具欄
其中Toolbar只是Menu的快捷菜單,只多了一個Sketch。
其實所謂tricks什麼的很難講,每個命令都是一個trick,只是知道與否的問題。

1、Menu Toolbar
Menut和Toolbar里的命令比較少,不到半小時就可以全體驗一遍了。其中能有默認的快捷鍵的,都是很有價值的tricks。

我為什麼說默認的快捷鍵呢?因為RH和GH的快捷鍵都是可以自定義的,如果你覺得某些鍵位反人類是可以更改的,比如我會把Ctrl+Q和Ctrl+E改成Alt+Q和Alt+E:

在Menu這塊有幾個值得一提的:
Edit/Find
右鍵是可以給Component起名字的,Find既可以找你起的名字,也可以找原本的名字:

Edit/Create
隱約記得可有某個命令,但不記得在哪了?直接雙擊空白處輸入英文單詞找吧。
View/Remote Control Panel
這是Rhino的面板,右鍵Component選擇Push to remote panel就可以在Rhino中快捷調整參數了,記得要起名,不然會分不清誰是誰的:

View/Data Viewer
Debugging神器,比用Panel強太多,但是不能在Rhino中顯示幾何體,要配合CherryPicker使用:

Display/Selected Only Preview
用起來很簡單,也很方便,但真的屬於高級用法了,小白千萬慎用。
Toolbar/Named Views
用法類似Jump,各有所長
2、Popup彈出菜單
右鍵Canvas上的電池,實用的電池編輯菜單
中鍵Canvas,超快捷的幾個常用命令
以上兩個太簡單,我也不好意思把它們當作tricks,所以稍微加深一點點:
右鍵Ribbon上的電池,可以指定Alias假名,與Edit/Create合用可以省一點點力氣。
再稍微加深一點點:
中鍵Popup的Bake命令,與右鍵Popup的Bake命令是有區別的,一個快速,一個可控性強。3、Components
能叫做tricks的,必須是GH瘋狂的隱式類型轉換,以及由此催生的神器:Panel
比如Circle,可以默默地轉換為各種數據類型:

還可以這樣,雖然這樣沒什麼意思了:

於是,就有了神器Panel。
在Panel輸入文字時,輸出的數據類型是字元串String,GH可以默默地幫你轉換為所有可能的類型(有些類型轉換不是很直觀,我加入了解釋,找相似的數據):

再往下說就很多了,比如因為Slider可以設定捕捉值,比如被Slider掩蓋的Digital Scroller、Value List、Control Knob,比如List Item也有Zooming User Interface,比如前面有人提到的Jump,比如Cherry Picker……太多太多了

GH的邏輯很簡單,不算插件也就400多個Component吧。每一個Component都有自己的tricks,與其他的Component組合起來又會產生新的tricks。當所有都可以稱作tricks時,也就沒有什麼tricks了,只有Knowns Unknowns。真正能叫做trick的,是演算法。如果說Grasshopper是寶劍,演算法就是內功,只要內功夠強,再垃圾的劍術也能走遍天下無敵手(畢竟劍宗後期打不過氣宗)。

--------------------------------------------------------------------------------------------------------------
番外:
劍宗來秀一下神奇的電池Results,大灰大紅的東西可不是我PS上去的。


上班太無聊決定來回答一下

仔細想了一下最近覺得最好用的是啥 大概是anemone插件吧 簡單來說就是編程裡面的迭代運算

它可以根據你上一輪的運算結果疊加上之前的電池組 動作重複的次數可以由你來定

有點像repeat data 但是更像一種進化過程吧 廢話不多說上視頻...


我覺得把自己編的一長串變成一個電池,這感受非常爽

好吧,重點來講到底怎麼做,畢竟我不喜歡瞎比比。我還是一個務實的小夥子。
----------------------------------------務實的分割線------------------------------------------------------
現在你擁有一個可以把mesh變成surface的一串電池,這是你編好的。別問我怎麼編的。我是小可愛

然後把這個變成一個電池
需要一個電池的輸入端cluster input

電池的輸出端cluster output

連上去,雙擊,修改你要的名字、其中煞筆在後期使用時是可以該的,但是天才是改不了的

連好改好名字,選中然後滑鼠中鍵,選擇那個紙盒子圖標

然後就大功告成啦~

什麼你說還要把它放在你的那一堆電池裡面
-------------------------------------------------繼續---------------------------------------------------------

繼續起名字

就會出現在這裡

要想修改你這個電池,雙擊就可以啦

記得選擇這個save就好啦
----------------------------------------------end-------------------------------------------------------------


剛開始學習gh。
有一個小技巧,在剛開始學、看別人寫的gh時很有用。
如果看到沒見過的小電池,想知道它在哪兒,只要按住Ctrl+Alt、同時用滑鼠點那個電池即可。效果如下:

P.S. 那兩個箭頭和紅圈不是我ps上去的


用各種TS,MAYA建模案例來忽悠零基礎的朋友;偷換概念,讓其誤解為GH就是參數化設計,GH就是做異形建築的;加上各種高大上的宣傳標語來招生的培訓班,這種宣傳手段不知道算不算奇技淫巧?

哈哈,回答完以後感覺回答跑題了。這裡給你一個帖子鏈接吧,你可能不知道的GH幾個小技巧


這個問題不知道什麼時候問的了。。。既然看到了,而且今天剛知道了幾個以前不知道的小技巧,就在這回答一下吧,多大作用談不上,至少能省些時間和電池,也算整理一下了。畢竟GH里最最核心的還是思路,運算器只要都摸索一下基本都能懂。
以下以當前最新版GH版本0.9.0076為例:

1. GH里的區間(Domain)是有方向的
我用GH也好長時間了,但是這個問題我剛知道。。。慚愧啊。區間方向意思就是 -5 to 5 這個區間和 5 to -5 區間是相反的。我舉個例子就能明白了,如下圖:

你看,在RemapNumbers運算器的輸入端Target區間僅僅是方向不同,但導致最終輸出數據的順序正好相反。

2. Unflattern Tree運算器
很有用的運算器,可能都知道。就是如果你把一個樹形數據Flattern後想讓它再次恢復之前的數據結構,就可以用Unflattern Tree 很簡單就不放圖解釋了。

3. 選擇最後一個數據的簡單方法
比如我想用List Item選擇最後一個數據,你只需要在輸入端 i 輸入-1就可以了!當然倒數第二個就是-2,以此類推。。。

-------------------------------------------2015.2.2更新--------------------------------------------

4. 輸入端角度參數從弧度快速轉為角度

這個東西是每個角度輸入端都有的

5. Project Point運算器運算邏輯

這個運算器隱藏的比較深,但是用處挺多的。
先用文字描述一下它的運算邏輯:輸入端P(Point)和D(Degree)是遵循GH的數據對應方式,默認方式為longest list。但是G(Geometry,目標幾何體)不同,這個運算器是把G的輸入數據中的同一個樹枝的數據作為一個整體來對待,不再是依次對應關係。

用一個例子解釋:

如圖,P輸入端的點就是上面四個點,D輸入的是-y軸方向,G輸入的就是下面三條直線,直線在數據中的順序如圖。
你看,如運算結果所示,最終投影的點全都投影到第一條直線了,後面兩條直接被忽略;

然後我們修改一下直線順序:

看,在將前兩條直線順序顛倒之後,投影直接跨過了距離更近的直線,仍然投影到了0號直線。也就是說是根據數據順序從前到後檢測投影

然後我們再修改一下直線:

如圖,驗證了我們上一步的結論,輸入的幾何體根據數據順序從前到後檢測的結論,前兩個點投影到了0號直線,後兩個點投影到了1號直線(因為投不到0號直線上);

最終結論:對於G輸入端而言,同一個樹枝的數據是一個整體;在一個整體里,根據數據順序依次檢測,直到投影成功,並繼續下一輪檢測。


6. Image Sampler
Image Sampler這個運算器,圖像採樣器,顧名思義,就是把對圖像信息進行採樣,如果用的合適的話能起到很大作用。總之就是可以用圖像控制一些參數。
下面講一下它的兩個參數:

X Domain 和Y Domain

這兩個參數好長時間沒弄懂啥意思,後來知道了,就是這張圖片所能影響的XY平面的坐標範圍,單位取決於Rhino模型的單位。Channel
就是需要圖片的RGB值,還是紅色/綠色/藍色通道值,還是亮度值等等。需要注意的是如果選擇RGB模式,最終輸出的是顏色信息,可以輸入Custom Preview對其他幾何體進行著色;其他如通道、灰度等,最終輸出的則是單個數值
兩個實例應用:
RGB模式(本實例學習自designcoding):

灰度模式


不知道算不算trick
雙擊屏幕可以快捷搜索命令嘛,這個時候輸入1&<5&<100可以自動出來slider,最小值為1,最大值為100,顯示停在5,拖動slider可以顯示整數。
如果輸入1&<5&<100.0000,現實會停留在5.0000,以0.0001為increment來變化。
另外黃色的內容板也可以快捷搜索:引號和你所要輸入的內容比如
===「700===
會顯示700在小黃板上面


對面設計的幫助:

a.

b.

更新,最近我用grasshopper做的一套燈具的產品設計:


導了一張gif,結果發現無法上傳到知乎。。。。

可以檢測獨立閉合區域,導入CAD封面的時候會有用。


摁住ctrl+alt,滑鼠左鍵點擊電池,就會找到這個電池來自哪裡。太神奇了。


number slider如何輸入小於0的數字呢,雙擊campus輸入-5&< 就可以了~

還有一個 不用輸panel 直接輸入「 就行 然後空格後面直接輸入panel內的數據就可以了,習慣了之後不能更好用。

打開panel還有個更快的方式,直接輸入// 就可以了


1.摁下shift+alt 再拖動某一個電池 是複製電池————更新 根據@徐呵呵 的評論試了下 直接拖動然後摁下alt也是複製按鈕,感謝( ̄? ̄) :

2.雙擊空白處輸入數字直接摁enter,就能快速輸入一個slider:

@王不二 的答案:可以直接輸入2&<8&<12 即可以設定最大最小值, 簡直神了!為他點贊!暫時這麼多 也是為了自己記錄一下 回頭補充┗|`′|┛


推薦閱讀:

TAG:Rhino | Grasshopper | 參數化設計 |