feat: Omniflo-Fahrstrecke (OMNI_FAHRSTRECKE) + Geruest-Dialoge ueberarbeitet

Fahrstrecke:
- Neuer Befehl OMNI_FAHRSTRECKE (+ _BESCHRIFTEN) im Omniflo-Menue,
  Daten aus data/json/omniflo_fahrstrecke.json, Vorlage dcl/fahrstrecke.dcl
- Nutzt die Linien-Logik des Geruest-Traegers (geruest-linien-starten,
  Dialog/Einfuegen/Beschriftung je Baugruppe parametriert)
- Muffen-Dummy wie beim Traeger, farbig nur wo in der JSON gesetzt
- Stueckliste: eigene Klasse "Omniflo Fahrstrecke" (GR_Fahrstrecke_*)

Geruest-Dialoge:
- DCL als statische Vorlagen mit //@NAME@-Platzhaltern
  (ssg-dcl-vorlage-fuellen in ssg_core), dcl/geruest.dcl neu
- Ein Dialog je Bereich (keine Bereichsumschaltung mehr)
- Varianten als Radiobuttons mit Artikelnummern im Label,
  "disabled": true graut Varianten aus
- Eine Befestigungsspalte (Gesamtanzahl) + Zeile "Sonstiges",
  Art.-Nr. unter jedem Anbauteil
- Winkel Platte (0/90): Anbauteile gedreht eingefuegt
- Kennzeichnung geaenderter Konfiguration, Ueberspeichern per Enter
- Traeger: Querstreben nur bei "mit_querstrebe": true

