reworked library

- added examples
- added automatic time distance diagrams
- added symbols
master
Martin Scheidt 2019-04-04 11:28:45 +02:00
parent 8e6df4566b
commit 04075259a5
37 changed files with 1395 additions and 61 deletions

BIN
examples/network.pdf Normal file

Binary file not shown.

21
examples/network.tex Normal file
View File

@ -0,0 +1,21 @@
%!TEX TS-program = pdflatexmk
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\documentclass[tikz,border=2]{standalone}
\usepackage{lmodern}
\usepackage[prefix=]{xcolor-solarized}
\def\rootTrackschematic{../../tikz-trackschematic}
\def\srcTrackschematic{\rootTrackschematic/src}
\input{\srcTrackschematic/topology.tikz}
\input{\srcTrackschematic/trafficControl.tikz}
\input{\srcTrackschematic/constructions.tikz}
\begin{document}
\begin{tikzpicture}[font=\sffamily]
\input{network.tikz}
\end{tikzpicture}
\end{document}

18
examples/network.tikz Normal file
View File

@ -0,0 +1,18 @@
%!TEX TS-program = pdflatexmk
%!TEX root = network.tex
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\begin{scope}[shift={(-60,0)}]
\input{station_rebenau.tikz}
\end{scope}
\begin{scope}[shift={(10,-10)}]
\input{station_pockelsdorf.tikz}
\end{scope}
\begin{scope}[shift={(0,0)}]
\input{station_okerbach.tikz}
\end{scope}
\begin{scope}[shift={(60,0)}]
\input{station_schleinitz.tikz}
\end{scope}

View File

@ -5,7 +5,7 @@
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\draw[MainTrack] (-1,-1) -- ++(2,2);
\fill[white] (-1,-0.4) rectangle (1,0.4);
\fill[background] (-1,-0.4) rectangle (1,0.4);
\draw[MainTrack] (-2.5,0) -- ++(5,0);
\pic at (-1,0) {bridge_left=3};
\pic at (-2,0) {bridge_right=3};

View File

@ -4,5 +4,5 @@
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\draw[MainTrack] (0,0) -- ++(2.5,0);
\draw[SideTrack] (0,0) -- ++(2.5,0);
\pic at (0,0) {bufferstop_backward};

View File

@ -4,5 +4,5 @@
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\draw[MainTrack] (-2.5,0) -- ++(2.5,0);
\draw[SideTrack] (-2.5,0) -- ++(2.5,0);
\pic at (0,0) {bufferstop_forward};

View File

@ -0,0 +1,9 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../../overview.tex
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\draw[MainTrack] (-2.5,0) -- ++(5,0);
\pic at (0,0) {block_signal_forward};
\pic at (0,0) {distant_signal_forward};

View File

@ -5,5 +5,5 @@
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\draw[MainTrack] (-2.5,0) -- ++(5,0);
\pic at (0,0) {distant_signal_backward=S};
\pic at (0,0) {distant_signal_backward={S}};
% replace the S with desired speed or remove

View File

@ -5,5 +5,5 @@
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\draw[MainTrack] (-2.5,0) -- ++(5,0);
\pic at (0,0) {distant_signal_forward=S};
\pic at (0,0) {distant_signal_forward={S}};
% replace the S with desired speed or remove

View File

@ -0,0 +1,8 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../../overview.tex
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\draw[SideTrack] (-2.5,0) -- ++(5,0);
\pic at (0,0) {hump};

View File

@ -0,0 +1,7 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../../overview.tex
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\pic at (0,0) {interlocking};

View File

@ -5,5 +5,5 @@
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\draw[MainTrack] (-2.5,0) -- ++(5,0);
\pic at (0,0) {speed_signal_backward=S};
\pic at (0,0) {speed_signal_backward={S}};
% replace the S with desired speed or remove

View File

@ -5,5 +5,5 @@
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\draw[MainTrack] (-2.5,0) -- ++(5,0);
\pic at (0,0) {speed_signal_forward=S};
\pic at (0,0) {speed_signal_forward={S}};
% replace the S with desired speed or remove

View File

@ -0,0 +1,9 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../../overview.tex
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\draw[MainTrack] (-2.5, 0.5) -- ++(5,0);
\pic at (0,-0.5) {track_distance={4,50}};
\draw[MainTrack] (-2.5,-0.5) -- ++(5,0);

View File

@ -0,0 +1,8 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../../overview.tex
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\draw[MainTrack] (-2.5,0) -- ++(5,0);
\pic at (0, 0) {track_number={2}};

View File

@ -31,11 +31,11 @@
\draw[SideTrack] ( 9 , 1) -- ++( 7,0);
\draw[SideTrack] (14 , 1) -- ++( 1,1) -- ++(10,0);
% track numbers
\node[fill=white] at (11.7, 1) {12};
\node[fill=white] at (11.7,-1) {10};
\node[fill=white] at (21.0, 2) { 3};
\node[fill=white] at (21.0, 1) { 2};
\node[fill=white] at (21.0, 0) { 1};
\node[fill=background] at (11.7, 1) {12};
\node[fill=background] at (11.7,-1) {10};
\node[fill=background] at (21.0, 2) { 3};
\node[fill=background] at (21.0, 1) { 2};
\node[fill=background] at (21.0, 0) { 1};
% bufferstops
\pic at ( 9, 1) {bufferstop_backward};
\pic at (11,-1) {bufferstop_backward};

Binary file not shown.

View File

@ -0,0 +1,183 @@
%!TEX TS-program = pdflatexmk
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\documentclass[tikz,border=2]{standalone}
\usepackage{lmodern}
\usepackage[prefix=]{xcolor-solarized}
\def\rootTrackschematic{../../tikz-trackschematic}
\def\srcTrackschematic{\rootTrackschematic/src}
\input{\srcTrackschematic/topology.tikz}
\input{\srcTrackschematic/constructions.tikz}
\input{\srcTrackschematic/vehicles.tikz}
\input{\srcTrackschematic/trafficControl.tikz} % Order 1
\input{\srcTrackschematic/layoutSymbols_DE.tikz} % Order 2 (important)
\begin{document}
\begin{tikzpicture}[font=\sffamily]
{ % % stations
\tikzset{every node/.style={base00}};
\node[right,align=left] at ( 5,1.3) {to and from\\ Berg};
\node at (21,3.9) {{\LARGE Bf Chamstadt}};
\node[left,align=right] at (37.5,1.3) {to and from\\ Dornroda};
\node[left,align=right] at (36.5,4.0) {to and from\\ Ehrenstein};
}
{ % % tracks
\draw[MainTrack] ( 4.5, 0) -- ++(33, 0);
\draw[MainTrack] (15 , 0) -- ++( 1, 1) -- ++(14,0);
\draw[MainTrack] (14 , 0) -- ++( 1,-1) -- ++(10.5,0) -- ++( 1,1);
\draw[MainTrack] (27 , 1) -- ++( 1,-1);
\draw[MainTrack] (29 , 0) -- ++( 5, 5);
\draw[SideTrack] ( 9 , 1) -- ++( 7, 0);
% % track numbers
\node[fill=background] at (12.5, 1) {11};
\node[fill=background] at (21.75, 1) { 1};
\node[fill=background] at (21.75, 0) { 2};
\node[fill=background] at (21.75,-1) { 3};
% % bufferstops
\pic at ( 9, 1) {bufferstop_backward};
% % turnouts
\pic at (14.8, 1) {derailer_left_forward};
\node at (14.7, 0.6) {\footnotesize Gs7};
\pic at (14,0) {turnout_right_forward};
\pic at (14,0) {fouling_point_right_forward};
\node at (14,0.2) {\footnotesize W1};
\pic at (15,0) {turnout_left_forward};
\pic at (15,0) {fouling_point_left_forward};
\node at (15,-0.2) {\footnotesize W2};
\pic at (16,1) {turnout_left_backward};
\pic at (16,1) {fouling_point_left_backward};
\node at (16,1.2) {\footnotesize W3};
\pic at (26.5,0) {turnout_left_backward};
\pic at (26.5,0) {fouling_point_left_backward};
\node at (26.5,0.2) {\footnotesize W4};
\pic at (27,1) {turnout_right_forward};
\pic at (27,1) {fouling_point_right_forward};
\node at (27,1.2) {\footnotesize W5};
\pic at (28,0) {turnout_right_backward};
\pic at (28,0) {fouling_point_right_backward};
\node at (28,-0.2) {\footnotesize W6};
\pic at (29,0) {turnout_left_forward};
\pic at (29,0) {fouling_point_left_forward};
\node at (29,-0.2) {\footnotesize W7};
\pic at (30,1) {turnout_left_backward};
\pic at (30,1) {fouling_point_left_backward};
\node at (30.3,0.8) {\footnotesize W8};
% % platforms
\pic at (19,0) {platform_left};
\pic at (19,1) {platform_right};
}
{ % % signals
\pic at ( 7.5, 0 ) {distant_signal_forward};
\node[left] at ( 7.5,-0.4) {Va};
\pic at (10, 0 ) {route_signal_forward};
\pic at (10, 0 ) {distant_signal_forward};
\node[left] at (10,-0.4) {A};
\pic at (16,-1 ) {route_signal_backward};
\node[right] at (16,-0.6) {P3};
\pic at (18, 1 ) {route_signal_backward};
\node[right] at (18, 1.4) {P1};
\pic at (18, 0 ) {route_signal_backward};
\node[right] at (18, 0.4) {P2};
\pic at (24, 1 ) {route_signal_forward};
\node[left] at (24, 0.6) {N1};
\pic at (24, 0 ) {route_signal_forward};
\node[left] at (24,-0.4) {N2};
\pic at (25,-1 ) {route_signal_forward};
\node[left] at (25,-1.4) {N3};
\pic at (33, 0 ) {route_signal_backward};
\pic at (33, 0 ) {distant_signal_backward};
\node[right] at (33, 0.4) {F};
\pic at (35.5, 0 ) {distant_signal_backward};
\node[right] at (35.5, 0.4) {Vf};
\pic[rotate=45] at (32.5, 2.5) {route_signal_backward};
\pic[rotate=45] at (32.5, 2.5) {distant_signal_backward};
\node[right,rotate=45] at (32.2, 2.8) {G};
\pic[rotate=45] at (34, 4 ) {distant_signal_backward};
\node[right,rotate=45] at (33.7, 4.3) {Vg};
% % routes
\pic at (21,-1) {route_freight_backward};
\pic at (22.5,-1) {route_freight_forward};
\pic at (21,0) {route_passanger_backward};
\pic at (22.5,0) {route_passanger_forward};
\pic at (21,1) {route_passanger_backward};
\pic at (22.5,1) {route_passanger_forward};
}
{ % % clearing points
\pic at (10 , 0) {clearing_point};
\pic at (13 , 0) {clearing_point};
\pic at (14 , 1) {clearing_point};
\pic at (16 , 0) {clearing_point};
\pic at (16 ,-1) {clearing_point};
\pic[rotate=45] at (15.5, 0.5) {clearing_point};
\pic at (18 , 1) {clearing_point};
\pic at (18 , 0) {clearing_point};
\pic at (24 , 1) {clearing_point};
\pic at (24 , 0) {clearing_point};
\pic at (26 , 1) {clearing_point};
\pic at (25 ,-1) {clearing_point};
\pic at (27 , 0) {clearing_point};
\pic[rotate=-45] at (27.5, 0.5) {clearing_point};
\pic[rotate= 45] at (29.5, 0.5) {clearing_point};
\pic at (30.2, 0) {clearing_point};
\pic at (33 , 0) {clearing_point};
\pic[rotate= 45] at (30.2, 1.2) {clearing_point};
\pic[rotate= 45] at (32 , 3 ) {clearing_point};
}
{ % % vehicles
\pic at ( 7 ,0) {train_direction_forward=2};
\node at ( 6,0) {\emph{RB}};
% \pic at (21.5,2) {train=3};
% \node at (23 ,2) {\emph{WG}};
\pic at (10.2,1) {train=1};
\node at (10.7,1) {\emph{Tfz}};
\pic at (16.5,-1) {train_direction_backward};
\node at (18.5,-1) {\emph{GZ}};
}
{ % % hectometer posts
\tikzset{every node/.style={left,base00,rotate=-90},every path/.style={base00,dashed}};
\node at (07.5,-2.75) { 7.200};
\draw (07.5,-1.55) -- ++(0,0.7);
\node at (10.0,-2.75) { 8.200};
\draw (10.0,-1.55) -- ++(0,0.7);
\node at (13.0,-2.75) { 8.400};
\draw (13.0,-1.55) -- ++(0,1.1);
\node at (14.0, 2.25) { 8.500};
\draw (14.0, 2.15) -- ++(0,-.8);
\node at (15.5, 2.25) { 8.550};
\draw (15.5, 2.15) -- ++(0,-.8);
\node at (16.0,-2.75) { 8.600};
\draw (16.0,-1.55) -- ++(0,0.3);
\node at (18.0, 2.25) { 8.700};
\draw (18.0, 2.15) -- ++(0,-.3);
\node at (19.0, 2.25) { 8.750};
\draw (19.0, 2.15) -- ++(0,-.8);
\node at (23.0, 2.25) { 9.000};
\draw (23.0, 2.15) -- ++(0,-.8);
\node at (24.0, 2.25) { 9.100};
\draw (24.0, 2.15) -- ++(0,-.8);
\node at (25.0,-2.75) { 9.150};
\draw (25.0,-1.55) -- ++(0,0.0);
\node at (26.0, 2.25) { 9.200};
\draw (26.0, 2.15) -- ++(0,-.8);
\node at (27.0,-2.75) { 9.250};
\draw (27.0,-1.55) -- ++(0,1.1);
\node at (27.5,-2.75) { 9.300};
\draw (27.5,-1.55) -- ++(0,1.1);
\node at (29.5,-2.75) { 9.450};
\draw (29.5,-1.55) -- ++(0,1.1);
\node at (30.2,-2.75) { 9.500};
\draw (30.2,-1.55) -- ++(0,1.1);
\node at (33.0,-2.75) { 9.900};
\draw (33.0,-1.55) -- ++(0,1.3);
\draw (33.0, 0.85) -- ++(0,1.2) -- ++(-0.5,0.5);
\node at (35.5,-2.75) {10.900};
\draw (35.5,-1.55) -- ++(0,1.3);
\draw (35.5, 0.85) -- ++(0,1.7) -- ++(-1.5,1.5);
}
\end{tikzpicture}
\end{document}

