130812 PDF Schreibarbeit

90
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

Transcript of 130812 PDF Schreibarbeit

Page 1: 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

Page 2: 130812 PDF Schreibarbeit

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

Page 3: 130812 PDF Schreibarbeit

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

Page 4: 130812 PDF Schreibarbeit

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

Page 5: 130812 PDF Schreibarbeit

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.

Page 6: 130812 PDF Schreibarbeit

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).

Page 7: 130812 PDF Schreibarbeit

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:

Page 8: 130812 PDF Schreibarbeit

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.

Page 9: 130812 PDF Schreibarbeit

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.

Page 10: 130812 PDF Schreibarbeit

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.

Page 11: 130812 PDF Schreibarbeit

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.

Page 12: 130812 PDF Schreibarbeit

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

Page 13: 130812 PDF Schreibarbeit

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).

Page 14: 130812 PDF Schreibarbeit

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.

Page 15: 130812 PDF Schreibarbeit

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).

Page 16: 130812 PDF Schreibarbeit

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

Page 17: 130812 PDF Schreibarbeit

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.

Page 18: 130812 PDF Schreibarbeit

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).

Page 19: 130812 PDF Schreibarbeit

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).

Page 20: 130812 PDF Schreibarbeit

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.

Page 21: 130812 PDF Schreibarbeit

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))

Page 22: 130812 PDF Schreibarbeit

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

Page 23: 130812 PDF Schreibarbeit

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.

Page 24: 130812 PDF Schreibarbeit

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.

Page 25: 130812 PDF Schreibarbeit

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

Page 26: 130812 PDF Schreibarbeit

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

Page 27: 130812 PDF Schreibarbeit

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.

Page 28: 130812 PDF Schreibarbeit

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.

Page 29: 130812 PDF Schreibarbeit

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.

Page 30: 130812 PDF Schreibarbeit

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"

Page 31: 130812 PDF Schreibarbeit

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"

Page 32: 130812 PDF Schreibarbeit

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

Page 33: 130812 PDF Schreibarbeit

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:

Page 34: 130812 PDF Schreibarbeit

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.

Page 35: 130812 PDF Schreibarbeit

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).

Page 36: 130812 PDF Schreibarbeit

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

Page 37: 130812 PDF Schreibarbeit

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.

Page 38: 130812 PDF Schreibarbeit

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.

Page 39: 130812 PDF Schreibarbeit

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

Page 40: 130812 PDF Schreibarbeit

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“

Page 41: 130812 PDF Schreibarbeit

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“

Page 42: 130812 PDF Schreibarbeit

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.

Page 43: 130812 PDF Schreibarbeit

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“

Page 44: 130812 PDF Schreibarbeit

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.

Page 45: 130812 PDF Schreibarbeit

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.

Page 46: 130812 PDF Schreibarbeit

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

Page 47: 130812 PDF Schreibarbeit

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

Page 48: 130812 PDF Schreibarbeit

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

Page 49: 130812 PDF Schreibarbeit

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

Page 50: 130812 PDF Schreibarbeit

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,

Page 51: 130812 PDF Schreibarbeit

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°

Page 52: 130812 PDF Schreibarbeit

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.

Page 53: 130812 PDF Schreibarbeit

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.

Page 54: 130812 PDF Schreibarbeit

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.

Page 55: 130812 PDF Schreibarbeit

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).

Page 56: 130812 PDF Schreibarbeit

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.

Page 57: 130812 PDF Schreibarbeit

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“).

Page 58: 130812 PDF Schreibarbeit

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

Page 59: 130812 PDF Schreibarbeit

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.

Page 60: 130812 PDF Schreibarbeit

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

Page 61: 130812 PDF Schreibarbeit

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.

Page 62: 130812 PDF Schreibarbeit

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.

Page 63: 130812 PDF Schreibarbeit

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.

Page 64: 130812 PDF Schreibarbeit

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.

Page 65: 130812 PDF Schreibarbeit

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).

Page 66: 130812 PDF Schreibarbeit

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).

Page 67: 130812 PDF Schreibarbeit

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.

Page 68: 130812 PDF Schreibarbeit

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

Page 69: 130812 PDF Schreibarbeit

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

Page 70: 130812 PDF Schreibarbeit

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

Page 71: 130812 PDF Schreibarbeit

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).

Page 72: 130812 PDF Schreibarbeit

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

Page 73: 130812 PDF Schreibarbeit

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

Page 74: 130812 PDF Schreibarbeit

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

Page 75: 130812 PDF Schreibarbeit

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.

Page 76: 130812 PDF Schreibarbeit

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

Page 77: 130812 PDF Schreibarbeit

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.

Page 78: 130812 PDF Schreibarbeit

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

Page 79: 130812 PDF Schreibarbeit

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

Page 80: 130812 PDF Schreibarbeit

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

Page 81: 130812 PDF Schreibarbeit

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.

Page 82: 130812 PDF Schreibarbeit

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.

Page 83: 130812 PDF Schreibarbeit

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.

Page 84: 130812 PDF Schreibarbeit

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

Page 85: 130812 PDF Schreibarbeit

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

Page 86: 130812 PDF Schreibarbeit

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

Page 87: 130812 PDF Schreibarbeit

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

Page 88: 130812 PDF Schreibarbeit

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

Page 89: 130812 PDF Schreibarbeit

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

Page 90: 130812 PDF Schreibarbeit

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