Einführung in das 3D-Design mit OpenSCAD
OpenSCAD ist eine kostenlose, quelloffene Software zur Erstellung von 3D-Modellen auf Basis einer Skriptsprache. Im Gegensatz zu vielen anderen CAD-Programmen, bei denen Modelle interaktiv mit der Maus gezeichnet werden, basiert OpenSCAD auf der Idee des programmierbaren Designs. Das bedeutet: Statt ein Modell zu zeichnen, wird es in Code beschrieben – ähnlich wie ein Programm.
Diese Herangehensweise eignet sich besonders gut für technisch präzise Modelle, parametrische Designs (bei denen Maße einfach verändert werden können) und automatisierte Konstruktionsprozesse. OpenSCAD ist daher sehr beliebt bei Entwicklern, Ingenieuren, Bastlern und im Bereich des 3D-Drucks.
Ein Modell in OpenSCAD besteht aus einer Kombination geometrischer Grundformen (sogenannten „Primitiven“) wie Würfeln, Zylindern und Kugeln, die mithilfe logischer Operationen (wie union()
, difference()
, intersection()
) zusammengesetzt oder bearbeitet werden. Transformationen wie translate()
, rotate()
oder scale()
ermöglichen das Verschieben, Drehen und Skalieren von Objekten.
Beispiel:
// Ein einfacher Würfel mit einem Zylinderloch
difference() {
cube([30, 30, 10]);
translate([15, 15, -1])
cylinder(h = 12, r = 5);
}
In diesem Beispiel wird ein Würfel erzeugt, aus dem anschließend ein Zylinder ausgestanzt wird.
Der Einstieg in OpenSCAD ist für Programmierinteressierte sehr leicht. Wer einfache Mathematik und logische Strukturen beherrscht, kann schnell erste eigene Designs entwerfen. Durch die große Community und viele frei verfügbare Vorlagen im Netz findet man zudem zahlreiche Inspirationen und Unterstützung.
Hier ist eine Schritt-für-Schritt-Anleitung für den Einstieg ins 3D-Design mit OpenSCAD, ideal für Einsteiger – vom Download bis zum ersten eigenen Modell.
Wenn du OpenSCAD öffnest, siehst du drei Hauptbereiche:
Falls das ein oder andere Fenster nicht sichtbar ist, kannst du es unter dem Menüpunkt ‘Windows’ wieder sichtbar machen.
Gib im Editor folgenden Code ein:
cube([20, 20, 20]);
Das bedeutet: Erzeuge einen Würfel mit den Seitenlängen 20 mm in X-, Y- und Z-Richtung.
Drücke F5, um das Modell als schnelle Vorschau zu sehen.
Drücke F6, um es komplett zu rendern.
Füge eine zweite Form hinzu:
difference() {
cube([30, 30, 10]);
translate([15, 15, -1])
cylinder(h = 12, r = 5);
}
Das erzeugt einen flachen Quader (30×30×10 mm) mit einem Loch (Zylinder) in der Mitte.
Erklärung:
difference()
bedeutet: Ziehe eine Form von einer anderen ab.translate([x, y, z])
verschiebt das Objekt im Raum.cylinder()
erstellt einen Zylinder.size = 40;
height = 10;
cube([size, size, height]);
Jetzt kannst du size
oder height
ändern, und das Modell passt sich automatisch an.
.stl
-Datei, z.B. um sie in einen Slicer wie Cura zu laden.Probiere weitere Befehle aus:
rotate([x,y,z])
– Dreht Objekte.scale([x,y,z])
– Skaliert Objekte.union()
– Fügt Objekte zusammen.color("red")
– Fügt Farbe zur besseren Übersicht hinzu (nur Vorschau).Beispiel:
color("blue")
translate([0, 0, 10])
cylinder(h = 20, r = 5);
text()
-Funktion + linear_extrude()
).Hier ist eine detaillierte Schritt-für-Schritt-Anleitung, wie du in OpenSCAD eine einfache Box mit Deckel modellierst – ideal für den 3D-Druck.
// Parameter
innen_x = 56;
innen_y = 36;
innen_z = 30;
wand = 2;
deckelhoehe = 4;
luft = 0.5; // Spiel für den Deckel
difference() {
// Außenhülle
cube([innen_x + 2*wand, innen_y + 2*wand, innen_z]);
// Innenraum ausschneiden
translate([wand, wand, 0])
cube([innen_x, innen_y, innen_z]);
}
📌 Tipp: difference()
zieht den inneren Würfel vom äußeren ab – so entsteht die Wandstärke.
Wir bauen einen Deckel, der über den Rand der Box gestülpt wird.
translate([0, innen_y+10, 0]) // Deckel seitlich neben der Box positionieren
union() {
cube([innen_x + 2*wand, innen_y + 2*wand, deckelhoehe]);
translate([wand - luft, wand - luft, wand/2])
cube([innen_x + 2*luft, innen_y + 2*luft, deckelhoehe]);
}
💡 Erklärung:
luft
), damit er nicht zu stramm sitzt.Schöner Code durch Module:
// Parameter
innen_x = 56;
innen_y = 36;
innen_z = 30;
wand = 2;
deckelhoehe = 4;
luft = 0.5; // Spiel für den Deckel
module box() {
difference() {
cube([innen_x + 2*wand, innen_y + 2*wand, innen_z]);
translate([wand, wand, wand])
cube([innen_x, innen_y, innen_z]);
}
}
module deckel() {
union() {
cube([innen_x + 2*wand, innen_y + 2*wand, deckelhoehe]);
translate([wand - luft, wand - luft, wand/2])
cube([innen_x + 2*luft, innen_y + 2*luft, deckelhoehe]);
}
}
box();
translate([0, innen_y+10, 0])
deckel();
Wenn du Box und Deckel getrennt drucken willst:
deckel();
aus → nur die Box exportieren.
Über den Customizer kannst du die einzelnen Paramter der Box ändern. Die Änderungen kannst du als ein Preset speichern. Die Presets werden in einer separaten Datei gespeichert, die mit zusammen mit dem Modell Skript geladen werden
luft
bei Bedarf (zwischen 0.2 – 0.5 mm)wand
) für Stabilität anDu hast nun eine eigene, maßgeschneiderte Box mit Deckel, bereit für den 3D-Druck – komplett parametrierbar!
🔧 Möchtest du jetzt z. B. einen Schnappverschluss, abgerundete Ecken oder Textgravur hinzufügen? Ich kann dir das auch zeigen.