Binary file not shown.

View File

@ -0,0 +1,21 @@
%!TEX TS-program = pdflatexmk
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\documentclass[tikz,border=2]{standalone}
\usepackage{lmodern}
\usepackage[prefix=]{xcolor-solarized}
\def\rootTrackschematic{../../tikz-trackschematic}
\def\srcTrackschematic{\rootTrackschematic/src}
\input{\srcTrackschematic/topology.tikz}
\input{\srcTrackschematic/trafficControl.tikz}
\input{\srcTrackschematic/constructions.tikz}
\begin{document}
\begin{tikzpicture}[font=\sffamily]
\input{station_okerbach.tikz}
\end{tikzpicture}
\end{document}

View File

@ -0,0 +1,195 @@
%!TEX TS-program = pdflatexmk
%!TEX root = station_okerbach.tex
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
%% coordinates
\coordinate (O2R-1) at ( 0,0); % track 1 to Rebenau
\coordinate (O2R-2) at ( 0,1); % track 2 to Rebenau
\coordinate (O2S-1) at (42,0); % track 1 to Schleinitz
\coordinate (O2S-2) at (42,1); % track 2 to Schleinitz
{ %% stations
\tikzset{every node/.style={base00}};
\node[right,align=left] at ( 0. , 2. ) {to and from\\ Rebenau};
\node[left,align=right] at ( 3.5, 4.0) {Sidings (Workshop)};
\node[left,align=right] at ( 3.5, 5.0) {Sidings (Habour)};
\node[right,align=left] at (37.5,-1.5) {Sidings (Power Station)};
\node at (15.5, 6.3) {{\LARGE Okerbach Gbf}};
\node at (29.0, 6.3) {{\LARGE Okerbach Pbf}};
\node[left,align=right] at (42,2) {to and from\\ Schleinitz};
}
{ %% tracks
\draw[MainTrack] (O2R-1) -- (O2S-1); % track 1
\draw[MainTrack] (O2R-2) -- (O2S-2); % track 2
\draw[MainTrack] ( 5, 1) -- ++( 1,-1); % track W1/W2
\draw[MainTrack] ( 7, 0) -- ++( 1, 1); % track W3/W4
\draw[SideTrack] ( 7, 2) -- ++(-3, 3) -- ++(-0.5,0); % track 132
\draw[MainTrack] ( 8, 0) -- ++( 1,-1) -- ++(13. ,0) -- ++( 1. , 1); % track 10
\draw[MainTrack] ( 9, 1) -- ++( 1, 1) -- ++(11. ,0) -- ++( 1. ,-1); % track 13
\draw[SideTrack] (10, 2) -- ++(-4, 0) -- ++(-2. ,2) -- ++(-0.5, 0); % track 131
\draw[MainTrack] (10, 2) -- ++( 1, 1) -- ++( 9. ,0) -- ++( 1. ,-1); % track 14
\draw[SideTrack] (11, 3) -- ++( 1, 1) -- ++( 7. ,0) -- ++( 1. ,-1); % track 15
\draw[SideTrack] (19, 4) -- ++( 4, 0); % track 215
\draw[MainTrack] (23, 1) -- ++( 1,-1); % track W16/W18
\draw[SideTrack] (32, 0) -- ++( 1.5,-1.5) -- ++( 4, 0); % track 410
\draw[MainTrack] (35, 0) -- ++( 1, 1); % track W21/W22
}
{ %% track numbers
\node[fill=background,rotate=-45] at ( 4.4, 3.6) {131};
\node[fill=background,rotate=-45] at ( 4.9, 4.1) {132};
\node[fill=background] at (15.5,-1. ) { 10};
\node[fill=background] at (15.5, 0. ) { 11};
\node[fill=background] at (15.5, 1. ) { 12};
\node[fill=background] at (15.5, 2. ) { 13};
\node[fill=background] at (15.5, 3. ) { 14};
\node[fill=background] at (15.5, 4. ) { 15};
\node[fill=background] at (22. , 4. ) {215};
\node[fill=background] at (29. , 0. ) { 1};
\node[fill=background] at (29. , 1. ) { 2};
\node[fill=background] at (36.5,-1.5) {410};
}
{ %% bufferstops
\pic at ( 23, 4) {bufferstop_forward};
}
{ %% turnouts
\pic at ( 5,1) {turnout_right_forward};
\node at ( 5,1.2) {\footnotesize W1};
% \pic at ( 5,1) {fouling_point_left_forward};
\pic at ( 6,0) {turnout_right_backward};
\node at ( 6,-0.2) {\footnotesize W2};
% \pic at ( 6,0) {fouling_point_left_backward};
\pic at ( 7,0) {turnout_left_forward};
\node at ( 7,-0.2) {\footnotesize W3};
% \pic at ( 7,0) {fouling_point_left_forward};
\pic at ( 7,2) {turnout_right_backward};
\node at ( 7,1.8) {\footnotesize W9};
% \pic at ( 7,2) {fouling_point_right_backward};
\pic at ( 8,1) {turnout_left_backward};
\node at ( 8,1.2) {\footnotesize W4};
% \pic at ( 8,1) {fouling_point_left_backward};
\pic at ( 8,0) {turnout_right_forward};
\node at ( 8,0.2) {\footnotesize W5};
% \pic at ( 8,0) {fouling_point_right_forward};
\pic at ( 8.5,2) {derailer_left_forward};
\node[left,align=right] at ( 8.5,1.8) {\footnotesize Gs8};
\pic at ( 9,1) {turnout_left_forward};
\node at ( 9,0.8) {\footnotesize W6};
% \pic at ( 9,1) {fouling_point_left_forward};
\pic at (10,2) {turnout_left_forward};
\pic at (10,2) {turnout_left_backward};
\pic at (10,2) {slip_left_forward};
\pic at (10,2) {slip_left_backward};
\node[left,align=right] at ( 9.7,1.8) {\footnotesize W7ab};
\node[right,align=left] at (10.3,2.2) {\footnotesize W7cd};
% \pic at (10,2) {fouling_point_left_backward};
% \pic at (10,2) {fouling_point_left_forward};
\pic at (11,3) {turnout_left_forward};
\node[left,align=right] at (11,3.1) {\footnotesize W10};
% \pic at (11,3) {fouling_point_left_forward};
\pic at (19,4) {turnout_right_forward};
\node at (19,4.2) {\footnotesize W11};
% \pic at (19,4) {fouling_point_right_forward};
\pic at (20,4) {derailer_right_backward};
\node[right] at (20,3.8) {\footnotesize Gs12};
\pic at (20,3) {turnout_right_backward};
\node[right,align=left] at (20,3.1) {\footnotesize W13};
% \pic at (20,3) {fouling_point_right_backward};
\pic at (21,2) {turnout_right_backward};
\node[right,align=left] at (21,2.1) {\footnotesize W14};
% \pic at (21,2) {fouling_point_right_backward};
\pic at (22,1) {turnout_right_backward};
\node at (22,0.8) {\footnotesize W15};
% \pic at (22,1) {fouling_point_left_backward};
\pic at (23,1) {turnout_right_forward};
\node at (23,1.2) {\footnotesize W16};
% \pic at (23,1) {fouling_point_left_forward};
\pic at (23,0) {turnout_left_backward};
\node at (23,0.2) {\footnotesize W17};
% \pic at (23,0) {fouling_point_left_backward};
\pic at (24,0) {turnout_right_backward};
\node at (24,-0.2) {\footnotesize W18};
% \pic at (24,0) {fouling_point_left_backward};
\pic at (32,0) {turnout_right_forward};
\node at (32,0.2) {\footnotesize W19};
% \pic at (23,0) {fouling_point_right_forward};
\pic at (34. ,-1.5) {derailer_left_backward};
\node[right] at (34. ,-1.7) {\footnotesize Gs20};
\pic at (35,0) {turnout_left_forward};
\node at (35,-0.2) {\footnotesize W21};
% \pic at (35,0) {fouling_point_left_forward};
\pic at (36,1) {turnout_left_backward};
\node at (36,1.2) {\footnotesize W22};
% \pic at (36,1) {fouling_point_left_backward};
}
{ %% platforms
\pic at (26,0) {platform_right=6};
\pic at (26,1) {platform_left=6};
}
{ %% signals
\pic at ( 1,0) {route_signal_forward};
\node[left] at ( 1,-0.4) {A};
\pic at ( 1,1) {route_signal_forward};
\node[left] at ( 1, 0.6) {AA};
\pic at ( 3,0) {shunt_limit_backward};
\pic at ( 4,0) {shunt_signal_forward};
\node[left] at ( 4,-0.4) {W2X};
\pic at ( 4,1) {shunt_signal_forward};
\node[left] at ( 4, 0.6) {W1X};
\pic[rotate=-45] at (5.5,2.5) {shunt_signal_forward};
\node[left,rotate=-45] at (5.3,2.3) {W9X1};
\pic[rotate=-45] at (6. ,3. ) {shunt_signal_forward};
\node[left,rotate=-45] at (5.8,2.8) {W9X2};
\pic at (11,-1) {route_signal_backward};
\node[right] at (11,-0.6) {P10};
\pic at (11,0) {shunt_signal_backward};
\node[right] at (11, 0.4) {W5Y};
\pic at (11,1) {route_signal_backward};
\node[right] at (11, 1.4) {P12};
\pic at (12.5,2) {route_signal_backward};
\node[right] at (12.5, 2.4) {P13};
\pic at (13,3) {route_signal_backward};
\node[right] at (13, 3.4) {P14};
\pic at (13,4) {shunt_signal_backward};
\node[right] at (13, 4.4) {W10Y};
\pic at (18. , 4) {shunt_signal_forward};
\node[left] at (18, 3.6) {W11X};
\pic at (18.5, 3) {route_signal_forward};
\node[left] at (18.5, 2.6) {ZR14};
\pic at (19.5, 2) {route_signal_forward};
\node[left] at (19.5, 1.6) {ZR13};
\pic at (20.5, 1) {route_signal_forward};
\node[left] at (20.5, 0.6) {ZR12};
\pic at (20.5, 0) {route_signal_forward};
\node[left] at (20.5,-0.4) {ZR11};
\pic at (20.5,-1) {route_signal_forward};
\node[left] at (20.5,-1.4) {ZR10};
\pic at (21. , 4) {shunt_signal_backward};
\node[right] at (21. , 4.4) {W12Y};
\pic at (25. ,1) {route_signal_backward};
\node[right] at (25. , 1.4) {ZU2};
\pic at (25. ,0) {route_signal_backward};
\node[right] at (25. , 0.4) {ZU1};
\pic at (35. ,-1.5) {shunt_signal_backward};
\node[right] at (35. ,-1.1) {W20Y};
\pic at (33.5,0) {route_signal_forward};
\node[left] at (33.5,-0.4) {N1};
\pic at (33.5,1) {route_signal_forward};
\node[left] at (33.5, 0.6) {N2};
\pic at (37.5,1) {shunt_signal_backward};
\node[right] at (37.5,1.4) {W22Y};
\pic at (39.0,1) {shunt_limit_forward};
\pic at (41.0,0) {route_signal_backward};
\node[right] at (41.0, 0.4) {FF};
\pic at (41.0,1) {route_signal_backward};
\node[right] at (41.0, 1.4) {F};
}
{ %% hectometer posts
\tikzset{every node/.style={base00,rotate=-90},every path/.style={base00,dashed}};
% \draw (01.0,-0.85) -- ++(0,-0.7) node [right,align= left] {15.000};
}

