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