Rhino grashopper interactive assets and workflow



Author:

Categories: Tutorials

Tagged with: | | | | |


Pro všechny lidi, kteří rádi modelují v Rhinu, je grashopper skvělý způsob, jak modelování zefektivnit, i když nejde zrovna o organickou, nebo paramaterickou architekturu. GH se dá využít jako knihovna interaktivních prvků, které můžeme najít třeba v BIM programech, stačí mít správný skript a optimalizovaný workflow toho, jak pracujeme mezi Rhinem a GH. Pak je jednoduché vnášet do modelů mnohem větší úroveň detailu, než jakou bychom kdy zvládli, když bychom všechno modelovali ručně.

Proto jsme se ve svém tutoriálu rozhodl tomuto věnovat, postupně ukážu, jak fungují mé skripty na okna, zábradlí, nebo laťování a jak se dá zvýšit úspornost práce pomocí pluginu elefront, který bakenutým objektům dodává další vlastnosti a rozděluje je do vrstev, a pomocí nové funkce v Rhinu 7 – Grasshopper player, která umožní gh scripty spouštět rovnou z příkazového řádku rhina, bez potřeby otevírat rozhraní Grasshopperu.

 

Příklady využití scriptů:  priklad-_zábradlípriklad_okna priklad-_lamely

Všechny skripty jsou založeny na principu vstupních křivek a číselných parametrů, je tedy potřeba kliknout pravým tlačítkem na vstup curve a set one curve a následně dle libosti nastavit slidery číselných parametrů, které script potřebuje. U všech scriptů je na konci řetězce také custom preview, které umožňuje na výslednou geometrii v rhinu koukat, zatímco ladíme parametry pro ideální výsledek.

01_svislé_lamely

 

Script pro svislé lamely:

První vybraný script je script pro rychlou a účinnou tvorbu lamel, který se dá použít i pro složitější tvary svislých fasád. Jak je demonstrováno na obrázku. Tento script nejdříve rozdělí spodní křivku (vstupní křivku A) na daný počet úseků a z bodů rozdělení, pak vytvoří svislice, které jsou ořezány druhou vstupní křivkou (vstupní křivka B). Ořezání je pomocí commandu shatter (rozbití křivky pomocí bodů) následně dispatch, který vybere jenom tu část křivky, která je pro nás důležitá – to jsou vstupní křivky. Následně pak pomocí commandu extrude linear script dodá lamelám hmotu a jejich finální podobu. Vstupní geometrie do tohoto commandu je obdélník zadaný hodnotami rozměr A a rozměr B, tento obdélní je posouván podél osy x, nebo y move commandem, přesně o polovinu svého rozměru, aby byla lamela vytvořena na středu vodící křivky.

GH_lamely

Grasshopper Player:

Na příkladu scriptu lamel budu také demonstrovat možnost použití funkce GHPlayer. Ta nám pomocí nového rozhraní v grashopperu umožní vstupní hodnoty a geometrii vybrat rovnou z rozhraní Rhina a jeho příkazového řádku.

Potřebné GH vstupy jsou pod záložkou utility a a jsou označeny fialovým schématem příkazového řádku. Context bake je potřeba zapojit na konec scriptu do výsledné geometrie, podle toho, co budeme chtít bakovat (upéct). GH commandy, které začínají Get „__“ jsou od toho, aby zastoupily normálně používané vstupní hodnoty, tedy get geometry je použito jako input vstupní křivky a get number je použito jako input nahrazující number slidery.

gh_player_nabídka

Takto tedy vypadá alternativní script, který pak můžeme použít pro grashopper player. Všechny tradiční vstupy zde nahradíme vstupy pro GHplayer.

GH_player_lamely

Ve chvíli, kdy máme takovýto script vytvořený můžeme ho uložit a GH zavřít.

V prostředí rhino napíšeme command „grasshopperplayer“ a v navigátoru souborů vybereme uložený script. Následuje postup, který je uživatelům rhino commandů již známý, jen protože je command složitější rhino vyžaduje několik vstupních hodnot a křivek, tak jak je to nastaveno ve scriptu. Rhino se ptá postupně, tak jak jsou ve scriptu vstupy seřazeny z vrchu dolů.

01 02 03 06

