Begriffe vorab
- Primitive: Grundkörper, aus denen alles zusammengesetzt wird.
- center: Gibt an, ob ein Körper um den Ursprung zentriert wird.
- r und d: Radius und Durchmesser (d nur als benannter Parameter).
- Fragment: Ein Segment der Kreisannäherung; Anzahl steuern $fn, $fa, $fs.
- Manifold: Geschlossene, saubere Oberfläche ohne Lücken – Bedingung für gültige 3D-Modelle.
cube()
Signatur: cube(size, center). size ist eine Zahl (Würfel) oder ein Vektor [x, y, z]; Standard ist [1, 1, 1]. Mit center = false (Standard) liegt der Körper im positiven Oktanten mit einer Ecke im Ursprung, mit center = true sitzt der Mittelpunkt im Ursprung.
sphere()
sphere(r) oder sphere(d = …); Standard ist Radius 1. Der Durchmesser d muss als benannter Parameter angegeben werden. Die Glätte hängt von $fn, $fa und $fs ab (eigene Lektion).
cylinder()
Parameter: h (Höhe, Standard 1), r für beide Enden oder r1 (unten) und r2 (oben), dazu d, d1, d2 als Durchmesser-Varianten und center. Ist r1 ungleich r2, entsteht ein Kegelstumpf; bei r2 = 0 ein Kegel. Standard: cylinder(h = 1, r1 = 1, r2 = 1, center = false).
Wichtige Warnung der Doku: Wer mit
cylinder()unddifference()Löcher macht, erhält zu kleine Löcher, weil das Polygon innerhalb des Kreises liegt. Dazu mehr in „Auflösung“.
polyhedron()
polyhedron(points, faces, convexity) baut beliebige Körper aus Eckpunkten und Flächen. points ist eine Liste von [x, y, z] (Index ab 0), faces eine Liste von Flächen mit je mindestens drei Punktindizes. Kernregel: Die Punkte jeder Fläche müssen im Uhrzeigersinn angeordnet sein, wenn man von außen auf die Fläche blickt. Zudem muss das Ergebnis geschlossen sein: An jeder Kante treffen genau zwei Flächen aufeinander. Zum Prüfen empfiehlt die Doku, das Polyhedron mit einem Würfel zu vereinigen und zu rendern (F6) – verschwindet es, ist die Reihenfolge falsch. In der Vorschau helfen die „Thrown Together“-Ansicht (F12) und die rosa Darstellung falsch herum liegender Flächen.
// Vier Grundkörper nebeneinander
cube([10, 20, 5]);
translate([20, 0, 0]) cube(8, center = true);
translate([40, 0, 0]) sphere(d = 12);
translate([60, 0, 0]) cylinder(h = 15, r1 = 6, r2 = 2);
// Eine Pyramide als polyhedron (Flächen im Uhrzeigersinn von außen)
translate([0, 40, 0])
polyhedron(
points = [[0,0,0],[10,0,0],[10,10,0],[0,10,0],[5,5,10]],
faces = [[0,1,4],[1,2,4],[2,3,4],[3,0,4],[3,2,1,0]]
);
Die Pyramide hat fünf Punkte (vier Grundpunkte, eine Spitze) und fünf Flächen: vier Dreiecke und die Grundfläche. Die Grundfläche steht als [3,2,1,0] in umgekehrter Reihenfolge, damit sie von außen (also von unten) im Uhrzeigersinn läuft.
Merke dir den Standard „Ecke im Ursprung“ – wer mittig rechnen will, setzt
center = true.
Zum Selbermachen
- Baue einen Kegel (r2 = 0) und einen Kegelstumpf und vergleiche beide.
- Ändere in der Pyramide die Reihenfolge einer Fläche und beobachte die rosa Darstellung in der Vorschau.
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): Signaturen, Parameter und Standardwerte von cube, sphere und cylinder, die Warnung zu zu kleinen Löchern sowie die Face-Reihenfolge, die Geschlossenheitsbedingung und die Prüfmethoden von polyhedron wurden gegen die Seite „Primitive Solids“ 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 – Primitive Solids (en.wikibooks.org/wiki/OpenSCAD_User_Manual/Primitive_Solids)
- OpenSCAD Cheat Sheet (openscad.org/cheatsheet, bezieht sich auf Version 2021.01)