1. Erste Schritte
Nach dem Start von OpenSCAD öffnet sich ein Dialog mit den zuletzt geöffneten Dateien und verschiedenen Beispielen.

Wird das Beispiel „Grundlagen/CSG.scad“ geladen, öffnet das Programm folgendes Beispiel:

Im Beispiel sind drei Fenster des Programms sichtbar. Über den Menüpunkt „Fenster“ können weitere Fenster ein- oder ausgeblendet werden.
1) Das erste Fenster ist der Editor, in dem der Programmcode bearbeitet wird.
2) Das zweite Fenster zeigt die 3D-Ansicht.
3) Das dritte Fenster zeigt das Protokoll während der Generierung der 3D-Ansicht. Hier werden auch Code-Fehler angezeigt.
1.1 Einfacher Würfel
Starten wir mit einer leeren Datei: Das erste Icon unter dem Titel „Editor“ öffnet ein leeres Projekt. Speichern Sie es direkt in einem Verzeichnis, in dem Sie alle Ihre 3D-Dateien ablegen. Im Beispiel wird die Datei unter „Lernen_1.scad“ gespeichert.
Im Editor-Fenster schreiben wir nun unseren ersten Code:
cube([10,10,10]);
Dabei muss jede Klammer, jedes Komma und jeder Strichpunkt exakt so eingegeben werden – andernfalls kann eine Fehlermeldung („Error“) auftreten, und das Objekt wird nicht dargestellt.
Anschliessend wählen wir die Vorschau (F5). Das Programm liest den Code und zeigt das Ergebnis in der 3D-Ansicht.

Wenn OpenSCAD Ihren Code ohne Probleme versteht, sollte ein Würfel mit der Kantenlänge 10 gezeichnet werden.

Aber Vorsicht: Schon ein kleiner Fehler im Code kann schwerwiegende Folgen haben. Im folgenden Beispiel wurde die eckige Klammer nach dem letzten Wert 10 vergessen…

Die Fehlermeldung „ERROR:“ hilft uns, den Fehler zu finden. Bei größeren Programmen kann die Meldung jedoch irritieren, da auch Folgefehler angezeigt werden – diese treten nur auf, weil weiter oben im Code der eigentliche Fehler liegt.
Zurück zu unserem Beispiel:
Cube bedeutet Würfel und hat im Beispiel eine Ausdehnung von je 10 mm in x-, y- und z-Richtung. Der Würfel wird an der 0-Position der 3D-Fläche gezeichnet. Ändern wir die Werte für x, y und z und starten erneut die Vorschau mit F5.
cube([10,20,1]);

Die x-, y-, z-Anzeige in der unteren linken Ecke des 3D-Fensters hilft dabei, die Werte aus unserem Code mit der 3D-Ansicht zu vergleichen. Mit gedrückter linker Maustaste können Sie das Objekt in der 3D-Ansicht von allen Seiten betrachten. Im Bild sehen wir das Teil von unten:

cube([10,20,1]);
1.2 Zweiter Würfel
Wie sieht das Ganze aus, wenn ein zweiter Würfel (cube) definiert wird?
Dazu gleich eine Info: Alles, was nach // steht, wird von OpenSCAD ignoriert – es verursacht keine Fehlermeldung und wird im Editor automatisch in einer anderen Farbe dargestellt. Darum stört der Text in der ersten Zeile (// einfaches Beispiel) auch nicht.
cube([10,20,1]); // erster Würfel
cube([5,5,20]); // zweiter Würfel

Beide Würfel werden an der 0-Position der 3D-Ansicht gezeichnet. Wie können wir sie in der 3D-Ansicht verschieben?
1.3 Position von Elementen wie Würfel festlegen
Der Befehl um die Position eine Elements (so auch ein Würfel) im 3D-Raum zu ändern heisst translate(). Hätte meiner Meinung nach auch move oder position benannt werden können... nehmen wir wie es ist ;-)
Wie bei cube() werden auch bei translate() die drei Werte x,y,z in dieser Reihenfolge und in einer [] eckigen Klammer geschrieben. Das Einrücken von cube([5,5,20]); um zwei Leerstellen ist eine Angewohnheit von Programmierern. Es hilft längeren Code übersichtlich zu behalten. Dazu werden wir noch mehr sehen.
cube([10,20,1]); // erster Würfel
translate([20,20,0])
cube([5,5,20]); // zweiter Würfel
PS: F5 nicht vergessen !!

Der zweite Würfel mit z = 20 wurde nun in x- und y-Richtung jeweils um 20 mm verschoben. Der erste Würfel (mit Dicke 1) bleibt an der 0-Position.
Wenn translate() nun vor den ersten Würfel gesetzt wird, ändert sich die Darstellung wie folgt:
translate([20,20,0])
cube([10,20,1]); // erster Würfel
cube([5,5,20]); // zweiter Würfel

