Files
sps_skel/cfg/e_planning.ini
T
Samer AyadiandClaude Opus 5.5 550bdeb464 Weichenknoten zwischen Kreiseln, Track-Mouseover, Parameter in cfg/parameter.ini
TRO-Typen an Kreisel-Beruehrpunkten (lib/kreisel_junctions.py, derive_tros
Schritt 3c): jeder Kreisel als Stadion-Form mit Laufrichtung; jeder
gleichlaufende Beruehrpunkt ist eine Weiche (exportierte ILS Weiche oder
abgeleitet W<a>_<b>), Beruehrpunkte derselben Umlenkung bilden einen
Knoten. Ein Separator steuert ihn, wenn er in Laufrichtung unmittelbar
davor liegt (keine andere Weiche dazwischen). Typ = Separatoren x Weichen.
export.csv: 1Sep1Swi (9/1, 9/8, 8/7), 2Sep1Swi (7/2), 2Sep2Swi (2/3/4),
3Sep2Swi (4/5/6). Neuer Katalogtyp 3Sep2Swi (nicht aus SCL belegt).
Gegenlaeufige Beruehrpunkte (Mubea, Dematic) bleiben bei der alten Regel;
Mubea/HundM05/Dematic unveraendert, Showroom 0018+0019 jetzt 2Sep1Swi.

material_flow --track: Mouseover je Knoten mit Zugehoerigkeit zu
Kreisel/VF/GF (Zuordnung, TrackIds-Kette, Lage laut Geometrie), Weiche mit
beiden Kreiseln, Be-/Entladung mit ihrem Kreisel; Widersprueche mit "!".

Zahlenwerte (Toleranzen, Schwellen, Massstaebe, Groessen) aus allen
lib-Modulen nach cfg/parameter.ini (lib/parameter.py, Abschnitt je Modul,
Ueberschreiben je Anlage ueber %SKEL_CFG%/parameter.ini). Ausgaben aller
Anlagen bytegleich.

tro_flow.py: Docstrings mit Parametern/Rueckgabe, fehlende Typangaben.

Geprueft: 90 Tests gruen; tro_flow/material_flow/scl_skeleton auf 5 CSVs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 17:20:30 +02:00

83 lines
3.3 KiB
INI

; ================================================================
; e_planning.ini - Regeln fuer lib/e_planning.py
; ================================================================
; Ordnet die Sensoren/Ventile der E-Planung (*_positionsdraw.json des
; Kabellaengen-Tools) den Bauteilen des Layouts (CSV) zu. Hintergrund und
; Befunde: doc/E-Planung_Bruecke.md.
;
; [Registrierung]
; anker VERW-Muster der E-Symbole, die auf einem Separator sitzen;
; daraus wird der Lagebezug E-Zeichnung -> CSV ermittelt.
;
; Jeder Abschnitt "<Art>.<Rolle>" ist eine Regel; sie werden in dieser
; Reihenfolge angewendet, ein E-Bauteil wird hoechstens einmal vergeben.
; layout Muster fuer die Layout-Art (Separator, Ausschleus,
; Einschleus, Weiche, Scanner, Beladung, Entladung).
; Standard: der Teil vor dem Punkt im Abschnittsnamen.
; verw Muster fuer das E-Attribut VERW (fnmatch, Komma-Liste,
; Gross-/Kleinschreibung egal)
; praefix BMK-Praefix (BG, MB ...), leer = egal
; max_mm raeumlich: Hoechstabstand nach dem Lagebezug in mm
; soll_mm raeumlich: Sollabstand - das Symbol liegt immer gleich weit
; neben dem Bauteil; gewertet wird die Abweichung vom Soll
; (nicht der kleinste Abstand), zulaessig bis toleranz_mm
; toleranz_mm zulaessige Abweichung vom Sollabstand (Standard: cfg/parameter.ini
; [e_planning] toleranz_mm)
; nummer_von Nummernregel: BMK-Nummer = Nummer der genannten Rolle
; nummer_versatz ... plus dieser Versatz (Mubea: Ventil = Sensor + 1)
; Mit nummer_von wird zuerst die Nummer versucht, danach (wenn max_mm oder
; soll_mm gesetzt) der Abstand fuer die uebrigen Bauteile.
;
; Lieber eine Luecke als ein falscher Name: was keine Regel sicher trifft,
; bleibt in der SCL TODO(E-Planung) und steht im Bericht <csv>_eplan.md.
;
; Die VERW-Texte und die Nummernregel sind projektabhaengig. Die Werte hier
; stammen aus Mubea (500573); in den Referenz-SCL (UH01..UH05) haben Sensor
; und Stopper dieselbe Nummer (BG3242/MB3242) -> dort nummer_versatz = 0.
; ================================================================
[Registrierung]
anker = IN SEP
; Sensor im Stopper -> stInSeparator<n>.stSenInSep
; sitzt in der Zeichnung auf dem Separator (Mubea Speicher: 0-1 mm).
; An den Kreiseln liegen Sensoren 200-550 mm daneben, teils naeher an
; Aus-/Einschleuselementen - unsicher, deshalb bewusst eng.
[Separator.sensor]
verw = IN SEP
praefix = BG
max_mm = 300
; Stopperventil -> xOutStopper<n>
; liegt ~270 mm neben dem Separator, im 800-mm-Raster der Speicherlinien
; naeher am Nachbarn als ueber die Nummer -> Nummernregel zuerst
[Separator.stopper]
verw = SEP
praefix = MB
nummer_von = Separator.sensor
nummer_versatz = 1
max_mm = 600
soll_mm = 270
; Stausensor hinter dem Ausschleuselement (Mubea: konstant ~1390 mm)
[Ausschleus.stau]
verw = STAU*
praefix = BG
max_mm = 1600
soll_mm = 1390
; Ausschleusventil (Mubea: konstant ~1414 mm, Nummer = Stausensor + 1)
[Ausschleus.ventil]
verw = AE ABZW*
praefix = MB
nummer_von = Ausschleus.stau
nummer_versatz = 1
max_mm = 1600
soll_mm = 1414
; Weichenventil an einer Kreisel-Weiche
[Weiche.ventil]
verw = ABZWEIG-*, WEICHE*
praefix = MB
max_mm = 1000