feat: Eckrad-Dialog, Kreiselname, Hoehen-Neuberechnung beim Export
- Eckrad: eigener DCL-Dialog (eckrad_edit.dcl) beim Einfuegen und per Doppelklick (EckradEdit); Sivas-Merkmale am Kreisel ausgerichtet (2950, 3381, 3992 Ja/Nein); bei Sep./Scanner-Zaehlung ausgenommen - Kreisel: eigener Name bleibt in Bezeichnung + Beschriftung erhalten - Sivas: Kreisel/Eckrad unterschiedlicher Hoehe nicht mehr zusammengefasst - Export: Hoehen-Attribute in Z verschobener Kreisel/Eckrad/VF/GF neu berechnet - GF-Edit: Einfuegehoehe aus aktueller Z-Koordinate
This commit is contained in:
+17
-14
@@ -113,17 +113,17 @@ def ja_nein(flag_1_0):
|
||||
return "Ja" if flag_1_0 == "1" else "Nein"
|
||||
|
||||
|
||||
def ist_eins(flag_1_0):
|
||||
"""Wandelt ein "0"/"1"-Attribut in ein echtes bool um (True/False im
|
||||
JSON, NICHT "Ja"/"Nein" wie ja_nein - siehe build_eckrad_details)."""
|
||||
return flag_1_0 == "1"
|
||||
def mm_zu_m(wert_mm):
|
||||
"""Wandelt ein mm-Attribut (z.B. Eckrad-HOEHE) in Meter um, gerundet wie
|
||||
3512 beim Kreisel ("2000" -> "2.0")."""
|
||||
return str(round(safe_float(wert_mm, 0.0) / 1000.0, 3))
|
||||
|
||||
|
||||
# --- Transform-Namen, wie sie in cfg/sivas.cfg hinter "|" stehen koennen ---
|
||||
TRANSFORMS = {
|
||||
"ja_nein": ja_nein,
|
||||
"geruest_typ_anzeige": geruest_typ_anzeige,
|
||||
"ist_eins": ist_eins,
|
||||
"mm_zu_m": mm_zu_m,
|
||||
}
|
||||
|
||||
|
||||
@@ -157,13 +157,15 @@ def build_gefaellestrecke_details(block, anzahl=1):
|
||||
|
||||
def kreisel_signature(block):
|
||||
"""
|
||||
Schluessel zur Gruppierung gleichartiger Kreisel: Kreiselart, Abstand,
|
||||
Anzahl der Separatoren, Anzahl der Scanner, Anzahl der Rampen sowie
|
||||
Geruest fuer Einzelmodul/Geruestoption entscheiden, ob Kreisel in
|
||||
derselben Sivas-Zeile summiert werden.
|
||||
Schluessel zur Gruppierung gleichartiger Kreisel: Montagehoehe (Merkmal
|
||||
2952), Kreiselart, Abstand, Anzahl der Separatoren, Anzahl der Scanner,
|
||||
Anzahl der Rampen sowie Geruest fuer Einzelmodul/Geruestoption
|
||||
entscheiden, ob Kreisel in derselben Sivas-Zeile summiert werden.
|
||||
Die Hoehe wird numerisch verglichen ("4.820" == "4.82").
|
||||
"""
|
||||
attribs = block.get("attribs", {})
|
||||
return (
|
||||
round(safe_float(attribs.get("MONTAGEHOEHE_m", "0"), 0.0), 3),
|
||||
attribs.get("KREISELART", "STANDARD"),
|
||||
attribs.get("ABSTAND", "2300"),
|
||||
attribs.get("ANZAHL_SEPARATOR", attribs.get("N_SEPARATOREN", "2")),
|
||||
@@ -176,12 +178,13 @@ def kreisel_signature(block):
|
||||
|
||||
def eckrad_signature(block):
|
||||
"""
|
||||
Schluessel zur Gruppierung gleichartiger Eckraeder: Geruest fuer
|
||||
Einzelmodul/Geruestoption entscheiden, ob Eckraeder in derselben
|
||||
Sivas-Zeile summiert werden.
|
||||
Schluessel zur Gruppierung gleichartiger Eckraeder: Hoehe (Merkmal 2950)
|
||||
und Geruest fuer Einzelmodul/Geruestoption entscheiden, ob Eckraeder in
|
||||
derselben Sivas-Zeile summiert werden.
|
||||
"""
|
||||
attribs = block.get("attribs", {})
|
||||
return (
|
||||
mm_zu_m(attribs.get("HOEHE", "0")),
|
||||
attribs.get("GERUEST_EINZELMODUL", "0"),
|
||||
attribs.get("GERUEST_TYP", "Schoenenberger Geruest"),
|
||||
)
|
||||
@@ -315,8 +318,8 @@ def build_kreisel_details(block):
|
||||
|
||||
|
||||
def build_eckrad_details(block):
|
||||
"""Merkmale-Dict fuer ein ILS Eckrad. Vollstaendig aus cfg/sivas.cfg
|
||||
[eckrad] (keine berechneten Werte)."""
|
||||
"""Merkmale-Dict fuer eine Gruppe gleichartiger ILS Eckraeder.
|
||||
Vollstaendig aus cfg/sivas.cfg [eckrad] (2950 per Transform mm_zu_m)."""
|
||||
attribs = block.get("attribs", {})
|
||||
return sivas_mapping.anwenden(SIVAS_MAPPING_ECKRAD, attribs, TRANSFORMS)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user