CSV-Bezeichnung von VF/GF/Kreisel/Eckrad nutzt Anwender-Attribut statt nur Nummerierung
Die Spalte "Bezeichnung" verwendet jetzt das in BricsCAD frei editierbare
Attribut "Bezeichnung" des Blocks, falls gesetzt - sonst wie bisher die
generierte Standardbezeichnung ("VarioFoerderer :3" usw.). Damit laesst
sich ein in der Zeichnung umbenanntes Element im CSV-Export wiedererkennen.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+19
-4
@@ -224,6 +224,21 @@ def build_weiche_merkmale(block, eintrag):
|
||||
}
|
||||
|
||||
|
||||
def bezeichnung_oder_fallback(block, fallback):
|
||||
"""CSV-Spalte "Bezeichnung" fuer VF_N/GF_N/Kreisel/Eckrad: das vom
|
||||
Anwender in BricsCAD frei editierbare Attribut "Bezeichnung" (ATTDEF,
|
||||
siehe vf-bname/gf-bname bzw. KreiselInsert.lsp "name"-Dialogfeld), falls
|
||||
vorhanden und nicht leer - sonst der generierte Standardname
|
||||
("VarioFoerderer :3", "Kreisel :2" usw.).
|
||||
|
||||
Das Attribut wird beim Bau zunaechst mit dem Blocknamen (VF_n/GF_n) bzw.
|
||||
"Kreisel<n>" vorbelegt, kann danach aber umbenannt werden - damit laesst
|
||||
sich ein Element in der Zeichnung und im CSV-Export leichter
|
||||
wiedererkennen als ueber die reine Lauf-Nummerierung."""
|
||||
bez = (block.get("attribs", {}) or {}).get("Bezeichnung", "").strip()
|
||||
return bez if bez else fallback
|
||||
|
||||
|
||||
def build_variofoerderer_merkmale(block):
|
||||
"""Merkmale-Dict fuer einen VF_N- oder GF_N-Streckenblock.
|
||||
|
||||
@@ -1015,7 +1030,7 @@ def process_blocks(blocks, lookup, dbg=None):
|
||||
"nr": elem_nr,
|
||||
"teileart": "ILS 2.0 Strecke",
|
||||
"teileid": block.get("attribs", {}).get("ID", "0000"),
|
||||
"bezeichnung": f"VarioFoerderer :{vf_count}",
|
||||
"bezeichnung": bezeichnung_oder_fallback(block, f"VarioFoerderer :{vf_count}"),
|
||||
"planquadrat": planquadrat_column(block, planquadrat_cfg),
|
||||
"merkmale": build_variofoerderer_merkmale(block),
|
||||
# x/y (Block-Einfuegepunkt = Kettenanfang) fuer die Anfang/Ende-
|
||||
@@ -1041,7 +1056,7 @@ def process_blocks(blocks, lookup, dbg=None):
|
||||
"nr": elem_nr,
|
||||
"teileart": "ILS 2.0 Gefaellestrecke",
|
||||
"teileid": block.get("attribs", {}).get("ID", "0000"),
|
||||
"bezeichnung": f"Gefaellestrecke :{gf_count}",
|
||||
"bezeichnung": bezeichnung_oder_fallback(block, f"Gefaellestrecke :{gf_count}"),
|
||||
"planquadrat": planquadrat_column(block, planquadrat_cfg),
|
||||
"merkmale": build_variofoerderer_merkmale(block),
|
||||
# x/y (Block-Einfuegepunkt = Kettenanfang) fuer die Anfang/Ende-
|
||||
@@ -1063,7 +1078,7 @@ def process_blocks(blocks, lookup, dbg=None):
|
||||
"nr": elem_nr,
|
||||
"teileart": "ILS 2.0 Eckrad",
|
||||
"teileid": block.get("attribs", {}).get("ID", "0000"),
|
||||
"bezeichnung": f"Eckrad :{eckrad_count}",
|
||||
"bezeichnung": bezeichnung_oder_fallback(block, f"Eckrad :{eckrad_count}"),
|
||||
"planquadrat": planquadrat_column(block, planquadrat_cfg),
|
||||
"merkmale": build_kreisel_merkmale(block),
|
||||
**bbox_columns(block),
|
||||
@@ -1078,7 +1093,7 @@ def process_blocks(blocks, lookup, dbg=None):
|
||||
"nr": elem_nr,
|
||||
"teileart": "ILS 2.0 Kreisel",
|
||||
"teileid": block.get("attribs", {}).get("ID", "0000"),
|
||||
"bezeichnung": f"Kreisel :{kreisel_count}",
|
||||
"bezeichnung": bezeichnung_oder_fallback(block, f"Kreisel :{kreisel_count}"),
|
||||
"planquadrat": planquadrat_column(block, planquadrat_cfg),
|
||||
"merkmale": build_kreisel_merkmale(block),
|
||||
# x/y/rotation/attribs (roh, nicht nur die Merkmale) werden
|
||||
|
||||
Reference in New Issue
Block a user