Begriffe vorab
- linear_extrude: Zieht eine 2D-Form entlang der Z-Achse zu einem Körper.
- rotate_extrude: Dreht eine 2D-Form um die Z-Achse zu einem Rotationskörper.
- twist: Verdrehung während der Extrusion in Grad.
- slices: Zwischenschritte entlang der Extrusion.
- projection: Wandelt einen 3D-Körper in eine 2D-Form um.
linear_extrude()
Parameter: height (positiv), center (zentriert um Z = 0), twist (Verdrehung in Grad), scale (Skalierung über die Höhe, Zahl oder Vektor), slices (Zwischenebenen), convexity (Renderhinweis) und $fn. Wichtig: Die Doku verlangt benannte Parameter wegen einer Abwärtskompatibilität. Bei einem Vektor als scale können die Seitenwände unebene Flächen bekommen; empfohlen wird twist = 0 mit passender slices-Zahl.
rotate_extrude()
Parameter: angle (Standard 360, Rechte-Hand-Regel), convexity und die Auflösungsvariablen. Die Doku nennt außerdem start (Startwinkel), aber nur für Entwicklungs-Snapshots. Zwingende Regel: Die 2D-Form muss vollständig auf einer Seite der Y-Achse liegen (empfohlen: rechts, also x ≥ 0). Berührt sie die Achse, muss das eine Linie sein, kein Punkt. Schrauben oder Gewinde sind damit nicht zuverlässig herstellbar.
// Verdrehter Stab
linear_extrude(height = 30, twist = 90, slices = 40, convexity = 5)
translate([4, 0]) square([8, 3], center = true);
// Rotationskörper: Vase aus einem Halbprofil
translate([40, 0, 0])
rotate_extrude($fn = 64)
polygon([[0,0],[10,0],[12,15],[8,30],[9,32],[0,32]]);
// Ring mit 270 Grad
translate([80, 0, 0])
rotate_extrude(angle = 270, $fn = 48)
translate([8, 0]) circle(r = 3, $fn = 24);
Die Vase ist ein Halbprofil, das nur auf der rechten Seite der Y-Achse liegt. Beim Ring wird ein kleiner Kreis um 8 Einheiten nach rechts verschoben (x ≥ 0) und dann um 270° gedreht.
projection()
projection(cut = false) erzeugt aus einem 3D-Körper eine 2D-Zeichnung in der xy-Ebene bei z = 0. Mit cut = true werden nur Punkte bei z = 0 betrachtet – ein Schnitt, der eine Scheibe liefert. Mit cut = false (Standard) werden auch Punkte darüber und darunter einbezogen – ein echter Schattenwurf. Für Seitenansichten dreht man das Modell vorher und verschiebt es aus der Ebene. Das Ergebnis lässt sich als DXF exportieren.
// Schnitt (cut = true) und Silhouette (cut = false) einer Kugel
module koerper() { translate([0, 0, 4]) sphere(r = 10, $fn = 48); }
projection(cut = true) koerper(); // Kreis mit Radius ~9,2
translate([30, 0, 0]) projection(cut = false) koerper(); // Kreis mit Radius 10
Im Beispiel liegt der Kugelmittelpunkt über der Ebene z = 0: Der Schnitt ist kleiner als die volle Silhouette. Das Ergebnis ist 2D: Exportiere es als SVG oder DXF, nicht als STL (ein reines 2D-Ergebnis lässt sich nicht als STL ausgeben).
Rotationskörper brauchen immer ein halbes Profil – denke von der Drehachse nach außen.
Zum Selbermachen
- Zeichne das Profil einer Schachfigur und drehe es per rotate_extrude.
- Wandle ein beliebiges 3D-Modell per projection(cut = true) in einen Schnitt um.
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): Parameter von linear_extrude (inkl. benannter Parameter und scale-Warnung), rotate_extrude (angle, Seitenregel zur Y-Achse, Linie statt Punkt, Hinweis zu Gewinden, start nur in Snapshots) und projection (cut true/false) wurden gegen die Seiten „2D to 3D Extrusion“ und „3D to 2D Projection“ geprüft. Alle Codebeispiele dieser Lektion wurden mit OpenSCAD 2026.09.18 (lokale Installation) ausgeführt und liefen ohne Fehler und Warnungen. Nicht einzeln belegt: die Kreisradien im Kommentar des Projektionsbeispiels (rechnerische Näherung, nicht ausgemessen). Außerdem nicht einzeln belegt: die Erklärungen in eigenen Worten, die Beispiele als solche (konstruiert) und die Wertungen.
Quellen
- OpenSCAD User Manual – 2D to 3D Extrusion (en.wikibooks.org/wiki/OpenSCAD_User_Manual/2D_to_3D_Extrusion)
- OpenSCAD User Manual – 3D to 2D Projection (en.wikibooks.org/wiki/OpenSCAD_User_Manual/3D_to_2D_Projection)
- OpenSCAD Cheat Sheet (openscad.org/cheatsheet, bezieht sich auf Version 2021.01)