Materialfluss: VF/GF-Richtung, Stations-Bahn und Eingang/Ausgang-Merge

- _apply_transfers liest die andockende Strecke auch aus dem Merkmal
  "Foerderer"/"Förderer" (nicht nur "Strecke"), damit VF/GF gerichtet
  Kreisel->AS->..->ES->Kreisel gezeichnet werden (Ruecklauf = zwei Pfeile
  auf die beiden Kreisel-Bahnen) statt "unbestimmt".

- _attach_stations haengt BTMT/Eingang/Ausgang an die Kreisel-Bahn, in
  deren TrackIds-Umlauf sie liegen (Bahn aus der Drehrichtung); Nachbarn,
  die keine Flussobjekte sind, werden uebersprungen - keine
  Station<->Station-Kanten mehr.

- Eingang/Ausgang sind die generischen Symbole fuer Beladung/Entladung.
  Liegt ein Symbol deckungsgleich (<= STATION_MERGE_MM = 600 mm) ueber
  einer BTMT-Station gleicher Rolle, wird es verschluckt
  (_merge_station_symbols) - nur ein Knoten, in grobem Graph UND --track
  (dort auch aus den TrackIds gestrichen). Einzelne Symbole bleiben eigener
  gruener/roter Knoten.

- drive_uphill: die Hoehe bestimmt die Richtung NUR bei einer reinen
  Gefaellestrecke (Schwerkraft, bergab). Ein Foerderer/gemischte Strecke
  kann hoch oder runter foerdern - dort zaehlt nur eine eindeutige
  Antriebfahrtrichtung, sonst kommt die Richtung aus AS/ES.

Doku in doc/Python_Scripts.md und doc/track.md nachgezogen.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Michael Stangl
2026-09-17 12:54:44 +02:00
co-authored by Claude Opus 4.8
parent 516f30278b
commit 117cd8914b
3 changed files with 222 additions and 63 deletions
+5 -1
View File
@@ -46,7 +46,11 @@ Kreisel 0001 trackIds = [0040(Sep@0001-R), 0079(Weiche), 0036(Sep@0014)]
4. **Systemgrenzen** — BTMT Be-/Entladung werden über den bereits im groben
Graphen aufgelösten Anschluss angebunden (`_attach_track_stations`); offene
Bahnenden ohne Station bekommen ein generisches Symbol Eingang/Ausgang
(`_attach_track_symbols`). Wichtig: die Offenheit wird am **feinen** Graphen
(`_attach_track_symbols`). Ein generisches Eingang/Ausgang-Symbol, das
deckungsgleich über einer konkreten BTMT-Station liegt (≤ `STATION_MERGE_MM`),
wird auch hier verschluckt (`_merge_station_symbols`) — sowohl aus der
Knotenliste als auch aus den `TrackIds` jedes Containers —, sonst liefe der
Kreisel-Umlauf durch zwei nahezu identische Knoten. Wichtig: die Offenheit wird am **feinen** Graphen
gemessen (ein reales Bahnelement ohne Vorgänger/Nachfolger in `track.edges`),
**nicht** am groben. Der grobe Graph kann eine Bahn als offenes Ende führen,
obwohl ihre AS/ES-Enden im Kreisel-Umlauf längst verkettet sind (die Richtung