Binary file not shown.

View File

@ -0,0 +1,21 @@
%!TEX TS-program = pdflatexmk
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\documentclass[tikz,border=2]{standalone}
\usepackage{lmodern}
\usepackage[prefix=]{xcolor-solarized}
\def\rootTrackschematic{../../tikz-trackschematic}
\def\srcTrackschematic{\rootTrackschematic/src}
\input{\srcTrackschematic/topology.tikz}
\input{\srcTrackschematic/trafficControl.tikz}
\input{\srcTrackschematic/constructions.tikz}
\begin{document}
\begin{tikzpicture}[font=\sffamily]
\input{station_pockelsdorf.tikz}
\end{tikzpicture}
\end{document}

View File

@ -0,0 +1,106 @@
%!TEX TS-program = pdflatexmk
%!TEX root = station_pockelsdorf.tex
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
%% coordinates
\coordinate (P2R) at ( 0, 0); % track to Rebenau
\coordinate (P2M) at ( 3,-4); % track to Mittelstadt
\coordinate (P2S) at (28, 0); % track to Schleinitz
{ %% stations
\tikzset{every node/.style={base00}};
\node[right,align=left] at ( 0, 1) {to and from\\ Rebenau};
\node[left,align=right] at ( 3,-3) {to and from\\ Mittelstadt};
\node at (13.5,3.3) {{\LARGE Pockelsdorf}};
\node[right,align=left] at (26.5,-1.5) {Sidings};
\node[left,align=right] at (28,1) {to and from\\ Schleinitz};
}
{ %% tracks
\draw[MainTrack] ( P2R) -- (P2S); % track 1
\draw[MainTrack] ( 5,0) -- ++(1,1) -- ++(14,0) -- ++(1,-1); % track 2
\draw[MainTrack] ( 7,1) -- ++(1,1) -- ++(11,0) -- ++(1,-1); % track 3
\draw[MainTrack] ( P2M) -- ++(5,5);
\draw[SideTrack] (22,0) -- ++(1.5,-1.5) -- ++(3,0); % track 10
}
{ %% track numbers
\node[fill=background] at (13.5, 0) { 1};
\node[fill=background] at (13.5, 1) { 2};
\node[fill=background] at (13.5, 2) { 3};
\node[fill=background] at (26. ,-1.5) {10};
}
{ %% bufferstops
% \pic at ( 9, 1) {bufferstop_backward};
}
{ %% turnouts
\pic at ( 5,0) {turnout_left_forward};
\node at ( 5,-0.2) {\footnotesize W1};
% \pic at ( 5,0) {fouling_point_left_forward};
\pic at ( 7,1) {turnout_left_forward};
\node at ( 7,0.8) {\footnotesize W2};
% \pic at ( 7,1) {fouling_point_left_forward};
\pic at ( 7,0) {turnout_left_forward};
\pic at ( 7,0) {turnout_left_backward};
\pic at ( 7,0) {slip_left_backward};
\node[left,align=right] at (6.7, 0.2) {\footnotesize W3ab};
\node[right,align=left] at (7.3,-0.2) {\footnotesize W3cd};
% \pic at ( 7,0) {fouling_point_left_forward};
% \pic at ( 7,0) {fouling_point_left_backward};
\pic at ( 8,1) {turnout_left_backward};
\node at ( 8,1.2) {\footnotesize W4};
% \pic at ( 8,1) {fouling_point_left_backward};
\pic at (20,1) {turnout_right_backward};
\node[right,align=left] at (19.9,1.2) {\footnotesize W5};
% \pic at (20,1) {fouling_point_left_backward};
\pic at (21,0) {turnout_right_backward};
\node at (21,-0.2) {\footnotesize W6};
% \pic at (21,0) {fouling_point_left_backward};
\pic at (22,0) {turnout_right_forward};
\node at (22,0.2) {\footnotesize W7};
% \pic at (22,0) {fouling_point_left_forward};
\pic at (24. ,-1.5) {derailer_left_backward};
\node[right,align=left] at (24. ,-1.7) {\footnotesize Gs10};
}
{ %% platforms
\pic at (10.5,0) {platform_right=6};
\pic at (10.5,1) {platform_left=6};
\pic at (10.5,2) {platform_right=6};
}
{ %% signals
\pic at ( 1,0) {route_signal_forward};
\node[left] at (1,-0.4) {A};
\pic at ( 3,0) {shunt_limit_backward};
\pic at ( 4,0) {shunt_signal_forward};
\node[left] at ( 4,-0.4) {W1X};
\pic[rotate=45] at (3.75,-3.25) {route_signal_forward};
\node[left,rotate=45] at (4.05,-3.55) {B};
\pic[rotate=45] at (5.25,-1.75) {shunt_limit_backward};
\pic[rotate=45] at (6 ,-1 ) {shunt_signal_forward};
\node[left,rotate=45] at (6.3,-1.3) {W3X};
\pic at (9.5,0) {route_signal_backward};
\node[right] at (9.5, 0.4) {P1};
\pic at (9.5,1) {route_signal_backward};
\node[right] at (9.5, 1.4) {P2};
\pic at (9.5,2) {route_signal_backward};
\node[right] at (9.5, 2.4) {P3};
\pic at (17.5,0) {route_signal_forward};
\node[left] at (17.5,-0.4) {N1};
\pic at (17.5,1) {route_signal_forward};
\node[left] at (17.5, 0.6) {N2};
\pic at (17.5,2) {route_signal_forward};
\node[left] at (17.5, 1.6) {N3};
\pic at (23.0,0) {shunt_signal_backward};
\node[right] at (23,0.4) {W7Y};
\pic at (25. ,-1.5) {shunt_signal_backward};
\node[right] at (25. ,-1.1) {W10Y};
\pic at (25.0,0) {shunt_limit_forward};
\pic at (27.0,0) {route_signal_backward};
\node[right] at (27.0, 0.4) {G};
}
{ %% hectometer posts
\tikzset{every node/.style={base00,rotate=-90},every path/.style={base00,dashed}};
% \draw (01.0,-0.85) -- ++(0,-0.7) node [right,align= left] {15.000};
}

Binary file not shown.

View File

