chiark / gitweb /
some adjs to layers
[trains.git] / layout / ours.m4
index 87221cb42fc772de4a943ea870cb7c3549d57ce7..70780d4c66026a160ecee23f164040dfafbbb81f 100644 (file)
@@ -1,7 +1,6 @@
-include(`parts.i4')
+# -*- fundamental -*-
 
-abs midx_m 930 700 90
-part midx cross_peco_s m
+include(`parts.i4')
 
 define(`pt_main_r',`pt_peco_mr')
 
@@ -28,99 +27,544 @@ defobj demos
   part dualjn_tr ^dualjn_peco_r ib -right
 enddef
 
-#abs demos_right 200 1200 0
-#part demos demos right
+# positive segment direction is anticlockwise, since T rail is
+# on the inside (see informat.txt)
+
+#---------- main line figure-of-8
+
+layer 0
+
+abs midx_x_m 930 700 90
+
+segment midx_
+segmap  midx_F -X1  midx_B X2
+part midx_x cross_peco_s m
+
+segment -X1 165 -X3
+extend midx_x_tr -top_0rm_b parallel demos!right_main_up 315
+
+segment X7
+part top_0rm ^pt_main_r b
+
+segment X2 155 X4
+extend midx_x_tl -top_0lm_b parallel demos!-right_main_down -315
+
+segment -X8
+part top_0lm pt_main_r b
+rel top_0lm_c top_2lk 0 -37
+rel top_2lk top_3lk 0 -37
+
+segment /
+
+layer 8
+rel top_3lk top_45x_br 67 -39 -2.25
+extend -top_45x_br -top_4le0 len 120 -1200
+
+layer s
+rel top_3lk top_5_ref 0 -74
+layer =
+
+layer 0
+
+segment -A2/P0
+extend -midx_x_bl -midx_j_a len 10 315
+
+segment A2
+part midx_j pt_peco_sl a
+
+segment -A2 155 -A4
+extend -midx_j_c -bot_0lm_b parallel demos!right_main_up 315
 
-extend midx_tr -l0_jtr_b parallel demos!right_main_up 315
-part l0_jtr ^pt_main_r b
+segment A6
+part bot_0lm ^pt_main_r b
 
-extend midx_tl -l0_jtl_b parallel demos!-right_main_down -315
-part l0_jtl pt_main_r b
-rel l0_jtl_c l2_ptl 0 -37
-rel l2_ptl l3_ptl 0 -37
-rel l3_ptl l4_ptl 0 -37
-rel l4_ptl l5_ptl 0 -37
+segment -X10
+extend -bot_0lm_c -leb_0k uptoang 90 315
+segment /
 
-extend -midx_bl -hj_a len 10 315
-part hj ^pt_peco_sr a
+rel -leb_0k -leb_2k 0 -37
+rel -leb_2k -leb_3k 0 -37
 
-#rel l0_jblx_c l2_pblx 0 37
-#rel l2_pblx l3_pblx 0 37
-#extend -l0_lst l0_jblx_c uptoang 0 -315
+rel -bot_0lm_c bot_2lk 0 -37
+rel bot_2lk bot_3lk 74 -37
 
-extend -hj_c -l0_jbl_b parallel demos!right_main_up 315
-part l0_jbl ^pt_main_r b
+layer s
+extend -midx_x_br -demo_midx_x_br_x ang 7 316
+extend -demo_midx_x_br_x -demo_bot_0rm_b parallel demos!right_main_down -316
+part demo_bot_0rm pt_main_r b
 
-extend -l0_jbl_c l0_lst uptoang 90 315
-rel l0_lst l2_lst 0 -37
-rel l2_lst l3_lst 0 -37
-#rel l3_lst l4_lst 0 -37
-#rel l4_lst l5_lst 0 -37
+layer s
+extend bot_0lm_a -bot_0rm_c upto demo_bot_0rm_c
 
-rel -l0_jbl_c l2_pbl 0 -37
-rel l2_pbl l3_pbl 0 -37
+layer =
 
-extend -l0_jtr_c l0_rst uptoang -90 315
-rel l0_rst l2_rst 0 -37
-rel l2_rst l3_rst 0 -37
+segment -A5
+part bot_0rm pt_main_r c
 
-extend -l0_jtr_c l0p_dj parallel demos!dualjn_tr_ic 315
-rel l0p_dj -l23_dj_ic 0 -37
-part l23_dj ^dualjn_peco_r ic
+segment -X7
+extend -top_0rm_c top_0rme upto bot_0rm_c
 
-extend l23_dj_oa l3_sh uptoang 180 -315
+segment -A3 180 -A1
+join bot_0rm_b midx_x_br 315
 
-#thinlines:
-extend l3_pbl sq_bl_o upto l3_lst
+segment -X7
+extend top_0rme top_0rme1 ang 9 315
+extend top_0rme1 rim_0t uptoang -90 315
+segment /
+
+rel rim_0t rim_2t 0 -37
+rel rim_2t rim_3t 0 -37
+
+segment -X6 250 -X5
+join top_0lm_a -top_0rm_a 450
+
+segment /
+
+#---------- box
+
+layer l*
+
+extend bot_3lk sq_bl_o upto leb_3k
 rel sq_bl_o sq_bl_i 0 0 -90
 
-extend sq_bl_i sq_tl_o upto l5_ptl
+extend sq_bl_i sq_tl_o upto top_5_ref
 rel sq_tl_o sq_tl_i 0 0 -90
 
-extend sq_tl_i sq_tr_o upto l3_rst
+extend sq_tl_i sq_tr_o upto rim_3t
 rel sq_tr_o sq_tr_i 0 0 -90
 
 extend sq_tr_i sq_br_o upto sq_bl_i
 rel sq_br_o sq_br_i 0 0 -90
 
 extend sq_br_i sq_bl_o2 upto sq_bl_o
-#endthinlines
 
-rel sq_tl_i l4_ct 352 37 180
-rel l4_ct l5_ct 0 37
-extend l4_ct l4_cl ang 90 -315
-extend l5_ct l5_cl ang 90 -352
+#---------- bottom junction between main loop, main-8
 
-extend l3_lst l3_tlc5 ang 30 389
-extend l2_lst l2_tlc5 ang 30 352
-extend l0_lst l0_tlc5 ang 30 315
+layer p4
 
-extend -l3_ptl -l3_tlc7 ang 60 -389
-extend -l2_ptl -l2_tcl7 ang 60 -352
-extend -l0_jtl_c -l0_tcl7 ang 60 -315
+rel sq_tr_o ctrlbox_bl -64 156
+extend ctrlbox_bl ctrlbox_br len 50
+rel ctrlbox_bl ctrlbox_blv 0 0 90
+extend ctrlbox_blv ctrlbox_tl len 100
 
-# top level
+layer 0
 
+#rel sq_br_i bot_3rj_c 315
+rel sq_br_i bot_3rj_c 345
 
-extend -sq_bl_o h_bbll_c len 150
-part h_bbll ^pt_peco_sr c
-extend h_bbll_b -h_bll_b uptoang 80 -230
-part h_bll pt_peco_sr b
+rel bot_0rm_c bot_2rk 0 -37
+extend bot_2rk bot_2rx_br len 130
 
-eof
+part bot_3rj pt_main_r c
+
+part bot_2rx slip2_pecof br
+join bot_3rj_b bot_2rx_bl 450
+
+extend bot_2rx_tr bot_0mx_bl len 19 1400
+
+part bot_0mx cross_pecof_s bl
+extend -bot_0mx_br -bot_0rj_b len 8
+
+segment -A5
+segmap A5/P J
+part bot_0rj ^pt_main_r b
+join bot_0rm_a bot_0rj_c 450
+segmap A5/P P
+
+rel bot_0mx_tr -bot_0lj_b
+
+segment A6
+segmap A6/P J
+part bot_0lj pt_main_r b
+segmap A6/P P
+
+segment -A5/J0 53 -A6/J0
+join bot_0rj_a -bot_0lj_a 450
+
+segment -A6
+join -bot_0lj_c -bot_0lm_a 450
+segment /
+
+extend bot_0mx_tl -bot_02lj_b uptoang 194 -315
+part bot_02lj ^pt_main_r b
+part bot_23lj ^pt_main_r c -bot_02lj_c
+
+join bot_2rx_tl -bot_02lj_a 450
+
+part bot_3lj ^pt_main_r c -bot_3lk
+join bot_3rj_a -bot_3lj_a 450
+
+join bot_23lj_b -bot_3lj_b 315 twoarcs
+join bot_3lk -leb_3k 315 arcline
+
+join bot_23lj_a bot_2lk 450
+join bot_2lk -leb_2k 352
+
+segment -X7 20 -X9
+join rim_0t bot_0rm_c 315 arcline
+segment /
+
+layer 2
+join rim_2t bot_2rk 352 arcline
+
+layer 2
+join rim_3t bot_3rj_c 315 arcline
+
+#---------- station branch curve
+
+layer 5
+rel sq_tl_i -top_5le 352 0 180
+
+layer 8
+extend -top_5le leb_5e ang 90 -352
+rel leb_5e leb_4e 0 -37
+join -leb_4e top_4le0 315
+
+layer 2
+join -leb_3k top_3lk 389 arcsline
+join -leb_2k top_2lk 352 arcsline
+
+layer 0
+segment -X10 160 -X8
+join -leb_0k top_0lm_c 315 arcsline
+segment /
+
+layer 8
+extend top_5le top_5re0 len 30.0 315
+extend top_5re0 top_45x_bl len 95 -1200
+part top_45x scis_pecof bl
+
+#---------- top main-line/station junction
+
+layer 6
+extend -rim_2t top_2j_c len 450 -352
+#extend -rim_2t top_2j_c upto top_0rme1 -352
+
+layer 8
+part top_2j pt_peco_cl c
+#part top_2j pt_pecofguess_ll c
+
+layer 4
+extend top_2lk top_2j21 len 300
+
+layer 8
+join top_2j21 -top_2j_b 600
+
+layer 8
+extend top_45x_tr top_4j21 len 95 1200
+extend top_2j_a -top_4j22 len 0.010 -352
+join top_4j21 top_4j22 352 twoarcs
+
+rel -top_0rm_a top_5j3b 0 -148
+extend top_45x_tl top_5j3a len 95 -1200
+join top_5j3a top_5j3b 315 twoarcs
+
+layer 0
+extend top_3lk top_3u1 len 330
+rel -top_0rm_a top_3u2 35 -111
+join top_3u1 top_3u2 600
+#cross twoarcs !arcsline
+
+layer 4
+extend -rim_3t -rim_3tt1 len 15.3
+extend -rim_3tt1 -rim_3tt ang 17.5 -315
+part top_3j pt_peco_cl c -rim_3tt
+
+layer 2
+join top_3u2 -top_3j_b 315 arcline
+
+layer 6
+extend top_3j_a top_5j3c ang 45 -315
+
+layer 8
+join top_5j3b -top_5j3c 315 arcline
+
+#---------- station
+
+# left bridge, `leb'
+
+layer 10
+
+part leb_4y pt_peco_sl c leb_4e
+extend leb_4y_a sta_4nears9 len 35 -600
+extend sta_4nears9 sta_4nears2 uptoang 0 -315
+extend sta_4nears2 sta_4neare uptoang 5 -450
+extend sta_4neare sta_4far len 1148
+
+rel sta_4neare sta_5nears 130 30
+extend sta_5nears sta_5far upto sta_4far
+
+extend -sta_5nears -sta_5neare1 len 50 -1200
+extend -sta_5neare1 -sta_5neare2 len 50 -600
+
+extend leb_5e leb_5eb_c upto leb_4y_a
+part leb_5eb pt_peco_ml c
+extend leb_5eb_b sta_5neare3 ang 50 -315
+join sta_5neare3 sta_5neare2 352
+
+layer 12
+extend leb_5eb_a super_h00 uptoang 0 -325
+layer 16
+extend super_h00 super_h01 len 300
+extend super_h01 super_h0 parallel sta_5nears -325
+extend super_h0 super_h10 len 400
+extend super_h10 super_h1 uptoang -1.5 800
+
+layer s
+rel -sq_br_i place_super_h2 -350 0
+
+layer 20
+extend super_h1 super_h2 upto place_super_h2
+
+layer 24
+rel -sq_tr_i super_h3 -315 0
+join super_h2 super_h3 315 arcline
+
+layer 28
+rel -sq_tr_o super_h4 315 0
+join super_h3 super_h4 315 arcline
+
+layer 30
+extend super_h4 -super_jtrr_a ang 5 -315
+part super_jtrr pt_peco_mr a
+part super_jtrl pt_peco_ml c -super_jtrr_c
+extend super_jtrl_b super_mid uptoang 275 -315
+extend super_mid -super_jbl_b parallel super_jtrl_b 315
+part super_jbl pt_peco_ml b
+join super_jbl_a -super_jtrr_b 315 arcline
+join super_jtrl_a super_jbl_c 315 arcline
+
+
+
+layer 20
+
+# high-level lines and platforms
+
+rel sta_4neare sta_6far 500 76
+part sta_67r pt_peco_sl a -sta_6far
+
+rel sq_br_i high_6br0 230 0 -180
+extend high_6br0 high_6br1 ang 90 -230
+##join -sta_67r_c high_6br0 230
+
+extend -sta_6far -sta_6nears len 630
+part sta_67l pt_peco_sl b sta_6nears
+join sta_67l_a -sta_67r_b 230
+#extend -sta_67l_c high_6bl5 uptoang -30 230
+
+layer p20
+
+rel sta_6nears sta_6nears_platnear 0 -14.5
+rel sta_6nears_platnear sta_6nears_platfar 0 -17
+extend sta_6nears_platnear sta_6far_platnear upto sta_6far
+extend sta_6nears_platfar  sta_6far_platfar  upto sta_6far
+join sta_6nears_platnear -sta_6nears_platfar 1 
+join sta_6far_platnear -sta_6far_platfar 1 
+
+# medium-level platforms
+
+layer p10
+
+rel sta_4far sta_4far_platnear 0 -14.5
+rel sta_4far_platnear sta_4far_platfar 0 -45
+extend -sta_4far_platnear -sta_4neare_plat upto sta_4neare
+extend -sta_4far_platfar -sta_4nears_platfar upto sta_5nears
+join sta_4neare_plat sta_4nears_platfar 1
+join sta_4far_platnear -sta_4far_platfar 1 
+
+rel sta_5far sta_5far_platnear 0 14.5
+rel sta_5far_platnear sta_5far_platfar 0 30
+extend -sta_5far_platnear -sta_5neare_plat upto sta_5nears
+extend -sta_5far_platfar -sta_5neare_platfar upto sta_4neare
+join sta_5neare_platfar sta_5neare_plat 1
+join sta_5far_platnear -sta_5far_platfar 1
+
+layer 10
+
+# turntable
+
+rel sta_4far_platnear sta_tt_mid -80 -148
+part sta_tt tt_atlas mid
+part sta_ttmotor tt_atlas_motor cout sta_tt_out90
+
+# station line 3
+
+rel sta_4neare sta_3neare 15 -76 -8
+part sta_3sc pt_peco_sr c -sta_3neare
+join leb_4y_b -sta_3sc_a 230
+
+extend sta_3neare sta_3y0_c uptoang 5 -230
+part sta_3y0 pt_peco_sl c
+
+# junctions
+
+layer 10
+extend sta_3y0_b sta_0y1_c ang 1 -230
+part sta_0y1 pt_peco_sl c
+
+layer 10
+rel sta_4neare sta_3nears 280 -74
+part sta_3y1 pt_peco_sl c sta_3y0_a
+join sta_3y1_a sta_3nears 450
+
+extend sta_3nears sta_3far len 500
+extend sta_3far sta_3far1 len 30 -650
+join sta_3far1 -sta_tt_out210 230
+
+# station line 2
+
+part sta_2y0 pt_peco_sr c sta_3y1_b
+extend sta_2y0_b sta_2nears parallel sta_3nears 230
+extend sta_2nears sta_2far upto sta_3far1
+join sta_2far -sta_tt_out195 230
+
+# station line 1
+
+rel sta_2far sta_1far 0 -37
+join sta_1far sta_tt_in 230
+join sta_2y0_a sta_1far 230 arcline
+
+#---------- sort-of helix (regions sc and h)
+
+layer 0
+extend midx_j_b sc_9 len 80 -230
+
+layer 5
+rel top_0lm_c -sc_7 0 40
+
+layer 2
+extend -sc_7 -sc_8 ang 45 315
+join sc_9 sc_8 315
+
+layer 8
+extend sc_7 sc_6 ang 60 -275
+extend sta_3sc_b -sc_3 len 20 -450
+extend -sc_3 -sc_5 len 50 230
+join sc_6 sc_5 230
+
+layer 13
+extend sta_0y1_b high_6s0 ang 65 -230
+
+layer 16
+extend high_6s0 high_6s1 uptoang 15 230
+
+layer 18
+extend high_6s1 high_6s2 len 100
+
+layer 20
+#rel sq_tr_i high_6s4 0 320 90
+rel sq_tl_i -high_6s4 320 0
+
+layer 18
+join high_6s2 high_6s4 230
+
+#---------- high-level goods
+
+layer 20
+
+extend high_6s4 highr_6jt_c ang 45 -230
+part highr_6jt pt_peco_sl c
+
+rel sta_1far -high_sta6far -10 0
+extend high_sta6far high_sta6near upto sta_2y0_a
+
+extend highr_6jt_b highr_x_br uptoang -60 -230
+
+part highr_x cross_atlas_90m br
+
+extend highr_x_tl highr_6sc_c ang 20 -230
+part highr_6sc pt_peco_sl c
+extend highr_6sc_a highr_6out ang 15 230
+##join highr_6out high_sta6far 230
+
+layer s
+extend highr_x_bl -demo_highr_6jb_c uptoang 90 -230
+extend sq_bl_i place_highr_6jb_c upto demo_highr_6jb_c
+
+layer 20
+rel place_highr_6jb_c highr_6jb_c -10 0
+part highr_6jb pt_peco_sr c
+join highr_6jb_b -highr_x_bl 230
+join highr_6jt_a -highr_6jb_a 230 arcline
+##join high_6br1 highr_6jb_c 230
+
+extend -highr_x_tr highr_7kink uptoang -45 230
+extend highr_7kink -highr_7sc_a ang 30 -230
+rel high_sta6near high_sta7near 0 37
+
+part highr_7sc pt_peco_sl a
+##join -highr_7sc_c high_sta7near 230
+
+##join highr_7sc_b -highr_6sc_b 230
+
+#part high_67j pt_peco_sr c high_6bl5
+##join high_67j_b -high_sta6near 267
+##join high_67j_a -high_sta7near 230
+
+#---------- shunting yard
+
+layer 10
+
+#defobj yard
+# define(`extendyard',`
+#  part j$1 pt_peco_sr c $2
+#  part k$1 pt_peco_sr c j$1_b
+#  extend k$1_a near$1a ang 0.001 -230
+##  extend k$1_a near$1b len 90
+#  extend k$1_b near$1b2 ang 22.501 -230
+#  extend near$1b2 far$1b $4
+#  extend near$1a far$1a $3
+# ')
+# abs e 200 200 0
+# extendyard(`0',`e',   `len 600',`len 500')
+# extendyard(`1',`j0_a',`len 500',`len 400')
+# extend j1_a e2a ang 2 -230
+# extend e2a near2a parallel near0a 230
+# extend near2a far2a len 370
+#enddef
+
+#extend sta_0y1_a yard_0e ang 31 -230
+#part yard yard e yard_0e
+extend sta_0y1_a yard_0e ang 0.01 -230
+
+part yard_p   pt_peco_sl c yard_0e
+part yard_pr  pt_peco_sr c yard_p_a
+part yard_pl  pt_peco_sr c yard_p_b
+part yard_pll pt_peco_sr c yard_pl_a
+
+extend yard_pr_b yard_err_s len 180
+extend yard_pr_a yard_erl_s len 120
+extend yard_pl_b yard_elr_s len 180
+extend yard_pll_b yard_ellr_s len 180
+extend yard_pll_a yard_elll_s len 120
+
+extend yard_err_s yard_err_t len 275 4500
+
+extend yard_erl_s yard_erl_t len 180 2400
+extend yard_erl_t yard_erl_u len 150 800
+extend yard_erl_u yard_erl_v len 200 300
+
+extend yard_elr_s yard_elr_t upto yard_erl_t 2400
+extend yard_elr_t yard_elr_u upto yard_erl_u 800
+extend yard_elr_u yard_elr_v len 240 315
 
-#silent:
-extend h_bll_a -demo_h_bbl_b parallel demos!right_short_down -230
-part demo_h_bbl pt_peco_sr b
+extend yard_ellr_s yard_ellr_t upto yard_erl_t 2400
+extend yard_ellr_t yard_ellr_u upto yard_erl_u 800
+extend yard_ellr_u yard_ellr_v len 260 330
 
-extend hj_b hj_s1 len 0.0040
-extend hj_s1 hj_s2 uptoang 135 -230
-#extend hj_s2 hj_ct uptoang 180 -230
+extend yard_elll_s yard_elll_t parallel yard_ellr_s 230
+extend yard_elll_t yard_elll_u upto yard_ellr_u 600
+extend yard_elll_u yard_elll_v len 200 365
 
-extend -h_bll_c -hj_s9 ang 40 -230
-#join hj_s2 hj_s9 230
-#join hj_s2 hj_s9 0
+#---------- train houses
 
-extend -hj_s9 -hj_s9_e ang 180 230
+extend sta_tt_out135 sta_9house len 200  -230
+extend sta_tt_out150 sta_8house len 230  -400
+extend sta_tt_out165 sta_7house len 115
 
+extend sta_8house sta_8house_b len 120
+rel sta_8house_b sta_7house_b 0 -37
+join sta_7house sta_7house_b 300
+
+ident $Revision$
 eof