Zadáním poslední vstupní hodnoty pak pomocí enter potvrdíme a výsledná geometrie je tím bakenutá do vrstvy v rhinu, kterou jsme měli zvolenou.

Grasshopper player je možné využívat v jakémkoliv scriptu. Ovšem má nevýhodu menší interaktivity a u složitějších scriptů pak chybí možnost ovládání sliderů s živým náhledem, či možnost výslednou geometrii rozdělit do různých vrstev automaticky. Proto je pro složitější scripty výhodné používat např. plugin Elefront, kterému se budu věnovat u následujících scriptů.

02_okna

Script pro parametrická okna:

Druhý script, kterému se budu věnovat, je script pro rychlé vytváření oken na základě vstupní uzavřené křivky, která definuje vnější hranu okna.

GH_okno

Jednotlivé části scriptu využívají tuto vstupní křivku, kterou odsazují dle zadaných hodnot pro rozměry okna a následně křivky extrudují, čímž je dosaženo výsledné geometrie. Důležitá je také vstupní hodnota Směr (směr ve světě), kterou jsou kladně, nebo záporně přenásobeny vektory, tak abychom dosáhli požadovaného směru, ve kterém bude okno vytvořeno, zde jsou tedy možné hodnoty -1 a 1.

Druhou část scriptu tvoří příkazy z pluginu Ellefront od vývojáře Elevelle, který je možné stáhnou na adrese: https://www.food4rhino.com/en/app/elefront

GH_okno_bake_properities

Pomocí těchto příkazů dokážeme definovat vrstvy, do kterých bude jednotlivá geometrie po „bakenutí“ uložena. A je také možné bakeovat více geometrií najednou, a to pomocí commandu Bake all elefront. Důležité jsou tedy příkazy Define layer, Define object attributes a Bake objects. V případě tohoto scriptu rozděluji geometrii na Rámy oken a Okenní tabule, pro které definuji vrstvy a jejich barvy, které běžně ve svých modelech využívám. Tedy: 3D :: OKNA :: SKLO a 3D :: OKNA :: RÁMY. Dvojitá dvojtečka zde znamená označení podvrstvy v kořenové vrstvě. Po spuštění script tedy vytvoří vrstvy následovně a umístí geometrii do nich.

vrstvy

 

03_zábradlí 04_zábradlí

Script pro parametrické zábradlí:

Poslední script, který parametricky generuje zábradlí, opět funguje na principu vstupní křivky a vstupních hodnot. Otevřená křivka může být polyline, či spline a její vertex points (zlomové body) definují místa, kde budou umístěny sloupky. Zábradlí může být tedy ostře zahýbané, nebo zatočené. Je také možné script použít pro stoupající zábradlí schodišť, stačí vstupní polyline nakreslit stoupající, či klesající, zatočenou či rovnou, tento script by měl být dostatečně flexibilní.

GH_zabradlí

Další důležitou funkcí tohoto scriptu je rozdělení vstupní křivky na rovnoměrné úseky, ale místo toho, aby uživatel definoval počet úseků definuje maximální a minimální rozmezí mezi svislicemi (šprušlemi zábradlí). Tato část scriptu toho dosahuje pomocí zaokrouhlení možných mezních úseků a vstup označený parametr s hodnotou 0 až 1 pak určuje, ke které z mezních hodnot bude finální rozestup svislic blíže.

GH_zabradlí_rozdělení2

Po rozdělení polyliny vytváří script svislice a ve vertexech polyliny vytváří sloupky. Všechny tyčovité prvky zábradlí jsou vytvořeny pomocí pipe commandu, do kterého vstupuje definující křivka a poloměr kulatého průřezu tyče. Madlo a spodní tyč zábradlí vychází z kopií vstupní polyliny, které jsou posunuty do požadované výšky.

GH_zabradlí_profily

To, zda vytvoří script svislice v počátku a na konci křivky se dá vypnout či zapnout pomocí části shiftlist +1 -1, která z dat bodů vyřadí ty první a poslední.

shiftlist

 

Závěr scriptu opět využívá plugin elefront pro rozdělení geometrie madla a zbytku zábradlí do různých vrstev, které ve svých modelech využívám.

GH_zabradlí_elefront

latě

latě_gh_player

OKNO

zábradlí_script