chiark / gitweb /
atlas crossings
[trains.git] / layout / parts.i4
1 define(`def_thing_l_r',`
2 dnl OBJNAME-EXCLUDING-L
3  defpart $1r
4   abs c 200 200 0
5   objflip $1l c c =
6  enddef
7 ')
8
9 define(`def_point_ord',`
10 dnl OBJNAME-EXCLUDING-PT-L ANGLE STRAIGHT-L CURVE-LONGER CURVE-DIVERGE-Y
11  defpart pt_$1l
12   abs c 200 200 0
13   extend c a len $3
14   rel a b $4 -$5 $2
15   join c b 0
16  enddef
17  def_thing_l_r(`pt_$1')
18 ')
19
20 define(`def_point_curve',`
21 dnl OBJNAME-EXCLUDING-PT-L TIGHT-ANG TIGHT-RECT TIGHT-DIVERGE-Y SHALLOW...
22  defpart pt_$1l
23   abs c 200 200 0
24   rel c a $6 -$7 $5
25   rel c b $3 -$4 $2
26   join c a 0
27   join c b 0
28  enddef
29  def_thing_l_r(`pt_$1')
30 ')
31
32 define(`def_point_y',`
33 dnl OBJNAME-EXCLUDING-PT HALF-ANG RECT HALF-DIVERGE-Y
34  defpart pt_$1
35   abs c 200 200 0
36   rel c l $3 -$4  $2
37   rel c r $3  $4 -$2
38   join c l 0
39   join c r 0
40  enddef
41 ')
42
43 define(`def_crossing',`
44 dnl OBJNAME-EXCLUDING-CROSS HALF-ANG HALF-LENGTH
45  defpart cross_$1
46   abs m 200 200 0
47   rel m ml 0 0 $2
48   rel m mr 0 0 -$2
49   extend ml tl len $3
50   extend mr tr len $3
51   extend mr bl len -$3
52   extend ml br len -$3
53  enddef
54 ')
55
56 def_point_ord(`peco_s', 22.5, 87,  -0.5, 17)
57 def_point_ord(`peco_m', 14,  126.5,-1.55,13.21)
58 def_point_ord(`peco_l',  8,  160,  -0.4, 13.21)
59  # catalogue says 123.7 for STRAIGHT-L ?!
60
61 def_point_curve(`peco_c',  10, 154.4, 13.8,  3, 156.0, 0.8)
62  dnl 163.2-  } dist to markings on paper cribsheet from c
63  dnl 32.8-   }
64
65 def_point_y(`peco_y', 4, 127, 8.4)
66
67 def_crossing(`mythical',7,   80)
68 def_crossing(`peco_l',  4,   93.75)
69 def_crossing(`peco_s', 12.5, 46)
70
71
72 def_crossing(`atlas_15',   7.5, 64)
73 def_crossing(`atlas_15m',  7.5, 61)
74 def_crossing(`atlas_90',  45,   62.4)
75 def_crossing(`atlas_90m', 45,    8.5)
76 def_crossing(`atlas_30',  15,   32.9)
77 def_crossing(`atlas_30m', 15,   30.9)
78 def_crossing(`atlas_60',  30,   48.5)
79 def_crossing(`atlas_60m', 30,   14.5)
80 def_crossing(`atlas_20',  10,   63.5)
81 def_crossing(`atlas_20m', 10,   46.0)
82 def_crossing(`atlas_45',  22.5, 50.9)
83 def_crossing(`atlas_45m', 22.5, 19.5)
84
85 define(`def_point_shino',`
86 dnl OBJNAME-EXCLUDING-PT-L($1) A($2) B($3) Q($4)
87 dnl not R($5)
88  defpart pt_$1l
89   abs c 200 200 0
90   layer s
91   rel c strintersect $3 0 $4
92   rel strintersect strbackanal -$3
93   layer =
94   rel strbackanal b $2
95   join c b 240 arcline
96   extend c a len $2
97  enddef
98  def_thing_l_r(`pt_$1')
99 ')
100
101 def_point_shino(`shino_4', 136, 45, 14.25)
102 def_point_shino(`shino_6', 177, 49,  9.50)
103 def_point_y(`shino_y', 7.125, 140, 10.9)
104
105 defpart pt_shino_x3
106   abs c 200 200 0
107   layer s
108   rel c strintersectc  74 0   9.5
109   rel c strintersectb 103 0 -12
110   layer =
111   rel strintersectc l 141
112   rel strintersectb r 112
113   extend c m len 215
114   join c l 1 arcline
115   join c r 1 arcline
116 enddef
117
118 defpart pt_shino_cl
119   abs c 200 200 -20
120   extend c a len 268 -315
121   rel a b -4 -18 10
122   join c b 1 twoarcs
123 #  extend c b upto a -285
124 enddef
125 defpart pt_shino_cr
126   abs c 200 200 20
127   objflip pt_shino_cl c c =
128 enddef
129
130 defpart slip2_shino
131  abs m 200 200 0
132  rel m ml 0 0  4.75
133  rel m mr 0 0 -4.75
134  extend ml tl len 114
135  extend mr tr len 114
136  extend ml br len -114
137  extend mr bl len -114
138  join bl tl 500
139  join br tr 500
140 enddef
141
142 defpart scis_shino
143   abs bl 200 200 0
144   rel bl br 0 33 0
145   extend bl tl len 308
146   extend br tr len 308
147   layer s
148   rel bl m 154 16.5
149   rel m ml 0 0 9.5
150   rel m mr 0 0 -9.5
151   layer =
152   join bl mr 315
153   join mr tr 315
154   join br ml 315
155   join ml tl 315
156 enddef