Dieses Projekt enthält verschiedene Programme zur Analyse, Darstellung und Konvertierung von Gleisplänen von EEP.
Die Programme können direkt mit den angegebenen Links im Browser (Chrome, Firefox oder MS Edge) gestartet werden. In diesem Fall ist eine aktive Internetverbindung notwendig.
Alternativ kann das Archiv dist/EEP_convert_anl3_file.zip
auf GitHub in einem beliebigen Verzeichnis entpackt werden. Dann können die Programme lokal gestartet werden wobei keine Internetverbindung benötigt wird.
Der Gleisplan zu einer EEP-Anlage wird im Browser angezeigt.
Solche EEP-Anlagen sind z.B. hier zu finden:
https://www.eepforum.de/filebase/category-file-list/39-kostenlose-anlagen-ab-eep-7/
https://frankbuchholz.github.io/EEP_convert_anl3_file/EEP_Gleisplan.html
Verschieben: Klick+Halten+Bewegen
An der Stelle des Cursors hineinzoomen: Doppelklick
Herauszoomen: ⇧ Shift+Doppelklick
Details anzeigen: Klick auf Gleis, Symbol oder Text
- wenn zusammen mit ⇧ Shift, dann wird jeweils ein neues Popup geöffnet
- wenn zusammen mit alt, dann wird zusätzlich der Code aus der Anlage-Datei für dieses Objekt angezeigt
← ↑ → ↓ : Verschieben der Graphik (wenn zusammen mit ⇧ Shift, dann jeweils um eine halbe Seite)
+ - : Zoomen
Wechsel zwischen vertikalen und horizontaler Ausrichtung (Fullscreen mit F11)
Zoom-in, -out, -reset
Auswahl der anzuzeigenden Gleissysteme und von Informationen wie Texten oder Marker
Aktuelles Darstellung als Bild (.png
/.jpg
/.svg
) speichern
Gleisplan auf bestimmtes Gleis, bzw. das Gleis eines Signals oder Weiche positionieren
Die Positionierung ist auch über das Inventar-Programm möglich!
Einstellung der Linienbreite und der Schriftgröße
Auswahl der Gleise mit minimalem und maximalen Höhenfilter
Farben der Gleissysteme anpassen
Die Export-Funktion im Programm exportiert den gezeigten Ausschnitt der svg-Graphik. Alternativ kann man auch das Entwickler-Tool des Browsers verwenden, um die gesamte svg-Graphik zu exportieren:
-
Google Chrome:
- Rechts-Klick in der Graphik → Inspect Ctrl+Shift+I → Das svg-Element wird im neuen Fenster (DevTools) blau hinterlegt angezeigt → Rechts-Klick auf diesem Element → Copy → Copy Element
-
Firefox:
- Rechts-Klick in der Graphik → Element untersuchen → Das svg-Element wird im neuen Fenster (DevTools) blau hinterlegt angezeigt → Rechts-Klick auf diesem Element → Kopieren → Äußeres HTML
Nun kann man das svg-Element aus der Zwischenablage in ein leeres Textdokument pasten und z.B. als .svg-Datei speichern.
Diskussionbeitrag im EEP-Forum.
Dieses Programm nutzt die Javascript-Funktion DOMParser
um eine .anl3
-Datei von EEP, die aus XML aufgebaut ist, zu interpretieren und in das Document Object Model (DOM) umzuwandeln.
Anschließend wird dynamisch mit Javascript die Graphik des Gleisplanes mit SVG-Befehlen aufgebaut. Die Formatierung der graphischen Elemente erfolgt getrennt von der Definition der Graphik mit der SVG-Variante von CSS.
Der Browser kann solche SVG-Graphiken direkt anzeigen. Zusätzlich werden die Bibliotheken svg-pan-zoom
zum Verschieben und Zoomen und toolwindow
zur Anzeige von Popups verwendet.
Die automatische Größenanpassung des SVG-Elements im Brower zur Nutzung des gesamten restlichen Bildschirmbereiches erfolgt mit flex
.
Die Speicherung der Einstellungen erfolgt automatisch mit localStorage
.
Der Fortschrittsbalken beim Laden und Verarbeiten von (großen) Dateien wird mit Promise
/ requestAnimationFrame
und diversen Schritten bei der Verarbeitung realisiert. Leider unterstützt der Internet Explorer diese Funktion und diverse andere, moderne Sprachkonstrukte nicht und kann daher gar nicht verwendet werden. Die einzig empfohlenen Browser sind daher Google Chrome (bzw. diejenigen Browser, die auf Chomium basieren) und Firefox.
Die interaktive Einstellung der Linien- und Textbreite wird über dynamische Anpassung der CSS-Variablen in den SVG-CSS-Regeln realisiert.
Der doppelte Schieberegler für den Höhenfilter basiert auf multirange.
Der Filter wird über dynamische Anpassung der CSS-Klassen von SVG-Gruppenelemente realisiert.
Die Interaktion mit dem Inventar-Programm erfolgt über BroadcastChannel
.
Das Programm verwendet die GitHub-Bibliotheken svg-pan-zoom
, toolwindow
und rematrix
.
Anzeige einer Inventarliste zu einer EEP-Anlage.
https://frankbuchholz.github.io/EEP_convert_anl3_file/EEP_Inventar.html
Zur Zeit wird eine Liste der Weichen, Signale, Kontakte, Zugverbände und verwendeter Gleisstile ausgegeben. Außerdem werden die Gleisbildstellpulte gezeigt. Das Programm kann leicht für andere Daten erweitert werden werden.
Man kann die Tabellen (bei Firefox auch mit Strg+A) mit Copy & Paste in ein Tabellenverarbeitungsprogramm übertragen. Dazu schaltet man am Besten zuvor die Anzeige der Filter-Zeile aus.
Die Tabellen können mit Klicks in die Spaltenüberschriften sortiert werden.
Filter-Operatoren:
<, <, =, >=, >, *, ! (nicht), { (beginnt mit), } (endet mit), || (oder), && (und), [empty], [nonempty], rgx: (gefolgt von einer regular expression)
Wenn man in einem weiteren Fenster oder einer weiteren Karteikarte des Browsers den Gleisplan für die gleiche EEP-Anlage-Datei öffnet, dann kann man über die Links von Gleisen den Gleisplan auf das gewählte Objekt positionieren und das Info-Popup dort öffnen:
- wenn zusammen mit ⇧ Shift, dann wird jeweils ein neues Popup geöffnet
- wenn zusammen mit alt, dann wird zusätzlich der Code aus der Anlage-Datei für dieses Objekt angezeigt
Dieses Programm nutzt die Javascript-Funktion DOMParser
, um eine.anl3
-Datei von EEP, die aus XML aufgebaut ist, zu interpretieren und in das Document Object Model (DOM) umzuwandeln.
Zusätzlich wird die GitHub-Bibliothek TableFilter
verwendet, um interaktive Funktionen zur Anzeige der Tabellen anzubieten.
Die Interaktion mit dem Gleisplan-Programm erfolgt über BroadcastChannel
.
Das Programm verwendet die GitHub-Bibliothek TableFilter
.
Anzeige von Signalpositionen.
Die Bedeutung der Signalstellung hängt vom jeweiligen Modell ab – es gibt keine Standards, nicht einmal für die ersten beiden Stellungen.
Beispielsweise gibt es etliche Signale mit der Stellungskombination { 1 : Fahrt, 2 : Halt } und einige andere mit der Stellungskombination { 1 : Halt, 2 : Fahrt } sowie etliche weitere Kombinationen, die mit { 1 : Halt, … } beginnen.
Die Stellungskombination eines Signals kann man der entsprechenden .ini
-Datei entnehmen. Man erhält diese .ini
-Dateien im Ordner C:\EEP15\Resourcen.unp\Signale\Signale
über das EEP-Programm mit „Extras → Ressourcen-Extraktor“).
Die Ausgabe erfolgt gruppiert nach der Stellungskombination. Dafür wird je Kombination eine eindeutige ID generiert.
https://frankbuchholz.github.io/EEP_convert_anl3_file/EEP_Signale.html
(c) Frank Buchholz, 2019