Fehlersuche: Modifier-Zeichen, Z-Fighting und saubere Geometrie

LektionOpenSCAD: Qualität & Fehlersucheca. 3 Min. Lesezeit

Begriffe vorab

  • Modifier-Zeichen: Zeichen vor einem Objekt, das seine Behandlung ändert: * ! # %.
  • Z-Fighting: Flackern, wenn zwei Flächen exakt aufeinanderliegen.
  • Non-manifold: Geometrie mit Löchern oder Kanten, an denen nicht genau zwei Flächen zusammentreffen.
  • Konvexität: Hinweis für die Vorschau, wie komplex ein Objekt ist.
  • echo: Ausgabe von Werten in die Console zur Fehlersuche.

Die vier Modifier-Zeichen

Vor jedes Objekt oder jeden Teilbaum kannst du ein Zeichen setzen:

Zeichen Name Wirkung
* Disable Teilbaum wird ganz ignoriert – wie auskommentiert, ohne Klammern zählen zu müssen.
! Root Nur dieser Teilbaum wird gezeigt; alles andere wird ignoriert. Transformationen außerhalb des Teilbaums gelten nicht.
# Debug Teilbaum wird normal verwendet und zusätzlich unverändert in transparentem Rosa gezeigt. Nur in der Vorschau, nicht im Export.
% Background Teilbaum erscheint transparent grau, wird aber nicht in CSG-Operationen verwendet. Nur in der Vorschau, nicht im Export.

Die Doku warnt: Steht % am ersten Objekt von difference(), wird es ignoriert – das hat oft unerwartete Folgen.

difference() {
    cube([30, 30, 10]);
    #translate([15, 15, -1]) cylinder(h = 12, r = 6, $fn = 48);  // zeigt, WAS abgezogen wird
}
%translate([40, 0, 0]) cube(10);                                  // nur als Hintergrund-Maß
translate([60, 0, 0]) *sphere(r = 8);                             // deaktiviert

Z-Fighting und deckungsgleiche Flächen

Das FAQ rät: Bei Flächen, die abgezogen werden, immer eine klare Überlappung vorsehen – mit einem kleinen Epsilon wie cube_size + 0.01. Sonst flackern Flächen in der Vorschau.

Löcher, die nicht stimmen

Erscheint ein Loch falsch, erhöhe convexity (meist genügt 10), das gibt die maximale Zahl der Vorder- (oder Rück-)seiten an, die ein Strahl durchdringt.

Nicht-manifold

Importierte STL-Dateien, die sich nicht mit F6 rendern lassen, haben meist fehlerhafte Geometrie. Das FAQ empfiehlt MeshLab oder Blender zur Reparatur: Das Modell muss manifold sein. Achte auf Nullflächen (kollineare Dreieckspunkte).

Ausgabe zur Fehlersuche

echo() gibt Werte in der Console aus, assert() bricht bei verletzten Annahmen ab. Ein bewährtes Muster aus „Tips and Tricks“ ist ein echo-Wrapper, der den Wert ausgibt und zurückliefert.

Ein # vor dem abziehenden Körper zeigt dir sofort, wo er wirklich sitzt – das spart viele Rechnungen.

Zum Selbermachen

  1. Setze # vor alle abziehenden Körper deines letzten Projekts und prüfe, ob sie überall herausragen.
  2. Provoziere Z-Fighting mit zwei bündigen Würfeln und löse es mit 0,01 Überlappung.

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): Wirkung der vier Modifier (inkl. Vorschau-/Render-Verhalten und der %-Warnung) sowie die FAQ-Antworten zu Z-Fighting, convexity und nicht-manifolden STL wurden gegen die Seiten „Modifier Characters“ und „FAQ“ geprüft. Alle Codebeispiele dieser Lektion wurden mit OpenSCAD 2026.09.18 (lokale Installation) ausgeführt und liefen ohne Fehler und Warnungen. Nicht einzeln belegt: die Erklärungen in eigenen Worten, die Beispiele als solche (konstruiert) und die Wertungen.

Quellen

  • OpenSCAD User Manual – Modifier Characters (en.wikibooks.org/wiki/OpenSCAD_User_Manual/Modifier_Characters)
  • OpenSCAD User Manual – FAQ (en.wikibooks.org/wiki/OpenSCAD_User_Manual/FAQ)
  • 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)

Alles zu „OpenSCAD: Qualität & Fehlersuche“