Konfigurationen im alten Format (oben/unten) werden beim Laden
uebernommen. Unit-Tests ergaenzt (599 gruen).
This commit is contained in:
2026-10-13 11:02:23 +02:00
parent 3116e639eb
commit ea0e46a441
25 changed files with 2597 additions and 1469 deletions
+510 -437
View File
File diff suppressed because it is too large Load Diff
+35 -25
View File
@@ -34,6 +34,9 @@
[QC Linie mit GF (automatische Auf-Ab-Berechnung)]^C^C(ssg-ensure "VarioFoerderer") QcLinieMitGf
[<-<-QC Linie mit GF und U-Form]^C^C(ssg-ensure "VarioFoerderer") QcLinieMitGfUForm
[->Omniflo]
[Fahrstrecke]^C^C(ssg-ensure "GeruestInsert") OMNI_FAHRSTRECKE
[Fahrstrecken beschriften]^C^C(ssg-ensure "GeruestInsert") OMNI_FAHRSTRECKE_BESCHRIFTEN
[--]
[->Boegen APB110]
[90]^C^C(ssg-ensure "OmniModulInsert") OMNI_APB_630_90
[67.5]^C^C(ssg-ensure "OmniModulInsert") OMNI_APB_550_675
@@ -46,26 +49,26 @@
[AP 60]^C^C(ssg-ensure "OmniModulInsert") OMNI_AP60
[AP 110]^C^C(ssg-ensure "OmniModulInsert") OMNI_AP110
[<-APG 110]^C^C(ssg-ensure "OmniModulInsert") OMNI_APG110
[->Weiche 90 Grad]
[Einfach 90 700/700 links M]^C^C(ssg-ensure "OmniModulInsert") OMNI_W90_Einfach
[Doppel 90 700/700 M]^C^C(ssg-ensure "OmniModulInsert") OMNI_W90_Doppel
[<-Dreiwege 90 700/700 M]^C^C(ssg-ensure "OmniModulInsert") OMNI_W90_Dreiwege
[->Weiche 45 Grad]
[Einfach 45 350/700 links M]^C^C(ssg-ensure "OmniModulInsert") OMNI_W45_Einfach
[Doppel 45 350/700 M]^C^C(ssg-ensure "OmniModulInsert") OMNI_W45_Doppel
[<-Dreiwege 45 350/700 M]^C^C(ssg-ensure "OmniModulInsert") OMNI_W45_Dreiwege
[->Weichen Parallel]
[Einfach Parallel 200/750 links M]^C^C(ssg-ensure "OmniModulInsert") OMNI_WP_Einfach
[Doppel Parallel 200/750 M]^C^C(ssg-ensure "OmniModulInsert") OMNI_WP_Doppel
[<-Dreiwege Parallel 200/750 M]^C^C(ssg-ensure "OmniModulInsert") OMNI_WP_Dreiwege
[->Weichenkoerper]
[Einfach 22.5 links M]^C^C(ssg-ensure "OmniModulInsert") OMNI_WK_Einfach
[Doppel 22.5 M]^C^C(ssg-ensure "OmniModulInsert") OMNI_WK_Doppel
[<-Dreiwege 22.5 M]^C^C(ssg-ensure "OmniModulInsert") OMNI_WK_Dreiwege
[->Weichenkombinationen]
[Delta 1400/700 M]^C^C(ssg-ensure "OmniModulInsert") OMNI_WKomb_Delta_1400
[Delta 1600/800 M]^C^C(ssg-ensure "OmniModulInsert") OMNI_WKomb_Delta_1600
[<-Star 1400/1400 M]^C^C(ssg-ensure "OmniModulInsert") OMNI_WKomb_Star
[->Weichen]
[Einfach 90]^C^C(ssg-ensure "OmniModulInsert") OMNI_W90_Einfach
[Doppel 90]^C^C(ssg-ensure "OmniModulInsert") OMNI_W90_Doppel
[Dreiwege 90]^C^C(ssg-ensure "OmniModulInsert") OMNI_W90_Dreiwege
[--]
[Einfach 45]^C^C(ssg-ensure "OmniModulInsert") OMNI_W45_Einfach
[Doppel 45]^C^C(ssg-ensure "OmniModulInsert") OMNI_W45_Doppel
[Dreiwege 45]^C^C(ssg-ensure "OmniModulInsert") OMNI_W45_Dreiwege
[--]
[Einfach Parallel]^C^C(ssg-ensure "OmniModulInsert") OMNI_WP_Einfach
[Doppel Parallel]^C^C(ssg-ensure "OmniModulInsert") OMNI_WP_Doppel
[Dreiwege Parallel]^C^C(ssg-ensure "OmniModulInsert") OMNI_WP_Dreiwege
[--]
[Einfach 22.5]^C^C(ssg-ensure "OmniModulInsert") OMNI_WK_Einfach
[Doppel 22.5]^C^C(ssg-ensure "OmniModulInsert") OMNI_WK_Doppel
[Dreiwege 22.5]^C^C(ssg-ensure "OmniModulInsert") OMNI_WK_Dreiwege
[--]
[Delta 1600/800]^C^C(ssg-ensure "OmniModulInsert") OMNI_WKomb_Delta_1600
[Delta 1400/700]^C^C(ssg-ensure "OmniModulInsert") OMNI_WKomb_Delta_1400
[<-Star 1400/1400]^C^C(ssg-ensure "OmniModulInsert") OMNI_WKomb_Star
[->TEF Elemente]
[TEF Antriebst. rechts]^C^C(ssg-ensure "OmniModulInsert") OMNI_TEF_AntriebR
[TEF Umlenkspannst. rechts]^C^C(ssg-ensure "OmniModulInsert") OMNI_TEF_UmlenkR
@@ -79,6 +82,13 @@
[Stopper AP]^C^C(ssg-ensure "OmniModulInsert") OMNI_STOPPER
[Scanner]^C^C(ssg-ensure "OmniModulInsert") OMNI_SCANNER
[<-Bürstenbremse]^C^C(ssg-ensure "OmniModulInsert") OMNI_BUERSTENBREMSE
[->Spez. Streckenelemente]
[->Türlösungen]
[->Schwenkschienen]
[Schwenkschiene Schiebetür L]^C^C(ssg-ensure "OmniModulInsert") OMNI_SCHW_400_L
[Schwenkschiene Schiebetür R]^C^C(ssg-ensure "OmniModulInsert") OMNI_SCHW_400_R
[Schwenkschiene Schiebetür L mit Sensorik]^C^C(ssg-ensure "OmniModulInsert") OMNI_SCHW_400_L_SENSORIK
[<-<-<-Schwenkschiene Schiebetür R mit Sensorik]^C^C(ssg-ensure "OmniModulInsert") OMNI_SCHW_400_R_SENSORIK
[~KettenFoerderer]^C^C(ssg-ensure "OmniModulInsert") OMNI_KettenFoerderer
[Ladeschleifen]^C^C(ssg-ensure "OmniModulInsert") OMNI_LADESCHLEIFE_AP110
[->Verbinder]
@@ -116,12 +126,12 @@
[~APBW 110 R550/67,5 208x347]^C^C(ssg-ensure "OmniModulInsert") OMNI_APBW_R550_675_208
[<-~APBW 110 R550/67,5 58x497]^C^C(ssg-ensure "OmniModulInsert") OMNI_APBW_R550_675_58
[<-Element bearbeiten]^C^C(ssg-ensure "OmniModulInsert") OMNI_EDIT
[->Geruest]^C^C(ssg-ensure "GeruestInsert") GERUEST
[Rohr-Geruest-Traeger]^C^C(ssg-ensure "GeruestInsert") GERUEST_TRAEGER
[Saeulen]^C^C(ssg-ensure "GeruestInsert") GERUEST_SAEULEN
[Rohrabhaenger]^C^C(ssg-ensure "GeruestInsert") GERUEST_ROHRABHAENGER
[->Gerüst]^C^C(ssg-ensure "GeruestInsert") GERUEST
[Rohr-Gerüst-Traeger]^C^C(ssg-ensure "GeruestInsert") GERUEST_TRAEGER
[Säulen]^C^C(ssg-ensure "GeruestInsert") GERUEST_SAEULEN
[Rohrabhänger]^C^C(ssg-ensure "GeruestInsert") GERUEST_ROHRABHAENGER
[Wandbefestigung]^C^C(ssg-ensure "GeruestInsert") GERUEST_WANDBEFESTIGUNG
[Gattertraeger]^C^C(ssg-ensure "GeruestInsert") GERUEST
[Gatterträger]^C^C(ssg-ensure "GeruestInsert") GERUEST
[->Funktionen]
[<-<-Traeger beschriften]^C^C(ssg-ensure "GeruestInsert") GERUEST_TRAEGER_BESCHRIFTEN
[->SPS]