chiark / gitweb /
more stuff, including inter-layer joins
[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 #---------- main line figure-of-8
31
32 layer 0
33
34 abs midx_x_m 930 700 90
35 part midx_x cross_peco_s m
36
37 extend midx_x_tr -top_0rm_b parallel demos!right_main_up 315
38 part top_0rm ^pt_main_r b
39
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
43
44 layer 2
45 rel top_2lk top_3lk 0 -37
46 rel top_3lk top_45x_br 30 -37 -2
47
48 layer s
49 rel top_3lk top_5_ref 0 -74
50 layer =
51
52 layer 0
53 extend -midx_x_bl -midx_j_a len 10 315
54 part midx_j pt_peco_sl a
55
56 extend -midx_j_c -bot_0lm_b parallel demos!right_main_up 315
57 part bot_0lm ^pt_main_r b
58
59 extend -bot_0lm_c -leb_0k uptoang 90 315
60 rel -leb_0k -leb_2k 0 -37
61 rel -leb_2k -leb_3k 0 -37
62
63 rel -bot_0lm_c bot_2lk 0 -37
64 rel bot_2lk bot_3lk 74 -37
65
66 layer s
67 extend -midx_x_br -demo_midx_x_br_x ang 7 316
68 extend -demo_midx_x_br_x -demo_bot_0rm_b parallel demos!right_main_down -316
69 part demo_bot_0rm pt_main_r b
70
71 layer l
72 extend bot_0lm_a -bot_0rm_c upto demo_bot_0rm_c
73
74 layer =
75 part bot_0rm pt_main_r c
76 extend -top_0rm_c top_0rme upto bot_0rm_c
77 join bot_0rm_b midx_x_br 315
78
79 extend top_0rme top_0rme1 ang 9 315
80
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
84
85 join top_0lm_a -top_0rm_a 450
86
87 #---------- box
88
89 layer l*
90
91 extend bot_3lk sq_bl_o upto leb_3k
92 rel sq_bl_o sq_bl_i 0 0 -90
93
94 extend sq_bl_i sq_tl_o upto top_5_ref
95 rel sq_tl_o sq_tl_i 0 0 -90
96
97 extend sq_tl_i sq_tr_o upto rim_3t
98 rel sq_tr_o sq_tr_i 0 0 -90
99
100 extend sq_tr_i sq_br_o upto sq_bl_i
101 rel sq_br_o sq_br_i 0 0 -90
102
103 extend sq_br_i sq_bl_o2 upto sq_bl_o
104
105 #---------- bottom junction between main loop, main-8
106
107 layer 0
108
109 rel sq_br_i bot_3rj_c 315
110
111 part bot_3rj pt_main_r c
112 extend bot_3rj_b bot_2rx_bl uptoang 170.5 -315
113 part bot_2rx slip2_shino bl
114
115 extend bot_2rx_tr bot_0mx_bl ang 0.5 315
116 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
119 join bot_0rm_a bot_0rj_c 315
120
121 extend bot_0mx_tr -bot_0lj_b len 5 -315
122 part bot_0lj pt_main_r b
123
124 join bot_0rj_a -bot_0lj_a 315
125 join -bot_0lj_c -bot_0lm_a 450
126
127 extend bot_0mx_tl -bot_02lj_b uptoang 194 -315
128 part bot_02lj ^pt_main_r b
129 part bot_23lj ^pt_main_r c -bot_02lj_c
130
131 join bot_2rx_tl -bot_02lj_a 450
132
133 part bot_3lj ^pt_main_r c -bot_3lk
134 join bot_3rj_a -bot_3lj_a 450
135
136 join bot_23lj_b -bot_3lj_b 315
137 join bot_3lk -leb_3k 315 arcline
138
139 join bot_23lj_a bot_2lk 450
140 join bot_2lk -leb_2k 352
141
142 join rim_0t bot_0rm_c 315 arcline
143
144 rel bot_0rm_c bot_2rk 0 -37
145 join rim_2t bot_2rk 352 arcline
146 join bot_2rk bot_2rx_br 450
147
148 join rim_3t bot_3rj_c 315 arcline
149
150 #---------- station branch curve
151
152 layer 5
153 rel sq_tl_i -top_4le 352 37 180
154 rel -top_4le -top_5le 0 37
155
156 layer 8
157 extend -top_4le leb_4e ang 90 -315
158 extend -top_5le leb_5e ang 90 -352
159
160 layer 2
161 join -leb_3k top_3lk 389 arcsline
162 join -leb_2k top_2lk 352 arcsline
163
164 layer 0
165 join -leb_0k top_0lm_c 315 arcsline
166
167 #extend leb_3k leb_3b ang 30 389
168 #extend leb_2k leb_2b ang 30 352
169 #extend leb_0k leb_0b ang 30 315
170
171 #extend -top_3lk -leb_3a ang 60 -389
172 #extend -top_2lk -leb_2a ang 60 -352
173 #extend -top_0lm_c -leb_0a ang 60 -315
174
175 layer 2
176 part top_45x scis_shino br
177 join top_5le top_45x_bl 450 twoarcs
178 join top_4le top_45x_br 450 twoarcs
179
180 #---------- top main-line/station junction
181
182 layer 2
183
184 rel top_0rme1 -top_2j_c 0 -37
185 part top_2j pt_peco_ll c
186 join top_2lk -top_2j_b 600
187
188 extend top_2j_a -top_34jx_tr len 50
189 part top_34jx cross_peco_l tr
190 join top_3lk top_34jx_br 450
191
192 join top_45x_tr top_34jx_bl 315
193
194 extend top_34jx_tl top_3j3 len 30 -700
195 extend top_3j3 -top_3j_b len 30 800
196 part top_3j pt_peco_ll b
197
198 extend -rim_3t -rim_3tt ang 45 -389
199
200 join -top_2j_c rim_2t 352
201 join -top_3j_c rim_3tt 352
202
203 extend top_45x_tl top_5x1 len 40
204 extend top_5x1 top_5x2 len 40 2000
205 join top_5x2 -top_3j_a 450
206
207 #---------- station
208
209 # left bridge, `leb'
210
211 layer 10
212
213 part leb_4y pt_peco_sl c leb_4e
214 extend leb_4y_a sta_4neare uptoang 5 -315
215 extend sta_4neare sta_4far len 1118
216
217 rel sta_4neare sta_5nears 130 30
218 extend sta_5nears sta_5far upto sta_4far
219
220 extend -sta_5nears -sta_5neare1 len 60 -450
221 extend -sta_5neare1 -sta_5neare2 len 50 450
222
223 extend leb_5e leb_5eb upto leb_4y_a
224 join leb_5eb sta_5neare2 352
225
226 layer 20
227
228 # high-level lines and platforms
229
230 rel sta_4neare sta_6far 500 76
231 part sta_67r pt_peco_sl a -sta_6far
232
233 rel sq_br_i high_6br0 230 0 -180
234 extend high_6br0 high_6br1 ang 90 -230
235 join -sta_67r_c high_6br0 230
236
237 extend -sta_6far -sta_6nears len 630
238 part sta_67l pt_peco_sl b sta_6nears
239 join sta_67l_a -sta_67r_b 230
240 extend -sta_67l_c high_6bl5 uptoang 90 230
241
242 layer p20
243
244 rel sta_6nears sta_6nears_platnear 0 -14.5
245 rel sta_6nears_platnear sta_6nears_platfar 0 -17
246 extend sta_6nears_platnear sta_6far_platnear upto sta_6far
247 extend sta_6nears_platfar  sta_6far_platfar  upto sta_6far
248 join sta_6nears_platnear -sta_6nears_platfar 1 
249 join sta_6far_platnear -sta_6far_platfar 1 
250
251 # medium-level platforms
252
253 layer p10
254
255 rel sta_4far sta_4far_platnear 0 -14.5
256 rel sta_4far_platnear sta_4far_platfar 0 -17
257 extend -sta_4far_platnear -sta_4neare_plat upto sta_4neare
258 extend -sta_4far_platfar -sta_4nears_platfar upto sta_5nears
259 join sta_4neare_plat sta_4nears_platfar 1
260 join sta_4far_platnear -sta_4far_platfar 1 
261
262 rel sta_5far sta_5far_platnear 0 14.5
263 rel sta_5far_platnear sta_5far_platfar 0 17
264 extend -sta_5far_platnear -sta_5neare_plat upto sta_5nears
265 extend -sta_5far_platfar -sta_5neare_platfar upto sta_4neare
266 join sta_5neare_platfar sta_5neare_plat 1
267 join sta_5far_platnear -sta_5far_platfar 1
268
269 layer 10
270
271 # turntable
272
273 rel sta_4far_platnear sta_tt_mid -50 -120
274 part sta_tt tt_atlas mid
275 part sta_ttmotor tt_atlas_motor cout sta_tt_out90
276
277 # station line 3
278
279 rel sta_4neare sta_3neare 15 -48 -8
280 part sta_3sc pt_peco_sr c -sta_3neare
281 join leb_4y_b -sta_3sc_a 230
282
283 extend sta_3neare sta_3y0_c uptoang 5 -230
284 part sta_3y0 pt_peco_sl c
285
286 # junctions
287
288 layer 10
289 extend sta_3y0_b sta_0y1_c ang 1 -230
290 part sta_0y1 pt_peco_sl c
291
292 layer 10
293 rel sta_4neare sta_3nears 280 -46
294 part sta_3y1 pt_peco_sl c sta_3y0_a
295 join sta_3y1_a sta_3nears 450
296
297 extend sta_3nears sta_3far len 500
298 extend sta_3far sta_3far1 len 30 -650
299 join sta_3far1 -sta_tt_out210 230
300
301 # station line 2
302
303 part sta_2y0 pt_peco_sr c sta_3y1_b
304 extend sta_2y0_b sta_2nears parallel sta_3nears 230
305 extend sta_2nears sta_2far upto sta_3far1
306 join sta_2far -sta_tt_out195 230
307
308 # station line 1
309
310 rel sta_2far sta_1far 0 -37
311 join sta_1far sta_tt_in 230
312 join sta_2y0_a sta_1far 230 arcline
313
314 #---------- sort-of helix (regions sc and h)
315
316 layer 0
317 extend midx_j_b sc_9 len 80 -230
318
319 layer 5
320 rel top_0lm_c -sc_7 0 40
321
322 layer 2
323 extend -sc_7 -sc_8 ang 45 315
324 join sc_9 sc_8 315
325
326 layer 8
327 extend sc_7 sc_6 ang 60 -275
328 extend sta_3sc_b -sc_3 len 20 -450
329 extend -sc_3 -sc_5 len 50 230
330 join sc_6 sc_5 230
331
332 layer 12
333 extend sta_0y1_b high_6s0 ang 65 -230
334 extend high_6s0 high_6s1 uptoang 0 230
335
336 #---------- shunting yard
337
338 layer 10
339
340 defobj yard
341  define(`extendyard',`
342   part j$1 pt_peco_sr c $2
343   part k$1 pt_peco_sr c j$1_b
344   extend k$1_b near$1a ang 0.001 -230
345   extend k$1_a near$1b ang 22.501 230
346   extend near$1a far$1a $3
347   extend near$1b far$1b $4
348  ')
349  abs e 200 200 0
350  extendyard(`0',`e',   `len 600',`len 500')
351  extendyard(`1',`j0_a',`len 500',`len 400')
352  extend j1_a e2a ang 2 -230
353  extend e2a near2a parallel near0a 230
354  extend near2a far2a len 370
355 enddef
356
357 extend sta_0y1_a yard_0e ang 31 -230
358 part yard yard e yard_0e
359
360 #---------- train houses
361
362 extend sta_tt_out135 sta_9house len 200  -230
363 extend sta_tt_out150 sta_8house len 230  -400
364 extend sta_tt_out165 sta_7house upto sta_8house -2000
365
366 eof