【Grasshopper外掛介紹】PUFFERFISH

Don Chen
DayDay space
Published in
4 min readApr 7, 2018

puffer fish 顧名思義叫河豚。

為什麼外掛名稱叫河豚?因為這外掛主要處理兩個幾何造型的漸變續接。就像河豚一樣可以充氣變形,放大縮小。(迷之聲,grasshopper外掛都走動物命名路線)

pufferfish的外掛很簡單,基本上就是串連兩個幾何的型變。

上圖的電池是最基本的功能 Tween Two Curves,電池的相對應介紹如下:

  • Curve A:提供第一個幾何型 (需為曲線外框)
  • Curve B:提供第二個幾何型 (需為曲線外框)
  • Factor:Curve A 預設為0,Curve B 預設為1,需提供0~1的數值作為漸變的數目及區分。
  • Refit:提供漸變演算的圓滑或不圓滑。
  • Sample Point:漸變演算的控制點,越多控制點漸變造型會越平滑。
利用Series電池提供0~1的連續數值

在這個示範裡,我提供的是一個方形到六邊形的漸變。若 Sample Point 的數值為1 (控制點最少),如下圖。

Sample Point = 1

再來我試著把 Sample Point 增加到50(控制點增加),發現會產生中間比較圓滑的漸變造型。

Sample Point = 50

再來是Refit的參數,若打開會如何呢?(False改為True)

Refit = True

漸變的變化會更貼近兩目標外框的狀態,各位可以試著玩玩看。其實Refit和Sample這兩項,比較關乎是漸變造型演算方式的不同,提供使用者各取所好。

文章到此,已經可以簡單了解Pufferfish在漸變造型的應用。但有一個問題,Pufferfish電池Factor項目提供的數值,似乎是以0~1的概念作等分。

那麼如果我要針對漸變等分輸入我要的等分間距(距離及數量),電池應該怎麼寫呢?

我用了一點數學邏輯去解釋。如果Factor需要提供的是0~1的等分,那麼就用代數去回推我們應該提供給Series的數值。

假設我們把Curve A的X軸數值抓5,Curve B的X軸數值抓15。然後需抓間距為2,所以會有5等分。

看代數a、b、c、d的關係,會回推至原本的Series電池

本次示範是進行X軸向的漸變,所以我先抓了Curve A和Curve B的中心點,再抽取其在X軸的數值。

A=8.9,B=323.4,兩者X軸距離為314.4

抓出兩者X軸的間距後,將間距(代數a)除以我要的每個距離(代數b),這裡我除以的間距為25,會得出數量(代數c)。再來,將1除以數量(代數c),就會得出0~1之間應該抓的間距(代數d)。

左下為設定間距=25,再將1/紅線處result,就會得出0~1應得的間距

所以再把數量(代數c)連至電池的Count,0~1的間距(代數d,約等於0.0795)連至電池的Step電池的Start設定為0,這樣就可以順利跑出設定的間距了!

0~1每點間距應為0.0795,比例換算上會等於314每點間距25。故每點的數值為右側Panel綠線標示處

最後Bake出來驗證,X軸向的間距就是25沒問題了!

恩,可以來做隧道了(誤

--

--