fix(export): freie Separatoren nach Lage in die Kette ihrer Strecke einsortieren

Eigenstaendige Separatoren, deren Zuordnung eine VF/GF nennt, die aber nicht
beim Bau der Strecke entstanden, fehlten in deren sepliste und damit in
TrackIds und Nachbarn (Mubea VF_3: 0037/0038). Sie werden jetzt beim Export
nach Lage zwischen AS und ES aufgenommen - nur im Speicher des Laufs, die
sepliste-XDATA bleibt Bauprotokoll (Lisp paart sie per Anzahl je Typ mit den
Bausteinen und fuehrt reservierte AS/ES-IDs unter der lfdnr).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-28 17:22:36 +01:00
parent c3b4bf9db3
commit 2bb00bb48f
3 changed files with 364 additions and 0 deletions
+7
View File
@@ -42,6 +42,7 @@ from export_neighbors import (
compute_kreisel_touch_switches,
lisp_touch_switches,
load_lisp_kreisel_weichen,
einsortieren_freie_separatoren,
compute_sep_kette,
compute_kreisel_umlauf,
SENSOR_TEILEARTEN,
@@ -1543,6 +1544,12 @@ def process_blocks(blocks, lookup, dbg=None, lisp_weichen=None):
if item.get("teileart", "") == "ILS 2.0 Scanner" and separator_id:
item["merkmale"]["Naechster Separator"] = separator_id
# Freie Separatoren, deren Zuordnung eine VF_n/GF_n nennt, die aber nicht
# beim Bau der Strecke entstanden sind (fehlen darum in ihrer sepliste),
# nach Lage in die Kette aufnehmen - nur fuer diesen Lauf, die XDATA am
# Block bleibt unveraendert (siehe einsortieren_freie_separatoren).
einsortieren_freie_separatoren(items, NEIGHBOR_TOLERANCE_MM, dbg=dbg)
# Ketteninterne Separator-/AS-/ES-Reihenfolge aus der neuen "sepliste"-
# XDATA (siehe ssg-sepliste-xdata-schreiben) - leeres dict, wenn keine
# Strecke eine sepliste traegt (reiner Altbestand ohne neue XDATA).