1 define(`def_thing_l_r',`
2 dnl OBJNAME-EXCLUDING-L
9 # Conventionally, points' toes are c, the straight through is a
10 # and the curve is b. Segments run from c towards a and b.
12 # Crossings (including slips) run `vertically' and have
13 # tl, tr, bl, br. Segments run from b* to t*.
15 define(`def_point_ord',`
16 dnl OBJNAME-EXCLUDING-PT-L ANGLE STRAIGHT-L CURVE-LONGER CURVE-DIVERGE-Y MIN-R
25 def_thing_l_r(`pt_$1')
28 define(`def_point_curve',`
29 dnl OBJNAME-EXCLUDING-PT-L TIGHT-ANG TIGHT-RECT TIGHT-DIVERGE-Y SHALLOW.. MIN-R START-OFFSET-ANG
42 def_thing_l_r(`pt_$1')
45 define(`def_point_y',`
46 dnl OBJNAME-EXCLUDING-PT HALF-ANG RECT HALF-DIVERGE-Y MIN-R
58 define(`def_crossing',`
59 dnl OBJNAME-EXCLUDING-CROSS HALF-ANG HALF-LENGTH
73 def_point_ord(`peco_s', 22.5, 87, -0.5, 17, 200) #ST-5,6 not minr 230 ?
74 def_point_ord(`peco_m', 14, 126.5,-1.55,13.21, 315) #SL-395,396 not minr 457 ?
75 def_point_ord(`peco_l', 8, 160, -0.4, 13.21, 914) #SL-388,389
76 # catalogue says 123.7 for STRAIGHT-L ?!
77 # SL-<n> and SL-E<n> have the same geometry
79 def_point_ord(`pecofguess_l', 10, 160, -1.0, 13.21, 800) #SLE-388F,389F
81 # 36 sleepers just like 36
82 # has 5.2mm gauge, 8.15mm rails offset:
83 # unlike 4.9mm gauge, 7.15mm rails offset:
84 # SL-<n>F and SL-<n> do NOT have the same geometry
86 def_point_curve(`peco_c', 11, 154.5, 14.0, 2, 156.4, 0.4, 457, 1) #SL-386,387
88 def_point_y(`peco_y', 8, 124.2, 7.9, 800) # not minr 762 ?
90 #def_crossing(`mythical',7, 80)
91 def_crossing(`peco_l', 4, 93.75) # SL-394
92 def_crossing(`peco_s', 12.5, 46) # ST-7
93 def_crossing(`pecof_s', 10, 51.85) # SL-E391F,E392F
94 def_crossing(`pecof_l', 5, 77.00) # SL-E394F
97 def_crossing(`atlas_15', 7.5, 64)
98 def_crossing(`atlas_15m', 7.5, 61)
99 def_crossing(`atlas_90', 45, 62.4)
100 def_crossing(`atlas_90m', 45, 8.5)
101 def_crossing(`atlas_30', 15, 32.9)
102 def_crossing(`atlas_30m', 15, 30.9)
103 def_crossing(`atlas_60', 30, 48.5)
104 def_crossing(`atlas_60m', 30, 14.5)
105 def_crossing(`atlas_20', 10, 63.5)
106 def_crossing(`atlas_20m', 10, 46.0)
107 def_crossing(`atlas_45', 22.5, 50.9)
108 def_crossing(`atlas_45m', 22.5, 19.5)
110 define(`def_point_shino',`
111 dnl OBJNAME-EXCLUDING-PT-L($1) A($2) B($3) Q($4)
116 rel c strintersect $3 0 $4
117 rel strintersect strbackanal -$3
125 def_thing_l_r(`pt_$1')
128 def_point_shino(`shino_4', 136, 45, 14.25)
129 def_point_shino(`shino_6', 177, 49, 9.50)
130 def_point_y(`shino_y', 7.125, 140, 10.9, 750) # not minr 500 ?
135 rel c strintersectc 74 0 9.5
136 rel c strintersectb 103 0 -12
138 rel strintersectc l 141
139 rel strintersectb r 112
149 dnl OBJNAME-EXCLUDING-SLIP2 HALF-LEN HALF-ANG
151 # configurations: bl-tl 0 bl-tr 1 br-tl 2 br-tr 3
170 def_slip2(`shino', 114, 4.75)
171 def_slip2(`pecof', 77, 5.00)
174 dnl OBJNAME-EXCLUDING-SCIS HALF-LENGTH HALF-SPACING HALF-ANG MIN-R
194 def_scis(`pecof', 135.42, 13.5, 10, 315)
195 def_scis(`shino', 154, 13.5, 9.5, 315)
197 define(`tt_do_circle',`
199 rel mid forcirc0$2 0 $1 0
200 rel mid forcirc1$2 0 -$1 180
202 join forcirc0$2 forcirc1$2 0
203 join forcirc1$2 forcirc0$2 0
210 extend mid out len 80
211 extend -mid -in len 80
216 define(`tt_atlas_out',`
220 rel mid$1 out$1 109 0
226 extend mid out len 109
227 extend -mid -in len 109
254 tt_do_circle(95.25, i)
255 tt_do_circle(109, `')
258 defpart tt_atlas_motor