本書是一本講解參數(shù)化建模軟件Grasshopper的技術(shù)專著。參考國內(nèi)外最新研究成果, 對Grasshopper插件做了深入淺出的講解, 同時配有大量獨具特色的案例。使讀者能在較短的時間內(nèi)掌握該插件的主要理念和重要的制作技法, 從而能較快地運用該插件解決工作、設(shè)計中遇到的各種問題。
本書作者參考國內(nèi)外前沿技術(shù)成果,深入淺出地講解了參數(shù)化建模軟件——Grasshopper,書中配有大量獨具特色的案例,尤其是綜合性案例——摩天大樓的建模。讀者通過學(xué)習(xí)本書能在較短的時間內(nèi)掌握該軟件的主要理念和重要的制作技法,從而能較快地運用該軟件解決工作、設(shè)計中遇到的各種建模問題。
自從有了計算機以來,設(shè)計師們就夢想著實現(xiàn)設(shè)計的自動化。到了20世紀(jì)60-70年代,計算機開始協(xié)助設(shè)計師完成復(fù)雜的計算,或者繪制規(guī)則的工程圖紙。但是通過計算機將產(chǎn)品的設(shè)計要求和工程師的設(shè)計思想,直接變成可用的工程圖紙或者數(shù)控加工指令,在當(dāng)時是不可能辦到的。
20世紀(jì)80年代初,AutoCAD軟件問世,標(biāo)志著計算機輔助設(shè)計大眾化時代的到來,到了20世紀(jì)90年代中期,隨著個人計算機的普及,特別是Windows操作系統(tǒng)的出現(xiàn),大量原來只能在工作站上運行的計算機輔助設(shè)計軟件紛紛向PC上移植。1997年,CAD歷史上一個重要的版本AutoCADR14推出,所見即所得的操作方式,可以使沒有多少計算機基礎(chǔ)的人士快速掌握計算機繪圖技術(shù),使計算機輔助設(shè)計很快成為行業(yè)標(biāo)準(zhǔn),徹底替代了傳統(tǒng)的手工繪圖,引領(lǐng)了一次設(shè)計方法上的革命。
進入21世紀(jì),計算機輔助設(shè)計繼續(xù)向智能化、多元化的方向發(fā)展。機械和建筑設(shè)計的復(fù)雜性、多樣性和靈活性要求設(shè)計自動化必須走參數(shù)化的路子。自從以Pro/Engineer(機械)和RevitBuliding(建筑)等為代表的基于特征造型的參數(shù)化設(shè)計系統(tǒng)問世以來,在此基礎(chǔ)上實現(xiàn)設(shè)計的自動化已經(jīng)變得切實可行。參數(shù)化設(shè)計技術(shù)是計算機輔助設(shè)計技術(shù)的又一次巨大的飛躍,目前先進的計算機輔助設(shè)計軟件大部分實現(xiàn)了參數(shù)化。
本書講解的是參數(shù)化設(shè)計軟件的一枝奇葩-Grasshopper。Grasshopper并非一個獨立的軟件,而是一款在Rhino環(huán)境下運行的采用參數(shù)化方式生成模型的插件。不同于RhinoScrip,Grasshopper不需要太多任何的程序語言知識,就可以通過一些簡單的流程方法達到設(shè)計師所想要的模型。
不同于Pro/Engineer和RevitBuliding這樣用途鮮明的參數(shù)化軟件,Grasshopper更加全能!無論機械設(shè)計、藝術(shù)設(shè)計還是建筑設(shè)計,Grasshopper都游刃有余、運用自如。Grasshopper強大的邏輯建模功能可以在短時間內(nèi)生產(chǎn)大量結(jié)果,并以此進行對比分析,優(yōu)化設(shè)計結(jié)果。
Grasshopper的學(xué)習(xí)也應(yīng)當(dāng)秉承由淺入深、循序漸進的原則,掌握基礎(chǔ)操作的同時建立起Grasshopper的基本思維模式。根據(jù)筆者多年研究和自身用戶的總結(jié),要學(xué)好Grasshopper必須把握好以下3個關(guān)鍵環(huán)節(jié)。
熟練掌握數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)和相關(guān)運算器。
熟練掌握各種建模的運算器。
熟練掌握內(nèi)部編程語言和可以調(diào)用的函數(shù)。
其中的第一條是關(guān)鍵之關(guān)鍵,務(wù)必優(yōu)先掌握。
本書對基礎(chǔ)命令和運算器做了詳細的講解和運用,希望能為學(xué)習(xí)Grasshopper的讀者提供一個入門的基石。
本書在寫作過程中參考了國內(nèi)外專家高手的一些制作方法,并使用了一些相關(guān)圖片資料,并盡量地在書中做出了標(biāo)注,但是由于條件所限,不能一一告知,在此一并表示衷心感謝!
由于作者水平所限,本書錯漏之處在所難免,也懇請國內(nèi)外專家高手不吝賜教,多多交流溝通。
程罡,高級工程師。從事計算機數(shù)字圖形、圖像、3D動畫、三維數(shù)值城市、虛擬現(xiàn)實技術(shù)近二十年。
南京機電學(xué)院校級特聘專家、全國職業(yè)資格認(rèn)證中心特聘講師、航天神舟智能科技公司特聘專家、南京多家高?妥淌冢暇┬畔⒙殬I(yè)技術(shù)學(xué)院、南廣學(xué)院、南師大中北學(xué)院、南京理工大學(xué)、正德學(xué)院等)、江蘇省科協(xié)STEAM云教育中心高級講師。
十余年來,與國內(nèi)知名出版機構(gòu)合作,出版《細說光影—3ds max & VRay室內(nèi)渲染用光技巧》等專業(yè)著作多部。
上篇 基礎(chǔ)篇
第1章 Grasshopper概述
1.1 參數(shù)化設(shè)計和Grasshopper
1.1.1 什么是參數(shù)化設(shè)計
1.1.2 參數(shù)化建模與手工建模
1.1.3 什么是Gras
1.1.4 Grasshopper的運用
1.2 Grasshopper的下載和安裝
1.2.1 Grasshopper的下載
1.2.2 Grasshopper的安裝
1.3 打開Grasshopper和Grasshopper的界面
1.3.1 Grasshopper的加載
1.3.2 Grasshopper的界面
1.4 運算器詳解
1.4.1 運算器的構(gòu)成
1.4.2 運算器信息
1.4.3 運算器和參數(shù)
1.4.4 運算器圖標(biāo)的顯示
1.4.5 運算器的數(shù)據(jù)管理
本章小結(jié)
第2章 Grasshopper初步
2.1 從點的繪制開始
2.1.1 點的創(chuàng)建
2.1.2 創(chuàng)建滑塊運算器
2.1.3 滑塊運算器的復(fù)制
2.1.4 編輯滑塊運算器的屬性
2.2 曲線和樣條線的繪制
2.2.1 繪制另一個點
2.2.2 創(chuàng)建Line運算器
2.2.3 創(chuàng)建樣條線
2.3 數(shù)據(jù)匹配
2.3.1 如何用兩個滑塊控制一個屬性
2.3.2 創(chuàng)建Panel運算器
2.3.3 Shortest List運算器
2.3.4 Longest List運算器
2.3.5 Cross Reference運算器
2.4 一個簡單的案例——水波紋的制作
本章小結(jié)
第3章 功能和控制
3.1 在表格中創(chuàng)建多重物體
3.1.1 創(chuàng)建系列圓
3.1.2 改變系列圓的起點
3.1.3 顯示系列圓的信息
3.1.4 動態(tài)改變系列圓的半徑
3.2 創(chuàng)建系列直線段
3.2.1 直線的創(chuàng)建
3.2.2 創(chuàng)建系列直線
3.2.3 Range運算器的功用
3.2.4 動態(tài)系列線的設(shè)置
3.2.5 Addition運算器
3.2.6 設(shè)置扭曲效果
3.3 使用數(shù)學(xué)功能繪制曲線
3.3.1 創(chuàng)建曲線分布頂點
3.3.2 創(chuàng)建正弦曲線
3.4 控制和表格
3.4.1 創(chuàng)建系列圓
3.4.2 圓圈的擠壓
3.4.3 設(shè)置擠壓高度
3.4.4 Item運算器
3.4.5 Cull運算器
……
第4章 在曲面上做造型
第5章 案例——螺旋塔的建模
第6章 數(shù)據(jù)樹詳解
第7章 使用Galapagos進行優(yōu)化和提升
下篇 案例篇
第8章 初始化設(shè)置
第9章 弧度和扭曲
第10章 摩天大樓外表面的創(chuàng)建
第11章 樓板的設(shè)計
第3章 功能和控制
內(nèi)容提要: * 在表格中創(chuàng)建多重物體 * 使用數(shù)學(xué)功能繪制曲線 * 控制和表格 * 變換操作 * 形狀圖表
在Grasshopper中,對模型的編輯和控制是至關(guān)重要的一個環(huán)節(jié),通過各種控制運算器,可以使模型產(chǎn)生極為豐富的變化。本章將講解各種控制編輯模型的技法,包括對多重對象的控制、對曲線的控制、對列表的控制等。
3.1 在表格中創(chuàng)建多重物體
采用Panel列表同時控制多個對象的屬性,高效率地編輯模型,這也是參數(shù)化建模相對于手工建模最大的優(yōu)勢所在。
3.1.1 創(chuàng)建系列圓
打開GH,在工作區(qū)創(chuàng)建3個運算器,分別是Curve(曲線)標(biāo)簽面板中的Circle(圓),Params(參數(shù))標(biāo)簽面板的Panel(面板)和Sets(設(shè)置)標(biāo)簽面板的Series(系列),如圖3-1所示。
圖3-1 創(chuàng)建3個運算器
工作區(qū)中將出現(xiàn)3個運算器的圖標(biāo),移動3個圖標(biāo),將它們從左至右排列,視圖中的原點位置將出現(xiàn)一個半徑為默認(rèn)值1的圓,如圖3-2所示。
在GH工作區(qū),將Series運算器與Panel運算器相連接,將Panel運算器與Circle運算器的R(半徑)端口相連接,視圖中將生成10個圓,半徑從0到9,如圖3-3所示。 圖3-2 視圖中出現(xiàn)一個圓 圖3-3 連接運算器產(chǎn)生系列圓
3.1.2 改變系列圓的起點 目前,系列圓的起點半徑是0,這個圓是沒有意義的,用戶可以將其更改為從半徑1開始。在Series運算器圖標(biāo)左側(cè)右擊,在彈出的快捷菜單中選擇Set Multiple Numbers命令,在彈出的對話框中,將原來的0作為起點,更改為1,最后單擊對話框下方的Commit changes結(jié)束設(shè)置。Panel運算器中的系列圓半徑從1.0開始,如圖3-4所示。 圖3-4 更改系列圓的起點半徑
3.1.3 顯示系列圓的信息 再創(chuàng)建一個Panel運算器,放置到Cir運算器的右側(cè)。將Cir運算器的C端口與新建Panel相連接,Panel運算器上將顯示系列圓的信息,如圖3-5所示。 括弧中的“R: 1.00 mm”的含義為“圓的半徑是1毫米”。其單位由系統(tǒng)設(shè)置決定。 圖3-5 系列圓的半徑
3.1.4 動態(tài)改變系列圓的半徑 在工作區(qū)創(chuàng)建一個Panel運算器和Slider運算器。 將Panel運算器的數(shù)值設(shè)置為1,將其與Series運算器的S(Start)端口相連接。 將Slider運算器與Series運算器的N(Step N)端口相連接。連接完成后,前者的名稱將變更為Step,如圖3-6所示。 圖3-6 再創(chuàng)建兩個運算器 接下來用戶可以拖動Step運算器中的滑塊,動態(tài)改變系列圓的半徑。 Panel運算器的參數(shù)將決定系列圓半徑的起點,如果設(shè)置為2,則系列圓半徑的起點將變更為2,如圖3-7所示,其余以此類推即可。 圖3-7 改變系列圓的起點半徑 3.2 創(chuàng)建系列直線段 本節(jié)介紹采用參數(shù)化方法繪制系列直線以及編輯直線形態(tài)的方法。將講解使用Range運算器改變系列直線排列方式,加法運算器Addition產(chǎn)生階梯上升效果,和Reverse List運算器產(chǎn)生扭曲效果的方法。
3.2.1 直線的創(chuàng)建 新建GH,在工作區(qū)創(chuàng)建3個運算器,分別是Curve標(biāo)簽面板中的Line(線)運算器(如圖3-8所示)和兩個Pt(Construct Point)運算器。 圖3-8 Line運算器 將兩個Pt運算器分別與于Line運算器的A、B端口進行連接,結(jié)果如圖3-9所示。 圖3-9 Line運算器的連接 創(chuàng)建一個Series運算器,將它的S輸出端口與兩個Pt運算器的X軸端口連接起來,如圖3-10所示。 圖3-10 創(chuàng)建Series運算器
3.2.2 創(chuàng)建系列直線 創(chuàng)建兩個Panel運算器,數(shù)字分別設(shè)置為1和10。分別連接到兩個Pt運算器的Y軸輸入端口,如圖3-11所示。 圖3-11 創(chuàng)建Y軸的輸入 視圖中將出現(xiàn)10條直線,每條線的Y軸向上的坐標(biāo)為(1,10),每條線的X軸方向間距是1,如圖3-12所示。 圖3-12 創(chuàng)建10條直線
3.2.3 Range運算器的功用 在Sets標(biāo)簽面板的下拉菜單中,加載Range(范圍)運算器到工作區(qū)。該運算器用于產(chǎn)生一個數(shù)字的變化范圍,如圖3-13所示。 圖3-13 Range運算器的位置 如果將光標(biāo)放置到Range運算器右側(cè)的R(Range)字母上,將會出現(xiàn)一個Range(R) as list面板,顯示其默認(rèn)的參數(shù)范圍,從0.0到1.0,如圖3-14所示。 圖3-14 顯示運算器取值范圍 將Range右側(cè)的R端口與Pt運算器的Z軸端口相連接,如圖3-15所示。 視圖中的系列直線的Z軸坐標(biāo)將呈現(xiàn)從低到高的坡狀排列,Z軸坐標(biāo)從0到1排列,如圖3-16所示。 圖3-15 Range運算器的連接 圖3-16 直線的Z軸坐標(biāo) 創(chuàng)建一個Panel運算器,將其與Range運算器的R端口建立連接,Panel面板中將顯示Range運算器的取值范圍,如圖3-17所示。 圖3-17 創(chuàng)建一個Panel運算器
3.2.4 動態(tài)系列線的設(shè)置 在工作區(qū)中Series運算器的左側(cè)創(chuàng)建一個Slider運算器,雙擊左側(cè)的運算器名稱,打開Slider對話框,設(shè)置其N的取值范圍為2~20,如圖3-18所示。 圖3-18 Slider運算器的設(shè)置 將Slider運算器分別與Range的N端口和Series的C端口連接起來,運算器的名稱也變更為Count,如圖3-19所示。 圖3-19 Slider運算器的連接 拖動滑塊可動態(tài)創(chuàng)建系列直線,如圖3-20所示。 圖3-20 動態(tài)創(chuàng)建系列直線 圖3-20 動態(tài)創(chuàng)建系列直線(續(xù))
3.2.5 Addition運算器 在Maths標(biāo)簽面板中拖動Addition(加法)運算器到工作區(qū),創(chuàng)建A+B圖標(biāo)。該運算器用于加法運算,如圖3-21所示。 圖3-21 創(chuàng)建Addition運算器 將Slider運算器與Addition的A端口相連接,再將Addition運算器的R端口與Series運算器的C端口相連接,原來的Slider與Series的連接將自動斷開,如圖3-22所示。 圖3-22 Addition運算器的連接 在Maths標(biāo)簽面板中,將Construct Domain(構(gòu)建數(shù)字域)按鈕拖動到工作區(qū),創(chuàng)建Dom運算器,將Dom右側(cè)的I端口與Range的D端口相連接。再創(chuàng)建一個Panel運算器,參數(shù)設(shè)為1,將其與Addition運算器的B端口連接起來,如圖3-23所示。 圖3-23 創(chuàng)建兩個運算器 再創(chuàng)建一個Slider運算器,將其取值范圍設(shè)置為0~20,將其與Dom的B端口連接起來。該運算器的名稱將變更為Domain end,如圖3-24所示。 圖3-24 創(chuàng)建新的滑塊運算器 拖動滑塊,系列直線將產(chǎn)生坡度大小的變化,如圖3-25所示。 圖3-25 Dom運算器控制坡度 圖3-25 Dom運算器控制坡度(續(xù))
3.2.6 設(shè)置扭曲效果 在Sets標(biāo)簽面板,將Reverse List運算器拖動到工作區(qū),創(chuàng)建Rev運算器圖標(biāo);該運算器用于翻轉(zhuǎn)列表中的數(shù)據(jù)。 將Rev運算器的L端口與Range的R端口連接,將L端口與Pt的Z端口相連接,如圖3-26所示。 圖3-26 加載Reverse運算器 視圖中的系列線將呈現(xiàn)相互翻轉(zhuǎn)的扭曲效果,如圖3-27所示。 圖3-27 系列線的扭曲效果