Begriffe vorab
- Transformation: Operation, die ihre Kind-Objekte verschiebt, dreht, skaliert oder färbt.
- Kind-Objekt: Objekt, das direkt nach der Transformation folgt.
- Rechte-Hand-Regel: Daumen entlang der positiven Achse, die Finger zeigen die Drehrichtung.
- Affine Matrix: Matrix, die Verschiebung, Skalierung und Scherung vereint.
- Alpha: Deckkraft einer Farbe von 0 bis 1.
Wirkung und Reihenfolge
Eine Transformation steht vor den Objekten, auf die sie wirkt. Mehrere Transformationen werden laut Doku von rechts nach links angewendet: Die der Geometrie nächste wirkt zuerst. Deshalb liefert translate(...) rotate(...) cube(...) etwas anderes als rotate(...) translate(...) cube(...).
translate und rotate
translate(v = [x, y, z]) verschiebt entlang eines Vektors. rotate([ax, ay, az]) dreht um die Achsen in Grad. Die Doku legt fest: Werden mehrere Achsen angegeben, dreht OpenSCAD erst um x, dann um y, dann um z. Zusätzlich gibt es rotate(a = Winkel, v = [x, y, z]) für eine beliebige Achse, und in 2D genügt rotate(45) – das dreht um die Z-Achse. Es gilt die Rechte-Hand-Regel.
scale, resize, mirror
scale([sx, sy, sz])multipliziert die vorhandenen Maße mit Faktoren.resize(newsize = [x, y, z])setzt die Zielmaße. Eine 0 lässt die Dimension unverändert,auto = trueskaliert Nullmaße proportional mit. Achtung:resizeist eine CGAL-Operation und rechnet auch in der Vorschau mit voller Geometrie.mirror(v)spiegelt an einer Ebene durch den Ursprung mit Normalenvektorv. Es verdoppelt nichts, sondern spiegelt das Objekt.
multmatrix
multmatrix(m) wendet eine 4×3- oder 4×4-Matrix an (Skalierung, Scherung, Verschiebung in einer Matrix). Die vierte Zeile wird auf [0,0,0,1] gesetzt und darf fehlen.
color
Formen: color([r, g, b, a]) mit Werten von 0.0 bis 1.0, color([r, g, b], alpha = 1.0), color("#hexwert") (Formate #rgb, #rgba, #rrggbb, #rrggbbaa) und color("name", alpha) mit SVG-Farbnamen (Groß-/Kleinschreibung egal), dazu "transparent". Die Doku rät, transparente Formen nach den undurchsichtigen zu zeichnen, damit diese hindurch sichtbar bleiben.
// Reihenfolge zählt: rechts nach links
color("tomato") cube(10);
color("steelblue") translate([20, 0, 0]) rotate([0, 0, 45]) cube(10);
color("seagreen") rotate([0, 0, 45]) translate([20, 0, 0]) cube(10);
// Spiegeln und Skalieren
color("gold") translate([0, 40, 0]) {
cube([10, 5, 5]);
mirror([1, 0, 0]) cube([10, 5, 5]);
}
color("#8a2be2", 0.5) translate([30, 40, 0]) scale([1, 2, 0.5]) sphere(r = 8);
Das blaue Quadrat wird erst gedreht und dann verschoben (die Drehung wirkt zuerst um den Ursprung und dann um die Würfelecke), das grüne umgekehrt: erst verschieben, dann um den Ursprung drehen – es landet an einer ganz anderen Stelle.
Wenn ein Objekt „an der falschen Stelle“ landet, ist meist die Reihenfolge von translate und rotate vertauscht.
Zum Selbermachen
- Vertausche translate und rotate im Beispiel und beschreibe, was sich ändert.
- Färbe ein Objekt halbtransparent und lege ein undurchsichtiges dahinter.
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): Wirkungsreihenfolge von rechts nach links, die Drehreihenfolge x, y, z, die Formen von rotate, scale, resize (inkl. CGAL-Hinweis), mirror, multmatrix (vierte Zeile) und color (Formate, Hex, SVG-Namen, transparent, Zeichenreihenfolge) wurden gegen die Seite „Transformations“ 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 Erklärungen in eigenen Worten, die Beispiele als solche (konstruiert) und die Wertungen.
Quellen
- OpenSCAD User Manual – Transformations (en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations)
- OpenSCAD Cheat Sheet (openscad.org/cheatsheet, bezieht sich auf Version 2021.01)