Begriffe vorab
- Wandstärke: Dicke der Außenwände.
- Toleranz: Spiel zwischen Teilen, damit sie passen.
- Parametrisch: Alle Maße hängen von wenigen Variablen ab.
- Modul: Wiederverwendbarer Baustein.
- Aufmaß: Zugabe, damit Passungen nach dem Druck funktionieren.
Ziel
Dieses Projekt führt die bisherigen Lektionen zusammen: Variablen, Module, boolesche Operationen, hull für Rundungen, for für Muster und Customizer-Kommentare. Es entsteht eine rechteckige Box mit Deckel, deren Maße sich über wenige Variablen ändern lassen. Der Entwurf ist ein eigenes Beispiel, keine Vorlage aus der Doku.
Vorgehen in Schritten
- Parameter festlegen: Innenmaße, Wandstärke, Eckenradius, Toleranz.
- Grundform bauen: ein Modul für einen abgerundeten Quader (
hullüber vier Zylinder). - Box = Außen minus Innen:
difference()mit einem Innenkörper, der oben herausragt. - Deckel: eine Platte mit einer umlaufenden Lippe, die mit Toleranz in die Box passt.
- Anordnen: beide Teile nebeneinander legen, damit sie sich drucken lassen.
/* [Maße] */
innen_b = 60; // Innenbreite (mm)
innen_t = 40; // Innentiefe (mm)
innen_h = 25; // Innenhöhe (mm)
wand = 2; // [1:0.5:4]
radius = 4; // [0:1:10]
spiel = 0.3; // Toleranz zwischen Deckel und Box
/* [Hidden] */
$fn = 48;
eps = 0.01;
// Abgerundeter Quader (Ecken in der xy-Ebene)
module rundquader(b, t, h, r) {
hull()
for (x = [r, b - r], y = [r, t - r])
translate([x, y, 0]) cylinder(h = h, r = r);
}
module box() {
ab = innen_b + 2 * wand;
at = innen_t + 2 * wand;
difference() {
rundquader(ab, at, innen_h + wand, radius + wand);
translate([wand, wand, wand])
rundquader(innen_b, innen_t, innen_h + 1, max(radius, 0.1));
}
}
module deckel() {
ab = innen_b + 2 * wand;
at = innen_t + 2 * wand;
// Platte
rundquader(ab, at, wand, radius + wand);
// Lippe, die mit Spiel in die Box passt
translate([wand + spiel, wand + spiel, wand - eps])
difference() {
rundquader(innen_b - 2 * spiel, innen_t - 2 * spiel, 4, max(radius - spiel, 0.1));
translate([wand, wand, -1])
rundquader(innen_b - 2 * spiel - 2 * wand, innen_t - 2 * spiel - 2 * wand, 6, 0.1);
}
}
box();
translate([0, innen_t + 2 * wand + 10, 0]) deckel();
Was du daraus lernst
- Ableitungen statt Zahlen: Außenmaße ergeben sich aus Innenmaßen plus Wandstärke. Ändert sich ein Parameter, folgt der Rest.
- Epsilon: Der Innenraum ragt über die Oberkante hinaus (
innen_h + 1), die Lippe überlappt die Platte umeps. - Toleranz: Das Spiel von 0,3 mm ist ein Beispielwert; er hängt vom Drucker ab und muss ausprobiert werden.
- Module:
rundquaderwird dreimal wiederverwendet.
Beginne jedes Projekt mit den Parametern: Wer erst baut und später parametrisiert, schreibt vieles doppelt.
Zum Selbermachen
- Füge dem Deckel eine Griffmulde (abgezogene Kugel) hinzu.
- Ergänze vier Schraubenlöcher in den Ecken per for-Schleife.
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 verwendeten Konstrukte (hull, difference, for, Module, Customizer-Syntax, Epsilon-Prinzip) stützen sich auf die in den vorherigen Lektionen belegten Seiten des User Manuals. Alle Codebeispiele dieser Lektion wurden mit OpenSCAD 2026.09.18 (lokale Installation) ausgeführt und liefen ohne Fehler und Warnungen. Nicht einzeln belegt: das gesamte Projekt (eigener Entwurf, keine Vorlage aus der Doku) und der Toleranzwert 0,3 mm (Beispielwert, druckerabhängig). Außerdem 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 User Manual – CSG Modelling (en.wikibooks.org/wiki/OpenSCAD_User_Manual/CSG_Modelling)
- OpenSCAD User Manual – Customizer (en.wikibooks.org/wiki/OpenSCAD_User_Manual/Customizer)
- OpenSCAD User Manual – Tips and Tricks (en.wikibooks.org/wiki/OpenSCAD_User_Manual/Tips_and_Tricks)
- OpenSCAD Cheat Sheet (openscad.org/cheatsheet, bezieht sich auf Version 2021.01)