Software 7 min Lesezeit

Parametrisches Design mit OpenSCAD

Modelle per Code erstellen — perfekt anpassbar, versionierbar, parametrisch

Parametrisches Design mit OpenSCAD

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.

Weiterführende Guides

Alle Guides ansehen · Zur FAQ

Weitere Guides

forum

Fragen oder Feedback?

Hat dieser Guide geholfen? Etwas unklar oder fehlt etwas? Schreib uns — wir verbessern den Guide gerne.

mail Feedback senden

Deine E-Mail wird nur zur Beantwortung deiner Anfrage genutzt und nicht weitergegeben.