OpenSCAD ist einzigartig: Anstatt Modelle visuell zu erstellen, schreibst du Code. Das klingt komplizierter als es ist — und hat riesige Vorteile für den 3D-Druck. Wenn du eine Schraube 0,1mm größer brauchst, änderst du eine einzige Zahl. Keine Maus, keine Klick-Orgien. Komplett kostenlos und Open Source.
Warum OpenSCAD statt Fusion 360?
- Parametrisch aus dem Kern: Variablen steuern alle Maße — ein Parameter ändert das ganze Modell
- Versionskontrolle: Code in Git speichern — jede Änderung nachvollziehbar
- Perfekte Präzision: Keine Rundungsfehler durch Mausklicks, exakte Maße im Code
- Bibliotheken: BOSL2, dotSCAD — riesige Community-Libraries für Gewinde, Zahnräder, etc.
- Ideal für: Serienteile, Halterungen, Adapter, alles mit klar definierten Maßen
Installation und erste Schritte
OpenSCAD kostenlos unter openscad.org herunterladen. Die Oberfläche ist einfach: Links der Code-Editor, rechts die 3D-Vorschau. Nach jeder Änderung F5 für Vorschau, F6 für finales Render.
Die wichtigsten Grundkörper
// Würfel: cube([breite, tiefe, höhe])
cube([20, 30, 10]);
// Zylinder: cylinder(h=höhe, r=radius, $fn=Auflösung)
cylinder(h=15, r=8, $fn=64);
// Kugel: sphere(r=radius, $fn=Auflösung)
sphere(r=10, $fn=32);
$fn bestimmt die Auflösung von Kurven. Für Vorschau: $fn=16, für Druck: $fn=64–128.
Boolesche Operationen
// Vereinigung (beide Körper zusammenführen)
union() {
cube([20, 20, 5]);
cylinder(h=15, r=5, $fn=32);
}
// Differenz (Loch bohren)
difference() {
cube([20, 20, 10]); // Ausgangskörper
cylinder(h=12, r=4, $fn=32); // Wird abgezogen (Loch)
}
// Schnittmenge
intersection() {
cube([20, 20, 20]);
sphere(r=12, $fn=32);
}
Parametrisches Design: Das Kernkonzept
// Variablen definieren — hier alle Maße zentral
wandstaerke = 2.0; // mm
hoehe = 30; // mm
breite = 40; // mm
bohrung_d = 3.2; // Durchgangsloch für M3
// Modell mit Variablen
difference() {
cube([breite, breite, hoehe]);
// Wandstärke abziehen für hohlen Körper
translate([wandstaerke, wandstaerke, wandstaerke])
cube([breite - 2*wandstaerke,
breite - 2*wandstaerke,
hoehe]);
// Bohrung an Ecke
translate([breite/2, breite/2, -1])
cylinder(h=hoehe+2, d=bohrung_d, $fn=32);
}
Wenn du jetzt bohrung_d = 3.4; änderst, wird automatisch das Loch größer. Das ist parametrisches Design.
Translate, Rotate, Mirror
// translate([x, y, z]) — verschiebt
translate([10, 0, 0]) cube([5, 5, 5]);
// rotate([x_grad, y_grad, z_grad]) — dreht
rotate([0, 0, 45]) cube([10, 10, 5]);
// mirror([1, 0, 0]) — spiegelt an YZ-Ebene
mirror([1, 0, 0]) cube([10, 5, 5]);
// for-Schleife für Muster
for(i = [0, 1, 2, 3]) {
translate([i * 15, 0, 0]) cylinder(h=10, r=3, $fn=32);
}
Praktisches Beispiel: Kabelhalter
// Parametrischer Kabelhalter
kabel_d = 5; // Kabeldurchmesser
wand = 1.5; // Wandstärke
breite = 20; // Halterbreite
difference() {
// Grundkörper
cube([breite, kabel_d + 2*wand, kabel_d/2 + wand]);
// Kabelkanal
translate([0, wand, wand])
cube([breite, kabel_d, kabel_d + 1]);
}
STL-Export
F6 für finales Render (kann bei komplexen Modellen einige Sekunden dauern), dann File → Export → Export as STL. Fertig.
Hilfreiche Bibliotheken
- BOSL2: Gewinde, Zahnräder, Standard-Teile — die mächtigste OpenSCAD-Library
- dotSCAD: Mathematische Kurven und Formen
- NopSCADlib: Elektronik-Bauteile als 3D-Modelle zur Passung
Für visuelle CAD-Alternative: Fusion 360 für Einsteiger. Für STL-Reparatur: STL-Dateien reparieren.