@ -0,0 +1,217 @@
%!TEX TS-program = pdflatexmk
%!TEX root = station_rebenau.tex
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
%% coordinates
\coordinate (R2W-1) at ( 0,0); % track 1 to Wenden
\coordinate (R2W-2) at ( 0,1); % track 2 to Wenden
\coordinate (R2P) at (42,4); % track to Pockelsdorf
\coordinate (R2O-1) at (42,0); % track 1 to Okerbach
\coordinate (R2O-2) at (42,1); % track 2 to Okerbach
{ %% stations
\tikzset{every node/.style={base00}};
\node[right,align=left] at ( 0,2) {to and from\\ Wenden};
\node[left,align=right] at ( 8,4.0) {Sidings};
\node at (22.5,6.3) {{\LARGE Rebenau}};
\node[left,align=right] at (42,2) {to and from\\ Okerbach};
\node[left,align=right] at (42,5) {to and from\\ Pockelsdorf};
}
{ %% tracks
\draw[MainTrack] (R2W-1) -- (R2O-1); % track 1
\draw[MainTrack] ( 5, 0) -- ++( 1, 1);
\draw[MainTrack] (R2W-2) -- ++( 8, 0) -- ++(2,2) -- ++(26,0) -- ++(2,-2) -- (R2O-2); % track 3
\draw[SideTrack] ( 9, 1) -- ++( 6, 0); % track 21
\draw[SideTrack] ( 8, 4) -- ++( 7, 0); % track 41
\draw[SideTrack] (12, 4) -- ++( 1,-1);
\draw[MainTrack] (14, 3) -- (15, 4) -- (R2P); % track 4
\draw[MainTrack] (14, 0) -- ++( 1, 1) -- ++(18, 0); % track 2
\draw[MainTrack] (15, 3) -- ++( 2,-2);
\draw[MainTrack] (16, 4) -- (17, 5) -- (29, 5) -- ++(5,-5); % track 5
\draw[MainTrack] (28, 1) -- ++( 1, 1) -- ++( 5, 0) -- ++(2, 2);
\draw[SideTrack] (26, 5) -- ++( 1, 1) -- ++( 3, 0); % track 51
}
{ %% track numbers
\node[fill=background] at ( 9.0, 4) {41};
\node[fill=background] at (10.0, 1) {21};
\node[fill=background] at (22.5, 0) { 1};
\node[fill=background] at (22.5, 1) { 2};
\node[fill=background] at (22.5, 3) { 3};
\node[fill=background] at (22.5, 4) { 4};
\node[fill=background] at (22.5, 5) { 5};
\node[fill=background] at (29.0, 6) {51};
}
{ %% bufferstops
\pic at ( 9, 1) {bufferstop_backward};
\pic at (30, 6) {bufferstop_forward};
}
{ %% turnouts
\pic at ( 5,0) {turnout_left_forward};
\node at ( 5,-0.2) {\footnotesize W1};
% \pic at ( 5,0) {fouling_point_left_forward};
\pic at ( 6,1) {turnout_left_backward};
\node at ( 6,1.2) {\footnotesize W2};
% \pic at ( 6,1) {fouling_point_left_backward};
\pic at (11,4) {derailer_left_forward};
\node[left,align=right] at (11.1,4.2) {\footnotesize Gs41};
\pic at (12,4) {turnout_right_forward};
\node at (12,4.2) {\footnotesize W3};
% \pic at (12,4) {fouling_point_right_forward};
\pic at (13,3) {turnout_right_backward};
\node at (13,2.8) {\footnotesize W4};
% \pic at (13,3) {fouling_point_right_backward};
\pic at (14,3) {turnout_left_forward};
\node at (14,2.8) {\footnotesize W5};
% \pic at (14,3) {fouling_point_left_forward};
\pic at (15,4) {turnout_left_backward};
\node at (15,4.2) {\footnotesize W6};
% \pic at (15,4) {fouling_point_left_backward};
\pic at (14,0) {turnout_left_forward};
\node at (14,-0.2) {\footnotesize W10};
% \pic at (14.0,0) {fouling_point_left_forward};
\pic at (15,1) {turnout_left_backward};
\node at (15,1.2) {\footnotesize W11};
% \pic at (15,1) {fouling_point_left_backward};
\pic at (14,1) {derailer_left_forward};
\node[left,align=right] at (14.1,1.2) {\footnotesize Gs21};
\pic at (15,3) {turnout_right_forward};
\node at (15,3.2) {\footnotesize W8};
% \pic at (15,3) {fouling_point_right_forward};
\pic at (16,4) {turnout_left_forward};
\node at (16,3.8) {\footnotesize W7};
% \pic at (16,4) {fouling_point_left_forward};
\pic at (17,1) {turnout_right_backward};
\node at (17,0.8) {\footnotesize W9};
% \pic at (17,1) {fouling_point_right_backward};
\pic at (28,1) {turnout_left_forward};
\node at (28,0.8) {\footnotesize W15};
% \pic at (28,1) {fouling_point_left_forward};
\pic at (26,5) {turnout_left_forward};
\node at (26,4.8) {\footnotesize W12};
% \pic at (28,5) {fouling_point_right_forward};
\pic [rotate=45] at (26.7,5.7) {derailer_right_backward};
\node[right,align=left] at (26.8,5.6) {\footnotesize Gs51};
\pic at (30,4) {turnout_right_forward};
\pic at (30,4) {turnout_right_backward};
\pic at (30,4) {slip_right_forward};
\pic at (30,4) {slip_right_backward};
\node[left,align=right] at (29.7,4.2) {\footnotesize W13ab};
\node[right,align=left] at (30.3,3.8) {\footnotesize W13cd};
% \pic at (30,4) {fouling_point_right_backward};
% \pic at (30,4) {fouling_point_right_forward};
\pic at (31,3) {turnout_right_forward};
\pic at (31,3) {turnout_right_backward};
\pic at (31,3) {slip_right_forward};
\pic at (31,3) {slip_right_backward};
\node[left,align=right] at (30.7,3.2) {\footnotesize W14ab};
\node[right,align=left] at (31.3,2.8) {\footnotesize W14cd};
% \pic at (31,3) {fouling_point_right_backward};
% \pic at (31,3) {fouling_point_right_forward};
\pic at (32,2) {turnout_right_forward=none};
\pic at (32,2) {turnout_right_backward=none};
\node[right,align=left] at (31.9,2.2) {\footnotesize K16};
% \pic at (32,2) {fouling_point_right_backward};
% \pic at (32,2) {fouling_point_right_forward};
\pic at (33,1) {turnout_right_backward};
\node[right,align=left] at (32.9,1.2) {\footnotesize W17};
% \pic at (33,1) {fouling_point_right_backward};
\pic at (34,0) {turnout_right_backward};
\node at (34,-0.2) {\footnotesize W18};
% \pic at (34,0) {fouling_point_right_backward};
\pic at (35,3) {turnout_left_forward};
\pic at (35,3) {turnout_left_backward};
\pic at (35,3) {slip_left_forward};
\pic at (35,3) {slip_left_backward};
\node[left,align=right] at (34.7,2.8) {\footnotesize W19ab};
\node[right,align=left] at (35.3,3.2) {\footnotesize W19cd};
% \pic at (35,3) {fouling_point_left_backward};
% \pic at (35,3) {fouling_point_left_forward};
\pic at (36,4) {turnout_left_backward};
\node at (36,4.2) {\footnotesize W20};
% \pic at (36,4) {fouling_point_left_backward};
}
{ %% platforms
\pic at (19.5,0) {platform_right=6};
\pic at (19.5,1) {platform_left=6};
\pic at (19.5,3) {platform_right=6};
}
{ %% signals
\pic at ( 1,0) {route_signal_forward};
\node[left] at (1,-0.4) {A};
\pic at ( 1,1) {route_signal_forward};
\node[left] at (1, 0.6) {AA};
\pic at ( 3,0) {shunt_limit_backward};
\pic at ( 4,0) {shunt_signal_forward};
\node[left] at ( 4,-0.4) {W1X};
\pic at ( 7,1) {shunt_signal_backward};
\node[right] at ( 7, 1.4) {W2Y};
\pic at ( 7,0) {shunt_signal_backward};
\node[right] at ( 7, 0.4) {W1Y};
\pic at (11,3) {shunt_signal_forward};
\node[left] at (11, 2.6) {W4X};
\pic at (10,4) {shunt_signal_forward};
\node[left] at (10, 3.6) {41X};
\pic at (13,0) {shunt_signal_forward};
\node[left] at (13,-0.4) {W10X};
\pic at (13,1) {shunt_signal_forward};
\node[left] at (13, 0.6) {21X};
\pic at (18.5,0) {route_signal_backward};
\node[right] at (18.5, 0.4) {P1};
\pic at (18.5,1) {route_signal_backward};
\node[right] at (18.5, 1.4) {P2};
\pic at (18.5,3) {route_signal_backward};
\node[right] at (18.5, 3.4) {P3};
\pic at (18.5,4) {route_signal_backward};
\node[right] at (18.5, 4.4) {P4};
\pic at (18.5,5) {route_signal_backward};
\node[right] at (18.5, 5.4) {P5};
\pic at (24.5,5) {route_signal_forward};
\node[left] at (24.5, 4.6) {N5};
\pic at (26.5,1) {route_signal_forward};
\node[left] at (26.5, 0.6) {N2};
\pic at (26.5,3) {route_signal_forward};
\node[left] at (26.5, 2.6) {N3};
\pic at (26.5,4) {route_signal_forward};
\node[left] at (26.5, 3.6) {N4};
\pic at (27.5,6) {shunt_signal_backward};
\node[right] at ( 27.5, 6.4) {51Y};
\pic at (30.0,0) {route_signal_forward};
\node[left] at (30.0,-0.4) {N1};
\pic at (35.0,0) {shunt_signal_backward};
\node[right] at ( 35, 0.4) {W18Y};
\pic[rotate=-45] at (36.8,2.2) {shunt_signal_backward};
\node[right,rotate=-45] at ( 37.0, 2.5) {W19Y};
\pic at (37.0,4) {shunt_signal_backward};
\node[right] at ( 37, 4.4) {W20Y};
\pic at (39.0,1) {shunt_limit_forward};
\pic at (39.0,4) {shunt_limit_forward};
\pic at (41.0,0) {route_signal_backward};
\node[right] at (41.0, 0.4) {FF};
\pic at (41.0,1) {route_signal_backward};
\node[right] at (41.0, 1.4) {F};
\pic at (41.0,4) {route_signal_backward};
\node[right] at (41.0, 4.4) {G};
}
{ %% hectometer posts
\tikzset{every node/.style={base00,rotate=-90},every path/.style={base00,dashed}};
\draw (01.0,-0.85) -- ++(0,-0.7) node [right,align= left] {15.000};
\draw (14.5,-0.85) -- ++(0,-0.7) node [right,align= left] {15.800};
\draw (14.5, 4.35) -- ++(0, 1.2) node [ left,align=right] {15.800};
\draw (15.8,-0.35) -- ++(0,-1.2) node [right,align= left] {15.900};
\draw (15.8, 4.35) -- ++(0, 1.2) node [ left,align=right] {15.900};
\draw (18.5,-0.35) -- ++(0,-1.2) node [right,align= left] {16.000};
\draw (22.5,-0.85) -- ++(0,-0.7) node [right,align= left] {16.300};
\draw (24.5, 5.35) -- ++(0, 0.7) node [ left,align=right] {16.400};
\draw (26.5,-0.35) -- ++(0,-1.2) node [right,align= left] {16.500};
\draw (30.0,-0.85) -- ++(0,-0.7) node [right,align= left] {16.600};
\draw (30.0, 6.35) -- ++(0, 0.3) node [ left,align=right] {16.600};
\draw (30.0, 4.75) -- ++(0, 0.7);
\draw (31.5,-0.85) -- ++(0,-0.7) node [right,align= left] {16.700};
\draw (31.5, 4.35) -- ++(0, 0.7) node [ left,align=right] {16.700};
\draw (33.3,-0.35) -- ++(0,-1.2) node [right,align= left] {16.800};
\draw (41.0,-0.35) -- ++(0,-1.2) node [right,align= left] {17.200};
}

Binary file not shown.

View File

