Parametrický stadion



Author:

Categories: Tutorials

Tagged with: | | | | |


Smysl

Cílem této práce bylo vytvořit skript pro snadné vytvoření stadionu. Inspirací pro mě byl již existující skript, kde si pomocí několika vstupních parametrů může uživatel vytvořit rychle a snadno fungující stadion. Mou snahou bylo se tomuto skriptu přiblížit a vyzkoušet a vyřešit co nejelegantněji problematiku týkající se tribun a s nimi spojenou křivkou viditelnosti

Teorie

Křivka viditelnosti

Křivka viditelnosti slouží ke stanovení viditelnosti diváků. Aby byly splněné podmínky dobré viditelnosti, nesmí mezi divákem a pozorovaným objektem stát něco v cestě. Určuje se na základě křivky viditelnosti, která se získává buď geometricky a nebo výpočtem podle vzorečku. V této práci jsem se rozhodl použít geometrický postup.

Geometrický postup

Geometrický postup je postaven na to, že máme bod A, ten představuje v našem případě nejhůře viditelnou část hřiště, kam divák potřebuje vidět. Na tento bod A potřebuje vidět i přes jiné diváky sedící před ním, tudíž bod B necházející se v jeho očích je spojen s bodem A úsečkou, která je zároveň tečnou ke kružnici (hlava diváka před ním), viz. obrázek nahoře.

Tato metoda naráží na jediný problém a tím je, že pro konstrukci tribuny geometricky se potřebujeme odkazovat na předchozí hodnotu, ta je ale proměnná a tím nám vzniká smyčka/loop. Avšak grasshopper neumí pracovat se smyčkami, takže bylo zapotřebí si stáhnout skript který umožní vytvořit smyčku. Na obrázku níže je ukázána fotka smyčky jak funguje ve skriptu. První cyklus jsem vytvořil ručně abych měl jak vstupní, tak i výstupní hodnoty, které jsem pak vložil jako reference do smyčky, ta pak jen postup opakuje tolikrát, kolikrát je přikázáno.

Skript

Můj stadion se skládá z několika prvků:

Hřiště + Dráha

Rozhodl jsem se na začátek pracovat pouze se hřištěm ve tvaru čtverce, abych nekomplikoval postupy další proměnou, která pak bude vytvářet problémy dál. Ačkoliv zde vidím potenciál pro větší variabilitu, neboť větší hřiště mají většinou běžeckou dráhu a ta má tvar oválu.

Pro konstrukci čtverce/hřiště jsem zkoušel několik metod, které grasshopper nabízí, ale nakonec jsem skončil u tvorbě skrz 3 body, neboť logicky dává největší smysl pro další práci.

Prostor okolo hřiště jsem vytvářel na přes scale, ale přes posun bodů, protože takto mohu přesně zadat rozměr, který chci aby prostor měl. Není to úplně nejšikovnější postup ale pro účely této práci je dostačující a nejjednoduší.

Tribuna

Tribuna je v principu po smyčce hotová, ze smyčky jsou dostal křivky ( v tomto případě čtyřúhelníky) které představují, kde se mají nacházet oči diváku, udělal jsem tedy pouze poson křivek na místo, kde bude divák sedět.

Pak je už zapotřebí vytvořit nosnou konstrukci, to je spíše práce s daty,respektive se seznamy. Snaha byla o to, docílit co největší flexibility, což znamená že téměř veškerá data jsou proměnná a nová data musí vycházet a nebo se odkazovat na již existující.

Konstrukce hmot je rozdělena na několik částí, kdy jsem řešil odděleně plochy vertikální a horizontální viz. obrázek 2 , poté jsem řešil nejvyšší horizontální desku zvlášť neboť má rozměry dané nosnými sloupy, které se zde budou nacházet a které pak ponesou střešní konstrukci.

Tato část skriptu funguje tak, že jsem vzal křivky a posunul je o n+1 nebo n-1, poté jsem posunul pořadí o jednu méně nebo více, podle situace. Pak jsem musel osekat krajní hodnotu, opět buď první nebo poslední dle situace. Vznikly mi pak dvojice křivek ze kterých jsem vytvořil plochy. Musel jsem si pak akorát pohlídat aby se vytvořily správně seznamy, nekdě bylo potřeba použít příkaz flip pro správné uspořádání.

Vnější plášť

V této fázi je stadion z principu hotový ale je potřeba mu dodat potřebné hmoty, aby fungoval i po statické stránce. Zde jsou ještě veliké rezervy, neboť jsem sloupy, střechu a vnější zeď vytvořil jednoduše aby tam tyto prvky prostě byly, takže pokud bych někde začal s úpravami bylo by to například lepší dělení sloupů podle nějakého modulu, nebo střecha, aby zde nebyla pouze deska ale i nosná konstrukce.

Sloupy jsou po křivce vytvořeny po dané vzdálenosti, ale určitě by bylo lepší lépe vytvořit modul zde

Střecha kopíruje plochu tribuny, ale dá se nastavit jednoduše, aby zde byly překryvy pro zlepšení ochrany před deštěm.

Výsledek

Krátká ukázka možnostní skriptu a nastavení stadionu

Jsou zde ukázány pouze základní parametry, skript je vytvořen tak aby se dalo nastavit téměř vše.

Závěr

Cílem tohoto projektu pro mě nebylo ani tak vytvořit krásný stadion, ale spíše si vyzkoušet práci z grasshopperem a vytvořit něco co má funkční strukturu a dá se na tom případně do budoucná dále pracovat.

Za největší osobní úspěch beru optimalizaci, která se mi za mě celkem povedla a ztrávil jsem na ní nejvíce času ze všeho. Během práce jsem totiž zjistil, co to obnáší pracovat pouze s proměnnými a jak je to někdy otravné a bez předem promyšlené struktury skript rychle naboptná.

Co mě mrzí, že jsem neudělal byly místa na sezení, ale aby to fungovalo dle mých představ, tak bych musel upravit základní křivku, podle které se stadion vytváří a tudíž bych musel opět předělat celý skript. Takže z toho už sešlo, na druhou stranu by pak skript mohl fungovat a na pomoc s dimenzováním míst a řešením cenových hladin dle viditelnosti

Zdroje

anemone – pro vytváření smyček

https://www.food4rhino.com/en/app/anemone