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
-# this one is broken, because we don't have full details
-#defpart pt_shino_cl
-# abs c 200 200 -20
-# extend c a len 268 -315
-# rel a b -4 -18 10
-# join c b 275 twoarcs
-## extend c b upto a -285
-#enddef
-#defpart pt_shino_cr
-# abs c 200 200 20
-# objflip pt_shino_cl c c =
-#enddef
-
-defpart slip2_shino
- abs m 200 200 0
- rel m ml 0 0 4.75
- rel m mr 0 0 -4.75
- extend ml tl len 114
- extend mr tr len 114
- extend ml br len -114
- extend mr bl len -114
- join bl tl 500
- join br tr 500
-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
+ 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)
-defpart scis_shino
+define(`def_scis',`
+dnl OBJNAME-EXCLUDING-SCIS HALF-LENGTH HALF-SPACING HALF-ANG MIN-R
+ defpart scis_$1
abs bl 200 200 0
- rel bl br 0 33 0
- extend bl tl len 308
- extend br tr len 308
+ rel bl m $2 $3
+ rel m br -$2 $3
+ extend bl ml len $2
+ extend ml tl len $2
+ extend br mr len $2
+ extend mr tr len $2
layer s
- rel bl m 154 16.5
- rel m ml 0 0 9.5
- rel m mr 0 0 -9.5
+ rel m mxl 0 0 $4
+ rel m mxr 0 0 -$4
layer =
- join bl mr 315
- join mr tr 315
- join br ml 315
- join ml tl 315
-enddef
+ join bl mxr $5
+ join mxr tr $5
+ join br mxl $5
+ join mxl tl $5
+ enddef
+')
+
+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
+
+#ident $Revision$