Bewährte Rezepte: Muster, Verrundungen, Hüllenketten

LektionOpenSCAD: Praxisca. 3 Min. Lesezeit

Begriffe vorab

  • Rezept: Kompakte, wiederverwendbare Lösung für ein typisches Problem.
  • Hüllenkette: Mehrere hull()-Aufrufe zwischen aufeinanderfolgenden Objekten.
  • Fillet: Rundung einer Innenkante.
  • Lineares Muster: Wiederholung eines Objekts entlang einer Linie.
  • Bounding Box: Umschließender Quader eines Objekts.

Rezept 1: Lineare und rechteckige Muster

Für Bohrungsreihen und Lüftungsschlitze genügt eine for-Schleife mit einer Formel für die Position. Mehrere Schleifenvariablen (for (x = …, y = …)) erzeugen Raster.

// Lüftungsgitter: Platte mit Schlitzen
difference() {
    cube([50, 30, 3]);
    for (i = [0 : 7])
        translate([5 + i * 5, 5, -1]) cube([2, 20, 5]);
}

Rezept 2: Weiche Übergänge mit Hüllenketten

Die Doku beschreibt das Muster aus „Tips and Tricks“: Mit for (i = [1 : n]) erzeugst du hull()-Segmente zwischen aufeinanderfolgenden, verschobenen Objekten. Ergebnis sind glatte Bahnen und Rohre entlang beliebiger Punktfolgen.

// Rohr entlang einer Punktfolge: hull() zwischen aufeinanderfolgenden Kugeln
pfad = [[0,0,0], [20,0,10], [40,15,10], [60,15,30]];
for (i = [1 : len(pfad) - 1])
    hull() {
        translate(pfad[i - 1]) sphere(r = 3, $fn = 16);
        translate(pfad[i])     sphere(r = 3, $fn = 16);
    }

Rezept 3: Verrundungen

In 2D rundest du mit offset (Round und Fillet, siehe Lektion „Hüllen, Minkowski-Summe und Rundungen“). In 3D rundest du außen mit minkowski() und einer Kugel: minkowski() { children(); sphere(r); }. Innenrundungen entstehen entsprechend durch Abziehen eines vergrößerten Körpers.

Rezept 4: Mit Listen konstruieren

Punktlisten für polygon erzeugst du mit List Comprehensions, Bauteillisten mit Funktionen wie map-ähnlichen Ausdrücken: [ for (x = eingabe) f(x) ], Filter mit [ for (x = eingabe) if (bedingung(x)) x ]. Fehlende Funktionsargumente werden zu undef – Standardwerte schützen davor.

// Gestufter Turm aus einer Liste von Radien
radien = [14, 12, 10, 8, 6, 4];
module turm(liste, stufe = 6) {
    for (i = [0 : len(liste) - 1])
        translate([0, 0, i * stufe]) cylinder(h = stufe, r = liste[i], $fn = 48);
}
turm(radien);

// Nur Radien über 8 behalten
grosse = [ for (r = radien) if (r > 8) r ];
echo(grosse);

Rezept 5: Tap-Muster für echo

Ein praktisches Muster aus der Doku: Eine Funktion gibt einen Wert per echo aus und liefert ihn unverändert zurück. So kannst du Zwischenwerte mitten in einer Berechnung sichtbar machen, ohne die Berechnung umzubauen.

function tap(x, name = "wert") = let (u = echo(name, x)) x;

abstand = tap(norm([3, 4]), "abstand");   // gibt 5 aus und liefert 5
cylinder(h = abstand, r = 2, $fn = 24);

Das Muster eignet sich für Ketten: a = tap(f(tap(g(x)))) zeigt dir beide Zwischenstände.

Sammle eigene Rezepte als kleine Module in einer Bibliotheksdatei – jedes gelöste Problem spart dir beim nächsten Projekt Zeit.

Zum Selbermachen

  1. Baue das Lüftungsgitter so um, dass Anzahl und Abstand der Schlitze Parameter sind.
  2. Erzeuge eine Spirale aus Hüllenkette und Winkelfunktionen.

Verwandte Themen

OpenSCAD → Die übrigen Lektionen dieser Themenwelt; Informatik: Grundlagen → „Algorithmen und Berechenbarkeit“ für das Denken in Schritten.

Prüfstatus: Belegt (Stand 1. Oktober 2026): Die Rezepte stützen sich auf die in „Tips and Tricks“ beschriebenen Muster (Hüllenketten, Minkowski-Rundung, Offset-Rundung, List-Comprehension-Filter, Standardwerte gegen undef, echo-Tap) und die zugehörigen Sprachseiten. Alle Codebeispiele dieser Lektion wurden mit OpenSCAD 2026.09.18 (lokale Installation) ausgeführt und liefen ohne Fehler und Warnungen. Nicht einzeln belegt: die konkreten Beispiele (eigene Konstruktionen; das Tap-Muster ist in der Doku nur beschrieben, die hier gezeigte Umsetzung ist meine). Außerdem nicht einzeln belegt: die Erklärungen in eigenen Worten, die Beispiele als solche (konstruiert) und die Wertungen.

Quellen

  • OpenSCAD User Manual – Tips and Tricks (en.wikibooks.org/wiki/OpenSCAD_User_Manual/Tips_and_Tricks)
  • OpenSCAD User Manual – List Comprehensions (en.wikibooks.org/wiki/OpenSCAD_User_Manual/List_Comprehensions)
  • OpenSCAD Cheat Sheet (openscad.org/cheatsheet, bezieht sich auf Version 2021.01)

Alles zu „OpenSCAD: Praxis“