feat: GR_-Geruest-Baugruppen in EXPORTCSV/EXPORTSIVAS aufnehmen

GR_-Bloecke werden jetzt wie BTMT eigenstaendig gesammelt (LISP: neues
pattern_geruest in cfg/export.cfg, csv:collect-export-blocks,
ssg-id-collect-blocks + ID-ATTDEF in *geruest-attrib-defs*) und in beiden
Python-Exporten als eigene TeileArt-Zeile ausgegeben: ARTINR/BEZEICHNUNG/
TEILEART/LAENGE in festen Spalten, restliche Attribute (FARBE/LAYER) im
Merkmale-/details-JSON.

Dabei zwei Bugs behoben, die beim ersten echten GR_-Export sichtbar wurden:
- csv:json-escape nutzte vl-string-subst (ersetzt nur das erste Vorkommen)
  statt des global ersetzenden ssg-str-replace-all - bei Attributwerten mit
  mehreren Anfuehrungszeichen blieb ein Zeichen unescaped und brach die
  JSON-Struktur beim Python-Parsen.
- Gradzeichen (°) in data/json/geruest.json durch "Grad" ersetzt, um das
  Encoding-Risiko (cp1252 vs. UTF-8 beim LISP-Export) zu vermeiden.
This commit is contained in:
Michael Stangl committed 2026-09-14 14:22:45 +02:00
1 parent 9e3ac1f70a
commit 1590f8f7ed
8 files changed
+128 -12

No files matched your search

+5
View File
@@ -36,6 +36,10 @@
# fuehren sie daher beide als eigene TeileArt-Zeilen (export_sivas.py zusaetzlich
# in den Summierungszaehlern "Anzahl aller BTBeladung"/"Anzahl aller
# Abwurfstationen" der ILS-Automation-Zeile).
#
# pattern_geruest: Geruest-Baugruppen (GeruestInsert.lsp, GR_<id>_<timestamp>).
# Eigenstaendig wie BTMT, kein ANZAHL_*-Attribut an einem Carrier - export_csv.py
# UND export_sivas.py fuehren sie als eigene TeileArt-Zeilen.
# ============================================================
[blockpattern]
@@ -50,6 +54,7 @@ pattern_separator= Separator_SP*, S-LP*
pattern_scanner= Scanner*
pattern_btmt_beladung= BTMT-Beladung*
pattern_btmt_entladung= SC_Entladung*
pattern_geruest= GR_*
pattern_ks_subblocks= KS_EIN, KS_AUS, K1, K2, K3, K4
[python]