Deutsche Homepage für den polnischen Freeware-Eisenbahnsimulator EN57

Wir bauen unsere erste eigene Strecke

Auf dieser Seite wird vereinfacht der Aufbau eines zweigleisigen Streckenabschnittes vorgestellt: ein Bahnsteig an einer Viaduktstrecke (wie bei der Berliner Stadtbahn), ein Wohnhaus auf Straßenniveau, ein Stadtbahnzug ET165 auf dem Gegengleis und schließlich Signalisation, Geschwindigkeitsvorgaben, Geräuschmarkierungen und Haltebereich.

Zum Testen eigener Strecken oder Streckenmodule können wir die folgenden Funktionstasten verwenden:

F9 der Triebwagen EN57 stoppt sofort (0 km/h)

F10 der Triebwagen EN57 fährt sofort mit 110 km/h

1. Die benötigten Graphiken und die tekstury.dat

Für dieses Beispiel werden 15 Graphiken verwendet, die in der tekstury.dat folgendermaßen definiert wurden (der numerische Wert wird in der trasa.dat als nr_t benutzt):

  0*  halt01.bmp
  1*  gleis1.bmp
  2   gleis2.bmp
  3   gleis3.bmp
  4   glvb_li.bmp
  5   glvb_re.bmp
  6*  glvb_dp.bmp
  7   gl12_li.bmp
  8   gl12_re.bmp
  9   gl21_li.bmp
 10   gl21_re.bmp
 20*  bstg_ob.bmp
 21*  bstg_v.bmp
 23*  bln_hs1.bmp
 24*  bln_hs2.bmp
 25*  bln_hs3.bmp
 26*  bln_hs4.bmp
 27*  et16564.bmp
 28*  et165256.bmp
 80   syg_00.bmp
 81*  syg_s1.bmp
 82*  syg_s2.bmp
 83   syg_s5.bmp
 84   syg_s6.bmp
 85   syg_s9.bmp
 86   syg_s10.bmp
 87   syg_s10a.bmp
 88*  syg_s13.bmp
 89   syg_s13a.bmp
 90   syg_m1.bmp
 91   syg_m2.bmp
 92   syg_m3.bmp
100   sv103.bmp
101   sv1.bmp
102   sv2.bmp
105*  sv5.bmp

Die in der tekstury.dat in mit Asterix (*) markierten Bitmapgraphiken sind die im Beispiel tatsächlich verwendeten Abbildungen:

halt01.bmp
16 mal 128

gleis1.bmp
32 mal 32

glvb_dp.bmp
64 mal 256

bstg_ob.bmp
32 mal 32

bstg_v.bmp
32 mal 32

bln_hs1.bmp
64 mal 64

bln_hs2.bmp
16 mal 64

bln_hs3.bmp
64 mal 64

bln_hs4.bmp
64 mal 16

et16564.bmp
64 mal 64

et165256.bmp
256 mal 64

 

syg_s1.bmp
32 mal 128

syg_s2.bmp
32 mal 128

syg_s13.bmp
32 mal 128

sv5.bmp
32 mal 128

 

Wenn die hier abgebildeten Bitmapgraphiken für eigene Experimente verwendet werden sollen, müssen sie vorher vom JPEG- in das BMP-Format umgewandelt werden.

2. Der Streckenbau – Schritt für Schritt erläutert

Als erste Baumaßnahme legen wir das Streckengleis, auf dem unser S-Bahnzug fahren soll. Für das Gleis verwenden wir ein „texturiertes horizontales Objekt“, das die Objektbezeichnung #t_p hat und im dreidimensionalen Raum durch vier Punkte definiert wird. Die dafür benutzte Bitmapgraphik ist gleis1.bmp, in der tekstury.dat ist sie mit nr_t=1 aufgeführt und sie wird um den Faktor 25 von 32 mal 32 Pixel auf 800 mal 800 Pixel vergrößert.

Der Nullpunkt der horizontalen x-Achse ist um 150 Pixel nach rechts verschoben (der Triebfahrzeugführer sitzt etwa 75 cm rechts von der Fahrzeugmitte), deshalb verteilen sich die vier Meter (800 Pixel) Gleisbreite auf der x-Achse von -550 bis 250.

Die Augenhöhe des Triebfahrzeugführers ist etwa 2 Meter oberhalb der Schienen; das Gleis liegt auf der y-Achse bei 400, also 400 Pixel unterhalb des Nullpunktes.

Für den Anfang reichen uns 1000 Meter Strecke, d.h. das Gleis ist 200000 Pixel lang. Das Gleis erstreckt sich also auf der z-Achse von 0 bis 200000.

Dieser Link verweist auf die mit Leerzeichen formatierte Beispieldatei.

 

rechtes gleis