@ -0,0 +1,21 @@
%!TEX TS-program = pdflatexmk
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\documentclass[tikz,border=2]{standalone}
\usepackage{lmodern}
\usepackage[prefix=]{xcolor-solarized}
\def\rootTrackschematic{../../tikz-trackschematic}
\def\srcTrackschematic{\rootTrackschematic/src}
\input{\srcTrackschematic/topology.tikz}
\input{\srcTrackschematic/trafficControl.tikz}
\input{\srcTrackschematic/constructions.tikz}
\begin{document}
\begin{tikzpicture}[font=\sffamily]
\input{station_schleinitz.tikz}
\end{tikzpicture}
\end{document}

View File

@ -0,0 +1,172 @@
%!TEX TS-program = pdflatexmk
%!TEX root = station_schleinitz.tex
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
%% coordinates
\coordinate (S2O-1) at ( 0, 0); % track 1 to Okerbach
\coordinate (S2O-2) at ( 0, 1); % track 2 to Okerbach
\coordinate (S2P) at ( 0,-4); % track to Pockelsdorf
\coordinate (S2SB-1) at (44, 0); % track 1 to Schlossberg
\coordinate (S2SB-2) at (44, 1); % track 2 to Schlossberg
{ %% stations
\tikzset{every node/.style={base00}};
\node[right,align=left] at ( 0,2) {to and from\\ Okerbach};
% \node[left,align=right] at ( 8,4.0) {Sidings};
\node at ( 5.0,3.3) {{\LARGE Abzw Bülten}};
\node at (30.0,5.3) {{\LARGE Schleinitz}};
\node[left,align=right] at (44,2) {to and from\\ Schlossberg};
\node[left,align=right,rotate=45] at (2,-1) {to and from\\ Pockelsdorf};
}
{ %% tracks
\draw[MainTrack] (S2O-1) -- (S2SB-1); % track 2
\draw[MainTrack] (S2O-2) -- (S2SB-2); % track 3
\draw[MainTrack] (S2P) -- ++( 4, 4); % track to pockelsdorf
\draw[MainTrack] ( 5, 0) -- ++( 1, 1); % track W2/W3
\draw[MainTrack] (16, 1) -- ++( 1,-1); % track W4/W5
\draw[MainTrack] (18, 0) -- ++( 1, 1); % track W6/W7
\draw[SideTrack] (23, 2) -- ++( -5, 0); % track 41
\draw[MainTrack] (22, 0) -- ++( 1,-1) -- ++(13. ,0) -- ++( 1. , 1); % track 1
\draw[MainTrack] (22, 1) -- ++( 1, 1) -- ++(13. ,0) -- ++( 1. ,-1); % track 4
\draw[SideTrack] (24, 2) -- ++( 1, 1) -- ++(10. ,0) -- ++( 1. ,-1); % track 5
\draw[SideTrack] (36,-1) -- ++( 5, 0); % track 11
\draw[MainTrack] (38, 1) -- ++( 1,-1); % track W18/W19
}
{ %% track numbers
\node[fill=background] at (19.0, 2) {41};
\node[fill=background] at (30.0,-1) { 1};
\node[fill=background] at (30.0, 0) { 2};
\node[fill=background] at (30.0, 1) { 3};
\node[fill=background] at (30.0, 2) { 4};
\node[fill=background] at (30.0, 3) { 5};
\node[fill=background] at (40.0,-1) {11};
}
{ %% bufferstops
\pic at ( 18, 2) {bufferstop_backward};
\pic at ( 41,-1) {bufferstop_forward};
}
{ %% turnouts
\pic at ( 4,0) {turnout_left_backward};
\node at ( 4,0.2) {\footnotesize W1};
% \pic at ( 4,0) {fouling_point_left_backward};
\pic at ( 5,0) {turnout_left_forward};
\node at ( 5,-0.2) {\footnotesize W2};
% \pic at ( 5,0) {fouling_point_left_forward};
\pic at ( 6,1) {turnout_left_backward};
\node at ( 6,1.2) {\footnotesize W3};
% \pic at ( 6,1) {fouling_point_left_backward};
\pic at (16,1) {turnout_right_forward};
\node at (16,1.2) {\footnotesize W4};
% \pic at (16,1) {fouling_point_right_forward};
\pic at (17,0) {turnout_right_backward};
\node at (17,-0.2) {\footnotesize W5};
% \pic at (17,0) {fouling_point_right_backward};
\pic at (18,0) {turnout_left_forward};
\node at (18,-0.2) {\footnotesize W6};
% \pic at (18,0) {fouling_point_left_forward};
\pic at (19,1) {turnout_left_backward};
\node at (19,1.2) {\footnotesize W7};
% \pic at (19,1) {fouling_point_left_backward};
\pic at (22,0) {turnout_right_forward};
\node at (22,0.2) {\footnotesize W8};
% \pic at (22,0) {fouling_point_right_forward};
\pic at (22,1) {turnout_left_forward};
\node at (22,0.8) {\footnotesize W9};
% \pic at (22,1) {fouling_point_left_forward};
\pic at (22,2) {derailer_left_forward};
\node[left,align=right] at (22,1.8) {\footnotesize Gs10};
\pic at (23,2) {turnout_left_backward};
\node at (23,2.2) {\footnotesize W11};
% \pic at (23,2) {fouling_point_left_backward};
\pic at (24,2) {turnout_left_forward};
\node at (24,1.8) {\footnotesize W12};
% \pic at (24,2) {fouling_point_left_forward};
\pic at (36,-1) {turnout_left_forward};
\node at (36,-1.2) {\footnotesize W13};
% \pic at (36,-1) {fouling_point_left_forward};
\pic at (36,2) {turnout_right_backward};
\node[right,align=left] at (35.9,2.2) {\footnotesize W14};
% \pic at (17,0) {fouling_point_right_backward};
\pic at (37,1) {turnout_right_backward};
\node at (37,0.8) {\footnotesize W17};
% \pic at (37,1) {fouling_point_right_backward};
\pic at (37,0) {turnout_left_backward};
\node at (37,0.2) {\footnotesize W16};
% \pic at (37,0) {fouling_point_left_backward};
\pic at (37,-1) {derailer_left_backward};
\node[right,align=left] at (37,-1.2) {\footnotesize Gs15};
\pic at (38,1) {turnout_right_forward};
\node at (38,1.2) {\footnotesize W18};
% \pic at (38,1) {fouling_point_right_forward};
\pic at (39,0) {turnout_right_backward};
\node at (39,-0.2) {\footnotesize W19};
% \pic at (39,0) {fouling_point_right_backward};
}
{ %% platforms
\pic at (27,0) {platform_left=6};
\pic at (27,1) {platform_right=6};
}
{ %% signals
\pic at ( 2,0) {route_signal_forward};
\node[left] at (2,-0.4) {19};
\pic at ( 2,1) {route_signal_forward};
\node[left] at (2, 0.6) {39};
\pic[rotate=45] at (2.25,-1.75) {route_signal_forward};
\node[left,rotate=45] at (2.5,-2.0) {49};
\pic at ( 8,0) {route_signal_backward};
\node[right] at (8, 0.4) {20};
\pic at ( 8,1) {route_signal_backward};
\node[right] at (8, 1.4) {30};
\pic at (12,0) {route_signal_forward};
\node[left] at (12,-0.4) {A};
\pic at (12,1) {route_signal_forward};
\node[left] at (12, 0.6) {AA};
\pic at (14,0) {shunt_limit_backward};
\pic at (15,0) {shunt_signal_forward};
\node[left] at (15,-0.4) {W5X};
\pic at (15,1) {shunt_signal_forward};
\node[left] at (15, 0.6) {W4X};
\pic at (21,1) {shunt_signal_forward};
\node[left] at (21, 0.6) {W9X};
\pic at (20.5,2) {shunt_signal_forward};
\node[left] at (20.5, 1.6) {W10X};
\pic at (24,-1) {route_signal_backward};
\node[right] at (24,-0.6) {P1};
\pic at (24, 0) {route_signal_backward};
\node[right] at (24, 0.4) {P2};
\pic at (26, 1) {route_signal_backward};
\node[right] at (26, 1.4) {P3};
\pic at (26, 2) {route_signal_backward};
\node[right] at (26, 2.4) {P4};
\pic at (26, 3) {shunt_signal_backward};
\node[right] at (26, 3.4) {W12Y};
\pic at (34, 3) {shunt_signal_forward};
\node[left] at (34, 2.6) {W14X};
\pic at (34, 2) {route_signal_forward};
\node[left] at (34, 1.6) {N4};
\pic at (34, 1) {route_signal_forward};
\node[left] at (34, 0.6) {N3};
\pic at (34, 0) {route_signal_forward};
\node[left] at (34,-0.4) {N2};
\pic at (34,-1) {route_signal_forward};
\node[left] at (34,-1.4) {N1};
\pic at (38,-1) {shunt_signal_backward};
\node[right] at (38,-0.6) {W15Y};
\pic at (40,0) {shunt_signal_backward};
\node[right] at (40,0.4) {W18Y};
\pic at (40,1) {shunt_signal_backward};
\node[right] at (40,1.4) {W19Y};
\pic at (41.5,1) {shunt_limit_forward};
\pic at (43.5,0) {route_signal_backward};
\node[right] at (43.5, 0.4) {FF};
\pic at (43.5,1) {route_signal_backward};
\node[right] at (43.5, 1.4) {F};
}
{ %% hectometer posts
\tikzset{every node/.style={base00,rotate=-90},every path/.style={base00,dashed}};
% \draw (01.0,-0.85) -- ++(0,-0.7) node [right,align= left] {15.000};
}

Binary file not shown.

View File

