Testrun-Export nach tests/output umbiegen, Sivas-Bezeichner-Datei optional, Sivas-Merkmalzuordnung in Config
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>
This commit is contained in:
1 parent
33d0688763
commit
e8c5cd0a63
6 files changed
+373
-101
No files matched your search
+106
@@ -0,0 +1,106 @@
|
||||
# ============================================================
|
||||
# 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
|
||||
Reference in new issue
Block a user