Zusammenfassung
Etwas Lustiges passierte auf dem Weg zur Entwicklung geodätischer Dinge. Ich fand heraus, dass ich einige platonische Körper vollständig entwickeln musste. Und da ich 3 davon entwickeln musste, dachte ich, ich würde sie alle entwickeln.
Dieses Ding repräsentiert die neueste Inkarnation der maths_geodesic-Bibliothek, plus Extras.
Zunächst hatte die ursprüngliche maths_geodesic.scad-Bibliothek einen kleinen Fehler in der 'clean'-Funktion, der verhinderte, dass sie sphärische Koordinaten ordnungsgemäß konvertieren konnte.
Es gibt ein paar Ergänzungen:
DEGREES() - Existiert bereits in anderen Bibliotheken, konvertiert von Radianen in Grad.
RADIANS() - Existiert bereits in anderen Bibliotheken, konvertiert von Grad zu Radian.
deg(deg,min,sec) - Erstellt eine Datenstruktur, die Grad, Minuten und Sekunden enthält.
deg_to_dec(d) - konvertiert von dieser Grad-Datenstruktur in Dezimalform.
Diese werden irgendwann nützlich sein, wenn mehr sphärische und geografische Dinge auftauchen.
sphu_from_cart(c, rad=1) - Tut das Gleiche wie sph_from_cart, erlaubt dir aber, den Radius anzugeben. Das ist sehr praktisch, wenn du von einigen kartesischen Koordinaten konvertierst und etwas mit einem festen Radius machen willst.
Dann gibt es einige Dinge, die mit Polygon-Mathematik zu tun haben. Das Ausrechnen von Innenwinkeln und dergleichen. Das Interessanteste ist vielleicht, den Dihedralwinkel für ein Platonisches Körper zu berechnen. Das ist bei einigen Berechnungen sehr nützlich.
Aber das wirklich Neue ist die Reihe von Dingen, die direkt mit platonischen Körpern in der Datei 'platonic.scad' zusammenhängen.
Zunächst werden die 5 platonischen Körper durch Funktionen dargestellt, die ihre Geometrie/Topologie repräsentieren, in einer Form, die für das Rendern mit dem polyhedron()-Modul geeignet ist.
Also:
Tetraeder (Radius=1)
Octaeder (Radius=1)
Hexaeder (Radius=1)
Dodekaeder (Radius=1)
Ikosaeder (Radius=1)
Du kannst es so verwenden:
display_polyhedron(icosahedron(20));
Das wird ein Ikosaeder ergeben, das auf [0,0,0] zentriert ist und einen Radius von 20 hat.
Die Möglichkeit, den Radius einzustellen, ist wirklich praktisch, da man Dinge wie das Verschachteln oder einfach das Erstellen in der benötigten Größe tun kann. Die Tatsache, dass sie auf dem Ursprung zentriert sind, macht es ziemlich einfach, sie in jede beliebige Ausrichtung zu drehen.
Die .stl-Dateien hier zeigen nur einige zwanglose Renderings, die mit der test_platonic.scad-Datei generiert werden können. Das Durchführen von Kürzungen und Stellationen ist ziemlich einfach. Auch das Erstellen von ausgehöhlten Formen, insbesondere mit Dualen, ist ebenfalls ziemlich einfach.
Das einzige, was hier nicht ist, ist die Verwendung des Inradius, Circumradius und Midradius für eine korrekte Ausrichtung von Dualen. Aber wie schwierig kann das sein?
Jedenfalls hat OpenScad jetzt einen ordentlichen kleinen Satz von platonischen Körpern, mit denen man spielen kann.
UPDAte: 19082011
Ich habe einige .stl-Dateien hinzugefügt, die Renderings der verschiedenen Festkörper sind. Der Dodekaeder hat tatsächlich ein Problem in OpenScad. Ich werde das Problem beheben und es hochladen, wenn es tatsächlich funktioniert. Ein sehr seltsamer Fehler.
AKTUALISIERUNG: 03092011
Habe die platonics.stl durch platonic_set.stl ersetzt. Ich habe jetzt einen besseren Dodekaeder.
Anweisungen
1) Lade die verschiedenen Dateien herunter. platonic.scad hängt von maths_geodesic.scad ab, also solltest du zumindest diese beiden bekommen.
2) Spielen Sie mit der Datei test_platonic.scad herum, um zu sehen, wie die Dinge gemacht werden.
3) Freut euch!