@ -7,8 +7,9 @@
\usepackage[margin=0pt]{geometry}
\pagestyle{empty}
\usepackage{longtable}
\usepackage{tikz}
\usepackage{tabu,longtable}
\usepackage{tikz,adjustbox}
\usepackage{siunitx}
\usepackage{listings}
\lstset{
language=TeX,
@ -22,10 +23,10 @@
\renewcommand{\symbol}[1]{
\begin{tikzpicture}[anchor=base,baseline=-3]
\adjustbox{valign=c}{\begin{tikzpicture}[scale=1.0,transform shape]
\input{examples/snippets/#1}
\path (-3,-1.2) rectangle (3,1.2); % background rectangle to unify every cell containing a symbol
\end{tikzpicture}
\path (-3,-1.1) rectangle (3,1.1); % background rectangle to unify every cell containing a symbol
\end{tikzpicture}}
}
\newcommand{\code}[1]{\lstinputlisting[firstline=7]{\rootTrackschematic/examples/snippets/#1}}
\newcommand{\colorsquare}[1]{
@ -43,7 +44,7 @@
\begin{document}
\centering
\begin{longtable}{|r|l|c|l|c|}
\begin{longtabu}{|r|l|c|l|c|}
\hline
No. & Name & Symbol & Code & File \\
\endhead
@ -51,8 +52,13 @@
\No & main track & \symbol{main_track.tikz} & \code{main_track.tikz} & \texttt{topology.tikz} \\
\hline
\No & main line (double track) & \symbol{main_line.tikz} & \code{main_line.tikz} & \texttt{topology.tikz} \\
\hline
\No & track distance (in \si{\metre}) & \symbol{track_distance.tikz} & \code{track_distance.tikz} & \texttt{topology.tikz} \\
\hline
\No & side track & \symbol{side_track.tikz} & \code{side_track.tikz} & \texttt{topology.tikz} \\
\hline
\No & track number & \symbol{track_number.tikz} & \code{track_number.tikz}
& \texttt{topology.tikz} \\
\hline
\No & turnout left (forward) & \symbol{turnout_left_forward.tikz} & \code{turnout_left_forward.tikz} & \texttt{topology.tikz} \\
\hline
@ -151,6 +157,9 @@
\No & route signal (forward) & \symbol{route_signal_forward.tikz} & \code{route_signal_forward.tikz} & \texttt{trafficControl.tikz} \\
\hline
\No & route signal (backward) & \symbol{route_signal_backward.tikz} & \code{route_signal_backward.tikz} & \texttt{trafficControl.tikz} \\
\hline
\No & \parbox[c]{4cm}{combined signal\\(distant and block signal)}
& \symbol{combined_signal_forward.tikz} & \code{combined_signal_forward.tikz} & \texttt{trafficControl.tikz} \\
\hline
\No & shunt signal (forward) & \symbol{shunt_signal_forward.tikz} & \code{shunt_signal_forward.tikz} & \texttt{trafficControl.tikz} \\
\hline
@ -206,5 +215,9 @@
\No & \parbox[c]{5cm}{bridge\\with track beneath}
& \symbol{bridge_track_beneath.tikz} & \code{bridge_track_beneath.tikz} & \texttt{constructions.tikz} \\
\hline
\end{longtable}
\No & hump & \symbol{hump.tikz} & \code{hump.tikz} & \texttt{constructions.tikz} \\
\hline
\No & interlocking & \symbol{interlocking.tikz} & \code{interlocking.tikz} & \texttt{constructions.tikz} \\
\hline
\end{longtabu}
\end{document}

View File

@ -70,3 +70,34 @@
},
pics/bridge_right/.default=3,
}
\tikzset{
interlocking/.pic={
{
\path[draw, line width=1pt] (-0.6,-0.4 ) rectangle ++(1.2,0.8); % building
\path[draw, fill] (-0.5,-0.3 ) rectangle ++(1.0,0.2); % table
\path[draw, fill] ( 0 , 0.15) circle (0.15); % human dot
}
};
}
\tikzset{
hump/.pic={
{ % upper side
\path[draw, line width=0.75pt] (-0.3, 0.1) -- ++(0,0.05);
\path[draw, line width=0.75pt] (-0.2, 0.1) -- ++(0,0.15);
\path[draw, line width=0.75pt] (-0.1, 0.1) -- ++(0,0.25);
\path[draw, line width=0.75pt] ( 0.0, 0.1) -- ++(0,0.35);
\path[draw, line width=0.75pt] ( 0.1, 0.1) -- ++(0,0.25);
\path[draw, line width=0.75pt] ( 0.2, 0.1) -- ++(0,0.15);
\path[draw, line width=0.75pt] ( 0.3, 0.1) -- ++(0,0.05);
% lower side
\path[draw, line width=0.75pt] (-0.3,-0.1) -- ++(0,-0.05);
\path[draw, line width=0.75pt] (-0.2,-0.1) -- ++(0,-0.15);
\path[draw, line width=0.75pt] (-0.1,-0.1) -- ++(0,-0.25);
\path[draw, line width=0.75pt] ( 0.0,-0.1) -- ++(0,-0.35);
\path[draw, line width=0.75pt] ( 0.1,-0.1) -- ++(0,-0.25);
\path[draw, line width=0.75pt] ( 0.2,-0.1) -- ++(0,-0.15);
\path[draw, line width=0.75pt] ( 0.3,-0.1) -- ++(0,-0.05);
}
};
}

View File

@ -24,8 +24,8 @@
\tikzset{
pics/colon/.style args={#1}{
code={
\path[draw,line width=1pt,fill=white] (-0.1,0) circle (0.1);
\path[draw,line width=1pt,fill=white] ( 0.1,0) circle (0.1);
\path[draw,line width=1pt,fill=background] (-0.1,0) circle (0.1);
\path[draw,line width=1pt,fill=background] ( 0.1,0) circle (0.1);
\node at (0,-0.3) {#1};
}
},
@ -34,56 +34,56 @@
\tikzset{
pics/connexity/.style args={#1/#2}{
code={
\draw [#1,line width=#2,rounded corners=8pt,fill=white] (-0.5,-0.3) rectangle (0.5,0.3);
\draw [#1,line width=#2,rounded corners=8pt,fill=background] (-0.5,-0.3) rectangle (0.5,0.3);
}
},
pics/connexity/.default=blue/1pt,
}
\tikzset{
approach/.pic={
\path[draw, fill=white] (0,-0.1) -- ++(0.1,0.2) -- ++(-0.2,0) -- cycle; % triangle shape
\path[draw, fill=background] (0,-0.1) -- ++(0.1,0.2) -- ++(-0.2,0) -- cycle; % triangle shape
};
}
\tikzset{
tee/.pic={
\path[draw, fill=black] (0,0) circle (0.05);
\path[draw, fill] (0,0) circle (0.05);
};
}
\tikzset{
block_start/.pic={
\path[draw, fill=white] (-0.1,-0.1) rectangle ++(0.2,0.2);
\path[draw, fill=background] (-0.1,-0.1) rectangle ++(0.2,0.2);
};
}
\tikzset{
block_clearing/.pic={
\path[draw, fill=white] (-0.1,-0.1) rectangle ++(0.2,0.2);
\path[draw, fill=background] (-0.1,-0.1) rectangle ++(0.2,0.2);
\path[draw] (-0.1,-0.1) -- ++(0.2,0.2);
};
}
\tikzset{
route_start/.pic={
\path[draw, fill=white] (0,0) circle (0.1);
\path[draw, fill=background] (0,0) circle (0.1);
};
}
\tikzset{
route_clearing/.pic={
\path [draw, fill=white] (0,0) circle (0.1);
\path [draw, fill=background] (0,0) circle (0.1);
\draw (-0.07,-0.07) -- ++(0.14,0.14);
};
}
\tikzset{
block_end/.pic={
\path[draw, fill=white] (0,-0.1) -- ++(0.1,0.1) -- ++(-0.1,0.1) -- ++(-0.1,-0.1) -- cycle;
\path[draw, fill=background] (0,-0.1) -- ++(0.1,0.1) -- ++(-0.1,0.1) -- ++(-0.1,-0.1) -- cycle;
};
}
\tikzset{
flank_protection/.pic={
\path[draw, fill=white] (0:0.1) arc (0:180:0.1) -- cycle;
\path[draw, fill=background] (0:0.1) arc (0:180:0.1) -- cycle;
};
}
\tikzset{
train_berth/.pic={
\path[draw, fill=white] (-0.1,-0.15) rectangle ++(0.2,0.3);
\path[draw, fill=background] (-0.1,-0.15) rectangle ++(0.2,0.3);
\path[draw, line width=0.75pt] (-0.05,-0.1) -- ++(0 ,0.2);
\path[draw, line width=0.75pt] (-0.05, 0 ) -- ++(0.1,0 );
\path[draw, line width=0.75pt] ( 0.05,-0.1) -- ++(0 ,0.2);

View File

@ -0,0 +1,251 @@
%% library for drawing time distance diagrams
%
% Copyright 2018 Martin Scheidt (ISC license)
%
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\RequirePackage{etoolbox,tikz}
\usetikzlibrary{calc}
%%% --[ USAGE ]-- %%%
%% assumption: • acceleration curve ends at Block
%%% -- first, define infrastructure and setting:
% % infrastructure x-axis position
% \def\StationA{0}
% \def\BkOne{2}
% \def\BkTwo{4}
% \def\BkCThree{6}
% \def\StationB{8}
% % OPTIONs 1: infrastructure settings
% \def\SightingDistance{0.1}
% \def\ApproachDistance{0.3}
% \def\ClearingDistance{0.4}
% \def\InterlockingTime{0.1}
% \def\Latency{0.1}
% % OPTIONs 2: diagramm settings
% \toggletrue{blockingTime}
% \toggletrue{trainMarker}
% \togglefalse{blockingTimeParts}
% \togglefalse{DEBUG}
% \toggletrue{blockingTimeFill}
%% -- second, define driving regime and train:
% % driving regime
% \def\Segments{\StationA/\BkOne/\ModeAcceleration, \BkOne/\BkTwo/\ModeCoasting, \BkTwo/\BkThree/\ModeCoasting, \BkThree/\StationB/\ModeDeceleration}
% % train with #1 speed, #2 acceleration, #3 deceleration, #4 train length
% \pic at (0,-2.8) {train_path=4.0/0.5/0.5/1.0};
% % infrastructure defaults
\def\SightingDistance{0.4}
\def\ApproachDistance{1.0}
\def\ClearingDistance{0.2}
\def\InterlockingTime{0.1}
\def\Latency{0.1}
%
\def\Segments{}
\def\ModeCoasting{Coasting} % Default
\def\ModeAcceleration{Acceleration}
\def\ModeDeceleration{Deceleration}
\edef\mCoast{\ModeCoasting} % synonym
\edef\mAcc{\ModeAcceleration} % synonym
\edef\mDec{\ModeDeceleration} % synonym
%
\newtoggle{DEBUG}
\newtoggle{blockingTime}
\newtoggle{blockingTimeParts}
\newtoggle{trainMarker}
\newtoggle{blockingTimeFill}
\newtoggle{StartStopMarker}
\newtoggle{Acceleration}
\newtoggle{Coasting}
\newtoggle{Deceleration}
%
\settoggle{DEBUG}{false}
\settoggle{blockingTime}{true}
\settoggle{trainMarker}{true}
\settoggle{blockingTimeParts}{false}
\settoggle{blockingTimeFill}{true}
\settoggle{StartStopMarker}{true}
\settoggle{Acceleration}{false}
\settoggle{Coasting}{true}
\settoggle{Deceleration}{false}
\newcounter{stationNum}
\def\StationNum{\stepcounter{stationNum}\Alph{stationNum}}
\newcounter{blockNum}
\def\BlockNum{\stepcounter{blockNum}\stepcounter{blockNum}\arabic{blockNum}}
\setcounter{stationNum}{0}
\setcounter{blockNum}{0}
\newcommand\ifTrainRun{\expandafter\ifdefstrequal\expandafter}
% DEBUG
\iftoggle{DEBUG}{
\newcommand\xcoord[2][center]{{%
\pgfpointanchor{#2}{#1}%
\pgfmathparse{\pgf@x/\pgf@xx}%
\pgfmathprintnumber{\pgfmathresult}%
}}
\newcommand\ycoord[2][center]{{%
\pgfpointanchor{#2}{#1}%
\pgfmathparse{\pgf@y/\pgf@yy}%
\pgfmathprintnumber{\pgfmathresult}%
}}
}
\tikzset{
pics/train_path/.style args={#1/#2/#3/#4}{
code={
% settings
\def\Speed{#1}
\def\Accel{#2}
\def\Decel{#3}
\def\TrainLength{#4}
\foreach \PositionA/\PositionB/\mode in \Segments {
% test for running direction
\newdimen\dimPosA %You can not use floating variables. Use dimens instead
\dimPosA = \PositionA cm % expand variable to \dimexpr for test \ifdimcomp{\dimexpr}{<}{\dimexpr}{⟨true⟩}{⟨false⟩}
\newdimen\dimPosB
\dimPosB = \PositionB cm % expand variable to \dimexpr for test \ifdimcomp{\dimexpr}{<}{\dimexpr}{⟨true⟩}{⟨false⟩}
\ifdimcomp{\dimPosA}{<}{\dimPosB}{
\def\Run{-1} % train running from left to right
}{
\def\Run{1} % train running from right to left
}
% blocking time top part
\coordinate (basePosA) at ($(\PositionA,0) + ( 0,\Run*\PositionA*\Speed^-1)$);
\coordinate (basePosB) at ($(basePosA) + (\PositionB-\PositionA,0)$);
\coordinate (egressPosB) at ($(\PositionB,0) + ( 0,\Run*\PositionB*\Speed^-1)$);
\coordinate (egressPosA) at ($(egressPosB) + (\PositionA-\PositionB,0)$);
\ifTrainRun{\mode}{\ModeAcceleration}{
% mode acceleration
\coordinate (entryPosA) at ($(basePosA) + 2*\Speed^-1*(0,\Accel^-1)$);
\coordinate (entryPosB) at ($(entryPosA) + (\PositionB-\PositionA,0)$);
\coordinate (entryVector) at ($(entryPosA)!0.75!(basePosA)$);
\coordinate (egressVector) at ($(basePosA)!0.25!(egressPosB)$);
\coordinate (sightingPosA) at ($(entryPosA) + ( 0,\Latency)$);
}{
% mode coasting & deceleration
\coordinate (approachPosA) at ($(basePosA) + ( 0,\ApproachDistance*\Speed^-1)$);
\coordinate (approachPosB) at ($(approachPosA)+ (\PositionB-\PositionA,0)$);
\coordinate (sightingPosA) at ($(approachPosA)+ ( 0,\SightingDistance*\Speed^-1)$);
}
\coordinate (sightingPosB) at ($(sightingPosA)+ (\PositionB-\PositionA,0)$);
\coordinate (beginPosA) at ($(sightingPosA)+ ( 0,\InterlockingTime)$);
\coordinate (beginPosB) at ($(beginPosA) + (\PositionB-\PositionA,0)$);
% blocking time bottom part
\ifTrainRun{\mode}{\ModeDeceleration}{
% mode deceleration
\coordinate (exitPosB) at ($(egressPosB) + 2*\Speed^-1*(0,-\Decel^-1)$);
\coordinate (exitPosA) at ($(exitPosB) + (\PositionA-\PositionB,0)$);
\coordinate (clearingPosB) at ($(exitPosB) + ( 0,-\Latency)$);
\coordinate (exitVector) at ($(egressPosB)!0.25!(exitPosB)$);
\coordinate (baseVector) at ($(basePosA)!0.75!(egressPosB)$);
}{
% mode coasting & acceleration
\coordinate (clearingPosB) at ($(egressPosB) + ( 0,-\ClearingDistance*\Speed^-1-\TrainLength*\Speed^-1)$);
}
\coordinate (clearingPosA) at ($(clearingPosB)+ (\PositionA-\PositionB,0)$);
\coordinate (endPosB) at ($(clearingPosB)+ ( 0,-\InterlockingTime)$);
\coordinate (endPosA) at ($(endPosB) + (\PositionA-\PositionB,0)$);
% finished coord calc for train run
%
% draw blocking time
\iftoggle{blockingTime}{
\iftoggle{blockingTimeFill}{
\fill [fill opacity=0.1] (beginPosA) -- (endPosA) -- (endPosB) -- (beginPosB) -- cycle;
}{}
\draw (beginPosA) -- (endPosA) -- (endPosB) -- (beginPosB) -- cycle;
}{}
% debug
\iftoggle{DEBUG}{
\togglefalse{trainMarker}
\ifdimcomp{\dimPosA}{<}{\dimPosB}{
\node[right,align=left,red] at ($(\PositionA +1,-0.5)$) {train run left to right};
\node[right,align=left,red] at ($(\PositionA +1,-1 )$) {mode: \mode};
}{
\node[right,align=left,red] at ($(\PositionB +1,+5.5)$) {train run right to left};
\node[right,align=left,red] at ($(\PositionB +1,+5 )$) {mode: \mode};
}
\ifTrainRun{\mode}{\ModeAcceleration}{
% mode acceleration
\def\DebugPointsPosA{basePosA, entryPosA, entryVector, sightingPosA, beginPosA, egressPosA, egressVector, clearingPosA, endPosA}
\def\DebugPointsPosB{basePosB, entryPosB, sightingPosB, beginPosB, egressPosB, clearingPosB, endPosB}
\draw[blue] (entryPosA) .. controls (entryVector) and (egressVector) .. (egressPosB) node [fill=black!10,midway,sloped] {\tiny \mode};
\draw[red,dashed] (entryPosA)-- (entryVector)-- (egressVector) -- (egressPosB) -- cycle (entryPosA)--(egressVector) (entryVector)--(egressPosB);
}{
\ifTrainRun{\mode}{\ModeDeceleration}{
% mode deceleration
\def\DebugPointsPosA{basePosA, approachPosA, sightingPosA, beginPosA, egressPosA, exitPosA, clearingPosA, endPosA}
\def\DebugPointsPosB{basePosB, approachPosB, sightingPosB, beginPosB, baseVector, egressPosB, exitVector, exitPosB, clearingPosB, endPosB}
\draw [blue] (basePosA) .. controls (baseVector) and (exitVector) .. (exitPosB) node [fill=black!10,midway,sloped] {\tiny \mode};
\draw[red,dashed,thin] (basePosA)-- (baseVector)-- (exitVector) -- (exitPosB) -- cycle (basePosA)--(exitVector) (baseVector)--(exitPosB);
}{
% mode coasting
\def\DebugPointsPosA{basePosA, approachPosA, sightingPosA, beginPosA, egressPosA, clearingPosA, endPosA}
\def\DebugPointsPosB{basePosB, approachPosB, sightingPosB, beginPosB, egressPosB, clearingPosB, endPosB}
\draw [blue] (basePosA) -- (egressPosB) node [fill=black!10,midway,sloped] {\tiny \mode};
}
}
\ifdimcomp{\dimPosA}{<}{\dimPosB}{
\foreach \point in \DebugPointsPosA
\draw [red] (\point) circle[radius=.03] (\point) node [left] {\tiny \point~(\xcoord{\point},\ycoord{\point})};
\foreach \point in \DebugPointsPosB
\draw [red] (\point) circle[radius=.03] (\point) node [right] {\tiny \point~(\xcoord{\point},\ycoord{\point})};
}{
\foreach \point in \DebugPointsPosA
\draw [red] (\point) circle[radius=.03] (\point) node [right] {\tiny \point~(\xcoord{\point},\ycoord{\point})};
\foreach \point in \DebugPointsPosB
\draw [red] (\point) circle[radius=.03] (\point) node [left] {\tiny \point~(\xcoord{\point},\ycoord{\point})};
}
}{}
% draw blocking time parts
\iftoggle{blockingTimeParts}{
\draw [line width=0.25pt] (sightingPosA) -- (sightingPosB);
\draw [line width=0.25pt] (clearingPosA) -- (clearingPosB);
\ifTrainRun{\mode}{\ModeAcceleration}{
% mode acceleration
}{
% mode deceleration & coasting
\draw [line width=0.25pt] (approachPosA) -- (approachPosB);
\draw [line width=0.25pt] (basePosA) -- (basePosB);
}
\ifTrainRun{\mode}{\ModeDeceleration}{
% mode deceleration
}{
% mode acceleration & coasting
\draw [line width=0.25pt] (egressPosA) -- (egressPosB);
}
}{}
% draw train path
\iftoggle{trainMarker}{
\ifTrainRun{\mode}{\ModeAcceleration}{
% mode acceleration
\draw [line width=1pt] (entryPosA) .. controls (entryVector) and (egressVector) .. (egressPosB);
}{
\ifTrainRun{\mode}{\ModeDeceleration}{
% mode deceleration
\draw [line width=1pt] (basePosA) .. controls (baseVector) and (exitVector) .. (exitPosB);
}{
% mode coasting
\draw [line width=1pt] (basePosA) -- (egressPosB);
}
}
}{}
% draw start and stop marker
\iftoggle{StartStopMarker}{
\ifTrainRun{\mode}{\ModeAcceleration}{
% Start Marker
\tikzset{every path/.style={solid,thin}};
\draw ($(entryPosA) + (0.1,0)$) -- ++(-0.2,0);
\draw (entryPosA) circle[radius=.05] (entryPosA);
}{}
\ifTrainRun{\mode}{\ModeDeceleration}{
% Stop Marker
\tikzset{every path/.style={solid,thin}};
\draw ($(exitPosB) + (0.1,0)$) -- ++(-0.2,0);
\draw (exitPosB) circle[radius=.05] (exitPosB);
}{}
}{}
}
}},pics/train_path/.default=4.0/0.5/0.5/2.0,
}

View File

@ -5,8 +5,27 @@
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\tikzset{MainTrack/.style={line width=2pt}}
\tikzset{SideTrack/.style={line width=1pt}}
\tikzset{SideTrack/.style={line width=0.7pt}}
\colorlet{background}{white}
\tikzset{
pics/track_number/.style args={#1}{
code={
\node[fill=background,font=\sffamily] at (0,0) {#1}; % speed indicator
}
},
pics/track_number/.default=,
}
\tikzset{
pics/track_distance/.style args={#1}{
code={
\fill (0,0.96) -- ++(-0.1,-0.15) -- ++(0.2,0) -- cycle; % upper triangle
\node[baseline=(current bounding box.center),font=\sffamily] at (0,0.5) {#1}; % distance indicator
\fill (0,0.04) -- ++(-0.1,0.15) -- ++(0.2,0) -- cycle; % lower triangle
}
},
pics/track_distance/.default=,
}
\tikzset{
pics/turnout_left_forward/.style args={#1}{
code={

View File

@ -76,7 +76,7 @@
pics/distant_signal_forward/.style args={#1}{
code={
\path[draw, line width=1pt] (0,0) -- ++(0,-0.4) -- ++(0.4,0); % signal pole
\path[draw, line width=1pt] (0.7,-0.6) -- ++(0,0.4) -- ++ (-0.35,-0.2) -- cycle; % signal marker
\path[draw, fill=background, line width=1pt] (0.7,-0.6) -- ++(0,0.4) -- ++ (-0.35,-0.2) -- cycle; % signal marker
\node[rotate=-90,font=\sffamily] at (0.9,-0.4) {#1}; % speed indicator
}
},
@ -86,7 +86,7 @@
pics/distant_signal_backward/.style args={#1}{
code={
\path[draw, line width=1pt] (0,0) -- ++(0,0.4) -- ++(-0.4,0); % signal pole
\path[draw, line width=1pt] (-0.7,0.6) -- ++(0,-0.4) -- ++ (0.35,0.2) -- cycle; % signal marker
\path[draw, fill=background, line width=1pt] (-0.7,0.6) -- ++(0,-0.4) -- ++ (0.35,0.2) -- cycle; % signal marker
\node[rotate=90,font=\sffamily] at (-0.9,0.4) {#1}; % speed indicator
}
},
@ -97,7 +97,7 @@
code={
\path[draw, line width=1pt] (0,0) -- ++(0,-0.4) -- ++(0.4,0); % signal pole
\path[draw, line width=1pt] (0.4,-0.2) -- ++(0,-0.4) -- ++ (0.35,0.2) -- cycle; % signal marker
\node[rotate=-90,font=\sffamily] at (0.9,-0.4) {#1}; % speed indicator
\node[rotate=-90,font=\sffamily] at (1.0,-0.4) {#1}; % speed indicator
}
},
pics/speed_signal_forward/.default=,
@ -107,7 +107,7 @@
code={
\path[draw, line width=1pt] (0,0) -- ++(0,0.4) -- ++(-0.4,0); % signal pole
\path[draw, line width=1pt] (-0.4,0.2) -- ++(0,0.4) -- ++ (-0.35,-0.2) -- cycle; % signal marker
\node[rotate=90,font=\sffamily] at (-0.9,0.4) {#1}; % speed indicator
\node[rotate=90,font=\sffamily] at (-1.0,0.4) {#1}; % speed indicator
}
},
pics/speed_signal_backward/.default=,
@ -117,7 +117,7 @@
code={
\path[draw, line width=1pt] (0,0) -- ++(0,-0.4) -- ++(0.7,0); % signal pole
\path[draw, line width=1pt] (0.7,-0.6) rectangle ++(0.4,0.4); % signal marker
\node[rotate=-90,font=\sffamily] at (1.2,-0.4) {#1}; % speed indicator
\node[rotate=-90,font=\sffamily] at (1.3,-0.4) {#1}; % speed indicator
}
},
pics/block_signal_forward/.default=,
@ -127,7 +127,7 @@
code={
\path[draw, line width=1pt] (0,0) -- ++(0,0.4) -- ++(-0.7,0); % signal pole
\path[draw, line width=1pt] (-0.7,0.6) rectangle ++(-0.4,-0.4); % signal marker
\node[rotate=90,font=\sffamily] at (-1.2,0.4) {#1}; % speed indicator
\node[rotate=90,font=\sffamily] at (-1.3,0.4) {#1}; % speed indicator
}
},
pics/block_signal_backward/.default=,
@ -137,7 +137,7 @@
code={
\path[draw, line width=1pt] (0,0) -- ++(0,-0.4) -- ++(0.7,0); % signal pole
\path[draw, line width=1pt] (0.9,-0.4) circle (0.2); % signal marker
\node[rotate=-90,font=\sffamily] at (1.2,-0.4) {#1}; % speed indicator
\node[rotate=-90,font=\sffamily] at (1.3,-0.4) {#1}; % speed indicator
}
},
pics/route_signal_forward/.default=,
@ -147,7 +147,7 @@
code={
\path[draw, line width=1pt] (0,0) -- ++(0,0.4) -- ++(-0.7,0); % signal pole
\path[draw, line width=1pt] (-0.9,0.4) circle (0.2); % signal marker
\node[rotate=90,font=\sffamily] at (-1.2,0.4) {#1}; % speed indicator
\node[rotate=90,font=\sffamily] at (-1.3,0.4) {#1}; % speed indicator
}
},
pics/route_signal_backward/.default=,
@ -213,10 +213,14 @@
};
}
\tikzset{
clearing_point/.pic={
\path[draw, line width=1pt] (0 ,-0.1) -- ++( 0 ,0.2); % marker
\path[draw, line width=1pt] (0.1, 0.1) -- ++(-0.2,0 ); % sign
};
pics/clearing_point/.style args={#1}{
code={
\path[draw, line width=1pt] (0 ,-0.1) -- ++( 0 ,0.2); % marker
\path[draw, line width=1pt] (0.1, 0.1) -- ++(-0.2,0 ); % sign
\node[font=\sffamily] at (0,0.45) {#1}; % indicator
}
},
pics/clearing_point/.default=,
}
\tikzset{
pics/transmitter_below/.style args={#1}{
@ -224,7 +228,7 @@
\path[draw,line width=1pt,fill=#1] (-0.25,0) rectangle (0.25,-0.25); % turnout marker
}
},
pics/transmitter_below/.default=white,
pics/transmitter_below/.default=background,
}
\tikzset{
pics/transmitter_below_forward/.style args={#1}{
@ -233,7 +237,7 @@
\path[draw] (0.1,-0.05) -- (0.2,-0.125) -- (0.1,-0.2) -- cycle;
}
},
pics/transmitter_below_forward/.default=white,
pics/transmitter_below_forward/.default=background,
}
\tikzset{
pics/transmitter_below_backward/.style args={#1}{
@ -242,7 +246,7 @@
\path[draw] (-0.1,-0.05) -- (-0.2,-0.125) -- (-0.1,-0.2) -- cycle;
}
},
pics/transmitter_below_backward/.default=white,
pics/transmitter_below_backward/.default=background,
}
\tikzset{
pics/transmitter_below_bidirectional/.style args={#1}{
@ -252,7 +256,7 @@
\path[draw] (-0.1,-0.05) -- (-0.2,-0.125) -- (-0.1,-0.2) -- cycle;
}
},
pics/transmitter_below_bidirectional/.default=white,
pics/transmitter_below_bidirectional/.default=background,
}
\tikzset{
pics/transmitter_above/.style args={#1}{
@ -260,7 +264,7 @@
\path[draw,line width=1pt,fill=#1] (-0.25,0) rectangle (0.25,0.25); % turnout marker
}
},
pics/transmitter_above/.default=white,
pics/transmitter_above/.default=background,
}
\tikzset{
pics/transmitter_above_forward/.style args={#1}{
@ -269,7 +273,7 @@
\path[draw] (0.1,0.05) -- (0.2,0.125) -- (0.1,0.2) -- cycle;
}
},
pics/transmitter_above_forward/.default=white,
pics/transmitter_above_forward/.default=background,
}
\tikzset{
pics/transmitter_above_backward/.style args={#1}{
@ -278,7 +282,7 @@
\path[draw] (-0.1,0.05) -- (-0.2,0.125) -- (-0.1,0.2) -- cycle;
}
},
pics/transmitter_above_backward/.default=white,
pics/transmitter_above_backward/.default=background,
}
\tikzset{
pics/transmitter_above_bidirectional/.style args={#1}{
@ -288,5 +292,5 @@
\path[draw] (-0.1,0.05) -- (-0.2,0.125) -- (-0.1,0.2) -- cycle;
}
},
pics/transmitter_above_bidirectional/.default=white,
pics/transmitter_above_bidirectional/.default=background,
}

View File

@ -7,7 +7,7 @@
\tikzset{
pics/train/.style args={#1}{
code={
\path[draw, line width=1pt, fill=white] (0,-0.3) -- ++(#1,0) -- ++(0,0.6) -- ++(-#1,0) -- cycle; % train shape
\path[draw, line width=1pt, fill=background] (0,-0.3) -- ++(#1,0) -- ++(0,0.6) -- ++(-#1,0) -- cycle; % train shape
% \node at (-2,0) {\emph{#2}}; %label of train
}
},
@ -16,7 +16,7 @@
\tikzset{
pics/train_moving_forward/.style args={#1}{
code={
\path[draw, line width=1pt, fill=white] (0,0) -- +(-0.3,0.3) -- +(-#1,0.3) -- +(-#1,-0.3) -- +(-0.3,-0.3) -- cycle; % train shape
\path[draw, line width=1pt, fill=background] (0,0) -- +(-0.3,0.3) -- +(-#1,0.3) -- +(-#1,-0.3) -- +(-0.3,-0.3) -- cycle; % train shape
\path[draw, line width=1pt] (-0.13,0.23) -- (0.1,0) -- (-0.13,-0.23); % arrow shape part 1
\path[draw, line width=1pt] (-0.03,0.23) -- (0.2,0) -- (-0.03,-0.23); % arrow shape part 2
% \node at (-2,0) {\emph{#2}}; %label of train
@ -27,7 +27,7 @@
\tikzset{
pics/train_moving_backward/.style args={#1}{
code={
\path[draw, line width=1pt, fill=white] (0,0) -- +(0.3,-0.3) -- +(#1,-0.3) -- +(#1,0.3) -- +(0.3,0.3) -- cycle; % train shape
\path[draw, line width=1pt, fill=background] (0,0) -- +(0.3,-0.3) -- +(#1,-0.3) -- +(#1,0.3) -- +(0.3,0.3) -- cycle; % train shape
\path[draw, line width=1pt] (0.13,0.23) -- (-0.1,0) -- (0.13,-0.23); % arrow shape part 1
\path[draw, line width=1pt] (0.03,0.23) -- (-0.2,0) -- (0.03,-0.23); % arrow shape part 2
% \node at (-2,0) {\emph{#2}}; %label of train
@ -38,7 +38,7 @@
\tikzset{
pics/train_direction_forward/.style args={#1}{
code={
\path[draw, line width=1pt, fill=white] (0,0) -- +(-0.3,0.3) -- +(-#1,0.3) -- +(-#1,-0.3) -- +(-0.3,-0.3) -- cycle; % train shape
\path[draw, line width=1pt, fill=background] (0,0) -- +(-0.3,0.3) -- +(-#1,0.3) -- +(-#1,-0.3) -- +(-0.3,-0.3) -- cycle; % train shape
% \node at (-2,0) {\emph{#2}}; %label of train
}
},
@ -47,7 +47,7 @@
\tikzset{
pics/train_direction_backward/.style args={#1}{
code={
\path[draw, line width=1pt, fill=white] (0,0) -- +(0.3,-0.3) -- +(#1,-0.3) -- +(#1,0.3) -- +(0.3,0.3) -- cycle; % train shape
\path[draw, line width=1pt, fill=background] (0,0) -- +(0.3,-0.3) -- +(#1,-0.3) -- +(#1,0.3) -- +(0.3,0.3) -- cycle; % train shape
% \node at (-2,0) {\emph{#2}}; %label of train
}
},
@ -73,21 +73,21 @@
}
\tikzset{
train_automatic_forward/.pic={
\path[draw, fill=black] (-0.15,0) -- ++(-0.15,0.15) -- ++(0,-0.3) -- cycle; % triangle
\path[draw, fill] (-0.15,0) -- ++(-0.15,0.15) -- ++(0,-0.3) -- cycle; % triangle
};
}
\tikzset{
train_automatic_backward/.pic={
\path[draw, fill=black] (0.15,0) -- ++(0.15,0.15) -- ++(0,-0.3) -- cycle; % triangle
\path[draw, fill] (0.15,0) -- ++(0.15,0.15) -- ++(0,-0.3) -- cycle; % triangle
};
}
\tikzset{
train_human_forward/.pic={
\path[draw, fill=black] (-0.4,0) circle (0.15); % dot
\path[draw, fill] (-0.4,0) circle (0.15); % dot
};
}
\tikzset{
train_human_backward/.pic={
\path[draw, fill=black] (0.4,0) circle (0.15); % dot
\path[draw, fill] (0.4,0) circle (0.15); % dot
};
}