Files
sps_skel/cfg/parameter.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

179 lines
6.5 KiB
INI

; ================================================================
; parameter.ini - Zahlenwerte der Bibliotheken in lib/
; ================================================================
; Gelesen von lib/parameter.py. Ein Abschnitt je Modul, der Schluessel ist
; der Name der Konstanten im Modul in Kleinbuchstaben:
; [kreisel_junctions] contact_tolerance -> CONTACT_TOLERANCE
;
; Diese Datei ist die versionierte Grunddatei und muss vollstaendig sein -
; fehlt ein Schluessel, bricht das Programm ab (kein Ersatzwert im Code).
; Eine weitere parameter.ini in %SKEL_CFG% (falls SKEL_CFG woanders hin
; zeigt) ueberschreibt einzelne Werte fuer eine Anlage.
;
; Laengen in mm, Winkel in Grad, sofern nicht anders angegeben.
; Werte, die das Ergebnis der Ableitung aendern (Toleranzen, Schwellen),
; nur mit Begruendung und Vergleich der Ausgaben aller Anlagen aendern.
; ================================================================
[kreisel_junctions]
; Hoechster Abstand zweier Kreisel-Umlaeufe, der noch als Beruehrung gilt.
contact_tolerance = 50.0
; Hoechster Abstand eines Separators vom Umlauf, damit er auf ihm liegt.
; Auch die Grenze fuer "liegt auf Kreisel" im Mouseover von
; material_flow.py --track.
separator_tolerance = 100.0
; Hoechster Abstand einer exportierten ILS Weiche von ihrem Beruehrpunkt.
weiche_tolerance = 300.0
; Abtastschritt beim Suchen des Beruehrpunkts.
sample_step = 10.0
; Mindestanzahl Abtastpunkte je Umlauf, auch bei sehr kleinen Kreiseln.
min_samples = 8
; Bei tangentialer Beruehrung sind viele Abtastpunkte fast gleich nah: alle
; bis zu diesem Mehrabstand ueber dem naechsten gehen in den Mittelpunkt ein.
contact_tie = 1.0
; Ein Beruehrbereich, der laenger ist, liegt nicht an einem Punkt an (zwei
; parallele Bahnen nebeneinander) - Hinweis statt Weiche.
max_contact_length = 500.0
; Ein Punkt bis zu diesem Abstand vor dem Ende der Geraden zaehlt schon zur
; Umlenkung. Zwei Kreisel, deren Umlenkungen sich beruehren, tun das oft genau
; am Uebergang Gerade/Halbkreis (export.csv: Kreisel 5 an Kreisel 6 und 4).
end_tolerance = 100.0
; Radius, wenn die Boundingbox ihn nicht liefert (schraeg liegender Kreisel).
default_radius = 400.0
; Halbe Schrittweite fuer die Laufrichtung an einer Stelle des Umlaufs
; (Differenz zweier Punkte davor und dahinter).
direction_step = 1.0
; Gleichlauf am Beruehrpunkt: Mindest-Kosinus des Winkels zwischen beiden
; Laufrichtungen (0.5 = hoechstens 60 Grad). Darunter "gegenlaeufig".
gleichlauf_min_cos = 0.5
[tro_flow]
; Ab dieser Anzahl zusammenhaengender Schwerkraftlinien (Gefaellestrecke mit
; je einem Separator) wird ein Speicherblock (PinStore_Auto) angenommen.
min_store_lanes = 2
; Mindest-Hoehenverlust auf dem vorangehenden TrackIds-Segment, damit ein
; Separator auf einer "Strecke" trotzdem als 1Sep statt Vario gilt (siehe
; _incoming_drop). Muss nur "horizontal" gefuehrte, aber tatsaechlich
; Gefaelle-Segmente erwischen (HundM05 Separator 0035: -104mm auf 3,8m), nicht
; das Rauschen eines echten flachen VF-Laufs (HundM05 Separator 0036: +26mm
; auf 0,5m). 30mm liegt bewusst weit unter dem Befund und ueber dem Rauschen.
gefaelle_drop_mm = 30.0
; Zeichnungsmassstab fuer --use-cords in pt/mm: Graphviz rechnet in Punkt, die
; Anlage in Millimeter. Seit die Symbole eine feste Groesse haben, reichen
; 0.1 pt/mm: ~11 x 20 m Anlage ergeben etwa 1100 x 2000 pt. Vorher 0.25
; (riesige Zeichnung, Symbole und Schrift verschwanden; Review 2026-10-01).
coord_scale = 0.1
; Zu-/Ablaufpfeil einer Station in der lagerichtigen Zeichnung: feste Laenge
; ab dem angehaengten TRO (siehe _station_positionen).
coord_pfeil_laenge = 1300
; Groesste Luecke zwischen zwei benachbarten Knotenkoordinaten je Achse in der
; lagerichtigen Zeichnung; groessere Leerstrecken werden auf diesen Wert
; gekuerzt (Review 2026-10-01). --true-scale schaltet das ab.
coord_max_luecke = 1500
; Abstand der Legende rechts neben der Anlage.
legend_margin = 3000
; Oberkante der Legende so weit unter der Anlagenoberkante.
legend_drop = 1000
[tro_ids]
; Abstand zwischen Eintrag der ID-Datei und Separator, bis zu dem ein TRO als
; wiedergefunden gilt (Standard fuer --id-tolerance). Separatoren derselben
; Bahn liegen deutlich weiter auseinander; ein verschobenes Bauteil faellt so
; als "neu" auf.
default_tolerance = 100.0
[material_flow]
; Max. Abstand, ab dem ein generisches Eingang/Ausgang-Symbol als
; "deckungsgleich" mit einer BTMT-Station gilt und verschluckt wird. Die
; beobachteten Paare liegen bei 256-431 mm, echte getrennte Stationen >1000 mm.
station_merge_mm = 600.0
; Ab dieser Anzahl paralleler Gefaellestrecken zwischen denselben zwei
; Kreisel-Bahnen werden sie im Materialfluss-Diagramm zu einem Block
; zusammengefasst - sonst wird eine grosse Linienbank unlesbar breit.
min_gefaelle_group = 2
; Zeichnungsmassstab fuer --use-cords in pt/mm. Achtung: tro_flow nutzt seit
; Review 2026-10-01 0.1 - beide Graphen haben damit verschiedene Massstaebe.
coord_scale = 0.25
; Die beiden Bahnen (L/R) eines Kreisels teilen sich eine Position; im
; lagerichtigen Layout so weit versetzen, damit sie nicht uebereinander liegen.
lane_nudge_mm = 350.0
; Legende im lagerichtigen Layout so weit unterhalb der Anlage.
legend_offset_mm = 3000.0
; Legende (--show-bbs): Kaestchen- und Schriftgroesse.
bbs_legend_box_mm = 250.0
bbs_legend_font_mm = 180.0
; --show-bbs: Rand um die Anlage herum und minimale Schriftgroesse.
bbs_margin_mm = 500.0
bbs_min_font_mm = 40.0
; Anschlusspunkte K1-K4 (--show-kx): Groesse des Kreuzes und der Beschriftung.
kx_cross_mm = 120.0
kx_font_mm = 90.0
; --chain-graph: Hoechstgroesse der Zeichenflaeche, Rand und Titelhoehe (px).
chain_max_w = 1400.0
chain_max_h = 850.0
chain_margin = 70.0
chain_title_h = 60.0
[dxf_registration]
; Rastergroesse der Abstimmung.
vote_grid = 100.0
; So viele Kandidaten der Abstimmung werden ausgeglichen und bewertet.
vote_candidates = 6
; Nur Paare bis zu diesem Abstand gehen in den Ausgleich ein (exakte Treffer).
fit_tol = 50.0
; Punkte gelten als zugeordnet, wenn sie nach der Verschiebung so nah liegen.
default_match_tol = 600.0
; So viele exakte Treffer muessen es mindestens sein.
min_inliers = 5
; Ab dieser Drehung (Grad) wird gewarnt.
rotation_warn_deg = 0.05
[tro_annotate]
; Zeichnungsgroessen, wenn nicht per --marker-size/--text-height angegeben.
default_marker = 300.0
default_text = 220.0
; Restfehler des Lagebezugs, ab dem er abgelehnt wird.
default_max_residual = 600.0
[e_planning]
; Zulaessige Abweichung vom Sollabstand (soll_mm), wenn eine Regel in
; e_planning.ini kein toleranz_mm angibt.
toleranz_mm = 150.0