Aller Anfang ist leicht

Ich begann im Jahre 2011 über erste eigene Objekte nachzudenken, die auf einem 3D-Drucker angefertigt werden sollten. Wie die Teile aussahen, hatte ich als Vision im Kopf. Also benötigte ich ein einfaches und leicht zu erlenendes Programm für 3D-Konstruktion. Mit OpenSCAD war die geeignete Lösung schnell gefunden. Folglich werde ich hier primär auf 3D-Konstruktion mit OpenSCAD eingehen. Zu guter Letzt werde ich aber auch ein paar Alternativen vorstellen.

OpenSCAD – wenige Vorrausetzungen

OpenSCAD – The Programmers Solid 3D CAD Modeller. Als Informatiker gefiel mir der Slogan besonders gut. Aber keine Angst es braucht nur drei Dinge um OpenSCAD nutzen zu können.

  1. Ein Programm downloaden und installieren (OpenSCAD ist verfügbar für MAC, Windows und Linux).
  2. Rudimentäre Englisch Kentnisse (cube, cylinder, sphere, translate, rotate)
  3. Den Link zum Cheat Sheet

 

Die erste 3D-Konstruktion

Zum Beweis wie einfach 3D-Konstruktion mit OpenSCAD ist, einfach die Anwendung starten, im Editor den folgenden Text eingeben und F5 (oder auch F6) drücken.

cube();

Fertig ist das erste druckbare Objekt. Zu sehen ist ein Würfel mit der Kantenlänge 1 mm. Weil vermutlich niemand einen Würfel mit Kantenlänge 1 drucken möchte, machen wir in etwas grösser.

cube(10);

Folglich hat nun der Würfel eine Kantenlänge von 10 mm. Außerdem bietet cube() die Möglichkeit, die Längen aller Kanten einzeln anzugeben. Typisch für OpenSCAD ist dabei die Angabe von Werten als Dreierpack für X, Y und Z in eckigen Klammern. Diese Darstellung werden wir noch öfters sehen.

cube([30,20,10]);

3D-Konstruktion: Quader alias cube

„Cube“ in OpenSCAD

Als weiteres einfaches Objekt schauen wir uns noch den Zylinder an.

cylinder(d=10, h=25);

3D-Konstruktion: Zylinder

Zylinder in OpenSCAD

Da ein Computer keine runden Objekte erstellen kann, erstellt er diese aus vielen geraden Linien. Dieser Effekt ist hier deutlich zu sehen. Da wir aber gerne runde Objekte haben wollen, können wir die Anzahl der Linien beeinflussen. Dazu verwendet OpenSCAD folgenden Befehl.

$fn=X;

X steht dabei für die Anzahl der zu erzeugenden Linien. $fn kann als zusätzlicher Parameter an Objekte übergeben oder global für die gesamte Konstruktion gesetzt werden. Somit ergeben sich folgende Schreibweisen.
cylinder(d=10, h=5, $fn=500);
oder
$fn=500;
cylinder(d=10, h=5);

3D-Konstruktion: Zylinder

Zylinder in OpenSCAD mit hoher Anzahl Segmenten

Am Beispiel des Zylinders betrachten wir nun noch eine häufig genutzte Tranformation, nämlich die Rotation.

rotate([X,Y,Z])

X, Y und Z stehen dabei für die Achsen im Koordinatensystem, um die das gewünschte Objekt gedreht wird. Betrachten wir dazu unser voriges Beispiel.

rotate([90,0,0]) cylinder(d=10, h=5);

3D-Konstruktion: Zylinder gedreht

Zylinder 90° gedreht um X-Achse

Die gezeigten Formen und Transformationen bilden die Basis einer jeden Konstruktion mit OpenSCAD, weshalb wir nun ein etwas komplexeres Objekt angehen können.

Eine komplexere Konstruktion

Schauen wir uns nun ein etwas komplexeres Gebilde an, das Logo von OpenSCAD.

3D-Konstruktion: OpenSCAD Logo

Kugel mit Ausschnitten – Das OpenSCAD Logo

Hierbei handelt es sich um eine Kugel mit drei runden „Bohrungen“. Da es in OpenSCAD keine Bohrungen gibt, wird dafür ein Zylinder verwendet und aus der Kugel entfernt. Dazu verwendet OpenSCAD die Funktion difference().

difference()
{
// Zuerst wird eine Kugel erzeugt
sphere(d=20);
// Danach werden die Bohrlöcher subtrahiert
cylinder(d=10, h=25, center=true);
rotate([90,0,0]) cylinder(d=10, h=25, center=true);
rotate([0,90,0]) cylinder(d=10, h=25, center=true);
}
// Schliesslich wird der rote Zylinder wieder eingefügt
rotate([90,0,0]) color(„indianred“, 0.3) cylinder(d=10, h=25, center=true);

Wie komplex geht es?

Schliesslich bleibt die Frage was ist Möglich mit OpenSCAD?
Dabei möchte ich auf ein eigenes Beispiel verzichten und auf den OpenSCAD „Drachen“ des Designers Torleif verweisen. Der Drache ist wie viele weitere Beispiele in thingiverse zu finden: Procedural Dragon – All OPENSCAD.

Codestyle

In den gezeigten Beispielen habe ich größten Wert auf Verständlichkeit gelegt und dabei hier und da auf guten Programmierstil verzichtet. Eine umfangreiche Ausführung zum Thema Code Style würde den Umfang dieser Seite sprengen. Bei Bedarf kann ich hier gerne weiterhelfen.

Meine kleine Bibliothek

Im Laufe der Zeit habe ich eine Bibliothek erstellt mit Objekten die ich immer wieder benutze. Die Bibliothek steht bei Thingiverse zum Download bereit. Dort gibt es auch eine ausführliche Dokumentation. Aktueller Inhalt: tri_angle, hollow_sphere, hollow_cylinder, hollow_cube, rounded_cube und hollow_rounded_cube.

3D-Konstruktion: Beispiele OpenSCAD

Beispiele

Alternativen

Obwohl ich bekennder Anhänger von OpenSCAD bin, kann man damit nicht alles machen. Wie jedes Program hat auch OpenSCAD Stärken und Schwächen. Zum Beispiel ist es nicht jederman’s Sache Objekte zu programmieren. Zur Bearbeitung bestehender STL Dateien habe ich schon Meshmixer, FreeCAD und Tinkercad benutzt. Am Besten gefallen hat mir dabei Tinkercad. Dies ist zwar ein reines Online Programm aber super intuitiv gestaltet. Daher eine klare Empfehlung für Tinkercad wenn es nicht OpenSCAD sein soll.

Hier noch eine umfangreiche Liste mit Software für 3D-Modellierung.