WETENSCHAPPEN Oefeningen LES 1 - Baksteen in Grasshopper Matthias Dziwak Tobias Labarque Rinus Roelofs
LES 1 Deel 1 Inleiding Rhinoceros en Grasshopper Deel 2 De bouw van vier bakstenen muren in Grasshopper Pagina 2 van 24
1. Rhino 5 en Grasshopper installeren - Op Windows : Gratis demoversie van Rhino 5 te downloaden via https://www.rhino3d.com/download/rhino/5/latest Grasshopper is gratis te downloaden via http://www.grasshopper3d.com/page/download-1 - Op Mac OSX : Grasshopper werkt niet op Mac OSX. Je kan wel virtueel Windows installeren op je Mac en vervolgens Rhino en Grasshopper installeren op dit virtuele Windows platform. Eerst VirtualBox installeren op je Mac. Deze software is gratis te downloaden via https://www.virtualbox.org/ Vervolgens kan je Windows installeren op het virtuele platform dat je kan creëren met VirtualBox. Uiteraard heb je wel Windows installatiesoftware nodig om dit te kunnen installeren. Tot slot installeer je Rhino 5 en Grasshopper op je virtuele Windows volgens bovenstaande methode. - Je kan de oefeningen voor dit vak perfect maken op de computers op de school. Een eigen computer is dus geen vereiste. - Functies die je nodig hebt staan genoteerd als (bijv) Params > Input > Number Slider. Je kan de functie dus vinden via de locatie in de functiefolders bovenaan het scherm. Je kan ook dubbelklikken in het werkveld van Grasshopper en direct de vet gedrukte naam intypen. - Op het einde van dit document staan nog een aantal tips, tricks en vaak voorkomende fouten. Lees dat eerst na alvorens te starten. Pagina 3 van 24
2. Rhino en Grasshopper openen - Open Rhino, je krijgt een startscherm gelijkaardig aan afbeelding 1 te zien. Afbeelding 1: Startscherm Rhino 5. Pagina 4 van 24
- Via de balk bovenaan, de command box, kan je commando s geven aan Rhino. Typ Grasshopper en druk enter om Grasshopper te openen. Je krijgt een startscherm gelijkaardig aan afbeelding 2 te zien. Afbeelding 2: Startscherm Grasshopper. Pagina 5 van 24
3. De bouw van vier bakstenen muren in Rhino 5 met behulp van Grasshopper 3.1 STAP 1 - De basis baksteen maken De basis baksteen is een balk gedefinieerd door twee punten A en B, respectievelijk gedefinieerd door drie coördinaten (x A,y A,z A ) en (x B,y B,z B ). Punt A is gelegen in de oorsprong en er geldt dus (x A,y A,z A ) = (0,0,0). Punt B zal de afmetingen van de baksteen bepalen en bijgevolg geldt er (x B,y B,z B ) = (lengte baksteen, breedte baksteen, hoogte baksteen). - Punt A construeren : Vector > Construct Point ; door niets toe te wijzen aan de parameters van dit object behouden zij hun initiële waarde (dit is 0) en geldt er dus (x A,y A,z A ) = (0,0,0). - Punt B construeren : Vector > Construct Point ; Punt B bepaalt de afmetingen van de baksteen en dus geldt er (x B,y B,z B ) = (lengte baksteen, breedte baksteen, hoogte baksteen). De afmetingen van de baksteen, en dus (x B,y B,z B ), dienen variabel te zijn. Dit wordt mogelijk gemaakt door aan elke input van punt B een Number Slider toe te wijzen; Params > Input > Number Slider. Dubbelklik op de number slider om waarden in te stellen (rounding : integer numbers en numeric domain tsn 1 en 50). Pagina 6 van 24
- Baksteen definiëren : Tot slot wordt een balk geconstrueerd door het object Box 2Pt te importeren in het werkveld (Surface > Primitive > Box 2Pt), en de output van punt A en punt B te linken respectievelijk aan input A en input B van deze box. Pagina 7 van 24
3.2 STAP 2 - De eerste laag stenen aanleggen De eerste laag stenen wordt aangelegd door een lijnvormige rij te vormen van de basis baksteen. Dit gebeurt door de Linear Array functie toe te passen op de basis baksteen. - Linear Array functie invoegen : Transform > Array > Linear Array - Nu dient de juiste input aan de Linear Array functie gegeven te worden : *Geometry (G) : de geometrie waarvan een rij dient gevormd te worden. In dit geval is dat de basis baksteen > output B van Box linken aan input G van de Linear Array functie. Pagina 8 van 24
* Direction (D) : vector die enerzijds de richting en zin van de rij bepaalt en anderzijds de tussenafstand tussen de verschillende geometriën in de rij. De richting en zin van deze vector is volgens de positieve x-as (daarom maken we gebruik van Unit X, de eenheidsvector langs de positieve x-as). De grootte van deze vector is de som (Maths > + Operator (Addition)) van de lengte van de baksteen en de dikte van de voeg tussen de verschillende bakstenen. De voegdikte dient variabel te zijn, daarom opnieuw een Number Slider. Waarden hiervan instellen : rounding = floating point numbers met 1 getal na de komma en numeric domain = tsn 1 en 5. Pagina 9 van 24
* Count (N) : aantal bakstenen per rij. Maak dit aantal variabel door hier een Number Slider (enkel gehele getallen!) aan toe te wijzen. - Dit alles samen geeft volgend resultaat in Grasshopper : Pagina 10 van 24
3.3 STAP 3 - De tweede laag stenen aanleggen De tweede laag stenen is quasi identiek aan de eerste laag, behalve dat deze laag over een bepaalde afstand langs de x- en z-as is verplaatst. Deze verplaatsing wordt gegenereerd door de Move functie. - Move functie invoegen : Transform > Euclidean > Move * Geometry (G) : de te verplaatsen geometrie = eerste laag bakstenen = output G van ArrLinear. Pagina 11 van 24
*Motion (T) : de translatievector volgens dewelke de rij bakstenen wordt verplaatst. Deze translatievector T bestaat uit twee componenten. Eén component T x voor de translatie langs de x-as en één component T z voor de translatie langs de z-as. Translatievector T x volgens x-as : Vector > Vector > Unit X. Lengte van deze vector is de som van baksteenbreedte en voegdikte. Pagina 12 van 24
- Translatievector T z volgens z-as : Vector > Vector > Unit Z. Lengte van deze vector is de som van baksteenhoogte en voegdikte. Pagina 13 van 24
- Translatievector T = T x + T z - Onderstaande code in Grasshopper geeft volgend resultaat in Rhino : Pagina 14 van 24
Pagina 15 van 24
Pagina 16 van 24
3.4 STAP 4 - De volgende lagen stenen aanleggen Alle hierboven gelegen lagen worden gevormd door een lijnvormige rij van de eerste twee lagen bakstenen. Bijgevolg gebruiken we nogmaals de ArrLinear functie. - Linear Array functie invoegen : Transform > Array > Linear Array - Nu dient de juiste input aan de ArrLinear functie gegeven te worden : * Geometry (G) : de geometrie waarvan een rij dient gevormd te worden. In dit geval zijn dat de eerste twee lagen bakstenen. Om twee outputs aan input G toe te wijzen dien je Shift ingedrukt te houden. Pagina 17 van 24
* Direction (D) : vector die enerzijds de richting en zin van de rij bepaalt en anderzijds de tussenafstand tussen de verschillende geometriën in de rij. De richting en zin van deze vector is volgens de positieve z-as, de grootte van deze vector is tweemaal de som van de hoogte van de baksteen en de voegdikte. Vermenigvuldigen met een vaste waarde : Maths > x Operator (Multiplication) Getal 2 kan je op verschillende manieren invoeren : Integer plaatsen, rechtermuisknop op blokje en 2 bij Set Integer invullen óf Post-itje met getal 2 invoegen (Panel) óf getal invoegen met Number óf (zoals hieronder) direct in het Multiplication blokje, rechterklik op argument B, set data item en daar de waarde ingeven. Pagina 18 van 24
* Count (N) : aantal lagen per rij. Maak dit aantal variabel door hier een Number Slider aan toe te wijzen (met enkel gehele getallen!) Aangezien er een rij wordt gevormd van telkens twee lagen, zal de werkelijke muurhoogte het dubbele bedragen van de waarde die voor N wordt ingegeven. 3.5 STAP 5 - Vier identieke muren vormen Pagina 19 van 24
Op het einde van stap 4 wordt een bakstenen muur bekomen. Nu willen we op basis van deze ene muur vier identieke muren creëren die een gesloten vierkant vormen. Dit gebeurt met behulp van de Polar Array functie. Deze functie creëert een cirkelvormige rij. - Polar Array functie invoegen : Transform > Array > Polar Array Pagina 20 van 24
- Nu dient de juiste input aan de ArrPolar functie gegeven te worden : * Geometry (G) : de geometrie waarvan een cirkelvormige rij dient gevormd te worden, dit is de muur. * Plane (P) : het middelpunt waarrond het object zal geroteerd worden. Het middelpunt van deze cirkel ligt in het middelpunt van de vierkant gevormd door de vier identieke muren. De coördinaten zijn dus (lengte muur/2, lengte muur/2, 0). Lengte muur = ((baksteenlengte+voegbreedte) x aantal bakstenen) + baksteensdiepte. Bepaal zelf deze coördinaten en wijs ze toe aan een nieuw punt (zie stap 1 om een punt te maken) met behulp van de Addition, Multiplication en Division functies. * Count (N) : aantal elementen in de rij. Zet deze waarde vast op 4, hier zijn verschillende mogelijkheden voor. * Angle (A) : de hoek die wordt gevuld door de cirkelvormige rij. Deze staat standaard op 2*Pi dus hier hoef je niets aan te veranderen. Pagina 21 van 24
3.6 STAP 6 - Afwerken - Tot slot : Bake (rechtsklikken op het laatste object in de rij) je tekening vanuit Grasshopper en plaats je naam tussen de voegen. - Druk zowel je tekening als je code (zoals 2 beelden hieronder) af en breng deze mee naar de volgende. Noteer je Naam & voornaam duidelijk op beide documenten. Pagina 22 van 24
Pagina 23 van 24
3.7 TIPS, TRICKS & VAAK VOORKOMENDE FOUTEN - Zoeken naar functies binnen GrassHopper > Dubbelklikken in het werkscherm - Lijn verwijderen > CTRL ingedrukt houden en verbinding overtrekken. - Meerdere lijnen aan een punt verbinden > SHIFT ingedrukt houden en verbinding trekken. - Sliders kan copy-pasten (andere blokjes ook). Dat kan je veel werk besparen bij het invullen van de settings. - In- en uitzommen in scherm van Rhino en Grasshopper doe je met scrollwiel. Pannen doe in Rhino met rechtermuisknop én shift ingedrukt. In Grasshopper met de rechtermuisknop alleen. - Als je een getal ingeeft met Panel, let er dan op dat je enkel dat getal in het tekstveld staat en geen spaties of enters. - Bij stap 4 gebeurt de Linear Array in de hoogte. Je moet dus Unit Z gebruiken. - De verschuiving van de 2de rij ten opzichte van de eerste is niet de helft van een steen+voeg, maar de diepte van de steen. Opdat de 4 muren op het einde mooi in elkaar zouden passen. Let hierop bij stap 3 en bij stap 5. Pagina 24 van 24