Skip to content

Process, analyse and convert EEP railtrack files (.anl3) using JavaScript

Notifications You must be signed in to change notification settings

FrankBuchholz/EEP_convert_anl3_file

Repository files navigation

Projekt: EEP_convert_anl3_file

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.

Programm: EEP_Gleisplan.html

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/

Aufruf

https://frankbuchholz.github.io/EEP_convert_anl3_file/EEP_Gleisplan.html

Mausfunktionen

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

Tastaturfunktionen

: Verschieben der Graphik (wenn zusammen mit ⇧ Shift, dann jeweils um eine halbe Seite)
+ - : Zoomen

Interaktive Funktionen

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

Tipp zum Export als svg

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.

Referenz

Diskussionbeitrag im EEP-Forum.

Technik

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.

Abhängigkeiten

Das Programm verwendet die GitHub-Bibliotheken svg-pan-zoom, toolwindow und rematrix.


Programm: EEP_Inventar.html

Anzeige einer Inventarliste zu einer EEP-Anlage.

Aufruf

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.

Interaktive Funktionen

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

Technik

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.

Abhängigkeiten

Das Programm verwendet die GitHub-Bibliothek TableFilter.


Programm: EEP_Signale.html

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.

Aufruf

https://frankbuchholz.github.io/EEP_convert_anl3_file/EEP_Signale.html


Impressum

(c) Frank Buchholz, 2019

About

Process, analyse and convert EEP railtrack files (.anl3) using JavaScript

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •