difference: aushöhlen

Ein massiver Block hält keine Karten. Jetzt kommt die wichtigste Operation in OpenSCAD: difference zieht einen Körper von einem anderen ab — und macht aus dem Klotz eine Schale.

difference() behält das erste Kind und schneidet alle folgenden davon ab. Hier: äußere Box minus eine etwas kleinere innere Box = Wände + Boden bleiben stehen.

Vom Block zur Schale

SCADschale.scad
difference() {
  cube([85, 55, 40]);          // 1. bleibt
  translate([2, 2, 2])         // 2 mm Wand & Boden
    cube([81, 51, 40]);        // 2. wird abgezogen
}

Außenbox minus Innenbox = offene Schale, 2 mm Wand

Die innere Box ist auf jeder Seite 2 mm kleiner und um [2, 2, 2] verschoben — so bleiben ringsum 2 mm Wand und 2 mm Boden. Wichtig: Der Innenkörper ist genauso hoch (sogar etwas höher), damit er oben durchstößt und die Box offen bleibt.

Warum eigentlich?Warum difference das Herzstück ist

Fast jedes nützliche Teil hat Hohlräume, Löcher oder Aussparungen — Schraubenlöcher, Kabelkanäle, Griffmulden. Alle entstehen durch difference(): erst den vollen Körper bauen, dann das Negativ abziehen. Wer difference verstanden hat, kann den Großteil aller Druckteile modellieren.

Häufiger DenkfehlerDie zwei klassischen difference-Fehler

Deckel statt offene Box: Ist der Innenkörper genauso hoch und exakt auf gleicher Z-Höhe, bleibt oben eine dünne Haut stehen. Lass den Cutter oben 1–2 mm überstehen (oder fang ihn weiter unten an), damit er sauber durchschneidet. Reihenfolge: Das erste Kind ist der Körper, alles danach wird abgezogen — vertauscht man das, bleibt nichts übrig.

Tiefer reinDie drei Boolean-Operationen

union() verschmilzt Körper zu einem. difference() zieht ab. intersection() behält nur die Schnittmenge — den Bereich, den alle Körper gemeinsam haben. Mit diesen drei Mengen-Operationen plus Grundkörpern lässt sich erstaunlich viel bauen — das ist die ganze Idee hinter CSG.