Objekt km Punkte x1 y1 z1 x2 y2  
#t_p 000000 4 -550 400 0 -550 -400  
z2 x3 y3 z3 x4 y4 z4 x5  
200000 250 400 200000 250 400 0 0  
y5 z5 x6 y6 z6 x7 y7 z7  
0 0 0 0 0 0 0 0  
nr_0 m_v m_u Maßstab nr_t Qualität Endpunkt    
1 1 1 25 1   9    

direkt links daneben definieren wir das Gegengleis:

 

linkes gleis

Objekt km Punkte x1 y1 z1 x2 y2  
#t_p 000000 4 -1350 400 0 -1350 400  
z2 x3 y3 z3 x4 y4 z4 x5  
200000 -550 400 200000 -550 400 0 0  
y5 z5 x6 y6 z6 x7 y7 z7  
0 0 0 0 0 0 0 0  
nr_0 m_v m_u Maßstab nr_t Qualität Endpunkt    
1 1 1 25 1   9    

Wenn wir jetzt aus dem Fenster des EN57 auf unsere Strecke blicken, bietet sich die folgende Ansicht:

Auf halber Strecke bei km 1 bauen wir einen Bahnsteig, der 160 Meter lang sein soll. Sichtbar sind die Stirnwand, die dem Gleiskörper zugewendete Seite und die Oberfläche.

Für Stirn- und Seitenwand, die 96 cm hoch sind, verwenden wir die gleiche Bitmapgraphik bstg_v.bmp. Damit die Graphik vom Programm so abgebildet wird, wie sie vorhanden ist (mit der Abschlußkante oben), beginnen wir die Definition von x1,y1,z1 jeweils in der linken unteren Ecke.

 

bahnsteig gleisseite

Objekt km Punkte x1 y1 z1 x2 y2  
#t 000000 4 250 400 132000 250 208  
z2 x3 y3 z3 x4 y4 z4 x5  
132000 250 208 100000 250 400 100000 0  
y5 z5 x6 y6 z6 x7 y7 z7  
0 0 0 0 0 0 0 0  
nr_0 m_v m_u Maßstab nr_t Qualität Endpunkt    
1 1 1 6 21 4 6    
 

bahnsteig stirnseite

Objekt km Punkte x1 y1 z1 x2 y2  
#t 000000 4 250 400 100000 250 208  
z2 x3 y3 z3 x4 y4 z4 x5  
100000 1300 208 100000 1300 400 100000 0  
y5 z5 x6 y6 z6 x7 y7 z7  
0 0 0 0 0 0 0 0  
nr_0 m_v m_u Maßstab nr_t Qualität Endpunkt    
1 1 1 6 21 4 3    
 

bahnsteig oberseite

Objekt km Punkte x1 y1 z1 x2 y2  
#t_p 000000 4 250 208 100000 250 208  
z2 x3 y3 z3 x4 y4 z4 x5  
132000 1300 208 132000 1300 208 100000 0  
y5 z5 x6 y6 z6 x7 y7 z7  
0 0 0 0 0 0 0 0  
nr_0 m_v m_u Maßstab nr_t Qualität Endpunkt    
1 1 1 20 20   6    

Der Bahnsteig sieht nun genauso aus, wie wir das wollten – dunkle Seitenwände mit einer oberen hellen Kante:

Wir wollen, daß hier auch Züge wenden können. Durch den Einbau einer doppelten Gleisverbindung werten wir die Haltestelle zum Bahnhof auf.

Wir legen die benötigte Bitmapgraphik glvb_dp.bmp einfach auf das bereits gebaute Gleis. Damit das Programm die Gleisverbindung in der gewünschten Weise und nicht unter den Streckengleisen anzeigt, muß sie in der trasa.dat vor den Streckengleisen definiert werden.

 

doppelte gleisverbindung

Objekt km Punkte x1 y1 z1 x2 y2  
#t_p 000000 4 -1350 93600 0 -1350 400  
z2 x3 y3 z3 x4 y4 z4 x5  
100000 250 400 100000 250 400 93600 0  
y5 z5 x6 y6 z6 x7 y7 z7  
0 0 0 0 0 0 0 0  
nr_0 m_v m_u Maßstab nr_t Qualität Endpunkt    
1 1 1 25 6   6    

Wenn wir jetzt auf unsere Strecke blicken, sieht das so aus:

3. Vervollständigung – Signale und Marker

Sicherheit ist das höchste Gebot bei jedem Bahnbetrieb. Dazu dienen in erster Linie die Signale an der Strecke. Bei der Berliner S-Bahn wurde mit Beginn der Elektrifizierung in den zwanziger Jahren ein System aus vollautomatischen Signalen eingeführt, bei dem Haupt- und Vorsignal auf einem Signalschirm vereint sind – die sogenannten Sv-Signale.

