chiark / gitweb /
93f9f00b1fb56fbb8caeafa12b6c0a9c5acccd0a
[trains.git] / layout / ours.m4
1 # -*- fundamental -*-
2
3 include(`parts.i4')
4
5 define(`pt_main_r',`pt_peco_mr')
6
7 defobj dualjn_peco_r
8   abs ic 200 200 0
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
12   rel pt_o_c oc
13   rel x_tl ia
14   extend pt_o_a oa upto ia
15   rel x_tr ob
16   rel pt_i_b ib
17 enddef
18
19 defobj demos
20   abs right 200 200 0
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
24   abs up 200 200 90
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
28 enddef
29
30 # positive segment direction is anticlockwise, since T rail is
31 # on the inside (see informat.txt)
32
33 #---------- main line figure-of-8
34
35 layer 0
36
37 abs midx_x_m 930 700 90
38
39 segment midx_
40 segmap  midx_F -X1  midx_B X2
41 part midx_x cross_peco_s m
42
43 segment -X1 165 -X3
44 extend midx_x_tr -top_0rm_b parallel demos!right_main_up 315
45
46 segment X7
47 part top_0rm ^pt_main_r b
48
49 segment X2 155 X4
50 extend midx_x_tl -top_0lm_b parallel demos!-right_main_down -315
51
52 segment -X8
53 part top_0lm pt_main_r b
54 rel top_0lm_c top_2lk 0 -37
55 rel top_2lk top_3lk 0 -37
56
57 segment /
58
59 layer 8
60 rel top_3lk top_45x_br 67 -39 -2.25
61 extend -top_45x_br -top_4le0 len 120 -1200
62
63 layer s
64 rel top_3lk top_5_ref 0 -74
65 layer =
66
67 layer 0
68
69 segment -A2/P0
70 extend -midx_x_bl -midx_j_a len 10 315
71
72 segment A2
73 part midx_j pt_peco_sl a
74
75 segment -A2 155 -A4
76 extend -midx_j_c -bot_0lm_b parallel demos!right_main_up 315
77
78 segment A6
79 part bot_0lm ^pt_main_r b
80
81 segment -X10
82 extend -bot_0lm_c -leb_0k uptoang 90 315
83 segment /
84
85 rel -leb_0k -leb_2k 0 -37
86 rel -leb_2k -leb_3k 0 -37
87
88 rel -bot_0lm_c bot_2lk 0 -37
89 rel bot_2lk bot_3lk 74 -37
90
91 layer s
92 extend -midx_x_br -demo_midx_x_br_x ang 7 316
93 extend -demo_midx_x_br_x -demo_bot_0rm_b parallel demos!right_main_down -316
94 part demo_bot_0rm pt_main_r b
95
96 layer s
97 extend bot_0lm_a -bot_0rm_c upto demo_bot_0rm_c
98
99 layer =
100
101 segment -A5
102 part bot_0rm pt_main_r c
103
104 segment -X7
105 extend -top_0rm_c top_0rme upto bot_0rm_c
106
107 segment -A3 180 -A1
108 join bot_0rm_b midx_x_br 315
109
110 segment -X7
111 extend top_0rme top_0rme1 ang 9 315
112 extend top_0rme1 rim_0t uptoang -90 315
113 segment /
114
115 rel rim_0t rim_2t 0 -37
116 rel rim_2t rim_3t 0 -37
117
118 segment -X6 250 -X5
119 join top_0lm_a -top_0rm_a 450
120
121 segment /
122
123 #---------- box
124
125 layer l*
126
127 extend bot_3lk sq_bl_o upto leb_3k
128 rel sq_bl_o sq_bl_i 0 0 -90
129
130 extend sq_bl_i sq_tl_o upto top_5_ref
131 rel sq_tl_o sq_tl_i 0 0 -90
132
133 extend sq_tl_i sq_tr_o upto rim_3t
134 rel sq_tr_o sq_tr_i 0 0 -90
135
136 extend sq_tr_i sq_br_o upto sq_bl_i
137 rel sq_br_o sq_br_i 0 0 -90
138
139 extend sq_br_i sq_bl_o2 upto sq_bl_o
140
141 #---------- bottom junction between main loop, main-8
142
143 layer p4
144
145 rel sq_tr_o ctrlbox_bl -64 149
146 extend ctrlbox_bl ctrlbox_br len 50
147 rel ctrlbox_bl ctrlbox_blv 0 0 90
148 extend ctrlbox_blv ctrlbox_tl len 100
149
150 layer 0
151
152 #rel sq_br_i bot_3rj_c 315
153 rel sq_br_i bot_3rj_c 345
154
155 rel bot_0rm_c bot_2rk 0 -37
156 extend bot_2rk bot_2rx_br len 130
157
158 part bot_3rj pt_main_r c
159
160 part bot_2rx slip2_pecof br
161 join bot_3rj_b bot_2rx_bl 450
162
163 extend bot_2rx_tr bot_0mx_bl len 19 1400
164
165 segmap  bot_0mx_B -A5  bot_0mx_F -A6
166 segment bot_0mx_
167 part bot_0mx cross_pecof_s bl
168 segment A5
169 extend -bot_0mx_br -bot_0rj_b len 8
170
171 segment -A5
172 segmap A5/P J
173 part bot_0rj ^pt_main_r b
174 join bot_0rm_a bot_0rj_c 450
175 segmap A5/P P
176
177 rel bot_0mx_tr -bot_0lj_b
178
179 segment A6
180 segmap A6/P J
181 part bot_0lj pt_main_r b
182 segmap A6/P P
183
184 segment -A5 53 -A6
185 join bot_0rj_a -bot_0lj_a 450
186
187 segment -A6
188 join -bot_0lj_c -bot_0lm_a 450
189 segment /
190
191 extend bot_0mx_tl -bot_02lj_b uptoang 194 -315
192 part bot_02lj ^pt_main_r b
193 part bot_23lj ^pt_main_r c -bot_02lj_c
194
195 join bot_2rx_tl -bot_02lj_a 450
196
197 part bot_3lj ^pt_main_r c -bot_3lk
198 join bot_3rj_a -bot_3lj_a 450
199
200 join bot_23lj_b -bot_3lj_b 315 twoarcs
201 join bot_3lk -leb_3k 315 arcline
202
203 join bot_23lj_a bot_2lk 450
204 join bot_2lk -leb_2k 352
205
206 segment -X7 20 -X9
207 join rim_0t bot_0rm_c 315 arcline
208 segment /
209
210 layer 2
211 join rim_2t bot_2rk 352 arcline
212
213 layer 2
214 join rim_3t bot_3rj_c 315 arcline
215
216 #---------- station branch curve
217
218 layer 5
219 rel sq_tl_i -top_5le 352 0 180
220
221 layer 8
222 extend -top_5le leb_5e ang 90 -352
223 rel leb_5e leb_4e 0 -37
224 join -leb_4e top_4le0 315
225
226 layer 2
227 join -leb_3k top_3lk 389 arcsline
228 join -leb_2k top_2lk 352 arcsline
229
230 layer 0
231 segment -X10 160 -X8
232 join -leb_0k top_0lm_c 315 arcsline
233 segment /
234
235 layer 8
236 extend top_5le top_5re0 len 30.0 315
237 extend top_5re0 top_45x_bl len 95 -1200
238 part top_45x scis_pecof bl
239
240 #---------- top main-line/station junction
241
242 layer 6
243 extend -rim_2t top_2j_c len 450 -352
244 #extend -rim_2t top_2j_c upto top_0rme1 -352
245
246 layer 8
247 part top_2j pt_peco_cl c
248 #part top_2j pt_pecofguess_ll c
249
250 layer 4
251 extend top_2lk top_2j21 len 300
252
253 layer 8
254 join top_2j21 -top_2j_b 600
255
256 layer 8
257 extend top_45x_tr top_4j21 len 95 1200
258 extend top_2j_a -top_4j22 len 0.010 -352
259 join top_4j21 top_4j22 352 twoarcs
260
261 rel -top_0rm_a top_5j3b 0 -148
262 extend top_45x_tl top_5j3a len 95 -1200
263 join top_5j3a top_5j3b 315 twoarcs
264
265 layer 0
266 extend top_3lk top_3u1 len 330
267 rel -top_0rm_a top_3u2 35 -111
268 join top_3u1 top_3u2 600
269 #cross twoarcs !arcsline
270
271 layer 4
272 extend -rim_3t -rim_3tt1 len 14.0
273 extend -rim_3tt1 -rim_3tt ang 16.0 -315
274 part top_3j pt_peco_cl c -rim_3tt
275
276 layer 2
277 join top_3u2 -top_3j_b 315 arcline
278
279 layer 6
280 extend top_3j_a top_5j3c ang 45 -315
281
282 layer 8
283 join top_5j3b -top_5j3c 315 arcline
284
285 #---------- station
286
287 # left bridge, `leb'
288
289 layer 10
290
291 part leb_4y pt_peco_sl c leb_4e
292 extend leb_4y_a sta_4nears9 len 35 -600
293 extend sta_4nears9 sta_4nears2 uptoang 0 -315
294 extend sta_4nears2 sta_4neare uptoang 5 -450
295 extend sta_4neare sta_4far len 1148
296
297 rel sta_4neare sta_5nears 130 30
298 extend sta_5nears sta_5far upto sta_4far
299
300 extend -sta_5nears -sta_5neare1 len 50 -1200
301 extend -sta_5neare1 -sta_5neare2 len 50 -600
302
303 extend leb_5e leb_5eb_c upto leb_4y_a
304 part leb_5eb pt_peco_ml c
305 extend leb_5eb_b sta_5neare3 ang 50 -315
306 join sta_5neare3 sta_5neare2 352
307
308 layer 12
309 extend leb_5eb_a super_h00 uptoang 5 -325
310 layer 16
311 extend super_h00 super_h01 len 300
312 extend super_h01 super_h0 parallel sta_5nears -600
313 extend super_h0 super_h1 len 400
314 #extend super_h10 super_h1 uptoang -1.5 800
315
316 layer s
317 rel -sq_br_i place_super_h2 -350 0
318
319 layer 20
320 extend super_h1 super_h2 upto place_super_h2
321
322 layer 24
323 rel -sq_tr_i super_h3 -315 0
324 join super_h2 super_h3 315 arcline
325
326 layer 28
327 rel -sq_tr_o super_h4 315 0
328 join super_h3 super_h4 315 arcline
329
330 layer 30
331 extend super_h4 -super_jtrr_a ang 5 -315
332 part super_jtrr pt_peco_mr a
333 part super_jtrl pt_peco_ml c -super_jtrr_c
334 extend super_jtrl_b super_mid uptoang 275 -315
335 extend super_mid -super_jbl_b parallel super_jtrl_b 315
336 part super_jbl pt_peco_ml b
337 join super_jbl_a -super_jtrr_b 315 arcline
338
339 layer p30
340 rel super_jbl_a super_sta_l_platnear 100 -14.5
341 extend super_sta_l_platnear super_sta_r_platnear len 500
342 rel super_sta_l_platnear super_sta_l_platfar 0 -17
343 extend super_sta_l_platfar super_sta_r_platfar upto super_sta_r_platnear
344
345 join -super_sta_l_platnear super_sta_l_platfar 1.0
346 join super_sta_r_platnear -super_sta_r_platfar 1.0
347
348 layer s
349 extend super_jtrl_a -super_jtl_c upto super_jbl_c
350
351 layer 30
352 part super_jtl pt_peco_sr c
353 join super_jtrl_a -super_jtl_a 315
354 join -super_jtl_c super_jbl_c 315 arcline
355
356 ### layer 20
357 ### 
358 ### # high-level lines and platforms
359 ### 
360 ### rel sta_4neare sta_6far 500 76
361 ### part sta_67r pt_peco_sl a -sta_6far
362 ### 
363 ### rel sq_br_i high_6br0 230 0 -180
364 ### extend high_6br0 high_6br1 ang 90 -230
365 ### ##join -sta_67r_c high_6br0 230
366 ### 
367 ### extend -sta_6far -sta_6nears len 630
368 ### part sta_67l pt_peco_sl b sta_6nears
369 ### join sta_67l_a -sta_67r_b 230
370 ### #extend -sta_67l_c high_6bl5 uptoang -30 230
371  
372 ### layer p20
373 ### 
374 ### rel sta_6nears sta_6nears_platnear 0 -14.5
375 ### rel sta_6nears_platnear sta_6nears_platfar 0 -17
376 ### extend sta_6nears_platnear sta_6far_platnear upto sta_6far
377 ### extend sta_6nears_platfar  sta_6far_platfar  upto sta_6far
378 ### join sta_6nears_platnear -sta_6nears_platfar 1 
379 ### join sta_6far_platnear -sta_6far_platfar 1 
380
381 # medium-level platforms
382
383 layer p10
384
385 rel sta_4far sta_4far_platnear 0 -14.5
386 rel sta_4far_platnear sta_4far_platfar 0 -45
387 extend -sta_4far_platnear -sta_4neare_plat upto sta_4neare
388 extend -sta_4far_platfar -sta_4nears_platfar upto sta_5nears
389 join sta_4neare_plat sta_4nears_platfar 1
390 join sta_4far_platnear -sta_4far_platfar 1 
391
392 rel sta_5far sta_5far_platnear 0 14.5
393 rel sta_5far_platnear sta_5far_platfar 0 30
394 extend -sta_5far_platnear -sta_5neare_plat upto sta_5nears
395 extend -sta_5far_platfar -sta_5neare_platfar upto sta_4neare
396 join sta_5neare_platfar sta_5neare_plat 1
397 join sta_5far_platnear -sta_5far_platfar 1
398
399 layer 10
400
401 # turntable
402
403 rel sta_4far_platnear sta_tt_mid -80 -148
404 part sta_tt tt_atlas mid
405 part sta_ttmotor tt_atlas_motor cout sta_tt_out90
406
407 # station line 3
408
409 rel sta_4neare sta_3neare 15 -76 -8
410 part sta_3sc pt_peco_sr c -sta_3neare
411 join leb_4y_b -sta_3sc_a 230
412
413 extend sta_3neare sta_3y0_c uptoang 5 -230
414 part sta_3y0 pt_peco_sl c
415
416 # junctions
417
418 layer 10
419 extend sta_3y0_b sta_0y1_c ang 1 -230
420 part sta_0y1 pt_peco_sl c
421
422 layer 10
423 rel sta_4neare sta_3nears 280 -74
424 part sta_3y1 pt_peco_sl c sta_3y0_a
425 join sta_3y1_a sta_3nears 450
426
427 extend sta_3nears sta_3far len 500
428 extend sta_3far sta_3far1 len 30 -650
429 join sta_3far1 -sta_tt_out210 230
430
431 # station line 2
432
433 part sta_2y0 pt_peco_sr c sta_3y1_b
434 extend sta_2y0_b sta_2nears parallel sta_3nears 230
435 extend sta_2nears sta_2far upto sta_3far1
436 join sta_2far -sta_tt_out195 230
437
438 # station line 1
439
440 rel sta_2far sta_1far 0 -37
441 join sta_1far sta_tt_in 230
442 join sta_2y0_a sta_1far 230 arcline
443
444 #---------- sort-of helix (regions sc and h)
445
446 layer 8
447 extend sta_3sc_b sc_31 ang 90 260
448
449 layer 6
450 extend sc_31 sc_4 ang 110 230
451
452 layer 4
453 extend sc_4 sc_5 ang 140 230
454
455 layer 2
456 extend sc_5 sc_6 ang 150 230
457
458 layer 0
459 extend sc_6 sc_7 ang 30 285
460
461 extend midx_j_b -sc_9 len 0.4 -230
462 join sc_7 sc_9 230 arcline
463
464 layer 12
465 rel -sc_4 high_6s0 0 37
466 extend -high_6s0 -high_6s01 ang 45 267
467 join sta_0y1_b high_6s01 230 arcline
468
469 layer 14
470 extend high_6s0 high_6s11 ang 90 -230
471 extend high_6s11 high_6s2 len 37
472
473 layer 16
474 extend high_6s2 high_6s3 ang 90 -230
475
476 layer 18
477 extend high_6s3 high_6s4 parallel sta_0y1_b -230
478
479 layer 22
480 extend high_6s4 high_6s5 ang 180 -230
481
482 layer 26
483 extend high_6s5 high_6s6 ang 150 -230
484
485 layer 28
486 join high_6s6 -super_jtl_b 230
487
488 ### #---------- high-level goods
489 ### 
490 ### layer 20
491 ### 
492 ### rel sta_1far -high_sta6far -10 0
493 ### extend high_sta6far high_sta6near upto sta_2y0_a
494 ### 
495 ### extend highr_x_tl highr_6sc_c ang 20 -230
496 ### part highr_6sc pt_peco_sl c
497 ### extend highr_6sc_a highr_6out ang 15 230
498 ### ##join highr_6out high_sta6far 230
499 ### 
500 ### layer s
501 ### extend highr_x_bl -demo_highr_6jb_c uptoang 90 -230
502 ### extend sq_bl_i place_highr_6jb_c upto demo_highr_6jb_c
503 ### 
504 ### layer 20
505 ### rel place_highr_6jb_c highr_6jb_c -10 0
506 ### part highr_6jb pt_peco_sr c
507 ### join highr_6jb_b -highr_x_bl 230
508 ### join highr_6jt_a -highr_6jb_a 230 arcline
509 ### ##join high_6br1 highr_6jb_c 230
510 ### 
511 ### extend -highr_x_tr highr_7kink uptoang -45 230
512 ### extend highr_7kink -highr_7sc_a ang 30 -230
513 ### rel high_sta6near high_sta7near 0 37
514 ### 
515 ### part highr_7sc pt_peco_sl a
516 ### ##join -highr_7sc_c high_sta7near 230
517 ### 
518 ### ##join highr_7sc_b -highr_6sc_b 230
519 ### 
520 ### #part high_67j pt_peco_sr c high_6bl5
521 ### ##join high_67j_b -high_sta6near 267
522 ### ##join high_67j_a -high_sta7near 230
523 ### 
524 #---------- shunting yard
525
526 layer 10
527
528 #defobj yard
529 # define(`extendyard',`
530 #  part j$1 pt_peco_sr c $2
531 #  part k$1 pt_peco_sr c j$1_b
532 #  extend k$1_a near$1a ang 0.001 -230
533 ##  extend k$1_a near$1b len 90
534 #  extend k$1_b near$1b2 ang 22.501 -230
535 #  extend near$1b2 far$1b $4
536 #  extend near$1a far$1a $3
537 # ')
538 # abs e 200 200 0
539 # extendyard(`0',`e',   `len 600',`len 500')
540 # extendyard(`1',`j0_a',`len 500',`len 400')
541 # extend j1_a e2a ang 2 -230
542 # extend e2a near2a parallel near0a 230
543 # extend near2a far2a len 370
544 #enddef
545
546 #extend sta_0y1_a yard_0e ang 31 -230
547 #part yard yard e yard_0e
548 extend sta_0y1_a yard_0e ang 0.01 -230
549
550 part yard_p   pt_peco_sl c yard_0e
551 part yard_pr  pt_peco_sr c yard_p_a
552 part yard_pl  pt_peco_sr c yard_p_b
553 part yard_pll pt_peco_sr c yard_pl_a
554
555 extend yard_pr_b yard_err_s len 180
556 extend yard_pr_a yard_erl_s len 120
557 extend yard_pl_b yard_elr_s len 180
558 extend yard_pll_b yard_ellr_s len 180
559 extend yard_pll_a yard_elll_s len 120
560
561 extend yard_err_s yard_err_t len 275 4500
562
563 extend yard_erl_s yard_erl_t len 180 2400
564 extend yard_erl_t yard_erl_u len 150 800
565 extend yard_erl_u yard_erl_v len 200 300
566
567 extend yard_elr_s yard_elr_t upto yard_erl_t 2400
568 extend yard_elr_t yard_elr_u upto yard_erl_u 800
569 extend yard_elr_u yard_elr_v len 240 315
570
571 extend yard_ellr_s yard_ellr_t upto yard_erl_t 2400
572 extend yard_ellr_t yard_ellr_u upto yard_erl_u 800
573 extend yard_ellr_u yard_ellr_v len 260 330
574
575 extend yard_elll_s yard_elll_t parallel yard_ellr_s 230
576 extend yard_elll_t yard_elll_u upto yard_ellr_u 600
577 extend yard_elll_u yard_elll_v len 200 365
578
579 #---------- train houses
580
581 extend sta_tt_out135 sta_9house len 200  -230
582 extend sta_tt_out150 sta_8house len 230  -400
583 extend sta_tt_out165 sta_7house len 115
584
585 extend sta_8house sta_8house_b len 120
586 rel sta_8house_b sta_7house_b 0 -37
587 join sta_7house sta_7house_b 300
588
589 ident $Revision$
590 eof