Osnove primjene programa Rhinoceros 3d i Grasshopper u povezivanju matematike, geometrije i arhitekture
Milena Stavrić, TU Graz
Albert Wiltsche, TU Graz
Mirela Katić Žlepalo, TVZ
Na Graditeljskom odjelu Tehničkog veleučilišta u Zagrebu održana je u veljači 2017. radionica pod nazivom „Parametarsko modeliranje i digitalna proizvodnja“. Voditelji radionice su bili profesori s Tehničkog sveučilišta u Grazu, Milena Stavrić i Albert Wiltsche. Sudionici na radionici bili su većinom studenti Graditeljskog odjela TVZ-a, a pridružilo se i po nekoliko studenata s Fakulteta tehničkih nauka iz Novog Sada te Arhitektonsko-građevinsko-geodetskog fakulteta iz Banja Luke.
Tema radionice je bila posvećena objektima velike katnosti pri čemu su studenti imali priliku dizajnirati svoj objekt i napraviti ga u odgovarajućim omjerima.
Modeli su se na radionici izrađivali koristeći program Rhinoceros 3D (Rhino) te njegov besplatni “plug-in“ Grasshopper. Zatim su se modeli rezali od kartona debljine 1.7 mm pomoću laserskog rezača te spajali i lijepili u konačnu formu. Izrada modela – maketa posebno se svidjela studentima. Koliko su i danas, bez obzira na CAD programe, digitalnu tehnologiju i virtualne modele važni analogni modeli, tj. makete, najbolje je opisano u [3].
Rhinoceros 3D (Rhino) je CAD program za računalnu 3D grafiku kojemu su u osnovi NURBS matematički modeli, a prednost su mu matematički precizni prikazi krivulja i ploha. Često se koristi u raznim granama industrije, poput arhitekture, industrijskog dizajna (auto-industrija, dizajn brodova i slično), kao i dizajna nakita. Također se koristi i u nastavi, prvenstveno geometrijskih predmeta.
Grasshopper je grafički algoritamski editor koji koristi asocijativno i generativno modeliranje u procesu generiranja virtualnih modela. On je direktno povezan s 3D editorom Rhinocerosa i nudi velik broj alata, kako za generiranje, tako i za transformaciju, analizu i obradu geometrijskih modela. Modeli koji su generirani u Grasshopperu su proizvod algoritamskih operacija koje su objedinjene u okviru određenih alata. Ovakav pristup modeliranju omogućava vrlo intuitivno korištenje softvera (za sve koji imaju solidnu osnovu iz geometrije i matematike), povezivanje s matematičkim funkcijama i definiranje kompleksnih modela. Grasshopper se može besplatno preuzeti na www.grasshopper3d.com.
U ovom članku pokazat ćemo osnove parametarskog modeliranja koje smo koristili na samom početku radionice. Sa studentima smo napravili osnovnu geometrijsku strukturu visoke zgrade nalik na onu na Slici 1. Inspiraciju za daljnje radionice možemo pronaći u [2].
Slika 1: Evolution tower, Moskva, 2016.
Uz pomoć parametarskog modela moguće je promijeniti osnovnu strukturu, tj. izmijeniti mnogobrojne parametre i na efikasan način ispitati različite dizajnerske mogućnosti (Slika 2), odnosno „algoritamsko dizajniranje omogućava korisnicima da dizajniraju čitav proces, a ne jedan objekt“ [4].
Slika 2: Parametarski model u Grasshopperu
Radna površina u Rhinu je podijeljena na četiri dijela – tlocrt (Top), nacrt (Front), bokocrt (Right) i perspektiva (Perspective). Ova radna površina može se po potrebi promijeniti, a funkcije za mijenjanje se nalaze u okviru padajućeg menija View - Viewport layout. Osnovno manipuliranje pogledima (zoom, pan,..) je slično ostalim CAD programima. Kako bismo izabrali i povećali samo jedan prikaz, dva puta kliknemo mišem na naziv pogleda. U komandnu liniju upišemo Grasshopper kako bismo ga pokrenuli (Slika 3).
Kako bismo lakše pratili imena naredbi i njihovih opcija u Grasshopperu, izaberemo Draw Full Names na padajućem izborniku Display (Slika 4).
Pri dizajnu našeg tornja krećemo od definiranja osnove pomoću jedne krivulje - u našem slučaju elipse. Da bismo unijeli naredbu u Grasshopperu, dva puta kliknemo mišem na njegovu radnu površinu i počnemo pisati naredbu, npr. na Slici 5 – Curve.
Naredba Curve je narančasta jer u ovom trenutku nije dobro definirana. Da bismo joj pridijelili neku krivulju, kliknemo na nju desnom tipkom miša i odaberemo opciju Set one curve (Slika 6). Zatim u Rhinu odaberemo neku krivulju koju smo već ranije nacrtali. Krivulju možemo definirati i unutar samog Grasshoppera, npr. naredbom Ellipse koja nam omogućava da definiramo elipsu izborom duljina velike i male osi. Ovdje je korištena elipsa koja je prethodno nacrtana u Rhinu, pri čemu je velika poluos a = 20, a mala poluos b = 10.
Postoji pet osnovnih boja koje se pojavljuju kod komponenti, a to su svijetlo siva, tamno siva, narančasta, crvena i izbljedjela siva boja. Svijetlo siva označava komponentu koja je ispravna. Tamno siva označava komponentu koja je skrivena s editora. Crvena boja označava da je s komponentom povezana pogrešna vrsta ulaznog podatka. Narančasta boja označava da ne postoji veza s komponentom. Komanda koja izgleda izbljedjelo označava da ta komanda nije aktivirana za vršenje operacije.
Slika 6. Pridjeljivanje krivulje (elipse) iz Rhina naredbi Curve u Grasshopperu
Izabranu krivulju zatim želimo pomaknuti u smjeru z osi. Pri tome osnovna krivulja ostaje na istom položaju, a nova krivulja će biti generirana na novom položaju. Razmak između te dvije krivulje možemo zamisliti kao visinu između dva kata našeg objekta. Dva puta kliknemo na radnu površinu Grasshoppera i upišemo Move te od ponuđenih naredbi izaberemo odgovarajuću. Naredba Move zapravo radi translaciju. Lijevom tipkom miša povežemo desni kraj naredbe Curve s opcijom Geometry naredbe Move. Veza između dvije naredbe zove se wire, dakle možemo prevesti sa žica (Slika 7).
S lijeve strane naredbi u Grasshopperu su ulazni podaci naredbe, a s desne izlazni. Tako je kod naredbe Move s desne strane opcija Geometry kojom definiramo što želimo translatirati i opcija Motion kojom je definiran vektor translacije. Kad miša postavimo na određenu opciju naredbe, dobivamo i objašnjenje vezano za tu opciju, kako je prikazano na Slici 8. Vidimo da je za opciju Motion unaprijed definirana translacija za vektor (0,0,10) u smjeru z osi.
Slika 8. Objašnjenje opcije Motion naredbe Move
Na taj način translatirali smo početnu krivulju za zadani vektor. Međutim, želimo tu krivulju translatirati više puta jer želimo napraviti objekt veće katnosti. Za višestruko translatiranje je potrebno definirati više različitih vektora translacije. Najjednostavniji način je da definiramo uzlazni niz brojeva koji će nam označavati udaljenosti od početne krivulje, tj. visine na kojima se nalaze katovi. Niz brojeva se definira pomoću naredbe Series (Slika 9).
Slika 9. Definiranje niza brojeva - Series
Naredba Series ima tri ulazna podatka: Start, Step i Count, dakle definiramo početak niza, korak između dva člana niza i broj članova niza. Korak i broj članova želimo definirati pomoću parametara, kako bismo ih naknadno mogli mijenjati. U tu svrhu koristimo tzv. Number Slider koji možemo izabrati s početnog izbornika (Slika 10) ili na taj način da na radni list u Grasshopperu kliknemo mišem dva puta te upišemo bilo koji pozitivan broj. Number Slider možemo mijenjati tako da na njega dva puta kliknemo mišem i u pripadajućem izborniku (Slika 11) izaberemo njegovu donju i gornju granicu, želimo li prirodne ili realne brojeve, samo parne ili samo neparne i slično.
Slika 10. Number Slider možemo izabrati s početnog menija
Slika 11. Opcije za Number Slider
Želimo ponoviti translaciju krivulje u smjeru osi z pa kliknemo dva puta mišem na radnu površinu Grasshoppera, upišemo z te od ponuđenih naredbi izaberemo Unit Z (Slika 12).
Slika 12. Jedinični vektor u smjeru osi z
Zatim spojimo izlaz naredbe Series s ulazom naredbe Unit Z, a izlaz naredbe Unit Z s ulazom Motion naredbe Move (Slika 13). Vidimo u Rhinu da se početna krivulja translatirala 20 puta koliko smo zadali pomoću Number Slidera za opciju Count naredbe Series, i to s korakom 21 kojeg smo zadali pomoću Number Slidera za opciju Step naredbe Series.
Kako bismo napravili rotirajući toranj, neophodno je svaku krivulju rotirati za određeni kut rotacije. Želimo rotirati generirane translatirane krivulje što ćemo učiniti koristeći naredbu Rotate kojoj je jedan od ulaznih podataka Angle, tj. kut za koji želimo rotirati. Taj ulazni podatak koristi radijane pa ukoliko želimo kut zadati u stupnjevima, koristimo naredbu Radians koja će pomoću još jednog Number Slidera preračunati kut u radijane (Slika 14).
Slika 14. Rotacija i preračunavanja mjere kuta iz stupnjeva u radijane
Ako sada spojimo izlaz Geometry naredbe Move s ulazom Geometry naredbe Rotate, u Rhinu možemo primijetiti da je svaka elipsa zarotirana za isti kut, ovdje 5o (Slika 15).
Slika 15. Sve elipse rotirane su za isti kut
Kako bismo postigli da se svaka elipsa zarotira za sve veći kut, ponovo koristimo Series kojemu je ulaz Count jednak onome koji je bio kod niza koji smo koristili za naredbu Move, a ulaz Step povežemo s izlazom naredbe Radians (Slika 14). Izlaz naredbe Series povežemo s ulazom Angle naredbe Rotate. Na Slici 16, prva elipsa zarotirana je za 5◦, druga za 10◦, treća za 15◦ itd., a to se najbolje može vidjeti u Top pogledu u Rhinu (tlocrt).
Slika 16. Prikaz rotiranih elipsi u tlocrtu
Kako u Rhinu ne bismo vidjeli i translatirane i zarotirane elipse, kliknemo na naredbu Move desnom tipkom miša i isključimo Preview (Slika 17). Naredba će postati tamno siva. Sada se u Rhinu ne vide translatirane elipse nego samo one zarotirane.
Slika 17. Isključivanje pregleda generiranih translatiranih elipsi
Dizajn našeg objekta sada lako dotjeravamo promjenom svih parametara koje smo zadali koristeći Number Slidere (Slika 18).
Slika 18. Parametrizirani model
Zatim ćemo rotirane krivulje pretvoriti u plohu koristeći naredbu Surface te svakom katu dati određenu debljinu koristeći naredbu Extrude. Debljinu smo zadali ponovo u smjeru osi z (ovdje 3), kako je prikazano na Slici 19. Eventualno možemo uz pomoć Loft funkcije napraviti fasadu našeg objekta.
Slika 19. Debljinu dajemo naredbom Extrude
Cijelu našu građevinu možemo vrlo jednostavno promijeniti tako da za početnu krivulju pomoću Set one Curve izaberemo neku drugu, recimo peterokut (Slika 20).
Slika 20. Jednostavna promjena modela odabirom druge početne krivulje
U ovom članku pokazali smo samo kako se dobiju katovi. Dalje bi slijedilo učvršćivanje konstrukcije, no to je već tema za neki drugi članak.
Na radionici su se zatim svi dobiveni dijelovi pripremali za rezanje laserskim rezačem te na kraju spajali. Dobivene objekte možete vidjeti na web stranici:
https://iam.tugraz.at/en/2017/03/workshop-zagreb-2017/
Zaključak
Pomoću programa Rhino i Grasshopper, moguće je studentima (ili učenicima) vrlo brzo pojasniti i zorno prikazati osnovne pojmove poput translacije i rotacije. Studenti vrlo brzo svladavaju osnovne naredbe, a dalje je dosta toga prepušteno njihovoj vlastitoj kreativnosti i zainteresiranosti. Naredbe koje su korištene na opisanoj radionici i pokazane u ovom radu su vrlo jednostavne, no to je samo vrlo mali dio mogućnosti koje nude ovi programi. Između ostalog, pomoću Rhina i Grasshoppera, moguće je podučavati nacrtnu geometriju i osnove diferencijalne geometrije. Primjer kako je Rhino već uveden u nastavu na Građevinskom fakultetu Sveučilišta u Zagrebu opisan je u [1]. Od akademske godine 2017/18. su Rhino i Grasshopper uvedeni u nastavu predmeta Parametarsko modeliranje 1 i 2 na Graditeljskom odjelu Tehničkog veleučilišta u Zagrebu.
Literatura:
[1] Sonja Gorjanc, Helena Halas, Ema Jurkin: Introducing 3D Modeling into Geometry Education at Two Technical Faculties at the University of Zagreb, Proceedings of the 16th International Conference on Geometry and Graphics, Innsbruck, 2014.
[2] Jennifer Hudson: Process: 50 Product Designs from Concept to Manufacture, Laurence King Publishing, 2nd edition, 2011.
[3] Milena Stavrić, Predrag Šiđanin, Bojan Tepavčević: Architectural Scale Models in the Digital Age - design, representation and manufacturing, Springer Wien New York, 2013.
[4] Arturo Tedeschi: AAD – Algorithms Aided Design, Le Penseur Publisher, Italy, 2014.