chiark / gitweb /
correct some bits that are extensions of points
[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 part midx_x cross_peco_s m
39
40 segment -X1 165 -X3
41 extend midx_x_tr -top_0rm_b parallel demos!right_main_up 315
42
43 segment X7
44 part top_0rm ^pt_main_r b
45
46 segment X2 155 X4
47 extend midx_x_tl -top_0lm_b parallel demos!-right_main_down -315
48
49 segment -X8
50 part top_0lm pt_main_r b
51 rel top_0lm_c top_2lk 0 -37
52 rel top_2lk top_3lk 0 -37
53
54 segment /
55
56 layer 2
57 #rel top_3lk top_45x_br 85 -37 -2.25
58 rel top_3lk top_45x_br 67 -40 -2.55
59 extend -top_45x_br -top_4le0 len 80 -900
60
61 layer s
62 rel top_3lk top_5_ref 0 -74
63 layer =
64
65 layer 0
66
67 segment -A2/P0
68 extend -midx_x_bl -midx_j_a len 10 315
69
70 segment A2
71 part midx_j pt_peco_sl a
72
73 segment -A2 155 -A4
74 extend -midx_j_c -bot_0lm_b parallel demos!right_main_up 315
75
76 segment A6
77 part bot_0lm ^pt_main_r b
78
79 segment -X10
80 extend -bot_0lm_c -leb_0k uptoang 90 315
81 segment /
82
83 rel -leb_0k -leb_2k 0 -37
84 rel -leb_2k -leb_3k 0 -37
85
86 rel -bot_0lm_c bot_2lk 0 -37
87 rel bot_2lk bot_3lk 74 -37
88
89 layer s
90 extend -midx_x_br -demo_midx_x_br_x ang 7 316
91 extend -demo_midx_x_br_x -demo_bot_0rm_b parallel demos!right_main_down -316
92 part demo_bot_0rm pt_main_r b
93
94 layer l
95 extend bot_0lm_a -bot_0rm_c upto demo_bot_0rm_c
96
97 layer =
98
99 segment -A5
100 part bot_0rm pt_main_r c
101
102 segment -X7
103 extend -top_0rm_c top_0rme upto bot_0rm_c
104
105 segment -A3 180 -A1
106 join bot_0rm_b midx_x_br 315
107
108 segment -X7
109 extend top_0rme top_0rme1 ang 9 315
110 extend top_0rme1 rim_0t uptoang -90 315
111 segment /
112
113 rel rim_0t rim_2t 0 -37
114 rel rim_2t rim_3t 0 -37
115
116 segment -X6 250 -X5
117 join top_0lm_a -top_0rm_a 450
118
119 segment /
120
121 #---------- box
122
123 layer l*
124
125 extend bot_3lk sq_bl_o upto leb_3k
126 rel sq_bl_o sq_bl_i 0 0 -90
127
128 extend sq_bl_i sq_tl_o upto top_5_ref
129 rel sq_tl_o sq_tl_i 0 0 -90
130
131 extend sq_tl_i sq_tr_o upto rim_3t
132 rel sq_tr_o sq_tr_i 0 0 -90
133
134 extend sq_tr_i sq_br_o upto sq_bl_i
135 rel sq_br_o sq_br_i 0 0 -90
136
137 extend sq_br_i sq_bl_o2 upto sq_bl_o
138
139 #---------- bottom junction between main loop, main-8
140
141 layer 0
142
143 #rel sq_br_i bot_3rj_c 315
144 rel sq_br_i bot_3rj_c 345
145
146 rel bot_0rm_c bot_2rk 0 -37
147 extend bot_2rk bot_2rx_br len 130
148
149 part bot_3rj pt_main_r c
150
151 part bot_2rx slip2_pecof br
152 join bot_3rj_b bot_2rx_bl 450
153
154 extend bot_2rx_tr bot_0mx_bl len 19 1400
155
156 part bot_0mx cross_pecof_s bl
157 extend -bot_0mx_br -bot_0rj_b len 8
158
159 segment -A5
160 part bot_0rj ^pt_main_r b
161 join bot_0rm_a bot_0rj_c 450
162
163 rel bot_0mx_tr -bot_0lj_b
164
165 segment A6
166 part bot_0lj pt_main_r b
167
168 segment -A5/P0 53 -A6/P0
169 join bot_0rj_a -bot_0lj_a 450
170
171 segment -A6
172 join -bot_0lj_c -bot_0lm_a 450
173 segment /
174
175 extend bot_0mx_tl -bot_02lj_b uptoang 194 -315
176 part bot_02lj ^pt_main_r b
177 part bot_23lj ^pt_main_r c -bot_02lj_c
178
179 join bot_2rx_tl -bot_02lj_a 450
180
181 part bot_3lj ^pt_main_r c -bot_3lk
182 join bot_3rj_a -bot_3lj_a 450
183
184 join bot_23lj_b -bot_3lj_b 315 twoarcs
185 join bot_3lk -leb_3k 315 arcline
186
187 join bot_23lj_a bot_2lk 450
188 join bot_2lk -leb_2k 352
189
190 segment -X7 20 -X9
191 join rim_0t bot_0rm_c 315 arcline
192 segment /
193
194 join rim_2t bot_2rk 352 arcline
195
196 join rim_3t bot_3rj_c 315 arcline
197
198 #---------- station branch curve
199
200 layer 5
201 rel sq_tl_i -top_5le 352 0 180
202
203 layer 8
204 extend -top_5le leb_5e ang 90 -352
205 rel leb_5e leb_4e 0 -37
206 join -leb_4e top_4le0 315
207
208 layer 2
209 join -leb_3k top_3lk 389 arcsline
210 join -leb_2k top_2lk 352 arcsline
211
212 layer 0
213 segment -X10 160 -X8
214 join -leb_0k top_0lm_c 315 arcsline
215 segment /
216
217 layer 2
218 part top_45x scis_pecof br
219 join top_5le top_45x_bl 600 twoarcs
220
221 #---------- top main-line/station junction
222
223 layer 2
224
225 rel top_0rme1 -top_2j_c 0 -37
226 part top_2j pt_peco_ll c
227 join top_2lk -top_2j_b 600
228
229 extend top_2j_a -top_34jx_tr len 50
230 part top_34jx cross_peco_l tr
231 join top_3lk top_34jx_br 450
232
233 join top_45x_tr top_34jx_bl 600
234
235 extend top_34jx_tl top_3j3 len 30 -700
236 extend top_3j3 -top_3j_b len 30 800
237 part top_3j pt_peco_ll b
238
239 extend -rim_3t -rim_3tt ang 45 -389
240
241 join -top_2j_c rim_2t 352
242 join -top_3j_c rim_3tt 352
243
244 extend top_45x_tl top_5x1 len 40
245 extend top_5x1 top_5x2 len 40 2000
246 join top_5x2 -top_3j_a 450
247
248 #---------- station
249
250 # left bridge, `leb'
251
252 layer 10
253
254 part leb_4y pt_peco_sl c leb_4e
255 extend leb_4y_a sta_4neare uptoang 5 -315
256 extend sta_4neare sta_4far len 1118
257
258 rel sta_4neare sta_5nears 130 30
259 extend sta_5nears sta_5far upto sta_4far
260
261 extend -sta_5nears -sta_5neare1 len 60 -450
262 extend -sta_5neare1 -sta_5neare2 len 50 450
263
264 extend leb_5e leb_5eb upto leb_4y_a
265 join leb_5eb sta_5neare2 352
266
267 layer 20
268
269 # high-level lines and platforms
270
271 rel sta_4neare sta_6far 500 76
272 part sta_67r pt_peco_sl a -sta_6far
273
274 rel sq_br_i high_6br0 230 0 -180
275 extend high_6br0 high_6br1 ang 90 -230
276 join -sta_67r_c high_6br0 230
277
278 extend -sta_6far -sta_6nears len 630
279 part sta_67l pt_peco_sl b sta_6nears
280 join sta_67l_a -sta_67r_b 230
281 extend -sta_67l_c high_6bl5 uptoang -30 230
282
283 layer p20
284
285 rel sta_6nears sta_6nears_platnear 0 -14.5
286 rel sta_6nears_platnear sta_6nears_platfar 0 -17
287 extend sta_6nears_platnear sta_6far_platnear upto sta_6far
288 extend sta_6nears_platfar  sta_6far_platfar  upto sta_6far
289 join sta_6nears_platnear -sta_6nears_platfar 1 
290 join sta_6far_platnear -sta_6far_platfar 1 
291
292 # medium-level platforms
293
294 layer p10
295
296 rel sta_4far sta_4far_platnear 0 -14.5
297 rel sta_4far_platnear sta_4far_platfar 0 -17
298 extend -sta_4far_platnear -sta_4neare_plat upto sta_4neare
299 extend -sta_4far_platfar -sta_4nears_platfar upto sta_5nears
300 join sta_4neare_plat sta_4nears_platfar 1
301 join sta_4far_platnear -sta_4far_platfar 1 
302
303 rel sta_5far sta_5far_platnear 0 14.5
304 rel sta_5far_platnear sta_5far_platfar 0 17
305 extend -sta_5far_platnear -sta_5neare_plat upto sta_5nears
306 extend -sta_5far_platfar -sta_5neare_platfar upto sta_4neare
307 join sta_5neare_platfar sta_5neare_plat 1
308 join sta_5far_platnear -sta_5far_platfar 1
309
310 layer 10
311
312 # turntable
313
314 rel sta_4far_platnear sta_tt_mid -50 -120
315 part sta_tt tt_atlas mid
316 part sta_ttmotor tt_atlas_motor cout sta_tt_out90
317
318 # station line 3
319
320 rel sta_4neare sta_3neare 15 -48 -8
321 part sta_3sc pt_peco_sr c -sta_3neare
322 join leb_4y_b -sta_3sc_a 230
323
324 extend sta_3neare sta_3y0_c uptoang 5 -230
325 part sta_3y0 pt_peco_sl c
326
327 # junctions
328
329 layer 10
330 extend sta_3y0_b sta_0y1_c ang 1 -230
331 part sta_0y1 pt_peco_sl c
332
333 layer 10
334 rel sta_4neare sta_3nears 280 -46
335 part sta_3y1 pt_peco_sl c sta_3y0_a
336 join sta_3y1_a sta_3nears 450
337
338 extend sta_3nears sta_3far len 500
339 extend sta_3far sta_3far1 len 30 -650
340 join sta_3far1 -sta_tt_out210 230
341
342 # station line 2
343
344 part sta_2y0 pt_peco_sr c sta_3y1_b
345 extend sta_2y0_b sta_2nears parallel sta_3nears 230
346 extend sta_2nears sta_2far upto sta_3far1
347 join sta_2far -sta_tt_out195 230
348
349 # station line 1
350
351 rel sta_2far sta_1far 0 -37
352 join sta_1far sta_tt_in 230
353 join sta_2y0_a sta_1far 230 arcline
354
355 #---------- sort-of helix (regions sc and h)
356
357 layer 0
358 extend midx_j_b sc_9 len 80 -230
359
360 layer 5
361 rel top_0lm_c -sc_7 0 40
362
363 layer 2
364 extend -sc_7 -sc_8 ang 45 315
365 join sc_9 sc_8 315
366
367 layer 8
368 extend sc_7 sc_6 ang 60 -275
369 extend sta_3sc_b -sc_3 len 20 -450
370 extend -sc_3 -sc_5 len 50 230
371 join sc_6 sc_5 230
372
373 layer 12
374 extend sta_0y1_b high_6s0 ang 65 -230
375 extend high_6s0 high_6s1 uptoang 15 230
376
377 layer 15
378 extend high_6s1 high_6s2 len 100
379
380 layer 20
381 rel sq_tr_i high_6s4 0 320 90
382
383 layer 18
384 join high_6s2 high_6s4 230
385
386 #---------- high-level goods
387
388 layer 20
389
390 extend high_6s4 highr_6jt_c ang 45 230
391 part highr_6jt pt_peco_sr c
392
393 rel sta_1far -high_sta6far -10 -37
394 extend high_sta6far high_sta6near upto sta_2y0_a
395
396 extend highr_6jt_b highr_x_br uptoang -120 230
397
398 part highr_x cross_atlas_90m br
399
400 extend highr_x_tl highr_6sc_c ang 20 230
401 part highr_6sc pt_peco_sr c
402 extend highr_6sc_a highr_6out ang 15 230
403 join highr_6out high_sta6far 230
404
405 layer s
406 extend -highr_x_bl -demo_highr_6jb_c uptoang -90 230
407 extend -sq_br_o place_highr_6jb_c upto demo_highr_6jb_c
408
409 layer 20
410 rel place_highr_6jb_c highr_6jb_c -5 0
411 part highr_6jb pt_peco_sl c
412 join highr_6jb_b highr_x_bl 230
413 join highr_6jt_a -highr_6jb_a 230 arcline
414 join high_6br1 highr_6jb_c 230
415
416 extend highr_x_tr highr_7kink uptoang 225 -230
417 extend highr_7kink -highr_7sc_a ang 30 230
418 rel high_sta6near high_sta7near 0 37
419
420 part highr_7sc pt_peco_sr a
421 join -highr_7sc_c high_sta7near 230
422
423 join highr_7sc_b -highr_6sc_b 230
424
425 part high_67j pt_peco_sr c high_6bl5
426 join high_67j_b -high_sta6near 267
427 join high_67j_a -high_sta7near 230
428
429 #---------- shunting yard
430
431 layer 10
432
433 defobj yard
434  define(`extendyard',`
435   part j$1 pt_peco_sr c $2
436   part k$1 pt_peco_sr c j$1_b
437   extend k$1_b near$1a ang 0.001 -230
438   extend k$1_a near$1b ang 22.501 230
439   extend near$1a far$1a $3
440   extend near$1b far$1b $4
441  ')
442  abs e 200 200 0
443  extendyard(`0',`e',   `len 600',`len 500')
444  extendyard(`1',`j0_a',`len 500',`len 400')
445  extend j1_a e2a ang 2 -230
446  extend e2a near2a parallel near0a 230
447  extend near2a far2a len 370
448 enddef
449
450 extend sta_0y1_a yard_0e ang 31 -230
451 part yard yard e yard_0e
452
453 #---------- train houses
454
455 extend sta_tt_out135 sta_9house len 200  -230
456 extend sta_tt_out150 sta_8house len 230  -400
457 extend sta_tt_out165 sta_7house upto sta_8house -2000
458
459 eof