SSG_RUN_ALL_TESTS_EXPORT setzte *export-test-override* nicht, dadurch landeten CSV/Sivas-Exporte trotz Automatik-Modus in DXFM_RESULTS statt in tests/output wie die DXF/DWG-Dateien selbst - jetzt analog zu TEST_EXPORT_ALL behoben. EXPORTSIVAS schrieb bisher immer zusaetzlich eine "_mit_bezeichnung.csv" (Klartext-Kopie). Neuer Schalter "Sivas Export mit Bezeichner" im Dialog CSV_EXPORT_KONFIG (Standard aus) macht das optional. Die Attribut->Sivas-Merkmal-Zuordnung der build_*_details-Funktionen in export_sivas.py (Gefaellestrecke/Kreisel/Eckrad/Geruest/VarioFoerderer, soweit nicht von der Segmentanzahl abhaengig) liegt jetzt deklarativ in cfg/sivas.cfg statt hartcodiert im Python - neuer Loader lib/sivas_mapping.py. Ablauflogik (Gruppierung, Automation-Summenzeile, Segment-Zaehlung) bleibt Code. Gegen den alten Code mit synthetischen Testblöcken verifiziert: identische Ausgabe. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
107 lines
4.8 KiB
INI
107 lines
4.8 KiB
INI
# ============================================================
|
|
# sivas.cfg - Attribut->Sivas-Merkmal-Zuordnung fuer lib/export_sivas.py
|
|
#
|
|
# Deckt NUR die "einfachen" Faelle ab: eine Sivas-Merkmalnummer entspricht
|
|
# genau einem (ggf. per Fallback alternativen) Block-Attribut, optional mit
|
|
# festem Default und/oder einer benannten Transform-Funktion. Berechnete
|
|
# Werte, die von der Anzahl vorhandener Segmente abhaengen oder mehrere
|
|
# Attribute kombinieren (VarioFoerderer-Gefaelle-/Vario-Segmentpaare 4312-
|
|
# 4392/4353-4386, die ILS-Automation-Summenzeile) bleiben bewusst Python-Code
|
|
# in export_sivas.py - ein flaches Attribut-Mapping kann bedingte/berechnete
|
|
# Werte nicht abbilden.
|
|
#
|
|
# Format je Zeile (Abschnitt = Elementtyp, Key = Sivas-Merkmalnummer):
|
|
# merkmal = attribut
|
|
# merkmal = attribut : default
|
|
# merkmal = attribut | alt_attribut : default
|
|
# merkmal = attribut : default | transform
|
|
#
|
|
# attribut - Name des Block-Attributs (ssg-attrib-*, siehe jeweiliges
|
|
# .lsp-Modul). Fehlt es in der Zeichnung, greift default.
|
|
# | alt_attribut - optionaler Fallback-Attributname (aeltere Zeichnungen mit
|
|
# abweichendem Attributnamen, z.B. N_SEPARATOREN vor der
|
|
# Umbenennung zu ANZAHL_SEPARATOR). Wird nur genutzt, wenn
|
|
# attribut selbst fehlt.
|
|
# : default - Vorgabewert, falls weder attribut noch alt_attribut in
|
|
# der Zeichnung gesetzt sind. Fehlt ":", ist default "".
|
|
# | transform - Name einer Python-Funktion in export_sivas.py
|
|
# (TRANSFORMS-Dict), die den ermittelten Rohwert
|
|
# (Attribut- oder Default-Wert) in die Sivas-Anzeige
|
|
# umwandelt (z.B. "0"/"1" -> "Ja"/"Nein"). Bekannte Namen:
|
|
# ja_nein, geruest_typ_anzeige. Ein unbekannter Name
|
|
# bricht NICHT ab, der Rohwert wird unveraendert
|
|
# uebernommen (siehe sivas_mapping.anwenden).
|
|
#
|
|
# Abschnittsnamen entsprechen den bisherigen build_*_details-Funktionen in
|
|
# export_sivas.py: [gefaellestrecke], [kreisel], [eckrad], [geruest]. Die
|
|
# geruest-typ-Anzeige-Tabelle (ASCII-Attributwert -> Sivas-Klartext mit
|
|
# Umlauten) UND SEPARATOR_BEARBEITUNG_ANZEIGE bleiben eigene, kleine
|
|
# Abschnitte weiter unten.
|
|
# ============================================================
|
|
|
|
[gefaellestrecke]
|
|
2950= MONTAGEHOEHE_m : 0
|
|
4384= : Gefällestrecke
|
|
4318= L_GF_m
|
|
4391= GF_WINKEL
|
|
4337= ANZAHL_SEPARATOR : 0
|
|
4338= : ohne HARTCOAT HRC 50 ± 5
|
|
4339= ANZAHL_SCANNER : 0
|
|
3992= GERUEST_EINZELMODUL : 0 | ja_nein
|
|
3993= GERUEST_TYP : Schoenenberger Geruest | geruest_typ_anzeige
|
|
# 4300 (Streckengruppe "ein Objekt"/"mehrere Objekte") und 4311 (Anzahl der
|
|
# gruppierten Bloecke) bleiben Code (streckengruppe_objekt_text, anzahl-Param.).
|
|
|
|
[kreisel]
|
|
2952= MONTAGEHOEHE_m : 0
|
|
3511= : 1
|
|
3515= ANZAHL_SEPARATOR | N_SEPARATOREN : 2
|
|
3517= ANZAHL_SCANNER | N_SCANNER : 0
|
|
3519= ANZAHL_RAMPEN | N_RAMPEN : 0
|
|
3992= GERUEST_EINZELMODUL : 0 | ja_nein
|
|
3993= GERUEST_TYP : Schoenenberger Geruest | geruest_typ_anzeige
|
|
# 3510 (Kreiselart-Anzeigetext) und 3512 (Abstand in m, gerundet) bleiben
|
|
# Code (bedingte Umbenennung bzw. Umrechnung mm->m).
|
|
|
|
[eckrad]
|
|
# Bewusst (noch) beschreibende Klartext-Keys statt Merkmalnummern (kein
|
|
# bekanntes Sivas-Merkmal fuer Eckrad-Geruest hinterlegt) - details_mit_
|
|
# bezeichnung() in export_sivas.py laesst nicht-numerische Keys unveraendert.
|
|
# "ist_eins" liefert ein ECHTES bool (True/False), NICHT "Ja"/"Nein" wie
|
|
# ja_nein bei Kreisel/Gefaellestrecke - json.dumps schreibt dann true/false
|
|
# ohne Anfuehrungszeichen (bisheriges Verhalten von build_eckrad_details).
|
|
Geruest fuer Einzelmodul= GERUEST_EINZELMODUL : 0 | ist_eins
|
|
Geruestoption fuer Einzelmodul= GERUEST_TYP : Schoenenberger Geruest
|
|
|
|
[geruest]
|
|
Farbe= FARBE
|
|
|
|
[variofoerderer]
|
|
# Nur die von der Segmentanzahl UNABHAENGIGEN Top-Level-Felder einer VF_N-
|
|
# Streckengruppe (siehe build_variofoerderer_details in export_sivas.py).
|
|
# Die Gefaelle-/Vario-Segmentpaare (4312-4392, 4353/4354/4386) haengen an der
|
|
# Listenlaenge von L_GF_m/L_VF_m und bleiben Code.
|
|
2950= MONTAGEHOEHE_m : 0
|
|
4329= GF_Bogen_L_90 : 0
|
|
4330= GF_Bogen_L_60 : 0
|
|
4331= GF_Bogen_L_30 : 0
|
|
4332= GF_Bogen_R_90 : 0
|
|
4333= GF_Bogen_R_60 : 0
|
|
4334= GF_Bogen_R_30 : 0
|
|
4373= VF_Bogen_A_90 : 0
|
|
4374= VF_Bogen_A_60 : 0
|
|
4375= VF_Bogen_A_30 : 0
|
|
4376= VF_Bogen_I_90 : 0
|
|
4377= VF_Bogen_I_60 : 0
|
|
4378= VF_Bogen_I_30 : 0
|
|
4381= ANZAHL_SEPARATOR : 0
|
|
4382= : ohne HARTCOAT HRC 50 ± 5
|
|
4383= ANZAHL_SCANNER : 0
|
|
3992= GERUEST_EINZELMODUL : 0 | ja_nein
|
|
3993= GERUEST_TYP : Schoenenberger Geruest | geruest_typ_anzeige
|
|
|
|
[geruest_typ_anzeige]
|
|
# ASCII-Attributwert (GERUEST_TYP) -> Sivas-Klartext mit Umlauten/Sonder-
|
|
# zeichen (Attribute selbst bleiben ASCII, siehe CLAUDE.md-Konvention).
|
|
Schoenenberger Geruest= Schönenberger-Gerüst
|