#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.
