Konvention: Eine Referenz traegt IMMER denselben Dateinamen wie das Ist-
Ergebnis in output/ (nur anderes Verzeichnis). Referenz festlegen = Datei aus
output/ unter gleichem Namen nach reference/ kopieren.
- tests/README.md: neuer Abschnitt "Referenz-Namenskonvention (vereinheitlicht)"
mit Regel/Tabelle/copy-Beispiel; Namenskonventions-Tabelle, Fixture-Vorlage
(<modul>_tests.dxf statt <modul>_ref.dxf) und die Workflow-Referenzabschnitte
angeglichen.
- tests/conftest.py: kreisel_ref_dxf laedt reference/kreisel_tests.dxf
(vorher kreisel_ref.dxf).
- tests/test_omniflo.py: Referenz reference/omniflo_export.csv
(vorher omniflo_export_reference.csv).
- Referenzen abgenommen und in Git aufgenommen:
reference/kreisel_tests.dxf (Umbenennung des Tippfehlers Kresel_ref.dxf),
reference/omniflo_export.csv (aus geprueftem output/omniflo_export.csv).
Der Batch-Vergleich --diff_references matchte schon immer ueber identische
Basisnamen und bleibt unveraendert. Der Kreisel-Referenztest laeuft dadurch
jetzt statt zu skippen.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Nachbarschaft wird jetzt in drei getrennten Gruppen geprueft statt global
ueber alle Elemente: Kreisel/Eckrad gegeneinander, Kreisel/Eckrad gegen
Gefaellestrecke/Foerderer/Strecke-Modul (diese drei nicht gegeneinander),
und Omniflo-Elemente gegeneinander (rasterbasiert vorgefiltert nach x/y-
Koordinate). Ersetzt die bisherige shapely-STRtree-Loesung durch reines
Python, da die shapely-Abhaengigkeit den regulaeren CSV-Export in der von
BricsCAD genutzten Python-Umgebung brechen konnte.
Neue Spalte "Fehler" markiert Elemente mit zu wenigen Partnern
("unverbunden"/"nur ein Partner") je nach TeileArt-Mindestanzahl.
Ausserdem: SSG_RUN_ALL_TESTS-Absturz nach TEST_KREISEL behoben (ssg-start/
ssg-end nutzten flache globale Variablen statt eines Stacks, wodurch
verschachtelte Aufrufe den *error*-Handler dauerhaft korrumpierten) und
FILEDIA=0 um den DXFOUT-Kommandozeilenaufruf ergaenzt.
Neue Spalte "Nachbarn" (kommaseparierte TeileId-Liste) in export_csv.py:
zwei Elemente gelten als benachbart, wenn ihre Bounding-Boxes (x/y-Ebene)
sich ueberschneiden. Toleranz konfigurierbar in mm ueber cfg/export.cfg
[Nachbarschaft] -> toleranz_mm, siehe lib/export_neighbors.py.
Nur EXPORTCSV betroffen, EXPORTSIVAS bleibt unveraendert.
shapely als neue Abhaengigkeit in requirements.txt ergaenzt.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Nur EXPORTCSV betroffen, EXPORTSIVAS bleibt unveraendert:
- Position/Boundingbox: Bounding-Box je Block per vla-getboundingbox
(Lisp/export.lsp, csv:get-bbox), Mittelpunkt und Ausdehnung x/y/z.
- Planquadrat: aus x/y-Koordinate berechnet nach cfg/export.cfg
[Planquadrate] (Schrittweite, numerisch/alphabetisch je Achse,
alphabetische Zaehlung mit Excel-Spalten-Umlauf Z->AA), siehe
lib/export_planquadrat.py.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>