[Design] Schnell-Einstieg in OpenSCAD - das erste, eigene Modell

  • Dann will ich auch mal die versprochene OpenSCAD-Variante zu dreamshaders Tutorial liefern.


    In OpenSCAD werden Objekte nicht gezeichnet, sondern mit einer eigenen Sprache – einer Mischung aus Programmier- und Beschreibungssprache – generiert. Der Workflow ähnelt daher auch ein wenig dem Programmieren und das Programm einer IDE. Wenn wir das Programm starten und ein neues Dokument erstellen, sehen wir eine dreigeteilte Arbeitsfläche. Links befindet sich der – übrigens eher rudimentäre – Editor. Man kann natürlich auch jeden beliebigen anderen Editor zum Erstellen der Quelldateien benutzen. Rechts sehen wir dann die 3D-Ansicht und darunter die Konsole, in der die Ausgaben von OpenSCAD erscheinen.



    Auch wir wollen das Objekt aus dreamshaders Tutorial nachbauen und auch ich füge hier noch einmal seine Abbildung ein.



    Da wir noch nicht wissen, ob wir nicht irgendwann nochmal ähnliche Kappen mit anderen Massen anfertigen wollen, werden wir die vorgegebenen Masse nicht hart verdrahten, sondern als Variablen definieren. Hierbei lernen wir schon einen Teil der Syntax von OpenSCAD kennen: Ausdrücke werden mit einem Semikolon (;) beendet, ein doppelter Schrägstrich (//) leitet einen Kommentar ein:



    Konstruktiv gehen wir ähnlich wie dreamshader vor, das heißt wir erstellen das Objekt, indem wir einen Zylinder erstellen und zwei weitere Zylinder davon abziehen. Fangen wir mit dem ersten Zylinder an:



    Damit wir den auch sehen, müssen wir OpenSCAD noch eine Vorschau erzeugen lassen. Das geht über das Symbol mit dem ">>" in der Leiste, über den Menüpunkt "Design->Preview" oder am schnellsten durch Drücken von F5.


    Wir erzeugen einen zweiten Zylinder für die Federtasche und ziehen diesen vom ersten ab.



    Hm, da sehen wir gar nichts. Um unsere Bohrung zu sehen, klicken und ziehen wir mit der linken Maustaste in der Vorschau, um das Objekt zu drehen.



    Sieht irgendwie komisch aus. Das liegt daran, daß der ursprüngliche Zylinder und unsere Federtasche an der Unterseite genau zusammentreffen. In diesem Fall erzeugt die Differenz an der Stelle des Zusammentreffens eine Fläche der Dicke 0, womit sowohl OpenSCAD als auch später der Slicer Probleme haben. Ein Objekt, das wir aus einem anderen ausschneiden wollen, muß also immer leicht über dieses hinausragen. Wir erzeugen im 2. Versuch also einen Zylinder, der genau so hoch ist wie der erste, und verschieben den etwas nach oben.



    Schon besser. Um bei komplexeren Konstruktion leichter den Überblick zu behalten, bietet OpenSCAD noch die Möglichkeit, bestimmte Elemente in der Vorschau hervorzuheben. Durch ein vorangestelltes "#" wird ein Objekt transparent angezeigt, auch wenn es in der eigentlichen Konstruktion nur als Subtrahend auftaucht.



    Jetzt fehlt nur noch der Zylinder für die Bohrung. Indem wir für den zusätzlich den Parameter "center=true" angeben, wird er nicht nur in x- und y-, sondern auch in z-Richtung zentriert. Dann müssen wir ihn nur noch hoch genug machen, und haben das Problem mit den Flächen der Dicke 0 vermieden.



    Jetzt ist unser Teil im Prinzip schon fertig. Allerdings ist es noch etwas eckig. Das ist für die Vorschau okay, für das eigentliche Modell hätten wir's aber doch gerne etwas feiner. Wie viele Geraden/Flächen OpenSCAD verwendet, um ein rundes Modell anzunähern, wird durch drei spezielle Variablen festgelegt: $fa, $fs und $fn. $fa gibt den minimalen Winkel zwischen zwei Fragmenten an. Der Defaultwert ist 12°, d.h. ein Kreis wird in 360°/12°=30 Elemente aufgeteilt. $fs gibt die minimale Größe eines Kreiselementes an. Der Defaultwert ist 2mm. Ein kleiner Kreis kann dadurch deutlich weniger Elemente haben, als durch $fa vorgegeben. $fn gibt schließlich direkt an, in wie viele Elemente ein Kreis aufgeteilt werden soll. Wenn diese Variable gesetzt ist, haben die anderen beiden keine Bedeutung mehr.


    Um ein etwas schöneres bzw. runderes Modell zu erhalten, setzen wir $fa und $fs jeweils auf 0.1.



    Damit ist unser Modell fertig. Jetzt müssen wir es nur noch rendern (Symbol mit der Sanduhr, Design-Y>Render oder F6) und als STL exportieren (Symbol mit "STL" oder File->Export->Epxort as STL). Den Rest erledigt dann der Slicer.


    Ich hoffe, ich konnte den Ablauf einigermaßen verständlich erklären. Fragen gerne hier im Thread. Eine Übersicht aller Elemente der Sprache von OpenSCAD findet Ihr unter http://www.openscad.org/cheatsheet/.