





網格是3D建模行業最有表率性的幾何形式,非常多軟件的構架都是以網格為中心,然則因為Rhino重點是針對Nurbs的操作,引起網格在Rhino以及GH中的操作容易被人忽略。網格與Nurbs的功效是互補的,非常多Nurbs難以實現的模型都能夠經過網格制作出來。
網格創建的模型與其他軟件有較好的對接性,由于其在保留成3ds或Obj格式后導入其他軟件時,網格的拓撲關系不會出現變化,可繼續對模型進行編輯。然則Nurbs模型在導入到其他軟件過程中,常常需要先轉換為網格,其拓撲結構常常與預期效果不一致,引起后面的軟件沒法對其進行有效的編輯,相信經常運用Sketch Up與Rhino進行模型互導的讀者會深有感觸。
網格能夠大大提高模型的表示效率,由于計算機的顯卡沒法直接讀取Nurbs物體,需要先在后臺將其轉換成網格才能夠讀取出來。倘若模型本身便是網格的話,那樣就無需這個轉換過程,大大節約表示的計算時間。網格還能夠經過Join的辦法減少模型所占的存儲空間,一樣能夠提高模型的表示效率。
因為GH中的Mesh命令相對較少且不足完善,因此呢需要外邊插件來彌補其功能的缺失,較為常用的Mesh插件包括Mesh Edit、Weaverbird、Starling、Meshtools等。
針對網格的含義,在Rhino中創立一個網格,而后用“What”命令查看針對網格的描述,能夠發掘該網格是由于9個頂點,4個有法線的網格面構成。
將上面繪制的網格用Mesh運算器拾取進GH中,并用Deconstruct Mesh運算器將這個網格進行分解,其V輸出端暗示網格的頂點; F輸出端暗示的是每一個網格面的頂點序號,用Panel面板查看其輸出結果,其中Q暗示的是Quad的含義,即為四邊的Face,倘若將三邊網格面進行分解,輸出端F中的數據則會表示T,所暗示的即是Triangle的含義;輸出端C暗示的是頂點的顏色;輸出端N暗示的是頂點法線方向。
網格由Vertices、Edges、Faces一起構成,包括三邊網格和四邊網格。經過指定網格內部的拓撲關系(Topology),能夠創建區別結構的網格。Construct Mesh運算器是創建網格的常用命令,需要確定網格的頂點以及網格面(Face),這兒的網格面指的其實是頂點的擺列序號,創建網格面能夠經過在Panel面板中輸入頂點序號,亦可經過Mesh Quad以及Mesh Triangle運算器創建四邊和三邊的網格面。
在創建Mesh Faces的時候要尤其重視頂點序號的擺列,僅有正確的頂點排序才可生成正確的Mesh結果,倘若頂點的排序是錯誤的,那樣會生成有破面的網格,這般的模型在渲染或3D打印的狀況下是會出錯的。
網格一樣能夠由Nurbs曲面轉換得到,經過Mesh Surface運算器能夠將曲面轉換成四邊網格,并能夠自定義U向和V向網格的數量。曲面能夠經過Mesh Surface運算器轉換成網格,并保持原始曲面的UV拓撲結構。
網格一樣能夠經過Mesh Brep運算器由Brep轉換而來,不外因為Brep的UV結構常常比較混亂,生成的網格拓撲關系亦比較混亂,難以對其深化處理。一般的做法都是利用UV結構較為規整的單一曲面轉換成網格,再對其進行深化處理。
GH中網格框線的開啟與關閉可在【Display→ Preview Mesh Edges】進行切換,亦可經過快捷鍵“Ctrl+M”掌控網格框線的開啟與關閉。
網格邊緣分為Naked Edges、Interior Edges、Non-Manifold Edges,用Mesh Edges運算器可將這三類邊緣提取出來。其中Naked Edges暗示外露邊緣線(每一個邊緣線只屬于一個面),Interior Edges暗示內部邊緣線(兩個面共用一個邊緣線),Non-Manifold Edges暗示非正常邊緣線(多于兩個面共用一個邊緣線)。用Mesh Edges運算器提取出來的邊緣線都是斷開的Line。
經過Face Boundaries運算器可提取網格每一個面的邊緣線,其輸出的結果是閉合的Polyline Curve,倘若將這些Polyline Curve炸開的話,在面與面相交的位置會有重合的邊緣線產生。
網格應用實例一
創建孔洞表皮是GH中比較平常的操作,都數狀況下的習慣是用Nurbs來操作的,可是Nurbs所帶來的問題便是一旦所開孔洞數量較多的話,全部程序的運行就會變得非常慢。為了加強運算效率,能夠經過Mesh的做法來優化全部程序。以下經過一個案例介紹Mesh辦法創建孔洞表皮的辦法:
(1)為了簡化操作能夠直接調用曲面,并用Mesh Surface運算器將其轉換為網格,U向和V向網格劃分的數量可分別設定為32、42。
(2)經過Face Boundaries運算器提取每一個網格面的輪廓線,并用Face Normals運算器找到每一個網格面的中心點。
(3)由List Length運算器測繪網格面的數量,并由Subtraction運算器將總數量減去1。
(4)用Range運算器將0 to 1區間進行等分,等分的段數為網格面的數量減去1。
(5)調入Graph mapper運算器,并將其函數類型改為Sine函數。將等分數值賦予Graph mapper運算器,對其進行函數映射。
(6)因為正弦函數的輸出數據區間范圍是0 to 1,可經過Bounds、Remap Numbers、Construct Domain三個運算器將函數的輸出數據映射到0.2 to 0.8區間范圍內。
(7)經過Scale運算器將網格面邊緣線依據中心點進行縮放,縮放的比例因子為映射后的數值。
(8)由兩個Explode運算器將縮放前后的線框同期炸開,為了保準數據路徑一一對應,需要經過右鍵單擊Explode運算器的S輸出端,選取Graft將兩組數據成樹形數據。
(9)經過Flip Curve運算器轉換其中一組線的方向,倘若不轉換方向的話,對應兩條線的四個端點的排序便是{0;1;3;2},這般就需要手工修改Face的頂點排序。
(10)將兩組網格面的邊緣線繼續用Explode運算器炸開,同期右鍵單擊其V輸出端,選取Simplify進行路徑簡化。
(11)用Merge運算器將兩組點數據進行合并,那樣其輸出結果為每一個路徑下有四個形成網格面的頂點。
(12)最后將點賦予Construct Mesh運算器的V輸入端,就可依據頂點的排序創建網格。
Deconstruct Mesh運算器能夠確定網格每一個頂點的法線方向,Face Normals運算器能夠確定每一個網格面中心點的法線方向。網格上點的法線方向遵從右手螺旋定則,兩個網格面的頂點排序分別為Q{3,0,2,4}、T{0,1,2},根據右手螺旋定則,此時網格上點對應的法線方向是向上的。
網格應用實例二
網格上點的法線應用多伴同形體的變化,以下經過一個案例介紹網格頂點法線方向的應用辦法:
(1)如圖1-59所示,用Mesh Sphere運算器創建一個網格球體,其U、V兩個方向網格面的數量可同期設定為30。
(2)經過Deconstruct Mesh運算器提取網格面的頂點及其對應的法線方向。
(3)用Deconstruct運算器將網格面的頂點分解為X、Y、Z坐標,并將Z坐標的數值經過Sina運算器進行正弦函數映射。
(4)為了方便后期調節數據,將正弦函數映射后的數值經過Multiplication運算器乘以一個倍增值。將該數值賦予Amplitude運算器的A輸入端做為網格頂點法線向量的數值。
(5)將網格頂點經過Move運算器沿著其對應的向量進行移動。
(6)將移動后的頂點由Construct Mesh運算器重新構成網格,其F輸入端的網格頂點排序需要與初始網格的頂點排序保持一致。
在用Construct Mesh運算器創建網格的時候,能夠在其C輸入端為網格賦予顏色。如圖1-60所示,網格著色的原理便是頂點著色,倘若只輸入一種顏色,那樣網格就會表示該種顏色;倘若將頂點指定多種顏色,那樣網格將會依據這些頂點顏色生成過渡的漸變色。
網格著色可用來表示分析的結果,以下經過一個案例介紹網格著色的應用辦法:
(1)為了簡化操作,能夠直接調用上一個案例中的網格結果。
(2)為了更直觀的表示頂點位移變化的體積,能夠經過Gradient Control運算器中的漸變色表示頂點位移的變化趨勢。
(3)因為Gradient Control默認的區間范圍是0 to 1,能夠用數據映射的辦法將所有頂點的位移數值映射到0 to 1范圍內。
(4)將漸變色賦予Construct Mesh運算器的C輸入端,網格的所有頂點將會被賦予相對應的顏色,網格面則會依據四個頂點的顏色生成過渡的漸變色。
網格圖片映射
經過照片灰度值影響網格的形體,這般能夠更精確的掌控紋理變化的位置和強度。
該案例的重點規律構建思路為首要將照片以網格形式導入到GH中,因為網格的每一個頂點都對應一個灰度值,將其做為一個曲面上點移動距離的依據。經過移動之后的點重新生成網格,最后依據網格生成樓板層。以下為該案例的詳細做法:
(1)首要在PS中繪制一個黑白紋理照片,讀者亦能夠在網上搜索黑白紋理照片來獲取素材。
(2)用Import Image運算器將照片以著色網格的形式導入GH中,經過右鍵單擊其F輸入端,選取Set One File Path指定照片路徑。其X、Y兩個輸入端暗示著色網格頂點的數量。
(3)經過Deconstruct Mesh運算器將著色網格進行分解。
(4)用Ellipse運算器創建一個橢圓平面線,并經過Extrude運算器將其擠出形成一個面。
(5)用Divide Surface運算器在曲面上生成等分點。為了保準等分點數量與網格頂點數量保持一致,需要將網格的X、Y兩個方向頂點數量減去1,而后將結果分別賦予Divide Surface運算器的U、V兩個輸入端。
(6)用Evaluate Surface運算器計算等分點對應的曲面法線方向,為了簡化路徑結構,可將Divide Surface運算器的uv輸出端經過Flatten進行路徑拍平。
(7)用Split AHSV運算器將網格每一個頂點對應的顏色分解為alpha值、色相、飽和度、色調。
(8)將色調的數值由Remap Numbers運算器映射到一個適當的區間范圍內。
(9)經過Amplitude運算器為曲面上等分點的法線方向賦予數值。
(10)由Move運算器將曲面上的等分點沿著向量進行移動,對應照片顏色越亮位置的點移動的距離越大,反之則越小。
(11)用Construct Mesh運算器依據移動之后的點生成網格,并且將著色網格的頂點序號與顏色賦予該運算器的F和C輸入端。
(12)用Contour運算器在網格表面生成等距斷面線。
(13)用Join Curves運算器將生成的曲線進行合并,并經過Control Polygon運算器提取多段線頂點。
(14)因為生成的網格在原曲面接縫處是不閉合的(倘若讀者想構建一個閉合的網格,則需要保準原始照片上下兩側交接處的亮度值保持一致),需要經過PolyLine運算器將頂點重新連成線,為了使生成的多段線是閉合的,可將其C輸入端的布爾值改為True。
(15)用Smooth Polyline運算器對多段線進行適當的圓滑處理。
(16)經過Boundary Surfaces運算器依據曲線生成平面,并用Extrude運算器將其擠出必定的厚度。
(17)區別的黑白紋理照片對應區別的形體效果。倘若讀者想精確掌控形體的紋理位置,則需要調節黑白顏色的分布位置,并且經過多次調試,才可得到滿意的結果。
Weaverbird插件時GH中最常用的網格編輯工具,包括細分、網格開洞、加厚等常用操作,能夠快速生成相對規則的繁雜網狀形體。
泰森多邊形構建空間網格
經過GH自帶的Voronoi 3D算法與Mesh關聯操作可生成圓滑連接的網格結構。
該案例的重點規律構建思路為首要縮放泰森多邊形單元體,而后依據對應兩個面的邊緣線生成曲面,再將曲面轉換為最簡網格形式,最后經過網格細分將整體結構進行圓滑處理。以下為該案例的具體做法:
(1)首要創建一個長方體的邊界范圍,并用Box運算器將其拾取進GH中。經過Populate 3D運算器在長方體范圍內創建一組三維隨機點。
(2)由Voronoi 3D運算器依據隨機點生成組泰森多邊形結構單元,并將三維隨機點的邊界長方體賦予Voronoi 3D運算器的B輸入端。
(3)經過Volume運算器提取每一個結構單元的中心,并經過Scale運算器將每一個結構單元依據其中心點進行縮放。
(4)將縮放后的結構單元由Deconstruct Brep運算器進行分解,并將其F輸出端經過Graft轉成樹形數據。
(5)由Deconstruct Brep運算器將縮放前的結構單元進行分解,并用Area運算器提取分解后每一個面的中心點。
(6)用Scale運算器將分解后的面依據其中心點進行縮放,為了保準數據結構對應,需要將Scale運算器的G輸出端經過Graft轉成樹形數據。
(7)用Loft運算器將內外對應兩個面的邊緣進行放樣,此處將曲面賦予Loft運算器,本質上是提取曲面邊緣后再進行放樣。
(8)因為經過放樣后的曲面都是由于四邊面構成的,可直接由Simple Mesh運算器將其轉換為最簡形式的四邊網格。
(9)將轉換后的網格由Mesh Join運算器進行合并,并經過Flatten將所有網格放在一個路徑結構內。
(10)經過Mesh UnifyNormals運算器將組合后的網格頂點統一法線方向,再用Mesh WeldVertices運算器焊接網格頂點。
(11)由Catmull-Clark Subdivision運算器對焊接后的網格進行細分圓滑處理,可將網格的細分次數改為3。
(12)因為日前生成的形體并不是閉合的,可經過Mesh Edges運算器提取網格的外露邊緣,并用Boundary Surfaces運算器將外露邊緣處進行封面。
(13)最后用Custom Preview運算器為全部形體賦予顏色。
經過改變隨機點的數量、隨機種子、以及縮放的比例因子,可創建區別形態的網格結構。
網格細分橋接
T-Splines插件中有個Bridge命令能夠將兩個曲面的對應子曲面進行橋接,在GH中一樣能夠經過網格細分的辦法構建橋接效果。
該案例的重點規律構建思路為首要將兩個曲面細分相同數目的子曲面,為了產生隨機相連的效果,可經過隨機數據提取兩組索引值區別的子曲面。將兩兩對應的子曲面邊框經過放樣生成連接結構,并將剩余子曲面與連接結構的曲面進行組合,而后將組合后的多重曲面轉換成網格,最后經過網格細分生成圓滑的效果。以下為該案例的仔細做法:
(1)首要在Rhino空間中繪制兩個多重曲面,并用Suface運算器將兩個需要連接的曲面拾取進GH中。
(2)用Divide Domain2運算器將兩個曲面等分二維區間,要保準兩個曲面等分二維區間的U向和V向數量保持一致。
(3)用Isotrim運算器依據等分的二維區間對兩個曲面進行分割。
(4)經過List Length運算器統計細分子曲面的數量,并將該值賦予Random運算器的R輸入端,同期將兩個Random運算器的N輸入端賦予相同的數值,為了產生兩組區別的隨機數據,可改變其中一組隨機數據的隨機種子。
(5)因為Random運算器生成的數值為小數,可經過Round運算器提取其整數部分。
(6)用List Item運算器提取出隨機數據對應索引值的子曲面,并用Cull Index運算器刪除掉隨機數據對應索引值的子曲面。
(7)經過Graft Tree運算器將子曲面轉成樹形數據,并用Merge運算器將兩組數據進行組合,其輸出結果為每一個路徑下有兩個對應子曲面的數據結構。
(8)經過Loft運算器將合并后曲面邊框線放樣成面,其輸出結果為兩個曲面間的連接結構。雖然賦予Loft運算器的數據為曲面,然則其放樣的物體為曲面的邊框線。
(9)將兩組Cull Index運算器的輸出數據,與Loft運算器的輸出數據同期賦予Brep Join運算器的輸入端,為了保準所有曲面被安置在一個路徑結構內,需要將Brep Join運算器的輸入端經過Flatten進行路徑拍平。
(10)因為經過組合之前的曲面均為四邊曲面,因此呢可直接經過Simple Mesh運算器將多重曲面轉換為網格結構。
(11)經過Mesh Join運算器對轉換后的網格進行合并,并用Mesh WeldVertices運算器將合并后的網格進行焊接頂點。
(12)用Loop Subdivision運算器對焊接后的網格進行細分,其輸出結果類似T-Splines插件中Bridge命令產生的圓滑效果。為了保準網格外露邊緣不變形,需要經過右鍵單擊其S輸入端,將邊緣圓滑模式改為Fixed。
(13)本案例為了簡化操作,在選擇子曲面時采用了隨機選擇的辦法,讀者倘若期盼精確匹配連接的位置,可經過指定子曲面的索引值來確定連接的位置。
(14)改變程序中的參數變量,可生成區別的結果。
Kangaroo將動力學計算引入gh中,經過理學力學模擬進行交互仿真、找形優化、約束求解。Rhino6版本已然將其內置于GH中,可見地位之重要。
殼體設計
MARC FORNES / THEVERYMANY經過蛹的概念重新設計了圓形劇場,項目位置于在馬里蘭州的merriweather公園,做為一個沉浸式的空間,在滿足劇院需求的同期,該結構的特點是一系列級聯的拱門,不僅體積區別,況且功能亦區別。
(現場照片)
該劇場采用的材料為鋁合金瓦片和鋼外骨骼,其顏色則從大自然中提取靈感,將每片木瓦都涂有四種綠色中的一種,使全部劇場偽裝成自然景觀。
(效果圖)
MARC FORNES / THEVERYMANY運用最大的拱形框架舞臺阿爾法,它已被用于可能需要照明設備的官方活動和音樂表演。 到了夜晚,舞臺作為一個發光的音樂會場地,具備支持重要音樂表演的能力。
(施工照片)
Kangaroo(袋鼠)插件將動力學計算引入GH中,經過理學力學模擬進行交互仿真、找形優化、約束求解。將Kangaroo應用于殼體和膜結構設計中,能夠極重的節省找形優化時間。
蛹形劇場的形體能夠經過Kangaroo插件進行構建,因為該形體表面有棱狀凸出結構,因此呢在前期創建基本形體的時候就要構思好整體布線的規律。因為袋鼠插件是針對網格進行操作,可借助T-Splines插件中Append Face命令構建基本形體。
經過袋鼠插件找形完畢后,需將網格Bake到Rhino空間中,并將其轉換為TS中的網格物體,選取對應凸出位置的網格線,將TS拖拽模式切換的UVN的法線方向,最后沿著法線方向移動網格線、就可生成棱狀凸出結構。
照片的Circle Packing
step 1
首要創建一個矩形,并在矩形范圍內生成必定數量的隨機點。用Import Image運算器導入一張照片(本案例以奧巴馬的照片做為演示),需要右鍵單擊File輸入端,找到照片對應的文件路徑,其輸出結果為著色的網格。
step 2
經過ImageCircles運算器設定相切圓半徑的最小值和最大值,以及增多碰撞的邊界線。
step 3
經過Solver解算器進行碰撞模擬,其o輸出端的數據為圓的半徑數值。雙擊Boolean Toggle變為True就可運行程序,照片中白色區域對應圓的半徑很強,黑色區域對應圓的半徑較小。
曲面上的Circle Packing
Circle Packing能夠以非常美觀的方式逼近任何曲面,2010年上海世博會“3D紙藝”展覽中,這個半球形的紙板亭亦將相切圓的元素應用到了實質項目,從設計到安裝的每一步都由計算機輔助完成。step 1
在Rhino中創建一個曲面,并將其拾取進GH中。首要在曲面上生成一定數量的隨機點,做為初始圓的中心點。因為Kangaroo的組件沒法直接計算曲面,需要用Mesh運算器將曲面轉換為網格。
step 2
經過Onmesh運算器對點施加拉回到網格表面的功效力,經過SphereCollide運算器對圓施加一個相切的碰撞力,將兩個功效力賦予Solver核心解算器,并用Boolean Toggle掌控程序的運行與否。
step 3
為了保準相切圓能夠貼合曲面表面,需要指定曲面的相切平面做為生成圓的基準平面。該過程需要用到Surface Closest Point運算器供給隨機點對應曲面的UV坐標,再經過Evaluate Surface運算器依據UV坐標輸出隨機點對應的切平面。
扎哈Thallus
在米蘭設計展上,做為網紅的thallus,居然能用犀牛的grasshopper設計出來。今天咱們帶來教程,學習一下大師的設計。無約束生長
在平面圖中畫一個矩形區域,在矩形區域內隨意繪制有些圖形,將這個圖形切分成2000段,每一段咱們將其長度約束為5毫米。將其輸入袋鼠主模擬器,掌控其中的一個參數,便是長度約束。
邊框約束
有了長度約束之后,打開袋鼠開關,線就會自動伸長,但這個時候會顯現兩個問題,線會超出區域的外面,另一線會自動交叉。
此刻處理第1個問題,線會超出邊框之外,于是矩形邊框就有了功效,將其變為網格面,將所有的線段約束到網格面之內,施加的力體積為100,而后將其輸入袋鼠主模擬器。
線段之間的碰撞約束
這般就能夠看到線不會超出區域之外,但線與線之間還是會互相交叉,因此呢用碰撞約束做為要求,將線與線之間的最小距離設為0.5毫米,亦便是說在0.5毫米范圍以內的時候,線與線之間就會產生碰撞的力,從而避免線與線之間的交叉,而在0.5毫米之外的話,線與線之間是無力的產生,因此呢它能夠任意的擴張生長。
線段之間夾角的約束
多了這兩個力之后,線不會交叉,亦不會跑到區域之外,然則它的形狀很不規則咱們想把此刻的線段變成曲線,要把無數根短小的折線變為曲線,就需要對線與線段之間有一個方向的約束。
咱們曉得倘若兩條線段相連接,倘若是一條直線,那樣它們的夾角為0度,或亦能夠說是180度。而多條線段相連之后,多邊形內部總會有一個夾角,隨著多邊形等分的段數越多,多邊形邊與邊之間的夾角越大,最后趨近于一個圓,當分段數無限大的時候,邊與邊之間的夾角就能夠無限的接近于0,因此呢咱們將邊與邊之間的夾角直接設為0度,將力量設為100,連接之后就會產生如圖所示的現象,得到最后的平面曲線模型。全部模型是經過頂部曲線與底部曲線放樣生成
兩條曲線之間存在縮放和旋轉兩種變形
01
先從縮放起始,在平面上創立多邊形,將多邊形的頂點找出進行縮放,縮放的規律根據拋物線,先放大再縮小。同期讓所有點在Z方向進行移動,其規律已根據拋物線先提升再下降。
下一步對移動后的點進行旋轉,旋轉中心依然是原點,值得重視的是起點和終點不進行旋轉,因此呢整體旋轉之后,需要將起點和終點在原來的數列中進行替換。然后再連接成線進行放樣,最后得到咱們需要的造型曲面。
得到造型曲面之后,而后將平面和平面上的曲線映射到咱們的造型曲面上,需要用到的運算器名叫作是map to surface。
咱們能夠增多曲線的密度,在這兒咱們只需要將線段切割為更加多的線段就能夠了,將點數設為5000,亦便是將全部封閉的線段切割為5000的小段,而后讓它生長,得到如下的圖,最后將生成的曲線經過網格的pipe生成圓管,Bake到犀牛的界面中,曲線就已然生長完畢了。
能夠修改需要分段的初始線段,變為圓形、星形等各樣圖形,這般就能夠得到區別映射到造型曲面上的空間曲線了。然則對電腦的需求很高,電腦配置中等的小伙伴就能夠試著慢慢往上加,不要一次性加太多(由于一次性加的點數太多,分段數太多,首要是消耗電腦的運算速度和內存空間,再是需要調節以上4個參數,否則線與線之間可能會產生碰撞交叉)。
當然扎哈的模型分段數是相當的高,需要非常高配置的電腦。將造型曲面的邊線提取出來,用網格生成圓管,而后再做有些平滑,就得到最后的成品模型了。
項目原計劃采用六軸機械臂進行掌控,輸入空間位置信息和噴涂顏色信息,不曉得是由于項目時間原由,還是由于技術難度,最后無上色,而是采用素色白色的材料圓形直接送往米蘭的展館。
Millipede插件的重點功能是結構分析與優化,可對框架結構與殼結構進行快速的線性與彈性分析。該插件還能夠經過拓撲優化的辦法來優化結構,并以可視化的形式呈現優化結果。
Millipede插件的下載位置為:http://www.sawapan.eu/,安裝完畢后,重啟GH就可看到該插件出此刻標簽欄中。
Millipede插件最常用的功能便是用來構建Iso Surface,即經過矢量場或函數來構建等值面。經過Geometry Wrapper和Iso surface兩個運算器構建等值面是比較方便的辦法,如圖所示,在Rhino空間中確定區域內人的重點流線,經過Iso Surface算法生成行人交通流線效率最高的建筑形態。需要右鍵單擊Bounding Box運算器,勾選Union Box選項生成一個整體的邊界長方體。
Geometry Wrapper運算器需要與Iso surface運算器搭配運用,其供給構建等值面所需要的體數據。兩個運算器對應的Box、Xres、Yres、Zres輸入端需要賦予相同的數據。
Iso Surface運算器采用Marching Cubes算法實現等值面的提取,其V輸入端所需要的體數據,既能夠由Geometry Wrapper運算器供給,亦可直接由場的強度值來供給,還可由函數直接供給。IsoValue輸入端所需要的數據可參考V輸入端的平均值。
點場構建Iso Surface
場的強度值可直接做為Iso surface運算器V輸入端的體數據,用以提取空間中磁場的等勢面。該案例為經過點磁場構建Iso Surface的最后效果。
本案例的重點規律構建思路為首要在一個Box范圍內,創建必定數量的三維等分點,并經過點磁場功效于三維等分點,由Iso Surface運算器提取出磁場范圍內的等勢面。為了避免改變參數過程中產生與主體結構不相連的網格,可經過網格面積來篩選出主體結構。以下為該案例的詳細做法:
(1)用Center Box運算器創建一個邊界范圍,其X、Y、Z三個輸入端分別賦予80、50、35。
(2)為了保準程序界面的簡潔性,將Center Box運算器的輸出數據賦予Box運算器,并將兩個運算器同期命名為“邊界Box”。后面的操作過程中可將這兩個運算器的連線隱匿掉。
(3)經過Evaluate Box運算器創建三維等分點,因為Iso Surface運算器是采用Marching Cubes算法,為了保準每一個方向上等分點與細分Box的數目保持一致,需要將單個方向細分Box的數量減去1做為等分點的數量。
(4)用Number Slider運算器創建一個40的數值,并將其賦予Number運算器,將兩個運算器同期命名為“網格精度”,后面的操作過程中可將這兩個運算器的連線隱匿掉。
(5)經過Subtraction運算器將網格精度的數值減去1,并將結果賦予Range運算器的N輸入端。
(6)為了保準X、Y、Z三個方向生成相同數目的點,需要將Range運算器的輸出數據經過Cross Reference運算器進行交叉對應,可經過放大運算器單擊“+”來增多輸入端的數量。
(7)將Cross Reference運算器的三個輸出端數據分別賦予Evaluate Box運算器的U、V、W三個輸入端。
(8)依據Populate 3D運算器在邊界Box范圍內創建90個隨機點,其S輸入端隨機種子的數值可設定為3。
(9)用Gene Pool運算器創建四個數值,分別為1.80、-2.50、2.00、-1.80。因為該運算器的默認數值個數為10,且區間范圍是0-100,可經過雙擊該運算器改變其數據的個數與區間范圍。
(10)用Repeat Data運算器對上一步中創建的四個數據進行復制,復制后數據的總數與隨機點的數量保持一致。
(11)經過Point Charge運算器創建點磁場,以隨機點做為磁場的中心點,復制后的數據做為磁場的強度值。
(12)用Merge Fields運算器將所有的點磁場進行合并。
(13)經過Evaluate Field運算器測繪每一個三維等分點位置所對應的磁場強度。
(14)將邊界Box賦予Iso Surface運算器的Box輸入端;將三維等分點所處位置的磁場強度值賦予其v輸入端;將網格精度值賦予其Xres、Yres、Zres三個輸入端。
用Average運算器測繪磁場強度的平均值為0.028662,因此呢IsoValue輸入端的數值體積應與該值相差不大,該案例賦予的數值為0.012001,;將True布爾值賦予其Merge輸入端,使生成的網格更圓滑。
(15)在調節IsoValue輸入端變量的過程中,會顯現部分網格未與主體相連的狀況,為了使得到的結果僅有一個整體的網格形體,可經過Disjoint Mesh運算器將不連接的網格進行分割。
(16)用Mesh Area運算器測繪分割后所有網格的面積。
(17)經過Sort List運算器將網格根據面積體積進行重新排序。
(18)因為整體網格形體的面積是最大的,然則Sort List運算器是根據由小到大的次序進行排序。為了方便選取,可經過Reverse List運算器將列表進行反轉,這般面積最大的網格形體就位置于列表中的第1個位置。
(19)用List Item運算器提取列表中索引值為0的網格做為最后結果。
(20)倘若對最后的網格形體有必定的厚度需求,可將其Bake到Rhino空間,用偏移網格命令對其加厚處理。
(21)改變IsoValue輸入端的數值,并且只表示Iso Surface運算器的輸出結果,就可看到全部網格形體生成的過程。
有效交通流線模擬
(1)首要在空間中確定兩個點,做為交通路徑的核心樞紐
(2)創建一組三維隨機點,模擬建筑空間的區別功能分區
(3)創建一組隨機點到兩個核心樞紐點的最短路徑組合
(4)用Geometry Wrapper運算器將曲線進行包裹
(5)經過Iso surface運算器可依據Isovalue值擬合出網格
極小曲面應用
在數學概念中,極小曲面指的是平均曲率為零的曲面。隨著計算機圖形學的發展,極小曲面以其豐富的形體變化和流動性,被越來越多的應用于區別的設計行業。
極小曲面的形體可經過IsoSurface算法進行模擬,其V值可直接由極小曲面方程式供給,因為極小曲面公式的發掘屬于數學行業,設計行業可直接運用現有的公式。下面將介紹幾種常用的極小曲面:
(一)Gyroid Surface
Gyroid Surface的公式為:cos(x)*sin(y)+cos(y)*sin(z)+sin(x)*cos(z)。該案例的重點規律構建思路為,首要在一個Box范圍內創建必定數量的三維等分點,并由極小曲面公式確定等值面的范圍,再經過Iso Surface算法以網格的形式擬合等值面。最后用橢球體來切割網格,可生成圓滑效果的極小曲面,以下為該案例的詳細做法:
(1)用Center Box運算器創建一個掌控密度的長方體,其X、Y、Z三個輸入端分別賦予9、8、6。需要重視的是此處創建的長方體并不是極小曲面的邊界范圍,而是用來掌控其密度的參數,可將賦予X、Y、Z三個輸入端的數值命名為“密度掌控”。
(2)用Number Slider運算器創建一個體積為30的數值,并將其賦予Number運算器,將兩個運算器同期命名為“網格精度”。為了保準程序界面的簡潔性,可將兩個運算器的連線隱匿掉。
(3)經過Subtraction運算器將名叫作為“網格精度”的數值減去1,并將結果賦予Range運算器的N輸入端。
(4)將Range運算器的輸出數據經過Cross Reference運算器進行交叉對應,可經過放大運算器單擊“+”來增多輸入端的數量。
(5)將Cross Reference運算器的三個輸出端數據分別賦予Evaluate Box運算器的U、V、W三個輸入端。
(6)用Deconstruct運算器將三維等分點分解為X、Y、Z坐標。
(7)將分解后的X、Y、Z坐標分別賦予Evaluate運算器的x、y、z輸入端,可經過放大運算器單擊+來增多z輸入端。
(8)在Panel面板中輸入“cos(x)*sin(y)+cos(y)*sin(z)+sin(x)*cos(z)”,并將其賦予Evaluate運算器的F輸入端。
(9)用Center Box運算器創建一個邊界范圍長方體,將6、5、4這三個數值分別賦予其X、Y、Z輸入端,需要重視的是此處創立的長方體才是極小曲面的邊界范圍。
(10)將邊界范圍的長方體賦予Iso Surface運算器的Box輸入端;將等值面的公式賦予其v輸入端;將網格精度值賦予其Xres、Yres、Zres三個輸入端;IsoValue輸入端的數值為-0.196178;將True布爾值賦予其Merge輸入端,使生成的網格更圓滑。
(11)用Smooth Mesh運算器將生成的網格形體進行圓滑處理。
(12)由Volume運算器提取邊界Box的幾何中心點。
(13)經過Sphere運算器依據幾何中心點創建一個球體。
(14)由Scale NU運算器對球體進行三軸縮放,其X、Y、Z三個方向的縮放比例可分別設定為:4.5、4、3。此處讀者可自動設置縮放比例因子,只要保準其范圍不超過極小曲面邊界就可。
(15)經過Mesh Brep運算器將縮放后的球體轉換為網格。
(16)經過Mesh Split運算器用球體網格切割極小曲面網格。
(17)極小曲面網格被分割后會生成兩部分,用List Item運算器提取索引值為1的網格,就可得到非規則形體的極小曲面。
(18)如需創建有厚度的網格形體,可將得到的結果Bake到Rhino空間,用偏移網格命令對其加厚處理。
(18)改變名叫作為“密度掌控”中的X、Y、Z變量數值,同期調節IsoValue參數,就可得到區別密度下的極小曲面。
(二)Neovius Surface
因為構建極小曲面的辦法是一致的,只需將程序中的公式進行替換,同期需調節密度掌控的參數、以及IsoValue的參數。
Neovius Surface的公式為:3*(cos(x)+ cos(y) + cos(z)) + 4*cos(x) * cos(y) * cos(z)。將Gyroid Surface案例中的曲面公式替換為Neovius Surface的公式,同期將密度掌控的X、Y、Z三個參數調節為7、6、5,就可得到如圖所示的結果。
(三)Schwarz P Surface
Schwarz P Surface的公式為:cos(x)+cos(y)+cos(z)。將Gyroid Surface案例中的曲面公式替換為Schwarz P Surface的公式,同期將密度掌控的X、Y、Z三個變量調節為9、7、6,就可得到如圖所示的結果。
(四)Split P Surface
Split P Surface的公式為:1.1*(sin(2*x)*cos(y)*sin(z)+ sin(2*y)*cos(z)*sin(x) + sin(2*z)*cos(x)*sin(y)) - 0.2*(cos(2*x)*cos(2*y) +cos(2*y)*cos(2*z) + cos(2*z)*cos(2*x)) - 0.4*(cos(2*y) + cos(2*z) + cos(2*x))。將Gyroid Surface案例中的曲面公式替換為Split P Surface的公式,同期將密度掌控的X、Y、Z三個變量調節為7、5、4,就可得到如圖所示的結果。
(五)Lidinoid Surface
Lidinoid Surface的公式為:(sin(x)*cos(y) * sin(z) + sin(y)* cos(z) * sin(x) + sin(z)* cos(x) * sin(y)) -(cos(x)*cos(y) + cos(y)*cos(z) + cos(z)*cos(x)),將Gyroid Surface案例中的曲面公式替換為Lidinoid Surface的公式,并將密度掌控的X、Y、Z三個變量調節為8、6、4,就可得到如圖所示的結果。
(六)I-WP Surface
I-WP Surface的公式為:cos(x)*cos(y)+ cos(y)*cos(z) + cos(z)*cos(x) - cos(x)*cos(y)*cos(z)。將Gyroid Surface案例中的曲面公式替換為I-WP Surface的公式,并將密度掌控的X、Y、Z三個變量調節為7、6、4,同期需要將IsoValue的參數調節為-0.23,就可得到如圖所示的結果。
(七)Scherks Surface
Scherks Surface的公式為:4*sin(z)-sin(x)*sinh(y),其中sinh為雙曲正弦函數。將Gyroid Surface案例中的曲面公式替換為Scherks Surface的公式,并將密度掌控的X、Y、Z三個變量調節為4、6、8,就可得到如圖所示的結果。
(八)Skeletal Surface
Skeletal Surface的公式為:cos(x)*cos(y)+ cos(y)*cos(z) + cos(x)*cos(z) - cos (x) - cos (y) - cos (z)。將Gyroid Surface案例中的曲面公式替換為Skeletal Surface的公式,并將密度掌控的X、Y、Z三個變量調節為6、6、6,同期需要將IsoValue的參數調節為-0.9,就可得到如圖4-106所示的結果。
極小曲面的形式有非常多種,讀者可在該網站查詢關于極小曲面的公式以及仔細信息:http://www.msri.org/publications/sgp/jim/geom/level/library/triper/index.html。同期可嘗試改變公式中的有些參數,雖然改變參數后創建的形體并非標準的極小曲面,然則一樣可生成擁有數學規律的結構體,如圖4-107所示為改變公式中的有些變量生成的結果。
3D打印是以可粘合性的塑料、陶瓷、金屬等粉墨為材料,經過逐層疊加的方式打印數字模型。3D打印機可識別的標準數字模型格式為STL,其工作原理與普通打印機類似,都是將打印機內的材料一層一層疊加起來,最后將數字文件打印為實物。
將創建的兩個極小曲面模型導出為STL模型,而后將模型導入到Cura軟件中,經過讀取模型的斷面信息,用打印材料將這些斷面進行逐層疊加。
3D打印機讀取模型完畢后,就可起始進行打印。這次打印所選的材料為PLA(聚乳酸),因為PLA是由于植物發酵聚合而成,因此呢其與傳統塑料相比,擁有更低碳、綠色環保的特點。
拓撲優化
拓撲優化經過表示材料的分布狀況,可在設計空間找到最佳的分布方法,并供給精簡的結構設計指點。
拓撲優化在工業設計中的應用要早于建筑行業,尤其是在航空航天、汽車、半導體醫學、軍工等行業,因其對零件的強度與重量有著更高的需求,然則僅憑工程直覺和經驗是很難得到滿意結果的。借助有限元分析供給的意見,可將優化結果逐步演化為最后的制品,這亦改變了傳統結構工程師的設計思維。
借助Inspire軟件對零件進行拓撲優化,經過設定荷載的體積與位置,由軟件計算出恰當的材料布局。將優化后的數字模型進行光順處理并用于數位加工,再經過張力測試和光學檢驗,就可得到得到輕量化結果。
隨著3D打印等數字化建造技術以及有限元技術的發展,建筑的空間將再也不拘泥于傳統的格局。將拓撲優化的辦法應用于建筑結構設計,能夠使結構本身就擁有強有力的藝術表現力,同期準許建筑師在方法初期就可引入結構優化的理念。在滿足受力需求的狀況下,將設計中的多余材料減去,能夠很大程度上縮短工程周期與節約成本。
借助Inspire軟件對建筑空間進行拓撲優化,經過設定荷載的體積與位置,由軟件計算出恰當的支撐布局,同期還可進行有限元分析。
Millipede插件亦供給了拓撲優化與有限元分析的功能,其流程重點包括四部分:荷載與邊界要求定義、集合定義信息、解算程序、得到結果。該案例為經過Millipede插件進行拓撲優化與有限元分析的案例。
該案例的重點規律構建思路為首要定義邊界要求、支撐部件、施加壓力部件,而后由Topostruct 3D model運算器集合定義后的所有組件,再經過Topostruct 3D solver運算器進行解算生成有限元模型,最后可經過3D Iso Mesh運算器生成網格結果,還可對模型進行應力分析。以下為該案例的詳細做法:
(1)繪制一個長寬高分別為36米、24米、22米的長方體,并用Brep運算器將其拾取進GH中,由3D boundary Region運算器將該長方體定義為設計環境,并將該部分命名為“邊界范圍”。
(2)在適當位置,繪制兩個長方體,并用Brep運算器將其拾取進GH中,為了區分組件,可將這兩個長方體經過Custom Preview運算器賦予綠色。由3D Support Region運算器將這兩個長方體定義為支撐結構,并將MillC_StockSupportType運算器賦予3D Support Region運算器的SUP輸入端,供給有限元分析的材料定義。最后將該部分命名為“支撐結構”。
(3)繪制一個向下施加壓力的長方體,并經過Custom Preview運算器為其賦予天藍色。由3D Load Region運算器將其定義為施力物體,其L輸入端的壓力方向可由Z軸定義為豎直向下,其體積為230000N/m3。最后將該部分命名為“施加壓力”。
(4)繪制一個向上施加壓力的長方體,并經過Custom Preview運算器為其賦予黃色。由3D Load Region運算器將其定義為施力物體,其L輸入端的壓力方向可由Z軸定義為豎直向上,其體積為230000N/m3。最后將該部分命名為“施加壓力”。
(5)經過Topostruct 3D model運算器將定義的所有組件進行合并,其XR輸入端賦予22的分辨率數值,生成有限元模型結果。
(6)將Topostruct 3D model運算器的輸出數據賦予Topostruct 3D solver運算器的FE輸入端,并將O、S、T三個輸入端分別賦予以下數值:4、0.13、0.257。其O輸入端為優化迭代次數、S輸入端為圓滑系數,T輸入端為優化結果的密度百分比。
(7)將Topostruct 3D solver運算器的FE和maxu輸出端數據分別賦予3D Iso Mesh運算器的FE和D輸入端,并將其Iso輸入端賦予數據0.33,其輸出數據為經過拓撲優化后的網格結果。
右鍵單擊3D Iso Mesh運算器,可選取區別模式下的表示結果,包括STIFFNESS_FACTOR(剛度系數)、VONMISES _STRESS(等效應力)、PRINCIPAL_STRESS(主應力)、DEFLECTION(位移應力),該案例運用的表示結果為VONMISES _STRESS。
(8)經過3D Mesh Results運算器可實現應力的可視化,將Topostruct 3D solver運算器的FE和maxu輸出端數據分別賦予3D Mesh Results運算器的FE和D輸入端。
(9)經過有限元分析后可提取應力進行分析,為了更清楚的查看應力的分布狀況,可經過3D Cell Results和Stress Lines兩個運算器獲取應力線。