130812 PDF Schreibarbeit
-
Upload
ahmedhossam -
Category
Documents
-
view
107 -
download
1
Transcript of 130812 PDF Schreibarbeit
Bachelor Thesis in der Fachrichtung Baukonstruktion:
Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie
Lehrstuhl:
Technische Universität München Lehrstuhl für Holzbau und Baukonstruktion Univ.-Prof. Dr.-Ing. Stefan Winter
Betreuer:
Dipl.-Ing. Klaudius Henke
Verfasser:
Ahmed Hossam
eingereicht am:
14. August 2013
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Kurzfassung
Kurzfassung
In der vorliegenden Bachelorarbeit geht es um die Parametrisierung und die Animation
ausgewählter Aufgaben der Darstellenden Geometrie. Diese werden hauptsächlich mithilfe des
Computerprogramms „Rhinoceros“ realisiert, das wiederum weitere Zusatzmodule, genannt
„Plugins“, besitzt. Ein gängiges solches Zusatzmodul ist das Programm „Grashopper“, das
wiederrum Unterprogramme enthält, so genannte „Addons“. Die Programme „Rhinoceros“ und
„Grashopper“ dienen vor allem zur Realisierung von 2D- und 3D-Modellen.
Das Programm „Rhinoceros“, kurz „Rhino“, kommt sowohl im Ingenieurwesen wie auch im
Architekturbereich zum Einsatz, vor allem aber in den Bereichen Produkt- und Automobildesign.
Das „Rhino“-Entwicklungsprojekt nahm vor ungefähr 20 Jahren seinen Anfang, um Schiffsdesigner
mit Werkzeugen für die Erzeugung von Computermodellen auszustatten, die dazu verwendet
werden konnten, die Fertigungsgeräte in den Schiffswerften digital zu steuern. „Rhinoceros“ ist
aber auch deshalb so beliebt, weil es verschiedenste Funktionen für den Entwurf, die
Modellierung, die Analyse und die Abwicklung von Klein- und Großprojekten zur Verfügung stellt.
Ein weiterer Grund für die häufige Verwendung von „Rhinoceros“ besteht aber auch darin, dass
das Plugin „Grashopper“ zusätzlich eingesetzt werden kann. Dieses ist eine visuelle
Programmiersprache, die von David Rutten bei Robert & McNeel Associates in den USA entwickelt
wurde. Die erste Version von „Grasshopper“ hieß „Explicit History“ und wurde 2007 veröffentlicht.
Das Programm bietet als Erweiterung von „Rhinoceros“ einen sehr anschaulichen algorithmischen
und parametrischen Zugang zur Geometrie, wodurch es möglich wird, komplexe Modelle zu
erstellen, ohne sich Programmierkenntnisse aneignen zu müssen. Es ist möglich, die in
„Grasshopper“ erzeugten geometrischen Objekte innerhalb dieses Programmes so zu kombinieren
und zu gestalten, bis sehr komplexe Gebilde realisiert werden. Dies wird durch die parametrische
Darstellung von Kurven, Flächen und Körpern möglich gemacht. „Grasshopper“ arbeitet
hauptsächlich mit Listen und Baumstrukturen, in denen diese geometrischen Objekte gespeichert,
sortiert und abgerufen werden können.
Das Ziel dieser Bachelorarbeit ist, für eine gegebene geometrische Konstruktion einen geeigneten
Algorithmus zu finden, der alle geometrischen Bedingungen erfüllt. Ein Algorithmus besteht aus
einer Reihenfolge kleiner mathematischer Operationen, die zusammengefügt den gesamten
Algorithmus bilden. Nachdem man einen visuellen Algorithmus in „Grasshopper“ entwickelt hat,
kann man sehr leicht GIF-Animationen oder Videos erstellen. Diese sind sehr hilfreich, zum Bei-
spiel in der wissenschaftlichen Lehrtätigkeit, denn dadurch wird ein besseres Verständnis für die
geometrischen Konstruktionsabläufe erzielt. So können in der Darstellenden Geometrie drei-
dimensionale Objekte in der Zeichenebene visualisiert werden
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Inhaltsverzeichnis
Inhaltsverzeichnis
1 Einleitung.................................................................................................................................. 5
2 Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“ ................................... 6
2.1 Die Erzeugung eines Punktes mithilfe von „Grasshopper“ ............................................... 9
2.2 Komponenten für die Erzeugung von Kurven innerhalb von „Grasshopper“ .................. 18
2.3 Komponenten für die Analyse und Bearbeitung von Kurven in „Grasshopper“............... 22
2.4 Komponenten für die Bearbeitung von Listen in „Grasshopper“ ..................................... 25
2.5 Mathematisches Modell für die Schwingung einer elastischen Feder in „Grasshopper“ 29
2.6 Grundlegende mathematische und mathematisch logische Komponenten und die
Komponente Path Mapper (Sets > Tree > Path Mapper) ........................................................ 33
2.7 Beschreibung weiterführender Optionen in „Rhinoceros“ und „Grasshopper“ ................ 39
2.7.1 Optionen zum Parameter Number Slider ........................................................... 39
2.7.2 Punktsymbole in „Grasshopper“......................................................................... 40
2.7.3 Hintergrundoptionen in „Rhinoceros“ ................................................................. 40
2.7.4 Textkomponenten in „Grasshopper“ .................................................................. 42
3 Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden
Geometrie ..................................................................................................................................... 45
3.1 Problemstellung: Ermittlung der wahren Länge einer gegebenen Raumstrecke [AB] in
Zweitafelprojektion .................................................................................................................. 45
3.1.1 Lösung des Problems mithilfe von „Rhinoceros“ und „Grasshopper“ ................. 45
3.1.2 Projektion der Raumgeometrie in die x, y – Ebene (Grundrissebene) und in die y,
z – Ebene (Aufrissebene), Kurvenbearbeitung und Beschriftung ................................... 52
3.1.3 Animation mit GIMP ........................................................................................... 62
3.2 Die Umsetzung der geometrischen Konstruktion der wahren Schnittellipse eines
Kegelschnittes in „Grasshopper“ ............................................................................................. 64
3.2.1 Eingabe des Kreiskegels im Grund- und Aufriss in „Grasshopper“ ..................... 65
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Inhaltsverzeichnis
3.2.2 Eingabe der Schnittebene E im Grund- und Aufriss ........................................... 71
3.2.3 Eingabe des mittleren Schichtkreises km ............................................................ 75
3.2.4 Eingabe der Grundrissellipse ............................................................................. 77
3.2.5 Eingabe der wahren Schnittellipse ..................................................................... 79
3.2.6 Die Animation des elliptischen Kegelschnittes ................................................... 81
4 Fazit ....................................................................................................................................... 82
5 Literaturverzeichnis ................................................................................................................ 83
6 Abbildungsverzeichnis ............................................................................................................ 84
7 Tabellenverzeichnis ................................................................................................................ 88
8 Anhang ................................................................................................................................... 89
Lehrstuhl für Holzbau und Baukonstruktion
Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Einleitung
1 Einleitung
Die Versuche des Menschen, Gegenstände seiner Umgebung durch Bilder in einer Zeichenebene
wiederzugeben, sind so alt wie überhaupt die Kultur. Mit der fortschreitenden Entwicklung der
Baukunst entstand das Bedürfnis und die Notwendigkeit, die Einzelteile eines Bauwerkes im
Voraus durch Zeichnungen wiederzugeben.
Die Darstellende Geometrie ist ein Teilbereich der Geometrie, die Hilfsmittel in Form von
praktischen geometrischen Konstruktionen bereitstellt, um dreidimensionale Objekte in der
Zeichenebene exakt festzulegen (vgl. Titelbild).
Sie ist eine angewandte mathematische Disziplin. Von ihr wird sowohl in der Technik und in der
Architektur als auch in der Malerei und in der Kunst Gebrauch gemacht. Das Verfahren des
Projizierens spielt in ihr eine große Rolle.
Statt der früheren Zeichengeräte Lineal und Zirkel finden heutzutage CAD-Programme
Verwendung. Man benötigt dazu Computer, Internetverbindung und geeignete
Anwenderprogramme. Die Geometrie war und ist die Weltsprache der Ingenieure.
Im Folgenden werden ausgewählte geometrische Konstruktionen mithilfe von „Rhinoceros“ und
„Grasshopper“ parametrisiert und animiert. Für die jeweilige geometrische Aufgabe wird Schritt für
Schritt gezeigt, wie sie in „Grasshopper“ eingegeben wird. Auf die mathematischen und
parametrischen Zusammenhänge wird besonders eingegangen.
Das Wissen über bestimmte Teilgebiete der Mathematik, wie die analytische Geometrie
(Vektorgeometrie), die Trigonometrie, die Boolesche Algebra und Informatik sowie Physik
(technische Mechanik) ist für eine korrekte Implementierung erforderlich.
Sind die geometrische Problemstellung und die parametrischen Abhängigkeiten der geometrischen
Objekte untereinander bekannt, kann man mit bestimmten Computerprogrammen Bilder erzeugen,
verändern und in verschiedenste Dateiformate überführen.
Die Ergebnisse sind Videos oder Animationen, die die gewünschten Bewegungsvorgänge und die
parametrischen Abhängigkeiten sehr schön veranschaulichen und zum besseren Verständnis der
geometrischen Konstruktionen führen.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
6
2 Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
Beide Programme „Rhinoceros“ und „Grasshopper“ können legitim aus dem Internet
heruntergeladen werden (vgl. Anhang: 1 und 2).
Nach der Installation der beiden Computerprogramme "Rhinoceros" und "Grasshopper" öffnet man
zunächst das Programm „Rhinoceros“.
Man sieht eine Bildmaske (vgl. Abb.1, linkes Bild), bei der oben links in der Befehlszeile
Command: steht. Durch die Eingabe Grasshopper in dieser Befehlszeile und anschließendes
Drücken der Taste „Enter“ erscheint Command: Grasshopper in der Zeile darüber und es öffnet
sich gleichzeitig eine Maske zu „Grasshopper“ (vgl. Abb. 1, rechtes Bild).
Abbildung 1: Benutzeroberflächen der Programme „Rhinoceros“ (links) und „Grasshopper“ (rechts)
Auf der Benutzeroberfläche von „Grasshopper“ erkennt man oben eine Bildleiste mit folgenden
Kategorien: Params, Maths, Sets, Vector, Curve, Surface, Mesh, Intersect und Transform.
In der Bildleiste darunter sieht man 4 Gruppen von Subkategorien zu der ersten Kategorie
Params (vgl. Abb. 2). Klickt man auf eine schwarze Leiste einer Subkategorie mit der linken
Maustaste an, so erscheint eine Liste mit Komponenten. Durch Anfügung weiterer
Kategorien, wie z.B. HDT Utilities, kann man auf weitere Hilfsprogramme zugreifen, die man
Addons nennt (vgl. Abb. 2).
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
7
Abbildung 2: Kategorien und Subkategorien in „Grasshopper“ (unterhalb der Menüleiste „oben“)
Arbeitsschritte in den Benutzeroberflächen von „Grasshopper“ und „Rhinoceros“:
Klick (einmal) mit der linken Maustaste auf eine beliebige Stelle der gewünschten
Benutzeroberfläche.
Positionierung des Mauszeigers an einer gewollten Stelle.
Hält man die rechte Maustaste geklickt, so kann man durch Bewegen der Maus den Bildinhalt
in alle Richtungen verschieben .
Durch „Scrollen“ mit der Maus kann man das Oberflächenbild vergrößern oder verkleinern
(ein- / auszoomen ).
Auf der Benutzeroberfläche zu „Rhinoceros“ werden die Optionen Top, Front, Right, Perspective
angeboten. Geht man mit Doppelklick auf eine dieser Optionen, so erscheint diese Ansicht auf der
Benutzeroberfläche vergrößert. Bei erneutem Doppelklick auf diese Optionen erhält man wieder
das ursprüngliche Bild der Benutzeroberfläche.
Doppelklick auf die Benutzeroberfläche von „Grasshopper“ öffnet ein Suchfeld, mit dem die
gewünschte Komponente rasch gefunden werden kann.
Die Komponenten in „Grasshopper“ funktionieren nach dem EVA-Prinzip (Eingabe-Verarbeitung-
Ausgabe). Eine Komponente in „Grasshopper“ besteht im Allgemeinen aus drei Teilen:
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
8
Eingabe-Verarbeitung-Ausgabe. Im Eingabeteil wie auch im Ausgabeteil sieht man schwarze
Halbkreise, mit denen Verbindungen mit anderen Komponenten aufgebaut werden können. Im
linken Teil findet die Eingabe oder die Einnahme von Informationen und im rechten Teil die
Ausgabe (Ergebnisse) statt. In der Mitte der Komponente findet die Verarbeitung statt. Hier wird
die Eingabe in einem bestimmten Algorithmus verarbeitet, der in Visual Basic oder C# bereits
vorprogrammiert ist.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
9
2.1 Die Erzeugung eines Punktes mithilfe von „Grasshopper“
Zur Erzeugung eines Punktes werden in dieser Arbeit fünf Möglichkeiten vorgestellt.
„Grasshopper“ unterscheidet zwischen Komponenten und Parametern. Während in Parametern
nur Informationen enthalten sind, können Komponenten mit Daten operieren.
Tabelle 1: Fünf Möglichkeiten für die Erzeugung eines Punktes in „Grasshopper“
Möglichkeit: Kategorie: Subkategorie: Komponente (Parameter) mit Bild:
(I) Params Geometry Point (Parameter)
(II) Vector Point Point XYZ
(III) Vector Point Point Polar
(IV) Vector Point Point Cylindrical
(V) Vector Point Barycentric
Für die erste Möglichkeit Point (Params > Geometry > Point) folgt ein detaillierter
Durchführungsplan:
Benutzeroberfläche zu „Grasshopper“/ Kategorie: Params.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
10
Schwarze Leiste mit der Subkategorie Geometry. (Params > Geometry).
Klick (einmal) mit der linken Maustaste auf diese Leiste öffnet eine Liste mit Komponenten.
Klick (einmal) mit der linken Maustaste auf die Komponente Point aus dieser Liste und
gleich darauf erneuter Klick mit der linken Maustaste auf eine beliebige Stelle der
Benutzeroberfläche zu „Grasshopper“ , Point (Params > Geometry > Point),
liefern die Eingabemaske für die Komponente eines Punktes, die einen oder mehrere
Punkte enthalten kann. Der auftretende Hinweis „Warning“ will nur andeuten, dass die
Komponente keine Informationen enthält.
Klick (einmal) mit der rechten Maustaste auf diese Eingabemaske öffnet ein Kontextmenü
mit den Optionen „Set one Point“ und „Set Multiple Points“ (s. Abb.3).
Mit Set one Point kann man genau einen Punkt, mit Set Multiple Points kann man
mehrere Punkte festlegen (s. Abb.3).
Bei Anklicken von Set one Point mit der linken Maustaste verschwendet die
Benutzeroberfläche zu „Grasshopper“ und nur die von „Rhinoceros“ ist sichtbar.
Klick (einmal) mit der linken Maustaste auf eine beliebige Stelle in einem der vier
Ansichtsfenster (Top, Front, Right, Perspective) in „Rhinoceros“ führt zum Bildpunkt, wobei
dann wieder die Benutzeroberfläche zu „Grasshopper“ sich auftut.
Die Komponente Point ist jetzt belegt, ein Hinweis „Warning“ ist nicht mehr zu beobachten.
Durch Positionierung des Mauszeigers auf der Komponente kann man die kartesischen
Koordinaten {x, y, z} des gerade festgelegten Punktes ablesen.
Bei der Option Set Multiple Points ist die Vorgehensweise analog jedoch erhält man die
Benutzeroberfläche zu „Grasshopper“ wieder durch Drücken der „Enter“ Taste, wenn in
„Rhinoceros“ die Punkte festgelegt sind.
Für die Verschiebung einer Komponente innerhalb der Benutzeroberfläche zu „Grasshopper“ sind
folgende Schritte erforderlich:
Positionierung des Mauszeigers auf die Komponente.
Klick (einmal) und gedrückt Halten der linken Maustaste.
Bewegen der Maus.
Man kann auch mehrere Komponenten genauso neu positionieren, wenn man den Bereich der
Benutzeroberfläche zu „Grasshopper“ um diese Komponenten herum mithilfe der linken Maustaste
markiert und eine Komponente verschiebt.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
11
Abbildung 3: Die erste Komponente für den Punkt. Kategorie Params, Subkategorie Geometry.
Die zweite Möglichkeit, einen Punkt zu erzeugen, wird mithilfe der Komponente Point XYZ
(Vector > Point > Point XYZ) erreicht.
Für die Komponente Point XYZ werden drei Zahlen benötigt, die die kartesischen
Koordinaten des Punktes repräsentieren.
Über (Params > Input > Number Slider) kann man die Eingabemaske der Komponente
Number Slider auf der Benutzeroberfläche zu „Grasshopper“ positionieren.
Klick (einmal) mit der linken Maustaste auf die Komponente Number Slider
Betätigung der Tastenkombination „Strg + C“.
Die Komponente Number Slider wird zweimal mithilfe der Tastenkombination „Strg + V“
eingefügt.
Diese Technik funktioniert auch für mehrere Komponenten, wenn man den Bereich der
Benutzeroberfläche zu „Grasshopper“, wo diese Komponenten stehen, mit der Maus
markiert, kopiert „Strg + C“ und einfügt „Strg + V“.
Verbinden der schwarzen Halbkreise durch Positionierung des Mauszeigers auf die zu
verbindenden Halbkreise, Klick und gedrückt Halten der linken Maustaste sowie Bewegen
der Maus in die Richtung des nächsten Halbkreises (vgl. Abb.4). Die Verbindung geht in
beide Richtungen.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
12
Abbildung 4: Verbinden von Number Slider mit Point XYZ und das Suchfeld in „Grasshopper“
Ein Number Slider gibt einen Zahlenbereich an, den man ändern bzw. modifizieren kann.
Positioniert man den Mauszeiger auf der Komponente, so sieht man, dass der Zahlenbereich von
0,000 bis 1,000 vordefiniert ist.
Will man beispielsweise Zahlen im Bereich von 0,000 bis 10,000 definieren, kann man im Suchfeld
10.000 eingeben und anschließend die Taste „Enter“ drücken. Es wird die Eingabemaske der
Komponente Number Slider, die Zahlen von 0,000 bis 10,000 enthält, auf der Benutzeroberfläche
zu „Grasshopper“ positioniert.
Man beachte hier den Unterschied für die Darstellung des Dezimaltrennzeichens zwischen dem
deutschsprachigen und dem englischsprachigen Raum. Im Kontextmenü hat man auch die
Möglichkeit unter der Option Edit… ein Zahlenbereich zu definieren (Mehr dazu im Abschnitt 2.1).
In der Fachsprache von „Grasshopper“ ist die Komponente Number Slider ein sogenannter
Parameter, weil sie keine Eingabe erhält. Sie gibt nur Informationen (Zahlen mit einem vom
Anwender festgelegten Intervall) aus. Eine Komponente hingegen ist ein Element in
„Grasshopper“, das Informationen erhält, sie verarbeitet und schließlich ein Ergebnis ausgibt.
Positioniert man den Mauszeiger auf den schwarzen Kringel innerhalb der Eingabemaske der
Komponente Number Slider, so kann man durch Klick und gedrückt Halten der linken Maustaste
die Maus nach links oder nach rechts bewegen, um eine kleinere oder eine größere Zahl
einzustellen.
Diese Zahlen repräsentieren im vorliegenden Fall die kartesischen Koordinaten des Punktes. Die
Änderung dieser Zahlen, die für die kartesischen Koordinaten des Punktes stehen, ist mit einer
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
13
Änderung der Lage im Raum verbunden. Diese Änderung der Raumposition des Bildpunktes kann
man in „Rhinoceros“ beobachten. Diese Zahlen kann man aus der Komponente wieder
extrahieren, wenn man die Ausgabe der Komponente Point XYZ mit der Eingabe P der
Komponente Decompose (Vector > Point > Decompose) verbindet. Diese Komponente
extrahiert die kartesischen Koordinaten und sie funktioniert auch bei allen Komponenten für den
Punkt.
Die Eingabe S der Komponente Point XYZ ist als XY-Ebene vordefiniert. Tippt man im Suchfeld
beispielsweise yz ein, dann sieht man als erstes Suchergebnis eine Komponente YZ-Plane
(Vector > Plane > YZ Plane). Der Ursprung O der Ebene (YZ-Plane) ist als Koordinatenursprung
vordefiniert.
Verbindet man die Ausgabe der Komponente für die YZ-Ebene mit der Eingabe S der Komponente
Point XYZ, so wird die Eingabe X der Komponente Point XYZ als y-Koordinate des Punktes und
die Eingabe Y als z-Koordinate des Punktes interpretiert.
Die Komponente Plane (Vector > Plane > Plane) braucht als Eingabe einen Ursprung O,
eine x-Richtung X und eine y-Richtung Y. Mithilfe dieser Komponente kann man eine beliebige
Ebene im Raum festlegen.
Die Komponente Plane Components (Vector > Plane > Plane Components) funktioniert
für Pläne auf dieselbe Art und Weise wie die Komponente Decompose für die Punkte und/oder für
Vektoren funktioniert. Aus ihr werden der Ursprung der Ebene, die x-Richtung und die y-Richtung
extrahiert.
Eine weitere Möglichkeit für die Erzeugung eines Punktes im dreidimensionalen Raum eröffnet
sich die Komponente Point Polar (Vector > Point > Point Polar). Als Eingabe braucht diese
Komponente:
Einen Basisplan P, der als XY-Ebene vordefiniert ist (andere Ebenen möglich).
Einen Winkel xy in der in P vorliegenden Ebene, der von der dortigen positiven x-Achse in
den Uhrzeigersinn gezählt wird.
Einen Abstand d des Punktes vom
Koordinatenursprung in x-Richtung der in P
vorliegenden Ebene.
Einen Winkel z (vgl. nebenstehendes Bild).
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
14
Die Winkelmaße für diese Komponente sind im Bogenmaß (Einheit [Rad]) einzugeben.
Hilfreich ist auch die Komponente Panel (Params > Input > Panel). Durch sie kann unter
anderem die Ausgabe einer Komponente veranschaulicht werden (vgl. Abb. 5).
Abbildung 5: Anwendung der Komponenten Panel und Addition [ (Maths > Operators >
Addition) oder Eingabe von + im Suchfeld) ] mit Ergebnis (Ausgabe)
Für die Komponente Point Polar (Vector > Point > Point Polar) existieren mehrere Möglichkeiten,
um die zwei Winkel xy und z für die Eingabe dieser Komponente festzulegen.
Beispielsweise kann man eine Komponente Panel (Params > Input > Panel) auf der
Benutzeroberfläche von „Grasshopper“ positionieren. Ein Doppelklick auf diese Komponente führt
zu einem Eingabefenster, wo man z.B. 30 (π/6) eingeben und dann dort auf OK klicken kann.
Verbindet man die Ausgabe der Komponente Panel mit der Eingabe der Komponente Radians
(Maths > Trig > Radians), dann hat die Komponente Radians als Ausgabe die Zahl π/6, die mit
einer der beiden Winkel der Komponente Point Polar verbunden werden kann. Man kann auch in
der Komponente Panel die Zeichenkette pi/6 eingeben und dann direkt mit dem Winkel xy oder z
verbinden, um einen Winkel von 30° in die Komponente einzugeben.
Man kann auch einen Winkel durch die Kombination der Komponente Number Slider mit der
Komponente Pi (Maths > Util > Pi) erzeugen. Die Ausgabe der Komponente Number Slider
wird mit der Eingabe der Komponente Pi verbunden. Wenn man in der Eingabemaske der
Komponente Number Slider beispielsweise den Wert 0,5 einstellt, dann ergibt diese Kombination
eine Ausgabe von 0,5 * π bei der Komponente Pi.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
15
Die Ausgabe der Komponente Pi verbindet man mit der Eingabe der Komponente Point Polar, um
einen Winkel festzulegen, der bereits in Rad als Ausgabe der Komponente Pi vorliegt. Es existiert
ebenfalls die Komponente Degrees (Maths > Trig > Degrees), die einen Winkel vom
Bogenmaß (Einheit: [Rad]) in das Gradmaß (Einheit [°]) umwandelt.
Es ist auch möglich, einen Punkt durch die Eingabe von Zylinderkoordinaten zu erzeugen. Dafür ist
die Komponente Point Cylindrical (Vector > Point > Point Cylindrical) vorprogrammiert.
Die Eingabe P der Komponente Point Cylindrical erfolgt genauso wie die Eingabe P der
Komponente Point Polar oder die Eingabe S der Komponente Point XYZ und ist ebenfalls
als x,y-Ebene vordefiniert.
Die Eingabe A entspricht der Eingabe xy bei der Komponente Point Polar.
Die Eingabe R gibt den Radius des Zylinders wieder, auf dessen Mantelfläche der zu
erzeugende Punkt liegt.
Die Eingabe E steht für die Höhe des Punktes über der in P vorliegenden Ebene.
Schließlich existiert eine weitere Komponente für die Erzeugung eines Punktes, nämlich die
Komponente Barycentric (Vector > Point > Barycentric), bei der die baryzentrischen
Koordinaten des Punktes eingegeben werden.
Diese werden in der Geometrie gebraucht, um die Lage eines Punktes in Bezug auf ein
gegebenes Simplex oder Polytop (verallgemeinertes Polygon in beliebiger Dimension) zu
beschreiben. Die baryzentrischen Koordinaten sind ein Spezialfall der homogenen Koordinaten
und sind nicht eindeutig.
Sie werden in „Grasshopper“ in Bezug auf ein durch drei Punkte A, B und C einzugebendes
Dreieck durch ein Zahlentrippel (U, V, W) beschrieben. Die Ebene wird hier in Dreiecksgittern mit
denselben Abmessungen wie das ursprüngliche Dreieck ABC geteilt.
Die Ebene wird wie folgt geteilt:
Eine Gerade g durch B und A. Diese Gerade teilt die Zeichenebene in zwei Halbebenen.
Weitere zu g parallelen Geraden in den Halbebenen mit dem gleichen Abstand, den der
Eckpunkt C von der Geraden g hat (Parallelenschar).
Die Punkte auf der Geraden g haben die baryzentrischen Koordinaten (U, V, 0). Die Punkte auf
den nächsten zwei parallelen Geraden, die am nächsten zu g liegen, haben die baryzentrischen
Koordinaten (U, V, -1) und (U, V, +1). Analog: Wähle eine Gerade j = AC mit P(U, 0, W) und eine
Gerade i = CB mit P(0, V, W).
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
16
Die Schnittpunkte im so entstandenen Dreiecksgitter haben die Koordinaten (U, V, W)
Für die Eingaben der Komponente Barycentric in „Grasshopper“ werden folgende Informationen
benötigt:
A(1,0,0), B(0,1,0) und C(0,0,1): Eckpunkte eines Dreiecks in einer Ebene.
U,V und W: ein Zahlentrippel (U, V, W) für die baryzentrischen Koordinaten.
Die einfachste Möglichkeit, einen Punkt in „Rhinoceros“ mithilfe von „Grasshopper“ zu erzeugen,
ist wohl die erste Variante (siehe Tabelle 1 / (I) auf Seite 4) kombiniert mit der Komponente Panel.
Dafür tippt man in der Komponente Panel ein Zahlentrippel {x, y, z} ein. Verbindet man die
Ausgabe der Komponente Panel mit der Eingabe der Komponente für den Punkt, so erhält man
einen vom Anwender festgelegten Punkt im Raum.
Durch einen rechten Mausklick auf die Mitte einer Komponente, wo die Verarbeitung stattfindet,
kann man Preview aus dem dann sichtbaren Kontextmenü wählen. Als Folge wird die
Komponente (z.B. Komponente für einen Punkt, für eine Linie, einen Kreis oder eine Kollektion von
beliebigen geometrischen Elementen) ausgeblendet. Die Elemente, die durch die Komponente
realisiert werden, sind in den Ansichtsfenstern von „Rhinoceros“ nicht mehr zu sehen, sind aber
gespeichert.
Nochmaliger Klick mit der linken Maustaste auf die Option Preview aus dem Kontextmenü kann
der vorherige Zustand in „Rhinoceros“ wieder hergestellt werden.
Weitere Möglichkeiten, um eine oder mehrere Komponenten gleichzeitig auszublenden, sind:
Klick und gedrückt Halten der linken Maustaste an einer Stelle der Benutzeroberfläche in
„Grasshopper“ in der Nähe der Komponente oder Komponenten, die ausgeblendet werden
sollen.
Bewegen der Maus und Markieren des Bereichs, wo sich die Komponente bzw. die
Komponenten befinden.
Nachdem man diesen Bereich markiert hat, bieten sich zwei Möglichkeiten an, wie man die
Geometrie, die durch die Komponente / die Komponenten konstruiert wurde, ausblenden könnte:
An einer beliebigen Stelle der Benutzeroberfläche positioniert man den Mauszeiger und
klickt auf die rechte Maustaste. Im Kontextmenü, das jetzt sichtbar wird, kann man die
Option Preview wählen.
Drücken der Leertaste der Tastatur und Wahl der Option Disable Preview.
Anhand der Erläuterungen der Punktkomponenten in „Grasshopper“ wird deutlich, dass
„Grasshopper“ verschiedenste Lösungswege für eine und dieselbe Aufgabe bereitstellt. Für
Ingenieure ist dieses Programm aufgrund dieser Eigenschaft sehr beliebt. Der beste Weg, mehr
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
17
über dieses Programm und seine Eigenschaften zu lernen, besteht darin, seine Komponenten
genau zu untersuchen. Die wesentlichen Fragen dabei sind:
Welche Informationen braucht die Komponente? (Eingabe)
Was macht die Komponente? (Verarbeitung)
Welche Informationen stellt die Komponente zur Verfügung? (Ausgabe)
Dabei ist besonders die Komponente Panel sehr hilfreich. Durch sie kann der Anwender die
Ausgabe einer zu untersuchenden Komponente feststellen.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
18
2.2 Komponenten für die Erzeugung von Kurven innerhalb von „Grasshopper“
In der Kategorie Curve hat man die Möglichkeit, Kurven zu erzeugen und zu analysieren. Die
einfachste Kurve ist eine gerade Linie. Dafür existieren drei vorprogrammierte Komponenten.
Tabelle 2: Komponenten für die Erzeugung einer geraden Linie in „Grasshopper“
Kategorie: Subkategorie: Komponente (Parameter) mit
Bild:
Params Geometry Line
Curve Primitive Line
Curve Primitive Line SDL
Die Handhabung des Parameters Line (Params > Geometry > Line) funktioniert wie bei der
Komponente Point (siehe Tabelle 1 / (I) auf Seite 4). Hier heißen die Optionen Set one Line und
Set Multiple Lines.
Die Komponente Line (Curve > Primitve > Line) erzeugt eine Strecke zwischen einem
Anfangspunkt A und einem Endpunkt B. Die Punkte A und B können gemäß Abschnitt 1.1.1
eingegeben werden.
Die Komponente Line SDL (Curve > Primitive > Line SDL) benötigt drei Eingaben, die zu
einer Linie innerhalb dieser Komponente verarbeitet werden:
Einen Startpunkt S: Punkte gemäß Abschnitt 1.1.1
Eine Richtung D: Vektoren (vgl. Subkategorie Vector > Vector). Man kann auch eine
gerade Linie (vgl. Tabelle 2) mit der Eingabe D verbinden, um eine Richtung festzulegen.
Eine Länge L: z.B. Verbinden mit Number Slider, Number (Params > Primitive > Number)
oder Panel. Im Kontextmenü des Parameters Number kann man mehrere Zahlen
eingeben (Set one Number oder Set Multiple Numbers).
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
19
Die Komponenten für die Konstruktion eines Kreises, die nach der geraden Linie als einfache
geometrische Figur in Betracht kommt, werden in der folgenden Tabelle 3 vorgestellt. Es existieren
in „Grasshopper“ vier Komponenten für die Konstruktion eines Kreises.
Tabelle 3: Komponenten für die Konstruktion einer Kreiskurve in „Grasshopper“
Kategorie: Subkategorie: Komponente (Parameter) mit
Bild:
Params Geometry Circle
Curve Primitive Circle
Curve Primitive Circle CNR
Curve Primitive Circle 3Pt
Circle (Params > Geometry > Circle): Set one Circle und Set Multiple Circles
Circle (Curve > Primitive > Circle): Der Kreismittelpunkt ist durch den
Koordinatenursprung der Ebene festgelegt, die in der Eingabe P dieser Komponente
vorliegt. Durch die Eingabe R wird der Radius des Kreises festgelegt.
Circle CNR (Curve > Primitive > Circle CNR): Die Eingabe C legt den
Kreismittelpunkt fest. Die Eingabe N ist ein Vektor, der senkrecht zur Ebene steht, die den
Kreis enthält. Die Eingabe R bestimmt den Radius des Kreises.
Circle 3Pt (Curve > Primitive > Circle 3Pt): Die Eingaben A, B und C dieser
Komponente sind Punkte, durch die diese Komponente einen Kreis definiert. Im Gegensatz
zu den anderen Komponenten, die als Ausgabe nur den Kreis als Element der Geometrie
zur Verfügung stellen, ermöglicht diese Komponente drei Ausgaben als Ergebnis: C
(Kreismittelpunkt), P (Die den Kreis enthaltende Ebene) und R (Radius der Kreiskurve).
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
20
Außerdem existiert eine vorprogrammierte Komponente für die Konstruktion einer Ellipse
(Curve > Primitive > Ellipse). Als Eingabe werden folgende Informationen benötigt:
P: Eine Ebene, in der die zu konstruierende Ellipse liegen wird.
R1: Die Länge der Halbachse der Ellipse in die erste Koordinatenrichtung (x-Richtung) der
in P vorliegenden Ebene.
R2: Die Länge der Halbachse der Ellipse in die zweite Koordinatenrichtung (y-Richtung) der
in P vorhandenen Ebene.
Diese Komponente für die Ellipse stellt als Ausgabe (Ergebnis) die Ellipse E und ihre beiden
Brennpunkte F1 und F2 zur Verfügung.
Weitere grundlegende Komponenten, z.B. für einen Kreisbogen (englisch: arc), sind in der
folgenden Tabelle 4 zusammengestellt. Nach der Tabelle folgt eine kurze Erläuterung zur
Handhabung von Eingaben und Ausgaben dieser Komponenten.
Tabelle 4: Komponenten für die Konstruktion eines Kreisbogens in "Grasshopper"
Kategorie: Subkategorie: Komponente (Parameter) mit
Bild:
Curve Primitive Arc
Curve Primitive Arc 3Pt
Curve Primitive Arc SED
Arc (Curve > Primitive > Arc): In P ist die XY-Ebene (Standard) vordefiniert. Durch
die Verbindung dieser Eingabe mit einer anderen Ebene (vgl. Subkategorie: Vector >
Plane) kann eine vom Anwender festgelegte Ebene eingegeben werden. Der in A
eingegebene Winkel wird von der positiven x-Richtung der in P zur Verfügung stehenden
Ebene gegen den Uhrzeigersinn gezählt. Mit der Eingabe R (Radius) wird eine
Komponente verbunden, die eine Zahl (als Ergebnis) ausgibt. Diese Komponente gibt die
Kurve des Kreisbogens A und die Bogenlänge L aus.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
21
Arc 3Pt (Curve > Primitive > Arc 3Pt): Durch die Eingabe von drei Punkten A, B und
C wird ein Kreisbogen in der Ebene, die durch die drei Punkte bestimmt ist, festgelegt.
Diese Komponente gibt die Kurve des Kreisbogens A, die durch die drei Punkte bestimmte
Ebene E und den Kreisradius R aus.
Arc SED (Curve > Primitive > Arc SED): Die Eingaben sind S (Startpunkt des
Kreisbogens), E (Endpunkt des Kreisbogens) und D (Diese ist die Richtung der Tangente
des Kreisbogens am Anfangspunkt (vgl. Eingabe D bei der Komponente Line SDL))
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
22
2.3 Komponenten für die Analyse und Bearbeitung von Kurven in „Grasshopper“
Für die Analyse und Bearbeitung von Kurven existieren in „Grasshopper“ zahlreiche
Komponenten, von denen hier sechs Komponenten vorgestellt werden (vgl. Tabelle 5 und
nachfolgende Erläuterungen).
Ausser diesen Komponenten existiert eine Fülle an anderen Komponenten, mit denen man Kurven
innerhalb von „Grasshopper“ algorithmisch beherrschen kann.
Tabelle 5: Komponenten für die Analyse von Kurven in „Grasshopper“
Kategorie: Subkategorie: Komponente mit Bild:
Curve Analysis End Points
Curve Util Extend
Curve Division Shatter
Curve Analysis Evaluate Curve
Curve Analysis Curve CP
Curve Util Join Curves
Im Folgenden werden diese Komponenten der Reihenfolge nach kurz beschrieben:
Endpoints (Curve > Analysis > Endpoints): Durch die Eingabe C werden Anfangs- S
und Endpunkt E einer beliebigen Kurve C als Ergebnis zur Verfügung gestellt.
Extend (Curve > Analysis > Extend): Mit der Eingabe C wird zunächst die an beiden
Enden zu verlängernde / zu verkürzende Kurve bereitgestellt. Im Kontextmenü der Eingabe
T wird die Art der Verlängerungsstücke (0=Line, 1=Arc, 2=Smooth) festgelegt. Die Option
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
23
0=Line ist voreingestellt. Die Eingabe L0 bewirkt eine Längenveränderung am Anfang der
Kurve, die Eingabe L1 entsprechend am Ende der Kurve. Die Eingabe negativer Zahlen ist
zulässig und bewirkt eine Verkürzung. Es ist immer ratsam, die Option Reparametrize
aus dem Kontextmenü der Kurven anzuklicken. Dies bewirkt, dass die Kurve von
„Grasshopper“ parametrisiert wird.
Shatter (Curve > Analysis > Shatter): Als Eingaben erfolgen eine Kurve C und ein
Zahlenwert t (oder auch mehrere) zwischen 0 und 1. Der Wert t (Die Werte t) führt (führen)
auf einen Punkt (auf Punkte), an dem (an denen) die gegebene Kurve C in Teilkurven S
zerlegt wird. Diese Komponente wird oft verwendet, um eine Kurve an einer bestimmten
Stelle (oder an mehreren bestimmten) zu zerlegen, z.B. t-Wert(e) für Schnittpunkte (vgl.
Kategorie Intersect) von C mit anderen Kurven. Bei der Zerlegung einer Kurve C können
auch die Komponenten Divide Length (Curve > Division > Divide Length) und
Divide Curve (Curve > Division > Divide Curve) herangezogen werden.
Beispielsweise sind für die Komponente Divide Length eine Kurve C und eine bestimmte
Länge L für die Teilkurven bereitzustellen. Nach Verarbeitung erhält man die Liste
äquidistanter (L) Teilungspunkte P auf dieser Kurve C, die Liste der Tangentenvektoren T
in den Punkten P und die zugehörigen t-Werte.
Evaluate Curve (Curve > Analysis > Evaluate Curve): Nach Eingabe einer Kurve C
und eines Parameterwertes t zwischen 0 und 1 (Reparametrize) werden ein zugehöriger
Punkt P und sein Tangentenvektor ausgegeben. Der Winkel A ist ein Winkel zwischen den
Tangentenvektoren, die sich unmittelbar vor und nach P auf C befinden. Bei Knickstellen ist
er von Null verschieden.
Curve CP (Curve > Analysis > Curve CP): Ausgehend von einer Kurve C und einem
Punkt P, der auch auf der Kurve C liegen darf, erhält man als Ausgabe einen Punkt P, der
die Projektion des Eingabepunktes P auf die Kurve C ist. D gibt den Abstand (kürzeste
Entfernung) des Eingabepunktes P von der Kurve C an. Falls der eingegebene Punkt P auf
der Kurve liegt, dann ist das Ergebnis P identisch mit dem eingegebenen Punkt P (D = 0).
Die Ausgabe t ist der Parameterwert zwischen 0 und 1, für den Lotfußpunkt P (Ausgabe)
auf der Kurve C. Die Komponente Point on Curve (Curve > Analysis > Point on
Curve) soll hier auch kurz erwähnt werden. Nach Eingabe einer Kurve C in parametrisierter
Form (Reparametrize) kann ein beliebiger Kurvenpunkt durch einen innerhalb der
Komponente einzustellenden (Klick auf das Rechtecksymbol innerhalb der Komponente
und gedrückt Halten der linken Maustaste sowie Bewegen der Maus) Parameterwert
ausgegeben werden.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
24
Join Curves (Curve > Analysis > Join Curves): Mehrere Kurven können zu einer
einzigen Kurve zusammengefasst werden. Dafür klickt man (einmal, linke Maustaste) aus
dem Kontextmenü der Eingabe C die Option Flatten an, damit die Kurven in einer
Liste liegen.
Ein einfaches Beispiel: Konstruiere zwei gerade Linien, wobei der Anfangspunkt der
zweiten geraden Linie mit dem Endpunkt der ersten geraden Linie zusammenfällt.
Verbindet man die beiden Linien mit der Eingabe C (Join Curves), so enthält die Ausgabe
C die verbundenen Linien als einzige Kurve. Weitere Verbindungen sind durch gedrückt
Halten der SHIFT-Taste möglich. Verbindet man die Ausgabe der Komponente Join
Curves mit der Eingabe der Komponente Point on Curve, so kann durch Änderung des
Parameterwertes innerhalb der Komponente Point on Curve von 0 bis 1 und Beobachtung
der geraden Linien in „Rhinoceros“ das Ergebnis (einzige Kurve) festgestellt werden.
Im Bereich der Computergrafik werden Non-Uniform Rational B-Splines (vgl. Subkategorie Curve >
Spline) zur Modellierung beliebiger Kurven und Flächen verwendet. Diese sind eine
mathematische Verallgemeinerung von sowohl B-Splines als auch Bézierkurven und -flächen.
Der hauptsächliche Unterschied zu diesen beiden Splinearten ist die Gewichtung der
Kontrollpunkte. Eine NURBS-Kurve ist definiert durch ihren Grad k, eine Menge gewichtete
Kontrollpunkte und einen Knotenvektor.
Der Begriff Splines ist historisch und stammt aus dem Schiffbau. Linealartige biegsame
Metallstreifen, sogenannte Straklatten (Englisch: splines), wurden seitlich mit Gewichten beschwert
und konnten somit eine definierte Kurve darstellen. Mehrere dieser Kurven hintereinander stellten
die Spanten dar, die wiederum den Rumpf des Schiffes ergaben.
In der industriellen Produktion werden mittlerweile fast ausschließlich NURBS eingesetzt, um jede
Art von herzustellendem Objekt (Joghurtbecher, Raketentriebwerke, Sonnenbrillen, usw.)
mathematisch exakt abbilden zu können.
Die Oberflächen werden in der Computergrafik durch Meshing beschrieben. Als Meshing
bezeichnet man eine Gruppe von Verfahren, bei denen eine gegebene Oberfläche (englisch:
surface) oder ein gegebenes Raumvolumen durch eine Menge kleinerer und einfacherer Elemente
approximiert wird.
Bei zweidimensionalen Elementen werden Dreiecks- (Triangulation) oder Viereckelemente
(Paving) verwendet, die als Gitter die zweidimensionale Oberfläche annähern. Bei
dreidimensionalen Körpern kommen Tetraeder oder Quader zur Anwendung.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
25
2.4 Komponenten für die Bearbeitung von Listen in „Grasshopper“
In „Grasshopper“ existieren zahlreiche vorprogrammierte Komponenten, die auf Listen beliebigen
Inhalts (Zahlen, Punkte, andere geometrische Objekte,…) operieren. In der folgenden Tabelle
werden einige grundlegende Komponenten vorgestellt, mit deren Hilfe die Ordnung der Elemente
in der Liste bzw. die Elemente der Liste geändert werden können.
Tabelle 6: Grundlegende Komponenten für die Bearbeitung von Listen
Kategorie: Subkategorie: Komponente mit Bild:
Sets List List Item
Sets List Split List
Sets Sequence Cull Nth
Sets List List Insert
Sets List Dispatch
Sets List Shift List
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
26
List Item (Sets > List > List Item): Nach Eingabe von einer indizierten Liste L (n
Elemente), dem Index i (Natürliche Zahl von 0 bis n-1) und einem Booleanwert W
(Voreingestellt auf False) erhält man das i-te Element E als Ausgabe.
Würde man die Voreinstellung auf True ändern (z.B. durch Verbindung des Parameters
Boolean Toggle (Params > Input > Boolean Toggle) mit der Eingabe W oder durch
Positionierung des Mauszeigers auf die Option Set Boolean im Kontextmenü von W und
Klick auf True), kann man in i eine beliebige natürliche Zahl eingeben. Das Ergebnis ist das
(i mod n)-te Element der Liste L.
Split List (Sets > List > Split List): Diese nimmt sowohl eine indizierte Liste L mit n
Elementen als auch eine natürliche Zahl i (i = 1 … n-1) als Eingaben an. Sie teilt die
Elemente der ursprünglichen Liste L in eine Liste A mit den von 0 bis i-1 indizierten
Elementen und eine Liste B mit den übrigen Elementen auf.
Beispiel:
Durch einen Doppelklick auf den Parameter Panel kann man eine Spalte beispielsweise
mit den Buchstaben a,b,c,d,e eintippen und auf OK klicken. Durch Klick auf die Option
Multiline Data aus dem Kontextmenü des Parameters Panel erscheint die indizierte Liste.
Verbindet man diese Liste (Eingabe L) und den Parameter Number Slider (Eingabe i = 2)
mit der Komponente Split List, so werden die Ausgabenlisten A und B ausgegeben. Durch
Positionierung des Mauszeigers auf A oder B erscheinen die Listen a,b oder c,d,e.
Alternativ: Verbindung von A und B mit dem Parameter Panel zeigt beide Listen A und B
gleichzeitig.
Cull Nth (Sets > Sequence > Cull Nth): Geht man von einer Liste L mit n Elementen
(indiziert von 0 bis n-1) aus und soll jeweils das N-te Element (N>1) aussortiert werden, so
sind die Elemente mit den Indizes N*j -1 mit j = 1,2,3,...,n/N in der Ergebnisliste L nicht
mehr vorhanden.
List Insert (Sets > List > List Insert): Mit dieser Komponente können ein oder
mehrere Elemente I an einer gewünschten Stelle i in eine vorgegebene Liste L eingefügt
werden (englisch: Insert).
Beispiel 1: In die Liste L = {8;16;24;32;40;48;56} wird das Element I = X an der Stelle i = 2
eingefügt.
L = 8 16 24 32 40 48 56
0 1 2 3 4 5 6 (Indizes)
I = X
i = 2 (bezogen auf die Indizes der eingegebenen Liste L)
Ergebnis:
L = 8 16 X 24 32 40 48 56
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
27
0 1 2 3 4 5 6 7 (Indizes)
Beispiel 2: In die Liste L = {8;16;24;32;40;48;56} wird das Element I = X an den Stellen i =
1,3 und 5 eingefügt.
L = 8 16 24 32 40 48 56
0 1 2 3 4 5 6 (Indizes)
I = X
i = 1,3,5 (bezogen auf die Indizes der eingegebenen Liste L)
Ergebnis:
L = 8 X 16 24 X 32 40 X 48 56
0 1 2 3 4 5 6 7 8 9 (Indizes)
Beispiel 3: In die Liste L = {8;16;24;32;40;48;56} werden die Elemente I = X,Y,Z an der
Stelle i = 4 eingefügt.
L = 8 16 24 32 40 48 56
0 1 2 3 4 5 6 (Indizes)
I = X,Y,Z
i = 4 (bezogen auf die Indizes der eingegebenen Liste L)
Ergebnis:
L = 8 16 24 32 X Y Z 40 48 56
0 1 2 3 4 5 6 7 8 9 (Indizes)
Beispiel 4: In die Liste L = {8;16;24;32;40;48;56} werden die Elemente I = X,Y,Z an den
Stellen i = 1,3,7 eingefügt.
L = 8 16 24 32 40 48 56
0 1 2 3 4 5 6 (Indizes)
I = X,Y,Z
i = 1,3,7 (bezogen auf die Indizes der eingegebenen Liste L)
Ergebnis:
L = 8 X 16 24 Y 32 40 48 56 Z
0 1 2 3 4 5 6 7 8 9 (Indizes)
Dispatch (Sets > List > Dispatch): Mit dieser Komponente wird eine Liste L nach
einem bestimmten Kriterium anhand der Eingabe P, die Booleanwerte (True/False)
annehmen kann, in zwei Listen A und B zerlegt.
Beispiel: Das folgende Bild zeigt die Zerlegung der Menge L = {8;9;10;11;12;13} nach dem
Kriterium „die Zahl liegt im Intervall [0;10]“ nach True und False in die Mengen A = {8;9;10}
und B = {11;12;13}. Die Liste L wird mithilfe der Komponente Series (Sets >
Sequence > Series) erstellt. Die Komponente Includes (Maths > Domain >
Includes) enthält das Kriterium.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
28
Cull Pattern (Sets > Sequence > Cull Pattern) ist ein Spezialfall der Komponente
Dispatch. Als Ausgabe erhält man nur die Liste mit True (True ist vorprogrammiert).
Shift List (Sets > List > Shift List): Als Eingabewerte nimmt die Komponente Shift
List eine Liste L, eine ganzzahlige Zahl S sowie einen Booleanwert W an.
Tabelle 7: Eigenschaften der Komponente Shift List
Shift List S > 0 S < 0
W=Wahr
Die ersten S Elemente werden aus der Liste L genommen und ans Ende der Liste L in beibehaltener Reihenfolge 1, 2, …, S eingeordnet.
Die letzten S Elemente werden aus der Liste L genommen und an den Anfang der Liste L in beibehaltener Reihenfolge 1, 2, …, S eingeordnet.
W=Falsch
Die ersten S Elemente werden aus der Liste L gelöscht. Die Ergebnisliste L enthält diese Elemente nicht mehr.
Die letzten S Elemente werden aus der Liste L gelöscht. Die Ergebnisliste L enthält diese Elemente nicht mehr.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
29
2.5 Mathematisches Modell für die Schwingung einer elastischen Feder in „Grasshopper“
Der dafür benötigte Algorithmus enthält eine Vielzahl von den
bisher erläuterten Komponenten und auch neue Komponenten.
Der von Punkt F längs der Amplitudenrichtungen zurückgelegte
Weg y(t) ist als die Projektion eines sich auf einem Kreis
bewegenden Punktes auf die y-Achse definiert. Die Periodendauer
T ist ein einzustellender Parameter, der die Geschwindigkeit der
Schwingung beeinflusst. Der von F zurückgelegte Weg y(t) ist
durch folgende Funktionsgleichung gegeben:
Stellt man die Periodendauer T auf 0,25
ein, schwingt die Feder vier Mal. Man
kann die Amplitude der Schwingung zu 5
Einheiten festlegen. Ändert man den
Parameter t, so schwingt der Punkt F hin
und her. Für die Eingabe dieser
Funktionsgleichung wird in „Grasshopper“
vorgegangen, wie im rechtstehenden Bild
zu sehen ist. Punkte der Feder (auch
andere geometrische Elemente) kann
man durch Preview ausblenden.
Die Einspannung kann man im Punkt E mit den Koordinaten {0,20,0} festlegen.
Schwingt der Punkt F und erreicht dabei die Amplitude +A (=5) oder –A, so ist der Abstand
zwischen F und E 15 oder 25 LE. Für die Berechnung dieses veränderlichen Abstands steht die
Komponente Distance (Vector > Point > Distance) zur Verfügung. Mit ihr kann man den
euklidischen Abstand zweier Punkte in der Ebene berechnen.
Mit Domain (Maths > Domain > Domain)
kann man ein Intervall von 0 bis D festlegen (D:
dynamischer Abstand zwischen F und E); mit
Range (Sets > Sequence > Range) kann
man dieses Intervall in N (N = 10 voreingestellt)
gleich lange Teilintervalle zerlegen. Man erhält eine
Liste der y-Koordinaten yk = yF + k * D/N (k=0…N)
für die Punkte, welche die Geometrie der Feder
festlegen.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
30
Aus der Liste der y-Koordinaten gewinnt
man die Liste der x-Koordinaten wie folgt:
Mit der Komponente List Length
(Sets > List > List Length) berechnet man
die Anzahl der Elemente in der Liste der y-
Koordinaten (= N + 1). Zu yF = y0 und zu yE
= yN gehören die x-Werte xF = 0 und xE = 0.
Mit Repeat Data (Sets > Sequence
> Repeat Data) wird eine Liste D mit N + 1
- 2 = N - 1 Elementen mit den
alternierenden Werten +3 und -3 oder
umgekehrt erzeugt (vgl. Option Reverse
im Kontextmenü der Eingabe D der
Komponente Repeat Data). Mit Panel wird
eine Liste I mit den Elementen {0; 0}
bereitgestellt und die Liste D über List
Insert wie folgt ergänzt: {0; {D}; 0}.
Die Liste aller Punkte, die die modellierte Feder beschreiben, ist durch die Listen der x- und y-
Koordinaten vollständig bereitgestellt. Man verbindet diese Listen mit den Eingaben der
Komponente Point XYZ. Mithilfe der Komponenten Stack Data (Sets > Sequence > Stack
Data) in Kombination mit der Komponente Duplicate Data (Sets > Sequence > Duplicate
Data) sowie mit der Komponente Dispatch werden zwei Punktlisten A und B ausgegeben. Die
Komponente Line verbindet das k-te Element der Liste A mit dem k-ten Element der Liste B
geradlinig (vgl. untenstehende Abbildung).
Abbildung 6: Erzeugen einer parametrischen Zickzack Kurve in "Grasshopper"
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
31
Mit Join Curves verbindet man die einzelnen Geradenstücke zu einer einzigen Linie, die die Feder
zeigt. Die Einspannung und die Masse an den Endpunkten können mithilfe von Linien und einem
Kreis konstruiert werden (vgl. untenstehenden Algorithmus). Die verwendeten Komponenten sind
aus dem untenstehenden Algorithmus ersichtlich.
Zur Animation der Federschwingung verwendet man beispielsweise das Programm GIMP
(legitimes Herunterladen vgl. Anhang 6). Verändert man den Parameterwert t zwischen 0 und 1, so
schwingt F hin und her (vgl. Seite 22). Im Kontextmenü des Parameters t führt die Option
Animate… zu einem Fenster (Animation Controls). Dort kann man einen Zielordner festlegen
(Browse > Neuen Ordner erstellen). Man wählt dann das Ansichtsfenster (hier: Top), aus dem
Bilder erzeugt werden sollen, nachdem man eine geeignete Ansicht in „Rhinoceros“ eingestellt hat,
in der die gewünschte Geometrie festgehalten werden soll. Nach Festlegung der Bildgröße (pixel),
der Bilderanzahl (Frame Count = Anzahl der Teilintervalle) und nach Klick auf OK enthält der neu
angelegte Ordner die gewünschten Bilder.
Nach Abfolge der Schritte:
Programm GIMP öffnen (Datei > neu) Bildgröße (pixel) festlegen (gleiche Daten wie in
„Grasshopper“) öffnet sich ein neues Projekt in GIMP.
In diesem Projekt führt die Abfolge: Fenster (Menüleiste) Andockbare Dialoge Ebenen
aus dem Bildordner die gewünschten Bilder markieren und in die Bildmaske für die Ebenen ziehen
Ebene (Menüleiste) Stapel Reihenfolge der Ebenen umkehren Filter (Menüleiste)
Animation Optimieren (für GIF) Neues Fenster / Projekt Datei (Menüleiste) Exportieren
Abbildung 7: Endform der Feder mithilfe eines Algorithmus in "Grasshopper"
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
32
nach Name (XYZ.gif) Exportieren Ankreuzen: als Animation Optional: Schleife endlos
wiederholen Pause zwischen den einzelnen Bildern in Millisekunden wählen (Falls nicht
spezifiziert) Einzelbildübergang (Kombinieren) Exportieren anklicken
zu einer animierten GIF-Datei, die man in einem Internetbrowser (Internet Explorer, Mozilla
Firefox,…) öffnen kann (auch offline).
Abbildung 8: Animation der Federschwingung mit GIMP
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
33
2.6 Grundlegende mathematische und mathematisch logische Komponenten und die
Komponente Path Mapper (Sets > Tree > Path Mapper)
Kategorie: Subkategorie: Komponente mit Bild:
Maths Script Evaluate
Maths Operators Equality
Maths Operators Larger Than
Maths Operators Smaller Than
Maths Operators Gate And
Maths Operators Gate Or
Maths Operators Gate Not
Sets Tree Stream Filter
Sets Tree Stream Gate
Maths Domain Remap Numbers
Es folgt eine detaillierte Erläuterung dieser grundlegenden Komponenten:
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
34
Evaluate (Maths > Script > Evaluate): Ruft man diese wichtige, oft verwendete und sehr
nützliche Komponente auf (vgl. Abb. 9), erscheinen in der Maske Eval drei Eingabemöglichkeiten:
F (Funktion) sowie x und y (Variablen) und eine Ausgabemöglichkeit r (Ergebnis). Durch
Einzoomen wird neben jeder Variablen ein Minussymbol (-) und zwischen je zwei Variablen ein
Plussymbol (+) sichtbar. Durch Klick auf (+) kann eine neue Variable eingefügt werden, durch Klick
auf (-) wird diese Variable gelöscht. Doppelklick auf die Stelle Eval der Komponente öffnet das in
Abb. 9 oben rechts sichtbare Fenster. Im Feld Expression können Konstante (e; π; φ; 1/2;…)
sowie Operatoren (=; +; A²;…) und über f: N R Funktionen, die mit den Inputvariablen in
Beziehung zu bringen sind, eingegeben werden.
Abbildung 9: Innerhalb der Komponente Evaluate stehen vorprogrammierte Funktionen zur
Verfügung (vgl. Expression function list)
Für x = 3 und y = -10 erhält man r = 109
Im folgenden Bild erkennt man ein „kartesisches Blatt“, wobei die parametrische
Funktionsgleichung r(φ) in Polarkoordinaten in die Komponente Panel eingegeben wurde und mit
der Eingabe F der Komponente Evaluate verbunden wurde.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
35
Grundkomponenten für die mathematische Logik:
Equality (Maths > Operators > Equality), Larger
Than (Maths > Operators > Larger Than) und
Smaller Than (Maths > Operators > Smaller
Than). Damit kann überprüft werden, ob A gleich
oder größer oder kleiner B ist. Ausgegeben werden
die Booleanvariablen True oder False.
Basiskomponenten für die booleschen Operationen: Gate And (Maths > Operators > Gate
And), Gate Or (Maths > Operators > Gate Or). Es wird True oder False für die Verknüpfungen
der Komponenten A und zugleich B (A B) und A oder auch B (A B) ausgegeben. Die
Basiskomponente Gate Not (Maths > Operators > Gate Not) negiert den Wahrheitsgehalt einer
Eingabe A (¬ A). Vergleiche untenstehende Abbildung.
Abbildung 10: „Wahrheitstabelle“ in „Grasshopper“
Stream Filter (Sets > Tree > Stream Filter) und Stream Gate
(Sets > Tree > Stream Gate): wie bei der Komponente Evaluate
können hier mehrere Eingaben (Stream Filter) bzw. Ausgaben
(Stream Gate) festgelegt werden (vgl. nebenstehendes Bild: 0, 1,…,
j,…, n). Bei Stream Filter bestimmen die Eingaben 0, 1,…, j,…, n
die Anzahl der auszufilternden Informationsflüsse, die mit diesen
Eingaben verbunden werden. Die Eingabe G (z.B. Number Slider
anschließen) kann nur Zahlenwerte aus 0, 1,…, j,…, n annehmen.
Die Ausgabe S( j ) enthält die Informationen, die mit der Eingabe j
verbunden sind und somit in j enthalten sind. Bei Stream Gate wird
durch G ein Informationsfluss in S zu einer Ausgabe j umgeleitet
(vgl. Abb. 11).
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
36
Solche Komponenten nennt man auch „Logikgatter“ (elektronisches Bauelement für die
Realisierung einer Booleschen Operation). Derartige Logikgatter wurden zu Beginn der
Entwicklungsprozesse von Computern noch mechanisch realisiert. 1837 entwarf der englische
Erfinder Charles Babbage eine Rechenmaschine („Analytical Engine“), die als Vorläufermodell des
Computers gilt.
Remap Numbers (Maths > Domain > Remap Numbers): Bildet ein vorgegebenes
Zahlenintervall S = [a0; a1] auf ein gewünschtes Zahlenintervall T = [b0; b1] ab. Die Eingabe V ist
ein Zahlenwert x aus S. Die Ausgabe R liefert den zu x gehörigen Zahlenwert y in T nach der
parametrischen Formel:
Abbildung 12: Funktionsweise der Komponente Remap Numbers
Abbildung 11: Dokumentation der Komponenten Stream Filter und Stream Gate
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
37
Eine sehr hilfreiche und wichtige Komponente ist Path Mapper (Sets > Tree > Path Mapper). Mit
ihr kann der Aufbau einer gegebenen Baumstruktur geändert werden. Doppelklick auf die
Komponente führt zu einem Eingabefenster, wo mit Alphabetregeln den Eingangsbaum (Source)
und den Ausgangsbaum (Target) festgelegt werden können.
Der Aufbau einer Baumstruktur kann mithilfe der Komponente Param Viewer (Params > Util
> Param Viewer) veranschaulicht werden (Doppelklick auf die Komponente führt zu einer
virtuellen Baumdarstellung). Baumstrukturen gehören zu den wichtigsten Datenstrukturen der
Informatik und werden dort häufig bei der Lösung unterschiedlichster Aufgaben angewandt.
Beispiel:
Abbildung 13: Änderung einer gegebenen Baumstruktur mit Path Mapper
Die Komponente Series (Sets > Sequence > Series) liefert als Ausgabe S Zahlen von 1 bis 9.
Wählt man die Option Graft aus dem Kontextmenü von S, so werden die Elemente des
Eingangsbaums in einer Baumstruktur in eingespeichert
Beispielsweise ist die Zahl 5 ein Element im Eingangsbaum, das dort in {0;0;4}(0) gespeichert ist.
Path Mapper (Sets > Tree > Path Mapper) fängt die aufsteigende ganzzahlige Zählung bei a = 0
an und hält dabei das Element in {0;0;a}(0) für eine Transformation in einem Ergebnisbaum fest.
Wo im Ergebnisbaum dieses Element des Eingangsbaums einsortiert wird, hängt von der
Transformationsvorschrift ab, die eine gewünschte Änderung bewirken soll.
In diesem Beispiel sind der Eingangsbaum und der Ausgangsbaum folgendermaßen beschrieben:
Source: {0;0;a}(0)
Target: {0;If(a>2,If(a>5,2,1),0)}(a%3), da a%3 = a mod 3 als Ergebnis 0,1 oder 2 liefert.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
38
Die Komponente Path Mapper sortiert die Elemente wie folgt ein:
{0;0;a=0}(0) {0;If(a>2,If(a>5,2,1),0)}(a%3) = {0;0}(0)
{0;0;a=1}(0) {0;If(a>2,If(a>5,2,1),0)}(a%3) = {0;0}(1)
{0;0;a=2}(0) {0;If(a>2,If(a>5,2,1),0)}(a%3) = {0;0}(2)
{0;0;a=3}(0) {0;If(a>2,If(a>5,2,1),0)}(a%3) = {0;1}(0)
{0;0;a=4}(0) {0;If(a>2,If(a>5,2,1),0)}(a%3) = {0;1}(1)
{0;0;a=5}(0) {0;If(a>2,If(a>5,2,1),0)}(a%3) = {0;1}(2)
{0;0;a=6}(0) {0;If(a>2,If(a>5,2,1),0)}(a%3) = {0;2}(0)
{0;0;a=7}(0) {0;If(a>2,If(a>5,2,1),0)}(a%3) = {0;2}(1)
{0;0;a=8}(0) {0;If(a>2,If(a>5,2,1),0)}(a%3) = {0;2}(2)
Auf diese Art und Weise wird das Element an einer bestimmten Position des Eingangsbaums an
eine neue Position in einem Ergebnisbaum positioniert. Salopp ausgedrückt: „Das Element in rot
wandert in blau“.
Target = {0;Floor(a/3)}(a%3) ist eine weitere Möglichkeit, dieselbe Zielstruktur aus der
Eingangsstruktur zu erzeugen. Die Abrundungsfunktion (Gaußklammer) Floor(x) ist die größte
ganze Zahl, die kleiner oder gleich x ist. D.h. .
Beispiele: Floor(-10,6) = -11, Floor(18,3) = 18 und Floor(1009,5) = 1009.
{0;0;a=0}(0) {0;Floor(0/3)}(0%3) = {0;0}(0)
{0;0;a=1}(0) {0;Floor(1/3)}(1%3) = {0;0}(1)
{0;0;a=2}(0) {0;Floor(2/3)}(2%3) = {0;0}(2)
{0;0;a=3}(0) {0;Floor(3/3)}(3%3) = {0;1}(0)
{0;0;a=4}(0) {0;Floor(4/3)}(4%3) = {0;1}(1)
{0;0;a=5}(0) {0;Floor(5/3)}(5%3) = {0;1}(2)
{0;0;a=6}(0) {0;Floor(6/3)}(6%3) = {0;2}(0)
{0;0;a=7}(0) {0;Floor(7/3)}(7%3) = {0;2}(1)
{0;0;a=8}(0) {0;Floor(8/3)}(8%3) = {0;2}(2)
Neben den bisher vorgestellten grundlegenden Komponenten existiert eine Fülle an anderen
Komponenten, auf die hier nicht näher eingegangen wird. Man könnte beispielsweise mithilfe von
Programmiersprachen wie VB (Visual Basic) oder C# selbst Komponenten programmieren.
VB Script (Maths > Script > VB Script) und C# Script (Maths > Script > C# Script) stehen in
“Grasshopper” zur Verfügung.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
39
2.7 Beschreibung weiterführender Optionen in „Rhinoceros“ und „Grasshopper“
2.7.1 Optionen zum Parameter Number Slider
Durch Anklicken der Option Edit… im
Kontextmenü der Komponente Number
Slider öffnet sich das in Abb. 13 rechts
sichtbare Fenster: Unter „Slider accuracy“
stehen gerade Zahlen E (english: Even
Numbers), ungerade Zahlen O (english: Odd
Numbers), ganze Zahlen N (englisch:
Integer) und Gleitkommazahlen R (englisch:
Floating Point Numbers) zur Verfügung.
Durch Wahl des Datentyps R kann die
Anzahl der Nachkommastellen (englisch:
Digits) festgelegt werden. Es sind höchstens
sechs Nachkommastellen zugelassen.
„Numeric Domain“ .
Im Kontextmenü dieses Parameters kann man mithilfe der Optionen Values und Slider Type das
Intervall und die Art der zu verwendenden Zahlen ebenfalls festlegen (vgl. untenstehendes Bild).
Abbildung 15: Weitere Möglichkeit zur Festlegung der Zahlen im Kontextmenü des Parameters
Number Slider
Was passiert, wenn man im Suchfeld in „Grasshopper“ 10.000 eingibt und die Taste Enter drückt?
Abbildung 14: Festlegung des Intervalls I im
Parameter Number Slider
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
40
2.7.2 Punktsymbole in „Grasshopper“
In „Grasshopper“ gibt es für Punktsymbole drei
Wahlmöglichkeiten (Display > Preview Point Flavour) (vgl.
Abb.16). Bei diesen gibt es kein kreisförmiges Symbol in
dieser Form „O“. Um Punktsymbole dieser Form zu erhalten,
kann man selbst eine Komponente in VB oder C#
programmieren. Die einfachste Möglichkeit hinsichtlich des
damit verbundenen zeitlichen Aufwands besteht aber darin,
Kreise um die Punkte zu zeichnen, Elemente zu verbergen
und Kurven zu bearbeiten (vgl. Abschnitt 2.3).
2.7.3 Hintergrundoptionen in „Rhinoceros“
In der Befehlszeile wird Grid eingegeben und dann die Taste Enter gedrückt. Daraufhin wählt man:
ShowGrid=No ShowGridAxes=No ShowWorldAxes=No, indem man auf Yes mit der linken
Maustaste einmal klickt.
Abbildung 17: Änderung der Eigenschaften des Hintergrundbildes in “Rhinoceros“
Abbildung 16: Punktsymbole in
„Grasshopper“
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
41
Für die Änderung der Hintergrundsfarbe geht man wie folgt vor: Menüleiste View Display
Options Viewport Settings Solid Colour (z.B.) White.
Abbildung 18: Änderung der Hintergrundfarbe in „Rhinoceros“
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
42
2.7.4 Textkomponenten in „Grasshopper“
Grasshopper bietet zwei Komponenten für den Text. Diese sind Text Tag (Vector > Point >
Text Tag) und Text Tag 3D (Vector > Point > Text Tag 3D). Text Tag 3D hat eine zusätzlich
Eingabe für die Schriftgröße. Diese beiden Komponenten bieten aber keine Wahl der Schriftart
innerhalb von „Grasshopper“ (vgl. Abb. 20).
Es existieren mehrere Zusatzmodule (englisch: Addon) für „Grasshopper“, mit denen Text
innerhalb von „Grasshopper“ erzeugt werden kann (HDT Utilities, Fabtools, Horster, …). Es
existieren auch andere Komponenten; z.B. eine Komponente txtLines auf der Webseite von Giulio
Piacentino unter dem Menüpunkt Grasshopper Tools.
Nach Herunterladen des Hilfsprogramms (Addon) zieht man die „Grasshopper“-Datei mit der
Erweiterung .ghx in die Benutzeroberfläche von „Grasshopper“. Man erhält sofort eine neue
Kategorie in Grasshopper (vgl. untenstehende Abbildung).
Abbildung 19: Erweiterungen der Kategorien für „Grasshopper“ mit Addons (Datei-Endung .ghx)
Für die bevorstehenden Aufgaben wurde die Textkomponente aus dem Hilfsprogramm (Addon)
Fabtools benutzt (Text 3D Advanced (Fabtools > Text > Text 3D Advanced)).
Im untenstehenden Beispiel wird gezeigt, wo diese Textkomponente zu finden ist und wie sie
anzuwenden ist. Auch wird eine weitere Komponente aus diesem Hilfsprogramm kurz erläutert.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
43
Beispiel:
Auf der Webseite von Fabtools (vgl. Anhang 8 und
nebenstehender Abbildung) kann man ein Beispiel für
diese Textkomponente, mit deren Hilfe ein
„Rhino.Geometry.TextEntity“ erzeugt wird, finden.
Abbildung 20: Die Komponente für den Text kann alleine für sich heruntergeladen werden
Auch kann man eine Anleitung finden, wie man die
Komponenten korrekt herunterladen kann. „Grasshopper“
oder „Rhinoceros“ müssen nicht neugestartet werden, um
die Komponenten anwenden zu können (vgl. Abb. 19 und
Abb. 20).
Abbildung 21: Eine Anleitung für die Installation steht ebenfalls auf der Webseite von Fabtools
Der Entwickler von Fabtools (Florian Frank) hat zusätzlich eine
Komponente, die Advanced Custom Preview genannt
wird, entwickelt. Mithilfe dieser Komponente wird es möglich,
Kurven eine Kurvenstärke zu geben. Allerdings dient diese
Komponente nur der Darstellung und ist nicht massstäblich
(vgl. Abb. 21 rechts mittig).
Abbildung 22: Wahl der Schriftart innerhalb von „Grasshopper“
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Eine kurze Einführung in die Arbeit mit „Grasshopper“ für „Rhinoceros“
44
Da Text 3D Advanced als Ausgabe eine Zeichenkette (Rhino.Geometry.TextEntity) ausgibt, ist es
nicht möglich, auf den Text als Objekt in „Grasshopper“ zuzugreifen. Dafür bietet Fabtools die
Komponente Text Contour (Fabtools > Text > Text Contour) an. Diese nimmt das Output
der Textkomponente an und gibt Kurven aus, die den Umfang der Buchstaben des Textes
der Komponente Planar Srf (Surface > Freeform > Planar Srf) wird festlegen. Mithilfe
eine Fläche innerhalb dieses Umfangs erzeugt. Mithilfe der Komponente Colour Swatch (Params
> Input > Colour Swatch) ist es möglich, Farben zu erzeugen (vgl. Abb. 21). Die Komponente
Custom Preview (Vector > Colour > Custom Preview) dient dazu, die ihr in G zugewiesene
Geometrie eine Farbe S zu verleihen.
Abbildung 23: Mithilfe der Komponenten Text Contour und Planar Srf wird ein Zugriff auf das
Textobjekt ermöglicht
Im Kontextmenü irgendeiner Eingabe von irgendeiner Komponente kann man die Verbindung
ausblenden, wenn man die Option Hidden Display über Wire Display anklickt.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
45
3 Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der
Darstellenden Geometrie
3.1 Problemstellung: Ermittlung der wahren Länge einer gegebenen Raumstrecke [AB] in
Zweitafelprojektion
Diese wahre Länge ist aus Grund- und Aufriss der Strecke
nicht unmittelbar zu entnehmen.
Die hier vorgestellten Lösungsansätze gehen auf Gaspard
Monge (1746-1818; französischer Mathematiker, Physiker
und Chemiker) zurück. Er hat unter anderem ein Werk
„Darstellende Geometrie“ veröffentlicht.
Das linksstehende Bild zeigt – in leicht nachvollziehbarer
Weise – eine elementar geometrische Möglichkeit, aus
Grund- und Aufriss einer Strecke [AB] diese in wahrer Größe
zu konstruieren.
3.1.1 Lösung des Problems mithilfe von „Rhinoceros“ und „Grasshopper“
Der Punkt A ist der Startpunkt A der Raumstrecke [AB]. Der Anwender darf seine Position im
ersten Quadranten selbst festlegen. Dafür eignet sich beispielsweise die Komponente Point XYZ
(Vector > Point > Point XYZ) (vgl. Abschnitt 2.1). Für seine kartesischen Koordinaten (Eingabe für
Point XYZ) kann man den Parameter Number Slider (Params > Input > Number Slider) (vgl.
Abschnitt 2.7.1) anwenden (vgl. untenstehendes Bild).
Abbildung 24: Festlegung des Anfangspunktes A der Strecke [AB]
Der Endpunkt B wird auf dieselbe Art und Weise vom Anwender festgelegt. Zwischen A und B wird
eine Strecke [AB] samt ihrer Länge
als Ausgabe der
Komponente Line (Curve > Primitive > Line) zur Verfügung gestellt. Die Eingabe der Koordinaten
bezieht sich auf das globale Koordinatensystem, da die Eingabe S als x, y-Ebene voreingestellt ist.
Für die Koordinaten der Punkte A und B wurde jeweils ein ganzzahliges Zahlenintervall von 1 bis
20 gewählt.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
46
Abbildung 25: Konstruktion einer Raumstrecke [AB] in "Grasshopper"
Die Schrift, die in der Benuteroberfläche zu „Grasshopper“ erscheint (Abb.25), wird mit der
Komponente Scribble (Params > Util > Scribble) realisiert.
Im Punkt A wird eine Rotationsachse senkrecht zur x, y-Ebene konstruiert (vgl. folgende Abb.26).
Abbildung 26: Konstruktion einer vertikalen Drehachse durch den Anfangspunkt A
Im Punkt B wird eine zur x, y-Ebene parallele Ebene ε mithilfe der Komponente XY Plane (Vector
> Plane > XY Plane) definiert und in dieser Ebene werden dann mithilfe der Komponente Project
(Transform > Affine > Project) der Punkt A und die Strecke [AB] projiziert. Mehrere Eingaben
sind durch gedrückt Halten der Taste SHIFT möglich. Es wird zuerst der Punkt A und dann die
Strecke [AB] mit der Eingabe G der Komponente Project (Transform > Affine > Project)
verbunden. In der Ausgabenliste G der Komponente Project ist das erste Element die Projektion
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
47
des Punktes A in ε; das zweite Element ist die Projektion der Strecke [AB] in ε (vgl. nachstehende
Abb.27).
Abbildung 27: Projektion des Punktes A in einer im Punkt B definierten x, y-Ebene ε
Mit Dispatch (Sets > List > Dispatch) werden aus der Ausgabenliste G der Komponente Project
die Projektionen extrahiert. In der Projektion des Punktes A in ε wird eine zur x, y-Ebene parallele
Ebene δ festgelegt. Relativ zur Ebene δ wird der Punkt B mithilfe der Komponente To Polar
(Vector > Point > To Polar) eindeutig erfasst (vgl. nachstendes Bild).
Abbildung 28: Definition einer x,y-Ebene δ durch die Projektion von A in ε
Der Punkt B liegt in einem Quadranten (I, II, III, IV) des x, y- Koordinatensystems der Ebene δ. In
welchem Quadranten B liegt, hängt von der Ausgabe P der Komponente To Polar (Vector > Point
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
48
> To Polar) ab. Mithilfe der Komponente Domain (Maths > Domain > Domain) und des
Parameters Panel (Params > Input > Panel) werden die vier Zahlenintervalle:
erzeugt (In Panel muss man die Option Multiline Data anklicken, um
eine geordnete Liste zu erhalten). Dann wird über die Komponente Includes (Maths > Domain >
Includes) abgefragt, in welchem Quadranten der Punkt B bezogen auf δ liegt. Die Ausgabeliste I
von Includes mit vier Booleanvariablen (True/False) gibt True den Quadranten an, in dem B liegt.
Bei P =
tritt das Ergebnis True logischerweise jeweils zweimal auf.
Abbildung 29: Festlegung der Position des Punktes B relativ zu δ
Eine weitere Möglichkeit, diese Intervalle festzulegen, ist mit Consecutive Domain (Maths >
Domain > Consecutive Domain) möglich (vgl. untenstehendes Bild. Hinweis: A = False).
Abbildung 30: Weitere Möglichkeit zur Festlegung eines Zahlenintervalls mit Consecutive Domain
Mithilfe der Komponente Rotate Axis (Transform > Euclidean > Rotate Axis) wird die
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
49
Strecke [AB] um die vertikale Achse durch A in eine parallele Lage zur y, z- Ebene gedreht. In die
Eingabe G kommt die Strecke [AB], in X die vertikale Achse durch den Punkt A (Rotationsachse).
Für die Eingabe A wird in Abhängigkeit der Lage des Punktes B, die durch den Winkel P
(Ausgabe P von To Polar) in der Ebene δ beschrieben ist, die Strecke [AB] am schnellsten parallel
zur y, z-Ebene gedreht (vgl. die folgenden Bilder).
Mit Dispatch (Sets > List > Dispatch) extrahiert man den passenden Drehwinkel je nach Lage
des Punktes B aus einer in Panel (Params > Input > Panel) selbst eingetippten Liste der nach dem
folgenden Bild berechneten Drehwinkel, der für die Rotation gebraucht wird (Option: Multiline
Data).
Da bei P =
der jeweilige Winkel doppelt in der Ausgabe A angezeigt wird, extrahiert man
mit List item (Sets > List > List Item) das erste Element in der Ausgabenliste A. Die Eingabe i ist
mit 0 voreingestellt.
Dieser Winkel wird mit Number Slider (Params > Input > Number Slider), der Zahlen zwischen
0,000 und 1,000 annehmen kann, multipliziert.
Mit Number Slider kann man jetzt die Rotation beeinflussen. Dieser Parameter Number Slider ist
der Parameter t, der die Aufgabe löst, wenn er seinen Endwert (=1,000) erreicht.
Abbildung 31: Drehen der Strecke [AB] parallel zur Aufrissebene
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
50
Abbildung 32: Die Lage des Strecke [AB°] hängt vom parametrischen Drehwinkel ab
Der Endpunkt der Strecke [AB°], die in der Ausgabe G der Komponente Rotate Axis (Transform >
Euclidean > Rotate Axis) vorliegt, ist der Punkt B°.
Mit Arc SED (Curve > Primitive > Arc SED) wird ein Kreisbogen um die Projektion von A in ε (:=
A*) gezeichnet. S = B markiert den Anfangspunkt und E = B° den Endpunkt des Kreisbogens. Die
Richtung D des Tangentenvektors am Startpunkt hängt von der Lage des Punktes B relativ zur
Ebene δ ab.
Für D wird mit Vector 2Pt (Vector > Vector > Vector 2Pt) ein Vektor von A* nach B definiert.
Dreht man nun diesen Vektor positiv um
(B liegt im ersten oder im dritten Quadranten) oder
negativ um
(B liegt im zweiten oder im vierten Quadranten) gedreht, so ist dieser gedrehte Vektor
der Tangentenvektor am Startpunkt S des Kreisbogens.
Auch hier wird List Item (Sets > List > List Item) nochmal angewandt, falls True doppelt vorkommt
und somit zwei Eingaben A von Vector 2Pt vorliegen (vgl. folgendes Bild).
t = 0 bedeutet für den Kreisbogen, dass sein Startpunkt B mit seinem Endpunkt B° zusammenfällt.
In diesem Fall entsteht eine Ausgabe A = Line(L:0.00 cm) von Arc SED.
Nun kann man mit Merge (Sets > Tree > Merge) die drei Punkte A, B und B°, die zwei
Strecken [AB] und [AB°] sowie den Kreisbogen zwischen B und B ° speichern. Aus dem letzten
Satz ist die Reihenfolge der Elemente der Ausgabe R von Merge zu entnehmen (vgl.
nachstehende Abbildungen).
Abschließend kann man den gesamten Algorithmus markieren und alle Komponenten und
Parameter bis auf die Komponente Merge, in der drei Punkte und drei Kurven gespeichert sind,
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
51
ausblenden. Hiermit ist das Problem, eine beliebige Strecke [AB] im Raum parallel zur
Aufrissebene zu drehen, gelöst.
Abbildung 33: Festlegung eines parametrischen Richtungsvektors am Anfangspunkt B des
räumlichen Kreisbogens von B nach B°
Abbildung 34: In der Komponente Merge liegen die Punkte A,B und B° sowie die Strecken [AB],
[AB°] und der räumliche Kreisbogen von B nach B°
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
52
3.1.2 Projektion der Raumgeometrie in die x, y – Ebene (Grundrissebene) und in die y, z –
Ebene (Aufrissebene), Kurvenbearbeitung und Beschriftung
Durch Bearbeitung von Kurven innerhalb von „Grasshopper“ kann ein kreisförmiges Punktsymbol
realisiert werden. Zeichnet man Hilfszylinder in den Raumpunkten, die orthogonal zur x, y-Ebene
und zur y, z-Ebene stehen, so entstehen durch Projektion dieser Hilfszylinder in die genannten
Ebenen Kreise. Die Schnittmenge der Hilfszylinder mit den Raumkurven wird nicht projiziert.
Mit der Ausgabe R der Komponente Merge (Sets > Tree > Merge) wird nun weiter gearbeitet. Mit
Split List (Sets > List > Split List) wird die Liste L = R beim Index i = 3 in zwei Listen A und B
zerlegt. In der Liste A sind die drei Punkte A, B und B° und in B die drei Kurven [AB], [AB°] sowie
den Kreisbogen von B nach B° enthalten (vgl. nachfolgendes Bild).
In den Raumpunkten A, B und B° werden jeweils eine x, y-Ebene (Grundriss) und eine y, z-Ebene
(Aufriss) definiert. Die Ausgabe der Liste A von Split List wird mit der Eingabe von XY Plane
(Vector > Plane > XY Plane) und YZ Plane (Vector > Plane > YZ Plane) verbunden.
Mit Entwire (Sets > Tree > Entwire) wird eine Baumstruktur festgelegt, in der die definierten
Ebenen gespeichert werden (vgl. nachstehende Abb.35).
Abbildung 35: Definieren von x,y-Ebenen {0;0} und x,z-Ebenen {0;1} in den Raumpunkten A und B
Auf dem Ast {0;0} werden Hilfszylinder mit Cylinder (Surface > Primitive > Cylinder) in den
definierten x, y-Ebenen, auf dem Ast {0;1} Hilfszylinder in den y, z-Ebenen gezeichnet. Mit Move
(Transform > Euclidean > Move) werden die Hilfszylinder in der x, y-Ebene und die in der y, z-
Ebene in die Richtung des negativen Normalenvektors der jeweiligen Ebene verschoben. Mit Cap
Holes (Surface > Util > Cap Holes) werden die Endflächen der Hilfszylinder geschlossen,
um ein B-rep zu erhalten (vgl. folgende Abb.).
Die Höhe L der Hilfszylinder wird zu 100 LE gewählt. Der einheitliche Radius R der Hilfszylinder ist
der Radius der kreisförmigen Punktsymbole und wird als Gleitkommazahl mit drei
Nachkommastellen zwischen 0 und 1 gewählt.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
53
Abbildung 36: Konstruktion von Hilfszylindern und Schließen der Endflächen der B-rep Modellen
B-rep steht als Abkürzung für ein Begrenzungsflächenmodell (englisch: Boundry Representation).
B-rep Modelle finden bevorzugt in der Visualisierung von Computergrafik und bei CAD-
Programmen Anwendung, da sie algorithmisch schnell verarbeitbar sind.
Die Ausgabenliste B von Split List (vgl. vorherige Seite) enthält die Raumkurven, die nun mit den
Hilfszylindern zum Schnitt gebracht werden. Die drei Raumkurven, die sich in der Ausgabenliste Co
(Index o: englisch: outside) der Komponente Trim with Breps (Intersect > Region > Trim
with Breps) ergeben, sind in die Rissen zu projizieren (vgl. nachstehendes Bild).
Die B-rep Modelle, die in der Ausgabe B von Cap Holes liegen, sind in einer Baumstruktur
geordnet. In {0;0} sind drei Hilfszylinder in der x, y-Ebene, in {0;1} drei Hilfszylinder in der y, z-
Ebene (kürzer: {0,a} (b) mit a ganzzahlig zwischen 0 und 1 und b ganzzahlig zwischen 0 und 2).
Die Raumkurven aus B von Split List sind in einer geordneten Liste mit den Indizes 0,1 und 2
enthalten.
Die Ausgabe Co von Trim with Breps (Intersect > Region > Trim with Breps) enthält deshalb
sechs Elemente. Die Elemente in {0;0;0}(0), in {0;0;1}(0) und in {0;0;2}(0) sind in die x, y-Ebene zu
projizieren. Die Element in {0;1;0}(0), in {0;1;1}(0) und in {0;1;2}(0) sind in die y, z-Ebene zu
projizieren (vgl. Ausgabe Co).
Abbildung 37: Mit Trim Breps werden die Raumkurven für die Projektionen in die x,y-Ebene und in
die y,z-Ebene bereitgestellt
Mit Path Mapper (Sets > Tree > Path Mapper) kann man die gewünschten Kurven für die
Projektionen in die x, y- Ebene und in die y, z- Ebene in einer Baumstruktur elegant einsortieren.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
54
Da in diesem Beispiel der Eingangsbaum durch die Symbolik (Source) {0;a;b}(0) (mit a ganzzahlig
zwischen 0 und 1 und b ganzzahlig zwischen 0 und 2) vollständig beschrieben ist, kann der hier
gewünschte Ausgangsbaum durch die Transformationsvorschrift (Target) {0;a}(b) erreicht werden.
Dies bedeutet: {0;a;b}(0) {0;a}(b)
Das Element in {0;0;0}(0) (Source) wird im Ergebnisbaum nach {0;0}(0) transformiert.
{0;0;1}(0) {0;0}(1)
{0;0;2}(0) {0;0}(2)
{0;1;0}(0) {0;1}(0)
{0;1;1}(0) {0;1}(1)
{0;1;2}(0) {0;1}(2)
Abbildung 38: In {0;0} ({0;1}) werden die in die x,y-Ebene (y,z-Ebene) zu projizierenden
Raumkurven gespeichert
Das Ergebnisbaum hat 2 Äste {0;0} und {0;1}, wobei jeder Ast 3 Elemente (0), (1) und (2) enthält.
Die Variablen a und b könn
en auch beispielsweise als x und y oder i und j definiert werden. Diese Variablen sowie die
aufsteigende Zählung orientieren sich immer am Eingangsbaum.
Andere Lösungen sind beispielsweise mit Shift Paths (Sets > Tree > Shift Paths), mit Split
Tree (Sets > Tree > Split Tree) oder anderen Komponenten bzw. Methoden möglich.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
55
Abbildung 39: "Grasshopper" bietet andere Möglichkeiten für ein und dieselbe Aufgabe an
Nun werden die Kurven in die x, y-Ebene und in die y, z-Ebene projiziert. Die im Grundriss
projizierten Kurven werden um die y-Achse um +90° gedreht, damit eine ebene Ansicht in
„Rhinoceros“ im Ansichtsfenster Right möglich wird. In der Komponente Advanced Custom
Preview steht die Eingabe thick für die Linienstärke (vgl. Abschnitt 2.7.4).
Abbildung 40: Nach Projektion der bearbeiteten Raumkurven entsteht die gewünschte
geometrische Konstruktion im Ansichtsfenster Right in "Rhinoceros"
Für die Farbe der Strecke [A‘‘B°‘‘] im Aufriss wird eine Bedingung eingeführt, die vom Parameter t
abhängt. Sobald t den Wert 1 erreicht, wird eine rote Farbe für die Strecke von Evaluate (Maths >
Script > Evaluate) ausgegeben und von Custom Preview (Vector > Colour > Custom Preview)
angenommen (vgl. folgende Abbildung.41).
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
56
Abbildung 41: Färbung der wahren Länge bei t=1 und Eingeben einer Bedingung
Für die Farbgebung wurde die Komponente Colour Swatch (Params, Input, Colour
Swatch) angewandt.
Nach der Bearbeitung der räumlichen Kurven und anschließender Projektion und Rotation dieser
Kurven kann man im nächsten Schritt die Punkte A, B und B° auf dieselbe Art und Weise
bearbeiten und Kreise um ihre Projektionen mit dem Radius zeichnen, der für die Hilfszylinder
festgelegt wurde (vgl. untenstehende Abb.).
Abbildung 42: Kreise um die Punkte mit dem Radius R der Hilfszylinder
Die Ausgabe C der Komponente Circle (Curve > Primitive > Circle) enthält Kreise um A‘, B‘, B°‘,
A‘‘, B‘‘ und B°‘‘ (In dieser Reihenfolge). Abschließend werden „Ordner“ gezeichnet, die A‘ und A‘‘,
B‘ und B‘‘ sowie B°‘ und B°‘‘ verbinden. Mit Center (Curve > Analysis > Center) können der
Mittelpunkt C und der Radius R eines gegebenen Kreises oder Kreisbogens A extrahiert werden.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
57
Eine weitere Möglichkeit, Mittelpunkte von Kreisen zu extrahieren, ist mithilfe des Parameters
Point (Params > Geometry > Point) möglich (vgl. untenstehende Abb.43).
Abbildung 43: Konstruktion der "Ordner" in der Bildebene
Mit Extend (Curve > Util > Extend) werden die „Ordner“ verkürzt, L0 = L1 = -R.
Nun werden die sechs Punkte A‘, B‘, B°‘, A‘‘, B‘‘ und B°‘‘ mit Text 3D Advanced (Fabtools > Text >
Text 3D Advanced) beschriftet (vgl. Abschnitt 2.7.4). Für die Eingabe L wird eine Liste mit
Punkten erzeugt, die die Position des Textes angibt. Für die Position der Beschriftung sind
geeignete Punkte in der Nähe der oben genannten Punkte zu finden.
Da die Geometrie sich in Abhängigkeit des Parameters t dynamisch verändert und die Positionen
der Punkte in der Ebene in Abhängigkeit von den Endpunkten A und B der Strecke [AB] vom
Anwender beliebig festgelegt werden kann, soll eine Fallunterscheidung durchgeführt werden.
Dabei wird anhand der y-Koordinaten (Rißachse) der Projektionen überprüft, wie die oben
genannten Punkte zueinander liegen. Je nach Lage dieser Projektionen zueinander wird jeweils
ein geeigneter Vektor T = {0,y,z} zu A‘, B‘, B°‘, A‘‘, B‘‘ und B°‘‘ definiert und mit Move (Transform >
Euclidean > Move) zu diesen Punkten jeweils addiert. Die Ausgabe G von Move legt die Position
der Beschriftung für den jeweiligen Punkt fest (vgl. untenstehendes Bild mit dem Algorithmus in
„Grasshopper“).
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
58
In Panel (Params > Input > Panel) kann man immer die Position des Textes relativ zum jeweiligen
Punkt je nach Lage der Punkte zueinander bei einer bestimmten Situation (z.B. bei einer Animation
des Bewegungsablaufs) exakter selbst festlegen.
Für die Eingabe T wird eine Liste mit dem Text bereitgestellt. Zunächst wird in Panel (Params >
Input > Panel) eine Liste L mit den Beschriftungen A‘, B‘, A‘‘ und B‘‘ eingetippt. Dabei muss man
die Option Multiline Data anklicken, um eine geordnete Liste zu erhalten. Für die Beschriftungen
B°‘ und B°‘‘ wird die Bedingung eingeführt, dass sie erst dann erscheinen sollen, wenn der
Parameter t den Wert 0,5 überschritten hat. Diese Bedingung kann in Evaluate (Maths > Script >
Evaluate) realisiert werden. Dafür wird in Panel eine Liste mit zwei Elementen erzeugt. Dabei ist
das erste Element If(x>0.5, " B°' ", " ") und das zweite If(x>0.5, " B°'' ", " "). Die Ausgabe r von
Evaluate (Maths > Script > Evaluate) ist entweder eine Liste mit den Elementen B°‘ und B°‘‘ oder
eine leere Liste. Die Elemente in r werden mithilfe von List Insert (Sets > List > List Insert) an
eine passende Stelle der Liste L eingefügt (vgl. nachstehende Abbildung).
Abbildung 44: Beschriftung mit der Komponente Text 3D Advanced
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
59
In der untenstehenden Abb.45 ist ein visueller Algorithmus für die Rißachse und ihre Beschriftung.
Abbildung 45: Der Algorithmus für die Rißachse mit ihrer Beschriftung x1,2 in "Grasshopper"
Für die Parallelstriche wird zunächst ein Algorithmus entwickelt. Dieser Algorithmus nimmt einen
Punkt an und erzeugt dort zwei Parallelstriche (vgl. untenstehende Abb.46). Dann wird dieser
Algorithmus mit Path Mapper (Sets > Tree > Path Mapper) modifiziert, so dass auch der
Anschluss mehrerer Punkte möglich wird. Die Wahl der Option Simplify aus dem Kontextmenü
der Baumstruktur vereinfacht diese Baumstruktur, falls sie undurchsichtig erscheint.
Abbildung 46: Die Eingabe Dk von Merge nimmt einen Punkt an und erzeugt dort Parallelstriche,
die in {0;k} im Algorithmus gespeichert werden
Der Eingangsbaum (Source) ist mit Simplify durch , wobei n
die Anzahl der Punkte ist, vollständig beschrieben. Der gewünschte Zielbaum bzw. Ergebnisbaum
(Target) kann mit erzeugt werden. Hinweis: Auch {0;a+1} als Target
würde hier alleine reichen und auch zum gewünschten Ergebnisbaum führen.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
60
Im Ergebnisbaum liegt auf dem Ast {0;k} vier geraden Linien, die zusammen die Parallelstriche um
den Punkt bilden, der mit der Eingabe DK der Komponente Merge (Sets > Tree > Merge)
verbunden ist. Die Punkte in der geometrischen Konstruktion, in denen die Parallelstriche
auftauchen, werden nun extrahiert und im obigen Algorithmus mit der Komponente Merge
verbunden.
Damit die Parallelstriche in einem bestimmten Zeitintervall hintereinander auftauchen wird die
Komponente Counter (Extra > GENERATION > Counter) herangezogen (Addon). Die Eingaben
für diesen Zähler sind: Startwert S, Schrittweite S, Pause P (True/False) und Neu starten R
(True/False).
Damit diese Komponente funktioniert, ist noch eine Besonderheit zu beachten: In P ist außer der
Eingabe False (Keine Pause) die zusätzliche Verbindung mit dem Parameter Timer (Params
> Util > Timer) notwendig. Dieser Parameter aktualisiert die Eingabe P im Sekundentakt
(voreingestellt; vgl. Option Intervall im Kontextmenü des Parameters Timer).
Für S wird 0 als Startwert der Aufzählung gewählt. Für die Schrittweite wird S = 1 eingegeben. Für
die Verbindung der Ausgabe des Parameters Timer mit der Eingabe P von Count ist das gedrückt
Halten der SHIFT-Taste nicht erforderlich.
Die Booleanwerte für P und R von Count werden vom Parameter t abhängig gemacht. Mithilfe von
Evaluate (Maths > Script > Evaluate) wird folgende Bedingung eingeführt: If(x<1,“True”,“False“),
wobei t (Parameter für die Lösung der Aufgabe) mit der Eingabe x von Evaluate verbunden wird.
Diese dynamische (True oder False) Ausgabe r von Evaluate wird sowohl mit der Eingabe P als
auch mit der Eingabe R von Count verbunden.
t = 1 r = False = P = R. In diesem Fall gibt die Ausgabe C von Count Zahlen ab 0 in
Sekundentakt aus. Wenn man die Komponente 15 Minuten „arbeiten“ lässt, dann kann man
mithilfe des Parameters Panel (Params > Input > Panel) feststellen, dass die Zahl in diesem
Moment 15 * 60 = 900 ist. Da diese Zahlen schnell wachsen, kann man durch ganzzahlige Division
a\b = Floor(a/b) erreichen, dass b Sekunden zwischen einer Zahl und der nächsten liegen. Eine
andere Möglichkeit ist durch die Einstellungen im Kontextmenü der Komponente Timer möglich.
Abbildung 47: Kombination der Komponente Counter mit der Komponente Timer
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
61
Mit Stream Filter (Sets > Tree > Stream Filter) werden nun die Parallelstriche herausgefiltert und
mit Custom Preview (Vector > Colour > Custom Preview) in „Rhinoceros“ angezeigt (vgl.
untenstehende Abbildungen).
Abbildung 48: Mit Stream Filter in Kombination mit Counter und Timer werden die Parallelstriche
hintereinander angezeigt. Die Punkte A und B können vom Anwender beliebig festgelegt werden.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
62
3.1.3 Animation mit GIMP
Nach der Parametrisierung der Aufgabe mit „Grasshopper“ kann man den Bewegungsvorgang
animieren, d.h. Bilder während des Bewegungsablaufs von der geometrischen Konstruktion
aufnehmen, die schnell hintereinander auf dem Bildschirm gewechselt werden.
Zunächst überlegt man sich, wie lange die Animation insgesamt dauern soll und wie lange welches
Bild auf dem Bildschirm verweilen soll. Eine „gute“ Animation hat z.B. 25 [ms] (milliseconds) pro
Bild. Das heisst, ein Bild verweilt 25 Millisekunden auf dem Bildschirm, dann kommt das nächste
Bild.
Die folgende Aufstellung zeigt die Verweilzeit bestimmter Bilder aus der Animation, die insgesamt
20 Sekunden dauern soll:
Vier Sekunden für die Darstellung der Projektionen im Grund- und Aufriss.
Eine Sekunde für die Vorbereitung der Darstellung der wahren Länge mit schwarzer Farbe
(Am Ende der Animation).
Drei Sekunden für die Darstellung und die Veranschaulichung der wahren Linie, die am
Ende der Konstruktion eine rote Farbe erhält.
Zwei Sekunden für die Darstellung der Parallelstriche bei der Rißachse.
Zwei Sekunden für die Darstellung der Parallelstriche bei der Strecke zwischen A‘ und B°‘.
(Das dritte Bild aus der zweiten Animation)
Vier Sekunden für die Darstellung der Parallelstriche bei der Strecke zwischen A‘‘ und
B°‘‘.(Das vierte Bild aus der zweiten Animation und letztes Bild)
In den verbleibenden 4 Sekunden soll das Paralleldrehen zur Aufrissebene stattfinden. Es ist nun
die Anzahl X der Bilder herauszufinden, die in diesen 4 Sekunden mit 25 ms abgespielt werden.
25 ms/Bild * X Bild = 4000 ms X = 4000/25 = 160 Bilder
Im Kontextmenü des Parameters t klickt man die Option Animate… an.
Im daraufhin sichtbaren Fenster gibt man „Frame Count“ = 159 ein. Es werden 160 Bilder erzeugt,
da die Zählung ab 0 anfängt (0 … 159). Dort klickt man auf Browse, auf Neuen Ordner erstellen
und legt einen neuen Ordner an. Das ist der Ordner, in dem die während des Bewegungsablaufs
aus „Rhinoceros“ entnommenen Bilder gespeichert werden.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
63
Die Animation kann auch mit verschiedenen anderen Programmen erreicht werden. Hier wird
GIMP verwendet, um diese Animation zu erstellen. In diesem Programm wird die Verweilzeit
neben jedem Bild in runden Klammern angegeben, z.B. Bild-xyz (25ms).
Mit Rename_It! (Ein Programm für die Massenbenennung von Dateien in Windows) wird neben
jedem Bild eine Zeit in runden Klammern angegeben.
In GIMP geht man auf Datei Neu Vorlagen 800 x 600 px Fenster Andockbare
Dialoge Ebenen. Dann markiert man alle Bilder und zieht sie so, dass man sie in dem gerade
geöffneten Fenster der Ebenen ablegt (vgl. folgendes Bild)
Abbildung 49: Markieren der Bilder mit STRG + A und ziehen ins Fenster Ebenen von GIMP
Dann geht man in GIMP auf Ebenen Stapel Reihenfolge der Ebenen umkehren, um die
richtige Reihenfolge für die Animation zu bewirken. Abschließend geht man auf Datei
Exportieren und wählt im nun sichtbaren Fenster das Format .gif. Zuvor könnte man die
bevorstehende GIF-Datei optimieren, indem man Optimieren über Filter Animation
Optimieren für GIF anklickt.
Somit hat man eine GIF-Datei, aus der z.B. mit Format Factory ein Video produziert werden kann.
Das Video hat eine Spiellänge von 20 Sekunden. Format Factory dient der Konvertierung
verschiedener Dateiformate. Mit Virtual Dub kann man die Bilder zu einem Video
zusammenfügen.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
64
3.2 Die Umsetzung der geometrischen Konstruktion der wahren Schnittellipse eines
Kegelschnittes in „Grasshopper“
„Die Kurven, die als Schnitt einer Ebene mit einem Drehkegel entstehen, sind von grosser
Bedeutung in der Mathematik und insbesondere der Geometrie. Man unterscheidet drei Arten von
Kegelschnitten je nach Lage der Schnittebene zu den Erzeugenden des Kegels. Es gibt den
elliptischen, den parabolischen und den hyperbolischen Kegelschnitt.“ (Haack, W. 1971, [2])
„Der Kegel selbst entsteht durch folgenden Vorgang: Eine gerade s bewegt sich so im Raume,
dass sie stets durch einen festen Punkt S (Spitze) geht und dabei längs einer Kurve (Leitkurve)
geleitet. Da die Gerade unendlich lang ist, entsteht ein Doppelkegel, der an sich unendlich gross
ist. Liegt der Punkt S im unendlichen, so verschiebt sich die Gerade längs der Leitkurve und behält
ihre Richtung bei. So entsteht der Zylinder als Sonderfall des Kegels. Der am meisten auftretende
Kegel ist der Drehkegel, bei dem die Leitkurve ein Kreis ist und die Spitze S auf dem Lot zur
Kreisebene durch den Mittelpunkt des Kreises liegt.“ (Fucke, R. , Kirch, K. ; Nickel, H. 2007, [4])
Im Folgenden wird der elliptische Kegelschnitt eines Drehkegels, dessen Leitkurve ein Kreis ist
und dessen Spitze S auf dem Lot zur Kreisebene durch den Mittelpunkt des Kreises liegt, mit
„Grasshopper“ parametrisiert und anschließend animiert.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
65
3.2.1 Eingabe des Kreiskegels im Grund- und Aufriss in „Grasshopper“
Man öffnet ein neues Projekt in „Grasshopper“. Danach öffnet man die „Grasshopper“-Datei, in der
der Algorithmus für die erste Aufgabe bereits vorliegt. Oben rechts hat man die Möglichkeit
zwischen den geöffneten Dateien zu wechseln (vgl. nachstehende Abb.).
Abbildung 50: Möglichkeit zum Wechseln zu einem anderen Projekt (oben rechts)
Aus dem bereits programmierten Algorithmus wird der Algorithmus für die Rißachse markiert (vgl.
Abb. 45), kopiert und im neuen Projekt eingefügt; so muss der Algorithmus von vorne nicht noch
einmal eingeben werden.
Im nächsten Schritt zeichnet man die Projektion der Leitkurve des Kreiskegels im Aufriss (Hier: x,
y-Ebene). Der Radius der Leitkurve kann mit Number Slider (Params > Input > Number Slider)
verändert werden. Hier wurde für die Länge des Radius ein Intervall von 0 bis 10 LE gewählt.
Danach wird auch die Projektion der Kegelspitze im Aufriss S‘‘p, die vertikal über dem Mittelpunkt
der Leitkurve steht, eingegeben. Die Höhe des Kreiskegels kann man mit Number Slider (Params
> Input > Number Slider) ebenfalls verändern.
Für die Höhe des Kreiskegels wurde ein Intervall von 0 bis 20 LE festgelegt. Diese Intervalle kann
man jederzeit leicht neu definieren (vgl. untenstehende Abbildung).
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
66
Abbildung 51: Eingabe von parametrischen Punkten, die den Aufriss des Kegels festlegen
Der Aufriss eines geraden Kreiskegels ist ein gleichschenkliges Dreieck, dessen Schenkel
Mantellinien des Kegels sind und dessen Basis der Durchmesser des Grundkreises ist. Nun
zeichnet man diese beiden Mantellinien des Kegels.
Abschließend gibt man S‘‘p das kreisförmige Punktsymbol und verbirgt nicht benötigte Punkte,
indem man beispielsweise mit einem rechten Mausklick das Kontextmenü der jeweiligen
Punktkomponente zeigen lässt und in diesem Preview anklickt.
Mit Curve | Curve (Intersect > Physical > Curve | Curve) wird der Kreis mit den Mantellinien
geschnitten. In diesen Schnittpunkten werden die Mantellinien mit Shatter (Curve > Division >
Shatter) in vier Teilstrecken zerlegt. Die zwei Teilstrecken innerhalb des Kreises werden
ausgeblendet (vgl. folgende Abbildungen).
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
67
Abbildung 52: Mit Preview können nicht benötigte geometrische Elemente ausgeblendet werden
Abbildung 53: Durch Kurvenbearbeitung kann ein kreisförmiges Punktsymbol erzeugt werden
Die Zeichnung enthält jetzt nur S‘‘p und die zwei sichtbaren Teilstrecken. Nun kann man S‘‘p
beschriften und den sichtbaren geometrischen Objekten schwarz färben.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
68
Abbildung 54: Die Beschriftung erfolgt mit Text 3D Advanced (Fabtools > Text)
Nun kann man die so erhaltene Projektion des Kreiskegels im Aufriss mit der Rissachse so binden,
dass bei der Verschiebung der Projektion des Mittelpunktes (M) der Leitkurve entlang der x-Achse,
mit der die Verschiebung der Projektion des gesamten Kreiskegels im Aufriss verknüpft ist,
variieren. Dabei darf der Aufriss des Kreiskegels nicht über die Begrenzung der Rissachse
hinausgehen. Es wird somit ein dynamisches Intervall festgelegt.
Ein Number Slider (Params > Input > Number Slider) hat statische Intervallgrenzen. Will man
dynamische Intervallgrenzen festlegen, ist dafür die Komponente Remap Numbers (Maths >
Domain > Remap Numbers) geeignet (vgl. Abschnitt 2.6). Man bildet mit Domain ein
dynamisches Intervall I von A nach B. Dieses Intervall I wird als Input T für Remap Numbers
benötigt. Als Input V kann ein Number Slider (Params > Input > Number Slider) mit statischen
Intervallgrenzen von 0 bis 1 benutzt werden.
Diese dynamischen Intervallgrenzen A und B hängen von der x-Koordinate xS des Startpunktes
auf der Rißachse, vom Radius R des Kreiskegels und von der Länge der Rißachse L ab. Sie
geben die Bewegungsmöglichkeit bzw. die Bewegungsgrenzen der Projektion des Mittelpunkts der
Leitkurve wieder. Die untere Intervallgrenze U(M) und die obere Intervallgrenze O(M) wurden
folgendermassen festgelegt:
U(M) = xs + 0,5 *L = A
O(M) = xs + L – R = B
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
69
Somit wird links Platz für die Konstruktion der wahren Schnittellipse geschaffen, die nach der
Eingabe der Projektionen der Schnittebene konstruiert wird. Rechts werden die Grund- und
Aufrissprojektionen des Kreiskegels nicht über die Rißachse hinausgehen.
Der Grundriss des Kreiskegels ist ein Kreis. Sein Mittelpunkt liegt auf einer Senkrechten zur x, z-
Ebene durch den Punkt S‘‘p; sein Radius R ist der Grundkreisradius des Kegels. Die Strecke
[S‘pS‘‘p] hat die Länge R + H + x. Dabei ist x der Abstand des Grundkreises von der x, y- Ebene
(Aufrissebene). H ist die Höhe des Kegels und R sein Radius. x kann frei gewählt werden und
wurde mit 5 LE gewählt. Danach wird diese Strecke um den Radius des kreisförmigen
Punktsymbols mit Extend (Curve > Util > Extend) an den Endpunkten verkürzt. Abschließend
verbirgt man die geometrischen Objekte, die nicht mehr benötigt werden (Preview), und färbt die
geometrischen Objekten mit Custom Preview (Vector > Colour > Custom Preview) schwarz ein.
Abbildung 55: Grundriss des Kreiskegels mit Beschriftung
Anstatt der Anwendung der Komponente Advanced Custom Preview kann durch
Kurvenbearbeitung in „Grasshopper“ eine Linienstärke für den Basiskreis im Grundriss erzielt
werden, indem man mit der Komponente Offset (Curve > Util > Offset) zwei konzentrische
Kreise zum ursprünglichen Kreis konstruiert und dazwischen mit Loft eine Fläche gebildet.
In der Eingabe D von Offset (Curve > Util > Offset) kann man auch negative Zahlen eingeben.
Gibt man beispielsweise -0.1 und +0.1 in D, so wird die Linienstärke 0,2 LE sein. Die ursprüngliche
Kurve kann man mit Preview ausblenden.
Man muss dabei die Baumstruktur der Komponente Loft (Surface > Freeform > Loft)
beachten. Denn es ist sicherzustellen, dass die zwei Kurven in C auf einem einzigen Ast der
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
70
Baumstruktur (oder in einer geordneten Liste, Flatten) liegen; Andernfalls bringt Loft (Surface >
Freeform > Loft) eine Fehlermeldung.
Nun ist die Projektion des Kreiskegels im Grund- und Aufriss vollständig beschrieben.
Abbildung 56: Projektionen des geraden Kreiskegels im Grund- und Aufriss
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
71
3.2.2 Eingabe der Schnittebene E im Grund- und Aufriss
Die Schnittebene ist durch ihre Grundrissspur s1 und ihre Aufrissspur s2 in Zweitafelprojektion
eindeutig festgelegt. In diesem Fall steht die Ebene so im Raume, dass sie einen gewissen Winkel
mit der Grundrissebene einschließt. Dieser Winkel muss so eingestellt werden,
dass ein elliptischer Kegelschnitt entsteht. Die Grundrissspur s1 steht senkrecht auf der Rißachse.
Zunächst wird der Schnittpunkt P der Schnittebene E mit der Rißachse x1,2 konstruiert. Dieser
Punkt P wird als Startpunkt für die beiden Spuren s1 und s2 im Programm benötigt. Für diesen
Punkt werden entlang der Rißachse ebenfalls dynamische Intervallgrenzen mit Remap Numbers
(Maths > Domain > Remap Numbers) festgelegt: U(P) = xs und O(P) = xM – R.
Der Punkt P liegt also zwischen dem Startpunkt auf der Rissache xS und dem Schnittpunkt der
Projektion der linken Mantellinie des Kreiskegels mit der Rissachse (vgl. untenstehendes Bild).
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
72
Von P aus zeichnet man die Grundrissspur s1. Man beschriftet diese Spur und färbt sie schwarz
ein. Dann zeichnet man zwei Viertelkreise mithilfe der Komponente Arc als Symbol für einen
rechten Winkel (vgl. Abb. 58).
Abbildung 57: Schnittpunkt P der beiden Spuren s1 und s2 der Schnittebene E
Die minimale Länge von s1 wird mit den Abmessungen des Kegels im Grundriss in Verbindung
gebracht (x + 2R + y). Es wird ein Number Slider (Params > Input > Number Slider) für eine
zusätzliche Länge eingeführt und auf 3 LE eingestellt (y = 3).
Abbildung 58: Konstruktion der Spur s1 im Grundriss und des Symbols für einen rechten Winkel
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
73
Nun kann man die Spur s2 eingeben. Seine minimale Neigung ist gleich Null. In diesem Fall
wird der Kegel kreisförmig geschnitten. Der Kegelschnitt ergibt in diesem Fall genau die Leitkurve
bzw. die Basiskreiskurve. Das ist ein Sonderfall des elliptischen Kegelschnittes. Seine maximale
Neigung ist . In diesem Sonderfall entsteht als Schnittmenge nur Sp.
Es wird ein Parameter für die veränderliche Richtung der Spur s2
herangezogen. Der parametrische Winkel berechnet sich zu . Somit hat der
Anwender die Macht auf die Richtungsänderung der Spur s2 im zulässigen Intervall, der bereits
beschrieben wurde. Hiermit ist das Problem der zulässigen Richtung der Schnittebene für einen
elliptischen Kegelschnitt gelöst.
Das zweite Problem stellt die Länge der Spur s2 dar. Nur für bestimmte Längen L( ) von s2
entsteht eine Schnittellipse. Diese Länge hängt von ab. Es wird eine Hilfsgerade mit 200 LE
gezeichnet, die P als Startpunkt hat und im Bereich von liegt. Diese Hilfsgerade
schneidet die Mantellinien in zwei Punkten. Diese zwei Punkte sind die Aufrissprojektionen der
Hauptscheitelpunkte der Schnittellipse A‘‘ und B‘‘. Die Strecke [A‘‘B‘‘] ist der Aufriss der
Schnittellipse.
Die Länge der Strecke [PB‘‘] ist die minimale zulässige Länge L( ) für einen elliptischen
Kegelschnitt. Man blendet die Hilfsgerade aus und lässt nur die Strecke [PB‘‘] sichtbar. Die Länge
der Strecke [PB‘‘] kann man analog wie bei der Spur s1 auch verlängern. Diese zusätzliche Länge
wird zu 5 LE gewählt.
Abbildung 59: Konstruktion der Aufrissspur s2 der Schnittebene E mit einer Hilfsgeraden
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
74
A‘‘ und B‘‘ erhalten durch Kurvenbearbeitung ein kreisförmiges Punktsymbol. Abschließend
beschriftet man die Punkte A‘‘, B‘‘ und die Aufrissspur s2. Nun liegt die Schnittebene in der
Zweitafelprojektion eindeutig fest (vgl. Abb.60).
Abbildung 60: Projektionen der Schnittebene E im Grund- und Aufriss mit Farbe und Beschriftung
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
75
3.2.3 Eingabe des mittleren Schichtkreises km
Der mittlere Schichtkreis km wird in der vorliegenden Ellipsenkonstruktion benötigt, um die
Nebenachse der Grundrissellipse zu finden. Im Folgenden wird dieser Kreis in Grund- und Aufriss
projiziert. Seine Projektion im Aufriss ist eine horizontale Strecke, die auf derselben Höhe liegt wie
der Mittelpunkt M der Schnittellipse. Zunächst wird M‘‘ konstruiert. Er ist der Mittelpunkt der
Strecke [A‘‘B‘‘].
Abbildung 61: Konstuktion des Mittelpunktes der Strecke [A''B'']
Im nächsten Schritt zeichnet man die Projektion des mittleren Schichtkreises im Aufriss. Durch M‘‘
wird eine horizontale Hilfsgerade mit 200 LE gezeichnet. Diese Hilfsgerade schneidet die
Mantellinienprojektionen im Aufriss in zwei Punkten, deren Verbindungsstrecke der Aufriss des
mittleren Schichtkreises ist.
Diese Hilfsgerade wird ausgeblendet. Bestimmte Linien im Aufriss sind noch zu verstärken. Dies
kann entweder durch Kurvenbearbeitung oder mithilfe der Komponente Advanced Custom
Preview realisiert werden.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
76
Abbildung 62: Der mittlere Schichtkreis im Aufriss k‘‘m, Beschriftung und Linienstärke
beispielsweise durch Bearbeitung von Kurven
Der Grundriss des Schichtkreises ist ein Kreis mit dem Mittelpunkt S’p. Sein Durchmesser ist der
Aufriss des mittleren Schichtkreises.
Abbildung 63: Der mittlere Schichtkreis im Grundriss k‘m mit Beschriftung
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
77
3.2.4 Eingabe der Grundrissellipse
Die Punkte A‘ und B‘ der Hauptachse [A’B‘] der Grundrissellipse werden mit drei Hilfsgeraden
konstruiert („Ordner“ A‘‘A‘ und B‘‘B‘; Horizontale durch S‘p).
Abbildung 64: Konstruktion von drei Hilfsgeraden, deren Schnittpunkte die Hauptachse [A’B‘] der
Grundrissellipse definieren
Um die Punkte C‘ und D‘ der Grundrissellipse zu finden, wird durch M‘‘ eine Senkrechte zum
Aufriss des mittleren Schichtkreises konstruiert.
Diese schneidet den Grundriss des mittleren Schichtkreises in den Punkten C‘ und D‘. Die Strecke
[C’D‘] ist die Nebenachse der Grundrissellipse und erscheint in wahrer Länge.
Durch die Punkte A‘, B‘, C‘ und D‘ liegt die Grundrissellipse eindeutig fest.
Durch Kurvenbearbeitung können Linienstärke und kreisförmige Punktsymbole realisiert werden.
Am Ende kommen Färbung und Text dazu.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
78
Abbildung 65: Erzeugen von kreisförmigen Punktsymbolen durch Kurvenbearbeitung
Abbildung 66: Linienstärke durch Kurvenbearbeitung für die Grundrissellipse
Abbildung 67: Die Konstruktion der Grundellipse ist abgeschlossen
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
79
3.2.5 Eingabe der wahren Schnittellipse
Die wahre Länge der Nebenachse der wahren Schnittellipse ist die Länge der Nebenachse der
Grundrissellipse. Die wahre Länge ihrer Hauptachse ist die Länge der Strecke [A‘‘B‘‘] im Aufriss.
Zuerst werden ausgehend von A‘‘, M‘‘, B‘‘ positiv orientierte Kreisbögen um den Schnittpunkt P der
Spuren s1 und s2 konstruiert, die die Rißachse in drei Punkten schneiden.
Die Endpunkte der Kreisbögen werden extrahiert und es werden jeweils Hilfsgeraden von diesen
Endpunkten aus in die negative y-Richtung gezeichnet. Ebenfalls werden Hilfsgeraden von den
Endpunkten und vom Mittelpunkt der Nebenachse der Grundrissellipse in die negative x-Richtung
gezeichnet. Die Schnittpunkte der Hilfsgeraden führen auf neun Punkte, von denen fünf Punkte die
wahre Schnittellipse festlegen (vgl. folgende Abbildungen).
Abbildung 68: Hilfsgeraden schneiden sich in neun Punkten
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
80
Abbildung 69: Fünf der Schnittpunkte legen die Form der wahren Schnittellipse eindeutig fest
Abbildung 70: Erzeugen von kreisförmigen Punktsymbole und Linienstärken
Abbildung 71: Die wahre Schnittellipse mit Beschriftung
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
81
3.2.6 Die Animation des elliptischen Kegelschnittes
Die Animationsaufgabe besteht darin, geeignete Bilder aufzunehmen, die in einer bestimmten
Reihenfolge und in einer bestimmten Zeit hintereinander gewechselt werden. Der Betrachter nimmt
dies als Bewegungsvorgang wahr. Mit Stream Filter (Sets > Tree > Stream Filter) ist es möglich,
Objekte (z.B. Text) hintereinander auftauchen zu lassen. Die folgende Abbildung zeigt ein
einfaches Beispiel, nämlich die Animation mit drei Kreisen. Diese Technik soll für den Text am
Anfang der Animation des elliptischen Kegelschnittes verwendet werden.
Abbildung 72: Einfaches Beispiel, in dem Kreise hintereinander auftauchen
Abbildung 73: Für die Beschriftung der Punkte wird die Komponente Stream Filter herangezogen
Für Kameraeffekte kann man die Komponenten Animate Camera, Set Camera und Get Camera
(Addon: Horster) in Kombination mit Interpolate Data (Maths > Util > Interpolate Data)
anwenden.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anwendung von „Grasshopper“ zur Lösung ausgewählter Aufgaben aus der Darstellenden Geometrie
82
4 Fazit
„Grasshopper“ im Rahmen von „Rhinoceros“ stellt ein umfangreiches und sehr komfortables
Werkzeug zur Verfügung, um schwierigste geometrische Aufgaben algorithmisch zu lösen. Ein
besonderer Aspekt besteht darin, dass „Grasshopper“ für ein und dieselbe Aufgabe viele
verschiedene Lösungsmöglichkeiten anbietet.
Besonders vorteilhaft erweist sich die Gegenüberstellung eines Algorithmus in der
Benutzeroberfläche von „Grasshopper“ mit der zugehörigen visuellen Darstellung in der
Benutzeroberfläche von „Rhinoceros“, wobei Ansichten von allen Seiten, in allen möglichen Lagen
und bezogen auf verschiedene Ebenen möglich sind.
Die Algorithmen in „Grasshopper“ werden mithilfe von Komponenten programmiert, die sehr rasch
eingefügt, ersetzt oder miteinander verbunden werden können. Besonders vorteilhaft erweist sich
die Möglichkeit, Ergebnisse von Algorithmen mithilfe des Parameters Panel (Input > Parameter >
Panel) zu veranschaulichen und jede Änderung von Algorithmen im Endergebnis zu verfolgen.
In dieser Arbeit werden die programmtechnischen Vorgehensweisen zum besseren Verständnis an
absichtlich einfach gewählten Beispielen erklärt. So wird das Rüstzeug für die Parametrisierung
und die Animation komplizierterer Aufgabenstellungen in „Grasshopper“ zur Verfügung gestellt.
„Grasshopper“ und „Rhinoceros“ werden von den Herstellern aufgrund vieler Anregungen von
Programmanwendern (Architekten, Ingenieure, Grafikdesigner,…) ständig verbessert, erweitert
und aktualisiert.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Literaturverzeichnis
83
5 Literaturverzeichnis
[1] Tedeschi, A. (2010): Parametric Architecture with Grasshopper. Italy: Le Penseur, 2010.
[2] Haack, W. (1971): Darstellende Geometrie I – Die wichtigsten Darstellungsmethoden Grund-
und Aufriss ebenflächiger Körper. Berlin: Walter De Gruyter & Co, 1971.
[3] Akademischer Verein Hütte e.V., Horst, C., Manfred, H. (2012): HÜTTE - Das Ingenieurwissen.
Berlin: Springer, 2012
[4] Fucke, R. , Kirch, K. ; Nickel, H. (2007): Darstellende Geometrie für Ingenieure. Leipzig: Carl
Hanser, 2007.
[5] Henke, K: Skript zur Vorlesung „Methoden der Darstellung“ TUM.
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Abbildungsverzeichnis
84
6 Abbildungsverzeichnis
Abbildung 1: Benutzeroberflächen der Programme „Rhinoceros“ (links) und „Grasshopper“ (rechts)
....................................................................................................................................................... 6
Abbildung 2: Kategorien und Subkategorien in „Grasshopper“ (unterhalb der Menüleiste „oben“) 7
Abbildung 3: Die erste Komponente für den Punkt. Kategorie Params, Subkategorie Geometry. 11
Abbildung 4: Verbinden von Number Slider mit Point XYZ und das Suchfeld in „Grasshopper“ .. 12
Abbildung 5: Anwendung der Komponenten Panel und Addition [ (Maths > Operators >
Addition) oder Eingabe von + im Suchfeld) ] mit Ergebnis (Ausgabe) .......................................... 14
Abbildung 6: Erzeugen einer parametrischen Zickzack Kurve in "Grasshopper" ........................... 30
Abbildung 7: Endform der Feder mithilfe eines Algorithmus in "Grasshopper" .............................. 31
Abbildung 8: Animation der Federschwingung mit GIMP ............................................................... 32
Abbildung 9: Innerhalb der Komponente Evaluate stehen vorprogrammierte Funktionen zur
Verfügung (vgl. Expression function list) ....................................................................................... 34
Abbildung 10: „Wahrheitstabelle“ in „Grasshopper“ ....................................................................... 35
Abbildung 12: Funktionsweise der Komponente Remap Numbers ................................................ 36
Abbildung 11: Dokumentation der Komponenten Stream Filter und Stream Gate ......................... 36
Abbildung 13: Änderung einer gegebenen Baumstruktur mit Path Mapper ................................... 37
Abbildung 15: Weitere Möglichkeit zur Festlegung der Zahlen im Kontextmenü des Parameters
Number Slider ............................................................................................................................. 39
Abbildung 14: Festlegung des Intervalls I im Parameter Number Slider ...................................... 39
Abbildung 17: Änderung der Eigenschaften des Hintergrundbildes in “Rhinoceros“ ...................... 40
Abbildung 16: Punktsymbole in „Grasshopper“ ............................................................................. 40
Abbildung 18: Änderung der Hintergrundfarbe in „Rhinoceros“ ..................................................... 41
Abbildung 19: Erweiterungen der Kategorien für „Grasshopper“ mit Addons (Datei-Endung .ghx) 42
Abbildung 20: Die Komponente für den Text kann alleine für sich heruntergeladen werden ......... 43
Abbildung 21: Eine Anleitung für die Installation steht ebenfalls auf der Webseite von Fabtools ... 43
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Abbildungsverzeichnis
85
Abbildung 22: Wahl der Schriftart innerhalb von „Grasshopper“ .................................................... 43
Abbildung 23: Mithilfe der Komponenten Text Contour und Planar Srf wird ein Zugriff auf das
Textobjekt ermöglicht .................................................................................................................... 44
Abbildung 24: Festlegung des Anfangspunktes A der Strecke [AB] .............................................. 45
Abbildung 25: Konstruktion einer Raumstrecke [AB] in "Grasshopper" ......................................... 46
Abbildung 26: Konstruktion einer vertikalen Drehachse durch den Anfangspunkt A ...................... 46
Abbildung 27: Projektion des Punktes A in einer im Punkt B definierten x, y-Ebene ε ................... 47
Abbildung 28: Definition einer x,y-Ebene δ durch die Projektion von A in ε ................................... 47
Abbildung 29: Festlegung der Position des Punktes B relativ zu δ ................................................ 48
Abbildung 30: Weitere Möglichkeit zur Festlegung eines Zahlenintervalls mit Consecutive Domain
..................................................................................................................................................... 48
Abbildung 31: Drehen der Strecke [AB] parallel zur Aufrissebene ................................................. 49
Abbildung 32: Die Lage des Strecke [AB°] hängt vom parametrischen Drehwinkel ab .............. 50
Abbildung 33: Festlegung eines parametrischen Richtungsvektors am Anfangspunkt B des
räumlichen Kreisbogens von B nach B° ........................................................................................ 51
Abbildung 34: In der Komponente Merge liegen die Punkte A,B und B° sowie die Strecken [AB],
[AB°] und der räumliche Kreisbogen von B nach B° ...................................................................... 51
Abbildung 35: Definieren von x,y-Ebenen {0;0} und x,z-Ebenen {0;1} in den Raumpunkten A und B
..................................................................................................................................................... 52
Abbildung 36: Konstruktion von Hilfszylindern und Schließen der Endflächen der B-rep Modellen 53
Abbildung 37: Mit Trim Breps werden die Raumkurven für die Projektionen in die x,y-Ebene und in
die y,z-Ebene bereitgestellt ........................................................................................................... 53
Abbildung 38: In {0;0} ({0;1}) werden die in die x,y-Ebene (y,z-Ebene) zu projizierenden
Raumkurven gespeichert .............................................................................................................. 54
Abbildung 39: "Grasshopper" bietet andere Möglichkeiten für ein und dieselbe Aufgabe an ......... 55
Abbildung 40: Nach Projektion der bearbeiteten Raumkurven entsteht die gewünschte
geometrische Konstruktion im Ansichtsfenster Right in "Rhinoceros" ............................................ 55
Abbildung 41: Färbung der wahren Länge bei t=1 und Eingeben einer Bedingung ....................... 56
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Abbildungsverzeichnis
86
Abbildung 42: Kreise um die Punkte mit dem Radius R der Hilfszylinder ...................................... 56
Abbildung 43: Konstruktion der "Ordner" in der Bildebene ............................................................ 57
Abbildung 44: Beschriftung mit der Komponente Text 3D Advanced ........................................... 58
Abbildung 45: Der Algorithmus für die Rißachse mit ihrer Beschriftung x1,2 in "Grasshopper" ....... 59
Abbildung 46: Die Eingabe Dk von Merge nimmt einen Punkt an und erzeugt dort Parallelstriche,
die in {0;k} im Algorithmus gespeichert werden ............................................................................. 59
Abbildung 47: Kombination der Komponente Counter mit der Komponente Timer ...................... 60
Abbildung 48: Mit Stream Filter in Kombination mit Counter und Timer werden die Parallelstriche
hintereinander angezeigt. Die Punkte A und B können vom Anwender beliebig festgelegt werden.
..................................................................................................................................................... 61
Abbildung 49: Markieren der Bilder mit STRG + A und ziehen ins Fenster Ebenen von GIMP ..... 63
Abbildung 50: Möglichkeit zum Wechseln zu einem anderen Projekt (oben rechts) ...................... 65
Abbildung 51: Eingabe von parametrischen Punkten, die den Aufriss des Kegels festlegen ......... 66
Abbildung 52: Mit Preview können nicht benötigte geometrische Elemente ausgeblendet werden 67
Abbildung 53: Durch Kurvenbearbeitung kann ein kreisförmiges Punktsymbol erzeugt werden .... 67
Abbildung 54: Die Beschriftung erfolgt mit Text 3D Advanced (Fabtools > Text) ......................... 68
Abbildung 55: Grundriss des Kreiskegels mit Beschriftung ........................................................... 69
Abbildung 56: Projektionen des geraden Kreiskegels im Grund- und Aufriss ................................ 70
Abbildung 57: Schnittpunkt P der beiden Spuren s1 und s2 der Schnittebene E ........................... 72
Abbildung 58: Konstruktion der Spur s1 im Grundriss und des Symbols für einen rechten Winkel 72
Abbildung 59: Konstruktion der Aufrissspur s2 der Schnittebene E mit einer Hilfsgeraden ............. 73
Abbildung 60: Projektionen der Schnittebene E im Grund- und Aufriss mit Farbe und Beschriftung
..................................................................................................................................................... 74
Abbildung 61: Konstuktion des Mittelpunktes der Strecke [A''B''] ................................................... 75
Abbildung 62: Der mittlere Schichtkreis im Aufriss k‘‘m, Beschriftung und Linienstärke
beispielsweise durch Bearbeitung von Kurven .............................................................................. 76
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Abbildungsverzeichnis
87
Abbildung 63: Der mittlere Schichtkreis im Grundriss k‘m mit Beschriftung .................................... 76
Abbildung 64: Konstruktion von drei Hilfsgeraden, deren Schnittpunkte die Hauptachse [A’B‘] der
Grundrissellipse definieren ............................................................................................................ 77
Abbildung 65: Erzeugen von kreisförmigen Punktsymbolen durch Kurvenbearbeitung ................. 78
Abbildung 66: Linienstärke durch Kurvenbearbeitung für die Grundrissellipse .............................. 78
Abbildung 67: Die Konstruktion der Grundellipse ist abgeschlossen ............................................. 78
Abbildung 68: Hilfsgeraden schneiden sich in neun Punkten ........................................................ 79
Abbildung 69: Fünf der Schnittpunkte legen die Form der wahren Schnittellipse eindeutig fest ..... 80
Abbildung 70: Erzeugen von kreisförmigen Punktsymbole und Linienstärken ............................... 80
Abbildung 71: Die wahre Schnittellipse mit Beschriftung ............................................................... 80
Abbildung 72: Einfaches Beispiel, in dem Kreise hintereinander auftauchen ................................. 81
Abbildung 73: Für die Beschriftung der Punkte wird die Komponente Stream Filter herangezogen
..................................................................................................................................................... 81
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Tabellenverzeichnis
88
7 Tabellenverzeichnis
Tabelle 1: Fünf Möglichkeiten für die Erzeugung eines Punktes in „Grasshopper“ .......................... 9
Tabelle 2: Komponenten für die Erzeugung einer geraden Linie in „Grasshopper“........................ 18
Tabelle 3: Komponenten für die Konstruktion einer Kreiskurve in „Grasshopper“ .......................... 19
Tabelle 4: Komponenten für die Konstruktion eines Kreisbogens in "Grasshopper" ...................... 20
Tabelle 5: Komponenten für die Analyse von Kurven in „Grasshopper“ ........................................ 22
Tabelle 6: Grundlegende Komponenten für die Bearbeitung von Listen ........................................ 25
Tabelle 7: Eigenschaften der Komponente Shift List ................................................................... 28
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Anhang
89
8 Anhang
Verwendete Internetressourcen:
http://www.rhino3d.com ; http://www.grasshopper3d.com
Online Tutorials für Grasshopper und Rhinoceros:
http://digitaltoolbox.info/
http://vimeo.com/49042673
http://designreform.net/learning/grasshopper
http://www.softwaretrainingtutorials.com/rhino-3d.php
Rename-It! (Massenumbenennung von Dateien):
http://www.softpedia.com/get/System/File-Management/Rename-It-BEROUX.shtml
Format Factory (Konvertierung von GIF in AVI):
http://www.chip.de/downloads/FormatFactory_32504225.html
GIMP (Animationen und GIF-Dateien):
http://www.chip.de/downloads/GIMP_12992070.html
Fabtools (für Text in Grasshopper):
htp://fabtools.blickfeld7.com/
Alle Addons für Grasshopper:
http://www.food4rhino.com/grasshopper-addons/last-updated
Alle Plugins für Rhinoceros:
http://www.food4rhino.com/rhino-plugins/last-updated
Ergebnisse auf Youtube:
http://www.youtube.com/channel/UC3NDGci9ZYS2Mw7MSjzDB8Q
Lehrstuhl für Holzbau und Baukonstruktion Bachelor Thesis „Parametrisierung und Animation von Aufgaben der Darstellenden Geometrie“ Selbständigkeitserklärung
Selbständigkeitserklärung
Hiermit versichere ich, dass ich die vorliegende Arbeit selbständig verfasst und keine anderen als
die angegebenen Quellen und Hilfsmittel benutzt habe.
Ahmed Hossam
…………………………………………………………………………………………………………………..
Vorname Name
München, 14. August 2013