Während auf der eigentlichen Stadtbahn (Berlin Ostbahnhof–Berlin-Charlottenburg) nur diese neuen Lichtsignalkombinationen aufgestellt waren, wurden auf den anschließenden Vorortstrecken Formvor- und -hauptsignale verwendet. Heutzutage gibt es, bedingt durch die Bahngeschichte der letzten fünfzig Jahre, auf der Berliner S-Bahn die unterschiedlichsten Signalsysteme, die der Triebfahrzeugführer alle kennen und beachten muß. In unserer Beispielkonstruktion verwenden wir nur die alten Sv-Signale.

Vor die doppelte Gleisverbindung stellen wir ein Einfahrtsignal, das in diesem Fall „Fahrt mit Geschwindigkeitsbegrenzung“ und „Halt erwarten“ signalisieren soll. Dazu benutzen wir die vom Programm gesteuerten Signale. Hier muß nur die Bezeichnung der benötigten Bitmapgraphik an der richtigen Stelle in der tekstury.dat (Positionen 80-92) vermerkt sein. In unserem Beispiel wurde der umgekehrte Weg gewählt: die verwendete neue Bitmapgraphik erhielt den im Originalprogramm verwendeten Dateinamen.

 

einfahrtsignal

Objekt km x y z pr_z pr_na typ_sem  
'sem 000000 250 -200 93600 2 1 3  

Hier wieder ein Blick aus der Fahrerkabine auf die Strecke – das Signal zeigt das gewünschte Bild:

Das 200 Meter vor dem Einfahrtsignal stehende Blocksignal zeigt die zu erwartende „Fahrt mit Geschwindigkeitsbegrenzung“ am Einfahrtsignal an. Wir verwenden hier eine Bitmapgraphik als „skaliertes Objekt“.

 

blocksignal

Objekt km x y z s nr_t    
's 000000 250 -200 53600 1 105    

Als Ausfahrtsignal würde hier nur ein Blocksignal für die freie Strecke nötig sein, da keine Weichen mehr folgen, die eine andere Signalisierung erfordern.

Das mehrbegriffige Ausfahrtsignal wurde zu Demonstrationszwecken gewählt. Es zeigt bei der Einfahrt des Zuges „Halt“. Einige Zeit nach dem Halt des Zuges wird vom Programm dann der Signalbegriff „Fahrt“ gezeigt.

 

ausfahrtsignal

Objekt km x y z pr_z pr_na typ_sem  
'sem 132000 280 -404 0 5 0 1  

Neben dem Ausfahrtsignal stellen wir am Bahnsteigende noch eine Haltetafel auf. Direkt vor diesem Signal soll der Zug halten.

Das Programm benötigt zusätzlich zwei Marker, die Anfang und Ende des Bereiches anzeigen, in dem gehalten werden muß. Auch das Öffnen und Schließen der Türen ist nur in diesem Bereich gestattet. Damit das Anhalten des Zuges nicht zu schwierig wird, dimensionieren wir den Haltebereich großzügig: 20 Meter.

 

haltesignal

Objekt km x y z s nr_t    
's 000000 260 -212 132000 1 0    
 

beginn haltebereich

Objekt km x z status        
'z_z 000000 250 128000 1        
 

ende haltebereich

Objekt km x z status        
'z_z 000000 250 132000 0        

Hier nun wieder zwei Screenshots. Das Ausfahrtsignal zeigt zuerst „Halt“ und wechselt nach dem Halt des Zuges auf „Fahrt – Fahrt erwarten“:

Zwei weitere Marker bezeichnen Beginn und Ende eines vom Programm abzuspielenden Geräusches – das Überfahren der beiden Herzstücke der doppelten Weichenverbindung. Die erste Achse des Triebwagens ist 1,34 m von der Fahrzeugstirnseite entfernt, die letzte Achse 12,05 m. Entsprechend werden die Geräuschmarker positioniert.

 

beginn geraeusch

Objekt km x z nr_d k wdh hz_v ltst
'z_d 000000 250 96745 8 5 1 1 64
 

ende geraeusch

Objekt km x z nr_d k wdh hz_v ltst
'z_d 000000 250 99510 -1 5 0 0 0

Zwei weitere Marker bezeichnen jeweils den Beginn einer zu beachtenden Höchstgeschwindigkeit. Die Streckenhöchstgeschwindigkeit ist auf 60 km/h festgesetzt, deshalb steht am Anfang ein Geschwindigkeitsmarker 'z_p.

Danach wird die Höchstgeschwindigkeit durch die Signale geregelt. Erst am Ausfahrtsignal, das die Höchstgeschwindigkeit von 110 km/h erlauben würde, muß noch einmal ein Geschwindigkeitsmarker gesetzt werden, der wieder die erlaubte Streckengeschwindigkeit von 60 km/h einstellt.

 