Das translate() hat nun den ersten Würfel verschoben. Unser zweiter Würfel wurde wieder zurück auf die Position 0 versetzt!
1.4 Geschweifte Klammer
Damit beide Würfel verschoben werden, könnten wir den Befehl translate() ein zweites Mal schreiben...
translate([20,20,0])
cube([10,20,1]); // erster Würfel
translate([20,20,0])
cube([5,5,20]); // zweiter Würfel

...oder wir setzen eine geschweifte Klammer um die beiden Würfel. Wenn im Editor der Cursor (Einfügeposition) bei der ersten oder zweiten Klammer steht, werden die beiden zusammengehörenden Klammern farblich (grün) hervorgehoben.
Diese Farbhervorhebung ist eine sehr nützliche Hilfe, um Klammerstrukturen im Code zu erkennen.
translate([20,20,0]) {
cube([10,20,1]); // erster Würfel
cube([5,5,20]); // zweiter Würfel
}
Die 3D-Ansicht zeigt nun das Beispiel mit zwei translate()-Befehlen.

1.5 Cube geht auch anders
Das Element cube kann nicht nur mit x-, y-, z-Werten beschrieben werden. Die folgenden fünf Varianten ergeben jeweils einen Würfel mit einer Kantenlänge von 5 mm:
cube([5,5,5]);
cube(size = 5, center = true);
cube(center = true, size = 5);
cube(size = 5);
cube(5,false);
cube(5);
In den Beispielen tauchen verschiedene neue Sprachelemente auf:
Im bekannten cube([5,5,5]); werden die x-, y-, z-Werte in eckigen Klammern nacheinander und durch Kommas getrennt angegeben. Fehlt ein Komma oder ein Wert, erscheint in der Konsolenansicht eine Warnung: WARNING: Unable to convert cube...
In den Beispielen 2 und 3 steht size = 5 und center = true, jeweils durch Komma getrennt. Die Reihenfolge spielt dabei keine Rolle! Der Parameter center = true bedeutet: Der Nullpunkt des Würfels liegt im Zentrum – im Gegensatz zur Standardposition in der unteren linken Ecke.
Es kann auch nur size = 5 geschrieben werden – das Ergebnis ist dann identisch mit dem ersten Beispiel. Der Aufruf cube(5, false); kann daher auch einfach als cube(5); geschrieben werden.
Die Schlüsselwörter true und false werden wir häufiger benötigen – sie bedeuten „wahr“ und „falsch“. Ergänzen wir unseren Code mit folgender Zeile:
cube(size = 5, center = true);

1.6 Wichtige Tastenbefehle
F5 = Neuberechnen
rechte Maustaste im Editor = Befehlsmenü erscheint
gedrückte linke Maustaste in der 3D-Ansicht = 3D Drehen
Rendel in der 3D-Ansicht = Zoom In/Out
gedrückte rechte Maustaste in der 3D-Ansicht = 3D schieben
1.7 Übungen zum Kapitel
1.7.1 Erste Übung
Bisher waren alle x-, y-, z-Werte im positiven Bereich – also gleich oder größer Null. Schreibe nun den Code für das folgende Bild:
Alle Würfel haben eine Seitenlänge von 5 mm, mit Abständen von 5 mm zwischen ihnen. Der vorderste Würfel der mittleren Reihe steht genau im 0-Punkt der Ansicht.
PS 1: Im Editor können Zeilen kopiert und darunter eingefügt werden.
PS 2: Ja, mit Wiederholungsschleifen könnte das Beispiel kompakter geschrieben werden – aber das folgt später.

1.7.2 Zweite Übung
Hier benötigen wir zwei Ansichten des gleichen Beispiels.

- Es gibt fünf Würfel. Alle haben eine x- und y-Ausdehnung von 5 mm.
- Würfel 2 und 4 haben eine Höhe (z) von 10 mm, die anderen eine Höhe von 5 mm.
- Würfel 1, 2 und 3 sind entlang der x-Achse aufgereiht; Würfel 4 und 5 entlang der y-Achse.
- Würfel 1 steht genau bei [0, 0, 0].
- Der Abstand zwischen den Würfeln beträgt jeweils 5 mm.
- Die Oberkante von Würfel 2 muss in z = 0 liegen.
- Die Oberkante von Würfel 3 muss mit der Unterkante von Würfel 2 übereinstimmen.
- Würfel 4 ist entlang der y-Achse nach hinten versetzt – seine Unterkante liegt auf gleicher Höhe wie die
- Die Unterkante von Würfel 5 liegt auf gleicher Höhe wie die Oberkante von Würfel 4.
- Die Unterkante von Würfel 5 liegt auf gleicher Höhe wie die Oberkante von Würfel 4.
- Die Unterkante von Würfel 5 liegt auf gleicher Höhe wie die Oberkante von Würfel 4.
- Die Unterkante von Würfel 5 liegt auf gleicher Höhe wie die Oberkante von Würfel 4.
- Die Unterkante von Würfel 5 liegt auf gleicher Höhe wie die Oberkante von Würfel 4.
Oberkante von Würfel 1.