diff --git a/README.md b/README.md index b582dc3..bab4708 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,16 @@ edugame-rail-traffic-flow ====== +Version 0.6.1 +------ +extended tasks for routes + + +Version 0.6 +------ +added routes and route locking + + Version 0.5.1 ------ minor improvements and some refactoring diff --git a/backmatter/versionhistory.tex b/backmatter/versionhistory.tex index 121ac57..c90a99a 100644 --- a/backmatter/versionhistory.tex +++ b/backmatter/versionhistory.tex @@ -7,6 +7,7 @@ \newcommand{\MS}{Martin Scheidt} \newcommand{\FN}{Felix Nebel} \newcommand{\LG}{Lukas Gruber} +\newcommand{\LP}{Leonhard Pelster} \newcommand{\SZ}{Stephan Zieger} \newcommand{\LE}{Laura Enders} \begin{versionhistory} @@ -39,4 +40,12 @@ \IfLanguage{ngerman}{Anpassung der Streckenlänge und Aufgaben} \IfLanguage{english}{Adaptation of track length and tasks} } + \vhEntry{0.6}{2019-05-20}{MS}{ + \IfLanguage{ngerman}{Fahrstraßen und Fahrstraßenverschluss hinzugefügt} + \IfLanguage{english}{Added routes and route locking} + } + \vhEntry{0.6.1}{2019-08-26}{MS|LP}{ + \IfLanguage{ngerman}{Aufgaben für Fahrstraßen erweitert} + \IfLanguage{english}{Extended tasks for routes} + } \end{versionhistory} diff --git a/figures/challenge3_setup1.tikz b/figures/challenge3_setup1.tikz new file mode 100644 index 0000000..8f21d0e --- /dev/null +++ b/figures/challenge3_setup1.tikz @@ -0,0 +1,17 @@ +%!TEX TS-program = pdflatexmk + +% Copyright 2019 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0) +% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given. + +\begin{scope} + \coordinate (base) at (0,0); + \path[draw, line width=2pt] ( 0,0) -- ++(19,0); + \path[draw, line width=2pt] ( 0,1) -- ++(1,0) -- ++(1,-1); + \path[draw, line width=1pt,fill] (2,0) -- ++(-0.4,0.4) -- ++(0,-0.4); % turnout marker + \path[draw, line width=2pt] (17,0) -- ++(1,1) -- ++(1,0); + \path[draw, line width=1pt,fill] (17,0) -- ++(0.4,0.4) -- ++(0,-0.4); % turnout marker + \node at ( 0,2) {\Large A}; + \node at (19,2) {\Large B}; + \path[draw, line width=1pt, fill=white] (0,0) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train + \path[draw, line width=1pt, fill=white] (0,1) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train +\end{scope} \ No newline at end of file diff --git a/figures/challenge3_setup2.tikz b/figures/challenge3_setup2.tikz new file mode 100644 index 0000000..04f13f4 --- /dev/null +++ b/figures/challenge3_setup2.tikz @@ -0,0 +1,18 @@ +%!TEX TS-program = pdflatexmk + +% Copyright 2019 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0) +% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given. + +\begin{scope} + \coordinate (base) at (0,0); + \path[draw, line width=2pt] ( 0,0) -- ++(15,0); + \path[draw, line width=2pt] ( 4,0) -- ++(1,1) -- ++(8,0); + \path[draw, line width=2pt] (12,1) -- ++(1,-1); + \path[draw, line width=1pt, fill] (4,0) -- ++(0.4,0.4) -- ++(0,-0.4); % turnout marker + \path[draw, line width=1pt, fill] (12,1) -- ++(0.4,-0.4) -- ++(0,0.4); % turnout marker + \path[draw, line width=1pt, fill] (13,0) -- ++(-0.4,0.4) -- ++(0,-0.4); % turnout marker + \path[draw, line width=1pt, fill=white] ( 0,0) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0, 0.4) -- ++( 2.6,0) -- cycle; % train + \path[draw, line width=1pt, fill=white] (15,0) -- ++( 0.2, 0.2) -- ++( 2.6,0) -- ++(0,-0.4) -- ++(-2.6,0) -- cycle; % train + \node at (-1,0) {1}; + \node at (16,0) {2}; +\end{scope} \ No newline at end of file diff --git a/figures/challenge3_setup3.tikz b/figures/challenge3_setup3.tikz new file mode 100644 index 0000000..43356b2 --- /dev/null +++ b/figures/challenge3_setup3.tikz @@ -0,0 +1,21 @@ +%!TEX TS-program = pdflatexmk + +% Copyright 2019 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0) +% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given. + +\begin{scope} + \coordinate (base) at (0,0); + \path[draw, line width=2pt] (-3,0) -- ++(18,0); + \path[draw, line width=2pt] (-3,2) -- ++(18,0); + \path[draw, line width=2pt] ( 6,0) -- ++(1,1) -- ++(8,0); + \path[draw, line width=2pt] ( 7,2) -- ++(1,-1); + \path[draw, line width=1pt, fill] (6,0) -- ++(0.4,0.4) -- ++(0,-0.4); % turnout marker + \path[draw, line width=1pt, fill] (7,2) -- ++(0.4,-0.4) -- ++(0,0.4); % turnout marker + \path[draw, line width=1pt, fill] (8,1) -- ++(-0.4,0.4) -- ++(0,-0.4); % turnout marker + \path[draw, line width=1pt, fill=white] ( 1,0) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0, 0.4) -- ++( 2.6,0) -- cycle; % train + \path[draw, line width=1pt, fill=white] (10,1) -- ++( 0.2, 0.2) -- ++( 2.6,0) -- ++(0,-0.4) -- ++(-2.6,0) -- cycle; % train + \path[draw, line width=1pt, fill=white] (10,2) -- ++( 0.2, 0.2) -- ++( 2.6,0) -- ++(0,-0.4) -- ++(-2.6,0) -- cycle; % train + \node at ( 0,0) {3}; + \node at (11,1) {2}; + \node at (11,2) {1}; +\end{scope} \ No newline at end of file diff --git a/figures/composition.pdf b/figures/composition.pdf index f76f46b..ede7a08 100644 Binary files a/figures/composition.pdf and b/figures/composition.pdf differ diff --git a/figures/composition.tikz b/figures/composition.tikz index 5de8f7d..353b583 100644 --- a/figures/composition.tikz +++ b/figures/composition.tikz @@ -21,30 +21,25 @@ }; % distant signal \draw [dashed] ([shift={(base)}] 2,-0.1) -- ++(0,-0.2) -- ++(1,0) -- ++(0,0.2); - \path[draw, line width=1pt] ([shift={(base)}] 2,-0.5) -- ++(0,-0.2); - \path[draw, line width=1pt] ([shift={(base)}] 2,-0.6) -- ++(0.5,0); - \path[draw, fill] ([shift={(base)}] 2.5,-0.75) rectangle ++(0.2,0.3); - \path[draw, fill] ([shift={(base)}] 2.5,-0.45) arc (90:270:0.15); - \draw [->] ([shift={(base)}] 5.0,-0.5) -- ([shift={(base)}] 2.9,-0.6) node [near start,align=right,fill=white] { + \path[draw, line width=1pt] ([shift={(base)}] 2,-0.3) -- ++(0,-0.2) -- ++(0.3,0); + \path[draw, line width=1pt] ([shift={(base)}] 2.3,-0.5) -- ++(0.2,0.15) -- ++(0,-0.3) -- cycle; + \draw [->] ([shift={(base)}] 5.0,-0.5) -- ([shift={(base)}] 2.9,-0.5) node [near start,align=right,fill=white] { \IfLanguage{english}{distant signal} \IfLanguage{ngerman}{Vorsignal} }; - % main signal + % block signal \draw [dashed] ([shift={(base)}] 9,-0.1) -- ++(0,-0.2) -- ++(1,0) -- ++(0,0.2); - \path[draw, line width=1pt] ([shift={(base)}] 9,-0.5) -- ++(0,-0.2); - \path[draw, line width=1pt] ([shift={(base)}] 9,-0.6) -- ++(0.5,0); - \path[draw, fill] ([shift={(base)}] 9.5,-0.75) rectangle ++(0.2,0.3); - \path[draw, fill] ([shift={(base)}] 9.7,-0.75) arc (90:270:-0.15); + \path[draw, line width=1pt] ([shift={(base)}] 9,-0.3) -- ++(0,-0.2) -- ++(0.5,0); + \path[draw, line width=1pt] ([shift={(base)}] 9.5,-0.65) rectangle ++(0.3,0.3); \draw [->] ([shift={(base)}] 6.5,-1.2) -- ([shift={(base)}] 8.9,-0.6) node [near start,align=right,fill=white] { - \IfLanguage{english}{main signal} - \IfLanguage{ngerman}{Hauptsignal} + \IfLanguage{english}{block signal} + \IfLanguage{ngerman}{Blocksignal} }; - % axle counter - \path[draw, line width=1pt] ([shift={(base)}] 9.85,-0.4) -- ++(0.3,0); - \path[draw, line width=1pt, fill] ([shift={(base)}] 9.94,-0.4) circle (0.04); - \path[draw, line width=1pt, fill] ([shift={(base)}] 10.06,-0.4) circle (0.04); + % clearing point + \path[draw, line width=1pt] ([shift={(base)}] 10,-0.3) -- ++(0,-0.1); + \path[draw, line width=1pt] ([shift={(base)}] 9.95,-0.4) rectangle ++(0.1,-0.1); \draw [->] ([shift={(base)}] 13.5,-0.8) -- ([shift={(base)}] 10.2,-0.45) node [near start,align=right,fill=white] { - \IfLanguage{english}{track vacancy detector} - \IfLanguage{ngerman}{Gleisfreimeldegrenze} + \IfLanguage{english}{block clearing point} + \IfLanguage{ngerman}{Signalzugschlussstelle} }; \end{scope} diff --git a/figures/initial_setup.tikz b/figures/initial_setup.tikz index c770a75..f1412c6 100644 --- a/figures/initial_setup.tikz +++ b/figures/initial_setup.tikz @@ -15,7 +15,7 @@ \IfLanguage{ngerman}{Bahnsteig A} }; \path[draw, line width=1pt, fill=white] (0.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train - \draw [->] ([shift={(base)}] 5,1.4) -- ([shift={(base)}] 0.85,0.35) node [near start,align=right,fill=white] { + \draw [->] ([shift={(base)}] 5.5,1.4) -- ([shift={(base)}] 0.85,0.35) node [near start,align=right,fill=white] { \IfLanguage{english}{Train (direction of travel to the right)} \IfLanguage{ngerman}{Zug (Fahrtrichtung rechts)} }; diff --git a/handbook.pdf b/handbook.pdf index 0ed4277..e0047b1 100644 Binary files a/handbook.pdf and b/handbook.pdf differ diff --git a/mainmatter/challenges.tex b/mainmatter/challenges.tex index 0fcdfe4..11d45e6 100644 --- a/mainmatter/challenges.tex +++ b/mainmatter/challenges.tex @@ -125,4 +125,73 @@ \item Wie viele Runden werden benötigt vom Einbruch des ersten Zuges bis zum verlassen des zweiten Zuges, wenn beide Züge behinderungsfrei fahren sollen und der \emph{schnelle} vor dem \emph{langsamen} Zug fährt? \item Wie viele Runden werden benötigt vom Einbruch des ersten Zuges bis zum verlassen des zweiten Zuges, wenn beide Züge behinderungsfrei fahren sollen und der \emph{langsame} vor dem \emph{schnellen} Zug fährt? } - \end{enumerate} \ No newline at end of file + \end{enumerate} + +\newpage +\chapter{\IfLanguage{english}{Third Stage}\IfLanguage{ngerman}{Dritte Stufe}} + \section{\IfLanguage{english}{Route Locking}\IfLanguage{ngerman}{Fahrstraßenverschluss und -festlegung}} + \setup + \begin{itemize} + \IfLanguage{english}{ + \item Two different trains with different vehicle dynamics. + \item A line with at least two complete blocks. + \item A station with routes at the beginning and end of the line. + \item The trains start at the first station and are supposed to run to the second one. + } + \IfLanguage{ngerman}{ + \item Zwei verschiedene Züge mit unterschiedlicher Fahrdynamik. + \item Eine Strecke, mit mindestens 2 vollständigen Blöcken. + \item Je ein Bahnhof mit Fahrstraßen am Begin und Ende der Strecke. + \item Die Züge stehen zu Beginn im ersten Bahnhof und sollen in den zweiten Fahren. + } + \end{itemize} + \IfLanguage{english}{The turnouts may only be passed at \SI{80}{\kilo\metre\per\hour} along the branching track. The speed in the straight track is not limited.} + \IfLanguage{ngerman}{Die Weichen dürfen im abzweigenden Strang jeweils nur mit \SI{80}{\kilo\metre\per\hour} befahren werden. Im durchgehenden Strang ist die Geschwindigkeit nicht begrenzt.}\\[0.25cm] + \tikzfigure{challenge3_setup1.tikz} + \task + \begin{enumerate}[label=\alph*)] + \IfLanguage{english}{ + \item Pick a train to leave and explain why not the other one! + \item How many laps does it take for the second train to depart? + \item How many laps does it take for both trains (sum of the laps of train 1 and train 2) to arrive at the destination station? + } + \IfLanguage{ngerman}{ + \item Wähle den Zug aus, der als erster abfahren soll und begründe! + \item Wie viele Runden dauert es bis der zweite Zug abfahren kann? + \item Wie viele Runden dauert es bis beide Züge (Summe der Runden von Zug 1 und Zug 2) im Zielbahnhof angekommen sind? + } + \end{enumerate} + + \section{\IfLanguage{english}{Overlap}\IfLanguage{ngerman}{Durchrutschweg}} + \setup + \IfLanguage{english}{TODO!} + \IfLanguage{ngerman}{In einem Bahnhof (zwei Gleise, drei Weichen gemäß Skizze) sollen sich zwei Züge kreuzen. Der Zug von links (Zug 1) ist etwa 25 Felder vom Einfahrsignal entfernt, fährt mit maximaler Geschwindigkeit und hat keinen Verkehrshalt im Bahnhof. Der Zug von rechts (Zug 2) befindet sich etwa 15 Felder vor dem Einfahrsignal, fährt ebenfalls mit maximaler Geschwindigkeit und hat einen Verkehrshalt (min. 2 Runden) im Bahnhof. Fahrstraßen sind keine eingestellt. Die Weichen können im abzweigenden Strang mit \SI{80}{\kilo\metre\per\hour} befahren werden.}\\[0.25cm] + \tikzfigure{challenge3_setup2.tikz} + \task + \begin{enumerate}[label=\alph*)] + \IfLanguage{english}{ + \item TODO! + } + \IfLanguage{ngerman}{ + \item Entscheide begründet welcher Zug auf welches Gleis fahren soll. Welche Probleme können auftreten? + \item Nach wie viel Runden ist Zug 2 im Bahnhof zum stehen gekommen? + \item Nach wie viel Runden hat Zug 1 den Bahnhof vollständig verlassen? + } + \end{enumerate} + + \section{\IfLanguage{english}{Dual protection points}\IfLanguage{ngerman}{Zwieschutzweiche}} + \setup + \IfLanguage{english}{TODO!} + \IfLanguage{ngerman}{Zwei Züge stehen im Startbahnhof (drei Gleise, drei Weichen mit Zwischutzweiche in der Mitte gemäß Skizze) vor den Ausfahrsignalen. Am Bahnhofskopf beginnt eine zweigleisige Strecke. Von der Strecke (ca. 20 Felder entfernt) nähert sich Zug 3. Zug 3 soll im Bahnhof einfahren. Die Züge 1 und 2 sollen vom Bahnhof auf die Strecke ausfahren (Rechtsfahrbetrieb).}\\[0.25cm] + \tikzfigure{challenge3_setup3.tikz} + \task + \begin{enumerate}[label=\alph*)] + \IfLanguage{english}{ + \item TODO! + } + \IfLanguage{ngerman}{ + \item Sichere die Ausfahrstraße für Zug 1! + \item Sichere die Einfahrstraße für Zug 3! + \item Sichere die Fahrstraße für Zug 2, nachdem Zug 1 ausgefahren ist. Welches Problem tritt auf? Wie kann es gelöst werden? + } + \end{enumerate} diff --git a/material/block_signals.pdf b/material/block_signals.pdf index 2d31504..ed71678 100644 Binary files a/material/block_signals.pdf and b/material/block_signals.pdf differ diff --git a/material/block_signals.tex b/material/block_signals.tex index ab5ca48..2f5036b 100644 --- a/material/block_signals.tex +++ b/material/block_signals.tex @@ -18,11 +18,15 @@ pics/distant_signal_go/.style args={#1}{ code={ \draw[loosely dashdotted] (0,1) -- ( 0,0) -- ++(8,0) -- ++(0,1); - \draw[line width=4pt] (0,-0.5) -- ++(0,-2); - \draw[line width=4pt] (0,-1.5) -- ++(4, 0); - \draw[line width=4pt,fill=base1] (4,-0.5) arc (90:270:1) -- ++(1.2,0) -- ++(0,2)-- cycle; - \draw[fill=#1] (4,-1.5) circle (0.8); - \draw[double] (3.2,-1.5) -- ++(1.6,0); + + \draw[line width=4pt] (0,0) -- ++(0,-1.5) -- ++(4, 0); % signal pole + \draw[line width=4pt,fill=base1!50] (2.1,-1.5) -- ++(2,-1) -- ++(0,2) -- cycle; % signal screen + \draw[fill=#1] (3.5,-1.5) circle (0.5); % signal aspect + \draw[double] (3,-1.5) -- ++(1.0,0); % signal aspect + \node[right] at (0.2,-1) { + \IfLanguage{english}{\Large distant signal} + \IfLanguage{ngerman}{\Large Vorsignal} + }; % label } }, pics/distant_signal_go/.default=signalgreen, @@ -31,14 +35,15 @@ pics/block_signal_go/.style args={#1}{ code={ \draw[loosely dashdotted] (0,1) -- ( 0,0) -- ++(8,0) -- ++(0,1); - \draw[line width=4pt] (7.5,-0.5) -- ++(1,0); - \fill (7.8,-0.5) circle (0.2); - \fill (8.2,-0.5) circle (0.2); - \draw[line width=4pt] (0,-0.5) -- ++(0,-2); - \draw[line width=4pt] (0,-1.5) -- ++(4, 0); - \draw[line width=4pt,fill=base1] (4,-0.5) -- ++(2,0) arc (-90:-270:-1) -- ++(-2,0) -- cycle; - \draw[fill=#1] (6,-1.5) circle (0.8); - \draw[double] (5.2,-1.5) -- ++(1.6,0); + + \draw[line width=4pt] (0,0) -- ++(0,-1.5) -- ++(4, 0); % signal pole + \draw[line width=4pt,fill=base1!50] (4,-0.5) rectangle ++(2,-2); % signal screen + \draw[fill=#1] (5,-1.5) circle (0.5); % signal aspect + \draw[double] (4.5,-1.5) -- ++(1.0,0); % signal aspect + \node[right] at (0.2,-1) { + \IfLanguage{english}{\Large block signal} + \IfLanguage{ngerman}{\Large Blocksignal} + }; % label } }, pics/block_signal_go/.default=signalgreen, @@ -47,11 +52,15 @@ pics/distant_signal_stop/.style args={#1}{ code={ \draw[loosely dashdotted] (0,1) -- ( 0,0) -- ++(8,0) -- ++(0,1); - \draw[line width=4pt] (0,-0.5) -- ++(0,-2); - \draw[line width=4pt] (0,-1.5) -- ++(4, 0); - \draw[line width=4pt,fill=base1] (4,-0.5) arc (90:270:1) -- ++(1.2,0) -- ++(0,2)-- cycle; - \draw[fill=#1] (4,-1.5) circle (0.8); - \draw[double] (3.44,-0.94) -- ++(1.12,-1.12); + + \draw[line width=4pt] (0,0) -- ++(0,-1.5) -- ++(4, 0); % signal pole + \draw[line width=4pt,fill=base1!50] (2.1,-1.5) -- ++(2,-1) -- ++(0,2) -- cycle; % signal screen + \draw[fill=#1] (3.5,-1.5) circle (0.5); % signal aspect + \draw[double] (3.14,-1.14) -- ++(0.72,-0.72); % signal aspect + \node[right] at (0.2,-1) { + \IfLanguage{english}{\Large distant signal} + \IfLanguage{ngerman}{\Large Vorsignal} + }; % label } }, pics/distant_signal_stop/.default=signalyellow, @@ -60,21 +69,22 @@ pics/block_signal_stop/.style args={#1}{ code={ \draw[loosely dashdotted] (0,1) -- ( 0,0) -- ++(8,0) -- ++(0,1); - \draw[line width=4pt] (7.5,-0.5) -- ++(1,0); - \fill (7.8,-0.5) circle (0.2); - \fill (8.2,-0.5) circle (0.2); - \draw[line width=4pt] (0,-0.5) -- ++(0,-2); - \draw[line width=4pt] (0,-1.5) -- ++(4, 0); - \draw[line width=4pt,fill=base1] (4,-0.5) -- ++(2,0) arc (-90:-270:-1) -- ++(-2,0) -- cycle; - \draw[fill=#1] (6,-1.5) circle (0.8); - \draw[double] (6.0,-0.7) -- ++(0,-1.6); + + \draw[line width=4pt] (0,0) -- ++(0,-1.5) -- ++(4, 0); % signal pole + \draw[line width=4pt,fill=base1!50] (4,-0.5) rectangle ++(2,-2); % signal screen + \draw[fill=#1] (5,-1.5) circle (0.5); % signal aspect + \draw[double] (5,-1) -- ++(0,-1); % signal aspect + \node[right] at (0.2,-1) { + \IfLanguage{english}{\Large block signal} + \IfLanguage{ngerman}{\Large Blocksignal} + }; % label } }, pics/block_signal_stop/.default=signalred, } \begin{document} - \selectlanguage{ngerman} % currently supported: english, ngerman + \selectlanguage{english} % currently supported: english, ngerman \tikzset{every path/.style={ultra thick}} \begin{frame} \vfill diff --git a/material/clearing_points.pdf b/material/clearing_points.pdf new file mode 100644 index 0000000..6f83d50 Binary files /dev/null and b/material/clearing_points.pdf differ diff --git a/material/clearing_points.tex b/material/clearing_points.tex new file mode 100644 index 0000000..402fbbd --- /dev/null +++ b/material/clearing_points.tex @@ -0,0 +1,69 @@ +%!TEX TS-program = pdflatexmk + +% Copyright 2019 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0) +% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given. + +\documentclass{beamer} +\usepackage[ + size=a4, +]{beamerposter} +\beamertemplatenavigationsymbolsempty + +\def\ROOT{./..} +\input{\ROOT/src/material_header.tex} +\input{\ROOT/src/colors.tex} +% \input{\ROOT/src/hyperref.tex} + +\tikzset{ + route_clearing_point/.pic = { + % \draw[loosely dashdotted] (0,1) -- ( 0,0) -- ++(8,0) -- ++(0,1); + \draw[line width=4pt] (8,0) -- ++(0,-0.5); + \draw[line width=4pt] (8,-0.75) circle (0.25); + \node[align=center] at (8,-1.5) { + \IfLanguage{english}{\Large RCP} + \IfLanguage{ngerman}{\Large FZS} + }; % label + }, +} +\tikzset{ + block_clearing_point/.pic = { + % \draw[loosely dashdotted] (0,1) -- ( 0,0) -- ++(8,0) -- ++(0,1); + \draw[line width=4pt] (8,0) -- ++(0,-0.5); + \draw[line width=4pt] (7.75,-0.5) rectangle ++(0.5,-0.5); + \node[align=center] at (8,-1.5) { + \IfLanguage{english}{\Large BCP} + \IfLanguage{ngerman}{\Large SZS} + }; % label + }, +} +\tikzset{ + clearing_point/.pic = { + % \draw[loosely dashdotted] (0,1) -- ( 0,0) -- ++(8,0) -- ++(0,1); + \draw[line width=4pt] (8,0) -- ++(0,-0.5); + \draw[line width=4pt] (7.75,-0.5) -- ++(0.5,0); + \node[align=center] at (8,-1.5) { + \IfLanguage{english}{\Large CP} + \IfLanguage{ngerman}{\Large ZS} + }; % label + }, +} + +\begin{document} + \selectlanguage{english} % currently supported: english, ngerman + \tikzset{every path/.style={ultra thick}} + \begin{frame} + \vfill + \begin{tikzpicture}[font=\sffamily] + \foreach \x in {1,5,9,13} + \foreach \y in {0,3,6,9} + \pic at (\x,\y) {route_clearing_point}; + \foreach \x in {17,21,25} + \foreach \y in {0,3,6,9,12,15} + \pic at (\x,\y) {block_clearing_point}; + \foreach \x in {1,5,9,13} + \foreach \y in {12,15} + \pic at (\x,\y) {clearing_point}; + \end{tikzpicture} + \vfil + \end{frame} +\end{document} \ No newline at end of file diff --git a/material/end_of_movement_authority.pdf b/material/end_of_movement_authority.pdf new file mode 100644 index 0000000..7838022 Binary files /dev/null and b/material/end_of_movement_authority.pdf differ diff --git a/material/end_of_movement_authority.tex b/material/end_of_movement_authority.tex new file mode 100644 index 0000000..5dcca10 --- /dev/null +++ b/material/end_of_movement_authority.tex @@ -0,0 +1,43 @@ +%!TEX TS-program = pdflatexmk + +% Copyright 2019 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0) +% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given. + +\documentclass{beamer} +\usepackage[ + size=a4, +]{beamerposter} +\beamertemplatenavigationsymbolsempty + +\def\ROOT{./..} +\input{\ROOT/src/material_header.tex} +\input{\ROOT/src/colors.tex} + +\newlength{\spacewidth}\setlength{\spacewidth}{4.2cm} +\newlength{\spacelength}\setlength{\spacelength}{8cm} + +\tikzset{ + pics/end_of_movement_authority/.style args={#1}{ + code={ + \draw[loosely dashdotted] (0,0.2\spacewidth) -- ( 0,0) -- ++(\spacelength,0) -- ++(0,0.2\spacewidth); + \draw[line width=3pt] (\spacelength,-0.1) -- (\spacelength,-0.5\spacewidth); + \draw[line width=3pt] (\spacelength,-0.5\spacewidth) -- ++(-0.5,0) -- ++(0,-1) -- ++(1,0) -- ++(0,1) -- cycle; + } + }, + pics/end_of_movement_authority/.default=black, +} + +\begin{document} + \selectlanguage{ngerman} % currently supported: english, ngerman + \tikzset{every path/.style={ultra thick}} + \begin{frame} + \begin{tikzpicture}[remember picture,overlay,font=\sffamily] + % \path (current page.north west) rectangle (current page.south west); % rectangle for background to unify orientation + \begin{scope}[shift={(1.5,-12)}] + \foreach \x in {2,15} + \foreach \y in {8,16} + \pic at (\x,\y) {end_of_movement_authority}; + \end{scope} + \end{tikzpicture} + \end{frame} +\end{document} \ No newline at end of file diff --git a/material/route_signals.pdf b/material/route_signals.pdf index 9d05691..14b01cc 100644 Binary files a/material/route_signals.pdf and b/material/route_signals.pdf differ diff --git a/material/route_signals.tex b/material/route_signals.tex index 034e57a..53c2dd7 100644 --- a/material/route_signals.tex +++ b/material/route_signals.tex @@ -18,27 +18,28 @@ pics/route_signal_stop/.style args={#1}{ code={ \draw[loosely dashdotted] (0,1) -- ( 0,0) -- ++(8,0) -- ++(0,1); - \draw[line width=4pt] (7.5,-0.5) -- ++(1,0); - \fill (7.8,-0.5) circle (0.2); - \fill (8.2,-0.5) circle (0.2); - \draw[line width=4pt] (0,-0.5) -- ++(0,-2); - \draw[line width=4pt] (0,-1.5) -- ++(4, 0); - \draw[line width=4pt,fill=base1] (4,-0.5) -- ++(2,0) arc (-90:-270:-1) -- ++(-2,0) -- cycle; - \draw[fill=#1] (6,-1.5) circle (0.8); - \draw[double] (6.0,-0.7) -- ++(0,-1.6); + + \draw[line width=4pt] (0,0) -- ++(0,-1.5) -- ++(4, 0); % signal pole + \draw[line width=4pt,fill=base1!50] (5,-1.5) circle (1); % signal screen + \draw[fill=#1] (5,-1.5) circle (0.5); % signal aspect + \draw[double] (5,-1) -- ++(0,-1); % signal aspect + \node[right] at (0.2,-1) { + \IfLanguage{english}{\Large route signal} + \IfLanguage{ngerman}{\Large Fahrstraßensignal} + }; % label } }, pics/route_signal_stop/.default=signalred, } \begin{document} - \selectlanguage{ngerman} % currently supported: english, ngerman + \selectlanguage{english} % currently supported: english, ngerman \tikzset{every path/.style={ultra thick}} \begin{frame} \vfill \begin{tikzpicture}[font=\sffamily] \foreach \x in {0,9.5,19} - \foreach \y in {0,5} + \foreach \y in {0,5,10,15} \pic at (\x,\y) {route_signal_stop}; \end{tikzpicture} \vfil diff --git a/material/turnout_base.pdf b/material/turnout_base.pdf new file mode 100644 index 0000000..f46ed8f Binary files /dev/null and b/material/turnout_base.pdf differ diff --git a/material/turnout_base.tex b/material/turnout_base.tex new file mode 100644 index 0000000..23b652d --- /dev/null +++ b/material/turnout_base.tex @@ -0,0 +1,58 @@ +%!TEX TS-program = pdflatexmk + +% Copyright 2019 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0) +% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given. + +\documentclass{beamer} +\usepackage[ + size=a4, +]{beamerposter} +\beamertemplatenavigationsymbolsempty + +\def\ROOT{./..} +\input{\ROOT/src/material_header.tex} +\input{\ROOT/src/colors.tex} + +\newlength{\spacewidth}\setlength{\spacewidth}{4.2cm} +\newlength{\spacelength}\setlength{\spacelength}{8cm} + +\tikzset{ + pics/flank_protection_symbol/.style = { + code={ + \draw[dashed,fill=white] (-1,-1) rectangle (1,1); + \draw[<-> ,>=latex] (-0.65,-0.1) -- (0.65,-0.1); + \draw[->|,>=latex,red] ( 0 , 0.4) -- (0 ,0 ); + } + }, +} + +\begin{document} + \selectlanguage{ngerman} % currently supported: english, ngerman + \tikzset{every path/.style={ultra thick}} + \begin{frame} + \begin{tikzpicture}[remember picture,overlay,font=\sffamily] + \path (current page.north west) rectangle (current page.south west); % rectangle for background to unify orientation + \begin{scope}[shift={(1.55,5.45)}] + % \begin{scope}[shift={(1.2,4.65)}] + \draw[fill=base2] (0,0) -- (24.5,0) -- (24.5,-5) -- (2.5,-14) -- (0,-14) -- cycle; + \draw[fill=white] (23.0,-2.5) circle (0.2); + \pic[rotate=270] at ( 2 , -2.5) {flank_protection_symbol}; + \pic[rotate=292] at ( 3.7,-10.5) {flank_protection_symbol}; + \draw (0,-0.4) -- ++ (24.5,0) -- ++(0,-\spacewidth) -- (23.8,-4.6) -- (2.99,-13.1) -- (0,-13.1) -- (0,-9.1)-- (1.4,-9.1) -- (12.6,-4.6) -- (0,-4.6) -- cycle; + \end{scope} + \end{tikzpicture} + \end{frame} + \begin{frame} + \begin{tikzpicture}[remember picture,overlay,font=\sffamily] + \path (current page.north west) rectangle (current page.south west); % rectangle for background to unify orientation + \begin{scope}[shift={(1.2,4.65)}] + % \begin{scope}[shift={(0.9,18)}] + \draw[fill=base2] (0,0) -- (0,-14) -- (24.5,-14) -- (24.5,-9) -- (2.5,0) -- cycle; + \draw[fill=white] (23.0,-11.5) circle (0.2); + \pic[rotate=248] at ( 3.5, -3.5) {flank_protection_symbol}; + \pic[rotate=270] at ( 2 ,-11.5) {flank_protection_symbol}; + \draw (0,-13.6) -- (24.5,-13.6) -- (24.5,-9.4) -- (23.8,-9.4) -- (2.9,-0.9) -- (0,-0.9) -- (0,-4.9) -- (1.4,-4.9) -- (12.6,-9.4) -- (0,-9.4) -- cycle; + \end{scope} + \end{tikzpicture} + \end{frame} +\end{document} \ No newline at end of file diff --git a/material/turnout_point.pdf b/material/turnout_point.pdf new file mode 100644 index 0000000..e7c0747 Binary files /dev/null and b/material/turnout_point.pdf differ diff --git a/material/turnout_point.tex b/material/turnout_point.tex new file mode 100644 index 0000000..190d59d --- /dev/null +++ b/material/turnout_point.tex @@ -0,0 +1,72 @@ +%!TEX TS-program = pdflatexmk + +% Copyright 2019 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0) +% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given. + +\documentclass{beamer} +\usepackage[ + size=a4, +]{beamerposter} +\beamertemplatenavigationsymbolsempty + +\def\ROOT{./..} +\input{\ROOT/src/material_header.tex} +\input{\ROOT/src/colors.tex} + +\newlength{\spacewidth}\setlength{\spacewidth}{4.2cm} +\newlength{\spacelength}\setlength{\spacelength}{8cm} + +\tikzset{ + pics/keyhole/.style args={#1}{ + code={ + \filldraw[#1] (-0.25,-0.25) -- (0,0.25) -- (0.25,-0.25) -- cycle; + \filldraw[#1] (0,0.25) circle (0.2); + } + }, + pics/keyhole/.default=black, +} + +\begin{document} + \selectlanguage{ngerman} % currently supported: english, ngerman + \tikzset{every path/.style={ultra thick}} + \begin{frame} + \begin{tikzpicture}[font=\sffamily] + \begin{scope}[shift={(1,15)}] + \draw ( 0,0) rectangle ++(\spacelength,\spacewidth); + \draw (0.125\spacelength,0.5\spacewidth) circle (0.2); + \draw ( \spacelength,0) rectangle ++(\spacelength,\spacewidth); + \draw (2\spacelength,0) rectangle ++(\spacelength,\spacewidth); + \draw[thin] (1.62\spacelength,0) -- ++(0,0.2); + \draw[thin] (2.12\spacelength,0) -- ++(0,0.2); + \draw[thin] (1.62\spacelength,\spacewidth) -- ++(0,-0.2); + \draw[thin] (2.12\spacelength,\spacewidth) -- ++(0,-0.2); + \end{scope} + \begin{scope}[shift={(1,10.7)}] + \draw ( 0,0) rectangle ++(\spacelength,\spacewidth); + \draw (0.125\spacelength,0.5\spacewidth) circle (0.2); + \draw ( \spacelength,0) rectangle ++(\spacelength,\spacewidth); + \draw (2\spacelength,0) rectangle ++(\spacelength,\spacewidth); + \draw[thin] (1.62\spacelength,0) -- ++(0,0.2); + \draw[thin] (2.12\spacelength,0) -- ++(0,0.2); + \draw[thin] (1.62\spacelength,\spacewidth) -- ++(0,-0.2); + \draw[thin] (2.12\spacelength,\spacewidth) -- ++(0,-0.2); + \end{scope} + \begin{scope}[shift={(1,5.1)}] + \draw[fill=base3] (0,0) -- (4,0) -- (4.5,0.7) -- (7,0.7) -- (7,0) -- (12.5,0) -- (12.5,0.7) -- (15,0.7) -- (15.5,0) -- (19.5,0) + -- (18,4) -- (15.5,4) -- (15,3.3) -- (12.5,3.3) -- (12.5,4) -- (7,4) -- (7,3.3) -- (4.5,3.3) -- (4,4) -- (1.5,4) -- cycle; + \draw[thin] (7.65,0) -- ++(0,4); + \draw[thin] (11.85,0) -- ++(0,4); + \pic[rotate=180] at ( 5.75,2) {keyhole}; + \pic[rotate=180] at (13.75,2) {keyhole}; + \end{scope} + \begin{scope}[shift={(1,1)}] + \draw[fill=base3] (0,4) -- (4,4) -- (4.5,3.3) -- (7,3.3) -- (7,4) -- (12.5,4) -- (12.5,3.3) -- (15,3.3) -- (15.5,4) -- (19.5,4) + -- (18,0) -- (15.5,0) -- (15,0.7) -- (12.5,0.7) -- (12.5,0) -- (7,0) -- (7,0.7) -- (4.5,0.7) -- (4,0) -- (1.5,0) -- cycle; + \draw[thin] (7.65,0) -- ++(0,4); + \draw[thin] (11.85,0) -- ++(0,4); + \pic at ( 5.75,2) {keyhole}; + \pic at (13.75,2) {keyhole}; + \end{scope} + \end{tikzpicture} + \end{frame} +\end{document} \ No newline at end of file diff --git a/material/turnout_tokens.pdf b/material/turnout_tokens.pdf new file mode 100644 index 0000000..b59ef50 Binary files /dev/null and b/material/turnout_tokens.pdf differ diff --git a/material/turnout_tokens.tex b/material/turnout_tokens.tex new file mode 100644 index 0000000..4eae463 --- /dev/null +++ b/material/turnout_tokens.tex @@ -0,0 +1,102 @@ +%!TEX TS-program = pdflatexmk + +% Copyright 2019 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0) +% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given. + +\documentclass{beamer} +\usepackage[ + size=a4, +]{beamerposter} +\beamertemplatenavigationsymbolsempty + +\def\ROOT{./..} +\input{\ROOT/src/material_header.tex} +\input{\ROOT/src/colors.tex} + +\newlength{\spacewidth}\setlength{\spacewidth}{4.2cm} +\newlength{\spacelength}\setlength{\spacelength}{8cm} +\newlength{\corpuslength}\setlength{\corpuslength}{4cm} + +\tikzset{ + pics/key/.style args={#1}{ + code={ + \filldraw[#1] (-0.5,0) ellipse (0.25cm and 0.5cm); + \filldraw[white] (-0.5,0) ellipse (0.1cm and 0.35cm); + \filldraw[#1] (-0.25,-0.1) rectangle (0.75,0.1); + \filldraw[#1] ( 0.45,-0.1) rectangle (0.55,-0.2); + \filldraw[#1] ( 0.6 ,-0.1) rectangle (0.7,-0.3); + } + }, + pics/key/.default=black, +} + +\tikzset{ + pics/flank_protection_symbol/.style = { + code={ + \draw[<-> ,>=latex] (-0.65,-0.1) -- (0.65,-0.1); + \draw[->|,>=latex,red] ( 0 , 0.4) -- (0 ,0 ); + } + }, +} + +\tikzset{ + pics/flank_marker/.style = { + code={ + % drawing + \draw (0,0) rectangle ( 2, 2); + \draw (0,2) rectangle ( 2, 4); + \draw (0,0) rectangle ( 2,-2); + \draw (2,2) rectangle ( 4, 0); + \draw (0,0) rectangle (-2, 2); + % + \pic at (1,1) {flank_protection_symbol}; + % adhesive edge + \tikzset{every path/.style={thin,base1}} + \draw (0,0) -- ++(-1,-0.5) -- ++(0,-1) -- (0,-2); + \draw (2,0) -- ++( 1,-0.5) -- ++(0,-1) -- (2,-2); + \draw (0,2) -- ++(-1, 0.5) -- ++(0, 1) -- (0, 4); + \draw (2,2) -- ++( 1, 0.5) -- ++(0, 1) -- (2, 4); + } + }, +} + +\tikzset{ + pics/key_locker/.style = { + code={ + % drawing + \draw (0,0) rectangle ( 4, 2); + % \draw (0,2) rectangle ( 4, 4); + \draw (0,2) -- (4,2) -- (4,4) -- (3.5,4) -- (3,3.5) -- (1,3.5) -- (0.5,4) -- (0,4) -- cycle; + % \draw (0,0) rectangle ( 4,-2); + \draw (0,0) -- (4,0) -- (4,-2) -- (3.5,-2) -- (3,-1.5) -- (1,-1.5) -- (0.5,-2) -- (0,-2) -- cycle; + \draw (4,2) rectangle ( 6, 0); + \draw (0,0) rectangle (-2, 2); + % + \pic at (2,1) {key}; + % adhesive edge + \tikzset{every path/.style={thin,base1}} + \draw (0,0) -- ++(-1,-0.5) -- ++(0,-1) -- (0,-2); + \draw (4,0) -- ++( 1,-0.5) -- ++(0,-1) -- (4,-2); + \draw (0,2) -- ++(-1, 0.5) -- ++(0, 1) -- (0, 4); + \draw (4,2) -- ++( 1, 0.5) -- ++(0, 1) -- (4, 4); + } + }, +} + +\begin{document} + \selectlanguage{ngerman} % currently supported: english, ngerman + \tikzset{every path/.style={ultra thick}} + \begin{frame} + \begin{tikzpicture}[remember picture,overlay,font=\sffamily] + \path (current page.north west) rectangle (current page.south west); % rectangle for background to unify orientation + \begin{scope}[shift={(1.5,-12)}] + \foreach \x in {0,6.2} + \foreach \y in {2.5,9,15.5} + \pic at (\x,\y) {flank_marker}; + \foreach \x in {12.4,20.6} + \foreach \y in {2.5,9,15.5} + \pic at (\x,\y) {key_locker}; + \end{scope} + \end{tikzpicture} + \end{frame} +\end{document} \ No newline at end of file