geschwindigkeitsmarker am streckenbeginn

Objekt km x z pr        
'z_p 000000 0 0 60        
 

geschwindigkeitsmarker am ausfahrtsignal

Objekt km x z pr        
'z_p 132000 0 0 60        

4. Ein Wohnhaus neben der Strecke

Um ein wenig Bebauung anzudeuten, stellen wir links neben die Strecke ein Wohnhaus.

 

wohnhaus linker rand

Objekt km Punkte x1 y1 z1 x2 y2  
#t 000000 4 -9142 1808 100000 -9142 -2416  
z2 x3 y3 z3 x4 y4 z4 x5  
100000 -8966 -2416 100000 -8966 1808 100000 0  
y5 z5 x6 y6 z6 x7 y7 z7  
0 0 0 0 0 0 0 0  
nr_0 m_v m_u Maßstab nr_t Qualität Endpunkt    
1 1 1 11 24 4 6    
 

wohnhaus vorderfront

Objekt km Punkte x1 y1 z1 x2 y2  
#t 000000 4 -8966 1808 100000 -8966 -2416  
z2 x3 y3 z3 x4 y4 z4 x5  
100000 -1926 -2416 100000 -1926 1808 100000 0  
y5 z5 x6 y6 z6 x7 y7 z7  
0 0 0 0 0 0 0 0  
nr_0 m_v m_u Maßstab nr_t Qualität Endpunkt    
1 1 1 11 23 4 6    
 

wohnhaus rechter rand

Objekt km Punkte x1 y1 z1 x2 y2  
#t 000000 4 -1926 1808 100000 -1926 -2416  
z2 x3 y3 z3 x4 y4 z4 x5  
100000 -1750 -2416 100000 -1750 1808 100000 0  
y5 z5 x6 y6 z6 x7 y7 z7  
0 0 0 0 0 0 0 0  
nr_0 m_v m_u Maßstab nr_t Qualität Endpunkt    
1 1 1 11 24 4 6    
 

wohnhaus abschluss oben

Objekt km Punkte x1 y1 z1 x2 y2  
#t 000000 4 -9142 -2416 100000 -9142 -2592  
z2 x3 y3 z3 x4 y4 z4 x5  
100000 -1750 -2592 100000 -1750 -2416 100000 0  
y5 z5 x6 y6 z6 x7 y7 z7  
0 0 0 0 0 0 0 0  
nr_0 m_v m_u Maßstab nr_t Qualität Endpunkt    
1 1 1 11 29 4 6    
 

wohnhaus seitenwand

Objekt km Punkte x1 y1 z1 x2 y2  
#t 000000 4 -1750 1808 100000 -1750 -2416  
z2 x3 y3 z3 x4 y4 z4 x5  
1200000 -1750 -2416 101408 -1750 1808 101408 0  
y5 z5 x6 y6 z6 x7 y7 z7  
0 0 0 0 0 0 0 0  
nr_0 m_v m_u Maßstab nr_t Qualität Endpunkt    
1 1 1 11 25 4 9    

Da steht das große alte Berliner Wohnhaus:

5. Ein ET165 auf dem Gegengleis

Und nun werden wir unsere Strecke noch ein wenig beleben – ein ET165 kommt uns auf dem Nachbargleis entgegen. Dazu benötigen wir zwei Bitmapgraphiken: et16564.bmp und et165256.bmp, die wir als „texturierte transparente Objekte“ definieren müssen.

 

et165 vorderseite

Objekt km Punkte x1 y1 z1 x2 y2  
#t_prz 000000 4 -1302 400 93600 -1302 -304  
z2 x3 y3 z3 x4 y4 z4 x5  
93600 -598 -304 93600 -598 400 93600 0  
y5 z5 x6 y6 z6 x7 y7 z7  
0 0 0 0 0 0 0 0  
nr_0 m_v m_u Maßstab nr_t Qualität Endpunkt    
1 1 1 11 26 4 6    
 

et165 seitenfläche 8 wagen

Objekt km Punkte x1 y1 z1 x2 y2  
#t_prz 000000 4 -720 392 93600 -720 -312  
z2 x3 y3 z3 x4 y4 z4 x5  
93600 -720 -312 112032 -720 392 112032 0  
y5 z5 x6 y6 z6 x7 y7 z7  
0 0 0 0 0 0 0 0  
nr_0 m_v m_u Maßstab nr_t Qualität Endpunkt    
1 1 1 11 27 4 9    

Und zum Schluß dieser Einführung in die Konstruktion einer ersten eigenen Strecke kommt uns an der Bahnhofseinfahrt der ET165 entgegen:

Mehr als ein Spielprogramm: polnischer Freeware-Eisenbahnsimulator EN57