CheatsheetEinsteiger

OpenSCAD

Boolesche Operationen in OpenSCAD

Körper mit union(), difference() und intersection() verbinden, abziehen und beschneiden - mit Praxisbeispiel Montageplatte.

7 Minuten Lesezeit · 1 PDF-Download

Boolesche Operationen - auch CSG-Operationen genannt - verknüpfen mehrere Körper zu einem neuen Modell. Damit baust du zusammengesetzte Formen, erzeugst Bohrungen und schneidest Körper gezielt zu.

Vereinigen, abziehen und beschneiden

union() verbindet alle enthaltenen Körper. difference() zieht alle weiteren Körper vom ersten Körper ab. intersection() behält nur den Bereich, in dem sich alle beteiligten Formen überschneiden.

difference() {
  cube([50, 30, 6], center = true);
  cylinder(h = 8, d = 8, center = true);
}

Bei difference() ist die Reihenfolge entscheidend: Der erste Körper ist immer das Ausgangsmaterial, alle folgenden Körper dienen als Werkzeuge.

Mehrere Ausschnitte und verschachtelte Formen

Innerhalb eines difference()-Blocks kannst du mehrere Bohrungen oder Ausschnitte in einem Schritt erzeugen. Boolesche Operationen lassen sich außerdem ineinander verschachteln. Eine union() kann beispielsweise mehrere Werkzeugkörper verbinden, die anschließend gemeinsam abgezogen werden.

difference() {
  cube([60, 40, 8], center = true);
  union() {
    cylinder(h = 10, d = 12, center = true);
    cube([30, 5, 10], center = true);
  }
}

Robuste Überschneidungen

Werkzeugkörper sollten das Material vollständig durchdringen. Ein kleines Übermaß verhindert deckungsgleiche Flächen und damit mögliche Darstellungsfehler.

epsilon = 0.1;
cylinder(
  h = staerke + 2 * epsilon,
  d = 5,
  center = true
);

Mit # kannst du Werkzeugkörper hervorheben und mit % den Grundkörper transparent darstellen. So erkennst du schnell, ob sich die Formen wirklich wie geplant überschneiden.

Praxis: Montageplatte

Das vollständige Beispiel im PDF erzeugt eine parametrische Montageplatte. Vier Zylinder werden in einer Schleife als Bohrungen abgezogen. Eine kleinere $fn-Segmentzahl für die Vorschau hält die Bearbeitung schnell, während das finale Rendering eine höhere Qualität verwendet.

Die abschließende Übung erweitert das Prinzip um eine mittige Bohrung und zwei Langlöcher, die sich mit hull() konstruieren lassen.