Kombination von Objekten
Objekte können auf verschiedene Arten miteinander kombiniert werden.
Summe (union)
Die einfachste Möglichkeit, Objekte zu kombinieren, ist die Summe. Dabei werden die Volumen der Objekte einfach addiert. In OpenSCAD kannst du dies erreichen, indem du die Anweisungen einfach hintereinander schreibst – oder explizit mit union():
union() {
Anweisung1;
Anweisung2;
}
Binärdateien
Schnittmenge (intersection)
Die Schnittmenge ergibt nur den Teil, der in allen Objekten gleichzeitig enthalten ist:
intersection() {
Anweisung1;
Anweisung2;
}
Binärdateien
Differenz (difference)
Die Differenz schneidet das zweite Objekt aus dem ersten heraus. Das erste Objekt im Block bleibt erhalten, alle weiteren werden abgezogen:
difference() {
Anweisung1; // Das Objekt, von dem etwas abgezogen werden soll
Anweisung2; // Das Objekt, das abgezogen werden soll
}
Binärdateien
Bei difference() ist die Reihenfolge entscheidend: Das erste Objekt ist das Ausgangsobjekt, alle weiteren werden davon abgezogen. Tauschst du die Reihenfolge, erhältst du ein völlig anderes Ergebnis.
Vergleich aller drei Operationen
Verändere die Reihenfolge der Anweisungen im difference-Block und beobachte, wie sich das Ergebnis verändert.
Binärdateien
Abziehende Körper immer etwas größer machen, als nötig wäre.
Ein Zylinder, der genauso hoch ist wie der Würfel, aus dem er ein Loch bohren soll, liegt oben und unten flächengleich auf. Dann ist nicht entschieden, ob diese Fläche noch zum Werkstück gehört oder schon zum Loch – und das Loch ist in der Vorschau gar nicht zu sehen.
// so nicht - das Loch bleibt unsichtbar
difference() {
cube([20, 20, 10]);
translate([10, 10, 0]) cylinder(h=10, r=3);
}
// so ist es richtig: unten 1 mm tiefer, oben 1 mm laenger
difference() {
cube([20, 20, 10]);
translate([10, 10, -1]) cylinder(h=12, r=3);
}