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>
Die Hoehe-Angabe steht bereits pro Element in der details-JSON-Spalte
(z.B. "Hoehe in m" aus dem MONTAGEHOEHE_m-Attribut bei VarioFoerderer/
Linienzug), die separate Top-Level-Spalte war redundant.
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>
Jeder Kreisel bekommt bei der Erzeugung das neue Attribut GERUEST_EINZELMODUL
(Default false), im KreiselEdit-Dialog per Checkbox "Geruest fuer Einzelmodul"
umschaltbar. Fliesst als echter JSON-Bool ins details-Feld von EXPORTSIVAS/
EXPORTCSV und wird bei der Sivas-Gruppierung gleichartiger Kreisel beruecksichtigt.
test_vario_teileart erwartete noch "VarioFoerderer", obwohl export_csv.py
seit Commit bf51747 (14 Commits zuvor) bewusst "ILS 2.0 Strecke" liefert -
ein VarioFoerderer ist ein Streckentyp. Test war seither stale, unabhaengig
von den foerderer_tests.json-Aenderungen dieser Session.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Bisher waren Seite (links/rechts), ein erzwungener Rampenwinkel und die
Aufteilung der Gefaelle-Laenge auf Ein-/Auslauf im Testtreiber hart codiert
(immer "links", automatischer Winkel, 50/50-Split). Alle drei Werte sind
bereits als Parameter/Rueckgabewerte in vf_standard.lsp/vf_core.lsp
vorhanden - keine Aenderung an produktivem LISP-Code noetig, nur am
Testtreiber und der Testdatei.
Neue optionale JSON-Felder: seite, winkel, gf_verteilung (gleichmaessig/
vorne/hinten). Bestehende 12 Testfaelle bleiben unveraendert und
verhalten sich dank Default-Fallbacks identisch zu vorher.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Gefaellestrecke (GF_N): je Zeile eine Gruppe gleichartiger Bloecke (gleiche
Hoehe/Laenge/Winkel/Separatoren/Scanner/Typ), IDs und Bezeichnung als Array
statt einer einzigen Sammelzeile mit reiner Anzahl.
VarioFoerderer (VF_N): je Compound-Block eine eigene Zeile mit vollstaendigen
Gefaelle-/Angetrieben-Teilgruppen (Laengen, Winkel, Kurven, Foerderrichtung),
da VF_N immer TYP "Streckengruppe" ist. Lose Strecke-Elemente ausserhalb
eines VF_N-Blocks bleiben weiterhin in einer gruppierten IDs-Zeile.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Vollstaendiger i18n-Rollout ueber alle Feature- und Kernmodule: alle benutzersichtbaren princ/prompt/getXXX/alert-Texte laufen jetzt ueber die zentrale Sprachtabelle in ssg_lang.lsp (Deutsch/Englisch, umschaltbar via SSG_SPRACHE). 403 Tabelleneintraege, 497 Aufrufstellen in 17 Dateien.
Ausgeschlossen wie geplant: Debug-Ausgaben (dbg*), Lademeldungen, [DUMMY]-Platzhalter, [CFG]/[OMNI]-Diagnosemarker.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sivasnr-Werte mit 0_BGxxxxxx-Mustern werden jetzt ueber die neue
[container]-Config-Sektion in kommaseparierte Listen aufgeloest.
set_attributs.py kann nun explizit zwischen data/omniflo/2D und /3D
als Quellverzeichnis waehlen.
on_start.lsp entfernt:
Das Menue wird einmalig manuell per BricsCAD-Befehl _MENULOAD
eingerichtet. BricsCAD speichert die Menuregistrierung dauerhaft.
Ein externes Startup-Skript ist nicht mehr noetig.
Dokumentation aktualisiert:
CLAUDE.md: Lademechanismus neu beschrieben mit _MENULOAD-Anleitung,
Legacy-Liste bereinigt (on_start.lsp als entfernt eingetragen)
Lisp/README.md: Ladereihenfolge durch Menueeinrichtungs-Anleitung
ersetzt; ssg_load.lsp als Notfall-Alternative dokumentiert
doc/LispTests.md: Verweis auf ssg_load.lsp und on_start bereinigt
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Die Datei wurde faelschlicherweise als unreferenziert geloescht.
on_start.lsp wird von BricsCAD ueber die Startup-Suite (APPLOAD)
automatisch geladen und ruft (ssg-lib-startup) auf, welches per
MENULOAD die SSG_LIB.mnu laedt. Ohne diesen Ladevorgang steht das
SSG_LIB-Menue in BricsCAD nicht zur Verfuegung.
Grund fuer die Verwechslung: der Eintrag in der BricsCAD Startup-
Suite liegt in den lokalen BricsCAD-Einstellungen (ausserhalb Git)
und war daher per grep im Repository nicht auffindbar.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
bin/on_start.lsp entfernt:
Das Laden aller Module uebernimmt heute vollstaendig SSG_LIB.mnl,
das automatisch beim MENULOAD geladen wird und ssg-ensure fuer
Lazy-Loading sowie alle Kern- und Feature-Module direkt ausfuehrt.
on_start.lsp war nirgendwo mehr referenziert (kein .bat, .mnu, .mnl
oder .lsp rief die Datei oder ssg-lib-startup noch auf).
Lisp/ssg_load.lsp: Pfadermittlung robuster gemacht:
base-path nutzt jetzt 1) DXFM_LISP, 2) findfile, 3) DWGPREFIX.
Vorher schlug findfile "ssg_core.lsp" fehl wenn DXFM_LISP nicht im
BricsCAD-Suchpfad war, load gab still den Fehlerstring zurueck und
ssg-load-config crashte mit "no function definition".
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
SSG_RUN_ALL_TESTS liest die Testliste jetzt aus tests/alltests.json.
Pro Test konfigurierbar: JSON-Export (immer), DXF, DWG oder kein
Speichern der Zeichnung ueber das Feld 'save'.