CSV-Export: Nachbarschaft/bbox fuer Kreisel-Kreisel-Weichen, sepliste-Ketten und Separatoren repariert

Kreisel-Kreisel-Weichen fehlten bisher im Kreisel-Umlauf (compute_kreisel_umlauf),
wodurch angrenzende Separatoren auf falsche/fehlende Nachbarn zeigten. Die
kreisel_bounds-Matching-Box ignorierte ausserdem die tatsaechliche Kreiseldrehung
(faelschlich als achsparallel angenommen), was bei gedrehten langen Kreiseln
(Mubea Kreisel 0002) zu falschen Nachbarschaften fuehrte.

Die sepliste-XDATA (AS/SEP/ES-Reihenfolge je VF_n/GF_n) wurde nie ans Python-Item
durchgereicht - die gesamte Ketten-Nachbarschaftserkennung lief dadurch ins Leere.
Nach dem Beheben entstand eine Doppelzaehlung: die in einer Kette verpackten
Separatoren existieren bereits als echte Proxy-INSERTs (csv:sep-proxies-erzeugen);
build_separator_kette_items erzeugte zusaetzlich eigene Zeilen aus der sepliste.
Umgebaut zu map_separator_kette_items: ordnet die sepliste-Reihenfolge den
vorhandenen Proxy-Items zu (Match ueber Wrapper-ID + INSERT-Punkt) statt neue
Zeilen zu erzeugen - keine Doppelzaehlung mehr, Nachbarn korrekt gesetzt.

Ausserdem: vla-getboundingbox scheiterte in einem realen Export bei ALLEN
Bloecken (fehlende bbox ueberall), der Fehler wurde bisher still verschluckt.
REGENALL vor der Export-Schleife behebt das; eine neue Diagnose (exp-bbox-fail)
meldet kuenftige Ausfaelle statt sie zu verschlucken. Freie/eingebettete
Separatoren ohne bbox bekommen zusaetzlich einen Fallback aus einer konfigurierbaren
Symbol-Groesse (cfg/export.cfg [Boundingbox] separator_box_*).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-10 09:41:02 +02:00
parent e08b8b2b08
commit 27ae3df056
10 changed files with 1042 additions and 244 deletions
+1
View File
@@ -582,6 +582,7 @@
"exp-output-dir": "\n[%1] Ausgabeordner: %2",
"exp-file-open-error": "\n[%1] FEHLER: Kann Datei nicht oeffnen: %2",
"exp-json-written": "\n[%1] JSON geschrieben: %2",
"exp-bbox-fail": "\n[Export] WARNUNG: %1 Block/Bloecke ohne Bounding-Box (vla-getboundingbox scheiterte). Erster Fehler: %2",
"exp-calling-python": "\n[%1] Rufe Python auf...",
"exp-export-started": "\n[%1] Export gestartet: %2",
"exp-dxfm-lib-missing": "\n[%1] FEHLER: Umgebungsvariable DXFM_LIB ist nicht gesetzt - BricsCAD wurde vermutlich nicht ueber bin/start_briscad.bat gestartet. CSV/JSON wurden geschrieben, der Python-Aufruf entfaellt.",
+1
View File
@@ -582,6 +582,7 @@
"exp-output-dir": "\n[%1] Output folder: %2",
"exp-file-open-error": "\n[%1] ERROR: Cannot open file: %2",
"exp-json-written": "\n[%1] JSON written: %2",
"exp-bbox-fail": "\n[Export] WARNING: %1 block(s) without bounding box (vla-getboundingbox failed). First error: %2",
"exp-calling-python": "\n[%1] Calling Python...",
"exp-export-started": "\n[%1] Export started: %2",
"exp-dxfm-lib-missing": "\n[%1] ERROR: Environment variable DXFM_LIB is not set - BricsCAD was probably not started via bin/start_briscad.bat. CSV/JSON were written, the Python call is skipped.",