enddef
')
+# Conventionally, points' toes are c, the straight through is a
+# and the curve is b. Segments run from c towards a and b.
+#
+# Crossings (including slips) run `vertically' and have
+# tl, tr, bl, br. Segments run from b* to t*.
+
define(`def_point_ord',`
dnl OBJNAME-EXCLUDING-PT-L ANGLE STRAIGHT-L CURVE-LONGER CURVE-DIVERGE-Y MIN-R
defpart pt_$1l
abs c 200 200 0
+ segment /P0
extend c a len $3
rel a b $4 -$5 $2
+ segment /P1
join c b $6
enddef
def_thing_l_r(`pt_$1')
abs c 200 200 0
rel c a $6 -$7 $5
rel c b $3 -$4 $2
+ segment /P0
join c a $8
+ segment /P1
join c b $8
enddef
def_thing_l_r(`pt_$1')
abs c 200 200 0
rel c l $3 -$4 $2
rel c r $3 $4 -$2
+ segment /P0
join c l $5
+ segment /P1
join c r $5
enddef
')
abs m 200 200 0
rel m ml 0 0 $2
rel m mr 0 0 -$2
- extend ml tl len $3
+ segment F
extend mr tr len $3
extend mr bl len -$3
+ segment B
+ extend ml tl len $3
extend ml br len -$3
enddef
')
-def_point_ord(`peco_s', 22.5, 87, -0.5, 17, 200) # not minr 230 ?
-def_point_ord(`peco_m', 14, 126.5,-1.55,13.21, 315) # not minr 457 ?
-def_point_ord(`peco_l', 8, 160, -0.4, 13.21, 914)
+def_point_ord(`peco_s', 22.5, 87, -0.5, 17, 200) #ST-5,6 not minr 230 ?
+def_point_ord(`peco_m', 14, 126.5,-1.55,13.21, 315) #SL-395,396 not minr 457 ?
+def_point_ord(`peco_l', 8, 160, -0.4, 13.21, 914) #SL-388,389
# catalogue says 123.7 for STRAIGHT-L ?!
+ # SL-<n> and SL-E<n> have the same geometry
+
+def_point_ord(`pecofguess_l', 10, 160, -1.0, 13.21, 800) #SLE-388F,389F
+ # not minr 914 ?
+ # 36 sleepers just like 36
+ # has 5.2mm gauge, 8.15mm rails offset:
+ # unlike 4.9mm gauge, 7.15mm rails offset:
+ # SL-<n>F and SL-<n> do NOT have the same geometry
def_point_curve(`peco_c', 10, 154.4, 13.8, 3, 156.0, 0.8, 457)
dnl 163.2- } dist to markings on paper cribsheet from c
def_point_y(`peco_y', 4, 127, 8.4, 800) # not minr 762 ?
#def_crossing(`mythical',7, 80)
-def_crossing(`peco_l', 4, 93.75)
-def_crossing(`peco_s', 12.5, 46)
+def_crossing(`peco_l', 4, 93.75) # SL-394
+def_crossing(`peco_s', 12.5, 46) # ST-7
+def_crossing(`pecof_s', 10, 51.85) # SL-E391F,E392F
+def_crossing(`pecof_l', 5, 77.00) # SL-E394F
def_crossing(`atlas_15', 7.5, 64)
rel strintersect strbackanal -$3
layer =
rel strbackanal b $2
+ segment /P1
join c b 240 arcline
+ segment /P0
extend c a len $2
enddef
def_thing_l_r(`pt_$1')
layer =
rel strintersectc l 141
rel strintersectb r 112
+ segment /P1
extend c m len 215
+ segment /P0
join c l 315 arcline
+ segment /P2
join c r 315 arcline
enddef
define(`def_slip2',`
dnl OBJNAME-EXCLUDING-SLIP2 HALF-LEN HALF-ANG
defpart slip2_$1
+ # configurations: bl-tl 0 bl-tr 1 br-tl 2 br-tr 3
abs m 200 200 0
rel m ml 0 0 $3
rel m mr 0 0 -$3
+ segment /S2
extend ml tl len $2
- extend mr tr len $2
+ segment -/S2
extend ml br len -$2
+ segment /S1
+ extend mr tr len $2
+ segment -/S1
extend mr bl len -$2
+ segment /S0
join bl tl 500
+ segment /S3
join br tr 500
enddef
')
def_slip2(`shino', 114, 4.75)
+def_slip2(`pecof', 77, 5.00)
define(`def_scis',`
dnl OBJNAME-EXCLUDING-SCIS HALF-LENGTH HALF-SPACING HALF-ANG MIN-R
enddef
')
-def_scis(`shino', 154, 16.5, 9.5, 315)
+def_scis(`pecof', 135.42, 13.5, 10, 315)
+def_scis(`shino', 154, 13.5, 9.5, 315)
define(`tt_do_circle',`
layer s
layer p
rel cout bl -40 -40
rel cout br -40 40
- extend bl tl len 100
- extend br tr len 100
+ extend bl tl len 89
+ extend br tr len 89
join tl -tr 0.1
enddef