5 define(`pt_main_r',`pt_peco_mr')
9 part pt_i pt_peco_lr c ic
10 part x cross_peco_l br pt_i_a
11 part pt_o pt_peco_lr b x_bl
14 extend pt_o_a oa upto ia
21 part main_up ^pt_main_r c right b right_main_up
22 part main_down pt_main_r c right b right_main_down
23 part short_down pt_peco_sr c right b right_short_down
25 part main_left ^pt_main_r c up b up_main_left
26 part main_right pt_main_r c up b up_main_right
27 part dualjn_tr ^dualjn_peco_r ib -right
30 #---------- main line figure-of-8
34 abs midx_x_m 930 700 90
35 part midx_x cross_peco_s m
37 extend midx_x_tr -top_0rm_b parallel demos!right_main_up 315
38 part top_0rm ^pt_main_r b
40 extend midx_x_tl -top_0lm_b parallel demos!-right_main_down -315
41 part top_0lm pt_main_r b
42 rel top_0lm_c top_2lk 0 -37
45 rel top_2lk top_3lk 0 -37
46 rel top_3lk top_45x_br 30 -37 -2
49 rel top_3lk top_5_ref 0 -74
53 extend -midx_x_bl -midx_sc_a len 10 315
54 part midx_sc pt_peco_sl a
56 extend -midx_sc_c -bot_0lk_b parallel demos!right_main_up 315
57 part bot_0lk ^pt_main_r b
59 extend -bot_0lk_c -leb_0k uptoang 90 315
60 rel -leb_0k -leb_2k 0 -37
61 rel -leb_2k -leb_3k 0 -37
63 rel -bot_0lk_c bot_2lk 0 -37
64 rel bot_2lk bot_3lk 0 -37
67 extend -midx_x_br -demo_midx_x_br_x ang 7 316
68 extend -demo_midx_x_br_x -demo_bot_0rk_b parallel demos!right_main_down -316
69 part demo_bot_0rk pt_main_r b
72 extend bot_0lk_a -bot_0rk_c upto demo_bot_0rk_c
75 part bot_0rk pt_main_r c
76 extend -top_0rm_c top_0rme upto bot_0rk_c
77 join bot_0rk_b midx_x_br 315
79 extend top_0rme top_0rme1 ang 9 315
81 extend top_0rme1 rim_0t uptoang -90 315
82 rel rim_0t rim_2t 0 -37
83 rel rim_2t rim_3t 0 -37
89 extend bot_3lk sq_bl_o upto leb_3k
90 rel sq_bl_o sq_bl_i 0 0 -90
92 extend sq_bl_i sq_tl_o upto top_5_ref
93 rel sq_tl_o sq_tl_i 0 0 -90
95 extend sq_tl_i sq_tr_o upto rim_3t
96 rel sq_tr_o sq_tr_i 0 0 -90
98 extend sq_tr_i sq_br_o upto sq_bl_i
99 rel sq_br_o sq_br_i 0 0 -90
101 extend sq_br_i sq_bl_o2 upto sq_bl_o
103 #---------- bottom junction between main loop, main-8
107 rel sq_br_i bot_2rk_c 315
109 part bot_2rk pt_main_r c
110 #part bot_2rkx pt_shino_6r c bot_2rk_c
111 extend bot_2rk_b bot_1rk_bl uptoang 170.5 -315
112 part bot_1rk slip2_shino bl
114 extend bot_1rk_tr bot_0mx_bl ang 0.5 315
115 part bot_0mx cross_atlas_20m bl
117 extend -bot_0mx_br -bot_0rj_b len 5 315
118 part bot_0rj ^pt_main_r b
120 join bot_0rk_a bot_0rj_c 315
122 extend bot_0mx_tr -bot_1lj_b len 5 -315
123 part bot_1lj pt_main_r b
125 join bot_0rj_a -bot_1lj_a 315
127 #---------- station branch curve
130 rel sq_tl_i -top_4le 352 37 180
131 rel -top_4le -top_5le 0 37
134 extend -top_4le leb_4e ang 90 -315
135 extend -top_5le leb_5e ang 90 -352
138 join -leb_3k top_3lk 389 arcsline
139 join -leb_2k top_2lk 352 arcsline
142 join -leb_0k top_0lm_c 315 arcsline
144 #extend leb_3k leb_3b ang 30 389
145 #extend leb_2k leb_2b ang 30 352
146 #extend leb_0k leb_0b ang 30 315
148 #extend -top_3lk -leb_3a ang 60 -389
149 #extend -top_2lk -leb_2a ang 60 -352
150 #extend -top_0lm_c -leb_0a ang 60 -315
153 part top_45x scis_shino br
154 join top_5le top_45x_bl 450 twoarcs
155 join top_4le top_45x_br 450 twoarcs
157 #---------- top main-line/station junction
161 rel top_0rme1 -top_2j_c 0 -37
162 part top_2j pt_peco_ll c
163 join top_2lk -top_2j_b 600
165 extend top_2j_a -top_34jx_tr len 50
166 part top_34jx cross_peco_l tr
167 join top_3lk top_34jx_br 450
169 join top_45x_tr top_34jx_bl 315
171 extend top_34jx_tl top_3j3 len 30 -700
172 extend top_3j3 -top_3j_b len 30 800
173 part top_3j pt_peco_ll b
175 extend -rim_3t -rim_3tt ang 45 -389
177 join -top_2j_c rim_2t 352
178 join -top_3j_c rim_3tt 352
180 extend top_45x_tl top_5x1 len 40
181 extend top_5x1 top_5x2 len 40 2000
182 join top_5x2 -top_3j_a 450
184 #extend top_45x_tr top_4m0 ang 6 315
185 #extend top_4m0 top_4m1 len 50
187 #extend -bot_0rk_c -rim_0b uptoang 90 -315
189 #extend top_0rme l0p_dj parallel demos!dualjn_tr_ic 315
190 #rel l0p_dj -l23_dj_ic 0 -37
191 #part l23_dj ^dualjn_peco_r ic
192 #extend l23_dj_oa l3_sh uptoang 180 -315
200 part leb_4y pt_peco_sl c leb_4e
201 extend leb_4y_a sta_4neare uptoang 5 -315
202 extend sta_4neare sta_4far len 1118
204 rel sta_4neare sta_5nears 130 30
205 extend sta_5nears sta_5far upto sta_4far
207 extend -sta_5nears -sta_5neare1 len 60 -450
208 extend -sta_5neare1 -sta_5neare2 len 50 450
210 extend leb_5e leb_5eb upto leb_4y_a
211 join leb_5eb sta_5neare2 352
215 # high-level lines and platforms
217 rel sta_4neare sta_6far 500 76
218 part sta_67r pt_peco_sl a -sta_6far
220 rel sq_br_i high_6br0 230 0 -180
221 extend high_6br0 high_6br1 ang 90 -230
222 join -sta_67r_c high_6br0 230
224 extend -sta_6far -sta_6nears len 600
225 part sta_67l pt_peco_sl b sta_6nears
226 join sta_67l_a -sta_67r_b 230
227 extend -sta_67l_c high_6bl5 uptoang 90 230
231 # medium-level platforms
233 rel sta_4far sta_4far_platnear 0 -14.5
234 rel sta_4far_platnear sta_4far_platfar 0 -17
235 extend -sta_4far_platnear -sta_4neare_plat upto sta_4neare
236 extend -sta_4far_platfar -sta_4nears_platfar upto sta_5nears
237 join sta_4neare_plat sta_4nears_platfar 1
238 join sta_4far_platnear -sta_4far_platfar 1
240 rel sta_5far sta_5far_platnear 0 14.5
241 rel sta_5far_platnear sta_5far_platfar 0 17
242 extend -sta_5far_platnear -sta_5neare_plat upto sta_5nears
243 extend -sta_5far_platfar -sta_5neare_platfar upto sta_4neare
244 join sta_5neare_platfar sta_5neare_plat 1
245 join sta_5far_platnear -sta_5far_platfar 1
251 rel sta_4far_platnear sta_tt_mid -50 -120
252 part sta_tt tt_atlas mid
253 part sta_ttmotor tt_atlas_motor cout sta_tt_out90
257 rel sta_4neare sta_3neare 15 -48 -8
258 part sta_3sc pt_peco_sr c -sta_3neare
259 join leb_4y_b -sta_3sc_a 230
261 extend sta_3neare sta_3y0_c uptoang 5 -230
262 part sta_3y0 pt_peco_sl c
265 extend sta_3sc_b -leb_0sc uptoang 90 300
270 extend sta_3y0_b sta_0y1_c ang 1 -230
271 part sta_0y1 pt_peco_sl c
274 extend sta_0y1_b h_8b ang 90 -230
277 rel sta_4neare sta_3nears 280 -46
278 part sta_3y1 pt_peco_sl c sta_3y0_a
279 join sta_3y1_a sta_3nears 450
281 extend sta_3nears sta_3far len 500
282 extend sta_3far sta_3far1 len 30 -650
283 join sta_3far1 -sta_tt_out210 230
287 part sta_2y0 pt_peco_sr c sta_3y1_b
288 extend sta_2y0_b sta_2nears parallel sta_3nears 230
289 extend sta_2nears sta_2far upto sta_3far1
290 join sta_2far -sta_tt_out195 230
294 rel sta_2far sta_1far 0 -37
295 join sta_1far sta_tt_in 230
296 join sta_2y0_a sta_1far 230 arcline
298 #---------- shunting yard
303 define(`extendyard',`
304 part j$1 pt_peco_sr c $2
305 part k$1 pt_peco_sr c j$1_b
306 extend k$1_b near$1a ang 0.001 -230
307 extend k$1_a near$1b ang 22.501 230
308 extend near$1a far$1a $3
309 extend near$1b far$1b $4
312 extendyard(`0',`e', `len 600',`len 500')
313 extendyard(`1',`j0_a',`len 500',`len 400')
314 extend j1_a e2a ang 2 -230
315 extend e2a near2a parallel near0a 230
316 extend near2a far2a len 370
319 extend sta_0y1_a yard_0e ang 31 -230
320 part yard yard e yard_0e
322 #---------- train houses
324 extend sta_tt_out135 sta_9house len 200 -230
325 extend sta_tt_out150 sta_8house len 230 -400
326 extend sta_tt_out165 sta_7house upto sta_8house -2000