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
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 |
gleis1.bmp |
glvb_dp.bmp |
bstg_ob.bmp |
bstg_v.bmp |
bln_hs1.bmp |
bln_hs2.bmp |
bln_hs3.bmp |
bln_hs4.bmp |
et16564.bmp |
et165256.bmp |
||||
syg_s1.bmp |
syg_s2.bmp |
syg_s13.bmp |
sv5.bmp |
|
Wenn die hier abgebildeten Bitmapgraphiken für eigene Experimente verwendet werden sollen, müssen sie vorher vom JPEG- in das BMP-Format umgewandelt werden.
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:
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 |
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:
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: