Die Greifmulde: Karten greifen
Die Box hält jetzt Karten — aber sie wieder herauszubekommen ist fummelig, weil die Wände sie verdecken. Die Lösung zeigt das Schöne am Code-Modell: Wir fügen kein neues Konzept hinzu, sondern ziehen einfach eine weitere Form ab.
union) oder „Material weg" (difference). Die Greifmulde ist Material weg — ein halber Zylinder, aus der Vorderwand geschnitten.Eine neue Form: der Zylinder
Bisher hatten wir nur Quader. Für die runde Mulde brauchen wir einen cylinder:
cylinder(h = 40, r = 12, $fn = 64);
// h = Höhe, r = Radius
// $fn = wie viele Segmente → wie rundEin Zylinder steht standardmäßig aufrecht (entlang Z). Für die Mulde legen wir ihn mit rotate quer und positionieren ihn mittig in der Vorderwand.
Die Mulde in die Box schneiden
Wir hängen den Zylinder einfach als weiteres Kind in das difference() der Box — alles, was er überlappt, verschwindet:
karte_b = 85; karte_t = 55;
wand = 2; spiel = 0.5; hoehe = 40;
mulde_r = 12; // Tiefe der Mulde
mulde_b = 45; // Breite der Mulde
aussen_b = karte_b + 2 * wand + spiel;
aussen_t = karte_t + 2 * wand + spiel;
difference() {
cube([aussen_b, aussen_t, hoehe]); // Außenkörper
translate([wand, wand, wand]) // Hohlraum
cube([karte_b + spiel, karte_t + spiel, hoehe]);
translate([aussen_b / 2, wand, hoehe]) // Greifmulde
rotate([0, 90, 0])
cylinder(h = mulde_b, r = mulde_r, center = true, $fn = 64);
}Querschnitt: die Mulde in der Vorderwand gibt den Daumen frei
Beachte: Die Mulde nutzt dieselben Variablen wie der Rest. aussen_b / 2 hält sie automatisch mittig — egal, wie breit die Box wird. Genau das ist die Stärke des parametrischen Modells: ein Maß ändern, und alles bleibt stimmig.
Warum eigentlich? — Warum aussen_b / 2 statt einer festen Zahl?
Schriebe man hier 42.5, wäre die Mulde nur für genau diese Boxbreite mittig. Sobald du karte_b auf ein anderes Format änderst, säße sie schief. Mit aussen_b / 2 ist die Position eine Beziehung zur Box — sie rechnet sich bei jeder Änderung neu. Das ist der Unterschied zwischen „einmal hingemalt" und „echtes Modell".
Häufiger Denkfehler — Klassische Fehler bei der Mulde
Zylinder steht hochkant: Ohne rotate zeigt er nach oben und schneidet ein rundes Loch nach unten statt einer Mulde — die rotate([0, 90, 0]) legt ihn quer. $fn vergessen: dann ist die Mulde grobkantig statt rund (Standard sind nur wenige Segmente). Mulde zu tief: ist mulde_r größer als der Wandabstand zum Boden, schneidest du die Box durch.
Tiefer rein — Andere Mulden-Formen
Ein einzelner Zylinder gibt eine halbrunde Rinne mit geraden Enden. Willst du eine weiche, an beiden Enden gerundete Mulde, nimmst du hull() um zwei Kugeln (sphere) — dann spannt OpenSCAD eine glatte Hülle dazwischen. Eine Kugel statt Zylinder gibt eine runde Daumen-Delle. Dieselbe Idee, anderes Negativ.