summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff-webhosting.net>2018-03-19 19:55:58 +0100
committerJörg Frings-Fürst <debian@jff-webhosting.net>2018-03-19 19:55:58 +0100
commitd1a8285f818eb7e5c3d6a05709ea21a808490b8c (patch)
tree326578f0505cbed07cfe60de530022822dc237ac
parent16e9630b79f0a7a90c6cedb6781175bb8b337dc1 (diff)
New upstream version 5.1.0upstream/5.1.0
-rw-r--r--CMake/FindCMocka.cmake4
-rw-r--r--CMake/FindGTKUnixPrint.cmake (renamed from app/wlib/gtklib/FindGTKUnixPrint.cmake)0
-rw-r--r--CMake/FindPandoc.cmake18
-rw-r--r--CMakeLists.txt78
-rw-r--r--app/CMakeLists.txt2
-rw-r--r--app/FindPkgConfig.cmake360
-rw-r--r--app/bin/CMakeLists.txt30
-rw-r--r--app/bin/ChangeLog495
-rw-r--r--app/bin/acclkeys.h3
-rw-r--r--app/bin/appdefaults.c435
-rw-r--r--app/bin/bdf2xtp.c10
-rw-r--r--app/bin/bitmaps/bezier.xpm23
-rw-r--r--app/bin/bitmaps/dbezier.xpm22
-rw-r--r--app/bin/bitmaps/ecornu.xpm23
-rw-r--r--app/bin/bitmaps/eltsharp.xpm21
-rw-r--r--app/bin/bitmaps/helix.xpm21
-rw-r--r--app/bin/bitmaps/map.xpm22
-rw-r--r--app/bin/bitmaps/pan.xpm22
-rw-r--r--app/bin/cbezier.c1153
-rw-r--r--app/bin/cbezier.h53
-rw-r--r--app/bin/cblock.c31
-rw-r--r--app/bin/ccontrol.c25
-rw-r--r--app/bin/ccornu.c1240
-rw-r--r--app/bin/ccornu.h23
-rw-r--r--app/bin/ccurve.c241
-rw-r--r--app/bin/ccurve.h18
-rw-r--r--app/bin/cdraw.c204
-rw-r--r--app/bin/celev.c18
-rw-r--r--app/bin/cgroup.c52
-rw-r--r--app/bin/chndldto.c18
-rw-r--r--app/bin/chotbar.c47
-rw-r--r--app/bin/cjoin.c105
-rw-r--r--app/bin/cjoin.h15
-rw-r--r--app/bin/cmisc.c774
-rw-r--r--app/bin/cmodify.c153
-rw-r--r--app/bin/cnote.c638
-rw-r--r--app/bin/common.h23
-rw-r--r--app/bin/compound.c253
-rw-r--r--app/bin/compound.h10
-rw-r--r--app/bin/cparalle.c15
-rw-r--r--app/bin/cprint.c101
-rw-r--r--app/bin/cprofile.c18
-rw-r--r--app/bin/cpull.c102
-rw-r--r--app/bin/cruler.c7
-rw-r--r--app/bin/cselect.c261
-rw-r--r--app/bin/cselect.h12
-rw-r--r--app/bin/csensor.c27
-rw-r--r--app/bin/csignal.c38
-rw-r--r--app/bin/csnap.c16
-rw-r--r--app/bin/csplit.c22
-rw-r--r--app/bin/cstraigh.c80
-rw-r--r--app/bin/cstraigh.h12
-rw-r--r--app/bin/cstruct.c28
-rw-r--r--app/bin/cswitchmotor.c23
-rw-r--r--app/bin/ctext.c94
-rw-r--r--app/bin/ctodesgn.c20
-rw-r--r--app/bin/ctrain.c4680
-rw-r--r--app/bin/ctrain.h10
-rw-r--r--app/bin/cturnout.c168
-rw-r--r--app/bin/cturntbl.c64
-rw-r--r--app/bin/cundo.c17
-rw-r--r--app/bin/cundo.h12
-rw-r--r--app/bin/custom.c16
-rw-r--r--app/bin/custom.h18
-rw-r--r--app/bin/dbench.c9
-rw-r--r--app/bin/dbitmap.c29
-rw-r--r--app/bin/dcar.c45
-rw-r--r--app/bin/dcmpnd.c14
-rw-r--r--app/bin/dcontmgm.c13
-rw-r--r--app/bin/dcustmgm.c25
-rw-r--r--app/bin/dease.c110
-rw-r--r--app/bin/denum.c31
-rw-r--r--app/bin/dlayer.c1538
-rw-r--r--app/bin/doption.c221
-rw-r--r--app/bin/dpricels.c21
-rw-r--r--app/bin/dprmfile.c65
-rw-r--r--app/bin/draw.c684
-rw-r--r--app/bin/draw.h14
-rw-r--r--app/bin/drawgeom.c306
-rw-r--r--app/bin/drawgeom.h20
-rw-r--r--app/bin/dxfformat.c2
-rw-r--r--app/bin/dxfformat.h24
-rw-r--r--app/bin/dxfoutput.c16
-rw-r--r--app/bin/elev.c15
-rw-r--r--app/bin/fileio.c229
-rw-r--r--app/bin/fileio.h19
-rw-r--r--app/bin/i18n.c7
-rw-r--r--app/bin/layout.c375
-rw-r--r--app/bin/layout.h56
-rw-r--r--app/bin/lprintf.c16
-rw-r--r--app/bin/macro.c123
-rw-r--r--app/bin/misc.c375
-rw-r--r--app/bin/misc.h30
-rw-r--r--app/bin/misc2.c98
-rw-r--r--app/bin/misc2.h30
-rw-r--r--app/bin/param.c391
-rw-r--r--app/bin/param.h13
-rw-r--r--app/bin/paths.c220
-rw-r--r--app/bin/paths.h (renamed from app/help/pageorder.c)40
-rw-r--r--app/bin/shrtpath.c4
-rw-r--r--app/bin/shrtpath.h10
-rw-r--r--app/bin/smalldlg.c32
-rw-r--r--app/bin/smalldlg.h4
-rw-r--r--app/bin/tbezier.c1629
-rw-r--r--app/bin/tbezier.h57
-rw-r--r--app/bin/tcornu.c1321
-rw-r--r--app/bin/tcornu.h66
-rw-r--r--app/bin/tcurve.c170
-rw-r--r--app/bin/tease.c36
-rw-r--r--app/bin/track.c270
-rw-r--r--app/bin/track.h161
-rw-r--r--app/bin/trackx.h9
-rw-r--r--app/bin/trkseg.c599
-rw-r--r--app/bin/tstraigh.c55
-rw-r--r--app/bin/unittest/CMakeLists.txt21
-rw-r--r--app/bin/unittest/defaultstest.c110
-rw-r--r--app/bin/unittest/pathstest.c121
-rw-r--r--app/bin/uthash.h960
-rw-r--r--app/bin/utility.c16
-rw-r--r--app/bin/utility.h8
-rw-r--r--app/bin/version.h7
-rw-r--r--app/cornu/CMakeLists.txt27
-rw-r--r--app/cornu/bezctx.c48
-rw-r--r--app/cornu/bezctx.h13
-rw-r--r--app/cornu/bezctx_intf.h23
-rw-r--r--app/cornu/bezctx_xtrkcad.c217
-rw-r--r--app/cornu/bezctx_xtrkcad.h4
-rw-r--r--app/cornu/ppedit_gtk1.c930
-rw-r--r--app/cornu/spiro.c1099
-rw-r--r--app/cornu/spiro.h22
-rw-r--r--app/cornu/spiroentrypoints.c60
-rw-r--r--app/cornu/spiroentrypoints.h31
-rw-r--r--app/cornu/zmisc.h12
-rw-r--r--app/doc/CMakeLists.txt2
-rw-r--r--app/doc/ChangeLog24
-rw-r--r--app/doc/addm.but31
-rw-r--r--app/doc/changem.but293
-rw-r--r--app/doc/doc.vcproj154
-rw-r--r--app/doc/drawm.but36
-rw-r--r--app/doc/filem.but6
-rw-r--r--app/doc/intro.but.in8
-rw-r--r--app/doc/managem.but4
-rw-r--r--app/doc/navigation.but6
-rw-r--r--app/doc/optionm.but24
-rw-r--r--app/doc/osxconf.but4
-rw-r--r--app/doc/png.d/bezier.pngbin0 -> 3866 bytes
-rw-r--r--app/doc/png.d/bmap.pngbin0 -> 353 bytes
-rw-r--r--app/doc/png.d/cmdopt.pngbin8213 -> 19624 bytes
-rw-r--r--app/doc/png.d/dbezier.pngbin0 -> 3776 bytes
-rw-r--r--app/doc/png.d/displayopt.pngbin37583 -> 68298 bytes
-rw-r--r--app/doc/png.d/dproperties.pngbin9213 -> 43970 bytes
-rw-r--r--app/doc/png.d/easew.pngbin5361 -> 12509 bytes
-rw-r--r--app/doc/png.d/joincornu1.pngbin0 -> 4784 bytes
-rw-r--r--app/doc/png.d/joincornu2.pngbin0 -> 5997 bytes
-rw-r--r--app/doc/png.d/joincornu3.pngbin0 -> 7406 bytes
-rw-r--r--app/doc/png.d/joincornu4.pngbin0 -> 11409 bytes
-rw-r--r--app/doc/png.d/joincornu5.pngbin0 -> 7154 bytes
-rw-r--r--app/doc/png.d/layout.pngbin7843 -> 13213 bytes
-rw-r--r--app/doc/png.d/mchange.pngbin6461 -> 23214 bytes
-rw-r--r--app/doc/png.d/mdraw.pngbin2585 -> 10174 bytes
-rw-r--r--app/doc/png.d/mrotatealign.pngbin2552 -> 12893 bytes
-rw-r--r--app/doc/png.d/mrotatefixed.pngbin2727 -> 12910 bytes
-rw-r--r--app/doc/png.d/mrotatemove.pngbin2590 -> 12872 bytes
-rw-r--r--app/doc/png.d/mview.pngbin6712 -> 15591 bytes
-rw-r--r--app/doc/png.d/pan.pngbin0 -> 3929 bytes
-rw-r--r--app/doc/png.d/toolbar.pngbin12627 -> 13676 bytes
-rw-r--r--app/doc/view_winm.but2
-rw-r--r--app/doxfileversionfilter.sh12
-rw-r--r--app/dynstring/dynstring.c10
-rw-r--r--app/dynstring/dynstring.h26
-rw-r--r--app/help/ChangeLog63
-rw-r--r--app/help/fixbmp.c227
-rw-r--r--app/help/genhelp.in32
-rw-r--r--app/help/genmessages.c559
-rw-r--r--app/help/messages.in40
-rwxr-xr-xapp/help/mkpngbutt21
-rwxr-xr-xapp/help/mkpngs88
-rw-r--r--app/help/mkshg.c455
-rwxr-xr-xapp/help/mkshgs348
-rw-r--r--app/help/mkxpmbutt.c303
-rw-r--r--app/help/prochelp.c2178
-rw-r--r--app/help/readpng.c275
-rw-r--r--app/help/readpng.h64
-rw-r--r--app/help/xtrkcad.info10
-rw-r--r--app/help/xtrkcad.tip3
-rw-r--r--app/help/xvfontsel.hlpsrc25
-rw-r--r--app/help/xvprintsel.hlpsrc73
-rw-r--r--app/i18n/ChangeLog22
-rw-r--r--app/i18n/de_DE.po25391
-rw-r--r--app/i18n/fi.po18286
-rw-r--r--app/i18n/pt_BR.po9253
-rw-r--r--app/lib/CHANGELOG.md199
-rw-r--r--app/lib/CMakeLists.txt54
-rw-r--r--app/lib/Readme.md269
-rw-r--r--app/lib/Readme.txt559
-rw-r--r--app/lib/examples/DVRR v3.0 E Stroudsburg - Pt Jervis.xtc34
-rw-r--r--app/lib/mdtotxt.bat3
-rw-r--r--app/lib/params/Any-CTC_panel.xtp88
-rw-r--r--app/lib/params/AtlasTrueTrk.xtp12
-rw-r--r--app/lib/params/BachmannEZ-HO.xtp42
-rw-r--r--app/lib/params/BachmannEZ-N.xtp56
-rw-r--r--app/lib/params/ChangeLog87
-rw-r--r--app/lib/params/F-NMRA-RP12-21.xtp592
-rw-r--r--app/lib/params/G-NMRA-RP12-23.xtp592
-rw-r--r--app/lib/params/HO-Frateschi.xtp390
-rw-r--r--app/lib/params/HO-LifeLike-Power-Loc.xtp8
-rw-r--r--app/lib/params/HO-MicroEngineering.xtp160
-rw-r--r--app/lib/params/HO-Peco-Code100Setrack.xtp (renamed from app/lib/params/pecohost.xtp)14
-rw-r--r--app/lib/params/HO-Peco-Code100Streamline.xtp (renamed from app/lib/params/pecoho.xtp)145
-rw-r--r--app/lib/params/HO-Peco-Code75Finescale.xtp288
-rw-r--r--app/lib/params/HO-Peco-Code83.xtp (renamed from app/lib/params/pecoho83.xtp)381
-rw-r--r--app/lib/params/HO-WalthCornerstone 1.xtp4385
-rw-r--r--app/lib/params/HO-atl100ho.xtp970
-rw-r--r--app/lib/params/HOn3-BlackStoneProTraxx.xtp42
-rw-r--r--app/lib/params/HOn30_Minitrains.xtp148
-rw-r--r--app/lib/params/LifeLike-N.xtp4
-rw-r--r--app/lib/params/Lionel-O-O27.xtp38
-rw-r--r--app/lib/params/Lionel-O.xtp25
-rw-r--r--app/lib/params/Lionel27.xtp22
-rw-r--r--app/lib/params/LionelFasttrack.xtp40
-rw-r--r--app/lib/params/N-AtlasTrueTrack.xtp14
-rw-r--r--app/lib/params/N-LifeLike Power-Loc.xtp4
-rw-r--r--app/lib/params/N-NScaleArchitect.xtp2
-rw-r--r--app/lib/params/N-PecoCode55Finescale.xtp (renamed from app/lib/params/pecon55.xtp)146
-rw-r--r--app/lib/params/N-PecoCode80Setrack.xtp (renamed from app/lib/params/peconst.xtp)347
-rw-r--r--app/lib/params/N-PecoCode80Streamline.xtp (renamed from app/lib/params/pecon80.xtp)149
-rw-r--r--app/lib/params/N-fl.xtp (renamed from app/lib/params/rocon.xtp)156
-rw-r--r--app/lib/params/N-kato-n-gl-trk.xtp38
-rw-r--r--app/lib/params/N-kato-turntable.xtp38
-rw-r--r--app/lib/params/N-kato.xtp3395
-rw-r--r--app/lib/params/N-walth-n.xtp3050
-rw-r--r--app/lib/params/O-ETS TramTrack.xtp194
-rw-r--r--app/lib/params/O-ETS.xtp466
-rw-r--r--app/lib/params/O-Lehnhardt Tramrails.xtp360
-rw-r--r--app/lib/params/O-Lenz.xtp366
-rw-r--r--app/lib/params/O-RealTrax.xtp8
-rw-r--r--app/lib/params/O-Ross.xtp262
-rw-r--r--app/lib/params/On14mm KBScale.xtp31
-rw-r--r--app/lib/params/On30-FastTrack.xtp2
-rw-r--r--app/lib/params/On30.xtp100
-rw-r--r--app/lib/params/Piko-A.xtp32
-rw-r--r--app/lib/params/Piko-g.xtp12
-rw-r--r--app/lib/params/ProZ-Track.xtp4
-rw-r--r--app/lib/params/RocoGeoLineHO.xtp12
-rw-r--r--app/lib/params/S-SHelper S-Trax.xtp2
-rw-r--r--app/lib/params/S-Trax.xtp3
-rw-r--r--app/lib/params/T-Eishindo.xtp658
-rw-r--r--app/lib/params/TT-Roco-Turntable.xtp24
-rw-r--r--app/lib/params/TT-TilligAdvBeddingTrack.xtp514
-rw-r--r--app/lib/params/TTi-AuhagenNG.xtp80
-rw-r--r--app/lib/params/TilligAdvTT.xtp647
-rw-r--r--app/lib/params/TilligH0EliteCode83.xtp1586
-rw-r--r--app/lib/params/TilligH0e.xtp148
-rw-r--r--app/lib/params/TilligH0m.xtp148
-rw-r--r--app/lib/params/TilligTTModellGS.xtp1662
-rw-r--r--app/lib/params/Z-Atlas55.xtp39
-rw-r--r--app/lib/params/Z-Rokuhan.xtp2207
-rw-r--r--app/lib/params/arnold.xtp34
-rw-r--r--app/lib/params/atl83ho.xtp145
-rw-r--r--app/lib/params/atlascho.cars20
-rw-r--r--app/lib/params/atlascn.xtp16
-rw-r--r--app/lib/params/atlaseho.cars12
-rw-r--r--app/lib/params/atlasen.xtp60
-rw-r--r--app/lib/params/atlaso2rail.xtp25
-rw-r--r--app/lib/params/ctlpanel.xtp16
-rw-r--r--app/lib/params/fl-model.xtp24
-rw-r--r--app/lib/params/fl-profi.xtp28
-rw-r--r--app/lib/params/flnpicco.xtp104
-rw-r--r--app/lib/params/gargrv-o.xtp22
-rw-r--r--app/lib/params/ho-amb.xtp2
-rw-r--r--app/lib/params/hubner1.xtp44
-rw-r--r--app/lib/params/kato-ho.xtp1039
-rw-r--r--app/lib/params/kato-n-DblTrk.xtp28
-rw-r--r--app/lib/params/kato-n.xtp3278
-rw-r--r--app/lib/params/lgb.xtp82
-rw-r--r--app/lib/params/minitrix.xtp4
-rw-r--r--app/lib/params/mkcarpart.c26
-rw-r--r--app/lib/params/mrkholde.xtp52
-rw-r--r--app/lib/params/mrkhomde.xtp108
-rw-r--r--app/lib/params/mrklnhom.xtp66
-rw-r--r--app/lib/params/mrklnz.xtp112
-rw-r--r--app/lib/params/mtl-z.xtp506
-rw-r--r--app/lib/params/peco turntable wo routes.xtp36
-rw-r--r--app/lib/params/pecohom.xtp2
-rw-r--r--app/lib/params/rocho83.xtp38
-rw-r--r--app/lib/params/tomix-n.xtp3376
-rwxr-xr-xapp/lib/xdg-open972
-rw-r--r--app/lib/xtrkcad.xtq16
-rw-r--r--app/tools/CMakeLists.txt19
-rw-r--r--app/tools/addcrlf.c242
-rw-r--r--app/tools/bin2c.c126
-rw-r--r--app/tools/halibut/bk_html.c2
-rw-r--r--app/tools/listxtp.c7
-rw-r--r--app/tools/oldscripts/README4
-rw-r--r--app/tools/oldscripts/checkall10
-rw-r--r--app/tools/oldscripts/diffall37
-rw-r--r--app/tools/oldscripts/fetchall46
-rw-r--r--app/tools/oldscripts/makeall23
-rw-r--r--app/tools/oldscripts/markall17
-rw-r--r--app/tools/oldscripts/mkwinrlse34
-rw-r--r--app/tools/oldscripts/roall22
-rw-r--r--app/wlib/gtklib/CMakeLists.txt68
-rw-r--r--app/wlib/gtklib/ChangeLog250
-rw-r--r--app/wlib/gtklib/bitmap.c1
-rw-r--r--app/wlib/gtklib/boxes.c1
-rw-r--r--app/wlib/gtklib/browserhelp.c137
-rw-r--r--app/wlib/gtklib/button.c4
-rw-r--r--app/wlib/gtklib/control.c22
-rw-r--r--app/wlib/gtklib/droplist.c2
-rw-r--r--app/wlib/gtklib/font.c11
-rw-r--r--app/wlib/gtklib/gtkdraw-cairo.c47
-rw-r--r--app/wlib/gtklib/gtkint.h8
-rw-r--r--app/wlib/gtklib/ixhelp.c14
-rw-r--r--app/wlib/gtklib/list.c2
-rw-r--r--app/wlib/gtklib/liststore.c20
-rw-r--r--app/wlib/gtklib/main.c1
-rw-r--r--app/wlib/gtklib/menu.c21
-rw-r--r--app/wlib/gtklib/message.c76
-rw-r--r--app/wlib/gtklib/notice.c3
-rw-r--r--app/wlib/gtklib/png.c1
-rw-r--r--app/wlib/gtklib/print.c65
-rw-r--r--app/wlib/gtklib/statusbar.c211
-rw-r--r--app/wlib/gtklib/text.c4
-rw-r--r--app/wlib/gtklib/tooltip.c31
-rw-r--r--app/wlib/gtklib/treeview.c1
-rw-r--r--app/wlib/gtklib/util.c235
-rw-r--r--app/wlib/gtklib/window.c268
-rw-r--r--app/wlib/gtklib/wpref.c10
-rw-r--r--app/wlib/include/wcolors.h80
-rw-r--r--app/wlib/include/wlib.h57
-rw-r--r--app/wlib/mswlib/CMakeLists.txt1
-rw-r--r--app/wlib/mswlib/ChangeLog146
-rw-r--r--app/wlib/mswlib/mswbitmap.c26
-rw-r--r--app/wlib/mswlib/mswbutt.c22
-rw-r--r--app/wlib/mswlib/mswdraw.c8
-rw-r--r--app/wlib/mswlib/mswedit.c2
-rw-r--r--app/wlib/mswlib/mswlist.c6
-rw-r--r--app/wlib/mswlib/mswmenu.c8
-rw-r--r--app/wlib/mswlib/mswmisc.c4811
-rw-r--r--app/wlib/mswlib/mswmsg.c4
-rw-r--r--app/wlib/mswlib/mswpref.c10
-rw-r--r--app/wlib/mswlib/mswsplash.c9
-rw-r--r--app/wlib/mswlib/mswstatus.c110
-rw-r--r--app/wlib/mswlib/mswtext.c636
-rw-r--r--distribution/CMakeLists.txt2
-rw-r--r--distribution/downloadpage.wiki.in46
-rw-r--r--distribution/osx/gtk-bundle/CMakeLists.txt2
-rw-r--r--distribution/osx/gtk-bundle/gtk-bundle.README21
-rw-r--r--distribution/posix/CMakeLists.txt45
-rw-r--r--distribution/posix/xtrkcad.spec5
-rw-r--r--distribution/win32/nsis/install.nsh6
351 files changed, 75963 insertions, 53327 deletions
diff --git a/CMake/FindCMocka.cmake b/CMake/FindCMocka.cmake
index e8a4e92..bec2905 100644
--- a/CMake/FindCMocka.cmake
+++ b/CMake/FindCMocka.cmake
@@ -21,6 +21,10 @@
#=============================================================================
#
+
+set (CMOCKA_ROOT_DIR
+ "C:/Users/Martin/Documents/CMocka")
+
find_path(CMOCKA_INCLUDE_DIR
NAMES
cmocka.h
diff --git a/app/wlib/gtklib/FindGTKUnixPrint.cmake b/CMake/FindGTKUnixPrint.cmake
index 06bc548..06bc548 100644
--- a/app/wlib/gtklib/FindGTKUnixPrint.cmake
+++ b/CMake/FindGTKUnixPrint.cmake
diff --git a/CMake/FindPandoc.cmake b/CMake/FindPandoc.cmake
new file mode 100644
index 0000000..1a076ff
--- /dev/null
+++ b/CMake/FindPandoc.cmake
@@ -0,0 +1,18 @@
+# This module looks for Pandoc, and sets PANDOC_EXECUTABLE to the
+# location of its binary.
+#
+# It respects the variable Pandoc_FIND_QUIETLY
+
+include(FindPackageHandleStandardArgs)
+
+if(DEFINED PANDOC_EXECUTABLE)
+ set(Pandoc_FIND_QUIETLY TRUE)
+endif()
+
+find_program(PANDOC_EXECUTABLE
+ NAMES pandoc
+ DOC "Pandoc - a universal document converter")
+
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Pandoc REQUIRED_VARS PANDOC_EXECUTABLE)
+
+mark_as_advanced(PANDOC_EXECUTABLE) \ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2f0a9a9..0ec8908 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,27 +1,33 @@
PROJECT(XTrkCAD)
enable_testing()
+cmake_minimum_required(VERSION 3.0)
# where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked
-SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/app)
+
# additional CMake modules can be found here
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMake/")
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/CMake")
# Setup high-level build options ...
-IF(UNIX AND NOT APPLE)
- SET(XTRKCAD_USE_GTK_DEFAULT ON)
- SET(XTRKCAD_USE_GETTEXT_DEFAULT ON)
-ENDIF(UNIX AND NOT APPLE)
-
-IF(APPLE)
- SET(XTRKCAD_USE_GTK_DEFAULT ON)
+if(UNIX)
+ include(FindPkgConfig)
+ set(XTRKCAD_USE_GTK_DEFAULT ON)
+ if(APPLE)
SET(XTRKCAD_USE_GETTEXT_DEFAULT OFF)
-ENDIF(APPLE)
+ else()
+ set(XTRKCAD_USE_GETTEXT_DEFAULT ON)
+ add_compile_options("-std=gnu99")
+ PKG_CHECK_MODULES(GTK_WEBKIT "webkit-1.0")
+ if(GTK_WEBKIT_FOUND)
+ set(XTRKCAD_USE_BROWSER_DEFAULT OFF)
+ else()
+ set(XTRKCAD_USE_BROWSER_DEFAULT ON)
+ endif()
+ endif(APPLE)
+endif(UNIX)
IF(WIN32)
- CMAKE_MINIMUM_REQUIRED(VERSION 2.4.7 FATAL_ERROR)
-
SET(XTRKCAD_USE_GTK_DEFAULT OFF)
- SET(XTRKCAD_USE_GETTEXT_DEFAULT OFF)
+ SET(XTRKCAD_USE_GETTEXT_DEFAULT ON)
SET(CMAKE_C_FLAGS_DEBUG "/D_DEBUG /MTd /Zi /Ob0 /Od /RTC1" CACHE STRING "Flags used by the compiler during debug builds" FORCE)
SET(CMAKE_C_FLAGS_MINSIZEREL "/MT /O1 /Ob1 /D NDEBUG" CACHE STRING "Flags used by the compiler during release minumum size builds" FORCE)
@@ -40,9 +46,17 @@ if(COMMAND cmake_policy)
endif(COMMAND cmake_policy)
SET(XTRKCAD_USE_DOXYGEN_DEFAULT OFF)
+
OPTION(XTRKCAD_USE_GTK "Use GTK for the graphical user interface back-end" ${XTRKCAD_USE_GTK_DEFAULT})
OPTION(XTRKCAD_USE_GETTEXT "Use gettext for internationalization" ${XTRKCAD_USE_GETTEXT_DEFAULT})
OPTION(XTRKCAD_USE_DOXYGEN "Generate internals documentation using doxygen" ${XTRKCAD_USE_DOXYGEN_DEFAULT})
+if(UNIX AND NOT APPLE)
+ option(XTRKCAD_USE_BROWSER "Show help in default browser" ${XTRKCAD_USE_BROWSER_DEFAULT})
+endif()
+
+IF(UNIX)
+ PKG_CHECK_MODULES(GTK REQUIRED "gtk+-2.0")
+ENDIF()
IF(APPLE)
OPTION(XTRKCAD_USE_PACKAGEMAKER "Generate an OSX PackageMaker package for distribution." OFF)
@@ -62,12 +76,6 @@ IF(WIN32 AND NOT XTRKCAD_USE_GTK)
FIND_PACKAGE(HTMLHelp REQUIRED)
ENDIF(WIN32 AND NOT XTRKCAD_USE_GTK)
-IF(XTRKCAD_USE_GTK)
- INCLUDE(FindPkgConfig)
- PKG_CHECK_MODULES(GTK REQUIRED "gtk+-2.0")
- PKG_CHECK_MODULES(GTK_WEBKIT REQUIRED "webkit-1.0")
-ENDIF(XTRKCAD_USE_GTK)
-
IF(XTRKCAD_USE_PACKAGEMAKER)
IF(NOT CMAKE_INSTALL_PREFIX STREQUAL "/usr")
MESSAGE(SEND_ERROR "XTRKCAD_USE_PACKAGEMAKER requires CMAKE_INSTALL_PREFIX set to /usr.")
@@ -76,20 +84,23 @@ ENDIF(XTRKCAD_USE_PACKAGEMAKER)
# Find unit testing framework
find_package(CMocka)
-if( CMOCKA_FOUND)
+if(CMOCKA_FOUND)
include_directories(${CMOCKA_INCLUDE_DIR})
set(LIBS ${LIBS} ${CMOCKA_LIBRARIES})
option( XTRKCAD_TESTING "Build unittests" ON)
endif()
+# Find document conversion tool
+find_package(Pandoc)
+
# Test for headers and libraries for portability ...
INCLUDE (CheckIncludeFiles)
CHECK_INCLUDE_FILES (malloc.h HAVE_MALLOC_H)
# Setup some global options for installation ...
-SET(XTRKCAD_MAJOR_VERSION "4")
-SET(XTRKCAD_MINOR_VERSION "3")
+SET(XTRKCAD_MAJOR_VERSION "5")
+SET(XTRKCAD_MINOR_VERSION "1")
SET(XTRKCAD_RELEASE_VERSION "0")
SET(XTRKCAD_VERSION_MODIFIER "")
SET(XTRKCAD_VERSION "${XTRKCAD_MAJOR_VERSION}.${XTRKCAD_MINOR_VERSION}.${XTRKCAD_RELEASE_VERSION}${XTRKCAD_VERSION_MODIFIER}")
@@ -106,6 +117,29 @@ SET(XTRKCAD_SHARE_INSTALL_DIR "share/xtrkcad")
ADD_DEFINITIONS(-DXTRKCAD_CMAKE_BUILD)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/xtrkcad-config.h.in ${CMAKE_CURRENT_BINARY_DIR}/xtrkcad-config.h)
+IF(XTRKCAD_USE_GETTEXT)
+ SET(GENHELP_OPTS "-bhi")
+ #
+ # Find the GnuWin32 installation directory, the gettext include should be located in subdir include
+ #
+ IF(WIN32)
+ if(MSVC)
+ # use supplied gettext library for Visual Studio
+ message( STATUS "Use simple_gettext module included with XTrackCAD" )
+ ADD_DEFINITIONS(-DUSE_SIMPLE_GETTEXT )
+ else()
+ # for mingw & co. find libintl.h and use it
+ find_path ( INTL_PATH libintl.h )
+ if(INTL_PATH)
+ message( STATUS "Use installed gettext module" )
+ INCLUDE_DIRECTORIES(${INTL_PATH})
+ endif(INTL_PATH)
+ endif()
+ ENDIF(WIN32)
+ELSE(XTRKCAD_USE_GETTEXT)
+ SET(GENHELP_OPTS "-bh")
+ENDIF(XTRKCAD_USE_GETTEXT)
+
# Setup the rest of the build ...
ADD_SUBDIRECTORY(app)
ADD_SUBDIRECTORY(distribution)
diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt
index 9a47f95..5791fa2 100644
--- a/app/CMakeLists.txt
+++ b/app/CMakeLists.txt
@@ -1,6 +1,7 @@
# "bin/i18n.h" is widely used
INCLUDE_DIRECTORIES(bin)
include_directories(dynstring)
+include_directories(cornu)
# Setup the rest of the build ...
add_subdirectory(dynstring)
@@ -10,6 +11,7 @@ ADD_SUBDIRECTORY(help)
ADD_SUBDIRECTORY(doc)
ADD_SUBDIRECTORY(bin)
ADD_SUBDIRECTORY(lib)
+ADD_SUBDIRECTORY(cornu)
IF(XTRKCAD_USE_GETTEXT)
ADD_SUBDIRECTORY(i18n)
diff --git a/app/FindPkgConfig.cmake b/app/FindPkgConfig.cmake
deleted file mode 100644
index 4a894cb..0000000
--- a/app/FindPkgConfig.cmake
+++ /dev/null
@@ -1,360 +0,0 @@
-# - a pkg-config module for CMake
-#
-# Usage:
-# pkg_check_modules(<PREFIX> [REQUIRED] <MODULE> [<MODULE>]*)
-# checks for all the given modules
-#
-# pkg_search_module(<PREFIX> [REQUIRED] <MODULE> [<MODULE>]*)
-# checks for given modules and uses the first working one
-#
-# When the 'REQUIRED' argument was set, macros will fail with an error
-# when module(s) could not be found
-#
-# It sets the following variables:
-# PKG_CONFIG_FOUND ... true iff pkg-config works on the system
-# PKG_CONFIG_EXECUTABLE ... pathname of the pkg-config program
-# <PREFIX>_FOUND ... set to 1 iff module(s) exist
-#
-# For the following variables two sets of values exist; first one is the
-# common one and has the given PREFIX. The second set contains flags
-# which are given out when pkgconfig was called with the '--static'
-# option.
-# <XPREFIX>_LIBRARIES ... only the libraries (w/o the '-l')
-# <XPREFIX>_LIBRARY_DIRS ... the paths of the libraries (w/o the '-L')
-# <XPREFIX>_LDFLAGS ... all required linker flags
-# <XPREFIX>_LDFLAGS_OTHERS ... all other linker flags
-# <XPREFIX>_INCLUDE_DIRS ... the '-I' preprocessor flags (w/o the '-I')
-# <XPREFIX>_CFLAGS ... all required cflags
-# <XPREFIX>_CFLAGS_OTHERS ... the other compiler flags
-#
-# <XPREFIX> = <PREFIX> for common case
-# <XPREFIX> = <PREFIX>_STATIC for static linking
-#
-# There are some special variables whose prefix depends on the count
-# of given modules. When there is only one module, <PREFIX> stays
-# unchanged. When there are multiple modules, the prefix will be
-# changed to <PREFIX>_<MODNAME>:
-# <XPREFIX>_VERSION ... version of the module
-# <XPREFIX>_PREFIX ... prefix-directory of the module
-# <XPREFIX>_INCLUDEDIR ... include-dir of the module
-# <XPREFIX>_LIBDIR ... lib-dir of the module
-#
-# <XPREFIX> = <PREFIX> when |MODULES| == 1, else
-# <XPREFIX> = <PREFIX>_<MODNAME>
-#
-# A <MODULE> parameter can have the following formats:
-# {MODNAME} ... matches any version
-# {MODNAME}>={VERSION} ... at least version <VERSION> is required
-# {MODNAME}={VERSION} ... exactly version <VERSION> is required
-# {MODNAME}<={VERSION} ... modules must not be newer than <VERSION>
-#
-# Examples
-# pkg_check_modules (GLIB2 glib-2.0)
-#
-# pkg_check_modules (GLIB2 glib-2.0>=2.10)
-# requires at least version 2.10 of glib2 and defines e.g.
-# GLIB2_VERSION=2.10.3
-#
-# pkg_check_modules (FOO glib-2.0>=2.10 gtk+-2.0)
-# requires both glib2 and gtk2, and defines e.g.
-# FOO_glib-2.0_VERSION=2.10.3
-# FOO_gtk+-2.0_VERSION=2.8.20
-#
-# pkg_check_modules (XRENDER REQUIRED xrender)
-# defines e.g.:
-# XRENDER_LIBRARIES=Xrender;X11
-# XRENDER_STATIC_LIBRARIES=Xrender;X11;pthread;Xau;Xdmcp
-#
-# pkg_search_module (BAR libxml-2.0 libxml2 libxml>=2)
-
-
-# Copyright (C) 2006 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-#
-# Redistribution and use, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# 1. Redistributions must retain the above copyright notice, this
-# list of conditions and the following disclaimer.
-# 2. The name of the author may not be used to endorse or promote
-# products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-### Common stuff ####
-set(PKG_CONFIG_VERSION 1)
-set(PKG_CONFIG_FOUND 0)
-
-find_program(PKG_CONFIG_EXECUTABLE NAMES pkg-config DOC "pkg-config executable")
-mark_as_advanced(PKG_CONFIG_EXECUTABLE)
-
-if(PKG_CONFIG_EXECUTABLE)
- set(PKG_CONFIG_FOUND 1)
-endif(PKG_CONFIG_EXECUTABLE)
-
-
-# Unsets the given variables
-macro(_pkgconfig_unset var)
- set(${var} "" CACHE INTERNAL "")
-endmacro(_pkgconfig_unset)
-
-macro(_pkgconfig_set var value)
- set(${var} ${value} CACHE INTERNAL "")
-endmacro(_pkgconfig_set)
-
-# Invokes pkgconfig, cleans up the result and sets variables
-macro(_pkgconfig_invoke _pkglist _prefix _varname _regexp)
- set(_pkgconfig_invoke_result)
-
- execute_process(
- COMMAND ${PKG_CONFIG_EXECUTABLE} ${ARGN} ${_pkglist}
- OUTPUT_VARIABLE _pkgconfig_invoke_result
- RESULT_VARIABLE _pkgconfig_failed)
-
- if (_pkgconfig_failed)
- set(_pkgconfig_${_varname} "")
- _pkgconfig_unset(${_prefix}_${_varname})
- else(_pkgconfig_failed)
- string(REGEX REPLACE "[\r\n]" " " _pkgconfig_invoke_result "${_pkgconfig_invoke_result}")
- string(REGEX REPLACE " +$" "" _pkgconfig_invoke_result "${_pkgconfig_invoke_result}")
-
- if (NOT ${_regexp} STREQUAL "")
- string(REGEX REPLACE "${_regexp}" " " _pkgconfig_invoke_result "${_pkgconfig_invoke_result}")
- endif(NOT ${_regexp} STREQUAL "")
-
- separate_arguments(_pkgconfig_invoke_result)
-
- #message(STATUS " ${_varname} ... ${_pkgconfig_invoke_result}")
- set(_pkgconfig_${_varname} ${_pkgconfig_invoke_result})
- _pkgconfig_set(${_prefix}_${_varname} "${_pkgconfig_invoke_result}")
- endif(_pkgconfig_failed)
-endmacro(_pkgconfig_invoke)
-
-# Invokes pkgconfig two times; once without '--static' and once with
-# '--static'
-macro(_pkgconfig_invoke_dyn _pkglist _prefix _varname cleanup_regexp)
- _pkgconfig_invoke("${_pkglist}" ${_prefix} ${_varname} "${cleanup_regexp}" ${ARGN})
- _pkgconfig_invoke("${_pkglist}" ${_prefix} STATIC_${_varname} "${cleanup_regexp}" --static ${ARGN})
-endmacro(_pkgconfig_invoke_dyn)
-
-# Splits given arguments into options and a package list
-macro(_pkgconfig_parse_options _result _is_req)
- set(${_is_req} 0)
-
- foreach(_pkg ${ARGN})
- if (_pkg STREQUAL "REQUIRED")
- set(${_is_req} 1)
- endif (_pkg STREQUAL "REQUIRED")
- endforeach(_pkg ${ARGN})
-
- set(${_result} ${ARGN})
- list(REMOVE_ITEM ${_result} "REQUIRED")
-endmacro(_pkgconfig_parse_options)
-
-###
-macro(_pkg_check_modules_internal _is_required _is_silent _prefix)
- _pkgconfig_unset(${_prefix}_FOUND)
- _pkgconfig_unset(${_prefix}_VERSION)
- _pkgconfig_unset(${_prefix}_PREFIX)
- _pkgconfig_unset(${_prefix}_INCLUDEDIR)
- _pkgconfig_unset(${_prefix}_LIBDIR)
- _pkgconfig_unset(${_prefix}_LIBS)
- _pkgconfig_unset(${_prefix}_LIBS_L)
- _pkgconfig_unset(${_prefix}_LIBS_PATHS)
- _pkgconfig_unset(${_prefix}_LIBS_OTHER)
- _pkgconfig_unset(${_prefix}_CFLAGS)
- _pkgconfig_unset(${_prefix}_CFLAGS_I)
- _pkgconfig_unset(${_prefix}_CFLAGS_OTHER)
- _pkgconfig_unset(${_prefix}_STATIC_LIBDIR)
- _pkgconfig_unset(${_prefix}_STATIC_LIBS)
- _pkgconfig_unset(${_prefix}_STATIC_LIBS_L)
- _pkgconfig_unset(${_prefix}_STATIC_LIBS_PATHS)
- _pkgconfig_unset(${_prefix}_STATIC_LIBS_OTHER)
- _pkgconfig_unset(${_prefix}_STATIC_CFLAGS)
- _pkgconfig_unset(${_prefix}_STATIC_CFLAGS_I)
- _pkgconfig_unset(${_prefix}_STATIC_CFLAGS_OTHER)
-
- # create a better addressable variable of the modules and calculate its size
- set(_pkg_check_modules_list ${ARGN})
- list(LENGTH _pkg_check_modules_list _pkg_check_modules_cnt)
-
- if(PKG_CONFIG_EXECUTABLE)
- # give out status message telling checked module
- if (NOT ${_is_silent})
- if (_pkg_check_modules_cnt EQUAL 1)
- message(STATUS "checking for module '${_pkg_check_modules_list}'")
- else(_pkg_check_modules_cnt EQUAL 1)
- message(STATUS "checking for modules '${_pkg_check_modules_list}'")
- endif(_pkg_check_modules_cnt EQUAL 1)
- endif(NOT ${_is_silent})
-
- set(_pkg_check_modules_packages)
- set(_pkg_check_modules_failed)
-
- # iterate through module list and check whether they exist and match the required version
- foreach (_pkg_check_modules_pkg ${_pkg_check_modules_list})
- set(_pkg_check_modules_exist_query)
-
- # check whether version is given
- if (_pkg_check_modules_pkg MATCHES ".*(>=|=|<=).*")
- string(REGEX REPLACE "(.*[^><])(>=|=|<=)(.*)" "\\1" _pkg_check_modules_pkg_name "${_pkg_check_modules_pkg}")
- string(REGEX REPLACE "(.*[^><])(>=|=|<=)(.*)" "\\2" _pkg_check_modules_pkg_op "${_pkg_check_modules_pkg}")
- string(REGEX REPLACE "(.*[^><])(>=|=|<=)(.*)" "\\3" _pkg_check_modules_pkg_ver "${_pkg_check_modules_pkg}")
- else(_pkg_check_modules_pkg MATCHES ".*(>=|=|<=).*")
- set(_pkg_check_modules_pkg_name "${_pkg_check_modules_pkg}")
- set(_pkg_check_modules_pkg_op)
- set(_pkg_check_modules_pkg_ver)
- endif(_pkg_check_modules_pkg MATCHES ".*(>=|=|<=).*")
-
- # handle the operands
- if (_pkg_check_modules_pkg_op STREQUAL ">=")
- list(APPEND _pkg_check_modules_exist_query --atleast-version)
- endif(_pkg_check_modules_pkg_op STREQUAL ">=")
-
- if (_pkg_check_modules_pkg_op STREQUAL "=")
- list(APPEND _pkg_check_modules_exist_query --exact-version)
- endif(_pkg_check_modules_pkg_op STREQUAL "=")
-
- if (_pkg_check_modules_pkg_op STREQUAL "<=")
- list(APPEND _pkg_check_modules_exist_query --max-version)
- endif(_pkg_check_modules_pkg_op STREQUAL "<=")
-
- # create the final query which is of the format:
- # * --atleast-version <version> <pkg-name>
- # * --exact-version <version> <pkg-name>
- # * --max-version <version> <pkg-name>
- # * --exists <pkg-name>
- if (_pkg_check_modules_pkg_op)
- list(APPEND _pkg_check_modules_exist_query "${_pkg_check_modules_pkg_ver}")
- else(_pkg_check_modules_pkg_op)
- list(APPEND _pkg_check_modules_exist_query --exists)
- endif(_pkg_check_modules_pkg_op)
-
- _pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_VERSION)
- _pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_PREFIX)
- _pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_INCLUDEDIR)
- _pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_LIBDIR)
-
- list(APPEND _pkg_check_modules_exist_query "${_pkg_check_modules_pkg_name}")
- list(APPEND _pkg_check_modules_packages "${_pkg_check_modules_pkg_name}")
-
- # execute the query
- execute_process(
- COMMAND ${PKG_CONFIG_EXECUTABLE} ${_pkg_check_modules_exist_query}
- RESULT_VARIABLE _pkgconfig_retval)
-
- # evaluate result and tell failures
- if (_pkgconfig_retval)
- if(NOT ${_is_silent})
- message(STATUS " package '${_pkg_check_modules_pkg}' not found")
- endif(NOT ${_is_silent})
-
- set(_pkg_check_modules_failed 1)
- endif(_pkgconfig_retval)
- endforeach(_pkg_check_modules_pkg)
-
- if(_pkg_check_modules_failed)
- # fail when requested
- if (${_is_required})
- message(SEND_ERROR "A required package was not found")
- endif (${_is_required})
- else(_pkg_check_modules_failed)
- # when we are here, we checked whether requested modules
- # exist. Now, go through them and set variables
-
- _pkgconfig_set(${_prefix}_FOUND 1)
- list(LENGTH _pkg_check_modules_packages pkg_count)
-
- # iterate through all modules again and set individual variables
- foreach (_pkg_check_modules_pkg ${_pkg_check_modules_packages})
- # handle case when there is only one package required
- if (pkg_count EQUAL 1)
- set(_pkg_check_prefix "${_prefix}")
- else(pkg_count EQUAL 1)
- set(_pkg_check_prefix "${_prefix}_${_pkg_check_modules_pkg}")
- endif(pkg_count EQUAL 1)
-
- _pkgconfig_invoke(${_pkg_check_modules_pkg} "${_pkg_check_prefix}" VERSION "" --modversion )
- _pkgconfig_invoke(${_pkg_check_modules_pkg} "${_pkg_check_prefix}" PREFIX "" --variable=prefix )
- _pkgconfig_invoke(${_pkg_check_modules_pkg} "${_pkg_check_prefix}" INCLUDEDIR "" --variable=includedir )
- _pkgconfig_invoke(${_pkg_check_modules_pkg} "${_pkg_check_prefix}" LIBDIR "" --variable=libdir )
-
- message(STATUS " found ${_pkg_check_modules_pkg}, version ${_pkgconfig_VERSION}")
- endforeach(_pkg_check_modules_pkg)
-
- # set variables which are combined for multiple modules
- _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LIBRARIES "(^| )-l" --libs-only-l )
- _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LIBRARY_DIRS "(^| )-L" --libs-only-L )
- _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LDFLAGS "" --libs )
- _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LDFLAGS_OTHER "" --libs-only-other )
-
- _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" INCLUDE_DIRS "(^| )-I" --cflags-only-I )
- _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" CFLAGS "" --cflags )
- _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" CFLAGS_OTHER "" --cflags-only-other )
- endif(_pkg_check_modules_failed)
- else(PKG_CONFIG_EXECUTABLE)
- if (${_is_required})
- message(SEND_ERROR "pkg-config tool not found")
- endif (${_is_required})
- endif(PKG_CONFIG_EXECUTABLE)
-endmacro(_pkg_check_modules_internal)
-
-###
-### User visible macros start here
-###
-
-###
-macro(pkg_check_modules _prefix _module0)
- # check cached value
-# if (NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION})
- _pkgconfig_parse_options (_pkg_modules _pkg_is_required "${_module0}" ${ARGN})
- _pkg_check_modules_internal("${_pkg_is_required}" 0 "${_prefix}" ${_pkg_modules})
-
-# _pkgconfig_set(__pkg_config_checked_${_prefix} ${PKG_CONFIG_VERSION})
-# endif(NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION})
-endmacro(pkg_check_modules)
-
-###
-macro(pkg_search_module _prefix _module0)
- # check cached value
-# if (NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION})
- set(_pkg_modules_found 0)
- _pkgconfig_parse_options(_pkg_modules_alt _pkg_is_required "${_module0}" ${ARGN})
-
- message(STATUS "checking for one of the modules '${_pkg_modules_alt}'")
-
- # iterate through all modules and stop at the first working one.
- foreach(_pkg_alt ${_pkg_modules_alt})
- if(NOT _pkg_modules_found)
- _pkg_check_modules_internal(0 1 "${_prefix}" "${_pkg_alt}")
- endif(NOT _pkg_modules_found)
-
- if (${_prefix}_FOUND)
- set(_pkg_modules_found 1)
- endif(${_prefix}_FOUND)
- endforeach(_pkg_alt)
-
- if (NOT ${_prefix}_FOUND)
- if(${_pkg_is_required})
- message(SEND_ERROR "None of the required '${_pkg_modules_alt}' found")
- endif(${_pkg_is_required})
- endif(NOT ${_prefix}_FOUND)
-
-# _pkgconfig_set(__pkg_config_checked_${_prefix} ${PKG_CONFIG_VERSION})
-# endif(NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION})
-endmacro(pkg_search_module)
-
-### Local Variables:
-### mode: cmake
-### End:
diff --git a/app/bin/CMakeLists.txt b/app/bin/CMakeLists.txt
index ee0886d..74b1bc8 100644
--- a/app/bin/CMakeLists.txt
+++ b/app/bin/CMakeLists.txt
@@ -42,18 +42,6 @@ SET(LIN_SOURCES
GET_TARGET_PROPERTY(genhelp_EXE genhelp LOCATION)
-IF(XTRKCAD_USE_GETTEXT)
- SET(GENHELP_OPTS "-bhi")
- #
- # Find the GnuWin32 installation directory, the gettext include should be located in subdir include
- #
- IF(WIN32)
- ADD_DEFINITIONS(-DUSE_SIMPLE_GETTEXT )
- ENDIF(WIN32)
-ELSE(XTRKCAD_USE_GETTEXT)
- SET(GENHELP_OPTS "-bh")
-ENDIF(XTRKCAD_USE_GETTEXT)
-
ADD_CUSTOM_COMMAND(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/bllnhlp.c
DEPENDS genhelp ${help_SOURCE_DIR}/genhelp.in
@@ -62,8 +50,11 @@ ADD_CUSTOM_COMMAND(
SET(SOURCES
${LIN_SOURCES}
+ appdefaults.c
bllnhlp.c
+ cbezier.c
cblock.c
+ ccornu.c
ccurve.c
ccontrol.c
cdraw.c
@@ -115,12 +106,16 @@ SET(SOURCES
elev.c
fileio.c
i18n.c
+ layout.c
lprintf.c
macro.c
misc2.c
param.c
+ paths.c
shrtpath.c
smalldlg.c
+ tbezier.c
+ tcornu.c
tcurve.c
tease.c
track.c
@@ -134,12 +129,6 @@ INCLUDE_DIRECTORIES(${XTrkCAD_BINARY_DIR})
INCLUDE_DIRECTORIES(${help_BINARY_DIR})
INCLUDE_DIRECTORIES(${wlib_SOURCE_DIR}/include)
-# find libintl.h and use it
-find_path ( INTL_PATH libintl.h )
-if(INTL_PATH)
- INCLUDE_DIRECTORIES(${INTL_PATH})
-endif(INTL_PATH)
-
LINK_DIRECTORIES(${GTK_LIBRARY_DIRS})
LINK_DIRECTORIES(${GTK_WEBKIT_LIBRARY_DIRS})
@@ -149,12 +138,13 @@ ADD_LIBRARY(xtrkcad-lib ${SOURCES})
ADD_DEPENDENCIES(xtrkcad-lib Help)
ADD_EXECUTABLE(xtrkcad WIN32
- misc.c
+ misc.c
xtrkcad.rc
)
TARGET_LINK_LIBRARIES(xtrkcad xtrkcad-lib)
TARGET_LINK_LIBRARIES(xtrkcad xtrkcad-wlib)
-target_link_libraries(xtrkcad dynstring)
+TARGET_LINK_LIBRARIES(xtrkcad xtrkcad-cornu)
+TARGET_LINK_LIBRARIES(xtrkcad dynstring)
ADD_EXECUTABLE(mkturnout
${LIN_SOURCES}
diff --git a/app/bin/ChangeLog b/app/bin/ChangeLog
deleted file mode 100644
index 034812e..0000000
--- a/app/bin/ChangeLog
+++ /dev/null
@@ -1,495 +0,0 @@
-Apr 28, 2010
- FIX: Daniel Spagnol
- i18n.c, misc.c: replaced hard-coded XTRKCAD_LOCALE_DIR path with
- 'locale' based on application library directory (XTRKCAD_LOCALE_DIR is
- defined at makefiles generation time and does not reflect the place
- where the application is actually installed)
-
-Jan 01, 2010
- FIX: Martin Fischer
- custom.c, custom.h: fix compile warnings
-
-Dec 30, 2009
- FIX: Martin Fischer
- misc.c: make load last layout option work
-
-Dec 29, 2009
- FIX: Martin Fischer
- denum.c: remove signed / unsigned mismatch
-
-Dec 19, 2009
- FIX: Robert Heller
- cswitchmotor.c: Patch to fix Visual C++ compile error
-
-Dec 12, 2009
- FIX: Martin Fischer
- draw.c, custom.c: refactoring, move some functionality from the lowlevel
- library to the more appropriate core application modules
-
-Oct 14, 2009
- ENH: Daniel Spagnol
- chotbar.c: undone Oct 03, 2009 changes due to gtk+-2.18 fixed it for us.
- Actually gtk+-2.18 fixed all surface drawing performance issues for
- quartz.
-
-Oct 09, 2009
- FIX: Daniel Spagnol
- denum.c: application crash due to a double value used as a "%*" sprintf
- argument. scenario is "Manage" -> "Parts List..." -> "Price" (checkbox).
- denum.c: added a character counter function for utf-8 strings
-
-Oct 04, 2009
- FIX: Martin Fischer
- misc2.c: minimum radius is correctly changed
-
-Oct 03, 2009
- FIX: Daniel Spagnol
- chotbar.c: hotbar redraw too slow under gtk-quartz
-
-Sep 21, 2009
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- custom.c, misc.c, param.c, param.h, smalldlg.c smalldlg.h:
- New 'About' dialog
-
-Sep 16, 2009
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- cblock.c, cswitchmotor.c: remove some unused locals
-
-Aug 16, 2009
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- CMakeLists.txt cprint.c denum.c i18n.c i18n.h misc.c
- Improve internationalization support, use simple gettext on Win32
-
-Aug 16, 2009
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- custom.c cturnout.c: Code cleanup
-
-Jul 30, 2009
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- dcustmgm.c: set locale when exporting to parameter
-
-Jul 24, 2009
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- misc.c: add command line option for configuration
- file selection
-
-Jul 10, 2009
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- misc.c: use getopt() for access to command line arguments
-
-Jul 09, 2009
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- custom.c, misc.c, denum.c, doption.c: remove some
- obsolete flags
-
-Jul 08, 2009
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- cblock.c, cswitchmotor.c: make compile under MSVC
-
-Jul 08, 2009
- ENH: Robert Heller
- cblock.c, cswitchmotor.c: new functionality for layout
- control: blocks and switchmotors
-
-Version 4.0.3a
-==============
-
-Jul 05, 2009
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- track.c: Bug fix #2816663: Block gaps are not printed
-
-Jul 01, 2009
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- CMakeList.txt: remove dependency from unneeded cmisc2.c
-
-Jun 26, 2009
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- custom.c: correct handling of export file extensions
-
-Jun 20, 2009
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- ctodesgn.c: convert roadbed width as necessary
- (Robert Myers)
-
-Jun 15, 2009
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- tcurve.c, drawgeom.c: fix variable initialization
- problems.
-
-Jun 14, 2009
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- macro.c: make demos work again with new dialogs
-
-Jun 13, 2009
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- dlayer.c: "changed" state of layout is updated with
- layer changes. (DonDASA)
-
-Version 4.0.3
-=============
-
-Jun 10, 2009
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- ctodesgn.c: remove unneeded local variables
-
-Jun 08, 2009
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- draw.c: no tooltip for the main drawing area
-
-Jun 06, 2009
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- draw.c: fix compiler warning
-
-May 26, 2009
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- ctrain.c: update icons
-
-May 25, 2009
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- ctrain.c: change default for train running to 'Go'
- beautify throttle slider
-
-May 25, 2009
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- cturnout.c, track.c, track.h,utility.c, cparalle.c
- parallel command also works for straight pieces of
- sectional track
-
-May 15, 2009
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- macro.c, misc.c: more message boxes with icon
-
-May 08, 2009
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- fileio.c, misc.c: use new message box with icon
-
-
-Oct 11, 2008
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- draw.h: fixed prototype for DoZoom as suggested by
- Stefan Gruenendahl
-
-Sep 05, 2008
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- misc.c, cselect.c, track.c: create full partlist
- when no track is selected
-
-Sep 01, 2008
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- misc.c, common.h: add new toolbar icons for file ops
-
-Aug 29, 2008
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- draw.c: fixed bug #1821257: no zoom larger than 1:1
-
-Jul 11, 2008
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- misc.c: update map on loading initial layout
-
-Jul 10, 2008
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- misc.c, misc.h, draw.c: allow user to cancel close request
-
-Jun 04, 2008
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- cselect.c: Rescale dialog wasn't updated correctly
- misc2.c: fixed bug when rescale same piece several times
-
-Jun 03. 2008
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- CMakeLists.txt: find getext on Win32
-
-Jun 03, 2008
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- cselect.c: fixed bug when rescale same piece several times
- csnap.c: initialize grid spacing value
-
-Apr 13, 2008
- ENH: Bob Blackwell
- ctrain.c: updated label text
-
-Mar 27, 2008
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- csnap.c: working default value for grid spacing
-
-Mar 21, 2008
- FIX: Bob Blackwell
- doption.c: uppdated labels in option dialogs
-
-Mar 18, 2008
- FIX: Bob Blackwell
- doption.c: rearrange option settings in display / command / preferences
- dialog
-
-Feb 04, 2008
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- CMakeLists.txt: Fix missing icon problem for Windows exe
-
-Feb 04, 2008
- FIX: Mikko Nissinen <mni77@users.sourceforge.net>
- misc.c: Fixed an internationalization bug in MenuPlayback.
-
-Feb 04, 2008
- FIX: Mikko Nissinen <mni77@users.sourceforge.net>
- cnote.c: Minor fix to internationalization.
-
-Feb 03, 2008
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- cprint.c: printout of date is correctly localized now.
-
-Feb 03, 2008
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- misc.c, misc.h doption.c: on startup last file can now be loaded automatically.
- This behavior is controled by an option in the preferences dialog.
-
-Jan 28, 2008
- FIX: Mikko Nissinen <mni77@users.sourceforge.net>
- misc.c: Product name changed in font selection dialog.
-
-Jan 28, 2008
- FIX: Mikko Nissinen <mni77@users.sourceforge.net>
- common.c: Dynamically allocate and form some global translatable
- strings.
-
-Jan 27, 2008
- FIX: Mikko Nissinen <mni77@users.sourceforge.net>
- macro.c: String XTrkCad changed to XTrackCAD.
-
-Jan 27, 2008
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- misc.c, fileio.c: fixed product name
-
-Jan 27, 2008
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- dcar.c: corrected problem in CarPartWrite()
-
-Jan 25, 2008
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- custom.c, version.h: Changed product name to XTrackCAD and version
- to 4.1.0b1
-
-Jan 23, 2008
- FIX: Mikko Nissinen <mni77@users.sourceforge.net>
- ctodesgn.c: Removed '_()' around turnout label from InitNewTurn()
- and ShowTurnoutDesigner().
- dcustmgm.c: Saving custom stuff in demo mode changed the locale
- to "C" without restoring it back to original.
-
-Jan 23, 2008
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- fileio.c: increase precision for roomsize to 6 digits .
-
-Jan 23, 2008
- FIX: Mikko Nissinen <mni77@users.sourceforge.net>
- param.c: ParamPlayback(): If parameter type is PD_FLOAT, then use the
- locale "C" during atof().
-
-Jan 22, 2008
- ENH: Mikko Nissinen <mni77@users.sourceforge.net>
- misc.c: Save user locale when program initializes.
- macro.c: Gettext support added.
-
-Jan 21, 2008
- ENH: Mikko Nissinen <mni77@users.sourceforge.net>
- Gettext support added. The following 48 files were modified:
- ccurve.c, cdraw.c, celev.c, cgroup.c, chndldto.c, cjoin.c, cmisc.c,
- cmisc2.c, cmodify.c, cnote.c, compound.c, cparalle.c, cpull.c,
- cruler.c, cselect.c, csnap.c, csplit.c, cstraigh.c, cstruct.c,
- ctext.c, ctodesgn.c, ctrain.c, cturnout.c, cturntbl.c, cundo.c,
- custom.c, dbench.c, dbitmap.c, dcar.c, dcmpnd.c, dcustmgm.c, dease.c,
- denum.c, dlayer.c, doption.c, dpricels.c, dprmfile.c, draw.c,
- drawgeom.c, misc2.c, param.c, smalldlg.c, tcurve.c, tease.c, track.c,
- tstraigh.c
-
-Jan 18, 2008
- FIX: Mikko Nissinen <mni77@users.sourceforge.net>
- dcar.c: CarInvSaveText() Car list text file is now created to
- selected path instead of current working directory.
-
-Jan 15, 2008
- IMPROVEMENT: Mikko Nissinen <mni77@users.sourceforge.net>
- Basic gettext support added. Gettext is initialized in misc.c:wMain().
- The initialization routine is defined in i18n.[ch] along with all
- other gettext definitions.
- CMakeLists.txt
- fileio.[ch]
- i18n.[ch]
- misc.c
- Also the following CMakeLists were modified for gettext:
- xtrkcad/CMakeLists.txt
- xtrkcad/app/CMakeLists.txt
- xtrkcad/app/help/CMakeLists.txt
- xtrkcad/app/i18n/CMakeLists.txt (Initial import)
- xtrkcad/app/wlib/gtklib/CMakeLists.txt
-
-Dec 13, 2007
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- fileio.c: fixed segfault when locale is saved
-
-Dec. 12. 2007
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- dlayer.c: layers lists are updated properly after file is loaded
- fileio.c: fixed segfault when locale is saved
- Makefile: updated dependencies for dlayer.c
-
-Dec 08, 2007
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- xtrkcad.ico: create a new color icon
-
-Dec. 01, 2007
- BUGFIX: Martin Fischer <m_fischer@users.sourceforge.net>
- acclkeys.h: removed non-working accelerator key for deselect all
-
-Nov. 30, 2007
- FIX: Timothy M. Shead
- misc.c: make sure that font initialization is run first
-
-Oct 29, 2007
- BUGFIX: Martin Fischer <m_fischer@users.sourceforge.net>
- dlayer.c: Shortened button text to 'Defaults'
-
-Oct 10, 2007
- BUGFIX: Martin Fischer <m_fischer@users.sourceforge.net>
- csnap.c cprint.c, misc.c: Accelerator keys for Print and
- Snap Grid Dialog work again.
-
-Oct 10, 2007
- BUGFIX: Martin Fischer <m_fischer@users.sourceforge.net>
- acclkeys.h: Revert and Redo used the same accelerator key.
- Fixed, Revert doesn't have an acclerator now.
-
-Sep 28, 2007
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- misc.c, smalldlg.c: Use large message for tip of the day
- teaser line. Changed to a more generous spacing in dialogs.
-
-Sep 23, 2007
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- misc.c, smalldlg.c: separated tip window code into new
- source file. Slightly improved the "tip of the day" dialog
- (jump to next and prev tip).
-
-Sep 15, 2007
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- misc.c: XTrkCad now has a real splash window during startup
-
-Jul 22, 2007
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- draw.c: the mouse wheel can be used for zooming in and out
-
-Jun 27, 2007
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- dlayer.c: some cleanup and modified layer buttons. Also all
- layer buttons where moved to the bitmaps directory.
-
-Jun 16, 2007
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- fileio.c: default directory for storing files is the user's
- home directory now.
-
-Jun 15, 2007
- BUGFIX: Martin Fischer <m_fischer@users.sourceforge.net>
- dlayer.c: fixed function prototype for Windows compile
-
-Jun 15, 2007
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- dlayer.c: layer buttons now are push buttons that are in
- 'pressed' state when layer is visible.
-
-Jun 15, 2007
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- dlayer.c, fileio.c, misc.c: settings for the layers can now
- be saved in the preferences. On opening a new layout or upon
- startup of XTrkCad these settings are automatically loaded.
-
-May 18, 2007
-
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- draw.c misc.c: disable zoom up and zoom down buttons when
- end of list is reached
-
-Apr 30, 2007
-
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- draw.c, misc.c, draw.h: use radio buttons for selecting zoom factor
- zoom in and out goes through all available zoom factors step by step
- setting zoom is available from the pulldown menu as well
-
-Apr 11, 2007
-
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- draw.c: changed layout of status bar to include labels.
- Part count is no longer shown.
-
-Feb 23, 2007
- BUGFIX: Martin Fischer <m_fischer@users.sourceforge.net>
- cmisc.c, cselect.c rescale / resize works again. UI change to
- allow changing scale and gauge independently
-
-Feb 16, 2007
-
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- Recently used files list is only updated after successful load
-
-
-Version 4.0.1
-=============
-
-May 26th, 2006
-
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- Visual Studio C++ 2005 Express is now supported under Windows
-
-Mar 26th, 2006
-
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- misc.c, fileio,c, draw.c If the application crashed the user can decide
- to resume work at the last state saved in a checkpoint file
- checkpoint files (ckp and ck1) are removed on normal exit
-
-Mar 25th, 2006
-
- BUGFIX: Martin Fischer <m_fischer@users.sourceforge.net>
- misc2.c prevent warning in DoSetScaleDesc
-
-Mar 02nd, 2006
-
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- cturnout.c Improvements to the select turnout dialog, new turnout is drawn
- blue
-
-Feb. 26th, 2006
-
- NEW FEATURE: Martin Fischer <m_fischer@users.sourceforge.net>
- misc.c, cselect.c, 'Select orphaned track' command added to set all
- unconnected track pieces.
-
-Feb, 22nd, 2006
-
- NEW FEATURE: Martin Fischer <m_fischer@users.sourceforge.net>
- misc.c, misc2.c, doption.c Scale and gauge are two independant seetings
- now.
-
- NEW FEATURE: Martin Fischer <m_fischer@users.sourceforge.net>
- misc.c, cselect.c Add new function 'Invert Selection' which inverts
- the selection state of all visible objects on the layout
-
- NEW FEATURE: Martin Fischer <m_fischer@users.sourceforge.net>
- misc.c Add new function 'Revert' to main menu, implemented in ChkRevert
- acclkeys.h Added Ctrl-r as accelerator for 'Revert'
-
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- cselect.c Optimized performance for 'Select Connected' operation
-
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- bllnhelp.c: removed inconsistencies in usage of 'track' and 'object'
-
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- misc.c: moved 'Join' command to 'Change' menu
-
- BUGFIX: Martin Fischer <m_fischer@users.sourceforge.net>
- fileio.c Setting locale to portable 'C' before reading/writing parameters
- and trackplans to prevent problems with locales that use comma as decimal
- separator ( eg. Germany )
-
- BUGFIX:
diff --git a/app/bin/acclkeys.h b/app/bin/acclkeys.h
index 09bd9bb..1cbdf00 100644
--- a/app/bin/acclkeys.h
+++ b/app/bin/acclkeys.h
@@ -30,6 +30,7 @@
/* commands */
#define ACCL_DESCRIBE (WCTL+'?')
#define ACCL_SELECT (WCTL+'e')
+#define ACCL_PAN (WCTL+'/')
#define ACCL_STRAIGHT (WCTL+'g')
#define ACCL_CURVE1 (WCTL+'4')
#define ACCL_CURVE2 (WCTL+'5')
@@ -38,6 +39,7 @@
#define ACCL_CIRCLE1 (WCTL+'8')
#define ACCL_CIRCLE2 (WCTL+'9')
#define ACCL_CIRCLE3 (WCTL+'0')
+#define ACCL_BEZIER (0)
#define ACCL_TURNOUT (WCTL+'t')
#define ACCL_TURNTABLE (WCTL+WSHIFT+'n')
#define ACCL_PARALLEL (WCTL+WSHIFT+'p')
@@ -70,6 +72,7 @@
#define ACCL_DRAWFILLCIRCLE1 (WALT+WCTL+'8')
#define ACCL_DRAWFILLCIRCLE2 (WALT+WCTL+'9')
#define ACCL_DRAWFILLCIRCLE3 (WALT+WCTL+'0')
+#define ACCL_DRAWBEZLINE (0)
#define ACCL_DRAWBOX (WCTL+WSHIFT+'[')
#define ACCL_DRAWFILLBOX (WALT+WCTL+'[')
#define ACCL_DRAWPOLYLINE (WCTL+WSHIFT+'2')
diff --git a/app/bin/appdefaults.c b/app/bin/appdefaults.c
new file mode 100644
index 0000000..a2dd885
--- /dev/null
+++ b/app/bin/appdefaults.c
@@ -0,0 +1,435 @@
+/** \file appdefaults.c
+* Provide defaults, mostly for first run of the program.
+*/
+
+/* XTrkCad - Model Railroad CAD
+* Copyright (C) 2017 Martin Fischer
+*
+* This program is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 2 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*/
+
+#include <locale.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <string.h>
+#include <wchar.h>
+
+#ifdef WINDOWS
+#include <Windows.h>
+#include <malloc.h>
+#endif
+
+#include "common.h"
+#include "custom.h"
+#include "fileio.h"
+#include "paths.h"
+#include "wlib.h"
+
+enum defaultTypes {
+ INTEGERCONSTANT,
+ FLOATCONSTANT,
+ STRINGCONSTANT,
+ INTEGERFUNCTION,
+ FLOATFUNCTION,
+ STRINGFUNCTION
+};
+
+struct appDefault {
+ char *defaultKey; /**< the key used to access the value */
+ bool wasUsed; /**< value has already been used on this run */
+ enum defaultTypes
+ valueType; /**< type of default, constant or pointer to a function */
+ union {
+ int intValue;
+ double floatValue;
+ char *stringValue;
+ int (*intFunction)(struct appDefault *, void *);
+ double (*floatFunction)(struct appDefault *, void *);
+ char *(*stringFunction)(struct appDefault *, void *);
+ } defaultValue;
+ void *additionalData;
+};
+
+static int GetLocalMeasureSystem(struct appDefault *ptrDefault,
+ void *additionalData);
+static int GetLocalDistanceFormat(struct appDefault *ptrDefault,
+ void *additionalData);
+static char *GetLocalPopularScale(struct appDefault *ptrDefault,
+ void *additionalData);
+static double GetLocalRoomSize(struct appDefault *ptrDefault,
+ void *additionalData);
+static char *GetParamFullPath(struct appDefault *ptrDefault,
+ void *additionalData);
+static char *GetParamPrototype(struct appDefault *ptrDefault,
+ void *additionalData);
+
+/**
+ * List of application default settings. As this is searched by binary search, the list has to be kept sorted
+ * alphabetically for the key, the first element
+ * Also the search is case sensitive on this field.
+ */
+
+struct appDefault xtcDefaults[] = {
+ { "DialogItem.cmdopt-preselect", 0, INTEGERCONSTANT,{ .intValue = 1 } }, /**< default command is select */
+ { "DialogItem.grid-horzenable", 0, INTEGERCONSTANT, { .intValue = 0 }},
+ { "DialogItem.grid-vertenable", 0, INTEGERCONSTANT,{ .intValue = 0 } },
+ { "DialogItem.pref-dstfmt", 0, INTEGERFUNCTION,{ .intFunction = GetLocalDistanceFormat } }, /**< number format for distances */
+ { "DialogItem.pref-units", 0, INTEGERFUNCTION,{ .intFunction = GetLocalMeasureSystem } }, /**< default unit depends on region */
+ { "DialogItem.rgbcolor-exception", 0, INTEGERCONSTANT, { .intValue = 15923462 }}, /**< rich yellow as exception color */
+ { "Parameter File Map.British stock", 0, STRINGFUNCTION,{ .stringFunction = GetParamFullPath }, "br.xtp" },
+ { "Parameter File Map.European stock", 0, STRINGFUNCTION,{ .stringFunction = GetParamFullPath }, "eu.xtp" },
+ { "Parameter File Map.NMRA RP12-25 Feb 2015 O scale Turnouts", 0, STRINGFUNCTION,{ .stringFunction = GetParamFullPath }, "nmra-o.xtp" },
+ { "Parameter File Map.NMRA RP12-27 Feb 2015 S Scale Turnouts", 0, STRINGFUNCTION,{ .stringFunction = GetParamFullPath }, "nmra-s.xtp" },
+ { "Parameter File Map.NMRA RP12-31 Feb 2015 HO Scale Turnouts", 0, STRINGFUNCTION,{ .stringFunction = GetParamFullPath }, "nmra-ho.xtp" },
+ { "Parameter File Map.NMRA RP12-33 Feb 2015 TT Scale Turnouts", 0, STRINGFUNCTION,{ .stringFunction = GetParamFullPath }, "nmra-tt.xtp" },
+ { "Parameter File Map.NMRA RP12-35 Feb 2015 N Scale Turnouts", 0, STRINGFUNCTION,{ .stringFunction = GetParamFullPath }, "nmra-n.xtp" },
+ { "Parameter File Map.NMRA RP12-37 Feb 2015 Z scale Turnouts", 0, STRINGFUNCTION,{ .stringFunction = GetParamFullPath }, "nmra-z.xtp" },
+ { "Parameter File Map.North American Prototypes", 0, STRINGFUNCTION,{ .stringFunction = GetParamFullPath }, "protoam.xtp" },
+ { "Parameter File Map.Trees", 0, STRINGFUNCTION,{ .stringFunction = GetParamFullPath } , "trees.xtp" },
+ { "Parameter File Names.File1", 0, STRINGFUNCTION,{ .stringFunction = GetParamPrototype }},
+ { "Parameter File Names.File2", 0, STRINGCONSTANT,{ .stringValue = "Trees" } },
+ { "Parameter File Names.File3", 0, STRINGCONSTANT,{ .stringValue = "NMRA RP12-37 Feb 2015 Z scale Turnouts" } },
+ { "Parameter File Names.File4", 0, STRINGCONSTANT,{ .stringValue = "NMRA RP12-35 Feb 2015 N Scale Turnouts" } },
+ { "Parameter File Names.File5", 0, STRINGCONSTANT,{ .stringValue = "NMRA RP12-33 Feb 2015 TT Scale Turnouts" } },
+ { "Parameter File Names.File6", 0, STRINGCONSTANT,{ .stringValue = "NMRA RP12-31 Feb 2015 HO Scale Turnouts" } },
+ { "Parameter File Names.File7", 0, STRINGCONSTANT,{ .stringValue = "NMRA RP12-27 Feb 2015 S Scale Turnouts" } },
+ { "Parameter File Names.File8", 0, STRINGCONSTANT,{ .stringValue = "NMRA RP12-25 Feb 2015 O scale Turnouts" } },
+ { "draw.roomsizeX", 0, FLOATFUNCTION, {.floatFunction = GetLocalRoomSize }}, /**< layout width */
+ { "draw.roomsizeY", 0, FLOATFUNCTION,{ .floatFunction = GetLocalRoomSize } }, /**< layout depth */
+ { "misc.scale", 0, STRINGFUNCTION, { .stringFunction = GetLocalPopularScale}}, /**< the (probably) most popular scale for a region */
+};
+
+#define DEFAULTCOUNT (sizeof(xtcDefaults)/sizeof(xtcDefaults[0]))
+
+
+static long bFirstRun; /**< TRUE if appl is run the first time */
+static char regionCode[3]; /**< will be initialized to the locale's region code */
+
+static wBool_t(*GetIntegerPref)(const char *, const char *, long *, long) = wPrefGetIntegerExt; /**< pointer to active integer pref getter */
+static wBool_t(*GetFloatPref)(const char *, const char *, double *, double) = wPrefGetFloatExt; /**< pointer to active float pref getter */
+static char *(*GetStringPref)(const char *, const char *) = wPrefGetStringExt; /**< pointer to active string pref getter */
+
+/**
+ * A recursive binary search function. It returns location of x in
+ * given array arr[l..r] is present, otherwise -1
+ * Taken from http://www.geeksforgeeks.org/binary-search/ and modified
+ *
+ * \param arr IN array to search
+ * \param l IN starting index
+ * \param r IN highest index in array
+ * \param key IN key to search
+ * \return index if found, -1 otherwise
+ */
+
+static int binarySearch(struct appDefault arr[], int l, int r, char *key)
+{
+ if (r >= l) {
+ int mid = l + (r - l) / 2;
+ int res = strcmp(key, arr[mid].defaultKey);
+
+ // If the element is present at the middle itself
+ if (!res) {
+ return mid;
+ }
+
+ // If the array size is 1
+ if (r == 0) {
+ return -1;
+ }
+
+ // If element is smaller than mid, then it can only be present
+ // in left subarray
+ if (res < 0) {
+ return binarySearch(arr, l, mid - 1, key);
+ }
+
+ // Else the element can only be present in right subarray
+ return binarySearch(arr, mid + 1, r, key);
+ }
+
+ // We reach here when element is not present in array
+ return -1;
+}
+
+/**
+ * Lookup default for a value
+ *
+ * \param defaultValues IN array of all default values
+ * \param section IN default's section
+ * \param name IN default's name
+ * \return pointer to default if found, NULL otherwise
+ */
+struct appDefault *
+FindDefault(struct appDefault *defaultValues, const char *section,
+ const char *name)
+{
+ char *searchString = malloc(strlen(section) + strlen(name) +
+ 2); //includes separator and terminating \0
+ int res;
+ sprintf(searchString, "%s.%s", section, name);
+
+ res = binarySearch(defaultValues, 0, DEFAULTCOUNT-1, searchString);
+ free(searchString);
+
+ if (res != -1 && defaultValues[res].wasUsed == FALSE) {
+ defaultValues[res].wasUsed = TRUE;
+ return (defaultValues + res);
+ } else {
+ return (NULL);
+ }
+}
+/**
+ * Get the application's default region code. On Windows, the system's API is used.
+ * On *ix the environment variable LANG is supposed to contain a value in the
+ * format ll_RR* where rr is the two character region code.
+ */
+static void
+InitializeRegionCode(void)
+{
+ strcpy(regionCode, "US");
+
+#ifdef WINDOWS
+ {
+ LCID lcid;
+ char iso3166[10];
+
+ lcid = GetThreadLocale();
+ GetLocaleInfo(lcid, LOCALE_SISO3166CTRYNAME, iso3166, sizeof(iso3166));
+ strncpy(regionCode, iso3166, 2);
+ }
+#else
+ {
+ char *pLang;
+ pLang = getenv("LANG");
+
+ if (pLang) {
+ char *ptr;
+ ptr = strpbrk(pLang, "_-");
+
+ if (ptr) {
+ strncpy(regionCode, ptr + 1, 2);
+ }
+ }
+ }
+#endif
+}
+
+/**
+ * For the US the classical 4x8 sheet is used as default size. in the metric world 1,25x2,0m is used.
+ */
+
+static double
+GetLocalRoomSize(struct appDefault *ptrDefault, void *data)
+{
+ if (!strcmp(ptrDefault->defaultKey, "draw.roomsizeY")) {
+ return (strcmp(regionCode, "US") ? 125.0/2.54 : 48);
+ }
+
+ if (!strcmp(ptrDefault->defaultKey, "draw.roomsizeX")) {
+ return (strcmp(regionCode, "US") ? 200.0 / 2.54 : 96);
+ }
+
+ return (0.0); // should never get here
+}
+
+/**
+ * The most popular scale is supposed to be HO except for UK where OO is assumed.
+ */
+
+static char *
+GetLocalPopularScale(struct appDefault *ptrDefault, void *data)
+{
+ return (strcmp(regionCode, "GB") ? "HO" : "OO");
+}
+
+/**
+ * The measurement system is english for the US and metric elsewhere
+ */
+static int
+GetLocalMeasureSystem(struct appDefault *ptrDefault, void *data)
+{
+ return (strcmp(regionCode, "US") ? 1 : 0);
+}
+
+/**
+* The distance format is 999.9 cm for metric and ?? for english
+*/
+static int
+GetLocalDistanceFormat(struct appDefault *ptrDefault, void *data)
+{
+ return (strcmp(regionCode, "US") ? 8 : 5);
+}
+
+/**
+* Prototype definitions currently only exist for US and British. So US
+* is assumed to be the default.
+*/
+
+static char*
+GetParamPrototype(struct appDefault *ptrDefault, void *additionalData)
+{
+ return (strcmp(regionCode, "GB") ? "North American Prototypes" : "British stock");
+}
+
+/**
+ * The full path to the applications parameter directory
+ */
+static char *
+GetParamFullPath(struct appDefault *ptrDefault, void *additionalData)
+{
+ char *str;
+ MakeFullpath(&str, libDir, PARAM_SUBDIR, (char*)additionalData, (void *)0);
+ return str;
+}
+
+
+/**
+ * The following are three jump points for the correct implementation. Changing the funtion pointer
+ * allows to switch from the extended default version to the basic implementation.
+ */
+
+wBool_t
+wPrefGetInteger(const char *section, const char *name, long *result, long defaultValue)
+{
+ return GetIntegerPref(section, name, result, defaultValue);
+}
+
+wBool_t
+wPrefGetFloat(const char *section, const char *name, double *result, double defaultValue)
+{
+ return GetFloatPref(section, name, result, defaultValue);
+}
+
+char *
+wPrefGetString(const char *section, const char *name)
+{
+ return GetStringPref(section, name);
+}
+
+/**
+ * Get an integer value from the configuration file. The is a wrapper for the real
+ * file access and adds a region specific default value.
+ *
+ * \param section IN section in config file
+ * \param name IN name in config file
+ * \param result OUT pointer to result
+ * \param defaultValue IN the default value to use if config is not found
+ * \return returncode of wPrefGetIntegerBasic()
+ */
+wBool_t
+wPrefGetIntegerExt(const char *section, const char *name, long *result,
+ long defaultValue)
+{
+ struct appDefault *thisDefault;
+
+ thisDefault = FindDefault(xtcDefaults, section, name);
+
+ if (thisDefault) {
+ if (thisDefault->valueType == INTEGERCONSTANT) {
+ defaultValue = thisDefault->defaultValue.intValue;
+ } else {
+ defaultValue = (thisDefault->defaultValue.intFunction)(thisDefault,
+ thisDefault->additionalData);
+ }
+ }
+
+ return (wPrefGetIntegerBasic(section, name, result, defaultValue));
+}
+
+/**
+ * Get a float value from the configuration file. The is a wrapper for the real
+ * file access and adds a region specific default value.
+ *
+ * \param section IN section in config file
+ * \param name IN name in config file
+ * \param result OUT pointer to result
+ * \param defaultValue IN the default value to use if config is not found
+ * \return returncode of wPrefGetFloatBasic()
+ */
+
+wBool_t
+wPrefGetFloatExt(const char *section, const char *name, double *result,
+ double defaultValue)
+{
+ struct appDefault *thisDefault;
+
+ thisDefault = FindDefault(xtcDefaults, section, name);
+
+ if (thisDefault) {
+ if (thisDefault->valueType == FLOATCONSTANT) {
+ defaultValue = thisDefault->defaultValue.floatValue;
+ } else {
+ defaultValue = (thisDefault->defaultValue.floatFunction)(thisDefault,
+ thisDefault->additionalData);
+ }
+ }
+
+ return (wPrefGetFloatBasic(section, name, result, defaultValue));
+}
+
+/**
+ * Get a string from the configuration file. The is a wrapper for the real
+ * file access and adds a region specific default value.
+ *
+ * \param section IN section in config file
+ * \param name IN name in config file
+ * \return returncode of wPrefGetStringBasic()
+ */
+char *
+wPrefGetStringExt(const char *section, const char *name)
+{
+ struct appDefault *thisDefault;
+
+ thisDefault = FindDefault(xtcDefaults, section, name);
+
+ if (thisDefault) {
+ char *prefString;
+ char *defaultValue;
+
+ if (thisDefault->valueType == STRINGCONSTANT) {
+ defaultValue = thisDefault->defaultValue.stringValue;
+ } else {
+ defaultValue = (thisDefault->defaultValue.stringFunction)(thisDefault,
+ thisDefault->additionalData);
+ }
+
+ prefString = (char *)wPrefGetStringBasic(section, name);
+ return (prefString ? prefString : defaultValue);
+ } else {
+ return ((char *)wPrefGetStringBasic(section, name));
+ }
+}
+
+/**
+ * Initialize the application default system. The flag firstrun is used to find
+ * out whether the application was run before. This is accomplished by trying
+ * to read it from the configuration file. As it is only written after this
+ * test, it can never be found on the first run of the application ie. when the
+ * configuration file does not exist yet.
+ */
+
+void
+InitAppDefaults(void)
+{
+ wPrefGetIntegerBasic( "misc", "firstrun", &bFirstRun, TRUE);
+ if (bFirstRun) {
+ wPrefSetInteger("misc", "firstrun", FALSE);
+ InitializeRegionCode();
+ } else {
+ GetIntegerPref = wPrefGetIntegerBasic;
+ GetFloatPref = wPrefGetFloatBasic;
+ GetStringPref = wPrefGetStringBasic;
+ }
+}
diff --git a/app/bin/bdf2xtp.c b/app/bin/bdf2xtp.c
index adc2b04..76fb31a 100644
--- a/app/bin/bdf2xtp.c
+++ b/app/bin/bdf2xtp.c
@@ -134,21 +134,17 @@ double findDistance( coOrd p0, coOrd p1 )
int small(double v )
/* is <v> close to 0.0 */
{
- return (fabs(v) < 0.0001);
+ return (fabs(v) < 0.000000000001);
}
double findAngle( coOrd p0, coOrd p1 )
/* find angle between two points */
{
double dx = p1.x-p0.x, dy = p1.y-p0.y;
- if (small(dx)) {
- if (dy >=0) return 0.0;
+ if (small(dx) && small(dy)) {
+ if (dy >=0.0) return 0.0;
else return 180.0;
}
- if (small(dy)) {
- if (dx >=0) return 90.0;
- else return 270.0;
- }
return R2D(atan2( dx,dy ));
}
diff --git a/app/bin/bitmaps/bezier.xpm b/app/bin/bitmaps/bezier.xpm
new file mode 100644
index 0000000..6c592ed
--- /dev/null
+++ b/app/bin/bitmaps/bezier.xpm
@@ -0,0 +1,23 @@
+/* XPM */
+static char * bezier_xpm[] = {
+"16 16 4 1",
+" c None",
+"! c #000000000000",
+"# c #FFFF00000000",
+"$ c #808080000000",
+" ### !!!!",
+" # #########",
+" ### !! !",
+" $!! $!!!",
+" !!$$ !! !",
+" !! $!$ !",
+" $$ !! !! $ ",
+" !!!!!!! ",
+" !! ! $$ ",
+" $!! !! ",
+"! !$$!! ",
+"! ! $! ",
+"!!!$ !!$ ",
+"! !! ### ",
+"######### # ",
+"!!!! ### "}; \ No newline at end of file
diff --git a/app/bin/bitmaps/dbezier.xpm b/app/bin/bitmaps/dbezier.xpm
new file mode 100644
index 0000000..1bf366f
--- /dev/null
+++ b/app/bin/bitmaps/dbezier.xpm
@@ -0,0 +1,22 @@
+/* XPM */
+static char * dbezier_xpm[] = {
+"16 16 3 1",
+" c None",
+"! c #000000000000",
+"# c #FFFF00000000",
+" ### ",
+" # ########",
+" ### !!!!",
+" !!!! ",
+" !!!! ",
+" !!! ",
+" !!! ",
+" !! ",
+" !!! ",
+" !! ",
+" !!! ",
+" !!! ",
+" !!! ",
+"!!!! ### ",
+"######## # ",
+" ### "}; \ No newline at end of file
diff --git a/app/bin/bitmaps/ecornu.xpm b/app/bin/bitmaps/ecornu.xpm
new file mode 100644
index 0000000..e32e56a
--- /dev/null
+++ b/app/bin/bitmaps/ecornu.xpm
@@ -0,0 +1,23 @@
+/* XPM */
+static char * ecornu_xpm[] = {
+"41 16 4 1",
+". c None",
+" c #000000000000",
+"# c #FFFF00000000",
+"$ c #808080000000",
+" .................................. .",
+" ..................................... ",
+" ...... ... .. .. . ... .. .. .",
+" .. .. . .... .. . .. .. . .. . .. . .",
+" ..... .. .. .. . .. .. . . .. . .",
+" ..... .. .... . .... .. .. . .... .. . .",
+" .. . ... . .. .. .. . .. .. ",
+".........................................",
+"...$$$...###.....................$$$$$...",
+"..$...$.#...#................$$$$.....$..",
+".$..$..$#......##..###..###$$#..#.$$$..$.",
+"$..$.$..#.....#..#.#$$#$#..#.#..#$...$..$",
+"$..$...$#.....#$$#$#....#..#.#..#..$.$..$",
+".$..$$$.#..$#$#..#.#....#..#.#..#$..$..$.",
+"..$.....$###...##..#....#..#..##..$...$..",
+"...$$$$$...........................$$$..."};
diff --git a/app/bin/bitmaps/eltsharp.xpm b/app/bin/bitmaps/eltsharp.xpm
new file mode 100644
index 0000000..70985c1
--- /dev/null
+++ b/app/bin/bitmaps/eltsharp.xpm
@@ -0,0 +1,21 @@
+/* XPM */
+static char * eltsharp_xpm[] = {
+"41 16 2 1",
+". c None",
+" c #000000000000",
+" .................................. .",
+" ..................................... ",
+" ...... ... .. .. . ... .. .. .",
+" .. .. . .... .. . .. .. . .. . .. . .",
+" ..... .. .. .. . .. .. . . .. . .",
+" ..... . .... . .... .. .. . .... .. . .",
+" .. . . ... . .. .. .. . .. .. ",
+".........................................",
+"..... ...... . ......................",
+".... ...... ...... ......................",
+"... ....... ...... ... .. .. .....",
+".. ......... . .. . .. . .. . .. ....",
+"... ............ . .. . .. . .... .. ....",
+".... ........... . .. . . . .... .....",
+"..... ..... .. .. .. . . .... .......",
+"................................. ......."};
diff --git a/app/bin/bitmaps/helix.xpm b/app/bin/bitmaps/helix.xpm
deleted file mode 100644
index ba0551e..0000000
--- a/app/bin/bitmaps/helix.xpm
+++ /dev/null
@@ -1,21 +0,0 @@
-/* XPM */
-static char * helix_xpm[] = {
-"16 16 2 1",
-" c None",
-". c #000000000000",
-" ",
-" ........... ",
-" . ",
-" . . ",
-" . . ",
-" .......... ",
-" . . ",
-" . . ",
-" .......... ",
-" . . ",
-" . . ",
-" ......... ",
-" . ",
-" . ",
-" ............ ",
-" "};
diff --git a/app/bin/bitmaps/map.xpm b/app/bin/bitmaps/map.xpm
new file mode 100644
index 0000000..a1f427a
--- /dev/null
+++ b/app/bin/bitmaps/map.xpm
@@ -0,0 +1,22 @@
+/* XPM */
+static char * map_xpm[] = {
+"16 16 3 1",
+"o c None",
+" c #000000000000",
+". c #FFFFFFFFFFFF",
+"ooo ooo",
+"ooo ooo",
+"oo ........ oo",
+"oo ........ oo",
+"o .......... o",
+"o .......... o",
+" ...... .... ",
+" .... .. ... ",
+" .. .. .... .. ",
+" ... ...... . ",
+" .............. ",
+" ",
+" ",
+"oooooooooooooooo",
+"oooooooooooooooo",
+"oooooooooooooooo"};
diff --git a/app/bin/bitmaps/pan.xpm b/app/bin/bitmaps/pan.xpm
new file mode 100644
index 0000000..8782714
--- /dev/null
+++ b/app/bin/bitmaps/pan.xpm
@@ -0,0 +1,22 @@
+/* XPM */
+static char * pan_xpm[] = {
+"16 16 3 1",
+" c None",
+". c #000000000000",
+"X c #FFFF00000000",
+" ",
+" XX ",
+" XXXX ",
+" XXXXXX. ",
+" XX XX XX ",
+" XX ",
+" XX XX XX ",
+" XXXXXXXXXXXXXX ",
+" XXXXXXXXXXXXXX ",
+" XX XX XX ",
+" XX ",
+" XX XX XX ",
+" XXXXXX ",
+" XXXX ",
+" XX ",
+" "};
diff --git a/app/bin/cbezier.c b/app/bin/cbezier.c
new file mode 100644
index 0000000..92855c1
--- /dev/null
+++ b/app/bin/cbezier.c
@@ -0,0 +1,1153 @@
+/** \file cbezier.c
+ * Bezier Command. Draw or modify a Bezier (Track or Line).
+ */
+ /* XTrkCad - Model Railroad CAD
+ *
+ * Cubic Bezier curves have a definitional representation as an a set of four points.
+ * The first and fourth are the end points, while the middle two are control points.
+ * The control points positions define the angle at the ends and by their relative positions the overall
+ * curvature. This representation is a familiar approach for those who know drawing programs such as Adobe
+ * Illustrator or CorelDraw.
+ *
+ * In XTrackCAD, the Bezier form is also represented and drawn as a set of
+ * joined circular arcs that approximate the Bezier form within a small tolerance. This is because
+ * many of the operations we need to do are either computationally difficult or
+ * impossible using the Bezier equations. For example, creating a parallel Bezier
+ * which is necessary to draw a track with two lines or sleepers has no easy, stable solution.
+ * But the program is already able to do these tasks for straight lines and curves.
+ *
+ * Note that every time we change the Bezier points we have to recalculate the arc approximation,
+ * but that means that the majority of the time we are using the simpler approximation.
+ *
+ * We do not allow Bezier curves that have loops or cusps as they make no sense for tracks and
+ * can easily be approximated for lines with multiple unaligned Bezier curves.
+ *
+ * This program borrows from particular ideas about converting Bezier curves that Pomax placed into
+ * open source. The originals in Javascript can be found at github.com/Pomax.
+ * The web pages that explain many other techniques are located at https://pomax.github.io/bezierinfo
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+
+#include "track.h"
+#include "draw.h"
+#include "ccurve.h"
+#include "cbezier.h"
+#include "tbezier.h"
+#include "cstraigh.h"
+#include "drawgeom.h"
+#include "cjoin.h"
+#include "i18n.h"
+#include "common.h"
+#include "wcolors.h"
+#include "math.h"
+#include "utility.h"
+#include "param.h"
+#include "fileio.h"
+#include "layout.h"
+#include "cundo.h"
+
+extern drawCmd_t tempD;
+
+
+/*
+ * STATE INFO
+ */
+enum Bezier_States { NONE,
+ POS_1,
+ CONTROL_ARM_1,
+ POS_2,
+ CONTROL_ARM_2,
+ PICK_POINT,
+ POINT_PICKED,
+ TRACK_SELECTED };
+
+typedef struct {
+ curveData_t curveData;
+ double start;
+ double end;
+ coOrd pos0;
+ coOrd pos1;
+ } bCurveData_t;
+
+static struct {
+ enum Bezier_States state;
+ coOrd pos[4];
+ int selectPoint;
+ wDrawColor color;
+ DIST_T width;
+ track_p trk[2];
+ EPINX_T ep[2];
+ dynArr_t crvSegs_da;
+ int crvSegs_da_cnt;
+ trkSeg_t cp1Segs_da[4];
+ int cp1Segs_da_cnt;
+ trkSeg_t cp2Segs_da[4];
+ int cp2Segs_da_cnt;
+ BOOL_T unlocked;
+ track_p selectTrack;
+ BOOL_T track;
+ DIST_T minRadius;
+ } Da;
+
+
+
+/**
+ * Draw a ControlArm.
+ * A control arm has two filled or unfilled circles for endpoints and a straight line between them.
+ * If the end or control point is not selectable we don't mark it with a circle.
+ * If a selectable end or control point is unlocked place a filled circle on it, otherwise an empty circle.
+ * A red color indicates that this arm, end or control point is "active" as it was selected.
+ */
+int createControlArm(
+ trkSeg_t sp[], //seg pointer for up to 3 trkSegs (ends and line)
+ coOrd pos0, //end on curve
+ coOrd pos1, // control point at other end of line
+ BOOL_T track, // isTrack()? (otherwise Line)
+ BOOL_T selectable, // can this arm be selected?
+ BOOL_T cp_direction_locked, //isFixed to track
+ int point_selected, //number of point 0, 1 or -1
+ wDrawColor color //drawColorBlack or drawColorWhite
+ )
+{
+ DIST_T d, w;
+ d = tempD.scale*0.25;
+ w = tempD.scale/tempD.dpi; /*double width*/
+ sp[0].u.l.pos[0] = pos0;
+ sp[0].u.l.pos[1] = pos1;
+ sp[0].type = SEG_STRLIN;
+ sp[0].width = w;
+ sp[0].color = (point_selected>=0)?drawColorRed:drawColorBlack;
+ int n = 0;
+ if (selectable) {
+ for (int j=0;j<2;j++) {
+ if (j==0 && cp_direction_locked) continue; //Don't show select circle if end locked
+ n++;
+ sp[n].u.c.center = j==0?pos0:pos1;
+ sp[n].u.c.radius = d/4;
+ sp[n].width = w;
+ sp[n].color = (j==point_selected)?drawColorRed:drawColorBlack;
+ if (j==point_selected && cp_direction_locked) {
+ sp[n].type = SEG_FILCRCL;
+ } else {
+ sp[n].type = SEG_CRVLIN;
+ sp[n].u.c.a0 = 0.0;
+ sp[n].u.c.a1 = 360.0;
+ }
+ }
+ }
+ return n+1;
+}
+
+coOrd getPoint(coOrd pos[4], double s) {
+ double mt = 1-s;
+ double a = mt*mt*mt;
+ double b = mt*mt*s*3;
+ double c = mt*s*s*3;
+ double d = s*s*s;
+ coOrd ret;
+ ret.x = a*pos[0].x + b*pos[1].x + c*pos[2].x + d*pos[3].x;
+ ret.y = a*pos[0].y + b*pos[1].y + c*pos[2].y + d*pos[3].y;
+ return ret;
+}
+/*
+ * Get Error between a Bezier and an arc centered at pc that goes from start to end
+ *
+ * Because the curve is defined to pass through the start and the end and the middle, the test is
+ * to see how much of an error there is between those points. If the sum of the errors is off by more \
+ * than 0.5 pixels - that will mean it is not a good fit.
+ *
+ */
+double BezError(coOrd pos[4], coOrd center, coOrd start_point, double start, double end) {
+ double quarter = (end - start) / 4; // take point at 1/4 and 3/4 and check
+ coOrd c1 = getPoint(pos, start + quarter);
+ coOrd c2 = getPoint(pos, end - quarter);
+ double ref = FindDistance(center, start_point); //radius
+ double d1 = FindDistance(center, c1); // distance to quarter
+ double d2 = FindDistance(center, c2); // distance to three quarters
+ return fabs(d1-ref) + fabs(d2-ref); //total error at quarter points
+};
+
+/*
+ * Get distance between a point and a line segment
+ */
+
+double DistanceToLineSegment(coOrd p, coOrd l1, coOrd l2) {
+ double A = p.x - l1.x;
+ double B = p.y - l1.y;
+ double C = l2.x - l1.x;
+ double D = l2.y - l1.y;
+
+ double dot = A * C + B * D;
+ double len_sq = C * C + D * D;
+ double param = -1;
+ if (len_sq != 0) //non 0 length line
+ param = dot / len_sq;
+
+ double xx, yy;
+
+ if (param < 0) { // zero length line or beyond end use point 1
+ xx = l1.x;
+ yy = l1.y;
+ } else if (param > 1) { // beyond point 2 end of line segment
+ xx = l2.x;
+ yy = l2.y;
+ } else { // In the middle
+ xx = l1.x + param * C;
+ yy = l1.y + param * D;
+ }
+
+ double dx = p.x - xx; //distance to perpendicular (or end point)
+ double dy = p.y - yy;
+ return sqrt(dx * dx + dy * dy);
+}
+
+/*
+ * Get Error between a straight line segment and the Bezier curve.
+ * Sum distance to straight line of quarter points.
+ */
+
+double BezErrorLine(coOrd pos[4], coOrd start_point, coOrd end_point, double start, double end) {
+ double quarter = (end - start) / 4; // take point at 1/4 and 3/4 and check
+ coOrd c1 = getPoint(pos, start + quarter);
+ coOrd c2 = getPoint(pos, end - quarter);
+ double d1 = DistanceToLineSegment(c1, start_point, end_point);
+ double d2 = DistanceToLineSegment(c2, start_point, end_point);
+ return fabs(d1)+fabs(d2);
+}
+
+/*
+ * Add element to DYNARR pointed to by caller from segment handed in
+ */
+void addSegBezier(dynArr_t * const array_p, trkSeg_p seg) {
+ trkSeg_p s;
+
+
+ DYNARR_APPEND(trkSeg_t, * array_p, 1); //Adds 1 to cnt
+ s = &DYNARR_N(trkSeg_t,* array_p,array_p->cnt-1);
+ s->type = seg->type;
+ s->color = seg->color;
+ s->width = seg->width;
+ s->bezSegs.cnt = 0;
+ if (s->bezSegs.ptr) MyFree(s->bezSegs.ptr);
+ s->bezSegs.ptr=NULL;
+ s->bezSegs.max = 0;
+ if ((s->type == SEG_BEZLIN || s->type == SEG_BEZTRK) && seg->bezSegs.cnt) {
+ s->u.b.angle0 = seg->u.b.angle0; //Copy all the rest
+ s->u.b.angle3 = seg->u.b.angle3;
+ s->u.b.length = seg->u.b.length;
+ s->u.b.minRadius = seg->u.b.minRadius;
+ for (int i=0;i<4;i++) s->u.b.pos[i] = seg->u.b.pos[i];
+ s->u.b.radius0 = seg->u.b.radius3;
+ s->bezSegs.cnt = 0;
+ if (s->bezSegs.ptr) MyFree(s->bezSegs.ptr);
+ s->bezSegs.max = 0;
+ s->bezSegs.ptr = NULL; //Make sure new space as addr copied in earlier from seg
+ for (int i = 0; i<seg->bezSegs.cnt; i++) {
+ addSegBezier(&s->bezSegs,(((trkSeg_p)seg->bezSegs.ptr)+i)); //recurse for copying embedded Beziers as in Cornu joint
+ }
+ } else {
+ s->u = seg->u;
+ }
+}
+
+enum BezierType {PLAIN, LOOP, CUSP, INFLECTION, DOUBLEINFLECTION, LINE, ENDS, COINCIDENT } bType;
+
+/*
+ * Analyse Bezier.
+ *
+ * Using results from Maureen C. Stone of XeroxParc and Tony deRose of U of Washington
+ * characterise the curve type and find out what features it has.
+ * We will eliminate cusps and loops as not useful forms. Line, Plain, Inflection and DoubleInflection are ok.
+ *
+ */
+EXPORT enum BezierType AnalyseCurve(coOrd inpos[4], double *Rfx, double *Rfy, double *cusp) {
+
+ *Rfx = *Rfy = 0;
+ if (Da.track && inpos[0].x == inpos[3].x && inpos[0].y == inpos[3].y ) {
+ return ENDS;
+ }
+
+ DIST_T d01 = FindDistance(inpos[0],inpos[1]);
+ DIST_T d12 = FindDistance(inpos[1],inpos[2]);
+ DIST_T d02 = FindDistance(inpos[0],inpos[2]);
+ if (d01+d12 == d02) { //straight
+ DIST_T d23 = FindDistance(inpos[2],inpos[3]);
+ DIST_T d03 = FindDistance(inpos[0],inpos[3]);
+ if (d02+d23 == d03) return LINE;
+ }
+ int common_points = 0;
+ for (int i=0;i<3;i++) {
+ if (inpos[i].x == inpos[i+1].x && inpos[i].y == inpos[i+1].y) common_points++;
+ }
+ for (int i=0;i<2;i++) {
+ if (inpos[i].x == inpos[i+2].x && inpos[i].y == inpos[i+2].y) common_points++;
+ }
+
+ if (common_points>2) {
+ return COINCIDENT;
+ }
+
+ coOrd pos[4];
+ coOrd offset2, offset = inpos[0];
+
+ for (int i=0;i<4;i++) { //move to zero origin
+ pos[i].x = inpos[i].x-offset.x;
+ pos[i].y = inpos[i].y-offset.y;
+ }
+
+ offset2.x = -offset.x + pos[3].x;
+ offset2.y = -offset.y + pos[3].y;
+ if (pos[1].y == 0.0) { //flip order of points
+ for (int i=0;i<4;i++) {
+ coOrd temp_pos = pos[i];
+ pos[i].x = pos[3-i].x - offset2.x;
+ pos[i].y = pos[3-i].y - offset2.y;
+ pos[3-i] = temp_pos;
+ }
+ if (pos[1].y == 0.0) { //Both ways round the second point has no y left after translation
+ return PLAIN;
+ }
+ }
+ double f21 = (pos[2].y)/(pos[1].y);
+ double f31 = (pos[3].y)/(pos[1].y);
+ if (fabs(pos[2].x-(pos[1].x*f21)) <0.0001) return PLAIN; //defend against divide by zero
+ double fx = (pos[3].x-(pos[1].x*f31))/(pos[2].x-(pos[1].x*f21));
+ double fy = f31+(1-f21)*fx;
+ *Rfx = fx;
+ *Rfy = fy;
+ *cusp = fabs(fy - (-(fx*fx)+2*fx+3)/4);
+
+ if (fy > 1.0) return INFLECTION;
+ if (fx >= 1.0) return PLAIN;
+ if (fabs(fy - (-(fx*fx)+2*fx+3)/4) <0.100) return CUSP;
+ if (fy < (-(fx*fx)+2*fx+3)/4) {
+ if (fx <= 0.0 && fy >= (3*fx-(fx*fx))/3) return LOOP;
+ if (fx > 0.0 && fy >= (sqrt(3*(4*fx-fx*fx))-fx)/2) return LOOP;
+ return PLAIN;
+ }
+
+ return DOUBLEINFLECTION;
+}
+
+/*
+ * ConvertToArcs
+ * Take a Bezier curve and turn it into a set of circular arcs, such that the error between the arc and the
+ * Bezier is under 0.5 pixels at maxiumum zoom.
+ *
+ * This enables us to use normal methods (operating over the array of arcs)
+ * to perform actions on the Bezier and also to export it to DXF.
+ *
+ */
+EXPORT BOOL_T ConvertToArcs (coOrd pos[4], dynArr_t * segs, BOOL_T track, wDrawColor color, DIST_T width) {
+ double t_s = 0.0, t_e = 1.0;
+ double errorThreshold = 0.05;
+ bCurveData_t prev_arc;
+ prev_arc.end = 0.0;
+ bCurveData_t arc;
+ segs->cnt = 0; //wipe out
+ BOOL_T safety;
+ int col = 0;
+
+ double prev_e = 0.0;
+ // we do a binary search to find the "good `t` closest to no-longer-good"
+ do {
+ safety=FALSE;
+ // step 1: start with the maximum possible arc length
+ t_e = 1.0;
+ // points:
+ coOrd start_point, mid_point, end_point;
+ // booleans:
+ BOOL_T curr_good = FALSE, prev_good = FALSE, done = FALSE;
+ // numbers:
+ double t_m, step = 0;
+ // step 2: find the best possible arc
+ do { // !done
+ prev_good = curr_good; //remember last time
+ t_m = (t_s + t_e)/2;
+ step++;
+ start_point = getPoint(pos, t_s); //Start of arc
+ mid_point = getPoint(pos, t_m); //Middle of trial arc
+ end_point = getPoint(pos, t_e); //End of trial Arc
+
+ PlotCurve( crvCmdFromChord, start_point, end_point, mid_point,
+ &(arc.curveData), TRUE ); //Find Arc through three points
+
+ arc.start = t_s; //remember start
+ arc.end = t_e; //remember end
+ arc.pos0 = start_point; //remember start point (used for Straight)
+ arc.pos1 = end_point; // Remember end point (used for Straight)
+
+ if (arc.curveData.type == curveTypeStraight) {
+ double error = BezErrorLine(pos,start_point,end_point, t_s, t_e);
+ curr_good = (error <= errorThreshold/2);
+ arc.curveData.a0 = FindAngle(start_point,end_point);
+ arc.curveData.a1 = FindAngle(end_point,start_point);
+
+ } else if (arc.curveData.type == curveTypeNone) {
+ return FALSE; //Something wrong
+ } else {
+ double error = BezError(pos, arc.curveData.curvePos, start_point, t_s, t_e);
+ curr_good = (error <= errorThreshold/2);
+ };
+
+ done = prev_good && !curr_good; //Was better than this last time?
+ if(!done) {
+ // this arc is fine: we can move 'e' up to see if we can find a wider arc
+ if(curr_good) {
+ prev_e = t_e; //remember good end only
+ prev_arc = arc;
+ // if e is already at max, then we're done for this arc.
+ if (t_e >= 1.0) {
+ // make sure we cap at t=1
+ arc.end = prev_e = 1.0;
+ // if we capped the arc segment to t=1 we also need to make sure that
+ // the arc's end angle is correct with respect to the bezier end point.
+ if (t_e > 1.0) {
+ if (arc.curveData.type != curveTypeStraight) {
+ coOrd d;
+ d.x = arc.curveData.curvePos.x + fabs(arc.curveData.curveRadius) * cos(D2R(arc.curveData.a1));
+ d.y = arc.curveData.curvePos.y + fabs(arc.curveData.curveRadius) * sin(D2R(arc.curveData.a1));
+
+ arc.curveData.a1 += FindAngle(d, getPoint(pos,1.0));
+ t_e = 1.0;
+ }
+ }
+ prev_arc = arc;
+ done = TRUE;
+ break;
+ }
+ // if not, move it up by half the iteration distance or to end
+ t_e = t_e + (t_e-t_s)/2;
+ if (t_e > 1.0) t_e = 1.0;
+ }
+ // this is a bad arc: we need to move 'e' down to find a good arc
+ else {
+ t_e = t_m;
+ }
+ } // If !Done end
+ } while(!done && safety++<100);
+ if(safety>=100) {
+ return FALSE; //Failed to make into arcs
+ }
+ prev_arc = prev_arc.end==0.0?arc:prev_arc;
+ trkSeg_t curveSeg; //Now set up tempSeg to copy into array
+ curveSeg.width = track?0:width;
+ if ( prev_arc.curveData.type == curveTypeCurve ) {
+ if (track)
+ curveSeg.color = (fabs(prev_arc.curveData.curveRadius)<(GetLayoutMinTrackRadius()-EPSILON))?wDrawColorRed:wDrawColorBlack;
+ else
+ curveSeg.color = color;
+ curveSeg.type = track?SEG_CRVTRK:SEG_CRVLIN;
+ curveSeg.u.c.a0 = prev_arc.curveData.a0;
+ curveSeg.u.c.a1 = prev_arc.curveData.a1;
+ curveSeg.u.c.center = prev_arc.curveData.curvePos;
+ if (prev_arc.curveData.negative)
+ curveSeg.u.c.radius = -prev_arc.curveData.curveRadius;
+ else
+ curveSeg.u.c.radius = prev_arc.curveData.curveRadius;
+ } else { //Straight Line because all points co-linear
+ curveSeg.type = track?SEG_STRTRK:SEG_STRLIN;
+ if (track)
+ curveSeg.color = wDrawColorBlack;
+ else
+ curveSeg.color = color;
+ curveSeg.u.l.angle = prev_arc.curveData.a1;
+ curveSeg.u.l.pos[0] = prev_arc.pos0;
+ curveSeg.u.l.pos[1] = prev_arc.pos1;
+ curveSeg.u.l.option = 0;
+ }
+ addSegBezier(segs, &curveSeg); //Add to array of segs used
+ t_s = prev_e;
+ col++;
+ } while(prev_e < 1.0);
+
+ return TRUE;
+};
+/*
+ * Draw Bezier while editing it. It consists of three elements - the curve and one or two control arms.
+ *
+ */
+
+EXPORT void DrawBezCurve(trkSeg_p control_arm1,
+ int cp1Segs_cnt,
+ trkSeg_p control_arm2,
+ int cp2Segs_cnt,
+ trkSeg_p curveSegs,
+ int crvSegs_cnt,
+ wDrawColor color
+ ) {
+ long oldDrawOptions = tempD.funcs->options;
+ tempD.funcs->options = wDrawOptTemp;
+ long oldOptions = tempD.options;
+ tempD.options = DC_TICKS;
+ tempD.orig = mainD.orig;
+ tempD.angle = mainD.angle;
+ if (crvSegs_cnt && curveSegs)
+ DrawSegs( &tempD, zero, 0.0, curveSegs, crvSegs_cnt, trackGauge, color );
+ if (cp1Segs_cnt && control_arm1)
+ DrawSegs( &tempD, zero, 0.0, control_arm1, cp1Segs_cnt, trackGauge, drawColorBlack );
+ if (cp2Segs_cnt && control_arm2)
+ DrawSegs( &tempD, zero, 0.0, control_arm2, cp2Segs_cnt, trackGauge, drawColorBlack );
+ tempD.funcs->options = oldDrawOptions;
+ tempD.options = oldOptions;
+
+}
+
+/*
+ * If Track, make it red if the radius is below minimum
+ */
+void DrawTempBezier(BOOL_T track) {
+ if (track) DrawBezCurve(Da.cp1Segs_da,Da.cp1Segs_da_cnt,Da.cp2Segs_da,Da.cp2Segs_da_cnt, (trkSeg_t *)Da.crvSegs_da.ptr,Da.crvSegs_da_cnt,Da.minRadius<(GetLayoutMinTrackRadius()-EPSILON)?drawColorRed:drawColorBlack);
+ else
+ DrawBezCurve(Da.cp1Segs_da,Da.cp1Segs_da_cnt,Da.cp2Segs_da,Da.cp2Segs_da_cnt, (trkSeg_t *)Da.crvSegs_da.ptr,Da.crvSegs_da_cnt,drawColorBlack); //Add Second Arm
+}
+
+void CreateBothControlArms(int selectPoint, BOOL_T track) {
+ if (selectPoint == -1) {
+ Da.cp1Segs_da_cnt = createControlArm(Da.cp1Segs_da, Da.pos[0],
+ Da.pos[1], track, TRUE, Da.trk[0]!=NULL, -1,
+ drawColorBlack);
+ Da.cp2Segs_da_cnt = createControlArm(Da.cp2Segs_da, Da.pos[3],
+ Da.pos[2], track, TRUE, Da.trk[1]!=NULL, -1,
+ drawColorBlack);
+ } else if (selectPoint == 0 || selectPoint == 1) {
+ Da.cp1Segs_da_cnt = createControlArm(Da.cp1Segs_da, Da.pos[0],
+ Da.pos[1], track, TRUE, Da.trk[0]!=NULL, selectPoint,
+ drawColorBlack);
+ Da.cp2Segs_da_cnt = createControlArm(Da.cp2Segs_da, Da.pos[3],
+ Da.pos[2], track, FALSE, Da.trk[1]!=NULL, -1,
+ drawColorBlack);
+ } else {
+ Da.cp1Segs_da_cnt = createControlArm(Da.cp1Segs_da, Da.pos[0],
+ Da.pos[1], track, FALSE, Da.trk[0]!=NULL, -1,
+ drawColorBlack);
+ Da.cp2Segs_da_cnt = createControlArm(Da.cp2Segs_da, Da.pos[3],
+ Da.pos[2], track, TRUE, Da.trk[1]!=NULL,
+ 3-selectPoint, drawColorBlack);
+ }
+}
+
+/*
+ * AdjustBezCurve
+ *
+ * Called to adjust the curve either when creating it or modifying it
+ * States are "PICK_POINT" and "POINT_PICKED" and "TRACK_SELECTED".
+ *
+ * In PICK_POINT, the user can select an end-point to drag and release in POINT_PICKED. They can also
+ * hit Enter (which saves the changes) or ESC (which cancels them).
+ *
+ * Only those points which can be picked are shown with circles - locked end-points are not shown.
+ *
+ * SHIFT at release will lock , re-locking any end-points that are aligned with like items at the same position
+ * (Track to unconnected Track, Line to any Line end).
+ *
+ */
+EXPORT STATUS_T AdjustBezCurve(
+ wAction_t action,
+ coOrd pos,
+ BOOL_T track,
+ wDrawColor color,
+ DIST_T width,
+ bezMessageProc message )
+{
+ track_p t;
+ DIST_T d;
+ ANGLE_T angle1, angle2;
+ static coOrd pos0, pos3, p;
+ enum BezierType b;
+ DIST_T dd;
+ EPINX_T ep;
+ double fx, fy, cusp;
+ int controlArm = -1;
+
+
+ if (Da.state != PICK_POINT && Da.state != POINT_PICKED && Da.state != TRACK_SELECTED) return C_CONTINUE;
+
+ switch ( action & 0xFF) {
+
+ case C_START:
+ Da.selectPoint = -1;
+ CreateBothControlArms(Da.selectPoint, track);
+ if (ConvertToArcs(Da.pos,&Da.crvSegs_da,track,color,Da.width)) Da.crvSegs_da_cnt = Da.crvSegs_da.cnt;
+ Da.minRadius = BezierMinRadius(Da.pos,Da.crvSegs_da);
+ Da.unlocked = FALSE;
+ if (track)
+ InfoMessage( _("Select End-Point - Ctrl unlocks end-point") );
+ else
+ InfoMessage( _("Select End-Point") );
+ DrawTempBezier(Da.track);
+ return C_CONTINUE;
+
+ case C_DOWN:
+ if (Da.state != PICK_POINT) return C_CONTINUE;
+ dd = 10000.0;
+ Da.selectPoint = -1;
+ DrawTempBezier(Da.track); //wipe out
+ for (int i=0;i<4;i++) {
+ d = FindDistance(Da.pos[i],pos);
+ if (d < dd) {
+ if (i==0 && Da.trk[0]) continue;
+ if (i==3 && Da.trk[1]) continue; //ignore locked points
+ dd = d;
+ Da.selectPoint = i;
+ }
+
+ }
+ if (!IsClose(dd) ) Da.selectPoint = -1;
+ if (Da.selectPoint == -1) {
+ InfoMessage( _("Not close enough to any valid, selectable point, reselect") );
+ DrawTempBezier(Da.track);
+ return C_CONTINUE;
+ } else {
+ pos = Da.pos[Da.selectPoint];
+ Da.state = POINT_PICKED;
+ InfoMessage( _("Drag point %d to new location and release it"),Da.selectPoint+1 );
+ }
+ CreateBothControlArms(Da.selectPoint, track);
+ if (ConvertToArcs(Da.pos, &Da.crvSegs_da, track, color,Da.width)) Da.crvSegs_da_cnt = Da.crvSegs_da.cnt;
+ Da.minRadius = BezierMinRadius(Da.pos, Da.crvSegs_da);
+ DrawTempBezier(Da.track);
+ return C_CONTINUE;
+
+ case C_MOVE:
+ if (Da.state != POINT_PICKED) {
+ InfoMessage(_("Pick any circle to adjust it - Enter to confirm, ESC to abort"));
+ return C_CONTINUE;
+ }
+ //If locked, reset pos to be on line from other track
+ DrawTempBezier(Da.track); //wipe out
+ if (Da.selectPoint == 1 || Da.selectPoint == 2) { //CPs
+ int controlArm = Da.selectPoint-1; //Snap to direction of track
+ if (Da.trk[controlArm]) {
+ angle1 = NormalizeAngle(GetTrkEndAngle(Da.trk[controlArm], Da.ep[controlArm]));
+ angle2 = NormalizeAngle(FindAngle(pos, Da.pos[Da.selectPoint==1?0:3])-angle1);
+ if (angle2 > 90.0 && angle2 < 270.0)
+ Translate( &pos, Da.pos[Da.selectPoint==1?0:3], angle1, -FindDistance( Da.pos[Da.selectPoint==1?0:3], pos )*cos(D2R(angle2)) );
+ else pos = Da.pos[Da.selectPoint==1?0:3];
+ } // Dont Snap control points
+ } else SnapPos(&pos);
+ Da.pos[Da.selectPoint] = pos;
+ CreateBothControlArms(Da.selectPoint, track);
+ if (ConvertToArcs(Da.pos,&Da.crvSegs_da,track, color, Da.width)) Da.crvSegs_da_cnt = Da.crvSegs_da.cnt;
+ Da.minRadius = BezierMinRadius(Da.pos,Da.crvSegs_da);
+ if (Da.track) {
+ b = AnalyseCurve(Da.pos,&fx,&fy,&cusp);
+ if (b==ENDS) {
+ wBeep();
+ InfoMessage(_("Bezier Curve Invalid has identical end points Change End Point"),b==CUSP?"Cusp":"Loop");
+ } else if ( b == CUSP || b == LOOP) {
+ wBeep();
+ InfoMessage(_("Bezier Curve Invalid has %s Change End Point"),b==CUSP?"Cusp":"Loop");
+ } else if ( b == COINCIDENT ) {
+ wBeep();
+ InfoMessage(_("Bezier Curve Invalid has three co-incident points"),b==CUSP?"Cusp":"Loop");
+ } else if ( b == LINE ) {
+ InfoMessage(_("Bezier is Straight Line"));
+ } else
+ InfoMessage( _("Bezier %s : Min Radius=%s Length=%s fx=%0.3f fy=%0.3f cusp=%0.3f"),track?"Track":"Line",
+ FormatDistance(Da.minRadius>=100000?0:Da.minRadius),
+ FormatDistance(BezierLength(Da.pos,Da.crvSegs_da)),fx,fy,cusp);
+ } else
+ InfoMessage( _("Bezier %s : Min Radius=%s Length=%s"),track?"Track":"Line",
+ FormatDistance(Da.minRadius>=100000?0:Da.minRadius),
+ FormatDistance(BezierLength(Da.pos,Da.crvSegs_da)));
+ DrawTempBezier(Da.track);
+ return C_CONTINUE;
+
+ case C_UP:
+ if (Da.state != POINT_PICKED) return C_CONTINUE;
+ //Take last pos and decide if it should be snapped to a track because SHIFT is held (pos0 and pos3)
+ ep = 0;
+ BOOL_T found = FALSE;
+
+ DrawTempBezier(Da.track); //wipe out
+
+ p = pos;
+
+ if (track && (Da.selectPoint == 0 || Da.selectPoint == 3)) { //EPs
+ if ((MyGetKeyState() & WKEY_SHIFT) != 0) { //Snap Track
+ if ((t = OnTrackIgnore(&p, FALSE, TRUE, Da.selectTrack)) != NULL) { //Snap to endPoint
+ ep = PickUnconnectedEndPointSilent(p, t);
+ if (ep != -1) {
+ Da.trk[Da.selectPoint/3] = t;
+ Da.ep[Da.selectPoint/3] = ep;
+ pos0 = Da.pos[(Da.selectPoint == 0)?1:2];
+ pos = GetTrkEndPos(t, ep);
+ found = TRUE;
+ }
+ } else {
+ wBeep();
+ InfoMessage(_("No unconnected End Point to lock to"));
+ }
+ }
+ }
+ if (found) {
+ angle1 = NormalizeAngle(GetTrkEndAngle(Da.trk[Da.selectPoint/3], Da.ep[Da.selectPoint/3]));
+ angle2 = NormalizeAngle(FindAngle(pos, pos0)-angle1);
+ Translate(&Da.pos[Da.selectPoint==0?1:2], Da.pos[Da.selectPoint==0?0:3], angle1, FindDistance(Da.pos[Da.selectPoint==0?1:2],pos)*cos(D2R(angle2)));
+ }
+ Da.selectPoint = -1;
+ CreateBothControlArms(Da.selectPoint,track);
+ if (ConvertToArcs(Da.pos,&Da.crvSegs_da,track,color,Da.width)) Da.crvSegs_da_cnt = Da.crvSegs_da.cnt;
+ Da.minRadius = BezierMinRadius(Da.pos,Da.crvSegs_da);
+ if (Da.track) {
+ b = AnalyseCurve(Da.pos,&fx,&fy,&cusp);
+ if (b==ENDS) {
+ wBeep();
+ InfoMessage(_("Bezier curve invalid has identical end points Change End Point"),b==CUSP?"Cusp":"Loop");
+ } else if ( b == CUSP || b == LOOP) {
+ wBeep();
+ InfoMessage(_("Bezier curve invalid has %s Change End Point"),b==CUSP?"Cusp":"Loop");
+ } else if ( b == COINCIDENT ) {
+ wBeep();
+ InfoMessage(_("Bezier curve invalid has three co-incident points"),b==CUSP?"Cusp":"Loop");
+ } else if ( b == LINE) {
+ InfoMessage(_("Bezier curve is straight line"));
+ }
+ InfoMessage(_("Pick any circle to adjust it - Enter to confirm, ESC to abort"));
+ } else
+ InfoMessage(_("Pick any circle to adjust it - Enter to confirm, ESC to abort"));
+ DrawTempBezier(Da.track);
+ Da.state = PICK_POINT;
+
+ return C_CONTINUE;
+
+ case C_OK: //C_OK is not called by Modify.
+ if ( Da.state == PICK_POINT ) {
+ char c = (unsigned char)(action >> 8);
+ if (Da.track && Da.pos[0].x == Da.pos[3].x && Da.pos[0].y == Da.pos[3].y ) {
+ wBeep();
+ ErrorMessage(_("Invalid Bezier Track - end points are identical"));
+ return C_CONTINUE;
+ }
+ if (Da.track) {
+ b = AnalyseCurve(Da.pos,&fx,&fy,&cusp);
+ if ( b == CUSP || b == LOOP ) {
+ wBeep();
+ ErrorMessage(_("Invalid Bezier Curve has a %s - Adjust"),b==CUSP?"Cusp":"Loop");
+ return C_CONTINUE;
+ } else if (b==COINCIDENT) {
+ wBeep();
+ ErrorMessage(_("Invalid Bezier Curve has three coincident points - Adjust"));
+ return C_CONTINUE;
+ } else if(b==ENDS) {
+ ErrorMessage(_("Invalid Bezier Track - end points are identical"));
+ return C_CONTINUE;
+ }
+ }
+ Da.minRadius = BezierMinRadius(Da.pos,Da.crvSegs_da);
+ DrawTempBezier(Da.track);
+ UndoStart( _("Create Bezier"), "newBezier - CR" );
+ if (Da.track) {
+ t = NewBezierTrack( Da.pos, (trkSeg_p)Da.crvSegs_da.ptr, Da.crvSegs_da.cnt);
+ for (int i=0;i<2;i++)
+ if (Da.trk[i] != NULL) ConnectAbuttingTracks(t,i,Da.trk[i],Da.ep[i]);
+ }
+ else t = NewBezierLine(Da.pos, (trkSeg_p)Da.crvSegs_da.ptr, Da.crvSegs_da.cnt,color,width);
+ UndoEnd();
+ if (Da.crvSegs_da.ptr) MyFree(Da.crvSegs_da.ptr);
+ Da.crvSegs_da.ptr = NULL;
+ Da.crvSegs_da.cnt = 0;
+ Da.crvSegs_da.max = 0;
+ DrawNewTrack(t);
+ Da.state = NONE;
+ MainRedraw();
+ MapRedraw();
+ return C_TERMINATE;
+
+ }
+ return C_CONTINUE;
+
+ case C_REDRAW:
+ DrawTempBezier(Da.track);
+ return C_CONTINUE;
+
+ default:
+ return C_CONTINUE;
+ }
+
+
+}
+
+struct extraData {
+ BezierData_t bezierData;
+ };
+
+/*
+ * CmdBezModify
+ *
+ * Called from Modify Command - this function deals with the real (old) track and calls AdjustBezCurve to tune up the new one
+ * Sequence is this -
+ * - The C_START is called from CmdModify C_DOWN action if a track has being selected. The old track is hidden, the editable one is shown.
+ * - C_MOVES will be ignored until a C_UP ends the track selection and moves the state to PICK_POINT,
+ * - C_DOWN then hides the track and shows the Bezier handles version. Selects a point (if close enough and available) and the state moves to POINT_PICKED
+ * - C_MOVE drags the point around modifying the curve
+ * - C_UP puts the state back to PICK_POINT (pick another)
+ * - C_OK (Enter/Space) creates the new track, deletes the old and shows the changed track.
+ * - C_CANCEL (Esc) sets the state to NONE and reshows the original track unchanged.
+ *
+ * Note: Available points are shown - if a Bezier track is attached to its neighbor, only the control point on that side is selectable.
+ * Any free end-point can be locked to a unconnected end point using SHIFT during drag.
+ */
+STATUS_T CmdBezModify (track_p trk, wAction_t action, coOrd pos) {
+ BOOL_T track = TRUE;
+ track_p t;
+ double width = 1.0;
+ long mode = 0;
+ long cmd;
+
+ struct extraData *xx = GetTrkExtraData(trk);
+ cmd = (long)commandContext;
+
+
+ switch (action&0xFF) {
+ case C_START:
+ Da.state = NONE;
+ DYNARR_RESET(trkSeg_t,Da.crvSegs_da);
+ Da.cp1Segs_da_cnt = 0;
+ Da.cp2Segs_da_cnt = 0;
+ Da.selectPoint = -1;
+ Da.selectTrack = NULL;
+
+ if (IsTrack(trk)) Da.track = TRUE;
+ else Da.track = FALSE;
+
+ Da.selectTrack = trk;
+ Da.trk[0] = GetTrkEndTrk( trk, 0 );
+ if (Da.trk[0]) Da.ep[0] = GetEndPtConnectedToMe(Da.trk[0],trk);
+ Da.trk[1] = GetTrkEndTrk( trk, 1 );
+ if (Da.trk[1]) Da.ep[1] = GetEndPtConnectedToMe(Da.trk[1],trk);
+
+ for (int i=0;i<4;i++) Da.pos[i] = xx->bezierData.pos[i]; //Copy parms from old trk
+ InfoMessage(_("%s picked - now select a Point"),track?"Track":"Line");
+ Da.state = TRACK_SELECTED;
+ DrawTrack(Da.selectTrack,&mainD,wDrawColorWhite); //Wipe out real track, draw replacement
+ return AdjustBezCurve(C_START, pos, Da.track, xx->bezierData.segsColor, xx->bezierData.segsWidth, InfoMessage);
+
+ case C_DOWN:
+ if (Da.state == TRACK_SELECTED) return C_CONTINUE; //Ignore until first up
+ return AdjustBezCurve(C_DOWN, pos, Da.track, xx->bezierData.segsColor, xx->bezierData.segsWidth, InfoMessage);
+
+
+ case C_MOVE:
+ if (Da.state == TRACK_SELECTED) return C_CONTINUE; //Ignore until first up and down
+ return AdjustBezCurve(C_MOVE, pos, Da.track, xx->bezierData.segsColor, xx->bezierData.segsWidth, InfoMessage);
+
+ case C_UP:
+ if (Da.state == TRACK_SELECTED) {
+ Da.state = PICK_POINT; //First time up, next time pick a point
+ }
+ return AdjustBezCurve(C_UP, pos, Da.track, xx->bezierData.segsColor, xx->bezierData.segsWidth, InfoMessage); //Run Adjust
+
+ case C_TEXT:
+ if ((action>>8) != 32)
+ return C_CONTINUE;
+ /* no break */
+ case C_OK:
+ if (Da.state != PICK_POINT) { //Too early - abandon
+ InfoMessage(_("No changes made"));
+ Da.state = NONE;
+ return C_CANCEL;
+ }
+ UndoStart( _("Modify Bezier"), "newBezier - CR" );
+ if (Da.track) t = NewBezierTrack( Da.pos, (trkSeg_p)Da.crvSegs_da.ptr, Da.crvSegs_da.cnt);
+ else t = NewBezierLine(Da.pos, (trkSeg_p)Da.crvSegs_da.ptr, Da.crvSegs_da.cnt,xx->bezierData.segsColor,xx->bezierData.segsWidth);
+
+ DeleteTrack(trk, TRUE);
+
+ if (Da.track) {
+ for (int i=0;i<2;i++) { //Attach new track
+ if (Da.trk[i] != NULL && Da.ep[i] != -1) { //Like the old track
+ ConnectAbuttingTracks(t,i,Da.trk[i],Da.ep[i]);
+ }
+ }
+ }
+ UndoEnd();
+ InfoMessage(_("Modify Bezier Complete - select another"));
+ Da.state = NONE;
+ return C_TERMINATE;
+
+ case C_CANCEL:
+ InfoMessage(_("Modify Bezier Cancelled"));
+ Da.state = NONE;
+ MainRedraw();
+ MapRedraw();
+ return C_TERMINATE;
+
+ case C_REDRAW:
+ return AdjustBezCurve(C_REDRAW, pos, Da.track, xx->bezierData.segsColor, xx->bezierData.segsWidth, InfoMessage);
+ }
+
+ return C_CONTINUE;
+
+}
+
+/*
+ * Find length by adding up the underlying segments. The segments can be straights, curves or bezier.
+ */
+DIST_T BezierLength(coOrd pos[4],dynArr_t segs) {
+
+ DIST_T dd = 0.0;
+ if (segs.cnt == 0 ) return dd;
+ for (int i = 0;i<segs.cnt;i++) {
+ trkSeg_t t = DYNARR_N(trkSeg_t, segs, i);
+ if (t.type == SEG_CRVTRK || t.type == SEG_CRVLIN) {
+ dd += fabs(t.u.c.radius*D2R(t.u.c.a1));
+ } else if (t.type == SEG_BEZLIN || t.type == SEG_BEZTRK) {
+ dd +=BezierLength(t.u.b.pos,t.bezSegs);
+ } else if (t.type == SEG_STRLIN || t.type == SEG_STRTRK ) {
+ dd += FindDistance(t.u.l.pos[0],t.u.l.pos[1]);
+ }
+ }
+ return dd;
+}
+
+DIST_T BezierMinRadius(coOrd pos[4],dynArr_t segs) {
+ DIST_T r = 100000.0, rr;
+ if (segs.cnt == 0 ) return r;
+ for (int i = 0;i<segs.cnt;i++) {
+ trkSeg_t t = DYNARR_N(trkSeg_t, segs, i);
+ if (t.type == SEG_CRVTRK || t.type == SEG_CRVLIN) {
+ rr = fabs(t.u.c.radius);
+ } else if (t.type == SEG_BEZLIN || t.type == SEG_BEZTRK) {
+ rr = BezierMinRadius(t.u.b.pos, t.bezSegs);
+ } else rr = 100000.00;
+ if (rr<r) r = rr;
+ }
+ return r;
+}
+
+/*
+ * Create a Bezier Curve (Track or Line)
+ * Sequence is
+ * 1. Place 1st End (snapping if needed)
+ * 2.Drag out 1st Control Arm (in one direction if snapped)
+ * 3.Place 2nd End (again snapping)
+ * 4.Drag out 2nd Control Arm (constrained if snapped)
+ * 5 to n. Select and drag around points until done
+ * n+1. Confirm with enter or Cancel with Esc
+ */
+STATUS_T CmdBezCurve( wAction_t action, coOrd pos )
+{
+ track_p t;
+ static int segCnt;
+ STATUS_T rc = C_CONTINUE;
+ long curveMode = 0;
+ long cmd;
+ if (action>>8) {
+ cmd = action>>8;
+ } else cmd = (long)commandContext;
+
+ Da.color = lineColor;
+ Da.width = (double)lineWidth/mainD.dpi;
+
+ switch (action&0xFF) {
+
+ case C_START:
+
+ Da.track = (cmd == bezCmdModifyTrack || cmd == bezCmdCreateTrack)?TRUE:FALSE;
+
+ Da.state = POS_1;
+ Da. selectPoint = -1;
+ for (int i=0;i<4;i++) {
+ Da.pos[i] = zero;
+ }
+ Da.trk[0] = Da.trk[1] = NULL;
+ //tempD.orig = mainD.orig;
+
+ DYNARR_RESET(trkSeg_t,Da.crvSegs_da);
+ Da.cp1Segs_da_cnt = 0;
+ Da.cp2Segs_da_cnt = 0;
+ InfoMessage( _("Place 1st end point of Bezier + Shift -> snap to %s end"), Da.track?"Unconnected Track":"Line" );
+ return C_CONTINUE;
+
+
+ case C_DOWN:
+ if ( Da.state == POS_1 || Da.state == POS_2) { //Set the first or third point
+ coOrd p = pos;
+ BOOL_T found = FALSE;
+ int end = Da.state==POS_1?0:1;
+ EPINX_T ep;
+ if (Da.track) {
+ if ((MyGetKeyState() & WKEY_SHIFT) != 0) { //Snap Track
+ if ((t = OnTrack(&p, FALSE, TRUE)) != NULL) {
+ ep = PickUnconnectedEndPointSilent(p, t);
+ if (ep != -1) {
+ Da.trk[end] = t;
+ Da.ep[end] = ep;
+ pos = GetTrkEndPos(t, ep);
+ found = TRUE;
+ }
+ }
+ if (!found) {
+ wBeep();
+ InfoMessage(_("Shift used, but no Unconnected Track End there"));
+ return C_CONTINUE;
+ }
+ }
+ } else { //Snap Bez Line to Lines
+ if ((MyGetKeyState() & WKEY_SHIFT) != 0) {
+ if ((t = OnTrack(&p,FALSE, FALSE)) != NULL) {
+ if (GetClosestEndPt(t,&p)) {
+ pos = p;
+ found = TRUE;
+ }
+ } else {
+ wBeep();
+ InfoMessage(_("Shift used, but no Line End there"));
+ return C_CONTINUE;
+ }
+ }
+ }
+ if (!found) SnapPos( &pos );
+ if (Da.state == POS_1) {
+ Da.pos[0] = pos;
+ Da.pos[1] = pos;
+ Da.state = CONTROL_ARM_1; //Draw the first control arm
+ Da.selectPoint = 1;
+ InfoMessage( _("Drag end of first Control Arm") );
+ Da.cp1Segs_da_cnt = createControlArm(Da.cp1Segs_da, Da.pos[0], Da.pos[1], Da.track,TRUE,Da.trk[1]!=NULL,1,wDrawColorBlack);
+ DrawBezCurve(Da.cp1Segs_da,Da.cp1Segs_da_cnt,NULL,0,NULL,0,drawColorBlack);
+ } else {
+ Da.pos[3] = pos; //2nd End Point
+ Da.pos[2] = pos; //2nd Ctl Point
+ Da.state = POINT_PICKED; // Drag out the second control arm
+ Da.selectPoint = 2;
+ InfoMessage( _("Drag end of second Control Arm") );
+ DrawBezCurve(Da.cp1Segs_da,Da.cp1Segs_da_cnt,NULL,0,NULL,0,drawColorBlack); //Wipe out initial Arm
+ Da.cp1Segs_da_cnt = createControlArm(Da.cp1Segs_da, Da.pos[0], Da.pos[1], Da.track,FALSE,Da.trk[0]!=NULL,-1,wDrawColorBlack);
+ Da.cp2Segs_da_cnt = createControlArm(Da.cp2Segs_da, Da.pos[3], Da.pos[2], Da.track,TRUE,Da.trk[1]!=NULL,1,wDrawColorBlack);
+ if (ConvertToArcs(Da.pos,&Da.crvSegs_da,Da.track,Da.color,Da.width)) Da.crvSegs_da_cnt = Da.crvSegs_da.cnt;
+ DrawTempBezier(Da.track);
+ }
+ return C_CONTINUE;
+ } else {
+ return AdjustBezCurve( action&0xFF, pos, Da.track, Da.color, Da.width, InfoMessage );
+ }
+ return C_CONTINUE;
+
+ case C_MOVE:
+ if (Da.state == POS_1) {
+ InfoMessage( _("Place 1st end point of Bezier + Shift -> snap to %s end"), Da.track?"Unconnected Track":"Line" );
+ return C_CONTINUE;
+ }
+ if (Da.state == POS_2) {
+ InfoMessage( _("Select other end of Bezier, +Shift -> snap to %s end"), Da.track?"Unconnected Track":"Line" );
+ }
+ if (Da.state == CONTROL_ARM_1 ) {
+ DrawBezCurve(Da.cp1Segs_da,Da.cp1Segs_da_cnt,NULL,0,NULL,0,drawColorBlack);
+ if (Da.trk[0]) {
+ EPINX_T ep = 0;
+ ANGLE_T angle1,angle2;
+ angle1 = NormalizeAngle(GetTrkEndAngle(Da.trk[0],Da.ep[0]));
+ angle2 = NormalizeAngle(FindAngle(pos, Da.pos[0])-angle1);
+ if (angle2 > 90.0 && angle2 < 270.0)
+ Translate( &pos, Da.pos[0], angle1, -FindDistance( Da.pos[0], pos )*cos(D2R(angle2)));
+ else pos = Da.pos[0];
+ } // Don't Snap control points
+ Da.pos[1] = pos;
+ Da.cp1Segs_da_cnt = createControlArm(Da.cp1Segs_da, Da.pos[0], Da.pos[1], Da.track, TRUE, Da.trk[0]!=NULL, 1, wDrawColorBlack);
+ DrawBezCurve(Da.cp1Segs_da,Da.cp1Segs_da_cnt,NULL,0,NULL,0,drawColorBlack);
+ } else {
+ return AdjustBezCurve( action&0xFF, pos, Da.track, Da.color, Da.width, InfoMessage );
+ }
+ return C_CONTINUE;
+
+ case C_UP:
+ if (Da.state == CONTROL_ARM_1) {
+ DrawBezCurve(Da.cp1Segs_da,Da.cp1Segs_da_cnt,NULL,0,NULL,0,drawColorBlack);
+ if (Da.trk[0]) {
+ EPINX_T ep = Da.ep[0];
+ ANGLE_T angle1,angle2;
+ angle1 = NormalizeAngle(GetTrkEndAngle(Da.trk[0],Da.ep[0]));
+ angle2 = NormalizeAngle(FindAngle(pos, Da.pos[0])-angle1);
+ if (angle2 > 90.0 && angle2 < 270.0)
+ Translate( &pos, Da.pos[0], angle1, -FindDistance( Da.pos[0], pos )*cos(D2R(angle2)));
+ else pos = Da.pos[0];
+ } // Don't Snap control points
+ Da.pos[1] = pos;
+ if (FindDistance(Da.pos[0],Da.pos[1]) <=minLength) {
+ InfoMessage( _("Control Arm 1 is too short, try again") );
+ Da.state = POS_1;
+ return C_CONTINUE;
+ }
+ Da.state = POS_2;
+ InfoMessage( _("Select other end of Bezier, +Shift -> snap to %s end"), Da.track?"Unconnected Track":"Line" );
+ Da.cp1Segs_da_cnt = createControlArm(Da.cp1Segs_da, Da.pos[0], Da.pos[1], Da.track, FALSE, Da.trk[0]!=NULL, -1, wDrawColorBlack);
+ DrawBezCurve(Da.cp1Segs_da,Da.cp1Segs_da_cnt,NULL,0,NULL,0,drawColorBlack);
+ return C_CONTINUE;
+ } else {
+ return AdjustBezCurve( action&0xFF, pos, Da.track, Da.color, Da.width, InfoMessage );
+ }
+ case C_TEXT:
+ if (Da.state != PICK_POINT || (action>>8) != ' ') //Space is same as Enter.
+ return C_CONTINUE;
+ /* no break */
+ case C_OK:
+ if (Da.state != PICK_POINT) return C_CONTINUE;
+ return AdjustBezCurve( C_OK, pos, Da.track, Da.color, Da.width, InfoMessage);
+
+ case C_REDRAW:
+ if ( Da.state != NONE ) {
+
+ DrawBezCurve(Da.cp1Segs_da,Da.cp1Segs_da_cnt,Da.cp2Segs_da,Da.cp2Segs_da_cnt,(trkSeg_t *)Da.crvSegs_da.ptr,Da.crvSegs_da.cnt, Da.color);
+ }
+ return C_CONTINUE;
+
+ case C_CANCEL:
+ if (Da.state != NONE) {
+ DrawBezCurve(Da.cp1Segs_da,Da.cp1Segs_da_cnt,Da.cp2Segs_da,Da.cp2Segs_da_cnt,(trkSeg_t *)Da.crvSegs_da.ptr,Da.crvSegs_da.cnt, Da.color);
+ Da.cp1Segs_da_cnt = 0;
+ Da.cp2Segs_da_cnt = 0;
+ Da.crvSegs_da_cnt = 0;
+ for (int i=0;i<2;i++) {
+ Da.trk[i] = NULL;
+ Da.ep[i] = -1;
+ }
+ if (Da.crvSegs_da.ptr) MyFree(Da.crvSegs_da.ptr);
+ Da.crvSegs_da.ptr = NULL;
+ Da.crvSegs_da.cnt = 0;
+ Da.crvSegs_da.max = 0;
+ }
+ Da.state = NONE;
+ return C_CONTINUE;
+
+ default:
+
+ return C_CONTINUE;
+ }
+
+}
+
+void UpdateParms(wDrawColor color,long width) {
+ DrawTempBezier(Da.track);
+ Da.color = lineColor;
+ Da.width = (double)lineWidth/mainD.dpi;
+ if (Da.crvSegs_da.cnt) {
+ ConvertToArcs(Da.pos,&Da.crvSegs_da,Da.track,Da.color,Da.width);
+ }
+ DrawTempBezier(Da.track);
+}
+
+
+#include "bitmaps/bezier.xpm"
+#include "bitmaps/dbezier.xpm"
+
+EXPORT void InitCmdBezier( wMenu_p menu )
+{
+
+}
diff --git a/app/bin/cbezier.h b/app/bin/cbezier.h
new file mode 100644
index 0000000..8a8a8b0
--- /dev/null
+++ b/app/bin/cbezier.h
@@ -0,0 +1,53 @@
+/*
+ * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/cbezier.h,v 1.1 2005-12-07 15:47:36 rc-flyer Exp $
+ */
+
+/* XTrkCad - Model Railroad CAD
+ * Copyright (C) 2005 Dave Bullis
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include "common.h"
+#include "wlib.h"
+#include "utility.h"
+
+
+dynArr_t tempEndPts_da;
+#define BezSegs(N) DYNARR_N( trkEndPt_t, tempEndPts_da, N )
+
+#define bezCmdNone (0)
+#define bezCmdModifyTrack (1)
+#define bezCmdModifyLine (2)
+#define bezCmdCreateTrack (3)
+#define bezCmdCreateLine (4)
+
+extern wDrawColor lineColor;
+extern long lineWidth;
+
+typedef void (*bezMessageProc)( char *, ... );
+STATUS_T CmdBezCurve( wAction_t, coOrd);
+STATUS_T CmdBezModify(track_p, wAction_t, coOrd);
+
+STATUS_T CreateBezier( wAction_t, coOrd, BOOL_T, wDrawColor, DIST_T, long, bezMessageProc );
+DIST_T BezierDescriptionDistance( coOrd, track_p );
+STATUS_T BezierDescriptionMove( track_p, wAction_t, coOrd );
+BOOL_T GetBezierMiddle( track_p, coOrd * );
+BOOL_T ConvertToArcs (coOrd[4], dynArr_t *, BOOL_T, wDrawColor, DIST_T);
+track_p NewBezierTrack(coOrd[4], trkSeg_t *, int);
+double BezierLength(coOrd[4], dynArr_t);
+double BezierMinRadius(coOrd[4],dynArr_t);
+void UpdateParms(wDrawColor color,long width);
+
diff --git a/app/bin/cblock.c b/app/bin/cblock.c
index 3c627e9..b1b14a8 100644
--- a/app/bin/cblock.c
+++ b/app/bin/cblock.c
@@ -47,10 +47,19 @@
*/
#include <ctype.h>
-#include "track.h"
-#include "trackx.h"
+#include <stdlib.h>
+#include <string.h>
+
#include "compound.h"
+#include "cundo.h"
+#include "custom.h"
+#include "fileio.h"
#include "i18n.h"
+#include "messages.h"
+#include "param.h"
+#include "track.h"
+#include "trackx.h"
+#include "utility.h"
EXPORT TRKTYP_T T_BLOCK = -1;
@@ -151,8 +160,8 @@ static descData_t blockDesc[] = {
/*NM*/ { DESC_STRING, N_("Name"), &blockData.name },
/*SC*/ { DESC_STRING, N_("Script"), &blockData.script },
/*LN*/ { DESC_DIM, N_("Length"), &blockData.length },
-/*E0*/ { DESC_POS, N_("End Pt 1: X"), &blockData.endPt[0] },
-/*E1*/ { DESC_POS, N_("End Pt 2: X"), &blockData.endPt[1] },
+/*E0*/ { DESC_POS, N_("End Pt 1: X,Y"), &blockData.endPt[0] },
+/*E1*/ { DESC_POS, N_("End Pt 2: X,Y"), &blockData.endPt[1] },
{ DESC_NULL } };
static void UpdateBlock (track_p trk, int inx, descData_p descUpd, BOOL_T needUndoStart )
@@ -196,12 +205,18 @@ static DIST_T DistanceBlock (track_p t, coOrd * p )
blockData_p xx = GetblockData(t);
DIST_T closest, current;
int iTrk = 1;
-
- closest = GetTrkDistance ((&(xx->trackList))[0].t, *p);
+ coOrd pos = *p;
+ closest = GetTrkDistance ((&(xx->trackList))[0].t, &pos);
+ coOrd best_pos = pos;
for (; iTrk < xx->numTracks; iTrk++) {
- current = GetTrkDistance ((&(xx->trackList))[iTrk].t, *p);
- if (current < closest) closest = current;
+ pos = *p;
+ current = GetTrkDistance ((&(xx->trackList))[iTrk].t, &pos);
+ if (current < closest) {
+ closest = current;
+ best_pos = pos;
+ }
}
+ *p = best_pos;
return closest;
}
diff --git a/app/bin/ccontrol.c b/app/bin/ccontrol.c
index 9428e1a..8ff0396 100644
--- a/app/bin/ccontrol.c
+++ b/app/bin/ccontrol.c
@@ -47,10 +47,18 @@
static const char rcsid[] = "@(#) : $Id$";
#include <ctype.h>
-#include "track.h"
-#include "trackx.h"
+#include <string.h>
+
#include "compound.h"
+#include "cundo.h"
+#include "custom.h"
+#include "fileio.h"
#include "i18n.h"
+#include "layout.h"
+#include "param.h"
+#include "track.h"
+#include "trackx.h"
+#include "utility.h"
EXPORT TRKTYP_T T_CONTROL = -1;
@@ -476,21 +484,18 @@ static STATUS_T CmdControl ( wAction_t action, coOrd pos )
InfoMessage(_("Place control"));
return C_CONTINUE;
case C_DOWN:
- SnapPos(&pos);
- DDrawControl( &tempD, pos, GetScaleRatio(curScaleInx), wDrawColorBlack );
- return C_CONTINUE;
- case C_MOVE:
- SnapPos(&pos);
- DDrawControl( &tempD, pos, GetScaleRatio(curScaleInx), wDrawColorBlack );
+ case C_MOVE:
+ SnapPos(&pos);
+ DDrawControl( &tempD, pos, GetScaleRatio(GetLayoutCurScale()), wDrawColorBlack );
return C_CONTINUE;
case C_UP:
SnapPos(&pos);
- DDrawControl( &tempD, pos, GetScaleRatio(curScaleInx), wDrawColorBlack );
+ DDrawControl( &tempD, pos, GetScaleRatio(GetLayoutCurScale()), wDrawColorBlack );
CreateNewControl(pos);
return C_TERMINATE;
case C_REDRAW:
case C_CANCEL:
- DDrawControl( &tempD, pos, GetScaleRatio(curScaleInx), wDrawColorBlack );
+ DDrawControl( &tempD, pos, GetScaleRatio(GetLayoutCurScale()), wDrawColorBlack );
return C_CONTINUE;
default:
return C_CONTINUE;
diff --git a/app/bin/ccornu.c b/app/bin/ccornu.c
new file mode 100644
index 0000000..b67d245
--- /dev/null
+++ b/app/bin/ccornu.c
@@ -0,0 +1,1240 @@
+/** \file ccornu.c
+ * Cornu Command. Draw or modify a Cornu Easement Track.
+ */
+/* XTrkCad - Model Railroad CAD
+ *
+ * Cornu curves are a family of mathematically defined curves that define spirals that Euler spirals and elastica come from.
+ *
+ * They have the useful property for us that curvature increases linearly along the curve which
+ * means the acceleration towards the center of the curve also increases evenly. Railways have long understood that
+ * smoothly changing the radius is key to passenger comfort and reduced derailments. The railway versions of these
+ * curves were called variously called easements, Talbot or Euler spirals.
+ *
+ * In XTrackCAD often want to change radius smoothly between two tracks whose end position, angle and curvature are known.
+ *
+ * Finding the right part(s) of the Cornu to fit the gap (if one is available) is mathematically complex,
+ * but fortunately Raph Levien published a PhD thesis on this together with his mathematical libraries as
+ * open source. He was doing work on font design where the Cornu shapes make beautiful smooth fonts. He
+ * was faced with the reality, though, that graphics packages do not include these shapes as native objects
+ * and so his solution was to produce a set of Bezier curves that approximate the solution.
+ *
+ * We already have a tool that can produce a set of arcs and straight line to approximate a Bezier - so that in the end
+ * for an easement track we will have an array of Bezier, each of which is an array of Arcs and Lines. The tool will
+ * use the approximations for most of its work.
+ *
+ * The inputs for the Cornu are the end points, angles and radii. To match the Cornu algorithm's expectations we input
+ * these as a set of knots (points on lines). One point is always the desired end point and the other two are picked
+ * direct the code to derive the other two end conditions. By specifying that the desired end point is a "one-way"
+ * knot we ensure that the result has smooth ends of either zero or fixed radius.
+ *
+ * When reading back the output, we simply ignore the results before the first end point knot and after the last.
+ *
+ * Because we are mathematically deriving the output, we can alter the end conditions and recalculate. This allows
+ * support of modify for Cornu Easements and also movement of tracks that are connected via a Cornu easement to another track.
+ *
+ * Note that unlike the existing Easements in XTrkCAD, the degree of sharpness (the rate of change of curvature)
+ * is derived not defined. By adjusting the ends, one can have an infinite set of sharpness solutions.
+ *
+ * Cornu will not find a solution for every set of input conditions, or may propose one that is impractical such as
+ * huge loops or tiny curves. These are mathematically correct, but not useful. In these cases the answer is to change the
+ * end conditions (more space between the ends, different angles or different radii).
+ *
+ * Note that every time we change the Cornu end points we have to recalculate the Bezier approximation,
+ * which recalculates the arc approximations, but that still means that the majority of the time we are using the approximation.
+ *
+ * Cornus do not have cusps, but can result in smooth loops. If there is too much looping, the code will reject the easement.
+ *
+ * This program is built and founded upon Raph Levien's seminal work and relies on an adaptation of his Cornu library.
+ * As with the Bezier work, it also relies on the pages about Bezier curves that PoMax put up at https://pomax.github.io/bezierinfo
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+
+#include "track.h"
+#include "spiro.h"
+#include "spiroentrypoints.h"
+#include "bezctx_xtrkcad.h"
+#include "draw.h"
+#include "ccurve.h"
+#include "ccornu.h"
+#include "tcornu.h"
+#include "cstraigh.h"
+#include "drawgeom.h"
+#include "cjoin.h"
+#include "i18n.h"
+#include "common.h"
+#include "utility.h"
+#include "math.h"
+#include "param.h"
+#include "layout.h"
+#include "cundo.h"
+#include "messages.h"
+#include "cselect.h"
+
+extern drawCmd_t tempD;
+extern TRKTYP_T T_BEZIER;
+extern TRKTYP_T T_CORNU;
+
+
+/*
+ * STATE INFO
+ */
+enum Cornu_States { NONE,
+ POS_1,
+ LOC_2,
+ POS_2,
+ PICK_POINT,
+ POINT_PICKED,
+ TRACK_SELECTED };
+
+static struct {
+ enum Cornu_States state;
+ coOrd pos[2];
+ int selectPoint;
+ wDrawColor color;
+ DIST_T width;
+ track_p trk[2];
+ EPINX_T ep[2];
+ DIST_T radius[2];
+ ANGLE_T angle[2];
+ ANGLE_T arcA0[2];
+ ANGLE_T arcA1[2];
+ coOrd center[2];
+ curveType_e trackType[2];
+
+ BOOL_T extend[2];
+ trkSeg_t extendSeg[2];
+
+ trkSeg_t ep1Segs[2];
+ int ep1Segs_da_cnt;
+ trkSeg_t ep2Segs[2];
+ int ep2Segs_da_cnt;
+ dynArr_t crvSegs_da;
+ int crvSegs_da_cnt;
+ trkSeg_t trk1Seg;
+ trkSeg_t trk2Seg;
+ track_p selectTrack;
+ DIST_T minRadius;
+ BOOL_T circleorHelix[2];
+
+ bezctx * bezc;
+ } Da;
+
+
+
+/**
+ * Draw a EndPoint.
+ * A Cornu end Point has a filled circle surrounded by another circle for endpoint
+ */
+int createEndPoint(
+ trkSeg_t sp[], //seg pointer for up to 2 trkSegs (ends and line)
+ coOrd pos0, //end on curve
+ BOOL_T point_selected,
+ BOOL_T point_selectable,
+ BOOL_T track_modifyable
+ )
+{
+ DIST_T d, w;
+ d = tempD.scale*0.25;
+ w = tempD.scale/tempD.dpi; /*double width*/
+ sp[0].u.c.center = pos0;
+ sp[0].u.c.a0 = 0.0;
+ sp[0].u.c.a1 = 360.0;
+ sp[0].width = w;
+ sp[0].u.c.radius = d/4;
+ sp[0].color = (point_selected>=0)?drawColorRed:drawColorBlack;
+ if (track_modifyable)
+ sp[0].type = SEG_CRVLIN;
+ else
+ sp[0].type = SEG_FILCRCL;
+ if (point_selectable) {
+ sp[1].u.c.center = pos0;
+ sp[1].u.c.a0 = 0.0;
+ sp[1].u.c.a1 = 360.0;
+ sp[1].u.c.radius = d/2;
+ sp[1].type = SEG_CRVLIN;
+ sp[1].width = w;
+ sp[1].color = drawColorRed;
+ return 2;
+ }
+ return 1;
+}
+
+
+/*
+ * Add element to DYNARR pointed to by caller from segment handed in
+ */
+void addSegCornu(dynArr_t * const array_p, trkSeg_p seg) {
+ trkSeg_p s;
+
+
+ DYNARR_APPEND(trkSeg_t, * array_p, 10); //Adds 1 to cnt
+ s = &DYNARR_N(trkSeg_t,* array_p,array_p->cnt-1);
+ s->type = seg->type;
+ s->bezSegs.max = 0;
+ s->bezSegs.cnt = 0;
+ if (s->bezSegs.ptr) MyFree(s->bezSegs.ptr);
+ s->bezSegs.ptr = NULL;
+ s->color = seg->color;
+ s->width = seg->width;
+ if ((s->type == SEG_BEZLIN || s->type == SEG_BEZTRK) && seg->bezSegs.cnt) {
+ s->u.b.angle0 = seg->u.b.angle0; //Copy all the rest
+ s->u.b.angle3 = seg->u.b.angle3;
+ s->u.b.length = seg->u.b.length;
+ s->u.b.minRadius = seg->u.b.minRadius;
+ for (int i=0;i<4;i++) s->u.b.pos[i] = seg->u.b.pos[i];
+ s->u.b.radius0 = seg->u.b.radius3;
+ for (int i = 0; i<seg->bezSegs.cnt; i++) {
+ addSegCornu(&s->bezSegs, (((trkSeg_p)seg->bezSegs.ptr) + i)); //recurse for copying embedded Beziers as in Cornu joint
+ }
+ } else {
+ s->u = seg->u;
+ }
+}
+EXPORT void SetKnots(spiro_cp knots[6], coOrd posk[6]) {
+ for (int i = 0; i < 6; i++) {
+ knots[i].x = posk[i].x;
+ knots[i].y = posk[i].y;
+ }
+ knots[0].ty = SPIRO_OPEN_CONTOUR;
+ knots[1].ty = SPIRO_G2;
+ knots[2].ty = SPIRO_RIGHT;
+ knots[3].ty = SPIRO_LEFT;
+ knots[4].ty = SPIRO_G2;
+ knots[5].ty = SPIRO_END_OPEN_CONTOUR;
+}
+
+BOOL_T CallCornu0(coOrd pos[2], coOrd center[2], ANGLE_T angle[2], DIST_T radius[2], dynArr_t * array_p, BOOL_T spots) {
+ array_p->cnt = 0;
+ //Create LH knots
+ //Find remote end point of track, create start knot
+ int ends[2];
+ ends[0] = 2; ends[1] = 3;
+ spiro_cp knots[6];
+ coOrd posk[6];
+ BOOL_T back;
+ ANGLE_T angle1;
+
+ if (Da.bezc) free(Da.bezc);
+
+ Da.bezc = new_bezctx_xtrkcad(array_p,ends,spots);
+
+ coOrd pos0 = pos[0];
+
+ if (radius[0] == 0.0) {
+ Translate(&posk[0],pos0,angle[0],10);
+ Translate(&posk[1],pos0,angle[0],5);
+ } else {
+ angle1 = FindAngle(center[0],pos[0]);
+ if (NormalizeAngle(angle1 - angle[0])<180) back = TRUE;
+ else back = FALSE;
+ posk[0] = pos[0];
+ Rotate(&posk[0],center[0],(back)?-10:10);
+ posk[1] = pos[0];
+ Rotate(&posk[1],center[0],(back)?-5:5);
+ }
+ posk[2] = pos[0];
+
+ posk[3] = pos[1];
+
+ coOrd pos1 = pos[1];
+
+ if (radius[1] == 0.0 ) {
+ Translate(&posk[4],pos1,angle[1],5);
+ Translate(&posk[5],pos1,angle[1],10);
+ } else {
+ angle1 = FindAngle(center[1],pos[1]);
+ if (NormalizeAngle(angle1 - angle[1])>180) back = TRUE;
+ else back = FALSE;
+ posk[4] = pos[1];
+ Rotate(&posk[4],center[1],(back)?5:-5);
+ posk[5] = pos[1];
+ Rotate(&posk[5],center[1],(back)?10:-10);
+ }
+ SetKnots(knots,posk);
+ TaggedSpiroCPsToBezier(knots,Da.bezc);
+ if (!bezctx_xtrkcad_close(Da.bezc)) {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+/*
+ * Set up the call to Cornu0. Take the conditions of the two ends from the connected tracks.
+ */
+BOOL_T CallCornu(coOrd pos[2], track_p trk[2], EPINX_T ep[2], dynArr_t * array_p, cornuParm_t * cp) {
+
+ trackParams_t params;
+ ANGLE_T angle;
+ for (int i=0;i<2;i++) {
+ if (trk[i]) {
+ if (!GetTrackParams(PARAMS_CORNU,trk[i],pos[i],&params)) return FALSE;
+ cp->pos[i] = pos[i];
+ if (Da.ep[i]>=0) angle = GetTrkEndAngle(trk[i],ep[i]);
+ else angle = params.angle; //Turntable only
+ if (Da.circleorHelix[i]) { //Helix/Circle only
+ cp->radius[i] = params.arcR;
+ cp->center[i] = params.arcP;
+ cp->angle[i] = NormalizeAngle(params.track_angle+(ep[i]?180:0));
+ } else if (params.type == curveTypeStraight) {
+ cp->angle[i] = NormalizeAngle(angle+180); //Because end always backwards
+ cp->radius[i] = 0.0;
+ } else if ((params.type == curveTypeCornu || params.type == curveTypeBezier) && params.arcR == 0.0 ) {
+ cp->radius[i] = 0.0;
+ cp->angle[i] = NormalizeAngle(params.track_angle+(ep[i]?180:0)); //Use point not end
+ } else if (params.type == curveTypeCurve) {
+ cp->angle[i] = NormalizeAngle(params.track_angle+(ep[i]?180:0));
+ cp->radius[i] = params.arcR;
+ cp->center[i] = params.arcP;
+ } else if ((params.type == curveTypeCornu || params.type == curveTypeBezier) && params.arcR != 0.0 ){
+ cp->angle[i] = NormalizeAngle(params.track_angle+(ep[i]?180:0));
+ cp->radius[i] = params.arcR;
+ cp->center[i] = params.arcP;
+ } else {
+ cp->angle[i] = NormalizeAngle(angle+180); //Unknown - treat like straight
+ cp->radius[i] = params.arcR;
+ cp->center[i] = params.arcP;
+ }
+ }
+ }
+
+ return CallCornu0(pos,cp->center,cp->angle,cp->radius,array_p,TRUE);
+}
+
+
+/*
+ * Draw Cornu while editing it. It consists of up to five elements - the ends, the curve and one or two End Points.
+ *
+ */
+
+EXPORT void DrawCornuCurve(
+ trkSeg_p first_trk,
+ trkSeg_p point1,
+ int ep1Segs_cnt,
+ trkSeg_p curveSegs,
+ int crvSegs_cnt,
+ trkSeg_p point2,
+ int ep2Segs_cnt,
+ trkSeg_p second_trk,
+ trkSeg_p extend1_trk,
+ trkSeg_p extend2_trk,
+ wDrawColor color
+ ) {
+ long oldDrawOptions = tempD.funcs->options;
+ tempD.funcs->options = wDrawOptTemp;
+ long oldOptions = tempD.options;
+ tempD.options = DC_TICKS;
+ tempD.orig = mainD.orig;
+ tempD.angle = mainD.angle;
+ if (first_trk)
+ DrawSegs( &tempD, zero, 0.0, first_trk, 1, trackGauge, drawColorBlack );
+ if (crvSegs_cnt && curveSegs)
+ DrawSegs( &tempD, zero, 0.0, curveSegs, crvSegs_cnt, trackGauge, color );
+ if (second_trk)
+ DrawSegs( &tempD, zero, 0.0, second_trk, 1, trackGauge, drawColorBlack );
+ if (ep1Segs_cnt && point1)
+ DrawSegs( &tempD, zero, 0.0, point1, ep1Segs_cnt, trackGauge, drawColorBlack );
+ if (ep2Segs_cnt && point2)
+ DrawSegs( &tempD, zero, 0.0, point2, ep2Segs_cnt, trackGauge, drawColorBlack );
+ if (extend1_trk)
+ DrawSegs( &tempD, zero, 0.0, extend1_trk, 1, trackGauge, drawColorBlack);
+ if (extend2_trk)
+ DrawSegs( &tempD, zero, 0.0, extend2_trk, 1, trackGauge, drawColorBlack);
+ tempD.funcs->options = oldDrawOptions;
+ tempD.options = oldOptions;
+
+}
+
+/*
+ * If Track, make it red if the radius is below minimum
+ */
+void DrawTempCornu() {
+
+
+ DrawCornuCurve(&Da.trk1Seg,
+ &Da.ep1Segs[0],Da.ep1Segs_da_cnt,
+ (trkSeg_t *)Da.crvSegs_da.ptr,Da.crvSegs_da_cnt,
+ &Da.ep2Segs[0],Da.ep2Segs_da_cnt,
+ &Da.trk2Seg,
+ Da.extend[0]?&Da.extendSeg[0]:NULL,
+ Da.extend[1]?&Da.extendSeg[1]:NULL,
+ Da.minRadius<(GetLayoutMinTrackRadius()-EPSILON)?drawColorRed:drawColorBlack);
+
+}
+
+void CreateBothEnds(int selectPoint) {
+ BOOL_T selectable[2],modifyable[2];
+ selectable[0] = Da.trk[0] && !QueryTrack(Da.trk[0],Q_IS_CORNU);
+ modifyable[0] = Da.trk[0] && QueryTrack(Da.trk[0],Q_CORNU_CAN_MODIFY);
+ selectable[1] = Da.trk[1] && !QueryTrack(Da.trk[1],Q_IS_CORNU);
+ modifyable[1] = Da.trk[1] && QueryTrack(Da.trk[1],Q_CORNU_CAN_MODIFY);
+ if (selectPoint == -1) {
+ Da.ep1Segs_da_cnt = createEndPoint(Da.ep1Segs, Da.pos[0],FALSE,selectable[0],modifyable[0]);
+ Da.ep2Segs_da_cnt = createEndPoint(Da.ep2Segs, Da.pos[1],FALSE,selectable[1],modifyable[1]);
+ } else if (selectPoint == 0 || selectPoint == 1) {
+ Da.ep1Segs_da_cnt = createEndPoint(Da.ep1Segs, Da.pos[0],selectPoint == 0,selectable[0],modifyable[0]);
+ Da.ep2Segs_da_cnt = createEndPoint(Da.ep2Segs, Da.pos[1],selectPoint == 1,selectable[1],modifyable[1]);
+ } else {
+ Da.ep1Segs_da_cnt = createEndPoint(Da.ep1Segs, Da.pos[0],FALSE,selectable[0],modifyable[0]);
+ Da.ep2Segs_da_cnt = createEndPoint(Da.ep2Segs, Da.pos[1],FALSE,selectable[1],modifyable[1]);
+ }
+}
+
+BOOL_T GetConnectedTrackParms(track_p t, const coOrd pos, int end, EPINX_T track_end) {
+ trackParams_t trackParams;
+ if (!GetTrackParams(PARAMS_CORNU, t, pos, &trackParams)) return FALSE;
+ Da.radius[end] = 0.0;
+ Da.center[end] = zero;
+ Da.circleorHelix[end] = FALSE;
+ Da.trackType[end] = trackParams.type;
+ if (trackParams.type == curveTypeCurve) {
+ Da.arcA0[end] = trackParams.arcA0;
+ Da.arcA1[end] = trackParams.arcA1;
+ Da.radius[end] = trackParams.arcR;
+ Da.center[end] = trackParams.arcP;
+ if (trackParams.circleOrHelix) {
+ Da.circleorHelix[end] = TRUE;
+ Da.angle[end] = trackParams.track_angle; //For Now
+ } else {
+ Da.angle[end] = NormalizeAngle(trackParams.track_angle + (track_end?180:0));
+ }
+ } else if (trackParams.type == curveTypeBezier) {
+ Da.angle[end] = NormalizeAngle(trackParams.track_angle+(track_end?180:0));
+ if (trackParams.arcR == 0) {
+ Da.radius[end] = 0;
+ Da.center[end] = zero;
+ } else {
+ Da.arcA0[end] = trackParams.arcA0;
+ Da.arcA1[end] = trackParams.arcA1;
+ Da.radius[end] = trackParams.arcR;
+ Da.center[end] = trackParams.arcP;
+ }
+ } else if (trackParams.type == curveTypeCornu) {
+ int ep = trackParams.ep;
+ Da.angle[end] = NormalizeAngle(trackParams.cornuAngle[ep]+(track_end?180:0));
+ Da.radius[end] = trackParams.cornuRadius[ep];
+ Da.pos[end] = trackParams.cornuEnd[ep];
+ Da.center[end] = trackParams.cornuCenter[ep];
+ } else if (trackParams.type == curveTypeStraight) {
+ if (Da.ep[end]>=0)
+ Da.angle[end] = NormalizeAngle(GetTrkEndAngle(t,track_end)+180); //Ignore params.angle because it gives from nearest end
+ else {
+ Da.angle[end] = NormalizeAngle(trackParams.angle+180); //Turntable
+ Da.pos[end] = trackParams.lineEnd; //End moved to constrain angle
+ }
+ }
+ return TRUE;
+}
+
+void CorrectHelixAngles() {
+ if ( Da.circleorHelix[0] ) {
+ Da.ep[0] = PickArcEndPt( Da.center[0], Da.pos[0], Da.pos[1] );
+ if (Da.ep[0] == 1) Da.angle[0] = NormalizeAngle(Da.angle[0]+180);
+ }
+ if ( Da.circleorHelix[1] ) {
+ Da.ep[1] = PickArcEndPt( Da.center[1], Da.pos[1], Da.pos[0] );
+ if (Da.ep[1] == 1) Da.angle[1] = NormalizeAngle(Da.angle[1]+180);
+ }
+}
+
+BOOL_T CheckHelix(track_p trk) {
+ if ( Da.trk[0] && QueryTrack(Da.trk[0],Q_HAS_VARIABLE_ENDPOINTS)) {
+ track_p t = GetTrkEndTrk(Da.trk[0],Da.ep[0]);
+ if ( t != NULL && t != trk) {
+ ErrorMessage( MSG_TRK_ALREADY_CONN, _("First") );
+ return FALSE;
+ }
+ }
+ if ( Da.trk[1] && QueryTrack(Da.trk[1],Q_HAS_VARIABLE_ENDPOINTS)) {
+ track_p t = GetTrkEndTrk(Da.trk[1],Da.ep[1]);
+ if ( t != NULL && t != trk) {
+ ErrorMessage( MSG_TRK_ALREADY_CONN, _("Second") );
+ return FALSE;
+ }
+ }
+ return TRUE;
+}
+
+void SetUpCornuParms(cornuParm_t * cp) {
+ cp->center[0] = Da.center[0];
+ cp->angle[0] = Da.angle[0];
+ cp->radius[0] = Da.radius[0];
+ cp->center[1] = Da.center[1];
+ cp->angle[1] = Da.angle[1];
+ cp->radius[1] = Da.radius[1];
+}
+
+/*
+ * AdjustCornuCurve
+ *
+ * Called to adjust the curve either when creating it or modifying it
+ * States are "PICK_POINT" and "POINT_PICKED" and "TRACK_SELECTED".
+ *
+ * In PICK_POINT, the user can select an end-point to drag and release in POINT_PICKED. They can also
+ * hit Enter (which saves the changes) or ESC (which cancels them).
+ *
+ * Deal with extended tracks from ends.
+ *
+ */
+EXPORT STATUS_T AdjustCornuCurve(
+ wAction_t action,
+ coOrd pos,
+ cornuMessageProc message )
+{
+ track_p t;
+ DIST_T d;
+ ANGLE_T a, a2;
+ DIST_T dd;
+ EPINX_T ep;
+ cornuParm_t cp;
+
+
+ if (Da.state != PICK_POINT && Da.state != POINT_PICKED && Da.state != TRACK_SELECTED) return C_CONTINUE;
+
+ switch ( action & 0xFF) {
+
+ case C_START:
+ Da.selectPoint = -1;
+ Da.extend[0] = FALSE;
+ Da.extend[1] = FALSE;
+ CreateBothEnds(Da.selectPoint);
+ Da.crvSegs_da.cnt = 0;
+ SetUpCornuParms(&cp);
+ if (CallCornu(Da.pos,Da.trk,Da.ep,&Da.crvSegs_da,&cp)) Da.crvSegs_da_cnt = Da.crvSegs_da.cnt;
+ else Da.crvSegs_da_cnt = 0;
+ Da.minRadius = CornuMinRadius(Da.pos,Da.crvSegs_da);
+ InfoMessage( _("Select End-Point") );
+ DrawTempCornu();
+ return C_CONTINUE;
+
+ case C_DOWN:
+ if (Da.state != PICK_POINT) return C_CONTINUE;
+ dd = 10000.0;
+ Da.selectPoint = -1;
+ for (int i=0;i<2;i++) {
+ d = FindDistance(Da.pos[i],pos);
+ if (d < dd) {
+ dd = d;
+ Da.selectPoint = i;
+ }
+ }
+ if (!IsClose(dd) ) Da.selectPoint = -1;
+ if (Da.selectPoint == -1) {
+ wBeep();
+ InfoMessage( _("Not close enough to end point, reselect") );
+ return C_CONTINUE;
+ } else if (Da.trk[Da.selectPoint] && QueryTrack(Da.trk[Da.selectPoint],Q_IS_CORNU)){
+ wBeep();
+ InfoMessage( _("Is Cornu End -> Not Selectable") );
+ return C_CONTINUE;
+ } else {
+ pos = Da.pos[Da.selectPoint];
+ Da.state = POINT_PICKED;
+ InfoMessage( _("Drag point %d to new location and release it"),Da.selectPoint+1 );
+ }
+ DrawTempCornu(); //wipe out
+ CreateBothEnds(Da.selectPoint);
+ SetUpCornuParms(&cp);
+ if (CallCornu(Da.pos, Da.trk,Da.ep, &Da.crvSegs_da, &cp)) Da.crvSegs_da_cnt = Da.crvSegs_da.cnt;
+ else Da.crvSegs_da_cnt = 0;
+ Da.minRadius = CornuMinRadius(Da.pos, Da.crvSegs_da);
+ DrawTempCornu();
+ return C_CONTINUE;
+
+ case C_MOVE:
+ if (Da.state != POINT_PICKED) {
+ InfoMessage(_("Pick any circle to adjust it by dragging - Enter to accept, Esc to cancel"));
+ return C_CONTINUE;
+ }
+ //If locked, reset pos to be on line from other track
+ int sel = Da.selectPoint;
+ coOrd pos2 = pos;
+ BOOL_T inside = FALSE;
+ if (Da.trk[sel]) { //There is a track
+ if (OnTrack(&pos,FALSE,TRUE) == Da.trk[sel]) { //And the pos is on it
+ inside = TRUE;
+ if (!QueryTrack(Da.trk[Da.selectPoint],Q_CORNU_CAN_MODIFY)) { //Turnouts
+ InfoMessage(_("Track can't be split"));
+ if (Da.ep[sel]>=0) //Ignore if turntable
+ pos = GetTrkEndPos(Da.trk[sel],Da.ep[sel]);
+ }
+ } else {
+ pos = pos2; //Put Back to original position as outside track
+ }
+ // Stop the user extending right through the other track
+ if (Da.ep[sel]>=0 && QueryTrack(Da.trk[sel],Q_CORNU_CAN_MODIFY)) { //For non-turnouts
+ if ((!QueryTrack(Da.trk[sel],Q_CAN_ADD_ENDPOINTS)) // But Not Helix or Circle
+ && (!QueryTrack(Da.trk[sel],Q_HAS_VARIABLE_ENDPOINTS))) { // Not a Turntable
+ DIST_T ab = FindDistance(GetTrkEndPos(Da.trk[sel],Da.ep[sel]),GetTrkEndPos(Da.trk[sel],1-Da.ep[sel]));
+ DIST_T ac = FindDistance(GetTrkEndPos(Da.trk[sel],Da.ep[sel]),pos);
+ DIST_T cb = FindDistance(GetTrkEndPos(Da.trk[sel],1-Da.ep[sel]), pos);
+ if (cb<minLength) {
+ InfoMessage(_("Too close to other end of selected Track"));
+ return C_CONTINUE;
+ }
+ if ((ac>=cb) && (ac>=ab)) { //Closer to far end and as long as the track
+ pos = GetTrkEndPos(Da.trk[sel],1-Da.ep[sel]); //Make other end of track
+ }
+ }
+ }
+ }
+ DrawTempCornu(); //wipe out old
+ Da.extend[sel] = FALSE;
+ if(!Da.trk[sel]) { //Cornu with no ends
+ if (Da.radius[sel] == 0) { //Straight
+ Da.extendSeg[sel].type = SEG_STRTRK;
+ Da.extendSeg[sel].width = 0;
+ Da.extendSeg[sel].color = wDrawColorBlack;
+ Da.extendSeg[sel].u.l.pos[1-sel] = Da.pos[sel];
+ d = FindDistance( Da.extendSeg[sel].u.l.pos[1-sel], pos );
+ a = NormalizeAngle(Da.angle[sel]-FindAngle(pos,Da.pos[sel]));
+ if (cos(D2R(a))<=0) {
+ Translate( &Da.extendSeg[sel].u.l.pos[sel],
+ Da.extendSeg[sel].u.l.pos[1-sel],
+ Da.angle[sel], - d * cos(D2R(a)));
+ pos = Da.extendSeg[sel].u.l.pos[1-sel];
+ Da.extend[sel] = TRUE;
+ }
+ } else { //Curve
+ Da.extendSeg[sel].type = SEG_CRVTRK;
+ Da.extendSeg[sel].width = 0;
+ Da.extendSeg[sel].color = wDrawColorBlack;
+ Da.extendSeg[sel].u.c.center = Da.center[sel];
+ Da.extendSeg[sel].u.c.radius = Da.radius[sel];
+ a = FindAngle( Da.center[sel], pos );
+ PointOnCircle( &pos, Da.center[sel], Da.radius[sel], a );
+ a2 = FindAngle(Da.center[sel],Da.pos[sel]);
+ if (((Da.angle[sel] < 180) && (a2>90 && a2<270)) ||
+ ((Da.angle[sel] > 180) && (a2<90 || a2>270))) {
+ Da.extendSeg[sel].u.c.a0 = a;
+ Da.extendSeg[sel].u.c.a1 = NormalizeAngle(a2-a);
+ } else {
+ Da.extendSeg[sel].u.c.a0 = a2;
+ Da.extendSeg[sel].u.c.a1 = NormalizeAngle(a-a2);
+ }
+ if (Da.extendSeg[sel].u.c.a1 == 0 || Da.extendSeg[sel].u.c.a1 >180 )
+ Da.extend[sel] = FALSE;
+ else
+ Da.extend[sel] = TRUE;
+ }
+ } else { //Cornu with ends
+ if (inside) Da.pos[sel] = pos;
+ if (!GetConnectedTrackParms(Da.trk[sel],pos,sel,Da.ep[sel])) {
+ DrawTempCornu();
+ wBeep();
+ return C_CONTINUE; //Stop drawing
+ }
+ CorrectHelixAngles();
+ if (!inside) { //Extend the track
+ if (Da.trackType[sel] == curveTypeStraight) { //Extend with a straight
+ Da.extendSeg[sel].type = SEG_STRTRK;
+ Da.extendSeg[sel].width = 0;
+ Da.extendSeg[sel].color = wDrawColorBlack;
+ if (Da.ep[sel]>=0) {
+ Da.extendSeg[sel].u.l.pos[0] = GetTrkEndPos( Da.trk[sel], Da.ep[sel] );
+ a = NormalizeAngle(Da.angle[sel]-FindAngle(pos,GetTrkEndPos(Da.trk[sel],Da.ep[sel])));
+ } else { //Turntable when unconnected
+ Da.extendSeg[sel].u.l.pos[0] = Da.pos[sel];
+ a = NormalizeAngle(Da.angle[sel]-FindAngle(pos,Da.pos[sel]));
+ }
+ // Remove any extend in opposite direction for Turntable/Turnouts
+ if ((QueryTrack(Da.trk[sel],Q_CAN_ADD_ENDPOINTS) && Da.ep[sel]>=0)
+ && (!QueryTrack(Da.trk[sel],Q_CORNU_CAN_MODIFY))
+ && (a>90 && a<270)) {
+ Da.extend[sel] = FALSE; //Turntable with point and extension is other side of well
+ Da.pos[sel] = GetTrkEndPos(Da.trk[sel],Da.ep[sel]);
+ } else {
+ Da.extend[sel] = TRUE;
+ d = FindDistance( Da.extendSeg[sel].u.l.pos[0], pos );
+ Translate( &Da.extendSeg[sel].u.l.pos[1],
+ Da.extendSeg[sel].u.l.pos[0],
+ Da.angle[sel], -d * cos(D2R(a)));
+ Da.pos[sel] = pos = Da.extendSeg[sel].u.l.pos[1];
+ }
+ } else if (Da.trackType[sel] == curveTypeCurve) { //Extend with temp curve
+ Da.extendSeg[sel].type = SEG_CRVTRK;
+ Da.extendSeg[sel].width = 0;
+ Da.extendSeg[sel].color = wDrawColorBlack;
+ Da.extendSeg[sel].u.c.center = Da.center[sel];
+ Da.extendSeg[sel].u.c.radius = Da.radius[sel];
+ a = FindAngle( Da.center[sel], pos );
+ PointOnCircle( &pos, Da.center[sel], Da.radius[sel], a );
+ a2 = FindAngle(Da.center[sel],GetTrkEndPos(Da.trk[sel],Da.ep[sel]));
+ if ((Da.angle[sel] < 180 && (a2>90 && a2 <270)) ||
+ (Da.angle[sel] > 180 && (a2<90 || a2 >270))) {
+ Da.extendSeg[sel].u.c.a0 = a2;
+ Da.extendSeg[sel].u.c.a1 = NormalizeAngle(a-a2);
+ } else {
+ Da.extendSeg[sel].u.c.a0 = a;
+ Da.extendSeg[sel].u.c.a1 = NormalizeAngle(a2-a);
+ }
+ if (Da.extendSeg[sel].u.c.a1 == 0.0 || Da.extendSeg[sel].u.c.a1 >180
+ || (Da.extendSeg[sel].u.c.a0 >= Da.arcA0[sel] && Da.extendSeg[sel].u.c.a0 < Da.arcA0[sel]+Da.arcA1[sel]
+ && Da.extendSeg[sel].u.c.a0 + Da.extendSeg[sel].u.c.a1 <= Da.arcA0[sel] + Da.arcA1[sel])
+ ) {
+ Da.extend[sel] = FALSE;
+ Da.pos[sel] = pos;
+ } else {
+ Da.extend[sel] = TRUE;
+ Da.pos[sel] = pos;
+ }
+
+ } else { //Bezier and Cornu that we are joining TO can't extend
+ DrawTempCornu(); //put back
+ wBeep();
+ InfoMessage(_("Must be on the %s Track"),Da.trackType[sel]==curveTypeBezier?"Bezier":Da.trackType[sel]==curveTypeCornu?"Cornu":"Unknown Type");
+ pos = GetTrkEndPos(Da.trk[sel],Da.ep[sel]);
+ return C_CONTINUE;
+ }
+ }
+ }
+
+ CreateBothEnds(Da.selectPoint);
+ SetUpCornuParms(&cp); //In case we want to use these because the ends are not on the track
+
+ if (CallCornu(Da.pos, Da.trk, Da.ep, &Da.crvSegs_da,&cp)) Da.crvSegs_da_cnt = Da.crvSegs_da.cnt;
+ else Da.crvSegs_da_cnt = 0;
+ Da.minRadius = CornuMinRadius(Da.pos,Da.crvSegs_da);
+ DIST_T rin = Da.radius[0];
+ InfoMessage( _("Cornu : Min Radius=%s Max Rate of Radius Change=%s Length=%s Winding Arc=%s"),
+ FormatDistance(Da.minRadius),
+ FormatDistance(CornuMaxRateofChangeofCurvature(Da.pos,Da.crvSegs_da,&rin)),
+ FormatDistance(CornuLength(Da.pos,Da.crvSegs_da)),
+ FormatDistance(CornuTotalWindingArc(Da.pos,Da.crvSegs_da)));
+ DrawTempCornu();
+ return C_CONTINUE;
+
+ case C_UP:
+ if (Da.state != POINT_PICKED) return C_CONTINUE;
+ ep = 0;
+ DrawTempCornu(); //wipe out
+ Da.selectPoint = -1;
+ CreateBothEnds(Da.selectPoint);
+ SetUpCornuParms(&cp);
+ if (CallCornu(Da.pos,Da.trk,Da.ep,&Da.crvSegs_da,&cp)) Da.crvSegs_da_cnt = Da.crvSegs_da.cnt;
+ else Da.crvSegs_da_cnt = 0;
+ Da.minRadius = CornuMinRadius(Da.pos,Da.crvSegs_da);
+ InfoMessage(_("Pick on point to adjust it along track - Enter to confirm, ESC to abort"));
+ DrawTempCornu();
+ Da.state = PICK_POINT;
+ return C_CONTINUE;
+
+ case C_OK: //C_OK is not called by Modify.
+ if ( Da.state == PICK_POINT ) {
+ Da.minRadius = CornuMinRadius(Da.pos,Da.crvSegs_da);
+ if (CornuTotalWindingArc(Da.pos,Da.crvSegs_da)>4*360) {
+ wBeep();
+ InfoMessage(_("Cornu has too complex shape - adjust end pts"));
+ return C_CONTINUE;
+ }
+ if (!CheckHelix(NULL)) {
+ wBeep();
+ return C_CONTINUE;
+ }
+ for (int i=0;i<2;i++) {
+ if (FindDistance(Da.pos[i],GetTrkEndPos(Da.trk[i],1-Da.ep[i])) < minLength) {
+ wBeep();
+ InfoMessage(_("Cornu end %d too close to other end of connect track - reposition it"),i+1);
+ return C_CONTINUE;
+ }
+ }
+
+ DrawTempCornu();
+ UndoStart( _("Create Cornu"),"newCornu curve");
+ t = NewCornuTrack( Da.pos, Da.center, Da.angle, Da.radius,(trkSeg_p)Da.crvSegs_da.ptr, Da.crvSegs_da.cnt);
+ if (t==NULL) {
+ wBeep();
+ InfoMessage(_("Cornu Create Failed for p1[%0.3f,%0.3f] p2[%0.3f,%0.3f], c1[%0.3f,%0.3f] c2[%0.3f,%0.3f], a1=%0.3f a2=%0.3f, r1=%s r2=%s"),
+ Da.pos[0].x,Da.pos[0].y,
+ Da.pos[1].x,Da.pos[1].y,
+ Da.center[0].x,Da.center[0].y,
+ Da.center[1].x,Da.center[1].y,
+ Da.angle[0],Da.angle[1],
+ FormatDistance(Da.radius[0]),FormatDistance(Da.radius[1]));
+ return C_TERMINATE;
+ }
+
+ CopyAttributes( Da.trk[0], t );
+
+ for (int i=0;i<2;i++) {
+ UndoModify(Da.trk[i]);
+ MoveEndPt(&Da.trk[i],&Da.ep[i],Da.pos[i],0);
+ if ((GetTrkType(Da.trk[i])==T_BEZIER) || (GetTrkType(Da.trk[i])==T_CORNU)) { //Bezier split position not precise, so readjust Cornu
+ GetConnectedTrackParms(Da.trk[i],GetTrkEndPos(Da.trk[i],Da.ep[i]),i,Da.ep[i]);
+ ANGLE_T endAngle = NormalizeAngle(GetTrkEndAngle(Da.trk[i],Da.ep[i])+180);
+ SetCornuEndPt(t,i,GetTrkEndPos(Da.trk[i],Da.ep[i]),Da.center[i],endAngle,Da.radius[i]);
+ }
+ if (Da.ep[i]>=0)
+ ConnectTracks(Da.trk[i],Da.ep[i],t,i);
+ }
+ UndoEnd();
+ DrawNewTrack(t);
+ Da.state = NONE;
+ MainRedraw();
+ MapRedraw();
+ return C_TERMINATE;
+ }
+ return C_CONTINUE;
+
+ case C_REDRAW:
+ DrawTempCornu();
+ return C_CONTINUE;
+
+ default:
+ return C_CONTINUE;
+ }
+
+
+}
+
+struct extraData {
+ cornuData_t cornuData;
+ };
+
+/**
+ * CmdCornuModify
+ *
+ * Called from Modify Command - this function deals with the real (old) track and calls AdjustCornuCurve to tune up the new one
+ * Sequence is this -
+ * - The C_START is called from CmdModify C_DOWN action if a track has being selected. The old track is hidden, the editable one is shown.
+ * - C_MOVES will be ignored until a C_UP ends the track selection and moves the state to PICK_POINT,
+ * - C_DOWN then hides the track and shows the Cornu circles. Selects a point (if close enough and available) and the state moves to POINT_PICKED
+ * - C_MOVE drags the point around modifying the curve
+ * - C_UP puts the state back to PICK_POINT (pick another)
+ * - C_OK (Enter/Space) creates the new track, deletes the old and shows the changed track.
+ * - C_CANCEL (Esc) sets the state to NONE and reshows the original track unchanged.
+ *
+ */
+STATUS_T CmdCornuModify (track_p trk, wAction_t action, coOrd pos) {
+ track_p t;
+ struct extraData *xx = GetTrkExtraData(trk);
+
+ switch (action&0xFF) {
+ case C_START:
+ Da.state = NONE;
+ DYNARR_RESET(trkSeg_t,Da.crvSegs_da);
+ Da.ep1Segs_da_cnt = 0;
+ Da.ep2Segs_da_cnt = 0;
+ Da.extend[0] = FALSE;
+ Da.extend[1] = FALSE;
+ Da.selectPoint = -1;
+ Da.selectTrack = NULL;
+
+
+ Da.selectTrack = trk;
+ Da.trk[0] = GetTrkEndTrk( trk, 0 );
+ if (Da.trk[0]) Da.ep[0] = GetEndPtConnectedToMe(Da.trk[0],trk);
+ Da.trk[1] = GetTrkEndTrk( trk, 1 );
+ if (Da.trk[1]) Da.ep[1] = GetEndPtConnectedToMe(Da.trk[1],trk);
+
+ for (int i=0;i<2;i++) {
+ Da.pos[i] = xx->cornuData.pos[i]; //Copy parms from old trk
+ Da.radius[i] = xx->cornuData.r[i];
+ Da.angle[i] = xx->cornuData.a[i];
+ Da.center[i] = xx->cornuData.c[i];
+ }
+
+
+ if ((Da.trk[0] && (!QueryTrack(Da.trk[0],Q_CORNU_CAN_MODIFY) && !QueryTrack(Da.trk[0],Q_CAN_EXTEND))) &&
+ (Da.trk[1] && (!QueryTrack(Da.trk[1],Q_CORNU_CAN_MODIFY) && !QueryTrack(Da.trk[1],Q_CAN_EXTEND)))) {
+ wBeep();
+ ErrorMessage("Both Ends of this Cornu are UnAdjustable");
+ return C_TERMINATE;
+ }
+
+ InfoMessage(_("Track picked - now select a Point"));
+ Da.state = TRACK_SELECTED;
+ DrawTrack(Da.selectTrack,&mainD,wDrawColorWhite); //Wipe out real track, draw replacement
+ return AdjustCornuCurve(C_START, pos, InfoMessage);
+
+ case C_DOWN:
+ if (Da.state == TRACK_SELECTED) return C_CONTINUE; //Ignore until first up
+ return AdjustCornuCurve(C_DOWN, pos, InfoMessage);
+
+
+ case C_MOVE:
+ if (Da.state == TRACK_SELECTED) return C_CONTINUE; //Ignore until first up and down
+ return AdjustCornuCurve(C_MOVE, pos, InfoMessage);
+
+ case C_UP:
+ if (Da.state == TRACK_SELECTED) {
+ Da.state = PICK_POINT; //First time up, next time pick a point
+ }
+ return AdjustCornuCurve(C_UP, pos, InfoMessage); //Run Adjust
+
+ case C_TEXT:
+ if ((action>>8) != 32)
+ return C_CONTINUE;
+ /* no break */
+ case C_OK:
+ if (Da.state != PICK_POINT) { //Too early - abandon
+ InfoMessage(_("No changes made"));
+ Da.state = NONE;
+ //DYNARR_FREE(trkSeg_t,Da.crvSegs_da);
+ return C_CANCEL;
+ }
+ if (!CheckHelix(trk)) {
+ wBeep();
+ return C_CONTINUE;
+ }
+ UndoStart( _("Modify Cornu"), "newCornu - CR" );
+ for (int i=0;i<2;i++) {
+ if (!Da.trk[i] && Da.extend[i]) {
+ if (Da.extendSeg[i].type == SEG_STRTRK) {
+ Da.trk[i] = NewStraightTrack(Da.extendSeg[i].u.l.pos[0],Da.extendSeg[i].u.l.pos[1]);
+ if (Da.trk[i]) Da.ep[i] = 1-i;
+ } else {
+ Da.trk[i] = NewCurvedTrack(Da.extendSeg[i].u.c.center,fabs(Da.extendSeg[i].u.c.radius),
+ Da.extendSeg[i].u.c.a0,Da.extendSeg[i].u.c.a1,FALSE);
+ if (Da.angle[i]>180)
+ Da.ep[i] = (Da.extendSeg[i].u.c.a0>90 && Da.extendSeg[i].u.c.a0<270)?0:1;
+ else
+ Da.ep[i] = (Da.extendSeg[i].u.c.a0>90 && Da.extendSeg[i].u.c.a0<270)?1:0;
+ }
+ if (!Da.trk[i]) {
+ wBeep();
+ InfoMessage(_("Cornu Extension Create Failed for end %d"),i);
+ return C_TERMINATE;
+ }
+
+ }
+ }
+
+ t = NewCornuTrack( Da.pos, Da.center, Da.angle, Da.radius, (trkSeg_p)Da.crvSegs_da.ptr, Da.crvSegs_da.cnt);
+ if (t==NULL) {
+ wBeep();
+ InfoMessage(_("Cornu Create Failed for p1[%0.3f,%0.3f] p2[%0.3f,%0.3f], c1[%0.3f,%0.3f] c2[%0.3f,%0.3f], a1=%0.3f a2=%0.3f, r1=%s r2=%s"),
+ Da.pos[0].x,Da.pos[0].y,
+ Da.pos[1].x,Da.pos[1].y,
+ Da.center[0].x,Da.center[0].y,
+ Da.center[1].x,Da.center[1].y,
+ Da.angle[0],Da.angle[1],
+ FormatDistance(Da.radius[0]),FormatDistance(Da.radius[1]));
+ UndoUndo();
+ MainRedraw();
+ MapRedraw();
+ //DYNARR_FREE(trkSeg_t,Da.crvSegs_da);
+ return C_TERMINATE;
+ }
+
+ DeleteTrack(trk, TRUE);
+
+ if (Da.trk[0]) UndoModify(Da.trk[0]);
+ if (Da.trk[1]) UndoModify(Da.trk[1]);
+
+ for (int i=0;i<2;i++) { //Attach new track
+ if (Da.trk[i] && Da.ep[i] != -1) { //Like the old track
+ MoveEndPt(&Da.trk[i],&Da.ep[i],Da.pos[i],0);
+ if (GetTrkType(Da.trk[i])==T_BEZIER) { //Bezier split position not precise, so readjust Cornu
+ GetConnectedTrackParms(Da.trk[i],GetTrkEndPos(Da.trk[i],Da.ep[i]),i,Da.ep[i]);
+ ANGLE_T endAngle = NormalizeAngle(GetTrkEndAngle(Da.trk[i],Da.ep[i])+180);
+ SetCornuEndPt(t,i,GetTrkEndPos(Da.trk[i],Da.ep[i]),Da.center[i],endAngle,Da.radius[i]);
+ }
+ if (Da.ep[i]>= 0)
+ ConnectTracks(t,i,Da.trk[i],Da.ep[i]);
+ }
+ }
+ UndoEnd();
+ MainRedraw();
+ MapRedraw();
+ Da.state = NONE;
+ //DYNARR_FREE(trkSeg_t,Da.crvSegs_da);
+ return C_TERMINATE;
+
+ case C_CANCEL:
+ InfoMessage(_("Modify Cornu Cancelled"));
+ Da.state = NONE;
+ //DYNARR_FREE(trkSeg_t,Da.crvSegs_da);
+ MainRedraw();
+ MapRedraw();
+ return C_TERMINATE;
+
+ case C_REDRAW:
+ return AdjustCornuCurve(C_REDRAW, pos, InfoMessage);
+ }
+
+ return C_CONTINUE;
+
+}
+
+/*
+ * Find length by adding up the underlying segments. The segments can be straights, curves or bezier.
+ */
+DIST_T CornuLength(coOrd pos[4],dynArr_t segs) {
+
+ DIST_T dd = 0.0;
+ if (segs.cnt == 0 ) return dd;
+ for (int i = 0;i<segs.cnt;i++) {
+ trkSeg_t t = DYNARR_N(trkSeg_t, segs, i);
+ if (t.type == SEG_CRVTRK || t.type == SEG_CRVLIN) {
+ dd += fabs(t.u.c.radius*D2R(t.u.c.a1));
+ } else if (t.type == SEG_BEZLIN || t.type == SEG_BEZTRK) {
+ dd +=CornuLength(t.u.b.pos,t.bezSegs);
+ } else if (t.type == SEG_STRLIN || t.type == SEG_STRTRK ) {
+ dd += FindDistance(t.u.l.pos[0],t.u.l.pos[1]);
+ }
+ }
+ return dd;
+}
+
+DIST_T CornuMinRadius(coOrd pos[4],dynArr_t segs) {
+ DIST_T r = 100000.0, rr;
+ if (segs.cnt == 0 ) return r;
+ for (int i = 0;i<segs.cnt;i++) {
+ trkSeg_t t = DYNARR_N(trkSeg_t, segs, i);
+ if (t.type == SEG_CRVTRK || t.type == SEG_CRVLIN) {
+ rr = fabs(t.u.c.radius);
+ } else if (t.type == SEG_BEZLIN || t.type == SEG_BEZTRK) {
+ rr = CornuMinRadius(t.u.b.pos, t.bezSegs);
+ } else rr = 100000.00;
+ if (rr<r) r = rr;
+ }
+ return r;
+}
+
+DIST_T CornuTotalWindingArc(coOrd pos[4],dynArr_t segs) {
+ DIST_T rr = 0;
+ if (segs.cnt == 0 ) return 0;
+ for (int i = 0;i<segs.cnt;i++) {
+ trkSeg_t t = DYNARR_N(trkSeg_t, segs, i);
+ if (t.type == SEG_CRVTRK || t.type == SEG_CRVLIN) {
+ rr += t.u.c.a1;
+ } else if (t.type == SEG_BEZLIN || t.type == SEG_BEZTRK) {
+ rr += CornuTotalWindingArc(t.u.b.pos, t.bezSegs);
+ }
+ }
+ return rr;
+}
+
+DIST_T CornuMaxRateofChangeofCurvature(coOrd pos[4], dynArr_t segs, DIST_T * last_c) {
+ DIST_T r_max = 0.0, rc, lc = 0;
+ lc = * last_c;
+ segProcData_t segProcData;
+ if (segs.cnt == 0 ) return r_max;
+ for (int i = 0;i<segs.cnt;i++) {
+ trkSeg_t t = DYNARR_N(trkSeg_t, segs, i);
+ if (t.type == SEG_FILCRCL) continue;
+ SegProc(SEGPROC_LENGTH,&t,&segProcData);
+ if (t.type == SEG_CRVTRK || t.type == SEG_CRVLIN) {
+ rc = fabs(1/t.u.c.radius - lc)/segProcData.length.length/2;
+ lc = 1/t.u.c.radius;
+ } else if (t.type == SEG_BEZLIN || t.type == SEG_BEZTRK) {
+ rc = CornuMaxRateofChangeofCurvature(t.u.b.pos, t.bezSegs,&lc); //recurse
+ } else {
+ rc = fabs(0-lc)/segProcData.length.length/2;
+ lc = 0;
+ }
+ if (rc>r_max) r_max = rc;
+ }
+ * last_c = lc;
+ return r_max;
+}
+
+/*
+ * Create a Cornu Curve Track
+ * Sequence is
+ * 1. Place 1st End
+ * 2. Place 2nd End
+ * 3 to n. Select and drag around points until done
+ * n+1. Confirm with enter or Cancel with Esc
+ */
+STATUS_T CmdCornu( wAction_t action, coOrd pos )
+{
+ track_p t;
+ cornuParm_t cp;
+
+ Da.color = lineColor;
+ Da.width = (double)lineWidth/mainD.dpi;
+
+ switch (action&0xFF) {
+
+ case C_START:
+ Da.state = NONE;
+ Da. selectPoint = -1;
+ for (int i=0;i<2;i++) {
+ Da.pos[i] = zero;
+ }
+ Da.trk[0] = Da.trk[1] = NULL;
+ //tempD.orig = mainD.orig;
+
+ DYNARR_RESET(trkSeg_t,Da.crvSegs_da);
+ Da.ep1Segs_da_cnt = 0;
+ Da.ep2Segs_da_cnt = 0;
+ Da.extend[0] = FALSE;
+ Da.extend[1] = FALSE;
+ if (selectedTrackCount==0)
+ InfoMessage( _("Left click - join with Cornu track") );
+ else
+ InfoMessage( _("Left click - join with Cornu track, Shift Left click - move to join") );
+ return C_CONTINUE;
+
+ case C_DOWN:
+ if ( Da.state == NONE || Da.state == LOC_2) { //Set the first or second point
+ coOrd p = pos;
+ int end = Da.state==NONE?0:1;
+ EPINX_T ep;
+ if ((t = OnTrack(&p, FALSE, TRUE)) != NULL) {
+ if (QueryTrack(t,Q_HAS_VARIABLE_ENDPOINTS)) { //Circle/Helix find if there is an open slot and where
+ if ((GetTrkEndTrk(t,0) != NULL) && (GetTrkEndTrk(t,1) != NULL)) {
+ InfoMessage(_("Helix Already Connected"));
+ return C_CONTINUE;
+ }
+ ep = -1; //Not a real ep yet
+ } else ep = PickUnconnectedEndPointSilent(p, t);
+ if (ep>=0 && QueryTrack(t,Q_CAN_ADD_ENDPOINTS)) ep=-1; //Ignore Turntable Unconnected
+ else if (ep==-1 && (!QueryTrack(t,Q_CAN_ADD_ENDPOINTS) && !QueryTrack(t,Q_HAS_VARIABLE_ENDPOINTS))) { //No endpoints and not Turntable or Helix/Circle
+ wBeep();
+ InfoMessage(_("No Unconnected end point on that track"));
+ return C_CONTINUE;
+ }
+ Da.trk[end] = t;
+ Da.ep[end] = ep; // Note: -1 for Turntable or Circle
+ if (ep ==-1) pos = p;
+ else pos = GetTrkEndPos(t,ep);
+ Da.pos[end] = pos;
+ InfoMessage( _("Place 2nd end point of Cornu track on track with an unconnected end-point") );
+ } else {
+ wBeep();
+ InfoMessage(_("No Unconnected Track End there"));
+ return C_CONTINUE;
+ }
+ if (Da.state == NONE) {
+ if (!GetConnectedTrackParms(t, pos, 0, Da.ep[0])) {
+ Da.trk[0] = NULL;
+ return C_CONTINUE;
+ }
+ Da.state = POS_1;
+ Da.selectPoint = 0;
+ Da.ep1Segs_da_cnt = createEndPoint(Da.ep1Segs, Da.pos[0], FALSE, !QueryTrack(Da.trk[0],Q_IS_CORNU),QueryTrack(Da.trk[0],Q_CORNU_CAN_MODIFY));
+ DrawCornuCurve(NULL,Da.ep1Segs,Da.ep1Segs_da_cnt,NULL,0,NULL,0,NULL,NULL,NULL,drawColorBlack);
+ InfoMessage( _("Move 1st end point of Cornu track along track 1") );
+ } else {
+ if ( Da.trk[0] == t) {
+ ErrorMessage( MSG_JOIN_CORNU_SAME );
+ Da.trk[1] = NULL;
+ return C_CONTINUE;
+ }
+ if (!GetConnectedTrackParms(t, pos, 1, Da.ep[1])) {
+ Da.trk[1] = NULL; //Turntable Fail
+ return C_CONTINUE;
+ }
+ CorrectHelixAngles();
+ Da.selectPoint = 1;
+ Da.state = POINT_PICKED;
+ DrawCornuCurve(NULL,Da.ep1Segs,Da.ep1Segs_da_cnt,NULL,0,NULL,0,NULL,NULL,NULL,drawColorBlack); //Wipe out initial Arm
+ CreateBothEnds(1);
+ if (CallCornu(Da.pos,Da.trk,Da.ep,&Da.crvSegs_da, &cp))
+ Da.crvSegs_da_cnt = Da.crvSegs_da.cnt;
+ DrawTempCornu();
+ InfoMessage( _("Move 2nd end point of Cornu track along track 2") );
+ }
+ return C_CONTINUE;
+ } else {
+ return AdjustCornuCurve( action&0xFF, pos, InfoMessage );
+ }
+ return C_CONTINUE;
+
+ case C_MOVE:
+ if (Da.state == NONE) {
+ InfoMessage("Place 1st end point of Cornu track on unconnected end-point");
+ return C_CONTINUE;
+ }
+ if (Da.state == POS_1) {
+ EPINX_T ep = 0;
+ BOOL_T found = FALSE;
+ int end = Da.state==POS_1?0:1;
+ if(!QueryTrack(Da.trk[0],Q_CORNU_CAN_MODIFY) && !QueryTrack(Da.trk[0],Q_CAN_ADD_ENDPOINTS)) {
+ InfoMessage(_("Can't Split - Locked to End Point"));
+ return C_CONTINUE;
+ }
+ if (Da.trk[0] != OnTrack(&pos, FALSE, TRUE)) {
+ wBeep();
+ InfoMessage(_("Point not on track 1"));
+ Da.state = POS_1;
+ Da.selectPoint = 1;
+ return C_CONTINUE;
+ }
+ t = Da.trk[0];
+ DrawCornuCurve(NULL,Da.ep1Segs,Da.ep1Segs_da_cnt,NULL,0,NULL,0,NULL,NULL,NULL,drawColorBlack);
+ if (!GetConnectedTrackParms(t, pos, ep, Da.ep[ep])) {
+ Da.state = POS_1;
+ Da.selectPoint = 1;
+ return C_CONTINUE;
+ }
+ Da.pos[ep] = pos;
+ Da.ep1Segs_da_cnt = createEndPoint(Da.ep1Segs, Da.pos[0],TRUE,!QueryTrack(Da.trk[0],Q_IS_CORNU),QueryTrack(Da.trk[0],Q_CORNU_CAN_MODIFY));
+ DrawCornuCurve(NULL,Da.ep1Segs,Da.ep1Segs_da_cnt,NULL,0,NULL,0,NULL,NULL,NULL,drawColorBlack);
+ } else {
+ return AdjustCornuCurve( action&0xFF, pos, InfoMessage );
+ }
+ return C_CONTINUE;
+
+ case C_UP:
+ if (Da.state == POS_1 && Da.trk[0]) {
+ DrawCornuCurve(NULL,Da.ep1Segs,Da.ep1Segs_da_cnt,NULL,0,NULL,0,NULL,NULL,NULL,drawColorBlack);
+ Da.state = LOC_2;
+ InfoMessage( _("Put other end of Cornu on a track with an unconnected end point") );
+ Da.ep1Segs_da_cnt = createEndPoint(Da.ep1Segs, Da.pos[0], FALSE,!QueryTrack(Da.trk[0],Q_IS_CORNU),QueryTrack(Da.trk[0],Q_CORNU_CAN_MODIFY));
+ DrawCornuCurve(NULL,Da.ep1Segs,Da.ep1Segs_da_cnt,NULL,0,NULL,0,NULL,NULL,NULL,drawColorBlack);
+ return C_CONTINUE;
+ } else {
+ return AdjustCornuCurve( action&0xFF, pos, InfoMessage );
+ }
+ case C_TEXT:
+ if (Da.state != PICK_POINT || (action>>8) != 32) //Space is same as Enter.
+ return C_CONTINUE;
+ /* no break */
+ case C_OK:
+ if (Da.state != PICK_POINT) return C_CONTINUE;
+ return AdjustCornuCurve( C_OK, pos, InfoMessage);
+
+ case C_REDRAW:
+ if ( Da.state != NONE ) {
+ DrawCornuCurve(NULL,Da.ep1Segs,Da.ep1Segs_da_cnt,Da.ep2Segs,Da.ep2Segs_da_cnt,(trkSeg_t *)Da.crvSegs_da.ptr,Da.crvSegs_da.cnt, NULL, &Da.extendSeg[0],&Da.extendSeg[1],Da.color);
+ }
+ return C_CONTINUE;
+
+ case C_CANCEL:
+ if (Da.state != NONE) {
+ DrawCornuCurve(NULL,Da.ep1Segs,Da.ep1Segs_da_cnt,Da.ep2Segs,Da.ep2Segs_da_cnt,(trkSeg_t *)Da.crvSegs_da.ptr,Da.crvSegs_da.cnt, NULL, &Da.extendSeg[0],&Da.extendSeg[1],Da.color);
+ Da.ep1Segs_da_cnt = 0;
+ Da.ep2Segs_da_cnt = 0;
+ Da.crvSegs_da_cnt = 0;
+ for (int i=0;i<2;i++) {
+ Da.radius[i] = 0.0;
+ Da.angle[i] = 0.0;
+ Da.center[i] = zero;
+ Da.trk[i] = NULL;
+ Da.ep[i] = -1;
+ Da.pos[i] = zero;
+ }
+ //DYNARR_FREE(trkSeg_t,Da.crvSegs_da);
+ }
+ Da.state = NONE;
+ return C_CONTINUE;
+
+ default:
+
+ return C_CONTINUE;
+ }
+
+}
+
+
+EXPORT void InitCmdCornu( wMenu_p menu )
+{
+
+}
diff --git a/app/bin/ccornu.h b/app/bin/ccornu.h
new file mode 100644
index 0000000..a11e713
--- /dev/null
+++ b/app/bin/ccornu.h
@@ -0,0 +1,23 @@
+/*
+ * ccornu.h
+ *
+ * Created on: May 28, 2017
+ * Author: richardsa
+ */
+
+#ifndef APP_BIN_CCORNU_H_
+#define APP_BIN_CCORNU_H_
+
+
+typedef void (*cornuMessageProc)( char *, ... );
+
+
+#endif /* APP_BIN_CCORNU_H_ */
+
+STATUS_T CmdCornu( wAction_t action, coOrd pos );
+DIST_T CornuMinRadius(coOrd pos[4],dynArr_t segs);
+DIST_T CornuMaxRateofChangeofCurvature(coOrd pos[4],dynArr_t segs,DIST_T * last_c);
+DIST_T CornuLength(coOrd pos[4],dynArr_t segs);
+DIST_T CornuTotalWindingArc(coOrd pos[4],dynArr_t segs);
+
+STATUS_T CmdCornuModify (track_p trk, wAction_t action, coOrd pos);
diff --git a/app/bin/ccurve.c b/app/bin/ccurve.c
index b284669..58bb5c1 100644
--- a/app/bin/ccurve.c
+++ b/app/bin/ccurve.c
@@ -1,8 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/ccurve.c,v 1.4 2008-03-06 19:35:04 m_fischer Exp $
- *
+/** \file ccurve.c
* CURVE
- *
*/
/* XTrkCad - Model Railroad CAD
@@ -23,12 +20,25 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "track.h"
+#include <math.h>
+#include <string.h>
+
#include "ccurve.h"
-#include "cstraigh.h"
+
#include "cjoin.h"
+#include "cstraigh.h"
+#include "cundo.h"
+#include "custom.h"
+#include "fileio.h"
#include "i18n.h"
+#include "messages.h"
+#include "param.h"
+#include "param.h"
+#include "track.h"
+#include "utility.h"
+#include "wlib.h"
+#include "cbezier.h"
/*
* STATE INFO
@@ -39,12 +49,15 @@ static struct {
coOrd pos0;
coOrd pos1;
curveData_t curveData;
+ track_p trk;
+ EPINX_T ep;
+ BOOL_T down;
} Da;
static long curveMode;
-static void DrawArrowHeads(
+EXPORT void DrawArrowHeads(
trkSeg_p sp,
coOrd pos,
ANGLE_T angle,
@@ -89,26 +102,34 @@ EXPORT STATUS_T CreateCurve(
long mode,
curveMessageProc message )
{
+ track_p t;
DIST_T d;
- ANGLE_T a;
- static coOrd pos0;
+ ANGLE_T a, angle1, angle2;
+ static coOrd pos0, p;
int inx;
switch ( action ) {
case C_START:
DYNARR_SET( trkSeg_t, tempSegs_da, 8 );
+ Da.down = FALSE; //Not got a valid start yet
switch ( curveMode ) {
case crvCmdFromEP1:
- InfoMessage( _("Drag from End-Point in direction of curve") );
+ if (track)
+ message(_("Drag from End-Point in direction of curve - Shift locks to track open end-point") );
+ else
+ message (_("Drag from End-Point in direction of curve") );
break;
case crvCmdFromTangent:
- InfoMessage( _("Drag from End-Point to Center") );
+ if (track)
+ message(_("Drag from End-Point to Center - Shift locks to track open end-point") );
+ else
+ message(_("Drag from End-Point to Center") );
break;
case crvCmdFromCenter:
- InfoMessage( _("Drag from Center to End-Point") );
+ message(_("Drag from Center to End-Point") );
break;
case crvCmdFromChord:
- InfoMessage( _("Drag to other end of chord") );
+ message(_("Drag from one to other end of chord") );
break;
}
return C_CONTINUE;
@@ -118,14 +139,40 @@ EXPORT STATUS_T CreateCurve(
tempSegs(inx).width = 0;
}
tempSegs_da.cnt = 0;
- SnapPos( &pos );
+ p = pos;
+ BOOL_T found = FALSE;
+ Da.trk = NULL;
+ if ((mode == crvCmdFromEP1 || mode == crvCmdFromTangent) && track && (MyGetKeyState() & WKEY_SHIFT) != 0) {
+ if ((t = OnTrack(&p, FALSE, TRUE)) != NULL) {
+ EPINX_T ep = PickUnconnectedEndPointSilent(p, t);
+ if (ep != -1) {
+ Da.trk = t;
+ Da.ep = ep;
+ pos = GetTrkEndPos(t, ep);
+ found = TRUE;
+ } else {
+ Da.pos0=pos;
+ message(_("No unconnected end-point on track - Try again or release Shift and click"));
+ return C_CONTINUE;
+ }
+ } else {
+ Da.pos0=pos;
+ message(_("Not on a track - Try again or release Shift and click"));
+ return C_CONTINUE;
+ }
+ Da.down = TRUE;
+ }
+ Da.down = TRUE;
+ if (!found) SnapPos( &pos );
pos0 = pos;
+ Da.pos0 = pos;
switch (mode) {
case crvCmdFromEP1:
tempSegs(0).type = (track?SEG_STRTRK:SEG_STRLIN);
tempSegs(0).color = color;
tempSegs(0).width = width;
- message( _("Drag to set angle") );
+ if (Da.trk) message(_("End Locked: Drag out curve start"));
+ else message(_("Drag along curve start") );
break;
case crvCmdFromTangent:
case crvCmdFromCenter:
@@ -135,12 +182,14 @@ EXPORT STATUS_T CreateCurve(
tempSegs(1).u.c.a0 = 0;
tempSegs(1).u.c.a1 = 360;
tempSegs(2).type = SEG_STRLIN;
- message( mode==crvCmdFromTangent?_("Drag from End-Point to Center"):_("Drag from Center to End-Point") );
+ if (Da.trk && mode==crvCmdFromTangent) message(_("End Locked: Drag out to center"));
+ else
+ message( mode==crvCmdFromTangent?_("Drag from End-Point to Center"):_("Drag from Center to End-Point") );
break;
case crvCmdFromChord:
tempSegs(0).type = (track?SEG_STRTRK:SEG_STRLIN);
tempSegs(0).color = color;
- tempSegs(0).width = width;
+ tempSegs(0).width = width;
message( _("Drag to other end of chord") );
break;
}
@@ -148,16 +197,34 @@ EXPORT STATUS_T CreateCurve(
return C_CONTINUE;
case C_MOVE:
+ if (!Da.down) return C_CONTINUE;
+ if (Da.trk) {
+ angle1 = NormalizeAngle(GetTrkEndAngle(Da.trk, Da.ep));
+ angle2 = NormalizeAngle(FindAngle(pos, pos0)-angle1);
+ if (mode ==crvCmdFromEP1) {
+ if (angle2 > 90.0 && angle2 < 270.0)
+ Translate( &pos, pos0, angle1, -FindDistance( pos0, pos )*cos(D2R(angle2)) );
+ else pos = pos0;
+ } else {
+ DIST_T dp = -FindDistance(pos0, pos)*sin(D2R(angle2));
+ if (angle2 > 180.0)
+ Translate( &pos, pos0, angle1+90.0, dp );
+ else
+ Translate( &pos, pos0, angle1-90.0, dp );
+ }
+ } else SnapPos(&pos);
tempSegs(0).u.l.pos[1] = pos;
d = FindDistance( pos0, pos );
a = FindAngle( pos0, pos );
switch ( mode ) {
case crvCmdFromEP1:
- message( _("Angle=%0.3f"), PutAngle(a) );
+ if (Da.trk) message( _("Start Locked: Drag out curve start - Angle=%0.3f"), PutAngle(a));
+ else message( _("Drag out curve start - Angle=%0.3f"), PutAngle(a) );
tempSegs_da.cnt = 1;
break;
case crvCmdFromTangent:
- message( _("Radius=%s Angle=%0.3f"), FormatDistance(d), PutAngle(a) );
+ if (Da.trk) message( _("Tangent Locked: Drag out center - Radius=%s Angle=%0.3f"), FormatDistance(d), PutAngle(a) );
+ else message( _("Drag out center - Radius=%s Angle=%0.3f"), FormatDistance(d), PutAngle(a) );
tempSegs(1).u.c.center = pos;
DrawArrowHeads( &tempSegs(2), pos0, FindAngle(pos0,pos)+90, TRUE, wDrawColorBlack );
tempSegs_da.cnt = 7;
@@ -181,10 +248,30 @@ EXPORT STATUS_T CreateCurve(
break;
}
return C_CONTINUE;
-
case C_UP:
+ if (!Da.down) return C_CONTINUE;
+ if (Da.trk) {
+ angle1 = NormalizeAngle(GetTrkEndAngle(Da.trk, Da.ep));
+ angle2 = NormalizeAngle(FindAngle(pos, pos0)-angle1);
+ if (mode == crvCmdFromEP1) {
+ if (angle2 > 90.0 && angle2 < 270.0) {
+ Translate( &pos, pos0, angle1, -FindDistance( pos0, pos )*cos(D2R(angle2)) );
+ Da.pos1 = pos;
+ } else {
+ ErrorMessage( MSG_TRK_TOO_SHORT, "Curved ", PutDim(0.0) );
+ return C_TERMINATE;
+ }
+ } else {
+ DIST_T dp = -FindDistance(pos0, pos)*sin(D2R(angle2));
+ if (angle2 > 180.0)
+ Translate( &pos, pos0, angle1+90.0, dp );
+ else
+ Translate( &pos, pos0, angle1-90.0, dp );
+ Da.pos1 = pos;
+ }
+ }
switch (mode) {
- case crvCmdFromEP1:
+ case crvCmdFromEP1:
DrawArrowHeads( &tempSegs(1), pos, FindAngle(pos,pos0)+90, TRUE, drawColorRed );
tempSegs_da.cnt = 6;
break;
@@ -221,7 +308,9 @@ static STATUS_T CmdCurve( wAction_t action, coOrd pos )
case C_START:
curveMode = (long)commandContext;
Da.state = -1;
+ Da.pos0 = pos;
tempSegs_da.cnt = 0;
+ STATUS_T rcode;
return CreateCurve( action, pos, TRUE, wDrawColorBlack, 0, curveMode, InfoMessage );
case C_TEXT:
@@ -232,25 +321,29 @@ static STATUS_T CmdCurve( wAction_t action, coOrd pos )
case C_DOWN:
if ( Da.state == -1 ) {
- SnapPos( &pos );
+ //SnapPos( &pos );
Da.pos0 = pos;
Da.state = 0;
- return CreateCurve( action, pos, TRUE, wDrawColorBlack, 0, curveMode, InfoMessage );
+ rcode = CreateCurve( action, pos, TRUE, wDrawColorBlack, 0, curveMode, InfoMessage );
+ if (!Da.down) Da.state = -1;
+ return rcode;
+ //Da.pos0 = pos;
} else {
tempSegs_da.cnt = segCnt;
return C_CONTINUE;
}
case C_MOVE:
+ if (Da.state<0) return C_CONTINUE;
mainD.funcs->options = wDrawOptTemp;
DrawSegs( &mainD, zero, 0.0, &tempSegs(0), tempSegs_da.cnt, trackGauge, wDrawColorBlack );
if ( Da.state == 0 ) {
- SnapPos( &pos );
- Da.pos1 = pos;
+ Da.pos1 = pos;
rc = CreateCurve( action, pos, TRUE, wDrawColorBlack, 0, curveMode, InfoMessage );
} else {
- SnapPos( &pos );
- PlotCurve( curveMode, Da.pos0, Da.pos1, pos, &Da.curveData, TRUE );
+ // SnapPos( &pos );
+ if (Da.trk) PlotCurve( curveMode, Da.pos0, Da.pos1, pos, &Da.curveData, FALSE );
+ else PlotCurve( curveMode, Da.pos0, Da.pos1, pos, &Da.curveData, TRUE );
if (Da.curveData.type == curveTypeStraight) {
tempSegs(0).type = SEG_STRTRK;
tempSegs(0).u.l.pos[0] = Da.pos0;
@@ -290,6 +383,7 @@ static STATUS_T CmdCurve( wAction_t action, coOrd pos )
case C_UP:
+ if (Da.state<0) return C_CONTINUE;
mainD.funcs->options = wDrawOptTemp;
DrawSegs( &mainD, zero, 0.0, &tempSegs(0), tempSegs_da.cnt, trackGauge, wDrawColorBlack );
if (Da.state == 0) {
@@ -313,6 +407,10 @@ static STATUS_T CmdCurve( wAction_t action, coOrd pos )
}
UndoStart( _("Create Straight Track"), "newCurve - straight" );
t = NewStraightTrack( Da.pos0, Da.curveData.pos1 );
+ if (Da.trk) {
+ EPINX_T ep = PickUnconnectedEndPoint(Da.pos0, t);
+ if (ep != -1) ConnectTracks(Da.trk, Da.ep, t, ep);
+ }
UndoEnd();
} else if (Da.curveData.type == curveTypeCurve) {
if ((d= Da.curveData.curveRadius * Da.curveData.a1 *2.0*M_PI/360.0) <= minLength) {
@@ -322,6 +420,10 @@ static STATUS_T CmdCurve( wAction_t action, coOrd pos )
UndoStart( _("Create Curved Track"), "newCurve - curve" );
t = NewCurvedTrack( Da.curveData.curvePos, Da.curveData.curveRadius,
Da.curveData.a0, Da.curveData.a1, 0 );
+ if (Da.trk) {
+ EPINX_T ep = PickUnconnectedEndPoint(Da.pos0, t);
+ if (ep != -1) ConnectTracks(Da.trk, Da.ep, t, ep);
+ }
UndoEnd();
} else {
return C_ERROR;
@@ -344,6 +446,7 @@ static STATUS_T CmdCurve( wAction_t action, coOrd pos )
DrawSegs( &mainD, zero, 0.0, &tempSegs(0), tempSegs_da.cnt, trackGauge, wDrawColorBlack );
mainD.funcs->options = 0;
tempSegs_da.cnt = 0;
+ Da.trk = NULL;
}
Da.state = -1;
return C_CONTINUE;
@@ -381,12 +484,12 @@ static void ComputeHelix( paramGroup_p, int, void * );
static paramFloatRange_t r0_360 = { 0, 360 };
static paramFloatRange_t r0_1000000 = { 0, 1000000 };
static paramIntegerRange_t i1_1000000 = { 1, 1000000 };
-static paramFloatRange_t r1_1000000 = { 1, 1000000 };
+static paramFloatRange_t r1_10000 = { 1, 10000 };
static paramFloatRange_t r0_100= { 0, 100 };
static paramData_t helixPLs[] = {
{ PD_FLOAT, &helixElev, "elev", PDO_DIM, &r0_1000000, N_("Elevation Difference") },
- { PD_FLOAT, &helixRadius, "radius", PDO_DIM, &r1_1000000, N_("Radius") },
+ { PD_FLOAT, &helixRadius, "radius", PDO_DIM, &r1_10000, N_("Radius") },
{ PD_LONG, &helixTurns, "turns", 0, &i1_1000000, N_("Turns") },
{ PD_FLOAT, &helixAngSep, "angSep", 0, &r0_360, N_("Angular Separation") },
{ PD_FLOAT, &helixGrade, "grade", 0, &r0_100, N_("Grade") },
@@ -396,7 +499,7 @@ static paramData_t helixPLs[] = {
static paramGroup_t helixPG = { "helix", PGO_PREFMISCGROUP, helixPLs, sizeof helixPLs/sizeof helixPLs[0] };
static paramData_t circleRadiusPLs[] = {
- { PD_FLOAT, &circleRadius, "radius", PDO_DIM, &r1_1000000 } };
+ { PD_FLOAT, &circleRadius, "radius", PDO_DIM, &r1_10000 } };
static paramGroup_t circleRadiusPG = { "circle", 0, circleRadiusPLs, sizeof circleRadiusPLs/sizeof circleRadiusPLs[0] };
@@ -604,7 +707,19 @@ static STATUS_T CmdCircleCommon( wAction_t action, coOrd pos, BOOL_T helix )
case C_UP:
DrawSegs( &tempD, zero, 0.0, &tempSegs(0), tempSegs_da.cnt, trackGauge, wDrawColorBlack );
+ if (helixRadius > mapD.size.x && helixRadius > mapD.size.y) {
+ ErrorMessage( MSG_RADIUS_TOO_BIG );
+ return C_ERROR;
+ }
+ if (circleRadius > mapD.size.x && circleRadius > mapD.size.y) {
+ ErrorMessage( MSG_RADIUS_TOO_BIG );
+ return C_ERROR;
+ }
if ( helix ) {
+ if (helixRadius > 10000) {
+ ErrorMessage( MSG_RADIUS_GTR_10000 );
+ return C_ERROR;
+ }
UndoStart( _("Create Helix Track"), "newHelix" );
t = NewCurvedTrack( tempSegs(0).u.c.center, helixRadius, 0.0, 0.0, helixTurns );
} else {
@@ -612,6 +727,10 @@ static STATUS_T CmdCircleCommon( wAction_t action, coOrd pos, BOOL_T helix )
ErrorMessage( MSG_RADIUS_GTR_0 );
return C_ERROR;
}
+ if ((circleRadius > 100000) || (helixRadius > 10000)) {
+ ErrorMessage( MSG_RADIUS_GTR_10000 );
+ return C_ERROR;
+ }
UndoStart( _("Create Circle Track"), "newCircle" );
t = NewCurvedTrack( tempSegs(0).u.c.center, circleRadius, 0.0, 0.0, 0 );
}
@@ -655,56 +774,15 @@ static STATUS_T CmdHelix( wAction_t action, coOrd pos )
return CmdCircleCommon( action, pos, TRUE );
}
-#ifdef LATER
-static struct {
- coOrd pos;
- DIST_T radius;
- } Dc2;
-
-
-static STATUS_T CmdCircle2( wAction_t action, coOrd pos )
-{
-
- switch (action) {
-
- case C_START:
- InfoMessage( _("Place circle center") );
- return C_CONTINUE;
-
- case C_DOWN:
- Dc2.pos = pos;
- InfoMessage( _("Drag to set radius") );
- return C_CONTINUE;
-
- case C_MOVE:
- dc2.radius = ConstrainR( FindDistance( Dc2.pos, pos ) );
- InfoMessage( "%s", FormatDistance(dc2.radius) );
- return C_CONTINUE;
-
- case C_UP:
- curCommand = cmdCircle;
- InfoMessage( _("Place circle") );
- return C_CONTINUE;
-
- default:
- return C_CONTINUE;
- }
-}
-#endif
-
-
-
-#include "bitmaps/helix.xpm"
#include "bitmaps/curve1.xpm"
#include "bitmaps/curve2.xpm"
#include "bitmaps/curve3.xpm"
#include "bitmaps/curve4.xpm"
+#include "bitmaps/bezier.xpm"
#include "bitmaps/circle1.xpm"
#include "bitmaps/circle2.xpm"
#include "bitmaps/circle3.xpm"
-
-
EXPORT void InitCmdCurve( wMenu_p menu )
{
@@ -713,6 +791,7 @@ EXPORT void InitCmdCurve( wMenu_p menu )
AddMenuButton( menu, CmdCurve, "cmdCurveTangent", _("Curve from Tangent"), wIconCreatePixMap( curve2_xpm ), LEVEL0_50, IC_STICKY|IC_POPUP2, ACCL_CURVE2, (void*)1 );
AddMenuButton( menu, CmdCurve, "cmdCurveCenter", _("Curve from Center"), wIconCreatePixMap( curve3_xpm ), LEVEL0_50, IC_STICKY|IC_POPUP2, ACCL_CURVE3, (void*)2 );
AddMenuButton( menu, CmdCurve, "cmdCurveChord", _("Curve from Chord"), wIconCreatePixMap( curve4_xpm ), LEVEL0_50, IC_STICKY|IC_POPUP2, ACCL_CURVE4, (void*)3 );
+ AddMenuButton( menu, CmdBezCurve, "cmdBezier", _("Bezier Curve"), wIconCreatePixMap(bezier_xpm), LEVEL0_50, IC_STICKY|IC_POPUP2, ACCL_BEZIER, (void*)bezCmdCreateTrack );
ButtonGroupEnd();
ButtonGroupBegin( _("Circle Track"), "cmdCurveSetCmd", _("Circle Tracks") );
@@ -726,10 +805,18 @@ EXPORT void InitCmdCurve( wMenu_p menu )
}
-EXPORT void InitCmdHelix( wMenu_p menu )
-{
- AddMenuButton( menu, CmdHelix, "cmdHelix", _("Helix"), wIconCreatePixMap(helix_xpm), LEVEL0_50, IC_STICKY|IC_POPUP2, ACCL_HELIX, NULL );
- ParamRegister( &helixPG );
- RegisterChangeNotification( ChangeHelixW );
+/**
+* Append the helix command to the pulldown menu. The helix doesn't use an icon, so it is only
+* available through the pulldown
+*
+* \param varname1 IN pulldown menu
+* \return
+*/
+void InitCmdHelix(wMenu_p menu)
+{
+ AddMenuButton(menu, CmdHelix, "cmdHelix", _("Helix"), NULL, LEVEL0_50,
+ IC_STICKY|IC_POPUP2, ACCL_HELIX, NULL);
+ ParamRegister(&helixPG);
+ RegisterChangeNotification(ChangeHelixW);
}
diff --git a/app/bin/ccurve.h b/app/bin/ccurve.h
index 1b2c7f6..c9d1c8c 100644
--- a/app/bin/ccurve.h
+++ b/app/bin/ccurve.h
@@ -1,5 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/ccurve.h,v 1.1 2005-12-07 15:47:36 rc-flyer Exp $
+/** \file ccurve.h
+ * Definitions for curve commands
*/
/* XTrkCad - Model Railroad CAD
@@ -20,6 +20,13 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#ifndef HAVE_CCURVE_H
+#define HAVE_CCURVE_H
+
+#include "draw.h"
+#include "track.h"
+#include "wlib.h"
+#include "utility.h"
typedef struct {
curveType_e type;
@@ -27,12 +34,14 @@ typedef struct {
coOrd pos1;
DIST_T curveRadius;
ANGLE_T a0, a1;
+ BOOL_T negative;
} curveData_t;
#define crvCmdFromEP1 (0)
#define crvCmdFromTangent (1)
#define crvCmdFromCenter (2)
#define crvCmdFromChord (3)
+#define crvCmdFromCornu (4)
#define circleCmdFixedRadius (0)
#define circleCmdFromTangent (1)
@@ -45,4 +54,7 @@ void PlotCurve( long, coOrd, coOrd, coOrd, curveData_t *, BOOL_T );
track_p NewCurvedTrack( coOrd, DIST_T, ANGLE_T, ANGLE_T, long );
DIST_T CurveDescriptionDistance( coOrd, track_p );
STATUS_T CurveDescriptionMove( track_p, wAction_t, coOrd );
-BOOL_T GetCurveMiddle( track_p, coOrd * );
+BOOL_T GetCurveMiddle( track_p , coOrd * );
+void DrawArrowHeads(trkSeg_p sp, coOrd pos, ANGLE_T angle, BOOL_T bidirectional, wDrawColor color );
+
+#endif // !HAVE_CCURVE_H
diff --git a/app/bin/cdraw.c b/app/bin/cdraw.c
index efdb51a..418f32a 100644
--- a/app/bin/cdraw.c
+++ b/app/bin/cdraw.c
@@ -20,12 +20,22 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "track.h"
+#include <math.h>
+#include <stdint.h>
+#include <string.h>
+
#include "ccurve.h"
+#include "cbezier.h"
#include "drawgeom.h"
+#include "fileio.h"
#include "i18n.h"
+#include "messages.h"
+#include "param.h"
+#include "track.h"
+#include "utility.h"
+#include "misc.h"
-#include <stdint.h>
+extern TRKTYP_T T_BZRLIN;
extern void wSetSelectedFontSize(int size);
@@ -200,14 +210,15 @@ static struct {
wIndex_t dimenSize;
descPivot_t pivot;
wIndex_t fontSizeInx;
- char text[STR_SIZE];
- LAYER_T layer;
+ char text[STR_LONG_SIZE];
+ unsigned int layer;
+ char polyType[STR_SIZE];
} drawData;
-typedef enum { E0, E1, CE, RA, LN, AL, A1, A2, VC, LW, CO, BE, OR, DS, TP, TA, TS, TX, PV, LY } drawDesc_e;
+typedef enum { E0, E1, CE, RA, LN, AL, A1, A2, VC, LW, CO, BE, OR, DS, TP, TA, TS, TX, PV, LY, PT } drawDesc_e;
static descData_t drawDesc[] = {
-/*E0*/ { DESC_POS, N_("End Pt 1: X"), &drawData.endPt[0] },
-/*E1*/ { DESC_POS, N_("End Pt 2: X"), &drawData.endPt[1] },
-/*CE*/ { DESC_POS, N_("Center: X"), &drawData.center },
+/*E0*/ { DESC_POS, N_("End Pt 1: X,Y"), &drawData.endPt[0] },
+/*E1*/ { DESC_POS, N_("End Pt 2: X,Y"), &drawData.endPt[1] },
+/*CE*/ { DESC_POS, N_("Center: X,Y"), &drawData.center },
/*RA*/ { DESC_DIM, N_("Radius"), &drawData.radius },
/*LN*/ { DESC_DIM, N_("Length"), &drawData.length },
/*AL*/ { DESC_FLOAT, N_("Angle"), &drawData.angle },
@@ -219,12 +230,13 @@ static descData_t drawDesc[] = {
/*BE*/ { DESC_LIST, N_("Lumber"), &drawData.benchChoice },
/*OR*/ { DESC_LIST, N_("Orientation"), &drawData.benchOrient },
/*DS*/ { DESC_LIST, N_("Size"), &drawData.dimenSize },
-/*TP*/ { DESC_POS, N_("Origin: X"), &drawData.endPt[0] },
+/*TP*/ { DESC_POS, N_("Origin: X,Y"), &drawData.endPt[0] },
/*TA*/ { DESC_FLOAT, N_("Angle"), &drawData.angle },
/*TS*/ { DESC_EDITABLELIST, N_("Font Size"), &drawData.fontSizeInx },
-/*TX*/ { DESC_STRING, N_("Text"), &drawData.text },
+/*TX*/ { DESC_TEXT, N_("Text"), &drawData.text },
/*PV*/ { DESC_PIVOT, N_("Pivot"), &drawData.pivot },
/*LY*/ { DESC_LAYER, N_("Layer"), &drawData.layer },
+/*PT*/ { DESC_STRING, N_("Type"), &drawData.polyType },
{ DESC_NULL } };
int drawSegInx;
@@ -241,14 +253,15 @@ static void UpdateDraw( track_p trk, int inx, descData_p descUpd, BOOL_T final )
struct extraData *xx = GetTrkExtraData(trk);
trkSeg_p segPtr;
coOrd mid;
- const char * text;
long fontSize;
if ( drawSegInx==-1 )
return;
- if ( inx == -1 )
- return;
segPtr = &xx->segs[drawSegInx];
+ if ( inx == -1 ) {
+ if (segPtr->type != SEG_TEXT) return;
+ else inx = TX; //Always look at TextField for SEG_TEXT on "Done"
+ }
MainRedraw();
MapRedraw();
UndrawNewTrack( trk );
@@ -286,7 +299,7 @@ static void UpdateDraw( track_p trk, int inx, descData_p descUpd, BOOL_T final )
if ( segPtr->type != SEG_CRVLIN ) {
drawData.length = FindDistance( drawData.endPt[0], drawData.endPt[1] );
} else {
- drawData.length = segPtr->u.c.radius*2*M_PI*segPtr->u.c.a1/360.0;
+ drawData.length = fabs(segPtr->u.c.radius)*2*M_PI*segPtr->u.c.a1/360.0;
}
drawDesc[LN].mode |= DESC_CHANGE;
break;
@@ -375,12 +388,14 @@ static void UpdateDraw( track_p trk, int inx, descData_p descUpd, BOOL_T final )
segPtr->u.t.fontSize = fontSize;
break;
case TX:
- text = wStringGetValue( (wString_p)drawDesc[TX].control0 );
- if ( text && text[0] && strcmp( segPtr->u.t.string, text ) != 0 ) {
+ if ( wTextGetModified((wText_p)drawDesc[TX].control0 )) {
+ int len = wTextGetSize((wText_p)drawDesc[TX].control0);
MyFree( segPtr->u.t.string );
- segPtr->u.t.string = MyStrdup( text );
- /*(char*)drawDesc[TX].valueP = segPtr->u.t.string;*/
+ segPtr->u.t.string = (char *)MyMalloc(len+1);
+ wTextGetText((wText_p)drawDesc[TX].control0, segPtr->u.t.string, len+1);
+ segPtr->u.t.string[len] = '\0'; //Make sure of null term
}
+
break;
case LY:
SetTrkLayer( trk, drawData.layer);
@@ -400,6 +415,7 @@ static void DescribeDraw( track_p trk, char * str, CSIZE_T len )
trkSeg_p segPtr;
int inx;
char * title = NULL;
+ char * polyType = NULL;
DistanceSegs( xx->orig, xx->angle, xx->segCnt, xx->segs, &pos, &drawSegInx );
@@ -462,7 +478,7 @@ static void DescribeDraw( track_p trk, char * str, CSIZE_T len )
break;
case SEG_CRVLIN:
REORIGIN( drawData.center, segPtr->u.c.center, xx->angle, xx->orig );
- drawData.radius = segPtr->u.c.radius;
+ drawData.radius = fabs(segPtr->u.c.radius);
drawDesc[CE].mode =
drawDesc[RA].mode = 0;
if ( segPtr->u.c.a1 >= 360.0 ) {
@@ -479,7 +495,7 @@ static void DescribeDraw( track_p trk, char * str, CSIZE_T len )
break;
case SEG_FILCRCL:
REORIGIN( drawData.center, segPtr->u.c.center, xx->angle, xx->orig );
- drawData.radius = segPtr->u.c.radius;
+ drawData.radius = fabs(segPtr->u.c.radius);
drawDesc[CE].mode =
drawDesc[RA].mode = 0;
drawDesc[LW].mode = DESC_IGNORE;
@@ -488,21 +504,37 @@ static void DescribeDraw( track_p trk, char * str, CSIZE_T len )
case SEG_POLY:
drawData.pointCount = segPtr->u.p.cnt;
drawDesc[VC].mode = DESC_RO;
- title = _("Poly Line");
+ drawDesc[PT].mode = DESC_RO;
+ switch (segPtr->u.p.polyType) {
+ case RECTANGLE:
+ polyType = _("Rectangle");
+ break;
+ default:
+ polyType = _("Freeform");
+ }
+ strncpy( drawData.polyType, polyType, sizeof drawData.polyType );
+ title = _("Polygonal Line");
break;
case SEG_FILPOLY:
drawData.pointCount = segPtr->u.p.cnt;
drawDesc[VC].mode = DESC_RO;
drawDesc[LW].mode = DESC_IGNORE;
+ drawDesc[PT].mode = DESC_RO;
+ switch (segPtr->u.p.polyType) {
+ case RECTANGLE:
+ polyType =_("Rectangle");
+ break;
+ default:
+ polyType = _("Freeform");
+ }
+ strncpy( drawData.polyType, polyType, sizeof drawData.polyType );
title = _("Polygon");
break;
case SEG_TEXT:
REORIGIN( drawData.endPt[0], segPtr->u.t.pos, xx->angle, xx->orig );
- //drawData.angle = NormalizeAngle( segPtr->u.t.angle );
drawData.angle = NormalizeAngle( xx->angle );
strncpy( drawData.text, segPtr->u.t.string, sizeof drawData.text );
- /*drawData.fontSize = segPtr->u.t.fontSize;*/
- /*(char*)drawDesc[TX].valueP = segPtr->u.t.string;*/
+ drawData.text[sizeof drawData.text-1] ='\0';
drawDesc[TP].mode =
drawDesc[TS].mode =
drawDesc[TX].mode =
@@ -541,7 +573,7 @@ static void DescribeDraw( track_p trk, char * str, CSIZE_T len )
static void DrawDraw( track_p t, drawCmd_p d, wDrawColor color )
{
struct extraData * xx = GetTrkExtraData(t);
- if ( (d->options&DC_QUICK) == 0 )
+ if ( (d->funcs->options&DC_QUICK) == 0 )
DrawSegs( d, xx->orig, xx->angle, xx->segs, xx->segCnt, 0.0, color );
}
@@ -668,7 +700,7 @@ static ANGLE_T GetAngleDraw(
pos.x -= xx->orig.x;
pos.y -= xx->orig.y;
Rotate( &pos, zero, -xx->angle );
- angle = GetAngleSegs( xx->segCnt, xx->segs, pos, NULL );
+ angle = GetAngleSegs( xx->segCnt, xx->segs, &pos, NULL, NULL, NULL, NULL, NULL);
if ( ep0 ) *ep0 = -1;
if ( ep1 ) *ep1 = -1;
return NormalizeAngle( angle + xx->angle );
@@ -767,7 +799,69 @@ EXPORT BOOL_T OnTableEdgeEndPt( track_p trk, coOrd * pos )
return FALSE;
}
+EXPORT BOOL_T GetClosestEndPt( track_p trk, coOrd * pos)
+{
+ struct extraData *xx;
+
+ if (GetTrkType(trk) == T_DRAW) {
+ ignoredTableEdge = NULL;
+ xx = GetTrkExtraData(trk);
+ if (xx->segCnt < 1)
+ return FALSE;
+ DIST_T dd0,dd1;
+ coOrd p00,p0,p1;
+ p00 = *pos;
+ if (GetTrkType(trk) == T_DRAW) {
+ Rotate(&p00,xx->orig,-xx->angle);
+ p00.x -= xx->orig.x;
+ p00.y -= xx->orig.y;
+ switch (xx->segs[0].type) {
+ case SEG_CRVLIN:
+ PointOnCircle( &p0, xx->segs[0].u.c.center, fabs(xx->segs[0].u.c.radius), xx->segs[0].u.c.a0 );
+ dd0 = FindDistance( p00, p0);
+ PointOnCircle( &p1, xx->segs[0].u.c.center, fabs(xx->segs[0].u.c.radius), xx->segs[0].u.c.a0 + xx->segs[0].u.c.a1);
+ dd1 = FindDistance( p00, p1);
+ break;
+ case SEG_STRLIN:
+ dd0 = FindDistance( p00, xx->segs[0].u.l.pos[0]);
+ p0 = xx->segs[0].u.l.pos[0];
+ dd1 = FindDistance( p00, xx->segs[0].u.l.pos[1]);
+ p1 = xx->segs[0].u.l.pos[1];
+ break;
+ case SEG_BEZLIN:
+ dd0 = FindDistance( p00, xx->segs[0].u.b.pos[0]);
+ p0 = xx->segs[0].u.b.pos[0];
+ dd1 = FindDistance( p00, xx->segs[0].u.b.pos[3]);
+ p1 = xx->segs[0].u.b.pos[3];
+ break;
+ default:
+ return FALSE;
+ }
+ p0.x += xx->orig.x;
+ p0.y += xx->orig.y;
+ Rotate(&p0,xx->orig,xx->angle);
+ p1.x += xx->orig.x;
+ p1.y += xx->orig.y;
+ Rotate(&p1,xx->orig,xx->angle);
+ } else if (GetTrkType(trk) == T_BZRLIN) {
+ coOrd p0,p1;
+ xx = GetTrkExtraData(trk);
+ p0 = xx->segs[0].u.b.pos[0];
+ p1 = xx->segs[0].u.b.pos[3];
+ dd0 = FindDistance(p00,p0);
+ dd1 = FindDistance(p00,p1);
+ } else return FALSE;
+ if (dd0>dd1) {
+ * pos = p1;
+ return TRUE;
+ } else {
+ * pos = p0;
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
static void DrawRedraw(void);
@@ -783,15 +877,13 @@ static void DrawRedraw( void )
MapRedraw();
}
-
static wIndex_t benchChoice;
static wIndex_t benchOrient;
static wIndex_t dimArrowSize;
-static wDrawColor lineColor;
+wDrawColor lineColor = 1;
+long lineWidth = 0;
static wDrawColor benchColor;
-#ifdef LATER
-static wIndex_t benchInx;
-#endif
+
static paramIntegerRange_t i0_100 = { 0, 100, 25 };
static paramData_t drawPLs[] = {
@@ -802,7 +894,11 @@ static paramData_t drawPLs[] = {
#define drawBenchColorPD (drawPLs[2])
{ PD_COLORLIST, &benchColor, "benchcolor", PDO_NORECORD, NULL, N_("Color") },
#define drawBenchChoicePD (drawPLs[3])
- { PD_DROPLIST, &benchChoice, "benchlist", PDO_NOPREF|PDO_NORECORD|PDO_LISTINDEX, (void*)80, N_("Lumber Type") },
+#ifdef WINDOWS
+ { PD_DROPLIST, &benchChoice, "benchlist", PDO_NOPREF|PDO_NORECORD|PDO_LISTINDEX, (void*)120, N_("Lumber Type") },
+#else
+ { PD_DROPLIST, &benchChoice, "benchlist", PDO_NOPREF|PDO_NORECORD|PDO_LISTINDEX, (void*)145, N_("Lumber Type") },
+#endif
#define drawBenchOrientPD (drawPLs[4])
#ifdef WINDOWS
{ PD_DROPLIST, &benchOrient, "benchorient", PDO_NOPREF|PDO_NORECORD|PDO_LISTINDEX, (void*)45, "", 0 },
@@ -832,6 +928,7 @@ static char * objectName[] = {
N_("Filled Circle"),
N_("Filled Box"),
N_("Polygon"),
+ N_("Bezier Line"),
NULL};
static STATUS_T CmdDraw( wAction_t action, coOrd pos )
@@ -842,6 +939,8 @@ static STATUS_T CmdDraw( wAction_t action, coOrd pos )
char * labels[3];
static char labelName[40];
+ wAction_t act2 = (action&0xFF) | (bezCmdCreateLine<<8);
+
switch (action&0xFF) {
case C_START:
@@ -870,6 +969,7 @@ static STATUS_T CmdDraw( wAction_t action, coOrd pos )
case OP_CIRCLE3:
case OP_BOX:
case OP_POLY:
+ case OP_BEZLIN:
controls[0] = drawWidthPD.control;
controls[1] = drawColorPD.control;
controls[2] = NULL;
@@ -879,6 +979,7 @@ static STATUS_T CmdDraw( wAction_t action, coOrd pos )
InfoSubstituteControls( controls, labels );
drawWidthPD.option &= ~PDO_NORECORD;
drawColorPD.option &= ~PDO_NORECORD;
+ lineWidth = drawCmdContext.Width;
break;
case OP_FILLCIRCLE2:
case OP_FILLCIRCLE3:
@@ -935,12 +1036,17 @@ static STATUS_T CmdDraw( wAction_t action, coOrd pos )
infoSubst = FALSE;
}
ParamGroupRecord( &drawPG );
+ if (drawCmdContext.Op == OP_BEZLIN) return CmdBezCurve(act2, pos);
DrawGeomMouse( C_START, pos, &drawCmdContext );
return C_CONTINUE;
case wActionLDown:
ParamLoadData( &drawPG );
+ if (drawCmdContext.Op == OP_BEZLIN) {
+ act2 = action | (bezCmdCreateLine<<8);
+ return CmdBezCurve(act2, pos);
+ }
if ( drawCmdContext.Op == OP_BENCH ) {
drawCmdContext.benchOption = GetBenchData( (long)wListGetItemContext((wList_p)drawBenchChoicePD.control, benchChoice ), benchOrient );
drawCmdContext.Color = benchColor;
@@ -963,22 +1069,29 @@ static STATUS_T CmdDraw( wAction_t action, coOrd pos )
case wActionRUp:
case wActionText:
case C_CMDMENU:
- SnapPos( &pos );
+ if (drawCmdContext.Op == OP_BEZLIN) return CmdBezCurve(act2, pos);
+ if (!((MyGetKeyState() & WKEY_SHIFT) != 0)) {
+ SnapPos( &pos );
+ }
return DrawGeomMouse( action, pos, &drawCmdContext );
case C_CANCEL:
InfoSubstituteControls( NULL, NULL );
+ if (drawCmdContext.Op == OP_BEZLIN) return CmdBezCurve(act2, pos);
return DrawGeomMouse( action, pos, &drawCmdContext );
case C_OK:
+ if (drawCmdContext.Op == OP_BEZLIN) return CmdBezCurve(act2, pos);
return DrawGeomMouse( (0x0D<<8|wActionText), pos, &drawCmdContext );
/*DrawOk( NULL );*/
case C_FINISH:
+ if (drawCmdContext.Op == OP_BEZLIN) return CmdBezCurve(act2, pos);
return DrawGeomMouse( (0x0D<<8|wActionText), pos, &drawCmdContext );
/*DrawOk( NULL );*/
case C_REDRAW:
+ if (drawCmdContext.Op == OP_BEZLIN) return CmdBezCurve(act2, pos);
return DrawGeomMouse( action, pos, &drawCmdContext );
default:
@@ -1004,6 +1117,7 @@ static STATUS_T CmdDraw( wAction_t action, coOrd pos )
#include "bitmaps/dfilbox.xpm"
#include "bitmaps/dpoly.xpm"
#include "bitmaps/dfilpoly.xpm"
+#include "bitmaps/dbezier.xpm"
typedef struct {
char **xpm;
@@ -1023,7 +1137,8 @@ static drawData_t dcurveCmds[] = {
{ dcurve1_xpm, OP_CURVE1, N_("Curve End"), N_("Draw Curve from End"), "cmdDrawCurveEndPt", ACCL_DRAWCURVE1 },
{ dcurve2_xpm, OP_CURVE2, N_("Curve Tangent"), N_("Draw Curve from Tangent"), "cmdDrawCurveTangent", ACCL_DRAWCURVE2 },
{ dcurve3_xpm, OP_CURVE3, N_("Curve Center"), N_("Draw Curve from Center"), "cmdDrawCurveCenter", ACCL_DRAWCURVE3 },
- { dcurve4_xpm, OP_CURVE4, N_("Curve Chord"), N_("Draw Curve from Chord"), "cmdDrawCurveChord", ACCL_DRAWCURVE4 } };
+ { dcurve4_xpm, OP_CURVE4, N_("Curve Chord"), N_("Draw Curve from Chord"), "cmdDrawCurveChord", ACCL_DRAWCURVE4 },
+ { dbezier_xpm, OP_BEZLIN, N_("Bezier Curve"), N_("Draw Bezier"), "cmdDrawBezierCurve", ACCL_DRAWBEZLINE } };
static drawData_t dcircleCmds[] = {
/*{ dcircle1_xpm, OP_CIRCLE1, "Circle Fixed Radius", "Draw Fixed Radius Circle", "cmdDrawCircleFixedRadius", ACCL_DRAWCIRCLE1 },*/
{ dcircle2_xpm, OP_CIRCLE3, N_("Circle Tangent"), N_("Draw Circle from Tangent"), "cmdDrawCircleTangent", ACCL_DRAWCIRCLE2 },
@@ -1052,12 +1167,11 @@ static drawStuff_t drawStuff[4];
static drawStuff_t drawStuff[4] = {
{ "cmdDrawLineSetCmd", N_("Straight Objects"), N_("Draw Straight Objects"), 4, dlineCmds },
- { "cmdDrawCurveSetCmd", N_("Curved Lines"), N_("Draw Curved Lines"), 4, dcurveCmds },
+ { "cmdDrawCurveSetCmd", N_("Curved Lines"), N_("Draw Curved Lines"), 5, dcurveCmds },
{ "cmdDrawCircleSetCmd", N_("Circle Lines"), N_("Draw Circles"), 4, dcircleCmds },
{ "cmdDrawShapeSetCmd", N_("Shapes"), N_("Draw Shapes"), 4, dshapeCmds} };
-
static void ChangeDraw( long changes )
{
wIndex_t choice, orient;
@@ -1079,6 +1193,15 @@ static void DrawDlgUpdate(
int inx,
void * valueP )
{
+ if (drawCmdContext.Op == OP_BEZLIN) {
+ if ( (inx == 0 && pg->paramPtr[inx].valueP == &drawCmdContext.Width) ||
+ (inx == 1 && pg->paramPtr[inx].valueP == &lineColor))
+ {
+ lineWidth = drawCmdContext.Width;
+ UpdateParms(lineColor, lineWidth);
+ }
+ }
+
if ( inx >= 0 && pg->paramPtr[inx].valueP == &benchChoice )
BenchUpdateOrientationList( (long)wListGetItemContext( (wList_p)drawBenchChoicePD.control, (wIndex_t)*(long*)valueP ), (wList_p)drawBenchOrientPD.control );
}
@@ -1108,9 +1231,7 @@ EXPORT void InitCmdDraw( wMenu_p menu )
ParamRegister( &drawPG );
RegisterChangeNotification( ChangeDraw );
-#ifdef LATER
- InitCommand( cmdDraw, N_("Draw"), draw_bits, LEVEL0_50, IC_POPUP|IC_CMDMENU, ACCL_DRAW );
-#endif
+
}
@@ -1168,7 +1289,6 @@ EXPORT track_p NewText(
return trk;
}
-
EXPORT BOOL_T ReadText( char * line )
{
coOrd pos;
@@ -1190,6 +1310,10 @@ EXPORT BOOL_T ReadText( char * line )
return FALSE;
}
+ char * old = text;
+ text = ConvertFromEscapedText(text);
+ MyFree(old);
+
trk = NewText( index, pos, angle, text, textSize, color );
SetTrkLayer( trk, layer );
MyFree(text);
diff --git a/app/bin/celev.c b/app/bin/celev.c
index 164ea43..2677f2e 100644
--- a/app/bin/celev.c
+++ b/app/bin/celev.c
@@ -1,5 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/celev.c,v 1.4 2008-03-06 19:35:05 m_fischer Exp $
+/** /file celev.c
+ * ELEVATION
*/
/* XTrkCad - Model Railroad CAD
@@ -19,16 +19,16 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#include <math.h>
+#include <string.h>
-#include "track.h"
#include "cselect.h"
+#include "cundo.h"
+#include "custom.h"
+#include "fileio.h"
#include "i18n.h"
-
-/*****************************************************************************
- *
- * ELEVATION
- *
- */
+#include "param.h"
+#include "track.h"
static wWin_p elevW;
diff --git a/app/bin/cgroup.c b/app/bin/cgroup.c
index 76b15ca..b173987 100644
--- a/app/bin/cgroup.c
+++ b/app/bin/cgroup.c
@@ -1,6 +1,4 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/cgroup.c,v 1.2 2008-01-20 23:29:15 mni77 Exp $
- *
+/** \file cgroup.c
* Compound tracks: Group
*
*/
@@ -24,10 +22,23 @@
*/
#include <ctype.h>
-#include "track.h"
+#include <math.h>
+#include <string.h>
+
#include "compound.h"
-#include "shrtpath.h"
+#include "cundo.h"
+#include "custom.h"
+#include "fileio.h"
#include "i18n.h"
+#include "tbezier.h"
+#include "tcornu.h"
+#include "common.h"
+#include "messages.h"
+#include "param.h"
+#include "shrtpath.h"
+#include "track.h"
+#include "utility.h"
+
/*****************************************************************************
*
@@ -46,6 +57,10 @@ static char groupPartno[STR_SIZE];
static char groupTitle[STR_SIZE];
static int groupCompoundCount = 0;
+extern TRKTYP_T T_BZRTRK;
+extern TRKTYP_T T_BZRLIN;
+extern TRKTYP_T T_CORNU;
+
typedef struct {
int segInx;
EPINX_T segEP;
@@ -666,7 +681,11 @@ static char * FindPathBtwEP(
if ( ep1+ep2 != 1 )
AbortProg( "findPathBtwEP" );
*flip = ( ep1 == 1 );
- return "\1\0\0";
+ if (GetTrkType(trk) == T_CORNU ) { // Cornu doesn't have a path but lots of segs!
+ cp = CreateSegPathList(trk); // Make path
+LOG( log_group, 2, ( " Group: Cornu path:%s \n", cp ) )
+ } else cp = "\1\0\0"; //One segment (but could be a Bezier)
+ return cp;
}
cp = (char *)xx->paths;
pos1 = GetTrkEndPos(trk,ep1);
@@ -678,7 +697,7 @@ static char * FindPathBtwEP(
pos2.x -= xx->orig.x;
pos2.y -= xx->orig.y;
while ( cp[0] ) {
- cp += strlen(cp)+1;
+ cp += strlen(cp)+1; //Ignore Path Name
while ( cp[0] ) {
cp0 = cp;
epN = -1;
@@ -691,8 +710,8 @@ static char * FindPathBtwEP(
if ( epN != -1 ) {
GetSegInxEP( cp[-1], &segInx, &segEP );
if ( CheckTurnoutEndPoint( &xx->segs[segInx], epN==0?pos1:pos2, 1-segEP ) ) {
- *flip = epN==0;
- return cp0;
+ *flip = epN==0; // If its reversed, set up to be flipped or noted
+ return cp0; //Found path between EPs
}
}
cp++;
@@ -995,6 +1014,12 @@ static void GroupOk( void * junk )
DrawSegs( &groupD, xx->orig, xx->angle, segPtr, 1, trackGauge, wDrawColorBlack );
}
}
+ } else if (GetTrkType(trk) == T_BEZIER || GetTrkType(trk) == T_BZRLIN ) {
+ DYNARR_APPEND(trkSeg_t, trackSegs_da, 10);
+ segPtr = &trackSegs(trackSegs_da.cnt-1);
+ GetBezierSegmentFromTrack(trk,segPtr);
+ } else if (GetTrkType(trk) == T_CORNU) {
+ GetBezierSegmentsFromCornu(trk,&trackSegs_da); //Only give back Bezier - cant be undone
} else {
segCnt = tempSegs_da.cnt;
oldOptions = groupD.options;
@@ -1072,6 +1097,7 @@ static void GroupOk( void * junk )
}
/* Make sure no turnouts in groupTrk list have a path end which is not an EndPt */
+ //TODO Add Trap Points (which are Turnouts with a bumper track)
for ( inx=0; inx<groupTrk_da.cnt; inx++ ) {
trk = groupTrk(0).trk;
if ( GetTrkType( trk ) == T_TURNOUT ) {
@@ -1391,7 +1417,7 @@ if ( log_group >= 1 && logTable(log_group).level > log_group ) {
for ( pinx=0; pinx<trackSegs_da.cnt; pinx++ ) {
if ( segFlip(pinx) < 0 ) {
LOG( log_group, 1, ( "Flipping Segment %d\n", pinx+1 ) );
- SegProc( SEGPROC_FLIP, &trackSegs(pinx), NULL );
+ SegProc( SEGPROC_FLIP, &trackSegs(pinx), NULL );
}
}
@@ -1413,7 +1439,7 @@ LOG( log_group, 1, ( "Flipping Segment %d\n", pinx+1 ) );
if ( path == NULL )
AbortProg( "Missing Path T%d:%d.%d", GetTrkIndex(groupP->trk), ppp->ep2, ppp->ep1 );
if ( flip ) path += strlen((char *)path)-1;
- while ( *path ) {
+ while ( *path && (path >= ppp->path) ) { //Add Guard for flip backwards
DYNARR_APPEND( char, pathPtr_da, 10 );
pathChar = *path;
flip1 = flip;
@@ -1568,6 +1594,7 @@ EXPORT void DoGroup( void )
xx = NULL;
groupSegCnt = 0;
groupCompoundCount = 0;
+
while ( TrackIterate( &trk ) ) {
if ( GetTrkSelected( trk ) ) {
trkType = GetTrkType(trk);
@@ -1575,9 +1602,8 @@ EXPORT void DoGroup( void )
xx = GetTrkExtraData(trk);
groupSegCnt += xx->segCnt;
GroupCopyTitle( xtitle(xx) );
- } else {
+ } else
groupSegCnt += 1;
- }
}
}
if ( groupSegCnt <= 0 ) {
diff --git a/app/bin/chndldto.c b/app/bin/chndldto.c
index 2e1f826..fa88398 100644
--- a/app/bin/chndldto.c
+++ b/app/bin/chndldto.c
@@ -1,7 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/chndldto.c,v 1.4 2008-03-06 19:35:05 m_fischer Exp $
- *
- * CURVE
+/** \file chndlto.c
+ * Handlaid turnout
*
*/
@@ -23,13 +21,17 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "track.h"
+#include <math.h>
+
#include "ccurve.h"
-#include "cstraigh.h"
#include "cjoin.h"
#include "compound.h"
-#include <math.h>
+#include "cstraigh.h"
+#include "cundo.h"
#include "i18n.h"
+#include "messages.h"
+#include "track.h"
+#include "utility.h"
#define PTRACE(X)
@@ -297,7 +299,7 @@ PTRACE(( " a2=%0.1f rA1=%0.1f\n", angle2, reverseA1 ))
ep2b = 0;
break;
case SEG_CRVTRK:
- trk2b = NewCurvedTrack( segP->u.c.center, segP->u.c.radius, segP->u.c.a0, segP->u.c.a1, 0 );
+ trk2b = NewCurvedTrack( segP->u.c.center, fabs(segP->u.c.radius), segP->u.c.a0, segP->u.c.a1, 0 );
ep2b = (right?0:1);
}
if (trk2 == NULL) {
diff --git a/app/bin/chotbar.c b/app/bin/chotbar.c
index f138cbb..188ad27 100644
--- a/app/bin/chotbar.c
+++ b/app/bin/chotbar.c
@@ -21,10 +21,13 @@
*/
#include <ctype.h>
-#include "track.h"
-#include "compound.h"
-
#include <stdint.h>
+#include <string.h>
+
+#include "compound.h"
+#include "fileio.h"
+#include "messages.h"
+#include "track.h"
EXPORT DIST_T curBarScale = -1;
EXPORT long hotBarLabels = 0;
@@ -73,7 +76,7 @@ static void HotBarHighlight( int inx )
{
wPos_t x0;
if ( inx >= hotBarCurrStart && inx < hotBarCurrEnd ) {
- x0 = (wPos_t)((hotBarMap(inx).x-hotBarMap((int)hotBarCurrStart).x)*hotBarD.dpi+2);
+ x0 = (wPos_t)((hotBarMap(inx).x-hotBarMap((int)hotBarCurrStart).x)*hotBarD.dpi);
wDrawFilledRectangle( hotBarD.d, x0, 0, (wPos_t)(hotBarMap(inx).w*hotBarD.dpi-2), hotBarHeight, wDrawColorBlack, wDrawOptTemp );
}
}
@@ -101,30 +104,32 @@ static void RedrawHotBar( wDraw_p dd, void * data, wPos_t w, wPos_t h )
}
if ( hotBarLabels && !hotBarFp )
hotBarFp = wStandardFont( F_HELV, FALSE, FALSE );
+ wPos_t textSize = wMessageGetHeight(0L);
for ( inx=hotBarCurrStart; inx < hotBarMap_da.cnt; inx++ ) {
tbm = &hotBarMap(inx);
barScale = tbm->barScale;
- x = tbm->x - hotBarMap(hotBarCurrStart).x + 2.0/hotBarD.dpi;
+ x = tbm->x - hotBarMap(hotBarCurrStart).x;
if ( x + tbm->w > barWidth ) {
break;
}
orig.y = hh/2.0*barScale - tbm->size.y/2.0 - tbm->orig.y;
if ( hotBarLabels ) {
- orig.y += 8/hotBarD.dpi*barScale;
+ orig.y += textSize/hotBarD.dpi*barScale;
if ( tbm->labelW > tbm->objectW ) {
x += (tbm->labelW-tbm->objectW)/2;
}
}
x *= barScale;
- orig.x = x - tbm->orig.x;
+ orig.x = x;
hotBarD.scale = barScale;
hotBarD.size.x = barWidth*barScale;
hotBarD.size.y = barHeight*barScale;
tbm->proc( HB_DRAW, tbm->context, &hotBarD, &orig );
if ( hotBarLabels ) {
- orig.x = x - (tbm->labelW-tbm->objectW)/2*barScale;
- orig.y = 2*barScale/hotBarD.dpi;
- DrawString( &hotBarD, orig, 0.0, tbm->proc( HB_BARTITLE, tbm->context, NULL, NULL ), hotBarFp, hotBarFs*barScale, drawColorBlack );
+ hotBarD.scale = 1.0;
+ orig.x = tbm->x - hotBarMap(hotBarCurrStart).x;
+ orig.y = 2.0/hotBarD.dpi; //Draw Label under icon
+ DrawString( &hotBarD, orig, 0.0, tbm->proc( HB_BARTITLE, tbm->context, NULL, NULL ), hotBarFp, hotBarFs, drawColorBlack );
}
}
hotBarCurrEnd = inx;
@@ -220,7 +225,8 @@ static void SelectHotBar( wDraw_p d, void * context, wAction_t action, wPos_t w,
}
x = w/hotBarD.dpi + hotBarMap(hotBarCurrStart).x;
for ( inx=hotBarCurrStart; inx<hotBarCurrEnd; inx++ ) {
- if ( x < hotBarMap(inx).x + hotBarMap(inx).w ) {
+ if ((x >= hotBarMap(inx).x) && //leave spaces between buttons
+ (x <= hotBarMap(inx).x + hotBarMap(inx).w )) {
break;
}
}
@@ -231,7 +237,7 @@ static void SelectHotBar( wDraw_p d, void * context, wAction_t action, wPos_t w,
px += (wPos_t)(tbm->w*hotBarD.dpi/2);
titleP = tbm->proc( HB_LISTTITLE, tbm->context, NULL, NULL );
px -= wLabelWidth( titleP ) / 2;
- wControlSetBalloon( (wControl_p)hotBarD.d, px, -5, titleP );
+ wControlSetBalloon( (wControl_p)hotBarD.d, px, -20, titleP );
switch (action & 0xff) {
case wActionLDown:
pos.x = mainD.size.x+mainD.orig.x;
@@ -380,7 +386,7 @@ EXPORT void AddHotBarElement(
tbm->w = tbm->labelW;
}
}
- hotBarWidth += tbm->w;
+ hotBarWidth += tbm->w + 2/hotBarD.dpi;
}
@@ -440,8 +446,9 @@ EXPORT void LayoutHotBar( void )
wWinGetSize( mainW, &winWidth, &winHeight );
hotBarHeight = hotBarDrawHeight;
- if ( hotBarLabels)
- hotBarHeight += 8;
+ if ( hotBarLabels) {
+ hotBarHeight += wMessageGetHeight(0L);
+ }
if (hotBarLeftB == NULL) {
wIcon_p bm_p;
if (winWidth < 50)
@@ -450,18 +457,18 @@ EXPORT void LayoutHotBar( void )
hotBarLeftB = wButtonCreate( mainW, 0, 0, "hotBarLeft", (char*)bm_p, BO_ICON, 0, DoHotBarLeft, NULL );
bm_p = wIconCreateBitMap( 16, 16, turnbarr_bits, wDrawColorBlack );
hotBarRightB = wButtonCreate( mainW, 0, 0, "hotBarRight", (char*)bm_p, BO_ICON, 0, DoHotBarRight, NULL );
- hotBarD.d = wDrawCreate( mainW, 0, 0, NULL, BD_NOCAPTURE, 100, hotBarHeight, NULL, RedrawHotBar, SelectHotBar );
+ hotBarD.d = wDrawCreate( mainW, 0, 0, NULL, BD_NOCAPTURE|BD_NOFOCUS, 100, hotBarHeight, NULL, RedrawHotBar, SelectHotBar );
hotBarD.dpi = wDrawGetDPI( hotBarD.d );
hotBarD.scale = 1.0;
initialize = TRUE;
}
buttonWidth = wControlGetWidth((wControl_p)hotBarLeftB);
wControlSetPos( (wControl_p)hotBarLeftB, 0, toolbarHeight );
- wControlSetPos( (wControl_p)hotBarRightB, winWidth-buttonWidth, toolbarHeight );
+ wControlSetPos( (wControl_p)hotBarRightB, winWidth-20-buttonWidth, toolbarHeight );
wControlSetPos( (wControl_p)hotBarD.d, buttonWidth, toolbarHeight );
- wDrawSetSize( hotBarD.d, winWidth-buttonWidth*2, hotBarHeight+2 );
- hotBarD.size.x = ((double)(winWidth-buttonWidth*2))/hotBarD.dpi*hotBarD.scale;
- hotBarD.size.y = (double)hotBarHeight/hotBarD.dpi*hotBarD.scale;
+ wDrawSetSize( hotBarD.d, winWidth-20-buttonWidth*2, hotBarHeight+2 );
+ hotBarD.size.x = ((double)(winWidth-20-buttonWidth*2))/hotBarD.dpi*hotBarD.scale;
+ hotBarD.size.y = (double)hotBarDrawHeight/hotBarD.dpi*hotBarD.scale; //Exclude Label from calc
wControlShow( (wControl_p)hotBarLeftB, TRUE );
wControlShow( (wControl_p)hotBarRightB, TRUE );
wControlShow( (wControl_p)hotBarD.d, TRUE );
diff --git a/app/bin/cjoin.c b/app/bin/cjoin.c
index e8d72eb..8cfa3d4 100644
--- a/app/bin/cjoin.c
+++ b/app/bin/cjoin.c
@@ -29,7 +29,15 @@
#include "ccurve.h"
#include "cstraigh.h"
#include "cjoin.h"
+#include "ccornu.h"
#include "i18n.h"
+#include "utility.h"
+#include "math.h"
+#include "messages.h"
+#include "param.h"
+#include "cundo.h"
+#include "cselect.h"
+#include "fileio.h"
static int log_join = 0;
@@ -444,18 +452,25 @@ static STATUS_T CmdJoin(
DIST_T eR[2];
BOOL_T ok;
- switch (action) {
+ switch (action&0xFF) {
case C_START:
- InfoMessage( _("Left click - join with track, Shift Left click - move to join") );
+ if (selectedTrackCount==0)
+ InfoMessage( _("Left click - join with track") );
+ else
+ InfoMessage( _("Left click - join with track, Shift Left click - move to join") );
Dj.state = 0;
Dj.joinMoveState = 0;
/*ParamGroupRecord( &easementPG );*/
+ if (easementVal < 0)
+ return CmdCornu(action, pos);
return C_CONTINUE;
case C_DOWN:
if ( (Dj.state == 0 && (MyGetKeyState() & WKEY_SHIFT) != 0) || Dj.joinMoveState != 0 )
return DoMoveToJoin( pos );
+ if (easementVal < 0.0)
+ return CmdCornu(action, pos);
DYNARR_SET( trkSeg_t, tempSegs_da, 3 );
tempSegs(0).color = drawColorBlack;
@@ -545,6 +560,8 @@ LOG( log_join, 1, ("P1=[%0.3f %0.3f]\n", pos.x, pos.y ) )
tempSegs_da.cnt = 0;
case C_MOVE:
+ if (easementVal < 0)
+ return CmdCornu(action, pos);
LOG( log_join, 3, ("P1=[%0.3f %0.3f]\n", pos.x, pos.y ) )
if (Dj.state != 2)
@@ -580,6 +597,8 @@ LOG( log_join, 3, ("P1=[%0.3f %0.3f]\n", pos.x, pos.y ) )
((Dj.inp[0].params.ep==0)?-90.0:90.0) );
break;
case curveTypeNone:
+ case curveTypeBezier:
+ case curveTypeCornu:
break;
}
@@ -655,6 +674,11 @@ LOG( log_join, 3, (" -E POS0=[%0.3f %0.3f] POS1=[%0.3f %0.3f]\n",
d = Dj.inp[0].params.arcR * a1 * 2.0*M_PI/360.0;
}
break;
+ case curveTypeCornu:
+ case curveTypeBezier:
+ case curveTypeNone:
+ InfoMessage( _("First Track Type not supported for non-Cornu Join") );
+ goto errorReturn;
default:
AbortProg( "cmdJoin - unknown type[0]" );
}
@@ -682,6 +706,11 @@ LOG( log_join, 3, (" -E POS0=[%0.3f %0.3f] POS1=[%0.3f %0.3f]\n",
d = Dj.inp[1].params.arcR * a1 * 2.0*M_PI/360.0;
}
break;
+ case curveTypeCornu:
+ case curveTypeBezier:
+ case curveTypeNone:
+ InfoMessage( _("Second Track Type not supported for non-Cornu Join") );
+ goto errorReturn;
default:
AbortProg( "cmdJoin - unknown type[1]" );
}
@@ -775,8 +804,13 @@ errorReturn:
return C_CONTINUE;
case C_UP:
- if (Dj.state == 0)
- return C_CONTINUE;
+
+ if (Dj.state == 0) {
+ if (easementVal<0)
+ return CmdCornu(action, pos);
+ else
+ return C_CONTINUE;
+ }
if (Dj.state == 1) {
InfoMessage( _("Select 2nd track") );
return C_CONTINUE;
@@ -801,6 +835,8 @@ errorReturn:
Dj.jRes.arcA0, Dj.jRes.arcA1, 0 );
break;
case curveTypeNone:
+ case curveTypeBezier:
+ case curveTypeCornu:
return C_CONTINUE;
}
@@ -822,65 +858,26 @@ errorReturn:
DrawNewTrack( trk );
return rc;
-#ifdef LATER
- case C_LCLICK:
- if ( (MyGetKeyState() & WKEY_SHIFT) == 0 ) {
- rc = CmdJoin( C_DOWN, pos );
- if (rc == C_TERMINATE)
- return rc;
- return CmdJoin( C_UP, pos );
- }
- if ( selectedTrackCount <= 0 ) {
- ErrorMessage( MSG_NO_SELECTED_TRK );
- return C_CONTINUE;
- }
- if ( (Dj.inp[Dj.joinMoveState].trk = OnTrack( &pos, TRUE, TRUE )) == NULL )
- return C_CONTINUE;
- if (!CheckTrackLayer( Dj.inp[Dj.joinMoveState].trk ) )
- return C_CONTINUE;
- Dj.inp[Dj.joinMoveState].params.ep = PickUnconnectedEndPoint( pos, Dj.inp[Dj.joinMoveState].trk ); /* CHECKME */
- if ( Dj.inp[Dj.joinMoveState].params.ep == -1 ) {
-#ifdef LATER
- ErrorMessage( MSG_NO_ENDPTS );
-#endif
- return C_CONTINUE;
- }
-#ifdef LATER
- if ( GetTrkEndTrk( Dj.inp[Dj.joinMoveState].trk, Dj.inp[Dj.joinMoveState].params.ep ) ) {
- ErrorMessage( MSG_SEL_EP_CONN );
- return C_CONTINUE;
- }
-#endif
- if (Dj.joinMoveState == 0) {
- Dj.joinMoveState++;
- InfoMessage( GetTrkSelected(Dj.inp[0].trk)?
- _("Click on an unselected End-Point"):
- _("Click on a selected End-Point") );
- return C_CONTINUE;
- }
- if ( GetTrkSelected(Dj.inp[0].trk) == GetTrkSelected(Dj.inp[1].trk) ) {
- ErrorMessage( MSG_2ND_TRK_NOT_SEL_UNSEL, GetTrkSelected(Dj.inp[0].trk)
- ? _("unselected") : _("selected") );
- return C_CONTINUE;
- }
- if (GetTrkSelected(Dj.inp[0].trk))
- MoveToJoin( Dj.inp[0].trk, Dj.inp[0].params.ep, Dj.inp[1].trk, Dj.inp[1].params.ep );
- else
- MoveToJoin( Dj.inp[1].trk, Dj.inp[1].params.ep, Dj.inp[0].trk, Dj.inp[0].params.ep );
- Dj.joinMoveState = 0;
- return C_TERMINATE;
- break;
-#endif
case C_CANCEL:
case C_REDRAW:
+
+
if ( Dj.joinMoveState == 1 || Dj.state == 1 ) {
DrawFillCircle( &tempD, Dj.inp[0].pos, 0.10*mainD.scale, selectedColor );
- }
+ } else if (easementVal<0 )
+ return CmdCornu(action,pos);
+
DrawSegs( &tempD, zero, 0.0, &tempSegs(0), tempSegs_da.cnt, trackGauge, wDrawColorBlack );
break;
+ case C_TEXT:
+ case C_OK:
+ if (easementVal<0 )
+ return CmdCornu(action,pos);
}
+
+
return C_CONTINUE;
}
diff --git a/app/bin/cjoin.h b/app/bin/cjoin.h
index 021e0a1..8d9c7e3 100644
--- a/app/bin/cjoin.h
+++ b/app/bin/cjoin.h
@@ -1,7 +1,6 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/cjoin.h,v 1.1 2005-12-07 15:47:39 rc-flyer Exp $
+/** \file cjoin.h
+ * Prototypes and definitions related to the "join" command
*/
-
/* XTrkCad - Model Railroad CAD
* Copyright (C) 2005 Dave Bullis
*
@@ -20,6 +19,13 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#ifndef HAVE_CJOIN_H
+#define HAVE_CJOIN_H
+
+#include "common.h"
+#include "wlib.h"
+#include "track.h"
+
#define E_NOTREQ (0)
#define E_REQ (1)
#define E_ERROR (2)
@@ -42,3 +48,6 @@ void UndoJoint( track_p, EPINX_T, track_p, EPINX_T );
void DrawJointTrack( drawCmd_p, coOrd, ANGLE_T, DIST_T, DIST_T, DIST_T, DIST_T, BOOL_T, BOOL_T, BOOL_T, track_p, EPINX_T, EPINX_T, DIST_T, wDrawColor, long );
DIST_T JointDistance( coOrd *, coOrd, ANGLE_T, DIST_T, DIST_T, DIST_T, DIST_T, BOOL_T, BOOL_T );
coOrd GetJointSegEndPos( coOrd, ANGLE_T, DIST_T, DIST_T, DIST_T, DIST_T, BOOL_T, BOOL_T, BOOL_T, EPINX_T, ANGLE_T * );
+
+#endif // !HAVE_CJOIN_H
+
diff --git a/app/bin/cmisc.c b/app/bin/cmisc.c
index 1e2ea39..227a7d0 100644
--- a/app/bin/cmisc.c
+++ b/app/bin/cmisc.c
@@ -20,16 +20,14 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "track.h"
+#include <stdint.h>
+
#include "common.h"
+#include "cundo.h"
#include "i18n.h"
-
-/*****************************************************************************
- *
- * DESCRIPTION WINDOW
- *
- */
-
+#include "messages.h"
+#include "param.h"
+#include "track.h"
EXPORT wIndex_t describeCmdInx;
EXPORT BOOL_T inDescribeCmd;
@@ -45,6 +43,8 @@ static BOOL_T descNeedDrawHilite;
static wPos_t describeW_posy;
static wPos_t describeCmdButtonEnd;
+static unsigned int editableLayerList[NUM_LAYERS]; /**< list of non-frozen layers */
+static int * layerValue; /**pointer to current Layer (int *) */
static paramFloatRange_t rdata = { 0, 0, 100, PDO_NORANGECHECK_HIGH|PDO_NORANGECHECK_LOW };
static paramIntegerRange_t idata = { 0, 0, 100, PDO_NORANGECHECK_HIGH|PDO_NORANGECHECK_LOW };
@@ -52,225 +52,339 @@ static paramTextData_t tdata = { 300, 150 };
static char * pivotLabels[] = { N_("First"), N_("Middle"), N_("Second"), NULL };
static paramData_t describePLs[] = {
#define I_FLOAT_0 (0)
- { PD_FLOAT, NULL, "F1", 0, &rdata },
- { PD_FLOAT, NULL, "F2", 0, &rdata },
- { PD_FLOAT, NULL, "F3", 0, &rdata },
- { PD_FLOAT, NULL, "F4", 0, &rdata },
- { PD_FLOAT, NULL, "F5", 0, &rdata },
- { PD_FLOAT, NULL, "F6", 0, &rdata },
- { PD_FLOAT, NULL, "F7", 0, &rdata },
- { PD_FLOAT, NULL, "F8", 0, &rdata },
- { PD_FLOAT, NULL, "F9", 0, &rdata },
- { PD_FLOAT, NULL, "F10", 0, &rdata },
- { PD_FLOAT, NULL, "F11", 0, &rdata },
- { PD_FLOAT, NULL, "F12", 0, &rdata },
- { PD_FLOAT, NULL, "F13", 0, &rdata },
- { PD_FLOAT, NULL, "F14", 0, &rdata },
- { PD_FLOAT, NULL, "F15", 0, &rdata },
- { PD_FLOAT, NULL, "F16", 0, &rdata },
- { PD_FLOAT, NULL, "F17", 0, &rdata },
- { PD_FLOAT, NULL, "F18", 0, &rdata },
- { PD_FLOAT, NULL, "F19", 0, &rdata },
- { PD_FLOAT, NULL, "F20", 0, &rdata },
-#define I_FLOAT_N I_FLOAT_0+20
+ { PD_FLOAT, NULL, "F1", 0, &rdata },
+ { PD_FLOAT, NULL, "F2", 0, &rdata },
+ { PD_FLOAT, NULL, "F3", 0, &rdata },
+ { PD_FLOAT, NULL, "F4", 0, &rdata },
+ { PD_FLOAT, NULL, "F5", 0, &rdata },
+ { PD_FLOAT, NULL, "F6", 0, &rdata },
+ { PD_FLOAT, NULL, "F7", 0, &rdata },
+ { PD_FLOAT, NULL, "F8", 0, &rdata },
+ { PD_FLOAT, NULL, "F9", 0, &rdata },
+ { PD_FLOAT, NULL, "F10", 0, &rdata },
+ { PD_FLOAT, NULL, "F11", 0, &rdata },
+ { PD_FLOAT, NULL, "F12", 0, &rdata },
+ { PD_FLOAT, NULL, "F13", 0, &rdata },
+ { PD_FLOAT, NULL, "F14", 0, &rdata },
+ { PD_FLOAT, NULL, "F15", 0, &rdata },
+ { PD_FLOAT, NULL, "F16", 0, &rdata },
+ { PD_FLOAT, NULL, "F17", 0, &rdata },
+ { PD_FLOAT, NULL, "F18", 0, &rdata },
+ { PD_FLOAT, NULL, "F19", 0, &rdata },
+ { PD_FLOAT, NULL, "F20", 0, &rdata },
+ { PD_FLOAT, NULL, "F21", 0, &rdata },
+ { PD_FLOAT, NULL, "F22", 0, &rdata },
+ { PD_FLOAT, NULL, "F23", 0, &rdata },
+ { PD_FLOAT, NULL, "F24", 0, &rdata },
+ { PD_FLOAT, NULL, "F25", 0, &rdata },
+ { PD_FLOAT, NULL, "F26", 0, &rdata },
+ { PD_FLOAT, NULL, "F27", 0, &rdata },
+ { PD_FLOAT, NULL, "F28", 0, &rdata },
+ { PD_FLOAT, NULL, "F29", 0, &rdata },
+ { PD_FLOAT, NULL, "F30", 0, &rdata },
+ { PD_FLOAT, NULL, "F31", 0, &rdata },
+ { PD_FLOAT, NULL, "F32", 0, &rdata },
+ { PD_FLOAT, NULL, "F33", 0, &rdata },
+ { PD_FLOAT, NULL, "F34", 0, &rdata },
+ { PD_FLOAT, NULL, "F35", 0, &rdata },
+ { PD_FLOAT, NULL, "F36", 0, &rdata },
+ { PD_FLOAT, NULL, "F37", 0, &rdata },
+ { PD_FLOAT, NULL, "F38", 0, &rdata },
+ { PD_FLOAT, NULL, "F39", 0, &rdata },
+ { PD_FLOAT, NULL, "F40", 0, &rdata },
+#define I_FLOAT_N I_FLOAT_0+40
#define I_LONG_0 I_FLOAT_N
- { PD_LONG, NULL, "I1", 0, &idata },
- { PD_LONG, NULL, "I2", 0, &idata },
- { PD_LONG, NULL, "I3", 0, &idata },
- { PD_LONG, NULL, "I4", 0, &idata },
- { PD_LONG, NULL, "I5", 0, &idata },
+ { PD_LONG, NULL, "I1", 0, &idata },
+ { PD_LONG, NULL, "I2", 0, &idata },
+ { PD_LONG, NULL, "I3", 0, &idata },
+ { PD_LONG, NULL, "I4", 0, &idata },
+ { PD_LONG, NULL, "I5", 0, &idata },
#define I_LONG_N I_LONG_0+5
#define I_STRING_0 I_LONG_N
- { PD_STRING, NULL, "S1", 0, (void*)300 },
- { PD_STRING, NULL, "S2", 0, (void*)300 },
- { PD_STRING, NULL, "S3", 0, (void*)300 },
- { PD_STRING, NULL, "S4", 0, (void*)300 },
+ { PD_STRING, NULL, "S1", 0, (void*)300 },
+ { PD_STRING, NULL, "S2", 0, (void*)300 },
+ { PD_STRING, NULL, "S3", 0, (void*)300 },
+ { PD_STRING, NULL, "S4", 0, (void*)300 },
#define I_STRING_N I_STRING_0+4
#define I_LAYER_0 I_STRING_N
- { PD_DROPLIST, NULL, "Y1", 0, (void*)150, NULL, 0 },
+ { PD_DROPLIST, NULL, "Y1", 0, (void*)150, NULL, 0 },
#define I_LAYER_N I_LAYER_0+1
#define I_COLOR_0 I_LAYER_N
- { PD_COLORLIST, NULL, "C1", 0, NULL, N_("Color") },
+ { PD_COLORLIST, NULL, "C1", 0, NULL, N_("Color") },
#define I_COLOR_N I_COLOR_0+1
#define I_LIST_0 I_COLOR_N
- { PD_DROPLIST, NULL, "L1", 0, (void*)150, NULL, 0 },
- { PD_DROPLIST, NULL, "L2", 0, (void*)150, NULL, 0 },
+ { PD_DROPLIST, NULL, "L1", 0, (void*)150, NULL, 0 },
+ { PD_DROPLIST, NULL, "L2", 0, (void*)150, NULL, 0 },
#define I_LIST_N I_LIST_0+2
#define I_EDITLIST_0 I_LIST_N
- { PD_DROPLIST, NULL, "LE1", 0, (void*)150, NULL, BL_EDITABLE },
+ { PD_DROPLIST, NULL, "LE1", 0, (void*)150, NULL, BL_EDITABLE },
#define I_EDITLIST_N I_EDITLIST_0+1
#define I_TEXT_0 I_EDITLIST_N
- { PD_TEXT, NULL, "T1", 0, &tdata },
+ { PD_TEXT, NULL, "T1", 0, &tdata },
#define I_TEXT_N I_TEXT_0+1
#define I_PIVOT_0 I_TEXT_N
- { PD_RADIO, NULL, "P1", 0, pivotLabels, N_("Pivot"), BC_HORZ|BC_NOBORDER, 0 }
+ { PD_RADIO, NULL, "P1", 0, pivotLabels, N_("Pivot"), BC_HORZ|BC_NOBORDER, 0 }
#define I_PIVOT_N I_PIVOT_0+1
- };
+};
static paramGroup_t describePG = { "describe", 0, describePLs, sizeof describePLs/sizeof describePLs[0] };
+/**
+ * A mapping table is used to map the index in the dropdown list to the layer
+ * number. While usually this is a 1:1 translation, the values differ if there
+ * are frozen layer. Frozen layers are not shown in the dropdown list.
+ */
+
+void
+CreateEditableLayersList()
+{
+ int i = 0;
+ int j = 0;
+
+ while (i <= NUM_LAYERS) {
+ if (!GetLayerFrozen(i)) {
+ editableLayerList[j++] = i;
+ }
+
+ i++;
+ }
+}
+
+/**
+ * Search a layer in the list of editable layers.
+ *
+ * \param IN layer layer to search
+ * \return the index into the list
+ */
+
+static int
+SearchEditableLayerList(unsigned int layer)
+{
+ int i;
+
+ for (i = 0; i < NUM_LAYERS; i++) {
+ if (editableLayerList[i] == layer) {
+ return (i);
+ }
+ }
-static void DrawDescHilite( void )
+ return (-1);
+}
+
+static void DrawDescHilite(void)
{
- wPos_t x, y, w, h;
- if ( descNeedDrawHilite == FALSE )
- return;
- if (descColor==0)
- descColor = wDrawColorGray(87);
- w = (wPos_t)((descSize.x/mainD.scale)*mainD.dpi+0.5);
- h = (wPos_t)((descSize.y/mainD.scale)*mainD.dpi+0.5);
- mainD.CoOrd2Pix(&mainD,descOrig,&x,&y);
- wDrawFilledRectangle( mainD.d, x, y, w, h, descColor, wDrawOptTemp );
+ wPos_t x, y, w, h;
+
+ if (descNeedDrawHilite == FALSE) {
+ return;
+ }
+
+ if (descColor==0) {
+ descColor = wDrawColorGray(87);
+ }
+
+ w = (wPos_t)((descSize.x/mainD.scale)*mainD.dpi+0.5);
+ h = (wPos_t)((descSize.y/mainD.scale)*mainD.dpi+0.5);
+ mainD.CoOrd2Pix(&mainD,descOrig,&x,&y);
+ wDrawFilledRectangle(mainD.d, x, y, w, h, descColor, wDrawOptTemp);
}
static void DescribeUpdate(
- paramGroup_p pg,
- int inx,
- void * data )
+ paramGroup_p pg,
+ int inx,
+ void * data)
{
- coOrd hi, lo;
- descData_p ddp;
- if ( inx < 0 )
- return;
- ddp = (descData_p)pg->paramPtr[inx].context;
- if ( (ddp->mode&(DESC_RO|DESC_IGNORE)) != 0 )
- return;
- if ( ddp->type == DESC_PIVOT )
- return;
- if ( (ddp->mode&DESC_NOREDRAW) == 0 )
- DrawDescHilite();
- if ( !descUndoStarted ) {
- UndoStart( _("Change Track"), "Change Track" );
- descUndoStarted = TRUE;
- }
- if (!descTrk) return; // In case timer pops after OK
- UndoModify( descTrk );
- descUpdateFunc( descTrk, ddp-descData, descData, FALSE );
- if ( descTrk ) {
- GetBoundingBox( descTrk, &hi, &lo );
- if ( OFF_D( mapD.orig, mapD.size, descOrig, descSize ) ) {
- ErrorMessage( MSG_MOVE_OUT_OF_BOUNDS );
- }
- }
- if ( (ddp->mode&DESC_NOREDRAW) == 0 ) {
- descOrig = lo;
- descSize = hi;
- descOrig.x -= descBorder;
- descOrig.y -= descBorder;
- descSize.x -= descOrig.x-descBorder;
- descSize.y -= descOrig.y-descBorder;
- DrawDescHilite();
- }
- for ( inx = 0; inx < sizeof describePLs/sizeof describePLs[0]; inx++ ) {
- if ( (describePLs[inx].option & PDO_DLGIGNORE) != 0 )
- continue;
- ddp = (descData_p)describePLs[inx].context;
- if ( (ddp->mode&DESC_IGNORE) != 0 )
- continue;
- if ( (ddp->mode&DESC_CHANGE) == 0 )
- continue;
- ddp->mode &= ~DESC_CHANGE;
- ParamLoadControl( &describePG, inx );
- }
+ coOrd hi, lo;
+ descData_p ddp;
+
+ if (inx < 0) {
+ return;
+ }
+
+ ddp = (descData_p)pg->paramPtr[inx].context;
+
+ if ((ddp->mode&(DESC_RO|DESC_IGNORE)) != 0) {
+ return;
+ }
+
+ if (ddp->type == DESC_PIVOT) {
+ return;
+ }
+
+ if ((ddp->mode&DESC_NOREDRAW) == 0) {
+ DrawDescHilite();
+ }
+
+ if (!descUndoStarted) {
+ UndoStart(_("Change Track"), "Change Track");
+ descUndoStarted = TRUE;
+ }
+
+ if (!descTrk) {
+ return; // In case timer pops after OK
+ }
+
+ UndoModify(descTrk);
+ descUpdateFunc(descTrk, ddp-descData, descData, FALSE);
+
+ if (descTrk) {
+ GetBoundingBox(descTrk, &hi, &lo);
+
+ if (OFF_D(mapD.orig, mapD.size, descOrig, descSize)) {
+ ErrorMessage(MSG_MOVE_OUT_OF_BOUNDS);
+ }
+ }
+
+ if ((ddp->mode&DESC_NOREDRAW) == 0) {
+ descOrig = lo;
+ descSize = hi;
+ descOrig.x -= descBorder;
+ descOrig.y -= descBorder;
+ descSize.x -= descOrig.x-descBorder;
+ descSize.y -= descOrig.y-descBorder;
+ DrawDescHilite();
+ }
+
+ for (inx = 0; inx < sizeof describePLs/sizeof describePLs[0]; inx++) {
+ if ((describePLs[inx].option & PDO_DLGIGNORE) != 0) {
+ continue;
+ }
+
+ ddp = (descData_p)describePLs[inx].context;
+
+ if ((ddp->mode&DESC_IGNORE) != 0) {
+ continue;
+ }
+
+ if ((ddp->mode&DESC_CHANGE) == 0) {
+ continue;
+ }
+
+ ddp->mode &= ~DESC_CHANGE;
+ ParamLoadControl(&describePG, inx);
+ }
}
-static void DescOk( void * junk )
+static void DescOk(void * junk)
{
- wHide( describePG.win );
- if ( descTrk )
- DrawDescHilite();
-
- descUpdateFunc( descTrk, -1, descData, !descUndoStarted );
- descTrk = NULL;
- if (descUndoStarted) {
- UndoEnd();
- descUndoStarted = FALSE;
- }
- descNeedDrawHilite = FALSE;
- Reset();
+ wHide(describePG.win);
+
+ if (descTrk) {
+ DrawDescHilite();
+ }
+ if (layerValue && *layerValue>=0) {
+ SetTrkLayer(descTrk, editableLayerList[*layerValue]); //int found that is really in the parm controls.
+ }
+ layerValue = NULL; // wipe out reference
+ descUpdateFunc(descTrk, -1, descData, !descUndoStarted);
+ descTrk = NULL;
+
+ if (descUndoStarted) {
+ UndoEnd();
+ descUndoStarted = FALSE;
+ }
+
+ descNeedDrawHilite = FALSE;
+ Reset();
}
static struct {
- parameterType pd_type;
- long option;
- int first;
- int last;
- } descTypeMap[] = {
-/*NULL*/ { 0, 0 },
-/*POS*/ { PD_FLOAT, PDO_DIM, I_FLOAT_0, I_FLOAT_N },
-/*FLOAT*/ { PD_FLOAT, 0, I_FLOAT_0, I_FLOAT_N },
-/*ANGLE*/ { PD_FLOAT, PDO_ANGLE, I_FLOAT_0, I_FLOAT_N },
-/*LONG*/ { PD_LONG, 0, I_LONG_0, I_LONG_N },
-/*COLOR*/ { PD_LONG, 0, I_COLOR_0, I_COLOR_N },
-/*DIM*/ { PD_FLOAT, PDO_DIM, I_FLOAT_0, I_FLOAT_N },
-/*PIVOT*/ { PD_RADIO, 0, I_PIVOT_0, I_PIVOT_N },
-/*LAYER*/ { PD_DROPLIST,PDO_LISTINDEX, I_LAYER_0, I_LAYER_N },
-/*STRING*/ { PD_STRING,0, I_STRING_0, I_STRING_N },
-/*TEXT*/ { PD_TEXT, PDO_DLGNOLABELALIGN, I_TEXT_0, I_TEXT_N },
-/*LIST*/ { PD_DROPLIST, PDO_LISTINDEX, I_LIST_0, I_LIST_N },
-/*EDITABLELIST*/{ PD_DROPLIST, 0, I_EDITLIST_0, I_EDITLIST_N } };
-
-static wControl_p AllocateButt( descData_p ddp, void * valueP, char * label, wPos_t sep )
+ parameterType pd_type;
+ long option;
+ int first;
+ int last;
+} descTypeMap[] = {
+ /*NULL*/ { 0, 0 },
+ /*POS*/ { PD_FLOAT, PDO_DIM, I_FLOAT_0, I_FLOAT_N },
+ /*FLOAT*/ { PD_FLOAT, 0, I_FLOAT_0, I_FLOAT_N },
+ /*ANGLE*/ { PD_FLOAT, PDO_ANGLE, I_FLOAT_0, I_FLOAT_N },
+ /*LONG*/ { PD_LONG, 0, I_LONG_0, I_LONG_N },
+ /*COLOR*/ { PD_LONG, 0, I_COLOR_0, I_COLOR_N },
+ /*DIM*/ { PD_FLOAT, PDO_DIM, I_FLOAT_0, I_FLOAT_N },
+ /*PIVOT*/ { PD_RADIO, 0, I_PIVOT_0, I_PIVOT_N },
+ /*LAYER*/ { PD_DROPLIST,PDO_LISTINDEX, I_LAYER_0, I_LAYER_N },
+ /*STRING*/ { PD_STRING,0, I_STRING_0, I_STRING_N },
+ /*TEXT*/ { PD_TEXT, PDO_DLGNOLABELALIGN, I_TEXT_0, I_TEXT_N },
+ /*LIST*/ { PD_DROPLIST, PDO_LISTINDEX, I_LIST_0, I_LIST_N },
+ /*EDITABLELIST*/{ PD_DROPLIST, 0, I_EDITLIST_0, I_EDITLIST_N }
+};
+
+static wControl_p AllocateButt(descData_p ddp, void * valueP, char * label,
+ wPos_t sep)
{
- int inx;
-
- for ( inx = descTypeMap[ddp->type].first; inx<descTypeMap[ddp->type].last; inx++ ) {
- if ( (describePLs[inx].option & PDO_DLGIGNORE) != 0 ) {
- describePLs[inx].option = descTypeMap[ddp->type].option;
- if ( describeW_posy > describeCmdButtonEnd )
- describePLs[inx].option |= PDO_DLGUNDERCMDBUTT;
- describeW_posy += wControlGetHeight( describePLs[inx].control ) + sep;
- describePLs[inx].context = ddp;
- describePLs[inx].valueP = valueP;
- if ( label && ddp->type != DESC_TEXT ) {
- wControlSetLabel( describePLs[inx].control, label );
- describePLs[inx].winLabel = label;
- }
- return describePLs[inx].control;
- }
- }
- AbortProg( "allocateButt: can't find %d", ddp->type );
- return NULL;
+ int inx;
+
+ for (inx = descTypeMap[ddp->type].first; inx<descTypeMap[ddp->type].last;
+ inx++) {
+ if ((describePLs[inx].option & PDO_DLGIGNORE) != 0) {
+ describePLs[inx].option = descTypeMap[ddp->type].option;
+
+ if (describeW_posy > describeCmdButtonEnd) {
+ describePLs[inx].option |= PDO_DLGUNDERCMDBUTT;
+ }
+
+ if (sep)
+ describeW_posy += wControlGetHeight(describePLs[inx].control) + sep;
+ describePLs[inx].context = ddp;
+ describePLs[inx].valueP = valueP;
+
+ if (label && ddp->type != DESC_TEXT) {
+ wControlSetLabel(describePLs[inx].control, label);
+ describePLs[inx].winLabel = label;
+ }
+
+ return describePLs[inx].control;
+ }
+ }
+
+ AbortProg("allocateButt: can't find %d", ddp->type);
+ return NULL;
}
static void DescribeLayout(
- paramData_t * pd,
- int inx,
- wPos_t colX,
- wPos_t * x,
- wPos_t * y )
+ paramData_t * pd,
+ int inx,
+ wPos_t colX,
+ wPos_t * x,
+ wPos_t * y)
{
- descData_p ddp;
- wPos_t w, h;
-
- if ( inx < 0 )
- return;
- if ( pd->context == NULL )
- return;
- ddp = (descData_p)pd->context;
- *y = ddp->posy;
- if ( ddp->type == DESC_POS &&
- ddp->control0 != pd->control ) {
- *y += wControlGetHeight( pd->control ) + 3;
- } else if ( ddp->type == DESC_TEXT ) {
- w = tdata.width;
- h = tdata.height;
- wTextSetSize( (wText_p)pd->control, w, h );
- }
- wControlShow( pd->control, TRUE );
+ descData_p ddp;
+ wPos_t w, h;
+
+ if (inx < 0) {
+ return;
+ }
+
+ if (pd->context == NULL) {
+ return;
+ }
+
+ ddp = (descData_p)pd->context;
+ *y = ddp->posy;
+
+ if (ddp->type == DESC_POS &&
+ ddp->control0 != pd->control) {
+ *x += wControlGetWidth(pd->control) + 3;
+ } else if (ddp->type == DESC_TEXT) {
+ w = tdata.width;
+ h = tdata.height;
+ wTextSetSize((wText_p)pd->control, w, h);
+ }
+
+ wControlShow(pd->control, TRUE);
}
@@ -278,89 +392,109 @@ static void DescribeLayout(
* Creation and modification of the Describe dialog box is handled here. As the number
* of values for a track element depends on the specific type, this dialog is dynamically
* updated to hsow the changable parameters only
- *
+ *
* \param IN title Description of the selected part, shown in window title bar
* \param IN trk Track element to be described
* \param IN data
* \param IN update
*
*/
+
static wList_p setLayerL;
-void DoDescribe( char * title, track_p trk, descData_p data, descUpdate_t update )
+void DoDescribe(char * title, track_p trk, descData_p data, descUpdate_t update)
{
- int inx;
- descData_p ddp;
- char * label;
- int ro_mode;
-
- if (!inDescribeCmd)
- return;
-
- descTrk = trk;
- descData = data;
- descUpdateFunc = update;
- describeW_posy = 0;
- if ( describePG.win == NULL ) {
- /* SDB 5.13.2005 */
- ParamCreateDialog( &describePG, _("Description"), _("Done"), DescOk,
- (paramActionCancelProc) DescribeCancel,
- TRUE, DescribeLayout, F_RECALLPOS,
- DescribeUpdate );
- describeCmdButtonEnd = wControlBelow( (wControl_p)describePG.helpB );
- }
- for ( inx=0; inx<sizeof describePLs/sizeof describePLs[0]; inx++ ) {
- describePLs[inx].option = PDO_DLGIGNORE;
- wControlShow( describePLs[inx].control, FALSE );
- }
- ro_mode = (GetLayerFrozen(GetTrkLayer(trk))?DESC_RO:0);
- if (ro_mode)
- for ( ddp=data; ddp->type != DESC_NULL; ddp++ ) {
- if ( ddp->mode&DESC_IGNORE )
- continue;
- ddp->mode |= ro_mode;
- }
- for ( ddp=data; ddp->type != DESC_NULL; ddp++ ) {
- if ( ddp->mode&DESC_IGNORE )
- continue;
- label = _(ddp->label);
-
- ddp->posy = describeW_posy;
- ddp->control0 = AllocateButt( ddp, ddp->valueP, label, (ddp->type == DESC_POS?3:3) );
- wControlActive( ddp->control0, ((ddp->mode|ro_mode)&DESC_RO)==0 );
- switch (ddp->type) {
- case DESC_POS:
- ddp->control1 = AllocateButt( ddp,
- &((coOrd*)(ddp->valueP))->y,
- "Y",
- 3 );
- wControlActive( ddp->control1, ((ddp->mode|ro_mode)&DESC_RO)==0 );
- break;
- case DESC_LAYER:
- wListClear((wList_p)ddp->control0); // Rebuild list on each invovation
- for ( inx = 0; inx<NUM_LAYERS; inx++ ) {
- if (!GetLayerFrozen(inx)) // Avoid Frozen layers.
- {
- sprintf( message, "%2d : %s", inx+1, GetLayerName(inx) );
- wListAddValue( (wList_p)ddp->control0, message, NULL, (void*)(intptr_t)inx );
- }
- }
- break;
- default:
- break;
- }
- }
- ParamLayoutDialog( &describePG );
- ParamLoadControls( &describePG );
- sprintf( message, "%s (T%d)", title, GetTrkIndex(trk) );
- wWinSetTitle( describePG.win, message );
- wShow( describePG.win );
+ int inx;
+ descData_p ddp;
+ char * label;
+ int ro_mode;
+
+ if (!inDescribeCmd) {
+ return;
+ }
+
+ CreateEditableLayersList();
+ descTrk = trk;
+ descData = data;
+ descUpdateFunc = update;
+ describeW_posy = 0;
+
+ if (describePG.win == NULL) {
+ /* SDB 5.13.2005 */
+ ParamCreateDialog(&describePG, _("Description"), _("Done"), DescOk,
+ (paramActionCancelProc) DescribeCancel,
+ TRUE, DescribeLayout, F_RECALLPOS,
+ DescribeUpdate);
+ describeCmdButtonEnd = wControlBelow((wControl_p)describePG.helpB);
+ }
+
+ for (inx=0; inx<sizeof describePLs/sizeof describePLs[0]; inx++) {
+ describePLs[inx].option = PDO_DLGIGNORE;
+ wControlShow(describePLs[inx].control, FALSE);
+ }
+
+ ro_mode = (GetLayerFrozen(GetTrkLayer(trk))?DESC_RO:0);
+
+ if (ro_mode)
+ for (ddp=data; ddp->type != DESC_NULL; ddp++) {
+ if (ddp->mode&DESC_IGNORE) {
+ continue;
+ }
+
+ ddp->mode |= ro_mode;
+ }
+
+ for (ddp=data; ddp->type != DESC_NULL; ddp++) {
+ if (ddp->mode&DESC_IGNORE) {
+ continue;
+ }
+
+ label = _(ddp->label);
+ ddp->posy = describeW_posy;
+ ddp->control0 = AllocateButt(ddp, ddp->valueP, label,
+ (ddp->type == DESC_POS?3:3));
+ wControlActive(ddp->control0, ((ddp->mode|ro_mode)&DESC_RO)==0);
+
+ switch (ddp->type) {
+ case DESC_POS:
+ ddp->control1 = AllocateButt(ddp,
+ &((coOrd*)(ddp->valueP))->y,
+ NULL,
+ 0);
+ wControlActive(ddp->control1, ((ddp->mode|ro_mode)&DESC_RO)==0);
+ break;
+
+ case DESC_LAYER:
+ wListClear((wList_p)ddp->control0); // Rebuild list on each invovation
+
+ for (inx = 0; inx<NUM_LAYERS; inx++) {
+ char *layerFormattedName;
+ layerFormattedName = FormatLayerName(editableLayerList[inx]);
+ wListAddValue((wList_p)ddp->control0, layerFormattedName, NULL, (void*)(long)inx);
+ free(layerFormattedName);
+ }
+
+ *(int *)(ddp->valueP) = SearchEditableLayerList(*(int *)(ddp->valueP));
+ layerValue = (int *)(ddp->valueP);
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ ParamLayoutDialog(&describePG);
+ ParamLoadControls(&describePG);
+ sprintf(message, "%s (T%d)", title, GetTrkIndex(trk));
+ wWinSetTitle(describePG.win, message);
+ wShow(describePG.win);
}
-static void DescChange( long changes )
+static void DescChange(long changes)
{
- if ( (changes&CHANGE_UNITS) && describePG.win && wWinIsVisible(describePG.win) )
- ParamLoadControls( &describePG );
+ if ((changes&CHANGE_UNITS) && describePG.win && wWinIsVisible(describePG.win)) {
+ ParamLoadControls(&describePG);
+ }
}
/*****************************************************************************
@@ -370,81 +504,93 @@ static void DescChange( long changes )
*/
-EXPORT void DescribeCancel( void )
+EXPORT void DescribeCancel(void)
{
- if ( describePG.win && wWinIsVisible(describePG.win) ) {
- if ( descTrk ) {
- descUpdateFunc( descTrk, -1, descData, TRUE );
- descTrk = NULL;
- DrawDescHilite();
- }
- wHide( describePG.win );
- if ( descUndoStarted ) {
- UndoEnd();
- descUndoStarted = FALSE;
- }
- }
- descNeedDrawHilite = FALSE;
+ if (describePG.win && wWinIsVisible(describePG.win)) {
+ if (descTrk) {
+ descUpdateFunc(descTrk, -1, descData, TRUE);
+ descTrk = NULL;
+ DrawDescHilite();
+ }
+
+ wHide(describePG.win);
+
+ if (descUndoStarted) {
+ UndoEnd();
+ descUndoStarted = FALSE;
+ }
+ }
+
+ descNeedDrawHilite = FALSE;
}
-static STATUS_T CmdDescribe( wAction_t action, coOrd pos )
+static STATUS_T CmdDescribe(wAction_t action, coOrd pos)
{
- track_p trk;
- char msg[STR_SIZE];
-
- switch (action) {
- case C_START:
- InfoMessage( _("Select track to describe") );
- descUndoStarted = FALSE;
- return C_CONTINUE;
-
- case C_DOWN:
- if ((trk = OnTrack( &pos, FALSE, FALSE )) != NULL) {
- if ( describePG.win && wWinIsVisible(describePG.win) && descTrk ) {
- DrawDescHilite();
- descUpdateFunc( descTrk, -1, descData, TRUE );
- descTrk = NULL;
- }
- descBorder = mainD.scale*0.1;
- if ( descBorder < trackGauge )
- descBorder = trackGauge;
- inDescribeCmd = TRUE;
- GetBoundingBox( trk, &descSize, &descOrig );
- descOrig.x -= descBorder;
- descOrig.y -= descBorder;
- descSize.x -= descOrig.x-descBorder;
- descSize.y -= descOrig.y-descBorder;
- descNeedDrawHilite = TRUE;
- DrawDescHilite();
- DescribeTrack( trk, msg, 255 );
- inDescribeCmd = FALSE;
- InfoMessage( msg );
- } else
- InfoMessage( "" );
- return C_CONTINUE;
-
- case C_REDRAW:
- if (describePG.win && wWinIsVisible(describePG.win) && descTrk)
- DrawDescHilite();
- break;
-
- case C_CANCEL:
- DescribeCancel();
- return C_CONTINUE;
- }
- return C_CONTINUE;
+ track_p trk;
+ char msg[STR_SIZE];
+
+ switch (action) {
+ case C_START:
+ InfoMessage(_("Select track to describe"));
+ descUndoStarted = FALSE;
+ return C_CONTINUE;
+
+ case C_DOWN:
+ if ((trk = OnTrack(&pos, FALSE, FALSE)) != NULL) {
+ if (describePG.win && wWinIsVisible(describePG.win) && descTrk) {
+ DrawDescHilite();
+ descUpdateFunc(descTrk, -1, descData, TRUE);
+ descTrk = NULL;
+ }
+
+ descBorder = mainD.scale*0.1;
+
+ if (descBorder < trackGauge) {
+ descBorder = trackGauge;
+ }
+
+ inDescribeCmd = TRUE;
+ GetBoundingBox(trk, &descSize, &descOrig);
+ descOrig.x -= descBorder;
+ descOrig.y -= descBorder;
+ descSize.x -= descOrig.x-descBorder;
+ descSize.y -= descOrig.y-descBorder;
+ descNeedDrawHilite = TRUE;
+ DrawDescHilite();
+ DescribeTrack(trk, msg, 255);
+ inDescribeCmd = FALSE;
+ InfoMessage(msg);
+ } else {
+ InfoMessage("");
+ }
+
+ return C_CONTINUE;
+
+ case C_REDRAW:
+ if (describePG.win && wWinIsVisible(describePG.win) && descTrk) {
+ DrawDescHilite();
+ }
+
+ break;
+
+ case C_CANCEL:
+ DescribeCancel();
+ return C_CONTINUE;
+ }
+
+ return C_CONTINUE;
}
#include "bitmaps/describe.xpm"
-void InitCmdDescribe( wMenu_p menu )
+void InitCmdDescribe(wMenu_p menu)
{
- describeCmdInx = AddMenuButton( menu, CmdDescribe, "cmdDescribe", _("Properties"), wIconCreatePixMap(describe_xpm),
- LEVEL0, IC_CANCEL|IC_POPUP, ACCL_DESCRIBE, NULL );
- RegisterChangeNotification( DescChange );
- ParamRegister( &describePG );
- /*AddPlaybackProc( "DESCRIBE", playbackDescribe, NULL );*/
+ describeCmdInx = AddMenuButton(menu, CmdDescribe, "cmdDescribe",
+ _("Properties"), wIconCreatePixMap(describe_xpm),
+ LEVEL0, IC_CANCEL|IC_POPUP, ACCL_DESCRIBE, NULL);
+ RegisterChangeNotification(DescChange);
+ ParamRegister(&describePG);
}
diff --git a/app/bin/cmodify.c b/app/bin/cmodify.c
index 6828ff9..594d742 100644
--- a/app/bin/cmodify.c
+++ b/app/bin/cmodify.c
@@ -1,6 +1,4 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/cmodify.c,v 1.4 2008-03-06 19:35:05 m_fischer Exp $
- *
+/** \file cmodify.c
* TRACK MODIFY
*/
@@ -22,18 +20,20 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "track.h"
+#include <math.h>
+
#include "cjoin.h"
#include "ccurve.h"
+#include "cbezier.h"
+#include "ccornu.h"
#include "cstraigh.h"
+#include "cundo.h"
+#include "fileio.h"
#include "i18n.h"
-
-/*****************************************************************************
- *
- * MODIFY
- *
- */
-
+#include "messages.h"
+#include "param.h"
+#include "track.h"
+#include "utility.h"
static struct {
track_p Trk;
@@ -49,12 +49,73 @@ static struct {
static int log_modify;
+static BOOL_T modifyBezierMode;
+static BOOL_T modifyCornuMode;
+
+/*
+ * Call cbezier.c CmdBezModify to alter Bezier Track and Lines.
+ * Picking a Bezier will allow control point(s) modifications until terminated with "Enter"
+ */
+static STATUS_T ModifyBezier(wAction_t action, coOrd pos) {
+ STATUS_T rc = C_CONTINUE;
+ if (Dex.Trk == NULL) return C_ERROR; //No track picked yet!
+ switch (action&0xFF) {
+ case C_START:
+ case C_DOWN:
+ case C_MOVE:
+ case C_UP:
+ case C_OK:
+ case C_TEXT:
+ rc = CmdBezModify(Dex.Trk, action, pos);
+ break;
+ case C_TERMINATE:
+ rc = CmdBezModify(Dex.Trk, action, pos);
+ Dex.Trk = NULL;
+ modifyBezierMode = FALSE;
+ break;
+ case C_REDRAW:
+ rc = CmdBezModify(Dex.Trk, action, pos);
+ break;
+ }
+ return rc;
+}
+
+/*
+ * Call ccornu.c CmdCornuModify to alter Cornu Track and Lines.
+ * Picking a Cornu will allow end point(s) modifications until terminated with "Enter"
+ */
+static STATUS_T ModifyCornu(wAction_t action, coOrd pos) {
+ STATUS_T rc = C_CONTINUE;
+ if (Dex.Trk == NULL) return C_ERROR; //No track picked yet!
+ switch (action&0xFF) {
+ case C_START:
+ case C_DOWN:
+ case C_MOVE:
+ case C_UP:
+ case C_OK:
+ case C_TEXT:
+ rc = CmdCornuModify(Dex.Trk, action, pos);
+ break;
+ case C_TERMINATE:
+ rc = CmdCornuModify(Dex.Trk, action, pos);
+ Dex.Trk = NULL;
+ modifyCornuMode = FALSE;
+ break;
+ case C_REDRAW:
+ rc = CmdCornuModify(Dex.Trk, action, pos);
+ break;
+ }
+ return rc;
+}
static STATUS_T CmdModify(
wAction_t action,
coOrd pos )
/*
- * Extend a track with a curve or straight.
+ * Extend and alter a track.
+ * Extend a track with a curve or straight and optionally an easement.
+ * Alter a ruler.
+ * Modify a Bezier.
*/
{
@@ -86,10 +147,15 @@ static STATUS_T CmdModify(
/*ChangeParameter( &easementPD );*/
trackGauge = 0.0;
changeTrackMode = modifyRulerMode = FALSE;
+ modifyBezierMode = FALSE;
+ modifyCornuMode = FALSE;
return C_CONTINUE;
case C_DOWN:
- changeTrackMode = modifyRulerMode = FALSE;
+ if (modifyBezierMode)
+ return ModifyBezier(C_DOWN, pos);
+ if (modifyCornuMode)
+ return ModifyCornu(C_DOWN, pos);
DYNARR_SET( trkSeg_t, tempSegs_da, 2 );
tempSegs(0).color = wDrawColorBlack;
tempSegs(0).width = 0;
@@ -107,9 +173,29 @@ static STATUS_T CmdModify(
Dex.Trk = NULL;
return C_CONTINUE;
}
+ if (QueryTrack( Dex.Trk, Q_CAN_MODIFY_CONTROL_POINTS )) { //Bezier
+ modifyBezierMode = TRUE;
+ if (ModifyBezier(C_START, pos) != C_CONTINUE) { //Call Start with track
+ modifyBezierMode = FALSE; //Function rejected Bezier
+ Dex.Trk =NULL;
+ tempSegs_da.cnt = 0;
+ }
+ return C_CONTINUE; //That's it
+ }
+ if (QueryTrack( Dex.Trk, Q_IS_CORNU )) { //Bezier
+ modifyCornuMode = TRUE;
+ if (ModifyCornu(C_START, pos) != C_CONTINUE) { //Call Start with track
+ modifyCornuMode = FALSE; //Function rejected Bezier
+ Dex.Trk =NULL;
+ tempSegs_da.cnt = 0;
+ }
+ return C_CONTINUE; //That's it
+ }
+
+
trackGauge = (IsTrack(Dex.Trk)?GetTrkGauge(Dex.Trk):0.0);
if ( (MyGetKeyState()&WKEY_SHIFT) &&
- QueryTrack( Dex.Trk, Q_CAN_MODIFYRADIUS ) &&
+ QueryTrack( Dex.Trk, Q_CAN_MODIFYRADIUS )&&
(inx=PickUnconnectedEndPoint(pos,Dex.Trk)) >= 0 ) {
trk = Dex.Trk;
while ( (trk1=GetTrkEndTrk(trk,1-inx)) &&
@@ -146,6 +232,10 @@ static STATUS_T CmdModify(
return ModifyRuler( C_MOVE, pos );
if (Dex.Trk == NULL)
return C_CONTINUE;
+ if ( modifyBezierMode )
+ return ModifyBezier(C_MOVE, pos);
+ if ( modifyCornuMode )
+ return ModifyCornu(C_MOVE, pos);
DrawSegs( &tempD, zero, 0.0, &tempSegs(0), tempSegs_da.cnt, trackGauge, wDrawColorBlack );
tempSegs_da.cnt = 0;
SnapPos( &pos );
@@ -165,6 +255,10 @@ static STATUS_T CmdModify(
return C_CONTINUE;
if ( modifyRulerMode )
return ModifyRuler( C_MOVE, pos );
+ if ( modifyBezierMode )
+ return ModifyBezier( C_UP, pos);
+ if (modifyCornuMode)
+ return ModifyCornu(C_UP, pos);
DrawSegs( &tempD, zero, 0.0, &tempSegs(0), tempSegs_da.cnt, trackGauge, wDrawColorBlack );
tempSegs_da.cnt = 0;
SnapPos( &pos );
@@ -181,6 +275,8 @@ static STATUS_T CmdModify(
case C_RDOWN:
changeTrackMode = TRUE;
modifyRulerMode = FALSE;
+ modifyBezierMode = FALSE;
+ modifyCornuMode = FALSE;
Dex.Trk = OnTrack( &pos, TRUE, TRUE );
if (Dex.Trk) {
if (!CheckTrackLayer( Dex.Trk ) ) {
@@ -212,10 +308,7 @@ LOG( log_modify, 1, ("extend endPt[%d] = [%0.3f %0.3f] A%0.3f\n",
Dex.first = TRUE;
MainRedraw();
MapRedraw();
-#ifdef LATER
- return C_CONTINUE;
-#endif
-
+ /* no break */
case C_RMOVE:
DrawSegs( &tempD, zero, 0.0, &tempSegs(0), tempSegs_da.cnt, trackGauge, wDrawColorBlack );
tempSegs_da.cnt = 0;
@@ -226,7 +319,21 @@ LOG( log_modify, 1, ("extend endPt[%d] = [%0.3f %0.3f] A%0.3f\n",
return C_CONTINUE;
Dex.first = FALSE;
Dex.pos01 = Dex.pos00;
- PlotCurve( crvCmdFromEP1, Dex.pos00, Dex.pos00x, pos, &Dex.curveData, TRUE );
+ if (Dex.params.type == curveTypeCornu) { //Restrict Cornu drag out to match end
+ ANGLE_T angle2 = NormalizeAngle(FindAngle(pos, Dex.pos00)-Dex.angle);
+ if (angle2 > 90.0 && angle2 < 270.0) {
+ if (Dex.params.cornuRadius[Dex.params.ep] == 0) {
+ Translate( &pos, Dex.pos00, Dex.angle, FindDistance( Dex.pos00, pos ) );
+ } else {
+ ANGLE_T angle = FindAngle(Dex.params.cornuCenter[Dex.params.ep],pos)-
+ FindAngle(Dex.params.cornuCenter[Dex.params.ep],Dex.pos00);
+ pos=Dex.pos00;
+ Rotate(&pos,Dex.params.cornuCenter[Dex.params.ep],angle);
+ }
+ } else pos = Dex.pos00; //Only out from end
+ PlotCurve( crvCmdFromCornu, Dex.pos00, Dex.pos00x, pos, &Dex.curveData, FALSE );
+ } else
+ PlotCurve( crvCmdFromEP1, Dex.pos00, Dex.pos00x, pos, &Dex.curveData, TRUE );
curveType = Dex.curveData.type;
if ( curveType == curveTypeStraight ) {
Dex.r1 = 0.0;
@@ -382,6 +489,8 @@ LOG( log_modify, 1, ("A0 = %0.3f, A1 = %0.3f\n",
return C_TERMINATE;
case C_REDRAW:
+ if (modifyBezierMode) return ModifyBezier(C_REDRAW, pos);
+ if (modifyCornuMode) return ModifyCornu(C_REDRAW, pos);
if ( (!changeTrackMode) && Dex.Trk && !QueryTrack( Dex.Trk, Q_MODIFY_REDRAW_DONT_UNDRAW_TRACK ) )
UndrawNewTrack( Dex.Trk );
DrawSegs( &tempD, zero, 0.0, &tempSegs(0), tempSegs_da.cnt, trackGauge, wDrawColorBlack );
@@ -390,9 +499,15 @@ LOG( log_modify, 1, ("A0 = %0.3f, A1 = %0.3f\n",
case C_TEXT:
if ( !Dex.Trk )
return C_CONTINUE;
+ if (modifyBezierMode)
+ return ModifyBezier(action, pos);
+ if (modifyCornuMode)
+ return ModifyCornu(action, pos);
return ModifyTrack( Dex.Trk, action, pos );
default:
+ if (modifyBezierMode) return ModifyBezier(action, pos);
+ if (modifyCornuMode) return ModifyCornu(action, pos);
return C_CONTINUE;
}
}
diff --git a/app/bin/cnote.c b/app/bin/cnote.c
index 88c9986..3cbd28d 100644
--- a/app/bin/cnote.c
+++ b/app/bin/cnote.c
@@ -1,5 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/cnote.c,v 1.6 2008-03-10 18:59:53 m_fischer Exp $
+/** \file cnote.c
+ * NOTE
*/
/* XTrkCad - Model Railroad CAD
@@ -19,23 +19,23 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#include <string.h>
-#include "track.h"
+#include "cundo.h"
+#include "custom.h"
+#include "fileio.h"
#include "i18n.h"
-
-/*****************************************************************************
- *
- * NOTE
- *
- */
+#include "param.h"
+#include "track.h"
+#include "utility.h"
static TRKTYP_T T_NOTE = -1;
static wDrawBitMap_p note_bm;
struct extraData {
- coOrd pos;
- char * text;
- };
+ coOrd pos;
+ char * text;
+};
extern BOOL_T inDescribeCmd;
@@ -49,56 +49,63 @@ static paramTextData_t noteTextData = { 300, 150 };
static paramData_t notePLs[] = {
#define I_NOTETEXT (0)
#define noteT ((wText_p)notePLs[I_NOTETEXT].control)
- { PD_TEXT, NULL, "text", PDO_DLGRESIZE, &noteTextData } };
+ { PD_TEXT, NULL, "text", PDO_DLGRESIZE, &noteTextData }
+};
static paramGroup_t notePG = { "note", 0, notePLs, sizeof notePLs/sizeof notePLs[0] };
-static track_p NewNote( wIndex_t index, coOrd p, long size )
+static track_p NewNote(wIndex_t index, coOrd p, long size)
{
- track_p t;
- struct extraData * xx;
- t = NewTrack( index, T_NOTE, 0, sizeof *xx );
- xx = GetTrkExtraData(t);
- xx->pos = p;
- xx->text = (char*)MyMalloc( (int)size + 2 );
- SetBoundingBox( t, p, p );
- return t;
+ track_p t;
+ struct extraData * xx;
+ t = NewTrack(index, T_NOTE, 0, sizeof *xx);
+ xx = GetTrkExtraData(t);
+ xx->pos = p;
+ xx->text = (char*)MyMalloc((int)size + 2);
+ SetBoundingBox(t, p, p);
+ return t;
}
-void ClearNote( void )
+void ClearNote(void)
{
- if (mainText) {
- MyFree(mainText);
- mainText = NULL;
- }
+ if (mainText) {
+ MyFree(mainText);
+ mainText = NULL;
+ }
}
-static void NoteOk( void * junk )
+static void NoteOk(void * junk)
{
- int len;
- if ( wTextGetModified(noteT) ) {
- ClearNote();
- len = wTextGetSize( noteT );
- mainText = (char*)MyMalloc( len+2 );
- wTextGetText( noteT, mainText, len );
- if (mainText[len-1] != '\n') {
- mainText[len++] = '\n';
- }
- mainText[len] = '\0';
- }
- wHide( noteW );
+ if (wTextGetModified(noteT)) {
+ int len;
+ ClearNote();
+ len = wTextGetSize(noteT);
+ mainText = (char*)MyMalloc(len+2);
+ wTextGetText(noteT, mainText, len);
+
+ if (mainText[len-1] != '\n') {
+ mainText[len++] = '\n';
+ }
+
+ mainText[len] = '\0';
+ }
+
+ wHide(noteW);
}
-void DoNote( void )
+void DoNote(void)
{
- if ( noteW == NULL ) {
- noteW = ParamCreateDialog( &notePG, MakeWindowTitle(_("Note")), _("Ok"), NoteOk, NULL, FALSE, NULL, F_RESIZE, NULL );
- }
- wTextClear( noteT );
- wTextAppend( noteT, mainText?mainText:_("Replace this text with your layout notes") );
- wTextSetReadonly( noteT, FALSE );
- wShow( noteW );
+ if (noteW == NULL) {
+ noteW = ParamCreateDialog(&notePG, MakeWindowTitle(_("Note")), _("Ok"), NoteOk,
+ NULL, FALSE, NULL, F_RESIZE, NULL);
+ }
+
+ wTextClear(noteT);
+ wTextAppend(noteT, mainText?mainText:
+ _("Replace this text with your layout notes"));
+ wTextSetReadonly(noteT, FALSE);
+ wShow(noteW);
}
@@ -107,238 +114,287 @@ void DoNote( void )
* NOTE OBJECT
*/
-static void DrawNote( track_p t, drawCmd_p d, wDrawColor color )
+static void DrawNote(track_p t, drawCmd_p d, wDrawColor color)
{
- struct extraData *xx = GetTrkExtraData(t);
- coOrd p[4];
- DIST_T dist;
- if (d->scale >= 16)
- return;
- if ( (d->funcs->options & wDrawOptTemp) == 0 ) {
- DrawBitMap( d, xx->pos, note_bm, color );
- } else {
- dist = 0.1*d->scale;
- p[0].x = p[1].x = xx->pos.x-dist;
- p[2].x = p[3].x = xx->pos.x+dist;
- p[1].y = p[2].y = xx->pos.y-dist;
- p[3].y = p[0].y = xx->pos.y+dist;
- DrawLine( d, p[0], p[1], 0, color );
- DrawLine( d, p[1], p[2], 0, color );
- DrawLine( d, p[2], p[3], 0, color );
- DrawLine( d, p[3], p[0], 0, color );
- }
+ struct extraData *xx = GetTrkExtraData(t);
+ coOrd p[4];
+
+ if (d->scale >= 16) {
+ return;
+ }
+
+ if ((d->funcs->options & wDrawOptTemp) == 0) {
+ DrawBitMap(d, xx->pos, note_bm, color);
+ } else {
+ DIST_T dist;
+ dist = 0.1*d->scale;
+ p[0].x = p[1].x = xx->pos.x-dist;
+ p[2].x = p[3].x = xx->pos.x+dist;
+ p[1].y = p[2].y = xx->pos.y-dist;
+ p[3].y = p[0].y = xx->pos.y+dist;
+ DrawLine(d, p[0], p[1], 0, color);
+ DrawLine(d, p[1], p[2], 0, color);
+ DrawLine(d, p[2], p[3], 0, color);
+ DrawLine(d, p[3], p[0], 0, color);
+ }
}
-static DIST_T DistanceNote( track_p t, coOrd * p )
+static DIST_T DistanceNote(track_p t, coOrd * p)
{
- struct extraData *xx = GetTrkExtraData(t);
- DIST_T d;
- d = FindDistance( *p, xx->pos );
- if (d < 1.0)
- return d;
- return 100000.0;
+ struct extraData *xx = GetTrkExtraData(t);
+ DIST_T d;
+ d = FindDistance(*p, xx->pos);
+
+ if (d < 1.0) {
+ return d;
+ }
+
+ return 100000.0;
}
static struct {
- coOrd pos;
- } noteData;
+ coOrd pos;
+ unsigned int layer;
+} noteData;
typedef enum { OR, LY, TX } noteDesc_e;
static descData_t noteDesc[] = {
-/*OR*/ { DESC_POS, N_("Position"), &noteData.pos },
-/*LY*/ { DESC_LAYER, N_("Layer"), NULL },
-/*TX*/ { DESC_TEXT, NULL, NULL },
- { DESC_NULL } };
-
-static void UpdateNote( track_p trk, int inx, descData_p descUpd, BOOL_T needUndoStart )
+ /*OR*/ { DESC_POS, N_("Position"), &noteData.pos },
+ /*LY*/ { DESC_LAYER, N_("Layer"), &noteData.layer },
+ /*TX*/ { DESC_TEXT, NULL, NULL },
+ { DESC_NULL }
+};
+
+static void UpdateNote(track_p trk, int inx, descData_p descUpd,
+ BOOL_T needUndoStart)
{
- struct extraData *xx = GetTrkExtraData(trk);
- int len;
-
- switch ( inx ) {
- case OR:
- UndrawNewTrack( trk );
- xx->pos = noteData.pos;
- SetBoundingBox( trk, xx->pos, xx->pos );
- DrawNewTrack( trk );
- break;
- case -1:
- if ( wTextGetModified((wText_p)noteDesc[TX].control0) ) {
- if ( needUndoStart )
- UndoStart( _("Change Track"), "Change Track" );
- UndoModify( trk );
- MyFree( xx->text );
- len = wTextGetSize( (wText_p)noteDesc[TX].control0 );
- xx->text = (char*)MyMalloc( len+2 );
- wTextGetText( (wText_p)noteDesc[TX].control0, xx->text, len );
- if (xx->text[len-1] != '\n') {
- xx->text[len++] = '\n';
- }
- xx->text[len] = '\0';
- }
- break;
- default:
- break;
- }
+ struct extraData *xx = GetTrkExtraData(trk);
+
+ switch (inx) {
+ case OR:
+ xx->pos = noteData.pos;
+ SetBoundingBox(trk, xx->pos, xx->pos);
+ MainRedraw();
+ break;
+
+ case LY:
+ SetTrkLayer(trk, noteData.layer);
+ MainRedraw();
+ break;
+
+ case -1:
+ if (wTextGetModified((wText_p)noteDesc[TX].control0)) {
+ int len;
+
+ if (needUndoStart) {
+ UndoStart(_("Change Track"), "Change Track");
+ }
+
+ UndoModify(trk);
+ MyFree(xx->text);
+ len = wTextGetSize((wText_p)noteDesc[TX].control0);
+ xx->text = (char*)MyMalloc(len+2);
+ wTextGetText((wText_p)noteDesc[TX].control0, xx->text, len);
+
+ if (xx->text[len-1] != '\n') {
+ xx->text[len++] = '\n';
+ }
+
+ xx->text[len] = '\0';
+ }
+ MainRedraw();
+ break;
+
+ default:
+ break;
+ }
}
-static void DescribeNote( track_p trk, char * str, CSIZE_T len )
+static void DescribeNote(track_p trk, char * str, CSIZE_T len)
{
- struct extraData * xx = GetTrkExtraData(trk);
-
- strcpy( str, _("Note: ") );
- len -= strlen(_("Note: "));
- str += strlen(_("Note: "));
- strncpy( str, xx->text, len );
- for (;*str;str++) {
- if (*str=='\n')
- *str = ' ';
- }
- noteData.pos = xx->pos;
- noteDesc[TX].valueP = xx->text;
- noteDesc[OR].mode = 0;
- noteDesc[TX].mode = 0;
- noteDesc[LY].mode = DESC_RO;
- DoDescribe( _("Note"), trk, noteDesc, UpdateNote );
+ struct extraData * xx = GetTrkExtraData(trk);
+ strcpy(str, _("Note: "));
+ len -= strlen(_("Note: "));
+ str += strlen(_("Note: "));
+ strncpy(str, xx->text, len);
+
+ for (; *str; str++) {
+ if (*str=='\n') {
+ *str = ' ';
+ }
+ }
+
+ noteData.pos = xx->pos;
+ noteDesc[TX].valueP = xx->text;
+ noteDesc[OR].mode = 0;
+ noteDesc[TX].mode = 0;
+ noteDesc[LY].mode = DESC_NOREDRAW;
+ DoDescribe(_("Note"), trk, noteDesc, UpdateNote);
}
-static void DeleteNote( track_p t )
+static void DeleteNote(track_p t)
{
- struct extraData *xx = GetTrkExtraData(t);
- if (xx->text)
- MyFree( xx->text );
+ struct extraData *xx = GetTrkExtraData(t);
+
+ if (xx->text) {
+ MyFree(xx->text);
+ }
}
-static BOOL_T WriteNote( track_p t, FILE * f )
+static BOOL_T WriteNote(track_p t, FILE * f)
{
- struct extraData *xx = GetTrkExtraData(t);
- int len;
- BOOL_T addNL = FALSE;
- BOOL_T rc = TRUE;
- len = strlen(xx->text);
- if ( xx->text[len-1] != '\n' ) {
- len++;
- addNL = TRUE;
- }
- rc &= fprintf(f, "NOTE %d %d 0 0 %0.6f %0.6f 0 %d\n", GetTrkIndex(t), GetTrkLayer(t),
- xx->pos.x, xx->pos.y, len )>0;
- rc &= fprintf(f, "%s%s", xx->text, addNL?"\n":"" )>0;
- rc &= fprintf(f, " END\n")>0;
- return rc;
+ struct extraData *xx = GetTrkExtraData(t);
+ int len;
+ BOOL_T addNL = FALSE;
+ BOOL_T rc = TRUE;
+ len = strlen(xx->text);
+
+ if (xx->text[len-1] != '\n') {
+ len++;
+ addNL = TRUE;
+ }
+
+ rc &= fprintf(f, "NOTE %d %d 0 0 %0.6f %0.6f 0 %d\n", GetTrkIndex(t),
+ GetTrkLayer(t),
+ xx->pos.x, xx->pos.y, len)>0;
+ rc &= fprintf(f, "%s%s", xx->text, addNL?"\n":"")>0;
+ rc &= fprintf(f, " END\n")>0;
+ return rc;
}
-static void ReadNote( char * line )
+static void ReadNote(char * line)
{
- coOrd pos;
- DIST_T elev;
- CSIZE_T size;
- char * cp;
- track_p t;
- struct extraData *xx;
- int len;
- wIndex_t index;
- wIndex_t layer;
- int lineCount;
-
- if ( strncmp( line, "NOTE MAIN", 9 ) == 0 ){
- if ( !GetArgs( line+9, paramVersion<3?"d":"0000d", &size ) )
- return;
- if (mainText)
- MyFree( mainText );
- mainText = (char*)MyMalloc( size+2 );
- cp = mainText;
- } else {
- if ( !GetArgs( line+5, paramVersion<3?"XXpYd":paramVersion<9?"dL00pYd":"dL00pfd",
- &index, &layer, &pos, &elev, &size ) ) {
- return;
- }
- t = NewNote( index, pos, size+2 );
- SetTrkLayer( t, layer );
- xx = GetTrkExtraData(t);
- cp = xx->text;
- }
- lineCount = 0;
- while (1) {
- line = GetNextLine();
- if (strncmp(line, " END", 7) == 0)
- break;
- len = strlen(line);
- if (size > 0 && size < len) {
- InputError( "NOTE text overflow", TRUE );
- size = -1;
- }
- if (size > 0) {
- if ( lineCount != 0 ) {
- strcat( cp, "\n" );
- cp++;
- size--;
- }
- strcpy( cp, line );
- cp += len;
- size -= len;
- }
- lineCount++;
- }
- if (cp[-1] != '\n')
- *cp++ = '\n';
- *cp = '\0';
+ coOrd pos;
+ DIST_T elev;
+ CSIZE_T size;
+ char * cp;
+ struct extraData *xx;
+ wIndex_t index;
+ wIndex_t layer;
+ int lineCount;
+
+ if (strncmp(line, "NOTE MAIN", 9) == 0) {
+ if (!GetArgs(line+9, paramVersion<3?"d":"0000d", &size)) {
+ return;
+ }
+
+ if (mainText) {
+ MyFree(mainText);
+ }
+
+ mainText = (char*)MyMalloc(size+2);
+ cp = mainText;
+ } else {
+ track_p t;
+
+ if (!GetArgs(line+5, paramVersion<3?"XXpYd":paramVersion<9?"dL00pYd":"dL00pfd",
+ &index, &layer, &pos, &elev, &size)) {
+ return;
+ }
+
+ t = NewNote(index, pos, size+2);
+ SetTrkLayer(t, layer);
+ xx = GetTrkExtraData(t);
+ cp = xx->text;
+ }
+
+ lineCount = 0;
+
+ while (1) {
+ int len;
+ line = GetNextLine();
+
+ if (strncmp(line, " END", 7) == 0) {
+ break;
+ }
+
+ len = strlen(line);
+
+ if (size > 0 && size < len) {
+ InputError("NOTE text overflow", TRUE);
+ size = -1;
+ }
+
+ if (size > 0) {
+ if (lineCount != 0) {
+ strcat(cp, "\n");
+ cp++;
+ size--;
+ }
+
+ strcpy(cp, line);
+ cp += len;
+ size -= len;
+ }
+
+ lineCount++;
+ }
+
+ if (cp[-1] != '\n') {
+ *cp++ = '\n';
+ }
+
+ *cp = '\0';
}
-static void MoveNote( track_p trk, coOrd orig )
+static void MoveNote(track_p trk, coOrd orig)
{
- struct extraData * xx = GetTrkExtraData( trk );
- xx->pos.x += orig.x;
- xx->pos.y += orig.y;
- SetBoundingBox( trk, xx->pos, xx->pos );
+ struct extraData * xx = GetTrkExtraData(trk);
+ xx->pos.x += orig.x;
+ xx->pos.y += orig.y;
+ SetBoundingBox(trk, xx->pos, xx->pos);
}
-static void RotateNote( track_p trk, coOrd orig, ANGLE_T angle )
+static void RotateNote(track_p trk, coOrd orig, ANGLE_T angle)
{
- struct extraData * xx = GetTrkExtraData( trk );
- Rotate( &xx->pos, orig, angle );
- SetBoundingBox( trk, xx->pos, xx->pos );
+ struct extraData * xx = GetTrkExtraData(trk);
+ Rotate(&xx->pos, orig, angle);
+ SetBoundingBox(trk, xx->pos, xx->pos);
}
-static void RescaleNote( track_p trk, FLOAT_T ratio )
+static void RescaleNote(track_p trk, FLOAT_T ratio)
{
- struct extraData * xx = GetTrkExtraData( trk );
- xx->pos.x *= ratio;
- xx->pos.y *= ratio;
+ struct extraData * xx = GetTrkExtraData(trk);
+ xx->pos.x *= ratio;
+ xx->pos.y *= ratio;
}
static trackCmd_t noteCmds = {
- "NOTE",
- DrawNote,
- DistanceNote,
- DescribeNote,
- DeleteNote,
- WriteNote,
- ReadNote,
- MoveNote,
- RotateNote,
- RescaleNote,
- NULL, /* audit */
- NULL, /* getAngle */
- NULL, /* split */
- NULL, /* traverse */
- NULL, /* enumerate */
- NULL /* redraw */ };
-
-
-BOOL_T WriteMainNote( FILE* f )
+ "NOTE",
+ DrawNote,
+ DistanceNote,
+ DescribeNote,
+ DeleteNote,
+ WriteNote,
+ ReadNote,
+ MoveNote,
+ RotateNote,
+ RescaleNote,
+ NULL, /* audit */
+ NULL, /* getAngle */
+ NULL, /* split */
+ NULL, /* traverse */
+ NULL, /* enumerate */
+ NULL /* redraw */
+};
+
+
+BOOL_T WriteMainNote(FILE* f)
{
- BOOL_T rc = TRUE;
- if (mainText && *mainText) {
- rc &= fprintf(f, "NOTE MAIN 0 0 0 0 %d\n", strlen(mainText) )>0;
- rc &= fprintf(f, "%s", mainText )>0;
- rc &= fprintf(f, " END\n")>0;
- }
- return rc;
+ BOOL_T rc = TRUE;
+
+ if (mainText && *mainText) {
+ rc &= fprintf(f, "NOTE MAIN 0 0 0 0 %lu\n", strlen(mainText))>0;
+ rc &= fprintf(f, "%s", mainText)>0;
+ rc &= fprintf(f, " END\n")>0;
+ }
+
+ return rc;
}
/*****************************************************************************
@@ -347,63 +403,71 @@ BOOL_T WriteMainNote( FILE* f )
-static STATUS_T CmdNote( wAction_t action, coOrd pos )
+static STATUS_T CmdNote(wAction_t action, coOrd pos)
{
- static coOrd oldPos;
- track_p trk;
- struct extraData * xx;
- const char* tmpPtrText;
-
- switch (action) {
- case C_START:
- InfoMessage( _("Place a note on the layout") );
- return C_CONTINUE;
- case C_DOWN:
- DrawBitMap( &tempD, pos, note_bm, normalColor );
- oldPos = pos;
- return C_CONTINUE;
- case C_MOVE:
- DrawBitMap( &tempD, oldPos, note_bm, normalColor );
- DrawBitMap( &tempD, pos, note_bm, normalColor );
- oldPos = pos;
- return C_CONTINUE;
- break;
- case C_UP:
- UndoStart( _("New Note"), "New Note" );
- trk = NewNote( -1, pos, 2 );
- DrawNewTrack( trk );
- xx = GetTrkExtraData(trk);
-
- tmpPtrText = _("Replace this text with your note");
- xx->text = (char*)MyMalloc( strlen(tmpPtrText) + 1 );
- strcpy( xx->text, tmpPtrText);
-
- inDescribeCmd = TRUE;
- DescribeNote( trk, message, sizeof message );
- inDescribeCmd = FALSE;
- return C_CONTINUE;
- case C_REDRAW:
- DrawBitMap( &tempD, oldPos, note_bm, normalColor );
- return C_CONTINUE;
- case C_CANCEL:
- DescribeCancel();
- return C_CONTINUE;
- }
- return C_INFO;
+ static coOrd oldPos;
+ track_p trk;
+ struct extraData * xx;
+ const char* tmpPtrText;
+ static int state_on = FALSE;
+
+ switch (action) {
+ case C_START:
+ InfoMessage(_("Place a note on the layout"));
+ return C_CONTINUE;
+
+ case C_DOWN:
+ state_on = TRUE;
+ oldPos = pos;
+ MainRedraw();
+ return C_CONTINUE;
+
+ case C_MOVE:
+ oldPos = pos;
+ MainRedraw();
+ return C_CONTINUE;
+ break;
+
+ case C_UP:
+ UndoStart(_("New Note"), "New Note");
+ state_on = FALSE;
+ MainRedraw();
+ trk = NewNote(-1, pos, 2);
+ DrawNewTrack(trk);
+ xx = GetTrkExtraData(trk);
+ tmpPtrText = _("Replace this text with your note");
+ xx->text = (char*)MyMalloc(strlen(tmpPtrText) + 1);
+ strcpy(xx->text, tmpPtrText);
+ inDescribeCmd = TRUE;
+ DescribeNote(trk, message, sizeof message);
+ inDescribeCmd = FALSE;
+ return C_CONTINUE;
+
+ case C_REDRAW:
+ if (state_on) DrawBitMap(&tempD, oldPos, note_bm, normalColor);
+ return C_CONTINUE;
+
+ case C_CANCEL:
+ DescribeCancel();
+ return C_CONTINUE;
+ }
+
+ return C_INFO;
}
#include "bitmaps/note.xbm"
#include "bitmaps/cnote.xpm"
-void InitCmdNote( wMenu_p menu )
+void InitCmdNote(wMenu_p menu)
{
- ParamRegister( &notePG );
- AddMenuButton( menu, CmdNote, "cmdNote", _("Note"), wIconCreatePixMap(cnote_xpm), LEVEL0_50, IC_POPUP2, ACCL_NOTE, NULL );
+ ParamRegister(&notePG);
+ AddMenuButton(menu, CmdNote, "cmdNote", _("Note"), wIconCreatePixMap(cnote_xpm),
+ LEVEL0_50, IC_POPUP2, ACCL_NOTE, NULL);
}
-void InitTrkNote( void )
+void InitTrkNote(void)
{
- note_bm = wDrawBitMapCreate( mainD.d, note_width, note_width, 8, 8, note_bits );
- T_NOTE = InitObject( &noteCmds );
+ note_bm = wDrawBitMapCreate(mainD.d, note_width, note_width, 8, 8, note_bits);
+ T_NOTE = InitObject(&noteCmds);
}
diff --git a/app/bin/common.h b/app/bin/common.h
index e238e33..255e8d7 100644
--- a/app/bin/common.h
+++ b/app/bin/common.h
@@ -1,5 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/common.h,v 1.2 2008-02-23 07:27:15 m_fischer Exp $
+/** \file common.h
+ * Defnitions of basic types
*/
/* XTrkCad - Model Railroad CAD
@@ -23,6 +23,8 @@
#ifndef COMMON_H
#define COMMON_H
+#include <stdlib.h>
+
#ifndef TRUE
#define TRUE (1)
#define FALSE (0)
@@ -99,21 +101,18 @@ typedef struct {
abort(); \
} \
(DA).cnt = N; }
+#define DYNARR_FREE(T,DA) \
+ { if ((DA).ptr) { \
+ MyFree( (DA).ptr); \
+ (DA).ptr = NULL; \
+ } \
+ (DA).max = 0; \
+ (DA).cnt = 0; }
#ifdef WINDOWS
-#ifdef FAR
-#undef FAR
-#endif
-#ifndef WIN32
-#define FAR _far
-#else
-#define FAR
-#endif
#define M_PI 3.14159
#define strcasecmp _stricmp
#define strncasecmp _strnicmp
-#else
-#define FAR
#endif
#if _MSC_VER >1300
diff --git a/app/bin/compound.c b/app/bin/compound.c
index ed585f7..972ff82 100644
--- a/app/bin/compound.c
+++ b/app/bin/compound.c
@@ -22,15 +22,20 @@
*/
#include <ctype.h>
-#include "track.h"
-#include "compound.h"
-#include "shrtpath.h"
+#include <math.h>
+#include <string.h>
+
+
+#include "tbezier.h"
#include "cjoin.h"
+#include "common.h"
+#include "compound.h"
+#include "cundo.h"
+#include "fileio.h"
#include "i18n.h"
-
-#if _MSC_VER >=1400
-#define strdup _strdup
-#endif
+#include "shrtpath.h"
+#include "track.h"
+#include "utility.h"
/*****************************************************************************
*
@@ -326,41 +331,6 @@ void DrawCompoundDescription(
Rotate( &p1, zero, xx->angle );
p1.x += xx->orig.x + xx->descriptionOff.x;
p1.y += xx->orig.y + xx->descriptionOff.y;
-#ifdef LATER
- maxInx = -1;
- for ( inx=0,a=0.0; a<360.0; inx++,a+=45 ) {
- Translate( &p1, p0, a, trackGauge*3 );
- dists[inx].p = p1;
- if ((trk1 = dists[inx].trk = OnTrack( &p1, FALSE, TRUE )) == NULL ||
- trk1 == trk ) {
- p1 = dists[inx].p;
- dists[inx].d = DistanceSegs( xx->orig, xx->angle, xx->segCnt, xx->segs, &p1, NULL );
- } else if ( GetTrkType(trk1) == T_TURNOUT ) {
- struct extraData *yy = GetTrkExtraData(trk1);
- dists[inx].d = DistanceSegs( yy->orig, yy->angle, yy->segCnt, yy->segs, &p1, NULL );
- } else {
- dists[inx].d = FindDistance( p0, p1 );
- }
- }
- maxD = 0; maxInx = -1;
- for ( inx=0,a=0.0; a<360.0; inx++,a+=45 ) {
- if (dists[inx].trk == NULL || dists[inx].trk == trk) {
- if (dists[inx].d > maxD) {
- maxD = dists[inx].d;
- maxInx = inx;
- }
- }
- }
- if (maxInx == -1) {
- if (dists[inx].d > maxD) {
- maxD = dists[inx].d;
- maxInx = inx;
- }
- }
- if (maxInx != -1) {
- p0 = dists[maxInx].p;
- }
-#endif
fp = wStandardFont( F_TIMES, FALSE, FALSE );
DrawBoxedString( (xx->special==TOpier)?BOX_INVERT:BOX_NONE, d, p1, desc, fp, (wFontSize_t)descriptionFontSize, color, 0.0 );
}
@@ -374,6 +344,8 @@ DIST_T CompoundDescriptionDistance(
coOrd p1;
if (GetTrkType(trk) != T_TURNOUT && GetTrkType(trk) != T_STRUCTURE)
return 100000;
+ if ( (GetTrkBits( trk ) & TB_HIDEDESC) != 0 )
+ return 100000;
p1 = xx->descriptionOrig;
Rotate( &p1, zero, xx->angle );
p1.x += xx->orig.x + xx->descriptionOff.x;
@@ -389,30 +361,37 @@ STATUS_T CompoundDescriptionMove(
{
struct extraData *xx = GetTrkExtraData(trk);
static coOrd p0, p1;
+ static BOOL_T editMode;
wDrawColor color;
switch (action) {
case C_DOWN:
+ editMode = TRUE;
REORIGIN( p0, xx->descriptionOrig, xx->angle, xx->orig )
case C_MOVE:
case C_UP:
- if (action != C_DOWN)
- DrawLine( &tempD, p0, p1, 0, wDrawColorBlack );
color = GetTrkColor( trk, &mainD );
- DrawCompoundDescription( trk, &tempD, color );
xx->descriptionOff.x = (pos.x-p0.x);
xx->descriptionOff.y = (pos.y-p0.y);
p1 = xx->descriptionOrig;
Rotate( &p1, zero, xx->angle );
p1.x += xx->orig.x + xx->descriptionOff.x;
p1.y += xx->orig.y + xx->descriptionOff.y;
- DrawCompoundDescription( trk, &tempD, color );
- if (action != C_UP)
- DrawLine( &tempD, p0, p1, 0, wDrawColorBlack );
- MainRedraw();
+ if (action == C_UP) {
+ editMode = FALSE;
+ }
+ MainRedraw();
+ MapRedraw();
return action==C_UP?C_TERMINATE:C_CONTINUE;
+ break;
+ case C_REDRAW:
+ if (editMode) {
+ DrawLine( &tempD, p0, p1, 0, wDrawColorBlack );
+ }
}
+
+
return C_CONTINUE;
}
@@ -494,8 +473,11 @@ DIST_T DistanceCompound(
static struct {
- coOrd endPt[2];
- FLOAT_T elev[2];
+ coOrd endPt[4];
+ ANGLE_T endAngle[4];
+ DIST_T endRadius[4];
+ coOrd endCenter[4];
+ FLOAT_T elev[4];
coOrd orig;
ANGLE_T angle;
char manuf[STR_SIZE];
@@ -503,23 +485,40 @@ static struct {
char partno[STR_SIZE];
long epCnt;
long segCnt;
+ long pathCnt;
FLOAT_T grade;
DIST_T length;
- LAYER_T layerNumber;
+ unsigned int layerNumber;
} compoundData;
-typedef enum { E0, Z0, E1, Z1, GR, OR, AN, MN, NM, PN, EC, SC, LY } compoundDesc_e;
+typedef enum { E0, A0, C0, R0, Z0, E1, A1, C1, R1, Z1, E2, A2, C2, R2, Z2, E3, A3, C3, R3, Z3, GR, OR, AN, MN, NM, PN, EC, SC, LY } compoundDesc_e;
static descData_t compoundDesc[] = {
-/*E0*/ { DESC_POS, N_("End Pt 1: X"), &compoundData.endPt[0] },
-/*Z0*/ { DESC_DIM, N_("Z"), &compoundData.elev[0] },
-/*E1*/ { DESC_POS, N_("End Pt 2: X"), &compoundData.endPt[1] },
-/*Z1*/ { DESC_DIM, N_("Z"), &compoundData.elev[1] },
+/*E0*/ { DESC_POS, N_("End Pt 1: X,Y"), &compoundData.endPt[0] },
+/*A0*/ { DESC_ANGLE, N_("Angle"), &compoundData.endAngle[0] },
+/*C0*/ { DESC_POS, N_("Center X,Y"), &compoundData.endCenter[0] },
+/*R0*/ { DESC_DIM, N_("Radius"), &compoundData.endRadius[0] },
+/*Z0*/ { DESC_DIM, N_("Z1"), &compoundData.elev[0] },
+/*E1*/ { DESC_POS, N_("End Pt 2: X,Y"), &compoundData.endPt[1] },
+/*A1*/ { DESC_ANGLE, N_("Angle"), &compoundData.endAngle[1] },
+/*C1*/ { DESC_POS, N_("Center X,Y"), &compoundData.endCenter[1] },
+/*R1*/ { DESC_DIM, N_("Radius"), &compoundData.endRadius[1] },
+/*Z1*/ { DESC_DIM, N_("Z2"), &compoundData.elev[1] },
+/*E2*/ { DESC_POS, N_("End Pt 3: X,Y"), &compoundData.endPt[2] },
+/*A2*/ { DESC_ANGLE, N_("Angle"), &compoundData.endAngle[2] },
+/*C2*/ { DESC_POS, N_("Center X,Y"), &compoundData.endCenter[2] },
+/*R2*/ { DESC_DIM, N_("Radius"), &compoundData.endRadius[2] },
+/*Z2*/ { DESC_DIM, N_("Z3"), &compoundData.elev[2] },
+/*E3*/ { DESC_POS, N_("End Pt 4: X,Y"), &compoundData.endPt[3] },
+/*A3*/ { DESC_ANGLE, N_("Angle"), &compoundData.endAngle[3] },
+/*C3*/ { DESC_POS, N_("Center X,Y"), &compoundData.endCenter[3] },
+/*R3*/ { DESC_DIM, N_("Radius"), &compoundData.endRadius[3] },
+/*Z3*/ { DESC_DIM, N_("Z4"), &compoundData.elev[3] },
/*GR*/ { DESC_FLOAT, N_("Grade"), &compoundData.grade },
-/*OR*/ { DESC_POS, N_("Origin: X"), &compoundData.orig },
+/*OR*/ { DESC_POS, N_("Origin: X,Y"), &compoundData.orig },
/*AN*/ { DESC_ANGLE, N_("Angle"), &compoundData.angle },
/*MN*/ { DESC_STRING, N_("Manufacturer"), &compoundData.manuf },
/*NM*/ { DESC_STRING, N_("Name"), &compoundData.name },
/*PN*/ { DESC_STRING, N_("Part No"), &compoundData.partno },
-/*EC*/ { DESC_LONG, N_("# End Pt"), &compoundData.epCnt },
+/*EC*/ { DESC_LONG, N_("# End Pts"), &compoundData.epCnt },
/*SC*/ { DESC_LONG, N_("# Segments"), &compoundData.segCnt },
/*LY*/ { DESC_LAYER, N_("Layer"), &compoundData.layerNumber },
{ DESC_NULL } };
@@ -616,36 +615,55 @@ static void UpdateCompound( track_p trk, int inx, descData_p descUpd, BOOL_T nee
MoveTrack( trk, pos );
ComputeCompoundBoundingBox( trk );
break;
+ case A0:
+ case A1:
+ case A2:
+ case A3:
+ if (inx==E3) ep=3;
+ else if (inx==E2) ep=2;
+ else if (inx==E1) ep=1;
+ else ep=0;
+ RotateTrack( trk, xx->orig, NormalizeAngle( compoundData.endAngle[ep]-xx->angle ) );
+ ComputeCompoundBoundingBox( trk );
+ compoundData.angle = xx->angle;
+ compoundDesc[AN].mode |= DESC_CHANGE;
+ break;
case AN:
RotateTrack( trk, xx->orig, NormalizeAngle( compoundData.angle-xx->angle ) );
ComputeCompoundBoundingBox( trk );
break;
case E0:
case E1:
- ep = (inx==E0?0:1);
+ case E2:
+ case E3:
+ if (inx==E3) ep=3;
+ else if (inx==E2) ep=2;
+ else if (inx==E1) ep=1;
+ else ep=0;
pos = GetTrkEndPos(trk,ep);
pos.x = compoundData.endPt[ep].x - pos.x;
pos.y = compoundData.endPt[ep].y - pos.y;
MoveTrack( trk, pos );
ComputeCompoundBoundingBox( trk );
- if ( compoundData.epCnt >= 2 ) {
- compoundData.endPt[1-ep] = GetTrkEndPos(trk,1-ep);
- compoundDesc[inx==E0?E1:E0].mode |= DESC_CHANGE;
- }
break;
case Z0:
case Z1:
- ep = (inx==Z0?0:1);
+ case Z2:
+ case Z3:
+ ep = (inx==Z0?0:(inx==Z1?1:(inx==Z2?2:3)));
UpdateTrkEndElev( trk, ep, GetTrkEndElevUnmaskedMode(trk,ep), compoundData.elev[ep], NULL );
if ( GetTrkEndPtCnt(trk) == 1 )
break;
- ComputeElev( trk, 1-ep, FALSE, &compoundData.elev[1-ep], NULL );
+ for (int i=0;i<compoundData.epCnt;i++) {
+ if (i==ep) continue;
+ ComputeElev( trk, i, FALSE, &compoundData.elev[i], NULL );
+ }
if ( compoundData.length > minLength )
compoundData.grade = fabs( (compoundData.elev[0]-compoundData.elev[1])/compoundData.length )*100.0;
else
compoundData.grade = 0.0;
compoundDesc[GR].mode |= DESC_CHANGE;
- compoundDesc[inx==Z0?Z1:Z0].mode |= DESC_CHANGE;
+ compoundDesc[Z0+(E1-E0)*inx].mode |= DESC_CHANGE;
break;
case LY:
SetTrkLayer( trk, compoundData.layerNumber);
@@ -653,6 +671,35 @@ static void UpdateCompound( track_p trk, int inx, descData_p descUpd, BOOL_T nee
default:
break;
}
+ switch ( inx ) {
+ case A0:
+ case A1:
+ case A2:
+ case A3:
+ case E0:
+ case E1:
+ case E2:
+ case E3:
+ case AN:
+ case OR:
+ for (int i=0;i<compoundData.epCnt;i++) {
+ compoundData.endPt[i] = GetTrkEndPos(trk,i);
+ compoundDesc[i*(E1-E0)+E0].mode |= DESC_CHANGE;
+ trackParams_t params;
+ compoundData.endAngle[i] = GetTrkEndAngle(trk,i);
+ compoundDesc[i*(E1-E0)+A0].mode |= DESC_CHANGE;
+ GetTrackParams(PARAMS_CORNU,trk,compoundData.endPt[i],&params);
+ compoundData.endRadius[i] = params.arcR;
+ if (params.arcR != 0.0) {
+ compoundData.endCenter[i] = params.arcP;
+ compoundDesc[i*(E1-E0)+C0].mode |= DESC_CHANGE;
+ }
+ }
+ break;
+ default:
+ break;
+ };
+
DrawNewTrack( trk );
}
@@ -691,9 +738,11 @@ void DescribeCompound(
epCnt = GetTrkEndPtCnt(trk);
fix = 0;
+ mode = 0;
for ( ep=0; ep<epCnt; ep++ ) {
if (GetTrkEndTrk(trk,ep)) {
fix = 1;
+ mode = DESC_RO;
break;
}
}
@@ -735,10 +784,15 @@ void DescribeCompound(
compoundData.segCnt = xx->segCnt;
compoundData.length = 0;
compoundData.layerNumber = GetTrkLayer( trk );
- compoundDesc[E0].mode =
- compoundDesc[Z0].mode =
- compoundDesc[E1].mode =
- compoundDesc[Z1].mode =
+
+ for ( int i=0 ; i<4 ; i++) {
+ compoundDesc[E0+(E1-E0)*i].mode = DESC_IGNORE;
+ compoundDesc[A0+(E1-E0)*i].mode = DESC_IGNORE;
+ compoundDesc[R0+(E1-E0)*i].mode = DESC_IGNORE;
+ compoundDesc[C0+(E1-E0)*i].mode = DESC_IGNORE;
+ compoundDesc[Z0+(E1-E0)*i].mode = DESC_IGNORE;
+ }
+
compoundDesc[GR].mode = DESC_IGNORE;
compoundDesc[OR].mode =
compoundDesc[AN].mode = fix?DESC_RO:0;
@@ -746,37 +800,37 @@ void DescribeCompound(
compoundDesc[NM].mode =
compoundDesc[PN].mode = 0 /*DESC_NOREDRAW*/;
compoundDesc[EC].mode =
- compoundDesc[SC].mode =
+ compoundDesc[SC].mode = DESC_RO;
compoundDesc[LY].mode = DESC_NOREDRAW;
- if ( compoundData.epCnt ) {
- if ( compoundData.epCnt <=2 ) {
- if ( GetTrkEndTrk(trk,0) || (compoundData.epCnt==2 && GetTrkEndTrk(trk,1)) )
- mode = DESC_RO;
- else
- mode = 0;
- compoundDesc[OR].mode = DESC_IGNORE;
- compoundDesc[AN].mode = DESC_IGNORE;
- compoundDesc[EC].mode = DESC_IGNORE;
- compoundData.endPt[0] = GetTrkEndPos(trk,0);
- ComputeElev( trk, 0, FALSE, &compoundData.elev[0], NULL );
- compoundDesc[E0].mode = (int)mode;
- compoundDesc[Z0].mode = (EndPtIsDefinedElev(trk,0)?0:DESC_RO)|DESC_NOREDRAW;
- if ( compoundData.epCnt == 2 ) {
- compoundData.length = GetTrkLength( trk, 0, 1 );
- compoundData.endPt[1] = GetTrkEndPos(trk,1);
- ComputeElev( trk, 1, FALSE, &compoundData.elev[1], NULL );
- compoundDesc[E1].mode = (int)mode;
- compoundDesc[Z1].mode = (EndPtIsDefinedElev(trk,1)?0:DESC_RO)|DESC_NOREDRAW;
- compoundDesc[GR].mode = DESC_RO;
- if ( compoundData.length > minLength )
- compoundData.grade = fabs( (compoundData.elev[0]-compoundData.elev[1])/compoundData.length )*100.0;
- else
- compoundData.grade = 0.0;
+ if (compoundData.epCnt >0) {
+ for (int i=0;i<compoundData.epCnt;i++) {
+ compoundDesc[A0+(E1-E0)*i].mode = (int)mode;
+ compoundDesc[R0+(E1-E0)*i].mode = DESC_RO;
+ compoundDesc[C0+(E1-E0)*i].mode = DESC_RO;
+ compoundDesc[E0+(E1-E0)*i].mode = (int)mode;
+ compoundData.endPt[i] = GetTrkEndPos(trk,i);
+ compoundData.endAngle[i] = GetTrkEndAngle(trk,i);
+ trackParams_t params;
+ GetTrackParams(PARAMS_CORNU,trk,compoundData.endPt[i],&params);
+ compoundData.endRadius[i] = params.arcR;
+ if (params.arcR != 0.0) {
+ compoundData.endCenter[i] = params.arcP;
+ } else {
+ compoundDesc[C0+(E1-E0)*i].mode = DESC_IGNORE;
+ compoundDesc[R0+(E1-E0)*i].mode = DESC_IGNORE;
}
+ ComputeElev( trk, i, FALSE, &compoundData.elev[i], NULL );
+ compoundDesc[Z0+(E1-E0)*i].mode = (EndPtIsDefinedElev(trk,i)?0:DESC_RO)|DESC_NOREDRAW;
}
+ compoundDesc[GR].mode = DESC_RO;
+ }
+ if ( compoundData.length > minLength && compoundData.epCnt > 1)
+ compoundData.grade = fabs( (compoundData.elev[0]-compoundData.elev[1])/compoundData.length )*100.0;
+ else
+ compoundData.grade = 0.0;
+ if ( compoundData.epCnt >1 ) {
DoDescribe( compoundData.epCnt>2?_("Turnout"):_("Sectional Track"), trk, compoundDesc, UpdateCompound );
} else {
- compoundDesc[EC].mode |= DESC_IGNORE;
DoDescribe( _("Structure"), trk, compoundDesc, UpdateCompound );
}
}
@@ -785,6 +839,9 @@ void DescribeCompound(
void DeleteCompound(
track_p t )
{
+ struct extraData *xx = GetTrkExtraData(t);
+ FreeFilledDraw( xx->segCnt, xx->segs );
+ MyFree( xx->segs );
}
@@ -894,6 +951,8 @@ EXPORT track_p NewCompound(
xx->pathCurr = xx->paths;
xx->segCnt = segCnt;
xx->segs = memdup( segs, segCnt * sizeof *segs );
+ trkSeg_p p = xx->segs;
+ FixUpBezierSegs(xx->segs,xx->segCnt);
ComputeCompoundBoundingBox( trk );
SetDescriptionOrig( trk );
for ( ep=0; ep<epCnt; ep++ )
diff --git a/app/bin/compound.h b/app/bin/compound.h
index a0de926..4845f78 100644
--- a/app/bin/compound.h
+++ b/app/bin/compound.h
@@ -1,4 +1,6 @@
-/* $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/compound.h,v 1.1 2005-12-07 15:47:08 rc-flyer Exp $ */
+/** \file compound.h
+ * Definitions and function prototypes for complex elements (eg. turnouts)
+ */
/* XTrkCad - Model Railroad CAD
* Copyright (C) 2005 Dave Bullis
@@ -21,6 +23,9 @@
#ifndef COMPOUND_H
#define COMPOUND_H
+#include "common.h"
+#include "track.h"
+
typedef enum { TOnormal, TOadjustable, TOpierInfo, TOpier, TOcarDesc, TOlast } TOspecial_e;
typedef struct {
@@ -91,6 +96,9 @@ struct extraData {
extern TRKTYP_T T_TURNOUT;
extern TRKTYP_T T_STRUCTURE;
+extern TRKTYP_T T_BEZIER;
+extern TRKTYP_T T_BZRLIN;
+extern TRKTYP_T T_CORNU;
extern DIST_T curBarScale;
extern dynArr_t turnoutInfo_da;
extern dynArr_t structureInfo_da;
diff --git a/app/bin/cparalle.c b/app/bin/cparalle.c
index 28e3513..8e70408 100644
--- a/app/bin/cparalle.c
+++ b/app/bin/cparalle.c
@@ -1,8 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/cparalle.c,v 1.5 2009-05-25 18:11:03 m_fischer Exp $
- *
+/** \file cparalle.c
* PARALLEL
- *
*/
/* XTrkCad - Model Railroad CAD
@@ -23,10 +20,16 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "track.h"
+#include <math.h>
+
#include "ccurve.h"
#include "cstraigh.h"
+#include "cundo.h"
#include "i18n.h"
+#include "messages.h"
+#include "param.h"
+#include "track.h"
+#include "utility.h"
static struct {
track_p Trk;
@@ -90,6 +93,7 @@ static STATUS_T CmdParallel( wAction_t action, coOrd pos )
}
if ( !QueryTrack( Dpa.Trk, Q_CAN_PARALLEL ) ) {
Dpa.Trk = NULL;
+ InfoMessage(_(" Track doesn't support parallel"));
return C_CONTINUE;
}
/* in case query has changed things (eg joint) */
@@ -101,6 +105,7 @@ static STATUS_T CmdParallel( wAction_t action, coOrd pos )
tempSegs_da.cnt = 0;
case C_MOVE:
+
if (Dpa.Trk == NULL) return C_CONTINUE;
DrawSegs( &tempD, zero, 0.0, &tempSegs(0), tempSegs_da.cnt, trackGauge, wDrawColorBlack );
if ( !MakeParallelTrack( Dpa.Trk, pos, parSeparation, NULL, &p0, &p1 ) ) {
diff --git a/app/bin/cprint.c b/app/bin/cprint.c
index d89d1e2..88a9151 100644
--- a/app/bin/cprint.c
+++ b/app/bin/cprint.c
@@ -1,7 +1,5 @@
/** \file cprint.c
* Printing functions.
- *
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/cprint.c,v 1.6 2009-08-16 13:26:41 m_fischer Exp $
*/
/* XTrkCad - Model Railroad CAD
@@ -26,9 +24,16 @@
#include <time.h>
#include <string.h>
#include <ctype.h>
-#include "track.h"
-#include "i18n.h"
+#include <math.h>
+#include "custom.h"
+#include "fileio.h"
+#include "i18n.h"
+#include "layout.h"
+#include "messages.h"
+#include "param.h"
+#include "track.h"
+#include "utility.h"
#define PRINT_GAUDY (0)
#define PRINT_PLAIN (1)
@@ -73,6 +78,7 @@ static long printRoadbed = 0;
static DIST_T printRoadbedWidth = 0.0;
static BOOL_T printRotate = FALSE;
static BOOL_T rotateCW = FALSE;
+static long printCenterLine = 0;
static double printScale = 16;
static long iPrintScale = 16;
@@ -101,6 +107,7 @@ static char * printPhysSizeLabels[] = { N_("Ignore Page Margins"), NULL };
static char * printGridLabels[] = { N_("Print Snap Grid"), NULL };
static char * printRulerLabels[] = { N_("Print Rulers"), NULL };
static char * printRoadbedLabels[] = { N_("Print Roadbed Outline"), NULL };
+static char * printCenterLineLabels[] = { N_("Print Centerline below Scale 1:1"), NULL };
static paramIntegerRange_t rminScale_999 = { 1, 999, 0, PDO_NORANGECHECK_HIGH };
static paramFloatRange_t r0_ = { 0, 0, 0, PDO_NORANGECHECK_HIGH };
static paramFloatRange_t r1_ = { 1, 0, 0, PDO_NORANGECHECK_HIGH };
@@ -124,19 +131,22 @@ static paramData_t printPLs[] = {
/*10*/ { PD_TOGGLE, &printGrid, "grid", PDO_DLGNOLABELALIGN, printGridLabels, NULL, BC_HORZ|BC_NOBORDER },
#define I_RULER (11)
/*11*/ { PD_TOGGLE, &printRuler, "ruler", PDO_DLGNOLABELALIGN, printRulerLabels, NULL, BC_HORZ|BC_NOBORDER },
-#define I_ROADBED (12)
-/*12*/{ PD_TOGGLE, &printRoadbed, "roadbed", PDO_DLGNOLABELALIGN, printRoadbedLabels, NULL, BC_HORZ|BC_NOBORDER },
-#define I_ROADBEDWIDTH (13)
-/*13*/{ PD_FLOAT, &printRoadbedWidth, "roadbedWidth", PDO_DIM|PDO_DLGBOXEND, &r0_, N_("Width") },
-/*14*/{ PD_FLOAT, &newPrintGrid.orig.x, "origx", PDO_DIM|PDO_DLGRESETMARGIN, &r_10_99999, N_("Origin: X"), 0, (void*)2 },
-/*15*/ { PD_FLOAT, &newPrintGrid.orig.y, "origy", PDO_DIM, &r_10_99999, N_("Y"), 0, (void*)2 },
-/*16*/ { PD_BUTTON, (void*)DoResetGrid, "reset", PDO_DLGHORZ, NULL, N_("Reset") },
-/*17*/ { PD_FLOAT, &newPrintGrid.angle, "origa", PDO_ANGLE|PDO_DLGBOXEND, &r0_360, N_("Angle"), 0, (void*)2 },
-/*18*/ { PD_BUTTON, (void*)DoPrintSetup, "setup", PDO_DLGCMDBUTTON, NULL, N_("Setup") },
-/*19*/ { PD_BUTTON, (void*)PrintClear, "clear", 0, NULL, N_("Clear") },
-#define I_PAGECNT (20)
-/*20*/ { PD_MESSAGE, N_("0 pages"), NULL, 0, (void*)80 },
-/*21*/ { PD_MESSAGE, N_("selected"), NULL, 0, (void*)80 } };
+#define I_CENTERLINE (12)
+/*12*/ { PD_TOGGLE, &printCenterLine, "centerLine", PDO_DLGNOLABELALIGN, printCenterLineLabels, NULL, BC_HORZ|BC_NOBORDER },
+#define I_ROADBED (13)
+/*13*/{ PD_TOGGLE, &printRoadbed, "roadbed", PDO_DLGNOLABELALIGN, printRoadbedLabels, NULL, BC_HORZ|BC_NOBORDER },
+#define I_ROADBEDWIDTH (14)
+/*14*/{ PD_FLOAT, &printRoadbedWidth, "roadbedWidth", PDO_DIM|PDO_DLGBOXEND, &r0_, N_("Width") },
+/*15*/{ PD_FLOAT, &newPrintGrid.orig.x, "origx", PDO_DIM|PDO_DLGRESETMARGIN, &r_10_99999, N_("Origin: X"), 0, (void*)2 },
+/*16*/ { PD_FLOAT, &newPrintGrid.orig.y, "origy", PDO_DIM, &r_10_99999, N_("Y"), 0, (void*)2 },
+/*17*/ { PD_BUTTON, (void*)DoResetGrid, "reset", PDO_DLGHORZ, NULL, N_("Reset") },
+/*18*/ { PD_FLOAT, &newPrintGrid.angle, "origa", PDO_ANGLE|PDO_DLGBOXEND, &r0_360, N_("Angle"), 0, (void*)2 },
+/*19*/ { PD_BUTTON, (void*)DoPrintSetup, "setup", PDO_DLGCMDBUTTON, NULL, N_("Setup") },
+/*20*/ { PD_BUTTON, (void*)PrintClear, "clear", 0, NULL, N_("Clear") },
+#define I_PAGECNT (21)
+/*21*/ { PD_MESSAGE, N_("0 pages"), NULL, 0, (void*)80 },
+/*22*/ { PD_MESSAGE, N_("selected"), NULL, 0, (void*)80 }
+};
static paramGroup_t printPG = { "print", PGO_PREFMISCGROUP, printPLs, sizeof printPLs/sizeof printPLs[0] };
@@ -158,33 +168,6 @@ static void ChangeDim( void )
MapGrid( zero, mapD.size, 0.0, currPrintGrid.orig, currPrintGrid.angle, currPrintGrid.size.x, currPrintGrid.size.y,
&x0, &x1, &y0, &y1 );
-#ifdef LATER
- d0 = sqrt( mapD.size.x * mapD.size.x + mapD.size.y * mapD.size.y );
-
- Translate( &p1, currPrintGrid.orig, currPrintGrid.angle, d0 );
- p0 = currPrintGrid.orig;
- ClipLine( &p0, &p1, zero, 0.0, mapD.size );
- d1 = FindDistance( currPrintGrid.orig, p1 );
- y1 = (int)ceil(d1/currPrintGrid.size.y);
-
- Translate( &p1, currPrintGrid.orig, currPrintGrid.angle+180, d0 );
- p0 = currPrintGrid.orig;
- ClipLine( &p0, &p1, zero, 0.0, mapD.size );
- d1 = FindDistance( currPrintGrid.orig, p1 );
- y0 = -(int)floor(d1/currPrintGrid.size.y);
-
- Translate( &p1, currPrintGrid.orig, currPrintGrid.angle+90, d0 );
- p0 = currPrintGrid.orig;
- ClipLine( &p0, &p1, zero, 0.0, mapD.size );
- d1 = FindDistance( currPrintGrid.orig, p1 );
- x1 = (int)ceil(d1/currPrintGrid.size.x);
-
- Translate( &p1, currPrintGrid.orig, currPrintGrid.angle+270, d0 );
- p0 = currPrintGrid.orig;
- ClipLine( &p0, &p1, zero, 0.0, mapD.size );
- d1 = FindDistance( currPrintGrid.orig, p1 );
- x0 = -(int)floor(d1/currPrintGrid.size.x);
-#endif
if ( x0==bm.x0 && x1==bm.x1 && y0==bm.y0 && y1==bm.y1 )
return;
@@ -385,20 +368,20 @@ static void PrintGaudyBox(
DrawString( &page_d, p00, 0.0, dat, fp, 16.0, wDrawColorBlack );
p00.y = 0.5+0.05;
- DrawTextSize( &mainD, Title1, fp, 16.0, FALSE, &textsize );
+ DrawTextSize( &mainD, GetLayoutTitle(), fp, 16.0, FALSE, &textsize );
p00.x = (pageW/2.0)-(textsize.x/2.0);
p00.y = 0.75+0.05;
- DrawString( &page_d, p00, 0.0, Title1, fp, 16.0, wDrawColorBlack );
- DrawTextSize( &mainD, Title2, fp, 16.0, FALSE, &textsize );
+ DrawString( &page_d, p00, 0.0, GetLayoutTitle(), fp, 16.0, wDrawColorBlack );
+ DrawTextSize( &mainD, GetLayoutSubtitle(), fp, 16.0, FALSE, &textsize );
p00.x = (pageW/2.0)-(textsize.x/2.0);
p00.y = 0.50+0.05;
- DrawString( &page_d, p00, 0.0, Title2, fp, 16.0, wDrawColorBlack );
+ DrawString( &page_d, p00, 0.0, GetLayoutSubtitle(), fp, 16.0, wDrawColorBlack );
sprintf( dat, _("PrintScale 1:%ld Room %s x %s Model Scale %s File %s"),
(long)printScale,
FormatDistance( roomSize.x ),
FormatDistance( roomSize.y ),
- curScaleName, curFileName );
+ curScaleName, GetLayoutFilename() );
p00.x = 0.05; p00.y = 0.25+0.05;
DrawString( &page_d, p00, 0.0, dat, fp, 16.0, wDrawColorBlack );
}
@@ -480,30 +463,17 @@ static void PrintEnableControls( void )
ParamLoadControl( &printPG, I_ROADBED );
ParamControlActive( &printPG, I_ROADBED, TRUE );
ParamControlActive( &printPG, I_ROADBEDWIDTH, TRUE );
+ ParamControlActive( &printPG, I_CENTERLINE, TRUE);
} else {
printRoadbed = 0;
ParamLoadControl( &printPG, I_ROADBED );
ParamControlActive( &printPG, I_ROADBED, FALSE );
ParamControlActive( &printPG, I_ROADBEDWIDTH, FALSE );
+ ParamControlActive( &printPG, I_CENTERLINE, FALSE );
}
}
-#ifdef LATER
-static void PrintSetOrient( void )
-/*
- * Called when print landscape/portrait toggled
- */
-{
- DrawPrintGrid();
- ParamLoadData( &printPG );
- currPrintGrid = newPrintGrid;
- ChangeDim();
- DrawPrintGrid();
-}
-#endif
-
-
static void PrintUpdate( int inx0 )
/*
* Called when print page size (x or y) is changed.
@@ -918,6 +888,7 @@ static BOOL_T PrintPage(
if (printGrid)
DrawSnapGrid( &print_d, mapD.size, FALSE );
roadbedWidth = printRoadbed?printRoadbedWidth:0.0;
+ printCenterLines = printCenterLine;
DrawTracks( &print_d, print_d.scale, minP, maxP );
if (printRegistrationMarks && printScale == 1)
DrawRegistrationMarks( &print_d );
@@ -950,7 +921,7 @@ static void DoPrintPrint( void * junk )
print_d.CoOrd2Pix = page_d.CoOrd2Pix = mainD.CoOrd2Pix;
wSetCursor( wCursorWait );
- if (!wPrintDocStart( Title1, pageCount, &copies )) {
+ if (!wPrintDocStart(GetLayoutTitle(), pageCount, &copies )) {
wSetCursor( wCursorNormal );
return;
}
diff --git a/app/bin/cprofile.c b/app/bin/cprofile.c
index d8bbc24..49c3289 100644
--- a/app/bin/cprofile.c
+++ b/app/bin/cprofile.c
@@ -1,5 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/cprofile.c,v 1.4 2008-03-06 19:35:06 m_fischer Exp $
+/* \file cprofile.c
+ * Track profile
*/
/* XTrkCad - Model Railroad CAD
@@ -20,11 +20,17 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "track.h"
-#include "cselect.h"
#include <math.h>
-#include "shrtpath.h"
+
+#include "custom.h"
+#include "cselect.h"
+#include "cundo.h"
#include "i18n.h"
+#include "layout.h"
+#include "messages.h"
+#include "param.h"
+#include "shrtpath.h"
+#include "track.h"
/*
@@ -484,7 +490,7 @@ static void DoProfilePrint( void * junk )
screenRatio = screenSize.y/screenSize.x;
printProfileD.size.x = w;
printProfileD.size.y = h;
- sprintf( message, _("%s Profile: %s"), sProdName, Title1 );
+ sprintf( message, _("%s Profile: %s"), sProdName, GetLayoutTitle() );
fp = wStandardFont( F_TIMES, FALSE, FALSE );
DrawTextSize( &mainD, message, fp, 24, FALSE, &textsize );
titleH = textsize.y + 6.0/mainD.dpi;
diff --git a/app/bin/cpull.c b/app/bin/cpull.c
index a10f426..d7f7c80 100644
--- a/app/bin/cpull.c
+++ b/app/bin/cpull.c
@@ -1,8 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/cpull.c,v 1.4 2008-03-06 19:35:06 m_fischer Exp $
- *
+/** \file cpull.c
* Pull and Tighten commands
- *
*/
/* XTrkCad - Model Railroad CAD
@@ -24,14 +21,15 @@
*/
#include <math.h>
-#include "track.h"
+
#include "cselect.h"
#include "compound.h"
+#include "cundo.h"
+#include "fileio.h"
#include "i18n.h"
-
-/*
- * pull track endpoint together
- */
+#include "messages.h"
+#include "track.h"
+#include "utility.h"
int debugPull = 0;
@@ -454,12 +452,20 @@ static void PullTracks(
int cnt1, cnt2;
int rc;
+ if (QueryTrack(trk1,Q_CAN_ADD_ENDPOINTS) || QueryTrack(trk2,Q_CAN_ADD_ENDPOINTS)) {
+ ConnectTurntableTracks(trk1, ep1, trk2, ep2 );
+ return;
+ }
+
+ if (ep1<0 || ep1<0 ) return;
+
if (ConnectAbuttingTracks( trk1, ep1, trk2, ep2 ))
return;
if (ConnectAdjustableTracks( trk1, ep1, trk2, ep2 ))
return;
+
p1 = GetTrkEndPos( trk1, ep1 );
p2 = GetTrkEndPos( trk2, ep2 );
a1 = GetTrkEndAngle( trk1, ep1 );
@@ -593,12 +599,22 @@ static STATUS_T CmdPull(
static EPINX_T ep1;
track_p trk2;
EPINX_T ep2;
+ static BOOL_T turntable;
+
+ int countTracksR0 = 0, countTracksR1 = 0, possibleEndPoints = 0;
+ BOOL_T found = FALSE;
+ ANGLE_T a;
+ DIST_T d;
switch (action) {
case C_START:
- InfoMessage( _("Select first End-Point to connect") );
+ if (selectedTrackCount==0)
+ InfoMessage( _("Select first end-point to connect") );
+ else
+ InfoMessage( _("Select first end-point to connect, or Right-Click for connecting selected tracks") );
trk1 = NULL;
+ turntable = FALSE;
return C_CONTINUE;
case C_LCLICK:
@@ -606,10 +622,14 @@ static STATUS_T CmdPull(
if (trk1 == NULL) {
if ((trk1 = OnTrack( &pos, TRUE, FALSE )) != NULL) {
if ((ep1 = PickUnconnectedEndPoint( pos, trk1 )) < 0) {
- trk1 = NULL;
+ if (QueryTrack(trk1, Q_CAN_ADD_ENDPOINTS)) {
+ turntable = TRUE;
+ ep1 = -1;
+ } else trk1 = NULL;
} else {
- InfoMessage( _("Select second End-Point to connect") );
+ InfoMessage( _("Select second end-point to connect") );
}
+
}
} else {
if ((trk2 = OnTrack( &pos, TRUE, FALSE )) != NULL) {
@@ -619,6 +639,15 @@ static STATUS_T CmdPull(
inError = TRUE;
return C_TERMINATE;
}
+ if (!turntable && QueryTrack(trk2, Q_CAN_ADD_ENDPOINTS)) {
+ ep2 = -1;
+ turntable = TRUE;
+ PullTracks( trk2, ep2, trk1, ep1);
+ trk1 = NULL;
+ inError = TRUE;
+ turntable = FALSE;
+ return C_TERMINATE;
+ }
}
}
} else {
@@ -635,6 +664,53 @@ static STATUS_T CmdPull(
}
return C_CONTINUE;
+ case C_RCLICK:
+ if (selectedTrackCount==0) {
+ ErrorMessage(_("Connect Multiple Tracks - Select multiple tracks to join first"));
+ return C_CONTINUE;
+ }
+ if (NoticeMessage(_("Try to Connect all Selected Tracks?"), _("Yes"), _("No"))<=0) return C_CONTINUE;
+ trk1 = NULL;
+ trk2 = NULL;
+ UndoStart( _("ReConnect"),"Try to reconnect all selected tracks");
+ for (int i=0;i<2;i++) { // Try twice - in case later joins help earlier ones and to try close ones first
+ while ( TrackIterate( &trk1 ) ) {
+ found = FALSE;
+ if ( GetTrkSelected( trk1 ) ) {
+ for (ep1=0; ep1<GetTrkEndPtCnt(trk1); ep1++) {
+ if (!GetTrkEndTrk( trk1, ep1 )) {
+ trk2 = NULL;
+ while (!found && TrackIterate(&trk2) ) {
+ if (trk1 == trk2) continue;
+ for (ep2=0; ep2<GetTrkEndPtCnt(trk2); ep2++) {
+ if (GetTrkEndTrk( trk2, ep2 )) continue;
+ d = FindDistance(GetTrkEndPos(trk1,ep1),GetTrkEndPos(trk2,ep2));
+ a = NormalizeAngle( 180+GetTrkEndAngle( trk1, ep1 ) - GetTrkEndAngle( trk2, ep2 )+(connectAngle/2.0));
+ // Take two passes. In round one favor closer connections. In round two try anything.
+ if ( (i==0 && (d < connectDistance) && (a < connectAngle)) ||
+ (i>0 && (d<3.0 && a<7.5))) { // Match PullTracks criteria in round 2
+ PullTracks(trk1,ep1,trk2,ep2);
+ if (GetTrkEndTrk( trk2, ep2 )) {
+ found = TRUE;
+ if (i==0)
+ countTracksR0++;
+ else
+ countTracksR1++;
+ break; //Stop looking
+ } else if (i==1) possibleEndPoints++;
+ }
+ }
+ }
+ if (found) break; //Next EndPoint
+ }
+ }
+ }
+ }
+ }
+ UndoEnd();
+ NoticeMessage(_("Round 1 %d and Round 2 %d tracks connected, %d close pairs of end Points were not connected"), _("Ok"), NULL, countTracksR0, countTracksR1, possibleEndPoints);
+ return C_TERMINATE;
+
case C_REDRAW:
return C_CONTINUE;
@@ -658,5 +734,5 @@ static STATUS_T CmdPull(
void InitCmdPull( wMenu_p menu )
{
- AddMenuButton( menu, CmdPull, "cmdConnect", _("Connect Sectional Tracks"), wIconCreatePixMap(pull_xpm), LEVEL0_50, IC_STICKY|IC_LCLICK|IC_POPUP2, ACCL_CONNECT, NULL );
+ AddMenuButton( menu, CmdPull, "cmdConnect", _("Connect Two Tracks"), wIconCreatePixMap(pull_xpm), LEVEL0_50, IC_STICKY|IC_LCLICK|IC_POPUP2|IC_RCLICK, ACCL_CONNECT, NULL );
}
diff --git a/app/bin/cruler.c b/app/bin/cruler.c
index 6566e93..b1addc6 100644
--- a/app/bin/cruler.c
+++ b/app/bin/cruler.c
@@ -20,8 +20,13 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "track.h"
+#include "cundo.h"
+#include "fileio.h"
#include "i18n.h"
+#include "param.h"
+#include "track.h"
+#include "utility.h"
+
/*****************************************************************************
*
diff --git a/app/bin/cselect.c b/app/bin/cselect.c
index 1bafd45..861f03f 100644
--- a/app/bin/cselect.c
+++ b/app/bin/cselect.c
@@ -1,8 +1,5 @@
/** \file cselect.c
* Handle selecting / unselecting track and basic operations on the selection
- *
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/cselect.c,v 1.11 2008-09-05 08:08:15 m_fischer Exp $
- *
*/
/* XTrkCad - Model Railroad CAD
@@ -23,19 +20,30 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "track.h"
-/*#include "trackx.h"*/
+#include <math.h>
+#include <string.h>
+
#include "ccurve.h"
+#include "tcornu.h"
+#include "tbezier.h"
#define PRIVATE_EXTRADATA
#include "compound.h"
+#include "cselect.h"
+#include "cundo.h"
+#include "custom.h"
+#include "fileio.h"
+#include "i18n.h"
+#include "layout.h"
+#include "messages.h"
+#include "param.h"
+#include "track.h"
+#include "utility.h"
#include "bitmaps/bmendpt.xbm"
#include "bitmaps/bma0.xbm"
#include "bitmaps/bma45.xbm"
#include "bitmaps/bma90.xbm"
#include "bitmaps/bma135.xbm"
-#include "i18n.h"
-
#define SETMOVEMODE "MOVEMODE"
@@ -55,8 +63,10 @@ static wDrawBitMap_p angle_bm[4];
long quickMove = 0;
BOOL_T importMove = 0;
int incrementalDrawLimit = 20;
+ static int microCount = 0;
static dynArr_t tlist_da;
+
#define Tlist(N) DYNARR_N( track_p, tlist_da, N )
#define TlistAppend( T ) \
{ DYNARR_APPEND( track_p, tlist_da, 10 );\
@@ -143,6 +153,7 @@ EXPORT void SetAllTrackSelect( BOOL_T select )
SelectedTrackCountChange();
if (doRedraw) {
MainRedraw();
+ MapRedraw();
} else {
wDrawDelayUpdate( mainD.d, FALSE );
}
@@ -174,6 +185,7 @@ EXPORT void InvertTrackSelect( void *ptr )
SelectedTrackCountChange();
MainRedraw();
+ MapRedraw();
}
/* Select orphaned (ie single) track pieces.
@@ -207,6 +219,7 @@ EXPORT void OrphanedTrackSelect( void *ptr )
}
SelectedTrackCountChange();
MainRedraw();
+ MapRedraw();
}
@@ -389,7 +402,7 @@ EXPORT void SelectTunnel( void )
}
-EXPORT void SelectRecount( void )
+void SelectRecount( void )
{
track_p trk;
selectedTrackCount = 0;
@@ -518,6 +531,7 @@ EXPORT void DoRefreshCompound( void )
RefreshCompound( NULL, FALSE );
UndoEnd();
MainRedraw();
+ MapRedraw();
} else {
ErrorMessage( MSG_NO_SELECTED_TRK );
}
@@ -766,9 +780,9 @@ EXPORT void DoRescale( void )
if ( rescalePG.win == NULL ) {
ParamCreateDialog( &rescalePG, MakeWindowTitle(_("Rescale")), _("Ok"), RescaleDlgOk, wHide, TRUE, NULL, F_BLOCK, RescaleDlgUpdate );
LoadScaleList( (wList_p)rescalePLs[I_RESCALE_TO_SCALE].control );
- LoadGaugeList( (wList_p)rescalePLs[I_RESCALE_TO_GAUGE].control, curScaleDescInx ); /* set correct gauge list here */
- rescaleFromScaleInx = curScaleInx;
- rescaleToScaleInx = curScaleInx;
+ LoadGaugeList( (wList_p)rescalePLs[I_RESCALE_TO_GAUGE].control, GetLayoutCurScaleDesc() ); /* set correct gauge list here */
+ rescaleFromScaleInx = GetLayoutCurScale();
+ rescaleToScaleInx = rescaleFromScaleInx;
rescalePercent = 100.0;
}
@@ -1032,6 +1046,10 @@ static void MoveTracks(
track_p trk, trk1;
EPINX_T ep, ep1;
int inx;
+ trackParams_t trackParms;
+ ANGLE_T endAngle;
+ DIST_T endRadius;
+ coOrd endCenter;
wSetCursor( wCursorWait );
/*UndoStart( "Move/Rotate Tracks", "move/rotate" );*/
@@ -1050,12 +1068,57 @@ static void MoveTracks(
RotateTrack( trk, orig, angle );
for (ep=0; ep<GetTrkEndPtCnt(trk); ep++) {
if ((trk1 = GetTrkEndTrk(trk,ep)) != NULL &&
- !GetTrkSelected(trk1)) {
+ !GetTrkSelected(trk1)) {
ep1 = GetEndPtConnectedToMe( trk1, trk );
DisconnectTracks( trk, ep, trk1, ep1 );
+ if (QueryTrack(trk1,Q_IS_CORNU)) { //Cornu at end stays connected
+ GetTrackParams(PARAMS_CORNU,trk,GetTrkEndPos(trk,ep),&trackParms);
+ if (trackParms.type == curveTypeStraight) {
+ endRadius = 0;
+ endCenter = zero;
+ } else {
+ endRadius = trackParms.arcR;
+ endCenter = trackParms.arcP;
+ }
+ DrawTrack(trk1,&mainD,wDrawColorWhite);
+ DrawTrack(trk1,&mapD,wDrawColorWhite);
+ endAngle = NormalizeAngle(GetTrkEndAngle(trk,ep)+180);
+ if (SetCornuEndPt(trk1,ep1,GetTrkEndPos(trk,ep),endCenter,endAngle,endRadius)) {
+ ConnectTracks(trk,ep,trk1,ep1);
+ DrawTrack(trk1,&mainD,wDrawColorBlack);
+ DrawTrack(trk1,&mapD,wDrawColorBlack);
+ } else {
+ DeleteTrack(trk1,TRUE);
+ ErrorMessage(_("Cornu too tight - it was deleted"));
+ }
+ } else {
+ if (QueryTrack(trk,Q_IS_CORNU)) { //I am a Cornu myself!
+ GetTrackParams(PARAMS_CORNU,trk1,GetTrkEndPos(trk1,ep1),&trackParms);
+ if (trackParms.type == curveTypeStraight) {
+ endRadius = 0;
+ endCenter = zero;
+ } else {
+ endRadius = trackParms.arcR;
+ endCenter = trackParms.arcP;
+ }
+ DrawTrack(trk,&mainD,wDrawColorWhite);
+ DrawTrack(trk1,&mapD,wDrawColorWhite);
+ endAngle = NormalizeAngle(GetTrkEndAngle(trk1,ep1)+180);
+ if (SetCornuEndPt(trk,ep,GetTrkEndPos(trk1,ep1),endCenter,endAngle,endRadius)) {
+ ConnectTracks(trk,ep,trk1,ep1);
+ DrawTrack(trk,&mainD,wDrawColorBlack);
+ DrawTrack(trk,&mapD,wDrawColorBlack);
+ } else {
+ ErrorMessage(_("Cornu selected too tight after move - it was left alone"));
+ DrawTrack(trk,&mainD,wDrawColorBlack);
+ DrawTrack(trk,&mapD,wDrawColorBlack);
+ }
+ }
+ }
DrawEndPt( &mainD, trk1, ep1, wDrawColorBlack );
}
}
+
InfoCount( inx );
#ifdef LATER
if (tlist_da.cnt <= incrementalDrawLimit)
@@ -1103,6 +1166,16 @@ void MoveToJoin(
DrawNewTrack( trk0 );
DrawNewTrack( trk1 );
}
+
+void FreeTempStrings() {
+ for (int i = 0; i<tempSegs_da.cnt; i++) {
+ if (tempSegs(i).type == SEG_TEXT) {
+ if (tempSegs(i).u.t.string)
+ MyFree(tempSegs(i).u.t.string);
+ tempSegs(i).u.t.string = NULL;
+ }
+ }
+}
static STATUS_T CmdMove(
wAction_t action,
@@ -1112,7 +1185,7 @@ static STATUS_T CmdMove(
static coOrd orig;
static int state;
- switch( action ) {
+ switch( action&0xFF) {
case C_START:
if (selectedTrackCount == 0) {
@@ -1122,7 +1195,7 @@ static STATUS_T CmdMove(
if (SelectedTracksAreFrozen()) {
return C_TERMINATE;
}
- InfoMessage( _("Drag to move selected tracks") );
+ InfoMessage( _("Drag to move selected tracks - Shift+Ctrl+Arrow micro-steps the move") );
state = 0;
break;
case C_DOWN:
@@ -1134,19 +1207,20 @@ static STATUS_T CmdMove(
orig = pos;
GetMovedTracks(quickMove != MOVE_QUICK);
SetMoveD( TRUE, base, 0.0 );
- DrawMovedTracks();
+ //DrawMovedTracks();
drawCount = 0;
state = 1;
MainRedraw();
+ MapRedraw();
return C_CONTINUE;
case C_MOVE:
drawEnable = enableMoveDraw;
- DrawMovedTracks();
+ //DrawMovedTracks();
base.x = pos.x - orig.x;
base.y = pos.y - orig.y;
SnapPos( &base );
SetMoveD( TRUE, base, 0.0 );
- DrawMovedTracks();
+ //DrawMovedTracks();
#ifdef DRAWCOUNT
InfoMessage( " [%s %s] #%ld", FormatDistance(base.x), FormatDistance(base.y), drawCount );
#else
@@ -1154,10 +1228,12 @@ static STATUS_T CmdMove(
#endif
drawEnable = TRUE;
MainRedraw();
+ MapRedraw();
return C_CONTINUE;
case C_UP:
state = 0;
- DrawMovedTracks();
+ //DrawMovedTracks();
+ FreeTempStrings();
MoveTracks( quickMove==MOVE_QUICK, TRUE, FALSE, base, zero, 0.0 );
return C_TERMINATE;
@@ -1173,6 +1249,47 @@ static STATUS_T CmdMove(
DrawMovedTracks();
break;
+ case wActionExtKey:
+ if (state) return C_CONTINUE;
+ if (SelectedTracksAreFrozen()) return C_TERMINATE;
+ if ((MyGetKeyState() &
+ (WKEY_SHIFT | WKEY_CTRL)) == (WKEY_SHIFT | WKEY_CTRL)) {
+ base = zero;
+ DIST_T w = tempD.scale/tempD.dpi;
+ switch((wAccelKey_e) action>>8) {
+ case wAccelKey_Up:
+ base.y = w;
+ break;
+ case wAccelKey_Down:
+ base.y = -w;
+ break;
+ case wAccelKey_Left:
+ base.x = -w;
+ break;
+ case wAccelKey_Right:
+ base.x = w;
+ break;
+ default:
+ return C_CONTINUE;
+ break;
+ }
+
+ drawEnable = enableMoveDraw;
+ GetMovedTracks(quickMove!=MOVE_QUICK);
+ UndoStart( _("Move Tracks"), "move" );
+ SetMoveD( TRUE, base, 0.0 );
+ DrawSelectedTracksD( &mainD, wDrawColorWhite );
+ MoveTracks( quickMove==MOVE_QUICK, TRUE, FALSE, base, zero, 0.0 );
+ ++microCount;
+ if (microCount>5) {
+ microCount = 0;
+ MainRedraw();
+ MapRedraw();
+ }
+ return C_CONTINUE;
+ }
+ break;
+
default:
break;
}
@@ -1214,7 +1331,7 @@ static STATUS_T CmdRotate(
if (SelectedTracksAreFrozen()) {
return C_TERMINATE;
}
- InfoMessage( _("Drag to rotate selected tracks") );
+ InfoMessage( _("Drag to rotate selected tracks, Shift+RightClick for QuickRotate Menu") );
wMenuPushEnable( rotateAlignMI, TRUE );
rotateAlignState = 0;
break;
@@ -1226,9 +1343,22 @@ static STATUS_T CmdRotate(
UndoStart( _("Rotate Tracks"), "rotate" );
if ( rotateAlignState == 0 ) {
drawnAngle = FALSE;
- angle = 0;
+ angle = 0.0;
base = orig = pos;
+ trk = OnTrack(&pos, FALSE, FALSE); //Note pollutes pos if turntable
+ if ((trk) &&
+ QueryTrack(trk,Q_CAN_ADD_ENDPOINTS)) { //Turntable snap to center if within 1/4 radius
+ trackParams_t trackParams;
+ if (GetTrackParams(PARAMS_CORNU, trk, pos, &trackParams)) {
+ DIST_T dist = FindDistance(base, trackParams.ttcenter);
+ if (dist < trackParams.ttradius/4) {
+ base = orig = trackParams.ttcenter;
+ InfoMessage( _("Center of Rotation snapped to Turntable center") );
+ }
+ }
+ }
GetMovedTracks(FALSE);
+ SetMoveD( FALSE, base, angle );
/*DrawLine( &mainD, base, orig, 0, wDrawColorBlack );
DrawMovedTracks(FALSE, orig, angle);*/
} else {
@@ -1256,20 +1386,21 @@ static STATUS_T CmdRotate(
angle = 0;
} else {
angle = NormalizeAngle(angle1-baseAngle);
- if ( angle > 90 && angle < 270 )
- angle = NormalizeAngle( angle + 180.0 );
- if ( NormalizeAngle( FindAngle( pos, pos1 ) - angle1 ) < 180.0 )
- angle = NormalizeAngle( angle + 180.0 );
+ //if ( angle > 90 && angle < 270 )
+ // angle = NormalizeAngle( angle + 180.0 );
+ //if ( NormalizeAngle( FindAngle( base, pos1 ) - angle1 ) < 180.0 )
+ // angle = NormalizeAngle( angle + 180.0 );
/*printf( "angle 1 = %0.3f\n", angle );*/
if ( angle1 > 180.0 ) angle1 -= 180.0;
InfoMessage( _("Angle %0.3f"), angle1 );
}
GetMovedTracks(TRUE);
SetMoveD( FALSE, orig, angle );
- DrawMovedTracks();
+ //DrawMovedTracks();
}
}
MainRedraw();
+ MapRedraw();
return C_CONTINUE;
case C_MOVE:
if ( rotateAlignState == 1 )
@@ -1285,7 +1416,7 @@ static STATUS_T CmdRotate(
ErrorMessage( MSG_2ND_TRACK_MUST_BE_UNSELECTED );
return C_CONTINUE;
}
- DrawMovedTracks();
+ //DrawMovedTracks();
angle1 = NormalizeAngle( GetAngleAtPoint( trk, pos, NULL, NULL ) );
angle = NormalizeAngle(angle1-baseAngle);
if ( angle > 90 && angle < 270 )
@@ -1296,8 +1427,9 @@ static STATUS_T CmdRotate(
InfoMessage( _("Angle %0.3f"), angle1 );
SetMoveD( FALSE, orig, angle );
/*printf( "angle 2 = %0.3f\n", angle );*/
- DrawMovedTracks();
+ //DrawMovedTracks();
MainRedraw();
+ MapRedraw();
return C_CONTINUE;
}
if ( FindDistance( orig, pos ) > (6.0/75.0)*mainD.scale ) {
@@ -1321,7 +1453,7 @@ static STATUS_T CmdRotate(
}
DrawLine( &tempD, base, orig, 0, wDrawColorBlack );
SetMoveD( FALSE, orig, angle );
- DrawMovedTracks();
+ //DrawMovedTracks();
#ifdef DRAWCOUNT
InfoMessage( _(" Angle %0.3f #%ld"), angle, drawCount );
#else
@@ -1331,6 +1463,7 @@ static STATUS_T CmdRotate(
drawEnable = TRUE;
}
MainRedraw();
+ MapRedraw();
return C_CONTINUE;
case C_UP:
state = 0;
@@ -1341,19 +1474,33 @@ static STATUS_T CmdRotate(
}
return C_CONTINUE;
}
+ FreeTempStrings();
if ( rotateAlignState == 2 ) {
- DrawMovedTracks();
+ //DrawMovedTracks();
MoveTracks( quickMove==MOVE_QUICK, FALSE, TRUE, zero, orig, angle );
rotateAlignState = 0;
} else if (drawnAngle) {
DrawLine( &tempD, base, orig, 0, wDrawColorBlack );
- DrawMovedTracks();
+ //DrawMovedTracks();
MoveTracks( quickMove==MOVE_QUICK, FALSE, TRUE, zero, orig, angle );
}
MainRedraw();
+ MapRedraw();
return C_TERMINATE;
case C_CMDMENU:
+ base = pos;
+ trk = OnTrack(&pos, FALSE, FALSE); //Note pollutes pos if turntable
+ if ((trk) &&
+ QueryTrack(trk,Q_CAN_ADD_ENDPOINTS)) { //Turntable snap to center if within 1/4 radius
+ trackParams_t trackParams;
+ if (GetTrackParams(PARAMS_CORNU, trk, pos, &trackParams)) {
+ DIST_T dist = FindDistance(base, trackParams.ttcenter);
+ if (dist < trackParams.ttradius/4) {
+ cmdMenuPos = trackParams.ttcenter;
+ }
+ }
+ }
wMenuPopupShow( selectPopup2M );
return C_CONTINUE;
@@ -1371,6 +1518,20 @@ static STATUS_T CmdRotate(
return C_CONTINUE;
}
+static void QuickMove( void* pos) {
+ coOrd move_pos = *(coOrd*)pos;
+ if ( SelectedTracksAreFrozen() )
+ return;
+ wDrawDelayUpdate( mainD.d, TRUE );
+ GetMovedTracks(FALSE);
+ DrawSelectedTracksD( &mainD, wDrawColorWhite );
+ UndoStart( _("Move Tracks"), "Move Tracks" );
+ MoveTracks( quickMove==MOVE_QUICK, TRUE, FALSE, move_pos, zero, 0.0 );
+ wDrawDelayUpdate( mainD.d, FALSE );
+ MainRedraw();
+ MapRedraw();
+}
+
static void QuickRotate( void* pangle )
{
ANGLE_T angle = (ANGLE_T)(long)pangle;
@@ -1382,6 +1543,8 @@ static void QuickRotate( void* pangle )
UndoStart( _("Rotate Tracks"), "Rotate Tracks" );
MoveTracks( quickMove==MOVE_QUICK, FALSE, TRUE, zero, cmdMenuPos, angle );
wDrawDelayUpdate( mainD.d, FALSE );
+ MainRedraw();
+ MapRedraw();
}
@@ -1460,11 +1623,26 @@ STATUS_T CmdMoveDescription(
ep = -1;
mode = 2;
}
+ d = CornuDescriptionDistance( pos, trk1 );
+ if ( d < dd ) {
+ dd = d;
+ trk = trk1;
+ ep = -1;
+ mode = 3;
+ }
+ d = BezierDescriptionDistance( pos, trk1 );
+ if ( d < dd ) {
+ dd = d;
+ trk = trk1;
+ ep = -1;
+ mode = 4;
+ }
}
if (trk != NULL) {
UndoStart( _("Move Label"), "Modedesc( T%d )", GetTrkIndex(trk) );
UndoModify( trk );
}
+ /* no break */
case C_MOVE:
case C_UP:
case C_REDRAW:
@@ -1478,9 +1656,13 @@ STATUS_T CmdMoveDescription(
return CompoundDescriptionMove( trk, action, pos );
case 2:
return CurveDescriptionMove( trk, action, pos );
+ case 3:
+ return CornuDescriptionMove( trk, action, pos );
+ case 4:
+ return BezierDescriptionMove( trk, action, pos );
}
}
-
+ break;
case C_CMDMENU:
moveDescTrk = OnTrack( &pos, TRUE, FALSE );
if ( moveDescTrk == NULL ) break;
@@ -1579,6 +1761,7 @@ static STATUS_T CmdFlip(
pos0 = pos1 = pos;
DrawLine( &tempD, pos0, pos1, 0, wDrawColorBlack );
MainRedraw();
+ MapRedraw();
return C_CONTINUE;
case C_MOVE:
DrawLine( &tempD, pos0, pos1, 0, wDrawColorBlack );
@@ -1586,6 +1769,7 @@ static STATUS_T CmdFlip(
DrawLine( &tempD, pos0, pos1, 0, wDrawColorBlack );
InfoMessage( _("Angle %0.2f"), FindAngle( pos0, pos1 ) );
MainRedraw();
+ MapRedraw();
return C_CONTINUE;
case C_UP:
DrawLine( &tempD, pos0, pos1, 0, wDrawColorBlack );
@@ -1593,6 +1777,7 @@ static STATUS_T CmdFlip(
FlipTracks( pos0, FindAngle( pos0, pos1 ) );
state = 0;
MainRedraw();
+ MapRedraw();
return C_TERMINATE;
#ifdef LATER
@@ -1821,6 +2006,18 @@ static STATUS_T CmdSelect(
if (selectedTrackCount <= 0) {
wMenuPopupShow( selectPopup1M );
} else {
+ coOrd base = pos;
+ track_p trk = OnTrack(&pos, FALSE, FALSE); //Note pollutes pos if turntable
+ if ((trk) &&
+ QueryTrack(trk,Q_CAN_ADD_ENDPOINTS)) { //Turntable snap to center if within 1/4 radius
+ trackParams_t trackParams;
+ if (GetTrackParams(PARAMS_CORNU, trk, pos, &trackParams)) {
+ DIST_T dist = FindDistance(base, trackParams.ttcenter);
+ if (dist < trackParams.ttradius/4) {
+ cmdMenuPos = trackParams.ttcenter;
+ }
+ }
+ }
wMenuPopupShow( selectPopup2M );
}
return C_CONTINUE;
@@ -1871,6 +2068,8 @@ EXPORT void InitCmdSelect( wMenu_p menu )
quickMove2M[1] = wMenuToggleCreate( selectPopup2M, "", _("Simple"), 0, quickMove==1, ChangeQuickMove, (void *) 1 );
quickMove2M[2] = wMenuToggleCreate( selectPopup2M, "", _("End Points"), 0, quickMove==2, ChangeQuickMove, (void *) 2 );
wMenuSeparatorCreate( selectPopup2M );
+ AddMoveMenu( selectPopup2M, QuickMove);
+ wMenuSeparatorCreate( selectPopup2M );
AddRotateMenu( selectPopup2M, QuickRotate );
rotateAlignMI = wMenuPushCreate( selectPopup2M, "", _("Align"), 0, (wMenuCallBack_p)RotateAlign, NULL );
ParamRegister( &rescalePG );
diff --git a/app/bin/cselect.h b/app/bin/cselect.h
index 890e53b..c02cc1c 100644
--- a/app/bin/cselect.h
+++ b/app/bin/cselect.h
@@ -1,6 +1,6 @@
-#ifndef CSELECT_H
-#define CSELECT_H
-
+/** \file cselect.h
+ * Definitions and function prototypes for operations on selected elements
+ */
/* XTrkCad - Model Railroad CAD
* Copyright (C) 2005 Dave Bullis
*
@@ -19,6 +19,12 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#ifndef CSELECT_H
+#define CSELECT_H
+
+#include "common.h"
+#include "track.h"
+
wIndex_t selectCmdInx;
wIndex_t moveCmdInx;
wIndex_t rotateCmdInx;
diff --git a/app/bin/csensor.c b/app/bin/csensor.c
index e962089..db34b95 100644
--- a/app/bin/csensor.c
+++ b/app/bin/csensor.c
@@ -47,10 +47,18 @@
static const char rcsid[] = "@(#) : $Id$";
#include <ctype.h>
-#include "track.h"
-#include "trackx.h"
+#include <string.h>
+
#include "compound.h"
+#include "cundo.h"
+#include "custom.h"
+#include "fileio.h"
#include "i18n.h"
+#include "layout.h"
+#include "param.h"
+#include "track.h"
+#include "trackx.h"
+#include "utility.h"
EXPORT TRKTYP_T T_SENSOR = -1;
@@ -433,28 +441,23 @@ static void CreateNewSensor (coOrd orig)
static STATUS_T CmdSensor ( wAction_t action, coOrd pos )
{
-
-
switch (action) {
case C_START:
InfoMessage(_("Place sensor"));
return C_CONTINUE;
case C_DOWN:
- SnapPos(&pos);
- DDrawSensor( &tempD, pos, GetScaleRatio(curScaleInx), wDrawColorBlack );
- return C_CONTINUE;
- case C_MOVE:
- SnapPos(&pos);
- DDrawSensor( &tempD, pos, GetScaleRatio(curScaleInx), wDrawColorBlack );
+ case C_MOVE:
+ SnapPos(&pos);
+ DDrawSensor( &tempD, pos, GetScaleRatio(GetLayoutCurScale()), wDrawColorBlack );
return C_CONTINUE;
case C_UP:
SnapPos(&pos);
- DDrawSensor( &tempD, pos, GetScaleRatio(curScaleInx), wDrawColorBlack );
+ DDrawSensor( &tempD, pos, GetScaleRatio(GetLayoutCurScale()), wDrawColorBlack );
CreateNewSensor(pos);
return C_TERMINATE;
case C_REDRAW:
case C_CANCEL:
- DDrawSensor( &tempD, pos, GetScaleRatio(curScaleInx), wDrawColorBlack );
+ DDrawSensor( &tempD, pos, GetScaleRatio(GetLayoutCurScale()), wDrawColorBlack );
return C_CONTINUE;
default:
return C_CONTINUE;
diff --git a/app/bin/csignal.c b/app/bin/csignal.c
index 06adb19..2f02e58 100644
--- a/app/bin/csignal.c
+++ b/app/bin/csignal.c
@@ -12,7 +12,7 @@
* Author : $Author$
* Created By : Robert Heller
* Created : Sun Feb 19 13:11:45 2017
- * Last Modified : <170314.1311>
+ * Last Modified : <170417.1113>
*
* Description
*
@@ -48,10 +48,18 @@ static const char rcsid[] = "@(#) : $Id$";
#include <ctype.h>
-#include "track.h"
-#include "trackx.h"
+#include <string.h>
+
#include "compound.h"
+#include "cundo.h"
+#include "custom.h"
+#include "fileio.h"
#include "i18n.h"
+#include "layout.h"
+#include "param.h"
+#include "track.h"
+#include "trackx.h"
+#include "utility.h"
EXPORT TRKTYP_T T_SIGNAL = -1;
@@ -515,6 +523,7 @@ static void SignalEditOk ( void * junk )
track_p trk;
signalData_p xx;
wIndex_t ia;
+ CSIZE_T newsize;
if (signalCreate_P) {
UndoStart( _("Create Signal"), "Create Signal");
@@ -526,16 +535,15 @@ static void SignalEditOk ( void * junk )
xx = GetsignalData(trk);
if (xx->numAspects != signalAspect_da.cnt) {
/* We need to reallocate the extra data. */
- /* We will delete the Signal and re-create it. */
- BOOL_T visible = GetTrkVisible(trk);
- SCALEINX_T scale = GetTrkScale(trk);
- LAYER_T layer = GetTrkLayer(trk);
- wIndex_t tindx = GetTrkIndex(trk);
- FreeTrack(trk);
- trk = NewTrack(tindx, T_SIGNAL, 0, sizeof(signalData_t)+(sizeof(signalAspect_t)*(signalAspect_da.cnt-1))+1);
- SetTrkVisible(trk,visible);
- SetTrkScale(trk,scale);
- SetTrkLayer(trk,layer);
+ for (ia = 0; ia < xx->numAspects; ia++) {
+ MyFree((&(xx->aspectList))[ia].aspectName);
+ MyFree((&(xx->aspectList))[ia].aspectScript);
+ (&(xx->aspectList))[ia].aspectName = NULL;
+ (&(xx->aspectList))[ia].aspectScript = NULL;
+ }
+ newsize = sizeof(signalData_t)+(sizeof(signalAspect_t)*(signalAspect_da.cnt-1))+1;
+ trk->extraData = MyRealloc(trk->extraData,newsize);
+ trk->extraSize = newsize;
xx = GetsignalData(trk);
}
}
@@ -769,7 +777,7 @@ static STATUS_T CmdSignal ( wAction_t action, coOrd pos )
case C_MOVE:
SnapPos(&pos);
orient = FindAngle(pos0,pos);
- DDrawSignal( &tempD, pos0, orient, 1, GetScaleRatio(curScaleInx), wDrawColorBlack );
+ DDrawSignal( &tempD, pos0, orient, 1, GetScaleRatio(GetLayoutCurScale()), wDrawColorBlack );
return C_CONTINUE;
case C_UP:
SnapPos(&pos);
@@ -778,7 +786,7 @@ static STATUS_T CmdSignal ( wAction_t action, coOrd pos )
return C_TERMINATE;
case C_REDRAW:
case C_CANCEL:
- DDrawSignal( &tempD, pos0, orient, 1, GetScaleRatio(curScaleInx), wDrawColorBlack );
+ DDrawSignal( &tempD, pos0, orient, 1, GetScaleRatio(GetLayoutCurScale()), wDrawColorBlack );
return C_CONTINUE;
default:
return C_CONTINUE;
diff --git a/app/bin/csnap.c b/app/bin/csnap.c
index 1d16136..0f0f353 100644
--- a/app/bin/csnap.c
+++ b/app/bin/csnap.c
@@ -1,5 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/csnap.c,v 1.7 2008-06-03 15:43:58 m_fischer Exp $
+/** \file csnap.c
+ * Draw Snap Grid
*/
/* XTrkCad - Model Railroad CAD
@@ -20,13 +20,19 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "track.h"
-#include "i18n.h"
+#include <math.h>
+#include "custom.h"
+#include "fileio.h"
+#include "i18n.h"
+#include "messages.h"
+#include "param.h"
+#include "track.h"
+#include "utility.h"
/*****************************************************************************
*
- * Draw Snap Grid
+
*
*/
diff --git a/app/bin/csplit.c b/app/bin/csplit.c
index 69642fb..6cfdcc8 100644
--- a/app/bin/csplit.c
+++ b/app/bin/csplit.c
@@ -1,5 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/csplit.c,v 1.4 2008-03-06 19:35:06 m_fischer Exp $
+/** \file csplit.c
+ * SPLIT
*/
/* XTrkCad - Model Railroad CAD
@@ -20,15 +20,11 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "track.h"
+#include "cundo.h"
#include "i18n.h"
-
-/*****************************************************************************
- *
- * SPLIT
- *
- */
-
+#include "messages.h"
+#include "track.h"
+#include "utility.h"
static wMenu_p splitPopupM[2];
static wMenuToggle_p splitPopupMI[2][4];
@@ -70,6 +66,7 @@ static STATUS_T CmdSplitTrack( wAction_t action, coOrd pos )
switch (action) {
case C_START:
InfoMessage( _("Select track to split") );
+ /* no break */
case C_DOWN:
case C_MOVE:
return C_CONTINUE;
@@ -82,6 +79,11 @@ static STATUS_T CmdSplitTrack( wAction_t action, coOrd pos )
onTrackInSplit = FALSE;
return C_TERMINATE;
}
+ if (!QueryTrack(trk0,Q_MODIFY_CAN_SPLIT)) {
+ onTrackInSplit = FALSE;
+ InfoMessage(_("Can't Split that Track"));
+ return C_CONTINUE;
+ }
ep0 = PickEndPoint( pos, trk0 );
onTrackInSplit = FALSE;
if (ep0 < 0) {
diff --git a/app/bin/cstraigh.c b/app/bin/cstraigh.c
index 6038c9a..7be25ee 100644
--- a/app/bin/cstraigh.c
+++ b/app/bin/cstraigh.c
@@ -1,5 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/cstraigh.c,v 1.4 2008-03-06 19:35:06 m_fischer Exp $
+/** \file cstraigh.c
+ * STRAIGHT
*/
/* XTrkCad - Model Railroad CAD
@@ -19,22 +19,25 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#include <math.h>
-#include "track.h"
#include "cstraigh.h"
+#include "cundo.h"
+#include "fileio.h"
#include "i18n.h"
-
-/*******************************************************************************
- *
- * STRAIGHT
- *
- */
+#include "messages.h"
+#include "param.h"
+#include "track.h"
+#include "utility.h"
/*
* STATE INFO
*/
static struct {
coOrd pos0, pos1;
+ track_p trk;
+ EPINX_T ep;
+ BOOL_T down;
} Dl;
@@ -42,15 +45,46 @@ static STATUS_T CmdStraight( wAction_t action, coOrd pos )
{
track_p t;
DIST_T dist;
+ coOrd p;
switch (action) {
case C_START:
- InfoMessage( _("Place 1st end point of Straight track") );
+ Dl.pos0=pos;
+ Dl.pos1=pos;
+ Dl.trk = NULL;
+ Dl.ep=-1;
+ Dl.down = FALSE;
+ InfoMessage( _("Place 1st end point of straight track + Shift -> snap to unconnected endpoint") );
return C_CONTINUE;
case C_DOWN:
- SnapPos( &pos );
+ p = pos;
+ BOOL_T found = FALSE;
+ Dl.trk = NULL;
+ if ((MyGetKeyState() & WKEY_SHIFT) != 0) {
+ if ((t = OnTrack(&p, FALSE, TRUE)) != NULL) {
+ EPINX_T ep = PickUnconnectedEndPointSilent(p, t);
+ if (ep != -1) {
+ Dl.trk = t;
+ Dl.ep = ep;
+ pos = GetTrkEndPos(t, ep);
+ found = TRUE;
+ } else {
+ InfoMessage(_("No unconnected end-point on track - Try again or release Shift and click"));
+ Dl.pos0=pos;
+ Dl.pos1=pos;
+ return C_CONTINUE;
+ }
+ } else {
+ InfoMessage(_("Not on a track - Try again or release Shift and click"));
+ Dl.pos0=pos;
+ Dl.pos1=pos;
+ return C_CONTINUE;
+ }
+ }
+ Dl.down = TRUE;
+ if (!found) SnapPos( &pos );
Dl.pos0 = pos;
InfoMessage( _("Drag to place 2nd end point") );
DYNARR_SET( trkSeg_t, tempSegs_da, 1 );
@@ -62,8 +96,17 @@ static STATUS_T CmdStraight( wAction_t action, coOrd pos )
return C_CONTINUE;
case C_MOVE:
+ if (!Dl.down) return C_CONTINUE;
DrawSegs( &tempD, zero, 0.0, &tempSegs(0), tempSegs_da.cnt, trackGauge, wDrawColorBlack );
- SnapPos( &pos );
+ ANGLE_T angle, angle2;
+ if (Dl.trk) {
+ angle = NormalizeAngle(GetTrkEndAngle( Dl.trk, Dl.ep));
+ angle2 = NormalizeAngle(FindAngle(pos, Dl.pos0)-angle);
+ if (angle2 > 90.0 && angle2 < 270.0)
+ Translate( &pos, Dl.pos0, angle, FindDistance( Dl.pos0, pos ) );
+ else pos = Dl.pos0;
+ } else SnapPos( &pos );
+
InfoMessage( _("Straight Track Length=%s Angle=%0.3f"),
FormatDistance(FindDistance( Dl.pos0, pos )),
PutAngle(FindAngle( Dl.pos0, pos )) );
@@ -73,15 +116,25 @@ static STATUS_T CmdStraight( wAction_t action, coOrd pos )
return C_CONTINUE;
case C_UP:
+ if (!Dl.down) return C_CONTINUE;
DrawSegs( &tempD, zero, 0.0, &tempSegs(0), tempSegs_da.cnt, trackGauge, wDrawColorBlack );
tempSegs_da.cnt = 0;
- SnapPos( &pos );
+ if (Dl.trk) {
+ angle = NormalizeAngle(GetTrkEndAngle( Dl.trk, Dl.ep));
+ angle2 = NormalizeAngle(FindAngle(pos, Dl.pos0)-angle);
+ if (angle2 > 90.0 && angle2 < 270.0)
+ Translate( &pos, Dl.pos0, angle, FindDistance( Dl.pos0, pos ));
+ else pos = Dl.pos0;
+ } else SnapPos( &pos );
if ((dist=FindDistance( Dl.pos0, pos )) <= minLength) {
ErrorMessage( MSG_TRK_TOO_SHORT, "Straight ", PutDim(fabs(minLength-dist)) );
return C_TERMINATE;
}
UndoStart( _("Create Straight Track"), "newStraight" );
t = NewStraightTrack( Dl.pos0, pos );
+ if (Dl.trk) {
+ ConnectTracks(Dl.trk, Dl.ep, t, 0);
+ }
UndoEnd();
DrawNewTrack(t);
return C_TERMINATE;
@@ -89,6 +142,7 @@ static STATUS_T CmdStraight( wAction_t action, coOrd pos )
case C_REDRAW:
case C_CANCEL:
DrawSegs( &tempD, zero, 0.0, &tempSegs(0), tempSegs_da.cnt, trackGauge, wDrawColorBlack );
+ Dl.down = FALSE;
return C_CONTINUE;
default:
diff --git a/app/bin/cstraigh.h b/app/bin/cstraigh.h
index eca7e99..30d1539 100644
--- a/app/bin/cstraigh.h
+++ b/app/bin/cstraigh.h
@@ -1,5 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/cstraigh.h,v 1.1 2005-12-07 15:46:54 rc-flyer Exp $
+/** \file cstraigh.h
+ * Prototypes for straight track functions
*/
/* XTrkCad - Model Railroad CAD
@@ -20,6 +20,14 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#ifndef HAVE_CSTRAIGH_H
+#define HAVE_CSTRAIGH_H
+
+#include "common.h"
+#include "track.h"
+
void AdjustStraightEndPt( track_p t, EPINX_T ep, coOrd pos );
track_p NewStraightTrack( coOrd p0, coOrd p1 );
BOOL_T ExtendStraightToJoin( track_p, EPINX_T, track_p, EPINX_T );
+
+#endif // !HAVE_CSTRAIGH_H \ No newline at end of file
diff --git a/app/bin/cstruct.c b/app/bin/cstruct.c
index 1f86217..41c47e5 100644
--- a/app/bin/cstruct.c
+++ b/app/bin/cstruct.c
@@ -1,8 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/cstruct.c,v 1.4 2008-03-06 19:35:06 m_fischer Exp $
- *
+/** \file cstruct.c
* T_STRUCTURE
- *
*/
/* XTrkCad - Model Railroad CAD
@@ -24,11 +21,20 @@
*/
#include <ctype.h>
-#include "track.h"
+#include <math.h>
+#include <stdint.h>
+#include <string.h>
+
#include "compound.h"
+#include "cundo.h"
+#include "custom.h"
+#include "fileio.h"
#include "i18n.h"
-
-#include <stdint.h>
+#include "layout.h"
+#include "messages.h"
+#include "param.h"
+#include "track.h"
+#include "utility.h"
EXPORT TRKTYP_T T_STRUCTURE = -1;
@@ -272,7 +278,7 @@ static ANGLE_T GetAngleStruct(
pos.x -= xx->orig.x;
pos.y -= xx->orig.y;
Rotate( &pos, zero, -xx->angle );
- angle = GetAngleSegs( xx->segCnt, xx->segs, pos, NULL );
+ angle = GetAngleSegs( xx->segCnt, xx->segs, &pos, NULL, NULL, NULL, NULL, NULL);
if ( ep0 ) *ep0 = -1;
if ( ep1 ) *ep1 = -1;
return NormalizeAngle( angle+xx->angle );
@@ -403,7 +409,7 @@ static void structureChange( long changes )
maxStructureDim.x = maxStructureDim.y = 0.0;
if (structureInfo_da.cnt <= 0)
return;
- curStructure = StructAdd( LABEL_TABBED|LABEL_MANUF|LABEL_PARTNO|LABEL_DESCR, curScaleInx, structureListL, &maxStructureDim );
+ curStructure = StructAdd( LABEL_TABBED|LABEL_MANUF|LABEL_PARTNO|LABEL_DESCR, GetLayoutCurScale(), structureListL, &maxStructureDim );
wControlShow( (wControl_p)structureListL, TRUE );
if (curStructure == NULL) {
wDrawClear( structureD.d );
@@ -653,6 +659,7 @@ EXPORT STATUS_T CmdStructureAction(
DrawSegs( &tempD, Dst.pos, Dst.angle,
curStructure->segs, curStructure->segCnt, 0.0, wDrawColorBlack );
MainRedraw();
+ MapRedraw();
InfoMessage( "[ %0.3f %0.3f ]", pos.x - origPos.x, pos.y - origPos.y );
return C_CONTINUE;
@@ -701,6 +708,7 @@ EXPORT STATUS_T CmdStructureAction(
DrawLine( &tempD, rot0, rot1, 0, wDrawColorBlack );
case C_UP:
MainRedraw();
+ MapRedraw();
return C_CONTINUE;
case C_CMDMENU:
@@ -854,7 +862,7 @@ EXPORT void AddHotBarStructures( void )
to = structureInfo(inx);
if ( !( IsParamValid(to->paramFileIndex) &&
to->segCnt > 0 &&
- CompatibleScale( FALSE, to->scaleInx, curScaleInx ) ) )
+ CompatibleScale( FALSE, to->scaleInx, GetLayoutCurScale()) ) )
/*( (strcmp( to->scale, "*" ) == 0 && strcasecmp( curScaleName, "DEMO" ) != 0 ) ||
strncasecmp( to->scale, curScaleName, strlen(to->scale) ) == 0 ) ) )*/
continue;
diff --git a/app/bin/cswitchmotor.c b/app/bin/cswitchmotor.c
index dbe006c..3d39a68 100644
--- a/app/bin/cswitchmotor.c
+++ b/app/bin/cswitchmotor.c
@@ -50,10 +50,17 @@
*/
#include <ctype.h>
-#include "track.h"
-#include "trackx.h"
+#include <string.h>
+
#include "compound.h"
+#include "cundo.h"
+#include "custom.h"
+#include "fileio.h"
#include "i18n.h"
+#include "param.h"
+#include "track.h"
+#include "trackx.h"
+#include "utility.h"
EXPORT TRKTYP_T T_SWITCHMOTOR = -1;
@@ -271,7 +278,7 @@ static DIST_T DistanceSwitchMotor (track_p t, coOrd * p )
{
switchmotorData_p xx = GetswitchmotorData(t);
if (xx->turnout == NULL) return 0;
- return GetTrkDistance(xx->turnout,*p);
+ return GetTrkDistance(xx->turnout,p);
}
static void DescribeSwitchMotor (track_p trk, char * str, CSIZE_T len )
@@ -769,11 +776,11 @@ EXPORT void CheckDeleteSwitchmotor(track_p t)
track_p sm;
switchmotorData_p xx;
- sm = FindSwitchMotor( t );
- if (sm == NULL) return;
- xx = GetswitchmotorData (sm);
- NoticeMessage(_("Deleting Switch Motor %s"),_("Ok"),NULL,xx->name);
- DeleteTrack (sm, FALSE);
+ while ((sm = FindSwitchMotor( t ))) { //Cope with multiple motors for one Turnout!
+ xx = GetswitchmotorData (sm);
+ InfoMessage(_("Deleting Switch Motor %s"),xx->name);
+ DeleteTrack (sm, FALSE);
+ };
}
diff --git a/app/bin/ctext.c b/app/bin/ctext.c
index 525b55a..ca0c7c7 100644
--- a/app/bin/ctext.c
+++ b/app/bin/ctext.c
@@ -1,6 +1,5 @@
/** \file ctext.c
* Text command
- *
*/
/* XTrkCad - Model Railroad CAD
@@ -21,8 +20,15 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "track.h"
+#include "cundo.h"
+#include "fileio.h"
#include "i18n.h"
+#include "messages.h"
+#include "param.h"
+#include "track.h"
+#include "wlib.h"
+#include "draw.h"
+#include "misc.h"
track_p NewText( wIndex_t index, coOrd p, ANGLE_T angle, char * text, CSIZE_T textSize, wDrawColor color );
@@ -43,11 +49,13 @@ static struct {
coOrd cursPos0, cursPos1;
POS_T cursHeight;
POS_T textLen;
+ POS_T lastLineLen;
+ POS_T lastLineOffset;
coOrd pos;
ANGLE_T angle;
long size;
wIndex_t fontSizeInx;
- char text[STR_SIZE];
+ char text[STR_LONG_SIZE];
wDrawColor color;
} Dt;
@@ -70,31 +78,35 @@ static void TextDlgUpdate(
int inx,
void * context )
{
- coOrd size;
+ coOrd size, lastline;
switch (inx) {
case 0:
+ case 1:
if ( Dt.state == SHOW_TEXT) {
- DrawString( &tempD, Dt.pos, 0.0, Dt.text, NULL, (FONTSIZE_T)Dt.size, Dt.color );
+ DrawMultiString( &tempD, Dt.pos, Dt.text, NULL, (FONTSIZE_T)Dt.size, Dt.color, 0, NULL, NULL );
DrawLine( &tempD, Dt.cursPos0, Dt.cursPos1, 0, Dt.color );
}
UpdateFontSizeList( &Dt.size, (wList_p)textPLs[0].control, Dt.fontSizeInx );
/*wWinSetBusy( mainW, TRUE );*/
if ( Dt.state == SHOW_TEXT) {
- DrawTextSize( &mainD, Dt.text, NULL, Dt.size, TRUE, &size );
+ DrawMultiLineTextSize( &mainD, Dt.text, NULL, Dt.size, TRUE, &size, &lastline);
Dt.textLen = size.x;
+ Dt.lastLineLen = lastline.x;
+ Dt.lastLineOffset = lastline.y;
}
- DrawTextSize( &mainD, "X", NULL, Dt.size, TRUE, &size );
+ DrawTextSize( &mainD, "Aquilp", NULL, Dt.size, TRUE, &size );
Dt.cursHeight = size.y;
/*wWinSetBusy( mainW, FALSE );*/
if ( Dt.state == SHOW_TEXT) {
- Dt.cursPos0.x = Dt.cursPos1.x = Dt.pos.x+Dt.textLen;
- Dt.cursPos1.y = Dt.pos.y+Dt.cursHeight;
+ Dt.cursPos0.x = Dt.cursPos1.x = Dt.pos.x+Dt.lastLineLen;
+ Dt.cursPos1.y = Dt.pos.y+Dt.cursHeight+Dt.lastLineOffset;
DrawLine( &tempD, Dt.cursPos0, Dt.cursPos1, 0, Dt.color );
- DrawString( &tempD, Dt.pos, 0.0, Dt.text, NULL, (FONTSIZE_T)Dt.size, Dt.color );
+ DrawMultiString( &tempD, Dt.pos, Dt.text, NULL, (FONTSIZE_T)Dt.size, Dt.color, 0, NULL, NULL );
}
MainRedraw();
- break;
+ MapRedraw();
+ break;
}
}
@@ -105,7 +117,7 @@ static STATUS_T CmdText( wAction_t action, coOrd pos )
unsigned char c;
wControl_p controls[3];
char * labels[2];
- coOrd size;
+ coOrd size, lastline;
switch (action & 0xFF) {
case C_START:
@@ -114,6 +126,8 @@ static STATUS_T CmdText( wAction_t action, coOrd pos )
Dt.len = 0;
Dt.textLen = 0;
Dt.text[0] = '\0';
+ Dt.lastLineLen = 0;
+ Dt.lastLineOffset = 0;
if (textPD.control == NULL)
{
@@ -122,14 +136,14 @@ static STATUS_T CmdText( wAction_t action, coOrd pos )
ParamRegister(&textPG);
Dt.size = GetFontSize(Dt.fontSizeInx);
}
- Dt.size = wSelectedFontSize();
+ Dt.size = (long)wSelectedFontSize();
Dt.fontSizeInx = GetFontSizeIndex(Dt.size);
ParamLoadControls(&textPG);
ParamGroupRecord( &textPG );
if (!inPlayback)
wWinSetBusy(mainW, TRUE);
- DrawTextSize(&mainD, "X", NULL, Dt.size, TRUE, &size);
+ DrawTextSize(&mainD, "Aquilp", NULL, Dt.size, TRUE, &size);
Dt.cursHeight = size.y;
if (!inPlayback)
wWinSetBusy(mainW, FALSE);
@@ -144,28 +158,28 @@ static STATUS_T CmdText( wAction_t action, coOrd pos )
break;
case C_DOWN:
if (Dt.state != 0) {
- //DrawLine( &tempD, Dt.cursPos0, Dt.cursPos1, 0, Dt.color );
- //DrawString( &tempD, Dt.pos, 0.0, Dt.text, NULL, (FONTSIZE_T)Dt.size, Dt.color );
}
Dt.pos = pos;
- Dt.cursPos0.y = Dt.cursPos1.y = pos.y;
- Dt.cursPos0.x = Dt.cursPos1.x = pos.x + Dt.textLen;
+ Dt.cursPos0.y = Dt.cursPos1.y = pos.y + Dt.lastLineOffset;
+ Dt.cursPos0.x = Dt.cursPos1.x = pos.x + Dt.lastLineLen;
+ DrawTextSize(&mainD, "Aquilp", NULL, Dt.size, TRUE, &size); //In case fontsize change
+ Dt.cursHeight = size.y;
Dt.cursPos1.y += Dt.cursHeight;
DrawLine( &tempD, Dt.cursPos0, Dt.cursPos1, 0, Dt.color );
- DrawString( &tempD, Dt.pos, 0.0, Dt.text, NULL, (FONTSIZE_T)Dt.size, Dt.color );
+ DrawMultiString(&tempD, Dt.pos, Dt.text, NULL, (FONTSIZE_T)Dt.size, Dt.color, 0.0, NULL, NULL );
Dt.state = SHOW_TEXT;
MainRedraw();
+ MapRedraw();
return C_CONTINUE;
case C_MOVE:
- //DrawLine( &tempD, Dt.cursPos0, Dt.cursPos1, 0, Dt.color );
- //DrawString( &tempD, Dt.pos, 0.0, Dt.text, NULL, (FONTSIZE_T)Dt.size, Dt.color );
Dt.pos = pos;
- Dt.cursPos0.y = Dt.cursPos1.y = pos.y;
- Dt.cursPos0.x = Dt.cursPos1.x = pos.x + Dt.textLen;
+ Dt.cursPos0.y = Dt.cursPos1.y = pos.y + Dt.lastLineOffset;
+ Dt.cursPos0.x = Dt.cursPos1.x = pos.x + Dt.lastLineLen;
Dt.cursPos1.y += Dt.cursHeight;
DrawLine( &tempD, Dt.cursPos0, Dt.cursPos1, 0, wDrawColorBlack );
- DrawString( &tempD, Dt.pos, 0.0, Dt.text, NULL, (FONTSIZE_T)Dt.size, Dt.color );
+ DrawMultiString(&tempD, Dt.pos, Dt.text, NULL, (FONTSIZE_T)Dt.size, Dt.color, 0.0, NULL, NULL );
MainRedraw();
+ MapRedraw();
return C_CONTINUE;
case C_UP:
return C_CONTINUE;
@@ -175,7 +189,7 @@ static STATUS_T CmdText( wAction_t action, coOrd pos )
return C_CONTINUE;
}
DrawLine( &tempD, Dt.cursPos0, Dt.cursPos1, 0, Dt.color );
- DrawString( &tempD, Dt.pos, 0.0, Dt.text, NULL, (FONTSIZE_T)Dt.size, Dt.color );
+ DrawMultiString(&tempD, Dt.pos, Dt.text, NULL, (FONTSIZE_T)Dt.size, Dt.color, 0.0, NULL, NULL );
c = (unsigned char)(action >> 8);
switch (c) {
case '\b':
@@ -187,11 +201,17 @@ static STATUS_T CmdText( wAction_t action, coOrd pos )
wBeep();
}
break;
+ case '\n': // Line Feed
+ if (Dt.len < sizeof Dt.text - 1 ) {
+ Dt.text[Dt.len++] = (char)c;
+ Dt.text[Dt.len] = '\000';
+ }
+ break;
case '\015':
UndoStart( _("Create Text"), "newText - CR" );
t = NewText( 0, Dt.pos, Dt.angle, Dt.text, (CSIZE_T)Dt.size, Dt.color );
UndoEnd();
- DrawNewTrack(t);
+ DrawNewTrack(t);
Dt.state = POSITION_TEXT;
InfoSubstituteControls( NULL, NULL );
return C_TERMINATE;
@@ -201,26 +221,33 @@ static STATUS_T CmdText( wAction_t action, coOrd pos )
Dt.text[Dt.len] = '\000';
}
}
- DrawTextSize( &mainD, Dt.text, NULL, Dt.size, TRUE, &size );
+ DrawMultiLineTextSize( &mainD, Dt.text, NULL, Dt.size, TRUE, &size, &lastline);
Dt.textLen = size.x;
- Dt.cursPos0.x = Dt.cursPos1.x = Dt.pos.x + Dt.textLen;
- DrawLine( &tempD, Dt.cursPos0, Dt.cursPos1, 0, Dt.color );
- DrawString( &tempD, Dt.pos, 0.0, Dt.text, NULL, (FONTSIZE_T)Dt.size, Dt.color );
+ Dt.lastLineLen = lastline.x;
+ Dt.lastLineOffset = lastline.y;
+ Dt.cursPos0.x = Dt.cursPos1.x = Dt.pos.x + Dt.lastLineLen;
+ Dt.cursPos0.y = Dt.cursPos1.y = Dt.pos.y + Dt.lastLineOffset;
+ DrawTextSize(&mainD, "Aquilp", NULL, Dt.size, TRUE, &size); //In case fontsize change
+ Dt.cursHeight = size.y;
+ Dt.cursPos1.y +=Dt.cursHeight;
+ MainRedraw();
+ MapRedraw();
+ //DrawLine( &tempD, Dt.cursPos0, Dt.cursPos1, 0, Dt.color );
+ //DrawMultiString(&tempD, Dt.pos, Dt.text, NULL, (FONTSIZE_T)Dt.size, Dt.color, 0.0, NULL, NULL );
return C_CONTINUE;
case C_REDRAW:
if (Dt.state == 1) {
DrawLine( &tempD, Dt.cursPos0, Dt.cursPos1, 0, Dt.color );
- DrawString( &tempD, Dt.pos, 0.0, Dt.text, NULL, (FONTSIZE_T)Dt.size, Dt.color );
+ DrawMultiString(&tempD, Dt.pos, Dt.text, NULL, (FONTSIZE_T)Dt.size, Dt.color, 0.0, NULL, NULL );
}
return C_CONTINUE;
case C_CANCEL:
if (Dt.state != POSITION_TEXT) {
- //DrawString( &tempD, Dt.pos, 0.0, Dt.text, NULL, (FONTSIZE_T)Dt.size, Dt.color );
- //DrawLine( &tempD, Dt.cursPos0, Dt.cursPos1, 0, Dt.color );
Dt.state = POSITION_TEXT;
}
InfoSubstituteControls( NULL, NULL );
MainRedraw();
+ MapRedraw();
return C_TERMINATE;
case C_OK:
if (Dt.state != POSITION_TEXT) {
@@ -235,6 +262,7 @@ static STATUS_T CmdText( wAction_t action, coOrd pos )
}
InfoSubstituteControls( NULL, NULL );
MainRedraw();
+ MapRedraw();
return C_TERMINATE;
case C_FINISH:
diff --git a/app/bin/ctodesgn.c b/app/bin/ctodesgn.c
index b5ba768..392b405 100644
--- a/app/bin/ctodesgn.c
+++ b/app/bin/ctodesgn.c
@@ -26,14 +26,22 @@
#endif
#include <stdint.h>
-
#include <ctype.h>
-#include "track.h"
+#include <math.h>
+#include <string.h>
+#include <messages.h>
+
#include "ccurve.h"
-#include "cstraigh.h"
#include "compound.h"
+#include "cstraigh.h"
+#include "custom.h"
+#include "fileio.h"
#include "i18n.h"
+#include "param.h"
+#include "track.h"
+#include "utility.h"
+
#define TURNOUTDESIGNER "CTURNOUT DESIGNER"
@@ -1414,7 +1422,7 @@ static void NewTurnPrint(
wDrawString( newTurnout_d.d, POSX(3.0),
POSY(6.25), 0.0, message, fp, 30,
wDrawColorBlack, 0 );
- sprintf( message, "%s %d x %d (of %d x %d)", _("Page"), i+1, j+1, ii, jj );
+ sprintf( message, _("%s %d x %d (of %d x %d)"), _("Page"), i+1, j+1, ii, jj );
wDrawString( newTurnout_d.d, POSX(3.0),
POSY(5.75), 0.0, message, fp, 20,
wDrawColorBlack, 0 );
@@ -2176,14 +2184,14 @@ EXPORT BOOL_T WriteSegs(
case SEG_CRVLIN:
rc &= fprintf( f, "\t%c %ld %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f\n",
segs[i].type, (segs[i].type==SEG_CRVTRK?0:roadbedColorRGB), segs[i].width,
- segs[i].u.c.radius,
+ fabs(segs[i].u.c.radius),
segs[i].u.c.center.x, segs[i].u.c.center.y,
segs[i].u.c.a0, segs[i].u.c.a1 )>0;
break;
case SEG_FILCRCL:
rc &= fprintf( f, "\t%c %ld %0.6f %0.6f %0.6f %0.6f\n",
segs[i].type, roadbedColorRGB, segs[i].width,
- segs[i].u.c.radius,
+ fabs(segs[i].u.c.radius),
segs[i].u.c.center.x, segs[i].u.c.center.y )>0;
break;
case SEG_POLY:
diff --git a/app/bin/ctrain.c b/app/bin/ctrain.c
index d3eb00a..d480982 100644
--- a/app/bin/ctrain.c
+++ b/app/bin/ctrain.c
@@ -1,6 +1,5 @@
/** \file ctrain.c
* Functions related to running trains
- *
*/
/* XTrkCad - Model Railroad CAD
@@ -25,37 +24,47 @@
#include <errno.h>
#endif
#include <ctype.h>
+#include <math.h>
+#include <string.h>
#define PRIVATE_EXTRADATA
-#include "track.h"
-#include "trackx.h"
-#include "ctrain.h"
+
#include "compound.h"
+#include "ctrain.h"
+#include "cundo.h"
+#include "custom.h"
+#include "fileio.h"
#include "i18n.h"
+#include "layout.h"
+#include "messages.h"
+#include "param.h"
+#include "track.h"
+#include "trackx.h"
+#include "utility.h"
-EXPORT long programMode;
-EXPORT long maxCouplingSpeed = 100;
-EXPORT long hideTrainsInTunnels;
+long programMode;
+long maxCouplingSpeed = 100;
+long hideTrainsInTunnels;
extern int doDrawTurnoutPosition;
-extern void NextTurnoutPosition( track_p );
+extern void NextTurnoutPosition(track_p);
static TRKTYP_T T_CAR = -1;
typedef enum { ST_NotOnTrack, ST_StopManual, ST_EndOfTrack, ST_OpenTurnout, ST_NoRoom, ST_Crashed } trainStatus_e;
struct extraData {
- traverseTrack_t trvTrk;
- long state;
- carItem_p item;
- double speed;
- BOOL_T direction;
- BOOL_T autoReverse;
- trainStatus_e status;
- DIST_T distance;
- coOrd couplerPos[2];
- LAYER_T trkLayer;
- };
+ traverseTrack_t trvTrk;
+ long state;
+ carItem_p item;
+ double speed;
+ BOOL_T direction;
+ BOOL_T autoReverse;
+ trainStatus_e status;
+ DIST_T distance;
+ coOrd couplerPos[2];
+ unsigned int trkLayer;
+};
#define NOTALAYER (127)
#define CAR_STATE_IGNORED (1L<<17)
@@ -63,16 +72,14 @@ struct extraData {
#define CAR_STATE_LOCOISMASTER (1L<<19)
#define CAR_STATE_ONHIDENTRACK (1L<<20)
+#define COUPLERCONNECTIONANGLE 45.0
+#define CRASHSPEEDDECAY 5
#define IsOnTrack( XX ) ((XX)->trvTrk.trk!=NULL)
#define IsIgnored( XX ) (((XX)->state&CAR_STATE_IGNORED)!=0)
#define SetIgnored( XX ) (XX)->state |= CAR_STATE_IGNORED
#define ClrIgnored( XX ) (XX)->state &= ~CAR_STATE_IGNORED
-#ifdef LATER
-#define IsLocoMaster( XX ) (((XX)->state&CAR_STATE_LOCOISMASTER)!=0)
-#define SetLocoMaster( XX ) (XX)->state |= CAR_STATE_LOCOISMASTER
-#define ClrLocoMaster( XX ) (XX)->state &= ~CAR_STATE_LOCOISMASTER
-#endif
+
#define IsLocoMaster( XX ) CarItemIsLocoMaster((XX)->item)
#define SetLocoMaster( XX ) CarItemSetLocoMaster((XX)->item,TRUE)
#define ClrLocoMaster( XX ) CarItemSetLocoMaster((XX)->item,FALSE)
@@ -82,8 +89,8 @@ struct extraData {
static wButton_p newcarB;
-static void ControllerDialogSyncAll( void );
-static STATUS_T CmdTrain( wAction_t, coOrd );
+static void ControllerDialogSyncAll(void);
+static STATUS_T CmdTrain(wAction_t, coOrd);
static wMenu_p trainPopupM;
static wMenuPush_p trainPopupMI[8];
static track_p followTrain;
@@ -91,16 +98,16 @@ static coOrd followCenter;
static BOOL_T trainsTimeoutPending;
static enum { TRAINS_STOP, TRAINS_RUN, TRAINS_IDLE, TRAINS_PAUSE } trainsState;
static wIcon_p stopI, goI;
-static void RestartTrains( void );
-static void DrawAllCars( void );
-static void UncoupleCars( track_p, track_p );
-static void TrainTimeEndPause( void );
-static void TrainTimeStartPause( void );
+static void RestartTrains(void);
+static void DrawAllCars(void);
+static void UncoupleCars(track_p, track_p);
+static void TrainTimeEndPause(void);
+static void TrainTimeStartPause(void);
static int log_trainMove;
static int log_trainPlayback;
-static void PlaceCar( track_p );
+static void PlaceCar(track_p);
#define WALK_CARS_START( CAR, XX, DIR ) \
@@ -123,151 +130,175 @@ static void PlaceCar( track_p );
* Generic Commands
*/
-EXPORT void CarGetPos(
- track_p car,
- coOrd * posR,
- ANGLE_T * angleR )
+void CarGetPos(
+ track_p car,
+ coOrd * posR,
+ ANGLE_T * angleR)
{
- struct extraData * xx = GetTrkExtraData( car );
- if ( GetTrkType(car) != T_CAR )
- AbortProg( "getCarPos" );
- *posR = xx->trvTrk.pos;
- *angleR = xx->trvTrk.angle;
+ struct extraData * xx = GetTrkExtraData(car);
+
+ if (GetTrkType(car) != T_CAR) {
+ AbortProg("getCarPos");
+ }
+
+ *posR = xx->trvTrk.pos;
+ *angleR = xx->trvTrk.angle;
}
-EXPORT void CarSetVisible(
- track_p car )
+void CarSetVisible(
+ track_p car)
{
- struct extraData * xx;
- int dir;
- dir = 0;
- WALK_CARS_START( car, xx, dir )
- if ( GetTrkType(car) != T_CAR )
- AbortProg( "carSetVisible" );
- WALK_CARS_END( car, xx, dir )
- dir = 1-dir;
- WALK_CARS_START( car, xx, dir ) {
- xx->state &= ~(CAR_STATE_ONHIDENTRACK);
- xx->trkLayer = NOTALAYER;
- }
- WALK_CARS_END( car, xx, dir )
+ struct extraData * xx;
+ int dir;
+ dir = 0;
+ WALK_CARS_START(car, xx, dir)
+
+ if (GetTrkType(car) != T_CAR) {
+ AbortProg("carSetVisible");
+ }
+
+ WALK_CARS_END(car, xx, dir)
+ dir = 1-dir;
+ WALK_CARS_START(car, xx, dir) {
+ xx->state &= ~(CAR_STATE_ONHIDENTRACK);
+ xx->trkLayer = NOTALAYER;
+ }
+ WALK_CARS_END(car, xx, dir)
}
static struct {
- long index;
- coOrd pos;
- ANGLE_T angle;
- DIST_T length;
- DIST_T width;
- char desc[STR_SIZE];
- char number[STR_SIZE];
- } carData;
+ long index;
+ coOrd pos;
+ ANGLE_T angle;
+ DIST_T length;
+ DIST_T width;
+ char desc[STR_SIZE];
+ char number[STR_SIZE];
+} carData;
typedef enum { IT, PN, AN, LN, WD, DE, NM } carDesc_e;
static descData_t carDesc[] = {
-/*IT*/ { DESC_LONG, N_("Index"), &carData.index },
-/*PN*/ { DESC_POS, N_("Position"), &carData.pos },
-/*AN*/ { DESC_ANGLE, N_("Angle"), &carData.angle },
-/*LN*/ { DESC_DIM, N_("Length"), &carData.length },
-/*WD*/ { DESC_DIM, N_("Width"), &carData.width },
-/*DE*/ { DESC_STRING, N_("Description"), &carData.desc },
-/*NM*/ { DESC_STRING, N_("Rep Marks"), &carData.number },
- { DESC_NULL } };
+ /*IT*/ { DESC_LONG, N_("Index"), &carData.index },
+ /*PN*/ { DESC_POS, N_("Position"), &carData.pos },
+ /*AN*/ { DESC_ANGLE, N_("Angle"), &carData.angle },
+ /*LN*/ { DESC_DIM, N_("Length"), &carData.length },
+ /*WD*/ { DESC_DIM, N_("Width"), &carData.width },
+ /*DE*/ { DESC_STRING, N_("Description"), &carData.desc },
+ /*NM*/ { DESC_STRING, N_("Rep Marks"), &carData.number },
+ { DESC_NULL }
+};
static void UpdateCar(
- track_p trk,
- int inx,
- descData_p descUpd,
- BOOL_T needUndoStart )
+ track_p trk,
+ int inx,
+ descData_p descUpd,
+ BOOL_T needUndoStart)
{
- BOOL_T titleChanged;
- const char * cp;
- if ( inx == -1 ) {
- titleChanged = FALSE;
- cp = wStringGetValue( (wString_p)carDesc[NM].control0 );
- if ( cp && strcmp( carData.number, cp ) != 0 ) {
- titleChanged = TRUE;
- strcpy( carData.number, cp );
- }
- if ( !titleChanged )
- return;
- if ( needUndoStart )
- UndoStart( _("Change Track"), "Change Track" );
- UndoModify( trk );
- UndrawNewTrack( trk );
- DrawNewTrack( trk );
- return;
- }
- UndrawNewTrack( trk );
- switch (inx) {
- case NM:
- break;
- default:
- break;
- }
- DrawNewTrack( trk );
+ if (inx == -1) {
+ BOOL_T titleChanged;
+ const char * cp;
+ titleChanged = FALSE;
+ cp = wStringGetValue((wString_p)carDesc[NM].control0);
+
+ if (cp && strcmp(carData.number, cp) != 0) {
+ titleChanged = TRUE;
+ strcpy(carData.number, cp);
+ }
+
+ if (!titleChanged) {
+ return;
+ }
+
+ if (needUndoStart) {
+ UndoStart(_("Change Track"), "Change Track");
+ }
+
+ UndoModify(trk);
+ UndrawNewTrack(trk);
+ DrawNewTrack(trk);
+ return;
+ }
+
+ UndrawNewTrack(trk);
+
+ switch (inx) {
+ case NM:
+ break;
+
+ default:
+ break;
+ }
+
+ DrawNewTrack(trk);
}
static void DescribeCar(
- track_p trk,
- char * str,
- CSIZE_T len )
+ track_p trk,
+ char * str,
+ CSIZE_T len)
+{
+ struct extraData *xx = GetTrkExtraData(trk);
+ char * cp;
+ coOrd size;
+ CarItemSize(xx->item, &size);
+ carData.length = size.x;
+ carData.width = size.y;
+ cp = CarItemDescribe(xx->item, 0, &carData.index);
+ strcpy(carData.number, CarItemNumber(xx->item));
+ strncpy(str, cp, len);
+ carData.pos = xx->trvTrk.pos;
+ carData.angle = xx->trvTrk.angle;
+ cp = CarItemDescribe(xx->item, -1, NULL);
+ strncpy(carData.desc, cp, sizeof carData.desc);
+ carDesc[IT].mode =
+ carDesc[PN].mode =
+ carDesc[AN].mode =
+ carDesc[LN].mode =
+ carDesc[WD].mode = DESC_RO;
+ carDesc[DE].mode =
+ carDesc[NM].mode = DESC_RO;
+ DoDescribe(_("Car"), trk, carDesc, UpdateCar);
+}
+
+
+void FlipTraverseTrack(
+ traverseTrack_p trvTrk)
{
- struct extraData *xx = GetTrkExtraData(trk);
- char * cp;
- coOrd size;
-
- CarItemSize( xx->item, &size );
- carData.length = size.x;
- carData.width = size.y;
- cp = CarItemDescribe( xx->item, 0, &carData.index );
- strcpy( carData.number, CarItemNumber(xx->item) );
- strncpy( str, cp, len );
- carData.pos = xx->trvTrk.pos;
- carData.angle = xx->trvTrk.angle;
- cp = CarItemDescribe( xx->item, -1, NULL );
- strncpy( carData.desc, cp, sizeof carData.desc );
- carDesc[IT].mode =
- carDesc[PN].mode =
- carDesc[AN].mode =
- carDesc[LN].mode =
- carDesc[WD].mode = DESC_RO;
- carDesc[DE].mode =
- carDesc[NM].mode = DESC_RO;
- DoDescribe( _("Car"), trk, carDesc, UpdateCar );
+ trvTrk->angle = NormalizeAngle(trvTrk->angle + 180.0);
+
+ if (trvTrk->length > 0) {
+ trvTrk->dist = trvTrk->length - trvTrk->dist;
+ }
}
-EXPORT void FlipTraverseTrack(
- traverseTrack_p trvTrk )
+BOOL_T TraverseTrack2(
+ traverseTrack_p trvTrk0,
+ DIST_T dist0)
{
- trvTrk->angle = NormalizeAngle( trvTrk->angle + 180.0 );
- if ( trvTrk->length > 0 )
- trvTrk->dist = trvTrk->length - trvTrk->dist;
-}
+ traverseTrack_t trvTrk = *trvTrk0;
+ DIST_T dist = dist0;
+ if (dist0 < 0) {
+ dist = -dist;
+ FlipTraverseTrack(&trvTrk);
+ }
-EXPORT BOOL_T TraverseTrack2(
- traverseTrack_p trvTrk0,
- DIST_T dist0 )
-{
- traverseTrack_t trvTrk = *trvTrk0;
- DIST_T dist = dist0;
- if ( dist0 < 0 ) {
- dist = -dist;
- FlipTraverseTrack( &trvTrk );
- }
- if ( trvTrk.trk==NULL ||
- (!TraverseTrack(&trvTrk,&dist)) ||
- trvTrk.trk==NULL ||
- dist!=0.0 ) {
- Translate( &trvTrk.pos, trvTrk.pos, trvTrk.angle, dist );
- }
- if ( dist0 < 0 )
- FlipTraverseTrack( &trvTrk );
- *trvTrk0 = trvTrk;
- return TRUE;
+ if (trvTrk.trk==NULL ||
+ (!TraverseTrack(&trvTrk,&dist)) ||
+ trvTrk.trk==NULL ||
+ dist!=0.0) {
+ Translate(&trvTrk.pos, trvTrk.pos, trvTrk.angle, dist);
+
+ }
+
+ if (dist0 < 0) {
+ FlipTraverseTrack(&trvTrk);
+ }
+
+ *trvTrk0 = trvTrk;
+ return TRUE;
}
@@ -276,220 +307,238 @@ static BOOL_T drawCarEnable = TRUE;
static BOOL_T noCarDraw = FALSE;
static void DrawCar(
- track_p car,
- drawCmd_p d,
- wDrawColor color )
+ track_p car,
+ drawCmd_p d,
+ wDrawColor color)
{
- struct extraData * xx = GetTrkExtraData(car);
- int dir;
- vector_t coupler[2];
- track_p car1;
- struct extraData * xx1;
- int dir1;
-
- if ( drawCarEnable == FALSE )
- return;
- /*d = &tempD;*/
-/*
- if ( !IsVisible(xx) )
- return;
-*/
- if ( d == &mapD )
- return;
- if ( noCarDraw )
- return;
- if ( hideTrainsInTunnels &&
- ( (((xx->state&CAR_STATE_ONHIDENTRACK)!=0) && drawTunnel==0) ||
- (xx->trkLayer!=NOTALAYER && !GetLayerVisible(xx->trkLayer)) ) )
- return;
-
- for ( dir=0; dir<2; dir++ ) {
- coupler[dir].pos = xx->couplerPos[dir];
- if ( (car1 = GetTrkEndTrk(car,dir)) ) {
- xx1 = GetTrkExtraData(car1);
- dir1 = (GetTrkEndTrk(car1,0)==car)?0:1;
- coupler[dir].angle = FindAngle( xx->couplerPos[dir], xx1->couplerPos[dir1] );
- } else {
- coupler[dir].angle = NormalizeAngle(xx->trvTrk.angle+(dir==0?0.0:180.0)-15.0);
- }
- }
- CarItemDraw( d, xx->item, color, xx->direction, IsLocoMaster(xx), coupler );
+ struct extraData * xx = GetTrkExtraData(car);
+ int dir;
+ vector_t coupler[2];
+ struct extraData * xx1;
+ int dir1;
+
+ if (drawCarEnable == FALSE) {
+ return;
+ }
+
+ if (d == &mapD) {
+ return;
+ }
+
+ if (noCarDraw) {
+ return;
+ }
+
+ if (hideTrainsInTunnels &&
+ ((((xx->state&CAR_STATE_ONHIDENTRACK)!=0) && drawTunnel==0) ||
+ (xx->trkLayer!=NOTALAYER && !GetLayerVisible(xx->trkLayer)))) {
+ return;
+ }
+
+ for (dir=0; dir<2; dir++) {
+ track_p car1;
+ coupler[dir].pos = xx->couplerPos[dir];
+
+ if ((car1 = GetTrkEndTrk(car,dir))) {
+ xx1 = GetTrkExtraData(car1);
+ dir1 = (GetTrkEndTrk(car1,0)==car)?0:1;
+ coupler[dir].angle = FindAngle(xx->couplerPos[dir], xx1->couplerPos[dir1]);
+ } else {
+ coupler[dir].angle = NormalizeAngle(xx->trvTrk.angle+(dir==0?0.0:180.0)-15.0);
+ }
+ }
+
+ CarItemDraw(d, xx->item, color, xx->direction, IsLocoMaster(xx), coupler);
}
static DIST_T DistanceCar(
- track_p trk,
- coOrd * pos )
+ track_p trk,
+ coOrd * pos)
{
- struct extraData * xx = GetTrkExtraData(trk);
- DIST_T dist;
- coOrd pos1;
- coOrd size;
-
- xx = GetTrkExtraData(trk);
- if ( IsIgnored(xx) )
- return 10000.0;
-
- CarItemSize( xx->item, &size ); /* TODO assumes xx->trvTrk.pos is the car center */
- dist = FindDistance( *pos, xx->trvTrk.pos );
- if ( dist < size.x/2.0 ) {
- pos1 = *pos;
- Rotate( &pos1, xx->trvTrk.pos, -xx->trvTrk.angle );
- pos1.x += -xx->trvTrk.pos.x + size.y/2.0; /* TODO: why not size.x? */
- pos1.y += -xx->trvTrk.pos.y + size.x/2.0;
- if ( pos1.x >= 0 && pos1.x <= size.y &&
- pos1.y >= 0 && pos1.y <= size.x )
- dist = 0;
- }
- *pos = xx->trvTrk.pos;
- return dist;
-}
+ struct extraData * xx = GetTrkExtraData(trk);
+ DIST_T dist;
+ coOrd pos1;
+ coOrd size;
+ if (IsIgnored(xx)) {
+ return 10000.0;
+ }
-static void SetCarBoundingBox(
- track_p car )
-{
- struct extraData * xx = GetTrkExtraData(car);
- coOrd lo, hi, p[4];
- int inx;
- coOrd size;
-
-/* TODO: should be bounding box of all pieces aligned on track */
- CarItemSize( xx->item, &size ); /* TODO assumes xx->trvTrk.pos is the car center */
- Translate( &p[0], xx->trvTrk.pos, xx->trvTrk.angle, size.x/2.0 );
- Translate( &p[1], p[0], xx->trvTrk.angle+90, size.y/2.0 );
- Translate( &p[0], p[0], xx->trvTrk.angle-90, size.y/2.0 );
- Translate( &p[2], xx->trvTrk.pos, xx->trvTrk.angle+180, size.x/2.0 );
- Translate( &p[3], p[2], xx->trvTrk.angle+90, size.y/2.0 );
- Translate( &p[2], p[2], xx->trvTrk.angle-90, size.y/2.0 );
- lo = hi = p[0];
- for ( inx = 1; inx < 4; inx++ ) {
- if ( p[inx].x < lo.x )
- lo.x = p[inx].x;
- if ( p[inx].y < lo.y )
- lo.y = p[inx].y;
- if ( p[inx].x > hi.x )
- hi.x = p[inx].x;
- if ( p[inx].y > hi.y )
- hi.y = p[inx].y;
- }
- SetBoundingBox( car, hi, lo );
+ CarItemSize(xx->item,
+ &size); /* TODO assumes xx->trvTrk.pos is the car center */
+ dist = FindDistance(*pos, xx->trvTrk.pos);
+
+ if (dist < size.x/2.0) {
+ pos1 = *pos;
+ Rotate(&pos1, xx->trvTrk.pos, -xx->trvTrk.angle);
+ pos1.x += -xx->trvTrk.pos.x + size.y/2.0; /* TODO: why not size.x? */
+ pos1.y += -xx->trvTrk.pos.y + size.x/2.0;
+ if (pos1.x >= 0 && pos1.x <= size.y &&
+ pos1.y >= 0 && pos1.y <= size.x) {
+ dist = 0;
+ }
+ }
+
+ *pos = xx->trvTrk.pos;
+ return dist;
}
-EXPORT track_p NewCar(
- wIndex_t index,
- carItem_p item,
- coOrd pos,
- ANGLE_T angle )
+static void SetCarBoundingBox(
+ track_p car)
{
- track_p trk;
- struct extraData * xx;
-
- trk = NewTrack( index, T_CAR, 2, sizeof (*xx) );
- /*SetEndPts( trk, 0 );*/
- xx = GetTrkExtraData(trk);
- /*SetTrkVisible( trk, IsVisible(xx) );*/
- xx->item = item;
- xx->trvTrk.pos = pos;
- xx->trvTrk.angle = angle;
- xx->state = 0;
- SetCarBoundingBox( trk );
- CarItemSetTrack( item, trk );
- PlaceCar( trk );
- return trk;
+ struct extraData * xx = GetTrkExtraData(car);
+ coOrd lo, hi, p[4];
+ int inx;
+ coOrd size;
+ /* TODO: should be bounding box of all pieces aligned on track */
+ CarItemSize(xx->item,
+ &size); /* TODO assumes xx->trvTrk.pos is the car center */
+ Translate(&p[0], xx->trvTrk.pos, xx->trvTrk.angle, size.x/2.0);
+ Translate(&p[1], p[0], xx->trvTrk.angle+90, size.y/2.0);
+ Translate(&p[0], p[0], xx->trvTrk.angle-90, size.y/2.0);
+ Translate(&p[2], xx->trvTrk.pos, xx->trvTrk.angle+180, size.x/2.0);
+ Translate(&p[3], p[2], xx->trvTrk.angle+90, size.y/2.0);
+ Translate(&p[2], p[2], xx->trvTrk.angle-90, size.y/2.0);
+ lo = hi = p[0];
+
+ for (inx = 1; inx < 4; inx++) {
+ if (p[inx].x < lo.x) {
+ lo.x = p[inx].x;
+ }
+
+ if (p[inx].y < lo.y) {
+ lo.y = p[inx].y;
+ }
+
+ if (p[inx].x > hi.x) {
+ hi.x = p[inx].x;
+ }
+
+ if (p[inx].y > hi.y) {
+ hi.y = p[inx].y;
+ }
+ }
+
+ SetBoundingBox(car, hi, lo);
+}
+
+
+track_p NewCar(
+ wIndex_t index,
+ carItem_p item,
+ coOrd pos,
+ ANGLE_T angle)
+{
+ track_p trk;
+ struct extraData * xx;
+ trk = NewTrack(index, T_CAR, 2, sizeof(*xx));
+ /*SetEndPts( trk, 0 );*/
+ xx = GetTrkExtraData(trk);
+ /*SetTrkVisible( trk, IsVisible(xx) );*/
+ xx->item = item;
+ xx->trvTrk.pos = pos;
+ xx->trvTrk.angle = angle;
+ xx->state = 0;
+ SetCarBoundingBox(trk);
+ CarItemSetTrack(item, trk);
+ PlaceCar(trk);
+ return trk;
}
static void DeleteCar(
- track_p trk )
+ track_p trk)
{
- struct extraData * xx = GetTrkExtraData(trk);
- CarItemSetTrack( xx->item, NULL );
+ struct extraData * xx = GetTrkExtraData(trk);
+ CarItemSetTrack(xx->item, NULL);
}
static void ReadCar(
- char * line )
+ char * line)
{
- CarItemRead( line );
+ CarItemRead(line);
}
static BOOL_T WriteCar(
- track_p trk,
- FILE * f )
+ track_p trk,
+ FILE * f)
{
- BOOL_T rc = TRUE;
- return rc;
+ BOOL_T rc = TRUE;
+ return rc;
}
static void MoveCar(
- track_p car,
- coOrd pos )
+ track_p car,
+ coOrd pos)
{
- struct extraData *xx = GetTrkExtraData(car);
- xx->trvTrk.pos.x += pos.x;
- xx->trvTrk.pos.y += pos.y;
- xx->trvTrk.trk = NULL;
- PlaceCar( car );
- SetCarBoundingBox(car);
+ struct extraData *xx = GetTrkExtraData(car);
+ xx->trvTrk.pos.x += pos.x;
+ xx->trvTrk.pos.y += pos.y;
+ xx->trvTrk.trk = NULL;
+ PlaceCar(car);
+ SetCarBoundingBox(car);
}
static void RotateCar(
- track_p car,
- coOrd pos,
- ANGLE_T angle )
+ track_p car,
+ coOrd pos,
+ ANGLE_T angle)
{
- struct extraData *xx = GetTrkExtraData(car);
- Rotate( &xx->trvTrk.pos, pos, angle );
- xx->trvTrk.angle = NormalizeAngle( xx->trvTrk.angle + angle );
- xx->trvTrk.trk = NULL;
- PlaceCar( car );
- SetCarBoundingBox( car );
+ struct extraData *xx = GetTrkExtraData(car);
+ Rotate(&xx->trvTrk.pos, pos, angle);
+ xx->trvTrk.angle = NormalizeAngle(xx->trvTrk.angle + angle);
+ xx->trvTrk.trk = NULL;
+ PlaceCar(car);
+ SetCarBoundingBox(car);
}
-static BOOL_T QueryCar( track_p trk, int query )
+static BOOL_T QueryCar(track_p trk, int query)
{
- switch ( query ) {
- case Q_NODRAWENDPT:
- return TRUE;
- default:
- return FALSE;
- }
+ switch (query) {
+ case Q_NODRAWENDPT:
+ return TRUE;
+
+ default:
+ return FALSE;
+ }
}
static trackCmd_t carCmds = {
- "CAR ",
- DrawCar, /* draw */
- DistanceCar, /* distance */
- DescribeCar, /* describe */
- DeleteCar, /* delete */
- WriteCar, /* write */
- ReadCar, /* read */
- MoveCar, /* move */
- RotateCar, /* rotate */
- NULL, /* rescale */
- NULL, /* audit */
- NULL, /* getAngle */
- NULL, /* split */
- NULL, /* traverse */
- NULL, /* enumerate */
- NULL, /* redraw*/
- NULL, /* trim*/
- NULL, /* merge*/
- NULL, /* modify */
- NULL, /* getLength */
- NULL, /* getParams */
- NULL, /* moveEndPt */
- QueryCar, /* query */
- NULL, /* ungroup */
- NULL, /* flip */ };
+ "CAR ",
+ DrawCar, /* draw */
+ DistanceCar, /* distance */
+ DescribeCar, /* describe */
+ DeleteCar, /* delete */
+ WriteCar, /* write */
+ ReadCar, /* read */
+ MoveCar, /* move */
+ RotateCar, /* rotate */
+ NULL, /* rescale */
+ NULL, /* audit */
+ NULL, /* getAngle */
+ NULL, /* split */
+ NULL, /* traverse */
+ NULL, /* enumerate */
+ NULL, /* redraw*/
+ NULL, /* trim*/
+ NULL, /* merge*/
+ NULL, /* modify */
+ NULL, /* getLength */
+ NULL, /* getParams */
+ NULL, /* moveEndPt */
+ QueryCar, /* query */
+ NULL, /* ungroup */
+ NULL, /* flip */
+};
/*
*
@@ -505,36 +554,37 @@ static int numTrainDlg;
#define MAX_SPEED (100.0)
typedef struct {
- wWin_p win;
- wIndex_t inx;
- track_p train;
- long direction;
- long followMe;
- long autoReverse;
- coOrd pos;
- char posS[STR_SHORT_SIZE];
- DIST_T speed;
- char speedS[10];
- paramGroup_p trainPGp;
- } trainControlDlg_t, * trainControlDlg_p;
+ wWin_p win;
+ wIndex_t inx;
+ track_p train;
+ long direction;
+ long followMe;
+ long autoReverse;
+ coOrd pos;
+ char posS[STR_SHORT_SIZE];
+ DIST_T speed;
+ char speedS[10];
+ paramGroup_p trainPGp;
+} trainControlDlg_t, * trainControlDlg_p;
static trainControlDlg_t * curTrainDlg;
-static void SpeedRedraw( wDraw_p, void *, wPos_t, wPos_t );
-static void SpeedAction( wAction_t, coOrd );
-static void LocoListChangeEntry( track_p, track_p );
-static void CmdTrainExit( void * );
+static void SpeedRedraw(wDraw_p, void *, wPos_t, wPos_t);
+static void SpeedAction(wAction_t, coOrd);
+static void LocoListChangeEntry(track_p, track_p);
+static void CmdTrainExit(void *);
drawCmd_t speedD = {
- NULL,
- &screenDrawFuncs,
- 0,
- 1.0,
- 0.0,
- { 0.0, 0.0 },
- { 0.0, 0.0 },
- Pix2CoOrd,
- CoOrd2Pix };
+ NULL,
+ &screenDrawFuncs,
+ 0,
+ 1.0,
+ 0.0,
+ { 0.0, 0.0 },
+ { 0.0, 0.0 },
+ Pix2CoOrd,
+ CoOrd2Pix
+};
static paramDrawData_t speedParamData = { SLIDER_WIDTH, SLIDER_HEIGHT, SpeedRedraw, SpeedAction, &speedD };
#ifndef WINDOWS
static paramListData_t listData = { 3, 120 };
@@ -544,52 +594,56 @@ static char * trainAutoReverseLabels[] = { N_("Auto Reverse"), NULL };
static paramData_t trainPLs[] = {
#define I_LIST (0)
#ifdef WINDOWS
-/*0*/ { PD_DROPLIST, NULL, "list", PDO_NOPREF|PDO_NOPSHUPD, (void*)120, NULL, 0 },
+ /*0*/ { PD_DROPLIST, NULL, "list", PDO_NOPREF|PDO_NOPSHUPD, (void*)120, NULL, 0 },
#else
-/*0*/ { PD_LIST, NULL, "list", PDO_NOPREF|PDO_NOPSHUPD, &listData, NULL, 0 },
+ /*0*/ { PD_LIST, NULL, "list", PDO_NOPREF|PDO_NOPSHUPD, &listData, NULL, 0 },
#endif
#define I_STATUS (1)
- { PD_MESSAGE, NULL, NULL, 0, (void*)120 },
+ { PD_MESSAGE, NULL, NULL, 0, (void*)120 },
#define I_POS (2)
- { PD_MESSAGE, NULL, NULL, 0, (void*)120 },
+ { PD_MESSAGE, NULL, NULL, 0, (void*)120 },
#define I_SLIDER (3)
- { PD_DRAW, NULL, "speed", PDO_NOPSHUPD|PDO_DLGSETY, &speedParamData },
+ { PD_DRAW, NULL, "speed", PDO_NOPSHUPD|PDO_DLGSETY, &speedParamData },
#define I_DIST (4)
- { PD_STRING, NULL, "distance", PDO_DLGNEWCOLUMN, (void*)(100-SLIDER_WIDTH), NULL, BO_READONLY },
+ { PD_STRING, NULL, "distance", PDO_DLGNEWCOLUMN, (void*)(100-SLIDER_WIDTH), NULL, BO_READONLY },
#define I_ZERO (5)
- { PD_BUTTON, NULL, "zeroDistance", PDO_NOPSHUPD|PDO_NOPREF|PDO_DLGHORZ, NULL, NULL, BO_ICON },
+ { PD_BUTTON, NULL, "zeroDistance", PDO_NOPSHUPD|PDO_NOPREF|PDO_DLGHORZ, NULL, NULL, BO_ICON },
#define I_GOTO (6)
- { PD_BUTTON, NULL, "goto", PDO_NOPSHUPD|PDO_NOPREF|PDO_DLGWIDE, NULL, N_("Find") },
+ { PD_BUTTON, NULL, "goto", PDO_NOPSHUPD|PDO_NOPREF|PDO_DLGWIDE, NULL, N_("Find") },
#define I_FOLLOW (7)
- { PD_TOGGLE, NULL, "follow", PDO_NOPREF|PDO_DLGWIDE, trainFollowMeLabels, NULL, BC_HORZ|BC_NOBORDER },
+ { PD_TOGGLE, NULL, "follow", PDO_NOPREF|PDO_DLGWIDE, trainFollowMeLabels, NULL, BC_HORZ|BC_NOBORDER },
#define I_AUTORVRS (8)
- { PD_TOGGLE, NULL, "autoreverse", PDO_NOPREF, trainAutoReverseLabels, NULL, BC_HORZ|BC_NOBORDER },
+ { PD_TOGGLE, NULL, "autoreverse", PDO_NOPREF, trainAutoReverseLabels, NULL, BC_HORZ|BC_NOBORDER },
#define I_DIR (9)
- { PD_BUTTON, NULL, "direction", PDO_NOPREF|PDO_DLGWIDE, NULL, N_("Forward"), 0 },
+ { PD_BUTTON, NULL, "direction", PDO_NOPREF|PDO_DLGWIDE, NULL, N_("Forward"), 0 },
#define I_STOP (10)
- { PD_BUTTON, NULL, "stop", PDO_DLGWIDE, NULL, N_("Stop") },
+ { PD_BUTTON, NULL, "stop", PDO_DLGWIDE, NULL, N_("Stop") },
#define I_SPEED (11)
- { PD_MESSAGE, NULL, NULL, PDO_DLGIGNOREX, (void *)120 } };
+ { PD_MESSAGE, NULL, NULL, PDO_DLGIGNOREX, (void *)120 }
+};
static paramGroup_t trainPG = { "train", 0, trainPLs, sizeof trainPLs/sizeof trainPLs[0] };
typedef struct {
- track_p loco;
- BOOL_T running;
- } locoList_t;
+ track_p loco;
+ BOOL_T running;
+} locoList_t;
dynArr_t locoList_da;
#define locoList(N) DYNARR_N( locoList_t, locoList_da, N )
static wIndex_t FindLoco(
- track_p loco )
+ track_p loco)
{
- wIndex_t inx;
- for ( inx = 0; inx<locoList_da.cnt; inx++ ) {
- if ( locoList(inx).loco == loco )
- return inx;
- }
- return -1;
+ wIndex_t inx;
+
+ for (inx = 0; inx<locoList_da.cnt; inx++) {
+ if (locoList(inx).loco == loco) {
+ return inx;
+ }
+ }
+
+ return -1;
}
/**
@@ -603,488 +657,591 @@ static wIndex_t FindLoco(
*/
static void SpeedRedraw(
- wDraw_p d,
- void * context,
- wPos_t w,
- wPos_t h )
+ wDraw_p d,
+ void * context,
+ wPos_t w,
+ wPos_t h)
{
- wPos_t y, pts[4][2];
- trainControlDlg_p dlg = (trainControlDlg_p)context;
- struct extraData * xx;
- wDrawColor drawColor;
-
- wDrawClear( d );
- if ( dlg == NULL || dlg->train == NULL ) return;
- xx = GetTrkExtraData( dlg->train );
- if ( xx->speed > MAX_SPEED )
- xx->speed = MAX_SPEED;
- if ( xx->speed < 0 )
- xx->speed = 0;
- y = (wPos_t)(xx->speed/MAX_SPEED*((SLIDER_HEIGHT-SLIDER_THICKNESS))+SLIDER_THICKNESS/2);
-
- drawColor = wDrawFindColor( wRGB( 160, 160, 160) );
- pts[0][1] = pts[1][1] = y-SLIDER_THICKNESS/2;
- pts[2][1] = pts[3][1] = y+SLIDER_THICKNESS/2;
- pts[0][0] = pts[3][0] = 0;
- pts[1][0] = pts[2][0] = SLIDER_WIDTH;
- wDrawFilledPolygon( d, pts, 4, drawColor, 0 );
-
- drawColor = wDrawFindColor( wRGB( 220, 220, 220) );
- pts[0][1] = pts[1][1] = y+SLIDER_THICKNESS/2;
- pts[2][1] = pts[3][1] = y;
- pts[0][0] = pts[3][0] = 0;
- pts[1][0] = pts[2][0] = SLIDER_WIDTH;
- wDrawFilledPolygon( d, pts, 4, drawColor, 0 );
-
- wDrawLine( d, 0, y, SLIDER_WIDTH, y, 1, wDrawLineSolid, drawColorRed, 0 );
- wDrawLine( d, 0, y+SLIDER_THICKNESS/2, SLIDER_WIDTH, y+SLIDER_THICKNESS/2, 1, wDrawLineSolid, drawColorBlack, 0 );
- wDrawLine( d, 0, y-SLIDER_THICKNESS/2, SLIDER_WIDTH, y-SLIDER_THICKNESS/2, 1, wDrawLineSolid, drawColorBlack, 0 );
-
- sprintf( dlg->speedS, "%3d %s", (int)(units==UNITS_ENGLISH?xx->speed:xx->speed*1.6), (units==UNITS_ENGLISH?"mph":"km/h") );
- ParamLoadMessage( dlg->trainPGp, I_SPEED, dlg->speedS );
- LOG( log_trainPlayback, 3, ( "Speed = %d\n", (int)xx->speed ) );
+ wPos_t y, pts[4][2];
+ trainControlDlg_p dlg = (trainControlDlg_p)context;
+ struct extraData * xx;
+ wDrawColor drawColor;
+ wDrawClear(d);
+
+ if (dlg == NULL || dlg->train == NULL) {
+ return;
+ }
+
+ xx = GetTrkExtraData(dlg->train);
+
+ if (xx->speed > MAX_SPEED) {
+ xx->speed = MAX_SPEED;
+ }
+
+ if (xx->speed < 0) {
+ xx->speed = 0;
+ }
+
+ y = (wPos_t)(xx->speed/MAX_SPEED*((SLIDER_HEIGHT-SLIDER_THICKNESS))
+ +SLIDER_THICKNESS/2);
+ drawColor = wDrawFindColor(wRGB(160, 160, 160));
+ pts[0][1] = pts[1][1] = y-SLIDER_THICKNESS/2;
+ pts[2][1] = pts[3][1] = y+SLIDER_THICKNESS/2;
+ pts[0][0] = pts[3][0] = 0;
+ pts[1][0] = pts[2][0] = SLIDER_WIDTH;
+ wDrawFilledPolygon(d, pts, 4, drawColor, 0);
+ drawColor = wDrawFindColor(wRGB(220, 220, 220));
+ pts[0][1] = pts[1][1] = y+SLIDER_THICKNESS/2;
+ pts[2][1] = pts[3][1] = y;
+ pts[0][0] = pts[3][0] = 0;
+ pts[1][0] = pts[2][0] = SLIDER_WIDTH;
+ wDrawFilledPolygon(d, pts, 4, drawColor, 0);
+ wDrawLine(d, 0, y, SLIDER_WIDTH, y, 1, wDrawLineSolid, drawColorRed, 0);
+ wDrawLine(d, 0, y+SLIDER_THICKNESS/2, SLIDER_WIDTH, y+SLIDER_THICKNESS/2, 1,
+ wDrawLineSolid, drawColorBlack, 0);
+ wDrawLine(d, 0, y-SLIDER_THICKNESS/2, SLIDER_WIDTH, y-SLIDER_THICKNESS/2, 1,
+ wDrawLineSolid, drawColorBlack, 0);
+ sprintf(dlg->speedS, "%3d %s",
+ (int)(units==UNITS_ENGLISH?xx->speed:xx->speed*1.6),
+ (units==UNITS_ENGLISH?"mph":"km/h"));
+ ParamLoadMessage(dlg->trainPGp, I_SPEED, dlg->speedS);
+ LOG(log_trainPlayback, 3, ("Speed = %d\n", (int)xx->speed));
}
static void SpeedAction(
- wAction_t action,
- coOrd pos )
+ wAction_t action,
+ coOrd pos)
{
- /*trainControlDlg_p dlg = (trainControlDlg_p)wDrawGetContext(d);*/
- trainControlDlg_p dlg = curTrainDlg;
- struct extraData * xx;
- FLOAT_T speed;
- BOOL_T startStop;
- if ( dlg == NULL || dlg->train == NULL )
- return;
- xx = GetTrkExtraData( dlg->train );
- switch ( action ) {
- case C_DOWN:
- InfoMessage( "" );
- case C_MOVE:
- case C_UP:
- TrainTimeEndPause();
- if ( IsOnTrack(xx) ) {
- speed = ((FLOAT_T)((pos.y*speedD.dpi)-SLIDER_THICKNESS/2))/(SLIDER_HEIGHT-SLIDER_THICKNESS)*MAX_SPEED;
- } else {
- speed = 0;
- }
- if ( speed > MAX_SPEED )
- speed = MAX_SPEED;
- if ( speed < 0 )
- speed = 0;
- startStop = (xx->speed == 0) != (speed == 0);
- xx->speed = speed;
- SpeedRedraw( (wDraw_p)dlg->trainPGp->paramPtr[I_SLIDER].control, dlg, SLIDER_WIDTH, SLIDER_HEIGHT );
- if ( startStop ) {
- if ( xx->speed == 0 )
- xx->status = ST_StopManual;
- LocoListChangeEntry( dlg->train, dlg->train );
- }
- TrainTimeStartPause();
- if ( trainsState == TRAINS_IDLE )
- RestartTrains();
- break;
- default:
- break;
- }
-}
+ trainControlDlg_p dlg = curTrainDlg;
+ struct extraData * xx;
+ FLOAT_T speed;
+ BOOL_T startStop;
+ if (dlg == NULL || dlg->train == NULL) {
+ return;
+ }
-static void ControllerDialogSync(
- trainControlDlg_p dlg )
-{
- struct extraData * xx=NULL;
- wIndex_t inx;
- BOOL_T dir;
- BOOL_T followMe;
- BOOL_T autoReverse;
- DIST_T speed;
- coOrd pos;
- char * statusMsg;
- long format;
-
- if ( dlg == NULL ) return;
-
- inx = wListGetIndex( (wList_p)dlg->trainPGp->paramPtr[I_LIST].control );
- if ( dlg->train ) {
- if ( inx >= 0 && inx < locoList_da.cnt && dlg->train && dlg->train != locoList(inx).loco ) {
- inx = FindLoco( dlg->train );
- if ( inx >= 0 ) {
- wListSetIndex( (wList_p)dlg->trainPGp->paramPtr[I_LIST].control, inx );
- }
- }
- } else {
- wListSetIndex( (wList_p)dlg->trainPGp->paramPtr[I_LIST].control, -1 );
- }
+ xx = GetTrkExtraData(dlg->train);
- if ( dlg->train ) {
- xx = GetTrkExtraData(dlg->train);
- dir = xx->direction==0?0:1;
- speed = xx->speed;
- pos = xx->trvTrk.pos;
- followMe = followTrain == dlg->train;
- autoReverse = xx->autoReverse;
- if ( xx->trvTrk.trk == NULL ) {
- if ( xx->status == ST_Crashed )
- statusMsg = _("Crashed");
- else
- statusMsg = _("Not on Track");
- } else if ( xx->speed > 0 ) {
- if ( trainsState == TRAINS_STOP )
- statusMsg = _("Trains Paused");
- else
- statusMsg = _("Running");
- } else {
- switch (xx->status ) {
- case ST_EndOfTrack:
- statusMsg = _("End of Track");
- break;
- case ST_OpenTurnout:
- statusMsg = _("Open Turnout");
- break;
- case ST_StopManual:
- statusMsg = _("Manual Stop");
- break;
- case ST_NoRoom:
- statusMsg = _("No Room");
- break;
- case ST_Crashed:
- statusMsg = _("Crashed");
- break;
- default:
- statusMsg = _("Unknown Status");
- break;
- }
- }
- ParamLoadMessage( dlg->trainPGp, I_STATUS, statusMsg );
- } else {
- dir = 0;
- followMe = FALSE;
- autoReverse = FALSE;
- ParamLoadMessage( dlg->trainPGp, I_STATUS, _("No trains") );
- }
- if ( dlg->followMe != followMe ) {
- dlg->followMe = followMe;
- ParamLoadControl( dlg->trainPGp, I_FOLLOW );
- }
- if ( dlg->autoReverse != autoReverse ) {
- dlg->autoReverse = autoReverse;
- ParamLoadControl( dlg->trainPGp, I_AUTORVRS );
- }
- if ( dlg->direction != dir ) {
- dlg->direction = dir;
- wButtonSetLabel( (wButton_p)dlg->trainPGp->paramPtr[I_DIR].control, (dlg->direction?_("Reverse"):_("Forward")) );
- }
- if ( dlg->train ) {
- if ( dlg->posS[0] == '\0' ||
- dlg->pos.x != xx->trvTrk.pos.x ||
- dlg->pos.y != xx->trvTrk.pos.y ) {
- dlg->pos = xx->trvTrk.pos;
- format = GetDistanceFormat();
- format &= ~DISTFMT_DECS;
- sprintf( dlg->posS, "X:%s Y:%s",
- FormatDistanceEx( xx->trvTrk.pos.x, format ),
- FormatDistanceEx( xx->trvTrk.pos.y, format ) );
- ParamLoadMessage( dlg->trainPGp, I_POS, dlg->posS );
- }
- if ( dlg->speed != xx->speed ) {
- dlg->speed = xx->speed;
- sprintf( dlg->speedS, "%3d", (int)(units==UNITS_ENGLISH?xx->speed:xx->speed*1.6) );
- ParamLoadMessage( dlg->trainPGp, I_SPEED, dlg->speedS );
- SpeedRedraw( (wDraw_p)dlg->trainPGp->paramPtr[I_SLIDER].control, dlg, SLIDER_WIDTH, SLIDER_HEIGHT );
- }
- ParamLoadMessage( dlg->trainPGp, I_DIST, FormatDistance(xx->distance) );
- } else {
- if ( dlg->posS[0] != '\0' ) {
- dlg->posS[0] = '\0';
- ParamLoadMessage( dlg->trainPGp, I_POS, dlg->posS );
- }
- if ( dlg->speed >= 0 ) {
- dlg->speed = -1;
- dlg->speedS[0] = '\0';
- ParamLoadMessage( dlg->trainPGp, I_SPEED, dlg->speedS );
- wDrawClear( (wDraw_p)dlg->trainPGp->paramPtr[I_SLIDER].control );
- }
- ParamLoadMessage( dlg->trainPGp, I_DIST, "" );
- }
+ switch (action) {
+ case C_DOWN:
+ InfoMessage("");
+
+ case C_MOVE:
+ case C_UP:
+ TrainTimeEndPause();
+
+ if (IsOnTrack(xx)) {
+ speed = ((FLOAT_T)((pos.y*speedD.dpi)-SLIDER_THICKNESS/2))/
+ (SLIDER_HEIGHT-SLIDER_THICKNESS)*MAX_SPEED;
+ } else {
+ speed = 0;
+ }
+
+ if (speed > MAX_SPEED) {
+ speed = MAX_SPEED;
+ }
+
+ if (speed < 0) {
+ speed = 0;
+ }
+
+ startStop = (xx->speed == 0) != (speed == 0);
+ xx->speed = speed;
+ SpeedRedraw((wDraw_p)dlg->trainPGp->paramPtr[I_SLIDER].control, dlg,
+ SLIDER_WIDTH, SLIDER_HEIGHT);
+
+ if (startStop) {
+ if (xx->speed == 0) {
+ xx->status = ST_StopManual;
+ }
+
+ LocoListChangeEntry(dlg->train, dlg->train);
+ }
+
+ TrainTimeStartPause();
+
+ if (trainsState == TRAINS_IDLE) {
+ RestartTrains();
+ }
+
+ break;
+
+ default:
+ break;
+ }
}
-static void ControllerDialogSyncAll( void )
+static void ControllerDialogSync(
+ trainControlDlg_p dlg)
+{
+ struct extraData * xx=NULL;
+ wIndex_t inx;
+ BOOL_T dir;
+ BOOL_T followMe;
+ BOOL_T autoReverse;
+ coOrd pos;
+
+ if (dlg == NULL) {
+ return;
+ }
+
+ inx = wListGetIndex((wList_p)dlg->trainPGp->paramPtr[I_LIST].control);
+
+ if (dlg->train) {
+ if (inx >= 0 && inx < locoList_da.cnt && dlg->train &&
+ dlg->train != locoList(inx).loco) {
+ inx = FindLoco(dlg->train);
+
+ if (inx >= 0) {
+ wListSetIndex((wList_p)dlg->trainPGp->paramPtr[I_LIST].control, inx);
+ }
+ }
+ } else {
+ wListSetIndex((wList_p)dlg->trainPGp->paramPtr[I_LIST].control, -1);
+ }
+
+ if (dlg->train) {
+ char * statusMsg;
+ DIST_T speed;
+ xx = GetTrkExtraData(dlg->train);
+ dir = xx->direction==0?0:1;
+ speed = xx->speed;
+ pos = xx->trvTrk.pos;
+ followMe = followTrain == dlg->train;
+ autoReverse = xx->autoReverse;
+
+ if (xx->trvTrk.trk == NULL) {
+ if (xx->status == ST_Crashed) {
+ statusMsg = _("Crashed");
+ } else {
+ statusMsg = _("Not on Track");
+ }
+ } else if (xx->speed > 0) {
+ if (trainsState == TRAINS_STOP) {
+ statusMsg = _("Trains Paused");
+ } else {
+ statusMsg = _("Running");
+ }
+ } else {
+ switch (xx->status) {
+ case ST_EndOfTrack:
+ statusMsg = _("End of Track");
+ break;
+
+ case ST_OpenTurnout:
+ statusMsg = _("Open Turnout");
+ break;
+
+ case ST_StopManual:
+ statusMsg = _("Manual Stop");
+ break;
+
+ case ST_NoRoom:
+ statusMsg = _("No Room");
+ break;
+
+ case ST_Crashed:
+ statusMsg = _("Crashed");
+ break;
+
+ default:
+ statusMsg = _("Unknown Status");
+ break;
+ }
+ }
+
+ ParamLoadMessage(dlg->trainPGp, I_STATUS, statusMsg);
+ } else {
+ dir = 0;
+ followMe = FALSE;
+ autoReverse = FALSE;
+ ParamLoadMessage(dlg->trainPGp, I_STATUS, _("No trains"));
+ }
+
+ if (dlg->followMe != followMe) {
+ dlg->followMe = followMe;
+ ParamLoadControl(dlg->trainPGp, I_FOLLOW);
+ }
+
+ if (dlg->autoReverse != autoReverse) {
+ dlg->autoReverse = autoReverse;
+ ParamLoadControl(dlg->trainPGp, I_AUTORVRS);
+ }
+
+ if (dlg->direction != dir) {
+ dlg->direction = dir;
+ wButtonSetLabel((wButton_p)dlg->trainPGp->paramPtr[I_DIR].control,
+ (dlg->direction?_("Reverse"):_("Forward")));
+ }
+
+ if (dlg->train) {
+ if (dlg->posS[0] == '\0' ||
+ dlg->pos.x != xx->trvTrk.pos.x ||
+ dlg->pos.y != xx->trvTrk.pos.y) {
+ long format;
+ dlg->pos = xx->trvTrk.pos;
+ format = GetDistanceFormat();
+ format &= ~DISTFMT_DECS;
+ sprintf(dlg->posS, "X:%s Y:%s",
+ FormatDistanceEx(xx->trvTrk.pos.x, format),
+ FormatDistanceEx(xx->trvTrk.pos.y, format));
+ ParamLoadMessage(dlg->trainPGp, I_POS, dlg->posS);
+ }
+
+ if (dlg->speed != xx->speed) {
+ dlg->speed = xx->speed;
+ sprintf(dlg->speedS, "%3d",
+ (int)(units==UNITS_ENGLISH?xx->speed:xx->speed*1.6));
+ ParamLoadMessage(dlg->trainPGp, I_SPEED, dlg->speedS);
+ SpeedRedraw((wDraw_p)dlg->trainPGp->paramPtr[I_SLIDER].control, dlg,
+ SLIDER_WIDTH, SLIDER_HEIGHT);
+ }
+
+ ParamLoadMessage(dlg->trainPGp, I_DIST, FormatDistance(xx->distance));
+ } else {
+ if (dlg->posS[0] != '\0') {
+ dlg->posS[0] = '\0';
+ ParamLoadMessage(dlg->trainPGp, I_POS, dlg->posS);
+ }
+
+ if (dlg->speed >= 0) {
+ dlg->speed = -1;
+ dlg->speedS[0] = '\0';
+ ParamLoadMessage(dlg->trainPGp, I_SPEED, dlg->speedS);
+ wDrawClear((wDraw_p)dlg->trainPGp->paramPtr[I_SLIDER].control);
+ }
+
+ ParamLoadMessage(dlg->trainPGp, I_DIST, "");
+ }
+}
+
+
+static void ControllerDialogSyncAll(void)
{
- if ( curTrainDlg )
- ControllerDialogSync( curTrainDlg );
+ if (curTrainDlg) {
+ ControllerDialogSync(curTrainDlg);
+ }
}
static void LocoListChangeEntry(
- track_p oldLoco,
- track_p newLoco )
+ track_p oldLoco,
+ track_p newLoco)
{
- wIndex_t inx = -1;
- struct extraData * xx;
-
- if ( curTrainDlg == NULL )
- return;
- if ( oldLoco && (inx=FindLoco(oldLoco))>=0 ) {
- if ( newLoco ) {
- xx = GetTrkExtraData(newLoco);
- locoList(inx).loco = newLoco;
- xx = GetTrkExtraData(newLoco);
- locoList(inx).running = IsOnTrack(xx) && xx->speed > 0;
- wListSetValues( (wList_p)curTrainDlg->trainPGp->paramPtr[I_LIST].control, inx, CarItemNumber(xx->item), locoList(inx).running?goI:stopI, newLoco );
- } else {
- wListDelete( (wList_p)curTrainDlg->trainPGp->paramPtr[I_LIST].control, inx );
- for ( ; inx<locoList_da.cnt-1; inx++ )
- locoList(inx) = locoList(inx+1);
- locoList_da.cnt -= 1;
- if ( inx >= locoList_da.cnt )
- inx--;
- }
- } else if ( newLoco ){
- inx = locoList_da.cnt;
- DYNARR_APPEND( locoList_t, locoList_da, 10 );
- locoList(inx).loco = newLoco;
- xx = GetTrkExtraData(newLoco);
- locoList(inx).running = IsOnTrack(xx) && xx->speed > 0;
- wListAddValue( (wList_p)curTrainDlg->trainPGp->paramPtr[I_LIST].control, CarItemNumber(xx->item), locoList(inx).running?goI:stopI, newLoco );
- }
- if ( curTrainDlg->train == oldLoco ) {
- if ( newLoco || locoList_da.cnt <= 0 ) {
- curTrainDlg->train = newLoco;
- } else {
- curTrainDlg->train = wListGetItemContext( (wList_p)curTrainDlg->trainPGp->paramPtr[I_LIST].control, inx );
- }
- }
- ControllerDialogSync( curTrainDlg );
-}
+ wIndex_t inx = -1;
+ struct extraData * xx;
+
+ if (curTrainDlg == NULL) {
+ return;
+ }
+
+ if (oldLoco && (inx=FindLoco(oldLoco))>=0) {
+ if (newLoco) {
+ locoList(inx).loco = newLoco;
+ xx = GetTrkExtraData(newLoco);
+ locoList(inx).running = IsOnTrack(xx) && xx->speed > 0;
+ wListSetValues((wList_p)curTrainDlg->trainPGp->paramPtr[I_LIST].control, inx,
+ CarItemNumber(xx->item), locoList(inx).running?goI:stopI, newLoco);
+ } else {
+ wListDelete((wList_p)curTrainDlg->trainPGp->paramPtr[I_LIST].control, inx);
+
+ for (; inx<locoList_da.cnt-1; inx++) {
+ locoList(inx) = locoList(inx+1);
+ }
+
+ locoList_da.cnt -= 1;
+
+ if (inx >= locoList_da.cnt) {
+ inx--;
+ }
+ }
+ } else if (newLoco) {
+ inx = locoList_da.cnt;
+ DYNARR_APPEND(locoList_t, locoList_da, 10);
+ locoList(inx).loco = newLoco;
+ xx = GetTrkExtraData(newLoco);
+ locoList(inx).running = IsOnTrack(xx) && xx->speed > 0;
+ wListAddValue((wList_p)curTrainDlg->trainPGp->paramPtr[I_LIST].control,
+ CarItemNumber(xx->item), locoList(inx).running?goI:stopI, newLoco);
+ }
+
+ if (curTrainDlg->train == oldLoco) {
+ if (newLoco || locoList_da.cnt <= 0) {
+ curTrainDlg->train = newLoco;
+ } else {
+ curTrainDlg->train = wListGetItemContext((wList_p)
+ curTrainDlg->trainPGp->paramPtr[I_LIST].control, inx);
+ }
+ }
+
+ ControllerDialogSync(curTrainDlg);
+}
+
+
+static void LocoListInit(void)
+{
+ track_p train;
+ struct extraData * xx;
+ locoList_da.cnt = 0;
+ for (train=NULL; TrackIterate(&train);) {
+ if (GetTrkType(train) != T_CAR) {
+ continue;
+ }
-static void LocoListInit( void )
-{
- track_p train;
- struct extraData * xx;
-
- locoList_da.cnt = 0;
- for ( train=NULL; TrackIterate( &train ); ) {
- if ( GetTrkType(train) != T_CAR ) continue;
- xx = GetTrkExtraData(train);
- if ( !CarItemIsLoco(xx->item) ) continue;
- if ( !IsLocoMaster(xx) ) continue;
- LocoListChangeEntry( NULL, train );
- }
-}
+ xx = GetTrkExtraData(train);
+ if (!CarItemIsLoco(xx->item)) {
+ continue;
+ }
-#ifdef LATER
-static void LoadTrainDlgIndex(
- trainControlDlg_p dlg )
-{
- track_p car;
- struct extraData * xx;
-
- wListClear( (wList_p)dlg->trainPGp->paramPtr[I_LIST].control );
- for ( car=NULL; TrackIterate( &car ); ) {
- if ( GetTrkType(car) != T_CAR ) continue;
- xx = GetTrkExtraData(car);
- if ( !CarItemIsLoco(xx->item) ) continue;
- if ( !IsLocoMaster(xx) ) continue;
- wListAddValue( (wList_p)dlg->trainPGp->paramPtr[I_LIST].control, CarItemNumber(xx->item), xx->speed>0?goI:stopI, car );
- }
- TrainDialogSetIndex( dlg );
- ControllerDialogSync( curTrainDlg );
+ if (!IsLocoMaster(xx)) {
+ continue;
+ }
+
+ LocoListChangeEntry(NULL, train);
+ }
}
-#endif
static void SetCurTrain(
- track_p train )
+ track_p train)
{
- curTrainDlg->train = train;
- ControllerDialogSync( curTrainDlg );
+ curTrainDlg->train = train;
+ ControllerDialogSync(curTrainDlg);
}
static void StopTrain(
- track_p train,
- trainStatus_e status )
+ track_p train,
+ trainStatus_e status)
{
- struct extraData * xx;
-
- if ( train == NULL )
- return;
- xx = GetTrkExtraData(train);
- xx->speed = 0;
- xx->status = status;
- LocoListChangeEntry( train, train );
+ struct extraData * xx;
+
+ if (train == NULL) {
+ return;
+ }
+
+ xx = GetTrkExtraData(train);
+ xx->speed = 0;
+ xx->status = status;
+ LocoListChangeEntry(train, train);
}
static void MoveMainWindow(
- coOrd pos,
- ANGLE_T angle )
+ coOrd pos,
+ ANGLE_T angle)
{
- DIST_T dist;
- static DIST_T factor = 0.5;
- ANGLE_T angle1 = angle, angle2;
- if ( angle1 > 180.0)
- angle1 = 360.0 - angle1;
- if ( angle1 > 90.0)
- angle1 = 180.0 - angle1;
- angle2 = R2D(atan2(mainD.size.x,mainD.size.y));
- if ( angle1 < angle2 )
- dist = mainD.size.y/2.0/cos(D2R(angle1));
- else
- dist = mainD.size.x/2.0/cos(D2R(90.0-angle1));
- dist *= factor;
- Translate( &pos, pos, angle, dist );
- DrawMapBoundingBox( FALSE );
- mainCenter = pos;
- mainD.orig.x = pos.x-mainD.size.x/2;;
- mainD.orig.y = pos.y-mainD.size.y/2;;
- MainRedraw();
- DrawMapBoundingBox( TRUE );
+ DIST_T dist;
+ static DIST_T factor = 0.5;
+ ANGLE_T angle1 = angle, angle2;
+
+ if (angle1 > 180.0) {
+ angle1 = 360.0 - angle1;
+ }
+
+ if (angle1 > 90.0) {
+ angle1 = 180.0 - angle1;
+ }
+
+ angle2 = R2D(atan2(mainD.size.x,mainD.size.y));
+
+ if (angle1 < angle2) {
+ dist = mainD.size.y/2.0/cos(D2R(angle1));
+ } else {
+ dist = mainD.size.x/2.0/cos(D2R(90.0-angle1));
+ }
+
+ dist *= factor;
+ Translate(&pos, pos, angle, dist);
+ //DrawMapBoundingBox(FALSE);
+ mainCenter = pos;
+ mainD.orig.x = pos.x-mainD.size.x/2;;
+ mainD.orig.y = pos.y-mainD.size.y/2;;
+ MainRedraw();
+ MapRedraw();
+ //DrawMapBoundingBox(TRUE);
}
static void SetTrainDirection(
- track_p train )
+ track_p train)
{
- struct extraData *xx, *xx0=GetTrkExtraData(train);
- int dir, dir0;
- track_p car;
-
- car = train;
- for ( dir0 = 0; dir0 < 2; dir0++ ) {
- dir = dir0;
- WALK_CARS_START( car, xx, dir )
- if ( car != train ) {
- if ( CarItemIsLoco(xx->item) ) {
- xx->direction = (dir==dir0?xx0->direction:!xx0->direction);
- }
- }
- WALK_CARS_END( car, xx, dir )
- }
-}
+ struct extraData *xx, *xx0=GetTrkExtraData(train);
+ int dir0;
+ track_p car;
+ car = train;
+ for (dir0 = 0; dir0 < 2; dir0++) {
+ int dir;
+ dir = dir0;
+ WALK_CARS_START(car, xx, dir)
-static void ControllerDialogUpdate(
- paramGroup_p pg,
- int inx,
- void * valueP )
-{
- trainControlDlg_p dlg = curTrainDlg;
- track_p train;
- struct extraData * xx;
-
- if ( dlg == NULL )
- return;
-
- TrainTimeEndPause();
- switch (inx) {
- case I_LIST:
- train = (track_p)wListGetItemContext( (wList_p)pg->paramPtr[inx].control, (wIndex_t)*(long*)valueP );
- if ( train == NULL ) return;
- dlg->train = train;
- ControllerDialogSync( dlg );
- break;
- case I_ZERO:
- if ( dlg->train == NULL ) return;
- TrainTimeEndPause();
- xx = GetTrkExtraData( dlg->train );
- xx->distance = 0.0;
- ParamLoadMessage( dlg->trainPGp, I_DIST, FormatDistance(xx->distance) );
- ParamLoadControl( curTrainDlg->trainPGp, I_DIST );
- TrainTimeStartPause();
- break;
- case I_GOTO:
- if ( dlg->train == NULL ) return;
- TrainTimeEndPause();
- xx = GetTrkExtraData( dlg->train );
- followTrain = NULL;
- dlg->followMe = FALSE;
- ParamLoadControl( curTrainDlg->trainPGp, I_FOLLOW );
- CarSetVisible( dlg->train );
- MoveMainWindow( xx->trvTrk.pos, xx->trvTrk.angle );
- TrainTimeStartPause();
- break;
- case I_FOLLOW:
- if ( dlg->train == NULL ) return;
- if ( *(long*)valueP ) {
- followTrain = dlg->train;
- xx = GetTrkExtraData(dlg->train);
- if ( OFF_MAIND( xx->trvTrk.pos, xx->trvTrk.pos ) ) {
- MoveMainWindow( xx->trvTrk.pos, xx->trvTrk.angle );
- }
- followCenter = mainCenter;
- } else {
- followTrain = NULL;
- }
- break;
- case I_AUTORVRS:
- if ( dlg->train == NULL ) return;
- xx = GetTrkExtraData(dlg->train);
- xx->autoReverse = *(long*)valueP!=0;
- break;
- case I_DIR:
- if ( dlg->train == NULL ) return;
- xx = GetTrkExtraData(dlg->train);
- dlg->direction = xx->direction = !xx->direction;
- wButtonSetLabel( (wButton_p)pg->paramPtr[I_DIR].control, (dlg->direction?_("Reverse"):_("Forward")) );
- SetTrainDirection( dlg->train );
- DrawAllCars();
- break;
- case I_STOP:
- if ( dlg->train == NULL ) return;
- TrainTimeEndPause();
- StopTrain( dlg->train, ST_StopManual );
- TrainTimeStartPause();
- break;
- case -1:
- /* Close window */
- CmdTrainExit( NULL );
- break;
- }
- /*ControllerDialogSync( dlg );*/
- TrainTimeStartPause();
+ if (car != train) {
+ if (CarItemIsLoco(xx->item)) {
+ xx->direction = (dir==dir0?xx0->direction:!xx0->direction);
+ }
+ }
+
+ WALK_CARS_END(car, xx, dir)
+ }
}
-static trainControlDlg_p CreateTrainControlDlg( void )
+static void ControllerDialogUpdate(
+ paramGroup_p pg,
+ int inx,
+ void * valueP)
{
- trainControlDlg_p dlg;
- char * title;
- paramData_p PLp;
- dlg = (trainControlDlg_p)MyMalloc( sizeof *dlg );
-#ifdef LATER
- PLp = (paramData_p)MyMalloc( sizeof trainPLs );
- memcpy( PLp, trainPLs, sizeof trainPLs );
-#endif
- PLp = trainPLs;
- dlg->posS[0] = '\0';
- dlg->speedS[0] = '\0';
- PLp[I_LIST].valueP = &dlg->inx;
- PLp[I_LIST].context = dlg;
- PLp[I_POS].valueP = &dlg->posS;
- PLp[I_POS].context = dlg;
- /*PLp[I_GOTO].valueP = NULL;*/
- PLp[I_GOTO].context = dlg;
- PLp[I_SLIDER].context = dlg;
- PLp[I_SPEED].valueP = &dlg->speedS;
- PLp[I_SPEED].context = dlg;
- PLp[I_DIR].context = dlg;
- /*PLp[I_STOP].valueP = NULL;*/
- PLp[I_STOP].context = dlg;
- PLp[I_FOLLOW].valueP = &dlg->followMe;
- PLp[I_FOLLOW].context = dlg;
- PLp[I_AUTORVRS].valueP = &dlg->autoReverse;
- PLp[I_AUTORVRS].context = dlg;
- title = MyStrdup( _("Train Control XXX") );
- sprintf( title, _("Train Control %d"), ++numTrainDlg );
- dlg->trainPGp = &trainPG;
- dlg->win = ParamCreateDialog( dlg->trainPGp, _("Train Control"), NULL, NULL, NULL, FALSE, NULL, 0, ControllerDialogUpdate );
- return dlg;
+ trainControlDlg_p dlg = curTrainDlg;
+ track_p train;
+ struct extraData * xx;
+
+ if (dlg == NULL) {
+ return;
+ }
+
+ TrainTimeEndPause();
+
+ switch (inx) {
+ case I_LIST:
+ train = (track_p)wListGetItemContext((wList_p)pg->paramPtr[inx].control,
+ (wIndex_t)*(long*)valueP);
+
+ if (train == NULL) {
+ return;
+ }
+
+ dlg->train = train;
+ ControllerDialogSync(dlg);
+ break;
+
+ case I_ZERO:
+ if (dlg->train == NULL) {
+ return;
+ }
+
+ TrainTimeEndPause();
+ xx = GetTrkExtraData(dlg->train);
+ xx->distance = 0.0;
+ ParamLoadMessage(dlg->trainPGp, I_DIST, FormatDistance(xx->distance));
+ ParamLoadControl(curTrainDlg->trainPGp, I_DIST);
+ TrainTimeStartPause();
+ break;
+
+ case I_GOTO:
+ if (dlg->train == NULL) {
+ return;
+ }
+
+ TrainTimeEndPause();
+ xx = GetTrkExtraData(dlg->train);
+ followTrain = NULL;
+ dlg->followMe = FALSE;
+ ParamLoadControl(curTrainDlg->trainPGp, I_FOLLOW);
+ CarSetVisible(dlg->train);
+ MoveMainWindow(xx->trvTrk.pos, xx->trvTrk.angle);
+ TrainTimeStartPause();
+ break;
+
+ case I_FOLLOW:
+ if (dlg->train == NULL) {
+ return;
+ }
+
+ if (*(long*)valueP) {
+ followTrain = dlg->train;
+ xx = GetTrkExtraData(dlg->train);
+
+ if (OFF_MAIND(xx->trvTrk.pos, xx->trvTrk.pos)) {
+ MoveMainWindow(xx->trvTrk.pos, xx->trvTrk.angle);
+ }
+
+ followCenter = mainCenter;
+ } else {
+ followTrain = NULL;
+ }
+
+ break;
+
+ case I_AUTORVRS:
+ if (dlg->train == NULL) {
+ return;
+ }
+
+ xx = GetTrkExtraData(dlg->train);
+ xx->autoReverse = *(long*)valueP!=0;
+ break;
+
+ case I_DIR:
+ if (dlg->train == NULL) {
+ return;
+ }
+
+ xx = GetTrkExtraData(dlg->train);
+ dlg->direction = xx->direction = !xx->direction;
+ wButtonSetLabel((wButton_p)pg->paramPtr[I_DIR].control,
+ (dlg->direction?_("Reverse"):_("Forward")));
+ SetTrainDirection(dlg->train);
+ DrawAllCars();
+ break;
+
+ case I_STOP:
+ if (dlg->train == NULL) {
+ return;
+ }
+
+ TrainTimeEndPause();
+ StopTrain(dlg->train, ST_StopManual);
+ TrainTimeStartPause();
+ break;
+
+ case -1:
+ /* Close window */
+ CmdTrainExit(NULL);
+ break;
+ }
+
+ /*ControllerDialogSync( dlg );*/
+ TrainTimeStartPause();
+}
+
+
+static trainControlDlg_p CreateTrainControlDlg(void)
+{
+ trainControlDlg_p dlg;
+ char * title;
+ paramData_p PLp;
+ dlg = (trainControlDlg_p)MyMalloc(sizeof *dlg);
+ PLp = trainPLs;
+ dlg->posS[0] = '\0';
+ dlg->speedS[0] = '\0';
+ PLp[I_LIST].valueP = &dlg->inx;
+ PLp[I_LIST].context = dlg;
+ PLp[I_POS].valueP = &dlg->posS;
+ PLp[I_POS].context = dlg;
+ /*PLp[I_GOTO].valueP = NULL;*/
+ PLp[I_GOTO].context = dlg;
+ PLp[I_SLIDER].context = dlg;
+ PLp[I_SPEED].valueP = &dlg->speedS;
+ PLp[I_SPEED].context = dlg;
+ PLp[I_DIR].context = dlg;
+ /*PLp[I_STOP].valueP = NULL;*/
+ PLp[I_STOP].context = dlg;
+ PLp[I_FOLLOW].valueP = &dlg->followMe;
+ PLp[I_FOLLOW].context = dlg;
+ PLp[I_AUTORVRS].valueP = &dlg->autoReverse;
+ PLp[I_AUTORVRS].context = dlg;
+ title = MyStrdup(_("Train Control XXX"));
+ sprintf(title, _("Train Control %d"), ++numTrainDlg);
+ dlg->trainPGp = &trainPG;
+ dlg->win = ParamCreateDialog(dlg->trainPGp, _("Train Control"), NULL, NULL,
+ NULL, FALSE, NULL, 0, ControllerDialogUpdate);
+ return dlg;
}
@@ -1094,920 +1251,1141 @@ static trainControlDlg_p CreateTrainControlDlg( void )
*/
static struct {
- STATE_T state;
- coOrd pos0;
- } Dtrain;
+ STATE_T state;
+ coOrd pos0;
+} Dtrain;
-EXPORT long trainPause = 200;
+long trainPause = 200;
static track_p followTrain = NULL;
-/*static int suppressTrainRedraw = 0;*/
-static long setTimeD;
-
-
-
-#ifdef MEMCHECK
-static BOOL_T drawAllCarsDisable;
-static void * top1, * top2;
-static long drawCounter;
-#endif
-static void DrawAllCars( void )
+static void DrawAllCars(void)
{
- track_p car;
- struct extraData * xx;
- coOrd size, lo, hi;
- BOOL_T drawCarEnable1 = drawCarEnable;
-#ifdef MEMCHECK
-drawCounter++;
-top1 = Sbrk( 0 );
-if ( top1 != top2 ) {
- fprintf( stderr, "incr by %ld at %ld\n", (char*)top1-(char*)top2, drawCounter );
- top2 = top1;
-}
-#endif
- drawCarEnable = TRUE;
- wDrawDelayUpdate( mainD.d, TRUE );
- wDrawRestoreImage( mainD.d );
- DrawMarkers();
- DrawPositionIndicators();
- for ( car=NULL; TrackIterate(&car); ) {
- if ( GetTrkType(car) == T_CAR ) {
- xx = GetTrkExtraData(car);
- CarItemSize( xx->item, &size ); /* TODO assumes xx->trvTrk.pos is the car center */
- lo.x = xx->trvTrk.pos.x - size.x/2.0;
- lo.y = xx->trvTrk.pos.y - size.x/2.0;
- hi.x = lo.x + size.x;
- hi.y = lo.y + size.x;
- if ( !OFF_MAIND( lo, hi ) )
- DrawCar( car, &mainD, wDrawColorBlack );
- }
- }
- wDrawDelayUpdate( mainD.d, FALSE );
- drawCarEnable = drawCarEnable1;
+ track_p car;
+ struct extraData * xx;
+ coOrd size, lo, hi;
+ BOOL_T drawCarEnable1 = drawCarEnable;
+ drawCarEnable = TRUE;
+ wDrawDelayUpdate(mainD.d, TRUE);
+ wDrawRestoreImage(mainD.d);
+ DrawMarkers();
+ DrawPositionIndicators();
+
+ for (car=NULL; TrackIterate(&car);) {
+ if (GetTrkType(car) == T_CAR) {
+ xx = GetTrkExtraData(car);
+ CarItemSize(xx->item,
+ &size); /* TODO assumes xx->trvTrk.pos is the car center */
+ lo.x = xx->trvTrk.pos.x - size.x/2.0;
+ lo.y = xx->trvTrk.pos.y - size.x/2.0;
+ hi.x = lo.x + size.x;
+ hi.y = lo.y + size.x;
+
+ if (!OFF_MAIND(lo, hi)) {
+ DrawCar(car, &mainD, wDrawColorBlack);
+ }
+ }
+ }
+
+ wDrawDelayUpdate(mainD.d, FALSE);
+ drawCarEnable = drawCarEnable1;
}
static DIST_T GetTrainLength2(
- track_p * car0,
- BOOL_T * dir )
+ track_p * car0,
+ BOOL_T * dir)
{
- DIST_T length = 0, carLength;
- struct extraData * xx;
-
- WALK_CARS_START ( *car0, xx, *dir )
- carLength = CarItemCoupledLength( xx->item );
- if ( length == 0 )
- length = carLength/2.0; /* TODO assumes xx->trvTrk.pos is the car center */
- else
- length += carLength;
- WALK_CARS_END ( *car0, xx, *dir )
- return length;
+ DIST_T length = 0, carLength;
+ struct extraData * xx;
+ WALK_CARS_START(*car0, xx, *dir)
+ carLength = CarItemCoupledLength(xx->item);
+
+ if (length == 0) {
+ length = carLength/2.0; /* TODO assumes xx->trvTrk.pos is the car center */
+ } else {
+ length += carLength;
+ }
+
+ WALK_CARS_END(*car0, xx, *dir)
+ return length;
}
static DIST_T GetTrainLength(
- track_p car0,
- BOOL_T dir )
+ track_p car0,
+ BOOL_T dir)
{
- return GetTrainLength2( &car0, &dir );
+ return GetTrainLength2(&car0, &dir);
}
static void PlaceCar(
- track_p car )
+ track_p car)
{
- struct extraData *xx = GetTrkExtraData(car);
- DIST_T dists[2];
- int dir;
-
- CarItemPlace( xx->item, &xx->trvTrk, dists );
-
- for ( dir=0; dir<2; dir++ )
- xx->couplerPos[dir] = CarItemFindCouplerMountPoint( xx->item, xx->trvTrk, dir );
-
- car->endPt[0].angle = xx->trvTrk.angle;
- Translate( &car->endPt[0].pos, xx->trvTrk.pos, car->endPt[0].angle, dists[0] );
- car->endPt[1].angle = NormalizeAngle( xx->trvTrk.angle + 180.0 );
- Translate( &car->endPt[1].pos, xx->trvTrk.pos, car->endPt[1].angle, dists[1] );
-LOG( log_trainMove, 4, ( "%s @ [%0.3f,%0.3f] A%0.3f\n", CarItemNumber(xx->item), xx->trvTrk.pos.x, xx->trvTrk.pos.y, xx->trvTrk.angle ) )
- SetCarBoundingBox( car );
- xx->state &= ~(CAR_STATE_ONHIDENTRACK);
- xx->trkLayer = NOTALAYER;
- if ( xx->trvTrk.trk ) {
- if ( !GetTrkVisible(xx->trvTrk.trk) )
- xx->state |= CAR_STATE_ONHIDENTRACK;
- xx->trkLayer = GetTrkLayer(xx->trvTrk.trk);
- }
+ struct extraData *xx = GetTrkExtraData(car);
+ DIST_T dists[2];
+ int dir;
+ CarItemPlace(xx->item, &xx->trvTrk, dists);
+
+ for (dir=0; dir<2; dir++) {
+ xx->couplerPos[dir] = CarItemFindCouplerMountPoint(xx->item, xx->trvTrk, dir);
+ }
+
+ car->endPt[0].angle = xx->trvTrk.angle;
+ Translate(&car->endPt[0].pos, xx->trvTrk.pos, car->endPt[0].angle, dists[0]);
+ car->endPt[1].angle = NormalizeAngle(xx->trvTrk.angle + 180.0);
+ Translate(&car->endPt[1].pos, xx->trvTrk.pos, car->endPt[1].angle, dists[1]);
+ LOG(log_trainMove, 4, ("%s @ [%0.3f,%0.3f] A%0.3f\n", CarItemNumber(xx->item),
+ xx->trvTrk.pos.x, xx->trvTrk.pos.y, xx->trvTrk.angle))
+ SetCarBoundingBox(car);
+ xx->state &= ~(CAR_STATE_ONHIDENTRACK);
+ xx->trkLayer = NOTALAYER;
+
+ if (xx->trvTrk.trk) {
+ if (!GetTrkVisible(xx->trvTrk.trk)) {
+ xx->state |= CAR_STATE_ONHIDENTRACK;
+ }
+
+ xx->trkLayer = GetTrkLayer(xx->trvTrk.trk);
+ }
}
static track_p FindCar(
- coOrd * pos )
+ coOrd * pos)
{
- coOrd pos0, pos1;
- track_p trk, trk1;
- DIST_T dist1 = 100000, dist;
- struct extraData * xx;
-
- trk1 = NULL;
- for ( trk=NULL; TrackIterate(&trk); ) {
- if ( GetTrkType(trk) == T_CAR ) {
- xx = GetTrkExtraData(trk);
- if ( IsIgnored(xx) )
- continue;
- pos0 = *pos;
- dist = DistanceCar( trk, &pos0 );
- if ( dist < dist1 ) {
- dist1 = dist;
- trk1 = trk;
- pos1 = pos0;
- }
- }
- }
- if ( dist1 < 10 ) {
- *pos = pos1;
- return trk1;
- } else {
- return NULL;
- }
+ coOrd pos0, pos1;
+ track_p trk, trk1;
+ DIST_T dist1 = 100000, dist;
+ struct extraData * xx;
+ trk1 = NULL;
+
+ for (trk=NULL; TrackIterate(&trk);) {
+ if (GetTrkType(trk) == T_CAR) {
+ xx = GetTrkExtraData(trk);
+
+ if (IsIgnored(xx)) {
+ continue;
+ }
+
+ pos0 = *pos;
+ dist = DistanceCar(trk, &pos0);
+
+ if (dist < dist1) {
+ dist1 = dist;
+ trk1 = trk;
+ pos1 = pos0;
+ }
+ }
+ }
+
+ if (dist1 < 10) {
+ *pos = pos1;
+ return trk1;
+ } else {
+ return NULL;
+ }
}
static track_p FindMasterLoco(
- track_p train,
- int * dirR )
+ track_p train,
+ int * dirR)
{
- track_p car0;
- struct extraData *xx0;
- int dir, dir0;
-
- for ( dir = 0; dir<2; dir++ ) {
- car0 = train;
- dir0 = dir;
- WALK_CARS_START( car0, xx0, dir0 )
- if ( CarItemIsLoco(xx0->item) && IsLocoMaster(xx0) ) {
- if ( dirR ) *dirR = 1-dir0;
- return car0;
- }
- WALK_CARS_END( car0, xx0, dir0 )
- }
- return NULL;
+ struct extraData *xx0;
+ int dir;
+
+ for (dir = 0; dir<2; dir++) {
+ track_p car0;
+ int dir0;
+ car0 = train;
+ dir0 = dir;
+ WALK_CARS_START(car0, xx0, dir0)
+
+ if (CarItemIsLoco(xx0->item) && IsLocoMaster(xx0)) {
+ if (dirR) {
+ *dirR = 1-dir0;
+ }
+
+ return car0;
+ }
+
+ WALK_CARS_END(car0, xx0, dir0)
+ }
+
+ return NULL;
}
static track_p PickMasterLoco(
- track_p car,
- int dir )
+ track_p car,
+ int dir)
{
- track_p loco=NULL;
- struct extraData *xx;
-
- WALK_CARS_START( car, xx, dir )
- if ( CarItemIsLoco(xx->item) ) {
- if ( IsLocoMaster(xx) )
- return car;
- if ( loco == NULL ) loco = car;
- }
- WALK_CARS_END( car, xx, dir )
- if ( loco == NULL )
- return NULL;
- xx = GetTrkExtraData(loco);
- SetLocoMaster(xx);
- xx->speed = 0;
- LOG( log_trainMove, 1, ( "%s becomes master\n", CarItemNumber(xx->item) ) )
- return loco;
+ track_p loco=NULL;
+ struct extraData *xx;
+ WALK_CARS_START(car, xx, dir)
+
+ if (CarItemIsLoco(xx->item)) {
+ if (IsLocoMaster(xx)) {
+ return car;
+ }
+
+ if (loco == NULL) {
+ loco = car;
+ }
+ }
+
+ WALK_CARS_END(car, xx, dir)
+
+ if (loco == NULL) {
+ return NULL;
+ }
+
+ xx = GetTrkExtraData(loco);
+ SetLocoMaster(xx);
+ xx->speed = 0;
+ LOG(log_trainMove, 1, ("%s becomes master\n", CarItemNumber(xx->item)))
+ return loco;
}
static void UncoupleCars(
- track_p car1,
- track_p car2 )
+ track_p car1,
+ track_p car2)
{
- struct extraData * xx1, * xx2;
- track_p loco, loco1, loco2;
- int dir1, dir2;
-
- xx1 = GetTrkExtraData(car1);
- xx2 = GetTrkExtraData(car2);
- if ( GetTrkEndTrk(car1,0) == car2 ) {
- dir1 = 0;
- } else if ( GetTrkEndTrk(car1,1) == car2 ) {
- dir1 = 1;
- } else {
- ErrorMessage( "uncoupleCars - not coupled" );
- return;
- }
- if ( GetTrkEndTrk(car2,0) == car1 ) {
- dir2 = 0;
- } else if ( GetTrkEndTrk(car2,1) == car1 ) {
- dir2 = 1;
- } else {
- ErrorMessage( "uncoupleCars - not coupled" );
- return;
- }
- loco = FindMasterLoco( car1, NULL );
- car1->endPt[dir1].track = NULL;
- car2->endPt[dir2].track = NULL;
- /*DisconnectTracks( car1, dir1, car2, dir2 );*/
- if ( loco ) {
- loco1 = PickMasterLoco( car1, 1-dir1 );
- if ( loco1 != loco )
- LocoListChangeEntry( NULL, loco1 );
- loco2 = PickMasterLoco( car2, 1-dir2 );
- if ( loco2 != loco )
- LocoListChangeEntry( NULL, loco2 );
- }
+ track_p loco;
+ int dir1, dir2;
+
+ if (GetTrkEndTrk(car1,0) == car2) {
+ dir1 = 0;
+ } else if (GetTrkEndTrk(car1,1) == car2) {
+ dir1 = 1;
+ } else {
+ ErrorMessage("uncoupleCars - not coupled");
+ return;
+ }
+
+ if (GetTrkEndTrk(car2,0) == car1) {
+ dir2 = 0;
+ } else if (GetTrkEndTrk(car2,1) == car1) {
+ dir2 = 1;
+ } else {
+ ErrorMessage("uncoupleCars - not coupled");
+ return;
+ }
+
+ loco = FindMasterLoco(car1, NULL);
+ car1->endPt[dir1].track = NULL;
+ car2->endPt[dir2].track = NULL;
+
+ if (loco) {
+ track_p loco1, loco2;
+ loco1 = PickMasterLoco(car1, 1-dir1);
+
+ if (loco1 != loco) {
+ LocoListChangeEntry(NULL, loco1);
+ }
+
+ loco2 = PickMasterLoco(car2, 1-dir2);
+
+ if (loco2 != loco) {
+ LocoListChangeEntry(NULL, loco2);
+ }
+ }
}
static void CoupleCars(
- track_p car1,
- int dir1,
- track_p car2,
- int dir2 )
+ track_p car1,
+ int dir1,
+ track_p car2,
+ int dir2)
{
- struct extraData * xx1, * xx2;
- track_p loco1, loco2;
- track_p car;
- int dir;
-
- xx1 = GetTrkExtraData(car1);
- xx2 = GetTrkExtraData(car2);
- if ( GetTrkEndTrk(car1,dir1) != NULL || GetTrkEndTrk(car2,dir2) != NULL ) {
- LOG( log_trainMove, 1, ( "coupleCars - already coupled\n" ) )
- return;
- }
- car = car1;
- dir = 1-dir1;
- WALK_CARS_START( car, xx1, dir )
- if ( car == car2 ) {
- LOG( log_trainMove, 1, ( "coupleCars - already coupled\n" ) )
- ErrorMessage( "Car coupling loop" );
- return;
- }
- WALK_CARS_END( car, xx1, dir )
- car = car2;
- dir = 1-dir2;
- WALK_CARS_START( car, xx2, dir )
- if ( car == car1 ) {
- LOG( log_trainMove, 1, ( "coupleCars - already coupled\n" ) )
- ErrorMessage( "Car coupling loop" );
- return;
- }
- WALK_CARS_END( car, xx1, dir )
- loco1 = FindMasterLoco( car1, NULL );
- loco2 = FindMasterLoco( car2, NULL );
- car1->endPt[dir1].track = car2;
- car2->endPt[dir2].track = car1;
- /*ConnectTracks( car1, dir1, car2, dir2 );*/
-if ( logTable(log_trainMove).level >= 2 ) {
-LogPrintf( "Coupling %s[%d] ", CarItemNumber(xx1->item), dir1 );
-LogPrintf( " and %s[%d]\n", CarItemNumber(xx2->item), dir2 );
-}
- if ( ( loco1 != NULL && loco2 != NULL ) ) {
- xx1 = GetTrkExtraData( loco1 );
- xx2 = GetTrkExtraData( loco2 );
- if ( xx1->speed == 0 ) {
- ClrLocoMaster(xx1);
- LOG( log_trainMove, 2, ( "%s loses master\n", CarItemNumber(xx1->item) ) )
- if ( followTrain == loco1 )
- followTrain = loco2;
- LocoListChangeEntry( loco1, NULL );
- loco1 = loco2;
- } else {
- ClrLocoMaster(xx2);
- xx1->speed = (xx1->speed + xx2->speed)/2.0;
- if ( xx1->speed < 0 )
- xx1->speed = 0;
- if ( xx1->speed > 100 )
- xx1->speed = 100;
- LOG( log_trainMove, 2, ( "%s loses master\n", CarItemNumber(xx2->item) ) )
- if ( followTrain == loco2 )
- followTrain = loco1;
- LocoListChangeEntry( loco2, NULL );
- }
- SetTrainDirection( loco1 );
- }
+ struct extraData * xx1, * xx2;
+ track_p loco1, loco2;
+ track_p car;
+ int dir;
+ xx1 = GetTrkExtraData(car1);
+ xx2 = GetTrkExtraData(car2);
+
+ if (GetTrkEndTrk(car1,dir1) != NULL || GetTrkEndTrk(car2,dir2) != NULL) {
+ LOG(log_trainMove, 1, ("coupleCars - already coupled\n"))
+ return;
+ }
+
+ car = car1;
+ dir = 1-dir1;
+ WALK_CARS_START(car, xx1, dir)
+
+ if (car == car2) {
+ LOG(log_trainMove, 1, ("coupleCars - already coupled\n"))
+ ErrorMessage("Car coupling loop");
+ return;
+ }
+
+ WALK_CARS_END(car, xx1, dir)
+ car = car2;
+ dir = 1-dir2;
+ WALK_CARS_START(car, xx2, dir)
+
+ if (car == car1) {
+ LOG(log_trainMove, 1, ("coupleCars - already coupled\n"))
+ ErrorMessage("Car coupling loop");
+ return;
+ }
+
+ WALK_CARS_END(car, xx1, dir)
+ loco1 = FindMasterLoco(car1, NULL);
+ loco2 = FindMasterLoco(car2, NULL);
+ car1->endPt[dir1].track = car2;
+ car2->endPt[dir2].track = car1;
+
+ /*ConnectTracks( car1, dir1, car2, dir2 );*/
+ if (logTable(log_trainMove).level >= 2) {
+ LogPrintf("Coupling %s[%d] ", CarItemNumber(xx1->item), dir1);
+ LogPrintf(" and %s[%d]\n", CarItemNumber(xx2->item), dir2);
+ }
+
+ if ((loco1 != NULL && loco2 != NULL)) {
+ xx1 = GetTrkExtraData(loco1);
+ xx2 = GetTrkExtraData(loco2);
+
+ if (xx1->speed == 0) {
+ ClrLocoMaster(xx1);
+ LOG(log_trainMove, 2, ("%s loses master\n", CarItemNumber(xx1->item)))
+
+ if (followTrain == loco1) {
+ followTrain = loco2;
+ }
+
+ LocoListChangeEntry(loco1, NULL);
+ loco1 = loco2;
+ } else {
+ ClrLocoMaster(xx2);
+ xx1->speed = (xx1->speed + xx2->speed)/2.0;
+
+ if (xx1->speed < 0) {
+ xx1->speed = 0;
+ }
+
+ if (xx1->speed > 100) {
+ xx1->speed = 100;
+ }
+
+ LOG(log_trainMove, 2, ("%s loses master\n", CarItemNumber(xx2->item)))
+
+ if (followTrain == loco2) {
+ followTrain = loco1;
+ }
+
+ LocoListChangeEntry(loco2, NULL);
+ }
+
+ SetTrainDirection(loco1);
+ }
}
-long crashSpeedDecay=5;
+
long crashDistFactor=60;
static void PlaceCars(
- track_p car0,
- int dir0,
- long crashSpeed,
- BOOL_T crashFlip )
+ track_p car0,
+ int dir0,
+ long crashSpeed,
+ BOOL_T crashFlip)
{
- struct extraData *xx0 = GetTrkExtraData(car0), *xx;
- int dir;
- traverseTrack_t trvTrk;
- DIST_T length, dist, length1;
- track_p car_curr;
- DIST_T flipflop = 1;
-
- if ( crashFlip )
- flipflop = -1;
- dir = dir0;
- trvTrk = xx0->trvTrk;
- if ( dir0 )
- FlipTraverseTrack( &trvTrk );
- length = CarItemCoupledLength(xx0->item)/2.0;
- car_curr = car0;
- ClrIgnored( xx0 );
- WALK_CARS_START ( car_curr, xx, dir )
- if ( car_curr != car0 ) {
- ClrIgnored( xx );
- length1 = CarItemCoupledLength(xx->item)/2.0;
- dist = length + length1;
- crashSpeed = crashSpeed*crashSpeedDecay/10;
- if ( crashSpeed > 0 )
- dist -= dist * crashSpeed/crashDistFactor;
- TraverseTrack2( &trvTrk, dist );
- xx->trvTrk = trvTrk;
- if ( crashSpeed > 0 ) {
- xx->trvTrk.angle = NormalizeAngle( xx->trvTrk.angle + flipflop*crashSpeed );
- xx->trvTrk.trk = NULL;
- }
- flipflop = -flipflop;
- if ( dir != 0 )
- FlipTraverseTrack( &xx->trvTrk );
- PlaceCar( car_curr );
- length = length1;
- }
- WALK_CARS_END ( car_curr, xx, dir )
+ struct extraData *xx0 = GetTrkExtraData(car0), *xx;
+ int dir;
+ traverseTrack_t trvTrk;
+ DIST_T length;
+ track_p car_curr;
+ DIST_T flipflop = 1;
+
+ if (crashFlip) {
+ flipflop = -1;
+ }
+
+ dir = dir0;
+ trvTrk = xx0->trvTrk;
+
+ if (dir0) {
+ FlipTraverseTrack(&trvTrk);
+ }
+
+ length = CarItemCoupledLength(xx0->item)/2.0;
+ car_curr = car0;
+ ClrIgnored(xx0);
+ WALK_CARS_START(car_curr, xx, dir)
+
+ if (car_curr != car0) {
+ DIST_T dist, length1;
+ ClrIgnored(xx);
+ length1 = CarItemCoupledLength(xx->item)/2.0;
+ dist = length + length1;
+ crashSpeed = crashSpeed*CRASHSPEEDDECAY/10;
+
+ if (crashSpeed > 0) {
+ dist -= dist * crashSpeed/crashDistFactor;
+ }
+
+ TraverseTrack2(&trvTrk, dist);
+ xx->trvTrk = trvTrk;
+
+ if (crashSpeed > 0) {
+ xx->trvTrk.angle = NormalizeAngle(xx->trvTrk.angle + flipflop*crashSpeed);
+ xx->trvTrk.trk = NULL;
+ }
+
+ flipflop = -flipflop;
+
+ if (dir != 0) {
+ FlipTraverseTrack(&xx->trvTrk);
+ }
+
+ PlaceCar(car_curr);
+ length = length1;
+ }
+
+ WALK_CARS_END(car_curr, xx, dir)
}
static void CrashTrain(
- track_p car,
- int dir,
- traverseTrack_p trvTrkP,
- long speed,
- BOOL_T flip )
+ track_p car,
+ int dir,
+ traverseTrack_p trvTrkP,
+ long speed,
+ BOOL_T flip)
{
- track_p loco;
- struct extraData *xx;
+ track_p loco;
+ struct extraData *xx;
+ loco = FindMasterLoco(car,NULL);
- loco = FindMasterLoco(car,NULL);
- if ( loco != NULL ) {
- StopTrain( loco, ST_Crashed );
- }
- xx = GetTrkExtraData(car);
- xx->trvTrk = *trvTrkP;
- if ( dir )
- FlipTraverseTrack( &xx->trvTrk );
- PlaceCars( car, 1-dir, speed, flip );
- if ( flip )
- speed = - speed;
- xx->trvTrk.angle = NormalizeAngle( xx->trvTrk.angle - speed );
- xx->trvTrk.trk = NULL;
- PlaceCar( car );
+ if (loco != NULL) {
+ StopTrain(loco, ST_Crashed);
+ }
+
+ xx = GetTrkExtraData(car);
+ xx->trvTrk = *trvTrkP;
+
+ if (dir) {
+ FlipTraverseTrack(&xx->trvTrk);
+ }
+
+ PlaceCars(car, 1-dir, speed, flip);
+
+ if (flip) {
+ speed = - speed;
+ }
+
+ xx->trvTrk.angle = NormalizeAngle(xx->trvTrk.angle - speed);
+ xx->trvTrk.trk = NULL;
+ PlaceCar(car);
}
-static FLOAT_T couplerConnAngle = 45.0;
static BOOL_T CheckCoupling(
- track_p car0,
- int dir00,
- BOOL_T doCheckCrash )
+ track_p car0,
+ int dir00,
+ BOOL_T doCheckCrash)
{
- track_p car1, loco1;
- struct extraData *xx0, *xx1;
- coOrd pos1;
- DIST_T dist0, distc, dist=100000.0;
- int dir0, dir1, dirl;
- ANGLE_T angle;
- traverseTrack_t trvTrk0, trvTrk1;
- long speed, speed0, speed1;
-
- xx0 = xx1 = GetTrkExtraData(car0);
- /* find length of train from loco to start and end */
- dir0 = dir00;
- dist0 = GetTrainLength2( &car0, &dir0 );
-
- trvTrk0 = xx0->trvTrk;
- if ( dir00 )
- FlipTraverseTrack( &trvTrk0 );
- TraverseTrack2( &trvTrk0, dist0 );
- pos1 = trvTrk0.pos;
- car1 = FindCar( &pos1 );
- if ( !car1 )
- return TRUE;
- xx1 = GetTrkExtraData(car1);
- if ( !IsOnTrack(xx1) )
- return TRUE;
- /* determine which EP of the found car to couple to */
- angle = NormalizeAngle( trvTrk0.angle-xx1->trvTrk.angle );
- if ( angle > 90 && angle < 270 ) {
- dir1 = 0;
- angle = NormalizeAngle( angle+180 );
- } else {
- dir1 = 1;
- }
- /* already coupled? */
- if ( GetTrkEndTrk(car1,dir1) != NULL )
- return TRUE;
- /* are we close to aligned? */
- if ( angle > couplerConnAngle && angle < 360.0-couplerConnAngle )
- return TRUE;
- /* find pos of found car's coupler, and dist btw couplers */
- distc = CarItemCoupledLength(xx1->item);
- Translate( &pos1, xx1->trvTrk.pos, xx1->trvTrk.angle+(dir1?180.0:0.0), distc/2.0 );
- dist = FindDistance( trvTrk0.pos, pos1 );
- if ( dist < trackGauge/10 )
- return TRUE;
- /* not real close: are we overlapped? */
- angle = FindAngle( trvTrk0.pos, pos1 );
- angle = NormalizeAngle( angle - trvTrk0.angle );
- if ( angle < 90 || angle > 270 )
- return TRUE;
- /* are we beyond the end of the found car? */
- if ( dist > distc )
- return TRUE;
- /* are we on the same track? */
- trvTrk1 = xx1->trvTrk;
- if ( dir1 )
- FlipTraverseTrack( &trvTrk1 );
- TraverseTrack2( &trvTrk1, distc/2.0-dist );
- if ( trvTrk1.trk != trvTrk0.trk )
- return TRUE;
- if ( doCheckCrash ) {
- speed0 = (long)xx0->speed;
- if ( (xx0->direction==0) != (dir00==0) )
- speed0 = - speed0;
- loco1 = FindMasterLoco( car1, &dirl );
- xx1 = NULL;
- if ( loco1 ) {
- xx1 = GetTrkExtraData(loco1);
- speed1 = (long)xx1->speed;
- if ( car1 == loco1 ) {
- dirl = IsAligned( xx1->trvTrk.angle, FindAngle( trvTrk0.pos, xx1->trvTrk.pos ) )?1:0;
- }
- if ( (xx1->direction==1) != (dirl==1) )
- speed1 = -speed1;
- } else {
- speed1 = 0;
- }
- speed = (long)labs( speed0 + speed1 );
- LOG( log_trainMove, 2, ( "coupling speed=%ld\n", speed ) )
- if ( speed > maxCouplingSpeed ) {
- CrashTrain( car0, dir0, &trvTrk0, speed, FALSE );
- CrashTrain( car1, dir1, &trvTrk1, speed, TRUE );
- return FALSE;
- }
- }
- if ( dir00 )
- dist = -dist;
- TraverseTrack2( &xx0->trvTrk, dist );
- CoupleCars( car0, dir0, car1, dir1 );
-LOG( log_trainMove, 3, ( " -> %0.3f\n", dist ) )
- return TRUE;
-}
+ track_p car1;
+ struct extraData *xx0, *xx1;
+ coOrd pos1;
+ DIST_T dist0, distc, dist=100000.0;
+ int dir0, dir1, dirl;
+ ANGLE_T angle;
+ traverseTrack_t trvTrk0, trvTrk1;
+ xx0 = xx1 = GetTrkExtraData(car0);
+ /* find length of train from loco to start and end */
+ dir0 = dir00;
+ dist0 = GetTrainLength2(&car0, &dir0);
+ trvTrk0 = xx0->trvTrk;
+
+ if (dir00) {
+ FlipTraverseTrack(&trvTrk0);
+ }
+
+ TraverseTrack2(&trvTrk0, dist0);
+ pos1 = trvTrk0.pos;
+ car1 = FindCar(&pos1);
+
+ if (!car1) {
+ return TRUE;
+ }
+
+ xx1 = GetTrkExtraData(car1);
+
+ if (!IsOnTrack(xx1)) {
+ return TRUE;
+ }
+
+ /* determine which EP of the found car to couple to */
+ angle = NormalizeAngle(trvTrk0.angle-xx1->trvTrk.angle);
+
+ if (angle > 90 && angle < 270) {
+ dir1 = 0;
+ angle = NormalizeAngle(angle+180);
+ } else {
+ dir1 = 1;
+ }
+
+ /* already coupled? */
+ if (GetTrkEndTrk(car1,dir1) != NULL) {
+ return TRUE;
+ }
+
+ /* are we close to aligned? */
+ if (angle > COUPLERCONNECTIONANGLE && angle < 360.0-COUPLERCONNECTIONANGLE) {
+ return TRUE;
+ }
+
+ /* find pos of found car's coupler, and dist btw couplers */
+ distc = CarItemCoupledLength(xx1->item);
+ Translate(&pos1, xx1->trvTrk.pos, xx1->trvTrk.angle+(dir1?180.0:0.0),
+ distc/2.0);
+ dist = FindDistance(trvTrk0.pos, pos1);
+
+ if (dist < trackGauge/10) {
+ return TRUE;
+ }
+
+ /* not real close: are we overlapped? */
+ angle = FindAngle(trvTrk0.pos, pos1);
+ angle = NormalizeAngle(angle - trvTrk0.angle);
+
+ if (angle < 90 || angle > 270) {
+ return TRUE;
+ }
+
+ /* are we beyond the end of the found car? */
+ if (dist > distc) {
+ return TRUE;
+ }
+
+ /* are we on the same track? */
+ trvTrk1 = xx1->trvTrk;
+
+ if (dir1) {
+ FlipTraverseTrack(&trvTrk1);
+ }
+
+ TraverseTrack2(&trvTrk1, distc/2.0-dist);
+
+ if (trvTrk1.trk != trvTrk0.trk) {
+ return TRUE;
+ }
+
+ if (doCheckCrash) {
+ track_p loco1;
+ long speed, speed0, speed1;
+ speed0 = (long)xx0->speed;
+
+ if ((xx0->direction==0) != (dir00==0)) {
+ speed0 = - speed0;
+ }
+
+ loco1 = FindMasterLoco(car1, &dirl);
+ xx1 = NULL;
+
+ if (loco1) {
+ xx1 = GetTrkExtraData(loco1);
+ speed1 = (long)xx1->speed;
+
+ if (car1 == loco1) {
+ dirl = IsAligned(xx1->trvTrk.angle, FindAngle(trvTrk0.pos,
+ xx1->trvTrk.pos))?1:0;
+ }
+
+ if ((xx1->direction==1) != (dirl==1)) {
+ speed1 = -speed1;
+ }
+ } else {
+ speed1 = 0;
+ }
+ speed = labs(speed0 + speed1);
+ LOG(log_trainMove, 2, ("coupling speed=%ld\n", speed))
-static void PlaceTrain(
- track_p car0,
- BOOL_T doCheckCrash,
- BOOL_T doCheckCoupling )
-{
- track_p car_curr;
- struct extraData *xx0, *xx;
- int dir0, dir;
-
- xx0 = GetTrkExtraData(car0);
-
- LOG( log_trainMove, 2, ( " placeTrain: %s [%0.3f %0.3f] A%0.3f", CarItemNumber(xx0->item), xx0->trvTrk.pos.x, xx0->trvTrk.pos.y, xx0->trvTrk.angle ) )
-
- car_curr = car0;
- for ( dir0=0; dir0<2; dir0++ ) {
- car_curr = car0;
- dir = dir0;
- xx = xx0;
- WALK_CARS_START( car_curr, xx, dir )
- SetIgnored(xx);
- WALK_CARS_END( car_curr, xx, dir );
- }
+ if (speed > maxCouplingSpeed) {
+ CrashTrain(car0, dir0, &trvTrk0, speed, FALSE);
+ CrashTrain(car1, dir1, &trvTrk1, speed, TRUE);
+ return FALSE;
+ }
+ }
- /* check for coupling to other cars */
- if ( doCheckCoupling ) {
- if ( xx0->trvTrk.trk )
- if ( !CheckCoupling( car0, 0, doCheckCrash ) )
- return;
- if ( xx0->trvTrk.trk )
- if ( !CheckCoupling( car0, 1, doCheckCrash ) )
- return;
- }
+ if (dir00) {
+ dist = -dist;
+ }
+
+ TraverseTrack2(&xx0->trvTrk, dist);
+ CoupleCars(car0, dir0, car1, dir1);
+ LOG(log_trainMove, 3, (" -> %0.3f\n", dist))
+ return TRUE;
+}
- PlaceCar( car0 );
- for ( dir0=0; dir0<2; dir0++ )
- PlaceCars( car0, dir0, 0, FALSE );
+static void PlaceTrain(
+ track_p car0,
+ BOOL_T doCheckCrash,
+ BOOL_T doCheckCoupling)
+{
+ track_p car_curr;
+ struct extraData *xx0;
+ int dir0;
+ xx0 = GetTrkExtraData(car0);
+ LOG(log_trainMove, 2, (" placeTrain: %s [%0.3f %0.3f] A%0.3f",
+ CarItemNumber(xx0->item), xx0->trvTrk.pos.x, xx0->trvTrk.pos.y,
+ xx0->trvTrk.angle))
+ car_curr = car0;
+
+ for (dir0=0; dir0<2; dir0++) {
+ int dir;
+ struct extraData *xx;
+ car_curr = car0;
+ dir = dir0;
+ xx = xx0;
+ WALK_CARS_START(car_curr, xx, dir)
+ SetIgnored(xx);
+ WALK_CARS_END(car_curr, xx, dir);
+ }
+
+ /* check for coupling to other cars */
+ if (doCheckCoupling) {
+ if (xx0->trvTrk.trk)
+ if (!CheckCoupling(car0, 0, doCheckCrash)) {
+ return;
+ }
+
+ if (xx0->trvTrk.trk)
+ if (!CheckCoupling(car0, 1, doCheckCrash)) {
+ return;
+ }
+ }
+
+ PlaceCar(car0);
+
+ for (dir0=0; dir0<2; dir0++) {
+ PlaceCars(car0, dir0, 0, FALSE);
+ }
}
static void PlaceTrainInit(
- track_p car0,
- track_p trk0,
- coOrd pos0,
- ANGLE_T angle0,
- BOOL_T doCheckCoupling )
+ track_p car0,
+ track_p trk0,
+ coOrd pos0,
+ ANGLE_T angle0,
+ BOOL_T doCheckCoupling)
{
- struct extraData * xx = GetTrkExtraData(car0);
- xx->trvTrk.trk = trk0;
- xx->trvTrk.dist = xx->trvTrk.length = -1;
- xx->trvTrk.pos = pos0;
- xx->trvTrk.angle = angle0;
- PlaceTrain( car0, FALSE, doCheckCoupling );
+ struct extraData * xx = GetTrkExtraData(car0);
+ xx->trvTrk.trk = trk0;
+ xx->trvTrk.dist = xx->trvTrk.length = -1;
+ xx->trvTrk.pos = pos0;
+ xx->trvTrk.angle = angle0;
+ PlaceTrain(car0, FALSE, doCheckCoupling);
}
static void FlipTrain(
- track_p train )
+ track_p train)
{
- DIST_T d0, d1;
- struct extraData * xx;
-
- if ( train == NULL )
- return;
- d0 = GetTrainLength( train, 0 );
- d1 = GetTrainLength( train, 1 );
- xx = GetTrkExtraData(train);
- TraverseTrack2( &xx->trvTrk, d0-d1 );
- FlipTraverseTrack( &xx->trvTrk );
- xx->trvTrk.length = -1;
- PlaceTrain( train, FALSE, TRUE );
+ DIST_T d0, d1;
+ struct extraData * xx;
+
+ if (train == NULL) {
+ return;
+ }
+
+ d0 = GetTrainLength(train, 0);
+ d1 = GetTrainLength(train, 1);
+ xx = GetTrkExtraData(train);
+ TraverseTrack2(&xx->trvTrk, d0-d1);
+ FlipTraverseTrack(&xx->trvTrk);
+ xx->trvTrk.length = -1;
+ PlaceTrain(train, FALSE, TRUE);
}
static BOOL_T MoveTrain(
- track_p train,
- long timeD )
+ track_p train,
+ long timeD)
{
- DIST_T ips, dist0, dist1;
- struct extraData *xx, *xx1;
- traverseTrack_t trvTrk;
- DIST_T length;
- track_p car1;
- int dir1;
- int measured; /* make sure the distance is only measured once per train */
-
- if ( train == NULL )
- return FALSE;
- xx = GetTrkExtraData(train);
- if ( xx->speed <= 0 )
- return FALSE;
-
- if ( setTimeD )
- timeD = setTimeD;
- ips = ((xx->speed*5280.0*12.0)/(60.0*60.0*GetScaleRatio(curScaleInx)));
- dist0 = ips * timeD/1000.0;
- length = GetTrainLength( train, xx->direction );
- dist1 = length + dist0;
- trvTrk = xx->trvTrk;
- if ( trvTrk.trk == NULL ) {
- return FALSE;
- }
- LOG( log_trainMove, 1, ( "moveTrain: %s t%ld->%0.3f S%0.3f D%d [%0.3f %0.3f] A%0.3f T%d\n",
- CarItemNumber(xx->item), timeD, dist0, xx->speed, xx->direction, xx->trvTrk.pos.x, xx->trvTrk.pos.y, xx->trvTrk.angle, xx->trvTrk.trk?GetTrkIndex(xx->trvTrk.trk):-1 ) )
- if ( xx->direction )
- FlipTraverseTrack( &trvTrk );
- TraverseTrack( &trvTrk, &dist1 );
- if ( dist1 > 0.0 ) {
- if ( dist1 > dist0 ) {
- /*ErrorMessage( "%s no room: L%0.3f D%0.3f", CarItemNumber(xx->item), length, dist1 );*/
- StopTrain( train, ST_NoRoom );
- return FALSE;
- } else {
- dist0 -= dist1;
- LOG( log_trainMove, 1, ( " %s STOP D%d [%0.3f %0.3f] A%0.3f D%0.3f\n",
- CarItemNumber(xx->item), xx->direction, xx->trvTrk.pos.x, xx->trvTrk.pos.y, xx->trvTrk.angle, dist0 ) )
- }
- /*ErrorMessage( "%s stopped at End Of Track", CarItemNumber(xx->item) );*/
- if ( xx->autoReverse ) {
- xx->direction = !xx->direction;
- SetTrainDirection( train );
- } else {
- if ( xx->speed > maxCouplingSpeed ) {
- car1 = train;
- dir1 = xx->direction;
- GetTrainLength2( &car1, &dir1 );
- CrashTrain( car1, dir1, &trvTrk, (long)xx->speed, FALSE );
- return TRUE;
- } else {
- StopTrain( train, trvTrk.trk?ST_OpenTurnout:ST_EndOfTrack );
- }
- }
- }
- trvTrk = xx->trvTrk;
- TraverseTrack2( &xx->trvTrk, xx->direction==0?dist0:-dist0 );
- car1 = train;
- dir1 = 0;
- GetTrainLength2( &car1, &dir1 );
- dir1 = 1-dir1;
-
- measured = FALSE;
- WALK_CARS_START( car1, xx1, dir1 );
- if ( CarItemIsLoco(xx1->item) && !measured ) {
- xx->distance += dist0;
- measured = TRUE;
- }
- WALK_CARS_END( car1, xx1, dir1 );
-
- if ( train == followTrain ) {
- if ( followCenter.x != mainCenter.x ||
- followCenter.y != mainCenter.y ) {
- if ( curTrainDlg->train == followTrain ) {
- curTrainDlg->followMe = FALSE;
- ParamLoadControl( curTrainDlg->trainPGp, I_FOLLOW );
- }
- followTrain = NULL;
- } else if ( OFF_MAIND( xx->trvTrk.pos, xx->trvTrk.pos ) ) {
- MoveMainWindow( xx->trvTrk.pos, NormalizeAngle(xx->trvTrk.angle+(xx->direction?180.0:0.0)) );
- followCenter = mainCenter;
- }
- }
- PlaceTrain( train, TRUE, TRUE );
- return TRUE;
-}
+ DIST_T ips, dist0, dist1;
+ struct extraData *xx, *xx1;
+ traverseTrack_t trvTrk;
+ DIST_T length;
+ track_p car1;
+ int dir1;
+ int measured; /* make sure the distance is only measured once per train */
+
+ if (train == NULL) {
+ return FALSE;
+ }
+
+ xx = GetTrkExtraData(train);
+
+ if (xx->speed <= 0) {
+ return FALSE;
+ }
+
+ ips = ((xx->speed*5280.0*12.0)/(60.0*60.0*GetScaleRatio(GetLayoutCurScale())));
+ dist0 = ips * timeD/1000.0;
+ length = GetTrainLength(train, xx->direction);
+ dist1 = length + dist0;
+ trvTrk = xx->trvTrk;
+
+ if (trvTrk.trk == NULL) {
+ return FALSE;
+ }
+
+ LOG(log_trainMove, 1,
+ ("moveTrain: %s t%ld->%0.3f S%0.3f D%d [%0.3f %0.3f] A%0.3f T%d\n",
+ CarItemNumber(xx->item), timeD, dist0, xx->speed, xx->direction,
+ xx->trvTrk.pos.x, xx->trvTrk.pos.y, xx->trvTrk.angle,
+ xx->trvTrk.trk?GetTrkIndex(xx->trvTrk.trk):-1))
+
+ if (xx->direction) {
+ FlipTraverseTrack(&trvTrk);
+ }
+
+ TraverseTrack(&trvTrk, &dist1);
+
+ if (dist1 > 0.0) {
+ if (dist1 > dist0) {
+ /*ErrorMessage( "%s no room: L%0.3f D%0.3f", CarItemNumber(xx->item), length, dist1 );*/
+ StopTrain(train, ST_NoRoom);
+ return FALSE;
+ } else {
+ dist0 -= dist1;
+ LOG(log_trainMove, 1, (" %s STOP D%d [%0.3f %0.3f] A%0.3f D%0.3f\n",
+ CarItemNumber(xx->item), xx->direction, xx->trvTrk.pos.x, xx->trvTrk.pos.y,
+ xx->trvTrk.angle, dist0))
+ }
+
+ /*ErrorMessage( "%s stopped at End Of Track", CarItemNumber(xx->item) );*/
+ if (xx->autoReverse) {
+ xx->direction = !xx->direction;
+ SetTrainDirection(train);
+ } else {
+ if (xx->speed > maxCouplingSpeed) {
+ car1 = train;
+ dir1 = xx->direction;
+ GetTrainLength2(&car1, &dir1);
+ CrashTrain(car1, dir1, &trvTrk, (long)xx->speed, FALSE);
+ return TRUE;
+ } else {
+ if (trvTrk.trk && trvTrk.trk->endCnt > 1) //Test for null track after Traverse
+ StopTrain(train, ST_OpenTurnout );
+ else
+ StopTrain(train, ST_EndOfTrack);
+ return (FALSE);
+ }
+ }
+ }
+
+ trvTrk = xx->trvTrk;
+ TraverseTrack2(&xx->trvTrk, xx->direction==0?dist0:-dist0);
+ car1 = train;
+ dir1 = 0;
+ GetTrainLength2(&car1, &dir1);
+ dir1 = 1-dir1;
+ measured = FALSE;
+ WALK_CARS_START(car1, xx1, dir1);
+
+ if (CarItemIsLoco(xx1->item) && !measured) {
+ xx->distance += dist0;
+ measured = TRUE;
+ }
+
+ WALK_CARS_END(car1, xx1, dir1);
+
+ if (train == followTrain) {
+ if (followCenter.x != mainCenter.x ||
+ followCenter.y != mainCenter.y) {
+ if (curTrainDlg->train == followTrain) {
+ curTrainDlg->followMe = FALSE;
+ ParamLoadControl(curTrainDlg->trainPGp, I_FOLLOW);
+ }
+
+ followTrain = NULL;
+ } else if (OFF_MAIND(xx->trvTrk.pos, xx->trvTrk.pos)) {
+ MoveMainWindow(xx->trvTrk.pos,
+ NormalizeAngle(xx->trvTrk.angle+(xx->direction?180.0:0.0)));
+ followCenter = mainCenter;
+ }
+ }
+
+ PlaceTrain(train, TRUE, TRUE);
+ return TRUE;
+}
+
+
+static BOOL_T MoveTrains(long timeD)
+{
+ BOOL_T trains_moved = FALSE;
+ track_p train;
+ struct extraData * xx;
+ for (train=NULL; TrackIterate(&train);) {
+ if (GetTrkType(train) != T_CAR) {
+ continue;
+ }
-static BOOL_T MoveTrains( long timeD )
-{
- BOOL_T trains_moved = FALSE;
- track_p train;
- struct extraData * xx;
-
- for ( train=NULL; TrackIterate( &train ); ) {
- if ( GetTrkType(train) != T_CAR ) continue;
- xx = GetTrkExtraData(train);
- if ( !CarItemIsLoco(xx->item) ) continue;
- if ( !IsLocoMaster(xx) ) continue;
- if ( xx->speed == 0 ) continue;
- trains_moved |= MoveTrain( train, timeD );
- }
+ xx = GetTrkExtraData(train);
+
+ if (!CarItemIsLoco(xx->item)) {
+ continue;
+ }
+
+ if (!IsLocoMaster(xx)) {
+ continue;
+ }
- ControllerDialogSyncAll();
+ if (xx->speed == 0) {
+ continue;
+ }
- DrawAllCars();
+ trains_moved |= MoveTrain(train, timeD);
+ }
- return trains_moved;
+ ControllerDialogSyncAll();
+ DrawAllCars();
+ return trains_moved;
}
-static void MoveTrainsLoop( void )
+static void MoveTrainsLoop(void)
{
- long time1, timeD;
- static long time0 = 0;
+ long time1, timeD;
+ static long time0 = 0;
+ trainsTimeoutPending = FALSE;
- trainsTimeoutPending = FALSE;
- if ( trainsState != TRAINS_RUN ) {
- time0 = 0;
- return;
- }
- if ( time0 == 0 )
- time0 = wGetTimer();
- time1 = wGetTimer();
- timeD = time1-time0;
- time0 = time1;
- if ( timeD > 1000 )
- timeD = 1000;
- if ( MoveTrains( timeD ) ) {
- wAlarm( trainPause, MoveTrainsLoop );
- trainsTimeoutPending = TRUE;
- } else {
- time0 = 0;
- trainsState = TRAINS_IDLE;
- TrainTimeEndPause();
- }
+ if (trainsState != TRAINS_RUN) {
+ time0 = 0;
+ return;
+ }
+
+ if (time0 == 0) {
+ time0 = wGetTimer();
+ }
+
+ time1 = wGetTimer();
+ timeD = time1-time0;
+ time0 = time1;
+
+ if (timeD > 1000) {
+ timeD = 1000;
+ }
+
+ if (MoveTrains(timeD)) {
+ wAlarm(trainPause, MoveTrainsLoop);
+ trainsTimeoutPending = TRUE;
+ } else {
+ time0 = 0;
+ trainsState = TRAINS_IDLE;
+ TrainTimeEndPause();
+ }
}
-static void RestartTrains( void )
+static void RestartTrains(void)
{
- if ( trainsState != TRAINS_RUN )
- TrainTimeStartPause();
- trainsState = TRAINS_RUN;
- if ( !trainsTimeoutPending )
- MoveTrainsLoop();
+ if (trainsState != TRAINS_RUN) {
+ TrainTimeStartPause();
+ }
+
+ trainsState = TRAINS_RUN;
+
+ if (!trainsTimeoutPending) {
+ MoveTrainsLoop();
+ }
}
static long trainTime0 = 0;
static long playbackTrainPause = 0;
static drawCmd_t trainMovieD = {
- NULL,
- &screenDrawFuncs,
- 0,
- 16.0,
- 0,
- {0,0}, {1,1},
- Pix2CoOrd, CoOrd2Pix };
+ NULL,
+ &screenDrawFuncs,
+ 0,
+ 16.0,
+ 0,
+ {0,0}, {1,1},
+ Pix2CoOrd, CoOrd2Pix
+};
static long trainMovieFrameDelay;
static long trainMovieFrameNext;
-static void TrainTimeEndPause( void )
+static void TrainTimeEndPause(void)
{
- if ( recordF ) {
- if (trainTime0 != 0 ) {
- long delay;
- delay = wGetTimer()-trainTime0;
- if ( delay > 0 )
- fprintf( recordF, "TRAINPAUSE %ld\n", delay );
- }
- trainTime0 = 0;
- }
+ if (recordF) {
+ if (trainTime0 != 0) {
+ long delay;
+ delay = wGetTimer()-trainTime0;
+
+ if (delay > 0) {
+ fprintf(recordF, "TRAINPAUSE %ld\n", delay);
+ }
+ }
+
+ trainTime0 = 0;
+ }
}
-static void TrainTimeStartPause( void )
+static void TrainTimeStartPause(void)
{
- if ( trainTime0 == 0 )
- trainTime0 = wGetTimer();
+ if (trainTime0 == 0) {
+ trainTime0 = wGetTimer();
+ }
}
-static BOOL_T TrainTimeDoPause( char * line )
+static BOOL_T TrainTimeDoPause(char * line)
{
- BOOL_T drawCarEnable2;
- playbackTrainPause = atol( line );
-LOG( log_trainPlayback, 1, ( "DoPause %ld\n", playbackTrainPause ) );
- trainsState = TRAINS_RUN;
- if ( trainMovieFrameDelay > 0 ) {
- drawCarEnable2 = drawCarEnable; drawCarEnable = TRUE;
- TakeSnapshot( &trainMovieD );
- drawCarEnable = drawCarEnable2;
-LOG( log_trainPlayback, 1, ( "SNAP 0\n" ) );
- trainMovieFrameNext = trainMovieFrameDelay;
- }
- /*MoveTrains();*/
- while ( playbackTrainPause > 0 ) {
- if ( playbackTrainPause > trainPause ) {
- wPause( trainPause );
- MoveTrains( trainPause );
- playbackTrainPause -= trainPause;
- if ( trainMovieFrameDelay > 0 )
- trainMovieFrameNext -= trainPause;
- } else {
- wPause( playbackTrainPause );
- MoveTrains( playbackTrainPause );
- if ( trainMovieFrameDelay > 0 )
- trainMovieFrameNext -= playbackTrainPause;
- playbackTrainPause = 0;
- }
- if ( trainMovieFrameDelay > 0 &&
- trainMovieFrameNext <= 0 ) {
- drawCarEnable2 = drawCarEnable; drawCarEnable = TRUE;
- TakeSnapshot( &trainMovieD );
- drawCarEnable = drawCarEnable2;
-LOG( log_trainPlayback, 1, ( "SNAP %ld\n", trainMovieFrameNext ) );
- trainMovieFrameNext = trainMovieFrameDelay;
- }
- }
- return TRUE;
-}
+ BOOL_T drawCarEnable2;
+ playbackTrainPause = atol(line);
+ LOG(log_trainPlayback, 1, ("DoPause %ld\n", playbackTrainPause));
+ trainsState = TRAINS_RUN;
+
+ if (trainMovieFrameDelay > 0) {
+ drawCarEnable2 = drawCarEnable;
+ drawCarEnable = TRUE;
+ TakeSnapshot(&trainMovieD);
+ drawCarEnable = drawCarEnable2;
+ LOG(log_trainPlayback, 1, ("SNAP 0\n"));
+ trainMovieFrameNext = trainMovieFrameDelay;
+ }
+
+ /*MoveTrains();*/
+ while (playbackTrainPause > 0) {
+ if (playbackTrainPause > trainPause) {
+ wPause(trainPause);
+ MoveTrains(trainPause);
+ playbackTrainPause -= trainPause;
+
+ if (trainMovieFrameDelay > 0) {
+ trainMovieFrameNext -= trainPause;
+ }
+ } else {
+ wPause(playbackTrainPause);
+ MoveTrains(playbackTrainPause);
+
+ if (trainMovieFrameDelay > 0) {
+ trainMovieFrameNext -= playbackTrainPause;
+ }
+
+ playbackTrainPause = 0;
+ }
+
+ if (trainMovieFrameDelay > 0 &&
+ trainMovieFrameNext <= 0) {
+ drawCarEnable2 = drawCarEnable;
+ drawCarEnable = TRUE;
+ TakeSnapshot(&trainMovieD);
+ drawCarEnable = drawCarEnable2;
+ LOG(log_trainPlayback, 1, ("SNAP %ld\n", trainMovieFrameNext));
+ trainMovieFrameNext = trainMovieFrameDelay;
+ }
+ }
+
+ return TRUE;
+}
+
+
+static BOOL_T TrainDoMovie(char * line)
+{
+ /* on/off, scale, orig, size */
+ long fps;
+ if (trainMovieD.dpi == 0) {
+ trainMovieD.dpi = mainD.dpi;
+ }
-static BOOL_T TrainDoMovie( char * line )
-{
- /* on/off, scale, orig, size */
- long fps;
- if ( trainMovieD.dpi == 0 )
- trainMovieD.dpi = mainD.dpi;
- if ( !GetArgs( line, "lfpp", &fps, &trainMovieD.scale, &trainMovieD.orig, &trainMovieD.size ) )
- return FALSE;
- if ( fps > 0 ) {
- trainMovieFrameDelay = 1000/fps;
- } else {
- trainMovieFrameDelay = 0;
- }
- trainMovieFrameNext = 0;
- return TRUE;
+ if (!GetArgs(line, "lfpp", &fps, &trainMovieD.scale, &trainMovieD.orig,
+ &trainMovieD.size)) {
+ return FALSE;
+ }
+
+ if (fps > 0) {
+ trainMovieFrameDelay = 1000/fps;
+ } else {
+ trainMovieFrameDelay = 0;
+ }
+
+ trainMovieFrameNext = 0;
+ return TRUE;
}
-EXPORT void AttachTrains( void )
+void AttachTrains(void)
{
- track_p car;
- track_p loco;
- struct extraData * xx;
- coOrd pos;
- track_p trk;
- ANGLE_T angle;
- EPINX_T ep0, ep1;
- int dir;
-
- for ( car=NULL; TrackIterate( &car ); ) {
- ClrTrkBits( car, TB_CARATTACHED );
- if ( GetTrkType(car) != T_CAR )
- continue;
- xx = GetTrkExtraData(car);
- ClrProcessed(xx);
- }
- for ( car=NULL; TrackIterate( &car ); ) {
- if ( GetTrkType(car) != T_CAR )
- continue;
- xx = GetTrkExtraData(car);
- if ( IsProcessed(xx) )
- continue;
- loco = FindMasterLoco( car, NULL );
- if ( loco != NULL )
- xx = GetTrkExtraData(loco);
- else
- loco = car;
- pos = xx->trvTrk.pos;
- if ( xx->status == ST_Crashed )
- continue;
- TRK_ITERATE(trk) {
- if ( trk == xx->trvTrk.trk )
- break;
- }
- if ( trk!=NULL && !QueryTrack( trk, Q_ISTRACK ) )
- trk = NULL;
- if ( trk==NULL || GetTrkDistance(trk,pos)>trackGauge*2.0 )
- trk = OnTrack2( &pos, FALSE, TRUE, FALSE );
- if ( trk!=NULL ) {
- /*if ( trk == xx->trvTrk.trk )
- continue;*/
- angle = GetAngleAtPoint( trk, pos, &ep0, &ep1 );
- if ( NormalizeAngle( xx->trvTrk.angle-angle+90 ) > 180 )
- angle = NormalizeAngle(angle+180);
- PlaceTrainInit( loco, trk, pos, angle, TRUE );
- } else {
- PlaceTrainInit( loco, NULL, xx->trvTrk.pos, xx->trvTrk.angle, FALSE );
- }
- dir = 0;
- WALK_CARS_START( loco, xx, dir )
- WALK_CARS_END( loco, xx, dir )
- dir = 1-dir;
- WALK_CARS_START( loco, xx, dir )
- SetProcessed(xx);
- if ( xx->trvTrk.trk ) {
- SetTrkBits( xx->trvTrk.trk, TB_CARATTACHED );
- xx->status = ST_StopManual;
- } else {
- xx->status = ST_NotOnTrack;
- }
- WALK_CARS_END( loco, xx, dir )
- }
- for ( car=NULL; TrackIterate( &car ); ) {
- if ( GetTrkType(car) != T_CAR )
- continue;
- xx = GetTrkExtraData(car);
- ClrProcessed(xx);
- }
-}
+ track_p car;
+ track_p loco;
+ struct extraData * xx;
+ coOrd pos;
+ track_p trk;
+ ANGLE_T angle;
+ EPINX_T ep0, ep1;
+ int dir;
+
+ for (car=NULL; TrackIterate(&car);) {
+ ClrTrkBits(car, TB_CARATTACHED);
+
+ if (GetTrkType(car) != T_CAR) {
+ continue;
+ }
+
+ xx = GetTrkExtraData(car);
+ ClrProcessed(xx);
+ }
+
+ for (car=NULL; TrackIterate(&car);) {
+ if (GetTrkType(car) != T_CAR) {
+ continue;
+ }
+
+ xx = GetTrkExtraData(car);
+
+ if (IsProcessed(xx)) {
+ continue;
+ }
+
+ loco = FindMasterLoco(car, NULL);
+
+ if (loco != NULL) {
+ xx = GetTrkExtraData(loco);
+ } else {
+ loco = car;
+ }
+
+ pos = xx->trvTrk.pos;
+
+ if (xx->status == ST_Crashed) {
+ continue;
+ }
+
+ TRK_ITERATE(trk) {
+ if (trk == xx->trvTrk.trk) {
+ break;
+ }
+ }
+
+ if (trk!=NULL && !QueryTrack(trk, Q_ISTRACK)) {
+ trk = NULL;
+ }
+ if (trk==NULL || GetTrkDistance(trk,&pos)>trackGauge*2.0) {
+ trk = OnTrack2(&pos, FALSE, TRUE, FALSE, NULL);
+ }
+
+ if (trk!=NULL) {
+ /*if ( trk == xx->trvTrk.trk )
+ continue;*/
+ angle = GetAngleAtPoint(trk, pos, &ep0, &ep1);
+
+ if (NormalizeAngle(xx->trvTrk.angle-angle+90) > 180) {
+ angle = NormalizeAngle(angle+180);
+ }
+
+ PlaceTrainInit(loco, trk, pos, angle, TRUE);
+ } else {
+ PlaceTrainInit(loco, NULL, xx->trvTrk.pos, xx->trvTrk.angle, FALSE);
+ }
+
+ dir = 0;
+ WALK_CARS_START(loco, xx, dir)
+ WALK_CARS_END(loco, xx, dir)
+ dir = 1-dir;
+ WALK_CARS_START(loco, xx, dir)
+ SetProcessed(xx);
+
+ if (xx->trvTrk.trk) {
+ SetTrkBits(xx->trvTrk.trk, TB_CARATTACHED);
+ xx->status = ST_StopManual;
+ } else {
+ xx->status = ST_NotOnTrack;
+ }
+
+ WALK_CARS_END(loco, xx, dir)
+ }
+
+ for (car=NULL; TrackIterate(&car);) {
+ if (GetTrkType(car) != T_CAR) {
+ continue;
+ }
+
+ xx = GetTrkExtraData(car);
+ ClrProcessed(xx);
+ }
+}
+
+
+static void UpdateTrainAttachment(void)
+{
+ track_p trk;
+ struct extraData * xx;
+ for (trk=NULL; TrackIterate(&trk);) {
+ ClrTrkBits(trk, TB_CARATTACHED);
+ }
-static void UpdateTrainAttachment( void )
-{
- track_p trk;
- struct extraData * xx;
- for ( trk=NULL; TrackIterate( &trk ); ) {
- ClrTrkBits( trk, TB_CARATTACHED );
- }
- for ( trk=NULL; TrackIterate( &trk ); ) {
- if ( GetTrkType(trk) == T_CAR ) {
- xx = GetTrkExtraData(trk);
- if ( xx->trvTrk.trk != NULL )
- SetTrkBits( xx->trvTrk.trk, TB_CARATTACHED );
- }
- }
+ for (trk=NULL; TrackIterate(&trk);) {
+ if (GetTrkType(trk) == T_CAR) {
+ xx = GetTrkExtraData(trk);
+
+ if (xx->trvTrk.trk != NULL) {
+ SetTrkBits(xx->trvTrk.trk, TB_CARATTACHED);
+ }
+ }
+ }
}
static BOOL_T TrainOnMovableTrack(
- track_p trk,
- track_p *trainR )
+ track_p trk,
+ track_p *trainR)
{
- track_p train;
- struct extraData * xx;
- int dir;
-
- for ( train=NULL; TrackIterate(&train); ) {
- if ( GetTrkType(train) != T_CAR )
- continue;
- xx = GetTrkExtraData(train);
- if ( IsOnTrack(xx) ) {
- if ( xx->trvTrk.trk == trk )
- break;
- }
- }
- *trainR = train;
- if ( train == NULL ) {
- return TRUE;
- }
- dir = 0;
- WALK_CARS_START( train, xx, dir )
- WALK_CARS_END( train, xx, dir )
- dir = 1-dir;
- WALK_CARS_START( train, xx, dir )
- if ( xx->trvTrk.trk != trk ) {
- ErrorMessage( MSG_CANT_MOVE_UNDER_TRAIN );
- return FALSE;
- }
- WALK_CARS_END( train, xx, dir )
- train = FindMasterLoco( train, NULL );
- if ( train != NULL )
- *trainR = train;
- return TRUE;
+ track_p train;
+ struct extraData * xx;
+ int dir;
+
+ for (train=NULL; TrackIterate(&train);) {
+ if (GetTrkType(train) != T_CAR) {
+ continue;
+ }
+
+ xx = GetTrkExtraData(train);
+
+ if (IsOnTrack(xx)) {
+ if (xx->trvTrk.trk == trk) {
+ break;
+ }
+ }
+ }
+
+ *trainR = train;
+
+ if (train == NULL) {
+ return TRUE;
+ }
+
+ dir = 0;
+ WALK_CARS_START(train, xx, dir)
+ WALK_CARS_END(train, xx, dir)
+ dir = 1-dir;
+ WALK_CARS_START(train, xx, dir)
+
+ if (xx->trvTrk.trk != trk) {
+ ErrorMessage(MSG_CANT_MOVE_UNDER_TRAIN);
+ return FALSE;
+ }
+
+ WALK_CARS_END(train, xx, dir)
+ train = FindMasterLoco(train, NULL);
+
+ if (train != NULL) {
+ *trainR = train;
+ }
+
+ return TRUE;
}
/*
@@ -2026,320 +2404,358 @@ static track_p trainFuncCar;
static coOrd trainFuncPos;
static wButton_p trainPauseB;
-#ifdef LATER
-static char * newCarLabels[3] = { N_("Road"), N_("Number"), NULL };
-#endif
-
-static STATUS_T CmdTrain( wAction_t action, coOrd pos )
+static STATUS_T CmdTrain(wAction_t action, coOrd pos)
{
- track_p trk0, trk1;
- static track_p currCar;
- coOrd pos0, pos1;
- static coOrd delta;
- ANGLE_T angle1;
- EPINX_T ep0, ep1;
- int dir;
- struct extraData * xx=NULL;
- DIST_T dist;
- wPos_t w, h;
-
- switch (action) {
-
- case C_START:
- /*UndoStart( "Trains", "Trains" );*/
- UndoSuspend();
- programMode = MODE_TRAIN;
- drawCarEnable = FALSE;
- doDrawTurnoutPosition = 1;
- DoChangeNotification( CHANGE_PARAMS|CHANGE_TOOLBAR );
- if ( CarAvailableCount() <= 0 ) {
- if ( NoticeMessage( MSG_NO_CARS, _("Yes"), _("No") ) > 0 ) {
- DoCarDlg();
- DoChangeNotification( CHANGE_PARAMS );
- }
- }
- EnableCommands();
- if ( curTrainDlg == NULL )
- curTrainDlg = CreateTrainControlDlg();
- curTrainDlg->train = NULL;
-#ifdef LATER
- if ( trainW == NULL )
- trainW = ParamCreateDialog( MakeWindowTitle(_("Train")), NULL, trainPGp );
- ParamLoadControls( trainPGp );
- wListClear( (wList_p)trainPLs[0].control );
-#endif
- wListClear( (wList_p)curTrainDlg->trainPGp->paramPtr[I_LIST].control );
- Dtrain.state = 0;
- trk0 = NULL;
- tempSegs_da.cnt = 0;
- DYNARR_SET( trkSeg_t, tempSegs_da, 8 );
- /*MainRedraw();*/
- /*wDrawSaveImage( mainD.d );*/
- /*trainEnable = FALSE;*/
- RestartTrains();
- wButtonSetLabel( trainPauseB, (char*)goI );
- trainTime0 = 0;
- AttachTrains();
- DrawAllCars();
- curTrainDlg->train = NULL;
- curTrainDlg->speed = -1;
- wDrawClear( (wDraw_p)curTrainDlg->trainPGp->paramPtr[I_SLIDER].control );
- LocoListInit();
- ControllerDialogSync( curTrainDlg );
- wShow( curTrainDlg->win );
- wControlShow( (wControl_p)newcarB, (toolbarSet&(1<<BG_HOTBAR)) == 0 );
- currCarItemPtr = NULL;
- return C_CONTINUE;
-
- case C_TEXT:
- if ( Dtrain.state == 0 )
- return C_CONTINUE;
- else
- return C_CONTINUE;
-
- case C_DOWN:
- /*trainEnable = FALSE;*/
- InfoMessage( "" );
- if ( trainsState == TRAINS_RUN ) {
- trainsState = TRAINS_PAUSE;
- TrainTimeEndPause();
- }
- pos0 = pos;
- if ( currCarItemPtr != NULL ) {
-#ifdef LATER
- ParamLoadData( &newCarPG );
-#endif
- currCar = NewCar( -1, currCarItemPtr, zero, 0.0 );
- CarItemUpdate( currCarItemPtr );
- HotBarCancel();
- if ( currCar == NULL ) {
- LOG1( log_error, ( "Train: currCar became NULL 1\n" ) )
- return C_CONTINUE;
- }
- xx = GetTrkExtraData(currCar);
- dist = CarItemCoupledLength(xx->item)/2.0;
- Translate( &pos, xx->trvTrk.pos, xx->trvTrk.angle, dist );
- SetTrkEndPoint( currCar, 0, pos, xx->trvTrk.angle );
- Translate( &pos, xx->trvTrk.pos, xx->trvTrk.angle+180.0, dist );
- SetTrkEndPoint( currCar, 1, pos, NormalizeAngle(xx->trvTrk.angle+180.0) );
- /*xx->state |= (xx->item->options&CAR_DESC_BITS);*/
- ClrLocoMaster(xx);
- if ( CarItemIsLoco(xx->item) ) {
- SetLocoMaster(xx);
- LocoListChangeEntry( NULL, currCar );
- if ( currCar == NULL ) {
- LOG1( log_error, ( "Train: currCar became NULL 2\n" ) )
- return C_CONTINUE;
- }
- }
-#ifdef LATER
- wPrefSetString( "Car Road Name", xx->ITEM->title, newCarRoad );
- number = strtol( CarItemNumber(xx->item), &cp, 10 );
- if ( cp == NULL || *cp != 0 )
- number = -1;
- wPrefSetInteger( "Car Number", xx->ITEM->title, number );
-#endif
- if( (trk0 = OnTrack( &pos0, FALSE, TRUE ) ) ) {
- xx->trvTrk.angle = GetAngleAtPoint( trk0, pos0, &ep0, &ep1 );
- if ( NormalizeAngle( FindAngle( pos, pos0 ) - xx->trvTrk.angle ) > 180.0 )
- xx->trvTrk.angle = NormalizeAngle( xx->trvTrk.angle + 180 );
- xx->status = ST_StopManual;
- } else {
- xx->trvTrk.angle = 90;
- }
- PlaceTrainInit( currCar, trk0, pos0, xx->trvTrk.angle, (MyGetKeyState()&WKEY_SHIFT) == 0 );
- /*DrawCars( &tempD, currCar, TRUE );*/
- } else {
- currCar = FindCar( &pos );
- delta.x = pos.x - pos0.x;
- delta.y = pos.y - pos0.y;
- if ( logTable(log_trainMove).level >= 1 ) {
- if ( currCar ) {
- xx = GetTrkExtraData(currCar);
- LogPrintf( "selected %s\n", CarItemNumber(xx->item) );
- for ( dir=0; dir<2; dir++ ) {
- int dir1 = dir;
- track_p car1 = currCar;
- struct extraData * xx1 = GetTrkExtraData(car1);
- LogPrintf( "dir=%d\n", dir1 );
- WALK_CARS_START( car1, xx1, dir1 )
- LogPrintf( " %s [%0.3f,%d]\n", CarItemNumber(xx1->item), xx1->trvTrk.angle, dir1 );
- WALK_CARS_END( car1, xx1, dir1 )
- }
- }
- }
- }
- if ( currCar == NULL )
- return C_CONTINUE;
- trk0 = FindMasterLoco( currCar, NULL );
- if ( trk0 )
- SetCurTrain( trk0 );
- DrawAllCars();
- return C_CONTINUE;
-
- case C_MOVE:
- if ( currCar == NULL )
- return C_CONTINUE;
- pos.x += delta.x;
- pos.y += delta.y;
- pos0 = pos;
- /*DrawCars( &tempD, currCar, FALSE );*/
- xx = GetTrkExtraData(currCar);
- trk0 = OnTrack( &pos0, FALSE, TRUE );
- if ( /*currCarItemPtr != NULL &&*/ trk0 ) {
- angle1 = GetAngleAtPoint( trk0, pos0, &ep0, &ep1 );
- if ( currCarItemPtr != NULL ) {
- if ( NormalizeAngle( FindAngle( pos, pos0 ) - angle1 ) > 180.0 )
- angle1 = NormalizeAngle( angle1 + 180 );
- } else {
- if ( NormalizeAngle( xx->trvTrk.angle - angle1 + 90.0 ) > 180.0 )
- angle1 = NormalizeAngle( angle1 + 180 );
- }
- xx->trvTrk.angle = angle1;
- }
- tempSegs_da.cnt = 1;
- PlaceTrainInit( currCar, trk0, pos0, xx->trvTrk.angle, (MyGetKeyState()&WKEY_SHIFT) == 0 );
- ControllerDialogSync( curTrainDlg );
- DrawAllCars();
- return C_CONTINUE;
-
-
- case C_UP:
- if ( currCar != NULL ) {
- trk0 = FindMasterLoco( currCar, NULL );
- if ( trk0 ) {
- xx = GetTrkExtraData( trk0 );
- if ( !IsOnTrack(xx) || xx->speed <= 0 )
- StopTrain( trk0, ST_StopManual );
- }
- Dtrain.state = 1;
- /*MainRedraw();*/
- ControllerDialogSync( curTrainDlg );
- }
- DrawAllCars();
- InfoSubstituteControls( NULL, NULL );
- currCar = trk0 = NULL;
- currCarItemPtr = NULL;
- /*trainEnable = TRUE;*/
- if ( trainsState == TRAINS_PAUSE ) {
- RestartTrains();
- }
- return C_CONTINUE;
-
- case C_LCLICK:
- if ( MyGetKeyState() & WKEY_SHIFT ) {
- pos0 = pos;
- programMode = MODE_DESIGN;
- if ( (trk0=OnTrack(&pos,FALSE,TRUE)) &&
- QueryTrack( trk0, Q_CAN_NEXT_POSITION ) &&
- TrainOnMovableTrack( trk0, &trk1) ) {
- if ( trk1 ) {
- xx = GetTrkExtraData(trk1);
- pos1 = xx->trvTrk.pos;
- angle1 = xx->trvTrk.angle;
- } else {
- pos1 = pos0;
- angle1 = 0;
- }
- AdvancePositionIndicator( trk0, pos0, &pos1, &angle1 );
- if ( trk1 ) {
- xx->trvTrk.pos = pos1;
- xx->trvTrk.angle = angle1;
- PlaceTrain( trk1, FALSE, TRUE );
- DrawAllCars();
- }
- }
- programMode = MODE_TRAIN;
- trk0 = NULL;
+ track_p trk0, trk1;
+ static track_p currCar;
+ coOrd pos0, pos1;
+ static coOrd delta;
+ ANGLE_T angle1;
+ EPINX_T ep0, ep1;
+ int dir;
+ struct extraData * xx=NULL;
+ wPos_t w, h;
+
+ switch (action) {
+ case C_START:
+ /*UndoStart( "Trains", "Trains" );*/
+ UndoSuspend();
+ programMode = MODE_TRAIN;
+ drawCarEnable = FALSE;
+ doDrawTurnoutPosition = 1;
+ DoChangeNotification(CHANGE_PARAMS|CHANGE_TOOLBAR);
+
+ if (CarAvailableCount() <= 0) {
+ if (NoticeMessage(MSG_NO_CARS, _("Yes"), _("No")) > 0) {
+ DoCarDlg();
+ DoChangeNotification(CHANGE_PARAMS);
+ }
+ }
+
+ EnableCommands();
+
+ if (curTrainDlg == NULL) {
+ curTrainDlg = CreateTrainControlDlg();
+ }
+
+ curTrainDlg->train = NULL;
+ wListClear((wList_p)curTrainDlg->trainPGp->paramPtr[I_LIST].control);
+ Dtrain.state = 0;
+ trk0 = NULL;
+ tempSegs_da.cnt = 0;
+ DYNARR_SET(trkSeg_t, tempSegs_da, 8);
+ RestartTrains();
+ wButtonSetLabel(trainPauseB, (char*)goI);
+ trainTime0 = 0;
+ AttachTrains();
+ DrawAllCars();
+ curTrainDlg->train = NULL;
+ curTrainDlg->speed = -1;
+ wDrawClear((wDraw_p)curTrainDlg->trainPGp->paramPtr[I_SLIDER].control);
+ LocoListInit();
+ ControllerDialogSync(curTrainDlg);
+ wShow(curTrainDlg->win);
+ wControlShow((wControl_p)newcarB, (toolbarSet&(1<<BG_HOTBAR)) == 0);
+ currCarItemPtr = NULL;
+ return C_CONTINUE;
+
+ case C_TEXT:
+ if (Dtrain.state == 0) {
+ return C_CONTINUE;
+ } else {
+ return C_CONTINUE;
+ }
+
+ case C_DOWN:
+ /*trainEnable = FALSE;*/
+ InfoMessage("");
+
+ if (trainsState == TRAINS_RUN) {
+ trainsState = TRAINS_PAUSE;
+ TrainTimeEndPause();
+ }
+
+ pos0 = pos;
+
+ if (currCarItemPtr != NULL) {
+ DIST_T dist;
+ currCar = NewCar(-1, currCarItemPtr, zero, 0.0);
+ CarItemUpdate(currCarItemPtr);
+ HotBarCancel();
+
+ if (currCar == NULL) {
+ LOG1(log_error, ("Train: currCar became NULL 1\n"))
+ return C_CONTINUE;
+ }
+
+ xx = GetTrkExtraData(currCar);
+ dist = CarItemCoupledLength(xx->item)/2.0;
+ Translate(&pos, xx->trvTrk.pos, xx->trvTrk.angle, dist);
+ SetTrkEndPoint(currCar, 0, pos, xx->trvTrk.angle);
+ Translate(&pos, xx->trvTrk.pos, xx->trvTrk.angle+180.0, dist);
+ SetTrkEndPoint(currCar, 1, pos, NormalizeAngle(xx->trvTrk.angle+180.0));
+ /*xx->state |= (xx->item->options&CAR_DESC_BITS);*/
+ ClrLocoMaster(xx);
+
+ if (CarItemIsLoco(xx->item)) {
+ SetLocoMaster(xx);
+ LocoListChangeEntry(NULL, currCar);
+ }
+
+ if ((trk0 = OnTrack(&pos0, FALSE, TRUE))) {
+ xx->trvTrk.angle = GetAngleAtPoint(trk0, pos0, &ep0, &ep1);
+
+ if (NormalizeAngle(FindAngle(pos, pos0) - xx->trvTrk.angle) > 180.0) {
+ xx->trvTrk.angle = NormalizeAngle(xx->trvTrk.angle + 180);
+ }
+
+ xx->status = ST_StopManual;
+ } else {
+ xx->trvTrk.angle = 90;
+ }
+
+ PlaceTrainInit(currCar, trk0, pos0, xx->trvTrk.angle,
+ (MyGetKeyState()&WKEY_SHIFT) == 0);
+ /*DrawCars( &tempD, currCar, TRUE );*/
+ } else {
+ currCar = FindCar(&pos);
+ delta.x = pos.x - pos0.x;
+ delta.y = pos.y - pos0.y;
+
+ if (logTable(log_trainMove).level >= 1) {
+ if (currCar) {
+ xx = GetTrkExtraData(currCar);
+ LogPrintf("selected %s\n", CarItemNumber(xx->item));
+
+ for (dir=0; dir<2; dir++) {
+ int dir1 = dir;
+ track_p car1 = currCar;
+ struct extraData * xx1 = GetTrkExtraData(car1);
+ LogPrintf("dir=%d\n", dir1);
+ WALK_CARS_START(car1, xx1, dir1)
+ LogPrintf(" %s [%0.3f,%d]\n", CarItemNumber(xx1->item), xx1->trvTrk.angle,
+ dir1);
+ WALK_CARS_END(car1, xx1, dir1)
+ }
+ }
+ }
+ }
+
+ if (currCar == NULL) {
+ return C_CONTINUE;
+ }
+
+ trk0 = FindMasterLoco(currCar, NULL);
+
+ if (trk0) {
+ SetCurTrain(trk0);
+ }
+
+ DrawAllCars();
+ return C_CONTINUE;
+
+ case C_MOVE:
+ if (currCar == NULL) {
+ return C_CONTINUE;
+ }
+
+ pos.x += delta.x;
+ pos.y += delta.y;
+ pos0 = pos;
+ /*DrawCars( &tempD, currCar, FALSE );*/
+ xx = GetTrkExtraData(currCar);
+ trk0 = OnTrack(&pos0, FALSE, TRUE);
+
+ if (/*currCarItemPtr != NULL &&*/ trk0) {
+ angle1 = GetAngleAtPoint(trk0, pos0, &ep0, &ep1);
+
+ if (currCarItemPtr != NULL) {
+ if (NormalizeAngle(FindAngle(pos, pos0) - angle1) > 180.0) {
+ angle1 = NormalizeAngle(angle1 + 180);
+ }
+ } else {
+ if (NormalizeAngle(xx->trvTrk.angle - angle1 + 90.0) > 180.0) {
+ angle1 = NormalizeAngle(angle1 + 180);
+ }
+ }
+
+ xx->trvTrk.angle = angle1;
+ }
+
+ tempSegs_da.cnt = 1;
+ PlaceTrainInit(currCar, trk0, pos0, xx->trvTrk.angle,
+ (MyGetKeyState()&WKEY_SHIFT) == 0);
+ ControllerDialogSync(curTrainDlg);
+ DrawAllCars();
+ return C_CONTINUE;
+
+ case C_UP:
+ if (currCar != NULL) {
+ trk0 = FindMasterLoco(currCar, NULL);
+
+ if (trk0) {
+ xx = GetTrkExtraData(trk0);
+
+ if (!IsOnTrack(xx) || xx->speed <= 0) {
+ StopTrain(trk0, ST_StopManual);
+ }
+ }
+
+ Dtrain.state = 1;
+ /*MainRedraw();*/
+ ControllerDialogSync(curTrainDlg);
+ }
+
+ DrawAllCars();
+ InfoSubstituteControls(NULL, NULL);
+ currCar = trk0 = NULL;
+ currCarItemPtr = NULL;
+
+ /*trainEnable = TRUE;*/
+ if (trainsState == TRAINS_PAUSE) {
+ RestartTrains();
+ }
+
+ return C_CONTINUE;
+
+ case C_LCLICK:
+ if (MyGetKeyState() & WKEY_SHIFT) {
+ pos0 = pos;
+ programMode = MODE_DESIGN;
+
+ if ((trk0=OnTrack(&pos,FALSE,TRUE)) &&
+ QueryTrack(trk0, Q_CAN_NEXT_POSITION) &&
+ TrainOnMovableTrack(trk0, &trk1)) {
+ if (trk1) {
+ xx = GetTrkExtraData(trk1);
+ pos1 = xx->trvTrk.pos;
+ angle1 = xx->trvTrk.angle;
+ } else {
+ pos1 = pos0;
+ angle1 = 0;
+ }
+
+ AdvancePositionIndicator(trk0, pos0, &pos1, &angle1);
+
+ if (trk1) {
+ xx->trvTrk.pos = pos1;
+ xx->trvTrk.angle = angle1;
+ PlaceTrain(trk1, FALSE, TRUE);
+ DrawAllCars();
+ }
+ }
+
+ programMode = MODE_TRAIN;
+ trk0 = NULL;
MainRedraw(); //Make sure track is redrawn after switch thrown
- } else {
- trk0 = FindCar( &pos );
- if ( trk0 == NULL )
- return C_CONTINUE;
- trk0 = FindMasterLoco( trk0, NULL );
- if ( trk0 == NULL )
- return C_CONTINUE;
- SetCurTrain( trk0 );
- }
- return C_CONTINUE;
-
- case C_RCLICK:
- trainFuncPos = pos;
- trainFuncCar = FindCar( &pos );
- if ( trainFuncCar == NULL ||
- GetTrkType(trainFuncCar) != T_CAR )
- return C_CONTINUE;
- xx = GetTrkExtraData( trainFuncCar );
- trk0 = FindMasterLoco(trainFuncCar,NULL);
- dir = IsAligned( xx->trvTrk.angle, FindAngle(xx->trvTrk.pos,trainFuncPos) ) ? 0 : 1;
- wMenuPushEnable( trainPopupMI[DO_UNCOUPLE], GetTrkEndTrk( trainFuncCar, dir )!=NULL );
- wMenuPushEnable( trainPopupMI[DO_MUMASTER], CarItemIsLoco(xx->item) && !IsLocoMaster(xx) );
- if ( trk0 ) xx = GetTrkExtraData(trk0);
- wMenuPushEnable( trainPopupMI[DO_CHANGEDIR], trk0!=NULL );
- wMenuPushEnable( trainPopupMI[DO_STOP], trk0!=NULL && xx->speed>0 );
- /*trainEnable = FALSE;*/
-#ifdef LATER
- if ( trainsState == TRAINS_RUN )
- trainsState = TRAINS_PAUSE;
-#endif
- trk0 = FindMasterLoco( trainFuncCar, NULL );
- if ( trk0 )
- SetCurTrain( trk0 );
- if ( !inPlayback )
- wMenuPopupShow( trainPopupM );
- return C_CONTINUE;
-
- case C_REDRAW:
-#ifdef LATER
- if (Dtrain.state == 1 && !suppressTrainRedraw) {
- mainD.funcs->options = wDrawOptTemp;
- mainD.funcs->options = 0;
- }
-#endif
- wDrawSaveImage(mainD.d);
- DrawAllCars();
- wWinGetSize( mainW, &w, &h );
- w -= wControlGetPosX( newCarControls[0] ) + 4;
- if ( w > 20 )
- wListSetSize( (wList_p)newCarControls[0], w, wControlGetHeight( newCarControls[0] ) );
- return C_CONTINUE;
-
- case C_CANCEL:
- /*trainEnable = FALSE;*/
- trainsState = TRAINS_STOP;
- TrainTimeEndPause();
- LOG( log_trainMove, 1, ( "Train Cancel\n" ) )
- Dtrain.state = 0;
- doDrawTurnoutPosition = 0;
- drawCarEnable = TRUE;
- programMode = MODE_DESIGN;
- UpdateTrainAttachment();
- UndoResume();
- DoChangeNotification( CHANGE_PARAMS|CHANGE_TOOLBAR );
- if ( curTrainDlg->win )
- wHide( curTrainDlg->win );
- MainRedraw();
- curTrainDlg->train = NULL;
- return C_CONTINUE;
-
-
- case C_CONFIRM:
- /*trainEnable = FALSE;*/
- if ( trainsState != TRAINS_STOP ) {
- trainsState = TRAINS_STOP;
- wButtonSetLabel( trainPauseB, (char*)stopI );
- TrainTimeEndPause();
- }
- currCar = NULL;
- currCarItemPtr = NULL;
- HotBarCancel();
- InfoSubstituteControls( NULL, NULL );
- return C_TERMINATE;
-
- }
-
- return C_CONTINUE;
-
+ MapRedraw();
+ } else {
+ trk0 = FindCar(&pos);
+
+ if (trk0 == NULL) {
+ return C_CONTINUE;
+ }
+
+ trk0 = FindMasterLoco(trk0, NULL);
+
+ if (trk0 == NULL) {
+ return C_CONTINUE;
+ }
+
+ SetCurTrain(trk0);
+ }
+
+ return C_CONTINUE;
+
+ case C_RCLICK:
+ trainFuncPos = pos;
+ trainFuncCar = FindCar(&pos);
+
+ if (trainFuncCar == NULL ||
+ GetTrkType(trainFuncCar) != T_CAR) {
+ return C_CONTINUE;
+ }
+
+ xx = GetTrkExtraData(trainFuncCar);
+ trk0 = FindMasterLoco(trainFuncCar,NULL);
+ dir = IsAligned(xx->trvTrk.angle, FindAngle(xx->trvTrk.pos,
+ trainFuncPos)) ? 0 : 1;
+ wMenuPushEnable(trainPopupMI[DO_UNCOUPLE], GetTrkEndTrk(trainFuncCar,
+ dir)!=NULL);
+ wMenuPushEnable(trainPopupMI[DO_MUMASTER], CarItemIsLoco(xx->item) &&
+ !IsLocoMaster(xx));
+
+ if (trk0) {
+ xx = GetTrkExtraData(trk0);
+ }
+
+ wMenuPushEnable(trainPopupMI[DO_CHANGEDIR], trk0!=NULL);
+ wMenuPushEnable(trainPopupMI[DO_STOP], trk0!=NULL && xx->speed>0);
+ /*trainEnable = FALSE;*/
+ trk0 = FindMasterLoco(trainFuncCar, NULL);
+
+ if (trk0) {
+ SetCurTrain(trk0);
+ }
+
+ if (!inPlayback) {
+ wMenuPopupShow(trainPopupM);
+ }
+
+ return C_CONTINUE;
+
+ case C_REDRAW:
+ wDrawSaveImage(mainD.d);
+ DrawAllCars();
+ wWinGetSize(mainW, &w, &h);
+ w -= wControlGetPosX(newCarControls[0]) + 4;
+
+ if (w > 20) {
+ wListSetSize((wList_p)newCarControls[0], w,
+ wControlGetHeight(newCarControls[0]));
+ }
+
+ return C_CONTINUE;
+
+ case C_CANCEL:
+ /*trainEnable = FALSE;*/
+ trainsState = TRAINS_STOP;
+ TrainTimeEndPause();
+ LOG(log_trainMove, 1, ("Train Cancel\n"))
+ Dtrain.state = 0;
+ doDrawTurnoutPosition = 0;
+ drawCarEnable = TRUE;
+ programMode = MODE_DESIGN;
+ UpdateTrainAttachment();
+ UndoResume();
+ DoChangeNotification(CHANGE_PARAMS|CHANGE_TOOLBAR);
+
+ if (curTrainDlg->win) {
+ wHide(curTrainDlg->win);
+ }
+
+ MainRedraw();
+ MapRedraw();
+ curTrainDlg->train = NULL;
+ return C_CONTINUE;
+
+ case C_CONFIRM:
+
+ /*trainEnable = FALSE;*/
+ if (trainsState != TRAINS_STOP) {
+ trainsState = TRAINS_STOP;
+ wButtonSetLabel(trainPauseB, (char*)stopI);
+ TrainTimeEndPause();
+ }
+
+ currCar = NULL;
+ currCarItemPtr = NULL;
+ HotBarCancel();
+ InfoSubstituteControls(NULL, NULL);
+ return C_TERMINATE;
+ }
+
+ return C_CONTINUE;
}
@@ -2347,11 +2763,11 @@ static STATUS_T CmdTrain( wAction_t action, coOrd pos )
*
*/
-EXPORT STATUS_T CmdCarDescAction(
- wAction_t action,
- coOrd pos )
+STATUS_T CmdCarDescAction(
+ wAction_t action,
+ coOrd pos)
{
- return CmdTrain( action, pos );
+ return CmdTrain(action, pos);
}
#include "bitmaps/train.xpm"
@@ -2362,225 +2778,269 @@ EXPORT STATUS_T CmdCarDescAction(
#include "bitmaps/ballred.xpm"
-static void CmdTrainStopGo( void * junk )
+static void CmdTrainStopGo(void * junk)
{
- wIcon_p icon;
- if ( trainsState == TRAINS_STOP ) {
- icon = goI;
- RestartTrains();
- } else {
- trainsState = TRAINS_STOP;
- icon = stopI;
- TrainTimeEndPause();
- }
- ControllerDialogSync( curTrainDlg );
- wButtonSetLabel( trainPauseB, (char*)icon );
- if ( recordF )
- fprintf( recordF, "TRAINSTOPGO %s\n", trainsState==TRAINS_STOP?"STOP":"GO" );
+ wIcon_p icon;
+
+ if (trainsState == TRAINS_STOP) {
+ icon = goI;
+ RestartTrains();
+ } else {
+ trainsState = TRAINS_STOP;
+ icon = stopI;
+ TrainTimeEndPause();
+ }
+
+ ControllerDialogSync(curTrainDlg);
+ wButtonSetLabel(trainPauseB, (char*)icon);
+
+ if (recordF) {
+ fprintf(recordF, "TRAINSTOPGO %s\n", trainsState==TRAINS_STOP?"STOP":"GO");
+ }
}
-static BOOL_T TrainStopGoPlayback( char * line )
+static BOOL_T TrainStopGoPlayback(char * line)
{
- while (*line && isspace((unsigned char)*line) ) line++;
- if ( (strcasecmp( line, "STOP" ) == 0) != (trainsState == TRAINS_STOP) )
- CmdTrainStopGo(NULL);
- return TRUE;
+ while (*line && isspace((unsigned char)*line)) {
+ line++;
+ }
+
+ if ((strcasecmp(line, "STOP") == 0) != (trainsState == TRAINS_STOP)) {
+ CmdTrainStopGo(NULL);
+ }
+
+ return TRUE;
}
-static void CmdTrainExit( void * junk )
+static void CmdTrainExit(void * junk)
{
- Reset();
- InfoSubstituteControls( NULL, NULL );
- MainRedraw();
+ Reset();
+ InfoSubstituteControls(NULL, NULL);
+ MainRedraw();
+ MapRedraw();
}
static void TrainFunc(
- void * action )
+ void * action)
{
- struct extraData * xx, *xx1;
- ANGLE_T angle;
- int dir;
- track_p loco;
- track_p temp0, temp1;
- coOrd pos0, pos1;
- ANGLE_T angle0, angle1;
- EPINX_T ep0=-1, ep1=-1;
-
- if ( trainFuncCar == NULL ) {
- fprintf( stderr, "trainFunc: trainFuncCar==NULL\n" );
- return;
- }
+ struct extraData * xx, *xx1;
+ ANGLE_T angle;
+ int dir;
+ track_p loco;
+ track_p temp0, temp1;
+ coOrd pos0, pos1;
+ ANGLE_T angle0, angle1;
+ EPINX_T ep0=-1, ep1=-1;
+
+ if (trainFuncCar == NULL) {
+ fprintf(stderr, "trainFunc: trainFuncCar==NULL\n");
+ return;
+ }
+
+ xx = GetTrkExtraData(trainFuncCar);
+ angle = FindAngle(xx->trvTrk.pos, trainFuncPos);
+ angle = NormalizeAngle(angle-xx->trvTrk.angle);
+ dir = (angle>90&&angle<270);
+
+ switch ((int)(long)action) {
+ case DO_UNCOUPLE:
+ if (GetTrkEndTrk(trainFuncCar,dir)) {
+ UncoupleCars(trainFuncCar, GetTrkEndTrk(trainFuncCar,dir));
+ }
+
+ break;
+
+ case DO_FLIPCAR:
+ temp0 = GetTrkEndTrk(trainFuncCar,0);
+ pos0 = GetTrkEndPos(trainFuncCar,0);
+ angle0 = GetTrkEndAngle(trainFuncCar,0);
+ temp1 = GetTrkEndTrk(trainFuncCar,1);
+ pos1 = GetTrkEndPos(trainFuncCar,1);
+ angle1 = GetTrkEndAngle(trainFuncCar,1);
+
+ if (temp0) {
+ ep0 = GetEndPtConnectedToMe(temp0,trainFuncCar);
+ trainFuncCar->endPt[0].track = NULL;
+ temp0->endPt[ep0].track = NULL;
+ }
+
+ if (temp1) {
+ ep1 = GetEndPtConnectedToMe(temp1,trainFuncCar);
+ trainFuncCar->endPt[1].track = NULL;
+ temp1->endPt[ep1].track = NULL;
+ }
+
+ xx->direction = !xx->direction;
+ FlipTraverseTrack(&xx->trvTrk);
+ SetTrkEndPoint(trainFuncCar, 0, pos1, angle1);
+ SetTrkEndPoint(trainFuncCar, 1, pos0, angle0);
+
+ if (temp0) {
+ trainFuncCar->endPt[1].track = temp0;
+ temp0->endPt[ep0].track = trainFuncCar;
+ }
+
+ if (temp1) {
+ trainFuncCar->endPt[0].track = temp1;
+ temp1->endPt[ep1].track = trainFuncCar;
+ }
+
+ ControllerDialogSync(curTrainDlg);
+ PlaceCar(trainFuncCar);
+ break;
+
+ case DO_FLIPTRAIN:
+ FlipTrain(trainFuncCar);
+ /*PlaceTrain( trainFuncCar, xx->trk, xx->trvTrk.pos, xx->trvTrk.angle );*/
+ break;
+
+ case DO_DELCAR:
+ for (dir=0; dir<2; dir++)
+ if (GetTrkEndTrk(trainFuncCar,dir)) {
+ UncoupleCars(trainFuncCar, GetTrkEndTrk(trainFuncCar,dir));
+ }
+
+ if (CarItemIsLoco(xx->item)) {
+ LocoListChangeEntry(trainFuncCar, NULL);
+ }
+
+ trainFuncCar->deleted = TRUE;
+ /*DeleteTrack( trainFuncCar, FALSE );*/
+ CarItemUpdate(xx->item);
+ HotBarCancel();
+ InfoSubstituteControls(NULL, NULL);
+ break;
+
+ case DO_DELTRAIN:
+ dir = 0;
+ loco = FindMasterLoco(trainFuncCar, NULL);
+ WALK_CARS_START(trainFuncCar, xx, dir)
+ WALK_CARS_END(trainFuncCar, xx, dir)
+ dir = 1-dir;
+ temp0 = NULL;
+ WALK_CARS_START(trainFuncCar, xx, dir)
+
+ if (temp0) {
+ xx1 = GetTrkExtraData(temp0);
+ temp0->deleted = TRUE;
+ /*DeleteTrack( temp0, FALSE );*/
+ CarItemUpdate(xx1->item);
+ }
+
+ temp0 = trainFuncCar;
+ WALK_CARS_END(trainFuncCar, xx, dir)
+
+ if (temp0) {
+ xx1 = GetTrkExtraData(temp0);
+ temp0->deleted = TRUE;
+ /*DeleteTrack( temp0, FALSE );*/
+ CarItemUpdate(xx1->item);
+ }
+
+ if (loco) {
+ LocoListChangeEntry(loco, NULL);
+ }
+
+ HotBarCancel();
+ InfoSubstituteControls(NULL, NULL);
+ break;
+
+ case DO_MUMASTER:
+ if (CarItemIsLoco(xx->item)) {
+ loco = FindMasterLoco(trainFuncCar, NULL);
+
+ if (loco != trainFuncCar) {
+ SetLocoMaster(xx);
+ LOG(log_trainMove, 1, ("%s gets master\n", CarItemNumber(xx->item)))
+
+ if (loco) {
+ xx1 = GetTrkExtraData(loco);
+ ClrLocoMaster(xx1);
+ LOG(log_trainMove, 1, ("%s looses master\n", CarItemNumber(xx1->item)))
+ xx->speed = xx1->speed;
+ xx1->speed = 0;
+ }
+
+ LocoListChangeEntry(loco, trainFuncCar);
+ }
+ }
+
+ break;
+
+ case DO_CHANGEDIR:
+ loco = FindMasterLoco(trainFuncCar, NULL);
+
+ if (loco) {
+ xx = GetTrkExtraData(loco);
+ xx->direction = !xx->direction;
+ SetTrainDirection(loco);
+ ControllerDialogSync(curTrainDlg);
+ }
+
+ break;
+
+ case DO_STOP:
+ loco = FindMasterLoco(trainFuncCar, NULL);
+
+ if (loco) {
+ StopTrain(loco, ST_StopManual);
+ ControllerDialogSync(curTrainDlg);
+ }
+
+ break;
+ }
- xx = GetTrkExtraData(trainFuncCar);
- angle = FindAngle( xx->trvTrk.pos, trainFuncPos );
- angle = NormalizeAngle( angle-xx->trvTrk.angle );
- dir = (angle>90&&angle<270);
-
- switch ((int)(long)action) {
- case DO_UNCOUPLE:
- if ( GetTrkEndTrk(trainFuncCar,dir) )
- UncoupleCars( trainFuncCar, GetTrkEndTrk(trainFuncCar,dir) );
- break;
- case DO_FLIPCAR:
- temp0 = GetTrkEndTrk(trainFuncCar,0);
- pos0 = GetTrkEndPos(trainFuncCar,0);
- angle0 = GetTrkEndAngle(trainFuncCar,0);
- temp1 = GetTrkEndTrk(trainFuncCar,1);
- pos1 = GetTrkEndPos(trainFuncCar,1);
- angle1 = GetTrkEndAngle(trainFuncCar,1);
- if ( temp0 ) {
- ep0 = GetEndPtConnectedToMe(temp0,trainFuncCar);
- trainFuncCar->endPt[0].track = NULL;
- temp0->endPt[ep0].track = NULL;
- }
- if ( temp1 ) {
- ep1 = GetEndPtConnectedToMe(temp1,trainFuncCar);
- trainFuncCar->endPt[1].track = NULL;
- temp1->endPt[ep1].track = NULL;
- }
- xx->direction = !xx->direction;
- FlipTraverseTrack( &xx->trvTrk );
- SetTrkEndPoint( trainFuncCar, 0, pos1, angle1 );
- SetTrkEndPoint( trainFuncCar, 1, pos0, angle0 );
- if ( temp0 ) {
- trainFuncCar->endPt[1].track = temp0;
- temp0->endPt[ep0].track = trainFuncCar;
- }
- if ( temp1 ) {
- trainFuncCar->endPt[0].track = temp1;
- temp1->endPt[ep1].track = trainFuncCar;
- }
- ControllerDialogSync( curTrainDlg );
- PlaceCar( trainFuncCar );
- break;
- case DO_FLIPTRAIN:
- FlipTrain( trainFuncCar );
- /*PlaceTrain( trainFuncCar, xx->trk, xx->trvTrk.pos, xx->trvTrk.angle );*/
- break;
- case DO_DELCAR:
- for ( dir=0; dir<2; dir++ )
- if ( GetTrkEndTrk(trainFuncCar,dir) )
- UncoupleCars( trainFuncCar, GetTrkEndTrk(trainFuncCar,dir) );
- if ( CarItemIsLoco(xx->item) )
- LocoListChangeEntry( trainFuncCar, NULL );
- trainFuncCar->deleted = TRUE;
- /*DeleteTrack( trainFuncCar, FALSE );*/
- CarItemUpdate( xx->item );
- HotBarCancel();
- InfoSubstituteControls( NULL, NULL );
- break;
- case DO_DELTRAIN:
- dir = 0;
- loco = FindMasterLoco( trainFuncCar, NULL );
- WALK_CARS_START( trainFuncCar, xx, dir )
- WALK_CARS_END( trainFuncCar, xx, dir )
- dir = 1-dir;
- temp0 = NULL;
- WALK_CARS_START( trainFuncCar, xx, dir )
- if ( temp0 ) {
- xx1 = GetTrkExtraData(temp0);
- temp0->deleted = TRUE;
- /*DeleteTrack( temp0, FALSE );*/
- CarItemUpdate( xx1->item );
- }
- temp0 = trainFuncCar;
- WALK_CARS_END( trainFuncCar, xx, dir )
- if ( temp0 ) {
- xx1 = GetTrkExtraData(temp0);
- temp0->deleted = TRUE;
- /*DeleteTrack( temp0, FALSE );*/
- CarItemUpdate( xx1->item );
- }
- if ( loco )
- LocoListChangeEntry( loco, NULL );
- HotBarCancel();
- InfoSubstituteControls( NULL, NULL );
- break;
- case DO_MUMASTER:
- if ( CarItemIsLoco(xx->item) ) {
- loco = FindMasterLoco( trainFuncCar, NULL );
- if ( loco != trainFuncCar ) {
- SetLocoMaster(xx);
- LOG( log_trainMove, 1, ( "%s gets master\n", CarItemNumber(xx->item) ) )
- if ( loco ) {
- xx1 = GetTrkExtraData( loco );
- ClrLocoMaster(xx1);
- LOG( log_trainMove, 1, ( "%s looses master\n", CarItemNumber(xx1->item) ) )
- xx->speed = xx1->speed;
- xx1->speed = 0;
- }
- LocoListChangeEntry( loco, trainFuncCar );
- }
- }
- break;
- case DO_CHANGEDIR:
- loco = FindMasterLoco( trainFuncCar, NULL );
- if ( loco ) {
- xx = GetTrkExtraData(loco);
- xx->direction = !xx->direction;
- SetTrainDirection(loco);
- ControllerDialogSync( curTrainDlg );
- }
- break;
- case DO_STOP:
- loco = FindMasterLoco( trainFuncCar, NULL );
- if ( loco ) {
- StopTrain( loco, ST_StopManual );
- ControllerDialogSync( curTrainDlg );
- }
- break;
- }
MainRedraw(); //Redraw if Train altered
+ MapRedraw();
- if ( trainsState == TRAINS_PAUSE ) {
- RestartTrains();
- } else {
- DrawAllCars();
- }
+ if (trainsState == TRAINS_PAUSE) {
+ RestartTrains();
+ } else {
+ DrawAllCars();
+ }
}
-EXPORT void InitCmdTrain( wMenu_p menu )
+void InitCmdTrain(wMenu_p menu)
{
- log_trainMove = LogFindIndex( "trainMove" );
- log_trainPlayback = LogFindIndex( "trainPlayback" );
- trainPLs[I_ZERO].winLabel = (char*)wIconCreatePixMap(zero_xpm);
- ParamRegister( &trainPG );
- AddMenuButton( menu, CmdTrain, "cmdTrain", _("Train"), wIconCreatePixMap(train_xpm), LEVEL0_50, IC_POPUP2|IC_LCLICK|IC_RCLICK, 0, NULL );
- stopI = wIconCreatePixMap( ballred );
- goI = wIconCreatePixMap( ballgreen );
- trainPauseB = AddToolbarButton( "cmdTrainPause", stopI, IC_MODETRAIN_ONLY, CmdTrainStopGo, NULL );
- AddToolbarButton( "cmdTrainExit", wIconCreatePixMap(exit_xpm), IC_MODETRAIN_ONLY, CmdTrainExit, NULL );
- newcarB = AddToolbarButton( "cmdTrainNewCar", wIconCreatePixMap(newcar_xpm), IC_MODETRAIN_ONLY, CarItemLoadList, NULL );
-
- T_CAR = InitObject( &carCmds );
-
-#ifdef LATER
- trainPGp = ParamCreateGroup( "trainW", "train", 0, trainPLs, sizeof trainPLs/sizeof trainPLs[0], NULL, 0, _("Ok"), trainOk, wHide );
- ParamRegister( trainPGp );
-#endif
-
- trainPopupM = MenuRegister( "Train Commands" );
- trainPopupMI[DO_UNCOUPLE] = wMenuPushCreate( trainPopupM, "", _("Uncouple"), 0, TrainFunc, (void*)DO_UNCOUPLE );
- trainPopupMI[DO_FLIPCAR] = wMenuPushCreate( trainPopupM, "", _("Flip Car"), 0, TrainFunc, (void*)DO_FLIPCAR );
- trainPopupMI[DO_FLIPTRAIN] = wMenuPushCreate( trainPopupM, "", _("Flip Train"), 0, TrainFunc, (void*)DO_FLIPTRAIN );
- trainPopupMI[DO_MUMASTER] = wMenuPushCreate( trainPopupM, "", _("MU Master"), 0, TrainFunc, (void*)DO_MUMASTER );
- trainPopupMI[DO_CHANGEDIR] = wMenuPushCreate( trainPopupM, "", _("Change Direction"), 0, TrainFunc, (void*)DO_CHANGEDIR );
- trainPopupMI[DO_STOP] = wMenuPushCreate( trainPopupM, "", _("Stop"), 0, TrainFunc, (void*)DO_STOP );
- wMenuSeparatorCreate( trainPopupM );
- trainPopupMI[DO_DELCAR] = wMenuPushCreate( trainPopupM, "", _("Remove Car"), 0, TrainFunc, (void*)DO_DELCAR );
- trainPopupMI[DO_DELTRAIN] = wMenuPushCreate( trainPopupM, "", _("Remove Train"), 0, TrainFunc, (void*)DO_DELTRAIN );
-
-#ifdef LATER
- ParamRegister( &newCarPG );
- ParamCreateControls( &newCarPG, NULL );
- newCarControls[0] = newCarPLs[0].control;
- newCarControls[1] = newCarPLs[1].control;
-#endif
- AddPlaybackProc( "TRAINSTOPGO", (playbackProc_p)TrainStopGoPlayback, NULL );
- AddPlaybackProc( "TRAINPAUSE", (playbackProc_p)TrainTimeDoPause, NULL );
- AddPlaybackProc( "TRAINMOVIE", (playbackProc_p)TrainDoMovie, NULL );
+ log_trainMove = LogFindIndex("trainMove");
+ log_trainPlayback = LogFindIndex("trainPlayback");
+ trainPLs[I_ZERO].winLabel = (char*)wIconCreatePixMap(zero_xpm);
+ ParamRegister(&trainPG);
+ AddMenuButton(menu, CmdTrain, "cmdTrain", _("Train"),
+ wIconCreatePixMap(train_xpm), LEVEL0_50, IC_POPUP2|IC_LCLICK|IC_RCLICK, 0,
+ NULL);
+ stopI = wIconCreatePixMap(ballred);
+ goI = wIconCreatePixMap(ballgreen);
+ trainPauseB = AddToolbarButton("cmdTrainPause", stopI, IC_MODETRAIN_ONLY,
+ CmdTrainStopGo, NULL);
+ AddToolbarButton("cmdTrainExit", wIconCreatePixMap(exit_xpm), IC_MODETRAIN_ONLY,
+ CmdTrainExit, NULL);
+ newcarB = AddToolbarButton("cmdTrainNewCar", wIconCreatePixMap(newcar_xpm),
+ IC_MODETRAIN_ONLY, CarItemLoadList, NULL);
+ T_CAR = InitObject(&carCmds);
+ trainPopupM = MenuRegister("Train Commands");
+ trainPopupMI[DO_UNCOUPLE] = wMenuPushCreate(trainPopupM, "", _("Uncouple"), 0,
+ TrainFunc, (void*)DO_UNCOUPLE);
+ trainPopupMI[DO_FLIPCAR] = wMenuPushCreate(trainPopupM, "", _("Flip Car"), 0,
+ TrainFunc, (void*)DO_FLIPCAR);
+ trainPopupMI[DO_FLIPTRAIN] = wMenuPushCreate(trainPopupM, "", _("Flip Train"),
+ 0, TrainFunc, (void*)DO_FLIPTRAIN);
+ trainPopupMI[DO_MUMASTER] = wMenuPushCreate(trainPopupM, "", _("MU Master"),
+ 0, TrainFunc, (void*)DO_MUMASTER);
+ trainPopupMI[DO_CHANGEDIR] = wMenuPushCreate(trainPopupM, "",
+ _("Change Direction"), 0, TrainFunc, (void*)DO_CHANGEDIR);
+ trainPopupMI[DO_STOP] = wMenuPushCreate(trainPopupM, "", _("Stop"), 0,
+ TrainFunc, (void*)DO_STOP);
+ wMenuSeparatorCreate(trainPopupM);
+ trainPopupMI[DO_DELCAR] = wMenuPushCreate(trainPopupM, "", _("Remove Car"),
+ 0, TrainFunc, (void*)DO_DELCAR);
+ trainPopupMI[DO_DELTRAIN] = wMenuPushCreate(trainPopupM, "",
+ _("Remove Train"), 0, TrainFunc, (void*)DO_DELTRAIN);
+ AddPlaybackProc("TRAINSTOPGO", (playbackProc_p)TrainStopGoPlayback, NULL);
+ AddPlaybackProc("TRAINPAUSE", (playbackProc_p)TrainTimeDoPause, NULL);
+ AddPlaybackProc("TRAINMOVIE", (playbackProc_p)TrainDoMovie, NULL);
}
diff --git a/app/bin/ctrain.h b/app/bin/ctrain.h
index 10f836f..daa083c 100644
--- a/app/bin/ctrain.h
+++ b/app/bin/ctrain.h
@@ -1,5 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/ctrain.h,v 1.1 2005-12-07 15:46:59 rc-flyer Exp $
+/** \file ctrain.h
+ * Definitions and prototypes for train operations
*/
/* XTrkCad - Model Railroad CAD
@@ -20,6 +20,11 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#ifndef HAVE_CTRAIN_H
+#define HAVE_CTRAIN_H
+
+#include "common.h"
+#include "track.h"
struct carItem_t;
typedef struct carItem_t carItem_t;
@@ -53,3 +58,4 @@ int CarAvailableCount( void );
BOOL_T TraverseTrack2( traverseTrack_p, DIST_T );
void FlipTraverseTrack( traverseTrack_p );
+#endif // !HAVE_CTRAIN_H \ No newline at end of file
diff --git a/app/bin/cturnout.c b/app/bin/cturnout.c
index 55b7a4d..c3125ad 100644
--- a/app/bin/cturnout.c
+++ b/app/bin/cturnout.c
@@ -1,8 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/cturnout.c,v 1.8 2009-08-16 13:07:14 m_fischer Exp $
- *
+/** \file cturnout.c
* T_TURNOUT
- *
*/
/* XTrkCad - Model Railroad CAD
@@ -24,14 +21,24 @@
*/
#include <ctype.h>
-#include "track.h"
+#include <math.h>
+#include <stdint.h>
+#include <string.h>
+
#include "ccurve.h"
-#include "cstraigh.h"
-#include "compound.h"
+#include "tbezier.h"
#include "cjoin.h"
+#include "compound.h"
+#include "cstraigh.h"
+#include "cundo.h"
+#include "custom.h"
+#include "fileio.h"
#include "i18n.h"
-
-#include <stdint.h>
+#include "layout.h"
+#include "messages.h"
+#include "param.h"
+#include "track.h"
+#include "utility.h"
EXPORT TRKTYP_T T_TURNOUT = -1;
@@ -120,6 +127,8 @@ EXPORT turnoutInfo_t * CreateNewTurnout(
}
to->segCnt = segCnt;
to->segs = (trkSeg_p)memdup( segData, (sizeof *segData) * segCnt );
+ FixUpBezierSegs(to->segs,to->segCnt);
+
GetSegBounds( zero, 0.0, segCnt, to->segs, &to->orig, &to->size );
to->endCnt = endPtCnt;
to->endPt = (trkEndPt_t*)memdup( endPts, (sizeof *endPts) * to->endCnt );
@@ -154,7 +163,7 @@ EXPORT wIndex_t CheckPaths(
PATHPTR_T paths )
{
int pc, ps;
- PATHPTR_T pp;
+ PATHPTR_T pp = 0;
int inx, inx1;
static dynArr_t segMap_da;
int segInx[2], segEp[2];
@@ -663,7 +672,7 @@ static ANGLE_T GetAngleTurnout(
pos.x -= xx->orig.x;
pos.y -= xx->orig.y;
Rotate( &pos, zero, -xx->angle );
- angle = GetAngleSegs( segCnt, xx->segs, pos, &segInx );
+ angle = GetAngleSegs( segCnt, xx->segs, &pos, &segInx, NULL, NULL, NULL, NULL );
return NormalizeAngle( angle+xx->angle );
}
@@ -1202,7 +1211,6 @@ static BOOL_T TraverseTurnout(
coOrd pos0, pos1, pos2;
DIST_T d, dist;
PATHPTR_T path, pathCurr;
- BOOL_T backwards=FALSE;
trkSeg_p segPtr;
EPINX_T ep, epCnt, ep2;
int segInx;
@@ -1222,10 +1230,6 @@ LOG( log_traverseTurnout, 1, ( "TraverseTurnout( T%d, [%0.3f %0.3f] [%0.3f %0.3f
continue;
GetSegInxEP( path[0], &segInx, &segEP );
segPtr = xx->segs+segInx;
-#ifdef LATER
- for ( inx = 0; inx<xx->segCnt; inx++ ) {
- segPtr = xx->segs+inx;
-#endif
segProcData.distance.pos1 = pos0;
SegProc( SEGPROC_DISTANCE, segPtr, &segProcData );
if ( segProcData.distance.dd < d ) {
@@ -1241,46 +1245,63 @@ LOG( log_traverseTurnout, 1, ( "TraverseTurnout( T%d, [%0.3f %0.3f] [%0.3f %0.3f
LOG( log_traverseTurnout, 1, ( " PC=%d ", pathCurr[0] ) )
GetSegInxEP( pathCurr[0], &segInx, &segEP );
segPtr = xx->segs+segInx;
-#ifdef LATER
- for ( pathCurr = xx->pathCurr+strlen((char*)xx->pathCurr)+1; pathCurr[0] || pathCurr[1]; pathCurr++ ) {
- if ( pathCurr[0] == 0 )
- continue;
- if ( Abs(pathCurr[0])-1 == currInx )
- break;
- }
- if ( pathCurr[0] == 0 ) {
- fprintf( stderr, "Open turnout [%d]\n", currInx );
- return FALSE;
- }
- segPtr = xx->segs+currInx;
-#endif
segProcData.traverse1.pos = pos2;
- segProcData.traverse1.angle = xx->angle-trvTrk->angle;
+ segProcData.traverse1.angle = -xx->angle+trvTrk->angle;
SegProc( SEGPROC_TRAVERSE1, segPtr, &segProcData );
dist += segProcData.traverse1.dist;
- backwards = segProcData.traverse1.backwards;
- if ( segEP ) backwards = !backwards;
-LOG( log_traverseTurnout, 2, ( " B%d D%0.3f\n", backwards, dist ) )
-
+ //Get ready for Traverse2 - copy all Traverse1 first
+ BOOL_T backwards = segProcData.traverse1.backwards;
+ BOOL_T segs_backwards = segProcData.traverse1.segs_backwards;
+ BOOL_T neg = segProcData.traverse1.negative;
+ int BezSegInx = segProcData.traverse1.BezSegInx;
+
+ // Backwards means universally we going towards EP=0 on this segment.
+ // But the overall direction we are going can have two types of reversal,
+ // a curve that is flipped is negative (the end points are reversed) which Traverse1 handles,
+ // and a path can also be reversed (negative path number) and will have segEP = 1
+ BOOL_T turnout_backwards = backwards;
+ if (segEP) turnout_backwards = !turnout_backwards; //direction modified if path reversed
+
+LOG( log_traverseTurnout, 2, ( " SI%d TB%d SP%d B%d SB%d N%d BSI%d D%0.3f\n", segInx, turnout_backwards, segEP, backwards, segs_backwards, neg, BezSegInx, dist ) )
while ( *pathCurr ) {
+ //Set up Traverse2
GetSegInxEP( pathCurr[0], &segInx, &segEP );
segPtr = xx->segs+segInx;
- segProcData.traverse2.segDir = (backwards?1-segEP:segEP);
+ segProcData.traverse2.segDir = backwards;
segProcData.traverse2.dist = dist;
+ segProcData.traverse2.BezSegInx = BezSegInx;
+ segProcData.traverse2.segs_backwards = segs_backwards;
SegProc( SEGPROC_TRAVERSE2, segPtr, &segProcData );
if ( segProcData.traverse2.dist <= 0 ) {
*distR = 0;
REORIGIN( trvTrk->pos, segProcData.traverse2.pos, xx->angle, xx->orig );
trvTrk->angle = NormalizeAngle( xx->angle+segProcData.traverse2.angle );
+LOG( log_traverseTurnout, 2, ( " -> [%0.3f %0.3f] A%0.3f D%0.3f\n", trvTrk->pos.x, trvTrk->pos.y, trvTrk->angle, *distR ))
return TRUE;
}
- dist = segProcData.traverse2.dist;
- pathCurr += (backwards?-1:1);
-LOG( log_traverseTurnout, 1, ( " D%0.3f\n", dist ) )
- }
-
- pathCurr += (backwards?1:-1);
- pos1 = MapPathPos( xx, pathCurr[0], (backwards?0:1) );
+ dist = segProcData.traverse2.dist; //Remainder after segment
+ pathCurr += (turnout_backwards?-1:1); //Use master direction for turnout
+ //Redrive Traverse 1 for each segment for Bezier - to pick up backwards elements
+ if (pathCurr[0] == '\0') continue; //
+ //Set up Traverse1 - copy all of Traverse2 values first
+ GetSegInxEP( pathCurr[0], &segInx, &segEP );
+ segPtr = xx->segs+segInx;
+ ANGLE_T angle = segProcData.traverse2.angle;
+ coOrd pos = segProcData.traverse2.pos;
+LOG( log_traverseTurnout, 1, ( " Loop2-1 SI%d SP%d [%0.3f %0.3f] A%0.3f D%0.3f\n", segInx, segEP, pos.x, pos.y, angle, dist ) )
+ segProcData.traverse1.pos = pos;
+ segProcData.traverse1.angle = angle;
+ SegProc( SEGPROC_TRAVERSE1, segPtr, &segProcData );
+ // dist += segProcData.traverse1.dist; //Add distance from end to pos (could be zero or whole length if backwards)
+ backwards = segProcData.traverse1.backwards;
+ segs_backwards = segProcData.traverse1.segs_backwards;
+ neg = segProcData.traverse1.negative;
+ BezSegInx = segProcData.traverse1.BezSegInx;
+LOG( log_traverseTurnout, 1, ( " Loop1-2 B%d SB%d N%d BSI%d D%0.3f\n", backwards, segs_backwards, neg, BezSegInx, dist ) )
+ }
+
+ pathCurr += (turnout_backwards?1:-1);
+ pos1 = MapPathPos( xx, pathCurr[0], (turnout_backwards?0:1) );
*distR = dist;
epCnt = GetTrkEndPtCnt(trk);
ep = 0;
@@ -1354,10 +1375,25 @@ static STATUS_T ModifyTurnout( track_p trk, wAction_t action, coOrd pos )
static BOOL_T GetParamsTurnout( int inx, track_p trk, coOrd pos, trackParams_t * params )
{
- params->type = curveTypeStraight;
- params->ep = PickUnconnectedEndPoint( pos, trk );
+
+
+ params->type = curveTypeStraight; //TODO should check if last segment is actually straight
+ if (inx == PARAMS_CORNU || inx == PARAMS_BEZIER) {
+ params->arcR = 0.0;
+ params->arcP = zero;
+ params->ep = PickEndPoint(pos,trk); //Nearest
+ if (params->ep>=0) {
+ params->angle = GetTrkEndAngle(trk,params->ep);
+ params->track_angle = params->angle + params->ep?0:180;
+ } else {
+ params->angle = params-> track_angle = 0;
+ return FALSE;
+ }
+ return TRUE;
+ }
+ params->ep = PickUnconnectedEndPointSilent( pos, trk );
if (params->ep == -1)
- return FALSE;
+ return FALSE;
params->lineOrig = GetTrkEndPos(trk,params->ep);
params->lineEnd = params->lineOrig;
params->len = 0.0;
@@ -1405,7 +1441,15 @@ static BOOL_T QueryTurnout( track_p trk, int query )
case Q_NOT_PLACE_FROGPOINTS:
case Q_HAS_DESC:
case Q_MODIFY_REDRAW_DONT_UNDRAW_TRACK:
+ case Q_CAN_EXTEND:
return TRUE;
+ case Q_MODIFY_CAN_SPLIT:
+ if (GetTrkEndPtCnt(trk) <= 2) { // allow splitting of simple track und buffers
+ return TRUE ;
+ }
+ else {
+ return FALSE;
+ }
case Q_CAN_PARALLEL:
if( GetTrkEndPtCnt( trk ) == 2 && fabs( GetTrkEndAngle( trk, 0 ) - GetTrkEndAngle( trk, 1 )) == 180.0 )
return TRUE;
@@ -1413,6 +1457,8 @@ static BOOL_T QueryTurnout( track_p trk, int query )
return FALSE;
case Q_CAN_NEXT_POSITION:
return ( GetTrkEndPtCnt(trk) > 2 );
+ case Q_CORNU_CAN_MODIFY:
+ return FALSE;
default:
return FALSE;
}
@@ -1663,7 +1709,7 @@ static void TurnoutChange( long changes )
maxTurnoutDim.x = maxTurnoutDim.y = 0.0;
if (turnoutInfo_da.cnt <= 0)
return;
- curTurnout = TurnoutAdd( LABEL_TABBED|LABEL_MANUF|LABEL_PARTNO|LABEL_DESCR, curScaleInx, turnoutListL, &maxTurnoutDim, -1 );
+ curTurnout = TurnoutAdd( LABEL_TABBED|LABEL_MANUF|LABEL_PARTNO|LABEL_DESCR, GetLayoutCurScale(), turnoutListL, &maxTurnoutDim, -1 );
wListSetIndex( turnoutListL, 0 );
wControlShow( (wControl_p)turnoutListL, TRUE );
if (curTurnout == NULL) {
@@ -1871,6 +1917,9 @@ LOG( log_turnout, 3, ( "placeTurnout T%d (%0.3f %0.3f) A%0.3f\n",
}
}
}
+ } else {
+ trk = NULL;
+ *trkR = NULL;
}
*connCntR = connCnt;
*maxDR = maxD;
@@ -1975,14 +2024,6 @@ static void AddTurnout( void )
curTurnout->segs, curTurnout->segCnt, trackGauge, wDrawColorBlack );
UndoStart( _("Place New Turnout"), "addTurnout" );
titleLen = strlen( curTurnout->title );
-#ifdef LATER
- newTrk = NewTrack( 0, T_TURNOUT, curTurnout->endCnt, sizeof (*xx) + 1 );
- xx = GetTrkExtraData(newTrk);
- xx->orig = Dto.pos;
- xx->angle = Dto.angle;
- xx->customInfo = curTurnout->customInfo;
- xx->segs = MyMalloc( (curTurnout->segCnt)*sizeof curTurnout->segs[0] );
-#endif
DYNARR_SET( trkEndPt_t, tempEndPts_da, curTurnout->endCnt );
DYNARR_SET( junk_t, connection_da, curTurnout->endCnt );
@@ -2078,23 +2119,13 @@ LOG( log_turnout, 1, ( " deleting leftover T%d\n",
xx->customInfo = curTurnout->customInfo;
if (connection((int)curTurnoutEp).trk) {
CopyAttributes( connection((int)curTurnoutEp).trk, newTrk );
- SetTrkScale( newTrk, curScaleInx );
+ SetTrkScale( newTrk, GetLayoutCurScale());
}
xx->special = curTurnout->special;
xx->u = curTurnout->u;
-#ifdef LATER
- xx->segCnt = curTurnout->segCnt;
- memcpy( xx->segs, curTurnout->segs, xx->segCnt * sizeof *(trkSeg_p)0 );
- xx->title = curTurnout->title;
- xx->paths = xx->pathCurr = curTurnout->paths;
- xx->pathLen = curTurnout->pathLen;
-#endif
/* Make the connections */
-#ifdef LATER
- for (i=0; i<curTurnout->endCnt; i++)
- SetTrkEndPoint( newTrk, i, tempEndPts(i).pos, tempEndPts(i).angle );
-#endif
+
visible = FALSE;
noConnections = TRUE;
AuditTracks( "addTurnout T%d before connection", GetTrkIndex(newTrk) );
@@ -2102,6 +2133,9 @@ LOG( log_turnout, 1, ( " deleting leftover T%d\n",
if ( connection(i).trk != NULL ) {
p0 = GetTrkEndPos( newTrk, i );
p1 = GetTrkEndPos( connection(i).trk, connection(i).ep );
+ ANGLE_T a0 = GetTrkEndAngle( newTrk, i);
+ ANGLE_T a1 = GetTrkEndAngle( connection(i).trk, connection(i).ep );
+ ANGLE_T a = NormalizeAngle(a1-a0+180);
d = FindDistance( p0, p1 );
if ( d < connectDistance ) {
noConnections = FALSE;
@@ -2481,7 +2515,7 @@ EXPORT void AddHotBarTurnouts( void )
to = turnoutInfo(inx);
if ( !( IsParamValid(to->paramFileIndex) &&
to->segCnt > 0 &&
- CompatibleScale( TRUE, to->scaleInx, curScaleInx ) ) )
+ CompatibleScale( TRUE, to->scaleInx, GetLayoutCurScale()) ) )
continue;
AddHotBarElement( to->contentsLabel, to->size, to->orig, TRUE, to->barScale, to, CmdTurnoutHotBarProc );
}
diff --git a/app/bin/cturntbl.c b/app/bin/cturntbl.c
index 31f33ed..9264572 100644
--- a/app/bin/cturntbl.c
+++ b/app/bin/cturntbl.c
@@ -1,8 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/cturntbl.c,v 1.4 2008-03-06 19:35:06 m_fischer Exp $
- *
+/** \file cturntbl.c
* TURNTABLE
- *
*/
/* XTrkCad - Model Railroad CAD
@@ -23,9 +20,17 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "track.h"
+#include <math.h>
+#include <string.h>
+
#include "cstraigh.h"
+#include "cundo.h"
+#include "fileio.h"
#include "i18n.h"
+#include "messages.h"
+#include "param.h"
+#include "track.h"
+#include "utility.h"
static TRKTYP_T T_TURNTABLE = -1;
@@ -233,7 +238,7 @@ static struct {
coOrd orig;
DIST_T diameter;
long epCnt;
- LAYER_T layerNumber;
+ unsigned int layerNumber;
} trntblData;
typedef enum { OR, RA, EC, LY } trntblDesc_e;
static descData_t trntblDesc[] = {
@@ -584,6 +589,26 @@ static STATUS_T ModifyTurntable( track_p trk, wAction_t action, coOrd pos )
return C_ERROR;
}
+EXPORT BOOL_T ConnectTurntableTracks(
+ track_p trk1,
+ EPINX_T ep1,
+ track_p trk2,
+ EPINX_T ep2 ) {
+ coOrd center, pos;
+ DIST_T radius;
+ TurntableGetCenter( trk1, &center, &radius );
+ pos = GetTrkEndPos(trk2,ep2);
+ ANGLE_T angle = FindAngle(center, GetTrkEndPos(trk2,ep2));
+ if (NormalizeAngle(GetTrkEndAngle(trk2,ep2) + 180 - angle) < connectAngle) {
+ if (FindDistance(center,pos)-radius < connectDistance) {
+ EPINX_T ep = NewTurntableEndPt(trk1,angle);
+ ConnectTracks( trk1, ep, trk2, ep2 );
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
static BOOL_T GetParamsTurntable( int inx, track_p trk, coOrd pos, trackParams_t * params )
{
@@ -604,6 +629,8 @@ static BOOL_T GetParamsTurntable( int inx, track_p trk, coOrd pos, trackParams_t
params->lineEnd = params->lineOrig;
params->len = 0.0;
params->arcR = 0.0;
+ params->ttcenter = center; //Turntable
+ params->ttradius = radius; //Turntable
return TRUE;
}
@@ -623,11 +650,27 @@ static BOOL_T MoveEndPtTurntable( track_p *trk, EPINX_T *ep, coOrd pos, DIST_T d
d -= d0;
Translate( &pos, pos, angle0+180, d0 );
}
- if (d < r) {
+ if (small((r-d)/2)) {
+ Translate( &pos, posCen, angle0+180, r); //Make radius equal if close
+ } else if (d < r) {
ErrorMessage( MSG_POINT_INSIDE_TURNTABLE );
return FALSE;
}
- *ep = NewTurntableEndPt( *trk, angle0 );
+ //Look for empty slot
+ BOOL_T found = FALSE;
+ for (*ep=0; *ep<GetTrkEndPtCnt(*trk); *ep=*ep+1) {
+ if ( (GetTrkEndTrk(*trk,*ep)) == NULL )
+ found = TRUE;
+ break;
+ }
+ if (!found)
+ *ep = NewTurntableEndPt(*trk,angle0);
+ else {
+ struct extraData *xx = GetTrkExtraData(*trk);
+ coOrd pos1;
+ PointOnCircle( &pos1, xx->pos, xx->radius, angle0 );
+ SetTrkEndPoint(*trk, *ep, pos1, angle0); //Reuse
+ }
if ((d-r) > connectDistance) {
trk1 = NewStraightTrack( GetTrkEndPos(*trk,*ep), pos );
CopyAttributes( *trk, trk1 );
@@ -650,7 +693,12 @@ static BOOL_T QueryTurntable( track_p trk, int query )
case Q_ISTRACK:
case Q_NOT_PLACE_FROGPOINTS:
case Q_MODIFY_REDRAW_DONT_UNDRAW_TRACK:
+ case Q_CAN_ADD_ENDPOINTS:
+ case Q_CAN_EXTEND:
return TRUE;
+ case Q_MODIFY_CAN_SPLIT:
+ case Q_CORNU_CAN_MODIFY:
+ return FALSE;
default:
return FALSE;
}
diff --git a/app/bin/cundo.c b/app/bin/cundo.c
index 13d7af0..e27ee75 100644
--- a/app/bin/cundo.c
+++ b/app/bin/cundo.c
@@ -24,9 +24,18 @@
#include <time.h>
#include <stdarg.h>
#include <errno.h>
+#include <string.h>
+
+#include "cselect.h"
+#include "custom.h"
+#include "fileio.h"
+#include "i18n.h"
+#include "messages.h"
+#include "paths.h"
#include "track.h"
#include "trackx.h"
-#include "i18n.h"
+#include "cundo.h"
+
/*****************************************************************************
*
@@ -148,10 +157,11 @@ static BOOL_T UndoFail( char * cause, long val, char * fileName, int lineNumber
undoStack_p us;
FILE * outf;
time_t clock;
- char temp[STR_SIZE];
+ char *temp;
NoticeMessage( MSG_UNDO_ASSERT, _("Ok"), NULL, fileName, lineNumber, val, val, cause );
- sprintf( temp, "%s%s%s", workingDir, FILE_SEP_CHAR, sUndoF );
+ MakeFullpath(&temp, workingDir, sUndoF, NULL);
outf = fopen( temp, "a+" );
+ free(temp);
if ( outf == NULL ) {
NoticeMessage( MSG_OPEN_FAIL, _("Ok"), NULL, _("Undo Trace"), temp, strerror(errno) );
return FALSE;
@@ -361,6 +371,7 @@ static BOOL_T ReadObject( stream_p stream, BOOL_T needRedo )
tempTrk.extraData = trk->extraData;
if (!ReadStream( stream, tempTrk.extraData, tempTrk.extraSize ))
return FALSE;
+ RebuildTrackSegs(&tempTrk); //If we had an array of Segs - recreate it
if (recordUndo) Rprintf( "Restore T%D(%d) @ %lx\n", trk->index, tempTrk.index, (long)trk );
tempTrk.index = trk->index;
tempTrk.next = trk->next;
diff --git a/app/bin/cundo.h b/app/bin/cundo.h
index ef767ae..89beab3 100644
--- a/app/bin/cundo.h
+++ b/app/bin/cundo.h
@@ -1,5 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/cundo.h,v 1.1 2005-12-07 15:46:54 rc-flyer Exp $
+/** \file cundo.h
+ * Function prototypes for undo functionality
*/
/* XTrkCad - Model Railroad CAD
@@ -20,6 +20,12 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#ifndef HAVE_CUNDO_H
+#define HAVE_CUNDO_H
+
+#include "common.h"
+#include "track.h"
+
int UndoUndo( void );
int UndoRedo( void );
void UndoResume( void );
@@ -30,3 +36,5 @@ BOOL_T UndoDelete( track_p );
BOOL_T UndoNew( track_p );
void UndoEnd( void );
void UndoClear( void );
+
+#endif // !HAVE_CUNDO_H
diff --git a/app/bin/custom.c b/app/bin/custom.c
index 766dbd8..618a8ac 100644
--- a/app/bin/custom.c
+++ b/app/bin/custom.c
@@ -1,6 +1,6 @@
#define RENAME_H
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/custom.c,v 1.14 2010-01-01 13:24:59 m_fischer Exp $
+/** \file custom.c
+ *
*/
/* XTrkCad - Model Railroad CAD
@@ -40,13 +40,14 @@
#include <stdarg.h>
#include <errno.h>
-#include "track.h"
-#include "version.h"
+#include "cjoin.h"
#include "common.h"
-#include "misc.h"
+#include "custom.h"
#include "fileio.h"
-#include "cjoin.h"
#include "i18n.h"
+#include "misc.h"
+#include "track.h"
+#include "version.h"
#define Product "XTrackCAD"
#define product "xtrkcad"
@@ -73,6 +74,7 @@ char * sClipboardF = product ".clp";
char * sParamQF = product "." KEYCODE "tq";
char * sUndoF = product ".und";
char * sAuditF = product ".aud";
+char * sTipF = product ".tip";
char * sSourceFilePattern = NULL;
char * sImportFilePattern = NULL;
@@ -126,8 +128,10 @@ void DoStructDesignerRedir( void )
BOOL_T Initialize( void )
{
InitTrkCurve();
+ InitTrkBezier();
InitTrkStraight();
InitTrkEase();
+ InitTrkCornu();
InitTrkTurnout();
InitTrkTurntable();
InitTrkStruct();
diff --git a/app/bin/custom.h b/app/bin/custom.h
index b8ab213..a4d335a 100644
--- a/app/bin/custom.h
+++ b/app/bin/custom.h
@@ -1,5 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/custom.h,v 1.7 2010-01-01 13:24:59 m_fischer Exp $
+/** \file custom.h
+ *
*/
/* XTrkCad - Model Railroad CAD
@@ -23,6 +23,9 @@
#ifndef CUSTOM_H
#define CUSTOM_H
+#include "wlib.h"
+#include "misc.h"
+
#define ICON_WIDTH (64)
#define ICON_HEIGHT (64)
@@ -82,12 +85,13 @@ void InitCustom( void );
void CleanupCustom( void );
void InitTrkCurve( void );
+void InitTrkBezier( void );
void InitTrkDraw( void );
void InitTrkEase( void );
+void InitTrkCornu( void );
void InitTrkNote( void );
void InitTrkStraight( void );
void InitTrkStruct( void );
-void InitTrkTableEdge( void );
void InitTrkText( void );
void InitTrkTrack( void );
void InitTrkTurnout( void );
@@ -105,13 +109,13 @@ void InitCmdElevation( wMenu_p menu );
void InitCmdJoin( wMenu_p menu );
void InitCmdProfile( wMenu_p menu );
void InitCmdPull( wMenu_p menu );
-void InitCmdTighten( void );
void InitCmdModify( wMenu_p menu );
void InitCmdMove( wMenu_p menu );
void InitCmdMoveDescription( wMenu_p menu );
void InitCmdStraight( wMenu_p menu );
void InitCmdDescribe( wMenu_p menu );
void InitCmdSelect( wMenu_p menu );
+void InitCmdPan( wMenu_p menu);
void InitCmdDelete( void );
void InitCmdSplit( wMenu_p menu );
void InitCmdTunnel( void );
@@ -119,7 +123,6 @@ void InitCmdRuler( wMenu_p menu );
void InitCmdParallel( wMenu_p menu );
wIndex_t InitCmdPrint( wMenu_p menu );
-void InitCmdTableEdge( void );
void InitCmdText( wMenu_p menu );
void InitCmdTrain( wMenu_p menu );
void InitCmdTurnout( wMenu_p menu );
@@ -135,7 +138,6 @@ void InitCmdEasement( void );
char * MakeWindowTitle( char * );
addButtonCallBack_t EasementInit( void );
-addButtonCallBack_t StructDesignerInit( void );
void InitLayers( void );
void InitHotBar( void );
@@ -144,7 +146,7 @@ BOOL_T Initialize( void );
void DoEasementRedir( void );
void DoStructDesignerRedir( void );
void InitNewTurnRedir( wMenu_p );
-void RedrawAbout( wDraw_p, void *, wPos_t, wPos_t );
-void DoKeycheck( char * );
+
+void InitAppDefaults(void);
#endif
diff --git a/app/bin/dbench.c b/app/bin/dbench.c
index 4a32360..7e44713 100644
--- a/app/bin/dbench.c
+++ b/app/bin/dbench.c
@@ -20,9 +20,14 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "track.h"
-#include "i18n.h"
+#include <math.h>
+#include <stdio.h>
+#include <string.h>
+#include "i18n.h"
+#include "param.h"
+#include "track.h"
+#include "utility.h"
/*****************************************************************************
*
diff --git a/app/bin/dbitmap.c b/app/bin/dbitmap.c
index 1c9c304..340bad1 100644
--- a/app/bin/dbitmap.c
+++ b/app/bin/dbitmap.c
@@ -1,5 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/dbitmap.c,v 1.3 2008-02-14 19:49:19 m_fischer Exp $
+/** \file dbitmap.c
+ * Print to Bitmap
*/
/* XTrkCad - Model Railroad CAD
@@ -20,14 +20,17 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "track.h"
+#include <assert.h>
+
+#include "custom.h"
+#include "fileio.h"
#include "i18n.h"
+#include "layout.h"
+#include "messages.h"
+#include "param.h"
+#include "paths.h"
+#include "track.h"
-/*****************************************************************************
- *
- * Print to Bitmap
- *
- */
static long outputBitMapTogglesV = 3;
static double outputBitMapDensity = 10;
@@ -87,14 +90,14 @@ static int SaveBitmapFile(
if (outputBitMapTogglesV&1) {
fp = wStandardFont( F_TIMES, FALSE, FALSE );
fs = 18;
- DrawTextSize( &mainD, Title1, fp, fs, FALSE, &textsize );
+ DrawTextSize( &mainD, GetLayoutTitle(), fp, fs, FALSE, &textsize );
p[0].x = (bitmap_d.size.x - (textsize.x*bitmap_d.scale))/2.0 + bitmap_d.orig.x;
p[0].y = mapD.size.y + (y1+0.30)*bitmap_d.scale;
- DrawString( &bitmap_d, p[0], 0.0, Title1, fp, fs*bitmap_d.scale, wDrawColorBlack );
- DrawTextSize( &mainD, Title2, fp, fs, FALSE, &textsize );
+ DrawString( &bitmap_d, p[0], 0.0, GetLayoutTitle(), fp, fs*bitmap_d.scale, wDrawColorBlack );
+ DrawTextSize( &mainD, GetLayoutSubtitle(), fp, fs, FALSE, &textsize );
p[0].x = (bitmap_d.size.x - (textsize.x*bitmap_d.scale))/2.0 + bitmap_d.orig.x;
p[0].y = mapD.size.y + (y1+0.05)*bitmap_d.scale;
- DrawString( &bitmap_d, p[0], 0.0, Title2, fp, fs*bitmap_d.scale, wDrawColorBlack );
+ DrawString( &bitmap_d, p[0], 0.0, GetLayoutSubtitle(), fp, fs*bitmap_d.scale, wDrawColorBlack );
fp_bi = wStandardFont( F_TIMES, TRUE, TRUE );
DrawTextSize( &mainD, _("Drawn with "), fp, fs, FALSE, &textsize );
DrawTextSize( &mainD, sProdName, fp_bi, fs, FALSE, &textsize1 );
@@ -214,7 +217,7 @@ static void OutputBitMapOk( void * junk )
_("Bitmap files|*.xpm"),
#endif
SaveBitmapFile, NULL );
- wFilSelect( bitmap_fs, curDirName );
+ wFilSelect( bitmap_fs, GetCurrentPath( BITMAPPATHKEY ));
}
diff --git a/app/bin/dcar.c b/app/bin/dcar.c
index c64582f..9236f1b 100644
--- a/app/bin/dcar.c
+++ b/app/bin/dcar.c
@@ -1,6 +1,5 @@
/** \file dcar.c
* TRAIN
- *
*/
/* XTrkCad - Model Railroad CAD
@@ -24,14 +23,23 @@
#ifndef WINDOWS
#include <errno.h>
#endif
+#include <assert.h>
#include <ctype.h>
-
+#include <math.h>
#include <stdint.h>
+#include <string.h>
-#include "track.h"
+#include "cselect.h"
#include "ctrain.h"
-#include "i18n.h"
+#include "custom.h"
#include "fileio.h"
+#include "i18n.h"
+#include "layout.h"
+#include "messages.h"
+#include "param.h"
+#include "paths.h"
+#include "track.h"
+#include "utility.h"
static int log_carList;
static int log_carInvList;
@@ -626,6 +634,8 @@ static carProto_p CarProtoNew(
proto->type = type;
proto->dim = *dim;
proto->segCnt = segCnt;
+ //if (proto->segPtr) Can't do this because segPtr could be static
+ // free(proto->segPtr);
proto->segPtr = (trkSeg_p)memdup( segPtr, (sizeof *(trkSeg_p)0) * proto->segCnt );
CloneFilledDraw( proto->segCnt, proto->segPtr, FALSE );
GetSegBounds( zero, 0.0, proto->segCnt, proto->segPtr, &proto->orig, &proto->size );
@@ -660,6 +670,8 @@ static BOOL_T CarProtoRead(
if ( !ReadSegs() )
return FALSE;
CarProtoNew( NULL, curParamFileIndex, desc, options, type, &dim, tempSegs_da.cnt, &tempSegs(0) );
+ FreeFilledDraw(tempSegs_da.cnt,&tempSegs(0));
+ MyFree(desc);
return TRUE;
}
@@ -1255,7 +1267,7 @@ static BOOL_T CarItemWrite(
item->data.purchPrice, item->data.currPrice, item->data.condition, item->data.purchDate, item->data.serviceDate )>0;
if ( ( options&CAR_ITEM_ONLAYOUT) ) {
CarGetPos( item->car, &pos, &angle );
- rc &= fprintf( f, " %d %d %0.3f %0.3f %0.3f",
+ rc &= fprintf( f, " %d %u %0.3f %0.3f %0.3f",
GetTrkIndex(item->car), GetTrkLayer(item->car), pos.x, pos.y, angle )>0;
}
rc &= fprintf( f, "\n" )>0;
@@ -1614,7 +1626,7 @@ EXPORT int CarAvailableCount( void )
carItem_t * item;
for ( inx=0; inx < carItemHotbar_da.cnt; inx ++ ) {
item = carItemHotbar(inx);
- if ( item->scaleInx != curScaleInx )
+ if ( item->scaleInx != GetLayoutCurScale())
continue;
cnt++;
}
@@ -1636,7 +1648,7 @@ EXPORT void AddHotBarCarDesc( void )
item1 = carItemHotbar(inx);
if ( item1->car && !IsTrackDeleted(item1->car) )
continue;
- if ( item1->scaleInx != curScaleInx )
+ if ( item1->scaleInx != GetLayoutCurScale())
continue;
if ( (carHotbarModes[carHotbarModeInx]&0xF000)!=0 || ( item0 == NULL || Cmp_carHotbar( &item0, &item1 ) != 0 ) ) {
#ifdef DESCFIX
@@ -3811,7 +3823,7 @@ LOG( log_carDlgState, 3, ( "CarDlgOk()\n" ) )
sprintf( message+strlen(message), "%s: %s %s %s %s %s %s",
(partP?_(" and Part"):""),
carDlgManufStr, carDlgPartnoStr, carDlgProtoStr, carDlgDescStr,
- (carDlgRepmarkStr?carDlgRepmarkStr:carDlgRoadnameStr), carDlgNumberStr );
+ (carDlgRepmarkStr[ 0 ]?carDlgRepmarkStr:carDlgRoadnameStr), carDlgNumberStr );
carDlgQuantity = 1;
ParamLoadControl( &carDlgPG, I_CD_QTY );
@@ -3836,7 +3848,7 @@ LOG( log_carDlgState, 3, ( "CarDlgOk()\n" ) )
RestoreLocale(oldLocale);
}
reloadRoadnameList = TRUE;
- sprintf( message, _("%s Part: %s %s %s %s %s %s"), carDlgUpdatePartPtr==NULL?_("Added new"):_("Updated"), carDlgManufStr, carDlgPartnoStr, carDlgProtoStr, carDlgDescStr, carDlgRepmarkStr?carDlgRepmarkStr:carDlgRoadnameStr, carDlgNumberStr );
+ sprintf( message, _("%s Part: %s %s %s %s %s %s"), carDlgUpdatePartPtr==NULL?_("Added new"):_("Updated"), carDlgManufStr, carDlgPartnoStr, carDlgProtoStr, carDlgDescStr, carDlgRepmarkStr[ 0 ]?carDlgRepmarkStr:carDlgRoadnameStr, carDlgNumberStr );
} else if ( S_PROTO ) {
if ( carDlgUpdateProtoPtr==NULL ) {
@@ -3876,7 +3888,7 @@ LOG( log_carDlgState, 3, ( "CarDlgOk()\n" ) )
if ( carDlgUpdateItemPtr==NULL ) {
if ( partP ) {
TabStringExtract( title, 7, tabs );
- if ( CarDlgLoadLists( TRUE, tabs, curScaleInx ) )
+ if ( CarDlgLoadLists( TRUE, tabs, GetLayoutCurScale()) )
currState = S_ItemSel;
else
currState = S_ItemEnter;
@@ -4003,7 +4015,7 @@ static void DoCarPartDlg( carDlgAction_e *actions )
CarDlgLoadRoadnameList();
carProtoSegCnt = 0;
carProtoSegPtr = NULL;
- carDlgScaleInx = curScaleInx;
+ carDlgScaleInx = GetLayoutCurScale();
carDlgFlipToggle = FALSE;
carDlgChanged = 0;
@@ -4135,12 +4147,13 @@ static void CarInvDlgFind( void * junk )
if ( item == NULL || item->car == NULL || IsTrackDeleted(item->car) ) return;
CarGetPos( item->car, &pos, &angle );
CarSetVisible( item->car );
- DrawMapBoundingBox( FALSE );
+ //DrawMapBoundingBox( FALSE );
mainCenter = pos;
mainD.orig.x = pos.x-mainD.size.x/2;;
mainD.orig.y = pos.y-mainD.size.y/2;;
MainRedraw();
- DrawMapBoundingBox( TRUE );
+ MapRedraw();
+ //DrawMapBoundingBox( TRUE );
}
@@ -4345,7 +4358,7 @@ static void CarInvDlgSaveText( void )
if ( carInvSaveText_fs == NULL )
carInvSaveText_fs = wFilSelCreate( mainW, FS_SAVE, 0, _("List Cars"),
"Text|*.txt", CarInvSaveText, NULL );
- wFilSelect( carInvSaveText_fs, curDirName );
+ wFilSelect( carInvSaveText_fs, GetCurrentPath(CARSPATHKEY));
}
@@ -4630,7 +4643,7 @@ static void CarInvDlgImportCsv( void )
if ( carInvImportCsv_fs == NULL )
carInvImportCsv_fs = wFilSelCreate( mainW, FS_LOAD, 0, _("Import Cars"),
_("Comma-Separated-Values|*.csv"), CarInvImportCsv, NULL );
- wFilSelect( carInvImportCsv_fs, curDirName );
+ wFilSelect( carInvImportCsv_fs, GetCurrentPath(CARSPATHKEY));
}
@@ -4752,7 +4765,7 @@ static void CarInvDlgExportCsv( void )
if ( carInvExportCsv_fs == NULL )
carInvExportCsv_fs = wFilSelCreate( mainW, FS_SAVE, 0, _("Export Cars"),
_("Comma-Separated-Values|*.csv"), CarInvExportCsv, NULL );
- wFilSelect( carInvExportCsv_fs, curDirName );
+ wFilSelect( carInvExportCsv_fs, GetCurrentPath(CARSPATHKEY));
}
diff --git a/app/bin/dcmpnd.c b/app/bin/dcmpnd.c
index 2cff06c..8b92e41 100644
--- a/app/bin/dcmpnd.c
+++ b/app/bin/dcmpnd.c
@@ -1,6 +1,5 @@
/* \file dcmpnd.c
* Compound tracks: Turnouts and Structures
- *
*/
/* XTrkCad - Model Railroad CAD
@@ -22,11 +21,18 @@
*/
#include <ctype.h>
-#include "track.h"
+#include <string.h>
+
#include "compound.h"
-#include "shrtpath.h"
+#include "cundo.h"
+#include "custom.h"
+#include "fileio.h"
#include "i18n.h"
-
+#include "messages.h"
+#include "param.h"
+#include "shrtpath.h"
+#include "track.h"
+#include "utility.h"
/*****************************************************************************
*
diff --git a/app/bin/dcontmgm.c b/app/bin/dcontmgm.c
index 45fec89..e9e929f 100644
--- a/app/bin/dcontmgm.c
+++ b/app/bin/dcontmgm.c
@@ -60,11 +60,8 @@
static const char rcsid[] = "@(#) : $Id$";
-
-
-#include "track.h"
#include <errno.h>
-#include "i18n.h"
+#include <math.h>
#ifdef WINDOWS
#include <io.h>
@@ -73,6 +70,14 @@ static const char rcsid[] = "@(#) : $Id$";
#define access _access
#endif
+#include "cundo.h"
+#include "custom.h"
+#include "i18n.h"
+#include "param.h"
+#include "track.h"
+#include "wlib.h"
+
+
/*****************************************************************************
*
* Control List Management
diff --git a/app/bin/dcustmgm.c b/app/bin/dcustmgm.c
index 86f86b1..ce6bdeb 100644
--- a/app/bin/dcustmgm.c
+++ b/app/bin/dcustmgm.c
@@ -1,5 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/dcustmgm.c,v 1.4 2009-07-30 16:58:42 m_fischer Exp $
+/** \file dcustmgm.c
+ * Custom List Management
*/
/* XTrkCad - Model Railroad CAD
@@ -20,22 +20,27 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "track.h"
+#include <assert.h>
#include <errno.h>
-#include "i18n.h"
+#include <string.h>
#ifdef WINDOWS
#include <io.h>
#define F_OK (0)
#define W_OK (2)
#define access _access
+#else
+#include <unistd.h>
#endif
-/*****************************************************************************
- *
- * Custom List Management
- *
- */
+#include "custom.h"
+#include "fileio.h"
+#include "i18n.h"
+#include "messages.h"
+#include "param.h"
+#include "paths.h"
+#include "track.h"
+#include "wlib.h"
static void CustomEdit( void * action );
static void CustomDelete( void * action );
@@ -241,7 +246,7 @@ static void CustomExport( void * junk )
if ( customMgmExport_fs == NULL )
customMgmExport_fs = wFilSelCreate( mainW, FS_UPDATE, 0, _("Move To XTP"),
_("Parameter File|*.xtp"), CustomDoExport, NULL );
- wFilSelect( customMgmExport_fs, curDirName );
+ wFilSelect( customMgmExport_fs, GetCurrentPath(CUSTOMPATHKEY));
}
diff --git a/app/bin/dease.c b/app/bin/dease.c
index 9b07129..7841857 100644
--- a/app/bin/dease.c
+++ b/app/bin/dease.c
@@ -1,8 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/dease.c,v 1.3 2008-03-06 19:35:08 m_fischer Exp $
- *
+/** \file dease.c
* Easement Button Hdlrs
- *
*/
/* XTrkCad - Model Railroad CAD
@@ -23,12 +20,15 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#include <math.h>
-#include "track.h"
#include "ccurve.h"
-#include "cstraigh.h"
#include "cjoin.h"
+#include "cstraigh.h"
+#include "custom.h"
#include "i18n.h"
+#include "param.h"
+#include "track.h"
static wButton_p easementB;
@@ -42,11 +42,13 @@ static DIST_T oldEasementVal;
static wIcon_p enone_bm;
static wIcon_p esharp_bm;
static wIcon_p egtsharp_bm;
+static wIcon_p eltsharp_bm;
static wIcon_p enormal_bm;
static wIcon_p eltbroad_bm;
static wIcon_p ebroad_bm;
static wIcon_p egtbroad_bm;
-
+static wIcon_p ecornu_bm;
+
/****************************************
*
* EASEMENTW
@@ -60,14 +62,14 @@ static void SetEasement( DIST_T, void * );
static void EasementOk( void );
static void EasementCancel( void );
-static char *easementChoiceLabels[] = { N_("None"), N_("Sharp"), N_("Normal"), N_("Broad"), NULL };
-static paramFloatRange_t r0o5_2 = { 0.5, 2.0, 60 };
+static char *easementChoiceLabels[] = { N_("None"), N_("Sharp"), N_("Normal"), N_("Broad"), N_("Cornu"), NULL };
+static paramFloatRange_t r0n1_100 = { -1.0, 100.0, 60 };
static paramFloatRange_t r0_100 = { 0.0, 100.0, 60 };
static paramFloatRange_t r0_10 = { 0.0, 10.0, 60 };
static long easeM;
static paramData_t easementPLs[] = {
#define I_EASEVAL (0)
- { PD_FLOAT, &easementVal, "val", PDO_NOPSHUPD, &r0o5_2, N_("Value") },
+ { PD_FLOAT, &easementVal, "val", PDO_NOPSHUPD, &r0n1_100, N_("Value") },
{ PD_FLOAT, &easeR, "r", PDO_DIM|PDO_DLGRESETMARGIN, &r0_100, N_("R"), BO_READONLY },
{ PD_FLOAT, &easeX, "x", PDO_DIM|PDO_DLGHORZ, &r0_10, N_("X"), BO_READONLY },
{ PD_FLOAT, &easeL, "l", PDO_DIM|PDO_DLGHORZ, &r0_100, N_("L"), BO_READONLY },
@@ -87,42 +89,57 @@ static void SetEasement(
long selVal = -1;
wIcon_p bm;
- if (val == 0.0) {
+ if (val < 0.0) {
easeX = easeR = easeL = 0.0;
- selVal = 0;
- bm = enone_bm;
- } else if (val <= 1.0) {
- z = 1.0/val - 1.0;
- easeR = Rvalues[1] - z * (Rvalues[1] - Rvalues[0]);
- easeL = Lvalues[1] - z * (Lvalues[1] - Lvalues[0]);
- if (easeR != 0.0)
- easeX = easeL*easeL/(24*easeR);
- else
- easeX = 0.0;
- if (val == 1.0) {
- selVal = 2;
- bm = enormal_bm;
- } else if (val == 0.5) {
- selVal = 1;
- bm = esharp_bm;
- } else {
- bm = egtsharp_bm;
- }
+ selVal = 4;
+ val = -1;
+ bm = ecornu_bm;
} else {
- z = val - 1.0;
- easeR = Rvalues[1] + z * (Rvalues[2] - Rvalues[1]);
- easeL = Lvalues[1] + z * (Lvalues[2] - Lvalues[1]);
- if (easeR != 0.0)
- easeX = easeL*easeL/(24*easeR);
- else
- easeX = 0.0;
- if (val == 2.0) {
- selVal = 3;
- bm = ebroad_bm;
- } else if (val < 2.0) {
- bm = eltbroad_bm;
+ if (val == 0.0) {
+ easeX = easeR = easeL = 0.0;
+ selVal = 0;
+ val = 0;
+ bm = enone_bm;
+ } else if (val <= 1.0) {
+ if (val < 0.21) val = 0.21; //Eliminate values that give negative radii
+ z = 1.0/val - 1.0;
+ easeR = Rvalues[1] - z * (Rvalues[1] - Rvalues[0]);
+ easeL = Lvalues[1] - z * (Lvalues[1] - Lvalues[0]);
+ if (easeR != 0.0)
+ easeX = easeL*easeL/(24*easeR);
+ else
+ easeX = 0.0;
+ if (val == 1.0) {
+ selVal = 2;
+ bm = enormal_bm;
+ } else if (val == 0.5) {
+ selVal = 1;
+ bm = esharp_bm;
+ } else if (val < 0.5) {
+ bm = eltsharp_bm;
+ selVal = 1;
+ } else {
+ selVal = 1;
+ bm = egtsharp_bm;
+ }
} else {
- bm = egtbroad_bm;
+ z = val - 1.0;
+ easeR = Rvalues[1] + z * (Rvalues[2] - Rvalues[1]);
+ easeL = Lvalues[1] + z * (Lvalues[2] - Lvalues[1]);
+ if (easeR != 0.0)
+ easeX = easeL*easeL/(24*easeR);
+ else
+ easeX = 0.0;
+ if (val == 2.0) {
+ selVal = 3;
+ bm = ebroad_bm;
+ } else if (val < 2.0) {
+ selVal = 3;
+ bm = eltbroad_bm;
+ } else {
+ selVal = 3;
+ bm = egtbroad_bm;
+ }
}
}
@@ -177,6 +194,9 @@ static void EasementSel(
case 3:
val = 2.0;
break;
+ case 4:
+ val = -1.0;
+ break;
default:
AbortProg( "easementSel: bad value %ld", arg);
val = 0.0;
@@ -241,10 +261,12 @@ static void EasementChange( long changes )
#include "bitmaps/enone.xpm"
#include "bitmaps/esharp.xpm"
#include "bitmaps/egtsharp.xpm"
+#include "bitmaps/eltsharp.xpm"
#include "bitmaps/enormal.xpm"
#include "bitmaps/eltbroad.xpm"
#include "bitmaps/ebroad.xpm"
#include "bitmaps/egtbroad.xpm"
+#include "bitmaps/ecornu.xpm"
EXPORT addButtonCallBack_t EasementInit( void )
@@ -252,12 +274,14 @@ EXPORT addButtonCallBack_t EasementInit( void )
ParamRegister( &easementPG );
enone_bm = wIconCreatePixMap( enone_xpm );
+ eltsharp_bm = wIconCreatePixMap( eltsharp_xpm );
esharp_bm = wIconCreatePixMap( esharp_xpm );
egtsharp_bm = wIconCreatePixMap( egtsharp_xpm );
enormal_bm = wIconCreatePixMap( enormal_xpm );
eltbroad_bm = wIconCreatePixMap( eltbroad_xpm );
ebroad_bm = wIconCreatePixMap( ebroad_xpm );
egtbroad_bm = wIconCreatePixMap( egtbroad_xpm );
+ ecornu_bm = wIconCreatePixMap( ecornu_xpm );
easementB = AddToolbarButton( "cmdEasement", enone_bm, 0, (addButtonCallBack_t)DoEasementRedir, NULL );
RegisterChangeNotification( EasementChange );
diff --git a/app/bin/denum.c b/app/bin/denum.c
index d27a135..b353627 100644
--- a/app/bin/denum.c
+++ b/app/bin/denum.c
@@ -20,16 +20,18 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#include <assert.h>
+#include <string.h>
#include <time.h>
-#include "track.h"
-#include "i18n.h"
-
-/****************************************************************************
- *
- * ENUMERATE
- *
- */
+#include "custom.h"
+#include "fileio.h"
+#include "layout.h"
+#include "i18n.h"
+#include "param.h"
+#include "paths.h"
+#include "track.h"
+#include "utility.h"
static wWin_p enumW;
@@ -37,6 +39,9 @@ static wWin_p enumW;
#define ENUMOP_PRINT (5)
#define ENUMOP_CLOSE (6)
+#undef max
+#define max(a,b) (((a) > (b)) ? (a) : (b))
+
static void DoEnumOp( void * );
static long enableListPrices;
@@ -83,7 +88,7 @@ static void DoEnumOp(
{
switch( (int)(long)data ) {
case ENUMOP_SAVE:
- wFilSelect( enumFile_fs, curDirName );
+ wFilSelect( enumFile_fs, GetCurrentPath(PARTLISTPATHKEY) );
break;
case ENUMOP_PRINT:
wTextPrint( enumT );
@@ -151,13 +156,13 @@ void EnumerateStart(void)
message[0] = '\0';
cp = message;
- if ( Title1[0] ) {
- strcpy( cp, Title1 );
+ if ( *GetLayoutTitle() ) {
+ strcpy( cp, GetLayoutTitle() );
cp += strlen(cp);
*cp++ = '\n';
}
- if ( Title2[0] ) {
- strcpy( cp, Title2 );
+ if ( *GetLayoutSubtitle() ) {
+ strcpy( cp, GetLayoutSubtitle());
cp += strlen(cp);
*cp++ = '\n';
}
diff --git a/app/bin/dlayer.c b/app/bin/dlayer.c
index c79d783..71d151e 100644
--- a/app/bin/dlayer.c
+++ b/app/bin/dlayer.c
@@ -1,7 +1,5 @@
/** \file dlayer.c
* Functions and dialogs for handling layers.
- *
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/dlayer.c,v 1.9 2009-06-15 19:29:57 m_fischer Exp $
*/
/* XTrkCad - Model Railroad CAD
@@ -23,12 +21,17 @@
*/
#include <assert.h>
-
-#include "track.h"
-#include "i18n.h"
-
+#include <stdbool.h>
#include <stdint.h>
+#include <string.h>
+#include "custom.h"
+#include "dynstring.h"
+#include "fileio.h"
+#include "i18n.h"
+#include "messages.h"
+#include "param.h"
+#include "track.h"
/*****************************************************************************
*
@@ -45,195 +48,208 @@
#define LAYERPREF_COLOR "color"
#define LAYERPREF_FLAGS "flags"
-EXPORT LAYER_T curLayer;
-EXPORT long layerCount = 10;
+unsigned int curLayer;
+long layerCount = 10;
static long newLayerCount = 10;
-static LAYER_T layerCurrent = NUM_LAYERS;
+static unsigned int layerCurrent = NUM_LAYERS;
static BOOL_T layoutLayerChanged = FALSE;
-static wIcon_p show_layer_bmps[NUM_BUTTONS];
-/*static wIcon_p hide_layer_bmps[NUM_BUTTONS]; */
+static wIcon_p show_layer_bmps[NUM_BUTTONS];
static wButton_p layer_btns[NUM_BUTTONS]; /**< layer buttons on toolbar */
/** Layer selector on toolbar */
-static wList_p setLayerL;
+static wList_p setLayerL;
-/*static wMessage_p layerNumM;*/
/** Describe the properties of a layer */
typedef struct {
- char name[STR_SHORT_SIZE]; /**< Layer name */
- wDrawColor color; /**< layer color, is an index into a color table */
- BOOL_T frozen; /**< Frozen flag */
- BOOL_T visible; /**< visible flag */
- BOOL_T onMap; /**< is layer shown map */
- long objCount; /**< number of objects on layer */
- } layer_t;
-
+ char name[STR_SHORT_SIZE]; /**< Layer name */
+ wDrawColor color; /**< layer color, is an index into a color table */
+ BOOL_T frozen; /**< Frozen flag */
+ BOOL_T visible; /**< visible flag */
+ BOOL_T onMap; /**< is layer shown map */
+ long objCount; /**< number of objects on layer */
+} layer_t;
+
static layer_t layers[NUM_LAYERS];
static layer_t *layers_save = NULL;
static int oldColorMap[][3] = {
- { 255, 255, 255 }, /* White */
- { 0, 0, 0 }, /* Black */
- { 255, 0, 0 }, /* Red */
- { 0, 255, 0 }, /* Green */
- { 0, 0, 255 }, /* Blue */
- { 255, 255, 0 }, /* Yellow */
- { 255, 0, 255 }, /* Purple */
- { 0, 255, 255 }, /* Aqua */
- { 128, 0, 0 }, /* Dk. Red */
- { 0, 128, 0 }, /* Dk. Green */
- { 0, 0, 128 }, /* Dk. Blue */
- { 128, 128, 0 }, /* Dk. Yellow */
- { 128, 0, 128 }, /* Dk. Purple */
- { 0, 128, 128 }, /* Dk. Aqua */
- { 65, 105, 225 }, /* Royal Blue */
- { 0, 191, 255 }, /* DeepSkyBlue */
- { 125, 206, 250 }, /* LightSkyBlue */
- { 70, 130, 180 }, /* Steel Blue */
- { 176, 224, 230 }, /* Powder Blue */
- { 127, 255, 212 }, /* Aquamarine */
- { 46, 139, 87 }, /* SeaGreen */
- { 152, 251, 152 }, /* PaleGreen */
- { 124, 252, 0 }, /* LawnGreen */
- { 50, 205, 50 }, /* LimeGreen */
- { 34, 139, 34 }, /* ForestGreen */
- { 255, 215, 0 }, /* Gold */
- { 188, 143, 143 }, /* RosyBrown */
- { 139, 69, 19 }, /* SaddleBrown */
- { 245, 245, 220 }, /* Beige */
- { 210, 180, 140 }, /* Tan */
- { 210, 105, 30 }, /* Chocolate */
- { 165, 42, 42 }, /* Brown */
- { 255, 165, 0 }, /* Orange */
- { 255, 127, 80 }, /* Coral */
- { 255, 99, 71 }, /* Tomato */
- { 255, 105, 180 }, /* HotPink */
- { 255, 192, 203 }, /* Pink */
- { 176, 48, 96 }, /* Maroon */
- { 238, 130, 238 }, /* Violet */
- { 160, 32, 240 }, /* Purple */
- { 16, 16, 16 }, /* Gray */
- { 32, 32, 32 }, /* Gray */
- { 48, 48, 48 }, /* Gray */
- { 64, 64, 64 }, /* Gray */
- { 80, 80, 80 }, /* Gray */
- { 96, 96, 96 }, /* Gray */
- { 112, 112, 122 }, /* Gray */
- { 128, 128, 128 }, /* Gray */
- { 144, 144, 144 }, /* Gray */
- { 160, 160, 160 }, /* Gray */
- { 176, 176, 176 }, /* Gray */
- { 192, 192, 192 }, /* Gray */
- { 208, 208, 208 }, /* Gray */
- { 224, 224, 224 }, /* Gray */
- { 240, 240, 240 }, /* Gray */
- { 0, 0, 0 } /* BlackPixel */
- };
-
-static void DoLayerOp( void * data );
+ { 255, 255, 255 }, /* White */
+ { 0, 0, 0 }, /* Black */
+ { 255, 0, 0 }, /* Red */
+ { 0, 255, 0 }, /* Green */
+ { 0, 0, 255 }, /* Blue */
+ { 255, 255, 0 }, /* Yellow */
+ { 255, 0, 255 }, /* Purple */
+ { 0, 255, 255 }, /* Aqua */
+ { 128, 0, 0 }, /* Dk. Red */
+ { 0, 128, 0 }, /* Dk. Green */
+ { 0, 0, 128 }, /* Dk. Blue */
+ { 128, 128, 0 }, /* Dk. Yellow */
+ { 128, 0, 128 }, /* Dk. Purple */
+ { 0, 128, 128 }, /* Dk. Aqua */
+ { 65, 105, 225 }, /* Royal Blue */
+ { 0, 191, 255 }, /* DeepSkyBlue */
+ { 125, 206, 250 }, /* LightSkyBlue */
+ { 70, 130, 180 }, /* Steel Blue */
+ { 176, 224, 230 }, /* Powder Blue */
+ { 127, 255, 212 }, /* Aquamarine */
+ { 46, 139, 87 }, /* SeaGreen */
+ { 152, 251, 152 }, /* PaleGreen */
+ { 124, 252, 0 }, /* LawnGreen */
+ { 50, 205, 50 }, /* LimeGreen */
+ { 34, 139, 34 }, /* ForestGreen */
+ { 255, 215, 0 }, /* Gold */
+ { 188, 143, 143 }, /* RosyBrown */
+ { 139, 69, 19 }, /* SaddleBrown */
+ { 245, 245, 220 }, /* Beige */
+ { 210, 180, 140 }, /* Tan */
+ { 210, 105, 30 }, /* Chocolate */
+ { 165, 42, 42 }, /* Brown */
+ { 255, 165, 0 }, /* Orange */
+ { 255, 127, 80 }, /* Coral */
+ { 255, 99, 71 }, /* Tomato */
+ { 255, 105, 180 }, /* HotPink */
+ { 255, 192, 203 }, /* Pink */
+ { 176, 48, 96 }, /* Maroon */
+ { 238, 130, 238 }, /* Violet */
+ { 160, 32, 240 }, /* Purple */
+ { 16, 16, 16 }, /* Gray */
+ { 32, 32, 32 }, /* Gray */
+ { 48, 48, 48 }, /* Gray */
+ { 64, 64, 64 }, /* Gray */
+ { 80, 80, 80 }, /* Gray */
+ { 96, 96, 96 }, /* Gray */
+ { 112, 112, 122 }, /* Gray */
+ { 128, 128, 128 }, /* Gray */
+ { 144, 144, 144 }, /* Gray */
+ { 160, 160, 160 }, /* Gray */
+ { 176, 176, 176 }, /* Gray */
+ { 192, 192, 192 }, /* Gray */
+ { 208, 208, 208 }, /* Gray */
+ { 224, 224, 224 }, /* Gray */
+ { 240, 240, 240 }, /* Gray */
+ { 0, 0, 0 } /* BlackPixel */
+};
+
+static void DoLayerOp(void * data);
static void UpdateLayerDlg(void);
-/* static void LoadLayerLists(); */
-static void LayerSetCounts();
-static void InitializeLayers( void LayerInitFunc( void ), int newCurrLayer );
-static void LayerPrefSave( void );
-static void LayerPrefLoad( void );
-EXPORT BOOL_T GetLayerVisible( LAYER_T layer )
+static void InitializeLayers(void LayerInitFunc(void), int newCurrLayer);
+static void LayerPrefSave(void);
+static void LayerPrefLoad(void);
+
+int IsLayerValid(unsigned int layer)
{
- if (layer < 0 || layer >= NUM_LAYERS)
- return TRUE;
- else
- return layers[(int)layer].visible;
+ return (layer <= NUM_LAYERS);
}
-
-EXPORT BOOL_T GetLayerFrozen( LAYER_T layer )
+BOOL_T GetLayerVisible(unsigned int layer)
{
- if (layer < 0 || layer >= NUM_LAYERS)
- return TRUE;
- else
- return layers[(int)layer].frozen;
+ if (!IsLayerValid(layer)) {
+ return TRUE;
+ } else {
+ return layers[layer].visible;
+ }
}
-EXPORT BOOL_T GetLayerOnMap( LAYER_T layer )
+BOOL_T GetLayerFrozen(unsigned int layer)
{
- if (layer < 0 || layer >= NUM_LAYERS)
- return TRUE;
- else
- return layers[(int)layer].onMap;
+ if (!IsLayerValid(layer)) {
+ return TRUE;
+ } else {
+ return layers[layer].frozen;
+ }
}
-EXPORT char * GetLayerName( LAYER_T layer )
+BOOL_T GetLayerOnMap(unsigned int layer)
{
- if (layer < 0 || layer >= NUM_LAYERS)
- return NULL;
- else
- return layers[(int)layer].name;
+ if (!IsLayerValid(layer)) {
+ return TRUE;
+ } else {
+ return layers[layer].onMap;
+ }
}
-EXPORT void NewLayer( void )
+char * GetLayerName(unsigned int layer)
{
+ if (!IsLayerValid(layer)) {
+ return NULL;
+ } else {
+ return layers[layer].name;
+ }
}
-
-EXPORT wDrawColor GetLayerColor( LAYER_T layer )
+wDrawColor GetLayerColor(unsigned int layer)
{
- return layers[(int)layer].color;
+ return layers[layer].color;
}
-static void FlipLayer( void * arg )
+static void FlipLayer(unsigned int layer)
{
- LAYER_T l = (LAYER_T)(long)arg;
- wBool_t visible;
- if ( l < 0 || l >= NUM_LAYERS )
- return;
- if ( l == curLayer && layers[(int)l].visible) {
- wButtonSetBusy( layer_btns[(int)l], layers[(int)l].visible );
- NoticeMessage( MSG_LAYER_HIDE, _("Ok"), NULL );
- return;
- }
- RedrawLayer( l, FALSE );
- visible = !layers[(int)l].visible;
- layers[(int)l].visible = visible;
- if (l<NUM_BUTTONS) {
- wButtonSetBusy( layer_btns[(int)l], visible != 0 );
- wButtonSetLabel( layer_btns[(int)l], (char *)show_layer_bmps[(int)l]);
- }
- RedrawLayer( l, TRUE );
+ wBool_t visible;
+
+ if (!IsLayerValid(layer)) {
+ return;
+ }
+
+ if (layer == curLayer && layers[layer].visible) {
+ wButtonSetBusy(layer_btns[layer], layers[layer].visible);
+ NoticeMessage(MSG_LAYER_HIDE, _("Ok"), NULL);
+ return;
+ }
+
+ RedrawLayer(layer, FALSE);
+ visible = !layers[layer].visible;
+ layers[layer].visible = visible;
+
+ if (layer<NUM_BUTTONS) {
+ wButtonSetBusy(layer_btns[layer], visible != 0);
+ wButtonSetLabel(layer_btns[layer], (char *)show_layer_bmps[layer]);
+ }
+
+ RedrawLayer(layer, TRUE);
}
-static void SetCurrLayer( wIndex_t inx, const char * name, wIndex_t op, void * listContext, void * arg )
+static void SetCurrLayer(wIndex_t inx, const char * name, wIndex_t op,
+ void * listContext, void * arg)
{
- LAYER_T newLayer = (LAYER_T)(long)inx;
- if (layers[(int)newLayer].frozen) {
- NoticeMessage( MSG_LAYER_SEL_FROZEN, _("Ok"), NULL );
- wListSetIndex( setLayerL, curLayer );
- return;
- }
- curLayer = newLayer;
-
- if ( curLayer < 0 || curLayer >= NUM_LAYERS )
- curLayer = 0;
- if ( !layers[(int)curLayer].visible )
- FlipLayer( (void*)(intptr_t)inx );
- if ( recordF )
- fprintf( recordF, "SETCURRLAYER %d\n", inx );
+ unsigned int newLayer = (unsigned int)inx;
+
+ if (layers[newLayer].frozen) {
+ NoticeMessage(MSG_LAYER_SEL_FROZEN, _("Ok"), NULL);
+ wListSetIndex(setLayerL, curLayer);
+ return;
+ }
+
+ curLayer = newLayer;
+
+ if (!IsLayerValid(curLayer)) {
+ curLayer = 0;
+ }
+
+ if (!layers[curLayer].visible) {
+ FlipLayer(inx);
+ }
+
+ if (recordF) {
+ fprintf(recordF, "SETCURRLAYER %d\n", inx);
+ }
}
-static void PlaybackCurrLayer( char * line )
+static void PlaybackCurrLayer(char * line)
{
- wIndex_t layer;
- layer = atoi(line);
- wListSetIndex( setLayerL, layer );
- SetCurrLayer( layer, NULL, 0, NULL, NULL );
+ wIndex_t layer;
+ layer = atoi(line);
+ wListSetIndex(setLayerL, layer);
+ SetCurrLayer(layer, NULL, 0, NULL, NULL);
}
/**
@@ -243,19 +259,35 @@ static void PlaybackCurrLayer( char * line )
* \param color IN new color
*/
-static void SetLayerColor( int inx, wDrawColor color )
+static void SetLayerColor(unsigned int inx, wDrawColor color)
+{
+ if (color != layers[inx].color) {
+ if (inx < NUM_BUTTONS) {
+ wIconSetColor(show_layer_bmps[inx], color);
+ wButtonSetLabel(layer_btns[inx], (char*)show_layer_bmps[inx]);
+ }
+
+ layers[inx].color = color;
+ layoutLayerChanged = TRUE;
+ }
+}
+
+char *
+FormatLayerName(unsigned int layerNumber)
{
- if ( color != layers[inx].color ) {
- if (inx < NUM_BUTTONS) {
- wIconSetColor( show_layer_bmps[inx], color );
- wButtonSetLabel( layer_btns[inx], (char*)show_layer_bmps[inx] );
- }
- layers[inx].color = color;
- layoutLayerChanged = TRUE;
- }
+ DynString string;// = NaS;
+ char *result;
+ DynStringMalloc(&string, 0);
+ DynStringPrintf(&string,
+ "%2d %c %s",
+ layerNumber + 1,
+ (layers[layerNumber].objCount > 0 ? '+' : '-'),
+ layers[layerNumber].name);
+ result = strdup(DynStringToCStr(&string));
+ DynStringFree(&string);
+ return result;
}
-
#include "bitmaps/l1.xbm"
#include "bitmaps/l2.xbm"
@@ -359,31 +391,32 @@ static void SetLayerColor( int inx, wDrawColor color )
static char * show_layer_bits[NUM_BUTTONS] = {
- l1_bits, l2_bits, l3_bits, l4_bits, l5_bits, l6_bits, l7_bits, l8_bits, l9_bits, l10_bits,
- l11_bits, l12_bits, l13_bits, l14_bits, l15_bits, l16_bits, l17_bits, l18_bits, l19_bits, l20_bits,
- l21_bits, l22_bits, l23_bits, l24_bits, l25_bits, l26_bits, l27_bits, l28_bits, l29_bits, l30_bits,
- l31_bits, l32_bits, l33_bits, l34_bits, l35_bits, l36_bits, l37_bits, l38_bits, l39_bits, l40_bits,
- l41_bits, l42_bits, l43_bits, l44_bits, l45_bits, l46_bits, l47_bits, l48_bits, l49_bits, l50_bits,
- l51_bits, l52_bits, l53_bits, l54_bits, l55_bits, l56_bits, l57_bits, l58_bits, l59_bits, l60_bits,
- l61_bits, l62_bits, l63_bits, l64_bits, l65_bits, l66_bits, l67_bits, l68_bits, l69_bits, l70_bits,
- l71_bits, l72_bits, l73_bits, l74_bits, l75_bits, l76_bits, l77_bits, l78_bits, l79_bits, l80_bits,
- l81_bits, l82_bits, l83_bits, l84_bits, l85_bits, l86_bits, l87_bits, l88_bits, l89_bits, l90_bits,
- l91_bits, l92_bits, l93_bits, l94_bits, l95_bits, l96_bits, l97_bits, l98_bits, l99_bits,
+ l1_bits, l2_bits, l3_bits, l4_bits, l5_bits, l6_bits, l7_bits, l8_bits, l9_bits, l10_bits,
+ l11_bits, l12_bits, l13_bits, l14_bits, l15_bits, l16_bits, l17_bits, l18_bits, l19_bits, l20_bits,
+ l21_bits, l22_bits, l23_bits, l24_bits, l25_bits, l26_bits, l27_bits, l28_bits, l29_bits, l30_bits,
+ l31_bits, l32_bits, l33_bits, l34_bits, l35_bits, l36_bits, l37_bits, l38_bits, l39_bits, l40_bits,
+ l41_bits, l42_bits, l43_bits, l44_bits, l45_bits, l46_bits, l47_bits, l48_bits, l49_bits, l50_bits,
+ l51_bits, l52_bits, l53_bits, l54_bits, l55_bits, l56_bits, l57_bits, l58_bits, l59_bits, l60_bits,
+ l61_bits, l62_bits, l63_bits, l64_bits, l65_bits, l66_bits, l67_bits, l68_bits, l69_bits, l70_bits,
+ l71_bits, l72_bits, l73_bits, l74_bits, l75_bits, l76_bits, l77_bits, l78_bits, l79_bits, l80_bits,
+ l81_bits, l82_bits, l83_bits, l84_bits, l85_bits, l86_bits, l87_bits, l88_bits, l89_bits, l90_bits,
+ l91_bits, l92_bits, l93_bits, l94_bits, l95_bits, l96_bits, l97_bits, l98_bits, l99_bits,
};
-static EXPORT long layerRawColorTab[] = {
- wRGB( 0, 0,255), /* blue */
- wRGB( 0, 0,128), /* dk blue */
- wRGB( 0,128, 0), /* dk green */
- wRGB(255,255, 0), /* yellow */
- wRGB( 0,255, 0), /* green */
- wRGB( 0,255,255), /* lt cyan */
- wRGB(128, 0, 0), /* brown */
- wRGB(128, 0,128), /* purple */
- wRGB(128,128, 0), /* green-brown */
- wRGB(255, 0,255)}; /* lt-purple */
-static EXPORT wDrawColor layerColorTab[COUNT(layerRawColorTab)];
+static long layerRawColorTab[] = {
+ wRGB(0, 0,255), /* blue */
+ wRGB(0, 0,128), /* dk blue */
+ wRGB(0,128, 0), /* dk green */
+ wRGB(255,255, 0), /* yellow */
+ wRGB(0,255, 0), /* green */
+ wRGB(0,255,255), /* lt cyan */
+ wRGB(128, 0, 0), /* brown */
+ wRGB(128, 0,128), /* purple */
+ wRGB(128,128, 0), /* green-brown */
+ wRGB(255, 0,255)
+}; /* lt-purple */
+static wDrawColor layerColorTab[COUNT(layerRawColorTab)];
static wWin_p layerW;
@@ -392,7 +425,7 @@ static wDrawColor layerColor;
static long layerVisible = TRUE;
static long layerFrozen = FALSE;
static long layerOnMap = TRUE;
-static void LayerOk( void * );
+static void LayerOk(void *);
static BOOL_T layerRedrawMap = FALSE;
#define ENUMLAYER_RELOAD (1)
@@ -406,24 +439,24 @@ static paramIntegerRange_t i0_20 = { 0, NUM_BUTTONS };
static paramData_t layerPLs[] = {
#define I_LIST (0)
- { PD_DROPLIST, NULL, "layer", PDO_LISTINDEX|PDO_DLGNOLABELALIGN, (void*)250 },
+ { PD_DROPLIST, NULL, "layer", PDO_LISTINDEX|PDO_DLGNOLABELALIGN, (void*)250 },
#define I_NAME (1)
- { PD_STRING, layerName, "name", PDO_NOPREF, (void*)(250-54), N_("Name") },
+ { PD_STRING, layerName, "name", PDO_NOPREF, (void*)(250-54), N_("Name") },
#define I_COLOR (2)
- { PD_COLORLIST, &layerColor, "color", PDO_NOPREF, NULL, N_("Color") },
+ { PD_COLORLIST, &layerColor, "color", PDO_NOPREF, NULL, N_("Color") },
#define I_VIS (3)
- { PD_TOGGLE, &layerVisible, "visible", PDO_NOPREF, visibleLabels, N_("Visible"), BC_HORZ|BC_NOBORDER },
+ { PD_TOGGLE, &layerVisible, "visible", PDO_NOPREF, visibleLabels, N_("Visible"), BC_HORZ|BC_NOBORDER },
#define I_FRZ (4)
- { PD_TOGGLE, &layerFrozen, "frozen", PDO_NOPREF|PDO_DLGHORZ, frozenLabels, N_("Frozen"), BC_HORZ|BC_NOBORDER },
+ { PD_TOGGLE, &layerFrozen, "frozen", PDO_NOPREF|PDO_DLGHORZ, frozenLabels, N_("Frozen"), BC_HORZ|BC_NOBORDER },
#define I_MAP (5)
- { PD_TOGGLE, &layerOnMap, "onmap", PDO_NOPREF|PDO_DLGHORZ, onMapLabels, N_("On Map"), BC_HORZ|BC_NOBORDER },
+ { PD_TOGGLE, &layerOnMap, "onmap", PDO_NOPREF|PDO_DLGHORZ, onMapLabels, N_("On Map"), BC_HORZ|BC_NOBORDER },
#define I_COUNT (6)
- { PD_STRING, NULL, "object-count", PDO_NOPREF|PDO_DLGBOXEND, (void*)(80), N_("Count"), BO_READONLY },
- { PD_MESSAGE, N_("Personal Preferences"), NULL, PDO_DLGRESETMARGIN, (void *)180 },
- { PD_BUTTON, (void*)DoLayerOp, "reset", PDO_DLGRESETMARGIN, 0, N_("Load"), 0, (void *)ENUMLAYER_RELOAD },
- { PD_BUTTON, (void*)DoLayerOp, "save", PDO_DLGHORZ, 0, N_("Save"), 0, (void *)ENUMLAYER_SAVE },
- { PD_BUTTON, (void*)DoLayerOp, "clear", PDO_DLGHORZ | PDO_DLGBOXEND, 0, N_("Defaults"), 0, (void *)ENUMLAYER_CLEAR },
- { PD_LONG, &newLayerCount, "button-count", PDO_DLGBOXEND|PDO_DLGRESETMARGIN, &i0_20, N_("Number of Layer Buttons") },
+ { PD_STRING, NULL, "object-count", PDO_NOPREF|PDO_DLGBOXEND, (void*)(80), N_("Count"), BO_READONLY },
+ { PD_MESSAGE, N_("Personal Preferences"), NULL, PDO_DLGRESETMARGIN, (void *)180 },
+ { PD_BUTTON, (void*)DoLayerOp, "reset", PDO_DLGRESETMARGIN, 0, N_("Load"), 0, (void *)ENUMLAYER_RELOAD },
+ { PD_BUTTON, (void*)DoLayerOp, "save", PDO_DLGHORZ, 0, N_("Save"), 0, (void *)ENUMLAYER_SAVE },
+ { PD_BUTTON, (void*)DoLayerOp, "clear", PDO_DLGHORZ | PDO_DLGBOXEND, 0, N_("Defaults"), 0, (void *)ENUMLAYER_CLEAR },
+ { PD_LONG, &newLayerCount, "button-count", PDO_DLGBOXEND|PDO_DLGRESETMARGIN, &i0_20, N_("Number of Layer Buttons") },
};
static paramGroup_t layerPG = { "layer", 0, layerPLs, sizeof layerPLs/sizeof layerPLs[0] };
@@ -433,120 +466,125 @@ static paramGroup_t layerPG = { "layer", 0, layerPLs, sizeof layerPLs/sizeof lay
/**
* Load the layer settings to hard coded system defaults
*/
-
+
void
-LayerSystemDefaults( void )
+LayerSystemDefaults(void)
{
- int inx;
-
- for ( inx=0;inx<NUM_LAYERS; inx++ ) {
- strcpy( layers[inx].name, inx==0?_("Main"):"" );
- layers[inx].visible = TRUE;
- layers[inx].frozen = FALSE;
- layers[inx].onMap = TRUE;
- layers[inx].objCount = 0;
- SetLayerColor( inx, layerColorTab[inx%COUNT(layerColorTab)] );
- }
+ int inx;
+
+ for (inx=0; inx<NUM_LAYERS; inx++) {
+ strcpy(layers[inx].name, inx==0?_("Main"):"");
+ layers[inx].visible = TRUE;
+ layers[inx].frozen = FALSE;
+ layers[inx].onMap = TRUE;
+ layers[inx].objCount = 0;
+ SetLayerColor(inx, layerColorTab[inx%COUNT(layerColorTab)]);
+ }
}
/**
- * Load the layer listboxes in Manage Layers and the Toolbar with up-to-date information.
+ * Load the layer listboxes in Manage Layers and the Toolbar with up-to-date information.
*/
-EXPORT void LoadLayerLists( void )
+void LoadLayerLists(void)
{
- int inx;
-
- /* clear both lists */
- wListClear(setLayerL);
- if ( layerL )
- wListClear(layerL);
-
- /* add all layers to both lists */
- for ( inx=0; inx<NUM_LAYERS; inx++ ) {
-
- if ( layerL ) {
- sprintf( message, "%2d %c %s", inx+1, layers[inx].objCount>0?'+':'-', layers[inx].name );
- wListAddValue( layerL, message, NULL, NULL );
- }
-
- sprintf( message, "%2d : %s", inx+1, layers[inx].name );
- wListAddValue( setLayerL, message, NULL, NULL );
- }
-
- /* set current layer to selected */
- wListSetIndex( setLayerL, curLayer );
- if ( layerL )
- wListSetIndex( layerL, curLayer );
+ int inx;
+ /* clear both lists */
+ wListClear(setLayerL);
+
+ if (layerL) {
+ wListClear(layerL);
+ }
+
+ /* add all layers to both lists */
+ for (inx=0; inx<NUM_LAYERS; inx++) {
+ char *layerLabel;
+ layerLabel = FormatLayerName(inx);
+
+ if (layerL) {
+ wListAddValue(layerL, layerLabel, NULL, NULL);
+ }
+
+ wListAddValue(setLayerL, layerLabel, NULL, NULL);
+ free(layerLabel);
+ }
+
+ /* set current layer to selected */
+ wListSetIndex(setLayerL, curLayer);
+
+ if (layerL) {
+ wListSetIndex(layerL, curLayer);
+ }
}
/**
* Handle button presses for the layer dialog. For all button presses in the layer
* dialog, this function is called. The parameter identifies the button pressed and
- * the operation is performed.
+ * the operation is performed.
*
* \param[IN] data identifier for the button prerssed
- * \return
+ * \return
*/
-static void DoLayerOp( void * data )
+static void DoLayerOp(void * data)
{
- switch((long)data ) {
-
- case ENUMLAYER_CLEAR:
- InitializeLayers( LayerSystemDefaults, -1 );
- break;
- case ENUMLAYER_SAVE:
- LayerPrefSave();
- break;
- case ENUMLAYER_RELOAD:
- LayerPrefLoad();
- break;
- }
-
- UpdateLayerDlg();
- if( layoutLayerChanged ) {
- MainProc( mainW, wResize_e, NULL );
- layoutLayerChanged = FALSE;
- changed = TRUE;
- SetWindowTitle();
- }
+ switch ((long)data) {
+ case ENUMLAYER_CLEAR:
+ InitializeLayers(LayerSystemDefaults, -1);
+ break;
+
+ case ENUMLAYER_SAVE:
+ LayerPrefSave();
+ break;
+
+ case ENUMLAYER_RELOAD:
+ LayerPrefLoad();
+ break;
+ }
+
+ UpdateLayerDlg();
+
+ if (layoutLayerChanged) {
+ MainProc(mainW, wResize_e, NULL);
+ layoutLayerChanged = FALSE;
+ changed = TRUE;
+ SetWindowTitle();
+ }
}
/**
- * Update all dialogs and dialog elements after changing layers preferences. Once the global array containing
+ * Update all dialogs and dialog elements after changing layers preferences. Once the global array containing
* the settings for the labels has been changed, this function needs to be called to update all the user interface
* elements to the new settings.
*/
-static void
+static void
UpdateLayerDlg()
{
- int inx;
-
- /* update the globals for the layer dialog */
- layerVisible = layers[curLayer].visible;
- layerFrozen = layers[curLayer].frozen;
- layerOnMap = layers[curLayer].onMap;
- layerColor = layers[curLayer].color;
- strcpy( layerName, layers[curLayer].name );
- layerCurrent = curLayer;
-
- /* now re-load the layer list boxes */
- LoadLayerLists();
-
- sprintf( message, "%ld", layers[curLayer].objCount );
- ParamLoadMessage( &layerPG, I_COUNT, message );
-
- /* force update of the 'manage layers' dialogbox */
- if( layerL )
- ParamLoadControls( &layerPG );
-
- /* finally show the layer buttons with ballon text */
- for( inx = 0; inx < NUM_BUTTONS; inx++ ) {
- wButtonSetBusy( layer_btns[inx], layers[inx].visible != 0 );
- wControlSetBalloonText( (wControl_p)layer_btns[inx], (layers[inx].name[0] != '\0' ? layers[inx].name :_("Show/Hide Layer") ));
- }
+ int inx;
+ /* update the globals for the layer dialog */
+ layerVisible = layers[curLayer].visible;
+ layerFrozen = layers[curLayer].frozen;
+ layerOnMap = layers[curLayer].onMap;
+ layerColor = layers[curLayer].color;
+ strcpy(layerName, layers[curLayer].name);
+ layerCurrent = curLayer;
+ /* now re-load the layer list boxes */
+ LoadLayerLists();
+ sprintf(message, "%ld", layers[curLayer].objCount);
+ ParamLoadMessage(&layerPG, I_COUNT, message);
+
+ /* force update of the 'manage layers' dialogbox */
+ if (layerL) {
+ ParamLoadControls(&layerPG);
+ }
+
+ /* finally show the layer buttons with ballon text */
+ for (inx = 0; inx < NUM_BUTTONS; inx++) {
+ wButtonSetBusy(layer_btns[inx], layers[inx].visible != 0);
+ wControlSetBalloonText((wControl_p)layer_btns[inx],
+ (layers[inx].name[0] != '\0' ? layers[inx].name :_("Show/Hide Layer")));
+ }
}
/**
@@ -557,164 +595,170 @@ UpdateLayerDlg()
*/
static void
-InitializeLayers( void LayerInitFunc( void ), int newCurrLayer )
+InitializeLayers(void LayerInitFunc(void), int newCurrLayer)
{
- /* reset the data structures to default valuses */
- LayerInitFunc();
-
- /* count the objects on each layer */
- LayerSetCounts();
-
- /* Switch the current layer when requested */
- if( newCurrLayer != -1 )
- {
- curLayer = newCurrLayer;
- }
-}
+ /* reset the data structures to default valuses */
+ LayerInitFunc();
+ /* count the objects on each layer */
+ LayerSetCounts();
+
+ /* Switch the current layer when requested */
+ if (newCurrLayer != -1) {
+ curLayer = newCurrLayer;
+ }
+}
/**
* Save the customized layer information to preferences.
*/
-
-static void
-LayerPrefSave( void )
+
+static void
+LayerPrefSave(void)
{
- int inx;
- int flags;
- char buffer[ 80 ];
- char layersSaved[ 3 * NUM_LAYERS ]; /* 0..99 plus separator */
-
- /* FIXME: values for layers that are configured to default now should be overwritten in the settings */
-
- layersSaved[ 0 ] = '\0';
-
- for( inx = 0; inx < NUM_LAYERS; inx++ ) {
- /* if a name is set that is not the default value or a color different from the default has been set,
- information about the layer needs to be saved */
- if( (layers[inx].name[0] && inx != 0 ) ||
- layers[inx].frozen || (!layers[inx].onMap) || (!layers[inx].visible) ||
- layers[inx].color != layerColorTab[inx%COUNT(layerColorTab)])
- {
- sprintf( buffer, LAYERPREF_NAME ".%0d", inx );
- wPrefSetString( LAYERPREF_SECTION, buffer, layers[inx].name );
-
- sprintf( buffer, LAYERPREF_COLOR ".%0d", inx );
- wPrefSetInteger( LAYERPREF_SECTION, buffer, wDrawGetRGB(layers[inx].color));
-
- flags = 0;
- if( layers[inx].frozen )
- flags |= LAYERPREF_FROZEN;
- if( layers[inx].onMap )
- flags |= LAYERPREF_ONMAP;
- if( layers[inx].visible )
- flags |= LAYERPREF_VISIBLE;
-
- sprintf( buffer, LAYERPREF_FLAGS ".%0d", inx );
- wPrefSetInteger( LAYERPREF_SECTION, buffer, flags );
-
- /* extend the list of layers that are set up via the preferences */
- if( layersSaved[ 0 ] )
- strcat( layersSaved, "," );
-
- sprintf( layersSaved, "%s%d", layersSaved, inx );
- }
- }
-
- wPrefSetString( LAYERPREF_SECTION, "layers", layersSaved );
+ unsigned int inx;
+ int flags;
+ char buffer[ 80 ];
+ char layersSaved[ 3 * NUM_LAYERS + 1 ]; /* 0..99 plus separator */
+ /* FIXME: values for layers that are configured to default now should be overwritten in the settings */
+ layersSaved[ 0 ] = '\0';
+
+ for (inx = 0; inx < NUM_LAYERS; inx++) {
+ /* if a name is set that is not the default value or a color different from the default has been set,
+ information about the layer needs to be saved */
+ if ((layers[inx].name[0] && inx != 0) ||
+ layers[inx].frozen || (!layers[inx].onMap) || (!layers[inx].visible) ||
+ layers[inx].color != layerColorTab[inx%COUNT(layerColorTab)]) {
+ sprintf(buffer, LAYERPREF_NAME ".%0u", inx);
+ wPrefSetString(LAYERPREF_SECTION, buffer, layers[inx].name);
+ sprintf(buffer, LAYERPREF_COLOR ".%0u", inx);
+ wPrefSetInteger(LAYERPREF_SECTION, buffer, wDrawGetRGB(layers[inx].color));
+ flags = 0;
+
+ if (layers[inx].frozen) {
+ flags |= LAYERPREF_FROZEN;
+ }
+
+ if (layers[inx].onMap) {
+ flags |= LAYERPREF_ONMAP;
+ }
+
+ if (layers[inx].visible) {
+ flags |= LAYERPREF_VISIBLE;
+ }
+
+ sprintf(buffer, LAYERPREF_FLAGS ".%0u", inx);
+ wPrefSetInteger(LAYERPREF_SECTION, buffer, flags);
+
+ /* extend the list of layers that are set up via the preferences */
+ if (layersSaved[ 0 ]) {
+ strcat(layersSaved, ",");
+ }
+
+ sprintf(buffer, "%u", inx);
+ strcat(layersSaved, buffer);
+ }
+ }
+
+ wPrefSetString(LAYERPREF_SECTION, "layers", layersSaved);
}
/**
- * Load the settings for all layers from the preferences.
+ * Load the settings for all layers from the preferences.
*/
static void
-LayerPrefLoad( void )
+LayerPrefLoad(void)
{
-
- int inx;
- char layersSaved[ 3 * NUM_LAYERS ];
- char layerOption[ 20 ];
- const char *layerValue;
- const char *prefString;
- long rgb;
- int color;
- long flags;
-
- /* reset layer preferences to system default */
- LayerSystemDefaults();
-
- prefString = wPrefGetString( LAYERPREF_SECTION, "layers" );
- if( prefString && prefString[ 0 ] ) {
- strncpy( layersSaved, prefString, sizeof( layersSaved ));
- prefString = strtok( layersSaved, "," );
- while( prefString ) {
- inx = atoi( prefString );
- sprintf( layerOption, LAYERPREF_NAME ".%d", inx );
- layerValue = wPrefGetString( LAYERPREF_SECTION, layerOption );
- if( layerValue )
- strcpy( layers[inx].name, layerValue );
- else
- *(layers[inx].name) = '\0';
-
- /* get and set the color, using the system default color in case color is not available from prefs */
- sprintf( layerOption, LAYERPREF_COLOR ".%d", inx );
- wPrefGetInteger( LAYERPREF_SECTION, layerOption, &rgb, layerColorTab[inx%COUNT(layerColorTab)] );
- color = wDrawFindColor(rgb);
- SetLayerColor( inx, color );
-
- /* get and set the flags */
- sprintf( layerOption, LAYERPREF_FLAGS ".%d", inx );
- wPrefGetInteger( LAYERPREF_SECTION, layerOption, &flags, LAYERPREF_ONMAP | LAYERPREF_VISIBLE );
-
- layers[inx].frozen = ((flags & LAYERPREF_FROZEN) != 0 );
- layers[inx].onMap = ((flags & LAYERPREF_ONMAP) != 0 );
- layers[inx].visible = (( flags & LAYERPREF_VISIBLE ) != 0 );
-
- prefString = strtok( NULL, ",");
- }
- }
+ const char *prefString;
+ long rgb;
+ long flags;
+ /* reset layer preferences to system default */
+ LayerSystemDefaults();
+ prefString = wPrefGetString(LAYERPREF_SECTION, "layers");
+
+ if (prefString && prefString[ 0 ]) {
+ char layersSaved[3 * NUM_LAYERS];
+ strncpy(layersSaved, prefString, sizeof(layersSaved));
+ prefString = strtok(layersSaved, ",");
+
+ while (prefString) {
+ int inx;
+ char layerOption[20];
+ const char *layerValue;
+ int color;
+ inx = atoi(prefString);
+ sprintf(layerOption, LAYERPREF_NAME ".%d", inx);
+ layerValue = wPrefGetString(LAYERPREF_SECTION, layerOption);
+
+ if (layerValue) {
+ strcpy(layers[inx].name, layerValue);
+ } else {
+ *(layers[inx].name) = '\0';
+ }
+
+ /* get and set the color, using the system default color in case color is not available from prefs */
+ sprintf(layerOption, LAYERPREF_COLOR ".%d", inx);
+ wPrefGetInteger(LAYERPREF_SECTION, layerOption, &rgb,
+ layerColorTab[inx%COUNT(layerColorTab)]);
+ color = wDrawFindColor(rgb);
+ SetLayerColor(inx, color);
+ /* get and set the flags */
+ sprintf(layerOption, LAYERPREF_FLAGS ".%d", inx);
+ wPrefGetInteger(LAYERPREF_SECTION, layerOption, &flags,
+ LAYERPREF_ONMAP | LAYERPREF_VISIBLE);
+ layers[inx].frozen = ((flags & LAYERPREF_FROZEN) != 0);
+ layers[inx].onMap = ((flags & LAYERPREF_ONMAP) != 0);
+ layers[inx].visible = ((flags & LAYERPREF_VISIBLE) != 0);
+ prefString = strtok(NULL, ",");
+ }
+ }
}
/**
- * Count the number of elements on a layer.
- * NOTE: This function has been implemented but not actually been tested. As it might prove useful in the
- * future I left it in place. So you have been warned!
- * \param IN layer to count
- * \return number of elements
+ * Increment the count of objects on a given layer.
+ *
+ * \param index IN the layer to change
*/
-/*
-static int LayerCount( int layer )
+
+void IncrementLayerObjects(unsigned int layer)
{
- track_p trk;
- int inx;
- int count = 0;
-
- for( trk = NULL; TrackIterate(&trk); ) {
- inx = GetTrkLayer( trk );
- if( inx == layer )
- count++;
- }
-
- return count;
-}
+ assert(layer <= NUM_LAYERS);
+ layers[layer].objCount++;
+}
+
+/**
+* Decrement the count of objects on a given layer.
+*
+* \param index IN the layer to change
*/
+void DecrementLayerObjects(unsigned int layer)
+{
+ assert(layer <= NUM_LAYERS);
+ layers[layer].objCount--;
+}
+
/**
* Count the number of objects on each layer and store result in layers data structure.
*/
-EXPORT void LayerSetCounts( void )
+void LayerSetCounts(void)
{
- int inx;
- track_p trk;
- for ( inx=0; inx<NUM_LAYERS; inx++ )
- layers[inx].objCount = 0;
- for ( trk=NULL; TrackIterate(&trk); ) {
- inx = GetTrkLayer(trk);
- if ( inx >= 0 && inx < NUM_LAYERS )
- layers[inx].objCount++;
- }
+ int inx;
+ track_p trk;
+
+ for (inx=0; inx<NUM_LAYERS; inx++) {
+ layers[inx].objCount = 0;
+ }
+
+ for (trk=NULL; TrackIterate(&trk);) {
+ inx = GetTrkLayer(trk);
+
+ if (inx >= 0 && inx < NUM_LAYERS) {
+ layers[inx].objCount++;
+ }
+ }
}
/**
@@ -722,16 +766,16 @@ EXPORT void LayerSetCounts( void )
* from the preferences file.
*/
-EXPORT void
+void
DefaultLayerProperties(void)
{
- InitializeLayers( LayerPrefLoad, 0 );
+ InitializeLayers(LayerPrefLoad, 0);
+ UpdateLayerDlg();
- UpdateLayerDlg();
- if( layoutLayerChanged ) {
- MainProc( mainW, wResize_e, NULL );
- layoutLayerChanged = FALSE;
- }
+ if (layoutLayerChanged) {
+ MainProc(mainW, wResize_e, NULL);
+ layoutLayerChanged = FALSE;
+ }
}
/**
@@ -739,158 +783,190 @@ DefaultLayerProperties(void)
*
*/
-static void LayerUpdate( void )
+static void LayerUpdate(void)
{
- BOOL_T redraw;
- ParamLoadData( &layerPG );
- if (layerCurrent < 0 || layerCurrent >= NUM_LAYERS)
- return;
- if (layerCurrent == curLayer && layerFrozen) {
- NoticeMessage( MSG_LAYER_FREEZE, _("Ok"), NULL );
- layerFrozen = FALSE;
- ParamLoadControl( &layerPG, I_FRZ );
- }
- if (layerCurrent == curLayer && !layerVisible) {
- NoticeMessage( MSG_LAYER_HIDE, _("Ok"), NULL );
- layerVisible = TRUE;
- ParamLoadControl( &layerPG, I_VIS );
- }
-
- if( strcmp( layers[(int)layerCurrent].name, layerName ) ||
- layerColor != layers[(int)layerCurrent].color ||
- layers[(int)layerCurrent].visible != (BOOL_T)layerVisible ||
- layers[(int)layerCurrent].frozen != (BOOL_T)layerFrozen ||
- layers[(int)layerCurrent].onMap != (BOOL_T)layerOnMap ) {
-
- changed = TRUE;
- SetWindowTitle();
- }
-
- if ( layerL ) {
- strncpy( layers[(int)layerCurrent].name, layerName, sizeof layers[(int)layerCurrent].name );
- sprintf( message, "%2d %c %s", (int)layerCurrent+1, layers[(int)layerCurrent].objCount>0?'+':'-', layers[(int)layerCurrent].name );
- wListSetValues( layerL, layerCurrent, message, NULL, NULL );
- }
-
- sprintf( message, "%2d : %s", (int)layerCurrent+1, layers[(int)layerCurrent].name );
- wListSetValues( setLayerL, layerCurrent, message, NULL, NULL );
- if (layerCurrent < NUM_BUTTONS) {
- if (strlen(layers[(int)layerCurrent].name)>0)
- wControlSetBalloonText( (wControl_p)layer_btns[(int)layerCurrent], layers[(int)layerCurrent].name );
- else
- wControlSetBalloonText( (wControl_p)layer_btns[(int)layerCurrent], _("Show/Hide Layer") );
- }
- redraw = ( layerColor != layers[(int)layerCurrent].color ||
- (BOOL_T)layerVisible != layers[(int)layerCurrent].visible );
- if ( (!layerRedrawMap) && redraw)
- RedrawLayer( (LAYER_T)layerCurrent, FALSE );
-
- SetLayerColor( layerCurrent, layerColor );
-
- if (layerCurrent<NUM_BUTTONS && layers[(int)layerCurrent].visible!=(BOOL_T)layerVisible) {
- wButtonSetBusy( layer_btns[(int)layerCurrent], layerVisible );
- }
- layers[(int)layerCurrent].visible = (BOOL_T)layerVisible;
- layers[(int)layerCurrent].frozen = (BOOL_T)layerFrozen;
- layers[(int)layerCurrent].onMap = (BOOL_T)layerOnMap;
- if ( layerRedrawMap )
- DoRedraw();
- else if (redraw)
- RedrawLayer( (LAYER_T)layerCurrent, TRUE );
- layerRedrawMap = FALSE;
+ BOOL_T redraw;
+ char *layerFormattedName;
+ ParamLoadData(&layerPG);
+
+ if (!IsLayerValid(layerCurrent)) {
+ return;
+ }
+
+ if (layerCurrent == curLayer && layerFrozen) {
+ NoticeMessage(MSG_LAYER_FREEZE, _("Ok"), NULL);
+ layerFrozen = FALSE;
+ ParamLoadControl(&layerPG, I_FRZ);
+ }
+
+ if (layerCurrent == curLayer && !layerVisible) {
+ NoticeMessage(MSG_LAYER_HIDE, _("Ok"), NULL);
+ layerVisible = TRUE;
+ ParamLoadControl(&layerPG, I_VIS);
+ }
+
+ if (strcmp(layers[(int)layerCurrent].name, layerName) ||
+ layerColor != layers[(int)layerCurrent].color ||
+ layers[(int)layerCurrent].visible != (BOOL_T)layerVisible ||
+ layers[(int)layerCurrent].frozen != (BOOL_T)layerFrozen ||
+ layers[(int)layerCurrent].onMap != (BOOL_T)layerOnMap) {
+ changed = TRUE;
+ SetWindowTitle();
+ }
+
+ if (layerL) {
+ strncpy(layers[(int)layerCurrent].name, layerName,
+ sizeof layers[(int)layerCurrent].name);
+ layerFormattedName = FormatLayerName(layerCurrent);
+ wListSetValues(layerL, layerCurrent, layerFormattedName, NULL, NULL);
+ free(layerFormattedName);
+ }
+
+ layerFormattedName = FormatLayerName(layerCurrent);
+ wListSetValues(setLayerL, layerCurrent, layerFormattedName, NULL, NULL);
+ free(layerFormattedName);
+
+ if (layerCurrent < NUM_BUTTONS) {
+ if (strlen(layers[(int)layerCurrent].name)>0) {
+ wControlSetBalloonText((wControl_p)layer_btns[(int)layerCurrent],
+ layers[(int)layerCurrent].name);
+ } else {
+ wControlSetBalloonText((wControl_p)layer_btns[(int)layerCurrent],
+ _("Show/Hide Layer"));
+ }
+ }
+
+ redraw = (layerColor != layers[(int)layerCurrent].color ||
+ (BOOL_T)layerVisible != layers[(int)layerCurrent].visible);
+
+ if ((!layerRedrawMap) && redraw) {
+ RedrawLayer((unsigned int)layerCurrent, FALSE);
+ }
+
+ SetLayerColor(layerCurrent, layerColor);
+
+ if (layerCurrent<NUM_BUTTONS &&
+ layers[(int)layerCurrent].visible!=(BOOL_T)layerVisible) {
+ wButtonSetBusy(layer_btns[(int)layerCurrent], layerVisible);
+ }
+
+ layers[(int)layerCurrent].visible = (BOOL_T)layerVisible;
+ layers[(int)layerCurrent].frozen = (BOOL_T)layerFrozen;
+ layers[(int)layerCurrent].onMap = (BOOL_T)layerOnMap;
+
+ if (layerRedrawMap) {
+ DoRedraw();
+ } else if (redraw) {
+ RedrawLayer((unsigned int)layerCurrent, TRUE);
+ }
+
+ layerRedrawMap = FALSE;
}
-static void LayerSelect(
- wIndex_t inx )
+static void LayerSelect(
+ wIndex_t inx)
{
- LayerUpdate();
- if (inx < 0 || inx >= NUM_LAYERS)
- return;
- layerCurrent = (LAYER_T)inx;
- strcpy( layerName, layers[inx].name );
- layerVisible = layers[inx].visible;
- layerFrozen = layers[inx].frozen;
- layerOnMap = layers[inx].onMap;
- layerColor = layers[inx].color;
- sprintf( message, "%ld", layers[inx].objCount );
-
- ParamLoadMessage( &layerPG, I_COUNT, message );
- ParamLoadControls( &layerPG );
+ LayerUpdate();
+
+ if (inx < 0 || inx >= NUM_LAYERS) {
+ return;
+ }
+
+ layerCurrent = (unsigned int)inx;
+ strcpy(layerName, layers[inx].name);
+ layerVisible = layers[inx].visible;
+ layerFrozen = layers[inx].frozen;
+ layerOnMap = layers[inx].onMap;
+ layerColor = layers[inx].color;
+ sprintf(message, "%ld", layers[inx].objCount);
+ ParamLoadMessage(&layerPG, I_COUNT, message);
+ ParamLoadControls(&layerPG);
}
-EXPORT void ResetLayers( void )
+void ResetLayers(void)
{
- int inx;
- for ( inx=0;inx<NUM_LAYERS; inx++ ) {
- strcpy( layers[inx].name, inx==0?_("Main"):"" );
- layers[inx].visible = TRUE;
- layers[inx].frozen = FALSE;
- layers[inx].onMap = TRUE;
- layers[inx].objCount = 0;
- SetLayerColor( inx, layerColorTab[inx%COUNT(layerColorTab)] );
- if ( inx<NUM_BUTTONS ) {
- wButtonSetLabel( layer_btns[inx], (char*)show_layer_bmps[inx] );
- }
- }
- wControlSetBalloonText( (wControl_p)layer_btns[0], _("Main") );
- for ( inx=1; inx<NUM_BUTTONS; inx++ ) {
- wControlSetBalloonText( (wControl_p)layer_btns[inx], _("Show/Hide Layer") );
- }
- curLayer = 0;
- layerVisible = TRUE;
- layerFrozen = FALSE;
- layerOnMap = TRUE;
- layerColor = layers[0].color;
- strcpy( layerName, layers[0].name );
- LoadLayerLists();
-
- if (layerL) {
- ParamLoadControls( &layerPG );
- ParamLoadMessage( &layerPG, I_COUNT, "0" );
- }
+ int inx;
+
+ for (inx=0; inx<NUM_LAYERS; inx++) {
+ strcpy(layers[inx].name, inx==0?_("Main"):"");
+ layers[inx].visible = TRUE;
+ layers[inx].frozen = FALSE;
+ layers[inx].onMap = TRUE;
+ layers[inx].objCount = 0;
+ SetLayerColor(inx, layerColorTab[inx%COUNT(layerColorTab)]);
+
+ if (inx<NUM_BUTTONS) {
+ wButtonSetLabel(layer_btns[inx], (char*)show_layer_bmps[inx]);
+ }
+ }
+
+ wControlSetBalloonText((wControl_p)layer_btns[0], _("Main"));
+
+ for (inx=1; inx<NUM_BUTTONS; inx++) {
+ wControlSetBalloonText((wControl_p)layer_btns[inx], _("Show/Hide Layer"));
+ }
+
+ curLayer = 0;
+ layerVisible = TRUE;
+ layerFrozen = FALSE;
+ layerOnMap = TRUE;
+ layerColor = layers[0].color;
+ strcpy(layerName, layers[0].name);
+ LoadLayerLists();
+
+ if (layerL) {
+ ParamLoadControls(&layerPG);
+ ParamLoadMessage(&layerPG, I_COUNT, "0");
+ }
}
-EXPORT void SaveLayers( void )
+void SaveLayers(void)
{
- layers_save = malloc( NUM_LAYERS * sizeof( layer_t ));
- assert( layers_save != NULL );
-
- memcpy( layers_save, layers, NUM_LAYERS * sizeof layers[0] );
- ResetLayers();
+ layers_save = malloc(NUM_LAYERS * sizeof(layers[0]));
+
+ if (layers_save == NULL) {
+ abort();
+ }
+
+ memcpy(layers_save, layers, NUM_LAYERS * sizeof layers[0]);
+ ResetLayers();
}
-EXPORT void RestoreLayers( void )
+void RestoreLayers(void)
{
- int inx;
- char * label;
- wDrawColor color;
-
- assert( layers_save != NULL );
- memcpy( layers, layers_save, NUM_LAYERS * sizeof layers[0] );
- free( layers_save );
-
- for ( inx=0; inx<NUM_BUTTONS; inx++ ) {
- color = layers[inx].color;
- layers[inx].color = -1;
- SetLayerColor( inx, color );
- if ( layers[inx].name[0] == '\0' ) {
- if ( inx == 0 ) {
- label = _("Main");
- } else {
- label = _("Show/Hide Layer");
- }
- } else {
- label = layers[inx].name;
- }
- wControlSetBalloonText( (wControl_p)layer_btns[inx], label );
- }
- if (layerL) {
- ParamLoadControls( &layerPG );
- ParamLoadMessage( &layerPG, I_COUNT, "0" );
- }
- LoadLayerLists();
+ int inx;
+ char * label;
+ wDrawColor color;
+ assert(layers_save != NULL);
+ memcpy(layers, layers_save, NUM_LAYERS * sizeof layers[0]);
+ free(layers_save);
+
+ for (inx=0; inx<NUM_BUTTONS; inx++) {
+ color = layers[inx].color;
+ layers[inx].color = -1;
+ SetLayerColor(inx, color);
+
+ if (layers[inx].name[0] == '\0') {
+ if (inx == 0) {
+ label = _("Main");
+ } else {
+ label = _("Show/Hide Layer");
+ }
+ } else {
+ label = layers[inx].name;
+ }
+
+ wControlSetBalloonText((wControl_p)layer_btns[inx], label);
+ }
+
+ if (layerL) {
+ ParamLoadControls(&layerPG);
+ ParamLoadMessage(&layerPG, I_COUNT, "0");
+ }
+
+ LoadLayerLists();
}
/**
@@ -900,172 +976,240 @@ EXPORT void RestoreLayers( void )
* \param IN ignored
*
*/
-
-static void LayerOk( void * junk )
+
+static void LayerOk(void * junk)
{
- LayerSelect( layerCurrent );
-
- if (newLayerCount != layerCount) {
- layoutLayerChanged = TRUE;
- if ( newLayerCount > NUM_BUTTONS )
- newLayerCount = NUM_BUTTONS;
- layerCount = newLayerCount;
- }
- if (layoutLayerChanged)
- MainProc( mainW, wResize_e, NULL );
- wHide( layerW );
+ LayerSelect(layerCurrent);
+
+ if (newLayerCount != layerCount) {
+ layoutLayerChanged = TRUE;
+
+ if (newLayerCount > NUM_BUTTONS) {
+ newLayerCount = NUM_BUTTONS;
+ }
+
+ layerCount = newLayerCount;
+ }
+
+ if (layoutLayerChanged) {
+ MainProc(mainW, wResize_e, NULL);
+ }
+
+ wHide(layerW);
}
static void LayerDlgUpdate(
- paramGroup_p pg,
- int inx,
- void * valueP )
+ paramGroup_p pg,
+ int inx,
+ void * valueP)
{
- switch (inx) {
- case I_LIST:
- LayerSelect( (wIndex_t)*(long*)valueP );
- break;
- case I_NAME:
- LayerUpdate();
- break;
- case I_MAP:
- layerRedrawMap = TRUE;
- break;
- }
+ switch (inx) {
+ case I_LIST:
+ LayerSelect((wIndex_t)*(long*)valueP);
+ break;
+
+ case I_NAME:
+ LayerUpdate();
+ break;
+
+ case I_MAP:
+ layerRedrawMap = TRUE;
+ break;
+ }
}
-static void DoLayer( void * junk )
+static void DoLayer(void * junk)
{
- if (layerW == NULL)
- layerW = ParamCreateDialog( &layerPG, MakeWindowTitle(_("Layers")), _("Done"), LayerOk, NULL, TRUE, NULL, 0, LayerDlgUpdate );
+ if (layerW == NULL) {
+ layerW = ParamCreateDialog(&layerPG, MakeWindowTitle(_("Layers")), _("Done"),
+ LayerOk, NULL, TRUE, NULL, 0, LayerDlgUpdate);
+ }
+
+ /* set the globals to the values for the current layer */
+ UpdateLayerDlg();
+ layerRedrawMap = FALSE;
+ wShow(layerW);
+ layoutLayerChanged = FALSE;
+}
- /* set the globals to the values for the current layer */
- UpdateLayerDlg();
-
- layerRedrawMap = FALSE;
- wShow( layerW );
- layoutLayerChanged = FALSE;
+BOOL_T ReadLayers(char * line)
+{
+ char * name;
+ int inx, visible, frozen, color, onMap;
+ unsigned long rgb;
+
+ /* older files didn't support layers */
+
+ if (paramVersion < 7) {
+ return TRUE;
+ }
+
+ /* set the current layer */
+
+ if (strncmp(line, "CURRENT", 7) == 0) {
+ curLayer = atoi(line+7);
+
+ if (!IsLayerValid(curLayer)) {
+ curLayer = 0;
+ }
+
+ if (layerL) {
+ wListSetIndex(layerL, curLayer);
+ }
+
+ if (setLayerL) {
+ wListSetIndex(setLayerL, curLayer);
+ }
+
+ return TRUE;
+ }
+
+ /* get the properties for a layer from the file and update the layer accordingly */
+
+ if (!GetArgs(line, "ddddu0000q", &inx, &visible, &frozen, &onMap, &rgb,
+ &name)) {
+ return FALSE;
+ }
+
+ if (paramVersion < 9) {
+ if ((int)rgb < sizeof oldColorMap/sizeof oldColorMap[0]) {
+ rgb = wRGB(oldColorMap[(int)rgb][0], oldColorMap[(int)rgb][1],
+ oldColorMap[(int)rgb][2]);
+ } else {
+ rgb = 0;
+ }
+ }
+
+ if (inx < 0 || inx >= NUM_LAYERS) {
+ return FALSE;
+ }
+
+ color = wDrawFindColor(rgb);
+ SetLayerColor(inx, color);
+ strncpy(layers[inx].name, name, sizeof layers[inx].name);
+ layers[inx].visible = visible;
+ layers[inx].frozen = frozen;
+ layers[inx].onMap = onMap;
+ layers[inx].color = color;
+
+ if (inx<NUM_BUTTONS) {
+ if (strlen(name) > 0) {
+ wControlSetBalloonText((wControl_p)layer_btns[(int)inx], layers[inx].name);
+ }
+
+ wButtonSetBusy(layer_btns[(int)inx], visible);
+ }
+ MyFree(name);
+
+ return TRUE;
}
+/**
+ * Find out whether layer information should be saved to the layout file.
+ * Usually only layers where settings are off from the default are written.
+ * NOTE: as a fix for a problem with XTrkCadReader a layer definition is
+ * written for each layer that is used.
+ *
+ * \param layerNumber IN index of the layer
+ * \return TRUE if configured, FALSE if not
+ */
-EXPORT BOOL_T ReadLayers( char * line )
+bool
+IsLayerConfigured(unsigned int layerNumber)
{
- char * name;
- int inx, visible, frozen, color, onMap;
- unsigned long rgb;
-
- /* older files didn't support layers */
-
- if (paramVersion < 7)
- return TRUE;
-
- /* set the current layer */
-
- if ( strncmp( line, "CURRENT", 7 ) == 0 ) {
- curLayer = atoi( line+7 );
- if ( curLayer < 0 )
- curLayer = 0;
-
- if (layerL)
- wListSetIndex( layerL, curLayer );
- if (setLayerL)
- wListSetIndex( setLayerL, curLayer );
-
- return TRUE;
- }
-
- /* get the properties for a layer from the file and update the layer accordingly */
-
- if (!GetArgs( line, "ddddu0000q", &inx, &visible, &frozen, &onMap, &rgb, &name ))
- return FALSE;
- if (paramVersion < 9) {
- if ( rgb >= 0 && (int)rgb < sizeof oldColorMap/sizeof oldColorMap[0] )
- rgb = wRGB( oldColorMap[(int)rgb][0], oldColorMap[(int)rgb][1], oldColorMap[(int)rgb][2] );
- else
- rgb = 0;
- }
- if (inx < 0 || inx >= NUM_LAYERS)
- return FALSE;
- color = wDrawFindColor(rgb);
- SetLayerColor( inx, color );
- strncpy( layers[inx].name, name, sizeof layers[inx].name );
- layers[inx].visible = visible;
- layers[inx].frozen = frozen;
- layers[inx].onMap = onMap;
- layers[inx].color = color;
- if (inx<NUM_BUTTONS) {
- if (strlen(name) > 0) {
- wControlSetBalloonText( (wControl_p)layer_btns[(int)inx], layers[inx].name );
- }
- wButtonSetBusy( layer_btns[(int)inx], visible );
- }
- return TRUE;
+ return (!layers[layerNumber].visible ||
+ layers[layerNumber].frozen ||
+ !layers[layerNumber].onMap ||
+ layers[layerNumber].color !=
+ layerColorTab[layerNumber % (COUNT(layerColorTab))] ||
+ layers[layerNumber].name[0] ||
+ layers[layerNumber].objCount);
}
+/**
+ * Save the layer information to the file.
+ *
+ * \paran f IN open file handle
+ * \return always TRUE
+ */
-EXPORT BOOL_T WriteLayers( FILE * f )
+BOOL_T WriteLayers(FILE * f)
{
- int inx;
- BOOL_T rc = TRUE;
- for (inx=0; inx<NUM_LAYERS; inx++)
- if ((!layers[inx].visible) || layers[inx].frozen || (!layers[inx].onMap) ||
- layers[inx].color!=layerColorTab[inx%(COUNT(layerColorTab))] ||
- layers[inx].name[0] )
- rc &= fprintf( f, "LAYERS %d %d %d %d %ld %d %d %d %d \"%s\"\n", inx, layers[inx].visible, layers[inx].frozen, layers[inx].onMap, wDrawGetRGB(layers[inx].color), 0, 0, 0, 0, PutTitle(layers[inx].name) )>0;
- rc &= fprintf( f, "LAYERS CURRENT %d\n", curLayer )>0;
- return TRUE;
+ unsigned int inx;
+
+ for (inx = 0; inx < NUM_LAYERS; inx++) {
+ if (IsLayerConfigured(inx)) {
+ fprintf(f, "LAYERS %u %d %d %d %ld %d %d %d %d \"%s\"\n",
+ inx,
+ layers[inx].visible,
+ layers[inx].frozen,
+ layers[inx].onMap,
+ wDrawGetRGB(layers[inx].color),
+ 0, 0, 0, 0,
+ PutTitle(layers[inx].name));
+ }
+ }
+
+ fprintf(f, "LAYERS CURRENT %u\n", curLayer);
+ return TRUE;
}
-EXPORT void InitLayers( void )
+void InitLayers(void)
{
- int i;
-
- wPrefGetInteger( PREFSECT, "layer-button-count", &layerCount, layerCount );
- for ( i = 0; i<COUNT(layerRawColorTab); i++ )
- layerColorTab[i] = wDrawFindColor( layerRawColorTab[i] );
-
- /* create the bitmaps for the layer buttons */
- /* all bitmaps have to have the same dimensions */
- for ( i = 0; i<NUM_BUTTONS; i++ ) {
- show_layer_bmps[i] = wIconCreateBitMap( l1_width, l1_height, show_layer_bits[i], layerColorTab[i%(COUNT(layerColorTab))] );
- layers[i].color = layerColorTab[i%(COUNT(layerColorTab))];
- }
-
- /* layer list for toolbar */
- setLayerL = wDropListCreate( mainW, 0, 0, "cmdLayerSet", NULL, 0, 10, 200, NULL, SetCurrLayer, NULL );
- wControlSetBalloonText( (wControl_p)setLayerL, GetBalloonHelpStr("cmdLayerSet") );
- AddToolbarControl( (wControl_p)setLayerL, IC_MODETRAIN_TOO );
-
- for ( i = 0; i<NUM_LAYERS; i++ ) {
- if (i<NUM_BUTTONS) {
- /* create the layer button */
- sprintf( message, "cmdLayerShow%d", i );
- layer_btns[i] = wButtonCreate( mainW, 0, 0, message,
- (char*)(show_layer_bmps[i]),
- BO_ICON, 0, (wButtonCallBack_p)FlipLayer, (void*)(intptr_t)i );
-
- /* add the help text */
- wControlSetBalloonText( (wControl_p)layer_btns[i], _("Show/Hide Layer") );
-
- /* put on toolbar */
- AddToolbarControl( (wControl_p)layer_btns[i], IC_MODETRAIN_TOO );
-
- /* set state of button */
- wButtonSetBusy( layer_btns[i], 1 );
- }
- sprintf( message, "%2d : %s", i+1, (i==0?_("Main"):"") );
- wListAddValue( setLayerL, message, NULL, (void*)(intptr_t)i );
- }
- AddPlaybackProc( "SETCURRLAYER", PlaybackCurrLayer, NULL );
- AddPlaybackProc( "LAYERS", (playbackProc_p)ReadLayers, NULL );
+ unsigned int i;
+ wPrefGetInteger(PREFSECT, "layer-button-count", &layerCount, layerCount);
+
+ for (i = 0; i<COUNT(layerRawColorTab); i++) {
+ layerColorTab[i] = wDrawFindColor(layerRawColorTab[i]);
+ }
+
+ /* create the bitmaps for the layer buttons */
+ /* all bitmaps have to have the same dimensions */
+ for (i = 0; i<NUM_BUTTONS; i++) {
+ show_layer_bmps[i] = wIconCreateBitMap(l1_width, l1_height, show_layer_bits[i],
+ layerColorTab[i%(COUNT(layerColorTab))]);
+ layers[i].color = layerColorTab[i%(COUNT(layerColorTab))];
+ }
+
+ /* layer list for toolbar */
+ setLayerL = wDropListCreate(mainW, 0, 0, "cmdLayerSet", NULL, 0, 10, 200, NULL,
+ SetCurrLayer, NULL);
+ wControlSetBalloonText((wControl_p)setLayerL, GetBalloonHelpStr("cmdLayerSet"));
+ AddToolbarControl((wControl_p)setLayerL, IC_MODETRAIN_TOO);
+
+ for (i = 0; i<NUM_LAYERS; i++) {
+ char *layerName;
+
+ if (i<NUM_BUTTONS) {
+ /* create the layer button */
+ sprintf(message, "cmdLayerShow%u", i);
+ layer_btns[i] = wButtonCreate(mainW, 0, 0, message,
+ (char*)(show_layer_bmps[i]),
+ BO_ICON, 0, (wButtonCallBack_p)FlipLayer, (void*)(intptr_t)i);
+ /* add the help text */
+ wControlSetBalloonText((wControl_p)layer_btns[i], _("Show/Hide Layer"));
+ /* put on toolbar */
+ AddToolbarControl((wControl_p)layer_btns[i], IC_MODETRAIN_TOO);
+ /* set state of button */
+ wButtonSetBusy(layer_btns[i], 1);
+ }
+
+ layerName = FormatLayerName(i);
+ wListAddValue(setLayerL, layerName, NULL, (void*)(long)i);
+ free(layerName);
+ }
+
+ AddPlaybackProc("SETCURRLAYER", PlaybackCurrLayer, NULL);
+ AddPlaybackProc("LAYERS", (playbackProc_p)ReadLayers, NULL);
}
-EXPORT addButtonCallBack_t InitLayersDialog( void ) {
- ParamRegister( &layerPG );
- return &DoLayer;
+addButtonCallBack_t InitLayersDialog(void)
+{
+ ParamRegister(&layerPG);
+ return &DoLayer;
}
diff --git a/app/bin/doption.c b/app/bin/doption.c
index b1533c9..ae36d21 100644
--- a/app/bin/doption.c
+++ b/app/bin/doption.c
@@ -21,9 +21,14 @@
*/
#include <ctype.h>
-#include "track.h"
+
#include "ccurve.h"
+#include "cselect.h"
+#include "custom.h"
#include "i18n.h"
+#include "messages.h"
+#include "param.h"
+#include "track.h"
static paramIntegerRange_t i0_64 = { 0, 64 };
static paramIntegerRange_t i1_64 = { 1, 64 };
@@ -36,17 +41,16 @@ static paramIntegerRange_t i10_100 = { 10, 100 };
static paramFloatRange_t r0o1_1 = { 0.1, 1 };
static paramFloatRange_t r1_10 = { 1, 10 };
static paramFloatRange_t r1_1000 = { 1, 1000 };
-static paramFloatRange_t r1_10000 = { 1, 10000 };
-static paramFloatRange_t r0_90 = { 0, 90 };
static paramFloatRange_t r0_180 = { 0, 180 };
-static paramFloatRange_t r1_9999999 = { 1, 9999999 };
static void UpdatePrefD( void );
+static void UpdateMeasureFmt(void);
+
+static wIndex_t distanceFormatInx;
EXPORT long enableBalloonHelp = 1;
-static long GetChanges(
- paramGroup_p pg )
+long GetChanges( paramGroup_p pg )
{
long changes;
long changed;
@@ -73,8 +77,13 @@ static void OptionDlgUpdate(
quickMove = *(long*)valueP;
UpdateQuickMove(NULL);
quickMove = quickMoveOld;
- } else if ( pg->paramPtr[inx].valueP == &units ) {
- UpdatePrefD();
+ } else {
+ if (pg->paramPtr[inx].valueP == &units) {
+ UpdatePrefD();
+ }
+ if (pg->paramPtr[inx].valueP == &distanceFormatInx) {
+ UpdateMeasureFmt();
+ }
}
}
@@ -86,121 +95,6 @@ static void OptionDlgCancel(
wHide( win );
}
-/****************************************************************************
- *
- * Layout Dialog
- *
- */
-
-static wWin_p layoutW;
-static coOrd newSize;
-
-static paramData_t layoutPLs[] = {
- { PD_FLOAT, &newSize.x, "roomsizeX", PDO_NOPREF|PDO_DIM|PDO_NOPSHUPD|PDO_DRAW, &r1_9999999, N_("Room Width"), 0, (void*)(CHANGE_MAIN|CHANGE_MAP) },
- { PD_FLOAT, &newSize.y, "roomsizeY", PDO_NOPREF|PDO_DIM|PDO_NOPSHUPD|PDO_DRAW|PDO_DLGHORZ, &r1_9999999, N_(" Height"), 0, (void*)(CHANGE_MAIN|CHANGE_MAP) },
- { PD_STRING, &Title1, "title1", PDO_NOPSHUPD, NULL, N_("Layout Title") },
- { PD_STRING, &Title2, "title2", PDO_NOPSHUPD, NULL, N_("Subtitle") },
- { PD_DROPLIST, &curScaleDescInx, "scale", PDO_NOPREF|PDO_NOPSHUPD|PDO_NORECORD|PDO_NOUPDACT, (void *)120, N_("Scale"), 0, (void*)(CHANGE_SCALE) },
- { PD_DROPLIST, &curGaugeInx, "gauge", PDO_NOPREF |PDO_NOPSHUPD|PDO_NORECORD|PDO_NOUPDACT|PDO_DLGHORZ, (void *)120, N_(" Gauge"), 0, (void *)(CHANGE_SCALE) },
- { PD_FLOAT, &minTrackRadius, "mintrackradius", PDO_DIM|PDO_NOPSHUPD|PDO_NOPREF, &r1_10000, N_("Min Track Radius"), 0, (void*)(CHANGE_MAIN|CHANGE_LIMITS) },
- { PD_FLOAT, &maxTrackGrade, "maxtrackgrade", PDO_NOPSHUPD|PDO_DLGHORZ, &r0_90 , N_(" Max Track Grade"), 0, (void*)(CHANGE_MAIN) }
- };
-
-
-static paramGroup_t layoutPG = { "layout", PGO_RECORD|PGO_PREFMISC, layoutPLs, sizeof layoutPLs/sizeof layoutPLs[0] };
-
-static void LayoutDlgUpdate( paramGroup_p pg, int inx, void * valueP );
-
-
-static void LayoutOk( void * junk )
-{
- long changes;
- char prefString[ 30 ];
-
- changes = GetChanges( &layoutPG );
-
- /* [mf Nov. 15, 2005] Get the gauge/scale settings */
- if (changes & CHANGE_SCALE) {
- SetScaleGauge( curScaleDescInx, curGaugeInx );
- }
- /* [mf Nov. 15, 2005] end */
-
- if (changes & CHANGE_MAP) {
- SetRoomSize( newSize );
- }
-
- wHide( layoutW );
- DoChangeNotification(changes);
-
- if( changes & CHANGE_LIMITS ) {
- // now set the minimum track radius
- sprintf( prefString, "minTrackRadius-%s", curScaleName );
- wPrefSetFloat( "misc", prefString, minTrackRadius );
- }
-}
-
-
-static void LayoutChange( long changes )
-{
- if (changes & (CHANGE_SCALE|CHANGE_UNITS))
- if (layoutW != NULL && wWinIsVisible(layoutW) )
- ParamLoadControls( &layoutPG );
-}
-
-
-static void DoLayout( void * junk )
-{
- newSize = mapD.size;
- if (layoutW == NULL) {
- layoutW = ParamCreateDialog( &layoutPG, MakeWindowTitle(_("Layout Options")), _("Ok"), LayoutOk, wHide, TRUE, NULL, 0, LayoutDlgUpdate );
- LoadScaleList( (wList_p)layoutPLs[4].control );
- }
- LoadGaugeList( (wList_p)layoutPLs[5].control, curScaleDescInx ); /* set correct gauge list here */
- ParamLoadControls( &layoutPG );
- wShow( layoutW );
-}
-
-
-
-EXPORT addButtonCallBack_t LayoutInit( void )
-{
- ParamRegister( &layoutPG );
- RegisterChangeNotification( LayoutChange );
- return &DoLayout;
-}
-
-/* [mf Nov. 15, 2005] Catch changes done in the LayoutDialog */
-static void
-LayoutDlgUpdate(
- paramGroup_p pg,
- int inx,
- void * valueP )
-{
- char prefString[ 100 ];
- char scaleDesc[ 100 ];
-
- /* did the scale change ? */
- if( inx == 4 ) {
- LoadGaugeList( (wList_p)layoutPLs[5].control, *((int *)valueP) );
- // set the first entry as default, usually the standard gauge for a scale
- wListSetIndex( (wList_p)layoutPLs[5].control, 0 );
-
- // get the minimum radius
- // get the selected scale first
- wListGetValues((wList_p)layoutPLs[4].control, scaleDesc, 99, NULL, NULL );
- // split of the name from the scale
- strtok( scaleDesc, " " );
-
- // now get the minimum track radius
- sprintf( prefString, "minTrackRadius-%s", scaleDesc );
- wPrefGetFloat( "misc", prefString, &minTrackRadius, 0.0 );
-
- // put the scale's minimum value into the dialog
- wStringSetValue( (wString_p)layoutPLs[6].control, FormatDistance( minTrackRadius ) );
- }
-}
-
-/* [mf Nov. 15, 2005] end */
/****************************************************************************
*
@@ -213,6 +107,7 @@ static wWin_p displayW;
static char * autoPanLabels[] = { N_("Auto Pan"), NULL };
static char * drawTunnelLabels[] = { N_("Hide"), N_("Dash"), N_("Normal"), NULL };
static char * drawEndPtLabels3[] = { N_("None"), N_("Turnouts"), N_("All"), NULL };
+static char * drawEndPtUnconnectedSize[] = { N_("Normal"), N_("Thick"), N_("Exception"), NULL };
static char * tiedrawLabels[] = { N_("None"), N_("Outline"), N_("Solid"), NULL };
static char * drawCenterCircle[] = { N_("Off"), N_("On"), NULL };
static char * labelEnableLabels[] = { N_("Track Descriptions"), N_("Lengths"), N_("EndPt Elevations"), N_("Track Elevations"), N_("Cars"), NULL };
@@ -221,6 +116,7 @@ static char * listLabelsLabels[] = { N_("Manuf"), N_("Part No"), N_("Descr"), NU
static char * colorLayersLabels[] = { N_("Tracks"), N_("Other"), NULL };
static char * liveMapLabels[] = { N_("Live Map"), NULL };
static char * hideTrainsInTunnelsLabels[] = { N_("Hide Trains On Hidden Track"), NULL };
+static char * zoomCornerLabels[] = {N_("Zoom keeps lower corner in view"), NULL};
extern long trainPause;
@@ -228,10 +124,12 @@ static paramData_t displayPLs[] = {
{ PD_TOGGLE, &colorLayers, "color-layers", PDO_NOPSHUPD|PDO_DRAW, colorLayersLabels, N_("Color Layers"), BC_HORZ, (void*)(CHANGE_MAIN) },
{ PD_RADIO, &drawTunnel, "tunnels", PDO_NOPSHUPD|PDO_DRAW, drawTunnelLabels, N_("Draw Tunnel"), BC_HORZ, (void*)(CHANGE_MAIN) },
{ PD_RADIO, &drawEndPtV, "endpt", PDO_NOPSHUPD|PDO_DRAW, drawEndPtLabels3, N_("Draw EndPts"), BC_HORZ, (void*)(CHANGE_MAIN) },
+ { PD_RADIO, &drawUnconnectedEndPt, "unconnected-endpt", PDO_NOPSHUPD|PDO_DRAW, drawEndPtUnconnectedSize, N_("Draw Unconnected EndPts"), BC_HORZ, (void*)(CHANGE_MAIN) },
{ PD_RADIO, &tieDrawMode, "tiedraw", PDO_NOPSHUPD|PDO_DRAW, tiedrawLabels, N_("Draw Ties"), BC_HORZ, (void*)(CHANGE_MAIN) },
{ PD_RADIO, &centerDrawMode, "centerdraw", PDO_NOPSHUPD|PDO_DRAW, drawCenterCircle, N_("Draw Centers"), BC_HORZ, (void*)(CHANGE_MAIN | CHANGE_MAP) },
{ PD_LONG, &twoRailScale, "tworailscale", PDO_NOPSHUPD, &i1_64, N_("Two Rail Scale"), 0, (void*)(CHANGE_MAIN) },
{ PD_LONG, &mapScale, "mapscale", PDO_NOPSHUPD, &i1_256, N_("Map Scale"), 0, (void*)(CHANGE_MAP) },
+ { PD_TOGGLE, &zoomCorner, "zoom-corner", PDO_NOPSHUPD, zoomCornerLabels, "", BC_HORZ },
{ PD_TOGGLE, &liveMap, "livemap", PDO_NOPSHUPD, liveMapLabels, "", BC_HORZ },
{ PD_TOGGLE, &autoPan, "autoPan", PDO_NOPSHUPD, autoPanLabels, "", BC_HORZ },
{ PD_TOGGLE, &labelEnable, "labelenable", PDO_NOPSHUPD, labelEnableLabels, N_("Label Enable"), 0, (void*)(CHANGE_MAIN) },
@@ -241,7 +139,7 @@ static paramData_t displayPLs[] = {
{ PD_TOGGLE, &layoutLabels, "layoutlabels", PDO_NOPSHUPD, listLabelsLabels, N_("Layout Labels"), BC_HORZ, (void*)(CHANGE_MAIN) },
{ PD_TOGGLE, &listLabels, "listlabels", PDO_NOPSHUPD, listLabelsLabels, N_("List Labels"), BC_HORZ, (void*)(CHANGE_PARAMS) },
/* ATTENTION: update the define below if you add entries above */
-#define I_HOTBARLABELS (15)
+#define I_HOTBARLABELS (17)
{ PD_DROPLIST, &carHotbarModeInx, "carhotbarlabels", PDO_NOPSHUPD|PDO_DLGUNDERCMDBUTT|PDO_LISTINDEX, (void*)250, N_("Car Labels"), 0, (void*)CHANGE_SCALE },
{ PD_LONG, &trainPause, "trainpause", PDO_NOPSHUPD, &i10_1000 , N_("Train Update Delay"), 0, 0 },
{ PD_TOGGLE, &hideTrainsInTunnels, "hideTrainsInTunnels", PDO_NOPSHUPD, hideTrainsInTunnelsLabels, "", BC_HORZ }
@@ -312,7 +210,7 @@ static char * moveQlabels[] = {
N_("End-Points"),
NULL };
-static char * preSelectLabels[] = { N_("Describe"), N_("Select"), NULL };
+static char * preSelectLabels[] = { N_("Properties"), N_("Select"), NULL };
#ifdef HIDESELECTIONWINDOW
static char * hideSelectionWindowLabels[] = { N_("Hide"), NULL };
@@ -374,7 +272,6 @@ EXPORT addButtonCallBack_t CmdoptInit( void )
static wWin_p prefW;
static long displayUnits;
-static wIndex_t distanceFormatInx;
static char * unitsLabels[] = { N_("English"), N_("Metric"), NULL };
static char * angleSystemLabels[] = { N_("Polar"), N_("Cartesian"), NULL };
static char * enableBalloonHelpLabels[] = { N_("Balloon Help"), NULL };
@@ -384,14 +281,14 @@ static paramData_t prefPLs[] = {
{ PD_RADIO, &angleSystem, "anglesystem", PDO_NOPSHUPD, angleSystemLabels, N_("Angles"), BC_HORZ },
{ PD_RADIO, &units, "units", PDO_NOPSHUPD|PDO_NOUPDACT, unitsLabels, N_("Units"), BC_HORZ, (void*)(CHANGE_MAIN|CHANGE_UNITS) },
#define I_DSTFMT (2)
- { PD_DROPLIST, &distanceFormatInx, "dstfmt", PDO_NOPSHUPD|PDO_LISTINDEX, (void*)150, N_("Length Format"), 0, (void*)(CHANGE_MAIN|CHANGE_UNITS) },
+ { PD_DROPLIST, &distanceFormatInx, "dstfmt", PDO_DIM|PDO_NOPSHUPD|PDO_LISTINDEX, (void*)150, N_("Length Format"), 0, (void*)(CHANGE_MAIN|CHANGE_UNITS) },
{ PD_FLOAT, &minLength, "minlength", PDO_DIM|PDO_SMALLDIM|PDO_NOPSHUPD, &r0o1_1, N_("Min Track Length") },
{ PD_FLOAT, &connectDistance, "connectdistance", PDO_DIM|PDO_SMALLDIM|PDO_NOPSHUPD, &r0o1_1, N_("Connection Distance"), },
{ PD_FLOAT, &connectAngle, "connectangle", PDO_NOPSHUPD, &r1_10, N_("Connection Angle") },
{ PD_FLOAT, &turntableAngle, "turntable-angle", PDO_NOPSHUPD, &r0_180, N_("Turntable Angle") },
{ PD_LONG, &maxCouplingSpeed, "coupling-speed-max", PDO_NOPSHUPD, &i10_100, N_("Max Coupling Speed"), 0 },
{ PD_TOGGLE, &enableBalloonHelp, "balloonhelp", PDO_NOPSHUPD, enableBalloonHelpLabels, "", BC_HORZ },
- { PD_LONG, &dragPixels, "dragpixels", PDO_NOPSHUPD|PDO_DRAW, &r1_1000, N_("Drag Distance") },
+ { PD_LONG, &dragPixels, "dragpixels", PDO_NOPSHUPD|PDO_DRAW, &i1_1000, N_("Drag Distance") },
{ PD_LONG, &dragTimeout, "dragtimeout", PDO_NOPSHUPD|PDO_DRAW, &i1_1000, N_("Drag Timeout") },
{ PD_LONG, &minGridSpacing, "mingridspacing", PDO_NOPSHUPD|PDO_DRAW, &i1_100, N_("Min Grid Spacing"), 0, 0 },
{ PD_LONG, &checkPtInterval, "checkpoint", PDO_NOPSHUPD|PDO_FILE, &i0_10000, N_("Check Point") },
@@ -458,6 +355,10 @@ static void LoadDstFmtList( void )
wListAddValue( (wList_p)prefPLs[I_DSTFMT].control, _(dstFmts[units][inx].name), NULL, (void*)dstFmts[units][inx].fmt );
}
+/**
+* Handle changing of measurement system. The list of number formats is loaded
+* and the first entry is selected as default value.
+*/
static void UpdatePrefD( void )
{
@@ -467,41 +368,75 @@ static void UpdatePrefD( void )
if ( prefW==NULL || (!wWinIsVisible(prefW)) || prefPLs[1].control==NULL )
return;
newUnits = wRadioGetValue( (wChoice_p)prefPLs[1].control );
- if ( newUnits == displayUnits )
- return;
- oldUnits = units;
- units = newUnits;
- for ( inx = 0; inx<sizeof prefPLs/sizeof prefPLs[0]; inx++ ) {
- if ( (prefPLs[inx].option&PDO_DIM) ) {
- ParamLoadControl( &prefPG, inx );
+ if (newUnits != displayUnits) {
+ oldUnits = units;
+ units = newUnits;
+ LoadDstFmtList();
+ distanceFormatInx = 0;
+
+ for (inx = 0; inx < sizeof prefPLs / sizeof prefPLs[0]; inx++) {
+ if ((prefPLs[inx].option&PDO_DIM)) {
+ ParamLoadControl(&prefPG, inx);
+ }
}
+
+ units = oldUnits;
+ displayUnits = newUnits;
}
- LoadDstFmtList();
- units = oldUnits;
- displayUnits = newUnits;
+ return;
}
+/**
+ * Handle changes of the measurement format.
+ */
+
+static void UpdateMeasureFmt()
+{
+ int inx;
+
+ distanceFormatInx = wListGetIndex((wList_p)prefPLs[I_DSTFMT].control);
+ units = wRadioGetValue((wChoice_p)prefPLs[1].control);
+
+ for (inx = 0; inx < sizeof prefPLs / sizeof prefPLs[0]; inx++) {
+ if ((prefPLs[inx].option&PDO_DIM)) {
+ ParamLoadControl(&prefPG, inx);
+ }
+ }
+}
static void PrefOk( void * junk )
{
- wBool_t resetValues = FALSE;
+ wBool_t resetValuesLow = FALSE, resetValuesHigh = FALSE;
long changes;
changes = GetChanges( &prefPG );
if (connectAngle < 1.0) {
connectAngle = 1.0;
- resetValues = TRUE;
+ resetValuesLow = TRUE;
+ } else if (connectAngle > 10.0) {
+ connectAngle = 10.0;
+ resetValuesHigh = TRUE;
}
if (connectDistance < 0.1) {
connectDistance = 0.1;
- resetValues = TRUE;
+ resetValuesLow = TRUE;
+ } else if (connectDistance > 1.0) {
+ connectDistance = 1.0;
+ resetValuesHigh = TRUE;
}
if (minLength < 0.1) {
minLength = 0.1;
- resetValues = TRUE;
+ resetValuesLow = TRUE;
+ } else if (minLength > 1.0) {
+ minLength = 1.0;
+ resetValuesHigh = TRUE;
}
- if ( resetValues ) {
+ if ( resetValuesLow ) {
NoticeMessage2( 0, MSG_CONN_PARAMS_TOO_SMALL, _("Ok"), NULL ) ;
}
+ if ( resetValuesHigh ) {
+ NoticeMessage2( 0, MSG_CONN_PARAMS_TOO_BIG, _("Ok"), NULL ) ;
+ }
+
wHide( prefW );
DoChangeNotification(changes);
diff --git a/app/bin/dpricels.c b/app/bin/dpricels.c
index 7e17121..87df88b 100644
--- a/app/bin/dpricels.c
+++ b/app/bin/dpricels.c
@@ -1,5 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/dpricels.c,v 1.2 2008-01-20 23:29:15 mni77 Exp $
+/** \file dpricels.c
+ * Price List Dialog
*/
/* XTrkCad - Model Railroad CAD
@@ -19,16 +19,15 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#include <string.h>
-#include "track.h"
#include "compound.h"
+#include "custom.h"
#include "i18n.h"
-
-/*****************************************************************************
- *
- * Price List Dialog
- *
- */
+#include "layout.h"
+#include "messages.h"
+#include "param.h"
+#include "track.h"
static wWin_p priceListW;
@@ -115,8 +114,8 @@ static void PriceListChange( long changes )
priceListW == NULL || !wWinIsVisible( priceListW ) )
return;
wListClear( priceListSelL );
- to1 = TurnoutAdd( listLabels|LABEL_COST, curScaleInx, priceListSelL, NULL, -1 );
- to2 = StructAdd( listLabels|LABEL_COST, curScaleInx, priceListSelL, NULL );
+ to1 = TurnoutAdd( listLabels|LABEL_COST, GetLayoutCurScale(), priceListSelL, NULL, -1 );
+ to2 = StructAdd( listLabels|LABEL_COST, GetLayoutCurScale(), priceListSelL, NULL );
if (to1 == NULL)
to1 = to2;
priceListCurrent = NULL;
diff --git a/app/bin/dprmfile.c b/app/bin/dprmfile.c
index e9cfc80..24250e7 100644
--- a/app/bin/dprmfile.c
+++ b/app/bin/dprmfile.c
@@ -20,19 +20,18 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include <time.h>
-#include "track.h"
-#include "i18n.h"
-
+#include <assert.h>
#include <stdint.h>
+#include <string.h>
+#include <time.h>
-#define PARAM_SUBDIR FILE_SEP_CHAR "params"
-
-/****************************************************************************
- *
- * Param File Management
- *
- */
+#include "custom.h"
+#include "fileio.h"
+#include "i18n.h"
+#include "messages.h"
+#include "param.h"
+#include "paths.h"
+#include "track.h"
typedef struct {
char * name;
@@ -83,8 +82,9 @@ static BOOL_T UpdateParamFiles( void )
long updateTime;
long lastTime;
- sprintf( message, "%s%sxtrkcad.upd", libDir, FILE_SEP_CHAR );
- updateF = fopen( message, "r" );
+ MakeFullpath(&fileNameP, libDir, "xtrkcad.upd", NULL);
+ updateF = fopen( fileNameP, "r" );
+ free(fileNameP);
if ( updateF == NULL )
return FALSE;
if ( fgets( message, sizeof message, updateF ) == NULL ) {
@@ -95,14 +95,15 @@ static BOOL_T UpdateParamFiles( void )
updateTime = atol( message );
if ( lastTime >= updateTime )
return FALSE;
- sprintf( fileName, "%s%sparams%s", libDir, FILE_SEP_CHAR, FILE_SEP_CHAR );
- fileNameP = fileName+strlen(fileName);
- while ( ( fgets( fileNameP, (fileName+sizeof fileName)-fileNameP, updateF ) ) != NULL ) {
- Stripcr( fileNameP );
- InfoMessage( _("Updating %s"), fileNameP );
- paramF = fopen( fileName, "r" );
+
+ while ( ( fgets( fileName, STR_LONG_SIZE, updateF ) ) != NULL ) {
+ Stripcr( fileName );
+ InfoMessage( _("Updating %s"), fileName );
+ MakeFullpath(&fileNameP, libDir, "params", fileName, NULL);
+ paramF = fopen( fileNameP, "r" );
if ( paramF == NULL ) {
- NoticeMessage( MSG_PRMFIL_OPEN_NEW, _("Ok"), NULL, fileName );
+ NoticeMessage( MSG_PRMFIL_OPEN_NEW, _("Ok"), NULL, fileNameP );
+ free(fileNameP);
continue;
}
contents = NULL;
@@ -115,25 +116,29 @@ static BOOL_T UpdateParamFiles( void )
}
fclose( paramF );
if (contents == NULL) {
- NoticeMessage( MSG_PRMFIL_NO_CONTENTS, _("Ok"), NULL, fileName );
+ NoticeMessage( MSG_PRMFIL_NO_CONTENTS, _("Ok"), NULL, fileNameP );
+ free(fileNameP);
continue;
}
cp = wPrefGetString( "Parameter File Map", contents );
- wPrefSetString( "Parameter File Map", contents, fileName );
+ wPrefSetString( "Parameter File Map", contents, fileNameP );
if (cp!=NULL && *cp!='\0') {
/* been there, done that */
+ free(fileNameP);
continue;
}
DYNARR_APPEND( paramFileInfo_t, paramFileInfo_da, 10 );
curParamFileIndex = paramFileInfo_da.cnt-1;
- paramFileInfo(curParamFileIndex).name = MyStrdup( fileName );
+ paramFileInfo(curParamFileIndex).name = MyStrdup( fileNameP );
curContents = curSubContents = NULL;
paramFileInfo(curParamFileIndex).deleted = FALSE;
paramFileInfo(curParamFileIndex).valid = TRUE;
paramFileInfo(curParamFileIndex).deletedShadow =
- paramFileInfo(curParamFileIndex).deleted = !ReadParams( 0, NULL, fileName );
+ paramFileInfo(curParamFileIndex).deleted = !ReadParams( 0, NULL, fileNameP );
paramFileInfo(curParamFileIndex).contents = curContents;
+
+ free(fileNameP);
}
wPrefSetInteger( "file", "updatetime", updateTime );
return TRUE;
@@ -194,6 +199,7 @@ EXPORT void RememberParamFiles( void )
*cp = ' ';
}
wPrefSetString( "Parameter File Names", message, contents );
+ wPrefSetString("Parameter File Map", contents, paramFileInfo(fileInx).name);
}
}
sprintf( message, "File%d", fileNo++ );
@@ -278,8 +284,6 @@ EXPORT int LoadParamFile(
char ** fileName,
void * data )
{
- char * cp;
- char *name;
wIndex_t inx;
int i = 0;
@@ -354,8 +358,6 @@ static void UpdateParamFileButton(
wIndex_t selcnt = wListGetSelectedCount( paramFileL );
wIndex_t inx, cnt;
- void * data;
-
// set the default
wButtonSetLabel( paramFileActionB, _("Unload"));
paramFilePLs[ I_PRMFILACTION ].context = FALSE;
@@ -400,7 +402,6 @@ static void ParamFileAction( void * action )
wIndex_t selcnt = wListGetSelectedCount( paramFileL );
wIndex_t inx, cnt;
wIndex_t fileInx;
- void * data;
unsigned newDeletedState;
if( action )
@@ -522,8 +523,10 @@ static void DoParamFiles( void * junk )
strcpy( curParamDir, dir );
else {
// in case there is no preference setting, use the installation's param directory as default
- strcpy( curParamDir, libDir );
- strcat( curParamDir, PARAM_SUBDIR );
+ char *str;
+ MakeFullpath(&str, libDir, PARAM_SUBDIR, NULL);
+ strcpy( curParamDir, str );
+ free(str);
}
mtbox_bm = wIconCreateBitMap( mtbox_width, mtbox_height, mtbox_bits, drawColorBlack );
chkbox_bm = wIconCreateBitMap( chkbox_width, chkbox_height, chkbox_bits, drawColorBlack );
diff --git a/app/bin/draw.c b/app/bin/draw.c
index 92814e0..3f25830 100644
--- a/app/bin/draw.c
+++ b/app/bin/draw.c
@@ -1,7 +1,5 @@
/** \file draw.c
* Basic drawing functions.
- *
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/draw.c,v 1.17 2009-12-12 17:20:59 m_fischer Exp $
*/
/* XTrkCad - Model Railroad CAD
@@ -24,6 +22,8 @@
#include <stdlib.h>
#include <stdio.h>
+#include <string.h>
+
#ifdef HAVE_MALLOC_C
#include <malloc.h>
#endif
@@ -40,12 +40,16 @@
#include <sys/timeb.h>
#endif
-#include "track.h"
-#include "utility.h"
-#include "misc.h"
+#include "cselect.h"
+#include "custom.h"
#include "draw.h"
-#include "i18n.h"
#include "fileio.h"
+#include "i18n.h"
+#include "messages.h"
+#include "misc.h"
+#include "param.h"
+#include "track.h"
+#include "utility.h"
static void DrawRoomWalls( wBool_t );
EXPORT void DrawMarkers( void );
@@ -57,6 +61,8 @@ static int log_mouse = 0;
static wFontSize_t drawMaxTextFontSize = 100;
+extern long zoomCorner;
+
/****************************************************************************
*
* EXPORTED VARIABLES
@@ -67,6 +73,7 @@ static wFontSize_t drawMaxTextFontSize = 100;
#define INIT_MAP_SCALE (64.0)
#define MAX_MAIN_SCALE (256.0)
#define MIN_MAIN_SCALE (1.0)
+#define MIN_MAIN_MACRO (0.10)
// static char FAR message[STR_LONG_SIZE];
@@ -94,6 +101,7 @@ EXPORT DIST_T pixelBins = 80;
*/
static wPos_t infoHeight;
+static wPos_t textHeight;
EXPORT wWin_p mapW;
EXPORT BOOL_T mapVisible;
@@ -111,11 +119,11 @@ EXPORT wDrawColor exceptionColor;
static wFont_p rulerFp;
static struct {
- wMessage_p scale_m;
- wMessage_p count_m;
- wMessage_p posX_m;
- wMessage_p posY_m;
- wMessage_p info_m;
+ wStatus_p scale_m;
+ wStatus_p count_m;
+ wStatus_p posX_m;
+ wStatus_p posY_m;
+ wStatus_p info_m;
wPos_t scale_w;
wPos_t count_w;
wPos_t pos_w;
@@ -462,33 +470,55 @@ EXPORT void DrawMultiString(
coOrd * hi)
{
char * cp;
+ char * cp1;
POS_T lineH, lineW;
- coOrd size, textsize;
+ coOrd size, textsize, posl, orig;
POS_T descent;
+ char *line;
- DrawTextSize2( &mainD, "Aqjlp", fp, fs, TRUE, &textsize, &descent );
- lineH = textsize.y+descent;
+ if (!text || !*text) {
+ return; //No string or blank
+ }
+ line = malloc(strlen(text) + 1);
+
+ DrawTextSize2( &mainD, "Aqjlp", fp, fs, TRUE, &textsize, &descent);
+ POS_T ascent = textsize.y-descent;
+ lineH = ascent+descent*1.5;
size.x = 0.0;
size.y = 0.0;
- while (1) {
- cp = message;
+ orig.x = pos.x;
+ orig.y = pos.y;
+ cp = line; // Build up message to hold all of the strings separated by nulls
+ while (*text) {
+ cp1 = cp;
while (*text != '\0' && *text != '\n')
*cp++ = *text++;
*cp = '\0';
- DrawTextSize2( &mainD, message, fp, fs, TRUE, &textsize, &descent );
+ DrawTextSize2( &mainD, cp1, fp, fs, TRUE, &textsize, &descent);
lineW = textsize.x;
if (lineW>size.x)
size.x = lineW;
- DrawString( d, pos, 0.0, message, fp, fs, color );
+ posl.x = pos.x;
+ posl.y = pos.y;
+ Rotate( &posl, orig, a);
+ DrawString( d, posl, a, cp1, fp, fs, color );
pos.y -= lineH;
size.y += lineH;
- if (*text)
+ if (*text == '\0')
break;
text++;
+ cp++;
+ }
+ if (lo) {
+ lo->x = posl.x;
+ lo->y = posl.y-descent;
+ }
+ if (hi) {
+ hi->x = posl.x+size.x;
+ hi->y = posl.y+ascent;
}
- *lo = pos;
- hi->x = pos.x;
- hi->y = pos.y+size.y;
+
+ free(line);
}
@@ -613,6 +643,52 @@ EXPORT void DrawTextSize(
DrawTextSize2( dp, text, fp, fs, relative, size, &descent );
}
+EXPORT void DrawMultiLineTextSize(
+ drawCmd_p dp,
+ char * text,
+ wFont_p fp,
+ wFontSize_t fs,
+ BOOL_T relative,
+ coOrd * size,
+ coOrd * lastline )
+{
+ POS_T descent, lineW, lineH;
+ coOrd textsize, blocksize;
+
+ char *cp;
+ char *line = malloc(strlen(text) + 1);
+
+ DrawTextSize2( &mainD, "Aqlip", fp, fs, TRUE, &textsize, &descent);
+ POS_T ascent = textsize.y-descent;
+ lineH = ascent+descent*1.5;
+ blocksize.x = 0;
+ blocksize.y = 0;
+ lastline->x = 0;
+ lastline->y = 0;
+ while (text && *text != '\0' ) {
+ cp = line;
+ while (*text != '\0' && *text != '\n')
+ *cp++ = *text++;
+ *cp = '\0';
+ blocksize.y += lineH;
+ DrawTextSize2( &mainD, line, fp, fs, TRUE, &textsize, &descent);
+ lineW = textsize.x;
+ if (lineW>blocksize.x)
+ blocksize.x = lineW;
+ lastline->x = textsize.x;
+ if (*text =='\n') {
+ lastline->y -= lineH;
+ lastline->x = 0;
+ }
+ if (*text == '\0')
+ break;
+ text++;
+ }
+ size->x = blocksize.x;
+ size->y = blocksize.y;
+ free(line);
+}
+
static void DDrawBitMap( drawCmd_p d, coOrd p, wDrawBitMap_p bm, wDrawColor color)
{
@@ -689,7 +765,7 @@ static void TempSegString(
tempSegs(tempSegs_da.cnt-1).u.t.angle = a;
tempSegs(tempSegs_da.cnt-1).u.t.fontP = fp;
tempSegs(tempSegs_da.cnt-1).u.t.fontSize = fontSize;
- tempSegs(tempSegs_da.cnt-1).u.t.string = s;
+ tempSegs(tempSegs_da.cnt-1).u.t.string = MyStrdup(s);
}
@@ -792,6 +868,8 @@ static wPos_t info_yb_offset = 2;
static wPos_t info_ym_offset = 3;
static wPos_t six = 2;
static wPos_t info_xm_offset = 2;
+static wPos_t messageOrControlX = 0;
+static wPos_t messageOrControlY = 0;
#define NUM_INFOCTL (4)
static wControl_p curInfoControl[NUM_INFOCTL];
static wPos_t curInfoLabelWidth[NUM_INFOCTL];
@@ -827,9 +905,9 @@ static wPos_t GetInfoPosWidth( void )
dist = 9.0*12.0+11.0+3.0/4.0-1.0/64.0;
}
- labelWidth = (wLabelWidth( xLabel ) > wLabelWidth( yLabel ) ? wLabelWidth( xLabel ):wLabelWidth( yLabel ));
+ labelWidth = (wStatusGetWidth( xLabel ) > wStatusGetWidth( yLabel ) ? wStatusGetWidth( xLabel ):wStatusGetWidth( yLabel ));
- return wLabelWidth( FormatDistance(dist) ) + labelWidth;
+ return wStatusGetWidth( FormatDistance(dist) ) + labelWidth;
}
/**
@@ -841,35 +919,43 @@ EXPORT void InitInfoBar( void )
{
wPos_t width, height, y, yb, ym, x, boxH;
wWinGetSize( mainW, &width, &height );
- infoHeight = 3 + wMessageGetHeight( 0L ) + 3;
- y = height - infoHeight;
+ infoHeight = 3 + wStatusGetHeight( COMBOBOX ) + 3;
+ textHeight = wStatusGetHeight(0L);
+ y = height - max(infoHeight,textHeight)-10;
+
+#ifdef WINDOWS
y -= 19; /* Kludge for MSW */
- infoD.pos_w = GetInfoPosWidth() + 2;
- infoD.scale_w = wLabelWidth( "999:1" ) + wLabelWidth( zoomLabel ) + 6;
- /* we do not use the count label for the moment */
- infoD.count_w = 0;
- infoD.info_w = width - infoD.pos_w*2 - infoD.scale_w - infoD.count_w - 45;
+#endif
+
+ infoD.pos_w = GetInfoPosWidth() + 2;
+ infoD.scale_w = wStatusGetWidth( "999:1" ) + wStatusGetWidth( zoomLabel ) + 6;
+ /* we do not use the count label for the moment */
+ infoD.count_w = 0;
+ infoD.info_w = width - 20 - infoD.pos_w*2 - infoD.scale_w - infoD.count_w - 45; // Allow Window to resize down
if (infoD.info_w <= 0) {
infoD.info_w = 10;
}
yb = y+info_yb_offset;
- ym = y+info_ym_offset;
- boxH = infoHeight-5;
- x = 0;
+ ym = y+(infoHeight-textHeight)/2;
+ boxH = infoHeight;
+ x = 2;
infoD.scale_b = wBoxCreate( mainW, x, yb, NULL, wBoxBelow, infoD.scale_w, boxH );
- infoD.scale_m = wMessageCreate( mainW, x+info_xm_offset, ym, "infoBarScale", infoD.scale_w-six, zoomLabel );
+ infoD.scale_m = wStatusCreate( mainW, x+info_xm_offset, ym, "infoBarScale", infoD.scale_w-six, zoomLabel);
x += infoD.scale_w + 10;
infoD.posX_b = wBoxCreate( mainW, x, yb, NULL, wBoxBelow, infoD.pos_w, boxH );
- infoD.posX_m = wMessageCreate( mainW, x+info_xm_offset, ym, "infoBarPosX", infoD.pos_w-six, xLabel );
+ infoD.posX_m = wStatusCreate( mainW, x+info_xm_offset, ym, "infoBarPosX", infoD.pos_w-six, xLabel );
x += infoD.pos_w + 5;
infoD.posY_b = wBoxCreate( mainW, x, yb, NULL, wBoxBelow, infoD.pos_w, boxH );
- infoD.posY_m = wMessageCreate( mainW, x+info_xm_offset, ym, "infoBarPosY", infoD.pos_w-six, yLabel );
+ infoD.posY_m = wStatusCreate( mainW, x+info_xm_offset, ym, "infoBarPosY", infoD.pos_w-six, yLabel );
x += infoD.pos_w + 10;
+ messageOrControlX = x+info_xm_offset; //Remember Position
+ messageOrControlY = ym;
infoD.info_b = wBoxCreate( mainW, x, yb, NULL, wBoxBelow, infoD.info_w, boxH );
- infoD.info_m = wMessageCreate( mainW, x+info_xm_offset, ym, "infoBarStatus", infoD.info_w-six, "" );
+ infoD.info_m = wStatusCreate( mainW, x+info_xm_offset, ym, "infoBarStatus", infoD.info_w-six, "" );
}
+
static void SetInfoBar( void )
{
wPos_t width, height, y, yb, ym, x, boxH;
@@ -877,23 +963,23 @@ static void SetInfoBar( void )
static long oldDistanceFormat = -1;
long newDistanceFormat;
wWinGetSize( mainW, &width, &height );
- y = height - infoHeight;
+ y = height - max(infoHeight,textHeight)-10;
newDistanceFormat = GetDistanceFormat();
if ( newDistanceFormat != oldDistanceFormat ) {
infoD.pos_w = GetInfoPosWidth() + 2;
wBoxSetSize( infoD.posX_b, infoD.pos_w, infoHeight-5 );
- wMessageSetWidth( infoD.posX_m, infoD.pos_w-six );
+ wStatusSetWidth( infoD.posX_m, infoD.pos_w-six );
wBoxSetSize( infoD.posY_b, infoD.pos_w, infoHeight-5 );
- wMessageSetWidth( infoD.posY_m, infoD.pos_w-six );
+ wStatusSetWidth( infoD.posY_m, infoD.pos_w-six );
}
- infoD.info_w = width - infoD.pos_w*2 - infoD.scale_w - infoD.count_w - 40 + 4;
+ infoD.info_w = width - 20 - infoD.pos_w*2 - infoD.scale_w - infoD.count_w - 40 + 4;
if (infoD.info_w <= 0) {
infoD.info_w = 10;
}
yb = y+info_yb_offset;
- ym = y+info_ym_offset;
- boxH = infoHeight-5;
- wWinClear( mainW, 0, y, width, infoHeight );
+ ym = y+(infoHeight-textHeight)/2;
+ boxH = infoHeight;
+ wWinClear( mainW, 0, y, width-20, infoHeight );
x = 0;
wControlSetPos( (wControl_p)infoD.scale_b, x, yb );
wControlSetPos( (wControl_p)infoD.scale_m, x+info_xm_offset, ym );
@@ -907,18 +993,18 @@ static void SetInfoBar( void )
wControlSetPos( (wControl_p)infoD.info_b, x, yb );
wControlSetPos( (wControl_p)infoD.info_m, x+info_xm_offset, ym );
wBoxSetSize( infoD.info_b, infoD.info_w, boxH );
- wMessageSetWidth( infoD.info_m, infoD.info_w-six );
+ wStatusSetWidth( infoD.info_m, infoD.info_w-six );
+ messageOrControlX = x+info_xm_offset;
+ messageOrControlY = ym;
if (curInfoControl[0]) {
- x = wControlGetPosX( (wControl_p)infoD.info_m );
-#ifndef WINDOWS
- yb -= 2;
-#endif
for ( inx=0; curInfoControl[inx]; inx++ ) {
x += curInfoLabelWidth[inx];
- wControlSetPos( curInfoControl[inx], x, yb );
+ int y_this = ym + (textHeight/2) - (wControlGetHeight( curInfoControl[inx] )/2);
+ wControlSetPos( curInfoControl[inx], x, y_this );
x += wControlGetWidth( curInfoControl[inx] )+3;
wControlShow( curInfoControl[inx], TRUE );
}
+ wControlSetPos( (wControl_p)infoD.info_m, x+info_xm_offset, ym ); //Move to end
}
}
@@ -929,7 +1015,7 @@ static void InfoScale( void )
sprintf( message, "%s%0.0f:1", zoomLabel, mainD.scale );
else
sprintf( message, "%s1:%0.0f", zoomLabel, floor(1/mainD.scale+0.5) );
- wMessageSetValue( infoD.scale_m, message );
+ wStatusSetValue( infoD.scale_m, message );
}
EXPORT void InfoCount( wIndex_t count )
@@ -942,38 +1028,13 @@ EXPORT void InfoCount( wIndex_t count )
EXPORT void InfoPos( coOrd pos )
{
-#ifdef LATER
- wPos_t ww, hh;
- DIST_T w, h;
-#endif
- wPos_t x, y;
-
+ DrawMarkers();
sprintf( message, "%s%s", xLabel, FormatDistance(pos.x) );
- wMessageSetValue( infoD.posX_m, message );
+ wStatusSetValue( infoD.posX_m, message );
sprintf( message, "%s%s", yLabel, FormatDistance(pos.y) );
- wMessageSetValue( infoD.posY_m, message );
-#ifdef LATER
- wDrawGetSize( mainD.d, &ww, &hh );
- w = (DIST_T)(ww/mainD.dpi);
- h = (DIST_T)(hh/mainD.dpi);
- /*wDrawClip( mainD.d, 0, 0, w, h );*/
-#endif
- mainD.CoOrd2Pix(&mainD,oldMarker,&x,&y);
- wDrawLine( mainD.d, 0, y, (wPos_t)(LBORDER), y,
- 0, wDrawLineSolid, markerColor, wDrawOptTemp );
- wDrawLine( mainD.d, x, 0, x, (wPos_t)(BBORDER),
- 0, wDrawLineSolid, markerColor, wDrawOptTemp );
-
- mainD.CoOrd2Pix(&mainD,pos,&x,&y);
- wDrawLine( mainD.d, 0, y, (wPos_t)(LBORDER), y,
- 0, wDrawLineSolid, markerColor, wDrawOptTemp );
- wDrawLine( mainD.d, x, 0, x, (wPos_t)(BBORDER),
- 0, wDrawLineSolid, markerColor, wDrawOptTemp );
-#ifdef LATER
- /*wDrawClip( mainD.d, LBORDER, BBORDER,
- w-(LBORDER+RBORDER), h-(BBORDER+TBORDER) );*/
-#endif
+ wStatusSetValue( infoD.posY_m, message );
oldMarker = pos;
+ DrawMarkers();
}
static wControl_p deferSubstituteControls[NUM_INFOCTL+1];
@@ -998,94 +1059,34 @@ EXPORT void InfoSubstituteControls(
memcpy( deferSubstituteLabels, labels, sizeof deferSubstituteLabels );
}
if ( inError || controls == NULL || controls[0]==NULL ) {
+ wControlSetPos( (wControl_p)infoD.info_m, messageOrControlX, messageOrControlY);
wControlShow( (wControl_p)infoD.info_m, TRUE );
return;
}
- x = wControlGetPosX( (wControl_p)infoD.info_m );
- y = wControlGetPosY( (wControl_p)infoD.info_m );
-#ifndef WINDOWS
- y -= 3;
-#endif
- wMessageSetValue( infoD.info_m, "" );
+ //x = wControlGetPosX( (wControl_p)infoD.info_m );
+ x = messageOrControlX;
+ y = messageOrControlY;
+ wStatusSetValue( infoD.info_m, "" );
wControlShow( (wControl_p)infoD.info_m, FALSE );
for ( inx=0; controls[inx]; inx++ ) {
curInfoLabelWidth[inx] = wLabelWidth(_(labels[inx]));
x += curInfoLabelWidth[inx];
- wControlSetPos( controls[inx], x, y );
+ int y_this = y + (textHeight/2) - (wControlGetHeight( controls[inx] )/2);
+ wControlSetPos( controls[inx], x, y_this );
x += wControlGetWidth( controls[inx] );
wControlSetLabel( controls[inx], _(labels[inx]) );
wControlShow( controls[inx], TRUE );
curInfoControl[inx] = controls[inx];
x += 3;
}
+ wControlSetPos( (wControl_p)infoD.info_m, x, y );
curInfoControl[inx] = NULL;
deferSubstituteControls[0] = NULL;
}
-
-#ifdef LATER
-EXPORT void InfoSubstituteControl(
- wControl_p control1,
- char * label1,
- wControl_p control2,
- char * label2 )
-{
- wControl_p controls[3];
- wPos_t widths[2];
-
- if (control1 == NULL) {
- InfoSubstituteControls( NULL, NULL );
- } else {
- controls[0] = control1;
- controls[1] = control2;
- controls[2] = NULL;
- widths[0] = wLabelWidth( label1 );
- if (label2)
- widths[1] = wLabelWidth( label2 );
- else
- widths[1] = 0;
- InfoSubstituteControls( controls, widths );
-#ifdef LATER
- if (curInfoControl[0]) {
- wControlShow( curInfoControl[0], FALSE );
- curInfoControl[0] = NULL;
- }
- if (curInfoControl[1]) {
- wControlShow( curInfoControl[1], FALSE );
- curInfoControl[1] = NULL;
- }
- wControlShow( (wControl_p)infoD.info_m, TRUE );
- } else {
- if (curInfoControl[0])
- wControlShow( curInfoControl[0], FALSE );
- if (curInfoControl[1])
- wControlShow( curInfoControl[1], FALSE );
- x = wControlGetPosX( (wControl_p)infoD.info_m );
- y = wControlGetPosY( (wControl_p)infoD.info_m );
- curInfoLabelWidth[0] = wLabelWidth( label1 );
- x += curInfoLabelWidth[0];
- wControlShow( (wControl_p)infoD.info_m, FALSE );
- wControlSetPos( control1, x, y );
- wControlShow( control1, TRUE );
- curInfoControl[0] = control1;
- curInfoControl[1] = NULL;
- if (control2 != NULL) {
- curInfoLabelWidth[1] = wLabelWidth( label2 );
- x = wControlBeside( curInfoControl[0] ) + 10;
- x += curInfoLabelWidth[1]+10;
- wControlSetPos( control2, x, y );
- wControlShow( control2, TRUE );
- curInfoControl[1] = control2;
- }
-#endif
- }
-}
-#endif
-
-
EXPORT void SetMessage( char * msg )
{
- wMessageSetValue( infoD.info_m, msg );
+ wStatusSetValue( infoD.info_m, msg );
}
@@ -1289,8 +1290,15 @@ lprintf("mainRedraw\n");
wDrawDelayUpdate( mainD.d, FALSE );
}
+/**
+ * The wlib event handler for the main window.
+ *
+ * \param win wlib window information
+ * \param e the wlib event
+ * \param data additional data (unused)
+ */
-EXPORT void MainProc( wWin_p win, winProcEvent e, void * data )
+void MainProc( wWin_p win, winProcEvent e, void * data )
{
wPos_t width, height;
switch( e ) {
@@ -1300,31 +1308,28 @@ EXPORT void MainProc( wWin_p win, winProcEvent e, void * data )
DrawMapBoundingBox( FALSE );
wWinGetSize( mainW, &width, &height );
LayoutToolBar();
- height -= (toolbarHeight+infoHeight);
+ height -= (toolbarHeight+max(infoHeight,textHeight)+10);
if (height >= 0) {
- wDrawSetSize( mainD.d, width, height );
+ wDrawSetSize( mainD.d, width-20, height );
wControlSetPos( (wControl_p)mainD.d, 0, toolbarHeight );
SetMainSize();
ConstraintOrig( &mainD.orig, mainD.size );
tempD.orig = mainD.orig;
SetInfoBar();
MainRedraw();
+ MapRedraw();
wPrefSetInteger( "draw", "mainwidth", width );
wPrefSetInteger( "draw", "mainheight", height );
- }
- DrawMapBoundingBox( TRUE );
+ } else DrawMapBoundingBox( TRUE );
+ break;
+ case wState_e:
+ wPrefSetInteger( "draw", "maximized", wWinIsMaximized(win) );
break;
case wQuit_e:
- if (changed &&
- NoticeMessage( MSG_SAVE_CHANGES, _("Save"), _("Quit")))
- DoSave(NULL);
-
- CleanupFiles();
- SaveState();
CleanupCustom();
break;
case wClose_e:
- /* shutdown the application */
+ /* shutdown the application via "close window" button */
DoQuit();
break;
default:
@@ -1380,9 +1385,7 @@ static void DrawRoomWalls( wBool_t t )
if (mainD.d == NULL)
return;
-#ifdef LATER
- wDrawGetDim( mainD.d, &w, &h );
-#endif
+
DrawTicks( &mainD, mapD.size );
p01.x = p10.y = 0.0;
@@ -1390,10 +1393,7 @@ static void DrawRoomWalls( wBool_t t )
p01.y = p11.y = mapD.size.y;
DrawLine( &mainD, p01, p11, 3, t?borderColor:wDrawColorWhite );
DrawLine( &mainD, p11, p10, 3, t?borderColor:wDrawColorWhite );
-#ifdef LATER
- /*wDrawClip( mainD.d, LBORDER, BBORDER,
- w-(LBORDER+RBORDER), h-(BBORDER+TBORDER) );*/
-#endif
+
}
@@ -1591,6 +1591,7 @@ EXPORT void DrawTicks( drawCmd_p d, coOrd size )
DIST_T offset;
offset = 0.0;
+
if ( d->orig.x<0.0 )
offset = d->orig.x;
p0.x = 0.0/*d->orig.x*/; p1.x = size.x;
@@ -1599,6 +1600,7 @@ EXPORT void DrawTicks( drawCmd_p d, coOrd size )
p0.y = p1.y = min(d->orig.y + d->size.y, size.y);
DrawRuler( d, p0, p1, offset, FALSE, TRUE, borderColor );
offset = 0.0;
+
if ( d->orig.y<0.0 )
offset = d->orig.y;
p0.y = 0.0/*d->orig.y*/; p1.y = max(size.y,0.0);
@@ -1630,6 +1632,7 @@ static void ConstraintOrig( coOrd * orig, coOrd size )
LOG( log_pan, 2, ( "ConstraintOrig [ %0.3f, %0.3f ] RoomSize(%0.3f %0.3f), WxH=%0.3fx%0.3f",
orig->x, orig->y, mapD.size.x, mapD.size.y,
size.x, size.y ) )
+
if (orig->x+size.x > mapD.size.x ) {
orig->x = mapD.size.x-size.x;
orig->x += (units==UNITS_ENGLISH?1.0:(1.0/2.54));
@@ -1639,17 +1642,26 @@ LOG( log_pan, 2, ( "ConstraintOrig [ %0.3f, %0.3f ] RoomSize(%0.3f %0.3f), WxH=%
if (orig->y+size.y > mapD.size.y ) {
orig->y = mapD.size.y-size.y;
orig->y += (units==UNITS_ENGLISH?1.0:1.0/2.54);
-
+
}
if (orig->y < 0)
orig->y = 0;
+
if (mainD.scale >= 1.0) {
if (units == UNITS_ENGLISH) {
- orig->x = floor(orig->x);
- orig->y = floor(orig->y);
+ orig->x = floor(orig->x*4)/4; //>1:1 = 1/4 inch
+ orig->y = floor(orig->y*4)/4;
} else {
- orig->x = floor(orig->x*2.54)/2.54;
- orig->y = floor(orig->y*2.54)/2.54;
+ orig->x = floor(orig->x*2.54*2)/(2.54*2); //>1:1 = 0.5 cm
+ orig->y = floor(orig->y*2.54*2)/(2.54*2);
+ }
+ } else {
+ if (units == UNITS_ENGLISH) {
+ orig->x = floor(orig->x*64)/64; //<1:1 = 1/64 inch
+ orig->y = floor(orig->y*64)/64;
+ } else {
+ orig->x = floor(orig->x*25.4*2)/(25.4*2); //>1:1 = 0.5 mm
+ orig->y = floor(orig->y*25.4*2)/(25.4*2);
}
}
orig->x = (long)(orig->x*pixelBins+0.5)/pixelBins;
@@ -1719,11 +1731,27 @@ static int ScaleInx( DIST_T scale )
for ( inx=0; inx<sizeof zoomList/sizeof zoomList[0]; inx++ ) {
if( scale == zoomList[inx].value ) {
return inx;
- }
+ }
}
return -1;
}
+/*
+ * Find Nearest Scale
+ */
+
+static int NearestScaleInx ( DIST_T scale, BOOL_T larger ) {
+ int inx;
+
+ for ( inx=0; inx<sizeof zoomList/sizeof zoomList[0]; inx++ ) {
+ if( scale == zoomList[inx].value ) {
+ return inx;
+ }
+ if (scale < zoomList[inx].value) return inx;
+ }
+ return inx-1;
+}
+
/**
* Set up for new drawing scale. After the scale was changed, eg. via zoom button, everything
* is set up for the new scale.
@@ -1739,10 +1767,6 @@ static void DoNewScale( DIST_T scale )
scale = MAX_MAIN_SCALE;
DrawHilight( &mapD, mainD.orig, mainD.size );
-#ifdef LATER
- center.x = mainD.orig.x + mainD.size.x/2.0;
- center.y = mainD.orig.y + mainD.size.y/2.0;
-#endif
tempD.scale = mainD.scale = scale;
mainD.dpi = wDrawGetDPI( mainD.d );
if ( mainD.dpi == 75 ) {
@@ -1754,9 +1778,14 @@ static void DoNewScale( DIST_T scale )
SetZoomRadio( scale );
InfoScale();
- SetMainSize();
- mainD.orig.x = mainCenter.x - mainD.size.x/2.0;
- mainD.orig.y = mainCenter.y - mainD.size.y/2.0;
+ SetMainSize();
+ if (zoomCorner) {
+ mainCenter.x = mainD.orig.x + mainD.size.x/2.0;
+ mainCenter.y = mainD.orig.y + mainD.size.y/2.0;
+ } else {
+ mainD.orig.x = mainCenter.x - mainD.size.x/2.0;
+ mainD.orig.y = mainCenter.y - mainD.size.y/2.0;
+ }
ConstraintOrig( &mainD.orig, mainD.size );
MainRedraw();
tempD.orig = mainD.orig;
@@ -1783,22 +1812,32 @@ EXPORT void DoZoomUp( void * mode )
long newScale;
int i;
- if ( mode != NULL || (MyGetKeyState()&WKEY_SHIFT) == 0 ) {
+ if ( mode != NULL || (MyGetKeyState()&WKEY_SHIFT) == 0) {
i = ScaleInx( mainD.scale );
+ if (i < 0) i = NearestScaleInx(mainD.scale, TRUE);
/*
* Zooming into macro mode happens when we are at scale 1:1.
* To jump into macro mode, the CTRL-key has to be pressed and held.
*/
if( mainD.scale != 1.0 || (mainD.scale == 1.0 && (MyGetKeyState()&WKEY_CTRL))) {
- if( i )
+ if( i ) {
+ if (mainD.scale <=1.0)
+ InfoMessage(_("Macro Zoom Mode"));
+ else
+ InfoMessage(_("Use Shift+PageDwn to jump to preset Zoom In"));
DoNewScale( zoomList[ i - 1 ].value );
+
+ } else InfoMessage("Min Macro Zoom");
+ } else {
+ InfoMessage(_("Scale 1:1 - Use Ctrl+PageDwn to go to Macro Zoom Mode"));
}
} else if ( (MyGetKeyState()&WKEY_CTRL) == 0 ) {
wPrefGetInteger( "misc", "zoomin", &newScale, 4 );
+ InfoMessage(_("Preset Zoom In Value selected. Shift+Ctrl+PageDwn to reset value"));
DoNewScale( newScale );
} else {
wPrefSetInteger( "misc", "zoomin", (long)mainD.scale );
- InfoMessage( _("Zoom In Program Value %ld:1"), (long)mainD.scale );
+ InfoMessage( _("Zoom In Program Value %ld:1, Shift+PageDwn to use"), (long)mainD.scale );
}
}
@@ -1816,15 +1855,21 @@ EXPORT void DoZoomDown( void * mode)
if ( mode != NULL || (MyGetKeyState()&WKEY_SHIFT) == 0 ) {
i = ScaleInx( mainD.scale );
- if( i>= 0 && i < ( sizeof zoomList/sizeof zoomList[0] - 1 ))
- DoNewScale( zoomList[ i + 1 ].value );
+ if (i < 0) i = NearestScaleInx(mainD.scale, TRUE);
+ if( i>= 0 && i < ( sizeof zoomList/sizeof zoomList[0] - 1 )) {
+ InfoMessage(_("Use Shift+PageUp to jump to preset Zoom Out"));
+ DoNewScale( zoomList[ i + 1 ].value );
+ } else
+ InfoMessage(_("At Maximum Zoom Out"));
+
} else if ( (MyGetKeyState()&WKEY_CTRL) == 0 ) {
wPrefGetInteger( "misc", "zoomout", &newScale, 16 );
+ InfoMessage(_("Preset Zoom Out Value selected. Shift+Ctrl+PageUp to reset value"));
DoNewScale( newScale );
} else {
wPrefSetInteger( "misc", "zoomout", (long)mainD.scale );
- InfoMessage( _("Zoom Out Program Value %ld:1"), (long)mainD.scale );
+ InfoMessage( _("Zoom Out Program Value %ld:1 set, Shift+PageUp to use"), (long)mainD.scale );
}
}
@@ -1911,12 +1956,6 @@ LOG( log_pan, 2, ( "NEW = [ %0.3f, %0.3f ] \n", pos.x, pos.y ) )
if (!liveMap)
MainRedraw();
LOG( log_pan, 1, ( "FINAL = [ %0.3f, %0.3f ]\n", pos.x, pos.y ) )
-#ifdef LATER
- if (recordF) {
- fprintf( recordF, "ORIG %0.3f %0.3f %0.3f\n",
- mainD.scale, mainD.orig.x, mainD.orig.y );
- }
-#endif
mode = noPan;
break;
@@ -1928,11 +1967,6 @@ LOG( log_pan, 1, ( "FINAL = [ %0.3f, %0.3f ]\n", pos.x, pos.y ) )
DrawHilight( &mapD, mainD.orig, mainD.size );
newOrig = pos;
oldOrig = newOrig;
-#ifdef LATER
- xscale = INIT_MAP_SCALE;
- size.x = mapD.size.x/xscale;
- size.y = mapD.size.y/xscale;
-#endif
xscale = 1;
size.x = mainD.size.x/mainD.scale;
size.y = mainD.size.y/mainD.scale;
@@ -2001,43 +2035,48 @@ LOG( log_pan, 1, ( "FINAL = [ %0.3f, %0.3f ]\n", pos.x, pos.y ) )
return;
case wAccelKey_F5:
MainRedraw();
+ MapRedraw();
return;
#endif
case wAccelKey_Right:
- DrawHilight( &mapD, mainD.orig, mainD.size );
+ //DrawHilight( &mapD, mainD.orig, mainD.size );
mainD.orig.x += mainD.size.x/2;
ConstraintOrig( &mainD.orig, mainD.size );
mainCenter.x = mainD.orig.x + mainD.size.x/2.0;
mainCenter.y = mainD.orig.y + mainD.size.y/2.0;
MainRedraw();
- DrawHilight( &mapD, mainD.orig, mainD.size );
+ MapRedraw();
+ //DrawHilight( &mapD, mainD.orig, mainD.size );
break;
case wAccelKey_Left:
- DrawHilight( &mapD, mainD.orig, mainD.size );
+ //DrawHilight( &mapD, mainD.orig, mainD.size );
mainD.orig.x -= mainD.size.x/2;
ConstraintOrig( &mainD.orig, mainD.size );
mainCenter.x = mainD.orig.x + mainD.size.x/2.0;
mainCenter.y = mainD.orig.y + mainD.size.y/2.0;
MainRedraw();
- DrawHilight( &mapD, mainD.orig, mainD.size );
+ MapRedraw();
+ //DrawHilight( &mapD, mainD.orig, mainD.size );
break;
case wAccelKey_Up:
- DrawHilight( &mapD, mainD.orig, mainD.size );
+ //DrawHilight( &mapD, mainD.orig, mainD.size );
mainD.orig.y += mainD.size.y/2;
ConstraintOrig( &mainD.orig, mainD.size );
mainCenter.x = mainD.orig.x + mainD.size.x/2.0;
mainCenter.y = mainD.orig.y + mainD.size.y/2.0;
MainRedraw();
- DrawHilight( &mapD, mainD.orig, mainD.size );
+ MapRedraw();
+ //DrawHilight( &mapD, mainD.orig, mainD.size );
break;
case wAccelKey_Down:
- DrawHilight( &mapD, mainD.orig, mainD.size );
+ //DrawHilight( &mapD, mainD.orig, mainD.size );
mainD.orig.y -= mainD.size.y/2;
ConstraintOrig( &mainD.orig, mainD.size );
mainCenter.x = mainD.orig.x + mainD.size.x/2.0;
mainCenter.y = mainD.orig.y + mainD.size.y/2.0;
MainRedraw();
- DrawHilight( &mapD, mainD.orig, mainD.size );
+ MapRedraw();
+ //DrawHilight( &mapD, mainD.orig, mainD.size );
break;
default:
return;
@@ -2167,6 +2206,12 @@ static void DoMouse( wAction_t action, coOrd pos )
break;
case wActionExtKey:
mainD.CoOrd2Pix(&mainD,pos,&x,&y);
+ if ((MyGetKeyState() &
+ (WKEY_SHIFT | WKEY_CTRL)) == (WKEY_SHIFT | WKEY_CTRL)) break; //Allow SHIFT+CTRL for Move
+ if (((action>>8)&0xFF) == wAccelKey_LineFeed) {
+ action = C_TEXT+((int)(0x0A<<8));
+ break;
+ }
switch ((wAccelKey_e)(action>>8)) {
case wAccelKey_Del:
SelectDelete();
@@ -2180,40 +2225,56 @@ static void DoMouse( wAction_t action, coOrd pos )
break;
#endif
case wAccelKey_Right:
- DrawHilight( &mapD, mainD.orig, mainD.size );
- mainD.orig.x += mainD.size.x/2;
+ //DrawHilight( &mapD, mainD.orig, mainD.size );
+ if ((MyGetKeyState() & WKEY_SHIFT) != 0)
+ mainD.orig.x += 0.25*mainD.scale; //~1cm in 1::1, 1ft in 30:1, 1mm in 10:1
+ else
+ mainD.orig.x += mainD.size.x/2;
ConstraintOrig( &mainD.orig, mainD.size );
mainCenter.x = mainD.orig.x + mainD.size.x/2.0;
mainCenter.y = mainD.orig.y + mainD.size.y/2.0;
MainRedraw();
- DrawHilight( &mapD, mainD.orig, mainD.size );
+ MapRedraw();
+ //DrawHilight( &mapD, mainD.orig, mainD.size );
break;
case wAccelKey_Left:
- DrawHilight( &mapD, mainD.orig, mainD.size );
- mainD.orig.x -= mainD.size.x/2;
+ //DrawHilight( &mapD, mainD.orig, mainD.size );
+ if ((MyGetKeyState() & WKEY_SHIFT) != 0)
+ mainD.orig.x -= 0.25*mainD.scale;
+ else
+ mainD.orig.x -= mainD.size.x/2;
ConstraintOrig( &mainD.orig, mainD.size );
mainCenter.x = mainD.orig.x + mainD.size.x/2.0;
mainCenter.y = mainD.orig.y + mainD.size.y/2.0;
MainRedraw();
- DrawHilight( &mapD, mainD.orig, mainD.size );
+ MapRedraw();
+ //DrawHilight( &mapD, mainD.orig, mainD.size );
break;
case wAccelKey_Up:
- DrawHilight( &mapD, mainD.orig, mainD.size );
- mainD.orig.y += mainD.size.y/2;
+ //DrawHilight( &mapD, mainD.orig, mainD.size );
+ if ((MyGetKeyState() & WKEY_SHIFT) != 0)
+ mainD.orig.y += 0.25*mainD.scale;
+ else
+ mainD.orig.y += mainD.size.x/2;
ConstraintOrig( &mainD.orig, mainD.size );
mainCenter.x = mainD.orig.x + mainD.size.x/2.0;
mainCenter.y = mainD.orig.y + mainD.size.y/2.0;
MainRedraw();
- DrawHilight( &mapD, mainD.orig, mainD.size );
+ MapRedraw();
+ //DrawHilight( &mapD, mainD.orig, mainD.size );
break;
case wAccelKey_Down:
- DrawHilight( &mapD, mainD.orig, mainD.size );
- mainD.orig.y -= mainD.size.y/2;
+ //DrawHilight( &mapD, mainD.orig, mainD.size );
+ if ((MyGetKeyState() & WKEY_SHIFT) != 0)
+ mainD.orig.y -= 0.25*mainD.scale;
+ else
+ mainD.orig.y -= mainD.size.x/2;
ConstraintOrig( &mainD.orig, mainD.size );
mainCenter.x = mainD.orig.x + mainD.size.x/2.0;
mainCenter.y = mainD.orig.y + mainD.size.y/2.0;
MainRedraw();
- DrawHilight( &mapD, mainD.orig, mainD.size );
+ MapRedraw();
+ //DrawHilight( &mapD, mainD.orig, mainD.size );
break;
default:
return;
@@ -2222,9 +2283,9 @@ static void DoMouse( wAction_t action, coOrd pos )
InfoPos( pos );
return;
case C_TEXT:
- if ((action>>8) == 0x0D)
+ if ((action>>8) == 0x0D) {
action = C_OK;
- else if ((action>>8) == 0x1B) {
+ } else if ((action>>8) == 0x1B) {
ConfirmReset( TRUE );
return;
}
@@ -2321,11 +2382,12 @@ static void DoMousew( wDraw_p d, void * context, wAction_t action, wPos_t x, wPo
}
ConstraintOrig( &orig, mainD.size );
if ( orig.x != mainD.orig.x || orig.y != mainD.orig.y ) {
- DrawMapBoundingBox( FALSE );
+ //DrawMapBoundingBox( FALSE );
mainD.orig = orig;
MainRedraw();
+ MapRedraw();
/*DrawSegs( &tempD, zero, 0.0, &tempSegs(0), tempSegs_da.cnt, trackGauge, wDrawColorBlack );*/
- DrawMapBoundingBox( TRUE );
+ //DrawMapBoundingBox( TRUE );
wFlush();
}
}
@@ -2384,8 +2446,10 @@ static void MapDlgUpdate(
static void DrawChange( long changes )
{
- if (changes & CHANGE_MAIN)
+ if (changes & CHANGE_MAIN) {
MainRedraw();
+ MapRedraw();
+ }
if (changes &CHANGE_UNITS)
SetInfoBar();
if (changes & CHANGE_MAP)
@@ -2397,9 +2461,10 @@ EXPORT void DrawInit( int initialZoom )
{
wPos_t w, h;
+
wWinGetSize( mainW, &w, &h );
/*LayoutToolBar();*/
- h -= toolbarHeight+infoHeight;
+ h = h - (toolbarHeight+max(textHeight,infoHeight)+10);
if ( w <= 0 ) w = 1;
if ( h <= 0 ) h = 1;
tempD.d = mainD.d = wDrawCreate( mainW, 0, toolbarHeight, "", BD_TICKS,
@@ -2454,3 +2519,170 @@ EXPORT void DrawInit( int initialZoom )
wAttachAccelKey( wAccelKey_Pgdn, 0, (wAccelKeyCallBack_p)doZoomDown, NULL );
#endif
}
+
+#include "bitmaps/pan.xpm"
+
+static STATUS_T CmdPan(
+ wAction_t action,
+ coOrd pos )
+{
+ static enum { PAN, ZOOM, NONE } panmode;
+
+ static coOrd base, size;
+
+ DIST_T scale_x,scale_y;
+
+ static coOrd start_pos;
+ if ( action == C_DOWN ) {
+ panmode = PAN;
+ } else if ( action == C_RDOWN) {
+ panmode = ZOOM;
+ }
+
+ switch (action&0xFF) {
+ case C_START:
+ start_pos = zero;
+ panmode = NONE; InfoMessage(_("Left Drag to Pan, Right Drag to Zoom, 0 to set Origin to 0,0, 1-9 to Zoom#, e to set to Extent"));
+ break;
+ case C_DOWN:
+ panmode = PAN;
+ start_pos = pos;
+ InfoMessage(_("Pan Mode - drag point to new position"));
+ break;
+ case C_RDOWN:
+ panmode = ZOOM;
+ start_pos = pos;
+ base = pos;
+ size = zero;
+ InfoMessage(_("Zoom Mode - drag Area to Zoom"));
+ break;
+ case C_MOVE:
+ if (panmode == PAN) {
+ double min_inc;
+ if (mainD.scale >= 1.0) {
+ if (units == UNITS_ENGLISH) {
+ min_inc = 1/4; //>1:1 = 1/4 inch
+ } else {
+ min_inc = 1/(2.54*2); //>1:1 = 0.5 cm
+ }
+ } else {
+ if (units == UNITS_ENGLISH) {
+ min_inc = 1/64; //<1:1 = 1/64 inch
+ } else {
+ min_inc = 1/(25.4*2); //>1:1 = 0.5 mm
+ }
+ }
+ if ((fabs(pos.x-start_pos.x) > min_inc) || (fabs(pos.y-start_pos.y) > min_inc)) {
+ DrawMapBoundingBox( TRUE );
+ mainD.orig.x -= (pos.x - start_pos.x);
+ mainD.orig.y -= (pos.y - start_pos.y);
+ ConstraintOrig( &mainD.orig, mainD.size );
+ tempD.orig = mainD.orig;
+ mainCenter.x = mainD.orig.x + mainD.size.x/2.0;
+ mainCenter.y = mainD.orig.y + mainD.size.y/2.0;
+ DrawMapBoundingBox( TRUE );
+ }
+ }
+ MainRedraw();
+ break;
+ case C_RMOVE:
+ if (panmode == ZOOM) {
+ base = start_pos;
+ size.x = pos.x - base.x;
+ if (size.x < 0) {
+ size.x = - size.x ;
+ base.x = pos.x;
+ }
+ size.y = pos.y - base.y;
+ if (size.y < 0) {
+ size.y = - size.y;
+ base.y = pos.y;
+ }
+ }
+ MainRedraw();
+ break;
+ case C_RUP:
+
+ scale_x = size.x/mainD.size.x*mainD.scale;
+ scale_y = size.y/mainD.size.y*mainD.scale;
+
+ if (scale_x<scale_y)
+ scale_x = scale_y;
+ if (scale_x>1) scale_x = ceil( scale_x );
+ else scale_x = 1/(ceil(1/scale_x));
+
+ if (scale_x > MAX_MAIN_SCALE) scale_x = MAX_MAIN_SCALE;
+ if (scale_x < MIN_MAIN_MACRO) scale_x = MIN_MAIN_MACRO;
+
+ mainCenter.x = base.x + size.x/2.0; //Put center for scale in center of square
+ mainCenter.y = base.y + size.y/2.0;
+ mainD.orig.x = base.x;
+ mainD.orig.y = base.y;
+
+ panmode = NONE;
+ DoNewScale(scale_x);
+ MapRedraw();
+ break;
+ case C_UP:
+ panmode = NONE;
+ break;
+ case C_REDRAW:
+ if (panmode == ZOOM) {
+ if (base.x && base.y && size.x && size.y)
+ DrawHilight( &mainD, base, size );
+ }
+ break;
+ case C_CANCEL:
+ base = zero;
+ return C_TERMINATE;
+ case C_TEXT:
+ panmode = NONE;
+ if ((action>>8) == 0x65) { //"e"
+ scale_x = mapD.size.x/(mainD.size.x/mainD.scale);
+ scale_y = mapD.size.y/(mainD.size.y/mainD.scale);
+ if (scale_x<scale_y)
+ scale_x = scale_y;
+ scale_x = ceil(scale_x);
+ if (scale_x < 1) scale_x = 1;
+ if (scale_x > MAX_MAIN_SCALE) scale_x = MAX_MAIN_SCALE;
+ mainD.orig = zero;
+ mainCenter.x = mainD.orig.x + mapD.size.x/2.0;
+ mainCenter.y = mainD.orig.y + mapD.size.y/2.0;
+ DoNewScale(scale_x);
+ ConstraintOrig( &mainD.orig, mainD.size );
+ mainCenter.x = mainD.orig.x + mainD.size.x/2.0;
+ mainCenter.y = mainD.orig.y + mainD.size.y/2.0;
+ MapRedraw();
+ MainRedraw();
+ }
+ if ((action>>8) == 0x30) { //"0"
+ mainD.orig = zero;
+ ConstraintOrig( &mainD.orig, mainD.size );
+ mainCenter.x = mainD.orig.x + mainD.size.x/2.0;
+ mainCenter.y = mainD.orig.y + mainD.size.y/2.0;
+ MapRedraw();
+ MainRedraw();
+ }
+ if ((action>>8) >= 0x31 && (action>>8) <= 0x39) { //"1" to "9"
+ scale_x = (action>>8)&0x0F;
+ DoNewScale(scale_x);
+ MapRedraw();
+ MainRedraw();
+ }
+ if ((action>>8) == 0x0D) {
+ return C_TERMINATE;
+ }
+ else if ((action>>8) == 0x1B) {
+ return C_TERMINATE;
+ }
+ break;
+ }
+
+ return C_CONTINUE;
+}
+
+EXPORT void InitCmdPan( wMenu_p menu )
+{
+ panCmdInx = AddMenuButton( menu, CmdPan, "cmdPan", _("Pan/Zoom"), wIconCreatePixMap(pan_xpm),
+ LEVEL0, IC_CANCEL|IC_POPUP|IC_LCLICK|IC_RCLICK|IC_CMDMENU, ACCL_PAN, NULL );
+}
diff --git a/app/bin/draw.h b/app/bin/draw.h
index db8d91a..6a7d806 100644
--- a/app/bin/draw.h
+++ b/app/bin/draw.h
@@ -1,5 +1,5 @@
/** \file draw.h
- *
+ * Definitions and prototypes for drawing operations
*/
/* XTrkCad - Model Railroad CAD
@@ -23,8 +23,8 @@
#ifndef DRAW_H
#define DRAW_H
-#define MSG_BASE (1000)
-#include "messages.h"
+#include "common.h"
+#include "wlib.h"
#define DC_TICKS (1<<1)
#define DC_PRINT (1<<2)
@@ -106,6 +106,7 @@ extern long drawCount;
extern BOOL_T drawEnable;
extern long currRedraw;
+
extern wDrawColor drawColorBlack;
extern wDrawColor drawColorWhite;
extern wDrawColor drawColorRed;
@@ -117,6 +118,7 @@ extern wDrawColor drawColorGold;
#define wDrawColorBlack drawColorBlack
#define wDrawColorWhite drawColorWhite
#define wDrawColorBlue drawColorBlue
+#define wDrawColorRed drawColorRed
extern wDrawColor markerColor;
extern wDrawColor borderColor;
@@ -167,8 +169,10 @@ void DrawHilightPolygon( drawCmd_p, coOrd *, int );
#define BOX_ARROW (4)
#define BOX_BACKGROUND (5)
void DrawBoxedString( int, drawCmd_p, coOrd, char *, wFont_p, wFontSize_t, wDrawColor, ANGLE_T );
-void DrawTextSize2( drawCmd_p, char *, wFont_p, wFontSize_t, BOOL_T, coOrd *, POS_T * );
+void DrawMultiLineTextSize(drawCmd_p dp, char * text, wFont_p fp, wFontSize_t fs, BOOL_T relative, coOrd * size, coOrd * lastline );
+void DrawTextSize2( drawCmd_p, char *, wFont_p, wFontSize_t, BOOL_T, coOrd *, POS_T *);
void DrawTextSize( drawCmd_p, char *, wFont_p, wFontSize_t, BOOL_T, coOrd * );
+void DrawMultiString(drawCmd_p d, coOrd pos, char * text, wFont_p fp, wFontSize_t fs, wDrawColor color, ANGLE_T a, coOrd * lo, coOrd * hi);
BOOL_T SetRoomSize( coOrd );
void GetRoomSize( coOrd * );
void DoRedraw( void );
@@ -192,6 +196,8 @@ void InfoPos( coOrd );
void InfoCount( wIndex_t );
void SetMessage( char * );
+wIndex_t panCmdInx;
+
void InfoSubstituteControls( wControl_p *, char * * );
void MapGrid( coOrd, coOrd, ANGLE_T, coOrd, ANGLE_T, POS_T, POS_T, int *, int *, int *, int * );
diff --git a/app/bin/drawgeom.c b/app/bin/drawgeom.c
index 8ef31e8..6d4b237 100644
--- a/app/bin/drawgeom.c
+++ b/app/bin/drawgeom.c
@@ -17,14 +17,22 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#include <math.h>
#include <stdarg.h>
-#include "track.h"
+#include <string.h>
+
#include "ccurve.h"
+#include "cbezier.h"
#include "compound.h"
+#include "cundo.h"
#include "drawgeom.h"
+#include "fileio.h"
#include "i18n.h"
+#include "messages.h"
+#include "param.h"
+#include "track.h"
+#include "utility.h"
-/*EXPORT drawContext_t * drawContext;*/
static long drawGeomCurveMode;
#define contextSegs(N) DYNARR_N( trkSeg_t, context->Segs_da, N )
@@ -68,6 +76,7 @@ static void EndPoly( drawContext_t * context, int cnt )
segPtr->u.p.pts = pts;
segPtr->u.p.angle = 0.0;
segPtr->u.p.orig = zero;
+ segPtr->u.p.polyType = FREEFORM;
UndoStart( _("Create Lines"), "newDraw" );
trk = MakeDrawFromSeg( zero, 0.0, segPtr );
DrawNewTrack( trk );
@@ -133,19 +142,38 @@ STATUS_T DrawGeomMouse(
case wActionLDown:
context->Started = TRUE;
+ if (context->State == 0) { //First Down only
+ switch (context->Op) { //Snap pos to nearest line end point if this is end and just shift is depressed for lines and some curves
+ case OP_LINE:
+ case OP_CURVE1:
+ if ((MyGetKeyState() & (WKEY_SHIFT|WKEY_CTRL|WKEY_ALT)) == WKEY_SHIFT ) {
+ coOrd p = pos;
+ track_p t;
+ if ((t=OnTrack(&p,FALSE,FALSE))) {
+ if (GetClosestEndPt(t,&p)) {
+ pos = p;
+ }
+ }
+ };
+ break;
+ default:
+ ;
+ }
+ }
if ((context->Op == OP_CURVE1 || context->Op == OP_CURVE2 || context->Op == OP_CURVE3 || context->Op == OP_CURVE4) && context->State == 1) {
;
} else {
- if ( (MyGetKeyState() & (WKEY_SHIFT|WKEY_CTRL|WKEY_ALT)) == WKEY_CTRL )
+ if ( (MyGetKeyState() & (WKEY_SHIFT|WKEY_CTRL|WKEY_ALT)) == WKEY_CTRL ) // Control snaps to nearest track (not necessarily the end)
OnTrack( &pos, FALSE, FALSE );
pos0 = pos;
pos1 = pos;
}
+
switch (context->Op) {
case OP_LINE:
case OP_DIMLINE:
case OP_BENCH:
- if ( lastValid && ( MyGetKeyState() & WKEY_SHIFT ) ) {
+ if ( lastValid && ( MyGetKeyState() & WKEY_CTRL ) ) {
pos = pos0 = lastPos;
}
DYNARR_SET( trkSeg_t, tempSegs_da, 1 );
@@ -166,7 +194,7 @@ STATUS_T DrawGeomMouse(
context->message( _("Drag to place next end point") );
break;
case OP_TBLEDGE:
- if ( lastValid && ( MyGetKeyState() & WKEY_SHIFT ) ) {
+ if ( lastValid && ( MyGetKeyState() & WKEY_CTRL ) ) {
pos = pos0 = lastPos;
}
OnTableEdgeEndPt( NULL, &pos );
@@ -278,8 +306,8 @@ STATUS_T DrawGeomMouse(
break;
case OP_CURVE1: case OP_CURVE2: case OP_CURVE3: case OP_CURVE4:
if (context->State == 0) {
+ CreateCurve( C_MOVE, pos, FALSE, context->Color, width, drawGeomCurveMode, context->message );
pos0x = pos;
- CreateCurve( C_MOVE, pos, TRUE, context->Color, width, drawGeomCurveMode, context->message );
} else {
PlotCurve( drawGeomCurveMode, pos0, pos0x, pos1, &context->ArcData, FALSE );
tempSegs(0).color = context->Color;
@@ -346,6 +374,7 @@ STATUS_T DrawGeomMouse(
else
DrawSegs( context->D, zero, 0.0, &tempSegs(0), tempSegs_da.cnt, trackGauge, wDrawColorBlack );
context->D->funcs->options = oldOptions;
+ if (context->Op == OP_DIMLINE) MainRedraw(); //Wipe Out Text
return C_CONTINUE;
case wActionLUp:
@@ -355,6 +384,45 @@ STATUS_T DrawGeomMouse(
DrawSegs( context->D, zero, 0.0, &tempSegs(0), tempSegs_da.cnt, trackGauge, wDrawColorBlack );
lastValid = FALSE;
createTrack = FALSE;
+ if ((context->State == 0 && (context->Op == OP_LINE )) || //first point release for line,
+ (context->State == 1 && context->Op == OP_CURVE1)) { //second point for curve from end
+ switch (context->Op) { //Snap pos to nearest line end point if this is on a line and just shift is depressed for lines and some curves
+ case OP_CURVE1:
+ case OP_LINE:
+ if ((MyGetKeyState() & (WKEY_SHIFT|WKEY_CTRL|WKEY_ALT)) == WKEY_SHIFT ) {
+ coOrd p = pos1;
+ track_p t;
+ if ((t=OnTrack(&p,FALSE,FALSE))) {
+ if (GetClosestEndPt(t,&p)) {
+ pos1 = p;
+ if (context->Op == OP_LINE) {
+ tempSegs(0).u.l.pos[1] = p;
+ } else {
+ PlotCurve( drawGeomCurveMode, pos0, pos0x, pos1, &context->ArcData, FALSE );
+ if (context->ArcData.type == curveTypeStraight) {
+ tempSegs(0).type = SEG_STRLIN;
+ tempSegs(0).u.l.pos[0] = pos0;
+ tempSegs(0).u.l.pos[1] = context->ArcData.pos1;
+ tempSegs_da.cnt = 1;
+ } else if (context->ArcData.type == curveTypeNone) {
+ tempSegs_da.cnt = 0;
+ } else if (context->ArcData.type == curveTypeCurve) {
+ tempSegs(0).type = SEG_CRVLIN;
+ tempSegs(0).u.c.center = context->ArcData.curvePos;
+ tempSegs(0).u.c.radius = context->ArcData.curveRadius;
+ tempSegs(0).u.c.a0 = context->ArcData.a0;
+ tempSegs(0).u.c.a1 = context->ArcData.a1;
+ tempSegs_da.cnt = 1;
+ }
+ }
+ }
+ }
+ };
+ break;
+ default:
+ ;
+ }
+ }
switch ( context->Op ) {
case OP_LINE:
case OP_DIMLINE:
@@ -368,7 +436,7 @@ STATUS_T DrawGeomMouse(
context->State = 1;
context->ArcAngle = FindAngle( pos0, pos1 );
pos0x = pos1;
- CreateCurve( C_UP, pos, TRUE, context->Color, width, drawGeomCurveMode, context->message );
+ CreateCurve( C_UP, pos, FALSE, context->Color, width, drawGeomCurveMode, context->message );
DrawSegs( context->D, zero, 0.0, &tempSegs(0), tempSegs_da.cnt, trackGauge, wDrawColorBlack );
segCnt = tempSegs_da.cnt;
context->message( _("Drag on Red arrows to adjust curve") );
@@ -417,17 +485,16 @@ STATUS_T DrawGeomMouse(
break;
case OP_BOX:
case OP_FILLBOX:
- if ( context->Op == OP_FILLBOX ) {
- pts = (coOrd*)MyMalloc( 4 * sizeof *(coOrd*)NULL );
- for ( inx=0; inx<4; inx++ )
- pts[inx] = tempSegs(inx).u.l.pos[0];
- tempSegs(0).type = SEG_FILPOLY;
- tempSegs(0).u.p.cnt = 4;
- tempSegs(0).u.p.pts = pts;
- tempSegs(0).u.p.angle = 0.0;
- tempSegs(0).u.p.orig = zero;
- tempSegs_da.cnt = 1;
- }
+ pts = (coOrd*)MyMalloc( 4 * sizeof *(coOrd*)NULL );
+ for ( inx=0; inx<4; inx++ )
+ pts[inx] = tempSegs(inx).u.l.pos[0];
+ tempSegs(0).type = (context->Op == OP_FILLBOX)?SEG_FILPOLY:SEG_POLY;
+ tempSegs(0).u.p.cnt = 4;
+ tempSegs(0).u.p.pts = pts;
+ tempSegs(0).u.p.angle = 0.0;
+ tempSegs(0).u.p.orig = zero;
+ tempSegs(0).u.p.polyType = RECTANGLE;
+ tempSegs_da.cnt = 1;
/*drawContext = context;
DrawGeomOp( (void*)context->Op );*/
break;
@@ -445,6 +512,7 @@ STATUS_T DrawGeomMouse(
return C_TERMINATE;
case wActionText:
+
if ( ((action>>8)&0xFF) == 0x0D ||
((action>>8)&0xFF) == ' ' ) {
EndPoly(context, segCnt);
@@ -453,6 +521,7 @@ STATUS_T DrawGeomMouse(
return C_TERMINATE;
case C_CANCEL:
+
oldOptions = context->D->funcs->options;
context->D->funcs->options |= wDrawOptTemp;
DrawSegs( context->D, zero, 0.0, &tempSegs(0), tempSegs_da.cnt, trackGauge, wDrawColorBlack );
@@ -487,18 +556,21 @@ STATUS_T DrawGeomModify(
{
ANGLE_T a;
coOrd p0, p1, pc;
+ static coOrd start_pos;
static wIndex_t segInx;
static EPINX_T segEp;
static ANGLE_T segA1;
- static int polyInx;
- int inx;
- DIST_T d, dd;
+ static int polyInx, inx_other, inx_line, inx_origin;
+ static BOOL_T corner_mode;
+ int inx, inx1, inx2;
+ DIST_T d, d1, d2, dd;
coOrd * newPts;
int mergePoints;
-
+ tempSegs_da.cnt = 1;
switch ( action ) {
case C_DOWN:
segInx = -1;
+ corner_mode = FALSE;
DistanceSegs( orig, angle, segCnt, segPtr, &pos, &segInx );
if (segInx == -1)
return C_ERROR;
@@ -523,7 +595,7 @@ STATUS_T DrawGeomModify(
REORIGIN( pc, segPtr[segInx].u.c.center, angle, orig )
tempSegs(0).type = segPtr[segInx].type;
tempSegs(0).u.c.center = pc;
- tempSegs(0).u.c.radius = segPtr[segInx].u.c.radius;
+ tempSegs(0).u.c.radius = fabs(segPtr[segInx].u.c.radius);
if (segPtr[segInx].u.c.a1 >= 360.0) {
tempSegs(0).u.c.a0 = 0.0;
tempSegs(0).u.c.a1 = 360.0;
@@ -531,8 +603,8 @@ STATUS_T DrawGeomModify(
tempSegs(0).u.c.a0 = NormalizeAngle( segPtr[segInx].u.c.a0+angle );
tempSegs(0).u.c.a1 = segPtr[segInx].u.c.a1;
segA1 = NormalizeAngle( segPtr[segInx].u.c.a0 + segPtr[segInx].u.c.a1 + angle );
- PointOnCircle( &p0, pc, segPtr[segInx].u.c.radius, segPtr[segInx].u.c.a0+angle );
- PointOnCircle( &p1, pc, segPtr[segInx].u.c.radius, segPtr[segInx].u.c.a0+segPtr[segInx].u.c.a1+angle );
+ PointOnCircle( &p0, pc, fabs(segPtr[segInx].u.c.radius), segPtr[segInx].u.c.a0+angle );
+ PointOnCircle( &p1, pc, fabs(segPtr[segInx].u.c.radius), segPtr[segInx].u.c.a0+segPtr[segInx].u.c.a1+angle );
}
break;
@@ -542,6 +614,7 @@ STATUS_T DrawGeomModify(
tempSegs(0).u.p.cnt = segPtr[segInx].u.p.cnt;
tempSegs(0).u.p.angle = 0.0;
tempSegs(0).u.p.orig = zero;
+ tempSegs(0).u.p.polyType = segPtr[segInx].u.p.polyType;
DYNARR_SET( coOrd, points_da, segPtr[segInx].u.p.cnt+1 );
tempSegs(0).u.p.pts = &points(0);
d = 10000;
@@ -557,28 +630,61 @@ STATUS_T DrawGeomModify(
polyInx = inx;
}
}
- inx = (polyInx==0?segPtr[segInx].u.p.cnt-1:polyInx-1);
- d = FindDistance( points(inx), pos );
- dd = FindDistance( points(inx), points(polyInx) );
- if ( d < 0.25*dd ) {
- polyInx = inx;
- } else if ( d > 0.75*dd ) {
- ;
- } else {
- tempSegs(0).u.p.cnt++;
- for (inx=points_da.cnt-1; inx>polyInx; inx-- ) {
- points(inx) = points(inx-1);
+ if (segPtr[segInx].u.p.polyType == RECTANGLE) {
+ d1 = FindDistance( points(polyInx), pos );
+ d2 = FindDistance( points(polyInx==0?segPtr[segInx].u.p.cnt-1:polyInx-1), pos );
+ if (d2<d1) {
+ inx_line = polyInx;
+ polyInx = polyInx==0?segPtr[segInx].u.p.cnt-1:polyInx-1;
+ } else {
+ inx_line = polyInx==0?segPtr[segInx].u.p.cnt-1:polyInx-1;
+ }
+ //polyInx is closest point
+ inx1 = (polyInx==0?3:polyInx-1); //Prev point
+ inx2 = (polyInx==3?0:polyInx+1); //Next Point
+ inx_origin = (inx2==3?0:inx2+1); //Opposite point
+ if ( IsClose(d2) || IsClose(d1) ) {
+ corner_mode = TRUE;
+ pos = points(polyInx);
+ start_pos = pos;
+ DrawArrowHeads( &tempSegs(1), pos, FindAngle(points(polyInx),points(inx_origin)), TRUE, wDrawColorRed );
+ tempSegs_da.cnt = 6;
+ InfoMessage( _("Drag to Move Corner Point"));
+ } else {
+ corner_mode = FALSE;
+ start_pos = pos;
+ pos.x = (points(polyInx).x + points(inx_line).x)/2;
+ pos.y = (points(polyInx).y + points(inx_line).y)/2;
+ DrawArrowHeads( &tempSegs(1), pos, FindAngle(points(polyInx),pos)+90, TRUE, wDrawColorRed );
+ tempSegs_da.cnt = 6;
+ InfoMessage( _("Drag to Move Edge "));
}
+ return C_CONTINUE;
+ } else {
+ inx = (polyInx==0?segPtr[segInx].u.p.cnt-1:polyInx-1);
+ d = FindDistance( points(inx), pos );
+ dd = FindDistance( points(inx), points(polyInx) );
+ if ( d < 0.25*dd ) {
+ polyInx = inx;
+ } else if ( d > 0.75*dd ) {
+ ;
+ } else {
+ tempSegs(0).u.p.cnt++;
+ for (inx=points_da.cnt-1; inx>polyInx; inx-- ) {
+ points(inx) = points(inx-1);
+ }
/*fprintf( stderr, "Inserting vertix before %d\n", polyInx );*/
+ }
+ points(polyInx) = pos;
}
- points(polyInx) = pos;
p1=p0;
break;
- default:
- ASSERT( FALSE ); /* CHECKME */
case SEG_TEXT:
segInx = -1;
return C_ERROR;
+ default:
+ ASSERT( FALSE ); /* CHECKME */
+
}
if ( FindDistance( p0, pos ) < FindDistance( p1, pos ) )
segEp = 0;
@@ -586,7 +692,6 @@ STATUS_T DrawGeomModify(
segEp = 1;
switch ( segPtr[segInx].type ) {
case SEG_TBLEDGE:
-
case SEG_STRLIN:
case SEG_DIMLIN:
case SEG_BENCH:
@@ -596,7 +701,6 @@ STATUS_T DrawGeomModify(
;
}
}
- tempSegs_da.cnt = 1;
return C_CONTINUE;
case C_MOVE:
if (segInx == -1)
@@ -608,6 +712,9 @@ STATUS_T DrawGeomModify(
} else if ( (MyGetKeyState() & (WKEY_SHIFT|WKEY_CTRL|WKEY_ALT)) == WKEY_CTRL ) {
OnTrack( &pos, FALSE, FALSE );
}
+ int prior_pnt, next_pnt, orig_pnt;
+ ANGLE_T prior_angle, next_angle, line_angle;
+ tempSegs_da.cnt = 1;
switch (tempSegs(0).type) {
case SEG_TBLEDGE:
@@ -617,12 +724,6 @@ STATUS_T DrawGeomModify(
tempSegs(0).u.l.pos[segEp] = pos;
InfoMessage( _("Length = %0.3f Angle = %0.3f"), FindDistance( tempSegs(0).u.l.pos[segEp], tempSegs(0).u.l.pos[1-segEp] ), FindAngle( tempSegs(0).u.l.pos[1-segEp], tempSegs(0).u.l.pos[segEp] ) );
break;
- pos.x -= orig.x;
- pos.y -= orig.y;
- pos.x -= orig.x;
- pos.y -= orig.y;
- Rotate( &pos, zero, -angle );
- Rotate( &pos, zero, -angle );
case SEG_CRVLIN:
case SEG_FILCRCL:
if (tempSegs(0).u.c.a1 >= 360.0) {
@@ -639,12 +740,50 @@ STATUS_T DrawGeomModify(
break;
case SEG_POLY:
case SEG_FILPOLY:
- points(polyInx) = pos;
+ switch (tempSegs(0).u.p.polyType) {
+ case RECTANGLE:
+ if (!corner_mode) {
+ /* Constrain movement to be perpendicular */
+ d = FindDistance(start_pos, pos);
+ line_angle = NormalizeAngle(FindAngle(points(inx_line),points(polyInx))-90);
+ a = FindAngle(pos,start_pos);
+ Translate( &pos, start_pos, line_angle, - d*cos(D2R(line_angle-a)));
+ }
+ d = FindDistance(start_pos,pos);
+ a = FindAngle(start_pos, pos);
+ start_pos = pos;
+ prior_pnt = (polyInx == 0)?3:polyInx-1;
+ next_pnt = (polyInx == 3)?0:polyInx+1;
+ orig_pnt = (prior_pnt == 0)?3:prior_pnt-1;
+ Translate( &points(polyInx), points(polyInx), a, d);
+ d = FindDistance(points(orig_pnt),points(polyInx));
+ a = FindAngle(points(orig_pnt),points(polyInx));
+ prior_angle = FindAngle(points(orig_pnt),points(prior_pnt));
+ Translate( &points(prior_pnt), points(orig_pnt), prior_angle, d*cos(D2R(prior_angle-a)));
+ next_angle = FindAngle(points(orig_pnt),points(next_pnt));
+ Translate( &points(next_pnt), points(orig_pnt), next_angle, d*cos(D2R(next_angle-a)));
+ if (!corner_mode) {
+ pos.x = (points(polyInx).x + points(inx_line).x)/2;
+ pos.y = (points(polyInx).y + points(inx_line).y)/2;
+ DrawArrowHeads( &tempSegs(1), pos, FindAngle(points(polyInx),points(inx_line))+90, TRUE, wDrawColorRed );
+ tempSegs_da.cnt = 6;
+ InfoMessage( _("Drag to Move Edge"));
+ } else {
+ pos = points(polyInx);
+ DrawArrowHeads( &tempSegs(1), pos, FindAngle(points(polyInx),points(inx_origin)), TRUE, wDrawColorRed );
+ tempSegs_da.cnt = 6;
+ InfoMessage( _("Drag to Move Corner Point"));
+ }
+ break;
+ default:
+ points(polyInx) = pos;
+ }
+
break;
default:
;
}
- tempSegs_da.cnt = 1;
+
return C_CONTINUE;
case C_UP:
if (segInx == -1)
@@ -664,7 +803,7 @@ STATUS_T DrawGeomModify(
case SEG_CRVLIN:
case SEG_FILCRCL:
if ( tempSegs(0).u.c.a1 >= 360.0 ) {
- segPtr[segInx].u.c.radius = tempSegs(0).u.c.radius;
+ segPtr[segInx].u.c.radius = fabs(tempSegs(0).u.c.radius);
} else {
a = FindAngle( tempSegs(0).u.c.center, pos );
a = NormalizeAngle( a-angle );
@@ -676,39 +815,54 @@ STATUS_T DrawGeomModify(
break;
case SEG_POLY:
case SEG_FILPOLY:
- mergePoints = FALSE;
- if ( IsClose( FindDistance( pos, points( polyInx==0?tempSegs(0).u.p.cnt-1:polyInx-1 ) ) ) ||
- IsClose( FindDistance( pos, points( (polyInx==tempSegs(0).u.p.cnt-1)?0:polyInx+1 ) ) ) ) {
- mergePoints = TRUE;
- if (segPtr[segInx].u.p.cnt <= 3) {
- ErrorMessage( MSG_POLY_SHAPES_3_SIDES );
- break;
+ switch(tempSegs(0).u.p.polyType) {
+ case RECTANGLE:
+ for (int i=0;i<4;i++) {
+ pos = points(i);
+ pos.x -= orig.x;
+ pos.y -= orig.y;
+ Rotate( &pos, zero, -angle );
+ segPtr[segInx].u.p.pts[i] = pos;
+ }
+ break;
+ default:
+ mergePoints = FALSE;
+ if ( IsClose( FindDistance( pos, points( polyInx==0?tempSegs(0).u.p.cnt-1:polyInx-1 ) ) ) ||
+ IsClose( FindDistance( pos, points( (polyInx==tempSegs(0).u.p.cnt-1)?0:polyInx+1 ) ) ) ) {
+ mergePoints = TRUE;
+ if (segPtr[segInx].u.p.cnt <= 3) {
+ ErrorMessage( MSG_POLY_SHAPES_3_SIDES );
+ break;
+ }
}
- }
- newPts = (coOrd*)MyMalloc( tempSegs(0).u.p.cnt * sizeof *(coOrd*)0 );
- memcpy( newPts, segPtr[segInx].u.p.pts, (segPtr[segInx].u.p.cnt) * sizeof *(coOrd*)0 );
- segPtr[segInx].u.p.pts = newPts;
+ coOrd * oldPts = segPtr[segInx].u.p.pts;
+ newPts = (coOrd*)MyMalloc( tempSegs(0).u.p.cnt * sizeof *(coOrd*)0 );
+ memcpy( newPts, segPtr[segInx].u.p.pts, (segPtr[segInx].u.p.cnt) * sizeof *(coOrd*)0 );
+ segPtr[segInx].u.p.pts = newPts;
+ MyFree(oldPts);
- if ( tempSegs(0).u.p.cnt > segPtr[segInx].u.p.cnt ) {
- ASSERT( tempSegs(0).u.p.cnt == segPtr[segInx].u.p.cnt+1 );
- for (inx=tempSegs(0).u.p.cnt-1; inx>polyInx; inx--)
- segPtr[segInx].u.p.pts[inx] = segPtr[segInx].u.p.pts[inx-1];
- segPtr[segInx].u.p.cnt++;
- }
+
+ if ( tempSegs(0).u.p.cnt > segPtr[segInx].u.p.cnt ) {
+ ASSERT( tempSegs(0).u.p.cnt == segPtr[segInx].u.p.cnt+1 );
+ for (inx=tempSegs(0).u.p.cnt-1; inx>polyInx; inx--)
+ segPtr[segInx].u.p.pts[inx] = segPtr[segInx].u.p.pts[inx-1];
+ segPtr[segInx].u.p.cnt++;
+ }
- pos = points(polyInx);
- if ( mergePoints ) {
- for (inx=polyInx+1; inx<points_da.cnt; inx++)
+ pos = points(polyInx);
+ if ( mergePoints ) {
+ for (inx=polyInx+1; inx<points_da.cnt; inx++)
segPtr[segInx].u.p.pts[inx-1] = segPtr[segInx].u.p.pts[inx];
- segPtr[segInx].u.p.cnt--;
+ segPtr[segInx].u.p.cnt--;
/*fprintf( stderr, "Merging with vertix %d\n", polyInx );*/
- break;
+ break;
+ }
+ pos.x -= orig.x;
+ pos.y -= orig.y;
+ Rotate( &pos, zero, -angle );
+ segPtr[segInx].u.p.pts[polyInx] = pos;
}
- pos.x -= orig.x;
- pos.y -= orig.y;
- Rotate( &pos, zero, -angle );
- segPtr[segInx].u.p.pts[polyInx] = pos;
break;
default:
;
diff --git a/app/bin/drawgeom.h b/app/bin/drawgeom.h
index 377ebaa..d9f54f8 100644
--- a/app/bin/drawgeom.h
+++ b/app/bin/drawgeom.h
@@ -1,4 +1,6 @@
-
+/** \file drawgeom.h
+ *
+ */
/* XTrkCad - Model Railroad CAD
* Copyright (C) 2005 Dave Bullis
*
@@ -17,6 +19,15 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#ifndef HAVE_DRAWGEOM_H
+#define HAVE_DRAWGEOM_H
+
+#include "ccurve.h"
+#include "common.h"
+#include "draw.h"
+#include "track.h"
+#include "wlib.h"
+
#define OP_LINE (0)
#define OP_DIMLINE (1)
#define OP_BENCH (2)
@@ -35,7 +46,8 @@
#define OP_FILLCIRCLE3 (15)
#define OP_FILLBOX (16)
#define OP_FILLPOLY (17)
-#define OP_LAST (OP_FILLPOLY)
+#define OP_BEZLIN (18)
+#define OP_LAST (OP_BEZLIN)
typedef struct {
void (*message)( char *, ... );
@@ -53,6 +65,10 @@ typedef struct {
} drawContext_t;
extern drawContext_t * drawContext;
+extern wDrawColor lineColor;
+extern long lineWidth;
+
void DrawGeomOp( void * );
STATUS_T DrawGeomMouse( wAction_t, coOrd, drawContext_t * );
STATUS_T DrawGeomModify( coOrd, ANGLE_T, wIndex_t, trkSeg_p, wAction_t, coOrd, wBool_t );
+#endif //HAVE_DRAWGEOM_H \ No newline at end of file
diff --git a/app/bin/dxfformat.c b/app/bin/dxfformat.c
index 4e1c775..3b79c7e 100644
--- a/app/bin/dxfformat.c
+++ b/app/bin/dxfformat.c
@@ -308,7 +308,7 @@ DxfPrologue(DynString *result, int layerCount, double x0, double y0, double x1,
DynStringCatCStr(result, "\
0\nSECTION\n\
2\nHEADER\n\
- 9\n$ACADVER\n 1\nAC1015\n");
+ 9\n$ACADVER\n 1\nAC1009\n");
DxfUnits(result);
DxfDimensionSize(result, DXF_DIMTEXTSIZE);
DxfDimensionSize(result, DXF_DIMARROWSIZE);
diff --git a/app/bin/dxfformat.h b/app/bin/dxfformat.h
index 88db568..dbb1ee9 100644
--- a/app/bin/dxfformat.h
+++ b/app/bin/dxfformat.h
@@ -1,6 +1,30 @@
+/** \file dxfformat.h
+ * Definitions and prototypes for DXF export
+ */
+
+/* XTrkCad - Model Railroad CAD
+ * Copyright (C) 2005 Dave Bullis
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
#ifndef HAVE_DXFFORMAT_H
#define HAVE_DXFFORMAT_H
+#include "dynstring.h"
+
enum DXF_DIMENSIONS
{
DXF_DIMTEXTSIZE,
diff --git a/app/bin/dxfoutput.c b/app/bin/dxfoutput.c
index 91a822f..69c6df4 100644
--- a/app/bin/dxfoutput.c
+++ b/app/bin/dxfoutput.c
@@ -26,9 +26,6 @@
#ifdef WINDOWS
#include <io.h>
#include <windows.h>
- #if _MSC_VER >=1400
- #define strdup _strdup
- #endif
#else
#include <errno.h>
#endif
@@ -36,11 +33,18 @@
#include <xtrkcad-config.h>
#include <locale.h>
#include <assert.h>
-#include "track.h"
-#include "i18n.h"
+
#include <dynstring.h>
+#include "cselect.h"
+#include "custom.h"
#include "dxfformat.h"
+#include "fileio.h"
+#include "i18n.h"
+#include "messages.h"
+#include "paths.h"
+#include "track.h"
+#include "utility.h"
static struct wFilSel_t * exportDXFFile_fs;
@@ -224,7 +228,7 @@ void DoExportDXF(void)
exportDXFFile_fs = wFilSelCreate(mainW, FS_SAVE, 0, _("Export to DXF"),
sDXFFilePattern, DoExportDXFTracks, NULL);
- wFilSelect(exportDXFFile_fs, curDirName);
+ wFilSelect(exportDXFFile_fs, GetCurrentPath(DXFPATHKEY));
}
diff --git a/app/bin/elev.c b/app/bin/elev.c
index ec232a4..6b86bc1 100644
--- a/app/bin/elev.c
+++ b/app/bin/elev.c
@@ -1,5 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/elev.c,v 1.1 2005-12-07 15:47:20 rc-flyer Exp $
+/** \file elev.c
+ *
*/
/* XTrkCad - Model Railroad CAD
@@ -19,11 +19,16 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#include <math.h>
-#include "track.h"
-#include "shrtpath.h"
#include "ccurve.h"
-
+#include "cundo.h"
+#include "messages.h"
+#include "param.h"
+#include "shrtpath.h"
+#include "track.h"
+#include "utility.h"
+#include "string.h"
EXPORT long oldElevationEvaluation = 0;
static int log_fillElev = 0;
diff --git a/app/bin/fileio.c b/app/bin/fileio.c
index da0de68..4e2a21d 100644
--- a/app/bin/fileio.c
+++ b/app/bin/fileio.c
@@ -35,9 +35,9 @@
#ifdef WINDOWS
#include <io.h>
#include <windows.h>
- #if _MSC_VER >=1400
- #define strdup _strdup
- #endif
+ //#if _MSC_VER >=1400
+ // #define strdup _strdup
+ //#endif
#else
#endif
#include <sys/stat.h>
@@ -48,14 +48,23 @@
#include <assert.h>
-#include "track.h"
-#include "version.h"
#include "common.h"
-#include "utility.h"
-#include "draw.h"
-#include "misc.h"
#include "compound.h"
+#include "cselect.h"
+#include "cundo.h"
+#include "custom.h"
+#include "draw.h"
+#include "fileio.h"
#include "i18n.h"
+#include "layout.h"
+#include "messages.h"
+#include "misc.h"
+#include "param.h"
+#include "paths.h"
+#include "track.h"
+#include "utility.h"
+#include "version.h"
+
/*#define TIME_READTRACKFILE*/
@@ -65,67 +74,10 @@ EXPORT const char * libDir;
static char * customPath = NULL;
static char * customPathBak = NULL;
-EXPORT char curPathName[STR_LONG_SIZE];
-EXPORT char * curFileName;
-EXPORT char curDirName[STR_LONG_SIZE];
-
EXPORT char * clipBoardN;
-EXPORT wBool_t executableOk = FALSE;
-
static int log_paramFile;
-/**
- * Get the directory from the current file and store it as current directory
- * in a global variable and the preferences
- *
- * \param pathType IN possible enhancement for file type specific directorys
- * \param fileName IN fully qualified filename
- * \return
- *
- * \todo split directory and keep directory part
- */
-
-void SetCurrentPath(
- const char * pathType,
- const char * fileName )
-{
- char *path;
- char *copy;
-
- assert( fileName != NULL );
- assert( pathType != NULL );
-
- copy = strdup( fileName );
- path = strrchr(copy, FILE_SEP_CHAR[ 0 ] );
- if ( path )
- {
- *path = '\0';
- strcpy( curDirName, copy );
- wPrefSetString( "file", "directory", curDirName );
- }
- free( copy );
-}
-
-/**
- * Find the filename/extension piece in a fully qualified path
- *
- * \param path IN the full path
- * \return pointer to the filename part
- */
-
-char *FindName( char *path )
-{
- char *name;
- name = strrchr( path, FILE_SEP_CHAR[0] );
- if (name) {
- name++;
- } else {
- name = path;
- }
- return(name );
-}
-
#ifdef WINDOWS
#define rename( F1, F2 ) Copyfile( F1, F2 )
@@ -197,7 +149,7 @@ RestoreLocale( char * locale )
*/
EXPORT FILE * paramFile = NULL;
-EXPORT char paramFileName[STR_LONG_SIZE];
+char *paramFileName;
EXPORT wIndex_t paramLineNum = 0;
EXPORT char paramLine[STR_LONG_SIZE];
EXPORT char * curContents;
@@ -568,11 +520,9 @@ EXPORT BOOL_T ReadParams(
char *oldLocale = NULL;
if (dirName) {
- strcpy( paramFileName, dirName );
- strcat( paramFileName, FILE_SEP_CHAR );
- strcat( paramFileName, fileName );
+ MakeFullpath(&paramFileName, dirName, fileName, NULL);
} else {
- strcpy( paramFileName, fileName );
+ MakeFullpath(&paramFileName, fileName, NULL);
}
paramLineNum = 0;
curBarScale = -1;
@@ -628,11 +578,9 @@ LOG1( log_paramFile, ("ReadParam( %s )\n", fileName ) )
paramLineNum = oldLineNum;
paramCheckSum = oldCheckSum;
if (dirName) {
- strcpy( paramFileName, dirName );
- strcat( paramFileName, FILE_SEP_CHAR );
- strcat( paramFileName, fileName );
+ MakeFullpath(&paramFileName, dirName, fileName, NULL);
} else {
- strcpy( paramFileName, fileName );
+ MakeFullpath(&paramFileName, fileName);
}
} else if (strncmp( paramLine, "CONTENTS ", 9) == 0 ) {
curContents = MyStrdup( paramLine+9 );
@@ -665,7 +613,8 @@ LOG1( log_paramFile, ("ReadParam( %s )\n", fileName ) )
}
}
if (paramFile)fclose( paramFile );
-
+ free(paramFileName);
+ paramFileName = NULL;
RestoreLocale( oldLocale );
return TRUE;
@@ -675,9 +624,7 @@ LOG1( log_paramFile, ("ReadParam( %s )\n", fileName ) )
static void ReadCustom( void )
{
FILE * f;
- customPath =
- (char*)MyMalloc( strlen(workingDir) + 1 + strlen(sCustomF) + 1 );
- sprintf( customPath, "%s%s%s", workingDir, FILE_SEP_CHAR, sCustomF );
+ MakeFullpath(&customPath, workingDir, sCustomF, NULL);
customPathBak = MyStrdup( customPath );
customPathBak[ strlen(customPathBak)-1 ] = '1';
f = fopen( customPath, "r" );
@@ -741,10 +688,14 @@ EXPORT char * PutTitle( char * cp )
void SetWindowTitle( void )
{
+ char *filename;
+
if ( changed > 2 || inPlayback )
return;
+
+ filename = GetLayoutFilename();
sprintf( message, "%s%s - %s(%s)",
- (curFileName==NULL||curFileName[0]=='\0')?_("Unnamed Trackplan"):curFileName,
+ (filename && filename[0])?filename: _("Unnamed Trackplan"),
changed>0?"*":"", sProdName, sVersion );
wWinSetTitle( mainW, message );
}
@@ -805,7 +756,7 @@ static BOOL_T ReadTrackFile(
}
paramLineNum = 0;
- strcpy( paramFileName, fileName );
+ paramFileName = strdup( fileName );
InfoMessage("0");
count = 0;
@@ -853,13 +804,9 @@ static BOOL_T ReadTrackFile(
if( !(ret = InputError( "unknown command", TRUE )))
break;
} else if (strncmp( paramLine, "TITLE1 ", 7 ) == 0) {
- strncpy( Title1, &paramLine[7], TITLEMAXLEN );
- Title1[ TITLEMAXLEN - 1 ] = '\0';
- /*wStringSetValue( title1PD.control, Title1 );*/
+ SetLayoutTitle(paramLine + 7);
} else if (strncmp( paramLine, "TITLE2 ", 7 ) == 0) {
- strncpy( Title2, &paramLine[7], TITLEMAXLEN );
- Title2[ TITLEMAXLEN - 1 ] = '\0';
- /*wStringSetValue( title2PD.control, Title2 );*/
+ SetLayoutSubtitle(paramLine + 7);
} else if (strncmp( paramLine, "ROOMSIZE", 8 ) == 0) {
if ( ParseRoomSize( paramLine+8, &roomSize ) ) {
SetRoomSize( roomSize );
@@ -895,8 +842,10 @@ static BOOL_T ReadTrackFile(
SetCurrentPath( LAYOUTPATHKEY, fileName );
if (full) {
- strcpy( curPathName, pathName );
- curFileName = &curPathName[fileName-pathName];
+// SetCurrentPath(LAYOUTPATHKEY, pathName);
+ SetLayoutFullPath(pathName);
+ //strcpy(curPathName, pathName);
+ //curFileName = &curPathName[fileName-pathName];
SetWindowTitle();
}
}
@@ -904,6 +853,9 @@ static BOOL_T ReadTrackFile(
RestoreLocale( oldLocale );
paramFile = NULL;
+
+ free(paramFileName);
+ paramFileName = NULL;
InfoMessage( "%d", count );
return ret;
}
@@ -921,9 +873,8 @@ EXPORT int LoadTracks(
assert( fileName != NULL );
assert( cnt == 1 );
- //if (fileName == NULL || cnt == 0 )
- // return TRUE;
+ SetCurrentPath(LAYOUTPATHKEY, fileName[0]);
paramVersion = -1;
wSetCursor( wCursorWait );
Reset();
@@ -935,7 +886,7 @@ EXPORT int LoadTracks(
#ifdef TIME_READTRACKFILE
time0 = wGetTimer();
#endif
- nameOfFile = FindName( fileName[ 0 ] );
+ nameOfFile = FindFilename( fileName[ 0 ] );
if (ReadTrackFile( fileName[ 0 ], nameOfFile, TRUE, FALSE, TRUE )) {
wMenuListAdd( fileList_ml, 0, nameOfFile, MyStrdup(fileName[0]) );
@@ -949,6 +900,7 @@ EXPORT int LoadTracks(
DoChangeNotification( CHANGE_ALL );
DoUpdateTitles();
LoadLayerLists();
+ LayerSetCounts();
}
UndoResume();
Reset();
@@ -997,10 +949,10 @@ static BOOL_T DoSaveTracks(
time(&clock);
rc &= fprintf(f,"#%s Version: %s, Date: %s\n", sProdName, sVersion, ctime(&clock) )>0;
rc &= fprintf(f, "VERSION %d %s\n", iParamVersion, PARAMVERSIONVERSION )>0;
- Stripcr( Title1 );
- Stripcr( Title2 );
- rc &= fprintf(f, "TITLE1 %s\n", Title1 )>0;
- rc &= fprintf(f, "TITLE2 %s\n", Title2 )>0;
+ Stripcr( GetLayoutTitle() );
+ Stripcr( GetLayoutSubtitle() );
+ rc &= fprintf(f, "TITLE1 %s\n", GetLayoutTitle())>0;
+ rc &= fprintf(f, "TITLE2 %s\n", GetLayoutSubtitle())>0;
rc &= fprintf(f, "MAPSCALE %ld\n", (long)mapD.scale )>0;
rc &= fprintf(f, "ROOMSIZE %0.6f x %0.6f\n", mapD.size.x, mapD.size.y )>0;
rc &= fprintf(f, "SCALE %s\n", curScaleName )>0;
@@ -1032,17 +984,15 @@ static int SaveTracks(
assert( fileName != NULL );
assert( cnt == 1 );
- SetCurrentPath( LAYOUTPATHKEY, fileName[ 0 ] );
+ SetCurrentPath(LAYOUTPATHKEY, fileName[0]);
DoSaveTracks( fileName[ 0 ] );
- nameOfFile = FindName( fileName[ 0 ] );
+ nameOfFile = FindFilename( fileName[ 0 ] );
wMenuListAdd( fileList_ml, 0, nameOfFile, MyStrdup(fileName[ 0 ]) );
checkPtMark = changed = 0;
- if (strcmp(curPathName, fileName[ 0 ]))
- strcpy( curPathName, fileName[ 0 ] );
- curFileName = FindName( curPathName );
-
+ SetLayoutFullPath(fileName[0]);
+
if (doAfterSave)
doAfterSave();
doAfterSave = NULL;
@@ -1053,13 +1003,13 @@ static int SaveTracks(
EXPORT void DoSave( doSaveCallBack_p after )
{
doAfterSave = after;
- if (curPathName[0] == '\0') {
+ if (*(GetLayoutFilename()) == '\0') {
if (saveFile_fs == NULL)
saveFile_fs = wFilSelCreate( mainW, FS_SAVE, 0, _("Save Tracks"),
sSourceFilePattern, SaveTracks, NULL );
- wFilSelect( saveFile_fs, curDirName );
+ wFilSelect( saveFile_fs, GetCurrentPath(LAYOUTPATHKEY));
} else {
- char *temp = curPathName;
+ char *temp = GetLayoutFullPath();
SaveTracks( 1, &temp, NULL );
}
SetWindowTitle();
@@ -1071,7 +1021,7 @@ EXPORT void DoSaveAs( doSaveCallBack_p after )
if (saveFile_fs == NULL)
saveFile_fs = wFilSelCreate( mainW, FS_SAVE, 0, _("Save Tracks As"),
sSourceFilePattern, SaveTracks, NULL );
- wFilSelect( saveFile_fs, curDirName );
+ wFilSelect( saveFile_fs, GetCurrentPath(LAYOUTPATHKEY));
SetWindowTitle();
}
@@ -1079,7 +1029,7 @@ EXPORT void DoLoad( void )
{
loadFile_fs = wFilSelCreate( mainW, FS_LOAD, 0, _("Open Tracks"),
sSourceFilePattern, LoadTracks, NULL );
- wFilSelect( loadFile_fs, curDirName );
+ wFilSelect( loadFile_fs, GetCurrentPath(LAYOUTPATHKEY));
}
@@ -1133,45 +1083,16 @@ EXPORT void CleanupFiles( void )
EXPORT int ExistsCheckpoint( void )
{
- int len;
- char *pattern = sCheckPointF;
- char *search;
-
struct stat fileStat;
- len = strlen( workingDir ) + 1 + strlen( sCheckPointF ) + 1;
- checkPtFileName1 = (char*)MyMalloc(len);
- sprintf( checkPtFileName1, "%s%s%s", workingDir, FILE_SEP_CHAR, sCheckPointF );
- checkPtFileName2 = (char*)MyMalloc(len);
- sprintf( checkPtFileName2, "%s%s%s", workingDir, FILE_SEP_CHAR, sCheckPoint1F );
-
- len = strlen( workingDir ) + 1 + strlen( pattern ) + 1;
- search = (char*)MyMalloc(len);
- sprintf( search, "%s%s%s", workingDir, FILE_SEP_CHAR, pattern );
-
- if( !stat( search, &fileStat ) ) {
- MyFree( search );
- return TRUE;
- } else {
- MyFree( search );
- return FALSE;
- }
-
+ MakeFullpath(&checkPtFileName1, workingDir, sCheckPointF, NULL);
+ MakeFullpath(&checkPtFileName2, workingDir, sCheckPoint1F, NULL);
-#ifdef LATER
- DIR *dir;
-
- dir = opendir( search );
- MyFree( search );
-
- if( dir ) {
- closedir( dir );
+ if( !stat( checkPtFileName1, &fileStat ) ) {
return TRUE;
} else {
return FALSE;
}
-#endif
-
}
/**
@@ -1183,16 +1104,12 @@ EXPORT int ExistsCheckpoint( void )
EXPORT int LoadCheckpoint( void )
{
- int len;
char *search;
paramVersion = -1;
wSetCursor( wCursorWait );
- len = strlen( workingDir ) + 1 + strlen( sCheckPointF ) + 1;
- search = (char*)MyMalloc(len);
- sprintf( search, "%s%s%s", workingDir, FILE_SEP_CHAR, sCheckPointF );
-
+ MakeFullpath(&search, workingDir, sCheckPointF, NULL);
UndoSuspend();
if (ReadTrackFile( search, search + strlen(search) - strlen( sCheckPointF ), TRUE, TRUE, TRUE )) {
@@ -1209,11 +1126,10 @@ EXPORT int LoadCheckpoint( void )
wSetCursor( wCursorNormal );
- strcpy( curPathName, "" );
- curFileName = curPathName;
+ SetLayoutFullPath("");
SetWindowTitle();
changed = TRUE;
- MyFree( search );
+ free( search );
return TRUE;
}
@@ -1238,7 +1154,7 @@ static int ImportTracks(
assert( fileName != NULL );
assert( cnt == 1 );
- nameOfFile = FindName(fileName[ 0 ]);
+ nameOfFile = FindFilename(fileName[ 0 ]);
paramVersion = -1;
wSetCursor( wCursorWait );
Reset();
@@ -1265,7 +1181,7 @@ EXPORT void DoImport( void )
importFile_fs = wFilSelCreate( mainW, FS_LOAD, 0, _("Import Tracks"),
sImportFilePattern, ImportTracks, NULL );
- wFilSelect( importFile_fs, curDirName );
+ wFilSelect( importFile_fs, GetCurrentPath(LAYOUTPATHKEY));
}
@@ -1326,7 +1242,7 @@ EXPORT void DoExport( void )
exportFile_fs = wFilSelCreate( mainW, FS_SAVE, 0, _("Export Tracks"),
sImportFilePattern, DoExportTracks, NULL );
- wFilSelect( exportFile_fs, curDirName );
+ wFilSelect( exportFile_fs, GetCurrentPath(LAYOUTPATHKEY));
}
@@ -1412,20 +1328,11 @@ EXPORT BOOL_T EditPaste( void )
EXPORT void FileInit( void )
{
- const char * pref;
-
if ( (libDir = wGetAppLibDir()) == NULL ) {
abort();
}
if ( (workingDir = wGetAppWorkDir()) == NULL )
AbortProg( "wGetAppWorkDir()" );
-
- pref = wPrefGetString( "file", "directory" );
- if (pref != NULL) {
- strcpy( curDirName, pref );
- } else {
- sprintf( curDirName, "%s%sexamples", libDir, FILE_SEP_CHAR );
- }
}
EXPORT BOOL_T ParamFileInit( void )
@@ -1441,10 +1348,8 @@ EXPORT BOOL_T ParamFileInit( void )
ReadCustom();
}
- curPathName[0] = '\0';
-
- clipBoardN = (char*)MyMalloc( strlen(workingDir) + 1 + strlen(sClipboardF) + 1 );
- sprintf( clipBoardN, "%s%s%s", workingDir, FILE_SEP_CHAR, sClipboardF );
+ SetLayoutFullPath("");
+ MakeFullpath(&clipBoardN, workingDir, sClipboardF, NULL);
return TRUE;
}
diff --git a/app/bin/fileio.h b/app/bin/fileio.h
index f574126..4f5aa8d 100644
--- a/app/bin/fileio.h
+++ b/app/bin/fileio.h
@@ -1,5 +1,4 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/fileio.h,v 1.4 2008-01-15 11:46:03 mni77 Exp $
+/** \file fileio.h
*/
/* XTrkCad - Model Railroad CAD
@@ -23,8 +22,13 @@
#ifndef FILEIO_H
#define FILEIO_H
+#include <stdio.h>
+
+#include "common.h"
+#include "misc.h"
+
FILE * paramFile;
-char paramFileName[STR_LONG_SIZE];
+extern char *paramFileName;
wIndex_t paramLineNum;
char paramLine[STR_LONG_SIZE];
char * curContents;
@@ -37,10 +41,6 @@ typedef BOOL_T (*readParam_t) ( char * );
extern const char * workingDir;
extern const char * libDir;
-extern char curPathName[STR_LONG_SIZE];
-extern char * curFileName;
-extern char curDirName[STR_LONG_SIZE];
-
#define PARAM_CUSTOM (-2)
#define PARAM_LAYOUT (-3)
extern int curParamFileIndex;
@@ -57,6 +57,8 @@ int curDemo;
wMenuList_p fileList_ml;
+#define PARAM_SUBDIR "params"
+
#define LAYOUTPATHKEY "layout"
#define BITMAPPATHKEY "bitmap"
#define DXFPATHKEY "dxf"
@@ -65,8 +67,7 @@ wMenuList_p fileList_ml;
#define PARAMETERPATHKEY "params"
#define IMPORTPATHKEY "import"
#define MACROPATHKEY "macro"
-
-void SetCurrentPath( const char *, const char * );
+#define CUSTOMPATHKEY "custom"
void Stripcr( char * );
char * GetNextLine( void );
diff --git a/app/bin/i18n.c b/app/bin/i18n.c
index ff4e28d..a8ed631 100644
--- a/app/bin/i18n.c
+++ b/app/bin/i18n.c
@@ -19,11 +19,12 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "i18n.h"
-#include "wlib.h"
-
#include <locale.h>
#include <stdio.h>
+#include <stdlib.h>
+
+#include "i18n.h"
+#include "wlib.h"
/**
* Initialize gettext environment. By default, the language files are installed
diff --git a/app/bin/layout.c b/app/bin/layout.c
new file mode 100644
index 0000000..0328474
--- /dev/null
+++ b/app/bin/layout.c
@@ -0,0 +1,375 @@
+/** \file layout.c
+ * Layout data and dialog
+ */
+
+/* XTrkCad - Model Railroad CAD
+ * Copyright (C) 2017 Martin Fischer
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <string.h>
+#include <dynstring.h>
+
+#include "custom.h"
+#include "i18n.h"
+#include "layout.h"
+#include "misc2.h"
+#include "param.h"
+#include "paths.h"
+#include "track.h"
+#include "wlib.h"
+
+#define MINTRACKRADIUSPREFS "minTrackRadius"
+
+struct sLayoutProps {
+ char title1[TITLEMAXLEN];
+ char title2[TITLEMAXLEN];
+ SCALEINX_T curScaleInx;
+ SCALEDESCINX_T curScaleDescInx;
+ GAUGEINX_T curGaugeInx;
+ DIST_T minTrackRadius;
+ DIST_T maxTrackGrade;
+ coOrd roomSize;
+};
+
+struct sDataLayout {
+ struct sLayoutProps props;
+ DynString fullFileName;
+ struct sLayoutProps *copyOfLayoutProps;
+};
+
+struct sDataLayout thisLayout = {
+ { "", "", -1, 0, 0, 0.0, 5.0, {0.0, 0.0} },
+ NaS,
+ NULL,
+};
+
+static paramFloatRange_t r0_90 = { 0, 90 };
+static paramFloatRange_t r1_10000 = { 1, 10000 };
+static paramFloatRange_t r1_9999999 = { 1, 9999999 };
+
+static void LayoutDlgUpdate(paramGroup_p pg, int inx, void * valueP);
+
+/**
+* Update the full file name. Do not do anything if the new filename is identical to the old one.
+*
+* \param filename IN the new filename
+*/
+
+void
+SetLayoutFullPath(const char *fileName)
+{
+ if (DynStringToCStr(&thisLayout.fullFileName) != fileName) {
+ if (isnas(&thisLayout.fullFileName)) {
+ DynStringMalloc(&thisLayout.fullFileName, strlen(fileName) + 1);
+ } else {
+ DynStringClear(&thisLayout.fullFileName);
+ }
+
+ DynStringCatCStr(&thisLayout.fullFileName, fileName);
+ }
+}
+
+/**
+* Set the minimum radius for the selected scale/gauge into the dialog
+*
+* \param scaleName IN name of the scale/gauge eg. HOn3
+* \param defaltValue IN default value will be used if no preference is set
+*/
+
+void
+LoadLayoutMinRadiusPref(char *scaleName, double defaultValue)
+{
+ DynString prefString = { NULL };
+
+ DynStringPrintf(&prefString, MINTRACKRADIUSPREFS "-%s", scaleName);
+ wPrefGetFloat("misc", DynStringToCStr(&prefString),
+ &thisLayout.props.minTrackRadius, defaultValue);
+ DynStringFree(&prefString);
+}
+
+static void
+CopyLayoutTitle(char* dest, char *src)
+{
+ strncpy(dest, src, TITLEMAXLEN);
+ *(dest + TITLEMAXLEN - 1) = '\0';
+}
+
+void
+SetLayoutTitle(char *title)
+{
+ CopyLayoutTitle(thisLayout.props.title1, title);
+}
+
+void
+SetLayoutSubtitle(char *title)
+{
+ CopyLayoutTitle(thisLayout.props.title2, title);
+}
+
+void
+SetLayoutMinTrackRadius(DIST_T radius)
+{
+ thisLayout.props.minTrackRadius = radius;
+}
+
+void
+SetLayoutMaxTrackGrade(ANGLE_T angle)
+{
+ thisLayout.props.maxTrackGrade = angle;
+}
+
+
+void
+SetLayoutRoomSize(coOrd size)
+{
+ thisLayout.props.roomSize = size;
+}
+
+void
+SetLayoutCurScale(SCALEINX_T scale)
+{
+ thisLayout.props.curScaleInx = scale;
+}
+
+void
+SetLayoutCurScaleDesc(SCALEDESCINX_T desc)
+{
+ thisLayout.props.curScaleDescInx = desc;
+}
+
+void
+SetLayoutCurGauge(GAUGEINX_T gauge)
+{
+ thisLayout.props.curGaugeInx = gauge;
+}
+
+/**
+* Return the full filename.
+*
+* \return pointer to the full filename, should not be modified or freed
+*/
+
+char *
+GetLayoutFullPath()
+{
+ return (DynStringToCStr(&thisLayout.fullFileName));
+}
+
+/**
+* Return the filename part of the full path
+*
+* \return pointer to the filename part, NULL is no filename is set
+*/
+
+char *
+GetLayoutFilename()
+{
+ char *string = DynStringToCStr(&thisLayout.fullFileName);
+
+ if (string) {
+ return (FindFilename(string));
+ } else {
+ return (NULL);
+ }
+}
+
+char *
+GetLayoutTitle()
+{
+ return (thisLayout.props.title1);
+}
+
+char *
+GetLayoutSubtitle()
+{
+ return (thisLayout.props.title2);
+}
+
+DIST_T
+GetLayoutMinTrackRadius()
+{
+ return (thisLayout.props.minTrackRadius);
+}
+
+ANGLE_T
+GetLayoutMaxTrackGrade()
+{
+ return (thisLayout.props.maxTrackGrade);
+}
+
+SCALEDESCINX_T
+GetLayoutCurScaleDesc()
+{
+ return (thisLayout.props.curScaleDescInx);
+}
+
+SCALEINX_T
+GetLayoutCurScale()
+{
+ return (thisLayout.props.curScaleInx);
+}
+/****************************************************************************
+*
+* Layout Dialog
+*
+*/
+
+static wWin_p layoutW;
+
+static paramData_t layoutPLs[] = {
+ { PD_FLOAT, &thisLayout.props.roomSize.x, "roomsizeX", PDO_NOPREF | PDO_DIM | PDO_NOPSHUPD | PDO_DRAW, &r1_9999999, N_("Room Width"), 0, (void*)(CHANGE_MAIN | CHANGE_MAP) },
+ { PD_FLOAT, &thisLayout.props.roomSize.y, "roomsizeY", PDO_NOPREF | PDO_DIM | PDO_NOPSHUPD | PDO_DRAW | PDO_DLGHORZ, &r1_9999999, N_(" Height"), 0, (void*)(CHANGE_MAIN | CHANGE_MAP) },
+ { PD_STRING, &thisLayout.props.title1, "title1", PDO_NOPSHUPD, NULL, N_("Layout Title"), 0, (void *)sizeof(thisLayout.props.title1) },
+ { PD_STRING, &thisLayout.props.title2, "title2", PDO_NOPSHUPD, NULL, N_("Subtitle"), 0, (void *)sizeof(thisLayout.props.title2) },
+#define SCALEINX (4)
+ { PD_DROPLIST, &thisLayout.props.curScaleDescInx, "scale", PDO_NOPREF | PDO_NOPSHUPD | PDO_NORECORD | PDO_NOUPDACT, (void *)120, N_("Scale"), 0, (void*)(CHANGE_SCALE) },
+#define GAUGEINX (5)
+ { PD_DROPLIST, &thisLayout.props.curGaugeInx, "gauge", PDO_NOPREF | PDO_NOPSHUPD | PDO_NORECORD | PDO_NOUPDACT | PDO_DLGHORZ, (void *)120, N_(" Gauge"), 0, (void *)(CHANGE_SCALE) },
+#define MINRADIUSENTRY (6)
+ { PD_FLOAT, &thisLayout.props.minTrackRadius, "mintrackradius", PDO_DIM | PDO_NOPSHUPD | PDO_NOPREF, &r1_10000, N_("Min Track Radius"), 0, (void*)(CHANGE_MAIN | CHANGE_LIMITS) },
+ { PD_FLOAT, &thisLayout.props.maxTrackGrade, "maxtrackgrade", PDO_NOPSHUPD | PDO_DLGHORZ, &r0_90, N_(" Max Track Grade (%)"), 0, (void*)(CHANGE_MAIN) }
+};
+
+static paramGroup_t layoutPG = { "layout", PGO_RECORD | PGO_PREFMISC, layoutPLs, sizeof layoutPLs / sizeof layoutPLs[0] };
+
+/**
+* Apply the changes entered to settings
+*
+* \param junk IN unused
+*/
+
+static void LayoutOk(void * junk)
+{
+ long changes;
+
+ changes = GetChanges(&layoutPG);
+
+ /* [mf Nov. 15, 2005] Get the gauge/scale settings */
+ if (changes & CHANGE_SCALE) {
+ SetScaleGauge(thisLayout.props.curScaleDescInx, thisLayout.props.curGaugeInx);
+ }
+
+ /* [mf Nov. 15, 2005] end */
+
+ if (changes & CHANGE_MAP) {
+ SetRoomSize(thisLayout.props.roomSize);
+ }
+
+ DoChangeNotification(changes);
+
+ if (changes & CHANGE_LIMITS) {
+ char prefString[30];
+ // now set the minimum track radius
+ sprintf(prefString, "minTrackRadius-%s", curScaleName);
+ wPrefSetFloat("misc", prefString, thisLayout.props.minTrackRadius);
+ }
+
+ free(thisLayout.copyOfLayoutProps);
+ wHide(layoutW);
+}
+
+/**
+* Discard the changes entered and replace with earlier values
+*
+* \param junk IN unused
+*/
+
+static void LayoutCancel(struct wWin_t *junk)
+{
+ thisLayout.props = *(thisLayout.copyOfLayoutProps);
+ ParamLoadControls(&layoutPG);
+ LayoutOk(junk);
+}
+
+static void LayoutChange(long changes)
+{
+ if (changes & (CHANGE_SCALE | CHANGE_UNITS))
+ if (layoutW != NULL && wWinIsVisible(layoutW)) {
+ ParamLoadControls(&layoutPG);
+ }
+}
+
+void DoLayout(void * junk)
+{
+ thisLayout.props.roomSize = mapD.size;
+
+ if (layoutW == NULL) {
+ layoutW = ParamCreateDialog(&layoutPG, MakeWindowTitle(_("Layout Options")),
+ _("Ok"), LayoutOk, LayoutCancel, TRUE, NULL, 0, LayoutDlgUpdate);
+ LoadScaleList((wList_p)layoutPLs[4].control);
+ }
+
+ LoadGaugeList((wList_p)layoutPLs[5].control,
+ thisLayout.props.curScaleDescInx); /* set correct gauge list here */
+ thisLayout.copyOfLayoutProps = malloc(sizeof(struct sLayoutProps));
+
+ if (!thisLayout.copyOfLayoutProps) {
+ exit(1);
+ }
+
+ *(thisLayout.copyOfLayoutProps) = thisLayout.props;
+
+ ParamLoadControls(&layoutPG);
+ wShow(layoutW);
+}
+
+EXPORT addButtonCallBack_t LayoutInit(void)
+{
+ ParamRegister(&layoutPG);
+ RegisterChangeNotification(LayoutChange);
+ return &DoLayout;
+}
+
+/**
+* Update the dialog when scale was changed. The list of possible gauges for the selected scale is
+* updated and the first entry is selected (usually standard gauge). After this the minimum gauge
+* is set from the preferences.
+*
+* \param pg IN dialog
+* \param inx IN changed entry field
+* \param valueP IN new value
+*/
+
+static void
+LayoutDlgUpdate(
+ paramGroup_p pg,
+ int inx,
+ void * valueP)
+{
+ /* did the scale change ? */
+ if (inx == SCALEINX) {
+ char prefString[100];
+ char scaleDesc[100];
+
+ LoadGaugeList((wList_p)layoutPLs[GAUGEINX].control, *((int *)valueP));
+ // set the first entry as default, usually the standard gauge for a scale
+ wListSetIndex((wList_p)layoutPLs[GAUGEINX].control, 0);
+
+ // get the minimum radius
+ // get the selected scale first
+ wListGetValues((wList_p)layoutPLs[SCALEINX].control, scaleDesc, 99, NULL, NULL);
+ strtok(scaleDesc, " ");
+
+ // now get the minimum track radius
+ sprintf(prefString, "minTrackRadius-%s", scaleDesc);
+ wPrefGetFloat("misc", prefString, &thisLayout.props.minTrackRadius, 0.0);
+
+ // put the scale's minimum value into the dialog
+ wStringSetValue((wString_p)layoutPLs[MINRADIUSENTRY].control,
+ FormatDistance(thisLayout.props.minTrackRadius));
+ }
+}
diff --git a/app/bin/layout.h b/app/bin/layout.h
new file mode 100644
index 0000000..4a581df
--- /dev/null
+++ b/app/bin/layout.h
@@ -0,0 +1,56 @@
+/** \file layout.h
+ * Layout data
+ */
+
+/* XTrkCad - Model Railroad CAD
+ * Copyright (C) 2017 Martin Fischer
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef HAVE_LAYOUT_H
+#define HAVE_LAYOUT_H
+
+#include "common.h"
+#include "misc.h"
+
+
+void SetLayoutFullPath(const char *fileName);
+void LoadLayoutMinRadiusPref(char *scaleName, double defaultValue);
+void SetLayoutTitle(char *title);
+void SetLayoutSubtitle(char *title);
+void SetLayoutMinTrackRadius(DIST_T radius);
+void SetLayoutMaxTrackGrade(ANGLE_T angle);
+void SetLayoutRoomSize(coOrd size);
+void SetLayoutCurScale(SCALEINX_T scale);
+void SetLayoutCurScaleDesc(SCALEDESCINX_T desc);
+void SetLayoutCurGauge(GAUGEINX_T gauge);
+void SetLayoutScaleGauge(SCALEDESCINX_T desc, GAUGEINX_T gauge);
+
+char *GetLayoutFullPath(void);
+char *GetLayoutFilename(void);
+char *GetLayoutTitle(void);
+char *GetLayoutSubtitle(void);
+DIST_T GetLayoutMinTrackRadius(void);
+SCALEINX_T GetLayoutCurScale(void );
+SCALEDESCINX_T GetLayoutCurScaleDesc(void);
+//GAUGEINX_T GetLayoutCurGauge(void);
+
+
+ANGLE_T GetLayoutMaxTrackGrade(void);
+SCALEDESCINX_T GetLayoutCurScaleDesc(void);
+
+void DoLayout(void * junk);
+#endif \ No newline at end of file
diff --git a/app/bin/lprintf.c b/app/bin/lprintf.c
index c0f1c00..217d904 100644
--- a/app/bin/lprintf.c
+++ b/app/bin/lprintf.c
@@ -1,5 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/lprintf.c,v 1.2 2006-05-26 17:31:44 m_fischer Exp $
+/** \file lprintf.c
+ * Logging functions
*/
/* XTrkCad - Model Railroad CAD
@@ -23,6 +23,7 @@
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include <errno.h>
#ifndef WINDOWS
#include <time.h>
@@ -30,8 +31,14 @@
#include <time.h>
#include <sys/timeb.h>
#endif
+
+#include "custom.h"
+#include "fileio.h"
+#include "messages.h"
+#include "paths.h"
#include "track.h"
+
/****************************************************************************
*
* LPRINTF
@@ -72,8 +79,7 @@ static void LogDoOpen( void )
{
if ( logFileName == NULL ) {
#ifdef WINDOWS
- logFileName = (char*)MyMalloc( strlen(wGetAppWorkDir()) + 1 + strlen("xtclog.txt") + 1);
- sprintf( logFileName, "%s%s%s", wGetAppWorkDir(), FILE_SEP_CHAR, "xtclog.txt" );
+ MakeFullpath(&logFileName, wGetAppWorkDir(), "xtclog.txt", NULL);
#else
logFile = stdout;
#endif
@@ -115,7 +121,7 @@ EXPORT void LogSet( char * name, int level )
EXPORT int LogFindIndex( char * name )
{
int inx;
- for ( inx=11; inx<logTable_da.cnt; inx++ )
+ for ( inx=0; inx<logTable_da.cnt; inx++ )
if ( strcasecmp( logTable(inx).name, name ) == 0 )
return inx;
return 0;
diff --git a/app/bin/macro.c b/app/bin/macro.c
index 2147eff..1c711ce 100644
--- a/app/bin/macro.c
+++ b/app/bin/macro.c
@@ -20,6 +20,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#include <assert.h>
#include <stdlib.h>
#include <stdio.h>
#ifndef WINDOWS
@@ -47,14 +48,20 @@
#include <stdint.h>
-#include "track.h"
-#include "version.h"
#include "common.h"
-#include "utility.h"
-#include "draw.h"
-#include "misc.h"
#include "compound.h"
+#include "cundo.h"
+#include "custom.h"
+#include "draw.h"
+#include "fileio.h"
#include "i18n.h"
+#include "messages.h"
+#include "misc.h"
+#include "param.h"
+#include "paths.h"
+#include "track.h"
+#include "utility.h"
+#include "version.h"
EXPORT long adjTimer;
static void DemoInitValues( void );
@@ -268,7 +275,7 @@ EXPORT void DoRecord( void * context )
recordFile_fs = wFilSelCreate( mainW, FS_SAVE, 0, title, sRecordFilePattern, StartRecord, NULL );
}
wTextClear( recordT );
- wFilSelect( recordFile_fs, curDirName );
+ wFilSelect( recordFile_fs, GetCurrentPath(MACROPATHKEY ));
}
/*****************************************************************************
@@ -716,11 +723,7 @@ EXPORT void TakeSnapshot( drawCmd_t * d )
wBitMapDelete( d->d );
documentSnapshotNum++;
if (documentCopy && documentFile) {
- cp = strrchr( message, FILE_SEP_CHAR[0] );
- if (cp == 0)
- cp = message;
- else
- cp++;
+ cp = FindFilename(message);
cp[strlen(cp)-4] = 0;
fprintf( documentFile, "\n?G%s\n", cp );
}
@@ -802,6 +805,7 @@ static void Playback( void )
static wBool_t demoWinOnTop = FALSE;
coOrd roomSize;
char * cp, * cq;
+ char *demoFileName = NULL;
useCurrentLayer = FALSE;
inPlayback = TRUE;
@@ -829,13 +833,13 @@ static void Playback( void )
Reset();
if (curDemo < 0 || curDemo >= demoList_da.cnt)
break;
- strcpy( paramFileName, demoList(curDemo).fileName );
- paramFile = fopen( paramFileName, "r" );
+ demoFileName = strdup(demoList(curDemo).fileName );
+ paramFile = fopen( demoFileName, "r" );
if ( paramFile == NULL ) {
- NoticeMessage( MSG_OPEN_FAIL, _("Continue"), NULL, _("Demo"), paramFileName, strerror(errno) );
+ NoticeMessage( MSG_OPEN_FAIL, _("Continue"), NULL, _("Demo"), demoFileName, strerror(errno) );
return;
}
-
+
playbackColor=wDrawColorBlack;
paramLineNum = 0;
wWinSetTitle( demoW, demoList( curDemo ).title );
@@ -848,11 +852,13 @@ static void Playback( void )
DoChangeNotification( CHANGE_ALL );
CompoundClearDemoDefns();
if ( fgets(paramLine, STR_LONG_SIZE, paramFile) == NULL ) {
- NoticeMessage( MSG_CANT_READ_DEMO, _("Continue"), NULL, sProdName, paramFileName );
+ NoticeMessage( MSG_CANT_READ_DEMO, _("Continue"), NULL, sProdName, demoFileName );
fclose( paramFile );
paramFile = NULL;
return;
}
+ free(demoFileName);
+ demoFileName = NULL;
}
if (paramLineNum == 0) {
documentSnapshotNum = 1;
@@ -950,38 +956,15 @@ static void Playback( void )
tempD.orig = mainD.orig;
tempD.size = mainD.size;
tempD.scale = mainD.scale;
-#ifdef LATER
- ResolveIndex();
- RecomputeElevations();
-#endif
+
DoRedraw();
if (playbackD != NULL && playbackBm != NULL)
MacroDrawBitMap( playbackD, playbackBm, playbackX, playbackY, wDrawColorBlack );
-#ifdef LATER
- } else if (strncmp( paramLine, "POSITION ", 9 ) == 0) {
- if ( !GetArgs( paramLine+9, "ff", &x, &y ) )
- continue;
- MovePlaybackCursor( &mainD, x, y );
-#endif
+
} else if (strncmp( paramLine, "PAUSE ", 6 ) == 0) {
paramTogglePlaybackHilite = TRUE;
didPause = TRUE;
-#ifdef DOPAUSE
- if (lastCmd == mouseCmd) {
- thisCmd = pauseCmd;
- } else {
- if ( !GetArgs( paramLine+6, "l", &timeout ) )
- continue;
-#ifdef LATER
- wFlush();
- wAlarm( timeout*playbackDelay/100, playback );
- return;
-#else
- if (playbackTimer == 0)
- wPause( timeout*playbackDelay/100 );
-#endif
- }
-#endif
+
if ( !GetArgs( paramLine+6, "l", &timeout ) )
continue;
if (timeout > 10000)
@@ -996,18 +979,13 @@ static void Playback( void )
} else if (strncmp( paramLine, "BIGPAUSE ", 6 ) == 0) {
paramTogglePlaybackHilite = TRUE;
didPause = FALSE;
-#ifdef LATER
- wFlush();
- wAlarm( bigPause*playbackDelay/100, playback );
- return;
-#else
+
if (playbackTimer == 0) {
timeout = bigPause*playbackDelay/100;
if (timeout <= dragTimeout)
timeout = dragTimeout+1;
wPause( timeout );
}
-#endif
} else if (strncmp( paramLine, "KEYSTATE ", 9 ) == 0 ) {
playbackKeyState = atoi( paramLine+9 );
} else if (strncmp( paramLine, "TIMESTART", 9 ) == 0 ) {
@@ -1059,49 +1037,9 @@ static void Playback( void )
DemoInitValues();
} else {
if (strncmp( paramLine, "MOUSE ", 6 ) == 0) {
-#ifdef LATER
- if ( GetArgs( paramLine+6, "dff", &rc, &pos.x, &pos.y) ) {
- pos.x = pos.x / mainD.scale - mainD.orig.x;
- pos.y = pos.y / mainD.scale - mainD.orig.y;
-#ifdef DOPAUSE
- if (lastCmd == pauseCmd) {
-#endif
- d = sqrt( (pos.x-mainPos.x)*(pos.x-mainPos.x) +
- (pos.y-mainPos.y)*(pos.y-mainPos.y) );
- d *= mainD.dpi;
- timeout = (long)(MSEC_PER_PIXEL * d);
- if (timeout > 2)
- if (playbackTimer == 0)
- wPause( timeout );
-#ifdef DOPAUSE
- }
-#endif
- mainPos = pos;
- }
-#endif
thisCmd = mouseCmd;
}
if (strncmp( paramLine, "MAP ", 6 ) == 0) {
-#ifdef LATER
- if ( GetArgs( paramLine+6, "dff", &rc, &pos.x, &pos.y ) ) {
- pos.x = pos.x / mapD.scale - mapD.orig.x;
- pos.y = pos.y / mapD.scale - mapD.orig.y;
-#ifdef DOPAUSE
- if (lastCmd == pauseCmd) {
-#endif
- d = sqrt( (pos.x-mapPos.y)*(pos.x-mapPos.x) +
- (pos.y-mapPos.y)*(pos.y-mapPos.y) );
- d *= mapD.dpi;
- timeout = (long)(MSEC_PER_PIXEL * d);
- if (timeout > 2)
- if (playbackTimer == 0)
- wPause( timeout );
-#ifdef DOPAUSE
- }
-#endif
- mapPos = pos;
- }
-#endif
thisCmd = mouseCmd;
}
for ( inx=0; inx<playbackProc_da.cnt; inx++ ) {
@@ -1241,7 +1179,7 @@ EXPORT void DoPlayBack( void * context )
if (demoW == NULL)
CreateDemoW();
wButtonSetLabel( demoNext, _("Save") );
- wFilSelect( playbackFile_fs, curDirName );
+ wFilSelect( playbackFile_fs, GetCurrentPath(MACROPATHKEY));
}
@@ -1380,6 +1318,7 @@ static BOOL_T ReadDemo(
static wMenu_p m;
char * cp;
char *oldLocale = NULL;
+ char *path;
if ( m == NULL )
m = demoM;
@@ -1405,10 +1344,8 @@ static BOOL_T ReadDemo(
if (userLocale)
oldLocale = SaveLocale(userLocale);
demoList( demoList_da.cnt-1 ).title = MyStrdup( _(line+6) );
- demoList( demoList_da.cnt-1 ).fileName =
- (char*)MyMalloc( strlen(libDir) + 1 + 5 + 1 + strlen(cp) + 1 );
- sprintf( demoList( demoList_da.cnt-1 ).fileName, "%s%s%s%s%s",
- libDir, FILE_SEP_CHAR, "demos", FILE_SEP_CHAR, cp );
+ MakeFullpath(&path, libDir, "demos", cp, NULL);
+ demoList(demoList_da.cnt - 1).fileName = path;
wMenuPushCreate( m, NULL, _(line+6), 0, DoDemo, (void*)(intptr_t)(demoList_da.cnt-1) );
if (oldLocale)
RestoreLocale(oldLocale);
diff --git a/app/bin/misc.c b/app/bin/misc.c
index b506f98..0422631 100644
--- a/app/bin/misc.c
+++ b/app/bin/misc.c
@@ -45,20 +45,27 @@
#else
#include <sys/stat.h>
#endif
+#include <locale.h>
#include <stdarg.h>
-
#include <stdint.h>
-#include "track.h"
+#include "cjoin.h"
#include "common.h"
-#include "utility.h"
+#include "compound.h"
+#include "cselect.h"
+#include "cundo.h"
+#include "custom.h"
#include "draw.h"
+#include "fileio.h"
+#include "i18n.h"
+#include "layout.h"
+#include "messages.h"
#include "misc.h"
-#include "cjoin.h"
-#include "compound.h"
+#include "param.h"
+#include "paths.h"
#include "smalldlg.h"
-#include "i18n.h"
-#include <locale.h>
+#include "track.h"
+#include "utility.h"
#define DEFAULT_SCALE ("N")
@@ -89,7 +96,7 @@ EXPORT wWin_p mainW;
EXPORT wIndex_t changed = 0;
-EXPORT char FAR message[STR_LONG_SIZE];
+EXPORT char message[STR_LONG_SIZE];
static char message2[STR_LONG_SIZE];
EXPORT REGION_T curRegion = 0;
@@ -107,6 +114,7 @@ EXPORT wButton_p redoB;
EXPORT wButton_p zoomUpB;
EXPORT wButton_p zoomDownB;
+wButton_p mapShowB;
EXPORT wIndex_t checkPtMark = 0;
@@ -286,6 +294,95 @@ EXPORT char * MyStrdup( const char * str )
return ret;
}
+/*
+ * Convert Text into the equivalent form that can be written to a file or put in a text box by adding escape characters
+ *
+ * The following special characters are produced -
+ * \n for LineFeed 0x0A
+ * \t for Tab 0x09
+ * "" for " This is so that a CSV conformant type program can interpret the file output
+ *
+ */
+EXPORT char * ConvertToEscapedText(const char * text) {
+ int text_i=0;
+ int add = 0; //extra chars for escape
+ while(text[text_i]) {
+ switch (text[text_i]) {
+ case '\n': add++; break;
+ case '\t': add++; break;
+ case '\\': add++; break;
+ case '\"': add++; break;
+ }
+ text_i++;
+ }
+ char * cout = MyMalloc(strlen(text)+1+add);
+ int cout_i = 0;
+ text_i = 0;
+ while(text[text_i]) {
+ char c = text[text_i];
+ switch (c) {
+ case '\n': cout[cout_i] = '\\'; cout_i++; cout[cout_i] = 'n'; cout_i++; break; // Line Feed
+ case '\t': cout[cout_i] = '\\'; cout_i++; cout[cout_i] = 't'; cout_i++; break; // Tab
+ case '\\': cout[cout_i] = '\\'; cout_i++; cout[cout_i] = '\\'; cout_i++; break; // BackSlash
+ case '\"': cout[cout_i] = '\"'; cout_i++; cout[cout_i] = '\"'; cout_i++; break; // Double Quotes
+ default: cout[cout_i] = c; cout_i++;
+ }
+ text_i++;
+ }
+ cout[cout_i] = '\0';
+ return cout;
+}
+
+/*
+ * Convert Text that has embedded escape characters into the equivalent form that can be shown on the screen
+ *
+ * The following special characters are supported -
+ * \n = LineFeed 0x0A
+ * \t = Tab 0x09
+ * \\ = \ The way to still produce backslash
+ * "" = " Take out quotes included so that other (CSV-like) programs could read the files
+ *
+ */
+EXPORT char * ConvertFromEscapedText(const char * text) {
+ enum { CHARACTER, ESCAPE, QUOTE } state = CHARACTER;
+ char * cout = MyMalloc(strlen(text)+1); //always equal to or shorter than
+ int text_i = 0;
+ int cout_i = 0;
+ int c;
+ while (text[text_i]) {
+ c = text[text_i];
+ switch (state) {
+ case CHARACTER:
+ if (c == '\\') {
+ state = ESCAPE;
+ } else if (c == '\"') {
+ state = QUOTE;
+ } else {
+ cout[cout_i] = c;
+ cout_i++;
+ }
+ break;
+
+ case ESCAPE:
+ switch (c) {
+ case '\\': cout[cout_i] = '\\'; cout_i++; break; // "\\" = "\"
+ case 'n': cout[cout_i] = '\n'; cout_i++; break; // LF
+ case 't': cout[cout_i] = '\t'; cout_i++; break; // TAB
+ }
+ state = CHARACTER;
+ break;
+ case QUOTE:
+ switch(c) {
+ case '\"': cout[cout_i] = c; cout_i++; break; //One quote = NULL, Two quotes = 1 quote
+ }
+ state = CHARACTER;
+ }
+ text_i++;
+ }
+ cout[cout_i] = '\0';
+ return cout;
+}
+
EXPORT void AbortProg(
char * msg,
@@ -482,7 +579,8 @@ static void ChkRevert( void )
_("&Revert"), _("&Cancel") );
if( rc ) {
/* load the file */
- LoadTracks( 1, &curFileName, NULL );
+ char *filename = GetLayoutFullPath();
+ LoadTracks( 1, &filename, NULL );
}
}
}
@@ -518,7 +616,7 @@ EXPORT void SaveState( void )
RememberParamFiles();
ParamUpdatePrefs();
- wPrefSetString( "misc", "lastlayout", curPathName );
+ wPrefSetString( "misc", "lastlayout", GetLayoutFullPath());
if ( fileList_ml ) {
strcpy( file, "file" );
@@ -537,17 +635,14 @@ EXPORT void SaveState( void )
}
/*
- * Clean up befor quitting
+ * Clean up before quitting
*/
-static int quitting;
static void DoQuitAfter( void )
{
changed = 0;
SaveState();
CleanupFiles();
-
- quitting = TRUE;
}
/**
* Process shutdown request. This function is called when the user requests
@@ -557,28 +652,26 @@ static void DoQuitAfter( void )
void DoQuit( void )
{
Confirm(_("Quit"), DoQuitAfter );
- if ( quitting ) {
#ifdef CHECK_UNUSED_BALLOONHELP
- ShowUnusedBalloonHelp();
+ ShowUnusedBalloonHelp();
#endif
- LogClose();
- wExit(0);
- }
+ LogClose();
+ wExit(0);
}
static void DoClearAfter( void )
{
+
ClearTracks();
/* set all layers to their default properties and set current layer to 0 */
DefaultLayerProperties();
-
+ DoLayout(NULL);
checkPtMark = 0;
Reset();
DoChangeNotification( CHANGE_MAIN|CHANGE_MAP );
EnableCommands();
- curPathName[0] = '\0';
- curFileName = curPathName;
+ SetLayoutFullPath("");
SetWindowTitle();
}
@@ -591,24 +684,29 @@ static void DoClear( void )
* Toggle visibility state of map window.
*/
-void MapWindowToggleShow( void )
+void MapWindowToggleShow(void)
{
- MapWindowShow( !mapVisible );
+ MapWindowShow(!mapVisible);
}
/**
* Set visibility state of map window.
+ *
+ * \param state IN TRUE if visible, FALSE if hidden
*/
-void MapWindowShow( int state )
+void MapWindowShow(int state)
{
- mapVisible = state;
- wPrefSetInteger( "misc", "mapVisible", mapVisible );
- wMenuToggleSet( mapShowMI, mapVisible );
- if( mapVisible )
- DoChangeNotification( CHANGE_MAP );
+ mapVisible = state;
+ wPrefSetInteger("misc", "mapVisible", mapVisible);
+ wMenuToggleSet(mapShowMI, mapVisible);
- wWinShow( mapW, mapVisible );
+ if (mapVisible) {
+ DoChangeNotification(CHANGE_MAP);
+ }
+
+ wWinShow(mapW, mapVisible);
+ wButtonSetBusy(mapShowB, (wBool_t)mapVisible);
}
static void DoShowWindow(
@@ -619,6 +717,7 @@ static void DoShowWindow(
if (data == mapW) {
if (mapVisible == FALSE) {
MapWindowShow( TRUE );
+ return;
}
}
wWinShow( (wWin_p)data, TRUE );
@@ -717,25 +816,6 @@ EXPORT void SelectFont( void )
#define BUTTON_MAX (170)
#define NUM_CMDMENUS (4)
-#ifdef LATER
-static struct {
- addButtonCallBack_t actionProc;
- procCommand_t cmdProc;
- char * helpStr;
- wControl_p control;
- char * labelStr;
- int reqLevel;
- wBool_t enabled;
- wPos_t x, y;
- long options;
- long stickyMask;
- int group;
- long acclKey;
- wMenuPush_p menu[NUM_CMDMENUS];
- void * context;
- } commandList[COMMAND_MAX];
-#endif
-
static struct {
wControl_p control;
wBool_t enabled;
@@ -873,6 +953,7 @@ LOG( log_command, 2, ( "COMMAND CANCEL %s\n", commandList[curCommand].helpKey )
checkPtMark = changed;
}
MainRedraw();
+ MapRedraw();
EnableCommands();
ResetMouseState();
LOG( log_command, 1, ( "COMMAND RESET %s\n", commandList[curCommand].helpKey ) )
@@ -1011,7 +1092,10 @@ LOG( log_command, 4, ( " COMMAND returns %d\n", rc ) )
(commandList[curCommand].stickyMask & stickySet) ) {
tempSegs_da.cnt = 0;
UpdateAllElevations();
- MainRedraw();
+ if (action != C_REDRAW) {
+ MainRedraw();
+ MapRedraw();
+ }
if (commandList[curCommand].options & IC_NORESTART) {
return C_CONTINUE;
}
@@ -1197,7 +1281,7 @@ EXPORT void LayoutSetPos(
lastGroup = 0;
wWinGetSize( mainW, &width, &h );
gap = 5;
- toolbarWidth = width+5;
+ toolbarWidth = width-20+5;
layerButtCnt = 0;
toolbarHeight = 0;
}
@@ -1224,7 +1308,7 @@ EXPORT void LayoutSetPos(
h = wControlGetHeight( buttonList[inx].control );
if ( inx<buttonCnt-1 && (buttonList[inx+1].options&IC_ABUT) )
w += wControlGetWidth( buttonList[inx+1].control );
- if (toolbarWidth+w>width) {
+ if (toolbarWidth+w>width-20) {
toolbarWidth = 0;
toolbarHeight += h + 5;
}
@@ -1405,74 +1489,6 @@ EXPORT void ButtonGroupEnd( void )
}
-#ifdef LATER
-EXPORT wIndex_t AddCommandControl(
- procCommand_t command,
- char * helpKey,
- char * nameStr,
- wControl_p control,
- int reqLevel,
- long options,
- long acclKey,
- void * context )
-{
- wIndex_t buttInx = -1;
- wIndex_t cmdInx;
- BOOL_T newButtonGroup = FALSE;
- wMenu_p tm, p1m, p2m;
- static wIcon_p openbuttIcon = NULL;
- static wMenu_p commandsSubmenu;
- static wMenu_p popup1Submenu;
- static wMenu_p popup2Submenu;
-
- AddToolbarControl( control, options );
-
- buttonList[buttInx].cmdInx = commandCnt;
- cmdInx = AddCommand( command, helpKey, nameStr, NULL, reqLevel, options, acclKey, context );
- commandList[cmdInx].buttInx = buttInx;
- if (nameStr[0] == '\0')
- return cmdInx;
- if (commandList[cmdInx].options&IC_STICKY) {
- if ( buttonGroupPopupM==NULL || newButtonGroup ) {
- if ( stickyCnt > 32 )
- AbortProg( "stickyCnt>32" );
- stickyCnt++;
- }
- if ( buttonGroupPopupM==NULL) {
- stickyLabels[stickyCnt-1] = nameStr;
- } else {
- stickyLabels[stickyCnt-1] = buttonGroupStickyLabel;
- }
- stickyLabels[stickyCnt] = NULL;
- commandList[cmdInx].stickyMask = 1L<<(stickyCnt-1);
- }
- if ( buttonGroupPopupM ) {
- commandList[cmdInx].menu[0] =
- wMenuPushCreate( buttonGroupPopupM, helpKey, GetBalloonHelpStr(helpKey), 0, DoCommandB, (void*)cmdInx );
- tm = commandsSubmenu;
- p1m = popup1Submenu;
- p2m = popup2Submenu;
- } else {
- tm = commandsM;
- p1m = (options&IC_POPUP2)?popup1aM:popup1M;
- p2m = (options&IC_POPUP2)?popup2aM:popup2M;
- }
- commandList[cmdInx].menu[1] =
- wMenuPushCreate( tm, helpKey, nameStr, acclKey, DoCommandB, (void*)cmdInx );
- if ( (options & (IC_POPUP|IC_POPUP2)) ) {
- if ( !(options & IC_SELECTED) ) {
- commandList[cmdInx].menu[2] =
- wMenuPushCreate( p1m, helpKey, nameStr, 0, DoCommandB, (void*)cmdInx );
- }
- commandList[cmdInx].menu[3] =
- wMenuPushCreate( p2m, helpKey, nameStr, 0, DoCommandB, (void*)cmdInx );
- }
-
- return cmdInx;
-}
-#endif
-
-
EXPORT wIndex_t AddMenuButton(
wMenu_p menu,
procCommand_t command,
@@ -1730,7 +1746,7 @@ static char *AllToolbarLabels[] = {
N_("Create Track Buttons"),
N_("Layout Control Elements"),
N_("Modify Track Buttons"),
- N_("Describe/Select"),
+ N_("Properties/Select"),
N_("Track Group Buttons"),
N_("Train Group Buttons"),
N_("Create Misc Buttons"),
@@ -1826,15 +1842,26 @@ static void ShowAddElevations( void )
/*--------------------------------------------------------------------*/
static wWin_p rotateW;
+static wWin_p moveW;
static long rotateValue;
+static coOrd moveValue;
static rotateDialogCallBack_t rotateDialogCallBack;
+static moveDialogCallBack_t moveDialogCallBack;
static void RotateEnterOk( void * );
+
static paramIntegerRange_t rn360_360 = { -360, 360, 80 };
static paramData_t rotatePLs[] = {
{ PD_LONG, &rotateValue, "rotate", PDO_ANGLE, &rn360_360, N_("Angle:") } };
static paramGroup_t rotatePG = { "rotate", 0, rotatePLs, sizeof rotatePLs/sizeof rotatePLs[0] };
+static paramFloatRange_t r_1000_1000 = { -1000.0, 1000.0, 80 };
+static void MoveEnterOk( void * );
+static paramData_t movePLs[] = {
+ { PD_FLOAT, &moveValue.x, "moveX", PDO_DIM, &r_1000_1000, N_("Move X:") },
+ { PD_FLOAT, &moveValue.y, "moveY", PDO_DIM, &r_1000_1000, N_("Move Y:") } };
+static paramGroup_t movePG = { "move", 0, movePLs, sizeof movePLs/sizeof movePLs[0] };
+
EXPORT void StartRotateDialog( rotateDialogCallBack_t func )
{
@@ -1845,6 +1872,22 @@ EXPORT void StartRotateDialog( rotateDialogCallBack_t func )
wShow( rotateW );
}
+EXPORT void StartMoveDialog( moveDialogCallBack_t func )
+{
+ if ( moveW == NULL )
+ moveW = ParamCreateDialog( &movePG, MakeWindowTitle(_("Move")), _("Ok"), MoveEnterOk, wHide, FALSE, NULL, 0, NULL );
+ ParamLoadControls( &movePG );
+ moveDialogCallBack = func;
+ moveValue = zero;
+ wShow( moveW );
+}
+
+static void MoveEnterOk( void * junk )
+{
+ ParamLoadData( &movePG );
+ moveDialogCallBack( (void*) &moveValue );
+ wHide( moveW );
+}
static void RotateEnterOk( void * junk )
{
@@ -1862,6 +1905,17 @@ static void RotateDialogInit( void )
ParamRegister( &rotatePG );
}
+static void MoveDialogInit (void)
+{
+ ParamRegister( &movePG );
+}
+
+
+EXPORT void AddMoveMenu(
+ wMenu_p m,
+ moveDialogCallBack_t func ) {
+ wMenuPushCreate( m, "", _("Enter Move ..."), 0, (wMenuCallBack_p)StartMoveDialog, (void*)func );
+}
EXPORT void AddRotateMenu(
wMenu_p m,
@@ -1904,6 +1958,7 @@ static void CreateDebugW( void )
debugPG.paramCnt = debugCnt;
ParamRegister( &debugPG );
debugW = ParamCreateDialog( &debugPG, MakeWindowTitle(_("Debug")), _("Ok"), DebugOk, NULL, FALSE, NULL, 0, NULL );
+ wHide(debugW);
}
@@ -1974,7 +2029,9 @@ static char * accelKeyNames[] = {
"F9",
"F10",
"F11",
- "F12" };
+ "F12",
+ "NumpadAdd",
+ "NumpadSub"};
static void SetAccelKey(
char * prefName,
@@ -2020,12 +2077,12 @@ static void SetAccelKey(
#include "bitmaps/document-save.xpm"
#include "bitmaps/document-open.xpm"
#include "bitmaps/document-print.xpm"
+#include "bitmaps/map.xpm"
static void CreateMenus( void )
{
wMenu_p fileM, editM, viewM, optionM, windowM, macroM, helpM, toolbarM, messageListM, manageM, addM, changeM, drawM;
wMenu_p zoomM, zoomSubM;
-// wIcon_p bm_p;
wMenuPush_p zoomInM, zoomOutM;
@@ -2055,10 +2112,13 @@ static void CreateMenus( void )
wMenuPushCreate( popup2M, "cmdZoomOut", _("Zoom Out"), 0, (wMenuCallBack_p)DoZoomDown, (void*)1 );
MiscMenuItemCreate( popup1M, popup2M, "cmdGridEnable", _("SnapGrid Enable"), 0, (void*)(wMenuCallBack_p)SnapGridEnable, 0, (void *)0 );
MiscMenuItemCreate( popup1M, popup2M, "cmdGridShow", _("SnapGrid Show"), 0, (void*)(wMenuCallBack_p)SnapGridShow, 0, (void *)0 );
+ MiscMenuItemCreate( popup1M, popup2M, "cmdMapShow", _("Show/Hide Map"), 0, (void*)(wMenuCallBack_p)MapWindowToggleShow, 0, (void *)0);
wMenuSeparatorCreate( popup1M );
wMenuSeparatorCreate( popup2M );
MiscMenuItemCreate( popup2M, NULL, "cmdCopy", _("Copy"), 0, (void*)(wMenuCallBack_p)EditCopy, 0, (void *)0 );
MiscMenuItemCreate( popup1M, popup2M, "cmdPaste", _("Paste"), 0, (void*)(wMenuCallBack_p)EditPaste, 0, (void *)0 );
+ MiscMenuItemCreate( popup1M, popup2M, "cmdSelectAll", _("Select All"), 0, (void*)(wMenuCallBack_p)SetAllTrackSelect, 0, (void *)1 );
+ MiscMenuItemCreate( popup1M, popup2M, "cmdSelectCurrentLayer", _("Select Current Layer"), 0, (void*)(wMenuCallBack_p)SelectCurrentLayer, 0, (void *)0 );
MiscMenuItemCreate( popup2M, NULL, "cmdDeselectAll", _("Deselect All"), 0, (void*)(wMenuCallBack_p)SetAllTrackSelect, 0, (void *)0 );
wMenuPushCreate( popup2M, "cmdMove", _("Move"), 0, (wMenuCallBack_p)DoCommandBIndirect, &moveCmdInx );
wMenuPushCreate( popup2M, "cmdRotate", _("Rotate"), 0, (wMenuCallBack_p)DoCommandBIndirect, &rotateCmdInx );
@@ -2074,7 +2134,6 @@ static void CreateMenus( void )
AddToolbarButton( "menuFile-clear", wIconCreatePixMap(document_new), IC_MODETRAIN_TOO, (addButtonCallBack_t)DoClear, NULL );
AddToolbarButton( "menuFile-load", wIconCreatePixMap(document_open), IC_MODETRAIN_TOO, (addButtonCallBack_t)ChkLoad, NULL );
AddToolbarButton( "menuFile-save", wIconCreatePixMap(document_save), IC_MODETRAIN_TOO, (addButtonCallBack_t)DoSave, NULL );
-// AddToolbarButton( "menuFile-print", wIconCreatePixMap(document_print_xpm), IC_MODETRAIN_TOO, (addButtonCallBack_t)DoPrint, NULL );
cmdGroup = BG_ZOOM;
zoomUpB = AddToolbarButton( "cmdZoomIn", wIconCreatePixMap(zoomin_xpm), IC_MODETRAIN_TOO,
@@ -2097,7 +2156,7 @@ static void CreateMenus( void )
/*
* FILE MENU
*/
- MiscMenuItemCreate( fileM, NULL, "menuFile-clear", _("&New"), ACCL_NEW, (void*)(wMenuCallBack_p)DoClear, 0, (void *)0 );
+ MiscMenuItemCreate( fileM, NULL, "menuFile-clear", _("&New ..."), ACCL_NEW, (void*)(wMenuCallBack_p)DoClear, 0, (void *)0 );
wMenuPushCreate( fileM, "menuFile-load", _("&Open ..."), ACCL_OPEN, (wMenuCallBack_p)ChkLoad, NULL );
wMenuSeparatorCreate( fileM );
@@ -2179,8 +2238,10 @@ static void CreateMenus( void )
// visibility toggle for map window
// get the start value
- wPrefGetInteger( "misc", "mapVisible", (long *)&mapVisible, 1 );
- mapShowMI = wMenuToggleCreate( viewM, "cmdMapShow", _("Show Map"), ACCL_MAPSHOW,
+ long mapVisible_long;
+ wPrefGetInteger( "misc", "mapVisible", (long *)&mapVisible_long, 1 );
+ mapVisible = mapVisible_long?TRUE:FALSE;
+ mapShowMI = wMenuToggleCreate( viewM, "cmdMapShow", _("Show/Hide Map"), ACCL_MAPSHOW,
mapVisible, (wMenuToggleCallBack_p)MapWindowToggleShow, NULL );
wMenuSeparatorCreate( viewM );
@@ -2193,6 +2254,10 @@ static void CreateMenus( void )
cmdGroup = BG_SNAP;
InitSnapGridButtons();
+ mapShowB = AddToolbarButton("cmdMapShow", wIconCreatePixMap(map_xpm), IC_MODETRAIN_TOO,
+ (addButtonCallBack_t)MapWindowToggleShow, NULL);
+ wControlLinkedSet((wControl_p)mapShowMI, (wControl_p)mapShowB);
+ wButtonSetBusy(mapShowB, (wBool_t)mapVisible);
/*
* ADD MENU
@@ -2221,6 +2286,7 @@ static void CreateMenus( void )
cmdGroup = BG_SELECT;
InitCmdDescribe( changeM );
InitCmdSelect( changeM );
+ InitCmdPan( changeM );
wMenuSeparatorCreate( changeM );
cmdGroup = BG_TRKGRP;
@@ -2324,7 +2390,7 @@ static void CreateMenus( void )
InitNewTurn( wMenuMenuCreate( manageM, "cmdTurnoutNew", _("Tur&nout Designer...") ) );
- MiscMenuItemCreate( manageM, NULL, "smdContmgm", _("Layout &Control Elements"), ACCL_CONTMGM,(void*)ControlMgrInit(),0,(void*) 0);
+ MiscMenuItemCreate( manageM, NULL, "cmdContmgm", _("Layout &Control Elements"), ACCL_CONTMGM,(void*)ControlMgrInit(),0,(void*) 0);
MiscMenuItemCreate( manageM, NULL, "cmdGroup", _("&Group"), ACCL_GROUP, (void*)(wMenuCallBack_p)DoGroup, IC_SELECTED, (void *)0 );
MiscMenuItemCreate( manageM, NULL, "cmdUngroup", _("&Ungroup"), ACCL_UNGROUP, (void*)(wMenuCallBack_p)DoUngroup, IC_SELECTED, (void *)0 );
@@ -2361,13 +2427,15 @@ static void CreateMenus( void )
#endif
SetAccelKey( "zoomUp", wAccelKey_Pgdn, 0, (wAccelKeyCallBack_p)DoZoomUp, (void*)1 );
SetAccelKey( "zoomDown", wAccelKey_Pgup, 0, (wAccelKeyCallBack_p)DoZoomDown, (void*)1 );
- SetAccelKey( "redraw", wAccelKey_F5, 0, (wAccelKeyCallBack_p)MainRedraw, (void*)1 );
+ SetAccelKey( "redraw", wAccelKey_F5, 0, (wAccelKeyCallBack_p)MainRedraw, (void*)1 );
SetAccelKey( "delete", wAccelKey_Del, 0, (wAccelKeyCallBack_p)SelectDelete, (void*)1 );
SetAccelKey( "copy", wAccelKey_Ins, WKEY_CTRL, (wAccelKeyCallBack_p)EditCopy, 0 );
SetAccelKey( "paste", wAccelKey_Ins, WKEY_SHIFT, (wAccelKeyCallBack_p)EditPaste, 0 );
SetAccelKey( "undo", wAccelKey_Back, WKEY_SHIFT, (wAccelKeyCallBack_p)UndoUndo, 0 );
SetAccelKey( "cut", wAccelKey_Del, WKEY_SHIFT, (wAccelKeyCallBack_p)EditCut, 0 );
SetAccelKey( "nextWindow", wAccelKey_F6, 0, (wAccelKeyCallBack_p)NextWindow, 0 );
+ SetAccelKey( "zoomUp", wAccelKey_Numpad_Add, WKEY_CTRL, (wAccelKeyCallBack_p)DoZoomUp, (void*)1 );
+ SetAccelKey( "zoomDown", wAccelKey_Numpad_Subtract, WKEY_CTRL, (wAccelKeyCallBack_p)DoZoomDown, (void*)1 );
InitBenchDialog();
}
@@ -2386,9 +2454,9 @@ static void LoadFileList( void )
if (!cp)
continue;
pathName = MyStrdup(cp);
- fileName = strrchr( pathName, FILE_SEP_CHAR[0] );
+ fileName = FindFilename((char *)pathName);
if (fileName)
- wMenuListAdd( fileList_ml, 0, fileName+1, pathName );
+ wMenuListAdd( fileList_ml, 0, fileName, pathName );
}
}
@@ -2408,13 +2476,13 @@ EXPORT void InitCmdExport( void )
* the option to load the checkpoint file to continue working after a crash.
*
* \param none
- * \return none
+ * \return TRUE for resume, FALSE otherwise
*
*/
-static void OfferCheckpoint( void )
+static int OfferCheckpoint( void )
{
- int ret;
+ int ret = FALSE;
/* sProdName */
ret = wNoticeEx( NT_INFORMATION,
@@ -2423,8 +2491,9 @@ static void OfferCheckpoint( void )
if( ret ) {
/* load the checkpoint file */
LoadCheckpoint();
+ ret = TRUE;
}
-
+ return ret;
}
@@ -2433,6 +2502,7 @@ EXPORT wWin_p wMain(
char * argv[] )
{
int c;
+ int resumeWork;
char * logFileName = NULL;
int log_init = 0;
int initialZoom = 0;
@@ -2445,6 +2515,8 @@ EXPORT wWin_p wMain(
char *oldLocale = NULL;
char buffer[ STR_SIZE ];
unsigned int i;
+ wPos_t displayWidth;
+ wPos_t displayHeight;
strcpy( buffer, sProdNameLower );
@@ -2527,15 +2599,19 @@ LOG1( log_init, ( "initCustom\n" ) )
* MAIN WINDOW
*/
LOG1( log_init, ( "create main window\n" ) )
- strcpy( Title1, sProdName );
+ SetLayoutTitle( sProdName );
sprintf( message, _("Unnamed Trackplan - %s(%s)"), sProdName, sVersion );
wSetBalloonHelp( balloonHelp );
- mainW = wWinMainCreate( buffer, 600, 350, "xtrkcadW", message, "main",
+
+ wGetDisplaySize(&displayWidth, &displayHeight);
+ mainW = wWinMainCreate( buffer, (displayWidth*2)/3, (displayHeight*2)/3, "xtrkcadW", message, "main",
F_RESIZE|F_MENUBAR|F_NOTAB|F_RECALLPOS|F_HIDE,
MainProc, NULL );
if ( mainW == NULL )
return NULL;
+ InitAppDefaults();
+
drawColorBlack = wDrawFindColor( wRGB( 0, 0, 0) );
drawColorWhite = wDrawFindColor( wRGB(255,255,255) );
drawColorRed = wDrawFindColor( wRGB(255, 0, 0) );
@@ -2593,6 +2669,7 @@ LOG1( log_init, ( "misc2Init\n" ) )
Misc2Init();
RotateDialogInit();
+ MoveDialogInit();
wSetSplashInfo( _("Initializing commands") );
LOG1( log_init, ( "paramInit\n" ) )
@@ -2687,19 +2764,21 @@ LOG1( log_init, ( "Initialization complete\n" ) )
ShowTip(SHOWTIP_NEXTTIP);
- /* if work is to be resumed and no filename was given on startup, load last layout */
- if( (onStartup == 0) && (!initialFile || !strlen(initialFile))) {
- initialFile = (char*)wPrefGetString( "misc", "lastlayout" );
- }
-
- if (initialFile && strlen(initialFile)) {
- DoFileList( 0, NULL, initialFile );
- }
-
/* check for existing checkpoint file */
+ resumeWork = FALSE;
if (ExistsCheckpoint())
- OfferCheckpoint();
+ resumeWork = OfferCheckpoint();
+ if (!resumeWork) {
+ /* if work is to be resumed and no filename was given on startup, load last layout */
+ if ((onStartup == 0) && (!initialFile || !strlen(initialFile))) {
+ initialFile = (char*)wPrefGetString("misc", "lastlayout");
+ }
+
+ if (initialFile && strlen(initialFile)) {
+ DoFileList(0, NULL, initialFile);
+ }
+ }
inMainW = FALSE;
return mainW;
}
diff --git a/app/bin/misc.h b/app/bin/misc.h
index 1747189..2a26b0c 100644
--- a/app/bin/misc.h
+++ b/app/bin/misc.h
@@ -25,12 +25,15 @@
#define EXPORT
+#include <stdio.h>
+
#include "acclkeys.h"
+#include "common.h"
+#include "draw.h"
+#include "wlib.h"
typedef void (*addButtonCallBack_t)(void*);
-#include "custom.h"
-
#ifdef WINDOWS
/* suppress warning from *.bmp about conversion of int to char */
#pragma warning( disable : 4305)
@@ -72,8 +75,7 @@ extern DIST_T connectDistance;
extern ANGLE_T connectAngle;
extern long twoRailScale;
extern long mapScale;
-extern char Title1[40];
-extern char Title2[40];
+extern long zoomCorner;
extern long checkPtInterval;
extern long liveMap;
extern long preSelect;
@@ -84,9 +86,6 @@ extern long descriptionFontSize;
extern long units;
extern long onStartup;
extern long angleSystem;
-extern SCALEINX_T curScaleInx;
-extern GAUGEINX_T curGaugeInx;
-extern SCALEDESCINX_T curScaleDescInx;
extern DIST_T trackGauge;
extern DIST_T curScaleRatio;
extern char * curScaleName;
@@ -181,7 +180,7 @@ extern wPos_t DlgSepFrmBottom;
extern wWin_p mainW;
extern wPos_t toolbarHeight;
extern wIndex_t changed;
-extern char FAR message[STR_LONG_SIZE];
+extern char message[STR_LONG_SIZE];
extern REGION_T curRegion;
extern long paramVersion;
extern coOrd zero;
@@ -199,8 +198,11 @@ extern wMenu_p popup1M, popup2M;
#define wControlBeside( B ) (wControlGetPosX((wControl_p)(B))+wControlGetWidth((wControl_p)(B)))
typedef void (*rotateDialogCallBack_t) ( void * );
+typedef void (*moveDialogCallBack_t) (void *);
extern void AddRotateMenu( wMenu_p, rotateDialogCallBack_t );
+extern void AddMoveMenu( wMenu_p, moveDialogCallBack_t );
extern void StartRotateDialog( rotateDialogCallBack_t );
+extern void StartMoveDialog(moveDialogCallBack_t );
/*
* Safe Memory etc
*/
@@ -219,6 +221,9 @@ int NoticeMessage( char *, char*, char *, ... );
int NoticeMessage2( int, char *, char*, char *, ... );
void DoQuit( void );
+char * ConvertFromEscapedText(const char * text);
+char * ConvertToEscapedText(const char * text);
+
void wShow( wWin_p );
void wHide( wWin_p );
void CloseDemoWindows( void );
@@ -282,10 +287,6 @@ typedef void (*changeNotificationCallBack_t)( long );
void RegisterChangeNotification( changeNotificationCallBack_t );
void DoChangeNotification( long );
-#include "param.h"
-#include "misc2.h"
-#include "fileio.h"
-
/* foreign externs */
extern drawCmd_t mapD;
extern STATUS_T CmdEnumerate( wAction_t, coOrd );
@@ -386,6 +387,11 @@ BOOL_T CarCustomSave(FILE*);
typedef int (*contMgmCallBack_p) (int, void *);
void ContMgmLoad (wIcon_p,contMgmCallBack_p,void *);
+/* dlayer.c */
+void LayerSetCounts();
+void DecrementLayerObjects(unsigned int index);
+void IncrementLayerObjects(unsigned int index);
+
/* doption.c */
long GetDistanceFormat( void );
diff --git a/app/bin/misc2.c b/app/bin/misc2.c
index 2c7644b..0dbb57d 100644
--- a/app/bin/misc2.c
+++ b/app/bin/misc2.c
@@ -36,27 +36,32 @@
#include <stdint.h>
-#include "track.h"
-#include "common.h"
-#include "utility.h"
-#include "draw.h"
-#include "misc.h"
#include "cjoin.h"
+#include "common.h"
#include "compound.h"
+#include "custom.h"
+#include "draw.h"
+#include "fileio.h"
#include "i18n.h"
+#include "layout.h"
+#include "messages.h"
+#include "misc.h"
+#include "param.h"
+#include "track.h"
+#include "utility.h"
+
-EXPORT long units = 0; /**< measurement units: 0 = English, 1 = metric */
+EXPORT long units = 0; /**< measurement units: 0 = English, 1 = metric */
EXPORT long checkPtInterval = 10;
EXPORT DIST_T curScaleRatio;
EXPORT char * curScaleName;
EXPORT DIST_T trackGauge;
-EXPORT char Title1[TITLEMAXLEN] = "";
-EXPORT char Title2[TITLEMAXLEN] = "Title line 2";
EXPORT long labelScale = 8;
EXPORT long labelEnable = ((1<<0)|LABELENABLE_LENGTHS|LABELENABLE_ENDPT_ELEV|LABELENABLE_CARS);
EXPORT long labelWhen = 2;
EXPORT long colorLayers = 0;
+EXPORT long zoomCorner = 0;
EXPORT long hideSelectionWindow = 0;
EXPORT long angleSystem = 0;
EXPORT DIST_T minLength = 0.1;
@@ -65,13 +70,15 @@ EXPORT ANGLE_T connectAngle = 1.0;
EXPORT long twoRailScale = 16;
EXPORT long mapScale = 64;
EXPORT long liveMap = 0;
-EXPORT long preSelect = 0;
+EXPORT long preSelect = 0; /**< default command 0 = Describe 1 = Select */
EXPORT long listLabels = 7;
EXPORT long layoutLabels = 1;
EXPORT long descriptionFontSize = 72;
EXPORT long enableListPrices = 1;
EXPORT void ScaleLengthEnd(void);
-static char minTrackRadiusPrefS[STR_SHORT_SIZE] = "minTrackRadius";
+
+static BOOL_T SetScaleDescGauge(SCALEINX_T scaleInx);
+
/****************************************************************************
*
@@ -173,7 +180,7 @@ static tieData_t tieData_demo = {
16.0/160.0,
32.0/160.0 };
-EXPORT SCALEINX_T curScaleInx = -1;
+//EXPORT SCALEINX_T curScaleInx = -1;
static scaleInfo_p curScale;
EXPORT long includeSameGaugeTurnouts = FALSE;
static SCALEINX_T demoScaleInx = -1;
@@ -188,8 +195,6 @@ typedef struct {
EXPORT typedef gaugeInfo_t * gaugeInfo_p;
-EXPORT GAUGEINX_T curGaugeInx = 0;
-
/** this struct holds a scale description */
typedef struct {
char *scaleDesc; /** ptr to textual description eg. 'HO' */
@@ -202,7 +207,6 @@ EXPORT typedef scaleDesc_t *scaleDesc_p;
static dynArr_t scaleDesc_da;
#define scaleDesc(N) DYNARR_N( scaleDesc_t, scaleDesc_da, N )
-EXPORT SCALEDESCINX_T curScaleDescInx;
/**
* Get the ratio from a scale description. Each member in the list of scale descriptions is
@@ -307,6 +311,48 @@ EXPORT char *GetGaugeDesc( SCALEDESCINX_T scaleInx, GAUGEINX_T gaugeInx )
return g->gauge;
}
+void
+SetScaleGauge(SCALEDESCINX_T desc, GAUGEINX_T gauge)
+{
+ dynArr_t gauges_da;
+
+ gauges_da = (scaleDesc(desc)).gauges_da;
+ SetLayoutCurScale(((gaugeInfo_p)gauges_da.ptr)[gauge].scale);
+}
+
+static BOOL_T
+SetScaleDescGauge(SCALEINX_T scaleInx)
+{
+ int i, j;
+ char *scaleName = GetScaleName(scaleInx);
+ DIST_T scaleRatio = GetScaleRatio(scaleInx);
+ dynArr_t gauges_da;
+
+ for (i = 0; i < scaleDesc_da.cnt; i++) {
+ char *t = strchr(scaleDesc(i).scaleDesc, ' ');
+ /* are the first characters (which describe the scale) identical? */
+ if (!strncmp(scaleDesc(i).scaleDesc, scaleName, t - scaleDesc(i).scaleDesc)) {
+ /* if yes, are we talking about the same ratio */
+ if (scaleInfo(scaleDesc(i).scale).ratio == scaleRatio) {
+ /* yes, we found the right scale descriptor, so now look for the gauge */
+ SetLayoutCurScaleDesc( i );
+ gauges_da = scaleDesc(i).gauges_da;
+ SetLayoutCurGauge(0);
+ for (j = 0; j < gauges_da.cnt; j++) {
+ gaugeInfo_p ptr = &(DYNARR_N(gaugeInfo_t, gauges_da, j));
+ if (scaleInfo(ptr->scale).gauge == GetScaleTrackGauge(scaleInx)) {
+ SetLayoutCurGauge( j );
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+ return TRUE;
+}
+
EXPORT SCALEINX_T LookupScale( const char * name )
{
wIndex_t si;
@@ -411,21 +457,20 @@ SetScale( SCALEINX_T newScaleInx )
NoticeMessage( MSG_BAD_SCALE_INDEX, _("Ok"), NULL, (int)newScaleInx );
return;
}
- curScaleInx = (SCALEINX_T)newScaleInx;
- curScale = &scaleInfo(curScaleInx);
+ SetLayoutCurScale((SCALEINX_T)newScaleInx );
+ curScale = &scaleInfo(newScaleInx);
trackGauge = curScale->gauge;
curScaleRatio = curScale->ratio;
curScaleName = curScale->scale;
- curScaleDescInx = 0;
+ SetLayoutCurScaleDesc( 0 );
- GetScaleGauge( curScaleInx, &curScaleDescInx, &curGaugeInx );
+ SetScaleDescGauge((SCALEINX_T)newScaleInx);
wPrefSetString( "misc", "scale", curScaleName );
// now load the minimum radius for the newly selected scale
- sprintf( minTrackRadiusPrefS, "minTrackRadius-%s", curScaleName );
- wPrefGetFloat( "misc", minTrackRadiusPrefS, &minTrackRadius, curScale->R[0] );
+ LoadLayoutMinRadiusPref(curScaleName, curScale->R[0]);
}
/**
@@ -449,7 +494,7 @@ EXPORT BOOL_T DoSetScale(
while (isspace((unsigned char)*newScale)) newScale++;
for (scale = 0; scale<scaleInfo_da.cnt; scale++) {
if (strcasecmp( scaleInfo(scale).scale, newScale ) == 0) {
- curScaleInx = scale;
+ SetLayoutCurScale(scale);
found = TRUE;
break;
}
@@ -543,15 +588,6 @@ EXPORT BOOL_T DoSetScaleDesc( void )
return( TRUE );
}
-void
-SetScaleGauge( SCALEDESCINX_T scaleDesc, GAUGEINX_T gauge )
-{
- dynArr_t gauges_da;
-
- gauges_da = (scaleDesc(scaleDesc)).gauges_da;
- curScaleInx = ((gaugeInfo_p)gauges_da.ptr)[ gauge ].scale;
-}
-
static BOOL_T AddScale(
char * line )
{
@@ -674,7 +710,7 @@ EXPORT void LoadGaugeList( wList_p gaugeList, SCALEDESCINX_T scale )
static void ScaleChange( long changes )
{
if (changes & CHANGE_SCALE) {
- SetScale( curScaleInx );
+ SetScale( GetLayoutCurScale() );
}
}
diff --git a/app/bin/misc2.h b/app/bin/misc2.h
index 86b466c..d616ad8 100644
--- a/app/bin/misc2.h
+++ b/app/bin/misc2.h
@@ -1,5 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/misc2.h,v 1.7 2008-01-04 02:12:33 tshead Exp $
+/** \file misc2.h
+ *
*/
/* XTrkCad - Model Railroad CAD
@@ -23,9 +23,9 @@
#ifndef MISC2_H
#define MISC2_H
-#ifdef WINDOWS
-#include <time.h>
-#endif
+#include "common.h"
+#include "misc.h"
+#include "time.h"
#define LABEL_MANUF (1<<0)
#define LABEL_PARTNO (1<<1)
@@ -76,27 +76,25 @@ void GetScaleEasementValues( DIST_T *, DIST_T * );
tieData_p GetScaleTieData( SCALEINX_T );
SCALEINX_T LookupScale( const char * );
BOOL_T GetScaleGauge( SCALEINX_T scaleInx, SCALEDESCINX_T *scaleDescInx, GAUGEINX_T *gaugeInx);
-
+void SetScaleGauge(SCALEDESCINX_T desc, GAUGEINX_T gauge);
BOOL_T DoSetScale( char * );
-static void SetScale( SCALEINX_T );
-void SetScaleGauge( SCALEDESCINX_T, GAUGEINX_T );
void ScaleLengthIncrement( SCALEINX_T, DIST_T );
void LoadScaleList( wList_p );
void LoadGaugeList( wList_p, SCALEDESCINX_T );
BOOL_T CompatibleScale( BOOL_T, SCALEINX_T, SCALEINX_T );
BOOL_T DoSetScaleDesc( void );
-typedef int LAYER_T;
-LAYER_T curLayer;
+
+unsigned int curLayer;
long layerCount;
-wDrawColor GetLayerColor( LAYER_T );
-BOOL_T GetLayerVisible( LAYER_T );
-BOOL_T GetLayerFrozen( LAYER_T );
-BOOL_T GetLayerOnMap( LAYER_T );
-char * GetLayerName( LAYER_T );
+wDrawColor GetLayerColor( unsigned int );
+BOOL_T GetLayerVisible( unsigned int );
+BOOL_T GetLayerFrozen( unsigned int );
+BOOL_T GetLayerOnMap( unsigned int );
+char * GetLayerName( unsigned int );
BOOL_T ReadLayers( char * );
BOOL_T WriteLayers( FILE * );
-
+char * FormatLayerName(unsigned int layerNumber);
/* dlayers.c */
void UpdateLayerLists( void );
void DefaultLayerProperties(void);
diff --git a/app/bin/param.c b/app/bin/param.c
index 27c558f..e513bc3 100644
--- a/app/bin/param.c
+++ b/app/bin/param.c
@@ -21,6 +21,7 @@
*/
#include <stdlib.h>
+#include <stdint.h>
#include <stdio.h>
#ifndef WINDOWS
#include <unistd.h>
@@ -45,12 +46,17 @@
#include <stdarg.h>
#include <locale.h>
#include <wlib.h>
-#include "track.h"
+
#include "common.h"
-#include "utility.h"
-#include "misc.h"
#include "compound.h"
+#include "custom.h"
+#include "fileio.h"
#include "i18n.h"
+#include "messages.h"
+#include "misc.h"
+#include "param.h"
+#include "track.h"
+#include "utility.h"
/* Bogus reg vars */
@@ -65,10 +71,6 @@ EXPORT char *PREFSECT = "DialogItem";
static int paramCheckErrorCount = 0;
static BOOL_T paramCheckShowErrors = FALSE;
-static int log_hotspot;
-static int hotspotOffsetX = 5;
-static int hotspotOffsetY = 19;
-
static int log_paramLayout;
@@ -168,88 +170,119 @@ static int GetNumberStr( char ** cpp, FLOAT_T * numP, BOOL_T * hasFract )
}
//extern wIndex_t distanceFormatInx; // distanceFormatInx
-static BOOL_T GetDistance( char ** cpp, FLOAT_T * distP )
+static BOOL_T GetDistance(char ** cpp, FLOAT_T * distP)
{
- FLOAT_T n1, n2;
- BOOL_T neg = FALSE;
- BOOL_T hasFract;
- BOOL_T expectInch = FALSE;
- long distanceFormat;
-
- while ( isspace((unsigned char)**cpp) ) (*cpp)++;
- if ( (*cpp)[0] == '\0' ) {
- *distP = 0.0;
- return TRUE;
- }
- if ( (*cpp)[0] == '-' ) {
- neg = TRUE;
- (*cpp)++;
- }
- if ( !GetNumberStr( cpp, &n1, &hasFract ) ) return FALSE;
-
- distanceFormat = GetDistanceFormat();
-
-
- if ( (*cpp)[0] == '\0' ) { /* EOL */
- if ( units==UNITS_METRIC )
- {
- n1 = n1/2.54;
- if ((distanceFormat & DISTFMT_FMT) == DISTFMT_FMT_MM)
- n1 /= 10;
- if ((distanceFormat & DISTFMT_FMT) == DISTFMT_FMT_M)
- n1 *= 100;
- } else {
- if (((distanceFormat & DISTFMT_FMT) == DISTFMT_FMT_SHRT) || ((distanceFormat & DISTFMT_FMT) == DISTFMT_FMT_LONG))
- n1 *= 12;
- }
- if ( neg )
- n1 = -n1;
- *distP = n1;
- return TRUE;
- }
- if ( (*cpp)[0] == '\'' ) {
- n1 *= 12.0;
- (*cpp) += 1;
- expectInch = !hasFract;
- } else if ( tolower((unsigned char)(*cpp)[0]) == 'f' && tolower((unsigned char)(*cpp)[1]) == 't' ) {
- n1 *= 12.0;
- (*cpp) += 2;
- expectInch = !hasFract;
- } else if ( tolower((unsigned char)(*cpp)[0]) == 'c' && tolower((unsigned char)(*cpp)[1]) == 'm' ) {
- n1 /= 2.54;
- (*cpp) += 2;
- } else if ( tolower((unsigned char)(*cpp)[0]) == 'm' && tolower((unsigned char)(*cpp)[1]) == 'm' ) {
- n1 /= 25.4;
- (*cpp) += 2;
- } else if ( tolower((unsigned char)(*cpp)[0]) == 'm' ) {
- n1 *= 100.0/2.54;
- (*cpp) += 1;
- } else if ( (*cpp)[0] == '"' ) {
- (*cpp) += 1;
- } else if ( tolower((unsigned char)(*cpp)[0]) == 'i' && tolower((unsigned char)(*cpp)[1]) == 'n' ) {
- (*cpp) += 2;
- } else {
- getNumberError = N_("Invalid Units Indicator");
- return FALSE;
- }
- while ( isspace((unsigned char)**cpp) ) (*cpp)++;
- if ( expectInch && isdigit( (unsigned char)**cpp ) ) {
- if ( !GetNumberStr( cpp, &n2, &hasFract ) ) return FALSE;
- n1 += n2;
- if ( (*cpp)[0] == '"' )
- (*cpp) += 1;
- else if ( tolower((unsigned char)(*cpp)[0]) == 'i' && tolower((unsigned char)(*cpp)[1]) == 'n' )
- (*cpp) += 2;
- while ( isspace((unsigned char)**cpp) ) (*cpp)++;
- }
- if ( **cpp ) {
- getNumberError = N_("Expected End Of String");
- return FALSE;
- }
- if ( neg )
- n1 = -n1;
- *distP = n1;
- return TRUE;
+ FLOAT_T n1, n2;
+ BOOL_T neg = FALSE;
+ BOOL_T hasFract;
+ BOOL_T expectInch = FALSE;
+ long distanceFormat;
+
+ while (isspace((unsigned char)**cpp)) {
+ (*cpp)++;
+ }
+
+ if ((*cpp)[0] == '\0') {
+ *distP = 0.0;
+ return TRUE;
+ }
+
+ if ((*cpp)[0] == '-') {
+ neg = TRUE;
+ (*cpp)++;
+ }
+
+ if (!GetNumberStr(cpp, &n1, &hasFract)) {
+ return FALSE;
+ }
+
+ distanceFormat = GetDistanceFormat();
+
+ if ((*cpp)[0] == '\0') { /* EOL */
+ if (units==UNITS_METRIC) {
+ n1 = n1/2.54;
+
+ if ((distanceFormat & DISTFMT_FMT) == DISTFMT_FMT_MM) {
+ n1 /= 10;
+ }
+
+ if ((distanceFormat & DISTFMT_FMT) == DISTFMT_FMT_M) {
+ n1 *= 100;
+ }
+ }
+
+ if (neg) {
+ n1 = -n1;
+ }
+
+ *distP = n1;
+ return TRUE;
+ }
+
+ if ((*cpp)[0] == '\'') {
+ n1 *= 12.0;
+ (*cpp) += 1;
+ expectInch = !hasFract;
+ } else if (tolower((unsigned char)(*cpp)[0]) == 'f' &&
+ tolower((unsigned char)(*cpp)[1]) == 't') {
+ n1 *= 12.0;
+ (*cpp) += 2;
+ expectInch = !hasFract;
+ } else if (tolower((unsigned char)(*cpp)[0]) == 'c' &&
+ tolower((unsigned char)(*cpp)[1]) == 'm') {
+ n1 /= 2.54;
+ (*cpp) += 2;
+ } else if (tolower((unsigned char)(*cpp)[0]) == 'm' &&
+ tolower((unsigned char)(*cpp)[1]) == 'm') {
+ n1 /= 25.4;
+ (*cpp) += 2;
+ } else if (tolower((unsigned char)(*cpp)[0]) == 'm') {
+ n1 *= 100.0/2.54;
+ (*cpp) += 1;
+ } else if ((*cpp)[0] == '"') {
+ (*cpp) += 1;
+ } else if (tolower((unsigned char)(*cpp)[0]) == 'i' &&
+ tolower((unsigned char)(*cpp)[1]) == 'n') {
+ (*cpp) += 2;
+ } else {
+ getNumberError = N_("Invalid Units Indicator");
+ return FALSE;
+ }
+
+ while (isspace((unsigned char)**cpp)) {
+ (*cpp)++;
+ }
+
+ if (expectInch && isdigit((unsigned char)**cpp)) {
+ if (!GetNumberStr(cpp, &n2, &hasFract)) {
+ return FALSE;
+ }
+
+ n1 += n2;
+
+ if ((*cpp)[0] == '"') {
+ (*cpp) += 1;
+ } else if (tolower((unsigned char)(*cpp)[0]) == 'i' &&
+ tolower((unsigned char)(*cpp)[1]) == 'n') {
+ (*cpp) += 2;
+ }
+
+ while (isspace((unsigned char)**cpp)) {
+ (*cpp)++;
+ }
+ }
+
+ if (**cpp) {
+ getNumberError = N_("Expected End Of String");
+ return FALSE;
+ }
+
+ if (neg) {
+ n1 = -n1;
+ }
+
+ *distP = n1;
+ return TRUE;
}
@@ -279,46 +312,57 @@ EXPORT FLOAT_T DecodeFloat(
}
-EXPORT FLOAT_T DecodeDistance(
- wString_p strCtrl,
- BOOL_T * validP )
+FLOAT_T DecodeDistance(
+ wString_p strCtrl,
+ BOOL_T * validP)
{
- FLOAT_T valF;
- char *cp0, *cp1, *cpN, c1;
-
- cp0 = cp1 = cpN = CAST_AWAY_CONST wStringGetValue( strCtrl );
- cpN += strlen(cpN)-1;
- while (cpN > cp1 && isspace((unsigned char)*cpN) ) cpN--;
- c1 = *cpN;
- switch ( c1 ) {
- case '=':
- case 's':
- case 'S':
- case 'p':
- case 'P':
- *cpN = '\0';
- break;
- default:
- cpN = NULL;
- }
- *validP = ( GetDistance( &cp1, &valF ) );
- if ( cpN )
- *cpN = c1;
- if ( *validP ) {
-/*fprintf( stderr, "gd=%0.6f\n", valF );*/
- if ( c1 == 's' || c1 == 'S' )
- valF *= curScaleRatio;
- else if ( c1 == 'p' || c1 == 'P' )
- valF /= curScaleRatio;
- if ( cpN )
- wStringSetValue( strCtrl, FormatDistance( valF ) );
- } else {
-/*fprintf( stderr, "Gd( @%s ) error=%s\n", cp1, getNumberError );*/
- sprintf( decodeErrorStr, "%s @ %s", _(getNumberError), *cp1?cp1:_("End Of String") );
- /*wStringSetHilight( strCtrl, cp1-cp0, -1 ); */
- valF = 0.0;
- }
- return valF;
+ FLOAT_T valF;
+ char *cp0, *cp1, *cpN, c1;
+ cp0 = cp1 = cpN = CAST_AWAY_CONST wStringGetValue(strCtrl);
+ cpN += strlen(cpN)-1;
+
+ while (cpN > cp1 && isspace((unsigned char)*cpN)) {
+ cpN--;
+ }
+
+ c1 = *cpN;
+
+ switch (c1) {
+ case '=':
+ case 's':
+ case 'S':
+ case 'p':
+ case 'P':
+ *cpN = '\0';
+ break;
+
+ default:
+ cpN = NULL;
+ }
+
+ *validP = (GetDistance(&cp1, &valF));
+
+ if (cpN) {
+ *cpN = c1;
+ }
+
+ if (*validP) {
+ if (c1 == 's' || c1 == 'S') {
+ valF *= curScaleRatio;
+ } else if (c1 == 'p' || c1 == 'P') {
+ valF /= curScaleRatio;
+ }
+
+ if (cpN) {
+ wStringSetValue(strCtrl, FormatDistance(valF));
+ }
+ } else {
+ sprintf(decodeErrorStr, "%s @ %s", _(getNumberError),
+ *cp1?cp1:_("End Of String"));
+ valF = 0.0;
+ }
+
+ return valF;
}
@@ -542,10 +586,18 @@ EXPORT void ParamLoadControl(
p->oldD.f = tmpR;
break;
case PD_STRING:
- wStringSetValue( (wString_p)p->control, (char*)p->valueP );
if (p->oldD.s)
MyFree( p->oldD.s );
- p->oldD.s = MyStrdup( (char*)p->valueP );
+ if (p->context) {
+ p->oldD.s = MyMalloc((intptr_t)p->context);
+ strncpy(p->oldD.s, (char*)p->valueP, (intptr_t)p->context);
+ *(p->oldD.s + (intptr_t)p->context - 1) = '\0';
+ wStringSetValue((wString_p)p->control, (char*)p->oldD.s);
+ }
+ else {
+ p->oldD.s = MyStrdup((char *)p->valueP);
+ wStringSetValue((wString_p)p->control, (char*)p->valueP);
+ }
break;
case PD_MESSAGE:
wMessageSetValue( (wMessage_p)p->control, _((char*)p->valueP) );
@@ -558,6 +610,7 @@ EXPORT void ParamLoadControl(
case PD_DRAW:
case PD_MENU:
case PD_MENUITEM:
+ case PD_BITMAP:
break;
}
}
@@ -677,8 +730,20 @@ EXPORT long ParamUpdate(
if (p->oldD.s)
MyFree( p->oldD.s );
p->oldD.s = MyStrdup( stringV );
- if ( /*(p->option&PDO_NOUPDUPD)==0 &&*/ p->valueP)
- strcpy( (char*)p->valueP, stringV );
+ if ( /*(p->option&PDO_NOUPDUPD)==0 &&*/ p->valueP) {
+ if (p->context) {
+ strncpy((char*)p->valueP, stringV, (intptr_t)p->context);
+ ((char *)p->valueP)[(intptr_t)p->context - 1] = '\0';
+ if (strlen(stringV) > (uintptr_t)p->context) {
+ NoticeMessage2(0, MSG_ENTERED_STRING_TRUNCATED, _("Ok"), NULL, (intptr_t)p->context);
+ }
+
+ }
+ else {
+ strcpy((char*)p->valueP, stringV);
+ }
+ }
+
if ( (p->option&PDO_NOUPDACT)==0 && pg->changeProc)
pg->changeProc( pg, inx, CAST_AWAY_CONST stringV );
change |= (1L<<inx);
@@ -690,6 +755,7 @@ EXPORT long ParamUpdate(
case PD_TEXT:
case PD_MENU:
case PD_MENUITEM:
+ case PD_BITMAP:
break;
}
}
@@ -754,6 +820,7 @@ EXPORT void ParamLoadData(
case PD_TEXT:
case PD_MENU:
case PD_MENUITEM:
+ case PD_BITMAP:
break;
}
}
@@ -862,6 +929,7 @@ static long ParamIntRestore(
case PD_TEXT:
case PD_MENU:
case PD_MENUITEM:
+ case PD_BITMAP:
break;
}
}
@@ -911,6 +979,7 @@ static void ParamIntSave(
case PD_TEXT:
case PD_MENU:
case PD_MENUITEM:
+ case PD_BITMAP:
break;
}
}
@@ -1006,7 +1075,7 @@ EXPORT void ParamRegister( paramGroup_p pg )
case PD_COMBOLIST:
if ( (p->option&PDO_LISTINDEX) ) {
if (!wPrefGetInteger( PREFSECT, prefName1, &valL, *(wIndex_t*)p->valueP ))
- wPrefGetInteger( prefSect2, prefName2, &valL, *(wIndex_t*)p->valueP );
+ wPrefGetInteger( prefSect2, prefName2, &valL, valL );
if ( p->control )
wListSetIndex( (wList_p)p->control, (wIndex_t)valL );
*(wIndex_t*)p->valueP = (wIndex_t)valL;
@@ -1185,6 +1254,7 @@ EXPORT void ParamGroupRecord(
case PD_TEXT:
case PD_MENU:
case PD_MENUITEM:
+ case PD_BITMAP:
break;
}
}
@@ -1517,7 +1587,7 @@ EXPORT void ParamChange( paramData_p p )
case PD_DROPLIST:
case PD_COMBOLIST:
if (recordF && (p->option&PDO_NORECORD)==0 && p->group->nameStr && p->nameStr) {
- fprintf( recordF, "PARAMETER %s %s %d %s\n", p->group->nameStr, p->nameStr, *(wIndex_t*)p->valueP, ??? );
+ fprintf( recordF, "PARAMETER %s %s %d %s\n", p->group->nameStr, p->nameStr, *(wIndex_t*)p->valueP, "???" );
}
#ifdef LATER
if ( p->control && (p->option&PDO_NOCONTUPD) == 0 )
@@ -1776,6 +1846,7 @@ static void ParamPlayback( char * line )
case PD_MESSAGE:
case PD_TEXT:
case PD_MENU:
+ case PD_BITMAP:
break;
case PD_MENUITEM:
if (p->valueP) {
@@ -1926,6 +1997,7 @@ static void ParamCheck( char * line )
case PD_TEXT:
case PD_MENU:
case PD_MENUITEM:
+ case PD_BITMAP:
break;
}
if ( hasError ) {
@@ -1965,7 +2037,6 @@ static void ParamCreateControl(
paramTextData_t * textDataP;
paramListData_t * listDataP;
wIcon_p iconP;
- wDrawColor color = wDrawColorBlack;
wWin_p win;
wPos_t w;
@@ -2049,8 +2120,8 @@ static void ParamCreateControl(
listDataP->height = wControlGetHeight( pd->control );
break;
case PD_COLORLIST:
- pd->control = (wControl_p)wColorSelectButtonCreate( win, xx, yy, helpStr, _(pd->winLabel), pd->winOption, 0, &color, ParamColorSelectPush, pd );
- break;
+ pd->control = (wControl_p)wColorSelectButtonCreate( win, xx, yy, helpStr, _(pd->winLabel), pd->winOption, 0, NULL, ParamColorSelectPush, pd );
+ break;
case PD_MESSAGE:
if ( pd->winData != 0 )
w = (wPos_t)(long)pd->winData;
@@ -2312,10 +2383,6 @@ static void LayoutControls(
char * cp;
strcpy( message, pd->nameStr );
for ( cp=message; *cp; cp++ ) if ( *cp == '-' ) *cp = '_';
- LOG( log_hotspot, 1, ( "popup %d %d %d %d _%s_%s\n",
- controlK.orig.x+hotspotOffsetX, controlK.orig.y+hotspotOffsetY,
- controlSize_x, controlSize_y,
- group->nameStr, message ) )
}
/*
* Set column term
@@ -2437,9 +2504,21 @@ static void ParamDlgProc(
}
}
+/**
+ * Create a dialog box from data definition.
+ *
+ * \param IN group data definition for the dialog
+ * \param IN title title of the new dialog
+ * \param IN okLabel text for the affirmative button
+ * \param IN okProc subroutine to call when ok is pressed
+ * \param IN cancelProc if not NULL a subroutine for Cancel event. If NULL no cancel button is created
+ * \param IN needHelpButton if TRUE a help button is created
+ * \param IN layoutProc ???
+ * \param IN winOption ???
+ * \param IN changeProc ???
+ */
-
-EXPORT wWin_p ParamCreateDialog(
+wWin_p ParamCreateDialog(
paramGroup_p group,
char * title,
char * okLabel,
@@ -2452,7 +2531,6 @@ EXPORT wWin_p ParamCreateDialog(
{
char helpStr[STR_SHORT_SIZE];
wPos_t w0, h0;
- wButton_p lastB = NULL;
char * cancelLabel = (winOption&PD_F_ALT_CANCELLABEL?_("Close"):_("Cancel"));
winOption &= ~PD_F_ALT_CANCELLABEL;
@@ -2465,34 +2543,22 @@ EXPORT wWin_p ParamCreateDialog(
if ( (winOption&F_RESIZE) != 0 )
winOption |= F_RECALLSIZE;
- sprintf( helpStr, "cmd%s", group->nameStr );
- helpStr[3] = toupper((unsigned char)helpStr[3]);
-
group->win = wWinPopupCreate( mainW, DlgSepRight, DlgSepFrmBottom, helpStr, title, group->nameStr, F_AUTOSIZE|winOption, ParamDlgProc, group );
if ( okLabel && okProc ) {
sprintf( helpStr, "%s-ok", group->nameStr );
- lastB = group->okB = wButtonCreate( group->win, 0, 0, helpStr, okLabel, BB_DEFAULT, 0, (wButtonCallBack_p)ParamButtonOk, group );
+ group->okB = wButtonCreate( group->win, 0, 0, helpStr, okLabel, BB_DEFAULT, 0, (wButtonCallBack_p)ParamButtonOk, group );
}
if ( group->cancelProc ) {
- lastB = group->cancelB = wButtonCreate( group->win, 0, 0, NULL, cancelLabel, BB_CANCEL, 0, (wButtonCallBack_p)ParamButtonCancel, group );
+ group->cancelB = wButtonCreate( group->win, 0, 0, NULL, cancelLabel, BB_CANCEL, 0, (wButtonCallBack_p)ParamButtonCancel, group );
}
if ( needHelpButton ) {
sprintf( helpStr, "cmd%s", group->nameStr );
helpStr[3] = toupper((unsigned char)helpStr[3]);
- lastB = group->helpB = wButtonCreate( group->win, 0, 0, NULL, _("Help"), BB_HELP, 0, (wButtonCallBack_p)wHelp, MyStrdup(helpStr) );
+ group->helpB = wButtonCreate( group->win, 0, 0, NULL, _("Help"), BB_HELP, 0, (wButtonCallBack_p)wHelp, MyStrdup(helpStr) );
}
- LOG( log_hotspot, 1, ( "mkshg ${PNG2DIR}/%s.png ${SHGDIR}/%s.shg << EOF\n", group->nameStr, group->nameStr ) )
LayoutControls( group, ParamCreateControl, &group->origW, &group->origH );
- if ( group->okB )
- LOG( log_hotspot, 1, ( "popup %d %d %d %d _%s_%s\n",
- wControlGetPosX((wControl_p)(group->okB))+hotspotOffsetX,
- wControlGetPosY((wControl_p)(group->okB))+hotspotOffsetY,
- wControlGetWidth((wControl_p)(group->okB)),
- wControlGetHeight((wControl_p)(group->okB)),
- group->nameStr, "ok" ) )
- LOG( log_hotspot, 1, ( "EOF\n" ) )
group->origW += DlgSepRight;
group->origH += DlgSepBottom;
@@ -2502,11 +2568,9 @@ EXPORT wWin_p ParamCreateDialog(
group->origH != h0 ) {
LayoutControls( group, ParamPositionControl, NULL, NULL );
}
- } else if ( group->origW > w0 || group->origH > h0 ) {
- if ( group->origW > w0 )
- w0 = group->origW;
- if ( group->origH > h0 )
- h0 = group->origH;
+ } else {
+ w0 = max(group->origW, w0);
+ h0 = max(group->origH, h0);
wWinSetSize( group->win, w0, h0 );
}
@@ -2566,6 +2630,5 @@ EXPORT void ParamInit( void )
{
AddPlaybackProc( "PARAMETER", ParamPlayback, NULL );
AddPlaybackProc( "PARAMCHECK", ParamCheck, NULL );
- log_hotspot = LogFindIndex( "hotspot" );
log_paramLayout = LogFindIndex( "paramlayout" );
}
diff --git a/app/bin/param.h b/app/bin/param.h
index 02d259c..355f3e7 100644
--- a/app/bin/param.h
+++ b/app/bin/param.h
@@ -1,5 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/param.h,v 1.6 2009-09-21 18:24:33 m_fischer Exp $
+/** \file param.h
+ * Definitions for parameter dialog handling
*/
/* XTrkCad - Model Railroad CAD
@@ -23,6 +23,10 @@
#ifndef PARAM_H
#define PARAM_H
+#include "common.h"
+#include "wlib.h"
+#include "draw.h"
+
typedef struct turnoutInfo_t * turnoutInfo_p;
typedef enum {
@@ -214,12 +218,15 @@ extern int paramLen;
extern unsigned long paramKey;
extern BOOL_T paramTogglePlaybackHilite;
+long GetChanges(paramGroup_p pg);
+
+
#define ParamMenuPushCreate( PD, M, HS, NS, AK, FUNC ) \
wMenuPushCreate( M, HS, NS, AK, paramMenuPush, &PD ); \
(PD).valueP = FUNC; \
if ( HS ) GetBalloonHelpStr(HS);
-#define PD_F_ALT_CANCELLABEL (1L<<30)
+#define PD_F_ALT_CANCELLABEL (1L<<30) /**<use Close or Cancel for the discard button */
wWin_p ParamCreateDialog( paramGroup_p, char *, char *, paramActionOkProc, paramActionCancelProc, BOOL_T, paramLayoutProc, long, paramChangeProc );
void ParamCreateControls( paramGroup_p, paramChangeProc );
void ParamLayoutDialog( paramGroup_p );
diff --git a/app/bin/paths.c b/app/bin/paths.c
new file mode 100644
index 0000000..cbd9b38
--- /dev/null
+++ b/app/bin/paths.c
@@ -0,0 +1,220 @@
+/** \file paths.c
+* Path and file name handling functions.
+*/
+
+/* XTrkCad - Model Railroad CAD
+ * Copyright (C) 2017 Martin Fischer
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+#include <stdarg.h>
+
+#ifdef WINDOWS
+#include <windows.h>
+#endif
+
+#include <wlib.h>
+#include <dynstring.h>
+#include "track.h"
+#include "common.h"
+#include "utility.h"
+#include "misc.h"
+#include "i18n.h"
+#include "uthash.h"
+#include "paths.h"
+
+struct pathTable {
+ char type[ PATH_TYPE_SIZE]; /**< type of path */
+ DynString path; /**< path */
+ UT_hash_handle hh; /**< makes this structure hashable */
+};
+
+static struct pathTable *paths;
+
+static void AddPath(const char *type, char*path);
+static struct pathTable *FindPath(const char *type);
+
+#define PATHS_SECTION "paths"
+
+/**
+* Find the path for a given type in the hash table
+*
+* \param type IN the searched type
+* \param entry OUT the table entry
+* \return
+*/
+
+static struct pathTable *
+FindPath(const char *type)
+{
+ struct pathTable *entry;
+ HASH_FIND_STR(paths, type, entry);
+ return (entry);
+}
+
+/**
+ * Add a path to the table. If it already exists, the value ist updated.
+ *
+ * \param type IN type of path
+ * \param path IN path
+ */
+static void
+AddPath(const char *type, char*path)
+{
+ struct pathTable *tableEntry;
+ tableEntry = FindPath(type);
+
+ if (tableEntry) {
+ DynStringClear(&(tableEntry->path));
+ } else {
+ tableEntry = malloc(sizeof(struct pathTable));
+ DynStringMalloc(&tableEntry->path, 16);
+ strcpy(tableEntry->type, type);
+ HASH_ADD_STR(paths, type, tableEntry);
+ }
+
+ DynStringCatCStr(&(tableEntry->path), path);
+}
+
+/**
+ * Update the current directory for a specific filetype. Get the directory part from the current file.
+ * XTrackCAD keeps seprate directories for different filetypes.(for trackplans, bitmaps and DXF files).
+ * The paths are stored in a hash table using the file type as the hash.
+ *
+ * \param pathType IN file type
+ * \param fileName IN fully qualified filename
+ * \return
+ *
+ */
+
+void SetCurrentPath(
+ const char * pathType,
+ const char * fileName)
+{
+ char *path;
+ char *copy;
+ assert(fileName != NULL);
+ assert(pathType != NULL);
+ copy = strdup(fileName);
+ path = strrchr(copy, FILE_SEP_CHAR[0]);
+
+ if (path) {
+ *path = '\0';
+ AddPath(pathType, copy);
+ wPrefSetString(PATHS_SECTION, pathType, copy);
+ }
+
+ free(copy);
+}
+
+/**
+ * Get the current path for a given file type. Following options are searched:
+ * 1. the hash array
+ * 2. the preferences file for this type
+ * 3. the older general setting (for backwards compatibility)
+ * 4. the user's home directory as default
+ * Search is finished when one of the options returns a valid path
+ *
+ * \param IN pathType the type
+ * \return pointer to path of NULL if not existing
+ */
+
+char *GetCurrentPath(
+ const char *pathType)
+{
+ struct pathTable *currentPath;
+ const char *path;
+ assert(pathType != NULL);
+ currentPath = FindPath(pathType);
+
+ if (currentPath) {
+ return (DynStringToCStr(&(currentPath->path)));
+ }
+
+ path = wPrefGetString(PATHS_SECTION, pathType);
+
+ if (!path) {
+ path = wPrefGetString("file", "directory");
+ }
+
+ if (!path) {
+ path = wGetUserHomeDir();
+ }
+
+ AddPath(pathType, (char *)path);
+ return ((char *)path);
+}
+
+/**
+* Find the filename/extension piece in a fully qualified path
+*
+* \param path IN the full path
+* \return pointer to the filename part
+*/
+
+char *FindFilename(char *path)
+{
+ char *name;
+ name = strrchr(path, FILE_SEP_CHAR[0]);
+
+ if (name) {
+ name++;
+ } else {
+ name = path;
+ }
+
+ return (name);
+}
+
+/**
+* Make a full path definition from directorys and filenames. The individual pieces are
+* concatinated. Where necessary a path delimiter is added. A pointer to the resulting
+* string is returned. This memory should be free'd when no longer needed.
+* Windows: to construct an absolute path, a leading backslash has to be included after
+* the drive delimiter ':' or at the beginning of the first directory name.
+*
+* \param str OUT pointer to the complete path
+* \param ... IN one or more parts of the path, terminate with NULL
+*/
+
+void
+MakeFullpath(char **str, ...)
+{
+ va_list valist;
+ const char *part;
+ char *separator = FILE_SEP_CHAR;
+ char lastchar = '\0';
+ DynString path;
+ DynStringMalloc(&path, 0);
+ va_start(valist, str);
+
+ while ((part = va_arg(valist, const char *))) {
+ if (part[0] !=separator[0] && lastchar && lastchar != separator[0] &&
+ lastchar != ':') {
+ DynStringNCatCStr(&path, 1, separator);
+ }
+
+ DynStringCatCStr(&path, part);
+ lastchar = part[strlen(part) - 1];
+ }
+
+ *str = strdup(DynStringToCStr(&path));
+ DynStringFree(&path);
+ va_end(valist);
+}
diff --git a/app/help/pageorder.c b/app/bin/paths.h
index 810e80b..1e3c98a 100644
--- a/app/help/pageorder.c
+++ b/app/bin/paths.h
@@ -1,6 +1,9 @@
+/** \file paths.h
+* Path and file name handling functions.
+*/
/* XTrkCad - Model Railroad CAD
- * Copyright (C) 2005 Dave Bullis
+ * Copyright (C) 2017 Martin Fischer
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -17,32 +20,13 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include <stdio.h>
-#if defined (__sun) && defined (__SVR4)
-#include <stdlib.h>
-#endif
-
-int main ( int argc, char * argv[] ) {
+#ifndef HAVE_PATHS_H
+#define HAVE_PATHS_H
-int pagecnt, start, end, count ;
-pagecnt = atoi( argv[1] );
+#define PATH_TYPE_SIZE 10
-if ( (pagecnt+2)%4 != 0 ) {
- fprintf( stderr, "pagecnt+2 % 4 != 0\n" );
- exit(1);
-}
-
-printf( "%d-,%d\n", pagecnt, pagecnt-1 );
-start = 1;
-end = pagecnt-2;
-count=5;
-while ( start < end ) {
- printf( "%d,%d,%d,%d%s", end,start,start+1,end-1, count>0?",":"\n" );
- start += 2;
- end -= 2;
- count--;
- if ( count < 0 )
- count = 5;
-}
-return 0;
-}
+void SetCurrentPath( const char * pathType, const char * fileName );
+char *GetCurrentPath(const char *pathType);
+char *FindFilename(char *path);
+void MakeFullpath(char **str, ...);
+#endif
diff --git a/app/bin/shrtpath.c b/app/bin/shrtpath.c
index fa48408..b8fbe1e 100644
--- a/app/bin/shrtpath.c
+++ b/app/bin/shrtpath.c
@@ -20,8 +20,10 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "track.h"
+#include <string.h>
+
#include "shrtpath.h"
+#include "track.h"
EXPORT int log_shortPath;
static int log_shortPathInitted;
diff --git a/app/bin/shrtpath.h b/app/bin/shrtpath.h
index a8236e6..165717f 100644
--- a/app/bin/shrtpath.h
+++ b/app/bin/shrtpath.h
@@ -1,4 +1,6 @@
-/* $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/shrtpath.h,v 1.1 2005-12-07 15:46:54 rc-flyer Exp $ */
+/** \file shrtpath.h
+ *
+ */
/* XTrkCad - Model Railroad CAD
* Copyright (C) 2005 Dave Bullis
@@ -17,6 +19,11 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#ifndef HAVE_SHRTPATH_H
+#define HAVE_SHRTPATH_H
+
+#include "common.h"
+#include "track.h"
typedef enum {
SPTC_MATCH, /* trk:ep is end of path? */
@@ -31,3 +38,4 @@ typedef int (*shortestPathFunc_p)( SPTF_CMD cmd, track_p, EPINX_T, EPINX_T, DIST
int FindShortestPath( track_p, EPINX_T, BOOL_T, shortestPathFunc_p, void * );
extern int log_shortPath;
+#endif //HAVE_SHRTPATH_H \ No newline at end of file
diff --git a/app/bin/smalldlg.c b/app/bin/smalldlg.c
index e4213a5..7828912 100644
--- a/app/bin/smalldlg.c
+++ b/app/bin/smalldlg.c
@@ -1,7 +1,5 @@
/** \file smalldlg.c
* Several simple and smaller dialogs.
- *
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/smalldlg.c,v 1.6 2009-09-21 18:24:33 m_fischer Exp $
*/
/* XTrkCad - Model Railroad CAD
@@ -38,23 +36,22 @@
#ifdef WINDOWS
#include <io.h>
#include <windows.h>
-#if _MSC_VER >1300
- #define strdup _strdup
-#endif
#else
#include <sys/stat.h>
#endif
-#include "wlib.h"
#include "common.h"
+#include "custom.h"
#include "draw.h"
+#include "fileio.h"
+#include "i18n.h"
#include "misc.h"
-#include "custom.h"
+#include "paths.h"
#include "param.h"
-
#include "smalldlg.h"
-#include "i18n.h"
+#include "wlib.h"
+extern char *sTipF;
wWin_p aboutW;
static wWin_p tipW; /**< window handle for tip dialog */
@@ -86,13 +83,14 @@ static void CreateTipW( void )
{
FILE * tipF;
char buff[4096];
+ char *filename;
char * cp;
tipW = ParamCreateDialog( &tipPG, MakeWindowTitle(_("Tip of the Day")), _("Ok"), (paramActionOkProc)wHide, NULL, FALSE, NULL, F_CENTER, NULL );
/* open the tip file */
- sprintf( buff, "%s%s%s.tip", libDir, FILE_SEP_CHAR, sProdNameLower );
- tipF = fopen( buff, "r" );
+ MakeFullpath(&filename, libDir, sTipF, NULL);
+ tipF = fopen( filename, "r" );
/* if tip file could not be opened, the only tip is an error message for the situation */
if (tipF == NULL) {
@@ -146,6 +144,7 @@ static void CreateTipW( void )
tips(tips_da.cnt-1) = strdup( buff );
}
}
+ free(filename);
}
/**
@@ -221,11 +220,12 @@ void CreateAboutW( void *ptr )
aboutW = ParamCreateDialog( &aboutPG, MakeWindowTitle(_("About")), _("Ok"), (paramActionOkProc)wHide, NULL, FALSE, NULL, F_TOP|F_CENTER, NULL );
ParamLoadMessage( &aboutPG, I_ABOUTVERSION, sAboutProd );
wTextAppend( COPYRIGHT_T, DESCRIPTION );
- wTextAppend( COPYRIGHT_T, "\n\nXTrackCAD is Copyright 2003 by Sillub Technology and 2007 by Martin Fischer and Bob Blackwell." );
- wTextAppend( COPYRIGHT_T, "\n\nIcons by: Tango Desktop Project (http://tango.freedesktop.org)");
- wTextAppend( COPYRIGHT_T, "\n\nContributions by: Robert Heller, Mikko Nissinen, Timothy M. Shead, Daniel Luis Spagnol" );
- wTextAppend( COPYRIGHT_T, "\n\nParameter Files by: Ralph Boyd, Dwayne Ward" );
- wTextAppend( COPYRIGHT_T, "\n\nuthash Copyright notice:" );
+ wTextAppend( COPYRIGHT_T, "\n\nXTrackCAD is Copyright 2003 by Sillub Technology and 2017 by Bob Blackwell, Martin Fischer and Adam Richards." );
+ wTextAppend( COPYRIGHT_T, "\nIcons by: Tango Desktop Project (http://tango.freedesktop.org)");
+ wTextAppend( COPYRIGHT_T, "\nContributions by: Robert Heller, Mikko Nissinen, Timothy M. Shead, Daniel Luis Spagnol" );
+ wTextAppend( COPYRIGHT_T, "\nParameter Files by: Ralph Boyd, Dwayne Ward" );
+ wTextAppend( COPYRIGHT_T, "\nCornu Algorithm and Implementation by: Raph Levien");
+ wTextAppend( COPYRIGHT_T, "\nuthash Copyright notice:" );
wTextAppend( COPYRIGHT_T, "\nCopyright (c) 2005-2015, Troy D. Hanson http://troydhanson.github.com/uthash/");
wTextAppend( COPYRIGHT_T, "\nAll rights reserved.");
}
diff --git a/app/bin/smalldlg.h b/app/bin/smalldlg.h
index 2bcb3bc..df54063 100644
--- a/app/bin/smalldlg.h
+++ b/app/bin/smalldlg.h
@@ -1,7 +1,5 @@
/** \file smalldlg.h
* Definitions and declarations for the small dialog box functions.
- *
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/smalldlg.h,v 1.2 2009-09-21 18:24:33 m_fischer Exp $
*/
/* XTrkCad - Model Railroad CAD
@@ -25,6 +23,8 @@
#ifndef SMALLDLG_H
#define SMALLDLG_H
+#include "wlib.h"
+
#define SHOWTIP_NEXTTIP (0L)
#define SHOWTIP_PREVTIP (1L)
#define SHOWTIP_FORCESHOW (2L)
diff --git a/app/bin/tbezier.c b/app/bin/tbezier.c
new file mode 100644
index 0000000..8d7ca6c
--- /dev/null
+++ b/app/bin/tbezier.c
@@ -0,0 +1,1629 @@
+/** \file tbezier.c
+ * XTrkCad - Model Railroad CAD
+ * Copyright (C) 2005 Dave Bullis
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ *****************************************************************************
+ * BEZIER TRACK (and LINE)
+ *
+ * tbezier.c has all the Track functions (for both T_BEZIER and T_BEZLIN) but all the heavy-math-lifting is delegated to cbezier.c
+ *
+ * Both Bezier Tracks and Lines are defined with two end points and two control points. Each end and control point pair is joined by a control arm.
+ * The angle between the control and end point (arm angle) determines the angle at the end point.
+ * The way the curve moves in between the ends is driven by the relative lengths of the two control arms.
+ * In general, lengthening one arm while keeping the other arm length fixed results in a curve that changes more slowly from the lengthened end and more swiftly from the other.
+ * Very un-prototypical track curves are easy to draw with Bezier, so beware!
+ *
+ * Another large user of tbezier.c is the Cornu function by way of its support for Bezier segments, which are used to approximate Cornu curves.
+ *
+ * In XTrkcad, Bezier curves are rendered into a set of Curved and Straight segments for display. This set is also saved, although the code recalculates a fresh set upon reload.
+ *
+ */
+
+
+#include "track.h"
+#include "draw.h"
+#include "tbezier.h"
+#include "cbezier.h"
+#include "ccurve.h"
+#include "cstraigh.h"
+#include "cjoin.h"
+#include "utility.h"
+#include "i18n.h"
+#include "param.h"
+#include "math.h"
+#include "string.h"
+#include "cundo.h"
+#include "layout.h"
+#include "fileio.h"
+#include "assert.h"
+
+EXPORT TRKTYP_T T_BEZIER = -1;
+EXPORT TRKTYP_T T_BZRLIN = -1;
+
+
+struct extraData {
+ BezierData_t bezierData;
+ };
+
+static int log_bezier = 0;
+
+static DIST_T GetLengthBezier( track_p );
+
+/****************************************
+ *
+ * UTILITIES
+ *
+ */
+
+/*
+ * Run after any changes to the Bezier points
+ */
+EXPORT void FixUpBezier(coOrd pos[4], struct extraData* xx, BOOL_T track) {
+ xx->bezierData.a0 = NormalizeAngle(FindAngle(pos[1], pos[0]));
+ xx->bezierData.a1 = NormalizeAngle(FindAngle(pos[2], pos[3]));
+
+ ConvertToArcs(pos, &xx->bezierData.arcSegs, track, xx->bezierData.segsColor,
+ xx->bezierData.segsWidth);
+ xx->bezierData.minCurveRadius = BezierMinRadius(pos,
+ xx->bezierData.arcSegs);
+ xx->bezierData.length = BezierLength(pos, xx->bezierData.arcSegs);
+}
+
+/*
+ * Run after any changes to the Bezier points for a Segment
+ */
+EXPORT void FixUpBezierSeg(coOrd pos[4], trkSeg_p p, BOOL_T track) {
+ p->u.b.angle0 = NormalizeAngle(FindAngle(pos[1], pos[0]));
+ p->u.b.angle3 = NormalizeAngle(FindAngle(pos[2], pos[3]));
+ ConvertToArcs(pos, &p->bezSegs, track, p->color,
+ p->width);
+ p->u.b.minRadius = BezierMinRadius(pos,
+ p->bezSegs);
+ p->u.b.length = BezierLength(pos, p->bezSegs);
+}
+
+EXPORT void FixUpBezierSegs(trkSeg_p p,int segCnt) {
+ for (int i=0;i<segCnt;i++,p++) {
+ if (p->type == SEG_BEZTRK || p->type == SEG_BEZLIN) {
+ FixUpBezierSeg(p->u.b.pos,p,p->type == SEG_BEZTRK);
+ }
+ }
+}
+
+
+static void GetBezierAngles( ANGLE_T *a0, ANGLE_T *a1, track_p trk )
+{
+ assert( trk != NULL );
+
+ *a0 = NormalizeAngle( GetTrkEndAngle(trk,0) );
+ *a1 = NormalizeAngle( GetTrkEndAngle(trk,1) );
+
+ LOG( log_bezier, 4, ( "getBezierAngles: = %0.3f %0.3f\n", *a0, *a1 ) )
+}
+
+
+static void ComputeBezierBoundingBox( track_p trk, struct extraData * xx )
+{
+ coOrd hi, lo;
+ hi.x = lo.x = xx->bezierData.pos[0].x;
+ hi.y = lo.y = xx->bezierData.pos[0].y;
+
+ for (int i=1; i<=3;i++) {
+ hi.x = hi.x < xx->bezierData.pos[i].x ? xx->bezierData.pos[i].x : hi.x;
+ hi.y = hi.y < xx->bezierData.pos[i].y ? xx->bezierData.pos[i].y : hi.y;
+ lo.x = lo.x > xx->bezierData.pos[i].x ? xx->bezierData.pos[i].x : lo.x;
+ lo.y = lo.y > xx->bezierData.pos[i].y ? xx->bezierData.pos[i].y : lo.y;
+ }
+ SetBoundingBox( trk, hi, lo );
+}
+
+
+DIST_T BezierDescriptionDistance(
+ coOrd pos,
+ track_p trk )
+{
+ struct extraData *xx = GetTrkExtraData(trk);
+ coOrd p1;
+
+ if ( GetTrkType( trk ) != T_BEZIER || ( GetTrkBits( trk ) & TB_HIDEDESC ) != 0 )
+ return 100000;
+
+ p1.x = xx->bezierData.pos[0].x + ((xx->bezierData.pos[3].x-xx->bezierData.pos[0].x)/2) + xx->bezierData.descriptionOff.x;
+ p1.y = xx->bezierData.pos[0].y + ((xx->bezierData.pos[3].y-xx->bezierData.pos[0].y)/2) + xx->bezierData.descriptionOff.y;
+
+ return FindDistance( p1, pos );
+}
+
+
+static void DrawBezierDescription(
+ track_p trk,
+ drawCmd_p d,
+ wDrawColor color )
+{
+ struct extraData *xx = GetTrkExtraData(trk);
+ wFont_p fp;
+ coOrd pos;
+
+ if (layoutLabels == 0)
+ return;
+ if ((labelEnable&LABELENABLE_TRKDESC)==0)
+ return;
+ pos.x = xx->bezierData.pos[0].x + ((xx->bezierData.pos[3].x - xx->bezierData.pos[0].x)/2);
+ pos.y = xx->bezierData.pos[0].y + ((xx->bezierData.pos[3].y - xx->bezierData.pos[0].y)/2);
+ pos.x += xx->bezierData.descriptionOff.x;
+ pos.y += xx->bezierData.descriptionOff.y;
+ fp = wStandardFont( F_TIMES, FALSE, FALSE );
+ sprintf( message, _("Bezier Curve: length=%s min radius=%s"),
+ FormatDistance(xx->bezierData.length), FormatDistance(xx->bezierData.minCurveRadius));
+ DrawBoxedString( BOX_BOX, d, pos, message, fp, (wFontSize_t)descriptionFontSize, color, 0.0 );
+}
+
+
+STATUS_T BezierDescriptionMove(
+ track_p trk,
+ wAction_t action,
+ coOrd pos )
+{
+ struct extraData *xx = GetTrkExtraData(trk);
+ static coOrd p0,p1;
+ static BOOL_T editState;
+ wDrawColor color;
+ if (GetTrkType(trk) != T_BEZIER) return C_TERMINATE;
+ p0.x = xx->bezierData.pos[0].x + ((xx->bezierData.pos[3].x - xx->bezierData.pos[0].x)/2);
+ p0.y = xx->bezierData.pos[0].y + ((xx->bezierData.pos[3].y - xx->bezierData.pos[0].y)/2);
+ switch (action) {
+ case C_DOWN:
+ case C_MOVE:
+ case C_UP:
+ editState = TRUE;
+ p1 = pos;
+ color = GetTrkColor( trk, &mainD );
+ DrawLine( &mainD, p0, pos, 0, wDrawColorBlack );
+ xx->bezierData.descriptionOff.x = pos.x - p0.x;
+ xx->bezierData.descriptionOff.y = pos.y - p0.y;
+ if (action == C_UP) {
+ editState = FALSE;
+ }
+ MainRedraw();
+ MapRedraw();
+ return action==C_UP?C_TERMINATE:C_CONTINUE;
+ case C_REDRAW:
+ if (editState)
+ DrawLine( &mainD, p1, p0, 0, wDrawColorBlack );
+ break;
+
+
+ }
+ return C_CONTINUE;
+}
+
+/****************************************
+ *
+ * GENERIC FUNCTIONS
+ *
+ */
+
+static struct {
+ coOrd pos[4];
+ FLOAT_T elev[2];
+ FLOAT_T length;
+ DIST_T minRadius;
+ FLOAT_T grade;
+ unsigned int layerNumber;
+ ANGLE_T angle[2];
+ DIST_T radius[2];
+ coOrd center[2];
+ dynArr_t segs;
+ long width;
+ wDrawColor color;
+ } bezData;
+typedef enum { P0, A0, R0, C0, Z0, CP1, CP2, P1, A1, R1, C1, Z1, RA, LN, GR, LY, WI, CO } crvDesc_e;
+static descData_t bezDesc[] = {
+/*P0*/ { DESC_POS, N_("End Pt 1: X,Y"), &bezData.pos[0] },
+/*A0*/ { DESC_ANGLE, N_("End Angle"), &bezData.angle[0] },
+/*R0*/ { DESC_DIM, N_("Radius"), &bezData.radius[0] },
+/*C0*/ { DESC_POS, N_("Center X,Y"), &bezData.center[0]},
+/*Z0*/ { DESC_DIM, N_("Z1"), &bezData.elev[0] },
+/*CP1*/ { DESC_POS, N_("Ctl Pt 1: X,Y"), &bezData.pos[1] },
+/*CP2*/ { DESC_POS, N_("Ctl Pt 2: X,Y"), &bezData.pos[2] },
+/*P1*/ { DESC_POS, N_("End Pt 2: X,Y"), &bezData.pos[3] },
+/*A1*/ { DESC_ANGLE, N_("End Angle"), &bezData.angle[1] },
+/*R1*/ { DESC_DIM, N_("Radius"), &bezData.radius[1] },
+/*C1*/ { DESC_POS, N_("Center X,Y"), &bezData.center[1]},
+/*Z1*/ { DESC_DIM, N_("Z2"), &bezData.elev[1] },
+/*RA*/ { DESC_DIM, N_("MinRadius"), &bezData.radius },
+/*LN*/ { DESC_DIM, N_("Length"), &bezData.length },
+/*GR*/ { DESC_FLOAT, N_("Grade"), &bezData.grade },
+/*LY*/ { DESC_LAYER, N_("Layer"), &bezData.layerNumber },
+/*WI*/ { DESC_LONG, N_("Line Width"), &bezData.width},
+/*CO*/ { DESC_COLOR, N_("Line Color"), &bezData.color},
+ { DESC_NULL } };
+
+static void UpdateBezier( track_p trk, int inx, descData_p descUpd, BOOL_T final )
+{
+ struct extraData *xx = GetTrkExtraData(trk);
+ BOOL_T updateEndPts;
+ EPINX_T ep;
+ ANGLE_T angle1, angle2;
+
+ if ( inx == -1 )
+ return;
+ updateEndPts = FALSE;
+ switch ( inx ) {
+ case P0:
+ if (GetTrkEndTrk(trk,0)) break;
+ updateEndPts = TRUE;
+ xx->bezierData.pos[0] = bezData.pos[0];
+ bezDesc[P0].mode |= DESC_CHANGE;
+ /* no break */
+ case P1:
+ if (GetTrkEndTrk(trk,0) && GetTrkEndTrk(trk,1)) break;
+ updateEndPts = TRUE;
+ xx->bezierData.pos[3]= bezData.pos[3];
+ bezDesc[P1].mode |= DESC_CHANGE;
+ break;
+ case A0:
+ case A1:
+ break;
+ case CP1:
+ if (GetTrkEndTrk(trk,0)) {
+ angle1 = NormalizeAngle(GetTrkEndAngle(trk,0));
+ angle2 = NormalizeAngle(FindAngle(bezData.pos[1], xx->bezierData.pos[0])-angle1);
+ if (angle2 > 90.0 && angle2 < 270.0)
+ Translate( &bezData.pos[1], xx->bezierData.pos[0], angle1, -FindDistance( xx->bezierData.pos[0], bezData.pos[1] )*cos(D2R(angle2)));
+ }
+ xx->bezierData.pos[1] = bezData.pos[1];
+ bezDesc[CP1].mode |= DESC_CHANGE;
+ updateEndPts = TRUE;
+ break;
+ case CP2:
+ if (GetTrkEndTrk(trk,1)) {
+ angle1 = NormalizeAngle(GetTrkEndAngle(trk,1));
+ angle2 = NormalizeAngle(FindAngle(bezData.pos[2], xx->bezierData.pos[3])-angle1);
+ if (angle2 > 90.0 && angle2 < 270.0)
+ Translate( &bezData.pos[2], xx->bezierData.pos[3], angle1, -FindDistance( xx->bezierData.pos[3], bezData.pos[0] )*cos(D2R(angle2)));
+ }
+ xx->bezierData.pos[2] = bezData.pos[2];
+ bezDesc[CP2].mode |= DESC_CHANGE;
+ updateEndPts = TRUE;
+ break;
+ case Z0:
+ case Z1:
+ ep = (inx==Z0?0:1);
+ UpdateTrkEndElev( trk, ep, GetTrkEndElevUnmaskedMode(trk,ep), bezData.elev[ep], NULL );
+ ComputeElev( trk, 1-ep, FALSE, &bezData.elev[1-ep], NULL );
+ if ( bezData.length > minLength )
+ bezData.grade = fabs( (bezData.elev[0]-bezData.elev[1])/bezData.length )*100.0;
+ else
+ bezData.grade = 0.0;
+ bezDesc[GR].mode |= DESC_CHANGE;
+ bezDesc[inx==Z0?Z1:Z0].mode |= DESC_CHANGE;
+ return;
+ case LY:
+ SetTrkLayer( trk, bezData.layerNumber);
+ break;
+ case WI:
+ xx->bezierData.segsWidth = bezData.width/mainD.dpi;
+ break;
+ case CO:
+ xx->bezierData.segsColor = bezData.color;
+ break;
+ default:
+ AbortProg( "updateBezier: Bad inx %d", inx );
+ }
+ ConvertToArcs(xx->bezierData.pos, &xx->bezierData.arcSegs, IsTrack(trk)?TRUE:FALSE, xx->bezierData.segsColor, xx->bezierData.segsWidth);
+ trackParams_t params;
+ for (int i=0;i<2;i++) {
+ GetTrackParams(0,trk,xx->bezierData.pos[i],&params);
+ bezData.radius[i] = params.arcR;
+ bezData.center[i] = params.arcP;
+ }
+ if (updateEndPts) {
+ if ( GetTrkEndTrk(trk,0) == NULL ) {
+ SetTrkEndPoint( trk, 0, bezData.pos[0], NormalizeAngle( FindAngle(bezData.pos[0], bezData.pos[1]) ) );
+ bezData.angle[0] = GetTrkEndAngle(trk,0);
+ bezDesc[A0].mode |= DESC_CHANGE;
+ GetTrackParams(PARAMS_CORNU,trk,xx->bezierData.pos[0],&params);
+ bezData.radius[0] = params.arcR;
+ bezData.center[0] = params.arcP;
+ }
+ if ( GetTrkEndTrk(trk,1) == NULL ) {
+ SetTrkEndPoint( trk, 1, bezData.pos[3], NormalizeAngle( FindAngle(bezData.pos[2], bezData.pos[3]) ) );
+ bezData.angle[1] = GetTrkEndAngle(trk,1);
+ bezDesc[A1].mode |= DESC_CHANGE;
+ GetTrackParams(PARAMS_CORNU,trk,xx->bezierData.pos[1],&params);
+ bezData.radius[1] = params.arcR;
+ bezData.center[1] = params.arcP;
+ }
+ }
+
+ FixUpBezier(xx->bezierData.pos, xx, IsTrack(trk));
+ ComputeBezierBoundingBox(trk, xx);
+ DrawNewTrack( trk );
+}
+
+static void DescribeBezier( track_p trk, char * str, CSIZE_T len )
+{
+ struct extraData *xx = GetTrkExtraData(trk);
+ DIST_T d;
+ int fix0, fix1 = 0;
+
+ d = xx->bezierData.length;
+ sprintf( str, _("Bezier %s(%d): Layer=%u MinRadius=%s Length=%s EP=[%0.3f,%0.3f] [%0.3f,%0.3f] CP1=[%0.3f,%0.3f] CP2=[%0.3f, %0.3f]"),
+ GetTrkType(trk)==T_BEZIER?"Track":"Line",
+ GetTrkIndex(trk),
+ GetTrkLayer(trk)+1,
+ FormatDistance(xx->bezierData.minCurveRadius),
+ FormatDistance(d),
+ PutDim(xx->bezierData.pos[0].x),PutDim(xx->bezierData.pos[0].y),
+ PutDim(xx->bezierData.pos[3].x),PutDim(xx->bezierData.pos[3].y),
+ PutDim(xx->bezierData.pos[1].x),PutDim(xx->bezierData.pos[1].y),
+ PutDim(xx->bezierData.pos[2].x),PutDim(xx->bezierData.pos[2].y));
+
+ if (GetTrkType(trk) == T_BEZIER) {
+ fix0 = GetTrkEndTrk(trk,0)!=NULL;
+ fix1 = GetTrkEndTrk(trk,1)!=NULL;
+ }
+
+ bezData.length = GetLengthBezier(trk);
+ bezData.minRadius = xx->bezierData.minCurveRadius;
+ if (bezData.minRadius >= 100000.00) bezData.minRadius = 0;
+ bezData.layerNumber = GetTrkLayer(trk);
+ bezData.pos[0] = xx->bezierData.pos[0];
+ bezData.pos[1] = xx->bezierData.pos[1];
+ bezData.pos[2] = xx->bezierData.pos[2];
+ bezData.pos[3] = xx->bezierData.pos[3];
+ bezData.angle[0] = xx->bezierData.a0;
+ bezData.angle[1] = xx->bezierData.a1;
+ trackParams_t params;
+ GetTrackParams(PARAMS_CORNU,trk,xx->bezierData.pos[0],&params);
+ bezData.radius[0] = params.arcR;
+ bezData.center[0] = params.arcP;
+ GetTrackParams(PARAMS_CORNU,trk,xx->bezierData.pos[3],&params);
+ bezData.radius[1] = params.arcR;
+ bezData.center[1] = params.arcP;
+
+ if (GetTrkType(trk) == T_BEZIER) {
+ ComputeElev( trk, 0, FALSE, &bezData.elev[0], NULL );
+ ComputeElev( trk, 1, FALSE, &bezData.elev[1], NULL );
+
+ if ( bezData.length > minLength )
+ bezData.grade = fabs( (bezData.elev[0]-bezData.elev[1])/bezData.length )*100.0;
+ else
+ bezData.grade = 0.0;
+ }
+
+ bezDesc[P0].mode = fix0?DESC_RO:0;
+ bezDesc[P1].mode = fix1?DESC_RO:0;
+ bezDesc[LN].mode = DESC_RO;
+ bezDesc[CP1].mode = 0;
+ bezDesc[CP2].mode = 0;
+ if (GetTrkType(trk) == T_BEZIER) {
+ bezDesc[Z0].mode = EndPtIsDefinedElev(trk,0)?0:DESC_RO;
+ bezDesc[Z1].mode = EndPtIsDefinedElev(trk,1)?0:DESC_RO;
+ }
+ else
+ bezDesc[Z0].mode = bezDesc[Z1].mode = DESC_IGNORE;
+ bezDesc[A0].mode = DESC_RO;
+ bezDesc[A1].mode = DESC_RO;
+ bezDesc[C0].mode = DESC_RO;
+ bezDesc[C1].mode = DESC_RO;
+ bezDesc[R0].mode = DESC_RO;
+ bezDesc[R1].mode = DESC_RO;
+ bezDesc[GR].mode = DESC_RO;
+ bezDesc[RA].mode = DESC_RO;
+ bezDesc[LY].mode = DESC_NOREDRAW;
+ bezData.width = (long)floor(xx->bezierData.segsWidth*mainD.dpi+0.5);
+ bezDesc[WI].mode = GetTrkType(trk) == T_BEZIER?DESC_IGNORE:0;
+ bezData.color = xx->bezierData.segsColor;
+ bezDesc[CO].mode = GetTrkType(trk) == T_BEZIER?DESC_IGNORE:0;
+
+ if (GetTrkType(trk) == T_BEZIER)
+ DoDescribe( _("Bezier Track"), trk, bezDesc, UpdateBezier );
+ else
+ DoDescribe( _("Bezier Line"), trk, bezDesc, UpdateBezier );
+
+}
+
+static DIST_T DistanceBezier( track_p t, coOrd * p )
+{
+ struct extraData *xx = GetTrkExtraData(t);
+
+ DIST_T d = 100000.0;
+ coOrd p2 = xx->bezierData.pos[0]; //Set initial point
+ segProcData_t segProcData;
+ for (int i = 0;i<xx->bezierData.arcSegs.cnt;i++) {
+ segProcData.distance.pos1 = * p;
+ SegProc(SEGPROC_DISTANCE,&DYNARR_N(trkSeg_t,xx->bezierData.arcSegs,i),&segProcData);
+ if (segProcData.distance.dd<d) {
+ d = segProcData.distance.dd;
+ p2 = segProcData.distance.pos1;
+ }
+ }
+ * p = p2;
+ return d;
+}
+
+static void DrawBezier( track_p t, drawCmd_p d, wDrawColor color )
+{
+ struct extraData *xx = GetTrkExtraData(t);
+ long widthOptions = DTS_LEFT|DTS_RIGHT;
+
+
+ if (GetTrkType(t) == T_BZRLIN) {
+ DrawSegsO(d,t,zero,0.0,xx->bezierData.arcSegs.ptr,xx->bezierData.arcSegs.cnt, 0.0, color, 0);
+ return;
+ }
+
+ if (GetTrkWidth(t) == 2)
+ widthOptions |= DTS_THICK2;
+ if (GetTrkWidth(t) == 3)
+ widthOptions |= DTS_THICK3;
+
+
+ if ( ((d->funcs->options&wDrawOptTemp)==0) &&
+ (labelWhen == 2 || (labelWhen == 1 && (d->options&DC_PRINT))) &&
+ labelScale >= d->scale &&
+ ( GetTrkBits( t ) & TB_HIDEDESC ) == 0 ) {
+ DrawBezierDescription( t, d, color );
+ }
+ DIST_T scale2rail = (d->options&DC_PRINT)?(twoRailScale*2+1):twoRailScale;
+ if ( tieDrawMode!=TIEDRAWMODE_NONE &&
+ d!=&mapD &&
+ (d->options&DC_TIES)!=0 &&
+ d->scale<scale2rail/2 )
+ DrawSegsO(d,t,zero,0.0,xx->bezierData.arcSegs.ptr,xx->bezierData.arcSegs.cnt, GetTrkGauge(t), color, widthOptions|DTS_TIES);
+ DrawSegsO(d,t,zero,0.0,xx->bezierData.arcSegs.ptr,xx->bezierData.arcSegs.cnt, GetTrkGauge(t), color, widthOptions);
+ if ( (d->funcs->options & wDrawOptTemp) == 0 &&
+ (d->options&DC_QUICK) == 0 ) {
+ DrawEndPt( d, t, 0, color );
+ DrawEndPt( d, t, 1, color );
+ }
+}
+
+static void DeleteBezier( track_p t )
+{
+ struct extraData *xx = GetTrkExtraData(t);
+
+ for (int i=0;i<xx->bezierData.arcSegs.cnt;i++) {
+ trkSeg_t s = DYNARR_N(trkSeg_t,xx->bezierData.arcSegs,i);
+ if (s.type == SEG_BEZTRK || s.type == SEG_BEZLIN) {
+ if (s.bezSegs.ptr) MyFree(s.bezSegs.ptr);
+ s.bezSegs.max = 0;
+ s.bezSegs.cnt = 0;
+ }
+ }
+ if (xx->bezierData.arcSegs.ptr && !xx->bezierData.arcSegs.max)
+ MyFree(xx->bezierData.arcSegs.ptr);
+ xx->bezierData.arcSegs.max = 0;
+ xx->bezierData.arcSegs.cnt = 0;
+ xx->bezierData.arcSegs.ptr = NULL;
+}
+
+static BOOL_T WriteBezier( track_p t, FILE * f )
+{
+ struct extraData *xx = GetTrkExtraData(t);
+ long options;
+ BOOL_T rc = TRUE;
+ BOOL_T track =(GetTrkType(t)==T_BEZIER);
+ options = GetTrkWidth(t) & 0x0F;
+ if ( ( GetTrkBits(t) & TB_HIDEDESC ) == 0 ) options |= 0x80;
+ rc &= fprintf(f, "%s %d %u %ld %ld %0.6f %s %d %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f 0 %0.6f %0.6f \n",
+ track?"BEZIER":"BZRLIN",GetTrkIndex(t), GetTrkLayer(t), (long)options, wDrawGetRGB(xx->bezierData.segsColor), xx->bezierData.segsWidth,
+ GetTrkScaleName(t), GetTrkVisible(t),
+ xx->bezierData.pos[0].x, xx->bezierData.pos[0].y,
+ xx->bezierData.pos[1].x, xx->bezierData.pos[1].y,
+ xx->bezierData.pos[2].x, xx->bezierData.pos[2].y,
+ xx->bezierData.pos[3].x, xx->bezierData.pos[3].y,
+ xx->bezierData.descriptionOff.x, xx->bezierData.descriptionOff.y )>0;
+ if (track) {
+ rc &= WriteEndPt( f, t, 0 );
+ rc &= WriteEndPt( f, t, 1 );
+ }
+ rc &= WriteSegs( f, xx->bezierData.arcSegs.cnt, xx->bezierData.arcSegs.ptr );
+ return rc;
+}
+
+static void ReadBezier( char * line )
+{
+ struct extraData *xx;
+ track_p t;
+ wIndex_t index;
+ BOOL_T visible;
+ coOrd p0, c1, c2, p1, dp;
+ char scale[10];
+ wIndex_t layer;
+ long options;
+ char * cp = NULL;
+ unsigned long rgb;
+ DIST_T width;
+
+ if (!GetArgs( line+6, "dLluwsdpppp0p",
+ &index, &layer, &options, &rgb, &width, scale, &visible, &p0, &c1, &c2, &p1, &dp ) ) {
+ return;
+ }
+ if (strncmp(line,"BEZIER",6)==0)
+ t = NewTrack( index, T_BEZIER, 0, sizeof *xx );
+ else
+ t = NewTrack( index, T_BZRLIN, 0, sizeof *xx );
+ xx = GetTrkExtraData(t);
+ SetTrkVisible(t, visible);
+ SetTrkScale(t, LookupScale(scale));
+ SetTrkLayer(t, layer );
+ SetTrkWidth(t, (int)(options&0x0F));
+ if ( ( options & 0x80 ) == 0 ) SetTrkBits(t,TB_HIDEDESC);
+ xx->bezierData.pos[0] = p0;
+ xx->bezierData.pos[1] = c1;
+ xx->bezierData.pos[2] = c2;
+ xx->bezierData.pos[3] = p1;
+ xx->bezierData.descriptionOff = dp;
+ xx->bezierData.segsWidth = width;
+ xx->bezierData.segsColor = wDrawFindColor( rgb );
+ ReadSegs();
+ FixUpBezier(xx->bezierData.pos,xx,GetTrkType(t) == T_BEZIER);
+ ComputeBezierBoundingBox(t,xx);
+ if (GetTrkType(t) == T_BEZIER) {
+ SetEndPts(t,2);
+ }
+}
+
+static void MoveBezier( track_p trk, coOrd orig )
+{
+ struct extraData *xx = GetTrkExtraData(trk);
+ UndoModify(trk);
+ for (int i=0;i<4;i++) {
+ xx->bezierData.pos[i].x += orig.x;
+ xx->bezierData.pos[i].y += orig.y;
+ }
+ FixUpBezier(xx->bezierData.pos,xx,IsTrack(trk));
+ ComputeBezierBoundingBox(trk,xx);
+
+}
+
+static void RotateBezier( track_p trk, coOrd orig, ANGLE_T angle )
+{
+ struct extraData *xx = GetTrkExtraData(trk);
+ UndoModify(trk);
+ for (int i=0;i<5;i++) {
+ Rotate( &xx->bezierData.pos[i], orig, angle );
+ }
+ FixUpBezier(xx->bezierData.pos,xx,IsTrack(trk));
+ ComputeBezierBoundingBox(trk,xx);
+
+}
+
+static void RescaleBezier( track_p trk, FLOAT_T ratio )
+{
+ struct extraData *xx = GetTrkExtraData(trk);
+ UndoModify(trk);
+ xx->bezierData.pos[0].x *= ratio;
+ xx->bezierData.pos[0].y *= ratio;
+ xx->bezierData.pos[1].x *= ratio;
+ xx->bezierData.pos[1].y *= ratio;
+ xx->bezierData.pos[2].x *= ratio;
+ xx->bezierData.pos[2].y *= ratio;
+ xx->bezierData.pos[3].x *= ratio;
+ xx->bezierData.pos[3].y *= ratio;
+ FixUpBezier(xx->bezierData.pos,xx,IsTrack(trk));
+ ComputeBezierBoundingBox(trk,xx);
+
+}
+
+EXPORT void AdjustBezierEndPt( track_p trk, EPINX_T inx, coOrd pos ) {
+ struct extraData *xx = GetTrkExtraData(trk);
+ UndoModify(trk);
+ if (inx ==0 ) {
+ xx->bezierData.pos[1].x += -xx->bezierData.pos[0].x+pos.x;
+ xx->bezierData.pos[1].y += -xx->bezierData.pos[0].y+pos.y;
+ xx->bezierData.pos[0] = pos;
+ }
+ else {
+ xx->bezierData.pos[2].x += -xx->bezierData.pos[3].x+pos.x;
+ xx->bezierData.pos[2].y += -xx->bezierData.pos[3].y+pos.y;
+ xx->bezierData.pos[3] = pos;
+ }
+ FixUpBezier(xx->bezierData.pos, xx, IsTrack(trk));
+ ComputeBezierBoundingBox(trk,xx);
+ SetTrkEndPoint( trk, inx, pos, inx==0?xx->bezierData.a0:xx->bezierData.a1);
+}
+
+
+/**
+ * Split the Track at approximately the point pos.
+ */
+static BOOL_T SplitBezier( track_p trk, coOrd pos, EPINX_T ep, track_p *leftover, EPINX_T * ep0, EPINX_T * ep1 )
+{
+ struct extraData *xx = GetTrkExtraData(trk);
+ track_p trk1;
+ double t;
+ BOOL_T track;
+ track = IsTrack(trk);
+
+ coOrd current[4], newl[4], newr[4];
+
+ double dd = DistanceBezier(trk, &pos);
+ if (dd>minLength) return FALSE;
+
+ BezierMathDistance(&pos, xx->bezierData.pos, 500, &t); //Find t value
+
+ for (int i=0;i<4;i++) {
+ current[i] = xx->bezierData.pos[i];
+ }
+
+ BezierSplit(current, newl, newr, t);
+
+ if (track) {
+ trk1 = NewBezierTrack(ep?newr:newl,NULL,0);
+ } else
+ trk1 = NewBezierLine(ep?newr:newl,NULL,0, xx->bezierData.segsColor,xx->bezierData.segsWidth);
+ UndoModify(trk);
+ for (int i=0;i<4;i++) {
+ xx->bezierData.pos[i] = ep?newl[i]:newr[i];
+ }
+ FixUpBezier(xx->bezierData.pos,xx,track);
+ ComputeBezierBoundingBox(trk,xx);
+ SetTrkEndPoint( trk, ep, xx->bezierData.pos[ep?3:0], ep?xx->bezierData.a1:xx->bezierData.a0);
+
+ *leftover = trk1;
+ *ep0 = 1-ep;
+ *ep1 = ep;
+
+ return TRUE;
+}
+
+static int log_traverseBezier = 0;
+static int log_bezierSegments = 0;
+/*
+ * TraverseBezier is used to position a train/car.
+ * We find a new position and angle given a current pos, angle and a distance to travel.
+ *
+ * The output can be TRUE -> we have moved the point to a new point or to the start/end of the next track
+ * FALSE -> we have not found that point because pos was not on/near the track
+ *
+ * If true we supply the remaining distance to go (always positive).
+ * We detect the movement direction by comparing the current angle to the angle of the track at the point.
+ *
+ * Each segment may be processed forwards or in reverse (this really only applies to curved segments).
+ * So for each segment we call traverse1 to get the direction and extra distance to go to get to the current point
+ * and then use that for traverse2 to actually move to the new point
+ *
+ * If we exceed the current point's segment we move on to the next until the end of this track or we have found the spot.
+ *
+ */
+static BOOL_T TraverseBezier( traverseTrack_p trvTrk, DIST_T * distR )
+{
+ track_p trk = trvTrk->trk;
+ struct extraData *xx = GetTrkExtraData(trk);
+ DIST_T dist = *distR;
+ segProcData_t segProcData;
+ BOOL_T segs_backwards= FALSE;
+ DIST_T d = 10000;
+ coOrd pos2 = trvTrk->pos;
+ ANGLE_T a1,a2;
+ int inx,segInx = 0;
+ EPINX_T ep;
+ BOOL_T back,neg;
+ trkSeg_p segPtr = (trkSeg_p)xx->bezierData.arcSegs.ptr;
+
+ a2 = GetAngleSegs( //Find correct Segment and nearest point in it
+ xx->bezierData.arcSegs.cnt,segPtr,
+ &pos2, &segInx, &d , &back, NULL, &neg ); //d = how far pos2 from old pos2 = trvTrk->pos
+
+ if ( d > 10 ) {
+ ErrorMessage( "traverseBezier: Position is not near track: %0.3f", d );
+ return FALSE; //This means the input pos is not on or close to the track.
+ }
+ if (back) a2 = NormalizeAngle(a2+180); //GetAngleSegs has reversed angle for backwards
+ a1 = NormalizeAngle(a2-trvTrk->angle); //Establish if we are going fwds or backwards globally
+ if (a1 <270 && a1>90) { //Must add 180 if the seg is reversed or inverted (but not both)
+ segs_backwards = TRUE;
+ ep = 0;
+ } else {
+ segs_backwards = FALSE;
+ ep = 1;
+ }
+ if ( neg ) {
+ segs_backwards = !segs_backwards; //neg implies all the segs are reversed
+ ep = 1-ep; //other end
+ }
+
+ segProcData.traverse1.pos = pos2; //actual point on curve
+ segProcData.traverse1.angle = trvTrk->angle; //direction car is going for Traverse 1 has to be reversed...
+LOG( log_traverseBezier, 1, ( " TraverseBezier [%0.3f %0.3f] D%0.3f A%0.3f SB%d \n", trvTrk->pos.x, trvTrk->pos.y, dist, trvTrk->angle, segs_backwards ) )
+ inx = segInx;
+ while (inx >=0 && inx<xx->bezierData.arcSegs.cnt) {
+ segPtr = (trkSeg_p)xx->bezierData.arcSegs.ptr+inx; //move in to the identified segment
+ SegProc( SEGPROC_TRAVERSE1, segPtr, &segProcData ); //Backwards or forwards for THIS segment - note that this can differ from segs_backward!!
+ BOOL_T backwards = segProcData.traverse1.backwards; //Are we going to EP0?
+ BOOL_T reverse_seg = segProcData.traverse1.reverse_seg; //is it a backwards segment (we don't actually care as Traverse1 takes care of it)
+
+ dist += segProcData.traverse1.dist;
+ segProcData.traverse2.dist = dist;
+ segProcData.traverse2.segDir = backwards;
+LOG( log_traverseBezier, 2, ( " TraverseBezierT1 D%0.3f B%d RS%d \n", dist, backwards, reverse_seg ) )
+ SegProc( SEGPROC_TRAVERSE2, segPtr, &segProcData ); //Angle at pos2
+ if ( segProcData.traverse2.dist <= 0 ) { //-ve or zero distance left over so stop there
+ *distR = 0;
+ trvTrk->pos = segProcData.traverse2.pos;
+ trvTrk->angle = segProcData.traverse2.angle;
+LOG( log_traverseBezier, 1, ( " -> [%0.3f %0.3f] A%0.3f D%0.3f\n", trvTrk->pos.x, trvTrk->pos.y, trvTrk->angle, *distR ) )
+ return TRUE;
+ } //NOTE Traverse1 and Traverse2 are overlays so get all out before storing
+ dist = segProcData.traverse2.dist; //How far left?
+ coOrd pos = segProcData.traverse2.pos; //Will be at seg end
+ ANGLE_T angle = segProcData.traverse2.angle; //Angle of end
+ segProcData.traverse1.angle = angle; //Reverse to suit Traverse1
+ segProcData.traverse1.pos = pos;
+ inx = segs_backwards?inx-1:inx+1; //Here's where the global segment direction comes in
+LOG( log_traverseBezier, 2, ( " TraverseBezierL D%0.3f A%0.3f\n", dist, angle ) )
+ }
+ *distR = dist; //Tell caller what is left
+ //Must be at one end or another
+ trvTrk->pos = GetTrkEndPos(trk,ep);
+ trvTrk->angle = NormalizeAngle(GetTrkEndAngle(trk, ep)+(segs_backwards?180:0));
+ trvTrk->trk = GetTrkEndTrk(trk,ep); //go to next track
+ if (trvTrk->trk==NULL) {
+ trvTrk->pos = pos2;
+ return TRUE;
+ }
+
+LOG( log_traverseBezier, 1, ( " -> [%0.3f %0.3f] A%0.3f D%0.3f\n", trvTrk->pos.x, trvTrk->pos.y, trvTrk->angle, *distR ) )
+ return TRUE;
+
+}
+
+
+static BOOL_T MergeBezier(
+ track_p trk0,
+ EPINX_T ep0,
+ track_p trk1,
+ EPINX_T ep1 )
+{
+ struct extraData *xx0 = GetTrkExtraData(trk0);
+ struct extraData *xx1 = GetTrkExtraData(trk1);
+ track_p trk2 = NULL;
+ EPINX_T ep2=-1;
+ BOOL_T tracks = FALSE;
+
+ if (IsTrack(trk0) && IsTrack(trk1) ) tracks = TRUE;
+ if (GetTrkType(trk0) != GetTrkType(trk1)) return FALSE;
+
+ if (ep0 == ep1)
+ return FALSE;
+
+ UndoStart( _("Merge Bezier"), "MergeBezier( T%d[%d] T%d[%d] )", GetTrkIndex(trk0), ep0, GetTrkIndex(trk1), ep1 );
+ UndoModify( trk0 );
+ UndrawNewTrack( trk0 );
+ if (tracks) {
+ trk2 = GetTrkEndTrk( trk1, 1-ep1 );
+ if (trk2) {
+ ep2 = GetEndPtConnectedToMe( trk2, trk1 );
+ DisconnectTracks( trk1, 1-ep1, trk2, ep2 );
+ }
+ }
+ if (ep0 == 0) {
+ xx0->bezierData.pos[3] = xx1->bezierData.pos[3];
+ xx0->bezierData.pos[2] = xx1->bezierData.pos[2];
+ } else {
+ xx0->bezierData.pos[0] = xx1->bezierData.pos[0];
+ xx0->bezierData.pos[1] = xx1->bezierData.pos[1];
+ }
+ FixUpBezier(xx0->bezierData.pos,xx0,tracks);
+ ComputeBezierBoundingBox(trk0,xx0);
+ DeleteTrack( trk1, FALSE );
+ if (tracks && trk2) {
+ if (ep0 == 1)
+ SetTrkEndPoint( trk2, 1, xx0->bezierData.pos[0], xx0->bezierData.a0);
+ else
+ SetTrkEndPoint( trk2, 2, xx0->bezierData.pos[3], xx0->bezierData.a1);
+ ConnectTracks( trk0, ep0, trk2, ep2 );
+ }
+ DrawNewTrack( trk0 );
+
+
+ return TRUE;
+}
+
+
+static BOOL_T EnumerateBezier( track_p trk )
+{
+
+ if (trk != NULL) {
+ DIST_T d;
+ struct extraData *xx = GetTrkExtraData(trk);
+ d = xx->bezierData.length;
+ ScaleLengthIncrement( GetTrkScale(trk), d );
+ }
+ return TRUE;
+}
+
+static DIST_T GetLengthBezier( track_p trk )
+{
+ struct extraData *xx = GetTrkExtraData(trk);
+ DIST_T length = 0.0;
+ segProcData_t segProcData;
+ for(int i=0;i<xx->bezierData.arcSegs.cnt;i++) {
+ SegProc(SEGPROC_LENGTH,&(DYNARR_N(trkSeg_t,xx->bezierData.arcSegs,i)), &segProcData);
+ length += segProcData.length.length;
+ }
+ return length;
+}
+
+
+static BOOL_T GetParamsBezier( int inx, track_p trk, coOrd pos, trackParams_t * params )
+{
+ int segInx;
+ BOOL_T back,negative;
+ DIST_T d;
+
+ params->type = curveTypeBezier;
+ struct extraData *xx = GetTrkExtraData(trk);
+ for (int i=0;i<4;i++) params->bezierPoints[i] = xx->bezierData.pos[i];
+ params->len = xx->bezierData.length;
+ params->track_angle = GetAngleSegs( //Find correct Segment and nearest point in it
+ xx->bezierData.arcSegs.cnt,xx->bezierData.arcSegs.ptr,
+ &pos, &segInx, &d , &back, NULL, &negative );
+ if ( negative != back ) params->track_angle = NormalizeAngle(params->track_angle+180); //Bezier is in reverse
+ trkSeg_p segPtr = &DYNARR_N(trkSeg_t,xx->bezierData.arcSegs,segInx);
+ if (segPtr->type == SEG_STRLIN) {
+ params->arcR = 0.0;
+ } else {
+ params->arcR = fabs(segPtr->u.c.radius);
+ params->arcP = segPtr->u.c.center;
+ params->arcA0 = segPtr->u.c.a0;
+ params->arcA1 = segPtr->u.c.a1;
+ }
+ if ( inx == PARAMS_PARALLEL ) {
+ params->ep = 0;
+ } else if (inx == PARAMS_CORNU ){
+ params->ep = PickEndPoint( pos, trk);
+ } else {
+ params->ep = PickUnconnectedEndPointSilent( pos, trk);
+ }
+ if (params->ep>=0)
+ params->angle = GetTrkEndAngle(trk, params->ep);
+ return TRUE;
+
+}
+
+static BOOL_T TrimBezier( track_p trk, EPINX_T ep, DIST_T dist ) {
+ DeleteTrack(trk, TRUE);
+ return TRUE;
+}
+
+
+
+static BOOL_T QueryBezier( track_p trk, int query )
+{
+ struct extraData * xx = GetTrkExtraData(trk);
+ switch ( query ) {
+ case Q_CAN_GROUP:
+ return FALSE;
+ break;
+ case Q_FLIP_ENDPTS:
+ case Q_HAS_DESC:
+ return TRUE;
+ break;
+ case Q_EXCEPTION:
+ return GetTrkType(trk) == T_BEZIER?xx->bezierData.minCurveRadius < (GetLayoutMinTrackRadius()-EPSILON):FALSE;
+ break;
+ case Q_CAN_MODIFY_CONTROL_POINTS:
+ return TRUE;
+ break;
+ case Q_CANNOT_PLACE_TURNOUT:
+ return FALSE;
+ break;
+ case Q_ISTRACK:
+ return GetTrkType(trk) == T_BEZIER?TRUE:FALSE;
+ break;
+ case Q_CAN_PARALLEL:
+ return (GetTrkType(trk) == T_BEZIER);
+ break;
+ case Q_MODIFY_CAN_SPLIT:
+ case Q_CORNU_CAN_MODIFY:
+ return (GetTrkType(trk) == T_BEZIER);
+ default:
+ return FALSE;
+ }
+}
+
+
+static void FlipBezier(
+ track_p trk,
+ coOrd orig,
+ ANGLE_T angle )
+{
+ struct extraData * xx = GetTrkExtraData(trk);
+ FlipPoint( &xx->bezierData.pos[0], orig, angle );
+ FlipPoint( &xx->bezierData.pos[1], orig, angle );
+ FlipPoint( &xx->bezierData.pos[2], orig, angle );
+ FlipPoint( &xx->bezierData.pos[3], orig, angle );
+ FixUpBezier(xx->bezierData.pos,xx,IsTrack(trk));
+ ComputeBezierBoundingBox(trk,xx);
+
+}
+
+static ANGLE_T GetAngleBezier(
+ track_p trk,
+ coOrd pos,
+ EPINX_T * ep0,
+ EPINX_T * ep1 )
+{
+ struct extraData * xx = GetTrkExtraData(trk);
+ ANGLE_T angle;
+ BOOL_T back, neg;
+ int indx;
+ angle = GetAngleSegs( xx->bezierData.arcSegs.cnt, (trkSeg_p)xx->bezierData.arcSegs.ptr, &pos, &indx, NULL, &back, NULL, &neg );
+ if (!back) angle = NormalizeAngle(angle+180); //Make CCW
+ if ( ep0 ) *ep0 = neg?1:0;
+ if ( ep1 ) *ep1 = neg?0:1;
+ return angle;
+}
+
+BOOL_T GetBezierSegmentFromTrack(track_p trk, trkSeg_p seg_p) {
+ struct extraData * xx = GetTrkExtraData(trk);
+
+ seg_p->type = IsTrack(trk)?SEG_BEZTRK:SEG_BEZLIN;
+ for (int i=0;i<4;i++) seg_p->u.b.pos[i] = xx->bezierData.pos[i];
+ seg_p->color = xx->bezierData.segsColor;
+ seg_p->bezSegs.cnt = 0;
+ if (seg_p->bezSegs.ptr) MyFree(seg_p->bezSegs.ptr);
+ seg_p->bezSegs.max = 0;
+ FixUpBezierSeg(seg_p->u.b.pos,seg_p,seg_p->type == SEG_BEZTRK);
+ return TRUE;
+
+}
+
+
+static BOOL_T MakeParallelBezier(
+ track_p trk,
+ coOrd pos,
+ DIST_T sep,
+ track_p * newTrkR,
+ coOrd * p0R,
+ coOrd * p1R )
+{
+ struct extraData * xx = GetTrkExtraData(trk);
+ coOrd np[4], p;
+ ANGLE_T a,a2;
+
+ //Produce bezier that is translated parallel to the existing Bezier
+ // - not a precise result if the bezier end angles are not in the same general direction.
+ // The expectation is that the user will have to adjust it - unless and until we produce
+ // a new algo to adjust the control points to be parallel to the endpoints.
+
+ a = FindAngle(xx->bezierData.pos[0],xx->bezierData.pos[3]);
+ p = pos;
+ DistanceBezier(trk, &p);
+ a2 = NormalizeAngle(FindAngle(pos,p)-a);
+ //find parallel move x and y for points
+ for (int i =0; i<4;i++) {
+ np[i] = xx->bezierData.pos[i];
+ }
+
+ if ( a2 > 180 ) {
+ Translate(&np[0],np[0],a+90,sep);
+ Translate(&np[1],np[1],a+90,sep);
+ Translate(&np[2],np[2],a+90,sep);
+ Translate(&np[3],np[3],a+90,sep);
+ } else {
+ Translate(&np[0],np[0],a-90,sep);
+ Translate(&np[1],np[1],a-90,sep);
+ Translate(&np[2],np[2],a-90,sep);
+ Translate(&np[3],np[3],a-90,sep);
+ }
+
+ if ( newTrkR ) {
+ *newTrkR = NewBezierTrack( np, NULL, 0);
+ } else {
+ DYNARR_SET( trkSeg_t, tempSegs_da, 1 );
+ tempSegs(0).color = wDrawColorBlack;
+ tempSegs(0).width = 0;
+ tempSegs_da.cnt = 1;
+ tempSegs(0).type = SEG_BEZTRK;
+ if (tempSegs(0).bezSegs.ptr) MyFree(tempSegs(0).bezSegs.ptr);
+ tempSegs(0).bezSegs.max = 0;
+ tempSegs(0).bezSegs.cnt = 0;
+ for (int i=0;i<4;i++) tempSegs(0).u.b.pos[i] = np[i];
+ FixUpBezierSeg(tempSegs(0).u.b.pos,&tempSegs(0),TRUE);
+ }
+ if ( p0R ) *p0R = np[0];
+ if ( p1R ) *p1R = np[1];
+ return TRUE;
+}
+
+/*
+ * When an undo is run, the array of segs is missing - they are not saved to the Undo log. So Undo calls this routine to
+ * ensure
+ * - that the Segs are restored and
+ * - other fields reset.
+ */
+BOOL_T RebuildBezier (track_p trk)
+{
+ struct extraData *xx;
+ xx = GetTrkExtraData(trk);
+ xx->bezierData.arcSegs.cnt = 0;
+ FixUpBezier(xx->bezierData.pos,xx,IsTrack(trk));
+ ComputeBezierBoundingBox(trk, xx);
+ return TRUE;
+}
+
+BOOL_T MoveBezierEndPt ( track_p *trk, EPINX_T *ep, coOrd pos, DIST_T d0 ) {
+ track_p trk2;
+ struct extraData *xx;
+ if (SplitTrack(*trk,pos,*ep,&trk2,TRUE)) {
+ if (trk2) DeleteTrack(trk2,TRUE);
+ xx = GetTrkExtraData(*trk);
+ SetTrkEndPoint( *trk, *ep, *ep?xx->bezierData.pos[3]:xx->bezierData.pos[0], *ep?xx->bezierData.a1:xx->bezierData.a0 );
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static trackCmd_t bezlinCmds = {
+ "BZRLIN",
+ DrawBezier,
+ DistanceBezier,
+ DescribeBezier,
+ DeleteBezier,
+ WriteBezier,
+ ReadBezier,
+ MoveBezier,
+ RotateBezier,
+ RescaleBezier,
+ NULL,
+ GetAngleBezier,
+ SplitBezier,
+ NULL,
+ NULL,
+ NULL, /* redraw */
+ NULL, /* trim */
+ MergeBezier,
+ NULL, /* modify */
+ GetLengthBezier,
+ GetParamsBezier,
+ NULL, /* Move EndPt */
+ QueryBezier,
+ NULL, /* ungroup */
+ FlipBezier,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ RebuildBezier
+ };
+
+static trackCmd_t bezierCmds = {
+ "BEZIER",
+ DrawBezier,
+ DistanceBezier,
+ DescribeBezier,
+ DeleteBezier,
+ WriteBezier,
+ ReadBezier,
+ MoveBezier,
+ RotateBezier,
+ RescaleBezier,
+ NULL,
+ GetAngleBezier,
+ SplitBezier,
+ TraverseBezier,
+ EnumerateBezier,
+ NULL, /* redraw */
+ TrimBezier, /* trim */
+ MergeBezier,
+ NULL, /* modify */
+ GetLengthBezier,
+ GetParamsBezier,
+ MoveBezierEndPt, /* Move EndPt */
+ QueryBezier,
+ NULL, /* ungroup */
+ FlipBezier,
+ NULL,
+ NULL,
+ NULL,
+ MakeParallelBezier,
+ NULL,
+ RebuildBezier
+ };
+
+
+EXPORT void BezierSegProc(
+ segProc_e cmd,
+ trkSeg_p segPtr,
+ segProcData_p data )
+{
+ ANGLE_T a1, a2;
+ DIST_T d, dd;
+ coOrd p0,p2 ;
+ segProcData_t segProcData;
+ trkSeg_p subSegsPtr;
+ coOrd temp0,temp1,temp2,temp3;
+ int inx,segInx;
+ BOOL_T back, segs_backwards, neg;
+#define bezSegs(N) DYNARR_N( trkSeg_t, segPtr->bezSegs, N )
+
+ switch (cmd) {
+
+ case SEGPROC_TRAVERSE1: //Work out how much extra dist and what direction
+ if (segPtr->type != SEG_BEZTRK) {
+ data->traverse1.dist = 0;
+ return;
+ }
+ d = data->traverse1.dist;
+ p0 = data->traverse1.pos;
+LOG( log_bezierSegments, 1, ( " BezTr1-Enter P[%0.3f %0.3f] A%0.3f\n", p0.x, p0.y, data->traverse1.angle ))
+ a2 = GetAngleSegs(segPtr->bezSegs.cnt,segPtr->bezSegs.ptr,&p0,&segInx,&d,&back, NULL, &neg); //Find right seg and pos
+ inx = segInx;
+ data->traverse1.BezSegInx = segInx;
+ data->traverse1.reverse_seg = FALSE;
+ data->traverse1.backwards = FALSE;
+ if (d>10) {
+ data->traverse1.dist = 0;
+ return;
+ }
+
+ if (back) a2 = NormalizeAngle(a2+180);
+ a1 = NormalizeAngle(a2-data->traverse1.angle); //Establish if we are going fwds or backwards globally
+ if (a1<270 && a1>90) { //Must add 180 if the seg is reversed or inverted (but not both)
+ segs_backwards = TRUE;
+ } else {
+ segs_backwards = FALSE;
+ }
+ if ( neg ) {
+ segs_backwards = !segs_backwards; //neg implies all the segs are reversed
+ }
+ segProcData.traverse1.pos = data->traverse1.pos = p0; //actual point on curve
+ segProcData.traverse1.angle = data->traverse1.angle; //Angle of car
+ LOG( log_bezierSegments, 1, ( " BezTr1-GSA I%d P[%0.3f %0.3f] N%d SB%d\n", segInx, p0.x, p0.y, neg, segs_backwards ))
+ subSegsPtr = (trkSeg_p)segPtr->bezSegs.ptr+inx;
+ SegProc( SEGPROC_TRAVERSE1, subSegsPtr, &segProcData );
+ data->traverse1.reverse_seg = segProcData.traverse1.reverse_seg; //which way is curve (info)
+ data->traverse1.backwards = segProcData.traverse1.backwards; //Pass through Train direction
+ data->traverse1.dist = segProcData.traverse1.dist; //Get last seg partial dist
+ data->traverse1.segs_backwards = segs_backwards; //Get last
+ data->traverse1.negative = segProcData.traverse1.negative; //Is curve flipped (info)
+ data->traverse1.BezSegInx = inx; //Copy up Index
+LOG( log_bezierSegments, 1, ( " BezTr1-Exit -> A%0.3f B%d R%d N%d D%0.3f\n", a2, segProcData.traverse1.backwards, segProcData.traverse1.reverse_seg, segProcData.traverse1.negative, segProcData.traverse1.dist ))
+ break;
+
+ case SEGPROC_TRAVERSE2:
+ if (segPtr->type != SEG_BEZTRK) return; //Not SEG_BEZLIN
+LOG( log_bezierSegments, 1, ( " BezTr2-Enter D%0.3f SD%d SI%d SB%d\n", data->traverse2.dist, data->traverse2.segDir, data->traverse2.BezSegInx, data->traverse2.segs_backwards))
+ if (data->traverse2.dist <= segPtr->u.b.length) {
+
+ segProcData.traverse2.pos = data->traverse2.pos;
+ DIST_T dist = data->traverse2.dist;
+ segProcData.traverse2.dist = data->traverse2.dist;
+ segProcData.traverse2.angle = data->traverse2.angle;
+ segProcData.traverse2.segDir = data->traverse2.segDir;
+ segs_backwards = data->traverse2.segs_backwards;
+ BOOL_T backwards = data->traverse2.segDir;
+ inx = data->traverse2.BezSegInx; //Special from Traverse1
+ while (inx>=0 && inx<segPtr->bezSegs.cnt) {
+ subSegsPtr = (trkSeg_p)segPtr->bezSegs.ptr+inx;
+ SegProc(SEGPROC_TRAVERSE2, subSegsPtr, &segProcData);
+ if (segProcData.traverse2.dist<=0) { //Done
+ data->traverse2.angle = segProcData.traverse2.angle;
+ data->traverse2.dist = 0;
+ data->traverse2.pos = segProcData.traverse2.pos;
+LOG( log_bezierSegments, 1, ( " BezTr2-Exit1 -> A%0.3f P[%0.3f %0.3f] \n", data->traverse2.angle, data->traverse2.pos.x, data->traverse2.pos.y ))
+ return;
+ } else dist = segProcData.traverse2.dist;
+ p2 = segProcData.traverse2.pos;
+ a2 = segProcData.traverse2.angle;
+LOG( log_bezierSegments, 2, ( " BezTr2-Tr2 D%0.3f P[%0.3f %0.3f] A%0.3f\n", dist, p2.x, p2.y, a2 ))
+
+ segProcData.traverse1.pos = p2;
+ segProcData.traverse1.angle = a2;
+ inx = segs_backwards?inx-1:inx+1;
+ if (inx<0 || inx>=segPtr->bezSegs.cnt) break;
+ subSegsPtr = (trkSeg_p)segPtr->bezSegs.ptr+inx;
+ SegProc(SEGPROC_TRAVERSE1, subSegsPtr, &segProcData);
+ BOOL_T reverse_seg = segProcData.traverse1.reverse_seg; //For Info only
+ backwards = segProcData.traverse1.backwards;
+ dist += segProcData.traverse1.dist; //Add extra if needed - this is if we have to go from the other end of this seg
+ segProcData.traverse2.dist = dist; //distance left
+ segProcData.traverse2.segDir = backwards; //which way
+ segProcData.traverse2.pos = p2;
+ segProcData.traverse2.angle = a2;
+LOG( log_bezierSegments, 2, ( " BezTr2-Loop A%0.3f P[%0.3f %0.3f] D%0.3f SI%d B%d RS%d\n", a2, p2.x, p2.y, dist, inx, backwards, reverse_seg ))
+ }
+ data->traverse2.dist = dist;
+ } else data->traverse2.dist -= segPtr->u.b.length; //we got here because the desired point is not inside the segment
+ if (segs_backwards) {
+ data->traverse2.pos = segPtr->u.b.pos[0]; // Backwards so point 0
+ data->traverse2.angle = segPtr->u.b.angle0;
+ } else {
+ data->traverse2.pos = segPtr->u.b.pos[3]; // Forwards so point 3
+ data->traverse2.angle = segPtr->u.b.angle3;
+ }
+LOG( log_bezierSegments, 1, ( " BezTr-Exit2 --> SI%d A%0.3f P[%0.3f %0.3f] D%0.3f\n", inx, data->traverse2.angle, data->traverse2.pos.x, data->traverse2.pos.y, data->traverse2.dist))
+ break;
+
+ case SEGPROC_DRAWROADBEDSIDE:
+ //TODO - needs parallel bezier problem solved...
+ break;
+
+ case SEGPROC_DISTANCE:
+
+ dd = 100000.00; //Just find one distance
+ p0 = data->distance.pos1;
+
+ //initialize p2
+ p2 = segPtr->u.b.pos[0];
+ for(int i=0;i<segPtr->bezSegs.cnt;i++) {
+ segProcData.distance.pos1 = p0;
+ SegProc(SEGPROC_DISTANCE,&(DYNARR_N(trkSeg_t,segPtr->bezSegs,i)),&segProcData);
+ d = segProcData.distance.dd;
+ if (d<dd) {
+ dd = d;
+ p2 = segProcData.distance.pos1;
+ }
+ }
+ data->distance.dd = dd;
+ data->distance.pos1 = p2;
+ break;
+
+ case SEGPROC_FLIP:
+
+ temp0 = segPtr->u.b.pos[0];
+ temp1 = segPtr->u.b.pos[1];
+ temp2 = segPtr->u.b.pos[2];
+ temp3 = segPtr->u.b.pos[3];
+ segPtr->u.b.pos[0] = temp3;
+ segPtr->u.b.pos[1] = temp2;
+ segPtr->u.b.pos[2] = temp1;
+ segPtr->u.b.pos[3] = temp0;
+ FixUpBezierSeg(segPtr->u.b.pos,segPtr,segPtr->type == SEG_BEZTRK);
+ break;
+
+ case SEGPROC_NEWTRACK:
+ data->newTrack.trk = NewBezierTrack( segPtr->u.b.pos, (trkSeg_t *)segPtr->bezSegs.ptr, segPtr->bezSegs.cnt);
+ data->newTrack.ep[0] = 0;
+ data->newTrack.ep[1] = 1;
+ break;
+
+ case SEGPROC_LENGTH:
+ data->length.length = 0;
+ for(int i=0;i<segPtr->bezSegs.cnt;i++) {
+ SegProc(cmd,&(DYNARR_N(trkSeg_t,segPtr->bezSegs,i)),&segProcData);
+ data->length.length += segProcData.length.length;
+ }
+ break;
+
+ case SEGPROC_SPLIT:
+ //TODO Split
+ break;
+
+ case SEGPROC_GETANGLE:
+ inx = 0;
+ back = FALSE;
+ subSegsPtr = (trkSeg_p) segPtr->bezSegs.ptr;
+ coOrd pos = data->getAngle.pos;
+LOG( log_bezierSegments, 1, ( " BezGA-In P[%0.3f %0.3f] \n", pos.x, pos.y))
+ data->getAngle.angle = GetAngleSegs(segPtr->bezSegs.cnt,subSegsPtr, &pos, &inx, NULL, &back, NULL, NULL);
+ //Recurse for Bezier sub-segs (only straights and curves)
+
+ data->getAngle.negative_radius = FALSE;
+ data->getAngle.backwards = back;
+ data->getAngle.pos = pos;
+ data->getAngle.bezSegInx = inx;
+ subSegsPtr +=inx;
+ if (subSegsPtr->type == SEG_CRVTRK || subSegsPtr->type == SEG_CRVLIN ) {
+ data->getAngle.radius = fabs(subSegsPtr->u.c.radius);
+ if (subSegsPtr->u.c.radius<0 ) data->getAngle.negative_radius = TRUE;
+ data->getAngle.center = subSegsPtr->u.c.center;
+ }
+ else data->getAngle.radius = 0.0;
+LOG( log_bezierSegments, 1, ( " BezGA-Out SI%d A%0.3f P[%0.3f %0.3f] B%d\n", inx, data->getAngle.angle, pos.x, pos.y, back))
+ break;
+
+ }
+
+}
+
+
+/****************************************
+ *
+ * GRAPHICS COMMANDS
+ *
+ */
+
+
+track_p NewBezierTrack(coOrd pos[4], trkSeg_t * tempsegs, int count)
+{
+ struct extraData *xx;
+ track_p p;
+ p = NewTrack( 0, T_BEZIER, 2, sizeof *xx );
+ xx = GetTrkExtraData(p);
+ xx->bezierData.pos[0] = pos[0];
+ xx->bezierData.pos[1] = pos[1];
+ xx->bezierData.pos[2] = pos[2];
+ xx->bezierData.pos[3] = pos[3];
+ xx->bezierData.segsColor = wDrawColorBlack;
+ xx->bezierData.segsWidth = 0;
+ FixUpBezier(pos, xx, TRUE);
+LOG( log_bezier, 1, ( "NewBezierTrack( EP1 %0.3f, %0.3f, CP1 %0.3f, %0.3f, CP2 %0.3f, %0.3f, EP2 %0.3f, %0.3f ) = %d\n", pos[0].x, pos[0].y, pos[1].x, pos[1].y, pos[2].x, pos[2].y, pos[3].x, pos[3].y, GetTrkIndex(p) ) )
+ ComputeBezierBoundingBox( p, xx );
+ SetTrkEndPoint( p, 0, pos[0], xx->bezierData.a0);
+ SetTrkEndPoint( p, 1, pos[3], xx->bezierData.a1);
+ CheckTrackLength( p );
+ SetTrkBits( p, TB_HIDEDESC );
+ return p;
+}
+
+EXPORT track_p NewBezierLine( coOrd pos[4], trkSeg_t * tempsegs, int count, wDrawColor color, DIST_T width )
+{
+ struct extraData *xx;
+ track_p p;
+ p = NewTrack( 0, T_BZRLIN, 2, sizeof *xx );
+ xx = GetTrkExtraData(p);
+ xx->bezierData.pos[0] = pos[0];
+ xx->bezierData.pos[1] = pos[1];
+ xx->bezierData.pos[2] = pos[2];
+ xx->bezierData.pos[3] = pos[3];
+ xx->bezierData.segsColor = color;
+ xx->bezierData.segsWidth = width;
+ FixUpBezier(pos, xx, FALSE);
+LOG( log_bezier, 1, ( "NewBezierLine( EP1 %0.3f, %0.3f, CP1 %0.3f, %0.3f, CP2 %0.3f, %0.3f, EP2 %0.3f, %0.3f) = %d\n", pos[0].x, pos[0].y, pos[1].x, pos[1].y, pos[2].x, pos[2].y, pos[3].x, pos[3].y, GetTrkIndex(p) ) )
+ ComputeBezierBoundingBox( p, xx );
+ return p;
+}
+
+
+
+EXPORT void InitTrkBezier( void )
+{
+ T_BEZIER = InitObject( &bezierCmds );
+ T_BZRLIN = InitObject( &bezlinCmds );
+ log_bezier = LogFindIndex( "Bezier" );
+ log_traverseBezier = LogFindIndex( "traverseBezier" );
+ log_bezierSegments = LogFindIndex( "traverseBezierSegs");
+}
+
+/********************************************************************************
+ *
+ * Bezier Functions
+ *
+ ********************************************************************************/
+
+
+/**
+ * Return point on Bezier using "t" (from 0 to 1)
+ */
+extern coOrd BezierPointByParameter(coOrd p[4], double t)
+{
+
+ double a,b,c,d;
+ double mt = 1-t;
+ double mt2 = mt*mt;
+ double t2 = t*t;
+
+ a = mt2*mt;
+ b = mt2*t*3;
+ c = mt*t2*3;
+ d = t*t2;
+
+ coOrd o;
+ o.x = a*p[0].x+b*p[1].x+c*p[2].x+d*p[3].x;
+ o.y = a*p[0].y+b*p[1].y+c*p[2].y+d*p[3].y;
+
+ return o;
+
+}
+/**
+ * Find distance from point to Bezier. Return also the "t" value of that closest point.
+ */
+extern DIST_T BezierMathDistance( coOrd * pos, coOrd p[4], int segments, double * t_value)
+{
+ DIST_T dd = 10000.0;
+ double t = 0.0;
+ coOrd pt;
+ coOrd save_pt = p[0];
+ for (int i=0; i<=segments; i++) {
+ pt = BezierPointByParameter(p, (double)i/segments);
+ if (FindDistance(*pos,pt) < dd) {
+ dd = FindDistance(*pos,pt);
+ t = (double)i/segments;
+ save_pt = pt;
+ }
+ }
+ if (t_value) *t_value = t;
+ * pos = save_pt;
+ return dd;
+}
+
+extern coOrd BezierMathFindNearestPoint(coOrd *pos, coOrd p[4], int segments) {
+ double t = 0.0;
+ BezierMathDistance(pos, p, segments, &t);
+ return BezierPointByParameter(p, t);
+}
+
+void BezierSlice(coOrd input[], coOrd output[], double t) {
+ coOrd p1,p12,p2,p23,p3,p34,p4;
+ coOrd p123, p234, p1234;
+
+ p1 = input[0];
+ p2 = input[1];
+ p3 = input[2];
+ p4 = input[3];
+
+ p12.x = (p2.x-p1.x)*t+p1.x;
+ p12.y = (p2.y-p1.y)*t+p1.y;
+
+ p23.x = (p3.x-p2.x)*t+p2.x;
+ p23.y = (p3.y-p2.y)*t+p2.y;
+
+ p34.x = (p4.x-p3.x)*t+p3.x;
+ p34.y = (p4.y-p3.y)*t+p3.y;
+
+ p123.x = (p23.x-p12.x)*t+p12.x;
+ p123.y = (p23.y-p12.y)*t+p12.y;
+
+ p234.x = (p34.x-p23.x)*t+p23.x;
+ p234.y = (p34.y-p23.y)*t+p23.y;
+
+ p1234.x = (p234.x-p123.x)*t+p123.x;
+ p1234.y = (p234.y-p123.y)*t+p123.y;
+
+ output[0]= p1;
+ output[1] = p12;
+ output[2] = p123;
+ output[3] = p1234;
+
+};
+
+/**
+ * Split bezier into two parts
+ */
+extern void BezierSplit(coOrd input[], coOrd left[], coOrd right[] , double t) {
+
+ BezierSlice(input,left,t);
+
+ coOrd back[4],backright[4];
+
+ for (int i = 0;i<4;i++) {
+ back[i] = input[3-i];
+ }
+ BezierSlice(back,backright,1-t);
+ for (int i = 0;i<4;i++) {
+ right[i] = backright[3-i];
+ }
+
+}
+
+
+/**
+ * If close enough (length of control polygon exceeds chord by < error) add length of polygon.
+ * Else split and recurse
+ */
+double BezierAddLengthIfClose(coOrd start[4], double error) {
+ coOrd left[4], right[4]; /* bez poly splits */
+ double len = 0.0; /* arc length */
+ double chord; /* chord length */
+ int index; /* misc counter */
+
+ for (index = 0; index <= 2; index++)
+ len = len + FindDistance(start[index],start[index+1]); //add up control polygon
+
+ chord = FindDistance(start[0],start[3]); //find chord length
+
+ if((len-chord) > error) { // If error too large -
+ BezierSplit(start,left,right,0.5); /* split in two */
+ len = BezierAddLengthIfClose(left, error); /* recurse left side */
+ len += BezierAddLengthIfClose(right, error); /* recurse right side */
+ }
+ return len; // Add length of this curve
+
+}
+
+/**
+ * Use recursive splitting to get close approximation ot length of bezier
+ *
+ */
+extern double BezierMathLength(coOrd p[4], double error)
+{
+ if (error == 0.0) error = 0.01;
+ return BezierAddLengthIfClose(p, error); /* kick off recursion */
+
+}
+
+coOrd BezierFirstDerivative(coOrd p[4], double t)
+{
+ //checkParameterT(t);
+
+ double tSquared = t * t;
+ double s0 = -3 + 6 * t - 3 * tSquared;
+ double s1 = 3 - 12 * t + 9 * tSquared;
+ double s2 = 6 * t - 9 * tSquared;
+ double s3 = 3 * tSquared;
+ double resultX = p[0].x * s0 + p[1].x * s1 + p[2].x * s2 + p[3].x * s3;
+ double resultY = p[0].y * s0 + p[1].y * s1 + p[2].y * s2 + p[3].y * s3;
+
+ coOrd v;
+
+ v.x = resultX;
+ v.y = resultY;
+ return v;
+}
+
+/**
+ * Gets 2nd derivate wrt t of a Bezier curve at a point
+
+ */
+coOrd BezierSecondDerivative(coOrd p[4], double t)
+{
+ //checkParameterT(t);
+
+ double s0 = 6 - 6 * t;
+ double s1 = -12 + 18 * t;
+ double s2 = 6 - 18 * t;
+ double s3 = 6 * t;
+ double resultX = p[0].x * s0 + p[1].x * s1 + p[2].x * s2 + p[3].x * s3;
+ double resultY = p[0].y * s0 + p[1].y * s1 + p[2].y * s2 + p[3].y * s3;
+
+ coOrd v;
+ v.x = resultX;
+ v.y = resultY;
+ return v;
+}
+
+/**
+ * Get curvature of a Bezier at a point
+*/
+extern double BezierCurvature(coOrd p[4], double t, coOrd * center)
+{
+ //checkParameterT(t);
+
+ coOrd d1 = BezierFirstDerivative(p, t);
+ coOrd d2 = BezierSecondDerivative(p, t);
+
+ if (center) {
+ double curvnorm = (d1.x * d1.x + d1.y* d1.y)/(d1.x * d2.y - d2.x * d1.y);
+ coOrd p = BezierPointByParameter(&p, t);
+ center->x = p.x-d1.y*curvnorm;
+ center->y = p.y+d1.x*curvnorm;
+ }
+
+ double r1 = sqrt(pow(d1.x * d1.x + d1.y* d1.y, 3.0));
+ double r2 = fabs(d1.x * d2.y - d2.x * d1.y);
+ return r2 / r1;
+}
+
+/**
+ * Get Maximum Curvature
+ */
+extern double BezierMaxCurve(coOrd p[4]) {
+ double max = 0;
+ for (int t = 0;t<100;t++) {
+ double curv = BezierCurvature(p, t/100, NULL);
+ if (max<curv) max = curv;
+ }
+ return max;
+}
+
+/**
+ * Get Minimum Radius
+ */
+extern double BezierMathMinRadius(coOrd p[4]) {
+ double curv = BezierMaxCurve(p);
+ if (curv >= 1000.0 || curv <= 0.001 ) return 0.0;
+ return 1/curv;
+}
+
diff --git a/app/bin/tbezier.h b/app/bin/tbezier.h
new file mode 100644
index 0000000..1e8b915
--- /dev/null
+++ b/app/bin/tbezier.h
@@ -0,0 +1,57 @@
+/*
+ * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/tbezier.h,v 1.1 2005-12-07 15:47:36 rc-flyer Exp $
+ */
+
+/* XTrkCad - Model Railroad CAD
+ * Copyright (C) 2005 Dave Bullis
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include "common.h"
+#include "track.h"
+
+typedef struct {
+ coOrd pos[4];
+ DIST_T minCurveRadius;
+ ANGLE_T a0, a1;
+ DIST_T length;
+ dynArr_t arcSegs;
+ coOrd descriptionOff;
+ DIST_T segsWidth;
+ wDrawColor segsColor;
+ } BezierData_t;
+
+
+void BezierSplit(coOrd[4], coOrd[4], coOrd[4] , double );
+coOrd BezierPointByParameter(coOrd[4], double);
+double BezierMathLength(coOrd[4], double);
+coOrd BezierFirstDerivative(coOrd p[4], double);
+coOrd BezierSecondDerivative(coOrd p[4], double);
+double BezierCurvature(coOrd[4], double , coOrd *);
+double BezierMaxCurve(coOrd[4]);
+double BezierMathMinRadius(coOrd[4]);
+coOrd BezierMathFindNearestPoint(coOrd *, coOrd[4] , int );
+track_p NewBezierTrack(coOrd[4], trkSeg_t * , int );
+track_p NewBezierLine(coOrd[4], trkSeg_t * , int, wDrawColor, DIST_T);
+DIST_T BezierMathDistance( coOrd *, coOrd[4], int , double * );
+void FixUpBezier(coOrd[4], struct extraData*, BOOL_T);
+void FixUpBezierSeg(coOrd[4], trkSeg_p , BOOL_T);
+void FixUpBezierSegs(trkSeg_p p,int segCnt);
+BOOL_T GetBezierSegmentFromTrack(track_p, trkSeg_p);
+
+DIST_T BezierDescriptionDistance(coOrd pos,track_p trk );
+STATUS_T BezierDescriptionMove(track_p trk,wAction_t action,coOrd pos );
+
diff --git a/app/bin/tcornu.c b/app/bin/tcornu.c
new file mode 100644
index 0000000..9d9587a
--- /dev/null
+++ b/app/bin/tcornu.c
@@ -0,0 +1,1321 @@
+/** \file tcornu.c
+ *
+ * CORNU SPIRAL TRACK
+ *
+ * A Cornu is a spiral arc defined by a polynomial that has the property
+ * that curvature varies linearly with distance along the curve. It is a family
+ * of curves that include Euler spirals.
+ *
+ * In order to be useful in XtrkCAD it is defined as a set of Bezier curves each of
+ * which is defined as a set of circular arcs and lines.
+ *
+ * The derivation of the Beziers is done by the Cornu library which must be recalled
+ * whenever a change is made in the end conditions.
+ *
+ * A cornu has a minimum radius and a maximum rate of change of radius.
+ *
+ * Acknowledgment is given to Dr. Raph Levien whose seminal PhD work on Cornu curves and
+ * generous open-sourcing of his libraries both inspired and powers this function.
+ *
+ *
+ * XTrkCad - Model Railroad CAD
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+
+#include "track.h"
+#include "draw.h"
+#include "cbezier.h"
+#include "tbezier.h"
+#include "tcornu.h"
+#include "ccornu.h"
+#include "ccurve.h"
+#include "cstraigh.h"
+#include "cjoin.h"
+#include "utility.h"
+#include "common.h"
+#include "i18n.h"
+#include "param.h"
+#include "math.h"
+#include "string.h"
+#include "cundo.h"
+#include "layout.h"
+#include "fileio.h"
+#include "assert.h"
+
+EXPORT TRKTYP_T T_CORNU = -1;
+
+struct extraData {
+ cornuData_t cornuData;
+ };
+
+static int log_cornu = 0;
+
+static DIST_T GetLengthCornu( track_p );
+
+/****************************************
+ *
+ * UTILITIES
+ *
+ */
+
+/*
+ * Run after any changes to the Cornu points
+ */
+void SetUpCornuParmFromTracks(track_p trk[2],cornuParm_t * cp, struct extraData* xx) {
+ if (!trk[0]) {
+ cp->center[0] = xx->cornuData.c[0];
+ cp->angle[0] = xx->cornuData.a[0];
+ cp->radius[0] = xx->cornuData.r[0];
+ }
+ if (!trk[1]) {
+ cp->center[1] = xx->cornuData.c[1];
+ cp->angle[1] = xx->cornuData.a[1];
+ cp->radius[1] = xx->cornuData.r[1];
+ }
+}
+
+EXPORT BOOL_T FixUpCornu(coOrd pos[2], track_p trk[2], EPINX_T ep[2], struct extraData* xx) {
+
+ cornuParm_t cp;
+
+ SetUpCornuParmFromTracks(trk,&cp,xx);
+
+ if (!CallCornu(pos, trk, ep, &xx->cornuData.arcSegs, &cp)) return FALSE;
+
+ xx->cornuData.r[0] = cp.radius[0];
+ if (cp.radius[0]==0) {
+ xx->cornuData.a[0] = cp.angle[0];
+ } else {
+ xx->cornuData.c[0] = cp.center[0];
+ }
+ xx->cornuData.r[1] = cp.radius[1];
+ if (cp.radius[1]==0) {
+ xx->cornuData.a[1] = cp.angle[1];
+ } else {
+ xx->cornuData.c[1] = cp.center[1];
+ }
+
+ xx->cornuData.minCurveRadius = CornuMinRadius(pos,xx->cornuData.arcSegs);
+ xx->cornuData.windingAngle = CornuTotalWindingArc(pos,xx->cornuData.arcSegs);
+ DIST_T last_c;
+ if (xx->cornuData.r[0] == 0) last_c = 0;
+ else last_c = 1/xx->cornuData.r[0];
+ xx->cornuData.maxRateofChange = CornuMaxRateofChangeofCurvature(pos,xx->cornuData.arcSegs,&last_c);
+ xx->cornuData.length = CornuLength(pos, xx->cornuData.arcSegs);
+ return TRUE;
+}
+
+EXPORT BOOL_T FixUpCornu0(coOrd pos[2],coOrd center[2],ANGLE_T angle[2],DIST_T radius[2],struct extraData* xx) {
+ DIST_T last_c;
+ if (!CallCornu0(pos, center, angle, radius,&xx->cornuData.arcSegs,FALSE)) return FALSE;
+ xx->cornuData.minCurveRadius = CornuMinRadius(pos,
+ xx->cornuData.arcSegs);
+ if (xx->cornuData.r[0] == 0) last_c = 0;
+ else last_c = 1/xx->cornuData.r[0];
+ xx->cornuData.maxRateofChange = CornuMaxRateofChangeofCurvature(pos,xx->cornuData.arcSegs,&last_c);
+ xx->cornuData.length = CornuLength(pos, xx->cornuData.arcSegs);
+ xx->cornuData.windingAngle = CornuTotalWindingArc(pos,xx->cornuData.arcSegs);
+ return TRUE;
+}
+
+EXPORT char * CreateSegPathList(track_p trk) {
+ char * cp = "\0\0";
+ if (GetTrkType(trk) != T_CORNU) return cp;
+ struct extraData *xx = GetTrkExtraData(trk);
+ if (xx->cornuData.cornuPath) free(xx->cornuData.cornuPath);
+ xx->cornuData.cornuPath = malloc(xx->cornuData.arcSegs.cnt+2);
+ int j= 0;
+ for (int i = 0;i<xx->cornuData.arcSegs.cnt;i++,j++) {
+ xx->cornuData.cornuPath[j] = i+1;
+ }
+ xx->cornuData.cornuPath[j] = cp[0];
+ xx->cornuData.cornuPath[j+1] = cp[0];
+ return xx->cornuData.cornuPath;
+}
+
+
+static void GetCornuAngles( ANGLE_T *a0, ANGLE_T *a1, track_p trk )
+{
+ assert( trk != NULL );
+
+ *a0 = NormalizeAngle( GetTrkEndAngle(trk,0) );
+ *a1 = NormalizeAngle( GetTrkEndAngle(trk,1) );
+
+ LOG( log_cornu, 4, ( "getCornuAngles: = %0.3f %0.3f\n", *a0, *a1 ) )
+}
+
+
+static void ComputeCornuBoundingBox( track_p trk, struct extraData * xx )
+{
+ coOrd orig, size;
+
+ GetSegBounds(zero,0,xx->cornuData.arcSegs.cnt,xx->cornuData.arcSegs.ptr, &orig, &size);
+
+ coOrd hi, lo;
+
+ lo.x = orig.x;
+ lo.y = orig.y;
+ hi.x = orig.x+size.x;
+ hi.y = orig.y+size.y;
+
+ SetBoundingBox( trk, hi, lo );
+}
+
+
+DIST_T CornuDescriptionDistance(
+ coOrd pos,
+ track_p trk )
+{
+ struct extraData *xx = GetTrkExtraData(trk);
+ coOrd p1;
+
+ if ( GetTrkType( trk ) != T_CORNU || ( GetTrkBits( trk ) & TB_HIDEDESC ) != 0 )
+ return 100000;
+
+ p1.x = xx->cornuData.pos[0].x + ((xx->cornuData.pos[1].x-xx->cornuData.pos[0].x)/2) + xx->cornuData.descriptionOff.x;
+ p1.y = xx->cornuData.pos[0].y + ((xx->cornuData.pos[1].y-xx->cornuData.pos[0].y)/2) + xx->cornuData.descriptionOff.y;
+
+ return FindDistance( p1, pos );
+}
+
+
+static void DrawCornuDescription(
+ track_p trk,
+ drawCmd_p d,
+ wDrawColor color )
+{
+ struct extraData *xx = GetTrkExtraData(trk);
+ wFont_p fp;
+ coOrd pos;
+
+ if (layoutLabels == 0)
+ return;
+ if ((labelEnable&LABELENABLE_TRKDESC)==0)
+ return;
+ pos.x = xx->cornuData.pos[0].x + ((xx->cornuData.pos[1].x - xx->cornuData.pos[0].x)/2);
+ pos.y = xx->cornuData.pos[0].y + ((xx->cornuData.pos[1].y - xx->cornuData.pos[0].y)/2);
+ pos.x += xx->cornuData.descriptionOff.x;
+ pos.y += xx->cornuData.descriptionOff.y;
+ fp = wStandardFont( F_TIMES, FALSE, FALSE );
+ sprintf( message, _("Cornu Curve: length=%0.3f min radius=%0.3f"),
+ xx->cornuData.length, xx->cornuData.minCurveRadius);
+ DrawBoxedString( BOX_BOX, d, pos, message, fp, (wFontSize_t)descriptionFontSize, color, 0.0 );
+}
+
+
+STATUS_T CornuDescriptionMove(
+ track_p trk,
+ wAction_t action,
+ coOrd pos )
+{
+ struct extraData *xx = GetTrkExtraData(trk);
+ static coOrd p0,p1;
+ static BOOL_T editState;
+ wDrawColor color;
+
+ if (GetTrkType(trk) != T_CORNU) return C_TERMINATE;
+
+ p0.x = xx->cornuData.pos[0].x + ((xx->cornuData.pos[1].x - xx->cornuData.pos[0].x)/2);
+ p0.y = xx->cornuData.pos[0].y + ((xx->cornuData.pos[1].y - xx->cornuData.pos[0].y)/2);
+
+ switch (action) {
+ case C_DOWN:
+ case C_MOVE:
+ case C_UP:
+ editState = TRUE;
+ p1 = pos;
+ color = GetTrkColor( trk, &mainD );
+ xx->cornuData.descriptionOff.x = pos.x - p0.x;
+ xx->cornuData.descriptionOff.y = pos.y - p0.y;
+ DrawCornuDescription( trk, &mainD, color );
+ if (action == C_UP) {
+ editState = FALSE;
+ }
+ MainRedraw();
+ MapRedraw();
+ return action==C_UP?C_TERMINATE:C_CONTINUE;
+
+ case C_REDRAW:
+ if (editState)
+ DrawLine( &mainD, p1, p0, 0, wDrawColorBlack );
+ break;
+
+ }
+ return C_CONTINUE;
+}
+
+/****************************************
+ *
+ * GENERIC FUNCTIONS
+ *
+ */
+
+static struct {
+ coOrd pos[2];
+ ANGLE_T angle[2];
+ DIST_T radius[2];
+ coOrd center[2];
+ FLOAT_T elev[2];
+ FLOAT_T length;
+ FLOAT_T grade;
+ DIST_T minRadius;
+ DIST_T maxRateOfChange;
+ ANGLE_T windingAngle;
+ unsigned int layerNumber;
+ dynArr_t segs;
+ long width;
+ wDrawColor color;
+ } cornData;
+
+typedef enum { P0, A0, R0, C0, Z0, P1, A1, R1, C1, Z1, RA, RR, WA, LN, GR, LY } cornuDesc_e;
+static descData_t cornuDesc[] = {
+/*P0*/ { DESC_POS, N_("End Pt 1: X,Y"), &cornData.pos[0] },
+/*A0*/ { DESC_ANGLE, N_("End Angle"), &cornData.angle[0] },
+/*R0*/ { DESC_DIM, N_("Radius "), &cornData.radius[0] },
+/*C0*/ { DESC_POS, N_("Center X,Y"), &cornData.center[0] },
+/*Z0*/ { DESC_DIM, N_("Z1"), &cornData.elev[0] },
+/*P1*/ { DESC_POS, N_("End Pt 2: X,Y"), &cornData.pos[1] },
+/*A1*/ { DESC_ANGLE, N_("End Angle"), &cornData.angle[1] },
+/*R1*/ { DESC_DIM, N_("Radius"), &cornData.radius[1] },
+/*C1*/ { DESC_POS, N_("Center X,Y"), &cornData.center[1] },
+/*Z1*/ { DESC_DIM, N_("Z2"), &cornData.elev[1] },
+/*RA*/ { DESC_DIM, N_("Minimum Radius"), &cornData.minRadius },
+/*RR*/ { DESC_DIM, N_("Maximum Rate Of Change Of Curvature"), &cornData.maxRateOfChange },
+/*WA*/ { DESC_ANGLE, N_("Total Winding Angle"), &cornData.windingAngle },
+/*LN*/ { DESC_DIM, N_("Length"), &cornData.length },
+/*GR*/ { DESC_FLOAT, N_("Grade"), &cornData.grade },
+/*LY*/ { DESC_LAYER, N_("Layer"), &cornData.layerNumber },
+ { DESC_NULL } };
+
+
+static void UpdateCornu( track_p trk, int inx, descData_p descUpd, BOOL_T final )
+{
+ struct extraData *xx = GetTrkExtraData(trk);
+ BOOL_T updateEndPts;
+ EPINX_T ep;
+
+ cornuParm_t cp;
+
+
+ if ( inx == -1 )
+ return;
+ updateEndPts = FALSE;
+ switch ( inx ) {
+ case P0:
+ if (GetTrkEndTrk(trk,0)) break;
+ updateEndPts = TRUE;
+ xx->cornuData.pos[0] = cornData.pos[0];
+ cornuDesc[P0].mode |= DESC_CHANGE;
+ /* no break */
+ case P1:
+ if (GetTrkEndTrk(trk,1)) break;
+ updateEndPts = TRUE;
+ xx->cornuData.pos[1]= cornData.pos[1];
+ cornuDesc[P1].mode |= DESC_CHANGE;
+ break;
+ case A0:
+ if (GetTrkEndTrk(trk,0)) break;
+ updateEndPts = TRUE;
+ xx->cornuData.a[0] = cornData.angle[0];
+ cornuDesc[A0].mode |= DESC_CHANGE;
+ break;
+ case A1:
+ if (GetTrkEndTrk(trk,1)) break;
+ updateEndPts = TRUE;
+ xx->cornuData.a[1]= cornData.angle[1];
+ cornuDesc[A1].mode |= DESC_CHANGE;
+ break;
+ case C0:
+ if (GetTrkEndTrk(trk,0)) break;
+ updateEndPts = TRUE;
+ xx->cornuData.c[0] = cornData.center[0];
+ cornuDesc[C0].mode |= DESC_CHANGE;
+ break;
+ case C1:
+ if (GetTrkEndTrk(trk,1)) break;
+ updateEndPts = TRUE;
+ xx->cornuData.c[1] = cornData.center[1];
+ cornuDesc[C1].mode |= DESC_CHANGE;
+ break;
+ case R0:
+ if (GetTrkEndTrk(trk,0)) break;
+ updateEndPts = TRUE;
+ xx->cornuData.r[0] = cornData.radius[0];
+ cornuDesc[R0].mode |= DESC_CHANGE;
+ break;
+ case R1:
+ if (GetTrkEndTrk(trk,1)) break;
+ updateEndPts = TRUE;
+ xx->cornuData.r[1]= cornData.radius[1];
+ cornuDesc[R1].mode |= DESC_CHANGE;
+ break;
+ case Z0:
+ case Z1:
+ ep = (inx==Z0?0:1);
+ UpdateTrkEndElev( trk, ep, GetTrkEndElevUnmaskedMode(trk,ep), cornData.elev[ep], NULL );
+ ComputeElev( trk, 1-ep, FALSE, &cornData.elev[1-ep], NULL );
+ if ( cornData.length > minLength )
+ cornData.grade = fabs( (cornData.elev[0]-cornData.elev[1])/cornData.length )*100.0;
+ else
+ cornData.grade = 0.0;
+ cornuDesc[GR].mode |= DESC_CHANGE;
+ cornuDesc[inx==Z0?Z1:Z0].mode |= DESC_CHANGE;
+ return;
+ case LY:
+ SetTrkLayer( trk, cornData.layerNumber);
+ break;
+ default:
+ AbortProg( "updateCornu: Bad inx %d", inx );
+ }
+ track_p tracks[2];
+ tracks[0] = GetTrkEndTrk(trk,0);
+ tracks[1] = GetTrkEndTrk(trk,1);
+
+ if (updateEndPts) {
+ if ( GetTrkEndTrk(trk,0) == NULL ) {
+ SetTrkEndPoint( trk, 0, cornData.pos[0], xx->cornuData.a[0]);
+ cornuDesc[A0].mode |= DESC_CHANGE;
+ }
+ if ( GetTrkEndTrk(trk,1) == NULL ) {
+ SetTrkEndPoint( trk, 1, cornData.pos[1], xx->cornuData.a[1]);
+ cornuDesc[A1].mode |= DESC_CHANGE;
+ }
+ }
+
+ EPINX_T new_ep[2];
+ track_p ts[2];
+ ts[0] = GetTrkEndTrk(trk,0);
+ ts[1] = GetTrkEndTrk(trk,1);
+ SetUpCornuParmFromTracks(ts,&cp,xx);
+ CallCornu(xx->cornuData.pos, tracks, new_ep, &xx->cornuData.arcSegs, &cp);
+
+
+ //FixUpCornu(xx->bezierData.pos, xx, IsTrack(trk));
+ ComputeCornuBoundingBox(trk, xx);
+ DrawNewTrack( trk );
+}
+
+
+static void DescribeCornu( track_p trk, char * str, CSIZE_T len )
+{
+ struct extraData *xx = GetTrkExtraData(trk);
+ DIST_T d;
+
+ d = xx->cornuData.length;
+ sprintf( str, _("Cornu Track(%d): Layer=%u MinRadius=%s Length=%s EP=[%0.3f,%0.3f] [%0.3f,%0.3f]"),
+ GetTrkIndex(trk),
+ GetTrkLayer(trk)+1,
+ FormatDistance(xx->cornuData.minCurveRadius),
+ FormatDistance(d),
+ PutDim(xx->cornuData.pos[0].x),PutDim(xx->cornuData.pos[0].y),
+ PutDim(xx->cornuData.pos[1].x),PutDim(xx->cornuData.pos[1].y)
+ );
+
+ cornData.length = xx->cornuData.length;
+ cornData.minRadius = xx->cornuData.minCurveRadius;
+ cornData.maxRateOfChange = xx->cornuData.maxRateofChange;
+ cornData.windingAngle = xx->cornuData.windingAngle;
+ cornData.layerNumber = GetTrkLayer(trk);
+ cornData.pos[0] = xx->cornuData.pos[0];
+ cornData.pos[1] = xx->cornuData.pos[1];
+ cornData.angle[0] = xx->cornuData.a[0];
+ cornData.angle[1] = xx->cornuData.a[1];
+ cornData.center[0] = xx->cornuData.c[0];
+ cornData.center[1] = xx->cornuData.c[1];
+ cornData.radius[0] = xx->cornuData.r[0];
+ cornData.radius[1] = xx->cornuData.r[1];
+ if (GetTrkType(trk) == T_CORNU) {
+ ComputeElev( trk, 0, FALSE, &cornData.elev[0], NULL );
+ ComputeElev( trk, 1, FALSE, &cornData.elev[1], NULL );
+
+ if ( cornData.length > minLength )
+ cornData.grade = fabs( (cornData.elev[0]-cornData.elev[1])/cornData.length )*100.0;
+ else
+ cornData.grade = 0.0;
+ }
+ BOOL_T trk0 = (GetTrkEndTrk(trk,0)!=NULL);
+ BOOL_T trk1 = (GetTrkEndTrk(trk,1)!=NULL);
+
+ cornuDesc[P0].mode = !trk0?0:DESC_RO;
+ cornuDesc[P1].mode = !trk1?0:DESC_RO;
+ cornuDesc[LN].mode = DESC_RO;
+ cornuDesc[Z0].mode = EndPtIsDefinedElev(trk,0)?0:DESC_RO;
+ cornuDesc[Z1].mode = EndPtIsDefinedElev(trk,1)?0:DESC_RO;
+
+
+ cornuDesc[A0].mode = !trk0?0:DESC_RO;
+ cornuDesc[A1].mode = !trk1?0:DESC_RO;
+ cornuDesc[C0].mode = !trk0?0:DESC_RO;
+ cornuDesc[C1].mode = !trk1?0:DESC_RO;
+ cornuDesc[R0].mode = !trk0?0:DESC_RO;
+ cornuDesc[R1].mode = !trk1?0:DESC_RO;
+ cornuDesc[GR].mode = DESC_RO;
+ cornuDesc[RA].mode = DESC_RO;
+ cornuDesc[RR].mode = DESC_RO;
+ cornuDesc[WA].mode = DESC_RO;
+ cornuDesc[LY].mode = DESC_NOREDRAW;
+
+ DoDescribe( _("Cornu Track"), trk, cornuDesc, UpdateCornu );
+
+
+}
+
+
+static DIST_T DistanceCornu( track_p t, coOrd * p )
+{
+ struct extraData *xx = GetTrkExtraData(t);
+ //return BezierMathDistance(p,xx->bezierData.pos,100, &s);
+
+ DIST_T d = 100000.0;
+ coOrd p2 = xx->cornuData.pos[0]; //Set initial point
+ segProcData_t segProcData;
+ for (int i = 0;i<xx->cornuData.arcSegs.cnt;i++) {
+ trkSeg_t seg = DYNARR_N(trkSeg_t,xx->cornuData.arcSegs,i);
+ if (seg.type == SEG_FILCRCL) continue;
+ segProcData.distance.pos1 = * p;
+ SegProc(SEGPROC_DISTANCE,&seg,&segProcData);
+ if (segProcData.distance.dd<d) {
+ d = segProcData.distance.dd;
+ p2 = segProcData.distance.pos1;
+ }
+ }
+ //d = BezierDistance( p, xx->bezierData.pos[0], xx->bezierData.pos[1], xx->bezierData.pos[2], xx->bezierData.pos[1], 100, NULL );
+ * p = p2;
+ return d;
+}
+
+static void DrawCornu( track_p t, drawCmd_p d, wDrawColor color )
+{
+ struct extraData *xx = GetTrkExtraData(t);
+ long widthOptions = DTS_LEFT|DTS_RIGHT;
+
+ if (GetTrkWidth(t) == 2)
+ widthOptions |= DTS_THICK2;
+ if (GetTrkWidth(t) == 3)
+ widthOptions |= DTS_THICK3;
+
+
+ if ( ((d->funcs->options&wDrawOptTemp)==0) &&
+ (labelWhen == 2 || (labelWhen == 1 && (d->options&DC_PRINT))) &&
+ labelScale >= d->scale &&
+ ( GetTrkBits( t ) & TB_HIDEDESC ) == 0 ) {
+ DrawCornuDescription( t, d, color );
+ }
+ DIST_T scale2rail = (d->options&DC_PRINT)?(twoRailScale*2+1):twoRailScale;
+ if ( tieDrawMode!=TIEDRAWMODE_NONE &&
+ d!=&mapD &&
+ (d->options&DC_TIES)!=0 &&
+ d->scale<scale2rail/2 )
+ DrawSegsO(d,t,zero,0.0,xx->cornuData.arcSegs.ptr,xx->cornuData.arcSegs.cnt, GetTrkGauge(t), color, widthOptions|DTS_TIES);
+ DrawSegsO(d,t,zero,0.0,xx->cornuData.arcSegs.ptr,xx->cornuData.arcSegs.cnt, GetTrkGauge(t), color, widthOptions);
+ if ( (d->funcs->options & wDrawOptTemp) == 0 &&
+ (d->options&DC_QUICK) == 0 ) {
+ DrawEndPt( d, t, 0, color );
+ DrawEndPt( d, t, 1, color );
+ }
+}
+
+void FreeSubSegs(trkSeg_t* s) {
+ if (s->type == SEG_BEZTRK || s->type == SEG_BEZLIN) {
+ if (s->bezSegs.ptr) {
+ MyFree(s->bezSegs.ptr);
+ }
+ s->bezSegs.max = 0;
+ s->bezSegs.cnt = 0;
+ s->bezSegs.ptr = NULL;
+ }
+}
+
+static void DeleteCornu( track_p t )
+{
+ struct extraData *xx = GetTrkExtraData(t);
+
+ for (int i=0;i<xx->cornuData.arcSegs.cnt;i++) {
+ trkSeg_t s = DYNARR_N(trkSeg_t,xx->cornuData.arcSegs,i);
+ FreeSubSegs(&s);
+ }
+ if (xx->cornuData.arcSegs.ptr)
+ MyFree(xx->cornuData.arcSegs.ptr);
+ xx->cornuData.arcSegs.max = 0;
+ xx->cornuData.arcSegs.cnt = 0;
+ xx->cornuData.arcSegs.ptr = NULL;
+}
+
+static BOOL_T WriteCornu( track_p t, FILE * f )
+{
+ struct extraData *xx = GetTrkExtraData(t);
+ long options;
+ BOOL_T rc = TRUE;
+ BOOL_T track =(GetTrkType(t)==T_CORNU);
+ options = GetTrkWidth(t) & 0x0F;
+ if ( ( GetTrkBits(t) & TB_HIDEDESC ) == 0 ) options |= 0x80;
+ rc &= fprintf(f, "%s %d %d %ld 0 0 %s %d %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f \n",
+ "CORNU",GetTrkIndex(t), GetTrkLayer(t), (long)options,
+ GetTrkScaleName(t), GetTrkVisible(t),
+ xx->cornuData.pos[0].x, xx->cornuData.pos[0].y,
+ xx->cornuData.a[0],
+ xx->cornuData.r[0],
+ xx->cornuData.c[0].x,xx->cornuData.c[0].y,
+ xx->cornuData.pos[1].x, xx->cornuData.pos[1].y,
+ xx->cornuData.a[1],
+ xx->cornuData.r[1],
+ xx->cornuData.c[1].x,xx->cornuData.c[1].y )>0;
+ if (track) {
+ rc &= WriteEndPt( f, t, 0 );
+ rc &= WriteEndPt( f, t, 1 );
+ }
+ rc &= WriteSegs( f, xx->cornuData.arcSegs.cnt, xx->cornuData.arcSegs.ptr );
+ //rc &= fprintf(f, "\tEND\n" )>0;
+ return rc;
+}
+
+static void ReadCornu( char * line )
+{
+ struct extraData *xx;
+ track_p t;
+ wIndex_t index;
+ BOOL_T visible;
+ DIST_T r0,r1;
+ ANGLE_T a0,a1;
+ coOrd p0, p1, c0, c1;
+ char scale[10];
+ wIndex_t layer;
+ long options;
+ char * cp = NULL;
+
+ if (!GetArgs( line+6, "dLl00sdpffppffp",
+ &index, &layer, &options, scale, &visible, &p0, &a0, &r0, &c0, &p1, &a1, &r1, &c1 ) ) {
+ return;
+ }
+ t = NewTrack( index, T_CORNU, 0, sizeof *xx );
+
+ xx = GetTrkExtraData(t);
+ SetTrkVisible(t, visible);
+ SetTrkScale(t, LookupScale(scale));
+ SetTrkLayer(t, layer );
+ SetTrkWidth(t, (int)(options&0x0F));
+ if ( ( options & 0x80 ) == 0 ) SetTrkBits(t,TB_HIDEDESC);
+ xx->cornuData.pos[0] = p0;
+ xx->cornuData.pos[1] = p1;
+ xx->cornuData.a[0] = a0;
+ xx->cornuData.r[0] = r0;
+ xx->cornuData.a[1] = a1;
+ xx->cornuData.c[0] = c0;
+ xx->cornuData.c[1] = c1;
+ xx->cornuData.r[1] = r1;
+ xx->cornuData.descriptionOff.x = xx->cornuData.descriptionOff.y = 0.0;
+ ReadSegs();
+ FixUpCornu0(xx->cornuData.pos,xx->cornuData.c,xx->cornuData.a, xx->cornuData.r, xx);
+ ComputeCornuBoundingBox(t,xx);
+ SetEndPts(t,2);
+}
+
+static void MoveCornu( track_p trk, coOrd orig )
+{
+ struct extraData *xx = GetTrkExtraData(trk);
+ UndoModify(trk);
+ for (int i=0;i<2;i++) {
+ xx->cornuData.pos[i].x += orig.x;
+ xx->cornuData.pos[i].y += orig.y;
+ xx->cornuData.c[i].x += orig.x;
+ xx->cornuData.c[i].y += orig.y;
+ }
+ RebuildCornu(trk);
+}
+
+static void RotateCornu( track_p trk, coOrd orig, ANGLE_T angle )
+{
+ struct extraData *xx = GetTrkExtraData(trk);
+ UndoModify(trk);
+ for (int i=0;i<2;i++) {
+ Rotate( &xx->cornuData.pos[i], orig, angle );
+ Rotate( &xx->cornuData.c[i], orig, angle);
+ xx->cornuData.a[i] = NormalizeAngle(xx->cornuData.a[i]+angle);
+ }
+ RebuildCornu(trk);
+}
+
+static void RescaleCornu( track_p trk, FLOAT_T ratio )
+{
+ struct extraData *xx = GetTrkExtraData(trk);
+ UndoModify(trk);
+ for (int i=0;i<2;i++) {
+ xx->cornuData.pos[i].x *= ratio;
+ xx->cornuData.pos[i].y *= ratio;
+ }
+ RebuildCornu(trk);
+
+}
+
+EXPORT BOOL_T SetCornuEndPt(track_p trk, EPINX_T inx, coOrd pos, coOrd center, ANGLE_T angle, DIST_T radius) {
+ struct extraData *xx = GetTrkExtraData(trk);
+
+ xx->cornuData.pos[inx] = pos;
+ xx->cornuData.c[inx] = center;
+ xx->cornuData.a[inx] = angle;
+ xx->cornuData.r[inx] = radius;
+ if (!RebuildCornu(trk)) return FALSE;
+ SetTrkEndPoint( trk, inx, xx->cornuData.pos[inx], xx->cornuData.a[inx]);
+ return TRUE;
+}
+
+
+/**
+ * Split the Track at approximately the point pos.
+ */
+static BOOL_T SplitCornu( track_p trk, coOrd pos, EPINX_T ep, track_p *leftover, EPINX_T * ep0, EPINX_T * ep1 )
+{
+ struct extraData *xx = GetTrkExtraData(trk);
+ track_p trk1;
+ DIST_T radius = 0.0;
+ coOrd center;
+ int inx;
+ BOOL_T track;
+ track = IsTrack(trk);
+
+ cornuParm_t new;
+
+ double dd = DistanceCornu(trk, &pos);
+ if (dd>minLength) return FALSE;
+ BOOL_T back, neg;
+
+ ANGLE_T angle = GetAngleSegs(xx->cornuData.arcSegs.cnt,(trkSeg_t *)(xx->cornuData.arcSegs.ptr),&pos,&inx,NULL,&back,NULL,&neg);
+
+ trkSeg_p segPtr = &DYNARR_N(trkSeg_t, xx->cornuData.arcSegs, inx);
+
+ GetAngleSegs(segPtr->bezSegs.cnt,(trkSeg_t *)(segPtr->bezSegs.ptr),&pos,&inx,NULL,&back,NULL,&neg);
+ segPtr = &DYNARR_N(trkSeg_t, segPtr->bezSegs, inx);
+
+ if (segPtr->type == SEG_STRTRK) {
+ radius = 0.0;
+ center = zero;
+ } else if (segPtr->type == SEG_CRVTRK) {
+ center = segPtr->u.c.center;
+ radius = fabs(segPtr->u.c.radius);
+ }
+ if (ep) {
+ new.pos[0] = pos;
+ new.pos[1] = xx->cornuData.pos[1];
+ new.angle[0] = NormalizeAngle(angle+(neg==back?180:0));
+ new.angle[1] = xx->cornuData.a[1];
+ new.center[0] = center;
+ new.center[1] = xx->cornuData.c[1];
+ new.radius[0] = radius;
+ new.radius[1] = xx->cornuData.r[1];
+ } else {
+ new.pos[1] = pos;
+ new.pos[0] = xx->cornuData.pos[0];
+ new.angle[1] = NormalizeAngle(angle+(neg==back?0:180));
+ new.angle[0] = xx->cornuData.a[0];
+ new.center[1] = center;
+ new.center[0] = xx->cornuData.c[0];
+ new.radius[1] = radius;
+ new.radius[0] = xx->cornuData.r[0];
+ }
+
+ trk1 = NewCornuTrack(new.pos,new.center,new.angle,new.radius,NULL,0);
+ if (trk1==NULL) {
+ wBeep();
+ InfoMessage(_("Cornu Create Failed for p1[%0.3f,%0.3f] p2[%0.3f,%0.3f], c1[%0.3f,%0.3f] c2[%0.3f,%0.3f], a1=%0.3f a2=%0.3f, r1=%s r2=%s"),
+ new.pos[0].x,new.pos[0].y,
+ new.pos[1].x,new.pos[1].y,
+ new.center[0].x,new.center[0].y,
+ new.center[1].x,new.center[1].y,
+ new.angle[0],new.angle[1],
+ FormatDistance(new.radius[0]),FormatDistance(new.radius[1]));
+ UndoEnd();
+ return FALSE;
+ }
+
+ UndoModify(trk);
+ xx->cornuData.pos[ep] = pos;
+ xx->cornuData.a[ep] = NormalizeAngle(new.angle[1-ep]+180);
+ xx->cornuData.r[ep] = new.radius[1-ep];
+ xx->cornuData.c[ep] = new.center[1-ep];
+
+ RebuildCornu(trk);
+
+ SetTrkEndPoint(trk, ep, xx->cornuData.pos[ep], xx->cornuData.a[ep]);
+
+ *leftover = trk1;
+ *ep0 = 1-ep;
+ *ep1 = ep;
+
+ return TRUE;
+}
+
+BOOL_T MoveCornuEndPt ( track_p *trk, EPINX_T *ep, coOrd pos, DIST_T d0 ) {
+ track_p trk2;
+ if (SplitTrack(*trk,pos,*ep,&trk2,TRUE)) {
+ struct extraData *xx = GetTrkExtraData(*trk);
+ if (trk2) DeleteTrack(trk2,TRUE);
+ SetTrkEndPoint( *trk, *ep, *ep?xx->cornuData.pos[1]:xx->cornuData.pos[0], *ep?xx->cornuData.a[1]:xx->cornuData.a[0] );
+ return TRUE;
+ }
+ return FALSE;
+}
+static int log_traverseCornu = 0;
+/*
+ * TraverseCornu is used to position a train/car.
+ * We find a new position and angle given a current pos, angle and a distance to travel.
+ *
+ * The output can be TRUE -> we have moved the point to a new point or to the start/end of the next track
+ * FALSE -> we have not found that point because pos was not on/near the track
+ *
+ * If true we supply the remaining distance to go (always positive).
+ * We detect the movement direction by comparing the current angle to the angle of the track at the point.
+ *
+ * The entire Cornu may be reversed or forwards depending on the way it was drawn.
+ *
+ * Each Bezier segment within that Cornu structure therefore may be processed forwards or in reverse.
+ * So for each segment we call traverse1 to get the direction and extra distance to go to get to the current point
+ * and then use that for traverse2 to actually move to the new point
+ *
+ * If we exceed the current point's segment we move on to the next until the end of this track or we have found the spot.
+ *
+ */
+static BOOL_T TraverseCornu( traverseTrack_p trvTrk, DIST_T * distR )
+{
+ track_p trk = trvTrk->trk;
+ struct extraData *xx = GetTrkExtraData(trk);
+ DIST_T dist = *distR;
+ segProcData_t segProcData;
+ BOOL_T cornu_backwards= FALSE;
+ BOOL_T neg = FALSE;
+ DIST_T d = 10000;
+ coOrd pos1 = trvTrk->pos, pos2 = trvTrk->pos;
+ ANGLE_T a1,a2;
+ int inx, segInx = 0;
+ EPINX_T ep;
+ BOOL_T back;
+LOG( log_traverseCornu, 1, ( "TravCornu-In [%0.3f %0.3f] A%0.3f D%0.3f \n", trvTrk->pos.x, trvTrk->pos.y, trvTrk->angle, *distR ))
+ trkSeg_p segPtr = (trkSeg_p)xx->cornuData.arcSegs.ptr;
+
+ a2 = GetAngleSegs( //Find correct Segment and nearest point in it
+ xx->cornuData.arcSegs.cnt,segPtr,
+ &pos2, &segInx, &d , &back , NULL, &neg); //d = how far pos2 from old pos2 = trvTrk->pos
+
+ if ( d > 10 ) {
+ ErrorMessage( "traverseCornu: Position is not near track: %0.3f", d );
+ return FALSE; //This means the input pos is not on or close to the track.
+ }
+ if (back) a2 = NormalizeAngle(a2+180); //If reverse segs - reverse angle
+ a1 = NormalizeAngle(a2-trvTrk->angle); //Establish if we are going fwds or backwards globally
+ if (a1<270 && a1>90) { //Must add 180 if the seg is reversed or inverted (but not both)
+ cornu_backwards = TRUE;
+ ep = 0;
+ } else {
+ cornu_backwards = FALSE;
+ ep = 1;
+ }
+ if (neg) {
+ cornu_backwards = !cornu_backwards; //Reversed direction
+ ep = 1-ep;
+ }
+ segProcData.traverse1.pos = pos2; //actual point on curve
+ segProcData.traverse1.angle = trvTrk->angle; //direction car is going for Traverse 1
+LOG( log_traverseCornu, 1, ( " TravCornu-GetSubA A%0.3f I%d N%d B%d CB%d\n", a2, segInx, neg, back, cornu_backwards ))
+ inx = segInx;
+ while (inx >=0 && inx<xx->cornuData.arcSegs.cnt) {
+ segPtr = (trkSeg_p)xx->cornuData.arcSegs.ptr+inx; //move in to the identified Bezier segment
+ SegProc( SEGPROC_TRAVERSE1, segPtr, &segProcData );
+ BOOL_T backwards = segProcData.traverse1.backwards; //do we process this segment backwards?
+ BOOL_T reverse_seg = segProcData.traverse1.reverse_seg; //Info only
+ int BezSegInx = segProcData.traverse1.BezSegInx; //Which subSeg was it?
+ BOOL_T segs_backwards = segProcData.traverse1.segs_backwards;
+
+ dist += segProcData.traverse1.dist; //Add in the part of the Bezier to get to pos
+
+ segProcData.traverse2.dist = dist; //Set up Traverse2
+ segProcData.traverse2.segDir = backwards;
+ segProcData.traverse2.BezSegInx = BezSegInx;
+ segProcData.traverse2.segs_backwards = segs_backwards;
+LOG( log_traverseCornu, 2, ( " TravCornu-Tr1 SI%d D%0.3f B%d RS%d \n", BezSegInx, dist, backwards, reverse_seg ) )
+ SegProc( SEGPROC_TRAVERSE2, segPtr, &segProcData ); //Angle at pos2
+ if ( segProcData.traverse2.dist <= 0 ) { //-ve or zero distance left over so stop there
+ *distR = 0;
+ trvTrk->pos = segProcData.traverse2.pos; //Use finishing pos
+ trvTrk->angle = segProcData.traverse2.angle; //Use finishing angle
+LOG( log_traverseCornu, 1, ( "TravCornu-Ex1 -> [%0.3f %0.3f] A%0.3f D%0.3f\n", trvTrk->pos.x, trvTrk->pos.y, trvTrk->angle, *distR ) )
+ return TRUE;
+ }
+ dist = segProcData.traverse2.dist; //How far left?
+ coOrd pos = segProcData.traverse2.pos; //Will always be at a Bezseg end
+ ANGLE_T angle = segProcData.traverse2.angle; //Angle of end therefore
+
+ segProcData.traverse1.angle = angle; //Set up Traverse1
+ segProcData.traverse1.pos = pos;
+ inx = cornu_backwards?inx-1:inx+1; //Here's where the global segment direction comes in
+LOG( log_traverseCornu, 2, ( " TravCornu-Loop D%0.3f A%0.3f I%d \n", dist, angle, inx ) )
+ }
+ //Ran out of Bez-Segs so punt to next Track
+ *distR = dist; //Tell caller what dist is left
+
+ trvTrk->pos = GetTrkEndPos(trk,ep); //Which end were we heading for?
+ trvTrk->angle = NormalizeAngle(GetTrkEndAngle(trk, ep)+(cornu_backwards?180:0));
+ trvTrk->trk = GetTrkEndTrk(trk,ep); //go onto next track (or NULL)
+
+ if (trvTrk->trk==NULL) {
+ trvTrk->pos = pos1;
+ return TRUE;
+ }
+LOG( log_traverseCornu, 1, ( "TravCornu-Ex2 --> [%0.3f %0.3f] A%0.3f D%0.3f\n", trvTrk->pos.x, trvTrk->pos.y, trvTrk->angle, *distR ) )
+ return TRUE;
+
+}
+
+
+static BOOL_T EnumerateCornu( track_p trk )
+{
+
+ if (trk != NULL) {
+ struct extraData *xx = GetTrkExtraData(trk);
+ DIST_T d;
+ d = xx->cornuData.length;
+ ScaleLengthIncrement( GetTrkScale(trk), d );
+ }
+ return TRUE;
+}
+
+static BOOL_T MergeCornu(
+ track_p trk0,
+ EPINX_T ep0,
+ track_p trk1,
+ EPINX_T ep1 )
+{
+ struct extraData *xx0 = GetTrkExtraData(trk0);
+ struct extraData *xx1 = GetTrkExtraData(trk1);
+ track_p trk_after,trk_before;
+ EPINX_T ep_before,ep_after=-1;
+ coOrd p[2];
+ coOrd c[2];
+ ANGLE_T a[2];
+ DIST_T r[2];
+
+
+ if (!IsTrack(trk0) || !IsTrack(trk1) ) return FALSE;
+ if (GetTrkType(trk0) != GetTrkType(trk1)) return FALSE;
+ if (GetEndPtConnectedToMe(trk0,trk1) != ep0) return FALSE;
+ if (GetEndPtConnectedToMe(trk1,trk0) != ep1) return FALSE;
+
+ if (ep0 == ep1)
+ return FALSE;
+
+ UndoStart( _("Merge Cornu"), "MergeCornu( T%d[%d] T%d[%d] )", GetTrkIndex(trk0), ep0, GetTrkIndex(trk1), ep1 );
+ p[0] = xx0->cornuData.pos[0];
+ p[1] = xx1->cornuData.pos[1];
+ a[0] = xx0->cornuData.a[0];
+ a[1] = xx1->cornuData.a[1];
+ c[0] = xx0->cornuData.c[0];
+ c[1] = xx1->cornuData.c[1];
+ r[0] = xx0->cornuData.r[0];
+ r[1] = xx1->cornuData.r[1];
+ track_p trk3 = NewCornuTrack(p,c,a,r,NULL,0);
+ if (trk3==NULL) {
+ wBeep();
+ InfoMessage(_("Cornu Create Failed for p1[%0.3f,%0.3f] p2[%0.3f,%0.3f], c1[%0.3f,%0.3f] c2[%0.3f,%0.3f], a1=%0.3f a2=%0.3f, r1=%s r2=%s"),
+ p[0].x,p[0].y,
+ p[1].x,p[1].y,
+ c[0].x,c[0].y,
+ c[1].x,c[1].y,
+ a[0],a[1],
+ FormatDistance(r[0]),FormatDistance(r[1]));
+ UndoEnd();
+ return FALSE;
+ }
+
+ UndoModify( trk0 );
+ UndoModify( trk1 );
+ UndrawNewTrack( trk0 );
+ UndrawNewTrack( trk1 );
+ trk_after = GetTrkEndTrk( trk1, 1-ep1 );
+ if (trk_after) {
+ ep_after = GetEndPtConnectedToMe( trk_after, trk1 );
+ DisconnectTracks( trk1, 1-ep1, trk_after, ep_after );
+ }
+ trk_before = GetTrkEndTrk( trk0, 1-ep0 );
+ if (trk_before) {
+ ep_before = GetEndPtConnectedToMe( trk_before, trk0 );
+ DisconnectTracks( trk0, 1-ep1, trk_before, ep_before );
+ }
+
+ DeleteTrack( trk1, TRUE );
+ DeleteTrack( trk0, TRUE );
+ if (trk_after) {
+ SetTrkEndPoint( trk_after, ep_after, xx0->cornuData.pos[1], NormalizeAngle(xx0->cornuData.a[1]+180));
+ ConnectTracks( trk3, 1, trk_after, ep_after);
+ }
+ if (trk_before) {
+ SetTrkEndPoint( trk_before, ep_before, xx0->cornuData.pos[0], NormalizeAngle(xx0->cornuData.a[0]+180));
+ ConnectTracks( trk3, 0, trk_before, ep_before);
+ }
+ DrawNewTrack( trk3 );
+ UndoEnd();
+
+
+ return TRUE;
+}
+
+BOOL_T GetBezierSegmentsFromCornu(track_p trk, dynArr_t * segs) {
+ struct extraData * xx = GetTrkExtraData(trk);
+ for (int i=0;i<xx->cornuData.arcSegs.cnt;i++) {
+ DYNARR_APPEND(trkSeg_t, * segs, 10);
+ trkSeg_p segPtr = &DYNARR_N(trkSeg_t,* segs,segs->cnt-1);
+ segPtr->type = SEG_BEZTRK;
+ segPtr->color = wDrawColorBlack;
+ segPtr->width = 0;
+ if (segPtr->bezSegs.ptr) MyFree(segPtr->bezSegs.ptr);
+ segPtr->bezSegs.cnt = 0;
+ segPtr->bezSegs.max = 0;
+ segPtr->bezSegs.ptr = NULL;
+ trkSeg_p p = (trkSeg_t *) xx->cornuData.arcSegs.ptr+i;
+ for (int j=0;j<4;j++) segPtr->u.b.pos[j] = p->u.b.pos[j];
+ FixUpBezierSeg(segPtr->u.b.pos,segPtr,TRUE);
+ }
+ return TRUE;
+}
+
+static DIST_T GetLengthCornu( track_p trk )
+{
+ struct extraData *xx = GetTrkExtraData(trk);
+ DIST_T length = 0.0;
+ segProcData_t segProcData;
+ for(int i=0;i<xx->cornuData.arcSegs.cnt;i++) {
+ trkSeg_t seg = DYNARR_N(trkSeg_t,xx->cornuData.arcSegs,i);
+ if (seg.type == SEG_FILCRCL) continue;
+ SegProc(SEGPROC_LENGTH, &seg, &segProcData);
+ length += segProcData.length.length;
+ }
+ return length;
+}
+
+
+static BOOL_T GetParamsCornu( int inx, track_p trk, coOrd pos, trackParams_t * params )
+{
+ int segInx, segInx2;
+ BOOL_T back, negative;
+ DIST_T d;
+ struct extraData *xx = GetTrkExtraData(trk);
+ params->type = curveTypeCornu;
+ params->track_angle = GetAngleSegs( //Find correct Segment and nearest point in it
+ xx->cornuData.arcSegs.cnt,xx->cornuData.arcSegs.ptr,
+ &pos, &segInx, &d , &back, &segInx2, &negative );
+ trkSeg_p segPtr = &DYNARR_N(trkSeg_t,xx->cornuData.arcSegs,segInx);
+ if (negative != back) params->track_angle = NormalizeAngle(params->track_angle+180); //Cornu is in reverse
+ if (segPtr->type == SEG_STRTRK) {
+ params->arcR = 0.0;
+ } else if (segPtr->type == SEG_CRVTRK) {
+ params->arcR = fabs(segPtr->u.c.radius);
+ params->arcP = segPtr->u.c.center;
+ params->arcA0 = segPtr->u.c.a0;
+ params->arcA1 = segPtr->u.c.a1;
+ } else if (segPtr->type == SEG_BEZTRK) {
+ trkSeg_p segPtr2 = &DYNARR_N(trkSeg_t,segPtr->bezSegs,segInx2);
+ if (segPtr2->type == SEG_STRTRK) {
+ params->arcR = 0.0;
+ } else if (segPtr2->type == SEG_CRVTRK) {
+ params->arcR = fabs(segPtr2->u.c.radius);
+ params->arcP = segPtr2->u.c.center;
+ params->arcA0 = segPtr2->u.c.a0;
+ params->arcA1 = segPtr2->u.c.a1;
+ }
+ }
+ for (int i=0;i<2;i++) {
+ params->cornuEnd[i] = xx->cornuData.pos[i];
+ params->cornuAngle[i] = xx->cornuData.a[i];
+ params->cornuRadius[i] = xx->cornuData.r[i];
+ params->cornuCenter[i] = xx->cornuData.c[i];
+ }
+ params->len = xx->cornuData.length;
+ if ( inx == PARAMS_PARALLEL ) {
+ params->ep = 0;
+ } else if (inx == PARAMS_CORNU) {
+ params->ep = PickEndPoint( pos, trk);
+ } else {
+ params->ep = PickUnconnectedEndPointSilent( pos, trk );
+ }
+ if (params->ep>=0) {
+ params->angle = GetTrkEndAngle(trk,params->ep);
+ }
+
+ return TRUE;
+
+}
+
+
+
+static BOOL_T QueryCornu( track_p trk, int query )
+{
+ struct extraData * xx = GetTrkExtraData(trk);
+ switch ( query ) {
+ case Q_CAN_GROUP:
+ return FALSE;
+ break;
+ case Q_FLIP_ENDPTS:
+ case Q_HAS_DESC:
+ return TRUE;
+ break;
+ case Q_EXCEPTION:
+ return xx->cornuData.minCurveRadius < (GetLayoutMinTrackRadius()-EPSILON);
+ break;
+ case Q_IS_CORNU:
+ return TRUE;
+ break;
+ case Q_ISTRACK:
+ return TRUE;
+ break;
+ case Q_CAN_PARALLEL:
+ return TRUE;
+ break;
+ // case Q_MODIFY_CANT_SPLIT: Remove Split Restriction
+ // case Q_CANNOT_BE_ON_END: Remove Restriction - Can have Cornu with no ends
+ case Q_CANNOT_PLACE_TURNOUT:
+ return TRUE;
+ break;
+ case Q_IGNORE_EASEMENT_ON_EXTEND:
+ return TRUE;
+ break;
+ case Q_MODIFY_CAN_SPLIT:
+ case Q_CAN_EXTEND:
+ return TRUE;
+ default:
+ return FALSE;
+ }
+}
+
+
+static void FlipCornu(
+ track_p trk,
+ coOrd orig,
+ ANGLE_T angle )
+{
+ struct extraData * xx = GetTrkExtraData(trk);
+ FlipPoint( &xx->cornuData.pos[0], orig, angle );
+ FlipPoint( &xx->cornuData.pos[1], orig, angle );
+ FlipPoint( &xx->cornuData.c[0], orig, angle);
+ FlipPoint( &xx->cornuData.c[1], orig, angle);
+ xx->cornuData.a[0] = NormalizeAngle( 2*angle - xx->cornuData.a[0] );
+ xx->cornuData.a[1] = NormalizeAngle( 2*angle - xx->cornuData.a[1] );
+
+ RebuildCornu(trk);
+
+}
+
+static ANGLE_T GetAngleCornu(
+ track_p trk,
+ coOrd pos,
+ EPINX_T * ep0,
+ EPINX_T * ep1 )
+{
+ struct extraData * xx = GetTrkExtraData(trk);
+ ANGLE_T angle;
+ BOOL_T back, neg;
+ int indx;
+ angle = GetAngleSegs( xx->cornuData.arcSegs.cnt, (trkSeg_p)xx->cornuData.arcSegs.ptr, &pos, &indx, NULL, &back, NULL, &neg );
+ if ( ep0 ) *ep0 = -1;
+ if ( ep1 ) *ep1 = -1;
+ return angle;
+}
+
+BOOL_T GetCornuSegmentFromTrack(track_p trk, trkSeg_p seg_p) {
+ //TODO If we support Group
+ return TRUE;
+}
+
+
+static BOOL_T MakeParallelCornu(
+ track_p trk,
+ coOrd pos,
+ DIST_T sep,
+ track_p * newTrkR,
+ coOrd * p0R,
+ coOrd * p1R )
+{
+ struct extraData * xx = GetTrkExtraData(trk);
+ coOrd np[4], p, nc[2];
+ ANGLE_T atrk, diff_a, na[2];
+ DIST_T nr[2];
+
+
+ //Produce cornu that is translated parallel to the existing Cornu
+ // - not a precise result if the cornu end angles are not in the same general direction.
+ // The expectation is that the user will have to adjust it - unless and until we produce
+ // a new algo to adjust the control points to be parallel to the endpoints.
+
+ p = pos;
+ DistanceCornu(trk, &p); //Find nearest point on curve
+ atrk = GetAngleSegs(xx->cornuData.arcSegs.cnt,(trkSeg_t *)(xx->cornuData.arcSegs.ptr),&p,NULL,NULL,NULL,NULL, NULL);
+ diff_a = NormalizeAngle(FindAngle(pos,p)-atrk); //we know it will be +/-90...
+ //find parallel move x and y for points
+ BOOL_T above = FALSE;
+ if ( diff_a < 180 ) above = TRUE; //Above track
+ if (xx->cornuData.a[0] <180) above = !above;
+ Translate(&np[0],xx->cornuData.pos[0],xx->cornuData.a[0]+(above?90:-90),sep);
+ Translate(&np[1],xx->cornuData.pos[1],xx->cornuData.a[1]+(above?-90:90),sep);
+ na[0]=xx->cornuData.a[0];
+ na[1]=xx->cornuData.a[1];
+ if (xx->cornuData.r[0]) {
+ //Find angle between center and end angle of track
+ ANGLE_T ea0 =
+ NormalizeAngle(FindAngle(xx->cornuData.c[0],xx->cornuData.pos[0])-xx->cornuData.a[0]);
+ DIST_T sep0 = sep;
+ if (ea0>180) sep0 = -sep;
+ nr[0]=xx->cornuData.r[0]+(above?sep0:-sep0); //Needs adjustment
+ nc[0]=xx->cornuData.c[0];
+ } else {
+ nr[0] = 0;
+ nc[0] = zero;
+ }
+
+ if (xx->cornuData.r[1]) {
+ ANGLE_T ea1 =
+ NormalizeAngle(FindAngle(xx->cornuData.c[1],xx->cornuData.pos[1])-xx->cornuData.a[1]);
+ DIST_T sep1 = sep;
+ if (ea1<180) sep1 = -sep;
+ nr[1]=xx->cornuData.r[1]+(above?sep1:-sep1); //Needs adjustment
+ nc[1]=xx->cornuData.c[1];
+ } else {
+ nr[1] = 0;
+ nc[1] = zero;
+ }
+
+ if ( newTrkR ) {
+ *newTrkR = NewCornuTrack( np, nc, na, nr, NULL, 0);
+ if (*newTrkR==NULL) {
+ wBeep();
+ InfoMessage(_("Cornu Create Failed for p1[%0.3f,%0.3f] p2[%0.3f,%0.3f], c1[%0.3f,%0.3f] c2[%0.3f,%0.3f], a1=%0.3f a2=%0.3f, r1=%s r2=%s"),
+ np[0].x,np[0].y,
+ np[1].x,np[1].y,
+ nc[0].x,nc[0].y,
+ nc[1].x,nc[1].y,
+ na[0],na[1],
+ FormatDistance(nr[0]),FormatDistance(nr[1]));
+ return FALSE;
+ }
+
+ } else {
+ tempSegs_da.cnt = 0;
+ CallCornu0(np,nc,na,nr,&tempSegs_da,FALSE);
+ }
+ if ( p0R ) *p0R = np[0];
+ if ( p1R ) *p1R = np[1];
+ return TRUE;
+}
+
+/*
+ * When an undo is run, the array of segs is missing - they are not saved to the Undo log. So Undo calls this routine to
+ * ensure
+ * - that the Segs are restored and
+ * - other fields reset.
+ */
+EXPORT BOOL_T RebuildCornu (track_p trk)
+{
+ struct extraData *xx;
+ xx = GetTrkExtraData(trk);
+ xx->cornuData.arcSegs.max = 0;
+ xx->cornuData.arcSegs.cnt = 0;
+ //if (xx->cornuData.arcSegs.ptr) MyFree(xx->cornuData.arcSegs.ptr);
+ xx->cornuData.arcSegs.ptr = NULL;
+ if (!FixUpCornu0(xx->cornuData.pos,xx->cornuData.c,xx->cornuData.a,xx->cornuData.r, xx)) return FALSE;
+ ComputeCornuBoundingBox(trk, xx);
+ return TRUE;
+}
+
+
+static trackCmd_t cornuCmds = {
+ "CORNU",
+ DrawCornu,
+ DistanceCornu,
+ DescribeCornu,
+ DeleteCornu,
+ WriteCornu,
+ ReadCornu,
+ MoveCornu,
+ RotateCornu,
+ RescaleCornu,
+ NULL,
+ GetAngleCornu,
+ SplitCornu,
+ TraverseCornu,
+ EnumerateCornu,
+ NULL, /* redraw */
+ NULL, /* trim */
+ MergeCornu,
+ NULL, /* modify */
+ GetLengthCornu,
+ GetParamsCornu,
+ MoveCornuEndPt, /* Move EndPt */
+ QueryCornu,
+ NULL, /* ungroup */
+ FlipCornu,
+ NULL,
+ NULL,
+ NULL,
+ MakeParallelCornu,
+ NULL,
+ RebuildCornu
+ };
+
+
+
+
+
+/****************************************
+ *
+ * GRAPHICS COMMANDS
+ *
+ */
+
+
+
+
+track_p NewCornuTrack(coOrd pos[2], coOrd center[2],ANGLE_T angle[2], DIST_T radius[2], trkSeg_t * tempsegs, int count)
+{
+ struct extraData *xx;
+ track_p p;
+ p = NewTrack( 0, T_CORNU, 2, sizeof *xx );
+ xx = GetTrkExtraData(p);
+ xx->cornuData.pos[0] = pos[0];
+ xx->cornuData.pos[1] = pos[1];
+ xx->cornuData.a[0] = angle[0];
+ xx->cornuData.a[1] = angle[1];
+ xx->cornuData.r[0] = radius[0];
+ xx->cornuData.r[1] = radius[1];
+ xx->cornuData.c[0] = center[0];
+ xx->cornuData.c[1] = center[1];
+
+ if (!FixUpCornu0(xx->cornuData.pos,xx->cornuData.c,xx->cornuData.a,xx->cornuData.r, xx)) {
+ ErrorMessage("Create Cornu Failed");
+ return NULL;
+ }
+LOG( log_cornu, 1, ( "NewCornuTrack( EP1 %0.3f, %0.3f, EP2 %0.3f, %0.3f ) = %d\n", pos[0].x, pos[0].y, pos[1].x, pos[1].y, GetTrkIndex(p) ) )
+ ComputeCornuBoundingBox( p, xx );
+ SetTrkEndPoint( p, 0, pos[0], xx->cornuData.a[0]);
+ SetTrkEndPoint( p, 1, pos[1], xx->cornuData.a[1]);
+ CheckTrackLength( p );
+ SetTrkBits( p, TB_HIDEDESC );
+ return p;
+}
+
+
+EXPORT void InitTrkCornu( void )
+{
+ T_CORNU = InitObject( &cornuCmds );
+ log_cornu = LogFindIndex( "Cornu" );
+ log_traverseCornu = LogFindIndex( "traverseCornu" );
+}
+
diff --git a/app/bin/tcornu.h b/app/bin/tcornu.h
new file mode 100644
index 0000000..c41d381
--- /dev/null
+++ b/app/bin/tcornu.h
@@ -0,0 +1,66 @@
+/*
+ * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/tcornu.h,v 1.1 2005-12-07 15:47:36 rc-flyer Exp $
+ */
+
+/* XTrkCad - Model Railroad CAD
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+typedef struct {
+ coOrd pos[2];
+ coOrd c[2];
+ ANGLE_T a[2];
+ DIST_T r[2];
+ DIST_T minCurveRadius;
+ DIST_T maxRateofChange;
+ DIST_T length;
+ ANGLE_T windingAngle;
+ dynArr_t arcSegs;
+ coOrd descriptionOff;
+ char * cornuPath;
+ } cornuData_t;
+
+typedef struct {
+ coOrd pos[2]; //All values for end if trk[end] = NULL
+ DIST_T radius[2]; //0.0 if straight
+ ANGLE_T angle[2]; //Set if straight
+ coOrd center[2]; //Set if radius >0
+ } cornuParm_t;
+
+
+double CornuMaxCurve(coOrd[2],ANGLE_T[2],DIST_T[2]);
+double BezierMathMinRadius(coOrd[4]);
+coOrd BezierMathFindNearestPoint(coOrd *, coOrd[4] , int );
+track_p NewCornuTrack(coOrd pos[2], coOrd center[2], ANGLE_T angle[2], DIST_T radius[2], trkSeg_t * tempsegs, int count);
+DIST_T CornuDistance( coOrd *, coOrd[2], ANGLE_T[2], DIST_T[2], trkSeg_t * ,int , double * );
+BOOL_T FixUpCornu(coOrd pos[2], track_p [2], EPINX_T ep[2], struct extraData* xx);
+BOOL_T FixUpCornu0(coOrd pos[2], coOrd center[2], ANGLE_T angle[2], DIST_T radius[2], struct extraData* xx);
+BOOL_T GetCornuSegmentsFromTrack(track_p, trkSeg_p);
+BOOL_T SetCornuEndPt(track_p trk, EPINX_T inx, coOrd pos, coOrd center, ANGLE_T angle, DIST_T radius);
+BOOL_T RebuildCornu (track_p trk);
+
+STATUS_T CornuDescriptionMove(track_p trk,wAction_t action,coOrd pos );
+DIST_T CornuDescriptionDistance(coOrd pos,track_p trk );
+
+
+BOOL_T CallCornu(coOrd[2],track_p[2],EPINX_T[2],dynArr_t *,cornuParm_t *);
+BOOL_T CallCornu0(coOrd[2], coOrd[2], ANGLE_T[2], DIST_T[2], dynArr_t *,BOOL_T);
+
+BOOL_T GetBezierSegmentsFromCornu(track_p, dynArr_t *);
+
+char * CreateSegPathList(track_p trk);
+
+
+
diff --git a/app/bin/tcurve.c b/app/bin/tcurve.c
index 7e9fc90..7233ebf 100644
--- a/app/bin/tcurve.c
+++ b/app/bin/tcurve.c
@@ -1,8 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/tcurve.c,v 1.3 2009-06-15 19:29:57 m_fischer Exp $
- *
+/** \file tcurve.c
* CURVE
- *
*/
/* XTrkCad - Model Railroad CAD
@@ -23,11 +20,20 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "track.h"
+#include <assert.h>
+#include <math.h>
+
#include "ccurve.h"
-#include "cstraigh.h"
#include "cjoin.h"
+#include "cstraigh.h"
+#include "cundo.h"
+#include "fileio.h"
#include "i18n.h"
+#include "layout.h"
+#include "messages.h"
+#include "param.h"
+#include "track.h"
+#include "utility.h"
static TRKTYP_T T_CURVE = -1;
@@ -43,6 +49,7 @@ struct extraData {
#define xcircle extraData->circle
static int log_curve = 0;
+static int log_curveSegs = 0;
static DIST_T GetLengthCurve( track_p );
@@ -261,26 +268,28 @@ STATUS_T CurveDescriptionMove(
coOrd pos )
{
struct extraData *xx = GetTrkExtraData(trk);
- static coOrd p0;
+ static coOrd p0,p1;
+ static BOOL_T editMode;
wDrawColor color;
ANGLE_T a, a0, a1;
DIST_T d;
+ p0 = xx->pos;
+
switch (action) {
case C_DOWN:
case C_MOVE:
case C_UP:
+ editMode = TRUE;
color = GetTrkColor( trk, &mainD );
- DrawCurveDescription( trk, &tempD, color );
if ( xx->helixTurns > 0 ) {
- if (action != C_DOWN)
- DrawLine( &tempD, xx->pos, p0, 0, wDrawColorBlack );
xx->descriptionOff.x = (pos.x-xx->pos.x);
xx->descriptionOff.y = (pos.y-xx->pos.y);
- p0 = pos;
+ p1 = pos;
if (action != C_UP)
- DrawLine( &tempD, xx->pos, p0, 0, wDrawColorBlack );
+ DrawLine( &tempD, p0, p1, 0, wDrawColorBlack );
} else {
+ p1 = pos;
GetCurveAngles( &a0, &a1, trk );
if ( a1 < 1 ) a1 = 1.0;
a = FindAngle( xx->pos, pos );
@@ -301,14 +310,18 @@ STATUS_T CurveDescriptionMove(
if ( d < 0.1 )
d = 0.1;
xx->descriptionOff.y = d * 2.0 - 1.0;
+ GetCurveAngles( &a0, &a1, trk );
+ a = a0 + (0.5 * a1);
+ PointOnCircle( &p0, xx->pos, xx->radius/2, a );
}
- DrawCurveDescription( trk, &tempD, color );
- MainRedraw();
+ if (action == C_UP) editMode = FALSE;
+ MainRedraw();
+ MapRedraw();
return action==C_UP?C_TERMINATE:C_CONTINUE;
case C_REDRAW:
- if ( xx->helixTurns > 0 ) {
- DrawLine( &tempD, xx->pos, p0, 0, wDrawColorBlack );
+ if (editMode) {
+ DrawLine( &tempD, p1, p0, 0, wDrawColorBlack );
}
break;
@@ -335,15 +348,15 @@ static struct {
ANGLE_T angle;
FLOAT_T grade;
descPivot_t pivot;
- LAYER_T layerNumber;
+ unsigned int layerNumber;
} crvData;
typedef enum { E0, Z0, E1, Z1, CE, RA, TU, SE, LN, AL, A1, A2, GR, PV, LY } crvDesc_e;
static descData_t crvDesc[] = {
-/*E0*/ { DESC_POS, N_("End Pt 1: X"), &crvData.endPt[0] },
+/*E0*/ { DESC_POS, N_("End Pt 1: X,Y"), &crvData.endPt[0] },
/*Z0*/ { DESC_DIM, N_("Z"), &crvData.elev[0] },
-/*E1*/ { DESC_POS, N_("End Pt 2: X"), &crvData.endPt[1] },
+/*E1*/ { DESC_POS, N_("End Pt 2: X,Y"), &crvData.endPt[1] },
/*Z1*/ { DESC_DIM, N_("Z"), &crvData.elev[1] },
-/*CE*/ { DESC_POS, N_("Center: X"), &crvData.center },
+/*CE*/ { DESC_POS, N_("Center: X,Y"), &crvData.center },
/*RA*/ { DESC_DIM, N_("Radius"), &crvData.radius },
/*TU*/ { DESC_LONG, N_("Turns"), &crvData.turns },
/*SE*/ { DESC_DIM, N_("Separation"), &crvData.separation },
@@ -380,6 +393,10 @@ static void UpdateCurve( track_p trk, int inx, descData_p descUpd, BOOL_T final
ErrorMessage( MSG_RADIUS_GTR_0 );
crvData.radius = xx0.radius;
crvDesc[RA].mode |= DESC_CHANGE;
+ } else if (crvData.radius > 10000) {
+ ErrorMessage( MSG_RADIUS_GTR_10000 );
+ crvData.radius = xx0.radius;
+ crvDesc[RA].mode |= DESC_CHANGE;
} else {
if ( crvData.pivot == DESC_PIVOT_FIRST || GetTrkEndTrk(trk,0) ) {
Translate( &xx0.pos, xx0.pos, a0, xx0.radius-crvData.radius );
@@ -1164,6 +1181,10 @@ static BOOL_T GetParamsCurve( int inx, track_p trk, coOrd pos, trackParams_t * p
params->type = curveTypeCurve;
GetTrkCurveCenter( trk, &params->arcP, &params->arcR);
GetCurveAngles( &params->arcA0, &params->arcA1, trk );
+ ANGLE_T angle1 = FindAngle(params->arcP,pos);
+
+ params->track_angle = NormalizeAngle(FindAngle(params->arcP,pos)+90);
+
if ( easeR > 0.0 && params->arcR < easeR ) {
ErrorMessage( MSG_RADIUS_LSS_EASE_MIN,
FormatDistance( params->arcR ), FormatDistance( easeR ) );
@@ -1184,12 +1205,20 @@ static BOOL_T GetParamsCurve( int inx, track_p trk, coOrd pos, trackParams_t * p
params->arcA1 = 360.0;
}
} else {
- if ( IsCurveCircle( trk ) )
+ params->circleOrHelix = FALSE;
+ if ( IsCurveCircle( trk ) ) {
params->ep = PickArcEndPt( params->arcP, /*Dj.inp[0].*/pos, pos );
- else
- params->ep = PickUnconnectedEndPoint( pos, trk );
+ params->angle = params->track_angle;
+ params->circleOrHelix = TRUE;
+ return TRUE;
+ } else if (inx == PARAMS_CORNU ) {
+ params->ep = PickEndPoint(pos, trk);
+ } else {
+ params->ep = PickUnconnectedEndPointSilent( pos, trk );
+ }
if (params->ep == -1)
return FALSE;
+ params->angle = GetTrkEndAngle(trk,params->ep); ;
}
return TRUE;
}
@@ -1224,11 +1253,27 @@ static BOOL_T QueryCurve( track_p trk, int query )
case Q_FLIP_ENDPTS:
case Q_ISTRACK:
case Q_HAS_DESC:
+ case Q_CORNU_CAN_MODIFY:
+ case Q_MODIFY_CAN_SPLIT:
return TRUE;
+ break;
case Q_EXCEPTION:
- return xx->radius < minTrackRadius;
+ return xx->radius < GetLayoutMinTrackRadius() - EPSILON;
+ break;
case Q_NOT_PLACE_FROGPOINTS:
return IsCurveCircle( trk );
+ break;
+ //case Q_CAN_EXTEND:
+ // if (xx->helixTurns > 0) return FALSE;
+ // return TRUE;
+ // break;
+ case Q_CANNOT_PLACE_TURNOUT:
+ return (xx->helixTurns > 0);
+ break;
+ case Q_HAS_VARIABLE_ENDPOINTS:
+ if ((xx->helixTurns >0) || xx->circle) return TRUE;
+ return FALSE;
+ break;
default:
return FALSE;
}
@@ -1337,38 +1382,61 @@ EXPORT void CurveSegProc(
case SEGPROC_TRAVERSE1:
a1 = FindAngle( segPtr->u.c.center, data->traverse1.pos );
- a1 += (segPtr->u.c.radius>0?90.0:-90.0);
- a2 = NormalizeAngle( data->traverse1.angle+a1 );
- data->traverse1.backwards = (a2 < 270 && a2 > 90 );
+ a1 = NormalizeAngle(a1+90); // ClockWise angle
+ // work out within this segment which way we are going
+ a2 = NormalizeAngle( a1 - data->traverse1.angle );
+ data->traverse1.backwards = ((a2 < 270) && (a2 > 90 ));
+ //Find angular distance from end opposite to direction of travel
a2 = FindAngle( segPtr->u.c.center, data->traverse1.pos );
- if ( data->traverse1.backwards == (segPtr->u.c.radius<0) ) {
- a2 = NormalizeAngle( a2-segPtr->u.c.a0 );
+ //A segment may be fractionally too short - limit to angles within segment!
+ int res = AngleInRange(a2,segPtr->u.c.a0,segPtr->u.c.a1);
+ if (res == 1 ) {
+LOG( log_curveSegs, 1, ("CrvSegsAngle miss A%0.3f S%0.3f E%0.3f R%d B%d \n",a2,segPtr->u.c.a0,segPtr->u.c.a1,res,data->traverse1.backwards))
+ a2 = segPtr->u.c.a0;
+ } else if (res == -1) {
+LOG( log_curveSegs, 1, ("CrvSegsAngle miss A%0.3f S%0.3f E%0.3f R%d B%d \n",a2,segPtr->u.c.a0,segPtr->u.c.a1,res,data->traverse1.backwards))
+ a2 = segPtr->u.c.a1+segPtr->u.c.a0;
+ }
+ //Fix issue of angles passing through zero -
+ if ( !data->traverse1.backwards ) {
+ a2 = NormalizeAngle(DifferenceBetweenAngles(segPtr->u.c.a0,a2));
} else {
- a2 = NormalizeAngle( segPtr->u.c.a0+segPtr->u.c.a1-a2 );
+ a2 = NormalizeAngle(DifferenceBetweenAngles(a2,segPtr->u.c.a0+segPtr->u.c.a1));
}
- data->traverse1.dist = a2/360.0*2*M_PI*fabs(segPtr->u.c.radius);
+
+ //Make sure backwards means going towards EP0
+ if (segPtr->u.c.radius<0) data->traverse1.backwards = !data->traverse1.backwards;
+ data->traverse1.dist = a2/360.0*2*M_PI*fabs(segPtr->u.c.radius); //Distance from end in direction of travel
+ data->traverse1.reverse_seg = ((segPtr->u.c.a0>=90) && (segPtr->u.c.a0<270));
+ data->traverse1.negative = (segPtr->u.c.radius < 0);
+ data->traverse1.segs_backwards = FALSE;
+ data->traverse1.BezSegInx = 0;
+LOG( log_curveSegs, 2, (" CrvSegs D=%0.3f A%0.3f B%d \n",data->traverse1.dist,data->traverse1.backwards))
break;
case SEGPROC_TRAVERSE2:
circum = 2*M_PI*segPtr->u.c.radius;
if ( circum < 0 )
circum = - circum;
- d = segPtr->u.c.a1/360.0*circum;
+ d = (segPtr->u.c.a1*circum)/360;
if ( d > data->traverse2.dist ) {
- a2 = (data->traverse2.dist)/circum*360.0;
- if ( data->traverse2.segDir == (segPtr->u.c.radius<0) ) {
- a2 = NormalizeAngle( segPtr->u.c.a0+a2 );
- a1 = a2+90;
- } else {
- a2 = NormalizeAngle( segPtr->u.c.a0+segPtr->u.c.a1-a2 );
- a1 = a2-90;
- }
- PointOnCircle( &data->traverse2.pos, segPtr->u.c.center, fabs(segPtr->u.c.radius), a2 );
+ a2 = (data->traverse2.dist*360.0)/circum;
data->traverse2.dist = 0;
- data->traverse2.angle = a1;
} else {
+ a2 = segPtr->u.c.a1;
data->traverse2.dist -= d;
}
+ if (segPtr->u.c.radius<0) data->traverse2.segDir = !data->traverse2.segDir;
+ if ( !data->traverse2.segDir ) {
+ a2 = NormalizeAngle( segPtr->u.c.a0+a2 );
+ a1 = NormalizeAngle(a2+90);
+ } else {
+ a2 = NormalizeAngle( segPtr->u.c.a0+segPtr->u.c.a1-a2 );
+ a1 = NormalizeAngle(a2-90);
+ }
+ PointOnCircle( &data->traverse2.pos, segPtr->u.c.center, fabs(segPtr->u.c.radius), a2 );
+ data->traverse2.angle = a1;
+
break;
case SEGPROC_DRAWROADBEDSIDE:
@@ -1429,8 +1497,14 @@ EXPORT void CurveSegProc(
data->split.newSeg[s1].u.c.a1 -= a2;
break;
+
case SEGPROC_GETANGLE:
- data->getAngle.angle = NormalizeAngle( FindAngle( data->getAngle.pos, segPtr->u.c.center ) + 90 );
+ data->getAngle.angle = NormalizeAngle( FindAngle( segPtr->u.c.center, data->getAngle.pos ) + 90 );
+ data->getAngle.negative_radius = segPtr->u.c.radius<0;
+ data->getAngle.radius = fabs(segPtr->u.c.radius);
+ data->getAngle.center = segPtr->u.c.center;
+ data->getAngle.backwards = segPtr->u.c.a0>=90 && segPtr->u.c.a0<270;
+ if (data->getAngle.backwards) data->getAngle.angle = NormalizeAngle(data->getAngle.angle+180);
break;
}
}
@@ -1457,13 +1531,14 @@ EXPORT void PlotCurve(
coOrd posx;
switch ( mode ) {
+ case crvCmdFromCornu:
case crvCmdFromEP1:
angle = FindAngle( pos0, pos1 );
d0 = FindDistance( pos0, pos2 )/2.0;
a0 = FindAngle( pos0, pos2 );
a1 = NormalizeAngle( a0 - angle );
LOG( log_curve, 3, ( "P1 = [%0.3f %0.3f] D=%0.3f A0=%0.3f A1=%0.3f\n", pos2.x, pos2.y, d0, a0, a1 ) )
- if (fabs(d0*sin(D2R(a1))) < (4.0/75.0)*mainD.scale) {
+ if ((fabs(d0*sin(D2R(a1))) < (4.0/75.0)*mainD.scale) & (mode == crvCmdFromEP1)) {
LOG( log_curve, 3, ( "Straight: %0.3f < %0.3f\n", d0*sin(D2R(a1)), (4.0/75.0)*mainD.scale ) )
curveData->pos1.x = pos0.x + d0*2.0*sin(D2R(angle));
curveData->pos1.y = pos0.y + d0*2.0*cos(D2R(angle));
@@ -1485,7 +1560,7 @@ LOG( log_curve, 3, ( "Straight: %0.3f < %0.3f\n", d0*sin(D2R(a1)), (4.0/75.0)*ma
else
curveData->curveRadius = d0/sin(D2R(-a1));
}
- if (curveData->curveRadius > 1000) {
+ if (curveData->curveRadius > 1000 && mode == crvCmdFromEP1) {
LOG( log_curve, 3, ( "Straight %0.3f > 1000\n", curveData->curveRadius ) )
curveData->pos1.x = pos0.x + d0*2.0*sin(D2R(angle));
curveData->pos1.y = pos0.y + d0*2.0*cos(D2R(angle));
@@ -1498,9 +1573,11 @@ LOG( log_curve, 3, ( "Straight: %0.3f < %0.3f\n", d0*sin(D2R(a1)), (4.0/75.0)*ma
if (a1 > 0.0) {
curveData->a0 = NormalizeAngle( a2-180 );
curveData->a1 = a1 * 2.0;
+ curveData->negative = FALSE;
} else {
curveData->a1 = (-a1) * 2.0;
curveData->a0 = NormalizeAngle( a2-180-curveData->a1 );
+ curveData->negative = TRUE;
}
curveData->type = curveTypeCurve;
}
@@ -1551,9 +1628,11 @@ LOG( log_curve, 3, ( "Straight: %0.3f < %0.3f\n", d0*sin(D2R(a1)), (4.0/75.0)*ma
if ( r > 0 ) {
curveData->a0 = a0;
curveData->a1 = NormalizeAngle(a1-a0);
+ curveData->negative = FALSE;
} else {
curveData->a0 = a1;
curveData->a1 = NormalizeAngle(a0-a1);
+ curveData->negative = TRUE;
}
curveData->type = curveTypeCurve;
break;
@@ -1584,4 +1663,5 @@ EXPORT void InitTrkCurve( void )
{
T_CURVE = InitObject( &curveCmds );
log_curve = LogFindIndex( "curve" );
+ log_curveSegs = LogFindIndex( "curveSegs");
}
diff --git a/app/bin/tease.c b/app/bin/tease.c
index 3667fe1..ad281df 100644
--- a/app/bin/tease.c
+++ b/app/bin/tease.c
@@ -1,8 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/tease.c,v 1.2 2008-01-20 23:29:15 mni77 Exp $
- *
+/** \file tease.c
* TRANSISTION-CURVES (JOINTS)
- *
*/
/* XTrkCad - Model Railroad CAD
@@ -63,12 +60,20 @@ For a better representation of this, build 'testjoin' and
do 'testjoin psplot 10 10 40 1 | lpr -Ppostscript'
*/
+#include <math.h>
-#include "track.h"
#include "ccurve.h"
+#include "cselect.h"
#include "cstraigh.h"
#include "cjoin.h"
+#include "cundo.h"
+#include "fileio.h"
#include "i18n.h"
+#include "layout.h"
+#include "messages.h"
+#include "param.h"
+#include "track.h"
+#include "utility.h"
static TRKTYP_T T_EASEMENT = -1;
@@ -404,7 +409,7 @@ static track_p NewJoint(
static coOrd qZero = { 0.0, 0.0 };
ANGLE_T az0, a01, b, b01, b1, d, d1;
trk = NewTrack( 0, T_EASEMENT, 2, sizeof *xx );
- SetTrkScale( trk, curScaleInx );
+ SetTrkScale( trk, GetLayoutCurScale() );
xx = GetTrkExtraData( trk );
SetTrkEndPoint( trk, 0, pos0, NormalizeAngle(angle0+180.0) );
SetTrkEndPoint( trk, 1, pos1, NormalizeAngle(angle1+180.0) );
@@ -491,15 +496,15 @@ static struct {
DIST_T l1;
FLOAT_T grade;
descPivot_t pivot;
- LAYER_T layerNumber;
+ unsigned int layerNumber;
} jointData;
typedef enum { E0, Z0, E1, Z1, OR, AL, RR, LL, L0, L1, GR, PV, LY } jointDesc_e;
static descData_t jointDesc[] = {
-/*E0*/ { DESC_POS, N_("End Pt 1: X"), &jointData.endPt[0] },
+/*E0*/ { DESC_POS, N_("End Pt 1: X,Y"), &jointData.endPt[0] },
/*Z0*/ { DESC_DIM, N_("Z"), &jointData.elev[0] },
-/*E1*/ { DESC_POS, N_("End Pt 2: X"), &jointData.endPt[1] },
+/*E1*/ { DESC_POS, N_("End Pt 2: X,Y"), &jointData.endPt[1] },
/*Z1*/ { DESC_DIM, N_("Z"), &jointData.elev[1] },
-/*OR*/ { DESC_POS, N_("Origin: X"), &jointData.orig },
+/*OR*/ { DESC_POS, N_("Origin: X,Y"), &jointData.orig },
/*AL*/ { DESC_ANGLE, N_("Angle"), &jointData.angle },
/*RR*/ { DESC_DIM, N_("R"), &jointData.r },
/*LL*/ { DESC_DIM, N_("L"), &jointData.l },
@@ -1289,7 +1294,7 @@ static BOOL_T MergeJoint(
static BOOL_T GetParamsJoint( int inx, track_p trk, coOrd pos, trackParams_t * params )
{
params->type = curveTypeStraight;
- params->ep = PickUnconnectedEndPoint( pos, trk );
+ params->ep = PickUnconnectedEndPointSilent( pos, trk );
if (params->ep == -1)
return FALSE;
params->lineOrig = GetTrkEndPos(trk,params->ep);
@@ -1516,8 +1521,11 @@ EXPORT void JointSegProc(
else
data->traverse1.dist = JoinD( segPtr->u.j.l1, segPtr->u.j.R, segPtr->u.j.L ) + JoinD( l, segPtr->u.j.R, segPtr->u.j.L );
}
- if ( segPtr->u.j.flip )
+ data->traverse1.reverse_seg = FALSE;
+ if ( segPtr->u.j.flip ) {
data->traverse1.backwards = !data->traverse1.backwards;
+ data->traverse1.reverse_seg = TRUE;
+ }
LOG( log_traverseJoint, 1, ( "TJ0: ?[%0.3f %0.3f] A=%0.3f l=%0.3f J[%0.3f %0.3f] A=%0.3f l0=%0.3f l1=%0.3f R=%0.3f L=%0.3f N:%d F:%d S:%d = a=%0.3f D=%0.3f B=%d\n",
data->traverse1.pos.x, data->traverse1.pos.y, data->traverse1.angle,
l,
@@ -1525,6 +1533,9 @@ LOG( log_traverseJoint, 1, ( "TJ0: ?[%0.3f %0.3f] A=%0.3f l=%0.3f J[%0.3f %0.3f]
segPtr->u.j.l0, segPtr->u.j.l1, segPtr->u.j.R, segPtr->u.j.L,
segPtr->u.j.negate, segPtr->u.j.flip, segPtr->u.j.Scurve,
a, data->traverse1.dist, data->traverse1.backwards ) );
+ data->traverse1.negative = FALSE;
+ data->traverse1.BezSegInx = 0;
+ data->traverse1.segs_backwards = FALSE;
break;
case SEGPROC_TRAVERSE2:
@@ -1632,6 +1643,7 @@ LOG( log_traverseJoint, 1, ( "TJ0: ?[%0.3f %0.3f] A=%0.3f l=%0.3f J[%0.3f %0.3f]
}
}
data->getAngle.angle = a;
+ data->getAngle.radius = 0.0;
break;
}
}
diff --git a/app/bin/track.c b/app/bin/track.c
index bbbf48a..22af292 100644
--- a/app/bin/track.c
+++ b/app/bin/track.c
@@ -1,5 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/track.c,v 1.7 2009-07-05 15:11:02 m_fischer Exp $
+/** \file track.c
+ * Track
*/
/* XTrkCad - Model Railroad CAD
@@ -20,17 +20,29 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#include <assert.h>
#include <time.h>
#include <ctype.h>
#include <stdarg.h>
#include <math.h>
-#include "track.h"
+#include <string.h>
+
#include "ccurve.h"
-#include "cstraigh.h"
#include "cjoin.h"
#include "compound.h"
-#include "i18n.h"
+#include "cselect.h"
+#include "cstraigh.h"
+#include "cundo.h"
+#include "custom.h"
#include "draw.h"
+#include "fileio.h"
+#include "i18n.h"
+#include "layout.h"
+#include "messages.h"
+#include "param.h"
+#include "paths.h"
+#include "track.h"
+#include "utility.h"
#ifndef TRACKDEP
#ifndef FASTTRACK
@@ -64,8 +76,10 @@ static int log_readTracks = 0;
EXPORT wIndex_t trackCount;
EXPORT long drawEndPtV = 2;
+EXPORT long drawUnconnectedEndPt = 0; /**< How do we draw Unconnected EndPts */
EXPORT long centerDrawMode = FALSE; /**< flag to control drawing of circle centers */
+EXPORT long printCenterLines = FALSE; /**< flag to control drawing of centerline in Print */
static BOOL_T exportingTracks = FALSE;
@@ -78,15 +92,15 @@ static dynArr_t trackCmds_da;
EXPORT BOOL_T useCurrentLayer = FALSE;
-EXPORT LAYER_T curTrackLayer;
+EXPORT unsigned int curTrackLayer;
EXPORT coOrd descriptionOff;
EXPORT DIST_T roadbedWidth = 0.0;
EXPORT DIST_T roadbedLineWidth = 3.0/75.0;
-EXPORT DIST_T minTrackRadius;
-EXPORT DIST_T maxTrackGrade = 5.0;
+//EXPORT DIST_T minTrackRadius;
+//EXPORT DIST_T maxTrackGrade = 5.0;
static int suspendElevUpdates = FALSE;
@@ -115,9 +129,9 @@ EXPORT void DescribeTrack( track_cp trk, char * str, CSIZE_T len )
}
-EXPORT DIST_T GetTrkDistance( track_cp trk, coOrd pos )
+EXPORT DIST_T GetTrkDistance( track_cp trk, coOrd * pos )
{
- return trackCmds( GetTrkType(trk) )->distance( trk, &pos );
+ return trackCmds( GetTrkType(trk) )->distance( trk, pos );
}
/**
@@ -133,7 +147,7 @@ EXPORT DIST_T GetTrkDistance( track_cp trk, coOrd pos )
* \return NULL if there is no track, pointer to track otherwise
*/
-EXPORT track_p OnTrack2( coOrd * fp, BOOL_T complain, BOOL_T track, BOOL_T ignoreHidden )
+EXPORT track_p OnTrack2( coOrd * fp, BOOL_T complain, BOOL_T track, BOOL_T ignoreHidden, track_p t )
{
track_p trk;
DIST_T distance, closestDistance = 1000000;
@@ -148,6 +162,7 @@ EXPORT track_p OnTrack2( coOrd * fp, BOOL_T complain, BOOL_T track, BOOL_T ignor
TRK_ITERATE( trk ) {
if ( track && !IsTrack(trk) )
continue;
+ if (trk == t) continue;
if (trk->hi.x < q0.x ||
trk->lo.x > q1.x ||
trk->hi.y < q0.y ||
@@ -186,7 +201,11 @@ EXPORT track_p OnTrack2( coOrd * fp, BOOL_T complain, BOOL_T track, BOOL_T ignor
EXPORT track_p OnTrack( coOrd * fp, BOOL_T complain, BOOL_T track )
{
- return OnTrack2( fp, complain, track, TRUE );
+ return OnTrack2( fp, complain, track, TRUE, NULL );
+}
+
+EXPORT track_p OnTrackIgnore (coOrd * fp, BOOL_T complain, BOOL_T track, track_p t ) {
+ return OnTrack2(fp, complain, track, TRUE, t);
}
@@ -316,7 +335,7 @@ EXPORT void SetTrkScale( track_p trk, SCALEINX_T si )
trk->scale = (char)si;
}
-EXPORT LAYER_T GetTrkLayer( track_p trk )
+EXPORT unsigned int GetTrkLayer( track_p trk )
{
return trk->layer;
}
@@ -490,13 +509,22 @@ EXPORT void SetTrkEndPtCnt( track_p trk, EPINX_T cnt )
memset( &trk->endPt[oldCnt], 0, (cnt-oldCnt) * sizeof *trk->endPt );
}
-
-EXPORT void SetTrkLayer( track_p trk, int layer )
+/**
+ * Set the layer for a track.
+ *
+ * \param trk IN the layer to change the layer for
+ * \param layer IN the new layer for the track
+ */
+void SetTrkLayer( track_p trk, int layer )
{
+ DecrementLayerObjects(trk->layer);
+
if (useCurrentLayer)
- trk->layer = (LAYER_T)curLayer;
+ trk->layer = (unsigned int)curLayer;
else
- trk->layer = (LAYER_T)layer;
+ trk->layer = (unsigned int)layer;
+
+ IncrementLayerObjects(trk->layer);
}
@@ -580,27 +608,36 @@ EXPORT BOOL_T WriteEndPt( FILE * f, track_cp trk, EPINX_T ep )
assert ( endPt != NULL );
if (endPt->track == NULL ||
( exportingTracks && !GetTrkSelected(endPt->track) ) ) {
- rc &= fprintf( f, "\tE " )>0;
+ rc &= fprintf( f, "\tE4 " )>0;
} else {
- rc &= fprintf( f, "\tT %d ", endPt->track->index )>0;
+ rc &= fprintf( f, "\tT4 %d ", endPt->track->index )>0;
}
rc &= fprintf( f, "%0.6f %0.6f %0.6f", endPt->pos.x, endPt->pos.y, endPt->angle )>0;
option = (endPt->option<<8) | (endPt->elev.option&0xFF);
if ( option != 0 ) {
rc &= fprintf( f, " %ld %0.6f %0.6f", option, endPt->elev.doff.x, endPt->elev.doff.y )>0;
- if ( (endPt->elev.option&ELEV_MASK) != ELEV_NONE ) {
- switch ( endPt->elev.option&ELEV_MASK ) {
- case ELEV_DEF:
- rc &= fprintf( f, " %0.6f", endPt->elev.u.height )>0;
- break;
- case ELEV_STATION:
- rc &= fprintf( f, " \"%s\"", PutTitle( endPt->elev.u.name ) )>0;
- break;
- default:
- ;
- }
+ switch ( endPt->elev.option&ELEV_MASK ) {
+ case ELEV_DEF:
+ rc &= fprintf( f, " %0.6f ", endPt->elev.u.height )>0;
+ break;
+ case ELEV_STATION:
+ rc &= fprintf( f, " \"%s\" ", PutTitle( endPt->elev.u.name ) )>0;
+ break;
+ default:
+ rc &= fprintf( f, " 0.0 ")>0;
}
+ } else {
+ rc &= fprintf( f, " 0 0.0 0.0 0.0 ")>0;
}
+ if ((endPt->elev.option&ELEV_MASK) == ELEV_DEF)
+ rc &= fprintf( f, "%0.6f ",endPt->elev.u.height)>0;
+ else
+ rc &= fprintf( f, "0.0 ")>0;
+ long elevVisible = (endPt->elev.option&ELEV_VISIBLE)?1:0;
+ long elevType = endPt->elev.option&ELEV_MASK;
+ long gapType = endPt->option;
+ rc &= fprintf( f, "%ld %ld %ld ", elevVisible, elevType, gapType)>0;
+ rc &= fprintf( f, "%0.6f ", trk->elev)>0;
rc &= fprintf( f, "\n" )>0;
return rc;
}
@@ -652,6 +689,28 @@ EXPORT EPINX_T PickUnconnectedEndPoint( coOrd p, track_cp trk )
return inx;
}
+EXPORT EPINX_T PickUnconnectedEndPointSilent( coOrd p, track_cp trk )
+{
+ EPINX_T inx, i;
+ DIST_T d=10000.0, dd;
+ coOrd pos;
+ inx = -1;
+
+ for ( i=0; i<trk->endCnt; i++ ) {
+ if (trk->endPt[i].track == NULL) {
+ pos = trk->endPt[i].pos;
+ dd=FindDistance(p, pos);
+ if (inx == -1 || dd <= d) {
+ d = dd;
+ inx = i;
+ }
+ }
+ }
+
+ return inx;
+}
+
+
EXPORT EPINX_T GetEndPtConnectedToMe( track_p trk, track_p me )
{
@@ -805,6 +864,15 @@ EXPORT BOOL_T MakeParallelTrack(
return FALSE;
}
+EXPORT BOOL_T RebuildTrackSegs(
+ track_p trk)
+{
+ if (trackCmds(trk->type)->rebuildSegs)
+ return trackCmds(trk->type)->rebuildSegs(trk);
+ return FALSE;
+}
+
+
/*****************************************************************************
*
@@ -855,7 +923,7 @@ LOG( log_track, 1, ( "NewTrack( T%d, t%d, E%d, X%ld)\n", index, type, endCnt, ex
trk->index = index;
trk->type = type;
trk->layer = curLayer;
- trk->scale = (char)curScaleInx;
+ trk->scale = (char)GetLayoutCurScale();
trk->bits = TB_VISIBLE;
trk->elevMode = ELEV_ALONE;
trk->elev = 0;
@@ -874,6 +942,7 @@ LOG( log_track, 1, ( "NewTrack( T%d, t%d, E%d, X%ld)\n", index, type, endCnt, ex
trk->extraSize = extraSize;
UndoNew( trk );
trackCount++;
+ IncrementLayerObjects(curLayer);
InfoCount( trackCount );
return trk;
}
@@ -971,10 +1040,12 @@ LOG( log_track, 4, ( "DeleteTrack(T%d)\n", GetTrkIndex(trk) ) )
}
CheckDeleteSwitchmotor( trk );
CheckDeleteBlock( trk );
- UndoDelete( trk );
- MainRedraw();
+ DecrementLayerObjects(trk->layer);
trackCount--;
AuditTracks( "deleteTrack T%d", trk->index);
+ UndoDelete(trk); /**< Attention: trk is invalidated during that call */
+ MainRedraw();
+ MapRedraw();
InfoCount( trackCount );
return TRUE;
}
@@ -1296,8 +1367,10 @@ static void AuditPrint( char * msg )
{
time_t clock;
if (auditFile == NULL) {
- sprintf( message, "%s%s%s", workingDir, FILE_SEP_CHAR, sAuditF );
- auditFile = fopen( message, "a+" );
+ char *path;
+ MakeFullpath(&path, workingDir, sAuditF, NULL);
+ auditFile = fopen( path, "a+" );
+ free(path);
if (auditFile == NULL) {
NoticeMessage( MSG_OPEN_FAIL, _("Continue"), NULL, _("Audit"), message, strerror(errno) );
auditIgnore = TRUE;
@@ -1524,6 +1597,7 @@ EXPORT STATUS_T EndPtDescriptionMove(
if (action != C_UP)
DrawLine( &tempD, p0, p1, 0, wDrawColorBlack );
MainRedraw();
+ MapRedraw();
return action==C_UP?C_TERMINATE:C_CONTINUE;
case C_REDRAW:
@@ -1697,9 +1771,11 @@ EXPORT BOOL_T SplitTrack( track_p trk, coOrd pos, EPINX_T ep, track_p *leftover,
*leftover = NULL;
LOG( log_track, 2, ( "SplitTrack( T%d[%d], (%0.3f %0.3f)\n", trk->index, ep, pos.x, pos.y ) )
- if ((splitCmd = trackCmds(trk->type)->split) == NULL) {
- ErrorMessage( MSG_CANT_SPLIT_TRK, trackCmds(trk->type)->name );
- return FALSE;
+ if (((splitCmd = trackCmds(trk->type)->split) == NULL)) {
+ if (!(FindDistance( trk->endPt[ep].pos, pos) <= minLength)) {
+ ErrorMessage( MSG_CANT_SPLIT_TRK, trackCmds(trk->type)->name );
+ return FALSE;
+ }
}
UndrawNewTrack( trk );
UndoModify( trk );
@@ -1720,11 +1796,6 @@ LOG( log_track, 2, ( "SplitTrack( T%d[%d], (%0.3f %0.3f)\n", trk->index, ep, pos
*leftover = trk2;
DrawNewTrack( trk );
-#ifdef LATER
- } else if ( IsTurnout(trk) ) {
- ErrorMessage( MSG_CANT_SPLIT_TRK, _("Turnout") );
- return FALSE;
-#endif
} else if ( epCnt == 2 &&
(d = FindDistance( trk->endPt[1-ep].pos, pos )) <= minLength) {
@@ -1737,15 +1808,9 @@ LOG( log_track, 2, ( "SplitTrack( T%d[%d], (%0.3f %0.3f)\n", trk->index, ep, pos
DisconnectTracks( trk, 1-ep, trk2, ep2 );
LOG( log_track, 2, ( " at endPt with T%d[%d]\n", trk2->index, ep2 ) )
DrawNewTrack( trk2 );
-#ifdef LATER
- *trk = trk2;
- *ep = ep1;
- *leftover = trk;
-#endif
+
} else {
-#ifdef LATER
- *trk = NULL;
-#endif
+
LOG( log_track, 2, ( " at endPt (no connection)\n") )
}
DrawNewTrack( trk );
@@ -1833,6 +1898,7 @@ EXPORT BOOL_T TraverseTrack(
return FALSE;
trvTrk->length = -1;
trvTrk->dist = 0.0;
+
}
return TRUE;
}
@@ -1954,22 +2020,6 @@ EXPORT BOOL_T GetTrackParams( int inx, track_p trk, coOrd pos, trackParams_t * p
return trackCmds(trk->type)->getTrackParams( inx, trk, pos, params );
} else {
ASSERT( FALSE ); /* CHECKME */
-#ifdef LATER
- switch ( inx ) {
- case PARAMS_1ST_JOIN:
- case PARAMS_2ND_JOIN:
- ErrorMessage( MSG_JOIN_TRK, (inx==PARAMS_1ST_JOIN?_("First"):_("Second")) );
- break;
- case PARAMS_EXTEND:
- ErrorMessage( MSG_CANT_EXTEND );
- break;
- case PARAMS_PARALLEL:
- ErrorMessage( MSG_INV_TRK_PARALLEL );
- break;
- default:
- ErrorMessage( MSG_INVALID_TRK );
- }
-#endif
return FALSE;
}
}
@@ -2113,15 +2163,7 @@ EXPORT void DrawTie(
Translate( &p[2], pos, angle+180, length );
Translate( &p[3], p[2], angle-90, width );
Translate( &p[2], p[2], angle+90, width );
-#ifdef LATER
- lo = hi = p[0];
- for ( i=1; i<4; i++ ) {
- if ( p[i].x < lo.x ) lo.x = p[i].x;
- if ( p[i].y < lo.y ) lo.y = p[i].y;
- if ( p[i].x > hi.x ) hi.x = p[i].x;
- if ( p[i].y > hi.y ) hi.y = p[i].y;
- }
-#endif
+
if ( d == &mainD ) {
lo.x -= RBORDER/mainD.dpi*mainD.scale;
lo.y -= TBORDER/mainD.dpi*mainD.scale;
@@ -2150,7 +2192,7 @@ EXPORT void DrawCurvedTies(
ANGLE_T a1,
wDrawColor color )
{
- tieData_p td = GetScaleTieData(GetTrkScale(trk));
+ tieData_p td;
DIST_T len;
ANGLE_T ang, dang;
coOrd pos;
@@ -2160,6 +2202,9 @@ EXPORT void DrawCurvedTies(
return;
if ( trk == NULL )
return;
+
+ td = GetScaleTieData(GetTrkScale(trk));
+
if ( (!GetTrkVisible(trk)) && drawTunnel!=DRAW_TUNNEL_SOLID )
return;
if (color == wDrawColorBlack)
@@ -2235,7 +2280,8 @@ LOG( log_track, 4, ( "DST( (%0.3f %0.3f) R%0.3f A%0.3f..%0.3f)\n",
} else if (d->options & DC_QUICK) {
DrawArc( d, p, r, a0, a1, ((d->scale<32) && centerDrawMode && !(options&DTS_NOCENTER)) ? 1 : 0, 0, color );
} else {
- if ( (d->scale <= 1 && (d->options&DC_SIMPLE)==0) || (d->options&DC_CENTERLINE)!=0 ) {
+ if ( (d->scale <= 1 && (d->options&DC_SIMPLE)==0) || (d->options&DC_CENTERLINE)!=0
+ || (d->scale <= scale2rail/2 && d->options&DC_PRINT && printCenterLines)) { // if printing two rails respect print CenterLine option
long options = d->options;
d->options |= DC_DASH;
DrawArc( d, p, r, a0, a1, 0, 0, color );
@@ -2263,7 +2309,7 @@ EXPORT void DrawStraightTies(
coOrd p1,
wDrawColor color )
{
- tieData_p td = GetScaleTieData(GetTrkScale(trk));
+ tieData_p td;
DIST_T tieOff0=0.0, tieOff1=0.0;
DIST_T len, dlen;
coOrd pos;
@@ -2274,6 +2320,8 @@ EXPORT void DrawStraightTies(
return;
if ( trk == NULL )
return;
+
+ td = GetScaleTieData(GetTrkScale(trk));
if ( (!GetTrkVisible(trk)) && drawTunnel!=DRAW_TUNNEL_SOLID )
return;
if ( color == wDrawColorBlack )
@@ -2350,7 +2398,8 @@ LOG( log_track, 4, ( "DST( (%0.3f %0.3f) .. (%0.3f..%0.3f)\n",
} else if (d->options&DC_QUICK) {
DrawLine( d, p0, p1, 0, color );
} else {
- if ( (d->scale <= 1 && (d->options&DC_SIMPLE)==0) || (d->options&DC_CENTERLINE)!=0 ) {
+ if ( (d->scale <= 1 && (d->options&DC_SIMPLE)==0) || (d->options&DC_CENTERLINE)!=0
+ || (d->scale <= scale2rail/2 && d->options&DC_PRINT && printCenterLines)) { // if printing two rails respect print CenterLine option
long options = d->options;
d->options |= DC_DASH;
DrawLine( d, p0, p1, 0, color );
@@ -2393,7 +2442,7 @@ EXPORT wDrawColor GetTrkColor( track_p trk, drawCmd_p d )
}
}
if ( (d->options&(DC_GROUP)) == 0 ) {
- if ( grade > maxTrackGrade )
+ if ( grade > GetLayoutMaxTrackGrade())
return exceptionColor;
if ( QueryTrack( trk, Q_EXCEPTION ) )
return exceptionColor;
@@ -2406,7 +2455,7 @@ EXPORT wDrawColor GetTrkColor( track_p trk, drawCmd_p d )
}
if ( (d->options&(DC_GROUP)) == 0 ) {
if ( (IsTrack(trk)?(colorLayers&1):(colorLayers&2)) )
- return GetLayerColor((LAYER_T)curTrackLayer);
+ return GetLayerColor((unsigned int)curTrackLayer);
}
return wDrawColorBlack;
}
@@ -2434,7 +2483,7 @@ EXPORT void DrawTrack( track_cp trk, drawCmd_p d, wDrawColor color )
return;
if ( (IsTrack(trk)?(colorLayers&1):(colorLayers&2)) &&
d != &mapD && color == wDrawColorBlack )
- color = GetLayerColor((LAYER_T)curTrackLayer);
+ color = GetLayerColor((unsigned int)curTrackLayer);
scale2rail = (d->options&DC_PRINT)?(twoRailScale*2+1):twoRailScale;
if ( (!inDrawTracks) &&
tieDrawMode!=TIEDRAWMODE_NONE &&
@@ -2516,11 +2565,11 @@ static void DrawUnconnectedEndPt( drawCmd_p d, coOrd p, ANGLE_T a, DIST_T trackG
Translate( &p0, p, a, trackGauge );
Translate( &p1, p, a-180.0, trackGauge );
DrawLine( d, p0, p1, 0, color );
- if (d->scale < 8) {
+ if (d->scale < 8 || drawUnconnectedEndPt > 0) {
Translate( &p, p, a+90.0, 0.2 );
Translate( &p0, p, a, trackGauge );
Translate( &p1, p, a-180.0, trackGauge );
- DrawLine( d, p0, p1, 0, color );
+ DrawLine( d, p0, p1, (drawUnconnectedEndPt>0)?4:0, (drawUnconnectedEndPt>1)?exceptionColor:color );
}
}
@@ -2605,7 +2654,7 @@ EXPORT void DrawEndPt(
EPINX_T ep,
wDrawColor color )
{
- coOrd p, pp;
+ coOrd p;
ANGLE_T a;
track_p trk1;
coOrd p0, p1, p2;
@@ -2630,11 +2679,8 @@ EXPORT void DrawEndPt(
if (labelScale >= d->scale)
DrawEndElev( d, trk, ep, color );
- if ( d->scale >= ((d->options&DC_PRINT)?(twoRailScale*2+1):twoRailScale) )
- return;
-
trk1 = GetTrkEndTrk(trk,ep);
- pp = p = GetTrkEndPos( trk, ep );
+ p = GetTrkEndPos( trk, ep );
a = GetTrkEndAngle( trk, ep ) + 90.0;
trackGauge = GetTrkGauge(trk);
@@ -2643,6 +2689,9 @@ EXPORT void DrawEndPt(
return;
}
+ if ( d->scale >= ((d->options&DC_PRINT)?(twoRailScale*2+1):twoRailScale) )
+ return;
+
sepBoundary = FALSE;
if ((d->options&DC_PRINT)==0 && importTrack == NULL && GetTrkSelected(trk) && (!GetTrkSelected(trk1))) {
DIST_T len;
@@ -2734,14 +2783,13 @@ EXPORT void DrawTracks( drawCmd_p d, DIST_T scale, coOrd orig, coOrd size )
{
track_cp trk;
TRKINX_T inx;
- wIndex_t count;
+ wIndex_t count = 0;
coOrd lo, hi;
BOOL_T doSelectRecount = FALSE;
inDrawTracks = TRUE;
- count = 0;
InfoCount( 0 );
- count = 0;
+
d->options |= DC_TIES;
TRK_ITERATE( trk ) {
if ( (d->options&DC_PRINT) != 0 &&
@@ -2779,43 +2827,11 @@ EXPORT void DrawTracks( drawCmd_p d, DIST_T scale, coOrd orig, coOrd size )
}
-EXPORT void RedrawLayer( LAYER_T l, BOOL_T draw )
+EXPORT void RedrawLayer( unsigned int l, BOOL_T draw )
{
MainRedraw();
-#ifdef LATER
- track_cp trk;
- track_cp trk1;
- EPINX_T ep;
- wIndex_t count;
- coOrd hi, lo;
+ MapRedraw();
- count = 0;
- InfoCount( 0 );
- TRK_ITERATE( trk ) {
- if (GetTrkLayer(trk) != l)
- continue;
- GetBoundingBox( trk, &hi, &lo );
- if ( !OFF_MAIND( lo, hi ) ) {
- if ( GetLayerVisible( l ) ) {
- DrawTrack( trk, &mainD, draw?wDrawColorBlack:wDrawColorWhite );
- }
- for (ep=0; ep<GetTrkEndPtCnt(trk); ep++) {
- trk1 = GetTrkEndTrk( trk, ep );
- if ( trk1 && GetTrkLayer(trk1) != l && GetLayerVisible(GetTrkLayer(trk1)) ) {
- DrawEndPt( &mainD, trk1, GetEndPtConnectedToMe( trk1, trk ),
- draw?wDrawColorBlack:wDrawColorWhite );
- }
- }
- count++;
- if (count%10 == 0)
- InfoCount( count );
- }
- if (draw)
- ClrTrkBits( trk, TB_SELECTED );
- }
- InfoCount( trackCount );
- SelectRecount();
-#endif
}
diff --git a/app/bin/track.h b/app/bin/track.h
index e26a47a..e39a98f 100644
--- a/app/bin/track.h
+++ b/app/bin/track.h
@@ -1,5 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/track.h,v 1.3 2009-05-25 18:11:03 m_fischer Exp $
+/** \file track.h
+ *
*/
/* XTrkCad - Model Railroad CAD
@@ -23,24 +23,9 @@
#ifndef TRACK_H
#define TRACK_H
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#ifndef WINDOWS
-#include <unistd.h>
-#endif
-#include <math.h>
-#ifdef HAVE_MALLOC_H
-#include <malloc.h>
-#endif
-#include <string.h>
-
-#include "wlib.h"
#include "common.h"
-#include "utility.h"
#include "draw.h"
-#include "misc.h"
-
+#include "misc2.h"
extern TRKTYP_T T_NOTRACK;
@@ -51,19 +36,19 @@ extern track_p tempTrack;
extern wIndex_t trackCount;
extern long drawTunnel;
extern long drawEndPtV;
+extern long drawUnconnectedEndPt;
extern long centerDrawMode;
extern wDrawColor selectedColor;
extern wDrawColor normalColor;
extern BOOL_T useCurrentLayer;
-extern LAYER_T curTrackLayer;
+extern unsigned int curTrackLayer;
extern coOrd descriptionOff;
extern DIST_T roadbedWidth;
extern DIST_T roadbedLineWidth;
+extern long printCenterLines;
extern long drawElevations;
extern wDrawColor elevColorIgnore;
extern wDrawColor elevColorDefined;
-extern DIST_T minTrackRadius;
-extern DIST_T maxTrackGrade;
extern wDrawColor exceptionColor;
#define TIEDRAWMODE_NONE (0)
#define TIEDRAWMODE_OUTLINE (1)
@@ -81,24 +66,36 @@ extern int pathMax;
extern BOOL_T onTrackInSplit;
-typedef enum { curveTypeNone, curveTypeCurve, curveTypeStraight } curveType_e;
+typedef enum { curveTypeNone, curveTypeCurve, curveTypeStraight, curveTypeBezier, curveTypeCornu } curveType_e;
#define PARAMS_1ST_JOIN (0)
#define PARAMS_2ND_JOIN (1)
#define PARAMS_EXTEND (2)
#define PARAMS_PARALLEL (3)
+#define PARAMS_BEZIER (4) //Not used (yet)
+#define PARAMS_CORNU (5) //Called to get end characteristics
typedef struct {
- curveType_e type;
- EPINX_T ep;
- DIST_T len;
- ANGLE_T angle;
- coOrd lineOrig;
- coOrd lineEnd;
- coOrd arcP;
- DIST_T arcR;
- ANGLE_T arcA0, arcA1;
+ curveType_e type; //Straight, Curve, Bezier, Cornu
+ EPINX_T ep; //End point that is nearby pos
+ DIST_T len; //Length of track
+ ANGLE_T angle; //Angle at end of track
+ coOrd lineOrig; //Start of straight
+ coOrd lineEnd; //End of Straight (or zero for Turnout)
+ coOrd arcP; //center or zero
+ DIST_T arcR; //radius or zero
+ ANGLE_T arcA0, arcA1; //Start angle and angular length (clockwise)
long helixTurns;
+ ANGLE_T track_angle;
+ BOOL_T circleOrHelix; //Track is circle or Helix
+ coOrd bezierPoints[4]; //Bezier Ends and CPs
+ coOrd cornuEnd[2]; //Cornu Ends
+ ANGLE_T cornuAngle[2]; //Angle at Cornu Ends
+ DIST_T cornuRadius[2]; //Radius at Cornu Ends
+ coOrd cornuCenter[2]; //Center at Cornu Ends
+ coOrd ttcenter; //Turntable
+ DIST_T ttradius; //Turntable
+
} trackParams_t;
#define Q_CANNOT_BE_ON_END (1)
@@ -118,13 +115,20 @@ typedef struct {
#define Q_NOT_PLACE_FROGPOINTS (15)
#define Q_HAS_DESC (16)
#define Q_MODIFY_REDRAW_DONT_UNDRAW_TRACK (17)
+#define Q_CAN_MODIFY_CONTROL_POINTS (18) // Is T_BEZIER or T_BEZLIN
+#define Q_IS_CORNU (19) // Is T_CORNU
+#define Q_MODIFY_CAN_SPLIT (20) // Is able to be Split
+#define Q_CAN_EXTEND (21) // Add extra curve or straight in CORNU MODIFY
+#define Q_CAN_ADD_ENDPOINTS (22) // Is T_TURNTABLE
+#define Q_HAS_VARIABLE_ENDPOINTS (23) // Is Helix or Circle
+#define Q_CORNU_CAN_MODIFY (24) // can be modified by CORNU MODIFY
typedef struct {
- track_p trk;
- DIST_T length;
- DIST_T dist;
- coOrd pos;
- ANGLE_T angle;
+ track_p trk; // IN Current Track OUT Next Track
+ DIST_T length; // IN How far to go
+ DIST_T dist; // OUT how far left = 0 if found
+ coOrd pos; // IN/OUT - where we are, where we will be // IN/OUT - where we are now
+ ANGLE_T angle; // IN/OUT - angle now
} traverseTrack_t, *traverseTrack_p;
@@ -159,6 +163,7 @@ typedef struct {
BOOL_T (*checkTraverse)( track_p, coOrd );
BOOL_T (*makeParallel)( track_p, coOrd, DIST_T, track_p *, coOrd *, coOrd * );
void (*drawDesc)( track_p, drawCmd_p, wDrawColor );
+ BOOL_T (*rebuildSegs)(track_p);
} trackCmd_t;
@@ -187,18 +192,30 @@ typedef struct {
dynArr_t tempEndPts_da;
#define tempEndPts(N) DYNARR_N( trkEndPt_t, tempEndPts_da, N )
+typedef enum { FREEFORM, RECTANGLE
+} PolyType_e;
typedef struct {
char type;
wDrawColor color;
DIST_T width;
+ dynArr_t bezSegs; //placed here to avoid overwrites
union {
struct {
- coOrd pos[2];
+ coOrd pos[4];
ANGLE_T angle;
long option;
} l;
struct {
+ coOrd pos[4];
+ ANGLE_T angle0;
+ ANGLE_T angle3;
+ DIST_T minRadius;
+ DIST_T radius0;
+ DIST_T radius3;
+ DIST_T length;
+ } b;
+ struct {
coOrd center;
ANGLE_T a0, a1;
DIST_T radius;
@@ -224,14 +241,17 @@ typedef struct {
coOrd * pts;
coOrd orig;
ANGLE_T angle;
+ PolyType_e polyType;
} p;
} u;
} trkSeg_t, * trkSeg_p;
#define SEG_STRTRK ('S')
#define SEG_CRVTRK ('C')
+#define SEG_BEZTRK ('W')
#define SEG_STRLIN ('L')
#define SEG_CRVLIN ('A')
+#define SEG_BEZLIN ('H')
#define SEG_JNTTRK ('J')
#define SEG_FILCRCL ('G')
#define SEG_POLY ('Y')
@@ -247,7 +267,7 @@ typedef struct {
#define SEG_DIMLIN ('M')
#define SEG_TBLEDGE ('Q')
-#define IsSegTrack( S ) ( (S)->type == SEG_STRTRK || (S)->type == SEG_CRVTRK || (S)->type == SEG_JNTTRK )
+#define IsSegTrack( S ) ( (S)->type == SEG_STRTRK || (S)->type == SEG_CRVTRK || (S)->type == SEG_JNTTRK || (S)->type == SEG_BEZTRK)
dynArr_t tempSegs_da;
#define tempSegs(N) DYNARR_N( trkSeg_t, tempSegs_da, N )
@@ -295,24 +315,31 @@ void DrawSegsO(
DIST_T trackGauge,
wDrawColor color,
long options );
-ANGLE_T GetAngleSegs( wIndex_t, trkSeg_p, coOrd, wIndex_t * );
+ANGLE_T GetAngleSegs( wIndex_t, trkSeg_p, coOrd *, wIndex_t *, DIST_T *, BOOL_T *, wIndex_t *, BOOL_T * );
void RecolorSegs( wIndex_t, trkSeg_p, wDrawColor );
BOOL_T ReadSegs( void );
BOOL_T WriteSegs( FILE * f, wIndex_t segCnt, trkSeg_p segs );
+BOOL_T WriteSegsEnd(FILE * f, wIndex_t segCnt, trkSeg_p segs, BOOL_T writeEnd);
typedef union {
struct {
- coOrd pos; /* IN */
- ANGLE_T angle;
- DIST_T dist; /* OUT */
- BOOL_T backwards;
- } traverse1;
+ coOrd pos; /* IN the point to get to */
+ ANGLE_T angle; /* IN is the angle that the object starts at (-ve for forwards) */
+ DIST_T dist; /* OUT is how far it is along the track to get to pos*/
+ BOOL_T backwards; /* OUT which way are we going? */
+ BOOL_T reverse_seg; /* OUT the seg is backwards curve */
+ BOOL_T negative; /* OUT the curve is negative */
+ int BezSegInx; /* OUT for Bezier Seg - the segment we are on in Bezier */
+ BOOL_T segs_backwards; /* OUT for Bezier Seg - the direction of the overall Bezier */
+ } traverse1; // Find dist between pos and end of track that starts with angle set backwards
struct {
- EPINX_T segDir; /* IN */
- DIST_T dist; /* IN/OUT */
- coOrd pos; /* OUT */
- ANGLE_T angle;
- } traverse2;
+ BOOL_T segDir; /* IN Direction to go in this seg*/
+ int BezSegInx; /* IN for Bezier Seg which element to start with*/
+ BOOL_T segs_backwards; /* IN for Bezier Seg which way to go down the array*/
+ DIST_T dist; /* IN/OUT In = distance to go, Out = distance left */
+ coOrd pos; /* OUT = point reached if dist = 0 */
+ ANGLE_T angle; /* OUT = angle at point */
+ } traverse2; //Return distance left (or 0) and angle and pos when going dist from segDir end
struct {
int first, last; /* IN */
ANGLE_T side;
@@ -324,15 +351,15 @@ typedef union {
drawCmd_p d;
} drawRoadbedSide;
struct {
- coOrd pos1; /* IN/OUT */
- DIST_T dd; /* OUT */
+ coOrd pos1; /* IN pos to find */
+ DIST_T dd; /* OUT distance from nearest point in seg to input pos */
} distance;
struct {
track_p trk; /* OUT */
EPINX_T ep[2];
} newTrack;
struct {
- DIST_T length;
+ DIST_T length; /* OUT */
} length;
struct {
coOrd pos; /* IN */
@@ -340,9 +367,14 @@ typedef union {
trkSeg_t newSeg[2];
} split;
struct {
- coOrd pos; /* IN */
- ANGLE_T angle; /* OUT */
- } getAngle;
+ coOrd pos; /* IN Pos to find nearest to - OUT found pos on curve*/
+ ANGLE_T angle; /* OUT angle at pos - (-ve if backwards)*/
+ BOOL_T negative_radius; /* OUT Radius <0? */
+ BOOL_T backwards; /* OUT Seg is backwards */
+ DIST_T radius; /* OUT radius at pos */
+ coOrd center; /* OUT center of curvature at pos (0 = straight)*/
+ int bezSegInx; /* OUT if a bezier proc, the index of the sub segment */
+ } getAngle; // Get pos on seg nearest, angle at that (-ve for forwards)
} segProcData_t, *segProcData_p;
typedef enum {
SEGPROC_TRAVERSE1,
@@ -359,6 +391,8 @@ void SegProc( segProc_e, trkSeg_p, segProcData_p );
void StraightSegProc( segProc_e, trkSeg_p, segProcData_p );
void CurveSegProc( segProc_e, trkSeg_p, segProcData_p );
void JointSegProc( segProc_e, trkSeg_p, segProcData_p );
+void BezierSegProc( segProc_e, trkSeg_p, segProcData_p ); //Used in Cornu join
+void CleanSegs( dynArr_t *);
@@ -416,7 +450,7 @@ void SetTrkScale( track_p, SCALEINX_T );
BOOL_T GetTrkSelected( track_p );
BOOL_T GetTrkVisible( track_p );
void SetTrkVisible( track_p, BOOL_T );
-LAYER_T GetTrkLayer( track_p );
+unsigned int GetTrkLayer( track_p );
void SetBoundingBox( track_p, coOrd, coOrd );
void GetBoundingBox( track_p, coOrd*, coOrd* );
EPINX_T GetTrkEndPtCnt( track_p );
@@ -465,6 +499,7 @@ void SetTrkEndPtCnt( track_p, EPINX_T );
BOOL_T WriteEndPt( FILE *, track_cp, EPINX_T );
EPINX_T PickEndPoint( coOrd, track_cp );
EPINX_T PickUnconnectedEndPoint( coOrd, track_cp );
+EPINX_T PickUnconnectedEndPointSilent( coOrd, track_cp );
void AuditTracks( char *, ... );
void CheckTrackLength( track_cp );
@@ -501,9 +536,10 @@ void DrawStraightTies( drawCmd_p, track_p, coOrd, coOrd, wDrawColor );
void DrawStraightTrack( drawCmd_p, coOrd, coOrd, ANGLE_T, track_p, DIST_T, wDrawColor, long );
ANGLE_T GetAngleAtPoint( track_p, coOrd, EPINX_T *, EPINX_T * );
-DIST_T GetTrkDistance( track_cp, coOrd );
+DIST_T GetTrkDistance( track_cp, coOrd *);
track_p OnTrack( coOrd *, INT_T, BOOL_T );
-track_p OnTrack2( coOrd *, INT_T, BOOL_T, BOOL_T );
+track_p OnTrackIgnore(coOrd *, INT_T, BOOL_T , track_p );
+track_p OnTrack2( coOrd *, INT_T, BOOL_T, BOOL_T, track_p );
void ComputeRectBoundingBox( track_p, coOrd, coOrd );
void ComputeBoundingBox( track_p );
@@ -513,7 +549,7 @@ void DrawEndElev( drawCmd_p, track_p, EPINX_T, wDrawColor );
wDrawColor GetTrkColor( track_p, drawCmd_p );
void DrawTrack( track_cp, drawCmd_p, wDrawColor );
void DrawTracks( drawCmd_p, DIST_T, coOrd, coOrd );
-void RedrawLayer( LAYER_T, BOOL_T );
+void RedrawLayer( unsigned int, BOOL_T );
void DrawNewTrack( track_cp );
void DrawOneTrack( track_cp, drawCmd_p );
void UndrawNewTrack( track_cp );
@@ -547,6 +583,7 @@ void ConnectTracks( track_p, EPINX_T, track_p, EPINX_T );
BOOL_T ReconnectTrack( track_p, EPINX_T, track_p, EPINX_T );
void DisconnectTracks( track_p, EPINX_T, track_p, EPINX_T );
BOOL_T ConnectAbuttingTracks( track_p, EPINX_T, track_p, EPINX_T );
+BOOL_T ConnectTurntableTracks(track_p, EPINX_T, track_p, EPINX_T );
BOOL_T SplitTrack( track_p, coOrd, EPINX_T, track_p *leftover, BOOL_T );
BOOL_T TraverseTrack( traverseTrack_p, DIST_T * );
BOOL_T RemoveTrack( track_p*, EPINX_T*, DIST_T* );
@@ -560,6 +597,7 @@ BOOL_T QueryTrack( track_p, int );
void UngroupTrack( track_p );
BOOL_T IsTrack( track_p );
char * GetTrkTypeName( track_p );
+BOOL_T RebuildTrackSegs(track_p);
DIST_T GetFlexLength( track_p, EPINX_T, coOrd * );
void LabelLengths( drawCmd_p, track_p, wDrawColor );
@@ -576,8 +614,6 @@ void AdvancePositionIndicator( track_p, coOrd, coOrd *, ANGLE_T * );
BOOL_T MakeParallelTrack( track_p, coOrd, DIST_T, track_p *, coOrd *, coOrd * );
-#include "cundo.h"
-#include "cselect.h"
/* cmisc.c */
wIndex_t describeCmdInx;
@@ -600,7 +636,7 @@ typedef struct {
wControl_p control0;
wControl_p control1;
wPos_t posy;
- } descData_t, * descData_p;
+ } descData_t, * descData_p;
typedef void (*descUpdate_t)( track_p, int, descData_p, BOOL_T );
void DoDescribe( char *, track_p, descData_p, descUpdate_t );
void DescribeCancel( void );
@@ -632,6 +668,7 @@ void DrawTrackElev( track_p, drawCmd_p, BOOL_T );
/* cdraw.c */
track_p MakeDrawFromSeg( coOrd, ANGLE_T, trkSeg_p );
BOOL_T OnTableEdgeEndPt( track_p, coOrd * );
+BOOL_T GetClosestEndPt( track_p, coOrd * );
BOOL_T ReadTableEdge( char * );
BOOL_T ReadText( char * );
diff --git a/app/bin/trackx.h b/app/bin/trackx.h
index 6b46140..9f24e7c 100644
--- a/app/bin/trackx.h
+++ b/app/bin/trackx.h
@@ -1,5 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/trackx.h,v 1.1 2005-12-07 15:47:39 rc-flyer Exp $
+/** \file trackx.h
+ *
*/
/* XTrkCad - Model Railroad CAD
@@ -24,13 +24,16 @@
#ifndef TRACKX_H
#define TRACKX_H
+#include "common.h"
+#include "track.h"
+
struct extraData;
typedef struct track_t {
struct track_t *next;
TRKINX_T index;
TRKTYP_T type;
- LAYER_T layer;
+ unsigned int layer;
signed char scale;
BOOL_T modified:1;
BOOL_T deleted:1;
diff --git a/app/bin/trkseg.c b/app/bin/trkseg.c
index 972463f..9517a09 100644
--- a/app/bin/trkseg.c
+++ b/app/bin/trkseg.c
@@ -1,5 +1,5 @@
-/** \file trkseg.c
- * Modification and drawing of track segments
+/*
+ * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/trkseg.c,v 1.2 2006-05-30 16:11:55 m_fischer Exp $
*/
/* XTrkCad - Model Railroad CAD
@@ -20,18 +20,44 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#include <track.h>
#include <time.h>
#include <ctype.h>
+#include <math.h>
#include <stdarg.h>
#include "track.h"
+#include <common.h>
+#include <cbezier.h>
+#include <string.h>
+
+#include <tbezier.h>
+
#include "cjoin.h"
+#include "fileio.h"
+#include "param.h"
+#include "track.h"
+#include "utility.h"
+#include "misc.h"
+
/*****************************************************************************
*
* TRACK SEGMENTS
*
+ * Notes: Segments are used
+ * 1. as temporary elements during editing operations
+ * 2. as a means of grouping primitives for compounds
+ * 3. as the way of drawing and operating on Bezier curves
+ *
+ * They are stored as dynamic arrays which can be displayed and operated on as sets.
+ *
*/
+
+/*
+ * Build a Segment that has a radius and passes through two points. This uses the knowledge
+ * that the center of curve is always on an orthogonal line through the bisection of a chord.
+ */
EXPORT void ComputeCurvedSeg(
trkSeg_p s,
DIST_T radius,
@@ -66,7 +92,7 @@ EXPORT coOrd GetSegEndPt(
ANGLE_T * angleR )
{
coOrd pos;
- ANGLE_T angle, a, a0, a1;
+ ANGLE_T angle, a, a0, a1 = 0.0;
DIST_T r;
POS_T x0, y0, x1, y1;
@@ -114,7 +140,12 @@ EXPORT coOrd GetSegEndPt(
case SEG_JNTTRK:
pos = GetJointSegEndPos( segPtr->u.j.pos, segPtr->u.j.angle, segPtr->u.j.l0, segPtr->u.j.l1, segPtr->u.j.R, segPtr->u.j.L, segPtr->u.j.negate, segPtr->u.j.flip, segPtr->u.j.Scurve, ep, &angle );
break;
- default:
+ case SEG_BEZTRK:
+ case SEG_BEZLIN:
+ if (ep ==1) pos = segPtr->u.b.pos[3]; //For Bezier, use the End Points of the overall curve
+ else pos = segPtr->u.b.pos[0];
+ break;
+ default:
AbortProg("GetSegCntPt(%c)", segPtr->type );
}
if ( angleR )
@@ -123,7 +154,7 @@ EXPORT coOrd GetSegEndPt(
}
/**
- * Caclulate the bounding box for a string.
+ * Calculate the bounding box for a string.
*
* \param coOrd IN position of text
* \param angle IN text angle
@@ -131,9 +162,7 @@ EXPORT coOrd GetSegEndPt(
* \param fs IN size of font
* \param loR OUT bottom left corner
* \param hiR OUT top right corner
- * \return describe the return value
*/
-
EXPORT void GetTextBounds(
coOrd pos,
ANGLE_T angle,
@@ -142,29 +171,44 @@ EXPORT void GetTextBounds(
coOrd * loR,
coOrd * hiR )
{
+
coOrd size;
- POS_T descent;
+ POS_T descent = 0.0;
coOrd lo, hi;
coOrd p[4];
+ coOrd lastL;
int i;
- DrawTextSize2( &mainD, str, NULL, fs, FALSE, &size, &descent );
-
+ DrawMultiLineTextSize(&mainD, str, NULL, fs, FALSE, &size, &lastL);
// set up the corners of the rectangle
p[0].x = p[3].x = 0.0;
p[1].x = p[2].x = size.x;
- p[0].y = p[1].y = -descent;
+ DrawTextSize2(&mainD, "A", NULL, fs, FALSE, &size, &descent);
+ p[0].y = p[1].y = lastL.y - descent;
p[2].y = p[3].y = size.y;
lo = hi = zero;
// rotate each point
- for ( i=1; i<4; i++ ) {
- Rotate( &p[i], zero, angle );
- if ( p[i].x < lo.x ) lo.x = p[i].x;
- if ( p[i].y < lo.y ) lo.y = p[i].y;
- if ( p[i].x > hi.x ) hi.x = p[i].x;
- if ( p[i].y > hi.y ) hi.y = p[i].y;
+ for (i=0; i<4; i++)
+ {
+ Rotate(&p[i], zero, angle);
+
+ if (p[i].x < lo.x) {
+ lo.x = p[i].x;
+ }
+
+ if (p[i].y < lo.y) {
+ lo.y = p[i].y;
+ }
+
+ if (p[i].x > hi.x) {
+ hi.x = p[i].x;
+ }
+
+ if (p[i].y > hi.y) {
+ hi.y = p[i].y;
+ }
}
// now recaclulate the corners
@@ -178,7 +222,7 @@ EXPORT void GetTextBounds(
static void Get1SegBounds( trkSeg_p segPtr, coOrd xlat, ANGLE_T angle, coOrd *lo, coOrd *hi )
{
int inx;
- coOrd p0, p1, pc;
+ coOrd p0, p1, pBez[4], pc;
ANGLE_T a0, a1;
coOrd width;
DIST_T radius;
@@ -266,15 +310,31 @@ static void Get1SegBounds( trkSeg_p segPtr, coOrd xlat, ANGLE_T angle, coOrd *lo
break;
case SEG_FILCRCL:
REORIGIN( p0, segPtr->u.c.center, angle, xlat )
- lo->x = p0.x - segPtr->u.c.radius;
- hi->x = p0.x + segPtr->u.c.radius;
- lo->y = p0.y - segPtr->u.c.radius;
- hi->y = p0.y + segPtr->u.c.radius;
+ lo->x = p0.x - fabs(segPtr->u.c.radius);
+ hi->x = p0.x + fabs(segPtr->u.c.radius);
+ lo->y = p0.y - fabs(segPtr->u.c.radius);
+ hi->y = p0.y + fabs(segPtr->u.c.radius);
break;
case SEG_TEXT:
REORIGIN( p0, segPtr->u.t.pos, angle, xlat )
GetTextBounds( p0, angle+segPtr->u.t.angle, segPtr->u.t.string, segPtr->u.t.fontSize, lo, hi );
break;
+ case SEG_BEZLIN:
+ case SEG_BEZTRK: //Bezier control arms form a "tent" around the curve
+ REORIGIN( pBez[0], segPtr->u.b.pos[0], angle, xlat )
+ REORIGIN( pBez[1], segPtr->u.b.pos[1], angle, xlat )
+ REORIGIN( pBez[2], segPtr->u.b.pos[2], angle, xlat )
+ REORIGIN( pBez[3], segPtr->u.b.pos[3], angle, xlat )
+ lo->x = hi->x = pBez[0].x;
+ lo->y = hi->y = pBez[0].y;
+ for (int i=1;i<4;i++) {
+ lo->x = lo->x>pBez[i].x?pBez[i].x:lo->x;
+ lo->y = lo->y>pBez[i].y?pBez[i].y:lo->y;
+ hi->x = hi->x<pBez[i].x?pBez[i].x:hi->x;
+ hi->y = hi->y<pBez[i].y?pBez[i].y:hi->y;
+ }
+ width.x = width.y = segPtr->width/2.0;
+ break;
default:
;
}
@@ -379,6 +439,14 @@ EXPORT void MoveSegs(
s->u.j.pos.x += orig.x;
s->u.j.pos.y += orig.y;
break;
+ case SEG_BEZTRK:
+ case SEG_BEZLIN:
+ for (inx=0;inx<4;inx++) {
+ s->u.b.pos[inx].x +=orig.x;
+ s->u.b.pos[inx].y +=orig.y;
+ }
+ FixUpBezierSeg(s->u.b.pos,s,s->type == SEG_BEZTRK);
+ break;
}
}
}
@@ -423,11 +491,18 @@ EXPORT void RotateSegs(
Rotate( &s->u.j.pos, orig, angle );
s->u.j.angle = NormalizeAngle( s->u.j.angle+angle );
break;
- }
+ case SEG_BEZLIN:
+ case SEG_BEZTRK:
+ Rotate( &s->u.b.pos[0], orig, angle );
+ Rotate( &s->u.b.pos[1], orig, angle );
+ Rotate( &s->u.b.pos[2], orig, angle );
+ Rotate( &s->u.b.pos[3], orig, angle );
+ FixUpBezierSeg(s->u.b.pos,s,s->type == SEG_BEZTRK);
+ break;
+ }
}
}
-
EXPORT void FlipSegs(
wIndex_t segCnt,
trkSeg_p segs,
@@ -468,12 +543,21 @@ EXPORT void FlipSegs(
for (inx=0; inx<s->u.p.cnt; inx++) {
s->u.p.pts[inx].y = -s->u.p.pts[inx].y;
}
+ MyFree(pts);
break;
case SEG_JNTTRK:
s->u.j.pos.y = - s->u.j.pos.y;
s->u.j.angle = NormalizeAngle( 180.0 - s->u.j.angle );
s->u.j.negate = ! s->u.j.negate;
break;
+ case SEG_BEZTRK:
+ case SEG_BEZLIN:
+ s->u.b.pos[0].y = -s->u.b.pos[0].y;
+ s->u.b.pos[1].y = -s->u.b.pos[1].y;
+ s->u.b.pos[2].y = -s->u.b.pos[2].y;
+ s->u.b.pos[3].y = -s->u.b.pos[3].y;
+ FixUpBezierSeg(s->u.b.pos,s,s->type == SEG_BEZTRK);
+ break;
}
}
}
@@ -529,6 +613,20 @@ EXPORT void RescaleSegs(
s->u.j.l0 *= scale_w;
s->u.j.l1 *= scale_w;
break;
+ case SEG_BEZTRK:
+ case SEG_BEZLIN:
+ s->u.b.pos[0].y *= scale_y;
+ s->u.b.pos[0].x *= scale_x;
+ s->u.b.pos[1].x *= scale_x;
+ s->u.b.pos[1].y *= scale_y;
+ s->u.b.pos[2].y *= scale_y;
+ s->u.b.pos[2].x *= scale_x;
+ s->u.b.pos[3].x *= scale_x;
+ s->u.b.pos[3].y *= scale_y;
+ FixUpBezierSeg(s->u.b.pos,s,s->type == SEG_BEZTRK);
+
+ break;
+
}
}
}
@@ -556,10 +654,20 @@ EXPORT void CloneFilledDraw(
} else {
memcpy( newPts, sp->u.p.pts, sp->u.p.cnt * sizeof *(coOrd*)0 );
}
+ //if (sp->u.p.pts) Can't do this a pts could be pointing at static
+ // free(sp->u.p.pts);
sp->u.p.pts = newPts;
break;
case SEG_TEXT:
- sp->u.t.string = MyStrdup( sp->u.t.string );
+ sp->u.t.string = strdup( sp->u.t.string);
+ break;
+ case SEG_BEZTRK:
+ case SEG_BEZLIN:
+ sp->bezSegs.cnt = 0;
+ if (sp->bezSegs.ptr) MyFree(sp->bezSegs.ptr);
+ sp->bezSegs.ptr = NULL;
+ sp->bezSegs.max = 0;
+ FixUpBezierSeg(sp->u.b.pos,sp,sp->type == SEG_BEZTRK);
break;
default:
break;
@@ -583,8 +691,8 @@ EXPORT void FreeFilledDraw(
sp->u.p.pts = NULL;
break;
case SEG_TEXT:
- if ( sp->u.t.string )
- MyFree( sp->u.t.string );
+ if (sp->u.t.string)
+ MyFree(sp->u.t.string);
sp->u.t.string = NULL;
break;
default:
@@ -593,6 +701,13 @@ EXPORT void FreeFilledDraw(
}
}
+/*
+ * DistanceSegs
+ *
+ * Find the closest point on the Segs to the point pos.
+ * Return the distance to the point, the point on the curve and the index of the segment that contains it.
+ *
+ */
EXPORT DIST_T DistanceSegs(
coOrd orig,
@@ -606,6 +721,7 @@ EXPORT DIST_T DistanceSegs(
coOrd p0, p1, p2, pt, lo, hi;
BOOL_T found = FALSE;
wIndex_t inx, lin;
+ segProcData_t segProcData2;
p0 = *pos;
Rotate( &p0, orig, -angle );
p0.x -= orig.x;
@@ -645,27 +761,41 @@ EXPORT DIST_T DistanceSegs(
}
}
break;
+ case SEG_BEZTRK:
+ case SEG_BEZLIN:
+ dd = 100000.0;
+ pt = p0;
+ for (int i = 0;i<segPtr->bezSegs.cnt;i++) {
+ segProcData2.distance.pos1 = pt;
+ SegProc(SEGPROC_DISTANCE,&DYNARR_N(trkSeg_t,segPtr->bezSegs,i),&segProcData2);
+ if (segProcData2.distance.dd<dd) {
+ dd = segProcData2.distance.dd;
+ p1 = segProcData2.distance.pos1;
+ }
+ }
+ break;
case SEG_TEXT:
/*GetTextBounds( segPtr->u.t.pos, angle+segPtr->u.t.angle, segPtr->u.t.string, segPtr->u.t.fontSize, &lo, &hi );*/
- GetTextBounds( zero, 0, segPtr->u.t.string, segPtr->u.t.fontSize, &lo, &hi );
- Rotate( &p0, segPtr->u.t.pos, segPtr->u.t.angle );
+ GetTextBounds( zero, 0, segPtr->u.t.string, segPtr->u.t.fontSize, &lo, &hi ); //lo and hi are relative to seg origin
p0.x -= segPtr->u.t.pos.x;
p0.y -= segPtr->u.t.pos.y;
- if ( p0.x < hi.x && p0.y < hi.y ) {
- DIST_T dx, dy;
+ Rotate( &p0, zero, -segPtr->u.t.angle );
+ if (p0.x > lo.x && p0.x < hi.x && p0.y >lo.y && p0.y < hi.y) { //Within rectangle - therefore small dist
hi.x /= 2.0;
hi.y /= 2.0;
- p0.x -= hi.x;
- p0.y -= hi.y;
- dx = fabs(p0.x/hi.x);
- dy = fabs(p0.y/hi.y);
- if ( dx > dy )
- dd = dx;
- else
- dd = dy;
- dd *= 0.25*mainD.scale;
- /*printf( "dx=%0.4f dy=%0.4f dd=%0.3f\n", dx, dy, dd );*/
+ dd = 0.1*FindDistance(hi, p0)/FindDistance(lo,hi); // Proportion to mean that the closer we to the center or the smaller the target in overlapping cases, the more likely we pick it
+ break;
}
+ hi.x /= 2.0; // rough center of rectangle
+ hi.y /= 2.0;
+ if (fabs((p0.x-hi.x)/hi.x)<fabs((p0.y-hi.y)/hi.y)) { // Proportionally closer to x
+ if (p0.x > hi.x) dd = (p0.x - hi.x);
+ else dd = fabs(p0.x-hi.x);
+ } else { // Closer to y
+ if (p0.y > hi.y) dd = (p0.y - hi.y);
+ else dd = fabs(p0.y-hi.y);
+ }
+ /*printf( "dx=%0.4f dy=%0.4f dd=%0.3f\n", dx, dy, dd );*/
/*
if ( p0.x >= lo.x && p0.x <= hi.x &&
p0.y >= lo.y && p0.y <= hi.y ) {
@@ -698,22 +828,35 @@ EXPORT DIST_T DistanceSegs(
return d;
}
-
+/*
+ * Get the angle at a point on the segments closest to pos1
+ * Optionally return the index of the segment and the distance to that point
+ *
+ */
EXPORT ANGLE_T GetAngleSegs(
wIndex_t segCnt,
trkSeg_p segPtr,
- coOrd pos,
- wIndex_t * segInxR )
+ coOrd * pos1, // Now IN/OUT OUT =
+ wIndex_t * segInxR,
+ DIST_T * dist,
+ BOOL_T * seg_backwards,
+ wIndex_t * subSegInxR,
+ BOOL_T * negative_radius)
{
wIndex_t inx;
ANGLE_T angle = 0.0;
coOrd p0;
DIST_T d, dd;
segProcData_t segProcData;
+ coOrd pos2 = * pos1;
+ BOOL_T negative = FALSE;
+ BOOL_T backwards = FALSE;
+ if (subSegInxR) *subSegInxR = -1;
- DistanceSegs( zero, 0.0, segCnt, segPtr, &pos, &inx );
+ d = DistanceSegs( zero, 0.0, segCnt, segPtr, &pos2, &inx ); //
+ if (dist) * dist = d;
segPtr += inx;
- segProcData.getAngle.pos = pos;
+ segProcData.getAngle.pos = pos2;
switch ( segPtr->type ) {
case SEG_STRTRK:
case SEG_STRLIN:
@@ -728,18 +871,28 @@ EXPORT ANGLE_T GetAngleSegs(
case SEG_FILCRCL:
CurveSegProc( SEGPROC_GETANGLE, segPtr, &segProcData );
angle = segProcData.getAngle.angle;
+ negative = segProcData.getAngle.negative_radius;
+ backwards = segProcData.getAngle.backwards;
break;
case SEG_JNTTRK:
JointSegProc( SEGPROC_GETANGLE, segPtr, &segProcData );
angle = segProcData.getAngle.angle;
break;
+ case SEG_BEZTRK:
+ case SEG_BEZLIN:
+ BezierSegProc( SEGPROC_GETANGLE, segPtr, &segProcData );
+ angle = segProcData.getAngle.angle;
+ negative = segProcData.getAngle.negative_radius;
+ backwards = segProcData.getAngle.backwards;
+ if (subSegInxR) *subSegInxR = segProcData.getAngle.bezSegInx;
+ break;
case SEG_POLY:
case SEG_FILPOLY:
- p0 = pos;
+ p0 = pos2;
dd = LineDistance( &p0, segPtr->u.p.pts[segPtr->u.p.cnt-1], segPtr->u.p.pts[0] );
angle = FindAngle( segPtr->u.p.pts[segPtr->u.p.cnt-1], segPtr->u.p.pts[0] );
for ( inx=0; inx<segPtr->u.p.cnt-1; inx++ ) {
- p0 = pos;
+ p0 = pos2;
d = LineDistance( &p0, segPtr->u.p.pts[inx], segPtr->u.p.pts[inx+1] );
if ( d < dd ) {
dd = d;
@@ -754,6 +907,10 @@ EXPORT ANGLE_T GetAngleSegs(
AbortProg( "GetAngleSegs(%d)", segPtr->type );
}
if ( segInxR ) *segInxR = inx;
+ if (seg_backwards) *seg_backwards = backwards;
+ if (negative_radius) *negative_radius = negative;
+
+ * pos1 = pos2;
return angle;
}
@@ -970,12 +1127,17 @@ EXPORT BOOL_T ReadSegs( void )
BOOL_T rc=FALSE;
trkSeg_p s;
trkEndPt_p e;
- unsigned long rgb;
+ long rgb;
int i;
DIST_T elev0, elev1;
BOOL_T hasElev;
+ BOOL_T isPolyV2;
+ BOOL_T improvedEnds;
+ FLOAT_T ignoreFloat;
char type;
- long option;
+ char * plain_text;
+ long option, option2;
+ BOOL_T subsegs = FALSE;
descriptionOff = zero;
tempSpecial[0] = '\0';
@@ -984,12 +1146,22 @@ EXPORT BOOL_T ReadSegs( void )
DYNARR_RESET( trkEndPt_t, tempEndPts_da );
pathCnt = 0;
while ( (cp = GetNextLine()) != NULL ) {
- while (isspace((unsigned char)*cp)) cp++;
+ while (isspace(*cp)) cp++;
hasElev = FALSE;
+ improvedEnds = FALSE;
if ( strncmp( cp, "END", 3 ) == 0 ) {
rc = TRUE;
+ subsegs = FALSE;
break;
}
+ if ( strncmp(cp, "SUBSEGS", 7) == 0) {
+ subsegs = TRUE;
+ continue;
+ }
+ if (strncmp (cp, "SUBSEND", 7) == 0) {
+ subsegs = FALSE;
+ continue;
+ }
if ( *cp == '\n' || *cp == '#' ) {
continue;
}
@@ -999,13 +1171,20 @@ EXPORT BOOL_T ReadSegs( void )
cp++;
hasElev = TRUE;
}
+ isPolyV2 = FALSE;
+ if (*cp == '4') {
+ cp++;
+ hasElev = TRUE;
+ isPolyV2 = TRUE;
+ improvedEnds = TRUE;
+ }
switch (type) {
case SEG_STRLIN:
case SEG_TBLEDGE:
DYNARR_APPEND( trkSeg_t, tempSegs_da, 10 );
s = &tempSegs(tempSegs_da.cnt-1);
s->type = type;
- if ( !GetArgs( cp, hasElev?"uwpfpf":"uwpYpY",
+ if ( !GetArgs( cp, hasElev?"lwpfpf":"lwpYpY",
&rgb, &s->width, &s->u.l.pos[0], &elev0, &s->u.l.pos[1], &elev1 ) ) {
rc = FALSE;
break;
@@ -1018,7 +1197,7 @@ EXPORT BOOL_T ReadSegs( void )
DYNARR_APPEND( trkSeg_t, tempSegs_da, 10 );
s = &tempSegs(tempSegs_da.cnt-1);
s->type = type;
- if ( !GetArgs( cp, hasElev?"uwpfpfl":"uwpYpYZ",
+ if ( !GetArgs( cp, hasElev?"lwpfpfl":"lwpYpYZ",
&rgb, &s->width, &s->u.l.pos[0], &elev0, &s->u.l.pos[1], &elev1, &option ) ) {
rc = FALSE;
break;
@@ -1033,7 +1212,7 @@ EXPORT BOOL_T ReadSegs( void )
DYNARR_APPEND( trkSeg_t, tempSegs_da, 10 );
s = &tempSegs(tempSegs_da.cnt-1);
s->type = SEG_CRVLIN;
- if ( !GetArgs( cp, hasElev?"uwfpfff":"uwfpYff",
+ if ( !GetArgs( cp, hasElev?"lwfpfff":"lwfpYff",
&rgb, &s->width,
&s->u.c.radius,
&s->u.c.center,
@@ -1048,20 +1227,27 @@ EXPORT BOOL_T ReadSegs( void )
DYNARR_APPEND( trkSeg_t, tempSegs_da, 10 );
s = &tempSegs(tempSegs_da.cnt-1);
s->type = SEG_STRTRK;
- if ( !GetArgs( cp, hasElev?"uwpfpf":"uwpYpY",
+ s->bezSegs.max = 0;
+ s->bezSegs.cnt = 0;
+ s->bezSegs.ptr = NULL;
+ if ( !GetArgs( cp, hasElev?"lwpfpf":"lwpYpY",
&rgb, &s->width,
&s->u.l.pos[0], &elev0,
&s->u.l.pos[1], &elev1 ) ) {
rc = FALSE;
break;
}
+ rgb = 0;
s->color = wDrawFindColor( rgb );
break;
case SEG_CRVTRK:
DYNARR_APPEND( trkSeg_t, tempSegs_da, 10 );
s = &tempSegs(tempSegs_da.cnt-1);
s->type = SEG_CRVTRK;
- if ( !GetArgs( cp, hasElev?"uwfpfff":"uwfpYff",
+ s->bezSegs.max = 0;
+ s->bezSegs.cnt = 0;
+ s->bezSegs.ptr = NULL;
+ if ( !GetArgs( cp, hasElev?"lwfpfff":"lwfpYff",
&rgb, &s->width,
&s->u.c.radius,
&s->u.c.center,
@@ -1070,13 +1256,14 @@ EXPORT BOOL_T ReadSegs( void )
rc = FALSE;
break;
}
+ rgb = 0;
s->color = wDrawFindColor( rgb );
break;
case SEG_JNTTRK:
DYNARR_APPEND( trkSeg_t, tempSegs_da, 10 );
s = &tempSegs(tempSegs_da.cnt-1);
s->type = SEG_JNTTRK;
- if ( !GetArgs( cp, hasElev?"uwpffffffl":"uwpYfffffl",
+ if ( !GetArgs( cp, hasElev?"lwpffffffl":"lwpYfffffl",
&rgb, &s->width,
&s->u.j.pos,
&elev0,
@@ -1092,13 +1279,51 @@ EXPORT BOOL_T ReadSegs( void )
s->u.j.negate = ( option&1 )!=0;
s->u.j.flip = ( option&2 )!=0;
s->u.j.Scurve = ( option&4 )!=0;
+ rgb = 0;
s->color = wDrawFindColor( rgb );
break;
+ case SEG_BEZTRK:
+ DYNARR_APPEND( trkSeg_t, tempSegs_da, 10);
+ s = &tempSegs(tempSegs_da.cnt-1);
+ s->type=SEG_BEZTRK;
+ s->bezSegs.max=0;
+ s->bezSegs.ptr= NULL;
+ s->bezSegs.cnt=0;
+ if ( !GetArgs( cp, "lwpppp",
+ &rgb, &s->width,
+ &s->u.b.pos[0],
+ &s->u.b.pos[1],
+ &s->u.b.pos[2],
+ &s->u.b.pos[3])) {
+ rc = FALSE;
+ break;
+ }
+ rgb = 0;
+ s->color = wDrawFindColor( rgb );
+ break;
+ case SEG_BEZLIN:
+ DYNARR_APPEND( trkSeg_t, tempSegs_da, 10);
+ s = &tempSegs(tempSegs_da.cnt-1);
+ s->type=SEG_BEZLIN;
+ s->bezSegs.max=0;
+ s->bezSegs.ptr= NULL;
+ s->bezSegs.cnt=0;
+ if ( !GetArgs( cp, "lwpppp",
+ &rgb, &s->width,
+ &s->u.b.pos[0],
+ &s->u.b.pos[1],
+ &s->u.b.pos[2],
+ &s->u.b.pos[3])) {
+ rc = FALSE;
+ break;
+ }
+ s->color = wDrawFindColor( rgb );
+ break;
case SEG_FILCRCL:
DYNARR_APPEND( trkSeg_t, tempSegs_da, 10 );
s = &tempSegs(tempSegs_da.cnt-1);
s->type = SEG_FILCRCL;
- if ( !GetArgs( cp, hasElev?"uwfpf":"uwfpY",
+ if ( !GetArgs( cp, hasElev?"lwfpf":"lwfpY",
&rgb, &s->width,
&s->u.c.radius,
&s->u.c.center,
@@ -1115,11 +1340,20 @@ EXPORT BOOL_T ReadSegs( void )
DYNARR_APPEND( trkSeg_t, tempSegs_da, 10 );
s = &tempSegs(tempSegs_da.cnt-1);
s->type = type;
- if ( !GetArgs( cp, "uwd",
- &rgb, &s->width,
- &s->u.p.cnt ) ) {
- rc = FALSE;
- /*??*/break;
+ if (isPolyV2) {
+ if ( !GetArgs( cp, "lwdd",
+ &rgb, &s->width,
+ &s->u.p.cnt, &s->u.p.polyType) ) {
+ rc = FALSE;
+ /*??*/break;
+ }
+ } else {
+ if ( !GetArgs( cp, "lwd",
+ &rgb, &s->width,
+ &s->u.p.cnt) ) {
+ rc = FALSE;
+ /*??*/break;
+ }
}
s->color = wDrawFindColor( rgb );
s->u.p.pts = (coOrd*)MyMalloc( s->u.p.cnt * sizeof *(coOrd*)NULL );
@@ -1138,10 +1372,14 @@ EXPORT BOOL_T ReadSegs( void )
s = &tempSegs(tempSegs_da.cnt-1);
s->type = type;
s->u.t.fontP = NULL;
- if ( !GetArgs( cp, "upf0fq", &rgb, &s->u.t.pos, &s->u.t.angle, &s->u.t.fontSize, &s->u.t.string ) ) {
+ char * expandedText;
+ if ( !GetArgs( cp, "lpf0fq", &rgb, &s->u.t.pos, &s->u.t.angle, &s->u.t.fontSize, &expandedText ) ) {
rc = FALSE;
/*??*/break;
}
+ plain_text = ConvertFromEscapedText(expandedText);
+ s->u.t.string = plain_text;
+ MyFree(expandedText);
s->color = wDrawFindColor( rgb );
break;
case SEG_UNCEP:
@@ -1150,8 +1388,8 @@ EXPORT BOOL_T ReadSegs( void )
e = &tempEndPts(tempEndPts_da.cnt-1);
if (type == SEG_CONEP) {
if ( !GetArgs( cp, "dc", &e->index, &cp ) ) {
- rc = FALSE;
- /*??*/break;
+ rc = FALSE;
+ /*??*/break;
}
} else {
e->index = -1;
@@ -1165,6 +1403,27 @@ EXPORT BOOL_T ReadSegs( void )
e->elev.u.height = 0.0;
e->elev.doff = zero;
e->option = 0;
+ if (improvedEnds) { //E4 and T4
+ if (!GetArgs( cp, "lpc", &option, &e->elev.doff, &cp )) {
+ rc = FALSE;
+ /*??*/break;
+ }
+ switch (option&ELEV_MASK) {
+ case ELEV_STATION:
+ GetArgs( cp, "qc", &e->elev.u.name, &cp);
+ break;
+ default:
+ GetArgs( cp, "fc", &e->elev.u.height, &cp); //First height
+ }
+ DIST_T height2;
+ if (!GetArgs( cp, "flLlc", &height2, &option2, &e->elev.option, &e->option, &cp ) ) {
+ rc = FALSE;
+ break;
+ }
+ if (option2) e->elev.option |= ELEV_VISIBLE;
+ GetArgs(cp, "fc", &ignoreFloat, &cp);
+ break;
+ }
if ( cp != NULL ) {
if (paramVersion < 7) {
GetArgs( cp, "dfp", &e->elev.option, &e->elev.u.height, &e->elev.doff, &cp );
@@ -1188,7 +1447,7 @@ EXPORT BOOL_T ReadSegs( void )
}
break;
case SEG_PATH:
- while (isspace((unsigned char)*cp)) cp++;
+ while (isspace(*cp)) cp++;
if (*cp == '\"') cp++;
while ( *cp != '\"') AppendPath((signed char)*cp++);
AppendPath(0);
@@ -1220,55 +1479,34 @@ EXPORT BOOL_T ReadSegs( void )
}
}
AppendPath( 0 );
-
-#ifdef LATER
- if ( logTable(log_readTracks).level >= 4 ) {
- for (s=&tempSegs(0); s<&tempSegs(tempSegs_da.cnt); s++) {
- switch (s->type) {
- case SEG_STRTRK:
- case SEG_STRLIN:
- case SEG_DIMLIN:
- case SEG_BENCH:
- case SEG_TBLEDGE:
- LogPrintf( "seg[%d] = %c [%0.3f %0.3f] [%0.3f %0.3f]\n",
- tempSegs_da.cnt, s->type,
- s->u.l.pos[0].x, s->u.l.pos[0].y,
- s->u.l.pos[1].x, s->u.l.pos[1].y );
- break;
- case SEG_CRVTRK:
- case SEG_CRVLIN:
- LogPrintf( "seg[%d] = %c R=%0.3f A0=%0.3f A1=%0.3f [%0.3f %0.3f]\n",
- tempSegs_da.cnt, s->type,
- s->u.c.radius,
- s->u.c.center.x, s->u.c.center.y,
- s->u.c.a0, s->u.c.a1 );
- break;
- case SEG_JNTTRK:
- LogPrintf( "seg[%d] = %c\n",
- tempSegs_da.cnt, s->type );
- break;
- }
- }
- }
-#endif
return rc;
}
-
EXPORT BOOL_T WriteSegs(
FILE * f,
wIndex_t segCnt,
trkSeg_p segs )
{
+ return WriteSegsEnd(f,segCnt,segs,TRUE);
+}
+
+
+EXPORT BOOL_T WriteSegsEnd(
+ FILE * f,
+ wIndex_t segCnt,
+ trkSeg_p segs, BOOL_T writeEnd)
+
+{
int i, j;
BOOL_T rc = TRUE;
long option;
+ char * escaped_text;
for ( i=0; i<segCnt; i++ ) {
switch ( segs[i].type ) {
case SEG_STRTRK:
- rc &= fprintf( f, "\t%c %ld %0.6f %0.6f %0.6f %0.6f %0.6f\n",
- segs[i].type, wDrawGetRGB(segs[i].color), segs[i].width,
+ rc &= fprintf( f, "\t%c 0 %0.6f %0.6f %0.6f %0.6f %0.6f\n",
+ segs[i].type, segs[i].width,
segs[i].u.l.pos[0].x, segs[i].u.l.pos[0].y,
segs[i].u.l.pos[1].x, segs[i].u.l.pos[1].y ) > 0;
break;
@@ -1294,16 +1532,16 @@ EXPORT BOOL_T WriteSegs(
BenchOutputOption(segs[i].u.l.option) ) > 0;
break;
case SEG_CRVTRK:
- rc &= fprintf( f, "\t%c %ld %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f\n",
- segs[i].type, wDrawGetRGB(segs[i].color), segs[i].width,
+ rc &= fprintf( f, "\t%c 0 %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f\n",
+ segs[i].type, segs[i].width,
segs[i].u.c.radius,
segs[i].u.c.center.x, segs[i].u.c.center.y,
segs[i].u.c.a0, segs[i].u.c.a1 ) > 0;
break;
case SEG_JNTTRK:
option = (segs[i].u.j.negate?1:0) + (segs[i].u.j.flip?2:0) + (segs[i].u.j.Scurve?4:0);
- rc &= fprintf( f, "\t%c %ld %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f %ld\n",
- segs[i].type, wDrawGetRGB(segs[i].color), segs[i].width,
+ rc &= fprintf( f, "\t%c 0 %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f %ld\n",
+ segs[i].type, segs[i].width,
segs[i].u.j.pos.x, segs[i].u.j.pos.y,
segs[i].u.j.angle,
segs[i].u.j.l0,
@@ -1312,12 +1550,25 @@ EXPORT BOOL_T WriteSegs(
segs[i].u.j.L,
option )>0;
break;
+ case SEG_BEZTRK:
+ case SEG_BEZLIN:
+ rc &= fprintf( f, "\t%c3 0 %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f\n",
+ segs[i].type, segs[i].width,
+ segs[i].u.l.pos[0].x, segs[i].u.l.pos[0].y,
+ segs[i].u.l.pos[1].x, segs[i].u.l.pos[1].y,
+ segs[i].u.l.pos[2].x, segs[i].u.l.pos[2].y,
+ segs[i].u.l.pos[3].x, segs[i].u.l.pos[3].y ) > 0;
+ rc &= fprintf(f,"\tSUBSEGS\n");
+ rc &= WriteSegsEnd(f,segs[i].bezSegs.cnt,segs[i].bezSegs.ptr,FALSE);
+ rc &= fprintf(f,"\tSUBSEND\n");
+ break;
case SEG_CRVLIN:
rc &= fprintf( f, "\t%c3 %ld %0.6f %0.6f %0.6f %0.6f 0 %0.6f %0.6f\n",
segs[i].type, wDrawGetRGB(segs[i].color), segs[i].width,
segs[i].u.c.radius,
segs[i].u.c.center.x, segs[i].u.c.center.y,
segs[i].u.c.a0, segs[i].u.c.a1 ) > 0;
+
break;
case SEG_FILCRCL:
rc &= fprintf( f, "\t%c3 %ld %0.6f %0.6f %0.6f %0.6f 0\n",
@@ -1327,22 +1578,24 @@ EXPORT BOOL_T WriteSegs(
break;
case SEG_POLY:
case SEG_FILPOLY:
- rc &= fprintf( f, "\t%c3 %ld %0.6f %d\n",
+ rc &= fprintf( f, "\t%c4 %ld %0.6f %d %d \n",
segs[i].type, wDrawGetRGB(segs[i].color), segs[i].width,
- segs[i].u.p.cnt ) > 0;
+ segs[i].u.p.cnt, segs[i].u.p.polyType ) > 0;
for ( j=0; j<segs[i].u.p.cnt; j++ )
rc &= fprintf( f, "\t\t%0.6f %0.6f 0\n",
segs[i].u.p.pts[j].x, segs[i].u.p.pts[j].y ) > 0;
break;
case SEG_TEXT: /* 0pf0fq */
+ escaped_text = ConvertToEscapedText(segs[i].u.t.string);
rc &= fprintf( f, "\t%c %ld %0.6f %0.6f %0.6f 0 %0.6f \"%s\"\n",
segs[i].type, wDrawGetRGB(segs[i].color),
segs[i].u.t.pos.x, segs[i].u.t.pos.y, segs[i].u.t.angle,
- segs[i].u.t.fontSize, PutTitle(segs[i].u.t.string) ) > 0;
+ segs[i].u.t.fontSize, escaped_text ) > 0;
+ MyFree(escaped_text);
break;
}
}
- rc &= fprintf( f, "\tEND\n" )>0;
+ if (writeEnd) rc &= fprintf( f, "\tEND\n" )>0;
return rc;
}
@@ -1354,20 +1607,27 @@ EXPORT void SegProc(
{
switch (segPtr->type) {
case SEG_STRTRK:
+ case SEG_STRLIN:
StraightSegProc( cmd, segPtr, data );
break;
case SEG_CRVTRK:
+ case SEG_CRVLIN:
CurveSegProc( cmd, segPtr, data );
break;
case SEG_JNTTRK:
JointSegProc( cmd, segPtr, data );
break;
- default:
+ case SEG_BEZTRK:
+ case SEG_BEZLIN:
+ BezierSegProc( cmd, segPtr, data);
+ break;
+ default:
AbortProg( "SegProg( %d )", segPtr->type );
break;
}
}
+
/*
* Draw Segs
@@ -1456,6 +1716,10 @@ EXPORT void DrawDimLine(
DrawLine( d, p, p1, 0, color );
}
+/*
+ * Display the array of segments.
+ * Note that Bezier segments in particular contain sub-arrays of Curve and Straight segments.
+ */
EXPORT void DrawSegsO(
drawCmd_p d,
track_p trk,
@@ -1468,13 +1732,12 @@ EXPORT void DrawSegsO(
long options )
{
wIndex_t i, j;
- coOrd p0, p1, c;
+ coOrd p0, p1, p2, p3, c;
ANGLE_T a0;
wDrawColor color1, color2;
DIST_T factor = d->dpi/d->scale;
trkSeg_p tempPtr;
- static dynArr_t tempPts_da;
-#define tempPts(N) DYNARR_N( coOrd, tempPts_da, N )
+
long option;
wFontSize_t fs;
@@ -1503,13 +1766,33 @@ EXPORT void DrawSegsO(
REORIGIN( p0, segPtr->u.j.pos, angle, orig );
DrawJointTrack( d, p0, NormalizeAngle(segPtr->u.j.angle+angle), segPtr->u.j.l0, segPtr->u.j.l1, segPtr->u.j.R, segPtr->u.j.L, segPtr->u.j.negate, segPtr->u.j.flip, segPtr->u.j.Scurve, trk, -1, -1, trackGauge, color1, options );
break;
- }
+ case SEG_BEZTRK:
+ REORIGIN(p0, segPtr->u.b.pos[0], angle, orig);
+ REORIGIN(p1, segPtr->u.b.pos[1], angle, orig);
+ REORIGIN(p2, segPtr->u.b.pos[2], angle, orig);
+ REORIGIN(p3, segPtr->u.b.pos[3], angle, orig);
+ tempPtr = segPtr->bezSegs.ptr;
+ for(int j=0;j<segPtr->bezSegs.cnt;j++,tempPtr++) { //Loop through sub parts (only Trks supported)
+ if (tempPtr->type == SEG_CRVTRK) {
+ a0 = NormalizeAngle(tempPtr->u.c.a0 + angle);
+ REORIGIN( c, tempPtr->u.c.center, angle, orig );
+ DrawCurvedTies( d, trk, c, fabs(tempPtr->u.c.radius), a0, tempPtr->u.c.a1, color );
+ }
+ if (tempPtr->type == SEG_STRTRK) {
+ REORIGIN( p0, tempPtr->u.l.pos[0], angle, orig )
+ REORIGIN( p1, tempPtr->u.l.pos[1], angle, orig )
+ DrawStraightTies( d, trk, p0, p1, color );
+ }
+ }
+ break;
+ }
continue;
}
switch (segPtr->type) {
case SEG_STRTRK:
case SEG_CRVTRK:
case SEG_JNTTRK:
+ case SEG_BEZTRK:
case SEG_TEXT:
break;
default:
@@ -1593,24 +1876,79 @@ EXPORT void DrawSegsO(
FALSE, (wDrawWidth)floor(segPtr->width*factor+0.5), color1 );
}
break;
+ case SEG_BEZTRK:
+ case SEG_BEZLIN:
+ if (segPtr->type == SEG_BEZTRK) {
+ if (color1 == wDrawColorBlack)
+ color1 = normalColor;
+ if ( segPtr->color == wDrawColorWhite )
+ break;
+ }
+ REORIGIN(p0, segPtr->u.b.pos[0], angle, orig);
+ REORIGIN(p1, segPtr->u.b.pos[1], angle, orig);
+ REORIGIN(p2, segPtr->u.b.pos[2], angle, orig);
+ REORIGIN(p3, segPtr->u.b.pos[3], angle, orig);
+
+ for(int j=0;j<segPtr->bezSegs.cnt;j++) { //Loop through sub Segs
+ tempPtr = &DYNARR_N(trkSeg_t,segPtr->bezSegs,j);
+ switch (tempPtr->type) {
+ case SEG_CRVTRK:
+ case SEG_CRVLIN:
+ a0 = NormalizeAngle(tempPtr->u.c.a0 + angle);
+ REORIGIN( c, tempPtr->u.c.center, angle, orig );
+ if (tempPtr->type == SEG_CRVTRK) {
+ if (color1 == wDrawColorBlack) color1 = normalColor;
+ if ( tempPtr->color == wDrawColorWhite ) break;
+ p0.x = p0.y = p1.x = p1.y = 0;
+ DrawCurvedTrack( d,
+ c,
+ fabs(tempPtr->u.c.radius),
+ a0, tempPtr->u.c.a1,
+ p0, p1,
+ NULL, trackGauge, color1, options );
+ } else if (tempPtr->type == SEG_CRVLIN) {
+ DrawArc( d, c, fabs(tempPtr->u.c.radius), a0, tempPtr->u.c.a1,
+ FALSE, (wDrawWidth)floor(tempPtr->width*factor+0.5), color1 );
+ }
+ break;
+ case SEG_STRTRK:
+ if (color1 == wDrawColorBlack) color1 = normalColor;
+ if ( tempPtr->color == wDrawColorWhite ) break;
+ REORIGIN(p0,tempPtr->u.l.pos[0], angle, orig);
+ REORIGIN(p1,tempPtr->u.l.pos[1], angle, orig);
+ DrawStraightTrack( d,
+ p0, p1,
+ FindAngle(p0, p1 ),
+ NULL, trackGauge, color1, options );
+ break;
+ case SEG_STRLIN:
+ REORIGIN(p0,tempPtr->u.l.pos[0], angle, orig);
+ REORIGIN(p1,tempPtr->u.l.pos[1], angle, orig);
+ DrawLine( d, p0, p1, (wDrawWidth)floor(tempPtr->width*factor+0.5), color1 );
+ break;
+ }
+ }
+ break;
case SEG_JNTTRK:
REORIGIN( p0, segPtr->u.j.pos, angle, orig );
DrawJointTrack( d, p0, NormalizeAngle(segPtr->u.j.angle+angle), segPtr->u.j.l0, segPtr->u.j.l1, segPtr->u.j.R, segPtr->u.j.L, segPtr->u.j.negate, segPtr->u.j.flip, segPtr->u.j.Scurve, NULL, -1, -1, trackGauge, color1, options );
break;
case SEG_TEXT:
REORIGIN( p0, segPtr->u.t.pos, angle, orig )
- DrawString( d, p0, NormalizeAngle(angle+segPtr->u.t.angle), segPtr->u.t.string, segPtr->u.t.fontP, segPtr->u.t.fontSize, color1 );
+ DrawMultiString( d, p0, segPtr->u.t.string, segPtr->u.t.fontP, segPtr->u.t.fontSize, color1, NormalizeAngle(angle + segPtr->u.t.angle), NULL, NULL );
break;
case SEG_FILPOLY:
if ( (d->options&DC_GROUP) == 0 &&
d->funcs != &tempSegDrawFuncs ) {
/* Note: if we call tempSegDrawFillPoly we get a nasty bug
/+ because we don't make a private copy of p.pts */
- DYNARR_SET( coOrd, tempPts_da, segPtr->u.p.cnt );
- for ( j=0; j<segPtr->u.p.cnt; j++ ) {
- REORIGIN( tempPts(j), segPtr->u.p.pts[j], angle, orig )
+ coOrd *tempPts = malloc(sizeof(coOrd)*segPtr->u.p.cnt);
+// coOrd tempPts[segPtr->u.p.cnt];
+ for (j=0;j<segPtr->u.p.cnt;j++) {
+ REORIGIN( tempPts[j], segPtr->u.p.pts[j], angle, orig );
}
- DrawFillPoly( d, segPtr->u.p.cnt, &tempPts(0), color1 );
+ DrawFillPoly( d, segPtr->u.p.cnt, tempPts, color1 );
+ free(tempPts);
break;
} /* else fall thru */
case SEG_POLY:
@@ -1646,6 +1984,9 @@ EXPORT void DrawSegsO(
}
+/*
+ * Draw Segments without setting DTS_ options.
+ */
EXPORT void DrawSegs(
drawCmd_p d,
@@ -1659,4 +2000,24 @@ EXPORT void DrawSegs(
DrawSegsO( d, NULL, orig, angle, segPtr, segCnt, trackGauge, color, 0 );
}
+/*
+ * Free dynamic storage added to each of an array of Track Segments.
+ */
+EXPORT void CleanSegs(dynArr_t * seg_p) {
+ if (seg_p->cnt ==0) return;
+ for (int i=0;i<seg_p->cnt;i++) {
+ trkSeg_t t = DYNARR_N(trkSeg_t,* seg_p,i);
+ if (t.type == SEG_BEZLIN || t.type == SEG_BEZTRK) {
+ if (t.bezSegs.ptr) MyFree(t.bezSegs.ptr);
+ t.bezSegs.cnt = 0;
+ t.bezSegs.max = 0;
+ t.bezSegs.ptr = NULL;
+ }
+ }
+ seg_p->cnt = 0;
+ if (seg_p->ptr) MyFree(seg_p->ptr);
+ seg_p->ptr = NULL;
+ seg_p->max = 0;
+}
+
diff --git a/app/bin/tstraigh.c b/app/bin/tstraigh.c
index 0f5f273..5cf1cda 100644
--- a/app/bin/tstraigh.c
+++ b/app/bin/tstraigh.c
@@ -1,5 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/tstraigh.c,v 1.2 2008-01-20 23:29:15 mni77 Exp $
+/** \file tstraigh.c
+ * Straight track
*/
/* XTrkCad - Model Railroad CAD
@@ -20,9 +20,17 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "track.h"
+#include <math.h>
+
#include "cstraigh.h"
+#include "cundo.h"
+#include "fileio.h"
#include "i18n.h"
+#include "layout.h"
+#include "messages.h"
+#include "param.h"
+#include "track.h"
+#include "utility.h"
/*******************************************************************************
*
@@ -70,13 +78,13 @@ static struct {
ANGLE_T angle;
FLOAT_T grade;
descPivot_t pivot;
- LAYER_T layerNumber;
+ unsigned int layerNumber;
} strData;
typedef enum { E0, Z0, E1, Z1, LN, AN, GR, PV, LY } strDesc_e;
static descData_t strDesc[] = {
-/*E0*/ { DESC_POS, N_("End Pt 1: X"), &strData.endPt[0] },
+/*E0*/ { DESC_POS, N_("End Pt 1: X,Y"), &strData.endPt[0] },
/*Z0*/ { DESC_DIM, N_("Z"), &strData.elev[0] },
-/*E1*/ { DESC_POS, N_("End Pt 2: X"), &strData.endPt[1] },
+/*E1*/ { DESC_POS, N_("End Pt 2: X,Y"), &strData.endPt[1] },
/*Z1*/ { DESC_DIM, N_("Z"), &strData.elev[1] },
/*LN*/ { DESC_DIM, N_("Length"), &strData.length },
/*AN*/ { DESC_ANGLE, N_("Angle"), &strData.angle },
@@ -420,7 +428,7 @@ static BOOL_T TrimStraight( track_p trk, EPINX_T ep, DIST_T dist )
AdjustStraightEndPt( trk, ep, pos );
DrawNewTrack( trk );
} else
- DeleteTrack( trk, FALSE );
+ DeleteTrack( trk, TRUE );
return TRUE;
}
@@ -548,6 +556,7 @@ static STATUS_T ModifyStraight( track_p trk, wAction_t action, coOrd pos )
InfoMessage( _("Straight: Length=%s Angle=%0.3f"),
FormatDistance( d ), PutAngle( GetTrkEndAngle( trk, ep ) ) );
MainRedraw();
+ MapRedraw();
return C_CONTINUE;
case C_UP:
@@ -556,6 +565,7 @@ static STATUS_T ModifyStraight( track_p trk, wAction_t action, coOrd pos )
tempSegs_da.cnt = 0;
DrawNewTrack( trk );
MainRedraw();
+ MapRedraw();
return C_TERMINATE;
default:
@@ -576,14 +586,19 @@ static BOOL_T GetParamsStraight( int inx, track_p trk, coOrd pos, trackParams_t
params->type = curveTypeStraight;
if ( inx == PARAMS_PARALLEL ) {
params->ep = 0;
+ } else if (inx == PARAMS_CORNU ){
+ params->ep = PickEndPoint( pos, trk);
+ params->arcP = zero;
+ params->arcR = 0.0;
} else {
- params->ep = PickUnconnectedEndPoint( pos, trk );
- if (params->ep == -1)
- return FALSE;
+ params->ep = PickUnconnectedEndPointSilent( pos, trk );
}
+ if (params->ep == -1)
+ return FALSE;
params->lineOrig = GetTrkEndPos(trk,1-params->ep);
params->lineEnd = GetTrkEndPos(trk,params->ep);
params->len = FindDistance( params->lineOrig, params->lineEnd );
+ params->track_angle = FindAngle( params->lineOrig, params->lineEnd);
params->angle = GetTrkEndAngle(trk,params->ep);
params->arcR = 0.0;
return TRUE;
@@ -610,6 +625,8 @@ static BOOL_T QueryStraight( track_p trk, int query )
case Q_CAN_MODIFYRADIUS:
case Q_CAN_GROUP:
case Q_ISTRACK:
+ case Q_CORNU_CAN_MODIFY:
+ case Q_MODIFY_CAN_SPLIT:
return TRUE;
default:
return FALSE;
@@ -703,9 +720,13 @@ EXPORT void StraightSegProc(
case SEGPROC_TRAVERSE1:
a1 = FindAngle( segPtr->u.l.pos[0], segPtr->u.l.pos[1] );
- a2 = NormalizeAngle( data->traverse1.angle+a1 );
- data->traverse1.backwards = (a2 < 270 && a2 > 90 );
+ a2 = NormalizeAngle( a1-data->traverse1.angle );
+ data->traverse1.backwards = ((a2 < 270) && (a2 > 90));
data->traverse1.dist = FindDistance( segPtr->u.l.pos[data->traverse1.backwards?1:0], data->traverse1.pos );
+ data->traverse1.reverse_seg = FALSE;
+ data->traverse1.negative = FALSE;
+ data->traverse1.segs_backwards = FALSE;
+ data->traverse1.BezSegInx = 0;
break;
case SEGPROC_TRAVERSE2:
@@ -716,7 +737,10 @@ EXPORT void StraightSegProc(
data->traverse2.dist = 0;
data->traverse2.angle = a1;
} else {
+ a1 = FindAngle( segPtr->u.l.pos[data->traverse2.segDir], segPtr->u.l.pos[1-data->traverse2.segDir] );
+ Translate( &data->traverse2.pos, segPtr->u.l.pos[data->traverse2.segDir], a1, d );
data->traverse2.dist -= d;
+ data->traverse2.angle = a1;
}
break;
@@ -768,9 +792,12 @@ EXPORT void StraightSegProc(
data->split.newSeg[1] = *segPtr;
data->split.newSeg[0].u.l.pos[1] = data->split.newSeg[1].u.l.pos[0] = p0;
break;
-
+ /*
+ * Note GetAngle always gives a positive angle because p0 is always left of p1
+ */
case SEGPROC_GETANGLE:
data->getAngle.angle = FindAngle( segPtr->u.l.pos[0], segPtr->u.l.pos[1] );
+ data->getAngle.radius = 0.0;
break;
}
}
@@ -788,7 +815,7 @@ track_p NewStraightTrack( coOrd p0, coOrd p1 )
track_p t;
ANGLE_T a;
t = NewTrack( 0, T_STRAIGHT, 2, 0 );
- SetTrkScale( t, curScaleInx );
+ SetTrkScale( t, GetLayoutCurScale() );
a = FindAngle( p1, p0 );
SetTrkEndPoint( t, 0, p0, a );
SetTrkEndPoint( t, 1, p1, NormalizeAngle( a+180.0 ) );
diff --git a/app/bin/unittest/CMakeLists.txt b/app/bin/unittest/CMakeLists.txt
index b6d2bc5..32e2ddb 100644
--- a/app/bin/unittest/CMakeLists.txt
+++ b/app/bin/unittest/CMakeLists.txt
@@ -9,4 +9,23 @@ target_link_libraries(dxfformattest
dynstring
${LIBS})
-add_test(DXFOutputTest dxfformattest) \ No newline at end of file
+add_test(DXFOutputTest dxfformattest)
+
+add_executable( pathstest
+ pathstest.c
+ )
+
+target_link_libraries(pathstest
+ dynstring
+ ${LIBS})
+
+add_test(PathsTest pathstest)
+
+add_executable( defaultstest
+ defaultstest.c
+ )
+
+target_link_libraries(defaultstest
+ ${LIBS})
+
+add_test(DefaultsTest defaultstest)
diff --git a/app/bin/unittest/defaultstest.c b/app/bin/unittest/defaultstest.c
new file mode 100644
index 0000000..d877f46
--- /dev/null
+++ b/app/bin/unittest/defaultstest.c
@@ -0,0 +1,110 @@
+/** \file PathsTest.c
+* Unit tests for the paths module
+*/
+
+#include <stdarg.h>
+#include <stddef.h>
+#include <string.h>
+#include <stdio.h>
+#include <setjmp.h>
+#include <cmocka.h>
+
+#include "common.h"
+
+#include "../appdefaults.c"
+
+struct appDefault tests[] = {
+ {"akey"},
+ {"hkey"},
+ {"mkey"},
+ {"zkey"}
+};
+
+
+const char *libDir ="Parameter/directory/";
+
+/**
+ * A dummy for the real MakePath function
+ */
+
+void
+MakeFullpath( char **result, ...)
+{
+ *result = libDir;
+}
+
+#define TESTARRAYSIZE (sizeof(tests) / sizeof(tests[0]) )
+
+struct appDefault test1[] = {
+ { "akey" }
+};
+
+#define TEST1ARRAYSIZE (sizeof(test1) / sizeof(test1[0]) )
+
+
+int
+wPrefGetIntegerBasic(const char *section, const char *name, long *result, long defaultValue)
+{
+ *result = defaultValue;
+ return(TRUE);
+}
+
+int
+wPrefGetFloatBasic(const char *section, const char *name, double *result, double defaultValue)
+{
+ *result = defaultValue;
+ return(TRUE);
+}
+
+const char * wPrefGetStringBasic(const char *section, const char *name)
+{
+ return(NULL);
+}
+
+static void BinarySearch(void **state)
+{
+ int result;
+ (void)state;
+
+ result = binarySearch(tests, 0, TESTARRAYSIZE-1, "nokey");
+ assert_int_equal(result, -1);
+
+ result = binarySearch(tests, 0, TESTARRAYSIZE-1, "akey");
+ assert_int_equal(result, 0);
+
+ result = binarySearch(tests, 1, TESTARRAYSIZE-1, "mkey");
+ assert_int_equal(result, 2);
+
+ result = binarySearch(tests, 0, TESTARRAYSIZE-1, "zkey");
+ assert_int_equal(result, 3);
+
+ result = binarySearch(test1, 0, TEST1ARRAYSIZE-1, "akey");
+ assert_int_equal(result, 0);
+
+ result = binarySearch(test1, 0, TEST1ARRAYSIZE-1, "zkey");
+ assert_int_equal(result, -1);
+
+}
+
+static void GetDefaults(void **state)
+{
+ double value = 0.0;
+ long intValue = 0;
+ (void)state;
+
+ wPrefGetIntegerExt("DialogItem", "cmdopt-preselect", &intValue, 2);
+ assert_int_equal(intValue, 1);
+
+ wPrefGetIntegerExt("DialogItem", "cmdopt-preselect", &intValue, 2);
+ assert_int_equal(intValue, 2);
+
+}
+
+int main(void)
+{
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test(BinarySearch),
+ cmocka_unit_test(GetDefaults)
+ };
+ return cmocka_run_group_tests(tests, NULL, NULL);
+}
diff --git a/app/bin/unittest/pathstest.c b/app/bin/unittest/pathstest.c
new file mode 100644
index 0000000..b7e792e
--- /dev/null
+++ b/app/bin/unittest/pathstest.c
@@ -0,0 +1,121 @@
+/** \file PathsTest.c
+* Unit tests for the paths module
+*/
+
+#include <stdarg.h>
+#include <stddef.h>
+#include <string.h>
+#include <stdio.h>
+#include <setjmp.h>
+#include <cmocka.h>
+
+#include <dynstring.h>
+#include "../paths.h"
+
+#ifdef WINDOWS
+#define TESTPATH "C:\\Test\\Path"
+#define TESTFILENAME "file.test"
+#define TESTFILE TESTPATH "\\" TESTFILENAME
+#define TESTPATH2 "D:\\Root"
+#define TESTFILE2 TESTPATH2 "\\file2."
+
+#define TESTRELATIVEPATH "Test\\Path"
+#define DEFAULTPATH "C:\\Default\\Path"
+#else
+#define TESTPATH "/Test/Path"
+#define TESTFILENAME "file.test"
+#define TESTFILE TESTPATH "/" TESTFILENAME
+#define TESTPATH2 "/Root"
+#define TESTFILE2 TESTPATH2 "/file2."
+
+#define TESTRELATIVEPATH "Test/Path"
+#define DEFAULTPATH "/Default/Path"
+
+#endif //WINDOWS
+void
+wPrefSetString(const char *section, const char *key, const char *value)
+{}
+
+char *wPrefGetStringExt(const char *section, const char *key)
+{
+ return(NULL);
+}
+
+const char *wGetUserHomeDir(void)
+{
+ return(DEFAULTPATH);
+}
+
+#include "../paths.c"
+
+static void SetGetPath(void **state)
+{
+ char *string;
+ (void)state;
+
+ string = GetCurrentPath("Test");
+ assert_string_equal(string, DEFAULTPATH);
+
+ SetCurrentPath("Test", TESTFILE );
+ string = GetCurrentPath("Test");
+ assert_string_equal(string, TESTPATH);
+
+ SetCurrentPath("Test", TESTFILE2);
+ string = GetCurrentPath("Test");
+ assert_string_equal(string, TESTPATH2);
+}
+
+static void Makepath(void **state)
+{
+ (void)state;
+ char *path;
+
+#ifdef WINDOWS
+ MakeFullpath(&path,
+ "C:",
+ TESTRELATIVEPATH,
+ TESTFILENAME,
+ NULL);
+
+ assert_string_equal(path, "C:" TESTRELATIVEPATH "\\" TESTFILENAME);
+#else
+ MakeFullpath(&path,
+ TESTRELATIVEPATH,
+ TESTFILENAME,
+ NULL);
+
+ assert_string_equal(path, TESTRELATIVEPATH "/" TESTFILENAME);
+#endif // WINDOWS
+
+ free(path);
+
+#ifdef WINDOWS
+ MakeFullpath(&path,
+ "C:",
+ "test",
+ "\\subdir",
+ TESTFILENAME,
+ NULL);
+ assert_string_equal(path, "C:test\\subdir\\" TESTFILENAME);
+#else
+ MakeFullpath(&path,
+ "test",
+ "/subdir",
+ TESTFILENAME,
+ NULL);
+ assert_string_equal(path, "test/subdir/" TESTFILENAME);
+
+#endif // WINDOWS
+
+
+ free(path);
+}
+
+int main(void)
+{
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test(SetGetPath),
+ cmocka_unit_test(Makepath),
+ };
+ return cmocka_run_group_tests(tests, NULL, NULL);
+}
diff --git a/app/bin/uthash.h b/app/bin/uthash.h
new file mode 100644
index 0000000..39fd891
--- /dev/null
+++ b/app/bin/uthash.h
@@ -0,0 +1,960 @@
+/*
+Copyright (c) 2003-2014, Troy D. Hanson http://troydhanson.github.com/uthash/
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef UTHASH_H
+#define UTHASH_H
+
+#include <string.h> /* memcmp,strlen */
+#include <stddef.h> /* ptrdiff_t */
+#include <stdlib.h> /* exit() */
+
+/* These macros use decltype or the earlier __typeof GNU extension.
+ As decltype is only available in newer compilers (VS2010 or gcc 4.3+
+ when compiling c++ source) this code uses whatever method is needed
+ or, for VS2008 where neither is available, uses casting workarounds. */
+#if defined(_MSC_VER) /* MS compiler */
+#if _MSC_VER >= 1600 && defined(__cplusplus) /* VS2010 or newer in C++ mode */
+#define DECLTYPE(x) (decltype(x))
+#else /* VS2008 or older (or VS2010 in C mode) */
+#define NO_DECLTYPE
+#define DECLTYPE(x)
+#endif
+#elif defined(__BORLANDC__) || defined(__LCC__) || defined(__WATCOMC__)
+#define NO_DECLTYPE
+#define DECLTYPE(x)
+#else /* GNU, Sun and other compilers */
+#define DECLTYPE(x) (__typeof(x))
+#endif
+
+#ifdef NO_DECLTYPE
+#define DECLTYPE_ASSIGN(dst,src) \
+do { \
+ char **_da_dst = (char**)(&(dst)); \
+ *_da_dst = (char*)(src); \
+} while(0)
+#else
+#define DECLTYPE_ASSIGN(dst,src) \
+do { \
+ (dst) = DECLTYPE(dst)(src); \
+} while(0)
+#endif
+
+/* a number of the hash function use uint32_t which isn't defined on Pre VS2010 */
+#if defined (_WIN32)
+#if defined(_MSC_VER) && _MSC_VER >= 1600
+#include <stdint.h>
+#elif defined(__WATCOMC__)
+#include <stdint.h>
+#else
+typedef unsigned int uint32_t;
+typedef unsigned char uint8_t;
+#endif
+#else
+#include <stdint.h>
+#endif
+
+#define UTHASH_VERSION 1.9.9
+
+#ifndef uthash_fatal
+#define uthash_fatal(msg) exit(-1) /* fatal error (out of memory,etc) */
+#endif
+#ifndef uthash_malloc
+#define uthash_malloc(sz) malloc(sz) /* malloc fcn */
+#endif
+#ifndef uthash_free
+#define uthash_free(ptr,sz) free(ptr) /* free fcn */
+#endif
+
+#ifndef uthash_noexpand_fyi
+#define uthash_noexpand_fyi(tbl) /* can be defined to log noexpand */
+#endif
+#ifndef uthash_expand_fyi
+#define uthash_expand_fyi(tbl) /* can be defined to log expands */
+#endif
+
+/* initial number of buckets */
+#define HASH_INITIAL_NUM_BUCKETS 32 /* initial number of buckets */
+#define HASH_INITIAL_NUM_BUCKETS_LOG2 5 /* lg2 of initial number of buckets */
+#define HASH_BKT_CAPACITY_THRESH 10 /* expand when bucket count reaches */
+
+/* calculate the element whose hash handle address is hhe */
+#define ELMT_FROM_HH(tbl,hhp) ((void*)(((char*)(hhp)) - ((tbl)->hho)))
+
+#define HASH_FIND(hh,head,keyptr,keylen,out) \
+do { \
+ out=NULL; \
+ if (head) { \
+ unsigned _hf_bkt,_hf_hashv; \
+ HASH_FCN(keyptr,keylen, (head)->hh.tbl->num_buckets, _hf_hashv, _hf_bkt); \
+ if (HASH_BLOOM_TEST((head)->hh.tbl, _hf_hashv)) { \
+ HASH_FIND_IN_BKT((head)->hh.tbl, hh, (head)->hh.tbl->buckets[ _hf_bkt ], \
+ keyptr,keylen,out); \
+ } \
+ } \
+} while (0)
+
+#ifdef HASH_BLOOM
+#define HASH_BLOOM_BITLEN (1ULL << HASH_BLOOM)
+#define HASH_BLOOM_BYTELEN (HASH_BLOOM_BITLEN/8) + ((HASH_BLOOM_BITLEN%8) ? 1:0)
+#define HASH_BLOOM_MAKE(tbl) \
+do { \
+ (tbl)->bloom_nbits = HASH_BLOOM; \
+ (tbl)->bloom_bv = (uint8_t*)uthash_malloc(HASH_BLOOM_BYTELEN); \
+ if (!((tbl)->bloom_bv)) { uthash_fatal( "out of memory"); } \
+ memset((tbl)->bloom_bv, 0, HASH_BLOOM_BYTELEN); \
+ (tbl)->bloom_sig = HASH_BLOOM_SIGNATURE; \
+} while (0)
+
+#define HASH_BLOOM_FREE(tbl) \
+do { \
+ uthash_free((tbl)->bloom_bv, HASH_BLOOM_BYTELEN); \
+} while (0)
+
+#define HASH_BLOOM_BITSET(bv,idx) (bv[(idx)/8] |= (1U << ((idx)%8)))
+#define HASH_BLOOM_BITTEST(bv,idx) (bv[(idx)/8] & (1U << ((idx)%8)))
+
+#define HASH_BLOOM_ADD(tbl,hashv) \
+ HASH_BLOOM_BITSET((tbl)->bloom_bv, (hashv & (uint32_t)((1ULL << (tbl)->bloom_nbits) - 1)))
+
+#define HASH_BLOOM_TEST(tbl,hashv) \
+ HASH_BLOOM_BITTEST((tbl)->bloom_bv, (hashv & (uint32_t)((1ULL << (tbl)->bloom_nbits) - 1)))
+
+#else
+#define HASH_BLOOM_MAKE(tbl)
+#define HASH_BLOOM_FREE(tbl)
+#define HASH_BLOOM_ADD(tbl,hashv)
+#define HASH_BLOOM_TEST(tbl,hashv) (1)
+#define HASH_BLOOM_BYTELEN 0
+#endif
+
+#define HASH_MAKE_TABLE(hh,head) \
+do { \
+ (head)->hh.tbl = (UT_hash_table*)uthash_malloc( \
+ sizeof(UT_hash_table)); \
+ if (!((head)->hh.tbl)) { uthash_fatal( "out of memory"); } \
+ memset((head)->hh.tbl, 0, sizeof(UT_hash_table)); \
+ (head)->hh.tbl->tail = &((head)->hh); \
+ (head)->hh.tbl->num_buckets = HASH_INITIAL_NUM_BUCKETS; \
+ (head)->hh.tbl->log2_num_buckets = HASH_INITIAL_NUM_BUCKETS_LOG2; \
+ (head)->hh.tbl->hho = (char*)(&(head)->hh) - (char*)(head); \
+ (head)->hh.tbl->buckets = (UT_hash_bucket*)uthash_malloc( \
+ HASH_INITIAL_NUM_BUCKETS*sizeof(struct UT_hash_bucket)); \
+ if (! (head)->hh.tbl->buckets) { uthash_fatal( "out of memory"); } \
+ memset((head)->hh.tbl->buckets, 0, \
+ HASH_INITIAL_NUM_BUCKETS*sizeof(struct UT_hash_bucket)); \
+ HASH_BLOOM_MAKE((head)->hh.tbl); \
+ (head)->hh.tbl->signature = HASH_SIGNATURE; \
+} while(0)
+
+#define HASH_ADD(hh,head,fieldname,keylen_in,add) \
+ HASH_ADD_KEYPTR(hh,head,&((add)->fieldname),keylen_in,add)
+
+#define HASH_REPLACE(hh,head,fieldname,keylen_in,add,replaced) \
+do { \
+ replaced=NULL; \
+ HASH_FIND(hh,head,&((add)->fieldname),keylen_in,replaced); \
+ if (replaced!=NULL) { \
+ HASH_DELETE(hh,head,replaced); \
+ } \
+ HASH_ADD(hh,head,fieldname,keylen_in,add); \
+} while(0)
+
+#define HASH_ADD_KEYPTR(hh,head,keyptr,keylen_in,add) \
+do { \
+ unsigned _ha_bkt; \
+ (add)->hh.next = NULL; \
+ (add)->hh.key = (char*)(keyptr); \
+ (add)->hh.keylen = (unsigned)(keylen_in); \
+ if (!(head)) { \
+ head = (add); \
+ (head)->hh.prev = NULL; \
+ HASH_MAKE_TABLE(hh,head); \
+ } else { \
+ (head)->hh.tbl->tail->next = (add); \
+ (add)->hh.prev = ELMT_FROM_HH((head)->hh.tbl, (head)->hh.tbl->tail); \
+ (head)->hh.tbl->tail = &((add)->hh); \
+ } \
+ (head)->hh.tbl->num_items++; \
+ (add)->hh.tbl = (head)->hh.tbl; \
+ HASH_FCN(keyptr,keylen_in, (head)->hh.tbl->num_buckets, \
+ (add)->hh.hashv, _ha_bkt); \
+ HASH_ADD_TO_BKT((head)->hh.tbl->buckets[_ha_bkt],&(add)->hh); \
+ HASH_BLOOM_ADD((head)->hh.tbl,(add)->hh.hashv); \
+ HASH_EMIT_KEY(hh,head,keyptr,keylen_in); \
+ HASH_FSCK(hh,head); \
+} while(0)
+
+#define HASH_TO_BKT( hashv, num_bkts, bkt ) \
+do { \
+ bkt = ((hashv) & ((num_bkts) - 1)); \
+} while(0)
+
+/* delete "delptr" from the hash table.
+ * "the usual" patch-up process for the app-order doubly-linked-list.
+ * The use of _hd_hh_del below deserves special explanation.
+ * These used to be expressed using (delptr) but that led to a bug
+ * if someone used the same symbol for the head and deletee, like
+ * HASH_DELETE(hh,users,users);
+ * We want that to work, but by changing the head (users) below
+ * we were forfeiting our ability to further refer to the deletee (users)
+ * in the patch-up process. Solution: use scratch space to
+ * copy the deletee pointer, then the latter references are via that
+ * scratch pointer rather than through the repointed (users) symbol.
+ */
+#define HASH_DELETE(hh,head,delptr) \
+do { \
+ struct UT_hash_handle *_hd_hh_del; \
+ if ( ((delptr)->hh.prev == NULL) && ((delptr)->hh.next == NULL) ) { \
+ uthash_free((head)->hh.tbl->buckets, \
+ (head)->hh.tbl->num_buckets*sizeof(struct UT_hash_bucket) ); \
+ HASH_BLOOM_FREE((head)->hh.tbl); \
+ uthash_free((head)->hh.tbl, sizeof(UT_hash_table)); \
+ head = NULL; \
+ } else { \
+ unsigned _hd_bkt; \
+ _hd_hh_del = &((delptr)->hh); \
+ if ((delptr) == ELMT_FROM_HH((head)->hh.tbl,(head)->hh.tbl->tail)) { \
+ (head)->hh.tbl->tail = \
+ (UT_hash_handle*)((ptrdiff_t)((delptr)->hh.prev) + \
+ (head)->hh.tbl->hho); \
+ } \
+ if ((delptr)->hh.prev) { \
+ ((UT_hash_handle*)((ptrdiff_t)((delptr)->hh.prev) + \
+ (head)->hh.tbl->hho))->next = (delptr)->hh.next; \
+ } else { \
+ DECLTYPE_ASSIGN(head,(delptr)->hh.next); \
+ } \
+ if (_hd_hh_del->next) { \
+ ((UT_hash_handle*)((ptrdiff_t)_hd_hh_del->next + \
+ (head)->hh.tbl->hho))->prev = \
+ _hd_hh_del->prev; \
+ } \
+ HASH_TO_BKT( _hd_hh_del->hashv, (head)->hh.tbl->num_buckets, _hd_bkt); \
+ HASH_DEL_IN_BKT(hh,(head)->hh.tbl->buckets[_hd_bkt], _hd_hh_del); \
+ (head)->hh.tbl->num_items--; \
+ } \
+ HASH_FSCK(hh,head); \
+} while (0)
+
+
+/* convenience forms of HASH_FIND/HASH_ADD/HASH_DEL */
+#define HASH_FIND_STR(head,findstr,out) \
+ HASH_FIND(hh,head,findstr,(unsigned)strlen(findstr),out)
+#define HASH_ADD_STR(head,strfield,add) \
+ HASH_ADD(hh,head,strfield[0],strlen(add->strfield),add)
+#define HASH_REPLACE_STR(head,strfield,add,replaced) \
+ HASH_REPLACE(hh,head,strfield[0],(unsigned)strlen(add->strfield),add,replaced)
+#define HASH_FIND_INT(head,findint,out) \
+ HASH_FIND(hh,head,findint,sizeof(int),out)
+#define HASH_ADD_INT(head,intfield,add) \
+ HASH_ADD(hh,head,intfield,sizeof(int),add)
+#define HASH_REPLACE_INT(head,intfield,add,replaced) \
+ HASH_REPLACE(hh,head,intfield,sizeof(int),add,replaced)
+#define HASH_FIND_PTR(head,findptr,out) \
+ HASH_FIND(hh,head,findptr,sizeof(void *),out)
+#define HASH_ADD_PTR(head,ptrfield,add) \
+ HASH_ADD(hh,head,ptrfield,sizeof(void *),add)
+#define HASH_REPLACE_PTR(head,ptrfield,add,replaced) \
+ HASH_REPLACE(hh,head,ptrfield,sizeof(void *),add,replaced)
+#define HASH_DEL(head,delptr) \
+ HASH_DELETE(hh,head,delptr)
+
+/* HASH_FSCK checks hash integrity on every add/delete when HASH_DEBUG is defined.
+ * This is for uthash developer only; it compiles away if HASH_DEBUG isn't defined.
+ */
+#ifdef HASH_DEBUG
+#define HASH_OOPS(...) do { fprintf(stderr,__VA_ARGS__); exit(-1); } while (0)
+#define HASH_FSCK(hh,head) \
+do { \
+ struct UT_hash_handle *_thh; \
+ if (head) { \
+ unsigned _bkt_i; \
+ unsigned _count; \
+ char *_prev; \
+ _count = 0; \
+ for( _bkt_i = 0; _bkt_i < (head)->hh.tbl->num_buckets; _bkt_i++) { \
+ unsigned _bkt_count = 0; \
+ _thh = (head)->hh.tbl->buckets[_bkt_i].hh_head; \
+ _prev = NULL; \
+ while (_thh) { \
+ if (_prev != (char*)(_thh->hh_prev)) { \
+ HASH_OOPS("invalid hh_prev %p, actual %p\n", \
+ _thh->hh_prev, _prev ); \
+ } \
+ _bkt_count++; \
+ _prev = (char*)(_thh); \
+ _thh = _thh->hh_next; \
+ } \
+ _count += _bkt_count; \
+ if ((head)->hh.tbl->buckets[_bkt_i].count != _bkt_count) { \
+ HASH_OOPS("invalid bucket count %u, actual %u\n", \
+ (head)->hh.tbl->buckets[_bkt_i].count, _bkt_count); \
+ } \
+ } \
+ if (_count != (head)->hh.tbl->num_items) { \
+ HASH_OOPS("invalid hh item count %u, actual %u\n", \
+ (head)->hh.tbl->num_items, _count ); \
+ } \
+ /* traverse hh in app order; check next/prev integrity, count */ \
+ _count = 0; \
+ _prev = NULL; \
+ _thh = &(head)->hh; \
+ while (_thh) { \
+ _count++; \
+ if (_prev !=(char*)(_thh->prev)) { \
+ HASH_OOPS("invalid prev %p, actual %p\n", \
+ _thh->prev, _prev ); \
+ } \
+ _prev = (char*)ELMT_FROM_HH((head)->hh.tbl, _thh); \
+ _thh = ( _thh->next ? (UT_hash_handle*)((char*)(_thh->next) + \
+ (head)->hh.tbl->hho) : NULL ); \
+ } \
+ if (_count != (head)->hh.tbl->num_items) { \
+ HASH_OOPS("invalid app item count %u, actual %u\n", \
+ (head)->hh.tbl->num_items, _count ); \
+ } \
+ } \
+} while (0)
+#else
+#define HASH_FSCK(hh,head)
+#endif
+
+/* When compiled with -DHASH_EMIT_KEYS, length-prefixed keys are emitted to
+ * the descriptor to which this macro is defined for tuning the hash function.
+ * The app can #include <unistd.h> to get the prototype for write(2). */
+#ifdef HASH_EMIT_KEYS
+#define HASH_EMIT_KEY(hh,head,keyptr,fieldlen) \
+do { \
+ unsigned _klen = fieldlen; \
+ write(HASH_EMIT_KEYS, &_klen, sizeof(_klen)); \
+ write(HASH_EMIT_KEYS, keyptr, fieldlen); \
+} while (0)
+#else
+#define HASH_EMIT_KEY(hh,head,keyptr,fieldlen)
+#endif
+
+/* default to Jenkin's hash unless overridden e.g. DHASH_FUNCTION=HASH_SAX */
+#ifdef HASH_FUNCTION
+#define HASH_FCN HASH_FUNCTION
+#else
+#define HASH_FCN HASH_JEN
+#endif
+
+/* The Bernstein hash function, used in Perl prior to v5.6. Note (x<<5+x)=x*33. */
+#define HASH_BER(key,keylen,num_bkts,hashv,bkt) \
+do { \
+ unsigned _hb_keylen=keylen; \
+ const char *_hb_key=(const char*)(key); \
+ (hashv) = 0; \
+ while (_hb_keylen--) { (hashv) = (((hashv) << 5) + (hashv)) + *_hb_key++; } \
+ bkt = (hashv) & (num_bkts-1); \
+} while (0)
+
+
+/* SAX/FNV/OAT/JEN hash functions are macro variants of those listed at
+ * http://eternallyconfuzzled.com/tuts/algorithms/jsw_tut_hashing.aspx */
+#define HASH_SAX(key,keylen,num_bkts,hashv,bkt) \
+do { \
+ unsigned _sx_i; \
+ const char *_hs_key=(const char*)(key); \
+ hashv = 0; \
+ for(_sx_i=0; _sx_i < keylen; _sx_i++) \
+ hashv ^= (hashv << 5) + (hashv >> 2) + _hs_key[_sx_i]; \
+ bkt = hashv & (num_bkts-1); \
+} while (0)
+/* FNV-1a variation */
+#define HASH_FNV(key,keylen,num_bkts,hashv,bkt) \
+do { \
+ unsigned _fn_i; \
+ const char *_hf_key=(const char*)(key); \
+ hashv = 2166136261UL; \
+ for(_fn_i=0; _fn_i < keylen; _fn_i++) { \
+ hashv = hashv ^ _hf_key[_fn_i]; \
+ hashv = hashv * 16777619; \
+ } \
+ bkt = hashv & (num_bkts-1); \
+} while(0)
+
+#define HASH_OAT(key,keylen,num_bkts,hashv,bkt) \
+do { \
+ unsigned _ho_i; \
+ const char *_ho_key=(const char*)(key); \
+ hashv = 0; \
+ for(_ho_i=0; _ho_i < keylen; _ho_i++) { \
+ hashv += _ho_key[_ho_i]; \
+ hashv += (hashv << 10); \
+ hashv ^= (hashv >> 6); \
+ } \
+ hashv += (hashv << 3); \
+ hashv ^= (hashv >> 11); \
+ hashv += (hashv << 15); \
+ bkt = hashv & (num_bkts-1); \
+} while(0)
+
+#define HASH_JEN_MIX(a,b,c) \
+do { \
+ a -= b; a -= c; a ^= ( c >> 13 ); \
+ b -= c; b -= a; b ^= ( a << 8 ); \
+ c -= a; c -= b; c ^= ( b >> 13 ); \
+ a -= b; a -= c; a ^= ( c >> 12 ); \
+ b -= c; b -= a; b ^= ( a << 16 ); \
+ c -= a; c -= b; c ^= ( b >> 5 ); \
+ a -= b; a -= c; a ^= ( c >> 3 ); \
+ b -= c; b -= a; b ^= ( a << 10 ); \
+ c -= a; c -= b; c ^= ( b >> 15 ); \
+} while (0)
+
+#define HASH_JEN(key,keylen,num_bkts,hashv,bkt) \
+do { \
+ unsigned _hj_i,_hj_j,_hj_k; \
+ unsigned const char *_hj_key=(unsigned const char*)(key); \
+ hashv = 0xfeedbeef; \
+ _hj_i = _hj_j = 0x9e3779b9; \
+ _hj_k = (unsigned)(keylen); \
+ while (_hj_k >= 12) { \
+ _hj_i += (_hj_key[0] + ( (unsigned)_hj_key[1] << 8 ) \
+ + ( (unsigned)_hj_key[2] << 16 ) \
+ + ( (unsigned)_hj_key[3] << 24 ) ); \
+ _hj_j += (_hj_key[4] + ( (unsigned)_hj_key[5] << 8 ) \
+ + ( (unsigned)_hj_key[6] << 16 ) \
+ + ( (unsigned)_hj_key[7] << 24 ) ); \
+ hashv += (_hj_key[8] + ( (unsigned)_hj_key[9] << 8 ) \
+ + ( (unsigned)_hj_key[10] << 16 ) \
+ + ( (unsigned)_hj_key[11] << 24 ) ); \
+ \
+ HASH_JEN_MIX(_hj_i, _hj_j, hashv); \
+ \
+ _hj_key += 12; \
+ _hj_k -= 12; \
+ } \
+ hashv += keylen; \
+ switch ( _hj_k ) { \
+ case 11: hashv += ( (unsigned)_hj_key[10] << 24 ); \
+ case 10: hashv += ( (unsigned)_hj_key[9] << 16 ); \
+ case 9: hashv += ( (unsigned)_hj_key[8] << 8 ); \
+ case 8: _hj_j += ( (unsigned)_hj_key[7] << 24 ); \
+ case 7: _hj_j += ( (unsigned)_hj_key[6] << 16 ); \
+ case 6: _hj_j += ( (unsigned)_hj_key[5] << 8 ); \
+ case 5: _hj_j += _hj_key[4]; \
+ case 4: _hj_i += ( (unsigned)_hj_key[3] << 24 ); \
+ case 3: _hj_i += ( (unsigned)_hj_key[2] << 16 ); \
+ case 2: _hj_i += ( (unsigned)_hj_key[1] << 8 ); \
+ case 1: _hj_i += _hj_key[0]; \
+ } \
+ HASH_JEN_MIX(_hj_i, _hj_j, hashv); \
+ bkt = hashv & (num_bkts-1); \
+} while(0)
+
+/* The Paul Hsieh hash function */
+#undef get16bits
+#if (defined(__GNUC__) && defined(__i386__)) || defined(__WATCOMC__) \
+ || defined(_MSC_VER) || defined (__BORLANDC__) || defined (__TURBOC__)
+#define get16bits(d) (*((const uint16_t *) (d)))
+#endif
+
+#if !defined (get16bits)
+#define get16bits(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8) \
+ +(uint32_t)(((const uint8_t *)(d))[0]) )
+#endif
+#define HASH_SFH(key,keylen,num_bkts,hashv,bkt) \
+do { \
+ unsigned const char *_sfh_key=(unsigned const char*)(key); \
+ uint32_t _sfh_tmp, _sfh_len = keylen; \
+ \
+ int _sfh_rem = _sfh_len & 3; \
+ _sfh_len >>= 2; \
+ hashv = 0xcafebabe; \
+ \
+ /* Main loop */ \
+ for (;_sfh_len > 0; _sfh_len--) { \
+ hashv += get16bits (_sfh_key); \
+ _sfh_tmp = (uint32_t)(get16bits (_sfh_key+2)) << 11 ^ hashv; \
+ hashv = (hashv << 16) ^ _sfh_tmp; \
+ _sfh_key += 2*sizeof (uint16_t); \
+ hashv += hashv >> 11; \
+ } \
+ \
+ /* Handle end cases */ \
+ switch (_sfh_rem) { \
+ case 3: hashv += get16bits (_sfh_key); \
+ hashv ^= hashv << 16; \
+ hashv ^= (uint32_t)(_sfh_key[sizeof (uint16_t)] << 18); \
+ hashv += hashv >> 11; \
+ break; \
+ case 2: hashv += get16bits (_sfh_key); \
+ hashv ^= hashv << 11; \
+ hashv += hashv >> 17; \
+ break; \
+ case 1: hashv += *_sfh_key; \
+ hashv ^= hashv << 10; \
+ hashv += hashv >> 1; \
+ } \
+ \
+ /* Force "avalanching" of final 127 bits */ \
+ hashv ^= hashv << 3; \
+ hashv += hashv >> 5; \
+ hashv ^= hashv << 4; \
+ hashv += hashv >> 17; \
+ hashv ^= hashv << 25; \
+ hashv += hashv >> 6; \
+ bkt = hashv & (num_bkts-1); \
+} while(0)
+
+#ifdef HASH_USING_NO_STRICT_ALIASING
+/* The MurmurHash exploits some CPU's (x86,x86_64) tolerance for unaligned reads.
+ * For other types of CPU's (e.g. Sparc) an unaligned read causes a bus error.
+ * MurmurHash uses the faster approach only on CPU's where we know it's safe.
+ *
+ * Note the preprocessor built-in defines can be emitted using:
+ *
+ * gcc -m64 -dM -E - < /dev/null (on gcc)
+ * cc -## a.c (where a.c is a simple test file) (Sun Studio)
+ */
+#if (defined(__i386__) || defined(__x86_64__) || defined(_M_IX86))
+#define MUR_GETBLOCK(p,i) p[i]
+#else /* non intel */
+#define MUR_PLUS0_ALIGNED(p) (((unsigned long)p & 0x3) == 0)
+#define MUR_PLUS1_ALIGNED(p) (((unsigned long)p & 0x3) == 1)
+#define MUR_PLUS2_ALIGNED(p) (((unsigned long)p & 0x3) == 2)
+#define MUR_PLUS3_ALIGNED(p) (((unsigned long)p & 0x3) == 3)
+#define WP(p) ((uint32_t*)((unsigned long)(p) & ~3UL))
+#if (defined(__BIG_ENDIAN__) || defined(SPARC) || defined(__ppc__) || defined(__ppc64__))
+#define MUR_THREE_ONE(p) ((((*WP(p))&0x00ffffff) << 8) | (((*(WP(p)+1))&0xff000000) >> 24))
+#define MUR_TWO_TWO(p) ((((*WP(p))&0x0000ffff) <<16) | (((*(WP(p)+1))&0xffff0000) >> 16))
+#define MUR_ONE_THREE(p) ((((*WP(p))&0x000000ff) <<24) | (((*(WP(p)+1))&0xffffff00) >> 8))
+#else /* assume little endian non-intel */
+#define MUR_THREE_ONE(p) ((((*WP(p))&0xffffff00) >> 8) | (((*(WP(p)+1))&0x000000ff) << 24))
+#define MUR_TWO_TWO(p) ((((*WP(p))&0xffff0000) >>16) | (((*(WP(p)+1))&0x0000ffff) << 16))
+#define MUR_ONE_THREE(p) ((((*WP(p))&0xff000000) >>24) | (((*(WP(p)+1))&0x00ffffff) << 8))
+#endif
+#define MUR_GETBLOCK(p,i) (MUR_PLUS0_ALIGNED(p) ? ((p)[i]) : \
+ (MUR_PLUS1_ALIGNED(p) ? MUR_THREE_ONE(p) : \
+ (MUR_PLUS2_ALIGNED(p) ? MUR_TWO_TWO(p) : \
+ MUR_ONE_THREE(p))))
+#endif
+#define MUR_ROTL32(x,r) (((x) << (r)) | ((x) >> (32 - (r))))
+#define MUR_FMIX(_h) \
+do { \
+ _h ^= _h >> 16; \
+ _h *= 0x85ebca6b; \
+ _h ^= _h >> 13; \
+ _h *= 0xc2b2ae35l; \
+ _h ^= _h >> 16; \
+} while(0)
+
+#define HASH_MUR(key,keylen,num_bkts,hashv,bkt) \
+do { \
+ const uint8_t *_mur_data = (const uint8_t*)(key); \
+ const int _mur_nblocks = (keylen) / 4; \
+ uint32_t _mur_h1 = 0xf88D5353; \
+ uint32_t _mur_c1 = 0xcc9e2d51; \
+ uint32_t _mur_c2 = 0x1b873593; \
+ uint32_t _mur_k1 = 0; \
+ const uint8_t *_mur_tail; \
+ const uint32_t *_mur_blocks = (const uint32_t*)(_mur_data+_mur_nblocks*4); \
+ int _mur_i; \
+ for(_mur_i = -_mur_nblocks; _mur_i; _mur_i++) { \
+ _mur_k1 = MUR_GETBLOCK(_mur_blocks,_mur_i); \
+ _mur_k1 *= _mur_c1; \
+ _mur_k1 = MUR_ROTL32(_mur_k1,15); \
+ _mur_k1 *= _mur_c2; \
+ \
+ _mur_h1 ^= _mur_k1; \
+ _mur_h1 = MUR_ROTL32(_mur_h1,13); \
+ _mur_h1 = _mur_h1*5+0xe6546b64; \
+ } \
+ _mur_tail = (const uint8_t*)(_mur_data + _mur_nblocks*4); \
+ _mur_k1=0; \
+ switch((keylen) & 3) { \
+ case 3: _mur_k1 ^= _mur_tail[2] << 16; \
+ case 2: _mur_k1 ^= _mur_tail[1] << 8; \
+ case 1: _mur_k1 ^= _mur_tail[0]; \
+ _mur_k1 *= _mur_c1; \
+ _mur_k1 = MUR_ROTL32(_mur_k1,15); \
+ _mur_k1 *= _mur_c2; \
+ _mur_h1 ^= _mur_k1; \
+ } \
+ _mur_h1 ^= (keylen); \
+ MUR_FMIX(_mur_h1); \
+ hashv = _mur_h1; \
+ bkt = hashv & (num_bkts-1); \
+} while(0)
+#endif /* HASH_USING_NO_STRICT_ALIASING */
+
+/* key comparison function; return 0 if keys equal */
+#define HASH_KEYCMP(a,b,len) memcmp(a,b,len)
+
+/* iterate over items in a known bucket to find desired item */
+#define HASH_FIND_IN_BKT(tbl,hh,head,keyptr,keylen_in,out) \
+do { \
+ if (head.hh_head) DECLTYPE_ASSIGN(out,ELMT_FROM_HH(tbl,head.hh_head)); \
+ else out=NULL; \
+ while (out) { \
+ if ((out)->hh.keylen == keylen_in) { \
+ if ((HASH_KEYCMP((out)->hh.key,keyptr,keylen_in)) == 0) break; \
+ } \
+ if ((out)->hh.hh_next) DECLTYPE_ASSIGN(out,ELMT_FROM_HH(tbl,(out)->hh.hh_next)); \
+ else out = NULL; \
+ } \
+} while(0)
+
+/* add an item to a bucket */
+#define HASH_ADD_TO_BKT(head,addhh) \
+do { \
+ head.count++; \
+ (addhh)->hh_next = head.hh_head; \
+ (addhh)->hh_prev = NULL; \
+ if (head.hh_head) { (head).hh_head->hh_prev = (addhh); } \
+ (head).hh_head=addhh; \
+ if (head.count >= ((head.expand_mult+1) * HASH_BKT_CAPACITY_THRESH) \
+ && (addhh)->tbl->noexpand != 1) { \
+ HASH_EXPAND_BUCKETS((addhh)->tbl); \
+ } \
+} while(0)
+
+/* remove an item from a given bucket */
+#define HASH_DEL_IN_BKT(hh,head,hh_del) \
+ (head).count--; \
+ if ((head).hh_head == hh_del) { \
+ (head).hh_head = hh_del->hh_next; \
+ } \
+ if (hh_del->hh_prev) { \
+ hh_del->hh_prev->hh_next = hh_del->hh_next; \
+ } \
+ if (hh_del->hh_next) { \
+ hh_del->hh_next->hh_prev = hh_del->hh_prev; \
+ }
+
+/* Bucket expansion has the effect of doubling the number of buckets
+ * and redistributing the items into the new buckets. Ideally the
+ * items will distribute more or less evenly into the new buckets
+ * (the extent to which this is true is a measure of the quality of
+ * the hash function as it applies to the key domain).
+ *
+ * With the items distributed into more buckets, the chain length
+ * (item count) in each bucket is reduced. Thus by expanding buckets
+ * the hash keeps a bound on the chain length. This bounded chain
+ * length is the essence of how a hash provides constant time lookup.
+ *
+ * The calculation of tbl->ideal_chain_maxlen below deserves some
+ * explanation. First, keep in mind that we're calculating the ideal
+ * maximum chain length based on the *new* (doubled) bucket count.
+ * In fractions this is just n/b (n=number of items,b=new num buckets).
+ * Since the ideal chain length is an integer, we want to calculate
+ * ceil(n/b). We don't depend on floating point arithmetic in this
+ * hash, so to calculate ceil(n/b) with integers we could write
+ *
+ * ceil(n/b) = (n/b) + ((n%b)?1:0)
+ *
+ * and in fact a previous version of this hash did just that.
+ * But now we have improved things a bit by recognizing that b is
+ * always a power of two. We keep its base 2 log handy (call it lb),
+ * so now we can write this with a bit shift and logical AND:
+ *
+ * ceil(n/b) = (n>>lb) + ( (n & (b-1)) ? 1:0)
+ *
+ */
+#define HASH_EXPAND_BUCKETS(tbl) \
+do { \
+ unsigned _he_bkt; \
+ unsigned _he_bkt_i; \
+ struct UT_hash_handle *_he_thh, *_he_hh_nxt; \
+ UT_hash_bucket *_he_new_buckets, *_he_newbkt; \
+ _he_new_buckets = (UT_hash_bucket*)uthash_malloc( \
+ 2 * tbl->num_buckets * sizeof(struct UT_hash_bucket)); \
+ if (!_he_new_buckets) { uthash_fatal( "out of memory"); } \
+ memset(_he_new_buckets, 0, \
+ 2 * tbl->num_buckets * sizeof(struct UT_hash_bucket)); \
+ tbl->ideal_chain_maxlen = \
+ (tbl->num_items >> (tbl->log2_num_buckets+1)) + \
+ ((tbl->num_items & ((tbl->num_buckets*2)-1)) ? 1 : 0); \
+ tbl->nonideal_items = 0; \
+ for(_he_bkt_i = 0; _he_bkt_i < tbl->num_buckets; _he_bkt_i++) \
+ { \
+ _he_thh = tbl->buckets[ _he_bkt_i ].hh_head; \
+ while (_he_thh) { \
+ _he_hh_nxt = _he_thh->hh_next; \
+ HASH_TO_BKT( _he_thh->hashv, tbl->num_buckets*2, _he_bkt); \
+ _he_newbkt = &(_he_new_buckets[ _he_bkt ]); \
+ if (++(_he_newbkt->count) > tbl->ideal_chain_maxlen) { \
+ tbl->nonideal_items++; \
+ _he_newbkt->expand_mult = _he_newbkt->count / \
+ tbl->ideal_chain_maxlen; \
+ } \
+ _he_thh->hh_prev = NULL; \
+ _he_thh->hh_next = _he_newbkt->hh_head; \
+ if (_he_newbkt->hh_head) _he_newbkt->hh_head->hh_prev = \
+ _he_thh; \
+ _he_newbkt->hh_head = _he_thh; \
+ _he_thh = _he_hh_nxt; \
+ } \
+ } \
+ uthash_free( tbl->buckets, tbl->num_buckets*sizeof(struct UT_hash_bucket) ); \
+ tbl->num_buckets *= 2; \
+ tbl->log2_num_buckets++; \
+ tbl->buckets = _he_new_buckets; \
+ tbl->ineff_expands = (tbl->nonideal_items > (tbl->num_items >> 1)) ? \
+ (tbl->ineff_expands+1) : 0; \
+ if (tbl->ineff_expands > 1) { \
+ tbl->noexpand=1; \
+ uthash_noexpand_fyi(tbl); \
+ } \
+ uthash_expand_fyi(tbl); \
+} while(0)
+
+
+/* This is an adaptation of Simon Tatham's O(n log(n)) mergesort */
+/* Note that HASH_SORT assumes the hash handle name to be hh.
+ * HASH_SRT was added to allow the hash handle name to be passed in. */
+#define HASH_SORT(head,cmpfcn) HASH_SRT(hh,head,cmpfcn)
+#define HASH_SRT(hh,head,cmpfcn) \
+do { \
+ unsigned _hs_i; \
+ unsigned _hs_looping,_hs_nmerges,_hs_insize,_hs_psize,_hs_qsize; \
+ struct UT_hash_handle *_hs_p, *_hs_q, *_hs_e, *_hs_list, *_hs_tail; \
+ if (head) { \
+ _hs_insize = 1; \
+ _hs_looping = 1; \
+ _hs_list = &((head)->hh); \
+ while (_hs_looping) { \
+ _hs_p = _hs_list; \
+ _hs_list = NULL; \
+ _hs_tail = NULL; \
+ _hs_nmerges = 0; \
+ while (_hs_p) { \
+ _hs_nmerges++; \
+ _hs_q = _hs_p; \
+ _hs_psize = 0; \
+ for ( _hs_i = 0; _hs_i < _hs_insize; _hs_i++ ) { \
+ _hs_psize++; \
+ _hs_q = (UT_hash_handle*)((_hs_q->next) ? \
+ ((void*)((char*)(_hs_q->next) + \
+ (head)->hh.tbl->hho)) : NULL); \
+ if (! (_hs_q) ) break; \
+ } \
+ _hs_qsize = _hs_insize; \
+ while ((_hs_psize > 0) || ((_hs_qsize > 0) && _hs_q )) { \
+ if (_hs_psize == 0) { \
+ _hs_e = _hs_q; \
+ _hs_q = (UT_hash_handle*)((_hs_q->next) ? \
+ ((void*)((char*)(_hs_q->next) + \
+ (head)->hh.tbl->hho)) : NULL); \
+ _hs_qsize--; \
+ } else if ( (_hs_qsize == 0) || !(_hs_q) ) { \
+ _hs_e = _hs_p; \
+ if (_hs_p){ \
+ _hs_p = (UT_hash_handle*)((_hs_p->next) ? \
+ ((void*)((char*)(_hs_p->next) + \
+ (head)->hh.tbl->hho)) : NULL); \
+ } \
+ _hs_psize--; \
+ } else if (( \
+ cmpfcn(DECLTYPE(head)(ELMT_FROM_HH((head)->hh.tbl,_hs_p)), \
+ DECLTYPE(head)(ELMT_FROM_HH((head)->hh.tbl,_hs_q))) \
+ ) <= 0) { \
+ _hs_e = _hs_p; \
+ if (_hs_p){ \
+ _hs_p = (UT_hash_handle*)((_hs_p->next) ? \
+ ((void*)((char*)(_hs_p->next) + \
+ (head)->hh.tbl->hho)) : NULL); \
+ } \
+ _hs_psize--; \
+ } else { \
+ _hs_e = _hs_q; \
+ _hs_q = (UT_hash_handle*)((_hs_q->next) ? \
+ ((void*)((char*)(_hs_q->next) + \
+ (head)->hh.tbl->hho)) : NULL); \
+ _hs_qsize--; \
+ } \
+ if ( _hs_tail ) { \
+ _hs_tail->next = ((_hs_e) ? \
+ ELMT_FROM_HH((head)->hh.tbl,_hs_e) : NULL); \
+ } else { \
+ _hs_list = _hs_e; \
+ } \
+ if (_hs_e) { \
+ _hs_e->prev = ((_hs_tail) ? \
+ ELMT_FROM_HH((head)->hh.tbl,_hs_tail) : NULL); \
+ } \
+ _hs_tail = _hs_e; \
+ } \
+ _hs_p = _hs_q; \
+ } \
+ if (_hs_tail){ \
+ _hs_tail->next = NULL; \
+ } \
+ if ( _hs_nmerges <= 1 ) { \
+ _hs_looping=0; \
+ (head)->hh.tbl->tail = _hs_tail; \
+ DECLTYPE_ASSIGN(head,ELMT_FROM_HH((head)->hh.tbl, _hs_list)); \
+ } \
+ _hs_insize *= 2; \
+ } \
+ HASH_FSCK(hh,head); \
+ } \
+} while (0)
+
+/* This function selects items from one hash into another hash.
+ * The end result is that the selected items have dual presence
+ * in both hashes. There is no copy of the items made; rather
+ * they are added into the new hash through a secondary hash
+ * hash handle that must be present in the structure. */
+#define HASH_SELECT(hh_dst, dst, hh_src, src, cond) \
+do { \
+ unsigned _src_bkt, _dst_bkt; \
+ void *_last_elt=NULL, *_elt; \
+ UT_hash_handle *_src_hh, *_dst_hh, *_last_elt_hh=NULL; \
+ ptrdiff_t _dst_hho = ((char*)(&(dst)->hh_dst) - (char*)(dst)); \
+ if (src) { \
+ for(_src_bkt=0; _src_bkt < (src)->hh_src.tbl->num_buckets; _src_bkt++) { \
+ for(_src_hh = (src)->hh_src.tbl->buckets[_src_bkt].hh_head; \
+ _src_hh; \
+ _src_hh = _src_hh->hh_next) { \
+ _elt = ELMT_FROM_HH((src)->hh_src.tbl, _src_hh); \
+ if (cond(_elt)) { \
+ _dst_hh = (UT_hash_handle*)(((char*)_elt) + _dst_hho); \
+ _dst_hh->key = _src_hh->key; \
+ _dst_hh->keylen = _src_hh->keylen; \
+ _dst_hh->hashv = _src_hh->hashv; \
+ _dst_hh->prev = _last_elt; \
+ _dst_hh->next = NULL; \
+ if (_last_elt_hh) { _last_elt_hh->next = _elt; } \
+ if (!dst) { \
+ DECLTYPE_ASSIGN(dst,_elt); \
+ HASH_MAKE_TABLE(hh_dst,dst); \
+ } else { \
+ _dst_hh->tbl = (dst)->hh_dst.tbl; \
+ } \
+ HASH_TO_BKT(_dst_hh->hashv, _dst_hh->tbl->num_buckets, _dst_bkt); \
+ HASH_ADD_TO_BKT(_dst_hh->tbl->buckets[_dst_bkt],_dst_hh); \
+ (dst)->hh_dst.tbl->num_items++; \
+ _last_elt = _elt; \
+ _last_elt_hh = _dst_hh; \
+ } \
+ } \
+ } \
+ } \
+ HASH_FSCK(hh_dst,dst); \
+} while (0)
+
+#define HASH_CLEAR(hh,head) \
+do { \
+ if (head) { \
+ uthash_free((head)->hh.tbl->buckets, \
+ (head)->hh.tbl->num_buckets*sizeof(struct UT_hash_bucket)); \
+ HASH_BLOOM_FREE((head)->hh.tbl); \
+ uthash_free((head)->hh.tbl, sizeof(UT_hash_table)); \
+ (head)=NULL; \
+ } \
+} while(0)
+
+#define HASH_OVERHEAD(hh,head) \
+ ((head) ? ( \
+ (size_t)((((head)->hh.tbl->num_items * sizeof(UT_hash_handle)) + \
+ ((head)->hh.tbl->num_buckets * sizeof(UT_hash_bucket)) + \
+ (sizeof(UT_hash_table)) + \
+ (HASH_BLOOM_BYTELEN)))) : 0)
+
+#ifdef NO_DECLTYPE
+#define HASH_ITER(hh,head,el,tmp) \
+for((el)=(head), (*(char**)(&(tmp)))=(char*)((head)?(head)->hh.next:NULL); \
+ el; (el)=(tmp),(*(char**)(&(tmp)))=(char*)((tmp)?(tmp)->hh.next:NULL))
+#else
+#define HASH_ITER(hh,head,el,tmp) \
+for((el)=(head),(tmp)=DECLTYPE(el)((head)?(head)->hh.next:NULL); \
+ el; (el)=(tmp),(tmp)=DECLTYPE(el)((tmp)?(tmp)->hh.next:NULL))
+#endif
+
+/* obtain a count of items in the hash */
+#define HASH_COUNT(head) HASH_CNT(hh,head)
+#define HASH_CNT(hh,head) ((head)?((head)->hh.tbl->num_items):0)
+
+typedef struct UT_hash_bucket {
+ struct UT_hash_handle *hh_head;
+ unsigned count;
+
+ /* expand_mult is normally set to 0. In this situation, the max chain length
+ * threshold is enforced at its default value, HASH_BKT_CAPACITY_THRESH. (If
+ * the bucket's chain exceeds this length, bucket expansion is triggered).
+ * However, setting expand_mult to a non-zero value delays bucket expansion
+ * (that would be triggered by additions to this particular bucket)
+ * until its chain length reaches a *multiple* of HASH_BKT_CAPACITY_THRESH.
+ * (The multiplier is simply expand_mult+1). The whole idea of this
+ * multiplier is to reduce bucket expansions, since they are expensive, in
+ * situations where we know that a particular bucket tends to be overused.
+ * It is better to let its chain length grow to a longer yet-still-bounded
+ * value, than to do an O(n) bucket expansion too often.
+ */
+ unsigned expand_mult;
+
+} UT_hash_bucket;
+
+/* random signature used only to find hash tables in external analysis */
+#define HASH_SIGNATURE 0xa0111fe1
+#define HASH_BLOOM_SIGNATURE 0xb12220f2
+
+typedef struct UT_hash_table {
+ UT_hash_bucket *buckets;
+ unsigned num_buckets, log2_num_buckets;
+ unsigned num_items;
+ struct UT_hash_handle *tail; /* tail hh in app order, for fast append */
+ ptrdiff_t hho; /* hash handle offset (byte pos of hash handle in element */
+
+ /* in an ideal situation (all buckets used equally), no bucket would have
+ * more than ceil(#items/#buckets) items. that's the ideal chain length. */
+ unsigned ideal_chain_maxlen;
+
+ /* nonideal_items is the number of items in the hash whose chain position
+ * exceeds the ideal chain maxlen. these items pay the penalty for an uneven
+ * hash distribution; reaching them in a chain traversal takes >ideal steps */
+ unsigned nonideal_items;
+
+ /* ineffective expands occur when a bucket doubling was performed, but
+ * afterward, more than half the items in the hash had nonideal chain
+ * positions. If this happens on two consecutive expansions we inhibit any
+ * further expansion, as it's not helping; this happens when the hash
+ * function isn't a good fit for the key domain. When expansion is inhibited
+ * the hash will still work, albeit no longer in constant time. */
+ unsigned ineff_expands, noexpand;
+
+ uint32_t signature; /* used only to find hash tables in external analysis */
+#ifdef HASH_BLOOM
+ uint32_t bloom_sig; /* used only to test bloom exists in external analysis */
+ uint8_t *bloom_bv;
+ char bloom_nbits;
+#endif
+
+} UT_hash_table;
+
+typedef struct UT_hash_handle {
+ struct UT_hash_table *tbl;
+ void *prev; /* prev element in app order */
+ void *next; /* next element in app order */
+ struct UT_hash_handle *hh_prev; /* previous hh in bucket order */
+ struct UT_hash_handle *hh_next; /* next hh in bucket order */
+ void *key; /* ptr to enclosing struct's key */
+ unsigned keylen; /* enclosing struct's key len */
+ unsigned hashv; /* result of hash-fcn(key) */
+} UT_hash_handle;
+
+#endif /* UTHASH_H */
diff --git a/app/bin/utility.c b/app/bin/utility.c
index 9708ac4..d1f798c 100644
--- a/app/bin/utility.c
+++ b/app/bin/utility.c
@@ -82,6 +82,22 @@ double NormalizeAngle( double a )
return a;
}
+double DifferenceBetweenAngles(double a, double b) {
+ double difference = b - a;
+ while (difference < -180) difference += 360;
+ while (difference > 180) difference -= 360;
+ return difference;
+}
+
+int AngleInRange(double a, double start, double size) {
+ if (DifferenceBetweenAngles(start+size,a)<=0.0) {
+ if (DifferenceBetweenAngles(start,a)>=0.0)
+ return 0;
+ else return 1;
+ }
+ return -1;
+}
+
int IsAligned( double a1, double a2 )
diff --git a/app/bin/utility.h b/app/bin/utility.h
index ccf85e4..8666e6b 100644
--- a/app/bin/utility.h
+++ b/app/bin/utility.h
@@ -1,5 +1,5 @@
-/*
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/utility.h,v 1.1 2005-12-07 15:47:39 rc-flyer Exp $
+/** \file utility.h
+ * Prototypes for misc utility functions
*/
/* XTrkCad - Model Railroad CAD
@@ -23,6 +23,8 @@
#ifndef UTILITY_H
#define UTILITY_H
+#include "common.h"
+
#ifndef TRUE
#define TRUE 1
#define FALSE 0
@@ -43,6 +45,8 @@ double min( double a, double b );
#endif
double FindDistance( coOrd p0, coOrd p1 );
double NormalizeAngle( double a );
+double DifferenceBetweenAngles(double a, double b);
+int AngleInRange(double a, double start, double size);
int IsAligned( double a1, double a2 );
double D2R( double D );
double R2D( double R );
diff --git a/app/bin/version.h b/app/bin/version.h
index 3441687..2b2e6ff 100644
--- a/app/bin/version.h
+++ b/app/bin/version.h
@@ -1,4 +1,5 @@
-/* $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/version.h,v 1.9 2008-01-29 04:10:23 tshead Exp $
+/** \file version.h
+ *
*/
/* XTrkCad - Model Railroad CAD
@@ -19,6 +20,8 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#ifndef HAVE_VERSION_H
+#define HAVE_VERSION_H
#ifdef XTRKCAD_CMAKE_BUILD
#include "xtrkcad-config.h"
@@ -36,4 +39,4 @@
#define MINPARAMVERSION (1)
#endif
-
+#endif //HAVE_VERSION_H
diff --git a/app/cornu/CMakeLists.txt b/app/cornu/CMakeLists.txt
new file mode 100644
index 0000000..b54fc80
--- /dev/null
+++ b/app/cornu/CMakeLists.txt
@@ -0,0 +1,27 @@
+PROJECT(cornu)
+
+FILE(GLOB HEADERS *.h)
+
+SET(SOURCES
+ bezctx.c
+ bezctx_xtrkcad.c
+ spiroentrypoints.c
+ spiro.c
+ )
+
+SET(HEADERS
+ spiro.h
+ )
+
+
+INCLUDE_DIRECTORIES(${XTrkCAD_BINARY_DIR})
+INCLUDE_DIRECTORIES(${XTrkCAD_SOURCE_DIR})
+INCLUDE_DIRECTORIES(${wlib_SOURCE_DIR}/include)
+INCLUDE_DIRECTORIES(${help_BINARY_DIR})
+
+ADD_LIBRARY(xtrkcad-cornu ${HEADERS} ${SOURCES})
+
+
+
+
+
diff --git a/app/cornu/bezctx.c b/app/cornu/bezctx.c
new file mode 100644
index 0000000..722f5db
--- /dev/null
+++ b/app/cornu/bezctx.c
@@ -0,0 +1,48 @@
+/*
+ppedit - A pattern plate editor for Spiro splines.
+Copyright (C) 2007 Raph Levien
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301, USA.
+
+*/
+#include "bezctx.h"
+
+void bezctx_moveto(bezctx *bc, double x, double y, int is_open)
+{
+ bc->moveto(bc, x, y, is_open);
+}
+
+void bezctx_lineto(bezctx *bc, double x, double y)
+{
+ bc->lineto(bc, x, y);
+}
+
+void bezctx_quadto(bezctx *bc, double x1, double y1, double x2, double y2)
+{
+ bc->quadto(bc, x1, y1, x2, y2);
+}
+
+void bezctx_curveto(bezctx *bc, double x1, double y1, double x2, double y2,
+ double x3, double y3)
+{
+ bc->curveto(bc, x1, y1, x2, y2, x3, y3);
+}
+
+void bezctx_mark_knot(bezctx *bc, int knot_idx)
+{
+ if (bc->mark_knot)
+ bc->mark_knot(bc, knot_idx);
+}
diff --git a/app/cornu/bezctx.h b/app/cornu/bezctx.h
new file mode 100644
index 0000000..1216be9
--- /dev/null
+++ b/app/cornu/bezctx.h
@@ -0,0 +1,13 @@
+#ifndef _BEZCTX_H
+#define _BEZCTX_H
+#include "bezctx_intf.h"
+
+struct _bezctx {
+ void (*moveto)(bezctx *bc, double x, double y, int is_open);
+ void (*lineto)(bezctx *bc, double x, double y);
+ void (*quadto)(bezctx *bc, double x1, double y1, double x2, double y2);
+ void (*curveto)(bezctx *bc, double x1, double y1, double x2, double y2,
+ double x3, double y3);
+ void (*mark_knot)(bezctx *bc, int knot_idx);
+};
+#endif
diff --git a/app/cornu/bezctx_intf.h b/app/cornu/bezctx_intf.h
new file mode 100644
index 0000000..4e488c6
--- /dev/null
+++ b/app/cornu/bezctx_intf.h
@@ -0,0 +1,23 @@
+#ifndef _BEZCTX_INTF_H
+#define _BEZCTX_INTF_H
+typedef struct _bezctx bezctx;
+
+bezctx *
+new_bezctx(void);
+
+void
+bezctx_moveto(bezctx *bc, double x, double y, int is_open);
+
+void
+bezctx_lineto(bezctx *bc, double x, double y);
+
+void
+bezctx_quadto(bezctx *bc, double x1, double y1, double x2, double y2);
+
+void
+bezctx_curveto(bezctx *bc, double x1, double y1, double x2, double y2,
+ double x3, double y3);
+
+void
+bezctx_mark_knot(bezctx *bc, int knot_idx);
+#endif
diff --git a/app/cornu/bezctx_xtrkcad.c b/app/cornu/bezctx_xtrkcad.c
new file mode 100644
index 0000000..1b902b2
--- /dev/null
+++ b/app/cornu/bezctx_xtrkcad.c
@@ -0,0 +1,217 @@
+/*
+xtrkcad_spiro - An adapter for Spiro splines within XtrkCAD.
+
+Copyright (C) XtrkCad.org, based on the Spiro Toolkit of Ralph Levien.
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301, USA.
+
+*/
+
+
+#include "zmisc.h"
+#include "common.h"
+#include "bezctx.h"
+#include "bezctx_xtrkcad.h"
+#include "track.h"
+#include "tbezier.h"
+#include "i18n.h"
+#include "math.h"
+#include "utility.h"
+
+#define trkSeg(N) DYNARR_N(trkSeg_t,* bc->segsArray, N );
+
+
+typedef struct {
+ bezctx base;
+ dynArr_t * segsArray;
+ BOOL_T track;
+ BOOL_T is_open;
+ BOOL_T has_NAN;
+ BOOL_T draw_spots;
+ coOrd last_pos; // For moveTo
+ int ends[2]; //Start and End knot number
+
+} bezctx_xtrkcad;
+
+static void
+bezctx_xtrkcad_moveto(bezctx *z, double x, double y, int is_open) {
+ bezctx_xtrkcad *bc = (bezctx_xtrkcad *)z;
+ bc->last_pos.x = x;
+ bc->last_pos.y = y;
+ if (!(isfinite(x) && isfinite(y))) {
+ bc->has_NAN = TRUE;
+ return;
+ }
+}
+
+static void
+bezctx_xtrkcad_lineto(bezctx *z, double x, double y) {
+
+ bezctx_xtrkcad *bc = (bezctx_xtrkcad *)z;
+ if (!(isfinite(x) && isfinite(y))) {
+ bc->has_NAN = TRUE;
+ }
+ if (!bc->is_open || bc->has_NAN) {
+ bc->last_pos.x = x;
+ bc->last_pos.y = y;
+ return;
+ }
+ DYNARR_APPEND(trkSeg_t,* bc->segsArray,10);
+ trkSeg_p seg = &trkSeg(bc->segsArray->cnt-1);
+ seg->u.l.pos[0].x = bc->last_pos.x;
+ seg->u.l.pos[0].y = bc->last_pos.y;
+ seg->u.l.pos[1].x = x;
+ seg->u.l.pos[1].y = y;
+ seg->u.l.option = 0;
+ seg->width = 0.0;
+ seg->color = wDrawColorBlack;
+ seg->type = SEG_STRTRK;
+ if (seg->bezSegs.ptr) MyFree(seg->bezSegs.ptr);
+ seg->bezSegs.max =0;
+ seg->bezSegs.cnt = 0;
+ seg->bezSegs.ptr = NULL;
+ seg->u.l.angle = FindAngle(seg->u.l.pos[0],seg->u.l.pos[1]);
+ bc->last_pos.x = x;
+ bc->last_pos.y = y;
+
+
+}
+
+static void
+bezctx_xtrkcad_quadto(bezctx *z, double x1, double y1, double x2, double y2)
+{
+ bezctx_xtrkcad *bc = (bezctx_xtrkcad *)z;
+ if ((!isfinite(x1) || !isfinite(y1)
+ || !isfinite(x2) || !isfinite(y2))) {
+ bc->has_NAN = TRUE;
+ }
+ if (!bc->is_open || bc->has_NAN) {
+ bc->last_pos.x = x2;
+ bc->last_pos.y = y2;
+ return;
+ }
+ DYNARR_APPEND(trkSeg_t,* bc->segsArray,10);
+ trkSeg_p seg = &trkSeg(bc->segsArray->cnt-1);
+ seg->u.b.pos[0] = bc->last_pos;
+ seg->u.b.pos[1].x = x1;
+ seg->u.b.pos[1].y = y1;
+ seg->u.b.pos[2].x = x1;
+ seg->u.b.pos[2].y = y1;
+ seg->u.b.pos[3].x = x2;
+ seg->u.b.pos[3].y = y2;
+ seg->width = 0.0;
+ seg->color = wDrawColorBlack;
+ seg->type = SEG_BEZTRK;
+ if (seg->bezSegs.ptr) MyFree(seg->bezSegs.ptr);
+ seg->bezSegs.max =0;
+ seg->bezSegs.cnt = 0;
+ seg->bezSegs.ptr = NULL;
+ bc->last_pos.x = x2;
+ bc->last_pos.y = y2;
+
+ FixUpBezierSeg(seg->u.b.pos,seg,bc->track);
+}
+
+static void
+ bezctx_xtrkcad_curveto(bezctx *z, double x1, double y1, double x2, double y2,
+ double x3, double y3)
+{
+ bezctx_xtrkcad *bc = (bezctx_xtrkcad *)z;
+ if (!(isfinite(x1) && isfinite(y1)
+ && isfinite(x2) && isfinite(y2)
+ && isfinite(x3) && isfinite(y3))) {
+ bc->has_NAN = TRUE;
+ }
+ if (!bc->is_open || bc->has_NAN) {
+ bc->last_pos.x = x3;
+ bc->last_pos.y = y3;
+ return;
+ }
+ DYNARR_APPEND(trkSeg_t,* bc->segsArray,10);
+ trkSeg_p seg = &trkSeg(bc->segsArray->cnt-1);
+ seg->u.b.pos[0].x = bc->last_pos.x;
+ seg->u.b.pos[0].y = bc->last_pos.y;
+ seg->u.b.pos[1].x = x1;
+ seg->u.b.pos[1].y = y1;
+ seg->u.b.pos[2].x = x2;
+ seg->u.b.pos[2].y = y2;
+ seg->u.b.pos[3].x = x3;
+ seg->u.b.pos[3].y = y3;
+ seg->width = 0.0;
+ seg->color = wDrawColorBlack;
+ seg->type = SEG_BEZTRK;
+ if (seg->bezSegs.ptr) MyFree(seg->bezSegs.ptr);
+ seg->bezSegs.max = 0;
+ seg->bezSegs.cnt = 0;
+ seg->bezSegs.ptr = NULL;
+ bc->last_pos.x = x3;
+ bc->last_pos.y = y3;
+
+ FixUpBezierSeg(seg->u.b.pos,seg,bc->track);
+
+ if (bc->draw_spots) {
+ DYNARR_APPEND(trkSeg_t,* bc->segsArray,10);
+ seg = &trkSeg(bc->segsArray->cnt-1);
+ seg->type=SEG_FILCRCL;
+ seg->u.c.center.x = bc->last_pos.x;
+ seg->u.c.center.y = bc->last_pos.y;
+ seg->u.c.radius = 0.25;
+ seg->width = 0.0;
+ seg->color = wDrawColorBlack;
+ }
+
+}
+
+void
+bezctx_xtrkcad_mark_knot(bezctx *z, int knot_idx) {
+
+ bezctx_xtrkcad *bc = (bezctx_xtrkcad *)z;
+ if (knot_idx >= bc->ends[0]) bc->is_open = TRUE; //Only worry about segs inside our gap
+ if (knot_idx >= bc->ends[1]) bc->is_open = FALSE;
+
+}
+
+
+
+bezctx *
+new_bezctx_xtrkcad(dynArr_t * segArray, int ends[2], BOOL_T spots) {
+
+ bezctx_xtrkcad *result = znew(bezctx_xtrkcad, 1);
+
+ result->segsArray = segArray;
+ result->ends[0] = ends[0];
+ result->ends[1] = ends[1];
+
+ result->base.moveto = bezctx_xtrkcad_moveto;
+ result->base.lineto = bezctx_xtrkcad_lineto;
+ result->base.quadto = bezctx_xtrkcad_quadto;
+ result->base.curveto = bezctx_xtrkcad_curveto;
+ result->base.mark_knot = bezctx_xtrkcad_mark_knot;
+ result->is_open = FALSE;
+ result->has_NAN = FALSE;
+ result->draw_spots = spots;
+ result->track = TRUE;
+
+ return &result->base;
+}
+
+BOOL_T bezctx_xtrkcad_close(bezctx *z) {
+ bezctx_xtrkcad *bc = (bezctx_xtrkcad *)z;
+ if (bc->has_NAN) return FALSE;
+ return TRUE;
+}
+
+
diff --git a/app/cornu/bezctx_xtrkcad.h b/app/cornu/bezctx_xtrkcad.h
new file mode 100644
index 0000000..4117870
--- /dev/null
+++ b/app/cornu/bezctx_xtrkcad.h
@@ -0,0 +1,4 @@
+bezctx * new_bezctx_xtrkcad(dynArr_t * segs, int ends[2], BOOL_T spots);
+
+void bezctx_to_xtrkcad(bezctx *bc);
+BOOL_T bezctx_xtrkcad_close(bezctx *bc);
diff --git a/app/cornu/ppedit_gtk1.c b/app/cornu/ppedit_gtk1.c
new file mode 100644
index 0000000..b81299e
--- /dev/null
+++ b/app/cornu/ppedit_gtk1.c
@@ -0,0 +1,930 @@
+/*
+ppedit - A pattern plate editor for Spiro splines.
+Copyright (C) 2007 Raph Levien
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301, USA.
+
+*/
+#include <gdk/gdkkeysyms.h>
+#include <gtk/gtk.h>
+#include <libart_lgpl/libart.h>
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+
+#include "zmisc.h"
+#include "bezctx.h"
+#include "bezctx_libart.h"
+#include "bezctx_ps.h"
+#include "cornu.h"
+#include "spiro.h"
+#include "plate.h"
+#include "image.h"
+
+int n_iter = 10;
+
+typedef struct {
+ const char *description;
+ plate *p;
+} undo_record;
+
+typedef struct {
+ GtkWidget *da;
+ const char *description;
+ plate *p;
+ int undo_n;
+ int undo_i;
+ undo_record undo_buf[16];
+ int undo_xn_state;
+
+ GtkWidget *undo_me;
+ GtkWidget *redo_me;
+
+ GtkWidget *show_knots_me;
+ GtkWidget *show_bg_me;
+ int show_knots;
+ int show_bg;
+
+ image *bg_image;
+} plate_edit;
+
+int
+quit_func(GtkWidget *widget, gpointer dummy)
+{
+ gtk_main_quit();
+ return TRUE;
+}
+
+#define C1 0.55228
+static void
+draw_dot(art_u8 *buf, int x0, int y0, int x1, int y1, int rowstride,
+ double x, double y, double r, guint32 rgba)
+{
+ ArtBpath bp[6];
+ ArtVpath *vp;
+ ArtSVP *svp;
+
+ bp[0].code = ART_MOVETO;
+ bp[0].x3 = x + r;
+ bp[0].y3 = y;
+ bp[1].code = ART_CURVETO;
+ bp[1].x1 = x + r;
+ bp[1].y1 = y - C1 * r;
+ bp[1].x2 = x + C1 * r;
+ bp[1].y2 = y - r;
+ bp[1].x3 = x;
+ bp[1].y3 = y - r;
+ bp[2].code = ART_CURVETO;
+ bp[2].x1 = x - C1 * r;
+ bp[2].y1 = y - r;
+ bp[2].x2 = x - r;
+ bp[2].y2 = y - C1 * r;
+ bp[2].x3 = x - r;
+ bp[2].y3 = y;
+ bp[3].code = ART_CURVETO;
+ bp[3].x1 = x - r;
+ bp[3].y1 = y + C1 * r;
+ bp[3].x2 = x - C1 * r;
+ bp[3].y2 = y + r;
+ bp[3].x3 = x;
+ bp[3].y3 = y + r;
+ bp[4].code = ART_CURVETO;
+ bp[4].x1 = x + C1 * r;
+ bp[4].y1 = y + r;
+ bp[4].x2 = x + r;
+ bp[4].y2 = y + C1 * r;
+ bp[4].x3 = x + r;
+ bp[4].y3 = y;
+ bp[5].code = ART_END;
+
+ vp = art_bez_path_to_vec(bp, 0.25);
+ svp = art_svp_from_vpath(vp);
+ art_free(vp);
+
+ art_rgb_svp_alpha(svp, x0, y0, x1, y1, rgba, buf, rowstride, NULL);
+ art_svp_free(svp);
+}
+
+static void
+draw_raw_rect(art_u8 *buf, int x0, int y0, int x1, int y1, int rowstride,
+ double rx0, double ry0, double rx1, double ry1, guint32 rgba)
+{
+ ArtVpath vp[6];
+ ArtSVP *svp;
+
+ vp[0].code = ART_MOVETO;
+ vp[0].x = rx0;
+ vp[0].y = ry1;
+ vp[1].code = ART_LINETO;
+ vp[1].x = rx1;
+ vp[1].y = ry1;
+ vp[2].code = ART_LINETO;
+ vp[2].x = rx1;
+ vp[2].y = ry0;
+ vp[3].code = ART_LINETO;
+ vp[3].x = rx0;
+ vp[3].y = ry0;
+ vp[4].code = ART_LINETO;
+ vp[4].x = rx0;
+ vp[4].y = ry1;
+ vp[5].code = ART_END;
+
+ svp = art_svp_from_vpath(vp);
+
+ art_rgb_svp_alpha(svp, x0, y0, x1, y1, rgba, buf, rowstride, NULL);
+ art_svp_free(svp);
+}
+
+static void
+draw_rect(art_u8 *buf, int x0, int y0, int x1, int y1, int rowstride,
+ double x, double y, double r, guint32 rgba)
+{
+ draw_raw_rect(buf, x0, y0, x1, y1, rowstride,
+ x - r, y - r, x + r, y + r, rgba);
+}
+
+static void
+draw_half(art_u8 *buf, int x0, int y0, int x1, int y1, int rowstride,
+ double x, double y, double r, double th, guint32 rgba)
+{
+ ArtBpath bp[6];
+ ArtVpath *vp;
+ ArtSVP *svp;
+ double c = cos(th);
+ double s = sin(th);
+
+ bp[0].code = ART_MOVETO;
+ bp[0].x3 = x + c * r;
+ bp[0].y3 = y + s * r;
+ bp[1].code = ART_CURVETO;
+ bp[1].x1 = x + c * r + C1 * s * r;
+ bp[1].y1 = y + s * r - C1 * c * r;
+ bp[1].x2 = x + s * r + C1 * c * r;
+ bp[1].y2 = y - c * r + C1 * s * r;
+ bp[1].x3 = x + s * r;
+ bp[1].y3 = y - c * r;
+ bp[2].code = ART_CURVETO;
+ bp[2].x1 = x + s * r - C1 * c * r;
+ bp[2].y1 = y - c * r - C1 * s * r;
+ bp[2].x2 = x - c * r + C1 * s * r;
+ bp[2].y2 = y - s * r - C1 * c * r;
+ bp[2].x3 = x - c * r;
+ bp[2].y3 = y - s * r;
+ bp[3].code = ART_LINETO;
+ bp[3].x3 = x + c * r;
+ bp[3].y3 = y + s * r;
+ bp[4].code = ART_END;
+
+ vp = art_bez_path_to_vec(bp, 0.25);
+ svp = art_svp_from_vpath(vp);
+ art_free(vp);
+
+ art_rgb_svp_alpha(svp, x0, y0, x1, y1, rgba, buf, rowstride, NULL);
+ art_svp_free(svp);
+}
+
+static ArtVpath *
+bezctx_to_vpath(bezctx *bc)
+{
+ ArtBpath *bp = bezctx_to_bpath(bc);
+ ArtVpath *vp = art_bez_path_to_vec(bp, .25);
+
+ g_free(bp);
+ if (vp[0].code == ART_END || vp[1].code == ART_END) {
+ g_free(vp);
+ vp = NULL;
+ }
+ return vp;
+}
+
+static void
+draw_plate(art_u8 *buf, int x0, int y0, int x1, int y1, int rowstride,
+ plate_edit *pe)
+{
+ plate *p = pe->p;
+ int i, j;
+
+ /* find an existing point to select, if any */
+ for (i = 0; i < p->n_sp; i++) {
+ bezctx *bc = new_bezctx_libart();
+ subpath *sp = &p->sp[i];
+ spiro_seg *s = draw_subpath(sp, bc);
+ ArtVpath *vp = bezctx_to_vpath(bc);
+
+ if (vp != NULL) {
+ ArtSVP *svp = art_svp_vpath_stroke(vp, ART_PATH_STROKE_JOIN_MITER,
+ ART_PATH_STROKE_CAP_BUTT,
+ 1.5, 4.0, 0.25);
+
+ art_free(vp);
+ art_rgb_svp_alpha(svp, x0, y0, x1, y1, 0x000000ff, buf, rowstride,
+ NULL);
+ art_svp_free(svp);
+ }
+
+ for (j = 0; j < sp->n_kt; j++) {
+ if (pe->show_knots) {
+ knot *kt = &sp->kt[j];
+ kt_flags kf = kt->flags;
+ if ((kf & KT_SELECTED) && (kf & KT_OPEN)) {
+ draw_dot(buf, x0, y0, x1, y1, rowstride, kt->x, kt->y,
+ 3, 0x000000ff);
+ draw_dot(buf, x0, y0, x1, y1, rowstride, kt->x, kt->y,
+ 1.5, 0xffffffff);
+ } else if ((kf & KT_SELECTED) && (kf & KT_CORNER)) {
+ draw_rect(buf, x0, y0, x1, y1, rowstride, kt->x, kt->y,
+ 3, 0x000000ff);
+ draw_rect(buf, x0, y0, x1, y1, rowstride, kt->x, kt->y,
+ 1.5, 0xffffffff);
+ } else if (!(kf & KT_SELECTED) && (kf & KT_CORNER)) {
+ draw_rect(buf, x0, y0, x1, y1, rowstride, kt->x, kt->y,
+ 2.5, 0x000080ff);
+ } else if ((kf & KT_SELECTED) && (kf & KT_CORNU)) {
+ draw_rect(buf, x0, y0, x1, y1, rowstride, kt->x, kt->y,
+ 3, 0xc000c0ff);
+ draw_rect(buf, x0, y0, x1, y1, rowstride, kt->x, kt->y,
+ 1.5, 0xffffffff);
+ } else if (!(kf & KT_SELECTED) && (kf & KT_CORNU)) {
+ draw_rect(buf, x0, y0, x1, y1, rowstride, kt->x, kt->y,
+ 2.5, 0x800080ff);
+ } else if ((kf & KT_LEFT) || (kf & KT_RIGHT)) {
+ double th = 1.5708 + (s ? get_knot_th(s, j) : 0);
+ if (kf & KT_LEFT)
+ th += 3.1415926;
+ if (kf & KT_SELECTED) {
+ draw_half(buf, x0, y0, x1, y1, rowstride, kt->x, kt->y,
+ 4, th, 0x000000ff);
+ draw_half(buf, x0, y0, x1, y1, rowstride,
+ kt->x + sin(th), kt->y - cos(th),
+ 2, th, 0xffffffff);
+ } else {
+ draw_half(buf, x0, y0, x1, y1, rowstride, kt->x, kt->y,
+ 3, th, 0x000080ff);
+ }
+ } else {
+ draw_dot(buf, x0, y0, x1, y1, rowstride, kt->x, kt->y,
+ 2, 0x000080ff);
+ }
+ }
+ }
+ free_spiro(s);
+ }
+}
+
+static void
+draw_selection(art_u8 *buf, int x0, int y0, int x1, int y1, int rowstride,
+ plate_edit *pe)
+{
+ plate *p = pe->p;
+
+ if (p->motmode == MOTION_MODE_SELECT) {
+ double rx0 = p->sel_x0;
+ double ry0 = p->sel_y0;
+ double rx1 = p->x0;
+ double ry1 = p->y0;
+ if (rx0 > rx1) {
+ double tmp = rx1;
+ rx1 = rx0;
+ rx0 = tmp;
+ }
+ if (ry0 > ry1) {
+ double tmp = ry1;
+ ry1 = ry0;
+ ry0 = tmp;
+ }
+ if (rx1 > rx0 && ry1 > ry0)
+ draw_raw_rect(buf, x0, y0, x1, y1, rowstride,
+ rx0, ry0, rx1, ry1, 0x0000ff20);
+ }
+}
+
+static void
+render_bg_layer(guchar *buf, int rowstride, int x0, int y0, int x1, int y1,
+ plate_edit *pe)
+{
+ const double affine[6] = { 1, 0, 0, 1, 0, 0 };
+
+ if (pe->show_bg && pe->bg_image)
+ render_image(pe->bg_image, affine,
+ buf, rowstride, x0, y0, x1, y1);
+ else
+ memset(buf, 255, (y1 - y0) * rowstride);
+}
+
+static gint
+data_expose (GtkWidget *widget, GdkEventExpose *event, void *data)
+{
+ plate_edit *pe = (plate_edit *)data;
+ int x0 = event->area.x;
+ int y0 = event->area.y;
+ int width = event->area.width;
+ int height = event->area.height;
+ guchar *rgb;
+ int rowstride = (width * 3 + 3) & -4;
+
+ rgb = g_new (guchar, event->area.height * rowstride);
+
+ render_bg_layer(rgb, rowstride, x0, y0, x0 + width, y0 + height, pe);
+
+ draw_plate(rgb, x0, y0, x0 + width, y0 + height, rowstride, pe);
+
+ draw_selection(rgb, x0, y0, x0 + width, y0 + height, rowstride, pe);
+
+ gdk_draw_rgb_image(widget->window,
+ widget->style->black_gc,
+ x0, y0, width, height,
+ GDK_RGB_DITHER_NONE, rgb,
+ rowstride);
+ g_free(rgb);
+ return FALSE;
+}
+
+/* Make sure there's room for at least one more undo record. */
+static void
+makeroom_undo(plate_edit *pe)
+{
+ const int undo_max = sizeof(pe->undo_buf) / sizeof(undo_record);
+
+ if (pe->undo_n == undo_max) {
+ free_plate(pe->undo_buf[0].p);
+ memmove(pe->undo_buf, pe->undo_buf + 1, (undo_max - 1) * sizeof(undo_record));
+ pe->undo_i--;
+ pe->undo_n--;
+ }
+}
+
+static void
+set_undo_menuitem(GtkWidget *me, const char *name, const char *desc)
+{
+ char str[256];
+
+ if (desc) {
+ sprintf(str, "%s %s", name, desc);
+ } else {
+ strcpy(str, name);
+ }
+ gtk_container_foreach(GTK_CONTAINER(me),
+ (GtkCallback)gtk_label_set_text,
+ str);
+ gtk_widget_set_sensitive(me, desc != NULL);
+}
+
+static void
+set_undo_state(plate_edit *pe, const char *undo_desc, const char *redo_desc)
+{
+ set_undo_menuitem(pe->undo_me, "Undo", undo_desc);
+ set_undo_menuitem(pe->redo_me, "Redo", redo_desc);
+}
+
+static void
+begin_undo_xn(plate_edit *pe)
+{
+ int i;
+
+ if (pe->undo_xn_state != 1) {
+ for (i = pe->undo_i; i < pe->undo_n; i++)
+ free_plate(pe->undo_buf[i].p);
+ pe->undo_n = pe->undo_i;
+ makeroom_undo(pe);
+ i = pe->undo_i;
+ pe->undo_buf[i].description = pe->description;
+ pe->undo_buf[i].p = copy_plate(pe->p);
+ pe->undo_n = i + 1;
+ pe->undo_xn_state = 1;
+ }
+}
+
+static void
+dirty_undo_xn(plate_edit *pe, const char *description)
+{
+ if (pe->undo_xn_state == 0) {
+ g_warning("dirty_undo_xn: not in begin_undo_xn state");
+ begin_undo_xn(pe);
+ }
+ if (description == NULL)
+ description = pe->p->description;
+ if (pe->undo_xn_state == 1) {
+ pe->undo_i++;
+ pe->undo_xn_state = 2;
+ set_undo_state(pe, description, NULL);
+ }
+ pe->description = description;
+}
+
+static void
+begindirty_undo_xn(plate_edit *pe, const char *description)
+{
+ begin_undo_xn(pe);
+ dirty_undo_xn(pe, description);
+}
+
+static void
+end_undo_xn(plate_edit *pe)
+{
+ if (pe->undo_xn_state == 0) {
+ g_warning("end_undo_xn: not in undo xn");
+ }
+ pe->undo_xn_state = 0;
+}
+
+static int
+undo(plate_edit *pe)
+{
+ if (pe->undo_i == 0)
+ return 0;
+
+ if (pe->undo_i == pe->undo_n) {
+ makeroom_undo(pe);
+ pe->undo_buf[pe->undo_i].description = pe->description;
+ pe->undo_buf[pe->undo_i].p = pe->p;
+ pe->undo_n++;
+ } else {
+ free_plate(pe->p);
+ }
+ pe->undo_i--;
+ pe->description = pe->undo_buf[pe->undo_i].description;
+ set_undo_state(pe,
+ pe->undo_i > 0 ? pe->description : NULL,
+ pe->undo_buf[pe->undo_i + 1].description);
+ g_print("undo: %d of %d\n", pe->undo_i, pe->undo_n);
+ pe->p = copy_plate(pe->undo_buf[pe->undo_i].p);
+ return 1;
+}
+
+static int
+redo(plate_edit *pe)
+{
+ if (pe->undo_i >= pe->undo_n - 1)
+ return 0;
+ free_plate(pe->p);
+ pe->undo_i++;
+ set_undo_state(pe,
+ pe->undo_buf[pe->undo_i].description,
+ pe->undo_i < pe->undo_n - 1 ?
+ pe->undo_buf[pe->undo_i + 1].description : NULL);
+ pe->description = pe->undo_buf[pe->undo_i].description;
+ pe->p = copy_plate(pe->undo_buf[pe->undo_i].p);
+ g_print("redo: %d of %d\n", pe->undo_i, pe->undo_n);
+ return 1;
+}
+
+static gint
+data_button_press (GtkWidget *widget, GdkEventButton *event, gpointer data)
+{
+ plate_edit *pe = (plate_edit *)data;
+ plate *p = pe->p;
+ double x, y;
+ press_mod mods = 0;
+
+#define noVERBOSE
+#ifdef VERBOSE
+ g_print ("button press %f %f %f %d\n",
+ event->x, event->y, event->pressure, event->type);
+
+#endif
+ x = event->x;
+ y = event->y;
+ if (event->state & GDK_SHIFT_MASK) mods |= PRESS_MOD_SHIFT;
+ if (event->state & GDK_CONTROL_MASK) mods |= PRESS_MOD_CTRL;
+ if (event->type == GDK_2BUTTON_PRESS) mods |= PRESS_MOD_DOUBLE;
+ if (event->type == GDK_3BUTTON_PRESS) mods |= PRESS_MOD_TRIPLE;
+
+ begin_undo_xn(pe);
+ p->description = NULL;
+ plate_press(p, x, y, mods);
+ if (p->description) dirty_undo_xn(pe, NULL);
+ gtk_widget_queue_draw(widget);
+
+ return TRUE;
+}
+
+static gint
+data_motion_move (GtkWidget *widget, GdkEventMotion *event, plate_edit *pe)
+{
+ double x, y;
+ x = event->x;
+ y = event->y;
+
+ plate_motion_move(pe->p, x, y);
+ dirty_undo_xn(pe, NULL);
+
+ gtk_widget_queue_draw(widget);
+
+ return TRUE;
+}
+
+static gint
+data_motion_select (GtkWidget *widget, GdkEventMotion *event, plate_edit *pe)
+{
+ double x, y;
+
+ x = event->x;
+ y = event->y;
+
+ plate_motion_select(pe->p, x, y);
+ gtk_widget_queue_draw(widget);
+
+ return TRUE;
+}
+
+static gint
+data_motion (GtkWidget *widget, GdkEventMotion *event, gpointer data)
+{
+ plate_edit *pe = (plate_edit *)data;
+
+#ifdef VERBOSE
+ g_print ("motion %f %f %f\n", event->x, event->y, event->pressure);
+
+#endif
+ if (pe->p->motmode == MOTION_MODE_MOVE)
+ return data_motion_move(widget, event, pe);
+ else if (pe->p->motmode == MOTION_MODE_SELECT)
+ return data_motion_select(widget, event, pe);
+ return TRUE;
+}
+
+static gint
+data_button_release (GtkWidget *widget, GdkEventMotion *event, gpointer data)
+{
+ plate_edit *pe = (plate_edit *)data;
+ int need_redraw;
+
+ need_redraw = (pe->p->motmode == MOTION_MODE_SELECT);
+
+ plate_unpress(pe->p);
+
+ gtk_widget_queue_draw(widget);
+
+ return TRUE;
+}
+
+static gboolean
+key_press(GtkWidget *widget, GdkEventKey *event, gpointer data)
+{
+ plate_edit *pe = (plate_edit *)data;
+ int delta = event->state & 4 ? 10 : 1;
+ int old_n_iter = n_iter;
+ double dx = 0, dy = 0;
+ gboolean did_something = FALSE;
+
+ g_print("key press %d %s %d\n", event->keyval, event->string, event->state);
+
+ if (event->keyval == '<') {
+ did_something = TRUE;
+ n_iter -= delta;
+ } else if (event->keyval == '>') {
+ n_iter += delta;
+ }
+ if (n_iter < 0) n_iter = 0;
+ if (n_iter != old_n_iter)
+ g_print("n_iter = %d\n", n_iter);
+
+ if (event->keyval == GDK_Left)
+ dx = -1;
+ else if (event->keyval == GDK_Right)
+ dx = 1;
+ else if (event->keyval == GDK_Up)
+ dy = -1;
+ else if (event->keyval == GDK_Down)
+ dy = 1;
+ if (event->state & GDK_SHIFT_MASK) {
+ dx *= 10;
+ dy *= 10;
+ } else if (event->state & GDK_CONTROL_MASK) {
+ dx *= .1;
+ dy *= .1;
+ }
+ if (dx != 0 || dy != 0) {
+ begindirty_undo_xn(pe, "Keyboard move");
+ plate_motion_move(pe->p, pe->p->x0 + dx, pe->p->y0 + dy);
+ end_undo_xn(pe);
+ did_something = TRUE;
+ }
+
+ if (did_something) {
+ gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), "key-press-event");
+ gtk_widget_queue_draw(widget);
+ }
+
+ return did_something;
+}
+
+static gint
+toggle_corner_func(GtkWidget *widget, gpointer data)
+{
+ plate_edit *pe = (plate_edit *)data;
+
+ begindirty_undo_xn(pe, "Toggle Corner");
+ plate_toggle_corner(pe->p);
+ end_undo_xn(pe);
+ gtk_widget_queue_draw(pe->da);
+
+ return TRUE;
+}
+
+static gint
+delete_pt_func(GtkWidget *widget, gpointer data)
+{
+ plate_edit *pe = (plate_edit *)data;
+
+ begindirty_undo_xn(pe, "Delete Point");
+ plate_delete_pt(pe->p);
+ end_undo_xn(pe);
+ gtk_widget_queue_draw(pe->da);
+
+ return TRUE;
+}
+
+static gint
+set_select_mode_func(GtkWidget *widget, gpointer data)
+{
+ plate_edit *pe = (plate_edit *)data;
+
+ pe->p->mmode = MOUSE_MODE_SELECT;
+ return TRUE;
+}
+
+static gint
+set_curve_mode_func(GtkWidget *widget, gpointer data)
+{
+ plate_edit *pe = (plate_edit *)data;
+
+ pe->p->mmode = MOUSE_MODE_ADD_CURVE;
+ pe->p->last_curve_mmode = pe->p->mmode;
+ return TRUE;
+}
+
+static gint
+set_corner_mode_func(GtkWidget *widget, gpointer data)
+{
+ plate_edit *pe = (plate_edit *)data;
+
+ pe->p->mmode = MOUSE_MODE_ADD_CORNER;
+ return TRUE;
+}
+
+static gint
+set_left_mode_func(GtkWidget *widget, gpointer data)
+{
+ plate_edit *pe = (plate_edit *)data;
+
+ pe->p->mmode = MOUSE_MODE_ADD_LEFT;
+ return TRUE;
+}
+
+static gint
+set_right_mode_func(GtkWidget *widget, gpointer data)
+{
+ plate_edit *pe = (plate_edit *)data;
+
+ pe->p->mmode = MOUSE_MODE_ADD_RIGHT;
+ return TRUE;
+}
+
+static gint
+set_cornu_mode_func(GtkWidget *widget, gpointer data)
+{
+ plate_edit *pe = (plate_edit *)data;
+
+ pe->p->mmode = MOUSE_MODE_ADD_CORNU;
+ pe->p->last_curve_mmode = pe->p->mmode;
+ return TRUE;
+}
+
+static gint
+undo_func(GtkWidget *widget, gpointer data)
+{
+ plate_edit *pe = (plate_edit *)data;
+
+ undo(pe);
+ gtk_widget_queue_draw(pe->da);
+
+ return TRUE;
+}
+
+static gint
+redo_func(GtkWidget *widget, gpointer data)
+{
+ plate_edit *pe = (plate_edit *)data;
+
+ redo(pe);
+ gtk_widget_queue_draw(pe->da);
+
+ return TRUE;
+}
+
+static gint
+save_func(GtkWidget *widget, gpointer data)
+{
+ plate_edit *pe = (plate_edit *)data;
+
+ file_write_plate("plate", pe->p);
+
+ return TRUE;
+}
+
+static gint
+toggle_show_knots_func(GtkWidget *widget, gpointer data)
+{
+ plate_edit *pe = (plate_edit *)data;
+
+ pe->show_knots = !pe->show_knots;
+ gtk_container_foreach(GTK_CONTAINER(pe->show_knots_me),
+ (GtkCallback)gtk_label_set_text,
+ pe->show_knots ? "Hide Knots" : "Show Knots");
+ gtk_widget_queue_draw(pe->da);
+ return TRUE;
+}
+
+static gint
+toggle_show_bg_func(GtkWidget *widget, gpointer data)
+{
+ plate_edit *pe = (plate_edit *)data;
+
+ pe->show_bg = !pe->show_bg;
+ gtk_container_foreach(GTK_CONTAINER(pe->show_bg_me),
+ (GtkCallback)gtk_label_set_text,
+ pe->show_bg ? "Hide BG" : "Show BG");
+ gtk_widget_queue_draw(pe->da);
+ return TRUE;
+}
+
+static gint
+print_func(GtkWidget *widget, gpointer data)
+{
+ plate_edit *pe = (plate_edit *)data;
+ plate *p = pe->p;
+ int i;
+ FILE *f = fopen("/tmp/foo.ps", "w");
+ bezctx *bc = new_bezctx_ps(f);
+
+ fputs(ps_prolog, f);
+ for (i = 0; i < p->n_sp; i++) {
+ subpath *sp = &p->sp[i];
+ free_spiro(draw_subpath(sp, bc));
+ }
+ bezctx_ps_close(bc);
+ fputs(ps_postlog, f);
+ fclose(f);
+ return TRUE;
+}
+
+static GtkWidget *
+add_menuitem(GtkWidget *menu, const char *name, GtkSignalFunc callback,
+ gpointer callback_data, GtkAccelGroup *ag, const char *accel)
+{
+ GtkWidget *menuitem;
+
+ menuitem = gtk_menu_item_new_with_label(name);
+ gtk_menu_append(GTK_MENU(menu), menuitem);
+ gtk_widget_show(menuitem);
+ if (accel != NULL) {
+ guint accel_key, accel_mods;
+
+ gtk_accelerator_parse(accel, &accel_key, &accel_mods);
+ gtk_widget_add_accelerator(menuitem, "activate", ag,
+ accel_key, accel_mods, GTK_ACCEL_VISIBLE);
+ }
+ gtk_signal_connect(GTK_OBJECT(menuitem), "activate",
+ (GtkSignalFunc)callback, callback_data);
+ return (menuitem);
+}
+
+static void
+create_mainwin(plate_edit *p)
+{
+ GtkWidget *mainwin;
+ GtkWidget *eb;
+ GtkWidget *da;
+ GtkWidget *vbox;
+ GtkWidget *menubar;
+ GtkWidget *menu;
+ GtkWidget *menuitem;
+ GtkAccelGroup *ag;
+ void *data = p;
+
+ mainwin = gtk_widget_new(gtk_window_get_type(),
+ "GtkWindow::type", GTK_WINDOW_TOPLEVEL,
+ "GtkWindow::title", "pattern plate editor",
+ NULL);
+ gtk_signal_connect(GTK_OBJECT(mainwin), "destroy",
+ (GtkSignalFunc)quit_func, NULL);
+
+ vbox = gtk_vbox_new(FALSE, 0);
+ gtk_container_add(GTK_CONTAINER(mainwin), vbox);
+
+ menubar = gtk_menu_bar_new();
+ ag = gtk_accel_group_new();
+ gtk_window_add_accel_group(GTK_WINDOW(mainwin), ag);
+ gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, FALSE, 0);
+
+ menu = gtk_menu_new();
+ menuitem = gtk_menu_item_new_with_label("File");
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), menu);
+ gtk_menu_bar_append(GTK_MENU_BAR(menubar), menuitem);
+ gtk_widget_show(menuitem);
+ gtk_menu_set_accel_group(GTK_MENU(menu), ag);
+ add_menuitem(menu, "Save", (GtkSignalFunc)save_func, data, ag, "<ctrl>S");
+ add_menuitem(menu, "Quit", (GtkSignalFunc)quit_func, data, ag, "<ctrl>Q");
+ add_menuitem(menu, "Print", (GtkSignalFunc)print_func, data, ag, "<ctrl>P");
+
+ menu = gtk_menu_new();
+ menuitem = gtk_menu_item_new_with_label("Edit");
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), menu);
+ gtk_menu_bar_append(GTK_MENU_BAR(menubar), menuitem);
+ gtk_widget_show(menuitem);
+ gtk_menu_set_accel_group(GTK_MENU(menu), ag);
+ p->undo_me = add_menuitem(menu, "Undo", (GtkSignalFunc)undo_func, data, ag, "<ctrl>Z");
+ p->redo_me = add_menuitem(menu, "Redo", (GtkSignalFunc)redo_func, data, ag, "<ctrl>Y");
+ set_undo_state(p, NULL, NULL);
+ add_menuitem(menu, "Toggle Corner", (GtkSignalFunc)toggle_corner_func, data, ag, "<ctrl>T");
+ add_menuitem(menu, "Delete Point", (GtkSignalFunc)delete_pt_func, data, ag, "<ctrl>D");
+ add_menuitem(menu, "Selection Mode", (GtkSignalFunc)set_select_mode_func, data, ag, "1");
+ add_menuitem(menu, "Add Curve Mode", (GtkSignalFunc)set_curve_mode_func, data, ag, "2");
+ add_menuitem(menu, "Add Corner Mode", (GtkSignalFunc)set_corner_mode_func, data, ag, "3");
+ add_menuitem(menu, "Add Left Mode", (GtkSignalFunc)set_left_mode_func, data, ag, "4");
+ add_menuitem(menu, "Add Right Mode", (GtkSignalFunc)set_right_mode_func, data, ag, "5");
+ add_menuitem(menu, "Add Cornu Mode", (GtkSignalFunc)set_cornu_mode_func, data, ag, "6");
+
+
+ menu = gtk_menu_new();
+ menuitem = gtk_menu_item_new_with_label("View");
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), menu);
+ gtk_menu_bar_append(GTK_MENU_BAR(menubar), menuitem);
+ gtk_widget_show(menuitem);
+ gtk_menu_set_accel_group(GTK_MENU(menu), ag);
+ p->show_knots_me = add_menuitem(menu, "Hide Knots",
+ (GtkSignalFunc)toggle_show_knots_func,
+ data, ag, "<ctrl>K");
+ p->show_bg_me = add_menuitem(menu, "Hide BG",
+ (GtkSignalFunc)toggle_show_bg_func,
+ data, ag, "<ctrl>B");
+
+ eb = gtk_event_box_new ();
+ GTK_WIDGET_SET_FLAGS(eb, GTK_CAN_FOCUS);
+ gtk_box_pack_start(GTK_BOX(vbox), eb, TRUE, TRUE, 0);
+ gtk_widget_set_extension_events (eb, GDK_EXTENSION_EVENTS_ALL);
+ gtk_signal_connect(GTK_OBJECT (eb), "button-press-event",
+ (GtkSignalFunc) data_button_press, data);
+ gtk_signal_connect(GTK_OBJECT (eb), "motion-notify-event",
+ (GtkSignalFunc) data_motion, data);
+ gtk_signal_connect(GTK_OBJECT (eb), "button-release-event",
+ (GtkSignalFunc) data_button_release, data);
+ gtk_signal_connect(GTK_OBJECT(eb), "key-press-event",
+ (GtkSignalFunc)key_press, data);
+
+ da = gtk_drawing_area_new();
+ p->da = da;
+ gtk_window_set_default_size(GTK_WINDOW(mainwin), 512, 512);
+ gtk_container_add(GTK_CONTAINER(eb), da);
+ gtk_signal_connect(GTK_OBJECT (da), "expose-event",
+ (GtkSignalFunc) data_expose, data);
+#if 0
+ gtk_widget_set_double_buffered(da, FALSE);
+#endif
+
+ gtk_widget_grab_focus(eb);
+ gtk_widget_show(da);
+ gtk_widget_show(eb);
+ gtk_widget_show(menubar);
+ gtk_widget_show(vbox);
+ gtk_widget_show(mainwin);
+}
+
+int main(int argc, char **argv)
+{
+ plate_edit pe;
+ plate *p = NULL;
+ gtk_init(&argc, &argv);
+ gtk_widget_set_default_colormap(gdk_rgb_get_cmap());
+ gtk_widget_set_default_visual(gdk_rgb_get_visual());
+ char *reason;
+
+ if (argc > 1)
+ p = file_read_plate(argv[1]);
+ if (p == NULL)
+ p = new_plate();
+ pe.p = p;
+ pe.undo_n = 0;
+ pe.undo_i = 0;
+ pe.undo_xn_state = 0;
+ pe.show_knots = 1;
+ pe.show_bg = 1;
+ pe.bg_image = load_image_file("/tmp/foo.ppm", &reason);
+ create_mainwin(&pe);
+ gtk_main();
+ return 0;
+}
diff --git a/app/cornu/spiro.c b/app/cornu/spiro.c
new file mode 100644
index 0000000..5aae665
--- /dev/null
+++ b/app/cornu/spiro.c
@@ -0,0 +1,1099 @@
+/*
+ppedit - A pattern plate editor for Spiro splines.
+Copyright (C) 2007 Raph Levien
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301, USA.
+
+*/
+/* C implementation of third-order polynomial spirals. */
+
+#include <math.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "bezctx_intf.h"
+#include "spiro.h"
+
+struct spiro_seg_s {
+ double x;
+ double y;
+ char ty;
+ double bend_th;
+ double ks[4];
+ double seg_ch;
+ double seg_th;
+ double l;
+};
+
+typedef struct {
+ double a[11]; /* band-diagonal matrix */
+ double al[5]; /* lower part of band-diagonal decomposition */
+} bandmat;
+
+#ifndef M_PI
+#define M_PI 3.14159265358979323846 /* pi */
+#endif
+
+int n = 4;
+
+#ifndef ORDER
+#define ORDER 12
+#endif
+
+/* Integrate polynomial spiral curve over range -.5 .. .5. */
+void
+integrate_spiro(const double ks[4], double xy[2])
+{
+#if 0
+ int n = 1024;
+#endif
+ double th1 = ks[0];
+ double th2 = .5 * ks[1];
+ double th3 = (1./6) * ks[2];
+ double th4 = (1./24) * ks[3];
+ double x, y;
+ double ds = 1. / n;
+ double ds2 = ds * ds;
+ double ds3 = ds2 * ds;
+ double k0 = ks[0] * ds;
+ double k1 = ks[1] * ds;
+ double k2 = ks[2] * ds;
+ double k3 = ks[3] * ds;
+ int i;
+ double s = .5 * ds - .5;
+
+ x = 0;
+ y = 0;
+
+ for (i = 0; i < n; i++) {
+
+#if ORDER > 2
+ double u, v;
+ double km0, km1, km2, km3;
+
+ if (n == 1) {
+ km0 = k0;
+ km1 = k1 * ds;
+ km2 = k2 * ds2;
+ } else {
+ km0 = (((1./6) * k3 * s + .5 * k2) * s + k1) * s + k0;
+ km1 = ((.5 * k3 * s + k2) * s + k1) * ds;
+ km2 = (k3 * s + k2) * ds2;
+ }
+ km3 = k3 * ds3;
+#endif
+
+ {
+
+#if ORDER == 4
+ double km0_2 = km0 * km0;
+ u = 24 - km0_2;
+ v = km1;
+#endif
+
+#if ORDER == 6
+ double km0_2 = km0 * km0;
+ double km0_4 = km0_2 * km0_2;
+ u = 24 - km0_2 + (km0_4 - 4 * km0 * km2 - 3 * km1 * km1) * (1./80);
+ v = km1 + (km3 - 6 * km0_2 * km1) * (1./80);
+#endif
+
+#if ORDER == 8
+ double t1_1 = km0;
+ double t1_2 = .5 * km1;
+ double t1_3 = (1./6) * km2;
+ double t1_4 = (1./24) * km3;
+ double t2_2 = t1_1 * t1_1;
+ double t2_3 = 2 * (t1_1 * t1_2);
+ double t2_4 = 2 * (t1_1 * t1_3) + t1_2 * t1_2;
+ double t2_5 = 2 * (t1_1 * t1_4 + t1_2 * t1_3);
+ double t2_6 = 2 * (t1_2 * t1_4) + t1_3 * t1_3;
+ double t3_4 = t2_2 * t1_2 + t2_3 * t1_1;
+ double t3_6 = t2_2 * t1_4 + t2_3 * t1_3 + t2_4 * t1_2 + t2_5 * t1_1;
+ double t4_4 = t2_2 * t2_2;
+ double t4_5 = 2 * (t2_2 * t2_3);
+ double t4_6 = 2 * (t2_2 * t2_4) + t2_3 * t2_3;
+ double t5_6 = t4_4 * t1_2 + t4_5 * t1_1;
+ double t6_6 = t4_4 * t2_2;
+ u = 1;
+ v = 0;
+ v += (1./12) * t1_2 + (1./80) * t1_4;
+ u -= (1./24) * t2_2 + (1./160) * t2_4 + (1./896) * t2_6;
+ v -= (1./480) * t3_4 + (1./2688) * t3_6;
+ u += (1./1920) * t4_4 + (1./10752) * t4_6;
+ v += (1./53760) * t5_6;
+ u -= (1./322560) * t6_6;
+#endif
+
+#if ORDER == 10
+ double t1_1 = km0;
+ double t1_2 = .5 * km1;
+ double t1_3 = (1./6) * km2;
+ double t1_4 = (1./24) * km3;
+ double t2_2 = t1_1 * t1_1;
+ double t2_3 = 2 * (t1_1 * t1_2);
+ double t2_4 = 2 * (t1_1 * t1_3) + t1_2 * t1_2;
+ double t2_5 = 2 * (t1_1 * t1_4 + t1_2 * t1_3);
+ double t2_6 = 2 * (t1_2 * t1_4) + t1_3 * t1_3;
+ double t2_7 = 2 * (t1_3 * t1_4);
+ double t2_8 = t1_4 * t1_4;
+ double t3_4 = t2_2 * t1_2 + t2_3 * t1_1;
+ double t3_6 = t2_2 * t1_4 + t2_3 * t1_3 + t2_4 * t1_2 + t2_5 * t1_1;
+ double t3_8 = t2_4 * t1_4 + t2_5 * t1_3 + t2_6 * t1_2 + t2_7 * t1_1;
+ double t4_4 = t2_2 * t2_2;
+ double t4_5 = 2 * (t2_2 * t2_3);
+ double t4_6 = 2 * (t2_2 * t2_4) + t2_3 * t2_3;
+ double t4_7 = 2 * (t2_2 * t2_5 + t2_3 * t2_4);
+ double t4_8 = 2 * (t2_2 * t2_6 + t2_3 * t2_5) + t2_4 * t2_4;
+ double t5_6 = t4_4 * t1_2 + t4_5 * t1_1;
+ double t5_8 = t4_4 * t1_4 + t4_5 * t1_3 + t4_6 * t1_2 + t4_7 * t1_1;
+ double t6_6 = t4_4 * t2_2;
+ double t6_7 = t4_4 * t2_3 + t4_5 * t2_2;
+ double t6_8 = t4_4 * t2_4 + t4_5 * t2_3 + t4_6 * t2_2;
+ double t7_8 = t6_6 * t1_2 + t6_7 * t1_1;
+ double t8_8 = t6_6 * t2_2;
+ u = 1;
+ v = 0;
+ v += (1./12) * t1_2 + (1./80) * t1_4;
+ u -= (1./24) * t2_2 + (1./160) * t2_4 + (1./896) * t2_6 + (1./4608) * t2_8;
+ v -= (1./480) * t3_4 + (1./2688) * t3_6 + (1./13824) * t3_8;
+ u += (1./1920) * t4_4 + (1./10752) * t4_6 + (1./55296) * t4_8;
+ v += (1./53760) * t5_6 + (1./276480) * t5_8;
+ u -= (1./322560) * t6_6 + (1./1.65888e+06) * t6_8;
+ v -= (1./1.16122e+07) * t7_8;
+ u += (1./9.28973e+07) * t8_8;
+#endif
+
+#if ORDER == 12
+ double t1_1 = km0;
+ double t1_2 = .5 * km1;
+ double t1_3 = (1./6) * km2;
+ double t1_4 = (1./24) * km3;
+ double t2_2 = t1_1 * t1_1;
+ double t2_3 = 2 * (t1_1 * t1_2);
+ double t2_4 = 2 * (t1_1 * t1_3) + t1_2 * t1_2;
+ double t2_5 = 2 * (t1_1 * t1_4 + t1_2 * t1_3);
+ double t2_6 = 2 * (t1_2 * t1_4) + t1_3 * t1_3;
+ double t2_7 = 2 * (t1_3 * t1_4);
+ double t2_8 = t1_4 * t1_4;
+ double t3_4 = t2_2 * t1_2 + t2_3 * t1_1;
+ double t3_6 = t2_2 * t1_4 + t2_3 * t1_3 + t2_4 * t1_2 + t2_5 * t1_1;
+ double t3_8 = t2_4 * t1_4 + t2_5 * t1_3 + t2_6 * t1_2 + t2_7 * t1_1;
+ double t3_10 = t2_6 * t1_4 + t2_7 * t1_3 + t2_8 * t1_2;
+ double t4_4 = t2_2 * t2_2;
+ double t4_5 = 2 * (t2_2 * t2_3);
+ double t4_6 = 2 * (t2_2 * t2_4) + t2_3 * t2_3;
+ double t4_7 = 2 * (t2_2 * t2_5 + t2_3 * t2_4);
+ double t4_8 = 2 * (t2_2 * t2_6 + t2_3 * t2_5) + t2_4 * t2_4;
+ double t4_9 = 2 * (t2_2 * t2_7 + t2_3 * t2_6 + t2_4 * t2_5);
+ double t4_10 = 2 * (t2_2 * t2_8 + t2_3 * t2_7 + t2_4 * t2_6) + t2_5 * t2_5;
+ double t5_6 = t4_4 * t1_2 + t4_5 * t1_1;
+ double t5_8 = t4_4 * t1_4 + t4_5 * t1_3 + t4_6 * t1_2 + t4_7 * t1_1;
+ double t5_10 = t4_6 * t1_4 + t4_7 * t1_3 + t4_8 * t1_2 + t4_9 * t1_1;
+ double t6_6 = t4_4 * t2_2;
+ double t6_7 = t4_4 * t2_3 + t4_5 * t2_2;
+ double t6_8 = t4_4 * t2_4 + t4_5 * t2_3 + t4_6 * t2_2;
+ double t6_9 = t4_4 * t2_5 + t4_5 * t2_4 + t4_6 * t2_3 + t4_7 * t2_2;
+ double t6_10 = t4_4 * t2_6 + t4_5 * t2_5 + t4_6 * t2_4 + t4_7 * t2_3 + t4_8 * t2_2;
+ double t7_8 = t6_6 * t1_2 + t6_7 * t1_1;
+ double t7_10 = t6_6 * t1_4 + t6_7 * t1_3 + t6_8 * t1_2 + t6_9 * t1_1;
+ double t8_8 = t6_6 * t2_2;
+ double t8_9 = t6_6 * t2_3 + t6_7 * t2_2;
+ double t8_10 = t6_6 * t2_4 + t6_7 * t2_3 + t6_8 * t2_2;
+ double t9_10 = t8_8 * t1_2 + t8_9 * t1_1;
+ double t10_10 = t8_8 * t2_2;
+ u = 1;
+ v = 0;
+ v += (1./12) * t1_2 + (1./80) * t1_4;
+ u -= (1./24) * t2_2 + (1./160) * t2_4 + (1./896) * t2_6 + (1./4608) * t2_8;
+ v -= (1./480) * t3_4 + (1./2688) * t3_6 + (1./13824) * t3_8 + (1./67584) * t3_10;
+ u += (1./1920) * t4_4 + (1./10752) * t4_6 + (1./55296) * t4_8 + (1./270336) * t4_10;
+ v += (1./53760) * t5_6 + (1./276480) * t5_8 + (1./1.35168e+06) * t5_10;
+ u -= (1./322560) * t6_6 + (1./1.65888e+06) * t6_8 + (1./8.11008e+06) * t6_10;
+ v -= (1./1.16122e+07) * t7_8 + (1./5.67706e+07) * t7_10;
+ u += (1./9.28973e+07) * t8_8 + (1./4.54164e+08) * t8_10;
+ v += (1./4.08748e+09) * t9_10;
+ u -= (1./4.08748e+10) * t10_10;
+#endif
+
+#if ORDER == 14
+ double t1_1 = km0;
+ double t1_2 = .5 * km1;
+ double t1_3 = (1./6) * km2;
+ double t1_4 = (1./24) * km3;
+ double t2_2 = t1_1 * t1_1;
+ double t2_3 = 2 * (t1_1 * t1_2);
+ double t2_4 = 2 * (t1_1 * t1_3) + t1_2 * t1_2;
+ double t2_5 = 2 * (t1_1 * t1_4 + t1_2 * t1_3);
+ double t2_6 = 2 * (t1_2 * t1_4) + t1_3 * t1_3;
+ double t2_7 = 2 * (t1_3 * t1_4);
+ double t2_8 = t1_4 * t1_4;
+ double t3_4 = t2_2 * t1_2 + t2_3 * t1_1;
+ double t3_6 = t2_2 * t1_4 + t2_3 * t1_3 + t2_4 * t1_2 + t2_5 * t1_1;
+ double t3_8 = t2_4 * t1_4 + t2_5 * t1_3 + t2_6 * t1_2 + t2_7 * t1_1;
+ double t3_10 = t2_6 * t1_4 + t2_7 * t1_3 + t2_8 * t1_2;
+ double t3_12 = t2_8 * t1_4;
+ double t4_4 = t2_2 * t2_2;
+ double t4_5 = 2 * (t2_2 * t2_3);
+ double t4_6 = 2 * (t2_2 * t2_4) + t2_3 * t2_3;
+ double t4_7 = 2 * (t2_2 * t2_5 + t2_3 * t2_4);
+ double t4_8 = 2 * (t2_2 * t2_6 + t2_3 * t2_5) + t2_4 * t2_4;
+ double t4_9 = 2 * (t2_2 * t2_7 + t2_3 * t2_6 + t2_4 * t2_5);
+ double t4_10 = 2 * (t2_2 * t2_8 + t2_3 * t2_7 + t2_4 * t2_6) + t2_5 * t2_5;
+ double t4_11 = 2 * (t2_3 * t2_8 + t2_4 * t2_7 + t2_5 * t2_6);
+ double t4_12 = 2 * (t2_4 * t2_8 + t2_5 * t2_7) + t2_6 * t2_6;
+ double t5_6 = t4_4 * t1_2 + t4_5 * t1_1;
+ double t5_8 = t4_4 * t1_4 + t4_5 * t1_3 + t4_6 * t1_2 + t4_7 * t1_1;
+ double t5_10 = t4_6 * t1_4 + t4_7 * t1_3 + t4_8 * t1_2 + t4_9 * t1_1;
+ double t5_12 = t4_8 * t1_4 + t4_9 * t1_3 + t4_10 * t1_2 + t4_11 * t1_1;
+ double t6_6 = t4_4 * t2_2;
+ double t6_7 = t4_4 * t2_3 + t4_5 * t2_2;
+ double t6_8 = t4_4 * t2_4 + t4_5 * t2_3 + t4_6 * t2_2;
+ double t6_9 = t4_4 * t2_5 + t4_5 * t2_4 + t4_6 * t2_3 + t4_7 * t2_2;
+ double t6_10 = t4_4 * t2_6 + t4_5 * t2_5 + t4_6 * t2_4 + t4_7 * t2_3 + t4_8 * t2_2;
+ double t6_11 = t4_4 * t2_7 + t4_5 * t2_6 + t4_6 * t2_5 + t4_7 * t2_4 + t4_8 * t2_3 + t4_9 * t2_2;
+ double t6_12 = t4_4 * t2_8 + t4_5 * t2_7 + t4_6 * t2_6 + t4_7 * t2_5 + t4_8 * t2_4 + t4_9 * t2_3 + t4_10 * t2_2;
+ double t7_8 = t6_6 * t1_2 + t6_7 * t1_1;
+ double t7_10 = t6_6 * t1_4 + t6_7 * t1_3 + t6_8 * t1_2 + t6_9 * t1_1;
+ double t7_12 = t6_8 * t1_4 + t6_9 * t1_3 + t6_10 * t1_2 + t6_11 * t1_1;
+ double t8_8 = t6_6 * t2_2;
+ double t8_9 = t6_6 * t2_3 + t6_7 * t2_2;
+ double t8_10 = t6_6 * t2_4 + t6_7 * t2_3 + t6_8 * t2_2;
+ double t8_11 = t6_6 * t2_5 + t6_7 * t2_4 + t6_8 * t2_3 + t6_9 * t2_2;
+ double t8_12 = t6_6 * t2_6 + t6_7 * t2_5 + t6_8 * t2_4 + t6_9 * t2_3 + t6_10 * t2_2;
+ double t9_10 = t8_8 * t1_2 + t8_9 * t1_1;
+ double t9_12 = t8_8 * t1_4 + t8_9 * t1_3 + t8_10 * t1_2 + t8_11 * t1_1;
+ double t10_10 = t8_8 * t2_2;
+ double t10_11 = t8_8 * t2_3 + t8_9 * t2_2;
+ double t10_12 = t8_8 * t2_4 + t8_9 * t2_3 + t8_10 * t2_2;
+ double t11_12 = t10_10 * t1_2 + t10_11 * t1_1;
+ double t12_12 = t10_10 * t2_2;
+ u = 1;
+ v = 0;
+ v += (1./12) * t1_2 + (1./80) * t1_4;
+ u -= (1./24) * t2_2 + (1./160) * t2_4 + (1./896) * t2_6 + (1./4608) * t2_8;
+ v -= (1./480) * t3_4 + (1./2688) * t3_6 + (1./13824) * t3_8 + (1./67584) * t3_10 + (1./319488) * t3_12;
+ u += (1./1920) * t4_4 + (1./10752) * t4_6 + (1./55296) * t4_8 + (1./270336) * t4_10 + (1./1.27795e+06) * t4_12;
+ v += (1./53760) * t5_6 + (1./276480) * t5_8 + (1./1.35168e+06) * t5_10 + (1./6.38976e+06) * t5_12;
+ u -= (1./322560) * t6_6 + (1./1.65888e+06) * t6_8 + (1./8.11008e+06) * t6_10 + (1./3.83386e+07) * t6_12;
+ v -= (1./1.16122e+07) * t7_8 + (1./5.67706e+07) * t7_10 + (1./2.6837e+08) * t7_12;
+ u += (1./9.28973e+07) * t8_8 + (1./4.54164e+08) * t8_10 + (1./2.14696e+09) * t8_12;
+ v += (1./4.08748e+09) * t9_10 + (1./1.93226e+10) * t9_12;
+ u -= (1./4.08748e+10) * t10_10 + (1./1.93226e+11) * t10_12;
+ v -= (1./2.12549e+12) * t11_12;
+ u += (1./2.55059e+13) * t12_12;
+#endif
+
+#if ORDER == 16
+ double t1_1 = km0;
+ double t1_2 = .5 * km1;
+ double t1_3 = (1./6) * km2;
+ double t1_4 = (1./24) * km3;
+ double t2_2 = t1_1 * t1_1;
+ double t2_3 = 2 * (t1_1 * t1_2);
+ double t2_4 = 2 * (t1_1 * t1_3) + t1_2 * t1_2;
+ double t2_5 = 2 * (t1_1 * t1_4 + t1_2 * t1_3);
+ double t2_6 = 2 * (t1_2 * t1_4) + t1_3 * t1_3;
+ double t2_7 = 2 * (t1_3 * t1_4);
+ double t2_8 = t1_4 * t1_4;
+ double t3_4 = t2_2 * t1_2 + t2_3 * t1_1;
+ double t3_6 = t2_2 * t1_4 + t2_3 * t1_3 + t2_4 * t1_2 + t2_5 * t1_1;
+ double t3_8 = t2_4 * t1_4 + t2_5 * t1_3 + t2_6 * t1_2 + t2_7 * t1_1;
+ double t3_10 = t2_6 * t1_4 + t2_7 * t1_3 + t2_8 * t1_2;
+ double t3_12 = t2_8 * t1_4;
+ double t4_4 = t2_2 * t2_2;
+ double t4_5 = 2 * (t2_2 * t2_3);
+ double t4_6 = 2 * (t2_2 * t2_4) + t2_3 * t2_3;
+ double t4_7 = 2 * (t2_2 * t2_5 + t2_3 * t2_4);
+ double t4_8 = 2 * (t2_2 * t2_6 + t2_3 * t2_5) + t2_4 * t2_4;
+ double t4_9 = 2 * (t2_2 * t2_7 + t2_3 * t2_6 + t2_4 * t2_5);
+ double t4_10 = 2 * (t2_2 * t2_8 + t2_3 * t2_7 + t2_4 * t2_6) + t2_5 * t2_5;
+ double t4_11 = 2 * (t2_3 * t2_8 + t2_4 * t2_7 + t2_5 * t2_6);
+ double t4_12 = 2 * (t2_4 * t2_8 + t2_5 * t2_7) + t2_6 * t2_6;
+ double t4_13 = 2 * (t2_5 * t2_8 + t2_6 * t2_7);
+ double t4_14 = 2 * (t2_6 * t2_8) + t2_7 * t2_7;
+ double t5_6 = t4_4 * t1_2 + t4_5 * t1_1;
+ double t5_8 = t4_4 * t1_4 + t4_5 * t1_3 + t4_6 * t1_2 + t4_7 * t1_1;
+ double t5_10 = t4_6 * t1_4 + t4_7 * t1_3 + t4_8 * t1_2 + t4_9 * t1_1;
+ double t5_12 = t4_8 * t1_4 + t4_9 * t1_3 + t4_10 * t1_2 + t4_11 * t1_1;
+ double t5_14 = t4_10 * t1_4 + t4_11 * t1_3 + t4_12 * t1_2 + t4_13 * t1_1;
+ double t6_6 = t4_4 * t2_2;
+ double t6_7 = t4_4 * t2_3 + t4_5 * t2_2;
+ double t6_8 = t4_4 * t2_4 + t4_5 * t2_3 + t4_6 * t2_2;
+ double t6_9 = t4_4 * t2_5 + t4_5 * t2_4 + t4_6 * t2_3 + t4_7 * t2_2;
+ double t6_10 = t4_4 * t2_6 + t4_5 * t2_5 + t4_6 * t2_4 + t4_7 * t2_3 + t4_8 * t2_2;
+ double t6_11 = t4_4 * t2_7 + t4_5 * t2_6 + t4_6 * t2_5 + t4_7 * t2_4 + t4_8 * t2_3 + t4_9 * t2_2;
+ double t6_12 = t4_4 * t2_8 + t4_5 * t2_7 + t4_6 * t2_6 + t4_7 * t2_5 + t4_8 * t2_4 + t4_9 * t2_3 + t4_10 * t2_2;
+ double t6_13 = t4_5 * t2_8 + t4_6 * t2_7 + t4_7 * t2_6 + t4_8 * t2_5 + t4_9 * t2_4 + t4_10 * t2_3 + t4_11 * t2_2;
+ double t6_14 = t4_6 * t2_8 + t4_7 * t2_7 + t4_8 * t2_6 + t4_9 * t2_5 + t4_10 * t2_4 + t4_11 * t2_3 + t4_12 * t2_2;
+ double t7_8 = t6_6 * t1_2 + t6_7 * t1_1;
+ double t7_10 = t6_6 * t1_4 + t6_7 * t1_3 + t6_8 * t1_2 + t6_9 * t1_1;
+ double t7_12 = t6_8 * t1_4 + t6_9 * t1_3 + t6_10 * t1_2 + t6_11 * t1_1;
+ double t7_14 = t6_10 * t1_4 + t6_11 * t1_3 + t6_12 * t1_2 + t6_13 * t1_1;
+ double t8_8 = t6_6 * t2_2;
+ double t8_9 = t6_6 * t2_3 + t6_7 * t2_2;
+ double t8_10 = t6_6 * t2_4 + t6_7 * t2_3 + t6_8 * t2_2;
+ double t8_11 = t6_6 * t2_5 + t6_7 * t2_4 + t6_8 * t2_3 + t6_9 * t2_2;
+ double t8_12 = t6_6 * t2_6 + t6_7 * t2_5 + t6_8 * t2_4 + t6_9 * t2_3 + t6_10 * t2_2;
+ double t8_13 = t6_6 * t2_7 + t6_7 * t2_6 + t6_8 * t2_5 + t6_9 * t2_4 + t6_10 * t2_3 + t6_11 * t2_2;
+ double t8_14 = t6_6 * t2_8 + t6_7 * t2_7 + t6_8 * t2_6 + t6_9 * t2_5 + t6_10 * t2_4 + t6_11 * t2_3 + t6_12 * t2_2;
+ double t9_10 = t8_8 * t1_2 + t8_9 * t1_1;
+ double t9_12 = t8_8 * t1_4 + t8_9 * t1_3 + t8_10 * t1_2 + t8_11 * t1_1;
+ double t9_14 = t8_10 * t1_4 + t8_11 * t1_3 + t8_12 * t1_2 + t8_13 * t1_1;
+ double t10_10 = t8_8 * t2_2;
+ double t10_11 = t8_8 * t2_3 + t8_9 * t2_2;
+ double t10_12 = t8_8 * t2_4 + t8_9 * t2_3 + t8_10 * t2_2;
+ double t10_13 = t8_8 * t2_5 + t8_9 * t2_4 + t8_10 * t2_3 + t8_11 * t2_2;
+ double t10_14 = t8_8 * t2_6 + t8_9 * t2_5 + t8_10 * t2_4 + t8_11 * t2_3 + t8_12 * t2_2;
+ double t11_12 = t10_10 * t1_2 + t10_11 * t1_1;
+ double t11_14 = t10_10 * t1_4 + t10_11 * t1_3 + t10_12 * t1_2 + t10_13 * t1_1;
+ double t12_12 = t10_10 * t2_2;
+ double t12_13 = t10_10 * t2_3 + t10_11 * t2_2;
+ double t12_14 = t10_10 * t2_4 + t10_11 * t2_3 + t10_12 * t2_2;
+ double t13_14 = t12_12 * t1_2 + t12_13 * t1_1;
+ double t14_14 = t12_12 * t2_2;
+ u = 1;
+ u -= 1./24 * t2_2 + 1./160 * t2_4 + 1./896 * t2_6 + 1./4608 * t2_8;
+ u += 1./1920 * t4_4 + 1./10752 * t4_6 + 1./55296 * t4_8 + 1./270336 * t4_10 + 1./1277952 * t4_12 + 1./5898240 * t4_14;
+ u -= 1./322560 * t6_6 + 1./1658880 * t6_8 + 1./8110080 * t6_10 + 1./38338560 * t6_12 + 1./176947200 * t6_14;
+ u += 1./92897280 * t8_8 + 1./454164480 * t8_10 + 4.6577500191e-10 * t8_12 + 1.0091791708e-10 * t8_14;
+ u -= 2.4464949595e-11 * t10_10 + 5.1752777990e-12 * t10_12 + 1.1213101898e-12 * t10_14;
+ u += 3.9206649992e-14 * t12_12 + 8.4947741650e-15 * t12_14;
+ u -= 4.6674583324e-17 * t14_14;
+ v = 0;
+ v += 1./12 * t1_2 + 1./80 * t1_4;
+ v -= 1./480 * t3_4 + 1./2688 * t3_6 + 1./13824 * t3_8 + 1./67584 * t3_10 + 1./319488 * t3_12;
+ v += 1./53760 * t5_6 + 1./276480 * t5_8 + 1./1351680 * t5_10 + 1./6389760 * t5_12 + 1./29491200 * t5_14;
+ v -= 1./11612160 * t7_8 + 1./56770560 * t7_10 + 1./268369920 * t7_12 + 8.0734333664e-10 * t7_14;
+ v += 2.4464949595e-10 * t9_10 + 5.1752777990e-11 * t9_12 + 1.1213101898e-11 * t9_14;
+ v -= 4.7047979991e-13 * t11_12 + 1.0193728998e-13 * t11_14;
+ v += 6.5344416654e-16 * t13_14;
+#endif
+
+ }
+
+ if (n == 1) {
+#if ORDER == 2
+ x = 1;
+ y = 0;
+#else
+ x = u;
+ y = v;
+#endif
+ } else {
+ double th = (((th4 * s + th3) * s + th2) * s + th1) * s;
+ double cth = cos(th);
+ double sth = sin(th);
+
+#if ORDER == 2
+ x += cth;
+ y += sth;
+#else
+ x += cth * u - sth * v;
+ y += cth * v + sth * u;
+#endif
+ s += ds;
+ }
+ }
+
+#if ORDER == 4 || ORDER == 6
+ xy[0] = x * (1./24 * ds);
+ xy[1] = y * (1./24 * ds);
+#else
+ xy[0] = x * ds;
+ xy[1] = y * ds;
+#endif
+}
+
+static double
+compute_ends(const double ks[4], double ends[2][4], double seg_ch)
+{
+ double xy[2];
+ double ch, th;
+ double l, l2, l3;
+ double th_even, th_odd;
+ double k0_even, k0_odd;
+ double k1_even, k1_odd;
+ double k2_even, k2_odd;
+
+ integrate_spiro(ks, xy);
+ ch = hypot(xy[0], xy[1]);
+ th = atan2(xy[1], xy[0]);
+ l = ch / seg_ch;
+
+ th_even = .5 * ks[0] + (1./48) * ks[2];
+ th_odd = .125 * ks[1] + (1./384) * ks[3] - th;
+ ends[0][0] = th_even - th_odd;
+ ends[1][0] = th_even + th_odd;
+ k0_even = l * (ks[0] + .125 * ks[2]);
+ k0_odd = l * (.5 * ks[1] + (1./48) * ks[3]);
+ ends[0][1] = k0_even - k0_odd;
+ ends[1][1] = k0_even + k0_odd;
+ l2 = l * l;
+ k1_even = l2 * (ks[1] + .125 * ks[3]);
+ k1_odd = l2 * .5 * ks[2];
+ ends[0][2] = k1_even - k1_odd;
+ ends[1][2] = k1_even + k1_odd;
+ l3 = l2 * l;
+ k2_even = l3 * ks[2];
+ k2_odd = l3 * .5 * ks[3];
+ ends[0][3] = k2_even - k2_odd;
+ ends[1][3] = k2_even + k2_odd;
+
+ return l;
+}
+
+static void
+compute_pderivs(const spiro_seg *s, double ends[2][4], double derivs[4][2][4],
+ int jinc)
+{
+ double recip_d = 2e6;
+ double delta = 1./ recip_d;
+ double try_ks[4];
+ double try_ends[2][4];
+ int i, j, k;
+
+ compute_ends(s->ks, ends, s->seg_ch);
+ for (i = 0; i < jinc; i++) {
+ for (j = 0; j < 4; j++)
+ try_ks[j] = s->ks[j];
+ try_ks[i] += delta;
+ compute_ends(try_ks, try_ends, s->seg_ch);
+ for (k = 0; k < 2; k++)
+ for (j = 0; j < 4; j++)
+ derivs[j][k][i] = recip_d * (try_ends[k][j] - ends[k][j]);
+ }
+}
+
+static double
+mod_2pi(double th)
+{
+ double u = th / (2 * M_PI);
+ return 2 * M_PI * (u - floor(u + 0.5));
+}
+
+static spiro_seg *
+setup_path(const spiro_cp *src, int n)
+{
+ int n_seg = src[0].ty == '{' ? n - 1 : n;
+ spiro_seg *r = (spiro_seg *)malloc((n_seg + 1) * sizeof(spiro_seg));
+ int i;
+ int ilast;
+
+ for (i = 0; i < n_seg; i++) {
+ r[i].x = src[i].x;
+ r[i].y = src[i].y;
+ r[i].ty = src[i].ty;
+ r[i].ks[0] = 0.;
+ r[i].ks[1] = 0.;
+ r[i].ks[2] = 0.;
+ r[i].ks[3] = 0.;
+ }
+ r[n_seg].x = src[n_seg % n].x;
+ r[n_seg].y = src[n_seg % n].y;
+ r[n_seg].ty = src[n_seg % n].ty;
+
+ for (i = 0; i < n_seg; i++) {
+ double dx = r[i + 1].x - r[i].x;
+ double dy = r[i + 1].y - r[i].y;
+ r[i].seg_ch = hypot(dx, dy);
+ r[i].seg_th = atan2(dy, dx);
+ }
+
+ ilast = n_seg - 1;
+ for (i = 0; i < n_seg; i++) {
+ if (r[i].ty == '{' || r[i].ty == '}' || r[i].ty == 'v')
+ r[i].bend_th = 0.;
+ else
+ r[i].bend_th = mod_2pi(r[i].seg_th - r[ilast].seg_th);
+ ilast = i;
+ }
+ return r;
+}
+
+static void
+bandec11(bandmat *m, int *perm, int n)
+{
+ int i, j, k;
+ int l;
+
+ /* pack top triangle to the left. */
+ for (i = 0; i < 5; i++) {
+ for (j = 0; j < i + 6; j++)
+ m[i].a[j] = m[i].a[j + 5 - i];
+ for (; j < 11; j++)
+ m[i].a[j] = 0.;
+ }
+ l = 5;
+ for (k = 0; k < n; k++) {
+ int pivot = k;
+ double pivot_val = m[k].a[0];
+ double pivot_scale;
+
+ l = l < n ? l + 1 : n;
+
+ for (j = k + 1; j < l; j++)
+ if (fabs(m[j].a[0]) > fabs(pivot_val)) {
+ pivot_val = m[j].a[0];
+ pivot = j;
+ }
+
+ perm[k] = pivot;
+ if (pivot != k) {
+ for (j = 0; j < 11; j++) {
+ double tmp = m[k].a[j];
+ m[k].a[j] = m[pivot].a[j];
+ m[pivot].a[j] = tmp;
+ }
+ }
+
+ if (fabs(pivot_val) < 1e-12) pivot_val = 1e-12;
+ pivot_scale = 1. / pivot_val;
+ for (i = k + 1; i < l; i++) {
+ double x = m[i].a[0] * pivot_scale;
+ m[k].al[i - k - 1] = x;
+ for (j = 1; j < 11; j++)
+ m[i].a[j - 1] = m[i].a[j] - x * m[k].a[j];
+ m[i].a[10] = 0.;
+ }
+ }
+}
+
+static void
+banbks11(const bandmat *m, const int *perm, double *v, int n)
+{
+ int i, k, l;
+
+ /* forward substitution */
+ l = 5;
+ for (k = 0; k < n; k++) {
+ i = perm[k];
+ if (i != k) {
+ double tmp = v[k];
+ v[k] = v[i];
+ v[i] = tmp;
+ }
+ if (l < n) l++;
+ for (i = k + 1; i < l; i++)
+ v[i] -= m[k].al[i - k - 1] * v[k];
+ }
+
+ /* back substitution */
+ l = 1;
+ for (i = n - 1; i >= 0; i--) {
+ double x = v[i];
+ for (k = 1; k < l; k++)
+ x -= m[i].a[k] * v[k + i];
+ v[i] = x / m[i].a[0];
+ if (l < 11) l++;
+ }
+}
+
+int compute_jinc(char ty0, char ty1)
+{
+ if (ty0 == 'o' || ty1 == 'o' ||
+ ty0 == ']' || ty1 == '[')
+ return 4;
+ else if (ty0 == 'c' && ty1 == 'c')
+ return 2;
+ else if (((ty0 == '{' || ty0 == 'v' || ty0 == '[') && ty1 == 'c') ||
+ (ty0 == 'c' && (ty1 == '}' || ty1 == 'v' || ty1 == ']')))
+ return 1;
+ else
+ return 0;
+}
+
+int count_vec(const spiro_seg *s, int nseg)
+{
+ int i;
+ int n = 0;
+
+ for (i = 0; i < nseg; i++)
+ n += compute_jinc(s[i].ty, s[i + 1].ty);
+ return n;
+}
+
+static void
+add_mat_line(bandmat *m, double *v,
+ double derivs[4], double x, double y, int j, int jj, int jinc,
+ int nmat)
+{
+ int k;
+
+ if (jj >= 0) {
+ int joff = (j + 5 - jj + nmat) % nmat;
+ if (nmat < 6) {
+ joff = j + 5 - jj;
+ } else if (nmat == 6) {
+ joff = 2 + (j + 3 - jj + nmat) % nmat;
+ }
+#ifdef VERBOSE
+ printf("add_mat_line j=%d jj=%d jinc=%d nmat=%d joff=%d\n", j, jj, jinc, nmat, joff);
+#endif
+ v[jj] += x;
+ for (k = 0; k < jinc; k++)
+ m[jj].a[joff + k] += y * derivs[k];
+ }
+}
+
+static double
+spiro_iter(spiro_seg *s, bandmat *m, int *perm, double *v, int n)
+{
+ int cyclic = s[0].ty != '{' && s[0].ty != 'v';
+ int i, j, jj;
+ int nmat = count_vec(s, n);
+ double norm;
+ int n_invert;
+
+ for (i = 0; i < nmat; i++) {
+ v[i] = 0.;
+ for (j = 0; j < 11; j++)
+ m[i].a[j] = 0.;
+ for (j = 0; j < 5; j++)
+ m[i].al[j] = 0.;
+ }
+
+ j = 0;
+ if (s[0].ty == 'o')
+ jj = nmat - 2;
+ else if (s[0].ty == 'c')
+ jj = nmat - 1;
+ else
+ jj = 0;
+ for (i = 0; i < n; i++) {
+ char ty0 = s[i].ty;
+ char ty1 = s[i + 1].ty;
+ int jinc = compute_jinc(ty0, ty1);
+ double th = s[i].bend_th;
+ double ends[2][4];
+ double derivs[4][2][4];
+ int jthl = -1, jk0l = -1, jk1l = -1, jk2l = -1;
+ int jthr = -1, jk0r = -1, jk1r = -1, jk2r = -1;
+
+ compute_pderivs(&s[i], ends, derivs, jinc);
+
+ /* constraints crossing left */
+ if (ty0 == 'o' || ty0 == 'c' || ty0 == '[' || ty0 == ']') {
+ jthl = jj++;
+ jj %= nmat;
+ jk0l = jj++;
+ }
+ if (ty0 == 'o') {
+ jj %= nmat;
+ jk1l = jj++;
+ jk2l = jj++;
+ }
+
+ /* constraints on left */
+ if ((ty0 == '[' || ty0 == 'v' || ty0 == '{' || ty0 == 'c') &&
+ jinc == 4) {
+ if (ty0 != 'c')
+ jk1l = jj++;
+ jk2l = jj++;
+ }
+
+ /* constraints on right */
+ if ((ty1 == ']' || ty1 == 'v' || ty1 == '}' || ty1 == 'c') &&
+ jinc == 4) {
+ if (ty1 != 'c')
+ jk1r = jj++;
+ jk2r = jj++;
+ }
+
+ /* constraints crossing right */
+ if (ty1 == 'o' || ty1 == 'c' || ty1 == '[' || ty1 == ']') {
+ jthr = jj;
+ jk0r = (jj + 1) % nmat;
+ }
+ if (ty1 == 'o') {
+ jk1r = (jj + 2) % nmat;
+ jk2r = (jj + 3) % nmat;
+ }
+
+ add_mat_line(m, v, derivs[0][0], th - ends[0][0], 1, j, jthl, jinc, nmat);
+ add_mat_line(m, v, derivs[1][0], ends[0][1], -1, j, jk0l, jinc, nmat);
+ add_mat_line(m, v, derivs[2][0], ends[0][2], -1, j, jk1l, jinc, nmat);
+ add_mat_line(m, v, derivs[3][0], ends[0][3], -1, j, jk2l, jinc, nmat);
+ add_mat_line(m, v, derivs[0][1], -ends[1][0], 1, j, jthr, jinc, nmat);
+ add_mat_line(m, v, derivs[1][1], -ends[1][1], 1, j, jk0r, jinc, nmat);
+ add_mat_line(m, v, derivs[2][1], -ends[1][2], 1, j, jk1r, jinc, nmat);
+ add_mat_line(m, v, derivs[3][1], -ends[1][3], 1, j, jk2r, jinc, nmat);
+ j += jinc;
+ }
+ if (cyclic) {
+ memcpy(m + nmat, m, sizeof(bandmat) * nmat);
+ memcpy(m + 2 * nmat, m, sizeof(bandmat) * nmat);
+ memcpy(v + nmat, v, sizeof(double) * nmat);
+ memcpy(v + 2 * nmat, v, sizeof(double) * nmat);
+ n_invert = 3 * nmat;
+ j = nmat;
+ } else {
+ n_invert = nmat;
+ j = 0;
+ }
+/*
+#define VERBOSE
+*/
+#ifdef VERBOSE
+ for (i = 0; i < n; i++) {
+ int k;
+ for (k = 0; k < 11; k++)
+ printf(" %2.4f", m[i].a[k]);
+ printf(": %2.4f\n", v[i]);
+ }
+ printf("---\n");
+#endif
+ bandec11(m, perm, n_invert);
+ banbks11(m, perm, v, n_invert);
+ norm = 0.;
+ for (i = 0; i < n; i++) {
+ char ty0 = s[i].ty;
+ char ty1 = s[i + 1].ty;
+ int jinc = compute_jinc(ty0, ty1);
+ int k;
+
+ for (k = 0; k < jinc; k++) {
+ double dk = v[j++];
+
+#ifdef VERBOSE
+ printf("s[%d].ks[%d] += %f\n", i, k, dk);
+#endif
+ s[i].ks[k] += dk;
+ norm += dk * dk;
+ }
+ }
+ return norm;
+}
+
+int
+solve_spiro(spiro_seg *s, int nseg)
+{
+ bandmat *m;
+ double *v;
+ int *perm;
+ int nmat = count_vec(s, nseg);
+ int n_alloc = nmat;
+ double norm;
+ int i;
+
+ if (nmat == 0)
+ return 0;
+ if (s[0].ty != '{' && s[0].ty != 'v')
+ n_alloc *= 3;
+ if (n_alloc < 5)
+ n_alloc = 5;
+ m = (bandmat *)malloc(sizeof(bandmat) * n_alloc);
+ v = (double *)malloc(sizeof(double) * n_alloc);
+ perm = (int *)malloc(sizeof(int) * n_alloc);
+
+ for (i = 0; i < 10; i++) {
+ norm = spiro_iter(s, m, perm, v, nseg);
+#ifdef VERBOSE
+ printf("%% norm = %g\n", norm);
+#endif
+ if (norm < 1e-12) break;
+ }
+
+ free(m);
+ free(v);
+ free(perm);
+ return 0;
+}
+
+static void
+spiro_seg_to_bpath(const double ks[4],
+ double x0, double y0, double x1, double y1,
+ bezctx *bc, int depth)
+{
+ double bend = fabs(ks[0]) + fabs(.5 * ks[1]) + fabs(.125 * ks[2]) +
+ fabs((1./48) * ks[3]);
+
+ if (!(bend > 1e-8)) {
+ bezctx_lineto(bc, x1, y1);
+ } else {
+ double seg_ch = hypot(x1 - x0, y1 - y0);
+ double seg_th = atan2(y1 - y0, x1 - x0);
+ double xy[2];
+ double ch, th;
+ double scale, rot;
+ double th_even, th_odd;
+ double ul, vl;
+ double ur, vr;
+
+ integrate_spiro(ks, xy);
+ ch = hypot(xy[0], xy[1]);
+ th = atan2(xy[1], xy[0]);
+ scale = seg_ch / ch;
+ rot = seg_th - th;
+ if (depth > 10 || bend < 0.5) {
+ th_even = (1./384) * ks[3] + (1./8) * ks[1] + rot;
+ th_odd = (1./48) * ks[2] + .5 * ks[0];
+ ul = (scale * (1./3)) * cos(th_even - th_odd);
+ vl = (scale * (1./3)) * sin(th_even - th_odd);
+ ur = (scale * (1./3)) * cos(th_even + th_odd);
+ vr = (scale * (1./3)) * sin(th_even + th_odd);
+ bezctx_curveto(bc, x0 + ul, y0 + vl, x1 - ur, y1 - vr, x1, y1);
+ } else {
+ /* subdivide */
+ double ksub[4];
+ double thsub;
+ double xysub[2];
+ double xmid, ymid;
+ double cth, sth;
+
+ ksub[0] = .5 * ks[0] - .125 * ks[1] + (1./64) * ks[2] - (1./768) * ks[3];
+ ksub[1] = .25 * ks[1] - (1./16) * ks[2] + (1./128) * ks[3];
+ ksub[2] = .125 * ks[2] - (1./32) * ks[3];
+ ksub[3] = (1./16) * ks[3];
+ thsub = rot - .25 * ks[0] + (1./32) * ks[1] - (1./384) * ks[2] + (1./6144) * ks[3];
+ cth = .5 * scale * cos(thsub);
+ sth = .5 * scale * sin(thsub);
+ integrate_spiro(ksub, xysub);
+ xmid = x0 + cth * xysub[0] - sth * xysub[1];
+ ymid = y0 + cth * xysub[1] + sth * xysub[0];
+ spiro_seg_to_bpath(ksub, x0, y0, xmid, ymid, bc, depth + 1);
+ ksub[0] += .25 * ks[1] + (1./384) * ks[3];
+ ksub[1] += .125 * ks[2];
+ ksub[2] += (1./16) * ks[3];
+ spiro_seg_to_bpath(ksub, xmid, ymid, x1, y1, bc, depth + 1);
+ }
+ }
+}
+
+spiro_seg *
+run_spiro(const spiro_cp *src, int n)
+{
+ int nseg = src[0].ty == '{' ? n - 1 : n;
+ spiro_seg *s = setup_path(src, n);
+ if (nseg > 1)
+ solve_spiro(s, nseg);
+ return s;
+}
+
+void
+free_spiro(spiro_seg *s)
+{
+ free(s);
+}
+
+void
+spiro_to_bpath(const spiro_seg *s, int n, bezctx *bc)
+{
+ int i;
+ int nsegs = s[n - 1].ty == '}' ? n - 1 : n;
+
+ for (i = 0; i < nsegs; i++) {
+ double x0 = s[i].x;
+ double y0 = s[i].y;
+ double x1 = s[i + 1].x;
+ double y1 = s[i + 1].y;
+
+ if (i == 0)
+ bezctx_moveto(bc, x0, y0, s[0].ty == '{');
+ bezctx_mark_knot(bc, i);
+ spiro_seg_to_bpath(s[i].ks, x0, y0, x1, y1, bc, 0);
+ }
+}
+
+double
+get_knot_th(const spiro_seg *s, int i)
+{
+ double ends[2][4];
+
+ if (i == 0) {
+ compute_ends(s[i].ks, ends, s[i].seg_ch);
+ return s[i].seg_th - ends[0][0];
+ } else {
+ compute_ends(s[i - 1].ks, ends, s[i - 1].seg_ch);
+ return s[i - 1].seg_th + ends[1][0];
+ }
+}
+
+#ifdef UNIT_TEST
+#include <stdio.h>
+#include <sys/time.h> /* for gettimeofday */
+
+static double
+get_time (void)
+{
+ struct timeval tv;
+ struct timezone tz;
+
+ gettimeofday (&tv, &tz);
+
+ return tv.tv_sec + 1e-6 * tv.tv_usec;
+}
+
+int
+test_integ(void) {
+ double ks[] = {1, 2, 3, 4};
+ double xy[2];
+ double xynom[2];
+ double ch, th;
+ int i, j;
+ int nsubdiv;
+
+ n = ORDER < 6 ? 4096 : 1024;
+ integrate_spiro(ks, xynom);
+ nsubdiv = ORDER < 12 ? 8 : 7;
+ for (i = 0; i < nsubdiv; i++) {
+ double st, en;
+ double err;
+ int n_iter = (1 << (20 - i));
+
+ n = 1 << i;
+ st = get_time();
+ for (j = 0; j < n_iter; j++)
+ integrate_spiro(ks, xy);
+ en = get_time();
+ err = hypot(xy[0] - xynom[0], xy[1] - xynom[1]);
+#ifdef VERBOSE
+ printf("%d %d %g %g\n", ORDER, n, (en - st) / n_iter, err);
+#endif
+ ch = hypot(xy[0], xy[1]);
+ th = atan2(xy[1], xy[0]);
+#if 0
+ printf("n = %d: integ(%g %g %g %g) = %g %g, ch = %g, th = %g\n", n,
+ ks[0], ks[1], ks[2], ks[3], xy[0], xy[1], ch, th);
+ printf("%d: %g %g\n", n, xy[0] - xynom[0], xy[1] - xynom[1]);
+#endif
+ }
+ return 0;
+}
+
+void
+print_seg(const double ks[4], double x0, double y0, double x1, double y1)
+{
+ double bend = fabs(ks[0]) + fabs(.5 * ks[1]) + fabs(.125 * ks[2]) +
+ fabs((1./48) * ks[3]);
+
+ if (bend < 1e-8) {
+#ifdef VERBOSE
+ printf("%g %g lineto\n", x1, y1);
+#endif
+ } else {
+ double seg_ch = hypot(x1 - x0, y1 - y0);
+ double seg_th = atan2(y1 - y0, x1 - x0);
+ double xy[2];
+ double ch, th;
+ double scale, rot;
+ double th_even, th_odd;
+ double ul, vl;
+ double ur, vr;
+
+ integrate_spiro(ks, xy);
+ ch = hypot(xy[0], xy[1]);
+ th = atan2(xy[1], xy[0]);
+ scale = seg_ch / ch;
+ rot = seg_th - th;
+ if (bend < 1.) {
+ th_even = (1./384) * ks[3] + (1./8) * ks[1] + rot;
+ th_odd = (1./48) * ks[2] + .5 * ks[0];
+ ul = (scale * (1./3)) * cos(th_even - th_odd);
+ vl = (scale * (1./3)) * sin(th_even - th_odd);
+ ur = (scale * (1./3)) * cos(th_even + th_odd);
+ vr = (scale * (1./3)) * sin(th_even + th_odd);
+#ifdef VERBOSE
+ printf("%g %g %g %g %g %g curveto\n",
+ x0 + ul, y0 + vl, x1 - ur, y1 - vr, x1, y1);
+#endif
+
+ } else {
+ /* subdivide */
+ double ksub[4];
+ double thsub;
+ double xysub[2];
+ double xmid, ymid;
+ double cth, sth;
+
+ ksub[0] = .5 * ks[0] - .125 * ks[1] + (1./64) * ks[2] - (1./768) * ks[3];
+ ksub[1] = .25 * ks[1] - (1./16) * ks[2] + (1./128) * ks[3];
+ ksub[2] = .125 * ks[2] - (1./32) * ks[3];
+ ksub[3] = (1./16) * ks[3];
+ thsub = rot - .25 * ks[0] + (1./32) * ks[1] - (1./384) * ks[2] + (1./6144) * ks[3];
+ cth = .5 * scale * cos(thsub);
+ sth = .5 * scale * sin(thsub);
+ integrate_spiro(ksub, xysub);
+ xmid = x0 + cth * xysub[0] - sth * xysub[1];
+ ymid = y0 + cth * xysub[1] + sth * xysub[0];
+ print_seg(ksub, x0, y0, xmid, ymid);
+ ksub[0] += .25 * ks[1] + (1./384) * ks[3];
+ ksub[1] += .125 * ks[2];
+ ksub[2] += (1./16) * ks[3];
+ print_seg(ksub, xmid, ymid, x1, y1);
+ }
+ }
+}
+
+void
+print_segs(const spiro_seg *segs, int nsegs)
+{
+ int i;
+
+ for (i = 0; i < nsegs; i++) {
+ double x0 = segs[i].x;
+ double y0 = segs[i].y;
+ double x1 = segs[i + 1].x;
+ double y1 = segs[i + 1].y;
+
+ if (i == 0)
+ printf("%g %g moveto\n", x0, y0);
+ printf("%% ks = [ %g %g %g %g ]\n",
+ segs[i].ks[0], segs[i].ks[1], segs[i].ks[2], segs[i].ks[3]);
+ print_seg(segs[i].ks, x0, y0, x1, y1);
+ }
+ printf("stroke\n");
+}
+
+int
+test_curve(void)
+{
+ spiro_cp path[] = {
+ {334, 117, 'v'},
+ {305, 176, 'v'},
+ {212, 142, 'c'},
+ {159, 171, 'c'},
+ {224, 237, 'c'},
+ {347, 335, 'c'},
+ {202, 467, 'c'},
+ {81, 429, 'v'},
+ {114, 368, 'v'},
+ {201, 402, 'c'},
+ {276, 369, 'c'},
+ {218, 308, 'c'},
+ {91, 211, 'c'},
+ {124, 111, 'c'},
+ {229, 82, 'c'}
+ };
+ spiro_seg *segs;
+ int i;
+
+ n = 1;
+ for (i = 0; i < 1000; i++) {
+ segs = setup_path(path, 15);
+ solve_spiro(segs, 15);
+ }
+ printf("100 800 translate 1 -1 scale 1 setlinewidth\n");
+ print_segs(segs, 15);
+ printf("showpage\n");
+ return 0;
+}
+
+int main(int argc, char **argv)
+{
+ return test_curve();
+}
+#endif
diff --git a/app/cornu/spiro.h b/app/cornu/spiro.h
new file mode 100644
index 0000000..1bcca37
--- /dev/null
+++ b/app/cornu/spiro.h
@@ -0,0 +1,22 @@
+#ifndef _SPIRO_H
+#define _SPIRO_H
+#include "bezctx_intf.h"
+typedef struct {
+ double x;
+ double y;
+ char ty;
+} spiro_cp;
+
+typedef struct spiro_seg_s spiro_seg;
+
+spiro_seg *
+run_spiro(const spiro_cp *src, int n);
+
+void
+free_spiro(spiro_seg *s);
+
+void
+spiro_to_bpath(const spiro_seg *s, int n, bezctx *bc);
+
+double get_knot_th(const spiro_seg *s, int i);
+#endif
diff --git a/app/cornu/spiroentrypoints.c b/app/cornu/spiroentrypoints.c
new file mode 100644
index 0000000..0128115
--- /dev/null
+++ b/app/cornu/spiroentrypoints.c
@@ -0,0 +1,60 @@
+/*
+libspiro - conversion between spiro control points and bezier's
+Copyright (C) 2007 Raph Levien
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301, USA.
+
+*/
+/* Interface routines to Raph's spiro package. */
+
+#include "spiroentrypoints.h"
+
+void
+SpiroCPsToBezier(spiro_cp *spiros,int n,int isclosed,bezctx *bc)
+{
+ spiro_seg *s;
+
+ if ( n<1 )
+return;
+ if ( !isclosed ) {
+ char oldty_start = spiros[0].ty;
+ char oldty_end = spiros[n-1].ty;
+ spiros[0].ty = '{';
+ spiros[n-1].ty = '}';
+ s = run_spiro(spiros,n);
+ spiros[n-1].ty = oldty_end;
+ spiros[0].ty = oldty_start;
+ } else
+ s = run_spiro(spiros,n);
+ spiro_to_bpath(s,n,bc);
+ free_spiro(s);
+}
+
+void
+TaggedSpiroCPsToBezier(spiro_cp *spiros,bezctx *bc)
+{
+ spiro_seg *s;
+ int n;
+
+ for ( n=0; spiros[n].ty!='z' && spiros[n].ty!='}'; ++n );
+ if ( spiros[n].ty == '}' ) ++n;
+
+ if ( n<1 )
+return;
+ s = run_spiro(spiros,n);
+ spiro_to_bpath(s,n,bc);
+ free_spiro(s);
+}
diff --git a/app/cornu/spiroentrypoints.h b/app/cornu/spiroentrypoints.h
new file mode 100644
index 0000000..006804c
--- /dev/null
+++ b/app/cornu/spiroentrypoints.h
@@ -0,0 +1,31 @@
+#ifndef _SPIROENTRYPOINTS_H
+# define _SPIROENTRYPOINTS_H
+# include "bezctx_intf.h"
+# include "spiro.h"
+
+ /* Possible values of the "ty" field. */
+#define SPIRO_CORNER 'v'
+#define SPIRO_G4 'o'
+#define SPIRO_G2 'c'
+#define SPIRO_LEFT '['
+#define SPIRO_RIGHT ']'
+
+ /* For a closed contour add an extra cp with a ty set to */
+#define SPIRO_END 'z'
+ /* For an open contour the first cp must have a ty set to*/
+#define SPIRO_OPEN_CONTOUR '{'
+ /* For an open contour the last cp must have a ty set to */
+#define SPIRO_END_OPEN_CONTOUR '}'
+
+/* The spiros array should indicate it's own end... So */
+/* Open contours must have the ty field of the first cp set to '{' */
+/* and have the ty field of the last cp set to '}' */
+/* Closed contours must have an extra cp at the end whose ty is 'z' */
+/* the x&y values of this extra cp are ignored */
+extern void TaggedSpiroCPsToBezier(spiro_cp *spiros,bezctx *bc);
+
+/* The first argument is an array of spiro control points. */
+/* Open contours do not need to start with '{', nor to end with '}' */
+/* Close contours do not need to end with 'z' */
+extern void SpiroCPsToBezier(spiro_cp *spiros,int n,int isclosed,bezctx *bc);
+#endif
diff --git a/app/cornu/zmisc.h b/app/cornu/zmisc.h
new file mode 100644
index 0000000..ce3d4d3
--- /dev/null
+++ b/app/cornu/zmisc.h
@@ -0,0 +1,12 @@
+/**
+ * Misc portability and convenience macros.
+ **/
+
+#include <stdlib.h>
+
+#define zalloc malloc
+#define zrealloc realloc
+#define zfree free
+
+#define znew(type, n) (type *)zalloc(sizeof(type) * (n))
+#define zrenew(type, p, n) (type *)zrealloc((p), sizeof(type) * (n))
diff --git a/app/doc/CMakeLists.txt b/app/doc/CMakeLists.txt
index 03ac14b..a01d7af 100644
--- a/app/doc/CMakeLists.txt
+++ b/app/doc/CMakeLists.txt
@@ -89,7 +89,7 @@ IF(XTRKCAD_USE_GTK)
)
INSTALL(
FILES xtrkcad_osx.css
- DESTINATION ${XTRKCAD_SHARE_INSTALL_DIR}/XTrackCAD.help/Contents/Resources/en.lproj
+ DESTINATION ${XTRKCAD_SHARE_INSTALL_DIR}/XTrackCAD.help/Contents/Resources/en.lproj/sty
)
ENDIF(APPLE)
diff --git a/app/doc/ChangeLog b/app/doc/ChangeLog
deleted file mode 100644
index f04fcd6..0000000
--- a/app/doc/ChangeLog
+++ /dev/null
@@ -1,24 +0,0 @@
-Jul 25, 2009
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- intro.but.in: add description of command line arguments,
- update for new directory layout.
-
-Jun 09, 2009:
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- update.but: update release description
-
-Jun 06, 2009
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- intro.but.in: updated Linux installation information
-
-Mar 21, 2008
- IMPROVEMENT: Bob Blackwell
- updated doc for option dialogs
-
-Dec 02, 2007
- IMPROVEMENT: Bob Blackwell
- Spelling and formatting Corrections
- Move messages to appendix
- Split appendix in to individual files to allow
- messages.but to be included during build
-
diff --git a/app/doc/addm.but b/app/doc/addm.but
index cee8896..724e5fd 100644
--- a/app/doc/addm.but
+++ b/app/doc/addm.but
@@ -52,19 +52,19 @@ The \f{Add Menu} has all the actions related to adding track pieces to the layou
\u000
-\dd \f{Block} - Create, edit or delete a block.
+\dd \f{Block} - Create a block.
\u000
-\dd \f{Switchmotor} - Create, edit or delete a switchmotor.
+\dd \f{Switchmotor} - Create a switchmotor.
\u000
-\dd \f{Signal} - Create, edit or delete a signal.
+\dd \f{Signal} - Create a signal.
\u000
-\dd \f{Control} - Create a signal.
+\dd \f{Control} - Create a control.
\u000
@@ -100,26 +100,36 @@ You can join to and from circles, after which they become curved tracks.
\rule
-
\S{cmdCurve} Curved Track
\G{png.d/bcurve.png}
Creating a curve is a two step operation. The four methods (with their Shortcut keys) used to create a Curved Track are:
-\dd \G{png.d/bcurve1.png} (\c{Control-4}) Drag from one endpoint in the direction of the Curve at that point and release. Click and Drag to position the second endpoint.
+\dd \G{png.d/bcurve1.png} (\c{Control-4}) Drag from one endpoint in the direction of the Curve at that point and release. Click and Drag the red arrows to position the second endpoint.
+If Shift is held down when the first endpoint is being placed and the cursor is on a track, the new curve end will "Snap" to the nearest open track endpoint and you can drag out the second end aligned to that track. After a track is competed, the new track will be connected to this first track.
\u000
\dd \G{png.d/bcurve2.png} (\c{Control-5}) Drag from one of the endpoints to the Center of the Curved track and release. Click and Drag to position the second endpoint.
+If Shift is held down when the first endpoint is being placed and the cursor is on a track, the new curve end will "Snap" to the nearest open track endpoint and you can drag out the center at right angles aligned to that end. After a track is competed, the new track will be connected to this first track.
\u000
\dd \G{png.d/bcurve3.png} (\c{Control-6}) Drag from the Center of the Curved track to one of the endpoints and release. Click and Drag to position the second endpoint.
+Shift has no effect.
\u000
\dd \G{png.d/bcurve4.png} (\c{Control-7}) Drag from one endpoint to the other endpoint to form the Chord of the Curve and release. Click on the center of the track and Drag to form the Curve.
+Shift has no effect.
+
+\u000
+
+\dd \G{png.d/bezier.png} Place one endpoint and drag out the first control point and release, Place the second Endpoint and drag out the second control point and release. Once all 4 points are placed, you can pick one at a time and drag it to move it. Complete the Curve by pressing Enter, or Reject it with Esc.
+If Shift is held down when either endpoint is being placed it will "Snap" to an open track endpoint of the track underneath the cursor and you can only drag out the control point aligned to the end of the track. After the new track is competed, it will be connected to this existing track.
+
+\u000
A drop down menu, which allows selection of the Curved Track creation method, is invoked from the down arrow button (\G{png.d/bmenu.png}) located on the right side the Curved track button. Dependent upon previous selection, the Curved Track button will look like \G{png.d/bcurve1.png}, \G{png.d/bcurve2.png}, \G{png.d/bcurve3.png} or \G{png.d/bcurve4.png}.
@@ -127,7 +137,7 @@ A drop down menu, which allows selection of the Curved Track creation method, is
\dd \e{Curved Track Button Menu}
-In all cases, two Red arrow heads will be drawn after the first step to indicate where you can Drag to complete the second step.
+In all but the bezier case, two Red arrow heads will be drawn after the first step to indicate where you can Drag to complete the second step.
A straight track will be created if the second endpoint is lined up with the first endpoint.
@@ -135,6 +145,10 @@ If the Snap Grid (\K{cmdGrid}) is enabled then the endpoints will be constrained
Optionally, the curve center point and radius can be displayed for the Curve. This is enabled by the Move Label (\K{cmdMoveLabel}) command.
+For Beziers, the active control point will be drawn in red and the available endpoints are shown with circles.
+
+\f{Note:} You can also create Straight and Curved tracks using \k{cmdModify} by dragging out extra track from an open end-point.
+
\rule
@@ -165,8 +179,6 @@ Note: the drawing is an approximation to show the location of the \e{Points} and
\S{cmdHelix} Helix Track
-\G{png.d/bhelix.png}
-
A helix track is used to change the elevation of track in a restricted space. A helix is drawn as a circle of track, but in 3 dimensions it would resemble a cork screw or the pattern of threads on a bolt.
\G{png.d/ahelix.png}
@@ -216,6 +228,7 @@ It is possible to create tracks that abut (the endpoints are very close and alig
\G{png.d/bstraigh.png}
Straight track is a created by selecting the first endpoint then dragging the cursor to the point where you want the second endpoint to be.
+If Shift is held down when the first endpoint is being placed and the cursor is on a track, the new straight end will "Snap" to the nearest open track endpoint and you can drag out the second end aligned to that track. After a track is competed, the new track will be connected to the existing track.
If the Snap Grid (\K{cmdGrid}) is enabled then the endpoints will be constrained to the grid.
diff --git a/app/doc/changem.but b/app/doc/changem.but
index 2bcd90b..c8cb189 100644
--- a/app/doc/changem.but
+++ b/app/doc/changem.but
@@ -20,7 +20,7 @@ The \f{Change Menu} has all functions related to modifying objects that exist on
\u000
-\dd \f{Connect Sectional Tracks} - creates a connection between sectional track pieces by slightly moving the select piece(s) and the pieces they connect to.
+\dd \f{Connect Two Tracks} - creates a connection between track pieces with an option to slightly move the select piece(s) and the pieces they connect to. (\K{cmdConnect}).
\u000
@@ -28,39 +28,43 @@ The \f{Change Menu} has all functions related to modifying objects that exist on
\u000
-\dd \f{Flip} - turn selected object(s) over or around.
+\dd \f{Flip} - turn selected object(s) over or around. (\K{cmdFlip}).
\u000
-\dd \f{Join} - connect two separate pieces of track. This command can be used to move one of the pieces of track to the endpoint of the other or to create a connection by laying a stretch of flex-track.
+\dd \f{Join} - connect two separate pieces of track. This command can be used to move one of the pieces of track to the endpoint of the other or to create a connection by laying a stretch of flex-track. (\K{cmdJoin}).
\u000
-\dd \f{Modify} - modify an existing track.
+\dd \f{Modify} - modify an existing track, or lines. (\K{cmdModify}).
\u000
-\dd \f{Move} - move selected object(s).
+\dd \f{Move} - move selected object(s). (\K{cmdMove}).
\u000
-\dd \f{Move Description} - move the endpoint description of a track piece to another location.
+\dd \f{Move Description} - move the endpoint description of a track piece to another location. (\K{cmdMoveLabel}).
\u000
+\dd \f{Pan/Zoom} - move or resize the viewport using the mouse.
+
+\u000
+
\dd \f{Profile} - display the elevation profile of a definable stretch of track (\K{cmdProfile}).
\u000
-\dd \f{Properties} - sets \e{XTrackCAD} into \e{Describe} mode. Whenever an object is clicked on while in this mode, the \f{Properties} dialog is opened. This dialog allows direct manipulation of settings such as the objects length, position or orientation.
+\dd \f{Properties} - sets \e{XTrackCAD} into \e{Describe} mode. Whenever an object is clicked on while in this mode, the \f{Properties} dialog is opened. This dialog allows direct manipulation of settings such as the objects length, position or orientation. (\K{cmdDescribe}).
\u000
-\dd \f{Raise/Lower Elevations} - raise or lower elevation of selected tracks.
+\dd \f{Raise/Lower Elevations} - raise or lower elevation of selected tracks. (\K{cmdRaiseElev}).
\u000
-\dd \f{Rotate} - rotate selected object(s).
+\dd \f{Rotate} - rotate selected object(s). (\K{cmdRotate}).
\u000
@@ -68,11 +72,11 @@ The \f{Change Menu} has all functions related to modifying objects that exist on
\u000
-\dd \f{Select} - sets \e{XTrackCAD} into \e{Select} mode. Whenever an object is clicked on while in this mode, this selection state of this object is reversed. If an object was unselected it becomes selected, and vice versa. To unselect all objects press the ESC key, use \f{Deselect All} from the \f{Edit} (\K{editM}) menu or \f{Deselect All} from the \f{Pop-up} menu (\K{mouseBcmd}).
+\dd \f{Select} - sets \e{XTrackCAD} into \e{Select} mode. Whenever an object is clicked on while in this mode, this selection state of this object is reversed. If an object was unselected it becomes selected, and vice versa. To unselect all objects press the ESC key, use \f{Deselect All} from the \f{Edit} (\K{editM}) menu or \f{Deselect All} from the \f{Pop-up} menu (\K{mouseBcmd}). (\K{cmdSelect}).
\u000
-\dd \f{Split Track} - the \f{Split Track} command can be used in one of two ways;
+\dd \f{Split Track} - the \f{Split Track} (\K{cmdSplitTrack}) command can be used in one of two ways;
\lcont{
@@ -115,17 +119,27 @@ Using the \f{Select} command, select the track that is to have its elevation set
\rule
-\S{cmdConnect} Connect Sectional Tracks
+\S{cmdConnect} Connect Tracks
\G{png.d/bconnect.png}
-This command is used exclusively with \e{Sectional Track}.
+This command is frequently used with \e{Sectional Track}. But it can be useful to reattach ordinary track which has become disconected or split.
+
+There are three modes,
+
+\u000
+
+\b a \f{Left} click on a track near a disconnected end-point followed by a second on a close-by disconnected end-point on another track will try to join two tracks
-Occasionally pieces of sectional track do not line up exactly, especially when creating figure-8's or passing sidings. When laying out the actual track you can compensate for this by adjusting the individual tracks to provide a bit of slack. This command simulates that process.
+\b a \f{Shift-Left} click on a connected track will "Tighten Tracks" moving other tracks connected to this track to reduce any small distance or angle differences
-Click on the endpoint of each track you're trying to connect. Tracks will move slightly in an attempt to overcome the gap. If the gap is too large, the connection will fail. If this occurs, try using other track pieces in your layout.
+\b selecting a set of tracks followed by a \f{Right} click will prompt for confirmation that all selected tracks with unconnected endpoints should be joined to nearby selected track at an unconnected end point. This mode allows for an entire layout to be reconnected after a Select-All.
-\e{XTrackCAD} adjusts the positions of tracks connected to the tracks up to a track with more than two connections. See the Demo for details.
+\f{Notes for two track mode:} Occasionally pieces of sectional track do not line up exactly, especially when creating figure-8's or passing sidings. When laying out the actual track you can compensate for this by adjusting the individual tracks to provide a bit of slack. This command simulates that process.
+
+Click on the endpoint of each track you're trying to connect. XtrkCAD will move the tracks slightly in an attempt to overcome the gap. If the gap is too large, the connection will fail. If this occurs, try using other track pieces in your layout.
+
+\e{XTrackCAD} adjusts the positions of tracks connected to the tracks up to a track with more than two connections. See the Demo for details.
If one (or both) the selected tracks is an adjustable section (such as Kato's Adjustable Track #20-050) then the length of the track is changed to fill the gap.
@@ -160,7 +174,7 @@ An endpoint can have one of several elevation types:
\b \f{Station} - assigns a name to the endpoint.
-\f{Note:} Only one of these attributes can be assigned to an endpoint. For example, an endpoint can not be defined as a Grade and a Station at the same time.
+\f{Note:} Only one of these attributes can be assigned to an endpoint. For example, an endpoint can not be defined as a Grade and a Station at the same time.
When an endpoint is selected on the layout by \e{Left-Click}, it is highlighted by a large red dot and its elevation type and values are displayed in the dialog.
@@ -266,7 +280,9 @@ For detail about;
\S2{joinTrackCurve} Using Curved Flex-Track
-This method of joining track may be used where tracks are joined with a 'simple curve', e.g. one which uses a curve in a single direction as opposed to using reverse curves (\K{generalTerms}).
+This method of joining track may be used using Normal Easments where tracks are either joined with a 'simple curve'\k{joinNormalEasment}, e.g. one which uses a curve in a single direction as opposed to using reverse curves (\K{generalTerms}) or using complex curves if Easement is set to Cornu \K{joinCornu}.
+
+\S2{joinNormalEasment} Join with Normal Easement
\u000
@@ -344,6 +360,63 @@ For detail about;
\dd Moving one segment of track to join with another refer to \K{joinTrackMove}.
+\S2{joinCornu} \i{Creating a Cornu} \i{Cornu Easements} Join with Cornu Easement
+
+\u000
+
+\n First, ensure that the Easement type option is set to Cornu - see \k{cmdEasement}
+
+\n Start the join process by clicking on the Join button (\G{png.d/bjoin.png}).
+
+\lcont{
+
+\u000
+
+\G{png.d/joincornu1.png}
+
+\u000
+
+}
+
+\dd \e{Left-Click} the open endpoint of one of the two tracks being joined. A red dot within a red circle will appear at the end of the join.
+
+\u000
+
+\dd \e{Left-Drag} the endpoint to where you want it and release the button. The point will only move along the piece of track with the open endpoint (if this track type can be split) as far as the opposite end, or as an extension of that track at the selected end with the same curvature (if this track can be extended). Note that you will be able to fine-tune the end positions later.
+
+\lcont{
+
+\u000
+
+\G{png.d/joincornu2.png}
+
+\u000
+
+}
+
+\dd \e{Left-Click} the endpoint of the other track being joined. Another red dot within a circle will appear at that end of the join.
+
+\u000
+
+\dd \e{Left-Drag} the endpoint to where you want it and release the button. The second endpoint can only be moved along the second track as far as the other end (if it can be split) or as an extension beyond the end of this track (if it can be extended). The initial curve will be drawn - it will be red if the minimum radius is smaller than the minimum radius option.
+
+\lcont{
+
+\u000
+
+\G{png.d/joincornu3.png}
+
+\u000
+
+}
+
+\dd You are now in "Select Points" mode. You can select one end point at a time with \e{Left-Click} and move it with \e{Left-Drag}.
+
+\u000
+
+\dd Once you are happy, hit \e{Enter} or the \e{SpaceBar} to finish editing the easement. Or hit \e{Esc} to cancel.
+
+\dd If you want to modify the Cornu later (even if it is joined at both ends) see \k{chgCornu}
\rule
@@ -396,7 +469,7 @@ Any tracks created during the \f{Join} command will have the following propertie
Turnouts and Sectional (\K{cmdHotBar}) tracks can be joined to other tracks. \e{XTrackCAD} extends the selected endpoint with a straight track when making the connection.
-A Turntable (\K{cmdTurntable}) can be joined however it must be used as the second endpoint.
+A Turntable (\K{cmdTurntable}) can be joined however it must be used as the second endpoint for normal easements but can be connected to either end with Cornu.
For detail about;
@@ -473,17 +546,19 @@ For detail about;
\G{png.d/bmodify.png}
-The \f{Modify} command is used to change characteristics of or extend existing track by adding new track. This command works with any unconnected track endpoint.
+The \f{Modify} command is used to change characteristics of or extend existing track by adding new track. This command works with any unconnected track endpoint, or with a \e{Cornu} or \e{Bezier} track even if connected
The \f{Modify} command can be invoked using the \f{Change>Modify} menu item, the \f{Modify} button or the menu raised by a \e{Right-Click} over the \f{Main Canvas}.
Either the left mouse button (for changing length or creating a tangent track) or the right mouse button (for extending with a new track) is used to modify the unconnected endpoint.
-The endpoints of a \e{Line}, \e{Dimension Line}, \e{Table Edge} or \e{Bench-work} can be dragged to new positions. A \e{Box} is treated as 4 Lines.
+The endpoints of a \e{Line}, \e{Dimension Line}, \e{Table Edge} or \e{Bench-work} can be dragged to new positions. A \e{Box} or a \e{FilledBox} can be modified by selecting a corner and dragging in two dimensions, or a side and dragging it orthogonally. These modifications preserve a 4-sided rectangle.
+
+The controlpoints of a \e{Cornu Track}, \e{Bezier Track} or \e{Bezier Line} can be changed.
\e{Curved Lines} are modified in same manner as curved track.
-Selecting a corner of a \e{Poly Line}, \e{Filled Box} or \e{Polygon} moves that corner to a new position, and if moved close to a neighboring corner will merge the two corners and delete the edge between them. Selecting an edge will create a corner that can be dragged to a new position.
+Selecting a corner of a \e{Poly Line} or \e{Polygon} moves that corner to a new position, and if moved close to a neighboring corner will merge the two corners and delete the edge between them. Selecting an edge will create a corner that can be dragged to a new position.
Any tracks created during the \f{Modify} command will have the following properties inherited from the first track: selected state, hidden state, scale, track gauge and Layer.
@@ -503,6 +578,14 @@ For detail about;
\dd Extending track length refer to \K{extendTrack}
+\u000
+
+\dd Modifying a Cornu refer to \K{chgCornu}
+
+\u000
+
+\dd Modifying a Bezier refer to \K{chgBezier}
+
\rule
@@ -633,6 +716,57 @@ For detail about;
\rule
+\S2{chgCornu} \i{Cornu Easements} Modifying a Cornu
+
+Because a Cornu is defined by its end points position, angle and radius - it can only be directly modified by dragging an end point along a track.
+
+\n Click the \f{Modify} button (\G{png.d/bmodify.png}) to activate the \f{Modify} function.
+
+\lcont{\u000}
+
+\n Click on the Cornu track. The track ends will turn into roundels
+
+\lcont{\u000}
+
+\n \e{Left-Click} the endpoint and \e{Left-Drag} it to move the endpoint along the connected track, or beyond it if you want that track extended ( but this only works in the direction of the Cornu).
+
+\lcont{\u000}
+
+\n Repeat with the other end-pint if desired
+
+\lcont{\u000}
+
+\n Once you are happy, hit the \e{spacebar} or \e{Enter}, or to cancel hit \e{Escape}.
+
+\f{Note:} A Cornu can also be modified by moving or rotating a connected track.
+
+\rule
+
+\S2{chgBezier} Modifying a Bezier
+
+Because a Bezier is defined by its control points position - its shape can only be modified by dragging an control point.
+
+\n Click the \f{Modify} button (\G{png.d/bmodify.png}) to activate the \f{Modify} function.
+
+\lcont{\u000}
+
+\n Click on the track. The control points will appear
+
+\lcont{\u000}
+
+\n \e{Left-Click} a control point and \e{Left-Drag} it to move it.
+
+\lcont{\u000}
+
+\n Repeat for another end point if desired
+
+\lcont{\u000}
+
+\n Once you are happy, hit the \e{spacebar} or \e{Enter}, or to cancel hit \e{Escape}.
+
+\f{Note: } A Bezier's end point will only be modifyable if it is not connected. Both internal control points can be modified even if the track is connected.
+
+\rule
\S{cmdMove} Move
@@ -645,13 +779,21 @@ The \f{Move} command can be invoked using the \f{Change>Move} menu item or the \
Successful use of this command requires selection of the object(s) to be moved before attempting to move it. An object is selected by using the \e{Left-Click} command. A group of connected objects can be selected using the \e{Shift+Left-Click} command.
-A pop-up menu with commands controlling how objects are drawn during moves can be activated by entering a \e{Shift+Right-Click} command while hovering over the \f{Main Canvas}
+A move can be achieved using one of the following methods;
-\G{png.d/mmovedraw.png}
+\u000
-\e{Left+Drag} is used to move the selected object(s) around the layout.
+\dd \e{Left+Drag} using the mouse. See \K{moveByMouse} for detail.
-\f{Note:} The \f{Draw Moving Tracks} Radio box on the \f{Command Options} (\K{cmdCmdopt}) dialog can also be used to select how objects are drawn during drags to move or rotate objects. The options for this feature are:
+\u000
+
+\dd Selecting fixed or specified amounts of translation in the X and Y directions using a \e{Right-Click} menu. See \K{moveByMenu} for detail.
+
+\u000
+
+\rule
+
+A pop-up menu with commands controlling how objects are drawn during moves can be activated by entering a \e{Shift+Right-Click} command while hovering over the \f{Main Canvas}
\b \f{Normal} - objects are drawn normally. This can be time-consuming when using a slow machine and moving a large number of objects.
@@ -663,6 +805,54 @@ A pop-up menu with commands controlling how objects are drawn during moves can b
\b \f{Endpoints} - only the endpoints are drawn (as stars).
+\G{png.d/mmovedraw.png}
+
+\rule
+
+\f{Note:} If the moved track is connected but the track it is connect to is not moved, it will be disconnected, unless that track or the last selected track is a Cornu, in which case the Cornu concenred will be modified (if possible) to remain connected.
+
+\f{Note:} Cornu tracks connected to a turntable will be modified if it is moved or rotated. They remain connected at the point on the radius where they started, so it may be desireable to delete and redraw them if the rotation is large.
+
+\f{Note:} The \f{Draw Moving Tracks} Radio box on the \f{Command Options} (\K{cmdCmdopt}) dialog can also be used to select how objects are drawn during drags to move or rotate objects. The options for this feature are:
+
+\rule
+
+\S2{moveByMouse} Using Mouse
+
+Once object(s) are selected, \e{Left+Drag} is used to move them around the layout using the mouse.
+
+Alternatively, \e{Shift+Ctrl+Arrow} can be used to micro-move the selected object(s). The amount micro-moved is dependent on the zoom in use. To move by smaller increments, zoom in further. My moving to macro-zoom modes extremely fine adjustments can be made.
+
+Remember that unattached objects can also be moved to exact positions using the \K{cmdDescribe} Command or by the \K{moveByMenu}.
+
+\S2{moveByMenu} Using Values of X and Y Translation
+
+Move An Object Using Fixed or Specified amounts of X and Y Translation.
+
+A pop-up menu with additional menu items allows you to \f{Move} the selected object(s) through through any amount you specify.
+
+\G{png.d/mmovevariable.png}
+
+The \f{Move} command is executed as follows;
+
+\n \f{Select} the object(s) to be moved.
+
+\lcont{\u000}
+
+\n \e{Shift+Right-Click} to raise the Move/Rotate menu.
+
+\lcont{\u000
+
+Any amount of precise transalation may be entered by \e{Left-Click}ing the \f{Enter Move...} menu item then entering a desired amount of translation in X and Y in the dialog window that appears.
+
+\u000
+
+\G{png.d/dmovetranslate.png}
+
+\u000
+
+}
+
\rule
@@ -678,10 +868,15 @@ Click the \f{Move Description} button to activate the \f{Move Description} comma
This operation can also be invoked by \e{Ctrl+Left+Drag} when in Select mode (\K{cmdSelect}).
-\e{Shift+Right-Click} (\K{cmdAcclKeys}) can be used to toggle display of individual Curved Track, Helix or Turnout Labels.
+\e{Shift+Right-Click} (\K{cmdAcclKeys}) can be used to toggle display of individual Curved Track, Bezier Track, Cornu, Helix or Turnout Labels.
\rule
+\S{cmdPan} Pan/Zoom
+
+\G{png.d/pan.png}
+
+This command is used to move or resize the viewport using the mouse or keyboard. \e{Left+Drag} Pans the viewport up and down, left and right keping it within the boundaries of the layout. \e{Right+Drag} selects an area of the screen to zoom into. The \f{"0"}- key resets the display to the origin but leaves the zoom as is. Keys between \f{1} and \f{9} set the zoom to that zoom level. The \f{"e"} - key resets the origin to zero and the zooms to show the whole layout.
\S{cmdProfile} Profile
@@ -799,7 +994,7 @@ Rotate An Object Using the Mouse
\lcont{\u000}
-\n Visualize an axis point on the object that's to be rotated then place the mouse pointer over that point.
+\n Visualize an axis point on the object that's to be rotated then place the mouse pointer over that point. If the track is a turntable, the point will be snapped to the turntable center if the mouse is within a quarter of the radius length of it.
\lcont{\u000}
@@ -828,7 +1023,11 @@ Rotation can also be achieved through use of one of these alternate methods;
Rotate An Object Using Fixed or Specified Degree's of Rotation
-A pop-up menu with additional menu items allows you to \f{Rotate} the selected object(s) through various predefined angles or through any angle you specify. The \f{Rotate} command is executed as follows;
+A pop-up menu with additional menu items allows you to \f{Rotate} the selected object(s) through various predefined angles or through any angle you specify.
+
+\G{png.d/mrotatemove.png}
+
+The \f{Rotate} command is executed as follows;
\n \f{Select} the object(s) to be rotated.
@@ -838,24 +1037,34 @@ A pop-up menu with additional menu items allows you to \f{Rotate} the selected o
\lcont{\u000}
-\n With the mouse pointer hovering over the object to be rotated, \e{Shift+Right-Click} to raise the Rotate menu then select the desired degree and direction of rotation from the list of predefined angles (180\u00B0, 90\u00B0 CW, 45\u00B0 CW, 30\u00B0 CW, 15\u00B0 CW, 15\u00B0 CCW, 30\u00B0 CCW, 45\u00B0 CCW, 90\u00B0 CCW).
-
-\lcont{
+\n With the mouse pointer hovering over the point about which the object(s) are to be rotated, \e{Shift+Right-Click} to raise the Rotate menu then select the desired degree and direction of rotation from the list of predefined angles (180\u00B0, 90\u00B0 CW, 45\u00B0 CW, 30\u00B0 CW, 15\u00B0 CW, 15\u00B0 CCW, 30\u00B0 CCW, 45\u00B0 CCW, 90\u00B0 CCW).
-\u000
+\lcont{\u000}
\G{png.d/mrotatefixed.png}
-\u000
+\u000
+
+\rule
+
+Alternately, any angle may be entered by \e{Left-Click}ing the \f{Enter Angle...} menu item
+
+\n \f{Select} the object(s) to be rotated.
+
+\lcont{\u000}
+
+\n With the mouse pointer hovering over the point about which the object(s) are to be rotated, \e{Shift+Right-Click} to raise the Rotate menu and then select the \e{Enter Angle...} option.
+
+\lcont{\u000}
+
+\G{png.d/mrotatevariable.png}
-Alternately, any angle may be entered by \e{Left-Click}ing the \f{Enter Angle...} menu item then entering a desired angle in the Rotate dialog window that appears.
+And then entering a desired angle in the Rotate dialog window that appears.
\G{png.d/drotateangle.png}
\u000
-}
-
Rotation can also be achieved through use of one of these alternate methods;
\u000
@@ -883,7 +1092,7 @@ A pop-up menu with additional menu items allows you to \f{Align} the selected ob
\lcont{\u000}
-\n With the mouse pointer hovering over the object to be rotated, \e{Shift+Right-Click} to raise the Rotate menu then select \f{Align}.
+\n With the mouse pointer hovering over the point about which the object(s) are to be rotated, \e{Shift+Right-Click} to raise the Rotate menu then select \f{Align}.
\lcont{
@@ -1039,7 +1248,7 @@ For detail about;
\u000
-\dd Dividing a section of track into two connected pieces see \K{splitDivide}.
+\dd Dividing a section of flex track into two connected pieces or trimming a turnout see \K{splitDivide}.
\u000
@@ -1056,7 +1265,7 @@ Disconnecting a joint between two pieces of connected track;
\lcont{\u000}
-\n Place the mouse pointer over the joint between the two track endpoints then \e{Left-Click}.
+\n Place the mouse pointer right over the joint between the two track endpoints then \e{Left-Click}.
\lcont{\u000}
@@ -1091,7 +1300,7 @@ For detail about;
\S2{splitDivide} Divide Track
-Dividing a section of track into two connected pieces;
+Dividing a section of flex track into two connected pieces;
\n Click the \f{Split} button (\G{png.d/bsplit.png}) to activate the \f{Split} command.
@@ -1164,7 +1373,7 @@ The \f{Split} command can be used to add block gaps (\K{generalTerms}) at the po
\u000
-After executing the \f{Split} command use the \e{Shift+Right-Click} command to display one of two pop-up menus which can be used to add, change or remove \e{block gaps} for the selected endpoint.
+After starting the \f{Split} command use the \e{Shift+Right-Click} over a joint to display one of two pop-up menus which can be used to add, change or remove \e{block gaps} for the selected endpoint.
\dd \G{png.d/msplitblock.png}
diff --git a/app/doc/doc.vcproj b/app/doc/doc.vcproj
deleted file mode 100644
index 095fd28..0000000
--- a/app/doc/doc.vcproj
+++ /dev/null
@@ -1,154 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="8,00"
- Name="doc"
- ProjectGUID="{2DD6F94A-3A3C-41BF-858E-C85F7941FF15}"
- Keyword="MakeFileProj"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="0"
- >
- <Tool
- Name="VCNMakeTool"
- BuildCommandLine="nmake -f makefile.win"
- ReBuildCommandLine=""
- CleanCommandLine="nmake -f makefile.win clean"
- Output="xtrkcad.chm"
- PreprocessorDefinitions="WIN32;_DEBUG"
- IncludeSearchPath=""
- ForcedIncludes=""
- AssemblySearchPath=""
- ForcedUsingAssemblies=""
- CompileAsManaged=""
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="0"
- >
- <Tool
- Name="VCNMakeTool"
- BuildCommandLine="nmake -f makefile.win"
- ReBuildCommandLine=""
- CleanCommandLine=""
- Output="xtrkcad.chm"
- PreprocessorDefinitions="WIN32;NDEBUG"
- IncludeSearchPath=""
- ForcedIncludes=""
- AssemblySearchPath=""
- ForcedUsingAssemblies=""
- CompileAsManaged=""
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\addm.but"
- >
- </File>
- <File
- RelativePath=".\appendix.but"
- >
- </File>
- <File
- RelativePath=".\changem.but"
- >
- </File>
- <File
- RelativePath=".\chmconf.but"
- >
- </File>
- <File
- RelativePath=".\drawm.but"
- >
- </File>
- <File
- RelativePath=".\editm.but"
- >
- </File>
- <File
- RelativePath=".\filem.but"
- >
- </File>
- <File
- RelativePath=".\helpm.but"
- >
- </File>
- <File
- RelativePath=".\hotbar.but"
- >
- </File>
- <File
- RelativePath=".\intro.but"
- >
- </File>
- <File
- RelativePath=".\macrom.but"
- >
- </File>
- <File
- RelativePath=".\makefile.win"
- >
- </File>
- <File
- RelativePath=".\managem.but"
- >
- </File>
- <File
- RelativePath=".\navigation.but"
- >
- </File>
- <File
- RelativePath=".\optionm.but"
- >
- </File>
- <File
- RelativePath=".\statusbar.but"
- >
- </File>
- <File
- RelativePath=".\view_winm.but"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- <File
- RelativePath=".\readme.txt"
- >
- </File>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/app/doc/drawm.but b/app/doc/drawm.but
index 21785ce..b8469b1 100644
--- a/app/doc/drawm.but
+++ b/app/doc/drawm.but
@@ -16,15 +16,15 @@ There are 4 command buttons on the tool-bar used to draw Straight Objects, Curve
Functions for drawing basic shapes and objects like lines and curves can be accessed from this menu.
-\dd \f{Circle Lines} - draw empty or filled circles.
+\dd \f{Circle Lines} - draw empty or filled circles. (\K{cmdCircleL})
\u000
-\dd \f{Curved Lines} - are created in the same manner as curved tracks.
+\dd \f{Curved Lines} - are created in the same manner as curved tracks. (\K{cmdCurvedL})
\u000
-\dd \f{Note} - attach a note icon to a specific location on the layout.
+\dd \f{Note} - attach a note icon to a specific location on the layout. (\K{cmdNote})
\u000
@@ -32,15 +32,15 @@ Functions for drawing basic shapes and objects like lines and curves can be acce
\u000
-\dd \f{Shapes} - draw boxes and poly-lines.
+\dd \f{Shapes} - draw boxes and poly-lines. (\K{cmdShapes})
\u000
-\dd \f{Straight Objects} - draw straight objects.
+\dd \f{Straight Objects} - draw straight objects. (\K{cmdStraightL})
\u000
-\dd \f{Text} - allows entry of text directly onto the layout.
+\dd \f{Text} - allows entry of text directly onto the layout. (\K{cmdText})
Some commands display controls on the Status Line (\K{mainW}) to change line width, color or other attributes of the object.
@@ -70,20 +70,35 @@ Some commands display controls on the Status Line (\K{mainW}) to change line wid
\dd \G{png.d/dcurve1.png} Select the start of the curve and drag in the direction of the curve.
+If \e{Shift} is held down as the left mouse button is clicked for the first end point of the curve and the cursor is over a line object the position will snap to the nearest end of that line.
+If \e{Shift} is held down when the button is released for the second end, it will snap to the nearest end of a line object if it is over one.
+
\u000
\dd \G{png.d/dcurve2.png} Select one end of the curve and drag to the center.
+To complete the command, drag on the red arrows to adjust the curve.
+
\u000
\dd \G{png.d/dcurve3.png} Select the center of the curve and drag to one end.
+To complete the command, drag on the red arrows to adjust the curve.
+
\u000
\dd \G{png.d/dcurve4.png} Drag from one end of the curve to the other to form the chord of the curve.
To complete the command, drag on the red arrows to adjust the curve.
+\u000
+
+\dd \G{png.d/dbezier.png} \e{Left-Drag} out control point from one end of the curve and then \e{Left-Drag} out the second control point from the other end.
+
+If \e{Shift} is held while the end points are selected, the curve will lock to the ends of nearby line objects.
+
+To adjust the curve, \e{Left-Click} and \e{Left-Drag} an end or a control point. Hit \e{Enter} to accept, \e{Esc} to reject.
+
\rule
@@ -121,7 +136,7 @@ Subsequent clicks on the \f{Ruler} button will hide or display the ruler.
Shapes are drawn by:
-\dd \G{png.d/dbox.png} \G{png.d/dfilbox.png} \f{Boxes} and \f{Filled Boxes} are created by selecting one corner and dragging the opposite corner. A \f{Box} is composed of four lines which may be individually deleted.
+\dd \G{png.d/dbox.png} \G{png.d/dfilbox.png} \f{Boxes} and \f{Filled Boxes} are created by selecting one corner and dragging the opposite corner.
\u000
@@ -134,9 +149,12 @@ Shapes are drawn by:
\G{png.d/mdrawstraight.png}
-Straight Objects are created by a \e{Left+Drag} (\K{windowTerms}) on the layout. If \e{Draw Straight Objects} is Sticky (\K{cmdSticky}), \e{Shift+Left+Drag} will use the endpoint of the previous line as the starting point.
+Straight Objects are created by a \e{Left+Drag} (\K{windowTerms}) on the layout. If \e{Draw Straight Objects} is Sticky (\K{cmdSticky}), \e{Cntl+Left+Drag} will use the endpoint of the previous line as the starting point.
\dd \G{png.d/dline.png} Creates a \f{Straight Line} of specified color and width.
+If \e{Shift} is held down for the first end point and the cursor is over a line object the new line start position will snap to the nearest end of the line.
+If \e{Shift} is held down when the button is released at the end of the \e{Left+Drag} the line end position will snap to the nearest end of any line object it is over.
+
\u000
@@ -169,7 +187,7 @@ Straight Objects are created by a \e{Left+Drag} (\K{windowTerms}) on the layout.
\G{png.d/btext.png}
-The \f{Text} command lets you enter text on the layout at the selected position.
+The \f{Text} command lets you enter text on the layout at the selected position. You can use the Tab key to format the text to fixed tab positions and CTRL+Enter to enter a newLine character.
\G{png.d/statustext.png}
diff --git a/app/doc/filem.but b/app/doc/filem.but
index 8b74434..c1c694e 100644
--- a/app/doc/filem.but
+++ b/app/doc/filem.but
@@ -35,7 +35,7 @@ The \f{File Menu} shows file oriented commands for loading and saving layout fil
\u000
-\dd \G{png.d/bnew.png} \f{New} - Clears the current layout. In case there are any unsaved changes on the current plan, a warning pop-up will be displayed and you'll have the option to cancel the operation.
+\dd \G{png.d/bnew.png} \f{New} - Clears the current layout. In case there are any unsaved changes on the current plan, a warning pop-up will be displayed and you'll have the option to cancel the operation. After that the Layout Options (\K{cmdLayout}) dialog will be opened.
\u000
@@ -220,6 +220,10 @@ Whether tracks are printed with one or two lines (representing the center line a
\u000
+\dd \f{Print centerline below Scale 1:1} - dotted line down the center of the Track/Roadbed. This line will always be printed at Scale 1:1, but selecting this option will print it at smaller scales. This option is disabled if tracks would be drawn with only one line (instead of two).
+
+\u000
+
\dd \f{Print Roadbed Outline} - lines representing the edge of the Roadbed. The Roadbed will be printed if the \e{Width} is greater than the track gauge. Note: this option is most useful at 1:1. This option is disabled if tracks would be drawn with only one line (instead of two).
\u000
diff --git a/app/doc/intro.but.in b/app/doc/intro.but.in
index cb0d0d2..51203f8 100644
--- a/app/doc/intro.but.in
+++ b/app/doc/intro.but.in
@@ -780,7 +780,7 @@ This section of the manual describes how and where to report a bug or seek an en
\S{bugs} Reporting \i{Bugs}
-If you encounter an unreported bug please submit detail regarding such to the \f{Bug Tracker} located at the \W{http://sourceforge.net/tracker/?group_id=151737&amp;atid=781978}{\e{XTrackCAD} Fork Project Site}.
+If you encounter an unreported bug please submit detail regarding such to the \f{Bug Tracker} located at the \W{https://sourceforge.net/p/xtrkcad-fork/bugs/}{\e{XTrackCAD} Fork Project Site}.
\f{Be sure to provide the three basic elements of a bug report:} What you were doing at the time the bug occurred, what you expected to happen and what actually happened. This detail will help developers replicate the error, find and correct the offending code.
@@ -788,7 +788,7 @@ If you encounter an unreported bug please submit detail regarding such to the \f
\u000
-\dd After completing installation of \e{XTrackCAD} on a Dell Dimension PC with 128 MB of memory running Windows ME, the following error occurred when attempting to edit a Text Label;
+\dd After completing installation of \e{XTrackCAD} on a Dell PC with 1024 MB of memory running Windows 7, the following error occurred when attempting to edit a Text Label;
\u000
@@ -808,7 +808,7 @@ If you encounter an unreported bug please submit detail regarding such to the \f
\f{Always search the bug database first.} Advice so good, we'll repeat it twice. Always search the bug database first. The odds are good that if you've found a problem, someone else found it too. If you spend a few minutes of your time making sure that you're not filing a duplicate bug, that's a few more minutes someone can spend helping to fix that bug rather than sorting out duplicate bug reports.
-\f{If you don't understand an error message, ask for help.} Don't report an error message you don't understand as a bug. There are a lot of places you can ask for help in understanding what is going on before you can claim that an error message you do not understand is a bug. (Once you've understood the error message and have a good suggestion for a way to make the error message clearer, you might consider reporting it as a \W{http://sourceforge.net/tracker/?group_id=151737&amp;atid=781981}{\e{XTrackCAD} Feature Request}).
+\f{If you don't understand an error message, ask for help.} Don't report an error message you don't understand as a bug. There are a lot of places you can ask for help in understanding what is going on before you can claim that an error message you do not understand is a bug. (Once you've understood the error message and have a good suggestion for a way to make the error message clearer, you might consider reporting it as a \W{https://sourceforge.net/p/xtrkcad-fork/feature-requests/}{\e{XTrackCAD} Feature Request}).
\f{Be brief, but don't leave any important details out.} This is a fine line to walk. But there are some general guidelines:
@@ -825,6 +825,6 @@ If you can recreate the problem the \f{Macro>Record} command can be used to reco
\S{enhancements} \i{Enhancement Requests}
-Suggestions for improvements are encouraged and welcome. Submit your suggestion to the \e{XTrackCAD} \f{Feature Tracker} located at the \W{http://sourceforge.net/tracker/?group_id=151737&amp;.atid=781981}{\e{XTrackCAD} Fork Project Site} or the \e{XTrackCAD} \f{Wikka Wish List} located at the \W{http://www.xtrkcad.org/Wikka/WishList}{\e{XTrackCAD} Wiki: WishList}.
+Suggestions for improvements are encouraged and welcome. Submit your suggestion to the \e{XTrackCAD} \f{Feature Tracker} located at the \W{https://sourceforge.net/p/xtrkcad-fork/feature-requests/}{\e{XTrackCAD} Fork Project Site}.
\rule
diff --git a/app/doc/managem.but b/app/doc/managem.but
index 4a769db..9153b52 100644
--- a/app/doc/managem.but
+++ b/app/doc/managem.but
@@ -67,7 +67,9 @@ Cars are placed on the layout by using the \f{Train Simulation} (\K{cmdTrain}) c
The \f{Find} button will center the \f{Main Window} (\K{mainW}) on the selected car. This button is only enabled for cars which are on the Layout (indicated by \f{Layout} in the Location column). If the car on a track that is hidden and \f{Trains on Hidden Track} (\K{cmdDisplay}) is set to \f{Hide}, then the car (and any attached cars) will be made visible.
-The \f{Edit} button invokes the \f{Car} dialog (\K{cmdCarpart}) to modify the selected car. This button is disabled if more than one (or no) car is selected or if the selected car is on the Layout. This dialog is also used to \f{Add} a new Car. Refer to \K{faqsPrototype} if an error occurs when attempting to add inventory to this list.
+The \f{Edit} button invokes the \f{Car} dialog (\K{cmdCarpart}) to modify the selected car. This button is disabled if more than one (or no) car is selected or if the selected car is on the Layout.
+
+The \f{Add} button is to add a new Car. Refer to \K{faqsPrototype} if an error occurs when attempting to add inventory to this list.
The \f{Delete} button removes the selected cars from your inventory. This button is disabled if any of the selected cars are on the layout.
diff --git a/app/doc/navigation.but b/app/doc/navigation.but
index 66b0cc9..47051f7 100644
--- a/app/doc/navigation.but
+++ b/app/doc/navigation.but
@@ -7,7 +7,7 @@
\C{navigation} Navigation
-The Main Window includes a title bar along the top that describes the contents of the window, followed by a tool bar that contains user interface buttons. Most of the window's remaining area is used to display the layout.
+The Main Window includes a title bar along the top that describes the contents of the window, followed by a tool bar that contains user interface buttons. Most of the window's remaining area is used to display the layout. A footer border contains information including system messages.
Most windows can be opened, closed, resized, minimized, and moved around the screen. The close, minimize, and zoom buttons are located on the right side of the title bar. Minimizing a window will close the contents of the window, but store a reference to it in the Task bar. Closing a window will make it disappear completely (so you may be asked to save your changes first). To move a window, click on the title bar and drag the window where you want it. To resize a window, either click the Zoom button
@@ -126,6 +126,8 @@ Most windows can be opened, closed, resized, minimized, and moved around the scr
\b PAGE UP and PAGE DOWN keys.
+\f{Note:} If The scale 1::1 is reached, "Macro Zoom" mode can be entered using CTRL+PageDown - with repeated presses a scale of 10::1 is possible.
+
}
\u000
@@ -134,7 +136,7 @@ Most windows can be opened, closed, resized, minimized, and moved around the scr
\u000
-\dd The ARROW keys move the \f{Canvas} left, right, up or down.
+\dd The ARROW keys move the \f{Canvas} left, right, up or down by half a screen. If Shift is used together with the arrow keys, the movement will be 1/20th of screen in the selected direction.
\u000
diff --git a/app/doc/optionm.but b/app/doc/optionm.but
index c7f00d9..0c2adfb 100644
--- a/app/doc/optionm.but
+++ b/app/doc/optionm.but
@@ -138,6 +138,10 @@ The \f{Display} dialog contains items which control the display of objects on th
\u000
+\dd \f{Draw Unconnected EndPts} - how to draw unconnected endpoints; normally, with a thick line or with a thick line in the exception color.
+
+\u000
+
\dd \f{Draw Ties} - how to draw ties under the rails when the drawing Scale is smaller than half of the \f{Two Rail Scale}.
\u000
@@ -241,13 +245,25 @@ The \f{Easement} dialog is invoked from the Options (\K{optionM}) menu.
\u000
-\dd Radio button group with \f{None}, \f{Sharp}, \f{Normal} and \f{Broad}. Corresponding \f{Value}s for these buttons are 0, 0.5, 1.0 and 2.0. Select \f{None} to turn easements off.
+\dd Radio button group with \f{None}, \f{Sharp}, \f{Normal}, \f{Broad} and \f{Cornu}. Corresponding \f{Value}s for these buttons are 0, 0.5, 1.0, 2.0 and -1.0. Select \f{None} to turn easements off.
+
+For traditional fixed sharpness easements see \k{EasementsTraditional}, for Cornu Easements see \k{EasementsCornu}.
+
+\S2{EasementsCornu} \i{Cornu Easements}
+
+The Cornu Easements work in a different way to the other easements. They use all the space available to minimize sharpness, so you can control the sharpness for each curve you draw by the distance apart, radius and angle of the two end points.
+
+The Cornu is a mathematical curve that has the property that the curvature (inverse of the radius) varies linearly along its length. Using an open-source Cornu library written by Dr Raph Levin, we can calculate an Cornu easment to suit the end conditions of radius, curve center, angle and position. A Cornu easement can be constructed between two tracks by using the values of these parameters.
+
+To draw an cornu easement see \k{joinCornu}, to Modify it afterwards see \k{chgCornu}.
+
+\S2{EasementsTraditional} \i{Easements with Fixed Sharpness}
-The values \f{R}, \f{X} and \f{L} are read-only.
+The values \f{R}, \f{X} and \f{L} are read-only. They are set using the radio buttons or the \f{Value} field which can be set to 0 (No Easment) or between 0.21 (sharpest Easement) 100 (broadest Easment).
These values indicate the worst case of joining a straight track with a curve of radius \f{R}. The two tracks are separated by the offset \f{X} while the easement curve extends for \f{L/2} inches or centimeters to each side of the endpoints.
-The formula used to draw easements is:
+The formula used to draw non-Cornu easements is:
\c x = l * l * l / (6 * R * L)
\e b b
@@ -301,7 +317,7 @@ The font selection dialog allows selection of the font used by the text (\K{cmdT
\S{cmdLayout} Layout Dialog
-The \f{Layout Options} dialog, displayed by the Options (\K{optionM}) menu, contains items controlling the current layout.
+The \f{Layout Options} dialog, displayed by the Options (\K{optionM}) or the File (\K{fileM} menu, contains items controlling the current layout.
\dd \G{png.d/layout.png}
diff --git a/app/doc/osxconf.but b/app/doc/osxconf.but
index 8656f0e..60e6036 100644
--- a/app/doc/osxconf.but
+++ b/app/doc/osxconf.but
@@ -1,7 +1,7 @@
\cfg{html-version}{xhtml1.0strict}
\cfg{html-leaf-level}{infinite}
\cfg{html-leaf-contains-contents}{false}
-\cfg{html-suppress-navlinks}{true}
+\cfg{html-suppress-navlinks}{false}
\cfg{html-suppress-address}{true}
\cfg{html-contents-filename}{contents.html}
@@ -11,6 +11,6 @@
\cfg{html-contents-depth}{0}{2}
-\cfg{html-head-end}{<link rel="stylesheet" type="text/css" href="xtrkcad_osx.css" /><script type="text/javascript" src="toc.js" ></script>}
+\cfg{html-head-end}{<link rel="stylesheet" type="text/css" href="sty/xtrkcad_osx.css" /><script type="text/javascript" src="scrpt/toc.js" ></script>}
\cfg{html-body-start}{<div id="container"><div id="toc" data-include="toc.html"></div><div id="contents">}
\cfg{html-body-end}{</div></div>} \ No newline at end of file
diff --git a/app/doc/png.d/bezier.png b/app/doc/png.d/bezier.png
new file mode 100644
index 0000000..e03458e
--- /dev/null
+++ b/app/doc/png.d/bezier.png
Binary files differ
diff --git a/app/doc/png.d/bmap.png b/app/doc/png.d/bmap.png
new file mode 100644
index 0000000..7a99724
--- /dev/null
+++ b/app/doc/png.d/bmap.png
Binary files differ
diff --git a/app/doc/png.d/cmdopt.png b/app/doc/png.d/cmdopt.png
index 58dfa2b..67503d2 100644
--- a/app/doc/png.d/cmdopt.png
+++ b/app/doc/png.d/cmdopt.png
Binary files differ
diff --git a/app/doc/png.d/dbezier.png b/app/doc/png.d/dbezier.png
new file mode 100644
index 0000000..0a81063
--- /dev/null
+++ b/app/doc/png.d/dbezier.png
Binary files differ
diff --git a/app/doc/png.d/displayopt.png b/app/doc/png.d/displayopt.png
index 59cc211..3124e2b 100644
--- a/app/doc/png.d/displayopt.png
+++ b/app/doc/png.d/displayopt.png
Binary files differ
diff --git a/app/doc/png.d/dproperties.png b/app/doc/png.d/dproperties.png
index e1677cc..0938437 100644
--- a/app/doc/png.d/dproperties.png
+++ b/app/doc/png.d/dproperties.png
Binary files differ
diff --git a/app/doc/png.d/easew.png b/app/doc/png.d/easew.png
index 3b2b93d..cc71900 100644
--- a/app/doc/png.d/easew.png
+++ b/app/doc/png.d/easew.png
Binary files differ
diff --git a/app/doc/png.d/joincornu1.png b/app/doc/png.d/joincornu1.png
new file mode 100644
index 0000000..a41a317
--- /dev/null
+++ b/app/doc/png.d/joincornu1.png
Binary files differ
diff --git a/app/doc/png.d/joincornu2.png b/app/doc/png.d/joincornu2.png
new file mode 100644
index 0000000..8392a1a
--- /dev/null
+++ b/app/doc/png.d/joincornu2.png
Binary files differ
diff --git a/app/doc/png.d/joincornu3.png b/app/doc/png.d/joincornu3.png
new file mode 100644
index 0000000..8cb6c59
--- /dev/null
+++ b/app/doc/png.d/joincornu3.png
Binary files differ
diff --git a/app/doc/png.d/joincornu4.png b/app/doc/png.d/joincornu4.png
new file mode 100644
index 0000000..d09584c
--- /dev/null
+++ b/app/doc/png.d/joincornu4.png
Binary files differ
diff --git a/app/doc/png.d/joincornu5.png b/app/doc/png.d/joincornu5.png
new file mode 100644
index 0000000..560ce90
--- /dev/null
+++ b/app/doc/png.d/joincornu5.png
Binary files differ
diff --git a/app/doc/png.d/layout.png b/app/doc/png.d/layout.png
index 25db34f..cbcc42b 100644
--- a/app/doc/png.d/layout.png
+++ b/app/doc/png.d/layout.png
Binary files differ
diff --git a/app/doc/png.d/mchange.png b/app/doc/png.d/mchange.png
index ef5334e..f891411 100644
--- a/app/doc/png.d/mchange.png
+++ b/app/doc/png.d/mchange.png
Binary files differ
diff --git a/app/doc/png.d/mdraw.png b/app/doc/png.d/mdraw.png
index a23c208..46b1f69 100644
--- a/app/doc/png.d/mdraw.png
+++ b/app/doc/png.d/mdraw.png
Binary files differ
diff --git a/app/doc/png.d/mrotatealign.png b/app/doc/png.d/mrotatealign.png
index b62443d..1d1aeb6 100644
--- a/app/doc/png.d/mrotatealign.png
+++ b/app/doc/png.d/mrotatealign.png
Binary files differ
diff --git a/app/doc/png.d/mrotatefixed.png b/app/doc/png.d/mrotatefixed.png
index 0bc48f7..0aeb1f9 100644
--- a/app/doc/png.d/mrotatefixed.png
+++ b/app/doc/png.d/mrotatefixed.png
Binary files differ
diff --git a/app/doc/png.d/mrotatemove.png b/app/doc/png.d/mrotatemove.png
index 3977e13..7710a9c 100644
--- a/app/doc/png.d/mrotatemove.png
+++ b/app/doc/png.d/mrotatemove.png
Binary files differ
diff --git a/app/doc/png.d/mview.png b/app/doc/png.d/mview.png
index 9def0b8..7bf2037 100644
--- a/app/doc/png.d/mview.png
+++ b/app/doc/png.d/mview.png
Binary files differ
diff --git a/app/doc/png.d/pan.png b/app/doc/png.d/pan.png
new file mode 100644
index 0000000..653ee4d
--- /dev/null
+++ b/app/doc/png.d/pan.png
Binary files differ
diff --git a/app/doc/png.d/toolbar.png b/app/doc/png.d/toolbar.png
index 3d9a8a9..4f87adc 100644
--- a/app/doc/png.d/toolbar.png
+++ b/app/doc/png.d/toolbar.png
Binary files differ
diff --git a/app/doc/view_winm.but b/app/doc/view_winm.but
index 47ec17b..01f8a8c 100644
--- a/app/doc/view_winm.but
+++ b/app/doc/view_winm.but
@@ -30,7 +30,7 @@ The \f{View Menu} shows commands affecting the display of the \f{Main Canvas} (\
\u000
-\dd \f{ Show Map} - Toggles display of the \f{Map Window} on and off.
+\dd \G{png.d/bmap.png} \f{ Show/Hide Map} - Toggles display of the \f{Map Window} on and off.
\u000
diff --git a/app/doxfileversionfilter.sh b/app/doxfileversionfilter.sh
deleted file mode 100644
index 5078bd4..0000000
--- a/app/doxfileversionfilter.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/sh
-
-# a script to get the cvs version number of a particular file
-# used by doxygen to identify the source of the doxygen-produced documentation
-# $1 contains the full pathname of the file of interest. cvs expects a pathname
-# relative to the directory from which doxygen is invoked.
-# Note that the cvs status command must consult the server (sourceforge.net)
-# and is therefore quite slow.
-
-WD=`pwd`
-FN=`echo "$1" | sed "s|${WD}/||" `
-cvs status ${FN} | sed -n 's/^[ \]*Working revision:[ \t]*\([0-9][0-9\.]*\).*/\1/p' \ No newline at end of file
diff --git a/app/dynstring/dynstring.c b/app/dynstring/dynstring.c
index 6f3159c..eb7b2c5 100644
--- a/app/dynstring/dynstring.c
+++ b/app/dynstring/dynstring.c
@@ -30,7 +30,7 @@ size_t DynStringSize(DynString *s)
}
/* An initialized empty struct string */
-#define STRINIT() (DynStringMalloc(16))
+#define STRINIT(s) (DynStringMalloc(s, 16))
/**
* Allocate memory for a string of the desired length. To optimize memory usage
@@ -430,10 +430,10 @@ void DynStringPrintf(DynString *s, const char *fmt, ...)
size_t len;
DynString nas = NaS;
- ///* Are we not a string? */
- //if (isnas(s)) {
- // *s = STRINIT();
- //}
+ /* Are we not a string? */
+ if (isnas(s)) {
+ STRINIT(s);
+ }
/* Nothing to do? */
if (!fmt) {
diff --git a/app/dynstring/dynstring.h b/app/dynstring/dynstring.h
index d6fac51..2a18409 100644
--- a/app/dynstring/dynstring.h
+++ b/app/dynstring/dynstring.h
@@ -1,13 +1,37 @@
+/** \file dynstring.h
+* Definitions and prototypes for variable length strings
+*/
+
+/* XTrkCad - Model Railroad CAD
+* Copyright (C) 2005 Dave Bullis
+*
+* This program is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 2 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*/
+
#ifndef HAVE_DYNSTRING_H
#define HAVE_DYNSTRING_H
-typedef struct DynString DynString;
+#include <stddef.h>
+
struct DynString
{
char *s;
size_t size; // length of the string
size_t b_size; // length of the buffer containing the string
};
+typedef struct DynString DynString;
#define NaS {NULL, 0, 0}
#define isnas(S) (!(S)->s)
diff --git a/app/help/ChangeLog b/app/help/ChangeLog
deleted file mode 100644
index 439dcd7..0000000
--- a/app/help/ChangeLog
+++ /dev/null
@@ -1,63 +0,0 @@
-Jun 10, 2009
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- genmessages.c: fix bug with whitespace-only strings
-
-Jun 09, 2009
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- genmessages.c: add include file for issspace()
-
-Jun 08, 2009
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- genmessages.c: fixed problem with line endings, correct warning
- for the but output file
-
-Aug 29, 2008
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- genhelp.in: fixed typo
-
-Feb 03, 2008
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- messages.in: added tooltip for new option 'onstartup'
-
-Jan 27, 2008
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- messages.in: new product name is XTrackCAD
- genmessages.c: added warning remark to generated include file
-
-Jan 21, 2008
- FIX: Mikko Nissinen <mni77@users.sourceforge.net>
- messages.in: MSG_2ND_TRK_NOT_SEL_UNSEL -> "...%sselected" changed
- to "...%s" for internationalization reasons.
-
-Jan 03. 2008
- IMPROVEMENT: Martin Fischer
- genmessages.c: added warning message
-
-Dec 09, 2007
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- genmessages.c: corrected parsing problems
-
-Dec 03, 2007
- FIX: Bob Blackwell
- genmessages.in: corrected spelling errors
-
-Dec 02, 2007
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- genmessages.c: changed created halibut format
-
-Nov 23, 2007
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- genmessages.c, Fixed handling of \n escape sequence in header file output
-
-Nov 22, 2007
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- genmessages.c, Makefile, messages.in: build messages in Halibut format
-
-Nov 12, 2007
- FIX: Mikko Nissinen <mni77@users.sourceforge.net>
- genhelp.c: Changed internationalization header file name from xtci18n.h to
- i18n.h.
-
-Nov 10, 2007
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- genhelp.c: Added option to create gettext enabled C source.
diff --git a/app/help/fixbmp.c b/app/help/fixbmp.c
deleted file mode 100644
index 44555dc..0000000
--- a/app/help/fixbmp.c
+++ /dev/null
@@ -1,227 +0,0 @@
-
-/* XTrkCad - Model Railroad CAD
- * Copyright (C) 2005 Dave Bullis
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <stdio.h>
-
-#define TRUE (1)
-#define FALSE (0)
-
-struct BITMAPFILEHEADER {
- char bfType[2];
- long bfSize;
- short bfRsvd1;
- short bfRsvd2;
- long bfOffBits;
- };
-
-struct BITMAPINFOHEADER {
- long biSize;
- long biWidth;
- long biHeight;
- short biPlanes;
- short biBitCount;
- long biCompression;
- long biSizeImage;
- long biXPelsPerMeter;
- long biYPelsPerMeter;
- long biClrUsed;
- long biClrImportant;
- };
-
-int namenames;
-int dumpInfo;
-int dumpColorMap;
-int dumpBits;
-int dumpHisto;
-int updateColorCount;
-int zeroColorCount;
-int setColorCount;
-int fixColorMap;
-
-int fixbmp( char * filename )
-{
- FILE * file;
- struct BITMAPFILEHEADER bmfh;
- struct BITMAPINFOHEADER bmih;
- int rc;
- long colors[256];
- int i, j, size;
- unsigned char * bmp, bit;
- int colorCnt;
- long maxcolor;
- long histo[256];;
-
- if ( namenames )
- printf( "%s\n", filename );
- file = fopen( filename, "r+" );
- if ( file == NULL ) {
- fprintf( stderr, "%s: Cant open:%s\n", filename, filename );
- return FALSE;
- }
- rc = fread( &bmfh.bfType, 1, sizeof bmfh.bfType, file );
- rc += fread( &bmfh.bfSize, 1, sizeof bmfh.bfSize, file );
- rc += fread( &bmfh.bfRsvd1, 1, sizeof bmfh.bfRsvd1, file );
- rc += fread( &bmfh.bfRsvd2, 1, sizeof bmfh.bfRsvd2, file );
- rc += fread( &bmfh.bfOffBits, 1, sizeof bmfh.bfOffBits, file );
- if ( rc != 14 ) {
- fprintf( stderr, "%s: Bad read of bmfh: %d\n", filename, rc );
- return FALSE;
- }
- rc = fread( &bmih, 1, sizeof bmih, file );
- if ( rc != sizeof bmih ) {
- fprintf( stderr, "%s: Bad read of bmih: %d\n", filename, rc );
- return FALSE;
- }
- if ( dumpInfo ) {
- printf( "fh:sz=%d, off=%ld\n", bmfh.bfSize, bmfh.bfOffBits );
- printf( "ih:sz=%ld, w=%ld, h=%ld, (%ld), pl=%d, bc=%d, co=%ld, si=%ld, cu=%ld, ci=%ld\n",
- bmih.biSize, bmih.biWidth, bmih.biHeight, bmih.biWidth*bmih.biHeight,
- bmih.biPlanes, bmih.biBitCount, bmih.biCompression,
- bmih.biSizeImage, bmih.biClrUsed, bmih.biClrImportant );
- }
- if ( bmih.biPlanes != 1 || bmih.biBitCount != 8 ) {
- fprintf( stderr, "%s: bad Planes(%d) or BitCount(%d)\n", filename, bmih.biPlanes, bmih.biBitCount );
- return FALSE;
- }
- if ( bmih.biClrUsed > 256 ) {
- fprintf( stderr, "%s: Too many colors (%ld)\n", filename, bmih.biClrUsed );
- return FALSE;
- }
- colorCnt = bmih.biClrUsed;
- if ( colorCnt == 0 )
- colorCnt = 256;
- rc = fread( colors, sizeof colors[0], colorCnt, file );
- if ( rc != colorCnt ) {
- fprintf( stderr, "%s: Bad read of colors: %d\n", filename, rc );
- return FALSE;
- }
- if ( dumpColorMap ) {
- printf( "colorcnt=%d", rc );
- for ( i=0; i<colorCnt; i++ ) {
- if ( i%8 == 0 )
- printf( "\n%2.2x: ", i );
- printf( "%8.8lx ", colors[i] );
- }
- printf( "\n" );
- }
- if ( fixColorMap ) {
- long c;
- for ( i=0; i<colorCnt; i++ ) {
- c = colors[i]&0xFFFFFF;
- if ( (c & 0xFF0000) != 0xFF0000 )
- c &= 0xF0FFFF;
- if ( (c & 0x00FF00) != 0x00FF00 )
- c &= 0xFFF0FF;
- if ( (c & 0x0000FF) != 0x0000FF )
- c &= 0xFFFFF0;
- colors[i] = c;
- }
- fseek( file, 14+40, SEEK_SET );
- rc = fwrite( colors, sizeof colors[0], colorCnt, file );
- if ( rc != colorCnt ) {
- fprintf( stderr, "%s: Bad write of colors: %d\n", filename, rc );
- return FALSE;
- }
- }
- size = (int)(bmih.biWidth*bmih.biHeight);
- size = (int)bmih.biWidth;
- size = (size+3)/4*4;
- fseek( file, bmfh.bfOffBits, SEEK_SET );
- bmp = (unsigned char*)malloc( size );
- if ( bmp == NULL ) {
- fprintf( stderr, "%s: Cant malloc(%d) for bitmap\n", filename, size );
- return FALSE;
- }
- maxcolor = 0;
- memset( histo, 0, sizeof histo );
- for ( j=0; j<bmih.biHeight; j++ ) {
- rc = fread( bmp, 1, size, file );
- if ( rc != size ) {
- fprintf( stderr, "%s: Cant read bits for line %d: %d\n", filename, j, rc );
- return FALSE;
- }
- if ( dumpBits )
- printf( "%2.2d: ", j );
- for ( i=0; i<bmih.biWidth; i++ ) {
- bit = bmp[i];
- histo[bit]++;
- if ( dumpBits )
- printf( "%2.2x", bit );
- if ( bit > maxcolor )
- maxcolor = bit;
- }
- if ( dumpBits )
- printf( "\n" );
- }
- free( bmp );
- if ( dumpHisto ) {
- printf( "maxcolor=%ld\n", maxcolor );
- for ( i=0; i<256; i++ )
- if ( histo[i] )
- printf( "[%2.2x]%8.8x = %ld\n", i, colors[i], histo[i] );
-
- }
- if ( updateColorCount || zeroColorCount || setColorCount ) {
- fseek( file, 14, SEEK_SET );
- if ( updateColorCount ) {
- bmih.biClrImportant = maxcolor;
- } else if ( zeroColorCount ) {
- bmih.biClrImportant = 0;
- bmih.biClrUsed = 0;
- } else {
- bmih.biClrImportant = 256;
- bmih.biClrUsed = 256;
- }
- rc = fwrite( &bmih, 1, sizeof bmih, file );
- if ( rc != sizeof bmih ) {
- fprintf( stderr, "%s: Update failed; %d\n", filename, rc );
- }
- }
- fclose( file );
- return TRUE;
-}
-
-
-int main( int argc, char * argv[] )
-{
- while ( argc > 2 && argv[1][0] == '-' ) {
- switch ( argv[1][1] ) {
- case 'a': dumpInfo++; dumpColorMap++; dumpBits++; dumpHisto++; break;
- case 'i': dumpInfo++; break;
- case 'c': dumpColorMap++; break;
- case 'b': dumpBits++; break;
- case 'h': dumpHisto++; break;
- case 'u': updateColorCount++; break;
- case 'z': zeroColorCount++; break;
- case 's': setColorCount++; break;
- case 'f': fixColorMap++; break;
- default:
- fprintf( stderr, "bad option %s\n", argv[1] );
- }
- argc--;
- argv++;
- }
- if ( argc > 2 && dumpInfo+dumpColorMap+dumpBits+dumpHisto > 0 )
- namenames++;
- while ( argc > 1 ) {
- fixbmp( argv[1] );
- argc--;
- argv++;
- }
-}
diff --git a/app/help/genhelp.in b/app/help/genhelp.in
index d4265b7..3364354 100644
--- a/app/help/genhelp.in
+++ b/app/help/genhelp.in
@@ -6,7 +6,8 @@ cmdAbout About box dialog
cmdAbove Move Selected object to top
cmdAddElevations Raise or Lower all Selected tracks
cmdBelow Move Selected object to bottom
-cmdBlockCreate Create a section of track for automation.
+cmdBlockCreate Create a section of track for automation
+cmdBlockEdit Edit a Block Definition
cmdCarDesc Create a new Car/Loco description
cmdCarInventory Manage your Car and Loco Inventory
cmdCircleCenter Create track circle from center cmdCircle
@@ -19,17 +20,19 @@ cmdCmdopt Command Options dialog
cmdColor Controls colors
cmdConnect Connect two tracks
cmdControl Create a control for layout automation
+cmdContmgm Manage control elements
cmdCopy Copy selected objects to clipboard
cmdCurveCenter Create curved track from center cmdCurve
cmdCurveChord Create curved track from chord cmdCurve
cmdCurveEndPt Create curved track from end-point cmdCurve
+cmdBezier Create Bezier track cmdCurve
cmdCurveSetCmd Set Curve Track creation mode cmdCurve
cmdCurveTangent Create curved track from tangent cmdCurve
cmdCustmgm Manipulate Custom designer entries
cmdCut Moves selected objects to clipboard
cmdDelete Delete objects
cmdDemo Playback demos
-cmdDescribe Describe objects
+cmdDescribe Change Object Properties
cmdDeselectAll Deselect all selected objects cmdSelect
cmdDisplay Change Display parameters
cmdDrawBench Create benchwork cmdDraw
@@ -45,6 +48,7 @@ cmdDrawCurveEndPt Create a curved line from End cmdDraw
cmdDrawCurveCenter Create a curved line from center cmdDraw
cmdDrawCurveChord Create a curved line from chord cmdDraw
cmdDrawCurveTangent Create a curved line from tangent cmdDraw
+cmdDrawBezierCurve Create a Bezier line cmdDraw
cmdDrawDimLine Create a dimension line cmdDraw
cmdDrawFilledBox Create a filled box cmdDraw
cmdDrawFilledCurve Create a filled circle cmdDraw
@@ -97,12 +101,14 @@ cmdLayerSet Selects the current drawing layer cmdLayer
#cmdLayerShow9 Shows or hides layers cmdLayer
cmdLayout Layout parameters
#cmdLoosen Disconnect tracks at loose joints nohelp
+cmdMapShow Show/Hide Map Window
cmdModify Modify or extend a track
cmdMove Move selected objects
cmdMoveLabel Move a label
cmdMoveToCurrentLayer Move selected objects to current layer
cmdNote Place a note on the layout
cmdOutputbitmap Print a BitMap
+cmdPan Pan or Zoom the Layout
cmdParallel Create a parallel track
cmdParameter Register register
cmdPaste Copy objects from clipboard
@@ -130,6 +136,7 @@ cmdSticky Choose which commands are sticky
cmdStraight Create straight track
cmdStructure Place a structure on the layout
cmdSwitchMotorCreate Create a switchmotor for turnout control
+cmdSwitchMotorEdit Edit a switchmotor definition
cmdText Enter text on the layout
cmdTextSize Controls the size of the entered text cmdText
#cmdTighten Remove slack from connected tracks
@@ -205,6 +212,10 @@ map-hilight This is the portion of the layout shown in the Main Window canvas
#
addElev-value Raise or Lower all Selected Track cmdAddElevations
#
+block-name Name of block cmdBlockCreate
+block-script Script that the block will run cmdBlockCreate
+block-segments List of tracks in the Block cmdBlockEdit
+#
carpart-ok Add or Update car object cmdCarInventory
carpart-manuf Manufacturer name cmdCarInventory
carpart-prototype Car Prototype cmdCarInventory
@@ -263,6 +274,10 @@ cmdopt-preselect Default command is Describe or Select cmdCmdopt
cmdopt-rightclickmode Action to invoke on Right-Click cmdCmdopt
cmdopt-ok cmdCmdopt
#
+contmgm-inx The list of control elements cmdContmgm
+contmgm-edit Edit the element cmdContmgm
+contmgm-delete Delete the element cmdContmgm
+#
contents-label Contents Label for new Parameter file cmdCustmgm
#
custmgm-inx List of custom designed turnouts and structures cmdCustmgm
@@ -278,6 +293,7 @@ demo-quit Stops the demonstration and returns you to XTrackCAD cmdDemo
demo-speed Select speed of Playback cmdDemo
demo-text This is where comments about the demo are displayed cmdDemo
#
+#Note all below have tab char after name
describe-F1
describe-F2
describe-F3
@@ -306,6 +322,7 @@ describe-I5
describe-S1
describe-S2
describe-S3
+describe-S4
describe-Y1
describe-C1
describe-L1
@@ -332,6 +349,8 @@ display-listlabels Label elements for lists cmdDisplay
display-carhotbarlabels How to group cars on the Train Hot Bar cmdDisplay
display-trainpause Delay (in mS) between updating train movements cmdDisplay
display-hideTrainsInTunnels Don't show trains in tunnels when tunnels are hidden cmdDisplay
+display-unconnected-endpt Display unconnected endpoints of track with special marks cmdDisplay
+display-zoom-corner Whether zoom is locked to the bottom left corner or the center point cmdDisplay
#display-ok Update the display cmdDisplay
display-ok cmdDisplay
#
@@ -426,7 +445,7 @@ parameter-name Enter your name as specified in the XTrackCAD Registration Notice
parameter-key Enter the key value as specified in the XTrackCAD Registration Notice register
parameter-ok Validates the name and key. Terminates the registration command register
#
-pref-anglesystem 0 is up or to the right cmdPref
+pref-anglesystem 0� is up or to the right cmdPref
pref-units Choose english (inches) or metric (centimeters) cmdPref
pref-dstfmt How to display length measurements cmdPref
pref-minlength Do not create tracks to be shorter than this value cmdPref
@@ -450,6 +469,7 @@ pricelist-flexunit Price of specified length of flex-track cmdPricelist
pricelist-flexcost Price of specified length of flex-track cmdPricelist
pricelist-ok cmdPricelist
#
+print-centerLine Controls the printing of a centerline of track cmdPrint
print-scale Controls the reduction (scale) of the printout cmdPrint
print-pagew Scaled page width (Scale times physical page width) cmdPrint
print-max Sets page size to the maximum (based on scale and physical page size) cmdPrint
@@ -477,6 +497,7 @@ prmfile-mode Show parameter files by names or descriptions cmdPrmfile
prmfile-action Toggle the loaded status of the selected parameter file cmdPrmfile
prmfile-browse Find a parameter file for loading cmdPrmfile
prmfile-ok Update parameter file list cmdPrmfile
+prmfile-selectall Select all parameter files shown cmdPrmfile
#
profile-canvas Profile of specified path cmdProfile
profile-clear Clear the profile cmdProfile
@@ -532,6 +553,11 @@ structure-ok Complete structure placement cmdStructure
#
structure-pier-inx Choose a Pier number cmdStructure
#
+switchmotor-name Name of the Motor cmdSwitchMotorCreate
+switchmotor-normal Value when switch is normal cmdSwitchMotorCreate
+switchmotor-reverse Value when the switch is reversed cmdSwitchMotorCreate
+switchmotor-pointSense Value for a positive comfirmation of switch position cmdSwitchMotorCreate
+#
text-fontsize Controls the size of the entered text cmdText
#
tip-text Useful information about the program cmdTip
diff --git a/app/help/genmessages.c b/app/help/genmessages.c
index 349e81e..6ae121e 100644
--- a/app/help/genmessages.c
+++ b/app/help/genmessages.c
@@ -22,318 +22,339 @@
#include <stdlib.h>
#include <ctype.h>
#ifdef WINDOWS
- #if _MSC_VER >=1400
- #define strdup _strdup
- #endif
+#if _MSC_VER >=1400
+#define strdup _strdup
+#endif
#endif
#define I18NHEADERFILE "i18n.h"
typedef struct helpMsg_t * helpMsg_p;
typedef struct helpMsg_t {
- char * key;
- char * title;
- char * help;
- } helpMsg_t;
+ char * key;
+ char * title;
+ char * help;
+} helpMsg_t;
helpMsg_t helpMsgs[200];
int helpMsgCnt = 0;
struct transTbl {
- char *inChar;
- char *outChar[];
+ char *inChar;
+ char *outChar[];
};
/* ATTENTION: make sure that the characters are in the same order as the equivalent escape sequences below */
/* translation table for unicode sequences understood by Halibut */
struct transTbl toUnicode = {
- "\xB0\0",
- { "\\u00B0",
- "\\0" }
+ "\xB0\0",
+ {
+ "\\u00B0",
+ "\\0"
+ }
};
/* translation table for escape sequences understood by C compiler */
struct transTbl toC = {
- "\n\\\"\0",
- { "\\n",
- "\\\\",
- "\\\"",
- "\\0" }
+ "\n\\\"\0",
+ {
+ "\\n",
+ "\\\\",
+ "\\\"",
+ "\\0"
+ }
};
char *
-TranslateString( char *srcString, struct transTbl *trTbl )
+TranslateString(char *srcString, struct transTbl *trTbl)
{
- char *destString;
- char *cp;
- char *cp2;
- size_t bufLen = strlen( srcString ) + 1;
- char *idx;
-
- /* calculate the expected result length */
- for( cp = srcString; *cp; cp++ )
- if( idx = strchr( trTbl->inChar, *cp )) /* does character need translation ? */
- bufLen += strlen( (trTbl->outChar)[idx - trTbl->inChar ] ) - 1; /* yes, extend buffer accordingly */
-
- /* allocate memory for result */
- destString = malloc( bufLen );
-
- if( destString ) {
- /* copy and translate characters as needed */
- cp2 = destString;
- for( cp = srcString; *cp; cp++ ) {
- if( idx = strchr( trTbl->inChar, *cp )) { /* does character need translation ? */
- strcpy( cp2, (trTbl->outChar)[idx - trTbl->inChar ] ); /* yes, copy the escaped character sequence */
- cp2 += strlen((trTbl->outChar)[idx - trTbl->inChar ] );
- } else {
- *cp2++ = *cp; /* no, just copy the character */
- }
- }
- /* terminate string */
- *cp2 = '\0';
- } else {
- /* memory allocation failed */
- exit(1);
- }
-
- return( destString );
+ char *destString;
+ char *cp;
+ size_t bufLen = strlen(srcString) + 1;
+ char *idx;
+
+ /* calculate the expected result length */
+ for (cp = srcString; *cp; cp++) {
+ idx = strchr(trTbl->inChar, *cp);
+
+ if (idx) { /* does character need translation ? */
+ bufLen += strlen((trTbl->outChar)[idx - trTbl->inChar]) -
+ 1; /* yes, extend buffer accordingly */
+ }
+ }
+
+ /* allocate memory for result */
+ destString = malloc(bufLen);
+
+ if (destString) {
+ char *cp2;
+ /* copy and translate characters as needed */
+ cp2 = destString;
+
+ for (cp = srcString; *cp; cp++) {
+ idx = strchr(trTbl->inChar, *cp);
+
+ if (idx != NULL) { /* does character need translation ? */
+ strcpy(cp2, (trTbl->outChar)[idx -
+ trTbl->inChar ]); /* yes, copy the escaped character sequence */
+ cp2 += strlen((trTbl->outChar)[idx - trTbl->inChar ]);
+ } else {
+ *cp2++ = *cp; /* no, just copy the character */
+ }
+ }
+
+ /* terminate string */
+ *cp2 = '\0';
+ } else {
+ /* memory allocation failed */
+ exit(1);
+ }
+
+ return (destString);
}
-int cmpHelpMsg( const void * a, const void * b )
+int cmpHelpMsg(const void * a, const void * b)
{
- helpMsg_p aa = (helpMsg_p)a;
- helpMsg_p bb = (helpMsg_p)b;
- return strcmp( aa->title, bb->title );
+ helpMsg_p aa = (helpMsg_p)a;
+ helpMsg_p bb = (helpMsg_p)b;
+ return strcmp(aa->title, bb->title);
}
-void unescapeString( FILE * f, char * str )
+void unescapeString(FILE * f, char * str)
{
- while (*str) {
- if (*str != '\\')
- fputc( *str, f );
- str++;
- }
+ while (*str) {
+ if (*str != '\\') {
+ fputc(*str, f);
+ }
+
+ str++;
+ }
}
/**
* Generate the file in help source format ( ie. the BUT file )
*/
-void dumpHelp( FILE *hlpsrcF )
+void dumpHelp(FILE *hlpsrcF)
{
- int inx;
- char *transStr;
-
- fputs( "\\#\n * DO NOT EDIT! This file has been automatically created by genmessages.\n * Changes to this file will be overwritten.\n", hlpsrcF );
-
- fprintf( hlpsrcF, "\n\n\\H{messageList} Message Explanations\n\n" );
-
- /* sort in alphabetical order */
- qsort( helpMsgs, helpMsgCnt, sizeof helpMsgs[0], cmpHelpMsg );
-
- /* now save all the help messages */
- for ( inx=0; inx<helpMsgCnt; inx++ ) {
-
- transStr = TranslateString( helpMsgs[inx].title, &toUnicode );
- fprintf( hlpsrcF, "\\S{%s} %s\n\n", helpMsgs[inx].key, transStr );
- free( transStr );
-
- transStr = TranslateString( helpMsgs[inx].help, &toUnicode );
- fprintf( hlpsrcF, "%s\n\n", transStr );
- free( transStr );
-
- fprintf( hlpsrcF, "\n\n\\rule\n\n" );
- }
-
+ int inx;
+
+ fputs("\\#\n * DO NOT EDIT! This file has been automatically created by genmessages.\n * Changes to this file will be overwritten.\n",
+ hlpsrcF);
+ fprintf(hlpsrcF, "\n\n\\H{messageList} Message Explanations\n\n");
+ /* sort in alphabetical order */
+ qsort(helpMsgs, helpMsgCnt, sizeof helpMsgs[0], cmpHelpMsg);
+
+ /* now save all the help messages */
+ for (inx=0; inx<helpMsgCnt; inx++) {
+ char *transStr;
+
+ transStr = TranslateString(helpMsgs[inx].title, &toUnicode);
+ fprintf(hlpsrcF, "\\S{%s} %s\n\n", helpMsgs[inx].key, transStr);
+ free(transStr);
+ transStr = TranslateString(helpMsgs[inx].help, &toUnicode);
+ fprintf(hlpsrcF, "%s\n\n", transStr);
+ free(transStr);
+ fprintf(hlpsrcF, "\n\n\\rule\n\n");
+ }
}
-int main( int argc, char * argv[] )
+int main(int argc, char * argv[])
{
- FILE * hdrF;
- FILE *inF;
- FILE *outF;
-
- char buff[ 4096 ];
- char * cp;
- int inFileIdx;
- enum {m_init, m_title, m_alt, m_help } mode = m_init;
- char msgName[256];
- char msgAlt[256];
- char msgTitle[1024];
- char msgTitle1[1024];
- char msgHelp[4096];
- char *tName, *tAlt, *tTitle;
-#ifndef FLAGS
- int flags;
-#endif
- int i18n = 0;
-
- /* check argument count */
- if ( argc < 3 || argc > 4 ) {
- fprintf( stderr, "Usage: %s [-i18n] INFILE OUTFILE\n\n", argv[0] );
- fprintf( stderr, " -i18n is used to generate a include file with gettext support.\n\n" );
- exit(1);
- }
-
- /* check options */
- if( argc == 4 ) {
- if( !strcmp(argv[ 1 ], "-i18n")){
- i18n = 1;
- inFileIdx = 2; /* second argument is input file */
- }
- /* inFileIdx = 2; skip over option argument */
- } else {
- inFileIdx = 1; /* first argument is input file */
- }
-
- /* open the file for reading */
- inF = fopen( argv[ inFileIdx ], "r" );
- if( !inF ) {
- fprintf( stderr, "Could not open %s for reading!\n", argv[ inFileIdx ] );
- exit( 1 );
- }
-
- /* open the include file to generate */
- hdrF = fopen( "messages.h", "w" );
- if( !hdrF ) {
- fprintf( stderr, "Could not open messages.h for writing!\n" );
- exit( 1 );
- }
-
- fputs( "/*\n * DO NOT EDIT! This file has been automatically created by genmessages.\n * Changes to this file will be overwritten.\n */\n", hdrF );
-
- /* open the help file to generate */
- outF = fopen( argv[ inFileIdx + 1 ], "w" );
- if( !inF ) {
- fprintf( stderr, "Could not open %s for writing!\n", argv[ inFileIdx ] );
- exit( 1 );
- }
-
- /* Include i18n header, if needed */
- if (i18n)
- fprintf( hdrF, "#include \"" I18NHEADERFILE "\"\n\n" );
-
- while ( fgets( buff, sizeof buff, inF ) ) {
-
- /* skip comment lines */
- if ( buff[0] == '#' )
- continue;
-
- /* remove trailing whitespaces */
- cp = buff+strlen(buff)-1;
- while( cp >= buff && isspace(*cp)) {
- *cp = '\0';
- cp--;
- }
-
- if ( strncmp( buff, "MESSAGE ", 8 ) == 0 ) {
-
- /* skip any spaces */
- cp = strchr( buff+8, ' ' );
- if (cp)
- while (*cp == ' ') *cp++ = 0;
-#ifndef FLAGS
- if ( cp && *cp ) {
- flags = atoi(cp);
- }
-#endif
- /* save the name of the message */
- strcpy( msgName, buff + 8 );
- msgAlt[0] = 0;
- msgTitle[0] = 0;
- msgTitle1[0] = 0;
- msgHelp[0] = 0;
- mode = m_title;
- } else if ( strncmp( buff, "ALT", 3 ) == 0 ) {
- mode = m_alt;
- msgAlt[0] = 0;
- } else if ( strncmp( buff, "HELP", 4 ) == 0 ) {
- mode = m_help;
- } else if ( strncmp( buff, "END", 3 ) == 0 ) {
- /* the whole message has been read */
-
- /* create escape sequences */
- tName = TranslateString( msgName, &toC );
- tTitle = TranslateString( msgTitle, &toC );
- tAlt = TranslateString( msgAlt, &toC );
-
- if (msgHelp[0]==0) {
- /* no help text is included */
- if (i18n)
- fprintf( hdrF, "#define %s N_(\"%s\")\n", tName, tTitle );
- else
- fprintf( hdrF, "#define %s \"%s\"\n", tName, tTitle );
- } else if (msgAlt[0]) {
- /* a help text and an alternate description are included */
- if (i18n)
- fprintf( hdrF, "#define %s N_(\"%s\\t%s\\t%s\")\n", tName, tName, tAlt, tTitle );
- else
- fprintf( hdrF, "#define %s \"%s\\t%s\\t%s\"\n", tName, tName, tAlt, tTitle );
- } else {
- /* a help text but no alternate description are included */
- if (i18n)
- fprintf( hdrF, "#define %s N_(\"%s\\t%s\")\n", tName, tName, tTitle );
- else
- fprintf( hdrF, "#define %s \"%s\\t%s\"\n", tName, tName, tTitle );
- }
-
- /*free temp stzrings */
- free( tName );
- free( tTitle );
- free( tAlt );
-
- /* save the help text for later use */
- if (msgHelp[0]) {
- helpMsgs[helpMsgCnt].key = strdup(msgName);
- if ( msgAlt[0] )
- helpMsgs[helpMsgCnt].title = strdup(msgAlt);
- else
- helpMsgs[helpMsgCnt].title = strdup(msgTitle);
- helpMsgs[helpMsgCnt].help = strdup(msgHelp);
- helpMsgCnt++;
- }
- mode = 0;
- } else {
- /* are we currently reading the message text? */
- if (mode == m_title) {
- /* yes, is the message text split over two lines ? */
- if (msgTitle[0]) {
- /* if yes, keep the first part as the short text */
- if (msgAlt[0] == 0) {
- strcpy( msgAlt, msgTitle );
- strcat( msgAlt, "..." );
- }
- /* add a newline to the first part */
- strcat( msgTitle, "\n" );
- }
- /* now save the buffer into the message title */
- strcat( msgTitle, buff );
- } else if (mode == m_alt) {
- /* an alternate text was explicitly specified, save */
- if( msgAlt[ 0 ] ) {
- strcat( msgAlt, " " );
- strcat( msgAlt, buff );
- } else {
- strcpy( msgAlt, buff );
- }
- } else if (mode == m_help) {
- /* we are reading the help text, save in buffer */
- strcat( msgHelp, buff );
- strcat( msgHelp, "\n" );
- }
- }
- }
- dumpHelp( outF );
-
- fclose( hdrF );
- fclose( inF );
- fclose( outF );
-
- printf( "%d messages\n", helpMsgCnt );
- return 0;
+ FILE * hdrF;
+ FILE *inF;
+ FILE *outF;
+ char buff[ 4096 ];
+ char * cp;
+ int inFileIdx;
+ enum {m_init, m_title, m_alt, m_help } mode = m_init;
+ char msgName[256];
+ char msgAlt[256];
+ char msgTitle[1024];
+ char msgHelp[4096];
+ char *tName, *tAlt, *tTitle;
+
+ int i18n = 0;
+
+ /* check argument count */
+ if (argc < 3 || argc > 4) {
+ fprintf(stderr, "Usage: %s [-i18n] INFILE OUTFILE\n\n", argv[0]);
+ fprintf(stderr,
+ " -i18n is used to generate a include file with gettext support.\n\n");
+ exit(1);
+ }
+
+ /* check options */
+ if (argc == 4) {
+ if (!strcmp(argv[ 1 ], "-i18n")) {
+ i18n = 1;
+ inFileIdx = 2; /* second argument is input file */
+ }
+
+ /* inFileIdx = 2; skip over option argument */
+ } else {
+ inFileIdx = 1; /* first argument is input file */
+ }
+
+ /* open the file for reading */
+ inF = fopen(argv[ inFileIdx ], "r");
+
+ if (!inF) {
+ fprintf(stderr, "Could not open %s for reading!\n", argv[ inFileIdx ]);
+ exit(1);
+ }
+
+ /* open the include file to generate */
+ hdrF = fopen("messages.h", "w");
+
+ if (!hdrF) {
+ fprintf(stderr, "Could not open messages.h for writing!\n");
+ exit(1);
+ }
+
+ fputs("/*\n * DO NOT EDIT! This file has been automatically created by genmessages.\n * Changes to this file will be overwritten.\n */\n",
+ hdrF);
+ fputs("#ifndef HAVE_MESSAGES_H\n#define HAVE_MESSAGES_H\n", hdrF);
+ /* open the help file to generate */
+ outF = fopen(argv[ inFileIdx + 1 ], "w");
+
+ if (!inF) {
+ fprintf(stderr, "Could not open %s for writing!\n", argv[ inFileIdx ]);
+ exit(1);
+ }
+
+ /* Include i18n header, if needed */
+ if (i18n) {
+ fprintf(hdrF, "#include \"" I18NHEADERFILE "\"\n\n");
+ }
+
+ while (fgets(buff, sizeof buff, inF)) {
+ /* skip comment lines */
+ if (buff[0] == '#') {
+ continue;
+ }
+
+ /* remove trailing whitespaces */
+ cp = buff+strlen(buff)-1;
+
+ while (cp >= buff && isspace(*cp)) {
+ *cp = '\0';
+ cp--;
+ }
+
+ if (strncmp(buff, "MESSAGE ", 8) == 0) {
+ /* skip any spaces */
+ cp = strchr(buff+8, ' ');
+
+ if (cp)
+ while (*cp == ' ') {
+ *cp++ = 0;
+ }
+
+ /* save the name of the message */
+ strcpy(msgName, buff + 8);
+ msgAlt[0] = 0;
+ msgTitle[0] = 0;
+ msgHelp[0] = 0;
+ mode = m_title;
+ } else if (strncmp(buff, "ALT", 3) == 0) {
+ mode = m_alt;
+ msgAlt[0] = 0;
+ } else if (strncmp(buff, "HELP", 4) == 0) {
+ mode = m_help;
+ } else if (strncmp(buff, "END", 3) == 0) {
+ /* the whole message has been read */
+ /* create escape sequences */
+ tName = TranslateString(msgName, &toC);
+ tTitle = TranslateString(msgTitle, &toC);
+ tAlt = TranslateString(msgAlt, &toC);
+
+ if (msgHelp[0]==0) {
+ /* no help text is included */
+ if (i18n) {
+ fprintf(hdrF, "#define %s N_(\"%s\")\n", tName, tTitle);
+ } else {
+ fprintf(hdrF, "#define %s \"%s\"\n", tName, tTitle);
+ }
+ } else if (msgAlt[0]) {
+ /* a help text and an alternate description are included */
+ if (i18n) {
+ fprintf(hdrF, "#define %s N_(\"%s\\t%s\\t%s\")\n", tName, tName, tAlt, tTitle);
+ } else {
+ fprintf(hdrF, "#define %s \"%s\\t%s\\t%s\"\n", tName, tName, tAlt, tTitle);
+ }
+ } else {
+ /* a help text but no alternate description are included */
+ if (i18n) {
+ fprintf(hdrF, "#define %s N_(\"%s\\t%s\")\n", tName, tName, tTitle);
+ } else {
+ fprintf(hdrF, "#define %s \"%s\\t%s\"\n", tName, tName, tTitle);
+ }
+ }
+
+ /*free temp stzrings */
+ free(tName);
+ free(tTitle);
+ free(tAlt);
+
+ /* save the help text for later use */
+ if (msgHelp[0]) {
+ helpMsgs[helpMsgCnt].key = strdup(msgName);
+
+ if (msgAlt[0]) {
+ helpMsgs[helpMsgCnt].title = strdup(msgAlt);
+ } else {
+ helpMsgs[helpMsgCnt].title = strdup(msgTitle);
+ }
+
+ helpMsgs[helpMsgCnt].help = strdup(msgHelp);
+ helpMsgCnt++;
+ }
+
+ mode = 0;
+ } else {
+ /* are we currently reading the message text? */
+ if (mode == m_title) {
+ /* yes, is the message text split over two lines ? */
+ if (msgTitle[0]) {
+ /* if yes, keep the first part as the short text */
+ if (msgAlt[0] == 0) {
+ strcpy(msgAlt, msgTitle);
+ strcat(msgAlt, "...");
+ }
+
+ /* add a newline to the first part */
+ strcat(msgTitle, "\n");
+ }
+
+ /* now save the buffer into the message title */
+ strcat(msgTitle, buff);
+ } else if (mode == m_alt) {
+ /* an alternate text was explicitly specified, save */
+ if (msgAlt[ 0 ]) {
+ strcat(msgAlt, " ");
+ strcat(msgAlt, buff);
+ } else {
+ strcpy(msgAlt, buff);
+ }
+ } else if (mode == m_help) {
+ /* we are reading the help text, save in buffer */
+ strcat(msgHelp, buff);
+ strcat(msgHelp, "\n");
+ }
+ }
+ }
+
+ dumpHelp(outF);
+ fputs("#endif // HAVE_MESSAGES_H\n", hdrF);
+ fclose(hdrF);
+ fclose(inF);
+ fclose(outF);
+ printf("%d messages\n", helpMsgCnt);
+ return 0;
}
diff --git a/app/help/messages.in b/app/help/messages.in
index 3fe1b97..519f2f8 100644
--- a/app/help/messages.in
+++ b/app/help/messages.in
@@ -73,7 +73,7 @@ Refer to \k{cmdTurnoutNew} for detail.
END
MESSAGE MSG_CURVE_OUT_OF_RANGE
-Angle must be between 0 and 360.
+Angle must be between 0\u00B0 and 360\u00B0.
HELP
The angle specified for a curve must be between 0\u00B0 and 360\u00B0.
END
@@ -189,6 +189,15 @@ You cannot select a \f{Turntable} as the second track in \f{Join} command. If yo
Refer to \k{cmdJoin} for detail.
END
+ ccornu.c
+MESSAGE MSG_JOIN_CORNU_SAME
+Cannot Join; Selected endpoints are on same track.
+HELP
+You are trying to \f{Join} a section of track with itself. Different tracks must selected when using the \f{Join} command.
+
+Refer to \k{cmdJoin} for detail.
+END
+
# cjoin.c
MESSAGE MSG_JOIN_SAME
Cannot Join; Selected endpoints are on same track.
@@ -272,6 +281,14 @@ The parameters \e{Minimum Track Length}, \e{Connection Angle} and \e{Connection
Refer to \k{cmdPref} for detail.
END
+MESSAGE MSG_CONN_PARAMS_TOO_BIG
+Connection parameters reset to maximum values.
+HELP
+The parameters \e{Minimum Track Length}, \e{Connection Angle} and \e{Connection Distance} have maximum values that cannot be set to bigger values. The maximum values are 1.0"/2.54cm, 10\u00B0 and 1.0"/2.54cm respectively.
+
+Refer to \k{cmdPref} for detail.
+END
+
# fileio.c
MESSAGE MSG_CANT_PASTE
Copy/Paste buffer is empty. There is nothing to Paste.
@@ -622,8 +639,20 @@ HELP
It's not possible to create a Circle or Helix with a radius of 0\u00B0 or less. Specify a positive value in the \f{Radius} field that appears in the Status Bar.
END
+MESSAGE MSG_RADIUS_GTR_10000
+Radius must be less than 10000.
+HELP
+It's not possible to create a Circle or Helix with a radius of 10000\u00B0 or more. Specify a smaller value in the \f{Radius} field.
+END
+
+MESSAGE MSG_RADIUS_TOO_BIG
+The Circle or Helix will not fit within the layouts room parameters (Height and Width).
+HELP
+The defined circle can not fit within the defined layout parameters. Either specify a smaller value in the \f{Radius} field, or increase the room parameters in the \f{Layout} dialog.
+END
+
#cselect.c
-MESSAGE MSG_RESCALE_TOO_BIG
+MESSAGE MSG_RESCALE_TOO_BIG
Rescaled tracks do not fit within layouts room parameters
(Height and width). The layouts room parameters should be
set to at least %s by %s.
@@ -940,6 +969,13 @@ A critical file is corrupt. Unfortunately it will be necessary to reinstall the
Please report this error to the \e{XTrackCAD} project development team at SourceForge. The process for reporting errors is outlined in \k{bugs}.
END
+# param.c
+MESSAGE MSG_ENTERED_STRING_TRUNCATED
+The entered text is too long. Maximum length is %d.
+HELP
+The text entered into a field is longer than the maximum allowed length and was truncated. Please check the shortened text and edit as necessary.
+END
+
# track.c
MESSAGE MSG_PT_IS_NOT_TRK
[%s %s] is not a track.
diff --git a/app/help/mkpngbutt b/app/help/mkpngbutt
deleted file mode 100755
index 0b77831..0000000
--- a/app/help/mkpngbutt
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-
-
-NAME=$1
-shift
-FILES=""
-for F in $* ; do
- FILES="${FILES} ../bin/$F.xpm"
-done
-#echo ${NAME}
-
-(./mkxpmbutt ${NAME} ${FILES} | convert +compress XPM:- PNG:temp.png) 2>&1
-#(./mkxpmbutt ${NAME} ${FILES} | convert +compress -transparency '#111' XPM:- PNG:temp.png) 2>&1
-#(./mkxpmbutt ${NAME} ${FILES} | xpmtoppm | pnmtopng -force > temp.png) 2>&1
-#(mkxpmbutt ${NAME} ${FILES} | convert -transparency '#111' XPM:- PNG:temp.png) 2>&1
-if cmp -s temp.png png.d/${NAME}.png ; then
- rm temp.png
-else
- echo updating ${NAME}.png
- mv temp.png png.d/${NAME}.png
-fi
diff --git a/app/help/mkpngs b/app/help/mkpngs
deleted file mode 100755
index a230ea4..0000000
--- a/app/help/mkpngs
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/bin/sh
-./mkpngbutt bzoomin zoomin
-./mkpngbutt bzoom zoom
-./mkpngbutt bzoomout zoomout
-./mkpngbutt bgzoom zoomin zoom zoomout
-
-./mkpngbutt bundo undo
-./mkpngbutt bredo redo
-./mkpngbutt bgundo undo redo
-
-./mkpngbutt bease enone
-./mkpngbutt bgease enone
-
-./mkpngbutt bgsnap snapcurs snapvis
-
-./mkpngbutt bstraigh straight
-./mkpngbutt bcurve curve1 openbutt
-./mkpngbutt bcircle circle1 openbutt
-./mkpngbutt bhelix helix
-./mkpngbutt bturnout turnout
-./mkpngbutt bhndldto hndldto
-./mkpngbutt bturntbl turntbl
-./mkpngbutt bparalle parallel
-./mkpngbutt bgtrkcrt straight curve1 openbutt circle1 openbutt helix turnout hndldto turntbl parallel
-
-./mkpngbutt bcurve1 curve1
-./mkpngbutt bcurve2 curve2
-./mkpngbutt bcurve3 curve3
-./mkpngbutt bcurve4 curve4
-./mkpngbutt bcircl1 circle1
-./mkpngbutt bcircl2 circle2
-./mkpngbutt bcircl3 circle3
-
-./mkpngbutt bmodify extend
-./mkpngbutt bjoin join
-./mkpngbutt bconnect pull
-./mkpngbutt bsplit splittrk
-./mkpngbutt belev elev
-./mkpngbutt bprofile profile
-./mkpngbutt bmovedes movedesc
-./mkpngbutt bgtrkmod extend join pull splittrk elev profile movedesc
-
-./mkpngbutt bdescrib describe
-./mkpngbutt bselect select
-./mkpngbutt bgselect describe select
-
-./mkpngbutt bmove move
-./mkpngbutt brotate rotate
-./mkpngbutt bflip flip
-./mkpngbutt bdelete delete
-./mkpngbutt btunnel tunnel
-./mkpngbutt babove above
-./mkpngbutt bbelow below
-./mkpngbutt babvbel above below
-./mkpngbutt bgtrkgrp move rotate flip delete tunnel above below
-
-./mkpngbutt btext text
-./mkpngbutt bdraw dline openbutt dcurve1 openbutt dcircle1 openbutt dbox openbutt
-./mkpngbutt bnote cnote
-./mkpngbutt bstruct struct
-./mkpngbutt bgmsccrt text dline dcurve1 openbutt dcircle1 openbutt dbox openbutt cnote struct
-
-./mkpngbutt dline dline
-./mkpngbutt ddimlin ddimlin
-./mkpngbutt dbench dbench
-./mkpngbutt dtbledge dtbledge
-./mkpngbutt dcurve1 dcurve1
-./mkpngbutt dcurve2 dcurve2
-./mkpngbutt dcurve3 dcurve3
-./mkpngbutt dcurve4 dcurve4
-./mkpngbutt dcircle2 dcircle2
-./mkpngbutt dcircle3 dcircle3
-./mkpngbutt dflcrcl2 dflcrcl2
-./mkpngbutt dflcrcl3 dflcrcl3
-./mkpngbutt dbox dbox
-./mkpngbutt dfilbox dfilbox
-./mkpngbutt dpoly dpoly
-./mkpngbutt dfilpoly dfilpoly
-
-
-./mkpngbutt bruler ruler
-./mkpngbutt bgruler ruler
-
-./mkpngbutt btrain train
-./mkpngbutt bgtrain train
-./mkpngbutt bnewcar newcar
-
-exit 0
diff --git a/app/help/mkshg.c b/app/help/mkshg.c
deleted file mode 100644
index 4c708fa..0000000
--- a/app/help/mkshg.c
+++ /dev/null
@@ -1,455 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include "readpng.h"
-
-#define PROGNAME "mkshg"
-
-
-int verbose = 0;
-int dmpcolortab = 0;
-int dmpimage = 0;
-
-#define MAXRUNLEN (2)
-
-typedef struct {
- unsigned char id0, id1, id2;
- unsigned short x, y, w, h;
- long hash;
- char * name;
- char * context;
- } hotspot_t;
-
-int samecolor( long color1, long color2 )
-{
- long c1, c2;
- int i;
- for ( i=0; i<3; i++ ) {
- c1 = (color1&0xFF);
- c2 = (color2&0xFF);
- if ( c1 != c2 ) {
- if ( c1 == 0xFF || c2 == 0xFF ) return FALSE;
- c1 = (c1+1)&0xFE;
- c2 = (c2+1)&0xFE;
- if ( c1 != c2 ) return FALSE;
- }
- color1 >>= 8;
- color2 >>= 8;
- }
- return TRUE;
-}
-
-void conv24to8( long * colorTab, char * buff, unsigned long channels, unsigned long width24, unsigned long width8, unsigned long height )
-{
- long * lastColor, *cp;
- long color;
- char * ip;
- char *op;
- unsigned long h, w;
- memset( colorTab, 0, 1024 );
- lastColor = colorTab;
- *lastColor++ = 0xC0C0C0;
- *lastColor++ = 0xFFFFFF;
- *lastColor++ = 0x808080;
- *lastColor++ = 0x000000;
- op = buff;
- for (h=0; h<height; h++) {
- ip = buff+(width24*h);
- op = buff+(width8*h);
- for (w=0; w<width24; w+=channels,op++ ) {
- color = ((long)(unsigned char)(ip[0]))<<16;
- color += ((long)(unsigned char)(ip[1]))<<8;
- color += ((long)(unsigned char)(ip[2]));
- ip += channels;
- for ( cp=colorTab; cp<lastColor; cp++ ) {
- if ( samecolor( color, *cp ) ) {
- *op = (char)(cp-colorTab);
- goto nextPixel;
- }
- }
- if (lastColor < &colorTab[256]) {
- *op = (char)(lastColor-colorTab);
- *lastColor++ = color;
- } else {
- *op = 0;
- }
-nextPixel:
- if ( dmpimage ) {
- char c;
- if ( *op < 10 )
- printf( "%c", '0'+*op );
- else if ( *op < 10+26 )
- printf( "%c", *op-10+'a' );
- else if ( *op < 10+26+26 )
- printf( "%c", *op-10-26+'A' );
- else
- printf( "\%2.2x", *op );
- }
- }
- *op++ = 0;
- *op++ = 0;
- if ( dmpimage )
- printf( "00\n" );
- }
-if ( dmpcolortab ) {
- int i;
- for ( i=0; i<lastColor-colorTab; i++ ) {
- printf( "C[%3d] %6.6lx\n", i, colorTab[i] );
- }
-}
-}
-
-
-void compress_data(
- unsigned char * ip0,
- unsigned long isize,
- unsigned char * op0,
- unsigned long * osize )
-{
- unsigned char * ip=ip0, * op=op0;
- int runlen, norunlen, chunk;
- norunlen = 0;
- while ( ip < ip0+isize ) {
- for ( runlen=0; ip+runlen<ip0+isize && ip[0]==ip[runlen]; runlen++ );
- if ( runlen > MAXRUNLEN || runlen == 0 ) {
- while ( norunlen > 0 ) {
- if ( norunlen > 0x7F )
- chunk = 0x7F;
- else
- chunk = norunlen;
- *op++ = 0x80|chunk;
- memcpy( op, ip-norunlen, chunk );
- op += chunk;
- norunlen -= chunk;
- }
- while ( runlen > MAXRUNLEN ) {
- if ( runlen > 0x7F )
- chunk = 0x7F;
- else
- chunk = runlen;
- *op++ = chunk;
- *op++ = *ip;
- ip += chunk;
- runlen -= chunk;
- }
- } else {
- norunlen += runlen;
- ip += runlen;
- }
- }
- *osize = op-op0;
-}
-
-
-void writeculong( FILE * shgF, unsigned long value )
-{
- unsigned short tmp;
- if ( value > 0x7FFF ) {
- tmp = (unsigned short)((value&0x7FFF)<<1)+1;
- fwrite( &tmp, 2, 1, shgF );
- tmp = (unsigned short)(value>>15);
- fwrite( &tmp, 2, 1, shgF );
- } else {
- tmp = (unsigned short)(value<<1);
- fwrite( &tmp, 2, 1, shgF );
- }
-}
-
-void writecushort( FILE * shgF, unsigned short value )
-{
- unsigned char tmp;
- if ( value > 0x7F ) {
- tmp = (unsigned short)((value&0x7F)<<1)+1;
- fwrite( &tmp, 1, 1, shgF );
- tmp = (unsigned short)(value>>7);
- fwrite( &tmp, 1, 1, shgF );
- } else {
- tmp = (unsigned short)(value<<1);
- fwrite( &tmp, 1, 1, shgF );
- }
-}
-
-void writeShgPic(
- FILE * shgF,
- unsigned long width,
- unsigned long width8,
- unsigned long height,
- long colorTab[256],
- unsigned char * data,
- unsigned short hotspotcnt,
- hotspot_t * hotspots )
-{
- short int pictype, packmethod;
- unsigned long xdpi, ydpi, colorsused, colorsimportant, compressedsize, hotspotsize, compressoffset, hotspotoffset;
- unsigned short planes, bitcount;
- unsigned char * compressed_data;
- unsigned int start_off, offset_off, off;
- unsigned short inx;
- unsigned char one = 1;
- unsigned long macrosize = 0;
-
- pictype = 6;
- packmethod = 1;
- xdpi = ydpi = 96;
- planes = 1;
- bitcount = 8;
- colorsused = 256;
- colorsimportant = 256;
- hotspotsize = (hotspotcnt?7:0);
- hotspotoffset = 0;
- compressed_data = (unsigned char *)malloc( width8*height );
- compress_data( data, width8*height, compressed_data, &compressedsize );
- for ( inx=0; inx<hotspotcnt; inx++ )
- hotspotsize += 15+strlen(hotspots[inx].name)+1+strlen(hotspots[inx].context)+1;
-
- start_off = ftell( shgF );
- fwrite( &pictype, 1, 1, shgF );
- fwrite( &packmethod, 1, 1, shgF );
- writeculong( shgF, xdpi );
- writeculong( shgF, ydpi );
- writecushort( shgF, planes );
- writecushort( shgF, bitcount );
- writeculong( shgF, width );
- writeculong( shgF, height );
- writeculong( shgF, colorsused );
- writeculong( shgF, colorsimportant );
- writeculong( shgF, compressedsize );
- writeculong( shgF, hotspotsize );
- offset_off = ftell( shgF );
- compressoffset = offset_off-start_off+8+colorsused*4;
- fwrite( &compressoffset, 4, 1, shgF );
- fwrite( &hotspotoffset, 4, 1, shgF );
- if ( verbose )
- printf( "TY=%d, PK=%d, XD=%ld, YD=%ld, PL=%d, BC=%d, W=%ld, H=%ld, CU=%ld, CI=%ld, CS=%ld, HS=%ld, CO=%ld, HO=%ld\n",
- pictype, packmethod, xdpi, ydpi, planes, bitcount, width, height, colorsused, colorsimportant, compressedsize, hotspotsize, compressoffset, hotspotoffset );
- fwrite( colorTab, colorsused, 4, shgF );
- fwrite( compressed_data, compressedsize, 1, shgF );
- if ( hotspotcnt>0 ) {
- hotspotoffset = ftell( shgF ) - start_off;
- fwrite( &one, 1, 1, shgF );
- fwrite( &hotspotcnt, 2, 1, shgF );
- fwrite( &macrosize, 4, 1, shgF );
- for ( inx=0; inx<hotspotcnt; inx++ ) {
- fwrite( &hotspots[inx].id0, 1, 1, shgF );
- fwrite( &hotspots[inx].id1, 1, 1, shgF );
- fwrite( &hotspots[inx].id2, 1, 1, shgF );
- fwrite( &hotspots[inx].x, 2, 1, shgF );
- fwrite( &hotspots[inx].y, 2, 1, shgF );
- fwrite( &hotspots[inx].w, 2, 1, shgF );
- fwrite( &hotspots[inx].h, 2, 1, shgF );
- fwrite( &hotspots[inx].hash, 4, 1, shgF );
- }
- for ( inx=0; inx<hotspotcnt; inx++ ) {
- fwrite( hotspots[inx].name, strlen(hotspots[inx].name)+1, 1, shgF );
- fwrite( hotspots[inx].context, strlen(hotspots[inx].context)+1, 1, shgF );
- }
- fseek( shgF, offset_off+4, SEEK_SET );
- fwrite( &hotspotoffset, 4, 1, shgF );
- }
-
- free( compressed_data );
-}
-
-
-signed char hashTable[256]=
-{
- '\x00', '\xD1', '\xD2', '\xD3', '\xD4', '\xD5', '\xD6', '\xD7',
- '\xD8', '\xD9', '\xDA', '\xDB', '\xDC', '\xDD', '\xDE', '\xDF',
- '\xE0', '\xE1', '\xE2', '\xE3', '\xE4', '\xE5', '\xE6', '\xE7',
- '\xE8', '\xE9', '\xEA', '\xEB', '\xEC', '\xED', '\xEE', '\xEF',
- '\xF0', '\x0B', '\xF2', '\xF3', '\xF4', '\xF5', '\xF6', '\xF7',
- '\xF8', '\xF9', '\xFA', '\xFB', '\xFC', '\xFD', '\x0C', '\xFF',
- '\x0A', '\x01', '\x02', '\x03', '\x04', '\x05', '\x06', '\x07',
- '\x08', '\x09', '\x0A', '\x0B', '\x0C', '\x0D', '\x0E', '\x0F',
- '\x10', '\x11', '\x12', '\x13', '\x14', '\x15', '\x16', '\x17',
- '\x18', '\x19', '\x1A', '\x1B', '\x1C', '\x1D', '\x1E', '\x1F',
- '\x20', '\x21', '\x22', '\x23', '\x24', '\x25', '\x26', '\x27',
- '\x28', '\x29', '\x2A', '\x0B', '\x0C', '\x0D', '\x0E', '\x0D',
- '\x10', '\x11', '\x12', '\x13', '\x14', '\x15', '\x16', '\x17',
- '\x18', '\x19', '\x1A', '\x1B', '\x1C', '\x1D', '\x1E', '\x1F',
- '\x20', '\x21', '\x22', '\x23', '\x24', '\x25', '\x26', '\x27',
- '\x28', '\x29', '\x2A', '\x2B', '\x2C', '\x2D', '\x2E', '\x2F',
- '\x50', '\x51', '\x52', '\x53', '\x54', '\x55', '\x56', '\x57',
- '\x58', '\x59', '\x5A', '\x5B', '\x5C', '\x5D', '\x5E', '\x5F',
- '\x60', '\x61', '\x62', '\x63', '\x64', '\x65', '\x66', '\x67',
- '\x68', '\x69', '\x6A', '\x6B', '\x6C', '\x6D', '\x6E', '\x6F',
- '\x70', '\x71', '\x72', '\x73', '\x74', '\x75', '\x76', '\x77',
- '\x78', '\x79', '\x7A', '\x7B', '\x7C', '\x7D', '\x7E', '\x7F',
- '\x80', '\x81', '\x82', '\x83', '\x0B', '\x85', '\x86', '\x87',
- '\x88', '\x89', '\x8A', '\x8B', '\x8C', '\x8D', '\x8E', '\x8F',
- '\x90', '\x91', '\x92', '\x93', '\x94', '\x95', '\x96', '\x97',
- '\x98', '\x99', '\x9A', '\x9B', '\x9C', '\x9D', '\x9E', '\x9F',
- '\xA0', '\xA1', '\xA2', '\xA3', '\xA4', '\xA5', '\xA6', '\xA7',
- '\xA8', '\xA9', '\xAA', '\xAB', '\xAC', '\xAD', '\xAE', '\xAF',
- '\xB0', '\xB1', '\xB2', '\xB3', '\xB4', '\xB5', '\xB6', '\xB7',
- '\xB8', '\xB9', '\xBA', '\xBB', '\xBC', '\xBD', '\xBE', '\xBF',
- '\xC0', '\xC1', '\xC2', '\xC3', '\xC4', '\xC5', '\xC6', '\xC7',
- '\xC8', '\xC9', '\xCA', '\xCB', '\xCC', '\xCD', '\xCE', '\xCF'
-};
-
-void readHotspots(
- FILE * inF,
- unsigned short * hotspotcnt,
- hotspot_t * * hotspotptr )
-{
- hotspot_t hs, *hs_p;
- int x, y;
- unsigned short hs_c;
- char type[80];
- char name[80];
- char line[256], *context;
- int off;
- int rc;
-
- hs_c = 0;
- hs_p = NULL;
- while ( fgets( line, sizeof line, inF ) != NULL ) {
- rc=sscanf( line, "%s %hd %hd %hd %hd %n", type, &x, &y, &hs.w, &hs.h, &off );
- if ( hs_c > 0 ) {
- if ( x < 0 )
- x = ((int)hs_p[hs_c-1].x) - x;
- if ( y < 0 )
- y = ((int)hs_p[hs_c-1].y) - y;
- }
- hs.x = (unsigned short)x;
- hs.y = (unsigned short)y;
- if ( rc != 5 )
- fprintf( stderr, "Invalid hotspot syntax: %s", line );
- if ( strcasecmp( type, "jump" ) == 0 ) {
- hs.id0 = 0xe7;
- hs.id1 = 0x04;
- hs.id2 = 0x00;
- } else if ( strcasecmp( type, "popup" ) == 0 ) {
- hs.id0 = 0xe6;
- hs.id1 = 0x04;
- hs.id2 = 0x00;
- } else if ( strcasecmp( type, "ignore" ) == 0 ) {
- continue;
- } else {
- fprintf( stderr, "Invalid hotspot type: %s", line );
- continue;
- }
- sprintf( name, "Hotspot %d", hs_c+1 );
- hs.name = strdup( name );
- context = line+off;
- off = strlen( context );
- if ( context[off-1] == '\n' ) context[off-1] = 0;
- hs.context = strdup( context );
- for (hs.hash=0; *context; context++ )
- hs.hash = (hs.hash*43)+hashTable[(unsigned char)*context];
- hs_c++;
- hs_p = (hotspot_t*)realloc( hs_p, hs_c * sizeof hs );
- hs_p[hs_c-1] = hs;
- }
- *hotspotcnt = hs_c;
- *hotspotptr = hs_p;
-}
-
-
-void PngToShg(
- char * pngFile,
- char * shgFile )
-{
- FILE * pngF, * shgF;
- int rc;
- unsigned long image_width, image_height, image_rowbytes, width8, h;
- int image_channels;
- unsigned char * image_data;
- double display_exponent = 1.0;
-
- long size, fileSize, maxRecSize;
- long colorTab[256];
-
- short int magic;
- short int piccnt;
- long int picoff[1];
-
- unsigned short hotspotcnt;
- hotspot_t * hotspotptr;
-
- pngF = fopen( pngFile, "r" );
- if ( pngF == NULL ) {
- perror( pngFile );
- return;
- }
- shgF = fopen( shgFile, "w" );
- if ( shgF == NULL ) {
- perror( shgFile );
- return;
- }
- if ((rc = readpng_init(pngF, &image_width, &image_height)) != 0) {
- switch (rc) {
- case 1:
- fprintf(stderr, PROGNAME
- ": [%s] is not a PNG file: incorrect signature\n",
- pngFile);
- break;
- case 2:
- fprintf(stderr, PROGNAME
- ": [%s] has bad IHDR (libpng longjmp)\n",
- pngFile);
- break;
- case 4:
- fprintf(stderr, PROGNAME ": insufficient memory\n");
- break;
- default:
- fprintf(stderr, PROGNAME
- ": unknown readpng_init() error\n");
- break;
- }
- return;
- }
-
- image_data = readpng_get_image(display_exponent, &image_channels, &image_rowbytes);
- width8 = ((image_width+3)/4)*4;
- size = width8*image_height;
- fileSize = (size+1024)/2 + 70;
- maxRecSize = (size+1024)/2 + 34;
-
- conv24to8( colorTab, image_data, image_channels, image_width*image_channels, width8, image_height );
-
- magic = 0x706c;
- piccnt = 1;
- picoff[0] = 8;
- fwrite( &magic, 2, 1, shgF );
- fwrite( &piccnt, 2, 1, shgF );
- fwrite( picoff, 4, piccnt, shgF );
- readHotspots( stdin, &hotspotcnt, &hotspotptr );
- writeShgPic( shgF, image_width, width8, image_height, colorTab, image_data, hotspotcnt, hotspotptr );
- if ( hotspotptr )
- free( hotspotptr );
-
- readpng_cleanup(FALSE);
- fclose( pngF );
- fclose( shgF );
- free( image_data );
-
-}
-
-int main( argc, argv )
-int argc; char * argv[];
-{
- while ( argc > 1 && argv[1][0] == '-' ) {
- switch ( argv[1][1] ) {
- case 'v':
- verbose++;
- break;
- case 'c':
- dmpcolortab++;
- break;
- case 'i':
- dmpimage++;
- break;
- default:
- fprintf( stderr, "Unknown option: %s\n", argv[1] );
- exit(1);
- }
- argv++;
- argc--;
- }
- if ( argc != 3 ) {
- fprintf( stderr, "Usage: mkshg [-v] [-c] infile.png outfile.shg\n" );
- exit(1);
- }
-
- PngToShg( argv[1], argv[2] );
-}
diff --git a/app/help/mkshgs b/app/help/mkshgs
deleted file mode 100755
index 56dadc3..0000000
--- a/app/help/mkshgs
+++ /dev/null
@@ -1,348 +0,0 @@
-rm -f xtchelp.d/*.shg
-
-PNG1DIR=png.d
-PNG2DIR=images.orig
-SHGDIR=xtchelp.d
-
-./mkshg ${PNG1DIR}/bgzoom.png ${SHGDIR}/bgzoom.shg << EOF
-jump 0 0 26 26 cmdZoomIn
-jump 26 0 26 26 cmdZoom
-jump 52 0 26 26 cmdZoomOut
-EOF
-./mkshg ${PNG1DIR}/bgundo.png ${SHGDIR}/bgundo.shg << EOF
-jump 0 0 26 26 cmdUndo
-jump 26 0 26 26 cmdRedo
-EOF
-./mkshg ${PNG1DIR}/bgease.png ${SHGDIR}/bgease.shg << EOF
-jump 0 0 50 25 cmdEasement
-EOF
-./mkshg ${PNG1DIR}/bgsnap.png ${SHGDIR}/bgsnap.shg << EOF
-jump 0 0 26 26 cmdGridEnable
-jump 26 0 26 26 cmdGridShow
-EOF
-./mkshg ${PNG1DIR}/bgtrkcrt.png ${SHGDIR}/bgtrkcrt.shg << EOF
-jump 0 0 26 26 cmdStraight
-jump 26 0 40 26 cmdCurve
-jump 66 0 40 26 cmdCircle
-jump 104 0 26 26 cmdHelix
-jump 132 0 26 26 cmdTurnout
-jump 158 0 26 26 cmdHandLaidTurnout
-jump 184 0 26 26 cmdTurntable
-jump 210 0 26 26 cmdParallel
-EOF
-./mkshg ${PNG1DIR}/bgtrkmod.png ${SHGDIR}/bgtrkmod.shg << EOF
-jump 0 0 26 26 cmdModify
-jump 26 0 26 26 cmdJoin
-jump 52 0 26 26 cmdConnect
-jump 78 0 26 26 cmdSplitTrack
-jump 104 0 26 26 cmdElevation
-jump 130 0 26 26 cmdProfile
-jump 156 0 26 26 cmdMoveDesc
-EOF
-./mkshg ${PNG1DIR}/bgselect.png ${SHGDIR}/bgselect.shg << EOF
-jump 0 0 26 26 cmdDescribe
-jump 26 0 26 26 cmdSelect
-EOF
-./mkshg ${PNG1DIR}/bgtrkgrp.png ${SHGDIR}/bgtrkgrp.shg << EOF
-jump 0 0 26 26 cmdMove
-jump 26 0 26 26 cmdRotate
-jump 52 0 26 26 cmdFlip
-jump 78 0 26 26 cmdDelete
-jump 104 0 26 26 cmdTunnel
-jump 130 0 26 26 cmdAbove
-jump 156 0 26 26 cmdBelow
-EOF
-./mkshg ${PNG1DIR}/bgmsccrt.png ${SHGDIR}/bgmsccrt.shg << EOF
-jump 0 0 26 26 cmdText
-jump 26 0 26 26 cmdDraw
-jump 52 0 40 26 cmdDraw
-jump 92 0 40 26 cmdDraw
-jump 132 0 40 26 cmdDraw
-jump 172 0 26 26 cmdNote
-jump 198 0 26 26 cmdStructure
-EOF
-./mkshg ${PNG1DIR}/bgruler.png ${SHGDIR}/bgruler.shg << EOF
-jump 0 0 26 26 cmdRuler
-EOF
-./mkshg ${PNG1DIR}/bgtrain.png ${SHGDIR}/bgtrain.shg << EOF
-jump 0 0 26 26 cmdTrain
-EOF
-
-for png in ${PNG1DIR}/*.png ; do
- shg=`echo ${png}|sed -e "s/${PNG1DIR}\///" -e 's/\.png//'`
- shg=${SHGDIR}\/${shg}.shg
- if [ ! -f $shg ] ; then
- ./mkshg $png $shg < /dev/null
- fi
-done
-
-./mkshg ${PNG2DIR}/bglayer.png ${SHGDIR}/bglayer.shg << EOF
-jump 0 0 400 26 cmdLayer
-EOF
-./mkshg ${PNG2DIR}/bhotbar.png ${SHGDIR}/bhotbar.shg << EOF
-popup 1 1 26 26 _hotBarLeft
-popup 517 1 26 26 _hotBarRight
-EOF
-./mkshg ${PNG2DIR}/bitmap.png ${SHGDIR}/bitmap.shg << EOF
-popup 2 83 132 28 _outputbitmap_density
-popup 2 22 132 60 _outputbitmap_toggles
-EOF
-./mkshg ${PNG2DIR}/blayer.png ${SHGDIR}/blayer.shg << EOF
-jump 0 0 400 26 cmdLayer
-EOF
-./mkshg ${PNG2DIR}/carinv.png ${SHGDIR}/carinv.shg << EOF
-popup 7 24 515 24 _carinv_sort1
-popup 550 28 80 20 _carinv_ok
-popup 550 50 80 20 _carinv_edit
-popup 550 73 80 20 _carinv_add
-popup 550 102 80 20 _carinv_delete
-popup 550 132 80 20 _carinv_import
-popup 550 156 80 20 _carinv_export
-popup 550 179 80 20 _carinv_savetext
-EOF
-./mkshg ${PNG2DIR}/caritem.png ${SHGDIR}/caritem.shg << EOF
-popup 7 28 455 24 _carpart_manuf
-popup 7 54 455 24 _carpart_prototype_list
-popup 7 81 455 24 _carpart_partno_list
-popup 7 143 455 24 _carpart_dispmode
-popup 7 176 455 24 _carpart_index
-popup 7 211 154 24 _carpart_purchPrice
-popup 166 211 145 24 _carpart_currPrice
-popup 314 211 162 24 _carpart_condition
-popup 7 244 185 24 _carpart_purchDate
-popup 197 244 185 24 _carpart_serviceDate
-popup 7 278 154 24 _carpart_quantity
-popup 163 278 253 24 _carpart_multinum
-popup 7 309 442 104 _carpart_notes
-popup 491 47 80 20 _carpart_new
-EOF
-./mkshg ${PNG2DIR}/carpart.png ${SHGDIR}/carpart.shg << EOF
-popup 7 28 455 24 _carpart_manuf
-popup 7 54 455 24 _carpart_prototype_list
-popup 7 81 455 24 _carpart_partno
-popup 7 109 455 24 _carpart_desc
-popup 7 173 455 24 _carpart_road
-popup 7 203 168 24 _carpart_repmark
-popup 179 203 140 24 _carpart_number
-popup 324 203 61 24 _carpart_bodycolor
-popup 7 237 192 24 _carpart_carLength
-popup 203 237 265 24 _carpart_carWidth
-popup 7 265 192 24 _carpart_trkCenter
-popup 203 265 265 24 _carpart_cplrMount
-popup 7 291 192 24 _carpart_cpldLen
-popup 203 291 265 24 _carpart_cplrLen
-popup 491 23 80 20 _carpart_ok
-popup 491 47 80 20 _carpart_newproto
-EOF
-./mkshg ${PNG2DIR}/carproto.png ${SHGDIR}/carproto.shg << EOF
-popup 7 28 455 24 _carpart_prototype
-popup 7 54 455 24 _carpart_type
-popup 7 81 455 24 _carpart_isLoco
-popup 115 109 80 24 _carpart_import
-popup 198 109 80 24 _carpart_reset
-popup 298 109 80 24 _carpart_flip
-popup 7 237 192 24 _carpart_carLength
-popup 203 237 265 24 _carpart_carWidth
-popup 7 265 192 24 _carpart_trkCenter
-popup 7 321 457 100 _carpart_canvas
-popup 491 23 80 20 _carpart_ok
-EOF
-./mkshg ${PNG2DIR}/celev.png ${SHGDIR}/celev.shg << EOF
-popup 5 22 92 127 _elev_mode
-popup 100 46 83 27 _elev_value
-popup 100 73 83 17 _elev_computed
-popup 100 90 83 17 _elev_grade
-popup 100 107 203 27 _elev_station
-ignore 192 23 79 19 _elev_ok
-EOF
-./mkshg ${PNG2DIR}/chelix.png ${SHGDIR}/chelix.shg << EOF
-popup 9 25 232 26 _helix_elev
-popup 9 53 232 26 _helix_radius
-popup 9 80 232 26 _helix_turns
-popup 9 106 232 26 _helix_angSep
-popup 9 133 232 26 _helix_grade
-popup 9 160 232 26 _helix_vertSep
-EOF
-#./mkshg ${PNG2DIR}/cnote.png ${SHGDIR}/cnote.shg << EOF
-#popup 4 22 302 152 _note_text
-#ignore 8 22 31 20 _noteMFile
-#EOF
-./mkshg ${PNG2DIR}/cparalle.png ${SHGDIR}/cparalle.shg << EOF
-popup 227 5 245 19 _parallel_separation
-EOF
-./mkshg ${PNG2DIR}/cprofile.png ${SHGDIR}/cprofile.shg << EOF
-ignore 505 24 79 19 _profile_ok
-popup 505 48 80 19 _profile_clear
-popup 506 71 79 20 _profile_print
-popup 5 23 486 221 _profile_canvas
-ignore 3 244 434 22 _profile_message
-EOF
-./mkshg ${PNG2DIR}/custmgm.png ${SHGDIR}/custmgm.shg << EOF
-popup 5 25 397 230 _custmgm_inx
-popup 415 25 80 20 _custmgm_ok
-popup 415 48 80 20 _custmgm_edit
-popup 415 73 80 20 _custmgm_delete
-popup 415 95 80 20 _custmgm_export
-popup 415 126 80 20 _custmgm_new
-EOF
-./mkshg ${PNG2DIR}/dchgelev.png ${SHGDIR}/dchgelev.shg << EOF
-EOF
-./mkshg ${PNG2DIR}/demo.png ${SHGDIR}/demo.shg << EOF
-popup 7 53 419 229 _demo_text
-popup 251 27 138 20 _demo_speed
-popup 169 27 81 20 _demo_quit
-popup 87 27 80 20 _demo_next
-popup 5 27 79 20 _demo_step
-EOF
-./mkshg ${PNG2DIR}/dlayer.png ${SHGDIR}/dlayer.shg << EOF
-popup 9 28 252 26 _layer_layer
-popup 9 57 250 24 _layer_name
-popup 9 81 79 24 _layer_color
-popup 9 107 79 24 _layer_visible
-popup 87 107 79 24 _layer_frozen
-popup 167 107 79 24 _layer_onmap
-popup 9 132 130 24 _layer_object_count
-popup 9 167 266 24 _layer_button_count
-EOF
-./mkshg ${PNG2DIR}/easeex1.png ${SHGDIR}/easeex1.shg << EOF
-EOF
-./mkshg ${PNG2DIR}/easeex2.png ${SHGDIR}/easeex2.shg << EOF
-EOF
-./mkshg ${PNG2DIR}/easew.png ${SHGDIR}/easew.shg << EOF
-popup 19 69 266 20 _easement_radio
-popup 165 43 76 25 _easement_l
-popup 83 45 82 22 _easement_x
-popup 3 45 78 24 _easement_r
-popup 54 21 109 22 _easement_val
-EOF
-./mkshg ${PNG2DIR}/grid.png ${SHGDIR}/grid.shg << EOF
-popup 244 99 77 25 _grid_show
-popup 243 24 101 74 _grid_origx
-popup 3 96 188 21 _grid_horzenable
-popup 2 67 189 26 _grid_horzdivision
-popup 2 37 218 29 _grid_horzspacing
-EOF
-./mkshg ${PNG2DIR}/pricels.png ${SHGDIR}/pricels.shg << EOF
-popup 2 49 404 194 _pricelist_inx
-popup 2 22 404 24 _pricelist_cost
-popup 2 248 404 24 _pricelist_flexcost
-EOF
-./mkshg ${PNG2DIR}/print.png ${SHGDIR}/print.shg << EOF
-popup 5 26 190 25 _print_scale
-popup 5 54 190 25 _print_pagew
-popup 198 54 80 20 _print_max
-popup 5 78 190 25 _print_pageh
-popup 198 78 80 20 _print_snapshot
-popup 5 101 274 25 _print_format
-popup 5 122 274 25 _print_order
-popup 5 156 275 25 _print_style
-popup 5 180 275 25 _print_physsize
-popup 5 205 275 25 _print_registrationMarks
-popup 5 227 275 25 _print_grid
-popup 5 252 275 25 _print_ruler
-popup 5 277 275 25 _print_roadbed
-popup 5 301 275 25 _print_roadbedWidth
-popup 5 333 165 80 _print_origx
-popup 173 362 80 20 _print_reset
-popup 291 23 80 20 _print_ok
-popup 291 47 80 20 _printSetup
-popup 291 68 80 20 _print_clear
-EOF
-./mkshg ${PNG2DIR}/prmfile.png ${SHGDIR}/prmfile.shg << EOF
-popup 392 88 81 20 _prmfile_browse
-popup 393 67 81 18 _prmfile_action
-popup 76 215 150 23 _prmfile_mode
-popup 1 19 371 193 _prmfile_inx
-EOF
-./mkshg ${PNG2DIR}/regw.png ${SHGDIR}/regw.shg << EOF
-popup 1 110 299 26 _parameter_key
-popup 1 81 301 27 _parameter_name
-EOF
-./mkshg ${PNG2DIR}/rescale.png ${SHGDIR}/rescale.shg << EOF
-popup 1 21 274 24 _rescale_toggle
-popup 1 45 142 24 _rescale_from
-popup 143 45 131 24 _rescale_to
-popup 1 72 274 24 _rescale_change_gauge
-popup 1 99 274 24 _rescale_ratio
-popup 283 21 80 24 _rescale_ok
-EOF
-./mkshg ${PNG2DIR}/strsel.png ${SHGDIR}/strsel.shg << EOF
-popup 366 75 87 61 _structure_stats
-popup 9 272 440 220 _structure_canvas
-popup 9 26 350 241 _structure_list
-popup 366 48 80 20 _structure_hide
-EOF
-./mkshg ${PNG2DIR}/ctext.png ${SHGDIR}/ctext.shg << EOF
-popup 223 2 280 24 _text_fontsize
-EOF
-./mkshg ${PNG2DIR}/ttdiam.png ${SHGDIR}/ttdiam.shg << EOF
-popup 224 4 245 19 _turntable_diameter
-EOF
-./mkshg ${PNG2DIR}/turndes.png ${SHGDIR}/turndes.shg << EOF
-popup 494 158 86 42 _turnoutNew_angleMode
-popup 494 70 80 20 _printSetup
-popup 494 44 80 20 _turnoutNew_print
-popup 50 139 135 25 _turnoutNew_len1
-popup 282 87 126 25 _turnoutNew_off1
-popup 357 47 124 25 _turnoutNew_angle1
-popup 126 29 130 25 _turnoutNew_len1
-popup 5 167 478 25 _turnoutNew_manuf
-popup 5 196 343 53 _turnoutNew_desc1
-popup 352 196 129 53 _turnoutNew_partno1
-popup 5 250 200 25 _turnoutNew_roadbedWidth
-popup 209 250 117 25 _turnoutNew_roadbedLineWidth
-popup 328 250 65 25 _turnoutNew_color
-EOF
-./mkshg ${PNG2DIR}/turnsel.png ${SHGDIR}/turnsel.shg << EOF
-popup 10 314 25 25 _turnout_endPoint
-popup 10 277 25 25 _turnout_endPoint
-popup 379 314 25 25 _turnout_endPoint
-popup 379 277 25 25 _turnout_activeEndPoint
-popup 330 49 80 20 _turnout_new
-popup 330 72 80 20 _turnout_hide
-popup 6 269 404 133 _turnout_canvas
-popup 6 26 316 243 _turnout_list
-EOF
-./mkshg ${PNG2DIR}/train.png ${SHGDIR}/train.shg << EOF
-popup 4 23 120 24 _train_list
-popup 4 93 22 200 _train_speed
-popup 27 91 80 24 _train_distance
-popup 112 91 14 24 _train_zeroDistance
-popup 27 129 80 24 _train_goto
-popup 27 160 80 24 _train_follow
-popup 27 183 80 24 _train_autoreverse
-popup 27 213 80 24 _train_direction
-popup 27 244 80 24 _train_stop
-EOF
-./mkshg ${PNG2DIR}/trainbar.png ${SHGDIR}/trainbar.shg << EOF
-EOF
-./mkshg ${PNG2DIR}/updttl.png ${SHGDIR}/updttl.shg << EOF
-popup 1 150 301 21 _updatetitle_old
-popup 4 177 303 196 _updatetitle_sel
-popup 310 177 80 20 _updatetitle_ok
-popup 310 200 80 19 _updatetitle_ignore
-popup 310 223 80 19 _updatetitle_load
-EOF
-./mkshg ${PNG2DIR}/wenum.png ${SHGDIR}/wenum.shg << EOF
-popup 6 26 550 278 _enum_text
-popup 565 26 80 20 _enum_save
-popup 565 50 80 20 _enum_print
-popup 565 74 80 20 _printSetup
-popup 565 100 80 20 _enum_list_prices
-EOF
-./mkshg ${PNG2DIR}/wmain.png ${SHGDIR}/wmain.shg << EOF
-popup 3 25 645 18 _main_menubar
-popup 3 41 645 59 _main_commandbar
-popup 3 102 645 27 _main_layers
-popup 3 136 645 34 _main_hotbar
-popup 3 2 645 21 _main_titlebar
-popup 3 173 645 301 _main_canvas
-popup 7 476 50 22 _infoBarScale
-popup 63 476 49 22 _infoBarCount
-popup 119 476 115 22 _infoBarPosX
-popup 238 476 115 22 _infoBarPosY
-popup 364 476 283 22 _infoBarStatus
-EOF
-./mkshg ${PNG2DIR}/wmap.png ${SHGDIR}/wmap.shg << EOF
-popup 95 349 112 50 _map_hilight
-EOF
diff --git a/app/help/mkxpmbutt.c b/app/help/mkxpmbutt.c
deleted file mode 100644
index 4b09a80..0000000
--- a/app/help/mkxpmbutt.c
+++ /dev/null
@@ -1,303 +0,0 @@
-
-/* XTrkCad - Model Railroad CAD
- * Copyright (C) 2005 Dave Bullis
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-typedef struct {
- int w;
- int h;
- char * b;
- } bitmap_t;
-
-#define RGB(R,G,B) (((R)<<16)|((G)<<8)|(B))
-
-static struct {
- long rgb;
- int key;
- } mainColorMap[256];
-static int mainColorCnt;
-static int fileColorMap[256];
-
-static int sizeColorMap( void )
-{
- return mainColorCnt;
-}
-
-static void printColorMap( FILE * fout )
-{
- int inx, r, g, b;
- long rgb;
- for ( inx=0; inx<mainColorCnt; inx++ ) {
- rgb = mainColorMap[inx].rgb;
- r = (rgb>>16)&0xFF;
- g = (rgb>>8)&0xFF;
- b = (rgb)&0xFF;
- fprintf( fout, "\"%c\tc #%2.2X%s%2.2X%s%2.2X%s\",\n",
- mainColorMap[inx].key,
- r, ((r&1)?"FF":"00"),
- g, ((g&1)?"FF":"00"),
- b, ((b&1)?"FF":"00") );
- }
-}
-
-static int allocColor( long color )
-{
- int inx;
- for ( inx=0; inx<mainColorCnt; inx++ ) {
- if ( mainColorMap[inx].rgb == color )
- return mainColorMap[inx].key;
- }
- if ( mainColorCnt >= 256 ) {
- fprintf( stderr, "too many colors\n" );
- exit(1);
- }
- mainColorMap[mainColorCnt].rgb = color;
- mainColorMap[mainColorCnt].key = mainColorCnt+'0';
- return mainColorMap[mainColorCnt++].key;
-}
-
-static void resetColor( void )
-{
- int inx;
- for ( inx=0; inx<256; inx++ )
- fileColorMap[inx] = -1;
-}
-
-static void mapColor( int inx, long rgb )
-{
- fileColorMap[inx] = allocColor(rgb);
-}
-
-static int remapColor( int oldColor )
-{
- int newColor;
- newColor = fileColorMap[oldColor];
- if ( newColor < 0 ) {
- fprintf( stderr, "unknown color inx: %d\n", oldColor );
- return ' ';
- }
- return newColor;
-}
-
-static int read_xpm(
- char * filename,
- int *rw,
- int *rh,
- int bx,
- int by,
- bitmap_t *bm )
-{
- char line[1024], *cp, *cq, *buffer, color[5];
- FILE * f;
- int numcol, curcol, depth, linenum;
- int col, row, len, r, g, b;
- long rgb;
-
- f = fopen( filename, "r" );
- if ( !f ) {
- perror( filename );
- return 0;
- }
- numcol = -1;
- curcol = 0;
- linenum = 0;
- resetColor();
- row = by;
- while (fgets( line, sizeof line, f ) ) {
- linenum++;
- if ( line[0] != '"' )
- continue;
- if ( numcol == -1 ) {
- if ( sscanf( line+1, "%d%d%d%d", rw, rh, &numcol, &depth ) != 4 ) {
- fprintf( stderr, "bogus XPM header: %s:%d\n", filename, linenum );
- return 0;
- }
- if (!bm)
- return 1;
- } else if ( curcol < numcol ) {
- if ( strncmp( line+2, "\tc #", 4 ) != 0 ) {
- fprintf( stderr, "bogus XPM color line: %s:%d\n", filename, linenum );
- return 0;
- }
- color[3] = 0;
- memcpy( color, line+6, 2 );
- r = strtol( color, &cp, 16 );
- memcpy( color, line+10, 2 );
- g = strtol( color, &cp, 16 );
- memcpy( color, line+14, 2 );
- b = strtol( color, &cp, 16 );
- rgb = RGB(r,g,b);
- if ( curcol == 0 )
- fileColorMap[line[1]] = '0';
- else
- mapColor( line[1], rgb );
- curcol++;
- } else {
- if ( row > by+*rh ) {
- fprintf( stderr, "too many data lines: %s:%d\n", filename, linenum );
- return 0;
- }
- if ( row > bm->h )
- return 1;
- cp = line+1;
- for ( col=0; col<*rw; col++,cp++ ) {
- if ( bx+col > bm->w )
- break;
- if ( *cp == '"' ) {
- fprintf( stderr, "short data line: %s:%d\n", filename, linenum );
- return 0;
- }
- bm->b[bx+col+bm->w*row] = remapColor( *cp );
- }
- row++;
- }
- }
- fclose( f );
- return 1;
-}
-
-static void drawVline(
- bitmap_t * bm,
- int col,
- int x,
- int y0,
- int y1 )
-{
- int jj;
- if ( x > bm->w )
- return;
- for ( jj=y0; jj<=y1; jj++ ) {
- if ( jj>=bm->h )
- return;
- bm->b[jj*bm->w+x] = col;
- }
-}
-
-
-static void drawHline(
- bitmap_t * bm,
- int col,
- int x0,
- int x1,
- int y )
-{
- int ii;
- if ( y > bm->h )
- return;
- for ( ii=x0; ii<=x1; ii++ ) {
- if ( ii>=bm->w )
- return;
- bm->b[y*bm->w+ii] = col;
- }
-}
-
-static void fillBlock(
- bitmap_t * bm,
- int col,
- int x,
- int y,
- int w,
- int h )
-{
- int ii, jj;
- for ( jj=y; jj<y+h; jj++ ) {
- if ( jj>bm->h )
- return;
- for ( ii=x; ii<x+w; ii++ ) {
- if ( ii>bm->w )
- return;
- bm->b[jj*bm->w+ii] = col;
- }
- }
-}
-
-
-int main ( int argc, char * argv[] )
-{
- char * name;
- int colWhite, colMdGray, colDkGray, colBlack;
- int bx, w, h;
- bitmap_t bm;
- char ** filename;
- int ii, jj;
- char * cp;
- int argn;
-
- if ( argc < 3 ) {
- fprintf( stderr, "usage: %s NAME FILE1.XPM...\n", argv[0] );
- exit(1);
- }
-
- colMdGray = allocColor( RGB(0xC0,0xC0,0xC0) );
- colWhite = allocColor( RGB(255,255,255) );
- colDkGray = allocColor( RGB(0x80,0x80,0x80) );
- colBlack = allocColor( RGB(0,0,0) );
- allocColor( RGB(255,0,0) );
-
- name = argv[1];
- argc -= 2;
- filename = &argv[2];
-
- bm.w = 1;
- bm.h = 0;
- for ( argn=0; argn<argc; argn++ ) {
- if ( !read_xpm( filename[argn], &w, &h, bx+5, 5, NULL ) )
- return;
- if ( h+10 > bm.h )
- bm.h = h+10;
- bm.w += w+9;
- }
-
- bm.b = (char*)malloc( bm.w*bm.h );
- memset( bm.b, 0, bm.w*bm.h );
- fillBlock( &bm, colMdGray, 0, 0, bm.w, bm.h );
- bx = 0;
- for ( argn=0; argn<argc; argn++ ) {
- if ( !read_xpm( filename[argn], &w, &h, bx+5, 5, &bm ) )
- return;
- drawVline( &bm, colBlack, bx+0, 0, bm.h-1 );
- drawVline( &bm, colWhite, bx+1, 1, bm.h-2 );
- drawVline( &bm, colWhite, bx+2, 1, bm.h-3 );
- drawVline( &bm, colDkGray, bx+5+w+2, 2, bm.h-2 );
- drawVline( &bm, colDkGray, bx+5+w+3, 1, bm.h-2 );
- drawVline( &bm, colBlack, bx+5+w+4, 0, bm.h-1 );
-
- drawHline( &bm, colBlack, bx+1, bx+5+w+3, 0 );
- drawHline( &bm, colWhite, bx+1, bx+5+w+2, 1 );
- drawHline( &bm, colWhite, bx+1, bx+5+w+1, 2 );
- drawHline( &bm, colDkGray, bx+2, bx+5+w+1, bm.h-3 );
- drawHline( &bm, colDkGray, bx+1, bx+5+w+1, bm.h-2 );
- drawHline( &bm, colBlack, bx+1, bx+5+w+3, bm.h-1 );
-
- bx += w+9;
- }
-
- fprintf( stdout, "/* XPM */\n" );
- fprintf( stdout, "static char * %s_xpm[] = {\n", name );
- fprintf( stdout, "\"%d %d %d 1\",\n", bm.w, bm.h, sizeColorMap()+1 );
- fprintf( stdout, "\"Z\tc #000000000000\",\n" );
- printColorMap( stdout );
- cp = bm.b;
- for ( jj=0; jj<bm.h; jj++ ) {
- fprintf(stdout, "\"%.*s\"%s\n", bm.w, cp, (jj<bm.h-1?",":"};") );
- cp += bm.w;
- }
-}
diff --git a/app/help/prochelp.c b/app/help/prochelp.c
deleted file mode 100644
index d1dd256..0000000
--- a/app/help/prochelp.c
+++ /dev/null
@@ -1,2178 +0,0 @@
-
-/* XTrkCad - Model Railroad CAD
- * Copyright (C) 2005 Dave Bullis
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <math.h>
-#include <stdlib.h>
-#if defined (__sun) && defined (__SVR4)
-#include <ctype.h>
-#endif
-#include "readpng.h"
-
-#define PROGNAME "prochelp"
-
-char line[1024];
-int lineNum;
-FILE * ifile;
-FILE * ofile;
-int wordwrap = 1;
-int listLevel = -1;
-int listType[10];
-int listCount[10];
-int lineWidth = 80;
-int listWidth = 80;
-int verbose = 0;
-int toc = 0;
-char * dirs[10] = { "." };
-char ** dirList = &dirs[1];
-int FontSize = 22;
-double MarginTop = -1;
-double MarginBottom = -1;
-double MarginLeft = -1;
-double MarginRight = -1;
-double MarginGutter = -1;
-
-#define LISTNONE (0)
-#define LISTBULLET (1)
-#define LISTDASH (2)
-#define LISTNUMBER (3)
-
-int USE_BMP = 0;
-
-
-typedef struct {
- void (*start)( char *, char * );
- void (*finish)( void );
- void (*newParagraph)( void );
- void (*startLine)( int );
- void (*doBold)( char * );
- void (*doItalic)( char * );
- void (*doXref)( char *, char *, char * );
- void (*doPicture)( char *, int );
- void (*endLine)( void );
- void (*putChar)( char );
- void (*doSection)( char, char *, char *, char *, char *, int );
- void (*doHeader)( char * );
- void (*doStartDisplay)( void );
- void (*doEndDisplay)( void );
- void (*doThread)( char * );
- void (*doListStart)( void );
- void (*doListItem)( void );
- void (*doListEnd)( void );
- void (*page)( void );
-
- } dispatchTable;
-dispatchTable *curMode;
-
-struct tocList_t;
-typedef struct tocList_t * tocList_p;
-typedef struct tocList_t {
- tocList_p next;
- char section;
- long num;
- char * title;
- } tocList_t;
-tocList_p tocHead = NULL;
-tocList_p tocTail = NULL;
-long tocNum = 37061946;
-
-
-void no_op( void )
-{
-}
-FILE * openFile( char * filename )
-{
- FILE * f;
- char tmp[1024];
- char ** d;
-
- for ( d=dirs; *d; d++ ) {
- sprintf( tmp, "%s/%s", *d, filename );
- f = fopen( tmp, "r" );
- if (f)
- return f;
- }
- fprintf( stderr, "Can't open %s\n", filename );
- exit(1);
-}
-
-void normalStart( char * inName, char * outName )
-{
- ifile = openFile( inName );
- if ( strcmp( outName, "-" ) == 0 ) {
- ofile = stdout;
- } else {
- ofile = fopen( outName, "w" );
- if (ofile == NULL) {
- perror( outName );
- exit( 1 );
- }
- }
-}
-void normalFinish( void )
-{
- if (ofile)
- fclose( ofile );
-}
-void process( FILE * );
-
-/******************************************************************************
- *
- * COMMON RTF
- *
- *****************************************************************************/
-
-int rtfNeedPar = FALSE;
-int rtfNeedGap = FALSE;
-int rtfNeedFI0 = FALSE;
-int rtfGapHeight = -1;
-int rtfBigGap = 60;
-
-void rtfFlushParagraph( void )
-{
- if ( rtfNeedPar ) {
- if ( rtfNeedGap==TRUE && rtfGapHeight!=rtfBigGap ) {
- fprintf( ofile, "\\sb%d", rtfBigGap );
- rtfGapHeight = rtfBigGap;
- }
- if ( rtfNeedGap==FALSE && rtfGapHeight!=0 ) {
- fprintf( ofile, "\\sb0" );
- rtfGapHeight = 0;
- }
- fprintf( ofile, "\\par\n" );
- if ( rtfNeedFI0 )
- fprintf( ofile, "\\fi0\n" );
- rtfNeedPar = FALSE;
- rtfNeedGap = FALSE;
- rtfNeedFI0 = FALSE;
- }
-}
-
-
-void rtfPutChar( char ch )
-{
- if ( ((ch) & 0x80) ){
- fprintf( ofile, "\\'%2.2X", (unsigned char)ch );
- } else if ( (ch) == '\\' ){
- fprintf( ofile, "\\\\" );
- } else {
- fputc( ch, ofile );
- }
- rtfNeedPar = TRUE;
-}
-void rtfPutString( char * cp )
-{
- while (*cp) {
- rtfPutChar( *cp++ );
- }
-}
-void rtfNewParagraph( void )
-{
- if ( wordwrap ) {
- rtfFlushParagraph();
-#ifdef LATER
- if ( listLevel < 0 ) {
- rtfFlushParagraph();
- rtfNeedGap = 1;
- } else {
- if ( rtfNeedPar ) {
- fprintf( ofile, "\\line\r\n" );
- rtfNeedPar = FALSE;
- }
- }
-#endif
- }
-}
-void rtfStartLine( int lastBlank )
-{
- if ( !wordwrap ) {
- fprintf( ofile, "\\tab\r\n" );
- } else if ( lastBlank ) {
- rtfFlushParagraph();
- }
-}
-void rtfBold( char * name )
-{
- fprintf( ofile, "{\\b " );
- rtfPutString( name );
- fprintf( ofile, "}" );
-}
-void rtfItalic( char * name )
-{
- fprintf( ofile, "{\\i " );
- rtfPutString( name );
- fprintf( ofile, "}" );
-}
-void rtfEndLine( void )
-{
- if ( !wordwrap ) {
- rtfNeedPar = TRUE;
- rtfFlushParagraph();
- }
-}
-void rtfStartDisplay( void )
-{
- rtfFlushParagraph();
-}
-void rtfListStart( void )
-{
- rtfFlushParagraph();
- if (listLevel>0) {
- fprintf( ofile, "\\pard" );
-/*
- if ( rtfNeedGap ) {
- fprintf( ofile, "\\sb%d", rtfBigGap );
- rtfGapHeight = rtfBigGap;
- rtfNeedGap = FALSE;
- }
-*/
- rtfGapHeight = -1;
- }
- fprintf( ofile, "\\tx360\\li%d\r\n", 360*(listLevel+1) );
-}
-void rtfListItem( void )
-{
- /*if (listLevel == 0 || listCount[listLevel] > 1)*/
- rtfFlushParagraph();
- fprintf( ofile, "\\fi-360 " );
- rtfNeedFI0 = TRUE;
- switch (listType[listLevel]) {
- case LISTNONE:
-#ifdef LATER
- if ( listCount[listLevel] > 0 )
- fprintf( ofile, "\\fi-360 " );
- rtfNeedFI0 = TRUE;
-#endif
- break;
- case LISTBULLET:
- fprintf( ofile, "{\\f1\\'B7}\\tab" );
- break;
- case LISTDASH:
- fprintf( ofile, "{\\b -}\\tab" );
- break;
- case LISTNUMBER:
- fprintf( ofile, "{\\b %d}\\tab", listCount[listLevel] );
- break;
- }
- fprintf( ofile, "\r\n" );
-}
-void rtfListEnd( void )
-{
- if (listLevel == -1)
- fprintf( ofile, "\\par\\pard\r\n" );
- else
- fprintf( ofile, "\\par\\pard\\tx360\\li%d\\fi-360\r\n", 360*(listLevel+1) );
- rtfNeedPar = FALSE;
- rtfGapHeight = -1;
- rtfNeedGap = FALSE;
-}
-
-void rtfPage( void )
-{
- rtfFlushParagraph();
- fprintf( ofile, "\\page\r\n" );
-}
-
-/******************************************************************************
- *
- * MSW-HELP
- *
- *****************************************************************************/
-
-int pageCnt = 0;
-
-struct {
- char * name;
- int count;
- } threads[100];
-int threadCnt = 0;
-
-
-char * remap_minus( char * cp )
-{
- char * cp0 = cp;
- for ( ; *cp; cp++ )
- if ( *cp == '-' )
- *cp = '_';
- return cp0;
-}
-
-int lookupThread( char * name )
-{
- int inx;
- if (!name) {
- fprintf( stderr, "%d: NULL thread string\n", lineNum );
- return 0;
- }
- for (inx=0;inx<threadCnt;inx++) {
- if (strcmp(threads[inx].name,name)==0) {
- return ++(threads[inx].count);
- }
- }
- threads[threadCnt].name = strdup( name );
- threads[threadCnt].count = 1;
- threadCnt++;
- return 1;
-}
-
-void mswhelpXref( char * name, char * ref1, char * ref2 )
-{
- fprintf( ofile, "{\\uldb " );
- rtfPutString( name );
- fprintf( ofile, "}{\\v %s}", ref1 );
-}
-void mswhelpPicture( char * name, int inLine )
-{
- if (inLine) {
- fprintf( ofile, "\\{bml %s.shg\\}\\tab", name );
- rtfNeedPar = TRUE;
- } else {
- fprintf( ofile, "{\\qc\\{bmc %s.shg\\}\\par\\pard}\r\n", name );
- rtfNeedPar = FALSE;
- rtfNeedGap = FALSE;
- rtfGapHeight = -1;
- }
-}
-void mswhelpSection( char section, char * title, char * context, char * picture, char * keywords, int newpage )
-{
- if (pageCnt != 0 && newpage)
- fprintf( ofile, "\\page\r\n" );
- pageCnt++;
- if (context && context[0] != '\0')
- fprintf( ofile, "#{\\footnote %s}\r\n", remap_minus(context) );
- if (newpage && title && title[0] != '\0') {
- fprintf( ofile, "${\\footnote %s}\r\n", title );
- }
- if (keywords && keywords[0] != '\0')
- fprintf( ofile, "K{\\footnote %s}\r\n", keywords );
- if (picture && picture[0] != '\0') {
- mswhelpPicture( picture, 1 );
- }
- if (title && title[0] != '\0')
- fprintf( ofile, "{\\b\\fs30 %s}\r\n", title );
- fprintf( ofile, "\\par\r\n" );
- rtfNeedPar = FALSE;
-}
-void mswhelpHeader( char * line )
-{
- if ( line[0] == '*' )
- return;
- fprintf( ofile, "#{\\footnote %s}\r\n", remap_minus(line) );
-}
-void mswhelpThread( char * thread )
-{
- int threadCnt;
- threadCnt = lookupThread( thread );
- fprintf( ofile, " +{\\footnote %s:%02d}\r\n", thread, threadCnt );
-}
-dispatchTable mswhelpTable = {
- normalStart,
- normalFinish,
- rtfNewParagraph,
- rtfStartLine,
- rtfBold,
- rtfItalic,
- mswhelpXref,
- mswhelpPicture,
- rtfEndLine,
- rtfPutChar,
- mswhelpSection,
- mswhelpHeader,
- rtfStartDisplay,
- (void*)no_op,
- mswhelpThread,
- rtfListStart,
- rtfListItem,
- rtfListEnd,
- (void*)no_op
- };
-
-/******************************************************************************
- *
- * MSW-WORD
- *
- *****************************************************************************/
-
-
-struct BMFH {
- char type[2];
- short size[2];
- short rsvd1;
- short rsvd2;
- short off[2];
- };
-
-struct BMIH {
- long size;
- long width;
- long height;
- short planes;
- short colors;
- long comp;
- long imageSize;
- long xPelsPerMeter;
- long yPelsPerMeter;
- long clrUsed;
- long clrImportant;
- };
-
-struct BMIH2 {
- long size;
- short width;
- short height;
- short planes;
- short colors;
- };
-
-unsigned short S( short val )
-{
- union {
- short inVal;
- unsigned char outVal[2];
- } convShort;
- short ret;
- convShort.inVal = val;
- ret = (((short)convShort.outVal[0])<<8) + ((short)convShort.outVal[1]);
- return ret;
-}
-
-
-long L( long val )
-{
- union {
- long inVal;
- unsigned char outVal[4];
- } convLong;
- long ret;
- convLong.inVal = val;
- ret = (((long)convLong.outVal[0])<<24) + (((long)convLong.outVal[1])<<16) + (((long)convLong.outVal[2])<<8) + ((long)convLong.outVal[3]);
- return ret;
-}
-
-
-void dumpBytes( char * buff, long size, FILE * outF )
-{
- long inx, off, rc;
- for (inx=0, off=1; inx<size; inx++,off++) {
- fprintf( outF, "%0.2x", (unsigned char)buff[inx] );
- if (off >= 40) {
- fprintf( outF, "\n" );
- off = 0;
- }
- }
- if (off != 1)
- fprintf( outF, "\n" );
-}
-
-
-void conv24to8( long * colorTab, unsigned char * buff, int channels, int width24, int width8, int height )
-{
- long * lastColor, *cp;
- long color;
- unsigned char * ip;
- unsigned char *op;
- int h, w;
- lastColor = colorTab;
- memset( colorTab, 0, 1024 );
- op = buff;
- for (h=0; h<height; h++) {
- ip = buff+(width24*h);
- op = buff+(width8*h);
- for (w=0; w<width24; w+=channels,op++ ) {
- color = ((long)(ip[0]))<<16;
- color += ((long)(ip[1]))<<8;
- color += ((long)(ip[2]));
- ip += channels;
- for ( cp=colorTab; cp<lastColor; cp++ ) {
- if (color == *cp) {
- *op = (unsigned char)(cp-colorTab);
- goto nextPixel;
- }
- }
- if (lastColor < &colorTab[256]) {
- *op = (unsigned char)(lastColor-colorTab);
- *lastColor++ = color;
- } else {
- *op = 0;
- }
-nextPixel:
- ;
- }
- *op++ = 0;
- *op++ = 0;
- }
-}
-
-
-void dumpBmp( char * bmpName, FILE * outF )
-{
- long rc;
- long size;
- long fullSize;
- long scanWidth, width8;
- long h;
- long picw, pich;
- long fileSize, maxRecSize;
- struct BMFH bmfh;
- struct BMIH bmih;
- struct BMIH2 bmih2;
- char * buff;
- long * colorTab;
- long bmfhSize, bmfhOff;
- FILE * bmpF;
- int colormapOff;
- int i, j;
-
- bmpF = openFile( bmpName );
- rc = fread( &bmfh, 1, sizeof bmfh, bmpF );
- rc = fread( &bmih, 1, sizeof bmih, bmpF );
- colormapOff = sizeof bmfh + sizeof bmih;
- if (bmih.size == 12L) {
- fseek( bmpF, sizeof bmfh, SEEK_SET );
- rc = fread( &bmih2, 1, sizeof bmih2, bmpF );
- bmih.width = bmih2.width;
- bmih.height = bmih2.height;
- bmih.planes = bmih2.planes;
- bmih.colors = bmih2.colors;
- bmih.comp = 0;
- bmih.imageSize = 0;
- bmih.xPelsPerMeter = 0;
- bmih.yPelsPerMeter = 0;
- bmih.clrUsed = 0;
- bmih.clrImportant = 0;
- colormapOff = sizeof bmfh + sizeof bmih2;
- }
-#ifdef LATER
- bmfh.size = L(bmfh.size);
- bmfh.off = L(bmfh.off);
- bmih.size = L(bmih.size);
- bmih.width = L(bmih.width);
- bmih.height = L(bmih.height);
- bmih.planes = S(bmih.planes);
- bmih.colors = S(bmih.colors);
- bmih.comp = L(bmih.comp);
- bmih.imageSize = L(bmih.imageSize);
- bmih.xPelsPerMeter = L(bmih.xPelsPerMeter);
- bmih.yPelsPerMeter = L(bmih.yPelsPerMeter);
- bmih.clrUsed = L(bmih.clrUsed);
- bmih.clrImportant = L(bmih.clrImportant);
-#endif
- bmfhSize = ((unsigned short)bmfh.size[0]) + (((long)bmfh.size[1])<<16);
- bmfhOff = ((unsigned short)bmfh.off[0]) + (((long)bmfh.off[1])<<16);
- if (verbose) {
- fprintf( stdout, "BMFH type %c%c, size %ld, off %ld\n",
- bmfh.type[0], bmfh.type[1], bmfhSize, bmfhOff );
- fprintf( stdout, "BMIH size %ld, width %ld, height %ld, planes %d, colors %d\n comp %ld, imageSize %ld, xDPM %ld, yDPM %ld, clrUsed %ld, clrImportant %ld\n",
- bmih.size, bmih.width, bmih.height, bmih.planes, bmih.colors,
- bmih.comp, bmih.imageSize, bmih.xPelsPerMeter, bmih.yPelsPerMeter,
- bmih.clrUsed, bmih.clrImportant );
- }
- scanWidth = (bmih.width*bmih.colors+7)/8;
- scanWidth = ((scanWidth+3)/4)*4;
- fullSize = size = bmfhSize - bmfhOff;
- if ( fullSize != bmih.height*scanWidth ) {
- fprintf( stderr, "%s: height*scanWidth(%ld)(%ld) != fullSize(%ld)\n", bmpName, scanWidth, bmih.height*scanWidth, fullSize );
- return;
- }
- if ( bmih.colors != 24 && bmih.colors != 8 && bmih.colors != 4 && bmih.colors != 1) {
- return;
- }
- if ( bmih.planes != 1 ) {
- fprintf( stderr, "%s: planes(%d) != 1\n", bmpName, bmih.planes );
- return;
- }
- if ( bmih.comp != 0 ) {
- fprintf( stderr, "%s: comp(%d) != 0\n", bmpName, bmih.comp );
- return;
- }
-
- if (bmih.colors != 8) {
- size = (((bmih.width+3)/4)*4) * bmih.height;
- }
- fileSize = (size+1024)/2 + 70;
- maxRecSize = (size+1024)/2 + 34;
-
- picw = bmih.width*26L;
- pich = bmih.height*26L;
- if ( outF ) {
- buff = NULL;
- fprintf( outF, "{\\pict\\wmetafile8\\picw%ld\\pich%ld\\picwgoal%ld\\pichgoal%ld\\picbmp\\picbpp%d\n",
- picw, pich, bmih.width*15L, bmih.height*15L, 8/*bmih.colors*/ );
- fprintf( outF, "010009000003%0.8lx0000%0.8lx0000\n",
- L(fileSize), L(maxRecSize) );
- fprintf( outF, "050000000b0200000000\n" ); /* SetWindowOrg(0,0) */
- fprintf( outF, "050000000c02%0.4x%0.4x\n", S((short)bmih.height), S((short)bmih.width) );
- fprintf( outF, "05000000090200000000\n" ); /* SetTextColor( 0 ) */
- fprintf( outF, "050000000102d8d0c800\n" ); /* SetBkColor( 0 ) */
- fprintf( outF, "0400000007010300\n" ); /* SetStretchBltMode(0300) */
- fprintf( outF, "%0.8lx430f\n", L(maxRecSize) );
- fprintf( outF, "2000cc000000%0.4x%0.4x00000000%0.4x%0.4x00000000\n",
- S((short)bmih.height), S((short)bmih.width), S((short)bmih.height), S((short)bmih.width) );
- fprintf( outF, "28000000%0.8lx%0.8lx%0.4x%0.4x000000000000000000000000000000000000000000000000\n",
- L(bmih.width), L(bmih.height), S(bmih.planes), S(8/*bmih.colors*/) );
- switch ( bmih.colors ) {
- case 8:
- buff = (char*)malloc(1024);
- fseek( bmpF, colormapOff, 0 );
- rc = fread( buff, 1024, 1, bmpF );
- if (bmih.size == 12L) {
- for (h=255; h>=0; h--) {
- for (i=3; i>=0; i--)
- buff[h*4+i] = buff[h*3+i];
- buff[h*4+3] = 0;
- }
- }
- dumpBytes( buff, 1024, outF );
- rc = fseek( bmpF, bmfhOff, 0 );
- buff = (char*)realloc( buff, (int)scanWidth );
- for ( h=0; h<bmih.height; h++ ) {
- rc = fread( buff, (int)scanWidth, 1, bmpF );
- dumpBytes( buff, scanWidth, outF );
- }
- break;
- case 4:
- buff = (char*)malloc(1024);
- fseek( bmpF, colormapOff, 0 );
- memset( buff, 0, 1024 );
- rc = fread( buff, 3*16, 1, bmpF );
- for (h=15; h>=0; h--) {
- for (i=3; i>=0; i--)
- buff[h*4+i] = buff[h*3+i];
- buff[h*4+3] = 0;
- }
- dumpBytes( buff, 1024, outF );
- rc = fseek( bmpF, bmfhOff, 0 );
- buff = (char*)realloc( buff, (int)scanWidth*2+10 );
- width8 = (bmih.width+3)/4*4;
- for ( h=0; h<bmih.height; h++ ) {
- rc = fread( buff, (int)scanWidth, 1, bmpF );
- for (i=scanWidth-1; i>=0; i--) {
- buff[i*2+1] = buff[i]&0xF;
- buff[i*2] = (buff[i]>>4)&0xF;
- }
- dumpBytes( buff, width8, outF );
- }
- break;
- case 1:
- buff = (char*)malloc(1024);
- fseek( bmpF, colormapOff, 0 );
- memset( buff, 0, 1024 );
- rc = fread( buff, 3*2, 1, bmpF );
- for (h=1; h>=0; h--) {
- for (i=3; i>=0; i--)
- buff[h*4+i] = buff[h*3+i];
- buff[h*4+3] = 0;
- }
- dumpBytes( buff, 1024, outF );
- rc = fseek( bmpF, bmfhOff, 0 );
- buff = (char*)realloc( buff, (int)scanWidth*8+10 );
- width8 = (bmih.width+3)/4*4;
- for ( h=0; h<bmih.height; h++ ) {
- rc = fread( buff, (int)scanWidth, 1, bmpF );
- for (i=scanWidth-1; i>=0; i--) {
- for (j=7; j>=0; j--) {
- buff[i*8+j] = (buff[i]&(128>>j))?1:0;
- }
- }
- dumpBytes( buff, width8, outF );
- }
- break;
- case 24:
- buff = (char*)malloc( (int)(fullSize) );
- rc = fread( buff, (int)(fullSize), 1, bmpF );
- colorTab = (long*)malloc( 1024 );
- width8 = ((bmih.width+3)/4)*4;
- conv24to8( colorTab, buff, (int)scanWidth, 3, (int)width8, (int)bmih.height );
- dumpBytes( (char*)colorTab, 1024, outF );
- for ( h=0; h<bmih.height; h++ ) {
- dumpBytes( buff, (int)width8, outF );
- buff += (int)width8;
- }
- break;
- default:
- fprintf( stderr, "%s: colors(%d) != 24|8|4|1\n", bmpName, bmih.colors );
- return;
- }
- fprintf( outF, "030000000000\n" );
- fprintf( outF, "}\n" );
- }
- fclose( bmpF );
-}
-
-
-void dumpPng(
- char * fileName,
- FILE * outF )
-{
- FILE * pngF;
- int rc;
- unsigned long image_rowbytes, width8, h;
- long image_width, image_height;
- int image_channels;
- unsigned char * image_data;
- double display_exponent = 1.0;
-
- int bmih_colors = 24;
- int bmih_planes = 1;
-
- long size, fileSize, maxRecSize;
- long colorTab[1024];
- char pathName[1024];
- char ** dir;
-
- for ( dir=dirs; *dir; dir++ ) {
- sprintf( pathName, "%s/%s", *dir, fileName );
- pngF = fopen( pathName, "r" );
- if ( pngF != NULL )
- break;
- }
-
- if ( pngF == NULL ) {
- perror( fileName );
- return;
- }
- if ((rc = readpng_init(pngF, (long *) &image_width, (long *) &image_height)) != 0) {
- switch (rc) {
- case 1:
- fprintf(stderr, PROGNAME
- ": [%s] is not a PNG file: incorrect signature\n",
- pathName);
- break;
- case 2:
- fprintf(stderr, PROGNAME
- ": [%s] has bad IHDR (libpng longjmp)\n",
- pathName);
- break;
- case 4:
- fprintf(stderr, PROGNAME ": insufficient memory\n");
- break;
- default:
- fprintf(stderr, PROGNAME
- ": unknown readpng_init() error\n");
- break;
- }
- return;
- }
-
- image_data = readpng_get_image(display_exponent, &image_channels, &image_rowbytes);
- width8 = ((image_width+3)/4)*4;
- size = width8*image_height;
- fileSize = (size+1024)/2 + 70;
- maxRecSize = (size+1024)/2 + 34;
-
- fprintf( outF, "{\\pict\\wmetafile8\\picw%ld\\pich%ld\\picwgoal%ld\\pichgoal%ld\\picbmp\\picbpp%d\n",
- image_width*26L, image_height*26L, image_width*15L, image_height*15L, 8/*bmih_colors*/ );
- fprintf( outF, "010009000003%0.8lx0000%0.8lx0000\n",
- L(fileSize), L(maxRecSize) );
- fprintf( outF, "050000000b0200000000\n" ); /* SetWindowOrg(0,0) */
- fprintf( outF, "050000000c02%0.4x%0.4x\n", S((short)image_height), S((short)image_width) );
- fprintf( outF, "05000000090200000000\n" ); /* SetTextColor( 0 ) */
- fprintf( outF, "050000000102d8d0c800\n" ); /* SetBkColor( 0 ) */
- fprintf( outF, "0400000007010300\n" ); /* SetStretchBltMode(0300) */
- fprintf( outF, "%0.8lx430f\n", L(maxRecSize) );
- fprintf( outF, "2000cc000000%0.4x%0.4x00000000%0.4x%0.4x00000000\n",
- S((short)image_height), S((short)image_width), S((short)image_height), S((short)image_width) );
- fprintf( outF, "28000000%0.8lx%0.8lx%0.4x%0.4x000000000000000000000000000000000000000000000000\n",
- L(image_width), L(image_height), S(bmih_planes), S(8/*bmih.colors*/) );
- width8 = ((image_width+3)/4)*4;
- conv24to8( colorTab, (char *) image_data, image_channels, image_width*image_channels, width8, image_height );
- dumpBytes( (char *)colorTab, 1024, outF );
- for ( h=0; h<image_height; h++ ) {
- dumpBytes( (char *) image_data+(h)*width8, (int)width8, outF );
- }
- fprintf( outF, "030000000000\n" );
- fprintf( outF, "}\n" );
-
- readpng_cleanup(0);
- fclose( pngF );
- free( image_data );
-
-}
-
-void mswwordXref( char * name, char * ref1, char * ref2 )
-{
- rtfBold( name );
-}
-void mswwordPicture( char * name, int inLine )
-{
- char tmp[80];
- if (!inLine) {
- rtfFlushParagraph();
- fprintf( ofile, "{\\qc\\sb%d", rtfNeedGap?rtfBigGap:0 );
- }
- if ( USE_BMP ) {
- sprintf( tmp, "%s.bmp", name );
- dumpBmp( tmp, ofile );
- } else {
- sprintf( tmp, "%s.png", name );
- dumpPng( tmp, ofile );
- }
- if (inLine) {
- /*fprintf( ofile, "\\tab " );*/
- rtfNeedPar = TRUE;
- } else {
- fprintf( ofile, "\\par\\pard}\n" );
- rtfNeedPar = FALSE;
- rtfNeedGap = FALSE;
- rtfGapHeight = -1;
- }
-}
-int sectionNum[3] = { 0, 0, 0 };
-void mswwordSection( char section, char * title, char * context, char * picture, char * keywords, int newpage )
-{
- char tmp[1024];
- char sectionNumS[20];
- rtfFlushParagraph();
- if (pageCnt != 0 && newpage) {
- fprintf( ofile, "\\page\n" );
- }
- pageCnt++;
- if (toc) {
- fprintf( ofile, "{\\*\\bkmkstart _Toc%ld}\n", tocNum );
- }
- fprintf( ofile,"\
-{\\pntext\\pard\\plain\\b\\f5\\fs28\\kerning28 \
-" );
- switch ( section ) {
- case 'A':
- sprintf( sectionNumS, "%d. ", ++sectionNum[0] );
- sectionNum[1] = sectionNum[2] = 0;
- break;
- case 'B':
- sprintf( sectionNumS, "%d.%d ", sectionNum[0], ++sectionNum[1] );
- sectionNum[2] = 0;
- break;
- case 'C':
-#ifdef LATER
- sprintf( sectionNumS, "%d.%d.%d ", sectionNum[0], sectionNum[1], ++sectionNum[2] );
-#else
- sprintf( sectionNumS, "" );
-#endif
- break;
- default:
- sprintf( sectionNumS, "bad section (%c) ", section );
- }
- fprintf( ofile, "\
-%s\\tab}\
-\\pard\\plain \\s%d\\sb240\\sa60\\keepn\\widctlpar\
-{\\*\\pn \\pnlvl%d\\pndec\\pnprev1\\pnstart1\\pnindent720\\pnhang\
-{\\pntxta .}\
-}\
-\\b\\f5\\fs28\\kerning28 %s\
-", sectionNumS, section-'A'+1, section-'A'+1, title );
- if (picture && picture[0] != '\0') {
- fprintf( ofile, " " );
- mswwordPicture( picture, 1 );
- }
- if (toc) {
- fprintf( ofile, "{\\*\\bkmkend _Toc%ld}\n", tocNum );
- }
- fprintf( ofile, "\
-\\par \
-\\pard\\plain \\widctlpar \\f4\\fs%d \
-\n", FontSize );
- if (toc) {
- tocList_p tl;
- tl = (tocList_p)malloc( sizeof *tl );
- tl->section = section;
- tl->title = (char*)malloc( strlen(sectionNumS) + strlen(title) + 1 );
- sprintf( tl->title, "%s%s", sectionNumS, title );
- tl->num = tocNum++;
- tl->next = NULL;
- if (tocHead == NULL)
- tocHead = tl;
- else
- tocTail->next = tl;
- tocTail = tl;
- }
- rtfNeedPar = FALSE;
- rtfNeedGap = TRUE;
- rtfGapHeight = -1;
-}
-
-void mswwordStart( char * inName, char * outName )
-{
- normalStart( inName, outName );
- if ( MarginGutter >= 0.0 )
- fprintf( ofile, "\\margmirror\\gutter%d\n", (int)(MarginGutter*1440.0) );
- if (MarginTop >= 0.0)
- fprintf( ofile, "\\margt%d\n", (int)(MarginTop*1440.0) );
- if (MarginBottom >= 0.0)
- fprintf( ofile, "\\margb%d\n", (int)(MarginBottom*1440.0) );
- if (MarginRight >= 0.0)
- fprintf( ofile, "\\margr%d\n", (int)(MarginRight*1440.0) );
- if (MarginLeft >= 0.0)
- fprintf( ofile, "\\margl%d\n", (int)(MarginLeft*1440.0) );
-}
-
-void mswwordFinish( void )
-{
- char lastSection = 'A';
- tocList_p tl;
- rtfFlushParagraph();
- if (toc) {
- fprintf( ofile, "\
-\\sect \\sectd \\pgnrestart\\pgnlcrm\\linex0\\endnhere\
-\\pard\\plain \\qc\\widctlpar \\f4\\fs22 \
-{\\b\\fs36\\lang1024\\kerning28 Contents \\par \\par }\
-\\pard\\plain \\s17\\widctlpar\\tqr\\tldot\\tx8640 \\f4\\fs%d\n", FontSize );
- for ( tl=tocHead; tl; tl=tl->next ) {
- if ( tl->section != lastSection ) {
- fprintf( ofile, "\
-\\pard\\plain \\s%d\\li%d\\widctlpar\\tqr\\tldot\\tx8640 \\f4\\fs%d\n",
- tl->section-'A'+17,
- (tl->section-'A')*200, FontSize );
- lastSection = tl->section;
- }
- fprintf( ofile, "\
-{\\lang1024\\kerning28 %s}{\\lang1024 \\tab }\
-{\\field{\\*\\fldinst {\\lang1024 GOTOBUTTON _Toc%ld }\n\
-{\\field{\\*\\fldinst {\\lang1024 PAGEREF _Toc%ld }}\
-{\\fldrslt {\\lang1024 3}}}}}{\\lang1024 \\par }\n",
- tl->title, tl->num, tl->num);
- }
- fprintf( ofile,
-"\\pard\\plain \\widctlpar \\f4\\fs%d\n}\n}\n"
-/*\\pard\\plain \*/
-"\\widctlpar \\f4\\fs%d\n" , FontSize, FontSize);
- }
- normalFinish();
-}
-
-
-dispatchTable mswwordTable = {
- mswwordStart,
- mswwordFinish,
- rtfNewParagraph,
- rtfStartLine,
- rtfBold,
- rtfItalic,
- mswwordXref,
- mswwordPicture,
- rtfEndLine,
- rtfPutChar,
- mswwordSection,
- (void*)no_op,
- rtfStartDisplay,
- (void*)no_op,
- (void*)no_op,
- rtfListStart,
- rtfListItem,
- rtfListEnd,
- rtfPage
- };
-
-/******************************************************************************
- *
- * TEXT
- *
- *****************************************************************************/
-
-char textBuff[1024];
-char *textBuffP = textBuff;
-int textNewLine = 1;
-int textIndent = 0;
-int textAllowLeadingBlanks = 0;
-int textNoIndent = 0;
-int textLineLength;
-
-void textPutChar( char ch )
-{
- char *cp, *cq;
- int indent;
- int width;
-
- if (textNewLine) {
- textLineLength = 0;
- if (ch == ' ' && !textAllowLeadingBlanks) {
- return;
- }
- if (!textNoIndent) {
- for (indent=0; indent<textIndent; indent++) {
- memmove( textBuffP, " ", 4 );
- textBuffP += 4;
- textLineLength += 4;
- }
- }
- }
- textNewLine = 0;
- *textBuffP++ = ch;
- if (ch == '\010')
- textLineLength--;
- else
- textLineLength++;
- width = (textIndent>0?listWidth:lineWidth);
- if ( wordwrap && width > 0 && textLineLength > width ) {
- for (cp = textBuffP-1; *cp != ' ' && cp>textBuff+lineWidth/2; cp-- );
- while ( *cp == ' ' && cp>textBuff+lineWidth/2 ) cp--;
- cp++;
- fwrite( textBuff, cp-textBuff, 1, ofile );
- fwrite( "\n", 1, 1, ofile );
- textNewLine = 1;
- while (*cp == ' ' && cp<textBuffP) cp++;
- if (textBuffP!=cp) {
- cq = textBuff+textIndent*4;
- memmove( cq, cp, textBuffP-cp );
- cq = textBuff;
- for (indent=0; indent<textIndent; indent++) {
- memmove( cq, " ", 4 );
- cq += 4;
- }
- textBuffP = cq + (textBuffP-cp);
- textNewLine = 0;
- for ( cp=textBuff,textLineLength=0; cp<textBuffP; cp++ ) {
- if (*cp == '\010')
- textLineLength--;
- else
- textLineLength++;
- }
- } else {
- textBuffP = textBuff;
- }
- } else if (textBuffP - textBuff >= sizeof textBuff ) {
- fwrite( textBuff, textBuffP-textBuff, 1, ofile );
- textBuffP = textBuff;
- textLineLength = 0;
- }
-}
-void textBreakLine( void )
-{
- if ( !textNewLine ) {
- fwrite( textBuff, textBuffP-textBuff, 1, ofile );
- fwrite( "\n", 1, 1, ofile );
- textNewLine = 1;
- textBuffP = textBuff;
- textLineLength = 0;
- }
-}
-void textSaveLine( char * tmp )
-{
- if (!textNewLine) {
- int len = textBuffP-textBuff;
- memcpy( tmp, textBuff, len );
- tmp[len] = '\0';
- textNewLine = 1;
- textBuffP = textBuff;
- textLineLength = 0;
- } else {
- tmp[0] = '\0';
- }
-}
-void textRestoreLine( char * tmp )
-{
- int len = strlen( tmp );
- if (len > 0) {
- memcpy( textBuffP, tmp, len );
- textBuffP += len;
- textLineLength += len;
- textNewLine = 0;
- }
-}
-void textFinish( void )
-{
- textBreakLine();
- normalFinish();
-}
-void textPutString( char * cp )
-{
- while (*cp)
- textPutChar( *cp++ );
-}
-void textNewParagraph( void )
-{
- textBreakLine();
- if (wordwrap) {
- fwrite( "\n", 1, 1, ofile );
- }
-}
-void textStartLine( int lastlineblank )
-{
-}
-void textBold( char * name )
-{
- char * cp;
- /*textPutChar( '<' );*/
- for ( cp = name; *cp; cp++ ) {
- textPutChar( *cp );
- if (*cp != ' ') {
- textPutChar( '\010' );
- textPutChar( *cp );
- }
- }
- /*textPutString( name );*/
- /*textPutChar( '>' );*/
-}
-void textItalic( char * name )
-{
- char * cp;
- /*textPutChar( '<' );*/
- for ( cp = name; *cp; cp++ ) {
- textPutChar( *cp );
- if (*cp != ' ') {
- textPutChar( '\010' );
- textPutChar( *cp );
- }
- }
- /*textPutString( name );*/
- /*textPutChar( '>' );*/
-}
-void textXref( char * name, char * ref1, char * ref2 )
-{
- textBold( name );
- /*textPutChar( '<' );
- textPutString( name );
- textPutChar( '>' );*/
- if (ref2) {
- textPutString( " (See " );
- textPutString( ref2 );
- textPutString( " for Details)" );
- }
-}
-void textPicture( char * picture, int inLine )
-{
- textPutString( "<<" );
- textPutString( picture );
- textPutString( ">>" );
- if (inLine) {
- textPutString( " " );
- } else {
- textBreakLine();
- fwrite( "\n", 1, 1, ofile );
- }
-}
-void textEndLine( void )
-{
- if ( !wordwrap )
- textBreakLine();
-}
-void textSection( char section, char * title, char * context, char * picture, char * keywords, int newpage )
-{
- int len;
- textBreakLine();
- if (pageCnt > 0 && newpage) {
- fwrite( "\014\n", 1, 2, ofile );
- }
- pageCnt++;
- textBold( title );
- /*textPutString( title );*/
- textBreakLine();
- for ( len = strlen(title); len>0; len-- ) {
- textBold( "=" );
- /*fwrite( "=", 1, 1, ofile );*/
- }
- textBreakLine();
- fwrite( "\n", 1, 1, ofile );
-}
-void textHeader( char * line )
-{
-}
-void textStartIndent( void )
-{
- textBreakLine();
- textIndent++;
-}
-void textEndIndent( void )
-{
- textBreakLine();
- if (textIndent < 0) {
- fprintf( stderr, "%d: textIndent < 0\n", lineNum );
- textIndent = 0;
- } else {
- textIndent--;
- }
-}
-void textListItem( void )
-{
- char num[4];
- textBreakLine();
- textIndent--;
- textAllowLeadingBlanks = 1;
- switch( listType[listLevel] ) {
- case LISTNONE:
- default:
- textPutString( " " );
- break;
- case LISTBULLET:
- textPutString( " o " );
- break;
- case LISTDASH:
- textPutString( " - " );
- break;
- case LISTNUMBER:
- sprintf( num, "%3.3d", listCount[listLevel] );
- textPutString( num );
- textPutChar( ' ' );
- break;
- }
- textAllowLeadingBlanks = 0;
- textIndent++;
-}
-void textPage( void )
-{
- fwrite( "\014\n", 1, 2, ofile );
-}
-dispatchTable textTable = {
- normalStart,
- textFinish,
- textNewParagraph,
- textStartLine,
- textBold,
- textItalic,
- textXref,
- textPicture,
- textEndLine,
- textPutChar,
- textSection,
- textHeader,
- textStartIndent,
- textEndIndent,
- (void*)no_op,
- textStartIndent,
- textListItem,
- textEndIndent,
- textPage
- };
-
-/******************************************************************************
- *
- * XVIEW
- *
- *****************************************************************************/
-
-
-void xviewStart( char * inName, char * outName )
-{
- normalStart( inName, outName );
- lineWidth = 0;
-}
-
-void xviewBold( char * name )
-{
- char * cp;
- textPutChar( '<' );
- textPutString( name );
- textPutChar( '>' );
-}
-void xviewItalic( char * name )
-{
- char * cp;
- textPutChar( '<' );
- textPutString( name );
- textPutChar( '>' );
-}
-void xviewXref( char * name, char * ref1, char * ref2 )
-{
- xviewBold( name );
- if (ref2) {
- textPutString( " (See " );
- textPutString( ref2 );
- textPutString( " for Details)" );
- }
-}
-void xviewSection( char section, char * title, char * context, char * picture, char * keywords, int newpage )
-{
- int indent;
- int len;
-
- static char * stars = "************";
- indent = line[1]-'A'+1;
- textBreakLine();
- if (pageCnt > 0 && newpage) {
- fwrite( "\n", 1, 1, ofile );
- }
- if ( newpage ) {
- pageCnt++;
- textNoIndent = 1;
- textPutChar( ':' );
- textPutString( stars+strlen(stars)-indent );
- textPutChar( '-' );
- textPutString( title );
- textBreakLine();
- if (context) {
- textPutChar( ':' );
- textPutString( context );
- textPutChar( ' ' );
- textBreakLine();
- }
- }
- textNoIndent = 0;
- xviewBold( title );
- textBreakLine();
- for ( len = strlen(title); len>0; len-- )
- fwrite( "=", 1, 1, ofile );
- fwrite( "\n\n", 1, 2, ofile );
-}
-void xviewHeader( char * line )
-{
- char tmp[1024];
- textSaveLine( tmp );
- textNoIndent = 1;
- textPutChar( ':' );
- textPutString( line );
- textPutChar( ' ' );
- textBreakLine();
- textNoIndent = 0;
- textRestoreLine( tmp );
-}
-dispatchTable xviewTable = {
- xviewStart,
- normalFinish,
- textNewParagraph,
- textStartLine,
- xviewBold,
- xviewItalic,
- xviewXref,
- (void*)no_op, /* picture */
- textEndLine,
- textPutChar,
- xviewSection,
- xviewHeader,
- textStartIndent, /* startDisplay */
- textEndIndent, /* endDisplay */
- (void*)no_op,
- textStartIndent, /* listStart */
- textListItem,
- textEndIndent, /* listEnd */
- (void*)no_op
- };
-
-/******************************************************************************
- *
- * HTML
- *
- *****************************************************************************/
-
-char * htmlName;
-char htmlFileName[1024];
-
-struct {
- char * name;
- int index;
- int section;
- } links[500];
-int linkCnt = 0;
-
-void setLink( char * name, int sectionNumber )
-{
- links[linkCnt].name = strdup( name );
- links[linkCnt].section = sectionNumber;
- linkCnt++;
-}
-
-
-void getLinks( int sectionNumber, int * prev, int * next )
-{
- int cur, inx;
-
- *prev = -1;
- *next = -1;
- for ( cur = 0; cur < linkCnt; cur++ ) {
- if ( links[cur].section == sectionNumber ) {
- for (inx = cur-1; inx >= 0; inx-- ) {
- if ( strcmp( links[cur].name, links[inx].name ) == 0 ) {
- *prev = links[inx].section;
- break;
- }
- }
- for (inx = cur+1; inx < linkCnt; inx++ ) {
- if ( strcmp( links[cur].name, links[inx].name ) == 0 ) {
- *next = links[inx].section;
- break;
- }
- }
- }
- }
-
-}
-
-
-struct {
- char * name;
- int sectionNumber;
- int subSection;
- } sections[500];
-int sectionCnt = 0;
-int lastSection = 0;
-int curSection = 0;
-int subSection = 0;
-
-
-void defineSection( char * name, int sectionNumber )
-{
- if (!name) {
- fprintf( stderr, "%d: NULL context string\n", lineNum );
- return;
- }
- sections[sectionCnt].name = strdup( name );
- sections[sectionCnt].sectionNumber = sectionNumber;
- if (lastSection != sectionNumber) {
- subSection = 0;
- }
- sections[sectionCnt].subSection = subSection++;
- sectionCnt++;
-}
-
-
-int lookupSection( char * name, int *subSection )
-{
- int inx;
- if (!name) {
- return -1;
- }
- for (inx=0; inx<sectionCnt; inx++) {
- if (strcmp( name, sections[inx].name ) == 0) {
- *subSection = sections[inx].subSection;
- return sections[inx].sectionNumber;
- }
- }
- fprintf( stderr, "%d: undefined reference to %s\n", lineNum, name );
- return -1;
-}
-
-
-void genHtmlLinks( int sectionNumber, int begin )
-{
- int prev, next;
- int comma = 0;
-
- if (ofile) {
- if (sectionNumber != 0) {
- if (!begin) fprintf( ofile, "\n<p></p><p></p><hr><p>" );
- fprintf( ofile, "<a href=%s.html><b>Return to Contents</b></a>",
- htmlName );
- comma = 1;
- }
- getLinks( sectionNumber, &prev, &next );
- if (prev > 0) {
- if (comma)
- fprintf( ofile, ", " );
- else
- if (!begin) fprintf( ofile, "\n<p></p><p></p><hr><p>" );
- fprintf( ofile, "<a href=%s-%d.html><b>Previous Page</b></a>",
- htmlName, prev );
- comma = 1;
- }
- if (next > 0) {
- if (comma)
- fprintf( ofile, ", " );
- else
- if (!begin) fprintf( ofile, "\n<p></p><p></p><hr><p>" );
- fprintf( ofile, "<a href=%s-%d.html><b>Next Page</b></a>",
- htmlName, next );
- comma = 1;
- }
- if (comma)
- if (begin)
- fprintf( ofile, "</p><hr><p></p>\n" );
- else
- fprintf( ofile, "</p>\n" );
- }
-}
-
-int preHtmlSectionNumber = -1;
-void preHtmlSection( char section, char * title, char * context, char * picture, char * keywords, int newpage )
-{
- if ( !newpage )
- return;
- preHtmlSectionNumber++;
- defineSection( context, preHtmlSectionNumber );
-}
-void preHtmlHeader( char * line )
-{
- if ( line[0] == '*' )
- return;
- defineSection( line, preHtmlSectionNumber );
-}
-void preHtmlThread( char * thread )
-{
- setLink( thread, preHtmlSectionNumber );
-}
-dispatchTable preHtmlTable = {
- (void*)no_op,
- (void*)no_op,
- (void*)no_op,
- (void*)no_op,
- (void*)no_op,
- (void*)no_op,
- (void*)no_op,
- (void*)no_op,
- (void*)no_op,
- (void*)no_op,
- preHtmlSection,
- preHtmlHeader,
- (void*)no_op,
- (void*)no_op,
- preHtmlThread,
- (void*)no_op,
- (void*)no_op,
- (void*)no_op,
- (void*)no_op
- };
-
-dispatchTable htmlTable;
-
-void htmlStart( char * inName, char * outName )
-{
- curMode = &preHtmlTable;
- ifile = openFile( inName );
- process( ifile );
- fclose( ifile );
- curMode = &htmlTable;
-
- ifile = openFile( inName );
- htmlName = outName;
- sprintf( htmlFileName, "%s.html", htmlName );
- ofile = fopen( htmlFileName, "w" );
- if (ofile == NULL) {
- perror( outName );
- exit( 1 );
- }
-}
-void htmlFinish( void )
-{
- genHtmlLinks( curSection, 0 );
-}
-void htmlNewParagraph( void )
-{
- if (wordwrap) {
- if ( listLevel < 0 )
- fprintf( ofile, "<p>" );
- else
- fprintf( ofile, "<br>" );
- } else {
- fprintf( ofile, "\n" );
- }
-}
-void htmlStartLine( int lastBlank )
-{
- if (wordwrap)
- fprintf( ofile, "\n" );
- else
- fprintf( ofile, "\t" );
-}
-void htmlBold( char * name )
-{
- fprintf( ofile, "<b>%s</b>", name );
-}
-void htmlItalic( char * name )
-{
- fprintf( ofile, "<i>%s</i>", name );
-}
-void htmlXref( char * name, char * ref1, char * ref2 )
-{
- int sectionNumber, subSection;
- sectionNumber = lookupSection( ref1, &subSection );
- if (sectionNumber < 0)
- return;
- fprintf( ofile, "<a href=%s", htmlName );
- if (sectionNumber != 0)
- fprintf( ofile, "-%d", sectionNumber );
- fprintf( ofile, ".html" );
- if (subSection != 0)
- fprintf( ofile, "#%d", subSection );
- fprintf( ofile, ">%s</a>", name );
-}
-void htmlPicture( char * name, int inLine )
-{
- fprintf( ofile, "<img src=%s.png>", name );
- if (inLine)
- fprintf( ofile, "\t" );
- else
- fprintf( ofile, "<p></p>\n" );
-}
-void htmlEndLine( void )
-{
- if ( !wordwrap )
- fprintf( ofile, "\n" );
-}
-void htmlPutChar( char ch )
-{
- if ( ch == '<' )
- fprintf( ofile, "&lt;" );
- else if ( ch == '>' )
- fprintf( ofile, "&gt;" );
- else
- fputc( ch, ofile );
-}
-void htmlSection( char section, char * title, char * context, char * picture, char * keywords, int newpage )
-{
- int sectionNumber, subSection;
- if ( newpage ) {
- /*if (line[1] == 'A')*/
- sectionNumber = curSection;
- curSection = lookupSection( context, &subSection );
- if (curSection > 0) {
- genHtmlLinks( sectionNumber, 0 );
- if (ofile)
- fclose( ofile );
- sprintf( htmlFileName, "%s-%d.html", htmlName, curSection );
- ofile = fopen( htmlFileName, "w" );
- if (ofile == NULL) {
- perror( htmlFileName );
- exit(1);
- }
- }
- fprintf( ofile, "<title>%s</title>\n", title );
- genHtmlLinks( curSection, 1 );
- }
- if (picture && picture[0] != '\0')
- fprintf( ofile, "<img src=%s.png> ", picture );
- fprintf( ofile, "<h%d>%s</h%d>\n",
- line[1]-'A'+1, title, line[1]-'A'+1 );
-}
-void htmlHeader( char * line )
-{
- int sectionNumber, subSection;
- if ( line[0] == '*' )
- return;
- sectionNumber = lookupSection( line, &subSection );
- if (sectionNumber < 0)
- return;
- fprintf( ofile, "<A Name=\"%d\">\n", sectionNumber );
-}
-void htmlStartDisplay( void )
-{
- fprintf( ofile, "<p>\n<pre>" );
-}
-void htmlEndDisplay( void )
-{
- fprintf( ofile, "</pre>\n" );
-}
-void htmlListStart( void )
-{
- fprintf( ofile, "<ul>" );
-}
-void htmlListItem( void )
-{
- fprintf( ofile, "<li>" );
-}
-void htmlListEnd( void )
-{
- fprintf( ofile, "</ul>\n" );
-}
-dispatchTable htmlTable = {
- htmlStart,
- htmlFinish,
- htmlNewParagraph,
- htmlStartLine,
- htmlBold,
- htmlItalic,
- htmlXref,
- htmlPicture,
- htmlEndLine,
- htmlPutChar,
- htmlSection,
- htmlHeader,
- htmlStartDisplay,
- htmlEndDisplay,
- (void*)no_op,
- htmlListStart,
- htmlListItem,
- htmlListEnd,
- (void*)no_op
- };
-
-
-/******************************************************************************
- *
- * DEFINES
- *
- *****************************************************************************/
-struct {
- char * name;
- int refCount;
- int lineNum;
- } defs[500];
-int defCnt = 0;
-
-void lookupDef( char * name, int def )
-{
- int inx;
- if (!name) {
- fprintf( stderr, "%d: NULL context string\n", lineNum );
- return;
- }
- for (inx=0;inx<defCnt;inx++) {
- if (strcmp(defs[inx].name,name)==0) {
- if (def) {
- if (defs[inx].lineNum <= 0)
- defs[inx].lineNum = lineNum;
- else
- fprintf( stderr, "%d: %s redefined (previous %d)\n",
- lineNum, name, defs[inx].lineNum );
- } else {
- defs[inx].refCount++;
- }
- return;
- }
- }
- if (defCnt >= 499) {
- if (defCnt == 499) {
- fprintf( stderr, "%d: too many defines\n", lineNum );
- defCnt++;
- }
- return;
- } else {
- defs[defCnt].name = strdup( name );
- defs[defCnt].lineNum = (def?lineNum:-1);
- defs[defCnt].refCount = 0;
- defCnt++;
- }
-}
-
-void defsFinish( void )
-{
- int inx;
- for ( inx=0; inx<defCnt; inx++ )
- fprintf( ofile, "%5d: %s [%d]\n",
- defs[inx].lineNum, defs[inx].name, defs[inx].refCount );
- fclose(ofile);
-}
-void defsSection( char section, char * title, char * context, char * picture, char * keywords, int newpage )
-{
- lookupDef( context, 1 );
-}
-void defsHeader( char * line )
-{
- if ( line[0] == '*' )
- return;
- lookupDef( line, 1 );
-}
-void defsXref( char * name, char * ref1, char * ref2 )
-{
- lookupDef( ref1, 0 );
-}
-
-dispatchTable defsTable = {
- normalStart,
- defsFinish,
- (void*)no_op,
- (void*)no_op,
- (void*)no_op,
- (void*)no_op,
- defsXref,
- (void*)no_op,
- (void*)no_op,
- (void*)no_op,
- defsSection,
- defsHeader,
- (void*)no_op,
- (void*)no_op,
- (void*)no_op,
- (void*)no_op,
- (void*)no_op,
- (void*)no_op,
- (void*)no_op
- };
-
-/******************************************************************************
- *
- * PARSE
- *
- *****************************************************************************/
-
-char * skipChars( char * cp )
-{
- for ( ; *cp; cp++ ) {
- if ( *cp != '$' )
- continue;
- if ( cp[1] == '{' )
- continue;
- break;
- }
- return cp;
-}
-
-static int lastlineblank = 0;
-void putline( char * line )
-{
- int len;
- char * cp, * cq;
- char * name;
- char * mswhelpref;
- char * xvref;
- int sectionNumber;
- int subSection;
-
- len = strlen(line);
- if (len > 0 && line[len-1] == '\n')
- line[--len] = '\0';
- if (len > 0 && line[len-1] == '\r')
- line[--len] = '\0';
- if (len <= 0) {
- if (lastlineblank)
- return;
- curMode->newParagraph();
- lastlineblank = 1;
- return;
- } else {
- curMode->startLine( lastlineblank );
- lastlineblank = 0;
- }
-
-#ifndef LATER
- if (wordwrap) {
- if (line[len-1] != ' ') {
- line[len++] = ' ';
- if (line[len-2] == '.')
- line[len++] = ' ';
- }
- line[len] = '\0';
- }
-#endif
-
- for ( cp=line; *cp; cp++ ) {
- if (*cp == '$') {
- cp++;
- switch (*cp) {
- case '?':
- case '$':
- curMode->putChar( *cp );
- break;
- case '{':
- curMode->putChar( '$' );
- curMode->putChar( '{' );
- break;
- case 'B':
- name = ++cp;
- cp = skipChars( cp );
- if (*cp=='\0')
- break;
- *cp = '\0';
- curMode->doBold( name );
- break;
- case 'I':
- name = ++cp;
- cp = skipChars( cp );
- if (*cp=='\0')
- break;
- *cp = '\0';
- curMode->doItalic( name );
- break;
- case 'X':
- name = ++cp;
- while (*cp && *cp != '|') cp++;
- if (*cp=='\0')
- break;
- *cp++ = '\0';
- mswhelpref = cp;
- while (*cp && *cp != '|' && *cp != '$') cp++;
- if (*cp=='\0')
- break;
- if (*cp == '|') {
- *cp++ = '\0';
- xvref = cp;
- while (*cp && *cp != '$') cp++;
- if (*cp=='\0')
- break;
- for (cq=xvref; cq<cp; cq++)
- if (*cq==',')
- *cq = '|';
- } else
- xvref = NULL;
- *cp = '\0';
- curMode->doXref( name, mswhelpref, xvref );
- break;
- case 'G':
- name = ++cp;
- while (*cp && *cp != '$') cp++;
- if (*cp=='\0')
- break;
- *cp = '\0';
- curMode->doPicture( name, 1 );
- break;
- default:
- fprintf( stderr, "%d Invalid $ command - %c\n", lineNum, *cp );
- break;
- }
- } else {
- if (*cp != '\014')
- curMode->putChar( *cp );
- }
- }
- curMode->endLine();
-}
-
-
-char * conds[100];
-char **condPtr = conds;
-
-void addCond( char * name )
-{
- *condPtr++ = name;
-}
-int lookupCond( char * name )
-{
- char ** p;
- int ret = 1;
- if (strlen(name) == 0)
- return 1;
- if (*name == '!') {
- ret = 0;
- name++;
- }
- for (p=conds; p<condPtr; p++) {
- if (strcmp( *p, name )==0)
- return ret;
- }
- return !ret;
-}
-
-void process( FILE * f )
-{
- char key;
- char * title;
- char * context;
- char * fileName;
- char * keywords;
- char * cp;
- char tmp[1024];
- int indent;
- FILE * newFile;
- int lineNum0;
- int threadCnt;
- int sectionNumber;
- int subSection;
- int valid;
- int sectionNewPage;
- int noSectionNewPage;
-
- lineNum0 = lineNum;
- lineNum = 0;
- while (fgets( line, sizeof line, f ) != NULL) {
- lineNum++;
- line[strlen(line)-1] = '\0';
- if (line[0] == '?' && line[1] == '?') {
- cp = line+2;
- while (isblank(*cp)) cp++;
- if ( strcmp(cp, "else") == 0 )
- valid = !valid;
- else
- valid = lookupCond( cp );
- continue;
- }
- if (!valid) {
- continue;
- }
- if (line[0] == '\014')
- continue;
- if (line[0] != '?') {
- putline( line );
- continue;
- }
- sectionNewPage = 1;
- switch (line[1]) {
- case '#':
- break;
- case '+':
- newFile = openFile( line+2 );
- process( newFile );
- fclose( newFile );
- break;
- case 'a': case 'b': case 'c':
- line[1] += 'A'-'a';
- sectionNewPage = 0;
- case 'A': case 'B': case 'C':
- if ( noSectionNewPage ) {
- sectionNewPage = 0;
- noSectionNewPage = 0;
- }
- context = fileName = keywords = NULL;
- title = cp = line+2;
- while (*cp && *cp != '|') cp++;
- if (*cp) {
- *cp++ = '\0';
- if (*cp!='|')
- context = cp;
- }
- while (*cp && *cp != '|') cp++;
- if (*cp) {
- *cp++ = '\0';
- if (*cp!='|')
- fileName = cp;
- }
- while (*cp && *cp != '|') cp++;
- if (*cp) {
- *cp++ = '\0';
- if (*cp!='|')
- keywords = cp;
- }
- curMode->doSection( line[1], title, context, fileName, keywords, sectionNewPage );
- lastlineblank = 0;
- break;
- case 'H':
- curMode->doHeader( line+2 );
- break;
- case 'W':
- if (line[2] == '+') {
- curMode->doEndDisplay();
- wordwrap = 1;
- } else if (line[2] == '-') {
- curMode->doStartDisplay();
- wordwrap = 0;
- } else {
- fprintf( stderr, "%d: Bad ?W command\n", lineNum);
- exit(1);
- }
- lastlineblank = 0;
- break;
- case 'G':
- curMode->doPicture( line+2, 0 );
- lastlineblank = 0;
- break;
- case 'T':
- curMode->doThread( line+2 );
- break;
- case 'L':
- switch (line[2]) {
- case 'S':
- listLevel++;
- listCount[listLevel] = 0;
- switch (line[3]) {
- case 'o':
- listType[listLevel] = LISTBULLET;
- break;
- case '-':
- listType[listLevel] = LISTDASH;
- break;
- case '1':
- listType[listLevel] = LISTNUMBER;
- break;
- default:
- listType[listLevel] = LISTNONE;
- }
- curMode->doListStart();
- break;
- case 'I':
- if (listLevel<0) {
- fprintf( stderr, "%d: ?LI not in list\n", lineNum );
- break;
- }
- listCount[listLevel]++;
- curMode->doListItem();
- break;
- case 'E':
- listLevel--;
- curMode->doListEnd();
- break;
- }
- lastlineblank = 0;
- break;
- case 'P':
- curMode->page();
- lastlineblank = 0;
- break;
- case 'Q':
- noSectionNewPage = 1;
- break;
- default:
- fprintf( stderr, "%d: Invalid ? command: %c\n", lineNum, line[1] );
- }
- }
- lineNum = lineNum0;
-}
-
-
-/******************************************************************************
- *
- * MAIN
- *
- *****************************************************************************/
-
-int main ( int argc, char * argv[] )
-{
- int inx;
-
- curMode = NULL;
- argv++; argc--;
- while ( argc > 1 && argv[0][0] == '-' ) {
- if ( strcmp( argv[0], "-xv" ) == 0 ) {
- curMode = &xviewTable;
- addCond( "xv" );
- } else if ( strcmp( argv[0], "-mswhelp" ) == 0 ) {
- curMode = &mswhelpTable;
- addCond( "mswhelp" );
- } else if ( strcmp( argv[0], "-mswword" ) == 0 ) {
- curMode = &mswwordTable;
- addCond( "mswword" );
- } else if ( strcmp( argv[0], "-html" ) == 0 ) {
- curMode = &htmlTable;
- addCond( "html" );
- } else if ( strcmp( argv[0], "-def" ) == 0 ) {
- curMode = &defsTable;
- addCond( "def" );
- } else if ( strcmp( argv[0], "-text" ) == 0 ) {
- curMode = &textTable;
- addCond( "text" );
- } else if ( strncmp( argv[0], "-C", 2 ) == 0 ) {
- argv++; argc--;
- addCond( argv[0] );
- } else if ( strncmp( argv[0], "-v", 2 ) == 0 ) {
- verbose = 1;
- } else if ( strncmp( argv[0], "-d", 2 ) == 0 ) {
- argv++; argc--;
- *dirList++ = argv[0];
- } else if ( strncmp( argv[0], "-width", 2 ) == 0 ) {
- argv++; argc--;
- listWidth = lineWidth = atoi(argv[0]);
- if (lineWidth < 10) {
- fprintf( stderr, "Invalid linewidth %s\n", argv[0] );
- exit(1);
- }
- } else if ( strncmp( argv[0], "-mt", 3 ) == 0 ) {
- argv++; argc--;
- MarginTop = atof( *argv );
- } else if ( strncmp( argv[0], "-mb", 3 ) == 0 ) {
- argv++; argc--;
- MarginBottom = atof( *argv );
- } else if ( strncmp( argv[0], "-mr", 3 ) == 0 ) {
- argv++; argc--;
- MarginRight = atof( *argv );
- } else if ( strncmp( argv[0], "-ml", 3 ) == 0 ) {
- argv++; argc--;
- MarginLeft = atof( *argv );
- } else if ( strncmp( argv[0], "-mg", 3 ) == 0 ) {
- argv++; argc--;
- MarginGutter = atof( *argv );
- } else if ( strncmp( argv[0], "-toc", 4 ) == 0 ) {
- toc++;
- } else {
- fprintf( stderr, "unrecognized option: %s\n", argv[0] );
- exit( 1 );
- }
- argv++;argc--;
- }
-
- if (curMode == NULL) {
- fprintf( stderr, "Must spec either -mswhelp or -xv\n" );
- exit(1);
- }
- if ( argc != 2 ) {
- fprintf( stderr, "Usage: prochelp [-mswhelp|-xv] <INF> <OUTF>\n" );
- exit( 1 );
- }
-
- curMode->start( argv[0], argv[1] );
- process( ifile );
- fclose( ifile );
- curMode->finish();
-
- exit(0);
-}
diff --git a/app/help/readpng.c b/app/help/readpng.c
deleted file mode 100644
index 1f1d145..0000000
--- a/app/help/readpng.c
+++ /dev/null
@@ -1,275 +0,0 @@
-/*---------------------------------------------------------------------------
-
- rpng - simple PNG display program readpng.c
-
- ---------------------------------------------------------------------------
-
- Copyright (c) 1998-1999 Greg Roelofs. All rights reserved.
-
- This software is provided "as is," without warranty of any kind,
- express or implied. In no event shall the author or contributors
- be held liable for any damages arising in any way from the use of
- this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute
- it freely, subject to the following restrictions:
-
- 1. Redistributions of source code must retain the above copyright
- notice, disclaimer, and this list of conditions.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, disclaimer, and this list of conditions in the documenta-
- tion and/or other materials provided with the distribution.
- 3. All advertising materials mentioning features or use of this
- software must display the following acknowledgment:
-
- This product includes software developed by Greg Roelofs
- and contributors for the book, "PNG: The Definitive Guide,"
- published by O'Reilly and Associates.
-
- ---------------------------------------------------------------------------*/
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "png.h" /* libpng header; includes zlib.h */
-#include "readpng.h" /* typedefs, common macros, public prototypes */
-
-
-static png_structp png_ptr = NULL;
-static png_infop info_ptr = NULL;
-
-png_uint_32 width, height;
-int bit_depth, color_type;
-uch *image_data = NULL;
-
-
-void readpng_version_info()
-{
- fprintf(stderr, " Compiled with libpng %s; using libpng %s.\n",
- PNG_LIBPNG_VER_STRING, png_libpng_ver);
- fprintf(stderr, " Compiled with zlib %s; using zlib %s.\n",
- ZLIB_VERSION, zlib_version);
-}
-
-
-/* return value = 0 for success, 1 for bad sig, 2 for bad IHDR, 4 for no mem */
-
-int readpng_init(FILE *infile, long *pWidth, long *pHeight)
-{
- uch sig[8];
-
-
- /* first do a quick check that the file really is a PNG image; could
- * have used slightly more general png_sig_cmp() function instead */
-
- fread(sig, 1, 8, infile);
- if (!png_check_sig(sig, 8))
- return 1; /* bad signature */
-
-
- /* could pass pointers to user-defined error handlers instead of NULLs: */
-
- png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
- if (!png_ptr)
- return 4; /* out of memory */
-
- info_ptr = png_create_info_struct(png_ptr);
- if (!info_ptr) {
- png_destroy_read_struct(&png_ptr, NULL, NULL);
- return 4; /* out of memory */
- }
-
-
- /* we could create a second info struct here (end_info), but it's only
- * useful if we want to keep pre- and post-IDAT chunk info separated
- * (mainly for PNG-aware image editors and converters) */
-
-
- /* setjmp() must be called in every function that calls a PNG-reading
- * libpng function */
-
- if (setjmp(png_ptr->jmpbuf)) {
- png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
- return 2;
- }
-
-
- png_init_io(png_ptr, infile);
- png_set_sig_bytes(png_ptr, 8); /* we already read the 8 signature bytes */
-
- png_read_info(png_ptr, info_ptr); /* read all PNG info up to image data */
-
-
- /* alternatively, could make separate calls to png_get_image_width(),
- * etc., but want bit_depth and color_type for later [don't care about
- * compression_type and filter_type => NULLs] */
-
- png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, &color_type,
- NULL, NULL, NULL);
- *pWidth = width;
- *pHeight = height;
-
-
- /* OK, that's all we need for now; return happy */
-
- return 0;
-}
-
-
-
-
-/* returns 0 if succeeds, 1 if fails due to no bKGD chunk, 2 if libpng error;
- * scales values to 8-bit if necessary */
-
-int readpng_get_bgcolor(uch *red, uch *green, uch *blue)
-{
- png_color_16p pBackground;
-
-
- /* setjmp() must be called in every function that calls a PNG-reading
- * libpng function */
-
- if (setjmp(png_ptr->jmpbuf)) {
- png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
- return 2;
- }
-
-
- if (!png_get_valid(png_ptr, info_ptr, PNG_INFO_bKGD))
- return 1;
-
- /* it is not obvious from the libpng documentation, but this function
- * takes a pointer to a pointer, and it always returns valid red, green
- * and blue values, regardless of color_type: */
-
- png_get_bKGD(png_ptr, info_ptr, &pBackground);
-
-
- /* however, it always returns the raw bKGD data, regardless of any
- * bit-depth transformations, so check depth and adjust if necessary */
-
- if (bit_depth == 16) {
- *red = pBackground->red >> 8;
- *green = pBackground->green >> 8;
- *blue = pBackground->blue >> 8;
- } else if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) {
- if (bit_depth == 1)
- *red = *green = *blue = pBackground->gray? 255 : 0;
- else if (bit_depth == 2)
- *red = *green = *blue = (255/3) * pBackground->gray;
- else /* bit_depth == 4 */
- *red = *green = *blue = (255/15) * pBackground->gray;
- } else {
- *red = (uch)pBackground->red;
- *green = (uch)pBackground->green;
- *blue = (uch)pBackground->blue;
- }
-
- return 0;
-}
-
-
-
-
-/* display_exponent == LUT_exponent * CRT_exponent */
-
-uch *readpng_get_image(double display_exponent, int *pChannels, ulg *pRowbytes)
-{
- double gamma;
- png_uint_32 i, rowbytes;
- png_bytepp row_pointers = NULL;
-
-
- /* setjmp() must be called in every function that calls a PNG-reading
- * libpng function */
-
- if (setjmp(png_ptr->jmpbuf)) {
- png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
- return NULL;
- }
-
-
- /* expand palette images to RGB, low-bit-depth grayscale images to 8 bits,
- * transparency chunks to full alpha channel; strip 16-bit-per-sample
- * images to 8 bits per sample; and convert grayscale to RGB[A] */
-
- if (color_type == PNG_COLOR_TYPE_PALETTE)
- png_set_expand(png_ptr);
- if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8)
- png_set_expand(png_ptr);
- if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS))
- png_set_expand(png_ptr);
- if (bit_depth == 16)
- png_set_strip_16(png_ptr);
- if (color_type == PNG_COLOR_TYPE_GRAY ||
- color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
- png_set_gray_to_rgb(png_ptr);
-
-
- /* unlike the example in the libpng documentation, we have *no* idea where
- * this file may have come from--so if it doesn't have a file gamma, don't
- * do any correction ("do no harm") */
-
- if (png_get_gAMA(png_ptr, info_ptr, &gamma))
- png_set_gamma(png_ptr, display_exponent, gamma);
-
-
- /* all transformations have been registered; now update info_ptr data,
- * get rowbytes and channels, and allocate image memory */
-
- png_read_update_info(png_ptr, info_ptr);
-
- *pRowbytes = rowbytes = png_get_rowbytes(png_ptr, info_ptr);
- *pChannels = (int)png_get_channels(png_ptr, info_ptr);
-
- if ((image_data = (uch *)malloc(rowbytes*height)) == NULL) {
- png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
- return NULL;
- }
- if ((row_pointers = (png_bytepp)malloc(height*sizeof(png_bytep))) == NULL) {
- png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
- free(image_data);
- image_data = NULL;
- return NULL;
- }
-
- Trace((stderr, "readpng_get_image: rowbytes = %ld, height = %ld\n", rowbytes, height));
-
-
- /* set the individual row_pointers to point at the correct offsets */
-
- for (i = 0; i < height; ++i)
- row_pointers[height-1-i] = image_data + i*rowbytes;
-
-
- /* now we can go ahead and just read the whole image */
-
- png_read_image(png_ptr, row_pointers);
-
-
- /* and we're done! (png_read_end() can be omitted if no processing of
- * post-IDAT text/time/etc. is desired) */
-
- free(row_pointers);
- row_pointers = NULL;
-
- png_read_end(png_ptr, NULL);
-
- return image_data;
-}
-
-
-void readpng_cleanup(int free_image_data)
-{
- if (free_image_data && image_data) {
- free(image_data);
- image_data = NULL;
- }
-
- if (png_ptr && info_ptr) {
- png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
- png_ptr = NULL;
- info_ptr = NULL;
- }
-}
diff --git a/app/help/readpng.h b/app/help/readpng.h
deleted file mode 100644
index 31780c5..0000000
--- a/app/help/readpng.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*---------------------------------------------------------------------------
-
- rpng - simple PNG display program readpng.h
-
- ---------------------------------------------------------------------------
-
- Copyright (c) 1998-1999 Greg Roelofs. All rights reserved.
-
- This software is provided "as is," without warranty of any kind,
- express or implied. In no event shall the author or contributors
- be held liable for any damages arising in any way from the use of
- this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute
- it freely, subject to the following restrictions:
-
- 1. Redistributions of source code must retain the above copyright
- notice, disclaimer, and this list of conditions.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, disclaimer, and this list of conditions in the documenta-
- tion and/or other materials provided with the distribution.
- 3. All advertising materials mentioning features or use of this
- software must display the following acknowledgment:
-
- This product includes software developed by Greg Roelofs
- and contributors for the book, "PNG: The Definitive Guide,"
- published by O'Reilly and Associates.
-
- ---------------------------------------------------------------------------*/
-
-#ifndef TRUE
-# define TRUE 1
-# define FALSE 0
-#endif
-
-#ifndef MAX
-# define MAX(a,b) ((a) > (b)? (a) : (b))
-# define MIN(a,b) ((a) < (b)? (a) : (b))
-#endif
-
-#ifdef DEBUG
-# define Trace(x) {fprintf x ; fflush(stderr); fflush(stdout);}
-#else
-# define Trace(x) ;
-#endif
-
-typedef unsigned char uch;
-typedef unsigned short ush;
-typedef unsigned long ulg;
-
-
-/* prototypes for public functions in readpng.c */
-
-void readpng_version_info(void);
-
-int readpng_init(FILE *infile, long *pWidth, long *pHeight);
-
-int readpng_get_bgcolor(uch *bg_red, uch *bg_green, uch *bg_blue);
-
-uch *readpng_get_image(double display_exponent, int *pChannels,
- ulg *pRowbytes);
-
-void readpng_cleanup(int free_image_data);
diff --git a/app/help/xtrkcad.info b/app/help/xtrkcad.info
index 955bab7..6350f82 100644
--- a/app/help/xtrkcad.info
+++ b/app/help/xtrkcad.info
@@ -54,6 +54,8 @@ Set Curve Track creation mode
:cmdCurveTangent
Create curved track from tangent
:cmdCustmgm
+Create Bezier Track
+:cmdBezCurve
Manipulate Custom designer entries
:cmdCut
Moves selected objects to clipboard
@@ -62,7 +64,7 @@ Delete objects
:cmdDemo
Playback demos
:cmdDescribe
-Describe objects
+Properties
:cmdDeselectAll
Deselect all selected objects
:cmdDisplay
@@ -137,6 +139,8 @@ Adjust snap grid
Enable snap grid
:cmdGridShow
Show snap grid
+:cmdMapShow
+Show/Hide Map Window
:cmdGroup
Create a structure from a Group of objects
:cmdHandLaidTurnout
@@ -483,6 +487,8 @@ Label elements on layout
Color tracks or other objects by layer
:display-tworailscale
Drawing scale when to draw tracks with 2 rails
+:display-zoom-corner
+Zoom to keep lower corner in view or not
:display-tiedraw
How to draw track ties
:display-mingridspacing
@@ -648,7 +654,7 @@ Choose english (inches) or metric (centimeters)
:pref-dstfmt
How to display length measurements
:pref-anglesystem
-0 is up or to the right
+0� is up or to the right
:pref-minlength
Do not create tracks to be shorter than this value
:pref-connectdistance
diff --git a/app/help/xtrkcad.tip b/app/help/xtrkcad.tip
index 5887dba..8deffc6 100644
--- a/app/help/xtrkcad.tip
+++ b/app/help/xtrkcad.tip
@@ -31,6 +31,9 @@ Then drag on one of the Red arrows to create the final shape of the curve.\
\
You can click on the small button to the left of the Curve command button to change the method.
+When creating a straight or a curved track by dragging from the 1st End Point, you can snap the new track to an existing open end point by holding down Shift while you click.\
+The new track will be joined to the old when you create it.
+
Track Circles provide a quick way to see what arrangement of tracks will fit in your layout spaces. Create Circles with your typical radius and place them in corners and other locations where your main-line will make changes of direction. This will give you an overall idea of how your layout will look.\
\
You can create Circles by:\
diff --git a/app/help/xvfontsel.hlpsrc b/app/help/xvfontsel.hlpsrc
deleted file mode 100644
index 7abab84..0000000
--- a/app/help/xvfontsel.hlpsrc
+++ /dev/null
@@ -1,25 +0,0 @@
-The 'Font Select' window lets you choose the font used by your application. The window contains:
-
-?HfontSelList
-A list of available fonts.
-
-?HfontSelWeight
-A Radio button to choose 'Medium' or 'Bold' weight.
-
-?HfontSelSlant
-A Radio button to choose 'Regular' or 'Italic' slant.
-
-?HfontSelOk
-Ok button updates the current font and closes the 'Font Select' window.
-
-?HfontSelCancel
-Cancel button closes the window without updating the current font.
-
-?HfontSelSample
-A canvas which show a sample of the font.
-
-Fonts which do not support the specified weight or slant cannot be selected.
-
-?HfontSelLoading
-Note: loading a font can take a noticeable amount of time, especially if you do not have a FPU.
-
diff --git a/app/help/xvprintsel.hlpsrc b/app/help/xvprintsel.hlpsrc
deleted file mode 100644
index a999c67..0000000
--- a/app/help/xvprintsel.hlpsrc
+++ /dev/null
@@ -1,73 +0,0 @@
-The $BPrinter Setup$ dialog allows you configure the application's use of the printer.
-
-The $BPrinter Setup$ window contains:
-
-?LSo
-?HprintSetupPrinter
-?LI
-$BPrinter$ - a list to select a particular printer. The entries on this list are defined by $Bprinter$ lines in the $B~/.xtrkcad/xtrkcad.rc$ file.
-The first entry, 'File', causes printouts to be sent to a file. You will be prompted for a file name when doing a print.
-
-?HprintSetupPaper
-?LI
-$BPaper Size$ - a list of various North American and European paper sizes.
-
-?HprintSetupMargin
-?LI
-$BMargins$ - non-printable margins for particular printers.
-You can adjust these entries or select a printer type from the list.
-To add margins for a new printer, enter the printer's name and then enter the margin for each edge.
-You can use $BPrint Test Page$ to determine the margins for your printer.
-The $BDelete$ button removes a printer from the margin list.
-
-?HprintSetupFormat
-?LI
-$BFormat$ - a Radio button to select either Landscape or Portrait format.
-
-?HFont Alias Map
-?LI
-$BX Font$ and $BPS Font$ - specifies the mapping between the display's X Font and the corresponding PostScript Font.
-You can change the PostScript font for a specifed X Font by typing the new font name in the $BPS Font$ field.
-The $Bfont alias$ map will be printed on the $BPrint Test Page$.
-
-?HprintSetupFontSizeFactor
-?LI
-$BFactor$ - adjusts the scaling between X Font and PostScript Font sizes. Due to differences between the two font systems, text size may be of slightly different between the display and printer. This option allows you to adjust the font size. Normally only a small adjustment is required, (like 0.950).
-
-?HprintSetupOk
-?LI
-$BOk button$ - updates the data and ends the dialog.
-
-?HprintSetupCancel
-?LI
-$BCancel button$ - ends the dialog without update.
-
-?HprintSetupTest
-?LI
-$BPrint Test Page button$ - prints a test page you can use to determine the printer margins.
-?LE
-
-The formats of the $Bprinter$ entries are:
-?W-
-$BWPRINTER.$$Iprinter-num$$B: $$Iprinter-name$$B=$$Icommand$
-?W+
-where:
-?LS-
-?LI
-$Iprinter-num$ is the next value in a sequential list (starting at $B1$, $B0$ is reserved for $BFILE$). $Bprinter.1$ is predefined as $Blp=lpr -P%s$.
-?LI
-$Iprinter-name$ is the name of the printer as it appears in the $BPrinter$ selection list.
-?LI
-$Icommand$ is the command to invoke where $B%s$ will be replaced by the $Iprinter-name$.
-?LE
-
-To add a new $BPrinter$, select the next value for $Iprinter-num$ and add the $Bprinter$ line with the name and print command.
-
-?HprintFontAlias
-Printing generates PostScript data which is sent to the specified printer (or File).
-The names of fonts differs between the X Window System and PostScript and there is no formula to convert them.
-The printing system uses a $Bfont alias$ map to convert from X font names to PostScript font names.
-Font aliases for the common PostScript fonts are predefined but you must supply an alias for unknown fonts.
-The 'Font Alias' window will be shown when ever you are printing an unknown font.
-You will be asked to supply a PostScript font name for a X font.
-You can change the $Bfont alias$ mapping by using the $BX Font$ and $BPS Font$ entries on the $BPrinter Setup$ dialog.
diff --git a/app/i18n/ChangeLog b/app/i18n/ChangeLog
deleted file mode 100644
index 8ca1f9a..0000000
--- a/app/i18n/ChangeLog
+++ /dev/null
@@ -1,22 +0,0 @@
-Oct 14, 2009
- ENH: Daniel Spagnol
- pt_BR.po CMakeLists.txt: partially completed Brazilian Portuguese
- translation (57%)
- CMakeLists.txt: text context support added
- FIX: Daniel Spagnol
- CMakeLists.txt: macosx ".po" file creation failed
-
-May 8, 2009
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- de_DE.pot CMakeLists.txt: partially completed German translation
-
-Jan 22, 2008
- ENH: Mikko Nissinen <mni77@users.sourceforge.net>
- stripmsg.c: New utility to strip translatable strings from
- various XTrkCad file formats into C-style strings for xgettext.
- CMakeLists.txt: Added gettext support for demos and tips.
-
-Jan 21, 2008
- FIX: Mikko Nissinen <mni77@users.sourceforge.net>
- CMakeLists.txt: xgettext parameter order fixed. Only 'N_' keyword
- was used and '_' was ignored.
diff --git a/app/i18n/de_DE.po b/app/i18n/de_DE.po
index 7f03e3a..0347f93 100644
--- a/app/i18n/de_DE.po
+++ b/app/i18n/de_DE.po
@@ -1,12154 +1,13237 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: xtrkcad 4.1.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-06 12:30+0100\n"
-"PO-Revision-Date: 2016-08-25 10:38+0200\n"
-"Last-Translator: \n"
-"Language-Team: German <m_fischer@users.sourceforge.net>\n"
-"Language: de\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.4\n"
-
-#: ../bin/cblock.c:98 ../bin/cblock.c:133 ../bin/compound.c:520
-#: ../bin/cswitchmotor.c:78 ../bin/cswitchmotor.c:138 ../bin/dlayer.c:319
-msgid "Name"
-msgstr "Name"
-
-#: ../bin/cblock.c:99 ../bin/cblock.c:134
-msgid "Script"
-msgstr "Befehlsskript"
-
-#: ../bin/cblock.c:135 ../bin/cdraw.c:194 ../bin/ctodesgn.c:129
-#: ../bin/ctodesgn.c:130 ../bin/ctodesgn.c:131 ../bin/ctodesgn.c:180
-#: ../bin/ctodesgn.c:183 ../bin/ctodesgn.c:203 ../bin/ctodesgn.c:208
-#: ../bin/ctodesgn.c:241 ../bin/ctodesgn.c:246 ../bin/ctodesgn.c:278
-#: ../bin/ctodesgn.c:281 ../bin/ctodesgn.c:284 ../bin/ctodesgn.c:319
-#: ../bin/ctodesgn.c:321 ../bin/ctodesgn.c:339 ../bin/ctodesgn.c:341
-#: ../bin/ctodesgn.c:360 ../bin/ctodesgn.c:362 ../bin/ctodesgn.c:381
-#: ../bin/ctodesgn.c:401 ../bin/ctodesgn.c:421 ../bin/ctodesgn.c:441
-#: ../bin/ctodesgn.c:479 ../bin/ctodesgn.c:498 ../bin/ctodesgn.c:499
-#: ../bin/ctrain.c:171 ../bin/tcurve.c:350 ../bin/tstraigh.c:81
-msgid "Length"
-msgstr "Länge"
-
-#: ../bin/cblock.c:136 ../bin/cdraw.c:190 ../bin/compound.c:512
-#: ../bin/tcurve.c:342 ../bin/tease.c:498 ../bin/tstraigh.c:77
-msgid "End Pt 1: X"
-msgstr "Endpunkt 1: X"
-
-#: ../bin/cblock.c:137 ../bin/cdraw.c:191 ../bin/compound.c:514
-#: ../bin/tcurve.c:344 ../bin/tease.c:500 ../bin/tstraigh.c:79
-msgid "End Pt 2: X"
-msgstr "Endpunkt 2: X"
-
-#: ../bin/cblock.c:162
-msgid "Change Block"
-msgstr "Gleisabschnitt ändern"
-
-#: ../bin/cblock.c:207 ../bin/compound.c:689 ../bin/cswitchmotor.c:220
-#, c-format
-msgid "(%d): Layer=%d %s"
-msgstr "(%d): Ebene=%d %s"
-
-#: ../bin/cblock.c:227 ../bin/cblock.c:641
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:20
-msgid "Block"
-msgstr "Block"
-
-#: ../bin/cblock.c:442 ../bin/cblock.c:461 ../bin/cblock.c:469
-#: ../bin/cblock.c:525 ../bin/cdraw.c:78 ../bin/cdraw.c:870 ../bin/cgroup.c:962
-#: ../bin/cgroup.c:1009 ../bin/cgroup.c:1024 ../bin/cgroup.c:1063
-#: ../bin/cgroup.c:1089 ../bin/cgroup.c:1148 ../bin/cgroup.c:1592
-#: ../bin/cnote.c:96 ../bin/cprint.c:520 ../bin/cprint.c:945 ../bin/cpull.c:499
-#: ../bin/cpull.c:514 ../bin/cpull.c:516 ../bin/cpull.c:518
-#: ../bin/cselect.c:670 ../bin/cselect.c:767 ../bin/cselect.c:1243
-#: ../bin/csnap.c:578 ../bin/csnap.c:711 ../bin/cstruct.c:763
-#: ../bin/cstruct.c:772 ../bin/cstruct.c:874 ../bin/cswitchmotor.c:355
-#: ../bin/cswitchmotor.c:381 ../bin/ctext.c:163 ../bin/ctodesgn.c:150
-#: ../bin/ctodesgn.c:1040 ../bin/ctodesgn.c:1090 ../bin/ctodesgn.c:1203
-#: ../bin/ctodesgn.c:1505 ../bin/ctrain.c:2561 ../bin/cturnout.c:2381
-#: ../bin/cturnout.c:2508 ../bin/cundo.c:152 ../bin/cundo.c:156
-#: ../bin/dbitmap.c:65 ../bin/dbitmap.c:122 ../bin/dbitmap.c:200
-#: ../bin/dbitmap.c:235 ../bin/dcar.c:3528 ../bin/dcar.c:3712
-#: ../bin/dcar.c:3716 ../bin/dcar.c:3720 ../bin/dcar.c:3725 ../bin/dcar.c:4039
-#: ../bin/dcar.c:4150 ../bin/dcar.c:4528 ../bin/dcmpnd.c:387
-#: ../bin/dcmpnd.c:398 ../bin/dcmpnd.c:530 ../bin/dcustmgm.c:186
-#: ../bin/dcustmgm.c:192 ../bin/dcustmgm.c:201 ../bin/dcustmgm.c:217
-#: ../bin/dease.c:220 ../bin/dlayer.c:200 ../bin/dlayer.c:217
-#: ../bin/dlayer.c:657 ../bin/dlayer.c:662 ../bin/doption.c:155
-#: ../bin/doption.c:274 ../bin/doption.c:354 ../bin/doption.c:505
-#: ../bin/doption.c:517 ../bin/doption.c:583 ../bin/dprmfile.c:91
-#: ../bin/dprmfile.c:105 ../bin/dprmfile.c:118 ../bin/dprmfile.c:160
-#: ../bin/dprmfile.c:438 ../bin/draw.c:2234 ../bin/fileio.c:609
-#: ../bin/fileio.c:678 ../bin/fileio.c:789 ../bin/fileio.c:791
-#: ../bin/fileio.c:796 ../bin/fileio.c:958 ../bin/macro.c:934
-#: ../bin/macro.c:938 ../bin/macro.c:1015 ../bin/macro.c:1121
-#: ../bin/macro.c:1349 ../bin/macro.c:1365 ../bin/misc2.c:411
-#: ../bin/param.c:1820 ../bin/param.c:1944 ../bin/param.c:1947
-#: ../bin/param.c:2069 ../bin/param.c:2075 ../bin/smalldlg.c:91
-#: ../bin/smalldlg.c:221 ../bin/tease.c:1039 ../bin/track.c:1311
-#: ../bin/misc.c:304 ../bin/misc.c:354 ../bin/misc.c:1712 ../bin/misc.c:1846
-#: ../bin/misc.c:1910 ../bin/misc.c:2476 ../bin/misc.c:2486 ../bin/misc.c:2506
-#: ../bin/misc.c:2509 ../wlib/gtklib/wpref.c:126
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:523
-msgid "Ok"
-msgstr "Ok"
-
-#: ../bin/cblock.c:469
-msgid "Block is discontigious!"
-msgstr "Der Block ist nicht zusammenhängend!"
-
-#: ../bin/cblock.c:474 ../bin/cblock.c:525 ../bin/cblock.c:642
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:17
-msgid "Create Block"
-msgstr "Gleisabschnitt erstellen"
-
-#: ../bin/cblock.c:507
-msgid "Non track object skipped!"
-msgstr "Objekt ist kein Gleis, übersprungen!"
-
-#: ../bin/cblock.c:511
-msgid "Selected Track is already in a block, skipped!"
-msgstr "Übersprungen, da das ausgewählte Gleis bereits in einem Block ist. "
-
-#: ../bin/cblock.c:554 ../bin/cblock.c:586
-msgid "Select a track"
-msgstr "Gleis auswählen"
-
-#: ../bin/cblock.c:563 ../bin/cblock.c:594
-msgid "Not a block!"
-msgstr "Kein Block!"
-
-#: ../bin/cblock.c:599
-#, c-format
-msgid "Really delete block %s?"
-msgstr "Soll der Block %s wirklich gelöscht werden?"
-
-#: ../bin/cblock.c:599 ../bin/cdraw.c:82 ../bin/cgroup.c:968
-#: ../bin/cswitchmotor.c:470 ../bin/ctodesgn.c:1513 ../bin/ctodesgn.c:1992
-#: ../bin/ctrain.c:2056 ../bin/dbitmap.c:205 ../bin/dcar.c:3664
-#: ../bin/dcar.c:3742 ../bin/dcar.c:3826 ../bin/dcar.c:3845 ../bin/dcar.c:4175
-#: ../bin/dcar.c:4590 ../bin/dcustmgm.c:136 ../bin/track.c:1313
-#: ../bin/track.c:1410 ../bin/track.c:1424 ../bin/misc.c:1053
-#: ../bin/misc.c:1058 ../bin/misc.c:1123
-msgid "Yes"
-msgstr "Ja"
-
-#: ../bin/cblock.c:599 ../bin/cdraw.c:82 ../bin/cgroup.c:968
-#: ../bin/cswitchmotor.c:470 ../bin/ctodesgn.c:1513 ../bin/ctodesgn.c:1992
-#: ../bin/ctrain.c:2056 ../bin/dcar.c:3664 ../bin/dcar.c:3742
-#: ../bin/dcar.c:3826 ../bin/dcar.c:3845 ../bin/dcar.c:4175 ../bin/dcar.c:4590
-#: ../bin/dcustmgm.c:136 ../bin/track.c:1313 ../bin/track.c:1410
-#: ../bin/track.c:1424 ../bin/misc.c:1053 ../bin/misc.c:1058 ../bin/misc.c:1123
-msgid "No"
-msgstr "Nein"
-
-#: ../bin/cblock.c:600 ../bin/cblock.c:644
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:18
-msgid "Delete Block"
-msgstr "Gleisabschnitt löschen"
-
-#: ../bin/cblock.c:641
-msgid "Blocks"
-msgstr "Gleisabschnitte"
-
-#: ../bin/cblock.c:643 ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:19
-msgid "Edit Block"
-msgstr "Gleisabschnitt bearbeiten"
-
-#: ../bin/ccurve.c:102
-msgid "Drag from End-Point in direction of curve"
-msgstr "Vom Endpunkt in Richtung der Kurve ziehen"
-
-#: ../bin/ccurve.c:105 ../bin/ccurve.c:138
-msgid "Drag from End-Point to Center"
-msgstr "Vom Endpunkt zum Mittelpunkt ziehen"
-
-#: ../bin/ccurve.c:108 ../bin/ccurve.c:138
-msgid "Drag from Center to End-Point"
-msgstr "Vom Mittelpunkt zum Endpunkt ziehen"
-
-#: ../bin/ccurve.c:111 ../bin/ccurve.c:144
-msgid "Drag to other end of chord"
-msgstr "Zum anderen Ende der Sehne ziehen"
-
-#: ../bin/ccurve.c:128 ../bin/chndldto.c:91
-msgid "Drag to set angle"
-msgstr "Durch Ziehen den Winkel festlegen"
-
-#: ../bin/ccurve.c:156
-#, c-format
-msgid "Angle=%0.3f"
-msgstr "Winkel=%0.3f"
-
-#: ../bin/ccurve.c:160 ../bin/ccurve.c:166
-#, c-format
-msgid "Radius=%s Angle=%0.3f"
-msgstr "Radius=%s Winkel=%0.3f"
-
-#: ../bin/ccurve.c:172
-#, c-format
-msgid "Length=%s Angle=%0.3f"
-msgstr "Länge=%s Winkel=%0.3f"
-
-#: ../bin/ccurve.c:202 ../bin/ccurve.c:303 ../bin/drawgeom.c:374
-msgid "Drag on Red arrows to adjust curve"
-msgstr "An den roten Pfeilen ziehen, um die Kurve anzupassen"
-
-#: ../bin/ccurve.c:259 ../bin/cjoin.c:208 ../bin/cmodify.c:259
-#: ../bin/cturntbl.c:564
-#, c-format
-msgid "Straight Track: Length=%s Angle=%0.3f"
-msgstr "Gleisgerade: Länge=%s Winkel=%0.3f"
-
-#: ../bin/ccurve.c:264 ../bin/cmodify.c:264 ../bin/drawgeom.c:297
-#: ../wlib/gtklib/gtkhelp.c:519
-msgid "Back"
-msgstr "Zurück"
-
-#: ../bin/ccurve.c:282
-#, c-format
-msgid "Curved Track: Radius=%s Angle=%0.3f Length=%s"
-msgstr "Gleisbogen: Radius=%s Winkel=%0.3f Länge=%s"
-
-#: ../bin/ccurve.c:314 ../bin/cstraigh.c:83
-msgid "Create Straight Track"
-msgstr "Erstelle gerades Gleis"
-
-#: ../bin/ccurve.c:322
-msgid "Create Curved Track"
-msgstr "Erstelle Gleisbogen"
-
-#: ../bin/ccurve.c:388
-msgid "Elevation Difference"
-msgstr "Höhenunterschied"
-
-#: ../bin/ccurve.c:389 ../bin/cdraw.c:193 ../bin/ctodesgn.c:459
-#: ../bin/tcurve.c:347
-msgid "Radius"
-msgstr "Radius"
-
-#: ../bin/ccurve.c:390 ../bin/tcurve.c:348
-msgid "Turns"
-msgstr "Windungen"
-
-#: ../bin/ccurve.c:391
-msgid "Angular Separation"
-msgstr "Winkelabstand"
-
-#: ../bin/ccurve.c:392 ../bin/celev.c:45 ../bin/compound.c:516
-#: ../bin/tcurve.c:354 ../bin/tease.c:508 ../bin/tstraigh.c:83
-msgid "Grade"
-msgstr "Steigung"
-
-#: ../bin/ccurve.c:393
-msgid "Vertical Separation"
-msgstr "Vertikaler Abstand"
-
-#: ../bin/ccurve.c:395
-msgid "Total Length"
-msgstr "Gesamtlänge"
-
-#: ../bin/ccurve.c:471
-#, c-format
-msgid "Total Length %s"
-msgstr "Gesamtlänge %s"
-
-#: ../bin/ccurve.c:510 ../bin/ccurve.c:731 ../bin/tcurve.c:777
-msgid "Helix"
-msgstr "Gleiswendel"
-
-#: ../bin/ccurve.c:524
-msgid "Circle Radius"
-msgstr "Kreisradius"
-
-#: ../bin/ccurve.c:529
-msgid "Click on Circle Edge"
-msgstr "Auf den Rand des Kreis klicken"
-
-#: ../bin/ccurve.c:533
-msgid "Click on Circle Center"
-msgstr "Auf den Mittelpunkt des Kreises klicken"
-
-#: ../bin/ccurve.c:564
-msgid "Drag to Center"
-msgstr "Zum Mittelpunkt ziehen"
-
-#: ../bin/ccurve.c:568
-msgid "Drag to Edge"
-msgstr "Zum Rand ziehen"
-
-#: ../bin/ccurve.c:589 ../bin/ccurve.c:593
-#, c-format
-msgid "Radius=%s"
-msgstr "Radius=%s"
-
-#: ../bin/ccurve.c:608
-msgid "Create Helix Track"
-msgstr "Erstelle Gleiswendel"
-
-#: ../bin/ccurve.c:615
-msgid "Create Circle Track"
-msgstr "Erstelle Gleiskreis"
-
-#: ../bin/ccurve.c:671
-msgid "Place circle center"
-msgstr "Setze Kreismittelpunkt"
-
-#: ../bin/ccurve.c:676 ../bin/drawgeom.c:211
-msgid "Drag to set radius"
-msgstr "Radius durch Ziehen festlegen"
-
-#: ../bin/ccurve.c:686
-msgid "Place circle"
-msgstr "Platziere Kreis"
-
-#: ../bin/ccurve.c:711
-msgid "Curve Track"
-msgstr "Gleisbogen"
-
-#: ../bin/ccurve.c:711
-msgid "Curve Tracks"
-msgstr "Gleisbögen"
-
-#: ../bin/ccurve.c:712
-msgid "Curve from End-Pt"
-msgstr "Bogen aus Endpunkten"
-
-#: ../bin/ccurve.c:713
-msgid "Curve from Tangent"
-msgstr "Bogen an Tangente"
-
-#: ../bin/ccurve.c:714
-msgid "Curve from Center"
-msgstr "Bogen um Mittelpunkt"
-
-#: ../bin/ccurve.c:715
-msgid "Curve from Chord"
-msgstr "Bogen aus Sehne"
-
-#: ../bin/ccurve.c:718 ../bin/tcurve.c:617
-msgid "Circle Track"
-msgstr "Gleiskreis"
-
-#: ../bin/ccurve.c:718
-msgid "Circle Tracks"
-msgstr "Gleiskreise"
-
-#: ../bin/ccurve.c:719
-msgid "Fixed Radius Circle"
-msgstr "Kreis mit festem Radius"
-
-#: ../bin/ccurve.c:720
-msgid "Circle from Tangent"
-msgstr "Kreis an Tangente"
-
-#: ../bin/ccurve.c:721
-msgid "Circle from Center"
-msgstr "Kreis um Mittelpunkt"
-
-#: ../bin/cdraw.c:78
-msgid "Font Size must be > 0"
-msgstr "Schriftgröße muss größer als 0 sein"
-
-#: ../bin/cdraw.c:192 ../bin/tcurve.c:346
-msgid "Center: X"
-msgstr "Mittelpunkt: X"
-
-#: ../bin/cdraw.c:195 ../bin/cdraw.c:205 ../bin/compound.c:518
-#: ../bin/cprint.c:134 ../bin/ctodesgn.c:136 ../bin/ctodesgn.c:138
-#: ../bin/ctodesgn.c:181 ../bin/ctodesgn.c:204 ../bin/ctodesgn.c:206
-#: ../bin/ctodesgn.c:242 ../bin/ctodesgn.c:245 ../bin/ctodesgn.c:279
-#: ../bin/ctodesgn.c:283 ../bin/ctodesgn.c:320 ../bin/ctodesgn.c:340
-#: ../bin/ctodesgn.c:361 ../bin/ctodesgn.c:460 ../bin/ctrain.c:170
-#: ../bin/tease.c:503 ../bin/tstraigh.c:82
-msgid "Angle"
-msgstr "Winkel"
-
-#: ../bin/cdraw.c:196 ../bin/tcurve.c:352
-msgid "CCW Angle"
-msgstr "Winkel (gegen Uhrzeigersinn)"
-
-#: ../bin/cdraw.c:197 ../bin/tcurve.c:353
-msgid "CW Angle"
-msgstr "Winkel (im Uhrzeigersinn)"
-
-#: ../bin/cdraw.c:198
-msgid "Point Count"
-msgstr "Anzahl der Punkte"
-
-#: ../bin/cdraw.c:199 ../bin/cdraw.c:811 ../bin/ctodesgn.c:148
-msgid "Line Width"
-msgstr "Strichdicke"
-
-#: ../bin/cdraw.c:200 ../bin/cdraw.c:813 ../bin/cdraw.c:815 ../bin/cdraw.c:890
-#: ../bin/cdraw.c:914 ../bin/cmisc.c:97 ../bin/ctext.c:59 ../bin/ctext.c:130
-#: ../bin/ctodesgn.c:149 ../bin/dcar.c:1968 ../bin/dlayer.c:321
-#: ../bin/doption.c:583
-msgid "Color"
-msgstr "Farbe"
-
-#: ../bin/cdraw.c:201 ../bin/cdraw.c:428 ../bin/cdraw.c:831
-msgid "Lumber"
-msgstr "Holzleiste"
-
-#: ../bin/cdraw.c:202
-msgid "Orientation"
-msgstr "Ausrichtung"
-
-#: ../bin/cdraw.c:203 ../bin/cdraw.c:825
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:525
-msgid "Size"
-msgstr "Größe"
-
-#: ../bin/cdraw.c:204 ../bin/compound.c:517 ../bin/cprint.c:131
-#: ../bin/cturntbl.c:240 ../bin/tease.c:502
-msgid "Origin: X"
-msgstr "Ausgangspunkt: X"
-
-#: ../bin/cdraw.c:206 ../bin/ctext.c:57 ../bin/ctext.c:129
-msgid "Font Size"
-msgstr "Schriftgröße"
-
-#: ../bin/cdraw.c:207 ../bin/cdraw.c:491 ../bin/ctext.c:249
-msgid "Text"
-msgstr "Text"
-
-#: ../bin/cdraw.c:208 ../bin/cmisc.c:114 ../bin/tcurve.c:355 ../bin/tease.c:509
-#: ../bin/tstraigh.c:84
-msgid "Pivot"
-msgstr "Drehpunkt"
-
-#: ../bin/cdraw.c:209 ../bin/cnote.c:149 ../bin/compound.c:524
-#: ../bin/cturntbl.c:243 ../bin/tcurve.c:356 ../bin/tease.c:510
-#: ../bin/tstraigh.c:85 ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:603
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:604
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:605
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:606
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:607
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:608
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:609
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:610
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:611
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:612
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:613
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:614
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:615
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:616
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:617
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:618
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:619
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:620
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:621
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:622
-msgid "Layer"
-msgstr "Ebene"
-
-#: ../bin/cdraw.c:418
-msgid "Straight Line"
-msgstr "Gerade Linie"
-
-#: ../bin/cdraw.c:421 ../bin/cdraw.c:1036
-msgid "Dimension Line"
-msgstr "Maßlinie"
-
-#: ../bin/cdraw.c:436 ../bin/cdraw.c:832 ../bin/cdraw.c:1038
-msgid "Table Edge"
-msgstr "Tischkante"
-
-#: ../bin/cdraw.c:448 ../bin/cdraw.c:837 ../bin/cdraw.c:838 ../bin/cdraw.c:839
-msgid "Circle"
-msgstr "Kreis"
-
-#: ../bin/cdraw.c:456
-msgid "Curved Line"
-msgstr "Gebogene Linie"
-
-#: ../bin/cdraw.c:465 ../bin/cdraw.c:842 ../bin/cdraw.c:843 ../bin/cdraw.c:844
-msgid "Filled Circle"
-msgstr "Gefüllter Kreis"
-
-#: ../bin/cdraw.c:470 ../bin/cdraw.c:1054
-msgid "Poly Line"
-msgstr "Polylinie"
-
-#: ../bin/cdraw.c:476 ../bin/cdraw.c:846 ../bin/cdraw.c:1055
-msgid "Polygon"
-msgstr "Vieleck"
-
-#: ../bin/cdraw.c:497
-#, c-format
-msgid "%s: Layer=%d"
-msgstr "%s: Ebene=%d"
-
-#: ../bin/cdraw.c:508 ../bin/cdraw.c:934
-msgid "Tiny"
-msgstr "Winzig"
-
-#: ../bin/cdraw.c:509 ../bin/cdraw.c:935
-msgid "Small"
-msgstr "Klein"
-
-#: ../bin/cdraw.c:510 ../bin/cdraw.c:936
-msgid "Medium"
-msgstr "Mittel"
-
-#: ../bin/cdraw.c:511 ../bin/cdraw.c:937
-msgid "Large"
-msgstr "Groß"
-
-#: ../bin/cdraw.c:778 ../bin/drawgeom.c:71 ../bin/drawgeom.c:86
-msgid "Create Lines"
-msgstr "Erstelle Linien"
-
-#: ../bin/cdraw.c:817 ../bin/cdraw.c:912
-msgid "Lumber Type"
-msgstr "Leistenart"
-
-#: ../bin/cdraw.c:829
-msgid "Straight"
-msgstr "Gerade"
-
-#: ../bin/cdraw.c:830
-msgid "Dimension"
-msgstr "Abmessung"
-
-#: ../bin/cdraw.c:833 ../bin/cdraw.c:834 ../bin/cdraw.c:835 ../bin/cdraw.c:836
-msgid "Curved"
-msgstr "Gebogen"
-
-#: ../bin/cdraw.c:840 ../bin/cdraw.c:1052
-msgid "Box"
-msgstr "Rechteck"
-
-#: ../bin/cdraw.c:841
-msgid "Polyline"
-msgstr "Polylinie"
-
-#: ../bin/cdraw.c:845 ../bin/cdraw.c:1053
-msgid "Filled Box"
-msgstr "Gefülltes Rechteck"
-
-#: ../bin/cdraw.c:888
-#, c-format
-msgid "%s Line Width"
-msgstr "%s Strichdicke"
-
-#: ../bin/cdraw.c:901
-#, c-format
-msgid "%s Color"
-msgstr "%s Farbe"
-
-#: ../bin/cdraw.c:932
-msgid "Dimension Line Size"
-msgstr " Maßliniengröße"
-
-#: ../bin/cdraw.c:945
-msgid "Drag to create Table Edge"
-msgstr "Durch Ziehen die Tischkante erstellen"
-
-#: ../bin/cdraw.c:1035
-msgid "Line"
-msgstr "Linie"
-
-#: ../bin/cdraw.c:1035
-msgid "Draw Line"
-msgstr "Zeichne Linie"
-
-#: ../bin/cdraw.c:1036
-msgid "Draw Dimension Line"
-msgstr "Zeichne Maßlinie"
-
-#: ../bin/cdraw.c:1037 ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:53
-msgid "Benchwork"
-msgstr "Unterbau"
-
-#: ../bin/cdraw.c:1037
-msgid "Draw Benchwork"
-msgstr "Zeichne Unterbau"
-
-#: ../bin/cdraw.c:1038
-msgid "Draw Table Edge"
-msgstr "Zeichne Tischkante"
-
-#: ../bin/cdraw.c:1040
-msgid "Curve End"
-msgstr "Kurvenenden "
-
-#: ../bin/cdraw.c:1040
-msgid "Draw Curve from End"
-msgstr "Zeichne Kurve durch Enden"
-
-#: ../bin/cdraw.c:1041
-msgid "Curve Tangent"
-msgstr "Kurve Tangente "
-
-#: ../bin/cdraw.c:1041
-msgid "Draw Curve from Tangent"
-msgstr "Zeichne Kurve an Tangente"
-
-#: ../bin/cdraw.c:1042
-msgid "Curve Center"
-msgstr "Kurve um Mittelpunkt"
-
-#: ../bin/cdraw.c:1042
-msgid "Draw Curve from Center"
-msgstr "Zeichne Kurve um Mittelpunkt"
-
-#: ../bin/cdraw.c:1043
-msgid "Curve Chord"
-msgstr "Kurve durch Sehne "
-
-#: ../bin/cdraw.c:1043
-msgid "Draw Curve from Chord"
-msgstr "Zeichne Kurve durch Sehne"
-
-#: ../bin/cdraw.c:1046
-msgid "Circle Tangent"
-msgstr "Kreis an Tangente"
-
-#: ../bin/cdraw.c:1046
-msgid "Draw Circle from Tangent"
-msgstr "Zeichne Kreis an Tangente"
-
-#: ../bin/cdraw.c:1047
-msgid "Circle Center"
-msgstr "Kreismittelpunkt"
-
-#: ../bin/cdraw.c:1047
-msgid "Draw Circle from Center"
-msgstr "Zeichne Kreis um Mittelpunkt"
-
-#: ../bin/cdraw.c:1049
-msgid "Circle Filled Tangent"
-msgstr "Gefüllter Kreis an Tangente"
-
-#: ../bin/cdraw.c:1049
-msgid "Draw Filled Circle from Tangent"
-msgstr "Gefüllter Kreis an Tangente"
-
-#: ../bin/cdraw.c:1050
-msgid "Circle Filled Center"
-msgstr "Gefüllter Kreis Mittelpunkt"
-
-#: ../bin/cdraw.c:1050
-msgid "Draw Filled Circle from Center"
-msgstr "Gefüllter Kreis von Mittelpunkt"
-
-#: ../bin/cdraw.c:1052
-msgid "Draw Box"
-msgstr "Zeichne Rechteck"
-
-#: ../bin/cdraw.c:1053
-msgid "Draw Filled Box"
-msgstr "Zeichne gefülltes Rechteck"
-
-#: ../bin/cdraw.c:1054
-msgid "Draw Polyline"
-msgstr "Zeichne Polylinie"
-
-#: ../bin/cdraw.c:1055
-msgid "Draw Polygon"
-msgstr "Zeichne Vieleck"
-
-#: ../bin/cdraw.c:1071
-msgid "Straight Objects"
-msgstr "Gerade Objekte"
-
-#: ../bin/cdraw.c:1071
-msgid "Draw Straight Objects"
-msgstr "Zeichne gerade Objekte"
-
-#: ../bin/cdraw.c:1072
-msgid "Curved Lines"
-msgstr "Gebogene Linien"
-
-#: ../bin/cdraw.c:1072
-msgid "Draw Curved Lines"
-msgstr "Zeichne gebogene Linien"
-
-#: ../bin/cdraw.c:1073
-msgid "Circle Lines"
-msgstr "Kreislinien"
-
-#: ../bin/cdraw.c:1073
-msgid "Draw Circles"
-msgstr "Zeichne Kreise"
-
-#: ../bin/cdraw.c:1074
-msgid "Shapes"
-msgstr "Formen"
-
-#: ../bin/cdraw.c:1074
-msgid "Draw Shapes"
-msgstr "Zeichne Formen"
-
-#: ../bin/cdraw.c:1152
-msgid "Draw"
-msgstr "Zeichne"
-
-#: ../bin/celev.c:44 ../bin/csplit.c:105 ../bin/csplit.c:110 ../bin/dease.c:63
-#: ../bin/doption.c:215 ../bin/doption.c:216 ../bin/cprofile.c:1370
-msgid "None"
-msgstr "Kein"
-
-#: ../bin/celev.c:44
-msgid "Defined"
-msgstr "Fest"
-
-#: ../bin/celev.c:44
-msgid "Hidden"
-msgstr "Versteckt"
-
-#: ../bin/celev.c:45
-msgid "Computed"
-msgstr "Berechnet"
-
-#: ../bin/celev.c:45
-msgid "Station"
-msgstr "Bahnhof"
-
-#: ../bin/celev.c:45 ../bin/dcmpnd.c:68 ../bin/misc.c:2424
-#: ../bin/cprofile.c:1369
-msgid "Ignore"
-msgstr "Ignorieren"
-
-#: ../bin/celev.c:123 ../bin/celev.c:168
-msgid "There are no reachable Defined Elevations"
-msgstr "Ziehen um die Höhe zu ändern"
-
-#: ../bin/celev.c:204
-msgid "Set Elevation"
-msgstr "Höhe festlegen"
-
-#: ../bin/celev.c:309 ../bin/celev.c:326
-#, c-format
-msgid "Elev = %s"
-msgstr "Höhe = %s"
-
-#: ../bin/celev.c:311 ../bin/celev.c:328
-#, c-format
-msgid "Dist = %s"
-msgstr "Entfernung = %s"
-
-#: ../bin/celev.c:317 ../bin/celev.c:334 ../bin/celev.c:375 ../bin/celev.c:382
-#: ../bin/celev.c:385
-#, c-format
-msgid "Undefined"
-msgstr "Undefiniert"
-
-#: ../bin/celev.c:407 ../bin/celev.c:473
-msgid "Elevation"
-msgstr "Höhe"
-
-#: ../bin/celev.c:407 ../bin/cmisc.c:304 ../bin/dcustmgm.c:350
-#: ../bin/dlayer.c:850 ../bin/dpricels.c:155 ../bin/cprofile.c:1270
-msgid "Done"
-msgstr "Fertig"
-
-#: ../bin/celev.c:419
-msgid "Select End-Point"
-msgstr "Endpunkt auswählen"
-
-#: ../bin/celev.c:435 ../bin/csplit.c:90 ../bin/csplit.c:153
-msgid "Split Track"
-msgstr "Gleis auftrennen"
-
-#: ../bin/cgroup.c:576
-msgid "Ungroup Object"
-msgstr "Gruppierung aufheben"
-
-#: ../bin/cgroup.c:588
-#, c-format
-msgid "%d objects ungrouped"
-msgstr "%d Gruppierungen aufgelöst"
-
-#: ../bin/cgroup.c:590
-msgid "No objects ungrouped"
-msgstr "Keine Gruppierungen aufgelöst"
-
-#: ../bin/cgroup.c:599
-msgid "Replace with new group?"
-msgstr "Durch neue Gruppe ersetzen?"
-
-#: ../bin/cgroup.c:604 ../bin/compound.c:519 ../bin/cstruct.c:64
-#: ../bin/ctodesgn.c:140 ../bin/ctodesgn.c:1764 ../bin/cturnout.c:69
-#: ../bin/dcar.c:1933 ../bin/dcar.c:4070 ../bin/dcar.c:4075 ../bin/dcmpnd.c:444
-#: ../bin/dcustmgm.c:45 ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:333
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:502
-msgid "Manufacturer"
-msgstr "Hersteller"
-
-#: ../bin/cgroup.c:605 ../bin/cmisc.c:304 ../bin/cstruct.c:64
-#: ../bin/ctodesgn.c:1765 ../bin/ctodesgn.c:1766 ../bin/ctrain.c:173
-#: ../bin/cturnout.c:69 ../bin/dcar.c:1949 ../bin/dcar.c:4071
-#: ../bin/dcar.c:4076 ../bin/dcmpnd.c:445 ../bin/dcustmgm.c:46
-#: ../bin/denum.c:177 ../bin/denum.c:178 ../bin/denum.c:181
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:334
-msgid "Description"
-msgstr "Beschreibung"
-
-#: ../bin/cgroup.c:606 ../bin/dcmpnd.c:446
-msgid "#"
-msgstr "Nr."
-
-#: ../bin/cgroup.c:607 ../bin/compound.c:523
-msgid "# Segments"
-msgstr "Anzahl Segmente"
-
-#: ../bin/cgroup.c:1063
-msgid "No endpts"
-msgstr "Keine Endpunkte"
-
-#: ../bin/cgroup.c:1148
-msgid "No paths"
-msgstr "Keine Wege"
-
-#: ../bin/cgroup.c:1482 ../bin/cgroup.c:1536
-msgid "Group Tracks"
-msgstr "Gleise gruppieren"
-
-#: ../bin/cgroup.c:1592
-msgid "Group Objects"
-msgstr "Objekte gruppieren"
-
-#: ../bin/chndldto.c:68
-msgid "Place frog and drag angle"
-msgstr "Herzstück festlegen und auf Winkel ziehen"
-
-#: ../bin/chndldto.c:85
-msgid "frog"
-msgstr "Herzstück"
-
-#: ../bin/chndldto.c:132
-#, c-format
-msgid "Angle = %0.2f Frog# = %0.2f"
-msgstr "Winkel = %0.2f Steigung = %0.2f"
-
-#: ../bin/chndldto.c:134
-msgid "Frog angle is too close to 0"
-msgstr "Herzstückwinkel ist zu nahe bei 0"
-
-#: ../bin/chndldto.c:137
-msgid "Select point position"
-msgstr "Position des Punktes auswählen"
-
-#: ../bin/chndldto.c:151 ../bin/chndldto.c:176
-msgid "points"
-msgstr "Punkte"
-
-#: ../bin/chndldto.c:273
-#, c-format
-msgid "Length = %0.2f Angle = %0.2f Frog# = %0.2f"
-msgstr "Länge = %0.2f Winkel = %0.2f Steigung=%0.2f"
-
-#: ../bin/chndldto.c:277
-msgid "Create Hand Laid Turnout"
-msgstr "Erstelle eine Selbstbauweiche"
-
-#: ../bin/chndldto.c:368
-msgid "HandLaidTurnout"
-msgstr "Selbstbauweiche"
-
-#: ../bin/cjoin.c:164
-#, c-format
-msgid "Curved Track: Radius=%s Length=%s"
-msgstr "Gleisbogen: Radius=%s Länge=%s"
-
-#: ../bin/cjoin.c:250
-#, c-format
-msgid "Curved Track: Radius=%s Length=%s Angle=%0.3f"
-msgstr "Gleisbogen: Radius=%s Länge=%s Winkel=%0.3f"
-
-#: ../bin/cjoin.c:346
-#, c-format
-msgid "Track (%d) is too short for transition-curve by %0.3f"
-msgstr "Gleis (%d) ist für den Übergangsbogen um %0.3f zu kurz"
-
-#: ../bin/cjoin.c:363
-#, c-format
-msgid "Connecting track is too short by %0.3f"
-msgstr "Verbindungsgleis ist um %0.3f zu kurz"
-
-#: ../bin/cjoin.c:407 ../bin/cjoin.c:857
-msgid "Click on an unselected End-Point"
-msgstr "Einen nicht ausgewählten Endpunkt anklicken"
-
-#: ../bin/cjoin.c:408 ../bin/cjoin.c:858
-msgid "Click on a selected End-Point"
-msgstr "Einen ausgewählten Endpunkt anclicken"
-
-#: ../bin/cjoin.c:415 ../bin/cjoin.c:863
-msgid "unselected"
-msgstr "nicht ausgewählt"
-
-#: ../bin/cjoin.c:415 ../bin/cjoin.c:863 ../bin/cprint.c:139
-msgid "selected"
-msgstr "ausgewählt"
-
-#: ../bin/cjoin.c:450
-msgid "Left click - join with track, Shift Left click - move to join"
-msgstr ""
-"Linke Maustaste - Verbinden mit neuem Gleis, Umschalten + linke Maustaste - "
-"Verschieben zum Verbinden"
-
-#: ../bin/cjoin.c:481 ../bin/cjoin.c:781 ../bin/cjoin.c:790
-msgid "Select 2nd track"
-msgstr "Zweites Gleis auswählen"
-
-#: ../bin/cjoin.c:508 ../bin/cmisc.c:52 ../bin/track.c:1956
-msgid "First"
-msgstr "Erste"
-
-#: ../bin/cjoin.c:513 ../bin/cmisc.c:52 ../bin/track.c:1956
-msgid "Second"
-msgstr "Zweite"
-
-#: ../bin/cjoin.c:604
-msgid "Beyond end of 2nd track"
-msgstr "Außerhalb des zweiten Gleises"
-
-#: ../bin/cjoin.c:639
-msgid "Beyond end of 1st track"
-msgstr "Außerhalb des ersten Gleises"
-
-#: ../bin/cjoin.c:663
-msgid "First "
-msgstr "Erste "
-
-#: ../bin/cjoin.c:690
-msgid "Second "
-msgstr "Zweite "
-
-#: ../bin/cjoin.c:704 ../bin/track.c:1906
-msgid "Connecting "
-msgstr "Verbinde "
-
-#: ../bin/cjoin.c:793
-msgid "Join Tracks"
-msgstr "Gleise zusammenfügen"
-
-#: ../bin/cjoin.c:898
-msgid "Join"
-msgstr "Verbinden"
-
-#: ../bin/cmisc.c:52
-msgid "Middle"
-msgstr "Mittel"
-
-#: ../bin/cmisc.c:153 ../bin/cmodify.c:121 ../bin/cnote.c:168
-#: ../bin/compound.c:592 ../bin/ctrain.c:195
-msgid "Change Track"
-msgstr "Gleis ändern"
-
-#: ../bin/cmisc.c:397
-msgid "Select track to describe"
-msgstr "Zu beschreibendes Gleis auswählen"
-
-#: ../bin/cmisc.c:444
-msgid "Properties"
-msgstr "Eigenschaften"
-
-#: ../bin/cmisc2.c:52
-msgid "Bridge"
-msgstr "Brücke"
-
-#: ../bin/cmodify.c:83
-msgid "Select track to modify"
-msgstr "Zu bearbeitendes Gleis auswählen"
-
-#: ../bin/cmodify.c:169
-msgid "Modify Track"
-msgstr "Gleis bearbeiten"
-
-#: ../bin/cmodify.c:205
-msgid "Drag to create new track segment"
-msgstr "Ziehen um einen neuen Gleisabschnitt zu erstellen"
-
-#: ../bin/cmodify.c:323
-#, c-format
-msgid "Curve Track: Radius=%s Length=%s Angle=%0.3f"
-msgstr "Gleisbogen: Radius=%s Länge=%s Winkel=%0.3f"
-
-#: ../bin/cmodify.c:339
-msgid "Extend Track"
-msgstr "Gleis verlängern"
-
-#: ../bin/cmodify.c:405
-msgid "Modify"
-msgstr "Verändern"
-
-#: ../bin/cnote.c:96 ../bin/cnote.c:203 ../bin/cnote.c:402
-msgid "Note"
-msgstr "Notiz"
-
-#: ../bin/cnote.c:99
-msgid "Replace this text with your layout notes"
-msgstr "Ersetzen Sie diesen Text durch Ihre Notizen"
-
-#: ../bin/cnote.c:148 ../bin/ctrain.c:169
-msgid "Position"
-msgstr "Position"
-
-#: ../bin/cnote.c:190 ../bin/cnote.c:191 ../bin/cnote.c:192
-msgid "Note: "
-msgstr "Notiz: "
-
-#: ../bin/cnote.c:359 ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:91
-msgid "Place a note on the layout"
-msgstr "Eine Notiz auf den Gleisplan setzen"
-
-#: ../bin/cnote.c:372
-msgid "New Note"
-msgstr "Neue Notiz"
-
-#: ../bin/cnote.c:377
-msgid "Replace this text with your note"
-msgstr "Ersetzen Sie diesen Text durch Ihre Notizen"
-
-#: ../bin/compound.c:513 ../bin/compound.c:515 ../bin/tcurve.c:343
-#: ../bin/tcurve.c:345 ../bin/tease.c:499 ../bin/tease.c:501
-#: ../bin/tstraigh.c:78 ../bin/tstraigh.c:80
-msgid "Z"
-msgstr "Z"
-
-#: ../bin/compound.c:521 ../bin/cstruct.c:64 ../bin/cturnout.c:69
-#: ../bin/dcar.c:4070 ../bin/dcar.c:4075 ../bin/dcustmgm.c:46
-#: ../bin/doption.c:219 ../bin/doption.c:220
-msgid "Part No"
-msgstr "Teilenr"
-
-#: ../bin/compound.c:522
-msgid "# End Pt"
-msgstr "Anzahl Endpunkte"
-
-#: ../bin/compound.c:777 ../bin/cswitchmotor.c:142 ../bin/cturnout.c:885
-#: ../bin/cturnout.c:2372 ../bin/cturnout.c:2542 ../bin/track.c:1720
-msgid "Turnout"
-msgstr "Weiche"
-
-#: ../bin/compound.c:777
-msgid "Sectional Track"
-msgstr "Festgleise"
-
-#: ../bin/compound.c:780 ../bin/cstruct.c:763 ../bin/cstruct.c:908
-msgid "Structure"
-msgstr "Gebäude"
-
-#: ../bin/cparalle.c:41 ../bin/cparalle.c:71 ../bin/cparalle.c:83
-#: ../bin/ctodesgn.c:382 ../bin/ctodesgn.c:402 ../bin/ctodesgn.c:422
-#: ../bin/tcurve.c:349
-msgid "Separation"
-msgstr "Zwischenraum"
-
-#: ../bin/cparalle.c:140
-msgid "Create Parallel Track"
-msgstr "Erzeuge paralleles Gleis"
-
-#: ../bin/cparalle.c:184 ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:44
-msgid "Parallel"
-msgstr "Parallel"
-
-#: ../bin/cprint.c:96
-msgid "Portrait"
-msgstr "Hochformat"
-
-#: ../bin/cprint.c:96
-msgid "Landscape"
-msgstr "Querformat"
-
-#: ../bin/cprint.c:97 ../bin/cselect.c:1866 ../bin/cselect.c:1870
-#: ../bin/cswitchmotor.c:79 ../bin/cswitchmotor.c:139 ../bin/dbench.c:73
-#: ../bin/dease.c:63 ../bin/doption.c:214 ../bin/doption.c:310
-#: ../bin/macro.c:1228
-msgid "Normal"
-msgstr "Normal"
-
-#: ../bin/cprint.c:97 ../bin/cswitchmotor.c:80 ../bin/cswitchmotor.c:140
-#: ../bin/ctrain.c:777 ../bin/ctrain.c:1034
-msgid "Reverse"
-msgstr "Umkehren"
-
-#: ../bin/cprint.c:98
-msgid "Engineering Data"
-msgstr "Zeichnungsinformationen"
-
-#: ../bin/cprint.c:99
-msgid "Print Registration Marks"
-msgstr "Drucke Positionierungshilfen"
-
-#: ../bin/cprint.c:100
-msgid "Ignore Page Margins"
-msgstr "Übergehe Seitenränder"
-
-#: ../bin/cprint.c:101
-msgid "Print Snap Grid"
-msgstr "Fangraster drucken"
-
-#: ../bin/cprint.c:102
-msgid "Print Rulers"
-msgstr "Maßlinien drucken"
-
-#: ../bin/cprint.c:103 ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:411
-msgid "Print Roadbed Outline"
-msgstr "Gleisbettung drucken"
-
-#: ../bin/cprint.c:111
-msgid "Print Scale"
-msgstr "Druckmaßstab"
-
-#: ../bin/cprint.c:112
-msgid "Page Width"
-msgstr "Seitenbreite"
-
-#: ../bin/cprint.c:113
-msgid "Max"
-msgstr "Max."
-
-#: ../bin/cprint.c:114
-msgid "Height"
-msgstr "Seitenhöhe"
-
-#: ../bin/cprint.c:115
-msgid "Snap Shot"
-msgstr "Schnappschuss"
-
-#: ../bin/cprint.c:116
-msgid "Page Format"
-msgstr "Seitenformat"
-
-#: ../bin/cprint.c:117
-msgid "Print Order"
-msgstr "Druckreihenfolge"
-
-#: ../bin/cprint.c:130 ../bin/ctrain.c:172 ../bin/dcar.c:1972
-msgid "Width"
-msgstr "Breite"
-
-#: ../bin/cprint.c:132 ../bin/csnap.c:536
-msgid "Y"
-msgstr "Y"
-
-#: ../bin/cprint.c:133 ../bin/dcar.c:1953
-msgid "Reset"
-msgstr "Zurücksetzen"
-
-#: ../bin/cprint.c:135
-msgid "Setup"
-msgstr "Einstellungen"
-
-#: ../bin/cprint.c:136 ../bin/misc.c:587 ../bin/cprofile.c:563
-msgid "Clear"
-msgstr "Löschen"
-
-#: ../bin/cprint.c:138 ../bin/cprint.c:618
-msgid "0 pages"
-msgstr "0 Seiten"
-
-#: ../bin/cprint.c:228 ../bin/cprint.c:277
-#, c-format
-msgid "%d pages"
-msgstr "%d Seiten"
-
-#: ../bin/cprint.c:397
-#, c-format
-msgid "PrintScale 1:%ld Room %s x %s Model Scale %s File %s"
-msgstr "Druckmaßstab 1:%ld Raum %s x %s Modellmaßstab %s Datei %s"
-
-#: ../bin/cprint.c:699
-msgid "1 page"
-msgstr "1 Seite"
-
-#: ../bin/cprint.c:1068 ../bin/ctodesgn.c:1712 ../bin/denum.c:50
-#: ../bin/cprofile.c:564
-msgid "Print"
-msgstr "Drucken"
-
-#: ../bin/cprint.c:1090
-msgid "Select pages to print, or drag to move print grid"
-msgstr ""
-"Zu druckende Seiten auswählen oder ziehen um das Druckraster zu verschieben"
-
-#: ../bin/cprint.c:1189
-msgid "Print..."
-msgstr "Drucken..."
-
-#: ../bin/cpull.c:438 ../bin/cpull.c:583
-#, c-format
-msgid "%d tracks moved"
-msgstr "%d Gleise verschoben"
-
-#: ../bin/cpull.c:473
-msgid "Pull Tracks"
-msgstr "Gleise ziehen"
-
-#: ../bin/cpull.c:547
-msgid "Tighten Tracks"
-msgstr "Gleise zusammendrücken"
-
-#: ../bin/cpull.c:600
-msgid "Select first End-Point to connect"
-msgstr "Ersten Endpunkt für Verbindung auswählen"
-
-#: ../bin/cpull.c:611
-msgid "Select second End-Point to connect"
-msgstr "Zweiten Endpunkt für Verbindung auswählen"
-
-#: ../bin/cpull.c:661
-msgid "Connect Sectional Tracks"
-msgstr "Gleisstücke verbinden"
-
-#: ../bin/cruler.c:146 ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:51
-msgid "Ruler"
-msgstr "Lineal"
-
-#: ../bin/cselect.c:306
-msgid "Change Track Width"
-msgstr "Gleisbreite ändern"
-
-#: ../bin/cselect.c:327
-msgid "Delete Tracks"
-msgstr "Gleise löschen"
-
-#: ../bin/cselect.c:379
-msgid "Hide Tracks (Tunnel)"
-msgstr "Gleise verbergen (Tunnel)"
-
-#: ../bin/cselect.c:418 ../bin/misc.c:2140
-msgid "Move To Current Layer"
-msgstr "Auf aktuelle Ebene verschieben"
-
-#: ../bin/cselect.c:457 ../bin/misc.c:2250
-msgid "Clear Elevations"
-msgstr "Höhen löschen"
-
-#: ../bin/cselect.c:501
-msgid "Add Elevations"
-msgstr "Höhen hinzufügen"
-
-#: ../bin/cselect.c:516
-msgid "Refresh Compound"
-msgstr "Zusammenstellung aktualisieren"
-
-#: ../bin/cselect.c:552 ../bin/dcar.c:4070 ../bin/dcar.c:4075
-#: ../bin/dcustmgm.c:46 ../bin/doption.c:103
-msgid "Scale"
-msgstr "Maßstab"
-
-#: ../bin/cselect.c:552 ../bin/cselect.c:577
-msgid "Ratio"
-msgstr "Verhältnis"
-
-#: ../bin/cselect.c:561
-msgid "Do not resize track"
-msgstr "Gleismaße nicht ändern"
-
-#: ../bin/cselect.c:565
-msgid "Rescale by:"
-msgstr "Skalieren um:"
-
-#: ../bin/cselect.c:567
-msgid "From:"
-msgstr "Von:"
-
-#: ../bin/cselect.c:571
-msgid "To: "
-msgstr "Nach:"
-
-#: ../bin/cselect.c:636
-msgid "Rescale Tracks"
-msgstr "Gleise skalieren"
-
-#: ../bin/cselect.c:767 ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:47
-msgid "Rescale"
-msgstr "Maßstab ändern"
-
-#: ../bin/cselect.c:794
-msgid "Draw moving track normally"
-msgstr "Bewegte Gleise normal zeichnen"
-
-#: ../bin/cselect.c:795
-msgid "Draw moving track simply"
-msgstr "Bewegte Gleise vereinfacht zeichnen"
-
-#: ../bin/cselect.c:796
-msgid "Draw moving track as end-points"
-msgstr "Bewegte Gleise als Endpunkte zeichnen"
-
-#: ../bin/cselect.c:1089
-msgid "Move To Join"
-msgstr "Verbinde durch Verschieben"
-
-#: ../bin/cselect.c:1125
-msgid "Drag to move selected tracks"
-msgstr "Ausgewählte Gleise durch Ziehen verschieben"
-
-#: ../bin/cselect.c:1132
-msgid "Move Tracks"
-msgstr "Gleise verschieben"
-
-#: ../bin/cselect.c:1189
-msgid "Click on selected object to align"
-msgstr "Ausgewählte Objekte spiegeln"
-
-#: ../bin/cselect.c:1217
-msgid "Drag to rotate selected tracks"
-msgstr "Ziehen um die ausgewählten Gleise zu rotieren"
-
-#: ../bin/cselect.c:1226 ../bin/cselect.c:1382
-msgid "Rotate Tracks"
-msgstr "Gleise drehen"
-
-#: ../bin/cselect.c:1265 ../bin/cselect.c:1296
-#, c-format
-msgid "Angle %0.3f"
-msgstr "Winkel %0.3f"
-
-#: ../bin/cselect.c:1326
-#, c-format
-msgid " Angle %0.3f #%ld"
-msgstr " Winkel %0.3f #%ld"
-
-#: ../bin/cselect.c:1328
-#, c-format
-msgid " Angle %0.3f"
-msgstr " Winkel %0.3f"
-
-#: ../bin/cselect.c:1339
-msgid "Click on the 2nd Unselected object"
-msgstr "Klicken Sie auf das zweite, nicht ausgewählte Objekt."
-
-#: ../bin/cselect.c:1394
-msgid "Toggle Label"
-msgstr "Beschriftung umschalten"
-
-#: ../bin/cselect.c:1423
-msgid "Select and drag a description"
-msgstr "Beschreibung auswählen und verschieben"
-
-#: ../bin/cselect.c:1465
-msgid "Move Label"
-msgstr "Beschreibung verschieben"
-
-#: ../bin/cselect.c:1490
-msgid "Show Description"
-msgstr "Beschreibung anzeigen"
-
-#: ../bin/cselect.c:1572
-msgid "Drag to mark mirror line"
-msgstr "Ziehen um die Spiegelachse zu erstellen"
-
-#: ../bin/cselect.c:1587
-#, c-format
-msgid "Angle %0.2f"
-msgstr "Winkel %0.2f"
-
-#: ../bin/cselect.c:1592
-msgid "Flip Tracks"
-msgstr "Gleise spiegeln"
-
-#: ../bin/cselect.c:1755
-msgid "Select tracks"
-msgstr "Gleise auswählen"
-
-#: ../bin/cselect.c:1853 ../bin/dcar.c:1536 ../bin/doption.c:315
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:13
-msgid "Select"
-msgstr "Auswählen"
-
-#: ../bin/cselect.c:1867 ../bin/cselect.c:1871 ../bin/doption.c:311
-msgid "Simple"
-msgstr "Einfach"
-
-#: ../bin/cselect.c:1868 ../bin/cselect.c:1872
-msgid "End Points"
-msgstr "Endpunkte"
-
-#: ../bin/cselect.c:1875
-msgid "Align"
-msgstr "Ausrichten"
-
-#: ../bin/cselect.c:1896 ../bin/misc.c:2069
-msgid "Tunnel"
-msgstr "Tunnel"
-
-#: ../bin/cselect.c:1905
-msgid "Move Description"
-msgstr "Beschreibungen verschieben"
-
-#: ../bin/cselect.c:1912 ../bin/misc.c:2067
-msgid "Move"
-msgstr "Verschieben"
-
-#: ../bin/cselect.c:1914 ../bin/misc.c:1846 ../bin/misc.c:2068
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:58
-msgid "Rotate"
-msgstr "Drehen"
-
-#: ../bin/cselect.c:1916 ../bin/dcar.c:1955
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:59
-msgid "Flip"
-msgstr "Spiegeln"
-
-#: ../bin/csnap.c:517
-msgid "Horz"
-msgstr "Horiz."
-
-#: ../bin/csnap.c:519
-msgid "Spacing"
-msgstr "Abstand"
-
-#: ../bin/csnap.c:521
-msgid "Divisions"
-msgstr "Zwischenmarkierungen"
-
-#: ../bin/csnap.c:524
-msgid "Enable"
-msgstr "Einschalten"
-
-#: ../bin/csnap.c:525
-msgid "Vert"
-msgstr "Vert."
-
-#: ../bin/csnap.c:534 ../bin/dease.c:72
-msgid "X"
-msgstr "X"
-
-#: ../bin/csnap.c:538
-msgid "A"
-msgstr "A"
-
-#: ../bin/csnap.c:541
-msgid "Show"
-msgstr "Zeige"
-
-#: ../bin/csnap.c:711 ../bin/doption.c:555
-msgid "Snap Grid"
-msgstr "Fangraster"
-
-#: ../bin/csnap.c:796
-msgid "Change Grid..."
-msgstr "Raster anpassen..."
-
-#: ../bin/csplit.c:45
-msgid "Set Block Gaps"
-msgstr "Setze Trennstellen"
-
-#: ../bin/csplit.c:72
-msgid "Select track to split"
-msgstr "Zu trennendes Gleis auswählen"
-
-#: ../bin/csplit.c:106 ../bin/dbench.c:64 ../bin/dbench.c:75
-msgid "Left"
-msgstr "Links"
-
-#: ../bin/csplit.c:107 ../bin/dbench.c:65 ../bin/dbench.c:74
-msgid "Right"
-msgstr "Rechts"
-
-#: ../bin/csplit.c:108 ../bin/csplit.c:113
-msgid "Both"
-msgstr "Beides"
-
-#: ../bin/csplit.c:111
-msgid "Top"
-msgstr "Oben"
-
-#: ../bin/csplit.c:112
-msgid "Bottom"
-msgstr "Unten"
-
-#: ../bin/cstraigh.c:49
-msgid "Place 1st end point of Straight track"
-msgstr "Ersten Endpunkt der Gleisgerade setzen"
-
-#: ../bin/cstraigh.c:55
-msgid "Drag to place 2nd end point"
-msgstr "Ziehen um den zweiten Endpunkt zu setzen"
-
-#: ../bin/cstraigh.c:67
-#, c-format
-msgid "Straight Track Length=%s Angle=%0.3f"
-msgstr "Gleisgerade: Länge=%s Winkel=%0.3f"
-
-#: ../bin/cstraigh.c:104 ../bin/tstraigh.c:259
-msgid "Straight Track"
-msgstr "Gleisgerade"
-
-#: ../bin/cstruct.c:66 ../bin/cturnout.c:71 ../bin/doption.c:214
-#: ../bin/doption.c:318
-msgid "Hide"
-msgstr "Verstecken"
-
-#: ../bin/cstruct.c:321 ../bin/cstruct.c:348
-msgid "Pier Number"
-msgstr "Bestellnummer"
-
-#: ../bin/cstruct.c:433
-#, c-format
-msgid "Scale %d:1"
-msgstr "Maßstab 1:%d"
-
-#: ../bin/cstruct.c:435
-#, c-format
-msgid "Width %s"
-msgstr "Breite %s"
-
-#: ../bin/cstruct.c:437
-#, c-format
-msgid "Height %s"
-msgstr "Höhe %s"
-
-#: ../bin/cstruct.c:535
-msgid "Place Structure"
-msgstr "Gebäude plazieren"
-
-#: ../bin/cstruct.c:645
-msgid "Drag to place"
-msgstr "Zur Position ziehen "
-
-#: ../bin/cstruct.c:673
-msgid "Drag to rotate"
-msgstr "Ziehen zum rotieren"
-
-#: ../bin/cstruct.c:694
-#, c-format
-msgid "Angle = %0.3f"
-msgstr "Winkel = %0.3f"
-
-#: ../bin/cstruct.c:780
-msgid "Select Structure and then drag to place"
-msgstr "Gebäued auswählen und in die Piosition ziehen"
-
-#: ../bin/cstruct.c:798 ../bin/cstruct.c:885
-msgid ""
-"Left drag to move, right drag to rotate, or press Return or click Ok to "
-"finalize"
-msgstr ""
-"Ziehen mit linker Maustaste zum Verschieben, mit rechter zum Drehen, oder "
-"Eingabetaste oder OK zum Abschliessen"
-
-#: ../bin/cstruct.c:878 ../bin/cturnout.c:2512
-#, c-format
-msgid "Place %s and draw into position"
-msgstr "%s setzen und in Position ziehen"
-
-#: ../bin/cswitchmotor.c:81 ../bin/cswitchmotor.c:141
-msgid "Point Sense"
-msgstr "Richtung der Weichenzungen"
-
-#: ../bin/cswitchmotor.c:177
-msgid "Change Switch Motor"
-msgstr "Weichenantrieb ändern"
-
-#: ../bin/cswitchmotor.c:236
-msgid "Switch motor"
-msgstr "Weichenantrieb"
-
-#: ../bin/cswitchmotor.c:359 ../bin/cswitchmotor.c:518
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:117
-msgid "Create Switch Motor"
-msgstr "Weichenantrieb erstellen"
-
-#: ../bin/cswitchmotor.c:381
-msgid "Create switch motor"
-msgstr "Weichenantrieb erstellen"
-
-#: ../bin/cswitchmotor.c:395 ../bin/cswitchmotor.c:425
-#: ../bin/cswitchmotor.c:457
-msgid "Select a turnout"
-msgstr "Wählen Sie eine Weiche aus"
-
-#: ../bin/cswitchmotor.c:402
-msgid "Not a turnout!"
-msgstr "Keine Weiche!"
-
-#: ../bin/cswitchmotor.c:434 ../bin/cswitchmotor.c:465
-msgid "Not a switch motor!"
-msgstr "Kein Weichenantrieb!"
-
-#: ../bin/cswitchmotor.c:470
-#, c-format
-msgid "Really delete switch motor %s?"
-msgstr "Soll der Weichenantrieb %s wirklich gelöscht werden?"
-
-#: ../bin/cswitchmotor.c:471 ../bin/cswitchmotor.c:520
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:118
-msgid "Delete Switch Motor"
-msgstr "Weichenantrieb löschen"
-
-#: ../bin/cswitchmotor.c:517
-msgid "SwitchMotor"
-msgstr "Weichenantrieb"
-
-#: ../bin/cswitchmotor.c:517 ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:120
-msgid "Switch Motors"
-msgstr "Weichenatriebe"
-
-#: ../bin/cswitchmotor.c:519 ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:119
-msgid "Edit Switch Motor"
-msgstr "Weichenantrieb bearbeiten"
-
-#: ../bin/ctext.c:181 ../bin/ctext.c:220
-msgid "Create Text"
-msgstr "Erstelle Text"
-
-#: ../bin/ctext.c:251
-msgid "Fonts..."
-msgstr "Schriftarten..."
-
-#: ../bin/ctodesgn.c:106
-msgid "Frog #"
-msgstr "Herzstück Steigung"
-
-#: ../bin/ctodesgn.c:106
-msgid "Degrees"
-msgstr "Grad"
-
-#: ../bin/ctodesgn.c:133 ../bin/ctodesgn.c:134 ../bin/ctodesgn.c:182
-#: ../bin/ctodesgn.c:205 ../bin/ctodesgn.c:207 ../bin/ctodesgn.c:243
-#: ../bin/ctodesgn.c:244 ../bin/ctodesgn.c:280 ../bin/ctodesgn.c:282
-#: ../bin/ctodesgn.c:497
-msgid "Offset"
-msgstr "Abstand"
-
-#: ../bin/ctodesgn.c:142 ../bin/ctodesgn.c:1759 ../bin/ctodesgn.c:1760
-msgid "Left Description"
-msgstr "Beschreibung links"
-
-#: ../bin/ctodesgn.c:143 ../bin/ctodesgn.c:146
-msgid " #"
-msgstr " Nr."
-
-#: ../bin/ctodesgn.c:145 ../bin/ctodesgn.c:1758
-msgid "Right Description"
-msgstr "Beschreibung rechts"
-
-#: ../bin/ctodesgn.c:147
-msgid "Roadbed Width"
-msgstr "Breite des Gleisbett"
-
-#: ../bin/ctodesgn.c:151 ../bin/denum.c:51
-msgid "Print Setup"
-msgstr "Druckeinstellungen"
-
-#: ../bin/ctodesgn.c:180
-msgid "Diverging Length"
-msgstr "Länge des Abzweig"
-
-#: ../bin/ctodesgn.c:181
-msgid "Diverging Angle"
-msgstr "Winkel des Abzweig"
-
-#: ../bin/ctodesgn.c:182
-msgid "Diverging Offset"
-msgstr "Abstand des Abzweig"
-
-#: ../bin/ctodesgn.c:183
-msgid "Overall Length"
-msgstr "Gesamtlänge"
-
-#: ../bin/ctodesgn.c:193
-msgid "Regular Turnout"
-msgstr "Normale Weiche"
-
-#: ../bin/ctodesgn.c:203
-msgid "Inner Length"
-msgstr "Innenlänge"
-
-#: ../bin/ctodesgn.c:204
-msgid "Inner Angle"
-msgstr "Innenwinkel"
-
-#: ../bin/ctodesgn.c:205
-msgid "Inner Offset"
-msgstr "Innenbbstand"
-
-#: ../bin/ctodesgn.c:206
-msgid "Outer Angle"
-msgstr "Außenwinkell"
-
-#: ../bin/ctodesgn.c:207
-msgid "Outer Offset"
-msgstr "Außenabstand"
-
-#: ../bin/ctodesgn.c:208
-msgid "Outer Length"
-msgstr "Außenlänge"
-
-#: ../bin/ctodesgn.c:230
-msgid "Curved Turnout"
-msgstr "Bogenweiche"
-
-#: ../bin/ctodesgn.c:241 ../bin/ctodesgn.c:278
-msgid "Left Length"
-msgstr "Linke Länge"
-
-#: ../bin/ctodesgn.c:242 ../bin/ctodesgn.c:279
-msgid "Left Angle"
-msgstr "Linker Winkel"
-
-#: ../bin/ctodesgn.c:243 ../bin/ctodesgn.c:280
-msgid "Left Offset"
-msgstr "Linker Abstand"
-
-#: ../bin/ctodesgn.c:244 ../bin/ctodesgn.c:282
-msgid "Right Offset"
-msgstr "Rechter Abstand"
-
-#: ../bin/ctodesgn.c:245 ../bin/ctodesgn.c:283
-msgid "Right Angle"
-msgstr "Rechter Winkel"
-
-#: ../bin/ctodesgn.c:246 ../bin/ctodesgn.c:284
-msgid "Right Length"
-msgstr "Rechte Länge"
-
-#: ../bin/ctodesgn.c:268
-msgid "Wye Turnout"
-msgstr "Außenbogenweiche"
-
-#: ../bin/ctodesgn.c:309
-msgid "3-way Turnout"
-msgstr "Dreiwegweiche"
-
-#: ../bin/ctodesgn.c:329
-msgid "Crossing"
-msgstr "Kreuzung"
-
-#: ../bin/ctodesgn.c:350
-msgid "Single Slipswitch"
-msgstr "Einfache Kreuzungsweiche"
-
-#: ../bin/ctodesgn.c:371
-msgid "Double Slipswitch"
-msgstr "Doppelte Kreuzungsweiche"
-
-#: ../bin/ctodesgn.c:391
-msgid "Right Crossover"
-msgstr "Rechter Gleiswechsel"
-
-#: ../bin/ctodesgn.c:411
-msgid "Left Crossover"
-msgstr "Linker Gleiswechsel"
-
-#: ../bin/ctodesgn.c:431
-msgid "Double Crossover"
-msgstr "Doppelter Gleiswechsel"
-
-#: ../bin/ctodesgn.c:449
-msgid "Straight Section"
-msgstr "Gerader Abschnitt"
-
-#: ../bin/ctodesgn.c:460
-msgid "Angle (Degrees)"
-msgstr "Winkel (Grad)"
-
-#: ../bin/ctodesgn.c:468
-msgid "Curved Section"
-msgstr "Gebogener Abschnitt"
-
-#: ../bin/ctodesgn.c:487
-msgid "Bumper Section"
-msgstr "Prellbock"
-
-#: ../bin/ctodesgn.c:497 ../bin/denum.c:118 ../bin/denum.c:181
-#: ../bin/denum.c:213 ../bin/denum.c:214 ../bin/dlayer.c:329
-msgid "Count"
-msgstr "Anzahl"
-
-#: ../bin/ctodesgn.c:498
-msgid "Radius1"
-msgstr "Radius 1"
-
-#: ../bin/ctodesgn.c:499
-msgid "Radius2"
-msgstr "Radius 2"
-
-#: ../bin/ctodesgn.c:579
-msgid "Turntable Section"
-msgstr "Drehscheibenabscnitt"
-
-#: ../bin/ctodesgn.c:1413
-#, c-format
-msgid "%s Designer"
-msgstr "%s Designer"
-
-#: ../bin/ctodesgn.c:1417
-msgid "Page"
-msgstr "Seite"
-
-#: ../bin/ctodesgn.c:1425
-msgid "Frog Number"
-msgstr "Herzstücksteigung"
-
-#: ../bin/ctodesgn.c:1712
-msgid "Turnout Designer"
-msgstr "Weichendesigner"
-
-#: ../bin/ctodesgn.c:1722
-#, c-format
-msgid "%s %s Designer"
-msgstr "%s %s Designer"
-
-#: ../bin/ctrain.c:168 ../bin/dcar.c:1986 ../bin/dcar.c:4070 ../bin/dcar.c:4075
-msgid "Index"
-msgstr "Verzeichnis"
-
-#: ../bin/ctrain.c:174 ../bin/dcar.c:4071
-msgid "Rep Marks"
-msgstr "Wagennummer"
-
-#: ../bin/ctrain.c:238
-msgid "Car"
-msgstr "Wagen"
-
-#: ../bin/ctrain.c:542
-msgid "Follow"
-msgstr "Folgen"
-
-#: ../bin/ctrain.c:543
-msgid "Auto Reverse"
-msgstr "Automat. Wenden"
-
-#: ../bin/ctrain.c:562 ../bin/dcar.c:4955
-msgid "Find"
-msgstr "Finden"
-
-#: ../bin/ctrain.c:568 ../bin/ctrain.c:777 ../bin/ctrain.c:1034
-#: ../wlib/gtklib/gtkhelp.c:522
-msgid "Forward"
-msgstr "Vorwärts"
-
-#: ../bin/ctrain.c:570 ../bin/ctrain.c:2571 ../bin/dcar.c:4409
-#: ../bin/dcar.c:4419 ../bin/dcar.c:4538 ../bin/fileio.c:242 ../bin/macro.c:80
-msgid "Stop"
-msgstr "Anhalten"
-
-#: ../bin/ctrain.c:730 ../bin/ctrain.c:753
-msgid "Crashed"
-msgstr "Entgleist"
-
-#: ../bin/ctrain.c:732
-msgid "Not on Track"
-msgstr "Nicht auf einem Gleis"
-
-#: ../bin/ctrain.c:735
-msgid "Trains Paused"
-msgstr "Züge angehalten"
-
-#: ../bin/ctrain.c:737
-msgid "Running"
-msgstr "Fährt"
-
-#: ../bin/ctrain.c:741
-msgid "End of Track"
-msgstr "Ende des Gleis"
-
-#: ../bin/ctrain.c:744
-msgid "Open Turnout"
-msgstr "Weiche öffnen"
-
-#: ../bin/ctrain.c:747
-msgid "Manual Stop"
-msgstr "Von Hand angehalten"
-
-#: ../bin/ctrain.c:750
-msgid "No Room"
-msgstr "Kein Platz"
-
-#: ../bin/ctrain.c:756
-msgid "Unknown Status"
-msgstr "Unbekannter Zustand"
-
-#: ../bin/ctrain.c:765
-msgid "No trains"
-msgstr "Keine Züge"
-
-#: ../bin/ctrain.c:1083
-msgid "Train Control XXX"
-msgstr "Zugsteuerung XXX"
-
-#: ../bin/ctrain.c:1084
-#, c-format
-msgid "Train Control %d"
-msgstr "Zugsteuerung %d"
-
-#: ../bin/ctrain.c:1086
-msgid "Train Control"
-msgstr "Zugsteuerung"
-
-#: ../bin/ctrain.c:2030 ../bin/dcar.c:1962
-msgid "Road"
-msgstr "Gesellschaft"
-
-#: ../bin/ctrain.c:2030 ../bin/dcar.c:1966
-msgid "Number"
-msgstr "Nummer"
-
-#: ../bin/ctrain.c:2067 ../bin/ctrain.c:2551
-msgid "Train"
-msgstr "Zug"
-
-#: ../bin/ctrain.c:2566
-msgid "Uncouple"
-msgstr "Entkuppeln"
-
-#: ../bin/ctrain.c:2567
-msgid "Flip Car"
-msgstr "Wagen umdrehen"
-
-#: ../bin/ctrain.c:2568
-msgid "Flip Train"
-msgstr "Zug umdrehen"
-
-#: ../bin/ctrain.c:2569
-msgid "MU Master"
-msgstr "Mehrtraktionssteuerung"
-
-#: ../bin/ctrain.c:2570
-msgid "Change Direction"
-msgstr "Richtung ändern"
-
-#: ../bin/ctrain.c:2573
-msgid "Remove Car"
-msgstr "Wagen entfernen"
-
-#: ../bin/ctrain.c:2574
-msgid "Remove Train"
-msgstr "Zug entfernen"
-
-#: ../bin/cturnout.c:82 ../bin/dcar.c:2008 ../bin/dcar.c:2012
-#: ../bin/dcustmgm.c:59
-msgid "New"
-msgstr "Neu"
-
-#: ../bin/cturnout.c:192
-#, c-format
-msgid "Turnout path[%d:%d] out of bounds: %d"
-msgstr "Weg durch Weiche[%d:%d] ausserhalb der Grenzen: %d"
-
-#: ../bin/cturnout.c:204 ../bin/cturnout.c:209
-#, c-format
-msgid "Turnout path[%d] %d is not a track segment"
-msgstr "Weg durch Weiche[%d] % ist kein Gleisabschnitt"
-
-#: ../bin/cturnout.c:217
-#, c-format
-msgid "Turnout path[%d] %d-%d not connected: %0.3f"
-msgstr "Weg durch Weiche[%d] %d-%d ist nicht verbunden: %0.3f"
-
-#: ../bin/cturnout.c:253
-msgid "Unknown special case"
-msgstr "Unbekannter Sonderfall"
-
-#: ../bin/cturnout.c:359
-msgid "Connect Adjustable Tracks"
-msgstr "Veränderbare Gleise verbinden"
-
-#: ../bin/cturnout.c:918
-msgid "splitTurnout: can't find segment"
-msgstr "Weiche auftrennen: Gleissegment nicht gefunden"
-
-#: ../bin/cturnout.c:1328 ../bin/track.c:1899 ../bin/tstraigh.c:534
-msgid "Drag to change track length"
-msgstr "Ziehen um die Gleislänge zu ändern"
-
-#: ../bin/cturnout.c:1339
-#, c-format
-msgid "Length=%s"
-msgstr "Länge=%s"
-
-#: ../bin/cturnout.c:1583 ../bin/cturnout.c:2556
-msgid "TURNOUT "
-msgstr "WEICHE "
-
-#: ../bin/cturnout.c:1931
-#, c-format
-msgid "%d connections, max distance %0.3f (%s)"
-msgstr "%d Verbindungen, max. Abstand %0.3f (%s)"
-
-#: ../bin/cturnout.c:1936
-#, c-format
-msgid "0 connections (%s)"
-msgstr "Keine Verbindungen (%s)"
-
-#: ../bin/cturnout.c:1976
-msgid "Place New Turnout"
-msgstr "Neue Weiche setzen"
-
-#: ../bin/cturnout.c:2235 ../bin/cturnout.c:2291 ../bin/cturnout.c:2407
-#: ../bin/cturnout.c:2519
-msgid ""
-"Left drag to move, right drag to rotate, press Space or Return to fix track "
-"in place or Esc to cancel"
-msgstr ""
-"Ziehen mit linker Maustaste zum Verschieben, mit rechter zum Drehen, oder "
-"Leerzeichen oder Eingabetaste zum Festlegen oder ESC zum Abbrechen"
-
-#: ../bin/cturnout.c:2282
-#, c-format
-msgid "Angle = %0.3f (%s)"
-msgstr "Winkel = %0.3f (%s)"
-
-#: ../bin/cturnout.c:2372 ../bin/param.c:2584
-msgid "Close"
-msgstr "Schliessen"
-
-#: ../bin/cturnout.c:2389
-msgid "Pick turnout and active End Point, then place on the layout"
-msgstr ""
-"Weiche und aktiven Endpunkt auswählen und dann auf den Gleisplan setzen"
-
-#: ../bin/cturntbl.c:47 ../bin/cturntbl.c:241 ../bin/cturntbl.c:771
-#: ../bin/cturntbl.c:784
-msgid "Diameter"
-msgstr "Durchmesser"
-
-#: ../bin/cturntbl.c:242
-msgid "# EndPt"
-msgstr "Anzahl Endpunkte"
-
-#: ../bin/cturntbl.c:276
-#, c-format
-msgid "Turntable(%d): Layer=%d Center=[%s %s] Diameter=%s #EP=%d"
-msgstr ""
-"Drehscheibe(%d): Ebene=%d Mittelpunkt=[%s %s] Durchmesser=%s Anzahl "
-"Endpunkte=%d"
-
-#: ../bin/cturntbl.c:291 ../bin/cturntbl.c:829
-msgid "Turntable"
-msgstr "Drehscheibe"
-
-#: ../bin/cturntbl.c:549
-msgid "Drag to create stall track"
-msgstr "Ziehen um Schuppengleis zu erstellen"
-
-#: ../bin/cturntbl.c:801
-msgid "Create Turntable"
-msgstr "Drehscheibe setzen"
-
-#: ../bin/cundo.c:156
-msgid "Undo Trace"
-msgstr "Undo Trace"
-
-#: ../bin/cundo.c:490
-#, c-format
-msgid "Undo: %s"
-msgstr "Rückgängig: %s"
-
-#: ../bin/cundo.c:493 ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:133
-msgid "Undo last command"
-msgstr "Letzten Befehl rückgängig machen"
-
-#: ../bin/cundo.c:498
-#, c-format
-msgid "Redo: %s"
-msgstr "Wiederholen: %s"
-
-#: ../bin/cundo.c:501 ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:103
-msgid "Redo last undo"
-msgstr "Rückgängig gemachten Befehl wiederholen"
-
-#: ../bin/custom.c:160
-#, c-format
-msgid "%s Turnout Designer"
-msgstr "%s Weichendesigner"
-
-#: ../bin/custom.c:165
-#, c-format
-msgid "%s Version %s"
-msgstr "%s Version %s"
-
-#: ../bin/custom.c:170
-#, c-format
-msgid "%s Files|*.xtc"
-msgstr "%s-Gleispläne|*.xtc"
-
-#: ../bin/custom.c:175
-#, c-format
-msgid "%s Import Files|*.%sti"
-msgstr "%s-Importdateien|*.%sti"
-
-#: ../bin/custom.c:180
-msgid "Data Exchange Format Files|*.dxf"
-msgstr "Data Exchange Format Dateien|*.dxf"
-
-#: ../bin/custom.c:184
-#, c-format
-msgid "%s Record Files|*.%str"
-msgstr "%s-Aufzeichnungsdateien|*.%str"
-
-#: ../bin/custom.c:189
-#, c-format
-msgid "%s Note Files|*.not"
-msgstr "%s-Notizen|*.not"
-
-#: ../bin/custom.c:194
-#, c-format
-msgid "%s Log Files|*.log"
-msgstr "%s-Protokolldateien|*.log"
-
-#: ../bin/custom.c:199
-#, c-format
-msgid "%s PartsList Files|*.txt"
-msgstr "%s-Stücklisten|*.txt"
-
-#: ../bin/dbench.c:38
-msgid " L-Girder"
-msgstr "L-Träger"
-
-#: ../bin/dbench.c:38
-msgid " T-Girder"
-msgstr "T-Träger"
-
-#: ../bin/dbench.c:61
-msgid "On Edge"
-msgstr "Hochkant"
-
-#: ../bin/dbench.c:62
-msgid "Flat"
-msgstr "Flach"
-
-#: ../bin/dbench.c:66
-msgid "Left-Down"
-msgstr "Links unten"
-
-#: ../bin/dbench.c:67
-msgid "Right-Down"
-msgstr "Rechts unten"
-
-#: ../bin/dbench.c:68
-msgid "Left-Up"
-msgstr "Links oben"
-
-#: ../bin/dbench.c:69
-msgid "Right-Up"
-msgstr "Rechts oben"
-
-#: ../bin/dbench.c:70
-msgid "Left-Inverted"
-msgstr "Links umgekehrt"
-
-#: ../bin/dbench.c:71
-msgid "Right-Inverted"
-msgstr "Rechts umgekehrt"
-
-#: ../bin/dbench.c:76
-msgid "Inverted"
-msgstr "Umgekehrt"
-
-#: ../bin/dbench.c:142
-#, c-format
-msgid ""
-"Bad BenchType for %s:\n"
-"%s"
-msgstr ""
-"Falscher Trägertyp %s:\n"
-"%s"
-
-#: ../bin/dbench.c:142 ../bin/dcar.c:4225 ../bin/dcar.c:4409 ../bin/dcar.c:4419
-#: ../bin/dcar.c:4466 ../bin/dcar.c:4473 ../bin/dcar.c:4491 ../bin/dcar.c:4504
-#: ../bin/dcar.c:4509 ../bin/dcar.c:4538 ../bin/dcar.c:4699 ../bin/fileio.c:242
-#: ../bin/fileio.c:538 ../bin/fileio.c:656 ../bin/fileio.c:749
-#: ../bin/fileio.c:938 ../bin/fileio.c:1231 ../bin/fileio.c:1375
-#: ../bin/fileio.c:1461 ../bin/fileio.c:1507 ../bin/macro.c:165
-#: ../bin/macro.c:833 ../bin/macro.c:849 ../bin/macro.c:1152
-#: ../bin/param.c:2062 ../bin/track.c:931 ../bin/track.c:1297
-#: ../bin/track.c:1588 ../bin/track.c:1592 ../bin/track.c:1612
-#: ../bin/track.c:1674 ../wlib/gtklib/wpref.c:246 ../wlib/gtklib/wpref.c:253
-msgid "Continue"
-msgstr "Weiter"
-
-#: ../bin/dbitmap.c:99 ../bin/dbitmap.c:103
-msgid "Drawn with "
-msgstr "Gezeichnet mit "
-
-#: ../bin/dbitmap.c:113
-msgid "Drawing tracks to BitMap"
-msgstr "Gleisplan als Grafik ausgeben"
-
-#: ../bin/dbitmap.c:120
-msgid "Writing BitMap to file"
-msgstr "Grafik in Datei speichern"
-
-#: ../bin/dbitmap.c:141
-msgid "Print Titles"
-msgstr "Überschriften ausgeben"
-
-#: ../bin/dbitmap.c:141
-msgid "Print Borders"
-msgstr "Rahmen ausgeben"
-
-#: ../bin/dbitmap.c:142
-msgid "Print Centerline"
-msgstr "Mittellinie ausgeben"
-
-#: ../bin/dbitmap.c:149
-msgid " dpi"
-msgstr " dpi"
-
-#: ../bin/dbitmap.c:151
-msgid "Bitmap : 99999 by 99999 pixels"
-msgstr "Grafik : 99999 auf 99999 Bildpunkte"
-
-#: ../bin/dbitmap.c:153
-msgid "Approximate file size: 999.9Mb"
-msgstr "Ungefähre Dateigrösse : 999.9Mb"
-
-#: ../bin/dbitmap.c:183
-#, c-format
-msgid "Bitmap : %ld by %ld pixels"
-msgstr "Grafik : %ld auf %ld Bildpunkte"
-
-#: ../bin/dbitmap.c:187
-#, c-format
-msgid "Approximate file size : %0.0f"
-msgstr "Ungefähre Dateigrösse : %0.0f"
-
-#: ../bin/dbitmap.c:189
-#, c-format
-msgid "Approximate file size : %0.1fKb"
-msgstr "Ungefähre Dateigrösse : %0.1fKb"
-
-#: ../bin/dbitmap.c:191
-#, c-format
-msgid "Approximate file size : %0.1fMb"
-msgstr "Ungefähre Dateigrösse : %0.1fMb"
-
-#: ../bin/dbitmap.c:205 ../bin/param.c:2584 ../bin/misc.c:1053
-#: ../bin/misc.c:1123 ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:521
-msgid "Cancel"
-msgstr "Abbruch"
-
-#: ../bin/dbitmap.c:210
-msgid "Save Bitmap"
-msgstr "Grafik speichern"
-
-#: ../bin/dbitmap.c:212
-msgid "Bitmap files|*.bmp"
-msgstr "Grafikdateien|*.bmp"
-
-#: ../bin/dbitmap.c:214
-msgid "Bitmap files|*.xpm"
-msgstr "Grafikdateien|*.xpm"
-
-#: ../bin/dbitmap.c:235
-msgid "BitMap"
-msgstr "Grafik"
-
-#: ../bin/dcar.c:45
-msgid "Truck"
-msgstr "Drehgestell"
-
-#: ../bin/dcar.c:45
-msgid "Body"
-msgstr "Aufbau"
-
-#: ../bin/dcar.c:146 ../bin/dcar.c:2437 ../bin/dcar.c:2441
-msgid "Unknown"
-msgstr "Unbekannt"
-
-#: ../bin/dcar.c:479
-msgid "Diesel Loco"
-msgstr "Diesellok"
-
-#: ../bin/dcar.c:480
-msgid "Steam Loco"
-msgstr "Dampflok"
-
-#: ../bin/dcar.c:481
-msgid "Elect Loco"
-msgstr "Elektrolok"
-
-#: ../bin/dcar.c:482
-msgid "Freight Car"
-msgstr "Güterwagen"
-
-#: ../bin/dcar.c:483
-msgid "Psngr Car"
-msgstr "Personenwagen"
-
-#: ../bin/dcar.c:484
-msgid "M-O-W"
-msgstr "Arbeitswagen"
-
-#: ../bin/dcar.c:485 ../bin/doption.c:221
-msgid "Other"
-msgstr "Sonstige"
-
-#: ../bin/dcar.c:1084 ../bin/dcar.c:4776
-msgid "N/A"
-msgstr "Keine Angabe"
-
-#: ../bin/dcar.c:1085 ../bin/dcar.c:4781
-msgid "Mint"
-msgstr "Neuwertig"
-
-#: ../bin/dcar.c:1086 ../bin/dcar.c:4780
-msgid "Excellent"
-msgstr "Exzellent"
-
-#: ../bin/dcar.c:1087 ../bin/dcar.c:4779
-msgid "Good"
-msgstr "Gut"
-
-#: ../bin/dcar.c:1088 ../bin/dcar.c:4778
-msgid "Fair"
-msgstr "In Ordnung"
-
-#: ../bin/dcar.c:1089 ../bin/dcar.c:4777
-msgid "Poor"
-msgstr "Schlecht"
-
-#: ../bin/dcar.c:1365 ../bin/dpricels.c:46
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:392
-msgid "Item"
-msgstr "Gegenstand"
-
-#: ../bin/dcar.c:1912 ../wlib/gtklib/gtkmisc.c:398
-#: ../wlib/mswlib/mswmisc.c:1707
-msgid "Information"
-msgstr "Information"
-
-#: ../bin/dcar.c:1912
-msgid "Customize"
-msgstr "Anpassen"
-
-#: ../bin/dcar.c:1924
-msgid "Sequential"
-msgstr "Aufsteigend"
-
-#: ../bin/dcar.c:1924
-msgid "Repeated"
-msgstr "Wiederholend"
-
-#: ../bin/dcar.c:1935 ../bin/dcar.c:1937 ../bin/dcar.c:5106
-msgid "Prototype"
-msgstr "Vorbild"
-
-#: ../bin/dcar.c:1941 ../bin/dcar.c:4070 ../bin/dcar.c:4075
-msgid "Type"
-msgstr "Typ"
-
-#: ../bin/dcar.c:1943
-msgid "Part"
-msgstr "Teil"
-
-#: ../bin/dcar.c:1945 ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:335
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:505
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:506
-msgid "Part Number"
-msgstr "Bestellnummer"
-
-#: ../bin/dcar.c:1947
-msgid "Loco?"
-msgstr "Lok?"
-
-#: ../bin/dcar.c:1951 ../bin/dcar.c:4108
-msgid "Import"
-msgstr "Import"
-
-#: ../bin/dcar.c:1958
-msgid "Mode"
-msgstr "Modus"
-
-#: ../bin/dcar.c:1964
-msgid "Reporting Mark"
-msgstr "Wagennummer"
-
-#: ../bin/dcar.c:1970
-msgid "Car Length"
-msgstr "Wagenlänge"
-
-#: ../bin/dcar.c:1974
-msgid "Truck Centers"
-msgstr "Drehgestellabstand"
-
-#: ../bin/dcar.c:1976
-msgid "Coupler Mount"
-msgstr "Kupplungsbefestigung"
-
-#: ../bin/dcar.c:1978
-msgid "Coupled Length"
-msgstr "Gekuppelte Länge"
-
-#: ../bin/dcar.c:1980 ../bin/dcar.c:3946
-msgid "Coupler Length"
-msgstr "Kupplungslänge"
-
-#: ../bin/dcar.c:1988
-msgid "Purchase Price"
-msgstr "Kaufpreis"
-
-#: ../bin/dcar.c:1990 ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:207
-msgid "Current Price"
-msgstr "Aktueller Preis"
-
-#: ../bin/dcar.c:1992 ../bin/dcar.c:4072 ../bin/dcar.c:4077
-msgid "Condition"
-msgstr "Zustand"
-
-#: ../bin/dcar.c:1994
-msgid "Purchase Date"
-msgstr "Kaufdatum"
-
-#: ../bin/dcar.c:1996 ../bin/dcar.c:4077
-msgid "Service Date"
-msgstr "Servicedatum"
-
-#: ../bin/dcar.c:1998
-msgid "Quantity"
-msgstr "Anzahl"
-
-#: ../bin/dcar.c:2000
-msgid "Numbers"
-msgstr "Nummern"
-
-#: ../bin/dcar.c:2002 ../bin/dcar.c:4073
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:61
-msgid "Notes"
-msgstr "Notizen"
-
-#: ../bin/dcar.c:2009 ../bin/dcustmgm.c:60
-msgid "Car Part"
-msgstr "Wagenvorlage"
-
-#: ../bin/dcar.c:2010 ../bin/dcustmgm.c:61
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:182
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:183
-msgid "Car Prototype"
-msgstr "Wagenvorbild"
-
-#: ../bin/dcar.c:2371 ../bin/dcar.c:2688
-msgid "Undecorated"
-msgstr "Unbeschriftet"
-
-#: ../bin/dcar.c:2429 ../bin/dcar.c:2433 ../bin/fileio.c:656
-msgid "Custom"
-msgstr "Individual"
-
-#: ../bin/dcar.c:2598
-msgid "Undecorated "
-msgstr "Unbeschriftet "
-
-#: ../bin/dcar.c:2818
-#, c-format
-msgid "New %s Scale Car"
-msgstr "Neuer Wagen in %s"
-
-#: ../bin/dcar.c:2819 ../bin/dcar.c:2828 ../bin/dcar.c:2837 ../bin/dcar.c:3976
-#: ../bin/dcar.c:4104
-msgid "Add"
-msgstr "Hinzufügen"
-
-#: ../bin/dcar.c:2821
-#, c-format
-msgid "Update %s Scale Car"
-msgstr "Aktualisiere Wagen in Maßstab %s"
-
-#: ../bin/dcar.c:2822 ../bin/dcar.c:2831 ../bin/dcar.c:2840 ../bin/dcmpnd.c:166
-msgid "Update"
-msgstr "Aktualisieren"
-
-#: ../bin/dcar.c:2827
-#, c-format
-msgid "New %s Scale Car Part"
-msgstr "Neue Wagenvorlage in %s"
-
-#: ../bin/dcar.c:2830
-#, c-format
-msgid "Update %s Scale Car Part"
-msgstr "Wagenvorlage in %s aktualisieren"
-
-#: ../bin/dcar.c:2836
-msgid "New Prototype"
-msgstr "Neues Vorbild"
-
-#: ../bin/dcar.c:2839
-msgid "Update Prototype"
-msgstr "Aktualisiere Vorbild"
-
-#: ../bin/dcar.c:3482
-msgid "Enter a 8 digit numeric date"
-msgstr "Geben Sie ein 8-stelliges numerisches Datum ein"
-
-#: ../bin/dcar.c:3485
-msgid "Enter a 8 digit date"
-msgstr "Geben Sie ein 8-stelliges Datum ein"
-
-#: ../bin/dcar.c:3487
-msgid "Enter a date between 19000101 and 21991231"
-msgstr "Geben Sie ein Datum zwischen 19000101 und 21991231 ein"
-
-#: ../bin/dcar.c:3492
-msgid "Invalid month"
-msgstr "Ungültiger Monat"
-
-#: ../bin/dcar.c:3494
-msgid "Invalid day"
-msgstr "Ungültiger Kalendertag"
-
-#: ../bin/dcar.c:3580
-msgid "Enter a Prototype name"
-msgstr "Geben Sie den Namen des Vorbild ein"
-
-#: ../bin/dcar.c:3582
-msgid "Select or Enter a Manufacturer"
-msgstr "Hersteller auswählen oder eingeben"
-
-#: ../bin/dcar.c:3584
-msgid "Enter a Part Number"
-msgstr "Bestellnummer eingeben"
-
-#: ../bin/dcar.c:3586
-msgid "Enter the Car Length"
-msgstr "Länge des Wagen eingeben"
-
-#: ../bin/dcar.c:3588
-msgid "Enter the Car Width"
-msgstr "Breite des Wagen eingeben"
-
-#: ../bin/dcar.c:3590
-msgid "Enter the Truck Centers"
-msgstr "Drehgestellabstand eingeben"
-
-#: ../bin/dcar.c:3592
-msgid "Truck Centers must be less than Car Length"
-msgstr "Abstand der Drehgestelle muss kleiner als die Wagenlänge sein"
-
-#: ../bin/dcar.c:3594
-msgid "Enter the Coupled Length or Coupler Length"
-msgstr "Geben Sie die gekuppelte Länge oder die Kupplungslänge ein"
-
-#: ../bin/dcar.c:3596
-msgid "Enter the Coupled Length"
-msgstr "Geben Sie die gekuppelte Länge ein"
-
-#: ../bin/dcar.c:3598
-msgid "Enter a item Index"
-msgstr "Geben Sie eine Kennnummer ein"
-
-#: ../bin/dcar.c:3600
-msgid "Purchase Price is not valid"
-msgstr "Kaufpreis ist nicht gültig"
-
-#: ../bin/dcar.c:3602
-msgid "Current Price is not valid"
-msgstr "Aktueller Preis ist nicht gültig"
-
-#: ../bin/dcar.c:3604
-msgid "Purchase Date is not valid"
-msgstr "Kaufdatum ist nicht gültig"
-
-#: ../bin/dcar.c:3606
-msgid "Service Date is not valid"
-msgstr "Servicedatum ist nicht gültig"
-
-#: ../bin/dcar.c:3609
-#, c-format
-msgid "Item Index %ld duplicated an existing item: updated to new value"
-msgstr "Kennnummer %ld existiert bereits: mit neuem Wert aktualisiert"
-
-#: ../bin/dcar.c:3804
-#, c-format
-msgid "Added %ld new Cars"
-msgstr "%ld neue Wagen hinzugefügt"
-
-#: ../bin/dcar.c:3806
-msgid "Added new Car"
-msgstr "Neuen Wagen hinzugefügt"
-
-#: ../bin/dcar.c:3809
-msgid "Updated Car"
-msgstr "Wagen aktualisiert"
-
-#: ../bin/dcar.c:3812
-msgid " and Part"
-msgstr " und Teil"
-
-#: ../bin/dcar.c:3839
-#, c-format
-msgid "%s Part: %s %s %s %s %s %s"
-msgstr "%s Teil: %s %s %s %s %s %s"
-
-#: ../bin/dcar.c:3839 ../bin/dcar.c:3856
-msgid "Added new"
-msgstr "Neu hinzugefügt"
-
-#: ../bin/dcar.c:3839 ../bin/dcar.c:3856
-msgid "Updated"
-msgstr "Aktualisiert"
-
-#: ../bin/dcar.c:3855
-#, c-format
-msgid "%s Prototype: %s%s."
-msgstr "%s Vorbild: %s%s."
-
-#: ../bin/dcar.c:3857
-msgid ". Enter new values or press Close"
-msgstr ". Neue Werte eingeben oder Abbruch drücken"
-
-#: ../bin/dcar.c:3976
-msgid "New Car Part"
-msgstr "Neues Wagenmuster"
-
-#: ../bin/dcar.c:4071 ../bin/dcar.c:4076
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:365
-msgid "Roadname"
-msgstr "Gesellschaft"
-
-#: ../bin/dcar.c:4071
-msgid "Purc Price"
-msgstr "Kaufpreis"
-
-#: ../bin/dcar.c:4072 ../bin/dcar.c:4077
-msgid "Curr Price"
-msgstr "Akt. Preis"
-
-#: ../bin/dcar.c:4072
-msgid "Purc Date"
-msgstr "Kaufdaum"
-
-#: ../bin/dcar.c:4072
-msgid "Srvc Date"
-msgstr "Servicedatum"
-
-#: ../bin/dcar.c:4073
-msgid "Locat'n"
-msgstr "Ort"
-
-#: ../bin/dcar.c:4076
-msgid "RepMarks"
-msgstr "Wagennummer"
-
-#: ../bin/dcar.c:4076
-msgid "Purch Price"
-msgstr "Kaufpreis"
-
-#: ../bin/dcar.c:4077
-msgid "Purch Date"
-msgstr "Kaufdatum"
-
-#: ../bin/dcar.c:4094
-msgid "Sort By"
-msgstr "Sortierung"
-
-#: ../bin/dcar.c:4102 ../bin/dcustmgm.c:53 ../bin/dcustmgm.c:90
-msgid "Edit"
-msgstr "Bearbeiten"
-
-#: ../bin/dcar.c:4106 ../bin/dcustmgm.c:55 ../bin/misc.c:2072
-msgid "Delete"
-msgstr "Löschen"
-
-#: ../bin/dcar.c:4110 ../bin/fileio.c:1231
-msgid "Export"
-msgstr "Export"
-
-#: ../bin/dcar.c:4112 ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:522
-msgid "List"
-msgstr "Auflisten"
-
-#: ../bin/dcar.c:4225 ../bin/dcar.c:4955 ../bin/misc.c:2336
-msgid "Car Inventory"
-msgstr "Wagenverzeichnis"
-
-#: ../bin/dcar.c:4345
-msgid "List Cars"
-msgstr "Wagen auflisten"
-
-#: ../bin/dcar.c:4466 ../bin/dcar.c:4629
-msgid "Import Cars"
-msgstr "Wagen importieren"
-
-#: ../bin/dcar.c:4630 ../bin/dcar.c:4751
-msgid "Comma-Separated-Values|*.csv"
-msgstr "durch-Kommata getrente Werte|*.csv"
-
-#: ../bin/dcar.c:4699 ../bin/dcar.c:4750
-msgid "Export Cars"
-msgstr "Wagen exportieren"
-
-#: ../bin/dcar.c:4784
-msgid "Layout"
-msgstr "Anlage"
-
-#: ../bin/dcar.c:4786
-msgid "Shelf"
-msgstr "Regal"
-
-#: ../bin/dcmpnd.c:70 ../bin/dlayer.c:331 ../bin/misc.c:472 ../bin/misc.c:500
-msgid "Load"
-msgstr "Laden"
-
-#: ../bin/dcmpnd.c:103
-msgid "Updating definitions, please wait"
-msgstr "Bitte warten, Definitionen werden aktualisiert"
-
-#: ../bin/dcmpnd.c:166
-msgid "Update Title"
-msgstr "Ãœberschrift aktualisieren"
-
-#: ../bin/dcmpnd.c:226
-#, c-format
-msgid "End-Point #%d of the selected and actual turnouts are not close"
-msgstr ""
-"Endpunkte #%d der ausgewählten und der aktuellen Weiche sind nicht "
-"beieinander"
-
-#: ../bin/dcmpnd.c:235
-#, c-format
-msgid "End-Point #%d of the selected and actual turnouts are not aligned"
-msgstr ""
-"Endpunkte #%d der ausgewählten und der aktuellen Weiche sind nicht "
-"ausgerichtet"
-
-#: ../bin/dcmpnd.c:254
-msgid "The selected Turnout had a differing number of End-Points"
-msgstr "Die ausgewählte Weiche hatte eine andere Anzahl von Endpunkten"
-
-#: ../bin/dcmpnd.c:315
-msgid "Skip"
-msgstr "Überspringen"
-
-#: ../bin/dcmpnd.c:347
-#, c-format
-msgid "%d Track(s) refreshed"
-msgstr "%d Gleise bearbeitet"
-
-#: ../bin/dcmpnd.c:387
-msgid "Refresh Turnout/Structure"
-msgstr "Weichen/Gebäude neu laden"
-
-#: ../bin/dcmpnd.c:389
-msgid "Choose a Turnout/Structure to replace:"
-msgstr "Zu ersetzende Weiche / Gebäude auswählen"
-
-#: ../bin/dcmpnd.c:399 ../bin/doption.c:215
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:31
-msgid "Turnouts"
-msgstr "Weichen"
-
-#: ../bin/dcmpnd.c:399
-msgid "Structures"
-msgstr "Gebäude"
-
-#: ../bin/dcmpnd.c:428
-msgid "Choose another Turnout/Structure to replace:"
-msgstr "Ein anderes zu ersetzende Weiche / Gebäude auswählen"
-
-#: ../bin/dcmpnd.c:530
-msgid "Rename Object"
-msgstr "Objekt umbenennen"
-
-#: ../bin/dcustmgm.c:57
-msgid "Move To"
-msgstr "Verschieben nach"
-
-#: ../bin/dcustmgm.c:90
-msgid "Rename"
-msgstr "Umbenennen"
-
-#: ../bin/dcustmgm.c:157
-msgid "Label"
-msgstr "Beschriftung"
-
-#: ../bin/dcustmgm.c:192
-msgid "Contents Label"
-msgstr "Inhaltsbeschriftung"
-
-#: ../bin/dcustmgm.c:239
-msgid "Move To XTP"
-msgstr "\"In Paramterdatei verschieben"
-
-#: ../bin/dcustmgm.c:240
-msgid "Parameter File|*.xtp"
-msgstr "Parameterdateien|*.xtp"
-
-#: ../bin/dcustmgm.c:350
-msgid "Manage custom designed parts"
-msgstr "Eigene Teile verwalten"
-
-#: ../bin/dease.c:63
-msgid "Sharp"
-msgstr "Eng"
-
-#: ../bin/dease.c:63
-msgid "Broad"
-msgstr "Weit"
-
-#: ../bin/dease.c:70
-msgid "Value"
-msgstr "Wert"
-
-#: ../bin/dease.c:71 ../bin/tease.c:504
-msgid "R"
-msgstr "R"
-
-#: ../bin/dease.c:73 ../bin/tease.c:505
-msgid "L"
-msgstr "L"
-
-#: ../bin/dease.c:220
-msgid "Easement"
-msgstr "Übergangsbogen"
-
-#: ../bin/denum.c:44
-msgid "Prices"
-msgstr "Preise"
-
-#: ../bin/denum.c:49
-msgid "Save As ..."
-msgstr "Speichern unter..."
-
-#: ../bin/denum.c:129 ../bin/denum.c:184 ../bin/denum.c:219
-msgid "Each"
-msgstr "Je"
-
-#: ../bin/denum.c:143 ../bin/denum.c:144
-msgid "Parts List"
-msgstr "Teileliste"
-
-#: ../bin/denum.c:149
-#, c-format
-msgid ""
-"%s Parts List\n"
-"\n"
-msgstr ""
-"%s Teileliste\n"
-"\n"
-
-#: ../bin/denum.c:184 ../bin/denum.c:221 ../bin/denum.c:230
-msgid "Extended"
-msgstr "Erweitert"
-
-#: ../bin/denum.c:230 ../bin/denum.c:233
-msgid "Total"
-msgstr "Summe"
-
-#: ../bin/dlayer.c:323
-msgid "Visible"
-msgstr "Sichtbar"
-
-#: ../bin/dlayer.c:325
-msgid "Frozen"
-msgstr "Fixiert"
-
-#: ../bin/dlayer.c:327
-msgid "On Map"
-msgstr "Auf der Karte"
-
-#: ../bin/dlayer.c:330
-msgid "Personal Preferences"
-msgstr "Persönliche Einstellungen"
-
-#: ../bin/dlayer.c:332 ../bin/draw.c:1308 ../bin/macro.c:1241
-msgid "Save"
-msgstr "Speichern"
-
-#: ../bin/dlayer.c:333
-msgid "Defaults"
-msgstr "Standardwerte"
-
-#: ../bin/dlayer.c:334
-msgid "Number of Layer Buttons"
-msgstr "Anzahl der Ebenenknöpfe"
-
-#: ../bin/dlayer.c:351 ../bin/dlayer.c:734 ../bin/dlayer.c:744
-#: ../bin/dlayer.c:788 ../bin/dlayer.c:967
-msgid "Main"
-msgstr "Haupt"
-
-#: ../bin/dlayer.c:456 ../bin/dlayer.c:689 ../bin/dlayer.c:746
-#: ../bin/dlayer.c:790 ../bin/dlayer.c:959
-msgid "Show/Hide Layer"
-msgstr "Ebene anzeigen/verbergen"
-
-#: ../bin/dlayer.c:850
-msgid "Layers"
-msgstr "Ebenen"
-
-#: ../bin/doption.c:99
-msgid "Room Width"
-msgstr "Zimmerbreite"
-
-#: ../bin/doption.c:100
-msgid " Height"
-msgstr " -länge"
-
-#: ../bin/doption.c:101
-msgid "Layout Title"
-msgstr "Gleisplantitel"
-
-#: ../bin/doption.c:102
-msgid "Subtitle"
-msgstr "Untertitel"
-
-#: ../bin/doption.c:104
-msgid " Gauge"
-msgstr "Spurweite"
-
-#: ../bin/doption.c:105
-msgid "Min Track Radius"
-msgstr "Mindestgleisradius"
-
-#: ../bin/doption.c:106
-msgid " Max Track Grade"
-msgstr "Maximale Gleissteigung"
-
-#: ../bin/doption.c:155
-msgid "Layout Options"
-msgstr "Gleisplanoptionen"
-
-#: ../bin/doption.c:213
-msgid "Auto Pan"
-msgstr "Automatischer Ausschnitt"
-
-#: ../bin/doption.c:214
-msgid "Dash"
-msgstr "Gestrichelt"
-
-#: ../bin/doption.c:215
-msgid "All"
-msgstr "Alle"
-
-#: ../bin/doption.c:216
-msgid "Outline"
-msgstr "Umriss"
-
-#: ../bin/doption.c:216
-msgid "Solid"
-msgstr "Gefüllt"
-
-#: ../bin/doption.c:217
-msgid "Off"
-msgstr "Aus"
-
-#: ../bin/doption.c:217
-msgid "On"
-msgstr "An"
-
-#: ../bin/doption.c:218
-msgid "Track Descriptions"
-msgstr "Gleisbeschreibungen"
-
-#: ../bin/doption.c:218
-msgid "Lengths"
-msgstr "Längen"
-
-#: ../bin/doption.c:218
-msgid "EndPt Elevations"
-msgstr "Endpunkthöhen"
-
-#: ../bin/doption.c:218
-msgid "Track Elevations"
-msgstr "Gleishöhen"
-
-#: ../bin/doption.c:218
-msgid "Cars"
-msgstr "Wagen"
-
-#: ../bin/doption.c:219 ../bin/doption.c:220
-msgid "Descr"
-msgstr "Beschreibung"
-
-#: ../bin/doption.c:220
-msgid "Manuf"
-msgstr "Hersteller"
-
-#: ../bin/doption.c:221
-msgid "Tracks"
-msgstr "Gleise"
-
-#: ../bin/doption.c:222
-msgid "Live Map"
-msgstr "Dynamische Karte"
-
-#: ../bin/doption.c:223
-msgid "Hide Trains On Hidden Track"
-msgstr "Verberge Züge auf verborgenem Gleis"
-
-#: ../bin/doption.c:228
-msgid "Color Layers"
-msgstr "Ebenenfarben"
-
-#: ../bin/doption.c:229
-msgid "Draw Tunnel"
-msgstr "Zeichne Tunnel"
-
-#: ../bin/doption.c:230
-msgid "Draw EndPts"
-msgstr "Zeichne Endpunkte"
-
-#: ../bin/doption.c:231
-msgid "Draw Ties"
-msgstr "Schwellen zeichnen"
-
-#: ../bin/doption.c:232
-msgid "Draw Centers"
-msgstr "Mittelpunkt zeichnen"
-
-#: ../bin/doption.c:233
-msgid "Two Rail Scale"
-msgstr "Maßstab für Gleis"
-
-#: ../bin/doption.c:234
-msgid "Map Scale"
-msgstr "Kartenmaßstab"
-
-#: ../bin/doption.c:237
-msgid "Label Enable"
-msgstr "Beschriftungen zeigen"
-
-#: ../bin/doption.c:238
-msgid "Label Scale"
-msgstr "Maßstab der Beschriftungen"
-
-#: ../bin/doption.c:239
-msgid "Label Font Size"
-msgstr "Grösse für Beschriftungen"
-
-#: ../bin/doption.c:240
-msgid "Hot Bar Labels"
-msgstr "Teilekatalog Beschriftungen"
-
-#: ../bin/doption.c:241
-msgid "Layout Labels"
-msgstr "Anlagenbeschriftungen"
-
-#: ../bin/doption.c:242
-msgid "List Labels"
-msgstr "Listenüberschriften"
-
-#: ../bin/doption.c:245
-msgid "Car Labels"
-msgstr "Wagenbeschriftungen"
-
-#: ../bin/doption.c:246
-msgid "Train Update Delay"
-msgstr "Aktualisierungsintervalle"
-
-#: ../bin/doption.c:274
-msgid "Display Options"
-msgstr "Anzeigeoptionen"
-
-#: ../bin/doption.c:275
-msgid "Proto"
-msgstr "Vorbild"
-
-#: ../bin/doption.c:276
-msgid "Proto/Manuf"
-msgstr "Vorbild/Hersteller"
-
-#: ../bin/doption.c:277
-msgid "Proto/Manuf/Part Number"
-msgstr "Vorbild/Hersteller/Bestellnr. "
-
-#: ../bin/doption.c:278
-msgid "Proto/Manuf/Partno/Item"
-msgstr "Vorbild/Hersteller/Bestellnr. /lfd. Nr."
-
-#: ../bin/doption.c:279
-msgid "Manuf/Proto"
-msgstr "Hersteller/Vorbild"
-
-#: ../bin/doption.c:280
-msgid "Manuf/Proto/Part Number"
-msgstr "Hersteller/Vorbild/Bestellnr."
-
-#: ../bin/doption.c:281
-msgid "Manuf/Proto/Partno/Item"
-msgstr "Hersteller/Vorbild/Bestellnr./lfd. Nr."
-
-#: ../bin/doption.c:312
-msgid "End-Points"
-msgstr "Endpunkte"
-
-#: ../bin/doption.c:315 ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:12
-msgid "Describe"
-msgstr "Eigenschaften"
-
-#: ../bin/doption.c:320
-msgid "Normal: Command List, Shift: Command Options"
-msgstr "Normal: Befehlsliste, Umschalt: Befehlsoptionen"
-
-#: ../bin/doption.c:320
-msgid "Normal: Command Options, Shift: Command List"
-msgstr "Normal: Befehlsoptionen, Umschalt: Befehlsliste"
-
-#: ../bin/doption.c:323
-msgid "Draw Moving Tracks"
-msgstr "Zeichne bewegte Gleise"
-
-#: ../bin/doption.c:324
-msgid "Default Command"
-msgstr "Standardbefehl"
-
-#: ../bin/doption.c:326
-msgid "Hide Selection Window"
-msgstr "Verberge Auswahlfenster"
-
-#: ../bin/doption.c:328
-msgid "Right Click"
-msgstr "Rechte Mausetaste"
-
-#: ../bin/doption.c:354
-msgid "Command Options"
-msgstr "Befehlsoptionen"
-
-#: ../bin/doption.c:378
-msgid "English"
-msgstr "Englisch"
-
-#: ../bin/doption.c:378
-msgid "Metric"
-msgstr "Metrisch"
-
-#: ../bin/doption.c:379
-msgid "Polar"
-msgstr "Polar"
-
-#: ../bin/doption.c:379
-msgid "Cartesian"
-msgstr "Kartesisch"
-
-#: ../bin/doption.c:380
-msgid "Balloon Help"
-msgstr "Sprechblasen"
-
-#: ../bin/doption.c:381
-msgid "Load Last Layout"
-msgstr "Letzten Gleisplan laden"
-
-#: ../bin/doption.c:381
-msgid "Start New Layout"
-msgstr "Neuen Gleisplan beginnen"
-
-#: ../bin/doption.c:384
-msgid "Angles"
-msgstr "Winkel"
-
-#: ../bin/doption.c:385
-msgid "Units"
-msgstr "Einheiten"
-
-#: ../bin/doption.c:387
-msgid "Length Format"
-msgstr "Längenformat"
-
-#: ../bin/doption.c:388
-msgid "Min Track Length"
-msgstr "Mindestgleislänge"
-
-#: ../bin/doption.c:389
-msgid "Connection Distance"
-msgstr "Verbindungs Abstand"
-
-#: ../bin/doption.c:390
-msgid "Connection Angle"
-msgstr "Verbindungs Winkel"
-
-#: ../bin/doption.c:391
-msgid "Turntable Angle"
-msgstr "Drehscheibenwinkel"
-
-#: ../bin/doption.c:392
-msgid "Max Coupling Speed"
-msgstr "Max. Ankuppelgeschwindigkeit"
-
-#: ../bin/doption.c:394
-msgid "Drag Distance"
-msgstr "Zeichne Entfernung"
-
-#: ../bin/doption.c:395
-msgid "Drag Timeout"
-msgstr "Abriss Zeitverzögerung"
-
-#: ../bin/doption.c:396
-msgid "Min Grid Spacing"
-msgstr "Mindestrasterabstand"
-
-#: ../bin/doption.c:397
-msgid "Check Point"
-msgstr "Sicherungskopie"
-
-#: ../bin/doption.c:398
-msgid "On Program Startup"
-msgstr "Beim Programmstart"
-
-#: ../bin/doption.c:408 ../bin/doption.c:426
-msgid "999.999"
-msgstr "999.999"
-
-#: ../bin/doption.c:409 ../bin/doption.c:427
-msgid "999.99"
-msgstr "999.99"
-
-#: ../bin/doption.c:410 ../bin/doption.c:428
-msgid "999.9"
-msgstr "999.9"
-
-#: ../bin/doption.c:411
-msgid "999 7/8"
-msgstr "999 7/8"
-
-#: ../bin/doption.c:412
-msgid "999 63/64"
-msgstr "999 63/64"
-
-#: ../bin/doption.c:413
-msgid "999' 11.999\""
-msgstr "999' 11.999\""
-
-#: ../bin/doption.c:414
-msgid "999' 11.99\""
-msgstr "999' 11.99\""
-
-#: ../bin/doption.c:415
-msgid "999' 11.9\""
-msgstr "999' 11.9\""
-
-#: ../bin/doption.c:416
-msgid "999' 11 7/8\""
-msgstr "999' 11 7/8\""
-
-#: ../bin/doption.c:417
-msgid "999' 11 63/64\""
-msgstr "999' 11 63/64\""
-
-#: ../bin/doption.c:418
-msgid "999ft 11.999in"
-msgstr "999ft 11.999in"
-
-#: ../bin/doption.c:419
-msgid "999ft 11.99in"
-msgstr "999ft 11.99in"
-
-#: ../bin/doption.c:420
-msgid "999ft 11.9in"
-msgstr "999ft 11.9in"
-
-#: ../bin/doption.c:421
-msgid "999ft 11 7/8in"
-msgstr "999ft 11 7/8in"
-
-#: ../bin/doption.c:422
-msgid "999ft 11 63/64in"
-msgstr "999ft 11 63/64in"
-
-#: ../bin/doption.c:423
-msgid "999.999999"
-msgstr "999.999999"
-
-#: ../bin/doption.c:429
-msgid "999.999mm"
-msgstr "999.999mm"
-
-#: ../bin/doption.c:430
-msgid "999.99mm"
-msgstr "999.99mm"
-
-#: ../bin/doption.c:431
-msgid "999.9mm"
-msgstr "999.9mm"
-
-#: ../bin/doption.c:432
-msgid "999.999cm"
-msgstr "999.999cm"
-
-#: ../bin/doption.c:433
-msgid "999.99cm"
-msgstr "999.99cm"
-
-#: ../bin/doption.c:434
-msgid "999.9cm"
-msgstr "999.9cm"
-
-#: ../bin/doption.c:435
-msgid "999.999m"
-msgstr "999.999m"
-
-#: ../bin/doption.c:436
-msgid "999.99m"
-msgstr "999.99m"
-
-#: ../bin/doption.c:437
-msgid "999.9m"
-msgstr "999.9m"
-
-#: ../bin/doption.c:517
-msgid "Preferences"
-msgstr "Einstellungen"
-
-#: ../bin/doption.c:556
-msgid "Marker"
-msgstr "Markierung"
-
-#: ../bin/doption.c:557
-msgid "Border"
-msgstr "Rahmen"
-
-#: ../bin/doption.c:558
-msgid "Primary Axis"
-msgstr "Hauptachse"
-
-#: ../bin/doption.c:559
-msgid "Secondary Axis"
-msgstr "Nebenachse "
-
-#: ../bin/doption.c:560
-msgid "Normal Track"
-msgstr "Normales Gleis"
-
-#: ../bin/doption.c:561
-msgid "Selected Track"
-msgstr "Ausgewähltes Gleis"
-
-#: ../bin/doption.c:562
-msgid "Profile Path"
-msgstr "Höhenlinie"
-
-#: ../bin/doption.c:563
-msgid "Exception Track"
-msgstr "Ausnahmegleis"
-
-#: ../bin/doption.c:564
-msgid "Track Ties"
-msgstr "Gleisschwellen"
-
-#: ../bin/dpricels.c:46
-msgid "Price"
-msgstr "Preis"
-
-#: ../bin/dpricels.c:60
-msgid "Flex Track"
-msgstr "Flexgleis"
-
-#: ../bin/dpricels.c:61
-msgid "costs"
-msgstr "kostet"
-
-#: ../bin/dpricels.c:155
-msgid "Price List"
-msgstr "Preisliste"
-
-#: ../bin/dprmfile.c:102
-#, c-format
-msgid "Updating %s"
-msgstr "Aktualisiere %s"
-
-#: ../bin/dprmfile.c:221
-msgid "Show File Names"
-msgstr "Dateinamen anzeigen"
-
-#: ../bin/dprmfile.c:230 ../bin/dprmfile.c:334
-msgid "Unload"
-msgstr "Entladen"
-
-#: ../bin/dprmfile.c:231
-msgid "Browse ..."
-msgstr "Durchsuchen..."
-
-#: ../bin/dprmfile.c:334
-msgid "Reload"
-msgstr "Neu laden"
-
-#: ../bin/dprmfile.c:438
-msgid "Parameter Files"
-msgstr "Parameterdateien"
-
-#: ../bin/dprmfile.c:439
-msgid "Load Parameters"
-msgstr "Lade Parameter"
-
-#: ../bin/dprmfile.c:439
-msgid "Parameter files|*.xtp"
-msgstr "Parameterdateien|*.xtp"
-
-#: ../bin/draw.c:1308 ../bin/macro.c:600 ../bin/misc.c:559
-msgid "Quit"
-msgstr "Verlassen"
-
-#: ../bin/draw.c:1790
-#, c-format
-msgid "Zoom In Program Value %ld:1"
-msgstr "Programmierter Zoom Größer Wert %ld:1"
-
-#: ../bin/draw.c:1816
-#, c-format
-msgid "Zoom Out Program Value %ld:1"
-msgstr "Programmierter Zoom Kleiner Wert %ld:1"
-
-#: ../bin/draw.c:2426
-msgid "Map"
-msgstr "Karte"
-
-#: ../bin/drawgeom.c:166 ../bin/drawgeom.c:179
-msgid "Drag to place next end point"
-msgstr "Ziehen um den nächsten Endpunkt zu setzen"
-
-#: ../bin/drawgeom.c:224
-msgid "Drag set box size"
-msgstr "Ziehen um die Größe des Rechteck zu setzen"
-
-#: ../bin/drawgeom.c:266 ../bin/drawgeom.c:275
-#, c-format
-msgid "Length = %s, Angle = %0.2f"
-msgstr "Länge = %s, Winkel = %0.2f"
-
-#: ../bin/drawgeom.c:292
-#, c-format
-msgid "Straight Line: Length=%s Angle=%0.3f"
-msgstr "Gerade Linie: Länge=%s Winkel=%0.3f"
-
-#: ../bin/drawgeom.c:315
-#, c-format
-msgid "Curved Line: Radius=%s Angle=%0.3f Length=%s"
-msgstr "Gebogene Linie: Radius=%s Winkel=%0.3f Länge=%s"
-
-#: ../bin/drawgeom.c:330
-#, c-format
-msgid "Radius = %s"
-msgstr "Radius = %s"
-
-#: ../bin/drawgeom.c:340
-#, c-format
-msgid "Width = %s, Height = %s"
-msgstr "Breite = %s, Höhe = %s"
-
-#: ../bin/drawgeom.c:618
-#, c-format
-msgid "Length = %0.3f Angle = %0.3f"
-msgstr "Länge = %0.3f Winkel = %0.3f"
-
-#: ../bin/fileio.c:241
-msgid ""
-"\n"
-"Do you want to continue?"
-msgstr ""
-"\n"
-"Wollen Sie fortsetzen?"
-
-#: ../bin/fileio.c:538
-msgid "Parameter"
-msgstr "Parameter"
-
-#: ../bin/fileio.c:678
-#, c-format
-msgid "putTitle: title too long: %s"
-msgstr "putTitle: Titel ist zu lang: %s"
-
-#: ../bin/fileio.c:694
-msgid "Unnamed Trackplan"
-msgstr "Unbenannter Gleisplan"
-
-#: ../bin/fileio.c:710 ../bin/fileio.c:1030
-msgid "Check Pointing"
-msgstr "Schreibe Sicherungskopie"
-
-#: ../bin/fileio.c:938
-msgid "Track"
-msgstr "Gleis"
-
-#: ../bin/fileio.c:997 ../bin/fileio.c:1010
-msgid "Save Tracks"
-msgstr "Gleise speichern"
-
-#: ../bin/fileio.c:1018
-msgid "Open Tracks"
-msgstr "Gleise einlesen"
-
-#: ../bin/fileio.c:1183 ../bin/fileio.c:1201
-msgid "Import Tracks"
-msgstr "Gleise importieren"
-
-#: ../bin/fileio.c:1261
-msgid "Export Tracks"
-msgstr "Gleise exportieren"
-
-#: ../bin/fileio.c:1443
-msgid "Export to DXF"
-msgstr "Export nach DXF"
-
-#: ../bin/fileio.c:1461
-msgid "Clipboard"
-msgstr "Zwischenablage"
-
-#: ../bin/fileio.c:1504 ../bin/misc.c:2065
-msgid "Paste"
-msgstr "Einfügen"
-
-#: ../bin/i18n.c:45
-#, c-format
-msgid "Gettext initialized (PACKAGE=%s, LOCALEDIR=%s, LC_ALL=%s).\n"
-msgstr "Gettext initialisiert (PACKAGE=%s, LOCALEDIR=%s, LC_ALL=%s).\n"
-
-#: ../bin/macro.c:83
-msgid "Message"
-msgstr "Mitteilung"
-
-#: ../bin/macro.c:86
-msgid "End"
-msgstr "Ende"
-
-#: ../bin/macro.c:165
-msgid "Recording"
-msgstr "Aufzeichnen"
-
-#: ../bin/macro.c:200
-msgid "End of Playback. Hit Step to exit\n"
-msgstr "Ende der Aufzeichnung. Schritt zum Beenden drücken\n"
-
-#: ../bin/macro.c:264
-msgid "Record"
-msgstr "Aufzeichnen"
-
-#: ../bin/macro.c:594
-msgid "Step"
-msgstr "Schritt"
-
-#: ../bin/macro.c:597 ../bin/macro.c:1362
-msgid "Next"
-msgstr "Nächster"
-
-#: ../bin/macro.c:603 ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:477
-msgid "Speed"
-msgstr "Geschwindigkeit"
-
-#: ../bin/macro.c:833 ../bin/macro.c:1223
-msgid "Demo"
-msgstr "Demo"
-
-#: ../bin/macro.c:1018
-#, c-format
-msgid "Elapsed time %lu\n"
-msgstr "Abgelaufene Zeit %lu\n"
-
-#: ../bin/macro.c:1152
-msgid "Playback"
-msgstr "Wiedergabe"
-
-#: ../bin/macro.c:1226
-msgid "Slowest"
-msgstr "Langsamste"
-
-#: ../bin/macro.c:1227
-msgid "Slow"
-msgstr "Langsame"
-
-#: ../bin/macro.c:1229
-msgid "Fast"
-msgstr "Schnelle"
-
-#: ../bin/macro.c:1230
-msgid "Faster"
-msgstr "Schnellere"
-
-#: ../bin/macro.c:1231
-msgid "Fastest"
-msgstr "Schnellste"
-
-#: ../bin/macro.c:1349
-msgid "Can not find PARAMETER playback proc"
-msgstr "Kann die PARAMETER Wiedergabeprozedur nicht finden"
-
-#: ../bin/param.c:89
-msgid "Black"
-msgstr "Schwarz"
-
-#: ../bin/param.c:91
-msgid "Dark Blue"
-msgstr "Dunkelblau"
-
-#: ../bin/param.c:92
-msgid "Steel Blue"
-msgstr "Stahlblau"
-
-#: ../bin/param.c:93
-msgid "Royal Blue"
-msgstr "Königsblau"
-
-#: ../bin/param.c:94
-msgid "Blue"
-msgstr "Blau"
-
-#: ../bin/param.c:95
-msgid "Deep Sky Blue"
-msgstr "Dunkles Himmelblau"
-
-#: ../bin/param.c:96
-msgid "Light Sky Blue"
-msgstr "Helles Himmelblau"
-
-#: ../bin/param.c:97
-msgid "Powder Blue"
-msgstr "Hellblau"
-
-#: ../bin/param.c:99
-msgid "Dark Aqua"
-msgstr "Dunkelaquamarin"
-
-#: ../bin/param.c:100
-msgid "Aquamarine"
-msgstr "Aquamarin"
-
-#: ../bin/param.c:101
-msgid "Aqua"
-msgstr "Wasserblau"
-
-#: ../bin/param.c:103
-msgid "Dark Green"
-msgstr "Dunkelgrün"
-
-#: ../bin/param.c:104
-msgid "Forest Green"
-msgstr "Waldgrün"
-
-#: ../bin/param.c:105
-msgid "Lime Green"
-msgstr "Limonengrün"
-
-#: ../bin/param.c:106
-msgid "Green"
-msgstr "Grün"
-
-#: ../bin/param.c:107
-msgid "Lawn Green"
-msgstr "Rasengrün"
-
-#: ../bin/param.c:108
-msgid "Pale Green"
-msgstr "Blassgrün"
-
-#: ../bin/param.c:110
-msgid "Dark Yellow"
-msgstr "Dunkelgelb"
-
-#: ../bin/param.c:111
-msgid "Coral"
-msgstr "Koralle"
-
-#: ../bin/param.c:112
-msgid "Orange"
-msgstr "Orange"
-
-#: ../bin/param.c:113
-msgid "Gold"
-msgstr "Gold"
-
-#: ../bin/param.c:114
-msgid "Yellow"
-msgstr "Gelb"
-
-#: ../bin/param.c:116
-msgid "Saddle Brown"
-msgstr "Lederbraun"
-
-#: ../bin/param.c:117
-msgid "Brown"
-msgstr "Braun"
-
-#: ../bin/param.c:118
-msgid "Chocolate"
-msgstr "Schokolade"
-
-#: ../bin/param.c:119
-msgid "Rosy Brown"
-msgstr "Braun Rosa"
-
-#: ../bin/param.c:120
-msgid "Tan"
-msgstr "Loh"
-
-#: ../bin/param.c:121
-msgid "Beige"
-msgstr "Beige"
-
-#: ../bin/param.c:124
-msgid "Dark Red"
-msgstr "Dunkelrot"
-
-#: ../bin/param.c:125
-msgid "Tomato"
-msgstr "Tomatenrot"
-
-#: ../bin/param.c:126
-msgid "Red"
-msgstr "Rot"
-
-#: ../bin/param.c:127
-msgid "Hot Pink"
-msgstr "Knallrosa"
-
-#: ../bin/param.c:128
-msgid "Pink"
-msgstr "Rosa"
-
-#: ../bin/param.c:130
-msgid "Dark Purple"
-msgstr "Dunkelpurpur"
-
-#: ../bin/param.c:131
-msgid "Maroon"
-msgstr "Kastanie"
-
-#: ../bin/param.c:132
-msgid "Purple2"
-msgstr "Purpur 2"
-
-#: ../bin/param.c:133
-msgid "Purple"
-msgstr "Purpur"
-
-#: ../bin/param.c:134
-msgid "Violet"
-msgstr "Violett"
-
-#: ../bin/param.c:136
-msgid "Dark Gray"
-msgstr "Dunkelgrau"
-
-#: ../bin/param.c:137
-msgid "Gray"
-msgstr "Grau"
-
-#: ../bin/param.c:138
-msgid "Light Gray"
-msgstr "Hellgrau"
-
-#: ../bin/param.c:180
-msgid "Unexpected End Of String"
-msgstr "Unerwartetes Zeichenkettenende"
-
-#: ../bin/param.c:187
-msgid "Expected digit"
-msgstr "Erwartete Ziffer"
-
-#: ../bin/param.c:194
-msgid "Overflow"
-msgstr "Ãœberlau"
-
-#: ../bin/param.c:242
-msgid "Divide by 0"
-msgstr "Division durch 0"
-
-#: ../bin/param.c:250
-msgid "Expected /"
-msgstr "Erwartet /"
-
-#: ../bin/param.c:322
-msgid "Invalid Units Indicator"
-msgstr "Ungültige Masseinheit"
-
-#: ../bin/param.c:336
-msgid "Expected End Of String"
-msgstr "Erwartet Zeichenkettenende"
-
-#: ../bin/param.c:359 ../bin/param.c:1385
-#, c-format
-msgid "Invalid Number"
-msgstr "Ungültige Zahl"
-
-#: ../bin/param.c:407
-msgid "End Of String"
-msgstr "Ende der Zeichenkette"
-
-#: ../bin/param.c:1392
-#, c-format
-msgid "Enter a value > %ld"
-msgstr "Einen Wert größer als %ld eingeben"
-
-#: ../bin/param.c:1394
-#, c-format
-msgid "Enter a value < %ld"
-msgstr "Einen Wert kleiner als %ld eingeben"
-
-#: ../bin/param.c:1396
-#, c-format
-msgid "Enter a value between %ld and %ld"
-msgstr "Einen Wert zwischen %ld und %ld eingeben"
-
-#: ../bin/param.c:1444
-#, c-format
-msgid "Enter a value > %s"
-msgstr "Einen Wert größer als %s eingeben"
-
-#: ../bin/param.c:1447
-#, c-format
-msgid "Enter a value < %s"
-msgstr "Einen Wert kleiner als %s eingeben"
-
-#: ../bin/param.c:1450
-#, c-format
-msgid "Enter a value between %s and %s"
-msgstr "Einen Wert zwischen %s und %s eingeben"
-
-#: ../bin/param.c:2611
-msgid "Help"
-msgstr "Hilfe"
-
-#: ../bin/smalldlg.c:66
-msgid "Show tips at start"
-msgstr "Tipps beim Start anzeigen"
-
-#: ../bin/smalldlg.c:72
-msgid "Did you know..."
-msgstr "Wussten Sie schon..."
-
-#: ../bin/smalldlg.c:74
-msgid "Previous Tip"
-msgstr "Vorheriger Tipp"
-
-#: ../bin/smalldlg.c:75
-msgid "Next Tip"
-msgstr "Nächster Tipp"
-
-#: ../bin/smalldlg.c:91
-msgid "Tip of the Day"
-msgstr "Tipp des Tages"
-
-#: ../bin/smalldlg.c:100
-msgid "No tips are available"
-msgstr "Es sind keine Tipps verfügbar"
-
-#: ../bin/smalldlg.c:198
-msgid ""
-"XTrackCAD is a CAD (computer-aided design) program for designing model "
-"railroad layouts."
-msgstr ""
-"XTrackCAD ist ein CAD (Computer-unterstützter Entwurf) Programm\n"
-"zum Entwerfen von Modelleisenbahnanlagen."
-
-#: ../bin/smalldlg.c:221 ../bin/misc.c:2318
-msgid "About"
-msgstr "Über"
-
-#: ../bin/tcurve.c:228
-#, c-format
-msgid "Helix: turns=%ld length=%s grade=%0.1f%% sep=%s"
-msgstr "Gleiswendel: Windungen=%ld Länge=%s Steigung=%0.1f%% Abstand=%s"
-
-#: ../bin/tcurve.c:234
-#, c-format
-msgid "Helix: turns=%ld length=%s"
-msgstr "Gleiswendel: Windungen=%ld Länge=%s"
-
-#: ../bin/tcurve.c:351
-msgid "Angular Length"
-msgstr "Winkellänge"
-
-#: ../bin/tcurve.c:527
-#, c-format
-msgid ""
-"Helix Track(%d): Layer=%d Radius=%s Turns=%ld Length=%s Center=[%s,%s] "
-"EP=[%0.3f,%0.3f A%0.3f] [%0.3f,%0.3f A%0.3f]"
-msgstr ""
-"Gleiswendel(%d): Ebene=%d Radius=%s Windungen=%ld Länge=%s Mitte=[%s,%s] "
-"EP=[%0.3f,%0.3f A%0.3f] [%0.3f,%0.3f A%0.3f]"
-
-#: ../bin/tcurve.c:537
-#, c-format
-msgid ""
-"Curved Track(%d): Layer=%d Radius=%s Length=%s Center=[%s,%s] EP=[%0.3f,"
-"%0.3f A%0.3f] [%0.3f,%0.3f A%0.3f]"
-msgstr ""
-"Gleisbogenl(%d): Ebene=%d Radius=%s Länge=%s Mitte=[%s,%s] EP=[%0.3f,%0.3f A"
-"%0.3f] [%0.3f,%0.3f A%0.3f]"
-
-#: ../bin/tcurve.c:614
-msgid "Helix Track"
-msgstr "Gleiswendel"
-
-#: ../bin/tcurve.c:620
-msgid "Curved Track"
-msgstr "Gleisbogen"
-
-#: ../bin/tcurve.c:974
-msgid "Merge Curves"
-msgstr "Kurven zusammenfassen"
-
-#: ../bin/tcurve.c:1041
-msgid "Drag to change angle or create tangent"
-msgstr "Ziehen um den Winkel zu ändern oder eine Tangente zu erstellen"
-
-#: ../bin/tcurve.c:1074 ../bin/tcurve.c:1106
-msgid "Curved "
-msgstr "Gebogen "
-
-#: ../bin/tcurve.c:1080
-msgid "Tangent "
-msgstr "Tangente "
-
-#: ../bin/tcurve.c:1089
-#, c-format
-msgid "Tangent track: Length %s Angle %0.3f"
-msgstr "Gleistangente: Länge=%s Winkel=%0.3f"
-
-#: ../bin/tcurve.c:1111
-#, c-format
-msgid "Curved: Radius=%s Length=%s Angle=%0.3f"
-msgstr "Bogen: Radius=%s Länge=%s Winkel=%0.3f"
-
-#: ../bin/tease.c:506
-msgid "l0"
-msgstr "l0"
-
-#: ../bin/tease.c:507
-msgid "l1"
-msgstr "l1"
-
-#: ../bin/tease.c:549
-#, c-format
-msgid ""
-"Joint Track(%d): Layer=%d Length=%0.3f EP=[%0.3f,%0.3f A%0.3f] [%0.3f,%0.3f A"
-"%0.3f]"
-msgstr ""
-"Übergangsbogen(%d): Ebene=%d Länge=%0.3f EP=[%0.3f,%0.3f A%0.3f] [%0.3f,"
-"%0.3f A%0.3f]"
-
-#: ../bin/tease.c:594
-msgid "Easement Track"
-msgstr "Ügangsbogengleis"
-
-#: ../bin/tease.c:1260
-msgid "Merge Easements"
-msgstr "Übergangsbögen zusammenfassen"
-
-#: ../bin/tease.c:1325
-msgid "Split Easement Curve"
-msgstr "Übergangsbogen auftrennen"
-
-#: ../bin/track.c:1051
-msgid "Move Objects Above"
-msgstr "Objekte nach oben"
-
-#: ../bin/track.c:1071
-msgid "Mode Objects Below"
-msgstr "Objekte nach unten"
-
-#: ../bin/track.c:1297
-msgid "Audit"
-msgstr "Protokoll"
-
-#: ../bin/track.c:1571
-#, c-format
-msgid "%d Track(s) loosened"
-msgstr "%d Gleis(e) gelockert"
-
-#: ../bin/track.c:1578
-msgid "No tracks loosened"
-msgstr "Keine Gleise gelockert"
-
-#: ../bin/track.c:1588 ../bin/track.c:1592
-#, c-format
-msgid "Connecting a non-track(%d) to (%d)"
-msgstr "Verbinde ein sonstiges Objekt (%d) mit einem Gleis (%d)"
-
-#: ../bin/track.c:1653
-msgid "Join Abutting Tracks"
-msgstr "angrenzende Gleise verbinden"
-
-#: ../bin/track.c:1913 ../bin/tstraigh.c:548
-#, c-format
-msgid "Straight: Length=%s Angle=%0.3f"
-msgstr "Gerade: Länge=%s Winkel=%0.3f"
-
-#: ../bin/tstraigh.c:228
-#, c-format
-msgid ""
-"Straight Track(%d): Layer=%d Length=%s EP=[%0.3f,%0.3f A%0.3f] [%0.3f,%0.3f A"
-"%0.3f]"
-msgstr ""
-"Gleisgerade(%d): Ebene=%d Länge=%s EP=[%0.3f,%0.3f A%0.3f] [%0.3f,%0.3f A"
-"%0.3f]"
-
-#: ../bin/tstraigh.c:462
-msgid "Extending Straight Track"
-msgstr "Gleisgerade verlängern"
-
-#: ../bin/tstraigh.c:541
-msgid "Straight "
-msgstr "Gerade "
-
-#: ../bin/misc.c:156
-msgid "No Messages"
-msgstr "Keine Nachrichten"
-
-#: ../bin/misc.c:301 ../bin/misc.c:304
-msgid "ABORT"
-msgstr "ABBRUCH"
-
-#: ../bin/misc.c:303
-msgid ""
-"\n"
-"Do you want to save your layout?"
-msgstr ""
-"\n"
-"Wollen Sie Ihren Gleisplan speichern?"
-
-#: ../bin/misc.c:353
-#, c-format
-msgid "No help for %s"
-msgstr "Hilfe für %s nicht gefunden"
-
-#: ../bin/misc.c:456
-msgid ""
-"Save changes to the layout design before closing?\n"
-"\n"
-"If you don't save now, your unsaved changes will be discarded."
-msgstr ""
-"Sollen die Ãnderungen an Ihrem Gleisplan vor dem Verlassen gespeichert "
-"werden?\n"
-"\n"
-"Wenn Sie jetzt nicht speichern, werden Ihre nicht gespeicherten Ãnderungen "
-"verworfen."
-
-#: ../bin/misc.c:458 ../bin/misc.c:2108
-msgid "&Save"
-msgstr "&Speichern"
-
-#: ../bin/misc.c:458 ../bin/misc.c:482
-msgid "&Cancel"
-msgstr "&Abbruch"
-
-#: ../bin/misc.c:458
-msgid "&Don't Save"
-msgstr "&Nicht speichern"
-
-#: ../bin/misc.c:480
-msgid ""
-"Do you want to return to the last saved state?\n"
-"\n"
-"Revert will cause all changes done since last save to be lost."
-msgstr ""
-"Wollen Sie auf den letzten gespeicherten Stand zurücksetzen?\n"
-"Durch das Zurücksetzen werden alle Ãnderungen seit dem letzen Speichern "
-"verloren gehen."
-
-#: ../bin/misc.c:482
-msgid "&Revert"
-msgstr "Zurücksetzen"
-
-#: ../bin/misc.c:707
-msgid "XTrackCAD Font"
-msgstr "XTrackCAD Font"
-
-#: ../bin/misc.c:789
-#, c-format
-msgid "No balloon help for %s\n"
-msgstr "Kein Tooltip für %s vorhanden\n"
-
-#: ../bin/misc.c:791 ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:540
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:541
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:543
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:544
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:546
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:547
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:548
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:549
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:550
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:551
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:552
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:553
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:554
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:555
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:556
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:557
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:558
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:559
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:560
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:561
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:562
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:563
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:564
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:565
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:566
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:567
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:568
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:569
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:570
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:571
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:572
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:573
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:574
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:575
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:576
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:577
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:578
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:579
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:580
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:581
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:582
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:583
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:584
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:585
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:586
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:587
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:588
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:589
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:590
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:591
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:592
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:593
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:594
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:595
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:596
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:597
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:598
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:599
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:600
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:602
-msgid "No Help"
-msgstr "Keine Hilfe vorhanden"
-
-#: ../bin/misc.c:1051 ../bin/misc.c:1056 ../bin/misc.c:1121
-msgid ""
-"Cancelling the current command will undo the changes\n"
-"you are currently making. Do you want to update?"
-msgstr ""
-"Abbruch des aktuelle Befehls wird alle aktuell laufenden\n"
-"Änderungen zurücknehmen. Soll aktualisiert werden?"
-
-#: ../bin/misc.c:1712
-msgid "Sticky Commands"
-msgstr "Wiederholte Befehle"
-
-#: ../bin/misc.c:1725
-msgid "File Buttons"
-msgstr "Dateischaltflächen"
-
-#: ../bin/misc.c:1726
-msgid "Zoom Buttons"
-msgstr "Lupenknöpfe"
-
-#: ../bin/misc.c:1727
-msgid "Undo Buttons"
-msgstr "Rückgängig/Wiederholen"
-
-#: ../bin/misc.c:1728
-msgid "Easement Button"
-msgstr "Übergangsbogen"
-
-#: ../bin/misc.c:1729
-msgid "SnapGrid Buttons"
-msgstr "Fangraster"
-
-#: ../bin/misc.c:1730
-msgid "Create Track Buttons"
-msgstr "Erstelle Gleise"
-
-#: ../bin/misc.c:1732
-msgid "Layout Control Elements"
-msgstr "Elemente zur Anlagensteuerung"
-
-#: ../bin/misc.c:1734
-msgid "Modify Track Buttons"
-msgstr "Verändere Gleise"
-
-#: ../bin/misc.c:1735
-msgid "Describe/Select"
-msgstr "Eigenschaften/Auswählen"
-
-#: ../bin/misc.c:1736
-msgid "Track Group Buttons"
-msgstr "Objekt Werkzeuge"
-
-#: ../bin/misc.c:1737
-msgid "Train Group Buttons"
-msgstr "Zugbetrieb"
-
-#: ../bin/misc.c:1738
-msgid "Create Misc Buttons"
-msgstr "Zeichnen/Schrift Werkzeuge"
-
-#: ../bin/misc.c:1739
-msgid "Ruler Button"
-msgstr "Linealschaltfläche"
-
-#: ../bin/misc.c:1740
-msgid "Layer Buttons"
-msgstr "Ebenenknöpfe"
-
-#: ../bin/misc.c:1741
-msgid "Hot Bar"
-msgstr "Teilekatalog"
-
-#: ../bin/misc.c:1826 ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:70
-msgid "Change Elevations"
-msgstr "Höhen ändern"
-
-#: ../bin/misc.c:1826
-msgid "Change"
-msgstr "Ändern"
-
-#: ../bin/misc.c:1839
-msgid "Angle:"
-msgstr "Winkel:"
-
-#: ../bin/misc.c:1874
-msgid "180 "
-msgstr "180 "
-
-#: ../bin/misc.c:1875
-msgid "90 CW"
-msgstr "90 Uhrzeiger"
-
-#: ../bin/misc.c:1876
-msgid "45 CW"
-msgstr "45 Uhrzeiger"
-
-#: ../bin/misc.c:1877
-msgid "30 CW"
-msgstr "30 Uhrzeiger"
-
-#: ../bin/misc.c:1878
-msgid "15 CW"
-msgstr "15 Uhrzeiger"
-
-#: ../bin/misc.c:1879
-msgid "15 CCW"
-msgstr "15 gegen Uhr"
-
-#: ../bin/misc.c:1880
-msgid "30 CCW"
-msgstr "30 gehen Uhr"
-
-#: ../bin/misc.c:1881
-msgid "45 CCW"
-msgstr "45 gegen Uhr"
-
-#: ../bin/misc.c:1882
-msgid "90 CCW"
-msgstr "90 gegen Uhr"
-
-#: ../bin/misc.c:1883
-msgid "Enter Angle ..."
-msgstr "Winkel eingeben..."
-
-#: ../bin/misc.c:1910
-msgid "Debug"
-msgstr "Fehlersuche (Debug)"
-
-#: ../bin/misc.c:2036
-msgid "&File"
-msgstr "&Datei"
-
-#: ../bin/misc.c:2037
-msgid "&Edit"
-msgstr "&Bearbeiten"
-
-#: ../bin/misc.c:2038
-msgid "&View"
-msgstr "&Ansicht"
-
-#: ../bin/misc.c:2039
-msgid "&Add"
-msgstr "&Hinzufügen"
-
-#: ../bin/misc.c:2040
-msgid "&Change"
-msgstr "&Ändern"
-
-#: ../bin/misc.c:2041
-msgid "&Draw"
-msgstr "&Zeichnen"
-
-#: ../bin/misc.c:2042
-msgid "&Manage"
-msgstr "&Verwalten"
-
-#: ../bin/misc.c:2043
-msgid "&Options"
-msgstr "&Optionen"
-
-#: ../bin/misc.c:2044
-msgid "&Macro"
-msgstr "&Makro"
-
-#: ../bin/misc.c:2045
-msgid "&Window"
-msgstr "&Fenster"
-
-#: ../bin/misc.c:2046
-msgid "&Help"
-msgstr "&Hilfe"
-
-#: ../bin/misc.c:2052 ../bin/misc.c:2053
-msgid "Commands"
-msgstr "Befehle"
-
-#: ../bin/misc.c:2054
-msgid "Undo"
-msgstr "Rückgängig"
-
-#: ../bin/misc.c:2055
-msgid "Redo"
-msgstr "Wiederholen"
-
-#: ../bin/misc.c:2056 ../bin/misc.c:2057
-msgid "Zoom In"
-msgstr "Zoom größer"
-
-#: ../bin/misc.c:2058 ../bin/misc.c:2059
-msgid "Zoom Out"
-msgstr "Zoom kleiner"
-
-#: ../bin/misc.c:2060
-msgid "SnapGrid Enable"
-msgstr "Fangraster aktivieren"
-
-#: ../bin/misc.c:2061
-msgid "SnapGrid Show"
-msgstr "Fangraster anzeigen"
-
-#: ../bin/misc.c:2064
-msgid "Copy"
-msgstr "Kopiere"
-
-#: ../bin/misc.c:2066
-msgid "Deselect All"
-msgstr "Alles Abwählen"
-
-#: ../bin/misc.c:2074 ../bin/misc.c:2075
-msgid "More"
-msgstr "Weiter"
-
-#: ../bin/misc.c:2104
-msgid "&New"
-msgstr "&Neu"
-
-#: ../bin/misc.c:2105
-msgid "&Open ..."
-msgstr "&Öffnen..."
-
-#: ../bin/misc.c:2109
-msgid "Save &As ..."
-msgstr "Speichern &unter..."
-
-#: ../bin/misc.c:2110
-msgid "Revert"
-msgstr "Neu laden"
-
-#: ../bin/misc.c:2112
-msgid "P&rint Setup ..."
-msgstr "Druckereinstellungen..."
-
-#: ../bin/misc.c:2115
-msgid "&Import"
-msgstr "Import"
-
-#: ../bin/misc.c:2116
-msgid "Export to &Bitmap"
-msgstr "Export als Bitmap"
-
-#: ../bin/misc.c:2117
-msgid "E&xport"
-msgstr "Export"
-
-#: ../bin/misc.c:2118
-msgid "Export D&XF"
-msgstr "Export als DXF"
-
-#: ../bin/misc.c:2121
-msgid "Parameter &Files ..."
-msgstr "Parameterdateien..."
-
-#: ../bin/misc.c:2122
-msgid "No&tes ..."
-msgstr "Notizen..."
-
-#: ../bin/misc.c:2127
-msgid "E&xit"
-msgstr "Beenden"
-
-#: ../bin/misc.c:2133
-msgid "&Undo"
-msgstr "Rückgängig"
-
-#: ../bin/misc.c:2134
-msgid "R&edo"
-msgstr "Wiederholen"
-
-#: ../bin/misc.c:2136
-msgid "Cu&t"
-msgstr "Ausschneiden"
-
-#: ../bin/misc.c:2137
-msgid "&Copy"
-msgstr "Kopieren"
-
-#: ../bin/misc.c:2138
-msgid "&Paste"
-msgstr "Einfügen"
-
-#: ../bin/misc.c:2139
-msgid "De&lete"
-msgstr "Löschen"
-
-#: ../bin/misc.c:2145
-msgid "Select &All"
-msgstr "Alles auswählen"
-
-#: ../bin/misc.c:2146
-msgid "Select Current Layer"
-msgstr "Aktuelle Ebene auswählen"
-
-#: ../bin/misc.c:2147
-msgid "&Deselect All"
-msgstr "Alles abwählen"
-
-#: ../bin/misc.c:2148
-msgid "&Invert Selection"
-msgstr "Auswahl umkehren"
-
-#: ../bin/misc.c:2149
-msgid "Select Stranded Track"
-msgstr "Vereinzelte Gleise auswählen"
-
-#: ../bin/misc.c:2151
-msgid "Tu&nnel"
-msgstr "Tunnel"
-
-#: ../bin/misc.c:2152
-msgid "A&bove"
-msgstr "Darüber"
-
-#: ../bin/misc.c:2153
-msgid "Belo&w"
-msgstr "Darunter"
-
-#: ../bin/misc.c:2156
-msgid "Thin Tracks"
-msgstr "Dünne Gleise"
-
-#: ../bin/misc.c:2157
-msgid "Medium Tracks"
-msgstr "Mittlere Gleise"
-
-#: ../bin/misc.c:2158
-msgid "Thick Tracks"
-msgstr "Dicke Gleise"
-
-#: ../bin/misc.c:2163
-msgid "Zoom &In"
-msgstr "Zoom größer"
-
-#: ../bin/misc.c:2164
-msgid "&Zoom"
-msgstr "&Zoom"
-
-#: ../bin/misc.c:2165
-msgid "Zoom &Out"
-msgstr "Zoom kleiner"
-
-#: ../bin/misc.c:2174
-msgid "&Redraw"
-msgstr "Neu zeichnen"
-
-#: ../bin/misc.c:2175
-msgid "Redraw All"
-msgstr "Alles neu zeichnen"
-
-#: ../bin/misc.c:2178
-msgid "Enable SnapGrid"
-msgstr "Fangraster aktivieren"
-
-#: ../bin/misc.c:2180
-msgid "Show SnapGrid"
-msgstr "Fangraster zeigen"
-
-#: ../bin/misc.c:2187
-msgid "Show Map"
-msgstr "Karte anzeigen"
-
-#: ../bin/misc.c:2192
-msgid "&Tool Bar"
-msgstr "Werkzeugleiste anpassen"
-
-#: ../bin/misc.c:2237
-msgid "&Loosen Tracks"
-msgstr "Gleise lockern"
-
-#: ../bin/misc.c:2246
-msgid "Raise/Lower Elevations"
-msgstr "Höhen auf/ab"
-
-#: ../bin/misc.c:2251
-msgid "Recompute Elevations"
-msgstr "Höhen neu berechnen"
-
-#: ../bin/misc.c:2255
-msgid "Change Scale"
-msgstr "Maßstab ändern"
-
-#: ../bin/misc.c:2272
-msgid "L&ayout ..."
-msgstr "Gleisplan..."
-
-#: ../bin/misc.c:2273
-msgid "&Display ..."
-msgstr "Anzeige..."
-
-#: ../bin/misc.c:2274
-msgid "Co&mmand ..."
-msgstr "Befehl..."
-
-#: ../bin/misc.c:2275
-msgid "&Easements ..."
-msgstr "Übergangsbögen..."
-
-#: ../bin/misc.c:2276
-msgid "&Fonts ..."
-msgstr "Schri&ftarten..."
-
-#: ../bin/misc.c:2277
-msgid "Stic&ky ..."
-msgstr "Dauerhaft..."
-
-#: ../bin/misc.c:2280
-msgid "&Debug ..."
-msgstr "&Fehlersuche"
-
-#: ../bin/misc.c:2282
-msgid "&Preferences ..."
-msgstr "Einstellungen..."
-
-#: ../bin/misc.c:2283
-msgid "&Colors ..."
-msgstr "Farben..."
-
-#: ../bin/misc.c:2288
-msgid "&Record ..."
-msgstr "Aufzeichnen..."
-
-#: ../bin/misc.c:2289
-msgid "&Play Back ..."
-msgstr "Wiedergeben..."
-
-#: ../bin/misc.c:2295
-msgid "Main window"
-msgstr "Hauptfenster"
-
-#: ../bin/misc.c:2307
-msgid "Recent Messages"
-msgstr "Letzte Mitteilungen"
-
-#: ../bin/misc.c:2313
-msgid "Tip of the Day..."
-msgstr "Tipp des Tages..."
-
-#: ../bin/misc.c:2314
-msgid "&Demos"
-msgstr "&Demos"
-
-#: ../bin/misc.c:2328
-msgid "Tur&nout Designer..."
-msgstr "Weichendesigner..."
-
-#: ../bin/misc.c:2330
-msgid "&Group"
-msgstr "&Gruppierung"
-
-#: ../bin/misc.c:2331
-msgid "&Ungroup"
-msgstr "Gruppierung aufheben"
-
-#: ../bin/misc.c:2333
-msgid "Custom defined parts..."
-msgstr "Eigene Teile..."
-
-#: ../bin/misc.c:2334
-msgid "Update Turnouts and Structures"
-msgstr "Weichen und Gebäude aktualisieren"
-
-#: ../bin/misc.c:2340
-msgid "Layers ..."
-msgstr "Ebenen..."
-
-#: ../bin/misc.c:2343
-msgid "Parts &List ..."
-msgstr "Teile&liste..."
-
-#: ../bin/misc.c:2344
-msgid "Price List..."
-msgstr "Preisliste..."
-
-#: ../bin/misc.c:2423
-msgid ""
-"Program was not terminated properly. Do you want to resume working on the "
-"previous trackplan?"
-msgstr ""
-"Das Programm wurde nicht ordnungsgemäss beendet. Wollen Sie die Bearbeitung "
-"des vorherigen Gleisplans fortsetzen?"
-
-#: ../bin/misc.c:2424
-msgid "Resume"
-msgstr "Fortsetzen"
-
-#: ../bin/misc.c:2533
-#, c-format
-msgid "Unnamed Trackplan - %s(%s)"
-msgstr "Unbenannter Gleisplan - %s(%s)"
-
-#: ../bin/misc.c:2599
-msgid "Initializing commands"
-msgstr "Initialisiere Befehle"
-
-#: ../bin/misc.c:2608
-msgid "Initializing menus"
-msgstr "Initialisiere Menüs"
-
-#: ../bin/misc.c:2645
-msgid "Reading parameter files"
-msgstr "Einlesen der Parameterdateien"
-
-#: ../bin/misc.c:2678
-msgid "Initialization complete"
-msgstr "Initialisierung beendet"
-
-#: ../bin/cprofile.c:471 ../bin/cprofile.c:1270 ../bin/cprofile.c:1366
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:101
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:40
-msgid "Profile"
-msgstr "Höhenprofil"
-
-#: ../bin/cprofile.c:487
-#, c-format
-msgid "%s Profile: %s"
-msgstr "%s Höhenprofil: %s"
-
-#: ../bin/cprofile.c:635 ../bin/cprofile.c:645
-#, c-format
-msgid "Elev = %0.1f"
-msgstr "Höhe = %0.1f"
-
-#: ../bin/cprofile.c:647
-#, c-format
-msgid "Elev=%0.2f %0.1f%%"
-msgstr "Höhe=%0.2f %0.1f%%"
-
-#: ../bin/cprofile.c:651
-#, c-format
-msgid "%0.1f%% Elev = %0.2f"
-msgstr "%0.1f%% Höhe = %0.2f"
-
-#: ../bin/cprofile.c:655
-#, c-format
-msgid "%0.1f%% Elev = %0.2f %0.1f%%"
-msgstr "%0.1f%% Höhe = %0.2f %0.1f%%"
-
-#: ../bin/cprofile.c:666 ../bin/cprofile.c:1217
-msgid "Profile Command"
-msgstr "Höhenprofil bearbeiten"
-
-#: ../bin/cprofile.c:674 ../bin/cprofile.c:1275
-msgid "Drag to change Elevation"
-msgstr "Ziehen um die Höhe zu ändern"
-
-#: ../bin/cprofile.c:738
-msgid "Select a Defined Elevation to start Profile"
-msgstr "Eine festgelegte Höhe auswählen, um das Höhenprofil zu beginnen"
-
-#: ../bin/cprofile.c:740
-msgid "Select a Defined Elevation to extend Profile"
-msgstr "eine festgelegte Höhe auswählen, um das Höhenprofil zu erweitern"
-
-#: ../bin/cprofile.c:1285
-msgid "Select a Defined Elevation to start profile"
-msgstr "Eine festgelegte Höhe auswählen, um das Höhenprofil zu beginnen"
-
-#: ../bin/cprofile.c:1368
-msgid "Define"
-msgstr "Festlegen"
-
-#: ../wlib/gtklib/filesel.c:103
-msgid "All files"
-msgstr "Alle Dateien"
-
-#: ../wlib/gtklib/gtkhelp.c:525
-msgid "Home"
-msgstr "Startseite"
-
-#: ../wlib/gtklib/gtkhelp.c:528
-msgid "Contents"
-msgstr "Inhaltsverzeichnis"
-
-#: ../wlib/gtklib/gtkhelp.c:732
-msgid "&Contents"
-msgstr "Inhalt"
-
-#: ../wlib/gtklib/gtkmisc.c:402 ../wlib/mswlib/mswmisc.c:1711
-#: ../wlib/mswlib/mswmisc.c:1750
-msgid "Warning"
-msgstr "Warnung"
-
-#: ../wlib/gtklib/gtkmisc.c:406 ../wlib/mswlib/mswmisc.c:1715
-msgid "Error"
-msgstr "Fehler"
-
-#: ../wlib/gtklib/wpref.c:118
-#, c-format
-msgid ""
-"The required configuration files could not be located in the expected "
-"location.\n"
-"\n"
-"Usually this is an installation problem. Make sure that these files are "
-"installed in either \n"
-" %s/share/xtrkcad or\n"
-" /usr/lib/%s or\n"
-" /usr/local/lib/%s\n"
-"If this is not possible, the environment variable %s must contain the name "
-"of the correct directory."
-msgstr ""
-"Die notwenidgen Konfigurationsdaten konnten nicht im erwarteten Verzeichnis "
-"gefunden werden.\n"
-"\n"
-"Üblicherweise ist dies ein Instalaltionsproblem. Stellen Sie sicher, dass "
-"diese Dateien in entweder\n"
-" %s/share/xtrkcad oder\n"
-" /usr/lib/%s oder\n"
-" /usr/local/lib/%s\n"
-"gespeichert sind. Sollte das nicht möglich sein, muss die Umgebungsvariable "
-"%s den Namen des korrekten Verzeichnis enthalten."
-
-#: ../wlib/gtklib/wpref.c:152 ../wlib/gtklib/wpref.c:197
-msgid "HOME is not set"
-msgstr "HOME ist nicht gesetzt"
-
-#: ../wlib/gtklib/wpref.c:152 ../wlib/gtklib/wpref.c:161
-#: ../wlib/gtklib/wpref.c:197
-msgid "Exit"
-msgstr "Beenden"
-
-#: ../wlib/gtklib/wpref.c:160
-#, c-format
-msgid "Cannot create %s"
-msgstr "Kann %s nicht erstellen"
-
-#: ../wlib/gtklib/gtkfont.c:252
-msgid "Font Select"
-msgstr "Auswahl der Schriftart"
-
-#: ../wlib/gtklib/gtktext.c:368
-#, c-format
-msgid "%d of %d"
-msgstr "%d von %d"
-
-#: ../wlib/mswlib/mswmenu.c:882
-msgid "Ctrl+"
-msgstr "Strg+"
-
-#: ../wlib/mswlib/mswmenu.c:887
-msgid "Alt+"
-msgstr "Alt+"
-
-#: ../wlib/mswlib/mswmenu.c:892
-msgid "Shift+"
-msgstr "Umsch+"
-
-#: ../wlib/mswlib/mswmenu.c:898
-msgid "Space"
-msgstr "Abstand"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:7
-#, c-format
-msgid ""
-"MSG_CANT_PLACE_FROGPOINTS\tFrog|Points cannot be placed on a turnout, circle "
-"or helix.\tA %s cannot be placed on a turnout, circle or helix."
-msgstr ""
-"MSG_CANT_PLACE_FROGPOINTS\tHerzstück|Zungen können nicht auf eine Weiche, "
-"einen Kreis oder eine Gleiswendel gesetzt werden.\tEin %s kann nicht auf "
-"eine Weiche, einen Kreis oder eine Gleiswendel gelegt werden."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:8
-msgid ""
-"MSG_SEL_TRK_FROZEN\tA frozen layer contains selected track. Command cannot "
-"be executed."
-msgstr ""
-"MSG_SEL_TRK_FROZEN\tEine eingefrorene Ebene enthält ausgewählte...\tEine "
-"eingefrorene Ebene enthält ausgewählte Gleise.\n"
-"Der Befehl kann nicht ausgeführt werden."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:9
-msgid "MSG_HELIX_TURNS_GTR_0\tA Helix must have one or more loops of track."
-msgstr ""
-"MSG_HELIX_TURNS_GTR_0\tEine Gleiswendel muss eine oder mehrere Gleiswindung "
-"enthalten."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:10
-msgid ""
-"MSG_LARGE_FONT\tA large font has been selected....\tA large font has been "
-"selected.\n"
-"Large fonts may a take a while to load.\n"
-"\n"
-"Do you wish to continue?"
-msgstr ""
-"MSG_LARGE_FONT\tEine grosse Schriftart wurde ausgewählt...\tEine grosse "
-"Schriftart wurde ausgewählt.\n"
-"Das Laden grosser Schriften kann lange dauern.\n"
-"\n"
-"Wollen Sie den Vorgang fortsetzen?"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:11
-msgid ""
-"MSG_TODSGN_DESC_NONBLANK\tAll description fields present in the Turnout..."
-"\tAll description fields present in the Turnout\n"
-"Designer must contain appropriate information.\n"
-"Correct inappropriate values and try again."
-msgstr ""
-"MSG_TODSGN_DESC_NONBLANK\tAlle vorhandenen Beschreibungsfelder des Weichen "
-"Editor...\tAlle Beschreibungsfelder des Weicheneditor\n"
-"müssen korrekt ausgefüllt sein. Bitte falsche Werte \n"
-"korrigieren und nochmals versuchen."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:12
-msgid ""
-"MSG_GROUP_NONBLANK\tAll fields listed in the Group dialog must contain "
-"data....\tAll fields listed in the Group dialog must contain data.\n"
-"Please enter missing values and try again."
-msgstr ""
-"MSG_GROUP_NONBLANK\tAlle Felder im Gruppieren-Dialog müssen ausgefüllt "
-"sein...\tAlle Felder im Gruppieren-Dialog müssen ausgefüllt sein.\n"
-"Bitte die fehlenden Werte ergänzen und nochmals versuchen."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:13
-msgid ""
-"MSG_TODSGN_VALUES_GTR_0\tAll values specified in the Turnout Designer must "
-"be...\tAll values specified in the Turnout Designer must be\n"
-"greater than 0. Correct inappropriate values and try again."
-msgstr ""
-"MSG_TODSGN_VALUES_GTR_0\tAlle eingegebenen Werte im Weicheneditor müssen..."
-"\tAlle eingegebenen Werte im Weicheneditor müssen\n"
-"größer als 0 sein. Bitte fehlerhafte Werte korrigieren und nochmal versuchen."
-
-#
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:14
-msgid "MSG_CURVE_OUT_OF_RANGE\tAngle must be between 0° and 360°."
-msgstr "MSG_CURVE_OUT_OF_RANGE\tDer Winkel muss zwischen 0° und 360° liegen."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:15
-#, c-format
-msgid ""
-"MSG_CUSTMGM_DELETE_CONFIRM\tAre you sure you want to delete the NNN "
-"definition(s)?\tAre you sure you want to delete the\n"
-"%d definition(s)?"
-msgstr ""
-"MSG_CUSTMGM_DELETE_CONFIRM\tSind Sie sicher, dass Sie NNN Definitionen "
-"löschen wollen?\tSind Sie sicher, dass Sie %d Definitionen\n"
-"löschen wollen?"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:16
-msgid "MSG_WBITMAP_FAILED\tBitmap create or write function failed."
-msgstr ""
-"MSG_WBITMAP_FAILED\tErzeugen oder Schreiben der Bitmap ist fehlgeschlagen."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:17
-msgid "MSG_BITMAP_TOO_LARGE\tBitmap is too large."
-msgstr "MSG_BITMAP_TOO_LARGE\tBitmap ist zu groß."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:18
-msgid "MSG_CHANGE_ELEV_MODE\tCannot change elevation mode."
-msgstr ""
-"MSG_CHANGE_ELEV_MODE\tArt der Höhenfestlegung kann nicht geändert werden."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:19
-msgid ""
-"MSG_GRID_ENABLE_SPACE_GTR_0\tCannot Enable Grid; spacing must be greater "
-"than 0"
-msgstr ""
-"MSG_GRID_ENABLE_SPACE_GTR_0\tFangraster kann nicht aktiviert werden. Abstand "
-"muss größer als 0 sein."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:20
-msgid "MSG_LAYER_FREEZE\tCannot freeze current layer"
-msgstr "MSG_LAYER_FREEZE\tAktuelle Ebene kann nicht eingefroren werden."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:21
-msgid ""
-"MSG_CANT_GROUP_BUMPER1\tCannot Group Bumper Track. The track has been "
-"unselected."
-msgstr ""
-"Prellbock kann nicht in die Gruppe aufgenommen werden. Das Gleis wurde "
-"abgewählt."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:22
-msgid "MSG_CANNOT_GROUP_TRACK\tCannot Group selected track."
-msgstr ""
-"MSG_CANNOT_GROUP_TRACK\tAusgewähltes Gleis kann nicht gruppiert werden."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:23
-msgid "MSG_LAYER_HIDE\tCannot hide current layer"
-msgstr "MSG_LAYER_HIDE\tAktuelle Ebene kann nicht verborgen werden."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:24
-msgid "MSG_JOIN_EASEMENTS\tCannot Join; Easements do not align or abut."
-msgstr ""
-"MSG_JOIN_EASEMENTS\tVerbinden nicht möglich. Übergangsbögen sind nicht "
-"ausgerichtet."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:25
-#, c-format
-msgid ""
-"MSG_TRK_ALREADY_CONN\tFirst|Second track is already connected.\tCannot Join; "
-"%s track is already connected."
-msgstr ""
-"MSG_TRK_ALREADY_CONN\tErstes|zweites Gleis ist bereits verbunden.\tVerbinden "
-"nicht möglich, das %s Gleis ist bereits verbunden."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:26
-msgid "MSG_JOIN_TURNTABLE\tCannot join from a turntable, try to a turntable"
-msgstr ""
-"MSG_JOIN_TURNTABLE\tVerbinden von einer Drehscheibe ist nicht möglich, bitte "
-"zur Drehscheibe verbinden"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:27
-msgid "MSG_JOIN_SAME\tCannot Join; Selected endpoints are on same track."
-msgstr ""
-"MSG_JOIN_SAME\tVerbinden nicht möglich, da ausgewählte Endpunkte zum selben "
-"Gleis gehören."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:28
-msgid ""
-"MSG_SELECTED_TRACKS_PARALLEL\tCannot Join; Selected tracks are parallel."
-msgstr ""
-"MSG_SELECTED_TRACKS_PARALLEL\tVerbinden nicht möglich, da ausgewählte Gleise "
-"parallel sind."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:29
-#, c-format
-msgid ""
-"MSG_PRMFIL_OPEN_NEW\tCannot open New Parameter File: FILENAME\tCannot open "
-"New Parameter File: %s"
-msgstr ""
-"MSG_PRMFIL_OPEN_NEW\tDie neue Parameterdatei DATEINAME kann nicht geöffnet "
-"werden.\tDie neue Parameterdatei %s kann nicht geöffnet werden."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:30
-msgid "MSG_LAYER_SEL_FROZEN\tCannot select a frozen layer"
-msgstr ""
-"MSG_LAYER_SEL_FROZEN\tEine eingefrorene Ebene kann nicht ausgewählt werden."
-
-#
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:31
-msgid ""
-"MSG_GRID_SHOW_SPACE_GTR_0\tCannot Show Grid; spacing must be greater than 0"
-msgstr ""
-"MSG_GRID_ENABLE_SPACE_GTR_0\tFangraster kann nicht angezeigt werden. Abstand "
-"muss größer als 0 sein."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:32
-#, c-format
-msgid "MSG_CANT_SPLIT_TRK\tCannot split TYPE track\tCannot split %s track"
-msgstr ""
-"MSG_CANT_SPLIT_TRK\tTYP Gleis kann nicht aufgetrennt werden\tGleis vom Typ "
-"%s kann nicht aufgetrennt werden."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:33
-#, c-format
-msgid ""
-"MSG_CUSTMGM_CANT_WRITE\tCannot write to parameter file: FILENAME\tCannot "
-"write to parameter file: %s"
-msgstr ""
-"MSG_PRMFIL_OPEN_NEW\tDie neue Parameterdatei DATEINAME kann nicht geöffnet "
-"werden.\tDie neue Parameterdatei %s kann nicht geöffnet werden."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:34
-msgid "MSG_CARIMP_DUP_INDEX\tCar Index number duplicated."
-msgstr "MSG_CARIMP_DUP_INDEX\tWagenkennzahl ist doppelt"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:35
-msgid ""
-"MSG_CONN_PARAMS_TOO_SMALL\tConnection parameters reset to minimum values."
-msgstr ""
-"MSG_CONN_PARAMS_TOO_SMALL\tVerbindungseinstellungen auf die Minimalwerte "
-"zurückgesetzt"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:36
-msgid "MSG_CANT_PASTE\tCopy/Paste buffer is empty. There is nothing to Paste."
-msgstr ""
-"MSG_CANT_PASTE\tZwischenablage ist leer. Es kann nichts eingefügt werden."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:37
-msgid ""
-"MSG_TODSGN_CROSSOVER_TOO_SHORT\tCrossover length is too short. Correct..."
-"\tCrossover length is too short. Correct\n"
-"inappropriate value(s) and try again."
-msgstr ""
-"MSG_TODSGN_CROSSOVER_TOO_SHORT\tKreuzungslänge ist zu kurz. Unpassende..."
-"\tKreuzungslänge ist zu kurz. Unpassende\n"
-"Werte verbessern und nochmals versuchen."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:38
-msgid "MSG_CURVE_TOO_LARGE\tCurved track is too large."
-msgstr "MSG_CURVE_TOO_LARGE\tBogengleis ist zu groß."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:39
-msgid ""
-"MSG_TODSGN_REPLACE\tDefinition name is already in use. Saving this..."
-"\tDefinition name is already in use. Saving this\n"
-"definition replaces the existing definition.\n"
-"\n"
-"Do you want to continue?"
-msgstr ""
-"MSG_TODSGN_REPLACE\tEin Design mit diesem Namen existiert bereits. "
-"Speichern...\tEin Design mit diesem Namen existiert bereits. Speichern\n"
-"unter diesem Namen ersetzt das vorhandene Design.\n"
-"\n"
-"Speichern fortsetzen?"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:40
-msgid "MSG_SAVE_CHANGES\tDo you want to save the changes made to your Layout?"
-msgstr ""
-"MSG_SAVE_CHANGES\tWollen Sie die Veränderungen an Ihrem Gleisplan speichern?"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:41
-msgid ""
-"MSG_CARIMP_DUP_COLUMNS\tDuplicate column headers found in Car Import file."
-msgstr ""
-"MSG_CARIMP_DUP_COLUMNS\tDoppelte Spaltenüberschrift in der Wagenimportdatei."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:42
-msgid "MSG_EP_ON_PATH\tEndpoint already on Path."
-msgstr "MSG_EP_ON_PATH\tDer Endpunkt ist bereits im Pfad enthalten."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:43
-#, c-format
-msgid ""
-"MSG_UPGRADE_VERSION1\tFile version %ld is greater than supported...\tFile "
-"version %ld is greater than supported\n"
-"version %d. You need to upgrade %s\n"
-"to at least version %s."
-msgstr ""
-"MSG_UPGRADE_VERSION1\tDateiversion %ld ist größer als unterstützte Version..."
-"\tDateiversion %ld ist größer als unterstützte\n"
-"Version %d. Sie sollten %s mindestens auf Version %s\n"
-"aktualisieren."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:44
-#, c-format
-msgid ""
-"MSG_UPGRADE_VERSION2\tFile version %ld is greater than supported...\tFile "
-"version %ld is greater than supported\n"
-"version %d. You need to upgrade your\n"
-"version of %s"
-msgstr ""
-"MSG_UPGRADE_VERSION2\tDateiversion %ld ist größer als unterstützte Version..."
-"\tDateiversion %ld ist größer als unterstützte\n"
-"Version %d. Sie sollten %s aktualisieren"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:45
-msgid ""
-"MSG_MOVE_POINTS_OTHER_SIDE\tFrog angle prevents placement of points. Move "
-"points to opposite side of frog."
-msgstr ""
-"MSG_MOVE_POINTS_OTHER_SIDE\tDer Weichenwinkel verhindert das Setzen....\tDer "
-"Weichenwinkel verhindert das Setzen der Weichenzungen.\n"
-"Die Weichenzungen auf die andere Seite der Weiche verschieben."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:46
-msgid "MSG_NO_ROOM_BTW_TRKS\tInsufficient space between existing stall tracks."
-msgstr "MSG_NO_ROOM_BTW_TRKS\tZu wenig Platz zwischen den Drehscheibengleisen."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:47
-#, c-format
-msgid ""
-"MSG_JOIN_DIFFER_ELEV\tJoining tracks with differing elevations (N."
-"NNN)\tJoining tracks with differing elevations (%0.2f)"
-msgstr ""
-"MSG_JOIN_DIFFER_ELEV\tZu verbindende Gleise haben unterschiedliche Höhe(N."
-"NNN)\tZu verbindende Gleise haben unterschiedliche Höhe(%0.2f)"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:48
-msgid "MSG_DESC_NOT_VISIBLE\tLabel descriptions not visible"
-msgstr "MSG_DESC_NOT_VISIBLE\tBeschriftungen sind nicht sichtbar."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:49
-msgid "MSG_OBJECT_TOO_SHORT\tLength of object is too short."
-msgstr "MSG_OBJECT_TOO_SHORT\tDie Länge des Objektes ist zu kurz."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:50
-#, c-format
-msgid ""
-"MSG_PRINT_MAX_SIZE\tMaximum allowed page size is W x H\tMaximum allowed page "
-"size is %s x %s"
-msgstr ""
-"MSG_PRINT_MAX_SIZE\tDie maximal zulässige Seitengröße ist B x H\tDie maximal "
-"zulässige Seitengröße ist %s x %s"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:51
-#, c-format
-msgid ""
-"MSG_PRMFIL_NO_CONTENTS\tNew Parameter File has no CONTENTS line: FILENAME."
-"\tNew Parameter File has no CONTENTS line: %s"
-msgstr ""
-"MSG_PRMFIL_NO_CONTENTS\tDie neue Parameterdatei enthält keine CONTENTS "
-"Zeile: DATEINAME.\tDie neue Parameterdatei enthält keine CONTENTS Zeile: %s."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:52
-msgid ""
-"MSG_NO_CARS\tNo Cars are defined for the current scale....\tNo Cars are "
-"defined for the current scale.\n"
-"\n"
-"Do you want to use the Car Inventory dialog?"
-msgstr ""
-"MSG_NO_CARS\tFür den aktuellen Maßstab sind keine Wagen vorhanden...\tFür "
-"den aktuellen Maßstab sind keine Wagen vorhanden.\n"
-"\n"
-"Soll der Wagenbestandsdialog geöffnet werden?"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:53
-msgid ""
-"MSG_NO_CARPROTO\tNo Car Prototypes are defined....\tNo Car Prototypes are "
-"defined.\n"
-"Load a Prototype definition file using the\n"
-"Parameter Files dialog or create a Prototype\n"
-"definition using the Car Prototype dialog."
-msgstr ""
-"MSG_NO_CARPROTO\tEs sind keine Vorbildwagen definiert...\tEs sind keine "
-"Vorbildwagen definiert.\n"
-"Über den Parameterdateidialog muß eine\n"
-"Parameterdatei mit Vorbildern geladen werden oder\n"
-"ein Vorbild muß über den Wagenvorbilddialog erstellt werden."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:54
-msgid "MSG_CARIMP_NO_DATA\tNo data present in Car Import file."
-msgstr "MSG_CARIMP_NO_DATA\tDie Wagenimportdatei enthält keine Daten."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:55
-msgid "MSG_PRINT_NO_PAGES\tNo pages selected for printing."
-msgstr "MSG_PRINT_NO_PAGES\tKeine Seiten zum Drucken ausgewählt."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:56
-msgid "MSG_NO_PATH_TO_EP\tNo path between Profile and selected endpoint."
-msgstr ""
-"MSG_NO_PATH_TO_EP\tEs existiert keine Verbindung zwischen dem Högenprofil "
-"und dem ausgählten Endpunkt."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:57
-#, c-format
-msgid ""
-"MSG_PRMFIL_NO_MAP\tNo Parameter File Map for CONTENTS\tNo Parameter File Map "
-"for %s"
-msgstr ""
-"MSG_PRMFIL_OPEN_NEW\tDie neue Parameterdatei DATEINAME kann nicht geöffnet "
-"werden.\tDie neue Parameterdatei %s kann nicht geöffnet werden."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:58
-msgid "MSG_NO_SELECTED_TRK\tNo track(s) selected!"
-msgstr "MSG_NO_SELECTED_TRK\tEs sind keine Gleise ausgewählt!"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:59
-#, c-format
-msgid ""
-"MSG_NO_TURNOUTS_AVAILABLE\tNo Turnouts|Structures are available.\tNo %s are "
-"available."
-msgstr ""
-"MSG_NO_TURNOUTS_AVAILABLE\tEs sind keine Weichern | Gebäude verfügbar.\tEs "
-"sind keine %s verfügbar."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:60
-msgid ""
-"MSG_CARDESC_VALUE_ZERO\tNumeric values on the Car Description...\tNumeric "
-"values on the Car Description\n"
-"dialog must be greater than 0."
-msgstr ""
-"MSG_CARDESC_VALUE_ZERO\tNumerische Werte im Wagenbeschreibungsdialog..."
-"\tNumerische Werte im Wagenbeschreibungsdialog\n"
-"müssen größer als 0 sein."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:61
-msgid "MSG_MOVE_OUT_OF_BOUNDS\tObject has moved beyond room boundaries."
-msgstr ""
-"MSG_MOVE_OUT_OF_BOUNDS\tObjekt wurde nach außerhalb des Raumes verschoben."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:62
-msgid "MSG_PARALLEL_SEP_GTR_0\tParallel separation must be greater than 0."
-msgstr "MSG_PARALLEL_SEP_GTR_0\tParallelabstand muß größer als 0 sein."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:63
-msgid ""
-"MSG_CARPART_DUPNAME\tPart Number for this Manufacturer already exists...."
-"\tPart Number for this Manufacturer already exists.\n"
-"\n"
-"Do you want to update it?"
-msgstr ""
-"MSG_CARPART_DUPNAME\tTeilnummer für diesen Hersteller existiert bereits..."
-"\tTeilnummer für diesen Hersteller existiert bereits.\n"
-"\n"
-"Wollen Sie den Artikel aktualisieren?"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:64
-#, c-format
-msgid ""
-"MSG_PLAYBACK_LISTENTRY\tPlayback: Cannot find list entry: NAME\tPlayback: "
-"Cannot find list entry: %s"
-msgstr ""
-"MSG_PLAYBACK_LISTENTRY\tWiedergabe: Der Listeneintrag: NAME kann nicht "
-"gefunden werden.\tWiedergabe: der Listeneintrag %s kann nicht gefunden "
-"werden."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:65
-#, c-format
-msgid ""
-"MSG_PLAYBACK_VERSION_UPGRADE\tPlayback file version %ld is...\tPlayback file "
-"version %ld is\n"
-"greater than supported version %d\n"
-"You need to upgrade your version of %s"
-msgstr ""
-"MSG_PLAYBACK_VERSION_UPGRADE\tVersion %ld der Wiedergabedatei ist..."
-"\tVersion %ld der Wiedergabedatei\n"
-"ist neuer als due unterstützte Version %d\n"
-"Aktualisierung von %s ist notwendig."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:66
-#, c-format
-msgid ""
-"MSG_DOMOUSE_BAD_OP\tPlayback: unknown action NNN\tPlayback: unknown action %d"
-msgstr ""
-"MSG_DOMOUSE_BAD_OP\tWiedergabe: unbekannte AktionNNN\tWiedergabe: unbekannte "
-"Aktion %d"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:67
-msgid "MSG_MOVE_POINTS_AWAY_CLOSE\tPoints are to close to frog; move away."
-msgstr ""
-"MSG_MOVE_POINTS_AWAY_CLOSE\tWeichenzungen sind zu kurz. In größere "
-"Entfernung vom Herzstück setzen. "
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:68
-msgid "MSG_POLY_SHAPES_3_SIDES\tPoly shapes must have at least 3 sides."
-msgstr ""
-"MSG_POLY_SHAPES_3_SIDES\tEin Vieleck muss mindestens drei Seiten haben.."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:69
-msgid ""
-"MSG_CARPROTO_DUPNAME\tPrototype name already exists....\tPrototype name "
-"already exists.\n"
-"\n"
-"Do you want to update it?"
-msgstr ""
-"MSG_CARPROTO_DUPNAME\tEin Vorbild mit diesem Namen existiert bereits...."
-"\tEin Vorbild mit diesem Namen existiert bereits.\n"
-"\n"
-"Wollen Sie dieses Vorbild überschreiben?"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:70
-msgid "MSG_RADIUS_GTR_0\tRadius must be greater than 0."
-msgstr "MSG_RADIUS_GTR_0\tRadius muss größer als 0 sein.."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:71
-#, c-format
-msgid ""
-"MSG_RESCALE_TOO_BIG\tRescaled tracks do not fit within layouts room "
-"parameters...\tRescaled tracks do not fit within layouts room parameters\n"
-"(Height and width). The layouts room parameters should be\n"
-"set to at least %s by %s."
-msgstr ""
-"MSG_RESCALE_TOO_BIG\tNeu skalierte Gleise passen nicht in den Raum...\tNeu "
-"skalierte Gleise passen nicht in den Raum\n"
-"(Länge und Breite). Die benötigte Größe ist\n"
-"mindestens %s auf %s."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:72
-msgid ""
-"MSG_CARIMP_MISSING_COLUMNS\tRequired column headers missing from Car Import "
-"file."
-msgstr ""
-"MSG_CARIMP_MISSING_COLUMNS\tDie benötigten Spaltenüberschriften fehlen in "
-"der Wagen-ImportDatei."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:73
-#, c-format
-msgid ""
-"MSG_2ND_TRK_NOT_SEL_UNSEL\tSecond track must be selected|unselected\tSecond "
-"track must be %s."
-msgstr ""
-"MSG_2ND_TRK_NOT_SEL_UNSEL\tDas zweite Gleis darf (nicht) ausgewählt sein."
-"\tDas zweite Gleis muss %s sein."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:74
-msgid "MSG_OUT_OF_BOUNDS\tSelected page is out of bounds."
-msgstr ""
-"MSG_OUT_OF_BOUNDS\tAusgewählte Dateien sind außerhalb des zulässigen "
-"Bereichs."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:75
-msgid "MSG_SEL_POS_FIRST\tSelect position prior to entering Text."
-msgstr ""
-"MSG_SEL_POS_FIRST\tDie Position muß vor der Texteingabe festgelegt werden."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:76
-msgid ""
-"MSG_CARPROTO_BADSEGS\tSelected shapes must define a rectangular area ..."
-"\tSelected shapes must define a rectangular\n"
-"area with length greater than height."
-msgstr ""
-"MSG_CARPROTO_BADSEGS\tDie ausgewählten Formen müssen einen rechtwinkligen..."
-"\tDie ausgewählten Formen müssen einen rechtwinkligen\n"
-"Bereich bilden, wobei die Länge größer als die Breite sein muss."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:77
-msgid ""
-"MSG_TOO_FAR_APART_DIVERGE\tSelected tracks deviate too much or are too far "
-"apart from each other."
-msgstr ""
-"MSG_TOO_FAR_APART_DIVERGE\tDie ausgewählten Gleise weichen zu stark ab..."
-"\tDie ausgewählten Gleise weichen zu stark ab oder\n"
-"sind zu weit voneinander entfernt."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:78
-msgid "MSG_COMMAND_DISABLED\tSpecified command disabled."
-msgstr "MSG_COMMAND_DISABLED\tDieser Befehl ist deaktiviert."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:79
-msgid "MSG_SPLIT_POS_BTW_MERGEPTS\tSplit position between Turnout Points"
-msgstr ""
-"MSG_SPLIT_POS_BTW_MERGEPTS\tDie Trennstelle befindet sich iin den "
-"Weichenzungen."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:80
-msgid "MSG_SPLIT_PATH_NOT_UNIQUE\tSplit position not on unique path"
-msgstr ""
-"MSG_SPLIT_PATH_NOT_UNIQUE\tTrennstelle ist nicht auf einem eindeutigen "
-"Verlauf."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:81
-#, c-format
-msgid ""
-"MSG_CARIMP_MISSING_DIMS\tThe following car has no dimensions and a...\tThe "
-"following car has no dimensions and a\n"
-"Car Part description can not be found.\n"
-"\n"
-"%s\n"
-"\n"
-"Do you wish to continue importing other Cars?"
-msgstr ""
-"MSG_CARIMP_MISSING_DIMS\tFür den folgenden Wagen gibt es keine Abmessungen "
-"und....\tFür den folgenden Wagen gibt es keine Abmessungen und\n"
-"eine Wagenbeschreibung ist nicht vorhanden.\n"
-"\n"
-"%s\n"
-"\n"
-"Soll das Einlesen der Wagen fortgesetzt werden?"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:82
-#, c-format
-msgid ""
-"MSG_CARIMP_MISSING_PARTNO\tThe following car has no Part Number...\tThe "
-"following car has no Part Number\n"
-"\n"
-"%s\n"
-"\n"
-"Do you wish to continue importing other Cars?"
-msgstr ""
-"MSG_CARIMP_MISSING_PARTNO\tDer folgende Wagen hat keine Teilenummer...\tDer "
-"folgende Wagen hat keine Teilenummer.\n"
-"\n"
-"%s\n"
-"\n"
-"Soll das Einlesen der Wagen fortgesetzt werden?"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:83
-#, c-format
-msgid ""
-"MSG_CARIMP_IGNORED_COLUMN\tThe following column in the Car Import file will "
-"be ignored:...\tThe following column in the Car Import file will be "
-"ignored:\n"
-"\n"
-"%s"
-msgstr ""
-"MSG_CARIMP_IGNORED_COLUMN\tDiese Spalte in der Wagen-Importdatei wird "
-"ignoriert:...\tDiese Spalte in der Wagen-Importdatei wird ignoriert:\n"
-"\n"
-"%s"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:84
-msgid ""
-"MSG_CANT_MOVE_UNDER_TRAIN\tThe position of a turnout or turntable cannot be "
-"changed while occupied by a train."
-msgstr ""
-"MSG_CANT_MOVE_UNDER_TRAIN\tDie Position einer Weiche oder einer "
-"Drehscheibe...\tDie Position einer Weiche oder einer Drehscheibe\n"
-"kann nicht verändert werden, wenn sich ein Zug darauf befindet."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:85
-msgid ""
-"MSG_STRUCT_NO_STRUCTS\tThere are no structures to choose from in the "
-"structure...\tThere are no structures to choose from in the structure\n"
-"selection list. Please check your SCALE, select the\n"
-"<File|Parameter Files> menu to load a Parameter File or\n"
-"create a new Structure with the Group command."
-msgstr ""
-"MSG_STRUCT_NO_STRUCTS\tIn der Liste der Gebäude gibt es keine...\tIn der "
-"Liste der Gebäude gibt es keine Gebäude,\n"
-"die ausgewählt werden können. Bitte Maßstab prüfen, im Menupunkt <Datei|"
-"Parameter Dateien> eine Parameter-Datei wählen\n"
-"oder ein neues Gebäude mit dem Gruppieren-Befehl erstellen."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:86
-msgid ""
-"MSG_TURNOUT_NO_TURNOUT\tThere are no turnouts to choose from in the "
-"turnout...\tThere are no turnouts to choose from in the turnout\n"
-"selection list. Please check your SCALE, select the\n"
-"<Manage|Turnout Designer> menu to enter a new turnout\n"
-"or select the <File|Parameter Files> menu to load a\n"
-"Parameter File"
-msgstr ""
-"MSG_TURNOUT_NO_TURNOUT\tIn der Weichenauswahl gibt es keine Weichen, die "
-"ausgewählt werden können...\tIn der Weichenauswahl gibt es keine Weichen, "
-"die ausgewählt werden können.\n"
-"Bitte den Maßstab prüfen, über den Menupunkt <Hinzufügen | Weichendesigner> "
-"eine Weiche anlegen oder\n"
-"eine Parameter-Datei unter <Datei|Parameter Dateien> laden."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:87
-msgid "MSG_NO_UNCONN_EP\tThere are no unconnected end points for this track"
-msgstr "MSG_NO_UNCONN_EP\tDieses Gleis hat keine freien Endpunkte."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:88
-msgid "MSG_PULL_FEW_SECTIONS\tThere are too few sections in this loop."
-msgstr ""
-"MSG_PULL_FEW_SECTIONS\tIn dieser Schleife gibt es zu wenige Teilstücke."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:89
-msgid "MSG_NO_REDO\tThere is nothing to redo!"
-msgstr "MSG_NO_REDO\tEs gibt nichts wiederherzustellen!"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:90
-msgid "MSG_NO_UNDO\tThere is nothing to undo!"
-msgstr "MSG_NO_UNDO\tEs gibt nicht rückgängig zu machen!"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:91
-msgid "MSG_TOOMANYSEGSINGROUP\tToo many segments in Group."
-msgstr "MSG_TOOMANYSEGSINGROUP\tIn der Gruppe sind zu viele Teile."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:92
-msgid "MSG_CANNOT_CHANGE\tTrack cannot be changed."
-msgstr "MSG_CANNOT_CHANGE\tGleis kann nicht verändert werden."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:93
-msgid "MSG_POINT_INSIDE_TURNTABLE\tTrack endpoint is within turntable radius."
-msgstr ""
-"MSG_POINT_INSIDE_TURNTABLE\tGleisende befindet sich innerhalb der "
-"Drehscheibe."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:94
-msgid ""
-"MSG_MOVE_POINTS_AWAY_NO_INTERSECTION\tTrack intersection not possible; move "
-"points away from frog."
-msgstr ""
-"MSG_MOVE_POINTS_AWAY_NO_INTERSECTION\tGleiskreuzung ist nicht möglich, "
-"Weichenzungen müssen länger sein."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:95
-#, c-format
-msgid ""
-"MSG_TRK_TOO_SHORT\tTrack is too short by N.NNN\t%strack is too short by %0.3f"
-msgstr ""
-"MSG_TRK_TOO_SHORT\tGleis ist um N.NNN zu kurz.\t%sgleis ist um %0.3f zu kurz."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:96
-#, c-format
-msgid ""
-"MSG_RADIUS_LSS_EASE_MIN\tTrack radius (N.NNN) is smaller than easement "
-"minimum (N.NNN).\tTrack radius (%s) is smaller than easement minimum (%s)."
-msgstr ""
-"MSG_RADIUS_LSS_EASE_MIN\tGleisradius (N.NNN) ist kleiner als der minimale "
-"Übergangsbogen (N.NNN).\tGleisradius (%s) ist kleiner als\n"
-"der Mindest-Übergangsbogen (%s)."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:97
-msgid ""
-"MSG_CANT_MODIFY_FROZEN_TRK\tTracks in a frozen layer cannot be modified."
-msgstr ""
-"MSG_CANT_MODIFY_FROZEN_TRK\tGleise in einer gesperrten Ebene können nicht "
-"verändert werden."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:98
-msgid ""
-"MSG_SEGMENTS_DIFFER\tTurnout definition contains non-track segments...."
-"\tTurnout definition contains non-track segments.\n"
-"\n"
-"Do you want to include them in this update?"
-msgstr ""
-"MSG_SEGMENTS_DIFFER\tDie Weichendefinition enthält nicht nur Gleise....\tDie "
-"Weichendefinition enthält nicht nur Gleise.\n"
-"\n"
-"Sollen diese in der Aktrualisierung aufgenommen werden?"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:99
-msgid "MSG_TURNTABLE_DIAM_GTR_0\tTurntable diameter must greater than 0."
-msgstr ""
-"MSG_TURNTABLE_DIAM_GTR_0\tDer Durchmesser der Drehscheibe muß größer als 0 "
-"sein."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:100
-#, c-format
-msgid ""
-"MSG_UNDO_ASSERT\tUndo assertion failure %s:%d...\tUndo assertion failure %s:"
-"%d\n"
-"Val = %ld(%lx)\n"
-"%s\n"
-"Please report this error to the XTrackCAD project development team at "
-"SourceForge."
-msgstr ""
-"MSG_UNDO_ASSERT\tUndo assertion failure %s:%d...\tUndo assertion failure %s:"
-"%d\n"
-"Val = %ld(%lx)\n"
-"%s\n"
-"Bitte diesen Fehler an das XTrackCAD Entwicklungsteam in Sourceforge "
-"berichten."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:101
-#, c-format
-msgid ""
-"MSG_PROG_CORRUPTED\tCritical file damaged!...\tCritical file damaged!\n"
-"\n"
-"%s is corrupt.\n"
-"\n"
-"Please reinstall software."
-msgstr ""
-"MSG_PROG_CORRUPTED\tEine kritische Datei ist beschädigt...\tEine kritische "
-"Datei ist beschädigt!\n"
-"\n"
-"%s ist beschädigt.\n"
-"\n"
-"Bitte XTrackCAD neu installieren."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:102
-#, c-format
-msgid "MSG_PT_IS_NOT_TRK\t[X Y] is not a track\t[%s %s] is not a track."
-msgstr ""
-"MSG_PT_IS_NOT_TRK\tAn [X Y]befindet sich kein Gleis\tAn [%s %s] befindet "
-"sich kein Gleis."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:103
-msgid ""
-"MSG_BITMAP_SIZE_WARNING\tYou have specified a large Bitmap....\tYou have "
-"specified a large Bitmap.\n"
-"\n"
-"Are you sure you want to continue?"
-msgstr ""
-"MSG_BITMAP_SIZE_WARNING\tDie Bilddatei wird sehr groß.\tDie Bilddatei wird "
-"sehr groß.\n"
-"\n"
-"Wollen Sie den Vorgang fortsetzen?"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:104
-#, c-format
-msgid "Are you sure you want to delete these %d car(s)?"
-msgstr "Sind Sie sicher, dass Sie diese %d Wagen löschen wollen?"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:105
-#, c-format
-msgid ""
-"Cannot open %s file:\n"
-"%s:%s"
-msgstr ""
-"%sdatei kann nicht geöffnet werden:\n"
-"%s:%s"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:106
-#, c-format
-msgid "Unrecognized Option: %s"
-msgstr "Unbekannte Option: %s"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:107
-#, c-format
-msgid ""
-"End-Of-Line is unexpected in a quoted field.\n"
-"%s\n"
-"\n"
-"Do you want to continue reading the file?"
-msgstr ""
-"Unerwartetes Zeilenende in innerhalb von Anführungszeichen.\n"
-"%s\n"
-"\n"
-"Soll das Lesen der Datei fortgesetzt werden?"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:108
-#, c-format
-msgid ""
-"A comma was expected after this quoted field.\n"
-"%s\n"
-"\n"
-"Do you want to continue reading the file?"
-msgstr ""
-"Erwartetes Komma nach Anführungszeichen fehlt.\n"
-"%s\n"
-"\n"
-"Soll das Laden der Datei fortgesetzt werden?"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:109
-#, c-format
-msgid ""
-"Error \\\\\"%s\\\\\" occurred while writing %s.\n"
-"Please check disk space and system status."
-msgstr ""
-"Fehler \\\\\"%s\\\\\" aufgetreten beim Speichern von %s.\n"
-"Bitte Plattenplatz und System prüfen."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:110
-#, c-format
-msgid ""
-"At least one path for the Turnout T%d does not\n"
-"terminate on an endpoint. Such a track cannot be grouped.\n"
-"The track has been unselected."
-msgstr ""
-"Mindestens ein Pfad durch die Weiche T%d endet nicht\n"
-"an einem Endpunkt. Solche Gleise können nicht gruppiert werden.\n"
-"Das Gleis wurde aus der Auswahl entfernt."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:111
-msgid "inv-pathEndTrk on Path."
-msgstr "inv-pathEndTrk auf Pfad."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:112
-msgid "inv-pathStartTrk on Path"
-msgstr "inv-pathStartTrk auf Pfad."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:113
-#, c-format
-msgid "%s:%d- %s"
-msgstr "%s:%d- %s"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:114
-msgid "pathEndTrk not on Path."
-msgstr "pathEndTrk nicht auf einem Pfad."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:115
-msgid "pathStartTrk not on Path."
-msgstr "pathStartTrk nicht auf einem Pfad."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:116
-msgid ""
-"The tracks cannot be connected together.\n"
-"\n"
-"Try changing some tracks for a closer fit\n"
-"or increase the Connection Angle value on\n"
-"the Preferences dialog."
-msgstr ""
-"Die Gleise können nicht verbunden werden.\n"
-"\n"
-"Versuchen Sie einige Gleise enger zusammenzuführen\n"
-"oder ändern Sie den Verbindungswinkel im\n"
-"Einstellungsdialog."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:117
-msgid ""
-"The tracks cannot be connected together.\n"
-"\n"
-"Try changing some tracks for a closer fit\n"
-"or increase the Connection Distance and\n"
-"Angle values on the Preferences dialog"
-msgstr ""
-"Die Gleise können nicht verbunden werden.\n"
-"\n"
-"Versuchen Sie einige Gleise enger zusammenzuführen\n"
-"oder ändern Sie den Verbindungsabstand und -winkel im\n"
-"Einstellungsdialog"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:118
-msgid ""
-"The tracks cannot be connected together.\n"
-"\n"
-"Try changing some tracks for a closer fit\n"
-"or increase the Connection Distance"
-msgstr ""
-"Die Gleise können nicht verbunden werden.\n"
-"\n"
-"Versuchen Sie einige Gleise enger zusammenzuführen\n"
-"oder ändern Sie den Verbindungsabstand im Einstellungsdialog"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:119
-msgid ""
-"The first track for the Align\n"
-"Rotate command must be Selected."
-msgstr ""
-"Das erste Gleis für den \"Ausrichten\n"
-"Drehen\" Befehl muss ausgewählt sein."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:120
-msgid ""
-"The second track for the Align\n"
-"Rotate command must be Unselected."
-msgstr ""
-"Das zweite Gleis für den \"Ausrichten\n"
-"Drehen\" Befehl darf nicht ausgewählt sein."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:121
-msgid "Too many selected tracks, drawing tracks as End Point."
-msgstr "Zu viele ausgewählte Gleise, nur die Endpunkte werden angezeigt"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:122
-msgid "Select an endpoint between two tracks."
-msgstr "Einen Endpunkt zwischen zwei Gleisen auswählen."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:123
-msgid ""
-"According to values that have been entered the diverging\n"
-"track does not connect with the tangent track. Please\n"
-"check the values entered and try again. Check the angle\n"
-"is entered as a frog number or in degrees as specified\n"
-"by Angle Mode radio buttons."
-msgstr ""
-"Mit den eingegebenen Werten kann das abzweigende\n"
-"Gleis nicht mit dem Stammgleis verbunden werden. Bitte\n"
-"prüfen Sie die eingegebenen Werte und versuchen es nochmals.\n"
-"Prüfen Sie ob der Abzweigwinkel gemäß der der Auswahl richtig als\n"
-"Steigung oder als Winkel eingegeben wurde. "
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:124
-msgid "Moved before the end of the turnout"
-msgstr "Vor das Ende des Tunnels verschoben"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:125
-msgid ""
-"The Coupled Length must be greater than the Car Length,\n"
-"and the Coupler Length must be greater than 0."
-msgstr ""
-"Die gekuppelte Länge muss größer als die Wagenlänge\n"
-"und die Kupplerlänge muss größer als 0 sein."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:126
-msgid ""
-"The Car Length value must be greater\n"
-"than the Car Width value."
-msgstr ""
-"Die Wagenlänge muss größer als\n"
-"die Wagenbreite sein."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:127
-msgid ""
-"The specified Index is already in use.\n"
-"The Index will be updated to the next available value."
-msgstr ""
-"Dier angegebene Indexnummer ist bereits vergeben.\n"
-"Die Indexnummer wird auf den nächsten freien Wert aktualisiert."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:128
-msgid ""
-"You have changed values for this object.\n"
-"\n"
-"Are you sure you want to Close?"
-msgstr ""
-"Sie haben Änderungen an diesem Objekt vorgenommen\n"
-"\n"
-"Wollen Sie diesen Dialog wirklich beenden?"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:129
-#, c-format
-msgid ""
-"File version %ld is lower than the minimum\n"
-"supported version %d. You need to update your\n"
-"layout file using an older version of %s"
-msgstr ""
-"Dateiversion %ld ist älter als die älteste\n"
-"unterstütze Version %d. Konvertieren Sie\n"
-"die Gleisplandatei mit einer älteren Version von %s\""
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:130
-#, c-format
-msgid ""
-"%s cannot read the demo file:\n"
-"%s"
-msgstr ""
-"%s kann die Demodatei \":\n"
-"%s nicht laden."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:131
-#, c-format
-msgid "doDemo: bad number (%d)"
-msgstr "doDemo: ungültige Zahl (%d)"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:132
-msgid "Playback TIMEEND without TIMESTART"
-msgstr "TIMEEND in Wiedergabe ohne TIMESTART"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:133
-#, c-format
-msgid ""
-"Unknown playback command (%d)\n"
-"%s"
-msgstr ""
-"Unbekannter Wiedergabebefehl (%d)\n"
-"%s"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:134
-#, c-format
-msgid ""
-"Playback file version %ld is lower than the\n"
-"minimum supported version %d.\n"
-"You need to update your layout file using an\n"
-"older version of %s"
-msgstr ""
-"Wiedergabedatei version %ld ist niedriger als\n"
-"die kleinste unterstützte Version %d.\n"
-"Sie müssen Ihr Layoutdesign mit einer älteren\n"
-"Version von %s aktualisieren."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:135
-#, c-format
-msgid "Scale index (%d) is not valid"
-msgstr "Maßstab (%d) ist nicht gültig"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:136
-#, c-format
-msgid ""
-"Scale %s is not valid\n"
-"Please check your %s.xtq file"
-msgstr ""
-"Maßstab %s ist ungültig.\n"
-"Bitte prüfen Sie die Datei %s.xtq "
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:137
-msgid "Cannot extend a helix"
-msgstr "Eine Gleiswendel kann nicht erweitert werden."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:138
-msgid "Cannot trim a helix"
-msgstr "Eine Gleiswendel kann n icht gekürzt werden"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:139
-msgid "Ignore further audit notices?"
-msgstr "Weitere Protokollhinweise ignorieren?"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:140
-#, c-format
-msgid "%s"
-msgstr "%s"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:141
-msgid "Audit Abort?"
-msgstr "Protokolierung abbrechen?"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:142
-msgid "Write Audit File?"
-msgstr "Protokolldatei schreiben?"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:143
-#, c-format
-msgid "checkTrackLength: Short track length = %0.3f"
-msgstr "checkTrackLength: Kurze Gleislänge = %0.3f"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:144
-#, c-format
-msgid "checkTrackLength: unknown type: %d"
-msgstr "checkTrackLength: Unbekannter Typ: %d"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:145
-#, c-format
-msgid "connectTracks: T%d[%d] T%d[%d] d=%0.3f a=%0.3f"
-msgstr "connectTracks: T%d[%d] T%d[%d] d=%0.3f a=%0.3f"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:146
-#, c-format
-msgid "GetAngleAtPoint: bad type(%d) for T(%d)"
-msgstr "GetAngleAtPoint: Falscher Typ (%d) für T(%d)"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:147
-#, c-format
-msgid "joinTracks: invalid track type=%d"
-msgstr "joinTracks: Ungültiger Gleistyp=%d"
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:148
-#, c-format
-msgid "resolveIndex: T%d[%d]: T%d doesn\\\\'t exist"
-msgstr "resolveIndex: T%d[%d]: T%d existiert nicht."
-
-#: ../../../build/xtc_4-2-3dev/app/help/messages.h:149
-msgid "Moved beyond the end of the track"
-msgstr "Hinter das Ende des Gleises verschoben"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:10
-msgid "Invokes on-line help for this dialog"
-msgstr "Aufruf der Kontexthilfe für diesen Dialog"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:11
-msgid "Cancels this command"
-msgstr "Befehl abbrechen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:12
-msgid "Closes the dialog"
-msgstr "Dialogfenster schliessen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:13
-msgid "About box dialog"
-msgstr "Informationen über dieses Programm"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:14
-msgid "Move Selected object to top"
-msgstr "Ausgewählte Objekte ganz nach oben"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:15
-msgid "Raise or Lower all Selected tracks"
-msgstr "Alle ausgewählten Gleise anheben oder absenken"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:16
-msgid "Move Selected object to bottom"
-msgstr "Ausgewählte Objekte ganz nach unten"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:21
-msgid "Create a new Car/Loco description"
-msgstr "Erstelle eine neue Wegan/Lok-Beschreibung"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:22
-msgid "Manage your Car and Loco Inventory"
-msgstr "Wagen- und Lokbestand verwalten"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:23
-msgid "Create track circle from center"
-msgstr "Erstelle Gleiskreis um Mittelpunkt"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:24
-msgid "Create fixed radius track circle"
-msgstr "Erstelle Gleiskreis mit festgelegtem Radius"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:25
-msgid "Set Circle Track creation mode"
-msgstr "Wähle Befehl um Gleisbögen zu erstellen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:26
-msgid "Create track circle from tangent"
-msgstr "Erstelle Gleiskreis von Tangente"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:27
-msgid "Removes elevation from Selected tracks"
-msgstr "Entfernt die Höhenangaben von den ausgewählten Gleisen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:28
-msgid "Command Options dialog"
-msgstr "Dialog für die Befehlsoptionen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:29
-msgid "Controls colors"
-msgstr "Steuert die Farben"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:30
-msgid "Connect two tracks"
-msgstr "Gleise zusammenfügen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:31
-msgid "Copy selected objects to clipboard"
-msgstr "Ausgewählte Objekte in die Zwischenablage kopieren"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:32
-msgid "Create curved track from center"
-msgstr "Erstelle Gleisbogen vom Mittelpunkt"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:33
-msgid "Create curved track from chord"
-msgstr "Erstelle Gleisbogen von einer Sehne"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:34
-msgid "Create curved track from end-point"
-msgstr "Erstelle Gleisbogen von Endpunkt"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:35
-msgid "Set Curve Track creation mode"
-msgstr "Wähle Befehl um Gleiskreis zu erstellen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:36
-msgid "Create curved track from tangent"
-msgstr "Erstelle Gleisbogen von einer Tangente"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:37
-msgid "Manipulate Custom designer entries"
-msgstr "Bearbeite die eigenen Designs"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:38
-msgid "Moves selected objects to clipboard"
-msgstr "Ausgewählte Objekte in die Zwischenablage verschieben"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:39
-msgid "Delete objects"
-msgstr "Objekte löschen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:40
-msgid "Playback demos"
-msgstr "Demos abspielen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:41
-msgid "Describe objects"
-msgstr "Objekte beschreiben"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:42
-msgid "Deselect all selected objects"
-msgstr "Ausgewählte Objekte abwählen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:43
-msgid "Change Display parameters"
-msgstr "Anzeigeeigenschaften ändern"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:44
-msgid "Create benchwork"
-msgstr "Erstelle Unterbau"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:45
-msgid "Create a box"
-msgstr "Ein Viereck erstellen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:46
-msgid "Set Circle drawing command"
-msgstr "Wähle Befehl um Kreise zu zeichnen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:47
-msgid "Create a circle"
-msgstr "Einen Kreis erstellen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:48
-msgid "Draw a circle line from center"
-msgstr "Zeichne Kreislinie um Mittelpunkt"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:49
-msgid "Draw a fixed radius circle line"
-msgstr "Zeichne einen Kreisbogen mit festen Radius"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:50
-msgid "Draw a circle line from tangent"
-msgstr "Zeichne Kreis von Tangente"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:51
-msgid "Set Curve drawing command"
-msgstr "Wähle Befehl um gebogene Linien zu zeichnen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:52
-msgid "Create a curved line"
-msgstr "Eine gebogene Linie erstellen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:53
-msgid "Create a curved line from End"
-msgstr "gebogene Linie von einem Endpunkt erstellen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:54
-msgid "Create a curved line from center"
-msgstr "gebogene Linie vom Mittelpunkt aus erstellen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:55
-msgid "Create a curved line from chord"
-msgstr "gebogene Linie von einer Sehne erstellen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:56
-msgid "Create a curved line from tangent"
-msgstr "gebogene Linie von einer Tangente erstellen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:57
-msgid "Create a dimension line"
-msgstr "Zeichne Maßlinie"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:58
-msgid "Create a filled box"
-msgstr "Ein gefülltes Viereck erstellen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:59
-msgid "Create a filled circle"
-msgstr "Einen gefüllten Kreis erstellen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:60
-msgid "Draw a filled circle from center"
-msgstr "Zeichne gefüllten Kreis um Mittelpunkt"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:61
-msgid "Draw a fixed radius filled circle"
-msgstr "Zeichne einen gefüllten Kreis mit festem Radius"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:62
-msgid "Draw a filled circle from tangent"
-msgstr "Zeichne gefüllten Kreis von Tangente"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:63
-msgid "Create a filled polygon"
-msgstr "Ein gefültes Polygon erstellen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:64
-msgid "Create a polyline"
-msgstr "Eine Polylinie erstellen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:65
-msgid "Create a straight line"
-msgstr "Eine gerade Linie erstellen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:66
-msgid "Set Line drawing command"
-msgstr "Wähle Befehl um Linien zu zeichnen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:67
-msgid "Set Shape drawing command"
-msgstr "Wähle Befehl um Formen zu zeichnen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:68
-msgid "Draw table edge"
-msgstr "Tischkante zeichnen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:69
-msgid "Easement menu"
-msgstr "Einstellungen für Übergangsbögen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:71
-msgid "Generate a Parts List of selected objects"
-msgstr "Teileliste aus den ausgewählten Objekten erzeugen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:72
-msgid "Export a .xti file"
-msgstr "Export in XTI Datei"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:73
-msgid "Export a DXF file"
-msgstr "Export nach DXF"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:74
-msgid "General note about the layout"
-msgstr "Allgemeine Notiz zur Anlage"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:75
-msgid "Flip selected objects"
-msgstr "Ausgewählte Objekte spiegeln"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:76
-msgid "Adjust snap grid"
-msgstr "Fangraster anpassen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:77
-msgid "Enable snap grid"
-msgstr "Fangraster aktivieren"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:78
-msgid "Show snap grid"
-msgstr "Fangraster anzeigen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:79
-msgid "Create a structure from a Group of objects"
-msgstr "Objekte zu einer Gruppierung zusammen fassen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:80
-msgid "Create a hand-laid turnout"
-msgstr "Handgemachte Weiche erstellen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:81
-msgid "Create a track helix"
-msgstr "Eine Gleiswendel erstellen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:82
-msgid "Import a .xti file"
-msgstr "Importieren einer .xti-Datei"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:83
-msgid "Join two tracks"
-msgstr "Zwei Gleise zusammenfügen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:84
-msgid "Change Layers"
-msgstr "Ebenen ändern"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:85
-msgid "Selects the current drawing layer"
-msgstr "Auswahl der aktuellen Zeichenebene"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:86
-msgid "Layout parameters"
-msgstr "Gleisplaneinstellungen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:87
-msgid "Modify or extend a track"
-msgstr "Ändern oder erweitern eines Gleises"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:88
-msgid "Move selected objects"
-msgstr "Ausgewählte Objekte verschieben"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:89
-msgid "Move a label"
-msgstr "Beschreibung verschieben"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:90
-msgid "Move selected objects to current layer"
-msgstr "Ausgewählte Objekte auf die aktuelle Ebene verschieben"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:92
-msgid "Print a BitMap"
-msgstr "Drucke in eine Grafikdatei"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:93
-msgid "Create a parallel track"
-msgstr "Ein Parallelgleis erzeugen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:94
-msgid "Register"
-msgstr "Registrierem"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:95
-msgid "Copy objects from clipboard"
-msgstr "Objekte von der Zwischenablage kopieren"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:96
-msgid "Perferences dialog"
-msgstr "Einstellungen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:97
-msgid "Display prices of turnouts, sectional tracks and structures"
-msgstr "Die Preise von Weichen, Gleisen und Gebäuden anzeigen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:98
-msgid "Print the layout"
-msgstr "Gleisplan ausdrucken"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:99
-msgid "Loads and unloads parameter files"
-msgstr "Parameterdateien laden und entladen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:100
-msgid "Elevation Profile Command"
-msgstr "Höhenprofil bearbeiten"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:102
-msgid "Command recorder"
-msgstr "Befehlsaufzeichnung"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:104
-msgid "Update selected Turnout and Structure definitions"
-msgstr "Die ausgewählten Gebäude und Weichen aktualisieren"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:105
-msgid "Rescale selected objects"
-msgstr "Ausgewählte Objekte skalieren"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:106
-msgid "Rotate selected object(s)"
-msgstr "Ausgewählte Objekte drehen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:107
-msgid "Show a ruler"
-msgstr "Lineal anzeigen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:108
-msgid "Select objects"
-msgstr "Objekte auswählen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:109
-msgid "Selects all objects on the layout"
-msgstr "Alle Objekte des Gleisplan auswählen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:110
-msgid "Selects all objects in the current Layer"
-msgstr "Alle Objekte der aktuellen Ebene auswählen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:111
-msgid "Invert current selection"
-msgstr "Auswahl umkehren"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:112
-msgid "Split a track"
-msgstr "Gleis trennen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:113
-msgid "Select stranded (unconnected) track pieces"
-msgstr "Vereinzelte (nicht verbundene) Gleisstücke auswählen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:114
-msgid "Choose which commands are sticky"
-msgstr "Auswahl dauerhafter Befehle"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:115
-msgid "Create straight track"
-msgstr "Gerades Gleis erzeugen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:116
-msgid "Place a structure on the layout"
-msgstr "Ein Gebäude auf den Gleisplan setzen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:121
-msgid "Enter text on the layout"
-msgstr "Text auf den Gleisplan"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:122
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:468
-msgid "Controls the size of the entered text"
-msgstr "Auswahl der Schriftgröße für einzugebenden Text"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:123
-msgid "Tip of the Day window"
-msgstr "Tipp des Tages"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:124
-msgid "Run Trains"
-msgstr "Zugbetrieb"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:125
-msgid "Pause/Resume Trains"
-msgstr "Zugbetrieb pausieren/fortsetzen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:126
-msgid "Place a car on the layout"
-msgstr "Einen Wagen auf den Gleisplan setzen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:127
-msgid "Exit Trains"
-msgstr "Zugbetrieb beenden"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:128
-msgid "Hide/Unhide a track"
-msgstr "Verbergen/Zeigen eines Gleises"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:129
-msgid "Place a turnout or sectional track"
-msgstr "Weiche oder Gleis platzieren"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:130
-msgid "Create a new turnout definition"
-msgstr "Erstelle eine neue Weichendefinition"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:131
-msgid "Place a turntable"
-msgstr "Eine Drehscheibe setzen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:132
-msgid "Updates old source files with 3 part titles"
-msgstr "Aktualisiere alte Dateien mit dreiteiligen Titeln"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:134
-msgid "Ungroup objects"
-msgstr "Gruppierung aufheben"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:135
-msgid "Draw tracks with thin lines"
-msgstr "Gleise mit dünnen Linien zeichnen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:136
-msgid "Draw tracks with medium lines"
-msgstr "Gleise mit mittleren Linien zeichnen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:137
-msgid "Draw tracks with thick lines"
-msgstr "Gleise mit dicken Linien zeichnen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:138
-msgid "Change drawing scale"
-msgstr "Zeichenmaßstab auswählen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:139
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:151
-msgid "Zoom in"
-msgstr "Zoom größer"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:140
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:152
-msgid "Zoom out"
-msgstr "Zoom kleiner"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:141
-msgid "File Menu"
-msgstr "Dateimenue"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:142
-msgid "Save layout"
-msgstr "Gleisplan speichern"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:143
-msgid "Save layout under a new name "
-msgstr "Gleisplan mit neuem Namen speichern"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:144
-msgid "New layout"
-msgstr "Neuer Gleisplan"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:145
-msgid "Generate parts list"
-msgstr "Teileliste erzeugen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:146
-msgid "Load a layout"
-msgstr "Gleisplan laden"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:147
-msgid "Exit the program"
-msgstr "Programm beenden"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:148
-msgid "Revert to last saved state of layout plan"
-msgstr "Zum letzten gespeicherten Stand zurücksetzen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:149
-msgid "Edit menu"
-msgstr "Menü für Bearbeitungsfunktionen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:150
-msgid "Redraw layout"
-msgstr "Gleisplan neu zeichnen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:153
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:156
-msgid "Tools menu"
-msgstr "Werkzeug Menu"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:154
-msgid "View menu"
-msgstr "Menü für Anzeigefuinktionen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:155
-msgid "Toolbar configuration"
-msgstr "Konfiguration der Werkzeugleiste"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:157
-msgid "Options menu"
-msgstr "Optionen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:158
-msgid "Playback/Record commands"
-msgstr "Aufzeichnungs- und Wiedergabebefehle"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:159
-msgid "Window menu"
-msgstr "Fenstermenu"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:160
-msgid "Help menu"
-msgstr "Menu für Hilfe"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:161
-msgid "Recent error messages and explanations"
-msgstr "Aktuellste Fehlermeldungen und Erläuterungen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:162
-msgid "Move Hot Bar left"
-msgstr "Schnellauswahl nach links bewegen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:163
-msgid "Move Hot Bar right"
-msgstr "Schnellauswahl nach rechts bewegen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:164
-msgid "Total track count"
-msgstr "Gesamtzahl der Gleise"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:165
-msgid "X Position of cursor"
-msgstr "X Position des Zeiger"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:166
-msgid "Y Position of cursor"
-msgstr "Y Position des Zeiger"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:167
-msgid "Drawing scale"
-msgstr "Zeichnungsmaßstab"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:168
-msgid "Message and status line"
-msgstr "Nachrichten- und Statuszeile"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:169
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:170
-msgid "Main layout canvas"
-msgstr "Hauptzeichenbereich"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:171
-msgid "Main drawing canvas"
-msgstr "Hauptzeichenbereich"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:172
-msgid "Command buttons"
-msgstr "Befehle"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:173
-msgid "Menus"
-msgstr "Menues"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:174
-msgid "Tile, Filename and Window Manager buttons"
-msgstr "Tile, Filename and Window Manager buttons"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:175
-msgid "Turnout and Structure Hot Bar"
-msgstr "Weichen und Gebäude Auswahlleiste"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:176
-msgid "Active layer list and layer buttons"
-msgstr "Liste der aktiven Ebene und Ebenen-Knöpfe"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:177
-msgid "Map window"
-msgstr "Kartenfenster"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:178
-msgid "This is the portion of the layout shown in the Main Window canvas"
-msgstr "Dieser Teil der Gleisplans wird auf der Hauptzeichenfläche angezeigt"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:179
-msgid "Raise or Lower all Selected Track"
-msgstr "Anheben oder Absenken der ausgewählten Gleise"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:180
-msgid "Add or Update car object"
-msgstr "Einen Wagen zufügen oder aktualisieren"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:181
-msgid "Manufacturer name"
-msgstr "Name des Herstellers"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:184
-msgid "Is the Car a Locomotive?"
-msgstr "Ist der Wagen eine Lokomotive?"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:185
-msgid "Part Number and Description"
-msgstr "Bestellnr. und Beschreibung"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:186
-msgid "Manufacturer Part Number"
-msgstr "Bestellnummer des Herstellers"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:187
-msgid "Use the Selected figure as the car image"
-msgstr "Benutze die ausgewählte Zeichnung als Wagenabbild"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:188
-msgid "Use the default figure as the car image"
-msgstr "Benutze die Standardzeichnung als Wagenabbild"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:189
-msgid "Optional description of the Car Part"
-msgstr "Optionale Beschreibung des Wagenmuster"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:190
-msgid "Flip car image"
-msgstr "Wagenabbild spiegeln"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:191
-msgid "Display Car Item information or reporting marks and dimensions"
-msgstr "Informationen über den Wagen oder Kennzeichen und Abmessungen anzeigen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:192
-msgid "Full Roadname"
-msgstr "Bahngesellschaft"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:193
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:194
-msgid "Car Type"
-msgstr "Wagenart"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:195
-msgid "Reporting Marks (Roadname abbreviation)"
-msgstr "Wagenkennzeichen "
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:196
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:366
-msgid "Car Number"
-msgstr "Wagennummer"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:197
-msgid "Car body Color"
-msgstr "Wagenfarbe"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:198
-msgid "Length of car body"
-msgstr "Länge des Aufbau"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:199
-msgid "Width of car body"
-msgstr "Breite des Aufbau"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:200
-msgid "Distance between Trucks "
-msgstr "Abstand zwischen den Drehgestellen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:201
-msgid "Coupler are mounted on body or truck"
-msgstr "Kupplungen sind am Wagenaufbau oder an den Drehgestellen befestigt"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:202
-msgid "Overall Coupled Length"
-msgstr "Gekuppelte Gesamtlänge"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:203
-msgid "Coupler Length from end of car"
-msgstr "Kupplungslänge vom Ende des Wagen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:204
-msgid "Diagram of Car"
-msgstr "Diagram der Lokomotive oder Wagens"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:205
-msgid "Item Index Number"
-msgstr "Laufende Nummer"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:206
-msgid "Original Purchase Price"
-msgstr "Ursprünglicher Kaufpreis"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:208
-msgid "Condition of car"
-msgstr "Zusatnd des Wagen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:209
-msgid "Original Purchase Date"
-msgstr "Ursprüngliches Kaufdatum"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:210
-msgid "Last Service Date"
-msgstr "Letztes Servicedatum"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:211
-msgid "Number of identical cars to be entered"
-msgstr "Anzahl der zusätzlichen, gleichartigen Wagen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:212
-msgid "Do all the cars have the same Number?"
-msgstr "Haben alle Wagen dieselbe Nummer"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:213
-msgid "Notes about the car"
-msgstr "Anmerkungen zu dem Wagen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:214
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:215
-msgid "Create a new car Part or Prototype definitions"
-msgstr "Einen neuen Lokomotiven oder Wagen Prototyp erstellen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:216
-msgid "Finds the selected Car Item on the layout"
-msgstr "Suche den ausgewählten Wagen auf der Anlage"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:217
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:218
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:219
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:220
-msgid "Sort the Item list"
-msgstr "Sortierung auswählen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:222
-msgid "Edit the selected Car Item"
-msgstr "markierte Lokomotive oder Wagen bearbeiten"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:223
-msgid "Add a new Car Item"
-msgstr "Neuen Wagen hinzufügen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:224
-msgid "Delete the selected Car Items"
-msgstr "Markierte Lokomotiven oder Wagen löschen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:225
-msgid "Import a Car Item .csv file"
-msgstr "Lokomotiven oder Wagen aus einer .csv Datei importieren"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:226
-msgid "Export a Car Item .csv file"
-msgstr "Exportieren der markierten Lokomotiven oder Wagen in eine .csv Datei"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:227
-msgid "Create a text list of the Car Items"
-msgstr "Textdatei der Lokomotiven oder Wagen erstellen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:228
-msgid "Specifies the radius of the circle track"
-msgstr "gibt den Radius des Gleiskreises an"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:229
-msgid "How to draw track being moved/rotated"
-msgstr ""
-"Festlegen wie Gleise gezeichnet werden, sobald sie bewegt/rotiert werden"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:230
-msgid "Default command is Describe or Select"
-msgstr "Standardbefehl ist Eigenschaften oder Auswählen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:231
-msgid "Action to invoke on Right-Click"
-msgstr "Festlegen welche Aktion beim Rechtsklick erfolgen soll"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:233
-msgid "Contents Label for new Parameter file"
-msgstr "Inhaltsbeschreibung für neue Parameterdatei"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:234
-msgid "List of custom designed turnouts and structures"
-msgstr "Liste der individual entwickelten Weichen und Strukturen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:235
-msgid "Invoke designer editor"
-msgstr "Vorbild bearbeiten"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:236
-msgid "Remove selected entries"
-msgstr "Ausgewählte Einträge löschen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:237
-msgid "Copy selected entries to Parameter File"
-msgstr "Ausgewählte Einträge in eine Parameterdatei verschieben"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:238
-msgid "Create a New part or prototype"
-msgstr "Neues Teil oder Prototype erstellen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:239
-msgid "Update custom file and close"
-msgstr "Anpassungs Verwaltung speichern und schliessen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:240
-msgid "Executes the next step of the demo"
-msgstr "Nächsten Schritt der momentanen Demo anzeigen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:241
-msgid "Skip to next demo"
-msgstr "zum nächstes Demo Kapitel springen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:242
-msgid "Stops the demonstration and returns you to XTrackCAD"
-msgstr "Demonstrations Modus verlassen und zu XTrackCAD zurückkehren"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:243
-msgid "Select speed of Playback"
-msgstr "Wiedergabegeschwindigkeit auswählen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:244
-msgid "This is where comments about the demo are displayed"
-msgstr "Kommentar zu Demos anzeigen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:280
-msgid "Move the Main canvas if you drag near the edge"
-msgstr ""
-"Bewegen den Hauptzeichenbereich wenn in der nähe der Ecken gezogen wird."
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:281
-msgid "Color tracks or other objects by layer"
-msgstr "Gleise / Objekte in Ebenen einfärben "
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:282
-msgid "Controls the drawing of hidden tracks"
-msgstr "Steuert das Zeichnen von versteckten Gleisen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:283
-msgid "Controls the drawing of End-Points"
-msgstr "Steuert das Zeichnen von Endpunkten"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:284
-msgid "How to draw track ties"
-msgstr "Steuert das Zeichnen der Schwellen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:285
-msgid "Show crosshair at center of curves"
-msgstr "Mittelpunkt als Fadenkreuz anzeigen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:286
-msgid "Drawing scale when to draw tracks with 2 rails"
-msgstr "Mindestmaßstab für die Anzeige von Gleisen mit zwei Schienen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:287
-msgid "Drawing scale of the map window"
-msgstr "Zeichenmaßstab des Kartenfenster"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:288
-msgid "Whether the main layout is updated while dragging on the Map"
-msgstr "Aktualisierung des Gleisplans wenn in der Karte gezogen wird."
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:289
-msgid "Enable labels for Turnouts, Flextrack Lengths and Elevations"
-msgstr "Zeige Beschriftungen für Weichen, Flexgleise und Steigungen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:290
-msgid "When to label Turnout, Flextrack Lengths and Elevations"
-msgstr "Wann sollen Weichen, Gleislängen oder Höhenmaß beschriftet werden"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:291
-msgid "Font size for labels on layout"
-msgstr "Zeichengrösse für Beschriftungen im Gleisplan"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:292
-msgid "Label elements on the Hot Bar"
-msgstr "Beschriftungselemente des Teilekatalogs"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:293
-msgid "Label elements on layout"
-msgstr "Beschriftungselemente im Gleisplan"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:294
-msgid "Label elements for lists"
-msgstr "Beschriftungselemente in den Listen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:295
-msgid "How to group cars on the Train Hot Bar"
-msgstr "Gruppierung der Waggen im Teilekatalog"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:296
-msgid "Delay (in mS) between updating train movements"
-msgstr "Aktualisierungsintervall (in ms) der Zugbewegungen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:297
-msgid "Don't show trains in tunnels when tunnels are hidden"
-msgstr "Zeige keine Züge in Tunnels wenn Tunnel verborgen sind"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:299
-msgid "Width of the lines"
-msgstr "Breite der Linien"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:300
-msgid "Color of the lines"
-msgstr "Farbe der Linien"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:301
-msgid "List of types of Lumber"
-msgstr "Liste der Leistenmaße"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:302
-msgid "Color of Benchwork"
-msgstr "Farbe des Unterbau"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:303
-msgid "Orientation of Benchwork"
-msgstr "Ausrichtung des Unterbau"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:304
-msgid "Size of Dimension Arrows"
-msgstr "Breite der Größenpfeile"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:305
-msgid "This controls the sharpness of the easement curve"
-msgstr "Steuert die Größe des Übergangsradius"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:306
-msgid "Minimum radius"
-msgstr "Mindestgleisradius"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:307
-msgid "Maximum offset"
-msgstr "Maximaler Abstand"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:308
-msgid "Easement length"
-msgstr "Länge des Übergangsbogen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:309
-msgid ""
-"These radio buttons are a short-cut for Values of 0.0, 0.5, 1.0 and 2.0. "
-"None turns Easements off"
-msgstr ""
-"Standardwerte 0,0, 0,5, 1,0 und 2,0 können schnell gesetzt werden. "
-"Übergangsbögen können hier nicht ausgeschaltet werden. "
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:310
-msgid "Complete easement selection"
-msgstr "Auswahl der Übergangsbögen vervollständigen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:311
-msgid "Type of elevation"
-msgstr "Typ des Höhendpunktes"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:312
-msgid "Height of End Point"
-msgstr "Höhe des Endpunkt"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:313
-msgid "Compute elevation based on neighbors"
-msgstr "Berechne das Höhenmaß gemäß der benachbarten Gleise"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:314
-msgid "Compute grade based on neighbors"
-msgstr "Berechne Steigung gemäß der benachbarten Gleise"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:315
-msgid "Specify a name for an End-Point"
-msgstr "Einen Namen für einen Endpunkt vergeben"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:317
-msgid "Print parts list"
-msgstr "Stückliste drucken"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:318
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:417
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:512
-msgid "Invoke the Print Setup dialog"
-msgstr "Starte den Druckerkonfigursationsdialog"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:319
-msgid "Save parts list to file"
-msgstr "Stückliste in Datei speichern"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:320
-msgid "This is the list of parts for the layout"
-msgstr "Dies ist die Teileliste für diesen Gleisplan"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:321
-msgid "Enable prices on the Parts List"
-msgstr "Preise in der Teileliste anzeigen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:322
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:325
-msgid "Spacing between major grid lines"
-msgstr "Abstand der Haupt Raster Linien einstellen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:323
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:326
-msgid "Allows the spacing to be subdivided"
-msgstr "stellt die Unterteilung von Zwischenmarkierungen ein"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:324
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:327
-msgid "Specifies if positions are snaped in this direction"
-msgstr "Einschalten des Fangrasters für diese Ausrichtung"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:328
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:329
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:330
-msgid "Shows the origin and angle of the grid"
-msgstr "gibt den Ausgangspunkt und Winkel des Rasters an"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:331
-msgid "Specifies if the grid is shown"
-msgstr "Anzeige des Rasters an oder aus"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:332
-msgid "Completes the grid specification"
-msgstr "Raster Anpassung speichern und beenden"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:336
-msgid "Number of segments in Group"
-msgstr "Anzahl der Segmente in der Gruppe"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:337
-msgid "Replace the Selected object with the new definition?"
-msgstr "Soll das ausgewählte Objekt durch die neue Definition ersetzt werden?"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:338
-msgid "Creates a new Structure (or Turnout)"
-msgstr "Ein neues Gebäude (oder eine Weiche) erstellen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:339
-msgid "Elevation difference of Helix End-Points"
-msgstr "Höhenunterschied zwischen den Endpunkten der Gleiswendel"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:340
-msgid "Helix Radius"
-msgstr "Radius der Gleiswendel"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:341
-msgid "Number of turns in the helix"
-msgstr "Anzahl der Umdrehungen in der Wendel"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:342
-msgid "Angle betweek helix entrance and exit"
-msgstr "Winkel zwischen Zu- und Ausgang der Wendel"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:343
-msgid "Grade in helix"
-msgstr "Steigung in der Wendel"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:344
-msgid "Separation between helix layers"
-msgstr "Abstand zwischen den Ebenen der Wendel"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:345
-msgid "Layer list"
-msgstr "Liste der Ebenen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:346
-msgid "Layer Name"
-msgstr "Name der Ebene"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:347
-msgid "Color of layer"
-msgstr "Farbe der Ebene"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:348
-msgid "Layer is drawn on Main window"
-msgstr "Ebene im Hauptfenster darstellen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:349
-msgid "Layer cannot be changed"
-msgstr "Ebene schützen - kann nicht mehr geändert werden"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:350
-msgid "Layer is drawn on Map window"
-msgstr "Ebene im Kartenfenster anzeigen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:351
-msgid "Number of layer buttons to show"
-msgstr "Anzahl der Ebenenknöpfe"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:352
-msgid "Number of objects in this layer"
-msgstr "Anzahl von Objekten in dieser Ebene"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:354
-msgid "Load layer configuration from default"
-msgstr "Persönliche Einstellungen für Ebenen laden"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:355
-msgid "Save current layer configuration as default"
-msgstr "momentane Einstellung für Ebenen speichern"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:356
-msgid "Overwrite layer configuration with system default values"
-msgstr "Einstellung für Ebenen auf Systemvorgabe zurück setzen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:357
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:358
-msgid "Specifies the size of the room (in inches or centimeters)"
-msgstr "Größenangabe des Raums (in Zentimeter oder Inch)"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:359
-msgid "Specifies the layout Title that will appear on printouts"
-msgstr "Angabe eines Layout Titels welcher auf Ausdrücken erscheint"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:360
-msgid "Specifies the layout Subtitle that will appear on printouts"
-msgstr "Angabe eines Layout Untertitels welcher auf Ausdrücken erscheint"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:361
-msgid "Specifies the Modelling Scale"
-msgstr "Angabe des Modellbahnmaßstabs"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:362
-msgid "Specifies the rail gauge, ie. the distance between the rails"
-msgstr "Angabe der Spurweite, d.h. der Abstand zwischen den Schienen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:363
-msgid ""
-"Specifies minimum track radius (in inches or centimeters). Tracks with a "
-"smaller radius are considered exceptional."
-msgstr ""
-"Angabe des minimalen Gleisradius (in Zentimeter oder Inch). Gleise mit "
-"geringerem Radius werden als Ausnahme angesehen."
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:364
-msgid ""
-"Specifies maximum track elevation expressed as a percent (%). Tracks with a "
-"larger elevation are considered exceptional."
-msgstr ""
-"Angabe der maximalen Gleissteigung in %. Gleise mit größerer Steigung werden "
-"als Ausnahme angesehen."
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:367
-msgid ""
-"This is the body of the Note. To change this select Modify from the File "
-"Menu"
-msgstr ""
-"Dies ist der Notiztext. Um diesen zu ändern, wählen Sie bitte 'Ändern' aus "
-"dem 'Datei'-Menu"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:369
-msgid "Specifies number of pixels per inch (or centimeter)"
-msgstr "Gibt die Anzahl der Bildpunkte pro Inch (oder Zentimeter) an"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:371
-msgid ""
-"Specifies whether Layout Titles, Borders or Track Centerlines are printed on "
-"the BitMap"
-msgstr ""
-"Gibt an, ob Anlagentitel, Begrenzungen und Gleismitten in der Bilddatei "
-"ausgegeben werden sollen. "
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:372
-msgid "Specifies the separation between parallel tracks"
-msgstr "Gibt den Abstand zwischen parallelen Gleisen an"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:373
-msgid "Enter your name as specified in the XTrackCAD Registration Notice"
-msgstr "Enter your name as specified in the XTrackCAD Registration Notice"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:374
-msgid "Enter the key value as specified in the XTrackCAD Registration Notice"
-msgstr "Enter the key value as specified in the XTrackCAD Registration Notice"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:375
-msgid "Validates the name and key. Terminates the registration command"
-msgstr "Validates the name and key. Terminates the registration command"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:376
-msgid "0° is up or to the right"
-msgstr "0° ist nach oben oder nach rechts"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:377
-msgid "Choose english (inches) or metric (centimeters)"
-msgstr "Einheiten auswählen: Englisch für Inches oder Metrisch für Zentimeter"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:378
-msgid "How to display length measurements"
-msgstr "Längenformat auswählen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:379
-msgid "Do not create tracks to be shorter than this value"
-msgstr "Keine Gleise kürzer als diese Mindestlänge erstellen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:380
-msgid "Maximum distance between connected end points"
-msgstr "Maximale Distanz zwischen verbundenen Endpunkten"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:381
-msgid "Minimum angle between connected End-Points"
-msgstr "kleinster Winkel zwischen verbundenen Endpunkten"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:382
-msgid "Specifies the minimum angle between tracks connected to a turntable"
-msgstr "kleinster Winkel beim Anschluss von Gleisen an eine Drehscheibe"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:383
-msgid "Trains will crash above this speed"
-msgstr "Züge entgleisen oberhalb dieser Geschwindigkeit"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:384
-msgid "Enable/Disable balloon popup help windows"
-msgstr "Ein-/Ausschalten von Erklärungshilfen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:385
-msgid "How far you can move the mouse before its considered a drag"
-msgstr "Wie weit kann die Maus bewegt werden, bevor abreißen angenommen wird"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:386
-msgid "How long you can hold a mouse button down before its considered a drag"
-msgstr ""
-"Wie lange kann ein Mausknopf gedrückt bleiben, bevor abreißen angenommen wird"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:387
-msgid "Minimum distance (in pixels) between grid lines/ticks"
-msgstr "Mindestabstand (in Pixeln) zwischen Raster und Linien"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:388
-msgid ""
-"Specifies the Check Point frequency; number of modifications made since the "
-"last save."
-msgstr ""
-"Anzahl von Änderungen bevor eine neue automatische Sicherung statt findet"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:389
-msgid "Resume work on last layout or start with new layout"
-msgstr "Letzten Gleisplan bearbeiten, oder einen neuen Gleisplan erstellen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:391
-msgid "Updated cost of current selected item"
-msgstr "Aktualisierte Kosten für den ausgewählten Gegenstand"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:393
-msgid "Selection list for prices"
-msgstr "Auswahlliste für Preise"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:394
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:395
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:396
-msgid "Price of specified length of flex-track"
-msgstr "Preis für die angegebene Länge des Flex-Gleises"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:398
-msgid "Controls the reduction (scale) of the printout"
-msgstr "Einstellung des Reduktions Maßstabs für den Ausdruck."
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:399
-msgid "Scaled page width (Scale times physical page width)"
-msgstr "Seitenbreite angeben (Maßstab mal physikalischer Papierbreite)"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:400
-msgid "Sets page size to the maximum (based on scale and physical page size)"
-msgstr ""
-"Setzt die Papiergröße auf das Maximum (basierend auf Maßstab und "
-"physikalischer Papiergröße)"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:401
-msgid "Scaled page height (Scale times physical page height)"
-msgstr "Seitenhöhe angeben (Maßstab mal physikalischer Papierhöhe)"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:402
-msgid "Sets scale, origin and angle for a one page printout of the layout"
-msgstr ""
-"Stellt Maßstab, Ausrichtung und Winkel für den momentan angezeigten "
-"Gleisplan ein"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:403
-msgid "Print page in Portrait or Landscape format"
-msgstr "Drucke im Hochformat oder Querformat"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:404
-msgid "Order of printing pages"
-msgstr "Druckreihenfolge"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:405
-msgid "Print Title, Date, Author and other information at bottom of page?"
-msgstr "Drucke Titel, Datum Autor und andere Informationen am Ende der Seite?"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:406
-msgid "Ignore unprintable page margins?"
-msgstr "nicht druckbare Seitenränder ignorieren?"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:407
-msgid "Print Registration Marks at 1:1?"
-msgstr "Drucke Positionierungshilfen im 1:1 Maßstab?"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:408
-msgid "Print Snap Grid?"
-msgstr "Fangraster drucken?"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:409
-msgid "Print Rulers on all page edges?"
-msgstr "Lineale an allen Seitenecken drucken?"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:410
-msgid "Print Roadbed Outline?"
-msgstr "Gleisbettung drucken?"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:412
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:413
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:415
-msgid ""
-"Origin of the print grid. This is useful if you want to reprint a set of "
-"pages"
-msgstr ""
-"Ursprung des Druckraster. Hilfreich, wenn einige Seiten erneut gedruckt "
-"werden."
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:414
-msgid "Resets the origin and angle to 0"
-msgstr "Ausrichtung und Winkel auf 0 zurücksetzen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:416
-msgid "Deselects all pages"
-msgstr "Alle Seiten abwählen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:418
-msgid "Print selected pages and terminates the print command"
-msgstr "Ausdrucken der ausgewählten Seiten und den Dialog Drucken schließen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:419
-msgid "List of loaded and unloaded parameter files"
-msgstr "Liste aller Parameterdateien"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:420
-msgid "Show parameter files by names or descriptions"
-msgstr "Zeige Namen oder Beschreibung der Parameter-Dateien an"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:421
-msgid "Toggle the loaded status of the selected parameter file"
-msgstr "Ändert den Status für ausgewählte Parameter-Dateien"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:422
-msgid "Find a parameter file for loading"
-msgstr "Sucher eine Parameterdatei zum Einlesen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:423
-msgid "Update parameter file list"
-msgstr "Aktualisiere die Liste der Parameterdateien"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:424
-msgid "Profile of specified path"
-msgstr "Höhenprofil der ausgewählten Verbindung"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:425
-msgid "Clear the profile"
-msgstr "Lösche das Höhenprofil"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:426
-msgid "Print the profile"
-msgstr "Höhenprofil drucken..."
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:428
-msgid "Stop recording"
-msgstr "Aufzeichnung beenden"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:429
-msgid "Insert a message"
-msgstr "Eine Nachricht einfügen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:430
-msgid "End a message"
-msgstr "Ende einer Mitteilung"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:431
-msgid "Message body"
-msgstr "Mitteilung"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:432
-msgid "Possible turnouts"
-msgstr "Mögliche Weichen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:433
-msgid "Skip this turnout"
-msgstr "Diese Weiche überspringen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:435
-msgid "Manufacturer of Object"
-msgstr "Hersteller des Objektes"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:436
-msgid "Description of Object"
-msgstr "Beschreibung des Objekte"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:437
-msgid "Part Nuber of Object"
-msgstr "Bestellnummer des Objektes"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:439
-msgid "Rescale by Scale Conversion or by Ratio"
-msgstr "Durch Auswahl eines Maßstab oder eines Multiplikators skalieren"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:440
-msgid "Original Scale of the selected objects"
-msgstr "Ursprünglicher Maßstab der ausgewählten Objekte"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:441
-msgid "Original Gauge of the selected objects"
-msgstr "Ursprüngliche Spurweite der ausgewählten Objekte"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:442
-msgid "New Scale of the selected objects"
-msgstr "Neuer Maßstab der ausgewählten Objekte"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:443
-msgid "New Gauge of the selected objects"
-msgstr "Neu Spurweite der ausgewählten Objekte"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:444
-msgid "Change track dimensions to new scale"
-msgstr "Abmessungen des Gleises auf den neuen Maßstab umrechnen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:445
-msgid "Change size by this amount"
-msgstr "Größe um einen Faktor verändern"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:447
-msgid "Snap Grid Line and Division"
-msgstr "Fangraster Linien und Unterteilungen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:448
-msgid "X and Y position markers"
-msgstr "X und Y Positionsmarkierungen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:449
-msgid "Border rulers, room boundaries and table edges"
-msgstr "Begrenzungslinien, Raumumriß und Anlagenkanten"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:450
-msgid "Primary Axis of grid rotation"
-msgstr "Erste Achse für Rasterdrehung"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:451
-msgid "Secondary Axis of grid rotation"
-msgstr "Zweite Achse für Rasterdrehung"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:452
-msgid "Unselected tracks"
-msgstr "Nicht ausgewählte Gleise"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:453
-msgid "Selected tracks"
-msgstr "Ausgewählte Gleise"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:454
-msgid "Color of tracks on the Profile path"
-msgstr "Farbe für Gleise auf Höhenverlauf"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:455
-msgid "Color of Exceptional tracks"
-msgstr "Farbe für Gleise außerhalb der Grenzwerte"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:456
-msgid "Color of track ties"
-msgstr "Farbe der Schwellen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:457
-msgid "Updates the colors"
-msgstr "Farben aktualisieren"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:458
-msgid "Angle in degrees"
-msgstr "Winkel in Grad"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:459
-msgid "Rotate object(s) by specified amount"
-msgstr "Objekte um einen bestimmten Winkel drehen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:460
-msgid "Choose commands to be sticky"
-msgstr "Wiederholte Befehle auswählen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:461
-msgid "Make the commands sticky"
-msgstr "Mache die Befehle wiederholbar"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:462
-msgid "List of available structure"
-msgstr "Liste der verfügbaren Gebäude"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:463
-msgid "Diagram of the selected structure"
-msgstr "Zeichnung des ausgewählten Gebäudes"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:464
-msgid "Hide Selection window when placing Structure"
-msgstr "Verberge Auswahlfenster bis das Gebäude plaziert ist"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:465
-msgid "Drawing scale and size"
-msgstr "Zeichnungsmaßstab und Größe"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:466
-msgid "Complete structure placement"
-msgstr "Anordnung des Gebäude abschliessen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:467
-msgid "Choose a Pier number"
-msgstr "Bestellnummer eingeben"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:469
-msgid "Useful information about the program"
-msgstr "Nützliche Informationen über das Programm"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:470
-msgid "Show Tip of the Day every time the program starts"
-msgstr "Bei jedem Start den Tipp des Tages anzeigen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:471
-msgid "Show the next Tip of the Day"
-msgstr "Gehe zum nächsten Tipp des Tages"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:472
-msgid "Show the previous Tip of the Day"
-msgstr "Gehe zum vorherigen Tipp des Tages"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:474
-msgid "Controls which Command Buttons are displayed"
-msgstr "ein oder ausblenden von Kommando Knöpfen in der Werkzeugleiste"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:475
-msgid "List of Cars"
-msgstr "Liste der Wagen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:476
-msgid "List of active trains"
-msgstr "Liste der aktiven Züge"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:478
-msgid "Train odometer"
-msgstr "Entfernungsmesser"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:479
-msgid "Reset odometer to 0"
-msgstr "Kilometerzähler auf 0 zurücksetzen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:480
-msgid "Find train on layout"
-msgstr "Finde einen Zug auf der Anlage"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:481
-msgid "Follow train around layout"
-msgstr "Zum Zug über die Anlage folgen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:482
-msgid "Flip direction at End Of Track"
-msgstr "Am Ende des Gleis die Fahrtrichtung umkehren"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:483
-msgid "Change direction of train"
-msgstr "Richtung des Zuges ändern"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:484
-msgid "Stop the train"
-msgstr "Anhalten des Zuges"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:485
-msgid "List of available turnouts for the current scale"
-msgstr "Liste der im aktuellen Maßstab verfügbaren Weichen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:486
-msgid ""
-"Diagram of the currently selected turnout. Click on a End-Point to select "
-"the Active End-Point"
-msgstr ""
-"Zeichnung der ausgewählten Weiche. Der aktive Endpunkt kann durch Klicken "
-"auf einen Endpunkt gesetzt werden."
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:487
-msgid ""
-"A menu list of various type of turnouts and sectional tracks you can define"
-msgstr ""
-"Eine Aiuswahlliste verschiedener Arten von Weichen und Festgleisen, die Sie "
-"definieren können"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:488
-msgid "Hide Selection window when placing Turnout"
-msgstr "Auswahlfenster während des Verlegen verbergen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:489
-msgid "The selected Active End-Point"
-msgstr "Der ausgewählte, aktive Endpunkt"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:490
-msgid "Current selected turnout, (displayed in the diagram window)"
-msgstr "Momentan ausgewählte Weiche, (sichtbar im Diagram-Fenster)"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:491
-msgid "One the End-Points that can be selected"
-msgstr "Einer der Endpunkte, der ausgewählt werden kann"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:493
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:494
-msgid "Angle of the specified track to the center line of the turnout"
-msgstr "Winkel zwischen dem ausgwählten Gleise und der Mittellinie der Weiche"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:495
-msgid "Specifies if angles are entered as Frog Numbers or in degrees"
-msgstr ""
-"auswählen ob Winkel als Herzstück Nummern oder in Grad angegeben werden"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:496
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:497
-msgid "Desciption"
-msgstr "Beschreibung"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:498
-msgid "Turnout description (Manuf., Size, Part Number, etc)"
-msgstr "Beschrebung der Weiche (Hersteller, Winkel, Teilenummer, etc.)"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:499
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:500
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:501
-msgid "Length from the base to the end of the specified track"
-msgstr "Länge von der Grundlinie zum Ende des ausgewählten Gleis"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:503
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:504
-msgid "Offset of the track End-Point from the center line of the turnout"
-msgstr "Abstand des Endpunktes von der Mittellinie der Weiche"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:507
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:508
-msgid "Prints a full size diagram of the turnout for checking"
-msgstr "Erstellt einen Probeausdruck der Weiche"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:509
-msgid "Color of Roadbed lines"
-msgstr "Farbe der Gleisbettlinien"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:510
-msgid "Width of Roadbed lines"
-msgstr "Abstand des Gleisbettmarkierungen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:511
-msgid "Width of Roadbed"
-msgstr "Breite des Gleisbett"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:513
-msgid "Closes the window and returns to the Turnout Selection window"
-msgstr "Schliesst das Fenster und kehrt zur Weichenauswahl zurück"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:514
-msgid "Specifies the diameter of the turntable"
-msgstr "Legt den Durchmesser der Drehscheibe fest"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:515
-msgid "Old Turnout title"
-msgstr "Alter Bezeichnung der Drehscheibe"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:516
-msgid "List of available titles"
-msgstr "Liste der verfügbaren Titel"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:517
-msgid "Leave the Turnouts' title unchanged"
-msgstr "Tiitel der Weiche unverändert lassen."
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:518
-msgid "Invoke the Parameter Files dialog"
-msgstr "Auswahl der Parameterdateien"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:519
-msgid "List of available turnouts"
-msgstr "Liste der verfügbaren Weichen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:520
-msgid "Update the Turnouts' title"
-msgstr "Aktualisiere den Titel des Gleis"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:524
-msgid "Sample"
-msgstr "Beispiel"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:526
-msgid "Slant"
-msgstr "Neigung"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:527
-msgid "Font selection dialog"
-msgstr "Dialog zur Auswahl der Schriftart"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:528
-msgid "Weight"
-msgstr "Gewicht"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:529
-msgid "Printer Abort Window"
-msgstr "Druck abbrechen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:530
-msgid "Print to filename"
-msgstr "Name der Druckdatei"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:531
-msgid "Specify Postscript font alias mapping"
-msgstr "Zuordnung der Postscript-Schriftarten angeben"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:532
-msgid ""
-"Displays the Print Setup window to change printers, orientation, paper size, "
-"etc."
-msgstr ""
-"Ruft das Drucker Dialog Fenster auf, um Drucker und oder Papier "
-"Einstellungen vornehmen zu können."
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:533
-msgid "Closes this dialog"
-msgstr "Dialogfenster schliessen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:534
-msgid "Page orientation"
-msgstr "Seitenausrichtung"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:535
-msgid "Unprintable margins"
-msgstr "Nicht druckbare Ränder"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:536
-msgid "Updates and closes this dialog"
-msgstr "Dialogfenster aktualisieren und schliessen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:537
-msgid "Choose paper size"
-msgstr "Papierformat auswählen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:538
-msgid "Choose printer"
-msgstr "Drucker auswählen"
-
-#: ../../../build/xtc_4-2-3dev/app/bin/bllnhlp.c:539
-msgid "Print test page"
-msgstr "Drucke Testseite"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:7
-msgid "Introduction"
-msgstr "Einführung"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:8
-msgid "Mouse Actions"
-msgstr "Mausaktionen"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:9
-msgid "Dialogs"
-msgstr "Dialoge"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:10
-msgid "Moving about"
-msgstr "Zoom & Pan"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:11
-msgid "Describe and Select"
-msgstr "Eigenschaften und Auswählen"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:14
-msgid "Simple tracks"
-msgstr "Einfache Gleise"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:15
-msgid "Straight tracks"
-msgstr "Gleisgeraden"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:16
-msgid "Curved tracks"
-msgstr "Gleisbögen"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:17
-msgid "Circles"
-msgstr "Kreise"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:18
-msgid "Turntables"
-msgstr "Drehscheiben"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:19
-msgid "Modifying tracks"
-msgstr "Gleise bearbeiten"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:20
-msgid "Modifying end points "
-msgstr "Endpunkte ändern"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:21
-msgid "Extending"
-msgstr "Erweitern"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:22
-msgid "Medium and Thick Tracks"
-msgstr "Mittlere und dicke Gleise"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:23
-msgid "Joining Tracks"
-msgstr "Gleise verbinden"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:24
-msgid "Straight to straight"
-msgstr "Gerade zu Gerade"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:25
-msgid "Curve to straight"
-msgstr "Bogen zu Gerade"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:26
-msgid "Circle to circle"
-msgstr "Kreis zu Kreis"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:27
-msgid "Joining to turntables"
-msgstr "Drehscheiben verbinden"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:28
-msgid "Easements"
-msgstr "Übergangsbögen"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:29
-msgid "Abutting tracks"
-msgstr "angrenzende Gleise"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:30
-msgid "Move to Join"
-msgstr "Verbinden durch verschieben"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:32
-msgid "Select and Placement"
-msgstr "Auswählen und Positionieren"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:33
-msgid "Building a yard throat."
-msgstr "Einen Bahnhof einrichten"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:34
-msgid "Designing turnouts"
-msgstr "Weichen konstruieren"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:35
-msgid "Group and Ungroup"
-msgstr "Zusammenfassen und Zerlegen"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:36
-msgid "Triming Turnout Ends"
-msgstr "Weichenenden verändern"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:37
-msgid "Handlaid Turnouts"
-msgstr "Selbstbauweichen"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:38
-msgid "Elevations and Profile"
-msgstr "Höhen und Profil"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:39
-msgid "Elevations"
-msgstr "Höhen"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:41
-msgid "Misc track commands"
-msgstr "Verschiedene Gleismodifikationen"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:42
-msgid "Delete and Undo"
-msgstr "Löschen und Rückgängig machen"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:43
-msgid "Splitting and Tunnels"
-msgstr "Auftrennen und Tunnels"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:45
-msgid "Helix tracks"
-msgstr "Gleiswendel"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:46
-msgid "Exception Tracks"
-msgstr "Fehlerhafte Gleise"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:48
-msgid "Connect and Tighten - a siding"
-msgstr "Abstellgleis verbinden"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:49
-msgid "Connect and Tighten - figure-8"
-msgstr "Verbinden und Zusammenfügen"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:50
-msgid "Other commands"
-msgstr "Sonstige Befehle"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:52
-msgid "Table Edges"
-msgstr "Tischkanten"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:54
-msgid "Dimension Lines"
-msgstr "Maßlinien"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:55
-msgid "Lines"
-msgstr "Linien"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:56
-msgid "Poly-Shapes"
-msgstr "Vielecke"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:57
-msgid "Modifying Poly-Shapes"
-msgstr "Polygone modifizieren"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:60
-msgid "Control Panels (New)"
-msgstr "Stellpulte einzeichnen"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:62
-msgid ""
-"The unconnected End-Points of a straight or curved track can be changed with "
-"the 'Modify Track' command.\n"
-msgstr ""
-"Die nicht verbundenen Endpunkte eines geraden oder eines gebogenen Gleise "
-"können mit 'Ändern Gleis' verändert werden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:63
-msgid ""
-"The End-Point of a straight track is selected and then Left-Dragged to "
-"change its length.\n"
-msgstr ""
-"Der Endpunkt eines geraden Gleises wird ausgewählt und die Länge wird durch "
-"Ziehen mit linken Maus-Knopf geändert.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:64
-msgid ""
-"Watch what happens if you try to drag the selected End-Point beyond the far "
-"End-Point.\n"
-msgstr ""
-"Beachten Sie was passiert, wenn der ausgwählte Endpunkt für den entfernten "
-"Endpunkt hinaus gezogen wird.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:65
-msgid ""
-"The length of the straight track is determined by the distance from the far "
-"End-Point and the cursor.\n"
-msgstr ""
-"Die Länge des geraden Gleises wird durch den Abstand zwischen dem entfernten "
-"Endpunkt und dem Mauszeiger festgelegt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:66
-msgid ""
-"A curved track is selected and it's new End-Point is determined by the angle "
-"to the cursor.\n"
-msgstr ""
-"Ein gebogenes Gleis wird ausgewählt und der neue Endpunkt durch den Winkel "
-"des Mauszeiger festgelegt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:67
-msgid "It's possible to almost create a complete circle.\n"
-msgstr "Es ist beinahe möglich, einen vollständigen Kreis zu erstellen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:68
-msgid ""
-"If you drag the mouse beyond the start of the curve the track becomes very "
-"short.\n"
-msgstr ""
-"Wenn Sie die Maus über den Startpunkt des Bogen hinaus ziehen, wird das "
-"Gleis sehr kurz.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:69
-msgid "Here you are warned that the track will be too short.\n"
-msgstr "Jetzt werden Sie gewarnt, dass das Gleis zu kurz wird.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:70
-msgid ""
-"If you move the cursor away from the curve, you will create a straight track "
-"tangent to the curve.\n"
-msgstr ""
-"Wenn Sie den Mauszeiger vom Bogen weg bewegen, erstellen Sie ein gerades "
-"Gleis als Tangente an dem Bogen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:71
-msgid ""
-"If you adjust the End-Point of a turnout or sectional track the track is "
-"extended by a straight track segment.\n"
-msgstr ""
-"Wenn Sie den Endpunkt einer Weiche oder eines Festgleises anpassen, wird das "
-"Gleis durch ein gerades Segment verlängert.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:72
-msgid ""
-"You can change the radius of a Straight or Curved track that is connected at "
-"one End-Point by holding down the Shift key while dragging on it.\n"
-msgstr ""
-"Sie können den Radius eines Bogen ändern oder ein gerades Gleis biegen, "
-"indem Sie bei gedrückter Umschalttaste und gedrücktem Mausknopf ziehen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:73
-msgid ""
-"This lets you change a Straight track into a Curved track (and vice versa) "
-"as well as changing the radius of a Curved track.\n"
-msgstr ""
-"Dadurch können Sie ein gerades Gleis in ein gebogenes (und umgekehrt) "
-"umwandeln und den Radius eines Bogengleises ändern.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:74
-msgid "You can draw a variety of different types of benchwork:\n"
-msgstr "Sie können verschiedene Formend es Unterbau zeichnen:\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:75
-msgid "- rectangular (1x2, 2x4 etc)\n"
-msgstr "- rechteckig (1x2, 2x4 Inch usw.)\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:76
-msgid "- L girders\n"
-msgstr "- Winkelträger\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:77
-msgid "- T girders\n"
-msgstr "- T- Träger\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:78
-msgid "You can also draw them in different orientations.\n"
-msgstr "Sie können diese auch in verschiedenen Ausrichtungen zeichnen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:79
-msgid "We will draw two 3x6 inch L-girders.\n"
-msgstr "Wir zeichnen zwei 3x6 Inch Winkelträger.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:80
-msgid ""
-"The flange of the top L-Girders is on the outside edge of the girders. We "
-"want to change the girder so both flanges are on the inside.\n"
-msgstr ""
-"Die Schmalseite des oberen Winkelträger ist auf der Außenseite. Wir wollen "
-"die Träger so anpassen, dass beide Schmalseiten innen liegen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:81
-msgid "We will use the <Describe> command for this.\n"
-msgstr "Wir werden den <Beschreiben> Befehl dafür benutzen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:82
-msgid "Change the Orientation to Right.\n"
-msgstr "Ändere die Ausrichtung auf rechts.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:83
-msgid "Now both flanges are on the inside of the two girders.\n"
-msgstr "Jetzt sind beide Schmalseiten auf der Innenseite der beiden Träger.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:84
-msgid ""
-"Pushing the <Describe> button will cancel any other command in progress.\n"
-msgstr ""
-"Durch Drücken des <Beschreiben> Knopfes wird jeder begonnene Befehl "
-"abgebrochen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:85
-msgid ""
-"Here we will begin to create a Curved track which is a two step process.\n"
-msgstr ""
-"In einem zweistufigen Ablauf werden wir mit dem Erstellen eines gebogenen "
-"Gleises beginnen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:86
-msgid ""
-"When we clicked on the <Describe> button, the current command was "
-"cancelled.\n"
-msgstr ""
-"Durch Drücken auf den <Beschreiben> Knopf wurde der begonnene Befehl "
-"abgebrochen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:87
-msgid ""
-"When in <Describe> mode, selecting any object will print a description in "
-"the Status Bar and display a Dialog showing properties of the clicked-on "
-"object.\n"
-msgstr ""
-"Im <Beschreiben> Modus wird durch Auswahl eines Objektes eine Beschreibung "
-"in der Statuszeile angezeigt und die Eigenschaften des Objektes werden in "
-"einem Dialogfenster angezeigt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:88
-msgid ""
-"Certain parameters of the object can be changed. In this case we'll change "
-"the Length\n"
-msgstr ""
-"Einige der Eigenschaften des Objektes können geändert werden. In diesem Fall "
-"ändern wir die Länges\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:89
-msgid "Let's look at the Turnout...\n"
-msgstr "Jetzt wollen wir uns die Weiche anschauen...\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:90
-msgid "and change the turnout Title.\n"
-msgstr "und den Titel der Weiche ändern.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:91
-msgid "You can change the contents of Text...\n"
-msgstr "Sie können den Text ändern...\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:92
-msgid "and its size.\n"
-msgstr "und seine Größe.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:93
-msgid ""
-"If you select a Note, the Description dialog appears which displays the "
-"contents of the note.\n"
-msgstr ""
-"Wenn Sie eine Notiz auswählen, erscheint ein Dialogfenster in dem der Inhalt "
-"der Notiz angezeigt wird.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:94
-msgid ""
-"Like the <Curve> track command, there are several ways to create a Circle "
-"track.\n"
-msgstr ""
-"Wie beim <Bogen> Befehl gibt es mehrere Möglichkeiten, einen Gleiskreis zu "
-"erstellen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:95
-msgid ""
-"The first is to specify a fixed radius and simply drag the Circle into "
-"position.\n"
-msgstr ""
-"Die Erste ist die Vorgabe eines festen Radius und das Ziehen an die "
-"gewünschte Position.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:96
-msgid "We will change the Radius before proceeding.\n"
-msgstr "Bevor wir weitermachen, ändern wir den Radius.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:97
-msgid "The next method is to drag from the edge of the Circle to the center.\n"
-msgstr ""
-"Die nächste Methode ist das Ziehen von der Kreislinie zum Mittelpunkt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:98
-msgid ""
-"The last is similar, but you drag from the center of the Circle to the "
-"edge.\n"
-msgstr ""
-"Die letzte, aber vergleichbare, Methode ist das Ziehen vom Mittelpunkt zur "
-"Kreislinie.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:99
-msgid ""
-"We have built a siding using Sectional track and have 2 End-Points that "
-"don't line up and are not connected automatically when placing the sectional "
-"track.\n"
-msgstr ""
-"Wir haben ein Ausweichgleis erstellt und haben zwei Endpunkte erhaltem, die "
-"beim Setzen von Festgleisen nicht automatisch verbunden wurden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:100
-msgid ""
-"We use the <Connect> command to adjust neighboring tracks so the gap is "
-"closed.\n"
-msgstr ""
-"Wir benutzen den <Zusammenfügen> Befehl, um die benachbarten Gleise so "
-"auszurichten, dass die Lücke geschlossen ist.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:101
-msgid ""
-"Note: the adjustments are only done on tracks which have only 1 or 2 "
-"connections. In this example the Turnouts would not be affected.\n"
-msgstr ""
-"Achtung: die Anpassungen wurden nur an Gleisen mit einer oder zwei "
-"Verbindungsn gemacht. In diesem Besipiel wurden die Weichen nicht "
-"verändert.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:102
-msgid "And now the gap is closed.\n"
-msgstr "Und jetzt ist die Lücke geschlossen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:103
-msgid "Other tracks have been shifted slightly to close the gap.\n"
-msgstr "Andere Gleise wurden leicht verschoben, um die Lücke zu schliessen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:104
-msgid "You can see these slight mis-alignments.\n"
-msgstr "Sie können die kleinen Versätze sehen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:105
-msgid "But they will have no effect when the layout is actually built.\n"
-msgstr ""
-"Aber diese werden keinen Einfluss haben, wenn die Anlage später gebaut "
-"wird.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:106
-msgid ""
-"After working with Sectional track you might get to point where these mis-"
-"alignments have accumulated and you wish to remove them.\n"
-msgstr ""
-"Nachdem Sie mit Festgleisen gearbeitet haben, haben sich diese Versätze "
-"aufgebaut und Sie wollen diese entfernen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:107
-msgid ""
-"You can remove these slight mis-alignments by tightening the tracks starting "
-"from a unconnected End-Point. Use Shift-Left-Click with the <Connect> "
-"command.\n"
-msgstr ""
-"Sie können diese kleinen Versätze durch Zusammenziehen der Gleise entfernen. "
-"Beginnen Sie an einem nicht verbundenen Endpunkt durch Drücken der Umschalte-"
-"Taste beim Deücken des <Zusammenfügen> Knopfes.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:108
-msgid "First use the <Split> command to disconnect the tracks.\n"
-msgstr ""
-"Zuerst benutzen Sie den <Trennen> Befehl um die Verbindung der Gleise zu "
-"lösen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:109
-msgid ""
-"Then with the <Connect> command, Shift-Left-Click on the 2 End-Points.\n"
-msgstr ""
-"Dank ativieren Sie den <Verbinden> Befehl und Klicken bei gedrückter "
-"Umschaltetaste auf die beiden Endpunkte.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:110
-msgid "In example shows a simple figure-8 layout using Sectional track.\n"
-msgstr "In diesem Besipiel wird aus Festgleisen eine \"8\" gelegt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:111
-msgid ""
-"You will notice that the tracks do not line up exactly in one location.\n"
-msgstr ""
-"Wie Sie sehen, sind die Gleise an einer Stelle nicht exakt ausgerichtet.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:112
-msgid ""
-"We can use the <Connect> command to move the connecting tracks slightly and "
-"connect the 2 End-Points.\n"
-msgstr ""
-"Mit dem <Verbinden> Befehl können wir die zu verbindenden Gleise leicht "
-"verschiebenund die beiden Endpunkte verbinden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:113
-msgid "The two End-Points are now aligned and connected.\n"
-msgstr "Die beiden Endpunkte sind jetzt ausgerichtet und verbunden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:114
-msgid "The connection was made by adding small gaps in other tracks.\n"
-msgstr ""
-"Die Verbindung wurde hergestellt, in dem kleine Lücken zwischen andere "
-"Gleise eingefügt wurden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:115
-msgid "There are several ways to create a Curved track.\n"
-msgstr "Es gibt mehrere Möglichkeiten, ein gebogenes Gleis zu erstellen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:116
-msgid ""
-"You can choose which to use by clicking on the small button to the left of "
-"<Curve> command button if the current Curve command is not the one you "
-"want.\n"
-msgstr ""
-"Sie können zwischen diesen wählen, in dem Sie auf den kleinen Knopf neben "
-"dem <Bogen> Knopf drücken.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:117
-msgid ""
-"The first is by clicking on the first End-Point and dragging in the "
-"direction of the Curve.\n"
-msgstr ""
-"In der ersten Möglichkeit wird dieser durch Auswahl des ersten Endpunktes "
-"und Ziehen in die Richtung des Bogen erstellt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:118
-msgid ""
-"You will see a straight track with a double ended Red arrow at the end.\n"
-msgstr ""
-"Sie sehen ein gerades Gleis mit einem roten Pfeil mit zwei Spitzen am Ende.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:119
-msgid "Click and drag on one of the Red arrows to complete the Curve.\n"
-msgstr ""
-"Klicken und ziehen Sie eine der roten Spitzem um den Bogen zu "
-"vervollständigen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:120
-msgid ""
-"The next method is to click at one End-Point and drag to the center of the "
-"Curve.\n"
-msgstr ""
-"Die nächste Methode ist das Klicken auf einen Endpunkt und das Ziehen zum "
-"Mittelpunkt der Kurzve.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:121
-msgid ""
-"Now you will see the double ended Red arrow connected to the center of the "
-"Curve marked by a small circle.\n"
-msgstr ""
-"Wie vorher sehen Sie den roten Pfeil mit zwei Spitzen, der mit dem "
-"Mittelpunkt des Bogen verbunden ist. Dieser ist mit einem kleinen Kreis "
-"markiert.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:122
-msgid "As before, drag on one of the Red arrows to complete the Curve.\n"
-msgstr ""
-"Wie schon vorher beenden Sie den Bogen, indem Sie an einer der Pfeilspitzemn "
-"ziehen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:123
-msgid ""
-"The next method is similar to the last except that you drag first from the "
-"center of the Curve to one End-Point.\n"
-msgstr ""
-"Die nächste Methode ist vergleichbar zur vorherigen, allerdings Ziehen Sie "
-"zuerst vom Mittelpunkt zu einem Endpunkt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:124
-msgid "Once again, drag on a Red arrow to complete the Curve.\n"
-msgstr ""
-"Auch diesmal ziehen Sie an der roten Pfeilspitze um den Bogen zu vollenden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:125
-msgid ""
-"The last method begins by drawing a line between the two End-Points of the "
-"Curve. This forms the Chord of the Curve.\n"
-msgstr ""
-"Bei der letzten Methode beginnen Sie, indem Sie eine Linie zwischen den "
-"beiden Endpunkten ziehen. Diese bildet die Sehne des Bogen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:126
-msgid "Now drag on a Red arrow to complete the Curve.\n"
-msgstr "Jetzt ziehen Sie an der roten Pfeilspitze um den Bogen zu erstellen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:127
-msgid "This demo will construct a control panel for part of a bigger layout.\n"
-msgstr ""
-"In dieser Demo wird ein Steuerpult für einen Teil einer größeren Anlage "
-"erstellt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:128
-msgid "For our control panel we will use Œ\" lines. \n"
-msgstr "Für unser Pult werden wir 1/2\" breite Linien benutzen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:129
-msgid "Also, we will use a 1/8\" grid to lay out our controls.\n"
-msgstr ""
-"Außerdem werden wir ein 1/8\" Raster für die Ausrichtung der "
-"Steuerungselemente benutzen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:130
-msgid ""
-"First, we will set up the Snap Grid for 1\" grid lines and 8 divisions.\n"
-msgstr ""
-"Als erstes stellen wir das Fangraster auf 1\" Rasterlinien und 8 "
-"Unterteilungen ein.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:131
-msgid "Now, clear the layout and turn on the Snap Grid.\n"
-msgstr "Jetzt löschen wir den Entwurf und schalten das Fangraster ein.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:132
-msgid "First step: draw the lines representing the tracks.\n"
-msgstr "Erster Schritte: zeichnen Sie die Linien, die die Gleise darstellen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:133
-msgid "We specify the line width in pixels.\n"
-msgstr "Wir geben die Linienbreite in Bildpunkten an.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:134
-msgid ""
-"To create a Œ\" line, divide the dots-per-inch (DPI) of your display by 4 "
-"and then by the drawing scale (which is 2 right now).\n"
-msgstr ""
-"Um eine 1/2 Inch breite Linie zu erzeugen, wird die Auflösung des "
-"Bildschirms (DPI) durch 4 und dann durch den Zeichenmaßstab (im Moment 2) "
-"geteilt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:135
-msgid ""
-"For MS-Windows the DPI is usually 98, so choose: 98/4/2 = 12 "
-"(approximately).\n"
-msgstr ""
-"Unter Windows ist die Auflösung normalerweise 98, also wählen wir 98 / 4 / 2 "
-"= ca. 12.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:136
-msgid "For Linux, the DPI is usually 72, so choose: 72/4/2 = 9.\n"
-msgstr ""
-"Unter Linux ist die Auflösung normalerweise 72, also wählen wir 72 / 4 / 2 = "
-"9.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:137
-msgid ""
-"Notice how the Snap Grid keeps the main line and siding track parallel and "
-"the connecting tracks and spur at a 45° angle.\n"
-msgstr ""
-"Beachten Sie, wie das Fangraster die Haupt- und die Nebenstrecke parallel "
-"führt und die Verbindungen und das Abstellgleis auf einem 45° Winkel hält.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:138
-msgid "Second step: add LEDs for the turnout position indicators.\n"
-msgstr "ZweiterSchritt: hinzufügen der LEDs für die Weichenanzeige.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:139
-msgid "We will use T1 red and green LEDs.\n"
-msgstr "Wir werden T1 rote und grüne LEDs benutzen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:140
-msgid "We will zoom in to show positioning.\n"
-msgstr "Wir zoomen rein, um die Positionierung zu zeigen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:141
-msgid ""
-"Notice that when we are in the correct position (on the 1/8\" grid), the "
-"Marker lines on the bottom and left rulers will high-light the tick marks. "
-"When both ticks are high-lighted, press the space bar to finalize the LED.\n"
-msgstr ""
-"Beachten Sie, dass die Markierungslinien unten und links die "
-"Fangmarkierungen hervorheben, wenn wird in der richtigen Position sind. "
-"Sobald beide Markierungen hervorgehoben sind, die LED durch Drücken der "
-"Leertaste fixieren.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:142
-msgid "Now we'll add push buttons to control the turnouts.\n"
-msgstr "Jetzt fügen wir Drucktaster für die Steuerung der Weichen dazu.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:143
-msgid "Let's add signals to our siding.\n"
-msgstr "Lassen Sie uns noch Signale an unserem Ausweichgleich aufstellen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:144
-msgid ""
-"The entrance to the siding will be protected by double headed signals.\n"
-msgstr ""
-"Die Einfahrt in das Ausweichgleich wird durch ein doppeltes Signal "
-"geschützt\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:145
-msgid "First turn off the Snap Grid.\n"
-msgstr "Zuerst schalten Sie bitte das Fangraster aus.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:146
-msgid "Rotate the signals and move them to the proper locations.\n"
-msgstr ""
-"Rotieren Sie die Signale und setzen diese dann an die richtige Stelle.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:147
-msgid ""
-"We rotate the signals by Shift-Right-Click and select 90° CW on the popup "
-"menu. We can not show the popup menu in demo mode, but will simulate the "
-"effect.\n"
-msgstr ""
-"Wir rotieren die Signale durch Drücken und Festhalten der Umschalttaste bei "
-"gleichzeitigem Mausklick.Aus dem Menu wählen wir 90° gegen UZS aus. Im Demo-"
-"Mode kann das Menu nicht angezeigt werden, aber wir simulieren den Effekt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:148
-msgid "The exits from the siding will be protected by single headed signals.\n"
-msgstr ""
-"Die Ausfahrt aus dem Ausweichgleich wird durch ein einfaches Signal "
-"gesichert.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:149
-msgid "Now for some touch-ups.\n"
-msgstr "Nun noch ein paar kleinere Nachbesserungen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:150
-msgid "Notice when the line meet at an angle there is a gap.\n"
-msgstr ""
-"Beachten Sie, dass am Berührungspunkt zwischen zwei Linien ein Spalt "
-"existiert.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:151
-msgid "We will fill this gap with the Œ\" dot.\n"
-msgstr "Wir füllen diesen Spalt mit einem 1/2 Inch großen Punkt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:152
-msgid ""
-"Note: Win95/Win98/WinME does not support drawing lines with flat end-caps, "
-"but only with round end-caps.\n"
-msgstr ""
-"Note: Win95/Win98/WinME does not support drawing lines with flat end-caps, "
-"but only with round end-caps.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:153
-msgid "Users on those platforms will not see the gap.\n"
-msgstr "Users on those platforms will not see the gap.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:154
-msgid ""
-"Add an arrow head to indicate the tracks that connect to the rest of the "
-"layout.\n"
-msgstr ""
-"Mit einer Pfeilspitze werden die Gleise markiert, die mit dem Rest der "
-"Anlage verbunden sind.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:155
-msgid "Rotate the arrow head by 180° and move into position.\n"
-msgstr ""
-"Rotieren Sie die Pfeilspitze um 180° und bringen Sie diese in die richtige "
-"Position.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:156
-msgid "And add some labels.\n"
-msgstr "Und fügen einige Beschriftungen hinzu.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:157
-msgid ""
-"We want to print our control panel onto a 8œx11 page, but the control panel "
-"is a bit too wide.\n"
-msgstr ""
-"Wir würden das Steuerpult gerne auf Paiper mit der Größe 8\"x11\" drucken, "
-"aber es ist zu breit.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:158
-msgid "Lets tighten it up a bit.\n"
-msgstr "Lassen Sie uns das ein bisschen enger zusammen packen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:159
-msgid ""
-"First turn the Snap Grid on again so any moves we make will keep objects on "
-"the grid.\n"
-msgstr ""
-"Zuerst schalten Sie bitte das Fangraster wieder ein, damit die Objekte beim "
-"Verschieben ausgerichtet bleiben.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:160
-msgid "Lets move the spur track the left 3/4\"\n"
-msgstr "Lassen Sie uns das Abstellgleis um ein 3/4 Inch nach links schieben.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:161
-msgid "Now move the right side of the siding over.\n"
-msgstr "Jetzt verschieben Sie die rechte Seite des Ausweichgleises.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:162
-msgid "Now, adjust the ends of the mainline and siding tracks.\n"
-msgstr ""
-"Und passen nun die Enden des Hauptgleises und des Ausweichgleises an.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:163
-msgid "And move the title over as well.\n"
-msgstr "Anschliessend noch den Titel verschieben.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:164
-msgid "Now you can print it.\n"
-msgstr "Jetzt können Sie das Ergebnis drucken.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:165
-msgid "The cross-hairs on the LEDs and switch show the centers for drilling.\n"
-msgstr ""
-"Fadenkreuze markieren die Mittelpunkte der LEDs und Schalter und ermöglichen "
-"so ein einfaches Bohren.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:166
-msgid ""
-"Pressing the <Delete> button lets you delete selected tracks from the "
-"layout.\n"
-msgstr ""
-"Durch Drücken der <Entf>-Taste können Sie die ausgewählten Gleise vom Plan "
-"löschen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:167
-msgid ""
-"First you select the tracks you want to delete, and then press the <Delete> "
-"button.\n"
-msgstr ""
-"Zuerst wählen Sie die Gleise, die Sie löschen wollen und drücken dann "
-"<Entf>.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:168
-msgid ""
-"If you delete a track connected to an easement curve, then the easement "
-"curve is deleted as well.\n"
-msgstr ""
-"Wenn Sie ein Gleis löschen, das einen Übergangsbogen besitzt, so wird dieser "
-"Übergangsbogen ebenfalls gelöscht.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:169
-msgid "You can use the <Undo> command to undelete tracks.\n"
-msgstr ""
-"Sie können den <Rückgängig>-Befehl nutzen, um ein versehentliches Löschen "
-"rückgängig zu machen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:170
-msgid ""
-"If you Left-Drag on the layout you can select all tracks within an area.\n"
-msgstr ""
-"Durch Ziehen mit der Maus bei gedrückter linker Taste können Sie alle Gleise "
-"in einem Bereich markieren.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:171
-msgid ""
-"Note, only tracks within the selected area are deleted. Since the easement "
-"curve is connected to a deleted track, it is deleted as well.\n"
-msgstr ""
-"Beachten Sie, dass nur Gleise innerhalb des markierten Bereichs gelöscht "
-"werden. Da der Übergangsbogen mit einem gelöschten Gleis verbunden ist, wird "
-"dieser ebenfalls gelöscht.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:172
-msgid ""
-"The demo also simulates entering values and selecting options on various "
-"dialogs.\n"
-msgstr ""
-"Die Demo simuliert die Eingabe von Werten und Auswahl von Optionen in "
-"verschiedenen Dialogfenstern.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:173
-msgid ""
-"This is simulated by drawing a rectangle around the control when values are "
-"entered or changed.\n"
-msgstr ""
-"Dies wird simuliert, in dem ein Rechteck um das Eingabefeld gezeichnet wird, "
-"wenn Werte eingegeben oder geändert werden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:174
-msgid ""
-"Here we are going to make some changes to the Display dialog. Notice how "
-"this is simulated.\n"
-msgstr ""
-"Hier machen wir Änderungen im Anzeige-Dialog. Beachten Sie, wie das "
-"simuliert wird.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:175
-msgid ""
-"This effect is only used in demonstration mode. During normal operation you "
-"will not see this.\n"
-msgstr ""
-"Dieser Effekt wird nur im Demonstrations-Modus benutzt. Während der normalen "
-"Benutzung werden Sie das nicht sehen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:176
-msgid "Dimension Lines are used to mark the distances between two points.\n"
-msgstr ""
-"Maßlinien werden benutzt, um den Abstand zwischen zwei Punkten zu zeigen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:177
-msgid ""
-"Here we will create a Dimension Line to show the separation between two "
-"tracks.\n"
-msgstr ""
-"Hier erstellen wir eine Maßlinie, um den Abstand zwischen zwei parallelen "
-"Gleisen zu zeigen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:178
-msgid ""
-"We might also want to measure the distance between two structures. In this "
-"case we will use a larger dimension line.\n"
-msgstr ""
-"Möglicherweise wollen wir auch den Abstand zwischen zwei Gebäuden bestimmen."
-"In diesem Fall nutzen wir eine größere Maßlinie.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:179
-msgid ""
-"We can use the <Describe> command to change the position of the Dimension "
-"Line and the size of the numbers.\n"
-msgstr ""
-"Der <Beschreiben> Befehl kann genutzt werden, um die Position der Maßlinie "
-"und die Größe der Zahlen zu ändern.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:180
-msgid ""
-"This example will show the effect of using easements while joining tracks.\n"
-msgstr ""
-"In diesem Beispiel wird die Wirkung der Übergangsbögen während des Verbinden "
-"von Gleisen gezeigt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:181
-msgid "First, we'll enable easements.\n"
-msgstr "Zuerst schalten wir Übergangsbögen an.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:182
-msgid ""
-"We've selected sharp easements. The minimum radius curve we can use will be "
-"9.75\"\n"
-msgstr ""
-"Wir haben enge Übergangsbögen ausgewählt. Der Mindestradius, den wir "
-"benutzen können, beträt 9,75\".\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:183
-msgid "Notice the label on the Easement button has changed to 'Sharp'.\n"
-msgstr ""
-"Beachten Sie, dass die Beschriftung des Knopfes <Übergangsbogen> auf 'Sharp' "
-"geändert wurde.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:184
-msgid ""
-"Note the connecting curve does not quite meet the straight tracks. This the "
-"'Offset'.\n"
-msgstr ""
-"Beachten Sie. dass das Verbindungsgleis das gerade Gleis nicht genau trifft. "
-"Das ist der 'Absatz'.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:185
-msgid "Here the connecting curve is too small.\n"
-msgstr "Jetzt ist der Verbindungsradius zu klein.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:186
-msgid ""
-"The connecting curve is made of three tracks, the curve and two easement "
-"segments on each end.\n"
-msgstr ""
-"Die verbindende Kurve besteht aus drei Gleisen, der Kurve und den "
-"Übergangsbögen an jedem Ende.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:187
-msgid ""
-"We have designed part of the layout with a siding, 2 branches and a spiral "
-"loop. We want to set Elevations.\n"
-msgstr ""
-"Wir haben einen Teil eines Gleisplan mit Nebengleis, 2 Abzweigen und einer "
-"Gleiswendel entworfen. Jetzt wollen wir die Höhen festlegen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:188
-msgid "First we will set elevations at the end of the branches.\n"
-msgstr "Zuerst legen wir die Höhen am Ende der Abzweige fest.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:189
-msgid "We'll select the end of the top branch and set the Elevation to 4\"\n"
-msgstr ""
-"Wir wählen das Ende des oberen Abzweigs und legen die Höhe auf 4\" fest.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:190
-msgid "First, click on the End-Point.\n"
-msgstr "Zuerst klicken Sie auf den Endpunkt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:191
-msgid "Next, pick Defined on the Elevation dialog Radio box.\n"
-msgstr "Als nächstes wählen Sie 'Fest' im Dialogfenster für das Höhenmaß.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:192
-msgid "And set the Elevation to 4.\n"
-msgstr "Und setzen die Höhe auf 4.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:193
-msgid "Now, select the other branch and set it's elevation to 2\"\n"
-msgstr ""
-"Jetzt wählen Sie den anderen Abzweig und legen seine Höhe auf 2\" fest.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:194
-msgid "We can move the Elevations by using Right-Drag\n"
-msgstr ""
-"Wir können die Höhenmaß durch Ziehen mit der Maus bei gedrückter rechter "
-"Taste verschieben.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:195
-msgid "Now, we set the Elevation at one end of the Siding.\n"
-msgstr "Jetzt legen wir die Höhe an einem Ende des Nebengleises fest.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:196
-msgid "We want to find the elevations where the 2 tracks cross.\n"
-msgstr ""
-"Wir wollen die Höhen der Gleise ermitteln, an denen diese sich kreuzen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:197
-msgid "We picked an End-Point on the upper track.\n"
-msgstr "Wir haben einen Endpunkt am oberen Gleis ausgewählt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:198
-msgid ""
-"XTrackCAD has computed the Elevation (2.34\") at this point based on the "
-"Elevation at the siding and a combination of the of the first Elevations.\n"
-msgstr ""
-"XTrackCAD hat die Höhe (2,34\") an dieser Stellle auf Grundlage der Höhe des "
-"Nebengleises in Verbindung mit den ersten Höhenangaben ermittelt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:199
-msgid ""
-"We create a Computed Elevation here that will be automatically adjusted "
-"whenever the other Elevations are changed.\n"
-msgstr ""
-"Hier erstellen wir eine 'Berechnete' Höhe, die automatisch angepasst wird, "
-"wenn sich andere Höhenangaben ändern.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:200
-msgid ""
-"The Compute Elevation is based on Elevations at end of both of the "
-"branches. We may want to base the Elevation on only one branch. For "
-"example if one branch was the mainline we don't want the other branch "
-"affecting this Computed Elevation.\n"
-msgstr ""
-"Die berechnete Höhe basiert auf den Höhen an den Endpunkten der beiden "
-"Abzweige. Wir wollen aber möglicherweise nur die Höhe eines Abzweigs "
-"benutzen. Das kann sinnvoll sein, wenn der Abzweig das Hauptgleis bildet und "
-"wir nicht wollen dass das andere Gleis die Höhenberechnung beeinflusst.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:201
-msgid "We do this by Ignoring the branch we don't want.\n"
-msgstr "Wir erreichen das, indem wir einen Abzweig ignorieren.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:202
-msgid "We'll ignore the lower branch.\n"
-msgstr "Wir werden den unteren Abzweig ignorieren.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:203
-msgid ""
-"Notice at the End-Point where the tracks cross, we see the Elevation has "
-"changed from 2.34 to 2.64.\n"
-msgstr ""
-"Beachten Sie, dass sich die Höhe an der Kreuzug von 2,34 auf 2,64 geändert "
-"hat.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:204
-msgid "Now we want to know the elevation of the lower track.\n"
-msgstr "Jetzt wollen wir die Höhe des unteren Gleises ermitteln.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:205
-msgid "There is no End-Point on the lower track here.\n"
-msgstr "Es gibt hier keinen Endpunkt des unteren Gleises.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:206
-msgid ""
-"Use Shift-Left-Click to Split the track and create an End-Point we can use "
-"for an Elevation,\n"
-msgstr ""
-"Durch Klicken mit der Maus bei gedrückter Umschalttaste wird das Gleis "
-"getrennt und ein Endpunkt, den wir für die Festlegung der Höhe nutzen "
-"können, eingefügt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:207
-msgid "and create another Computed Elevation point.\n"
-msgstr "Wir erstellen einen neuen berechneten Höhenpunkt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:208
-msgid "Now we want to label the Grade on this section of track.\n"
-msgstr "Jetzt benennen wir die Steigung auf diesem Gleisabschnitt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:209
-msgid ""
-"Again, since there is no End-Point nearby, we split the track to create an "
-"End-Point we can use,\n"
-msgstr ""
-"Auch hier ist wieder kein Endpunkt in der Nähe, daher trennen wir das Gleis "
-"um einen nutzbaren Endpunkt zu erhalten.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:210
-msgid "and create a Grade marker.\n"
-msgstr "Dort erstellen wir eine Steigungsmarkierung.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:211
-msgid "Note the marker has an arrow pointing in the upwards direction.\n"
-msgstr ""
-"Beachten Sie, dass die Markierung einen Pfeil besitzt, der in Richtung des "
-"Anstiegs zeigt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:212
-msgid ""
-"The last thing we want to do is to create a Station label that we'll use in "
-"the <Profile> command.\n"
-msgstr ""
-"Als letzten Schritt erstellen wir noch eine Beschriftung für einen Bahnhof, "
-"den wir im <Höhenprofil> Befehl benutzen werden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:213
-msgid "Now, set the Elevation to Station and enter the its name.\n"
-msgstr ""
-"Jetzt setzen Sie die Höhenmarkierung auf 'Bahnhof' und geben den Namen "
-"ein.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:214
-msgid ""
-"XTrackCAD can help find tracks that are curved too sharply or are too "
-"steep. These tracks are Exception tracks and are drawn in the Exception "
-"track color.\n"
-msgstr ""
-"XTrackCAD kann Ihnen helfen, Gleise zu finden, die einen zu engn Radius "
-"bilden oder die zu steil ansteigen. Diese Gleise sind Ausnahmegleise und "
-"werden in der Ausnahmegleisfarbe dargestellt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:215
-msgid ""
-"In this example we have a curved track with radius of 9\" and a straight "
-"track with a grade of 3.8%.\n"
-msgstr ""
-"In diesem Besipiel haben wir eine Kurve mit einem Radius von 9,5\" und ein "
-"gerades Gleis auf einer 3.8% Steigung.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:216
-msgid " \n"
-msgstr " \n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:217
-msgid ""
-"The Layout dialog shows the Minimum Track Radius is 9\" and the Maximum "
-"Track Grade is 5%.\n"
-msgstr ""
-"Im den Optionen für den Gleisplan sehen wir, dass der Mindestradius mit 9\" "
-"und die maximale Steigung mit 5% festgelegt sind.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:218
-msgid ""
-"If we make the curved track sharper it will be drawn in the Exception "
-"color.\n"
-msgstr ""
-"Verringern wir den Radius der Kurve, so wird das Gleis mit der Ausnahmefarbe "
-"dargestellt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:219
-msgid ""
-"If we make the straight track steeper it will also be drawn in the Exception "
-"color.\n"
-msgstr ""
-"Vergrößern wir die Steigung des geraden Gleises, so wird das Gleis ebenfalls "
-"in der Ausnahmefarbe dargestellt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:220
-msgid ""
-"You can change the Exception color on the Colors dialog from the Options "
-"menu.\n"
-msgstr ""
-"Die Ausnahmefarbe kann im Farbdialogfenster des Optionen-Menus geändert "
-"werden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:221
-msgid ""
-"The unconnected End-Point of any track can be extended with the <Modify> "
-"command using Right-Drag.\n"
-msgstr ""
-"Gleise mit mindestens einem freien Endpunkt Gleise können mit dem <Ändern>-"
-"Befehl oder durch Ziehen mit gedrücktem rechtem Mausknopf geändert werden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:222
-msgid "Select the End-Point and Right-Drag.\n"
-msgstr "Endpunkt auswählen und mit rechter Maustaste ziehen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:223
-msgid "The extending track can be straight...\n"
-msgstr "Die Erweiterung kann gerade sein...\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:224
-msgid "... or curved.\n"
-msgstr "...oder gebogen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:225
-msgid ""
-"If you extend a Straight or Curved flex track and enable Easements then an "
-"Easement curve will be automatically generated when you extend the track.\n"
-msgstr ""
-"Wenn die Funktion Übergangsbogen aktiv ist, während Sie ein gerades oder "
-"gebogenes Flexgleis verändern, so wird ein Übergangsbogen erstellt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:226
-msgid ""
-"The <Flip> command will create a mirror image of the selected objects.\n"
-msgstr ""
-"Der Befehl <Spiegeln> erzeugt ein Spiegelbild der ausgewählten Objekte.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:227
-msgid "After selecting the object, drag a line which will form the mirror.\n"
-msgstr ""
-"Nach der Auswahl der Objekte, wird eine Linie gezogen die die Spiegelachse "
-"bildet.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:228
-msgid "The mirror line does not have to be vertical or horizontal.\n"
-msgstr "Diese Spiegellinie muss nicht horizontal oder vertikal sein.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:229
-msgid "You can also flip any number of objects.\n"
-msgstr "Sie können jede beliebige Anzahl von Objekten spiegelen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:230
-msgid "Watch what happens to the structure and turnout titles.\n"
-msgstr ""
-"Achten Sie darauf, was mit den Beschriftungen an Gebäuden und Weichen "
-"geschieht.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:231
-msgid ""
-"Note that the turnout title has been changed from the Medium Right to Medium "
-"Left. When turnouts are flipped, XTrackCAD will try to find a matching "
-"turnout and if found will change the name.\n"
-msgstr ""
-"Beachten Sie auch, dass aus der mittleren Rechtsweiche eine mittlere "
-"Linksweiche wurde. Werden Weichen gespiegelt, versucht XTrackCAD eine "
-"passende Weiche zu finden und ersetzt den Namen, wenn dies gelingt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:232
-msgid ""
-"Structures do not have Right and Left hand versions. Their title is changed "
-"to indicate that they were flipped.\n"
-msgstr ""
-"Gebäude haben keine rechte oder linke Version. Der veränderte Titel zeigt, "
-"dass diese gespiegelt wurden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:233
-msgid "You can use the <Describe> command to change their title.\n"
-msgstr "Mit dem <Beschreiben> Befehl kann der Tietel wieder geändert werden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:234
-msgid ""
-"The <Group> and <Ungroup> commands (on the Tools menu) are a powerful way to "
-"manipulate Turnout and Structure definitions.\n"
-msgstr ""
-"Die <Gruppieren> und <Gruppe auflösen> Befehle bilden einen leistungsfähigen "
-"Weg, Weichen- oder Gebäude-Definition zu verändern.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:235
-msgid "We'll start with a simple turnout and add a switch machine.\n"
-msgstr ""
-"Wir beginnen mit einer einfachen Weiche zu der wir einen Weichenantrieb "
-"zufügen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:236
-msgid ""
-"Now that we have drawn a rough outline of a switch machine we will group it "
-"with the turnout definition.\n"
-msgstr ""
-"Nachdem wir jetzt den groben Umriß des Antriebs gezeichnet haben, gruppieren "
-"wir diesen mit der Weichen-Definition.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:237
-msgid "First we Select the objects in the new definition.\n"
-msgstr "Zuerst wählen wir die Objekte in der neuen Definition aus.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:238
-msgid "Now do the <Group> command.\n"
-msgstr "Und wenden jetzt den <Gruppieren> Befehl an.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:239
-msgid ""
-"The <Group> command dialog shows the Title (Manufacturer, Description and "
-"Part Number) of the new definition. This information is taken from the "
-"Selected objects you are grouping.\n"
-msgstr ""
-"Das Dialogfenster für den <Gruppieren> Befehl zeigt den Titel (Hersteller, "
-"Beschreibung und Teilenummer) für die neue Definition an. Diese Information "
-"kommt aus den ausgewählten Teilen der Gruppe.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:240
-msgid ""
-"The 'Replace with new group?' toggle will replace the Selected objects with "
-"the new definition.\n"
-msgstr ""
-"Der 'Ersetzen durch neue Definition' Schalter ermöglicht es, die "
-"ausgewählten Objekte durch die neuen Definition zu ersetzen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:241
-msgid ""
-"If we don't change the Title then the new definition will replace the "
-"existing definition.\n"
-msgstr ""
-"Wenn wir den Titel nicht verändern, so ersetzt die neue Definition die "
-"bereits vorhandene.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:242
-msgid "We'll give this definition a new Description.\n"
-msgstr "Wir geben der Gruppe eine neue Beschreibung.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:243
-msgid "We're done with this definition. Press Ok.\n"
-msgstr "Diese Definition ist fertig. Drücken Sie OK.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:244
-msgid "You will see the updated image on the HotBar.\n"
-msgstr "Sie sehen das aktualisierte Bild in der Auswahlleiste.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:245
-msgid ""
-"The <Ungroup> command replaces any Selected turnouts or structures with "
-"their parts.\n"
-msgstr ""
-"Der Befehl zum Auflösen der Gruppe ersetzt gewählte Weichen oder Gebäude "
-"durch ihre Teile.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:246
-msgid ""
-"Structures and non-track segements of turnouts are composed of Lines, "
-"Circles and other shapes. In this turnout these are the two lines and the "
-"two squares.\n"
-msgstr ""
-"Gebäude und Weichen sind aus Linien, Kreisen und anderen Formen "
-"zusammengesetzt. Zu dieser Weiche gehören zwei Linien und zwei Quadrate.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:247
-msgid ""
-"We will Ungroup this turnout and see how the individual parts can be "
-"changed.\n"
-msgstr ""
-"Wir werden diese Weiche in ihre Teile zerlegen und sehen, wie die einzelnen "
-"Teile verändert werden können.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:248
-msgid "First Select the turnout and then Ungroup it.\n"
-msgstr ""
-"Zuerste wählen Sie die Weiche aus und lösen dann die Gruppierung auf.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:249
-msgid "Notice that the Title now indicates the turnout is Ungrouped.\n"
-msgstr ""
-"Beachten Sie, dass der Titel jetzt darauf hinweis, dass die Weiche aufgelöst "
-"ist.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:250
-msgid "Hit Escape to deselect everything.\n"
-msgstr "Durch Drücken von Escape wird die Auswhl aufgehoben.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:251
-msgid "Now Select the lines and squares.\n"
-msgstr "Jetzt wählen Sie die Linien und Quadrate aus.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:252
-msgid ""
-"We could modify these object or add new ones. For now we'll just delete "
-"them.\n"
-msgstr ""
-"Wir können diese Objekt ändern oder neue hinzufügen.Diesmal werden wir sie "
-"einfach löschen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:253
-msgid "And move the Label out of the way.\n"
-msgstr "Und die Beschriftung auf die Seite schieben.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:254
-msgid "Notice that the turnout has been broken into three parts.\n"
-msgstr "Beachten Sie, dass die Weiche in drei Teile zerfallen ist.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:255
-msgid ""
-"Two ends of the turnout, from the frog to the end of the diverging leg and "
-"from the points to the left, are now straight track sections.\n"
-msgstr ""
-"Zwei Endpunkte der Weiche, vom Herzstück zum Ende des abzweigenden Gleis und "
-"von den Weichenzungen nach links, sind jetzt gerade Abschnitte.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:256
-msgid ""
-"The a turnout is made of a number of individual straight and curved track "
-"segements. This turnout had four segments:\n"
-msgstr ""
-"Eine Weiche besteht aus einer Anzahl von geraden und gebogenen Gleisstücken. "
-"Diese Weiche hat vier Stücke:\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:257
-msgid " 1 a short straight segment to the left of the points\n"
-msgstr "1. ein kurzes gerades Stück, links von den Weichenzungen,\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:258
-msgid " 2 a long straight segment to the right of the points\n"
-msgstr "2. ein langes gerades Stück, rechts von den Weichenzungen,\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:259
-msgid " 3 a curved segment from the points to the frog\n"
-msgstr "3. ein gebogenes Stück von den Weichenzungen bis zum Herzstück, und\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:260
-msgid ""
-" 4 a straight segment from the frog to the end of the diverging leg.\n"
-msgstr ""
-"4. ein gerades Stückvom Herzstück bis zum Ende des abzweigenden Gleis.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:261
-msgid "The first and last segments have be converted to straight tracks.\n"
-msgstr ""
-"Der erste und der letzte Gleisabschnitt wurden in gerade Gleise "
-"umgewandelt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:262
-msgid ""
-"The second and third segments form the the body of the turnout and can not "
-"be ungrouped further.\n"
-msgstr ""
-"Der zweite und der dritte Gleiusabschnitt bilden den Kern der Weiche und "
-"können nicht weiter zerlegt werden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:263
-msgid ""
-"You can later Group this turnout with the straight segments to recreate the "
-"turnout definition. You can also add other track segments to turnout "
-"definitions.\n"
-msgstr ""
-"Sie können die Weiche mit den geraden Abschnitten später gruppieren um die "
-"Definition wiederherzustellen. Sie können auch andere Gleisabschnitte zur "
-"Weichendefinition zufügen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:264
-msgid "Now, create a track and place the new turnout on it.\n"
-msgstr "Jetzt erstellen Sie bitte ein Gleis und setzen die Weiche darauf.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:265
-msgid "Now suppose we want to replace the black squares with green circles.\n"
-msgstr ""
-"Nehmen wir mal an, wir wollen die schwarzen Quadrate durch grüne Kreise "
-"ersetzen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:266
-msgid "First we Select the turnout.\n"
-msgstr "Zuerst wählen wir die Weiche aus.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:267
-msgid "And now Ungroup it (from the Tools Menu)\n"
-msgstr ""
-"Der ersten und der letzte Abschnitt wurden in gerade Gleise umgewandelt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:268
-msgid ""
-"Notice that the name has changed to indicate the turnout was Ungrouped.\n"
-msgstr ""
-"Beachten Sie, dass der Name geändert wurde, um anzuzeigen, dass die "
-"Gruppierung der Weiche aufgelöst wurde.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:269
-msgid ""
-"Now, hit escape to deselect everything and then Select the 2 squares and "
-"delete them.\n"
-msgstr ""
-"Jetzt drücken Sie Escape umd die Auswahl zurückzusetzen. Dann wählen Sie die "
-"zwei Quadrate und löschen diese.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:270
-msgid "Now draw the green circles...\n"
-msgstr "Jetzt zeichnen Sie die grünen Kreise...\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:271
-msgid "and Group the new definition.\n"
-msgstr "und gruppieren die neue Definition.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:272
-msgid ""
-"Notice that the turnout in the HotBar is angled the same as the turnout on "
-"the layout. Make sure your new definition is rotated the way you want it.\n"
-msgstr ""
-"Beachten Sie, dass die Weiche in der Auswahlleiste so schräg wie die Weiche "
-"auf der Anlage ist. Stellen Sie sicher, das die neuen Definitionen so "
-"ausgerichtet sind, wie Sie es bevorzugen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:273
-msgid "We can also create turnouts from simple straight and curved tracks.\n"
-msgstr ""
-"Wir können auch aus einfachen geraden und gebogenen Gleisen Weichen "
-"erstellen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:274
-msgid "We'll create two tracks that have a common End-Point.\n"
-msgstr "Wir erzeugen zwei Gleise mit einem gemeinsamen Endpunkt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:275
-msgid "At this point we can modify the tracks if necessary.\n"
-msgstr ""
-"Zu diesem Zeitpunkt können die Gleise verändern, sofern das notwendig ist.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:276
-msgid "We will use the <Describe> command to change the tracks.\n"
-msgstr ""
-"Wir benutzen den Befehl <Beschreiben> um die Eigenschaften der Gleise zu "
-"verändern.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:277
-msgid "We'll make the Length 7.5\".\n"
-msgstr "Wir setzen die Länge auf 7,5\".\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:278
-msgid ""
-"If we change the Length, each End-Point will be moved to shorten the track. "
-"We want to just move the Right End-Point. To control this, change the Pivot "
-"to First which means the Left End-Point will be unchanged when we change the "
-"length (or angle) of the track.\n"
-msgstr ""
-"Wenn wir die Länge verändern, wird jeder Endpunkt erschoben um das Gleis zu "
-"verkürzen.Wir wollen, dass nur der rechte Endpunkt bewegt wird. Um das zu "
-"steuern, stellen Sie den Fixpinkt auf den Ersten. Das bedeutet, dass der "
-"linke Endpunkt unverändert bleibt wenn wir die Länge (oder den Winkel) des "
-"Gleises ändern.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:279
-msgid "Now when change the Length only the Right End-Point will move.\n"
-msgstr "Jetzt wird beim Ändern der Länge nur der rechte Endpunkt verschoben.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:280
-msgid "Now let's look at the curved track.\n"
-msgstr "Jetzt schauen wir uns das gebogene Gleis an.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:281
-msgid ""
-"Here the Left End-Point (which we don't want to move) is the Second End-"
-"Point, so we'll make that the Pivot.\n"
-msgstr ""
-"Hier ist der linke Endpunkt, den wir nicht verschieben wollen, der zweite "
-"Endpunkt. Also legen wir diesen als Fixpunkt fest.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:282
-msgid "We want the curve to have a radius of 20\" and an angle of 17.5°.\n"
-msgstr ""
-"Wir wollen, dass der Bogen einen Radius von 20\" und einen Winkel von 17,5° "
-"hat.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:283
-msgid "First change the Radius...\n"
-msgstr "Zuerst ändern Sie den Radius...\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:284
-msgid "and the the Angular Length.\n"
-msgstr "und den Winkelabstand.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:285
-msgid "Now Select both tracks...\n"
-msgstr "Jetzt bitte beide Gleise auswählen...\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:286
-msgid "and Group them.\n"
-msgstr "und gruppieren sie.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:287
-msgid ""
-"If the two tracks have a common End-Point then they will form a Turnout and "
-"can be switched with the <Train> command. Otherwise they will just be two "
-"track segments grouped together.\n"
-msgstr ""
-"Wenn die beiden Gleise einen gemeinsamen Endpunkt haben, werden Sie eine "
-"Weiche bilden, dieim Betriebsmodus gesteuert werden kann. Andernfalls werden "
-"es einfach zwei gruppierte Gleise sein.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:288
-msgid ""
-"We have created a left hand turnout and we also want a right hand version.\n"
-msgstr ""
-"Wir haben eine links abzweigende Weiche erstellt und wollen auch die rechts "
-"abzweigende Form.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:289
-msgid "We'll use the <Flip> command.\n"
-msgstr "Wir verwenden den Befehl <Spiegeln>\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:290
-msgid ""
-"Drag a horizontal line that will be the mirror for the <Flip> command.\n"
-msgstr ""
-"Ziehen Sie als Spiegelstrich für den Spiegeln Befehl eine horizontale "
-"Linie.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:291
-msgid "Notice the title has changed to Flipped Left.\n"
-msgstr "Beachten Sie, dass der Titel auf Gespiegelt Links geändert wurde.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:292
-msgid "Now Group the turnout.\n"
-msgstr "Jetzt gruppieren Sie die Weiche\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:293
-msgid "We'll change the Title and Part No for the new defintion.\n"
-msgstr ""
-"Wir werden den Titel und die Teilnummer für die neue Definition ändern.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:294
-msgid ""
-"To Remove the definitions, use the Custom Management dialog on the Tools "
-"menu.\n"
-msgstr ""
-"Um Definitionen zu löschen benutzen Sie die \"Anpassungs Verwaltung\" im "
-"\"Verwalten\" Menü.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:295
-msgid "Select the definitions you added and Delete them.\n"
-msgstr "Wählen Sie die zugefügten Definitionen aus udn löschen diese.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:296
-msgid ""
-"Now we will create a helix in the corner of the layout connected to 2 "
-"tracks.\n"
-msgstr ""
-"Jetzt erstellen wir in der Ecke der Anlage eine Gleiswendel, die zwei Gleise "
-"verbindet.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:297
-#, c-format
-msgid ""
-"We will be creating a helix with a Elevation Difference of 12\", Grade of "
-"1.5% and limit the Vertical Separation to at least 2\".\n"
-msgstr ""
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:298
-msgid "First set the Elevation Difference to 12\"\n"
-msgstr "Als erstes den Höhenunterschied auf 12\" setzen\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:299
-msgid "Next set the Vertical Separation to 2\"\n"
-msgstr "Als nächstes wird der vertikale Abstand auf 2\" gesetzt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:300
-msgid "Notice how this causes the number of Turns to be set to 6\n"
-msgstr "Beachten Sie, dass hierfür 6 Windungen benötigt werden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:301
-msgid "Next set the Grade to 1.5%\n"
-msgstr "Jetzt setzen die die Steigung auf 1,5%\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:302
-msgid "Notice how this causes the Radius to change.\n"
-msgstr "Beachten Sie wie dadruch der Radius verändert wurde.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:303
-msgid ""
-"Setting these values changes the Radius to 21.2\" and the number of Turns to "
-"6.\n"
-msgstr ""
-"Durch Setzen dieser Werte wird der Radius auf 21,2\" und die Anzahl der "
-"Windungen auf 6 geändert.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:304
-msgid ""
-"Now we specify the Angular Separation between the enterance and exit to the "
-"helix.\n"
-msgstr ""
-"Jetzt ändern wir den Winkel zwischen eingehendem und abgehendem Gleis der "
-"Wendel.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:305
-msgid "Note: this will decrease the Radius slightly.\n"
-msgstr "Beachten Sie, dass dadurch der Radius geringfügig kleiner wurde.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:306
-msgid "Next we can fine tune the helix by decreasing the Radius to 15\".\n"
-msgstr ""
-"Als nächstes können wir die Wendel durch Ändern des Radius auf 15\" "
-"optimieren.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:307
-msgid "Note the change to the Grade.\n"
-msgstr "Beachten Sie die Änderung der Steigung.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:308
-msgid ""
-"Lastly change the Vertical Separation to 2.5\". The number of Turns will "
-"change to 4 and the grade increase to almost 3%.\n"
-msgstr ""
-"Zum Schluss ändern die Differenz zwischen den Windungen auf 2,5\". Die "
-"Anzahl der Windungen wird auf 4 geändert und die Steigung vergrößert sich "
-"auf beinahe 3%.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:309
-msgid ""
-"Note: the Vertical Separation will be increased. This value is the "
-"Elevation Difference (12.0) divided by the total number of turns. The total "
-"number of turns is 4.25: 4 whole Turns plus a quarter turn for the Angular "
-"Separation.\n"
-msgstr ""
-"Beachten Sie dass die Windungsdifferenz sich vergrößert. Dies ist der "
-"Höhenunterschied, geteilt durch die Anzahl der Windungen. Insgesamt sind es "
-"4,25 Windungen: 4 ganze Windungen und eine viertel Umdrehung für den Winkel "
-"zwischen den Zugängen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:310
-msgid ""
-"Now that the helix parameters are set we can place the helix on the layout.\n"
-msgstr ""
-"Nachdem die Eigenschaften für die Gleiswendel bestimmt sind, setzen wir "
-"diese auf die Anlage.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:311
-msgid ""
-"Next, join the 2 straight tracks to the helix in the same way we join to a "
-"circle.\n"
-msgstr ""
-"Als nächstes verbinden Sie die zwei geraden Gleise mit der Wendel genauso "
-"wir Sie Gleise mit einem Kreis verbinden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:312
-msgid ""
-"Notice that the length has increased because we have more than 4 turns in "
-"the helix. It is closer to 4.25 turns.\n"
-msgstr ""
-"Beachten Sie, dass sich die Länge vergrößert hat, da wir mehr als vier "
-"Windungen in der Wendel haben. Es sind nahe an 4,25 Umdrehungen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:313
-msgid ""
-"Next, we assign elevations to the 2 End-Points of the helix. This will "
-"determine the grade and separation between the helix coils.\n"
-msgstr ""
-"Als nächstes legen wir die Höhen der beiden Endpunkt der Wendel fest. "
-"Dadurch werden die Steigung und derAbstand zwischen den Windungen "
-"festgelegt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:314
-msgid ""
-"Note: we could set the elevations anywhere along the connecting tracks "
-"instead. XTrackCAD treats a helix as a single length of track for "
-"elevations.\n"
-msgstr ""
-"Beachten Sie, dass wir die Höhen auch irgendwo an den verbindenden Gleisen "
-"festlegen können. XTrackCAD behandelt bei den Höhen eine Wendel als ein "
-"durchgängiges Stück Gleis.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:315
-msgid ""
-"We have set the elevations to 1\" and 13\" to produce a grade of 3.0% with "
-"2.8\" between coils.\n"
-msgstr ""
-"Wir haben die Höhen auf 1\" und 13\" gesetzt um eine Steigung von 3% mit "
-"2,8\" zwischen den Windungen zu erzeugen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:316
-msgid ""
-"You can use the <Describe> command to change the number of Turns or the "
-"Elevations at either end of the Helix. This will affect the Grade and "
-"Vertical Separation.\n"
-msgstr ""
-"Sie können den Eigenschaften Befehl benutzen, um die Anzah der Windungen "
-"oder die Höhe an den Enden der Wendel zu ändern. Dadurch ändern sich die "
-"Steigung und der Abstand.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:317
-msgid "The helix description can be moved by the <Move Label> command.\n"
-msgstr ""
-"Mit dem Befehl <Verschiebe Beschriftung> kann die Beschriftung der Wendel "
-"verschoben werden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:318
-msgid ""
-"In addition to using the turnout definitions you can create 'Hand Laid "
-"Turnout'.\n"
-msgstr ""
-"Zusätzlich zu den Weichendefinitionen können Sie auch Selbstbauweichen "
-"erstellen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:319
-msgid "This is two step process:\n"
-msgstr "Das ist ein zweistufiger Prozess.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:320
-msgid "1 - click on the frog and drag away to set the frog angle\n"
-msgstr ""
-"1. klicken Sie auf das Herzstück und setzen Sie durch ziehen mit gedrücktem "
-"Mausknopf den richtigen Winkel.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:321
-msgid ""
-" Hint: the further you drag from the frog, the more accurate the angle.\n"
-msgstr ""
-"Hinweis: Je weiter weg vom Herzstück Sie ziehen, um so genauer lässt sich "
-"der Winkel einstellen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:322
-msgid "2 - click and drag to set the position of the points\n"
-msgstr "2. Klicken und ziehen Sie um die Position der Zungen festzulegen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:323
-msgid "We can create Hand Laid Turnouts on curved tracks.\n"
-msgstr "Wir können Selbstbauweichen auch auf gebogenen Gleisen erstellen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:324
-msgid "A Hand Laid Turnout is composed of several parts.\n"
-msgstr "Eine Selbstbauweiche besteht aus mehreren Teilen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:325
-msgid "The actual Turnout is a short portion at the points.\n"
-msgstr "Die eigentliche Weiche ist ein kleines Stück an den Weichenzungen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:326
-msgid "The other parts are various straight and curved segments.\n"
-msgstr "Die anderen Teile sind verschiedene gerade und gebogene Teilstücke.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:327
-msgid "The new curved turnout is also composed of several segments.\n"
-msgstr "Die neue Bogenweiche besteht ebenfalls aus mehreren Abschnitten.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:328
-msgid "Welcome to the XTrackCAD demonstration.\n"
-msgstr "Willkommen bei der XTrackCAD Demonstration.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:329
-msgid ""
-"This will show some the features of XTrackCAD in an automated presentation. "
-"This window contains a number of controls and a message area (which I hope "
-"you are reading now). \n"
-msgstr ""
-"Diese wird Ihnen einige Funktionen von XTrackCAD in einer automatischen "
-"Präsentation zeigen. Dieses Fenster enthält einige Steuerungselements und "
-"einen Nachrichtenbereich, den Sie gerade lesen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:330
-msgid "The controls are:\n"
-msgstr "Die Steuerungselemente sind:\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:331
-msgid "Step - advances to the next step of the demo.\n"
-msgstr "Einzelschritt - weiter zum nächsten Schritt in der Demo.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:332
-msgid "Next - skips ahead to the next demo.\n"
-msgstr "Nächster - springt zur nächsten Demo.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:333
-msgid "Quit - exits the demo and returns to XTrackCAD.\n"
-msgstr "Beenden - verlässt die Demo und kehrt zu XTrackCAD zurück.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:334
-msgid "Speed - controls the speed of the demo.\n"
-msgstr "Geschwindigkeit - steuert die Geschwindigkeit der Demo.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:335
-msgid "Click Step now for the next message.\n"
-msgstr ""
-"Klicken Sie jetzt auf Einzelschritt um zur nächsten Nachricht zu gelangen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:336
-msgid ""
-"If this is the first time you have used the demo you may want to rearrange "
-"the windows so the demo window does not obscure the main window.\n"
-msgstr ""
-"Wenn dies das erste Mal ist, dass Sie die Demo benutzen, sollten Sie die "
-"Fensterpositionen festlegen. Achten Sie dabei darauf, dass das Hauptfenster "
-"nicht durch das Demofenster verdeckt wird.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:337
-msgid ""
-"You can move the demo window now by dragging on the title bar at the top of "
-"the window. I suggest you move it to the top of your screen.\n"
-msgstr ""
-"Sie können das Demofenster jetzt durch Ziehen an der Titelleiste des "
-"Fensters verschieben. Am besten verschieben Sie es an den oberen Rand des "
-"Bildschirms.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:338
-msgid ""
-"The various controls are disabled when it would be inappropiate to click on "
-"them. When the demo is running the Step button is disabled. When the demo "
-"is paused the Step button is enabled and you can click it when you are ready "
-"to view the next part of the demo.\n"
-msgstr ""
-"Die verschiedenen Steuerelement sind deaktiviert, während diese nicht "
-"nutzbar sind. Während die Demo läuft, ist der Einzelschritt-Knopf "
-"deaktiviert. Wenn die Demo angehalten ist, wird der Einzelschritt-Knopf "
-"aktiviert. Sie können darauf klicken, wenn Sie für den nächsten Schritt der "
-"Demo bereit sind.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:339
-msgid "You can click on Quit to return to XTrackCAD at any time.\n"
-msgstr ""
-"Durch Klicken auf Verlassen können Sie jederzeit zu XTrackCAD zurückkehren.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:340
-msgid "You can adjust the speed of the demonstration with the Speed control.\n"
-msgstr ""
-"Die Geschwindigkeit der Demo können Sie mit dem Geschwindigkeitsknopf "
-"anpassen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:341
-msgid "The demos are designed to fit within a certain sized window.\n"
-msgstr "Die Demos sind für eine bestimmte Fenstergröße entworfen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:342
-msgid ""
-"For best results, change the size of the main XTrackCAD window so the box "
-"shape is completely visible.\n"
-msgstr ""
-"Um beste Ergebniss zu erreichen, ändern Sie die Größe des XTrackCAD "
-"Hauptfensters so, dass die das Rechteck vollständig sicht bar ist.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:343
-msgid "You can do this by clicking and dragging on a corner of the window.\n"
-msgstr ""
-"Dies können Sie erreichen, in dem Sie an der rechten unteren Ecke des "
-"Fensters ziehen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:344
-msgid "This is the end of the introductory demo.\n"
-msgstr "Dies ist das Ende der Einführungsdemo.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:345
-msgid ""
-"Please click Step for the next demo or click Quit to return to XTrackCAD.\n"
-msgstr ""
-"Bitte klicken Sie Einzelschritt für die nächste Demo oder Verlassen, um zu "
-"XTrackCAD zurück zu kehren.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:346
-msgid ""
-"You can also join to and from circles. This will change the circles to "
-"curves.\n"
-msgstr ""
-"Sie können auch Gleise mit Gleiskreisen verbinden. Dadurch werden aus "
-"Kreisen Bögen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:347
-msgid "In this example we will join two circles.\n"
-msgstr "In diesem Beispiel werden wir zwei Kreise verbinden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:348
-msgid ""
-"Here we've selected points on the two circles. The direction of the "
-"connections (whether clockwise or counter clockwise) is controlled by where "
-"on the circle you select the connection points.\n"
-msgstr ""
-"Hier haben wir Punkte auf zwei Kreisen ausgewählt. Die Richtung der "
-"Verbindungen, entweder im Uhrzeigersinn oder dagegen, wird aufgrund der "
-"Stellen auf den Kreisen, die Sie angewählt haben, ermittelt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:349
-msgid "Now let's try a cross connection.\n"
-msgstr "Jetzt versuchen wir eine kreuzweise Verbindung.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:350
-msgid ""
-"Note that the connection is from different 'ends' of the circle than in the "
-"last example.\n"
-msgstr ""
-"Beachten Sie, dass die Verbindung an anderen Punkten der Kreise ansetzt als "
-"bem letzten Beispiel.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:351
-msgid "This examples shows joining tracks whose End-Points are aligned.\n"
-msgstr ""
-"Dieses Beispiel zeigt wir Gleise verbunden werden, die zueinander parallel "
-"sind.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:352
-msgid ""
-"Note the 2 pairs of tracks have End-Points that are close and aligned but "
-"not connected.\n"
-msgstr ""
-"Beachten Sie dass die Endpunkte der beiden Gleise nahe beieinander und "
-"parallel, aber nicht verbunden, sind.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:353
-msgid "The first case joins the curve and straight track.\n"
-msgstr ""
-"Im ersten Fall werden eine gebogenes und ein gerades Gleis verbunden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:354
-msgid "The second case will join the two straight tracks.\n"
-msgstr "Im zweiten Fall werden zwei gerade Gleise verbunden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:355
-msgid "Note that the two straight tracks were combined to form one track.\n"
-msgstr ""
-"Beachten Sie, dass die beiden geraden Gleise zu einem Gleis zusammengefasst "
-"wurden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:356
-msgid ""
-"The <Join> command can join straight and curved tracks (in either order).\n"
-msgstr ""
-"Mit dem Befehl <Verbinden> können gerade und gebogene Gleise (in jeder "
-"Reihenfolge) verbunden werden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:357
-msgid "A connecting track is drawn between the two tracks.\n"
-msgstr "Ein Verbindungsgleis wird zwischen den beiden Gleisen gezeichnet.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:358
-msgid ""
-"Notice that the curved track is extended as the connection point moves past "
-"the End-Point.\n"
-msgstr ""
-"Beachten Sie, dass das gebogene Gleis verlängert wird, wenn der "
-"Verbindungspunkt über den Endpunkt hinaus verschoben wird.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:359
-msgid "Here the connection makes the curved track wrap around.\n"
-msgstr "Hier bildet das Verbindungsgleis eine Spirale.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:360
-msgid ""
-"Now the cursor is about to be moved past the other (far) End-Point of the "
-"straight track. You will receive a warning and the connecting track turns "
-"Red.\n"
-msgstr ""
-"Jetzt wird der Mauszeiger über den anderen, entfernten, Endpunkt des geraden "
-"Gleises verschoben. Sie erhalten einen Hinweis und das Verbindungsgleis wird "
-"rot.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:361
-msgid "The <Join> command can move one group of tracks to join with another.\n"
-msgstr ""
-"Mit dem Befehl <Verbinden> können Gruppen von Gleisen verschoben werden, um "
-"diese mit anderen zu verbinden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:362
-msgid "First <Select> the tracks you want to move.\n"
-msgstr "Zuerst wählen Sie die Gleise aus, die verschoben werden sollen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:363
-msgid "Click <Join> and Shift-Left-Click on the two End-Points.\n"
-msgstr ""
-"Klicken Sie auf <Verbinden> und klicken dann bei gedrückter Umschalttaste "
-"auf die beiden Endpunkte.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:364
-msgid "The selected tracks are moved into position.\n"
-msgstr "Die ausgewählten Gleise werden an die Position verschoben.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:365
-msgid ""
-"Two straight tracks are joined by selecting the two End-Points. The "
-"selected End-Points will be those closest to the cursor when the track is "
-"selected.\n"
-msgstr ""
-"Zwei gerae Gleise werden verbunden, indem die Endpunkte ausgewählt werden. "
-"Die beim Auswählen der Gleise nahegelegensten Endpunkte werden ausgewählt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:366
-msgid ""
-"A connecting track is drawn between the two tracks. Notice how it moves as "
-"the cursor is dragged along the second track.\n"
-msgstr ""
-"Ein Verbindungsgleis wird zwischen den beiden Gleisen gezeichnet. Beachten "
-"Sie wie dieses neu geformt wird, wenn der Mauszeiger entlang des zweiten "
-"Gleises bewegt wird.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:367
-msgid ""
-"Note that two tracks are extended if you move past the end of the track.\n"
-msgstr ""
-"Beachten Sie, dass die beiden Gleise verlängrt werden, wenn Sie denn "
-"Mauszeiger über das Ende des Gleises hinaus bewegen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:368
-msgid ""
-"Notice what happens if you drag past the intersection points of the two "
-"tracks.\n"
-msgstr ""
-"Beachten Sie was passiert, wenn Sie über den Schnittpunkt der beiden Gleise "
-"hinaus ziehen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:369
-msgid "This is probably not a very useful thing to do.\n"
-msgstr "Das ist wahrscheinlich keine sinnvolle Lösung.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:370
-msgid "You can connect from any track to a turntable\n"
-msgstr "Sie können jedes Gleis mit einer Drehscheibe verbinden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:371
-msgid "Note: you cannot have a turntable as your first connection point.\n"
-msgstr ""
-"Beachten Sie, dass die Drehscheibe nicht der erste Verbindungspunkt sein "
-"darf.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:372
-msgid ""
-"You cannot place the connecting track too close to an existing stall track. "
-"How close you can get is controlled by the Turntable Angle on the Setup "
-"dialog.\n"
-msgstr ""
-"Ein Verbindungsgleis kann nicht zu dicht an einem existieren "
-"Drehscheibenabgang erstellt werden. Wie klein der Abstand sein darf, wird "
-"über den Drehscheibenwinkel in den Einstellungen festgelegt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:373
-msgid "In this example it is set to 7.5 degrees.\n"
-msgstr "In diesem Beispiel ist dieser auf 7,5\" gestellt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:374
-msgid "You can drag the connecting point all round the turntable.\n"
-msgstr "Sie können den Verbindungspunkt irgendwo an die Drehscheibe ziehen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:375
-msgid ""
-"As you drag away from the turntable a straight track will be drawn to the "
-"cursor postion and a curve will be drawn from the cursor to the connecting "
-"track.\n"
-msgstr ""
-"Während Sie von der Drehscheibe weg ziehen, wird ein gerades Gleis zur "
-"Position des Mauszeiger gezeichnet. Ein Gleisbogen wird vom Mauszeiger zum "
-"Verbindungsgleis gezeichnet.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:376
-msgid ""
-"Now the cursor will be moved within the turntable. Notice the error "
-"message.\n"
-msgstr ""
-"Jetzt wird der Mauszeiger zu einer Position innerhalb der Drehscheibe "
-"bewegt. Beachten Sie die Fehlermeldung.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:377
-msgid "All done.\n"
-msgstr "Fertig.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:378
-msgid ""
-"The Draw Commands are used to draw straight and curved lines on the layout.\n"
-msgstr ""
-"Die Zeichenbefehle werden genutzt, um gerade oder gebogene Gleise auf dem "
-"Gleisplan zu erstellen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:379
-msgid ""
-"Lines are drawn by clicking at the starting postion and dragging to the "
-"final position.\n"
-msgstr ""
-"Linien werden gezeichnet, indem der Startpunkt durch Klicken festgelegt wird "
-"und dann durch Ziehen der zusätzliche Endpunkt erstellt wird.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:380
-msgid ""
-"Drawing lines with the Shift key held down will use the previous line End-"
-"Point as the starting position. This makes it easy to draw connected "
-"lines.\n"
-msgstr ""
-"Wird beim Zeichnen die Umschalttaste festgehalten wird der letzte Endpunkt "
-"als Startpunkt für das neue Gleis benutzt. Dadurch wird das Zeichnen "
-"verbundener Linien vereinfacht.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:381
-msgid "You also draw in various colors and line widths.\n"
-msgstr ""
-"Sie können auch mit unterschiedlichen Farben und Liniendicken zeichnen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:382
-msgid ""
-"Like Curved Tracks, Curved Lines can be drawn by a variety of methods.\n"
-msgstr ""
-"Wie Gleisbögen können auch gebogene Linien mit unterschiedlichen Methoden "
-"gezeichnet werden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:383
-msgid ""
-"Here we will draw a Curve by dragging from one End-Point to the other to "
-"define the chord of the Curve. Then we will drag from the center to shape "
-"the curve.\n"
-msgstr ""
-"Hier zeichnen wir eine Kurve, indem wir zuerst von Endpunkt zu Endpunkt "
-"ziehen um die Sehne der Kurve festzulegen. Dann Ziehen wir vom Mittelpunkt "
-"aus, um die Form der Kurve festzulegen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:384
-msgid "Boxes are useful for drawing rectangular shapes.\n"
-msgstr ""
-"Gefüllte Rechtecke können für das Erstellen rechteckiger Formen benutzt "
-"werden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:385
-msgid ""
-"Circles can be drawn by clicking on the center or edge and dragging to set "
-"the radius.\n"
-msgstr ""
-"Kreise werden gezeichnet, indem auf den Rand oder den Mittelpunkt geklickt "
-"wird. Danach wird durch Ziehen der Radius festgelegt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:386
-msgid "Here we will drag from the Center.\n"
-msgstr "Hier beginnen wir vom Mittelpunkt aus.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:387
-msgid "Lines and Shapes can be deleted by Selecting and Deleting.\n"
-msgstr ""
-"Linien und Formen können durch Auswählen und Löschen entfernt werden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:388
-msgid "We also draw Polylines and filled shapes.\n"
-msgstr "Wir können auch Vielfachlinien und gefüllte Formen erstellen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:389
-msgid ""
-"A Polyline is drawn by dragging to place each of the point in the Polyline.\n"
-msgstr ""
-"Eine Vielfachlinie wird gezeichnet, indem jeder Eckpunkt durch Ziehen "
-"gesetzt wird.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:390
-msgid ""
-"To finish off the Polyline press the <Space> key or choose another drawing "
-"type.\n"
-msgstr ""
-"Um die Vielfachlinie zu beenden, drücken Sie die Leertaste oder wählen eine "
-"andere Zeichenoperation.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:391
-msgid "A Polygon is drawn in the same way\n"
-msgstr "Ein Vieleck wird genauso gezeichnet.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:392
-msgid ""
-"You can use the Above and Below Commands to move lines and shapes to the "
-"front or back of the drawing.\n"
-msgstr ""
-"Sie können die Befehle Über und Unter benutzen, um Linien und Formen in den "
-"Vorder- oder Hintergrund zu verschieben.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:393
-msgid "Filled Boxes and Circles work the same as line Boxes and Circles.\n"
-msgstr "Gefüllte Rechtecke und Kreis werden genauso erstellt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:394
-msgid ""
-"In the drawing area of the main window you can see an hollow arrow which "
-"represents the mouse cursor. In this demo the mouse will move about to show "
-"you the actions of different commands.\n"
-msgstr ""
-"Auf der Zeichenfläche des Hauptfenster sehen Sie einen leeren Pfeil anstelle "
-"des Mauszeigers. In dieser Demo wird dieser bewegt, um Ihnen die "
-"Arbeitsweise verschiedener Befehle zu zeigen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:395
-msgid ""
-"The hollow arrow represents the mouse cursor without a mouse button being "
-"pressed.\n"
-msgstr "Der leere Pfeil entspricht dem Mauszeiger ohne gedrückte Maustaste.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:396
-msgid ""
-"When the left mouse button would be pressed, the mouse cursor appears to "
-"flash and the hollow arrow is replaced by a solid red arrow. While the left "
-"button is pressed the mouse cursor will be a solid arrow.\n"
-msgstr ""
-"Würde die Maustaste gedrückt, blinkt der Mauszeiger und wird durch einen "
-"gefüllten roten Pfeil ersetzt. Solange der linke Mausknopf gedrückt bleibt, "
-"ist der Mauszeiger ein gefüllter Pfeil.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:397
-msgid ""
-"Note: these color changes occur only during the demo to simulate mouse "
-"button presses.\n"
-msgstr ""
-"Beachten Sie, dass diese Farbänderungen nur in einer Demo auftritt um "
-"Tastendrücke anzuzeigen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:398
-msgid ""
-"Moving the mouse while a mouse button is pressed is called 'dragging'.\n"
-msgstr ""
-"Das Bewegen der Maus während der Mausknopf gedrückt bleibt wird als 'Ziehen' "
-"bezeichnet.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:399
-msgid ""
-"When the left mouse button is released, the mouse cursor flashes and the "
-"hollow arrow is restored.\n"
-msgstr ""
-"Wird der linke Mausknopf wieder losgelassen, blinkt der Mauszeiger und der "
-"leere Pfeil wird wieder hergestellt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:400
-msgid "Dragging with the right button is simulated by a blue solid cursor.\n"
-msgstr ""
-"Das Ziehen mit dem gedrückten rechten Mausknopf wird durch einen gefüllten "
-"blauen Mauszeiger dargestellt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:401
-msgid ""
-"Sometimes the Shift key is held down while using the mouse for a Shift-Click "
-"or a Shift-Drag. \n"
-msgstr ""
-"Manchmal wird während des Bewegen der Maus auch die Umschalttaste gedrückt "
-"gehalten. Dies wird mit Umschalt-Klick und Umschalt-Ziehen bezeichnet.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:402
-msgid "This is indicated by an outline drawn around the solid arrow.\n"
-msgstr "Dies wird durch eine Umlineum den gefüllten Pfeil dargestellt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:403
-msgid ""
-"The main drawing area shows a portion of total layout. You can zoom in or "
-"zoom out by choosing 'Zoom In' or 'Zoom Out' in the 'Edit' menu, by using "
-"the Zoom buttons on the toolbar or by using the 'Page Down' and 'Page Up' "
-"keys.\n"
-msgstr ""
-"Der Hauptzeichenbereich zeigt einen Teil des gesamten Gleisplanes. Sie "
-"können diesen auf verschiedenen Wegen vergrössern oder verkleinern. Diese "
-"Möglichkeiten sind die Zoom-Auswahlen im Menupunkt Bearbeiten, die Zoom-"
-"Knöpfe in der Werkzeugleiste, die Bild hoch und runter Tasten und das "
-"Mausrad.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:404
-msgid "You can see the entire layout in the Map window.\n"
-msgstr "Den gesamten Gleisplan können Sie im Kartenfenster sehen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:405
-msgid "As you Zoom Out tracks are drawn with one line instead of two.\n"
-msgstr ""
-"Wenn Sie die Ansicht verkleinern, werden Gleise durch eine anstelle von zwei "
-"Linien dargestellt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:406
-msgid ""
-"You can change what portion of the layout is shown by using the 'Map' window "
-"which shows a compressed version of the entire layout. A hilighted area of "
-"the 'Map' (in reverse video) shows what portion of the layout is displayed "
-"in the main drawing area.\n"
-msgstr ""
-"Sie können den im Hauptzeichenfenster gezeigten Bereich des Gleisplans mit "
-"dem Karten-Fenster, das den gesamten Plan verkleinert darstellt, ändern. Ein "
-"hervorgehobener Bereich der Karte (weiß auf schwarzem Grund) zeigt, welcher "
-"Teil des Gleisplans im Moment dort gezeigt wird.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:407
-msgid ""
-"You can Left-Drag the hilighted area in the Map window to change the "
-"displayed portion of the layout.\n"
-msgstr ""
-"Durch Ziehen des hervorgehobenen Bereichs im Karten-Fenster können Sie den "
-"angezeigten Bereich des Gleisplans verändern.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:408
-msgid ""
-"You can also Right-Drag on the Map window to set the scale and position of "
-"the Main window.\n"
-msgstr ""
-"Sie können auch Rechts-Ziehen um den Maßstab und die Position des Gleisplans "
-"im Hauptfenster zu bestimmen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:409
-msgid ""
-"The <Note> command lets you attach notes to various spots on the layout.\n"
-msgstr ""
-"Der Befehl <Notiz> ermöglicht es, an unterschiedlichen Stellen des "
-"Gleisplans Notien anzubringen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:410
-msgid ""
-"When you place a note, the Note editor window is displayed which lets you "
-"enter the note.\n"
-msgstr ""
-"Wenn Sie eine Notiz anlegen, wird der Notizeditor geöffnet, der die Eingabe "
-"eines Textes ermöglicht.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:411
-msgid ""
-"If you click on a note in <Describe> mode the Note editor displays the "
-"note.\n"
-msgstr ""
-"Wenn Sie im <Beschreiben> Modus auf eine Notiz klicken, wird der Editor "
-"angezeigt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:412
-msgid "This is the end of the XTrackCAD Demos.\n"
-msgstr "Dies ist das Ende der XTrackCAD Demos.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:413
-msgid "Click Step to return to XTrackCAD.\n"
-msgstr "Klicken Sie auf Einzelschritt um zu XTrackCAD zurück zu kehren.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:414
-msgid "Thanks for watching.\n"
-msgstr "Danke für das Interesse.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:415
-msgid "This example shows how to create parallel tracks.\n"
-msgstr "Dieses Besipiel zeigt wie paralle Gleise erstellt werden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:416
-msgid ""
-"The separation is set in the <Parallel Separation> window. You should set "
-"this value before you begin to select tracks.\n"
-msgstr ""
-"Der Abstand wird im Fenster <Parallelabstand> eingestellt. Dies muss "
-"geschehen, bevor das Glaus ausgewählt wird.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:417
-msgid ""
-"You control which side the parallel track will be on by moving the cursor "
-"from one side of the track centerline to the other.\n"
-msgstr ""
-"Sie können steuern, auf welcher Seite das Parallalgleis erstellt wird, indem "
-"Sie den Mauszeiger von einer Seite derr Gleismitte auf die andere bewegen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:418
-msgid "When you release the mouse button the new parallel track is created.\n"
-msgstr ""
-"Sobald Sie den Mausknop loslassen, wird das parallele Gleis erstellt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:419
-msgid ""
-"Note that the <Parallel> command remains active after you created the "
-"track. This is controlled by the Sticky dialog in the Options menu.\n"
-msgstr ""
-"Beachten Sie, dass der Befehl <Parallelgleis> aktiv bleibt nachdem Sie das "
-"Gleis erstellt haben. Dies wird durch die Einstellungen in Wiederholte "
-"Befehle festgelegt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:420
-msgid "You cannot create a track parallel to a turnout.\n"
-msgstr "Zu einer Weiche können keine Parallelen erstellt werden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:421
-msgid ""
-"Note that the new curved track is automatically connected to the short "
-"parallel track.\n"
-msgstr ""
-"Beachten Sie, dass das neue gebogene Gleis automatisch mit dem kurzen "
-"parallelen Gleis verbunden wird.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:422
-msgid ""
-"Polylines and Polygons (created with the <Draw> command) can be modified by "
-"dragging on their Corners or Edges.\n"
-msgstr ""
-"Vielfachlinen und Vielecke, erstellt mit dem Befehl <Zeichnen> können durch "
-"Ziehen an den Ecken und Kanten verändert werden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:423
-msgid "If you select the middle of an Edge a new Corner is created.\n"
-msgstr ""
-"Wenn Sie die Mitte einer Kante auswählen, wird eine neue Ecke erzeugt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:424
-msgid ""
-"If you drag a Corner to another Corner the two are merged and the Edge "
-"between them is removed.\n"
-msgstr ""
-"Wenn Sie eine Ecke auf eine andere Ecke ziehen, werden diese zusammengefasst "
-"und die Kante dazwischen wird entfernt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:425
-msgid "But you cannot have a Poly-shape with less than 3 sides.\n"
-msgstr ""
-"Aber ein Vieleck oder eine Vielfachllinie mit weniger als drei Seiten ist "
-"nicht möglich.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:426
-msgid ""
-"To use the <Profile> command you first need to define Elevations on your "
-"layout.\n"
-msgstr ""
-"Um den Befehl <Höhenprofil> nutzen zu können, müssen Sie zuerst Höhen auf "
-"Ihrem Gleisplan festlegen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:427
-msgid "In this example we'll use the Elevations defined in the last example.\n"
-msgstr "In dieser Demo werden wird die Höhen aus der letzten Demo benutzen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:428
-msgid "You can move or resize the Profile dialog now if you want.\n"
-msgstr "Das Höhenprofil Fenster kann nun vergrößert werden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:429
-msgid ""
-"To show the Profile you need to select a Path on the tracks of your layout.\n"
-msgstr ""
-"Um das Höhenprofil anzeigen zu können muss eine Strecke in Ihrem Plan "
-"ausgewählt werden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:430
-msgid "Select a Defined Elevation point (marked by Gold dots).\n"
-msgstr "Eine beliebigen Punkt festgelegen, um das Höhenprofil zu beginnen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:431
-msgid "We will start with the right end of the siding.\n"
-msgstr "Wir starten am rechten Ende des Abstellgleises.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:432
-msgid ""
-"The second Point is at the left end of the siding. The Path will be drawn "
-"in Purple on the layout.\n"
-msgstr ""
-"Der zweite Punkt ist das linke Ende ds Nebengleises. Der Pfad wird in Purpur "
-"auf dem Gleisplan dargestellt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:433
-msgid "Now select the end of one of the Branches\n"
-msgstr "Jetzt wählen Sie das Ende eines der Abzweige aus.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:434
-msgid ""
-"The Profile line is drawn in Red. This indicates that there some turnouts "
-"on that section of the Path which have more than 2 connections.\n"
-msgstr ""
-"Das Höhenprofil wird in rot gezeichnet. Das bedeutet, dass es einige Weichen "
-"auf diesem Abschnitt des Pfads gibt, die nmehr als zwei Verbindungen haben.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:435
-msgid ""
-"The grade on this part of the Path is the average and may be affected by "
-"other Elevations, such the end of the lower branch.\n"
-msgstr ""
-"Die Steigung auf diesem Teil des Pfads ist ein Durchschnittswert und knn "
-"durch andere Höhen wie dem Ende des unteren Abzweigs beeinflusst werden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:436
-msgid "Now try to select the End-Point of the other branch.\n"
-msgstr "Versuchen Sie jetzt, den Endpunkt des anderen Abzweiges auszuwählen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:437
-msgid ""
-"You will get an error message because there is no route to one of the ends "
-"of the existing Path.\n"
-msgstr ""
-"Sie erhalten eine Fehlermeldung, da es keine Route zu einem der Endpunkte "
-"des existieren Pfades gibt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:438
-msgid ""
-"In this case remove the last part of the Path by clicking on current end of "
-"the Path and reselect the End-Point.\n"
-msgstr ""
-"In diesem Fall entfernen Sie den letzten Teil des Pfads indem Sie auf das "
-"das gegenwärtige Ende des Pfades klicken und den Endpunkt erneut festlegen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:439
-msgid "Notice that the Grade has changed on the Profile.\n"
-msgstr "Beachten Sie, dass sich die Steigung im Höhenprofil geändert hat.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:440
-msgid ""
-"You can Ignore End-Points on the Path by using Shift-Right-Click to display "
-"the Profile Options popup menu and chosing Ignore.\n"
-msgstr ""
-"Sie können Endpunkte auf dem Pfad ignorieren. Dazu halten Sie die "
-"Umschalttaste während Sie mit dem rechten Mausknopf klicjken. In den "
-"Höhenprofil-Optionen wählen Sie ignorieren.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:441
-msgid ""
-"Note: We can't show the menu in demo mode but we will show the effect of a "
-"Shift Right Click and selecting ignore. We will be Ignoring the End-Point "
-"of the Turnout that is not on the Path.\n"
-msgstr ""
-"Achtung: wir können das Menu im Demo-Modus nicht zeigen, zeigen aber den "
-"Effekt daraus. Wir werden den Endpunkt der Weiche, der nicht auf dem Pfad "
-"liegt, ignorieren.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:442
-msgid "Notice that part of the Profile line is redrawn in Blue.\n"
-msgstr ""
-"Beachten Sie, dass ein Teil des Höhenprofils in blauer Farbe neu gezeichnet "
-"wurde.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:443
-msgid ""
-"Also, the Computed Elevations and Grade marker on the right side of the "
-"layout have been updated.\n"
-msgstr ""
-"Außerdem wurden die berechneten Höhen und die Steigungsmarkierung auf der "
-"rechten Seite des Gleisplans aktualisiert.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:444
-msgid ""
-"You can set additional Defined Elevation points using the Profile Options "
-"popup menu. These points are added to the Profile if they are on the Path.\n"
-msgstr ""
-"Sie können weitere Punkte mit festgelegter Höhe zufügen, indem Sie das "
-"Optionsmenu für Höhenprofile benutzen. Diese Punkte werden zu dem "
-"Höhenprofil zugefügt, wenn Sie auf dem Pfad liegen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:445
-msgid ""
-"We do this by Shift Right Click to display the Profile Options popup menu "
-"and selecting Define.\n"
-msgstr ""
-"Dies geschieht durch durch Umschalt-Rechtsklick um das Optionsmenu für "
-"Höhenprofile zu erhalten uns auswählen von Festlegen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:446
-msgid ""
-"We've just added a Defined Elevation point to the middle of the lower "
-"branch. Notice the addition on the Profile dialog.\n"
-msgstr ""
-"Wir haben gerade eine festgelegte Höhe in der Mitte des unteren Abzweigs "
-"erstellt. Beachten Sie die Ergänzung im Höhenprofil.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:447
-msgid ""
-"For the siding we defined a Station name but it's not on the Path, since the "
-"Path takes the shortest distance between points.\n"
-msgstr ""
-"Für das Ausweichgleis haben einen einen Bahnhofsnamen vergeben. Dieser ist "
-"nicht auf dem Pfad, da ein Pfad immer den kürzesten Weg zwischen Punkten "
-"nutzt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:448
-msgid ""
-"We can Ignore one of the End-Points on a Turnout to force the Path to take "
-"the other route.\n"
-msgstr ""
-"Wir können durch Ignorieren eines des der Endpunkte an einer Weiche "
-"erzwingen, dass der Pfad die andere Route nimmt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:449
-msgid ""
-"Again we use Shift-Right-Click to display the Profile Options menu and "
-"select ignore.\n"
-msgstr ""
-"Wieder benutzen wir Umschalt-Rechtsklick um das Optionsmenu für das "
-"Höhenprofil anzuzeigen und wählen ignorieren.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:450
-msgid "Now remove the First section of the Path,\n"
-msgstr "Jetzt entfernen Sie den ersten Teil des Pfads\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:451
-msgid "and reselect it.\n"
-msgstr "und wählen ihn wieder.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:452
-msgid ""
-"Now the Path goes through the Station End-Point and the name appears on the "
-"Profile dialog.\n"
-msgstr ""
-"Jetzt führt der Pfad durch den Endpunkt am Bahnhof und der Name erscheint im "
-"Höhenprofil.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:453
-msgid "Now we need to increase the separation where the tracks cross.\n"
-msgstr ""
-"Jetzt müssen wir den Höhenunterschied an der Stelle vergrössern, an der die "
-"Gleise sich kreuzen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:454
-msgid ""
-"The two Elevations you see here are Computed Elevations which means "
-"XTrackCAD dynamically computes the Elevation based on the Elevations of "
-"connecting tracks.\n"
-msgstr ""
-"Die beiden Höhen die Sie hier sehen, sind berechnete Werte. Das bedeutet, "
-"dass XTrackCAD die Höhe auf Grundlage verbundener Gleise berechnet.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:455
-msgid ""
-"First make the lower End-Point a Defined Elevation point using Shift-Right-"
-"Click and the Profile Options menu. You will see the End-Point marked by a "
-"Gold dot and a new line is added to the Profile dialog.\n"
-msgstr ""
-"Markieren Sie zuerst den unteren Endpunkt als festgelegt. Dies geschieht "
-"durch Umschalt-Rechtsklick und das Optionsmenu für das Höhenprofil. Sie "
-"werden sehen, dass der Endpunkt jetzt mit einem goldenen Punkt markiert ist. "
-"Dem Höhenprofil wurde eine neue Linie zugefügt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:456
-msgid "Now, drag the point on the Profile Dialog to change the Elevation.\n"
-msgstr "Jetzt ziehen Sie den Punkt im Höhenprofil um die Höhe zu ändern.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:457
-msgid ""
-"Note the grade on each side of the point will be displayed at the bottom of "
-"the Profile dialog.\n"
-msgstr ""
-"Beachten Sie, dass die Steigung auf beiden Seiten des Punktes im "
-"Dialogfenster unten angezeigt wird.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:458
-msgid ""
-"After we release the Profile is updated to show the new Elevation and "
-"Grade.\n"
-msgstr ""
-"Nach dem Loslassen des Mausknopfes wird das Höhenprofil aktualisiert um die "
-"neue Höhe und Steigung anzuzeigen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:459
-msgid "The <Rescale> command will change the size of the selected objects.\n"
-msgstr "Der Befehl <Skalieren>verändert die Größe der ausgwählten Objekte.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:460
-msgid "First we will try rescaling by ratio.\n"
-msgstr "Zuerst skalieren wir über das Verhältnis.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:461
-msgid "We are going to make everything 150% bigger.\n"
-msgstr "Wir vergrößern alles auf 150 Prozent.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:462
-msgid "Note the track gauge did not change.\n"
-msgstr "Beachten Sie, dass die Spurweite nicht geändert wurde.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:463
-msgid "Let's try that again.\n"
-msgstr "Lassen Sie uns das nochmals versuchen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:464
-msgid "Now we are going to convert from one scale to another.\n"
-msgstr "Jetzt ändern wir von einem Maßstab zu einem anderen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:465
-msgid "We will convert everything from N scale to HO scale...\n"
-msgstr "Wir werden alles von Spur N nach Spur H0 umwandeln...\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:466
-msgid "and change the track gauge as well.\n"
-msgstr "und die Spurweite gleichzeitig ändern.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:467
-msgid "Note that the Title of the turnout did not change.\n"
-msgstr "Beachten Sie, dass der Titel der Weiche nicht geändert wurde.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:468
-msgid ""
-"The <Rotate> command will pivot the Selected objects. First Click on the "
-"pivot point and then drag to Rotate the objects.\n"
-msgstr ""
-"Der Befehl <Drehen> ermöglicht das Rotieren von ausgewählten Objekten. "
-"Klicken Sie zuerst auf das Zentrum der Drehbewegung und ziehen dann, um die "
-"Objekte zu drehen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:469
-msgid ""
-"In this example we will rotate the selected structure about it's center.\n"
-msgstr ""
-"In diesem Beispiel werden wir das Gebäude um seinen Mittelpunkt drehen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:470
-msgid ""
-"The <Rotate> command will restrict the rotation to increments of 15° if you "
-"hold down the Control key.\n"
-msgstr ""
-"Der Drehwinkel wird auf Vielfache von 15° begrenzt, wenn Sie die Steuerungs-"
-"Taste gedrückt halten.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:471
-msgid ""
-"Shift-Right-Click will display a popup-menu that you can use to rotate by "
-"fixed amount (15°, 30°, 45°, 90° or 180°). The demonstration cannot show "
-"the popup-menu but it can show the effects.\n"
-msgstr ""
-"Umschalten-Rechts-Klick öffnet ein Auswahlmenu, das Sie nutzen können um "
-"vorgegebene Werte für die Drehung (15°, 30°, 45°, 90° or 180°) auszuwählen. "
-"Diese Demonstration kann das Auswahlmenu nicht darstellen, aber sie zeigt "
-"den Effekt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:472
-msgid "Here we will rotate by 90° clockwise (CW).\n"
-msgstr "Jetzt drehen wir um 90° im Uhrzeigersinn.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:473
-msgid ""
-"Another option of the <Rotate> command popup-menu is to Align the Selected "
-"object with some other object.\n"
-msgstr ""
-"Der Befehl <Rotate> bietet auch die Möglichkeit, die ausgewählten Objekt an "
-"anderen Objekten auszurichten.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:474
-msgid ""
-"First we will click on one line of the Selected object. The angle of this "
-"part of the object will be Aligned.\n"
-msgstr ""
-"Zuerst klicken wir auf eine Linie des asgewählten Objektes. Diese Linie wird "
-"als Grundllinie für die Ausrichtung benutzt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:475
-msgid ""
-"Next, we click on an Unselected object. The Selected structure will be "
-"rotated so that the line we clicked on will be parallel to the straight "
-"track.\n"
-msgstr ""
-"Dann klicken wir auf ein Objekt, das nicht ausgewählt ist. Das ausgewählte "
-"Gebäude wird so gedreht, dass die gewählte Linie parallel zu dem geraden "
-"Gleis ist.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:476
-msgid ""
-"If we drag the mouse across the track, we can flip the structure by 180°. "
-"This is similar to how we place turnouts.\n"
-msgstr ""
-"Wenn wir die Maus auf die andere Seite des Gleises ziehen, wird das Gebäude "
-"um 180° gedreht. Dies ist vergleichbar zu dem Setzen von Weichen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:477
-msgid ""
-"We can also align to curved shapes. The Selected object will be rotated to "
-"be parallel to the curve under the cursor.\n"
-msgstr ""
-"Wir können auch an gebogenen Elementen ausrichten. Das ausgewählte Objekt "
-"wird so gedreht, dass es parallel dem Punkt der Kurve ist, der sich unter "
-"dem Mauszeiger befindet.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:478
-msgid ""
-"As we drag along the curved track the Selected object rotates to follow the "
-"curve.\n"
-msgstr ""
-"Während wir entlang des gebogenen Gleises ziehen, dreht sich das ausgewählte "
-"Objekt um der Kurve zu folgen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:479
-msgid "Again, if we drag across the track we can flip the stucture.\n"
-msgstr ""
-"Auch hier können wir das Gebäude spiegeln, indem wir auf die andere Seite "
-"ziehen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:480
-msgid "We can also Align to another Structure or any object.\n"
-msgstr ""
-"Wir können auch an anderen Gebäuden oder jedem anderen Objekt ausrichten.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:481
-msgid ""
-"The <Ruler> command draws a Ruler on the layout you can use to measure "
-"distances.\n"
-msgstr ""
-"Mit dem Befehl <Lineal> wird ein Lineal auf den Gleisplan gezeichnet. Dieses "
-"kann genutzt werden, um Abstände zu messen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:482
-msgid "If you press the <Ruler> command again the Ruler is removed.\n"
-msgstr ""
-"Wenn Sie den Befehl <Lineal> nochmals Anklicken, wird das Lineal wieder "
-"entfernt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:483
-msgid "But you can place it somewhere else.\n"
-msgstr "Aber Sie können dieses auch an eine andere Stelle versetzen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:484
-msgid "The <Select> command is used to select tracks.\n"
-msgstr "Der Befehl <Auswahl> wird benutzt, um Objekte auszuwählen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:485
-msgid "Selected tracks can be moved or rotated during the <Select> command.\n"
-msgstr "Ausgewählte Gleise können verschoben und gedreht werden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:486
-msgid "Selected tracks can also be deleted, hidden, listed and exported.\n"
-msgstr ""
-"Ausgewählte Gleise können auch gelöscht, verborgen, aufgelistet und "
-"exportiert werden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:487
-msgid "A single Left-Click selects tracks.\n"
-msgstr "Ein einfacher Klick mit der linken Maustaste wählt ein Gleis aus.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:488
-msgid "Selecting a selected track de-selects it.\n"
-msgstr ""
-"Durch wiederholtes Klicken wird die Auswahl des Gleises wieder aufgehoben.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:489
-msgid ""
-"Shift-Left-Click on a track will select all unselected tracks connected to "
-"the track. Selection stops at a previously selected track.\n"
-msgstr ""
-"Umschalt-Links-Klick auf ein Gleis wählt alle Gleise aus, die mit diesem "
-"verbunden sind. Der Vorgang bricht ab, sobald ein Gleis bereits ausgewählt "
-"ist.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:490
-msgid "Be careful with this because its easy to select all tracks this way.\n"
-msgstr ""
-"Seien Sie vorsichtig, denn es ist sehr einfach unbeabsichtigt alle Gleise "
-"auszuwählen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:491
-msgid "The <esc> key will deselect all objects.\n"
-msgstr "Mit der Taste <Esc> werden alle Objekte abgewählt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:492
-msgid "Left-Drag is used to select all objects within an area.\n"
-msgstr ""
-"Ziehen mit gedrückter linker Maustaste wählt alle Objekt in einem Bereich "
-"aus.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:493
-msgid "And Right-Drag de-selects all tracks within an area.\n"
-msgstr ""
-"Und Ziehen mit rechter gedrückter Maustaste entfernt alle Objekte in einem "
-"Bereich aus der Auswahl.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:494
-msgid "Shift-Left-Drag is used to move selected tracks.\n"
-msgstr ""
-"Links-Ziehen bei gedrückter Umschalt-Taste wird benutzt um die ausgewählten "
-"Gleise zu verschieben.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:495
-msgid ""
-"When you move selected tracks that are connected to unselected tracks, the "
-"tracks will be disconnected. These points are marked by a Red cross on the "
-"layout.\n"
-msgstr ""
-"Wenn Sie Gleise verschieben, die mit Gleisen verbunden sind, die nicht "
-"ausgewählt sind, wird die Verbindung gelöst. Diese Punkte werden durch ein "
-"rotes Kreuz auf dem Gleisplan markiert.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:496
-msgid ""
-"Drawing the tracks while moving can be very time-consuming. We had just "
-"used the \"Normal\" method of drawing tracks.\n"
-msgstr ""
-"Das Zeichnen der Gleise während des Verschieben kann die Bewegung sehr "
-"verzögern. Gerade haben wir die \"normale\" Methode des Zeichnen benutzt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:497
-msgid ""
-"The Command Options dialog (from the Options menu) contains a Radio button "
-"group which you can use to pick the drawing method.\n"
-msgstr ""
-"Im Dialogfenster Befehlsoptionen (aus dem Einstellungen Menu) können Sie die "
-"Zeichenmethode ändern.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:498
-msgid ""
-"You can also popup the Command Options Menu by pressing Shift-Right-Click "
-"which includes options for setting the drawing method. These options are "
-"also available for the Move and Rotate Command Options Menu.\n"
-msgstr ""
-"Sie können das Befehlsoptionen Menu auch aufrufen, indem sie Umschalt-Rechts-"
-"Klick betätigen. Diese Optionen sind auch für die Befehle Verschieben und "
-"Drehen vorhnden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:499
-msgid ""
-"The next method is \"Simple\" draws. Here tracks are drawn using one line, "
-"no End-Points are drawn, lines are not drawn and structures are drawn using "
-"a box outline.\n"
-msgstr ""
-"Die nächste Methode ist \"einfaches\" Zeichnen. Hier werden Gleise durch "
-"eine Linie dargestellt, Endpunkte und Linien werden nicht gezeichnet. "
-"Gebäude werden während der Operation durch ein Rechteck ersetzt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:500
-msgid ""
-"Note: you can move the Command Options dialog if it obscures the main "
-"window.\n"
-msgstr ""
-"Beachten Sie, dass Sie die das Dialogfenster Befehlsoptionen verschieben "
-"können, wenn es das Hauptfenster verdeckt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:501
-msgid ""
-"The next method is to just draw the End-Points of the selected tracks.\n"
-msgstr ""
-"Die nächste Methode ist das einfache Zeichnen der Endpunkte der ausgewählten "
-"Gleise.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:502
-msgid ""
-"Unconnected End-Points are indicated by Red crosses, and connected End-"
-"Points are indicated by Red lines.\n"
-msgstr ""
-"Nicht verbundene Endpunkte werden durch ein rotes Kreuz markiert, verbundene "
-"Endpunkte durch eine rote Linie.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:503
-msgid "Now we will go back to using the Normal method again.\n"
-msgstr "Jetzt gehen wir zu der normalen Methode zurück.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:504
-msgid ""
-"Shift-Right-Drag rotates the selected tracks about the pivot point (which is "
-"where you started the drag)\n"
-msgstr ""
-"Umschalt-Rechts-Ziehen dreht die ausgewählten Gleise um das Zentrum, der "
-"Punkt an dem Sie das Ziehen begonnen haben.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:505
-msgid ""
-"Next we select the <Join Tracks> command. You can use Shift-Left-Click to "
-"move an End-Point of a selected track to join with an unselected track.\n"
-msgstr ""
-"Jetzt wählen wir den Befehl <Verbinde Gleise>. Mit Umschalt-Links-Klick "
-"können Sie einen Endpunkt von ausgewählten Gleisen mit einem nicht "
-"ausgewählten Gleis verbinden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:506
-msgid ""
-"Note: because of differing display resolutions the next mouse click may not "
-"be positioned correctly in this demo and the Move-To-Join operation may not "
-"be demonstrated.\n"
-msgstr ""
-"Beachten Sie dass der Befehl \"Verbinden durch Bewegen\" in der Demo nicht "
-"gezeigt werden kann.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:507
-msgid "The <Split> command is used to split and disconnect tracks.\n"
-msgstr ""
-"Der Befehl <Trennen> wird benutzt, um Gleise zu zerteilen und voneinander zu "
-"trennen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:508
-msgid "Simply select the spot on the track you want to split.\n"
-msgstr ""
-"Wählen Sie einfach die Stelle des Gleises aus, an der dieses getrennt werden "
-"soll.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:509
-msgid "You cannot split turnouts (unless you hold down the Shift key).\n"
-msgstr ""
-"Weichen können nur getrennt werden, wenn Sie die Umschalttaste drücken.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:510
-msgid ""
-"If you split at spot that is already an End-Point between two tracks, or "
-"split twice at the same spot, the track is disconnected.\n"
-msgstr ""
-"Wenn Sie an einem vorhandenen Endpunkt zerteilen oder wenn die an einer "
-"Stelle doppelt zerteilen werden die Gleise getrennt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:511
-msgid "The <Tunnel> command marks selected tracks as hidden.\n"
-msgstr "Mit dem Befehl <Tunnel> verbergen Sie die ausgewählten Gleise.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:512
-msgid ""
-"A tunnel portal is drawn at the boundary between hidden and normal track.\n"
-msgstr ""
-"Ein Tunnelportal wird am Übergang zwischen sichtbarem und verborgenem Gleis "
-"gezeichnet.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:513
-msgid ""
-"How the hidden tracks are drawn (solid, dashed or invisible) is controlled "
-"by the Draw EndPts radio button group on the Setup dialog.\n"
-msgstr ""
-"Die Darstellung des verborgenen Gleises (durchgezogen, gestrichelt oder "
-"unsichtbar) kann in den Einstellungen festgelegt werden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:514
-msgid ""
-"To 'un-hide' a track just Select it again and click the Tunnel button.\n"
-msgstr ""
-"Um die Gleise wieder sichtbar zu machen, wählen Sie diese aus und "
-"wiederholen den Befehl <Tunnel>.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:515
-msgid ""
-"Straight tracks are created by selecting the first End-Point of the track.\n"
-msgstr ""
-"Gerade Gleise werden erstellt indem der erste Endpunkt des Gleises gewählt "
-"wird.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:516
-msgid "Then the other End-Point is dragged to its final postion.\n"
-msgstr ""
-"Dann wird der zweite Endpunkkt durch Ziehen an die richtige Position "
-"gebracht.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:517
-msgid "The left mouse button is released at the final end postion.\n"
-msgstr "An diesem Punkt wird der linke Mausknopf los gelassen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:518
-msgid ""
-"Table Edges are used to mark the edges of the layout, either for aisles or "
-"room walls.\n"
-msgstr ""
-"Tischkanten werden benutzt um die Ränder des Gleisplans, entweder für "
-"Zugänge oder Wände benutzt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:519
-msgid "A Table Edge is attracted to the ends of other Table Edges.\n"
-msgstr ""
-"Eine Tischlante wird von den Enden anderer Tischkantenlinien angezogen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:520
-msgid "Table Edges can be modified by dragging on their ends.\n"
-msgstr "Tischkanten können durch Ziehen an den Enden geändert werden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:521
-msgid ""
-"If you hold down the Control key while dragging then the Table Edge will be "
-"attracted to other objects.\n"
-msgstr ""
-"Wenn Sie die Strg-Taste während des Ziehens gedrückt halten, wird die "
-"Tischkante von anderen Objekten angezogen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:522
-msgid ""
-"These examples shows some of the various Turnout Designer windows. Each "
-"window defines a different type of turnout.\n"
-msgstr ""
-"Diese Beispiele zeigen einige der Dialogfenster des Weichendesigner. Jeder "
-"Dialog wird für einen anderen Typ von Weichen benutzt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:523
-msgid ""
-"In each window there are a number of parameters to fill in and one or two "
-"description lines.\n"
-msgstr ""
-"In jedem Dialog müssen einige Parameter und eine oder zwei Zeilen "
-"Beschreibungen eingetragen werden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:524
-msgid "You can print the design to check the dimensions before saving them.\n"
-msgstr ""
-"Sie können den Entwurf vor dem Speichen ausdrucken. Damit können Sie zur "
-"Kontrolle die Abmessungen prüfen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:525
-msgid "This is the regular turnout.\n"
-msgstr "Dies ist eine normale Weiche.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:526
-msgid ""
-"In addition to the dimensions, you also enter the Title (Manufacturer, "
-"Description and Part Number). For Turnouts with Left and Right hand "
-"versions there are separate Descriptions and Part Numbers.\n"
-msgstr ""
-"Neben den Abmessungen müssen auch die Beschreibung der Weiche, d.h. "
-"Hersteller, Beschreibung und Teilenummer, eingegeben werden. Für Weichen mit "
-"rechten und linken Abzweigen werden die Beschreibung und die Teilenummern "
-"getrennt erfasst.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:527
-msgid ""
-"Some Turnouts and Sectional track are pre-mounted on roadbed. For these "
-"parts you can specify the width of the roadbed, the thickness of the lines "
-"drawn for the edge of the roadbed and the color.\n"
-msgstr ""
-"Einige Weichen und Festgleise besitzen ein festes Gleisbett. Für diese Teile "
-"können Sie die Breite des Gleisbetts und Dicke und Farbe der "
-"Begrenzungslinien festlegen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:528
-msgid "The double slip switch is described by only a few parameters.\n"
-msgstr ""
-"Für eine doppelte Kreuzungsweiche wird durch wenige Daten festgelegt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:529
-msgid "The double crossover only needs length and track separation.\n"
-msgstr ""
-"Eine doppelter Gleiswechsel erfordert nur die Gleislänge und den "
-"Gleisabstand.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:530
-msgid ""
-"Pressing the turnout button displays the Turnout Selection window to let you "
-"choose a turnout to place.\n"
-msgstr ""
-"Durch Drücken des Knopfes <Weiche> wird das Weichenauswahl-Fenster geöffnet. "
-"Hier können Sie eine Weiche auswählen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:531
-msgid ""
-"Note that once you start to place the turnout on the Main window the Turnout "
-"Selection window disappears. This feature is enabled by the Hide toggle "
-"button on the dialog.\n"
-msgstr ""
-"Beachten Sie, dass das Weichenauswahl-Fenster verschwindet sobald Sie mit "
-"dem Legen der Weiche beginnen. Diese Eigenschaft wird durch den 'Verbergen' "
-"Schalter des Dialogs eingeschaltet.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:532
-msgid ""
-"You can place the turnout on a arbitrary position on the layout. Left-drag "
-"the turnout into place...\n"
-msgstr ""
-"Sie können die Weiche an eine beliebigen Position auf dem Gleisplan legen. "
-"Ziehen Sie die Weiche an den richtigen Platz...\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:533
-msgid "Then you can rotate the turnout by Right dragging.\n"
-msgstr ""
-"Dann können Sie die Weiche durch Ziehen mit der rechten Maustaste drehen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:534
-msgid ""
-"You can also use Shift-Right-Click to display a popup menu that lets you "
-"rotate the Turnout by specific angles.\n"
-msgstr ""
-"Sie können mit Umschalten-Rechts-Klick ein Fenster öffnen, das das Drehen um "
-"feste Winkel ermöglicht.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:535
-msgid ""
-"When you are satisfied with the position and orientation of the turnout "
-"press Space bar or the Return key on the keyboard to finish placing the "
-"turnout.\n"
-msgstr ""
-"Wenn Sie mit der Position und der Ausrichtung der Weiche zufrieden sind, "
-"drücken Sie Leertaste oder die Eingabetaste der Tastatur um den Befehl "
-"abzuschliessen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:536
-msgid ""
-"Pressing the Ok button on the Turnout dialog will end the <Turnout> command "
-"as well as placing the turnout.\n"
-msgstr ""
-"Auch durch Drücken der OK-Taste im Dialogfenster können Sie den Befehl "
-"beenden und die Weiche festlegen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:537
-msgid ""
-"If you drag along an existing track the new turnout will be attached to the "
-"track.\n"
-msgstr ""
-"Wenn Sie die Weiche auf existierendes Gleis ziehen, so wird sie mit dem "
-"Gleis verbunden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:538
-msgid ""
-"Note that the status line tells you the number of End-Points that would be "
-"connected and, the maximum displacement of the End-Points. This will be "
-"useful when building complex track, as we will see later.\n"
-msgstr ""
-"Beachten Sie, dass in der Statuszeile angezeigt wird. wieviele Endpunkte der "
-"Weiche verbunden würden und wie groß der maximale Abstand zu den Endpunkten "
-"ist. Wie wir später sehen werden ist diese Information hilfreich, um "
-"komplexe Gleiskonfigurationen zu erstellen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:539
-msgid ""
-"By moving the cursor from one side to the other of the track centerline you "
-"can flip the turnout 180°.\n"
-msgstr ""
-"Durch Bewegen des Mauszeiger von einer Seite des Gleises auf die andere wird "
-"die Weiche um 180° gedreht.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:540
-msgid ""
-"If you try to drag across another turnout the new turnout will placed at the "
-"nearest End-Point of the existing turnout.\n"
-msgstr ""
-"Wenn Sie die neue Weiche über eine existierende Weiche ziehen, wird die neue "
-"Weiche mit dem nächstgelegenen Endpunkt der vorhandenen Weiche verbunden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:541
-msgid ""
-"When you press Space or Return while the turnout is on a track, the track "
-"will be split and the new turnout attached automatically.\n"
-msgstr ""
-"Wenn Sie die Leer- oder die Eingabetaste drücken während die Weiche auf "
-"einem Gleis ist, wird dieses Gleis getrennt und die Weiche wird automatisch "
-"verbunden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:542
-msgid "Pressing Close ends the <Turnout> command.\n"
-msgstr "Durch Drücken von <Schliessen> wird der Befehl <Weiche> beendet.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:543
-msgid "Sometimes it's useful to modify turnouts triming one of the ends.\n"
-msgstr ""
-"Manchmal ist es sinnvoll, eine Weich durch Krzen der Enden anzupassen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:544
-msgid "We use the <Split> command for this.\n"
-msgstr "Dafür benutzen wir den Befehl <Trennen>.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:545
-msgid "Normally, if we try to Split a turnout we get an error message.\n"
-msgstr ""
-"Normalerweise bekommen wir eine Fehlermeldung, wenn wir versuchen eine "
-"Weiche zu trennen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:546
-msgid "Hold down the Shift key and try again.\n"
-msgstr "Drücken Sie die Umschalten-Taste und versuchen es nochmals.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:547
-msgid ""
-"The end of the turnout has been replaced by a piece of straight flex track "
-"which we can modify.\n"
-msgstr ""
-"Das Ende der Weiche wurde durch ein Stück gereden Gleises ersetzt. Dieses "
-"können wir verändern.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:548
-msgid "We can try splitting the diverging leg.\n"
-msgstr "Wir können versuchen, das abzweigende Gleis zu trennen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:549
-msgid ""
-"Notice that the tail of the diverging leg has been changed to a curved "
-"track...\n"
-msgstr ""
-"Beachten Sie, dass das abzweigende Gleis in ein gebogenes Gleis umgewandelt "
-"wurde...\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:550
-msgid "and a straight track.\n"
-msgstr "und ein gerades Gleis.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:551
-msgid ""
-"This example show how to layout a yard using the <Turnout> and <Parallel> "
-"commands.\n"
-msgstr ""
-"Dieses Beispiel zeigt wie mit den Befehlen <Weiche> und <Paralleles Gleis> "
-"eine Gleisharfe erstellt werden kann.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:552
-msgid ""
-"You can resize and move the Turnout Selection dialog if it obscures the "
-"other windows.\n"
-msgstr ""
-"Sie können den Weichenauswahl-Dialog verkleinern und verschieben, wenn er "
-"andere Fensterbereiche verdeckt.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:553
-msgid "First we place a turnout on the main line.\n"
-msgstr "Zuerst legen wir eine Weiche auf das Hauptgleis.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:554
-msgid "Next extend the turnout with the <Modify> command.\n"
-msgstr "Dann erweitern wir die Weiche mit dem Befehl <Verändern>.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:555
-msgid ""
-"Now create a track parallel to the main line. Make sure the separation is "
-"reasonable for your scale.\n"
-msgstr ""
-"Jetzt erstellen Sie ein Gleis, das parallel zum Hauptgleis liegt. Stellen "
-"Sie sicher, dass der Gleisabstand für Ihren Maßstab geeignet ist.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:556
-msgid "And place a turnout to connect the new track.\n"
-msgstr "Und legen eine Weiche, um das neue Gleis anzuschliessen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:557
-msgid "We'll zoom in here to see what's going on.\n"
-msgstr "Durch Vergrößern können wir sehen, was passiert.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:558
-msgid ""
-"Notice how we control which way the turnout is facing by moving the mouse "
-"across the center line of the track.\n"
-msgstr ""
-"Beachten Sie wie wir die Ausrichtung der Weiche beeinflussen indem wir die "
-"Maus über die Mittellinie des Gleise bewegen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:559
-msgid ""
-"The Status bar displays the number of auto-connections that will be made and "
-"the maximum offset.\n"
-msgstr ""
-"In der Statuszeile wird angezeigt, wieviele Endpunkte verbunden werden und "
-"wie große der maximale Abstand ist.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:560
-msgid ""
-"XTrackCAD adjusts the turnout position for the best fit to minimize any "
-"connection offset\n"
-msgstr ""
-"XTrackCAD verändert die Weichenposition um die beste Einpassung zu "
-"erreichen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:561
-msgid "Note that placing the turnout splits the parallel track.\n"
-msgstr ""
-"Beachten Sie, dass durch die Weiche das parallele Gleis getrennt wurde.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:562
-msgid "We have to delete the leftover piece by Selecting and Deleting it.\n"
-msgstr "Dieses Reststück müssen wir auswählen und löschen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:563
-msgid "Repeat the process for the other tracks in the yard.\n"
-msgstr "Wiederholen Sie diesen Ablauf für die anderen Gleise der Gleisharfe.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:564
-msgid "For the last track we will join with a curve instead of a turnout.\n"
-msgstr ""
-"Beim letzten Gleis benutzen wir einen Gleisbogen anstelle einer Weiche.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:565
-msgid "We can indicate the mainline by making the rails wider.\n"
-msgstr ""
-"WIr können die Hauptstrecke hervorheben, in dem wir die Gleise dicker "
-"zeichnen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:566
-msgid "First we select the mainline tracks...\n"
-msgstr "Zuerst wählen wir die Gleise der Hauptstrecke aus...\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:567
-msgid "And then select Medium Tracks from the Edit menu.\n"
-msgstr "und wählen dann Mittlere Stärke aus dem Bearbeiten Menu aus.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:568
-msgid "We can make the rail thicker by selecting Thick Tracks.\n"
-msgstr ""
-"Wir können das Gleis durch die Auswahl Breite Linie dicker darstellen.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:569
-msgid ""
-"Turntables are created by specifying the radius in a dialog box on the "
-"Status Bar. The radius in the dialog can be changed before proceeding.\n"
-msgstr ""
-"Beim Erstellen von Drehscheiben muss der Radius in einem Dialog in der "
-"Statuszeile eingegeben werden. Der Radius muss vor den nächsten Schritten "
-"geändert werden.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:570
-msgid "Then the turntable is dragged to its final location.\n"
-msgstr "Dann wird die Drehscheibe an die endgültige Position geschoben.\n"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:571
-msgid ""
-"XTrackCAD provides demonstrations on most of the program's features. The "
-"demos can be run by clicking on the Help menu on the Main window and then "
-"selecting Demos."
-msgstr ""
-"XTrackCAD verfügt über Demos der meisten Funktionen. Diese Demos können "
-"abgespielt werden indem im Hilfe Menü des Hauptfensters der Punkt \"Demos\" "
-"ausgewählt wird."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:572
-msgid ""
-"The notation \"Menu|Item\" is used in the documentation (and the on-line "
-"demos and tips) to indicate the selection of a menu item.\n"
-"For example File|Open means to open the menu by clicking on File on the menu "
-"bar of the Main window and then selecting the Open item from that menu."
-msgstr ""
-"Die Darstellunsgart \"Menü|Unterpunkt\" wird in der Dokumentation den Online "
-"Demos und im Tipp des Tages verwendet, sie dient dazu die Selektion eines "
-"Unterpunktes zu beschreiben.\n"
-"\"Datei|Öffnen\" bedeutet zum Beispiel in der Menüleiste des Hauptfensters "
-"auf Datei zu klicken und dann im aufgehenden Untermenü auf die Auswahl Punkt "
-"Öffnen."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:573
-msgid ""
-"A number of example layouts are provided. These files are located in the "
-"'examples' directory where you installed XTrackCAD. The \"File|Open\" "
-"command will open that directory when first used."
-msgstr ""
-"Einige Beispiel Gleisplänen stehen zu Ihrer Verfügung, diese wurden im "
-"Unterverzeichnis 'examples' im Haupverzeichnis von XTrackCAD installiert. "
-"Über den Dialog \"Datei|Öffnen\" können diese geladen werden."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:574
-msgid ""
-"When installed, the program measures all units in inches. You can change "
-"this on the \"Options|Preferences\" dialog by changing the Units item to "
-"Metric instead of English."
-msgstr ""
-"Nach Installation werden sämtliche Einheiten in Inches dargestellt. Diese "
-"Einstellung können Sie über den Dialog \"Optionen|Einstellungen\" ändern, "
-"indem Sie von Englisch auf Metrisch wechseln."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:575
-msgid ""
-"You can change the overall size of your layout on the \"Options|Layout\" "
-"dialog."
-msgstr ""
-"Die Gesamtgröße Ihres Gleisplans kann über den Dialog \"Optionen|Gleisplan\" "
-"eingestellt werden."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:576
-msgid ""
-"When installed, the default command is the Describe command. More "
-"experienced users will probably want to change this to the Select command. "
-"You can do this on the \"Options|Command Options\" dialog."
-msgstr ""
-"Nach Installation ist der Standardbefehl das \"Eigenschaften\" Kommando. "
-"Erfahrene Benutzer möchten dies vielleicht in das \"Auswählen\" Kommando "
-"ändern. Dies kann über den Dialog \"Optionen|Befehl\" unter Standardbefehl "
-"erfolgen."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:577
-msgid ""
-"Set your modeling scale on the \"Options|Layout\" dialog. This controls the "
-"Turnouts and Structures that are available, Easement values and track gauge."
-msgstr ""
-"Stellen Sie im \"Optionen|Gleisplan\" Dialog Maßstab und Spurweite für Ihren "
-"Gleisplan ein. Diese Grundeinstellung sollte unbedingt als erstes "
-"vorgenommen werden, damit der neu eingestellte Maßstab mit dem Maßstab der "
-"geladenen Parameterdatei übereinstimmt."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:578
-msgid ""
-"When Selecting tracks, the connection between Selected and Unselected tracks "
-"is marked by a Red X. This indicates points where the connection between "
-"tracks will be broken if you Move or Rotate the Selected tracks."
-msgstr ""
-"Bei ausgewählten Gleisen wird die Verbindung des Gleises durch ein rotes X "
-"markiert, genau an dieser Stelle wird das Gleis getrennt wenn es verschoben "
-"oder gedreht wird."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:579
-msgid ""
-"You can change orientation of the pages on the Print command by moving or "
-"rotating the Print Grid.\n"
-"Shift-Left-Drag moves the grid and Shift-Right-Drag rotates the grid."
-msgstr ""
-"Die Ausrichtung von auszudruckenden Seiten kann geändert werden indem das "
-"Druckraster bewegt oder rotiert wird.\n"
-"Shift Taste nach links ziehen bewegt das Raster, Shift Taste nach rechts "
-"ziehen rotiert das Raster."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:580
-msgid ""
-"You can add track to any unconnected End-Point with the Modify command.\n"
-"Hold down the Shift key and click on the End-Point and drag away to create a "
-"new track segment attached to the End-Point.\n"
-"Repeat with the new End-Point to create flowing tracks."
-msgstr ""
-"Gleise können zu jedem unverbundenen Endpunkt mit \"Verändern\" hinzugefügt "
-"werden.\n"
-"Um einen neuen Gleisabschnitt zu erstellen, markieren Sie einen Endpunkt, "
-"halten Sie dann die Shift-Taste gedrückt während Sie den Gleisabschnitt "
-"verschieben.\n"
-"Wiederhohlen Sie diese Aktion mit diesem neuen Endpunkt um Gleisabschnitte "
-"weiter zu zerlegen."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:581
-msgid ""
-"You can create Curved tracks in four ways by dragging from:\n"
-" the 1st End-Point in the direction of the curve\n"
-" Center of the Curve to the 1st End-Point\n"
-" End-Point to the Center\n"
-" the 1st to 2nd End-Point\n"
-"Then drag on one of the Red arrows to create the final shape of the curve.\n"
-"\n"
-"You can click on the small button to the left of the Curve command button to "
-"change the method."
-msgstr ""
-"Gebogene Gleise können auf vier verschiedene Weisen erstellt werden:\n"
-" vom ersten Endpunkt in Richtung der Kurve\n"
-" vom Mittelpunkt des Gleisbogens zum ersten Endpunkt\n"
-" vom Endpunkt zum Mittelpunkt hin\n"
-" vom ersten zum zweiten Endpunkt\n"
-"Ziehen Sie dann an einem der beiden roten Pfeile, um die endgültige Kurve "
-"festzulegen.\n"
-"Die verschiedenen Methoden zur Gleisbogenerstellung können durch Anklicken "
-"des Knopfes rechts neben dem Kurvenknopf in der Werkzeugleiste ausgewählt "
-"werden ."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:582
-msgid ""
-"Track Circles provide a quick way to see what arrangement of tracks will fit "
-"in your layout spaces. Create Circles with your typical radius and place "
-"them in corners and other locations where your main-line will make changes "
-"of direction. This will give you an overall idea of how your layout will "
-"look.\n"
-"\n"
-"You can create Circles by:\n"
-" using a fixed radius\n"
-" dragging from the Center to edge\n"
-" dragging from an edge to the Center\n"
-"You can click on the small button to the left of the Circle command button "
-"to change the method."
-msgstr ""
-"Gleiskreise ermöglichen einen schnellen Weg die Aufteilung Ihres Gleisplans "
-"in den vorhanden Platz einzuteilen. Erstellen Sie Gleiskreise mit üblichen "
-"Radien und platzieren Sie diese in Ecken oder an beliebigen Stellen Ihres "
-"Hauptgleises an denen ein Richtungswechsel statt finden soll. Dies wird "
-"Ihnen helfen einen ersten Überblick von Ihrem gesamten Gleisplan zu "
-"erhalten.\n"
-"\n"
-"Gleiskreise können wie folgt erzeugt werden:\n"
-" mit einem festgelegten Radius\n"
-" durch ziehen aus der Mitte zur Kante\n"
-" durch ziehen von der Kante zur Mitte\n"
-"Die verschiedenen Methoden zur Gleiskreiserstellung können ausgewählt werden "
-"durch anklicken des Knopfes rechts neben dem Greisknopf in der "
-"Werkzeugleiste."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:583
-msgid ""
-"Easements (spiral transition curves) are used when track changes from "
-"straight to curved by gradually changing the radius. This improves "
-"operation and appearance.\n"
-"Easements are created with Joining or Extending Tracks.\n"
-"The Easement dialog is used to control easements."
-msgstr ""
-"Übergangsbögen werden benutzt wenn gerades Gleis stufenweise bei sich "
-"änderndem Radius in kurviges Gleis ändert, Dies verbessert die Benutzbarkeit "
-"und verschönert das Erscheinungsbild.\n"
-"Übergangsbögen werden erstellt indem sie an vorhandene Gleise angeängt "
-"werden.\n"
-"Die Schaltfläche \"Easement None\" wird verwendet um die Einstellungen für "
-"Übergangsbögen vornehmen zu können."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:584
-msgid ""
-"\"Help|Recent Messages\" shows the last error and warning messages that were "
-"generated by the program. Also an explanation of each message is displayed."
-msgstr ""
-"\"Hilfe|Letzte Mitteilungen\" zeigt die letzen Fehler/Warnungen an die vom "
-"Programm veruhrsacht wurden. Weiterhin wird eine Erklärung zu jeder Meldung "
-"angezeigt."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:585
-msgid ""
-"When creating stall tracks for a turntable, you usually want the the stall "
-"tracks to be spaced evenly.\n"
-"The \"Turntable Angle\" item on \"Options|Command Options\" dialog can be "
-"used specify the minimum angle between stall tracks."
-msgstr ""
-"Beim Anschluss von Endgleisen an eine Drehscheibe, möchte man diese "
-"üblicherweise gleichmäßig anschließen.\n"
-"Der Punkt \"Drehscheibenwinkel\" im Dialog \"Optionen|Einstellungen\" kann "
-"dazu benutzt werden den kleinst möglichen Winkel, beim Anschluss solcher "
-"Gleise einzustellen."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:586
-msgid ""
-"XTrackCAD periodically saves the current layout in a check point file. The "
-"'Check Point' item on the 'Options|Preferences' dialog controls how often "
-"the file is saved.\n"
-"You can recover your working file after a system crash by copying the "
-"checkpoint file (xtrkcad.ckp in the XTrackCAD Working directory) to file.xtc"
-msgstr ""
-"XTrackCAD sichert ständig ihre aktuelle Arbeit in eine temporäre Datei. Im "
-"Feld 'Sicherungskopie' unter dem Menüpunkt 'Optonen|Einstellungen' können "
-"Sie die Häufigkeit dieser automatischen Sicherung festlegen.\n"
-"Nach einem System/Programm Absturz kopieren Sie einfach die Datei xtrkcad."
-"ckp (im Arbeitsverzeichnis von XTrackCAD) nach <Geisplan>.xtc"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:587
-msgid ""
-"The Parallel command is helpful to layout yards and sidings. If the "
-"Parallel track abuts with an existing track, it is automatically connected."
-msgstr ""
-"Das Parallel Kommando ist nützlich um Bahnhöfe und Abstellgeise zu "
-"erstellen. Falls sich ein parallel Gleis mit einem existierenden Gleis fast "
-"berührt wird dieses automatisch verbunden."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:588
-msgid ""
-"You can use Shift-Drag in Select command to move and rotate selected "
-"tracks.\n"
-"Shift-Left-Drag moves tracks and Shift-Right-Drag rotates them.\n"
-"Control-Left-Drag can move labels."
-msgstr ""
-"Gleise können verschoben oder rotiert werden indem sie mit Hilfe des "
-"\"Ändern|Auswählen\" Kommandos ausgewählt werden und dann druch "
-"gleichzeitiges festhalten der Shift-Taste und einer Maustaste bewegt "
-"werden.\n"
-"Shift und linke Maustaste verschiebt ein Gleis.\n"
-"Shift und rechte Maustaste rotiert ein Gleis.\n"
-"Steuerung und linke Maustaste verschiebt Beschreibungen."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:589
-msgid ""
-"You can move and rotate the Snap Grid to align with existing track or "
-"benchwork."
-msgstr ""
-"Das Fangraster kann bewegt oder gedreht werden um es an Gleisen oder "
-"Aufbauten ausrichten zu können."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:590
-msgid ""
-"Use the Parts List command to measure track length.\n"
-"Select the tracks you want to measure and then click on the Parts List "
-"button. The report will list the total of length of the selected flex-"
-"track. You will have to add in the length of any Turnouts."
-msgstr ""
-"Der Dialog \"Verwalten|Teileliste\" kann dazu benutzt werden Gleislängen zu "
-"messen.\n"
-"Markieren Sie die zu messenden Gleise und wählen Sie den Teileliste Punkt. "
-"Die auftauchende Liste zeigt die Länge der ausgewählten Gleise an. Die Länge "
-"der Weichen muss hinzugezählt werden.\n"
-"Hinweis: Dies funktioniert nur für Flex-Gleise!"
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:591
-msgid ""
-"The length of flex-track attached to each Turnout is displayed on layout "
-"near the end-points of the Turnouts.\n"
-"Make sure 'Lengths' option of the 'Label Enable' toggle button on the "
-"Display dialog is selected."
-msgstr ""
-"Die Länge von Flex-Gleis welches mit Weichen verbunden ist wird in der Nähe "
-"des Endpunktes der Weiche angezeigt.\n"
-"Stellen Sie sicher das der Auswahlpunkt \"Längen\" im Dialog \"Optionen|"
-"Anzeige\" ausgewählt ist."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:592
-msgid ""
-"The Profile command can be used to find the length of a continous section of "
-"track.\n"
-"Select the track at the beginning and end of the section. The total length "
-"of track will be displayed on the Profile window in the lower right corner.\n"
-"Note: the Profile selects the shortest path between the two selected tracks, "
-"which might not be the path you are interested in. In this case, select the "
-"first track and then select other tracks along the path."
-msgstr ""
-"Das Kommando \"Höhenprofil\" im Menü \"Ändern\" kann dazu benutzt werden um "
-"die Länge einer zusammenhängenden Gleissektion heraus zu finden.\n"
-"Markieren Sie den Anfang und das Ende dieser Sektion. Die totale Länge "
-"dieser Gleissektion wird in der unteren rechten Ecke des Höhenprofil "
-"Fensters angezeigt.\n"
-"Hinweis: Das Höhenprofil wählt immer den kürzesten Weg zwischen beiden "
-"markierten Gleisen, möglicherweise ist dies aber nicht die Länge an der Sie "
-"interresiert sind. In diesem Fall wählen Sie einfach den gleichen Startpunkt "
-"und den nächst frührer möglichen Endpunkt aus."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:593
-msgid ""
-"Layers can be used to contain different groups of tracks or other features. "
-"You might use one layer for the main-line, another of staging tracks and "
-"another of benchwork.\n"
-"You can give each layer a name (by using the Layer dialog). This name will "
-"be displayed as the Balloon Help for the corresponding Layer button, if you "
-"have Balloon Help enabled on the Display dialog."
-msgstr ""
-"Ebenen können dazu benutzt werden um verschiedene Stockwerke oder Funktionen "
-"darstellen zu können. Eine Ebene kann z.B. für das Hauptgleis verwendet "
-"werden, eine weitere für Schattenbahnhöfe und eine weitere für Aufbauten und "
-"oder Tunnnel.\n"
-"Jeder Ebene kann ein Name über den \"Verwalten|Ebenen\" Dialog zugewiesen "
-"werden. Falls die Auswahl \"Sprechblasen\" im Menü \"Optionen|Einstellungen"
-"\" aktiviert wurde, wird dieser vergebene Name in der Werkzeugleiste für "
-"diese Ebene angezeigt."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:594
-msgid ""
-"You can remove groups of buttons or the Hot Bar from the Main window to give "
-"you more room if you are not using some features. Also, the number of Layer "
-"buttons displayed is controlled by the Layers dialog."
-msgstr ""
-"Die Werkzeugleiste kann über den Dialog \"Anzeige|Werkzeugleiste anpassen\" "
-"verändert werden um mehr Platz im Hauptfenster zur Verfügung zu stellen. Die "
-"Anzahl der Ebenenknöpfe wird über den Dialog \"Verwalten|Ebenen\" "
-"eingestellt."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:595
-msgid ""
-"The size of the Map window is controlled by the overall size of the room "
-"(specified on the Layout dialog) and the Map Scale (on the Display dialog). "
-"You can make the Map window larger (or smaller) by decreasing (or "
-"increasing) the Map Scale.\n"
-"XTrackCAD will prevent you from making the Map window too small or too large."
-msgstr ""
-"Die Größe des Kartenfensters wird in Abhängigkeit zur eingestellten "
-"Gesamtgröße des Raums kontrolliert. Die Gesamtgröße des Raums wird über den "
-"Dialog \"Optionen|Gleisplan\", der Maßstab des Kartenfensters über die "
-"Auswahl \"Kartenmaßstab\" im Dialog \"Optionen|Anzeige\" eingestellt. Die "
-"Größe des Kartenfensters kann verändert werden, indem der Wert für "
-"Kartenmaßstab entweder erhöht oder verkleinert wird.\n"
-"XTrackCAD lässt keine zu kleinen/großen Werte für das Kartenfenster zu."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:596
-msgid ""
-"You can unload parameter files you are not using by the Parameter Files "
-"dialog. This removes unused Turnout and Structure definitions from the Hot "
-"Bar and makes the program start faster."
-msgstr ""
-"Damit Gleise in der Schnellauswahl auftauchen ist es nötig eine Gleis "
-"Parameterdatei für Ihren Gleisplan zu laden, im Dialog \"Datei|"
-"Parameterdateien\" können Sie die für Ihr Gleis nötige Parameterdatei laden. "
-"Nicht mehr benötigte Parameterdateien können über den gleichen Dialog "
-"entladen werden. Hierdurch werden nicht mehr benötigte Weichen/Gleise von "
-"der Schnellauswahl gelöscht was das Programm schneller starten läßt."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:597
-msgid ""
-"Right-Click on the Main window displays a menu list of commands as an "
-"alternative to pressing the buttons on the tool bar or using the menu "
-"accelerator keys."
-msgstr ""
-"alternativ zur Werkzeugleiste oder den Menütasten kann durch rechts Klick im "
-"Hauptfenster ein weiteres Kommando Menü benutzt werden."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:598
-msgid ""
-"Holding down the Shift key while you Right-Click will display options for "
-"the current command (if any)."
-msgstr ""
-"Bleibt die Shift Taste gedrückt während Sie ein Kommando ausgewählt haben "
-"werden (wenn vorhanden) Optionen für dieses Kommando angezeigt."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:599
-msgid ""
-"Right-Click on the Hot Bar displays a menu of the different groups of "
-"objects which you can use to jump to the group you are interested in.\n"
-"Pressing a numeric key (1-9 and 0) moves the Hot Bar to corresponding "
-"position (1 is the start, 5 is half way, 0 is the end)."
-msgstr ""
-"Rechts Klick in der Schnellauswahl öffnet ein Menü mit verschiedenen "
-"Objektgruppen, diese können benutzt werden um schnell zu dieser Art von "
-"Gleisen zu springen.\n"
-"Durch drücken von Zahlen in der Schnellauswahl (1-9 und 0) kann auch die "
-"entsprechende Position der Gleisauswahl geändert werden, hierbei "
-"kennzeichnet 1 die erste Gleisauswahl, 5 gibt die Mitte der Auswahl an und 0 "
-"das Ende."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:600
-msgid ""
-"Right-Drag on the Map window sets the origin and scale of the Main window.\n"
-"The Main window will be centered on the spot where you started the Draw and "
-"how far you Drag will control how large an area you can see on the Main "
-"window."
-msgstr ""
-"Durch ziehen mit der rechten Maustaste im Kartenfenster wird der Focus und "
-"Maßstab im Hauptfenster eingestellt.\n"
-"Das Hauptfenster wird hierbei aufgrund der markierten Auswahl im "
-"Kartenfenster zentriert dargestellt."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:601
-msgid ""
-"To refresh the Main window, press Control-L (hold down the 'Ctrl' key and "
-"then press the 'l' key)."
-msgstr ""
-"Um die Darstellung im Hauptfenster zu erneuern, benutzen Sie Strg+L (halten "
-"Die die Steuernung Taste gedrückt und tippen Sie den Buchstaben 'l')."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:602
-msgid ""
-"The File menu contains a list of the last 5 layouts you were working on."
-msgstr ""
-"Der Dialog \"Datei\" enthält eine Liste der letzten 5 Gleispläne die Sie "
-"geöffnet hatten."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:603
-msgid ""
-"The Print command can optionally print lines representing the roadbed for "
-"all tracks. This is useful when printing full size (1:1) for cutting "
-"roadbed."
-msgstr ""
-"Im \"Drucken\" Dialog kann, die Auswahl \"Gleisbettung drucken\" ausgewählt "
-"werden, um im (1:1) Maßstab Gleisbettvorlagen ausdrucken zu können."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:604
-msgid ""
-"Pressing the 'Esc' key cancels the current command and invokes the default "
-"command, (which is either Describe or Select)."
-msgstr ""
-"Durch drücken der 'ESC' Taste wird der momentane Befehl abgebrochen und "
-"automatisch der Standardbefehl aktiviert, (was entweder Eigenschaften oder "
-"Auswählen ist)."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:605
-msgid ""
-"When moving or rotating tracks on slow machines or with a large number of "
-"tracks, you can improve performance by changing the way tracks are drawn "
-"while being moved.\n"
-"Shift-Right click will display a menu containing options to draw tracks "
-"normally, as simple lines or just draw end-points."
-msgstr ""
-"Auf langsamen Computern oder bei hoher Anzahl von Gleisen, kann die Art und "
-"Weise wie Gleise neu gezeichnet werden verändert werden.\n"
-"Nachdem Gleise markiert wurden, kann durch festhalten der Shift-Taste und "
-"einem rechts Klick mit der Maus in einem Options Menü ausgewählt werden wie "
-"die Gleise dargestellt werden sollen: Normal, Einfach oder nur als Endpunkte."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:606
-msgid ""
-"The colors of different parts of the Main window can be changed with the "
-"Colors dialog. In particular, the Snap Grid color can be changed to make it "
-"more visible when printed."
-msgstr ""
-"Farben der verschiedenen Baugruppen im Hauptfenster können über den Dialog "
-"\"Optionen|Farben\" verändert werden. Im Besonderen kann die Farbe des "
-"Fangrasters geändert werden um es beim ausdrucken besser sichtbar machen zu "
-"können."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:607
-msgid ""
-"By default objects are drawn in their normal colors. Tracks will be drawn "
-"in Black. Objects can also be drawn in the color according to their Layer. "
-"The color of a Layer is displayed on the corresponding Layer button.\n"
-"The Display dialog 'Color Layers' item has separate toggles for Tracks and "
-"non-Tracks."
-msgstr ""
-"Üblicherweise werden Objekte in Ihren voreingestellten Farben gezeichnet. "
-"Gleise werden in schwarz dargestellt. Objekte können in den Farben ihrer "
-"jeweiligen Ebenen dargestellt werden. Die Farbe einer Ebene wird auf ihrem "
-"zugehörigen Ebenenknopf angezeigt.\n"
-"Die Auswahl \"Ebenenfarben\" im Dialog \"Optionen|Anzeige\" besitzt jeweils "
-"für Gleise und Sonstige eine getrente Möglichkeit zur Aktivierung von Farben."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:608
-msgid ""
-"Each Layer can be drawn or hidden by the 'Visible' toggle on the Layers "
-"dialog. "
-msgstr ""
-"Jede Ebene kann im Dialog \"Verwalten|Ebenen\" verborgen oder angezeigt "
-"werden."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:609
-msgid ""
-"Short cut Layer buttons can also be displayed on the tool bar for up to the "
-"first 20 layers.\n"
-"This buttons allow to Show or Hide the layers."
-msgstr ""
-"Ebenenknöpfe können für die ersten 20 Ebenen in der Werkzeugleiste "
-"dargestellt werden, diese Nummernknöpfe können dazu benutzt werden um Ebenen "
-"zu verbergen oder anzuzeigen."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:610
-msgid "The name of the Layer is the Balloon Help for the Layer button."
-msgstr ""
-"Der Name einer Ebene wird in der Sprechblase der jeweiligen Ebene angezeigt."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:611
-msgid ""
-"The playback speed of the Demos can be changed by using Speed drop down list "
-"on the Demo window."
-msgstr ""
-"Die Wiedergabegeschwindigkeit von Demos kann durch den Auswahlreiter rechts "
-"oben im Demo Fenster eingestellt werden."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:612
-msgid ""
-"Many of the commands and dialogs can be invoked by special key combinations "
-"called Menu-Accelerators. These are listed on the Menus next to the command "
-"name. For example, Control-P will invoke the Print command."
-msgstr ""
-"Viele Kommandos oder Menü Dialoge können über Tastaturkürzel aufgerufen "
-"werden. Diese Kürzel werden rechts (wenn verfügbar) neben jedem Kommando "
-"angezeigt. Zum Beispiel: Strg+P im Menü \"Datei|Drucke\" ruft den Drucken "
-"Dialog auf."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:613
-msgid ""
-"The Connect command is used to join Sectional track pieces that don't quite "
-"fit together.\n"
-"This command works by adding small gaps between other tracks to move the "
-"selected End-Points closer together."
-msgstr ""
-"Das \"Gleisstücke verbinden\" Kommando im Dialog \"Ändern\" wird verwendet "
-"um Gleisstücke die nicht verbunden sind miteinander zu verbinden. Dies wird "
-"erreicht indem kleine Lücken bei andern Gleisen eingefügt werden damit die "
-"beiden Endpunkte miteinander verbunden werden können."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:614
-msgid ""
-"To copy a group of objects: Select the objects, press Control-C (or select "
-"Copy from the Edit menu), press Control-V (or select Paste from the Edit "
-"menu).\n"
-"The selected tracks will be copied to the layout and you can Move or Rotate "
-"them into position."
-msgstr ""
-"Um eine Gruppe von Objekten zu kopieren: Selektieren Sie diese, drücken Sie "
-"Strg+C (oder wählen Sie \"Kopieren\" im Menü \"Bearbeiten\" aus), drücken "
-"Sie Strg+V (oder wählen Sie \"Einfügen\" im Menü \"Bearbeiten\" aus).\n"
-"Die kopierten Objekte werden in den Gleisplan eingefügt und können dann "
-"verschoben oder rotiert werden und somit in Position gebracht werden."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:615
-msgid ""
-"In the Rotate (or Select) commands you can press Shift-Right-Click to "
-"display the Rotate menu which allows you to rotate the selected objects by a "
-"specific angle."
-msgstr ""
-"Bei Benutzung der Kommandos \"Rotieren\" oder \"Auswählen\" kann durch "
-"gedrückt halten der Shift-Taste und rechts Klick mit der Maustaste in einem "
-"auftauchenden Optionsmenü der Winkel zum rotieren eines Objekts ausgewählt "
-"werden."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:616
-msgid ""
-"You can use the Move-To-Join option of the Join command (hold down the Shift "
-"key) to move a group of Selected tracks to attach with some unselected End-"
-"Point."
-msgstr ""
-"Das \"Verbinden\" Kommando im Menü \"Ändern\" besitzt eine Option um eine "
-"Gruppe von ausgewählten Gleisen mit einem nicht vorher spezifizierten "
-"Endpunkt verbinden zu können. Markieren Sie zunächst die zu verbindenen "
-"Gleise, wählen Sie als nächstes den Dialog \"Ändern|Verbinden\", halten Sie "
-"nun die Shift-Taste gedrückt während Sie bei gedrückter linker Maustaste die "
-"markierte Gruppe von Gleisen zum Zielpunkt führen, durch nochmaliges drücken "
-"der linken Maustaste werden die selektierten Gleise dem Endpunkt hinzugefügt."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:617
-msgid ""
-"The Price List dialog (on the File Menu) is used to specify the prices of "
-"each type of Turnout, Sectional Track and Structure. Also, the length and "
-"price of flex-track pieces can be specified for each scale.\n"
-"This values will be used on the Parts List report to generate total cost of "
-"the selected objects."
-msgstr ""
-"Der Dialog \"Verwalten|Preisliste\" kann verwendet werden, um Preise für "
-"jedes Gleis, Weiche oder andere Gegenstände einzugeben. Weiterhin können "
-"auch Länge und Preis für Flex-Gleise für jeden beliebigen Maßstab eingegeben "
-"werden.\n"
-"Die angegebenen Preise werden verwendet um die Gesamtkosten im Dialog "
-"\"Verwalten|Teileliste\" auflisten zu können."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:618
-msgid ""
-"Areas of water can represented by a Polygon (use the Draw command) of the "
-"appropiate color.\n"
-"By using the Modify command, you can move, add or remove corners of the "
-"Polygon to fit the shape of the water.\n"
-"You use the Below command to place the Polygon below (or behind) other "
-"objects.\n"
-"\n"
-"You can also use a Polygon to represent aisles. "
-msgstr ""
-"Wasserbereiche können durch Polygone mit Hilfe des \"Zeichnen|Formen|Zeichne "
-"Polyline\" in der entspechenden Farbe erstellt werden.\n"
-"Das \"Verändern\" Kommando kann benutzt werden um Ecken an diesen Polygonen "
-"hinzu zu fügen oder zu löschen um diese besser der Form des Wassers anpassen "
-"zu können.\n"
-"\n"
-"Polylinien können auch dazu verwendet werden um Flussläufe darzustellen."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:619
-msgid ""
-"When you create Benchwork you can move it below other objects by Selecting "
-"the Benchwork and use the Below command.\n"
-"Also, put Benchwork in a separate Layer so you can hide it if desired."
-msgstr ""
-"erstellte Aufbauten können unter andere Objekte verschoben werden, indem man "
-"das \"Darunter\" Kommando aus dem Menü \"Bearbeiten\" verwendet.\n"
-"Weiterhin sollten Sie Aufbauten auf speraten Ebenen darstellen, sie können "
-"somit sehr leicht im Bedarfsfall versteckt werden, indem man die zugehöhrige "
-"Ebene einfach ein oder ausblendet."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:620
-msgid ""
-"You can enter Distances and Lengths using any format regardless of the "
-"Length Format on the Preferences dialog."
-msgstr ""
-"Längen können unabhänig der voreingestellten Werte im \"Optionen|"
-"Einstellungen\" Dialog eingegeben werden."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:621
-msgid ""
-"You can enter Metric values when English is the default Units and vice versa."
-msgstr ""
-"Metrische Werte können eingegeben werden auch wenn die Einstellung für "
-"Einheiten Englisch gewählt ist."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:622
-msgid ""
-"When entering Distances and Lengths you can press the '=' key to redisplay "
-"the value in the default format."
-msgstr ""
-"Bei Eingabe von Entfernungen und Längen können Sie '=' Zeichen verwenden um "
-"den Wert im voreingestellten Format anzuzeigen."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:623
-msgid ""
-"You can also press the 's' key to convert a Prototype measurement to a Scale "
-"measurement y dividing by the ratio for the current scale."
-msgstr ""
-"Sie können die Taste 's' benutzen um eine Muster Messung in eine Maßstab "
-"Messung zu verwandeln, die Taste 'y' gibt hierbei den Teiler Faktor des "
-"momentanen Maßstabs an."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:624
-msgid ""
-"The 'p' key will convert a Scale measurement to a Prototype measurement."
-msgstr "Die Taste 'p' konvertiert eine Maßstab Messung in eine Muster Messung."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:625
-msgid ""
-"You can place cars on the layout using the Train Simulation command to check "
-"clearance points, track to track separation and coupling."
-msgstr ""
-"Lokomotiven können im Gleisplan über den Zugbetrieb Knopf plaziert werden um "
-"Weichenübergänge, Gleis zu Gleis Verbindungen oder ankuppeln simulieren zu "
-"können."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:626
-msgid ""
-"Use the MoveTo button on the Custom Management dialog to move your custom "
-"Turnout, Structure and Car definitions to a .XTP parameter file."
-msgstr ""
-"Benutzen Sie den \"Verschieben nach\" Knopf im \"Verwalten|Anpassungs "
-"Verwaltung\" Menü um selbst erstellte Weichen, Strukturen oder Wagen "
-"Definitionen in eine .XTP Parameter Datei zu verschieben."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:627
-msgid ""
-"If you are printing multiple pages on a continuous feed printer (such a Dot "
-"Matrix) you can change the Page Order if necessary to print pages out in "
-"proper order."
-msgstr ""
-"Falls Sie einen Drucker mit endlos Papier verwenden, können Sie die "
-"Reihenfolge der Seiten ändern um diese in der richtigen Reihenfolge "
-"auszudrucken."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:628
-msgid ""
-"On the Car Item and Car Part dialogs, you can enter custom values for "
-"Manufacturer, Part and Road by typing the new value directly into the Drop "
-"Down List."
-msgstr ""
-"Im Dialog \"Verwalten|Wagenverzeichnis\" können eigene Werte für Hersteller, "
-"Artikelnummer und Straße direkt in der angezeigten Liste eingegeben werden."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:629
-msgid ""
-"On the Car Item dialog, you can change the Road, Number, Color and other "
-"values for a Car. This is useful if you repaint or renumber a car. \n"
-"You can also change the Coupler Mounting and Coupler Length if you change "
-"the couplers."
-msgstr ""
-"Im Dialog \"Verwalten|Wagenverzeichnis\" können eigene Werte für Zugnummern, "
-"Farbe und andere Werte vergeben werden. Dies is nützlich wenn Sie "
-"beispielsweise einen Wagen umlackiert oder eine neue Rollnummer vergeben "
-"haben. \n"
-"Weiterhin kann die Kupplungsaufhängung und auch deren Länge verändert werden."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:630
-msgid ""
-"You can Export your Car Inventory to a file in Comma-Separated-Value format "
-"which can be read by most spread-sheet programs."
-msgstr ""
-"Ihr Wagen/Lokbestand kann in eine, druch Kommata getrennte, Textdatei "
-"exportiert werden, welche von allen gänigen Tabellenkalkulations Programmen "
-"eingelesen werden kann."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:631
-msgid "Use the Train Odometer to measure distances along the track."
-msgstr ""
-"Benutzen Sie den Zugsteckenzähler um Entfernungen auf dem Gleis messen zu "
-"können."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:632
-msgid ""
-"Holding down the Shift key when clicking the Zoom In or Zoom Out button will "
-"zoom to a programmed Drawing Scale. \n"
-"Holding down the Shift and Control keys when clicking a Zoom button will set "
-"it's program Zoom to the current Drawing Scale."
-msgstr ""
-"klicken Sie die Lupenknöpfe an während die Shift Taste gedrückt ist "
-"focusiert das Programm auf einen vorher festgelegten Maßstab. \n"
-"durch gleichzeitiges Festhalten der Strg + Shift Tasten kann durch anklicken "
-"der jeweiligen Lupenknöpfe wird die Einstellung der Vergrößer/kleinerung "
-"festgelegt."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:633
-msgid ""
-"You can trim the ends of turnouts by holding down the Shift key when using "
-"the Split command."
-msgstr ""
-"bei Benutzung des \"Gleis auftrennen\" Kommandos, kann man durch festhalten "
-"der Shift Taste das Ende einer Weiche anpassen."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:634
-msgid ""
-"The Split command can be used to create Block Gaps at end points between two "
-"tracks. \n"
-"Either rail or both rails can be gapped, which are drawn as thick lines."
-msgstr ""
-"Der Dialog \"Ändern|Gleis auftrennen\" kann benutzt werden um Blockabstände "
-"an Endpunkten von zwei Gleisen einzufügen. \n"
-"Abstände können entweder an einem oder beiden Enden eingefügt werden, diese "
-"werden durch dicke Linien gekennzeichnet."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:635
-msgid ""
-"Trains will 'crash' if they hit another car when travelling faster than the "
-"'Max Coupling Speed' (on the Command Options dialog). \n"
-"They will also 'crash' if they hit the end of the track or an open "
-"turnout. \n"
-"Crashed trains must be manually moved back onto the track."
-msgstr ""
-"Züge 'entgleisen' wenn sie auf ein anderes Fahrzeug treffen oder sie beim "
-"Ankuppeln schneller unterwegs sind wie die maximal eingestellte "
-"Kuppelgeschwindigkeit (einstellbar über \"Optionen|Einstellungen\"). \n"
-"Außerdem werden sie 'entgleisen' sobald sie auf ein totes Gleisende oder "
-"eine offene Weiche treffen. \n"
-"Entgleiste Züge müssen von Hand wieder auf das Gleis zurück gestellt werden."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:636
-msgid ""
-"You can add new track segments to a turnout definition or create a "
-"definition from individual tracks using the Group command."
-msgstr ""
-"das Auswählen Kommando kann verwendet werden um Teilabschnitte an "
-"vorhandenes Gleis anzuhängen oder einen neuen Teilabschnitt zu erstellen "
-"indem einzelne Gleise zusammengeführt werden."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:637
-msgid ""
-"The center point and radius of Curved and Circle tracks can optionally be "
-"drawn. \n"
-"This feature is toggled by using the Move Label command and doing a Shift-"
-"Left-Click on the track."
-msgstr ""
-"Der Mittelpunkt von Kurven oder Kreisen kann auch angezeigt werden. \n"
-"Diese Option kann ein/ausgeschaltet werden durch festhalten der Shift Taste "
-"bei gleichzeitigem links Klick der Maus."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:638
-msgid ""
-"Turnout, Curved and Helix track labels can be individually turned on and off "
-"by doing a Shift-Right-Click on the track when using the Move Label command."
-msgstr ""
-"Weichen, Kurven und Gleiswendel Beschreibungen können einzeln an und aus "
-"geschaltet werden. Halten Sie hierzu die Shift Taste gedrückt während Sie "
-"das Kommando \"Ändern|Beschreibungen verschieben\" verwenden und klicken Sie "
-"mit der rechten Maustaste auf die jeweilige Beschreibung."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:639
-msgid ""
-"You can use the Describe command to change the font size of Text objects."
-msgstr ""
-"Das Kommando \"Ändern|Eigenschaften\" wird verwendet um die Schriftgröße von "
-"Textobjekten zu ändern."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:640
-msgid ""
-"You can use the Describe command to change the size of Dimension Line labels."
-msgstr ""
-"Das Kommando \"Ändern|Eigenschaften\" wird verwendet um die Größe von "
-"Dimensions Linien Beschreibungen zu ändern."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:641
-msgid ""
-"Normally Right-Click displays a popup menu of commands and Shift-Right-Click "
-"displays options for the current command. \n"
-"This can reversed by using the Right Click toggle button on the Command "
-"Options dialog."
-msgstr ""
-"normalerweise wird durch einen rechts Klick im Gleisplan ein Kommando Menü "
-"angezeigt, bei festhalten der Shift-Taste und einem vorher ausgewählten "
-"Kommando wird ein optionales Menü für das jeweilige Kommando angezeigt. \n"
-"Dieses Verhalten kann vertauscht werden indem der rechts Umschalter aus dem "
-"Kommando Dialog verwendet wird."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:642
-msgid ""
-"The Align item on the Rotate command options menu will let you Align "
-"selected objects with any unselected object. \n"
-"The selected objects are rotated so the first point is parallel to the "
-"second point you selected."
-msgstr ""
-"Die Auswahl \"Ausrichten\" im Optionsmenü des \"Drehen\" Kommandos kann "
-"ausgewählte Objekte an nicht ausgewählten Objekten ausrichten. \n"
-"Die ausgewählten Objekte werden so rotiert dass der erste Auswahlpunkt "
-"parallel zum zweiten Auswahlpunkt erscheint."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:643
-msgid ""
-"Print To Bitmap allows you to print the track center line. \n"
-"This is useful if you later print the bitmap full size as a template when "
-"laying track."
-msgstr ""
-"Speichern als Bitmap ermöglicht das mitspeichern der Gleismitte. \n"
-"Dies ist nützlich falls Sie später diese Bitmap in voller Größe ausdrucken "
-"wollen um sie als Gleisvorlage verwenden zu können."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:644
-msgid ""
-"You can export the selected tracks to a DXF file which can be read by most "
-"CAD programs."
-msgstr ""
-"Sie können markierte Gleise in eine DXF Datei exportieren, welche von den "
-"meisten CAD Programmen lesbar ist."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:645
-msgid ""
-"Lengths and distances can be displayed in a variety of units and formats "
-"such as 1' 10 3/4\", 1ft 10.75in or 22.750. In Metric mode, distances can "
-"be displayed as millimeters, centimeters or meters. See the Length Format "
-"item on the Preferences dialog."
-msgstr ""
-"Längen und Entfernungen können in einer Vielzahl von Einheiten und Formaten "
-"dargestellt werden dies sind z.B 1' 10 3/4\" 10.75in oder 22.750. Bei der "
-"Auswahl von metrischen Einheiten werden Entfernungen und Längen in "
-"Millimetern, Zentimetern oder Metern dargestellt. Diese Einstellung kann in "
-"der Auswahl \"Einheiten\" im Dialog \"Optionen|Einstellungen\" vorgenommen "
-"werden."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:646
-msgid ""
-"Tracks that are too steep or curve too tightly are drawn in the Expection "
-"color (Purple by default). \n"
-"This helps to identify potential problem areas. \n"
-"The maximum grade and minimum radius are set on the Preferences dialog."
-msgstr ""
-"Gleise die zu abschüssig sind oder zu enge Radien haben werden in einer "
-"Ausnahme Farbe dargestellt (üblicherweise Lila). \n"
-"Dies hilft um Problembereiche aufzufinden. \n"
-"Die maximale Steigung und der minimale Radius werden im Eingenschaften "
-"Dialog eingestellt."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:647
-msgid ""
-"The Flip command produces a mirror-image of the selected tracks. \n"
-"If possible, right-hand turnouts are relabeled as left-hand turnouts (and "
-"vice versa)."
-msgstr ""
-"Das \"Spiegeln\" Kommando im Menü \"Ändern\" spiegelt ausgewählte "
-"Gleise. \n"
-"Falls möglich werden rechte Weichen in linke Weichen umbenannt oder linke in "
-"rechte."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:648
-msgid ""
-"Then Ungroup command will break turnouts and structures into individual "
-"track, line and shape segments. \n"
-"You can modify each segment and add new ones. \n"
-"Then use the Group command to update the definition."
-msgstr ""
-"Das Kommando \"Verwalten|Gruppierung aufheben\" trennt Weichen und oder "
-"Strukturen in einzelne Gleise, Linien oder Segmente auf. \n"
-"Sie können nun jedes einzelne Segment modifizieren neue hinzufügen usw. \n"
-"Danach benutzen Sie das Kommando \"Verwalten|Gruppieren\" um Ihre neue "
-"Definition wieder als Gruppierung zusammen zu fügen."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:649
-msgid "Dimension lines show the distance between two points."
-msgstr "Maßlinien zeigen die Entfernung zwischen zwei Punkten an."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:650
-msgid ""
-"A variety of Benchwork (rectangular, L-girder and T-girder) can be drawn. \n"
-"Use the Below command to move the Benchwork below the track for proper "
-"display."
-msgstr ""
-"Eine Vielzahl Unterbauten kann dargestellt werden (Rechteckformen, L-Träger "
-"und T-Träger). \n"
-"Das Kommando \"Darunter\" im Menü \"Bearbeiten\" wird benutzt um Unterbauten "
-"korrekt unter den Gleise darstellen zu können."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:651
-msgid ""
-"The Turnout Designer dialogs allow you to specify the width of any attached "
-"roadbed. \n"
-"As well, the color and thickness of the lines used to represent the roadbed "
-"can be specified."
-msgstr ""
-"Der Weichendesigner ermöglicht die Angabe der Spurbreite von jedem "
-"beliebigen Gleisbett. \n"
-"Desweitern können Farbe und Stärke der Linien angegeben in denen das "
-"Gleisbett dargestellt wird."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:652
-msgid ""
-"The Color dialog (on the Options menu) is used to change the color of "
-"different objects on the display. \n"
-"You can change the color of the Snap Grid and Borders, as well as Normal, "
-"Selected and Exception tracks."
-msgstr ""
-"Der Dialog \"Optionen|Farben\" wird benutzt um die Farben für verschiedene "
-"Objekte einzustellen. \n"
-"Die Farbe des Fangrasters, Ränder sowohl als auch für normale selektierte "
-"und Ausnahme Gleise können angegeben werden."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:653
-msgid ""
-"You can draw tracks with wider lines for rails. \n"
-"Select the tracks and use Medium or Thick Tracks on the Edit menu."
-msgstr ""
-"Schienen können mit breiteren Linien für Gleise gezeichnet werden. \n"
-"Wählen Sie hierzu Mittlere Gleise oder Dicke Gleise im Bearbeiten Menü aus."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:654
-msgid ""
-"Many objects on the layout have labels: Turnouts/Helix/Curved Titles, Track "
-"Lenghts, End-Point Elevations, Track Elevations and Cars. \n"
-"You can turn these labels on or off with the Label Enable toggle buttons on "
-"the Display options dialog."
-msgstr ""
-"Viele Objekte im Gleisplan besitzen Beschreibungen: Weichen/Gleiswendel/"
-"Kurven Gleislängen Endpunkte Höhenangaben usw. \n"
-"Sie können diese Beschreibungen über den Dialog \"Optionen|Anzeige\" ein "
-"oder ausschalten."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:655
-msgid ""
-"If you hold down the Control key when using the Rotate command, the rotation "
-"will be down in increments of 15°."
-msgstr ""
-"Durch festhalten der Strg Taste wird beim Drehen Kommando, die Rotation um "
-"jeweils 15° verringert."
-
-#: ../../../build/xtc_4-2-3dev/app/i18n/custmsg.h:656
-msgid ""
-"When using the Rotate command, Shift-Right-Click displays a menu allowing "
-"you to rotate by specific amounts or to align the selected objects with "
-"another object."
-msgstr ""
-"Beim Benutzen des Befehls <Drehen> kann durch Halten der Umschalt-Taste aus "
-"einem Menü der Drehwinkel des Objektes ausgewählt werden oder das Objekt "
-"kann anhand eines anderen Objektes ausgerichtet werden."
-
-#~ msgid "Page %d"
-#~ msgstr "Seite %d"
-
-#~ msgid "Print to file ..."
-#~ msgstr "In Datei drucken..."
-
-#~ msgid "No file name specified"
-#~ msgstr "Kein Dateiname angegeben"
-
-#~ msgid "%s exists"
-#~ msgstr "%s existiert bereits"
-
-#~ msgid "Overwrite"
-#~ msgstr "Ãœberschreiben"
-
-#~ msgid ": cannot open"
-#~ msgstr ": kann nicht geöffnet werden"
-
-#~ msgid "Page 1"
-#~ msgstr "Seite 1"
-
-#~ msgid "Printer Margin Test Page"
-#~ msgstr "Testseite für Druckränder"
-
-#~ msgid "Enter both printer name and command"
-#~ msgstr "Druckername und Befehl eingeben"
-
-#~ msgid "Can not save New Printer definition"
-#~ msgstr "Neue Druckerdefinition kann nicht gespeichert werden"
-
-#~ msgid "Enter printer name"
-#~ msgstr "Druckername eingeben"
-
-#~ msgid "Can not save New Margin definition"
-#~ msgstr "Seitendefinition kann nicht gespeichert werden"
-
-#~ msgid "Paper Size"
-#~ msgstr "Papiergrösse"
-
-#~ msgid "Printer"
-#~ msgstr "Drucker"
-
-#~ msgid "Margin"
-#~ msgstr "Rand"
-
-#~ msgid "Format"
-#~ msgstr "Format"
-
-#~ msgid "X Font"
-#~ msgstr "X Schriftart"
-
-#~ msgid "PS Font"
-#~ msgstr "PS Schriftart"
-
-#~ msgid "Factor"
-#~ msgstr "Faktor"
-
-#~ msgid "Print Test Page"
-#~ msgstr "Drucke Testseite"
-
-#~ msgid "Add Printer"
-#~ msgstr "Drucker hinzufügen"
-
-#~ msgid "Name: "
-#~ msgstr "Name: "
-
-#~ msgid "Command: "
-#~ msgstr "Befehl: "
-
-#~ msgid "Add Margin"
-#~ msgstr "Rand hinzufügen"
-
-#~ msgid "Print To File"
-#~ msgstr "In Datei drucken"
-
-#~ msgid "File Name? "
-#~ msgstr "Dateiname? "
-
-#~ msgid "Font Alias"
-#~ msgstr "Alias für Schriftart"
-
-#~ msgid "Enter a post-script font name for:"
-#~ msgstr "Eingabe der Postscript Schriftart für:"
-
-#~ msgid "Printing"
-#~ msgstr "Drucke"
-
-#~ msgid "Now printing"
-#~ msgstr "Druck läuft"
-
-#~ msgid "Abort Print"
-#~ msgstr "Druck abbrechen"
-
-#~ msgid ""
-#~ " exists\n"
-#~ "Do you want to overwrite it?"
-#~ msgstr ""
-#~ "existiert.\n"
-#~ "Wollen Sie diese überschreiben?"
-
-#, fuzzy
-#~ msgid "Delete Switch motor"
-#~ msgstr "Weichenantrieb löschen"
-
-#~ msgid "Switch Motor"
-#~ msgstr "Weichenantrieb"
-
-#~ msgid "Not a SwitchMotor!"
-#~ msgstr "Kein Weichenantrieb!"
-
-#~ msgid "Custom Update"
-#~ msgstr "Anpassungen hinzufügen"
-
-#~ msgid "No font selected"
-#~ msgstr "Keine Schriftart ausgewählt"
-
-#~ msgid "No fonts"
-#~ msgstr "Keine Schriftarten"
-
-#~ msgid ""
-#~ "Can't find standard Serif font.\n"
-#~ "Please choose a font"
-#~ msgstr ""
-#~ "Die Standardschriftart für Serif kann nicht gefunden werden.\n"
-#~ "Bitte wählen Sie eine Schriftart aus"
-
-#~ msgid ""
-#~ "Can't find standard San-Serif font.\n"
-#~ "Please choose a font"
-#~ msgstr ""
-#~ "Die Standardschriftart für Sans-Serif kann nicht gefunden werden.\n"
-#~ "Bitte wählen Sie eine Schriftart aus"
-
-#~ msgid "XTrackCAD Help"
-#~ msgstr "XTrackCAD Hilfe"
-
-#~ msgid "Now printing %s"
-#~ msgstr "Drucke %s"
-
-#~ msgid "Creating %s"
-#~ msgstr "Erzeuge %s"
-
-#~ msgid "Scale / Gauge"
-#~ msgstr "Maßstab / Spurweite"
-
-#~ msgid "load last layout"
-#~ msgstr "Letzten Plan laden"
-
-#~ msgid "start with blank layout"
-#~ msgstr "Mit leerem Plan beginnen"
+msgid ""
+msgstr ""
+"Project-Id-Version: xtrkcad 4.1.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-03-10 17:39+0100\n"
+"PO-Revision-Date: 2018-03-10 17:42+0100\n"
+"Last-Translator: \n"
+"Language-Team: German <m_fischer@users.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: de\n"
+"X-Generator: Poedit 1.8.1\n"
+
+#: ../bin/cbezier.c:589
+msgid "Select End-Point - Ctrl unlocks end-point"
+msgstr "Endpunkt auswählen - Strg entsperrt den Endpunkt"
+
+#: ../bin/cbezier.c:591 ../bin/ccornu.c:519 ../bin/celev.c:418
+msgid "Select End-Point"
+msgstr "Endpunkt auswählen"
+
+#: ../bin/cbezier.c:612
+msgid "Not close enough to any valid, selectable point, reselect"
+msgstr ""
+"Nicht nahe genug an einem gültigen, wählbaren Punkt, bitte einen anderen "
+"auswählen"
+
+#: ../bin/cbezier.c:618 ../bin/ccornu.c:546
+#, c-format
+msgid "Drag point %d to new location and release it"
+msgstr "Den Punkt %d an die neue Stelle verschieben und loslassen"
+
+#: ../bin/cbezier.c:628 ../bin/cbezier.c:721 ../bin/cbezier.c:723
+msgid "Pick any circle to adjust it - Enter to confirm, ESC to abort"
+msgstr ""
+"Einen beliebeigen Kreis zum Ändern auswählen - Mit der Eingabetaste "
+"bestätigen, mit ESC abbrechen."
+
+#: ../bin/cbezier.c:651
+msgid "Bezier Curve Invalid has identical end points Change End Point"
+msgstr ""
+"Die Endpunkte der Bezierkurve sind identisch. Bitte einen Endpunkt ändern."
+
+#: ../bin/cbezier.c:654
+#, c-format
+msgid "Bezier Curve Invalid has %s Change End Point"
+msgstr "Ungültige Bezier-Curve (%s). Bitte den Endpunkt ändern."
+
+#: ../bin/cbezier.c:657
+msgid "Bezier Curve Invalid has three co-incident points"
+msgstr ""
+"Die ungültige Bezier-Kurve hat drei übereinstimmende Punkte - bitte anpassen."
+
+#: ../bin/cbezier.c:659
+msgid "Bezier is Straight Line"
+msgstr "Bezier ist eine gerade Linie"
+
+#: ../bin/cbezier.c:661
+#, c-format
+msgid "Bezier %s : Min Radius=%s Length=%s fx=%0.3f fy=%0.3f cusp=%0.3f"
+msgstr ""
+"Bezier %s: Kleinester Radius=%s, Länge=%s, fx=%0.3f fy=%0.3f cusp=%0.3f"
+
+#: ../bin/cbezier.c:665
+#, c-format
+msgid "Bezier %s : Min Radius=%s Length=%s"
+msgstr "Bezier %s : Mindestradius=%s Länge=%s"
+
+#: ../bin/cbezier.c:694
+msgid "No unconnected End Point to lock to"
+msgstr "Es gibt keinen unverbundenen Endpunkt für das Anschliessen"
+
+#: ../bin/cbezier.c:711
+msgid "Bezier curve invalid has identical end points Change End Point"
+msgstr ""
+"Die Endpunkte der Bezierkurve sind identisch. Bitte einen Endpunkt ändern."
+
+#: ../bin/cbezier.c:714
+#, c-format
+msgid "Bezier curve invalid has %s Change End Point"
+msgstr "Ungültige Bezier-Curve (%s). Bitte den Endpunkt ändern."
+
+#: ../bin/cbezier.c:717
+msgid "Bezier curve invalid has three co-incident points"
+msgstr ""
+"Die ungültige Bezier-Kurve hat drei übereinstimmende Punkte - bitte anpassen."
+
+#: ../bin/cbezier.c:719
+msgid "Bezier curve is straight line"
+msgstr "Bezier Kurve ist eine gerade Linie"
+
+#: ../bin/cbezier.c:734 ../bin/cbezier.c:748
+msgid "Invalid Bezier Track - end points are identical"
+msgstr "Die ungültige Bezier-Kurve hat identische Endpunkte. "
+
+#: ../bin/cbezier.c:741
+#, c-format
+msgid "Invalid Bezier Curve has a %s - Adjust"
+msgstr "Die ungültige Bezier-Kurve hat %s - bitte anpassen"
+
+#: ../bin/cbezier.c:745
+msgid "Invalid Bezier Curve has three coincident points - Adjust"
+msgstr ""
+"Die ungültige Bezier-Kurve hat drei übereinstimmende Punkte - bitte anpassen."
+
+#: ../bin/cbezier.c:754
+msgid "Create Bezier"
+msgstr "Bezier erstellen"
+
+#: ../bin/cbezier.c:836
+#, c-format
+msgid "%s picked - now select a Point"
+msgstr "%s ausgewählt - jetzt einen Punkt auswählen"
+
+#: ../bin/cbezier.c:862 ../bin/ccornu.c:884
+msgid "No changes made"
+msgstr "Keine Änderungen durchgeführt"
+
+#: ../bin/cbezier.c:866
+msgid "Modify Bezier"
+msgstr "Bezier ändern"
+
+#: ../bin/cbezier.c:880
+msgid "Modify Bezier Complete - select another"
+msgstr "Ändern der Bezier-Kurve bendet, bitte eine neue auswählen."
+
+#: ../bin/cbezier.c:885
+msgid "Modify Bezier Cancelled"
+msgstr "Ändern der Bezier-Kurve abgebrochen."
+
+#: ../bin/cbezier.c:975 ../bin/cbezier.c:1045
+#, c-format
+msgid "Place 1st end point of Bezier + Shift -> snap to %s end"
+msgstr "Ersten Endpunkt der Bezier setzen, mit Umschalt das %s Ende benutzen"
+
+#: ../bin/cbezier.c:998
+msgid "Shift used, but no Unconnected Track End there"
+msgstr ""
+"Umschalte-Taste gedrückt, aber es befindet sich hier kein offenes Gleisende."
+
+#: ../bin/cbezier.c:1011
+msgid "Shift used, but no Line End there"
+msgstr "Umschalte-Taste gedrückt, aber es befindet sich hier kein Linienende."
+
+#: ../bin/cbezier.c:1022
+msgid "Drag end of first Control Arm"
+msgstr "Das Ende des ersten Steuer-Arms verschieben."
+
+#: ../bin/cbezier.c:1030
+msgid "Drag end of second Control Arm"
+msgstr "Das Ende des zweiten Steuer-Arms verschieben."
+
+#: ../bin/cbezier.c:1049 ../bin/cbezier.c:1089
+#, c-format
+msgid "Select other end of Bezier, +Shift -> snap to %s end"
+msgstr ""
+"Das andere Ende der Bezier-Kurve auswählen, durch gleichzeitiges Halten der "
+"Umschalt-Taste zum %s Ende springen"
+
+#: ../bin/cbezier.c:1084
+msgid "Control Arm 1 is too short, try again"
+msgstr "Steuer-Arms 1 ist zu kurz, bitte nochmal versuchen."
+
+#: ../bin/cblock.c:105 ../bin/cblock.c:117 ../bin/cblock.c:160
+#: ../bin/ccontrol.c:167 ../bin/ccontrol.c:384 ../bin/compound.c:519
+#: ../bin/csensor.c:159 ../bin/csensor.c:356 ../bin/csignal.c:234
+#: ../bin/csignal.c:473 ../bin/csignal.c:484 ../bin/csignal.c:510
+#: ../bin/cswitchmotor.c:86 ../bin/cswitchmotor.c:105
+#: ../bin/cswitchmotor.c:216 ../bin/dcontmgm.c:91 ../bin/dlayer.c:444
+msgid "Name"
+msgstr "Name"
+
+#: ../bin/cblock.c:106 ../bin/cblock.c:118 ../bin/cblock.c:161
+#: ../bin/csensor.c:161 ../bin/csensor.c:362 ../bin/csignal.c:473
+#: ../bin/csignal.c:512
+msgid "Script"
+msgstr "Befehlsskript"
+
+#: ../bin/cblock.c:119
+msgid "Segments"
+msgstr "Segmente"
+
+#: ../bin/cblock.c:162 ../bin/cdraw.c:223 ../bin/ctodesgn.c:137
+#: ../bin/ctodesgn.c:138 ../bin/ctodesgn.c:139 ../bin/ctodesgn.c:188
+#: ../bin/ctodesgn.c:191 ../bin/ctodesgn.c:211 ../bin/ctodesgn.c:216
+#: ../bin/ctodesgn.c:249 ../bin/ctodesgn.c:254 ../bin/ctodesgn.c:286
+#: ../bin/ctodesgn.c:289 ../bin/ctodesgn.c:292 ../bin/ctodesgn.c:327
+#: ../bin/ctodesgn.c:329 ../bin/ctodesgn.c:347 ../bin/ctodesgn.c:349
+#: ../bin/ctodesgn.c:368 ../bin/ctodesgn.c:370 ../bin/ctodesgn.c:389
+#: ../bin/ctodesgn.c:409 ../bin/ctodesgn.c:429 ../bin/ctodesgn.c:449
+#: ../bin/ctodesgn.c:487 ../bin/ctodesgn.c:506 ../bin/ctodesgn.c:507
+#: ../bin/ctrain.c:184 ../bin/tbezier.c:249 ../bin/tcornu.c:299
+#: ../bin/tcurve.c:363 ../bin/tstraigh.c:89
+msgid "Length"
+msgstr "Länge"
+
+#: ../bin/cblock.c:163 ../bin/cdraw.c:219 ../bin/compound.c:495
+#: ../bin/tbezier.c:236 ../bin/tcornu.c:286 ../bin/tcurve.c:355
+#: ../bin/tease.c:503 ../bin/tstraigh.c:85
+msgid "End Pt 1: X,Y"
+msgstr "Endpunkt 1: X,Y"
+
+#: ../bin/cblock.c:164 ../bin/cdraw.c:220 ../bin/compound.c:500
+#: ../bin/tbezier.c:243 ../bin/tcornu.c:291 ../bin/tcurve.c:357
+#: ../bin/tease.c:505 ../bin/tstraigh.c:87
+msgid "End Pt 2: X,Y"
+msgstr "Endpunkt 2: X,Y"
+
+#: ../bin/cblock.c:189
+msgid "Change block"
+msgstr "Block ändern"
+
+#: ../bin/cblock.c:240 ../bin/compound.c:736 ../bin/cswitchmotor.c:299
+#, c-format
+msgid "(%d): Layer=%d %s"
+msgstr "(%d): Ebene=%d %s"
+
+#: ../bin/cblock.c:261 ../bin/cblock.c:910
+msgid "Block"
+msgstr "Block"
+
+#: ../bin/cblock.c:425
+#, c-format
+msgid "resolveBlockTrack: T%d[%d]: T%d doesn't exist"
+msgstr "resolveBlockTrack: T%d[%d]: T%d existiert nicht."
+
+#: ../bin/cblock.c:425 ../bin/cswitchmotor.c:395 ../bin/dbench.c:147
+#: ../bin/dcar.c:4239 ../bin/dcar.c:4423 ../bin/dcar.c:4433 ../bin/dcar.c:4481
+#: ../bin/dcar.c:4488 ../bin/dcar.c:4506 ../bin/dcar.c:4519 ../bin/dcar.c:4524
+#: ../bin/dcar.c:4553 ../bin/dcar.c:4715 ../bin/dxfoutput.c:189
+#: ../bin/fileio.c:236 ../bin/fileio.c:541 ../bin/fileio.c:656
+#: ../bin/fileio.c:753 ../bin/fileio.c:944 ../bin/fileio.c:1212
+#: ../bin/fileio.c:1262 ../bin/fileio.c:1308 ../bin/macro.c:174
+#: ../bin/macro.c:839 ../bin/macro.c:855 ../bin/macro.c:1092
+#: ../bin/param.c:2005 ../bin/track.c:1000 ../bin/track.c:1375
+#: ../bin/track.c:1667 ../bin/track.c:1671 ../bin/track.c:1691
+#: ../bin/track.c:1753 ../wlib/gtklib/wpref.c:248 ../wlib/gtklib/wpref.c:255
+msgid "Continue"
+msgstr "Weiter"
+
+#: ../bin/cblock.c:502 ../bin/cblock.c:718
+msgid "Block must have a name!"
+msgstr "Der Gleisabschnitt benötigt einen Namen!"
+
+#: ../bin/cblock.c:502 ../bin/cblock.c:522 ../bin/cblock.c:530
+#: ../bin/cblock.c:589 ../bin/cblock.c:706 ../bin/cblock.c:718
+#: ../bin/cblock.c:755 ../bin/ccontrol.c:445 ../bin/cdraw.c:106
+#: ../bin/cdraw.c:957 ../bin/cgroup.c:981 ../bin/cgroup.c:1034
+#: ../bin/cgroup.c:1049 ../bin/cgroup.c:1088 ../bin/cgroup.c:1115
+#: ../bin/cgroup.c:1174 ../bin/cgroup.c:1618 ../bin/cnote.c:100
+#: ../bin/cprint.c:490 ../bin/cprint.c:916 ../bin/cpull.c:505
+#: ../bin/cpull.c:520 ../bin/cpull.c:522 ../bin/cpull.c:524 ../bin/cpull.c:711
+#: ../bin/cselect.c:684 ../bin/cselect.c:781 ../bin/cselect.c:1373
+#: ../bin/csensor.c:411 ../bin/csignal.c:641 ../bin/csignal.c:709
+#: ../bin/csnap.c:584 ../bin/csnap.c:717 ../bin/cstruct.c:771
+#: ../bin/cstruct.c:780 ../bin/cstruct.c:882 ../bin/cswitchmotor.c:462
+#: ../bin/cswitchmotor.c:491 ../bin/cswitchmotor.c:625
+#: ../bin/cswitchmotor.c:656 ../bin/ctext.c:188 ../bin/ctodesgn.c:158
+#: ../bin/ctodesgn.c:1048 ../bin/ctodesgn.c:1098 ../bin/ctodesgn.c:1211
+#: ../bin/ctodesgn.c:1513 ../bin/cturnout.c:2415 ../bin/cturnout.c:2542
+#: ../bin/cundo.c:161 ../bin/cundo.c:166 ../bin/dbitmap.c:68
+#: ../bin/dbitmap.c:125 ../bin/dbitmap.c:203 ../bin/dbitmap.c:238
+#: ../bin/dcar.c:3540 ../bin/dcar.c:3724 ../bin/dcar.c:3728 ../bin/dcar.c:3732
+#: ../bin/dcar.c:3737 ../bin/dcar.c:4051 ../bin/dcar.c:4163 ../bin/dcar.c:4543
+#: ../bin/dcmpnd.c:393 ../bin/dcmpnd.c:404 ../bin/dcmpnd.c:536
+#: ../bin/dcustmgm.c:194 ../bin/dcustmgm.c:200 ../bin/dcustmgm.c:209
+#: ../bin/dcustmgm.c:225 ../bin/dease.c:240 ../bin/dlayer.c:205
+#: ../bin/dlayer.c:227 ../bin/dlayer.c:797 ../bin/dlayer.c:803
+#: ../bin/doption.c:172 ../bin/doption.c:252 ../bin/doption.c:434
+#: ../bin/doption.c:437 ../bin/doption.c:450 ../bin/doption.c:516
+#: ../bin/dprmfile.c:91 ../bin/dprmfile.c:105 ../bin/dprmfile.c:119
+#: ../bin/dprmfile.c:165 ../bin/dprmfile.c:533 ../bin/draw.c:2306
+#: ../bin/fileio.c:610 ../bin/fileio.c:678 ../bin/fileio.c:793
+#: ../bin/fileio.c:795 ../bin/fileio.c:800 ../bin/fileio.c:964
+#: ../bin/layout.c:312 ../bin/macro.c:942 ../bin/macro.c:946
+#: ../bin/macro.c:995 ../bin/macro.c:1061 ../bin/macro.c:1289
+#: ../bin/macro.c:1305 ../bin/misc.c:401 ../bin/misc.c:451 ../bin/misc.c:1728
+#: ../bin/misc.c:1869 ../bin/misc.c:1878 ../bin/misc.c:1960 ../bin/misc.c:2546
+#: ../bin/misc.c:2556 ../bin/misc.c:2576 ../bin/misc.c:2579 ../bin/misc2.c:457
+#: ../bin/param.c:737 ../bin/param.c:1768 ../bin/param.c:1886
+#: ../bin/param.c:1889 ../bin/param.c:2012 ../bin/param.c:2018
+#: ../bin/smalldlg.c:89 ../bin/smalldlg.c:220 ../bin/tease.c:1044
+#: ../bin/track.c:1389 ../wlib/gtklib/wpref.c:122
+#: ../../../../build/work/app/bin/bllnhlp.c:542
+msgid "Ok"
+msgstr "Ok"
+
+#: ../bin/cblock.c:530
+msgid "Block is discontigious!"
+msgstr "Der Block ist nicht zusammenhängend!"
+
+#: ../bin/cblock.c:535
+msgid "Create block"
+msgstr "Block erstellen"
+
+#: ../bin/cblock.c:571
+msgid "Non track object skipped!"
+msgstr "Objekt ist kein Gleis, übersprungen!"
+
+#: ../bin/cblock.c:575
+msgid "Selected track is already in a block, skipped!"
+msgstr "Übersprungen, da das ausgewählte Gleis bereits in einem Block ist. "
+
+#: ../bin/cblock.c:589
+msgid "Create Block"
+msgstr "Gleisabschnitt erstellen"
+
+#: ../bin/cblock.c:619 ../bin/cblock.c:651
+msgid "Select a track"
+msgstr "Gleis auswählen"
+
+#: ../bin/cblock.c:628 ../bin/cblock.c:659
+msgid "Not a block!"
+msgstr "Kein Block!"
+
+#: ../bin/cblock.c:664
+#, c-format
+msgid "Really delete block %s?"
+msgstr "Soll der Block %s wirklich gelöscht werden?"
+
+#: ../bin/cblock.c:664 ../bin/cdraw.c:110 ../bin/cgroup.c:987
+#: ../bin/cpull.c:672 ../bin/csignal.c:687 ../bin/cswitchmotor.c:581
+#: ../bin/ctodesgn.c:1521 ../bin/ctodesgn.c:2000 ../bin/ctrain.c:2429
+#: ../bin/dbitmap.c:208 ../bin/dcar.c:3676 ../bin/dcar.c:3754
+#: ../bin/dcar.c:3838 ../bin/dcar.c:3857 ../bin/dcar.c:4188 ../bin/dcar.c:4605
+#: ../bin/dcontmgm.c:173 ../bin/dcustmgm.c:141 ../bin/misc.c:1137
+#: ../bin/misc.c:1142 ../bin/misc.c:1207 ../bin/track.c:1391
+#: ../bin/track.c:1488 ../bin/track.c:1502
+msgid "Yes"
+msgstr "Ja"
+
+#: ../bin/cblock.c:664 ../bin/cdraw.c:110 ../bin/cgroup.c:987
+#: ../bin/cpull.c:672 ../bin/csignal.c:687 ../bin/cswitchmotor.c:581
+#: ../bin/ctodesgn.c:1521 ../bin/ctodesgn.c:2000 ../bin/ctrain.c:2429
+#: ../bin/dcar.c:3676 ../bin/dcar.c:3754 ../bin/dcar.c:3838 ../bin/dcar.c:3857
+#: ../bin/dcar.c:4188 ../bin/dcar.c:4605 ../bin/dcontmgm.c:173
+#: ../bin/dcustmgm.c:141 ../bin/misc.c:1137 ../bin/misc.c:1142
+#: ../bin/misc.c:1207 ../bin/track.c:1391 ../bin/track.c:1488
+#: ../bin/track.c:1502
+msgid "No"
+msgstr "Nein"
+
+#: ../bin/cblock.c:665
+msgid "Delete Block"
+msgstr "Gleisabschnitt löschen"
+
+#: ../bin/cblock.c:706
+#, c-format
+msgid "Deleting block %s"
+msgstr "Gleisabschnitt %s löschen"
+
+#: ../bin/cblock.c:722
+msgid "Modify Block"
+msgstr "Gleisabschnitt bearbeiten"
+
+#: ../bin/cblock.c:754
+msgid "Edit block"
+msgstr "Block bearbeiten"
+
+#: ../bin/cblock.c:760
+#, c-format
+msgid "Edit block %d"
+msgstr "Gleisabschnitt %d bearbeiten"
+
+#: ../bin/ccontrol.c:168 ../bin/cnote.c:162 ../bin/csensor.c:160
+#: ../bin/csignal.c:235 ../bin/ctrain.c:182
+msgid "Position"
+msgstr "Position"
+
+#: ../bin/ccontrol.c:169 ../bin/ccontrol.c:390
+msgid "On Script"
+msgstr "Befehlsskript An"
+
+#: ../bin/ccontrol.c:170 ../bin/ccontrol.c:392
+msgid "Off Script"
+msgstr "Befehlsskript Aus"
+
+#: ../bin/ccontrol.c:213
+msgid "Change Control"
+msgstr "Steuerung ändern"
+
+#: ../bin/ccontrol.c:255 ../bin/csensor.c:233
+#, c-format
+msgid "(%d [%s]): Layer=%d, at %0.3f,%0.3f"
+msgstr "(%d [%s]): Ebene=%d, bei %0.3f,%0.3f"
+
+#: ../bin/ccontrol.c:268 ../bin/ccontrol.c:594
+msgid "Control"
+msgstr "Steuerung"
+
+#: ../bin/ccontrol.c:386 ../bin/csensor.c:358 ../bin/csignal.c:486
+msgid "Orgin X"
+msgstr "Ausgangspunkt: X"
+
+#: ../bin/ccontrol.c:388 ../bin/csensor.c:360 ../bin/csignal.c:488
+msgid "Origin Y"
+msgstr "Ausgangspunkt: Y"
+
+#: ../bin/ccontrol.c:404
+msgid "Create Control"
+msgstr "Steuerung anlegen"
+
+#: ../bin/ccontrol.c:407
+msgid "Modify Control"
+msgstr "Steuerung ändern"
+
+#: ../bin/ccontrol.c:444
+msgid "Edit control"
+msgstr "Steuerung bearbeiten"
+
+#: ../bin/ccontrol.c:484
+msgid "Place control"
+msgstr "Steuerung setzen"
+
+#: ../bin/ccornu.c:457 ../bin/cjoin.c:523 ../bin/cmisc.c:52
+msgid "First"
+msgstr "Erste"
+
+#: ../bin/ccornu.c:464 ../bin/cjoin.c:528 ../bin/cmisc.c:52
+msgid "Second"
+msgstr "Zweite"
+
+#: ../bin/ccornu.c:537
+msgid "Not close enough to end point, reselect"
+msgstr "Kein Endpunkte in der Nähe, bitte wiederholen"
+
+#: ../bin/ccornu.c:541
+msgid "Is Cornu End -> Not Selectable"
+msgstr "Dies ist das Ende einer Cornu und kann daher nicht ausgewählt werden."
+
+#: ../bin/ccornu.c:559
+msgid ""
+"Pick any circle to adjust it by dragging - Enter to accept, Esc to cancel"
+msgstr "Wähle einen beliebigen Kreis aus passe die Kurve durch verschieben an"
+
+#: ../bin/ccornu.c:570
+msgid "Track can't be split"
+msgstr "Das Gleis kann nicht getrennt werden."
+
+#: ../bin/ccornu.c:585
+msgid "Too close to other end of selected Track"
+msgstr "Zu nahe am anderen Ende des ausgewählten Gleises"
+
+#: ../bin/ccornu.c:698
+#, c-format
+msgid "Must be on the %s Track"
+msgstr "Muss auf dem %s Gleis sein"
+
+#: ../bin/ccornu.c:712
+#, c-format
+msgid ""
+"Cornu : Min Radius=%s Max Rate of Radius Change=%s Length=%s Winding Arc=%s"
+msgstr ""
+"Cornu: Mindestradius =%s Max. Änderungsrate des Radius=%s Länge=%s Bogen=%s"
+
+#: ../bin/ccornu.c:730
+msgid "Pick on point to adjust it along track - Enter to confirm, ESC to abort"
+msgstr ""
+"Einen Punkte auswählen und entlang des Gleises verschieben - Bestätigen mit "
+"Eingabe, Abbrechen mit Esc"
+
+#: ../bin/ccornu.c:740
+msgid "Cornu has too complex shape - adjust end pts"
+msgstr "Die Form der Cornu-Kurve ist zu komplex, Endpunkte anpassen"
+
+#: ../bin/ccornu.c:750
+#, c-format
+msgid "Cornu end %d too close to other end of connect track - reposition it"
+msgstr ""
+"Cornu-Ende %d zu dicht am anderen Ende des Gleises - anderere Position setzen"
+
+#: ../bin/ccornu.c:756
+msgid "Create Cornu"
+msgstr "Cornu-Kurve erstellen"
+
+#: ../bin/ccornu.c:760 ../bin/ccornu.c:919 ../bin/tcornu.c:733
+#: ../bin/tcornu.c:930 ../bin/tcornu.c:1200
+#, c-format
+msgid ""
+"Cornu Create Failed for p1[%0.3f,%0.3f] p2[%0.3f,%0.3f], c1[%0.3f,%0.3f] "
+"c2[%0.3f,%0.3f], a1=%0.3f a2=%0.3f, r1=%s r2=%s"
+msgstr ""
+"Erstellen der mit p1[%0.3f,%0.3f] p2[%0.3f,%0.3f], c1[%0.3f,%0.3f] c2[%0.3f,"
+"%0.3f], a1=%0.3f a2=%0.3f, r1=%s r2=%s nicht möglich"
+
+#: ../bin/ccornu.c:858
+msgid "Track picked - now select a Point"
+msgstr "Gleis ausgewählt - jetzt einen Punkt auswählen"
+
+#: ../bin/ccornu.c:893
+msgid "Modify Cornu"
+msgstr "Cornu-Kurve ändern"
+
+#: ../bin/ccornu.c:909
+#, c-format
+msgid "Cornu Extension Create Failed for end %d"
+msgstr "Das Erzeugen einer Klothide aus dem Endpunkt %d ist nicht möglich."
+
+#: ../bin/ccornu.c:958
+msgid "Modify Cornu Cancelled"
+msgstr "Änderung der Cornu-Kurve abbrechen"
+
+#: ../bin/ccornu.c:1079
+msgid "Left click - join with Cornu track"
+msgstr "Durch Drücken der linken Maustaste mit einer Cornu-Kurve verbinden"
+
+#: ../bin/ccornu.c:1081
+msgid "Left click - join with Cornu track, Shift Left click - move to join"
+msgstr ""
+"Linke Maustaste - Verbinden mit Cornu-Gleis, Umschalten + linke Maustaste - "
+"Verschieben zum Verbinden"
+
+#: ../bin/ccornu.c:1092
+msgid "Helix Already Connected"
+msgstr "Gleiswendel ist bereits verbunden"
+
+#: ../bin/ccornu.c:1100
+msgid "No Unconnected end point on that track"
+msgstr "Kein unverbundener Endpunkt auf diesem Gleis"
+
+#: ../bin/ccornu.c:1108
+msgid ""
+"Place 2nd end point of Cornu track on track with an unconnected end-point"
+msgstr ""
+"Setze den zweiten Endpunkt des Cornu-Gleis auf ein Gleis mit einem "
+"unverbundenen Endpunkt"
+
+#: ../bin/ccornu.c:1111
+msgid "No Unconnected Track End there"
+msgstr "Hier ist kein offenes Gleisende."
+
+#: ../bin/ccornu.c:1123
+msgid "Move 1st end point of Cornu track along track 1"
+msgstr ""
+"Verschiebe den ersten Endpunkt des Cornu-Gleis entlang des ersten Gleises"
+
+#: ../bin/ccornu.c:1142
+msgid "Move 2nd end point of Cornu track along track 2"
+msgstr ""
+"Verschiebe den zweiten Endpunkt des Cornu-Gleis entlang des zweiten Gleises"
+
+#: ../bin/ccornu.c:1160
+msgid "Can't Split - Locked to End Point"
+msgstr "Trennen nicht möglich - am Endpunkt verriegelt"
+
+#: ../bin/ccornu.c:1165
+msgid "Point not on track 1"
+msgstr "Der Punkt ist nicht auf Gleis 1"
+
+#: ../bin/ccornu.c:1189
+msgid "Put other end of Cornu on a track with an unconnected end point"
+msgstr ""
+"Setze den aneren Endpunkt des Cornu-Gleis auf ein Gleis mit einem "
+"unverbundenen Endpunkt"
+
+#: ../bin/ccurve.c:118
+msgid ""
+"Drag from End-Point in direction of curve - Shift locks to track open end-"
+"point"
+msgstr ""
+"Vom Endpunkt in Richtung der Kurve ziehen, mit Umschalt-Taste an "
+"unverbundenen Endpunkt verbinden"
+
+#: ../bin/ccurve.c:120
+msgid "Drag from End-Point in direction of curve"
+msgstr "Vom Endpunkt in Richtung der Kurve ziehen"
+
+#: ../bin/ccurve.c:124
+msgid "Drag from End-Point to Center - Shift locks to track open end-point"
+msgstr ""
+"Vom Endpunkt zum Mittelpunkt ziehen, mit Umschalt-Taste an unverbundenen "
+"Endpunkt verbinden"
+
+#: ../bin/ccurve.c:126 ../bin/ccurve.c:187
+msgid "Drag from End-Point to Center"
+msgstr "Vom Endpunkt zum Mittelpunkt ziehen"
+
+#: ../bin/ccurve.c:129 ../bin/ccurve.c:187
+msgid "Drag from Center to End-Point"
+msgstr "Vom Mittelpunkt zum Endpunkt ziehen"
+
+#: ../bin/ccurve.c:132
+msgid "Drag from one to other end of chord"
+msgstr "Vom einen zum anderen Ende der Sehne ziehen"
+
+#: ../bin/ccurve.c:155 ../bin/cstraigh.c:74
+msgid ""
+"No unconnected end-point on track - Try again or release Shift and click"
+msgstr ""
+"Dieses Gleis hat keinen unverbundenen Endpunkt, nochmal versuchen oder "
+"Umschalttaste lösen und dann klicken"
+
+#: ../bin/ccurve.c:160 ../bin/cstraigh.c:80
+msgid "Not on a track - Try again or release Shift and click"
+msgstr ""
+"Nicht auf einem Gleis, nochmal versuchen oder Umschalttaste lösen und Klicken"
+
+#: ../bin/ccurve.c:174
+msgid "End Locked: Drag out curve start"
+msgstr "Ende fixiert, Anfangspunkt der Kurve ziehen"
+
+#: ../bin/ccurve.c:175
+msgid "Drag along curve start"
+msgstr "Entlang der Anfangs der Kurve ziehen"
+
+#: ../bin/ccurve.c:185
+msgid "End Locked: Drag out to center"
+msgstr "Ende fixiert, zum Mittelpunkt ziehen"
+
+#: ../bin/ccurve.c:193
+msgid "Drag to other end of chord"
+msgstr "Zum anderen Ende der Sehne ziehen"
+
+#: ../bin/ccurve.c:221
+#, c-format
+msgid "Start Locked: Drag out curve start - Angle=%0.3f"
+msgstr "Anfang fixiert, Anfangspunkt der Kurve ziehen - Winkel=%0.3f"
+
+#: ../bin/ccurve.c:222
+#, c-format
+msgid "Drag out curve start - Angle=%0.3f"
+msgstr "Anfangspunkt der Kurve ziehen - Winkel=%0.3f"
+
+#: ../bin/ccurve.c:226
+#, c-format
+msgid "Tangent Locked: Drag out center - Radius=%s Angle=%0.3f"
+msgstr "Gleistangente gesetzt: Ziehe zum Mittelpunkt Radius=%s Winkel=%0.3f"
+
+#: ../bin/ccurve.c:227
+#, c-format
+msgid "Drag out center - Radius=%s Angle=%0.3f"
+msgstr "Ziehe zum Mittelpunkt - Radius=%s Winkel=%0.3f"
+
+#: ../bin/ccurve.c:233
+#, c-format
+msgid "Radius=%s Angle=%0.3f"
+msgstr "Radius=%s Winkel=%0.3f"
+
+#: ../bin/ccurve.c:239
+#, c-format
+msgid "Length=%s Angle=%0.3f"
+msgstr "Länge=%s Winkel=%0.3f"
+
+#: ../bin/ccurve.c:289 ../bin/ccurve.c:397 ../bin/drawgeom.c:442
+msgid "Drag on Red arrows to adjust curve"
+msgstr "An den roten Pfeilen ziehen, um die Kurve anzupassen"
+
+#: ../bin/ccurve.c:352 ../bin/cjoin.c:216 ../bin/cmodify.c:369
+#: ../bin/cturntbl.c:569
+#, c-format
+msgid "Straight Track: Length=%s Angle=%0.3f"
+msgstr "Gleisgerade: Länge=%s Winkel=%0.3f"
+
+#: ../bin/ccurve.c:357 ../bin/cmodify.c:374 ../bin/drawgeom.c:325
+#: ../wlib/gtklib/ixhelp.c:235
+msgid "Back"
+msgstr "Zurück"
+
+#: ../bin/ccurve.c:375
+#, c-format
+msgid "Curved Track: Radius=%s Angle=%0.3f Length=%s"
+msgstr "Gleisbogen: Radius=%s Winkel=%0.3f Länge=%s"
+
+#: ../bin/ccurve.c:408 ../bin/cstraigh.c:133
+msgid "Create Straight Track"
+msgstr "Erstelle gerades Gleis"
+
+#: ../bin/ccurve.c:420
+msgid "Create Curved Track"
+msgstr "Erstelle Gleisbogen"
+
+#: ../bin/ccurve.c:491
+msgid "Elevation Difference"
+msgstr "Höhenunterschied"
+
+#: ../bin/ccurve.c:492 ../bin/cdraw.c:222 ../bin/compound.c:498
+#: ../bin/compound.c:503 ../bin/compound.c:508 ../bin/compound.c:513
+#: ../bin/ctodesgn.c:467 ../bin/tbezier.c:238 ../bin/tbezier.c:245
+#: ../bin/tcornu.c:293 ../bin/tcurve.c:360
+msgid "Radius"
+msgstr "Radius"
+
+#: ../bin/ccurve.c:493 ../bin/tcurve.c:361
+msgid "Turns"
+msgstr "Windungen"
+
+#: ../bin/ccurve.c:494
+msgid "Angular Separation"
+msgstr "Winkelabstand"
+
+#: ../bin/ccurve.c:495 ../bin/celev.c:45 ../bin/compound.c:515
+#: ../bin/tbezier.c:250 ../bin/tcornu.c:300 ../bin/tcurve.c:367
+#: ../bin/tease.c:513 ../bin/tstraigh.c:91
+msgid "Grade"
+msgstr "Steigung"
+
+#: ../bin/ccurve.c:496
+msgid "Vertical Separation"
+msgstr "Vertikaler Abstand"
+
+#: ../bin/ccurve.c:498
+msgid "Total Length"
+msgstr "Gesamtlänge"
+
+#: ../bin/ccurve.c:574
+#, c-format
+msgid "Total Length %s"
+msgstr "Gesamtlänge %s"
+
+#: ../bin/ccurve.c:613 ../bin/ccurve.c:818 ../bin/tcurve.c:794
+msgid "Helix"
+msgstr "Gleiswendel"
+
+#: ../bin/ccurve.c:627
+msgid "Circle Radius"
+msgstr "Kreisradius"
+
+#: ../bin/ccurve.c:632
+msgid "Click on Circle Edge"
+msgstr "Auf den Rand des Kreis klicken"
+
+#: ../bin/ccurve.c:636
+msgid "Click on Circle Center"
+msgstr "Auf den Mittelpunkt des Kreises klicken"
+
+#: ../bin/ccurve.c:667
+msgid "Drag to Center"
+msgstr "Zum Mittelpunkt ziehen"
+
+#: ../bin/ccurve.c:671
+msgid "Drag to Edge"
+msgstr "Zum Rand ziehen"
+
+#: ../bin/ccurve.c:692 ../bin/ccurve.c:696
+#, c-format
+msgid "Radius=%s"
+msgstr "Radius=%s"
+
+#: ../bin/ccurve.c:723
+msgid "Create Helix Track"
+msgstr "Erstelle Gleiswendel"
+
+#: ../bin/ccurve.c:734
+msgid "Create Circle Track"
+msgstr "Erstelle Gleiskreis"
+
+#: ../bin/ccurve.c:789
+msgid "Curve Track"
+msgstr "Gleisbogen"
+
+#: ../bin/ccurve.c:789
+msgid "Curve Tracks"
+msgstr "Gleisbögen"
+
+#: ../bin/ccurve.c:790
+msgid "Curve from End-Pt"
+msgstr "Bogen aus Endpunkten"
+
+#: ../bin/ccurve.c:791
+msgid "Curve from Tangent"
+msgstr "Bogen an Tangente"
+
+#: ../bin/ccurve.c:792
+msgid "Curve from Center"
+msgstr "Bogen um Mittelpunkt"
+
+#: ../bin/ccurve.c:793
+msgid "Curve from Chord"
+msgstr "Bogen aus Sehne"
+
+#: ../bin/ccurve.c:794 ../bin/cdraw.c:1141
+msgid "Bezier Curve"
+msgstr "Bezierkurve"
+
+#: ../bin/ccurve.c:797 ../bin/tcurve.c:634
+msgid "Circle Track"
+msgstr "Gleiskreis"
+
+#: ../bin/ccurve.c:797
+msgid "Circle Tracks"
+msgstr "Gleiskreise"
+
+#: ../bin/ccurve.c:798
+msgid "Fixed Radius Circle"
+msgstr "Kreis mit festem Radius"
+
+#: ../bin/ccurve.c:799
+msgid "Circle from Tangent"
+msgstr "Kreis an Tangente"
+
+#: ../bin/ccurve.c:800
+msgid "Circle from Center"
+msgstr "Kreis um Mittelpunkt"
+
+#: ../bin/cdraw.c:106
+msgid "Font Size must be > 0"
+msgstr "Schriftgröße muss größer als 0 sein"
+
+#: ../bin/cdraw.c:221 ../bin/tcurve.c:359
+msgid "Center: X,Y"
+msgstr "Mittelpunkt: X,Y"
+
+#: ../bin/cdraw.c:224 ../bin/cdraw.c:234 ../bin/compound.c:496
+#: ../bin/compound.c:501 ../bin/compound.c:506 ../bin/compound.c:511
+#: ../bin/compound.c:517 ../bin/cprint.c:143 ../bin/csignal.c:236
+#: ../bin/csignal.c:490 ../bin/ctodesgn.c:144 ../bin/ctodesgn.c:146
+#: ../bin/ctodesgn.c:189 ../bin/ctodesgn.c:212 ../bin/ctodesgn.c:214
+#: ../bin/ctodesgn.c:250 ../bin/ctodesgn.c:253 ../bin/ctodesgn.c:287
+#: ../bin/ctodesgn.c:291 ../bin/ctodesgn.c:328 ../bin/ctodesgn.c:348
+#: ../bin/ctodesgn.c:369 ../bin/ctodesgn.c:468 ../bin/ctrain.c:183
+#: ../bin/tease.c:508 ../bin/tstraigh.c:90
+msgid "Angle"
+msgstr "Winkel"
+
+#: ../bin/cdraw.c:225 ../bin/tcurve.c:365
+msgid "CCW Angle"
+msgstr "Winkel (gegen Uhrzeigersinn)"
+
+#: ../bin/cdraw.c:226 ../bin/tcurve.c:366
+msgid "CW Angle"
+msgstr "Winkel (im Uhrzeigersinn)"
+
+#: ../bin/cdraw.c:227
+msgid "Point Count"
+msgstr "Anzahl der Punkte"
+
+#: ../bin/cdraw.c:228 ../bin/cdraw.c:891 ../bin/ctodesgn.c:156
+#: ../bin/tbezier.c:252
+msgid "Line Width"
+msgstr "Strichdicke"
+
+#: ../bin/cdraw.c:229 ../bin/cdraw.c:893 ../bin/cdraw.c:895 ../bin/cdraw.c:978
+#: ../bin/cdraw.c:1003 ../bin/cmisc.c:117 ../bin/ctext.c:66 ../bin/ctext.c:155
+#: ../bin/ctodesgn.c:157 ../bin/dcar.c:1980 ../bin/dlayer.c:446
+#: ../bin/doption.c:516
+msgid "Color"
+msgstr "Farbe"
+
+#: ../bin/cdraw.c:230 ../bin/cdraw.c:465 ../bin/cdraw.c:915
+msgid "Lumber"
+msgstr "Holzleiste"
+
+#: ../bin/cdraw.c:231
+msgid "Orientation"
+msgstr "Ausrichtung"
+
+#: ../bin/cdraw.c:232 ../bin/cdraw.c:909
+#: ../../../../build/work/app/bin/bllnhlp.c:544
+msgid "Size"
+msgstr "Größe"
+
+#: ../bin/cdraw.c:233 ../bin/compound.c:516 ../bin/tease.c:507
+msgid "Origin: X,Y"
+msgstr "Ausgangspunkt: X,Y"
+
+#: ../bin/cdraw.c:235 ../bin/ctext.c:64 ../bin/ctext.c:154
+msgid "Font Size"
+msgstr "Schriftgröße"
+
+#: ../bin/cdraw.c:236 ../bin/cdraw.c:544 ../bin/ctext.c:287
+msgid "Text"
+msgstr "Text"
+
+#: ../bin/cdraw.c:237 ../bin/cmisc.c:134 ../bin/tcurve.c:368
+#: ../bin/tease.c:514 ../bin/tstraigh.c:92
+msgid "Pivot"
+msgstr "Drehpunkt"
+
+#: ../bin/cdraw.c:238 ../bin/cnote.c:163 ../bin/compound.c:523
+#: ../bin/cturntbl.c:248 ../bin/tbezier.c:251 ../bin/tcornu.c:301
+#: ../bin/tcurve.c:369 ../bin/tease.c:515 ../bin/tstraigh.c:93
+#: ../../../../build/work/app/bin/bllnhlp.c:622
+#: ../../../../build/work/app/bin/bllnhlp.c:623
+#: ../../../../build/work/app/bin/bllnhlp.c:624
+#: ../../../../build/work/app/bin/bllnhlp.c:625
+#: ../../../../build/work/app/bin/bllnhlp.c:626
+#: ../../../../build/work/app/bin/bllnhlp.c:627
+#: ../../../../build/work/app/bin/bllnhlp.c:628
+#: ../../../../build/work/app/bin/bllnhlp.c:629
+#: ../../../../build/work/app/bin/bllnhlp.c:630
+#: ../../../../build/work/app/bin/bllnhlp.c:631
+#: ../../../../build/work/app/bin/bllnhlp.c:632
+#: ../../../../build/work/app/bin/bllnhlp.c:633
+#: ../../../../build/work/app/bin/bllnhlp.c:634
+#: ../../../../build/work/app/bin/bllnhlp.c:635
+#: ../../../../build/work/app/bin/bllnhlp.c:636
+#: ../../../../build/work/app/bin/bllnhlp.c:637
+#: ../../../../build/work/app/bin/bllnhlp.c:638
+#: ../../../../build/work/app/bin/bllnhlp.c:639
+#: ../../../../build/work/app/bin/bllnhlp.c:640
+#: ../../../../build/work/app/bin/bllnhlp.c:641
+msgid "Layer"
+msgstr "Ebene"
+
+#: ../bin/cdraw.c:239 ../bin/dcar.c:1953 ../bin/dcar.c:4082 ../bin/dcar.c:4087
+msgid "Type"
+msgstr "Typ"
+
+#: ../bin/cdraw.c:455
+msgid "Straight Line"
+msgstr "Gerade Linie"
+
+#: ../bin/cdraw.c:458 ../bin/cdraw.c:1133
+msgid "Dimension Line"
+msgstr "Maßlinie"
+
+#: ../bin/cdraw.c:473 ../bin/cdraw.c:916 ../bin/cdraw.c:1135
+msgid "Table Edge"
+msgstr "Tischkante"
+
+#: ../bin/cdraw.c:485 ../bin/cdraw.c:921 ../bin/cdraw.c:922 ../bin/cdraw.c:923
+msgid "Circle"
+msgstr "Kreis"
+
+#: ../bin/cdraw.c:493
+msgid "Curved Line"
+msgstr "Gebogene Linie"
+
+#: ../bin/cdraw.c:502 ../bin/cdraw.c:926 ../bin/cdraw.c:927 ../bin/cdraw.c:928
+msgid "Filled Circle"
+msgstr "Gefüllter Kreis"
+
+#: ../bin/cdraw.c:510 ../bin/cdraw.c:525
+msgid "Rectangle"
+msgstr "Rechteck"
+
+#: ../bin/cdraw.c:513 ../bin/cdraw.c:528
+msgid "Freeform"
+msgstr "Freeform"
+
+#: ../bin/cdraw.c:516
+msgid "Polygonal Line"
+msgstr "Vieleck"
+
+#: ../bin/cdraw.c:531 ../bin/cdraw.c:930 ../bin/cdraw.c:1153
+msgid "Polygon"
+msgstr "Vieleck"
+
+#: ../bin/cdraw.c:550
+#, c-format
+msgid "%s: Layer=%d"
+msgstr "%s: Ebene=%d"
+
+#: ../bin/cdraw.c:561 ../bin/cdraw.c:1020
+msgid "Tiny"
+msgstr "Winzig"
+
+#: ../bin/cdraw.c:562 ../bin/cdraw.c:1021
+msgid "Small"
+msgstr "Klein"
+
+#: ../bin/cdraw.c:563 ../bin/cdraw.c:1022
+msgid "Medium"
+msgstr "Mittel"
+
+#: ../bin/cdraw.c:564 ../bin/cdraw.c:1023
+msgid "Large"
+msgstr "Groß"
+
+#: ../bin/cdraw.c:898 ../bin/cdraw.c:900 ../bin/cdraw.c:1001
+msgid "Lumber Type"
+msgstr "Leistenart"
+
+#: ../bin/cdraw.c:913
+msgid "Straight"
+msgstr "Gerade"
+
+#: ../bin/cdraw.c:914
+msgid "Dimension"
+msgstr "Abmessung"
+
+#: ../bin/cdraw.c:917 ../bin/cdraw.c:918 ../bin/cdraw.c:919 ../bin/cdraw.c:920
+msgid "Curved"
+msgstr "Gebogen"
+
+#: ../bin/cdraw.c:924 ../bin/cdraw.c:1150
+msgid "Box"
+msgstr "Rechteck"
+
+#: ../bin/cdraw.c:925
+msgid "Polyline"
+msgstr "Polylinie"
+
+#: ../bin/cdraw.c:929 ../bin/cdraw.c:1151
+msgid "Filled Box"
+msgstr "Gefülltes Rechteck"
+
+#: ../bin/cdraw.c:931 ../bin/tbezier.c:438
+msgid "Bezier Line"
+msgstr "Bezierlinie"
+
+#: ../bin/cdraw.c:976
+#, c-format
+msgid "%s Line Width"
+msgstr "%s Strichdicke"
+
+#: ../bin/cdraw.c:990
+#, c-format
+msgid "%s Color"
+msgstr "%s Farbe"
+
+#: ../bin/cdraw.c:1018
+msgid "Dimension Line Size"
+msgstr " Maßliniengröße"
+
+#: ../bin/cdraw.c:1031
+msgid "Drag to create Table Edge"
+msgstr "Durch Ziehen die Tischkante erstellen"
+
+#: ../bin/cdraw.c:1132
+msgid "Line"
+msgstr "Linie"
+
+#: ../bin/cdraw.c:1132
+msgid "Draw Line"
+msgstr "Zeichne Linie"
+
+#: ../bin/cdraw.c:1133
+msgid "Draw Dimension Line"
+msgstr "Zeichne Maßlinie"
+
+#: ../bin/cdraw.c:1134 ../../../../build/work/app/i18n/custmsg.h:53
+msgid "Benchwork"
+msgstr "Unterbau"
+
+#: ../bin/cdraw.c:1134
+msgid "Draw Benchwork"
+msgstr "Zeichne Unterbau"
+
+#: ../bin/cdraw.c:1135
+msgid "Draw Table Edge"
+msgstr "Zeichne Tischkante"
+
+#: ../bin/cdraw.c:1137
+msgid "Curve End"
+msgstr "Kurvenenden "
+
+#: ../bin/cdraw.c:1137
+msgid "Draw Curve from End"
+msgstr "Zeichne Kurve durch Enden"
+
+#: ../bin/cdraw.c:1138
+msgid "Curve Tangent"
+msgstr "Kurve Tangente "
+
+#: ../bin/cdraw.c:1138
+msgid "Draw Curve from Tangent"
+msgstr "Zeichne Kurve an Tangente"
+
+#: ../bin/cdraw.c:1139
+msgid "Curve Center"
+msgstr "Kurve um Mittelpunkt"
+
+#: ../bin/cdraw.c:1139
+msgid "Draw Curve from Center"
+msgstr "Zeichne Kurve um Mittelpunkt"
+
+#: ../bin/cdraw.c:1140
+msgid "Curve Chord"
+msgstr "Kurve durch Sehne "
+
+#: ../bin/cdraw.c:1140
+msgid "Draw Curve from Chord"
+msgstr "Zeichne Kurve durch Sehne"
+
+#: ../bin/cdraw.c:1141
+msgid "Draw Bezier"
+msgstr "Zeichne Bezier"
+
+#: ../bin/cdraw.c:1144
+msgid "Circle Tangent"
+msgstr "Kreis an Tangente"
+
+#: ../bin/cdraw.c:1144
+msgid "Draw Circle from Tangent"
+msgstr "Zeichne Kreis an Tangente"
+
+#: ../bin/cdraw.c:1145
+msgid "Circle Center"
+msgstr "Kreismittelpunkt"
+
+#: ../bin/cdraw.c:1145
+msgid "Draw Circle from Center"
+msgstr "Zeichne Kreis um Mittelpunkt"
+
+#: ../bin/cdraw.c:1147
+msgid "Circle Filled Tangent"
+msgstr "Gefüllter Kreis an Tangente"
+
+#: ../bin/cdraw.c:1147
+msgid "Draw Filled Circle from Tangent"
+msgstr "Gefüllter Kreis an Tangente"
+
+#: ../bin/cdraw.c:1148
+msgid "Circle Filled Center"
+msgstr "Gefüllter Kreis Mittelpunkt"
+
+#: ../bin/cdraw.c:1148
+msgid "Draw Filled Circle from Center"
+msgstr "Gefüllter Kreis von Mittelpunkt"
+
+#: ../bin/cdraw.c:1150
+msgid "Draw Box"
+msgstr "Zeichne Rechteck"
+
+#: ../bin/cdraw.c:1151
+msgid "Draw Filled Box"
+msgstr "Zeichne gefülltes Rechteck"
+
+#: ../bin/cdraw.c:1152
+msgid "Poly Line"
+msgstr "Polylinie"
+
+#: ../bin/cdraw.c:1152
+msgid "Draw Polyline"
+msgstr "Zeichne Polylinie"
+
+#: ../bin/cdraw.c:1153
+msgid "Draw Polygon"
+msgstr "Zeichne Vieleck"
+
+#: ../bin/cdraw.c:1169
+msgid "Straight Objects"
+msgstr "Gerade Objekte"
+
+#: ../bin/cdraw.c:1169
+msgid "Draw Straight Objects"
+msgstr "Zeichne gerade Objekte"
+
+#: ../bin/cdraw.c:1170
+msgid "Curved Lines"
+msgstr "Gebogene Linien"
+
+#: ../bin/cdraw.c:1170
+msgid "Draw Curved Lines"
+msgstr "Zeichne gebogene Linien"
+
+#: ../bin/cdraw.c:1171
+msgid "Circle Lines"
+msgstr "Kreislinien"
+
+#: ../bin/cdraw.c:1171
+msgid "Draw Circles"
+msgstr "Zeichne Kreise"
+
+#: ../bin/cdraw.c:1172
+msgid "Shapes"
+msgstr "Formen"
+
+#: ../bin/cdraw.c:1172
+msgid "Draw Shapes"
+msgstr "Zeichne Formen"
+
+#: ../bin/celev.c:44 ../bin/cprofile.c:1383 ../bin/csplit.c:107
+#: ../bin/csplit.c:112 ../bin/dease.c:65 ../bin/doption.c:109
+#: ../bin/doption.c:111
+msgid "None"
+msgstr "Kein"
+
+#: ../bin/celev.c:44
+msgid "Defined"
+msgstr "Fest"
+
+#: ../bin/celev.c:44
+msgid "Hidden"
+msgstr "Versteckt"
+
+#: ../bin/celev.c:45
+msgid "Computed"
+msgstr "Berechnet"
+
+#: ../bin/celev.c:45
+msgid "Station"
+msgstr "Bahnhof"
+
+#: ../bin/celev.c:45 ../bin/cprofile.c:1382 ../bin/dcmpnd.c:74
+#: ../bin/misc.c:2490
+msgid "Ignore"
+msgstr "Ignorieren"
+
+#: ../bin/celev.c:123 ../bin/celev.c:168
+msgid "There are no reachable Defined Elevations"
+msgstr "Ziehen um die Höhe zu ändern"
+
+#: ../bin/celev.c:204
+msgid "Set Elevation"
+msgstr "Höhe festlegen"
+
+#: ../bin/celev.c:308 ../bin/celev.c:325
+#, c-format
+msgid "Elev = %s"
+msgstr "Höhe = %s"
+
+#: ../bin/celev.c:310 ../bin/celev.c:327
+#, c-format
+msgid "Dist = %s"
+msgstr "Entfernung = %s"
+
+#: ../bin/celev.c:316 ../bin/celev.c:333 ../bin/celev.c:374 ../bin/celev.c:381
+#: ../bin/celev.c:384
+#, c-format
+msgid "Undefined"
+msgstr "Undefiniert"
+
+#: ../bin/celev.c:406 ../bin/celev.c:472
+msgid "Elevation"
+msgstr "Höhe"
+
+#: ../bin/celev.c:406 ../bin/cmisc.c:423 ../bin/cprofile.c:1279
+#: ../bin/dcontmgm.c:300 ../bin/dcustmgm.c:358 ../bin/dlayer.c:1026
+#: ../bin/dpricels.c:154
+msgid "Done"
+msgstr "Fertig"
+
+#: ../bin/celev.c:434 ../bin/csplit.c:92 ../bin/csplit.c:155
+msgid "Split Track"
+msgstr "Gleis auftrennen"
+
+#: ../bin/cgroup.c:591
+msgid "Ungroup Object"
+msgstr "Gruppierung aufheben"
+
+#: ../bin/cgroup.c:603
+#, c-format
+msgid "%d objects ungrouped"
+msgstr "%d Gruppierungen aufgelöst"
+
+#: ../bin/cgroup.c:605
+msgid "No objects ungrouped"
+msgstr "Keine Gruppierungen aufgelöst"
+
+#: ../bin/cgroup.c:614
+msgid "Replace with new group?"
+msgstr "Durch neue Gruppe ersetzen?"
+
+#: ../bin/cgroup.c:619 ../bin/compound.c:518 ../bin/cstruct.c:70
+#: ../bin/ctodesgn.c:148 ../bin/ctodesgn.c:1772 ../bin/cturnout.c:76
+#: ../bin/dcar.c:1945 ../bin/dcar.c:4082 ../bin/dcar.c:4087
+#: ../bin/dcmpnd.c:450 ../bin/dcustmgm.c:50
+#: ../../../../build/work/app/bin/bllnhlp.c:346
+#: ../../../../build/work/app/bin/bllnhlp.c:521
+msgid "Manufacturer"
+msgstr "Hersteller"
+
+#: ../bin/cgroup.c:620 ../bin/cmisc.c:423 ../bin/cstruct.c:70
+#: ../bin/ctodesgn.c:1773 ../bin/ctodesgn.c:1774 ../bin/ctrain.c:186
+#: ../bin/cturnout.c:76 ../bin/dcar.c:1961 ../bin/dcar.c:4083
+#: ../bin/dcar.c:4088 ../bin/dcmpnd.c:451 ../bin/dcustmgm.c:51
+#: ../bin/denum.c:182 ../bin/denum.c:183 ../bin/denum.c:186
+#: ../../../../build/work/app/bin/bllnhlp.c:347
+msgid "Description"
+msgstr "Beschreibung"
+
+#: ../bin/cgroup.c:621 ../bin/dcmpnd.c:452
+msgid "#"
+msgstr "Nr."
+
+#: ../bin/cgroup.c:622 ../bin/compound.c:522
+msgid "# Segments"
+msgstr "Anzahl Segmente"
+
+#: ../bin/cgroup.c:1088
+msgid "No endpts"
+msgstr "Keine Endpunkte"
+
+#: ../bin/cgroup.c:1174
+msgid "No paths"
+msgstr "Keine Wege"
+
+#: ../bin/cgroup.c:1508 ../bin/cgroup.c:1562
+msgid "Group Tracks"
+msgstr "Gleise gruppieren"
+
+#: ../bin/cgroup.c:1618
+msgid "Group Objects"
+msgstr "Objekte gruppieren"
+
+#: ../bin/chndldto.c:70
+msgid "Place frog and drag angle"
+msgstr "Herzstück festlegen und auf Winkel ziehen"
+
+#: ../bin/chndldto.c:87
+msgid "frog"
+msgstr "Herzstück"
+
+#: ../bin/chndldto.c:93
+msgid "Drag to set angle"
+msgstr "Durch Ziehen den Winkel festlegen"
+
+#: ../bin/chndldto.c:134
+#, c-format
+msgid "Angle = %0.2f Frog# = %0.2f"
+msgstr "Winkel = %0.2f Steigung = %0.2f"
+
+#: ../bin/chndldto.c:136
+msgid "Frog angle is too close to 0"
+msgstr "Herzstückwinkel ist zu nahe bei 0"
+
+#: ../bin/chndldto.c:139
+msgid "Select point position"
+msgstr "Position des Punktes auswählen"
+
+#: ../bin/chndldto.c:153 ../bin/chndldto.c:178
+msgid "points"
+msgstr "Punkte"
+
+#: ../bin/chndldto.c:275
+#, c-format
+msgid "Length = %0.2f Angle = %0.2f Frog# = %0.2f"
+msgstr "Länge = %0.2f Winkel = %0.2f Steigung=%0.2f"
+
+#: ../bin/chndldto.c:279
+msgid "Create Hand Laid Turnout"
+msgstr "Erstelle eine Selbstbauweiche"
+
+#: ../bin/chndldto.c:370
+msgid "HandLaidTurnout"
+msgstr "Selbstbauweiche"
+
+#: ../bin/cjoin.c:172
+#, c-format
+msgid "Curved Track: Radius=%s Length=%s"
+msgstr "Gleisbogen: Radius=%s Länge=%s"
+
+#: ../bin/cjoin.c:258
+#, c-format
+msgid "Curved Track: Radius=%s Length=%s Angle=%0.3f"
+msgstr "Gleisbogen: Radius=%s Länge=%s Winkel=%0.3f"
+
+#: ../bin/cjoin.c:354
+#, c-format
+msgid "Track (%d) is too short for transition-curve by %0.3f"
+msgstr "Gleis (%d) ist für den Übergangsbogen um %0.3f zu kurz"
+
+#: ../bin/cjoin.c:371
+#, c-format
+msgid "Connecting track is too short by %0.3f"
+msgstr "Verbindungsgleis ist um %0.3f zu kurz"
+
+#: ../bin/cjoin.c:415
+msgid "Click on an unselected End-Point"
+msgstr "Einen nicht ausgewählten Endpunkt anklicken"
+
+#: ../bin/cjoin.c:416
+msgid "Click on a selected End-Point"
+msgstr "Einen ausgewählten Endpunkt anclicken"
+
+#: ../bin/cjoin.c:423
+msgid "unselected"
+msgstr "nicht ausgewählt"
+
+#: ../bin/cjoin.c:423 ../bin/cprint.c:148
+msgid "selected"
+msgstr "ausgewählt"
+
+#: ../bin/cjoin.c:459
+msgid "Left click - join with track"
+msgstr "Linke Maustaste - Verbinden mit neuem Gleis"
+
+#: ../bin/cjoin.c:461
+msgid "Left click - join with track, Shift Left click - move to join"
+msgstr ""
+"Linke Maustaste - Verbinden mit neuem Gleis, Umschalten + linke Maustaste - "
+"Verschieben zum Verbinden"
+
+#: ../bin/cjoin.c:496 ../bin/cjoin.c:815 ../bin/cjoin.c:824
+msgid "Select 2nd track"
+msgstr "Zweites Gleis auswählen"
+
+#: ../bin/cjoin.c:623
+msgid "Beyond end of 2nd track"
+msgstr "Außerhalb des zweiten Gleises"
+
+#: ../bin/cjoin.c:658
+msgid "Beyond end of 1st track"
+msgstr "Außerhalb des ersten Gleises"
+
+#: ../bin/cjoin.c:680
+msgid "First Track Type not supported for non-Cornu Join"
+msgstr "Das erste Gleis kann nur über Cornu-Kurven verbunden werden"
+
+#: ../bin/cjoin.c:687
+msgid "First "
+msgstr "Erste "
+
+#: ../bin/cjoin.c:712
+msgid "Second Track Type not supported for non-Cornu Join"
+msgstr "Das zweite Gleis kann nur über Cornu-Kurven verbunden werden"
+
+#: ../bin/cjoin.c:719
+msgid "Second "
+msgstr "Zweite "
+
+#: ../bin/cjoin.c:733 ../bin/track.c:1977
+msgid "Connecting "
+msgstr "Verbinde "
+
+#: ../bin/cjoin.c:827
+msgid "Join Tracks"
+msgstr "Gleise zusammenfügen"
+
+#: ../bin/cjoin.c:895
+msgid "Join"
+msgstr "Verbinden"
+
+#: ../bin/cmisc.c:52
+msgid "Middle"
+msgstr "Mittel"
+
+#: ../bin/cmisc.c:229 ../bin/cmodify.c:207 ../bin/cnote.c:190
+#: ../bin/compound.c:591 ../bin/ctrain.c:213
+msgid "Change Track"
+msgstr "Gleis ändern"
+
+#: ../bin/cmisc.c:535
+msgid "Select track to describe"
+msgstr "Zu beschreibendes Gleis auswählen"
+
+#: ../bin/cmisc.c:592 ../bin/doption.c:213
+msgid "Properties"
+msgstr "Eigenschaften"
+
+#: ../bin/cmisc2.c:52
+msgid "Bridge"
+msgstr "Brücke"
+
+#: ../bin/cmodify.c:144
+msgid "Select track to modify"
+msgstr "Zu bearbeitendes Gleis auswählen"
+
+#: ../bin/cmodify.c:265
+msgid "Modify Track"
+msgstr "Gleis bearbeiten"
+
+#: ../bin/cmodify.c:303
+msgid "Drag to create new track segment"
+msgstr "Ziehen um einen neuen Gleisabschnitt zu erstellen"
+
+#: ../bin/cmodify.c:433
+#, c-format
+msgid "Curve Track: Radius=%s Length=%s Angle=%0.3f"
+msgstr "Gleisbogen: Radius=%s Länge=%s Winkel=%0.3f"
+
+#: ../bin/cmodify.c:450
+msgid "Extend Track"
+msgstr "Gleis verlängern"
+
+#: ../bin/cmodify.c:526
+msgid "Modify"
+msgstr "Verändern"
+
+#: ../bin/cnote.c:100 ../bin/cnote.c:233 ../bin/cnote.c:465
+msgid "Note"
+msgstr "Notiz"
+
+#: ../bin/cnote.c:106
+msgid "Replace this text with your layout notes"
+msgstr "Ersetzen Sie diesen Text durch Ihre Notizen"
+
+#: ../bin/cnote.c:217 ../bin/cnote.c:218 ../bin/cnote.c:219
+msgid "Note: "
+msgstr "Notiz: "
+
+#: ../bin/cnote.c:416 ../../../../build/work/app/bin/bllnhlp.c:94
+msgid "Place a note on the layout"
+msgstr "Eine Notiz auf den Gleisplan setzen"
+
+#: ../bin/cnote.c:432
+msgid "New Note"
+msgstr "Neue Notiz"
+
+#: ../bin/cnote.c:438
+msgid "Replace this text with your note"
+msgstr "Ersetzen Sie diesen Text durch Ihre Notizen"
+
+#: ../bin/compound.c:497 ../bin/compound.c:502 ../bin/compound.c:507
+#: ../bin/compound.c:512 ../bin/tbezier.c:239 ../bin/tbezier.c:246
+#: ../bin/tcornu.c:289 ../bin/tcornu.c:294
+msgid "Center X,Y"
+msgstr "Mittelpunkt: X,Y"
+
+#: ../bin/compound.c:499 ../bin/tbezier.c:240 ../bin/tcornu.c:290
+msgid "Z1"
+msgstr "Z1"
+
+#: ../bin/compound.c:504 ../bin/tbezier.c:247 ../bin/tcornu.c:295
+msgid "Z2"
+msgstr "Z2"
+
+#: ../bin/compound.c:505
+msgid "End Pt 3: X,Y"
+msgstr "Endpunkt 3: X,Y"
+
+#: ../bin/compound.c:509
+msgid "Z3"
+msgstr "Z3"
+
+#: ../bin/compound.c:510
+msgid "End Pt 4: X,Y"
+msgstr "Endpunkt 4: X,Y"
+
+#: ../bin/compound.c:514
+msgid "Z4"
+msgstr "Z4"
+
+#: ../bin/compound.c:520 ../bin/cstruct.c:70 ../bin/cturnout.c:76
+#: ../bin/dcar.c:4082 ../bin/dcar.c:4087 ../bin/dcustmgm.c:51
+#: ../bin/doption.c:114 ../bin/doption.c:115
+msgid "Part No"
+msgstr "Teilenr"
+
+#: ../bin/compound.c:521
+msgid "# End Pts"
+msgstr "Anzahl der Endpunkte"
+
+#: ../bin/compound.c:832 ../bin/cswitchmotor.c:220 ../bin/cturnout.c:894
+#: ../bin/cturnout.c:2406 ../bin/cturnout.c:2576
+msgid "Turnout"
+msgstr "Weiche"
+
+#: ../bin/compound.c:832
+msgid "Sectional Track"
+msgstr "Festgleise"
+
+#: ../bin/compound.c:834 ../bin/cstruct.c:771 ../bin/cstruct.c:916
+msgid "Structure"
+msgstr "Gebäude"
+
+#: ../bin/cparalle.c:44 ../bin/cparalle.c:74 ../bin/cparalle.c:86
+#: ../bin/ctodesgn.c:390 ../bin/ctodesgn.c:410 ../bin/ctodesgn.c:430
+#: ../bin/tcurve.c:362
+msgid "Separation"
+msgstr "Zwischenraum"
+
+#: ../bin/cparalle.c:96
+msgid " Track doesn't support parallel"
+msgstr "Zu diesem Gleis kann keine Parallele erstellt erwerden"
+
+#: ../bin/cparalle.c:145
+msgid "Create Parallel Track"
+msgstr "Erzeuge paralleles Gleis"
+
+#: ../bin/cparalle.c:189 ../../../../build/work/app/i18n/custmsg.h:44
+msgid "Parallel"
+msgstr "Parallel"
+
+#: ../bin/cprint.c:102
+msgid "Portrait"
+msgstr "Hochformat"
+
+#: ../bin/cprint.c:102
+msgid "Landscape"
+msgstr "Querformat"
+
+#: ../bin/cprint.c:103 ../bin/cselect.c:2063 ../bin/cselect.c:2067
+#: ../bin/cswitchmotor.c:87 ../bin/cswitchmotor.c:106
+#: ../bin/cswitchmotor.c:217 ../bin/dbench.c:78 ../bin/dease.c:65
+#: ../bin/doption.c:108 ../bin/doption.c:110 ../bin/doption.c:208
+#: ../bin/macro.c:1168
+msgid "Normal"
+msgstr "Normal"
+
+#: ../bin/cprint.c:103 ../bin/cswitchmotor.c:88 ../bin/cswitchmotor.c:107
+#: ../bin/cswitchmotor.c:218 ../bin/ctrain.c:877 ../bin/ctrain.c:1188
+msgid "Reverse"
+msgstr "Rückwärts"
+
+#: ../bin/cprint.c:104
+msgid "Engineering Data"
+msgstr "Zeichnungsinformationen"
+
+#: ../bin/cprint.c:105
+msgid "Print Registration Marks"
+msgstr "Drucke Positionierungshilfen"
+
+#: ../bin/cprint.c:106
+msgid "Ignore Page Margins"
+msgstr "Übergehe Seitenränder"
+
+#: ../bin/cprint.c:107
+msgid "Print Snap Grid"
+msgstr "Fangraster drucken"
+
+#: ../bin/cprint.c:108
+msgid "Print Rulers"
+msgstr "Maßlinien drucken"
+
+#: ../bin/cprint.c:109 ../../../../build/work/app/bin/bllnhlp.c:425
+msgid "Print Roadbed Outline"
+msgstr "Gleisbettung drucken"
+
+#: ../bin/cprint.c:110
+msgid "Print Centerline below Scale 1:1"
+msgstr "Mittellinie bei Maßstab<1:1 ausgeben"
+
+#: ../bin/cprint.c:118
+msgid "Print Scale"
+msgstr "Druckmaßstab"
+
+#: ../bin/cprint.c:119
+msgid "Page Width"
+msgstr "Seitenbreite"
+
+#: ../bin/cprint.c:120
+msgid "Max"
+msgstr "Max."
+
+#: ../bin/cprint.c:121
+msgid "Height"
+msgstr "Seitenhöhe"
+
+#: ../bin/cprint.c:122
+msgid "Snap Shot"
+msgstr "Schnappschuss"
+
+#: ../bin/cprint.c:123
+msgid "Page Format"
+msgstr "Seitenformat"
+
+#: ../bin/cprint.c:124
+msgid "Print Order"
+msgstr "Druckreihenfolge"
+
+#: ../bin/cprint.c:139 ../bin/ctrain.c:185 ../bin/dcar.c:1984
+msgid "Width"
+msgstr "Breite"
+
+#: ../bin/cprint.c:140 ../bin/cturntbl.c:245
+msgid "Origin: X"
+msgstr "Ausgangspunkt: X"
+
+#: ../bin/cprint.c:141 ../bin/csnap.c:542
+msgid "Y"
+msgstr "Y"
+
+#: ../bin/cprint.c:142 ../bin/dcar.c:1965
+msgid "Reset"
+msgstr "Zurücksetzen"
+
+#: ../bin/cprint.c:144
+msgid "Setup"
+msgstr "Einstellungen"
+
+#: ../bin/cprint.c:145 ../bin/cprofile.c:569 ../bin/misc.c:680
+msgid "Clear"
+msgstr "Löschen"
+
+#: ../bin/cprint.c:147 ../bin/cprint.c:588
+msgid "0 pages"
+msgstr "0 Seiten"
+
+#: ../bin/cprint.c:211 ../bin/cprint.c:260
+#, c-format
+msgid "%d pages"
+msgstr "%d Seiten"
+
+#: ../bin/cprint.c:380
+#, c-format
+msgid "PrintScale 1:%ld Room %s x %s Model Scale %s File %s"
+msgstr "Druckmaßstab 1:%ld Raum %s x %s Modellmaßstab %s Datei %s"
+
+#: ../bin/cprint.c:669
+msgid "1 page"
+msgstr "1 Seite"
+
+#: ../bin/cprint.c:1039 ../bin/cprofile.c:570 ../bin/ctodesgn.c:1720
+#: ../bin/denum.c:55
+msgid "Print"
+msgstr "Drucken"
+
+#: ../bin/cprint.c:1061
+msgid "Select pages to print, or drag to move print grid"
+msgstr ""
+"Zu druckende Seiten auswählen oder ziehen um das Druckraster zu verschieben"
+
+#: ../bin/cprint.c:1160
+msgid "Print..."
+msgstr "Drucken..."
+
+#: ../bin/cprofile.c:477 ../bin/cprofile.c:1279 ../bin/cprofile.c:1379
+#: ../../../../build/work/app/bin/bllnhlp.c:105
+#: ../../../../build/work/app/i18n/custmsg.h:40
+msgid "Profile"
+msgstr "Höhenprofil"
+
+#: ../bin/cprofile.c:493
+#, c-format
+msgid "%s Profile: %s"
+msgstr "%s Höhenprofil: %s"
+
+#: ../bin/cprofile.c:641 ../bin/cprofile.c:651
+#, c-format
+msgid "Elev = %0.1f"
+msgstr "Höhe = %0.1f"
+
+#: ../bin/cprofile.c:653
+#, c-format
+msgid "Elev=%0.2f %0.1f%%"
+msgstr "Höhe=%0.2f %0.1f%%"
+
+#: ../bin/cprofile.c:657
+#, c-format
+msgid "%0.1f%% Elev = %0.2f"
+msgstr "%0.1f%% Höhe = %0.2f"
+
+#: ../bin/cprofile.c:661
+#, c-format
+msgid "%0.1f%% Elev = %0.2f %0.1f%%"
+msgstr "%0.1f%% Höhe = %0.2f %0.1f%%"
+
+#: ../bin/cprofile.c:672 ../bin/cprofile.c:1226
+msgid "Profile Command"
+msgstr "Höhenprofil bearbeiten"
+
+#: ../bin/cprofile.c:680 ../bin/cprofile.c:1284
+msgid "Drag to change Elevation"
+msgstr "Ziehen um die Höhe zu ändern"
+
+#: ../bin/cprofile.c:747
+msgid "Select a Defined Elevation to start Profile"
+msgstr "Eine festgelegte Höhe auswählen, um das Höhenprofil zu beginnen"
+
+#: ../bin/cprofile.c:749
+msgid "Select a Defined Elevation to extend Profile"
+msgstr "Eine festgelegte Höhe auswählen, um das Höhenprofil zu erweitern"
+
+#: ../bin/cprofile.c:1296
+msgid "Select a Defined Elevation to start profile"
+msgstr "Eine festgelegte Höhe auswählen, um das Höhenprofil zu beginnen"
+
+#: ../bin/cprofile.c:1381
+msgid "Define"
+msgstr "Festlegen"
+
+#: ../bin/cpull.c:436 ../bin/cpull.c:589
+#, c-format
+msgid "%d tracks moved"
+msgstr "%d Gleise verschoben"
+
+#: ../bin/cpull.c:479
+msgid "Pull Tracks"
+msgstr "Gleise ziehen"
+
+#: ../bin/cpull.c:553
+msgid "Tighten Tracks"
+msgstr "Gleise zusammendrücken"
+
+#: ../bin/cpull.c:613
+msgid "Select first end-point to connect"
+msgstr "Ersten Endpunkt für Verbindung auswählen"
+
+#: ../bin/cpull.c:615
+msgid ""
+"Select first end-point to connect, or Right-Click for connecting selected "
+"tracks"
+msgstr ""
+"Ersten Endpunkt zum Verbinden auswählen oder mit Rechts-Klick die "
+"ausgewählten Gleise verbinden"
+
+#: ../bin/cpull.c:630
+msgid "Select second end-point to connect"
+msgstr "Zweiten Endpunkt für Verbindung auswählen"
+
+#: ../bin/cpull.c:669
+msgid "Connect Multiple Tracks - Select multiple tracks to join first"
+msgstr ""
+"Verbinde mehrere Gleise - zuerst mehrere Gleise für die Verbindung auswählen"
+
+#: ../bin/cpull.c:672
+msgid "Try to Connect all Selected Tracks?"
+msgstr "Sollen alle ausgewählten Gleise verbunden werden?"
+
+#: ../bin/cpull.c:675
+msgid "ReConnect"
+msgstr "Wiederverbinden"
+
+#: ../bin/cpull.c:711
+#, c-format
+msgid ""
+"Round 1 %d and Round 2 %d tracks connected, %d close pairs of end Points "
+"were not connected"
+msgstr ""
+"In Durchgang 1 %d und in Durchgang 2 %d Gleise verbunden, %d nahe "
+"beieinander liegene Punkte wurden nicht verbunden"
+
+#: ../bin/cpull.c:737
+msgid "Connect Two Tracks"
+msgstr "Zwei Gleise zusammenfügen"
+
+#: ../bin/cruler.c:151 ../../../../build/work/app/i18n/custmsg.h:51
+msgid "Ruler"
+msgstr "Lineal"
+
+#: ../bin/cselect.c:319
+msgid "Change Track Width"
+msgstr "Gleisbreite ändern"
+
+#: ../bin/cselect.c:340
+msgid "Delete Tracks"
+msgstr "Gleise löschen"
+
+#: ../bin/cselect.c:392
+msgid "Hide Tracks (Tunnel)"
+msgstr "Gleise verbergen (Tunnel)"
+
+#: ../bin/cselect.c:431 ../bin/misc.c:2195
+msgid "Move To Current Layer"
+msgstr "Auf aktuelle Ebene verschieben"
+
+#: ../bin/cselect.c:470 ../bin/misc.c:2313
+msgid "Clear Elevations"
+msgstr "Höhen löschen"
+
+#: ../bin/cselect.c:514
+msgid "Add Elevations"
+msgstr "Höhen hinzufügen"
+
+#: ../bin/cselect.c:529
+msgid "Refresh Compound"
+msgstr "Zusammenstellung aktualisieren"
+
+#: ../bin/cselect.c:566 ../bin/dcar.c:4082 ../bin/dcar.c:4087
+#: ../bin/dcustmgm.c:51 ../bin/layout.c:239
+msgid "Scale"
+msgstr "Maßstab"
+
+#: ../bin/cselect.c:566 ../bin/cselect.c:591
+msgid "Ratio"
+msgstr "Verhältnis"
+
+#: ../bin/cselect.c:575
+msgid "Do not resize track"
+msgstr "Gleismaße nicht ändern"
+
+#: ../bin/cselect.c:579
+msgid "Rescale by:"
+msgstr "Skalieren um:"
+
+#: ../bin/cselect.c:581
+msgid "From:"
+msgstr "Von:"
+
+#: ../bin/cselect.c:585
+msgid "To: "
+msgstr "Nach:"
+
+#: ../bin/cselect.c:650
+msgid "Rescale Tracks"
+msgstr "Gleise skalieren"
+
+#: ../bin/cselect.c:781 ../../../../build/work/app/i18n/custmsg.h:47
+msgid "Rescale"
+msgstr "Maßstab ändern"
+
+#: ../bin/cselect.c:808
+msgid "Draw moving track normally"
+msgstr "Bewegte Gleise normal zeichnen"
+
+#: ../bin/cselect.c:809
+msgid "Draw moving track simply"
+msgstr "Bewegte Gleise vereinfacht zeichnen"
+
+#: ../bin/cselect.c:810
+msgid "Draw moving track as end-points"
+msgstr "Bewegte Gleise als Endpunkte zeichnen"
+
+#: ../bin/cselect.c:1092
+msgid "Cornu too tight - it was deleted"
+msgstr "Klothoide ist zu eng und wurde gelöscht."
+
+#: ../bin/cselect.c:1112
+msgid "Cornu selected too tight after move - it was left alone"
+msgstr ""
+"Die ausgwählte Klothoide ist nach dem Verschieben zu eng und wurde daher "
+"nicht verändert."
+
+#: ../bin/cselect.c:1152
+msgid "Move To Join"
+msgstr "Verbinde durch Verschieben"
+
+#: ../bin/cselect.c:1198
+msgid "Drag to move selected tracks - Shift+Ctrl+Arrow micro-steps the move"
+msgstr ""
+"Ziehen um die ausgewählten Gleise zu verschieben - mit Umschalt+Str"
+"+Pfeiltasten umd feine Stufen verschieben"
+
+#: ../bin/cselect.c:1205 ../bin/cselect.c:1279 ../bin/cselect.c:1528
+msgid "Move Tracks"
+msgstr "Gleise verschieben"
+
+#: ../bin/cselect.c:1306
+msgid "Click on selected object to align"
+msgstr "Ausgewählte Objekte spiegeln"
+
+#: ../bin/cselect.c:1334
+msgid "Drag to rotate selected tracks, Shift+RightClick for QuickRotate Menu"
+msgstr ""
+"Ziehen um die ausgewählten Gleise zu rotieren, Umschalt-Taste und "
+"Rechtsklich das Schnellauswahlmenu öffnen"
+
+#: ../bin/cselect.c:1343 ../bin/cselect.c:1543
+msgid "Rotate Tracks"
+msgstr "Gleise drehen"
+
+#: ../bin/cselect.c:1356
+msgid "Center of Rotation snapped to Turntable center"
+msgstr ""
+"Der Mittelpunkt der Drehscheibe wird als Mittelpunkt der Rotation genutt"
+
+#: ../bin/cselect.c:1395 ../bin/cselect.c:1427
+#, c-format
+msgid "Angle %0.3f"
+msgstr "Winkel %0.3f"
+
+#: ../bin/cselect.c:1458
+#, c-format
+msgid " Angle %0.3f #%ld"
+msgstr " Winkel %0.3f #%ld"
+
+#: ../bin/cselect.c:1460
+#, c-format
+msgid " Angle %0.3f"
+msgstr " Winkel %0.3f"
+
+#: ../bin/cselect.c:1472
+msgid "Click on the 2nd Unselected object"
+msgstr "Klicken Sie auf das zweite, nicht ausgewählte Objekt."
+
+#: ../bin/cselect.c:1557
+msgid "Toggle Label"
+msgstr "Beschriftung umschalten"
+
+#: ../bin/cselect.c:1586
+msgid "Select and drag a description"
+msgstr "Beschreibung auswählen und verschieben"
+
+#: ../bin/cselect.c:1642
+msgid "Move Label"
+msgstr "Beschreibung verschieben"
+
+#: ../bin/cselect.c:1672
+msgid "Show Description"
+msgstr "Beschreibung anzeigen"
+
+#: ../bin/cselect.c:1754
+msgid "Drag to mark mirror line"
+msgstr "Ziehen um die Spiegelachse zu erstellen"
+
+#: ../bin/cselect.c:1770
+#, c-format
+msgid "Angle %0.2f"
+msgstr "Winkel %0.2f"
+
+#: ../bin/cselect.c:1776
+msgid "Flip Tracks"
+msgstr "Gleise spiegeln"
+
+#: ../bin/cselect.c:1940
+msgid "Select tracks"
+msgstr "Gleise auswählen"
+
+#: ../bin/cselect.c:2050 ../bin/dcar.c:1548 ../bin/doption.c:213
+#: ../../../../build/work/app/i18n/custmsg.h:13
+msgid "Select"
+msgstr "Auswählen"
+
+#: ../bin/cselect.c:2064 ../bin/cselect.c:2068 ../bin/doption.c:209
+msgid "Simple"
+msgstr "Einfach"
+
+#: ../bin/cselect.c:2065 ../bin/cselect.c:2069
+msgid "End Points"
+msgstr "Endpunkte"
+
+#: ../bin/cselect.c:2074
+msgid "Align"
+msgstr "Ausrichten"
+
+#: ../bin/cselect.c:2095 ../bin/misc.c:2125
+msgid "Tunnel"
+msgstr "Tunnel"
+
+#: ../bin/cselect.c:2104
+msgid "Move Description"
+msgstr "Beschreibungen verschieben"
+
+#: ../bin/cselect.c:2111 ../bin/misc.c:1878 ../bin/misc.c:2123
+msgid "Move"
+msgstr "Verschieben"
+
+#: ../bin/cselect.c:2113 ../bin/misc.c:1869 ../bin/misc.c:2124
+#: ../../../../build/work/app/i18n/custmsg.h:58
+msgid "Rotate"
+msgstr "Drehen"
+
+#: ../bin/cselect.c:2115 ../bin/dcar.c:1967
+#: ../../../../build/work/app/i18n/custmsg.h:59
+msgid "Flip"
+msgstr "Spiegeln"
+
+#: ../bin/csensor.c:197
+msgid "Change Sensor"
+msgstr "Sensor ändern"
+
+#: ../bin/csensor.c:243 ../bin/csensor.c:556
+msgid "Sensor"
+msgstr "Sensor"
+
+#: ../bin/csensor.c:374
+msgid "Create Sensor"
+msgstr "Sensor erstellen"
+
+#: ../bin/csensor.c:377
+msgid "Modify Sensor"
+msgstr "Sensor ändern"
+
+#: ../bin/csensor.c:410
+msgid "Edit sensor"
+msgstr "Sensor bearbeiten"
+
+#: ../bin/csensor.c:446
+msgid "Place sensor"
+msgstr "Sensor setzen"
+
+#: ../bin/csignal.c:237
+msgid "Number Of Heads"
+msgstr "Anzahl der Köpfe"
+
+#: ../bin/csignal.c:269
+msgid "Change Signal"
+msgstr "Signal ändern"
+
+#: ../bin/csignal.c:303
+#, c-format
+msgid "(%d [%s]): Layer=%d, %d heads at %0.3f,%0.3f A%0.3f"
+msgstr "(%d [%s]): Ebene=%d, %d Köpfe bei %0.3f,%0.3f A%0.3f"
+
+#: ../bin/csignal.c:314 ../bin/csignal.c:885
+msgid "Signal"
+msgstr "Signal"
+
+#: ../bin/csignal.c:492
+msgid "Number of Heads"
+msgstr "Anzahl der Köpfe"
+
+#: ../bin/csignal.c:497
+msgid "Edit Aspect"
+msgstr "Signalbild bearbeiten"
+
+#: ../bin/csignal.c:499
+msgid "Add Aspect"
+msgstr "Signalanzeige"
+
+#: ../bin/csignal.c:501
+msgid "Delete Aspect"
+msgstr "Signalbild löschen"
+
+#: ../bin/csignal.c:514
+msgid "Aspect Index"
+msgstr "Nummer der Signalanzeige"
+
+#: ../bin/csignal.c:529
+msgid "Create Signal"
+msgstr "Signal erstellen"
+
+#: ../bin/csignal.c:533
+msgid "Modify Signal"
+msgstr "Signal ändern"
+
+#: ../bin/csignal.c:640
+msgid "Edit aspect"
+msgstr "Signalbild bearbeiten"
+
+#: ../bin/csignal.c:687
+#, c-format
+msgid "Are you sure you want to delete the %d aspect(s)"
+msgstr "Sind Sie sicher, dass Sie %d Signalbilder löschen wollen?"
+
+#: ../bin/csignal.c:708
+msgid "Edit signal"
+msgstr "Signal bearbeiten"
+
+#: ../bin/csignal.c:770
+msgid "Place base of signal"
+msgstr "Basis des Signals festlegen"
+
+#: ../bin/csignal.c:775
+msgid "Drag to orient signal"
+msgstr "Durch Ziehen das Signal ausrichten"
+
+#: ../bin/csnap.c:523
+msgid "Horz"
+msgstr "Horiz."
+
+#: ../bin/csnap.c:525
+msgid "Spacing"
+msgstr "Abstand"
+
+#: ../bin/csnap.c:527
+msgid "Divisions"
+msgstr "Zwischenmarkierungen"
+
+#: ../bin/csnap.c:530
+msgid "Enable"
+msgstr "Einschalten"
+
+#: ../bin/csnap.c:531
+msgid "Vert"
+msgstr "Vert."
+
+#: ../bin/csnap.c:540 ../bin/dease.c:74
+msgid "X"
+msgstr "X"
+
+#: ../bin/csnap.c:544
+msgid "A"
+msgstr "A"
+
+#: ../bin/csnap.c:547
+msgid "Show"
+msgstr "Zeige"
+
+#: ../bin/csnap.c:717 ../bin/doption.c:488
+msgid "Snap Grid"
+msgstr "Fangraster"
+
+#: ../bin/csnap.c:802
+msgid "Change Grid..."
+msgstr "Raster anpassen..."
+
+#: ../bin/csplit.c:41
+msgid "Set Block Gaps"
+msgstr "Setze Trennstellen"
+
+#: ../bin/csplit.c:68
+msgid "Select track to split"
+msgstr "Zu trennendes Gleis auswählen"
+
+#: ../bin/csplit.c:84
+msgid "Can't Split that Track"
+msgstr "Dieses Gleis kann nicht getrennt werden"
+
+#: ../bin/csplit.c:108 ../bin/dbench.c:69 ../bin/dbench.c:80
+msgid "Left"
+msgstr "Links"
+
+#: ../bin/csplit.c:109 ../bin/dbench.c:70 ../bin/dbench.c:79
+msgid "Right"
+msgstr "Rechts"
+
+#: ../bin/csplit.c:110 ../bin/csplit.c:115
+msgid "Both"
+msgstr "Beides"
+
+#: ../bin/csplit.c:113
+msgid "Top"
+msgstr "Oben"
+
+#: ../bin/csplit.c:114
+msgid "Bottom"
+msgstr "Unten"
+
+#: ../bin/cstraigh.c:58
+msgid ""
+"Place 1st end point of straight track + Shift -> snap to unconnected endpoint"
+msgstr ""
+"Ersten Endpunkt der Gleisgerade setzen mit Umschalt-Taste an unverbundenen "
+"Endpunkt verbinden"
+
+#: ../bin/cstraigh.c:89
+msgid "Drag to place 2nd end point"
+msgstr "Ziehen um den zweiten Endpunkt zu setzen"
+
+#: ../bin/cstraigh.c:110
+#, c-format
+msgid "Straight Track Length=%s Angle=%0.3f"
+msgstr "Gleisgerade: Länge=%s Winkel=%0.3f"
+
+#: ../bin/cstraigh.c:158 ../bin/tstraigh.c:267
+msgid "Straight Track"
+msgstr "Gleisgerade"
+
+#: ../bin/cstruct.c:72 ../bin/cturnout.c:78 ../bin/doption.c:108
+#: ../bin/doption.c:216
+msgid "Hide"
+msgstr "Verstecken"
+
+#: ../bin/cstruct.c:327 ../bin/cstruct.c:354
+msgid "Pier Number"
+msgstr "Gleisanschluß"
+
+#: ../bin/cstruct.c:439
+#, c-format
+msgid "Scale %d:1"
+msgstr "Maßstab 1:%d"
+
+#: ../bin/cstruct.c:441
+#, c-format
+msgid "Width %s"
+msgstr "Breite %s"
+
+#: ../bin/cstruct.c:443
+#, c-format
+msgid "Height %s"
+msgstr "Höhe %s"
+
+#: ../bin/cstruct.c:541
+msgid "Place Structure"
+msgstr "Gebäude plazieren"
+
+#: ../bin/cstruct.c:651
+msgid "Drag to place"
+msgstr "Zur Position ziehen "
+
+#: ../bin/cstruct.c:680
+msgid "Drag to rotate"
+msgstr "Ziehen zum rotieren"
+
+#: ../bin/cstruct.c:701
+#, c-format
+msgid "Angle = %0.3f"
+msgstr "Winkel = %0.3f"
+
+#: ../bin/cstruct.c:788
+msgid "Select Structure and then drag to place"
+msgstr "Gebäued auswählen und in die Piosition ziehen"
+
+#: ../bin/cstruct.c:806 ../bin/cstruct.c:893
+msgid ""
+"Left drag to move, right drag to rotate, or press Return or click Ok to "
+"finalize"
+msgstr ""
+"Ziehen mit linker Maustaste zum Verschieben, mit rechter zum Drehen, oder "
+"Eingabetaste oder OK zum Abschliessen"
+
+#: ../bin/cstruct.c:886 ../bin/cturnout.c:2546
+#, c-format
+msgid "Place %s and draw into position"
+msgstr "%s setzen und in Position ziehen"
+
+#: ../bin/cswitchmotor.c:89 ../bin/cswitchmotor.c:108
+#: ../bin/cswitchmotor.c:219
+msgid "Point Sense"
+msgstr "Richtung der Weichenzungen"
+
+#: ../bin/cswitchmotor.c:109
+msgid "Turnout Number"
+msgstr "Weichennummer"
+
+#: ../bin/cswitchmotor.c:255
+msgid "Change Switch Motor"
+msgstr "Weichenantrieb ändern"
+
+#: ../bin/cswitchmotor.c:316
+msgid "Switch motor"
+msgstr "Weichenantrieb"
+
+#: ../bin/cswitchmotor.c:395
+#, c-format
+msgid "ResolveSwitchmotor: Turnout T%d: T%d doesn't exist"
+msgstr "ResolveSwitchmotor: Weiche T%d: T%d existiert nicht."
+
+#: ../bin/cswitchmotor.c:462 ../bin/cswitchmotor.c:625
+msgid "Switch motor must have a name!"
+msgstr "Der Weichenantrieb benötigt einen Namen!"
+
+#: ../bin/cswitchmotor.c:466
+msgid "Create Switch Motor"
+msgstr "Weichenantrieb erstellen"
+
+#: ../bin/cswitchmotor.c:491
+msgid "Create switch motor"
+msgstr "Weichenantrieb erstellen"
+
+#: ../bin/cswitchmotor.c:505 ../bin/cswitchmotor.c:536
+#: ../bin/cswitchmotor.c:568
+msgid "Select a turnout"
+msgstr "Wählen Sie eine Weiche aus"
+
+#: ../bin/cswitchmotor.c:512
+msgid "Not a turnout!"
+msgstr "Keine Weiche!"
+
+#: ../bin/cswitchmotor.c:545 ../bin/cswitchmotor.c:576
+msgid "Not a switch motor!"
+msgstr "Kein Weichenantrieb!"
+
+#: ../bin/cswitchmotor.c:581
+#, c-format
+msgid "Really delete switch motor %s?"
+msgstr "Soll der Weichenantrieb %s wirklich gelöscht werden?"
+
+#: ../bin/cswitchmotor.c:582
+msgid "Delete Switch Motor"
+msgstr "Weichenantrieb löschen"
+
+#: ../bin/cswitchmotor.c:629
+msgid "Modify Switch Motor"
+msgstr "Weichenantrieb ändern"
+
+#: ../bin/cswitchmotor.c:655
+msgid "Edit switch motor"
+msgstr "Weichenantrieb bearbeiten"
+
+#: ../bin/cswitchmotor.c:661
+#, c-format
+msgid "Edit switch motor %d"
+msgstr "Weichenantrieb %d bearbeiten"
+
+#: ../bin/cswitchmotor.c:769
+msgid "Switch Motor"
+msgstr "Weichenantrieb"
+
+#: ../bin/cswitchmotor.c:781
+#, c-format
+msgid "Deleting Switch Motor %s"
+msgstr "Weichenantrieb %s löschen"
+
+#: ../bin/ctext.c:211 ../bin/ctext.c:257
+msgid "Create Text"
+msgstr "Erstelle Text"
+
+#: ../bin/ctext.c:289
+msgid "Fonts..."
+msgstr "Schriftarten..."
+
+#: ../bin/ctodesgn.c:114
+msgid "Frog #"
+msgstr "Herzstück Steigung"
+
+#: ../bin/ctodesgn.c:114
+msgid "Degrees"
+msgstr "Grad"
+
+#: ../bin/ctodesgn.c:141 ../bin/ctodesgn.c:142 ../bin/ctodesgn.c:190
+#: ../bin/ctodesgn.c:213 ../bin/ctodesgn.c:215 ../bin/ctodesgn.c:251
+#: ../bin/ctodesgn.c:252 ../bin/ctodesgn.c:288 ../bin/ctodesgn.c:290
+#: ../bin/ctodesgn.c:505
+msgid "Offset"
+msgstr "Abstand"
+
+#: ../bin/ctodesgn.c:150 ../bin/ctodesgn.c:1767 ../bin/ctodesgn.c:1768
+msgid "Left Description"
+msgstr "Beschreibung, links"
+
+#: ../bin/ctodesgn.c:151 ../bin/ctodesgn.c:154
+msgid " #"
+msgstr " Nr."
+
+#: ../bin/ctodesgn.c:153 ../bin/ctodesgn.c:1766
+msgid "Right Description"
+msgstr "Beschreibung, rechts"
+
+#: ../bin/ctodesgn.c:155
+msgid "Roadbed Width"
+msgstr "Breite des Gleisbetts"
+
+#: ../bin/ctodesgn.c:159 ../bin/denum.c:56
+msgid "Print Setup"
+msgstr "Druckeinstellungen"
+
+#: ../bin/ctodesgn.c:188
+msgid "Diverging Length"
+msgstr "Länge des Abzweigs"
+
+#: ../bin/ctodesgn.c:189
+msgid "Diverging Angle"
+msgstr "Winkel des Abzweigs"
+
+#: ../bin/ctodesgn.c:190
+msgid "Diverging Offset"
+msgstr "Abstand des Abzweigs"
+
+#: ../bin/ctodesgn.c:191
+msgid "Overall Length"
+msgstr "Gesamtlänge"
+
+#: ../bin/ctodesgn.c:201
+msgid "Regular Turnout"
+msgstr "Normale Weiche"
+
+#: ../bin/ctodesgn.c:211
+msgid "Inner Length"
+msgstr "Innenlänge"
+
+#: ../bin/ctodesgn.c:212
+msgid "Inner Angle"
+msgstr "Innenwinkel"
+
+#: ../bin/ctodesgn.c:213
+msgid "Inner Offset"
+msgstr "Innenabstand"
+
+#: ../bin/ctodesgn.c:214
+msgid "Outer Angle"
+msgstr "Außenwinkel"
+
+#: ../bin/ctodesgn.c:215
+msgid "Outer Offset"
+msgstr "Außenabstand"
+
+#: ../bin/ctodesgn.c:216
+msgid "Outer Length"
+msgstr "Außenlänge"
+
+#: ../bin/ctodesgn.c:238
+msgid "Curved Turnout"
+msgstr "Bogenweiche"
+
+#: ../bin/ctodesgn.c:249 ../bin/ctodesgn.c:286
+msgid "Left Length"
+msgstr "Linke Länge"
+
+#: ../bin/ctodesgn.c:250 ../bin/ctodesgn.c:287
+msgid "Left Angle"
+msgstr "Linker Winkel"
+
+#: ../bin/ctodesgn.c:251 ../bin/ctodesgn.c:288
+msgid "Left Offset"
+msgstr "Linker Abstand"
+
+#: ../bin/ctodesgn.c:252 ../bin/ctodesgn.c:290
+msgid "Right Offset"
+msgstr "Rechter Abstand"
+
+#: ../bin/ctodesgn.c:253 ../bin/ctodesgn.c:291
+msgid "Right Angle"
+msgstr "Rechter Winkel"
+
+#: ../bin/ctodesgn.c:254 ../bin/ctodesgn.c:292
+msgid "Right Length"
+msgstr "Rechte Länge"
+
+#: ../bin/ctodesgn.c:276
+msgid "Wye Turnout"
+msgstr "Außenbogenweiche"
+
+#: ../bin/ctodesgn.c:317
+msgid "3-way Turnout"
+msgstr "Dreiwegweiche"
+
+#: ../bin/ctodesgn.c:337
+msgid "Crossing"
+msgstr "Kreuzung"
+
+#: ../bin/ctodesgn.c:358
+msgid "Single Slipswitch"
+msgstr "Einfache Kreuzungsweiche"
+
+#: ../bin/ctodesgn.c:379
+msgid "Double Slipswitch"
+msgstr "Doppelte Kreuzungsweiche"
+
+#: ../bin/ctodesgn.c:399
+msgid "Right Crossover"
+msgstr "Rechter Gleiswechsel"
+
+#: ../bin/ctodesgn.c:419
+msgid "Left Crossover"
+msgstr "Linker Gleiswechsel"
+
+#: ../bin/ctodesgn.c:439
+msgid "Double Crossover"
+msgstr "Doppelter Gleiswechsel"
+
+#: ../bin/ctodesgn.c:457
+msgid "Straight Section"
+msgstr "Gerader Abschnitt"
+
+#: ../bin/ctodesgn.c:468
+msgid "Angle (Degrees)"
+msgstr "Winkel (Grad)"
+
+#: ../bin/ctodesgn.c:476
+msgid "Curved Section"
+msgstr "Gebogener Abschnitt"
+
+#: ../bin/ctodesgn.c:495
+msgid "Bumper Section"
+msgstr "Prellbock"
+
+#: ../bin/ctodesgn.c:505 ../bin/denum.c:123 ../bin/denum.c:186
+#: ../bin/denum.c:218 ../bin/denum.c:219 ../bin/dlayer.c:454
+msgid "Count"
+msgstr "Anzahl"
+
+#: ../bin/ctodesgn.c:506
+msgid "Radius1"
+msgstr "Radius 1"
+
+#: ../bin/ctodesgn.c:507
+msgid "Radius2"
+msgstr "Radius 2"
+
+#: ../bin/ctodesgn.c:587
+msgid "Turntable Section"
+msgstr "Drehscheibenabschnitt"
+
+#: ../bin/ctodesgn.c:1421
+#, c-format
+msgid "%s Designer"
+msgstr "%s Designer"
+
+#: ../bin/ctodesgn.c:1425
+#, c-format
+msgid "%s %d x %d (of %d x %d)"
+msgstr "%s %d x %d (von %d x %d)"
+
+#: ../bin/ctodesgn.c:1425
+msgid "Page"
+msgstr "Seite"
+
+#: ../bin/ctodesgn.c:1433
+msgid "Frog Number"
+msgstr "Herzstücksteigung"
+
+#: ../bin/ctodesgn.c:1720
+msgid "Turnout Designer"
+msgstr "Weichendesigner"
+
+#: ../bin/ctodesgn.c:1730
+#, c-format
+msgid "%s %s Designer"
+msgstr "%s %s Designer"
+
+#: ../bin/ctrain.c:181 ../bin/dcar.c:1998 ../bin/dcar.c:4082
+#: ../bin/dcar.c:4087
+msgid "Index"
+msgstr "Verzeichnis"
+
+#: ../bin/ctrain.c:187 ../bin/dcar.c:4083
+msgid "Rep Marks"
+msgstr "Wagennummer"
+
+#: ../bin/ctrain.c:261
+msgid "Car"
+msgstr "Wagen"
+
+#: ../bin/ctrain.c:592
+msgid "Follow"
+msgstr "Folgen"
+
+#: ../bin/ctrain.c:593
+msgid "Auto Reverse"
+msgstr "Automat. Wenden"
+
+#: ../bin/ctrain.c:612 ../bin/dcar.c:4971
+msgid "Find"
+msgstr "Finden"
+
+#: ../bin/ctrain.c:618 ../bin/ctrain.c:877 ../bin/ctrain.c:1188
+#: ../wlib/gtklib/ixhelp.c:239
+msgid "Forward"
+msgstr "Vorwärts"
+
+#: ../bin/ctrain.c:620 ../bin/ctrain.c:3035 ../bin/dcar.c:4423
+#: ../bin/dcar.c:4433 ../bin/dcar.c:4553 ../bin/fileio.c:236 ../bin/macro.c:87
+msgid "Stop"
+msgstr "Anhalten"
+
+#: ../bin/ctrain.c:818 ../bin/ctrain.c:847
+msgid "Crashed"
+msgstr "Entgleist"
+
+#: ../bin/ctrain.c:820
+msgid "Not on Track"
+msgstr "Nicht auf einem Gleis"
+
+#: ../bin/ctrain.c:824
+msgid "Trains Paused"
+msgstr "Züge angehalten"
+
+#: ../bin/ctrain.c:826
+msgid "Running"
+msgstr "Fährt"
+
+#: ../bin/ctrain.c:831
+msgid "End of Track"
+msgstr "Ende des Gleis"
+
+#: ../bin/ctrain.c:835
+msgid "Open Turnout"
+msgstr "Weiche ist gesperrt"
+
+#: ../bin/ctrain.c:839
+msgid "Manual Stop"
+msgstr "Von Hand angehalten"
+
+#: ../bin/ctrain.c:843
+msgid "No Room"
+msgstr "Kein Platz"
+
+#: ../bin/ctrain.c:851
+msgid "Unknown Status"
+msgstr "Unbekannter Zustand"
+
+#: ../bin/ctrain.c:861
+msgid "No trains"
+msgstr "Keine Züge"
+
+#: ../bin/ctrain.c:1239
+msgid "Train Control XXX"
+msgstr "Zugsteuerung XXX"
+
+#: ../bin/ctrain.c:1240
+#, c-format
+msgid "Train Control %d"
+msgstr "Zugsteuerung %d"
+
+#: ../bin/ctrain.c:1242
+msgid "Train Control"
+msgstr "Zugsteuerung"
+
+#: ../bin/ctrain.c:3012
+msgid "Train"
+msgstr "Zug"
+
+#: ../bin/ctrain.c:3025
+msgid "Uncouple"
+msgstr "Entkuppeln"
+
+#: ../bin/ctrain.c:3027
+msgid "Flip Car"
+msgstr "Wagen umdrehen"
+
+#: ../bin/ctrain.c:3029
+msgid "Flip Train"
+msgstr "Zug umdrehen"
+
+#: ../bin/ctrain.c:3031
+msgid "MU Master"
+msgstr "Mehrtraktionssteuerung"
+
+#: ../bin/ctrain.c:3034
+msgid "Change Direction"
+msgstr "Richtung ändern"
+
+#: ../bin/ctrain.c:3038
+msgid "Remove Car"
+msgstr "Wagen entfernen"
+
+#: ../bin/ctrain.c:3041
+msgid "Remove Train"
+msgstr "Zug entfernen"
+
+#: ../bin/cturnout.c:89 ../bin/dcar.c:2020 ../bin/dcar.c:2024
+#: ../bin/dcustmgm.c:64
+msgid "New"
+msgstr "Neu"
+
+#: ../bin/cturnout.c:201
+#, c-format
+msgid "Turnout path[%d:%d] out of bounds: %d"
+msgstr "Weg durch Weiche[%d:%d] ausserhalb der Grenzen: %d"
+
+#: ../bin/cturnout.c:213 ../bin/cturnout.c:218
+#, c-format
+msgid "Turnout path[%d] %d is not a track segment"
+msgstr "Weg durch Weiche[%d] % ist kein Gleisabschnitt"
+
+#: ../bin/cturnout.c:226
+#, c-format
+msgid "Turnout path[%d] %d-%d not connected: %0.3f"
+msgstr "Weg durch Weiche[%d] %d-%d ist nicht verbunden: %0.3f"
+
+#: ../bin/cturnout.c:262
+msgid "Unknown special case"
+msgstr "Unbekannter Sonderfall"
+
+#: ../bin/cturnout.c:368
+msgid "Connect Adjustable Tracks"
+msgstr "Veränderbare Gleise verbinden"
+
+#: ../bin/cturnout.c:927
+msgid "splitTurnout: can't find segment"
+msgstr "Weiche auftrennen: Gleissegment nicht gefunden"
+
+#: ../bin/cturnout.c:1349 ../bin/track.c:1970 ../bin/tstraigh.c:542
+msgid "Drag to change track length"
+msgstr "Ziehen um die Gleislänge zu ändern"
+
+#: ../bin/cturnout.c:1360
+#, c-format
+msgid "Length=%s"
+msgstr "Länge=%s"
+
+#: ../bin/cturnout.c:1629 ../bin/cturnout.c:2590
+msgid "TURNOUT "
+msgstr "WEICHE "
+
+#: ../bin/cturnout.c:1980
+#, c-format
+msgid "%d connections, max distance %0.3f (%s)"
+msgstr "%d Verbindungen, max. Abstand %0.3f (%s)"
+
+#: ../bin/cturnout.c:1985
+#, c-format
+msgid "0 connections (%s)"
+msgstr "Keine Verbindungen (%s)"
+
+#: ../bin/cturnout.c:2025
+msgid "Place New Turnout"
+msgstr "Neue Weiche setzen"
+
+#: ../bin/cturnout.c:2269 ../bin/cturnout.c:2325 ../bin/cturnout.c:2441
+#: ../bin/cturnout.c:2553
+msgid ""
+"Left drag to move, right drag to rotate, press Space or Return to fix track "
+"in place or Esc to cancel"
+msgstr ""
+"Ziehen mit linker Maustaste zum Verschieben, mit rechter zum Drehen, oder "
+"Leerzeichen oder Eingabetaste zum Festlegen oder ESC zum Abbrechen"
+
+#: ../bin/cturnout.c:2316
+#, c-format
+msgid "Angle = %0.3f (%s)"
+msgstr "Winkel = %0.3f (%s)"
+
+#: ../bin/cturnout.c:2406 ../bin/param.c:2533
+msgid "Close"
+msgstr "Schliessen"
+
+#: ../bin/cturnout.c:2423
+msgid "Pick turnout and active End Point, then place on the layout"
+msgstr ""
+"Weiche und aktiven Endpunkt auswählen und dann auf den Gleisplan setzen"
+
+#: ../bin/cturntbl.c:52 ../bin/cturntbl.c:246 ../bin/cturntbl.c:819
+#: ../bin/cturntbl.c:832
+msgid "Diameter"
+msgstr "Durchmesser"
+
+#: ../bin/cturntbl.c:247
+msgid "# EndPt"
+msgstr "Anzahl Endpunkte"
+
+#: ../bin/cturntbl.c:281
+#, c-format
+msgid "Turntable(%d): Layer=%d Center=[%s %s] Diameter=%s #EP=%d"
+msgstr ""
+"Drehscheibe(%d): Ebene=%d Mittelpunkt=[%s %s] Durchmesser=%s Anzahl "
+"Endpunkte=%d"
+
+#: ../bin/cturntbl.c:296 ../bin/cturntbl.c:877
+msgid "Turntable"
+msgstr "Drehscheibe"
+
+#: ../bin/cturntbl.c:554
+msgid "Drag to create stall track"
+msgstr "Ziehen um Schuppengleis zu erstellen"
+
+#: ../bin/cturntbl.c:849
+msgid "Create Turntable"
+msgstr "Drehscheibe setzen"
+
+#: ../bin/cundo.c:166
+msgid "Undo Trace"
+msgstr "Undo Trace"
+
+#: ../bin/cundo.c:501
+#, c-format
+msgid "Undo: %s"
+msgstr "Rückgängig: %s"
+
+#: ../bin/cundo.c:504 ../../../../build/work/app/bin/bllnhlp.c:137
+msgid "Undo last command"
+msgstr "Letzten Befehl rückgängig machen"
+
+#: ../bin/cundo.c:509
+#, c-format
+msgid "Redo: %s"
+msgstr "Wiederholen: %s"
+
+#: ../bin/cundo.c:512 ../../../../build/work/app/bin/bllnhlp.c:107
+msgid "Redo last undo"
+msgstr "Rückgängig gemachten Befehl wiederholen"
+
+#: ../bin/custom.c:164
+#, c-format
+msgid "%s Turnout Designer"
+msgstr "%s Weichendesigner"
+
+#: ../bin/custom.c:169
+#, c-format
+msgid "%s Version %s"
+msgstr "%s Version %s"
+
+#: ../bin/custom.c:174
+#, c-format
+msgid "%s Files|*.xtc"
+msgstr "%s-Gleispläne|*.xtc"
+
+#: ../bin/custom.c:179
+#, c-format
+msgid "%s Import Files|*.%sti"
+msgstr "%s-Importdateien|*.%sti"
+
+#: ../bin/custom.c:184
+msgid "Data Exchange Format Files|*.dxf"
+msgstr "Data Exchange Format Dateien|*.dxf"
+
+#: ../bin/custom.c:188
+#, c-format
+msgid "%s Record Files|*.%str"
+msgstr "%s-Aufzeichnungsdateien|*.%str"
+
+#: ../bin/custom.c:193
+#, c-format
+msgid "%s Note Files|*.not"
+msgstr "%s-Notizen|*.not"
+
+#: ../bin/custom.c:198
+#, c-format
+msgid "%s Log Files|*.log"
+msgstr "%s-Protokolldateien|*.log"
+
+#: ../bin/custom.c:203
+#, c-format
+msgid "%s PartsList Files|*.txt"
+msgstr "%s-Stücklisten|*.txt"
+
+#: ../bin/dbench.c:43
+msgid " L-Girder"
+msgstr "L-Träger"
+
+#: ../bin/dbench.c:43
+msgid " T-Girder"
+msgstr "T-Träger"
+
+#: ../bin/dbench.c:66
+msgid "On Edge"
+msgstr "Hochkant"
+
+#: ../bin/dbench.c:67
+msgid "Flat"
+msgstr "Flach"
+
+#: ../bin/dbench.c:71
+msgid "Left-Down"
+msgstr "Links unten"
+
+#: ../bin/dbench.c:72
+msgid "Right-Down"
+msgstr "Rechts unten"
+
+#: ../bin/dbench.c:73
+msgid "Left-Up"
+msgstr "Links oben"
+
+#: ../bin/dbench.c:74
+msgid "Right-Up"
+msgstr "Rechts oben"
+
+#: ../bin/dbench.c:75
+msgid "Left-Inverted"
+msgstr "Links umgekehrt"
+
+#: ../bin/dbench.c:76
+msgid "Right-Inverted"
+msgstr "Rechts umgekehrt"
+
+#: ../bin/dbench.c:81
+msgid "Inverted"
+msgstr "Umgekehrt"
+
+#: ../bin/dbench.c:147
+#, c-format
+msgid ""
+"Bad BenchType for %s:\n"
+"%s"
+msgstr ""
+"Falscher Trägertyp %s:\n"
+"%s"
+
+#: ../bin/dbitmap.c:102 ../bin/dbitmap.c:106
+msgid "Drawn with "
+msgstr "Gezeichnet mit "
+
+#: ../bin/dbitmap.c:116
+msgid "Drawing tracks to BitMap"
+msgstr "Gleisplan als Grafik ausgeben"
+
+#: ../bin/dbitmap.c:123
+msgid "Writing BitMap to file"
+msgstr "Grafik in Datei speichern"
+
+#: ../bin/dbitmap.c:144
+msgid "Print Titles"
+msgstr "Überschriften ausgeben"
+
+#: ../bin/dbitmap.c:144
+msgid "Print Borders"
+msgstr "Rahmen ausgeben"
+
+#: ../bin/dbitmap.c:145
+msgid "Print Centerline"
+msgstr "Mittellinie ausgeben"
+
+#: ../bin/dbitmap.c:152
+msgid " dpi"
+msgstr " dpi"
+
+#: ../bin/dbitmap.c:154
+msgid "Bitmap : 99999 by 99999 pixels"
+msgstr "Grafik : 99999 auf 99999 Bildpunkte"
+
+#: ../bin/dbitmap.c:156
+msgid "Approximate file size: 999.9Mb"
+msgstr "Ungefähre Dateigrösse : 999.9Mb"
+
+#: ../bin/dbitmap.c:186
+#, c-format
+msgid "Bitmap : %ld by %ld pixels"
+msgstr "Grafik : %ld auf %ld Bildpunkte"
+
+#: ../bin/dbitmap.c:190
+#, c-format
+msgid "Approximate file size : %0.0f"
+msgstr "Ungefähre Dateigrösse : %0.0f"
+
+#: ../bin/dbitmap.c:192
+#, c-format
+msgid "Approximate file size : %0.1fKb"
+msgstr "Ungefähre Dateigrösse : %0.1fKb"
+
+#: ../bin/dbitmap.c:194
+#, c-format
+msgid "Approximate file size : %0.1fMb"
+msgstr "Ungefähre Dateigrösse : %0.1fMb"
+
+#: ../bin/dbitmap.c:208 ../bin/misc.c:1137 ../bin/misc.c:1207
+#: ../bin/param.c:2533 ../wlib/gtklib/browserhelp.c:127
+#: ../../../../build/work/app/bin/bllnhlp.c:540
+msgid "Cancel"
+msgstr "Abbruch"
+
+#: ../bin/dbitmap.c:213
+msgid "Save Bitmap"
+msgstr "Grafik speichern"
+
+#: ../bin/dbitmap.c:215
+msgid "Bitmap files|*.bmp"
+msgstr "Grafikdateien|*.bmp"
+
+#: ../bin/dbitmap.c:217
+msgid "Bitmap files|*.xpm"
+msgstr "Grafikdateien|*.xpm"
+
+#: ../bin/dbitmap.c:238
+msgid "BitMap"
+msgstr "Grafik"
+
+#: ../bin/dcar.c:53
+msgid "Truck"
+msgstr "Drehgestell"
+
+#: ../bin/dcar.c:53
+msgid "Body"
+msgstr "Aufbau"
+
+#: ../bin/dcar.c:154 ../bin/dcar.c:2449 ../bin/dcar.c:2453
+msgid "Unknown"
+msgstr "Unbekannt"
+
+#: ../bin/dcar.c:487
+msgid "Diesel Loco"
+msgstr "Diesellok"
+
+#: ../bin/dcar.c:488
+msgid "Steam Loco"
+msgstr "Dampflok"
+
+#: ../bin/dcar.c:489
+msgid "Elect Loco"
+msgstr "Elektrolok"
+
+#: ../bin/dcar.c:490
+msgid "Freight Car"
+msgstr "Güterwagen"
+
+#: ../bin/dcar.c:491
+msgid "Psngr Car"
+msgstr "Personenwagen"
+
+#: ../bin/dcar.c:492
+msgid "M-O-W"
+msgstr "Arbeitswagen"
+
+#: ../bin/dcar.c:493 ../bin/doption.c:116
+msgid "Other"
+msgstr "Sonstige"
+
+#: ../bin/dcar.c:1096 ../bin/dcar.c:4792
+msgid "N/A"
+msgstr "Keine Angabe"
+
+#: ../bin/dcar.c:1097 ../bin/dcar.c:4797
+msgid "Mint"
+msgstr "Neuwertig"
+
+#: ../bin/dcar.c:1098 ../bin/dcar.c:4796
+msgid "Excellent"
+msgstr "Exzellent"
+
+#: ../bin/dcar.c:1099 ../bin/dcar.c:4795
+msgid "Good"
+msgstr "Gut"
+
+#: ../bin/dcar.c:1100 ../bin/dcar.c:4794
+msgid "Fair"
+msgstr "In Ordnung"
+
+#: ../bin/dcar.c:1101 ../bin/dcar.c:4793
+msgid "Poor"
+msgstr "Schlecht"
+
+#: ../bin/dcar.c:1377 ../bin/dpricels.c:45
+#: ../../../../build/work/app/bin/bllnhlp.c:405
+msgid "Item"
+msgstr "Gegenstand"
+
+#: ../bin/dcar.c:1924 ../wlib/gtklib/notice.c:91 ../wlib/mswlib/mswmisc.c:1983
+msgid "Information"
+msgstr "Information"
+
+#: ../bin/dcar.c:1924
+msgid "Customize"
+msgstr "Anpassen"
+
+#: ../bin/dcar.c:1936
+msgid "Sequential"
+msgstr "Aufsteigend"
+
+#: ../bin/dcar.c:1936
+msgid "Repeated"
+msgstr "Wiederholend"
+
+#: ../bin/dcar.c:1947 ../bin/dcar.c:1949 ../bin/dcar.c:5122
+msgid "Prototype"
+msgstr "Vorbild"
+
+#: ../bin/dcar.c:1955
+msgid "Part"
+msgstr "Teil"
+
+#: ../bin/dcar.c:1957 ../../../../build/work/app/bin/bllnhlp.c:348
+#: ../../../../build/work/app/bin/bllnhlp.c:524
+#: ../../../../build/work/app/bin/bllnhlp.c:525
+msgid "Part Number"
+msgstr "Bestellnummer"
+
+#: ../bin/dcar.c:1959
+msgid "Loco?"
+msgstr "Lok?"
+
+#: ../bin/dcar.c:1963 ../bin/dcar.c:4120
+msgid "Import"
+msgstr "Import"
+
+#: ../bin/dcar.c:1970
+msgid "Mode"
+msgstr "Modus"
+
+#: ../bin/dcar.c:1974
+msgid "Road"
+msgstr "Gesellschaft"
+
+#: ../bin/dcar.c:1976
+msgid "Reporting Mark"
+msgstr "Wagennummer"
+
+#: ../bin/dcar.c:1978
+msgid "Number"
+msgstr "Nummer"
+
+#: ../bin/dcar.c:1982
+msgid "Car Length"
+msgstr "Wagenlänge"
+
+#: ../bin/dcar.c:1986
+msgid "Truck Centers"
+msgstr "Drehgestellabstand"
+
+#: ../bin/dcar.c:1988
+msgid "Coupler Mount"
+msgstr "Kupplungsbefestigung"
+
+#: ../bin/dcar.c:1990
+msgid "Coupled Length"
+msgstr "Gekuppelte Länge"
+
+#: ../bin/dcar.c:1992 ../bin/dcar.c:3958
+msgid "Coupler Length"
+msgstr "Kupplungslänge"
+
+#: ../bin/dcar.c:2000
+msgid "Purchase Price"
+msgstr "Kaufpreis"
+
+#: ../bin/dcar.c:2002 ../../../../build/work/app/bin/bllnhlp.c:214
+msgid "Current Price"
+msgstr "Aktueller Preis"
+
+#: ../bin/dcar.c:2004 ../bin/dcar.c:4084 ../bin/dcar.c:4089
+msgid "Condition"
+msgstr "Zustand"
+
+#: ../bin/dcar.c:2006
+msgid "Purchase Date"
+msgstr "Kaufdatum"
+
+#: ../bin/dcar.c:2008 ../bin/dcar.c:4089
+msgid "Service Date"
+msgstr "Servicedatum"
+
+#: ../bin/dcar.c:2010
+msgid "Quantity"
+msgstr "Anzahl"
+
+#: ../bin/dcar.c:2012
+msgid "Numbers"
+msgstr "Nummern"
+
+#: ../bin/dcar.c:2014 ../bin/dcar.c:4085
+#: ../../../../build/work/app/i18n/custmsg.h:61
+msgid "Notes"
+msgstr "Notizen"
+
+#: ../bin/dcar.c:2021 ../bin/dcustmgm.c:65
+msgid "Car Part"
+msgstr "Wagenvorlage"
+
+#: ../bin/dcar.c:2022 ../bin/dcustmgm.c:66
+#: ../../../../build/work/app/bin/bllnhlp.c:189
+#: ../../../../build/work/app/bin/bllnhlp.c:190
+msgid "Car Prototype"
+msgstr "Wagenvorbild"
+
+#: ../bin/dcar.c:2383 ../bin/dcar.c:2700
+msgid "Undecorated"
+msgstr "Unbeschriftet"
+
+#: ../bin/dcar.c:2441 ../bin/dcar.c:2445 ../bin/fileio.c:656
+msgid "Custom"
+msgstr "Individual"
+
+#: ../bin/dcar.c:2610
+msgid "Undecorated "
+msgstr "Unbeschriftet "
+
+#: ../bin/dcar.c:2830
+#, c-format
+msgid "New %s Scale Car"
+msgstr "Neuer Wagen in %s"
+
+#: ../bin/dcar.c:2831 ../bin/dcar.c:2840 ../bin/dcar.c:2849 ../bin/dcar.c:3988
+#: ../bin/dcar.c:4116
+msgid "Add"
+msgstr "Hinzufügen"
+
+#: ../bin/dcar.c:2833
+#, c-format
+msgid "Update %s Scale Car"
+msgstr "Aktualisiere Wagen in Maßstab %s"
+
+#: ../bin/dcar.c:2834 ../bin/dcar.c:2843 ../bin/dcar.c:2852
+#: ../bin/dcmpnd.c:172
+msgid "Update"
+msgstr "Aktualisieren"
+
+#: ../bin/dcar.c:2839
+#, c-format
+msgid "New %s Scale Car Part"
+msgstr "Neue Wagenvorlage in %s"
+
+#: ../bin/dcar.c:2842
+#, c-format
+msgid "Update %s Scale Car Part"
+msgstr "Wagenvorlage in %s aktualisieren"
+
+#: ../bin/dcar.c:2848
+msgid "New Prototype"
+msgstr "Neues Vorbild"
+
+#: ../bin/dcar.c:2851
+msgid "Update Prototype"
+msgstr "Aktualisiere Vorbild"
+
+#: ../bin/dcar.c:3494
+msgid "Enter a 8 digit numeric date"
+msgstr "Geben Sie ein 8-stelliges numerisches Datum ein"
+
+#: ../bin/dcar.c:3497
+msgid "Enter a 8 digit date"
+msgstr "Geben Sie ein 8-stelliges Datum ein"
+
+#: ../bin/dcar.c:3499
+msgid "Enter a date between 19000101 and 21991231"
+msgstr "Geben Sie ein Datum zwischen 19000101 und 21991231 ein"
+
+#: ../bin/dcar.c:3504
+msgid "Invalid month"
+msgstr "Ungültiger Monat"
+
+#: ../bin/dcar.c:3506
+msgid "Invalid day"
+msgstr "Ungültiger Kalendertag"
+
+#: ../bin/dcar.c:3592
+msgid "Enter a Prototype name"
+msgstr "Geben Sie den Namen des Vorbild ein"
+
+#: ../bin/dcar.c:3594
+msgid "Select or Enter a Manufacturer"
+msgstr "Hersteller auswählen oder eingeben"
+
+#: ../bin/dcar.c:3596
+msgid "Enter a Part Number"
+msgstr "Bestellnummer eingeben"
+
+#: ../bin/dcar.c:3598
+msgid "Enter the Car Length"
+msgstr "Länge des Wagen eingeben"
+
+#: ../bin/dcar.c:3600
+msgid "Enter the Car Width"
+msgstr "Breite des Wagen eingeben"
+
+#: ../bin/dcar.c:3602
+msgid "Enter the Truck Centers"
+msgstr "Drehgestellabstand eingeben"
+
+#: ../bin/dcar.c:3604
+msgid "Truck Centers must be less than Car Length"
+msgstr "Abstand der Drehgestelle muss kleiner als die Wagenlänge sein"
+
+#: ../bin/dcar.c:3606
+msgid "Enter the Coupled Length or Coupler Length"
+msgstr "Geben Sie die gekuppelte Länge oder die Kupplungslänge ein"
+
+#: ../bin/dcar.c:3608
+msgid "Enter the Coupled Length"
+msgstr "Geben Sie die gekuppelte Länge ein"
+
+#: ../bin/dcar.c:3610
+msgid "Enter a item Index"
+msgstr "Geben Sie eine Kennnummer ein"
+
+#: ../bin/dcar.c:3612
+msgid "Purchase Price is not valid"
+msgstr "Kaufpreis ist nicht gültig"
+
+#: ../bin/dcar.c:3614
+msgid "Current Price is not valid"
+msgstr "Aktueller Preis ist nicht gültig"
+
+#: ../bin/dcar.c:3616
+msgid "Purchase Date is not valid"
+msgstr "Kaufdatum ist nicht gültig"
+
+#: ../bin/dcar.c:3618
+msgid "Service Date is not valid"
+msgstr "Servicedatum ist nicht gültig"
+
+#: ../bin/dcar.c:3621
+#, c-format
+msgid "Item Index %ld duplicated an existing item: updated to new value"
+msgstr "Kennnummer %ld existiert bereits: mit neuem Wert aktualisiert"
+
+#: ../bin/dcar.c:3816
+#, c-format
+msgid "Added %ld new Cars"
+msgstr "%ld neue Wagen hinzugefügt"
+
+#: ../bin/dcar.c:3818
+msgid "Added new Car"
+msgstr "Neuen Wagen hinzugefügt"
+
+#: ../bin/dcar.c:3821
+msgid "Updated Car"
+msgstr "Wagen aktualisiert"
+
+#: ../bin/dcar.c:3824
+msgid " and Part"
+msgstr " und Teil"
+
+#: ../bin/dcar.c:3851
+#, c-format
+msgid "%s Part: %s %s %s %s %s %s"
+msgstr "%s Teil: %s %s %s %s %s %s"
+
+#: ../bin/dcar.c:3851 ../bin/dcar.c:3868
+msgid "Added new"
+msgstr "Neu hinzugefügt"
+
+#: ../bin/dcar.c:3851 ../bin/dcar.c:3868
+msgid "Updated"
+msgstr "Aktualisiert"
+
+#: ../bin/dcar.c:3867
+#, c-format
+msgid "%s Prototype: %s%s."
+msgstr "%s Vorbild: %s%s."
+
+#: ../bin/dcar.c:3869
+msgid ". Enter new values or press Close"
+msgstr ". Neue Werte eingeben oder Abbruch drücken"
+
+#: ../bin/dcar.c:3988
+msgid "New Car Part"
+msgstr "Neues Wagenmuster"
+
+#: ../bin/dcar.c:4083 ../bin/dcar.c:4088
+#: ../../../../build/work/app/bin/bllnhlp.c:378
+msgid "Roadname"
+msgstr "Gesellschaft"
+
+#: ../bin/dcar.c:4083
+msgid "Purc Price"
+msgstr "Kaufpreis"
+
+#: ../bin/dcar.c:4084 ../bin/dcar.c:4089
+msgid "Curr Price"
+msgstr "Akt. Preis"
+
+#: ../bin/dcar.c:4084
+msgid "Purc Date"
+msgstr "Kaufdaum"
+
+#: ../bin/dcar.c:4084
+msgid "Srvc Date"
+msgstr "Servicedatum"
+
+#: ../bin/dcar.c:4085
+msgid "Locat'n"
+msgstr "Ort"
+
+#: ../bin/dcar.c:4088
+msgid "RepMarks"
+msgstr "Wagennummer"
+
+#: ../bin/dcar.c:4088
+msgid "Purch Price"
+msgstr "Kaufpreis"
+
+#: ../bin/dcar.c:4089
+msgid "Purch Date"
+msgstr "Kaufdatum"
+
+#: ../bin/dcar.c:4106
+msgid "Sort By"
+msgstr "Sortierung"
+
+#: ../bin/dcar.c:4114 ../bin/dcontmgm.c:99 ../bin/dcustmgm.c:58
+#: ../bin/dcustmgm.c:95
+msgid "Edit"
+msgstr "Bearbeiten"
+
+#: ../bin/dcar.c:4118 ../bin/dcontmgm.c:101 ../bin/dcustmgm.c:60
+#: ../bin/misc.c:2128
+msgid "Delete"
+msgstr "Löschen"
+
+#: ../bin/dcar.c:4122 ../bin/fileio.c:1212
+msgid "Export"
+msgstr "Export"
+
+#: ../bin/dcar.c:4124 ../../../../build/work/app/bin/bllnhlp.c:541
+msgid "List"
+msgstr "Auflisten"
+
+#: ../bin/dcar.c:4239 ../bin/dcar.c:4971 ../bin/misc.c:2400
+msgid "Car Inventory"
+msgstr "Wagenverzeichnis"
+
+#: ../bin/dcar.c:4359
+msgid "List Cars"
+msgstr "Wagen auflisten"
+
+#: ../bin/dcar.c:4481 ../bin/dcar.c:4644
+msgid "Import Cars"
+msgstr "Wagen importieren"
+
+#: ../bin/dcar.c:4645 ../bin/dcar.c:4767
+msgid "Comma-Separated-Values|*.csv"
+msgstr "durch-Kommata getrente Werte|*.csv"
+
+#: ../bin/dcar.c:4715 ../bin/dcar.c:4766
+msgid "Export Cars"
+msgstr "Wagen exportieren"
+
+#: ../bin/dcar.c:4800
+msgid "Layout"
+msgstr "Anlage"
+
+#: ../bin/dcar.c:4802
+msgid "Shelf"
+msgstr "Regal"
+
+#: ../bin/dcmpnd.c:76 ../bin/dlayer.c:456 ../bin/misc.c:569 ../bin/misc.c:598
+msgid "Load"
+msgstr "Laden"
+
+#: ../bin/dcmpnd.c:109
+msgid "Updating definitions, please wait"
+msgstr "Bitte warten, Definitionen werden aktualisiert"
+
+#: ../bin/dcmpnd.c:172
+msgid "Update Title"
+msgstr "Ãœberschrift aktualisieren"
+
+#: ../bin/dcmpnd.c:232
+#, c-format
+msgid "End-Point #%d of the selected and actual turnouts are not close"
+msgstr ""
+"Endpunkte #%d der ausgewählten und der aktuellen Weiche sind nicht "
+"beieinander"
+
+#: ../bin/dcmpnd.c:241
+#, c-format
+msgid "End-Point #%d of the selected and actual turnouts are not aligned"
+msgstr ""
+"Endpunkte #%d der ausgewählten und der aktuellen Weiche sind nicht "
+"ausgerichtet"
+
+#: ../bin/dcmpnd.c:260
+msgid "The selected Turnout had a differing number of End-Points"
+msgstr "Die ausgewählte Weiche hatte eine andere Anzahl von Endpunkten"
+
+#: ../bin/dcmpnd.c:321
+msgid "Skip"
+msgstr "Überspringen"
+
+#: ../bin/dcmpnd.c:353
+#, c-format
+msgid "%d Track(s) refreshed"
+msgstr "%d Gleise bearbeitet"
+
+#: ../bin/dcmpnd.c:393
+msgid "Refresh Turnout/Structure"
+msgstr "Weichen/Gebäude neu laden"
+
+#: ../bin/dcmpnd.c:395
+msgid "Choose a Turnout/Structure to replace:"
+msgstr "Zu ersetzende Weiche / Gebäude auswählen"
+
+#: ../bin/dcmpnd.c:405 ../bin/doption.c:109
+#: ../../../../build/work/app/i18n/custmsg.h:31
+msgid "Turnouts"
+msgstr "Weichen"
+
+#: ../bin/dcmpnd.c:405
+msgid "Structures"
+msgstr "Gebäude"
+
+#: ../bin/dcmpnd.c:434
+msgid "Choose another Turnout/Structure to replace:"
+msgstr "Ein anderes zu ersetzende Weiche / Gebäude auswählen"
+
+#: ../bin/dcmpnd.c:536
+msgid "Rename Object"
+msgstr "Objekt umbenennen"
+
+#: ../bin/dcontmgm.c:92 ../bin/doption.c:116
+msgid "Tracks"
+msgstr "Gleise"
+
+#: ../bin/dcontmgm.c:173
+#, c-format
+msgid "Are you sure you want to delete the %d control element(s)"
+msgstr "Sind Sie sicher, dass Sie diese %d Steuerungselemente löschen wollen?"
+
+#: ../bin/dcontmgm.c:176
+msgid "Control Elements"
+msgstr "Steuerungselemente"
+
+#: ../bin/dcontmgm.c:300
+msgid "Manage Layout Control Elements"
+msgstr "Steuerungselemente verwalten"
+
+#: ../bin/dcustmgm.c:62
+msgid "Move To"
+msgstr "Verschieben nach"
+
+#: ../bin/dcustmgm.c:95
+msgid "Rename"
+msgstr "Umbenennen"
+
+#: ../bin/dcustmgm.c:162
+msgid "Label"
+msgstr "Beschriftung"
+
+#: ../bin/dcustmgm.c:200
+msgid "Contents Label"
+msgstr "Inhaltsbeschriftung"
+
+#: ../bin/dcustmgm.c:247
+msgid "Move To XTP"
+msgstr "\"In Paramterdatei verschieben"
+
+#: ../bin/dcustmgm.c:248
+msgid "Parameter File|*.xtp"
+msgstr "Parameterdateien|*.xtp"
+
+#: ../bin/dcustmgm.c:358
+msgid "Manage custom designed parts"
+msgstr "Eigene Teile verwalten"
+
+#: ../bin/dease.c:65
+msgid "Sharp"
+msgstr "Eng"
+
+#: ../bin/dease.c:65
+msgid "Broad"
+msgstr "Weit"
+
+#: ../bin/dease.c:65
+msgid "Cornu"
+msgstr "Klothoide"
+
+#: ../bin/dease.c:72
+msgid "Value"
+msgstr "Wert"
+
+#: ../bin/dease.c:73 ../bin/tease.c:509
+msgid "R"
+msgstr "R"
+
+#: ../bin/dease.c:75 ../bin/tease.c:510
+msgid "L"
+msgstr "L"
+
+#: ../bin/dease.c:240
+msgid "Easement"
+msgstr "Übergangsbogen"
+
+#: ../bin/denum.c:49
+msgid "Prices"
+msgstr "Preise"
+
+#: ../bin/denum.c:54
+msgid "Save As ..."
+msgstr "Speichern unter..."
+
+#: ../bin/denum.c:134 ../bin/denum.c:189 ../bin/denum.c:224
+msgid "Each"
+msgstr "Je"
+
+#: ../bin/denum.c:148 ../bin/denum.c:149
+msgid "Parts List"
+msgstr "Teileliste"
+
+#: ../bin/denum.c:154
+#, c-format
+msgid ""
+"%s Parts List\n"
+"\n"
+msgstr ""
+"%s Teileliste\n"
+"\n"
+
+#: ../bin/denum.c:189 ../bin/denum.c:226 ../bin/denum.c:235
+msgid "Extended"
+msgstr "Erweitert"
+
+#: ../bin/denum.c:235 ../bin/denum.c:238
+msgid "Total"
+msgstr "Summe"
+
+#: ../bin/dlayer.c:448
+msgid "Visible"
+msgstr "Sichtbar"
+
+#: ../bin/dlayer.c:450
+msgid "Frozen"
+msgstr "Fixiert"
+
+#: ../bin/dlayer.c:452
+msgid "On Map"
+msgstr "Auf der Karte"
+
+#: ../bin/dlayer.c:455
+msgid "Personal Preferences"
+msgstr "Persönliche Einstellungen"
+
+#: ../bin/dlayer.c:457 ../bin/macro.c:1181
+msgid "Save"
+msgstr "Speichern"
+
+#: ../bin/dlayer.c:458
+msgid "Defaults"
+msgstr "Standardwerte"
+
+#: ../bin/dlayer.c:459
+msgid "Number of Layer Buttons"
+msgstr "Anzahl der Ebenenknöpfe"
+
+#: ../bin/dlayer.c:476 ../bin/dlayer.c:892 ../bin/dlayer.c:904
+#: ../bin/dlayer.c:953
+msgid "Main"
+msgstr "Haupt"
+
+#: ../bin/dlayer.c:586 ../bin/dlayer.c:835 ../bin/dlayer.c:907
+#: ../bin/dlayer.c:955 ../bin/dlayer.c:1194
+msgid "Show/Hide Layer"
+msgstr "Ebene anzeigen/verbergen"
+
+#: ../bin/dlayer.c:1026
+msgid "Layers"
+msgstr "Ebenen"
+
+#: ../bin/doption.c:107
+msgid "Auto Pan"
+msgstr "Automatischer Ausschnitt"
+
+#: ../bin/doption.c:108
+msgid "Dash"
+msgstr "Gestrichelt"
+
+#: ../bin/doption.c:109
+msgid "All"
+msgstr "Alle"
+
+#: ../bin/doption.c:110
+msgid "Thick"
+msgstr "Dick"
+
+#: ../bin/doption.c:110
+msgid "Exception"
+msgstr "Ausnahmegleis"
+
+#: ../bin/doption.c:111
+msgid "Outline"
+msgstr "Umriss"
+
+#: ../bin/doption.c:111
+msgid "Solid"
+msgstr "Gefüllt"
+
+#: ../bin/doption.c:112
+msgid "Off"
+msgstr "Aus"
+
+#: ../bin/doption.c:112
+msgid "On"
+msgstr "An"
+
+#: ../bin/doption.c:113
+msgid "Track Descriptions"
+msgstr "Gleisbeschreibungen"
+
+#: ../bin/doption.c:113
+msgid "Lengths"
+msgstr "Längen"
+
+#: ../bin/doption.c:113
+msgid "EndPt Elevations"
+msgstr "Endpunkthöhen"
+
+#: ../bin/doption.c:113
+msgid "Track Elevations"
+msgstr "Gleishöhen"
+
+#: ../bin/doption.c:113
+msgid "Cars"
+msgstr "Wagen"
+
+#: ../bin/doption.c:114 ../bin/doption.c:115
+msgid "Descr"
+msgstr "Beschreibung"
+
+#: ../bin/doption.c:115
+msgid "Manuf"
+msgstr "Hersteller"
+
+#: ../bin/doption.c:117
+msgid "Live Map"
+msgstr "Dynamische Karte"
+
+#: ../bin/doption.c:118
+msgid "Hide Trains On Hidden Track"
+msgstr "Verberge Züge auf verborgenem Gleis"
+
+#: ../bin/doption.c:119
+msgid "Zoom keeps lower corner in view"
+msgstr "Linke untere Ecke beim Zoomen festhalten"
+
+#: ../bin/doption.c:124
+msgid "Color Layers"
+msgstr "Ebenenfarben"
+
+#: ../bin/doption.c:125
+msgid "Draw Tunnel"
+msgstr "Zeichne Tunnel"
+
+#: ../bin/doption.c:126
+msgid "Draw EndPts"
+msgstr "Zeichne Endpunkte"
+
+#: ../bin/doption.c:127
+msgid "Draw Unconnected EndPts"
+msgstr "Zeichne offene Endpunkte"
+
+#: ../bin/doption.c:128
+msgid "Draw Ties"
+msgstr "Schwellen zeichnen"
+
+#: ../bin/doption.c:129
+msgid "Draw Centers"
+msgstr "Mittelpunkt zeichnen"
+
+#: ../bin/doption.c:130
+msgid "Two Rail Scale"
+msgstr "Maßstab für Gleis"
+
+#: ../bin/doption.c:131
+msgid "Map Scale"
+msgstr "Kartenmaßstab"
+
+#: ../bin/doption.c:135
+msgid "Label Enable"
+msgstr "Beschriftungen zeigen"
+
+#: ../bin/doption.c:136
+msgid "Label Scale"
+msgstr "Maßstab der Beschriftungen"
+
+#: ../bin/doption.c:137
+msgid "Label Font Size"
+msgstr "Grösse für Beschriftungen"
+
+#: ../bin/doption.c:138
+msgid "Hot Bar Labels"
+msgstr "Teilekatalog Beschriftungen"
+
+#: ../bin/doption.c:139
+msgid "Layout Labels"
+msgstr "Anlagenbeschriftungen"
+
+#: ../bin/doption.c:140
+msgid "List Labels"
+msgstr "Listenüberschriften"
+
+#: ../bin/doption.c:143
+msgid "Car Labels"
+msgstr "Wagenbeschriftungen"
+
+#: ../bin/doption.c:144
+msgid "Train Update Delay"
+msgstr "Aktualisierungsintervalle"
+
+#: ../bin/doption.c:172
+msgid "Display Options"
+msgstr "Anzeigeoptionen"
+
+#: ../bin/doption.c:173
+msgid "Proto"
+msgstr "Vorbild"
+
+#: ../bin/doption.c:174
+msgid "Proto/Manuf"
+msgstr "Vorbild/Hersteller"
+
+#: ../bin/doption.c:175
+msgid "Proto/Manuf/Part Number"
+msgstr "Vorbild/Hersteller/Bestellnr. "
+
+#: ../bin/doption.c:176
+msgid "Proto/Manuf/Partno/Item"
+msgstr "Vorbild/Hersteller/Bestellnr. /lfd. Nr."
+
+#: ../bin/doption.c:177
+msgid "Manuf/Proto"
+msgstr "Hersteller/Vorbild"
+
+#: ../bin/doption.c:178
+msgid "Manuf/Proto/Part Number"
+msgstr "Hersteller/Vorbild/Bestellnr."
+
+#: ../bin/doption.c:179
+msgid "Manuf/Proto/Partno/Item"
+msgstr "Hersteller/Vorbild/Bestellnr./lfd. Nr."
+
+#: ../bin/doption.c:210
+msgid "End-Points"
+msgstr "Endpunkte"
+
+#: ../bin/doption.c:218
+msgid "Normal: Command List, Shift: Command Options"
+msgstr "Normal: Befehlsliste, Umschalt: Befehlsoptionen"
+
+#: ../bin/doption.c:218
+msgid "Normal: Command Options, Shift: Command List"
+msgstr "Normal: Befehlsoptionen, Umschalt: Befehlsliste"
+
+#: ../bin/doption.c:221
+msgid "Draw Moving Tracks"
+msgstr "Zeichne bewegte Gleise"
+
+#: ../bin/doption.c:222
+msgid "Default Command"
+msgstr "Standardbefehl"
+
+#: ../bin/doption.c:224
+msgid "Hide Selection Window"
+msgstr "Verberge Auswahlfenster"
+
+#: ../bin/doption.c:226
+msgid "Right Click"
+msgstr "Rechte Mausetaste"
+
+#: ../bin/doption.c:252
+msgid "Command Options"
+msgstr "Befehlsoptionen"
+
+#: ../bin/doption.c:275
+msgid "English"
+msgstr "Englisch"
+
+#: ../bin/doption.c:275
+msgid "Metric"
+msgstr "Metrisch"
+
+#: ../bin/doption.c:276
+msgid "Polar"
+msgstr "Polar"
+
+#: ../bin/doption.c:276
+msgid "Cartesian"
+msgstr "Kartesisch"
+
+#: ../bin/doption.c:277
+msgid "Balloon Help"
+msgstr "Sprechblasen"
+
+#: ../bin/doption.c:278
+msgid "Load Last Layout"
+msgstr "Letzten Gleisplan laden"
+
+#: ../bin/doption.c:278
+msgid "Start New Layout"
+msgstr "Neuen Gleisplan beginnen"
+
+#: ../bin/doption.c:281
+msgid "Angles"
+msgstr "Winkel"
+
+#: ../bin/doption.c:282
+msgid "Units"
+msgstr "Einheiten"
+
+#: ../bin/doption.c:284
+msgid "Length Format"
+msgstr "Längenformat"
+
+#: ../bin/doption.c:285
+msgid "Min Track Length"
+msgstr "Mindestgleislänge"
+
+#: ../bin/doption.c:286
+msgid "Connection Distance"
+msgstr "Verbindungs Abstand"
+
+#: ../bin/doption.c:287
+msgid "Connection Angle"
+msgstr "Verbindungs Winkel"
+
+#: ../bin/doption.c:288
+msgid "Turntable Angle"
+msgstr "Drehscheibenwinkel"
+
+#: ../bin/doption.c:289
+msgid "Max Coupling Speed"
+msgstr "Max. Ankuppelgeschwindigkeit"
+
+#: ../bin/doption.c:291
+msgid "Drag Distance"
+msgstr "Zeichne Entfernung"
+
+#: ../bin/doption.c:292
+msgid "Drag Timeout"
+msgstr "Abriss Zeitverzögerung"
+
+#: ../bin/doption.c:293
+msgid "Min Grid Spacing"
+msgstr "Mindestrasterabstand"
+
+#: ../bin/doption.c:294
+msgid "Check Point"
+msgstr "Sicherungskopie"
+
+#: ../bin/doption.c:295
+msgid "On Program Startup"
+msgstr "Beim Programmstart"
+
+#: ../bin/doption.c:305
+msgid "999.999999"
+msgstr "999.999999"
+
+#: ../bin/doption.c:306
+msgid "999.99999"
+msgstr "999,999999"
+
+#: ../bin/doption.c:307
+msgid "999.9999"
+msgstr "999,999"
+
+#: ../bin/doption.c:308 ../bin/doption.c:325
+msgid "999.999"
+msgstr "999.999"
+
+#: ../bin/doption.c:309 ../bin/doption.c:326
+msgid "999.99"
+msgstr "999.99"
+
+#: ../bin/doption.c:310 ../bin/doption.c:327
+msgid "999.9"
+msgstr "999.9"
+
+#: ../bin/doption.c:311
+msgid "999 7/8"
+msgstr "999 7/8"
+
+#: ../bin/doption.c:312
+msgid "999 63/64"
+msgstr "999 63/64"
+
+#: ../bin/doption.c:313
+msgid "999' 11.999\""
+msgstr "999' 11.999\""
+
+#: ../bin/doption.c:314
+msgid "999' 11.99\""
+msgstr "999' 11.99\""
+
+#: ../bin/doption.c:315
+msgid "999' 11.9\""
+msgstr "999' 11.9\""
+
+#: ../bin/doption.c:316
+msgid "999' 11 7/8\""
+msgstr "999' 11 7/8\""
+
+#: ../bin/doption.c:317
+msgid "999' 11 63/64\""
+msgstr "999' 11 63/64\""
+
+#: ../bin/doption.c:318
+msgid "999ft 11.999in"
+msgstr "999ft 11.999in"
+
+#: ../bin/doption.c:319
+msgid "999ft 11.99in"
+msgstr "999ft 11.99in"
+
+#: ../bin/doption.c:320
+msgid "999ft 11.9in"
+msgstr "999ft 11.9in"
+
+#: ../bin/doption.c:321
+msgid "999ft 11 7/8in"
+msgstr "999ft 11 7/8in"
+
+#: ../bin/doption.c:322
+msgid "999ft 11 63/64in"
+msgstr "999ft 11 63/64in"
+
+#: ../bin/doption.c:328
+msgid "999.999mm"
+msgstr "999.999mm"
+
+#: ../bin/doption.c:329
+msgid "999.99mm"
+msgstr "999.99mm"
+
+#: ../bin/doption.c:330
+msgid "999.9mm"
+msgstr "999.9mm"
+
+#: ../bin/doption.c:331
+msgid "999.999cm"
+msgstr "999.999cm"
+
+#: ../bin/doption.c:332
+msgid "999.99cm"
+msgstr "999.99cm"
+
+#: ../bin/doption.c:333
+msgid "999.9cm"
+msgstr "999.9cm"
+
+#: ../bin/doption.c:334
+msgid "999.999m"
+msgstr "999.999m"
+
+#: ../bin/doption.c:335
+msgid "999.99m"
+msgstr "999.99m"
+
+#: ../bin/doption.c:336
+msgid "999.9m"
+msgstr "999.9m"
+
+#: ../bin/doption.c:450
+msgid "Preferences"
+msgstr "Einstellungen"
+
+#: ../bin/doption.c:489
+msgid "Marker"
+msgstr "Markierung"
+
+#: ../bin/doption.c:490
+msgid "Border"
+msgstr "Rahmen"
+
+#: ../bin/doption.c:491
+msgid "Primary Axis"
+msgstr "Hauptachse"
+
+#: ../bin/doption.c:492
+msgid "Secondary Axis"
+msgstr "Nebenachse "
+
+#: ../bin/doption.c:493
+msgid "Normal Track"
+msgstr "Normales Gleis"
+
+#: ../bin/doption.c:494
+msgid "Selected Track"
+msgstr "Ausgewähltes Gleis"
+
+#: ../bin/doption.c:495
+msgid "Profile Path"
+msgstr "Höhenlinie"
+
+#: ../bin/doption.c:496
+msgid "Exception Track"
+msgstr "Ausnahmegleis"
+
+#: ../bin/doption.c:497
+msgid "Track Ties"
+msgstr "Gleisschwellen"
+
+#: ../bin/dpricels.c:45
+msgid "Price"
+msgstr "Preis"
+
+#: ../bin/dpricels.c:59
+msgid "Flex Track"
+msgstr "Flexgleis"
+
+#: ../bin/dpricels.c:60
+msgid "costs"
+msgstr "kostet"
+
+#: ../bin/dpricels.c:154
+msgid "Price List"
+msgstr "Preisliste"
+
+#: ../bin/dprmfile.c:101
+#, c-format
+msgid "Updating %s"
+msgstr "Aktualisiere %s"
+
+#: ../bin/dprmfile.c:228
+msgid "Show File Names"
+msgstr "Dateinamen anzeigen"
+
+#: ../bin/dprmfile.c:235
+msgid "Select all"
+msgstr "Alles auswählen"
+
+#: ../bin/dprmfile.c:238 ../bin/dprmfile.c:362
+msgid "Unload"
+msgstr "Entladen"
+
+#: ../bin/dprmfile.c:239
+msgid "Browse ..."
+msgstr "Durchsuchen..."
+
+#: ../bin/dprmfile.c:384
+msgid "Reload"
+msgstr "Neu laden"
+
+#: ../bin/dprmfile.c:533
+msgid "Parameter Files"
+msgstr "Parameterdateien"
+
+#: ../bin/dprmfile.c:534
+msgid "Load Parameters"
+msgstr "Lade Parameter"
+
+#: ../bin/dprmfile.c:534
+msgid "Parameter files|*.xtp"
+msgstr "Parameterdateien|*.xtp"
+
+#: ../bin/draw.c:1825
+msgid "Macro Zoom Mode"
+msgstr "Makro-Zoom-Modus"
+
+#: ../bin/draw.c:1827
+msgid "Use Shift+PageDwn to jump to preset Zoom In"
+msgstr ""
+"Mit Umschalt+Bild runter den gespeicherten unteren Zoom-Faktor verwenden"
+
+#: ../bin/draw.c:1832
+msgid "Scale 1:1 - Use Ctrl+PageDwn to go to Macro Zoom Mode"
+msgstr "Maßstab 1:1 - Mit Strg+Bild runter in den Makro-Zoom wechseln"
+
+#: ../bin/draw.c:1836
+msgid "Preset Zoom In Value selected. Shift+Ctrl+PageDwn to reset value"
+msgstr ""
+"Der gespeicherte untere Zoom-Faktor wird benutzt, Durch Umschalt+Strg+Bild "
+"runter zurücksetzen"
+
+#: ../bin/draw.c:1840
+#, c-format
+msgid "Zoom In Program Value %ld:1, Shift+PageDwn to use"
+msgstr ""
+"Programmierter Zoom Größer Wert %ld:1, Verwenden mit Umschalt+Bild runter"
+
+#: ../bin/draw.c:1860
+msgid "Use Shift+PageUp to jump to preset Zoom Out"
+msgstr "Mit Umschalt+Bild hoch den gespeicherten oberen Zoom-Faktor verwenden"
+
+#: ../bin/draw.c:1863
+msgid "At Maximum Zoom Out"
+msgstr "Maximal rausgezoomt"
+
+#: ../bin/draw.c:1868
+msgid "Preset Zoom Out Value selected. Shift+Ctrl+PageUp to reset value"
+msgstr ""
+"Der gespeicherte obere Zoom-Faktor wird benutzt, Durch Umschalt+Strg+Bild "
+"hoch zurücksetzen"
+
+#: ../bin/draw.c:1872
+#, c-format
+msgid "Zoom Out Program Value %ld:1 set, Shift+PageUp to use"
+msgstr ""
+"Programmierter Zoom Größer Wert %ld:1, Verwenden mit Umschalt+Bild hoch"
+
+#: ../bin/draw.c:2502
+msgid "Map"
+msgstr "Karte"
+
+#: ../bin/draw.c:2545
+msgid ""
+"Left Drag to Pan, Right Drag to Zoom, 0 to set Origin to 0,0, 1-9 to Zoom#, "
+"e to set to Extent"
+msgstr ""
+"Links ziehen um den Ausschnitt zu verschieben, rechts ziehen für Zoom, 0 "
+"setzt den Ausgangspunkt auf 0,0, 1-9 für die Zoomstufe, e um die Größe zu "
+"setzen"
+
+#: ../bin/draw.c:2550
+msgid "Pan Mode - drag point to new position"
+msgstr "Ausschnitt wählen - Punkt an die neue Position ziehen"
+
+#: ../bin/draw.c:2557
+msgid "Zoom Mode - drag Area to Zoom"
+msgstr "Zoom Modus -auf den ausgewählten Bereich zoomen"
+
+#: ../bin/draw.c:2686
+msgid "Pan/Zoom"
+msgstr "Verschieben/Zoomen"
+
+#: ../bin/drawgeom.c:80 ../bin/drawgeom.c:95
+msgid "Create Lines"
+msgstr "Erstelle Linien"
+
+#: ../bin/drawgeom.c:194 ../bin/drawgeom.c:207
+msgid "Drag to place next end point"
+msgstr "Ziehen um den nächsten Endpunkt zu setzen"
+
+#: ../bin/drawgeom.c:239
+msgid "Drag to set radius"
+msgstr "Radius durch Ziehen festlegen"
+
+#: ../bin/drawgeom.c:252
+msgid "Drag set box size"
+msgstr "Ziehen um die Größe des Rechteck zu setzen"
+
+#: ../bin/drawgeom.c:294 ../bin/drawgeom.c:303
+#, c-format
+msgid "Length = %s, Angle = %0.2f"
+msgstr "Länge = %s, Winkel = %0.2f"
+
+#: ../bin/drawgeom.c:320
+#, c-format
+msgid "Straight Line: Length=%s Angle=%0.3f"
+msgstr "Gerade Linie: Länge=%s Winkel=%0.3f"
+
+#: ../bin/drawgeom.c:343
+#, c-format
+msgid "Curved Line: Radius=%s Angle=%0.3f Length=%s"
+msgstr "Gebogene Linie: Radius=%s Winkel=%0.3f Länge=%s"
+
+#: ../bin/drawgeom.c:358
+#, c-format
+msgid "Radius = %s"
+msgstr "Radius = %s"
+
+#: ../bin/drawgeom.c:368
+#, c-format
+msgid "Width = %s, Height = %s"
+msgstr "Breite = %s, Höhe = %s"
+
+#: ../bin/drawgeom.c:652 ../bin/drawgeom.c:775
+msgid "Drag to Move Corner Point"
+msgstr "Ziehen um den Eckpunkt zu verschieben"
+
+#: ../bin/drawgeom.c:660
+msgid "Drag to Move Edge "
+msgstr "Ziehen um die Kante zu verschieben"
+
+#: ../bin/drawgeom.c:725
+#, c-format
+msgid "Length = %0.3f Angle = %0.3f"
+msgstr "Länge = %0.3f Winkel = %0.3f"
+
+#: ../bin/drawgeom.c:770
+msgid "Drag to Move Edge"
+msgstr "Ziehen um die Kante zu verschieben"
+
+#: ../bin/dxfoutput.c:228
+msgid "Export to DXF"
+msgstr "Export nach DXF"
+
+#: ../bin/fileio.c:235
+msgid ""
+"\n"
+"Do you want to continue?"
+msgstr ""
+"\n"
+"Wollen Sie fortsetzen?"
+
+#: ../bin/fileio.c:541
+msgid "Parameter"
+msgstr "Parameter"
+
+#: ../bin/fileio.c:678
+#, c-format
+msgid "putTitle: title too long: %s"
+msgstr "putTitle: Titel ist zu lang: %s"
+
+#: ../bin/fileio.c:698
+msgid "Unnamed Trackplan"
+msgstr "Unbenannter Gleisplan"
+
+#: ../bin/fileio.c:714 ../bin/fileio.c:1042
+msgid "Check Pointing"
+msgstr "Schreibe Sicherungskopie"
+
+#: ../bin/fileio.c:944
+msgid "Track"
+msgstr "Gleis"
+
+#: ../bin/fileio.c:1008
+msgid "Save Tracks"
+msgstr "Gleise speichern"
+
+#: ../bin/fileio.c:1022
+msgid "Save Tracks As"
+msgstr "Gleise speichern unter"
+
+#: ../bin/fileio.c:1030
+msgid "Open Tracks"
+msgstr "Gleise einlesen"
+
+#: ../bin/fileio.c:1163 ../bin/fileio.c:1181
+msgid "Import Tracks"
+msgstr "Gleise importieren"
+
+#: ../bin/fileio.c:1242
+msgid "Export Tracks"
+msgstr "Gleise exportieren"
+
+#: ../bin/fileio.c:1262
+msgid "Clipboard"
+msgstr "Zwischenablage"
+
+#: ../bin/fileio.c:1305 ../bin/misc.c:2119
+msgid "Paste"
+msgstr "Einfügen"
+
+#: ../bin/i18n.c:66
+#, c-format
+msgid "Gettext initialized (PACKAGE=%s, LOCALEDIR=%s, LC_ALL=%s).\n"
+msgstr "Gettext initialisiert (PACKAGE=%s, LOCALEDIR=%s, LC_ALL=%s).\n"
+
+#: ../bin/layout.c:234
+msgid "Room Width"
+msgstr "Zimmerbreite"
+
+#: ../bin/layout.c:235
+msgid " Height"
+msgstr " -länge"
+
+#: ../bin/layout.c:236
+msgid "Layout Title"
+msgstr "Gleisplantitel"
+
+#: ../bin/layout.c:237
+msgid "Subtitle"
+msgstr "Untertitel"
+
+#: ../bin/layout.c:241
+msgid " Gauge"
+msgstr "Spurweite"
+
+#: ../bin/layout.c:243
+msgid "Min Track Radius"
+msgstr "Mindestgleisradius"
+
+#: ../bin/layout.c:244
+msgid " Max Track Grade (%)"
+msgstr "Maximale Gleissteigung (%)"
+
+#: ../bin/layout.c:311
+msgid "Layout Options"
+msgstr "Gleisplanoptionen"
+
+#: ../bin/macro.c:90
+msgid "Message"
+msgstr "Mitteilung"
+
+#: ../bin/macro.c:93
+msgid "End"
+msgstr "Ende"
+
+#: ../bin/macro.c:174
+msgid "Recording"
+msgstr "Aufzeichnen"
+
+#: ../bin/macro.c:209
+msgid "End of Playback. Hit Step to exit\n"
+msgstr "Ende der Aufzeichnung. Schritt zum Beenden drücken\n"
+
+#: ../bin/macro.c:273
+msgid "Record"
+msgstr "Aufzeichnen"
+
+#: ../bin/macro.c:603
+msgid "Step"
+msgstr "Schritt"
+
+#: ../bin/macro.c:606 ../bin/macro.c:1302
+msgid "Next"
+msgstr "Nächster"
+
+#: ../bin/macro.c:609 ../bin/misc.c:654
+msgid "Quit"
+msgstr "Verlassen"
+
+#: ../bin/macro.c:612 ../../../../build/work/app/bin/bllnhlp.c:496
+msgid "Speed"
+msgstr "Geschwindigkeit"
+
+#: ../bin/macro.c:839 ../bin/macro.c:1163
+msgid "Demo"
+msgstr "Demo"
+
+#: ../bin/macro.c:998
+#, c-format
+msgid "Elapsed time %lu\n"
+msgstr "Abgelaufene Zeit %lu\n"
+
+#: ../bin/macro.c:1092
+msgid "Playback"
+msgstr "Wiedergabe"
+
+#: ../bin/macro.c:1166
+msgid "Slowest"
+msgstr "Langsamste"
+
+#: ../bin/macro.c:1167
+msgid "Slow"
+msgstr "Langsame"
+
+#: ../bin/macro.c:1169
+msgid "Fast"
+msgstr "Schnelle"
+
+#: ../bin/macro.c:1170
+msgid "Faster"
+msgstr "Schnellere"
+
+#: ../bin/macro.c:1171
+msgid "Fastest"
+msgstr "Schnellste"
+
+#: ../bin/macro.c:1289
+msgid "Can not find PARAMETER playback proc"
+msgstr "Kann die PARAMETER Wiedergabeprozedur nicht finden"
+
+#: ../bin/misc.c:164
+msgid "No Messages"
+msgstr "Keine Nachrichten"
+
+#: ../bin/misc.c:398 ../bin/misc.c:401
+msgid "ABORT"
+msgstr "ABBRUCH"
+
+#: ../bin/misc.c:400
+msgid ""
+"\n"
+"Do you want to save your layout?"
+msgstr ""
+"\n"
+"Wollen Sie Ihren Gleisplan speichern?"
+
+#: ../bin/misc.c:450
+#, c-format
+msgid "No help for %s"
+msgstr "Hilfe für %s nicht gefunden"
+
+#: ../bin/misc.c:553
+msgid ""
+"Save changes to the layout design before closing?\n"
+"\n"
+"If you don't save now, your unsaved changes will be discarded."
+msgstr ""
+"Sollen die Ãnderungen an Ihrem Gleisplan vor dem Verlassen gespeichert "
+"werden?\n"
+"\n"
+"Wenn Sie jetzt nicht speichern, werden Ihre nicht gespeicherten Ãnderungen "
+"verworfen."
+
+#: ../bin/misc.c:555 ../bin/misc.c:2163
+msgid "&Save"
+msgstr "&Speichern"
+
+#: ../bin/misc.c:555 ../bin/misc.c:579
+msgid "&Cancel"
+msgstr "&Abbruch"
+
+#: ../bin/misc.c:555
+msgid "&Don't Save"
+msgstr "&Nicht speichern"
+
+#: ../bin/misc.c:577
+msgid ""
+"Do you want to return to the last saved state?\n"
+"\n"
+"Revert will cause all changes done since last save to be lost."
+msgstr ""
+"Wollen Sie auf den letzten gespeicherten Stand zurücksetzen?\n"
+"Durch das Zurücksetzen werden alle Ãnderungen seit dem letzen Speichern "
+"verloren gehen."
+
+#: ../bin/misc.c:579
+msgid "&Revert"
+msgstr "Zurücksetzen"
+
+#: ../bin/misc.c:806
+msgid "XTrackCAD Font"
+msgstr "XTrackCAD Font"
+
+#: ../bin/misc.c:869
+#, c-format
+msgid "No balloon help for %s\n"
+msgstr "Kein Tooltip für %s vorhanden\n"
+
+#: ../bin/misc.c:871 ../../../../build/work/app/bin/bllnhlp.c:559
+#: ../../../../build/work/app/bin/bllnhlp.c:560
+#: ../../../../build/work/app/bin/bllnhlp.c:562
+#: ../../../../build/work/app/bin/bllnhlp.c:563
+#: ../../../../build/work/app/bin/bllnhlp.c:565
+#: ../../../../build/work/app/bin/bllnhlp.c:566
+#: ../../../../build/work/app/bin/bllnhlp.c:567
+#: ../../../../build/work/app/bin/bllnhlp.c:568
+#: ../../../../build/work/app/bin/bllnhlp.c:569
+#: ../../../../build/work/app/bin/bllnhlp.c:570
+#: ../../../../build/work/app/bin/bllnhlp.c:571
+#: ../../../../build/work/app/bin/bllnhlp.c:572
+#: ../../../../build/work/app/bin/bllnhlp.c:573
+#: ../../../../build/work/app/bin/bllnhlp.c:574
+#: ../../../../build/work/app/bin/bllnhlp.c:575
+#: ../../../../build/work/app/bin/bllnhlp.c:576
+#: ../../../../build/work/app/bin/bllnhlp.c:577
+#: ../../../../build/work/app/bin/bllnhlp.c:578
+#: ../../../../build/work/app/bin/bllnhlp.c:579
+#: ../../../../build/work/app/bin/bllnhlp.c:580
+#: ../../../../build/work/app/bin/bllnhlp.c:581
+#: ../../../../build/work/app/bin/bllnhlp.c:582
+#: ../../../../build/work/app/bin/bllnhlp.c:583
+#: ../../../../build/work/app/bin/bllnhlp.c:584
+#: ../../../../build/work/app/bin/bllnhlp.c:585
+#: ../../../../build/work/app/bin/bllnhlp.c:586
+#: ../../../../build/work/app/bin/bllnhlp.c:587
+#: ../../../../build/work/app/bin/bllnhlp.c:588
+#: ../../../../build/work/app/bin/bllnhlp.c:589
+#: ../../../../build/work/app/bin/bllnhlp.c:590
+#: ../../../../build/work/app/bin/bllnhlp.c:591
+#: ../../../../build/work/app/bin/bllnhlp.c:592
+#: ../../../../build/work/app/bin/bllnhlp.c:593
+#: ../../../../build/work/app/bin/bllnhlp.c:594
+#: ../../../../build/work/app/bin/bllnhlp.c:595
+#: ../../../../build/work/app/bin/bllnhlp.c:596
+#: ../../../../build/work/app/bin/bllnhlp.c:597
+#: ../../../../build/work/app/bin/bllnhlp.c:598
+#: ../../../../build/work/app/bin/bllnhlp.c:599
+#: ../../../../build/work/app/bin/bllnhlp.c:600
+#: ../../../../build/work/app/bin/bllnhlp.c:601
+#: ../../../../build/work/app/bin/bllnhlp.c:602
+#: ../../../../build/work/app/bin/bllnhlp.c:603
+#: ../../../../build/work/app/bin/bllnhlp.c:604
+#: ../../../../build/work/app/bin/bllnhlp.c:605
+#: ../../../../build/work/app/bin/bllnhlp.c:606
+#: ../../../../build/work/app/bin/bllnhlp.c:607
+#: ../../../../build/work/app/bin/bllnhlp.c:608
+#: ../../../../build/work/app/bin/bllnhlp.c:609
+#: ../../../../build/work/app/bin/bllnhlp.c:610
+#: ../../../../build/work/app/bin/bllnhlp.c:611
+#: ../../../../build/work/app/bin/bllnhlp.c:612
+#: ../../../../build/work/app/bin/bllnhlp.c:613
+#: ../../../../build/work/app/bin/bllnhlp.c:614
+#: ../../../../build/work/app/bin/bllnhlp.c:615
+#: ../../../../build/work/app/bin/bllnhlp.c:616
+#: ../../../../build/work/app/bin/bllnhlp.c:617
+#: ../../../../build/work/app/bin/bllnhlp.c:618
+#: ../../../../build/work/app/bin/bllnhlp.c:619
+#: ../../../../build/work/app/bin/bllnhlp.c:621
+msgid "No Help"
+msgstr "Keine Hilfe vorhanden"
+
+#: ../bin/misc.c:1135 ../bin/misc.c:1140 ../bin/misc.c:1205
+msgid ""
+"Cancelling the current command will undo the changes\n"
+"you are currently making. Do you want to update?"
+msgstr ""
+"Abbruch des aktuelle Befehls wird alle aktuell laufenden\n"
+"Änderungen zurücknehmen. Soll aktualisiert werden?"
+
+#: ../bin/misc.c:1728
+msgid "Sticky Commands"
+msgstr "Wiederholte Befehle"
+
+#: ../bin/misc.c:1741
+msgid "File Buttons"
+msgstr "Dateischaltflächen"
+
+#: ../bin/misc.c:1742
+msgid "Zoom Buttons"
+msgstr "Lupenknöpfe"
+
+#: ../bin/misc.c:1743
+msgid "Undo Buttons"
+msgstr "Rückgängig/Wiederholen"
+
+#: ../bin/misc.c:1744
+msgid "Easement Button"
+msgstr "Übergangsbogen"
+
+#: ../bin/misc.c:1745
+msgid "SnapGrid Buttons"
+msgstr "Fangraster"
+
+#: ../bin/misc.c:1746
+msgid "Create Track Buttons"
+msgstr "Erstelle Gleise"
+
+#: ../bin/misc.c:1747
+msgid "Layout Control Elements"
+msgstr "Elemente zur Anlagensteuerung"
+
+#: ../bin/misc.c:1748
+msgid "Modify Track Buttons"
+msgstr "Verändere Gleise"
+
+#: ../bin/misc.c:1749
+msgid "Properties/Select"
+msgstr "Eigenschaften/Auswählen"
+
+#: ../bin/misc.c:1750
+msgid "Track Group Buttons"
+msgstr "Objekt Werkzeuge"
+
+#: ../bin/misc.c:1751
+msgid "Train Group Buttons"
+msgstr "Zugbetrieb"
+
+#: ../bin/misc.c:1752
+msgid "Create Misc Buttons"
+msgstr "Zeichnen/Schrift Werkzeuge"
+
+#: ../bin/misc.c:1753
+msgid "Ruler Button"
+msgstr "Linealschaltfläche"
+
+#: ../bin/misc.c:1754
+msgid "Layer Buttons"
+msgstr "Ebenenknöpfe"
+
+#: ../bin/misc.c:1755
+msgid "Hot Bar"
+msgstr "Teilekatalog"
+
+#: ../bin/misc.c:1838 ../../../../build/work/app/bin/bllnhlp.c:72
+msgid "Change Elevations"
+msgstr "Höhen ändern"
+
+#: ../bin/misc.c:1838
+msgid "Change"
+msgstr "Ändern"
+
+#: ../bin/misc.c:1855
+msgid "Angle:"
+msgstr "Winkel:"
+
+#: ../bin/misc.c:1861
+msgid "Move X:"
+msgstr "Verschieben X:"
+
+#: ../bin/misc.c:1862
+msgid "Move Y:"
+msgstr "Verschieben Y:"
+
+#: ../bin/misc.c:1917
+msgid "Enter Move ..."
+msgstr "Verschiebung eingeben..."
+
+#: ../bin/misc.c:1924
+msgid "180 "
+msgstr "180 "
+
+#: ../bin/misc.c:1925
+msgid "90 CW"
+msgstr "90 Uhrzeiger"
+
+#: ../bin/misc.c:1926
+msgid "45 CW"
+msgstr "45 Uhrzeiger"
+
+#: ../bin/misc.c:1927
+msgid "30 CW"
+msgstr "30 Uhrzeiger"
+
+#: ../bin/misc.c:1928
+msgid "15 CW"
+msgstr "15 Uhrzeiger"
+
+#: ../bin/misc.c:1929
+msgid "15 CCW"
+msgstr "15 gegen Uhr"
+
+#: ../bin/misc.c:1930
+msgid "30 CCW"
+msgstr "30 gehen Uhr"
+
+#: ../bin/misc.c:1931
+msgid "45 CCW"
+msgstr "45 gegen Uhr"
+
+#: ../bin/misc.c:1932
+msgid "90 CCW"
+msgstr "90 gegen Uhr"
+
+#: ../bin/misc.c:1933
+msgid "Enter Angle ..."
+msgstr "Winkel eingeben..."
+
+#: ../bin/misc.c:1960
+msgid "Debug"
+msgstr "Fehlersuche (Debug)"
+
+#: ../bin/misc.c:2089
+msgid "&File"
+msgstr "&Datei"
+
+#: ../bin/misc.c:2090
+msgid "&Edit"
+msgstr "&Bearbeiten"
+
+#: ../bin/misc.c:2091
+msgid "&View"
+msgstr "&Ansicht"
+
+#: ../bin/misc.c:2092
+msgid "&Add"
+msgstr "&Hinzufügen"
+
+#: ../bin/misc.c:2093
+msgid "&Change"
+msgstr "&Ändern"
+
+#: ../bin/misc.c:2094
+msgid "&Draw"
+msgstr "&Zeichnen"
+
+#: ../bin/misc.c:2095
+msgid "&Manage"
+msgstr "&Verwalten"
+
+#: ../bin/misc.c:2096
+msgid "&Options"
+msgstr "&Optionen"
+
+#: ../bin/misc.c:2097
+msgid "&Macro"
+msgstr "&Makro"
+
+#: ../bin/misc.c:2098
+msgid "&Window"
+msgstr "&Fenster"
+
+#: ../bin/misc.c:2099
+msgid "&Help"
+msgstr "&Hilfe"
+
+#: ../bin/misc.c:2105 ../bin/misc.c:2106
+msgid "Commands"
+msgstr "Befehle"
+
+#: ../bin/misc.c:2107
+msgid "Undo"
+msgstr "Rückgängig"
+
+#: ../bin/misc.c:2108
+msgid "Redo"
+msgstr "Wiederholen"
+
+#: ../bin/misc.c:2109 ../bin/misc.c:2110
+msgid "Zoom In"
+msgstr "Zoom größer"
+
+#: ../bin/misc.c:2111 ../bin/misc.c:2112
+msgid "Zoom Out"
+msgstr "Zoom kleiner"
+
+#: ../bin/misc.c:2113
+msgid "SnapGrid Enable"
+msgstr "Fangraster aktivieren"
+
+#: ../bin/misc.c:2114
+msgid "SnapGrid Show"
+msgstr "Fangraster anzeigen"
+
+#: ../bin/misc.c:2115 ../bin/misc.c:2244
+msgid "Show/Hide Map"
+msgstr "Karte anzeigen/verbergen"
+
+#: ../bin/misc.c:2118
+msgid "Copy"
+msgstr "Kopiere"
+
+#: ../bin/misc.c:2120
+msgid "Select All"
+msgstr "Alles auswählen"
+
+#: ../bin/misc.c:2121 ../bin/misc.c:2201
+msgid "Select Current Layer"
+msgstr "Aktuelle Ebene auswählen"
+
+#: ../bin/misc.c:2122
+msgid "Deselect All"
+msgstr "Alles Abwählen"
+
+#: ../bin/misc.c:2130 ../bin/misc.c:2131
+msgid "More"
+msgstr "Weiter"
+
+#: ../bin/misc.c:2159
+msgid "&New ..."
+msgstr "&Neu..."
+
+#: ../bin/misc.c:2160
+msgid "&Open ..."
+msgstr "&Öffnen..."
+
+#: ../bin/misc.c:2164
+msgid "Save &As ..."
+msgstr "Speichern &unter..."
+
+#: ../bin/misc.c:2165
+msgid "Revert"
+msgstr "Neu laden"
+
+#: ../bin/misc.c:2167
+msgid "P&rint Setup ..."
+msgstr "Druckereinstellungen..."
+
+#: ../bin/misc.c:2170
+msgid "&Import"
+msgstr "Import"
+
+#: ../bin/misc.c:2171
+msgid "Export to &Bitmap"
+msgstr "Export als Bitmap"
+
+#: ../bin/misc.c:2172
+msgid "E&xport"
+msgstr "Export"
+
+#: ../bin/misc.c:2173
+msgid "Export D&XF"
+msgstr "Export als DXF"
+
+#: ../bin/misc.c:2176
+msgid "Parameter &Files ..."
+msgstr "Parameterdateien..."
+
+#: ../bin/misc.c:2177
+msgid "No&tes ..."
+msgstr "Notizen..."
+
+#: ../bin/misc.c:2182
+msgid "E&xit"
+msgstr "Beenden"
+
+#: ../bin/misc.c:2188
+msgid "&Undo"
+msgstr "Rückgängig"
+
+#: ../bin/misc.c:2189
+msgid "R&edo"
+msgstr "Wiederholen"
+
+#: ../bin/misc.c:2191
+msgid "Cu&t"
+msgstr "Ausschneiden"
+
+#: ../bin/misc.c:2192
+msgid "&Copy"
+msgstr "Kopieren"
+
+#: ../bin/misc.c:2193
+msgid "&Paste"
+msgstr "Einfügen"
+
+#: ../bin/misc.c:2194
+msgid "De&lete"
+msgstr "Löschen"
+
+#: ../bin/misc.c:2200
+msgid "Select &All"
+msgstr "Alles auswählen"
+
+#: ../bin/misc.c:2202
+msgid "&Deselect All"
+msgstr "Alles abwählen"
+
+#: ../bin/misc.c:2203
+msgid "&Invert Selection"
+msgstr "Auswahl umkehren"
+
+#: ../bin/misc.c:2204
+msgid "Select Stranded Track"
+msgstr "Vereinzelte Gleise auswählen"
+
+#: ../bin/misc.c:2206
+msgid "Tu&nnel"
+msgstr "Tunnel"
+
+#: ../bin/misc.c:2207
+msgid "A&bove"
+msgstr "Darüber"
+
+#: ../bin/misc.c:2208
+msgid "Belo&w"
+msgstr "Darunter"
+
+#: ../bin/misc.c:2211
+msgid "Thin Tracks"
+msgstr "Dünne Gleise"
+
+#: ../bin/misc.c:2212
+msgid "Medium Tracks"
+msgstr "Mittlere Gleise"
+
+#: ../bin/misc.c:2213
+msgid "Thick Tracks"
+msgstr "Dicke Gleise"
+
+#: ../bin/misc.c:2218
+msgid "Zoom &In"
+msgstr "Zoom größer"
+
+#: ../bin/misc.c:2219
+msgid "&Zoom"
+msgstr "&Zoom"
+
+#: ../bin/misc.c:2220
+msgid "Zoom &Out"
+msgstr "Zoom kleiner"
+
+#: ../bin/misc.c:2229
+msgid "&Redraw"
+msgstr "Neu zeichnen"
+
+#: ../bin/misc.c:2230
+msgid "Redraw All"
+msgstr "Alles neu zeichnen"
+
+#: ../bin/misc.c:2233
+msgid "Enable SnapGrid"
+msgstr "Fangraster aktivieren"
+
+#: ../bin/misc.c:2235
+msgid "Show SnapGrid"
+msgstr "Fangraster zeigen"
+
+#: ../bin/misc.c:2249
+msgid "&Tool Bar"
+msgstr "Werkzeugleiste anpassen"
+
+#: ../bin/misc.c:2300
+msgid "&Loosen Tracks"
+msgstr "Gleise lockern"
+
+#: ../bin/misc.c:2309
+msgid "Raise/Lower Elevations"
+msgstr "Höhen auf/ab"
+
+#: ../bin/misc.c:2314
+msgid "Recompute Elevations"
+msgstr "Höhen neu berechnen"
+
+#: ../bin/misc.c:2318
+msgid "Change Scale"
+msgstr "Maßstab ändern"
+
+#: ../bin/misc.c:2335
+msgid "L&ayout ..."
+msgstr "Gleisplan..."
+
+#: ../bin/misc.c:2336
+msgid "&Display ..."
+msgstr "Anzeige..."
+
+#: ../bin/misc.c:2337
+msgid "Co&mmand ..."
+msgstr "Befehl..."
+
+#: ../bin/misc.c:2338
+msgid "&Easements ..."
+msgstr "Übergangsbögen..."
+
+#: ../bin/misc.c:2339
+msgid "&Fonts ..."
+msgstr "Schri&ftarten..."
+
+#: ../bin/misc.c:2340
+msgid "Stic&ky ..."
+msgstr "Dauerhaft..."
+
+#: ../bin/misc.c:2343
+msgid "&Debug ..."
+msgstr "&Fehlersuche"
+
+#: ../bin/misc.c:2345
+msgid "&Preferences ..."
+msgstr "Einstellungen..."
+
+#: ../bin/misc.c:2346
+msgid "&Colors ..."
+msgstr "Farben..."
+
+#: ../bin/misc.c:2351
+msgid "&Record ..."
+msgstr "Aufzeichnen..."
+
+#: ../bin/misc.c:2352
+msgid "&Play Back ..."
+msgstr "Wiedergeben..."
+
+#: ../bin/misc.c:2358
+msgid "Main window"
+msgstr "Hauptfenster"
+
+#: ../bin/misc.c:2370
+msgid "Recent Messages"
+msgstr "Letzte Mitteilungen"
+
+#: ../bin/misc.c:2376
+msgid "Tip of the Day..."
+msgstr "Tipp des Tages..."
+
+#: ../bin/misc.c:2377
+msgid "&Demos"
+msgstr "&Demos"
+
+#: ../bin/misc.c:2381 ../bin/smalldlg.c:220
+msgid "About"
+msgstr "Über"
+
+#: ../bin/misc.c:2391
+msgid "Tur&nout Designer..."
+msgstr "Weichendesigner..."
+
+#: ../bin/misc.c:2393
+msgid "Layout &Control Elements"
+msgstr "Steuerungselemente"
+
+#: ../bin/misc.c:2394
+msgid "&Group"
+msgstr "&Gruppierung"
+
+#: ../bin/misc.c:2395
+msgid "&Ungroup"
+msgstr "Gruppierung aufheben"
+
+#: ../bin/misc.c:2397
+msgid "Custom defined parts..."
+msgstr "Eigene Teile..."
+
+#: ../bin/misc.c:2398
+msgid "Update Turnouts and Structures"
+msgstr "Weichen und Gebäude aktualisieren"
+
+#: ../bin/misc.c:2404
+msgid "Layers ..."
+msgstr "Ebenen..."
+
+#: ../bin/misc.c:2407
+msgid "Parts &List ..."
+msgstr "Teile&liste..."
+
+#: ../bin/misc.c:2408
+msgid "Price List..."
+msgstr "Preisliste..."
+
+#: ../bin/misc.c:2489
+msgid ""
+"Program was not terminated properly. Do you want to resume working on the "
+"previous trackplan?"
+msgstr ""
+"Das Programm wurde nicht ordnungsgemäss beendet. Wollen Sie die Bearbeitung "
+"des vorherigen Gleisplans fortsetzen?"
+
+#: ../bin/misc.c:2490
+msgid "Resume"
+msgstr "Fortsetzen"
+
+#: ../bin/misc.c:2603
+#, c-format
+msgid "Unnamed Trackplan - %s(%s)"
+msgstr "Unbenannter Gleisplan - %s(%s)"
+
+#: ../bin/misc.c:2674
+msgid "Initializing commands"
+msgstr "Initialisiere Befehle"
+
+#: ../bin/misc.c:2683
+msgid "Initializing menus"
+msgstr "Initialisiere Menüs"
+
+#: ../bin/misc.c:2720
+msgid "Reading parameter files"
+msgstr "Einlesen der Parameterdateien"
+
+#: ../bin/misc.c:2754
+msgid "Initialization complete"
+msgstr "Initialisierung beendet"
+
+#: ../bin/param.c:91
+msgid "Unexpected End Of String"
+msgstr "Unerwartetes Zeichenkettenende"
+
+#: ../bin/param.c:98
+msgid "Expected digit"
+msgstr "Erwartete Ziffer"
+
+#: ../bin/param.c:105
+msgid "Overflow"
+msgstr "Ãœberlau"
+
+#: ../bin/param.c:153
+msgid "Divide by 0"
+msgstr "Division durch 0"
+
+#: ../bin/param.c:161
+msgid "Expected /"
+msgstr "Erwartet /"
+
+#: ../bin/param.c:247
+msgid "Invalid Units Indicator"
+msgstr "Ungültige Masseinheit"
+
+#: ../bin/param.c:275
+msgid "Expected End Of String"
+msgstr "Zeichenkettenende erwartet"
+
+#: ../bin/param.c:301 ../bin/param.c:1352
+#, c-format
+msgid "Invalid Number"
+msgstr "Ungültige Zahl"
+
+#: ../bin/param.c:360
+msgid "End Of String"
+msgstr "Ende der Zeichenkette"
+
+#: ../bin/param.c:1359
+#, c-format
+msgid "Enter a value > %ld"
+msgstr "Einen Wert größer als %ld eingeben"
+
+#: ../bin/param.c:1361
+#, c-format
+msgid "Enter a value < %ld"
+msgstr "Einen Wert kleiner als %ld eingeben"
+
+#: ../bin/param.c:1363
+#, c-format
+msgid "Enter a value between %ld and %ld"
+msgstr "Einen Wert zwischen %ld und %ld eingeben"
+
+#: ../bin/param.c:1411
+#, c-format
+msgid "Enter a value > %s"
+msgstr "Einen Wert größer als %s eingeben"
+
+#: ../bin/param.c:1414
+#, c-format
+msgid "Enter a value < %s"
+msgstr "Einen Wert kleiner als %s eingeben"
+
+#: ../bin/param.c:1417
+#, c-format
+msgid "Enter a value between %s and %s"
+msgstr "Einen Wert zwischen %s und %s eingeben"
+
+#: ../bin/param.c:2557
+msgid "Help"
+msgstr "Hilfe"
+
+#: ../bin/smalldlg.c:63
+msgid "Show tips at start"
+msgstr "Tipps beim Start anzeigen"
+
+#: ../bin/smalldlg.c:69
+msgid "Did you know..."
+msgstr "Wussten Sie schon..."
+
+#: ../bin/smalldlg.c:71
+msgid "Previous Tip"
+msgstr "Vorheriger Tipp"
+
+#: ../bin/smalldlg.c:72
+msgid "Next Tip"
+msgstr "Nächster Tipp"
+
+#: ../bin/smalldlg.c:89
+msgid "Tip of the Day"
+msgstr "Tipp des Tages"
+
+#: ../bin/smalldlg.c:98
+msgid "No tips are available"
+msgstr "Es sind keine Tipps verfügbar"
+
+#: ../bin/smalldlg.c:197
+msgid ""
+"XTrackCAD is a CAD (computer-aided design) program for designing model "
+"railroad layouts."
+msgstr ""
+"XTrackCAD ist ein CAD (Computer-unterstützter Entwurf) Programm\n"
+"zum Entwerfen von Modelleisenbahnanlagen."
+
+#: ../bin/tbezier.c:170
+#, c-format
+msgid "Bezier Curve: length=%s min radius=%s"
+msgstr "Bezier Kurve: Länge = %s Kleinster Radius = %s."
+
+#: ../bin/tbezier.c:237 ../bin/tbezier.c:244 ../bin/tcornu.c:287
+#: ../bin/tcornu.c:292
+msgid "End Angle"
+msgstr "Endwinkel"
+
+#: ../bin/tbezier.c:241
+msgid "Ctl Pt 1: X,Y"
+msgstr "Kontrollpunkt 1: X,Y"
+
+#: ../bin/tbezier.c:242
+msgid "Ctl Pt 2: X,Y"
+msgstr "Kontrollpunkt 1: X,Y"
+
+#: ../bin/tbezier.c:248
+msgid "MinRadius"
+msgstr "Mindestradius"
+
+#: ../bin/tbezier.c:253
+msgid "Line Color"
+msgstr "Linienfarbe"
+
+#: ../bin/tbezier.c:366
+#, c-format
+msgid ""
+"Bezier %s(%d): Layer=%u MinRadius=%s Length=%s EP=[%0.3f,%0.3f] [%0.3f,"
+"%0.3f] CP1=[%0.3f,%0.3f] CP2=[%0.3f, %0.3f]"
+msgstr ""
+"Bezier-Kurve %s(%d): Ebene=%u Minimal-Radius=%s Länge=%s EP=[%0.3f,%0.3f] "
+"[%0.3f,%0.3f] CP1=[%0.3f,%0.3f] CP2=[%0.3f, %0.3f]"
+
+#: ../bin/tbezier.c:436
+msgid "Bezier Track"
+msgstr "Beziergleis"
+
+#: ../bin/tbezier.c:808
+msgid "Merge Bezier"
+msgstr "Bezierkurven zusammenfassen"
+
+#: ../bin/tcornu.c:214
+#, c-format
+msgid "Cornu Curve: length=%0.3f min radius=%0.3f"
+msgstr "Klothoide: Länge = %0.3f Mindestradius ) %0.3f"
+
+#: ../bin/tcornu.c:288
+msgid "Radius "
+msgstr "Radius"
+
+#: ../bin/tcornu.c:296
+msgid "Minimum Radius"
+msgstr "Mindestradius"
+
+#: ../bin/tcornu.c:297
+msgid "Maximum Rate Of Change Of Curvature"
+msgstr "Maximale Änderungsrate der Kurve"
+
+#: ../bin/tcornu.c:298
+msgid "Total Winding Angle"
+msgstr "Gesamtwinkel"
+
+#: ../bin/tcornu.c:419
+#, c-format
+msgid ""
+"Cornu Track(%d): Layer=%u MinRadius=%s Length=%s EP=[%0.3f,%0.3f] [%0.3f,"
+"%0.3f]"
+msgstr ""
+"Cornu-Bogen(%d): Ebene=%u Minimal-Radius=%s Länge=%s EP=[%0.3f,%0.3f] [%0.3f,"
+"%0.3f]"
+
+#: ../bin/tcornu.c:472
+msgid "Cornu Track"
+msgstr "Cornu-Gleis"
+
+#: ../bin/tcornu.c:918
+msgid "Merge Cornu"
+msgstr "Cornu-Kurven zusammenfassen"
+
+#: ../bin/tcurve.c:235
+#, c-format
+msgid "Helix: turns=%ld length=%s grade=%0.1f%% sep=%s"
+msgstr "Gleiswendel: Windungen=%ld Länge=%s Steigung=%0.1f%% Abstand=%s"
+
+#: ../bin/tcurve.c:241
+#, c-format
+msgid "Helix: turns=%ld length=%s"
+msgstr "Gleiswendel: Windungen=%ld Länge=%s"
+
+#: ../bin/tcurve.c:356 ../bin/tcurve.c:358 ../bin/tease.c:504
+#: ../bin/tease.c:506 ../bin/tstraigh.c:86 ../bin/tstraigh.c:88
+msgid "Z"
+msgstr "Z"
+
+#: ../bin/tcurve.c:364
+msgid "Angular Length"
+msgstr "Winkellänge"
+
+#: ../bin/tcurve.c:544
+#, c-format
+msgid ""
+"Helix Track(%d): Layer=%d Radius=%s Turns=%ld Length=%s Center=[%s,%s] "
+"EP=[%0.3f,%0.3f A%0.3f] [%0.3f,%0.3f A%0.3f]"
+msgstr ""
+"Gleiswendel(%d): Ebene=%d Radius=%s Windungen=%ld Länge=%s Mitte=[%s,%s] "
+"EP=[%0.3f,%0.3f A%0.3f] [%0.3f,%0.3f A%0.3f]"
+
+#: ../bin/tcurve.c:554
+#, c-format
+msgid ""
+"Curved Track(%d): Layer=%d Radius=%s Length=%s Center=[%s,%s] EP=[%0.3f,"
+"%0.3f A%0.3f] [%0.3f,%0.3f A%0.3f]"
+msgstr ""
+"Gleisbogenl(%d): Ebene=%d Radius=%s Länge=%s Mitte=[%s,%s] EP=[%0.3f,%0.3f A"
+"%0.3f] [%0.3f,%0.3f A%0.3f]"
+
+#: ../bin/tcurve.c:631
+msgid "Helix Track"
+msgstr "Gleiswendel"
+
+#: ../bin/tcurve.c:637
+msgid "Curved Track"
+msgstr "Gleisbogen"
+
+#: ../bin/tcurve.c:991
+msgid "Merge Curves"
+msgstr "Kurven zusammenfassen"
+
+#: ../bin/tcurve.c:1058
+msgid "Drag to change angle or create tangent"
+msgstr "Ziehen um den Winkel zu ändern oder eine Tangente zu erstellen"
+
+#: ../bin/tcurve.c:1091 ../bin/tcurve.c:1123
+msgid "Curved "
+msgstr "Gebogen "
+
+#: ../bin/tcurve.c:1097
+msgid "Tangent "
+msgstr "Tangente "
+
+#: ../bin/tcurve.c:1106
+#, c-format
+msgid "Tangent track: Length %s Angle %0.3f"
+msgstr "Gleistangente: Länge=%s Winkel=%0.3f"
+
+#: ../bin/tcurve.c:1128
+#, c-format
+msgid "Curved: Radius=%s Length=%s Angle=%0.3f"
+msgstr "Bogen: Radius=%s Länge=%s Winkel=%0.3f"
+
+#: ../bin/tease.c:511
+msgid "l0"
+msgstr "l0"
+
+#: ../bin/tease.c:512
+msgid "l1"
+msgstr "l1"
+
+#: ../bin/tease.c:554
+#, c-format
+msgid ""
+"Joint Track(%d): Layer=%d Length=%0.3f EP=[%0.3f,%0.3f A%0.3f] [%0.3f,%0.3f A"
+"%0.3f]"
+msgstr ""
+"Übergangsbogen(%d): Ebene=%d Länge=%0.3f EP=[%0.3f,%0.3f A%0.3f] [%0.3f,"
+"%0.3f A%0.3f]"
+
+#: ../bin/tease.c:599
+msgid "Easement Track"
+msgstr "Ügangsbogengleis"
+
+#: ../bin/tease.c:1265
+msgid "Merge Easements"
+msgstr "Übergangsbögen zusammenfassen"
+
+#: ../bin/tease.c:1330
+msgid "Split Easement Curve"
+msgstr "Übergangsbogen auftrennen"
+
+#: ../bin/track.c:1127
+msgid "Move Objects Above"
+msgstr "Objekte nach oben"
+
+#: ../bin/track.c:1147
+msgid "Mode Objects Below"
+msgstr "Objekte nach unten"
+
+#: ../bin/track.c:1375
+msgid "Audit"
+msgstr "Protokoll"
+
+#: ../bin/track.c:1650
+#, c-format
+msgid "%d Track(s) loosened"
+msgstr "%d Gleis(e) gelockert"
+
+#: ../bin/track.c:1657
+msgid "No tracks loosened"
+msgstr "Keine Gleise gelockert"
+
+#: ../bin/track.c:1667 ../bin/track.c:1671
+#, c-format
+msgid "Connecting a non-track(%d) to (%d)"
+msgstr "Verbinde ein sonstiges Objekt (%d) mit einem Gleis (%d)"
+
+#: ../bin/track.c:1732
+msgid "Join Abutting Tracks"
+msgstr "angrenzende Gleise verbinden"
+
+#: ../bin/track.c:1984 ../bin/tstraigh.c:556
+#, c-format
+msgid "Straight: Length=%s Angle=%0.3f"
+msgstr "Gerade: Länge=%s Winkel=%0.3f"
+
+#: ../bin/tstraigh.c:236
+#, c-format
+msgid ""
+"Straight Track(%d): Layer=%d Length=%s EP=[%0.3f,%0.3f A%0.3f] [%0.3f,%0.3f A"
+"%0.3f]"
+msgstr ""
+"Gleisgerade(%d): Ebene=%d Länge=%s EP=[%0.3f,%0.3f A%0.3f] [%0.3f,%0.3f A"
+"%0.3f]"
+
+#: ../bin/tstraigh.c:470
+msgid "Extending Straight Track"
+msgstr "Gleisgerade verlängern"
+
+#: ../bin/tstraigh.c:549
+msgid "Straight "
+msgstr "Gerade "
+
+#: ../wlib/gtklib/filesel.c:114
+msgid "All files"
+msgstr "Alle Dateien"
+
+#: ../wlib/gtklib/font.c:278
+msgid "Font Select"
+msgstr "Auswahl der Schriftart"
+
+#: ../wlib/gtklib/help.c:68
+msgid "&Contents"
+msgstr "Inhalt"
+
+#: ../wlib/gtklib/ixhelp.c:243
+msgid "Home"
+msgstr "Startseite"
+
+#: ../wlib/gtklib/ixhelp.c:247
+msgid "Contents"
+msgstr "Inhaltsverzeichnis"
+
+#: ../wlib/gtklib/menu.c:541
+msgid "<Empty List>"
+msgstr "<Leere Liste>"
+
+#: ../wlib/gtklib/notice.c:96 ../wlib/mswlib/mswmisc.c:1988
+#: ../wlib/mswlib/mswmisc.c:2031
+msgid "Warning"
+msgstr "Warnung"
+
+#: ../wlib/gtklib/notice.c:101 ../wlib/mswlib/mswmisc.c:1993
+msgid "Error"
+msgstr "Fehler"
+
+#: ../wlib/gtklib/text.c:286
+#, c-format
+msgid "%d of %d"
+msgstr "%d von %d"
+
+#: ../wlib/gtklib/wpref.c:114
+#, c-format
+msgid ""
+"The required configuration files could not be located in the expected "
+"location.\n"
+"\n"
+"Usually this is an installation problem. Make sure that these files are "
+"installed in either \n"
+" %s/share/xtrkcad or\n"
+" /usr/lib/%s or\n"
+" /usr/local/lib/%s\n"
+"If this is not possible, the environment variable %s must contain the name "
+"of the correct directory."
+msgstr ""
+"Die notwenidgen Konfigurationsdaten konnten nicht im erwarteten Verzeichnis "
+"gefunden werden.\n"
+"\n"
+"Üblicherweise ist dies ein Instalaltionsproblem. Stellen Sie sicher, dass "
+"diese Dateien in entweder\n"
+" %s/share/xtrkcad oder\n"
+" /usr/lib/%s oder\n"
+" /usr/local/lib/%s\n"
+"gespeichert sind. Sollte das nicht möglich sein, muss die Umgebungsvariable "
+"%s den Namen des korrekten Verzeichnis enthalten."
+
+#: ../wlib/gtklib/wpref.c:148 ../wlib/gtklib/wpref.c:193
+msgid "HOME is not set"
+msgstr "HOME ist nicht gesetzt"
+
+#: ../wlib/gtklib/wpref.c:148 ../wlib/gtklib/wpref.c:157
+#: ../wlib/gtklib/wpref.c:193
+msgid "Exit"
+msgstr "Beenden"
+
+#: ../wlib/gtklib/wpref.c:156
+#, c-format
+msgid "Cannot create %s"
+msgstr "Kann %s nicht erstellen"
+
+#: ../wlib/mswlib/mswmenu.c:884
+msgid "Ctrl+"
+msgstr "Strg+"
+
+#: ../wlib/mswlib/mswmenu.c:889
+msgid "Alt+"
+msgstr "Alt+"
+
+#: ../wlib/mswlib/mswmenu.c:894
+msgid "Shift+"
+msgstr "Umsch+"
+
+#: ../wlib/mswlib/mswmenu.c:900
+msgid "Space"
+msgstr "Abstand"
+
+#: ../../../../build/work/app/help/messages.h:9
+#, c-format
+msgid ""
+"MSG_CANT_PLACE_FROGPOINTS\tFrog|Points cannot be placed on a turnout, circle "
+"or helix.\tA %s cannot be placed on a turnout, circle or helix."
+msgstr ""
+"MSG_CANT_PLACE_FROGPOINTS\tHerzstück|Zungen können nicht auf eine Weiche, "
+"einen Kreis oder eine Gleiswendel gesetzt werden.\tEin %s kann nicht auf "
+"eine Weiche, einen Kreis oder eine Gleiswendel gelegt werden."
+
+#: ../../../../build/work/app/help/messages.h:10
+msgid ""
+"MSG_SEL_TRK_FROZEN\tA frozen layer contains selected track. Command cannot "
+"be executed."
+msgstr ""
+"MSG_SEL_TRK_FROZEN\tEine eingefrorene Ebene enthält ausgewählte...\tEine "
+"eingefrorene Ebene enthält ausgewählte Gleise.\n"
+"Der Befehl kann nicht ausgeführt werden."
+
+#: ../../../../build/work/app/help/messages.h:11
+msgid "MSG_HELIX_TURNS_GTR_0\tA Helix must have one or more loops of track."
+msgstr ""
+"MSG_HELIX_TURNS_GTR_0\tEine Gleiswendel muss eine oder mehrere Gleiswindung "
+"enthalten."
+
+#: ../../../../build/work/app/help/messages.h:12
+msgid ""
+"MSG_LARGE_FONT\tA large font has been selected....\tA large font has been "
+"selected.\n"
+"Large fonts may a take a while to load.\n"
+"\n"
+"Do you wish to continue?"
+msgstr ""
+"MSG_LARGE_FONT\tEine grosse Schriftart wurde ausgewählt...\tEine grosse "
+"Schriftart wurde ausgewählt.\n"
+"Das Laden grosser Schriften kann lange dauern.\n"
+"\n"
+"Wollen Sie den Vorgang fortsetzen?"
+
+#: ../../../../build/work/app/help/messages.h:13
+msgid ""
+"MSG_TODSGN_DESC_NONBLANK\tAll description fields present in the Turnout..."
+"\tAll description fields present in the Turnout\n"
+"Designer must contain appropriate information.\n"
+"Correct inappropriate values and try again."
+msgstr ""
+"MSG_TODSGN_DESC_NONBLANK\tAlle vorhandenen Beschreibungsfelder des Weichen "
+"Editor...\tAlle Beschreibungsfelder des Weicheneditor\n"
+"müssen korrekt ausgefüllt sein. Bitte falsche Werte \n"
+"korrigieren und nochmals versuchen."
+
+#: ../../../../build/work/app/help/messages.h:14
+msgid ""
+"MSG_GROUP_NONBLANK\tAll fields listed in the Group dialog must contain "
+"data....\tAll fields listed in the Group dialog must contain data.\n"
+"Please enter missing values and try again."
+msgstr ""
+"MSG_GROUP_NONBLANK\tAlle Felder im Gruppieren-Dialog müssen ausgefüllt "
+"sein...\tAlle Felder im Gruppieren-Dialog müssen ausgefüllt sein.\n"
+"Bitte die fehlenden Werte ergänzen und nochmals versuchen."
+
+#: ../../../../build/work/app/help/messages.h:15
+msgid ""
+"MSG_TODSGN_VALUES_GTR_0\tAll values specified in the Turnout Designer must "
+"be...\tAll values specified in the Turnout Designer must be\n"
+"greater than 0. Correct inappropriate values and try again."
+msgstr ""
+"MSG_TODSGN_VALUES_GTR_0\tAlle eingegebenen Werte im Weicheneditor müssen..."
+"\tAlle eingegebenen Werte im Weicheneditor müssen\n"
+"größer als 0 sein. Bitte fehlerhafte Werte korrigieren und nochmal versuchen."
+
+#: ../../../../build/work/app/help/messages.h:16
+msgid "MSG_CURVE_OUT_OF_RANGE\tAngle must be between 0\\u00B0 and 360\\u00B0."
+msgstr "MSG_CURVE_OUT_OF_RANGE\tDer Winkel muss zwischen 0° und 360° liegen."
+
+#: ../../../../build/work/app/help/messages.h:17
+#, c-format
+msgid ""
+"MSG_CUSTMGM_DELETE_CONFIRM\tAre you sure you want to delete the NNN "
+"definition(s)?\tAre you sure you want to delete the\n"
+"%d definition(s)?"
+msgstr ""
+"MSG_CUSTMGM_DELETE_CONFIRM\tSind Sie sicher, dass Sie NNN Definitionen "
+"löschen wollen?\tSind Sie sicher, dass Sie %d Definitionen\n"
+"löschen wollen?"
+
+#: ../../../../build/work/app/help/messages.h:18
+msgid "MSG_WBITMAP_FAILED\tBitmap create or write function failed."
+msgstr ""
+"MSG_WBITMAP_FAILED\tErzeugen oder Schreiben der Bitmap ist fehlgeschlagen."
+
+#: ../../../../build/work/app/help/messages.h:19
+msgid "MSG_BITMAP_TOO_LARGE\tBitmap is too large."
+msgstr "MSG_BITMAP_TOO_LARGE\tBitmap ist zu groß."
+
+#: ../../../../build/work/app/help/messages.h:20
+msgid "MSG_CHANGE_ELEV_MODE\tCannot change elevation mode."
+msgstr ""
+"MSG_CHANGE_ELEV_MODE\tArt der Höhenfestlegung kann nicht geändert werden."
+
+#: ../../../../build/work/app/help/messages.h:21
+msgid ""
+"MSG_GRID_ENABLE_SPACE_GTR_0\tCannot Enable Grid; spacing must be greater "
+"than 0"
+msgstr ""
+"MSG_GRID_ENABLE_SPACE_GTR_0\tFangraster kann nicht aktiviert werden. Abstand "
+"muss größer als 0 sein."
+
+#: ../../../../build/work/app/help/messages.h:22
+msgid "MSG_LAYER_FREEZE\tCannot freeze current layer"
+msgstr "MSG_LAYER_FREEZE\tAktuelle Ebene kann nicht eingefroren werden."
+
+#: ../../../../build/work/app/help/messages.h:23
+msgid ""
+"MSG_CANT_GROUP_BUMPER1\tCannot Group Bumper Track. The track has been "
+"unselected."
+msgstr ""
+"Prellbock kann nicht in die Gruppe aufgenommen werden. Das Gleis wurde "
+"abgewählt."
+
+#: ../../../../build/work/app/help/messages.h:24
+msgid "MSG_CANNOT_GROUP_TRACK\tCannot Group selected track."
+msgstr ""
+"MSG_CANNOT_GROUP_TRACK\tAusgewähltes Gleis kann nicht gruppiert werden."
+
+#: ../../../../build/work/app/help/messages.h:25
+msgid "MSG_LAYER_HIDE\tCannot hide current layer"
+msgstr "MSG_LAYER_HIDE\tAktuelle Ebene kann nicht verborgen werden."
+
+#: ../../../../build/work/app/help/messages.h:26
+msgid "MSG_JOIN_EASEMENTS\tCannot Join; Easements do not align or abut."
+msgstr ""
+"MSG_JOIN_EASEMENTS\tVerbinden nicht möglich. Übergangsbögen sind nicht "
+"ausgerichtet."
+
+#: ../../../../build/work/app/help/messages.h:27
+#, c-format
+msgid ""
+"MSG_TRK_ALREADY_CONN\tFirst|Second track is already connected.\tCannot Join; "
+"%s track is already connected."
+msgstr ""
+"MSG_TRK_ALREADY_CONN\tErstes|zweites Gleis ist bereits verbunden.\tVerbinden "
+"nicht möglich, das %s Gleis ist bereits verbunden."
+
+#: ../../../../build/work/app/help/messages.h:28
+msgid "MSG_JOIN_TURNTABLE\tCannot join from a turntable, try to a turntable"
+msgstr ""
+"MSG_JOIN_TURNTABLE\tVerbinden von einer Drehscheibe ist nicht möglich, bitte "
+"zur Drehscheibe verbinden"
+
+#: ../../../../build/work/app/help/messages.h:29
+msgid "MSG_JOIN_CORNU_SAME\tCannot Join; Selected endpoints are on same track."
+msgstr ""
+"MSG_JOIN_CORNU_SAME\tVerbinden nicht möglich, da ausgewählte Endpunkte zum "
+"selben Gleis gehören."
+
+#: ../../../../build/work/app/help/messages.h:30
+msgid "MSG_JOIN_SAME\tCannot Join; Selected endpoints are on same track."
+msgstr ""
+"MSG_JOIN_SAME\tVerbinden nicht möglich, da ausgewählte Endpunkte zum selben "
+"Gleis gehören."
+
+#: ../../../../build/work/app/help/messages.h:31
+msgid ""
+"MSG_SELECTED_TRACKS_PARALLEL\tCannot Join; Selected tracks are parallel."
+msgstr ""
+"MSG_SELECTED_TRACKS_PARALLEL\tVerbinden nicht möglich, da ausgewählte Gleise "
+"parallel sind."
+
+#: ../../../../build/work/app/help/messages.h:32
+#, c-format
+msgid ""
+"MSG_PRMFIL_OPEN_NEW\tCannot open New Parameter File: FILENAME\tCannot open "
+"New Parameter File: %s"
+msgstr ""
+"MSG_PRMFIL_OPEN_NEW\tDie neue Parameterdatei DATEINAME kann nicht geöffnet "
+"werden.\tDie neue Parameterdatei %s kann nicht geöffnet werden."
+
+#: ../../../../build/work/app/help/messages.h:33
+msgid "MSG_LAYER_SEL_FROZEN\tCannot select a frozen layer"
+msgstr ""
+"MSG_LAYER_SEL_FROZEN\tEine eingefrorene Ebene kann nicht ausgewählt werden."
+
+#
+#: ../../../../build/work/app/help/messages.h:34
+msgid ""
+"MSG_GRID_SHOW_SPACE_GTR_0\tCannot Show Grid; spacing must be greater than 0"
+msgstr ""
+"MSG_GRID_ENABLE_SPACE_GTR_0\tFangraster kann nicht angezeigt werden. Abstand "
+"muss größer als 0 sein."
+
+#: ../../../../build/work/app/help/messages.h:35
+#, c-format
+msgid "MSG_CANT_SPLIT_TRK\tCannot split TYPE track\tCannot split %s track"
+msgstr ""
+"MSG_CANT_SPLIT_TRK\tTYP Gleis kann nicht aufgetrennt werden\tGleis vom Typ "
+"%s kann nicht aufgetrennt werden."
+
+#: ../../../../build/work/app/help/messages.h:36
+#, c-format
+msgid ""
+"MSG_CUSTMGM_CANT_WRITE\tCannot write to parameter file: FILENAME\tCannot "
+"write to parameter file: %s"
+msgstr ""
+"MSG_PRMFIL_OPEN_NEW\tDie neue Parameterdatei DATEINAME kann nicht geöffnet "
+"werden.\tDie neue Parameterdatei %s kann nicht geöffnet werden."
+
+#: ../../../../build/work/app/help/messages.h:37
+msgid "MSG_CARIMP_DUP_INDEX\tCar Index number duplicated."
+msgstr "MSG_CARIMP_DUP_INDEX\tWagenkennzahl ist doppelt"
+
+#: ../../../../build/work/app/help/messages.h:38
+msgid ""
+"MSG_CONN_PARAMS_TOO_SMALL\tConnection parameters reset to minimum values."
+msgstr ""
+"MSG_CONN_PARAMS_TOO_SMALL\tVerbindungseinstellungen auf die Minimalwerte "
+"zurückgesetzt"
+
+#: ../../../../build/work/app/help/messages.h:39
+msgid "MSG_CONN_PARAMS_TOO_BIG\tConnection parameters reset to maximum values."
+msgstr ""
+"MSG_CONN_PARAMS_TOO_SMALL\tVerbindungseinstellungen auf die Maximalwerte "
+"zurückgesetzt"
+
+#: ../../../../build/work/app/help/messages.h:40
+msgid "MSG_CANT_PASTE\tCopy/Paste buffer is empty. There is nothing to Paste."
+msgstr ""
+"MSG_CANT_PASTE\tZwischenablage ist leer. Es kann nichts eingefügt werden."
+
+#: ../../../../build/work/app/help/messages.h:41
+msgid ""
+"MSG_TODSGN_CROSSOVER_TOO_SHORT\tCrossover length is too short. Correct..."
+"\tCrossover length is too short. Correct\n"
+"inappropriate value(s) and try again."
+msgstr ""
+"MSG_TODSGN_CROSSOVER_TOO_SHORT\tKreuzungslänge ist zu kurz. Unpassende..."
+"\tKreuzungslänge ist zu kurz. Unpassende\n"
+"Werte verbessern und nochmals versuchen."
+
+#: ../../../../build/work/app/help/messages.h:42
+msgid "MSG_CURVE_TOO_LARGE\tCurved track is too large."
+msgstr "MSG_CURVE_TOO_LARGE\tBogengleis ist zu groß."
+
+#: ../../../../build/work/app/help/messages.h:43
+msgid ""
+"MSG_TODSGN_REPLACE\tDefinition name is already in use. Saving this..."
+"\tDefinition name is already in use. Saving this\n"
+"definition replaces the existing definition.\n"
+"\n"
+"Do you want to continue?"
+msgstr ""
+"MSG_TODSGN_REPLACE\tEin Design mit diesem Namen existiert bereits. "
+"Speichern...\tEin Design mit diesem Namen existiert bereits. Speichern\n"
+"unter diesem Namen ersetzt das vorhandene Design.\n"
+"\n"
+"Speichern fortsetzen?"
+
+#: ../../../../build/work/app/help/messages.h:44
+msgid "MSG_SAVE_CHANGES\tDo you want to save the changes made to your Layout?"
+msgstr ""
+"MSG_SAVE_CHANGES\tWollen Sie die Veränderungen an Ihrem Gleisplan speichern?"
+
+#: ../../../../build/work/app/help/messages.h:45
+msgid ""
+"MSG_CARIMP_DUP_COLUMNS\tDuplicate column headers found in Car Import file."
+msgstr ""
+"MSG_CARIMP_DUP_COLUMNS\tDoppelte Spaltenüberschrift in der Wagenimportdatei."
+
+#: ../../../../build/work/app/help/messages.h:46
+msgid "MSG_EP_ON_PATH\tEndpoint already on Path."
+msgstr "MSG_EP_ON_PATH\tDer Endpunkt ist bereits im Pfad enthalten."
+
+#: ../../../../build/work/app/help/messages.h:47
+#, c-format
+msgid ""
+"MSG_UPGRADE_VERSION1\tFile version %ld is greater than supported...\tFile "
+"version %ld is greater than supported\n"
+"version %d. You need to upgrade %s\n"
+"to at least version %s."
+msgstr ""
+"MSG_UPGRADE_VERSION1\tDateiversion %ld ist größer als unterstützte Version..."
+"\tDateiversion %ld ist größer als unterstützte\n"
+"Version %d. Sie sollten %s mindestens auf Version %s\n"
+"aktualisieren."
+
+#: ../../../../build/work/app/help/messages.h:48
+#, c-format
+msgid ""
+"MSG_UPGRADE_VERSION2\tFile version %ld is greater than supported...\tFile "
+"version %ld is greater than supported\n"
+"version %d. You need to upgrade your\n"
+"version of %s"
+msgstr ""
+"MSG_UPGRADE_VERSION2\tDateiversion %ld ist größer als unterstützte Version..."
+"\tDateiversion %ld ist größer als unterstützte\n"
+"Version %d. Sie sollten %s aktualisieren"
+
+#: ../../../../build/work/app/help/messages.h:49
+msgid ""
+"MSG_MOVE_POINTS_OTHER_SIDE\tFrog angle prevents placement of points. Move "
+"points to opposite side of frog."
+msgstr ""
+"MSG_MOVE_POINTS_OTHER_SIDE\tDer Weichenwinkel verhindert das Setzen....\tDer "
+"Weichenwinkel verhindert das Setzen der Weichenzungen.\n"
+"Die Weichenzungen auf die andere Seite der Weiche verschieben."
+
+#: ../../../../build/work/app/help/messages.h:50
+msgid "MSG_NO_ROOM_BTW_TRKS\tInsufficient space between existing stall tracks."
+msgstr "MSG_NO_ROOM_BTW_TRKS\tZu wenig Platz zwischen den Drehscheibengleisen."
+
+#: ../../../../build/work/app/help/messages.h:51
+#, c-format
+msgid ""
+"MSG_JOIN_DIFFER_ELEV\tJoining tracks with differing elevations (N."
+"NNN)\tJoining tracks with differing elevations (%0.2f)"
+msgstr ""
+"MSG_JOIN_DIFFER_ELEV\tZu verbindende Gleise haben unterschiedliche Höhe(N."
+"NNN)\tZu verbindende Gleise haben unterschiedliche Höhe(%0.2f)"
+
+#: ../../../../build/work/app/help/messages.h:52
+msgid "MSG_DESC_NOT_VISIBLE\tLabel descriptions not visible"
+msgstr "MSG_DESC_NOT_VISIBLE\tBeschriftungen sind nicht sichtbar."
+
+#: ../../../../build/work/app/help/messages.h:53
+msgid "MSG_OBJECT_TOO_SHORT\tLength of object is too short."
+msgstr "MSG_OBJECT_TOO_SHORT\tDie Länge des Objektes ist zu kurz."
+
+#: ../../../../build/work/app/help/messages.h:54
+#, c-format
+msgid ""
+"MSG_PRINT_MAX_SIZE\tMaximum allowed page size is W x H\tMaximum allowed page "
+"size is %s x %s"
+msgstr ""
+"MSG_PRINT_MAX_SIZE\tDie maximal zulässige Seitengröße ist B x H\tDie maximal "
+"zulässige Seitengröße ist %s x %s"
+
+#: ../../../../build/work/app/help/messages.h:55
+#, c-format
+msgid ""
+"MSG_PRMFIL_NO_CONTENTS\tNew Parameter File has no CONTENTS line: FILENAME."
+"\tNew Parameter File has no CONTENTS line: %s"
+msgstr ""
+"MSG_PRMFIL_NO_CONTENTS\tDie neue Parameterdatei enthält keine CONTENTS "
+"Zeile: DATEINAME.\tDie neue Parameterdatei enthält keine CONTENTS Zeile: %s."
+
+#: ../../../../build/work/app/help/messages.h:56
+msgid ""
+"MSG_NO_CARS\tNo Cars are defined for the current scale....\tNo Cars are "
+"defined for the current scale.\n"
+"\n"
+"Do you want to use the Car Inventory dialog?"
+msgstr ""
+"MSG_NO_CARS\tFür den aktuellen Maßstab sind keine Wagen vorhanden...\tFür "
+"den aktuellen Maßstab sind keine Wagen vorhanden.\n"
+"\n"
+"Soll der Wagenbestandsdialog geöffnet werden?"
+
+#: ../../../../build/work/app/help/messages.h:57
+msgid ""
+"MSG_NO_CARPROTO\tNo Car Prototypes are defined....\tNo Car Prototypes are "
+"defined.\n"
+"Load a Prototype definition file using the\n"
+"Parameter Files dialog or create a Prototype\n"
+"definition using the Car Prototype dialog."
+msgstr ""
+"MSG_NO_CARPROTO\tEs sind keine Vorbildwagen definiert...\tEs sind keine "
+"Vorbildwagen definiert.\n"
+"Über den Parameterdateidialog muß eine\n"
+"Parameterdatei mit Vorbildern geladen werden oder\n"
+"ein Vorbild muß über den Wagenvorbilddialog erstellt werden."
+
+#: ../../../../build/work/app/help/messages.h:58
+msgid "MSG_CARIMP_NO_DATA\tNo data present in Car Import file."
+msgstr "MSG_CARIMP_NO_DATA\tDie Wagenimportdatei enthält keine Daten."
+
+#: ../../../../build/work/app/help/messages.h:59
+msgid "MSG_PRINT_NO_PAGES\tNo pages selected for printing."
+msgstr "MSG_PRINT_NO_PAGES\tKeine Seiten zum Drucken ausgewählt."
+
+#: ../../../../build/work/app/help/messages.h:60
+msgid "MSG_NO_PATH_TO_EP\tNo path between Profile and selected endpoint."
+msgstr ""
+"MSG_NO_PATH_TO_EP\tEs existiert keine Verbindung zwischen dem Högenprofil "
+"und dem ausgählten Endpunkt."
+
+#: ../../../../build/work/app/help/messages.h:61
+#, c-format
+msgid ""
+"MSG_PRMFIL_NO_MAP\tNo Parameter File Map for CONTENTS\tNo Parameter File Map "
+"for %s"
+msgstr ""
+"MSG_PRMFIL_OPEN_NEW\tDie neue Parameterdatei DATEINAME kann nicht geöffnet "
+"werden.\tDie neue Parameterdatei %s kann nicht geöffnet werden."
+
+#: ../../../../build/work/app/help/messages.h:62
+msgid "MSG_NO_SELECTED_TRK\tNo track(s) selected!"
+msgstr "MSG_NO_SELECTED_TRK\tEs sind keine Gleise ausgewählt!"
+
+#: ../../../../build/work/app/help/messages.h:63
+#, c-format
+msgid ""
+"MSG_NO_TURNOUTS_AVAILABLE\tNo Turnouts|Structures are available.\tNo %s are "
+"available."
+msgstr ""
+"MSG_NO_TURNOUTS_AVAILABLE\tEs sind keine Weichern | Gebäude verfügbar.\tEs "
+"sind keine %s verfügbar."
+
+#: ../../../../build/work/app/help/messages.h:64
+msgid ""
+"MSG_CARDESC_VALUE_ZERO\tNumeric values on the Car Description...\tNumeric "
+"values on the Car Description\n"
+"dialog must be greater than 0."
+msgstr ""
+"MSG_CARDESC_VALUE_ZERO\tNumerische Werte im Wagenbeschreibungsdialog..."
+"\tNumerische Werte im Wagenbeschreibungsdialog\n"
+"müssen größer als 0 sein."
+
+#: ../../../../build/work/app/help/messages.h:65
+msgid "MSG_MOVE_OUT_OF_BOUNDS\tObject has moved beyond room boundaries."
+msgstr ""
+"MSG_MOVE_OUT_OF_BOUNDS\tObjekt wurde nach außerhalb des Raumes verschoben."
+
+#: ../../../../build/work/app/help/messages.h:66
+msgid "MSG_PARALLEL_SEP_GTR_0\tParallel separation must be greater than 0."
+msgstr "MSG_PARALLEL_SEP_GTR_0\tParallelabstand muß größer als 0 sein."
+
+#: ../../../../build/work/app/help/messages.h:67
+msgid ""
+"MSG_CARPART_DUPNAME\tPart Number for this Manufacturer already exists...."
+"\tPart Number for this Manufacturer already exists.\n"
+"\n"
+"Do you want to update it?"
+msgstr ""
+"MSG_CARPART_DUPNAME\tTeilnummer für diesen Hersteller existiert bereits..."
+"\tTeilnummer für diesen Hersteller existiert bereits.\n"
+"\n"
+"Wollen Sie den Artikel aktualisieren?"
+
+#: ../../../../build/work/app/help/messages.h:68
+#, c-format
+msgid ""
+"MSG_PLAYBACK_LISTENTRY\tPlayback: Cannot find list entry: NAME\tPlayback: "
+"Cannot find list entry: %s"
+msgstr ""
+"MSG_PLAYBACK_LISTENTRY\tWiedergabe: Der Listeneintrag: NAME kann nicht "
+"gefunden werden.\tWiedergabe: der Listeneintrag %s kann nicht gefunden "
+"werden."
+
+#: ../../../../build/work/app/help/messages.h:69
+#, c-format
+msgid ""
+"MSG_PLAYBACK_VERSION_UPGRADE\tPlayback file version %ld is...\tPlayback file "
+"version %ld is\n"
+"greater than supported version %d\n"
+"You need to upgrade your version of %s"
+msgstr ""
+"MSG_PLAYBACK_VERSION_UPGRADE\tVersion %ld der Wiedergabedatei ist..."
+"\tVersion %ld der Wiedergabedatei\n"
+"ist neuer als due unterstützte Version %d\n"
+"Aktualisierung von %s ist notwendig."
+
+#: ../../../../build/work/app/help/messages.h:70
+#, c-format
+msgid ""
+"MSG_DOMOUSE_BAD_OP\tPlayback: unknown action NNN\tPlayback: unknown action %d"
+msgstr ""
+"MSG_DOMOUSE_BAD_OP\tWiedergabe: unbekannte AktionNNN\tWiedergabe: unbekannte "
+"Aktion %d"
+
+#: ../../../../build/work/app/help/messages.h:71
+msgid "MSG_MOVE_POINTS_AWAY_CLOSE\tPoints are to close to frog; move away."
+msgstr ""
+"MSG_MOVE_POINTS_AWAY_CLOSE\tWeichenzungen sind zu kurz. In größere "
+"Entfernung vom Herzstück setzen. "
+
+#: ../../../../build/work/app/help/messages.h:72
+msgid "MSG_POLY_SHAPES_3_SIDES\tPoly shapes must have at least 3 sides."
+msgstr ""
+"MSG_POLY_SHAPES_3_SIDES\tEin Vieleck muss mindestens drei Seiten haben.."
+
+#: ../../../../build/work/app/help/messages.h:73
+msgid ""
+"MSG_CARPROTO_DUPNAME\tPrototype name already exists....\tPrototype name "
+"already exists.\n"
+"\n"
+"Do you want to update it?"
+msgstr ""
+"MSG_CARPROTO_DUPNAME\tEin Vorbild mit diesem Namen existiert bereits...."
+"\tEin Vorbild mit diesem Namen existiert bereits.\n"
+"\n"
+"Wollen Sie dieses Vorbild überschreiben?"
+
+#: ../../../../build/work/app/help/messages.h:74
+msgid "MSG_RADIUS_GTR_0\tRadius must be greater than 0."
+msgstr "MSG_RADIUS_GTR_0\tRadius muss größer als 0 sein.."
+
+#: ../../../../build/work/app/help/messages.h:75
+msgid "MSG_RADIUS_GTR_10000\tRadius must be less than 10000."
+msgstr "MSG_RADIUS_GTR_0\tRadius muss kleiner als 10000 sein."
+
+#: ../../../../build/work/app/help/messages.h:76
+msgid ""
+"MSG_RADIUS_TOO_BIG\tThe Circle or Helix will not fit within the layouts room "
+"parameters (Height and Width)."
+msgstr ""
+"MSG_RADIUS_TOO_BIG\tDer Bogen oder die Gleiswendel passen nicht in den Raum "
+"(Höhe und Breite)."
+
+#: ../../../../build/work/app/help/messages.h:77
+#, c-format
+msgid ""
+"MSG_RESCALE_TOO_BIG\tRescaled tracks do not fit within layouts room "
+"parameters...\tRescaled tracks do not fit within layouts room parameters\n"
+"(Height and width). The layouts room parameters should be\n"
+"set to at least %s by %s."
+msgstr ""
+"MSG_RESCALE_TOO_BIG\tNeu skalierte Gleise passen nicht in den Raum...\tNeu "
+"skalierte Gleise passen nicht in den Raum\n"
+"(Länge und Breite). Die benötigte Größe ist\n"
+"mindestens %s auf %s."
+
+#: ../../../../build/work/app/help/messages.h:78
+msgid ""
+"MSG_CARIMP_MISSING_COLUMNS\tRequired column headers missing from Car Import "
+"file."
+msgstr ""
+"MSG_CARIMP_MISSING_COLUMNS\tDie benötigten Spaltenüberschriften fehlen in "
+"der Wagen-ImportDatei."
+
+#: ../../../../build/work/app/help/messages.h:79
+#, c-format
+msgid ""
+"MSG_2ND_TRK_NOT_SEL_UNSEL\tSecond track must be selected|unselected\tSecond "
+"track must be %s."
+msgstr ""
+"MSG_2ND_TRK_NOT_SEL_UNSEL\tDas zweite Gleis darf (nicht) ausgewählt sein."
+"\tDas zweite Gleis muss %s sein."
+
+#: ../../../../build/work/app/help/messages.h:80
+msgid "MSG_OUT_OF_BOUNDS\tSelected page is out of bounds."
+msgstr ""
+"MSG_OUT_OF_BOUNDS\tAusgewählte Dateien sind außerhalb des zulässigen "
+"Bereichs."
+
+#: ../../../../build/work/app/help/messages.h:81
+msgid "MSG_SEL_POS_FIRST\tSelect position prior to entering Text."
+msgstr ""
+"MSG_SEL_POS_FIRST\tDie Position muß vor der Texteingabe festgelegt werden."
+
+#: ../../../../build/work/app/help/messages.h:82
+msgid ""
+"MSG_CARPROTO_BADSEGS\tSelected shapes must define a rectangular area ..."
+"\tSelected shapes must define a rectangular\n"
+"area with length greater than height."
+msgstr ""
+"MSG_CARPROTO_BADSEGS\tDie ausgewählten Formen müssen einen rechtwinkligen..."
+"\tDie ausgewählten Formen müssen einen rechtwinkligen\n"
+"Bereich bilden, wobei die Länge größer als die Breite sein muss."
+
+#: ../../../../build/work/app/help/messages.h:83
+msgid ""
+"MSG_TOO_FAR_APART_DIVERGE\tSelected tracks deviate too much or are too far "
+"apart from each other."
+msgstr ""
+"MSG_TOO_FAR_APART_DIVERGE\tDie ausgewählten Gleise weichen zu stark ab..."
+"\tDie ausgewählten Gleise weichen zu stark ab oder\n"
+"sind zu weit voneinander entfernt."
+
+#: ../../../../build/work/app/help/messages.h:84
+msgid "MSG_COMMAND_DISABLED\tSpecified command disabled."
+msgstr "MSG_COMMAND_DISABLED\tDieser Befehl ist deaktiviert."
+
+#: ../../../../build/work/app/help/messages.h:85
+msgid "MSG_SPLIT_POS_BTW_MERGEPTS\tSplit position between Turnout Points"
+msgstr ""
+"MSG_SPLIT_POS_BTW_MERGEPTS\tDie Trennstelle befindet sich iin den "
+"Weichenzungen."
+
+#: ../../../../build/work/app/help/messages.h:86
+msgid "MSG_SPLIT_PATH_NOT_UNIQUE\tSplit position not on unique path"
+msgstr ""
+"MSG_SPLIT_PATH_NOT_UNIQUE\tTrennstelle ist nicht auf einem eindeutigen "
+"Verlauf."
+
+#: ../../../../build/work/app/help/messages.h:87
+#, c-format
+msgid ""
+"MSG_CARIMP_MISSING_DIMS\tThe following car has no dimensions and a...\tThe "
+"following car has no dimensions and a\n"
+"Car Part description can not be found.\n"
+"\n"
+"%s\n"
+"\n"
+"Do you wish to continue importing other Cars?"
+msgstr ""
+"MSG_CARIMP_MISSING_DIMS\tFür den folgenden Wagen gibt es keine Abmessungen "
+"und....\tFür den folgenden Wagen gibt es keine Abmessungen und\n"
+"eine Wagenbeschreibung ist nicht vorhanden.\n"
+"\n"
+"%s\n"
+"\n"
+"Soll das Einlesen der Wagen fortgesetzt werden?"
+
+#: ../../../../build/work/app/help/messages.h:88
+#, c-format
+msgid ""
+"MSG_CARIMP_MISSING_PARTNO\tThe following car has no Part Number...\tThe "
+"following car has no Part Number\n"
+"\n"
+"%s\n"
+"\n"
+"Do you wish to continue importing other Cars?"
+msgstr ""
+"MSG_CARIMP_MISSING_PARTNO\tDer folgende Wagen hat keine Teilenummer...\tDer "
+"folgende Wagen hat keine Teilenummer.\n"
+"\n"
+"%s\n"
+"\n"
+"Soll das Einlesen der Wagen fortgesetzt werden?"
+
+#: ../../../../build/work/app/help/messages.h:89
+#, c-format
+msgid ""
+"MSG_CARIMP_IGNORED_COLUMN\tThe following column in the Car Import file will "
+"be ignored:...\tThe following column in the Car Import file will be "
+"ignored:\n"
+"\n"
+"%s"
+msgstr ""
+"MSG_CARIMP_IGNORED_COLUMN\tDiese Spalte in der Wagen-Importdatei wird "
+"ignoriert:...\tDiese Spalte in der Wagen-Importdatei wird ignoriert:\n"
+"\n"
+"%s"
+
+#: ../../../../build/work/app/help/messages.h:90
+msgid ""
+"MSG_CANT_MOVE_UNDER_TRAIN\tThe position of a turnout or turntable cannot be "
+"changed while occupied by a train."
+msgstr ""
+"MSG_CANT_MOVE_UNDER_TRAIN\tDie Position einer Weiche oder einer "
+"Drehscheibe...\tDie Position einer Weiche oder einer Drehscheibe\n"
+"kann nicht verändert werden, wenn sich ein Zug darauf befindet."
+
+#: ../../../../build/work/app/help/messages.h:91
+msgid ""
+"MSG_STRUCT_NO_STRUCTS\tThere are no structures to choose from in the "
+"structure...\tThere are no structures to choose from in the structure\n"
+"selection list. Please check your SCALE, select the\n"
+"<File|Parameter Files> menu to load a Parameter File or\n"
+"create a new Structure with the Group command."
+msgstr ""
+"MSG_STRUCT_NO_STRUCTS\tIn der Liste der Gebäude gibt es keine...\tIn der "
+"Liste der Gebäude gibt es keine Gebäude,\n"
+"die ausgewählt werden können. Bitte Maßstab prüfen, im Menupunkt <Datei|"
+"Parameter Dateien> eine Parameter-Datei wählen\n"
+"oder ein neues Gebäude mit dem Gruppieren-Befehl erstellen."
+
+#: ../../../../build/work/app/help/messages.h:92
+msgid ""
+"MSG_TURNOUT_NO_TURNOUT\tThere are no turnouts to choose from in the "
+"turnout...\tThere are no turnouts to choose from in the turnout\n"
+"selection list. Please check your SCALE, select the\n"
+"<Manage|Turnout Designer> menu to enter a new turnout\n"
+"or select the <File|Parameter Files> menu to load a\n"
+"Parameter File"
+msgstr ""
+"MSG_TURNOUT_NO_TURNOUT\tIn der Weichenauswahl gibt es keine Weichen, die "
+"ausgewählt werden können...\tIn der Weichenauswahl gibt es keine Weichen, "
+"die ausgewählt werden können.\n"
+"Bitte den Maßstab prüfen, über den Menupunkt <Hinzufügen | Weichendesigner> "
+"eine Weiche anlegen oder\n"
+"eine Parameter-Datei unter <Datei|Parameter Dateien> laden."
+
+#: ../../../../build/work/app/help/messages.h:93
+msgid "MSG_NO_UNCONN_EP\tThere are no unconnected end points for this track"
+msgstr "MSG_NO_UNCONN_EP\tDieses Gleis hat keine freien Endpunkte."
+
+#: ../../../../build/work/app/help/messages.h:94
+msgid "MSG_PULL_FEW_SECTIONS\tThere are too few sections in this loop."
+msgstr ""
+"MSG_PULL_FEW_SECTIONS\tIn dieser Schleife gibt es zu wenige Teilstücke."
+
+#: ../../../../build/work/app/help/messages.h:95
+msgid "MSG_NO_REDO\tThere is nothing to redo!"
+msgstr "MSG_NO_REDO\tEs gibt nichts wiederherzustellen!"
+
+#: ../../../../build/work/app/help/messages.h:96
+msgid "MSG_NO_UNDO\tThere is nothing to undo!"
+msgstr "MSG_NO_UNDO\tEs gibt nicht rückgängig zu machen!"
+
+#: ../../../../build/work/app/help/messages.h:97
+msgid "MSG_TOOMANYSEGSINGROUP\tToo many segments in Group."
+msgstr "MSG_TOOMANYSEGSINGROUP\tIn der Gruppe sind zu viele Teile."
+
+#: ../../../../build/work/app/help/messages.h:98
+msgid "MSG_CANNOT_CHANGE\tTrack cannot be changed."
+msgstr "MSG_CANNOT_CHANGE\tGleis kann nicht verändert werden."
+
+#: ../../../../build/work/app/help/messages.h:99
+msgid "MSG_POINT_INSIDE_TURNTABLE\tTrack endpoint is within turntable radius."
+msgstr ""
+"MSG_POINT_INSIDE_TURNTABLE\tGleisende befindet sich innerhalb der "
+"Drehscheibe."
+
+#: ../../../../build/work/app/help/messages.h:100
+msgid ""
+"MSG_MOVE_POINTS_AWAY_NO_INTERSECTION\tTrack intersection not possible; move "
+"points away from frog."
+msgstr ""
+"MSG_MOVE_POINTS_AWAY_NO_INTERSECTION\tGleiskreuzung ist nicht möglich, "
+"Weichenzungen müssen länger sein."
+
+#: ../../../../build/work/app/help/messages.h:101
+#, c-format
+msgid ""
+"MSG_TRK_TOO_SHORT\tTrack is too short by N.NNN\t%strack is too short by %0.3f"
+msgstr ""
+"MSG_TRK_TOO_SHORT\tGleis ist um N.NNN zu kurz.\t%sgleis ist um %0.3f zu kurz."
+
+#: ../../../../build/work/app/help/messages.h:102
+#, c-format
+msgid ""
+"MSG_RADIUS_LSS_EASE_MIN\tTrack radius (N.NNN) is smaller than easement "
+"minimum (N.NNN).\tTrack radius (%s) is smaller than easement minimum (%s)."
+msgstr ""
+"MSG_RADIUS_LSS_EASE_MIN\tGleisradius (N.NNN) ist kleiner als der minimale "
+"Übergangsbogen (N.NNN).\tGleisradius (%s) ist kleiner als\n"
+"der Mindest-Übergangsbogen (%s)."
+
+#: ../../../../build/work/app/help/messages.h:103
+msgid ""
+"MSG_CANT_MODIFY_FROZEN_TRK\tTracks in a frozen layer cannot be modified."
+msgstr ""
+"MSG_CANT_MODIFY_FROZEN_TRK\tGleise in einer gesperrten Ebene können nicht "
+"verändert werden."
+
+#: ../../../../build/work/app/help/messages.h:104
+msgid ""
+"MSG_SEGMENTS_DIFFER\tTurnout definition contains non-track segments...."
+"\tTurnout definition contains non-track segments.\n"
+"\n"
+"Do you want to include them in this update?"
+msgstr ""
+"MSG_SEGMENTS_DIFFER\tDie Weichendefinition enthält nicht nur Gleise....\tDie "
+"Weichendefinition enthält nicht nur Gleise.\n"
+"\n"
+"Sollen diese in der Aktrualisierung aufgenommen werden?"
+
+#: ../../../../build/work/app/help/messages.h:105
+msgid "MSG_TURNTABLE_DIAM_GTR_0\tTurntable diameter must greater than 0."
+msgstr ""
+"MSG_TURNTABLE_DIAM_GTR_0\tDer Durchmesser der Drehscheibe muß größer als 0 "
+"sein."
+
+#: ../../../../build/work/app/help/messages.h:106
+#, c-format
+msgid ""
+"MSG_UNDO_ASSERT\tUndo assertion failure %s:%d...\tUndo assertion failure %s:"
+"%d\n"
+"Val = %ld(%lx)\n"
+"%s\n"
+"Please report this error to the XTrackCAD project development team at "
+"SourceForge."
+msgstr ""
+"MSG_UNDO_ASSERT\tUndo assertion failure %s:%d...\tUndo assertion failure %s:"
+"%d\n"
+"Val = %ld(%lx)\n"
+"%s\n"
+"Bitte diesen Fehler an das XTrackCAD Entwicklungsteam in Sourceforge "
+"berichten."
+
+#: ../../../../build/work/app/help/messages.h:107
+#, c-format
+msgid ""
+"MSG_PROG_CORRUPTED\tCritical file damaged!...\tCritical file damaged!\n"
+"\n"
+"%s is corrupt.\n"
+"\n"
+"Please reinstall software."
+msgstr ""
+"MSG_PROG_CORRUPTED\tEine kritische Datei ist beschädigt...\tEine kritische "
+"Datei ist beschädigt!\n"
+"\n"
+"%s ist beschädigt.\n"
+"\n"
+"Bitte XTrackCAD neu installieren."
+
+#: ../../../../build/work/app/help/messages.h:108
+#, c-format
+msgid ""
+"MSG_ENTERED_STRING_TRUNCATED\tThe entered text is too long. Maximum length "
+"is %d."
+msgstr ""
+"MSG_ENTERED_STRING_TRUNCATED\tDer eingegebene Text ist zu lang. Die maximal "
+"zulässige Länge beträgt %d."
+
+#: ../../../../build/work/app/help/messages.h:109
+#, c-format
+msgid "MSG_PT_IS_NOT_TRK\t[X Y] is not a track\t[%s %s] is not a track."
+msgstr ""
+"MSG_PT_IS_NOT_TRK\tAn [X Y]befindet sich kein Gleis\tAn [%s %s] befindet "
+"sich kein Gleis."
+
+#: ../../../../build/work/app/help/messages.h:110
+msgid ""
+"MSG_BITMAP_SIZE_WARNING\tYou have specified a large Bitmap....\tYou have "
+"specified a large Bitmap.\n"
+"\n"
+"Are you sure you want to continue?"
+msgstr ""
+"MSG_BITMAP_SIZE_WARNING\tDie Bilddatei wird sehr groß.\tDie Bilddatei wird "
+"sehr groß.\n"
+"\n"
+"Wollen Sie den Vorgang fortsetzen?"
+
+#: ../../../../build/work/app/help/messages.h:111
+#, c-format
+msgid "Are you sure you want to delete these %d car(s)?"
+msgstr "Sind Sie sicher, dass Sie diese %d Wagen löschen wollen?"
+
+#: ../../../../build/work/app/help/messages.h:112
+#, c-format
+msgid ""
+"Cannot open %s file:\n"
+"%s:%s"
+msgstr ""
+"%sdatei kann nicht geöffnet werden:\n"
+"%s:%s"
+
+#: ../../../../build/work/app/help/messages.h:113
+#, c-format
+msgid "Unrecognized Option: %s"
+msgstr "Unbekannte Option: %s"
+
+#: ../../../../build/work/app/help/messages.h:114
+#, c-format
+msgid ""
+"End-Of-Line is unexpected in a quoted field.\n"
+"%s\n"
+"\n"
+"Do you want to continue reading the file?"
+msgstr ""
+"Unerwartetes Zeilenende in innerhalb von Anführungszeichen.\n"
+"%s\n"
+"\n"
+"Soll das Lesen der Datei fortgesetzt werden?"
+
+#: ../../../../build/work/app/help/messages.h:115
+#, c-format
+msgid ""
+"A comma was expected after this quoted field.\n"
+"%s\n"
+"\n"
+"Do you want to continue reading the file?"
+msgstr ""
+"Erwartetes Komma nach Anführungszeichen fehlt.\n"
+"%s\n"
+"\n"
+"Soll das Laden der Datei fortgesetzt werden?"
+
+#: ../../../../build/work/app/help/messages.h:116
+#, c-format
+msgid ""
+"Error \\\\\"%s\\\\\" occurred while writing %s.\n"
+"Please check disk space and system status."
+msgstr ""
+"Fehler \\\\\"%s\\\\\" aufgetreten beim Speichern von %s.\n"
+"Bitte Plattenplatz und System prüfen."
+
+#: ../../../../build/work/app/help/messages.h:117
+#, c-format
+msgid ""
+"At least one path for the Turnout T%d does not\n"
+"terminate on an endpoint. Such a track cannot be grouped.\n"
+"The track has been unselected."
+msgstr ""
+"Mindestens ein Pfad durch die Weiche T%d endet nicht\n"
+"an einem Endpunkt. Solche Gleise können nicht gruppiert werden.\n"
+"Das Gleis wurde aus der Auswahl entfernt."
+
+#: ../../../../build/work/app/help/messages.h:118
+msgid "inv-pathEndTrk on Path."
+msgstr "inv-pathEndTrk auf Pfad."
+
+#: ../../../../build/work/app/help/messages.h:119
+msgid "inv-pathStartTrk on Path"
+msgstr "inv-pathStartTrk auf Pfad."
+
+#: ../../../../build/work/app/help/messages.h:120
+#, c-format
+msgid "%s:%d- %s"
+msgstr "%s:%d- %s"
+
+#: ../../../../build/work/app/help/messages.h:121
+msgid "pathEndTrk not on Path."
+msgstr "pathEndTrk nicht auf einem Pfad."
+
+#: ../../../../build/work/app/help/messages.h:122
+msgid "pathStartTrk not on Path."
+msgstr "pathStartTrk nicht auf einem Pfad."
+
+#: ../../../../build/work/app/help/messages.h:123
+msgid ""
+"The tracks cannot be connected together.\n"
+"\n"
+"Try changing some tracks for a closer fit\n"
+"or increase the Connection Angle value on\n"
+"the Preferences dialog."
+msgstr ""
+"Die Gleise können nicht verbunden werden.\n"
+"\n"
+"Versuchen Sie einige Gleise enger zusammenzuführen\n"
+"oder ändern Sie den Verbindungswinkel im\n"
+"Einstellungsdialog."
+
+#: ../../../../build/work/app/help/messages.h:124
+msgid ""
+"The tracks cannot be connected together.\n"
+"\n"
+"Try changing some tracks for a closer fit\n"
+"or increase the Connection Distance and\n"
+"Angle values on the Preferences dialog"
+msgstr ""
+"Die Gleise können nicht verbunden werden.\n"
+"\n"
+"Versuchen Sie einige Gleise enger zusammenzuführen\n"
+"oder ändern Sie den Verbindungsabstand und -winkel im\n"
+"Einstellungsdialog"
+
+#: ../../../../build/work/app/help/messages.h:125
+msgid ""
+"The tracks cannot be connected together.\n"
+"\n"
+"Try changing some tracks for a closer fit\n"
+"or increase the Connection Distance"
+msgstr ""
+"Die Gleise können nicht verbunden werden.\n"
+"\n"
+"Versuchen Sie einige Gleise enger zusammenzuführen\n"
+"oder ändern Sie den Verbindungsabstand im Einstellungsdialog"
+
+#: ../../../../build/work/app/help/messages.h:126
+msgid ""
+"The first track for the Align\n"
+"Rotate command must be Selected."
+msgstr ""
+"Das erste Gleis für den \"Ausrichten\n"
+"Drehen\" Befehl muss ausgewählt sein."
+
+#: ../../../../build/work/app/help/messages.h:127
+msgid ""
+"The second track for the Align\n"
+"Rotate command must be Unselected."
+msgstr ""
+"Das zweite Gleis für den \"Ausrichten\n"
+"Drehen\" Befehl darf nicht ausgewählt sein."
+
+#: ../../../../build/work/app/help/messages.h:128
+msgid "Too many selected tracks, drawing tracks as End Point."
+msgstr "Zu viele ausgewählte Gleise, nur die Endpunkte werden angezeigt"
+
+#: ../../../../build/work/app/help/messages.h:129
+msgid "Select an endpoint between two tracks."
+msgstr "Einen Endpunkt zwischen zwei Gleisen auswählen."
+
+#: ../../../../build/work/app/help/messages.h:130
+msgid ""
+"According to values that have been entered the diverging\n"
+"track does not connect with the tangent track. Please\n"
+"check the values entered and try again. Check the angle\n"
+"is entered as a frog number or in degrees as specified\n"
+"by Angle Mode radio buttons."
+msgstr ""
+"Mit den eingegebenen Werten kann das abzweigende\n"
+"Gleis nicht mit dem Stammgleis verbunden werden. Bitte\n"
+"prüfen Sie die eingegebenen Werte und versuchen es nochmals.\n"
+"Prüfen Sie ob der Abzweigwinkel gemäß der der Auswahl richtig als\n"
+"Steigung oder als Winkel eingegeben wurde. "
+
+#: ../../../../build/work/app/help/messages.h:131
+msgid "Moved before the end of the turnout"
+msgstr "Vor das Ende des Tunnels verschoben"
+
+#: ../../../../build/work/app/help/messages.h:132
+msgid ""
+"The Coupled Length must be greater than the Car Length,\n"
+"and the Coupler Length must be greater than 0."
+msgstr ""
+"Die gekuppelte Länge muss größer als die Wagenlänge\n"
+"und die Kupplerlänge muss größer als 0 sein."
+
+#: ../../../../build/work/app/help/messages.h:133
+msgid ""
+"The Car Length value must be greater\n"
+"than the Car Width value."
+msgstr ""
+"Die Wagenlänge muss größer als\n"
+"die Wagenbreite sein."
+
+#: ../../../../build/work/app/help/messages.h:134
+msgid ""
+"The specified Index is already in use.\n"
+"The Index will be updated to the next available value."
+msgstr ""
+"Dier angegebene Indexnummer ist bereits vergeben.\n"
+"Die Indexnummer wird auf den nächsten freien Wert aktualisiert."
+
+#: ../../../../build/work/app/help/messages.h:135
+msgid ""
+"You have changed values for this object.\n"
+"\n"
+"Are you sure you want to Close?"
+msgstr ""
+"Sie haben Änderungen an diesem Objekt vorgenommen\n"
+"\n"
+"Wollen Sie diesen Dialog wirklich beenden?"
+
+#: ../../../../build/work/app/help/messages.h:136
+#, c-format
+msgid ""
+"File version %ld is lower than the minimum\n"
+"supported version %d. You need to update your\n"
+"layout file using an older version of %s"
+msgstr ""
+"Dateiversion %ld ist älter als die älteste\n"
+"unterstütze Version %d. Konvertieren Sie\n"
+"die Gleisplandatei mit einer älteren Version von %s\""
+
+#: ../../../../build/work/app/help/messages.h:137
+#, c-format
+msgid ""
+"%s cannot read the demo file:\n"
+"%s"
+msgstr ""
+"%s kann die Demodatei \":\n"
+"%s nicht laden."
+
+#: ../../../../build/work/app/help/messages.h:138
+#, c-format
+msgid "doDemo: bad number (%d)"
+msgstr "doDemo: ungültige Zahl (%d)"
+
+#: ../../../../build/work/app/help/messages.h:139
+msgid "Playback TIMEEND without TIMESTART"
+msgstr "TIMEEND in Wiedergabe ohne TIMESTART"
+
+#: ../../../../build/work/app/help/messages.h:140
+#, c-format
+msgid ""
+"Unknown playback command (%d)\n"
+"%s"
+msgstr ""
+"Unbekannter Wiedergabebefehl (%d)\n"
+"%s"
+
+#: ../../../../build/work/app/help/messages.h:141
+#, c-format
+msgid ""
+"Playback file version %ld is lower than the\n"
+"minimum supported version %d.\n"
+"You need to update your layout file using an\n"
+"older version of %s"
+msgstr ""
+"Wiedergabedatei version %ld ist niedriger als\n"
+"die kleinste unterstützte Version %d.\n"
+"Sie müssen Ihr Layoutdesign mit einer älteren\n"
+"Version von %s aktualisieren."
+
+#: ../../../../build/work/app/help/messages.h:142
+#, c-format
+msgid "Scale index (%d) is not valid"
+msgstr "Maßstab (%d) ist nicht gültig"
+
+#: ../../../../build/work/app/help/messages.h:143
+#, c-format
+msgid ""
+"Scale %s is not valid\n"
+"Please check your %s.xtq file"
+msgstr ""
+"Maßstab %s ist ungültig.\n"
+"Bitte prüfen Sie die Datei %s.xtq "
+
+#: ../../../../build/work/app/help/messages.h:144
+msgid "Cannot extend a helix"
+msgstr "Eine Gleiswendel kann nicht erweitert werden."
+
+#: ../../../../build/work/app/help/messages.h:145
+msgid "Cannot trim a helix"
+msgstr "Eine Gleiswendel kann n icht gekürzt werden"
+
+#: ../../../../build/work/app/help/messages.h:146
+msgid "Ignore further audit notices?"
+msgstr "Weitere Protokollhinweise ignorieren?"
+
+#: ../../../../build/work/app/help/messages.h:147
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: ../../../../build/work/app/help/messages.h:148
+msgid "Audit Abort?"
+msgstr "Protokolierung abbrechen?"
+
+#: ../../../../build/work/app/help/messages.h:149
+msgid "Write Audit File?"
+msgstr "Protokolldatei schreiben?"
+
+#: ../../../../build/work/app/help/messages.h:150
+#, c-format
+msgid "checkTrackLength: Short track length = %0.3f"
+msgstr "checkTrackLength: Kurze Gleislänge = %0.3f"
+
+#: ../../../../build/work/app/help/messages.h:151
+#, c-format
+msgid "checkTrackLength: unknown type: %d"
+msgstr "checkTrackLength: Unbekannter Typ: %d"
+
+#: ../../../../build/work/app/help/messages.h:152
+#, c-format
+msgid "connectTracks: T%d[%d] T%d[%d] d=%0.3f a=%0.3f"
+msgstr "connectTracks: T%d[%d] T%d[%d] d=%0.3f a=%0.3f"
+
+#: ../../../../build/work/app/help/messages.h:153
+#, c-format
+msgid "GetAngleAtPoint: bad type(%d) for T(%d)"
+msgstr "GetAngleAtPoint: Falscher Typ (%d) für T(%d)"
+
+#: ../../../../build/work/app/help/messages.h:154
+#, c-format
+msgid "joinTracks: invalid track type=%d"
+msgstr "joinTracks: Ungültiger Gleistyp=%d"
+
+#: ../../../../build/work/app/help/messages.h:155
+#, c-format
+msgid "resolveIndex: T%d[%d]: T%d doesn\\\\'t exist"
+msgstr "resolveIndex: T%d[%d]: T%d existiert nicht."
+
+#: ../../../../build/work/app/help/messages.h:156
+msgid "Moved beyond the end of the track"
+msgstr "Hinter das Ende des Gleises verschoben"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:10
+msgid "Invokes on-line help for this dialog"
+msgstr "Aufruf der Kontexthilfe für diesen Dialog"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:11
+msgid "Cancels this command"
+msgstr "Befehl abbrechen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:12
+msgid "Closes the dialog"
+msgstr "Dialogfenster schliessen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:13
+msgid "About box dialog"
+msgstr "Informationen über dieses Programm"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:14
+msgid "Move Selected object to top"
+msgstr "Ausgewählte Objekte ganz nach oben"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:15
+msgid "Raise or Lower all Selected tracks"
+msgstr "Alle ausgewählten Gleise anheben oder absenken"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:16
+msgid "Move Selected object to bottom"
+msgstr "Ausgewählte Objekte ganz nach unten"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:17
+msgid "Create a section of track for automation"
+msgstr "Einen Gleisabschnitt für die Automation erstellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:18
+msgid "Edit a Block Definition "
+msgstr "Einen Gleisblock bearbeiten"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:19
+msgid "Create a new Car/Loco description"
+msgstr "Erstelle eine neue Wegan/Lok-Beschreibung"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:20
+msgid "Manage your Car and Loco Inventory"
+msgstr "Wagen- und Lokbestand verwalten"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:21
+msgid "Create track circle from center"
+msgstr "Erstelle Gleiskreis um Mittelpunkt"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:22
+msgid "Create fixed radius track circle"
+msgstr "Erstelle Gleiskreis mit festgelegtem Radius"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:23
+msgid "Set Circle Track creation mode"
+msgstr "Wähle Befehl um Gleisbögen zu erstellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:24
+msgid "Create track circle from tangent"
+msgstr "Erstelle Gleiskreis von Tangente"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:25
+msgid "Removes elevation from Selected tracks"
+msgstr "Entfernt die Höhenangaben von den ausgewählten Gleisen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:26
+msgid "Command Options dialog"
+msgstr "Dialog für die Befehlsoptionen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:27
+msgid "Controls colors"
+msgstr "Steuert die Farben"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:28
+msgid "Connect two tracks"
+msgstr "Gleise zusammenfügen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:29
+msgid "Create a control for layout automation"
+msgstr "Erstelle ein Kontrollelement für Automation"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:30
+msgid "Manage control elements"
+msgstr "Steuerungselemente verwalten"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:31
+msgid "Copy selected objects to clipboard"
+msgstr "Ausgewählte Objekte in die Zwischenablage kopieren"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:32
+msgid "Create curved track from center"
+msgstr "Erstelle Gleisbogen vom Mittelpunkt"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:33
+msgid "Create curved track from chord"
+msgstr "Erstelle Gleisbogen von einer Sehne"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:34
+msgid "Create curved track from end-point"
+msgstr "Erstelle Gleisbogen von Endpunkt"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:35
+msgid "Create Bezier track"
+msgstr "Erstelle Bezier-Gleis"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:36
+msgid "Set Curve Track creation mode"
+msgstr "Wähle Befehl um Gleiskreis zu erstellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:37
+msgid "Create curved track from tangent"
+msgstr "Erstelle Gleisbogen von einer Tangente"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:38
+msgid "Manipulate Custom designer entries"
+msgstr "Bearbeite die eigenen Designs"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:39
+msgid "Moves selected objects to clipboard"
+msgstr "Ausgewählte Objekte in die Zwischenablage verschieben"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:40
+msgid "Delete objects"
+msgstr "Objekte löschen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:41
+msgid "Playback demos"
+msgstr "Demos abspielen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:42
+msgid "Change Object Properties"
+msgstr "Eigenschaften des Objektes bearbeiten"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:43
+msgid "Deselect all selected objects"
+msgstr "Ausgewählte Objekte abwählen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:44
+msgid "Change Display parameters"
+msgstr "Anzeigeeigenschaften ändern"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:45
+msgid "Create benchwork"
+msgstr "Unterbau erstellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:46
+msgid "Create a box"
+msgstr "Ein Viereck erstellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:47
+msgid "Set Circle drawing command"
+msgstr "Wähle Befehl um Kreise zu zeichnen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:48
+msgid "Create a circle"
+msgstr "Einen Kreis erstellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:49
+msgid "Draw a circle line from center"
+msgstr "Zeichne Kreislinie um Mittelpunkt"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:50
+msgid "Draw a fixed radius circle line"
+msgstr "Zeichne einen Kreisbogen mit festen Radius"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:51
+msgid "Draw a circle line from tangent"
+msgstr "Zeichne Kreis von Tangente"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:52
+msgid "Set Curve drawing command"
+msgstr "Wähle Befehl um gebogene Linien zu zeichnen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:53
+msgid "Create a curved line"
+msgstr "Eine gebogene Linie erstellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:54
+msgid "Create a curved line from End"
+msgstr "gebogene Linie von einem Endpunkt erstellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:55
+msgid "Create a curved line from center"
+msgstr "gebogene Linie vom Mittelpunkt aus erstellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:56
+msgid "Create a curved line from chord"
+msgstr "gebogene Linie von einer Sehne erstellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:57
+msgid "Create a curved line from tangent"
+msgstr "gebogene Linie von einer Tangente erstellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:58
+msgid "Create a Bezier line"
+msgstr "Eine Bezier-Linie erstellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:59
+msgid "Create a dimension line"
+msgstr "Zeichne Maßlinie"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:60
+msgid "Create a filled box"
+msgstr "Ein gefülltes Viereck erstellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:61
+msgid "Create a filled circle"
+msgstr "Einen gefüllten Kreis erstellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:62
+msgid "Draw a filled circle from center"
+msgstr "Zeichne gefüllten Kreis um Mittelpunkt"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:63
+msgid "Draw a fixed radius filled circle"
+msgstr "Zeichne einen gefüllten Kreis mit festem Radius"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:64
+msgid "Draw a filled circle from tangent"
+msgstr "Zeichne gefüllten Kreis von Tangente"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:65
+msgid "Create a filled polygon"
+msgstr "Ein gefültes Polygon erstellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:66
+msgid "Create a polyline"
+msgstr "Eine Polylinie erstellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:67
+msgid "Create a straight line"
+msgstr "Eine gerade Linie erstellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:68
+msgid "Set Line drawing command"
+msgstr "Wähle Befehl um Linien zu zeichnen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:69
+msgid "Set Shape drawing command"
+msgstr "Wähle Befehl um Formen zu zeichnen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:70
+msgid "Draw table edge"
+msgstr "Tischkante zeichnen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:71
+msgid "Easement menu"
+msgstr "Einstellungen für Übergangsbögen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:73
+msgid "Generate a Parts List of selected objects"
+msgstr "Teileliste aus den ausgewählten Objekten erzeugen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:74
+msgid "Export a .xti file"
+msgstr "Export in XTI Datei"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:75
+msgid "Export a DXF file"
+msgstr "Export nach DXF"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:76
+msgid "General note about the layout"
+msgstr "Allgemeine Notiz zur Anlage"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:77
+msgid "Flip selected objects"
+msgstr "Ausgewählte Objekte spiegeln"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:78
+msgid "Adjust snap grid"
+msgstr "Fangraster anpassen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:79
+msgid "Enable snap grid"
+msgstr "Fangraster aktivieren"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:80
+msgid "Show snap grid"
+msgstr "Fangraster anzeigen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:81
+msgid "Create a structure from a Group of objects"
+msgstr "Objekte zu einer Gruppierung zusammen fassen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:82
+msgid "Create a hand-laid turnout"
+msgstr "Handgemachte Weiche erstellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:83
+msgid "Create a track helix"
+msgstr "Eine Gleiswendel erstellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:84
+msgid "Import a .xti file"
+msgstr "Importieren einer .xti-Datei"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:85
+msgid "Join two tracks"
+msgstr "Zwei Gleise zusammenfügen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:86
+msgid "Change Layers"
+msgstr "Ebenen ändern"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:87
+msgid "Selects the current drawing layer"
+msgstr "Auswahl der aktuellen Zeichenebene"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:88
+msgid "Layout parameters"
+msgstr "Gleisplaneinstellungen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:89
+msgid "Show/Hide Map Window"
+msgstr "Übersichtsfenster anzeigen/verbergen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:90
+msgid "Modify or extend a track"
+msgstr "Ändern oder erweitern eines Gleises"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:91
+msgid "Move selected objects"
+msgstr "Ausgewählte Objekte verschieben"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:92
+msgid "Move a label"
+msgstr "Beschreibung verschieben"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:93
+msgid "Move selected objects to current layer"
+msgstr "Ausgewählte Objekte auf die aktuelle Ebene verschieben"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:95
+msgid "Print a BitMap"
+msgstr "Drucke in eine Grafikdatei"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:96
+msgid "Pan or Zoom the Layout"
+msgstr "Ausschnitt ändern oder Zoomen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:97
+msgid "Create a parallel track"
+msgstr "Ein Parallelgleis erzeugen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:98
+msgid "Register"
+msgstr "Registrierem"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:99
+msgid "Copy objects from clipboard"
+msgstr "Objekte von der Zwischenablage kopieren"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:100
+msgid "Perferences dialog"
+msgstr "Einstellungen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:101
+msgid "Display prices of turnouts, sectional tracks and structures"
+msgstr "Die Preise von Weichen, Gleisen und Gebäuden anzeigen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:102
+msgid "Print the layout"
+msgstr "Gleisplan ausdrucken"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:103
+msgid "Loads and unloads parameter files"
+msgstr "Parameterdateien laden und entladen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:104
+msgid "Elevation Profile Command"
+msgstr "Höhenprofil bearbeiten"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:106
+msgid "Command recorder"
+msgstr "Befehlsaufzeichnung"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:108
+msgid "Update selected Turnout and Structure definitions"
+msgstr "Die ausgewählten Gebäude und Weichen aktualisieren"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:109
+msgid "Rescale selected objects"
+msgstr "Ausgewählte Objekte skalieren"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:110
+msgid "Rotate selected object(s)"
+msgstr "Ausgewählte Objekte drehen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:111
+msgid "Show a ruler"
+msgstr "Lineal anzeigen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:112
+msgid "Select objects"
+msgstr "Objekte auswählen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:113
+msgid "Selects all objects on the layout"
+msgstr "Alle Objekte des Gleisplan auswählen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:114
+msgid "Selects all objects in the current Layer"
+msgstr "Alle Objekte der aktuellen Ebene auswählen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:115
+msgid "Invert current selection"
+msgstr "Auswahl umkehren"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:116
+msgid "Split a track"
+msgstr "Gleis trennen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:117
+msgid "Select stranded (unconnected) track pieces"
+msgstr "Vereinzelte (nicht verbundene) Gleisstücke auswählen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:118
+msgid "Create a sensor (ie. a occupancy detector or a toggle switch)"
+msgstr ""
+"Erstelle einen Sensor (z.B. eine Besetzterkennung oder einen Umschalter)"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:119
+msgid "Create a signal for train control"
+msgstr "Ein Signal für die Zugsteuerung erstellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:120
+msgid "Choose which commands are sticky"
+msgstr "Auswahl dauerhafter Befehle"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:121
+msgid "Create straight track"
+msgstr "Gerades Gleis erzeugen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:122
+msgid "Place a structure on the layout"
+msgstr "Ein Gebäude auf den Gleisplan setzen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:123
+msgid "Create a switchmotor for turnout control"
+msgstr "Einen Motor für die Weichensteuerung erstellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:124
+msgid "Edit a switchmotor definition"
+msgstr "Einen Weichenantrieb bearbeiten"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:125
+msgid "Enter text on the layout"
+msgstr "Text auf den Gleisplan"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:126
+#: ../../../../build/work/app/bin/bllnhlp.c:487
+msgid "Controls the size of the entered text"
+msgstr "Auswahl der Schriftgröße für einzugebenden Text"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:127
+msgid "Tip of the Day window"
+msgstr "Tipp des Tages"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:128
+msgid "Run Trains"
+msgstr "Zugbetrieb"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:129
+msgid "Pause/Resume Trains"
+msgstr "Zugbetrieb pausieren/fortsetzen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:130
+msgid "Place a car on the layout"
+msgstr "Einen Wagen auf den Gleisplan setzen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:131
+msgid "Exit Trains"
+msgstr "Zugbetrieb beenden"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:132
+msgid "Hide/Unhide a track"
+msgstr "Verbergen/Zeigen eines Gleises"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:133
+msgid "Place a turnout or sectional track"
+msgstr "Weiche oder Gleis platzieren"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:134
+msgid "Create a new turnout definition"
+msgstr "Erstelle eine neue Weichendefinition"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:135
+msgid "Place a turntable"
+msgstr "Eine Drehscheibe setzen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:136
+msgid "Updates old source files with 3 part titles"
+msgstr "Aktualisiere alte Dateien mit dreiteiligen Titeln"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:138
+msgid "Ungroup objects"
+msgstr "Gruppierung aufheben"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:139
+msgid "Draw tracks with thin lines"
+msgstr "Gleise mit dünnen Linien zeichnen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:140
+msgid "Draw tracks with medium lines"
+msgstr "Gleise mit mittleren Linien zeichnen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:141
+msgid "Draw tracks with thick lines"
+msgstr "Gleise mit dicken Linien zeichnen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:142
+msgid "Change drawing scale"
+msgstr "Zeichenmaßstab auswählen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:143
+#: ../../../../build/work/app/bin/bllnhlp.c:155
+msgid "Zoom in"
+msgstr "Zoom größer"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:144
+#: ../../../../build/work/app/bin/bllnhlp.c:156
+msgid "Zoom out"
+msgstr "Zoom kleiner"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:145
+msgid "File Menu"
+msgstr "Dateimenue"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:146
+msgid "Save layout"
+msgstr "Gleisplan speichern"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:147
+msgid "Save layout under a new name "
+msgstr "Gleisplan mit neuem Namen speichern"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:148
+msgid "New layout"
+msgstr "Neuer Gleisplan"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:149
+msgid "Generate parts list"
+msgstr "Teileliste erzeugen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:150
+msgid "Load a layout"
+msgstr "Gleisplan laden"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:151
+msgid "Exit the program"
+msgstr "Programm beenden"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:152
+msgid "Revert to last saved state of layout plan"
+msgstr "Zum letzten gespeicherten Stand zurücksetzen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:153
+msgid "Edit menu"
+msgstr "Bearbeiten Menu"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:154
+msgid "Redraw layout"
+msgstr "Gleisplan neu zeichnen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:157
+#: ../../../../build/work/app/bin/bllnhlp.c:160
+msgid "Tools menu"
+msgstr "Werkzeug Menu"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:158
+msgid "View menu"
+msgstr "Menü für Anzeigefuinktionen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:159
+msgid "Toolbar configuration"
+msgstr "Konfiguration der Werkzeugleiste"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:161
+msgid "Options menu"
+msgstr "Optionen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:162
+msgid "Playback/Record commands"
+msgstr "Aufzeichnungs- und Wiedergabebefehle"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:163
+msgid "Window menu"
+msgstr "Fenstermenu"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:164
+msgid "Help menu"
+msgstr "Menu für Hilfe"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:165
+msgid "Recent error messages and explanations"
+msgstr "Aktuellste Fehlermeldungen und Erläuterungen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:166
+msgid "Move Hot Bar left"
+msgstr "Schnellauswahl nach links bewegen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:167
+msgid "Move Hot Bar right"
+msgstr "Schnellauswahl nach rechts bewegen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:168
+msgid "Total track count"
+msgstr "Gesamtzahl der Gleise"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:169
+msgid "X Position of cursor"
+msgstr "X Position des Zeiger"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:170
+msgid "Y Position of cursor"
+msgstr "Y Position des Zeiger"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:171
+msgid "Drawing scale"
+msgstr "Zeichnungsmaßstab"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:172
+msgid "Message and status line"
+msgstr "Nachrichten- und Statuszeile"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:173
+#: ../../../../build/work/app/bin/bllnhlp.c:174
+msgid "Main layout canvas"
+msgstr "Hauptzeichenbereich"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:175
+msgid "Main drawing canvas"
+msgstr "Hauptzeichenbereich"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:176
+msgid "Command buttons"
+msgstr "Befehle"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:177
+msgid "Menus"
+msgstr "Menues"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:178
+msgid "Tile, Filename and Window Manager buttons"
+msgstr "Tile, Filename and Window Manager buttons"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:179
+msgid "Turnout and Structure Hot Bar"
+msgstr "Weichen und Gebäude Auswahlleiste"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:180
+msgid "Active layer list and layer buttons"
+msgstr "Liste der aktiven Ebene und Ebenen-Knöpfe"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:181
+msgid "Map window"
+msgstr "Kartenfenster"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:182
+msgid "This is the portion of the layout shown in the Main Window canvas"
+msgstr "Dieser Teil der Gleisplans wird auf der Hauptzeichenfläche angezeigt"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:183
+msgid "Raise or Lower all Selected Track"
+msgstr "Anheben oder Absenken der ausgewählten Gleise"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:184
+msgid "Name of block"
+msgstr "Name des Gleisblocks"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:185
+msgid "Script that the block will run"
+msgstr "Auszuführendes Skript"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:186
+msgid "List of tracks in the Block"
+msgstr "Liste der Gleise in einem Gleisblock"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:187
+msgid "Add or Update car object"
+msgstr "Einen Wagen zufügen oder aktualisieren"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:188
+msgid "Manufacturer name"
+msgstr "Name des Herstellers"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:191
+msgid "Is the Car a Locomotive?"
+msgstr "Ist der Wagen eine Lokomotive?"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:192
+msgid "Part Number and Description"
+msgstr "Bestellnr. und Beschreibung"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:193
+msgid "Manufacturer Part Number"
+msgstr "Bestellnummer des Herstellers"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:194
+msgid "Use the Selected figure as the car image"
+msgstr "Benutze die ausgewählte Zeichnung als Wagenabbild"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:195
+msgid "Use the default figure as the car image"
+msgstr "Benutze die Standardzeichnung als Wagenabbild"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:196
+msgid "Optional description of the Car Part"
+msgstr "Optionale Beschreibung des Wagenmuster"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:197
+msgid "Flip car image"
+msgstr "Wagenabbild spiegeln"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:198
+msgid "Display Car Item information or reporting marks and dimensions"
+msgstr "Informationen über den Wagen oder Kennzeichen und Abmessungen anzeigen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:199
+msgid "Full Roadname"
+msgstr "Bahngesellschaft"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:200
+#: ../../../../build/work/app/bin/bllnhlp.c:201
+msgid "Car Type"
+msgstr "Wagenart"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:202
+msgid "Reporting Marks (Roadname abbreviation)"
+msgstr "Wagenkennzeichen "
+
+#: ../../../../build/work/app/bin/bllnhlp.c:203
+#: ../../../../build/work/app/bin/bllnhlp.c:379
+msgid "Car Number"
+msgstr "Wagennummer"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:204
+msgid "Car body Color"
+msgstr "Wagenfarbe"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:205
+msgid "Length of car body"
+msgstr "Länge des Aufbau"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:206
+msgid "Width of car body"
+msgstr "Breite des Aufbau"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:207
+msgid "Distance between Trucks "
+msgstr "Abstand zwischen den Drehgestellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:208
+msgid "Coupler are mounted on body or truck"
+msgstr "Kupplungen sind am Wagenaufbau oder an den Drehgestellen befestigt"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:209
+msgid "Overall Coupled Length"
+msgstr "Gekuppelte Gesamtlänge"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:210
+msgid "Coupler Length from end of car"
+msgstr "Kupplungslänge vom Ende des Wagen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:211
+msgid "Diagram of Car"
+msgstr "Diagram der Lokomotive oder Wagens"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:212
+msgid "Item Index Number"
+msgstr "Laufende Nummer"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:213
+msgid "Original Purchase Price"
+msgstr "Ursprünglicher Kaufpreis"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:215
+msgid "Condition of car"
+msgstr "Zusatnd des Wagen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:216
+msgid "Original Purchase Date"
+msgstr "Ursprüngliches Kaufdatum"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:217
+msgid "Last Service Date"
+msgstr "Letztes Servicedatum"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:218
+msgid "Number of identical cars to be entered"
+msgstr "Anzahl der zusätzlichen, gleichartigen Wagen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:219
+msgid "Do all the cars have the same Number?"
+msgstr "Haben alle Wagen dieselbe Nummer"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:220
+msgid "Notes about the car"
+msgstr "Anmerkungen zu dem Wagen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:221
+#: ../../../../build/work/app/bin/bllnhlp.c:222
+msgid "Create a new car Part or Prototype definitions"
+msgstr "Einen neuen Lokomotiven oder Wagen Prototyp erstellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:223
+msgid "Finds the selected Car Item on the layout"
+msgstr "Suche den ausgewählten Wagen auf der Anlage"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:224
+#: ../../../../build/work/app/bin/bllnhlp.c:225
+#: ../../../../build/work/app/bin/bllnhlp.c:226
+#: ../../../../build/work/app/bin/bllnhlp.c:227
+msgid "Sort the Item list"
+msgstr "Sortierung auswählen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:229
+msgid "Edit the selected Car Item"
+msgstr "markierte Lokomotive oder Wagen bearbeiten"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:230
+msgid "Add a new Car Item"
+msgstr "Neuen Wagen hinzufügen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:231
+msgid "Delete the selected Car Items"
+msgstr "Markierte Lokomotiven oder Wagen löschen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:232
+msgid "Import a Car Item .csv file"
+msgstr "Lokomotiven oder Wagen aus einer .csv Datei importieren"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:233
+msgid "Export a Car Item .csv file"
+msgstr "Exportieren der markierten Lokomotiven oder Wagen in eine .csv Datei"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:234
+msgid "Create a text list of the Car Items"
+msgstr "Textdatei der Lokomotiven oder Wagen erstellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:235
+msgid "Specifies the radius of the circle track"
+msgstr "gibt den Radius des Gleiskreises an"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:236
+msgid "How to draw track being moved/rotated"
+msgstr ""
+"Festlegen wie Gleise gezeichnet werden, sobald sie bewegt/rotiert werden"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:237
+msgid "Default command is Describe or Select"
+msgstr "Standardbefehl ist Eigenschaften oder Auswählen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:238
+msgid "Action to invoke on Right-Click"
+msgstr "Festlegen welche Aktion beim Rechtsklick erfolgen soll"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:240
+msgid "The list of control elements"
+msgstr "Die Liste der Steuerungselemente"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:241
+msgid "Edit the element"
+msgstr "Das Element bearbeiten"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:242
+msgid "Delete the element"
+msgstr "Das Element löschen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:243
+msgid "Contents Label for new Parameter file"
+msgstr "Inhaltsbeschreibung für neue Parameterdatei"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:244
+msgid "List of custom designed turnouts and structures"
+msgstr "Liste der individual entwickelten Weichen und Strukturen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:245
+msgid "Invoke designer editor"
+msgstr "Vorbild bearbeiten"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:246
+msgid "Remove selected entries"
+msgstr "Ausgewählte Einträge löschen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:247
+msgid "Copy selected entries to Parameter File"
+msgstr "Ausgewählte Einträge in eine Parameterdatei verschieben"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:248
+msgid "Create a New part or prototype"
+msgstr "Neues Teil oder Prototype erstellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:249
+msgid "Update custom file and close"
+msgstr "Anpassungs Verwaltung speichern und schliessen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:250
+msgid "Executes the next step of the demo"
+msgstr "Nächsten Schritt der momentanen Demo anzeigen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:251
+msgid "Skip to next demo"
+msgstr "zum nächstes Demo Kapitel springen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:252
+msgid "Stops the demonstration and returns you to XTrackCAD"
+msgstr "Demonstrations Modus verlassen und zu XTrackCAD zurückkehren"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:253
+msgid "Select speed of Playback"
+msgstr "Wiedergabegeschwindigkeit auswählen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:254
+msgid "This is where comments about the demo are displayed"
+msgstr "Kommentar zu Demos anzeigen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:291
+msgid "Move the Main canvas if you drag near the edge"
+msgstr ""
+"Bewegen den Hauptzeichenbereich wenn in der nähe der Ecken gezogen wird."
+
+#: ../../../../build/work/app/bin/bllnhlp.c:292
+msgid "Color tracks or other objects by layer"
+msgstr "Gleise / Objekte in Ebenen einfärben "
+
+#: ../../../../build/work/app/bin/bllnhlp.c:293
+msgid "Controls the drawing of hidden tracks"
+msgstr "Steuert das Zeichnen von versteckten Gleisen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:294
+msgid "Controls the drawing of End-Points"
+msgstr "Steuert das Zeichnen von Endpunkten"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:295
+msgid "How to draw track ties"
+msgstr "Steuert das Zeichnen der Schwellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:296
+msgid "Show crosshair at center of curves"
+msgstr "Mittelpunkt als Fadenkreuz anzeigen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:297
+msgid "Drawing scale when to draw tracks with 2 rails"
+msgstr "Mindestmaßstab für die Anzeige von Gleisen mit zwei Schienen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:298
+msgid "Drawing scale of the map window"
+msgstr "Zeichenmaßstab des Kartenfenster"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:299
+msgid "Whether the main layout is updated while dragging on the Map"
+msgstr "Aktualisierung des Gleisplans wenn in der Karte gezogen wird."
+
+#: ../../../../build/work/app/bin/bllnhlp.c:300
+msgid "Enable labels for Turnouts, Flextrack Lengths and Elevations"
+msgstr "Zeige Beschriftungen für Weichen, Flexgleise und Steigungen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:301
+msgid "When to label Turnout, Flextrack Lengths and Elevations"
+msgstr "Wann sollen Weichen, Gleislängen oder Höhenmaß beschriftet werden"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:302
+msgid "Font size for labels on layout"
+msgstr "Zeichengrösse für Beschriftungen im Gleisplan"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:303
+msgid "Label elements on the Hot Bar"
+msgstr "Beschriftungselemente des Teilekatalogs"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:304
+msgid "Label elements on layout"
+msgstr "Beschriftungselemente im Gleisplan"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:305
+msgid "Label elements for lists"
+msgstr "Beschriftungselemente in den Listen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:306
+msgid "How to group cars on the Train Hot Bar"
+msgstr "Gruppierung der Waggen im Teilekatalog"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:307
+msgid "Delay (in mS) between updating train movements"
+msgstr "Aktualisierungsintervall (in ms) der Zugbewegungen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:308
+msgid "Don't show trains in tunnels when tunnels are hidden"
+msgstr "Zeige keine Züge in Tunnels wenn Tunnel verborgen sind"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:309
+msgid "Display unconnected endpoints of track with special marks"
+msgstr "Unverbundene Endpunkte hervorheben"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:310
+msgid "Whether zoom is locked to the bottom left corner or the center point"
+msgstr "Festpunkt beim Zoomen ist die linke untere Ecke oder der Mittelpunkt"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:312
+msgid "Width of the lines"
+msgstr "Breite der Linien"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:313
+msgid "Color of the lines"
+msgstr "Farbe der Linien"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:314
+msgid "List of types of Lumber"
+msgstr "Liste der Leistenmaße"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:315
+msgid "Color of Benchwork"
+msgstr "Farbe des Unterbau"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:316
+msgid "Orientation of Benchwork"
+msgstr "Ausrichtung des Unterbau"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:317
+msgid "Size of Dimension Arrows"
+msgstr "Breite der Größenpfeile"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:318
+msgid "This controls the sharpness of the easement curve"
+msgstr "Steuert die Größe des Übergangsradius"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:319
+msgid "Minimum radius"
+msgstr "Mindestgleisradius"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:320
+msgid "Maximum offset"
+msgstr "Maximaler Abstand"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:321
+msgid "Easement length"
+msgstr "Länge des Übergangsbogen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:322
+msgid ""
+"These radio buttons are a short-cut for Values of 0.0, 0.5, 1.0 and 2.0. "
+"None turns Easements off"
+msgstr ""
+"Standardwerte 0,0, 0,5, 1,0 und 2,0 können schnell gesetzt werden. "
+"Übergangsbögen können hier nicht ausgeschaltet werden. "
+
+#: ../../../../build/work/app/bin/bllnhlp.c:323
+msgid "Complete easement selection"
+msgstr "Auswahl der Übergangsbögen vervollständigen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:324
+msgid "Type of elevation"
+msgstr "Typ des Höhendpunktes"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:325
+msgid "Height of End Point"
+msgstr "Höhe des Endpunkt"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:326
+msgid "Compute elevation based on neighbors"
+msgstr "Berechne das Höhenmaß gemäß der benachbarten Gleise"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:327
+msgid "Compute grade based on neighbors"
+msgstr "Berechne Steigung gemäß der benachbarten Gleise"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:328
+msgid "Specify a name for an End-Point"
+msgstr "Einen Namen für einen Endpunkt vergeben"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:330
+msgid "Print parts list"
+msgstr "Stückliste drucken"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:331
+#: ../../../../build/work/app/bin/bllnhlp.c:431
+#: ../../../../build/work/app/bin/bllnhlp.c:531
+msgid "Invoke the Print Setup dialog"
+msgstr "Starte den Druckerkonfigursationsdialog"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:332
+msgid "Save parts list to file"
+msgstr "Stückliste in Datei speichern"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:333
+msgid "This is the list of parts for the layout"
+msgstr "Dies ist die Teileliste für diesen Gleisplan"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:334
+msgid "Enable prices on the Parts List"
+msgstr "Preise in der Teileliste anzeigen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:335
+#: ../../../../build/work/app/bin/bllnhlp.c:338
+msgid "Spacing between major grid lines"
+msgstr "Abstand der Haupt Raster Linien einstellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:336
+#: ../../../../build/work/app/bin/bllnhlp.c:339
+msgid "Allows the spacing to be subdivided"
+msgstr "stellt die Unterteilung von Zwischenmarkierungen ein"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:337
+#: ../../../../build/work/app/bin/bllnhlp.c:340
+msgid "Specifies if positions are snaped in this direction"
+msgstr "Einschalten des Fangrasters für diese Ausrichtung"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:341
+#: ../../../../build/work/app/bin/bllnhlp.c:342
+#: ../../../../build/work/app/bin/bllnhlp.c:343
+msgid "Shows the origin and angle of the grid"
+msgstr "gibt den Ausgangspunkt und Winkel des Rasters an"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:344
+msgid "Specifies if the grid is shown"
+msgstr "Anzeige des Rasters an oder aus"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:345
+msgid "Completes the grid specification"
+msgstr "Raster Anpassung speichern und beenden"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:349
+msgid "Number of segments in Group"
+msgstr "Anzahl der Segmente in der Gruppe"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:350
+msgid "Replace the Selected object with the new definition?"
+msgstr "Soll das ausgewählte Objekt durch die neue Definition ersetzt werden?"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:351
+msgid "Creates a new Structure (or Turnout)"
+msgstr "Ein neues Gebäude (oder eine Weiche) erstellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:352
+msgid "Elevation difference of Helix End-Points"
+msgstr "Höhenunterschied zwischen den Endpunkten der Gleiswendel"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:353
+msgid "Helix Radius"
+msgstr "Radius der Gleiswendel"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:354
+msgid "Number of turns in the helix"
+msgstr "Anzahl der Umdrehungen in der Wendel"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:355
+msgid "Angle betweek helix entrance and exit"
+msgstr "Winkel zwischen Zu- und Ausgang der Wendel"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:356
+msgid "Grade in helix"
+msgstr "Steigung in der Wendel"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:357
+msgid "Separation between helix layers"
+msgstr "Abstand zwischen den Ebenen der Wendel"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:358
+msgid "Layer list"
+msgstr "Liste der Ebenen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:359
+msgid "Layer Name"
+msgstr "Name der Ebene"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:360
+msgid "Color of layer"
+msgstr "Farbe der Ebene"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:361
+msgid "Layer is drawn on Main window"
+msgstr "Ebene im Hauptfenster darstellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:362
+msgid "Layer cannot be changed"
+msgstr "Ebene schützen - kann nicht mehr geändert werden"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:363
+msgid "Layer is drawn on Map window"
+msgstr "Ebene im Kartenfenster anzeigen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:364
+msgid "Number of layer buttons to show"
+msgstr "Anzahl der Ebenenknöpfe"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:365
+msgid "Number of objects in this layer"
+msgstr "Anzahl von Objekten in dieser Ebene"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:367
+msgid "Load layer configuration from default"
+msgstr "Persönliche Einstellungen für Ebenen laden"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:368
+msgid "Save current layer configuration as default"
+msgstr "momentane Einstellung für Ebenen speichern"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:369
+msgid "Overwrite layer configuration with system default values"
+msgstr "Einstellung für Ebenen auf Systemvorgabe zurück setzen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:370
+#: ../../../../build/work/app/bin/bllnhlp.c:371
+msgid "Specifies the size of the room (in inches or centimeters)"
+msgstr "Größenangabe des Raums (in Zentimeter oder Inch)"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:372
+msgid "Specifies the layout Title that will appear on printouts"
+msgstr "Angabe eines Layout Titels welcher auf Ausdrücken erscheint"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:373
+msgid "Specifies the layout Subtitle that will appear on printouts"
+msgstr "Angabe eines Layout Untertitels welcher auf Ausdrücken erscheint"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:374
+msgid "Specifies the Modelling Scale"
+msgstr "Angabe des Modellbahnmaßstabs"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:375
+msgid "Specifies the rail gauge, ie. the distance between the rails"
+msgstr "Angabe der Spurweite, d.h. der Abstand zwischen den Schienen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:376
+msgid ""
+"Specifies minimum track radius (in inches or centimeters). Tracks with a "
+"smaller radius are considered exceptional."
+msgstr ""
+"Angabe des minimalen Gleisradius (in Zentimeter oder Inch). Gleise mit "
+"geringerem Radius werden als Ausnahme angesehen."
+
+#: ../../../../build/work/app/bin/bllnhlp.c:377
+msgid ""
+"Specifies maximum track elevation expressed as a percent (%). Tracks with a "
+"larger elevation are considered exceptional."
+msgstr ""
+"Angabe der maximalen Gleissteigung in %. Gleise mit größerer Steigung werden "
+"als Ausnahme angesehen."
+
+#: ../../../../build/work/app/bin/bllnhlp.c:380
+msgid ""
+"This is the body of the Note. To change this select Modify from the File "
+"Menu"
+msgstr ""
+"Dies ist der Notiztext. Um diesen zu ändern, wählen Sie bitte 'Ändern' aus "
+"dem 'Datei'-Menu"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:382
+msgid "Specifies number of pixels per inch (or centimeter)"
+msgstr "Gibt die Anzahl der Bildpunkte pro Inch (oder Zentimeter) an"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:384
+msgid ""
+"Specifies whether Layout Titles, Borders or Track Centerlines are printed on "
+"the BitMap"
+msgstr ""
+"Gibt an, ob Anlagentitel, Begrenzungen und Gleismitten in der Bilddatei "
+"ausgegeben werden sollen. "
+
+#: ../../../../build/work/app/bin/bllnhlp.c:385
+msgid "Specifies the separation between parallel tracks"
+msgstr "Gibt den Abstand zwischen parallelen Gleisen an"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:386
+msgid "Enter your name as specified in the XTrackCAD Registration Notice"
+msgstr "Enter your name as specified in the XTrackCAD Registration Notice"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:387
+msgid "Enter the key value as specified in the XTrackCAD Registration Notice"
+msgstr "Enter the key value as specified in the XTrackCAD Registration Notice"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:388
+msgid "Validates the name and key. Terminates the registration command"
+msgstr "Validates the name and key. Terminates the registration command"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:389
+msgid "0ᅵ is up or to the right"
+msgstr "0° ist nach oben oder nach rechts"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:390
+msgid "Choose english (inches) or metric (centimeters)"
+msgstr "Einheiten auswählen: Englisch für Inches oder Metrisch für Zentimeter"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:391
+msgid "How to display length measurements"
+msgstr "Längenformat auswählen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:392
+msgid "Do not create tracks to be shorter than this value"
+msgstr "Keine Gleise kürzer als diese Mindestlänge erstellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:393
+msgid "Maximum distance between connected end points"
+msgstr "Maximale Distanz zwischen verbundenen Endpunkten"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:394
+msgid "Minimum angle between connected End-Points"
+msgstr "kleinster Winkel zwischen verbundenen Endpunkten"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:395
+msgid "Specifies the minimum angle between tracks connected to a turntable"
+msgstr "kleinster Winkel beim Anschluss von Gleisen an eine Drehscheibe"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:396
+msgid "Trains will crash above this speed"
+msgstr "Züge entgleisen oberhalb dieser Geschwindigkeit"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:397
+msgid "Enable/Disable balloon popup help windows"
+msgstr "Ein-/Ausschalten von Erklärungshilfen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:398
+msgid "How far you can move the mouse before its considered a drag"
+msgstr "Wie weit kann die Maus bewegt werden, bevor abreißen angenommen wird"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:399
+msgid "How long you can hold a mouse button down before its considered a drag"
+msgstr ""
+"Wie lange kann ein Mausknopf gedrückt bleiben, bevor abreißen angenommen wird"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:400
+msgid "Minimum distance (in pixels) between grid lines/ticks"
+msgstr "Mindestabstand (in Pixeln) zwischen Raster und Linien"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:401
+msgid ""
+"Specifies the Check Point frequency; number of modifications made since the "
+"last save."
+msgstr ""
+"Anzahl von Änderungen bevor eine neue automatische Sicherung statt findet"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:402
+msgid "Resume work on last layout or start with new layout"
+msgstr "Letzten Gleisplan bearbeiten, oder einen neuen Gleisplan erstellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:404
+msgid "Updated cost of current selected item"
+msgstr "Aktualisierte Kosten für den ausgewählten Gegenstand"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:406
+msgid "Selection list for prices"
+msgstr "Auswahlliste für Preise"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:407
+#: ../../../../build/work/app/bin/bllnhlp.c:408
+#: ../../../../build/work/app/bin/bllnhlp.c:409
+msgid "Price of specified length of flex-track"
+msgstr "Preis für die angegebene Länge des Flex-Gleises"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:411
+msgid "Controls the printing of a centerline of track cmdPrint"
+msgstr "Steuert das Zeichnen der Mittellinie von Gleisen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:412
+msgid "Controls the reduction (scale) of the printout"
+msgstr "Einstellung des Reduktions Maßstabs für den Ausdruck."
+
+#: ../../../../build/work/app/bin/bllnhlp.c:413
+msgid "Scaled page width (Scale times physical page width)"
+msgstr "Seitenbreite angeben (Maßstab mal physikalischer Papierbreite)"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:414
+msgid "Sets page size to the maximum (based on scale and physical page size)"
+msgstr ""
+"Setzt die Papiergröße auf das Maximum (basierend auf Maßstab und "
+"physikalischer Papiergröße)"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:415
+msgid "Scaled page height (Scale times physical page height)"
+msgstr "Seitenhöhe angeben (Maßstab mal physikalischer Papierhöhe)"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:416
+msgid "Sets scale, origin and angle for a one page printout of the layout"
+msgstr ""
+"Stellt Maßstab, Ausrichtung und Winkel für den momentan angezeigten "
+"Gleisplan ein"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:417
+msgid "Print page in Portrait or Landscape format"
+msgstr "Drucke im Hochformat oder Querformat"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:418
+msgid "Order of printing pages"
+msgstr "Druckreihenfolge"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:419
+msgid "Print Title, Date, Author and other information at bottom of page?"
+msgstr "Drucke Titel, Datum Autor und andere Informationen am Ende der Seite?"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:420
+msgid "Ignore unprintable page margins?"
+msgstr "nicht druckbare Seitenränder ignorieren?"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:421
+msgid "Print Registration Marks at 1:1?"
+msgstr "Drucke Positionierungshilfen im 1:1 Maßstab?"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:422
+msgid "Print Snap Grid?"
+msgstr "Fangraster drucken?"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:423
+msgid "Print Rulers on all page edges?"
+msgstr "Lineale an allen Seitenecken drucken?"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:424
+msgid "Print Roadbed Outline?"
+msgstr "Gleisbettung drucken?"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:426
+#: ../../../../build/work/app/bin/bllnhlp.c:427
+#: ../../../../build/work/app/bin/bllnhlp.c:429
+msgid ""
+"Origin of the print grid. This is useful if you want to reprint a set of "
+"pages"
+msgstr ""
+"Ursprung des Druckraster. Hilfreich, wenn einige Seiten erneut gedruckt "
+"werden."
+
+#: ../../../../build/work/app/bin/bllnhlp.c:428
+msgid "Resets the origin and angle to 0"
+msgstr "Ausrichtung und Winkel auf 0 zurücksetzen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:430
+msgid "Deselects all pages"
+msgstr "Alle Seiten abwählen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:432
+msgid "Print selected pages and terminates the print command"
+msgstr "Ausdrucken der ausgewählten Seiten und den Dialog Drucken schließen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:433
+msgid "List of loaded and unloaded parameter files"
+msgstr "Liste aller Parameterdateien"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:434
+msgid "Show parameter files by names or descriptions"
+msgstr "Zeige Namen oder Beschreibung der Parameter-Dateien an"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:435
+msgid "Toggle the loaded status of the selected parameter file"
+msgstr "Ändert den Status für ausgewählte Parameter-Dateien"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:436
+msgid "Find a parameter file for loading"
+msgstr "Sucher eine Parameterdatei zum Einlesen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:437
+msgid "Update parameter file list"
+msgstr "Aktualisiere die Liste der Parameterdateien"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:438
+msgid "Select all parameter files shown"
+msgstr "Alle angezeigten Parameter-Dateien auswählen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:439
+msgid "Profile of specified path"
+msgstr "Höhenprofil der ausgewählten Verbindung"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:440
+msgid "Clear the profile"
+msgstr "Lösche das Höhenprofil"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:441
+msgid "Print the profile"
+msgstr "Höhenprofil drucken..."
+
+#: ../../../../build/work/app/bin/bllnhlp.c:443
+msgid "Stop recording"
+msgstr "Aufzeichnung beenden"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:444
+msgid "Insert a message"
+msgstr "Eine Nachricht einfügen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:445
+msgid "End a message"
+msgstr "Ende einer Mitteilung"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:446
+msgid "Message body"
+msgstr "Mitteilung"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:447
+msgid "Possible turnouts"
+msgstr "Mögliche Weichen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:448
+msgid "Skip this turnout"
+msgstr "Diese Weiche überspringen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:450
+msgid "Manufacturer of Object"
+msgstr "Hersteller des Objektes"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:451
+msgid "Description of Object"
+msgstr "Beschreibung des Objekte"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:452
+msgid "Part Nuber of Object"
+msgstr "Bestellnummer des Objektes"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:454
+msgid "Rescale by Scale Conversion or by Ratio"
+msgstr "Durch Auswahl eines Maßstab oder eines Multiplikators skalieren"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:455
+msgid "Original Scale of the selected objects"
+msgstr "Ursprünglicher Maßstab der ausgewählten Objekte"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:456
+msgid "Original Gauge of the selected objects"
+msgstr "Ursprüngliche Spurweite der ausgewählten Objekte"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:457
+msgid "New Scale of the selected objects"
+msgstr "Neuer Maßstab der ausgewählten Objekte"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:458
+msgid "New Gauge of the selected objects"
+msgstr "Neu Spurweite der ausgewählten Objekte"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:459
+msgid "Change track dimensions to new scale"
+msgstr "Abmessungen des Gleises auf den neuen Maßstab umrechnen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:460
+msgid "Change size by this amount"
+msgstr "Größe um einen Faktor verändern"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:462
+msgid "Snap Grid Line and Division"
+msgstr "Fangraster Linien und Unterteilungen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:463
+msgid "X and Y position markers"
+msgstr "X und Y Positionsmarkierungen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:464
+msgid "Border rulers, room boundaries and table edges"
+msgstr "Begrenzungslinien, Raumumriß und Anlagenkanten"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:465
+msgid "Primary Axis of grid rotation"
+msgstr "Erste Achse für Rasterdrehung"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:466
+msgid "Secondary Axis of grid rotation"
+msgstr "Zweite Achse für Rasterdrehung"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:467
+msgid "Unselected tracks"
+msgstr "Nicht ausgewählte Gleise"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:468
+msgid "Selected tracks"
+msgstr "Ausgewählte Gleise"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:469
+msgid "Color of tracks on the Profile path"
+msgstr "Farbe für Gleise auf Höhenverlauf"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:470
+msgid "Color of Exceptional tracks"
+msgstr "Farbe für Gleise außerhalb der Grenzwerte"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:471
+msgid "Color of track ties"
+msgstr "Farbe der Schwellen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:472
+msgid "Updates the colors"
+msgstr "Farben aktualisieren"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:473
+msgid "Angle in degrees"
+msgstr "Winkel in Grad"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:474
+msgid "Rotate object(s) by specified amount"
+msgstr "Objekte um einen bestimmten Winkel drehen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:475
+msgid "Choose commands to be sticky"
+msgstr "Wiederholte Befehle auswählen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:476
+msgid "Make the commands sticky"
+msgstr "Mache die Befehle wiederholbar"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:477
+msgid "List of available structure"
+msgstr "Liste der verfügbaren Gebäude"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:478
+msgid "Diagram of the selected structure"
+msgstr "Zeichnung des ausgewählten Gebäudes"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:479
+msgid "Hide Selection window when placing Structure"
+msgstr "Verberge Auswahlfenster bis das Gebäude plaziert ist"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:480
+msgid "Drawing scale and size"
+msgstr "Zeichnungsmaßstab und Größe"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:481
+msgid "Complete structure placement"
+msgstr "Anordnung des Gebäude abschliessen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:482
+msgid "Choose a Pier number"
+msgstr "Bestellnummer eingeben"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:483
+msgid "Name of the Motor"
+msgstr "Name des Weichenantriebs"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:484
+msgid "Value when switch is normal"
+msgstr "Werte bei normaler Weichenposition"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:485
+msgid "Value when the switch is reversed"
+msgstr "Wert bei umgekehrter Weichenposition"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:486
+msgid "Value for a positive comfirmation of switch position"
+msgstr "Wert bei positiver Bestätigung der Weichenposition"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:488
+msgid "Useful information about the program"
+msgstr "Nützliche Informationen über das Programm"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:489
+msgid "Show Tip of the Day every time the program starts"
+msgstr "Bei jedem Start den Tipp des Tages anzeigen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:490
+msgid "Show the next Tip of the Day"
+msgstr "Gehe zum nächsten Tipp des Tages"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:491
+msgid "Show the previous Tip of the Day"
+msgstr "Gehe zum vorherigen Tipp des Tages"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:493
+msgid "Controls which Command Buttons are displayed"
+msgstr "ein oder ausblenden von Kommando Knöpfen in der Werkzeugleiste"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:494
+msgid "List of Cars"
+msgstr "Liste der Wagen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:495
+msgid "List of active trains"
+msgstr "Liste der aktiven Züge"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:497
+msgid "Train odometer"
+msgstr "Entfernungsmesser"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:498
+msgid "Reset odometer to 0"
+msgstr "Kilometerzähler auf 0 zurücksetzen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:499
+msgid "Find train on layout"
+msgstr "Finde einen Zug auf der Anlage"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:500
+msgid "Follow train around layout"
+msgstr "Zum Zug über die Anlage folgen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:501
+msgid "Flip direction at End Of Track"
+msgstr "Am Ende des Gleis die Fahrtrichtung umkehren"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:502
+msgid "Change direction of train"
+msgstr "Richtung des Zuges ändern"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:503
+msgid "Stop the train"
+msgstr "Anhalten des Zuges"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:504
+msgid "List of available turnouts for the current scale"
+msgstr "Liste der im aktuellen Maßstab verfügbaren Weichen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:505
+msgid ""
+"Diagram of the currently selected turnout. Click on a End-Point to select "
+"the Active End-Point"
+msgstr ""
+"Zeichnung der ausgewählten Weiche. Der aktive Endpunkt kann durch Klicken "
+"auf einen Endpunkt gesetzt werden."
+
+#: ../../../../build/work/app/bin/bllnhlp.c:506
+msgid ""
+"A menu list of various type of turnouts and sectional tracks you can define"
+msgstr ""
+"Eine Aiuswahlliste verschiedener Arten von Weichen und Festgleisen, die Sie "
+"definieren können"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:507
+msgid "Hide Selection window when placing Turnout"
+msgstr "Auswahlfenster während des Verlegen verbergen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:508
+msgid "The selected Active End-Point"
+msgstr "Der ausgewählte, aktive Endpunkt"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:509
+msgid "Current selected turnout, (displayed in the diagram window)"
+msgstr "Momentan ausgewählte Weiche, (sichtbar im Diagram-Fenster)"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:510
+msgid "One the End-Points that can be selected"
+msgstr "Einer der Endpunkte, der ausgewählt werden kann"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:512
+#: ../../../../build/work/app/bin/bllnhlp.c:513
+msgid "Angle of the specified track to the center line of the turnout"
+msgstr "Winkel zwischen dem ausgwählten Gleise und der Mittellinie der Weiche"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:514
+msgid "Specifies if angles are entered as Frog Numbers or in degrees"
+msgstr ""
+"auswählen ob Winkel als Herzstück Nummern oder in Grad angegeben werden"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:515
+#: ../../../../build/work/app/bin/bllnhlp.c:516
+msgid "Desciption"
+msgstr "Beschreibung"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:517
+msgid "Turnout description (Manuf., Size, Part Number, etc)"
+msgstr "Beschrebung der Weiche (Hersteller, Winkel, Teilenummer, etc.)"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:518
+#: ../../../../build/work/app/bin/bllnhlp.c:519
+#: ../../../../build/work/app/bin/bllnhlp.c:520
+msgid "Length from the base to the end of the specified track"
+msgstr "Länge von der Grundlinie zum Ende des ausgewählten Gleis"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:522
+#: ../../../../build/work/app/bin/bllnhlp.c:523
+msgid "Offset of the track End-Point from the center line of the turnout"
+msgstr "Abstand des Endpunktes von der Mittellinie der Weiche"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:526
+#: ../../../../build/work/app/bin/bllnhlp.c:527
+msgid "Prints a full size diagram of the turnout for checking"
+msgstr "Erstellt einen Probeausdruck der Weiche"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:528
+msgid "Color of Roadbed lines"
+msgstr "Farbe der Gleisbettlinien"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:529
+msgid "Width of Roadbed lines"
+msgstr "Abstand des Gleisbettmarkierungen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:530
+msgid "Width of Roadbed"
+msgstr "Breite des Gleisbett"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:532
+msgid "Closes the window and returns to the Turnout Selection window"
+msgstr "Schliesst das Fenster und kehrt zur Weichenauswahl zurück"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:533
+msgid "Specifies the diameter of the turntable"
+msgstr "Legt den Durchmesser der Drehscheibe fest"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:534
+msgid "Old Turnout title"
+msgstr "Alter Bezeichnung der Drehscheibe"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:535
+msgid "List of available titles"
+msgstr "Liste der verfügbaren Titel"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:536
+msgid "Leave the Turnouts' title unchanged"
+msgstr "Tiitel der Weiche unverändert lassen."
+
+#: ../../../../build/work/app/bin/bllnhlp.c:537
+msgid "Invoke the Parameter Files dialog"
+msgstr "Auswahl der Parameterdateien"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:538
+msgid "List of available turnouts"
+msgstr "Liste der verfügbaren Weichen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:539
+msgid "Update the Turnouts' title"
+msgstr "Aktualisiere den Titel des Gleis"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:543
+msgid "Sample"
+msgstr "Beispiel"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:545
+msgid "Slant"
+msgstr "Neigung"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:546
+msgid "Font selection dialog"
+msgstr "Dialog zur Auswahl der Schriftart"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:547
+msgid "Weight"
+msgstr "Gewicht"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:548
+msgid "Printer Abort Window"
+msgstr "Druck abbrechen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:549
+msgid "Print to filename"
+msgstr "Name der Druckdatei"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:550
+msgid "Specify Postscript font alias mapping"
+msgstr "Zuordnung der Postscript-Schriftarten angeben"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:551
+msgid ""
+"Displays the Print Setup window to change printers, orientation, paper size, "
+"etc."
+msgstr ""
+"Ruft das Drucker Dialog Fenster auf, um Drucker und oder Papier "
+"Einstellungen vornehmen zu können."
+
+#: ../../../../build/work/app/bin/bllnhlp.c:552
+msgid "Closes this dialog"
+msgstr "Dialogfenster schliessen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:553
+msgid "Page orientation"
+msgstr "Seitenausrichtung"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:554
+msgid "Unprintable margins"
+msgstr "Nicht druckbare Ränder"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:555
+msgid "Updates and closes this dialog"
+msgstr "Dialogfenster aktualisieren und schliessen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:556
+msgid "Choose paper size"
+msgstr "Papierformat auswählen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:557
+msgid "Choose printer"
+msgstr "Drucker auswählen"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:558
+msgid "Print test page"
+msgstr "Drucke Testseite"
+
+#: ../../../../build/work/app/i18n/custmsg.h:7
+msgid "Introduction"
+msgstr "Einführung"
+
+#: ../../../../build/work/app/i18n/custmsg.h:8
+msgid "Mouse Actions"
+msgstr "Mausaktionen"
+
+#: ../../../../build/work/app/i18n/custmsg.h:9
+msgid "Dialogs"
+msgstr "Dialoge"
+
+#: ../../../../build/work/app/i18n/custmsg.h:10
+msgid "Moving about"
+msgstr "Zoom & Pan"
+
+#: ../../../../build/work/app/i18n/custmsg.h:11
+msgid "Describe and Select"
+msgstr "Eigenschaften und Auswählen"
+
+#: ../../../../build/work/app/i18n/custmsg.h:12
+msgid "Describe"
+msgstr "Beschreibe"
+
+#: ../../../../build/work/app/i18n/custmsg.h:14
+msgid "Simple tracks"
+msgstr "Einfache Gleise"
+
+#: ../../../../build/work/app/i18n/custmsg.h:15
+msgid "Straight tracks"
+msgstr "Gleisgeraden"
+
+#: ../../../../build/work/app/i18n/custmsg.h:16
+msgid "Curved tracks"
+msgstr "Gleisbögen"
+
+#: ../../../../build/work/app/i18n/custmsg.h:17
+msgid "Circles"
+msgstr "Kreise"
+
+#: ../../../../build/work/app/i18n/custmsg.h:18
+msgid "Turntables"
+msgstr "Drehscheiben"
+
+#: ../../../../build/work/app/i18n/custmsg.h:19
+msgid "Modifying tracks"
+msgstr "Gleise bearbeiten"
+
+#: ../../../../build/work/app/i18n/custmsg.h:20
+msgid "Modifying end points "
+msgstr "Endpunkte ändern"
+
+#: ../../../../build/work/app/i18n/custmsg.h:21
+msgid "Extending"
+msgstr "Erweitern"
+
+#: ../../../../build/work/app/i18n/custmsg.h:22
+msgid "Medium and Thick Tracks"
+msgstr "Mittlere und dicke Gleise"
+
+#: ../../../../build/work/app/i18n/custmsg.h:23
+msgid "Joining Tracks"
+msgstr "Gleise verbinden"
+
+#: ../../../../build/work/app/i18n/custmsg.h:24
+msgid "Straight to straight"
+msgstr "Gerade zu Gerade"
+
+#: ../../../../build/work/app/i18n/custmsg.h:25
+msgid "Curve to straight"
+msgstr "Bogen zu Gerade"
+
+#: ../../../../build/work/app/i18n/custmsg.h:26
+msgid "Circle to circle"
+msgstr "Kreis zu Kreis"
+
+#: ../../../../build/work/app/i18n/custmsg.h:27
+msgid "Joining to turntables"
+msgstr "Drehscheiben verbinden"
+
+#: ../../../../build/work/app/i18n/custmsg.h:28
+msgid "Easements"
+msgstr "Übergangsbögen"
+
+#: ../../../../build/work/app/i18n/custmsg.h:29
+msgid "Abutting tracks"
+msgstr "angrenzende Gleise"
+
+#: ../../../../build/work/app/i18n/custmsg.h:30
+msgid "Move to Join"
+msgstr "Verbinden durch verschieben"
+
+#: ../../../../build/work/app/i18n/custmsg.h:32
+msgid "Select and Placement"
+msgstr "Auswählen und Positionieren"
+
+#: ../../../../build/work/app/i18n/custmsg.h:33
+msgid "Building a yard throat."
+msgstr "Einen Bahnhof einrichten"
+
+#: ../../../../build/work/app/i18n/custmsg.h:34
+msgid "Designing turnouts"
+msgstr "Weichen konstruieren"
+
+#: ../../../../build/work/app/i18n/custmsg.h:35
+msgid "Group and Ungroup"
+msgstr "Zusammenfassen und Zerlegen"
+
+#: ../../../../build/work/app/i18n/custmsg.h:36
+msgid "Triming Turnout Ends"
+msgstr "Weichenenden verändern"
+
+#: ../../../../build/work/app/i18n/custmsg.h:37
+msgid "Handlaid Turnouts"
+msgstr "Selbstbauweichen"
+
+#: ../../../../build/work/app/i18n/custmsg.h:38
+msgid "Elevations and Profile"
+msgstr "Höhen und Profil"
+
+#: ../../../../build/work/app/i18n/custmsg.h:39
+msgid "Elevations"
+msgstr "Höhen"
+
+#: ../../../../build/work/app/i18n/custmsg.h:41
+msgid "Misc track commands"
+msgstr "Verschiedene Gleismodifikationen"
+
+#: ../../../../build/work/app/i18n/custmsg.h:42
+msgid "Delete and Undo"
+msgstr "Löschen und Rückgängig machen"
+
+#: ../../../../build/work/app/i18n/custmsg.h:43
+msgid "Splitting and Tunnels"
+msgstr "Auftrennen und Tunnels"
+
+#: ../../../../build/work/app/i18n/custmsg.h:45
+msgid "Helix tracks"
+msgstr "Gleiswendel"
+
+#: ../../../../build/work/app/i18n/custmsg.h:46
+msgid "Exception Tracks"
+msgstr "Fehlerhafte Gleise"
+
+#: ../../../../build/work/app/i18n/custmsg.h:48
+msgid "Connect and Tighten - a siding"
+msgstr "Abstellgleis verbinden"
+
+#: ../../../../build/work/app/i18n/custmsg.h:49
+msgid "Connect and Tighten - figure-8"
+msgstr "Verbinden und Zusammenfügen"
+
+#: ../../../../build/work/app/i18n/custmsg.h:50
+msgid "Other commands"
+msgstr "Sonstige Befehle"
+
+#: ../../../../build/work/app/i18n/custmsg.h:52
+msgid "Table Edges"
+msgstr "Tischkanten"
+
+#: ../../../../build/work/app/i18n/custmsg.h:54
+msgid "Dimension Lines"
+msgstr "Maßlinien"
+
+#: ../../../../build/work/app/i18n/custmsg.h:55
+msgid "Lines"
+msgstr "Linien"
+
+#: ../../../../build/work/app/i18n/custmsg.h:56
+msgid "Poly-Shapes"
+msgstr "Vielecke"
+
+#: ../../../../build/work/app/i18n/custmsg.h:57
+msgid "Modifying Poly-Shapes"
+msgstr "Polygone modifizieren"
+
+#: ../../../../build/work/app/i18n/custmsg.h:60
+msgid "Control Panels (New)"
+msgstr "Stellpulte einzeichnen"
+
+#: ../../../../build/work/app/i18n/custmsg.h:62
+msgid ""
+"The unconnected End-Points of a straight or curved track can be changed with "
+"the 'Modify Track' command.\n"
+msgstr ""
+"Die nicht verbundenen Endpunkte eines geraden oder eines gebogenen Gleise "
+"können mit 'Ändern Gleis' verändert werden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:63
+msgid ""
+"The End-Point of a straight track is selected and then Left-Dragged to "
+"change its length.\n"
+msgstr ""
+"Der Endpunkt eines geraden Gleises wird ausgewählt und die Länge wird durch "
+"Ziehen mit linken Maus-Knopf geändert.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:64
+msgid ""
+"Watch what happens if you try to drag the selected End-Point beyond the far "
+"End-Point.\n"
+msgstr ""
+"Beachten Sie was passiert, wenn der ausgwählte Endpunkt für den entfernten "
+"Endpunkt hinaus gezogen wird.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:65
+msgid ""
+"The length of the straight track is determined by the distance from the far "
+"End-Point and the cursor.\n"
+msgstr ""
+"Die Länge des geraden Gleises wird durch den Abstand zwischen dem entfernten "
+"Endpunkt und dem Mauszeiger festgelegt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:66
+msgid ""
+"A curved track is selected and it's new End-Point is determined by the angle "
+"to the cursor.\n"
+msgstr ""
+"Ein gebogenes Gleis wird ausgewählt und der neue Endpunkt durch den Winkel "
+"des Mauszeiger festgelegt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:67
+msgid "It's possible to almost create a complete circle.\n"
+msgstr "Es ist beinahe möglich, einen vollständigen Kreis zu erstellen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:68
+msgid ""
+"If you drag the mouse beyond the start of the curve the track becomes very "
+"short.\n"
+msgstr ""
+"Wenn Sie die Maus über den Startpunkt des Bogen hinaus ziehen, wird das "
+"Gleis sehr kurz.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:69
+msgid "Here you are warned that the track will be too short.\n"
+msgstr "Jetzt werden Sie gewarnt, dass das Gleis zu kurz wird.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:70
+msgid ""
+"If you move the cursor away from the curve, you will create a straight track "
+"tangent to the curve.\n"
+msgstr ""
+"Wenn Sie den Mauszeiger vom Bogen weg bewegen, erstellen Sie ein gerades "
+"Gleis als Tangente an dem Bogen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:71
+msgid ""
+"If you adjust the End-Point of a turnout or sectional track the track is "
+"extended by a straight track segment.\n"
+msgstr ""
+"Wenn Sie den Endpunkt einer Weiche oder eines Festgleises anpassen, wird das "
+"Gleis durch ein gerades Segment verlängert.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:72
+msgid ""
+"You can change the radius of a Straight or Curved track that is connected at "
+"one End-Point by holding down the Shift key while dragging on it.\n"
+msgstr ""
+"Sie können den Radius eines Bogen ändern oder ein gerades Gleis biegen, "
+"indem Sie bei gedrückter Umschalttaste und gedrücktem Mausknopf ziehen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:73
+msgid ""
+"This lets you change a Straight track into a Curved track (and vice versa) "
+"as well as changing the radius of a Curved track.\n"
+msgstr ""
+"Dadurch können Sie ein gerades Gleis in ein gebogenes (und umgekehrt) "
+"umwandeln und den Radius eines Bogengleises ändern.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:74
+msgid "You can draw a variety of different types of benchwork:\n"
+msgstr "Sie können verschiedene Formend es Unterbau zeichnen:\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:75
+msgid "- rectangular (1x2, 2x4 etc)\n"
+msgstr "- rechteckig (1x2, 2x4 Inch usw.)\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:76
+msgid "- L girders\n"
+msgstr "- Winkelträger\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:77
+msgid "- T girders\n"
+msgstr "- T- Träger\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:78
+msgid "You can also draw them in different orientations.\n"
+msgstr "Sie können diese auch in verschiedenen Ausrichtungen zeichnen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:79
+msgid "We will draw two 3x6 inch L-girders.\n"
+msgstr "Wir zeichnen zwei 3x6 Inch Winkelträger.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:80
+msgid ""
+"The flange of the top L-Girders is on the outside edge of the girders. We "
+"want to change the girder so both flanges are on the inside.\n"
+msgstr ""
+"Die Schmalseite des oberen Winkelträger ist auf der Außenseite. Wir wollen "
+"die Träger so anpassen, dass beide Schmalseiten innen liegen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:81
+msgid "We will use the <Describe> command for this.\n"
+msgstr "Wir werden den <Beschreiben> Befehl dafür benutzen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:82
+msgid "Change the Orientation to Right.\n"
+msgstr "Ändere die Ausrichtung auf rechts.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:83
+msgid "Now both flanges are on the inside of the two girders.\n"
+msgstr "Jetzt sind beide Schmalseiten auf der Innenseite der beiden Träger.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:84
+msgid ""
+"Pushing the <Describe> button will cancel any other command in progress.\n"
+msgstr ""
+"Durch Drücken des <Beschreiben> Knopfes wird jeder begonnene Befehl "
+"abgebrochen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:85
+msgid ""
+"Here we will begin to create a Curved track which is a two step process.\n"
+msgstr ""
+"In einem zweistufigen Ablauf werden wir mit dem Erstellen eines gebogenen "
+"Gleises beginnen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:86
+msgid ""
+"When we clicked on the <Describe> button, the current command was "
+"cancelled.\n"
+msgstr ""
+"Durch Drücken auf den <Beschreiben> Knopf wurde der begonnene Befehl "
+"abgebrochen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:87
+msgid ""
+"When in <Describe> mode, selecting any object will print a description in "
+"the Status Bar and display a Dialog showing properties of the clicked-on "
+"object.\n"
+msgstr ""
+"Im <Beschreiben> Modus wird durch Auswahl eines Objektes eine Beschreibung "
+"in der Statuszeile angezeigt und die Eigenschaften des Objektes werden in "
+"einem Dialogfenster angezeigt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:88
+msgid ""
+"Certain parameters of the object can be changed. In this case we'll change "
+"the Length\n"
+msgstr ""
+"Einige der Eigenschaften des Objektes können geändert werden. In diesem Fall "
+"ändern wir die Länges\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:89
+msgid "Let's look at the Turnout...\n"
+msgstr "Jetzt wollen wir uns die Weiche anschauen...\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:90
+msgid "and change the turnout Title.\n"
+msgstr "und den Titel der Weiche ändern.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:91
+msgid "You can change the contents of Text...\n"
+msgstr "Sie können den Text ändern...\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:92
+msgid "and its size.\n"
+msgstr "und seine Größe.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:93
+msgid ""
+"If you select a Note, the Description dialog appears which displays the "
+"contents of the note.\n"
+msgstr ""
+"Wenn Sie eine Notiz auswählen, erscheint ein Dialogfenster in dem der Inhalt "
+"der Notiz angezeigt wird.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:94
+msgid ""
+"Like the <Curve> track command, there are several ways to create a Circle "
+"track.\n"
+msgstr ""
+"Wie beim <Bogen> Befehl gibt es mehrere Möglichkeiten, einen Gleiskreis zu "
+"erstellen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:95
+msgid ""
+"The first is to specify a fixed radius and simply drag the Circle into "
+"position.\n"
+msgstr ""
+"Die Erste ist die Vorgabe eines festen Radius und das Ziehen an die "
+"gewünschte Position.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:96
+msgid "We will change the Radius before proceeding.\n"
+msgstr "Bevor wir weitermachen, ändern wir den Radius.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:97
+msgid "The next method is to drag from the edge of the Circle to the center.\n"
+msgstr ""
+"Die nächste Methode ist das Ziehen von der Kreislinie zum Mittelpunkt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:98
+msgid ""
+"The last is similar, but you drag from the center of the Circle to the "
+"edge.\n"
+msgstr ""
+"Die letzte, aber vergleichbare, Methode ist das Ziehen vom Mittelpunkt zur "
+"Kreislinie.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:99
+msgid ""
+"We have built a siding using Sectional track and have 2 End-Points that "
+"don't line up and are not connected automatically when placing the sectional "
+"track.\n"
+msgstr ""
+"Wir haben ein Ausweichgleis erstellt und haben zwei Endpunkte erhaltem, die "
+"beim Setzen von Festgleisen nicht automatisch verbunden wurden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:100
+msgid ""
+"We use the <Connect> command to adjust neighboring tracks so the gap is "
+"closed.\n"
+msgstr ""
+"Wir benutzen den <Zusammenfügen> Befehl, um die benachbarten Gleise so "
+"auszurichten, dass die Lücke geschlossen ist.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:101
+msgid ""
+"Note: the adjustments are only done on tracks which have only 1 or 2 "
+"connections. In this example the Turnouts would not be affected.\n"
+msgstr ""
+"Achtung: die Anpassungen wurden nur an Gleisen mit einer oder zwei "
+"Verbindungsn gemacht. In diesem Besipiel wurden die Weichen nicht "
+"verändert.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:102
+msgid "And now the gap is closed.\n"
+msgstr "Und jetzt ist die Lücke geschlossen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:103
+msgid "Other tracks have been shifted slightly to close the gap.\n"
+msgstr "Andere Gleise wurden leicht verschoben, um die Lücke zu schliessen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:104
+msgid "You can see these slight mis-alignments.\n"
+msgstr "Sie können die kleinen Versätze sehen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:105
+msgid "But they will have no effect when the layout is actually built.\n"
+msgstr ""
+"Aber diese werden keinen Einfluss haben, wenn die Anlage später gebaut "
+"wird.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:106
+msgid ""
+"After working with Sectional track you might get to point where these mis-"
+"alignments have accumulated and you wish to remove them.\n"
+msgstr ""
+"Nachdem Sie mit Festgleisen gearbeitet haben, haben sich diese Versätze "
+"aufgebaut und Sie wollen diese entfernen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:107
+msgid ""
+"You can remove these slight mis-alignments by tightening the tracks starting "
+"from a unconnected End-Point. Use Shift-Left-Click with the <Connect> "
+"command.\n"
+msgstr ""
+"Sie können diese kleinen Versätze durch Zusammenziehen der Gleise entfernen. "
+"Beginnen Sie an einem nicht verbundenen Endpunkt durch Drücken der Umschalte-"
+"Taste beim Deücken des <Zusammenfügen> Knopfes.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:108
+msgid "First use the <Split> command to disconnect the tracks.\n"
+msgstr ""
+"Zuerst benutzen Sie den <Trennen> Befehl um die Verbindung der Gleise zu "
+"lösen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:109
+msgid ""
+"Then with the <Connect> command, Shift-Left-Click on the 2 End-Points.\n"
+msgstr ""
+"Dank ativieren Sie den <Verbinden> Befehl und Klicken bei gedrückter "
+"Umschaltetaste auf die beiden Endpunkte.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:110
+msgid "In example shows a simple figure-8 layout using Sectional track.\n"
+msgstr "In diesem Besipiel wird aus Festgleisen eine \"8\" gelegt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:111
+msgid ""
+"You will notice that the tracks do not line up exactly in one location.\n"
+msgstr ""
+"Wie Sie sehen, sind die Gleise an einer Stelle nicht exakt ausgerichtet.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:112
+msgid ""
+"We can use the <Connect> command to move the connecting tracks slightly and "
+"connect the 2 End-Points.\n"
+msgstr ""
+"Mit dem <Verbinden> Befehl können wir die zu verbindenden Gleise leicht "
+"verschiebenund die beiden Endpunkte verbinden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:113
+msgid "The two End-Points are now aligned and connected.\n"
+msgstr "Die beiden Endpunkte sind jetzt ausgerichtet und verbunden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:114
+msgid "The connection was made by adding small gaps in other tracks.\n"
+msgstr ""
+"Die Verbindung wurde hergestellt, in dem kleine Lücken zwischen andere "
+"Gleise eingefügt wurden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:115
+msgid "There are several ways to create a Curved track.\n"
+msgstr "Es gibt mehrere Möglichkeiten, ein gebogenes Gleis zu erstellen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:116
+msgid ""
+"You can choose which to use by clicking on the small button to the left of "
+"<Curve> command button if the current Curve command is not the one you "
+"want.\n"
+msgstr ""
+"Sie können zwischen diesen wählen, in dem Sie auf den kleinen Knopf neben "
+"dem <Bogen> Knopf drücken.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:117
+msgid ""
+"The first is by clicking on the first End-Point and dragging in the "
+"direction of the Curve.\n"
+msgstr ""
+"In der ersten Möglichkeit wird dieser durch Auswahl des ersten Endpunktes "
+"und Ziehen in die Richtung des Bogen erstellt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:118
+msgid ""
+"You will see a straight track with a double ended Red arrow at the end.\n"
+msgstr ""
+"Sie sehen ein gerades Gleis mit einem roten Pfeil mit zwei Spitzen am Ende.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:119
+msgid "Click and drag on one of the Red arrows to complete the Curve.\n"
+msgstr ""
+"Klicken und ziehen Sie eine der roten Spitzem um den Bogen zu "
+"vervollständigen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:120
+msgid ""
+"The next method is to click at one End-Point and drag to the center of the "
+"Curve.\n"
+msgstr ""
+"Die nächste Methode ist das Klicken auf einen Endpunkt und das Ziehen zum "
+"Mittelpunkt der Kurzve.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:121
+msgid ""
+"Now you will see the double ended Red arrow connected to the center of the "
+"Curve marked by a small circle.\n"
+msgstr ""
+"Wie vorher sehen Sie den roten Pfeil mit zwei Spitzen, der mit dem "
+"Mittelpunkt des Bogen verbunden ist. Dieser ist mit einem kleinen Kreis "
+"markiert.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:122
+msgid "As before, drag on one of the Red arrows to complete the Curve.\n"
+msgstr ""
+"Wie schon vorher beenden Sie den Bogen, indem Sie an einer der Pfeilspitzemn "
+"ziehen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:123
+msgid ""
+"The next method is similar to the last except that you drag first from the "
+"center of the Curve to one End-Point.\n"
+msgstr ""
+"Die nächste Methode ist vergleichbar zur vorherigen, allerdings Ziehen Sie "
+"zuerst vom Mittelpunkt zu einem Endpunkt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:124
+msgid "Once again, drag on a Red arrow to complete the Curve.\n"
+msgstr ""
+"Auch diesmal ziehen Sie an der roten Pfeilspitze um den Bogen zu vollenden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:125
+msgid ""
+"The last method begins by drawing a line between the two End-Points of the "
+"Curve. This forms the Chord of the Curve.\n"
+msgstr ""
+"Bei der letzten Methode beginnen Sie, indem Sie eine Linie zwischen den "
+"beiden Endpunkten ziehen. Diese bildet die Sehne des Bogen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:126
+msgid "Now drag on a Red arrow to complete the Curve.\n"
+msgstr "Jetzt ziehen Sie an der roten Pfeilspitze um den Bogen zu erstellen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:127
+msgid "This demo will construct a control panel for part of a bigger layout.\n"
+msgstr ""
+"In dieser Demo wird ein Steuerpult für einen Teil einer größeren Anlage "
+"erstellt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:128
+msgid "For our control panel we will use Œ\" lines. \n"
+msgstr "Für unser Pult werden wir 1/2\" breite Linien benutzen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:129
+msgid "Also, we will use a 1/8\" grid to lay out our controls.\n"
+msgstr ""
+"Außerdem werden wir ein 1/8\" Raster für die Ausrichtung der "
+"Steuerungselemente benutzen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:130
+msgid ""
+"First, we will set up the Snap Grid for 1\" grid lines and 8 divisions.\n"
+msgstr ""
+"Als erstes stellen wir das Fangraster auf 1\" Rasterlinien und 8 "
+"Unterteilungen ein.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:131
+msgid "Now, clear the layout and turn on the Snap Grid.\n"
+msgstr "Jetzt löschen wir den Entwurf und schalten das Fangraster ein.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:132
+msgid "First step: draw the lines representing the tracks.\n"
+msgstr "Erster Schritte: zeichnen Sie die Linien, die die Gleise darstellen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:133
+msgid "We specify the line width in pixels.\n"
+msgstr "Wir geben die Linienbreite in Bildpunkten an.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:134
+msgid ""
+"To create a Œ\" line, divide the dots-per-inch (DPI) of your display by 4 "
+"and then by the drawing scale (which is 2 right now).\n"
+msgstr ""
+"Um eine 1/2 Inch breite Linie zu erzeugen, wird die Auflösung des "
+"Bildschirms (DPI) durch 4 und dann durch den Zeichenmaßstab (im Moment 2) "
+"geteilt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:135
+msgid ""
+"For MS-Windows the DPI is usually 98, so choose: 98/4/2 = 12 "
+"(approximately).\n"
+msgstr ""
+"Unter Windows ist die Auflösung normalerweise 98, also wählen wir 98 / 4 / 2 "
+"= ca. 12.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:136
+msgid "For Linux, the DPI is usually 72, so choose: 72/4/2 = 9.\n"
+msgstr ""
+"Unter Linux ist die Auflösung normalerweise 72, also wählen wir 72 / 4 / 2 = "
+"9.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:137
+msgid ""
+"Notice how the Snap Grid keeps the main line and siding track parallel and "
+"the connecting tracks and spur at a 45° angle.\n"
+msgstr ""
+"Beachten Sie, wie das Fangraster die Haupt- und die Nebenstrecke parallel "
+"führt und die Verbindungen und das Abstellgleis auf einem 45° Winkel hält.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:138
+msgid "Second step: add LEDs for the turnout position indicators.\n"
+msgstr "ZweiterSchritt: hinzufügen der LEDs für die Weichenanzeige.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:139
+msgid "We will use T1 red and green LEDs.\n"
+msgstr "Wir werden T1 rote und grüne LEDs benutzen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:140
+msgid "We will zoom in to show positioning.\n"
+msgstr "Wir zoomen rein, um die Positionierung zu zeigen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:141
+msgid ""
+"Notice that when we are in the correct position (on the 1/8\" grid), the "
+"Marker lines on the bottom and left rulers will high-light the tick marks. "
+"When both ticks are high-lighted, press the space bar to finalize the LED.\n"
+msgstr ""
+"Beachten Sie, dass die Markierungslinien unten und links die "
+"Fangmarkierungen hervorheben, wenn wird in der richtigen Position sind. "
+"Sobald beide Markierungen hervorgehoben sind, die LED durch Drücken der "
+"Leertaste fixieren.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:142
+msgid "Now we'll add push buttons to control the turnouts.\n"
+msgstr "Jetzt fügen wir Drucktaster für die Steuerung der Weichen dazu.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:143
+msgid "Let's add signals to our siding.\n"
+msgstr "Lassen Sie uns noch Signale an unserem Ausweichgleich aufstellen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:144
+msgid ""
+"The entrance to the siding will be protected by double headed signals.\n"
+msgstr ""
+"Die Einfahrt in das Ausweichgleich wird durch ein doppeltes Signal "
+"geschützt\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:145
+msgid "First turn off the Snap Grid.\n"
+msgstr "Zuerst schalten Sie bitte das Fangraster aus.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:146
+msgid "Rotate the signals and move them to the proper locations.\n"
+msgstr ""
+"Rotieren Sie die Signale und setzen diese dann an die richtige Stelle.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:147
+msgid ""
+"We rotate the signals by Shift-Right-Click and select 90° CW on the popup "
+"menu. We can not show the popup menu in demo mode, but will simulate the "
+"effect.\n"
+msgstr ""
+"Wir rotieren die Signale durch Drücken und Festhalten der Umschalttaste bei "
+"gleichzeitigem Mausklick.Aus dem Menu wählen wir 90° gegen UZS aus. Im Demo-"
+"Mode kann das Menu nicht angezeigt werden, aber wir simulieren den Effekt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:148
+msgid "The exits from the siding will be protected by single headed signals.\n"
+msgstr ""
+"Die Ausfahrt aus dem Ausweichgleich wird durch ein einfaches Signal "
+"gesichert.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:149
+msgid "Now for some touch-ups.\n"
+msgstr "Nun noch ein paar kleinere Nachbesserungen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:150
+msgid "Notice when the line meet at an angle there is a gap.\n"
+msgstr ""
+"Beachten Sie, dass am Berührungspunkt zwischen zwei Linien ein Spalt "
+"existiert.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:151
+msgid "We will fill this gap with the Œ\" dot.\n"
+msgstr "Wir füllen diesen Spalt mit einem 1/2 Inch großen Punkt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:152
+msgid ""
+"Note: Win95/Win98/WinME does not support drawing lines with flat end-caps, "
+"but only with round end-caps.\n"
+msgstr ""
+"Note: Win95/Win98/WinME does not support drawing lines with flat end-caps, "
+"but only with round end-caps.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:153
+msgid "Users on those platforms will not see the gap.\n"
+msgstr "Users on those platforms will not see the gap.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:154
+msgid ""
+"Add an arrow head to indicate the tracks that connect to the rest of the "
+"layout.\n"
+msgstr ""
+"Mit einer Pfeilspitze werden die Gleise markiert, die mit dem Rest der "
+"Anlage verbunden sind.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:155
+msgid "Rotate the arrow head by 180° and move into position.\n"
+msgstr ""
+"Rotieren Sie die Pfeilspitze um 180° und bringen Sie diese in die richtige "
+"Position.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:156
+msgid "And add some labels.\n"
+msgstr "Und fügen einige Beschriftungen hinzu.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:157
+msgid ""
+"We want to print our control panel onto a 8œx11 page, but the control panel "
+"is a bit too wide.\n"
+msgstr ""
+"Wir würden das Steuerpult gerne auf Paiper mit der Größe 8\"x11\" drucken, "
+"aber es ist zu breit.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:158
+msgid "Lets tighten it up a bit.\n"
+msgstr "Lassen Sie uns das ein bisschen enger zusammen packen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:159
+msgid ""
+"First turn the Snap Grid on again so any moves we make will keep objects on "
+"the grid.\n"
+msgstr ""
+"Zuerst schalten Sie bitte das Fangraster wieder ein, damit die Objekte beim "
+"Verschieben ausgerichtet bleiben.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:160
+msgid "Lets move the spur track the left 3/4\"\n"
+msgstr "Lassen Sie uns das Abstellgleis um ein 3/4 Inch nach links schieben.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:161
+msgid "Now move the right side of the siding over.\n"
+msgstr "Jetzt verschieben Sie die rechte Seite des Ausweichgleises.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:162
+msgid "Now, adjust the ends of the mainline and siding tracks.\n"
+msgstr ""
+"Und passen nun die Enden des Hauptgleises und des Ausweichgleises an.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:163
+msgid "And move the title over as well.\n"
+msgstr "Anschliessend noch den Titel verschieben.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:164
+msgid "Now you can print it.\n"
+msgstr "Jetzt können Sie das Ergebnis drucken.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:165
+msgid "The cross-hairs on the LEDs and switch show the centers for drilling.\n"
+msgstr ""
+"Fadenkreuze markieren die Mittelpunkte der LEDs und Schalter und ermöglichen "
+"so ein einfaches Bohren.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:166
+msgid ""
+"Pressing the <Delete> button lets you delete selected tracks from the "
+"layout.\n"
+msgstr ""
+"Durch Drücken der <Entf>-Taste können Sie die ausgewählten Gleise vom Plan "
+"löschen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:167
+msgid ""
+"First you select the tracks you want to delete, and then press the <Delete> "
+"button.\n"
+msgstr ""
+"Zuerst wählen Sie die Gleise, die Sie löschen wollen und drücken dann "
+"<Entf>.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:168
+msgid ""
+"If you delete a track connected to an easement curve, then the easement "
+"curve is deleted as well.\n"
+msgstr ""
+"Wenn Sie ein Gleis löschen, das einen Übergangsbogen besitzt, so wird dieser "
+"Übergangsbogen ebenfalls gelöscht.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:169
+msgid "You can use the <Undo> command to undelete tracks.\n"
+msgstr ""
+"Sie können den <Rückgängig>-Befehl nutzen, um ein versehentliches Löschen "
+"rückgängig zu machen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:170
+msgid ""
+"If you Left-Drag on the layout you can select all tracks within an area.\n"
+msgstr ""
+"Durch Ziehen mit der Maus bei gedrückter linker Taste können Sie alle Gleise "
+"in einem Bereich markieren.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:171
+msgid ""
+"Note, only tracks within the selected area are deleted. Since the easement "
+"curve is connected to a deleted track, it is deleted as well.\n"
+msgstr ""
+"Beachten Sie, dass nur Gleise innerhalb des markierten Bereichs gelöscht "
+"werden. Da der Übergangsbogen mit einem gelöschten Gleis verbunden ist, wird "
+"dieser ebenfalls gelöscht.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:172
+msgid ""
+"The demo also simulates entering values and selecting options on various "
+"dialogs.\n"
+msgstr ""
+"Die Demo simuliert die Eingabe von Werten und Auswahl von Optionen in "
+"verschiedenen Dialogfenstern.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:173
+msgid ""
+"This is simulated by drawing a rectangle around the control when values are "
+"entered or changed.\n"
+msgstr ""
+"Dies wird simuliert, in dem ein Rechteck um das Eingabefeld gezeichnet wird, "
+"wenn Werte eingegeben oder geändert werden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:174
+msgid ""
+"Here we are going to make some changes to the Display dialog. Notice how "
+"this is simulated.\n"
+msgstr ""
+"Hier machen wir Änderungen im Anzeige-Dialog. Beachten Sie, wie das "
+"simuliert wird.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:175
+msgid ""
+"This effect is only used in demonstration mode. During normal operation you "
+"will not see this.\n"
+msgstr ""
+"Dieser Effekt wird nur im Demonstrations-Modus benutzt. Während der normalen "
+"Benutzung werden Sie das nicht sehen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:176
+msgid "Dimension Lines are used to mark the distances between two points.\n"
+msgstr ""
+"Maßlinien werden benutzt, um den Abstand zwischen zwei Punkten zu zeigen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:177
+msgid ""
+"Here we will create a Dimension Line to show the separation between two "
+"tracks.\n"
+msgstr ""
+"Hier erstellen wir eine Maßlinie, um den Abstand zwischen zwei parallelen "
+"Gleisen zu zeigen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:178
+msgid ""
+"We might also want to measure the distance between two structures. In this "
+"case we will use a larger dimension line.\n"
+msgstr ""
+"Möglicherweise wollen wir auch den Abstand zwischen zwei Gebäuden bestimmen."
+"In diesem Fall nutzen wir eine größere Maßlinie.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:179
+msgid ""
+"We can use the <Describe> command to change the position of the Dimension "
+"Line and the size of the numbers.\n"
+msgstr ""
+"Der <Beschreiben> Befehl kann genutzt werden, um die Position der Maßlinie "
+"und die Größe der Zahlen zu ändern.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:180
+msgid ""
+"This example will show the effect of using easements while joining tracks.\n"
+msgstr ""
+"In diesem Beispiel wird die Wirkung der Übergangsbögen während des Verbinden "
+"von Gleisen gezeigt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:181
+msgid "First, we'll enable easements.\n"
+msgstr "Zuerst schalten wir Übergangsbögen an.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:182
+msgid ""
+"We've selected sharp easements. The minimum radius curve we can use will be "
+"9.75\"\n"
+msgstr ""
+"Wir haben enge Übergangsbögen ausgewählt. Der Mindestradius, den wir "
+"benutzen können, beträt 9,75\".\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:183
+msgid "Notice the label on the Easement button has changed to 'Sharp'.\n"
+msgstr ""
+"Beachten Sie, dass die Beschriftung des Knopfes <Übergangsbogen> auf 'Sharp' "
+"geändert wurde.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:184
+msgid ""
+"Note the connecting curve does not quite meet the straight tracks. This the "
+"'Offset'.\n"
+msgstr ""
+"Beachten Sie. dass das Verbindungsgleis das gerade Gleis nicht genau trifft. "
+"Das ist der 'Absatz'.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:185
+msgid "Here the connecting curve is too small.\n"
+msgstr "Jetzt ist der Verbindungsradius zu klein.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:186
+msgid ""
+"The connecting curve is made of three tracks, the curve and two easement "
+"segments on each end.\n"
+msgstr ""
+"Die verbindende Kurve besteht aus drei Gleisen, der Kurve und den "
+"Übergangsbögen an jedem Ende.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:187
+msgid ""
+"We have designed part of the layout with a siding, 2 branches and a spiral "
+"loop. We want to set Elevations.\n"
+msgstr ""
+"Wir haben einen Teil eines Gleisplan mit Nebengleis, 2 Abzweigen und einer "
+"Gleiswendel entworfen. Jetzt wollen wir die Höhen festlegen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:188
+msgid "First we will set elevations at the end of the branches.\n"
+msgstr "Zuerst legen wir die Höhen am Ende der Abzweige fest.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:189
+msgid "We'll select the end of the top branch and set the Elevation to 4\"\n"
+msgstr ""
+"Wir wählen das Ende des oberen Abzweigs und legen die Höhe auf 4\" fest.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:190
+msgid "First, click on the End-Point.\n"
+msgstr "Zuerst klicken Sie auf den Endpunkt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:191
+msgid "Next, pick Defined on the Elevation dialog Radio box.\n"
+msgstr "Als nächstes wählen Sie 'Fest' im Dialogfenster für das Höhenmaß.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:192
+msgid "And set the Elevation to 4.\n"
+msgstr "Und setzen die Höhe auf 4.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:193
+msgid "Now, select the other branch and set it's elevation to 2\"\n"
+msgstr ""
+"Jetzt wählen Sie den anderen Abzweig und legen seine Höhe auf 2\" fest.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:194
+msgid "We can move the Elevations by using Right-Drag\n"
+msgstr ""
+"Wir können die Höhenmaß durch Ziehen mit der Maus bei gedrückter rechter "
+"Taste verschieben.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:195
+msgid "Now, we set the Elevation at one end of the Siding.\n"
+msgstr "Jetzt legen wir die Höhe an einem Ende des Nebengleises fest.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:196
+msgid "We want to find the elevations where the 2 tracks cross.\n"
+msgstr ""
+"Wir wollen die Höhen der Gleise ermitteln, an denen diese sich kreuzen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:197
+msgid "We picked an End-Point on the upper track.\n"
+msgstr "Wir haben einen Endpunkt am oberen Gleis ausgewählt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:198
+msgid ""
+"XTrackCAD has computed the Elevation (2.34\") at this point based on the "
+"Elevation at the siding and a combination of the of the first Elevations.\n"
+msgstr ""
+"XTrackCAD hat die Höhe (2,34\") an dieser Stellle auf Grundlage der Höhe des "
+"Nebengleises in Verbindung mit den ersten Höhenangaben ermittelt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:199
+msgid ""
+"We create a Computed Elevation here that will be automatically adjusted "
+"whenever the other Elevations are changed.\n"
+msgstr ""
+"Hier erstellen wir eine 'Berechnete' Höhe, die automatisch angepasst wird, "
+"wenn sich andere Höhenangaben ändern.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:200
+msgid ""
+"The Compute Elevation is based on Elevations at end of both of the "
+"branches. We may want to base the Elevation on only one branch. For "
+"example if one branch was the mainline we don't want the other branch "
+"affecting this Computed Elevation.\n"
+msgstr ""
+"Die berechnete Höhe basiert auf den Höhen an den Endpunkten der beiden "
+"Abzweige. Wir wollen aber möglicherweise nur die Höhe eines Abzweigs "
+"benutzen. Das kann sinnvoll sein, wenn der Abzweig das Hauptgleis bildet und "
+"wir nicht wollen dass das andere Gleis die Höhenberechnung beeinflusst.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:201
+msgid "We do this by Ignoring the branch we don't want.\n"
+msgstr "Wir erreichen das, indem wir einen Abzweig ignorieren.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:202
+msgid "We'll ignore the lower branch.\n"
+msgstr "Wir werden den unteren Abzweig ignorieren.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:203
+msgid ""
+"Notice at the End-Point where the tracks cross, we see the Elevation has "
+"changed from 2.34 to 2.64.\n"
+msgstr ""
+"Beachten Sie, dass sich die Höhe an der Kreuzug von 2,34 auf 2,64 geändert "
+"hat.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:204
+msgid "Now we want to know the elevation of the lower track.\n"
+msgstr "Jetzt wollen wir die Höhe des unteren Gleises ermitteln.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:205
+msgid "There is no End-Point on the lower track here.\n"
+msgstr "Es gibt hier keinen Endpunkt des unteren Gleises.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:206
+msgid ""
+"Use Shift-Left-Click to Split the track and create an End-Point we can use "
+"for an Elevation,\n"
+msgstr ""
+"Durch Klicken mit der Maus bei gedrückter Umschalttaste wird das Gleis "
+"getrennt und ein Endpunkt, den wir für die Festlegung der Höhe nutzen "
+"können, eingefügt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:207
+msgid "and create another Computed Elevation point.\n"
+msgstr "Wir erstellen einen neuen berechneten Höhenpunkt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:208
+msgid "Now we want to label the Grade on this section of track.\n"
+msgstr "Jetzt benennen wir die Steigung auf diesem Gleisabschnitt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:209
+msgid ""
+"Again, since there is no End-Point nearby, we split the track to create an "
+"End-Point we can use,\n"
+msgstr ""
+"Auch hier ist wieder kein Endpunkt in der Nähe, daher trennen wir das Gleis "
+"um einen nutzbaren Endpunkt zu erhalten.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:210
+msgid "and create a Grade marker.\n"
+msgstr "Dort erstellen wir eine Steigungsmarkierung.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:211
+msgid "Note the marker has an arrow pointing in the upwards direction.\n"
+msgstr ""
+"Beachten Sie, dass die Markierung einen Pfeil besitzt, der in Richtung des "
+"Anstiegs zeigt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:212
+msgid ""
+"The last thing we want to do is to create a Station label that we'll use in "
+"the <Profile> command.\n"
+msgstr ""
+"Als letzten Schritt erstellen wir noch eine Beschriftung für einen Bahnhof, "
+"den wir im <Höhenprofil> Befehl benutzen werden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:213
+msgid "Now, set the Elevation to Station and enter the its name.\n"
+msgstr ""
+"Jetzt setzen Sie die Höhenmarkierung auf 'Bahnhof' und geben den Namen "
+"ein.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:214
+msgid ""
+"XTrackCAD can help find tracks that are curved too sharply or are too "
+"steep. These tracks are Exception tracks and are drawn in the Exception "
+"track color.\n"
+msgstr ""
+"XTrackCAD kann Ihnen helfen, Gleise zu finden, die einen zu engn Radius "
+"bilden oder die zu steil ansteigen. Diese Gleise sind Ausnahmegleise und "
+"werden in der Ausnahmegleisfarbe dargestellt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:215
+msgid ""
+"In this example we have a curved track with radius of 9\" and a straight "
+"track with a grade of 3.8%.\n"
+msgstr ""
+"In diesem Besipiel haben wir eine Kurve mit einem Radius von 9,5\" und ein "
+"gerades Gleis auf einer 3.8% Steigung.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:216
+msgid " \n"
+msgstr " \n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:217
+msgid ""
+"The Layout dialog shows the Minimum Track Radius is 9\" and the Maximum "
+"Track Grade is 5%.\n"
+msgstr ""
+"Im den Optionen für den Gleisplan sehen wir, dass der Mindestradius mit 9\" "
+"und die maximale Steigung mit 5% festgelegt sind.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:218
+msgid ""
+"If we make the curved track sharper it will be drawn in the Exception "
+"color.\n"
+msgstr ""
+"Verringern wir den Radius der Kurve, so wird das Gleis mit der Ausnahmefarbe "
+"dargestellt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:219
+msgid ""
+"If we make the straight track steeper it will also be drawn in the Exception "
+"color.\n"
+msgstr ""
+"Vergrößern wir die Steigung des geraden Gleises, so wird das Gleis ebenfalls "
+"in der Ausnahmefarbe dargestellt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:220
+msgid ""
+"You can change the Exception color on the Colors dialog from the Options "
+"menu.\n"
+msgstr ""
+"Die Ausnahmefarbe kann im Farbdialogfenster des Optionen-Menus geändert "
+"werden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:221
+msgid ""
+"The unconnected End-Point of any track can be extended with the <Modify> "
+"command using Right-Drag.\n"
+msgstr ""
+"Gleise mit mindestens einem freien Endpunkt Gleise können mit dem <Ändern>-"
+"Befehl oder durch Ziehen mit gedrücktem rechtem Mausknopf geändert werden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:222
+msgid "Select the End-Point and Right-Drag.\n"
+msgstr "Endpunkt auswählen und mit rechter Maustaste ziehen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:223
+msgid "The extending track can be straight...\n"
+msgstr "Die Erweiterung kann gerade sein...\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:224
+msgid "... or curved.\n"
+msgstr "...oder gebogen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:225
+msgid ""
+"If you extend a Straight or Curved flex track and enable Easements then an "
+"Easement curve will be automatically generated when you extend the track.\n"
+msgstr ""
+"Wenn die Funktion Übergangsbogen aktiv ist, während Sie ein gerades oder "
+"gebogenes Flexgleis verändern, so wird ein Übergangsbogen erstellt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:226
+msgid ""
+"The <Flip> command will create a mirror image of the selected objects.\n"
+msgstr ""
+"Der Befehl <Spiegeln> erzeugt ein Spiegelbild der ausgewählten Objekte.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:227
+msgid "After selecting the object, drag a line which will form the mirror.\n"
+msgstr ""
+"Nach der Auswahl der Objekte, wird eine Linie gezogen die die Spiegelachse "
+"bildet.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:228
+msgid "The mirror line does not have to be vertical or horizontal.\n"
+msgstr "Diese Spiegellinie muss nicht horizontal oder vertikal sein.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:229
+msgid "You can also flip any number of objects.\n"
+msgstr "Sie können jede beliebige Anzahl von Objekten spiegelen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:230
+msgid "Watch what happens to the structure and turnout titles.\n"
+msgstr ""
+"Achten Sie darauf, was mit den Beschriftungen an Gebäuden und Weichen "
+"geschieht.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:231
+msgid ""
+"Note that the turnout title has been changed from the Medium Right to Medium "
+"Left. When turnouts are flipped, XTrackCAD will try to find a matching "
+"turnout and if found will change the name.\n"
+msgstr ""
+"Beachten Sie auch, dass aus der mittleren Rechtsweiche eine mittlere "
+"Linksweiche wurde. Werden Weichen gespiegelt, versucht XTrackCAD eine "
+"passende Weiche zu finden und ersetzt den Namen, wenn dies gelingt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:232
+msgid ""
+"Structures do not have Right and Left hand versions. Their title is changed "
+"to indicate that they were flipped.\n"
+msgstr ""
+"Gebäude haben keine rechte oder linke Version. Der veränderte Titel zeigt, "
+"dass diese gespiegelt wurden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:233
+msgid "You can use the <Describe> command to change their title.\n"
+msgstr "Mit dem <Beschreiben> Befehl kann der Tietel wieder geändert werden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:234
+msgid ""
+"The <Group> and <Ungroup> commands (on the Tools menu) are a powerful way to "
+"manipulate Turnout and Structure definitions.\n"
+msgstr ""
+"Die <Gruppieren> und <Gruppe auflösen> Befehle bilden einen leistungsfähigen "
+"Weg, Weichen- oder Gebäude-Definition zu verändern.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:235
+msgid "We'll start with a simple turnout and add a switch machine.\n"
+msgstr ""
+"Wir beginnen mit einer einfachen Weiche zu der wir einen Weichenantrieb "
+"zufügen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:236
+msgid ""
+"Now that we have drawn a rough outline of a switch machine we will group it "
+"with the turnout definition.\n"
+msgstr ""
+"Nachdem wir jetzt den groben Umriß des Antriebs gezeichnet haben, gruppieren "
+"wir diesen mit der Weichen-Definition.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:237
+msgid "First we Select the objects in the new definition.\n"
+msgstr "Zuerst wählen wir die Objekte in der neuen Definition aus.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:238
+msgid "Now do the <Group> command.\n"
+msgstr "Und wenden jetzt den <Gruppieren> Befehl an.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:239
+msgid ""
+"The <Group> command dialog shows the Title (Manufacturer, Description and "
+"Part Number) of the new definition. This information is taken from the "
+"Selected objects you are grouping.\n"
+msgstr ""
+"Das Dialogfenster für den <Gruppieren> Befehl zeigt den Titel (Hersteller, "
+"Beschreibung und Teilenummer) für die neue Definition an. Diese Information "
+"kommt aus den ausgewählten Teilen der Gruppe.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:240
+msgid ""
+"The 'Replace with new group?' toggle will replace the Selected objects with "
+"the new definition.\n"
+msgstr ""
+"Der 'Ersetzen durch neue Definition' Schalter ermöglicht es, die "
+"ausgewählten Objekte durch die neuen Definition zu ersetzen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:241
+msgid ""
+"If we don't change the Title then the new definition will replace the "
+"existing definition.\n"
+msgstr ""
+"Wenn wir den Titel nicht verändern, so ersetzt die neue Definition die "
+"bereits vorhandene.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:242
+msgid "We'll give this definition a new Description.\n"
+msgstr "Wir geben der Gruppe eine neue Beschreibung.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:243
+msgid "We're done with this definition. Press Ok.\n"
+msgstr "Diese Definition ist fertig. Drücken Sie OK.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:244
+msgid "You will see the updated image on the HotBar.\n"
+msgstr "Sie sehen das aktualisierte Bild in der Auswahlleiste.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:245
+msgid ""
+"The <Ungroup> command replaces any Selected turnouts or structures with "
+"their parts.\n"
+msgstr ""
+"Der Befehl zum Auflösen der Gruppe ersetzt gewählte Weichen oder Gebäude "
+"durch ihre Teile.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:246
+msgid ""
+"Structures and non-track segements of turnouts are composed of Lines, "
+"Circles and other shapes. In this turnout these are the two lines and the "
+"two squares.\n"
+msgstr ""
+"Gebäude und Weichen sind aus Linien, Kreisen und anderen Formen "
+"zusammengesetzt. Zu dieser Weiche gehören zwei Linien und zwei Quadrate.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:247
+msgid ""
+"We will Ungroup this turnout and see how the individual parts can be "
+"changed.\n"
+msgstr ""
+"Wir werden diese Weiche in ihre Teile zerlegen und sehen, wie die einzelnen "
+"Teile verändert werden können.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:248
+msgid "First Select the turnout and then Ungroup it.\n"
+msgstr ""
+"Zuerste wählen Sie die Weiche aus und lösen dann die Gruppierung auf.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:249
+msgid "Notice that the Title now indicates the turnout is Ungrouped.\n"
+msgstr ""
+"Beachten Sie, dass der Titel jetzt darauf hinweis, dass die Weiche aufgelöst "
+"ist.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:250
+msgid "Hit Escape to deselect everything.\n"
+msgstr "Durch Drücken von Escape wird die Auswhl aufgehoben.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:251
+msgid "Now Select the lines and squares.\n"
+msgstr "Jetzt wählen Sie die Linien und Quadrate aus.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:252
+msgid ""
+"We could modify these object or add new ones. For now we'll just delete "
+"them.\n"
+msgstr ""
+"Wir können diese Objekt ändern oder neue hinzufügen.Diesmal werden wir sie "
+"einfach löschen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:253
+msgid "And move the Label out of the way.\n"
+msgstr "Und die Beschriftung auf die Seite schieben.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:254
+msgid "Notice that the turnout has been broken into three parts.\n"
+msgstr "Beachten Sie, dass die Weiche in drei Teile zerfallen ist.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:255
+msgid ""
+"Two ends of the turnout, from the frog to the end of the diverging leg and "
+"from the points to the left, are now straight track sections.\n"
+msgstr ""
+"Zwei Endpunkte der Weiche, vom Herzstück zum Ende des abzweigenden Gleis und "
+"von den Weichenzungen nach links, sind jetzt gerade Abschnitte.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:256
+msgid ""
+"The a turnout is made of a number of individual straight and curved track "
+"segements. This turnout had four segments:\n"
+msgstr ""
+"Eine Weiche besteht aus einer Anzahl von geraden und gebogenen Gleisstücken. "
+"Diese Weiche hat vier Stücke:\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:257
+msgid " 1 a short straight segment to the left of the points\n"
+msgstr "1. ein kurzes gerades Stück, links von den Weichenzungen,\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:258
+msgid " 2 a long straight segment to the right of the points\n"
+msgstr "2. ein langes gerades Stück, rechts von den Weichenzungen,\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:259
+msgid " 3 a curved segment from the points to the frog\n"
+msgstr "3. ein gebogenes Stück von den Weichenzungen bis zum Herzstück, und\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:260
+msgid ""
+" 4 a straight segment from the frog to the end of the diverging leg.\n"
+msgstr ""
+"4. ein gerades Stückvom Herzstück bis zum Ende des abzweigenden Gleis.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:261
+msgid "The first and last segments have be converted to straight tracks.\n"
+msgstr ""
+"Der erste und der letzte Gleisabschnitt wurden in gerade Gleise "
+"umgewandelt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:262
+msgid ""
+"The second and third segments form the the body of the turnout and can not "
+"be ungrouped further.\n"
+msgstr ""
+"Der zweite und der dritte Gleiusabschnitt bilden den Kern der Weiche und "
+"können nicht weiter zerlegt werden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:263
+msgid ""
+"You can later Group this turnout with the straight segments to recreate the "
+"turnout definition. You can also add other track segments to turnout "
+"definitions.\n"
+msgstr ""
+"Sie können die Weiche mit den geraden Abschnitten später gruppieren um die "
+"Definition wiederherzustellen. Sie können auch andere Gleisabschnitte zur "
+"Weichendefinition zufügen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:264
+msgid "Now, create a track and place the new turnout on it.\n"
+msgstr "Jetzt erstellen Sie bitte ein Gleis und setzen die Weiche darauf.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:265
+msgid "Now suppose we want to replace the black squares with green circles.\n"
+msgstr ""
+"Nehmen wir mal an, wir wollen die schwarzen Quadrate durch grüne Kreise "
+"ersetzen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:266
+msgid "First we Select the turnout.\n"
+msgstr "Zuerst wählen wir die Weiche aus.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:267
+msgid "And now Ungroup it (from the Tools Menu)\n"
+msgstr ""
+"Der ersten und der letzte Abschnitt wurden in gerade Gleise umgewandelt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:268
+msgid ""
+"Notice that the name has changed to indicate the turnout was Ungrouped.\n"
+msgstr ""
+"Beachten Sie, dass der Name geändert wurde, um anzuzeigen, dass die "
+"Gruppierung der Weiche aufgelöst wurde.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:269
+msgid ""
+"Now, hit escape to deselect everything and then Select the 2 squares and "
+"delete them.\n"
+msgstr ""
+"Jetzt drücken Sie Escape umd die Auswahl zurückzusetzen. Dann wählen Sie die "
+"zwei Quadrate und löschen diese.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:270
+msgid "Now draw the green circles...\n"
+msgstr "Jetzt zeichnen Sie die grünen Kreise...\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:271
+msgid "and Group the new definition.\n"
+msgstr "und gruppieren die neue Definition.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:272
+msgid ""
+"Notice that the turnout in the HotBar is angled the same as the turnout on "
+"the layout. Make sure your new definition is rotated the way you want it.\n"
+msgstr ""
+"Beachten Sie, dass die Weiche in der Auswahlleiste so schräg wie die Weiche "
+"auf der Anlage ist. Stellen Sie sicher, das die neuen Definitionen so "
+"ausgerichtet sind, wie Sie es bevorzugen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:273
+msgid "We can also create turnouts from simple straight and curved tracks.\n"
+msgstr ""
+"Wir können auch aus einfachen geraden und gebogenen Gleisen Weichen "
+"erstellen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:274
+msgid "We'll create two tracks that have a common End-Point.\n"
+msgstr "Wir erzeugen zwei Gleise mit einem gemeinsamen Endpunkt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:275
+msgid "At this point we can modify the tracks if necessary.\n"
+msgstr ""
+"Zu diesem Zeitpunkt können die Gleise verändern, sofern das notwendig ist.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:276
+msgid "We will use the <Describe> command to change the tracks.\n"
+msgstr ""
+"Wir benutzen den Befehl <Beschreiben> um die Eigenschaften der Gleise zu "
+"verändern.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:277
+msgid "We'll make the Length 7.5\".\n"
+msgstr "Wir setzen die Länge auf 7,5\".\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:278
+msgid ""
+"If we change the Length, each End-Point will be moved to shorten the track. "
+"We want to just move the Right End-Point. To control this, change the Pivot "
+"to First which means the Left End-Point will be unchanged when we change the "
+"length (or angle) of the track.\n"
+msgstr ""
+"Wenn wir die Länge verändern, wird jeder Endpunkt erschoben um das Gleis zu "
+"verkürzen.Wir wollen, dass nur der rechte Endpunkt bewegt wird. Um das zu "
+"steuern, stellen Sie den Fixpinkt auf den Ersten. Das bedeutet, dass der "
+"linke Endpunkt unverändert bleibt wenn wir die Länge (oder den Winkel) des "
+"Gleises ändern.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:279
+msgid "Now when change the Length only the Right End-Point will move.\n"
+msgstr "Jetzt wird beim Ändern der Länge nur der rechte Endpunkt verschoben.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:280
+msgid "Now let's look at the curved track.\n"
+msgstr "Jetzt schauen wir uns das gebogene Gleis an.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:281
+msgid ""
+"Here the Left End-Point (which we don't want to move) is the Second End-"
+"Point, so we'll make that the Pivot.\n"
+msgstr ""
+"Hier ist der linke Endpunkt, den wir nicht verschieben wollen, der zweite "
+"Endpunkt. Also legen wir diesen als Fixpunkt fest.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:282
+msgid "We want the curve to have a radius of 20\" and an angle of 17.5°.\n"
+msgstr ""
+"Wir wollen, dass der Bogen einen Radius von 20\" und einen Winkel von 17,5° "
+"hat.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:283
+msgid "First change the Radius...\n"
+msgstr "Zuerst ändern Sie den Radius...\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:284
+msgid "and the the Angular Length.\n"
+msgstr "und den Winkelabstand.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:285
+msgid "Now Select both tracks...\n"
+msgstr "Jetzt bitte beide Gleise auswählen...\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:286
+msgid "and Group them.\n"
+msgstr "und gruppieren sie.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:287
+msgid ""
+"If the two tracks have a common End-Point then they will form a Turnout and "
+"can be switched with the <Train> command. Otherwise they will just be two "
+"track segments grouped together.\n"
+msgstr ""
+"Wenn die beiden Gleise einen gemeinsamen Endpunkt haben, werden Sie eine "
+"Weiche bilden, dieim Betriebsmodus gesteuert werden kann. Andernfalls werden "
+"es einfach zwei gruppierte Gleise sein.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:288
+msgid ""
+"We have created a left hand turnout and we also want a right hand version.\n"
+msgstr ""
+"Wir haben eine links abzweigende Weiche erstellt und wollen auch die rechts "
+"abzweigende Form.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:289
+msgid "We'll use the <Flip> command.\n"
+msgstr "Wir verwenden den Befehl <Spiegeln>\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:290
+msgid ""
+"Drag a horizontal line that will be the mirror for the <Flip> command.\n"
+msgstr ""
+"Ziehen Sie als Spiegelstrich für den Spiegeln Befehl eine horizontale "
+"Linie.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:291
+msgid "Notice the title has changed to Flipped Left.\n"
+msgstr ""
+"Beachten Sie, dass der Titel auf \"Links gespiegelt\" geändert wurde.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:292
+msgid "Now Group the turnout.\n"
+msgstr "Jetzt gruppieren Sie die Weiche\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:293
+msgid "We'll change the Title and Part No for the new defintion.\n"
+msgstr ""
+"Wir werden den Titel und die Teilnummer für die neue Definition ändern.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:294
+msgid ""
+"To Remove the definitions, use the Custom Management dialog on the Tools "
+"menu.\n"
+msgstr ""
+"Um Definitionen zu löschen benutzen Sie die \"Anpassungs Verwaltung\" im "
+"\"Verwalten\" Menü.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:295
+msgid "Select the definitions you added and Delete them.\n"
+msgstr "Wählen Sie die zugefügten Definitionen aus udn löschen diese.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:296
+msgid ""
+"Now we will create a helix in the corner of the layout connected to 2 "
+"tracks.\n"
+msgstr ""
+"Jetzt erstellen wir in der Ecke der Anlage eine Gleiswendel, die zwei Gleise "
+"verbindet.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:297
+#, c-format
+msgid ""
+"We will be creating a helix with a Elevation Difference of 12\", Grade of "
+"1.5% and limit the Vertical Separation to at least 2\".\n"
+msgstr ""
+"Wir werden eine Gleiswendel mit einem Höhenunterschied von 12\", einer "
+"Steigung von 1,5% erzeugen und den vertikale Abstand auf mindestens 2\" "
+"begrenzen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:298
+msgid "First set the Elevation Difference to 12\"\n"
+msgstr "Als erstes den Höhenunterschied auf 12\" setzen\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:299
+msgid "Next set the Vertical Separation to 2\"\n"
+msgstr "Als nächstes wird der vertikale Abstand auf 2\" gesetzt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:300
+msgid "Notice how this causes the number of Turns to be set to 6\n"
+msgstr "Beachten Sie, dass hierfür 6 Windungen benötigt werden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:301
+msgid "Next set the Grade to 1.5%\n"
+msgstr "Jetzt setzen die die Steigung auf 1,5%\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:302
+msgid "Notice how this causes the Radius to change.\n"
+msgstr "Beachten Sie wie dadruch der Radius verändert wurde.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:303
+msgid ""
+"Setting these values changes the Radius to 21.2\" and the number of Turns to "
+"6.\n"
+msgstr ""
+"Durch Setzen dieser Werte wird der Radius auf 21,2\" und die Anzahl der "
+"Windungen auf 6 geändert.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:304
+msgid ""
+"Now we specify the Angular Separation between the enterance and exit to the "
+"helix.\n"
+msgstr ""
+"Jetzt ändern wir den Winkel zwischen eingehendem und abgehendem Gleis der "
+"Wendel.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:305
+msgid "Note: this will decrease the Radius slightly.\n"
+msgstr "Beachten Sie, dass dadurch der Radius geringfügig kleiner wurde.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:306
+msgid "Next we can fine tune the helix by decreasing the Radius to 15\".\n"
+msgstr ""
+"Als nächstes können wir die Wendel durch Ändern des Radius auf 15\" "
+"optimieren.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:307
+msgid "Note the change to the Grade.\n"
+msgstr "Beachten Sie die Änderung der Steigung.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:308
+msgid ""
+"Lastly change the Vertical Separation to 2.5\". The number of Turns will "
+"change to 4 and the grade increase to almost 3%.\n"
+msgstr ""
+"Zum Schluss ändern die Differenz zwischen den Windungen auf 2,5\". Die "
+"Anzahl der Windungen wird auf 4 geändert und die Steigung vergrößert sich "
+"auf beinahe 3%.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:309
+msgid ""
+"Note: the Vertical Separation will be increased. This value is the "
+"Elevation Difference (12.0) divided by the total number of turns. The total "
+"number of turns is 4.25: 4 whole Turns plus a quarter turn for the Angular "
+"Separation.\n"
+msgstr ""
+"Beachten Sie dass die Windungsdifferenz sich vergrößert. Dies ist der "
+"Höhenunterschied, geteilt durch die Anzahl der Windungen. Insgesamt sind es "
+"4,25 Windungen: 4 ganze Windungen und eine viertel Umdrehung für den Winkel "
+"zwischen den Zugängen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:310
+msgid ""
+"Now that the helix parameters are set we can place the helix on the layout.\n"
+msgstr ""
+"Nachdem die Eigenschaften für die Gleiswendel bestimmt sind, setzen wir "
+"diese auf die Anlage.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:311
+msgid ""
+"Next, join the 2 straight tracks to the helix in the same way we join to a "
+"circle.\n"
+msgstr ""
+"Als nächstes verbinden Sie die zwei geraden Gleise mit der Wendel genauso "
+"wir Sie Gleise mit einem Kreis verbinden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:312
+msgid ""
+"Notice that the length has increased because we have more than 4 turns in "
+"the helix. It is closer to 4.25 turns.\n"
+msgstr ""
+"Beachten Sie, dass sich die Länge vergrößert hat, da wir mehr als vier "
+"Windungen in der Wendel haben. Es sind nahe an 4,25 Umdrehungen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:313
+msgid ""
+"Next, we assign elevations to the 2 End-Points of the helix. This will "
+"determine the grade and separation between the helix coils.\n"
+msgstr ""
+"Als nächstes legen wir die Höhen der beiden Endpunkt der Wendel fest. "
+"Dadurch werden die Steigung und derAbstand zwischen den Windungen "
+"festgelegt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:314
+msgid ""
+"Note: we could set the elevations anywhere along the connecting tracks "
+"instead. XTrackCAD treats a helix as a single length of track for "
+"elevations.\n"
+msgstr ""
+"Beachten Sie, dass wir die Höhen auch irgendwo an den verbindenden Gleisen "
+"festlegen können. XTrackCAD behandelt bei den Höhen eine Wendel als ein "
+"durchgängiges Stück Gleis.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:315
+msgid ""
+"We have set the elevations to 1\" and 13\" to produce a grade of 3.0% with "
+"2.8\" between coils.\n"
+msgstr ""
+"Wir haben die Höhen auf 1\" und 13\" gesetzt um eine Steigung von 3% mit "
+"2,8\" zwischen den Windungen zu erzeugen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:316
+msgid ""
+"You can use the <Describe> command to change the number of Turns or the "
+"Elevations at either end of the Helix. This will affect the Grade and "
+"Vertical Separation.\n"
+msgstr ""
+"Sie können den Eigenschaften Befehl benutzen, um die Anzah der Windungen "
+"oder die Höhe an den Enden der Wendel zu ändern. Dadurch ändern sich die "
+"Steigung und der Abstand.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:317
+msgid "The helix description can be moved by the <Move Label> command.\n"
+msgstr ""
+"Mit dem Befehl <Verschiebe Beschriftung> kann die Beschriftung der Wendel "
+"verschoben werden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:318
+msgid ""
+"In addition to using the turnout definitions you can create 'Hand Laid "
+"Turnout'.\n"
+msgstr ""
+"Zusätzlich zu den Weichendefinitionen können Sie auch Selbstbauweichen "
+"erstellen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:319
+msgid "This is two step process:\n"
+msgstr "Das ist ein zweistufiger Prozess.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:320
+msgid "1 - click on the frog and drag away to set the frog angle\n"
+msgstr ""
+"1. klicken Sie auf das Herzstück und setzen Sie durch ziehen mit gedrücktem "
+"Mausknopf den richtigen Winkel.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:321
+msgid ""
+" Hint: the further you drag from the frog, the more accurate the angle.\n"
+msgstr ""
+"Hinweis: Je weiter weg vom Herzstück Sie ziehen, um so genauer lässt sich "
+"der Winkel einstellen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:322
+msgid "2 - click and drag to set the position of the points\n"
+msgstr "2. Klicken und ziehen Sie um die Position der Zungen festzulegen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:323
+msgid "We can create Hand Laid Turnouts on curved tracks.\n"
+msgstr "Wir können Selbstbauweichen auch auf gebogenen Gleisen erstellen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:324
+msgid "A Hand Laid Turnout is composed of several parts.\n"
+msgstr "Eine Selbstbauweiche besteht aus mehreren Teilen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:325
+msgid "The actual Turnout is a short portion at the points.\n"
+msgstr "Die eigentliche Weiche ist ein kleines Stück an den Weichenzungen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:326
+msgid "The other parts are various straight and curved segments.\n"
+msgstr "Die anderen Teile sind verschiedene gerade und gebogene Teilstücke.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:327
+msgid "The new curved turnout is also composed of several segments.\n"
+msgstr "Die neue Bogenweiche besteht ebenfalls aus mehreren Abschnitten.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:328
+msgid "Welcome to the XTrackCAD demonstration.\n"
+msgstr "Willkommen bei der XTrackCAD Demonstration.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:329
+msgid ""
+"This will show some the features of XTrackCAD in an automated presentation. "
+"This window contains a number of controls and a message area (which I hope "
+"you are reading now). \n"
+msgstr ""
+"Diese wird Ihnen einige Funktionen von XTrackCAD in einer automatischen "
+"Präsentation zeigen. Dieses Fenster enthält einige Steuerungselements und "
+"einen Nachrichtenbereich, den Sie gerade lesen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:330
+msgid "The controls are:\n"
+msgstr "Die Steuerungselemente sind:\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:331
+msgid "Step - advances to the next step of the demo.\n"
+msgstr "Einzelschritt - weiter zum nächsten Schritt in der Demo.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:332
+msgid "Next - skips ahead to the next demo.\n"
+msgstr "Nächster - springt zur nächsten Demo.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:333
+msgid "Quit - exits the demo and returns to XTrackCAD.\n"
+msgstr "Beenden - verlässt die Demo und kehrt zu XTrackCAD zurück.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:334
+msgid "Speed - controls the speed of the demo.\n"
+msgstr "Geschwindigkeit - steuert die Geschwindigkeit der Demo.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:335
+msgid "Click Step now for the next message.\n"
+msgstr ""
+"Klicken Sie jetzt auf Einzelschritt um zur nächsten Nachricht zu gelangen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:336
+msgid ""
+"If this is the first time you have used the demo you may want to rearrange "
+"the windows so the demo window does not obscure the main window.\n"
+msgstr ""
+"Wenn dies das erste Mal ist, dass Sie die Demo benutzen, sollten Sie die "
+"Fensterpositionen festlegen. Achten Sie dabei darauf, dass das Hauptfenster "
+"nicht durch das Demofenster verdeckt wird.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:337
+msgid ""
+"You can move the demo window now by dragging on the title bar at the top of "
+"the window. I suggest you move it to the top of your screen.\n"
+msgstr ""
+"Sie können das Demofenster jetzt durch Ziehen an der Titelleiste des "
+"Fensters verschieben. Am besten verschieben Sie es an den oberen Rand des "
+"Bildschirms.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:338
+msgid ""
+"The various controls are disabled when it would be inappropiate to click on "
+"them. When the demo is running the Step button is disabled. When the demo "
+"is paused the Step button is enabled and you can click it when you are ready "
+"to view the next part of the demo.\n"
+msgstr ""
+"Die verschiedenen Steuerelement sind deaktiviert, während diese nicht "
+"nutzbar sind. Während die Demo läuft, ist der Einzelschritt-Knopf "
+"deaktiviert. Wenn die Demo angehalten ist, wird der Einzelschritt-Knopf "
+"aktiviert. Sie können darauf klicken, wenn Sie für den nächsten Schritt der "
+"Demo bereit sind.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:339
+msgid "You can click on Quit to return to XTrackCAD at any time.\n"
+msgstr ""
+"Durch Klicken auf Verlassen können Sie jederzeit zu XTrackCAD zurückkehren.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:340
+msgid "You can adjust the speed of the demonstration with the Speed control.\n"
+msgstr ""
+"Die Geschwindigkeit der Demo können Sie mit dem Geschwindigkeitsknopf "
+"anpassen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:341
+msgid "The demos are designed to fit within a certain sized window.\n"
+msgstr "Die Demos sind für eine bestimmte Fenstergröße entworfen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:342
+msgid ""
+"For best results, change the size of the main XTrackCAD window so the box "
+"shape is completely visible.\n"
+msgstr ""
+"Um beste Ergebniss zu erreichen, ändern Sie die Größe des XTrackCAD "
+"Hauptfensters so, dass die das Rechteck vollständig sicht bar ist.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:343
+msgid "You can do this by clicking and dragging on a corner of the window.\n"
+msgstr ""
+"Dies können Sie erreichen, in dem Sie an der rechten unteren Ecke des "
+"Fensters ziehen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:344
+msgid "This is the end of the introductory demo.\n"
+msgstr "Dies ist das Ende der Einführungsdemo.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:345
+msgid ""
+"Please click Step for the next demo or click Quit to return to XTrackCAD.\n"
+msgstr ""
+"Bitte klicken Sie Einzelschritt für die nächste Demo oder Verlassen, um zu "
+"XTrackCAD zurück zu kehren.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:346
+msgid ""
+"You can also join to and from circles. This will change the circles to "
+"curves.\n"
+msgstr ""
+"Sie können auch Gleise mit Gleiskreisen verbinden. Dadurch werden aus "
+"Kreisen Bögen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:347
+msgid "In this example we will join two circles.\n"
+msgstr "In diesem Beispiel werden wir zwei Kreise verbinden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:348
+msgid ""
+"Here we've selected points on the two circles. The direction of the "
+"connections (whether clockwise or counter clockwise) is controlled by where "
+"on the circle you select the connection points.\n"
+msgstr ""
+"Hier haben wir Punkte auf zwei Kreisen ausgewählt. Die Richtung der "
+"Verbindungen, entweder im Uhrzeigersinn oder dagegen, wird aufgrund der "
+"Stellen auf den Kreisen, die Sie angewählt haben, ermittelt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:349
+msgid "Now let's try a cross connection.\n"
+msgstr "Jetzt versuchen wir eine kreuzweise Verbindung.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:350
+msgid ""
+"Note that the connection is from different 'ends' of the circle than in the "
+"last example.\n"
+msgstr ""
+"Beachten Sie, dass die Verbindung an anderen Punkten der Kreise ansetzt als "
+"bem letzten Beispiel.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:351
+msgid "This examples shows joining tracks whose End-Points are aligned.\n"
+msgstr ""
+"Dieses Beispiel zeigt wir Gleise verbunden werden, die zueinander parallel "
+"sind.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:352
+msgid ""
+"Note the 2 pairs of tracks have End-Points that are close and aligned but "
+"not connected.\n"
+msgstr ""
+"Beachten Sie dass die Endpunkte der beiden Gleise nahe beieinander und "
+"parallel, aber nicht verbunden, sind.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:353
+msgid "The first case joins the curve and straight track.\n"
+msgstr ""
+"Im ersten Fall werden eine gebogenes und ein gerades Gleis verbunden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:354
+msgid "The second case will join the two straight tracks.\n"
+msgstr "Im zweiten Fall werden zwei gerade Gleise verbunden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:355
+msgid "Note that the two straight tracks were combined to form one track.\n"
+msgstr ""
+"Beachten Sie, dass die beiden geraden Gleise zu einem Gleis zusammengefasst "
+"wurden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:356
+msgid ""
+"The <Join> command can join straight and curved tracks (in either order).\n"
+msgstr ""
+"Mit dem Befehl <Verbinden> können gerade und gebogene Gleise (in jeder "
+"Reihenfolge) verbunden werden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:357
+msgid "A connecting track is drawn between the two tracks.\n"
+msgstr "Ein Verbindungsgleis wird zwischen den beiden Gleisen gezeichnet.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:358
+msgid ""
+"Notice that the curved track is extended as the connection point moves past "
+"the End-Point.\n"
+msgstr ""
+"Beachten Sie, dass das gebogene Gleis verlängert wird, wenn der "
+"Verbindungspunkt über den Endpunkt hinaus verschoben wird.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:359
+msgid "Here the connection makes the curved track wrap around.\n"
+msgstr "Hier bildet das Verbindungsgleis eine Spirale.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:360
+msgid ""
+"Now the cursor is about to be moved past the other (far) End-Point of the "
+"straight track. You will receive a warning and the connecting track turns "
+"Red.\n"
+msgstr ""
+"Jetzt wird der Mauszeiger über den anderen, entfernten, Endpunkt des geraden "
+"Gleises verschoben. Sie erhalten einen Hinweis und das Verbindungsgleis wird "
+"rot.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:361
+msgid "The <Join> command can move one group of tracks to join with another.\n"
+msgstr ""
+"Mit dem Befehl <Verbinden> können Gruppen von Gleisen verschoben werden, um "
+"diese mit anderen zu verbinden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:362
+msgid "First <Select> the tracks you want to move.\n"
+msgstr "Zuerst wählen Sie die Gleise aus, die verschoben werden sollen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:363
+msgid "Click <Join> and Shift-Left-Click on the two End-Points.\n"
+msgstr ""
+"Klicken Sie auf <Verbinden> und klicken dann bei gedrückter Umschalttaste "
+"auf die beiden Endpunkte.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:364
+msgid "The selected tracks are moved into position.\n"
+msgstr "Die ausgewählten Gleise werden an die Position verschoben.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:365
+msgid ""
+"Two straight tracks are joined by selecting the two End-Points. The "
+"selected End-Points will be those closest to the cursor when the track is "
+"selected.\n"
+msgstr ""
+"Zwei gerae Gleise werden verbunden, indem die Endpunkte ausgewählt werden. "
+"Die beim Auswählen der Gleise nahegelegensten Endpunkte werden ausgewählt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:366
+msgid ""
+"A connecting track is drawn between the two tracks. Notice how it moves as "
+"the cursor is dragged along the second track.\n"
+msgstr ""
+"Ein Verbindungsgleis wird zwischen den beiden Gleisen gezeichnet. Beachten "
+"Sie wie dieses neu geformt wird, wenn der Mauszeiger entlang des zweiten "
+"Gleises bewegt wird.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:367
+msgid ""
+"Note that two tracks are extended if you move past the end of the track.\n"
+msgstr ""
+"Beachten Sie, dass die beiden Gleise verlängrt werden, wenn Sie denn "
+"Mauszeiger über das Ende des Gleises hinaus bewegen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:368
+msgid ""
+"Notice what happens if you drag past the intersection points of the two "
+"tracks.\n"
+msgstr ""
+"Beachten Sie was passiert, wenn Sie über den Schnittpunkt der beiden Gleise "
+"hinaus ziehen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:369
+msgid "This is probably not a very useful thing to do.\n"
+msgstr "Das ist wahrscheinlich keine sinnvolle Lösung.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:370
+msgid "You can connect from any track to a turntable\n"
+msgstr "Sie können jedes Gleis mit einer Drehscheibe verbinden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:371
+msgid "Note: you cannot have a turntable as your first connection point.\n"
+msgstr ""
+"Beachten Sie, dass die Drehscheibe nicht der erste Verbindungspunkt sein "
+"darf.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:372
+msgid ""
+"You cannot place the connecting track too close to an existing stall track. "
+"How close you can get is controlled by the Turntable Angle on the Setup "
+"dialog.\n"
+msgstr ""
+"Ein Verbindungsgleis kann nicht zu dicht an einem existieren "
+"Drehscheibenabgang erstellt werden. Wie klein der Abstand sein darf, wird "
+"über den Drehscheibenwinkel in den Einstellungen festgelegt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:373
+msgid "In this example it is set to 7.5 degrees.\n"
+msgstr "In diesem Beispiel ist dieser auf 7,5\" gestellt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:374
+msgid "You can drag the connecting point all round the turntable.\n"
+msgstr "Sie können den Verbindungspunkt irgendwo an die Drehscheibe ziehen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:375
+msgid ""
+"As you drag away from the turntable a straight track will be drawn to the "
+"cursor postion and a curve will be drawn from the cursor to the connecting "
+"track.\n"
+msgstr ""
+"Während Sie von der Drehscheibe weg ziehen, wird ein gerades Gleis zur "
+"Position des Mauszeiger gezeichnet. Ein Gleisbogen wird vom Mauszeiger zum "
+"Verbindungsgleis gezeichnet.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:376
+msgid ""
+"Now the cursor will be moved within the turntable. Notice the error "
+"message.\n"
+msgstr ""
+"Jetzt wird der Mauszeiger zu einer Position innerhalb der Drehscheibe "
+"bewegt. Beachten Sie die Fehlermeldung.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:377
+msgid "All done.\n"
+msgstr "Fertig.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:378
+msgid ""
+"The Draw Commands are used to draw straight and curved lines on the layout.\n"
+msgstr ""
+"Die Zeichenbefehle werden genutzt, um gerade oder gebogene Gleise auf dem "
+"Gleisplan zu erstellen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:379
+msgid ""
+"Lines are drawn by clicking at the starting postion and dragging to the "
+"final position.\n"
+msgstr ""
+"Linien werden gezeichnet, indem der Startpunkt durch Klicken festgelegt wird "
+"und dann durch Ziehen der zusätzliche Endpunkt erstellt wird.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:380
+msgid ""
+"Drawing lines with the Shift key held down will use the previous line End-"
+"Point as the starting position. This makes it easy to draw connected "
+"lines.\n"
+msgstr ""
+"Wird beim Zeichnen die Umschalttaste festgehalten wird der letzte Endpunkt "
+"als Startpunkt für das neue Gleis benutzt. Dadurch wird das Zeichnen "
+"verbundener Linien vereinfacht.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:381
+msgid "You also draw in various colors and line widths.\n"
+msgstr ""
+"Sie können auch mit unterschiedlichen Farben und Liniendicken zeichnen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:382
+msgid ""
+"Like Curved Tracks, Curved Lines can be drawn by a variety of methods.\n"
+msgstr ""
+"Wie Gleisbögen können auch gebogene Linien mit unterschiedlichen Methoden "
+"gezeichnet werden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:383
+msgid ""
+"Here we will draw a Curve by dragging from one End-Point to the other to "
+"define the chord of the Curve. Then we will drag from the center to shape "
+"the curve.\n"
+msgstr ""
+"Hier zeichnen wir eine Kurve, indem wir zuerst von Endpunkt zu Endpunkt "
+"ziehen um die Sehne der Kurve festzulegen. Dann Ziehen wir vom Mittelpunkt "
+"aus, um die Form der Kurve festzulegen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:384
+msgid "Boxes are useful for drawing rectangular shapes.\n"
+msgstr ""
+"Gefüllte Rechtecke können für das Erstellen rechteckiger Formen benutzt "
+"werden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:385
+msgid ""
+"Circles can be drawn by clicking on the center or edge and dragging to set "
+"the radius.\n"
+msgstr ""
+"Kreise werden gezeichnet, indem auf den Rand oder den Mittelpunkt geklickt "
+"wird. Danach wird durch Ziehen der Radius festgelegt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:386
+msgid "Here we will drag from the Center.\n"
+msgstr "Hier beginnen wir vom Mittelpunkt aus.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:387
+msgid "Lines and Shapes can be deleted by Selecting and Deleting.\n"
+msgstr ""
+"Linien und Formen können durch Auswählen und Löschen entfernt werden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:388
+msgid "We also draw Polylines and filled shapes.\n"
+msgstr "Wir können auch Vielfachlinien und gefüllte Formen erstellen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:389
+msgid ""
+"A Polyline is drawn by dragging to place each of the point in the Polyline.\n"
+msgstr ""
+"Eine Vielfachlinie wird gezeichnet, indem jeder Eckpunkt durch Ziehen "
+"gesetzt wird.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:390
+msgid ""
+"To finish off the Polyline press the <Space> key or choose another drawing "
+"type.\n"
+msgstr ""
+"Um die Vielfachlinie zu beenden, drücken Sie die Leertaste oder wählen eine "
+"andere Zeichenoperation.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:391
+msgid "A Polygon is drawn in the same way\n"
+msgstr "Ein Vieleck wird genauso gezeichnet.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:392
+msgid ""
+"You can use the Above and Below Commands to move lines and shapes to the "
+"front or back of the drawing.\n"
+msgstr ""
+"Sie können die Befehle Über und Unter benutzen, um Linien und Formen in den "
+"Vorder- oder Hintergrund zu verschieben.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:393
+msgid "Filled Boxes and Circles work the same as line Boxes and Circles.\n"
+msgstr "Gefüllte Rechtecke und Kreis werden genauso erstellt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:394
+msgid ""
+"In the drawing area of the main window you can see an hollow arrow which "
+"represents the mouse cursor. In this demo the mouse will move about to show "
+"you the actions of different commands.\n"
+msgstr ""
+"Auf der Zeichenfläche des Hauptfenster sehen Sie einen leeren Pfeil anstelle "
+"des Mauszeigers. In dieser Demo wird dieser bewegt, um Ihnen die "
+"Arbeitsweise verschiedener Befehle zu zeigen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:395
+msgid ""
+"The hollow arrow represents the mouse cursor without a mouse button being "
+"pressed.\n"
+msgstr "Der leere Pfeil entspricht dem Mauszeiger ohne gedrückte Maustaste.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:396
+msgid ""
+"When the left mouse button would be pressed, the mouse cursor appears to "
+"flash and the hollow arrow is replaced by a solid red arrow. While the left "
+"button is pressed the mouse cursor will be a solid arrow.\n"
+msgstr ""
+"Würde die Maustaste gedrückt, blinkt der Mauszeiger und wird durch einen "
+"gefüllten roten Pfeil ersetzt. Solange der linke Mausknopf gedrückt bleibt, "
+"ist der Mauszeiger ein gefüllter Pfeil.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:397
+msgid ""
+"Note: these color changes occur only during the demo to simulate mouse "
+"button presses.\n"
+msgstr ""
+"Beachten Sie, dass diese Farbänderungen nur in einer Demo auftritt um "
+"Tastendrücke anzuzeigen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:398
+msgid ""
+"Moving the mouse while a mouse button is pressed is called 'dragging'.\n"
+msgstr ""
+"Das Bewegen der Maus während der Mausknopf gedrückt bleibt wird als 'Ziehen' "
+"bezeichnet.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:399
+msgid ""
+"When the left mouse button is released, the mouse cursor flashes and the "
+"hollow arrow is restored.\n"
+msgstr ""
+"Wird der linke Mausknopf wieder losgelassen, blinkt der Mauszeiger und der "
+"leere Pfeil wird wieder hergestellt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:400
+msgid "Dragging with the right button is simulated by a blue solid cursor.\n"
+msgstr ""
+"Das Ziehen mit dem gedrückten rechten Mausknopf wird durch einen gefüllten "
+"blauen Mauszeiger dargestellt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:401
+msgid ""
+"Sometimes the Shift key is held down while using the mouse for a Shift-Click "
+"or a Shift-Drag. \n"
+msgstr ""
+"Manchmal wird während des Bewegen der Maus auch die Umschalttaste gedrückt "
+"gehalten. Dies wird mit Umschalt-Klick und Umschalt-Ziehen bezeichnet.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:402
+msgid "This is indicated by an outline drawn around the solid arrow.\n"
+msgstr "Dies wird durch eine Umlineum den gefüllten Pfeil dargestellt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:403
+msgid ""
+"The main drawing area shows a portion of total layout. You can zoom in or "
+"zoom out by choosing 'Zoom In' or 'Zoom Out' in the 'Edit' menu, by using "
+"the Zoom buttons on the toolbar or by using the 'Page Down' and 'Page Up' "
+"keys.\n"
+msgstr ""
+"Der Hauptzeichenbereich zeigt einen Teil des gesamten Gleisplanes. Sie "
+"können diesen auf verschiedenen Wegen vergrössern oder verkleinern. Diese "
+"Möglichkeiten sind die Zoom-Auswahlen im Menupunkt Bearbeiten, die Zoom-"
+"Knöpfe in der Werkzeugleiste, die Bild hoch und runter Tasten und das "
+"Mausrad.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:404
+msgid "You can see the entire layout in the Map window.\n"
+msgstr "Den gesamten Gleisplan können Sie im Kartenfenster sehen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:405
+msgid "As you Zoom Out tracks are drawn with one line instead of two.\n"
+msgstr ""
+"Wenn Sie die Ansicht verkleinern, werden Gleise durch eine anstelle von zwei "
+"Linien dargestellt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:406
+msgid ""
+"You can change what portion of the layout is shown by using the 'Map' window "
+"which shows a compressed version of the entire layout. A hilighted area of "
+"the 'Map' (in reverse video) shows what portion of the layout is displayed "
+"in the main drawing area.\n"
+msgstr ""
+"Sie können den im Hauptzeichenfenster gezeigten Bereich des Gleisplans mit "
+"dem Karten-Fenster, das den gesamten Plan verkleinert darstellt, ändern. Ein "
+"hervorgehobener Bereich der Karte (weiß auf schwarzem Grund) zeigt, welcher "
+"Teil des Gleisplans im Moment dort gezeigt wird.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:407
+msgid ""
+"You can Left-Drag the hilighted area in the Map window to change the "
+"displayed portion of the layout.\n"
+msgstr ""
+"Durch Ziehen des hervorgehobenen Bereichs im Karten-Fenster können Sie den "
+"angezeigten Bereich des Gleisplans verändern.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:408
+msgid ""
+"You can also Right-Drag on the Map window to set the scale and position of "
+"the Main window.\n"
+msgstr ""
+"Sie können auch Rechts-Ziehen um den Maßstab und die Position des Gleisplans "
+"im Hauptfenster zu bestimmen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:409
+msgid ""
+"The <Note> command lets you attach notes to various spots on the layout.\n"
+msgstr ""
+"Der Befehl <Notiz> ermöglicht es, an unterschiedlichen Stellen des "
+"Gleisplans Notien anzubringen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:410
+msgid ""
+"When you place a note, the Note editor window is displayed which lets you "
+"enter the note.\n"
+msgstr ""
+"Wenn Sie eine Notiz anlegen, wird der Notizeditor geöffnet, der die Eingabe "
+"eines Textes ermöglicht.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:411
+msgid ""
+"If you click on a note in <Describe> mode the Note editor displays the "
+"note.\n"
+msgstr ""
+"Wenn Sie im <Beschreiben> Modus auf eine Notiz klicken, wird der Editor "
+"angezeigt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:412
+msgid "This is the end of the XTrackCAD Demos.\n"
+msgstr "Dies ist das Ende der XTrackCAD Demos.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:413
+msgid "Click Step to return to XTrackCAD.\n"
+msgstr "Klicken Sie auf Einzelschritt um zu XTrackCAD zurück zu kehren.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:414
+msgid "Thanks for watching.\n"
+msgstr "Danke für das Interesse.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:415
+msgid "This example shows how to create parallel tracks.\n"
+msgstr "Dieses Besipiel zeigt wie paralle Gleise erstellt werden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:416
+msgid ""
+"The separation is set in the <Parallel Separation> window. You should set "
+"this value before you begin to select tracks.\n"
+msgstr ""
+"Der Abstand wird im Fenster <Parallelabstand> eingestellt. Dies muss "
+"geschehen, bevor das Glaus ausgewählt wird.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:417
+msgid ""
+"You control which side the parallel track will be on by moving the cursor "
+"from one side of the track centerline to the other.\n"
+msgstr ""
+"Sie können steuern, auf welcher Seite das Parallalgleis erstellt wird, indem "
+"Sie den Mauszeiger von einer Seite derr Gleismitte auf die andere bewegen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:418
+msgid "When you release the mouse button the new parallel track is created.\n"
+msgstr ""
+"Sobald Sie den Mausknop loslassen, wird das parallele Gleis erstellt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:419
+msgid ""
+"Note that the <Parallel> command remains active after you created the "
+"track. This is controlled by the Sticky dialog in the Options menu.\n"
+msgstr ""
+"Beachten Sie, dass der Befehl <Parallelgleis> aktiv bleibt nachdem Sie das "
+"Gleis erstellt haben. Dies wird durch die Einstellungen in Wiederholte "
+"Befehle festgelegt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:420
+msgid "You cannot create a track parallel to a turnout.\n"
+msgstr "Zu einer Weiche können keine Parallelen erstellt werden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:421
+msgid ""
+"Note that the new curved track is automatically connected to the short "
+"parallel track.\n"
+msgstr ""
+"Beachten Sie, dass das neue gebogene Gleis automatisch mit dem kurzen "
+"parallelen Gleis verbunden wird.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:422
+msgid ""
+"Polylines and Polygons (created with the <Draw> command) can be modified by "
+"dragging on their Corners or Edges.\n"
+msgstr ""
+"Vielfachlinen und Vielecke, erstellt mit dem Befehl <Zeichnen> können durch "
+"Ziehen an den Ecken und Kanten verändert werden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:423
+msgid "If you select the middle of an Edge a new Corner is created.\n"
+msgstr ""
+"Wenn Sie die Mitte einer Kante auswählen, wird eine neue Ecke erzeugt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:424
+msgid ""
+"If you drag a Corner to another Corner the two are merged and the Edge "
+"between them is removed.\n"
+msgstr ""
+"Wenn Sie eine Ecke auf eine andere Ecke ziehen, werden diese zusammengefasst "
+"und die Kante dazwischen wird entfernt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:425
+msgid "But you cannot have a Poly-shape with less than 3 sides.\n"
+msgstr ""
+"Aber ein Vieleck oder eine Vielfachllinie mit weniger als drei Seiten ist "
+"nicht möglich.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:426
+msgid ""
+"To use the <Profile> command you first need to define Elevations on your "
+"layout.\n"
+msgstr ""
+"Um den Befehl <Höhenprofil> nutzen zu können, müssen Sie zuerst Höhen auf "
+"Ihrem Gleisplan festlegen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:427
+msgid "In this example we'll use the Elevations defined in the last example.\n"
+msgstr "In dieser Demo werden wird die Höhen aus der letzten Demo benutzen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:428
+msgid "You can move or resize the Profile dialog now if you want.\n"
+msgstr "Das Höhenprofil Fenster kann nun vergrößert werden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:429
+msgid ""
+"To show the Profile you need to select a Path on the tracks of your layout.\n"
+msgstr ""
+"Um das Höhenprofil anzeigen zu können muss eine Strecke in Ihrem Plan "
+"ausgewählt werden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:430
+msgid "Select a Defined Elevation point (marked by Gold dots).\n"
+msgstr "Eine beliebigen Punkt festgelegen, um das Höhenprofil zu beginnen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:431
+msgid "We will start with the right end of the siding.\n"
+msgstr "Wir starten am rechten Ende des Abstellgleises.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:432
+msgid ""
+"The second Point is at the left end of the siding. The Path will be drawn "
+"in Purple on the layout.\n"
+msgstr ""
+"Der zweite Punkt ist das linke Ende ds Nebengleises. Der Pfad wird in Purpur "
+"auf dem Gleisplan dargestellt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:433
+msgid "Now select the end of one of the Branches\n"
+msgstr "Jetzt wählen Sie das Ende eines der Abzweige aus.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:434
+msgid ""
+"The Profile line is drawn in Red. This indicates that there some turnouts "
+"on that section of the Path which have more than 2 connections.\n"
+msgstr ""
+"Das Höhenprofil wird in rot gezeichnet. Das bedeutet, dass es einige Weichen "
+"auf diesem Abschnitt des Pfads gibt, die nmehr als zwei Verbindungen haben.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:435
+msgid ""
+"The grade on this part of the Path is the average and may be affected by "
+"other Elevations, such the end of the lower branch.\n"
+msgstr ""
+"Die Steigung auf diesem Teil des Pfads ist ein Durchschnittswert und knn "
+"durch andere Höhen wie dem Ende des unteren Abzweigs beeinflusst werden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:436
+msgid "Now try to select the End-Point of the other branch.\n"
+msgstr "Versuchen Sie jetzt, den Endpunkt des anderen Abzweiges auszuwählen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:437
+msgid ""
+"You will get an error message because there is no route to one of the ends "
+"of the existing Path.\n"
+msgstr ""
+"Sie erhalten eine Fehlermeldung, da es keine Route zu einem der Endpunkte "
+"des existieren Pfades gibt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:438
+msgid ""
+"In this case remove the last part of the Path by clicking on current end of "
+"the Path and reselect the End-Point.\n"
+msgstr ""
+"In diesem Fall entfernen Sie den letzten Teil des Pfads indem Sie auf das "
+"das gegenwärtige Ende des Pfades klicken und den Endpunkt erneut festlegen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:439
+msgid "Notice that the Grade has changed on the Profile.\n"
+msgstr "Beachten Sie, dass sich die Steigung im Höhenprofil geändert hat.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:440
+msgid ""
+"You can Ignore End-Points on the Path by using Shift-Right-Click to display "
+"the Profile Options popup menu and chosing Ignore.\n"
+msgstr ""
+"Sie können Endpunkte auf dem Pfad ignorieren. Dazu halten Sie die "
+"Umschalttaste während Sie mit dem rechten Mausknopf klicjken. In den "
+"Höhenprofil-Optionen wählen Sie ignorieren.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:441
+msgid ""
+"Note: We can't show the menu in demo mode but we will show the effect of a "
+"Shift Right Click and selecting ignore. We will be Ignoring the End-Point "
+"of the Turnout that is not on the Path.\n"
+msgstr ""
+"Achtung: wir können das Menu im Demo-Modus nicht zeigen, zeigen aber den "
+"Effekt daraus. Wir werden den Endpunkt der Weiche, der nicht auf dem Pfad "
+"liegt, ignorieren.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:442
+msgid "Notice that part of the Profile line is redrawn in Blue.\n"
+msgstr ""
+"Beachten Sie, dass ein Teil des Höhenprofils in blauer Farbe neu gezeichnet "
+"wurde.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:443
+msgid ""
+"Also, the Computed Elevations and Grade marker on the right side of the "
+"layout have been updated.\n"
+msgstr ""
+"Außerdem wurden die berechneten Höhen und die Steigungsmarkierung auf der "
+"rechten Seite des Gleisplans aktualisiert.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:444
+msgid ""
+"You can set additional Defined Elevation points using the Profile Options "
+"popup menu. These points are added to the Profile if they are on the Path.\n"
+msgstr ""
+"Sie können weitere Punkte mit festgelegter Höhe zufügen, indem Sie das "
+"Optionsmenu für Höhenprofile benutzen. Diese Punkte werden zu dem "
+"Höhenprofil zugefügt, wenn Sie auf dem Pfad liegen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:445
+msgid ""
+"We do this by Shift Right Click to display the Profile Options popup menu "
+"and selecting Define.\n"
+msgstr ""
+"Dies geschieht durch durch Umschalt-Rechtsklick um das Optionsmenu für "
+"Höhenprofile zu erhalten uns auswählen von Festlegen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:446
+msgid ""
+"We've just added a Defined Elevation point to the middle of the lower "
+"branch. Notice the addition on the Profile dialog.\n"
+msgstr ""
+"Wir haben gerade eine festgelegte Höhe in der Mitte des unteren Abzweigs "
+"erstellt. Beachten Sie die Ergänzung im Höhenprofil.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:447
+msgid ""
+"For the siding we defined a Station name but it's not on the Path, since the "
+"Path takes the shortest distance between points.\n"
+msgstr ""
+"Für das Ausweichgleis haben einen einen Bahnhofsnamen vergeben. Dieser ist "
+"nicht auf dem Pfad, da ein Pfad immer den kürzesten Weg zwischen Punkten "
+"nutzt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:448
+msgid ""
+"We can Ignore one of the End-Points on a Turnout to force the Path to take "
+"the other route.\n"
+msgstr ""
+"Wir können durch Ignorieren eines des der Endpunkte an einer Weiche "
+"erzwingen, dass der Pfad die andere Route nimmt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:449
+msgid ""
+"Again we use Shift-Right-Click to display the Profile Options menu and "
+"select ignore.\n"
+msgstr ""
+"Wieder benutzen wir Umschalt-Rechtsklick um das Optionsmenu für das "
+"Höhenprofil anzuzeigen und wählen ignorieren.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:450
+msgid "Now remove the First section of the Path,\n"
+msgstr "Jetzt entfernen Sie den ersten Teil des Pfads\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:451
+msgid "and reselect it.\n"
+msgstr "und wählen ihn wieder.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:452
+msgid ""
+"Now the Path goes through the Station End-Point and the name appears on the "
+"Profile dialog.\n"
+msgstr ""
+"Jetzt führt der Pfad durch den Endpunkt am Bahnhof und der Name erscheint im "
+"Höhenprofil.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:453
+msgid "Now we need to increase the separation where the tracks cross.\n"
+msgstr ""
+"Jetzt müssen wir den Höhenunterschied an der Stelle vergrössern, an der die "
+"Gleise sich kreuzen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:454
+msgid ""
+"The two Elevations you see here are Computed Elevations which means "
+"XTrackCAD dynamically computes the Elevation based on the Elevations of "
+"connecting tracks.\n"
+msgstr ""
+"Die beiden Höhen die Sie hier sehen, sind berechnete Werte. Das bedeutet, "
+"dass XTrackCAD die Höhe auf Grundlage verbundener Gleise berechnet.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:455
+msgid ""
+"First make the lower End-Point a Defined Elevation point using Shift-Right-"
+"Click and the Profile Options menu. You will see the End-Point marked by a "
+"Gold dot and a new line is added to the Profile dialog.\n"
+msgstr ""
+"Markieren Sie zuerst den unteren Endpunkt als festgelegt. Dies geschieht "
+"durch Umschalt-Rechtsklick und das Optionsmenu für das Höhenprofil. Sie "
+"werden sehen, dass der Endpunkt jetzt mit einem goldenen Punkt markiert ist. "
+"Dem Höhenprofil wurde eine neue Linie zugefügt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:456
+msgid "Now, drag the point on the Profile Dialog to change the Elevation.\n"
+msgstr "Jetzt ziehen Sie den Punkt im Höhenprofil um die Höhe zu ändern.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:457
+msgid ""
+"Note the grade on each side of the point will be displayed at the bottom of "
+"the Profile dialog.\n"
+msgstr ""
+"Beachten Sie, dass die Steigung auf beiden Seiten des Punktes im "
+"Dialogfenster unten angezeigt wird.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:458
+msgid ""
+"After we release the Profile is updated to show the new Elevation and "
+"Grade.\n"
+msgstr ""
+"Nach dem Loslassen des Mausknopfes wird das Höhenprofil aktualisiert um die "
+"neue Höhe und Steigung anzuzeigen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:459
+msgid "The <Rescale> command will change the size of the selected objects.\n"
+msgstr "Der Befehl <Skalieren>verändert die Größe der ausgwählten Objekte.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:460
+msgid "First we will try rescaling by ratio.\n"
+msgstr "Zuerst skalieren wir über das Verhältnis.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:461
+msgid "We are going to make everything 150% bigger.\n"
+msgstr "Wir vergrößern alles auf 150 Prozent.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:462
+msgid "Note the track gauge did not change.\n"
+msgstr "Beachten Sie, dass die Spurweite nicht geändert wurde.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:463
+msgid "Let's try that again.\n"
+msgstr "Lassen Sie uns das nochmals versuchen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:464
+msgid "Now we are going to convert from one scale to another.\n"
+msgstr "Jetzt ändern wir von einem Maßstab zu einem anderen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:465
+msgid "We will convert everything from N scale to HO scale...\n"
+msgstr "Wir werden alles von Spur N nach Spur H0 umwandeln...\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:466
+msgid "and change the track gauge as well.\n"
+msgstr "und die Spurweite gleichzeitig ändern.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:467
+msgid "Note that the Title of the turnout did not change.\n"
+msgstr "Beachten Sie, dass der Titel der Weiche nicht geändert wurde.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:468
+msgid ""
+"The <Rotate> command will pivot the Selected objects. First Click on the "
+"pivot point and then drag to Rotate the objects.\n"
+msgstr ""
+"Der Befehl <Drehen> ermöglicht das Rotieren von ausgewählten Objekten. "
+"Klicken Sie zuerst auf das Zentrum der Drehbewegung und ziehen dann, um die "
+"Objekte zu drehen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:469
+msgid ""
+"In this example we will rotate the selected structure about it's center.\n"
+msgstr ""
+"In diesem Beispiel werden wir das Gebäude um seinen Mittelpunkt drehen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:470
+msgid ""
+"The <Rotate> command will restrict the rotation to increments of 15° if you "
+"hold down the Control key.\n"
+msgstr ""
+"Der Drehwinkel wird auf Vielfache von 15° begrenzt, wenn Sie die Steuerungs-"
+"Taste gedrückt halten.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:471
+msgid ""
+"Shift-Right-Click will display a popup-menu that you can use to rotate by "
+"fixed amount (15°, 30°, 45°, 90° or 180°). The demonstration cannot show "
+"the popup-menu but it can show the effects.\n"
+msgstr ""
+"Umschalten-Rechts-Klick öffnet ein Auswahlmenu, das Sie nutzen können um "
+"vorgegebene Werte für die Drehung (15°, 30°, 45°, 90° or 180°) auszuwählen. "
+"Diese Demonstration kann das Auswahlmenu nicht darstellen, aber sie zeigt "
+"den Effekt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:472
+msgid "Here we will rotate by 90° clockwise (CW).\n"
+msgstr "Jetzt drehen wir um 90° im Uhrzeigersinn.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:473
+msgid ""
+"Another option of the <Rotate> command popup-menu is to Align the Selected "
+"object with some other object.\n"
+msgstr ""
+"Der Befehl <Rotate> bietet auch die Möglichkeit, die ausgewählten Objekt an "
+"anderen Objekten auszurichten.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:474
+msgid ""
+"First we will click on one line of the Selected object. The angle of this "
+"part of the object will be Aligned.\n"
+msgstr ""
+"Zuerst klicken wir auf eine Linie des asgewählten Objektes. Diese Linie wird "
+"als Grundllinie für die Ausrichtung benutzt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:475
+msgid ""
+"Next, we click on an Unselected object. The Selected structure will be "
+"rotated so that the line we clicked on will be parallel to the straight "
+"track.\n"
+msgstr ""
+"Dann klicken wir auf ein Objekt, das nicht ausgewählt ist. Das ausgewählte "
+"Gebäude wird so gedreht, dass die gewählte Linie parallel zu dem geraden "
+"Gleis ist.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:476
+msgid ""
+"If we drag the mouse across the track, we can flip the structure by 180°. "
+"This is similar to how we place turnouts.\n"
+msgstr ""
+"Wenn wir die Maus auf die andere Seite des Gleises ziehen, wird das Gebäude "
+"um 180° gedreht. Dies ist vergleichbar zu dem Setzen von Weichen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:477
+msgid ""
+"We can also align to curved shapes. The Selected object will be rotated to "
+"be parallel to the curve under the cursor.\n"
+msgstr ""
+"Wir können auch an gebogenen Elementen ausrichten. Das ausgewählte Objekt "
+"wird so gedreht, dass es parallel dem Punkt der Kurve ist, der sich unter "
+"dem Mauszeiger befindet.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:478
+msgid ""
+"As we drag along the curved track the Selected object rotates to follow the "
+"curve.\n"
+msgstr ""
+"Während wir entlang des gebogenen Gleises ziehen, dreht sich das ausgewählte "
+"Objekt um der Kurve zu folgen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:479
+msgid "Again, if we drag across the track we can flip the stucture.\n"
+msgstr ""
+"Auch hier können wir das Gebäude spiegeln, indem wir auf die andere Seite "
+"ziehen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:480
+msgid "We can also Align to another Structure or any object.\n"
+msgstr ""
+"Wir können auch an anderen Gebäuden oder jedem anderen Objekt ausrichten.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:481
+msgid ""
+"The <Ruler> command draws a Ruler on the layout you can use to measure "
+"distances.\n"
+msgstr ""
+"Mit dem Befehl <Lineal> wird ein Lineal auf den Gleisplan gezeichnet. Dieses "
+"kann genutzt werden, um Abstände zu messen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:482
+msgid "If you press the <Ruler> command again the Ruler is removed.\n"
+msgstr ""
+"Wenn Sie den Befehl <Lineal> nochmals Anklicken, wird das Lineal wieder "
+"entfernt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:483
+msgid "But you can place it somewhere else.\n"
+msgstr "Aber Sie können dieses auch an eine andere Stelle versetzen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:484
+msgid "The <Select> command is used to select tracks.\n"
+msgstr "Der Befehl <Auswahl> wird benutzt, um Objekte auszuwählen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:485
+msgid "Selected tracks can be moved or rotated during the <Select> command.\n"
+msgstr "Ausgewählte Gleise können verschoben und gedreht werden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:486
+msgid "Selected tracks can also be deleted, hidden, listed and exported.\n"
+msgstr ""
+"Ausgewählte Gleise können auch gelöscht, verborgen, aufgelistet und "
+"exportiert werden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:487
+msgid "A single Left-Click selects tracks.\n"
+msgstr "Ein einfacher Klick mit der linken Maustaste wählt ein Gleis aus.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:488
+msgid "Selecting a selected track de-selects it.\n"
+msgstr ""
+"Durch wiederholtes Klicken wird die Auswahl des Gleises wieder aufgehoben.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:489
+msgid ""
+"Shift-Left-Click on a track will select all unselected tracks connected to "
+"the track. Selection stops at a previously selected track.\n"
+msgstr ""
+"Umschalt-Links-Klick auf ein Gleis wählt alle Gleise aus, die mit diesem "
+"verbunden sind. Der Vorgang bricht ab, sobald ein Gleis bereits ausgewählt "
+"ist.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:490
+msgid "Be careful with this because its easy to select all tracks this way.\n"
+msgstr ""
+"Seien Sie vorsichtig, denn es ist sehr einfach unbeabsichtigt alle Gleise "
+"auszuwählen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:491
+msgid "The <esc> key will deselect all objects.\n"
+msgstr "Mit der Taste <Esc> werden alle Objekte abgewählt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:492
+msgid "Left-Drag is used to select all objects within an area.\n"
+msgstr ""
+"Ziehen mit gedrückter linker Maustaste wählt alle Objekt in einem Bereich "
+"aus.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:493
+msgid "And Right-Drag de-selects all tracks within an area.\n"
+msgstr ""
+"Und Ziehen mit rechter gedrückter Maustaste entfernt alle Objekte in einem "
+"Bereich aus der Auswahl.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:494
+msgid "Shift-Left-Drag is used to move selected tracks.\n"
+msgstr ""
+"Links-Ziehen bei gedrückter Umschalt-Taste wird benutzt um die ausgewählten "
+"Gleise zu verschieben.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:495
+msgid ""
+"When you move selected tracks that are connected to unselected tracks, the "
+"tracks will be disconnected. These points are marked by a Red cross on the "
+"layout.\n"
+msgstr ""
+"Wenn Sie Gleise verschieben, die mit Gleisen verbunden sind, die nicht "
+"ausgewählt sind, wird die Verbindung gelöst. Diese Punkte werden durch ein "
+"rotes Kreuz auf dem Gleisplan markiert.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:496
+msgid ""
+"Drawing the tracks while moving can be very time-consuming. We had just "
+"used the \"Normal\" method of drawing tracks.\n"
+msgstr ""
+"Das Zeichnen der Gleise während des Verschieben kann die Bewegung sehr "
+"verzögern. Gerade haben wir die \"normale\" Methode des Zeichnen benutzt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:497
+msgid ""
+"The Command Options dialog (from the Options menu) contains a Radio button "
+"group which you can use to pick the drawing method.\n"
+msgstr ""
+"Im Dialogfenster Befehlsoptionen (aus dem Einstellungen Menu) können Sie die "
+"Zeichenmethode ändern.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:498
+msgid ""
+"You can also popup the Command Options Menu by pressing Shift-Right-Click "
+"which includes options for setting the drawing method. These options are "
+"also available for the Move and Rotate Command Options Menu.\n"
+msgstr ""
+"Sie können das Befehlsoptionen Menu auch aufrufen, indem sie Umschalt-Rechts-"
+"Klick betätigen. Diese Optionen sind auch für die Befehle Verschieben und "
+"Drehen vorhnden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:499
+msgid ""
+"The next method is \"Simple\" draws. Here tracks are drawn using one line, "
+"no End-Points are drawn, lines are not drawn and structures are drawn using "
+"a box outline.\n"
+msgstr ""
+"Die nächste Methode ist \"einfaches\" Zeichnen. Hier werden Gleise durch "
+"eine Linie dargestellt, Endpunkte und Linien werden nicht gezeichnet. "
+"Gebäude werden während der Operation durch ein Rechteck ersetzt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:500
+msgid ""
+"Note: you can move the Command Options dialog if it obscures the main "
+"window.\n"
+msgstr ""
+"Beachten Sie, dass Sie die das Dialogfenster Befehlsoptionen verschieben "
+"können, wenn es das Hauptfenster verdeckt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:501
+msgid ""
+"The next method is to just draw the End-Points of the selected tracks.\n"
+msgstr ""
+"Die nächste Methode ist das einfache Zeichnen der Endpunkte der ausgewählten "
+"Gleise.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:502
+msgid ""
+"Unconnected End-Points are indicated by Red crosses, and connected End-"
+"Points are indicated by Red lines.\n"
+msgstr ""
+"Nicht verbundene Endpunkte werden durch ein rotes Kreuz markiert, verbundene "
+"Endpunkte durch eine rote Linie.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:503
+msgid "Now we will go back to using the Normal method again.\n"
+msgstr "Jetzt gehen wir zu der normalen Methode zurück.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:504
+msgid ""
+"Shift-Right-Drag rotates the selected tracks about the pivot point (which is "
+"where you started the drag)\n"
+msgstr ""
+"Umschalt-Rechts-Ziehen dreht die ausgewählten Gleise um das Zentrum, der "
+"Punkt an dem Sie das Ziehen begonnen haben.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:505
+msgid ""
+"Next we select the <Join Tracks> command. You can use Shift-Left-Click to "
+"move an End-Point of a selected track to join with an unselected track.\n"
+msgstr ""
+"Jetzt wählen wir den Befehl <Verbinde Gleise>. Mit Umschalt-Links-Klick "
+"können Sie einen Endpunkt von ausgewählten Gleisen mit einem nicht "
+"ausgewählten Gleis verbinden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:506
+msgid ""
+"Note: because of differing display resolutions the next mouse click may not "
+"be positioned correctly in this demo and the Move-To-Join operation may not "
+"be demonstrated.\n"
+msgstr ""
+"Beachten Sie dass der Befehl \"Verbinden durch Bewegen\" in der Demo nicht "
+"gezeigt werden kann.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:507
+msgid "The <Split> command is used to split and disconnect tracks.\n"
+msgstr ""
+"Der Befehl <Trennen> wird benutzt, um Gleise zu zerteilen und voneinander zu "
+"trennen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:508
+msgid "Simply select the spot on the track you want to split.\n"
+msgstr ""
+"Wählen Sie einfach die Stelle des Gleises aus, an der dieses getrennt werden "
+"soll.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:509
+msgid "You cannot split turnouts (unless you hold down the Shift key).\n"
+msgstr ""
+"Weichen können nur getrennt werden, wenn Sie die Umschalttaste drücken.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:510
+msgid ""
+"If you split at spot that is already an End-Point between two tracks, or "
+"split twice at the same spot, the track is disconnected.\n"
+msgstr ""
+"Wenn Sie an einem vorhandenen Endpunkt zerteilen oder wenn die an einer "
+"Stelle doppelt zerteilen werden die Gleise getrennt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:511
+msgid "The <Tunnel> command marks selected tracks as hidden.\n"
+msgstr "Mit dem Befehl <Tunnel> verbergen Sie die ausgewählten Gleise.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:512
+msgid ""
+"A tunnel portal is drawn at the boundary between hidden and normal track.\n"
+msgstr ""
+"Ein Tunnelportal wird am Übergang zwischen sichtbarem und verborgenem Gleis "
+"gezeichnet.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:513
+msgid ""
+"How the hidden tracks are drawn (solid, dashed or invisible) is controlled "
+"by the Draw EndPts radio button group on the Setup dialog.\n"
+msgstr ""
+"Die Darstellung des verborgenen Gleises (durchgezogen, gestrichelt oder "
+"unsichtbar) kann in den Einstellungen festgelegt werden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:514
+msgid ""
+"To 'un-hide' a track just Select it again and click the Tunnel button.\n"
+msgstr ""
+"Um die Gleise wieder sichtbar zu machen, wählen Sie diese aus und "
+"wiederholen den Befehl <Tunnel>.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:515
+msgid ""
+"Straight tracks are created by selecting the first End-Point of the track.\n"
+msgstr ""
+"Gerade Gleise werden erstellt indem der erste Endpunkt des Gleises gewählt "
+"wird.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:516
+msgid "Then the other End-Point is dragged to its final postion.\n"
+msgstr ""
+"Dann wird der zweite Endpunkkt durch Ziehen an die richtige Position "
+"gebracht.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:517
+msgid "The left mouse button is released at the final end postion.\n"
+msgstr "An diesem Punkt wird der linke Mausknopf los gelassen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:518
+msgid ""
+"Table Edges are used to mark the edges of the layout, either for aisles or "
+"room walls.\n"
+msgstr ""
+"Tischkanten werden benutzt um die Ränder des Gleisplans, entweder für "
+"Zugänge oder Wände benutzt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:519
+msgid "A Table Edge is attracted to the ends of other Table Edges.\n"
+msgstr ""
+"Eine Tischlante wird von den Enden anderer Tischkantenlinien angezogen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:520
+msgid "Table Edges can be modified by dragging on their ends.\n"
+msgstr "Tischkanten können durch Ziehen an den Enden geändert werden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:521
+msgid ""
+"If you hold down the Control key while dragging then the Table Edge will be "
+"attracted to other objects.\n"
+msgstr ""
+"Wenn Sie die Strg-Taste während des Ziehens gedrückt halten, wird die "
+"Tischkante von anderen Objekten angezogen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:522
+msgid ""
+"These examples shows some of the various Turnout Designer windows. Each "
+"window defines a different type of turnout.\n"
+msgstr ""
+"Diese Beispiele zeigen einige der Dialogfenster des Weichendesigner. Jeder "
+"Dialog wird für einen anderen Typ von Weichen benutzt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:523
+msgid ""
+"In each window there are a number of parameters to fill in and one or two "
+"description lines.\n"
+msgstr ""
+"In jedem Dialog müssen einige Parameter und eine oder zwei Zeilen "
+"Beschreibungen eingetragen werden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:524
+msgid "You can print the design to check the dimensions before saving them.\n"
+msgstr ""
+"Sie können den Entwurf vor dem Speichen ausdrucken. Damit können Sie zur "
+"Kontrolle die Abmessungen prüfen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:525
+msgid "This is the regular turnout.\n"
+msgstr "Dies ist eine normale Weiche.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:526
+msgid ""
+"In addition to the dimensions, you also enter the Title (Manufacturer, "
+"Description and Part Number). For Turnouts with Left and Right hand "
+"versions there are separate Descriptions and Part Numbers.\n"
+msgstr ""
+"Neben den Abmessungen müssen auch die Beschreibung der Weiche, d.h. "
+"Hersteller, Beschreibung und Teilenummer, eingegeben werden. Für Weichen mit "
+"rechten und linken Abzweigen werden die Beschreibung und die Teilenummern "
+"getrennt erfasst.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:527
+msgid ""
+"Some Turnouts and Sectional track are pre-mounted on roadbed. For these "
+"parts you can specify the width of the roadbed, the thickness of the lines "
+"drawn for the edge of the roadbed and the color.\n"
+msgstr ""
+"Einige Weichen und Festgleise besitzen ein festes Gleisbett. Für diese Teile "
+"können Sie die Breite des Gleisbetts und Dicke und Farbe der "
+"Begrenzungslinien festlegen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:528
+msgid "The double slip switch is described by only a few parameters.\n"
+msgstr ""
+"Für eine doppelte Kreuzungsweiche wird durch wenige Daten festgelegt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:529
+msgid "The double crossover only needs length and track separation.\n"
+msgstr ""
+"Eine doppelter Gleiswechsel erfordert nur die Gleislänge und den "
+"Gleisabstand.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:530
+msgid ""
+"Pressing the turnout button displays the Turnout Selection window to let you "
+"choose a turnout to place.\n"
+msgstr ""
+"Durch Drücken des Knopfes <Weiche> wird das Weichenauswahl-Fenster geöffnet. "
+"Hier können Sie eine Weiche auswählen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:531
+msgid ""
+"Note that once you start to place the turnout on the Main window the Turnout "
+"Selection window disappears. This feature is enabled by the Hide toggle "
+"button on the dialog.\n"
+msgstr ""
+"Beachten Sie, dass das Weichenauswahl-Fenster verschwindet sobald Sie mit "
+"dem Legen der Weiche beginnen. Diese Eigenschaft wird durch den 'Verbergen' "
+"Schalter des Dialogs eingeschaltet.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:532
+msgid ""
+"You can place the turnout on a arbitrary position on the layout. Left-drag "
+"the turnout into place...\n"
+msgstr ""
+"Sie können die Weiche an eine beliebigen Position auf dem Gleisplan legen. "
+"Ziehen Sie die Weiche an den richtigen Platz...\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:533
+msgid "Then you can rotate the turnout by Right dragging.\n"
+msgstr ""
+"Dann können Sie die Weiche durch Ziehen mit der rechten Maustaste drehen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:534
+msgid ""
+"You can also use Shift-Right-Click to display a popup menu that lets you "
+"rotate the Turnout by specific angles.\n"
+msgstr ""
+"Sie können mit Umschalten-Rechts-Klick ein Fenster öffnen, das das Drehen um "
+"feste Winkel ermöglicht.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:535
+msgid ""
+"When you are satisfied with the position and orientation of the turnout "
+"press Space bar or the Return key on the keyboard to finish placing the "
+"turnout.\n"
+msgstr ""
+"Wenn Sie mit der Position und der Ausrichtung der Weiche zufrieden sind, "
+"drücken Sie Leertaste oder die Eingabetaste der Tastatur um den Befehl "
+"abzuschliessen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:536
+msgid ""
+"Pressing the Ok button on the Turnout dialog will end the <Turnout> command "
+"as well as placing the turnout.\n"
+msgstr ""
+"Auch durch Drücken der OK-Taste im Dialogfenster können Sie den Befehl "
+"beenden und die Weiche festlegen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:537
+msgid ""
+"If you drag along an existing track the new turnout will be attached to the "
+"track.\n"
+msgstr ""
+"Wenn Sie die Weiche auf existierendes Gleis ziehen, so wird sie mit dem "
+"Gleis verbunden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:538
+msgid ""
+"Note that the status line tells you the number of End-Points that would be "
+"connected and, the maximum displacement of the End-Points. This will be "
+"useful when building complex track, as we will see later.\n"
+msgstr ""
+"Beachten Sie, dass in der Statuszeile angezeigt wird. wieviele Endpunkte der "
+"Weiche verbunden würden und wie groß der maximale Abstand zu den Endpunkten "
+"ist. Wie wir später sehen werden ist diese Information hilfreich, um "
+"komplexe Gleiskonfigurationen zu erstellen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:539
+msgid ""
+"By moving the cursor from one side to the other of the track centerline you "
+"can flip the turnout 180°.\n"
+msgstr ""
+"Durch Bewegen des Mauszeiger von einer Seite des Gleises auf die andere wird "
+"die Weiche um 180° gedreht.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:540
+msgid ""
+"If you try to drag across another turnout the new turnout will placed at the "
+"nearest End-Point of the existing turnout.\n"
+msgstr ""
+"Wenn Sie die neue Weiche über eine existierende Weiche ziehen, wird die neue "
+"Weiche mit dem nächstgelegenen Endpunkt der vorhandenen Weiche verbunden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:541
+msgid ""
+"When you press Space or Return while the turnout is on a track, the track "
+"will be split and the new turnout attached automatically.\n"
+msgstr ""
+"Wenn Sie die Leer- oder die Eingabetaste drücken während die Weiche auf "
+"einem Gleis ist, wird dieses Gleis getrennt und die Weiche wird automatisch "
+"verbunden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:542
+msgid "Pressing Close ends the <Turnout> command.\n"
+msgstr "Durch Drücken von <Schliessen> wird der Befehl <Weiche> beendet.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:543
+msgid "Sometimes it's useful to modify turnouts triming one of the ends.\n"
+msgstr ""
+"Manchmal ist es sinnvoll, eine Weich durch Kürzen der Enden anzupassen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:544
+msgid "We use the <Split> command for this.\n"
+msgstr "Dafür benutzen wir den Befehl <Trennen>.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:545
+msgid "Normally, if we try to Split a turnout we get an error message.\n"
+msgstr ""
+"Normalerweise bekommen wir eine Fehlermeldung, wenn wir versuchen eine "
+"Weiche zu trennen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:546
+msgid "Hold down the Shift key and try again.\n"
+msgstr ""
+"Drücken und halten Sie die Umschalten-Taste und versuchen es nochmals.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:547
+msgid ""
+"The end of the turnout has been replaced by a piece of straight flex track "
+"which we can modify.\n"
+msgstr ""
+"Das Ende der Weiche wurde durch ein Stück gereden Gleises ersetzt. Dieses "
+"können wir verändern.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:548
+msgid "We can try splitting the diverging leg.\n"
+msgstr "Wir können versuchen, das abzweigende Gleis zu trennen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:549
+msgid ""
+"Notice that the tail of the diverging leg has been changed to a curved "
+"track...\n"
+msgstr ""
+"Beachten Sie, dass das abzweigende Gleis in ein gebogenes Gleis umgewandelt "
+"wurde...\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:550
+msgid "and a straight track.\n"
+msgstr "und ein gerades Gleis.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:551
+msgid ""
+"This example show how to layout a yard using the <Turnout> and <Parallel> "
+"commands.\n"
+msgstr ""
+"Dieses Beispiel zeigt wie mit den Befehlen <Weiche> und <Paralleles Gleis> "
+"eine Gleisharfe erstellt werden kann.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:552
+msgid ""
+"You can resize and move the Turnout Selection dialog if it obscures the "
+"other windows.\n"
+msgstr ""
+"Sie können den Weichenauswahl-Dialog verkleinern und verschieben, wenn er "
+"andere Fensterbereiche verdeckt.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:553
+msgid "First we place a turnout on the main line.\n"
+msgstr "Zuerst legen wir eine Weiche auf das Hauptgleis.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:554
+msgid "Next extend the turnout with the <Modify> command.\n"
+msgstr "Dann erweitern wir die Weiche mit dem Befehl <Verändern>.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:555
+msgid ""
+"Now create a track parallel to the main line. Make sure the separation is "
+"reasonable for your scale.\n"
+msgstr ""
+"Jetzt erstellen Sie ein Gleis, das parallel zum Hauptgleis liegt. Stellen "
+"Sie sicher, dass der Gleisabstand für Ihren Maßstab geeignet ist.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:556
+msgid "And place a turnout to connect the new track.\n"
+msgstr "Und legen eine Weiche, um das neue Gleis anzuschliessen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:557
+msgid "We'll zoom in here to see what's going on.\n"
+msgstr "Durch Vergrößern können wir sehen, was passiert.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:558
+msgid ""
+"Notice how we control which way the turnout is facing by moving the mouse "
+"across the center line of the track.\n"
+msgstr ""
+"Beachten Sie wie wir die Ausrichtung der Weiche beeinflussen indem wir die "
+"Maus über die Mittellinie des Gleise bewegen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:559
+msgid ""
+"The Status bar displays the number of auto-connections that will be made and "
+"the maximum offset.\n"
+msgstr ""
+"In der Statuszeile wird angezeigt, wieviele Endpunkte verbunden werden und "
+"wie große der maximale Abstand ist.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:560
+msgid ""
+"XTrackCAD adjusts the turnout position for the best fit to minimize any "
+"connection offset\n"
+msgstr ""
+"XTrackCAD verändert die Weichenposition um die beste Einpassung zu "
+"erreichen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:561
+msgid "Note that placing the turnout splits the parallel track.\n"
+msgstr ""
+"Beachten Sie, dass durch die Weiche das parallele Gleis getrennt wurde.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:562
+msgid "We have to delete the leftover piece by Selecting and Deleting it.\n"
+msgstr "Dieses Reststück müssen wir auswählen und löschen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:563
+msgid "Repeat the process for the other tracks in the yard.\n"
+msgstr "Wiederholen Sie diesen Ablauf für die anderen Gleise der Gleisharfe.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:564
+msgid "For the last track we will join with a curve instead of a turnout.\n"
+msgstr ""
+"Beim letzten Gleis benutzen wir einen Gleisbogen anstelle einer Weiche.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:565
+msgid "We can indicate the mainline by making the rails wider.\n"
+msgstr ""
+"WIr können die Hauptstrecke hervorheben, in dem wir die Gleise dicker "
+"zeichnen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:566
+msgid "First we select the mainline tracks...\n"
+msgstr "Zuerst wählen wir die Gleise der Hauptstrecke aus...\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:567
+msgid "And then select Medium Tracks from the Edit menu.\n"
+msgstr "und wählen dann Mittlere Stärke aus dem Bearbeiten Menu aus.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:568
+msgid "We can make the rail thicker by selecting Thick Tracks.\n"
+msgstr ""
+"Wir können das Gleis durch die Auswahl Breite Linie dicker darstellen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:569
+msgid ""
+"Turntables are created by specifying the radius in a dialog box on the "
+"Status Bar. The radius in the dialog can be changed before proceeding.\n"
+msgstr ""
+"Beim Erstellen von Drehscheiben muss der Radius in einem Dialog in der "
+"Statuszeile eingegeben werden. Der Radius muss vor den nächsten Schritten "
+"geändert werden.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:570
+msgid "Then the turntable is dragged to its final location.\n"
+msgstr "Dann wird die Drehscheibe an die endgültige Position geschoben.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:571
+msgid ""
+"XTrackCAD provides demonstrations on most of the program's features. The "
+"demos can be run by clicking on the Help menu on the Main window and then "
+"selecting Demos."
+msgstr ""
+"XTrackCAD verfügt über Demos der meisten Funktionen. Diese Demos können "
+"abgespielt werden indem im Hilfe Menü des Hauptfensters der Punkt \"Demos\" "
+"ausgewählt wird."
+
+#: ../../../../build/work/app/i18n/custmsg.h:572
+msgid ""
+"The notation \"Menu|Item\" is used in the documentation (and the on-line "
+"demos and tips) to indicate the selection of a menu item.\n"
+"For example File|Open means to open the menu by clicking on File on the menu "
+"bar of the Main window and then selecting the Open item from that menu."
+msgstr ""
+"Die Darstellunsgart \"Menü|Unterpunkt\" wird in der Dokumentation den Online "
+"Demos und im Tipp des Tages verwendet, sie dient dazu die Selektion eines "
+"Unterpunktes zu beschreiben.\n"
+"\"Datei|Öffnen\" bedeutet zum Beispiel in der Menüleiste des Hauptfensters "
+"auf Datei zu klicken und dann im aufgehenden Untermenü auf die Auswahl Punkt "
+"Öffnen."
+
+#: ../../../../build/work/app/i18n/custmsg.h:573
+msgid ""
+"A number of example layouts are provided. These files are located in the "
+"'examples' directory where you installed XTrackCAD. The \"File|Open\" "
+"command will open that directory when first used."
+msgstr ""
+"Einige Beispiel Gleisplänen stehen zu Ihrer Verfügung, diese wurden im "
+"Unterverzeichnis 'examples' im Haupverzeichnis von XTrackCAD installiert. "
+"Über den Dialog \"Datei|Öffnen\" können diese geladen werden."
+
+#: ../../../../build/work/app/i18n/custmsg.h:574
+msgid ""
+"When installed, the program measures all units in inches. You can change "
+"this on the \"Options|Preferences\" dialog by changing the Units item to "
+"Metric instead of English."
+msgstr ""
+"Nach Installation werden sämtliche Einheiten in Inches dargestellt. Diese "
+"Einstellung können Sie über den Dialog \"Optionen|Einstellungen\" ändern, "
+"indem Sie von Englisch auf Metrisch wechseln."
+
+#: ../../../../build/work/app/i18n/custmsg.h:575
+msgid ""
+"You can change the overall size of your layout on the \"Options|Layout\" "
+"dialog."
+msgstr ""
+"Die Gesamtgröße Ihres Gleisplans kann über den Dialog \"Optionen|Gleisplan\" "
+"eingestellt werden."
+
+#: ../../../../build/work/app/i18n/custmsg.h:576
+msgid ""
+"When installed, the default command is the Describe command. More "
+"experienced users will probably want to change this to the Select command. "
+"You can do this on the \"Options|Command Options\" dialog."
+msgstr ""
+"Nach Installation ist der Standardbefehl das \"Eigenschaften\" Kommando. "
+"Erfahrene Benutzer möchten dies vielleicht in das \"Auswählen\" Kommando "
+"ändern. Dies kann über den Dialog \"Optionen|Befehl\" unter Standardbefehl "
+"erfolgen."
+
+#: ../../../../build/work/app/i18n/custmsg.h:577
+msgid ""
+"Set your modeling scale on the \"Options|Layout\" dialog. This controls the "
+"Turnouts and Structures that are available, Easement values and track gauge."
+msgstr ""
+"Stellen Sie im \"Optionen|Gleisplan\" Dialog Maßstab und Spurweite für Ihren "
+"Gleisplan ein. Diese Grundeinstellung sollte unbedingt als erstes "
+"vorgenommen werden, damit der neu eingestellte Maßstab mit dem Maßstab der "
+"geladenen Parameterdatei übereinstimmt."
+
+#: ../../../../build/work/app/i18n/custmsg.h:578
+msgid ""
+"When Selecting tracks, the connection between Selected and Unselected tracks "
+"is marked by a Red X. This indicates points where the connection between "
+"tracks will be broken if you Move or Rotate the Selected tracks."
+msgstr ""
+"Bei ausgewählten Gleisen wird die Verbindung des Gleises durch ein rotes X "
+"markiert, genau an dieser Stelle wird das Gleis getrennt wenn es verschoben "
+"oder gedreht wird."
+
+#: ../../../../build/work/app/i18n/custmsg.h:579
+msgid ""
+"You can change orientation of the pages on the Print command by moving or "
+"rotating the Print Grid.\n"
+"Shift-Left-Drag moves the grid and Shift-Right-Drag rotates the grid."
+msgstr ""
+"Die Ausrichtung von auszudruckenden Seiten kann geändert werden indem das "
+"Druckraster bewegt oder rotiert wird.\n"
+"Shift Taste nach links ziehen bewegt das Raster, Shift Taste nach rechts "
+"ziehen rotiert das Raster."
+
+#: ../../../../build/work/app/i18n/custmsg.h:580
+msgid ""
+"You can add track to any unconnected End-Point with the Modify command.\n"
+"Hold down the Shift key and click on the End-Point and drag away to create a "
+"new track segment attached to the End-Point.\n"
+"Repeat with the new End-Point to create flowing tracks."
+msgstr ""
+"Gleise können zu jedem unverbundenen Endpunkt mit \"Verändern\" hinzugefügt "
+"werden.\n"
+"Um einen neuen Gleisabschnitt zu erstellen, markieren Sie einen Endpunkt, "
+"halten Sie dann die Shift-Taste gedrückt während Sie den Gleisabschnitt "
+"verschieben.\n"
+"Wiederhohlen Sie diese Aktion mit diesem neuen Endpunkt um Gleisabschnitte "
+"weiter zu zerlegen."
+
+#: ../../../../build/work/app/i18n/custmsg.h:581
+msgid ""
+"You can create Curved tracks in four ways by dragging from:\n"
+" the 1st End-Point in the direction of the curve\n"
+" Center of the Curve to the 1st End-Point\n"
+" End-Point to the Center\n"
+" the 1st to 2nd End-Point\n"
+"Then drag on one of the Red arrows to create the final shape of the curve.\n"
+"\n"
+"You can click on the small button to the left of the Curve command button to "
+"change the method."
+msgstr ""
+"Gebogene Gleise können auf vier verschiedene Weisen erstellt werden:\n"
+" vom ersten Endpunkt in Richtung der Kurve\n"
+" vom Mittelpunkt des Gleisbogens zum ersten Endpunkt\n"
+" vom Endpunkt zum Mittelpunkt hin\n"
+" vom ersten zum zweiten Endpunkt\n"
+"Ziehen Sie dann an einem der beiden roten Pfeile, um die endgültige Kurve "
+"festzulegen.\n"
+"Die verschiedenen Methoden zur Gleisbogenerstellung können durch Anklicken "
+"des Knopfes rechts neben dem Kurvenknopf in der Werkzeugleiste ausgewählt "
+"werden ."
+
+#: ../../../../build/work/app/i18n/custmsg.h:582
+msgid ""
+"When creating a straight or a curved track by dragging from the 1st End "
+"Point, you can snap the new track to an existing open end point by holding "
+"down Shift while you click.\n"
+"The new track will be joined to the old when you create it."
+msgstr ""
+"Beim Erstellen eines geraden oder eines gebogenen Gleise durch Ziehen vom "
+"ersten Endpunkt kann das neue Gleis an dem existierenden Endpunkt "
+"ausgerichtet werden, in dem die Umschalt-Taste beim Klicken gedrückt wird.\n"
+"Das neue Gleis wird beim Erstellen mit dem vorhandenen Gleis verbunden."
+
+#: ../../../../build/work/app/i18n/custmsg.h:583
+msgid ""
+"Track Circles provide a quick way to see what arrangement of tracks will fit "
+"in your layout spaces. Create Circles with your typical radius and place "
+"them in corners and other locations where your main-line will make changes "
+"of direction. This will give you an overall idea of how your layout will "
+"look.\n"
+"\n"
+"You can create Circles by:\n"
+" using a fixed radius\n"
+" dragging from the Center to edge\n"
+" dragging from an edge to the Center\n"
+"You can click on the small button to the left of the Circle command button "
+"to change the method."
+msgstr ""
+"Gleiskreise ermöglichen einen schnellen Weg die Aufteilung Ihres Gleisplans "
+"in den vorhanden Platz einzuteilen. Erstellen Sie Gleiskreise mit üblichen "
+"Radien und platzieren Sie diese in Ecken oder an beliebigen Stellen Ihres "
+"Hauptgleises an denen ein Richtungswechsel statt finden soll. Dies wird "
+"Ihnen helfen einen ersten Überblick von Ihrem gesamten Gleisplan zu "
+"erhalten.\n"
+"\n"
+"Gleiskreise können wie folgt erzeugt werden:\n"
+" mit einem festgelegten Radius\n"
+" durch ziehen aus der Mitte zur Kante\n"
+" durch ziehen von der Kante zur Mitte\n"
+"Die verschiedenen Methoden zur Gleiskreiserstellung können ausgewählt werden "
+"durch anklicken des Knopfes rechts neben dem Greisknopf in der "
+"Werkzeugleiste."
+
+#: ../../../../build/work/app/i18n/custmsg.h:584
+msgid ""
+"Easements (spiral transition curves) are used when track changes from "
+"straight to curved by gradually changing the radius. This improves "
+"operation and appearance.\n"
+"Easements are created with Joining or Extending Tracks.\n"
+"The Easement dialog is used to control easements."
+msgstr ""
+"Übergangsbögen werden benutzt wenn gerades Gleis stufenweise bei sich "
+"änderndem Radius in kurviges Gleis ändert, Dies verbessert die Benutzbarkeit "
+"und verschönert das Erscheinungsbild.\n"
+"Übergangsbögen werden erstellt indem sie an vorhandene Gleise angeängt "
+"werden.\n"
+"Die Schaltfläche \"Easement None\" wird verwendet um die Einstellungen für "
+"Übergangsbögen vornehmen zu können."
+
+#: ../../../../build/work/app/i18n/custmsg.h:585
+msgid ""
+"\"Help|Recent Messages\" shows the last error and warning messages that were "
+"generated by the program. Also an explanation of each message is displayed."
+msgstr ""
+"\"Hilfe|Letzte Mitteilungen\" zeigt die letzen Fehler/Warnungen an die vom "
+"Programm veruhrsacht wurden. Weiterhin wird eine Erklärung zu jeder Meldung "
+"angezeigt."
+
+#: ../../../../build/work/app/i18n/custmsg.h:586
+msgid ""
+"When creating stall tracks for a turntable, you usually want the the stall "
+"tracks to be spaced evenly.\n"
+"The \"Turntable Angle\" item on \"Options|Command Options\" dialog can be "
+"used specify the minimum angle between stall tracks."
+msgstr ""
+"Beim Anschluss von Endgleisen an eine Drehscheibe, möchte man diese "
+"üblicherweise gleichmäßig anschließen.\n"
+"Der Punkt \"Drehscheibenwinkel\" im Dialog \"Optionen|Einstellungen\" kann "
+"dazu benutzt werden den kleinst möglichen Winkel, beim Anschluss solcher "
+"Gleise einzustellen."
+
+#: ../../../../build/work/app/i18n/custmsg.h:587
+msgid ""
+"XTrackCAD periodically saves the current layout in a check point file. The "
+"'Check Point' item on the 'Options|Preferences' dialog controls how often "
+"the file is saved.\n"
+"You can recover your working file after a system crash by copying the "
+"checkpoint file (xtrkcad.ckp in the XTrackCAD Working directory) to file.xtc"
+msgstr ""
+"XTrackCAD sichert ständig ihre aktuelle Arbeit in eine temporäre Datei. Im "
+"Feld 'Sicherungskopie' unter dem Menüpunkt 'Optonen|Einstellungen' können "
+"Sie die Häufigkeit dieser automatischen Sicherung festlegen.\n"
+"Nach einem System/Programm Absturz kopieren Sie einfach die Datei xtrkcad."
+"ckp (im Arbeitsverzeichnis von XTrackCAD) nach <Geisplan>.xtc"
+
+#: ../../../../build/work/app/i18n/custmsg.h:588
+msgid ""
+"The Parallel command is helpful to layout yards and sidings. If the "
+"Parallel track abuts with an existing track, it is automatically connected."
+msgstr ""
+"Das Parallel Kommando ist nützlich um Bahnhöfe und Abstellgeise zu "
+"erstellen. Falls sich ein parallel Gleis mit einem existierenden Gleis fast "
+"berührt wird dieses automatisch verbunden."
+
+#: ../../../../build/work/app/i18n/custmsg.h:589
+msgid ""
+"You can use Shift-Drag in Select command to move and rotate selected "
+"tracks.\n"
+"Shift-Left-Drag moves tracks and Shift-Right-Drag rotates them.\n"
+"Control-Left-Drag can move labels."
+msgstr ""
+"Gleise können verschoben oder rotiert werden indem sie mit Hilfe des "
+"\"Ändern|Auswählen\" Kommandos ausgewählt werden und dann druch "
+"gleichzeitiges festhalten der Shift-Taste und einer Maustaste bewegt "
+"werden.\n"
+"Shift und linke Maustaste verschiebt ein Gleis.\n"
+"Shift und rechte Maustaste rotiert ein Gleis.\n"
+"Steuerung und linke Maustaste verschiebt Beschreibungen."
+
+#: ../../../../build/work/app/i18n/custmsg.h:590
+msgid ""
+"You can move and rotate the Snap Grid to align with existing track or "
+"benchwork."
+msgstr ""
+"Das Fangraster kann bewegt oder gedreht werden um es an Gleisen oder "
+"Aufbauten ausrichten zu können."
+
+#: ../../../../build/work/app/i18n/custmsg.h:591
+msgid ""
+"Use the Parts List command to measure track length.\n"
+"Select the tracks you want to measure and then click on the Parts List "
+"button. The report will list the total of length of the selected flex-"
+"track. You will have to add in the length of any Turnouts."
+msgstr ""
+"Der Dialog \"Verwalten|Teileliste\" kann dazu benutzt werden Gleislängen zu "
+"messen.\n"
+"Markieren Sie die zu messenden Gleise und wählen Sie den Teileliste Punkt. "
+"Die auftauchende Liste zeigt die Länge der ausgewählten Gleise an. Die Länge "
+"der Weichen muss hinzugezählt werden.\n"
+"Hinweis: Dies funktioniert nur für Flex-Gleise!"
+
+#: ../../../../build/work/app/i18n/custmsg.h:592
+msgid ""
+"The length of flex-track attached to each Turnout is displayed on layout "
+"near the end-points of the Turnouts.\n"
+"Make sure 'Lengths' option of the 'Label Enable' toggle button on the "
+"Display dialog is selected."
+msgstr ""
+"Die Länge von Flex-Gleis welches mit Weichen verbunden ist wird in der Nähe "
+"des Endpunktes der Weiche angezeigt.\n"
+"Stellen Sie sicher das der Auswahlpunkt \"Längen\" im Dialog \"Optionen|"
+"Anzeige\" ausgewählt ist."
+
+#: ../../../../build/work/app/i18n/custmsg.h:593
+msgid ""
+"The Profile command can be used to find the length of a continous section of "
+"track.\n"
+"Select the track at the beginning and end of the section. The total length "
+"of track will be displayed on the Profile window in the lower right corner.\n"
+"Note: the Profile selects the shortest path between the two selected tracks, "
+"which might not be the path you are interested in. In this case, select the "
+"first track and then select other tracks along the path."
+msgstr ""
+"Das Kommando \"Höhenprofil\" im Menü \"Ändern\" kann dazu benutzt werden um "
+"die Länge einer zusammenhängenden Gleissektion heraus zu finden.\n"
+"Markieren Sie den Anfang und das Ende dieser Sektion. Die totale Länge "
+"dieser Gleissektion wird in der unteren rechten Ecke des Höhenprofil "
+"Fensters angezeigt.\n"
+"Hinweis: Das Höhenprofil wählt immer den kürzesten Weg zwischen beiden "
+"markierten Gleisen, möglicherweise ist dies aber nicht die Länge an der Sie "
+"interresiert sind. In diesem Fall wählen Sie einfach den gleichen Startpunkt "
+"und den nächst frührer möglichen Endpunkt aus."
+
+#: ../../../../build/work/app/i18n/custmsg.h:594
+msgid ""
+"Layers can be used to contain different groups of tracks or other features. "
+"You might use one layer for the main-line, another of staging tracks and "
+"another of benchwork.\n"
+"You can give each layer a name (by using the Layer dialog). This name will "
+"be displayed as the Balloon Help for the corresponding Layer button, if you "
+"have Balloon Help enabled on the Display dialog."
+msgstr ""
+"Ebenen können dazu benutzt werden um verschiedene Stockwerke oder Funktionen "
+"darstellen zu können. Eine Ebene kann z.B. für das Hauptgleis verwendet "
+"werden, eine weitere für Schattenbahnhöfe und eine weitere für Aufbauten und "
+"oder Tunnnel.\n"
+"Jeder Ebene kann ein Name über den \"Verwalten|Ebenen\" Dialog zugewiesen "
+"werden. Falls die Auswahl \"Sprechblasen\" im Menü \"Optionen|Einstellungen"
+"\" aktiviert wurde, wird dieser vergebene Name in der Werkzeugleiste für "
+"diese Ebene angezeigt."
+
+#: ../../../../build/work/app/i18n/custmsg.h:595
+msgid ""
+"You can remove groups of buttons or the Hot Bar from the Main window to give "
+"you more room if you are not using some features. Also, the number of Layer "
+"buttons displayed is controlled by the Layers dialog."
+msgstr ""
+"Die Werkzeugleiste kann über den Dialog \"Anzeige|Werkzeugleiste anpassen\" "
+"verändert werden um mehr Platz im Hauptfenster zur Verfügung zu stellen. Die "
+"Anzahl der Ebenenknöpfe wird über den Dialog \"Verwalten|Ebenen\" "
+"eingestellt."
+
+#: ../../../../build/work/app/i18n/custmsg.h:596
+msgid ""
+"The size of the Map window is controlled by the overall size of the room "
+"(specified on the Layout dialog) and the Map Scale (on the Display dialog). "
+"You can make the Map window larger (or smaller) by decreasing (or "
+"increasing) the Map Scale.\n"
+"XTrackCAD will prevent you from making the Map window too small or too large."
+msgstr ""
+"Die Größe des Kartenfensters wird in Abhängigkeit zur eingestellten "
+"Gesamtgröße des Raums kontrolliert. Die Gesamtgröße des Raums wird über den "
+"Dialog \"Optionen|Gleisplan\", der Maßstab des Kartenfensters über die "
+"Auswahl \"Kartenmaßstab\" im Dialog \"Optionen|Anzeige\" eingestellt. Die "
+"Größe des Kartenfensters kann verändert werden, indem der Wert für "
+"Kartenmaßstab entweder erhöht oder verkleinert wird.\n"
+"XTrackCAD lässt keine zu kleinen/großen Werte für das Kartenfenster zu."
+
+#: ../../../../build/work/app/i18n/custmsg.h:597
+msgid ""
+"You can unload parameter files you are not using by the Parameter Files "
+"dialog. This removes unused Turnout and Structure definitions from the Hot "
+"Bar and makes the program start faster."
+msgstr ""
+"Damit Gleise in der Schnellauswahl auftauchen ist es nötig eine Gleis "
+"Parameterdatei für Ihren Gleisplan zu laden, im Dialog \"Datei|"
+"Parameterdateien\" können Sie die für Ihr Gleis nötige Parameterdatei laden. "
+"Nicht mehr benötigte Parameterdateien können über den gleichen Dialog "
+"entladen werden. Hierdurch werden nicht mehr benötigte Weichen/Gleise von "
+"der Schnellauswahl gelöscht was das Programm schneller starten läßt."
+
+#: ../../../../build/work/app/i18n/custmsg.h:598
+msgid ""
+"Right-Click on the Main window displays a menu list of commands as an "
+"alternative to pressing the buttons on the tool bar or using the menu "
+"accelerator keys."
+msgstr ""
+"alternativ zur Werkzeugleiste oder den Menütasten kann durch rechts Klick im "
+"Hauptfenster ein weiteres Kommando Menü benutzt werden."
+
+#: ../../../../build/work/app/i18n/custmsg.h:599
+msgid ""
+"Holding down the Shift key while you Right-Click will display options for "
+"the current command (if any)."
+msgstr ""
+"Bleibt die Shift Taste gedrückt während Sie ein Kommando ausgewählt haben "
+"werden (wenn vorhanden) Optionen für dieses Kommando angezeigt."
+
+#: ../../../../build/work/app/i18n/custmsg.h:600
+msgid ""
+"Right-Click on the Hot Bar displays a menu of the different groups of "
+"objects which you can use to jump to the group you are interested in.\n"
+"Pressing a numeric key (1-9 and 0) moves the Hot Bar to corresponding "
+"position (1 is the start, 5 is half way, 0 is the end)."
+msgstr ""
+"Rechts Klick in der Schnellauswahl öffnet ein Menü mit verschiedenen "
+"Objektgruppen, diese können benutzt werden um schnell zu dieser Art von "
+"Gleisen zu springen.\n"
+"Durch drücken von Zahlen in der Schnellauswahl (1-9 und 0) kann auch die "
+"entsprechende Position der Gleisauswahl geändert werden, hierbei "
+"kennzeichnet 1 die erste Gleisauswahl, 5 gibt die Mitte der Auswahl an und 0 "
+"das Ende."
+
+#: ../../../../build/work/app/i18n/custmsg.h:601
+msgid ""
+"Right-Drag on the Map window sets the origin and scale of the Main window.\n"
+"The Main window will be centered on the spot where you started the Draw and "
+"how far you Drag will control how large an area you can see on the Main "
+"window."
+msgstr ""
+"Durch ziehen mit der rechten Maustaste im Kartenfenster wird der Focus und "
+"Maßstab im Hauptfenster eingestellt.\n"
+"Das Hauptfenster wird hierbei aufgrund der markierten Auswahl im "
+"Kartenfenster zentriert dargestellt."
+
+#: ../../../../build/work/app/i18n/custmsg.h:602
+msgid ""
+"To refresh the Main window, press Control-L (hold down the 'Ctrl' key and "
+"then press the 'l' key)."
+msgstr ""
+"Um die Darstellung im Hauptfenster zu erneuern, benutzen Sie Strg+L (halten "
+"Die die Steuernung Taste gedrückt und tippen Sie den Buchstaben 'l')."
+
+#: ../../../../build/work/app/i18n/custmsg.h:603
+msgid ""
+"The File menu contains a list of the last 5 layouts you were working on."
+msgstr ""
+"Der Dialog \"Datei\" enthält eine Liste der letzten 5 Gleispläne die Sie "
+"geöffnet hatten."
+
+#: ../../../../build/work/app/i18n/custmsg.h:604
+msgid ""
+"The Print command can optionally print lines representing the roadbed for "
+"all tracks. This is useful when printing full size (1:1) for cutting "
+"roadbed."
+msgstr ""
+"Im \"Drucken\" Dialog kann, die Auswahl \"Gleisbettung drucken\" ausgewählt "
+"werden, um im (1:1) Maßstab Gleisbettvorlagen ausdrucken zu können."
+
+#: ../../../../build/work/app/i18n/custmsg.h:605
+msgid ""
+"Pressing the 'Esc' key cancels the current command and invokes the default "
+"command, (which is either Describe or Select)."
+msgstr ""
+"Durch drücken der 'ESC' Taste wird der momentane Befehl abgebrochen und "
+"automatisch der Standardbefehl aktiviert, (was entweder Eigenschaften oder "
+"Auswählen ist)."
+
+#: ../../../../build/work/app/i18n/custmsg.h:606
+msgid ""
+"When moving or rotating tracks on slow machines or with a large number of "
+"tracks, you can improve performance by changing the way tracks are drawn "
+"while being moved.\n"
+"Shift-Right click will display a menu containing options to draw tracks "
+"normally, as simple lines or just draw end-points."
+msgstr ""
+"Auf langsamen Computern oder bei hoher Anzahl von Gleisen, kann die Art und "
+"Weise wie Gleise neu gezeichnet werden verändert werden.\n"
+"Nachdem Gleise markiert wurden, kann durch festhalten der Shift-Taste und "
+"einem rechts Klick mit der Maus in einem Options Menü ausgewählt werden wie "
+"die Gleise dargestellt werden sollen: Normal, Einfach oder nur als Endpunkte."
+
+#: ../../../../build/work/app/i18n/custmsg.h:607
+msgid ""
+"The colors of different parts of the Main window can be changed with the "
+"Colors dialog. In particular, the Snap Grid color can be changed to make it "
+"more visible when printed."
+msgstr ""
+"Farben der verschiedenen Baugruppen im Hauptfenster können über den Dialog "
+"\"Optionen|Farben\" verändert werden. Im Besonderen kann die Farbe des "
+"Fangrasters geändert werden um es beim ausdrucken besser sichtbar machen zu "
+"können."
+
+#: ../../../../build/work/app/i18n/custmsg.h:608
+msgid ""
+"By default objects are drawn in their normal colors. Tracks will be drawn "
+"in Black. Objects can also be drawn in the color according to their Layer. "
+"The color of a Layer is displayed on the corresponding Layer button.\n"
+"The Display dialog 'Color Layers' item has separate toggles for Tracks and "
+"non-Tracks."
+msgstr ""
+"Üblicherweise werden Objekte in Ihren voreingestellten Farben gezeichnet. "
+"Gleise werden in schwarz dargestellt. Objekte können in den Farben ihrer "
+"jeweiligen Ebenen dargestellt werden. Die Farbe einer Ebene wird auf ihrem "
+"zugehörigen Ebenenknopf angezeigt.\n"
+"Die Auswahl \"Ebenenfarben\" im Dialog \"Optionen|Anzeige\" besitzt jeweils "
+"für Gleise und Sonstige eine getrente Möglichkeit zur Aktivierung von Farben."
+
+#: ../../../../build/work/app/i18n/custmsg.h:609
+msgid ""
+"Each Layer can be drawn or hidden by the 'Visible' toggle on the Layers "
+"dialog. "
+msgstr ""
+"Jede Ebene kann im Dialog \"Verwalten|Ebenen\" verborgen oder angezeigt "
+"werden."
+
+#: ../../../../build/work/app/i18n/custmsg.h:610
+msgid ""
+"Short cut Layer buttons can also be displayed on the tool bar for up to the "
+"first 20 layers.\n"
+"This buttons allow to Show or Hide the layers."
+msgstr ""
+"Ebenenknöpfe können für die ersten 20 Ebenen in der Werkzeugleiste "
+"dargestellt werden, diese Nummernknöpfe können dazu benutzt werden um Ebenen "
+"zu verbergen oder anzuzeigen."
+
+#: ../../../../build/work/app/i18n/custmsg.h:611
+msgid "The name of the Layer is the Balloon Help for the Layer button."
+msgstr ""
+"Der Name einer Ebene wird in der Sprechblase der jeweiligen Ebene angezeigt."
+
+#: ../../../../build/work/app/i18n/custmsg.h:612
+msgid ""
+"The playback speed of the Demos can be changed by using Speed drop down list "
+"on the Demo window."
+msgstr ""
+"Die Wiedergabegeschwindigkeit von Demos kann durch den Auswahlreiter rechts "
+"oben im Demo Fenster eingestellt werden."
+
+#: ../../../../build/work/app/i18n/custmsg.h:613
+msgid ""
+"Many of the commands and dialogs can be invoked by special key combinations "
+"called Menu-Accelerators. These are listed on the Menus next to the command "
+"name. For example, Control-P will invoke the Print command."
+msgstr ""
+"Viele Kommandos oder Menü Dialoge können über Tastaturkürzel aufgerufen "
+"werden. Diese Kürzel werden rechts (wenn verfügbar) neben jedem Kommando "
+"angezeigt. Zum Beispiel: Strg+P im Menü \"Datei|Drucke\" ruft den Drucken "
+"Dialog auf."
+
+#: ../../../../build/work/app/i18n/custmsg.h:614
+msgid ""
+"The Connect command is used to join Sectional track pieces that don't quite "
+"fit together.\n"
+"This command works by adding small gaps between other tracks to move the "
+"selected End-Points closer together."
+msgstr ""
+"Das \"Gleisstücke verbinden\" Kommando im Dialog \"Ändern\" wird verwendet "
+"um Gleisstücke die nicht verbunden sind miteinander zu verbinden. Dies wird "
+"erreicht indem kleine Lücken bei andern Gleisen eingefügt werden damit die "
+"beiden Endpunkte miteinander verbunden werden können."
+
+#: ../../../../build/work/app/i18n/custmsg.h:615
+msgid ""
+"To copy a group of objects: Select the objects, press Control-C (or select "
+"Copy from the Edit menu), press Control-V (or select Paste from the Edit "
+"menu).\n"
+"The selected tracks will be copied to the layout and you can Move or Rotate "
+"them into position."
+msgstr ""
+"Um eine Gruppe von Objekten zu kopieren: Selektieren Sie diese, drücken Sie "
+"Strg+C (oder wählen Sie \"Kopieren\" im Menü \"Bearbeiten\" aus), drücken "
+"Sie Strg+V (oder wählen Sie \"Einfügen\" im Menü \"Bearbeiten\" aus).\n"
+"Die kopierten Objekte werden in den Gleisplan eingefügt und können dann "
+"verschoben oder rotiert werden und somit in Position gebracht werden."
+
+#: ../../../../build/work/app/i18n/custmsg.h:616
+msgid ""
+"In the Rotate (or Select) commands you can press Shift-Right-Click to "
+"display the Rotate menu which allows you to rotate the selected objects by a "
+"specific angle."
+msgstr ""
+"Bei Benutzung der Kommandos \"Rotieren\" oder \"Auswählen\" kann durch "
+"gedrückt halten der Shift-Taste und rechts Klick mit der Maustaste in einem "
+"auftauchenden Optionsmenü der Winkel zum rotieren eines Objekts ausgewählt "
+"werden."
+
+#: ../../../../build/work/app/i18n/custmsg.h:617
+msgid ""
+"You can use the Move-To-Join option of the Join command (hold down the Shift "
+"key) to move a group of Selected tracks to attach with some unselected End-"
+"Point."
+msgstr ""
+"Das \"Verbinden\" Kommando im Menü \"Ändern\" besitzt eine Option um eine "
+"Gruppe von ausgewählten Gleisen mit einem nicht vorher spezifizierten "
+"Endpunkt verbinden zu können. Markieren Sie zunächst die zu verbindenen "
+"Gleise, wählen Sie als nächstes den Dialog \"Ändern|Verbinden\", halten Sie "
+"nun die Shift-Taste gedrückt während Sie bei gedrückter linker Maustaste die "
+"markierte Gruppe von Gleisen zum Zielpunkt führen, durch nochmaliges drücken "
+"der linken Maustaste werden die selektierten Gleise dem Endpunkt hinzugefügt."
+
+#: ../../../../build/work/app/i18n/custmsg.h:618
+msgid ""
+"The Price List dialog (on the File Menu) is used to specify the prices of "
+"each type of Turnout, Sectional Track and Structure. Also, the length and "
+"price of flex-track pieces can be specified for each scale.\n"
+"This values will be used on the Parts List report to generate total cost of "
+"the selected objects."
+msgstr ""
+"Der Dialog \"Verwalten|Preisliste\" kann verwendet werden, um Preise für "
+"jedes Gleis, Weiche oder andere Gegenstände einzugeben. Weiterhin können "
+"auch Länge und Preis für Flex-Gleise für jeden beliebigen Maßstab eingegeben "
+"werden.\n"
+"Die angegebenen Preise werden verwendet um die Gesamtkosten im Dialog "
+"\"Verwalten|Teileliste\" auflisten zu können."
+
+#: ../../../../build/work/app/i18n/custmsg.h:619
+msgid ""
+"Areas of water can represented by a Polygon (use the Draw command) of the "
+"appropiate color.\n"
+"By using the Modify command, you can move, add or remove corners of the "
+"Polygon to fit the shape of the water.\n"
+"You use the Below command to place the Polygon below (or behind) other "
+"objects.\n"
+"\n"
+"You can also use a Polygon to represent aisles. "
+msgstr ""
+"Wasserbereiche können durch Polygone mit Hilfe des \"Zeichnen|Formen|Zeichne "
+"Polyline\" in der entspechenden Farbe erstellt werden.\n"
+"Das \"Verändern\" Kommando kann benutzt werden um Ecken an diesen Polygonen "
+"hinzu zu fügen oder zu löschen um diese besser der Form des Wassers anpassen "
+"zu können.\n"
+"\n"
+"Polylinien können auch dazu verwendet werden um Flussläufe darzustellen."
+
+#: ../../../../build/work/app/i18n/custmsg.h:620
+msgid ""
+"When you create Benchwork you can move it below other objects by Selecting "
+"the Benchwork and use the Below command.\n"
+"Also, put Benchwork in a separate Layer so you can hide it if desired."
+msgstr ""
+"erstellte Aufbauten können unter andere Objekte verschoben werden, indem man "
+"das \"Darunter\" Kommando aus dem Menü \"Bearbeiten\" verwendet.\n"
+"Weiterhin sollten Sie Aufbauten auf speraten Ebenen darstellen, sie können "
+"somit sehr leicht im Bedarfsfall versteckt werden, indem man die zugehöhrige "
+"Ebene einfach ein oder ausblendet."
+
+#: ../../../../build/work/app/i18n/custmsg.h:621
+msgid ""
+"You can enter Distances and Lengths using any format regardless of the "
+"Length Format on the Preferences dialog."
+msgstr ""
+"Längen können unabhänig der voreingestellten Werte im \"Optionen|"
+"Einstellungen\" Dialog eingegeben werden."
+
+#: ../../../../build/work/app/i18n/custmsg.h:622
+msgid ""
+"You can enter Metric values when English is the default Units and vice versa."
+msgstr ""
+"Metrische Werte können eingegeben werden auch wenn die Einstellung für "
+"Einheiten Englisch gewählt ist."
+
+#: ../../../../build/work/app/i18n/custmsg.h:623
+msgid ""
+"When entering Distances and Lengths you can press the '=' key to redisplay "
+"the value in the default format."
+msgstr ""
+"Bei Eingabe von Entfernungen und Längen können Sie '=' Zeichen verwenden um "
+"den Wert im voreingestellten Format anzuzeigen."
+
+#: ../../../../build/work/app/i18n/custmsg.h:624
+msgid ""
+"You can also press the 's' key to convert a Prototype measurement to a Scale "
+"measurement y dividing by the ratio for the current scale."
+msgstr ""
+"Sie können die Taste 's' benutzen um eine Muster Messung in eine Maßstab "
+"Messung zu verwandeln, die Taste 'y' gibt hierbei den Teiler Faktor des "
+"momentanen Maßstabs an."
+
+#: ../../../../build/work/app/i18n/custmsg.h:625
+msgid ""
+"The 'p' key will convert a Scale measurement to a Prototype measurement."
+msgstr "Die Taste 'p' konvertiert eine Maßstab Messung in eine Muster Messung."
+
+#: ../../../../build/work/app/i18n/custmsg.h:626
+msgid ""
+"You can place cars on the layout using the Train Simulation command to check "
+"clearance points, track to track separation and coupling."
+msgstr ""
+"Lokomotiven können im Gleisplan über den Zugbetrieb Knopf plaziert werden um "
+"Weichenübergänge, Gleis zu Gleis Verbindungen oder ankuppeln simulieren zu "
+"können."
+
+#: ../../../../build/work/app/i18n/custmsg.h:627
+msgid ""
+"Use the MoveTo button on the Custom Management dialog to move your custom "
+"Turnout, Structure and Car definitions to a .XTP parameter file."
+msgstr ""
+"Benutzen Sie den \"Verschieben nach\" Knopf im \"Verwalten|Anpassungs "
+"Verwaltung\" Menü um selbst erstellte Weichen, Strukturen oder Wagen "
+"Definitionen in eine .XTP Parameter Datei zu verschieben."
+
+#: ../../../../build/work/app/i18n/custmsg.h:628
+msgid ""
+"If you are printing multiple pages on a continuous feed printer (such a Dot "
+"Matrix) you can change the Page Order if necessary to print pages out in "
+"proper order."
+msgstr ""
+"Falls Sie einen Drucker mit endlos Papier verwenden, können Sie die "
+"Reihenfolge der Seiten ändern um diese in der richtigen Reihenfolge "
+"auszudrucken."
+
+#: ../../../../build/work/app/i18n/custmsg.h:629
+msgid ""
+"On the Car Item and Car Part dialogs, you can enter custom values for "
+"Manufacturer, Part and Road by typing the new value directly into the Drop "
+"Down List."
+msgstr ""
+"Im Dialog \"Verwalten|Wagenverzeichnis\" können eigene Werte für Hersteller, "
+"Artikelnummer und Straße direkt in der angezeigten Liste eingegeben werden."
+
+#: ../../../../build/work/app/i18n/custmsg.h:630
+msgid ""
+"On the Car Item dialog, you can change the Road, Number, Color and other "
+"values for a Car. This is useful if you repaint or renumber a car. \n"
+"You can also change the Coupler Mounting and Coupler Length if you change "
+"the couplers."
+msgstr ""
+"Im Dialog \"Verwalten|Wagenverzeichnis\" können eigene Werte für Zugnummern, "
+"Farbe und andere Werte vergeben werden. Dies is nützlich wenn Sie "
+"beispielsweise einen Wagen umlackiert oder eine neue Rollnummer vergeben "
+"haben. \n"
+"Weiterhin kann die Kupplungsaufhängung und auch deren Länge verändert werden."
+
+#: ../../../../build/work/app/i18n/custmsg.h:631
+msgid ""
+"You can Export your Car Inventory to a file in Comma-Separated-Value format "
+"which can be read by most spread-sheet programs."
+msgstr ""
+"Ihr Wagen/Lokbestand kann in eine, druch Kommata getrennte, Textdatei "
+"exportiert werden, welche von allen gänigen Tabellenkalkulations Programmen "
+"eingelesen werden kann."
+
+#: ../../../../build/work/app/i18n/custmsg.h:632
+msgid "Use the Train Odometer to measure distances along the track."
+msgstr ""
+"Benutzen Sie den Zugsteckenzähler um Entfernungen auf dem Gleis messen zu "
+"können."
+
+#: ../../../../build/work/app/i18n/custmsg.h:633
+msgid ""
+"Holding down the Shift key when clicking the Zoom In or Zoom Out button will "
+"zoom to a programmed Drawing Scale. \n"
+"Holding down the Shift and Control keys when clicking a Zoom button will set "
+"it's program Zoom to the current Drawing Scale."
+msgstr ""
+"klicken Sie die Lupenknöpfe an während die Shift Taste gedrückt ist "
+"focusiert das Programm auf einen vorher festgelegten Maßstab. \n"
+"durch gleichzeitiges Festhalten der Strg + Shift Tasten kann durch anklicken "
+"der jeweiligen Lupenknöpfe wird die Einstellung der Vergrößer/kleinerung "
+"festgelegt."
+
+#: ../../../../build/work/app/i18n/custmsg.h:634
+msgid ""
+"You can trim the ends of turnouts by holding down the Shift key when using "
+"the Split command."
+msgstr ""
+"bei Benutzung des \"Gleis auftrennen\" Kommandos, kann man durch festhalten "
+"der Shift Taste das Ende einer Weiche anpassen."
+
+#: ../../../../build/work/app/i18n/custmsg.h:635
+msgid ""
+"The Split command can be used to create Block Gaps at end points between two "
+"tracks. \n"
+"Either rail or both rails can be gapped, which are drawn as thick lines."
+msgstr ""
+"Der Dialog \"Ändern|Gleis auftrennen\" kann benutzt werden um Blockabstände "
+"an Endpunkten von zwei Gleisen einzufügen. \n"
+"Abstände können entweder an einem oder beiden Enden eingefügt werden, diese "
+"werden durch dicke Linien gekennzeichnet."
+
+#: ../../../../build/work/app/i18n/custmsg.h:636
+msgid ""
+"Trains will 'crash' if they hit another car when travelling faster than the "
+"'Max Coupling Speed' (on the Command Options dialog). \n"
+"They will also 'crash' if they hit the end of the track or an open "
+"turnout. \n"
+"Crashed trains must be manually moved back onto the track."
+msgstr ""
+"Züge 'entgleisen' wenn sie auf ein anderes Fahrzeug treffen oder sie beim "
+"Ankuppeln schneller unterwegs sind wie die maximal eingestellte "
+"Kuppelgeschwindigkeit (einstellbar über \"Optionen|Einstellungen\"). \n"
+"Außerdem werden sie 'entgleisen' sobald sie auf ein totes Gleisende oder "
+"eine offene Weiche treffen. \n"
+"Entgleiste Züge müssen von Hand wieder auf das Gleis zurück gestellt werden."
+
+#: ../../../../build/work/app/i18n/custmsg.h:637
+msgid ""
+"You can add new track segments to a turnout definition or create a "
+"definition from individual tracks using the Group command."
+msgstr ""
+"das Auswählen Kommando kann verwendet werden um Teilabschnitte an "
+"vorhandenes Gleis anzuhängen oder einen neuen Teilabschnitt zu erstellen "
+"indem einzelne Gleise zusammengeführt werden."
+
+#: ../../../../build/work/app/i18n/custmsg.h:638
+msgid ""
+"The center point and radius of Curved and Circle tracks can optionally be "
+"drawn. \n"
+"This feature is toggled by using the Move Label command and doing a Shift-"
+"Left-Click on the track."
+msgstr ""
+"Der Mittelpunkt von Kurven oder Kreisen kann auch angezeigt werden. \n"
+"Diese Option kann ein/ausgeschaltet werden durch festhalten der Shift Taste "
+"bei gleichzeitigem links Klick der Maus."
+
+#: ../../../../build/work/app/i18n/custmsg.h:639
+msgid ""
+"Turnout, Curved and Helix track labels can be individually turned on and off "
+"by doing a Shift-Right-Click on the track when using the Move Label command."
+msgstr ""
+"Weichen, Kurven und Gleiswendel Beschreibungen können einzeln an und aus "
+"geschaltet werden. Halten Sie hierzu die Shift Taste gedrückt während Sie "
+"das Kommando \"Ändern|Beschreibungen verschieben\" verwenden und klicken Sie "
+"mit der rechten Maustaste auf die jeweilige Beschreibung."
+
+#: ../../../../build/work/app/i18n/custmsg.h:640
+msgid ""
+"You can use the Describe command to change the font size of Text objects."
+msgstr ""
+"Das Kommando \"Ändern|Eigenschaften\" wird verwendet um die Schriftgröße von "
+"Textobjekten zu ändern."
+
+#: ../../../../build/work/app/i18n/custmsg.h:641
+msgid ""
+"You can use the Describe command to change the size of Dimension Line labels."
+msgstr ""
+"Das Kommando \"Ändern|Eigenschaften\" wird verwendet um die Größe von "
+"Dimensions Linien Beschreibungen zu ändern."
+
+#: ../../../../build/work/app/i18n/custmsg.h:642
+msgid ""
+"Normally Right-Click displays a popup menu of commands and Shift-Right-Click "
+"displays options for the current command. \n"
+"This can reversed by using the Right Click toggle button on the Command "
+"Options dialog."
+msgstr ""
+"normalerweise wird durch einen rechts Klick im Gleisplan ein Kommando Menü "
+"angezeigt, bei festhalten der Shift-Taste und einem vorher ausgewählten "
+"Kommando wird ein optionales Menü für das jeweilige Kommando angezeigt. \n"
+"Dieses Verhalten kann vertauscht werden indem der rechts Umschalter aus dem "
+"Kommando Dialog verwendet wird."
+
+#: ../../../../build/work/app/i18n/custmsg.h:643
+msgid ""
+"The Align item on the Rotate command options menu will let you Align "
+"selected objects with any unselected object. \n"
+"The selected objects are rotated so the first point is parallel to the "
+"second point you selected."
+msgstr ""
+"Die Auswahl \"Ausrichten\" im Optionsmenü des \"Drehen\" Kommandos kann "
+"ausgewählte Objekte an nicht ausgewählten Objekten ausrichten. \n"
+"Die ausgewählten Objekte werden so rotiert dass der erste Auswahlpunkt "
+"parallel zum zweiten Auswahlpunkt erscheint."
+
+#: ../../../../build/work/app/i18n/custmsg.h:644
+msgid ""
+"Print To Bitmap allows you to print the track center line. \n"
+"This is useful if you later print the bitmap full size as a template when "
+"laying track."
+msgstr ""
+"Speichern als Bitmap ermöglicht das mitspeichern der Gleismitte. \n"
+"Dies ist nützlich falls Sie später diese Bitmap in voller Größe ausdrucken "
+"wollen um sie als Gleisvorlage verwenden zu können."
+
+#: ../../../../build/work/app/i18n/custmsg.h:645
+msgid ""
+"You can export the selected tracks to a DXF file which can be read by most "
+"CAD programs."
+msgstr ""
+"Sie können markierte Gleise in eine DXF Datei exportieren, welche von den "
+"meisten CAD Programmen lesbar ist."
+
+#: ../../../../build/work/app/i18n/custmsg.h:646
+msgid ""
+"Lengths and distances can be displayed in a variety of units and formats "
+"such as 1' 10 3/4\", 1ft 10.75in or 22.750. In Metric mode, distances can "
+"be displayed as millimeters, centimeters or meters. See the Length Format "
+"item on the Preferences dialog."
+msgstr ""
+"Längen und Entfernungen können in einer Vielzahl von Einheiten und Formaten "
+"dargestellt werden dies sind z.B 1' 10 3/4\" 10.75in oder 22.750. Bei der "
+"Auswahl von metrischen Einheiten werden Entfernungen und Längen in "
+"Millimetern, Zentimetern oder Metern dargestellt. Diese Einstellung kann in "
+"der Auswahl \"Einheiten\" im Dialog \"Optionen|Einstellungen\" vorgenommen "
+"werden."
+
+#: ../../../../build/work/app/i18n/custmsg.h:647
+msgid ""
+"Tracks that are too steep or curve too tightly are drawn in the Expection "
+"color (Purple by default). \n"
+"This helps to identify potential problem areas. \n"
+"The maximum grade and minimum radius are set on the Preferences dialog."
+msgstr ""
+"Gleise die zu abschüssig sind oder zu enge Radien haben werden in einer "
+"Ausnahme Farbe dargestellt (üblicherweise Lila). \n"
+"Dies hilft um Problembereiche aufzufinden. \n"
+"Die maximale Steigung und der minimale Radius werden im Eingenschaften "
+"Dialog eingestellt."
+
+#: ../../../../build/work/app/i18n/custmsg.h:648
+msgid ""
+"The Flip command produces a mirror-image of the selected tracks. \n"
+"If possible, right-hand turnouts are relabeled as left-hand turnouts (and "
+"vice versa)."
+msgstr ""
+"Das \"Spiegeln\" Kommando im Menü \"Ändern\" spiegelt ausgewählte "
+"Gleise. \n"
+"Falls möglich werden rechte Weichen in linke Weichen umbenannt oder linke in "
+"rechte."
+
+#: ../../../../build/work/app/i18n/custmsg.h:649
+msgid ""
+"Then Ungroup command will break turnouts and structures into individual "
+"track, line and shape segments. \n"
+"You can modify each segment and add new ones. \n"
+"Then use the Group command to update the definition."
+msgstr ""
+"Das Kommando \"Verwalten|Gruppierung aufheben\" trennt Weichen und oder "
+"Strukturen in einzelne Gleise, Linien oder Segmente auf. \n"
+"Sie können nun jedes einzelne Segment modifizieren neue hinzufügen usw. \n"
+"Danach benutzen Sie das Kommando \"Verwalten|Gruppieren\" um Ihre neue "
+"Definition wieder als Gruppierung zusammen zu fügen."
+
+#: ../../../../build/work/app/i18n/custmsg.h:650
+msgid "Dimension lines show the distance between two points."
+msgstr "Maßlinien zeigen die Entfernung zwischen zwei Punkten an."
+
+#: ../../../../build/work/app/i18n/custmsg.h:651
+msgid ""
+"A variety of Benchwork (rectangular, L-girder and T-girder) can be drawn. \n"
+"Use the Below command to move the Benchwork below the track for proper "
+"display."
+msgstr ""
+"Eine Vielzahl Unterbauten kann dargestellt werden (Rechteckformen, L-Träger "
+"und T-Träger). \n"
+"Das Kommando \"Darunter\" im Menü \"Bearbeiten\" wird benutzt um Unterbauten "
+"korrekt unter den Gleise darstellen zu können."
+
+#: ../../../../build/work/app/i18n/custmsg.h:652
+msgid ""
+"The Turnout Designer dialogs allow you to specify the width of any attached "
+"roadbed. \n"
+"As well, the color and thickness of the lines used to represent the roadbed "
+"can be specified."
+msgstr ""
+"Der Weichendesigner ermöglicht die Angabe der Spurbreite von jedem "
+"beliebigen Gleisbett. \n"
+"Desweitern können Farbe und Stärke der Linien angegeben in denen das "
+"Gleisbett dargestellt wird."
+
+#: ../../../../build/work/app/i18n/custmsg.h:653
+msgid ""
+"The Color dialog (on the Options menu) is used to change the color of "
+"different objects on the display. \n"
+"You can change the color of the Snap Grid and Borders, as well as Normal, "
+"Selected and Exception tracks."
+msgstr ""
+"Der Dialog \"Optionen|Farben\" wird benutzt um die Farben für verschiedene "
+"Objekte einzustellen. \n"
+"Die Farbe des Fangrasters, Ränder sowohl als auch für normale selektierte "
+"und Ausnahme Gleise können angegeben werden."
+
+#: ../../../../build/work/app/i18n/custmsg.h:654
+msgid ""
+"You can draw tracks with wider lines for rails. \n"
+"Select the tracks and use Medium or Thick Tracks on the Edit menu."
+msgstr ""
+"Schienen können mit breiteren Linien für Gleise gezeichnet werden. \n"
+"Wählen Sie hierzu Mittlere Gleise oder Dicke Gleise im Bearbeiten Menü aus."
+
+#: ../../../../build/work/app/i18n/custmsg.h:655
+msgid ""
+"Many objects on the layout have labels: Turnouts/Helix/Curved Titles, Track "
+"Lenghts, End-Point Elevations, Track Elevations and Cars. \n"
+"You can turn these labels on or off with the Label Enable toggle buttons on "
+"the Display options dialog."
+msgstr ""
+"Viele Objekte im Gleisplan besitzen Beschreibungen: Weichen/Gleiswendel/"
+"Kurven Gleislängen Endpunkte Höhenangaben usw. \n"
+"Sie können diese Beschreibungen über den Dialog \"Optionen|Anzeige\" ein "
+"oder ausschalten."
+
+#: ../../../../build/work/app/i18n/custmsg.h:656
+msgid ""
+"If you hold down the Control key when using the Rotate command, the rotation "
+"will be down in increments of 15°."
+msgstr ""
+"Durch festhalten der Strg Taste wird beim Drehen Kommando, die Rotation um "
+"jeweils 15° verringert."
+
+#: ../../../../build/work/app/i18n/custmsg.h:657
+msgid ""
+"When using the Rotate command, Shift-Right-Click displays a menu allowing "
+"you to rotate by specific amounts or to align the selected objects with "
+"another object."
+msgstr ""
+"Beim Benutzen des Befehls <Drehen> kann durch Halten der Umschalt-Taste aus "
+"einem Menü der Drehwinkel des Objektes ausgewählt werden oder das Objekt "
+"kann anhand eines anderen Objektes ausgerichtet werden."
+
+#~ msgid "Select other end of Bezier, +Shift -> snaps to %s end"
+#~ msgstr ""
+#~ "Das andere Ender der Bezier wählen, mit Umschalt-Taste an %s Endpunkt "
+#~ "verbinden"
+
+#~ msgid "OK"
+#~ msgstr "Ok"
+
+#~ msgid ""
+#~ "No Unconnected end-point on track - Try again or release shift and click"
+#~ msgstr ""
+#~ "Dieses Gleis hat keinen offenen Endpunkt, nochmal versuchen oder "
+#~ "Umschalttaste lösen und dann klicken"
+
+#~ msgid "Not on a Track - Try again or release shift and click"
+#~ msgstr "Nicht auf einem Gleis, nochmal versuchen or "
+
+#, fuzzy
+#~ msgid ""
+#~ "Place 1st end point of Cornu track on track with an unconnected end-point"
+#~ msgstr "Ersten Endpunkt der Gleisgerade setzen"
+
+#~ msgid "Connect Sectional Tracks"
+#~ msgstr "Gleisstücke verbinden"
+
+#~ msgid "Drag to move selected tracks"
+#~ msgstr "Ausgewählte Gleise durch Ziehen verschieben"
+
+#, fuzzy
+#~ msgid "End Angle 2"
+#~ msgstr "Winkel eingeben..."
+
+#, fuzzy
+#~ msgid "Elev 1"
+#~ msgstr "Höhe = %s"
+
+#, fuzzy
+#~ msgid "End Radius Center 1: X"
+#~ msgstr "Endpunkt 1: X"
+
+#, fuzzy
+#~ msgid "Elev 2"
+#~ msgstr "Höhe = %s"
+
+#, fuzzy
+#~ msgid "Radius 2"
+#~ msgstr "Radius 2"
+
+#, fuzzy
+#~ msgid "End Radius Center 2: X"
+#~ msgstr "Endpunkt 2: X"
+
+#~ msgid "Angle=%0.3f"
+#~ msgstr "Winkel=%0.3f"
+
+#~ msgid "Place circle center"
+#~ msgstr "Setze Kreismittelpunkt"
+
+#~ msgid "Place circle"
+#~ msgstr "Platziere Kreis"
+
+#~ msgid "Draw"
+#~ msgstr "Zeichne"
+
+#~ msgid "Show Map"
+#~ msgstr "Karte anzeigen"
+
+#~ msgid "Blocks"
+#~ msgstr "Gleisabschnitte"
+
+#~ msgid "SwitchMotor"
+#~ msgstr "Weichenantrieb"
+
+#~ msgid "Switch Motors"
+#~ msgstr "Weichenatriebe"
+
+#~ msgid "Black"
+#~ msgstr "Schwarz"
+
+#~ msgid "Dark Blue"
+#~ msgstr "Dunkelblau"
+
+#~ msgid "Steel Blue"
+#~ msgstr "Stahlblau"
+
+#~ msgid "Royal Blue"
+#~ msgstr "Königsblau"
+
+#~ msgid "Blue"
+#~ msgstr "Blau"
+
+#~ msgid "Deep Sky Blue"
+#~ msgstr "Dunkles Himmelblau"
+
+#~ msgid "Light Sky Blue"
+#~ msgstr "Helles Himmelblau"
+
+#~ msgid "Powder Blue"
+#~ msgstr "Hellblau"
+
+#~ msgid "Dark Aqua"
+#~ msgstr "Dunkelaquamarin"
+
+#~ msgid "Aquamarine"
+#~ msgstr "Aquamarin"
+
+#~ msgid "Aqua"
+#~ msgstr "Wasserblau"
+
+#~ msgid "Dark Green"
+#~ msgstr "Dunkelgrün"
+
+#~ msgid "Forest Green"
+#~ msgstr "Waldgrün"
+
+#~ msgid "Lime Green"
+#~ msgstr "Limonengrün"
+
+#~ msgid "Green"
+#~ msgstr "Grün"
+
+#~ msgid "Lawn Green"
+#~ msgstr "Rasengrün"
+
+#~ msgid "Pale Green"
+#~ msgstr "Blassgrün"
+
+#~ msgid "Dark Yellow"
+#~ msgstr "Dunkelgelb"
+
+#~ msgid "Coral"
+#~ msgstr "Koralle"
+
+#~ msgid "Orange"
+#~ msgstr "Orange"
+
+#~ msgid "Gold"
+#~ msgstr "Gold"
+
+#~ msgid "Yellow"
+#~ msgstr "Gelb"
+
+#~ msgid "Saddle Brown"
+#~ msgstr "Lederbraun"
+
+#~ msgid "Brown"
+#~ msgstr "Braun"
+
+#~ msgid "Chocolate"
+#~ msgstr "Schokolade"
+
+#~ msgid "Rosy Brown"
+#~ msgstr "Braun Rosa"
+
+#~ msgid "Tan"
+#~ msgstr "Loh"
+
+#~ msgid "Beige"
+#~ msgstr "Beige"
+
+#~ msgid "Dark Red"
+#~ msgstr "Dunkelrot"
+
+#~ msgid "Tomato"
+#~ msgstr "Tomatenrot"
+
+#~ msgid "Red"
+#~ msgstr "Rot"
+
+#~ msgid "Hot Pink"
+#~ msgstr "Knallrosa"
+
+#~ msgid "Pink"
+#~ msgstr "Rosa"
+
+#~ msgid "Dark Purple"
+#~ msgstr "Dunkelpurpur"
+
+#~ msgid "Maroon"
+#~ msgstr "Kastanie"
+
+#~ msgid "Purple2"
+#~ msgstr "Purpur 2"
+
+#~ msgid "Purple"
+#~ msgstr "Purpur"
+
+#~ msgid "Violet"
+#~ msgstr "Violett"
+
+#~ msgid "Dark Gray"
+#~ msgstr "Dunkelgrau"
+
+#~ msgid "Gray"
+#~ msgstr "Grau"
+
+#~ msgid "Light Gray"
+#~ msgstr "Hellgrau"
+
+#~ msgid "Describe objects"
+#~ msgstr "Objekte beschreiben"
+
+#~ msgid "Page %d"
+#~ msgstr "Seite %d"
+
+#~ msgid "Print to file ..."
+#~ msgstr "In Datei drucken..."
+
+#~ msgid "No file name specified"
+#~ msgstr "Kein Dateiname angegeben"
+
+#~ msgid "%s exists"
+#~ msgstr "%s existiert bereits"
+
+#~ msgid "Overwrite"
+#~ msgstr "Ãœberschreiben"
+
+#~ msgid ": cannot open"
+#~ msgstr ": kann nicht geöffnet werden"
+
+#~ msgid "Page 1"
+#~ msgstr "Seite 1"
+
+#~ msgid "Printer Margin Test Page"
+#~ msgstr "Testseite für Druckränder"
+
+#~ msgid "Enter both printer name and command"
+#~ msgstr "Druckername und Befehl eingeben"
+
+#~ msgid "Can not save New Printer definition"
+#~ msgstr "Neue Druckerdefinition kann nicht gespeichert werden"
+
+#~ msgid "Enter printer name"
+#~ msgstr "Druckername eingeben"
+
+#~ msgid "Can not save New Margin definition"
+#~ msgstr "Seitendefinition kann nicht gespeichert werden"
+
+#~ msgid "Paper Size"
+#~ msgstr "Papiergrösse"
+
+#~ msgid "Printer"
+#~ msgstr "Drucker"
+
+#~ msgid "Format"
+#~ msgstr "Format"
+
+#~ msgid "X Font"
+#~ msgstr "X Schriftart"
+
+#~ msgid "PS Font"
+#~ msgstr "PS Schriftart"
+
+#~ msgid "Factor"
+#~ msgstr "Faktor"
+
+#~ msgid "Print Test Page"
+#~ msgstr "Drucke Testseite"
+
+#~ msgid "Add Printer"
+#~ msgstr "Drucker hinzufügen"
+
+#~ msgid "Name: "
+#~ msgstr "Name: "
+
+#~ msgid "Command: "
+#~ msgstr "Befehl: "
+
+#~ msgid "Add Margin"
+#~ msgstr "Rand hinzufügen"
+
+#~ msgid "Print To File"
+#~ msgstr "In Datei drucken"
+
+#~ msgid "File Name? "
+#~ msgstr "Dateiname? "
+
+#~ msgid "Font Alias"
+#~ msgstr "Alias für Schriftart"
+
+#~ msgid "Enter a post-script font name for:"
+#~ msgstr "Eingabe der Postscript Schriftart für:"
+
+#~ msgid "Printing"
+#~ msgstr "Drucke"
+
+#~ msgid "Now printing"
+#~ msgstr "Druck läuft"
+
+#~ msgid "Abort Print"
+#~ msgstr "Druck abbrechen"
+
+#~ msgid ""
+#~ " exists\n"
+#~ "Do you want to overwrite it?"
+#~ msgstr ""
+#~ "existiert.\n"
+#~ "Wollen Sie diese überschreiben?"
+
+#, fuzzy
+#~ msgid "Delete Switch motor"
+#~ msgstr "Weichenantrieb löschen"
+
+#~ msgid "Not a SwitchMotor!"
+#~ msgstr "Kein Weichenantrieb!"
+
+#~ msgid "Custom Update"
+#~ msgstr "Anpassungen hinzufügen"
+
+#~ msgid "No font selected"
+#~ msgstr "Keine Schriftart ausgewählt"
+
+#~ msgid "No fonts"
+#~ msgstr "Keine Schriftarten"
+
+#~ msgid ""
+#~ "Can't find standard Serif font.\n"
+#~ "Please choose a font"
+#~ msgstr ""
+#~ "Die Standardschriftart für Serif kann nicht gefunden werden.\n"
+#~ "Bitte wählen Sie eine Schriftart aus"
+
+#~ msgid ""
+#~ "Can't find standard San-Serif font.\n"
+#~ "Please choose a font"
+#~ msgstr ""
+#~ "Die Standardschriftart für Sans-Serif kann nicht gefunden werden.\n"
+#~ "Bitte wählen Sie eine Schriftart aus"
+
+#~ msgid "XTrackCAD Help"
+#~ msgstr "XTrackCAD Hilfe"
+
+#~ msgid "Now printing %s"
+#~ msgstr "Drucke %s"
+
+#~ msgid "Creating %s"
+#~ msgstr "Erzeuge %s"
+
+#~ msgid "Scale / Gauge"
+#~ msgstr "Maßstab / Spurweite"
+
+#~ msgid "load last layout"
+#~ msgstr "Letzten Plan laden"
+
+#~ msgid "start with blank layout"
+#~ msgstr "Mit leerem Plan beginnen"
diff --git a/app/i18n/fi.po b/app/i18n/fi.po
index be9826e..d43e427 100644
--- a/app/i18n/fi.po
+++ b/app/i18n/fi.po
@@ -2,13 +2,13 @@
# Copyright (C) 2007 Mikko Nissinen
# This file is distributed under the same license as the xtrkcad package.
# Mikko Nissinen <mni77@users.sourceforge.net>, 2007.
-#
-#
+#
+#
msgid ""
msgstr ""
"Project-Id-Version: xtrkcad 4.1.0b1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-02-05 11:20+0200\n"
+"POT-Creation-Date: 2017-11-05 13:39+0100\n"
"PO-Revision-Date: 2008-02-05 11:21+0200\n"
"Last-Translator: Mikko Nissinen <mni77@users.sourceforge.net>\n"
"Language-Team: Finnish <mni77@users.sourceforge.net>\n"
@@ -16,4795 +16,5399 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ../bin/fileio.c:239
-msgid ""
-"\n"
-"Do you want to continue?"
+#: ../bin/cbezier.c:586
+#, fuzzy
+msgid "Select End-Point - Ctrl unlocks end-point"
+msgstr "Valitse ensimmäinen yhdistettävä päätepiste"
+
+#: ../bin/cbezier.c:588 ../bin/ccornu.c:462 ../bin/celev.c:418
+msgid "Select End-Point"
+msgstr "Valitse päätepiste"
+
+#: ../bin/cbezier.c:609
+msgid "Not close enough to any valid, selectable point, reselect"
msgstr ""
-"\n"
-"Haluatko jatkaa?"
-#: ../bin/misc.c:299
-msgid ""
-"\n"
-"Do you want to save your layout?"
+#: ../bin/cbezier.c:615 ../bin/ccornu.c:485
+#, c-format
+msgid "Drag point %d to new location and release it"
msgstr ""
-"\n"
-"Haluatko tallentaa ratasuunnitelman?"
-#: ../bin/misc.c:1827
-msgid ""
-"\n"
-"XTrackCAD is a CAD (computer-aided design) program\n"
-"for designing model railroad layouts."
+#: ../bin/cbezier.c:625 ../bin/cbezier.c:716 ../bin/cbezier.c:718
+msgid "Pick any circle to adjust it - Enter to confirm, ESC to abort"
msgstr ""
-"\n"
-"XTrackCAD on CAD ohjelma pienoisrautateiden\n"
-"raidekaavioiden suunniteluun."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:465
-msgid " \n"
-msgstr " \n"
+#: ../bin/cbezier.c:648 ../bin/cbezier.c:706
+msgid "Bezier Curve Invalid has identical end points Change End Point"
+msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:317
-msgid ""
-" Hint: the further you drag from the frog, the more accurate the angle.\n"
+#: ../bin/cbezier.c:651 ../bin/cbezier.c:709
+#, c-format
+msgid "Bezier Curve Invalid has %s Change End Point"
msgstr ""
-" Vinkki: Mitä kauemmas raahaat, sitä tarkemmin saat kulman asetelluksi.\n"
-#: ../bin/dbitmap.c:149
-msgid " dpi"
-msgstr " dpi"
+#: ../bin/cbezier.c:654 ../bin/cbezier.c:712
+msgid "Bezier Curve Invalid has three co-incident points"
+msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:85
-msgid " 1 a short straight segment to the left of the points\n"
-msgstr " 1 Lyhyestä suorasta etujatkoksesta.\n"
+#: ../bin/cbezier.c:656
+#, fuzzy
+msgid "Bezier is Straight Line"
+msgstr "Suora viiva"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:86
-msgid " 2 a long straight segment to the right of the points\n"
-msgstr " 2 Pitkästä suorasta raiteesta.\n"
+#: ../bin/cbezier.c:658
+#, c-format
+msgid "Bezier %s : Min Radius=%s Length=%s fx=%0.3f fy=%0.3f cusp=%0.3f"
+msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:87
-msgid " 3 a curved segment from the points to the frog\n"
-msgstr " 3 Kaarteesta kielten päistä risteyskappaleeseen.\n"
+#: ../bin/cbezier.c:662
+#, fuzzy, c-format
+msgid "Bezier %s : Min Radius=%s Length=%s"
+msgstr "Kaareva raideosa: Säde=%s Pituus=%s"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:88
-msgid ""
-" 4 a straight segment from the frog to the end of the diverging leg.\n"
-msgstr " 4 Haarautuvan raiteen suorasta takajatkoksesta.\n"
+#: ../bin/cbezier.c:688
+#, fuzzy
+msgid "No unconnected End Point to lock to"
+msgstr "Valitse toinen yhdistettävä päätepiste"
-#: ../bin/cselect.c:1317
-#, c-format
-msgid " Angle %0.3f"
-msgstr " Kulma %0.3f"
+#: ../bin/cbezier.c:714
+#, fuzzy
+msgid "Bezier Curve is Straight Line"
+msgstr "Luo suora viiva"
-#: ../bin/cselect.c:1315
+#: ../bin/cbezier.c:729 ../bin/cbezier.c:743
+msgid "Invalid Bezier Track - end points are identical"
+msgstr ""
+
+#: ../bin/cbezier.c:736
#, c-format
-msgid " Angle %0.3f #%ld"
-msgstr " Kulma %0.3f #%ld"
+msgid "Invalid Bezier Curve has a %s - Adjust"
+msgstr ""
-#: ../bin/ctodesgn.c:143 ../bin/ctodesgn.c:146
-msgid " #"
-msgstr " #"
+#: ../bin/cbezier.c:740
+msgid "Invalid Bezier Curve has three coincident points - Adjust"
+msgstr ""
-#: ../bin/dbench.c:38
-msgid " L-Girder"
-msgstr "L-palkki"
+#: ../bin/cbezier.c:749
+#, fuzzy
+msgid "Create Bezier"
+msgstr "Luo viivoja"
-#: ../bin/dbench.c:38
-msgid " T-Girder"
-msgstr "T-palkki"
+#: ../bin/cbezier.c:826
+#, fuzzy, c-format
+msgid "%s picked - now select a Point"
+msgstr "Valitsemattoman raideosan päätepiste"
-#: ../bin/dcar.c:3812
-msgid " and Part"
-msgstr " ja malli"
+#: ../bin/cbezier.c:852 ../bin/ccornu.c:802
+msgid "No changes made"
+msgstr ""
-#: ../wlib/gtklib/gtkfilsel.c:129
-msgid ""
-" exists\n"
-"Do you want to overwrite it?"
+#: ../bin/cbezier.c:856
+#, fuzzy
+msgid "Modify Bezier"
+msgstr "Muokkaa raidetta"
+
+#: ../bin/cbezier.c:870
+msgid "Modify Bezier Complete - select another"
msgstr ""
-" on olemassa.\n"
-"Haluatko korvata olemassa olevan tiedoston?"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:584
-msgid ""
-"\"Help|Recent Messages\" shows the last error and warning messages that were "
-"generated by the program. Also an explanation of each message is displayed."
+#: ../bin/cbezier.c:875
+msgid "Modify Bezier Cancelled"
msgstr ""
-"\"Ohje|Viimeisimmät viestit\" näyttää tapahtuneet virheet ja varoitukset. "
-"Valitsemalla jonkin viesteistä saat tarkennetun kuvauksen viestistä."
-#: ../bin/cgroup.c:606 ../bin/dcmpnd.c:451
-msgid "#"
-msgstr "#"
+#: ../bin/cbezier.c:964 ../bin/cbezier.c:1034
+#, fuzzy, c-format
+msgid "Place 1st end point of Bezier + Shift -> snap to %s end"
+msgstr "Aseta suoran raiteen 1. päätepiste"
-#: ../bin/compound.c:522
-msgid "# End Pt"
-msgstr "Päätepisteitä"
+#: ../bin/cbezier.c:987
+msgid "Shift used, but no Unconnected Track End there"
+msgstr ""
-#: ../bin/cturntbl.c:241
-msgid "# EndPt"
-msgstr "Päätepisteitä"
+#: ../bin/cbezier.c:1000
+msgid "Shift used, but no Line End there"
+msgstr ""
-#: ../bin/cgroup.c:607 ../bin/compound.c:523
-msgid "# Segments"
-msgstr "Lohkoja"
+#: ../bin/cbezier.c:1011
+msgid "Drag end of first Control Arm"
+msgstr ""
-#: ../bin/cprofile.c:636
-#, c-format
-msgid "%0.1f%% Elev = %0.2f"
-msgstr "%0.1f%% Korkeus = %0.2f"
+#: ../bin/cbezier.c:1019
+msgid "Drag end of second Control Arm"
+msgstr ""
-#: ../bin/cprofile.c:640
+#: ../bin/cbezier.c:1038
#, c-format
-msgid "%0.1f%% Elev = %0.2f %0.1f%%"
-msgstr "%0.1f%% Korkeus = %0.2f %0.1f%%"
+msgid "Select other end of Bezier, +Shift -> snap to %s end"
+msgstr ""
-#: ../bin/track.c:1532
-#, c-format
-msgid "%d Track(s) loosened"
-msgstr "%d raidetta irroitettu"
+#: ../bin/cbezier.c:1073
+msgid "Control Arm 1 is too short, try again"
+msgstr ""
-#: ../bin/dcmpnd.c:350
+#: ../bin/cbezier.c:1078
#, c-format
-msgid "%d Track(s) refreshed"
-msgstr "%d raideosa(a) päivitetty"
+msgid "Select other end of Bezier, +Shift -> snaps to %s end"
+msgstr ""
-#: ../bin/cturnout.c:1831
-#, c-format
-msgid "%d connections, max distance %0.3f (%s)"
-msgstr "%d liitosta, suurin etäisyys %0.3f (%s)"
+#: ../bin/cblock.c:105 ../bin/cblock.c:117 ../bin/cblock.c:160
+#: ../bin/ccontrol.c:167 ../bin/ccontrol.c:384 ../bin/compound.c:525
+#: ../bin/csensor.c:159 ../bin/csensor.c:356 ../bin/csignal.c:234
+#: ../bin/csignal.c:473 ../bin/csignal.c:484 ../bin/csignal.c:510
+#: ../bin/cswitchmotor.c:86 ../bin/cswitchmotor.c:105
+#: ../bin/cswitchmotor.c:216 ../bin/dcontmgm.c:91 ../bin/dlayer.c:445
+msgid "Name"
+msgstr "Nimi"
-#: ../bin/cgroup.c:588
-#, c-format
-msgid "%d objects ungrouped"
-msgstr "%d objetia purettu ryhmästä"
+#: ../bin/cblock.c:106 ../bin/cblock.c:118 ../bin/cblock.c:161
+#: ../bin/csensor.c:161 ../bin/csensor.c:362 ../bin/csignal.c:473
+#: ../bin/csignal.c:512
+msgid "Script"
+msgstr ""
-#: ../bin/cprint.c:229 ../bin/cprint.c:278
-#, c-format
-msgid "%d pages"
-msgstr "%d sivua"
+#: ../bin/cblock.c:119
+#, fuzzy
+msgid "Segments"
+msgstr "Lohkoja"
-#: ../bin/cpull.c:438 ../bin/cpull.c:583
-#, c-format
-msgid "%d tracks moved"
-msgstr "%d raideosaa siirretty"
+#: ../bin/cblock.c:162 ../bin/cdraw.c:219 ../bin/ctodesgn.c:137
+#: ../bin/ctodesgn.c:138 ../bin/ctodesgn.c:139 ../bin/ctodesgn.c:188
+#: ../bin/ctodesgn.c:191 ../bin/ctodesgn.c:211 ../bin/ctodesgn.c:216
+#: ../bin/ctodesgn.c:249 ../bin/ctodesgn.c:254 ../bin/ctodesgn.c:286
+#: ../bin/ctodesgn.c:289 ../bin/ctodesgn.c:292 ../bin/ctodesgn.c:327
+#: ../bin/ctodesgn.c:329 ../bin/ctodesgn.c:347 ../bin/ctodesgn.c:349
+#: ../bin/ctodesgn.c:368 ../bin/ctodesgn.c:370 ../bin/ctodesgn.c:389
+#: ../bin/ctodesgn.c:409 ../bin/ctodesgn.c:429 ../bin/ctodesgn.c:449
+#: ../bin/ctodesgn.c:487 ../bin/ctodesgn.c:506 ../bin/ctodesgn.c:507
+#: ../bin/ctrain.c:184 ../bin/tbezier.c:240 ../bin/tcornu.c:290
+#: ../bin/tcurve.c:356 ../bin/tstraigh.c:89
+msgid "Length"
+msgstr "Pituus"
-#: ../../../../build/xtrkcad/app/help/messages.h:140
-#, c-format
-msgid "%s"
-msgstr "%s"
+#: ../bin/cblock.c:163 ../bin/cdraw.c:215 ../bin/compound.c:517
+#: ../bin/tbezier.c:231 ../bin/tcornu.c:277 ../bin/tcurve.c:348
+#: ../bin/tease.c:503 ../bin/tstraigh.c:85
+msgid "End Pt 1: X"
+msgstr "Päätepiste 1: X"
-#: ../bin/ctodesgn.c:1718
-#, c-format
-msgid "%s %s Designer"
-msgstr "%s %s - suunnittelu"
+#: ../bin/cblock.c:164 ../bin/cdraw.c:216 ../bin/compound.c:519
+#: ../bin/tbezier.c:236 ../bin/tcornu.c:282 ../bin/tcurve.c:350
+#: ../bin/tease.c:505 ../bin/tstraigh.c:87
+msgid "End Pt 2: X"
+msgstr "Päätepiste 2: X"
-#: ../bin/cdraw.c:893
-#, c-format
-msgid "%s Color"
-msgstr "%s väri"
+#: ../bin/cblock.c:189
+#, fuzzy
+msgid "Change block"
+msgstr "Muuta raiteita"
-#: ../bin/ctodesgn.c:1411
+#: ../bin/cblock.c:240 ../bin/compound.c:694 ../bin/cswitchmotor.c:299
#, c-format
-msgid "%s Designer"
-msgstr "%s - suunnittelu"
+msgid "(%d): Layer=%d %s"
+msgstr "(%d): Taso=%d %s"
-#: ../bin/custom.c:216
-#, c-format
-msgid "%s Files|*.xtc"
-msgstr "%s tiedostot|*.xtc"
+#: ../bin/cblock.c:261 ../bin/cblock.c:910
+msgid "Block"
+msgstr ""
-#: ../bin/custom.c:221 ../bin/custom.c:226
+#: ../bin/cblock.c:425
#, c-format
-msgid "%s Import Files|*.%sti"
-msgstr "%s Tuotavat tiedostot|*.%sti"
+msgid "resolveBlockTrack: T%d[%d]: T%d doesn't exist"
+msgstr ""
-#: ../bin/cdraw.c:880
-#, c-format
-msgid "%s Line Width"
-msgstr "%s viivan paksuus"
+#: ../bin/cblock.c:425 ../bin/cswitchmotor.c:395 ../bin/dbench.c:147
+#: ../bin/dcar.c:4234 ../bin/dcar.c:4418 ../bin/dcar.c:4428 ../bin/dcar.c:4476
+#: ../bin/dcar.c:4483 ../bin/dcar.c:4501 ../bin/dcar.c:4514 ../bin/dcar.c:4519
+#: ../bin/dcar.c:4548 ../bin/dcar.c:4710 ../bin/dxfoutput.c:189
+#: ../bin/fileio.c:236 ../bin/fileio.c:541 ../bin/fileio.c:656
+#: ../bin/fileio.c:753 ../bin/fileio.c:944 ../bin/fileio.c:1212
+#: ../bin/fileio.c:1262 ../bin/fileio.c:1308 ../bin/macro.c:174
+#: ../bin/macro.c:838 ../bin/macro.c:854 ../bin/macro.c:1157
+#: ../bin/param.c:1947 ../bin/track.c:986 ../bin/track.c:1360
+#: ../bin/track.c:1651 ../bin/track.c:1655 ../bin/track.c:1675
+#: ../bin/track.c:1737 ../wlib/gtklib/wpref.c:248 ../wlib/gtklib/wpref.c:255
+msgid "Continue"
+msgstr "Jatka"
-#: ../bin/custom.c:241
-#, c-format
-msgid "%s Log Files|*.log"
-msgstr "%s Lokitiedostot|*.log"
+#: ../bin/cblock.c:502 ../bin/cblock.c:718
+msgid "Block must have a name!"
+msgstr ""
+
+#: ../bin/cblock.c:502 ../bin/cblock.c:522 ../bin/cblock.c:530
+#: ../bin/cblock.c:589 ../bin/cblock.c:706 ../bin/cblock.c:718
+#: ../bin/cblock.c:755 ../bin/ccontrol.c:445 ../bin/cdraw.c:103
+#: ../bin/cdraw.c:909 ../bin/cgroup.c:982 ../bin/cgroup.c:1035
+#: ../bin/cgroup.c:1050 ../bin/cgroup.c:1089 ../bin/cgroup.c:1115
+#: ../bin/cgroup.c:1174 ../bin/cgroup.c:1618 ../bin/cnote.c:100
+#: ../bin/cprint.c:490 ../bin/cprint.c:916 ../bin/cpull.c:497
+#: ../bin/cpull.c:512 ../bin/cpull.c:514 ../bin/cpull.c:516
+#: ../bin/cselect.c:677 ../bin/cselect.c:774 ../bin/cselect.c:1299
+#: ../bin/csensor.c:411 ../bin/csignal.c:641 ../bin/csignal.c:709
+#: ../bin/csnap.c:584 ../bin/csnap.c:717 ../bin/cstruct.c:769
+#: ../bin/cstruct.c:778 ../bin/cstruct.c:880 ../bin/cswitchmotor.c:462
+#: ../bin/cswitchmotor.c:491 ../bin/cswitchmotor.c:625
+#: ../bin/cswitchmotor.c:656 ../bin/ctext.c:179 ../bin/ctodesgn.c:158
+#: ../bin/ctodesgn.c:1048 ../bin/ctodesgn.c:1098 ../bin/ctodesgn.c:1211
+#: ../bin/ctodesgn.c:1513 ../bin/cturnout.c:2410 ../bin/cturnout.c:2537
+#: ../bin/cundo.c:161 ../bin/cundo.c:166 ../bin/dbitmap.c:68
+#: ../bin/dbitmap.c:125 ../bin/dbitmap.c:203 ../bin/dbitmap.c:238
+#: ../bin/dcar.c:3536 ../bin/dcar.c:3720 ../bin/dcar.c:3724 ../bin/dcar.c:3728
+#: ../bin/dcar.c:3733 ../bin/dcar.c:4047 ../bin/dcar.c:4158 ../bin/dcar.c:4538
+#: ../bin/dcmpnd.c:393 ../bin/dcmpnd.c:404 ../bin/dcmpnd.c:536
+#: ../bin/dcustmgm.c:194 ../bin/dcustmgm.c:200 ../bin/dcustmgm.c:209
+#: ../bin/dcustmgm.c:225 ../bin/dease.c:230 ../bin/dlayer.c:206
+#: ../bin/dlayer.c:228 ../bin/dlayer.c:798 ../bin/dlayer.c:804
+#: ../bin/doption.c:164 ../bin/doption.c:244 ../bin/doption.c:398
+#: ../bin/doption.c:410 ../bin/doption.c:476 ../bin/dprmfile.c:91
+#: ../bin/dprmfile.c:105 ../bin/dprmfile.c:119 ../bin/dprmfile.c:165
+#: ../bin/dprmfile.c:533 ../bin/draw.c:2278 ../bin/fileio.c:610
+#: ../bin/fileio.c:678 ../bin/fileio.c:793 ../bin/fileio.c:795
+#: ../bin/fileio.c:800 ../bin/fileio.c:964 ../bin/layout.c:312
+#: ../bin/macro.c:939 ../bin/macro.c:943 ../bin/macro.c:1020
+#: ../bin/macro.c:1126 ../bin/macro.c:1354 ../bin/macro.c:1370
+#: ../bin/misc.c:312 ../bin/misc.c:362 ../bin/misc.c:1634 ../bin/misc.c:1764
+#: ../bin/misc.c:1828 ../bin/misc.c:2404 ../bin/misc.c:2414 ../bin/misc.c:2434
+#: ../bin/misc.c:2437 ../bin/misc2.c:457 ../bin/param.c:1710
+#: ../bin/param.c:1828 ../bin/param.c:1831 ../bin/param.c:1954
+#: ../bin/param.c:1960 ../bin/smalldlg.c:89 ../bin/smalldlg.c:220
+#: ../bin/tease.c:1044 ../bin/track.c:1374 ../wlib/gtklib/wpref.c:122
+#: ../../../../build/work/app/bin/bllnhlp.c:541
+msgid "Ok"
+msgstr "Ok"
-#: ../bin/custom.c:236
-#, c-format
-msgid "%s Note Files|*.not"
-msgstr "%s Muistiinpanot|*.not"
+#: ../bin/cblock.c:530
+msgid "Block is discontigious!"
+msgstr ""
-#: ../bin/dcar.c:3839
-#, c-format
-msgid "%s Part: %s %s %s %s %s %s"
-msgstr "%s malli: %s %s %s %s %s %s"
+#: ../bin/cblock.c:535
+#, fuzzy
+msgid "Create block"
+msgstr "Luo nelikulmio"
-#: ../bin/custom.c:246
-#, c-format
-msgid "%s PartsList Files|*.log"
-msgstr "%s Osaluetelotiedostot|*.log"
+#: ../bin/cblock.c:571
+#, fuzzy
+msgid "Non track object skipped!"
+msgstr "Yhtään raidetta ei irroitettu"
-#: ../bin/cprofile.c:472
-#, c-format
-msgid "%s Profile: %s"
-msgstr "%s Profiili: %s"
+#: ../bin/cblock.c:575
+msgid "Selected track is already in a block, skipped!"
+msgstr ""
-#: ../bin/dcar.c:3855
-#, c-format
-msgid "%s Prototype: %s%s."
-msgstr "%s esikuva: %s%s."
+#: ../bin/cblock.c:589
+#, fuzzy
+msgid "Create Block"
+msgstr "Luo helix raide"
-#: ../bin/custom.c:231
+#: ../bin/cblock.c:619 ../bin/cblock.c:651
+#, fuzzy
+msgid "Select a track"
+msgstr "Valitse raideosat"
+
+#: ../bin/cblock.c:628 ../bin/cblock.c:659
+msgid "Not a block!"
+msgstr ""
+
+#: ../bin/cblock.c:664
#, c-format
-msgid "%s Record Files|*.%str"
-msgstr "%s Nauhoitustiedostot|*.%str"
+msgid "Really delete block %s?"
+msgstr ""
+
+#: ../bin/cblock.c:664 ../bin/cdraw.c:107 ../bin/cgroup.c:988
+#: ../bin/csignal.c:687 ../bin/cswitchmotor.c:581 ../bin/ctodesgn.c:1521
+#: ../bin/ctodesgn.c:2000 ../bin/ctrain.c:2425 ../bin/dbitmap.c:208
+#: ../bin/dcar.c:3672 ../bin/dcar.c:3750 ../bin/dcar.c:3834 ../bin/dcar.c:3853
+#: ../bin/dcar.c:4183 ../bin/dcar.c:4600 ../bin/dcontmgm.c:173
+#: ../bin/dcustmgm.c:141 ../bin/misc.c:1043 ../bin/misc.c:1048
+#: ../bin/misc.c:1113 ../bin/track.c:1376 ../bin/track.c:1473
+#: ../bin/track.c:1487
+msgid "Yes"
+msgstr "Kyllä"
-#: ../bin/custom.c:206
+#: ../bin/cblock.c:664 ../bin/cdraw.c:107 ../bin/cgroup.c:988
+#: ../bin/csignal.c:687 ../bin/cswitchmotor.c:581 ../bin/ctodesgn.c:1521
+#: ../bin/ctodesgn.c:2000 ../bin/ctrain.c:2425 ../bin/dcar.c:3672
+#: ../bin/dcar.c:3750 ../bin/dcar.c:3834 ../bin/dcar.c:3853 ../bin/dcar.c:4183
+#: ../bin/dcar.c:4600 ../bin/dcontmgm.c:173 ../bin/dcustmgm.c:141
+#: ../bin/misc.c:1043 ../bin/misc.c:1048 ../bin/misc.c:1113
+#: ../bin/track.c:1376 ../bin/track.c:1473 ../bin/track.c:1487
+msgid "No"
+msgstr "Ei"
+
+#: ../bin/cblock.c:665
+#, fuzzy
+msgid "Delete Block"
+msgstr "Poista raiteita"
+
+#: ../bin/cblock.c:706
+#, fuzzy, c-format
+msgid "Deleting block %s"
+msgstr "Poista raiteita"
+
+#: ../bin/cblock.c:722
+#, fuzzy
+msgid "Modify Block"
+msgstr "Muokkaa raidetta"
+
+#: ../bin/cblock.c:754
+msgid "Edit block"
+msgstr ""
+
+#: ../bin/cblock.c:760
#, c-format
-msgid "%s Turnout Designer"
-msgstr "%s Vaihteiden suunnittelu"
+msgid "Edit block %d"
+msgstr ""
+
+#: ../bin/ccontrol.c:168 ../bin/cnote.c:162 ../bin/csensor.c:160
+#: ../bin/csignal.c:235 ../bin/ctrain.c:182
+msgid "Position"
+msgstr "Sijainti"
+
+#: ../bin/ccontrol.c:169 ../bin/ccontrol.c:390
+msgid "On Script"
+msgstr ""
+
+#: ../bin/ccontrol.c:170 ../bin/ccontrol.c:392
+msgid "Off Script"
+msgstr ""
+
+#: ../bin/ccontrol.c:213
+#, fuzzy
+msgid "Change Control"
+msgstr "Junien hallinta"
+
+#: ../bin/ccontrol.c:255 ../bin/csensor.c:233
+#, fuzzy, c-format
+msgid "(%d [%s]): Layer=%d, at %0.3f,%0.3f"
+msgstr "(%d): Taso=%d %s"
+
+#: ../bin/ccontrol.c:268 ../bin/ccontrol.c:594
+#, fuzzy
+msgid "Control"
+msgstr "Junien hallinta"
+
+#: ../bin/ccontrol.c:386 ../bin/csensor.c:358 ../bin/csignal.c:486
+#, fuzzy
+msgid "Orgin X"
+msgstr "Marginaali"
+
+#: ../bin/ccontrol.c:388 ../bin/csensor.c:360 ../bin/csignal.c:488
+#, fuzzy
+msgid "Origin Y"
+msgstr "Origo: X"
+
+#: ../bin/ccontrol.c:404
+#, fuzzy
+msgid "Create Control"
+msgstr "Junien hallinta"
+
+#: ../bin/ccontrol.c:407
+#, fuzzy
+msgid "Modify Control"
+msgstr "Junien hallinta"
+
+#: ../bin/ccontrol.c:444
+#, fuzzy
+msgid "Edit control"
+msgstr "Junien hallinta"
+
+#: ../bin/ccontrol.c:484
+#, fuzzy
+msgid "Place control"
+msgstr "Aseta ympyrä"
+
+#: ../bin/ccornu.c:480
+msgid "Not close enough to end point, reselect"
+msgstr ""
+
+#: ../bin/ccornu.c:498
+msgid ""
+"Pick any circle to adjust it by dragging - Enter to accept, Esc to cancel"
+msgstr ""
-#: ../bin/custom.c:211
+#: ../bin/ccornu.c:509
+msgid "Track can't be split"
+msgstr ""
+
+#: ../bin/ccornu.c:522
+#, fuzzy
+msgid "Too close to other end of selected Track"
+msgstr "Nosta tai laske kaikkia valittuja raiteita"
+
+#: ../bin/ccornu.c:629
#, c-format
-msgid "%s Version %s"
-msgstr "%s versio %s"
+msgid "Must be on the %s Track"
+msgstr ""
-#: ../../../../build/xtrkcad/app/help/messages.h:130
+#: ../bin/ccornu.c:643
#, c-format
msgid ""
-"%s cannot read the demo file:\n"
-"%s"
+"Cornu : Min Radius=%s Max Rate of Radius Change=%s Length=%s Winding Arc=%s"
msgstr ""
-"%s ei voi lukea demotiedostoa:\n"
-"%s"
-#: ../wlib/gtklib/psprint.c:833
-#, c-format
-msgid "%s exists"
-msgstr "%s on olemassa"
+#: ../bin/ccornu.c:661
+msgid "Pick on point to adjust it along track - Enter to confirm, ESC to abort"
+msgstr ""
+
+#: ../bin/ccornu.c:671
+msgid "Cornu has too complex shape - adjust end pts"
+msgstr ""
+
+#: ../bin/ccornu.c:675
+#, fuzzy
+msgid "Create Cornu"
+msgstr "Luo viivoja"
-#: ../bin/cdraw.c:489
+#: ../bin/ccornu.c:679 ../bin/ccornu.c:831 ../bin/tcornu.c:722
+#: ../bin/tcornu.c:919 ../bin/tcornu.c:1174
#, c-format
-msgid "%s: Layer=%d"
-msgstr "%s: Taso=%d"
+msgid ""
+"Cornu Create Failed for p1[%0.3f,%0.3f] p2[%0.3f,%0.3f], c1[%0.3f,%0.3f] c2"
+"[%0.3f,%0.3f], a1=%0.3f a2=%0.3f, r1=%s r2=%s"
+msgstr ""
+
+#: ../bin/ccornu.c:776
+msgid "Track picked - now select a Point"
+msgstr ""
+
+#: ../bin/ccornu.c:806
+#, fuzzy
+msgid "Modify Cornu"
+msgstr "Muokkaa raidetta"
-#: ../../../../build/xtrkcad/app/help/messages.h:113
+#: ../bin/ccornu.c:822
#, c-format
-msgid "%s:%d- %s"
-msgstr "%s:%d- %s"
+msgid "Cornu Extension Create Failed for end %d"
+msgstr ""
-#: ../bin/misc.c:2066
-msgid "&Add"
-msgstr "&Lisää"
+#: ../bin/ccornu.c:866
+msgid "Modify Cornu Cancelled"
+msgstr ""
-#: ../bin/misc.c:454 ../bin/misc.c:478
-msgid "&Cancel"
-msgstr "&Peruuta"
+#: ../bin/ccornu.c:984
+#, fuzzy
+msgid "Place 1st end point of Cornu track on unconnected end-point"
+msgstr "Aseta suoran raiteen 1. päätepiste"
-#: ../bin/misc.c:2067
-msgid "&Change"
-msgstr "Muuta"
+#: ../bin/ccornu.c:997
+msgid "No Unconnected end point there"
+msgstr ""
-#: ../bin/misc.c:2295
-msgid "&Colors ..."
-msgstr "Värit ..."
+#: ../bin/ccornu.c:1005
+msgid "Place 2nd end point of Cornu track on unconnected end-point"
+msgstr ""
-#: ../wlib/gtklib/gtkhelp.c:1035
-msgid "&Contents"
-msgstr "Sisältö"
+#: ../bin/ccornu.c:1008
+msgid "No Unconnected Track End there"
+msgstr ""
-#: ../bin/misc.c:2160
-msgid "&Copy"
-msgstr "&Kopioi"
+#: ../bin/ccornu.c:1020
+#, fuzzy
+msgid "Move 1st end point of Cornu track along track 1"
+msgstr "Aseta suoran raiteen 1. päätepiste"
-#: ../bin/misc.c:2292
-msgid "&Debug ..."
-msgstr "Virheiden poisto (debug) ..."
+#: ../bin/ccornu.c:1038
+#, fuzzy
+msgid "Move 2nd end point of Cornu track along track 2"
+msgstr "Aseta suoran raiteen 1. päätepiste"
-#: ../bin/misc.c:2326
-msgid "&Demos"
-msgstr "Demot"
+#: ../bin/ccornu.c:1056
+msgid "Can't Split - Locked to End Point"
+msgstr ""
-#: ../bin/misc.c:2170
-msgid "&Deselect All"
-msgstr "Poista valinnat"
+#: ../bin/ccornu.c:1061
+#, fuzzy
+msgid "Point not on track 1"
+msgstr "Yhdistä kaksi raidetta"
-#: ../bin/misc.c:2284
-msgid "&Display ..."
-msgstr "Näyttö ..."
+#: ../bin/ccornu.c:1085
+msgid "Put other end of Cornu on an unconnected end point"
+msgstr ""
-#: ../bin/misc.c:454
-msgid "&Don't Save"
-msgstr "Älä tallenna"
+#: ../bin/ccurve.c:118
+#, fuzzy
+msgid ""
+"Drag from End-Point in direction of curve - Shift locks to track open end-"
+"point"
+msgstr "Vedä päätepisteestä kaarteen suuntaan"
-#: ../bin/misc.c:2068
-msgid "&Draw"
-msgstr "Piirto"
+#: ../bin/ccurve.c:120
+msgid "Drag from End-Point in direction of curve"
+msgstr "Vedä päätepisteestä kaarteen suuntaan"
-#: ../bin/misc.c:2287
-msgid "&Easements ..."
-msgstr "Kaarreloivennus ..."
+#: ../bin/ccurve.c:124
+#, fuzzy
+msgid "Drag from End-Point to Center - Shift locks to track open end-point"
+msgstr "Vedä päätepisteestä keskipisteeseen"
-#: ../bin/misc.c:2064
-msgid "&Edit"
-msgstr "&Muokkaa"
+#: ../bin/ccurve.c:126 ../bin/ccurve.c:187
+msgid "Drag from End-Point to Center"
+msgstr "Vedä päätepisteestä keskipisteeseen"
-#: ../bin/misc.c:2063
-msgid "&File"
-msgstr "&Tiedosto"
+#: ../bin/ccurve.c:129 ../bin/ccurve.c:187
+msgid "Drag from Center to End-Point"
+msgstr "Vedä keskipisteestä päätepisteeseen"
-#: ../bin/misc.c:2288
-msgid "&Fonts ..."
-msgstr "&Kirjasimet ..."
+#: ../bin/ccurve.c:132
+#, fuzzy
+msgid "Drag from one to other end of chord"
+msgstr "Vedä jänne päätepisteiden välille"
-#: ../bin/misc.c:2342
-msgid "&Group"
-msgstr "Ryhmittele"
+#: ../bin/ccurve.c:155
+msgid ""
+"No unconnected end-point on Track - Try again or release Shift and click"
+msgstr ""
-#: ../bin/misc.c:2073
-msgid "&Help"
-msgstr "&Ohje"
+#: ../bin/ccurve.c:160
+msgid "Not on a Track - Try again or release Shift and click"
+msgstr ""
-#: ../bin/misc.c:2138
-msgid "&Import"
-msgstr "Tuo tiedostosta"
+#: ../bin/ccurve.c:174
+msgid "End Locked: Drag out curve start"
+msgstr ""
-#: ../bin/misc.c:2171
-msgid "&Invert Selection"
-msgstr "Käänteinen valinta"
+#: ../bin/ccurve.c:175
+#, fuzzy
+msgid "Drag along curve start"
+msgstr "Vedä luodaksesi lähtevän raiteen"
-#: ../bin/misc.c:2248
-msgid "&Loosen Tracks"
-msgstr "Irroita raiteet"
+#: ../bin/ccurve.c:185
+msgid "End Locked: Drag out to center"
+msgstr ""
-#: ../bin/misc.c:2071
-msgid "&Macro"
-msgstr "Makro"
+#: ../bin/ccurve.c:193
+msgid "Drag to other end of chord"
+msgstr "Vedä jänne päätepisteiden välille"
-#: ../bin/misc.c:2069
-msgid "&Manage"
-msgstr "Hallinta"
+#: ../bin/ccurve.c:221
+#, c-format
+msgid "Start Locked: Drag out curve start - Angle=%0.3f"
+msgstr ""
-#: ../bin/misc.c:2127
-msgid "&New"
-msgstr "&Uusi"
+#: ../bin/ccurve.c:222
+#, c-format
+msgid "Drag out curve start - Angle=%0.3f"
+msgstr ""
-#: ../bin/misc.c:2128
-msgid "&Open ..."
-msgstr "&Avaa ..."
+#: ../bin/ccurve.c:226
+#, fuzzy, c-format
+msgid "Tangent Locked: Drag out center - Radius=%s Angle=%0.3f"
+msgstr "Tangentti raide: Pituus %s Kulma %0.3f"
-#: ../bin/misc.c:2070
-msgid "&Options"
-msgstr "Asetukset"
+#: ../bin/ccurve.c:227
+#, fuzzy, c-format
+msgid "Drag out center - Radius=%s Angle=%0.3f"
+msgstr "Säde=%s Kulma=%0.3f"
-#: ../bin/misc.c:2161
-msgid "&Paste"
-msgstr "L&iitä"
+#: ../bin/ccurve.c:233
+#, c-format
+msgid "Radius=%s Angle=%0.3f"
+msgstr "Säde=%s Kulma=%0.3f"
-#: ../bin/misc.c:2301
-msgid "&Play Back ..."
-msgstr "&Toisto ..."
+#: ../bin/ccurve.c:239
+#, c-format
+msgid "Length=%s Angle=%0.3f"
+msgstr "Pituus=%s Kulma=%0.3f"
-#: ../bin/misc.c:2294
-msgid "&Preferences ..."
-msgstr "&Ominaisuudet ..."
+#: ../bin/ccurve.c:289 ../bin/ccurve.c:397 ../bin/drawgeom.c:440
+msgid "Drag on Red arrows to adjust curve"
+msgstr "Asettele kaari vetämällä punaisista nuolista"
-#: ../bin/misc.c:2300
-msgid "&Record ..."
-msgstr "&Nauhoita ..."
+#: ../bin/ccurve.c:352 ../bin/cjoin.c:216 ../bin/cmodify.c:365
+#: ../bin/cturntbl.c:569
+#, c-format
+msgid "Straight Track: Length=%s Angle=%0.3f"
+msgstr "Suora raideosa: Pituus=%s Kulma=%0.3f"
-#: ../bin/misc.c:2197
-msgid "&Redraw"
-msgstr "Uudelleenpiirto"
+#: ../bin/ccurve.c:357 ../bin/cmodify.c:370 ../bin/drawgeom.c:324
+#: ../wlib/gtklib/ixhelp.c:235
+msgid "Back"
+msgstr "Takaisin"
-#: ../bin/misc.c:478
-msgid "&Revert"
-msgstr "Palauta"
+#: ../bin/ccurve.c:375
+#, c-format
+msgid "Curved Track: Radius=%s Angle=%0.3f Length=%s"
+msgstr "Kaareva raideosa: Säde=%s Kulma=%0.3f Pituus=%s"
-#: ../bin/misc.c:454 ../bin/misc.c:2131
-msgid "&Save"
-msgstr "&Tallenna"
+#: ../bin/ccurve.c:408 ../bin/cstraigh.c:133
+msgid "Create Straight Track"
+msgstr "Luo suora raideosa"
-#: ../bin/misc.c:2208
-msgid "&Tool Bar"
-msgstr "Työkalurivin painikkeet"
+#: ../bin/ccurve.c:420
+msgid "Create Curved Track"
+msgstr "Luo kaareva raideosa"
-#: ../bin/misc.c:2156
-msgid "&Undo"
-msgstr "&Kumoa"
+#: ../bin/ccurve.c:491
+msgid "Elevation Difference"
+msgstr "Korkeusero"
-#: ../bin/misc.c:2343
-msgid "&Ungroup"
-msgstr "Pura ryhmittely"
+#: ../bin/ccurve.c:492 ../bin/cdraw.c:218 ../bin/ctodesgn.c:467
+#: ../bin/tcurve.c:353
+msgid "Radius"
+msgstr "Säde"
-#: ../bin/misc.c:2065
-msgid "&View"
-msgstr "&Näytä"
+#: ../bin/ccurve.c:493 ../bin/tcurve.c:354
+msgid "Turns"
+msgstr "Kierroksia"
-#: ../bin/misc.c:2072
-msgid "&Window"
-msgstr "&Ikkuna"
+#: ../bin/ccurve.c:494
+msgid "Angular Separation"
+msgstr "Sisäänkäyntien välinen kulma"
-#: ../bin/misc.c:2187
-msgid "&Zoom"
-msgstr "&Zoom"
+#: ../bin/ccurve.c:495 ../bin/celev.c:45 ../bin/compound.c:521
+#: ../bin/tbezier.c:241 ../bin/tcornu.c:291 ../bin/tcurve.c:360
+#: ../bin/tease.c:513 ../bin/tstraigh.c:91
+msgid "Grade"
+msgstr "Nousukulma"
+
+#: ../bin/ccurve.c:496
+msgid "Vertical Separation"
+msgstr "Kerrosten välinen etäisyys"
-#: ../bin/compound.c:686
+#: ../bin/ccurve.c:498
+msgid "Total Length"
+msgstr "Kokonaispituus"
+
+#: ../bin/ccurve.c:574
#, c-format
-msgid "(%d): Layer=%d %s"
-msgstr "(%d): Taso=%d %s"
+msgid "Total Length %s"
+msgstr "Kokonaispituus %s"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:304
-msgid "- L girders\n"
-msgstr "- L-palkki\n"
+#: ../bin/ccurve.c:613 ../bin/ccurve.c:802 ../bin/tcurve.c:783
+msgid "Helix"
+msgstr "Helix"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:305
-msgid "- T girders\n"
-msgstr "- T-palkki\n"
+#: ../bin/ccurve.c:627
+msgid "Circle Radius"
+msgstr "Ympyrän säde"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:303
-msgid "- rectangular (1x2, 2x4 etc)\n"
-msgstr "- suora (25 x 50 mm, 50 x 100 mm jne)\n"
+#: ../bin/ccurve.c:632
+msgid "Click on Circle Edge"
+msgstr "Aseta ympyrän kehän piste"
-#: ../bin/dcar.c:3857
-msgid ". Enter new values or press Close"
-msgstr ". Syötä uudet arvot tai paina Sulje"
+#: ../bin/ccurve.c:636
+msgid "Click on Circle Center"
+msgstr "Aseta ympyrän keskipiste"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:432
-msgid "... or curved.\n"
-msgstr "...tai kaareva.\n"
+#: ../bin/ccurve.c:667
+msgid "Drag to Center"
+msgstr "Raahaa keskustaan"
-#: ../bin/cturnout.c:1836
-#, c-format
-msgid "0 connections (%s)"
-msgstr "0 liitosta (%s)"
+#: ../bin/ccurve.c:671
+msgid "Drag to Edge"
+msgstr "Raahaa kehälle"
-#: ../bin/cprint.c:139 ../bin/cprint.c:615
-msgid "0 pages"
-msgstr "0 sivua"
+#: ../bin/ccurve.c:692 ../bin/ccurve.c:696
+#, c-format
+msgid "Radius=%s"
+msgstr "Säde=%s"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:369
-msgid "0° is up or to the right"
-msgstr "Onko 0° ylhäällä vai oikealla"
+#: ../bin/ccurve.c:711
+msgid "Create Helix Track"
+msgstr "Luo helix raide"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:316
-msgid "1 - click on the frog and drag away to set the frog angle\n"
-msgstr "1 - klikkaa risteyskappaleen kohdalle ja raahaa asettaaksesi kulman.\n"
+#: ../bin/ccurve.c:718
+msgid "Create Circle Track"
+msgstr "Luo ympyrärata"
-#: ../bin/cprint.c:696
-msgid "1 page"
-msgstr "1 sivu"
+#: ../bin/ccurve.c:773
+msgid "Curve Track"
+msgstr "Kaareva raide"
-#: ../bin/misc.c:1910
-msgid "15 CCW"
-msgstr "15 VP"
+#: ../bin/ccurve.c:773
+msgid "Curve Tracks"
+msgstr "Kaarevat raideosat"
-#: ../bin/misc.c:1909
-msgid "15 CW"
-msgstr "15 MP"
+#: ../bin/ccurve.c:774
+msgid "Curve from End-Pt"
+msgstr "Kaari päätepisteestä"
-#: ../bin/misc.c:1905
-msgid "180 "
-msgstr "180 "
+#: ../bin/ccurve.c:775
+msgid "Curve from Tangent"
+msgstr "Kaari kehältä"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:318
-msgid "2 - click and drag to set the position of the points\n"
-msgstr "2 - Klikkaa ja raahaa asetellaksesi kielten päät.\n"
+#: ../bin/ccurve.c:776
+msgid "Curve from Center"
+msgstr "Kaari keskipisteestä"
-#: ../bin/ctodesgn.c:309
-msgid "3-way Turnout"
-msgstr "3-tie vaihde"
+#: ../bin/ccurve.c:777
+msgid "Curve from Chord"
+msgstr "Kaari päätepisteiden välille"
-#: ../bin/misc.c:1911
-msgid "30 CCW"
-msgstr "30 VP"
+#: ../bin/ccurve.c:778 ../bin/cdraw.c:1091
+#, fuzzy
+msgid "Bezier Curve"
+msgstr "Yhdistä kaarteet"
-#: ../bin/misc.c:1908
-msgid "30 CW"
-msgstr "30 MP"
+#: ../bin/ccurve.c:781 ../bin/tcurve.c:623
+msgid "Circle Track"
+msgstr "Ympyrärata"
-#: ../bin/misc.c:1912
-msgid "45 CCW"
-msgstr "45 VP"
+#: ../bin/ccurve.c:781
+msgid "Circle Tracks"
+msgstr "Ympyräradat"
-#: ../bin/misc.c:1907
-msgid "45 CW"
-msgstr "45 MP"
+#: ../bin/ccurve.c:782
+msgid "Fixed Radius Circle"
+msgstr "Määriteltysäteinen ympyrä"
-#: ../bin/misc.c:1913
-msgid "90 CCW"
-msgstr "90 VP"
+#: ../bin/ccurve.c:783
+msgid "Circle from Tangent"
+msgstr "Ympyrä kehältä"
-#: ../bin/misc.c:1906
-msgid "90 CW"
-msgstr "90 MP"
+#: ../bin/ccurve.c:784
+msgid "Circle from Center"
+msgstr "Ympyrä keskustasta"
-#: ../bin/doption.c:389
-msgid "999 63/64"
-msgstr "999 63/64"
+#: ../bin/cdraw.c:103
+msgid "Font Size must be > 0"
+msgstr "Kirjasinkoon on oltava > 0"
-#: ../bin/doption.c:388
-msgid "999 7/8"
-msgstr "999 7/8"
+#: ../bin/cdraw.c:217 ../bin/tcurve.c:352
+msgid "Center: X"
+msgstr "Keskipiste: X"
-#: ../bin/doption.c:394
-msgid "999' 11 63/64\""
-msgstr "999' 11 63/64\""
+#: ../bin/cdraw.c:220 ../bin/cdraw.c:230 ../bin/compound.c:523
+#: ../bin/cprint.c:143 ../bin/csignal.c:236 ../bin/csignal.c:490
+#: ../bin/ctodesgn.c:144 ../bin/ctodesgn.c:146 ../bin/ctodesgn.c:189
+#: ../bin/ctodesgn.c:212 ../bin/ctodesgn.c:214 ../bin/ctodesgn.c:250
+#: ../bin/ctodesgn.c:253 ../bin/ctodesgn.c:287 ../bin/ctodesgn.c:291
+#: ../bin/ctodesgn.c:328 ../bin/ctodesgn.c:348 ../bin/ctodesgn.c:369
+#: ../bin/ctodesgn.c:468 ../bin/ctrain.c:183 ../bin/tease.c:508
+#: ../bin/tstraigh.c:90
+msgid "Angle"
+msgstr "Kulma"
-#: ../bin/doption.c:393
-msgid "999' 11 7/8\""
-msgstr "999' 11 7/8\""
+#: ../bin/cdraw.c:221 ../bin/tcurve.c:358
+msgid "CCW Angle"
+msgstr "Vasemman pään kulma"
-#: ../bin/doption.c:392
-msgid "999' 11.9\""
-msgstr "999' 11.9\""
+#: ../bin/cdraw.c:222 ../bin/tcurve.c:359
+msgid "CW Angle"
+msgstr "Oikean pään kulma"
-#: ../bin/doption.c:391
-msgid "999' 11.99\""
-msgstr "999' 11.99\""
+#: ../bin/cdraw.c:223
+msgid "Point Count"
+msgstr "Pisteitä"
-#: ../bin/doption.c:390
-msgid "999' 11.999\""
-msgstr "999' 11.999\""
+#: ../bin/cdraw.c:224 ../bin/cdraw.c:847 ../bin/ctodesgn.c:156
+#: ../bin/tbezier.c:243
+msgid "Line Width"
+msgstr "Viivan paksuus"
-#: ../bin/doption.c:387 ../bin/doption.c:404
-msgid "999.9"
-msgstr "999,9"
+#: ../bin/cdraw.c:225 ../bin/cdraw.c:849 ../bin/cdraw.c:851 ../bin/cdraw.c:930
+#: ../bin/cdraw.c:955 ../bin/cmisc.c:97 ../bin/ctext.c:62 ../bin/ctext.c:146
+#: ../bin/ctodesgn.c:157 ../bin/dcar.c:1976 ../bin/dlayer.c:447
+#: ../bin/doption.c:476
+msgid "Color"
+msgstr "Väri"
-#: ../bin/doption.c:386 ../bin/doption.c:403
-msgid "999.99"
-msgstr "999,99"
+#: ../bin/cdraw.c:226 ../bin/cdraw.c:456 ../bin/cdraw.c:867
+msgid "Lumber"
+msgstr "Puutavara"
-#: ../bin/doption.c:385 ../bin/doption.c:402
-msgid "999.999"
-msgstr "999,999"
+#: ../bin/cdraw.c:227
+msgid "Orientation"
+msgstr "Suunta"
-#: ../bin/doption.c:408
-msgid "999.999cm"
-msgstr "999,999 cm"
+#: ../bin/cdraw.c:228 ../bin/cdraw.c:861
+#: ../../../../build/work/app/bin/bllnhlp.c:543
+msgid "Size"
+msgstr "Koko"
-#: ../bin/doption.c:411
-msgid "999.999m"
-msgstr "999,999 m"
+#: ../bin/cdraw.c:229 ../bin/compound.c:522 ../bin/cprint.c:140
+#: ../bin/cturntbl.c:245 ../bin/tease.c:507
+msgid "Origin: X"
+msgstr "Origo: X"
-#: ../bin/doption.c:405
-msgid "999.999mm"
-msgstr "999,999 mm"
+#: ../bin/cdraw.c:231 ../bin/ctext.c:60 ../bin/ctext.c:145
+msgid "Font Size"
+msgstr "Kirjasinkoko"
-#: ../bin/doption.c:409
-msgid "999.99cm"
-msgstr "999,99 cm"
+#: ../bin/cdraw.c:232 ../bin/cdraw.c:519 ../bin/ctext.c:264
+msgid "Text"
+msgstr "Teksti"
-#: ../bin/doption.c:412
-msgid "999.99m"
-msgstr "999,99 m"
+#: ../bin/cdraw.c:233 ../bin/cmisc.c:114 ../bin/tcurve.c:361
+#: ../bin/tease.c:514 ../bin/tstraigh.c:92
+msgid "Pivot"
+msgstr "Kiertopiste"
-#: ../bin/doption.c:406
-msgid "999.99mm"
-msgstr "999,99 mm"
+#: ../bin/cdraw.c:234 ../bin/cnote.c:163 ../bin/compound.c:529
+#: ../bin/cturntbl.c:248 ../bin/tbezier.c:242 ../bin/tcornu.c:292
+#: ../bin/tcurve.c:362 ../bin/tease.c:515 ../bin/tstraigh.c:93
+#: ../../../../build/work/app/bin/bllnhlp.c:621
+#: ../../../../build/work/app/bin/bllnhlp.c:622
+#: ../../../../build/work/app/bin/bllnhlp.c:623
+#: ../../../../build/work/app/bin/bllnhlp.c:624
+#: ../../../../build/work/app/bin/bllnhlp.c:625
+#: ../../../../build/work/app/bin/bllnhlp.c:626
+#: ../../../../build/work/app/bin/bllnhlp.c:627
+#: ../../../../build/work/app/bin/bllnhlp.c:628
+#: ../../../../build/work/app/bin/bllnhlp.c:629
+#: ../../../../build/work/app/bin/bllnhlp.c:630
+#: ../../../../build/work/app/bin/bllnhlp.c:631
+#: ../../../../build/work/app/bin/bllnhlp.c:632
+#: ../../../../build/work/app/bin/bllnhlp.c:633
+#: ../../../../build/work/app/bin/bllnhlp.c:634
+#: ../../../../build/work/app/bin/bllnhlp.c:635
+#: ../../../../build/work/app/bin/bllnhlp.c:636
+#: ../../../../build/work/app/bin/bllnhlp.c:637
+#: ../../../../build/work/app/bin/bllnhlp.c:638
+#: ../../../../build/work/app/bin/bllnhlp.c:639
+#: ../../../../build/work/app/bin/bllnhlp.c:640
+msgid "Layer"
+msgstr "Taso"
-#: ../bin/doption.c:410
-msgid "999.9cm"
-msgstr "999,9 cm"
+#: ../bin/cdraw.c:446
+msgid "Straight Line"
+msgstr "Suora viiva"
-#: ../bin/doption.c:413
-msgid "999.9m"
-msgstr "999,9 m"
+#: ../bin/cdraw.c:449 ../bin/cdraw.c:1083
+msgid "Dimension Line"
+msgstr "Mittajana"
-#: ../bin/doption.c:407
-msgid "999.9mm"
-msgstr "999,9 mm"
+#: ../bin/cdraw.c:464 ../bin/cdraw.c:868 ../bin/cdraw.c:1085
+msgid "Table Edge"
+msgstr "Pöydän reuna"
-#: ../bin/doption.c:399
-msgid "999ft 11 63/64in"
-msgstr "999ft 11 63/64in"
+#: ../bin/cdraw.c:476 ../bin/cdraw.c:873 ../bin/cdraw.c:874 ../bin/cdraw.c:875
+msgid "Circle"
+msgstr "Ympyrä"
-#: ../bin/doption.c:398
-msgid "999ft 11 7/8in"
-msgstr "999ft 11 7/8in"
+#: ../bin/cdraw.c:484
+msgid "Curved Line"
+msgstr "Kaari"
-#: ../bin/doption.c:395
-msgid "999ft 11.999in"
-msgstr "999ft 11.999in"
+#: ../bin/cdraw.c:493 ../bin/cdraw.c:878 ../bin/cdraw.c:879 ../bin/cdraw.c:880
+msgid "Filled Circle"
+msgstr "Täytetty ympyrä"
-#: ../bin/doption.c:396
-msgid "999ft 11.99in"
-msgstr "999ft 11.99in"
+#: ../bin/cdraw.c:498 ../bin/cdraw.c:1102
+msgid "Poly Line"
+msgstr "Monikulmio"
-#: ../bin/doption.c:397
-msgid "999ft 11.9in"
-msgstr "999ft 11.9in"
+#: ../bin/cdraw.c:504 ../bin/cdraw.c:882 ../bin/cdraw.c:1103
+msgid "Polygon"
+msgstr "Monikulmio"
-#: ../wlib/gtklib/psprint.c:839 ../wlib/gtklib/psprint.c:852
-msgid ": cannot open"
-msgstr ": ei voida avata"
+#: ../bin/cdraw.c:525
+#, c-format
+msgid "%s: Layer=%d"
+msgstr "%s: Taso=%d"
-#: ../bin/csnap.c:534
-msgid "A"
-msgstr "K"
+#: ../bin/cdraw.c:536 ../bin/cdraw.c:972
+msgid "Tiny"
+msgstr "Pikkuruinen"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:320
-msgid "A Hand Laid Turnout is composed of several parts.\n"
-msgstr "Käsin asetellut vaihteet koostuvat useasta osasta.\n"
+#: ../bin/cdraw.c:537 ../bin/cdraw.c:973
+msgid "Small"
+msgstr "Pieni"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:156
-msgid "A Polygon is drawn in the same way\n"
-msgstr "Täytetty monikulmio piirretään samalla tavalla.\n"
+#: ../bin/cdraw.c:538 ../bin/cdraw.c:974
+msgid "Medium"
+msgstr "Keskikokoinen"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:154
-msgid ""
-"A Polyline is drawn by dragging to place each of the point in the Polyline.\n"
-msgstr "Monikulmio piirretään raahaamalla kukin kulma paikoilleen.\n"
+#: ../bin/cdraw.c:539 ../bin/cdraw.c:975
+msgid "Large"
+msgstr "Suuri"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:426
-msgid "A Table Edge is attracted to the ends of other Table Edges.\n"
-msgstr "Pyödän reunojen päät vetävät toisiaan puoleensa.\n"
+#: ../bin/cdraw.c:853 ../bin/cdraw.c:953
+msgid "Lumber Type"
+msgstr "Puutavaran tyyppi"
-#: ../../../../build/xtrkcad/app/help/messages.h:108
-#, c-format
-msgid ""
-"A comma was expected after this quoted field.\n"
-"%s\n"
-"\n"
-"Do you want to continue reading the file?"
-msgstr ""
-"Odotettiin pilkkua tämän kentän jälkeen.\n"
-"%s\n"
-"\n"
-"Haluatko jatkaa tiedoston lukemista?"
+#: ../bin/cdraw.c:865
+msgid "Straight"
+msgstr "Suora"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:256
-msgid "A connecting track is drawn between the two tracks.\n"
-msgstr "Yhdistävä raide piirretään yhdistettävien raiteiden väliin.\n"
+#: ../bin/cdraw.c:866
+msgid "Dimension"
+msgstr "Etäisyys"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:286
-msgid ""
-"A connecting track is drawn between the two tracks. Notice how it moves as "
-"the cursor is dragged along the second track.\n"
-msgstr ""
-"Yhdistävä raide piirretään yhdistettävien raiteiden väliin. Huomaa kuinka se "
-"siirtyy raahattaessa osoitinta toista raidetta pitkin.\n"
+#: ../bin/cdraw.c:869 ../bin/cdraw.c:870 ../bin/cdraw.c:871 ../bin/cdraw.c:872
+msgid "Curved"
+msgstr "Kaareva"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:200
-msgid ""
-"A curved track is selected and it's new End-Point is determined by the angle "
-"to the cursor.\n"
-msgstr "Kaarteen päätepistettä voidaan siirtää kehää pitkin.\n"
+#: ../bin/cdraw.c:876 ../bin/cdraw.c:1100
+msgid "Box"
+msgstr "Nelikulmio"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:478
-msgid ""
-"A menu list of various type of turnouts and sectional tracks you can define"
-msgstr ""
-"Valikko eri tyyppisistä vaihteista ja palaraiteista joita voit määritellä"
+#: ../bin/cdraw.c:877
+msgid "Polyline"
+msgstr "Monikulmio"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:573
-msgid ""
-"A number of example layouts are provided. These files are located in the "
-"'examples' directory where you installed XTrackCAD. The \"File|Open\" "
-"command will open that directory when first used."
-msgstr ""
-"Tarjolla on useita esimerkkejä ratasuunnitelmista. Nämä tiedostot "
-"sijaitsevat 'examples' hakemistossa sen hakemiston alla, johon XTrackCAD on "
-"asennettu. \"Tiedosto|Avaa\" näyttää tämän hakemiston ensimmäisellä "
-"käyttökerralla."
+#: ../bin/cdraw.c:881 ../bin/cdraw.c:1101
+msgid "Filled Box"
+msgstr "Täytetty nelikulmio"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:396
-msgid "A single Left-Click selects tracks.\n"
-msgstr "Yksi klikkaus hiiren vasemmalla painikkeella valitsee raiteen.\n"
+#: ../bin/cdraw.c:883 ../bin/tbezier.c:401
+#, fuzzy
+msgid "Bezier Line"
+msgstr "Ympyrät"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:530
-msgid ""
-"A tunnel portal is drawn at the boundary between hidden and normal track.\n"
-msgstr ""
-"Tunnelin suuaukko piirretään piilotetun ja normaalin raideosan "
-"liitoskohtaan.\n"
+#: ../bin/cdraw.c:928
+#, c-format
+msgid "%s Line Width"
+msgstr "%s viivan paksuus"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:650
-msgid ""
-"A variety of Benchwork (rectangular, L-girder and T-girder) can be drawn. \n"
-"Use the Below command to move the Benchwork below the track for proper "
-"display."
-msgstr ""
-"Erilaisia runkorakenteita voidaan piirtää (suora, L-palkki ja T-palkki).\n"
-"Käytä \"alimmaiseksi\" komentoa siirtääksesi runkorakenteen radan ja "
-"maisemoinnin alapuolelle."
+#: ../bin/cdraw.c:942
+#, c-format
+msgid "%s Color"
+msgstr "%s väri"
-#: ../bin/misc.c:2175
-msgid "A&bove"
-msgstr "Päällimmäiseksi"
+#: ../bin/cdraw.c:970
+msgid "Dimension Line Size"
+msgstr "Mittajanan koko"
-#: ../bin/misc.c:297 ../bin/misc.c:300
-msgid "ABORT"
-msgstr "KESKEYTÄ"
+#: ../bin/cdraw.c:983
+msgid "Drag to create Table Edge"
+msgstr "Piirrä pöydän reuna"
-#: ../wlib/gtklib/psprint.c:1324
-msgid "Abort Print"
-msgstr "Keskeytä tulostus"
+#: ../bin/cdraw.c:1082
+msgid "Line"
+msgstr "Viiva"
-#: ../bin/misc.c:1853 ../bin/misc.c:2330
-msgid "About"
-msgstr "Tietoja"
+#: ../bin/cdraw.c:1082
+msgid "Draw Line"
+msgstr "Piirrä viiva"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:13
-msgid "About box dialog"
-msgstr "Tietoja -ikkuna"
+#: ../bin/cdraw.c:1083
+msgid "Draw Dimension Line"
+msgstr "Piirrä mittajana"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:29
-msgid "Abutting tracks"
-msgstr "Vastakkaiset raideosat"
+#: ../bin/cdraw.c:1084 ../../../../build/work/app/i18n/custmsg.h:53
+msgid "Benchwork"
+msgstr "Runkorakenne"
-#: ../../../../build/xtrkcad/app/help/messages.h:123
-msgid ""
-"According to values that have been entered the diverging\n"
-"track does not connect with the tangent track. Please\n"
-"check the values entered and try again. Check the angle\n"
-"is entered as a frog number or in degrees as specified\n"
-"by Angle Mode radio buttons."
-msgstr ""
-"Antamiesi arvojen perusteella, poikkeava ja suora\n"
-"raide eivät kohtaa.\n"
-"Tarkasta arvot ja kokeile uudelleen.\n"
-"Tarkasta myös onko kulma annettu risteysnumerona vai asteina."
+#: ../bin/cdraw.c:1084
+msgid "Draw Benchwork"
+msgstr "Piirrä runkorakenne"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:225
-msgid "Action to invoke on Right-Click"
-msgstr "Hiiren 2-painikkeen toiminto"
+#: ../bin/cdraw.c:1085
+msgid "Draw Table Edge"
+msgstr "Piirrä pöydän reuna"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:168
-msgid "Active layer list and layer buttons"
-msgstr "Tasoluettelo ja tasopainikkeet"
+#: ../bin/cdraw.c:1087
+msgid "Curve End"
+msgstr "Kaari päätepisteestä"
-#: ../bin/dcar.c:2819 ../bin/dcar.c:2828 ../bin/dcar.c:2837 ../bin/dcar.c:3976
-#: ../bin/dcar.c:4104
-msgid "Add"
-msgstr "Lisää"
+#: ../bin/cdraw.c:1087
+msgid "Draw Curve from End"
+msgstr "Piirrä kaari päätepisteestä"
-#: ../bin/cselect.c:500
-msgid "Add Elevations"
-msgstr "Päätepisteiden korkeudet"
+#: ../bin/cdraw.c:1088
+msgid "Curve Tangent"
+msgstr "Kaari kehältä"
-#: ../wlib/gtklib/psprint.c:1296
-msgid "Add Margin"
-msgstr "Lisää marginaali"
+#: ../bin/cdraw.c:1088
+msgid "Draw Curve from Tangent"
+msgstr "Piirrä kaari kehältä"
-#: ../wlib/gtklib/psprint.c:1288
-msgid "Add Printer"
-msgstr "Lisää tulostin"
+#: ../bin/cdraw.c:1089
+msgid "Curve Center"
+msgstr "Kaari keskipisteestä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:215
-msgid "Add a new Car Item"
-msgstr "Lisää uusi vaunu tai veturi"
+#: ../bin/cdraw.c:1089
+msgid "Draw Curve from Center"
+msgstr "Piirrä kaari keskipisteestä"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:377
-msgid ""
-"Add an arrow head to indicate the tracks that connect to the rest of the "
-"layout.\n"
-msgstr ""
-"Lisää nuolenkärjet kuvaamaan raiteiden jatkumista muihin radan osiin.\n"
+#: ../bin/cdraw.c:1090
+msgid "Curve Chord"
+msgstr "Kaari jänteestä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:172
-msgid "Add or Update car object"
-msgstr "Lisää/päivitä tämä vaunu tai veturi"
+#: ../bin/cdraw.c:1090
+msgid "Draw Curve from Chord"
+msgstr "Piirrä kaari·päätepisteiden·välille"
-#: ../bin/dcar.c:3804
-#, c-format
-msgid "Added %ld new Cars"
-msgstr "Lisätty %ld uutta vaunua/veturia"
+#: ../bin/cdraw.c:1091
+#, fuzzy
+msgid "Draw Bezier"
+msgstr "Piirrä viiva"
-#: ../bin/dcar.c:3839 ../bin/dcar.c:3856
-msgid "Added new"
-msgstr "Lisätty uusi"
+#: ../bin/cdraw.c:1094
+msgid "Circle Tangent"
+msgstr "Ympyrä kehältä"
-#: ../bin/dcar.c:3806
-msgid "Added new Car"
-msgstr "Lisätty uusi vaunu/veturi"
+#: ../bin/cdraw.c:1094
+msgid "Draw Circle from Tangent"
+msgstr "Piirrä ympyrä kehältä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:72
-msgid "Adjust snap grid"
-msgstr "Muuta kohdistusruudukon asetuksia"
+#: ../bin/cdraw.c:1095
+msgid "Circle Center"
+msgstr "Ympyrä keskustasta"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:212
-msgid "After selecting the object, drag a line which will form the mirror.\n"
-msgstr "Valittuasi objektin, raahaa hiirellä peilauslinja.\n"
+#: ../bin/cdraw.c:1095
+msgid "Draw Circle from Center"
+msgstr "Piirrä ympyrä keskipisteestä"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:191
-msgid ""
-"After we release the Profile is updated to show the new Elevation and "
-"Grade.\n"
-msgstr ""
-"Kun vapautamme hiiren painikkeen, profiili on päivitetty uuden korkeustason "
-"mukaisesti.\n"
+#: ../bin/cdraw.c:1097
+msgid "Circle Filled Tangent"
+msgstr "Täytetty ympyrä kehältä"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:449
-msgid ""
-"After working with Sectional track you might get to point where these mis-"
-"alignments have accumulated and you wish to remove them.\n"
-msgstr ""
-"Työskenneltyäsi palaraiteiden kanssa voit päätyä tilanteeseen, jossa nämä "
-"kohdistusten heitot ovat kertautuneet ja haluat korjata ne.\n"
+#: ../bin/cdraw.c:1097
+msgid "Draw Filled Circle from Tangent"
+msgstr "Piirrä täytetty ympyrä kehältä"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:182
-msgid ""
-"Again we use Shift-Right-Click to display the Profile Options menu and "
-"select ignore.\n"
-msgstr "Käytämme jälleen ponnahdusvalikkoa ja valitsemme \"Hylkää\".\n"
+#: ../bin/cdraw.c:1098
+msgid "Circle Filled Center"
+msgstr "Täytetty ympyrä keskustasta"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:235
-msgid "Again, if we drag across the track we can flip the stucture.\n"
-msgstr ""
-"Rakennus voidaan jälleen peilata raahaamalla raiteen puolelta toiselle.\n"
+#: ../bin/cdraw.c:1098
+msgid "Draw Filled Circle from Center"
+msgstr "Piirrä täytetty ympyrä keskipisteestä"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:511
-msgid ""
-"Again, since there is no End-Point nearby, we split the track to create an "
-"End-Point we can use,\n"
-msgstr ""
-"Taaskaan ei ole sopivaa raideliitosta lähistöllä, joten pilkomme raiteen\n"
+#: ../bin/cdraw.c:1100
+msgid "Draw Box"
+msgstr "Piirrä nelikulmio"
-#: ../bin/cselect.c:1858
-msgid "Align"
-msgstr "Kohdista"
+#: ../bin/cdraw.c:1101
+msgid "Draw Filled Box"
+msgstr "Piirrä täytetty nelikulmio"
-#: ../bin/doption.c:188
-msgid "All"
-msgstr "Kaikki"
+#: ../bin/cdraw.c:1102
+msgid "Draw Polyline"
+msgstr "Piirrä monikulmio"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:566
-msgid "All done.\n"
-msgstr "Valmis.\n"
+#: ../bin/cdraw.c:1103
+msgid "Draw Polygon"
+msgstr "Piirrä täytetty monikulmio"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:315
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:318
-msgid "Allows the spacing to be subdivided"
-msgstr "Aliviivojen jako"
+#: ../bin/cdraw.c:1119
+msgid "Straight Objects"
+msgstr "Suorat objektit"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:176
-msgid ""
-"Also, the Computed Elevations and Grade marker on the right side of the "
-"layout have been updated.\n"
-msgstr "Myös lasketut korkeustasot sekä nousukulman merkintä on päivitetty.\n"
+#: ../bin/cdraw.c:1119
+msgid "Draw Straight Objects"
+msgstr "Suorien objektien piirto"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:352
-msgid "Also, we will use a 1/8\" grid to lay out our controls.\n"
-msgstr "Käytämme myös 1/8 tuuman kohdistusruudukkoa.\n"
+#: ../bin/cdraw.c:1120
+msgid "Curved Lines"
+msgstr "Kaaret"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:402
-msgid "And Right-Drag de-selects all tracks within an area.\n"
-msgstr ""
-"Raahaaminen hiiren oikealla painikkeella puolestaan poistaa alueella olevien "
-"kohteiden valinnat.\n"
+#: ../bin/cdraw.c:1120
+msgid "Draw Curved Lines"
+msgstr "Kaarien piirto"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:379
-msgid "And add some labels.\n"
-msgstr "Lisää joitakin merkintöjä.\n"
+#: ../bin/cdraw.c:1121
+msgid "Circle Lines"
+msgstr "Ympyrät"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:81
-msgid "And move the Label out of the way.\n"
-msgstr "Ja siirrämme otsikon pois tieltä.\n"
+#: ../bin/cdraw.c:1121
+msgid "Draw Circles"
+msgstr "Ympyröiden piirto"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:386
-msgid "And move the title over as well.\n"
-msgstr "Siirrä myös otsikkoa.\n"
+#: ../bin/cdraw.c:1122
+msgid "Shapes"
+msgstr "Muodot"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:95
-msgid "And now Ungroup it (from the Tools Menu)\n"
-msgstr "Ja sitten puramme ryhmittelyn.\n"
+#: ../bin/cdraw.c:1122
+msgid "Draw Shapes"
+msgstr "Muotojen piirto"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:445
-msgid "And now the gap is closed.\n"
-msgstr "Nyt rako on suljettu.\n"
+#: ../bin/celev.c:44 ../bin/cprofile.c:1383 ../bin/csplit.c:107
+#: ../bin/csplit.c:112 ../bin/dease.c:64 ../bin/doption.c:101
+#: ../bin/doption.c:103
+msgid "None"
+msgstr "Ei mitään"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:144
-msgid "And place a turnout to connect the new track.\n"
-msgstr "Ja aseta vaihde liittääksesi uuden raiteen.\n"
+#: ../bin/celev.c:44
+msgid "Defined"
+msgstr "Määritelty"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:494
-msgid "And set the Elevation to 4.\n"
-msgstr "Ja aseta haluttu korkeustaso.\n"
+#: ../bin/celev.c:44
+msgid "Hidden"
+msgstr "Piilossa"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:569
-msgid "And then select Medium Tracks from the Edit menu.\n"
-msgstr "Valitse sitten keskikokoiset raiteet Muokkaa-valikosta.\n"
+#: ../bin/celev.c:45
+msgid "Computed"
+msgstr "Laskettu"
-#: ../bin/ctodesgn.c:136 ../bin/ctodesgn.c:138 ../bin/ctodesgn.c:181
-#: ../bin/ctodesgn.c:204 ../bin/ctodesgn.c:206 ../bin/ctodesgn.c:242
-#: ../bin/ctodesgn.c:245 ../bin/ctodesgn.c:279 ../bin/ctodesgn.c:283
-#: ../bin/ctodesgn.c:320 ../bin/ctodesgn.c:340 ../bin/ctodesgn.c:361
-#: ../bin/ctodesgn.c:460 ../bin/cprint.c:135 ../bin/tease.c:502
-#: ../bin/ctrain.c:172 ../bin/compound.c:518 ../bin/tstraigh.c:81
-#: ../bin/cdraw.c:189 ../bin/cdraw.c:199
-msgid "Angle"
-msgstr "Kulma"
+#: ../bin/celev.c:45
+msgid "Station"
+msgstr "Asema"
-#: ../bin/cselect.c:1572
-#, c-format
-msgid "Angle %0.2f"
-msgstr "Kulma %0.2f"
+#: ../bin/celev.c:45 ../bin/cprofile.c:1382 ../bin/dcmpnd.c:74
+#: ../bin/misc.c:2352
+msgid "Ignore"
+msgstr "Hylkää"
-#: ../bin/cselect.c:1256 ../bin/cselect.c:1286
-#, c-format
-msgid "Angle %0.3f"
-msgstr "Kulma %0.3f"
+#: ../bin/celev.c:123 ../bin/celev.c:168
+msgid "There are no reachable Defined Elevations"
+msgstr "Ei määriteltyjä korkeustasoja saatavilla"
-#: ../bin/ctodesgn.c:460
-msgid "Angle (Degrees)"
-msgstr "Kulma (asteina)"
+#: ../bin/celev.c:204
+msgid "Set Elevation"
+msgstr "Aseta korkeus"
-#: ../bin/chndldto.c:132
+#: ../bin/celev.c:308 ../bin/celev.c:325
#, c-format
-msgid "Angle = %0.2f Frog# = %0.2f"
-msgstr "Kulma = %0.2f Risteysnumero = %0.2f"
+msgid "Elev = %s"
+msgstr "Korkeus = %s"
-#: ../bin/cstruct.c:691
+#: ../bin/celev.c:310 ../bin/celev.c:327
#, c-format
-msgid "Angle = %0.3f"
-msgstr "Kulma = %0.3f"
+msgid "Dist = %s"
+msgstr "Etäisyys = %s"
-#: ../bin/cturnout.c:2182
+#: ../bin/celev.c:316 ../bin/celev.c:333 ../bin/celev.c:374 ../bin/celev.c:381
+#: ../bin/celev.c:384
#, c-format
-msgid "Angle = %0.3f (%s)"
-msgstr "Kulma = %0.3f (%s)"
+msgid "Undefined"
+msgstr "Määrittelemätön"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:334
-msgid "Angle betweek helix entrance and exit"
-msgstr "Sisäänmenon ja ulostulon välinen kulma"
+#: ../bin/celev.c:406 ../bin/celev.c:472
+msgid "Elevation"
+msgstr "Korkeustaso"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:449
-msgid "Angle in degrees"
-msgstr "Kulma (asteina)"
+#: ../bin/celev.c:406 ../bin/cmisc.c:401 ../bin/cprofile.c:1279
+#: ../bin/dcontmgm.c:300 ../bin/dcustmgm.c:358 ../bin/dlayer.c:1023
+#: ../bin/dpricels.c:154
+msgid "Done"
+msgstr "Valmis"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:484
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:485
-msgid "Angle of the specified track to the center line of the turnout"
-msgstr "Raiteen ja vaihteen keskilinjan välinen kulma"
+#: ../bin/celev.c:434 ../bin/csplit.c:92 ../bin/csplit.c:155
+msgid "Split Track"
+msgstr "Pilko raide"
-#: ../bin/misc.c:1870
-msgid "Angle:"
-msgstr "Kulma:"
+#: ../bin/cgroup.c:591
+msgid "Ungroup Object"
+msgstr "Pura ryhmittely"
-#: ../bin/ccurve.c:156
+#: ../bin/cgroup.c:603
#, c-format
-msgid "Angle=%0.3f"
-msgstr "Kulma=%0.3f"
+msgid "%d objects ungrouped"
+msgstr "%d objetia purettu ryhmästä"
-#: ../bin/doption.c:362
-msgid "Angles"
-msgstr "Kulmat"
+#: ../bin/cgroup.c:605
+msgid "No objects ungrouped"
+msgstr "Yhtään objektia ei purettu ryhmästä"
-#: ../bin/tcurve.c:347
-msgid "Angular Length"
-msgstr "Kulma"
+#: ../bin/cgroup.c:614
+msgid "Replace with new group?"
+msgstr "Korvaa uudella ryhmällä?"
-#: ../bin/ccurve.c:391
-msgid "Angular Separation"
-msgstr "Sisäänkäyntien välinen kulma"
+#: ../bin/cgroup.c:619 ../bin/compound.c:524 ../bin/cstruct.c:70
+#: ../bin/ctodesgn.c:148 ../bin/ctodesgn.c:1772 ../bin/cturnout.c:76
+#: ../bin/dcar.c:1941 ../bin/dcar.c:4078 ../bin/dcar.c:4083
+#: ../bin/dcmpnd.c:450 ../bin/dcustmgm.c:50
+#: ../../../../build/work/app/bin/bllnhlp.c:345
+#: ../../../../build/work/app/bin/bllnhlp.c:520
+msgid "Manufacturer"
+msgstr "Valmistaja"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:229
-msgid ""
-"Another option of the <Rotate> command popup-menu is to Align the Selected "
-"object with some other object.\n"
-msgstr ""
-"Toinen vaihtoehto ponnahdusvalikossa on suunnata valittu objekti jonkin "
-"toisen objektin mukaisesti.\n"
+#: ../bin/cgroup.c:620 ../bin/cmisc.c:401 ../bin/cstruct.c:70
+#: ../bin/ctodesgn.c:1773 ../bin/ctodesgn.c:1774 ../bin/ctrain.c:186
+#: ../bin/cturnout.c:76 ../bin/dcar.c:1957 ../bin/dcar.c:4079
+#: ../bin/dcar.c:4084 ../bin/dcmpnd.c:451 ../bin/dcustmgm.c:51
+#: ../bin/denum.c:182 ../bin/denum.c:183 ../bin/denum.c:186
+#: ../../../../build/work/app/bin/bllnhlp.c:346
+msgid "Description"
+msgstr "Kuvaus"
-#: ../bin/dbitmap.c:187
-#, c-format
-msgid "Approximate file size : %0.0f"
-msgstr "Arvioitu tiedostokoko: %0.0f"
+#: ../bin/cgroup.c:621 ../bin/dcmpnd.c:452
+msgid "#"
+msgstr "#"
-#: ../bin/dbitmap.c:189
-#, c-format
-msgid "Approximate file size : %0.1fKb"
-msgstr "Arvioitu tiedostokoko: %0.1fKt"
+#: ../bin/cgroup.c:622 ../bin/compound.c:528
+msgid "# Segments"
+msgstr "Lohkoja"
-#: ../bin/dbitmap.c:191
-#, c-format
-msgid "Approximate file size : %0.1fMb"
-msgstr "Arvioitu tiedostokoko: %0.1fMt"
+#: ../bin/cgroup.c:1089
+msgid "No endpts"
+msgstr "Ei päätepisteitä"
-#: ../bin/dbitmap.c:153
-msgid "Approximate file size: 999.9Mb"
-msgstr "Arvioitu tiedostokoko: 999.9Mt"
+#: ../bin/cgroup.c:1174
+msgid "No paths"
+msgstr "Ei reittejä"
-#: ../bin/param.c:103
-msgid "Aqua"
-msgstr ""
+#: ../bin/cgroup.c:1508 ../bin/cgroup.c:1562
+msgid "Group Tracks"
+msgstr "Ryhmittele raideosia"
-#: ../bin/param.c:102
-msgid "Aquamarine"
-msgstr ""
+#: ../bin/cgroup.c:1618
+msgid "Group Objects"
+msgstr "Ryhmittele"
-#: ../../../../build/xtrkcad/app/help/messages.h:104
-#, c-format
-msgid "Are you sure you want to delete these %d car(s)?"
-msgstr "Haluatko varmasti poistaa nämä %d vaunua/veturia?"
+#: ../bin/chndldto.c:70
+msgid "Place frog and drag angle"
+msgstr "Aseta risteyskappale ja raahaa asettaaksesi kulma"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:618
-msgid ""
-"Areas of water can represented by a Polygon (use the Draw command) of the "
-"appropiate color.\n"
-"By using the Modify command, you can move, add or remove corners of the "
-"Polygon to fit the shape of the water.\n"
-"You use the Below command to place the Polygon below (or behind) other "
-"objects.\n"
-"\n"
-"You can also use a Polygon to represent aisles. "
-msgstr ""
+#: ../bin/chndldto.c:87
+msgid "frog"
+msgstr "Risteyskappale"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:297
-msgid "As before, drag on one of the Red arrows to complete the Curve.\n"
-msgstr "Kuten aikaisemminkin, raahaa nuolesta viimeistelläksesi kaarteen.\n"
+#: ../bin/chndldto.c:93
+msgid "Drag to set angle"
+msgstr "Aseta kulma raahaamalla"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:234
-msgid ""
-"As we drag along the curved track the Selected object rotates to follow the "
-"curve.\n"
-msgstr ""
-"Raahaamalla kaarretta pitkin, valittua objektia pyöritetään vastaavalla "
-"tavalla.\n"
+#: ../bin/chndldto.c:134
+#, c-format
+msgid "Angle = %0.2f Frog# = %0.2f"
+msgstr "Kulma = %0.2f Risteysnumero = %0.2f"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:333
-msgid "As you Zoom Out tracks are drawn with one line instead of two.\n"
-msgstr ""
-"Loitonnettaessa riittävästi, raiteet piirretään ainoastaan yhdellä viivalla "
-"normaalin kahden sijaan.\n"
+#: ../bin/chndldto.c:136
+msgid "Frog angle is too close to 0"
+msgstr "Risteyskulma on liian lähellä nollaa"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:564
-msgid ""
-"As you drag away from the turntable a straight track will be drawn to the "
-"cursor postion and a curve will be drawn from the cursor to the connecting "
-"track.\n"
-msgstr ""
-"Raahatessasi kääntöpöydästä pois päin, suora raide piirretään osoittimeen "
-"asti ja siitä jatketaan kaarteella liitettävään raiteeseen.\n"
+#: ../bin/chndldto.c:139
+msgid "Select point position"
+msgstr "Aseta kielten kärjet"
-#: ../../../../build/xtrkcad/app/help/messages.h:110
-#, c-format
-msgid ""
-"At least one path for the Turnout T%d does not\n"
-"terminate on an endpoint. Such a track cannot be grouped. \n"
-"The track has been unselected."
-msgstr ""
-"Ainakin yksi raideosan T%d reiteistä loppuu muuhun kuin\n"
-"päätepisteeseen. Tällaista raideosaa ei voi ryhmitellä.\n"
-"Raideosan valinta on poistettu."
+#: ../bin/chndldto.c:153 ../bin/chndldto.c:178
+msgid "points"
+msgstr "Kielien päät"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:103
-msgid "At this point we can modify the tracks if necessary.\n"
-msgstr "Tässä vaiheessa voimme muokata raiteita, jos se on tarpeen.\n"
+#: ../bin/chndldto.c:275
+#, c-format
+msgid "Length = %0.2f Angle = %0.2f Frog# = %0.2f"
+msgstr "Pituus = %0.2f Kulma = %0.2f Risteysnumero = %0.2f"
-#: ../bin/track.c:1259
-msgid "Audit"
-msgstr "Tarkasta"
+#: ../bin/chndldto.c:279
+msgid "Create Hand Laid Turnout"
+msgstr "Luo käsin aseteltu vaihde"
-#: ../../../../build/xtrkcad/app/help/messages.h:141
-msgid "Audit Abort?"
-msgstr "Keskeytä tarkastus?"
+#: ../bin/chndldto.c:370
+msgid "HandLaidTurnout"
+msgstr "Käsin aseteltu vaihde"
-#: ../bin/doption.c:368
-msgid "Auto Pan"
-msgstr "Automaattinen panorointi"
+#: ../bin/cjoin.c:172
+#, c-format
+msgid "Curved Track: Radius=%s Length=%s"
+msgstr "Kaareva raideosa: Säde=%s Pituus=%s"
-#: ../bin/ctrain.c:545
-msgid "Auto Reverse"
-msgstr "Automaattinen peruutus"
+#: ../bin/cjoin.c:258
+#, c-format
+msgid "Curved Track: Radius=%s Length=%s Angle=%0.3f"
+msgstr "Kaareva raideosa: Säde=%s Pituus=%s Kulma=%0.3f"
-#: ../bin/ccurve.c:264 ../bin/cmodify.c:256 ../bin/drawgeom.c:288
-msgid "Back"
-msgstr "Takaisin"
+#: ../bin/cjoin.c:354
+#, c-format
+msgid "Track (%d) is too short for transition-curve by %0.3f"
+msgstr "Raide (%d) on %0.3f liian lyhyt kaarreloivennusta varten"
-#: ../bin/dbench.c:142
+#: ../bin/cjoin.c:371
#, c-format
-msgid ""
-"Bad BenchType for %s:\n"
-"%s"
-msgstr ""
-"Väärä runkotyyppi %s:lle:\n"
-"%s"
+msgid "Connecting track is too short by %0.3f"
+msgstr "Yhdysraide on %0.3f liian lyhyt"
-#: ../bin/doption.c:211
-msgid "Balloon Help"
-msgstr "Pikaopaste"
+#: ../bin/cjoin.c:415
+msgid "Click on an unselected End-Point"
+msgstr "Valitsemattoman raideosan päätepiste"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:399
-msgid "Be careful with this because its easy to select all tracks this way.\n"
+#: ../bin/cjoin.c:416
+msgid "Click on a selected End-Point"
+msgstr "Valitun raideosan päätepiste"
+
+#: ../bin/cjoin.c:423
+msgid "unselected"
+msgstr "valitsematon"
+
+#: ../bin/cjoin.c:423 ../bin/cprint.c:148
+msgid "selected"
+msgstr "valittu"
+
+#: ../bin/cjoin.c:458
+msgid "Left click - join with track, Shift Left click - move to join"
msgstr ""
-"Ole kuitenkin varovainen, sillä näin voit helposti tulla valinneeksi kaikki "
-"raiteet.\n"
+"Hiiren vasen: yhdistä raiteet, Vaihto + hiiren vasen: siirrä yhdistääksesi"
-#: ../bin/param.c:123
-msgid "Beige"
-msgstr "Beige"
+#: ../bin/cjoin.c:493 ../bin/cjoin.c:802 ../bin/cjoin.c:811
+msgid "Select 2nd track"
+msgstr "Valitse 2. raideosa"
-#: ../bin/misc.c:2176
-msgid "Belo&w"
-msgstr "Alimmaiseksi"
+#: ../bin/cjoin.c:520 ../bin/cmisc.c:52
+msgid "First"
+msgstr "Ensimmäinen"
-#: ../bin/cdraw.c:1029 ../../../../build/xtrkcad/app/i18n/custmsg.h:53
-msgid "Benchwork"
-msgstr "Runkorakenne"
+#: ../bin/cjoin.c:525 ../bin/cmisc.c:52
+msgid "Second"
+msgstr "Toinen"
+
+#: ../bin/cjoin.c:620
+msgid "Beyond end of 2nd track"
+msgstr "2. raideosan päätepisteen takana"
-#: ../bin/cjoin.c:639
+#: ../bin/cjoin.c:655
msgid "Beyond end of 1st track"
msgstr "1. raideosan päätepisteen takana"
-#: ../bin/cjoin.c:604
-msgid "Beyond end of 2nd track"
-msgstr "2. raideosan päätepisteen takana"
+#: ../bin/cjoin.c:679
+msgid "First "
+msgstr "Ensimmäinen "
-#: ../bin/dbitmap.c:235
-msgid "BitMap"
-msgstr "BitMap"
+#: ../bin/cjoin.c:706
+msgid "Second "
+msgstr "Toinen "
-#: ../bin/dbitmap.c:183
-#, c-format
-msgid "Bitmap : %ld by %ld pixels"
-msgstr "Bitmap : %ld x %ld pikseliä"
+#: ../bin/cjoin.c:720 ../bin/track.c:1959
+msgid "Connecting "
+msgstr "Yhdistetään "
-#: ../bin/dbitmap.c:151
-msgid "Bitmap : 99999 by 99999 pixels"
-msgstr "Bitmap : 99999 x 99999 pikseliä"
+#: ../bin/cjoin.c:814
+msgid "Join Tracks"
+msgstr "Yhdistä raiteet"
-#: ../bin/dbitmap.c:212
-msgid "Bitmap files|*.bmp"
-msgstr "Bitmap kuvatiedostot|*.bmp"
+#: ../bin/cjoin.c:882
+msgid "Join"
+msgstr "Yhdistä"
-#: ../bin/dbitmap.c:214
-msgid "Bitmap files|*.xpm"
-msgstr "Bitmap kuvatiedostot|*.xpm"
+#: ../bin/cmisc.c:52
+msgid "Middle"
+msgstr "Keskimmäinen"
+
+#: ../bin/cmisc.c:209 ../bin/cmodify.c:203 ../bin/cnote.c:190
+#: ../bin/compound.c:597 ../bin/ctrain.c:213
+msgid "Change Track"
+msgstr "Muuta raiteita"
-#: ../bin/param.c:91
-msgid "Black"
-msgstr "Musta"
+#: ../bin/cmisc.c:513
+msgid "Select track to describe"
+msgstr "Valitse määriteltävä raideosa"
-#: ../bin/param.c:96
-msgid "Blue"
-msgstr "Sininen"
+#: ../bin/cmisc.c:570 ../bin/doption.c:205
+msgid "Properties"
+msgstr "Asetukset"
-#: ../bin/dcar.c:45
-msgid "Body"
-msgstr "Runko"
+#: ../bin/cmisc2.c:52
+msgid "Bridge"
+msgstr "Silta"
-#: ../bin/doption.c:531
-msgid "Border"
-msgstr "Reunus"
+#: ../bin/cmodify.c:144
+msgid "Select track to modify"
+msgstr "Valitse muokattava raide"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:440
-msgid "Border rulers, room boundaries and table edges"
-msgstr "Reunaviivaimet, huoneen rajat sekä pöydän reunat"
+#: ../bin/cmodify.c:261
+msgid "Modify Track"
+msgstr "Muokkaa raidetta"
-#: ../bin/csplit.c:108 ../bin/csplit.c:113
-msgid "Both"
-msgstr "Molemmat"
+#: ../bin/cmodify.c:299
+msgid "Drag to create new track segment"
+msgstr "Raahaa luodaksesi uuden raiteen"
-#: ../bin/csplit.c:112
-msgid "Bottom"
-msgstr "Alimmaiseksi"
+#: ../bin/cmodify.c:429
+#, c-format
+msgid "Curve Track: Radius=%s Length=%s Angle=%0.3f"
+msgstr "Kaareva raideosa: Säde=%s Pituus=%s Kulma=%0.3f"
-#: ../bin/cdraw.c:832 ../bin/cdraw.c:1044
-msgid "Box"
-msgstr "Nelikulmio"
+#: ../bin/cmodify.c:446
+msgid "Extend Track"
+msgstr "Jatka raidetta"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:251
-msgid "Boxes are useful for drawing rectangular shapes.\n"
-msgstr ""
-"Nelikulmio koostuu neljästä yksittäisestä viivasta, mutta sen voi piirtää "
-"yhdellä komennolla.\n"
+#: ../bin/cmodify.c:522
+msgid "Modify"
+msgstr "Muokkaa"
-#: ../bin/cmisc2.c:52
-msgid "Bridge"
-msgstr "Silta"
+#: ../bin/cnote.c:100 ../bin/cnote.c:233 ../bin/cnote.c:462
+msgid "Note"
+msgstr "Muistiinpano"
-#: ../bin/dease.c:63
-msgid "Broad"
-msgstr "Laaja"
+#: ../bin/cnote.c:106
+msgid "Replace this text with your layout notes"
+msgstr "Korvaa tämä teksti muistiinpanollasi"
-#: ../bin/param.c:119
-msgid "Brown"
-msgstr "Ruskea"
+#: ../bin/cnote.c:217 ../bin/cnote.c:218 ../bin/cnote.c:219
+msgid "Note: "
+msgstr "Muistiinpano: "
-#: ../bin/dprmfile.c:227
-msgid "Browse ..."
-msgstr "Selaa ..."
+#: ../bin/cnote.c:415 ../../../../build/work/app/bin/bllnhlp.c:94
+msgid "Place a note on the layout"
+msgstr "Lisää muistiinpano ratasuunnitelmaan"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:33
-msgid "Building a yard throat."
-msgstr "Vaihdekujan luominen"
+#: ../bin/cnote.c:431
+msgid "New Note"
+msgstr "Uusi muistiinpano"
-#: ../bin/ctodesgn.c:487
-msgid "Bumper Section"
-msgstr "Puskuri raideosa"
+#: ../bin/cnote.c:435
+msgid "Replace this text with your note"
+msgstr "Korvaa tämä teksti muistiinpanollasi"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:448
-msgid "But they will have no effect when the layout is actually built.\n"
-msgstr "Mutta sillä ei ole merkitystä kun rata todellisuudessa rakennetaan.\n"
+#: ../bin/compound.c:518 ../bin/compound.c:520 ../bin/tcurve.c:349
+#: ../bin/tcurve.c:351 ../bin/tease.c:504 ../bin/tease.c:506
+#: ../bin/tstraigh.c:86 ../bin/tstraigh.c:88
+msgid "Z"
+msgstr "Z"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:210
-msgid "But you can place it somewhere else.\n"
-msgstr "Mutta voit sijoittaa sen johonkin toiseen paikkaan.\n"
+#: ../bin/compound.c:526 ../bin/cstruct.c:70 ../bin/cturnout.c:76
+#: ../bin/dcar.c:4078 ../bin/dcar.c:4083 ../bin/dcustmgm.c:51
+#: ../bin/doption.c:106 ../bin/doption.c:107
+msgid "Part No"
+msgstr "Tuotekoodi"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:392
-msgid "But you cannot have a Poly-shape with less than 3 sides.\n"
-msgstr "Monikulmiossa on kuitenkin aina oltava vähintään kolme kulmaa/sivua.\n"
+#: ../bin/compound.c:527
+msgid "# End Pt"
+msgstr "Päätepisteitä"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:607
-msgid ""
-"By default objects are drawn in their normal colors. Tracks will be drawn "
-"in Black. Objects can also be drawn in the color according to their Layer. "
-"The color of a Layer is displayed on the corresponding Layer button.\n"
-"The Display dialog 'Color Layers' item has separate toggles for Tracks and "
-"non-Tracks."
-msgstr ""
+#: ../bin/compound.c:782 ../bin/cswitchmotor.c:220 ../bin/cturnout.c:894
+#: ../bin/cturnout.c:2401 ../bin/cturnout.c:2571
+msgid "Turnout"
+msgstr "Palaraide"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:346
-msgid ""
-"By moving the cursor from one side to the other of the track centerline you "
-"can flip the turnout 180°.\n"
+#: ../bin/compound.c:782
+msgid "Sectional Track"
+msgstr "Palaraide"
+
+#: ../bin/compound.c:785 ../bin/cstruct.c:769 ../bin/cstruct.c:914
+msgid "Structure"
+msgstr "Rakennus"
+
+#: ../bin/cparalle.c:44 ../bin/cparalle.c:74 ../bin/cparalle.c:86
+#: ../bin/ctodesgn.c:390 ../bin/ctodesgn.c:410 ../bin/ctodesgn.c:430
+#: ../bin/tcurve.c:355
+msgid "Separation"
+msgstr "Väli"
+
+#: ../bin/cparalle.c:96
+msgid " Track doesn't support parallel"
msgstr ""
-"Siirtämällä hiiren osoitinta radan keskilinjan puolelta toiselle, voit "
-"kääntää vaihdetta 180°.\n"
-#: ../bin/tcurve.c:348 ../bin/cdraw.c:190
-msgid "CCW Angle"
-msgstr "Vasemman pään kulma"
+#: ../bin/cparalle.c:145
+msgid "Create Parallel Track"
+msgstr "Luo rinnakkainen raide"
-#: ../bin/tcurve.c:349 ../bin/cdraw.c:191
-msgid "CW Angle"
-msgstr "Oikean pään kulma"
+#: ../bin/cparalle.c:189 ../../../../build/work/app/i18n/custmsg.h:44
+msgid "Parallel"
+msgstr "Rinnakkainen"
-#: ../bin/macro.c:1347
-msgid "Can not find PARAMETER playback proc"
-msgstr "PARAMETER toistoproseduuria ei löydy"
+#: ../bin/cprint.c:102
+msgid "Portrait"
+msgstr "Pysty"
-#: ../wlib/gtklib/psprint.c:1122
-msgid "Can not save New Margin definition"
-msgstr "Uuden marginaalin määrittelyjen tallennus ei onnistu"
+#: ../bin/cprint.c:102
+msgid "Landscape"
+msgstr "Vaaka"
-#: ../wlib/gtklib/psprint.c:1094
-msgid "Can not save New Printer definition"
-msgstr "Uuden tulostimen määrittelyjen tallennus ei onnistu"
+#: ../bin/cprint.c:103 ../bin/cselect.c:1922 ../bin/cselect.c:1926
+#: ../bin/cswitchmotor.c:87 ../bin/cswitchmotor.c:106
+#: ../bin/cswitchmotor.c:217 ../bin/dbench.c:78 ../bin/dease.c:64
+#: ../bin/doption.c:100 ../bin/doption.c:102 ../bin/doption.c:200
+#: ../bin/macro.c:1233
+msgid "Normal"
+msgstr "Normaali"
-#: ../wlib/gtklib/gtkfont.c:337
-msgid ""
-"Can't find standard San-Serif font.\n"
-"Please choose a font"
-msgstr ""
-"San-Serif kirjasinta ei löydy.\n"
-"Ole hyvä ja valitse kirjasin"
+#: ../bin/cprint.c:103 ../bin/cswitchmotor.c:88 ../bin/cswitchmotor.c:107
+#: ../bin/cswitchmotor.c:218 ../bin/ctrain.c:877 ../bin/ctrain.c:1187
+msgid "Reverse"
+msgstr "Taakse"
-#: ../wlib/gtklib/gtkfont.c:333
-msgid ""
-"Can't find standard Serif font.\n"
-"Please choose a font"
-msgstr ""
-"Serif kirjasinta ei löydy.\n"
-"Ole hyvä ja valitse kirjasin"
+#: ../bin/cprint.c:104
+msgid "Engineering Data"
+msgstr "Suunnittelutiedot"
-#: ../wlib/gtklib/gtkfont.c:418 ../wlib/gtklib/psprint.c:834
-#: ../wlib/gtklib/psprint.c:1284 ../bin/misc.c:1023 ../bin/misc.c:1093
-#: ../bin/dbitmap.c:205 ../bin/param.c:2555
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:512
-msgid "Cancel"
-msgstr "Peruuta"
+#: ../bin/cprint.c:105
+msgid "Print Registration Marks"
+msgstr "Tulosta kohdistusmerkinnät"
-#: ../bin/misc.c:1021 ../bin/misc.c:1026 ../bin/misc.c:1091
-msgid ""
-"Cancelling the current command will undo the changes\n"
-"you are currently making. Do you want to update?"
-msgstr ""
-"Komennon peruuttaminen kumoaa muutokset,\n"
-"joita olet tekemässä. Haluatko jatkaa?"
+#: ../bin/cprint.c:106
+msgid "Ignore Page Margins"
+msgstr "Ei marginaaleja"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:11
-msgid "Cancels this command"
-msgstr "Kumoaa edellisen komennon"
+#: ../bin/cprint.c:107
+msgid "Print Snap Grid"
+msgstr "Tulosta kohdistusruudukko"
-#: ../wlib/gtklib/wpref.c:151
-#, c-format
-msgid "Cannot create %s"
-msgstr "%s luonti ei onnistu."
+#: ../bin/cprint.c:108
+msgid "Print Rulers"
+msgstr "Tulosta viivaimet"
-#: ../../../../build/xtrkcad/app/help/messages.h:137
-msgid "Cannot extend a helix"
-msgstr "Helixiä ei voida jatkaa"
+#: ../bin/cprint.c:109 ../../../../build/work/app/bin/bllnhlp.c:424
+msgid "Print Roadbed Outline"
+msgstr "Tulosta ratapenkan ulkoreuna"
-#: ../../../../build/xtrkcad/app/help/messages.h:105
-#, c-format
-msgid ""
-"Cannot open %s file:\n"
-"%s:%s"
-msgstr ""
-"Tiedostoa %s ei voida avata:\n"
-"%s: %s"
+#: ../bin/cprint.c:110
+#, fuzzy
+msgid "Print Centerline below Scale 1:1"
+msgstr "Tulosta keskiviiva"
-#: ../../../../build/xtrkcad/app/help/messages.h:138
-msgid "Cannot trim a helix"
-msgstr "Helixiä ei voida lyhentää"
+#: ../bin/cprint.c:118
+msgid "Print Scale"
+msgstr "Tulostuksen mittakaava"
-#: ../bin/ctrain.c:240
-msgid "Car"
-msgstr "Vaunu"
+#: ../bin/cprint.c:119
+msgid "Page Width"
+msgstr "Sivun leveys"
-#: ../bin/misc.c:2348 ../bin/dcar.c:4225 ../bin/dcar.c:4955
-msgid "Car Inventory"
-msgstr "Kalustoluettelo"
+#: ../bin/cprint.c:120
+msgid "Max"
+msgstr "Max"
-#: ../bin/doption.c:216
-msgid "Car Labels"
-msgstr "Vaunujen merkinnät"
+#: ../bin/cprint.c:121
+msgid "Height"
+msgstr "Korkeus"
-#: ../bin/dcar.c:1970
-msgid "Car Length"
-msgstr "Pituus"
+#: ../bin/cprint.c:122
+msgid "Snap Shot"
+msgstr "Yhdelle sivulle"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:188
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:356
-msgid "Car Number"
-msgstr "Vaunun tai veturin numero"
+#: ../bin/cprint.c:123
+msgid "Page Format"
+msgstr "Sivun muotoilu"
-#: ../bin/dcustmgm.c:60 ../bin/dcar.c:2009
-msgid "Car Part"
-msgstr "Malli"
+#: ../bin/cprint.c:124
+msgid "Print Order"
+msgstr "Tulostusjärjestys"
-#: ../bin/dcustmgm.c:61 ../bin/dcar.c:2010
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:174
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:175
-msgid "Car Prototype"
-msgstr "Esikuva"
+#: ../bin/cprint.c:139 ../bin/ctrain.c:185 ../bin/dcar.c:1980
+msgid "Width"
+msgstr "Leveys"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:185
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:186
-msgid "Car Type"
-msgstr "Vaunun tai veturin tyyppi"
+#: ../bin/cprint.c:141 ../bin/csnap.c:542
+msgid "Y"
+msgstr "Y"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:189
-msgid "Car body Color"
-msgstr "Vaunun tai veturin rungon väri"
+#: ../bin/cprint.c:142 ../bin/dcar.c:1961
+msgid "Reset"
+msgstr "Palauta"
-#: ../bin/doption.c:190
-msgid "Cars"
-msgstr "Vaunut"
+#: ../bin/cprint.c:144
+msgid "Setup"
+msgstr "Asetukset"
-#: ../bin/doption.c:353
-msgid "Cartesian"
-msgstr "Karteesinen"
+#: ../bin/cprint.c:145 ../bin/cprofile.c:569 ../bin/misc.c:591
+msgid "Clear"
+msgstr "Tyhjennä"
-#: ../bin/tcurve.c:342 ../bin/cdraw.c:186
-msgid "Center: X"
-msgstr "Keskipiste: X"
+#: ../bin/cprint.c:147 ../bin/cprint.c:588
+msgid "0 pages"
+msgstr "0 sivua"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:483
-msgid ""
-"Certain parameters of the object can be changed. In this case we'll change "
-"the Length\n"
-msgstr ""
-"Tiettyjä parametreja voi muuttaa. Tässä tapauksesa muutamme pituutta.\n"
+#: ../bin/cprint.c:211 ../bin/cprint.c:260
+#, c-format
+msgid "%d pages"
+msgstr "%d sivua"
-#: ../bin/misc.c:1811
-msgid "Change"
-msgstr "Muuta"
+#: ../bin/cprint.c:380
+#, fuzzy, c-format
+msgid "PrintScale 1:%ld Room %s x %s Model Scale %s File %s"
+msgstr "Tulostusmittakaava %ld:1 Huone %s x %s Mittakaava %s Tiedosto %s"
-#: ../bin/ctrain.c:2539
-msgid "Change Direction"
-msgstr "Muuta suuntaa"
+#: ../bin/cprint.c:669
+msgid "1 page"
+msgstr "1 sivu"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:39
-msgid "Change Display parameters"
-msgstr "Muuta näyttöasetuksia"
+#: ../bin/cprint.c:1039 ../bin/cprofile.c:570 ../bin/ctodesgn.c:1720
+#: ../bin/denum.c:55
+msgid "Print"
+msgstr "Tulosta"
-#: ../bin/misc.c:1811 ../../../../build/xtrkcad/app/bin/bllnhlp.c:66
-msgid "Change Elevations"
-msgstr "Muuta korkeustasoja"
+#: ../bin/cprint.c:1061
+msgid "Select pages to print, or drag to move print grid"
+msgstr "Valitse tulostettavat sivut tai siirrä tulostusruudukkoa raahaamalla"
-#: ../bin/csnap.c:785
-msgid "Change Grid..."
-msgstr "Kohdistusruudukko..."
+#: ../bin/cprint.c:1160
+msgid "Print..."
+msgstr "Tulosta..."
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:80
-msgid "Change Layers"
-msgstr "Muuta tasojen asetuksia"
+#: ../bin/cprofile.c:477 ../bin/cprofile.c:1279 ../bin/cprofile.c:1379
+#: ../../../../build/work/app/bin/bllnhlp.c:104
+#: ../../../../build/work/app/i18n/custmsg.h:40
+msgid "Profile"
+msgstr "Profiili"
-#: ../bin/misc.c:2266
-msgid "Change Scale"
-msgstr "Muuta mittakaavaa"
+#: ../bin/cprofile.c:493
+#, c-format
+msgid "%s Profile: %s"
+msgstr "%s Profiili: %s"
-#: ../bin/cmodify.c:121 ../bin/cnote.c:168 ../bin/ctrain.c:197
-#: ../bin/compound.c:592 ../bin/cmisc.c:153
-msgid "Change Track"
-msgstr "Muuta raiteita"
+#: ../bin/cprofile.c:641 ../bin/cprofile.c:651
+#, c-format
+msgid "Elev = %0.1f"
+msgstr "Korkeus = %0.1f"
-#: ../bin/cselect.c:305
-msgid "Change Track Width"
-msgstr "Muuta raiteen pituutta"
+#: ../bin/cprofile.c:653
+#, c-format
+msgid "Elev=%0.2f %0.1f%%"
+msgstr "Korkeus=%0.2f %0.1f%%"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:474
-msgid "Change direction of train"
-msgstr "Muuta junan kulkusuunta"
+#: ../bin/cprofile.c:657
+#, c-format
+msgid "%0.1f%% Elev = %0.2f"
+msgstr "%0.1f%% Korkeus = %0.2f"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:130
-msgid "Change drawing scale"
-msgstr "Muuta piirron mittakaavaa"
+#: ../bin/cprofile.c:661
+#, c-format
+msgid "%0.1f%% Elev = %0.2f %0.1f%%"
+msgstr "%0.1f%% Korkeus = %0.2f %0.1f%%"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:436
-msgid "Change size by this amount"
-msgstr "Muuta kokoa tämän suhdeluvun verran"
+#: ../bin/cprofile.c:672 ../bin/cprofile.c:1226
+msgid "Profile Command"
+msgstr "Profiili komento"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:310
-msgid "Change the Orientation to Right.\n"
-msgstr "Muuta \"suunta\" \"oikeaksi\".\n"
+#: ../bin/cprofile.c:680 ../bin/cprofile.c:1284
+msgid "Drag to change Elevation"
+msgstr "Muuta korkeutta raahaamalla"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:435
-msgid "Change track dimensions to new scale"
-msgstr "Muuta raiteiden mitat uuteen mittakaavaan"
+#: ../bin/cprofile.c:747
+msgid "Select a Defined Elevation to start Profile"
+msgstr "Valitse määritelty korkeus aloittaaksesi profiili"
-#: ../bin/doption.c:358
-msgid "Check Point"
-msgstr "Automaattinen varmennus"
+#: ../bin/cprofile.c:749
+msgid "Select a Defined Elevation to extend Profile"
+msgstr "Valitse määritelty korkeus laajentaaksesi profiilia"
-#: ../bin/fileio.c:700 ../bin/fileio.c:1017
-msgid "Check Pointing"
-msgstr "Automaattinen varmennus"
+#: ../bin/cprofile.c:1296
+msgid "Select a Defined Elevation to start profile"
+msgstr "Valitse määritelty korkeus aloittaaksesi profiili"
-#: ../bin/param.c:120
-msgid "Chocolate"
-msgstr "Suklaa"
+#: ../bin/cprofile.c:1381
+msgid "Define"
+msgstr "Määrittele"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:458
-msgid "Choose a Pier number"
-msgstr "Valitse pilarin numero"
+#: ../bin/cpull.c:436 ../bin/cpull.c:581
+#, c-format
+msgid "%d tracks moved"
+msgstr "%d raideosaa siirretty"
-#: ../bin/dcmpnd.c:392
-msgid "Choose a Turnout/Structure to replace:"
-msgstr "Valitse vaihde/rakennus korvataksesi:"
+#: ../bin/cpull.c:471
+msgid "Pull Tracks"
+msgstr "Liitä raiteet"
-#: ../bin/dcmpnd.c:431
-msgid "Choose another Turnout/Structure to replace:"
-msgstr "Valitse toinen vaihde/rakennus korvataksesi:"
+#: ../bin/cpull.c:545
+msgid "Tighten Tracks"
+msgstr "Yhdistä raiteet"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:451
-msgid "Choose commands to be sticky"
-msgstr "Valitse pysyvät komennot"
+#: ../bin/cpull.c:598
+msgid "Select first End-Point to connect"
+msgstr "Valitse ensimmäinen yhdistettävä päätepiste"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:367
-msgid "Choose english (inches) or metric (centimeters)"
-msgstr ""
-"Valitse englantilaiset (tuumat) tai metrijärjestelmän (sentit) mukaiset mitat"
+#: ../bin/cpull.c:609
+msgid "Select second End-Point to connect"
+msgstr "Valitse toinen yhdistettävä päätepiste"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:528
-msgid "Choose paper size"
-msgstr "Valitse paperin koko"
+#: ../bin/cpull.c:659
+msgid "Connect Sectional Tracks"
+msgstr "Liitä palaraiteet"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:529
-msgid "Choose printer"
-msgstr "Valitse tulostin"
+#: ../bin/cruler.c:151 ../../../../build/work/app/i18n/custmsg.h:51
+msgid "Ruler"
+msgstr "Viivain"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:110
-msgid "Choose which commands are sticky"
-msgstr "Valitse mitkä komennot ovat pysyviä"
+#: ../bin/cselect.c:313
+msgid "Change Track Width"
+msgstr "Muuta raiteen pituutta"
-#: ../bin/cdraw.c:437 ../bin/cdraw.c:829 ../bin/cdraw.c:830 ../bin/cdraw.c:831
-msgid "Circle"
-msgstr "Ympyrä"
+#: ../bin/cselect.c:334
+msgid "Delete Tracks"
+msgstr "Poista raiteita"
-#: ../bin/cdraw.c:1039
-msgid "Circle Center"
-msgstr "Ympyrä keskustasta"
+#: ../bin/cselect.c:386
+msgid "Hide Tracks (Tunnel)"
+msgstr "Piilota raiteet (tunneli)"
-#: ../bin/cdraw.c:1042
-msgid "Circle Filled Center"
-msgstr "Täytetty ympyrä keskustasta"
+#: ../bin/cselect.c:425 ../bin/misc.c:2060
+msgid "Move To Current Layer"
+msgstr "Siirrä nykyiselle tasolle"
-#: ../bin/cdraw.c:1041
-msgid "Circle Filled Tangent"
-msgstr "Täytetty ympyrä kehältä"
+#: ../bin/cselect.c:464 ../bin/misc.c:2175
+msgid "Clear Elevations"
+msgstr "Poista korkeusmääritykset"
-#: ../bin/cdraw.c:1065
-msgid "Circle Lines"
-msgstr "Ympyrät"
+#: ../bin/cselect.c:508
+msgid "Add Elevations"
+msgstr "Päätepisteiden korkeudet"
-#: ../bin/ccurve.c:524
-msgid "Circle Radius"
-msgstr "Ympyrän säde"
+#: ../bin/cselect.c:523
+msgid "Refresh Compound"
+msgstr "Päivitä vaihteet/rakennukset"
-#: ../bin/cdraw.c:1038
-msgid "Circle Tangent"
-msgstr "Ympyrä kehältä"
+#: ../bin/cselect.c:559 ../bin/dcar.c:4078 ../bin/dcar.c:4083
+#: ../bin/dcustmgm.c:51 ../bin/layout.c:239
+msgid "Scale"
+msgstr "Mittakaava"
-#: ../bin/ccurve.c:718 ../bin/tcurve.c:609
-msgid "Circle Track"
-msgstr "Ympyrärata"
+#: ../bin/cselect.c:559 ../bin/cselect.c:584
+msgid "Ratio"
+msgstr "Suhde"
-#: ../bin/ccurve.c:718
-msgid "Circle Tracks"
-msgstr "Ympyräradat"
+#: ../bin/cselect.c:568
+msgid "Do not resize track"
+msgstr "Älä muuta raiteiden kokoa"
-#: ../bin/ccurve.c:721
-msgid "Circle from Center"
-msgstr "Ympyrä keskustasta"
+#: ../bin/cselect.c:572
+msgid "Rescale by:"
+msgstr "Muunnos:"
-#: ../bin/ccurve.c:720
-msgid "Circle from Tangent"
-msgstr "Ympyrä kehältä"
+#: ../bin/cselect.c:574
+msgid "From:"
+msgstr "Alkuperäinen:"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:26
-msgid "Circle to circle"
-msgstr "Ympyrä - ympyrä"
+#: ../bin/cselect.c:578
+msgid "To: "
+msgstr "Uusi:"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:17
-msgid "Circles"
-msgstr "Ympyrät"
+#: ../bin/cselect.c:643
+msgid "Rescale Tracks"
+msgstr "Muuta raiteiden mittakaavaa"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:252
-msgid ""
-"Circles can be drawn by clicking on the center or edge and dragging to set "
-"the radius.\n"
-msgstr ""
-"Ympyrät voidaan piirtää esimerkiksi klikkaamalla haluttua keskipistettä ja "
-"asettamalla ympyrän säde raahaamalla.\n"
+#: ../bin/cselect.c:774 ../../../../build/work/app/i18n/custmsg.h:47
+msgid "Rescale"
+msgstr "Mittakaavan muutos"
-#: ../bin/cprint.c:137 ../bin/misc.c:580 ../bin/cprofile.c:548
-msgid "Clear"
-msgstr "Tyhjennä"
+#: ../bin/cselect.c:801
+msgid "Draw moving track normally"
+msgstr "Piirrä liikuteltavat raiteet normaalisti"
-#: ../bin/misc.c:2261 ../bin/cselect.c:456
-msgid "Clear Elevations"
-msgstr "Poista korkeusmääritykset"
+#: ../bin/cselect.c:802
+msgid "Draw moving track simply"
+msgstr "Piirrä liikuteltavat raiteet yksinkertaistetuna"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:416
-msgid "Clear the profile"
-msgstr "Tyhjennä profiilikäyrä"
+#: ../bin/cselect.c:803
+msgid "Draw moving track as end-points"
+msgstr "Piirrä liikuteltavat raiteet päätepisteinä"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:472
-msgid "Click <Join> and Shift-Left-Click on the two End-Points.\n"
+#: ../bin/cselect.c:1085
+msgid "Cornu too tight - it was deleted"
msgstr ""
-"Klikkaa Yhdistä ja sen jälkeen vaihto-näppäintä painettuna klikkaa hiiren "
-"vasemmalla painikkeella yhdistettäviä päätepisteitä.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:274
-msgid "Click Step now for the next message.\n"
+#: ../bin/cselect.c:1105
+msgid "Cornu selected too tight after move - it was left alone"
msgstr ""
-"Klikkaa nyt Seuraava vaihe -painiketta katsoaksesi seuraavan viestin.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:128
-msgid "Click Step to return to XTrackCAD.\n"
-msgstr ""
-"Paina seuraava vaihe, seuraava tai lopeta painiketta palataksesi XTrackCADin "
-"normaaliin tilaan.\n"
+#: ../bin/cselect.c:1145
+msgid "Move To Join"
+msgstr "Siirrä yhdistääksesi"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:294
-msgid "Click and drag on one of the Red arrows to complete the Curve.\n"
-msgstr "Raahaa nuolesta asetellaksesi kaarre oikean muotoiseksi.\n"
+#: ../bin/cselect.c:1181
+msgid "Drag to move selected tracks"
+msgstr "Siirrä valitut raideosat raahaamalla"
-#: ../bin/ccurve.c:533
-msgid "Click on Circle Center"
-msgstr "Aseta ympyrän keskipiste"
+#: ../bin/cselect.c:1188
+msgid "Move Tracks"
+msgstr "Siirrä raiteita"
-#: ../bin/ccurve.c:529
-msgid "Click on Circle Edge"
-msgstr "Aseta ympyrän kehän piste"
+#: ../bin/cselect.c:1245
+msgid "Click on selected object to align"
+msgstr "Klikkaa valittua objektia kohdistaaksesi"
-#: ../bin/cjoin.c:408 ../bin/cjoin.c:858
-msgid "Click on a selected End-Point"
-msgstr "Valitun raideosan päätepiste"
+#: ../bin/cselect.c:1273
+msgid "Drag to rotate selected tracks"
+msgstr "Pyöritä valittuja raideosia raahaamalla"
-#: ../bin/cjoin.c:407 ../bin/cjoin.c:857
-msgid "Click on an unselected End-Point"
-msgstr "Valitsemattoman raideosan päätepiste"
+#: ../bin/cselect.c:1282 ../bin/cselect.c:1438
+msgid "Rotate Tracks"
+msgstr "Pyöritä raiteita"
-#: ../bin/cselect.c:1180
-msgid "Click on selected object to align"
-msgstr "Klikkaa valittua objektia kohdistaaksesi"
+#: ../bin/cselect.c:1321 ../bin/cselect.c:1352
+#, c-format
+msgid "Angle %0.3f"
+msgstr "Kulma %0.3f"
+
+#: ../bin/cselect.c:1382
+#, c-format
+msgid " Angle %0.3f #%ld"
+msgstr " Kulma %0.3f #%ld"
+
+#: ../bin/cselect.c:1384
+#, c-format
+msgid " Angle %0.3f"
+msgstr " Kulma %0.3f"
-#: ../bin/cselect.c:1327
+#: ../bin/cselect.c:1395
msgid "Click on the 2nd Unselected object"
msgstr "Klikkaa valitsematonta objektia"
-#: ../bin/fileio.c:1421
-msgid "Clipboard"
-msgstr "Leikepöytä"
+#: ../bin/cselect.c:1450
+msgid "Toggle Label"
+msgstr "Näytä/piilota merkintä"
-#: ../bin/param.c:2555 ../bin/cturnout.c:2272
-msgid "Close"
-msgstr "Sulje"
+#: ../bin/cselect.c:1479
+msgid "Select and drag a description"
+msgstr "Valitse ja raahaa merkintöjä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:12
-msgid "Closes the dialog"
-msgstr "Sulkee ikkunan"
+#: ../bin/cselect.c:1521
+msgid "Move Label"
+msgstr "Siirrä merkintöjä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:504
-msgid "Closes the window and returns to the Turnout Selection window"
-msgstr "Sulkee ikkunan"
+#: ../bin/cselect.c:1546
+msgid "Show Description"
+msgstr "Näytä kuvaus"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:524
-msgid "Closes this dialog"
-msgstr "Sulkee tämän ikkunan"
+#: ../bin/cselect.c:1628
+msgid "Drag to mark mirror line"
+msgstr "Vedä hiirellä peilauslinja"
-#: ../bin/misc.c:2285
-msgid "Co&mmand ..."
-msgstr "Komennot ..."
+#: ../bin/cselect.c:1643
+#, c-format
+msgid "Angle %0.2f"
+msgstr "Kulma %0.2f"
-#: ../bin/doption.c:557 ../bin/ctodesgn.c:149 ../bin/dlayer.c:314
-#: ../bin/dcar.c:1968 ../bin/cdraw.c:194 ../bin/cdraw.c:805 ../bin/cdraw.c:807
-#: ../bin/cdraw.c:882 ../bin/cdraw.c:906
-msgid "Color"
-msgstr "Väri"
+#: ../bin/cselect.c:1648
+msgid "Flip Tracks"
+msgstr "Peilaa raiteet"
-#: ../bin/doption.c:207
-msgid "Color Layers"
-msgstr "Väritys tason mukaan"
+#: ../bin/cselect.c:1811
+msgid "Select tracks"
+msgstr "Valitse raideosat"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:294
-msgid "Color of Benchwork"
-msgstr "Runkorakenteen väri"
+#: ../bin/cselect.c:1909 ../bin/dcar.c:1544 ../bin/doption.c:205
+#: ../../../../build/work/app/i18n/custmsg.h:13
+msgid "Select"
+msgstr "Valitse"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:446
-msgid "Color of Exceptional tracks"
-msgstr "Erityisraiteiden väri"
+#: ../bin/cselect.c:1923 ../bin/cselect.c:1927 ../bin/doption.c:201
+msgid "Simple"
+msgstr "Yksinkertainen"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:500
-msgid "Color of Roadbed lines"
-msgstr "Ratapenkan viivan väri"
+#: ../bin/cselect.c:1924 ../bin/cselect.c:1928
+msgid "End Points"
+msgstr "Päätepisteet"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:339
-msgid "Color of layer"
-msgstr "Tason väri"
+#: ../bin/cselect.c:1931
+msgid "Align"
+msgstr "Kohdista"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:292
-msgid "Color of the lines"
-msgstr "Viivojen väri"
+#: ../bin/cselect.c:1952 ../bin/misc.c:1990
+msgid "Tunnel"
+msgstr "Tunneli"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:447
-msgid "Color of track ties"
-msgstr "Ratapölkkyjen väri"
+#: ../bin/cselect.c:1961
+msgid "Move Description"
+msgstr "Siirrä merkintöjä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:445
-msgid "Color of tracks on the Profile path"
-msgstr "Profiilin muokkauksessa olevat raiteet"
+#: ../bin/cselect.c:1968 ../bin/misc.c:1988
+msgid "Move"
+msgstr "Siirrä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:280
-msgid "Color tracks or other objects by layer"
-msgstr "Väritä raiteet ja muut objektit tasojen mukaan"
+#: ../bin/cselect.c:1970 ../bin/misc.c:1764 ../bin/misc.c:1989
+#: ../../../../build/work/app/i18n/custmsg.h:58
+msgid "Rotate"
+msgstr "Pyöritä"
-#: ../bin/dcar.c:4630 ../bin/dcar.c:4751
-msgid "Comma-Separated-Values|*.csv"
-msgstr "Pilkulla erotetut arvot|*.csv"
+#: ../bin/cselect.c:1972 ../bin/dcar.c:1963
+#: ../../../../build/work/app/i18n/custmsg.h:59
+msgid "Flip"
+msgstr "Peilikuva"
-#: ../bin/doption.c:327
-msgid "Command Options"
-msgstr "Komentojen asetukset"
+#: ../bin/csensor.c:197
+#, fuzzy
+msgid "Change Sensor"
+msgstr "Muuta mittakaavaa"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:24
-msgid "Command Options dialog"
-msgstr "Komentojen asetukset"
+#: ../bin/csensor.c:243 ../bin/csensor.c:556
+msgid "Sensor"
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:164
-msgid "Command buttons"
-msgstr "Komentopainikkeet"
+#: ../bin/csensor.c:374
+#, fuzzy
+msgid "Create Sensor"
+msgstr "Luo runkorakenne"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:98
-msgid "Command recorder"
-msgstr "Komentojen nauhoitus"
+#: ../bin/csensor.c:377
+#, fuzzy
+msgid "Modify Sensor"
+msgstr "Muokkaa raidetta"
-#: ../wlib/gtklib/psprint.c:1293
-msgid "Command: "
-msgstr "Komento: "
+#: ../bin/csensor.c:410
+#, fuzzy
+msgid "Edit sensor"
+msgstr "Muokkaa -valikko"
-#: ../bin/misc.c:2079 ../bin/misc.c:2080
-msgid "Commands"
-msgstr "Komennot"
+#: ../bin/csensor.c:446
+#, fuzzy
+msgid "Place sensor"
+msgstr "Aseta uusi vaihde"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:302
-msgid "Complete easement selection"
-msgstr "Hyväksy kaarreloivennukse asetukset ja sulje ikkuna"
+#: ../bin/csignal.c:237
+#, fuzzy
+msgid "Number Of Heads"
+msgstr "Numerot"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:457
-msgid "Complete structure placement"
-msgstr "Lisää rakennus"
+#: ../bin/csignal.c:269
+#, fuzzy
+msgid "Change Signal"
+msgstr "Muuta mittakaavaa"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:324
-msgid "Completes the grid specification"
-msgstr "Hyväksy ruudukon asetukset"
+#: ../bin/csignal.c:303
+#, c-format
+msgid "(%d [%s]): Layer=%d, %d heads at %0.3f,%0.3f A%0.3f"
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:305
-msgid "Compute elevation based on neighbors"
-msgstr "Laske korkeudet viereisten perusteella"
+#: ../bin/csignal.c:314 ../bin/csignal.c:885
+msgid "Signal"
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:306
-msgid "Compute grade based on neighbors"
-msgstr "Laske nousukulma viereisten perusteella"
+#: ../bin/csignal.c:492
+#, fuzzy
+msgid "Number of Heads"
+msgstr "Numerot"
-#: ../bin/celev.c:45
-msgid "Computed"
-msgstr "Laskettu"
+#: ../bin/csignal.c:497
+#, fuzzy
+msgid "Edit Aspect"
+msgstr "Muokkaa -valikko"
-#: ../bin/dcar.c:1992 ../bin/dcar.c:4072 ../bin/dcar.c:4077
-msgid "Condition"
-msgstr "Kunto"
+#: ../bin/csignal.c:499
+msgid "Add Aspect"
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:200
-msgid "Condition of car"
-msgstr "Vaunun tai veturin kunto"
+#: ../bin/csignal.c:501
+#, fuzzy
+msgid "Delete Aspect"
+msgstr "Poista valitut objektit"
-#: ../bin/cturnout.c:358
-msgid "Connect Adjustable Tracks"
-msgstr "Yhdistä säädettävä raide"
+#: ../bin/csignal.c:514
+msgid "Aspect Index"
+msgstr ""
-#: ../bin/cpull.c:661
-msgid "Connect Sectional Tracks"
-msgstr "Liitä palaraiteet"
+#: ../bin/csignal.c:529
+#, fuzzy
+msgid "Create Signal"
+msgstr "Luo viivoja"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:48
-msgid "Connect and Tighten - a siding"
-msgstr "Liittäminen ja tiukennus - sivuraide"
+#: ../bin/csignal.c:533
+#, fuzzy
+msgid "Modify Signal"
+msgstr "Muokkaa raidetta"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:49
-msgid "Connect and Tighten - figure-8"
-msgstr "Liittäminen ja tiukennus - kahdeksikko"
+#: ../bin/csignal.c:640
+#, fuzzy
+msgid "Edit aspect"
+msgstr "Muokkaa -valikko"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:26
-msgid "Connect two tracks"
-msgstr "Liitä kaksi raidetta"
+#: ../bin/csignal.c:687
+#, fuzzy, c-format
+msgid "Are you sure you want to delete the %d aspect(s)"
+msgstr "Haluatko varmasti poistaa nämä %d vaunua/veturia?"
-#: ../bin/track.c:1867 ../bin/cjoin.c:704
-msgid "Connecting "
-msgstr "Yhdistetään "
+#: ../bin/csignal.c:708
+#, fuzzy
+msgid "Edit signal"
+msgstr "Muokkaa -valikko"
-#: ../bin/track.c:1549 ../bin/track.c:1553
-#, c-format
-msgid "Connecting a non-track(%d) to (%d)"
-msgstr "Muun kuin raideosan (%d) yhdistäminen raiteeseen (%d)"
+#: ../bin/csignal.c:770
+msgid "Place base of signal"
+msgstr ""
-#: ../bin/cjoin.c:363
-#, c-format
-msgid "Connecting track is too short by %0.3f"
-msgstr "Yhdysraide on %0.3f liian lyhyt"
+#: ../bin/csignal.c:775
+#, fuzzy
+msgid "Drag to orient signal"
+msgstr "Aseta kulma raahaamalla"
-#: ../bin/doption.c:365
-msgid "Connection Angle"
-msgstr "Liitoskulma"
+#: ../bin/csnap.c:523
+msgid "Horz"
+msgstr "Vaaka"
-#: ../bin/doption.c:364
-msgid "Connection Distance"
-msgstr "Liitosetäisyys"
+#: ../bin/csnap.c:525
+msgid "Spacing"
+msgstr "Väli"
-#: ../bin/dcustmgm.c:191
-msgid "Contents Label"
-msgstr "Sisältömerkintä"
+#: ../bin/csnap.c:527
+msgid "Divisions"
+msgstr "Jako"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:227
-msgid "Contents Label for new Parameter file"
-msgstr "Parametritiedoston sisältömerkintä"
+#: ../bin/csnap.c:530
+msgid "Enable"
+msgstr "Salli"
-#: ../wlib/gtklib/gtkfont.c:103 ../wlib/gtklib/gtkfont.c:161
-#: ../wlib/gtklib/gtkfont.c:333 ../wlib/gtklib/gtkfont.c:337
-#: ../wlib/gtklib/gtkfont.c:434 ../wlib/gtklib/wpref.c:223
-#: ../wlib/gtklib/wpref.c:230 ../bin/dbench.c:142 ../bin/track.c:917
-#: ../bin/track.c:1259 ../bin/track.c:1549 ../bin/track.c:1553
-#: ../bin/track.c:1573 ../bin/track.c:1635 ../bin/fileio.c:240
-#: ../bin/fileio.c:528 ../bin/fileio.c:646 ../bin/fileio.c:739
-#: ../bin/fileio.c:926 ../bin/fileio.c:1202 ../bin/fileio.c:1338
-#: ../bin/fileio.c:1421 ../bin/fileio.c:1461 ../bin/dcar.c:4225
-#: ../bin/dcar.c:4409 ../bin/dcar.c:4419 ../bin/dcar.c:4466 ../bin/dcar.c:4473
-#: ../bin/dcar.c:4491 ../bin/dcar.c:4504 ../bin/dcar.c:4509 ../bin/dcar.c:4538
-#: ../bin/dcar.c:4699 ../bin/macro.c:163 ../bin/macro.c:831 ../bin/macro.c:847
-#: ../bin/macro.c:1150 ../bin/param.c:2040
-msgid "Continue"
-msgstr "Jatka"
+#: ../bin/csnap.c:531
+msgid "Vert"
+msgstr "Pysty"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:60
-msgid "Control Panels (New)"
-msgstr "Ohjauspaneelit"
+#: ../bin/csnap.c:540 ../bin/dease.c:73
+msgid "X"
+msgstr "X"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:25
-msgid "Controls colors"
-msgstr "Valitse värit"
+#: ../bin/csnap.c:544
+msgid "A"
+msgstr "K"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:275
-msgid "Controls the drawing of End-Points"
-msgstr ""
-"Näytetäänkö raiteiden päätepisteet kaikissa raiteissa, vaihteissa vai ei "
-"missään"
+#: ../bin/csnap.c:547
+msgid "Show"
+msgstr "Näytä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:274
-msgid "Controls the drawing of hidden tracks"
-msgstr "Piilossa olevien raiteiden piirtotapa"
+#: ../bin/csnap.c:717 ../bin/doption.c:448
+msgid "Snap Grid"
+msgstr "Kohdistusruudukko"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:389
-msgid "Controls the reduction (scale) of the printout"
-msgstr "Tulostuksen mittakaava"
+#: ../bin/csnap.c:802
+msgid "Change Grid..."
+msgstr "Kohdistusruudukko..."
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:114
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:459
-msgid "Controls the size of the entered text"
-msgstr "Muuttaa syötettävän tekstin kokoa"
+#: ../bin/csplit.c:41
+msgid "Set Block Gaps"
+msgstr "Aseta lohkojen välit"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:465
-msgid "Controls which Command Buttons are displayed"
-msgstr "Valitse työkalurivillä näytettävät painikkeet"
+#: ../bin/csplit.c:68
+msgid "Select track to split"
+msgstr "Valitse pilkottava raide"
-#: ../bin/misc.c:2093
-msgid "Copy"
-msgstr "Kopioi"
+#: ../bin/csplit.c:84
+#, fuzzy
+msgid "Can't Split that Track"
+msgstr "Pilko raide"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:91
-msgid "Copy objects from clipboard"
-msgstr "Liitä objektit leikepöydältä"
+#: ../bin/csplit.c:108 ../bin/dbench.c:69 ../bin/dbench.c:80
+msgid "Left"
+msgstr "Vasen"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:231
-msgid "Copy selected entries to Parameter File"
-msgstr "Siirrä valitut kohteet parametritiedostoon"
+#: ../bin/csplit.c:109 ../bin/dbench.c:70 ../bin/dbench.c:79
+msgid "Right"
+msgstr "Oikea"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:27
-msgid "Copy selected objects to clipboard"
-msgstr "Kopioi valitut objektit leikepöydälle"
+#: ../bin/csplit.c:110 ../bin/csplit.c:115
+msgid "Both"
+msgstr "Molemmat"
-#: ../bin/param.c:113
-msgid "Coral"
-msgstr ""
+#: ../bin/csplit.c:113
+msgid "Top"
+msgstr "Päällimmäiseksi"
-#: ../bin/ctodesgn.c:497 ../bin/dlayer.c:322
-msgid "Count"
-msgstr "Lukumäärä"
+#: ../bin/csplit.c:114
+msgid "Bottom"
+msgstr "Alimmaiseksi"
-#: ../bin/dcar.c:1978
-msgid "Coupled Length"
-msgstr "Pituus kytkimineen"
+#: ../bin/cstraigh.c:58
+#, fuzzy
+msgid ""
+"Place 1st end point of Straight track + Shift -> snap to unconnected endpoint"
+msgstr "Aseta suoran raiteen 1. päätepiste"
-#: ../bin/dcar.c:1980 ../bin/dcar.c:3946
-msgid "Coupler Length"
-msgstr "Kytkinten ulkonema"
+#: ../bin/cstraigh.c:74
+msgid ""
+"No Unconnected end-point on track - Try again or release shift and click"
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:195
-msgid "Coupler Length from end of car"
-msgstr "Kytkinten ulkonema vaunun tai veturin päästä"
+#: ../bin/cstraigh.c:80
+msgid "Not on a Track - Try again or release shift and click"
+msgstr ""
-#: ../bin/dcar.c:1976
-msgid "Coupler Mount"
-msgstr "Kytkimien sijoitus"
+#: ../bin/cstraigh.c:89
+msgid "Drag to place 2nd end point"
+msgstr "Raahaa asettaaksesi 2. päätepiste"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:193
-msgid "Coupler are mounted on body or truck"
-msgstr "Onko kytkimet kiinnitetty runkoon vai teleihin"
+#: ../bin/cstraigh.c:110
+#, c-format
+msgid "Straight Track Length=%s Angle=%0.3f"
+msgstr "Suora raideosa Pituus=%s Kulma=%0.3f"
-#: ../bin/ctrain.c:707 ../bin/ctrain.c:730
-msgid "Crashed"
-msgstr "Törmännyt"
+#: ../bin/cstraigh.c:158 ../bin/tstraigh.c:267
+msgid "Straight Track"
+msgstr "Suora raide"
-#: ../bin/ccurve.c:615
-msgid "Create Circle Track"
-msgstr "Luo ympyrärata"
+#: ../bin/cstruct.c:72 ../bin/cturnout.c:78 ../bin/doption.c:100
+#: ../bin/doption.c:208
+msgid "Hide"
+msgstr "Piilota"
-#: ../bin/ccurve.c:322
-msgid "Create Curved Track"
-msgstr "Luo kaareva raideosa"
+#: ../bin/cstruct.c:327 ../bin/cstruct.c:354
+msgid "Pier Number"
+msgstr "Pilarin numero"
-#: ../bin/chndldto.c:277
-msgid "Create Hand Laid Turnout"
-msgstr "Luo käsin aseteltu vaihde"
+#: ../bin/cstruct.c:439
+#, c-format
+msgid "Scale %d:1"
+msgstr "Mittakaava %d:1"
-#: ../bin/ccurve.c:608
-msgid "Create Helix Track"
-msgstr "Luo helix raide"
+#: ../bin/cstruct.c:441
+#, c-format
+msgid "Width %s"
+msgstr "Leveys %s"
-#: ../bin/drawgeom.c:71 ../bin/drawgeom.c:86 ../bin/cdraw.c:770
-msgid "Create Lines"
-msgstr "Luo viivoja"
+#: ../bin/cstruct.c:443
+#, c-format
+msgid "Height %s"
+msgstr "Korkeus %s"
-#: ../bin/misc.c:1698 ../bin/misc.c:1727
-msgid "Create Misc Buttons"
-msgstr "Piirto"
+#: ../bin/cstruct.c:541
+msgid "Place Structure"
+msgstr "Aseta rakennus"
-#: ../bin/cparalle.c:136
-msgid "Create Parallel Track"
-msgstr "Luo rinnakkainen raide"
+#: ../bin/cstruct.c:651
+msgid "Drag to place"
+msgstr "Raahaa paikoilleen"
-#: ../bin/ccurve.c:314 ../bin/cstraigh.c:83
-msgid "Create Straight Track"
-msgstr "Luo suora raideosa"
+#: ../bin/cstruct.c:679
+msgid "Drag to rotate"
+msgstr "Raahaa pyörittääksesi"
-#: ../bin/ctext.c:170 ../bin/ctext.c:208
-msgid "Create Text"
-msgstr "Luo teksti"
+#: ../bin/cstruct.c:700
+#, c-format
+msgid "Angle = %0.3f"
+msgstr "Kulma = %0.3f"
-#: ../bin/misc.c:1693
-msgid "Create Track Buttons"
-msgstr "Luo raiteet"
+#: ../bin/cstruct.c:786
+msgid "Select Structure and then drag to place"
+msgstr "Valitse rakennus ja raahaa paikoilleen"
-#: ../bin/cturntbl.c:796
-msgid "Create Turntable"
-msgstr "Luo kääntöpöytä"
+#: ../bin/cstruct.c:804 ../bin/cstruct.c:891
+msgid ""
+"Left drag to move, right drag to rotate, or press Return or click Ok to "
+"finalize"
+msgstr ""
+"Siirrä raahaamalla hiiren vasemmalla, pyöritä rahaamalla hiiren oikealla, "
+"tai paina return tai klikkaa Ok kun valmis"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:232
-msgid "Create a New part or prototype"
-msgstr "Luo uusi malli tai esikuva"
+#: ../bin/cstruct.c:884 ../bin/cturnout.c:2541
+#, c-format
+msgid "Place %s and draw into position"
+msgstr "Aseta %s ja raahaa paikoilleen"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:41
-msgid "Create a box"
-msgstr "Luo nelikulmio"
+#: ../bin/cswitchmotor.c:89 ../bin/cswitchmotor.c:108
+#: ../bin/cswitchmotor.c:219
+#, fuzzy
+msgid "Point Sense"
+msgstr "Pisteitä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:43
-msgid "Create a circle"
-msgstr "Luo ympyrä"
+#: ../bin/cswitchmotor.c:109
+#, fuzzy
+msgid "Turnout Number"
+msgstr "Tuotekoodi"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:48
-msgid "Create a curved line"
-msgstr "Luo kaari"
+#: ../bin/cswitchmotor.c:255
+#, fuzzy
+msgid "Change Switch Motor"
+msgstr "Muuta suuntaa"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:49
-msgid "Create a curved line from End"
-msgstr "Piirrä kaari päätepisteestä"
+#: ../bin/cswitchmotor.c:316
+msgid "Switch motor"
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:50
-msgid "Create a curved line from center"
-msgstr "Piirrä kaari keskipisteestä"
+#: ../bin/cswitchmotor.c:395
+#, c-format
+msgid "ResolveSwitchmotor: Turnout T%d: T%d doesn't exist"
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:51
-msgid "Create a curved line from chord"
-msgstr "Piirrä kaari·päätepisteiden·välille"
+#: ../bin/cswitchmotor.c:462 ../bin/cswitchmotor.c:625
+msgid "Switch motor must have a name!"
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:52
-msgid "Create a curved line from tangent"
-msgstr "Piirrä kaari kehältä"
+#: ../bin/cswitchmotor.c:466
+#, fuzzy
+msgid "Create Switch Motor"
+msgstr "Piirto"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:53
-msgid "Create a dimension line"
-msgstr "Luo mittajana"
+#: ../bin/cswitchmotor.c:491
+#, fuzzy
+msgid "Create switch motor"
+msgstr "Luo suora raideosa"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:54
-msgid "Create a filled box"
-msgstr "Piirrä täytetty nelikulmio"
+#: ../bin/cswitchmotor.c:505 ../bin/cswitchmotor.c:536
+#: ../bin/cswitchmotor.c:568
+#, fuzzy
+msgid "Select a turnout"
+msgstr "Ensin valitsemme vaihteen.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:55
-msgid "Create a filled circle"
-msgstr "Luo täytetty ympyrä"
+#: ../bin/cswitchmotor.c:512
+msgid "Not a turnout!"
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:59
-msgid "Create a filled polygon"
-msgstr "Luo täytetty monikulmio"
+#: ../bin/cswitchmotor.c:545 ../bin/cswitchmotor.c:576
+msgid "Not a switch motor!"
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:76
-msgid "Create a hand-laid turnout"
-msgstr "Luo käsin aseteltu vaihde"
+#: ../bin/cswitchmotor.c:581
+#, c-format
+msgid "Really delete switch motor %s?"
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:17
-msgid "Create a new Car/Loco description"
-msgstr "Luo uusi veturin tai vaunun määrittely"
+#: ../bin/cswitchmotor.c:582
+msgid "Delete Switch Motor"
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:206
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:207
-msgid "Create a new car Part or Prototype definitions"
-msgstr "Luo uusi malli tai esikuva"
+#: ../bin/cswitchmotor.c:629
+msgid "Modify Switch Motor"
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:122
-msgid "Create a new turnout definition"
-msgstr "Luo uusi raideosan määrittely"
+#: ../bin/cswitchmotor.c:655
+msgid "Edit switch motor"
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:89
-msgid "Create a parallel track"
-msgstr "Luo rinnakkainen raide"
+#: ../bin/cswitchmotor.c:661
+#, c-format
+msgid "Edit switch motor %d"
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:60
-msgid "Create a polyline"
-msgstr "Luo monikulmio"
+#: ../bin/cswitchmotor.c:769
+msgid "Switch Motor"
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:61
-msgid "Create a straight line"
-msgstr "Luo suora viiva"
+#: ../bin/cswitchmotor.c:781
+#, c-format
+msgid "Deleting Switch Motor %s"
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:75
-msgid "Create a structure from a Group of objects"
-msgstr "Luo rakennus valituista objekteista"
+#: ../bin/ctext.c:196 ../bin/ctext.c:235
+msgid "Create Text"
+msgstr "Luo teksti"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:219
-msgid "Create a text list of the Car Items"
-msgstr "Tallenna tekstitiedostoon"
+#: ../bin/ctext.c:266
+msgid "Fonts..."
+msgstr "Kirjasimet..."
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:77
-msgid "Create a track helix"
-msgstr "Luo helix raide (kierrenousu)"
+#: ../bin/ctodesgn.c:114
+msgid "Frog #"
+msgstr "Risteysnumero"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:40
-msgid "Create benchwork"
-msgstr "Luo runkorakenne"
+#: ../bin/ctodesgn.c:114
+msgid "Degrees"
+msgstr "Astetta"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:28
-msgid "Create curved track from center"
-msgstr "Luo kaareva raideosa alkaen keskipisteestä"
+#: ../bin/ctodesgn.c:141 ../bin/ctodesgn.c:142 ../bin/ctodesgn.c:190
+#: ../bin/ctodesgn.c:213 ../bin/ctodesgn.c:215 ../bin/ctodesgn.c:251
+#: ../bin/ctodesgn.c:252 ../bin/ctodesgn.c:288 ../bin/ctodesgn.c:290
+#: ../bin/ctodesgn.c:505
+msgid "Offset"
+msgstr "Siirtymä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:29
-msgid "Create curved track from chord"
-msgstr "Luo kaareva raideosa päätepisteiden välille"
+#: ../bin/ctodesgn.c:150 ../bin/ctodesgn.c:1767 ../bin/ctodesgn.c:1768
+msgid "Left Description"
+msgstr "Vasemman kuvaus"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:30
-msgid "Create curved track from end-point"
-msgstr "Luo kaareva raideosa alkaen päätepisteestä"
+#: ../bin/ctodesgn.c:151 ../bin/ctodesgn.c:154
+msgid " #"
+msgstr " #"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:32
-msgid "Create curved track from tangent"
-msgstr "Luo kaareva raideosa alkaen kehältä"
+#: ../bin/ctodesgn.c:153 ../bin/ctodesgn.c:1766
+msgid "Right Description"
+msgstr "Oikean kuvaus"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:20
-msgid "Create fixed radius track circle"
-msgstr "Määriteltysäteinen ympyrärata"
+#: ../bin/ctodesgn.c:155
+msgid "Roadbed Width"
+msgstr "Ratapenkan leveys"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:111
-msgid "Create straight track"
-msgstr "Luo suora raideosa"
+#: ../bin/ctodesgn.c:159 ../bin/denum.c:56
+msgid "Print Setup"
+msgstr "Tulostusasetukset"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:19
-msgid "Create track circle from center"
-msgstr "Piirrä ympyrärata keskipisteestä"
+#: ../bin/ctodesgn.c:188
+msgid "Diverging Length"
+msgstr "Poikkeavan raiteen pituus"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:22
-msgid "Create track circle from tangent"
-msgstr "Piirrä ympyrärata kehältä"
+#: ../bin/ctodesgn.c:189
+msgid "Diverging Angle"
+msgstr "Poikkeavan raiteen kulma"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:330
-msgid "Creates a new Structure (or Turnout)"
-msgstr "Luo uuden rakennuksen (tai raideosan)"
+#: ../bin/ctodesgn.c:190
+msgid "Diverging Offset"
+msgstr "Poikkeavan raiteen siirtymä"
-#: ../wlib/gtklib/wpref.c:146
-#, c-format
-msgid "Creating %s"
-msgstr "Luodaan %s"
+#: ../bin/ctodesgn.c:191
+msgid "Overall Length"
+msgstr "Kokonaispituus"
-#: ../bin/ctodesgn.c:329
-msgid "Crossing"
-msgstr "Risteys"
+#: ../bin/ctodesgn.c:201
+msgid "Regular Turnout"
+msgstr "Tavallinen vaihde"
-#: ../bin/misc.c:2159
-msgid "Cu&t"
-msgstr "&Leikkaa"
+#: ../bin/ctodesgn.c:211
+msgid "Inner Length"
+msgstr "Sisemmän raiteen pituus"
-#: ../bin/dcar.c:4072 ../bin/dcar.c:4077
-msgid "Curr Price"
-msgstr "Nykyinen hinta"
+#: ../bin/ctodesgn.c:212
+msgid "Inner Angle"
+msgstr "Sisemmän raiteen kulma"
-#: ../bin/dcar.c:1990 ../../../../build/xtrkcad/app/bin/bllnhlp.c:199
-msgid "Current Price"
-msgstr "Nykyinen hinta"
+#: ../bin/ctodesgn.c:213
+msgid "Inner Offset"
+msgstr "Sisemmän raiteen siirtymä"
-#: ../bin/dcar.c:3602
-msgid "Current Price is not valid"
-msgstr "Nykyinen hinta ei ole kelvollinen"
+#: ../bin/ctodesgn.c:214
+msgid "Outer Angle"
+msgstr "Ulomman raiteen kulma"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:481
-msgid "Current selected turnout, (displayed in the diagram window)"
-msgstr "Valittu raideosa (kaaviokuva ikkunassa)"
+#: ../bin/ctodesgn.c:215
+msgid "Outer Offset"
+msgstr "Ulomman raiteen siirtymä"
-#: ../bin/cdraw.c:1034
-msgid "Curve Center"
-msgstr "Kaari keskipisteestä"
+#: ../bin/ctodesgn.c:216
+msgid "Outer Length"
+msgstr "Ulomman raiteen pituus"
-#: ../bin/cdraw.c:1035
-msgid "Curve Chord"
-msgstr "Kaari jänteestä"
+#: ../bin/ctodesgn.c:238
+msgid "Curved Turnout"
+msgstr "Kaareva vaihde"
-#: ../bin/cdraw.c:1032
-msgid "Curve End"
-msgstr "Kaari päätepisteestä"
+#: ../bin/ctodesgn.c:249 ../bin/ctodesgn.c:286
+msgid "Left Length"
+msgstr "Vasemman raiteen pituus"
-#: ../bin/cdraw.c:1033
-msgid "Curve Tangent"
-msgstr "Kaari kehältä"
+#: ../bin/ctodesgn.c:250 ../bin/ctodesgn.c:287
+msgid "Left Angle"
+msgstr "Vasemman raiteen kulma"
-#: ../bin/ccurve.c:711
-msgid "Curve Track"
-msgstr "Kaareva raide"
+#: ../bin/ctodesgn.c:251 ../bin/ctodesgn.c:288
+msgid "Left Offset"
+msgstr "Vasemman raiteen siirtymä"
-#: ../bin/cmodify.c:315
-#, c-format
-msgid "Curve Track: Radius=%s Length=%s Angle=%0.3f"
-msgstr "Kaareva raideosa: Säde=%s Pituus=%s Kulma=%0.3f"
+#: ../bin/ctodesgn.c:252 ../bin/ctodesgn.c:290
+msgid "Right Offset"
+msgstr "Oikean raiteen siirtymä"
-#: ../bin/ccurve.c:711
-msgid "Curve Tracks"
-msgstr "Kaarevat raideosat"
+#: ../bin/ctodesgn.c:253 ../bin/ctodesgn.c:291
+msgid "Right Angle"
+msgstr "Oikean raiteen kulma"
-#: ../bin/ccurve.c:714
-msgid "Curve from Center"
-msgstr "Kaari keskipisteestä"
+#: ../bin/ctodesgn.c:254 ../bin/ctodesgn.c:292
+msgid "Right Length"
+msgstr "Oikean raiteen pituus"
-#: ../bin/ccurve.c:715
-msgid "Curve from Chord"
-msgstr "Kaari päätepisteiden välille"
+#: ../bin/ctodesgn.c:276
+msgid "Wye Turnout"
+msgstr "Y-vaihde"
-#: ../bin/ccurve.c:712
-msgid "Curve from End-Pt"
-msgstr "Kaari päätepisteestä"
+#: ../bin/ctodesgn.c:317
+msgid "3-way Turnout"
+msgstr "3-tie vaihde"
-#: ../bin/ccurve.c:713
-msgid "Curve from Tangent"
-msgstr "Kaari kehältä"
+#: ../bin/ctodesgn.c:337
+msgid "Crossing"
+msgstr "Risteys"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:25
-msgid "Curve to straight"
-msgstr "Kaareva - suora"
+#: ../bin/ctodesgn.c:358
+msgid "Single Slipswitch"
+msgstr "Yksipuolinen risteysvaihde"
-#: ../bin/cdraw.c:825 ../bin/cdraw.c:826 ../bin/cdraw.c:827 ../bin/cdraw.c:828
-msgid "Curved"
-msgstr "Kaareva"
+#: ../bin/ctodesgn.c:379
+msgid "Double Slipswitch"
+msgstr "Kaksipuolinen risteysvaihde"
-#: ../bin/tcurve.c:1066 ../bin/tcurve.c:1098
-msgid "Curved "
-msgstr "Kaareva "
+#: ../bin/ctodesgn.c:399
+msgid "Right Crossover"
+msgstr "Raiteenvaihto oikealle"
-#: ../bin/cdraw.c:445
-msgid "Curved Line"
-msgstr "Kaari"
+#: ../bin/ctodesgn.c:419
+msgid "Left Crossover"
+msgstr "Raiteenvaihto vasemmalle"
-#: ../bin/drawgeom.c:306
-#, c-format
-msgid "Curved Line: Radius=%s Angle=%0.3f Length=%s"
-msgstr "Kaari: Säde=%s Kulma=%0.3f Pituus=%s"
+#: ../bin/ctodesgn.c:439
+msgid "Double Crossover"
+msgstr "Sovitettu raideristeys"
-#: ../bin/cdraw.c:1064
-msgid "Curved Lines"
-msgstr "Kaaret"
+#: ../bin/ctodesgn.c:457
+msgid "Straight Section"
+msgstr "Suora raideosa"
#: ../bin/ctodesgn.c:468
+msgid "Angle (Degrees)"
+msgstr "Kulma (asteina)"
+
+#: ../bin/ctodesgn.c:476
msgid "Curved Section"
msgstr "Kaareva raideosa"
-#: ../bin/tcurve.c:612
-msgid "Curved Track"
-msgstr "Kaareva raideosa"
+#: ../bin/ctodesgn.c:495
+msgid "Bumper Section"
+msgstr "Puskuri raideosa"
-#: ../bin/tcurve.c:530
-#, c-format
-msgid ""
-"Curved Track(%d): Layer=%d Radius=%s Length=%s Center=[%s,%s] EP=[%0.3f,%"
-"0.3f A%0.3f] [%0.3f,%0.3f A%0.3f]"
-msgstr ""
-"Kaareva raideosa(%d): Taso=%d Säde=%s Pituus=%s Keskipiste=[%s,%s] Päätep.=[%"
-"0.3f,%0.3f K%0.3f] [%0.3f,%0.3f K%0.3f]"
+#: ../bin/ctodesgn.c:505 ../bin/denum.c:123 ../bin/denum.c:186
+#: ../bin/denum.c:218 ../bin/denum.c:219 ../bin/dlayer.c:455
+msgid "Count"
+msgstr "Lukumäärä"
-#: ../bin/ccurve.c:282
-#, c-format
-msgid "Curved Track: Radius=%s Angle=%0.3f Length=%s"
-msgstr "Kaareva raideosa: Säde=%s Kulma=%0.3f Pituus=%s"
+#: ../bin/ctodesgn.c:506
+msgid "Radius1"
+msgstr "Säde1"
+
+#: ../bin/ctodesgn.c:507
+msgid "Radius2"
+msgstr "Säde2"
+
+#: ../bin/ctodesgn.c:587
+msgid "Turntable Section"
+msgstr "Kääntöpöytä"
-#: ../bin/cjoin.c:164
+#: ../bin/ctodesgn.c:1421
#, c-format
-msgid "Curved Track: Radius=%s Length=%s"
-msgstr "Kaareva raideosa: Säde=%s Pituus=%s"
+msgid "%s Designer"
+msgstr "%s - suunnittelu"
-#: ../bin/cjoin.c:250
+#: ../bin/ctodesgn.c:1425
#, c-format
-msgid "Curved Track: Radius=%s Length=%s Angle=%0.3f"
-msgstr "Kaareva raideosa: Säde=%s Pituus=%s Kulma=%0.3f"
+msgid "%s %d x %d (of %d x %d)"
+msgstr ""
-#: ../bin/ctodesgn.c:230
-msgid "Curved Turnout"
-msgstr "Kaareva vaihde"
+#: ../bin/ctodesgn.c:1425
+msgid "Page"
+msgstr "Sivu"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:16
-msgid "Curved tracks"
-msgstr "Kaarevat raiteet"
+#: ../bin/ctodesgn.c:1433
+msgid "Frog Number"
+msgstr "Risteysnumero"
-#: ../bin/tcurve.c:1103
-#, c-format
-msgid "Curved: Radius=%s Length=%s Angle=%0.3f"
-msgstr "Kaari: Säde=%s Pituus=%s Kulma=%0.3f"
+#: ../bin/ctodesgn.c:1720
+msgid "Turnout Designer"
+msgstr "Raideosien suunnittelu"
-#: ../bin/fileio.c:646 ../bin/dcar.c:2429 ../bin/dcar.c:2433
-msgid "Custom"
-msgstr "Itse rakennettu"
+#: ../bin/ctodesgn.c:1730
+#, c-format
+msgid "%s %s Designer"
+msgstr "%s %s - suunnittelu"
-#: ../bin/misc.c:2345
-msgid "Custom Management..."
-msgstr "Omat raideosat ja kalusto..."
+#: ../bin/ctrain.c:181 ../bin/dcar.c:1994 ../bin/dcar.c:4078
+#: ../bin/dcar.c:4083
+msgid "Index"
+msgstr "Indeksi"
-#: ../bin/dcustmgm.c:344
-msgid "Custom Update"
-msgstr "Omat raideosat ja kalusto"
+#: ../bin/ctrain.c:187 ../bin/dcar.c:4079
+msgid "Rep Marks"
+msgstr "Tunnus"
-#: ../bin/dcar.c:1912
-msgid "Customize"
-msgstr "Mukauta"
+#: ../bin/ctrain.c:261
+msgid "Car"
+msgstr "Vaunu"
-#: ../bin/param.c:101
-msgid "Dark Aqua"
-msgstr ""
+#: ../bin/ctrain.c:592
+msgid "Follow"
+msgstr "Seuraa"
-#: ../bin/param.c:93
-msgid "Dark Blue"
-msgstr "Tummansininen"
+#: ../bin/ctrain.c:593
+msgid "Auto Reverse"
+msgstr "Automaattinen peruutus"
-#: ../bin/param.c:138
-msgid "Dark Gray"
-msgstr "Tummanharmaa"
+#: ../bin/ctrain.c:612 ../bin/dcar.c:4966
+msgid "Find"
+msgstr "Etsi"
-#: ../bin/param.c:105
-msgid "Dark Green"
-msgstr "Tummanvihreä"
+#: ../bin/ctrain.c:618 ../bin/ctrain.c:877 ../bin/ctrain.c:1187
+#: ../wlib/gtklib/ixhelp.c:239
+msgid "Forward"
+msgstr "Eteen"
-#: ../bin/param.c:132
-msgid "Dark Purple"
-msgstr ""
+#: ../bin/ctrain.c:620 ../bin/ctrain.c:3027 ../bin/dcar.c:4418
+#: ../bin/dcar.c:4428 ../bin/dcar.c:4548 ../bin/fileio.c:236 ../bin/macro.c:87
+msgid "Stop"
+msgstr "Pysäytä"
-#: ../bin/param.c:126
-msgid "Dark Red"
-msgstr "Tummanpunainen"
+#: ../bin/ctrain.c:818 ../bin/ctrain.c:847
+msgid "Crashed"
+msgstr "Törmännyt"
-#: ../bin/param.c:112
-msgid "Dark Yellow"
-msgstr ""
+#: ../bin/ctrain.c:820
+msgid "Not on Track"
+msgstr "Ei raiteilla"
-#: ../bin/doption.c:187
-msgid "Dash"
-msgstr "Katkoviiva"
+#: ../bin/ctrain.c:824
+msgid "Trains Paused"
+msgstr "Junat pysäytetty"
-#: ../bin/misc.c:2162
-msgid "De&lete"
-msgstr "Poista"
+#: ../bin/ctrain.c:826
+msgid "Running"
+msgstr "Liikkeellä"
-#: ../bin/misc.c:1941
-msgid "Debug"
-msgstr "Virheiden poisto (debug)"
+#: ../bin/ctrain.c:831
+msgid "End of Track"
+msgstr "Rata loppu"
-#: ../bin/param.c:97
-msgid "Deep Sky Blue"
-msgstr ""
+#: ../bin/ctrain.c:835
+msgid "Open Turnout"
+msgstr "Avoin vaihde"
-#: ../bin/doption.c:296
-msgid "Default Command"
-msgstr "Oletuskomento"
+#: ../bin/ctrain.c:839
+msgid "Manual Stop"
+msgstr "Pysäytetty"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:223
-msgid "Default command is Describe or Select"
-msgstr "Onko oletuskomentona \"määrittele\" vai \"valitse\""
+#: ../bin/ctrain.c:843
+msgid "No Room"
+msgstr "Ei tilaa"
-#: ../bin/dlayer.c:326
-msgid "Defaults"
-msgstr "Oletukset"
+#: ../bin/ctrain.c:851
+msgid "Unknown Status"
+msgstr "Tuntematon tila"
-#: ../bin/cprofile.c:1353
-msgid "Define"
-msgstr "Määrittele"
+#: ../bin/ctrain.c:861
+msgid "No trains"
+msgstr "Ei junia"
-#: ../bin/celev.c:44
-msgid "Defined"
-msgstr "Määritelty"
+#: ../bin/ctrain.c:1238
+msgid "Train Control XXX"
+msgstr "Junien hallinta XXX"
-#: ../bin/ctodesgn.c:106
-msgid "Degrees"
-msgstr "Astetta"
+#: ../bin/ctrain.c:1239
+#, c-format
+msgid "Train Control %d"
+msgstr "Junien hallinta %d"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:379
-msgid "Delay (in mS) between updating train movements"
-msgstr "Junien piirtoväli ajettaessa (millisekunteina)"
+#: ../bin/ctrain.c:1241
+msgid "Train Control"
+msgstr "Junien hallinta"
-#: ../bin/misc.c:2101 ../bin/dcustmgm.c:55 ../bin/dcar.c:4106
-msgid "Delete"
-msgstr "Poista"
+#: ../bin/ctrain.c:3004
+msgid "Train"
+msgstr "Aja junilla"
-#: ../bin/ctrain.c:2542
-msgid "Delete Car"
-msgstr "Poista vaunu"
+#: ../bin/ctrain.c:3017
+msgid "Uncouple"
+msgstr "Irrota"
-#: ../bin/cselect.c:326
-msgid "Delete Tracks"
-msgstr "Poista raiteita"
+#: ../bin/ctrain.c:3019
+msgid "Flip Car"
+msgstr "Käännä vaunu"
-#: ../bin/ctrain.c:2543
-msgid "Delete Train"
-msgstr "Poista juna"
+#: ../bin/ctrain.c:3021
+msgid "Flip Train"
+msgstr "Käännä juna"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:42
-msgid "Delete and Undo"
-msgstr "Poista ja kumoa"
+#: ../bin/ctrain.c:3023
+msgid "MU Master"
+msgstr "Vetovastuussa"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:35
-msgid "Delete objects"
-msgstr "Poista valitut objektit"
+#: ../bin/ctrain.c:3026
+msgid "Change Direction"
+msgstr "Muuta suuntaa"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:216
-msgid "Delete the selected Car Items"
-msgstr "Poista valitut kohteet"
+#: ../bin/ctrain.c:3030
+#, fuzzy
+msgid "Remove Car"
+msgstr "Poista vaunu"
-#: ../bin/macro.c:831 ../bin/macro.c:1221
-msgid "Demo"
-msgstr "Demo"
+#: ../bin/ctrain.c:3033
+#, fuzzy
+msgid "Remove Train"
+msgstr "Poista juna"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:487
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:488
-msgid "Desciption"
-msgstr "Kuvaus"
+#: ../bin/cturnout.c:89 ../bin/dcar.c:2016 ../bin/dcar.c:2020
+#: ../bin/dcustmgm.c:64
+msgid "New"
+msgstr "Uusi"
-#: ../bin/doption.c:196 ../bin/doption.c:197
-msgid "Descr"
-msgstr "Kuvaus"
+#: ../bin/cturnout.c:201
+#, c-format
+msgid "Turnout path[%d:%d] out of bounds: %d"
+msgstr ""
-#: ../bin/doption.c:195 ../../../../build/xtrkcad/app/i18n/custmsg.h:12
-msgid "Describe"
-msgstr "Määrittele"
+#: ../bin/cturnout.c:213 ../bin/cturnout.c:218
+#, c-format
+msgid "Turnout path[%d] %d is not a track segment"
+msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:11
-msgid "Describe and Select"
-msgstr "Määrittele ja valitse -toiminnot"
+#: ../bin/cturnout.c:226
+#, c-format
+msgid "Turnout path[%d] %d-%d not connected: %0.3f"
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:37
-msgid "Describe objects"
-msgstr "Määrittele objekteja"
+#: ../bin/cturnout.c:262
+msgid "Unknown special case"
+msgstr "Tuntematon erikoistapaus"
-#: ../bin/misc.c:1695 ../bin/misc.c:1724
-msgid "Describe/Select"
-msgstr "Määrittele/valitse"
+#: ../bin/cturnout.c:368
+msgid "Connect Adjustable Tracks"
+msgstr "Yhdistä säädettävä raide"
-#: ../bin/cgroup.c:605 ../bin/ctodesgn.c:1761 ../bin/ctodesgn.c:1762
-#: ../bin/ctrain.c:175 ../bin/dcustmgm.c:46 ../bin/dcar.c:1949
-#: ../bin/dcar.c:4071 ../bin/dcar.c:4076 ../bin/cstruct.c:62
-#: ../bin/cturnout.c:68 ../bin/dcmpnd.c:450 ../bin/cmisc.c:309
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:326
-msgid "Description"
-msgstr "Kuvaus"
+#: ../bin/cturnout.c:927
+msgid "splitTurnout: can't find segment"
+msgstr "Pilko: Lohkoja ei löytynyt."
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:427
-msgid "Description of Object"
-msgstr "Objektin kuvaus"
+#: ../bin/cturnout.c:1337 ../bin/track.c:1952 ../bin/tstraigh.c:542
+msgid "Drag to change track length"
+msgstr "Vedä muuttaaksesi raideosan pituutta"
-#: ../bin/misc.c:2095
-msgid "Deselect All"
-msgstr "Poista valinnat"
+#: ../bin/cturnout.c:1348
+#, c-format
+msgid "Length=%s"
+msgstr "Pituus=%s"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:38
-msgid "Deselect all selected objects"
-msgstr "Poista valinnat kaikista objekteista"
+#: ../bin/cturnout.c:1609 ../bin/cturnout.c:2585
+msgid "TURNOUT "
+msgstr "PALARAIDE "
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:407
-msgid "Deselects all pages"
-msgstr "Poista sivujen valinnat"
+#: ../bin/cturnout.c:1960
+#, c-format
+msgid "%d connections, max distance %0.3f (%s)"
+msgstr "%d liitosta, suurin etäisyys %0.3f (%s)"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:34
-msgid "Designing turnouts"
-msgstr "Raideosien suunnittelu"
+#: ../bin/cturnout.c:1965
+#, c-format
+msgid "0 connections (%s)"
+msgstr "0 liitosta (%s)"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:196
-msgid "Diagram of Car"
-msgstr "Vaunun tai veturin kaaviokuva"
+#: ../bin/cturnout.c:2005
+msgid "Place New Turnout"
+msgstr "Aseta uusi vaihde"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:477
+#: ../bin/cturnout.c:2264 ../bin/cturnout.c:2320 ../bin/cturnout.c:2436
+#: ../bin/cturnout.c:2548
msgid ""
-"Diagram of the currently selected turnout. Click on a End-Point to select "
-"the Active End-Point"
-msgstr "Valitun raideosan kaaviokuva. Valitse aktiivinen päätepiste hiirellä."
+"Left drag to move, right drag to rotate, press Space or Return to fix track "
+"in place or Esc to cancel"
+msgstr ""
+"Siirrä vetämällä hiiren vasemmalla, pyöritä vetämällä hiiren oikealla, paina "
+"välilyönti tai return asettaaksesi raideosa paikalleen tai esc peruuttaaksesi"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:454
-msgid "Diagram of the selected structure"
-msgstr "Valitun rakennuksen kuva"
+#: ../bin/cturnout.c:2311
+#, c-format
+msgid "Angle = %0.3f (%s)"
+msgstr "Kulma = %0.3f (%s)"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:9
-msgid "Dialogs"
-msgstr "Dialogit (ikkunat)"
+#: ../bin/cturnout.c:2401 ../bin/param.c:2468
+msgid "Close"
+msgstr "Sulje"
+
+#: ../bin/cturnout.c:2418
+msgid "Pick turnout and active End Point, then place on the layout"
+msgstr ""
+"Valitse ensin vaihde ja aktiivinen päätepiste ja aseta sitten paikoilleen"
-#: ../bin/cturntbl.c:47 ../bin/cturntbl.c:240 ../bin/cturntbl.c:766
-#: ../bin/cturntbl.c:779
+#: ../bin/cturntbl.c:52 ../bin/cturntbl.c:246 ../bin/cturntbl.c:795
+#: ../bin/cturntbl.c:808
msgid "Diameter"
msgstr "Halkaisija"
-#: ../bin/smalldlg.c:70
-msgid "Did you know..."
-msgstr "Tiesitkö..."
+#: ../bin/cturntbl.c:247
+msgid "# EndPt"
+msgstr "Päätepisteitä"
-#: ../bin/dcar.c:479
-msgid "Diesel Loco"
-msgstr "Dieselveturi"
+#: ../bin/cturntbl.c:281
+#, c-format
+msgid "Turntable(%d): Layer=%d Center=[%s %s] Diameter=%s #EP=%d"
+msgstr ""
+"Kääntöpöytä(%d): Taso=%d Keskipiste=[%s %s] Halkaisija=%s Päätepisteitä=%d"
-#: ../bin/cdraw.c:822
-msgid "Dimension"
-msgstr "Etäisyys"
+#: ../bin/cturntbl.c:296 ../bin/cturntbl.c:853
+msgid "Turntable"
+msgstr "Kääntöpöytä"
-#: ../bin/cdraw.c:410 ../bin/cdraw.c:1028
-msgid "Dimension Line"
-msgstr "Mittajana"
+#: ../bin/cturntbl.c:554
+msgid "Drag to create stall track"
+msgstr "Vedä luodaksesi lähtevän raiteen"
-#: ../bin/cdraw.c:924
-msgid "Dimension Line Size"
-msgstr "Mittajanan koko"
+#: ../bin/cturntbl.c:825
+msgid "Create Turntable"
+msgstr "Luo kääntöpöytä"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:54
-msgid "Dimension Lines"
-msgstr "Mittajanat"
+#: ../bin/cundo.c:166
+msgid "Undo Trace"
+msgstr "Jäljitys"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:192
-msgid "Dimension Lines are used to mark the distances between two points.\n"
-msgstr ""
-"Mittajanoja käytetään merkitsemään kahden pisteen välisiä etäisyyksiä.\n"
+#: ../bin/cundo.c:501
+#, c-format
+msgid "Undo: %s"
+msgstr "Kumoa: %s"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:649
-msgid "Dimension lines show the distance between two points."
-msgstr ""
+#: ../bin/cundo.c:504 ../../../../build/work/app/bin/bllnhlp.c:136
+msgid "Undo last command"
+msgstr "Kumoa edellinen komento"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:183
-msgid "Display Car Item information or reporting marks and dimensions"
-msgstr "Näytä vaunun tai veturin tiedot, tai yhtiötunnukset ja mitat"
+#: ../bin/cundo.c:509
+#, c-format
+msgid "Redo: %s"
+msgstr "Tee uudelleen: %s"
-#: ../bin/doption.c:243
-msgid "Display Options"
-msgstr "Näyttöasetukset"
+#: ../bin/cundo.c:512 ../../../../build/work/app/bin/bllnhlp.c:106
+msgid "Redo last undo"
+msgstr "Tee uudelleen"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:93
-msgid "Display prices of turnouts, sectional tracks and structures"
-msgstr "Vaihteiden, palaraiteiden ja rakennusten hinnat"
+#: ../bin/custom.c:164
+#, c-format
+msgid "%s Turnout Designer"
+msgstr "%s Vaihteiden suunnittelu"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:523
-msgid ""
-"Displays the Print Setup window to change printers, orientation, paper size, "
-"etc."
+#: ../bin/custom.c:169
+#, c-format
+msgid "%s Version %s"
+msgstr "%s versio %s"
+
+#: ../bin/custom.c:174
+#, c-format
+msgid "%s Files|*.xtc"
+msgstr "%s tiedostot|*.xtc"
+
+#: ../bin/custom.c:179
+#, c-format
+msgid "%s Import Files|*.%sti"
+msgstr "%s Tuotavat tiedostot|*.%sti"
+
+#: ../bin/custom.c:184
+msgid "Data Exchange Format Files|*.dxf"
msgstr ""
-"Näyttää tulostusasetusikkunan, josta voi valita tulostimen, muutaa paperin "
-"koon, yms."
-#: ../bin/celev.c:311 ../bin/celev.c:328
+#: ../bin/custom.c:188
#, c-format
-msgid "Dist = %s"
-msgstr "Etäisyys = %s"
+msgid "%s Record Files|*.%str"
+msgstr "%s Nauhoitustiedostot|*.%str"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:192
-msgid "Distance between Trucks "
-msgstr "Telien keskikohtien välinen etäisyys"
+#: ../bin/custom.c:193
+#, c-format
+msgid "%s Note Files|*.not"
+msgstr "%s Muistiinpanot|*.not"
-#: ../bin/ctodesgn.c:181
-msgid "Diverging Angle"
-msgstr "Poikkeavan raiteen kulma"
+#: ../bin/custom.c:198
+#, c-format
+msgid "%s Log Files|*.log"
+msgstr "%s Lokitiedostot|*.log"
-#: ../bin/ctodesgn.c:180
-msgid "Diverging Length"
-msgstr "Poikkeavan raiteen pituus"
+#: ../bin/custom.c:203
+#, fuzzy, c-format
+msgid "%s PartsList Files|*.txt"
+msgstr "%s Osaluetelotiedostot|*.log"
-#: ../bin/ctodesgn.c:182
-msgid "Diverging Offset"
-msgstr "Poikkeavan raiteen siirtymä"
+#: ../bin/dbench.c:43
+msgid " L-Girder"
+msgstr "L-palkki"
-#: ../bin/param.c:244
-msgid "Divide by 0"
-msgstr "Jako nollalla"
+#: ../bin/dbench.c:43
+msgid " T-Girder"
+msgstr "T-palkki"
-#: ../bin/csnap.c:517
-msgid "Divisions"
-msgstr "Jako"
+#: ../bin/dbench.c:66
+msgid "On Edge"
+msgstr "Pysty"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:204
-msgid "Do all the cars have the same Number?"
-msgstr "Onko kaikilla vaunuilla tai vetureilla sama numero?"
+#: ../bin/dbench.c:67
+msgid "Flat"
+msgstr "Vaaka"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:370
-msgid "Do not create tracks to be shorter than this value"
-msgstr "Älä luo tätä lyhyempiä raiteita"
+#: ../bin/dbench.c:71
+msgid "Left-Down"
+msgstr "Vasen-Alas"
-#: ../bin/cselect.c:560
-msgid "Do not resize track"
-msgstr "Älä muuta raiteiden kokoa"
+#: ../bin/dbench.c:72
+msgid "Right-Down"
+msgstr "Oikea-Alas"
+
+#: ../bin/dbench.c:73
+msgid "Left-Up"
+msgstr "Vasen-Ylös"
+
+#: ../bin/dbench.c:74
+msgid "Right-Up"
+msgstr "Oikea-Ylös"
+
+#: ../bin/dbench.c:75
+msgid "Left-Inverted"
+msgstr "Vasen-Käännetty"
+
+#: ../bin/dbench.c:76
+msgid "Right-Inverted"
+msgstr "Oikea-Käännetty"
-#: ../bin/misc.c:476
+#: ../bin/dbench.c:81
+msgid "Inverted"
+msgstr "Käännetty"
+
+#: ../bin/dbench.c:147
+#, c-format
msgid ""
-"Do you want to return to the last saved state?\n"
-"\n"
-"Revert will cause all changes done since last save to be lost."
+"Bad BenchType for %s:\n"
+"%s"
msgstr ""
-"Haluatko palata edelliseen tallennettuun tilaan?\n"
-"\n"
-"Palautuksessa menetetään kaikki tallennuksen jälkeiset muutokset."
+"Väärä runkotyyppi %s:lle:\n"
+"%s"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:289
-msgid "Don't show trains in tunnels when tunnels are hidden"
-msgstr ""
-"Ei näytetä junia tunneleissa, jos tunnelien piirtotapa on \"piilotettu\""
+#: ../bin/dbitmap.c:102 ../bin/dbitmap.c:106
+msgid "Drawn with "
+msgstr "Suunnitteluohjelma: "
-#: ../bin/dpricels.c:155 ../bin/dlayer.c:820 ../bin/celev.c:407
-#: ../bin/dcustmgm.c:344 ../bin/cprofile.c:1255 ../bin/cmisc.c:309
-msgid "Done"
-msgstr "Valmis"
+#: ../bin/dbitmap.c:116
+msgid "Drawing tracks to BitMap"
+msgstr "Piirretään raiteet bitmap:ksi"
-#: ../bin/ctodesgn.c:431
-msgid "Double Crossover"
-msgstr "Sovitettu raideristeys"
+#: ../bin/dbitmap.c:123
+msgid "Writing BitMap to file"
+msgstr "Kirjoitetaan bitmap tiedostoon"
-#: ../bin/ctodesgn.c:371
-msgid "Double Slipswitch"
-msgstr "Kaksipuolinen risteysvaihde"
+#: ../bin/dbitmap.c:144
+msgid "Print Titles"
+msgstr "Tulosta otsikot"
-#: ../bin/doption.c:366
-msgid "Drag Distance"
-msgstr "Raahausetäisyys"
+#: ../bin/dbitmap.c:144
+msgid "Print Borders"
+msgstr "Tulosta kehys"
-#: ../bin/doption.c:367
-msgid "Drag Timeout"
-msgstr "Raahauksen viive"
+#: ../bin/dbitmap.c:145
+msgid "Print Centerline"
+msgstr "Tulosta keskiviiva"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:118
-msgid ""
-"Drag a horizontal line that will be the mirror for the <Flip> command.\n"
-msgstr "Piirrä peilayslinja vaakatasoon.\n"
+#: ../bin/dbitmap.c:152
+msgid " dpi"
+msgstr " dpi"
-#: ../bin/ccurve.c:108 ../bin/ccurve.c:138
-msgid "Drag from Center to End-Point"
-msgstr "Vedä keskipisteestä päätepisteeseen"
+#: ../bin/dbitmap.c:154
+msgid "Bitmap : 99999 by 99999 pixels"
+msgstr "Bitmap : 99999 x 99999 pikseliä"
-#: ../bin/ccurve.c:102
-msgid "Drag from End-Point in direction of curve"
-msgstr "Vedä päätepisteestä kaarteen suuntaan"
+#: ../bin/dbitmap.c:156
+msgid "Approximate file size: 999.9Mb"
+msgstr "Arvioitu tiedostokoko: 999.9Mt"
-#: ../bin/ccurve.c:105 ../bin/ccurve.c:138
-msgid "Drag from End-Point to Center"
-msgstr "Vedä päätepisteestä keskipisteeseen"
+#: ../bin/dbitmap.c:186
+#, c-format
+msgid "Bitmap : %ld by %ld pixels"
+msgstr "Bitmap : %ld x %ld pikseliä"
-#: ../bin/ccurve.c:202 ../bin/ccurve.c:303 ../bin/drawgeom.c:365
-msgid "Drag on Red arrows to adjust curve"
-msgstr "Asettele kaari vetämällä punaisista nuolista"
+#: ../bin/dbitmap.c:190
+#, c-format
+msgid "Approximate file size : %0.0f"
+msgstr "Arvioitu tiedostokoko: %0.0f"
-#: ../bin/drawgeom.c:215
-msgid "Drag set box size"
-msgstr "Aseta nelikulmion koko rahaamalla"
+#: ../bin/dbitmap.c:192
+#, c-format
+msgid "Approximate file size : %0.1fKb"
+msgstr "Arvioitu tiedostokoko: %0.1fKt"
-#: ../bin/ccurve.c:564
-msgid "Drag to Center"
-msgstr "Raahaa keskustaan"
+#: ../bin/dbitmap.c:194
+#, c-format
+msgid "Approximate file size : %0.1fMb"
+msgstr "Arvioitu tiedostokoko: %0.1fMt"
-#: ../bin/ccurve.c:568
-msgid "Drag to Edge"
-msgstr "Raahaa kehälle"
+#: ../bin/dbitmap.c:208 ../bin/misc.c:1043 ../bin/misc.c:1113
+#: ../bin/param.c:2468 ../wlib/gtklib/browserhelp.c:127
+#: ../../../../build/work/app/bin/bllnhlp.c:539
+msgid "Cancel"
+msgstr "Peruuta"
-#: ../bin/cprofile.c:659 ../bin/cprofile.c:1260
-msgid "Drag to change Elevation"
-msgstr "Muuta korkeutta raahaamalla"
+#: ../bin/dbitmap.c:213
+msgid "Save Bitmap"
+msgstr "Tallenna bitmap"
-#: ../bin/tcurve.c:1033
-msgid "Drag to change angle or create tangent"
-msgstr "Raahaa muuttaaksesi kulmaa"
+#: ../bin/dbitmap.c:215
+msgid "Bitmap files|*.bmp"
+msgstr "Bitmap kuvatiedostot|*.bmp"
-#: ../bin/track.c:1860 ../bin/tstraigh.c:529 ../bin/cturnout.c:1327
-msgid "Drag to change track length"
-msgstr "Vedä muuttaaksesi raideosan pituutta"
+#: ../bin/dbitmap.c:217
+msgid "Bitmap files|*.xpm"
+msgstr "Bitmap kuvatiedostot|*.xpm"
-#: ../bin/cdraw.c:937
-msgid "Drag to create Table Edge"
-msgstr "Piirrä pöydän reuna"
+#: ../bin/dbitmap.c:238
+msgid "BitMap"
+msgstr "BitMap"
-#: ../bin/cmodify.c:198
-msgid "Drag to create new track segment"
-msgstr "Raahaa luodaksesi uuden raiteen"
+#: ../bin/dcar.c:53
+msgid "Truck"
+msgstr "Teli"
-#: ../bin/cturntbl.c:544
-msgid "Drag to create stall track"
-msgstr "Vedä luodaksesi lähtevän raiteen"
+#: ../bin/dcar.c:53
+msgid "Body"
+msgstr "Runko"
-#: ../bin/cselect.c:1558
-msgid "Drag to mark mirror line"
-msgstr "Vedä hiirellä peilauslinja"
+#: ../bin/dcar.c:154 ../bin/dcar.c:2445 ../bin/dcar.c:2449
+msgid "Unknown"
+msgstr "Tuntematon"
-#: ../bin/cselect.c:1118
-msgid "Drag to move selected tracks"
-msgstr "Siirrä valitut raideosat raahaamalla"
+#: ../bin/dcar.c:487
+msgid "Diesel Loco"
+msgstr "Dieselveturi"
-#: ../bin/ccurve.c:111 ../bin/ccurve.c:144
-msgid "Drag to other end of chord"
-msgstr "Vedä jänne päätepisteiden välille"
+#: ../bin/dcar.c:488
+msgid "Steam Loco"
+msgstr "Höyryveturi"
-#: ../bin/cstruct.c:643
-msgid "Drag to place"
-msgstr "Raahaa paikoilleen"
+#: ../bin/dcar.c:489
+msgid "Elect Loco"
+msgstr "Sähköveturi"
-#: ../bin/cstraigh.c:55
-msgid "Drag to place 2nd end point"
-msgstr "Raahaa asettaaksesi 2. päätepiste"
+#: ../bin/dcar.c:490
+msgid "Freight Car"
+msgstr "Tavaravaunu"
-#: ../bin/drawgeom.c:157 ../bin/drawgeom.c:170
-msgid "Drag to place next end point"
-msgstr "Raahaa asettaaksesi seuraava päätepiste"
+#: ../bin/dcar.c:491
+msgid "Psngr Car"
+msgstr "Matkustajavaunu"
-#: ../bin/cstruct.c:670
-msgid "Drag to rotate"
-msgstr "Raahaa pyörittääksesi"
+#: ../bin/dcar.c:492
+msgid "M-O-W"
+msgstr "Työkone"
-#: ../bin/cselect.c:1208
-msgid "Drag to rotate selected tracks"
-msgstr "Pyöritä valittuja raideosia raahaamalla"
+#: ../bin/dcar.c:493 ../bin/doption.c:108
+msgid "Other"
+msgstr "Muut"
-#: ../bin/ccurve.c:128 ../bin/chndldto.c:91
-msgid "Drag to set angle"
-msgstr "Aseta kulma raahaamalla"
+#: ../bin/dcar.c:1092 ../bin/dcar.c:4787
+msgid "N/A"
+msgstr "Ei tiedossa"
-#: ../bin/ccurve.c:676 ../bin/drawgeom.c:202
-msgid "Drag to set radius"
-msgstr "Aseta säde raahaamalla"
+#: ../bin/dcar.c:1093 ../bin/dcar.c:4792
+msgid "Mint"
+msgstr "Loistava"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:422
-msgid "Dragging with the right button is simulated by a blue solid cursor.\n"
-msgstr ""
-"Hiiren oikealla painikkeella raahaamista kuvataan sinisellä nuolella.\n"
+#: ../bin/dcar.c:1094 ../bin/dcar.c:4791
+msgid "Excellent"
+msgstr "Erinomainen"
-#: ../bin/cdraw.c:1144
-msgid "Draw"
-msgstr "Piirto"
+#: ../bin/dcar.c:1095 ../bin/dcar.c:4790
+msgid "Good"
+msgstr "Hyvä"
-#: ../bin/cdraw.c:1029
-msgid "Draw Benchwork"
-msgstr "Piirrä runkorakenne"
+#: ../bin/dcar.c:1096 ../bin/dcar.c:4789
+msgid "Fair"
+msgstr "Tyydyttävä"
-#: ../bin/cdraw.c:1044
-msgid "Draw Box"
-msgstr "Piirrä nelikulmio"
+#: ../bin/dcar.c:1097 ../bin/dcar.c:4788
+msgid "Poor"
+msgstr "Huono"
-#: ../bin/cdraw.c:1039
-msgid "Draw Circle from Center"
-msgstr "Piirrä ympyrä keskipisteestä"
+#: ../bin/dcar.c:1373 ../bin/dpricels.c:45
+#: ../../../../build/work/app/bin/bllnhlp.c:404
+msgid "Item"
+msgstr "Tuote"
-#: ../bin/cdraw.c:1038
-msgid "Draw Circle from Tangent"
-msgstr "Piirrä ympyrä kehältä"
+#: ../bin/dcar.c:1920 ../wlib/gtklib/notice.c:91 ../wlib/mswlib/mswmisc.c:1967
+msgid "Information"
+msgstr "Tiedot"
-#: ../bin/cdraw.c:1065
-msgid "Draw Circles"
-msgstr "Ympyröiden piirto"
+#: ../bin/dcar.c:1920
+msgid "Customize"
+msgstr "Mukauta"
-#: ../bin/cdraw.c:1034
-msgid "Draw Curve from Center"
-msgstr "Piirrä kaari keskipisteestä"
+#: ../bin/dcar.c:1932
+msgid "Sequential"
+msgstr "Peräkkäinen"
-#: ../bin/cdraw.c:1035
-msgid "Draw Curve from Chord"
-msgstr "Piirrä kaari·päätepisteiden·välille"
+#: ../bin/dcar.c:1932
+msgid "Repeated"
+msgstr "Sama"
-#: ../bin/cdraw.c:1032
-msgid "Draw Curve from End"
-msgstr "Piirrä kaari päätepisteestä"
+#: ../bin/dcar.c:1943 ../bin/dcar.c:1945 ../bin/dcar.c:5117
+msgid "Prototype"
+msgstr "Esikuva"
-#: ../bin/cdraw.c:1033
-msgid "Draw Curve from Tangent"
-msgstr "Piirrä kaari kehältä"
+#: ../bin/dcar.c:1949 ../bin/dcar.c:4078 ../bin/dcar.c:4083
+msgid "Type"
+msgstr "Tyyppi"
-#: ../bin/cdraw.c:1064
-msgid "Draw Curved Lines"
-msgstr "Kaarien piirto"
+#: ../bin/dcar.c:1951
+msgid "Part"
+msgstr "Tuote"
-#: ../bin/cdraw.c:1028
-msgid "Draw Dimension Line"
-msgstr "Piirrä mittajana"
+#: ../bin/dcar.c:1953 ../../../../build/work/app/bin/bllnhlp.c:347
+#: ../../../../build/work/app/bin/bllnhlp.c:523
+#: ../../../../build/work/app/bin/bllnhlp.c:524
+msgid "Part Number"
+msgstr "Tuotekoodi"
-#: ../bin/doption.c:202
-msgid "Draw EndPts"
-msgstr "Piirrä päätepisteet"
+#: ../bin/dcar.c:1955
+msgid "Loco?"
+msgstr "Veturi?"
-#: ../bin/cdraw.c:1045
-msgid "Draw Filled Box"
-msgstr "Piirrä täytetty nelikulmio"
+#: ../bin/dcar.c:1959 ../bin/dcar.c:4116
+msgid "Import"
+msgstr "Tuo tiedostosta"
-#: ../bin/cdraw.c:1042
-msgid "Draw Filled Circle from Center"
-msgstr "Piirrä täytetty ympyrä keskipisteestä"
+#: ../bin/dcar.c:1966
+msgid "Mode"
+msgstr "Tila"
-#: ../bin/cdraw.c:1041
-msgid "Draw Filled Circle from Tangent"
-msgstr "Piirrä täytetty ympyrä kehältä"
+#: ../bin/dcar.c:1970
+msgid "Road"
+msgstr "Yhtiö"
-#: ../bin/cdraw.c:1027
-msgid "Draw Line"
-msgstr "Piirrä viiva"
+#: ../bin/dcar.c:1972
+msgid "Reporting Mark"
+msgstr "Yhtiön tunnus"
-#: ../bin/doption.c:294
-msgid "Draw Moving Tracks"
-msgstr "Piirrä liikuteltavat raiteet"
+#: ../bin/dcar.c:1974
+msgid "Number"
+msgstr "Numero"
-#: ../bin/cdraw.c:1047
-msgid "Draw Polygon"
-msgstr "Piirrä täytetty monikulmio"
+#: ../bin/dcar.c:1978
+msgid "Car Length"
+msgstr "Pituus"
-#: ../bin/cdraw.c:1046
-msgid "Draw Polyline"
-msgstr "Piirrä monikulmio"
+#: ../bin/dcar.c:1982
+msgid "Truck Centers"
+msgstr "Telien keskikohdat"
-#: ../bin/cdraw.c:1066
-msgid "Draw Shapes"
-msgstr "Muotojen piirto"
+#: ../bin/dcar.c:1984
+msgid "Coupler Mount"
+msgstr "Kytkimien sijoitus"
-#: ../bin/cdraw.c:1063
-msgid "Draw Straight Objects"
-msgstr "Suorien objektien piirto"
+#: ../bin/dcar.c:1986
+msgid "Coupled Length"
+msgstr "Pituus kytkimineen"
-#: ../bin/cdraw.c:1030
-msgid "Draw Table Edge"
-msgstr "Piirrä pöydän reuna"
+#: ../bin/dcar.c:1988 ../bin/dcar.c:3954
+msgid "Coupler Length"
+msgstr "Kytkinten ulkonema"
-#: ../bin/doption.c:209
-msgid "Draw Ties"
-msgstr "Piirrä ratapölkyt"
+#: ../bin/dcar.c:1996
+msgid "Purchase Price"
+msgstr "Ostohinta"
-#: ../bin/doption.c:201
-msgid "Draw Tunnel"
-msgstr "Piirrä tunneli"
+#: ../bin/dcar.c:1998 ../../../../build/work/app/bin/bllnhlp.c:213
+msgid "Current Price"
+msgstr "Nykyinen hinta"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:44
-msgid "Draw a circle line from center"
-msgstr "Piirrä ympyrä keskipisteestä"
+#: ../bin/dcar.c:2000 ../bin/dcar.c:4080 ../bin/dcar.c:4085
+msgid "Condition"
+msgstr "Kunto"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:46
-msgid "Draw a circle line from tangent"
-msgstr "Piirrä ympyrä kehältä"
+#: ../bin/dcar.c:2002
+msgid "Purchase Date"
+msgstr "Ostopäivä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:56
-msgid "Draw a filled circle from center"
-msgstr "Piirrä täytetty ympyrä keskipisteestä"
+#: ../bin/dcar.c:2004 ../bin/dcar.c:4085
+msgid "Service Date"
+msgstr "Huollettu"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:58
-msgid "Draw a filled circle from tangent"
-msgstr "Piirrä täytetty ympyrä kehältä"
+#: ../bin/dcar.c:2006
+msgid "Quantity"
+msgstr "Määrä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:45
-msgid "Draw a fixed radius circle line"
-msgstr "Piirrä määriteltysäteinen ympyrä"
+#: ../bin/dcar.c:2008
+msgid "Numbers"
+msgstr "Numerot"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:57
-msgid "Draw a fixed radius filled circle"
-msgstr "Piirrä täytetty määriteltysäteinen ympyrä"
+#: ../bin/dcar.c:2010 ../bin/dcar.c:4081
+#: ../../../../build/work/app/i18n/custmsg.h:61
+msgid "Notes"
+msgstr "Muistiinpanot"
-#: ../bin/cselect.c:789
-msgid "Draw moving track as end-points"
-msgstr "Piirrä liikuteltavat raiteet päätepisteinä"
+#: ../bin/dcar.c:2017 ../bin/dcustmgm.c:65
+msgid "Car Part"
+msgstr "Malli"
-#: ../bin/cselect.c:787
-msgid "Draw moving track normally"
-msgstr "Piirrä liikuteltavat raiteet normaalisti"
+#: ../bin/dcar.c:2018 ../bin/dcustmgm.c:66
+#: ../../../../build/work/app/bin/bllnhlp.c:188
+#: ../../../../build/work/app/bin/bllnhlp.c:189
+msgid "Car Prototype"
+msgstr "Esikuva"
-#: ../bin/cselect.c:788
-msgid "Draw moving track simply"
-msgstr "Piirrä liikuteltavat raiteet yksinkertaistetuna"
+#: ../bin/dcar.c:2379 ../bin/dcar.c:2696
+msgid "Undecorated"
+msgstr "Ei yhtiömerkintöjä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:64
-msgid "Draw table edge"
-msgstr "Piirrä pöydän reuna"
+#: ../bin/dcar.c:2437 ../bin/dcar.c:2441 ../bin/fileio.c:656
+msgid "Custom"
+msgstr "Itse rakennettu"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:128
-msgid "Draw tracks with medium lines"
-msgstr "Piirrä raiteet keskipaksuilla viivoilla"
+#: ../bin/dcar.c:2606
+msgid "Undecorated "
+msgstr "Ei yhtiömerkintöjä "
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:129
-msgid "Draw tracks with thick lines"
-msgstr "Piirrä raiteet paksuilla viivoilla"
+#: ../bin/dcar.c:2826
+#, c-format
+msgid "New %s Scale Car"
+msgstr "Uusi %s mittakaavan vaunu/veturi"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:127
-msgid "Draw tracks with thin lines"
-msgstr "Piirrä raiteet ohuilla viivoilla"
+#: ../bin/dcar.c:2827 ../bin/dcar.c:2836 ../bin/dcar.c:2845 ../bin/dcar.c:3984
+#: ../bin/dcar.c:4112
+msgid "Add"
+msgstr "Lisää"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:247
-msgid ""
-"Drawing lines with the Shift key held down will use the previous line End-"
-"Point as the starting position. This makes it easy to draw connected "
-"lines.\n"
-msgstr ""
-"Jos vaihto-näppäin pidetään painettuna, seuraavan viivan piirto aloitetaan "
-"edellisen viivan loppupäästä. Näin voidaan helposti piirtää yhdistettyjä "
-"viivoja.\n"
+#: ../bin/dcar.c:2829
+#, c-format
+msgid "Update %s Scale Car"
+msgstr "Päivitä %s mittakaavan vaunu"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:159
-msgid "Drawing scale"
-msgstr "Piirron mittakaava"
+#: ../bin/dcar.c:2830 ../bin/dcar.c:2839 ../bin/dcar.c:2848
+#: ../bin/dcmpnd.c:172
+msgid "Update"
+msgstr "Päivitä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:456
-msgid "Drawing scale and size"
-msgstr "Mittakaava ja koko"
+#: ../bin/dcar.c:2835
+#, c-format
+msgid "New %s Scale Car Part"
+msgstr "Uusi %s mittakaavan vaunu/veturi"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:286
-msgid "Drawing scale of the map window"
-msgstr "Karttaikkunan piirtomittakaava"
+#: ../bin/dcar.c:2838
+#, c-format
+msgid "Update %s Scale Car Part"
+msgstr "Päivitä %s mittakaavan vaunu"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:281
-msgid "Drawing scale when to draw tracks with 2 rails"
-msgstr ""
-"Näytön mittakaavan raja-arvo, jolloin raiteet piirretään yhtenä tai kahtena "
-"kiskona."
+#: ../bin/dcar.c:2844
+msgid "New Prototype"
+msgstr "Uusi esikuva"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:405
-msgid ""
-"Drawing the tracks while moving can be very time-consuming. We had just "
-"used the \"Normal\" method of drawing tracks.\n"
-msgstr ""
-"Raiteita siirrettäessä niiden piirto voi olla hyvinkin aikaa vievää. Tässä "
-"on käytetty reiteiden piirron asetusta \"normaali\".\n"
+#: ../bin/dcar.c:2847
+msgid "Update Prototype"
+msgstr "Päivitä esikuva"
-#: ../bin/dbitmap.c:113
-msgid "Drawing tracks to BitMap"
-msgstr "Piirretään raiteet bitmap:ksi"
+#: ../bin/dcar.c:3490
+msgid "Enter a 8 digit numeric date"
+msgstr "Syötä 8 numeroinen päiväys"
-#: ../bin/dbitmap.c:99 ../bin/dbitmap.c:103
-msgid "Drawn with "
-msgstr "Suunnitteluohjelma: "
+#: ../bin/dcar.c:3493
+msgid "Enter a 8 digit date"
+msgstr "Syötä 8 numeroinen päiväys"
-#: ../bin/misc.c:2150
-msgid "E&xit"
-msgstr "Poistu"
+#: ../bin/dcar.c:3495
+msgid "Enter a date between 19000101 and 21991231"
+msgstr "Syötä päivämärä %s ja %s väliltä"
-#: ../bin/misc.c:2140
-msgid "E&xport"
-msgstr "Vie tiedostoon"
+#: ../bin/dcar.c:3500
+msgid "Invalid month"
+msgstr "Epäkelpo kuukausi"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:608
-msgid ""
-"Each Layer can be drawn or hidden by the 'Visible' toggle on the Layers "
-"dialog. "
-msgstr ""
+#: ../bin/dcar.c:3502
+msgid "Invalid day"
+msgstr "Epäkelpo päivä"
-#: ../bin/dease.c:220
-msgid "Easement"
-msgstr "Kaarreloivennus"
+#: ../bin/dcar.c:3588
+msgid "Enter a Prototype name"
+msgstr "Syötä esikuvan nimi"
-#: ../bin/misc.c:1691
-msgid "Easement Button"
-msgstr "Kaarreloivennus"
+#: ../bin/dcar.c:3590
+msgid "Select or Enter a Manufacturer"
+msgstr "Valitse tai syötä valmistaja"
-#: ../bin/tease.c:589
-msgid "Easement Track"
-msgstr "Kaarreloivennus"
+#: ../bin/dcar.c:3592
+msgid "Enter a Part Number"
+msgstr "Syötä tuotekoodi"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:300
-msgid "Easement length"
-msgstr "Kaarreloivennuksen pituus"
+#: ../bin/dcar.c:3594
+msgid "Enter the Car Length"
+msgstr "Syötä vaunun pituus"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:65
-msgid "Easement menu"
-msgstr "Kaarreloivennuksen asetukset"
+#: ../bin/dcar.c:3596
+msgid "Enter the Car Width"
+msgstr "Syötä vaunun leveys"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:28
-msgid "Easements"
-msgstr "Kaarreloivennukset"
+#: ../bin/dcar.c:3598
+msgid "Enter the Truck Centers"
+msgstr "Syötä telien keskipisteiden etäisyys"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:583
-msgid ""
-"Easements (spiral transition curves) are used when track changes from "
-"straight to curved by gradually changing the radius. This improves "
-"operation and appearance.\n"
-"Easements are created with Joining or Extending Tracks.\n"
-"The Easement dialog is used to control easements."
+#: ../bin/dcar.c:3600
+msgid "Truck Centers must be less than Car Length"
msgstr ""
-"Kaarreloivennuksia käytetään radan muuttuessa suorasta kaarteeksi "
-"muuttamalla vaihdoskohdassa kaarresädettä asteittain. Tämä parantaa radan "
-"ajettavuutta ja ulkonäköä.\n"
-"Kaarreloivennukset luodaan yhdistämällä tai jatkamalla raiteita.\n"
-"Kaarreloivennus-ikkunasta asetellaan tarvittavat parametrit."
+"Telien keskikohtien välisen etäisyyden on oltava vaunun pituutta pienempi"
-#: ../bin/dcustmgm.c:53 ../bin/dcustmgm.c:90 ../bin/dcar.c:4102
-msgid "Edit"
-msgstr "Muokkaa"
+#: ../bin/dcar.c:3602
+msgid "Enter the Coupled Length or Coupler Length"
+msgstr "Syötä pituus kytkimineen tai kytkimen pituus"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:141
-msgid "Edit menu"
-msgstr "Muokkaa -valikko"
+#: ../bin/dcar.c:3604
+msgid "Enter the Coupled Length"
+msgstr "Syötä pituus kytkimineen"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:214
-msgid "Edit the selected Car Item"
-msgstr "Muokkaa valittua kohdetta"
+#: ../bin/dcar.c:3606
+msgid "Enter a item Index"
+msgstr "Syötä indeksi"
-#: ../bin/macro.c:1016
-#, c-format
-msgid "Elapsed time %lu\n"
-msgstr "Kulunut aika %lu\n"
+#: ../bin/dcar.c:3608
+msgid "Purchase Price is not valid"
+msgstr "Ostohinta ei ole kelvollinen"
-#: ../bin/dcar.c:481
-msgid "Elect Loco"
-msgstr "Sähköveturi"
+#: ../bin/dcar.c:3610
+msgid "Current Price is not valid"
+msgstr "Nykyinen hinta ei ole kelvollinen"
+
+#: ../bin/dcar.c:3612
+msgid "Purchase Date is not valid"
+msgstr "Ostopäivä ei ole kelvollinen"
-#: ../bin/cprofile.c:620 ../bin/cprofile.c:630
+#: ../bin/dcar.c:3614
+msgid "Service Date is not valid"
+msgstr "Huollon päiväys ei ole kelvollinen"
+
+#: ../bin/dcar.c:3617
#, c-format
-msgid "Elev = %0.1f"
-msgstr "Korkeus = %0.1f"
+msgid "Item Index %ld duplicated an existing item: updated to new value"
+msgstr "Indeksi %ld oli jo käytössä. Annettiin indeksille uusi arvo."
-#: ../bin/celev.c:309 ../bin/celev.c:326
+#: ../bin/dcar.c:3812
#, c-format
-msgid "Elev = %s"
-msgstr "Korkeus = %s"
+msgid "Added %ld new Cars"
+msgstr "Lisätty %ld uutta vaunua/veturia"
-#: ../bin/cprofile.c:632
+#: ../bin/dcar.c:3814
+msgid "Added new Car"
+msgstr "Lisätty uusi vaunu/veturi"
+
+#: ../bin/dcar.c:3817
+msgid "Updated Car"
+msgstr "Päivitä vaunu/veturi"
+
+#: ../bin/dcar.c:3820
+msgid " and Part"
+msgstr " ja malli"
+
+#: ../bin/dcar.c:3847
#, c-format
-msgid "Elev=%0.2f %0.1f%%"
-msgstr "Korkeus=%0.2f %0.1f%%"
+msgid "%s Part: %s %s %s %s %s %s"
+msgstr "%s malli: %s %s %s %s %s %s"
-#: ../bin/celev.c:407 ../bin/celev.c:473
-msgid "Elevation"
-msgstr "Korkeustaso"
+#: ../bin/dcar.c:3847 ../bin/dcar.c:3864
+msgid "Added new"
+msgstr "Lisätty uusi"
-#: ../bin/ccurve.c:388
-msgid "Elevation Difference"
-msgstr "Korkeusero"
+#: ../bin/dcar.c:3847 ../bin/dcar.c:3864
+msgid "Updated"
+msgstr "Päivitetty"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:96
-msgid "Elevation Profile Command"
-msgstr "Muokkaa korkeusprofiilia"
+#: ../bin/dcar.c:3863
+#, c-format
+msgid "%s Prototype: %s%s."
+msgstr "%s esikuva: %s%s."
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:331
-msgid "Elevation difference of Helix End-Points"
-msgstr "Päätepisteiden välinen korkeusero"
+#: ../bin/dcar.c:3865
+msgid ". Enter new values or press Close"
+msgstr ". Syötä uudet arvot tai paina Sulje"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:39
-msgid "Elevations"
-msgstr "Korkeustasot"
+#: ../bin/dcar.c:3984
+msgid "New Car Part"
+msgstr "Uusi malli"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:38
-msgid "Elevations and Profile"
-msgstr "Korkeustasot ja profiili"
+#: ../bin/dcar.c:4079 ../bin/dcar.c:4084
+#: ../../../../build/work/app/bin/bllnhlp.c:377
+msgid "Roadname"
+msgstr "Rautatieyhtiö"
-#: ../bin/doption.c:193 ../bin/csnap.c:520
-msgid "Enable"
-msgstr "Salli"
+#: ../bin/dcar.c:4079
+msgid "Purc Price"
+msgstr "Ostohinta"
-#: ../bin/misc.c:2201
-msgid "Enable SnapGrid"
-msgstr "Käytä kohdistusruudukkoa"
+#: ../bin/dcar.c:4080 ../bin/dcar.c:4085
+msgid "Curr Price"
+msgstr "Nykyinen hinta"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:276
-msgid "Enable labels for Turnouts, Flextrack Lengths and Elevations"
-msgstr "Määrittelee missä kohteissa näytetään merkintöjä"
+#: ../bin/dcar.c:4080
+msgid "Purc Date"
+msgstr "Ostopäivä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:313
-msgid "Enable prices on the Parts List"
-msgstr "Näytä hinnat osaluettelossa"
+#: ../bin/dcar.c:4080
+msgid "Srvc Date"
+msgstr "Huollettu"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:73
-msgid "Enable snap grid"
-msgstr "Käytä kohdistusruudukkoa"
+#: ../bin/dcar.c:4081
+msgid "Locat'n"
+msgstr "Sijainti"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:284
-msgid "Enable/Disable balloon popup help windows"
-msgstr "Käytetäänkö pikaopasteita (tooltip)"
+#: ../bin/dcar.c:4084
+msgid "RepMarks"
+msgstr "Tunnus"
-#: ../bin/macro.c:84
-msgid "End"
-msgstr "Lopeta"
+#: ../bin/dcar.c:4084
+msgid "Purch Price"
+msgstr "Ostohinta"
-#: ../bin/param.c:395
-msgid "End Of String"
-msgstr "Merkkijonon loppu"
+#: ../bin/dcar.c:4085
+msgid "Purch Date"
+msgstr "Ostopäivä"
-#: ../bin/cselect.c:1851 ../bin/cselect.c:1855
-msgid "End Points"
-msgstr "Päätepisteet"
+#: ../bin/dcar.c:4102
+msgid "Sort By"
+msgstr "Lajittelu"
-#: ../bin/tcurve.c:338 ../bin/tease.c:497 ../bin/compound.c:512
-#: ../bin/tstraigh.c:76 ../bin/cdraw.c:184
-msgid "End Pt 1: X"
-msgstr "Päätepiste 1: X"
+#: ../bin/dcar.c:4110 ../bin/dcontmgm.c:99 ../bin/dcustmgm.c:58
+#: ../bin/dcustmgm.c:95
+msgid "Edit"
+msgstr "Muokkaa"
-#: ../bin/tcurve.c:340 ../bin/tease.c:499 ../bin/compound.c:514
-#: ../bin/tstraigh.c:78 ../bin/cdraw.c:185
-msgid "End Pt 2: X"
-msgstr "Päätepiste 2: X"
+#: ../bin/dcar.c:4114 ../bin/dcontmgm.c:101 ../bin/dcustmgm.c:60
+#: ../bin/misc.c:1993
+msgid "Delete"
+msgstr "Poista"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:421
-msgid "End a message"
-msgstr "Lopeta viestin kirjoitus"
+#: ../bin/dcar.c:4118 ../bin/fileio.c:1212
+msgid "Export"
+msgstr "Vie tiedostoon"
-#: ../bin/macro.c:198
-msgid "End of Playback. Hit Step to exit\n"
-msgstr "Toisto on lopussa. Paina Seuraava vaihe -painiketta poistuaksesi.\n"
+#: ../bin/dcar.c:4120 ../../../../build/work/app/bin/bllnhlp.c:540
+msgid "List"
+msgstr "Luettelo"
-#: ../bin/ctrain.c:718
-msgid "End of Track"
-msgstr "Rata loppu"
+#: ../bin/dcar.c:4234 ../bin/dcar.c:4966 ../bin/misc.c:2262
+msgid "Car Inventory"
+msgstr "Kalustoluettelo"
-#: ../../../../build/xtrkcad/app/help/messages.h:107
+#: ../bin/dcar.c:4354
+msgid "List Cars"
+msgstr "Luetteloi vaunut"
+
+#: ../bin/dcar.c:4476 ../bin/dcar.c:4639
+msgid "Import Cars"
+msgstr "Tuo vaunut tiedostosta"
+
+#: ../bin/dcar.c:4640 ../bin/dcar.c:4762
+msgid "Comma-Separated-Values|*.csv"
+msgstr "Pilkulla erotetut arvot|*.csv"
+
+#: ../bin/dcar.c:4710 ../bin/dcar.c:4761
+msgid "Export Cars"
+msgstr "Vie vaunut tiedostoon"
+
+#: ../bin/dcar.c:4795
+msgid "Layout"
+msgstr "Ratasuunnitelma"
+
+#: ../bin/dcar.c:4797
+msgid "Shelf"
+msgstr "Hyllyssä"
+
+#: ../bin/dcmpnd.c:76 ../bin/dlayer.c:457 ../bin/misc.c:480 ../bin/misc.c:509
+msgid "Load"
+msgstr "Lataa"
+
+#: ../bin/dcmpnd.c:109
+msgid "Updating definitions, please wait"
+msgstr "Päivitetään määrittelyjä, odota hetki."
+
+#: ../bin/dcmpnd.c:172
+msgid "Update Title"
+msgstr "Pävitä otsikko"
+
+#: ../bin/dcmpnd.c:232
#, c-format
-msgid ""
-"End-Of-Line is unexpected in a quoted field.\n"
-"%s\n"
-"\n"
-"Do you want to continue reading the file?"
-msgstr ""
-"Odottamaton rivin loppu lainausmerkkien sisällä.\n"
-"%s\n"
-"\n"
-"Haluatko jatkaa tiedoston lukemista?"
+msgid "End-Point #%d of the selected and actual turnouts are not close"
+msgstr "Valitun ja todellisen vaihteen %d. päätepisteet eivät ole lähekkäin"
-#: ../bin/dcmpnd.c:238
+#: ../bin/dcmpnd.c:241
#, c-format
msgid "End-Point #%d of the selected and actual turnouts are not aligned"
msgstr "Valitun ja todellisen vaihteen %d. päätepisteet eivät ole linjassa"
-#: ../bin/dcmpnd.c:229
+#: ../bin/dcmpnd.c:260
+msgid "The selected Turnout had a differing number of End-Points"
+msgstr "Valitussa vaihteessa oli eri määrä päätepisteitä"
+
+#: ../bin/dcmpnd.c:321
+msgid "Skip"
+msgstr "Sivuuta"
+
+#: ../bin/dcmpnd.c:353
#, c-format
-msgid "End-Point #%d of the selected and actual turnouts are not close"
-msgstr "Valitun ja todellisen vaihteen %d. päätepisteet eivät ole lähekkäin"
+msgid "%d Track(s) refreshed"
+msgstr "%d raideosa(a) päivitetty"
-#: ../bin/doption.c:283
-msgid "End-Points"
-msgstr "Päätepisteet"
+#: ../bin/dcmpnd.c:393
+msgid "Refresh Turnout/Structure"
+msgstr "Päivitä vaihde/rakennus"
-#: ../bin/doption.c:190
-msgid "EndPt Elevations"
-msgstr "Päätepisteiden korkeudet"
+#: ../bin/dcmpnd.c:395
+msgid "Choose a Turnout/Structure to replace:"
+msgstr "Valitse vaihde/rakennus korvataksesi:"
-#: ../bin/cprint.c:99
-msgid "Engineering Data"
-msgstr "Suunnittelutiedot"
+#: ../bin/dcmpnd.c:405 ../bin/doption.c:101
+#: ../../../../build/work/app/i18n/custmsg.h:31
+msgid "Turnouts"
+msgstr "Raideosat"
-#: ../bin/doption.c:352
-msgid "English"
-msgstr "Englantilaiset"
+#: ../bin/dcmpnd.c:405
+msgid "Structures"
+msgstr "Rakennukset"
-#: ../bin/misc.c:1914
-msgid "Enter Angle ..."
-msgstr "Syötä kulma ..."
+#: ../bin/dcmpnd.c:434
+msgid "Choose another Turnout/Structure to replace:"
+msgstr "Valitse toinen vaihde/rakennus korvataksesi:"
-#: ../bin/dcar.c:3485
-msgid "Enter a 8 digit date"
-msgstr "Syötä 8 numeroinen päiväys"
+#: ../bin/dcmpnd.c:536
+msgid "Rename Object"
+msgstr "Nimeä objekti uudelleen"
-#: ../bin/dcar.c:3482
-msgid "Enter a 8 digit numeric date"
-msgstr "Syötä 8 numeroinen päiväys"
+#: ../bin/dcontmgm.c:92 ../bin/doption.c:108
+msgid "Tracks"
+msgstr "Raiteet"
-#: ../bin/dcar.c:3584
-msgid "Enter a Part Number"
-msgstr "Syötä tuotekoodi"
+#: ../bin/dcontmgm.c:173
+#, fuzzy, c-format
+msgid "Are you sure you want to delete the %d control element(s)"
+msgstr "Haluatko varmasti poistaa nämä %d vaunua/veturia?"
-#: ../bin/dcar.c:3580
-msgid "Enter a Prototype name"
-msgstr "Syötä esikuvan nimi"
+#: ../bin/dcontmgm.c:176
+#, fuzzy
+msgid "Control Elements"
+msgstr "Valitse värit"
-#: ../bin/dcar.c:3487
-msgid "Enter a date between 19000101 and 21991231"
-msgstr "Syötä päivämärä %s ja %s väliltä"
+#: ../bin/dcontmgm.c:300
+msgid "Manage Layout Control Elements"
+msgstr ""
-#: ../bin/dcar.c:3598
-msgid "Enter a item Index"
-msgstr "Syötä indeksi"
+#: ../bin/dcustmgm.c:62
+msgid "Move To"
+msgstr "Tiedostoon"
-#: ../wlib/gtklib/psprint.c:1309
-msgid "Enter a post-script font name for:"
-msgstr "Syötä post-script kirjasimen nimi:"
+#: ../bin/dcustmgm.c:95
+msgid "Rename"
+msgstr "Nimeä uudelleen"
-#: ../bin/param.c:1380
-#, c-format
-msgid "Enter a value < %ld"
-msgstr "Syötä arvo, joka on < %ld"
+#: ../bin/dcustmgm.c:162
+msgid "Label"
+msgstr "Merkintä"
-#: ../bin/param.c:1425
-#, c-format
-msgid "Enter a value < %s"
-msgstr "Syötä arvo, joka on < %s"
+#: ../bin/dcustmgm.c:200
+msgid "Contents Label"
+msgstr "Sisältömerkintä"
-#: ../bin/param.c:1378
-#, c-format
-msgid "Enter a value > %ld"
-msgstr "Syötä arvo, joka on > %ld"
+#: ../bin/dcustmgm.c:247
+msgid "Move To XTP"
+msgstr "Siirrä XTP tiedostoon"
-#: ../bin/param.c:1422
-#, c-format
-msgid "Enter a value > %s"
-msgstr "Syätä arvo, joka on > %s"
+#: ../bin/dcustmgm.c:248
+msgid "Parameter File|*.xtp"
+msgstr "Parametritiedosto|*.xtp"
-#: ../bin/param.c:1382
-#, c-format
-msgid "Enter a value between %ld and %ld"
-msgstr "Syötä arvo %ld ja %ld väliltä"
+#: ../bin/dcustmgm.c:358
+#, fuzzy
+msgid "Manage custom designed parts"
+msgstr "Itse määriteltyjen raideosien, veturien ja vaunujen hallinta"
-#: ../bin/param.c:1428
-#, c-format
-msgid "Enter a value between %s and %s"
-msgstr "Syötä arvo %s ja %s väliltä"
+#: ../bin/dease.c:64
+msgid "Sharp"
+msgstr "Jyrkkä"
-#: ../wlib/gtklib/psprint.c:1088
-msgid "Enter both printer name and command"
-msgstr "Syötä tulostimen nimi ja komento"
+#: ../bin/dease.c:64
+msgid "Broad"
+msgstr "Laaja"
-#: ../wlib/gtklib/psprint.c:1116
-msgid "Enter printer name"
-msgstr "Syötä tulostimen nimi"
+#: ../bin/dease.c:64
+msgid "Cornu"
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:113
-msgid "Enter text on the layout"
-msgstr "Lisää tekstiä ratasuunnitelmaan"
+#: ../bin/dease.c:71
+msgid "Value"
+msgstr "Arvo"
-#: ../bin/dcar.c:3586
-msgid "Enter the Car Length"
-msgstr "Syötä vaunun pituus"
+#: ../bin/dease.c:72 ../bin/tease.c:509
+msgid "R"
+msgstr "R"
-#: ../bin/dcar.c:3588
-msgid "Enter the Car Width"
-msgstr "Syötä vaunun leveys"
+#: ../bin/dease.c:74 ../bin/tease.c:510
+msgid "L"
+msgstr "P"
-#: ../bin/dcar.c:3596
-msgid "Enter the Coupled Length"
-msgstr "Syötä pituus kytkimineen"
+#: ../bin/dease.c:230
+msgid "Easement"
+msgstr "Kaarreloivennus"
-#: ../bin/dcar.c:3594
-msgid "Enter the Coupled Length or Coupler Length"
-msgstr "Syötä pituus kytkimineen tai kytkimen pituus"
+#: ../bin/denum.c:49
+msgid "Prices"
+msgstr "Hinnat"
-#: ../bin/dcar.c:3590
-msgid "Enter the Truck Centers"
-msgstr "Syötä telien keskipisteiden etäisyys"
+#: ../bin/denum.c:54
+msgid "Save As ..."
+msgstr "Tallenna nimellä ..."
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:364
-msgid "Enter the key value as specified in the XTrackCAD Registration Notice"
-msgstr "Syötä avain kuten XTrackCAD rekisteröintitiedotteessa on määritelty"
+#: ../bin/denum.c:134 ../bin/denum.c:189 ../bin/denum.c:224
+msgid "Each"
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:363
-msgid "Enter your name as specified in the XTrackCAD Registration Notice"
-msgstr "Syötä nimesi kuten XTrackCAD rekisteröintitiedotteessa on määritelty"
+#: ../bin/denum.c:148 ../bin/denum.c:149
+msgid "Parts List"
+msgstr "Osaluettelo"
-#: ../../../../build/xtrkcad/app/help/messages.h:109
-#, c-format
+#: ../bin/denum.c:154
+#, fuzzy, c-format
msgid ""
-"Error \\\\\"%s\\\\\" occurred while writing %s.\n"
-"Please check disk space and system status."
-msgstr ""
-"Virhe \\\\\"%s\\\\\" tapahtui kirjoitettaessa %s.\n"
-"Tarkasta levytila ja järjestelmän tila."
+"%s Parts List\n"
+"\n"
+msgstr "Osaluettelo"
-#: ../bin/dcar.c:1086 ../bin/dcar.c:4780
-msgid "Excellent"
-msgstr "Erinomainen"
+#: ../bin/denum.c:189 ../bin/denum.c:226 ../bin/denum.c:235
+#, fuzzy
+msgid "Extended"
+msgstr "Pidentäminen"
-#: ../bin/doption.c:537
-msgid "Exception Track"
-msgstr "Erityisraiteet"
+#: ../bin/denum.c:235 ../bin/denum.c:238
+msgid "Total"
+msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:46
-msgid "Exception Tracks"
-msgstr "Erityisraiteet"
+#: ../bin/dlayer.c:449
+msgid "Visible"
+msgstr "Näkyvä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:234
-msgid "Executes the next step of the demo"
-msgstr "Suorittaa seuraavan vaiheen demossa"
+#: ../bin/dlayer.c:451
+msgid "Frozen"
+msgstr "Jäädytetty"
-#: ../wlib/gtklib/wpref.c:139 ../wlib/gtklib/wpref.c:147
-#: ../wlib/gtklib/wpref.c:152 ../wlib/gtklib/wpref.c:174
-msgid "Exit"
-msgstr "Poistu"
+#: ../bin/dlayer.c:453
+msgid "On Map"
+msgstr "Näkyy kartalla"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:119
-msgid "Exit Trains"
-msgstr "Poistu junien ajosta"
+#: ../bin/dlayer.c:456
+msgid "Personal Preferences"
+msgstr "Omat asetukset"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:139
-msgid "Exit the program"
-msgstr "Poistu ohjelmasta"
+#: ../bin/dlayer.c:458 ../bin/macro.c:1246
+msgid "Save"
+msgstr "Tallenna"
-#: ../bin/param.c:252
-msgid "Expected /"
-msgstr "Odotettiin /"
+#: ../bin/dlayer.c:459
+msgid "Defaults"
+msgstr "Oletukset"
-#: ../bin/param.c:324
-msgid "Expected End Of String"
-msgstr "Odotettiin merkkijonon loppua"
+#: ../bin/dlayer.c:460
+msgid "Number of Layer Buttons"
+msgstr "Tasopainikkeiden lukumäärä"
-#: ../bin/param.c:189
-msgid "Expected digit"
-msgstr "Odotettiin numeroa"
+#: ../bin/dlayer.c:477 ../bin/dlayer.c:893 ../bin/dlayer.c:905
+#: ../bin/dlayer.c:950
+msgid "Main"
+msgstr "Päätaso"
-#: ../bin/fileio.c:1202 ../bin/dcar.c:4110
-msgid "Export"
-msgstr "Vie tiedostoon"
+#: ../bin/dlayer.c:587 ../bin/dlayer.c:836 ../bin/dlayer.c:908
+#: ../bin/dlayer.c:952 ../bin/dlayer.c:1190
+msgid "Show/Hide Layer"
+msgstr "Näytä/piilota taso"
-#: ../bin/dcar.c:4699 ../bin/dcar.c:4750
-msgid "Export Cars"
-msgstr "Vie vaunut tiedostoon"
+#: ../bin/dlayer.c:1023
+msgid "Layers"
+msgstr "Tasot"
-#: ../bin/misc.c:2141
-msgid "Export D&XF"
-msgstr "Vie DXF tiedostoon"
+#: ../bin/doption.c:99
+msgid "Auto Pan"
+msgstr "Automaattinen panorointi"
-#: ../bin/fileio.c:1226
-msgid "Export Tracks"
-msgstr "Vie raiteet tiedostoon"
+#: ../bin/doption.c:100
+msgid "Dash"
+msgstr "Katkoviiva"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:68
-msgid "Export a .xti file"
-msgstr "Vie .xti tiedostoon"
+#: ../bin/doption.c:101
+msgid "All"
+msgstr "Kaikki"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:218
-msgid "Export a Car Item .csv file"
-msgstr "Vie .cvs tiedostoon"
+#: ../bin/doption.c:102
+msgid "Thick"
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:69
-msgid "Export a DXF file"
-msgstr "Vie DXF tiedostoon"
+#: ../bin/doption.c:102
+#, fuzzy
+msgid "Exception"
+msgstr "Erityisraiteet"
-#: ../bin/misc.c:2139
-msgid "Export to &Bitmap"
-msgstr "Vie bitmap tiedostoon"
+#: ../bin/doption.c:103
+msgid "Outline"
+msgstr "Ääriviivat"
-#: ../bin/fileio.c:1403
-msgid "Export to DXF"
-msgstr "Vie DXF tiedostoon"
+#: ../bin/doption.c:103
+msgid "Solid"
+msgstr "Yhtenäinen"
-#: ../bin/cmodify.c:330
-msgid "Extend Track"
-msgstr "Jatka raidetta"
+#: ../bin/doption.c:104
+msgid "Off"
+msgstr "Pois"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:21
-msgid "Extending"
-msgstr "Pidentäminen"
+#: ../bin/doption.c:104
+msgid "On"
+msgstr "Päällä"
-#: ../bin/tstraigh.c:457
-msgid "Extending Straight Track"
-msgstr "Jatketaan suoraa raidetta"
+#: ../bin/doption.c:105
+msgid "Track Descriptions"
+msgstr "Raideosien kuvaukset"
-#: ../wlib/gtklib/psprint.c:1280
-msgid "Factor"
-msgstr "Kerroin"
+#: ../bin/doption.c:105
+msgid "Lengths"
+msgstr "Pituudet"
-#: ../bin/dcar.c:1088 ../bin/dcar.c:4778
-msgid "Fair"
-msgstr "Tyydyttävä"
+#: ../bin/doption.c:105
+msgid "EndPt Elevations"
+msgstr "Päätepisteiden korkeudet"
-#: ../bin/macro.c:1227
-msgid "Fast"
-msgstr "Nopea"
+#: ../bin/doption.c:105
+msgid "Track Elevations"
+msgstr "Raideosien korkeudet"
-#: ../bin/macro.c:1228
-msgid "Faster"
-msgstr "Nopeampi"
+#: ../bin/doption.c:105
+msgid "Cars"
+msgstr "Vaunut"
-#: ../bin/macro.c:1229
-msgid "Fastest"
-msgstr "Nopein"
+#: ../bin/doption.c:106 ../bin/doption.c:107
+msgid "Descr"
+msgstr "Kuvaus"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:133
-msgid "File Menu"
-msgstr "Tiedosto valikko"
+#: ../bin/doption.c:107
+msgid "Manuf"
+msgstr "Valmistaja"
-#: ../wlib/gtklib/psprint.c:1304
-msgid "File Name? "
-msgstr "Tiedostonimi?"
+#: ../bin/doption.c:109
+msgid "Live Map"
+msgstr "Suunnitelma seuraa karttaa"
-#: ../../../../build/xtrkcad/app/help/messages.h:129
-#, c-format
-msgid ""
-"File version %ld is lower than the minimum\n"
-"supported version %d. You need to update your\n"
-"layout file using an older version of %s"
+#: ../bin/doption.c:110
+#, fuzzy
+msgid "Hide Trains On Hidden Track"
+msgstr "Junat piilossa olevalla radalla"
+
+#: ../bin/doption.c:111
+msgid "Zoom keeps lower corner in view"
msgstr ""
-"Tiedoston versio %ld on pienempi kuin pienin tuettu versio %d\n"
-"Ratasuunnitelmasi täytyy päivittää käyttäen vanhempaa versiota %s:sta."
-#: ../bin/cdraw.c:837 ../bin/cdraw.c:1045
-msgid "Filled Box"
-msgstr "Täytetty nelikulmio"
+#: ../bin/doption.c:116
+msgid "Color Layers"
+msgstr "Väritys tason mukaan"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:158
-msgid "Filled Boxes and Circles work the same as line Boxes and Circles.\n"
-msgstr ""
-"Täytetyt nelikulmiot ja täytetyt ympyrät toimivat samoin kuin tyhjät "
-"nelikulmiot ja ympyrät.\n"
+#: ../bin/doption.c:117
+msgid "Draw Tunnel"
+msgstr "Piirrä tunneli"
-#: ../bin/cdraw.c:454 ../bin/cdraw.c:834 ../bin/cdraw.c:835 ../bin/cdraw.c:836
-msgid "Filled Circle"
-msgstr "Täytetty ympyrä"
+#: ../bin/doption.c:118
+msgid "Draw EndPts"
+msgstr "Piirrä päätepisteet"
-#: ../bin/ctrain.c:564 ../bin/dcar.c:4955
-msgid "Find"
-msgstr "Etsi"
+#: ../bin/doption.c:119
+#, fuzzy
+msgid "Draw Unconnected EndPts"
+msgstr "Piirrä päätepisteet"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:413
-msgid "Find a parameter file for loading"
-msgstr "Etsi ladattava parametritiedosto"
+#: ../bin/doption.c:120
+msgid "Draw Ties"
+msgstr "Piirrä ratapölkyt"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:471
-msgid "Find train on layout"
-msgstr "Etsi juna ratasuunnitelmasta"
+#: ../bin/doption.c:121
+#, fuzzy
+msgid "Draw Centers"
+msgstr "Raahaa keskustaan"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:208
-msgid "Finds the selected Car Item on the layout"
-msgstr "Etsii valitun junan ratasuunnitelmasta"
+#: ../bin/doption.c:122
+msgid "Two Rail Scale"
+msgstr "Kahden kiskon mittakaava"
-#: ../bin/track.c:1917 ../bin/cjoin.c:508 ../bin/cmisc.c:53
-msgid "First"
-msgstr "Ensimmäinen"
+#: ../bin/doption.c:123
+msgid "Map Scale"
+msgstr "Kartan mittakaava"
-#: ../bin/cjoin.c:663
-msgid "First "
-msgstr "Ensimmäinen "
+#: ../bin/doption.c:127
+msgid "Label Enable"
+msgstr "Näytettävät merkinnät"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:471
-msgid "First <Select> the tracks you want to move.\n"
-msgstr "Valitse ensin raiteet, jotka haluat siirtää.\n"
+#: ../bin/doption.c:128
+msgid "Label Scale"
+msgstr "Merkintöjen mittakaava"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:76
-msgid "First Select the turnout and then Ungroup it.\n"
-msgstr "Ensin valitsemme vaihteen ja sitten puramme ryhmittelyn.\n"
+#: ../bin/doption.c:129
+msgid "Label Font Size"
+msgstr "Merkintöjen kirjasinkoko"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:111
-msgid "First change the Radius...\n"
-msgstr "Ensin muutetaan säde...\n"
+#: ../bin/doption.c:130
+msgid "Hot Bar Labels"
+msgstr "Hot Bar merkinnät"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:188
-msgid ""
-"First make the lower End-Point a Defined Elevation point using Shift-Right-"
-"Click and the Profile Options menu. You will see the End-Point marked by a "
-"Gold dot and a new line is added to the Profile dialog.\n"
-msgstr ""
-"Muuta ensin alempi \"laskettu\" korkeustaso \"määritellyksi\" käyttämällä "
-"jälleen ponnahdusvalikkoa. Piste merkitään nyt keltaisella täplällä ja uusi "
-"viiva lisätään profiili-ikkunaan.\n"
+#: ../bin/doption.c:131
+msgid "Layout Labels"
+msgstr "Merkinnät"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:535
-msgid "First set the Elevation Difference to 12\"\n"
-msgstr "Ensin asetamme korkeuseron 12 tuumaan.\n"
+#: ../bin/doption.c:132
+msgid "List Labels"
+msgstr "Luettelon merkinnät"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:355
-msgid "First step: draw the lines representing the tracks.\n"
-msgstr "Ensimmäiseksi: Piirrä viivat kuvaamaan raiteita.\n"
+#: ../bin/doption.c:135
+msgid "Car Labels"
+msgstr "Vaunujen merkinnät"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:368
-msgid "First turn off the Snap Grid.\n"
-msgstr "Ota ensin kohdistusruudukko pois käytöstä.\n"
+#: ../bin/doption.c:136
+msgid "Train Update Delay"
+msgstr "Junien päivitysväli"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:382
-msgid ""
-"First turn the Snap Grid on again so any moves we make will keep objects on "
-"the grid.\n"
-msgstr ""
-"Ota taas kohdistusruudukko käyttöön, jotta objektit pysyvät linjassa.\n"
+#: ../bin/doption.c:164
+msgid "Display Options"
+msgstr "Näyttöasetukset"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:451
-msgid "First use the <Split> command to disconnect the tracks.\n"
-msgstr "Ensin irrotamme raideosat pilko-komennolla.\n"
+#: ../bin/doption.c:165
+msgid "Proto"
+msgstr "Esikuva"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:65
-msgid "First we Select the objects in the new definition.\n"
-msgstr "Ensin valitsemme objektit uutta määrittelyä varten.\n"
+#: ../bin/doption.c:166
+msgid "Proto/Manuf"
+msgstr "Esikuva/Valmistaja"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:94
-msgid "First we Select the turnout.\n"
-msgstr "Ensin valitsemme vaihteen.\n"
+#: ../bin/doption.c:167
+msgid "Proto/Manuf/Part Number"
+msgstr "Esikuva/Valmistaja/Tuotekoodi"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:141
-msgid "First we place a turnout on the main-line.\n"
-msgstr "Asetetaan ensin vaihde pääradalle.\n"
+#: ../bin/doption.c:168
+msgid "Proto/Manuf/Partno/Item"
+msgstr "Esikuva/Valmistaja/Tuotekoodi/Tuote"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:568
-msgid "First we select the mainline tracks...\n"
-msgstr "Ensin valitaan pääradan raiteet...\n"
+#: ../bin/doption.c:169
+msgid "Manuf/Proto"
+msgstr "Valmistaja/Esikuva"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:230
-msgid ""
-"First we will click on one line of the Selected object. The angle of this "
-"part of the object will be Aligned.\n"
-msgstr ""
-"Ensin klikkaamme valitun objektin jotakin viivaa. Objekti suunnataan tämän "
-"viivan avulla.\n"
+#: ../bin/doption.c:170
+msgid "Manuf/Proto/Part Number"
+msgstr "Valmistaja/Esikuva/Tuotekoodi"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:490
-msgid "First we will set elevations at the end of the branches.\n"
-msgstr "Ensin asetamme korkeustasot haarojen päihin.\n"
+#: ../bin/doption.c:171
+msgid "Manuf/Proto/Partno/Item"
+msgstr "Valmistaja/Esikuva/Tuotekoodi/Tuote"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:131
-msgid "First we will try rescaling by ratio.\n"
-msgstr "Ensin kokeilemme suhteellista muutosta.\n"
+#: ../bin/doption.c:202
+msgid "End-Points"
+msgstr "Päätepisteet"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:517
-msgid ""
-"First you select the tracks you want to delete, and then press the <Delete> "
-"button.\n"
-msgstr ""
-"Valitse ensin raideosat, jotka haluat poistaa ja paina sitten Poista-"
-"nappia.\n"
+#: ../bin/doption.c:210
+msgid "Normal: Command List, Shift: Command Options"
+msgstr "Normaali: Komennot, Vaihto: Komentojen asetukset"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:492
-msgid "First, click on the End-Point.\n"
-msgstr "Klikkaa ensin päätepistettä.\n"
+#: ../bin/doption.c:210
+msgid "Normal: Command Options, Shift: Command List"
+msgstr "Normaali: Komentojen asetukset, Vaihto: Komennot"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:353
-msgid ""
-"First, we will set up the Snap Grid for 1\" grid lines and 8 divisions.\n"
-msgstr ""
-"Ensin asetamme kohdistusruudukkoon 1 tuuman ruutuvälin 8 osan jaolla.\n"
+#: ../bin/doption.c:213
+msgid "Draw Moving Tracks"
+msgstr "Piirrä liikuteltavat raiteet"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:261
-msgid "First, we'll enable easements.\n"
-msgstr "Ensiksi otetaan kaarreloivennus käyttöön.\n"
+#: ../bin/doption.c:214
+msgid "Default Command"
+msgstr "Oletuskomento"
-#: ../bin/ccurve.c:719
-msgid "Fixed Radius Circle"
-msgstr "Määriteltysäteinen ympyrä"
+#: ../bin/doption.c:216
+msgid "Hide Selection Window"
+msgstr "Piilota valintaikkuna"
-#: ../bin/dbench.c:62
-msgid "Flat"
-msgstr "Vaaka"
+#: ../bin/doption.c:218
+msgid "Right Click"
+msgstr "Hiiren 2-painike"
-#: ../bin/dpricels.c:60
-msgid "Flex Track"
-msgstr "Fleksi"
+#: ../bin/doption.c:244
+msgid "Command Options"
+msgstr "Komentojen asetukset"
-#: ../bin/dcar.c:1955 ../bin/cselect.c:1899
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:59
-msgid "Flip"
-msgstr "Peilikuva"
+#: ../bin/doption.c:268
+msgid "English"
+msgstr "Englantilaiset"
-#: ../bin/ctrain.c:2536
-msgid "Flip Car"
-msgstr "Käännä vaunu"
+#: ../bin/doption.c:268
+msgid "Metric"
+msgstr "Metrijärjestelmä"
-#: ../bin/cselect.c:1576
-msgid "Flip Tracks"
-msgstr "Peilaa raiteet"
+#: ../bin/doption.c:269
+msgid "Polar"
+msgstr "Polaarinen"
-#: ../bin/ctrain.c:2537
-msgid "Flip Train"
-msgstr "Käännä juna"
+#: ../bin/doption.c:269
+msgid "Cartesian"
+msgstr "Karteesinen"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:182
-msgid "Flip car image"
-msgstr "Käännä kuva"
+#: ../bin/doption.c:270
+msgid "Balloon Help"
+msgstr "Pikaopaste"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:473
-msgid "Flip direction at End Of Track"
-msgstr "Muuta kulkusuunta automaattisesti radan päässä"
+#: ../bin/doption.c:271
+#, fuzzy
+msgid "Load Last Layout"
+msgstr "Lataa ratasuunnitelma"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:71
-msgid "Flip selected objects"
-msgstr "Käännä valitut objektit annetun peilauslinjan mukaan"
+#: ../bin/doption.c:271
+#, fuzzy
+msgid "Start New Layout"
+msgstr "Uusi ratasuunnitelma"
-#: ../bin/ctrain.c:544
-msgid "Follow"
-msgstr "Seuraa"
+#: ../bin/doption.c:274
+msgid "Angles"
+msgstr "Kulmat"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:472
-msgid "Follow train around layout"
-msgstr "Seuraa junaa ratasuunnitelmassa"
+#: ../bin/doption.c:275
+msgid "Units"
+msgstr "Yksiköt"
-#: ../wlib/gtklib/psprint.c:1308
-msgid "Font Alias"
-msgstr "Kirjasinalias"
+#: ../bin/doption.c:277
+msgid "Length Format"
+msgstr "Pituusmittojen muotoilu"
-#: ../wlib/gtklib/gtkfont.c:404
-msgid "Font Select"
-msgstr "Kirjasimen valinta"
+#: ../bin/doption.c:278
+#, fuzzy
+msgid "Min Track Length"
+msgstr "Pienin raideosan pituus"
-#: ../bin/ctext.c:56 ../bin/ctext.c:121 ../bin/cdraw.c:200
-msgid "Font Size"
-msgstr "Kirjasinkoko"
+#: ../bin/doption.c:279
+msgid "Connection Distance"
+msgstr "Liitosetäisyys"
-#: ../bin/cdraw.c:75
-msgid "Font Size must be > 0"
-msgstr "Kirjasinkoon on oltava > 0"
+#: ../bin/doption.c:280
+msgid "Connection Angle"
+msgstr "Liitoskulma"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:518
-msgid "Font selection dialog"
-msgstr "Kirjasimen valinta"
+#: ../bin/doption.c:281
+msgid "Turntable Angle"
+msgstr "Kääntöpöydän kulma"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:277
-msgid "Font size for labels on layout"
-msgstr "Merkintöjen kirjasinkoko ratasuunnitelmassa"
+#: ../bin/doption.c:282
+msgid "Max Coupling Speed"
+msgstr "Suurin kytkentänopeus"
-#: ../bin/ctext.c:238
-msgid "Fonts..."
-msgstr "Kirjasimet..."
+#: ../bin/doption.c:284
+msgid "Drag Distance"
+msgstr "Raahausetäisyys"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:359
-msgid "For Linux, the DPI is usually 72, so choose: 72/4/2 = 9.\n"
-msgstr "Linuxissa DPI on usein 72, joten valitse: 72/4/2 = 9.\n"
+#: ../bin/doption.c:285
+msgid "Drag Timeout"
+msgstr "Raahauksen viive"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:358
-msgid ""
-"For MS-Windows the DPI is usually 98, so choose: 98/4/2 = 12 "
-"(approximately).\n"
-msgstr ""
-"Microsoft Windows käyttää yleensä DPI arvoa 98, joten valitse: 98/4/2 = 12 "
-"(suunnilleen).\n"
+#: ../bin/doption.c:286
+msgid "Min Grid Spacing"
+msgstr "Pienin ruudukon koko"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:281
-msgid ""
-"For best results, change the size of the main XTrackCAD window so the box "
-"shape is completely visible.\n"
-msgstr ""
-"Parhaan tuloksen saavuttamiseksi, muuta XTrackCADin pääikkunan kokoa siten, "
-"että nelikulmio on kokonaan näkyvissä.\n"
+#: ../bin/doption.c:287
+msgid "Check Point"
+msgstr "Automaattinen varmennus"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:351
-msgid "For our control panel we will use Œ\" lines. \n"
-msgstr "Ohjauspaneelissa käytämme 1/4 tuuman viivoja.\n"
+#: ../bin/doption.c:288
+msgid "On Program Startup"
+msgstr "Ohjelman käynnistyksessä"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:152
-msgid "For the last track we will join with a curve instead of a turnout.\n"
-msgstr "Viimeinen raide yhdistetään kaarteella vaihteen sijaan.\n"
+#: ../bin/doption.c:298
+#, fuzzy
+msgid "999.999999"
+msgstr "999,999"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:180
-msgid ""
-"For the siding we defined a Station name but it's not on the Path, since the "
-"Path takes the shortest distance between points.\n"
-msgstr ""
-"Sivuraiteelle määrittelimme aseman, mutta se ei ole reitillä, koska "
-"profiilin reitti valitaan lyhyimmän pisteiden välisen etäisyyden mukaan.\n"
+#: ../bin/doption.c:299
+#, fuzzy
+msgid "999.99999"
+msgstr "999,999"
-#: ../bin/param.c:106
-msgid "Forest Green"
-msgstr "Metsän vihreä"
+#: ../bin/doption.c:300
+#, fuzzy
+msgid "999.9999"
+msgstr "999,999"
-#: ../wlib/gtklib/psprint.c:1276
-msgid "Format"
-msgstr "Muotoilu"
+#: ../bin/doption.c:301 ../bin/doption.c:318
+msgid "999.999"
+msgstr "999,999"
-#: ../bin/ctrain.c:570 ../bin/ctrain.c:754 ../bin/ctrain.c:1011
-msgid "Forward"
-msgstr "Eteen"
+#: ../bin/doption.c:302 ../bin/doption.c:319
+msgid "999.99"
+msgstr "999,99"
-#: ../bin/dcar.c:482
-msgid "Freight Car"
-msgstr "Tavaravaunu"
+#: ../bin/doption.c:303 ../bin/doption.c:320
+msgid "999.9"
+msgstr "999,9"
-#: ../bin/ctodesgn.c:106
-msgid "Frog #"
-msgstr "Risteysnumero"
+#: ../bin/doption.c:304
+msgid "999 7/8"
+msgstr "999 7/8"
-#: ../bin/ctodesgn.c:1423
-msgid "Frog Number"
-msgstr "Risteysnumero"
+#: ../bin/doption.c:305
+msgid "999 63/64"
+msgstr "999 63/64"
-#: ../bin/chndldto.c:134
-msgid "Frog angle is too close to 0"
-msgstr "Risteyskulma on liian lähellä nollaa"
+#: ../bin/doption.c:306
+msgid "999' 11.999\""
+msgstr "999' 11.999\""
-#: ../bin/cselect.c:566
-msgid "From:"
-msgstr "Alkuperäinen:"
+#: ../bin/doption.c:307
+msgid "999' 11.99\""
+msgstr "999' 11.99\""
-#: ../bin/dlayer.c:318 ../bin/cmisc.c:355
-msgid "Frozen"
-msgstr "Jäädytetty"
+#: ../bin/doption.c:308
+msgid "999' 11.9\""
+msgstr "999' 11.9\""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:184
-msgid "Full Roadname"
-msgstr "Rautatieyhtiön koko nimi"
+#: ../bin/doption.c:309
+msgid "999' 11 7/8\""
+msgstr "999' 11 7/8\""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:70
-msgid "General note about the layout"
-msgstr "Ratasuunnitelman muistiinpanoja"
+#: ../bin/doption.c:310
+msgid "999' 11 63/64\""
+msgstr "999' 11 63/64\""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:67
-msgid "Generate a Parts List of selected objects"
-msgstr "Luo osaluettelo valituista objekteista"
+#: ../bin/doption.c:311
+msgid "999ft 11.999in"
+msgstr "999ft 11.999in"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:137
-msgid "Generate parts list"
-msgstr "Luo osaluettelo"
+#: ../bin/doption.c:312
+msgid "999ft 11.99in"
+msgstr "999ft 11.99in"
-#: ../../../../build/xtrkcad/app/help/messages.h:146
-#, c-format
-msgid "GetAngleAtPoint: bad type(%d) for T(%d)"
-msgstr "GetAngleAtPoint: virheellinen tyyppi (%d) raitelle T(%d)"
+#: ../bin/doption.c:313
+msgid "999ft 11.9in"
+msgstr "999ft 11.9in"
-#: ../bin/i18n.c:36
-#, c-format
-msgid "Gettext initialized (PACKAGE=%s, LOCALEDIR=%s, LC_ALL=%s).\n"
-msgstr "Gettext alustettu (PACKAGE=%s, LOCALEDIR=%s, LC_ALL=%s).\n"
+#: ../bin/doption.c:314
+msgid "999ft 11 7/8in"
+msgstr "999ft 11 7/8in"
-#: ../bin/param.c:115
-msgid "Gold"
-msgstr "Kulta"
+#: ../bin/doption.c:315
+msgid "999ft 11 63/64in"
+msgstr "999ft 11 63/64in"
-#: ../bin/dcar.c:1087 ../bin/dcar.c:4779
-msgid "Good"
-msgstr "Hyvä"
+#: ../bin/doption.c:321
+msgid "999.999mm"
+msgstr "999,999 mm"
-#: ../bin/ccurve.c:392 ../bin/tcurve.c:350 ../bin/tease.c:507
-#: ../bin/celev.c:45 ../bin/compound.c:516 ../bin/tstraigh.c:82
-msgid "Grade"
-msgstr "Nousukulma"
+#: ../bin/doption.c:322
+msgid "999.99mm"
+msgstr "999,99 mm"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:335
-msgid "Grade in helix"
-msgstr "Nousukulma"
+#: ../bin/doption.c:323
+msgid "999.9mm"
+msgstr "999,9 mm"
-#: ../bin/param.c:139
-msgid "Gray"
-msgstr "Harmaa"
+#: ../bin/doption.c:324
+msgid "999.999cm"
+msgstr "999,999 cm"
-#: ../bin/param.c:108
-msgid "Green"
-msgstr "Vihreä"
+#: ../bin/doption.c:325
+msgid "999.99cm"
+msgstr "999,99 cm"
-#: ../bin/cgroup.c:1592
-msgid "Group Objects"
-msgstr "Ryhmittele"
+#: ../bin/doption.c:326
+msgid "999.9cm"
+msgstr "999,9 cm"
-#: ../bin/cgroup.c:1482 ../bin/cgroup.c:1536
-msgid "Group Tracks"
-msgstr "Ryhmittele raideosia"
+#: ../bin/doption.c:327
+msgid "999.999m"
+msgstr "999,999 m"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:35
-msgid "Group and Ungroup"
-msgstr "Ryhmittely ja ryhmittelyn purku"
+#: ../bin/doption.c:328
+msgid "999.99m"
+msgstr "999,99 m"
-#: ../wlib/gtklib/wpref.c:139 ../wlib/gtklib/wpref.c:174
-msgid "HOME is not set"
-msgstr "HOME ympäristömuuttujaa ei ole asetettu"
+#: ../bin/doption.c:329
+msgid "999.9m"
+msgstr "999,9 m"
-#: ../bin/chndldto.c:368
-msgid "HandLaidTurnout"
-msgstr "Käsin aseteltu vaihde"
+#: ../bin/doption.c:410
+msgid "Preferences"
+msgstr "Ominaisuudet"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:37
-msgid "Handlaid Turnouts"
-msgstr "Käsin asetellut vaihteet"
+#: ../bin/doption.c:449
+msgid "Marker"
+msgstr "Markkeri"
-#: ../bin/doption.c:103 ../bin/cprint.c:115
-msgid "Height"
-msgstr "Korkeus"
+#: ../bin/doption.c:450
+msgid "Border"
+msgstr "Reunus"
-#: ../bin/cstruct.c:435
-#, c-format
-msgid "Height %s"
-msgstr "Korkeus %s"
+#: ../bin/doption.c:451
+msgid "Primary Axis"
+msgstr "Ensisijainen akseli"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:304
-msgid "Height of End Point"
-msgstr "Päätepisteen korkeus"
+#: ../bin/doption.c:452
+msgid "Secondary Axis"
+msgstr "Toissijainen akseli"
-#: ../bin/ccurve.c:510 ../bin/ccurve.c:731 ../bin/tcurve.c:769
-msgid "Helix"
-msgstr "Helix"
+#: ../bin/doption.c:453
+msgid "Normal Track"
+msgstr "Normaalit raiteet"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:332
-msgid "Helix Radius"
-msgstr "Helixin säde"
+#: ../bin/doption.c:454
+msgid "Selected Track"
+msgstr "Valitut raiteet"
-#: ../bin/tcurve.c:606
-msgid "Helix Track"
-msgstr "Helix raide"
+#: ../bin/doption.c:455
+msgid "Profile Path"
+msgstr "Profiilirata"
-#: ../bin/tcurve.c:520
-#, c-format
-msgid ""
-"Helix Track(%d): Layer=%d Radius=%s Turns=%ld Length=%s Center=[%s,%s] EP=[%"
-"0.3f,%0.3f A%0.3f] [%0.3f,%0.3f A%0.3f]"
-msgstr ""
-"Helix(%d): Taso=%d Säde=%s Kierr.=%ld Pituus=%s Keskip.=[%s,%s] Päätep.=[%"
-"0.3f,%0.3f K%0.3f] [%0.3f,%0.3f K%0.3f]"
+#: ../bin/doption.c:456
+msgid "Exception Track"
+msgstr "Erityisraiteet"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:45
-msgid "Helix tracks"
-msgstr "Helix raiteet (kierrenousu)"
+#: ../bin/doption.c:457
+msgid "Track Ties"
+msgstr "Ratapölkyt"
-#: ../bin/tcurve.c:232
-#, c-format
-msgid "Helix: turns=%ld length=%s"
-msgstr "Helix: Kierroksia=%ld Pituus=%s"
+#: ../bin/dpricels.c:45
+msgid "Price"
+msgstr "Hinta"
-#: ../bin/tcurve.c:226
+#: ../bin/dpricels.c:59
+msgid "Flex Track"
+msgstr "Fleksi"
+
+#: ../bin/dpricels.c:60
+msgid "costs"
+msgstr "maksaa"
+
+#: ../bin/dpricels.c:154
+msgid "Price List"
+msgstr "Hinnasto"
+
+#: ../bin/dprmfile.c:101
#, c-format
-msgid "Helix: turns=%ld length=%s grade=%0.1f%% sep=%s"
-msgstr "Helix: Kierroksia=%ld Pituus=%s Nousukulma=%0.1f%% Korkeusero=%s"
+msgid "Updating %s"
+msgstr "Päivitetään %s"
-#: ../bin/param.c:2582
-msgid "Help"
-msgstr "Ohje"
+#: ../bin/dprmfile.c:228
+msgid "Show File Names"
+msgstr "Näytä tiedostojen nimet"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:152
-msgid "Help menu"
-msgstr "Ohje -valikko"
+#: ../bin/dprmfile.c:235
+#, fuzzy
+msgid "Select all"
+msgstr "Valitse kaikki"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:109
-msgid ""
-"Here the Left End-Point (which we don't want to move) is the Second End-"
-"Point, so we'll make that the Pivot.\n"
-msgstr ""
-"Tässä vasen päätepiste (jota emme halua siirtää) on toinen päätepiste, joten "
-"valitsemme sen kiertopisteeksi.\n"
+#: ../bin/dprmfile.c:238 ../bin/dprmfile.c:362
+msgid "Unload"
+msgstr "Poista"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:265
-msgid "Here the connecting curve is too small.\n"
-msgstr "Tässä yhdistävä kaarre on liian pieni.\n"
+#: ../bin/dprmfile.c:239
+msgid "Browse ..."
+msgstr "Selaa ..."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:258
-msgid "Here the connection makes the curved track wrap around.\n"
-msgstr "Tässä liitos saa kaarevan raiteen kiepsahtamaan ympäri.\n"
+#: ../bin/dprmfile.c:384
+msgid "Reload"
+msgstr "Lataa"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:557
-msgid ""
-"Here we are going to make some changes to the Display dialog. Notice how "
-"this is simulated.\n"
+#: ../bin/dprmfile.c:533
+msgid "Parameter Files"
+msgstr "Parametritiedostot"
+
+#: ../bin/dprmfile.c:534
+msgid "Load Parameters"
+msgstr "Lataa parametrit"
+
+#: ../bin/dprmfile.c:534
+msgid "Parameter files|*.xtp"
+msgstr "Parametritiedostot|*.xtp"
+
+#: ../bin/draw.c:1802
+msgid "Macro Zoom Mode"
msgstr ""
-"Tässä teemme joitakin muutoksia Näyttö asetuksiin. Huomaa esitystapa.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:480
-msgid ""
-"Here we will begin to create a Curved track which is a two step process.\n"
+#: ../bin/draw.c:1804
+msgid "Use Shift+PageDwn to jump to preset Zoom In"
msgstr ""
-"Tässä aloitamme luomaan kaarevaa raidetta, joka on kaksiosainen toiminto.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:193
-msgid ""
-"Here we will create a Dimension Line to show the separation between two "
-"tracks.\n"
+#: ../bin/draw.c:1809
+msgid "Scale 1:1 - Use Ctrl+PageDwn to go to Macro Zoom Mode"
msgstr ""
-"Tässä luodaan mittajana näyttämään kahden raiteen välistä etäisyyttä.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:253
-msgid "Here we will drag from the Center.\n"
-msgstr "Raahaamme keskipisteestä poispäin.\n"
+#: ../bin/draw.c:1813
+msgid "Preset Zoom In Value selected. Shift+Ctrl+PageDwn to reset value"
+msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:250
-msgid ""
-"Here we will draw a Curve by dragging from one End-Point to the other to "
-"define the chord of the Curve. Then we will drag from the center to shape "
-"the curve.\n"
+#: ../bin/draw.c:1817
+#, fuzzy, c-format
+msgid "Zoom In Program Value %ld:1, Shift+PageDwn to use"
+msgstr "Lähennä arvoon %ld:1"
+
+#: ../bin/draw.c:1836
+msgid "Use Shift+PageUp to jump to preset Zoom Out"
msgstr ""
-"Tässä piirrämme kaaren raahaamalla ensin jänteen päätepisteiden välille ja "
-"raahaamme sitten jänteen keskeltä muodostaaksemme halutun kaaren.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:228
-msgid "Here we will rotate by 90° clockwise (CW).\n"
-msgstr "Pyöritämme 90° myötäpäivään (MP).\n"
+#: ../bin/draw.c:1839
+#, fuzzy
+msgid "At Maximum Zoom Out"
+msgstr "Suurin siirtymä"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:476
-msgid ""
-"Here we've selected points on the two circles. The direction of the "
-"connections (whether clockwise or counter clockwise) is controlled by where "
-"on the circle you select the connection points.\n"
+#: ../bin/draw.c:1844
+msgid "Preset Zoom Out Value selected. Shift+Ctrl+PageUp to reset value"
msgstr ""
-"Nyt olemme valinneet pisteet molemmilta ympyräraiteilta. Liitoksen suuntaa "
-"kontrolloidaan sen mukaan mistä kohtaa ympyröitä liitoskohdat valitaan.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:203
-msgid "Here you are warned that the track will be too short.\n"
-msgstr "Tällöin varoitetaan liian lyhyestä raiteesta.\n"
+#: ../bin/draw.c:1848
+#, fuzzy, c-format
+msgid "Zoom Out Program Value %ld:1 set, Shift+PageUp to use"
+msgstr "Loitonna arvoon %ld:1"
-#: ../bin/celev.c:44
-msgid "Hidden"
-msgstr "Piilossa"
+#: ../bin/draw.c:2470
+msgid "Map"
+msgstr "Kartta"
-#: ../bin/doption.c:187 ../bin/doption.c:198 ../bin/doption.c:286
-#: ../bin/cstruct.c:64 ../bin/cturnout.c:70
-msgid "Hide"
-msgstr "Piilota"
+#: ../bin/drawgeom.c:79 ../bin/drawgeom.c:94
+msgid "Create Lines"
+msgstr "Luo viivoja"
-#: ../bin/doption.c:298
-msgid "Hide Selection Window"
-msgstr "Piilota valintaikkuna"
+#: ../bin/drawgeom.c:193 ../bin/drawgeom.c:206
+msgid "Drag to place next end point"
+msgstr "Raahaa asettaaksesi seuraava päätepiste"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:455
-msgid "Hide Selection window when placing Structure"
-msgstr "Piilota valintaikkuna rakennuksen asettamisen ajaksi"
+#: ../bin/drawgeom.c:238
+msgid "Drag to set radius"
+msgstr "Aseta säde raahaamalla"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:479
-msgid "Hide Selection window when placing Turnout"
-msgstr "Piilota valintaikkuna vaihteen asettamisen ajaksi"
+#: ../bin/drawgeom.c:251
+msgid "Drag set box size"
+msgstr "Aseta nelikulmion koko rahaamalla"
-#: ../bin/cselect.c:378
-msgid "Hide Tracks (Tunnel)"
-msgstr "Piilota raiteet (tunneli)"
+#: ../bin/drawgeom.c:293 ../bin/drawgeom.c:302
+#, c-format
+msgid "Length = %s, Angle = %0.2f"
+msgstr "Pituus = %s, Kulma = %0.2f"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:120
-msgid "Hide/Unhide a track"
-msgstr "Piilota/näytä raide"
+#: ../bin/drawgeom.c:319
+#, c-format
+msgid "Straight Line: Length=%s Angle=%0.3f"
+msgstr "Suora viiva: Pituus=%s Kulma=%0.3f"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:78
-msgid "Hit Escape to deselect everything.\n"
-msgstr "Paina Esc-näppäintä poistaaksesi valinnat objekteista.\n"
+#: ../bin/drawgeom.c:342
+#, c-format
+msgid "Curved Line: Radius=%s Angle=%0.3f Length=%s"
+msgstr "Kaari: Säde=%s Kulma=%0.3f Pituus=%s"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:437
-msgid "Hold down the Shift key and try again.\n"
-msgstr "Pidä vaihto-näppäi painettuna ja yritä uudelleen.\n"
+#: ../bin/drawgeom.c:357
+#, c-format
+msgid "Radius = %s"
+msgstr "Säde = %s"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:632
-msgid ""
-"Holding down the Shift key when clicking the Zoom In or Zoom Out button will "
-"zoom to a programmed Drawing Scale. \n"
-"Holding down the Shift and Control keys when clicking a Zoom button will set "
-"it's program Zoom to the current Drawing Scale."
-msgstr ""
+#: ../bin/drawgeom.c:367
+#, c-format
+msgid "Width = %s, Height = %s"
+msgstr "Leveys = %s, Korkeus = %s"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:598
+#: ../bin/drawgeom.c:686
+#, c-format
+msgid "Length = %0.3f Angle = %0.3f"
+msgstr "Pituus = %0.3f Kulma = %0.3f"
+
+#: ../bin/dxfoutput.c:228
+msgid "Export to DXF"
+msgstr "Vie DXF tiedostoon"
+
+#: ../bin/fileio.c:235
msgid ""
-"Holding down the Shift key while you Right-Click will display options for "
-"the current command (if any)."
+"\n"
+"Do you want to continue?"
msgstr ""
-"Jos pidät vaihto-näppäintä painettuna, kun klikkaat hiiren oikealla "
-"painilleella, saat aktiiviseen komentoon liittyvän ponnahdusvalikon, mikäli "
-"komentoon sellainen liittyy."
+"\n"
+"Haluatko jatkaa?"
-#: ../wlib/gtklib/gtkhelp.c:908
-msgid "Home"
-msgstr "Aloitussivu"
+#: ../bin/fileio.c:541
+msgid "Parameter"
+msgstr "Parametri"
-#: ../bin/csnap.c:513
-msgid "Horz"
-msgstr "Vaaka"
+#: ../bin/fileio.c:678
+#, c-format
+msgid "putTitle: title too long: %s"
+msgstr "putTitle: Otsikko on liian pitkä: %s"
-#: ../bin/misc.c:1701 ../bin/misc.c:1730
-msgid "Hot Bar"
-msgstr "Hot Bar"
+#: ../bin/fileio.c:698
+msgid "Unnamed Trackplan"
+msgstr "Nimetön ratasuunnitelma"
-#: ../bin/doption.c:212
-msgid "Hot Bar Labels"
-msgstr "Hot Bar merkinnät"
+#: ../bin/fileio.c:714 ../bin/fileio.c:1042
+msgid "Check Pointing"
+msgstr "Automaattinen varmennus"
-#: ../bin/param.c:129
-msgid "Hot Pink"
-msgstr ""
+#: ../bin/fileio.c:944
+msgid "Track"
+msgstr "Raide"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:373
-msgid "How far you can move the mouse before its considered a drag"
-msgstr ""
-"Kuinka pitkälle hiirtä voi liikuttaa ennen kuin se käsitetään raahaamiseksi"
+#: ../bin/fileio.c:1008
+msgid "Save Tracks"
+msgstr "Tallenna"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:374
-msgid "How long you can hold a mouse button down before its considered a drag"
-msgstr ""
-"Kuinka kauan hiiren painiketta voi pitää alhaalla ennen kuin se käsitetään "
-"raahaamiseksi"
+#: ../bin/fileio.c:1022
+#, fuzzy
+msgid "Save Tracks As"
+msgstr "Tallenna"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:531
-msgid ""
-"How the hidden tracks are drawn (solid, dashed or invisible) is controlled "
-"by the Draw EndPts radio button group on the Setup dialog.\n"
-msgstr ""
-"Piilotettujen raiteiden esitystapa valitaan näyttöasetuksista, kohdasta "
-"\"Piirrä tunneli\". Tunneli voidaan piirtää yhtenäisellä viivalla, "
-"katkoviivalla tai jättää kokonaan piirtämättä.\n"
+#: ../bin/fileio.c:1030
+msgid "Open Tracks"
+msgstr "Avaa"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:368
-msgid "How to display length measurements"
-msgstr "Pituusmittojen esitystapa"
+#: ../bin/fileio.c:1163 ../bin/fileio.c:1181
+msgid "Import Tracks"
+msgstr "Tuo raiteet tiedostosta"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:221
-msgid "How to draw track being moved/rotated"
-msgstr "Raiteiden piirtotapa liikuteltaessa tai pyöritettäessä"
+#: ../bin/fileio.c:1242
+msgid "Export Tracks"
+msgstr "Vie raiteet tiedostoon"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:282
-msgid "How to draw track ties"
-msgstr "Ratapölkkyjen piirtotapa"
+#: ../bin/fileio.c:1262
+msgid "Clipboard"
+msgstr "Leikepöytä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:288
-msgid "How to group cars on the Train Hot Bar"
-msgstr "Miten vaunut ja veturit ryhmitellään Junat-Hot Bar:ssa"
+#: ../bin/fileio.c:1305 ../bin/misc.c:1986
+msgid "Paste"
+msgstr "Liitä"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:115
-msgid ""
-"If the two tracks have a common End-Point then they will form a Turnout and "
-"can be switched with the <Train> command. Otherwise they will just be two "
-"track segments grouped together.\n"
-msgstr ""
-"Jos molemmilla raiteilla on yhteinen päätepiste, ne muodostavat vaihteen, "
-"jonka asentoa voidaan vaihtaa simuloitaessa junien ajoa. Muussa tapauksessa "
-"ne ovat vain kaksi raideosaa, jotka ovat ryhmitelty keskenään.\n"
+#: ../bin/i18n.c:66
+#, c-format
+msgid "Gettext initialized (PACKAGE=%s, LOCALEDIR=%s, LC_ALL=%s).\n"
+msgstr "Gettext alustettu (PACKAGE=%s, LOCALEDIR=%s, LC_ALL=%s).\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:275
-msgid ""
-"If this is the first time you have used the demo you may want to rearrange "
-"the windows so the demo window does not obscure the main window.\n"
-msgstr ""
-"Jos tämä on ensimmäinen kerta, kun käytät näitä havaintoesityksiä, saatat "
-"haluta järjestellä ikkunat siten, ettei demo-ikkuna peitä pääikkunaa "
-"oleellisesti.\n"
+#: ../bin/layout.c:234
+msgid "Room Width"
+msgstr "Huoneen leveys"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:106
-msgid ""
-"If we change the Length, each End-Point will be moved to shorten the track. "
-"We want to just move the Right End-Point. To control this, change the Pivot "
-"to First which means the Left End-Point will be unchanged when we change the "
-"length (or angle) of the track.\n"
-msgstr ""
-"Jos nyt vain muutamme pituutta, lyhennetään raidetta molemmista päistä. "
-"Haluamme muuttaa raiteen pituutta vain oikeasta päästä, vaihdamme ensin "
-"kiertopisteeksi ensimmäisen pään, jolloin valittu kiertopiste pysyy "
-"paikoillaan muutettaessa raiteen pituutta (tai kulmaa).\n"
+#: ../bin/layout.c:235
+#, fuzzy
+msgid " Height"
+msgstr "Korkeus"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:69
-msgid ""
-"If we don't change the Title then the new definition will replace the "
-"existing definition.\n"
-msgstr ""
-"Jos otsikkotietoja (valmistaja, kuvaus ja tuotenumero) ei muuteta, korvaa "
-"tämä uusi määrittely jo olemassa olevan saman nimisen määrittelyn.\n"
+#: ../bin/layout.c:236
+#, fuzzy
+msgid "Layout Title"
+msgstr "Ratasuunnitelma"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:232
-msgid ""
-"If we drag the mouse across the track, we can flip the structure by 180°. "
-"This is similar to how we place turnouts.\n"
-msgstr ""
-"Jos raahaamme hiirellä radan puolelta toiselle, rakennus peilataan 180°. "
-"Samalla tavalla kuin vaihteiden asettelussa.\n"
+#: ../bin/layout.c:237
+#, fuzzy
+msgid "Subtitle"
+msgstr "Otsikko"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:467
-msgid ""
-"If we make the curved track sharper it will be drawn in the Exception "
-"color.\n"
-msgstr ""
-"Jos muutamme kaarretta jyrkemmäksi, se piirretään erityisraiteiden värillä.\n"
+#: ../bin/layout.c:241
+#, fuzzy
+msgid " Gauge"
+msgstr "Mittakaava / raideväli"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:468
-msgid ""
-"If we make the straight track steeper it will also be drawn in the Exception "
-"color.\n"
-msgstr ""
-"Jos teemme suorasta raiteesta jyrkemmän, myös se piirretään erityisraiteiden "
-"värillä.\n"
+#: ../bin/layout.c:243
+#, fuzzy
+msgid "Min Track Radius"
+msgstr "Pienin karresäde"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:520
-msgid ""
-"If you Left-Drag on the layout you can select all tracks within an area.\n"
-msgstr ""
-"Raahaamalla hiiren vasemmalla voit valita kaikki raideosat valitulta "
-"alueelta.\n"
+#: ../bin/layout.c:244
+#, fuzzy
+msgid " Max Track Grade (%)"
+msgstr "Suurin nousukulma (%)"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:205
-msgid ""
-"If you adjust the End-Point of a turnout or sectional track the track is "
-"extended by a straight track segment.\n"
-msgstr ""
-"Jos muutat palaraiteen tai vaihteen päätepistettä, uusi raideosa luodaan "
-"edellisen jatkeeksi.\n"
+#: ../bin/layout.c:311
+msgid "Layout Options"
+msgstr "Ratasuunnitelman asetukset"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:627
-msgid ""
-"If you are printing multiple pages on a continuous feed printer (such a Dot "
-"Matrix) you can change the Page Order if necessary to print pages out in "
-"proper order."
-msgstr ""
+#: ../bin/macro.c:90
+msgid "Message"
+msgstr "Viesti"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:126
-msgid ""
-"If you click on a note in <Describe> mode the Note editor displays the "
-"note.\n"
-msgstr ""
-"Jos määrittele-komento on aktiivinen ja klikkaat muistiinpanoa, sen sisältö "
-"näytetään editorissa. Näin voit myös muokata aiemmin kirjoittamaasi "
-"muistiinpanoa.\n"
+#: ../bin/macro.c:93
+msgid "End"
+msgstr "Lopeta"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:518
-msgid ""
-"If you delete a track connected to an easement curve, then the easement "
-"curve is deleted as well.\n"
-msgstr ""
-"Jos poistat raideosan, joka on liitetty kaarreloivennukseen, poistetaan myös "
-"kaarreloivennus.\n"
+#: ../bin/macro.c:174
+msgid "Recording"
+msgstr "Nauhoitus"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:391
-msgid ""
-"If you drag a Corner to another Corner the two are merged and the Edge "
-"between them is removed.\n"
-msgstr ""
-"Jos raahaat kulman toisen kulman päälle, ne yhdistetään yhdeksi "
-"kulmapisteeksi.\n"
+#: ../bin/macro.c:209
+msgid "End of Playback. Hit Step to exit\n"
+msgstr "Toisto on lopussa. Paina Seuraava vaihe -painiketta poistuaksesi.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:344
-msgid ""
-"If you drag along an existing track the new turnout will be attached to the "
-"track.\n"
-msgstr ""
-"Jos raahaat vaihdetta olemassa olevaa raidetta pitkin, uusi vaihde liitetään "
-"raiteeseen.\n"
+#: ../bin/macro.c:273
+msgid "Record"
+msgstr "Nauhoita"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:202
-msgid ""
-"If you drag the mouse beyond the start of the curve the track becomes very "
-"short.\n"
-msgstr ""
-"Jos raahaat hiirellä kaarteen alkupisteen yli raiteesta tulee erittäin "
-"lyhyt.\n"
+#: ../bin/macro.c:603
+msgid "Step"
+msgstr "Seuraava vaihe"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:433
-msgid ""
-"If you extend a Straight or Curved flex track and enable Easements then an "
-"Easement curve will be automatically generated when you extend the track.\n"
-msgstr ""
-"Jos jatkat suoraa tai kaarevaa fleksiraidetta ja kaarreloivennus on "
-"käytössä, luodaan automaattisesti kaarreloivennus pidentämisen yhteydessä.\n"
+#: ../bin/macro.c:606 ../bin/macro.c:1367
+msgid "Next"
+msgstr "Seuraava"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:655
-msgid ""
-"If you hold down the Control key when using the Rotate command, the rotation "
-"will be down in increments of 15°."
-msgstr ""
+#: ../bin/macro.c:609 ../bin/misc.c:565
+msgid "Quit"
+msgstr "Lopeta"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:428
-msgid ""
-"If you hold down the Control key while dragging then the Table Edge will be "
-"attracted to other objects.\n"
-msgstr ""
-"Jos pidät control-näppäintä painettuna raahatessasi, pöydän reuna ja muut "
-"objektit vetävät toisiaan puoleensa.\n"
+#: ../bin/macro.c:612 ../../../../build/work/app/bin/bllnhlp.c:495
+msgid "Speed"
+msgstr "Nopeus"
+
+#: ../bin/macro.c:838 ../bin/macro.c:1228
+msgid "Demo"
+msgstr "Demo"
+
+#: ../bin/macro.c:1023
+#, c-format
+msgid "Elapsed time %lu\n"
+msgstr "Kulunut aika %lu\n"
+
+#: ../bin/macro.c:1157
+msgid "Playback"
+msgstr "Toisto"
+
+#: ../bin/macro.c:1231
+msgid "Slowest"
+msgstr "Hitain"
+
+#: ../bin/macro.c:1232
+msgid "Slow"
+msgstr "Hidas"
+
+#: ../bin/macro.c:1234
+msgid "Fast"
+msgstr "Nopea"
+
+#: ../bin/macro.c:1235
+msgid "Faster"
+msgstr "Nopeampi"
+
+#: ../bin/macro.c:1236
+msgid "Fastest"
+msgstr "Nopein"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:204
+#: ../bin/macro.c:1354
+msgid "Can not find PARAMETER playback proc"
+msgstr "PARAMETER toistoproseduuria ei löydy"
+
+#: ../bin/misc.c:164
+msgid "No Messages"
+msgstr "Ei viestejä"
+
+#: ../bin/misc.c:309 ../bin/misc.c:312
+msgid "ABORT"
+msgstr "KESKEYTÄ"
+
+#: ../bin/misc.c:311
msgid ""
-"If you move the cursor away from the curve, you will create a straight track "
-"tangent to the curve.\n"
+"\n"
+"Do you want to save your layout?"
msgstr ""
-"Jos siirrät osoitinta kauemmas kaarteesta, voit luoda suoran raiteen "
-"kaarteen tangentin suuntaan.\n"
+"\n"
+"Haluatko tallentaa ratasuunnitelman?"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:209
-msgid "If you press the <Ruler> command again the Ruler is removed.\n"
-msgstr "Jos aktivoit toiminnon uudelleen, viivain poistetaan.\n"
+#: ../bin/misc.c:361
+#, c-format
+msgid "No help for %s"
+msgstr "Ei ohjetta aiheesta %s"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:488
+#: ../bin/misc.c:464
msgid ""
-"If you select a Note, the Description dialog appears which displays the "
-"contents of the note.\n"
+"Save changes to the layout design before closing?\n"
+"\n"
+"If you don't save now, your unsaved changes will be discarded."
msgstr ""
-"Jos valitset muistiinpanon, avautuu ikkuna, josta voit muuttaa muistiinpanon "
-"sisältöä.\n"
+"Tallennetaanko ratasuunnitelma ennen sulkemista?\n"
+"\n"
+"Jos ei tallenneta, kaikki muutokset menetetään."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:390
-msgid "If you select the middle of an Edge a new Corner is created.\n"
-msgstr ""
-"Jos valitset raahauskohdan kulmien väliltä, siihen luodaan uusi kulma.\n"
+#: ../bin/misc.c:466 ../bin/misc.c:2028
+msgid "&Save"
+msgstr "&Tallenna"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:528
+#: ../bin/misc.c:466 ../bin/misc.c:490
+msgid "&Cancel"
+msgstr "&Peruuta"
+
+#: ../bin/misc.c:466
+msgid "&Don't Save"
+msgstr "Älä tallenna"
+
+#: ../bin/misc.c:488
msgid ""
-"If you split at spot that is already an End-Point between two tracks, or "
-"split twice at the same spot, the track is disconnected.\n"
+"Do you want to return to the last saved state?\n"
+"\n"
+"Revert will cause all changes done since last save to be lost."
msgstr ""
-"Jos pilkot kohdasta, joka on raiteiden liitos tai pilkot kaksi kertaa "
-"samasta kohdasta, raiteet irrotetaan toisistaan.\n"
+"Haluatko palata edelliseen tallennettuun tilaan?\n"
+"\n"
+"Palautuksessa menetetään kaikki tallennuksen jälkeiset muutokset."
+
+#: ../bin/misc.c:490
+msgid "&Revert"
+msgstr "Palauta"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:347
+#: ../bin/misc.c:716
+msgid "XTrackCAD Font"
+msgstr "XTrackCAD kirjasin"
+
+#: ../bin/misc.c:779
+#, c-format
+msgid "No balloon help for %s\n"
+msgstr "Ei pikaopastetta %s:lle\n"
+
+#: ../bin/misc.c:781 ../../../../build/work/app/bin/bllnhlp.c:558
+#: ../../../../build/work/app/bin/bllnhlp.c:559
+#: ../../../../build/work/app/bin/bllnhlp.c:561
+#: ../../../../build/work/app/bin/bllnhlp.c:562
+#: ../../../../build/work/app/bin/bllnhlp.c:564
+#: ../../../../build/work/app/bin/bllnhlp.c:565
+#: ../../../../build/work/app/bin/bllnhlp.c:566
+#: ../../../../build/work/app/bin/bllnhlp.c:567
+#: ../../../../build/work/app/bin/bllnhlp.c:568
+#: ../../../../build/work/app/bin/bllnhlp.c:569
+#: ../../../../build/work/app/bin/bllnhlp.c:570
+#: ../../../../build/work/app/bin/bllnhlp.c:571
+#: ../../../../build/work/app/bin/bllnhlp.c:572
+#: ../../../../build/work/app/bin/bllnhlp.c:573
+#: ../../../../build/work/app/bin/bllnhlp.c:574
+#: ../../../../build/work/app/bin/bllnhlp.c:575
+#: ../../../../build/work/app/bin/bllnhlp.c:576
+#: ../../../../build/work/app/bin/bllnhlp.c:577
+#: ../../../../build/work/app/bin/bllnhlp.c:578
+#: ../../../../build/work/app/bin/bllnhlp.c:579
+#: ../../../../build/work/app/bin/bllnhlp.c:580
+#: ../../../../build/work/app/bin/bllnhlp.c:581
+#: ../../../../build/work/app/bin/bllnhlp.c:582
+#: ../../../../build/work/app/bin/bllnhlp.c:583
+#: ../../../../build/work/app/bin/bllnhlp.c:584
+#: ../../../../build/work/app/bin/bllnhlp.c:585
+#: ../../../../build/work/app/bin/bllnhlp.c:586
+#: ../../../../build/work/app/bin/bllnhlp.c:587
+#: ../../../../build/work/app/bin/bllnhlp.c:588
+#: ../../../../build/work/app/bin/bllnhlp.c:589
+#: ../../../../build/work/app/bin/bllnhlp.c:590
+#: ../../../../build/work/app/bin/bllnhlp.c:591
+#: ../../../../build/work/app/bin/bllnhlp.c:592
+#: ../../../../build/work/app/bin/bllnhlp.c:593
+#: ../../../../build/work/app/bin/bllnhlp.c:594
+#: ../../../../build/work/app/bin/bllnhlp.c:595
+#: ../../../../build/work/app/bin/bllnhlp.c:596
+#: ../../../../build/work/app/bin/bllnhlp.c:597
+#: ../../../../build/work/app/bin/bllnhlp.c:598
+#: ../../../../build/work/app/bin/bllnhlp.c:599
+#: ../../../../build/work/app/bin/bllnhlp.c:600
+#: ../../../../build/work/app/bin/bllnhlp.c:601
+#: ../../../../build/work/app/bin/bllnhlp.c:602
+#: ../../../../build/work/app/bin/bllnhlp.c:603
+#: ../../../../build/work/app/bin/bllnhlp.c:604
+#: ../../../../build/work/app/bin/bllnhlp.c:605
+#: ../../../../build/work/app/bin/bllnhlp.c:606
+#: ../../../../build/work/app/bin/bllnhlp.c:607
+#: ../../../../build/work/app/bin/bllnhlp.c:608
+#: ../../../../build/work/app/bin/bllnhlp.c:609
+#: ../../../../build/work/app/bin/bllnhlp.c:610
+#: ../../../../build/work/app/bin/bllnhlp.c:611
+#: ../../../../build/work/app/bin/bllnhlp.c:612
+#: ../../../../build/work/app/bin/bllnhlp.c:613
+#: ../../../../build/work/app/bin/bllnhlp.c:614
+#: ../../../../build/work/app/bin/bllnhlp.c:615
+#: ../../../../build/work/app/bin/bllnhlp.c:616
+#: ../../../../build/work/app/bin/bllnhlp.c:617
+#: ../../../../build/work/app/bin/bllnhlp.c:618
+#: ../../../../build/work/app/bin/bllnhlp.c:620
+msgid "No Help"
+msgstr "Ei ohjetta"
+
+#: ../bin/misc.c:1041 ../bin/misc.c:1046 ../bin/misc.c:1111
msgid ""
-"If you try to drag across another turnout the new turnout will placed at the "
-"nearest End-Point of the existing turnout.\n"
+"Cancelling the current command will undo the changes\n"
+"you are currently making. Do you want to update?"
msgstr ""
-"Jos yrität raahata toisen vaihteen päälle, uusi vaihde asetetaan olemassa "
-"olevan vaihteen lähimmän päätepisteen kohdalle.\n"
+"Komennon peruuttaminen kumoaa muutokset,\n"
+"joita olet tekemässä. Haluatko jatkaa?"
-#: ../bin/misc.c:2434 ../bin/celev.c:45 ../bin/cprofile.c:1354
-#: ../bin/dcmpnd.c:70
-msgid "Ignore"
-msgstr "Hylkää"
+#: ../bin/misc.c:1634
+msgid "Sticky Commands"
+msgstr "Pysyvät komennot"
-#: ../bin/cprint.c:101
-msgid "Ignore Page Margins"
-msgstr "Ei marginaaleja"
+#: ../bin/misc.c:1647
+#, fuzzy
+msgid "File Buttons"
+msgstr "Viivain"
-#: ../../../../build/xtrkcad/app/help/messages.h:139
-msgid "Ignore further audit notices?"
-msgstr "Sivuuta tarkastus huomautukset jatkossa?"
+#: ../bin/misc.c:1648
+msgid "Zoom Buttons"
+msgstr "Zoom"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:397
-msgid "Ignore unprintable page margins?"
-msgstr "Ohita tulostumattomat marginaalit?"
+#: ../bin/misc.c:1649
+msgid "Undo Buttons"
+msgstr "Kumoa/Tee uudelleen"
-#: ../bin/dcar.c:1951 ../bin/dcar.c:4108
-msgid "Import"
-msgstr "Tuo tiedostosta"
+#: ../bin/misc.c:1650
+msgid "Easement Button"
+msgstr "Kaarreloivennus"
-#: ../bin/dcar.c:4466 ../bin/dcar.c:4629
-msgid "Import Cars"
-msgstr "Tuo vaunut tiedostosta"
+#: ../bin/misc.c:1651
+msgid "SnapGrid Buttons"
+msgstr "Kohdistusruudukko"
-#: ../bin/fileio.c:1166 ../bin/fileio.c:1184
-msgid "Import Tracks"
-msgstr "Tuo raiteet tiedostosta"
+#: ../bin/misc.c:1652
+msgid "Create Track Buttons"
+msgstr "Luo raiteet"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:78
-msgid "Import a .xti file"
-msgstr "Tuo .xti tiedosto"
+#: ../bin/misc.c:1653
+#, fuzzy
+msgid "Layout Control Elements"
+msgstr "Ratasuunnitelman asetukset"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:217
-msgid "Import a Car Item .csv file"
-msgstr "Tuo .cvs tiedostosta"
+#: ../bin/misc.c:1654
+msgid "Modify Track Buttons"
+msgstr "Radan muokkaus"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:241
-msgid ""
-"In addition to the dimensions, you also enter the Title (Manufacturer, "
-"Description and Part Number). For Turnouts with Left and Right hand "
-"versions there are separate Descriptions and Part Numbers.\n"
-msgstr ""
-"Mittatietojen lisäksi voit syöttää otsikon (valmistaja, kuvaus ja "
-"tuotenumero). Vaihteille, joilla on vasen ja oikea versio, on molempia "
-"versioita varten omat kentät kuvausta ja tuotenumeroa varten.\n"
+#: ../bin/misc.c:1655
+msgid "Properties/Select"
+msgstr "Määrittele/valitse"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:314
-msgid ""
-"In addition to using the turnout definitions you can create 'Hand Laid "
-"Turnout'.\n"
-msgstr ""
-"Valmiiden vaihdemäärittelyjen lisäksi voit luoda \"käsin asetellun vaihteen"
-"\".\n"
+#: ../bin/misc.c:1656
+msgid "Track Group Buttons"
+msgstr "Raiteiden ryhmittely"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:238
-msgid ""
-"In each window there are a number of parameters to fill in and one or two "
-"description lines.\n"
-msgstr ""
-"Jokaisessa ikkunassa on useita parametrikenttiä sekä yksi tai kaksi riviä "
-"kuvausta varten.\n"
+#: ../bin/misc.c:1657
+msgid "Train Group Buttons"
+msgstr "Junat"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:458
-msgid "In example shows a simple figure-8 layout using Sectional track.\n"
-msgstr ""
-"Tässä esimerkissä on yksinkertainen palaraiteista tehty kahdeksikkorata.\n"
+#: ../bin/misc.c:1658
+msgid "Create Misc Buttons"
+msgstr "Piirto"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:615
-msgid ""
-"In the Rotate (or Select) commands you can press Shift-Right-Click to "
-"display the Rotate menu which allows you to rotate the selected objects by a "
-"specific angle."
-msgstr ""
+#: ../bin/misc.c:1659
+msgid "Ruler Button"
+msgstr "Viivain"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:416
-msgid ""
-"In the drawing area of the main window you can see an hollow arrow which "
-"represents the mouse cursor. In this demo the mouse will move about to show "
-"you the actions of different commands.\n"
-msgstr ""
-"Pääikkunan piirtoalueella näet läpinäkyvän nuolen, joka kuvaa hiiren "
-"osoitinta. Tässä demossa esitellään erilaiset hiiren toiminnot.\n"
+#: ../bin/misc.c:1660
+msgid "Layer Buttons"
+msgstr "Tasot"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:171
-msgid ""
-"In this case remove the last part of the Path by clicking on current end of "
-"the Path and reselect the End-Point.\n"
-msgstr ""
-"Poista tässä tapauksessa viimeinen osuus klikkaamalla valittuna olevan "
-"haaran päätä ja valitse sitten toisen haaran pää.\n"
+#: ../bin/misc.c:1661
+msgid "Hot Bar"
+msgstr "Hot Bar"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:562
-msgid "In this example it is set to 7.5 degrees.\n"
-msgstr "Tässä esimerkissä se on asetettu 7,5 asteeksi.\n"
+#: ../bin/misc.c:1744 ../../../../build/work/app/bin/bllnhlp.c:72
+msgid "Change Elevations"
+msgstr "Muuta korkeustasoja"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:464
-msgid ""
-"In this example we have a curved track with radius of 9\" and a straight "
-"track with a grade of 3.8%.\n"
-msgstr ""
-"Tässä esimerkissä meillä on karre, jonka säde on 9 tuumaa ja suora jonka "
-"nousukulma on 3,8%.\n"
+#: ../bin/misc.c:1744
+msgid "Change"
+msgstr "Muuta"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:475
-msgid "In this example we will join two circles.\n"
-msgstr "Tässä esimerkissä yhdistetään kaksi ympyrää.\n"
+#: ../bin/misc.c:1757
+msgid "Angle:"
+msgstr "Kulma:"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:225
-msgid ""
-"In this example we will rotate the selected structure about it's center.\n"
-msgstr ""
-"Tässä esimerkissä pyöritämme valittua rakennusta keskipisteensä ympäri.\n"
+#: ../bin/misc.c:1792
+msgid "180 "
+msgstr "180 "
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:160
-msgid "In this example we'll use the Elevations defined in the last example.\n"
-msgstr ""
-"Tässä esimerkissä käytämme edellisessä esimerkissä käytettyjä "
-"korkeustasoja.\n"
+#: ../bin/misc.c:1793
+msgid "90 CW"
+msgstr "90 MP"
-#: ../bin/ctrain.c:170 ../bin/dcar.c:1986 ../bin/dcar.c:4070
-#: ../bin/dcar.c:4075
-msgid "Index"
-msgstr "Indeksi"
+#: ../bin/misc.c:1794
+msgid "45 CW"
+msgstr "45 MP"
-#: ../bin/dcar.c:1912
-msgid "Information"
-msgstr "Tiedot"
+#: ../bin/misc.c:1795
+msgid "30 CW"
+msgstr "30 MP"
-#: ../bin/misc.c:2692
-msgid "Initialization complete"
-msgstr "Alustus valmis"
+#: ../bin/misc.c:1796
+msgid "15 CW"
+msgstr "15 MP"
-#: ../bin/misc.c:2608
-msgid "Initializing commands"
-msgstr "Alustetaan komennot"
+#: ../bin/misc.c:1797
+msgid "15 CCW"
+msgstr "15 VP"
-#: ../bin/misc.c:2617
-msgid "Initializing menus"
-msgstr "Alustetaan valikot"
+#: ../bin/misc.c:1798
+msgid "30 CCW"
+msgstr "30 VP"
-#: ../bin/ctodesgn.c:204
-msgid "Inner Angle"
-msgstr "Sisemmän raiteen kulma"
+#: ../bin/misc.c:1799
+msgid "45 CCW"
+msgstr "45 VP"
-#: ../bin/ctodesgn.c:203
-msgid "Inner Length"
-msgstr "Sisemmän raiteen pituus"
+#: ../bin/misc.c:1800
+msgid "90 CCW"
+msgstr "90 VP"
-#: ../bin/ctodesgn.c:205
-msgid "Inner Offset"
-msgstr "Sisemmän raiteen siirtymä"
+#: ../bin/misc.c:1801
+msgid "Enter Angle ..."
+msgstr "Syötä kulma ..."
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:420
-msgid "Insert a message"
-msgstr "Lisää viesti"
+#: ../bin/misc.c:1828
+msgid "Debug"
+msgstr "Virheiden poisto (debug)"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:7
-msgid "Introduction"
-msgstr "Johdanto"
+#: ../bin/misc.c:1956
+msgid "&File"
+msgstr "&Tiedosto"
-#: ../bin/param.c:347 ../bin/param.c:1371
-#, c-format
-msgid "Invalid Number"
-msgstr "Epäkelpo numero"
+#: ../bin/misc.c:1957
+msgid "&Edit"
+msgstr "&Muokkaa"
-#: ../bin/param.c:310
-msgid "Invalid Units Indicator"
-msgstr "Epäkelpo yksikön merkintä"
+#: ../bin/misc.c:1958
+msgid "&View"
+msgstr "&Näytä"
-#: ../bin/dcar.c:3494
-msgid "Invalid day"
-msgstr "Epäkelpo päivä"
+#: ../bin/misc.c:1959
+msgid "&Add"
+msgstr "&Lisää"
-#: ../bin/dcar.c:3492
-msgid "Invalid month"
-msgstr "Epäkelpo kuukausi"
+#: ../bin/misc.c:1960
+msgid "&Change"
+msgstr "Muuta"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:107
-msgid "Invert current selection"
+#: ../bin/misc.c:1961
+msgid "&Draw"
+msgstr "Piirto"
+
+#: ../bin/misc.c:1962
+msgid "&Manage"
+msgstr "Hallinta"
+
+#: ../bin/misc.c:1963
+msgid "&Options"
+msgstr "Asetukset"
+
+#: ../bin/misc.c:1964
+msgid "&Macro"
+msgstr "Makro"
+
+#: ../bin/misc.c:1965
+msgid "&Window"
+msgstr "&Ikkuna"
+
+#: ../bin/misc.c:1966
+msgid "&Help"
+msgstr "&Ohje"
+
+#: ../bin/misc.c:1972 ../bin/misc.c:1973
+msgid "Commands"
+msgstr "Komennot"
+
+#: ../bin/misc.c:1974
+msgid "Undo"
+msgstr "Kumoa"
+
+#: ../bin/misc.c:1975
+msgid "Redo"
+msgstr "Tee uudelleen"
+
+#: ../bin/misc.c:1976 ../bin/misc.c:1977
+msgid "Zoom In"
+msgstr "Lähennä"
+
+#: ../bin/misc.c:1978 ../bin/misc.c:1979
+msgid "Zoom Out"
+msgstr "Loitonna"
+
+#: ../bin/misc.c:1980
+msgid "SnapGrid Enable"
+msgstr "Käytä kohdistusruudukkoa"
+
+#: ../bin/misc.c:1981
+msgid "SnapGrid Show"
+msgstr "Näytä kohdistusruudukko"
+
+#: ../bin/misc.c:1982 ../bin/misc.c:2107
+#, fuzzy
+msgid "Show/Hide Map"
+msgstr "Näytä/piilota taso"
+
+#: ../bin/misc.c:1985
+msgid "Copy"
+msgstr "Kopioi"
+
+#: ../bin/misc.c:1987
+msgid "Deselect All"
+msgstr "Poista valinnat"
+
+#: ../bin/misc.c:1995 ../bin/misc.c:1996
+msgid "More"
+msgstr "Lisää"
+
+#: ../bin/misc.c:2024
+msgid "&New ..."
+msgstr "&Uusi ..."
+
+#: ../bin/misc.c:2025
+msgid "&Open ..."
+msgstr "&Avaa ..."
+
+#: ../bin/misc.c:2029
+msgid "Save &As ..."
+msgstr "Tallenna &nimellä ..."
+
+#: ../bin/misc.c:2030
+msgid "Revert"
+msgstr "Palauta"
+
+#: ../bin/misc.c:2032
+msgid "P&rint Setup ..."
+msgstr "Tulostusasetukset ..."
+
+#: ../bin/misc.c:2035
+msgid "&Import"
+msgstr "Tuo tiedostosta"
+
+#: ../bin/misc.c:2036
+msgid "Export to &Bitmap"
+msgstr "Vie bitmap tiedostoon"
+
+#: ../bin/misc.c:2037
+msgid "E&xport"
+msgstr "Vie tiedostoon"
+
+#: ../bin/misc.c:2038
+msgid "Export D&XF"
+msgstr "Vie DXF tiedostoon"
+
+#: ../bin/misc.c:2041
+msgid "Parameter &Files ..."
+msgstr "Parametritiedostot ..."
+
+#: ../bin/misc.c:2042
+msgid "No&tes ..."
+msgstr "Muistiinpanot ..."
+
+#: ../bin/misc.c:2047
+msgid "E&xit"
+msgstr "Poistu"
+
+#: ../bin/misc.c:2053
+msgid "&Undo"
+msgstr "&Kumoa"
+
+#: ../bin/misc.c:2054
+msgid "R&edo"
+msgstr "&Tee uudestaan"
+
+#: ../bin/misc.c:2056
+msgid "Cu&t"
+msgstr "&Leikkaa"
+
+#: ../bin/misc.c:2057
+msgid "&Copy"
+msgstr "&Kopioi"
+
+#: ../bin/misc.c:2058
+msgid "&Paste"
+msgstr "L&iitä"
+
+#: ../bin/misc.c:2059
+msgid "De&lete"
+msgstr "Poista"
+
+#: ../bin/misc.c:2065
+msgid "Select &All"
+msgstr "Valitse kaikki"
+
+#: ../bin/misc.c:2066
+msgid "Select Current Layer"
+msgstr "Valitse nykyinen taso"
+
+#: ../bin/misc.c:2067
+msgid "&Deselect All"
+msgstr "Poista valinnat"
+
+#: ../bin/misc.c:2068
+msgid "&Invert Selection"
msgstr "Käänteinen valinta"
-#: ../bin/dbench.c:76
-msgid "Inverted"
-msgstr "Käännetty"
+#: ../bin/misc.c:2069
+msgid "Select Stranded Track"
+msgstr "Valitse irtonaiset raiteet"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:229
-msgid "Invoke designer editor"
-msgstr "Muokkaa valittua kohdetta"
+#: ../bin/misc.c:2071
+msgid "Tu&nnel"
+msgstr "Tunneli"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:509
-msgid "Invoke the Parameter Files dialog"
-msgstr "Avaa parametritiedostot ikkuna"
+#: ../bin/misc.c:2072
+msgid "A&bove"
+msgstr "Päällimmäiseksi"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:310
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:408
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:503
-msgid "Invoke the Print Setup dialog"
-msgstr "Avaa tulostusasetusten ikkuna"
+#: ../bin/misc.c:2073
+msgid "Belo&w"
+msgstr "Alimmaiseksi"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:10
-msgid "Invokes on-line help for this dialog"
-msgstr "Avaa tämän dialogin ohjeen"
+#: ../bin/misc.c:2076
+msgid "Thin Tracks"
+msgstr "Ohuet raiteet"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:176
-msgid "Is the Car a Locomotive?"
-msgstr "Onko kyseessä veturi vai vaunu?"
+#: ../bin/misc.c:2077
+msgid "Medium Tracks"
+msgstr "Keskipaksut raiteet"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:201
-msgid "It's possible to almost create a complete circle.\n"
-msgstr "On mahdollista luoda lähes täydellinen ympyrä.\n"
+#: ../bin/misc.c:2078
+msgid "Thick Tracks"
+msgstr "Paksut raiteet"
-#: ../bin/dpricels.c:46 ../bin/dcar.c:1365
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:383
-msgid "Item"
-msgstr "Tuote"
+#: ../bin/misc.c:2083
+msgid "Zoom &In"
+msgstr "Lähennä"
-#: ../bin/dcar.c:3609
-#, c-format
-msgid "Item Index %ld duplicated an existing item: updated to new value"
-msgstr "Indeksi %ld oli jo käytössä. Annettiin indeksille uusi arvo."
+#: ../bin/misc.c:2084
+msgid "&Zoom"
+msgstr "&Zoom"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:197
-msgid "Item Index Number"
-msgstr "Kohteen indeksinumero"
+#: ../bin/misc.c:2085
+msgid "Zoom &Out"
+msgstr "Loitonna"
-#: ../bin/cjoin.c:898
-msgid "Join"
-msgstr "Yhdistä"
+#: ../bin/misc.c:2094
+msgid "&Redraw"
+msgstr "Uudelleenpiirto"
-#: ../bin/track.c:1614
-msgid "Join Abutting Tracks"
-msgstr "Yhdistä vastakkaiset raideosat"
+#: ../bin/misc.c:2095
+msgid "Redraw All"
+msgstr "Uudelleenpiirto kaikille"
-#: ../bin/cjoin.c:793
-msgid "Join Tracks"
-msgstr "Yhdistä raiteet"
+#: ../bin/misc.c:2098
+msgid "Enable SnapGrid"
+msgstr "Käytä kohdistusruudukkoa"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:79
-msgid "Join two tracks"
-msgstr "Yhdistä kaksi raidetta"
+#: ../bin/misc.c:2100
+msgid "Show SnapGrid"
+msgstr "Näytä kohdistusruudukko"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:23
-msgid "Joining Tracks"
-msgstr "Raiteiden yhdistäminen"
+#: ../bin/misc.c:2112
+msgid "&Tool Bar"
+msgstr "Työkalurivin painikkeet"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:27
-msgid "Joining to turntables"
-msgstr "Yhdistäminen kääntöpäytään"
+#: ../bin/misc.c:2162
+msgid "&Loosen Tracks"
+msgstr "Irroita raiteet"
-#: ../bin/tease.c:545
-#, c-format
-msgid ""
-"Joint Track(%d): Layer=%d Length=%0.3f EP=[%0.3f,%0.3f A%0.3f] [%0.3f,%0.3f A"
-"%0.3f]"
-msgstr ""
-"Yhdysraide(%d): Taso=%d Pituus=%0.3f Päätep.=[%0.3f,%0.3f K%0.3f] [%0.3f,%"
-"0.3f K%0.3f]"
+#: ../bin/misc.c:2171
+msgid "Raise/Lower Elevations"
+msgstr "Nosta/laske korkeuksia"
-#: ../bin/dease.c:73 ../bin/tease.c:504
-msgid "L"
-msgstr "P"
+#: ../bin/misc.c:2176
+msgid "Recompute Elevations"
+msgstr "Laske korkeudet uudelleen"
+
+#: ../bin/misc.c:2180
+msgid "Change Scale"
+msgstr "Muuta mittakaavaa"
-#: ../bin/misc.c:2283
+#: ../bin/misc.c:2197
msgid "L&ayout ..."
msgstr "Ratasuunnitelma ..."
-#: ../bin/dcustmgm.c:157
-msgid "Label"
-msgstr "Merkintä"
+#: ../bin/misc.c:2198
+msgid "&Display ..."
+msgstr "Näyttö ..."
-#: ../bin/doption.c:203
-msgid "Label Enable"
-msgstr "Näytettävät merkinnät"
+#: ../bin/misc.c:2199
+msgid "Co&mmand ..."
+msgstr "Komennot ..."
-#: ../bin/doption.c:204
-msgid "Label Font Size"
-msgstr "Merkintöjen kirjasinkoko"
+#: ../bin/misc.c:2200
+msgid "&Easements ..."
+msgstr "Kaarreloivennus ..."
-#: ../bin/doption.c:205
-msgid "Label Scale"
-msgstr "Merkintöjen mittakaava"
+#: ../bin/misc.c:2201
+msgid "&Fonts ..."
+msgstr "&Kirjasimet ..."
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:376
-msgid "Label elements for lists"
-msgstr "Luetteloissa näytettävät merkinnät"
+#: ../bin/misc.c:2202
+msgid "Stic&ky ..."
+msgstr "Pysyvät komennot ..."
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:279
-msgid "Label elements on layout"
-msgstr "Merkintöjen sisältö ratasuunnitelmassa"
+#: ../bin/misc.c:2205
+msgid "&Debug ..."
+msgstr "Virheiden poisto (debug) ..."
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:285
-msgid "Label elements on the Hot Bar"
-msgstr "Hot Bar:ssa esitettävät merkinnät"
+#: ../bin/misc.c:2207
+msgid "&Preferences ..."
+msgstr "&Ominaisuudet ..."
-#: ../wlib/gtklib/psprint.c:1155 ../bin/cprint.c:97
-msgid "Landscape"
-msgstr "Vaaka"
+#: ../bin/misc.c:2208
+msgid "&Colors ..."
+msgstr "Värit ..."
-#: ../bin/cdraw.c:503 ../bin/cdraw.c:929
-msgid "Large"
-msgstr "Suuri"
+#: ../bin/misc.c:2213
+msgid "&Record ..."
+msgstr "&Nauhoita ..."
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:202
-msgid "Last Service Date"
-msgstr "Milloin viimeksi huollettu"
+#: ../bin/misc.c:2214
+msgid "&Play Back ..."
+msgstr "&Toisto ..."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:545
-msgid ""
-"Lastly change the Vertical Separation to 2.5\". The number of Turns will "
-"change to 4 and the grade increase to almost 3%.\n"
-msgstr ""
-"Viimeiseksi muutamme kerrosten välisen etäisyyden 2,5 tuumaksi. Kierrosten "
-"lukumäärä muuttuu 4:ksi ja nousukulma kasvaa lähes 3%:iin.\n"
+#: ../bin/misc.c:2220
+msgid "Main window"
+msgstr "Pääikkuna"
-#: ../bin/param.c:109
-msgid "Lawn Green"
-msgstr "Ruohonvihreä"
-
-#: ../bin/tcurve.c:352 ../bin/cturntbl.c:242 ../bin/cnote.c:149
-#: ../bin/tease.c:509 ../bin/compound.c:524 ../bin/tstraigh.c:84
-#: ../bin/cdraw.c:203 ../../../../build/xtrkcad/app/bin/bllnhlp.c:594
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:595
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:596
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:597
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:598
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:599
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:600
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:601
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:602
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:603
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:604
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:605
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:606
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:607
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:608
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:609
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:610
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:611
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:612
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:613
-msgid "Layer"
-msgstr "Taso"
+#: ../bin/misc.c:2232
+msgid "Recent Messages"
+msgstr "Viimeisimmät viestit"
-#: ../bin/misc.c:1700 ../bin/misc.c:1729
-msgid "Layer Buttons"
-msgstr "Tasot"
+#: ../bin/misc.c:2238
+msgid "Tip of the Day..."
+msgstr "Päivän vinkki ..."
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:338
-msgid "Layer Name"
-msgstr "Tason nimi"
+#: ../bin/misc.c:2239
+msgid "&Demos"
+msgstr "Demot"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:341
-msgid "Layer cannot be changed"
-msgstr "Tasoa ei voi muokata"
+#: ../bin/misc.c:2243 ../bin/smalldlg.c:220
+msgid "About"
+msgstr "Tietoja"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:340
-msgid "Layer is drawn on Main window"
-msgstr "Taso piirretään pääikkunaan"
+#: ../bin/misc.c:2253
+msgid "Tur&nout Designer..."
+msgstr "Vaihteiden suunnittelu..."
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:342
-msgid "Layer is drawn on Map window"
-msgstr "Taso piirretään kartalle"
+#: ../bin/misc.c:2255
+msgid "Layout &Control Elements"
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:337
-msgid "Layer list"
-msgstr "Tasoluettelo"
+#: ../bin/misc.c:2256
+msgid "&Group"
+msgstr "Ryhmittele"
-#: ../bin/dlayer.c:820
-msgid "Layers"
-msgstr "Tasot"
+#: ../bin/misc.c:2257
+msgid "&Ungroup"
+msgstr "Pura ryhmittely"
-#: ../bin/misc.c:2352
+#: ../bin/misc.c:2259
+#, fuzzy
+msgid "Custom defined parts..."
+msgstr "Omat raideosat ja kalusto..."
+
+#: ../bin/misc.c:2260
+msgid "Update Turnouts and Structures"
+msgstr "Päivitä vaihteet ja rakennukset"
+
+#: ../bin/misc.c:2266
msgid "Layers ..."
msgstr "Tasot ..."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:593
+#: ../bin/misc.c:2269
+msgid "Parts &List ..."
+msgstr "Osaluettelo ..."
+
+#: ../bin/misc.c:2270
+msgid "Price List..."
+msgstr "Hinnasto ..."
+
+#: ../bin/misc.c:2351
msgid ""
-"Layers can be used to contain different groups of tracks or other features. "
-"You might use one layer for the main-line, another of staging tracks and "
-"another of benchwork.\n"
-"You can give each layer a name (by using the Layer dialog). This name will "
-"be displayed as the Balloon Help for the corresponding Layer button, if you "
-"have Balloon Help enabled on the Display dialog."
+"Program was not terminated properly. Do you want to resume working on the "
+"previous trackplan?"
msgstr ""
+"Ohjelmaa ei lopetettu kunnolla. Haluatko jatkaa työskentelyä edellisen "
+"ratasuunnitelman parissa?"
-#: ../bin/dcar.c:4784
-msgid "Layout"
-msgstr "Ratasuunnitelma"
-
-#: ../bin/doption.c:206
-msgid "Layout Labels"
-msgstr "Merkinnät"
+#: ../bin/misc.c:2352
+msgid "Resume"
+msgstr "Jatka"
-#: ../bin/doption.c:147
-msgid "Layout Options"
-msgstr "Ratasuunnitelman asetukset"
+#: ../bin/misc.c:2461
+#, c-format
+msgid "Unnamed Trackplan - %s(%s)"
+msgstr "Nimetön ratasuunnitelma - %s(%s)"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:82
-msgid "Layout parameters"
-msgstr "Ratasuunnitelman asetukset"
+#: ../bin/misc.c:2529
+msgid "Initializing commands"
+msgstr "Alustetaan komennot"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:508
-msgid "Leave the Turnouts' title unchanged"
-msgstr "Älä muuta raideosan otsikkoa"
+#: ../bin/misc.c:2538
+msgid "Initializing menus"
+msgstr "Alustetaan valikot"
-#: ../bin/dbench.c:64 ../bin/dbench.c:75 ../bin/csplit.c:106
-msgid "Left"
-msgstr "Vasen"
+#: ../bin/misc.c:2575
+msgid "Reading parameter files"
+msgstr "Luetaan parametritiedostot"
-#: ../bin/ctodesgn.c:242 ../bin/ctodesgn.c:279
-msgid "Left Angle"
-msgstr "Vasemman raiteen kulma"
+#: ../bin/misc.c:2609
+msgid "Initialization complete"
+msgstr "Alustus valmis"
-#: ../bin/ctodesgn.c:411
-msgid "Left Crossover"
-msgstr "Raiteenvaihto vasemmalle"
+#: ../bin/param.c:95
+msgid "Unexpected End Of String"
+msgstr "Odottamaton merkkijonon loppu"
-#: ../bin/ctodesgn.c:142 ../bin/ctodesgn.c:1755 ../bin/ctodesgn.c:1756
-msgid "Left Description"
-msgstr "Vasemman kuvaus"
+#: ../bin/param.c:102
+msgid "Expected digit"
+msgstr "Odotettiin numeroa"
-#: ../bin/ctodesgn.c:241 ../bin/ctodesgn.c:278
-msgid "Left Length"
-msgstr "Vasemman raiteen pituus"
+#: ../bin/param.c:109
+msgid "Overflow"
+msgstr "Ylivuoto"
-#: ../bin/ctodesgn.c:243 ../bin/ctodesgn.c:280
-msgid "Left Offset"
-msgstr "Vasemman raiteen siirtymä"
+#: ../bin/param.c:157
+msgid "Divide by 0"
+msgstr "Jako nollalla"
-#: ../bin/cjoin.c:450
-msgid "Left click - join with track, Shift Left click - move to join"
-msgstr ""
-"Hiiren vasen: yhdistä raiteet, Vaihto + hiiren vasen: siirrä yhdistääksesi"
+#: ../bin/param.c:165
+msgid "Expected /"
+msgstr "Odotettiin /"
-#: ../bin/cstruct.c:794 ../bin/cstruct.c:881
-msgid ""
-"Left drag to move, right drag to rotate, or press Return or click Ok to "
-"finalize"
-msgstr ""
-"Siirrä raahaamalla hiiren vasemmalla, pyöritä rahaamalla hiiren oikealla, "
-"tai paina return tai klikkaa Ok kun valmis"
+#: ../bin/param.c:237
+msgid "Invalid Units Indicator"
+msgstr "Epäkelpo yksikön merkintä"
-#: ../bin/cturnout.c:2135 ../bin/cturnout.c:2191 ../bin/cturnout.c:2307
-#: ../bin/cturnout.c:2419
-msgid ""
-"Left drag to move, right drag to rotate, press Space or Return to fix track "
-"in place or Esc to cancel"
-msgstr ""
-"Siirrä vetämällä hiiren vasemmalla, pyöritä vetämällä hiiren oikealla, paina "
-"välilyönti tai return asettaaksesi raideosa paikalleen tai esc peruuttaaksesi"
+#: ../bin/param.c:251
+msgid "Expected End Of String"
+msgstr "Odotettiin merkkijonon loppua"
-#: ../bin/dbench.c:66
-msgid "Left-Down"
-msgstr "Vasen-Alas"
+#: ../bin/param.c:274 ../bin/param.c:1294
+#, c-format
+msgid "Invalid Number"
+msgstr "Epäkelpo numero"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:401
-msgid "Left-Drag is used to select all objects within an area.\n"
-msgstr ""
-"Raahaamalla hiiren vasemmalla painikkeella, voidaan valita kaikki alueella "
-"olevat objektit.\n"
+#: ../bin/param.c:322
+msgid "End Of String"
+msgstr "Merkkijonon loppu"
-#: ../bin/dbench.c:70
-msgid "Left-Inverted"
-msgstr "Vasen-Käännetty"
+#: ../bin/param.c:1301
+#, c-format
+msgid "Enter a value > %ld"
+msgstr "Syötä arvo, joka on > %ld"
-#: ../bin/dbench.c:68
-msgid "Left-Up"
-msgstr "Vasen-Ylös"
+#: ../bin/param.c:1303
+#, c-format
+msgid "Enter a value < %ld"
+msgstr "Syötä arvo, joka on < %ld"
-#: ../bin/tcurve.c:346 ../bin/ctodesgn.c:129 ../bin/ctodesgn.c:130
-#: ../bin/ctodesgn.c:131 ../bin/ctodesgn.c:180 ../bin/ctodesgn.c:183
-#: ../bin/ctodesgn.c:203 ../bin/ctodesgn.c:208 ../bin/ctodesgn.c:241
-#: ../bin/ctodesgn.c:246 ../bin/ctodesgn.c:278 ../bin/ctodesgn.c:281
-#: ../bin/ctodesgn.c:284 ../bin/ctodesgn.c:319 ../bin/ctodesgn.c:321
-#: ../bin/ctodesgn.c:339 ../bin/ctodesgn.c:341 ../bin/ctodesgn.c:360
-#: ../bin/ctodesgn.c:362 ../bin/ctodesgn.c:381 ../bin/ctodesgn.c:401
-#: ../bin/ctodesgn.c:421 ../bin/ctodesgn.c:441 ../bin/ctodesgn.c:479
-#: ../bin/ctodesgn.c:498 ../bin/ctodesgn.c:499 ../bin/ctrain.c:173
-#: ../bin/tstraigh.c:80 ../bin/cdraw.c:188
-msgid "Length"
-msgstr "Pituus"
+#: ../bin/param.c:1305
+#, c-format
+msgid "Enter a value between %ld and %ld"
+msgstr "Syötä arvo %ld ja %ld väliltä"
-#: ../bin/chndldto.c:273
+#: ../bin/param.c:1353
#, c-format
-msgid "Length = %0.2f Angle = %0.2f Frog# = %0.2f"
-msgstr "Pituus = %0.2f Kulma = %0.2f Risteysnumero = %0.2f"
+msgid "Enter a value > %s"
+msgstr "Syätä arvo, joka on > %s"
-#: ../bin/drawgeom.c:608
+#: ../bin/param.c:1356
#, c-format
-msgid "Length = %0.3f Angle = %0.3f"
-msgstr "Pituus = %0.3f Kulma = %0.3f"
+msgid "Enter a value < %s"
+msgstr "Syötä arvo, joka on < %s"
-#: ../bin/drawgeom.c:257 ../bin/drawgeom.c:266
+#: ../bin/param.c:1359
#, c-format
-msgid "Length = %s, Angle = %0.2f"
-msgstr "Pituus = %s, Kulma = %0.2f"
+msgid "Enter a value between %s and %s"
+msgstr "Syötä arvo %s ja %s väliltä"
-#: ../bin/doption.c:361
-msgid "Length Format"
-msgstr "Pituusmittojen muotoilu"
+#: ../bin/param.c:2495
+msgid "Help"
+msgstr "Ohje"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:490
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:491
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:492
-msgid "Length from the base to the end of the specified track"
-msgstr "Etäisyys vaihteen alusta raiteen päähän"
+#: ../bin/smalldlg.c:63
+msgid "Show tips at start"
+msgstr "Vinkki ohjelman alussa"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:190
-msgid "Length of car body"
-msgstr "Rungon pituus"
+#: ../bin/smalldlg.c:69
+msgid "Did you know..."
+msgstr "Tiesitkö..."
-#: ../bin/cturnout.c:1338
-#, c-format
-msgid "Length=%s"
-msgstr "Pituus=%s"
+#: ../bin/smalldlg.c:71
+msgid "Previous Tip"
+msgstr "Edellinen"
-#: ../bin/ccurve.c:172
-#, c-format
-msgid "Length=%s Angle=%0.3f"
-msgstr "Pituus=%s Kulma=%0.3f"
+#: ../bin/smalldlg.c:72
+msgid "Next Tip"
+msgstr "Seuraava"
-#: ../bin/doption.c:190
-msgid "Lengths"
-msgstr "Pituudet"
+#: ../bin/smalldlg.c:89
+msgid "Tip of the Day"
+msgstr "Päivän vinkki"
+
+#: ../bin/smalldlg.c:98
+msgid "No tips are available"
+msgstr "Vinkkejä ei ole saatavilla"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:645
+#: ../bin/smalldlg.c:197
+#, fuzzy
msgid ""
-"Lengths and distances can be displayed in a variety of units and formats "
-"such as 1' 10 3/4\", 1ft 10.75in or 22.750. In Metric mode, distances can "
-"be displayed as millimeters, centimeters or meters. See the Length Format "
-"item on the Preferences dialog."
+"XTrackCAD is a CAD (computer-aided design) program for designing model "
+"railroad layouts."
msgstr ""
+"\n"
+"XTrackCAD on CAD ohjelma pienoisrautateiden\n"
+"raidekaavioiden suunniteluun."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:366
-msgid "Let's add signals to our siding.\n"
-msgstr "Lisätään sivuraiteelle opastimet.\n"
+#: ../bin/tbezier.c:170
+#, c-format
+msgid "Bezier Curve: length=%s min radius=%s"
+msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:484
-msgid "Let's look at the Turnout...\n"
-msgstr "Katsokaamme vaihdetta...\n"
+#: ../bin/tbezier.c:232
+#, fuzzy
+msgid "Z1"
+msgstr "Z"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:134
-msgid "Let's try that again.\n"
-msgstr "Kokeillaan uudestaan.\n"
+#: ../bin/tbezier.c:233 ../bin/tcornu.c:279
+#, fuzzy
+msgid "End Angle 1"
+msgstr "Syötä kulma ..."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:383
-msgid "Lets move the spur track the left 3/4\"\n"
-msgstr "Siirrämme pistoraidetta vasemmalle 3/4 tuumaa.\n"
+#: ../bin/tbezier.c:234
+#, fuzzy
+msgid "Ctl Pt 1: X"
+msgstr "Päätepiste 1: X"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:381
-msgid "Lets tighten it up a bit.\n"
-msgstr "Tiivistetään hieman.\n"
+#: ../bin/tbezier.c:235
+#, fuzzy
+msgid "Ctl Pt 2: X"
+msgstr "Päätepiste 2: X"
-#: ../bin/param.c:140
-msgid "Light Gray"
-msgstr "Vaaleanharmaa"
+#: ../bin/tbezier.c:237
+#, fuzzy
+msgid "Z2"
+msgstr "Z"
-#: ../bin/param.c:98
-msgid "Light Sky Blue"
-msgstr ""
+#: ../bin/tbezier.c:238 ../bin/tcornu.c:284
+#, fuzzy
+msgid "End Angle 2"
+msgstr "Syötä kulma ..."
+
+#: ../bin/tbezier.c:239
+#, fuzzy
+msgid "MinRadius"
+msgstr "Säde"
+
+#: ../bin/tbezier.c:244
+#, fuzzy
+msgid "Line Color"
+msgstr "%s väri"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:249
+#: ../bin/tbezier.c:341
+#, fuzzy, c-format
msgid ""
-"Like Curved Tracks, Curved Lines can be drawn by a variety of methods.\n"
+"Bezier %s(%d): Layer=%u MinRadius=%s Length=%s EP=[%0.3f,%0.3f] [%0.3f,"
+"%0.3f] CP1=[%0.3f,%0.3f] CP2=[%0.3f, %0.3f]"
msgstr ""
-"Aivan kuten kaarevat raideosat, myös kaarevat viivat voidaan piirtää eri "
-"tavoin.\n"
+"Kaareva raideosa(%d): Taso=%d Säde=%s Pituus=%s Keskipiste=[%s,%s] Päätep.="
+"[%0.3f,%0.3f K%0.3f] [%0.3f,%0.3f K%0.3f]"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:219
-msgid ""
-"Like the <Curve> track command, there are several ways to create a Circle "
-"track.\n"
-msgstr "Kuten kaarteet, myös ympyräradat voidaan luoda usealla eri tavalla.\n"
+#: ../bin/tbezier.c:399
+#, fuzzy
+msgid "Bezier Track"
+msgstr "Helix raide"
-#: ../bin/param.c:107
-msgid "Lime Green"
+#: ../bin/tbezier.c:768
+msgid "Merge Bezier"
msgstr ""
-#: ../bin/cdraw.c:1027
-msgid "Line"
-msgstr "Viiva"
+#: ../bin/tcornu.c:210
+#, c-format
+msgid "Cornu Curve: length=%0.3f min radius=%0.3f"
+msgstr ""
-#: ../bin/ctodesgn.c:148 ../bin/cdraw.c:193 ../bin/cdraw.c:803
-msgid "Line Width"
-msgstr "Viivan paksuus"
+#: ../bin/tcornu.c:278
+#, fuzzy
+msgid "Elev 1"
+msgstr "Korkeus = %0.1f"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:55
-msgid "Lines"
-msgstr "Viivat"
+#: ../bin/tcornu.c:280
+#, fuzzy
+msgid "Radius 1"
+msgstr "Säde1"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:254
-msgid "Lines and Shapes can be deleted by Selecting and Deleting.\n"
+#: ../bin/tcornu.c:281
+#, fuzzy
+msgid "End Radius Center 1: X"
+msgstr "Päätepiste 1: X"
+
+#: ../bin/tcornu.c:283
+#, fuzzy
+msgid "Elev 2"
+msgstr "Korkeus = %s"
+
+#: ../bin/tcornu.c:285
+#, fuzzy
+msgid "Radius 2"
+msgstr "Säde2"
+
+#: ../bin/tcornu.c:286
+#, fuzzy
+msgid "End Radius Center 2: X"
+msgstr "Päätepiste 2: X"
+
+#: ../bin/tcornu.c:287
+#, fuzzy
+msgid "Minimum Radius"
+msgstr "Pienin karresäde"
+
+#: ../bin/tcornu.c:288
+msgid "Maximum Rate Of Change Of Curvature"
msgstr ""
-"Viivat ja muodot poistetaan valitsemalla ne ensin ja sitten poistamalla ne.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:246
+#: ../bin/tcornu.c:289
+msgid "Total Winding Angle"
+msgstr ""
+
+#: ../bin/tcornu.c:410
+#, fuzzy, c-format
msgid ""
-"Lines are drawn by clicking at the starting postion and dragging to the "
-"final position.\n"
+"Cornu Track(%d): Layer=%u MinRadius=%s Length=%s EP=[%0.3f,%0.3f] [%0.3f,"
+"%0.3f]"
msgstr ""
-"Viivat piirretään klikkaamalla alkupistettä ja raahaamalla loppupisteeseen.\n"
+"Kaareva raideosa(%d): Taso=%d Säde=%s Pituus=%s Keskipiste=[%s,%s] Päätep.="
+"[%0.3f,%0.3f K%0.3f] [%0.3f,%0.3f K%0.3f]"
-#: ../bin/dcar.c:4112 ../../../../build/xtrkcad/app/bin/bllnhlp.c:513
-msgid "List"
-msgstr "Luettelo"
+#: ../bin/tcornu.c:463
+#, fuzzy
+msgid "Cornu Track"
+msgstr "Kaareva raide"
-#: ../bin/dcar.c:4345
-msgid "List Cars"
-msgstr "Luetteloi vaunut"
+#: ../bin/tcornu.c:907
+#, fuzzy
+msgid "Merge Cornu"
+msgstr "Yhdistä kaarteet"
-#: ../bin/doption.c:369
-msgid "List Labels"
-msgstr "Luettelon merkinnät"
+#: ../bin/tcurve.c:234
+#, c-format
+msgid "Helix: turns=%ld length=%s grade=%0.1f%% sep=%s"
+msgstr "Helix: Kierroksia=%ld Pituus=%s Nousukulma=%0.1f%% Korkeusero=%s"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:466
-msgid "List of Cars"
-msgstr "Luettelo vaunuista ja vetureista"
+#: ../bin/tcurve.c:240
+#, c-format
+msgid "Helix: turns=%ld length=%s"
+msgstr "Helix: Kierroksia=%ld Pituus=%s"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:467
-msgid "List of active trains"
-msgstr "Luettelo aktiivisista junista"
+#: ../bin/tcurve.c:357
+msgid "Angular Length"
+msgstr "Kulma"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:453
-msgid "List of available structure"
-msgstr "Luettelo saatavilla olevista rakennuksista"
+#: ../bin/tcurve.c:533
+#, c-format
+msgid ""
+"Helix Track(%d): Layer=%d Radius=%s Turns=%ld Length=%s Center=[%s,%s] EP="
+"[%0.3f,%0.3f A%0.3f] [%0.3f,%0.3f A%0.3f]"
+msgstr ""
+"Helix(%d): Taso=%d Säde=%s Kierr.=%ld Pituus=%s Keskip.=[%s,%s] Päätep.="
+"[%0.3f,%0.3f K%0.3f] [%0.3f,%0.3f K%0.3f]"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:507
-msgid "List of available titles"
-msgstr "Luettelo saatavilla olevista otsikoista"
+#: ../bin/tcurve.c:543
+#, c-format
+msgid ""
+"Curved Track(%d): Layer=%d Radius=%s Length=%s Center=[%s,%s] EP=[%0.3f,"
+"%0.3f A%0.3f] [%0.3f,%0.3f A%0.3f]"
+msgstr ""
+"Kaareva raideosa(%d): Taso=%d Säde=%s Pituus=%s Keskipiste=[%s,%s] Päätep.="
+"[%0.3f,%0.3f K%0.3f] [%0.3f,%0.3f K%0.3f]"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:510
-msgid "List of available turnouts"
-msgstr "Luettelo saatavilla olevista raideosista"
+#: ../bin/tcurve.c:620
+msgid "Helix Track"
+msgstr "Helix raide"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:476
-msgid "List of available turnouts for the current scale"
-msgstr "Luettelo saatavilla olevista raideosista tässä mittakaavassa"
+#: ../bin/tcurve.c:626
+msgid "Curved Track"
+msgstr "Kaareva raideosa"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:228
-msgid "List of custom designed turnouts and structures"
-msgstr "Luettelo itse suunnitelluista raideosista ja rakennuksista"
+#: ../bin/tcurve.c:980
+msgid "Merge Curves"
+msgstr "Yhdistä kaarteet"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:410
-msgid "List of loaded and unloaded parameter files"
-msgstr "Luettelo ladatuista ja saatavilla olevista parametritiedostoista"
+#: ../bin/tcurve.c:1047
+msgid "Drag to change angle or create tangent"
+msgstr "Raahaa muuttaaksesi kulmaa"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:293
-msgid "List of types of Lumber"
-msgstr "Luettelo puutavaran tyypeistä"
+#: ../bin/tcurve.c:1080 ../bin/tcurve.c:1112
+msgid "Curved "
+msgstr "Kaareva "
-#: ../bin/doption.c:194
-msgid "Live"
-msgstr "Seuraa"
+#: ../bin/tcurve.c:1086
+msgid "Tangent "
+msgstr "Tangentti "
-#: ../bin/doption.c:214
-msgid "Live Map"
-msgstr "Suunnitelma seuraa karttaa"
+#: ../bin/tcurve.c:1095
+#, c-format
+msgid "Tangent track: Length %s Angle %0.3f"
+msgstr "Tangentti raide: Pituus %s Kulma %0.3f"
-#: ../bin/dlayer.c:324 ../bin/misc.c:468 ../bin/misc.c:496 ../bin/dcmpnd.c:72
-msgid "Load"
-msgstr "Lataa"
+#: ../bin/tcurve.c:1117
+#, c-format
+msgid "Curved: Radius=%s Length=%s Angle=%0.3f"
+msgstr "Kaari: Säde=%s Pituus=%s Kulma=%0.3f"
-#: ../bin/dprmfile.c:432
-msgid "Load Parameters"
-msgstr "Lataa parametrit"
+#: ../bin/tease.c:511
+msgid "l0"
+msgstr "l0"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:138
-msgid "Load a layout"
-msgstr "Lataa ratasuunnitelma"
+#: ../bin/tease.c:512
+msgid "l1"
+msgstr "l1"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:346
-msgid "Load layer configuration from default"
-msgstr "Lataa oletusasetukset tiedostosta"
+#: ../bin/tease.c:554
+#, c-format
+msgid ""
+"Joint Track(%d): Layer=%d Length=%0.3f EP=[%0.3f,%0.3f A%0.3f] [%0.3f,%0.3f A"
+"%0.3f]"
+msgstr ""
+"Yhdysraide(%d): Taso=%d Pituus=%0.3f Päätep.=[%0.3f,%0.3f K%0.3f] [%0.3f,"
+"%0.3f K%0.3f]"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:95
-msgid "Loads and unloads parameter files"
-msgstr "Lataa tai poista parametritiedostoja käytöstä"
+#: ../bin/tease.c:599
+msgid "Easement Track"
+msgstr "Kaarreloivennus"
-#: ../bin/dcar.c:4073
-msgid "Locat'n"
-msgstr "Sijainti"
+#: ../bin/tease.c:1265
+msgid "Merge Easements"
+msgstr "Yhdistä kaarreloivennukset"
-#: ../bin/dcar.c:1947
-msgid "Loco?"
-msgstr "Veturi?"
+#: ../bin/tease.c:1330
+msgid "Split Easement Curve"
+msgstr "Pilko kaarreloivennus"
-#: ../bin/cdraw.c:195 ../bin/cdraw.c:417 ../bin/cdraw.c:823
-msgid "Lumber"
-msgstr "Puutavara"
+#: ../bin/track.c:1112
+msgid "Move Objects Above"
+msgstr "Siirrä objekteja ylemmäs"
-#: ../bin/cdraw.c:809 ../bin/cdraw.c:904
-msgid "Lumber Type"
-msgstr "Puutavaran tyyppi"
+#: ../bin/track.c:1132
+msgid "Mode Objects Below"
+msgstr "Siirrä objekteja alemmas"
-#: ../bin/dcar.c:484
-msgid "M-O-W"
-msgstr "Työkone"
+#: ../bin/track.c:1360
+msgid "Audit"
+msgstr "Tarkasta"
+
+#: ../bin/track.c:1634
+#, c-format
+msgid "%d Track(s) loosened"
+msgstr "%d raidetta irroitettu"
+
+#: ../bin/track.c:1641
+msgid "No tracks loosened"
+msgstr "Yhtään raidetta ei irroitettu"
-#: ../../../../build/xtrkcad/app/help/messages.h:73
+#: ../bin/track.c:1651 ../bin/track.c:1655
+#, c-format
+msgid "Connecting a non-track(%d) to (%d)"
+msgstr "Muun kuin raideosan (%d) yhdistäminen raiteeseen (%d)"
+
+#: ../bin/track.c:1716
+msgid "Join Abutting Tracks"
+msgstr "Yhdistä vastakkaiset raideosat"
+
+#: ../bin/track.c:1966 ../bin/tstraigh.c:556
+#, c-format
+msgid "Straight: Length=%s Angle=%0.3f"
+msgstr "Suora: Pituus=%s Kulma=%0.3f"
+
+#: ../bin/tstraigh.c:236
#, c-format
msgid ""
-"MSG_2ND_TRK_NOT_SEL_UNSEL\tSecond track must be selected|unselected\tSecond "
-"track must be %s."
+"Straight Track(%d): Layer=%d Length=%s EP=[%0.3f,%0.3f A%0.3f] [%0.3f,%0.3f A"
+"%0.3f]"
+msgstr ""
+"Suora raideosa(%d): Taso=%d Pituus=%s Päätep.=[%0.3f,%0.3f K%0.3f] [%0.3f,"
+"%0.3f K%0.3f]"
+
+#: ../bin/tstraigh.c:470
+msgid "Extending Straight Track"
+msgstr "Jatketaan suoraa raidetta"
+
+#: ../bin/tstraigh.c:549
+msgid "Straight "
+msgstr "Suora "
+
+#: ../wlib/gtklib/filesel.c:114
+msgid "All files"
msgstr ""
-"MSG_2ND_TRK_NOT_SEL_UNSEL\tToisen raiteen on oltava valittu|valitsematta"
-"\tToisen raiteen on oltava %s."
-#: ../../../../build/xtrkcad/app/help/messages.h:103
+#: ../wlib/gtklib/font.c:275
+msgid "Font Select"
+msgstr "Kirjasimen valinta"
+
+#: ../wlib/gtklib/help.c:68
+msgid "&Contents"
+msgstr "Sisältö"
+
+#: ../wlib/gtklib/ixhelp.c:243
+msgid "Home"
+msgstr "Aloitussivu"
+
+#: ../wlib/gtklib/ixhelp.c:247
+#, fuzzy
+msgid "Contents"
+msgstr "Sisältö"
+
+#: ../wlib/gtklib/menu.c:541
+msgid "<Empty List>"
+msgstr ""
+
+#: ../wlib/gtklib/notice.c:96 ../wlib/mswlib/mswmisc.c:1972
+#: ../wlib/mswlib/mswmisc.c:2015
+msgid "Warning"
+msgstr ""
+
+#: ../wlib/gtklib/notice.c:101 ../wlib/mswlib/mswmisc.c:1977
+msgid "Error"
+msgstr "Virhe"
+
+#: ../wlib/gtklib/text.c:286
+#, c-format
+msgid "%d of %d"
+msgstr ""
+
+#: ../wlib/gtklib/wpref.c:114
+#, c-format
msgid ""
-"MSG_BITMAP_SIZE_WARNING\tYou have specified a large Bitmap....\tYou have "
-"specified a large Bitmap.\n"
+"The required configuration files could not be located in the expected "
+"location.\n"
"\n"
-"Are you sure you want to continue?"
+"Usually this is an installation problem. Make sure that these files are "
+"installed in either \n"
+" %s/share/xtrkcad or\n"
+" /usr/lib/%s or\n"
+" /usr/local/lib/%s\n"
+"If this is not possible, the environment variable %s must contain the name "
+"of the correct directory."
msgstr ""
-"MSG_BITMAP_SIZE_WARNING\tOlet määritellyt suuren Bitmap kuvan...\tOlet "
-"määritellyt suuren Bitmap kuvan.\n"
+"Tarvittavia asetustiedostoja ei löydy oletetuista hakemistoista.\n"
"\n"
-"Haluatko varmasti jatkaa?"
+"Yleensä tämä johtuu virheellisestä asennuksesta. Varmista että nämä "
+"tiedostot on asennettu johonkin seuraavista hakemistoista:\n"
+" %s/share/xtrkcad\n"
+" /usr/lib/%s\n"
+" /usr/local/lib/%s\n"
+"Jos tämä ei ole mahdollista, täytyy ympäristömuuttujan %s sisältää oikean "
+"hakemiston nimi."
-#: ../../../../build/xtrkcad/app/help/messages.h:17
-msgid "MSG_BITMAP_TOO_LARGE\tBitmap is too large."
-msgstr "MSG_BITMAP_TOO_LARGE\tBitmap on liian suuri."
+#: ../wlib/gtklib/wpref.c:148 ../wlib/gtklib/wpref.c:193
+msgid "HOME is not set"
+msgstr "HOME ympäristömuuttujaa ei ole asetettu"
-#: ../../../../build/xtrkcad/app/help/messages.h:92
-msgid "MSG_CANNOT_CHANGE\tTrack cannot be changed."
-msgstr "MSG_CANNOT_CHANGE\tRaidetta ei voi muuttaa."
+#: ../wlib/gtklib/wpref.c:148 ../wlib/gtklib/wpref.c:157
+#: ../wlib/gtklib/wpref.c:193
+msgid "Exit"
+msgstr "Poistu"
-#: ../../../../build/xtrkcad/app/help/messages.h:22
-msgid "MSG_CANNOT_GROUP_TRACK\tCannot Group selected track."
-msgstr "MSG_CANNOT_GROUP_TRACK\tValittua raideosaa ei voida ryhmitellä."
+#: ../wlib/gtklib/wpref.c:156
+#, c-format
+msgid "Cannot create %s"
+msgstr "%s luonti ei onnistu."
-#: ../../../../build/xtrkcad/app/help/messages.h:21
-msgid ""
-"MSG_CANT_GROUP_BUMPER1\tCannot Group Bumper Track. The track has been "
-"unselected."
+#: ../wlib/mswlib/mswmenu.c:884
+msgid "Ctrl+"
msgstr ""
-"MSG_CANT_GROUP_BUMPER1\tPäätepuskinta ei voi liittää ryhmään. Raideosan "
-"valinta on poistettu."
-#: ../../../../build/xtrkcad/app/help/messages.h:97
-msgid ""
-"MSG_CANT_MODIFY_FROZEN_TRK\tTracks in a frozen layer cannot be modified."
+#: ../wlib/mswlib/mswmenu.c:889
+msgid "Alt+"
msgstr ""
-"MSG_CANT_MODIFY_FROZEN_TRK\tJäädytetyllä tasolla olevia raiteita ei voi "
-"muokata."
-#: ../../../../build/xtrkcad/app/help/messages.h:84
-msgid ""
-"MSG_CANT_MOVE_UNDER_TRAIN\tThe position of a turnout or turntable cannot..."
-"\tThe position of a turnout or turntable cannot\n"
-"be changed while occupied by a train."
+#: ../wlib/mswlib/mswmenu.c:894
+msgid "Shift+"
msgstr ""
-"MSG_CANT_MOVE_UNDER_TRAIN\tVaihteita tai kääntöpöytää ei voi kääntää..."
-"\tVaihteita tai kääntöpöytää ei voi kääntää junan ollessa päällä."
-#: ../../../../build/xtrkcad/app/help/messages.h:36
-msgid "MSG_CANT_PASTE\tCopy/Paste buffer is empty. There is nothing to Paste."
-msgstr ""
-"MSG_CANT_PASTE\tKopioi/liitä -puskuri on tyhjä. Ei ole mitään liitettävää."
+#: ../wlib/mswlib/mswmenu.c:900
+#, fuzzy
+msgid "Space"
+msgstr "Väli"
-#: ../../../../build/xtrkcad/app/help/messages.h:7
+#: ../../../../build/work/app/help/messages.h:9
#, c-format
msgid ""
"MSG_CANT_PLACE_FROGPOINTS\tFrog|Points cannot be placed on a turnout, circle "
@@ -4814,306 +5418,325 @@ msgstr ""
"ympyräradalla, helixissä tai palaraiteella\t%s ei voi olla ympyräradalla, "
"helixissä tai palaraiteella."
-#: ../../../../build/xtrkcad/app/help/messages.h:32
-#, c-format
-msgid "MSG_CANT_SPLIT_TRK\tCannot split TYPE track\tCannot split %s track"
-msgstr "MSG_CANT_SPLIT_TRK\tRAIDETYYPPI: Ei voi pilkkoa\t%s: Ei voi pilkkoa"
-
-#: ../../../../build/xtrkcad/app/help/messages.h:60
-msgid ""
-"MSG_CARDESC_VALUE_ZERO\tNumeric values on the Car Description...\tNumeric "
-"values on the Car Description\n"
-"dialog must be greater than 0."
-msgstr ""
-"MSG_CARDESC_VALUE_ZERO\tVaunun/veturin määrittelyn numeeristen arvojen..."
-"\tVaunun/veturin määrittelyn numeeristen arvojen täytyy olla suurempia kuin "
-"0."
-
-#: ../../../../build/xtrkcad/app/help/messages.h:41
+#: ../../../../build/work/app/help/messages.h:10
+#, fuzzy
msgid ""
-"MSG_CARIMP_DUP_COLUMNS\tDuplicate column headers found in Car Import file."
+"MSG_SEL_TRK_FROZEN\tA frozen layer contains selected track. Command cannot "
+"be executed."
msgstr ""
-"MSG_CARIMP_DUP_COLUMNS\tSama sarakeotsikko esiintyy useaan kertaan "
-"kalustotiedostossa."
+"MSG_SEL_TRK_FROZEN\tValittu raide on jäädytetyllä tasolla...\tValittu raide "
+"on jäädytetyllä tasolla.\n"
+"Komentoa ei voida suorittaa."
-#: ../../../../build/xtrkcad/app/help/messages.h:34
-msgid "MSG_CARIMP_DUP_INDEX\tCar Index number duplicated."
-msgstr "MSG_CARIMP_DUP_INDEX\tKaksi samaa indeksiä löydetty."
+#: ../../../../build/work/app/help/messages.h:11
+msgid "MSG_HELIX_TURNS_GTR_0\tA Helix must have one or more loops of track."
+msgstr "MSG_HELIX_TURNS_GTR_0\tHelixissä on oltava vähintään yksi ratakierros."
-#: ../../../../build/xtrkcad/app/help/messages.h:83
-#, c-format
+#: ../../../../build/work/app/help/messages.h:12
msgid ""
-"MSG_CARIMP_IGNORED_COLUMN\tThe following column in the Car Import file will "
-"be ignored:...\tThe following column in the Car Import file will be "
-"ignored:\n"
+"MSG_LARGE_FONT\tA large font has been selected....\tA large font has been "
+"selected.\n"
+"Large fonts may a take a while to load.\n"
"\n"
-"%s"
+"Do you wish to continue?"
msgstr ""
-"MSG_CARIMP_IGNORED_COLUMN\tSeuraava kalustotiedoston sarake jätetään "
-"huomiotta:...\tSeuraava kalustotiedoston sarake jätetään huomiotta:\n"
+"MSG_LARGE_FONT\tSuurikokoinen kirjasin valittu...\tSuurikokoinen kirjasin "
+"valittu.\n"
+"Suurien kirjasinten lataaminen saattaa kestää kauan.\n"
"\n"
-"%s"
+"Haluatko jatkaa?"
-#: ../../../../build/xtrkcad/app/help/messages.h:72
+#: ../../../../build/work/app/help/messages.h:13
msgid ""
-"MSG_CARIMP_MISSING_COLUMNS\tRequired column headers missing from Car Import "
-"file."
+"MSG_TODSGN_DESC_NONBLANK\tAll description fields present in the Turnout..."
+"\tAll description fields present in the Turnout\n"
+"Designer must contain appropriate information.\n"
+"Correct inappropriate values and try again."
msgstr ""
-"MSG_CARIMP_MISSING_COLUMNS\tKalustotiedostosta puuttuu tarpeellisia "
-"sarakkeiden otsikoita."
+"MSG_TODSGN_DESC_NONBLANK\tRaideosien Suunnittelu -dialogin kaikissa "
+"kentissä...\tRaideosien Suunnittelu -dialogin kaikissa kentissä\n"
+"on oltava asianmukaiset arvot.\n"
+"Korjaa arvot ja kokeile uudelleen."
-#: ../../../../build/xtrkcad/app/help/messages.h:81
-#, c-format
+#: ../../../../build/work/app/help/messages.h:14
msgid ""
-"MSG_CARIMP_MISSING_DIMS\tThe following car has no dimensions and a...\tThe "
-"following car has no dimensions and a\n"
-"Car Part description can not be found.\n"
-"\n"
-"%s\n"
-"\n"
-"Do you wish to continue importing other Cars?"
+"MSG_GROUP_NONBLANK\tAll fields listed in the Group dialog must contain "
+"data....\tAll fields listed in the Group dialog must contain data.\n"
+"Please enter missing values and try again."
msgstr ""
-"MSG_CARIMP_MISSING_DIMS\tVaunun tai veturin mitat ja kuvaus puuttuvat..."
-"\tVaunun tai veturin mitat ja kuvaus puuttuvat:\n"
-"\n"
-"%s\n"
-"\n"
-"Haluatko jatkaa muiden vaunujen ja veturien tuontia tiedostosta?"
+"MSG_GROUP_NONBLANK\tKaikki kentät ryhmittelyikkunassa ovat pakollisia..."
+"\tKaikki kentät ryhmittelyikkunassa ovat pakollisia.\n"
+"Syötä puuttuvat arvot ja kokeile uudelleen."
-#: ../../../../build/xtrkcad/app/help/messages.h:82
-#, c-format
+#: ../../../../build/work/app/help/messages.h:15
msgid ""
-"MSG_CARIMP_MISSING_PARTNO\tThe following car has no Part Number...\tThe "
-"following car has no Part Number\n"
-"\n"
-"%s\n"
-"\n"
-"Do you wish to continue importing other Cars?"
+"MSG_TODSGN_VALUES_GTR_0\tAll values specified in the Turnout Designer must "
+"be...\tAll values specified in the Turnout Designer must be\n"
+"greater than 0. Correct inappropriate values and try again."
msgstr ""
-"MSG_CARIMP_MISSING_PARTNO\tVaunun tai veturin tuotenumero puuttuu...\tVaunun "
-"tai veturin tuotenumero puuttuu:\n"
-"\n"
-"%s\n"
-"\n"
-"Haluatko jatkaa muiden vaunujen ja veturien tuontia tiedostosta?"
+"MSG_TODSGN_VALUES_GTR_0\tRaideosien Suunnittelussa annettujen arvojen..."
+"\tRaideosien Suunnittelussa annettujen arvojen on\n"
+"oltava suurempia kuin 0. Korjaa arvot ja yritä uudelleen."
-#: ../../../../build/xtrkcad/app/help/messages.h:54
-msgid "MSG_CARIMP_NO_DATA\tNo data present in Car Import file."
-msgstr "MSG_CARIMP_NO_DATA\tKalustotiedosto on tyhjä."
+#: ../../../../build/work/app/help/messages.h:16
+#, fuzzy
+msgid "MSG_CURVE_OUT_OF_RANGE\tAngle must be between 0\\u00B0 and 360\\u00B0."
+msgstr "MSG_CURVE_OUT_OF_RANGE\tKulman täytyy olla 0° ja 360° välillä."
-#: ../../../../build/xtrkcad/app/help/messages.h:63
+#: ../../../../build/work/app/help/messages.h:17
+#, c-format
msgid ""
-"MSG_CARPART_DUPNAME\tPart Number for this Manufacturer already exists...."
-"\tPart Number for this Manufacturer already exists.\n"
-"\n"
-"Do you want to update it?"
+"MSG_CUSTMGM_DELETE_CONFIRM\tAre you sure you want to delete the NNN "
+"definition(s)?\tAre you sure you want to delete the\n"
+"%d definition(s)?"
msgstr ""
-"MSG_CARPART_DUPNAME\tTuotekoodi tälle valmistajalle on jo käytössä..."
-"\tTuotekoodi tälle valmistajalle on jo käytössä.\n"
-"\n"
-"Haluatko päivittää sen?"
+"MSG_CUSTMGM_DELETE_CONFIRM\tHaluatko varmasti poistaa NNN kohdetta?"
+"\tHaluatko varmasti poistaa %d kohdetta?"
-#: ../../../../build/xtrkcad/app/help/messages.h:76
-msgid ""
-"MSG_CARPROTO_BADSEGS\tSelected shapes must define a rectangular area ..."
-"\tSelected shapes must define a rectangular\n"
-"area with length greater than height."
-msgstr ""
-"MSG_CARPROTO_BADSEGS\tValittujen muotojen on määriteltävä nelikulmio..."
-"\tValittujen muotojen on määriteltävä nelikulmio,\n"
-"jonka pituus on korkeutta suurempi."
+#: ../../../../build/work/app/help/messages.h:18
+msgid "MSG_WBITMAP_FAILED\tBitmap create or write function failed."
+msgstr "MSG_WBITMAP_FAILED\tBitmap kuvan luonti tai kirjoitus epäonnistui."
-#: ../../../../build/xtrkcad/app/help/messages.h:69
-msgid ""
-"MSG_CARPROTO_DUPNAME\tPrototype name already exists....\tPrototype name "
-"already exists.\n"
-"\n"
-"Do you want to update it?"
-msgstr ""
-"MSG_CARPROTO_DUPNAME\tSaman niminen esikuva on jo olemassa...\tSaman niminen "
-"esikuva on jo olemassa.\n"
-"\n"
-"Haluatko päivittää sen?"
+#: ../../../../build/work/app/help/messages.h:19
+msgid "MSG_BITMAP_TOO_LARGE\tBitmap is too large."
+msgstr "MSG_BITMAP_TOO_LARGE\tBitmap on liian suuri."
-#: ../../../../build/xtrkcad/app/help/messages.h:18
+#: ../../../../build/work/app/help/messages.h:20
msgid "MSG_CHANGE_ELEV_MODE\tCannot change elevation mode."
msgstr "MSG_CHANGE_ELEV_MODE\tKorkeustason muutos ei onnistu."
-#: ../../../../build/xtrkcad/app/help/messages.h:78
-msgid "MSG_COMMAND_DISABLED\tSpecified command disabled."
-msgstr "MSG_COMMAND_DISABLED\tTämä komento ei ole käytössä."
+#: ../../../../build/work/app/help/messages.h:21
+msgid ""
+"MSG_GRID_ENABLE_SPACE_GTR_0\tCannot Enable Grid; spacing must be greater "
+"than 0"
+msgstr ""
+"MSG_GRID_ENABLE_SPACE_GTR_0\tVälin on oltava suurempi kuin 0, jos ruudukko "
+"on käytössä"
-#: ../../../../build/xtrkcad/app/help/messages.h:35
+#: ../../../../build/work/app/help/messages.h:22
+msgid "MSG_LAYER_FREEZE\tCannot freeze current layer"
+msgstr "MSG_LAYER_FREEZE\tAktiivista tasoa ei voi jäädyttää"
+
+#: ../../../../build/work/app/help/messages.h:23
msgid ""
-"MSG_CONN_PARAMS_TOO_SMALL\tConnection parameters reset to minimum values."
+"MSG_CANT_GROUP_BUMPER1\tCannot Group Bumper Track. The track has been "
+"unselected."
msgstr ""
-"MSG_CONN_PARAMS_TOO_SMALL\tLiitosparametrit palautettu pienimpiin arvoihinsa."
+"MSG_CANT_GROUP_BUMPER1\tPäätepuskinta ei voi liittää ryhmään. Raideosan "
+"valinta on poistettu."
-#: ../../../../build/xtrkcad/app/help/messages.h:14
-msgid "MSG_CURVE_OUT_OF_RANGE\tAngle must be between 0° and 360°."
-msgstr "MSG_CURVE_OUT_OF_RANGE\tKulman täytyy olla 0° ja 360° välillä."
+#: ../../../../build/work/app/help/messages.h:24
+msgid "MSG_CANNOT_GROUP_TRACK\tCannot Group selected track."
+msgstr "MSG_CANNOT_GROUP_TRACK\tValittua raideosaa ei voida ryhmitellä."
-#: ../../../../build/xtrkcad/app/help/messages.h:38
-msgid "MSG_CURVE_TOO_LARGE\tCurved track is too large."
-msgstr "MSG_CURVE_TOO_LARGE\tKaareva raide on liian suuri."
+#: ../../../../build/work/app/help/messages.h:25
+msgid "MSG_LAYER_HIDE\tCannot hide current layer"
+msgstr "MSG_LAYER_HIDE\tAktiivista tasoa ei voi piilottaa"
-#: ../../../../build/xtrkcad/app/help/messages.h:33
-#, c-format
-msgid ""
-"MSG_CUSTMGM_CANT_WRITE\tCannot write to parameter file: FILENAME\tCannot "
-"write to parameter file: %s"
+#: ../../../../build/work/app/help/messages.h:26
+msgid "MSG_JOIN_EASEMENTS\tCannot Join; Easements do not align or abut."
msgstr ""
-"MSG_CUSTMGM_CANT_WRITE\tEi voida kirjoittaa parametritiedostoon: TIEDOSTONIMI"
-"\tEi voida kirjoittaa parametritiedostoon: %s"
+"MSG_JOIN_EASEMENTS\tEi voi yhdistää; Kaarreloivennukset eivät ole kohdakkain."
-#: ../../../../build/xtrkcad/app/help/messages.h:15
+#: ../../../../build/work/app/help/messages.h:27
#, c-format
msgid ""
-"MSG_CUSTMGM_DELETE_CONFIRM\tAre you sure you want to delete the NNN "
-"definition(s)?\tAre you sure you want to delete the\n"
-"%d definition(s)?"
+"MSG_TRK_ALREADY_CONN\tFirst|Second track is already connected.\tCannot Join; "
+"%s track is already connected."
msgstr ""
-"MSG_CUSTMGM_DELETE_CONFIRM\tHaluatko varmasti poistaa NNN kohdetta?"
-"\tHaluatko varmasti poistaa %d kohdetta?"
+"MSG_TRK_ALREADY_CONN\tEnsimmäinen|Toinen raide on jo liitetty.\tEi voida "
+"liittää; %s raide on jo liitetty."
-#: ../../../../build/xtrkcad/app/help/messages.h:48
-msgid "MSG_DESC_NOT_VISIBLE\tLabel descriptions not visible"
-msgstr "MSG_DESC_NOT_VISIBLE\tKuvaukset eivät ole näkyvissä"
+#: ../../../../build/work/app/help/messages.h:28
+msgid "MSG_JOIN_TURNTABLE\tCannot join from a turntable, try to a turntable"
+msgstr ""
+"MSG_CANNOT_CHANGE\tKääntöpöydästä raiteeseen ei voi yhdistää. Kokeile "
+"raiteesta kääntöpöytään."
-#: ../../../../build/xtrkcad/app/help/messages.h:66
-#, c-format
-msgid ""
-"MSG_DOMOUSE_BAD_OP\tPlayback: unknown action NNN\tPlayback: unknown action %d"
+#: ../../../../build/work/app/help/messages.h:29
+#, fuzzy
+msgid "MSG_JOIN_CORNU_SAME\tCannot Join; Selected endpoints are on same track."
msgstr ""
-"MSG_DOMOUSE_BAD_OP\tToisto: tuntematon toimenpide NNN\tToisto: tuntematon "
-"toimenpide %d"
+"MSG_JOIN_SAME\tEi voi liittää; valitut päätepisteet ovat samassa raideosassa."
-#: ../../../../build/xtrkcad/app/help/messages.h:42
-msgid "MSG_EP_ON_PATH\tEndpoint already on Path."
-msgstr "MSG_EP_ON_PATH\tPäätepiste on jo reitillä."
+#: ../../../../build/work/app/help/messages.h:30
+msgid "MSG_JOIN_SAME\tCannot Join; Selected endpoints are on same track."
+msgstr ""
+"MSG_JOIN_SAME\tEi voi liittää; valitut päätepisteet ovat samassa raideosassa."
-#: ../../../../build/xtrkcad/app/help/messages.h:19
+#: ../../../../build/work/app/help/messages.h:31
msgid ""
-"MSG_GRID_ENABLE_SPACE_GTR_0\tCannot Enable Grid; spacing must be greater "
-"than 0"
+"MSG_SELECTED_TRACKS_PARALLEL\tCannot Join; Selected tracks are parallel."
msgstr ""
-"MSG_GRID_ENABLE_SPACE_GTR_0\tVälin on oltava suurempi kuin 0, jos ruudukko "
-"on käytössä"
+"MSG_SELECTED_TRACKS_PARALLEL\tEi voida liittää; Valitut raiteet ovat "
+"samansuuntaiset."
+
+#: ../../../../build/work/app/help/messages.h:32
+#, c-format
+msgid ""
+"MSG_PRMFIL_OPEN_NEW\tCannot open New Parameter File: FILENAME\tCannot open "
+"New Parameter File: %s"
+msgstr ""
+"MSG_PRMFIL_OPEN_NEW\tUuden parametritiedoston TIEDOSTONIMI avaaminen ei "
+"onnistu\tUuden parametritiedoston %s avaaminen ei onnistu"
+
+#: ../../../../build/work/app/help/messages.h:33
+msgid "MSG_LAYER_SEL_FROZEN\tCannot select a frozen layer"
+msgstr "MSG_LAYER_SEL_FROZEN\tJäädytettyä tasoa ei voi valita"
-#: ../../../../build/xtrkcad/app/help/messages.h:31
+#: ../../../../build/work/app/help/messages.h:34
msgid ""
"MSG_GRID_SHOW_SPACE_GTR_0\tCannot Show Grid; spacing must be greater than 0"
msgstr ""
"MSG_GRID_SHOW_SPACE_GTR_0\tVälin on oltava suurempi kuin 0, jos ruudukko "
"näytetään"
-#: ../../../../build/xtrkcad/app/help/messages.h:12
+#: ../../../../build/work/app/help/messages.h:35
+#, c-format
+msgid "MSG_CANT_SPLIT_TRK\tCannot split TYPE track\tCannot split %s track"
+msgstr "MSG_CANT_SPLIT_TRK\tRAIDETYYPPI: Ei voi pilkkoa\t%s: Ei voi pilkkoa"
+
+#: ../../../../build/work/app/help/messages.h:36
+#, c-format
msgid ""
-"MSG_GROUP_NONBLANK\tAll fields listed in the Group dialog must contain "
-"data....\tAll fields listed in the Group dialog must contain data.\n"
-"Please enter missing values and try again."
+"MSG_CUSTMGM_CANT_WRITE\tCannot write to parameter file: FILENAME\tCannot "
+"write to parameter file: %s"
msgstr ""
-"MSG_GROUP_NONBLANK\tKaikki kentät ryhmittelyikkunassa ovat pakollisia..."
-"\tKaikki kentät ryhmittelyikkunassa ovat pakollisia.\n"
-"Syötä puuttuvat arvot ja kokeile uudelleen."
+"MSG_CUSTMGM_CANT_WRITE\tEi voida kirjoittaa parametritiedostoon: TIEDOSTONIMI"
+"\tEi voida kirjoittaa parametritiedostoon: %s"
-#: ../../../../build/xtrkcad/app/help/messages.h:9
-msgid "MSG_HELIX_TURNS_GTR_0\tA Helix must have one or more loops of track."
-msgstr "MSG_HELIX_TURNS_GTR_0\tHelixissä on oltava vähintään yksi ratakierros."
+#: ../../../../build/work/app/help/messages.h:37
+msgid "MSG_CARIMP_DUP_INDEX\tCar Index number duplicated."
+msgstr "MSG_CARIMP_DUP_INDEX\tKaksi samaa indeksiä löydetty."
-#: ../../../../build/xtrkcad/app/help/messages.h:47
-#, c-format
+#: ../../../../build/work/app/help/messages.h:38
msgid ""
-"MSG_JOIN_DIFFER_ELEV\tJoining tracks with differing elevations (N.NNN)"
-"\tJoining tracks with differing elevations (%0.2f)"
+"MSG_CONN_PARAMS_TOO_SMALL\tConnection parameters reset to minimum values."
msgstr ""
-"MSG_JOIN_DIFFER_ELEV\tEri korkeuksilla olevien raiteiden liitos (N.NN)\tEri "
-"korkeuksilla olevien raiteiden liitos (%0.2f)."
+"MSG_CONN_PARAMS_TOO_SMALL\tLiitosparametrit palautettu pienimpiin arvoihinsa."
-#: ../../../../build/xtrkcad/app/help/messages.h:24
-msgid "MSG_JOIN_EASEMENTS\tCannot Join; Easements do not align or abut."
+#: ../../../../build/work/app/help/messages.h:39
+msgid "MSG_CANT_PASTE\tCopy/Paste buffer is empty. There is nothing to Paste."
msgstr ""
-"MSG_JOIN_EASEMENTS\tEi voi yhdistää; Kaarreloivennukset eivät ole kohdakkain."
+"MSG_CANT_PASTE\tKopioi/liitä -puskuri on tyhjä. Ei ole mitään liitettävää."
-#: ../../../../build/xtrkcad/app/help/messages.h:27
-msgid "MSG_JOIN_SAME\tCannot Join; Selected endpoints are on same track."
+#: ../../../../build/work/app/help/messages.h:40
+msgid ""
+"MSG_TODSGN_CROSSOVER_TOO_SHORT\tCrossover length is too short. Correct..."
+"\tCrossover length is too short. Correct\n"
+"inappropriate value(s) and try again."
msgstr ""
-"MSG_JOIN_SAME\tEi voi liittää; valitut päätepisteet ovat samassa raideosassa."
+"MSG_TODSGN_CROSSOVER_TOO_SHORT\tSovitettu raideristeys on liian lyhyt. "
+"Tarkasta...\tSovitettu raideristeys on liian lyhyt.\n"
+"Tarkasta arvot ja kokeile uudelleen."
-#: ../../../../build/xtrkcad/app/help/messages.h:26
-msgid "MSG_JOIN_TURNTABLE\tCannot join from a turntable, try to a turntable"
-msgstr ""
-"MSG_CANNOT_CHANGE\tKääntöpöydästä raiteeseen ei voi yhdistää. Kokeile "
-"raiteesta kääntöpöytään."
+#: ../../../../build/work/app/help/messages.h:41
+msgid "MSG_CURVE_TOO_LARGE\tCurved track is too large."
+msgstr "MSG_CURVE_TOO_LARGE\tKaareva raide on liian suuri."
-#: ../../../../build/xtrkcad/app/help/messages.h:10
+#: ../../../../build/work/app/help/messages.h:42
msgid ""
-"MSG_LARGE_FONT\tA large font has been selected....\tA large font has been "
-"selected.\n"
-"Large fonts may a take a while to load.\n"
+"MSG_TODSGN_REPLACE\tDefinition name is already in use. Saving this..."
+"\tDefinition name is already in use. Saving this\n"
+"definition replaces the existing definition.\n"
"\n"
-"Do you wish to continue?"
+"Do you want to continue?"
msgstr ""
-"MSG_LARGE_FONT\tSuurikokoinen kirjasin valittu...\tSuurikokoinen kirjasin "
-"valittu.\n"
-"Suurien kirjasinten lataaminen saattaa kestää kauan.\n"
+"MSG_TODSGN_REPLACE\tNimi on jo käytössä. Tallentamalla...\tNimi on jo "
+"käytössä. Tämän määrittelyn tallentaminen\n"
+"korvaa olemassa olevan saman nimisen määrittelyn.\n"
"\n"
"Haluatko jatkaa?"
-#: ../../../../build/xtrkcad/app/help/messages.h:20
-msgid "MSG_LAYER_FREEZE\tCannot freeze current layer"
-msgstr "MSG_LAYER_FREEZE\tAktiivista tasoa ei voi jäädyttää"
-
-#: ../../../../build/xtrkcad/app/help/messages.h:23
-msgid "MSG_LAYER_HIDE\tCannot hide current layer"
-msgstr "MSG_LAYER_HIDE\tAktiivista tasoa ei voi piilottaa"
-
-#: ../../../../build/xtrkcad/app/help/messages.h:30
-msgid "MSG_LAYER_SEL_FROZEN\tCannot select a frozen layer"
-msgstr "MSG_LAYER_SEL_FROZEN\tJäädytettyä tasoa ei voi valita"
+#: ../../../../build/work/app/help/messages.h:43
+msgid "MSG_SAVE_CHANGES\tDo you want to save the changes made to your Layout?"
+msgstr "MSG_SAVE_CHANGES\tHaluatko tallentaa ratasuunnitelman?"
-#: ../../../../build/xtrkcad/app/help/messages.h:61
-msgid "MSG_MOVE_OUT_OF_BOUNDS\tObject has moved beyond room boundaries."
+#: ../../../../build/work/app/help/messages.h:44
+msgid ""
+"MSG_CARIMP_DUP_COLUMNS\tDuplicate column headers found in Car Import file."
msgstr ""
-"MSG_MOVE_OUT_OF_BOUNDS\tObjekti on siirretty huoneen rajojen ulkopuolelle."
+"MSG_CARIMP_DUP_COLUMNS\tSama sarakeotsikko esiintyy useaan kertaan "
+"kalustotiedostossa."
-#: ../../../../build/xtrkcad/app/help/messages.h:67
-msgid "MSG_MOVE_POINTS_AWAY_CLOSE\tPoints are to close to frog; move away."
+#: ../../../../build/work/app/help/messages.h:45
+msgid "MSG_EP_ON_PATH\tEndpoint already on Path."
+msgstr "MSG_EP_ON_PATH\tPäätepiste on jo reitillä."
+
+#: ../../../../build/work/app/help/messages.h:46
+#, c-format
+msgid ""
+"MSG_UPGRADE_VERSION1\tFile version %ld is greater than supported...\tFile "
+"version %ld is greater than supported\n"
+"version %d. You need to upgrade %s\n"
+"to at least version %s."
msgstr ""
-"MSG_MOVE_POINTS_AWAY_CLOSE\tKielten päät ovat liian lähellä "
-"risteyskappaletta; siirrä kauemmaksi."
+"MSG_UPGRADE_VERSION1\tTiedoston versio %ld on suurempi kuin tuettu..."
+"\tTiedoston versio %ld on suurempi kuin tuettu versio %d\n"
+"%s täytyy päivittää vähintään versioon %s."
-#: ../../../../build/xtrkcad/app/help/messages.h:94
+#: ../../../../build/work/app/help/messages.h:47
+#, c-format
msgid ""
-"MSG_MOVE_POINTS_AWAY_NO_INTERSECTION\tTrack intersection not possible; move "
-"points away from frog."
+"MSG_UPGRADE_VERSION2\tFile version %ld is greater than supported...\tFile "
+"version %ld is greater than supported\n"
+"version %d. You need to upgrade your\n"
+"version of %s"
msgstr ""
-"MSG_MOVE_POINTS_AWAY_NO_INTERSECTION\tRaiteet eivät kohtaa. Siirrä kielten "
-"päät kauemmaksi risteyskappaleesta."
+"MSG_UPGRADE_VERSION2\tTiedoston versio %ld on suurempi kuin...\tTiedoston "
+"versio %ld on suurempi kuin tuettu versio %d.\n"
+"Versiosi %s:sta täytyy päivittää."
-#: ../../../../build/xtrkcad/app/help/messages.h:45
+#: ../../../../build/work/app/help/messages.h:48
+#, fuzzy
msgid ""
-"MSG_MOVE_POINTS_OTHER_SIDE\tFrog angle prevents placement of points...."
-"\tFrog angle prevents placement of points.\n"
-"Move points to opposite side of frog."
+"MSG_MOVE_POINTS_OTHER_SIDE\tFrog angle prevents placement of points. Move "
+"points to opposite side of frog."
msgstr ""
"MSG_MOVE_POINTS_OTHER_SIDE\tVaihdekulma estää kielien päiden asettamisen..."
"\tVaihdekulma estää kielien päiden asettamisen.\n"
"Siirrä kielien päät risteyskappaleen toiselle puolelle."
-#: ../../../../build/xtrkcad/app/help/messages.h:53
+#: ../../../../build/work/app/help/messages.h:49
+msgid "MSG_NO_ROOM_BTW_TRKS\tInsufficient space between existing stall tracks."
+msgstr "MSG_NO_ROOM_BTW_TRKS\tRaiteiden välissä ei ole riittävästi tilaa."
+
+#: ../../../../build/work/app/help/messages.h:50
+#, c-format
msgid ""
-"MSG_NO_CARPROTO\tNo Car Prototypes are defined....\tNo Car Prototypes are "
-"defined.\n"
-"Load a Prototype definition file using the\n"
-"Parameter Files dialog or create a Prototype\n"
-"definition using the Car Prototype dialog."
+"MSG_JOIN_DIFFER_ELEV\tJoining tracks with differing elevations (N."
+"NNN)\tJoining tracks with differing elevations (%0.2f)"
msgstr ""
-"MSG_NO_CARPROTO\tEsikuvia ei ole määritelty...\tEsikuvia ei ole määritelty.\n"
-"Lataa esikuvien määrittely tiedosto Parametritiedostot -ikkunassa\n"
-"tai luo uusi esikuvan määrittely."
+"MSG_JOIN_DIFFER_ELEV\tEri korkeuksilla olevien raiteiden liitos (N.NN)\tEri "
+"korkeuksilla olevien raiteiden liitos (%0.2f)."
+
+#: ../../../../build/work/app/help/messages.h:51
+msgid "MSG_DESC_NOT_VISIBLE\tLabel descriptions not visible"
+msgstr "MSG_DESC_NOT_VISIBLE\tKuvaukset eivät ole näkyvissä"
+
+#: ../../../../build/work/app/help/messages.h:52
+msgid "MSG_OBJECT_TOO_SHORT\tLength of object is too short."
+msgstr "MSG_OBJECT_TOO_SHORT\tPituus on liian lyhyt."
+
+#: ../../../../build/work/app/help/messages.h:53
+#, c-format
+msgid ""
+"MSG_PRINT_MAX_SIZE\tMaximum allowed page size is W x H\tMaximum allowed page "
+"size is %s x %s"
+msgstr ""
+"MSG_PRINT_MAX_SIZE\tSivun maksimikoko on L x K.\tSivun maksimikoko on %s x "
+"%s."
+
+#: ../../../../build/work/app/help/messages.h:54
+#, c-format
+msgid ""
+"MSG_PRMFIL_NO_CONTENTS\tNew Parameter File has no CONTENTS line: FILENAME."
+"\tNew Parameter File has no CONTENTS line: %s"
+msgstr ""
+"MSG_PRMFIL_NO_CONTENTS\tUudessa parametritiedostossa ei ole CONTENTS riviä: "
+"TIEDOSTONIMI.\tUudessa parametritiedostossa ei ole CONTENTS riviä: %s"
-#: ../../../../build/xtrkcad/app/help/messages.h:52
+#: ../../../../build/work/app/help/messages.h:55
msgid ""
"MSG_NO_CARS\tNo Cars are defined for the current scale....\tNo Cars are "
"defined for the current scale.\n"
@@ -5125,23 +5748,45 @@ msgstr ""
"\n"
"Haluatko avata kalustoluettelon?"
-#: ../../../../build/xtrkcad/app/help/messages.h:56
+#: ../../../../build/work/app/help/messages.h:56
+msgid ""
+"MSG_NO_CARPROTO\tNo Car Prototypes are defined....\tNo Car Prototypes are "
+"defined.\n"
+"Load a Prototype definition file using the\n"
+"Parameter Files dialog or create a Prototype\n"
+"definition using the Car Prototype dialog."
+msgstr ""
+"MSG_NO_CARPROTO\tEsikuvia ei ole määritelty...\tEsikuvia ei ole määritelty.\n"
+"Lataa esikuvien määrittely tiedosto Parametritiedostot -ikkunassa\n"
+"tai luo uusi esikuvan määrittely."
+
+#: ../../../../build/work/app/help/messages.h:57
+msgid "MSG_CARIMP_NO_DATA\tNo data present in Car Import file."
+msgstr "MSG_CARIMP_NO_DATA\tKalustotiedosto on tyhjä."
+
+#: ../../../../build/work/app/help/messages.h:58
+msgid "MSG_PRINT_NO_PAGES\tNo pages selected for printing."
+msgstr "MSG_PRINT_NO_PAGES\tYhtään sivua ei ole valittu tulostettavaksi."
+
+#: ../../../../build/work/app/help/messages.h:59
msgid "MSG_NO_PATH_TO_EP\tNo path between Profile and selected endpoint."
msgstr "MSG_NO_PATH_TO_EP\tValituun päätepisteeseen ei ole reittiä."
-#: ../../../../build/xtrkcad/app/help/messages.h:89
-msgid "MSG_NO_REDO\tThere is nothing to redo!"
-msgstr "MSG_NO_REDO\tEi ole mitään uudelleen tehtävää!"
-
-#: ../../../../build/xtrkcad/app/help/messages.h:46
-msgid "MSG_NO_ROOM_BTW_TRKS\tInsufficient space between existing stall tracks."
-msgstr "MSG_NO_ROOM_BTW_TRKS\tRaiteiden välissä ei ole riittävästi tilaa."
+#: ../../../../build/work/app/help/messages.h:60
+#, c-format
+msgid ""
+"MSG_PRMFIL_NO_MAP\tNo Parameter File Map for CONTENTS\tNo Parameter File Map "
+"for %s"
+msgstr ""
+"MSG_PRMFIL_NO_MAP\tParametritiedostolle \"NNN\" ei löydy \"Parameter File Map"
+"\" tietoa.\tParametritiedostolle \"%s\" ei löydy \"Parameter File Map\" "
+"tietoa."
-#: ../../../../build/xtrkcad/app/help/messages.h:58
+#: ../../../../build/work/app/help/messages.h:61
msgid "MSG_NO_SELECTED_TRK\tNo track(s) selected!"
msgstr "MSG_NO_SELECTED_TRK\tEi valittuja raiteita!"
-#: ../../../../build/xtrkcad/app/help/messages.h:59
+#: ../../../../build/work/app/help/messages.h:62
#, c-format
msgid ""
"MSG_NO_TURNOUTS_AVAILABLE\tNo Turnouts|Structures are available.\tNo %s are "
@@ -5150,29 +5795,40 @@ msgstr ""
"MSG_NO_TURNOUTS_AVAILABLE\tRaideosat|Rakennukset eivät ole saatavilla.\t%s "
"eivät ole saatavilla."
-#: ../../../../build/xtrkcad/app/help/messages.h:87
-msgid "MSG_NO_UNCONN_EP\tThere are no unconnected end points for this track"
-msgstr "MSG_NO_UNCONN_EP\tRaiteessa ei ole liittämättömiä päätepisteitä"
-
-#: ../../../../build/xtrkcad/app/help/messages.h:90
-msgid "MSG_NO_UNDO\tThere is nothing to undo!"
-msgstr "MSG_NO_UNDO\tEi ole mitään kumottavaa!"
-
-#: ../../../../build/xtrkcad/app/help/messages.h:49
-msgid "MSG_OBJECT_TOO_SHORT\tLength of object is too short."
-msgstr "MSG_OBJECT_TOO_SHORT\tPituus on liian lyhyt."
+#: ../../../../build/work/app/help/messages.h:63
+msgid ""
+"MSG_CARDESC_VALUE_ZERO\tNumeric values on the Car Description...\tNumeric "
+"values on the Car Description\n"
+"dialog must be greater than 0."
+msgstr ""
+"MSG_CARDESC_VALUE_ZERO\tVaunun/veturin määrittelyn numeeristen arvojen..."
+"\tVaunun/veturin määrittelyn numeeristen arvojen täytyy olla suurempia kuin "
+"0."
-#: ../../../../build/xtrkcad/app/help/messages.h:74
-msgid "MSG_OUT_OF_BOUNDS\tSelected page is out of bounds."
-msgstr "MSG_OUT_OF_BOUNDS\tSivu ylittää rajat."
+#: ../../../../build/work/app/help/messages.h:64
+msgid "MSG_MOVE_OUT_OF_BOUNDS\tObject has moved beyond room boundaries."
+msgstr ""
+"MSG_MOVE_OUT_OF_BOUNDS\tObjekti on siirretty huoneen rajojen ulkopuolelle."
-#: ../../../../build/xtrkcad/app/help/messages.h:62
+#: ../../../../build/work/app/help/messages.h:65
msgid "MSG_PARALLEL_SEP_GTR_0\tParallel separation must be greater than 0."
msgstr ""
"MSG_PARALLEL_SEP_GTR_0\tRinnakkaisten raiteiden välin on oltava suurempi "
"kuin 0."
-#: ../../../../build/xtrkcad/app/help/messages.h:64
+#: ../../../../build/work/app/help/messages.h:66
+msgid ""
+"MSG_CARPART_DUPNAME\tPart Number for this Manufacturer already exists...."
+"\tPart Number for this Manufacturer already exists.\n"
+"\n"
+"Do you want to update it?"
+msgstr ""
+"MSG_CARPART_DUPNAME\tTuotekoodi tälle valmistajalle on jo käytössä..."
+"\tTuotekoodi tälle valmistajalle on jo käytössä.\n"
+"\n"
+"Haluatko päivittää sen?"
+
+#: ../../../../build/work/app/help/messages.h:67
#, c-format
msgid ""
"MSG_PLAYBACK_LISTENTRY\tPlayback: Cannot find list entry: NAME\tPlayback: "
@@ -5181,7 +5837,7 @@ msgstr ""
"MSG_PLAYBACK_LISTENTRY\tMakrojen toisto: Luettelosta ei löydy: ...\tMakrojen "
"toisto: Luettelosta ei löydy: %s"
-#: ../../../../build/xtrkcad/app/help/messages.h:65
+#: ../../../../build/work/app/help/messages.h:68
#, c-format
msgid ""
"MSG_PLAYBACK_VERSION_UPGRADE\tPlayback file version %ld is...\tPlayback file "
@@ -5193,99 +5849,41 @@ msgstr ""
"tiedoston versio %ld on suurempi kuin tuettu versio %d\n"
"Versiosi %s:sta täytyy päivittää."
-#: ../../../../build/xtrkcad/app/help/messages.h:93
-msgid "MSG_POINT_INSIDE_TURNTABLE\tTrack endpoint is within turntable radius."
-msgstr ""
-"MSG_POINT_INSIDE_TURNTABLE\tRaiteen päätepiste on kääntöpöydän säteen "
-"sisäpuolella."
-
-#: ../../../../build/xtrkcad/app/help/messages.h:68
-msgid "MSG_POLY_SHAPES_3_SIDES\tPoly shapes must have at least 3 sides."
-msgstr "MSG_POLY_SHAPES_3_SIDES\tMonikulmiossa on oltava vähintään 3 sivua."
-
-#: ../../../../build/xtrkcad/app/help/messages.h:50
+#: ../../../../build/work/app/help/messages.h:69
#, c-format
msgid ""
-"MSG_PRINT_MAX_SIZE\tMaximum allowed page size is W x H\tMaximum allowed page "
-"size is %s x %s"
-msgstr ""
-"MSG_PRINT_MAX_SIZE\tSivun maksimikoko on L x K.\tSivun maksimikoko on %s x %"
-"s."
-
-#: ../../../../build/xtrkcad/app/help/messages.h:55
-msgid "MSG_PRINT_NO_PAGES\tNo pages selected for printing."
-msgstr "MSG_PRINT_NO_PAGES\tYhtään sivua ei ole valittu tulostettavaksi."
-
-#: ../../../../build/xtrkcad/app/help/messages.h:51
-#, c-format
-msgid ""
-"MSG_PRMFIL_NO_CONTENTS\tNew Parameter File has no CONTENTS line: FILENAME."
-"\tNew Parameter File has no CONTENTS line: %s"
+"MSG_DOMOUSE_BAD_OP\tPlayback: unknown action NNN\tPlayback: unknown action %d"
msgstr ""
-"MSG_PRMFIL_NO_CONTENTS\tUudessa parametritiedostossa ei ole CONTENTS riviä: "
-"TIEDOSTONIMI.\tUudessa parametritiedostossa ei ole CONTENTS riviä: %s"
+"MSG_DOMOUSE_BAD_OP\tToisto: tuntematon toimenpide NNN\tToisto: tuntematon "
+"toimenpide %d"
-#: ../../../../build/xtrkcad/app/help/messages.h:57
-#, c-format
-msgid ""
-"MSG_PRMFIL_NO_MAP\tNo Parameter File Map for CONTENTS\tNo Parameter File Map "
-"for %s"
+#: ../../../../build/work/app/help/messages.h:70
+msgid "MSG_MOVE_POINTS_AWAY_CLOSE\tPoints are to close to frog; move away."
msgstr ""
-"MSG_PRMFIL_NO_MAP\tParametritiedostolle \"NNN\" ei löydy \"Parameter File Map"
-"\" tietoa.\tParametritiedostolle \"%s\" ei löydy \"Parameter File Map\" "
-"tietoa."
+"MSG_MOVE_POINTS_AWAY_CLOSE\tKielten päät ovat liian lähellä "
+"risteyskappaletta; siirrä kauemmaksi."
-#: ../../../../build/xtrkcad/app/help/messages.h:29
-#, c-format
-msgid ""
-"MSG_PRMFIL_OPEN_NEW\tCannot open New Parameter File: FILENAME\tCannot open "
-"New Parameter File: %s"
-msgstr ""
-"MSG_PRMFIL_OPEN_NEW\tUuden parametritiedoston TIEDOSTONIMI avaaminen ei "
-"onnistu\tUuden parametritiedoston %s avaaminen ei onnistu"
+#: ../../../../build/work/app/help/messages.h:71
+msgid "MSG_POLY_SHAPES_3_SIDES\tPoly shapes must have at least 3 sides."
+msgstr "MSG_POLY_SHAPES_3_SIDES\tMonikulmiossa on oltava vähintään 3 sivua."
-#: ../../../../build/xtrkcad/app/help/messages.h:101
-#, c-format
+#: ../../../../build/work/app/help/messages.h:72
msgid ""
-"MSG_PROG_CORRUPTED\tCritical file damaged!...\tCritical file damaged!\n"
-"\n"
-"%s is corrupt.\n"
+"MSG_CARPROTO_DUPNAME\tPrototype name already exists....\tPrototype name "
+"already exists.\n"
"\n"
-"Please reinstall software. "
+"Do you want to update it?"
msgstr ""
-"MSG_PROG_CORRUPTED\tKriittinen tiedosto on vaurioitunut!...\tKriittinen "
-"tiedosto on vaurioitunut!\n"
-"\n"
-"%s on korruptoitunut.\n"
+"MSG_CARPROTO_DUPNAME\tSaman niminen esikuva on jo olemassa...\tSaman niminen "
+"esikuva on jo olemassa.\n"
"\n"
-"Asenna ohjelmisto uudelleen."
-
-#: ../../../../build/xtrkcad/app/help/messages.h:102
-#, c-format
-msgid "MSG_PT_IS_NOT_TRK\t[X Y] is not a track\t[%s %s] is not a track."
-msgstr "MSG_PT_IS_NOT_TRK\t[X Y] ei ole raide\t[%s %s] ei ole raide."
-
-#: ../../../../build/xtrkcad/app/help/messages.h:88
-msgid "MSG_PULL_FEW_SECTIONS\tThere are too few sections in this loop."
-msgstr ""
-"MSG_PULL_FEW_SECTIONS\tSilmukassa tai sivuraiteessa on liian vähän raideosia."
+"Haluatko päivittää sen?"
-#: ../../../../build/xtrkcad/app/help/messages.h:70
+#: ../../../../build/work/app/help/messages.h:73
msgid "MSG_RADIUS_GTR_0\tRadius must be greater than 0."
msgstr "MSG_RADIUS_GTR_0\tSäteen on oltava suurempi kuin 0."
-#: ../../../../build/xtrkcad/app/help/messages.h:96
-#, c-format
-msgid ""
-"MSG_RADIUS_LSS_EASE_MIN\tTrack radius (N.NNN) is smaller than easement "
-"minimum (N.NNN).\tTrack radius (%s) is smaller than\n"
-"easement minimum (%s)."
-msgstr ""
-"MSG_RADIUS_LSS_EASE_MIN\tRaiteen säde (N.NNN) on pienempi kuin "
-"kaarreloivennuksen pienin sallittu säde (N.NNN).\tRaiteen säde (%s) on "
-"pienempi kuin kaarreloivennuksen pienin sallittu säde (%s)."
-
-#: ../../../../build/xtrkcad/app/help/messages.h:71
+#: ../../../../build/work/app/help/messages.h:74
#, c-format
msgid ""
"MSG_RESCALE_TOO_BIG\tRescaled tracks do not fit within layouts room "
@@ -5298,52 +5896,122 @@ msgstr ""
"määritellyn huoneen rajojen sisäpuolelle. Huoneen koon\n"
"pitäisi olla vähintään %s x %s (korkeus x leveys)."
-#: ../../../../build/xtrkcad/app/help/messages.h:40
-msgid "MSG_SAVE_CHANGES\tDo you want to save the changes made to your Layout?"
-msgstr "MSG_SAVE_CHANGES\tHaluatko tallentaa ratasuunnitelman?"
-
-#: ../../../../build/xtrkcad/app/help/messages.h:98
+#: ../../../../build/work/app/help/messages.h:75
msgid ""
-"MSG_SEGMENTS_DIFFER\tTurnout definition contains non-track segments...."
-"\tTurnout definition contains non-track segments.\n"
-"\n"
-"Do you want to include them in this update?"
+"MSG_CARIMP_MISSING_COLUMNS\tRequired column headers missing from Car Import "
+"file."
msgstr ""
-"MSG_SEGMENTS_DIFFER\tRaideosan määrittelyssä on osia, jotka eivät ole "
-"raiteita...\tRaideosan määrittelyssä on osia, jotka eivät ole raiteita.\n"
-"\n"
-"Haluatko sisällyttää ne?"
+"MSG_CARIMP_MISSING_COLUMNS\tKalustotiedostosta puuttuu tarpeellisia "
+"sarakkeiden otsikoita."
-#: ../../../../build/xtrkcad/app/help/messages.h:28
+#: ../../../../build/work/app/help/messages.h:76
+#, c-format
msgid ""
-"MSG_SELECTED_TRACKS_PARALLEL\tCannot Join; Selected tracks are parallel."
+"MSG_2ND_TRK_NOT_SEL_UNSEL\tSecond track must be selected|unselected\tSecond "
+"track must be %s."
msgstr ""
-"MSG_SELECTED_TRACKS_PARALLEL\tEi voida liittää; Valitut raiteet ovat "
-"samansuuntaiset."
+"MSG_2ND_TRK_NOT_SEL_UNSEL\tToisen raiteen on oltava valittu|valitsematta"
+"\tToisen raiteen on oltava %s."
+
+#: ../../../../build/work/app/help/messages.h:77
+msgid "MSG_OUT_OF_BOUNDS\tSelected page is out of bounds."
+msgstr "MSG_OUT_OF_BOUNDS\tSivu ylittää rajat."
-#: ../../../../build/xtrkcad/app/help/messages.h:75
+#: ../../../../build/work/app/help/messages.h:78
msgid "MSG_SEL_POS_FIRST\tSelect position prior to entering Text."
msgstr "MSG_SEL_POS_FIRST\tValitse sijainti ennen tekstin syöttämistä."
-#: ../../../../build/xtrkcad/app/help/messages.h:8
+#: ../../../../build/work/app/help/messages.h:79
msgid ""
-"MSG_SEL_TRK_FROZEN\tA frozen layer contains selected...\tA frozen layer "
-"contains selected\n"
-"track. Command cannot be executed."
+"MSG_CARPROTO_BADSEGS\tSelected shapes must define a rectangular area ..."
+"\tSelected shapes must define a rectangular\n"
+"area with length greater than height."
msgstr ""
-"MSG_SEL_TRK_FROZEN\tValittu raide on jäädytetyllä tasolla...\tValittu raide "
-"on jäädytetyllä tasolla.\n"
-"Komentoa ei voida suorittaa."
+"MSG_CARPROTO_BADSEGS\tValittujen muotojen on määriteltävä nelikulmio..."
+"\tValittujen muotojen on määriteltävä nelikulmio,\n"
+"jonka pituus on korkeutta suurempi."
-#: ../../../../build/xtrkcad/app/help/messages.h:80
-msgid "MSG_SPLIT_PATH_NOT_UNIQUE\tSplit position not on unique path"
+#: ../../../../build/work/app/help/messages.h:80
+#, fuzzy
+msgid ""
+"MSG_TOO_FAR_APART_DIVERGE\tSelected tracks deviate too much or are too far "
+"apart from each other."
msgstr ""
+"MSG_TOO_FAR_APART_DIVERGE\tValitut raiteet poikkeavat liikaa...\tValitut "
+"raiteet poikkeavat liikaa toisistaan\n"
+"tai ovat liian kaukana toisistaan."
+
+#: ../../../../build/work/app/help/messages.h:81
+msgid "MSG_COMMAND_DISABLED\tSpecified command disabled."
+msgstr "MSG_COMMAND_DISABLED\tTämä komento ei ole käytössä."
-#: ../../../../build/xtrkcad/app/help/messages.h:79
+#: ../../../../build/work/app/help/messages.h:82
msgid "MSG_SPLIT_POS_BTW_MERGEPTS\tSplit position between Turnout Points"
msgstr ""
-#: ../../../../build/xtrkcad/app/help/messages.h:85
+#: ../../../../build/work/app/help/messages.h:83
+msgid "MSG_SPLIT_PATH_NOT_UNIQUE\tSplit position not on unique path"
+msgstr ""
+
+#: ../../../../build/work/app/help/messages.h:84
+#, c-format
+msgid ""
+"MSG_CARIMP_MISSING_DIMS\tThe following car has no dimensions and a...\tThe "
+"following car has no dimensions and a\n"
+"Car Part description can not be found.\n"
+"\n"
+"%s\n"
+"\n"
+"Do you wish to continue importing other Cars?"
+msgstr ""
+"MSG_CARIMP_MISSING_DIMS\tVaunun tai veturin mitat ja kuvaus puuttuvat..."
+"\tVaunun tai veturin mitat ja kuvaus puuttuvat:\n"
+"\n"
+"%s\n"
+"\n"
+"Haluatko jatkaa muiden vaunujen ja veturien tuontia tiedostosta?"
+
+#: ../../../../build/work/app/help/messages.h:85
+#, c-format
+msgid ""
+"MSG_CARIMP_MISSING_PARTNO\tThe following car has no Part Number...\tThe "
+"following car has no Part Number\n"
+"\n"
+"%s\n"
+"\n"
+"Do you wish to continue importing other Cars?"
+msgstr ""
+"MSG_CARIMP_MISSING_PARTNO\tVaunun tai veturin tuotenumero puuttuu...\tVaunun "
+"tai veturin tuotenumero puuttuu:\n"
+"\n"
+"%s\n"
+"\n"
+"Haluatko jatkaa muiden vaunujen ja veturien tuontia tiedostosta?"
+
+#: ../../../../build/work/app/help/messages.h:86
+#, c-format
+msgid ""
+"MSG_CARIMP_IGNORED_COLUMN\tThe following column in the Car Import file will "
+"be ignored:...\tThe following column in the Car Import file will be "
+"ignored:\n"
+"\n"
+"%s"
+msgstr ""
+"MSG_CARIMP_IGNORED_COLUMN\tSeuraava kalustotiedoston sarake jätetään "
+"huomiotta:...\tSeuraava kalustotiedoston sarake jätetään huomiotta:\n"
+"\n"
+"%s"
+
+#: ../../../../build/work/app/help/messages.h:87
+#, fuzzy
+msgid ""
+"MSG_CANT_MOVE_UNDER_TRAIN\tThe position of a turnout or turntable cannot be "
+"changed while occupied by a train."
+msgstr ""
+"MSG_CANT_MOVE_UNDER_TRAIN\tVaihteita tai kääntöpöytää ei voi kääntää..."
+"\tVaihteita tai kääntöpöytää ei voi kääntää junan ollessa päällä."
+
+#: ../../../../build/work/app/help/messages.h:88
msgid ""
"MSG_STRUCT_NO_STRUCTS\tThere are no structures to choose from in the "
"structure...\tThere are no structures to choose from in the structure\n"
@@ -5357,108 +6025,108 @@ msgstr ""
"<Tiedosto|Parametritiedostot> valikosta ladataksesi\n"
"parametritiedostoja tai luo uusi rakennus Ryhmittele komennolla."
-#: ../../../../build/xtrkcad/app/help/messages.h:37
+#: ../../../../build/work/app/help/messages.h:89
+#, fuzzy
msgid ""
-"MSG_TODSGN_CROSSOVER_TOO_SHORT\tCrossover length is too short. Correct..."
-"\tCrossover length is too short. Correct\n"
-"inappropriate value(s) and try again."
+"MSG_TURNOUT_NO_TURNOUT\tThere are no turnouts to choose from in the "
+"turnout...\tThere are no turnouts to choose from in the turnout\n"
+"selection list. Please check your SCALE, select the\n"
+"<Manage|Turnout Designer> menu to enter a new turnout\n"
+"or select the <File|Parameter Files> menu to load a\n"
+"Parameter File"
msgstr ""
-"MSG_TODSGN_CROSSOVER_TOO_SHORT\tSovitettu raideristeys on liian lyhyt. "
-"Tarkasta...\tSovitettu raideristeys on liian lyhyt.\n"
-"Tarkasta arvot ja kokeile uudelleen."
+"MSG_TURNOUT_NO_TURNOUT\tRaideosien valintaluettelossa ei ole yhtään..."
+"\tRaideosien valintaluettelossa ei ole yhtään raideosaa\n"
+"valittavissa. Tarkasta mittakaava, valitse\n"
+"<Muokkaa|Raideosien suunnittelu> valikko lisätäksesi uusi raideosa\n"
+"tai valitse <Tiedosto|Parametritiedostot> valikko ladataksesi\n"
+"parametritiedoston."
-#: ../../../../build/xtrkcad/app/help/messages.h:11
-msgid ""
-"MSG_TODSGN_DESC_NONBLANK\tAll description fields present in the Turnout..."
-"\tAll description fields present in the Turnout\n"
-"Designer must contain appropriate information.\n"
-"Correct inappropriate values and try again."
-msgstr ""
-"MSG_TODSGN_DESC_NONBLANK\tRaideosien Suunnittelu -dialogin kaikissa "
-"kentissä...\tRaideosien Suunnittelu -dialogin kaikissa kentissä\n"
-"on oltava asianmukaiset arvot.\n"
-"Korjaa arvot ja kokeile uudelleen."
+#: ../../../../build/work/app/help/messages.h:90
+msgid "MSG_NO_UNCONN_EP\tThere are no unconnected end points for this track"
+msgstr "MSG_NO_UNCONN_EP\tRaiteessa ei ole liittämättömiä päätepisteitä"
-#: ../../../../build/xtrkcad/app/help/messages.h:39
-msgid ""
-"MSG_TODSGN_REPLACE\tDefinition name is already in use. Saving this..."
-"\tDefinition name is already in use. Saving this\n"
-"definition replaces the existing definition.\n"
-"\n"
-"Do you want to continue?"
+#: ../../../../build/work/app/help/messages.h:91
+msgid "MSG_PULL_FEW_SECTIONS\tThere are too few sections in this loop."
msgstr ""
-"MSG_TODSGN_REPLACE\tNimi on jo käytössä. Tallentamalla...\tNimi on jo "
-"käytössä. Tämän määrittelyn tallentaminen\n"
-"korvaa olemassa olevan saman nimisen määrittelyn.\n"
-"\n"
-"Haluatko jatkaa?"
+"MSG_PULL_FEW_SECTIONS\tSilmukassa tai sivuraiteessa on liian vähän raideosia."
-#: ../../../../build/xtrkcad/app/help/messages.h:13
-msgid ""
-"MSG_TODSGN_VALUES_GTR_0\tAll values specified in the Turnout Designer must "
-"be...\tAll values specified in the Turnout Designer must be\n"
-"greater than 0. Correct inappropriate values and try again."
-msgstr ""
-"MSG_TODSGN_VALUES_GTR_0\tRaideosien Suunnittelussa annettujen arvojen..."
-"\tRaideosien Suunnittelussa annettujen arvojen on\n"
-"oltava suurempia kuin 0. Korjaa arvot ja yritä uudelleen."
+#: ../../../../build/work/app/help/messages.h:92
+msgid "MSG_NO_REDO\tThere is nothing to redo!"
+msgstr "MSG_NO_REDO\tEi ole mitään uudelleen tehtävää!"
-#: ../../../../build/xtrkcad/app/help/messages.h:91
+#: ../../../../build/work/app/help/messages.h:93
+msgid "MSG_NO_UNDO\tThere is nothing to undo!"
+msgstr "MSG_NO_UNDO\tEi ole mitään kumottavaa!"
+
+#: ../../../../build/work/app/help/messages.h:94
msgid "MSG_TOOMANYSEGSINGROUP\tToo many segments in Group."
msgstr "MSG_TOOMANYSEGSINGROUP\tRyhmässä on liian monta lohkoa."
-#: ../../../../build/xtrkcad/app/help/messages.h:77
-msgid ""
-"MSG_TOO_FAR_APART_DIVERGE\tSelected tracks deviate too much or...\tSelected "
-"tracks deviate too much or\n"
-"are too far apart from each other."
+#: ../../../../build/work/app/help/messages.h:95
+msgid "MSG_CANNOT_CHANGE\tTrack cannot be changed."
+msgstr "MSG_CANNOT_CHANGE\tRaidetta ei voi muuttaa."
+
+#: ../../../../build/work/app/help/messages.h:96
+msgid "MSG_POINT_INSIDE_TURNTABLE\tTrack endpoint is within turntable radius."
msgstr ""
-"MSG_TOO_FAR_APART_DIVERGE\tValitut raiteet poikkeavat liikaa...\tValitut "
-"raiteet poikkeavat liikaa toisistaan\n"
-"tai ovat liian kaukana toisistaan."
+"MSG_POINT_INSIDE_TURNTABLE\tRaiteen päätepiste on kääntöpöydän säteen "
+"sisäpuolella."
-#: ../../../../build/xtrkcad/app/help/messages.h:25
-#, c-format
+#: ../../../../build/work/app/help/messages.h:97
msgid ""
-"MSG_TRK_ALREADY_CONN\tFirst|Second track is already connected.\tCannot Join; "
-"%s track is already connected."
+"MSG_MOVE_POINTS_AWAY_NO_INTERSECTION\tTrack intersection not possible; move "
+"points away from frog."
msgstr ""
-"MSG_TRK_ALREADY_CONN\tEnsimmäinen|Toinen raide on jo liitetty.\tEi voida "
-"liittää; %s raide on jo liitetty."
+"MSG_MOVE_POINTS_AWAY_NO_INTERSECTION\tRaiteet eivät kohtaa. Siirrä kielten "
+"päät kauemmaksi risteyskappaleesta."
-#: ../../../../build/xtrkcad/app/help/messages.h:95
+#: ../../../../build/work/app/help/messages.h:98
#, c-format
msgid ""
"MSG_TRK_TOO_SHORT\tTrack is too short by N.NNN\t%strack is too short by %0.3f"
msgstr ""
"MSG_TRK_TOO_SHORT\tRaide on N.NNN liian lyhyt\t%sraide on %0.3f liian lyhyt"
-#: ../../../../build/xtrkcad/app/help/messages.h:86
+#: ../../../../build/work/app/help/messages.h:99
+#, fuzzy, c-format
msgid ""
-"MSG_TURNOUT_NO_TURNOUT\tThere are no turnouts to choose from in the "
-"turnout...\tThere are no turnouts to choose from in the turnout\n"
-"selection list. Please check your SCALE, select the\n"
-"<Add|Turnout Designer> menu to enter a new turnout\n"
-"or select the <File|Parameter Files> menu to load a\n"
-"Parameter File"
+"MSG_RADIUS_LSS_EASE_MIN\tTrack radius (N.NNN) is smaller than easement "
+"minimum (N.NNN).\tTrack radius (%s) is smaller than easement minimum (%s)."
msgstr ""
-"MSG_TURNOUT_NO_TURNOUT\tRaideosien valintaluettelossa ei ole yhtään..."
-"\tRaideosien valintaluettelossa ei ole yhtään raideosaa\n"
-"valittavissa. Tarkasta mittakaava, valitse\n"
-"<Muokkaa|Raideosien suunnittelu> valikko lisätäksesi uusi raideosa\n"
-"tai valitse <Tiedosto|Parametritiedostot> valikko ladataksesi\n"
-"parametritiedoston."
+"MSG_RADIUS_LSS_EASE_MIN\tRaiteen säde (N.NNN) on pienempi kuin "
+"kaarreloivennuksen pienin sallittu säde (N.NNN).\tRaiteen säde (%s) on "
+"pienempi kuin kaarreloivennuksen pienin sallittu säde (%s)."
-#: ../../../../build/xtrkcad/app/help/messages.h:99
+#: ../../../../build/work/app/help/messages.h:100
+msgid ""
+"MSG_CANT_MODIFY_FROZEN_TRK\tTracks in a frozen layer cannot be modified."
+msgstr ""
+"MSG_CANT_MODIFY_FROZEN_TRK\tJäädytetyllä tasolla olevia raiteita ei voi "
+"muokata."
+
+#: ../../../../build/work/app/help/messages.h:101
+msgid ""
+"MSG_SEGMENTS_DIFFER\tTurnout definition contains non-track segments...."
+"\tTurnout definition contains non-track segments.\n"
+"\n"
+"Do you want to include them in this update?"
+msgstr ""
+"MSG_SEGMENTS_DIFFER\tRaideosan määrittelyssä on osia, jotka eivät ole "
+"raiteita...\tRaideosan määrittelyssä on osia, jotka eivät ole raiteita.\n"
+"\n"
+"Haluatko sisällyttää ne?"
+
+#: ../../../../build/work/app/help/messages.h:102
msgid "MSG_TURNTABLE_DIAM_GTR_0\tTurntable diameter must greater than 0."
msgstr ""
"MSG_TURNTABLE_DIAM_GTR_0\tKääntöpöydän halkaisijan on oltava suurempi kuin 0."
-#: ../../../../build/xtrkcad/app/help/messages.h:100
+#: ../../../../build/work/app/help/messages.h:103
#, c-format
msgid ""
-"MSG_UNDO_ASSERT\tUndo assertion failure %s:%d...\tUndo assertion failure %s:%"
-"d\n"
+"MSG_UNDO_ASSERT\tUndo assertion failure %s:%d...\tUndo assertion failure %s:"
+"%d\n"
"Val = %ld(%lx)\n"
"%s\n"
"Please report this error to the XTrackCAD project development team at "
@@ -5471,3422 +6139,3226 @@ msgstr ""
"Ole ystävällinen ja ilmoita tästä virheestä XTrackCAD projektin "
"kehitysryhmälle SourceForge.net:ssä."
-#: ../../../../build/xtrkcad/app/help/messages.h:43
-#, c-format
+#: ../../../../build/work/app/help/messages.h:104
+#, fuzzy, c-format
msgid ""
-"MSG_UPGRADE_VERSION1\tFile version %ld is greater than supported...\tFile "
-"version %ld is greater than supported\n"
-"version %d. You need to upgrade %s\n"
-"to at least version %s."
+"MSG_PROG_CORRUPTED\tCritical file damaged!...\tCritical file damaged!\n"
+"\n"
+"%s is corrupt.\n"
+"\n"
+"Please reinstall software."
msgstr ""
-"MSG_UPGRADE_VERSION1\tTiedoston versio %ld on suurempi kuin tuettu..."
-"\tTiedoston versio %ld on suurempi kuin tuettu versio %d\n"
-"%s täytyy päivittää vähintään versioon %s."
+"MSG_PROG_CORRUPTED\tKriittinen tiedosto on vaurioitunut!...\tKriittinen "
+"tiedosto on vaurioitunut!\n"
+"\n"
+"%s on korruptoitunut.\n"
+"\n"
+"Asenna ohjelmisto uudelleen."
-#: ../../../../build/xtrkcad/app/help/messages.h:44
+#: ../../../../build/work/app/help/messages.h:105
#, c-format
+msgid "MSG_PT_IS_NOT_TRK\t[X Y] is not a track\t[%s %s] is not a track."
+msgstr "MSG_PT_IS_NOT_TRK\t[X Y] ei ole raide\t[%s %s] ei ole raide."
+
+#: ../../../../build/work/app/help/messages.h:106
msgid ""
-"MSG_UPGRADE_VERSION2\tFile version %ld is greater than supported...\tFile "
-"version %ld is greater than supported\n"
-"version %d. You need to upgrade your\n"
-"version of %s"
+"MSG_BITMAP_SIZE_WARNING\tYou have specified a large Bitmap....\tYou have "
+"specified a large Bitmap.\n"
+"\n"
+"Are you sure you want to continue?"
msgstr ""
-"MSG_UPGRADE_VERSION2\tTiedoston versio %ld on suurempi kuin...\tTiedoston "
-"versio %ld on suurempi kuin tuettu versio %d.\n"
-"Versiosi %s:sta täytyy päivittää."
-
-#: ../../../../build/xtrkcad/app/help/messages.h:16
-msgid "MSG_WBITMAP_FAILED\tBitmap create or write function failed."
-msgstr "MSG_WBITMAP_FAILED\tBitmap kuvan luonti tai kirjoitus epäonnistui."
-
-#: ../bin/ctrain.c:2538
-msgid "MU Master"
-msgstr "Vetovastuussa"
-
-#: ../bin/dlayer.c:344 ../bin/dlayer.c:707 ../bin/dlayer.c:717
-#: ../bin/dlayer.c:761 ../bin/dlayer.c:936
-msgid "Main"
-msgstr "Päätaso"
-
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:163
-msgid "Main drawing canvas"
-msgstr "Piirtoalue"
-
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:161
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:162
-msgid "Main layout canvas"
-msgstr "Piirtoalue"
-
-#: ../bin/misc.c:2307
-msgid "Main window"
-msgstr "Pääikkuna"
+"MSG_BITMAP_SIZE_WARNING\tOlet määritellyt suuren Bitmap kuvan...\tOlet "
+"määritellyt suuren Bitmap kuvan.\n"
+"\n"
+"Haluatko varmasti jatkaa?"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:452
-msgid "Make the commands sticky"
-msgstr "Hyväksy asetukset ja sulje ikkuna"
+#: ../../../../build/work/app/help/messages.h:107
+#, c-format
+msgid "Are you sure you want to delete these %d car(s)?"
+msgstr "Haluatko varmasti poistaa nämä %d vaunua/veturia?"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:18
-msgid "Manage your Car and Loco Inventory"
-msgstr "Hallinnoi vaunu- ja veturiluetteloa"
+#: ../../../../build/work/app/help/messages.h:108
+#, c-format
+msgid ""
+"Cannot open %s file:\n"
+"%s:%s"
+msgstr ""
+"Tiedostoa %s ei voida avata:\n"
+"%s: %s"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:33
-msgid "Manipulate Custom designer entries"
-msgstr "Itse määriteltyjen raideosien, veturien ja vaunujen hallinta"
+#: ../../../../build/work/app/help/messages.h:109
+#, c-format
+msgid "Unrecognized Option: %s"
+msgstr "Tunnistamaton valinta: %s"
-#: ../bin/ctrain.c:724
-msgid "Manual Stop"
-msgstr "Pysäytetty"
+#: ../../../../build/work/app/help/messages.h:110
+#, c-format
+msgid ""
+"End-Of-Line is unexpected in a quoted field.\n"
+"%s\n"
+"\n"
+"Do you want to continue reading the file?"
+msgstr ""
+"Odottamaton rivin loppu lainausmerkkien sisällä.\n"
+"%s\n"
+"\n"
+"Haluatko jatkaa tiedoston lukemista?"
-#: ../bin/doption.c:196
-msgid "Manuf"
-msgstr "Valmistaja"
+#: ../../../../build/work/app/help/messages.h:111
+#, c-format
+msgid ""
+"A comma was expected after this quoted field.\n"
+"%s\n"
+"\n"
+"Do you want to continue reading the file?"
+msgstr ""
+"Odotettiin pilkkua tämän kentän jälkeen.\n"
+"%s\n"
+"\n"
+"Haluatko jatkaa tiedoston lukemista?"
-#: ../bin/doption.c:248
-msgid "Manuf/Proto"
-msgstr "Valmistaja/Esikuva"
+#: ../../../../build/work/app/help/messages.h:112
+#, c-format
+msgid ""
+"Error \\\\\"%s\\\\\" occurred while writing %s.\n"
+"Please check disk space and system status."
+msgstr ""
+"Virhe \\\\\"%s\\\\\" tapahtui kirjoitettaessa %s.\n"
+"Tarkasta levytila ja järjestelmän tila."
-#: ../bin/doption.c:249
-msgid "Manuf/Proto/Part Number"
-msgstr "Valmistaja/Esikuva/Tuotekoodi"
+#: ../../../../build/work/app/help/messages.h:113
+#, fuzzy, c-format
+msgid ""
+"At least one path for the Turnout T%d does not\n"
+"terminate on an endpoint. Such a track cannot be grouped.\n"
+"The track has been unselected."
+msgstr ""
+"Ainakin yksi raideosan T%d reiteistä loppuu muuhun kuin\n"
+"päätepisteeseen. Tällaista raideosaa ei voi ryhmitellä.\n"
+"Raideosan valinta on poistettu."
-#: ../bin/doption.c:250
-msgid "Manuf/Proto/Partno/Item"
-msgstr "Valmistaja/Esikuva/Tuotekoodi/Tuote"
+#: ../../../../build/work/app/help/messages.h:114
+msgid "inv-pathEndTrk on Path."
+msgstr ""
-#: ../bin/cgroup.c:604 ../bin/ctodesgn.c:140 ../bin/ctodesgn.c:1760
-#: ../bin/dcustmgm.c:45 ../bin/dcar.c:1933 ../bin/dcar.c:4070
-#: ../bin/dcar.c:4075 ../bin/cstruct.c:62 ../bin/compound.c:519
-#: ../bin/cturnout.c:68 ../bin/dcmpnd.c:449
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:325
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:493
-msgid "Manufacturer"
-msgstr "Valmistaja"
+#: ../../../../build/work/app/help/messages.h:115
+msgid "inv-pathStartTrk on Path"
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:178
-msgid "Manufacturer Part Number"
-msgstr "Valmistajan tuotekoodi"
+#: ../../../../build/work/app/help/messages.h:116
+#, c-format
+msgid "%s:%d- %s"
+msgstr "%s:%d- %s"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:173
-msgid "Manufacturer name"
-msgstr "Valmistajan nimi"
+#: ../../../../build/work/app/help/messages.h:117
+msgid "pathEndTrk not on Path."
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:426
-msgid "Manufacturer of Object"
-msgstr "Valmistaja"
+#: ../../../../build/work/app/help/messages.h:118
+msgid "pathStartTrk not on Path."
+msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:654
+#: ../../../../build/work/app/help/messages.h:119
msgid ""
-"Many objects on the layout have labels: Turnouts/Helix/Curved Titles, Track "
-"Lenghts, End-Point Elevations, Track Elevations and Cars. \n"
-"You can turn these labels on or off with the Label Enable toggle buttons on "
-"the Display options dialog."
+"The tracks cannot be connected together.\n"
+"\n"
+"Try changing some tracks for a closer fit\n"
+"or increase the Connection Angle value on\n"
+"the Preferences dialog."
msgstr ""
+"Raiteita ei voi yhdistää.\n"
+"\n"
+"Kokeile sovittaa raiteet paremmin keskenään\n"
+" tai kasvata liitoskulmaa ohjelman ominaisuuksista."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:612
+#: ../../../../build/work/app/help/messages.h:120
msgid ""
-"Many of the commands and dialogs can be invoked by special key combinations "
-"called Menu-Accelerators. These are listed on the Menus next to the command "
-"name. For example, Control-P will invoke the Print command."
+"The tracks cannot be connected together.\n"
+"\n"
+"Try changing some tracks for a closer fit\n"
+"or increase the Connection Distance and\n"
+"Angle values on the Preferences dialog"
msgstr ""
+"Raiteita ei voi yhdistää.\n"
+"\n"
+"Kokeile sovittaa raiteet paremmin keskenään\n"
+" tai kasvata liitoskulmaa ja liitosetäisyyttä ohjelman ominaisuuksista."
-#: ../bin/draw.c:2377
-msgid "Map"
-msgstr "Kartta"
+#: ../../../../build/work/app/help/messages.h:121
+msgid ""
+"The tracks cannot be connected together.\n"
+"\n"
+"Try changing some tracks for a closer fit\n"
+"or increase the Connection Distance"
+msgstr ""
+"Raiteita ei voi yhdistää.\n"
+"\n"
+"Kokeile sovittaa raiteet paremmin keskenään\n"
+" tai kasvata liitosetäisyyttä ohjelman ominaisuuksista."
-#: ../bin/doption.c:213
-msgid "Map Scale"
-msgstr "Kartan mittakaava"
+#: ../../../../build/work/app/help/messages.h:122
+msgid ""
+"The first track for the Align\n"
+"Rotate command must be Selected."
+msgstr ""
+"Kohdistuskomennon ensimmäisen\n"
+"raideosan on oltava valittuna."
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:169
-msgid "Map window"
-msgstr "Karttaikkuna"
+#: ../../../../build/work/app/help/messages.h:123
+msgid ""
+"The second track for the Align\n"
+"Rotate command must be Unselected."
+msgstr ""
+"Kohdistuskomennon toisen raideosan\n"
+"on oltava valitsematon."
-#: ../wlib/gtklib/psprint.c:1268
-msgid "Margin"
-msgstr "Marginaali"
+#: ../../../../build/work/app/help/messages.h:124
+msgid "Too many selected tracks, drawing tracks as End Point."
+msgstr ""
+"Liian monta valittua raidetta. Piirretään raiteet pelkkinä päätepisteinä."
-#: ../bin/doption.c:530
-msgid "Marker"
-msgstr "Markkeri"
+#: ../../../../build/work/app/help/messages.h:125
+msgid "Select an endpoint between two tracks."
+msgstr "Valitse kahden raideosan välinen päätepiste."
-#: ../bin/param.c:133
-msgid "Maroon"
+#: ../../../../build/work/app/help/messages.h:126
+msgid ""
+"According to values that have been entered the diverging\n"
+"track does not connect with the tangent track. Please\n"
+"check the values entered and try again. Check the angle\n"
+"is entered as a frog number or in degrees as specified\n"
+"by Angle Mode radio buttons."
msgstr ""
+"Antamiesi arvojen perusteella, poikkeava ja suora\n"
+"raide eivät kohtaa.\n"
+"Tarkasta arvot ja kokeile uudelleen.\n"
+"Tarkasta myös onko kulma annettu risteysnumerona vai asteina."
-#: ../bin/cprint.c:114
-msgid "Max"
-msgstr "Max"
+#: ../../../../build/work/app/help/messages.h:127
+msgid "Moved before the end of the turnout"
+msgstr ""
-#: ../bin/doption.c:300
-msgid "Max Coupling Speed"
-msgstr "Suurin kytkentänopeus"
+#: ../../../../build/work/app/help/messages.h:128
+msgid ""
+"The Coupled Length must be greater than the Car Length,\n"
+"and the Coupler Length must be greater than 0."
+msgstr ""
+"Pituuden kytkimineen on oltava suurempi kuin vaunun/veturin pituus,\n"
+"ja kytkimen pituuden on oltava suurempi kuin 0."
-#: ../bin/doption.c:372
-msgid "Maximum Track Grade"
-msgstr "Suurin nousukulma"
+#: ../../../../build/work/app/help/messages.h:129
+msgid ""
+"The Car Length value must be greater\n"
+"than the Car Width value."
+msgstr "Pituuden on oltava leveyttä suurempi."
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:371
-msgid "Maximum distance between connected end points"
-msgstr "Suurin sallittu etäisyys kahden liitettävän raiteen välillä"
+#: ../../../../build/work/app/help/messages.h:130
+msgid ""
+"The specified Index is already in use.\n"
+"The Index will be updated to the next available value."
+msgstr ""
+"Määritelty indeksi on jo käytössä.\n"
+"Indeksi muutetaan seuraavaksi vapaaksi arvoksi."
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:299
-msgid "Maximum offset"
-msgstr "Suurin siirtymä"
+#: ../../../../build/work/app/help/messages.h:131
+msgid ""
+"You have changed values for this object.\n"
+"\n"
+"Are you sure you want to Close?"
+msgstr ""
+"Olet muuttanut tämän objektin arvoja.\n"
+"\n"
+"Haluatko varmasti sulkea?"
-#: ../bin/cdraw.c:502 ../bin/cdraw.c:928
-msgid "Medium"
-msgstr "Keskikokoinen"
+#: ../../../../build/work/app/help/messages.h:132
+#, c-format
+msgid ""
+"File version %ld is lower than the minimum\n"
+"supported version %d. You need to update your\n"
+"layout file using an older version of %s"
+msgstr ""
+"Tiedoston versio %ld on pienempi kuin pienin tuettu versio %d\n"
+"Ratasuunnitelmasi täytyy päivittää käyttäen vanhempaa versiota %s:sta."
-#: ../bin/misc.c:2180
-msgid "Medium Tracks"
-msgstr "Keskipaksut raiteet"
+#: ../../../../build/work/app/help/messages.h:133
+#, c-format
+msgid ""
+"%s cannot read the demo file:\n"
+"%s"
+msgstr ""
+"%s ei voi lukea demotiedostoa:\n"
+"%s"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:22
-msgid "Medium and Thick Tracks"
-msgstr "Keskipaksut ja paksut raiteet"
+#: ../../../../build/work/app/help/messages.h:134
+#, c-format
+msgid "doDemo: bad number (%d)"
+msgstr "Demo: Virheellinen demon numero (%d)."
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:165
-msgid "Menus"
-msgstr "Valikot"
+#: ../../../../build/work/app/help/messages.h:135
+msgid "Playback TIMEEND without TIMESTART"
+msgstr "Toistossa TIMEEND ilman TIMESTART:ia"
-#: ../bin/tcurve.c:966
-msgid "Merge Curves"
-msgstr "Yhdistä kaarteet"
+#: ../../../../build/work/app/help/messages.h:136
+#, c-format
+msgid ""
+"Unknown playback command (%d)\n"
+"%s"
+msgstr ""
+"Tuntematon toistokomento (%d)\n"
+"%s"
-#: ../bin/tease.c:1255
-msgid "Merge Easements"
-msgstr "Yhdistä kaarreloivennukset"
+#: ../../../../build/work/app/help/messages.h:137
+#, c-format
+msgid ""
+"Playback file version %ld is lower than the\n"
+"minimum supported version %d.\n"
+"You need to update your layout file using an\n"
+"older version of %s"
+msgstr ""
+"Tiedoston versio %ld on pienempi kuin pienin tuettu versio %d\n"
+"Ratasuunnitelmasi täytyy päivittää käyttäen vanhempaa versiota %s:sta."
-#: ../bin/macro.c:81
-msgid "Message"
-msgstr "Viesti"
+#: ../../../../build/work/app/help/messages.h:138
+#, c-format
+msgid "Scale index (%d) is not valid"
+msgstr "Mittakaavan indeksi (%d) on virheellinen."
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:160
-msgid "Message and status line"
-msgstr "Viesti- ja tilarivi"
+#: ../../../../build/work/app/help/messages.h:139
+#, c-format
+msgid ""
+"Scale %s is not valid\n"
+"Please check your %s.xtq file"
+msgstr ""
+"Mittakaava %s ei ole kelvollinen\n"
+"Tarkasta %s.xtq tiedostosi"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:422
-msgid "Message body"
-msgstr "Viestin runko"
+#: ../../../../build/work/app/help/messages.h:140
+msgid "Cannot extend a helix"
+msgstr "Helixiä ei voida jatkaa"
-#: ../bin/doption.c:352
-msgid "Metric"
-msgstr "Metrijärjestelmä"
+#: ../../../../build/work/app/help/messages.h:141
+msgid "Cannot trim a helix"
+msgstr "Helixiä ei voida lyhentää"
-#: ../bin/cmisc.c:53
-msgid "Middle"
-msgstr "Keskimmäinen"
+#: ../../../../build/work/app/help/messages.h:142
+msgid "Ignore further audit notices?"
+msgstr "Sivuuta tarkastus huomautukset jatkossa?"
-#: ../bin/doption.c:210
-msgid "Min Grid Spacing"
-msgstr "Pienin ruudukon koko"
+#: ../../../../build/work/app/help/messages.h:143
+#, c-format
+msgid "%s"
+msgstr "%s"
-#: ../bin/doption.c:363
-msgid "Minimum Track Length"
-msgstr "Pienin raideosan pituus"
+#: ../../../../build/work/app/help/messages.h:144
+msgid "Audit Abort?"
+msgstr "Keskeytä tarkastus?"
-#: ../bin/doption.c:370
-msgid "Minimum Track Radius"
-msgstr "Pienin karresäde"
+#: ../../../../build/work/app/help/messages.h:145
+msgid "Write Audit File?"
+msgstr "Kirjoita tarkastustiedosto?"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:372
-msgid "Minimum angle between connected End-Points"
-msgstr "Suurin sallittu kulma kahden liitettävän raiteen välillä"
+#: ../../../../build/work/app/help/messages.h:146
+#, c-format
+msgid "checkTrackLength: Short track length = %0.3f"
+msgstr "Raideosan pituuden tarkistus: Pienin raideosan pituus = %0.3f"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:283
-msgid "Minimum distance (in pixels) between grid lines/ticks"
-msgstr "Ruudukon viivojen pienin etäisyys toisistaan pikseleinä"
+#: ../../../../build/work/app/help/messages.h:147
+#, c-format
+msgid "checkTrackLength: unknown type: %d"
+msgstr "Raideosan pituuden tarkistus: Tuntematon tyyppi: %d"
-#: ../bin/dcar.c:1085 ../bin/dcar.c:4781
-msgid "Mint"
-msgstr "Loistava"
+#: ../../../../build/work/app/help/messages.h:148
+#, c-format
+msgid "connectTracks: T%d[%d] T%d[%d] d=%0.3f a=%0.3f"
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:298
-msgid "Minimum radius"
-msgstr "Pienin karresäde"
+#: ../../../../build/work/app/help/messages.h:149
+#, c-format
+msgid "GetAngleAtPoint: bad type(%d) for T(%d)"
+msgstr "GetAngleAtPoint: virheellinen tyyppi (%d) raitelle T(%d)"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:41
-msgid "Misc track commands"
-msgstr "Muita raidekomentoja"
+#: ../../../../build/work/app/help/messages.h:150
+#, c-format
+msgid "joinTracks: invalid track type=%d"
+msgstr ""
-#: ../bin/dcar.c:1958
-msgid "Mode"
-msgstr "Tila"
+#: ../../../../build/work/app/help/messages.h:151
+#, c-format
+msgid "resolveIndex: T%d[%d]: T%d doesn\\\\'t exist"
+msgstr ""
-#: ../bin/track.c:1056
-msgid "Mode Objects Below"
-msgstr "Siirrä objekteja alemmas"
+#: ../../../../build/work/app/help/messages.h:152
+msgid "Moved beyond the end of the track"
+msgstr "Siirretty päätepisteen taakse"
-#: ../bin/cmodify.c:394
-msgid "Modify"
-msgstr "Muokkaa"
+#: ../../../../build/work/app/bin/bllnhlp.c:10
+msgid "Invokes on-line help for this dialog"
+msgstr "Avaa tämän dialogin ohjeen"
-#: ../bin/cmodify.c:166
-msgid "Modify Track"
-msgstr "Muokkaa raidetta"
+#: ../../../../build/work/app/bin/bllnhlp.c:11
+msgid "Cancels this command"
+msgstr "Kumoaa edellisen komennon"
-#: ../bin/misc.c:1694 ../bin/misc.c:1723
-msgid "Modify Track Buttons"
-msgstr "Radan muokkaus"
+#: ../../../../build/work/app/bin/bllnhlp.c:12
+msgid "Closes the dialog"
+msgstr "Sulkee ikkunan"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:83
-msgid "Modify or extend a track"
-msgstr "Muokkaa tai jatka raidetta"
+#: ../../../../build/work/app/bin/bllnhlp.c:13
+msgid "About box dialog"
+msgstr "Tietoja -ikkuna"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:57
-msgid "Modifying Poly-Shapes"
-msgstr "Monikulmioiden muokkaaminen"
+#: ../../../../build/work/app/bin/bllnhlp.c:14
+msgid "Move Selected object to top"
+msgstr "Siirrä valittu objekti päällimmäiseksi"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:20
-msgid "Modifying end points "
-msgstr "Päätepisteiden muokkaaminen"
+#: ../../../../build/work/app/bin/bllnhlp.c:15
+msgid "Raise or Lower all Selected tracks"
+msgstr "Nosta tai laske valittuja raiteita"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:19
-msgid "Modifying tracks"
-msgstr "Raiteiden muokkaaminen"
+#: ../../../../build/work/app/bin/bllnhlp.c:16
+msgid "Move Selected object to bottom"
+msgstr "Siirrä valittu objekti alimmaiseksi"
-#: ../bin/misc.c:2103 ../bin/misc.c:2104
-msgid "More"
-msgstr "Lisää"
+#: ../../../../build/work/app/bin/bllnhlp.c:17
+msgid "Create a section of track for automation"
+msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:8
-msgid "Mouse Actions"
-msgstr "Hiiren toiminnot"
+#: ../../../../build/work/app/bin/bllnhlp.c:18
+msgid "Edit a Block Definition "
+msgstr ""
-#: ../bin/misc.c:2096 ../bin/cselect.c:1895
-msgid "Move"
-msgstr "Siirrä"
+#: ../../../../build/work/app/bin/bllnhlp.c:19
+msgid "Create a new Car/Loco description"
+msgstr "Luo uusi veturin tai vaunun määrittely"
-#: ../bin/cselect.c:1888
-msgid "Move Description"
-msgstr "Siirrä merkintöjä"
+#: ../../../../build/work/app/bin/bllnhlp.c:20
+msgid "Manage your Car and Loco Inventory"
+msgstr "Hallinnoi vaunu- ja veturiluetteloa"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:154
-msgid "Move Hot Bar left"
-msgstr "Siirry vasemmalle"
+#: ../../../../build/work/app/bin/bllnhlp.c:21
+msgid "Create track circle from center"
+msgstr "Piirrä ympyrärata keskipisteestä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:155
-msgid "Move Hot Bar right"
-msgstr "Siirry oikealle"
+#: ../../../../build/work/app/bin/bllnhlp.c:22
+msgid "Create fixed radius track circle"
+msgstr "Määriteltysäteinen ympyrärata"
-#: ../bin/cselect.c:1452
-msgid "Move Label"
-msgstr "Siirrä merkintöjä"
+#: ../../../../build/work/app/bin/bllnhlp.c:23
+msgid "Set Circle Track creation mode"
+msgstr "Aseta ympyräradan luonti komento"
-#: ../bin/track.c:1036
-msgid "Move Objects Above"
-msgstr "Siirrä objekteja ylemmäs"
+#: ../../../../build/work/app/bin/bllnhlp.c:24
+msgid "Create track circle from tangent"
+msgstr "Piirrä ympyrärata kehältä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:16
-msgid "Move Selected object to bottom"
-msgstr "Siirrä valittu objekti alimmaiseksi"
+#: ../../../../build/work/app/bin/bllnhlp.c:25
+msgid "Removes elevation from Selected tracks"
+msgstr "Poista korkeusmääritykset valituista raiteista"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:14
-msgid "Move Selected object to top"
-msgstr "Siirrä valittu objekti päällimmäiseksi"
+#: ../../../../build/work/app/bin/bllnhlp.c:26
+msgid "Command Options dialog"
+msgstr "Komentojen asetukset"
-#: ../bin/dcustmgm.c:57
-msgid "Move To"
-msgstr "Tiedostoon"
+#: ../../../../build/work/app/bin/bllnhlp.c:27
+msgid "Controls colors"
+msgstr "Valitse värit"
-#: ../bin/misc.c:2163 ../bin/cselect.c:417
-msgid "Move To Current Layer"
-msgstr "Siirrä nykyiselle tasolle"
+#: ../../../../build/work/app/bin/bllnhlp.c:28
+msgid "Connect two tracks"
+msgstr "Liitä kaksi raidetta"
-#: ../bin/cselect.c:1082
-msgid "Move To Join"
-msgstr "Siirrä yhdistääksesi"
+#: ../../../../build/work/app/bin/bllnhlp.c:29
+msgid "Create a control for layout automation"
+msgstr ""
-#: ../bin/dcustmgm.c:233
-msgid "Move To XTP"
-msgstr "Siirrä XTP tiedostoon"
+#: ../../../../build/work/app/bin/bllnhlp.c:30
+msgid "Manage control elements"
+msgstr ""
-#: ../bin/cselect.c:1125
-msgid "Move Tracks"
-msgstr "Siirrä raiteita"
+#: ../../../../build/work/app/bin/bllnhlp.c:31
+msgid "Copy selected objects to clipboard"
+msgstr "Kopioi valitut objektit leikepöydälle"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:85
-msgid "Move a label"
-msgstr "Siirrä merkintöjä"
+#: ../../../../build/work/app/bin/bllnhlp.c:32
+msgid "Create curved track from center"
+msgstr "Luo kaareva raideosa alkaen keskipisteestä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:84
-msgid "Move selected objects"
-msgstr "Siirrä valittuja objekteja"
+#: ../../../../build/work/app/bin/bllnhlp.c:33
+msgid "Create curved track from chord"
+msgstr "Luo kaareva raideosa päätepisteiden välille"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:86
-msgid "Move selected objects to current layer"
-msgstr "Siirrä valitut objektit nykyiselle tasolle"
+#: ../../../../build/work/app/bin/bllnhlp.c:34
+msgid "Create curved track from end-point"
+msgstr "Luo kaareva raideosa alkaen päätepisteestä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:375
-msgid "Move the Main canvas if you drag near the edge"
-msgstr "Siirrä näkymää automaattisesti raahattaessa hiirellä lähellä reunoja"
+#: ../../../../build/work/app/bin/bllnhlp.c:35
+#, fuzzy
+msgid "Create Bezier track"
+msgstr "Luo helix raide"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:30
-msgid "Move to Join"
-msgstr "Siirrä yhdistääksesi"
+#: ../../../../build/work/app/bin/bllnhlp.c:36
+msgid "Set Curve Track creation mode"
+msgstr "Aseta kaarevan raiteen luonti komento"
-#: ../../../../build/xtrkcad/app/help/messages.h:124
-msgid "Moved before the end of the turnout"
-msgstr ""
+#: ../../../../build/work/app/bin/bllnhlp.c:37
+msgid "Create curved track from tangent"
+msgstr "Luo kaareva raideosa alkaen kehältä"
-#: ../../../../build/xtrkcad/app/help/messages.h:149
-msgid "Moved beyond the end of the track"
-msgstr "Siirretty päätepisteen taakse"
+#: ../../../../build/work/app/bin/bllnhlp.c:38
+msgid "Manipulate Custom designer entries"
+msgstr "Itse määriteltyjen raideosien, veturien ja vaunujen hallinta"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:34
+#: ../../../../build/work/app/bin/bllnhlp.c:39
msgid "Moves selected objects to clipboard"
msgstr "Siirtää valitut objektit leikepöydälle"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:10
-msgid "Moving about"
-msgstr "Liikkuminen"
-
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:420
-msgid ""
-"Moving the mouse while a mouse button is pressed is called 'dragging'.\n"
-msgstr ""
-"Hiiren liikuttelua silloin kun hiiren painike on painettuna, kutsutaan "
-"\"raahaamiseksi\".\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:40
+msgid "Delete objects"
+msgstr "Poista valitut objektit"
-#: ../bin/dcar.c:1084 ../bin/dcar.c:4776
-msgid "N/A"
-msgstr "Ei tiedossa"
+#: ../../../../build/work/app/bin/bllnhlp.c:41
+msgid "Playback demos"
+msgstr "Toista nauhoitettuja demoja"
-#: ../bin/dlayer.c:312 ../bin/compound.c:520
-msgid "Name"
-msgstr "Nimi"
+#: ../../../../build/work/app/bin/bllnhlp.c:42
+msgid "Change Object Properties"
+msgstr ""
-#: ../wlib/gtklib/psprint.c:1290 ../wlib/gtklib/psprint.c:1298
-msgid "Name: "
-msgstr "Nimi: "
+#: ../../../../build/work/app/bin/bllnhlp.c:43
+msgid "Deselect all selected objects"
+msgstr "Poista valinnat kaikista objekteista"
-#: ../wlib/gtklib/psprint.c:1256 ../wlib/gtklib/psprint.c:1274
-#: ../bin/dcustmgm.c:59 ../bin/dcar.c:2008 ../bin/dcar.c:2012
-#: ../bin/cturnout.c:81
-msgid "New"
-msgstr "Uusi"
+#: ../../../../build/work/app/bin/bllnhlp.c:44
+msgid "Change Display parameters"
+msgstr "Muuta näyttöasetuksia"
-#: ../bin/dcar.c:2818
-#, c-format
-msgid "New %s Scale Car"
-msgstr "Uusi %s mittakaavan vaunu/veturi"
+#: ../../../../build/work/app/bin/bllnhlp.c:45
+msgid "Create benchwork"
+msgstr "Luo runkorakenne"
-#: ../bin/dcar.c:2827
-#, c-format
-msgid "New %s Scale Car Part"
-msgstr "Uusi %s mittakaavan vaunu/veturi"
+#: ../../../../build/work/app/bin/bllnhlp.c:46
+msgid "Create a box"
+msgstr "Luo nelikulmio"
-#: ../bin/dcar.c:3976
-msgid "New Car Part"
-msgstr "Uusi malli"
+#: ../../../../build/work/app/bin/bllnhlp.c:47
+msgid "Set Circle drawing command"
+msgstr "Aseta ympyrän piirto komento"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:434
-msgid "New Gauge of the selected objects"
-msgstr "Valittujen objektien uusi raideleveys"
+#: ../../../../build/work/app/bin/bllnhlp.c:48
+msgid "Create a circle"
+msgstr "Luo ympyrä"
-#: ../bin/cnote.c:371
-msgid "New Note"
-msgstr "Uusi muistiinpano"
+#: ../../../../build/work/app/bin/bllnhlp.c:49
+msgid "Draw a circle line from center"
+msgstr "Piirrä ympyrä keskipisteestä"
-#: ../bin/dcar.c:2836
-msgid "New Prototype"
-msgstr "Uusi esikuva"
+#: ../../../../build/work/app/bin/bllnhlp.c:50
+msgid "Draw a fixed radius circle line"
+msgstr "Piirrä määriteltysäteinen ympyrä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:433
-msgid "New Scale of the selected objects"
-msgstr "Valittujen objektien uusi mittakaava"
+#: ../../../../build/work/app/bin/bllnhlp.c:51
+msgid "Draw a circle line from tangent"
+msgstr "Piirrä ympyrä kehältä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:136
-msgid "New layout"
-msgstr "Uusi ratasuunnitelma"
+#: ../../../../build/work/app/bin/bllnhlp.c:52
+msgid "Set Curve drawing command"
+msgstr "Aseta kaaren piirto komento"
-#: ../bin/macro.c:595 ../bin/macro.c:1360
-msgid "Next"
-msgstr "Seuraava"
+#: ../../../../build/work/app/bin/bllnhlp.c:53
+msgid "Create a curved line"
+msgstr "Luo kaari"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:271
-msgid "Next - skips ahead to the next demo.\n"
-msgstr "Seuraava - Siirry seuraavaan demoon.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:54
+msgid "Create a curved line from End"
+msgstr "Piirrä kaari päätepisteestä"
-#: ../bin/smalldlg.c:73
-msgid "Next Tip"
-msgstr "Seuraava"
+#: ../../../../build/work/app/bin/bllnhlp.c:55
+msgid "Create a curved line from center"
+msgstr "Piirrä kaari keskipisteestä"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:142
-msgid "Next extend the turnout with the <Modify> command.\n"
-msgstr "Seuraavaksi jatketaan vaihdetta \"Muokkaa\" komennolla.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:56
+msgid "Create a curved line from chord"
+msgstr "Piirrä kaari·päätepisteiden·välille"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:538
-msgid "Next set the Grade to 1.5%\n"
-msgstr "Seuraavaksi nousukulmaksi 1,5%.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:57
+msgid "Create a curved line from tangent"
+msgstr "Piirrä kaari kehältä"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:536
-msgid "Next set the Vertical Separation to 2\"\n"
-msgstr "Sauraavaksi kerrosten välinen etäisyys 2 tuumaksi.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:58
+#, fuzzy
+msgid "Create a Bezier line"
+msgstr "Luo kaari"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:543
-msgid "Next we can fine tune the helix by decreasing the Radius to 15\".\n"
-msgstr ""
-"Seuraavaksi voimme hienosäätää helixiä asettamalla säteeksi 15 tuumaa.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:59
+msgid "Create a dimension line"
+msgstr "Luo mittajana"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:414
-msgid ""
-"Next we select the <Join Tracks> command. You can use Shift-Left-Click to "
-"move an End-Point of a selected track to join with an unselected track.\n"
-msgstr ""
-"Seuraavaksi käytämme Yhdistä-komentoa. Vaihto + hiiren vasen siirtää valitut "
-"raiteet ja liittää ne valitsemattomiin.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:60
+msgid "Create a filled box"
+msgstr "Piirrä täytetty nelikulmio"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:548
-msgid ""
-"Next, join the 2 straight tracks to the helix in the same way we join to a "
-"circle.\n"
-msgstr ""
-"Seuraavaksi yhdistetään suorat raiteet helixiin aivan kuten ympyrään.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:61
+msgid "Create a filled circle"
+msgstr "Luo täytetty ympyrä"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:493
-msgid "Next, pick Defined on the Elevation dialog Radio box.\n"
-msgstr ""
-"Seuraavaksi muuta korkeustasojen määrittely ikkunassa tyypiksi \"Määritelty"
-"\".\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:62
+msgid "Draw a filled circle from center"
+msgstr "Piirrä täytetty ympyrä keskipisteestä"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:550
-msgid ""
-"Next, we assign elevations to the 2 End-Points of the helix. This will "
-"determine the grade and separation between the helix coils.\n"
-msgstr ""
-"Seuraavaksi määrittelemme korkeustason helixin toiselle päätepisteelle. Tämä "
-"määrittää nousukulman ja kierteiden välisen eron.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:63
+msgid "Draw a fixed radius filled circle"
+msgstr "Piirrä täytetty määriteltysäteinen ympyrä"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:231
-msgid ""
-"Next, we click on an Unselected object. The Selected structure will be "
-"rotated so that the line we clicked on will be parallel to the straight "
-"track.\n"
-msgstr ""
-"Seuraavaksi klikataan valitsematonta objektia. Valittu rakennus käännetään "
-"siten, että valittu viiva on saman suuntainen suoran radan kanssa.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:64
+msgid "Draw a filled circle from tangent"
+msgstr "Piirrä täytetty ympyrä kehältä"
-#: ../wlib/gtklib/gtkfilsel.c:130 ../bin/cgroup.c:968 ../bin/ctodesgn.c:1509
-#: ../bin/ctodesgn.c:1988 ../bin/misc.c:1023 ../bin/misc.c:1028
-#: ../bin/misc.c:1093 ../bin/track.c:1275 ../bin/track.c:1372
-#: ../bin/track.c:1386 ../bin/ctrain.c:2027 ../bin/dcustmgm.c:136
-#: ../bin/dcar.c:3664 ../bin/dcar.c:3742 ../bin/dcar.c:3826 ../bin/dcar.c:3845
-#: ../bin/dcar.c:4175 ../bin/dcar.c:4590 ../bin/cdraw.c:79
-msgid "No"
-msgstr "Ei"
+#: ../../../../build/work/app/bin/bllnhlp.c:65
+msgid "Create a filled polygon"
+msgstr "Luo täytetty monikulmio"
-#: ../bin/misc.c:763 ../../../../build/xtrkcad/app/bin/bllnhlp.c:531
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:532
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:534
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:535
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:537
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:538
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:539
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:540
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:541
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:542
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:543
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:544
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:545
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:546
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:547
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:548
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:549
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:550
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:551
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:552
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:553
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:554
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:555
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:556
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:557
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:558
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:559
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:560
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:561
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:562
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:563
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:564
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:565
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:566
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:567
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:568
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:569
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:570
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:571
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:572
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:573
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:574
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:575
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:576
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:577
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:578
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:579
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:580
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:581
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:582
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:583
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:584
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:585
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:586
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:587
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:588
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:589
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:590
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:591
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:593
-msgid "No Help"
-msgstr "Ei ohjetta"
+#: ../../../../build/work/app/bin/bllnhlp.c:66
+msgid "Create a polyline"
+msgstr "Luo monikulmio"
-#: ../bin/misc.c:152
-msgid "No Messages"
-msgstr "Ei viestejä"
+#: ../../../../build/work/app/bin/bllnhlp.c:67
+msgid "Create a straight line"
+msgstr "Luo suora viiva"
-#: ../bin/ctrain.c:727
-msgid "No Room"
-msgstr "Ei tilaa"
+#: ../../../../build/work/app/bin/bllnhlp.c:68
+msgid "Set Line drawing command"
+msgstr "Aseta suorien objektien piirto komento"
-#: ../bin/misc.c:761
-#, c-format
-msgid "No balloon help for %s\n"
-msgstr "Ei pikaopastetta %s:lle\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:69
+msgid "Set Shape drawing command"
+msgstr "Aseta muotojen piirto komento"
-#: ../bin/cgroup.c:1063
-msgid "No endpts"
-msgstr "Ei päätepisteitä"
+#: ../../../../build/work/app/bin/bllnhlp.c:70
+msgid "Draw table edge"
+msgstr "Piirrä pöydän reuna"
-#: ../wlib/gtklib/psprint.c:829
-msgid "No file name specified"
-msgstr "Tiedostonimeä ei ole annettu"
+#: ../../../../build/work/app/bin/bllnhlp.c:71
+msgid "Easement menu"
+msgstr "Kaarreloivennuksen asetukset"
-#: ../wlib/gtklib/gtkfont.c:103
-msgid "No font selected"
-msgstr "Kirjasinta ei valittu"
+#: ../../../../build/work/app/bin/bllnhlp.c:73
+msgid "Generate a Parts List of selected objects"
+msgstr "Luo osaluettelo valituista objekteista"
-#: ../wlib/gtklib/gtkfont.c:161 ../wlib/gtklib/gtkfont.c:434
-msgid "No fonts"
-msgstr "Ei kirjasimia"
+#: ../../../../build/work/app/bin/bllnhlp.c:74
+msgid "Export a .xti file"
+msgstr "Vie .xti tiedostoon"
-#: ../bin/misc.c:349
-#, c-format
-msgid "No help for %s"
-msgstr "Ei ohjetta aiheesta %s"
+#: ../../../../build/work/app/bin/bllnhlp.c:75
+msgid "Export a DXF file"
+msgstr "Vie DXF tiedostoon"
-#: ../bin/cgroup.c:590
-msgid "No objects ungrouped"
-msgstr "Yhtään objektia ei purettu ryhmästä"
+#: ../../../../build/work/app/bin/bllnhlp.c:76
+msgid "General note about the layout"
+msgstr "Ratasuunnitelman muistiinpanoja"
-#: ../bin/cgroup.c:1148
-msgid "No paths"
-msgstr "Ei reittejä"
+#: ../../../../build/work/app/bin/bllnhlp.c:77
+msgid "Flip selected objects"
+msgstr "Käännä valitut objektit annetun peilauslinjan mukaan"
-#: ../bin/smalldlg.c:98
-msgid "No tips are available"
-msgstr "Vinkkejä ei ole saatavilla"
+#: ../../../../build/work/app/bin/bllnhlp.c:78
+msgid "Adjust snap grid"
+msgstr "Muuta kohdistusruudukon asetuksia"
-#: ../bin/track.c:1539
-msgid "No tracks loosened"
-msgstr "Yhtään raidetta ei irroitettu"
+#: ../../../../build/work/app/bin/bllnhlp.c:79
+msgid "Enable snap grid"
+msgstr "Käytä kohdistusruudukkoa"
-#: ../bin/ctrain.c:742
-msgid "No trains"
-msgstr "Ei junia"
+#: ../../../../build/work/app/bin/bllnhlp.c:80
+msgid "Show snap grid"
+msgstr "Näytä kohdistusruudukko"
-#: ../bin/misc.c:2145
-msgid "No&tes ..."
-msgstr "Muistiinpanot ..."
+#: ../../../../build/work/app/bin/bllnhlp.c:81
+msgid "Create a structure from a Group of objects"
+msgstr "Luo rakennus valituista objekteista"
-#: ../bin/doption.c:188 ../bin/doption.c:192 ../bin/dease.c:63
-#: ../bin/celev.c:44 ../bin/cprofile.c:1355 ../bin/csplit.c:105
-#: ../bin/csplit.c:110
-msgid "None"
-msgstr "Ei mitään"
+#: ../../../../build/work/app/bin/bllnhlp.c:82
+msgid "Create a hand-laid turnout"
+msgstr "Luo käsin aseteltu vaihde"
-#: ../bin/doption.c:187 ../bin/doption.c:281 ../bin/dease.c:63
-#: ../bin/dbench.c:73 ../bin/cprint.c:98 ../bin/cselect.c:1849
-#: ../bin/cselect.c:1853 ../bin/macro.c:1226
-msgid "Normal"
-msgstr "Normaali"
+#: ../../../../build/work/app/bin/bllnhlp.c:83
+msgid "Create a track helix"
+msgstr "Luo helix raide (kierrenousu)"
-#: ../bin/doption.c:534
-msgid "Normal Track"
-msgstr "Normaalit raiteet"
+#: ../../../../build/work/app/bin/bllnhlp.c:84
+msgid "Import a .xti file"
+msgstr "Tuo .xti tiedosto"
-#: ../bin/doption.c:289
-msgid "Normal: Command List, Shift: Command Options"
-msgstr "Normaali: Komennot, Vaihto: Komentojen asetukset"
+#: ../../../../build/work/app/bin/bllnhlp.c:85
+msgid "Join two tracks"
+msgstr "Yhdistä kaksi raidetta"
-#: ../bin/doption.c:290
-msgid "Normal: Command Options, Shift: Command List"
-msgstr "Normaali: Komentojen asetukset, Vaihto: Komennot"
+#: ../../../../build/work/app/bin/bllnhlp.c:86
+msgid "Change Layers"
+msgstr "Muuta tasojen asetuksia"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:641
-msgid ""
-"Normally Right-Click displays a popup menu of commands and Shift-Right-Click "
-"displays options for the current command. \n"
-"This can reversed by using the Right Click toggle button on the Command "
-"Options dialog."
-msgstr ""
+#: ../../../../build/work/app/bin/bllnhlp.c:87
+msgid "Selects the current drawing layer"
+msgstr "Valitsee piirtotason"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:436
-msgid "Normally, if we try to Split a turnout we get an error message.\n"
-msgstr ""
-"Normaalisti, jos vaihdetta tai palaraidetta yritetään pilkkoa, saadaan "
-"virheilmoitus.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:88
+msgid "Layout parameters"
+msgstr "Ratasuunnitelman asetukset"
-#: ../bin/ctrain.c:709
-msgid "Not on Track"
-msgstr "Ei raiteilla"
+#: ../../../../build/work/app/bin/bllnhlp.c:89
+#, fuzzy
+msgid "Show/Hide Map Window"
+msgstr "Näytä/piilota taso"
-#: ../bin/cnote.c:96 ../bin/cnote.c:203 ../bin/cnote.c:398
-msgid "Note"
-msgstr "Muistiinpano"
+#: ../../../../build/work/app/bin/bllnhlp.c:90
+msgid "Modify or extend a track"
+msgstr "Muokkaa tai jatka raidetta"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:338
-msgid ""
-"Note that once you start to place the turnout on the Main window the Turnout "
-"Selection window disappears. This feature is enabled by the Hide toggle "
-"button on the dialog.\n"
-msgstr ""
-"Huomaa, että kun aloitat raideosan paikoilleen asettelun pääikkunassa, "
-"valintaikkuna katoaa. Tämä voidaan myös estää poistamalla ruksi valinnasta "
-"\"Piilota\".\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:91
+msgid "Move selected objects"
+msgstr "Siirrä valittuja objekteja"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:149
-msgid "Note that placing the turnout splits the parallel track.\n"
-msgstr "Huomaa, kuinka vaihteen asettaminen pilkkoi rinnakkaisen raiteen.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:92
+msgid "Move a label"
+msgstr "Siirrä merkintöjä"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:328
-msgid ""
-"Note that the <Parallel> command remains active after you created the "
-"track. This is controlled by the Sticky dialog in the Options menu.\n"
-msgstr ""
-"Huomaa, että rinnakkainen-komento pysyy aktiivisena komentona luotuamme "
-"raiteen. Tätä käyttäytymistä voidaan muuttaa valikosta Asetukset|Pysyvät "
-"komennot.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:93
+msgid "Move selected objects to current layer"
+msgstr "Siirrä valitut objektit nykyiselle tasolle"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:138
-msgid "Note that the Title of the turnout did not change.\n"
-msgstr "Huomaa ettei vaihteen otsikko muuttunut.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:95
+msgid "Print a BitMap"
+msgstr "Tulosta bitmap tiedostoon"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:478
-msgid ""
-"Note that the connection is from different 'ends' of the circle than in the "
-"last example.\n"
-msgstr ""
+#: ../../../../build/work/app/bin/bllnhlp.c:96
+msgid "Create a parallel track"
+msgstr "Luo rinnakkainen raide"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:330
-msgid ""
-"Note that the new curved track is automatically connected to the short "
-"parallel track.\n"
-msgstr ""
-"Huomaa, että uusi kaarre liitettiin automaattisesti lyhyeen rinnakkaiseen "
-"raiteeseen.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:97
+msgid "Register"
+msgstr "Rekisteröi"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:345
-msgid ""
-"Note that the status line tells you the number of End-Points that would be "
-"connected and, the maximum displacement of the End-Points. This will be "
-"useful when building complex track, as we will see later.\n"
-msgstr ""
-"Huomaa, että tilarivillä kerrotaan kuinka monta päätepistettä ollaan "
-"liittämässä, sekä suurin päätepisteiden siirtymä. Tämä auttaa rakentamaan "
-"monimutkaisia ratoja, kuten myöhemmin näemme.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:98
+msgid "Copy objects from clipboard"
+msgstr "Liitä objektit leikepöydältä"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:216
-msgid ""
-"Note that the turnout title has been changed from the Medium Right to Medium "
-"Left. When turnouts are flipped, XTrackCAD will try to find a matching "
-"turnout and if found will change the name.\n"
-msgstr ""
-"Huomaa, että vaihteen otsikko muutettiin oikeasta (right) vasemmaksi (left). "
-"Kun vaihteita peilataan, XTrackCAD yrittää löytää vastaavan toispuoleisen "
-"vaihteen ja sellaisen löytäessään vaihtaa nimen.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:99
+msgid "Perferences dialog"
+msgstr "Ominaisuudet"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:457
-msgid "Note that the two straight tracks were combined to form one track.\n"
-msgstr ""
-"Huomaa, että kaksi suoraa raidetta yhdistettiin siten, että ne muodostavat "
-"nyt yhden raideosan.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:100
+msgid "Display prices of turnouts, sectional tracks and structures"
+msgstr "Vaihteiden, palaraiteiden ja rakennusten hinnat"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:287
-msgid ""
-"Note that two tracks are extended if you move past the end of the track.\n"
-msgstr ""
-"Huomaa, että raiteita pidennetään automaattisesti siirryttäessä raiteen pään "
-"ohi.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:101
+msgid "Print the layout"
+msgstr "Tulosta ratasuunnitelma"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:454
-msgid ""
-"Note the 2 pairs of tracks have End-Points that are close and aligned but "
-"not connected.\n"
-msgstr ""
-"Huomaa, että molemmissa raidepareissa raiteet ovat aivan lähekkäin ja "
-"samansuuntaisesti, mutta toisistaan irrallisia.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:102
+msgid "Loads and unloads parameter files"
+msgstr "Lataa tai poista parametritiedostoja käytöstä"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:544
-msgid "Note the change to the Grade.\n"
-msgstr "Huomaa nousukulman muutos.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:103
+msgid "Elevation Profile Command"
+msgstr "Muokkaa korkeusprofiilia"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:264
-msgid ""
-"Note the connecting curve does not quite meet the straight tracks. This the "
-"'Offset'.\n"
-msgstr ""
-"Huomaa, ettei yhdistävä kaarre kohtaa aivan tarkasti suoria raiteita. Tämä "
-"on \"siirtymä\".\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:105
+msgid "Command recorder"
+msgstr "Komentojen nauhoitus"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:190
-msgid ""
-"Note the grade on each side of the point will be displayed at the bottom of "
-"the Profile dialog.\n"
-msgstr ""
-"Nousukulmat pisteen molemmin puolin näytetään profiili-ikkunan alaosassa.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:107
+msgid "Update selected Turnout and Structure definitions"
+msgstr "Päivitä valittujen vaihteiden ja rakennusten määrittelyt"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:513
-msgid "Note the marker has an arrow pointing in the upwards direction.\n"
-msgstr "Huomaa kuinka nuolella ilmaistaan nousun suunta.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:108
+msgid "Rescale selected objects"
+msgstr "Muuta valittujen objektien mittakaavaa"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:133
-msgid "Note the track gauge did not change.\n"
-msgstr "Huomaa ettei raideleveys muuttunut.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:109
+msgid "Rotate selected object(s)"
+msgstr "Pyöritä valittuja objekteja"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:521
-msgid ""
-"Note, only tracks within the selected area are deleted. Since the easement "
-"curve is connected to a deleted track, it is deleted as well.\n"
-msgstr ""
-"Huom: Vain valitulla alueella olevat raideosat poistetaan. Koska "
-"kaarreloivennus liittyy poistettavaan raideosaan, poistetaan se myös.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:110
+msgid "Show a ruler"
+msgstr "Näytä viivain"
-#: ../bin/cnote.c:190 ../bin/cnote.c:191 ../bin/cnote.c:192
-msgid "Note: "
-msgstr "Muistiinpano: "
+#: ../../../../build/work/app/bin/bllnhlp.c:111
+msgid "Select objects"
+msgstr "Valitse objekteja"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:174
-msgid ""
-"Note: We can't show the menu in demo mode but we will show the effect of a "
-"Shift Right Click and selecting ignore. We will be Ignoring the End-Point "
-"of the Turnout that is not on the Path.\n"
-msgstr ""
-"Huom: Demossa ei voida esittää valikoita, mutta näytämme ponnahdusvalikosta "
-"suoritetun hylkää-komennon vaikutuksen. Hylkäämme vaihteesta sen "
-"päätepisteen, joka ei ole profiilin reitillä.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:112
+msgid "Selects all objects on the layout"
+msgstr "Valitse kaikki ratasuunnitelman objektit"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:375
-msgid ""
-"Note: Win95/Win98/WinME does not support drawing lines with flat end-caps, "
-"but only with round end-caps.\n"
-msgstr ""
-"Huom: Win96/Win98/WinME ei tue tasapäisten viivojen piirtoa, vaan ainoastaan "
-"pyöreäpäisiä viivoja.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:113
+msgid "Selects all objects in the current Layer"
+msgstr "Valitse kaikki nykyisen tason objektit"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:415
-msgid ""
-"Note: because of differing display resolutions the next mouse click may not "
-"be positioned correctly in this demo and the Move-To-Join operation may not "
-"be demonstrated.\n"
-msgstr ""
-"Huom: Johtuen erilaisista näytön resoluutioista seuraava hiiren klikkaus voi "
-"olla virheellisesti kohdistettu tässä demossa, jolloin \"siirrä yhdistääksesi"
-"\" operaation esitys ei toimi oikein.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:114
+msgid "Invert current selection"
+msgstr "Käänteinen valinta"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:546
-msgid ""
-"Note: the Vertical Separation will be increased. This value is the "
-"Elevation Difference (12.0) divided by the total number of turns. The total "
-"number of turns is 4.25: 4 whole Turns plus a quarter turn for the Angular "
-"Separation.\n"
-msgstr ""
-"Huom: Kerrosten välistä etäisyyttä kasvatetaan. Tämä arvo on "
-"kokonaiskorkeusero (12,0) jaettuna kierrosten kokonaislukumäärällä. "
-"Kierrosten kokonaislukumäärä on 4,25: 4 täyttä kierrosta sekä neljännes "
-"kierros johtuen sisäänkäyntien välisestä kulmasta.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:115
+msgid "Split a track"
+msgstr "Pilko raide"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:444
-msgid ""
-"Note: the adjustments are only done on tracks which have only 1 or 2 "
-"connections. In this example the Turnouts would not be affected.\n"
-msgstr ""
-"Huom: Säätö tehdään vain niille raideosille, joilla on vain yksi tai kaksi "
-"liitosta. Tässä esimerkissä vaihteet jäävät koskemattomiksi.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:116
+msgid "Select stranded (unconnected) track pieces"
+msgstr "Valitse yksittäiset raiteet, joita ei ole liitetty toisiin raiteisiin"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:419
-msgid ""
-"Note: these color changes occur only during the demo to simulate mouse "
-"button presses.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:117
+msgid "Create a sensor (ie. a occupancy detector or a toggle switch)"
msgstr ""
-"Huom: Hiiren osoittimen väri muuttuu vain demo-tilassa kuvaten hiiren "
-"painikkeiden käyttöä.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:542
-msgid "Note: this will decrease the Radius slightly.\n"
-msgstr "Huom: Tämä pienentää sädettä hieman.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:118
+#, fuzzy
+msgid "Create a signal for train control"
+msgstr "Piirrä ympyrärata kehältä"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:551
-msgid ""
-"Note: we could set the elevations anywhere along the connecting tracks "
-"instead. XTrackCAD treats a helix as a single length of track for "
-"elevations.\n"
-msgstr ""
-"Huom: Voisimme määrittää korkeustason missä tahansa helixiin yhdistetyllä "
-"raiteella. Korkeustasojen kannalta XTrackCAD käsittelee helixiä yhtenä "
-"tietyn mittaisena raiteena.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:119
+msgid "Choose which commands are sticky"
+msgstr "Valitse mitkä komennot ovat pysyviä"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:409
-msgid ""
-"Note: you can move the Command Options dialog if it obscures the main "
-"window.\n"
-msgstr ""
-"Huom: Voit siirtää Komentojen asetukset -ikkunaa, jos se peittää pääikkunaa "
-"oleellisesti.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:120
+msgid "Create straight track"
+msgstr "Luo suora raideosa"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:560
-msgid "Note: you cannot have a turntable as your first connection point.\n"
-msgstr ""
-"Huom: Kääntöpöytä ei voi olla ensimmäinen liitoskohta, eli aina yhdistetään "
-"muusta raiteesta kääntöpöytää kohti.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:121
+msgid "Place a structure on the layout"
+msgstr "Lisää rakennus"
-#: ../bin/dcar.c:2002 ../bin/dcar.c:4073
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:61
-msgid "Notes"
-msgstr "Muistiinpanot"
+#: ../../../../build/work/app/bin/bllnhlp.c:122
+#, fuzzy
+msgid "Create a switchmotor for turnout control"
+msgstr "Luo uuden rakennuksen (tai raideosan)"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:205
-msgid "Notes about the car"
-msgstr "Vaunuun tai veturiin liittyviä muistiinpanoja"
+#: ../../../../build/work/app/bin/bllnhlp.c:123
+#, fuzzy
+msgid "Edit a switchmotor definition"
+msgstr "Luo uusi raideosan määrittely"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:505
-msgid ""
-"Notice at the End-Point where the tracks cross, we see the Elevation has "
-"changed from 2.34 to 2.64.\n"
-msgstr ""
-"Huomaa kuinka risteyskohdan laskettu korkeustaso muuttui 2,34 tuumasta 2,64 "
-"tuumaan.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:124
+msgid "Enter text on the layout"
+msgstr "Lisää tekstiä ratasuunnitelmaan"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:360
-msgid ""
-"Notice how the Snap Grid keeps the main line and siding track parallel and "
-"the connecting tracks and spur at a 45° angle.\n"
-msgstr ""
-"Huomaa, kuinka kohdistusruudukko auttaa pitämään pääradan ja sivuraiteen "
-"saman suuntaisina, sekä yhdistävät raiteet ja piston 45° kulmassa.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:125
+#: ../../../../build/work/app/bin/bllnhlp.c:486
+msgid "Controls the size of the entered text"
+msgstr "Muuttaa syötettävän tekstin kokoa"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:539
-msgid "Notice how this causes the Radius to change.\n"
-msgstr "Huomaa, kuinka säde muuttuu.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:126
+msgid "Tip of the Day window"
+msgstr "Näytä päivän vinkki"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:537
-msgid "Notice how this causes the number of Turns to be set to 6\n"
-msgstr "Huomaa kuinka tämä muuttaa kierrosten lukumääräksi 6.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:127
+msgid "Run Trains"
+msgstr "Aja junilla ratasuunnitelmassa"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:146
-msgid ""
-"Notice how we control which way the turnout is facing by moving the mouse "
-"across the center line of the track.\n"
-msgstr ""
-"Huomaa kuinka kontrolloimme vaihteen suuntaa siirtämällä hiiren osoitinta "
-"raiteen keskilinjan yli.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:128
+msgid "Pause/Resume Trains"
+msgstr "Pysäytä/jatka ajamista"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:175
-msgid "Notice that part of the Profile line is redrawn in Blue.\n"
-msgstr "Huomaa että osa profiilista on piirretty sinisellä viivalla.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:129
+msgid "Place a car on the layout"
+msgstr "Sijoita vaunu tai veturi ratasuunnitelmaan"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:172
-msgid "Notice that the Grade has changed on the Profile.\n"
-msgstr "Huomaa että nousukulma on muuttunut profiili-ikkunassa.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:130
+msgid "Exit Trains"
+msgstr "Poistu junien ajosta"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:77
-msgid "Notice that the Title now indicates the turnout is Ungrouped.\n"
-msgstr "Huomaa että otsikko näyttää vaihteen ryhmittelyn olevan purettu.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:131
+msgid "Hide/Unhide a track"
+msgstr "Piilota/näytä raide"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:257
-msgid ""
-"Notice that the curved track is extended as the connection point moves past "
-"the End-Point.\n"
-msgstr ""
-"Huomaa kuinka kaarevaa raidetta jatketaan liitoskohdan siirtyessä "
-"päätepisteen ohi.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:132
+msgid "Place a turnout or sectional track"
+msgstr "Lisää vaihde tai palaraide"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:549
-msgid ""
-"Notice that the length has increased because we have more than 4 turns in "
-"the helix. It is closer to 4.25 turns.\n"
-msgstr ""
-"Huomaa kuinka pituus kasvoi hieman koska helixissä on yli 4 kierrosta. "
-"Kierrosten lukumäärä on lähempänä 4,25:tä.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:133
+msgid "Create a new turnout definition"
+msgstr "Luo uusi raideosan määrittely"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:96
-msgid ""
-"Notice that the name has changed to indicate the turnout was Ungrouped.\n"
-msgstr "Huomaa kuinka nimi on muutettu kuvaamaan vaihteen purkua.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:134
+msgid "Place a turntable"
+msgstr "Lisää kääntöpöytä"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:440
-msgid ""
-"Notice that the tail of the diverging leg has been changed to a curved "
-"track...\n"
-msgstr "Huomaa, että haarautuva raide on muutettu kaarteeksi...\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:135
+msgid "Updates old source files with 3 part titles"
+msgstr "Päivittää vanhat lähdetiedostot kolmiosaisilla otsikoilla"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:82
-msgid "Notice that the turnout has been broken into three parts.\n"
-msgstr "Huomaa että vaihde on purettu kolmeen osaan.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:137
+msgid "Ungroup objects"
+msgstr "Pura ryhmittely"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:100
-msgid ""
-"Notice that the turnout in the HotBar is angled the same as the turnout on "
-"the layout. Make sure your new definition is rotated the way you want it.\n"
-msgstr ""
-"Huomaa että vaihteen kuva Hot Barissa on nyt samassa kulmassa kuin vaide "
-"ratasuunnitelmassa. Ole siis huolellinen tehdessäsi uusia määrittelyitä, "
-"jotta ne ovat haluamassasi kulmassa.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:138
+msgid "Draw tracks with thin lines"
+msgstr "Piirrä raiteet ohuilla viivoilla"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:364
-msgid ""
-"Notice that when we are in the correct position (on the 1/8\" grid), the "
-"Marker lines on the bottom and left rulers will high-light the tick marks. "
-"When both ticks are high-lighted, press the space bar to finalize the LED.\n"
-msgstr ""
-"Huomaa että kun LEDi on oikeassa kohdassa kohdistusruudukon jakoon nähden, "
-"viivaimien merkinnät korostetaan. Kun sekä vaaka- että pystyviivaimen "
-"merkinnät ovat korostettuna, paina välilyöntiä hyväksyäksesi LEDin "
-"asettelun.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:139
+msgid "Draw tracks with medium lines"
+msgstr "Piirrä raiteet keskipaksuilla viivoilla"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:263
-msgid "Notice the label on the Easement button has changed to 'Sharp'.\n"
-msgstr ""
-"Huomaa että kaarreloivennus-painikkeen (Easements) tila on muuttunut "
-"\"jyrkäksi\" (Sharp).\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:140
+msgid "Draw tracks with thick lines"
+msgstr "Piirrä raiteet paksuilla viivoilla"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:119
-msgid "Notice the title has changed to Flipped Left.\n"
-msgstr "Huomaa että otsikko ilmaisee vaihteen olevan peilikuva.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:141
+msgid "Change drawing scale"
+msgstr "Muuta piirron mittakaavaa"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:288
-msgid ""
-"Notice what happens if you drag past the intersection points of the two "
-"tracks.\n"
-msgstr "Katso mitä tapahtuu, jos raahaat raiteiden leikkauspisteen ohi.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:142
+#: ../../../../build/work/app/bin/bllnhlp.c:154
+msgid "Zoom in"
+msgstr "Lähennä näkymää"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:373
-msgid "Notice when the line meet at an angle there is a gap.\n"
-msgstr "Huomaa viivojen liitoskohdissa pienet raot.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:143
+#: ../../../../build/work/app/bin/bllnhlp.c:155
+msgid "Zoom out"
+msgstr "Loitonna näkymää"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:120
-msgid "Now Group the turnout.\n"
-msgstr "Ryhmittele.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:144
+msgid "File Menu"
+msgstr "Tiedosto valikko"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:113
-msgid "Now Select both tracks...\n"
-msgstr "Valitse molemmat raiteet...\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:145
+msgid "Save layout"
+msgstr "Tallenna ratasuunnitelma"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:79
-msgid "Now Select the lines and squares.\n"
-msgstr "Valitse nyt viivat ja nelikulmiont.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:146
+msgid "Save layout under a new name "
+msgstr "Tallenna ratasuunnitelma uudella nimellä"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:311
-msgid "Now both flanges are on the inside of the two girders.\n"
-msgstr "Nyt kummankin L-palkin pystylappeet ovat sisäpuolella.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:147
+msgid "New layout"
+msgstr "Uusi ratasuunnitelma"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:143
-msgid ""
-"Now create a track parallel to the main-line. Make sure the separation is "
-"reasonable for your scale.\n"
-msgstr ""
-"Luo sitten pääradalle rinnakkainen raide. Varmista, että raideväli on "
-"mittakaavallesi sopiva.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:148
+msgid "Generate parts list"
+msgstr "Luo osaluettelo"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:66
-msgid "Now do the <Group> command.\n"
-msgstr "Nyt suoritetaan ryhmittely-komento.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:149
+msgid "Load a layout"
+msgstr "Lataa ratasuunnitelma"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:301
-msgid "Now drag on a Red arrow to complete the Curve.\n"
-msgstr "Viimeistele kaarre nuolesta raahaamalla.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:150
+msgid "Exit the program"
+msgstr "Poistu ohjelmasta"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:98
-msgid "Now draw the green circles...\n"
-msgstr "Piirrä nyt vihreät ympyrät...\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:151
+msgid "Revert to last saved state of layout plan"
+msgstr "Palauta ratasuunnitelma edelliseen tallennettuun tilaan"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:372
-msgid "Now for some touch-ups.\n"
-msgstr "Nyt kohennetaan hieman kaaviota.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:152
+msgid "Edit menu"
+msgstr "Muokkaa -valikko"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:108
-msgid "Now let's look at the curved track.\n"
-msgstr "Katsotaanpa sitten kaarevaa raidetta.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:153
+msgid "Redraw layout"
+msgstr "Uudelleenpiirto ratasuunnitelman objekteille"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:477
-msgid "Now let's try a cross connection.\n"
-msgstr "Kokeillaanpa risteävää liitosta.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:156
+#: ../../../../build/work/app/bin/bllnhlp.c:159
+msgid "Tools menu"
+msgstr "Työkalut -valikko"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:384
-msgid "Now move the right side of the siding over.\n"
-msgstr "Siirretään liikennepaikan oikeaa puolta vasemmalle.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:157
+msgid "View menu"
+msgstr "Näytä -valikko"
-#: ../wlib/gtklib/psprint.c:1322
-msgid "Now printing"
-msgstr "Tulostetaan"
+#: ../../../../build/work/app/bin/bllnhlp.c:158
+msgid "Toolbar configuration"
+msgstr "Työkalurivin asetukset"
-#: ../wlib/gtklib/psprint.c:914
-#, c-format
-msgid "Now printing %s"
-msgstr "Tulostetaan %s"
+#: ../../../../build/work/app/bin/bllnhlp.c:160
+msgid "Options menu"
+msgstr "Asetukset -valikko"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:183
-msgid "Now remove the First section of the Path,\n"
-msgstr "Valitse nyt reitin ensimmäinen osuus,\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:161
+msgid "Playback/Record commands"
+msgstr "Nauhoita/toista komentoja"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:166
-msgid "Now select the end of one of the Branches\n"
-msgstr "Valitse nyt toisen haaran pää.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:162
+msgid "Window menu"
+msgstr "Ikkunoiden valinta"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:93
-msgid "Now suppose we want to replace the black squares with green circles.\n"
-msgstr ""
-"Oletetaan, että haluamme vaihtaa mustien nelikulmioiden paikalle vihreät "
-"ympyrät.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:163
+msgid "Help menu"
+msgstr "Ohje -valikko"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:547
-msgid ""
-"Now that the helix parameters are set we can place the helix on the layout.\n"
-msgstr ""
-"Nyt kun helixin parametrit on aseteltu, voimme asettaa helixin "
-"ratasuunnitelmaan.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:164
+msgid "Recent error messages and explanations"
+msgstr "Viimeisimmät virhesanomat ja selitteet"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:64
-msgid ""
-"Now that we have drawn a rough outline of a switch machine we will group it "
-"with the turnout definition.\n"
-msgstr ""
-"Nyt kun olemme piirtäneet karkean hahmotelman vaihdekoneistosta, "
-"ryhmittelemme sen uudeksi vaihdemäärittelyksi.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:165
+msgid "Move Hot Bar left"
+msgstr "Siirry vasemmalle"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:185
-msgid ""
-"Now the Path goes through the Station End-Point and the name appears on the "
-"Profile dialog.\n"
-msgstr ""
-"Nyt reitti kulkee määrittelemämme aseman kautta ja sen nimi näkyy profiili-"
-"ikkunassa.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:166
+msgid "Move Hot Bar right"
+msgstr "Siirry oikealle"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:259
-msgid ""
-"Now the cursor is about to be moved past the other (far) End-Point of the "
-"straight track. You will receive a warning and the connecting track turns "
-"Red.\n"
-msgstr ""
-"Nyt osoitin siirretään suoran raiteen kauemman päätepisteen ohi. Tästä "
-"varoitetaan tilarivillä ja yhdysraide muuttuu punaiseksi.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:167
+msgid "Total track count"
+msgstr "Raideosien kokonaismäärä"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:565
-msgid ""
-"Now the cursor will be moved within the turntable. Notice the error "
-"message.\n"
-msgstr ""
-"Nyt osoitin viedään kääntöpöydän sisälle. Huomaa virheilmoitus tilarivillä.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:168
+msgid "X Position of cursor"
+msgstr "Kohdistimen X sijainti"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:169
-msgid "Now try to select the End-Point of the other branch.\n"
-msgstr "Yritä nyt valita toisen haaran pää.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:169
+msgid "Y Position of cursor"
+msgstr "Kohdistimen Y sijainti"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:135
-msgid "Now we are going to convert from one scale to another.\n"
-msgstr "Nyt muutamme mittakaavasta toiseen.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:170
+msgid "Drawing scale"
+msgstr "Piirron mittakaava"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:186
-msgid "Now we need to increase the separation where the tracks cross.\n"
-msgstr "Nyt meidän on kasvatettava risteävien raiteiden välistä etäisyyttä.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:171
+msgid "Message and status line"
+msgstr "Viesti- ja tilarivi"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:541
-msgid ""
-"Now we specify the Angular Separation between the enterance and exit to the "
-"helix.\n"
-msgstr "Nyt määrittelemme helixin sisäänkäyntien välisen kulman.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:172
+#: ../../../../build/work/app/bin/bllnhlp.c:173
+msgid "Main layout canvas"
+msgstr "Piirtoalue"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:506
-msgid "Now we want to know the elevation of the lower track.\n"
-msgstr "Nyt haluamme tietää alemman radan korkeustason.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:174
+msgid "Main drawing canvas"
+msgstr "Piirtoalue"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:510
-msgid "Now we want to label the Grade on this section of track.\n"
-msgstr "Nyt haluamme merkitä raiteen tämän kohdan nousukulman.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:175
+msgid "Command buttons"
+msgstr "Komentopainikkeet"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:533
-msgid ""
-"Now we will create a helix in the corner of the layout connected to 2 "
-"tracks.\n"
-msgstr ""
-"Nyt luomme helixin (kierrenousun) ratasuunnitelman nurkkaukseen ja "
-"yhdistämme sen kahteen raiteeseen.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:176
+msgid "Menus"
+msgstr "Valikot"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:412
-msgid "Now we will go back to using the Normal method again.\n"
-msgstr "Nyt palautetaan normaali piirtotapa.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:177
+msgid "Tile, Filename and Window Manager buttons"
+msgstr "Otsikko, tiedostonimi ja ikkunanhallintapainikkeet"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:365
-msgid "Now we'll add push buttons to control the turnouts.\n"
-msgstr "Nyt lisäämme painonapit, joilla ohjataan vaihteita.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:178
+msgid "Turnout and Structure Hot Bar"
+msgstr "Raideosien ja rakennusten valikko"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:107
-msgid "Now when change the Length only the Right End-Point will move.\n"
-msgstr "Nyt kun muutamme pituutta, vain oikeaa päätä lyhennetään.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:179
+msgid "Active layer list and layer buttons"
+msgstr "Tasoluettelo ja tasopainikkeet"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:387
-msgid "Now you can print it.\n"
-msgstr "Nyt voit tulostaa sen.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:180
+msgid "Map window"
+msgstr "Karttaikkuna"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:296
-msgid ""
-"Now you will see the double ended Red arrow connected to the center of the "
-"Curve marked by a small circle.\n"
-msgstr ""
-"Näet kaksisuuntaisen nuolen, joka on yhdistetty viivalla karteen "
-"keskipistettä kuvaavaan pieneen ympyrään.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:181
+msgid "This is the portion of the layout shown in the Main Window canvas"
+msgstr "Tämä osa suunnitelmasta näytetään pääikkunan piirtoalueella"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:385
-msgid "Now, adjust the ends of the mainline and siding tracks.\n"
-msgstr "Lyhennä nyt pääraide ja sivuraide sopivan mittaisiksi.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:182
+msgid "Raise or Lower all Selected Track"
+msgstr "Nosta tai laske kaikkia valittuja raiteita"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:354
-msgid "Now, clear the layout and turn on the Snap Grid.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:183
+msgid "Name of block"
msgstr ""
-"Nyt tyhjennämme ratasuunnitelman ja otamme kohdistusruudukon käyttöön.\n"
-
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:92
-msgid "Now, create a track and place the new turnout on it.\n"
-msgstr "Nyt luodaan raide ja lisätään siihen uusi vaihde.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:189
-msgid "Now, drag the point on the Profile Dialog to change the Elevation.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:184
+msgid "Script that the block will run"
msgstr ""
-"Raahaa nyt profiili-ikkunassa tätä pistettä muuttaaksesi sen korkeustasoa.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:97
-msgid ""
-"Now, hit escape to deselect everything and then Select the 2 squares and "
-"delete them.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:185
+msgid "List of tracks in the Block"
msgstr ""
-"Paina Esc-näppäintä poistaaksesi valinnat objekteista ja valitse sitten "
-"nelikulmiot ja poista ne.\n"
-
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:495
-msgid "Now, select the other branch and set it's elevation to 2\"\n"
-msgstr "Vlitse nyt toinen haara ja aseta sen korkeustaso.\n"
-
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:515
-msgid "Now, set the Elevation to Station and enter the its name.\n"
-msgstr "Valitse \"Asema\" ja syötä tekstikenttään aseman nimi.\n"
-
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:497
-msgid "Now, we set the Elevation at one end of the Siding.\n"
-msgstr "Asetetaan nyt sivuraiteen toisen pään korkeustaso.\n"
-
-#: ../bin/ctrain.c:2001 ../bin/dcar.c:1966
-msgid "Number"
-msgstr "Numero"
-
-#: ../bin/dlayer.c:327
-msgid "Number of Layer Buttons"
-msgstr "Tasopainikkeiden lukumäärä"
-
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:203
-msgid "Number of identical cars to be entered"
-msgstr "Samanlaisten vaunujen tai veturien lukumäärä"
-
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:343
-msgid "Number of layer buttons to show"
-msgstr "Työkalurivillä näytettävien tasopainikkeiden lukumäärä"
-
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:344
-msgid "Number of objects in this layer"
-msgstr "Objektien lukumäärä tällä tasolla"
-
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:328
-msgid "Number of segments in Group"
-msgstr "Lohkojen määrä ryhmässä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:333
-msgid "Number of turns in the helix"
-msgstr "Kokonaisten kierrosten lukumäärä"
-
-#: ../bin/dcar.c:2000
-msgid "Numbers"
-msgstr "Numerot"
+#: ../../../../build/work/app/bin/bllnhlp.c:186
+msgid "Add or Update car object"
+msgstr "Lisää/päivitä tämä vaunu tai veturi"
-#: ../bin/doption.c:189
-msgid "Off"
-msgstr "Pois"
+#: ../../../../build/work/app/bin/bllnhlp.c:187
+msgid "Manufacturer name"
+msgstr "Valmistajan nimi"
-#: ../bin/ctodesgn.c:133 ../bin/ctodesgn.c:134 ../bin/ctodesgn.c:182
-#: ../bin/ctodesgn.c:205 ../bin/ctodesgn.c:207 ../bin/ctodesgn.c:243
-#: ../bin/ctodesgn.c:244 ../bin/ctodesgn.c:280 ../bin/ctodesgn.c:282
-#: ../bin/ctodesgn.c:497
-msgid "Offset"
-msgstr "Siirtymä"
+#: ../../../../build/work/app/bin/bllnhlp.c:190
+msgid "Is the Car a Locomotive?"
+msgstr "Onko kyseessä veturi vai vaunu?"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:494
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:495
-msgid "Offset of the track End-Point from the center line of the turnout"
-msgstr "Raiteen päätepisteen ja vaihteen keskilinjan välinen etäisyys"
+#: ../../../../build/work/app/bin/bllnhlp.c:191
+msgid "Part Number and Description"
+msgstr "Tuotekoodi ja kuvaus"
-#: ../wlib/gtklib/gtkfont.c:417 ../wlib/gtklib/wpref.c:120
-#: ../wlib/gtklib/wpref.c:147 ../wlib/gtklib/psprint.c:829
-#: ../wlib/gtklib/psprint.c:840 ../wlib/gtklib/psprint.c:853
-#: ../wlib/gtklib/psprint.c:1088 ../wlib/gtklib/psprint.c:1094
-#: ../wlib/gtklib/psprint.c:1116 ../wlib/gtklib/psprint.c:1122
-#: ../wlib/gtklib/psprint.c:1283 ../wlib/gtklib/psprint.c:1306
-#: ../bin/doption.c:147 ../bin/doption.c:243 ../bin/doption.c:327
-#: ../bin/doption.c:480 ../bin/doption.c:491 ../bin/doption.c:557
-#: ../bin/dease.c:220 ../bin/draw.c:2188 ../bin/cpull.c:499 ../bin/cpull.c:514
-#: ../bin/cpull.c:516 ../bin/cpull.c:518 ../bin/cgroup.c:962
-#: ../bin/cgroup.c:1009 ../bin/cgroup.c:1024 ../bin/cgroup.c:1063
-#: ../bin/cgroup.c:1089 ../bin/cgroup.c:1148 ../bin/cgroup.c:1592
-#: ../bin/ctodesgn.c:150 ../bin/ctodesgn.c:1040 ../bin/ctodesgn.c:1088
-#: ../bin/ctodesgn.c:1201 ../bin/ctodesgn.c:1501 ../bin/dlayer.c:199
-#: ../bin/dlayer.c:216 ../bin/dlayer.c:643 ../bin/dlayer.c:648
-#: ../bin/cnote.c:96 ../bin/cprint.c:517 ../bin/cprint.c:942
-#: ../bin/tease.c:1034 ../bin/misc.c:300 ../bin/misc.c:350 ../bin/misc.c:1682
-#: ../bin/misc.c:1853 ../bin/misc.c:1877 ../bin/misc.c:1941 ../bin/misc.c:2493
-#: ../bin/misc.c:2521 ../bin/track.c:1273 ../bin/fileio.c:599
-#: ../bin/fileio.c:668 ../bin/fileio.c:779 ../bin/fileio.c:781
-#: ../bin/fileio.c:786 ../bin/fileio.c:946 ../bin/smalldlg.c:89
-#: ../bin/ctrain.c:2530 ../bin/dcustmgm.c:185 ../bin/dcustmgm.c:191
-#: ../bin/dcustmgm.c:200 ../bin/dcustmgm.c:213 ../bin/dcar.c:3528
-#: ../bin/dcar.c:3712 ../bin/dcar.c:3716 ../bin/dcar.c:3720 ../bin/dcar.c:3725
-#: ../bin/dcar.c:4039 ../bin/dcar.c:4150 ../bin/dcar.c:4528 ../bin/ctext.c:152
-#: ../bin/dbitmap.c:65 ../bin/dbitmap.c:122 ../bin/dbitmap.c:200
-#: ../bin/dbitmap.c:235 ../bin/cselect.c:669 ../bin/cselect.c:761
-#: ../bin/cselect.c:1234 ../bin/csnap.c:574 ../bin/csnap.c:707
-#: ../bin/cstruct.c:759 ../bin/cstruct.c:768 ../bin/cstruct.c:870
-#: ../bin/macro.c:932 ../bin/macro.c:936 ../bin/macro.c:1013
-#: ../bin/macro.c:1119 ../bin/macro.c:1347 ../bin/macro.c:1363
-#: ../bin/misc2.c:412 ../bin/dprmfile.c:87 ../bin/dprmfile.c:101
-#: ../bin/dprmfile.c:114 ../bin/dprmfile.c:156 ../bin/dprmfile.c:431
-#: ../bin/param.c:1798 ../bin/param.c:1922 ../bin/param.c:1925
-#: ../bin/param.c:2047 ../bin/param.c:2053 ../bin/cturnout.c:2281
-#: ../bin/cturnout.c:2408 ../bin/dcmpnd.c:390 ../bin/dcmpnd.c:401
-#: ../bin/dcmpnd.c:535 ../bin/cdraw.c:75 ../bin/cdraw.c:862 ../bin/cundo.c:150
-#: ../bin/cundo.c:154 ../../../../build/xtrkcad/app/bin/bllnhlp.c:514
-msgid "Ok"
-msgstr "Ok"
+#: ../../../../build/work/app/bin/bllnhlp.c:192
+msgid "Manufacturer Part Number"
+msgstr "Valmistajan tuotekoodi"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:506
-msgid "Old Turnout title"
-msgstr "Vanha raideosan otsikko"
+#: ../../../../build/work/app/bin/bllnhlp.c:193
+msgid "Use the Selected figure as the car image"
+msgstr "Käytä valittua kuvaa vaunun tai veturin kuvana"
-#: ../bin/doption.c:189
-msgid "On"
-msgstr "Päällä"
+#: ../../../../build/work/app/bin/bllnhlp.c:194
+msgid "Use the default figure as the car image"
+msgstr "Käytä oletuskuvaa vaunun tai veturin kuvana"
-#: ../bin/dbench.c:61
-msgid "On Edge"
-msgstr "Pysty"
+#: ../../../../build/work/app/bin/bllnhlp.c:195
+msgid "Optional description of the Car Part"
+msgstr "Valinnainen kuvaus mallista"
-#: ../bin/dlayer.c:320
-msgid "On Map"
-msgstr "Näkyy kartalla"
+#: ../../../../build/work/app/bin/bllnhlp.c:196
+msgid "Flip car image"
+msgstr "Käännä kuva"
-#: ../bin/doption.c:374
-msgid "On Program Startup"
-msgstr "Ohjelman käynnistyksessä"
+#: ../../../../build/work/app/bin/bllnhlp.c:197
+msgid "Display Car Item information or reporting marks and dimensions"
+msgstr "Näytä vaunun tai veturin tiedot, tai yhtiötunnukset ja mitat"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:628
-msgid ""
-"On the Car Item and Car Part dialogs, you can enter custom values for "
-"Manufacturer, Part and Road by typing the new value directly into the Drop "
-"Down List."
-msgstr ""
+#: ../../../../build/work/app/bin/bllnhlp.c:198
+msgid "Full Roadname"
+msgstr "Rautatieyhtiön koko nimi"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:629
-msgid ""
-"On the Car Item dialog, you can change the Road, Number, Color and other "
-"values for a Car. This is useful if you repaint or renumber a car. \n"
-"You can also change the Coupler Mounting and Coupler Length if you change "
-"the couplers."
-msgstr ""
+#: ../../../../build/work/app/bin/bllnhlp.c:199
+#: ../../../../build/work/app/bin/bllnhlp.c:200
+msgid "Car Type"
+msgstr "Vaunun tai veturin tyyppi"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:299
-msgid "Once again, drag on a Red arrow to complete the Curve.\n"
-msgstr "Viimeistele kaarre raahaamalla nuolesta.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:201
+msgid "Reporting Marks (Roadname abbreviation)"
+msgstr "Rautatieyhtiön merkintä (lyhenne)"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:482
-msgid "One the End-Points that can be selected"
-msgstr ""
+#: ../../../../build/work/app/bin/bllnhlp.c:202
+#: ../../../../build/work/app/bin/bllnhlp.c:378
+msgid "Car Number"
+msgstr "Vaunun tai veturin numero"
-#: ../bin/fileio.c:1005
-msgid "Open Tracks"
-msgstr "Avaa"
+#: ../../../../build/work/app/bin/bllnhlp.c:203
+msgid "Car body Color"
+msgstr "Vaunun tai veturin rungon väri"
-#: ../bin/ctrain.c:721
-msgid "Open Turnout"
-msgstr "Avoin vaihde"
+#: ../../../../build/work/app/bin/bllnhlp.c:204
+msgid "Length of car body"
+msgstr "Rungon pituus"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:181
-msgid "Optional description of the Car Part"
-msgstr "Valinnainen kuvaus mallista"
+#: ../../../../build/work/app/bin/bllnhlp.c:205
+msgid "Width of car body"
+msgstr "Rungon leveys"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:149
-msgid "Options menu"
-msgstr "Asetukset -valikko"
+#: ../../../../build/work/app/bin/bllnhlp.c:206
+msgid "Distance between Trucks "
+msgstr "Telien keskikohtien välinen etäisyys"
-#: ../bin/param.c:114
-msgid "Orange"
-msgstr "Oranssi"
+#: ../../../../build/work/app/bin/bllnhlp.c:207
+msgid "Coupler are mounted on body or truck"
+msgstr "Onko kytkimet kiinnitetty runkoon vai teleihin"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:395
-msgid "Order of printing pages"
-msgstr "Sivujen tulostusjärjestys"
+#: ../../../../build/work/app/bin/bllnhlp.c:208
+msgid "Overall Coupled Length"
+msgstr "Kokonaispituus kytkimet mukaan lukien"
-#: ../bin/cdraw.c:196
-msgid "Orientation"
-msgstr "Suunta"
+#: ../../../../build/work/app/bin/bllnhlp.c:209
+msgid "Coupler Length from end of car"
+msgstr "Kytkinten ulkonema vaunun tai veturin päästä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:295
-msgid "Orientation of Benchwork"
-msgstr "Runkorakenteen suunta"
+#: ../../../../build/work/app/bin/bllnhlp.c:210
+msgid "Diagram of Car"
+msgstr "Vaunun tai veturin kaaviokuva"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:403
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:404
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:406
-msgid ""
-"Origin of the print grid. This is useful if you want to reprint a set of "
-"pages"
-msgstr ""
-"Tulostusruudukon origo. Tämä on hyödyllinen tulostettaessa sivuja uudelleen"
+#: ../../../../build/work/app/bin/bllnhlp.c:211
+msgid "Item Index Number"
+msgstr "Kohteen indeksinumero"
-#: ../bin/cturntbl.c:239 ../bin/cprint.c:132 ../bin/tease.c:501
-#: ../bin/compound.c:517 ../bin/cdraw.c:198
-msgid "Origin: X"
-msgstr "Origo: X"
+#: ../../../../build/work/app/bin/bllnhlp.c:212
+msgid "Original Purchase Price"
+msgstr "Alkuperäinen ostohinta"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:432
-msgid "Original Gauge of the selected obkects"
-msgstr "Valittujen objektien alkuperäinen raideleveys"
+#: ../../../../build/work/app/bin/bllnhlp.c:214
+msgid "Condition of car"
+msgstr "Vaunun tai veturin kunto"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:201
+#: ../../../../build/work/app/bin/bllnhlp.c:215
msgid "Original Purchase Date"
msgstr "Ostopäivä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:198
-msgid "Original Purchase Price"
-msgstr "Alkuperäinen ostohinta"
+#: ../../../../build/work/app/bin/bllnhlp.c:216
+msgid "Last Service Date"
+msgstr "Milloin viimeksi huollettu"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:431
-msgid "Original Scale of the selected objects"
-msgstr "Valittujen objektien alkuperäinen mittakaava"
+#: ../../../../build/work/app/bin/bllnhlp.c:217
+msgid "Number of identical cars to be entered"
+msgstr "Samanlaisten vaunujen tai veturien lukumäärä"
-#: ../bin/doption.c:191 ../bin/dcar.c:485
-msgid "Other"
-msgstr "Muut"
+#: ../../../../build/work/app/bin/bllnhlp.c:218
+msgid "Do all the cars have the same Number?"
+msgstr "Onko kaikilla vaunuilla tai vetureilla sama numero?"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:50
-msgid "Other commands"
-msgstr "Muut komennot"
+#: ../../../../build/work/app/bin/bllnhlp.c:219
+msgid "Notes about the car"
+msgstr "Vaunuun tai veturiin liittyviä muistiinpanoja"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:446
-msgid "Other tracks have been shifted slightly to close the gap.\n"
-msgstr "Muita raideosia siirrettiin hieman, jotta rako saatiin suljettua.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:220
+#: ../../../../build/work/app/bin/bllnhlp.c:221
+msgid "Create a new car Part or Prototype definitions"
+msgstr "Luo uusi malli tai esikuva"
-#: ../bin/ctodesgn.c:206
-msgid "Outer Angle"
-msgstr "Ulomman raiteen kulma"
+#: ../../../../build/work/app/bin/bllnhlp.c:222
+msgid "Finds the selected Car Item on the layout"
+msgstr "Etsii valitun junan ratasuunnitelmasta"
-#: ../bin/ctodesgn.c:208
-msgid "Outer Length"
-msgstr "Ulomman raiteen pituus"
+#: ../../../../build/work/app/bin/bllnhlp.c:223
+#: ../../../../build/work/app/bin/bllnhlp.c:224
+#: ../../../../build/work/app/bin/bllnhlp.c:225
+#: ../../../../build/work/app/bin/bllnhlp.c:226
+msgid "Sort the Item list"
+msgstr "Lajittele luettelo"
-#: ../bin/ctodesgn.c:207
-msgid "Outer Offset"
-msgstr "Ulomman raiteen siirtymä"
+#: ../../../../build/work/app/bin/bllnhlp.c:228
+msgid "Edit the selected Car Item"
+msgstr "Muokkaa valittua kohdetta"
-#: ../bin/doption.c:192
-msgid "Outline"
-msgstr "Ääriviivat"
+#: ../../../../build/work/app/bin/bllnhlp.c:229
+msgid "Add a new Car Item"
+msgstr "Lisää uusi vaunu tai veturi"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:194
-msgid "Overall Coupled Length"
-msgstr "Kokonaispituus kytkimet mukaan lukien"
+#: ../../../../build/work/app/bin/bllnhlp.c:230
+msgid "Delete the selected Car Items"
+msgstr "Poista valitut kohteet"
-#: ../bin/ctodesgn.c:183
-msgid "Overall Length"
-msgstr "Kokonaispituus"
+#: ../../../../build/work/app/bin/bllnhlp.c:231
+msgid "Import a Car Item .csv file"
+msgstr "Tuo .cvs tiedostosta"
-#: ../bin/param.c:196
-msgid "Overflow"
-msgstr "Ylivuoto"
+#: ../../../../build/work/app/bin/bllnhlp.c:232
+msgid "Export a Car Item .csv file"
+msgstr "Vie .cvs tiedostoon"
-#: ../wlib/gtklib/psprint.c:834
-msgid "Overwrite"
-msgstr "Kirjoita päälle"
+#: ../../../../build/work/app/bin/bllnhlp.c:233
+msgid "Create a text list of the Car Items"
+msgstr "Tallenna tekstitiedostoon"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:348
-msgid "Overwrite layer configuration with system default values"
-msgstr "Käytä järjestelmän oletusasetuksia"
+#: ../../../../build/work/app/bin/bllnhlp.c:234
+msgid "Specifies the radius of the circle track"
+msgstr "Määrittelee ympyräradan säteen"
-#: ../bin/misc.c:2135
-msgid "P&rint Setup ..."
-msgstr "Tulostusasetukset ..."
+#: ../../../../build/work/app/bin/bllnhlp.c:235
+msgid "How to draw track being moved/rotated"
+msgstr "Raiteiden piirtotapa liikuteltaessa tai pyöritettäessä"
-#: ../wlib/gtklib/psprint.c:1279
-msgid "PS Font"
-msgstr "PS kirjasin"
+#: ../../../../build/work/app/bin/bllnhlp.c:236
+msgid "Default command is Describe or Select"
+msgstr "Onko oletuskomentona \"määrittele\" vai \"valitse\""
-#: ../bin/ctodesgn.c:1415
-msgid "Page"
-msgstr "Sivu"
+#: ../../../../build/work/app/bin/bllnhlp.c:237
+msgid "Action to invoke on Right-Click"
+msgstr "Hiiren 2-painikkeen toiminto"
-#: ../wlib/gtklib/psprint.c:749
-#, c-format
-msgid "Page %d"
-msgstr "Sivu %d"
+#: ../../../../build/work/app/bin/bllnhlp.c:239
+msgid "The list of control elements"
+msgstr ""
-#: ../wlib/gtklib/psprint.c:916
-msgid "Page 1"
-msgstr "Sivu 1"
+#: ../../../../build/work/app/bin/bllnhlp.c:240
+#, fuzzy
+msgid "Edit the element"
+msgstr "Muokkaa valittua kohdetta"
-#: ../bin/cprint.c:117
-msgid "Page Format"
-msgstr "Sivun muotoilu"
+#: ../../../../build/work/app/bin/bllnhlp.c:241
+#, fuzzy
+msgid "Delete the element"
+msgstr "Poista valitut kohteet"
-#: ../bin/cprint.c:113
-msgid "Page Width"
-msgstr "Sivun leveys"
+#: ../../../../build/work/app/bin/bllnhlp.c:242
+msgid "Contents Label for new Parameter file"
+msgstr "Parametritiedoston sisältömerkintä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:525
-msgid "Page orientation"
-msgstr "Sivun suunta"
+#: ../../../../build/work/app/bin/bllnhlp.c:243
+msgid "List of custom designed turnouts and structures"
+msgstr "Luettelo itse suunnitelluista raideosista ja rakennuksista"
-#: ../bin/param.c:110
-msgid "Pale Green"
-msgstr ""
+#: ../../../../build/work/app/bin/bllnhlp.c:244
+msgid "Invoke designer editor"
+msgstr "Muokkaa valittua kohdetta"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:245
+msgid "Remove selected entries"
+msgstr "Poista valitut kohteet"
-#: ../wlib/gtklib/psprint.c:1252 ../wlib/gtklib/psprint.c:1258
-msgid "Paper Size"
-msgstr "Paperin koko"
+#: ../../../../build/work/app/bin/bllnhlp.c:246
+msgid "Copy selected entries to Parameter File"
+msgstr "Siirrä valitut kohteet parametritiedostoon"
-#: ../bin/cparalle.c:180 ../../../../build/xtrkcad/app/i18n/custmsg.h:44
-msgid "Parallel"
-msgstr "Rinnakkainen"
+#: ../../../../build/work/app/bin/bllnhlp.c:247
+msgid "Create a New part or prototype"
+msgstr "Luo uusi malli tai esikuva"
-#: ../bin/fileio.c:528
-msgid "Parameter"
-msgstr "Parametri"
+#: ../../../../build/work/app/bin/bllnhlp.c:248
+msgid "Update custom file and close"
+msgstr "Päivitä tiedosto ja sulje ikkuna"
-#: ../bin/misc.c:2144
-msgid "Parameter &Files ..."
-msgstr "Parametritiedostot ..."
+#: ../../../../build/work/app/bin/bllnhlp.c:249
+msgid "Executes the next step of the demo"
+msgstr "Suorittaa seuraavan vaiheen demossa"
-#: ../bin/dprmfile.c:431
-msgid "Parameter Files"
-msgstr "Parametritiedostot"
+#: ../../../../build/work/app/bin/bllnhlp.c:250
+msgid "Skip to next demo"
+msgstr "Siirry seuraavaan demoon"
-#: ../bin/dcustmgm.c:234
-msgid "Parameter File|*.xtp"
-msgstr "Parametritiedosto|*.xtp"
+#: ../../../../build/work/app/bin/bllnhlp.c:251
+msgid "Stops the demonstration and returns you to XTrackCAD"
+msgstr "Pysäyttää demon ja palaa XTrackCADin normaaliin tilaan"
-#: ../bin/dprmfile.c:432
-msgid "Parameter files|*.xtp"
-msgstr "Parametritiedostot|*.xtp"
+#: ../../../../build/work/app/bin/bllnhlp.c:252
+msgid "Select speed of Playback"
+msgstr "Valitse toiston nopeus"
-#: ../bin/dcar.c:1943
-msgid "Part"
-msgstr "Tuote"
+#: ../../../../build/work/app/bin/bllnhlp.c:253
+msgid "This is where comments about the demo are displayed"
+msgstr "Tässä näytetään demojen kommentit"
-#: ../bin/doption.c:196 ../bin/doption.c:197 ../bin/dcustmgm.c:46
-#: ../bin/dcar.c:4070 ../bin/dcar.c:4075 ../bin/cstruct.c:62
-#: ../bin/compound.c:521 ../bin/cturnout.c:68
-msgid "Part No"
-msgstr "Tuotekoodi"
+#: ../../../../build/work/app/bin/bllnhlp.c:290
+msgid "Move the Main canvas if you drag near the edge"
+msgstr "Siirrä näkymää automaattisesti raahattaessa hiirellä lähellä reunoja"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:428
-msgid "Part Nuber of Object"
-msgstr "Tuotekoodi"
+#: ../../../../build/work/app/bin/bllnhlp.c:291
+msgid "Color tracks or other objects by layer"
+msgstr "Väritä raiteet ja muut objektit tasojen mukaan"
-#: ../bin/dcar.c:1945 ../../../../build/xtrkcad/app/bin/bllnhlp.c:327
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:496
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:497
-msgid "Part Number"
-msgstr "Tuotekoodi"
+#: ../../../../build/work/app/bin/bllnhlp.c:292
+msgid "Controls the drawing of hidden tracks"
+msgstr "Piilossa olevien raiteiden piirtotapa"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:177
-msgid "Part Number and Description"
-msgstr "Tuotekoodi ja kuvaus"
+#: ../../../../build/work/app/bin/bllnhlp.c:293
+msgid "Controls the drawing of End-Points"
+msgstr ""
+"Näytetäänkö raiteiden päätepisteet kaikissa raiteissa, vaihteissa vai ei "
+"missään"
-#: ../bin/misc.c:2355
-msgid "Parts &List ..."
-msgstr "Osaluettelo ..."
+#: ../../../../build/work/app/bin/bllnhlp.c:294
+msgid "How to draw track ties"
+msgstr "Ratapölkkyjen piirtotapa"
-#: ../bin/denum.c:133 ../bin/denum.c:134
-msgid "Parts List"
-msgstr "Osaluettelo"
+#: ../../../../build/work/app/bin/bllnhlp.c:295
+msgid "Show crosshair at center of curves"
+msgstr ""
-#: ../bin/misc.c:2081 ../bin/misc.c:2094 ../bin/fileio.c:1458
-msgid "Paste"
-msgstr "Liitä"
+#: ../../../../build/work/app/bin/bllnhlp.c:296
+msgid "Drawing scale when to draw tracks with 2 rails"
+msgstr ""
+"Näytön mittakaavan raja-arvo, jolloin raiteet piirretään yhtenä tai kahtena "
+"kiskona."
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:117
-msgid "Pause/Resume Trains"
-msgstr "Pysäytä/jatka ajamista"
+#: ../../../../build/work/app/bin/bllnhlp.c:297
+msgid "Drawing scale of the map window"
+msgstr "Karttaikkunan piirtomittakaava"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:92
-msgid "Perferences dialog"
-msgstr "Ominaisuudet"
+#: ../../../../build/work/app/bin/bllnhlp.c:298
+msgid "Whether the main layout is updated while dragging on the Map"
+msgstr "Päivitetäänkö pääikkunan näkymä kartassa valitun alueen mukaan"
-#: ../bin/dlayer.c:323
-msgid "Personal Preferences"
-msgstr "Omat asetukset"
+#: ../../../../build/work/app/bin/bllnhlp.c:299
+msgid "Enable labels for Turnouts, Flextrack Lengths and Elevations"
+msgstr "Määrittelee missä kohteissa näytetään merkintöjä"
-#: ../bin/cturnout.c:2289
-msgid "Pick turnout and active End Point, then place on the layout"
+#: ../../../../build/work/app/bin/bllnhlp.c:300
+msgid "When to label Turnout, Flextrack Lengths and Elevations"
msgstr ""
-"Valitse ensin vaihde ja aktiivinen päätepiste ja aseta sitten paikoilleen"
-
-#: ../bin/cstruct.c:319 ../bin/cstruct.c:346
-msgid "Pier Number"
-msgstr "Pilarin numero"
+"Milloin näytetään merkinnät. Loitonnettaessa tästä arvosta, merkinnät eivät "
+"enää näy."
-#: ../bin/param.c:130
-msgid "Pink"
-msgstr "Vaaleanpunainen"
+#: ../../../../build/work/app/bin/bllnhlp.c:301
+msgid "Font size for labels on layout"
+msgstr "Merkintöjen kirjasinkoko ratasuunnitelmassa"
-#: ../bin/tcurve.c:351 ../bin/tease.c:508 ../bin/tstraigh.c:83
-#: ../bin/cdraw.c:202 ../bin/cmisc.c:114
-msgid "Pivot"
-msgstr "Kiertopiste"
+#: ../../../../build/work/app/bin/bllnhlp.c:302
+msgid "Label elements on the Hot Bar"
+msgstr "Hot Bar:ssa esitettävät merkinnät"
-#: ../bin/cstruct.c:874 ../bin/cturnout.c:2412
-#, c-format
-msgid "Place %s and draw into position"
-msgstr "Aseta %s ja raahaa paikoilleen"
+#: ../../../../build/work/app/bin/bllnhlp.c:303
+msgid "Label elements on layout"
+msgstr "Merkintöjen sisältö ratasuunnitelmassa"
-#: ../bin/cstraigh.c:49
-msgid "Place 1st end point of Straight track"
-msgstr "Aseta suoran raiteen 1. päätepiste"
+#: ../../../../build/work/app/bin/bllnhlp.c:304
+msgid "Label elements for lists"
+msgstr "Luetteloissa näytettävät merkinnät"
-#: ../bin/cturnout.c:1876
-msgid "Place New Turnout"
-msgstr "Aseta uusi vaihde"
+#: ../../../../build/work/app/bin/bllnhlp.c:305
+msgid "How to group cars on the Train Hot Bar"
+msgstr "Miten vaunut ja veturit ryhmitellään Junat-Hot Bar:ssa"
-#: ../bin/cstruct.c:533
-msgid "Place Structure"
-msgstr "Aseta rakennus"
+#: ../../../../build/work/app/bin/bllnhlp.c:306
+msgid "Delay (in mS) between updating train movements"
+msgstr "Junien piirtoväli ajettaessa (millisekunteina)"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:118
-msgid "Place a car on the layout"
-msgstr "Sijoita vaunu tai veturi ratasuunnitelmaan"
+#: ../../../../build/work/app/bin/bllnhlp.c:307
+msgid "Don't show trains in tunnels when tunnels are hidden"
+msgstr ""
+"Ei näytetä junia tunneleissa, jos tunnelien piirtotapa on \"piilotettu\""
-#: ../bin/cnote.c:358 ../../../../build/xtrkcad/app/bin/bllnhlp.c:87
-msgid "Place a note on the layout"
-msgstr "Lisää muistiinpano ratasuunnitelmaan"
+#: ../../../../build/work/app/bin/bllnhlp.c:308
+msgid "Display unconnected endpoints of track with sepecial marks"
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:112
-msgid "Place a structure on the layout"
-msgstr "Lisää rakennus"
+#: ../../../../build/work/app/bin/bllnhlp.c:309
+msgid "Whether zoom is locked to the bottom left corner or the center point"
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:121
-msgid "Place a turnout or sectional track"
-msgstr "Lisää vaihde tai palaraide"
+#: ../../../../build/work/app/bin/bllnhlp.c:311
+msgid "Width of the lines"
+msgstr "Viivojen paksuus"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:123
-msgid "Place a turntable"
-msgstr "Lisää kääntöpöytä"
+#: ../../../../build/work/app/bin/bllnhlp.c:312
+msgid "Color of the lines"
+msgstr "Viivojen väri"
-#: ../bin/ccurve.c:686
-msgid "Place circle"
-msgstr "Aseta ympyrä"
+#: ../../../../build/work/app/bin/bllnhlp.c:313
+msgid "List of types of Lumber"
+msgstr "Luettelo puutavaran tyypeistä"
-#: ../bin/ccurve.c:671
-msgid "Place circle center"
-msgstr "Aseta ympyrän keskipiste"
+#: ../../../../build/work/app/bin/bllnhlp.c:314
+msgid "Color of Benchwork"
+msgstr "Runkorakenteen väri"
-#: ../bin/chndldto.c:68
-msgid "Place frog and drag angle"
-msgstr "Aseta risteyskappale ja raahaa asettaaksesi kulma"
+#: ../../../../build/work/app/bin/bllnhlp.c:315
+msgid "Orientation of Benchwork"
+msgstr "Runkorakenteen suunta"
-#: ../bin/macro.c:1150
-msgid "Playback"
-msgstr "Toisto"
+#: ../../../../build/work/app/bin/bllnhlp.c:316
+msgid "Size of Dimension Arrows"
+msgstr "Mittajanan nuolten koko"
-#: ../../../../build/xtrkcad/app/help/messages.h:132
-msgid "Playback TIMEEND without TIMESTART"
-msgstr "Toistossa TIMEEND ilman TIMESTART:ia"
+#: ../../../../build/work/app/bin/bllnhlp.c:317
+msgid "This controls the sharpness of the easement curve"
+msgstr "Tällä säädellään kaarreloivennuksen jyrkkyyttä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:36
-msgid "Playback demos"
-msgstr "Toista nauhoitettuja demoja"
+#: ../../../../build/work/app/bin/bllnhlp.c:318
+msgid "Minimum radius"
+msgstr "Pienin karresäde"
-#: ../../../../build/xtrkcad/app/help/messages.h:134
-#, c-format
-msgid ""
-"Playback file version %ld is lower than the\n"
-"minimum supported version %d.\n"
-"You need to update your layout file using an\n"
-"older version of %s"
-msgstr ""
-"Tiedoston versio %ld on pienempi kuin pienin tuettu versio %d\n"
-"Ratasuunnitelmasi täytyy päivittää käyttäen vanhempaa versiota %s:sta."
+#: ../../../../build/work/app/bin/bllnhlp.c:319
+msgid "Maximum offset"
+msgstr "Suurin siirtymä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:150
-msgid "Playback/Record commands"
-msgstr "Nauhoita/toista komentoja"
+#: ../../../../build/work/app/bin/bllnhlp.c:320
+msgid "Easement length"
+msgstr "Kaarreloivennuksen pituus"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:284
+#: ../../../../build/work/app/bin/bllnhlp.c:321
msgid ""
-"Please click Step for the next demo or click Quit to return to XTrackCAD.\n"
+"These radio buttons are a short-cut for Values of 0.0, 0.5, 1.0 and 2.0. "
+"None turns Easements off"
msgstr ""
-"Paina Seuraava vaihe tai Seuraava, siirtyäksesi seuraavaan demoon tai Lopeta "
-"palataksesi XTrackCADin perustilaan.\n"
-
-#: ../bin/cdraw.c:192
-msgid "Point Count"
-msgstr "Pisteitä"
+"Nämä painikkeet ovat pikavalintoja arvoille 0,0, 0,5, 1,0 ja 2,0. Mikään "
+"näistä ei poista kaarreloivennusta käytöstä."
-#: ../bin/doption.c:353
-msgid "Polar"
-msgstr "Polaarinen"
+#: ../../../../build/work/app/bin/bllnhlp.c:322
+msgid "Complete easement selection"
+msgstr "Hyväksy kaarreloivennukse asetukset ja sulje ikkuna"
-#: ../bin/cdraw.c:459 ../bin/cdraw.c:1046
-msgid "Poly Line"
-msgstr "Monikulmio"
+#: ../../../../build/work/app/bin/bllnhlp.c:323
+msgid "Type of elevation"
+msgstr "Tyyppi"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:56
-msgid "Poly-Shapes"
-msgstr "Monikulmiot"
+#: ../../../../build/work/app/bin/bllnhlp.c:324
+msgid "Height of End Point"
+msgstr "Päätepisteen korkeus"
-#: ../bin/cdraw.c:465 ../bin/cdraw.c:838 ../bin/cdraw.c:1047
-msgid "Polygon"
-msgstr "Monikulmio"
+#: ../../../../build/work/app/bin/bllnhlp.c:325
+msgid "Compute elevation based on neighbors"
+msgstr "Laske korkeudet viereisten perusteella"
-#: ../bin/cdraw.c:833
-msgid "Polyline"
-msgstr "Monikulmio"
+#: ../../../../build/work/app/bin/bllnhlp.c:326
+msgid "Compute grade based on neighbors"
+msgstr "Laske nousukulma viereisten perusteella"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:389
-msgid ""
-"Polylines and Polygons (created with the <Draw> command) can be modified by "
-"dragging on their Corners or Edges.\n"
-msgstr ""
-"Monikulmioita voidaan muokata raahaamalla niiden kulmista tai reunoista.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:327
+msgid "Specify a name for an End-Point"
+msgstr "Määrittele päätepisteen nimi (aseman nimi)"
-#: ../bin/dcar.c:1089 ../bin/dcar.c:4777
-msgid "Poor"
-msgstr "Huono"
+#: ../../../../build/work/app/bin/bllnhlp.c:329
+msgid "Print parts list"
+msgstr "Tulosta osaluettelo"
-#: ../wlib/gtklib/psprint.c:1155 ../bin/cprint.c:97
-msgid "Portrait"
-msgstr "Pysty"
+#: ../../../../build/work/app/bin/bllnhlp.c:330
+#: ../../../../build/work/app/bin/bllnhlp.c:430
+#: ../../../../build/work/app/bin/bllnhlp.c:530
+msgid "Invoke the Print Setup dialog"
+msgstr "Avaa tulostusasetusten ikkuna"
-#: ../bin/cnote.c:148 ../bin/ctrain.c:171
-msgid "Position"
-msgstr "Sijainti"
+#: ../../../../build/work/app/bin/bllnhlp.c:331
+msgid "Save parts list to file"
+msgstr "Tallenna osaluettelo tiedostoon"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:423
-msgid "Possible turnouts"
-msgstr "Mahdolliset raideosat"
+#: ../../../../build/work/app/bin/bllnhlp.c:332
+msgid "This is the list of parts for the layout"
+msgstr "Tämä on ratasuunnitelman osaluettelo"
-#: ../bin/param.c:99
-msgid "Powder Blue"
-msgstr ""
+#: ../../../../build/work/app/bin/bllnhlp.c:333
+msgid "Enable prices on the Parts List"
+msgstr "Näytä hinnat osaluettelossa"
-#: ../bin/doption.c:491
-msgid "Preferences"
-msgstr "Ominaisuudet"
+#: ../../../../build/work/app/bin/bllnhlp.c:334
+#: ../../../../build/work/app/bin/bllnhlp.c:337
+msgid "Spacing between major grid lines"
+msgstr "Ruudukon pääviivojen väli"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:349
-msgid "Pressing Close ends the <Turnout> command.\n"
-msgstr "Sulje-painike peruuttaa palaraiteiden asettelun.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:335
+#: ../../../../build/work/app/bin/bllnhlp.c:338
+msgid "Allows the spacing to be subdivided"
+msgstr "Aliviivojen jako"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:604
-msgid ""
-"Pressing the 'Esc' key cancels the current command and invokes the default "
-"command, (which is either Describe or Select)."
-msgstr ""
+#: ../../../../build/work/app/bin/bllnhlp.c:336
+#: ../../../../build/work/app/bin/bllnhlp.c:339
+msgid "Specifies if positions are snaped in this direction"
+msgstr "Määrittelee kohdistetaanko tässä suunnassa"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:516
-msgid ""
-"Pressing the <Delete> button lets you delete selected tracks from the "
-"layout.\n"
-msgstr ""
-"Poista-painikkeella voidaan poistaa valitut raiteet ratasuunnitelmsta.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:340
+#: ../../../../build/work/app/bin/bllnhlp.c:341
+#: ../../../../build/work/app/bin/bllnhlp.c:342
+msgid "Shows the origin and angle of the grid"
+msgstr "Ruudukon origo ja kulma"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:343
-msgid ""
-"Pressing the Ok button on the Turnout dialog will end the <Turnout> command "
-"as well as placing the turnout.\n"
-msgstr ""
-"\"Sulje\" painike valintaikkunassa viimeistelee raideosan asettelun ja "
-"lopettaa toiminnon.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:343
+msgid "Specifies if the grid is shown"
+msgstr "Määrittelee näytetäänkö ruudukko"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:337
-msgid ""
-"Pressing the turnout button displays the Turnout Selection window to let you "
-"choose a turnout to place.\n"
-msgstr ""
-"\"Lisää|Palaraide\" valikosta tai vastaava painike työkaluriviltä avaa "
-"palaraiteiden valinta ikkunan, josta voit valita valmiita raideosia "
-"liitettäväksi ratasuunnitelmaasi.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:344
+msgid "Completes the grid specification"
+msgstr "Hyväksy ruudukon asetukset"
-#: ../bin/smalldlg.c:72
-msgid "Previous Tip"
-msgstr "Edellinen"
+#: ../../../../build/work/app/bin/bllnhlp.c:348
+msgid "Number of segments in Group"
+msgstr "Lohkojen määrä ryhmässä"
-#: ../bin/dpricels.c:46
-msgid "Price"
-msgstr "Hinta"
+#: ../../../../build/work/app/bin/bllnhlp.c:349
+msgid "Replace the Selected object with the new definition?"
+msgstr "Korvaa valittu objekti uudella määrittelyllä?"
-#: ../bin/dpricels.c:155
-msgid "Price List"
-msgstr "Hinnasto"
+#: ../../../../build/work/app/bin/bllnhlp.c:350
+msgid "Creates a new Structure (or Turnout)"
+msgstr "Luo uuden rakennuksen (tai raideosan)"
-#: ../bin/misc.c:2356
-msgid "Price List..."
-msgstr "Hinnasto ..."
+#: ../../../../build/work/app/bin/bllnhlp.c:351
+msgid "Elevation difference of Helix End-Points"
+msgstr "Päätepisteiden välinen korkeusero"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:385
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:386
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:387
-msgid "Price of specified length of flex-track"
-msgstr "Määrätyn mittaisen fleksin hinta"
+#: ../../../../build/work/app/bin/bllnhlp.c:352
+msgid "Helix Radius"
+msgstr "Helixin säde"
-#: ../bin/denum.c:44
-msgid "Prices"
-msgstr "Hinnat"
+#: ../../../../build/work/app/bin/bllnhlp.c:353
+msgid "Number of turns in the helix"
+msgstr "Kokonaisten kierrosten lukumäärä"
-#: ../bin/doption.c:532
-msgid "Primary Axis"
-msgstr "Ensisijainen akseli"
+#: ../../../../build/work/app/bin/bllnhlp.c:354
+msgid "Angle betweek helix entrance and exit"
+msgstr "Sisäänmenon ja ulostulon välinen kulma"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:441
-msgid "Primary Axis of grid rotation"
-msgstr "Ruudukon asettelun ensisijainen akseli"
+#: ../../../../build/work/app/bin/bllnhlp.c:355
+msgid "Grade in helix"
+msgstr "Nousukulma"
-#: ../bin/denum.c:50 ../bin/ctodesgn.c:1708 ../bin/cprint.c:1065
-#: ../bin/cprofile.c:549
-msgid "Print"
-msgstr "Tulosta"
+#: ../../../../build/work/app/bin/bllnhlp.c:356
+msgid "Separation between helix layers"
+msgstr "Helixin kerrosten välinen etäisyys"
-#: ../bin/dbitmap.c:141
-msgid "Print Borders"
-msgstr "Tulosta kehys"
+#: ../../../../build/work/app/bin/bllnhlp.c:357
+msgid "Layer list"
+msgstr "Tasoluettelo"
-#: ../bin/dbitmap.c:142
-msgid "Print Centerline"
-msgstr "Tulosta keskiviiva"
+#: ../../../../build/work/app/bin/bllnhlp.c:358
+msgid "Layer Name"
+msgstr "Tason nimi"
-#: ../bin/cprint.c:118
-msgid "Print Order"
-msgstr "Tulostusjärjestys"
+#: ../../../../build/work/app/bin/bllnhlp.c:359
+msgid "Color of layer"
+msgstr "Tason väri"
-#: ../bin/cprint.c:100
-msgid "Print Registration Marks"
-msgstr "Tulosta kohdistusmerkinnät"
+#: ../../../../build/work/app/bin/bllnhlp.c:360
+msgid "Layer is drawn on Main window"
+msgstr "Taso piirretään pääikkunaan"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:398
-msgid "Print Registration Marks at 1:1?"
-msgstr "Tulosta sivujen kohdistusmerkinnät tulostusmittakaavan ollessa 1:1?"
+#: ../../../../build/work/app/bin/bllnhlp.c:361
+msgid "Layer cannot be changed"
+msgstr "Tasoa ei voi muokata"
-#: ../bin/cprint.c:104 ../../../../build/xtrkcad/app/bin/bllnhlp.c:402
-msgid "Print Roadbed Outline"
-msgstr "Tulosta ratapenkan ulkoreuna"
+#: ../../../../build/work/app/bin/bllnhlp.c:362
+msgid "Layer is drawn on Map window"
+msgstr "Taso piirretään kartalle"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:401
-msgid "Print Roadbed Outline?"
-msgstr "Tulosta ratapenkan ulkoreuna?"
+#: ../../../../build/work/app/bin/bllnhlp.c:363
+msgid "Number of layer buttons to show"
+msgstr "Työkalurivillä näytettävien tasopainikkeiden lukumäärä"
-#: ../bin/cprint.c:103
-msgid "Print Rulers"
-msgstr "Tulosta viivaimet"
+#: ../../../../build/work/app/bin/bllnhlp.c:364
+msgid "Number of objects in this layer"
+msgstr "Objektien lukumäärä tällä tasolla"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:400
-msgid "Print Rulers on all page edges?"
-msgstr "Tulosta viivaimet kaikilla reunoilla?"
+#: ../../../../build/work/app/bin/bllnhlp.c:366
+msgid "Load layer configuration from default"
+msgstr "Lataa oletusasetukset tiedostosta"
-#: ../bin/cprint.c:112
-msgid "Print Scale"
-msgstr "Tulostuksen mittakaava"
+#: ../../../../build/work/app/bin/bllnhlp.c:367
+msgid "Save current layer configuration as default"
+msgstr "Tallenna nykyiset tasojen asetukset oletuksiksi"
-#: ../wlib/gtklib/psprint.c:1253 ../bin/denum.c:51 ../bin/ctodesgn.c:151
-msgid "Print Setup"
-msgstr "Tulostusasetukset"
+#: ../../../../build/work/app/bin/bllnhlp.c:368
+msgid "Overwrite layer configuration with system default values"
+msgstr "Käytä järjestelmän oletusasetuksia"
-#: ../bin/cprint.c:102
-msgid "Print Snap Grid"
-msgstr "Tulosta kohdistusruudukko"
+#: ../../../../build/work/app/bin/bllnhlp.c:369
+#: ../../../../build/work/app/bin/bllnhlp.c:370
+msgid "Specifies the size of the room (in inches or centimeters)"
+msgstr "Määrittele huoneen koko (senttimetreinä tai tuumina)"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:399
-msgid "Print Snap Grid?"
-msgstr "Tulosta kohdistusruudukko?"
+#: ../../../../build/work/app/bin/bllnhlp.c:371
+#, fuzzy
+msgid "Specifies the layout Title that will appear on printouts"
+msgstr "Ratasuunnitelman otsikko. Tämä näkyy tulostuksissa."
-#: ../wlib/gtklib/psprint.c:1285
-msgid "Print Test Page"
-msgstr "Tulosta testisivu"
+#: ../../../../build/work/app/bin/bllnhlp.c:372
+#, fuzzy
+msgid "Specifies the layout Subtitle that will appear on printouts"
+msgstr "Ratasuunnitelman otsikko. Tämä näkyy tulostuksissa."
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:396
-msgid "Print Title, Date, Author and other information at bottom of page?"
-msgstr "Tulosta otsikko, päivämäärä, rekijä ja muut tiedot sivun alaosaan"
+#: ../../../../build/work/app/bin/bllnhlp.c:373
+msgid "Specifies the Modelling Scale"
+msgstr "Määrittelee mittakaavan"
-#: ../bin/dbitmap.c:141
-msgid "Print Titles"
-msgstr "Tulosta otsikot"
+#: ../../../../build/work/app/bin/bllnhlp.c:374
+msgid "Specifies the rail gauge, ie. the distance between the rails"
+msgstr "Määrittelee raideleveyden"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:643
+#: ../../../../build/work/app/bin/bllnhlp.c:375
msgid ""
-"Print To Bitmap allows you to print the track center line. \n"
-"This is useful if you later print the bitmap full size as a template when "
-"laying track."
+"Specifies minimum track radius (in inches or centimeters). Tracks with a "
+"smaller radius are considered exceptional."
msgstr ""
-#: ../wlib/gtklib/psprint.c:1302
-msgid "Print To File"
-msgstr "Tulosta tiedostoon"
-
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:88
-msgid "Print a BitMap"
-msgstr "Tulosta bitmap tiedostoon"
+#: ../../../../build/work/app/bin/bllnhlp.c:376
+msgid ""
+"Specifies maximum track elevation expressed as a percent (%). Tracks with a "
+"larger elevation are considered exceptional."
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:394
-msgid "Print page in Portrait or Landscape format"
-msgstr "Tulosta sivu pysty- tai vaakasuunnassa"
+#: ../../../../build/work/app/bin/bllnhlp.c:379
+msgid ""
+"This is the body of the Note. To change this select Modify from the File "
+"Menu"
+msgstr ""
+"Tämä on muistiinpanon runko. Muuttaaksesi tätä, valitse Tiedosto-valikosta "
+"Muokkaa"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:309
-msgid "Print parts list"
-msgstr "Tulosta osaluettelo"
+#: ../../../../build/work/app/bin/bllnhlp.c:381
+msgid "Specifies number of pixels per inch (or centimeter)"
+msgstr "Määrittelee pikseleiden määrän tuumalla (tai sentillä)"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:409
-msgid "Print selected pages and terminates the print command"
-msgstr "Tulostaa valitut sivut ja päättää tulostuskomennon"
+#: ../../../../build/work/app/bin/bllnhlp.c:383
+msgid ""
+"Specifies whether Layout Titles, Borders or Track Centerlines are printed on "
+"the BitMap"
+msgstr ""
+"Määritelee tulostetaanko ratasuunnitelman otsikot, reunukset tai ratojen "
+"keskiviivat"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:530
-msgid "Print test page"
-msgstr "Tulosta testisivu"
+#: ../../../../build/work/app/bin/bllnhlp.c:384
+msgid "Specifies the separation between parallel tracks"
+msgstr "Määrittelee rinnakkaisten raiteiden etäisyyden toisistaan"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:94
-msgid "Print the layout"
-msgstr "Tulosta ratasuunnitelma"
+#: ../../../../build/work/app/bin/bllnhlp.c:385
+msgid "Enter your name as specified in the XTrackCAD Registration Notice"
+msgstr "Syötä nimesi kuten XTrackCAD rekisteröintitiedotteessa on määritelty"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:417
-msgid "Print the profile"
-msgstr "Tulosta profiili"
+#: ../../../../build/work/app/bin/bllnhlp.c:386
+msgid "Enter the key value as specified in the XTrackCAD Registration Notice"
+msgstr "Syötä avain kuten XTrackCAD rekisteröintitiedotteessa on määritelty"
-#: ../wlib/gtklib/psprint.c:795
-msgid "Print to file ..."
-msgstr "Tulosta tiedostoon..."
+#: ../../../../build/work/app/bin/bllnhlp.c:387
+msgid "Validates the name and key. Terminates the registration command"
+msgstr "Vahvistaa nimen ja avainen, sekä päättää rekisteröitymisen"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:521
-msgid "Print to filename"
-msgstr "Tulostuksen tiedostonimi"
+#: ../../../../build/work/app/bin/bllnhlp.c:388
+#, fuzzy
+msgid "0ᅵ is up or to the right"
+msgstr "Onko 0° ylhäällä vai oikealla"
-#: ../bin/cprint.c:1188
-msgid "Print..."
-msgstr "Tulosta..."
+#: ../../../../build/work/app/bin/bllnhlp.c:389
+msgid "Choose english (inches) or metric (centimeters)"
+msgstr ""
+"Valitse englantilaiset (tuumat) tai metrijärjestelmän (sentit) mukaiset mitat"
-#: ../bin/cprint.c:394
-#, c-format
-msgid "PrintScale %ld:1 Room %s x %s Model Scale %s File %s"
-msgstr "Tulostusmittakaava %ld:1 Huone %s x %s Mittakaava %s Tiedosto %s"
+#: ../../../../build/work/app/bin/bllnhlp.c:390
+msgid "How to display length measurements"
+msgstr "Pituusmittojen esitystapa"
-#: ../wlib/gtklib/psprint.c:1254
-msgid "Printer"
-msgstr "Tulostin"
+#: ../../../../build/work/app/bin/bllnhlp.c:391
+msgid "Do not create tracks to be shorter than this value"
+msgstr "Älä luo tätä lyhyempiä raiteita"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:520
-msgid "Printer Abort Window"
-msgstr "Tulostuksen keskeytys"
+#: ../../../../build/work/app/bin/bllnhlp.c:392
+msgid "Maximum distance between connected end points"
+msgstr "Suurin sallittu etäisyys kahden liitettävän raiteen välillä"
-#: ../wlib/gtklib/psprint.c:968
-msgid "Printer Margin Test Page"
-msgstr "Tulostimen marginaalien testisivu"
+#: ../../../../build/work/app/bin/bllnhlp.c:393
+msgid "Minimum angle between connected End-Points"
+msgstr "Suurin sallittu kulma kahden liitettävän raiteen välillä"
-#: ../wlib/gtklib/psprint.c:1321
-msgid "Printing"
-msgstr "Tulostetaan"
+#: ../../../../build/work/app/bin/bllnhlp.c:394
+msgid "Specifies the minimum angle between tracks connected to a turntable"
+msgstr ""
+"Määrittelee pienimmän kääntöpöydästä lähtevien raiteiden välisen kulman"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:498
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:499
-msgid "Prints a full size diagram of the turnout for checking"
-msgstr "Tulostaa täysikokoisen kaavion vaihteesta tarkastusta varten"
+#: ../../../../build/work/app/bin/bllnhlp.c:395
+msgid "Trains will crash above this speed"
+msgstr ""
+"Suurin sallittu vaunujen kytkentänopeus. Suuremmalla nopeudella aiheutuu "
+"törmäys."
-#: ../bin/cprofile.c:456 ../bin/cprofile.c:1255 ../bin/cprofile.c:1351
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:97
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:40
-msgid "Profile"
-msgstr "Profiili"
+#: ../../../../build/work/app/bin/bllnhlp.c:396
+msgid "Enable/Disable balloon popup help windows"
+msgstr "Käytetäänkö pikaopasteita (tooltip)"
-#: ../bin/cprofile.c:651 ../bin/cprofile.c:1202
-msgid "Profile Command"
-msgstr "Profiili komento"
+#: ../../../../build/work/app/bin/bllnhlp.c:397
+msgid "How far you can move the mouse before its considered a drag"
+msgstr ""
+"Kuinka pitkälle hiirtä voi liikuttaa ennen kuin se käsitetään raahaamiseksi"
-#: ../bin/doption.c:536
-msgid "Profile Path"
-msgstr "Profiilirata"
+#: ../../../../build/work/app/bin/bllnhlp.c:398
+msgid "How long you can hold a mouse button down before its considered a drag"
+msgstr ""
+"Kuinka kauan hiiren painiketta voi pitää alhaalla ennen kuin se käsitetään "
+"raahaamiseksi"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:415
-msgid "Profile of specified path"
-msgstr "Määritellyn reitin profiili"
+#: ../../../../build/work/app/bin/bllnhlp.c:399
+msgid "Minimum distance (in pixels) between grid lines/ticks"
+msgstr "Ruudukon viivojen pienin etäisyys toisistaan pikseleinä"
-#: ../bin/misc.c:2434
+#: ../../../../build/work/app/bin/bllnhlp.c:400
msgid ""
-"Program was not terminated properly. Do you want to resume working on the "
-"previous trackplan?"
+"Specifies the Check Point frequency; number of modifications made since the "
+"last save."
msgstr ""
-"Ohjelmaa ei lopetettu kunnolla. Haluatko jatkaa työskentelyä edellisen "
-"ratasuunnitelman parissa?"
-#: ../bin/cmisc.c:457
-msgid "Properties"
-msgstr "Asetukset"
+#: ../../../../build/work/app/bin/bllnhlp.c:401
+msgid "Resume work on last layout or start with new layout"
+msgstr "Jatka edellistä ratasuunnitelmaa tai aloita uusi ratasuunnitelma"
-#: ../bin/doption.c:244
-msgid "Proto"
-msgstr "Esikuva"
+#: ../../../../build/work/app/bin/bllnhlp.c:403
+msgid "Updated cost of current selected item"
+msgstr "Syötä valitulle tuotteelle uusi hinta"
-#: ../bin/doption.c:245
-msgid "Proto/Manuf"
-msgstr "Esikuva/Valmistaja"
+#: ../../../../build/work/app/bin/bllnhlp.c:405
+msgid "Selection list for prices"
+msgstr "Hintojen valintaluettelo"
-#: ../bin/doption.c:246
-msgid "Proto/Manuf/Part Number"
-msgstr "Esikuva/Valmistaja/Tuotekoodi"
+#: ../../../../build/work/app/bin/bllnhlp.c:406
+#: ../../../../build/work/app/bin/bllnhlp.c:407
+#: ../../../../build/work/app/bin/bllnhlp.c:408
+msgid "Price of specified length of flex-track"
+msgstr "Määrätyn mittaisen fleksin hinta"
-#: ../bin/doption.c:247
-msgid "Proto/Manuf/Partno/Item"
-msgstr "Esikuva/Valmistaja/Tuotekoodi/Tuote"
+#: ../../../../build/work/app/bin/bllnhlp.c:410
+#, fuzzy
+msgid "Controls the printing of a centerline of track cmdPrint"
+msgstr "Piilossa olevien raiteiden piirtotapa"
-#: ../bin/dcar.c:1935 ../bin/dcar.c:1937 ../bin/dcar.c:5106
-msgid "Prototype"
-msgstr "Esikuva"
+#: ../../../../build/work/app/bin/bllnhlp.c:411
+msgid "Controls the reduction (scale) of the printout"
+msgstr "Tulostuksen mittakaava"
-#: ../bin/dcar.c:483
-msgid "Psngr Car"
-msgstr "Matkustajavaunu"
+#: ../../../../build/work/app/bin/bllnhlp.c:412
+msgid "Scaled page width (Scale times physical page width)"
+msgstr "Skaalattu sivun leveys (mittakaava x fyysinen sivun leveys)"
-#: ../bin/cpull.c:473
-msgid "Pull Tracks"
-msgstr "Liitä raiteet"
+#: ../../../../build/work/app/bin/bllnhlp.c:413
+msgid "Sets page size to the maximum (based on scale and physical page size)"
+msgstr ""
+"Aseta sivun koko suurimmaksi mahdolliseksi mittakaavan ja fyysisen sivukoon "
+"mukaan"
-#: ../bin/dcar.c:4072
-msgid "Purc Date"
-msgstr "Ostopäivä"
+#: ../../../../build/work/app/bin/bllnhlp.c:414
+msgid "Scaled page height (Scale times physical page height)"
+msgstr "Skaalattu sivun korkeus (mittakaava x fyysinen sivun korkeus)"
-#: ../bin/dcar.c:4071
-msgid "Purc Price"
-msgstr "Ostohinta"
+#: ../../../../build/work/app/bin/bllnhlp.c:415
+msgid "Sets scale, origin and angle for a one page printout of the layout"
+msgstr ""
+"Asettaa tulostusmittakaavan, origon ja kulman siten, että koko "
+"ratasuunnitelma mahtuu yhdelle sivulle"
-#: ../bin/dcar.c:4077
-msgid "Purch Date"
-msgstr "Ostopäivä"
+#: ../../../../build/work/app/bin/bllnhlp.c:416
+msgid "Print page in Portrait or Landscape format"
+msgstr "Tulosta sivu pysty- tai vaakasuunnassa"
-#: ../bin/dcar.c:4076
-msgid "Purch Price"
-msgstr "Ostohinta"
+#: ../../../../build/work/app/bin/bllnhlp.c:417
+msgid "Order of printing pages"
+msgstr "Sivujen tulostusjärjestys"
-#: ../bin/dcar.c:1994
-msgid "Purchase Date"
-msgstr "Ostopäivä"
+#: ../../../../build/work/app/bin/bllnhlp.c:418
+msgid "Print Title, Date, Author and other information at bottom of page?"
+msgstr "Tulosta otsikko, päivämäärä, rekijä ja muut tiedot sivun alaosaan"
-#: ../bin/dcar.c:3604
-msgid "Purchase Date is not valid"
-msgstr "Ostopäivä ei ole kelvollinen"
+#: ../../../../build/work/app/bin/bllnhlp.c:419
+msgid "Ignore unprintable page margins?"
+msgstr "Ohita tulostumattomat marginaalit?"
-#: ../bin/dcar.c:1988
-msgid "Purchase Price"
-msgstr "Ostohinta"
+#: ../../../../build/work/app/bin/bllnhlp.c:420
+msgid "Print Registration Marks at 1:1?"
+msgstr "Tulosta sivujen kohdistusmerkinnät tulostusmittakaavan ollessa 1:1?"
-#: ../bin/dcar.c:3600
-msgid "Purchase Price is not valid"
-msgstr "Ostohinta ei ole kelvollinen"
+#: ../../../../build/work/app/bin/bllnhlp.c:421
+msgid "Print Snap Grid?"
+msgstr "Tulosta kohdistusruudukko?"
-#: ../bin/param.c:135
-msgid "Purple"
-msgstr "Purppura"
+#: ../../../../build/work/app/bin/bllnhlp.c:422
+msgid "Print Rulers on all page edges?"
+msgstr "Tulosta viivaimet kaikilla reunoilla?"
-#: ../bin/param.c:134
-msgid "Purple2"
-msgstr ""
+#: ../../../../build/work/app/bin/bllnhlp.c:423
+msgid "Print Roadbed Outline?"
+msgstr "Tulosta ratapenkan ulkoreuna?"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:479
+#: ../../../../build/work/app/bin/bllnhlp.c:425
+#: ../../../../build/work/app/bin/bllnhlp.c:426
+#: ../../../../build/work/app/bin/bllnhlp.c:428
msgid ""
-"Pushing the <Describe> button will cancel any other command in progress.\n"
+"Origin of the print grid. This is useful if you want to reprint a set of "
+"pages"
msgstr ""
-"Määrittele -komennon valitseminen keskeyttää minkä tahansa meneillään olevan "
-"komennon.\n"
+"Tulostusruudukon origo. Tämä on hyödyllinen tulostettaessa sivuja uudelleen"
-#: ../bin/dcar.c:1998
-msgid "Quantity"
-msgstr "Määrä"
+#: ../../../../build/work/app/bin/bllnhlp.c:427
+msgid "Resets the origin and angle to 0"
+msgstr "Palauttaa origon ja kulman nollaksi"
-#: ../bin/draw.c:1308 ../bin/misc.c:551 ../bin/macro.c:598
-msgid "Quit"
-msgstr "Lopeta"
+#: ../../../../build/work/app/bin/bllnhlp.c:429
+msgid "Deselects all pages"
+msgstr "Poista sivujen valinnat"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:272
-msgid "Quit - exits the demo and returns to XTrackCAD.\n"
-msgstr "Lopeta - Pysäyttää demon ja palaa XTrackCADin normaaliin tilaan.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:431
+msgid "Print selected pages and terminates the print command"
+msgstr "Tulostaa valitut sivut ja päättää tulostuskomennon"
-#: ../bin/dease.c:71 ../bin/tease.c:503
-msgid "R"
-msgstr "R"
+#: ../../../../build/work/app/bin/bllnhlp.c:432
+msgid "List of loaded and unloaded parameter files"
+msgstr "Luettelo ladatuista ja saatavilla olevista parametritiedostoista"
-#: ../bin/misc.c:2157
-msgid "R&edo"
-msgstr "&Tee uudestaan"
+#: ../../../../build/work/app/bin/bllnhlp.c:433
+msgid "Show parameter files by names or descriptions"
+msgstr "Näytä parametritiedostojen nimet tai kuvaukset"
-#: ../bin/ccurve.c:389 ../bin/tcurve.c:343 ../bin/ctodesgn.c:459
-#: ../bin/cdraw.c:187
-msgid "Radius"
-msgstr "Säde"
+#: ../../../../build/work/app/bin/bllnhlp.c:434
+msgid "Toggle the loaded status of the selected parameter file"
+msgstr "Lataa tai poista valittu parametritiedosto"
-#: ../bin/drawgeom.c:321
-#, c-format
-msgid "Radius = %s"
-msgstr "Säde = %s"
+#: ../../../../build/work/app/bin/bllnhlp.c:435
+msgid "Find a parameter file for loading"
+msgstr "Etsi ladattava parametritiedosto"
-#: ../bin/ctodesgn.c:498
-msgid "Radius1"
-msgstr "Säde1"
+#: ../../../../build/work/app/bin/bllnhlp.c:436
+msgid "Update parameter file list"
+msgstr "Päivitä parametritiedostojen luettelo"
-#: ../bin/ctodesgn.c:499
-msgid "Radius2"
-msgstr "Säde2"
+#: ../../../../build/work/app/bin/bllnhlp.c:437
+#, fuzzy
+msgid "Select all parameter files shown"
+msgstr "Luetaan parametritiedostot"
-#: ../bin/ccurve.c:589 ../bin/ccurve.c:593
-#, c-format
-msgid "Radius=%s"
-msgstr "Säde=%s"
+#: ../../../../build/work/app/bin/bllnhlp.c:438
+msgid "Profile of specified path"
+msgstr "Määritellyn reitin profiili"
-#: ../bin/ccurve.c:160 ../bin/ccurve.c:166
-#, c-format
-msgid "Radius=%s Angle=%0.3f"
-msgstr "Säde=%s Kulma=%0.3f"
+#: ../../../../build/work/app/bin/bllnhlp.c:439
+msgid "Clear the profile"
+msgstr "Tyhjennä profiilikäyrä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:171
-msgid "Raise or Lower all Selected Track"
-msgstr "Nosta tai laske kaikkia valittuja raiteita"
+#: ../../../../build/work/app/bin/bllnhlp.c:440
+msgid "Print the profile"
+msgstr "Tulosta profiili"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:15
-msgid "Raise or Lower all Selected tracks"
-msgstr "Nosta tai laske valittuja raiteita"
+#: ../../../../build/work/app/bin/bllnhlp.c:442
+msgid "Stop recording"
+msgstr "Lopeta nauhoitus"
-#: ../bin/misc.c:2257
-msgid "Raise/Lower Elevations"
-msgstr "Nosta/laske korkeuksia"
+#: ../../../../build/work/app/bin/bllnhlp.c:443
+msgid "Insert a message"
+msgstr "Lisää viesti"
-#: ../bin/cselect.c:551 ../bin/cselect.c:576
-msgid "Ratio"
-msgstr "Suhde"
+#: ../../../../build/work/app/bin/bllnhlp.c:444
+msgid "End a message"
+msgstr "Lopeta viestin kirjoitus"
-#: ../bin/misc.c:2654
-msgid "Reading parameter files"
-msgstr "Luetaan parametritiedostot"
+#: ../../../../build/work/app/bin/bllnhlp.c:445
+msgid "Message body"
+msgstr "Viestin runko"
-#: ../bin/misc.c:2319
-msgid "Recent Messages"
-msgstr "Viimeisimmät viestit"
+#: ../../../../build/work/app/bin/bllnhlp.c:446
+msgid "Possible turnouts"
+msgstr "Mahdolliset raideosat"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:153
-msgid "Recent error messages and explanations"
-msgstr "Viimeisimmät virhesanomat ja selitteet"
+#: ../../../../build/work/app/bin/bllnhlp.c:447
+msgid "Skip this turnout"
+msgstr "Hyppää tämän vaihteen yli"
-#: ../bin/misc.c:2262
-msgid "Recompute Elevations"
-msgstr "Laske korkeudet uudelleen"
+#: ../../../../build/work/app/bin/bllnhlp.c:449
+msgid "Manufacturer of Object"
+msgstr "Valmistaja"
-#: ../bin/macro.c:262
-msgid "Record"
-msgstr "Nauhoita"
+#: ../../../../build/work/app/bin/bllnhlp.c:450
+msgid "Description of Object"
+msgstr "Objektin kuvaus"
-#: ../bin/macro.c:163
-msgid "Recording"
-msgstr "Nauhoitus"
+#: ../../../../build/work/app/bin/bllnhlp.c:451
+msgid "Part Nuber of Object"
+msgstr "Tuotekoodi"
-#: ../bin/param.c:128
-msgid "Red"
-msgstr "Punainen"
+#: ../../../../build/work/app/bin/bllnhlp.c:453
+msgid "Rescale by Scale Conversion or by Ratio"
+msgstr "Muunna käyttämällä mittakaavaa tai suhdelukua"
-#: ../bin/misc.c:2084
-msgid "Redo"
-msgstr "Tee uudelleen"
+#: ../../../../build/work/app/bin/bllnhlp.c:454
+msgid "Original Scale of the selected objects"
+msgstr "Valittujen objektien alkuperäinen mittakaava"
-#: ../bin/cundo.c:499 ../../../../build/xtrkcad/app/bin/bllnhlp.c:99
-msgid "Redo last undo"
-msgstr "Tee uudelleen"
+#: ../../../../build/work/app/bin/bllnhlp.c:455
+#, fuzzy
+msgid "Original Gauge of the selected objects"
+msgstr "Valittujen objektien alkuperäinen raideleveys"
-#: ../bin/cundo.c:496
-#, c-format
-msgid "Redo: %s"
-msgstr "Tee uudelleen: %s"
+#: ../../../../build/work/app/bin/bllnhlp.c:456
+msgid "New Scale of the selected objects"
+msgstr "Valittujen objektien uusi mittakaava"
-#: ../bin/misc.c:2198
-msgid "Redraw All"
-msgstr "Uudelleenpiirto kaikille"
+#: ../../../../build/work/app/bin/bllnhlp.c:457
+msgid "New Gauge of the selected objects"
+msgstr "Valittujen objektien uusi raideleveys"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:142
-msgid "Redraw layout"
-msgstr "Uudelleenpiirto ratasuunnitelman objekteille"
+#: ../../../../build/work/app/bin/bllnhlp.c:458
+msgid "Change track dimensions to new scale"
+msgstr "Muuta raiteiden mitat uuteen mittakaavaan"
-#: ../bin/cselect.c:515
-msgid "Refresh Compound"
-msgstr "Päivitä vaihteet/rakennukset"
+#: ../../../../build/work/app/bin/bllnhlp.c:459
+msgid "Change size by this amount"
+msgstr "Muuta kokoa tämän suhdeluvun verran"
-#: ../bin/dcmpnd.c:390
-msgid "Refresh Turnout/Structure"
-msgstr "Päivitä vaihde/rakennus"
+#: ../../../../build/work/app/bin/bllnhlp.c:461
+msgid "Snap Grid Line and Division"
+msgstr "Kohdistusruudukko ja jakomerkinnät"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:90
-msgid "Register"
-msgstr "Rekisteröi"
+#: ../../../../build/work/app/bin/bllnhlp.c:462
+msgid "X and Y position markers"
+msgstr "Kohdistimen X ja Y sijainnin markkerit"
-#: ../bin/ctodesgn.c:193
-msgid "Regular Turnout"
-msgstr "Tavallinen vaihde"
+#: ../../../../build/work/app/bin/bllnhlp.c:463
+msgid "Border rulers, room boundaries and table edges"
+msgstr "Reunaviivaimet, huoneen rajat sekä pöydän reunat"
-#: ../bin/dprmfile.c:330
-msgid "Reload"
-msgstr "Lataa"
+#: ../../../../build/work/app/bin/bllnhlp.c:464
+msgid "Primary Axis of grid rotation"
+msgstr "Ruudukon asettelun ensisijainen akseli"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:230
-msgid "Remove selected entries"
-msgstr "Poista valitut kohteet"
+#: ../../../../build/work/app/bin/bllnhlp.c:465
+msgid "Secondary Axis of grid rotation"
+msgstr "Ruudukon asettelun toissijainen akseli"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:23
-msgid "Removes elevation from Selected tracks"
-msgstr "Poista korkeusmääritykset valituista raiteista"
+#: ../../../../build/work/app/bin/bllnhlp.c:466
+msgid "Unselected tracks"
+msgstr "Normaalit raideosat, joita ei ole valittu"
-#: ../bin/dcustmgm.c:90
-msgid "Rename"
-msgstr "Nimeä uudelleen"
+#: ../../../../build/work/app/bin/bllnhlp.c:467
+msgid "Selected tracks"
+msgstr "Valitut raiteet"
-#: ../bin/dcmpnd.c:535
-msgid "Rename Object"
-msgstr "Nimeä objekti uudelleen"
+#: ../../../../build/work/app/bin/bllnhlp.c:468
+msgid "Color of tracks on the Profile path"
+msgstr "Profiilin muokkauksessa olevat raiteet"
-#: ../bin/ctrain.c:176 ../bin/dcar.c:4071
-msgid "Rep Marks"
-msgstr "Tunnus"
+#: ../../../../build/work/app/bin/bllnhlp.c:469
+msgid "Color of Exceptional tracks"
+msgstr "Erityisraiteiden väri"
-#: ../bin/dcar.c:4076
-msgid "RepMarks"
-msgstr "Tunnus"
+#: ../../../../build/work/app/bin/bllnhlp.c:470
+msgid "Color of track ties"
+msgstr "Ratapölkkyjen väri"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:151
-msgid "Repeat the process for the other tracks in the yard.\n"
-msgstr "Toista prosessi ratapihan muille raiteille.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:471
+msgid "Updates the colors"
+msgstr "Pävitä värit ja sulje ikkuna"
-#: ../bin/dcar.c:1924
-msgid "Repeated"
-msgstr "Sama"
+#: ../../../../build/work/app/bin/bllnhlp.c:472
+msgid "Angle in degrees"
+msgstr "Kulma (asteina)"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:329
-msgid "Replace the Selected object with the new definition?"
-msgstr "Korvaa valittu objekti uudella määrittelyllä?"
+#: ../../../../build/work/app/bin/bllnhlp.c:473
+msgid "Rotate object(s) by specified amount"
+msgstr "Pyöritä objekteja määrätyn verran"
-#: ../bin/cnote.c:99
-msgid "Replace this text with your layout notes"
-msgstr "Korvaa tämä teksti muistiinpanollasi"
+#: ../../../../build/work/app/bin/bllnhlp.c:474
+msgid "Choose commands to be sticky"
+msgstr "Valitse pysyvät komennot"
-#: ../bin/cnote.c:376
-msgid "Replace this text with your note"
-msgstr "Korvaa tämä teksti muistiinpanollasi"
+#: ../../../../build/work/app/bin/bllnhlp.c:475
+msgid "Make the commands sticky"
+msgstr "Hyväksy asetukset ja sulje ikkuna"
-#: ../bin/cgroup.c:599
-msgid "Replace with new group?"
-msgstr "Korvaa uudella ryhmällä?"
+#: ../../../../build/work/app/bin/bllnhlp.c:476
+msgid "List of available structure"
+msgstr "Luettelo saatavilla olevista rakennuksista"
-#: ../bin/dcar.c:1964
-msgid "Reporting Mark"
-msgstr "Yhtiön tunnus"
+#: ../../../../build/work/app/bin/bllnhlp.c:477
+msgid "Diagram of the selected structure"
+msgstr "Valitun rakennuksen kuva"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:187
-msgid "Reporting Marks (Roadname abbreviation)"
-msgstr "Rautatieyhtiön merkintä (lyhenne)"
+#: ../../../../build/work/app/bin/bllnhlp.c:478
+msgid "Hide Selection window when placing Structure"
+msgstr "Piilota valintaikkuna rakennuksen asettamisen ajaksi"
-#: ../bin/cselect.c:761 ../../../../build/xtrkcad/app/i18n/custmsg.h:47
-msgid "Rescale"
-msgstr "Mittakaavan muutos"
+#: ../../../../build/work/app/bin/bllnhlp.c:479
+msgid "Drawing scale and size"
+msgstr "Mittakaava ja koko"
-#: ../bin/cselect.c:635
-msgid "Rescale Tracks"
-msgstr "Muuta raiteiden mittakaavaa"
+#: ../../../../build/work/app/bin/bllnhlp.c:480
+msgid "Complete structure placement"
+msgstr "Lisää rakennus"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:430
-msgid "Rescale by Scale Conversion or by Ratio"
-msgstr "Muunna käyttämällä mittakaavaa tai suhdelukua"
+#: ../../../../build/work/app/bin/bllnhlp.c:481
+msgid "Choose a Pier number"
+msgstr "Valitse pilarin numero"
-#: ../bin/cselect.c:564
-msgid "Rescale by:"
-msgstr "Muunnos:"
+#: ../../../../build/work/app/bin/bllnhlp.c:482
+msgid "Name of the Motor"
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:101
-msgid "Rescale selected objects"
-msgstr "Muuta valittujen objektien mittakaavaa"
+#: ../../../../build/work/app/bin/bllnhlp.c:483
+msgid "Value when switch is normal"
+msgstr ""
-#: ../bin/cprint.c:134 ../bin/dcar.c:1953
-msgid "Reset"
-msgstr "Palauta"
+#: ../../../../build/work/app/bin/bllnhlp.c:484
+msgid "Value when the switch is reversed"
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:470
-msgid "Reset odometer to 0"
-msgstr "Nollaa matkamittarin lukema"
+#: ../../../../build/work/app/bin/bllnhlp.c:485
+msgid "Value for a positive comfirmation of switch position"
+msgstr ""
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:405
-msgid "Resets the origin and angle to 0"
-msgstr "Palauttaa origon ja kulman nollaksi"
+#: ../../../../build/work/app/bin/bllnhlp.c:487
+msgid "Useful information about the program"
+msgstr "Hyödyllisiä tietoja ohjelmasta"
-#: ../bin/misc.c:2434
-msgid "Resume"
-msgstr "Jatka"
+#: ../../../../build/work/app/bin/bllnhlp.c:488
+msgid "Show Tip of the Day every time the program starts"
+msgstr "Näytä päivän vinkki jokaisen käynnistyksen yhteydessä"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:380
-msgid "Resume work on last layout or start with new layout"
-msgstr "Jatka edellistä ratasuunnitelmaa tai aloita uusi ratasuunnitelma"
+#: ../../../../build/work/app/bin/bllnhlp.c:489
+msgid "Show the next Tip of the Day"
+msgstr "Näytä seuraava vinkki"
-#: ../bin/cprint.c:98 ../bin/ctrain.c:754 ../bin/ctrain.c:1011
-msgid "Reverse"
-msgstr "Taakse"
+#: ../../../../build/work/app/bin/bllnhlp.c:490
+msgid "Show the previous Tip of the Day"
+msgstr "Näytä edellinen vinkki"
-#: ../bin/misc.c:2133
-msgid "Revert"
-msgstr "Palauta"
+#: ../../../../build/work/app/bin/bllnhlp.c:492
+msgid "Controls which Command Buttons are displayed"
+msgstr "Valitse työkalurivillä näytettävät painikkeet"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:140
-msgid "Revert to last saved state of layout plan"
-msgstr "Palauta ratasuunnitelma edelliseen tallennettuun tilaan"
+#: ../../../../build/work/app/bin/bllnhlp.c:493
+msgid "List of Cars"
+msgstr "Luettelo vaunuista ja vetureista"
-#: ../bin/dbench.c:65 ../bin/dbench.c:74 ../bin/csplit.c:107
-msgid "Right"
-msgstr "Oikea"
+#: ../../../../build/work/app/bin/bllnhlp.c:494
+msgid "List of active trains"
+msgstr "Luettelo aktiivisista junista"
-#: ../bin/ctodesgn.c:245 ../bin/ctodesgn.c:283
-msgid "Right Angle"
-msgstr "Oikean raiteen kulma"
+#: ../../../../build/work/app/bin/bllnhlp.c:496
+msgid "Train odometer"
+msgstr "Junan matkamittari"
-#: ../bin/doption.c:301
-msgid "Right Click"
-msgstr "Hiiren 2-painike"
+#: ../../../../build/work/app/bin/bllnhlp.c:497
+msgid "Reset odometer to 0"
+msgstr "Nollaa matkamittarin lukema"
-#: ../bin/ctodesgn.c:391
-msgid "Right Crossover"
-msgstr "Raiteenvaihto oikealle"
+#: ../../../../build/work/app/bin/bllnhlp.c:498
+msgid "Find train on layout"
+msgstr "Etsi juna ratasuunnitelmasta"
-#: ../bin/ctodesgn.c:145 ../bin/ctodesgn.c:1754
-msgid "Right Description"
-msgstr "Oikean kuvaus"
+#: ../../../../build/work/app/bin/bllnhlp.c:499
+msgid "Follow train around layout"
+msgstr "Seuraa junaa ratasuunnitelmassa"
-#: ../bin/ctodesgn.c:246 ../bin/ctodesgn.c:284
-msgid "Right Length"
-msgstr "Oikean raiteen pituus"
+#: ../../../../build/work/app/bin/bllnhlp.c:500
+msgid "Flip direction at End Of Track"
+msgstr "Muuta kulkusuunta automaattisesti radan päässä"
-#: ../bin/ctodesgn.c:244 ../bin/ctodesgn.c:282
-msgid "Right Offset"
-msgstr "Oikean raiteen siirtymä"
+#: ../../../../build/work/app/bin/bllnhlp.c:501
+msgid "Change direction of train"
+msgstr "Muuta junan kulkusuunta"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:599
-msgid ""
-"Right-Click on the Hot Bar displays a menu of the different groups of "
-"objects which you can use to jump to the group you are interested in.\n"
-"Pressing a numeric key (1-9 and 0) moves the Hot Bar to corresponding "
-"position (1 is the start, 5 is half way, 0 is the end)."
-msgstr ""
+#: ../../../../build/work/app/bin/bllnhlp.c:502
+msgid "Stop the train"
+msgstr "Pysäytä juna"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:597
-msgid ""
-"Right-Click on the Main window displays a menu list of commands as an "
-"alternative to pressing the buttons on the tool bar or using the menu "
-"accelerator keys."
-msgstr ""
+#: ../../../../build/work/app/bin/bllnhlp.c:503
+msgid "List of available turnouts for the current scale"
+msgstr "Luettelo saatavilla olevista raideosista tässä mittakaavassa"
-#: ../bin/dbench.c:67
-msgid "Right-Down"
-msgstr "Oikea-Alas"
+#: ../../../../build/work/app/bin/bllnhlp.c:504
+msgid ""
+"Diagram of the currently selected turnout. Click on a End-Point to select "
+"the Active End-Point"
+msgstr "Valitun raideosan kaaviokuva. Valitse aktiivinen päätepiste hiirellä."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:600
+#: ../../../../build/work/app/bin/bllnhlp.c:505
msgid ""
-"Right-Drag on the Map window sets the origin and scale of the Main window.\n"
-"The Main window will be centered on the spot where you started the Draw and "
-"how far you Drag will control how large an area you can see on the Main "
-"window."
+"A menu list of various type of turnouts and sectional tracks you can define"
msgstr ""
+"Valikko eri tyyppisistä vaihteista ja palaraiteista joita voit määritellä"
-#: ../bin/dbench.c:71
-msgid "Right-Inverted"
-msgstr "Oikea-Käännetty"
-
-#: ../bin/dbench.c:69
-msgid "Right-Up"
-msgstr "Oikea-Ylös"
-
-#: ../bin/ctrain.c:2001 ../bin/dcar.c:1962
-msgid "Road"
-msgstr "Yhtiö"
-
-#: ../bin/ctodesgn.c:147
-msgid "Roadbed Width"
-msgstr "Ratapenkan leveys"
+#: ../../../../build/work/app/bin/bllnhlp.c:506
+msgid "Hide Selection window when placing Turnout"
+msgstr "Piilota valintaikkuna vaihteen asettamisen ajaksi"
-#: ../bin/dcar.c:4071 ../bin/dcar.c:4076
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:355
-msgid "Roadname"
-msgstr "Rautatieyhtiö"
+#: ../../../../build/work/app/bin/bllnhlp.c:507
+msgid "The selected Active End-Point"
+msgstr "Valittu aktiivinen päätepiste"
-#: ../bin/doption.c:102
-msgid "Room Width"
-msgstr "Huoneen leveys"
+#: ../../../../build/work/app/bin/bllnhlp.c:508
+msgid "Current selected turnout, (displayed in the diagram window)"
+msgstr "Valittu raideosa (kaaviokuva ikkunassa)"
-#: ../bin/param.c:121
-msgid "Rosy Brown"
+#: ../../../../build/work/app/bin/bllnhlp.c:509
+msgid "One the End-Points that can be selected"
msgstr ""
-#: ../bin/misc.c:1877 ../bin/misc.c:2097 ../bin/cselect.c:1897
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:58
-msgid "Rotate"
-msgstr "Pyöritä"
+#: ../../../../build/work/app/bin/bllnhlp.c:511
+#: ../../../../build/work/app/bin/bllnhlp.c:512
+msgid "Angle of the specified track to the center line of the turnout"
+msgstr "Raiteen ja vaihteen keskilinjan välinen kulma"
-#: ../bin/cselect.c:1217 ../bin/cselect.c:1369
-msgid "Rotate Tracks"
-msgstr "Pyöritä raiteita"
+#: ../../../../build/work/app/bin/bllnhlp.c:513
+msgid "Specifies if angles are entered as Frog Numbers or in degrees"
+msgstr "Määrittelee annetaanko kulmat asteina vai risteysnumerona"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:450
-msgid "Rotate object(s) by specified amount"
-msgstr "Pyöritä objekteja määrätyn verran"
+#: ../../../../build/work/app/bin/bllnhlp.c:514
+#: ../../../../build/work/app/bin/bllnhlp.c:515
+msgid "Desciption"
+msgstr "Kuvaus"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:102
-msgid "Rotate selected object(s)"
-msgstr "Pyöritä valittuja objekteja"
+#: ../../../../build/work/app/bin/bllnhlp.c:516
+msgid "Turnout description (Manuf., Size, Part Number, etc)"
+msgstr "Raideosan kuvaus (valmistaja, koko, tuotekoodi, jne.)"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:378
-msgid "Rotate the arrow head by 180° and move into position.\n"
-msgstr "Pyöritä nuolenkärkeä 180° ja siirrä se paikoilleen.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:517
+#: ../../../../build/work/app/bin/bllnhlp.c:518
+#: ../../../../build/work/app/bin/bllnhlp.c:519
+msgid "Length from the base to the end of the specified track"
+msgstr "Etäisyys vaihteen alusta raiteen päähän"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:369
-msgid "Rotate the signals and move them to the proper locations.\n"
-msgstr "Pyöritä opastimia ja siirrä ne paikoilleen.\n"
+#: ../../../../build/work/app/bin/bllnhlp.c:521
+#: ../../../../build/work/app/bin/bllnhlp.c:522
+msgid "Offset of the track End-Point from the center line of the turnout"
+msgstr "Raiteen päätepisteen ja vaihteen keskilinjan välinen etäisyys"
-#: ../bin/param.c:95
-msgid "Royal Blue"
-msgstr ""
+#: ../../../../build/work/app/bin/bllnhlp.c:525
+#: ../../../../build/work/app/bin/bllnhlp.c:526
+msgid "Prints a full size diagram of the turnout for checking"
+msgstr "Tulostaa täysikokoisen kaavion vaihteesta tarkastusta varten"
-#: ../bin/cruler.c:141 ../../../../build/xtrkcad/app/i18n/custmsg.h:51
-msgid "Ruler"
-msgstr "Viivain"
+#: ../../../../build/work/app/bin/bllnhlp.c:527
+msgid "Color of Roadbed lines"
+msgstr "Ratapenkan viivan väri"
-#: ../bin/misc.c:1699 ../bin/misc.c:1728
-msgid "Ruler Button"
-msgstr "Viivain"
+#: ../../../../build/work/app/bin/bllnhlp.c:528
+msgid "Width of Roadbed lines"
+msgstr "Ratapenkan viivan paksuus"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:116
-msgid "Run Trains"
-msgstr "Aja junilla ratasuunnitelmassa"
+#: ../../../../build/work/app/bin/bllnhlp.c:529
+msgid "Width of Roadbed"
+msgstr "Ratapenkan leveys"
-#: ../bin/ctrain.c:714
-msgid "Running"
-msgstr "Liikkeellä"
+#: ../../../../build/work/app/bin/bllnhlp.c:531
+msgid "Closes the window and returns to the Turnout Selection window"
+msgstr "Sulkee ikkunan"
-#: ../bin/param.c:118
-msgid "Saddle Brown"
-msgstr ""
+#: ../../../../build/work/app/bin/bllnhlp.c:532
+msgid "Specifies the diameter of the turntable"
+msgstr "Määrittelee kääntöpöydän halkaisijan"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:515
-msgid "Sample"
-msgstr "Näyte"
+#: ../../../../build/work/app/bin/bllnhlp.c:533
+msgid "Old Turnout title"
+msgstr "Vanha raideosan otsikko"
-#: ../bin/draw.c:1308 ../bin/dlayer.c:325 ../bin/macro.c:1239
-msgid "Save"
-msgstr "Tallenna"
+#: ../../../../build/work/app/bin/bllnhlp.c:534
+msgid "List of available titles"
+msgstr "Luettelo saatavilla olevista otsikoista"
-#: ../bin/misc.c:2132
-msgid "Save &As ..."
-msgstr "Tallenna &nimellä ..."
+#: ../../../../build/work/app/bin/bllnhlp.c:535
+msgid "Leave the Turnouts' title unchanged"
+msgstr "Älä muuta raideosan otsikkoa"
-#: ../bin/denum.c:49
-msgid "Save As ..."
-msgstr "Tallenna nimellä ..."
+#: ../../../../build/work/app/bin/bllnhlp.c:536
+msgid "Invoke the Parameter Files dialog"
+msgstr "Avaa parametritiedostot ikkuna"
-#: ../bin/dbitmap.c:210
-msgid "Save Bitmap"
-msgstr "Tallenna bitmap"
+#: ../../../../build/work/app/bin/bllnhlp.c:537
+msgid "List of available turnouts"
+msgstr "Luettelo saatavilla olevista raideosista"
-#: ../bin/fileio.c:984 ../bin/fileio.c:997
-msgid "Save Tracks"
-msgstr "Tallenna"
+#: ../../../../build/work/app/bin/bllnhlp.c:538
+msgid "Update the Turnouts' title"
+msgstr "Päivitä raideosan otsikko"
-#: ../bin/misc.c:452
-msgid ""
-"Save changes to the layout design before closing?\n"
-"\n"
-"If you don't save now, your unsaved changes will be discarded."
-msgstr ""
-"Tallennetaanko ratasuunnitelma ennen sulkemista?\n"
-"\n"
-"Jos ei tallenneta, kaikki muutokset menetetään."
+#: ../../../../build/work/app/bin/bllnhlp.c:542
+msgid "Sample"
+msgstr "Näyte"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:347
-msgid "Save current layer configuration as default"
-msgstr "Tallenna nykyiset tasojen asetukset oletuksiksi"
+#: ../../../../build/work/app/bin/bllnhlp.c:544
+msgid "Slant"
+msgstr "Kursivoitu"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:134
-msgid "Save layout"
-msgstr "Tallenna ratasuunnitelma"
+#: ../../../../build/work/app/bin/bllnhlp.c:545
+msgid "Font selection dialog"
+msgstr "Kirjasimen valinta"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:135
-msgid "Save layout under a new name "
-msgstr "Tallenna ratasuunnitelma uudella nimellä"
+#: ../../../../build/work/app/bin/bllnhlp.c:546
+msgid "Weight"
+msgstr "Lihavoitu"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:311
-msgid "Save parts list to file"
-msgstr "Tallenna osaluettelo tiedostoon"
+#: ../../../../build/work/app/bin/bllnhlp.c:547
+msgid "Printer Abort Window"
+msgstr "Tulostuksen keskeytys"
-#: ../bin/dcustmgm.c:46 ../bin/dcar.c:4070 ../bin/dcar.c:4075
-#: ../bin/cselect.c:551
-msgid "Scale"
-msgstr "Mittakaava"
+#: ../../../../build/work/app/bin/bllnhlp.c:548
+msgid "Print to filename"
+msgstr "Tulostuksen tiedostonimi"
-#: ../bin/cstruct.c:431
-#, c-format
-msgid "Scale %d:1"
-msgstr "Mittakaava %d:1"
+#: ../../../../build/work/app/bin/bllnhlp.c:549
+msgid "Specify Postscript font alias mapping"
+msgstr "Määrittele Postscript kirjasinalias"
-#: ../../../../build/xtrkcad/app/help/messages.h:136
-#, c-format
+#: ../../../../build/work/app/bin/bllnhlp.c:550
msgid ""
-"Scale %s is not valid\n"
-"Please check your %s.xtq file"
+"Displays the Print Setup window to change printers, orientation, paper size, "
+"etc."
msgstr ""
-"Mittakaava %s ei ole kelvollinen\n"
-"Tarkasta %s.xtq tiedostosi"
-
-#: ../bin/doption.c:106
-msgid "Scale / Gauge"
-msgstr "Mittakaava / raideväli"
-
-#: ../../../../build/xtrkcad/app/help/messages.h:135
-#, c-format
-msgid "Scale index (%d) is not valid"
-msgstr "Mittakaavan indeksi (%d) on virheellinen."
-
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:392
-msgid "Scaled page height (Scale times physical page height)"
-msgstr "Skaalattu sivun korkeus (mittakaava x fyysinen sivun korkeus)"
-
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:390
-msgid "Scaled page width (Scale times physical page width)"
-msgstr "Skaalattu sivun leveys (mittakaava x fyysinen sivun leveys)"
-
-#: ../bin/track.c:1917 ../bin/cjoin.c:513 ../bin/cmisc.c:53
-msgid "Second"
-msgstr "Toinen"
-
-#: ../bin/cjoin.c:690
-msgid "Second "
-msgstr "Toinen "
-
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:361
-msgid "Second step: add LEDs for the turnout position indicators.\n"
-msgstr "Toinen vaihe: Lisää LEDit osoittamaan vaihteiden asentoa.\n"
-
-#: ../bin/doption.c:533
-msgid "Secondary Axis"
-msgstr "Toissijainen akseli"
+"Näyttää tulostusasetusikkunan, josta voi valita tulostimen, muutaa paperin "
+"koon, yms."
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:442
-msgid "Secondary Axis of grid rotation"
-msgstr "Ruudukon asettelun toissijainen akseli"
+#: ../../../../build/work/app/bin/bllnhlp.c:551
+msgid "Closes this dialog"
+msgstr "Sulkee tämän ikkunan"
-#: ../bin/compound.c:773
-msgid "Sectional Track"
-msgstr "Palaraide"
+#: ../../../../build/work/app/bin/bllnhlp.c:552
+msgid "Page orientation"
+msgstr "Sivun suunta"
-#: ../bin/doption.c:195 ../bin/dcar.c:1536 ../bin/cselect.c:1836
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:13
-msgid "Select"
-msgstr "Valitse"
+#: ../../../../build/work/app/bin/bllnhlp.c:553
+msgid "Unprintable margins"
+msgstr "Tulostumattomat marginaalit"
-#: ../bin/misc.c:2168
-msgid "Select &All"
-msgstr "Valitse kaikki"
+#: ../../../../build/work/app/bin/bllnhlp.c:554
+msgid "Updates and closes this dialog"
+msgstr "Hyväksy asetukset ja sulje ikkuna"
-#: ../bin/cjoin.c:481 ../bin/cjoin.c:781 ../bin/cjoin.c:790
-msgid "Select 2nd track"
-msgstr "Valitse 2. raideosa"
+#: ../../../../build/work/app/bin/bllnhlp.c:555
+msgid "Choose paper size"
+msgstr "Valitse paperin koko"
-#: ../bin/misc.c:2169
-msgid "Select Current Layer"
-msgstr "Valitse nykyinen taso"
+#: ../../../../build/work/app/bin/bllnhlp.c:556
+msgid "Choose printer"
+msgstr "Valitse tulostin"
-#: ../bin/celev.c:419
-msgid "Select End-Point"
-msgstr "Valitse päätepiste"
+#: ../../../../build/work/app/bin/bllnhlp.c:557
+msgid "Print test page"
+msgstr "Tulosta testisivu"
-#: ../bin/misc.c:2172
-msgid "Select Stranded Track"
-msgstr "Valitse irtonaiset raiteet"
+#: ../../../../build/work/app/i18n/custmsg.h:7
+msgid "Introduction"
+msgstr "Johdanto"
-#: ../bin/cstruct.c:776
-msgid "Select Structure and then drag to place"
-msgstr "Valitse rakennus ja raahaa paikoilleen"
+#: ../../../../build/work/app/i18n/custmsg.h:8
+msgid "Mouse Actions"
+msgstr "Hiiren toiminnot"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:163
-msgid "Select a Defined Elevation point (marked by Gold dots).\n"
-msgstr "Valitse määriteltyjä korkeustasoja (merkitty keltaisilla täplillä).\n"
+#: ../../../../build/work/app/i18n/custmsg.h:9
+msgid "Dialogs"
+msgstr "Dialogit (ikkunat)"
-#: ../bin/cprofile.c:725
-msgid "Select a Defined Elevation to extend Profile"
-msgstr "Valitse määritelty korkeus laajentaaksesi profiilia"
+#: ../../../../build/work/app/i18n/custmsg.h:10
+msgid "Moving about"
+msgstr "Liikkuminen"
-#: ../bin/cprofile.c:723
-msgid "Select a Defined Elevation to start Profile"
-msgstr "Valitse määritelty korkeus aloittaaksesi profiili"
+#: ../../../../build/work/app/i18n/custmsg.h:11
+msgid "Describe and Select"
+msgstr "Määrittele ja valitse -toiminnot"
-#: ../bin/cprofile.c:1270
-msgid "Select a Defined Elevation to start profile"
-msgstr "Valitse määritelty korkeus aloittaaksesi profiili"
+#: ../../../../build/work/app/i18n/custmsg.h:12
+#, fuzzy
+msgid "Describe"
+msgstr "Kuvaus"
-#: ../../../../build/xtrkcad/app/help/messages.h:122
-msgid "Select an endpoint between two tracks."
-msgstr "Valitse kahden raideosan välinen päätepiste."
+#: ../../../../build/work/app/i18n/custmsg.h:14
+msgid "Simple tracks"
+msgstr "Yksinkertaiset raideosat"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:32
-msgid "Select and Placement"
-msgstr "Valinta ja asettelu"
+#: ../../../../build/work/app/i18n/custmsg.h:15
+msgid "Straight tracks"
+msgstr "Suorat raiteet"
-#: ../bin/cselect.c:1410
-msgid "Select and drag a description"
-msgstr "Valitse ja raahaa merkintöjä"
+#: ../../../../build/work/app/i18n/custmsg.h:16
+msgid "Curved tracks"
+msgstr "Kaarevat raiteet"
-#: ../bin/cpull.c:600
-msgid "Select first End-Point to connect"
-msgstr "Valitse ensimmäinen yhdistettävä päätepiste"
+#: ../../../../build/work/app/i18n/custmsg.h:17
+msgid "Circles"
+msgstr "Ympyrät"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:104
-msgid "Select objects"
-msgstr "Valitse objekteja"
+#: ../../../../build/work/app/i18n/custmsg.h:18
+msgid "Turntables"
+msgstr "Kääntöpöydät"
-#: ../bin/dcar.c:3582
-msgid "Select or Enter a Manufacturer"
-msgstr "Valitse tai syötä valmistaja"
+#: ../../../../build/work/app/i18n/custmsg.h:19
+msgid "Modifying tracks"
+msgstr "Raiteiden muokkaaminen"
-#: ../bin/cprint.c:1087
-msgid "Select pages to print, or drag to move print grid"
-msgstr "Valitse tulostettavat sivut tai siirrä tulostusruudukkoa raahaamalla"
+#: ../../../../build/work/app/i18n/custmsg.h:20
+msgid "Modifying end points "
+msgstr "Päätepisteiden muokkaaminen"
-#: ../bin/chndldto.c:137
-msgid "Select point position"
-msgstr "Aseta kielten kärjet"
+#: ../../../../build/work/app/i18n/custmsg.h:21
+msgid "Extending"
+msgstr "Pidentäminen"
-#: ../bin/cpull.c:611
-msgid "Select second End-Point to connect"
-msgstr "Valitse toinen yhdistettävä päätepiste"
+#: ../../../../build/work/app/i18n/custmsg.h:22
+msgid "Medium and Thick Tracks"
+msgstr "Keskipaksut ja paksut raiteet"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:237
-msgid "Select speed of Playback"
-msgstr "Valitse toiston nopeus"
+#: ../../../../build/work/app/i18n/custmsg.h:23
+msgid "Joining Tracks"
+msgstr "Raiteiden yhdistäminen"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:109
-msgid "Select stranded (unconnected) track pieces"
-msgstr "Valitse yksittäiset raiteet, joita ei ole liitetty toisiin raiteisiin"
+#: ../../../../build/work/app/i18n/custmsg.h:24
+msgid "Straight to straight"
+msgstr "Suora - suora"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:430
-msgid "Select the End-Point and Right-Drag.\n"
-msgstr "Valitse päätepiste ja raahaa oikealla painikkeella.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:25
+msgid "Curve to straight"
+msgstr "Kaareva - suora"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:123
-msgid "Select the definitions you added and Delete them.\n"
-msgstr "Valitse lisäämäsi määrittelyt ja poista ne.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:26
+msgid "Circle to circle"
+msgstr "Ympyrä - ympyrä"
-#: ../bin/cmisc.c:410
-msgid "Select track to describe"
-msgstr "Valitse määriteltävä raideosa"
+#: ../../../../build/work/app/i18n/custmsg.h:27
+msgid "Joining to turntables"
+msgstr "Yhdistäminen kääntöpäytään"
-#: ../bin/cmodify.c:83
-msgid "Select track to modify"
-msgstr "Valitse muokattava raide"
+#: ../../../../build/work/app/i18n/custmsg.h:28
+msgid "Easements"
+msgstr "Kaarreloivennukset"
-#: ../bin/csplit.c:72
-msgid "Select track to split"
-msgstr "Valitse pilkottava raide"
+#: ../../../../build/work/app/i18n/custmsg.h:29
+msgid "Abutting tracks"
+msgstr "Vastakkaiset raideosat"
-#: ../bin/cselect.c:1738
-msgid "Select tracks"
-msgstr "Valitse raideosat"
+#: ../../../../build/work/app/i18n/custmsg.h:30
+msgid "Move to Join"
+msgstr "Siirrä yhdistääksesi"
-#: ../bin/doption.c:535
-msgid "Selected Track"
-msgstr "Valitut raiteet"
+#: ../../../../build/work/app/i18n/custmsg.h:32
+msgid "Select and Placement"
+msgstr "Valinta ja asettelu"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:444
-msgid "Selected tracks"
-msgstr "Valitut raiteet"
+#: ../../../../build/work/app/i18n/custmsg.h:33
+msgid "Building a yard throat."
+msgstr "Vaihdekujan luominen"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:395
-msgid "Selected tracks can also be deleted, hidden, listed and exported.\n"
-msgstr ""
-"Valitut raiteet voidaan myös poistaa, piilottaa (tunneli), luetteloida tai "
-"eksportoida (viedä tiedostoon).\n"
+#: ../../../../build/work/app/i18n/custmsg.h:34
+msgid "Designing turnouts"
+msgstr "Raideosien suunnittelu"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:394
-msgid "Selected tracks can be moved or rotated during the <Select> command.\n"
-msgstr ""
-"Valittuja raiteita voidaan siirtää tai pyörittää Valitse -komennon ollessa "
-"aktiivisena.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:35
+msgid "Group and Ungroup"
+msgstr "Ryhmittely ja ryhmittelyn purku"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:397
-msgid "Selecting a selected track de-selects it.\n"
-msgstr "Klikkaamalla jo valittuna olevaa raidetta, sen valinta poistuu.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:36
+msgid "Triming Turnout Ends"
+msgstr "Vaihteen päiden säätö"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:384
-msgid "Selection list for prices"
-msgstr "Hintojen valintaluettelo"
+#: ../../../../build/work/app/i18n/custmsg.h:37
+msgid "Handlaid Turnouts"
+msgstr "Käsin asetellut vaihteet"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:106
-msgid "Selects all objects in the current Layer"
-msgstr "Valitse kaikki nykyisen tason objektit"
+#: ../../../../build/work/app/i18n/custmsg.h:38
+msgid "Elevations and Profile"
+msgstr "Korkeustasot ja profiili"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:105
-msgid "Selects all objects on the layout"
-msgstr "Valitse kaikki ratasuunnitelman objektit"
+#: ../../../../build/work/app/i18n/custmsg.h:39
+msgid "Elevations"
+msgstr "Korkeustasot"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:81
-msgid "Selects the current drawing layer"
-msgstr "Valitsee piirtotason"
+#: ../../../../build/work/app/i18n/custmsg.h:41
+msgid "Misc track commands"
+msgstr "Muita raidekomentoja"
-#: ../bin/tcurve.c:345 ../bin/ctodesgn.c:382 ../bin/ctodesgn.c:402
-#: ../bin/ctodesgn.c:422 ../bin/cparalle.c:41 ../bin/cparalle.c:71
-#: ../bin/cparalle.c:83
-msgid "Separation"
-msgstr "Väli"
+#: ../../../../build/work/app/i18n/custmsg.h:42
+msgid "Delete and Undo"
+msgstr "Poista ja kumoa"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:336
-msgid "Separation between helix layers"
-msgstr "Helixin kerrosten välinen etäisyys"
+#: ../../../../build/work/app/i18n/custmsg.h:43
+msgid "Splitting and Tunnels"
+msgstr "Pilkkominen ja tunnelit"
-#: ../bin/dcar.c:1924
-msgid "Sequential"
-msgstr "Peräkkäinen"
+#: ../../../../build/work/app/i18n/custmsg.h:45
+msgid "Helix tracks"
+msgstr "Helix raiteet (kierrenousu)"
-#: ../bin/dcar.c:1996 ../bin/dcar.c:4077
-msgid "Service Date"
-msgstr "Huollettu"
+#: ../../../../build/work/app/i18n/custmsg.h:46
+msgid "Exception Tracks"
+msgstr "Erityisraiteet"
-#: ../bin/dcar.c:3606
-msgid "Service Date is not valid"
-msgstr "Huollon päiväys ei ole kelvollinen"
+#: ../../../../build/work/app/i18n/custmsg.h:48
+msgid "Connect and Tighten - a siding"
+msgstr "Liittäminen ja tiukennus - sivuraide"
-#: ../bin/csplit.c:45
-msgid "Set Block Gaps"
-msgstr "Aseta lohkojen välit"
+#: ../../../../build/work/app/i18n/custmsg.h:49
+msgid "Connect and Tighten - figure-8"
+msgstr "Liittäminen ja tiukennus - kahdeksikko"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:21
-msgid "Set Circle Track creation mode"
-msgstr "Aseta ympyräradan luonti komento"
+#: ../../../../build/work/app/i18n/custmsg.h:50
+msgid "Other commands"
+msgstr "Muut komennot"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:42
-msgid "Set Circle drawing command"
-msgstr "Aseta ympyrän piirto komento"
+#: ../../../../build/work/app/i18n/custmsg.h:52
+msgid "Table Edges"
+msgstr "Pöydän reunat"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:31
-msgid "Set Curve Track creation mode"
-msgstr "Aseta kaarevan raiteen luonti komento"
+#: ../../../../build/work/app/i18n/custmsg.h:54
+msgid "Dimension Lines"
+msgstr "Mittajanat"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:47
-msgid "Set Curve drawing command"
-msgstr "Aseta kaaren piirto komento"
+#: ../../../../build/work/app/i18n/custmsg.h:55
+msgid "Lines"
+msgstr "Viivat"
-#: ../bin/celev.c:204
-msgid "Set Elevation"
-msgstr "Aseta korkeus"
+#: ../../../../build/work/app/i18n/custmsg.h:56
+msgid "Poly-Shapes"
+msgstr "Monikulmiot"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:62
-msgid "Set Line drawing command"
-msgstr "Aseta suorien objektien piirto komento"
+#: ../../../../build/work/app/i18n/custmsg.h:57
+msgid "Modifying Poly-Shapes"
+msgstr "Monikulmioiden muokkaaminen"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:63
-msgid "Set Shape drawing command"
-msgstr "Aseta muotojen piirto komento"
+#: ../../../../build/work/app/i18n/custmsg.h:60
+msgid "Control Panels (New)"
+msgstr "Ohjauspaneelit"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:577
+#: ../../../../build/work/app/i18n/custmsg.h:62
msgid ""
-"Set your modeling scale on the \"Options|Layout\" dialog. This controls the "
-"Turnouts and Structures that are available, Easement values and track gauge."
+"The unconnected End-Points of a straight or curved track can be changed with "
+"the 'Modify Track' command.\n"
msgstr ""
-"Mittakaava asetetaan \"Asetukset|Ratasuunnitelma\" ikkunasta. Tämä asetus "
-"määrää mitkä raideosat ja rakennukset ovat käytettävissä sekä "
-"kaarreloivennuksen arvot ja raideleveyden."
+"Suorien ja kaarevien raiteiden irtonaisia päätepisteitä voidaan muuttaa "
+"Muokkaa-komennolla.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:391
-msgid "Sets page size to the maximum (based on scale and physical page size)"
+#: ../../../../build/work/app/i18n/custmsg.h:63
+msgid ""
+"The End-Point of a straight track is selected and then Left-Dragged to "
+"change its length.\n"
msgstr ""
-"Aseta sivun koko suurimmaksi mahdolliseksi mittakaavan ja fyysisen sivukoon "
-"mukaan"
+"Suoran raiteen pituutta muutetaan raahaamalla hiiren vasemmalla painikkeella "
+"sen päätepisteestä.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:393
-msgid "Sets scale, origin and angle for a one page printout of the layout"
+#: ../../../../build/work/app/i18n/custmsg.h:64
+msgid ""
+"Watch what happens if you try to drag the selected End-Point beyond the far "
+"End-Point.\n"
msgstr ""
-"Asettaa tulostusmittakaavan, origon ja kulman siten, että koko "
-"ratasuunnitelma mahtuu yhdelle sivulle"
+"Katso mitä tapahtuu, jos raahaat valitun päätepisteen toisen päätepisteen "
+"yli.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:540
+#: ../../../../build/work/app/i18n/custmsg.h:65
msgid ""
-"Setting these values changes the Radius to 21.2\" and the number of Turns to "
-"6.\n"
+"The length of the straight track is determined by the distance from the far "
+"End-Point and the cursor.\n"
msgstr ""
-"Näillä arvoilla säde muuttui 21,2 tuumaksi ja kierrosten lukumäärä 6:ksi.\n"
-
-#: ../bin/cprint.c:136
-msgid "Setup"
-msgstr "Asetukset"
-
-#: ../bin/cdraw.c:1066
-msgid "Shapes"
-msgstr "Muodot"
+"Suoran raiteen pituus määräytyy päätepisteen ja osoittimen välisen "
+"etäisyyden mukaan.\n"
-#: ../bin/dease.c:63
-msgid "Sharp"
-msgstr "Jyrkkä"
+#: ../../../../build/work/app/i18n/custmsg.h:66
+msgid ""
+"A curved track is selected and it's new End-Point is determined by the angle "
+"to the cursor.\n"
+msgstr "Kaarteen päätepistettä voidaan siirtää kehää pitkin.\n"
-#: ../bin/dcar.c:4786
-msgid "Shelf"
-msgstr "Hyllyssä"
+#: ../../../../build/work/app/i18n/custmsg.h:67
+msgid "It's possible to almost create a complete circle.\n"
+msgstr "On mahdollista luoda lähes täydellinen ympyrä.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:398
+#: ../../../../build/work/app/i18n/custmsg.h:68
msgid ""
-"Shift-Left-Click on a track will select all unselected tracks connected to "
-"the track. Selection stops at a previously selected track.\n"
+"If you drag the mouse beyond the start of the curve the track becomes very "
+"short.\n"
msgstr ""
-"Pitämällä vaihto-näppäintä pohjassa ja klikkaamalla raidetta, valitaan "
-"kaikki tähän raiteeseen yhtyvät raiteet. Valinta pysähtyy kuitenkin "
-"ensimmäiseen jo valittuun raiteeseen.\n"
+"Jos raahaat hiirellä kaarteen alkupisteen yli raiteesta tulee erittäin "
+"lyhyt.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:403
-msgid "Shift-Left-Drag is used to move selected tracks.\n"
-msgstr ""
-"Voit siirtää valittuja objekteja pitämällä vaihto-näppäintä painettuna ja "
-"raahaamalla hiiren vasemmalla painikkeella.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:69
+msgid "Here you are warned that the track will be too short.\n"
+msgstr "Tällöin varoitetaan liian lyhyestä raiteesta.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:227
+#: ../../../../build/work/app/i18n/custmsg.h:70
msgid ""
-"Shift-Right-Click will display a popup-menu that you can use to rotate by "
-"fixed amount (15°, 30°, 45°, 90° or 180°). The demonstration cannot show "
-"the popup-menu but it can show the effects.\n"
+"If you move the cursor away from the curve, you will create a straight track "
+"tangent to the curve.\n"
msgstr ""
-"Vaihto + oikea klikkaus avaa ponnahdusvalikon, josta voi pyörittää määrätyn "
-"kulman verran (15°, 30°, 45°, 90° or 180°). Demossa ei voida näyttää "
-"ponnahdusvalikkoa, mutta näytämme toiminnon vaikutuksen.\n"
+"Jos siirrät osoitinta kauemmas kaarteesta, voit luoda suoran raiteen "
+"kaarteen tangentin suuntaan.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:413
+#: ../../../../build/work/app/i18n/custmsg.h:71
msgid ""
-"Shift-Right-Drag rotates the selected tracks about the pivot point (which is "
-"where you started the drag)\n"
+"If you adjust the End-Point of a turnout or sectional track the track is "
+"extended by a straight track segment.\n"
msgstr ""
-"Painamalla vaihto-näppäintä ja raahaamalla hiiren oikealla painikkeella voit "
-"pyörittää valittuja raiteita. Kiertopiste määräytyy sen mukaan, mistä "
-"raahaaminen aloitettiin.\n"
+"Jos muutat palaraiteen tai vaihteen päätepistettä, uusi raideosa luodaan "
+"edellisen jatkeeksi.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:609
+#: ../../../../build/work/app/i18n/custmsg.h:72
msgid ""
-"Short cut Layer buttons can also be displayed on the tool bar for up to the "
-"first 20 layers.\n"
-"This buttons allow to Show or Hide the layers."
+"You can change the radius of a Straight or Curved track that is connected at "
+"one End-Point by holding down the Shift key while dragging on it.\n"
msgstr ""
+"Voit muuttaa suoran tai kaarevan raiteen sädettä, mikäli se on toisesta "
+"päästä liitetty. Tämä tapahtuu pitämällä vaihto-näppäintä painettuna "
+"raahattaessa raiteen toisesta päästä hiiren vasemmalla painikkeella.\n"
-#: ../bin/csnap.c:537
-msgid "Show"
-msgstr "Näytä"
+#: ../../../../build/work/app/i18n/custmsg.h:73
+msgid ""
+"This lets you change a Straight track into a Curved track (and vice versa) "
+"as well as changing the radius of a Curved track.\n"
+msgstr ""
+"Näin voit muuttaa suoran raiteen kaarteeksi ja päin vastoin, sekä muuttaa "
+"kaarteen sädettä.\n"
-#: ../bin/cselect.c:1477
-msgid "Show Description"
-msgstr "Näytä kuvaus"
+#: ../../../../build/work/app/i18n/custmsg.h:74
+msgid "You can draw a variety of different types of benchwork:\n"
+msgstr "Voit piirtää eri tyyppisiä runkorakenteita:\n"
-#: ../bin/dprmfile.c:217
-msgid "Show File Names"
-msgstr "Näytä tiedostojen nimet"
+#: ../../../../build/work/app/i18n/custmsg.h:75
+msgid "- rectangular (1x2, 2x4 etc)\n"
+msgstr "- suora (25 x 50 mm, 50 x 100 mm jne)\n"
-#: ../bin/misc.c:2203
-msgid "Show SnapGrid"
-msgstr "Näytä kohdistusruudukko"
+#: ../../../../build/work/app/i18n/custmsg.h:76
+msgid "- L girders\n"
+msgstr "- L-palkki\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:461
-msgid "Show Tip of the Day every time the program starts"
-msgstr "Näytä päivän vinkki jokaisen käynnistyksen yhteydessä"
+#: ../../../../build/work/app/i18n/custmsg.h:77
+msgid "- T girders\n"
+msgstr "- T-palkki\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:103
-msgid "Show a ruler"
-msgstr "Näytä viivain"
+#: ../../../../build/work/app/i18n/custmsg.h:78
+msgid "You can also draw them in different orientations.\n"
+msgstr "Voit myös piirtää ne eri asentoihin.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:411
-msgid "Show parameter files by names or descriptions"
-msgstr "Näytä parametritiedostojen nimet tai kuvaukset"
+#: ../../../../build/work/app/i18n/custmsg.h:79
+msgid "We will draw two 3x6 inch L-girders.\n"
+msgstr "Piirrämme nyt 3x6 tuuman L-palkkeja.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:74
-msgid "Show snap grid"
-msgstr "Näytä kohdistusruudukko"
+#: ../../../../build/work/app/i18n/custmsg.h:80
+msgid ""
+"The flange of the top L-Girders is on the outside edge of the girders. We "
+"want to change the girder so both flanges are on the inside.\n"
+msgstr ""
+"Ylemmän L-palkin pystylape on rakenteen ulkopuolella. Haluamme että "
+"molempien palkkien pystylappeet ovat sisäpuolella.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:462
-msgid "Show the next Tip of the Day"
-msgstr "Näytä seuraava vinkki"
+#: ../../../../build/work/app/i18n/custmsg.h:81
+msgid "We will use the <Describe> command for this.\n"
+msgstr "Käytämme määrittele-komentoa.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:463
-msgid "Show the previous Tip of the Day"
-msgstr "Näytä edellinen vinkki"
+#: ../../../../build/work/app/i18n/custmsg.h:82
+msgid "Change the Orientation to Right.\n"
+msgstr "Muuta \"suunta\" \"oikeaksi\".\n"
-#: ../bin/smalldlg.c:64
-msgid "Show tips at start"
-msgstr "Vinkki ohjelman alussa"
+#: ../../../../build/work/app/i18n/custmsg.h:83
+msgid "Now both flanges are on the inside of the two girders.\n"
+msgstr "Nyt kummankin L-palkin pystylappeet ovat sisäpuolella.\n"
-#: ../bin/dlayer.c:447 ../bin/dlayer.c:663 ../bin/dlayer.c:719
-#: ../bin/dlayer.c:763 ../bin/dlayer.c:928
-msgid "Show/Hide Layer"
-msgstr "Näytä/piilota taso"
+#: ../../../../build/work/app/i18n/custmsg.h:84
+msgid ""
+"Pushing the <Describe> button will cancel any other command in progress.\n"
+msgstr ""
+"Määrittele -komennon valitseminen keskeyttää minkä tahansa meneillään olevan "
+"komennon.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:320
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:321
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:322
-msgid "Shows the origin and angle of the grid"
-msgstr "Ruudukon origo ja kulma"
+#: ../../../../build/work/app/i18n/custmsg.h:85
+msgid ""
+"Here we will begin to create a Curved track which is a two step process.\n"
+msgstr ""
+"Tässä aloitamme luomaan kaarevaa raidetta, joka on kaksiosainen toiminto.\n"
-#: ../bin/doption.c:282 ../bin/cselect.c:1850 ../bin/cselect.c:1854
-msgid "Simple"
-msgstr "Yksinkertainen"
+#: ../../../../build/work/app/i18n/custmsg.h:86
+msgid ""
+"When we clicked on the <Describe> button, the current command was "
+"cancelled.\n"
+msgstr ""
+"Klikkaamalla Määrittele -painiketta, sen hetkinen komento peruutettiin.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:14
-msgid "Simple tracks"
-msgstr "Yksinkertaiset raideosat"
+#: ../../../../build/work/app/i18n/custmsg.h:87
+msgid ""
+"When in <Describe> mode, selecting any object will print a description in "
+"the Status Bar and display a Dialog showing properties of the clicked-on "
+"object.\n"
+msgstr ""
+"Määrittely -tilassa minkä tahansa objektin valinta tulostaa sen kuvauksen "
+"tilariville sekä avaa ikkunan, jossa esitetään valitun kohteen "
+"ominaisuudet.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:526
-msgid "Simply select the spot on the track you want to split.\n"
-msgstr "Valitse radalta kohta, jonka haluat pilkkoa.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:88
+msgid ""
+"Certain parameters of the object can be changed. In this case we'll change "
+"the Length\n"
+msgstr ""
+"Tiettyjä parametreja voi muuttaa. Tässä tapauksesa muutamme pituutta.\n"
-#: ../bin/ctodesgn.c:350
-msgid "Single Slipswitch"
-msgstr "Yksipuolinen risteysvaihde"
+#: ../../../../build/work/app/i18n/custmsg.h:89
+msgid "Let's look at the Turnout...\n"
+msgstr "Katsokaamme vaihdetta...\n"
-#: ../bin/cdraw.c:197 ../bin/cdraw.c:817
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:516
-msgid "Size"
-msgstr "Koko"
+#: ../../../../build/work/app/i18n/custmsg.h:90
+msgid "and change the turnout Title.\n"
+msgstr "ja muuttakaamme sen otsikkoa.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:296
-msgid "Size of Dimension Arrows"
-msgstr "Mittajanan nuolten koko"
+#: ../../../../build/work/app/i18n/custmsg.h:91
+msgid "You can change the contents of Text...\n"
+msgstr "Voit muuttaa tekstin sisältöä...\n"
-#: ../bin/dcmpnd.c:318
-msgid "Skip"
-msgstr "Sivuuta"
+#: ../../../../build/work/app/i18n/custmsg.h:92
+msgid "and its size.\n"
+msgstr "ja kokoa.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:424
-msgid "Skip this turnout"
-msgstr "Hyppää tämän vaihteen yli"
+#: ../../../../build/work/app/i18n/custmsg.h:93
+msgid ""
+"If you select a Note, the Description dialog appears which displays the "
+"contents of the note.\n"
+msgstr ""
+"Jos valitset muistiinpanon, avautuu ikkuna, josta voit muuttaa muistiinpanon "
+"sisältöä.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:235
-msgid "Skip to next demo"
-msgstr "Siirry seuraavaan demoon"
+#: ../../../../build/work/app/i18n/custmsg.h:94
+msgid ""
+"Like the <Curve> track command, there are several ways to create a Circle "
+"track.\n"
+msgstr "Kuten kaarteet, myös ympyräradat voidaan luoda usealla eri tavalla.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:517
-msgid "Slant"
-msgstr "Kursivoitu"
+#: ../../../../build/work/app/i18n/custmsg.h:95
+msgid ""
+"The first is to specify a fixed radius and simply drag the Circle into "
+"position.\n"
+msgstr ""
+"Ensimmäinen tapa on määritellä ympyrän säde ja yksinkertaisesti raahaamalla "
+"ympyrä paikoilleen.\n"
-#: ../bin/macro.c:1225
-msgid "Slow"
-msgstr "Hidas"
+#: ../../../../build/work/app/i18n/custmsg.h:96
+msgid "We will change the Radius before proceeding.\n"
+msgstr "Muutamme säteen ennen kuin jatkamme.\n"
-#: ../bin/macro.c:1224
-msgid "Slowest"
-msgstr "Hitain"
+#: ../../../../build/work/app/i18n/custmsg.h:97
+msgid "The next method is to drag from the edge of the Circle to the center.\n"
+msgstr "Seuraava tapa on raahata ympyrän kehältä kohti keskipistettä.\n"
-#: ../bin/cdraw.c:501 ../bin/cdraw.c:927
-msgid "Small"
-msgstr "Pieni"
+#: ../../../../build/work/app/i18n/custmsg.h:98
+msgid ""
+"The last is similar, but you drag from the center of the Circle to the "
+"edge.\n"
+msgstr ""
+"Viimeinen tapa on vastaavanlainen, mutta raahataan ympyrän keskipisteestä "
+"ulos päin.\n"
-#: ../bin/doption.c:529 ../bin/csnap.c:707
-msgid "Snap Grid"
-msgstr "Kohdistusruudukko"
+#: ../../../../build/work/app/i18n/custmsg.h:99
+msgid ""
+"We have built a siding using Sectional track and have 2 End-Points that "
+"don't line up and are not connected automatically when placing the sectional "
+"track.\n"
+msgstr ""
+"Olemme rakentaneet sivuraiteen käyttäen palaraiteita. Kaksi päätepistettä "
+"eivät ole riittävän kohdakkain, jotta ne olisi automaattisesti liitetty "
+"toisiinsa.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:438
-msgid "Snap Grid Line and Division"
-msgstr "Kohdistusruudukko ja jakomerkinnät"
+#: ../../../../build/work/app/i18n/custmsg.h:100
+msgid ""
+"We use the <Connect> command to adjust neighboring tracks so the gap is "
+"closed.\n"
+msgstr ""
+"Käytämme liitä-komentoa säätääksemme viereisiä raideosia siten, että rako "
+"saadaan suljettua.\n"
-#: ../bin/cprint.c:116
-msgid "Snap Shot"
-msgstr "Yhdelle sivulle"
+#: ../../../../build/work/app/i18n/custmsg.h:101
+msgid ""
+"Note: the adjustments are only done on tracks which have only 1 or 2 "
+"connections. In this example the Turnouts would not be affected.\n"
+msgstr ""
+"Huom: Säätö tehdään vain niille raideosille, joilla on vain yksi tai kaksi "
+"liitosta. Tässä esimerkissä vaihteet jäävät koskemattomiksi.\n"
-#: ../bin/misc.c:1692 ../bin/misc.c:1722
-msgid "SnapGrid Buttons"
-msgstr "Kohdistusruudukko"
+#: ../../../../build/work/app/i18n/custmsg.h:102
+msgid "And now the gap is closed.\n"
+msgstr "Nyt rako on suljettu.\n"
-#: ../bin/misc.c:2089
-msgid "SnapGrid Enable"
-msgstr "Käytä kohdistusruudukkoa"
+#: ../../../../build/work/app/i18n/custmsg.h:103
+msgid "Other tracks have been shifted slightly to close the gap.\n"
+msgstr "Muita raideosia siirrettiin hieman, jotta rako saatiin suljettua.\n"
-#: ../bin/misc.c:2090
-msgid "SnapGrid Show"
-msgstr "Näytä kohdistusruudukko"
+#: ../../../../build/work/app/i18n/custmsg.h:104
+msgid "You can see these slight mis-alignments.\n"
+msgstr "Voit nähdä hienoisen heiton raideosien kohdistuksessa.\n"
-#: ../bin/doption.c:192
-msgid "Solid"
-msgstr "Yhtenäinen"
+#: ../../../../build/work/app/i18n/custmsg.h:105
+msgid "But they will have no effect when the layout is actually built.\n"
+msgstr "Mutta sillä ei ole merkitystä kun rata todellisuudessa rakennetaan.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:242
+#: ../../../../build/work/app/i18n/custmsg.h:106
msgid ""
-"Some Turnouts and Sectional track are pre-mounted on roadbed. For these "
-"parts you can specify the width of the roadbed, the thickness of the lines "
-"drawn for the edge of the roadbed and the color.\n"
-msgstr ""
-"Joihinkin raideosiin kuuluu kiinteä ratapenkka. Näitä osia varten voit "
-"määrittää ratapenkan leveyden, reunaviivan paksuuden sekä reunaviivan "
-"värin.\n"
-
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:434
-msgid "Sometimes it's useful to modify turnouts triming one of the ends.\n"
+"After working with Sectional track you might get to point where these mis-"
+"alignments have accumulated and you wish to remove them.\n"
msgstr ""
-"Joskus on tarpeen muokata vaihteita säätämällä jonkin raiteen pituutta.\n"
+"Työskenneltyäsi palaraiteiden kanssa voit päätyä tilanteeseen, jossa nämä "
+"kohdistusten heitot ovat kertautuneet ja haluat korjata ne.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:423
+#: ../../../../build/work/app/i18n/custmsg.h:107
msgid ""
-"Sometimes the Shift key is held down while using the mouse for a Shift-Click "
-"or a Shift-Drag. \n"
+"You can remove these slight mis-alignments by tightening the tracks starting "
+"from a unconnected End-Point. Use Shift-Left-Click with the <Connect> "
+"command.\n"
msgstr ""
-"Joskus vaihto -näppäintä (shift) on painettava samalla kun hiirellä "
-"klikataan tai raahataan.\n"
+"Voit poistaa kohdistusten heiton tiukentamalla raideosat alkaen irrallisesta "
+"päätepisteestä. Käytä liitä-komentoa ja pidä vaihto-näppäintä painettuna kun "
+"klikkaat hiiren vasemmalla painikkeella.\n"
-#: ../bin/dcar.c:4094
-msgid "Sort By"
-msgstr "Lajittelu"
+#: ../../../../build/work/app/i18n/custmsg.h:108
+msgid "First use the <Split> command to disconnect the tracks.\n"
+msgstr "Ensin irrotamme raideosat pilko-komennolla.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:209
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:210
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:211
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:212
-msgid "Sort the Item list"
-msgstr "Lajittele luettelo"
+#: ../../../../build/work/app/i18n/custmsg.h:109
+msgid ""
+"Then with the <Connect> command, Shift-Left-Click on the 2 End-Points.\n"
+msgstr ""
+"Sitten liitä-komennolla, vaihto + hiiren vasen klikkaus molempiin "
+"päätepisteisiin.\n"
-#: ../bin/csnap.c:515
-msgid "Spacing"
-msgstr "Väli"
+#: ../../../../build/work/app/i18n/custmsg.h:110
+msgid "In example shows a simple figure-8 layout using Sectional track.\n"
+msgstr ""
+"Tässä esimerkissä on yksinkertainen palaraiteista tehty kahdeksikkorata.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:314
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:317
-msgid "Spacing between major grid lines"
-msgstr "Ruudukon pääviivojen väli"
+#: ../../../../build/work/app/i18n/custmsg.h:111
+msgid ""
+"You will notice that the tracks do not line up exactly in one location.\n"
+msgstr "Huomaat, etteivät raiteet aivan kohtaa yhdessä kohdassa.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:486
-msgid "Specifies if angles are entered as Frog Numbers or in degrees"
-msgstr "Määrittelee annetaanko kulmat asteina vai risteysnumerona"
+#: ../../../../build/work/app/i18n/custmsg.h:112
+msgid ""
+"We can use the <Connect> command to move the connecting tracks slightly and "
+"connect the 2 End-Points.\n"
+msgstr ""
+"Voimme käyttää liitä-komentoa siirtääksemme raideosia hieman, jotta raiteet "
+"saadaan liitetyksi.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:316
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:319
-msgid "Specifies if positions are snaped in this direction"
-msgstr "Määrittelee kohdistetaanko tässä suunnassa"
+#: ../../../../build/work/app/i18n/custmsg.h:113
+msgid "The two End-Points are now aligned and connected.\n"
+msgstr "Päätepisteet ovat nyt kohdistettu ja liitetty.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:323
-msgid "Specifies if the grid is shown"
-msgstr "Määrittelee näytetäänkö ruudukko"
+#: ../../../../build/work/app/i18n/custmsg.h:114
+msgid "The connection was made by adding small gaps in other tracks.\n"
+msgstr "Liitos tehtiin lisäämällä hienoisia rakoja muiden raideosien väliin.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:359
-msgid "Specifies number of pixels per inch (or centimeter)"
-msgstr "Määrittelee pikseleiden määrän tuumalla (tai sentillä)"
+#: ../../../../build/work/app/i18n/custmsg.h:115
+msgid "There are several ways to create a Curved track.\n"
+msgstr "On useita tapoja luoda kaarevia raiteita.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:353
-msgid "Specifies the Modelling Scale"
-msgstr "Määrittelee mittakaavan"
+#: ../../../../build/work/app/i18n/custmsg.h:116
+msgid ""
+"You can choose which to use by clicking on the small button to the left of "
+"<Curve> command button if the current Curve command is not the one you "
+"want.\n"
+msgstr ""
+"Tavan voi valita Kaarre-painikkeen oikealla puolella olevasta pienestä "
+"nuolesta avautuvan valikon kautta.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:351
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:352
-msgid "Specifies the Title of the layout. This appears on Gaudy printouts"
-msgstr "Ratasuunnitelman otsikko. Tämä näkyy tulostuksissa."
+#: ../../../../build/work/app/i18n/custmsg.h:117
+msgid ""
+"The first is by clicking on the first End-Point and dragging in the "
+"direction of the Curve.\n"
+msgstr ""
+"Ensimmäinen tapa on klikata kaarteen ensimmäistä päätepistettä ja raahata "
+"hiirellä kaarteen suntaan.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:366
-msgid "Specifies the check point frequency"
-msgstr "Kuinka usein automaattinen varmennus suoritetaan"
+#: ../../../../build/work/app/i18n/custmsg.h:118
+msgid ""
+"You will see a straight track with a double ended Red arrow at the end.\n"
+msgstr "Näet suoran raiteen, jonka päässä on kaksisuuntainen punainen nuoli.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:505
-msgid "Specifies the diameter of the turntable"
-msgstr "Määrittelee kääntöpöydän halkaisijan"
+#: ../../../../build/work/app/i18n/custmsg.h:119
+msgid "Click and drag on one of the Red arrows to complete the Curve.\n"
+msgstr "Raahaa nuolesta asetellaksesi kaarre oikean muotoiseksi.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:222
-msgid "Specifies the minimum angle between tracks connected to a turntable"
+#: ../../../../build/work/app/i18n/custmsg.h:120
+msgid ""
+"The next method is to click at one End-Point and drag to the center of the "
+"Curve.\n"
msgstr ""
-"Määrittelee pienimmän kääntöpöydästä lähtevien raiteiden välisen kulman"
-
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:220
-msgid "Specifies the radius of the circle track"
-msgstr "Määrittelee ympyräradan säteen"
-
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:354
-msgid "Specifies the rail gauge, ie. the distance between the rails"
-msgstr "Määrittelee raideleveyden"
+"Seuraava tapa on klikata kaarteen päätepistettä ja raahata hiirellä kaarteen "
+"keskipisteeseen.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:362
-msgid "Specifies the separation between parallel tracks"
-msgstr "Määrittelee rinnakkaisten raiteiden etäisyyden toisistaan"
+#: ../../../../build/work/app/i18n/custmsg.h:121
+msgid ""
+"Now you will see the double ended Red arrow connected to the center of the "
+"Curve marked by a small circle.\n"
+msgstr ""
+"Näet kaksisuuntaisen nuolen, joka on yhdistetty viivalla karteen "
+"keskipistettä kuvaavaan pieneen ympyrään.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:349
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:350
-msgid "Specifies the size of the room (in inches or centimeters)"
-msgstr "Määrittele huoneen koko (senttimetreinä tai tuumina)"
+#: ../../../../build/work/app/i18n/custmsg.h:122
+msgid "As before, drag on one of the Red arrows to complete the Curve.\n"
+msgstr "Kuten aikaisemminkin, raahaa nuolesta viimeistelläksesi kaarteen.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:361
+#: ../../../../build/work/app/i18n/custmsg.h:123
msgid ""
-"Specifies whether Layout Titles, Borders or Track Centerlines are printed on "
-"the BitMap"
+"The next method is similar to the last except that you drag first from the "
+"center of the Curve to one End-Point.\n"
msgstr ""
-"Määritelee tulostetaanko ratasuunnitelman otsikot, reunukset tai ratojen "
-"keskiviivat"
+"Seuraava tapa on saman kaltainen kuin edellinen, paitsi että toiminto "
+"aloitetaan raahaamalla kaarteen keskipisteestä kaarteen päätepisteeseen.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:522
-msgid "Specify Postscript font alias mapping"
-msgstr "Määrittele Postscript kirjasinalias"
+#: ../../../../build/work/app/i18n/custmsg.h:124
+msgid "Once again, drag on a Red arrow to complete the Curve.\n"
+msgstr "Viimeistele kaarre raahaamalla nuolesta.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:307
-msgid "Specify a name for an End-Point"
-msgstr "Määrittele päätepisteen nimi (aseman nimi)"
+#: ../../../../build/work/app/i18n/custmsg.h:125
+msgid ""
+"The last method begins by drawing a line between the two End-Points of the "
+"Curve. This forms the Chord of the Curve.\n"
+msgstr ""
+"Viimeinen tapa aloitetaan vetämällä viiva kaarteen päätepisteiden välille. "
+"Tämä muodostaa kaarteen jänteen.\n"
-#: ../bin/macro.c:601 ../../../../build/xtrkcad/app/bin/bllnhlp.c:468
-msgid "Speed"
-msgstr "Nopeus"
+#: ../../../../build/work/app/i18n/custmsg.h:126
+msgid "Now drag on a Red arrow to complete the Curve.\n"
+msgstr "Viimeistele kaarre nuolesta raahaamalla.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:273
-msgid "Speed - controls the speed of the demo.\n"
-msgstr "Nopeus - Säätelee demojen suoritusnopeutta.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:127
+msgid "This demo will construct a control panel for part of a bigger layout.\n"
+msgstr ""
+"Tässä demossa luodaan ohjauspaneeli osaksi suurempaa ratasuunnitelmaa.\n"
-#: ../bin/tease.c:1320
-msgid "Split Easement Curve"
-msgstr "Pilko kaarreloivennus"
+#: ../../../../build/work/app/i18n/custmsg.h:128
+msgid "For our control panel we will use Œ\" lines. \n"
+msgstr "Ohjauspaneelissa käytämme 1/4 tuuman viivoja.\n"
-#: ../bin/celev.c:435 ../bin/csplit.c:90 ../bin/csplit.c:153
-msgid "Split Track"
-msgstr "Pilko raide"
+#: ../../../../build/work/app/i18n/custmsg.h:129
+msgid "Also, we will use a 1/8\" grid to lay out our controls.\n"
+msgstr "Käytämme myös 1/8 tuuman kohdistusruudukkoa.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:108
-msgid "Split a track"
-msgstr "Pilko raide"
+#: ../../../../build/work/app/i18n/custmsg.h:130
+msgid ""
+"First, we will set up the Snap Grid for 1\" grid lines and 8 divisions.\n"
+msgstr ""
+"Ensin asetamme kohdistusruudukkoon 1 tuuman ruutuvälin 8 osan jaolla.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:43
-msgid "Splitting and Tunnels"
-msgstr "Pilkkominen ja tunnelit"
+#: ../../../../build/work/app/i18n/custmsg.h:131
+msgid "Now, clear the layout and turn on the Snap Grid.\n"
+msgstr ""
+"Nyt tyhjennämme ratasuunnitelman ja otamme kohdistusruudukon käyttöön.\n"
-#: ../bin/dcar.c:4072
-msgid "Srvc Date"
-msgstr "Huollettu"
+#: ../../../../build/work/app/i18n/custmsg.h:132
+msgid "First step: draw the lines representing the tracks.\n"
+msgstr "Ensimmäiseksi: Piirrä viivat kuvaamaan raiteita.\n"
-#: ../bin/celev.c:45
-msgid "Station"
-msgstr "Asema"
+#: ../../../../build/work/app/i18n/custmsg.h:133
+msgid "We specify the line width in pixels.\n"
+msgstr "Määrittelemme viivan paksuuden pikseleinä.\n"
-#: ../bin/dcar.c:480
-msgid "Steam Loco"
-msgstr "Höyryveturi"
+#: ../../../../build/work/app/i18n/custmsg.h:134
+msgid ""
+"To create a Œ\" line, divide the dots-per-inch (DPI) of your display by 4 "
+"and then by the drawing scale (which is 2 right now).\n"
+msgstr ""
+"Luodaksesi 1/4 tuuman viivan, jaa näyttösi DPI (pisteitä tuumalla, dots per "
+"inch) neljällä ja sitten piirron mittakaavalla (joka tässä on 2).\n"
-#: ../bin/param.c:94
-msgid "Steel Blue"
+#: ../../../../build/work/app/i18n/custmsg.h:135
+msgid ""
+"For MS-Windows the DPI is usually 98, so choose: 98/4/2 = 12 "
+"(approximately).\n"
msgstr ""
+"Microsoft Windows käyttää yleensä DPI arvoa 98, joten valitse: 98/4/2 = 12 "
+"(suunnilleen).\n"
-#: ../bin/macro.c:592
-msgid "Step"
-msgstr "Seuraava vaihe"
+#: ../../../../build/work/app/i18n/custmsg.h:136
+msgid "For Linux, the DPI is usually 72, so choose: 72/4/2 = 9.\n"
+msgstr "Linuxissa DPI on usein 72, joten valitse: 72/4/2 = 9.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:270
-msgid "Step - advances to the next step of the demo.\n"
-msgstr "Seuraava vaihe - Siirtyy seuraavaan vaiheeseen demossa.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:137
+msgid ""
+"Notice how the Snap Grid keeps the main line and siding track parallel and "
+"the connecting tracks and spur at a 45° angle.\n"
+msgstr ""
+"Huomaa, kuinka kohdistusruudukko auttaa pitämään pääradan ja sivuraiteen "
+"saman suuntaisina, sekä yhdistävät raiteet ja piston 45° kulmassa.\n"
-#: ../bin/misc.c:2289
-msgid "Stic&ky ..."
-msgstr "Pysyvät komennot ..."
+#: ../../../../build/work/app/i18n/custmsg.h:138
+msgid "Second step: add LEDs for the turnout position indicators.\n"
+msgstr "Toinen vaihe: Lisää LEDit osoittamaan vaihteiden asentoa.\n"
-#: ../bin/misc.c:1682
-msgid "Sticky Commands"
-msgstr "Pysyvät komennot"
+#: ../../../../build/work/app/i18n/custmsg.h:139
+msgid "We will use T1 red and green LEDs.\n"
+msgstr "Käytämme punaisia ja vihreitä T1 LEDejä.\n"
-#: ../bin/fileio.c:240 ../bin/ctrain.c:572 ../bin/ctrain.c:2540
-#: ../bin/dcar.c:4409 ../bin/dcar.c:4419 ../bin/dcar.c:4538 ../bin/macro.c:78
-msgid "Stop"
-msgstr "Pysäytä"
+#: ../../../../build/work/app/i18n/custmsg.h:140
+msgid "We will zoom in to show positioning.\n"
+msgstr "Lähennämme näkymää asettelun helpottamiseksi.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:419
-msgid "Stop recording"
-msgstr "Lopeta nauhoitus"
+#: ../../../../build/work/app/i18n/custmsg.h:141
+msgid ""
+"Notice that when we are in the correct position (on the 1/8\" grid), the "
+"Marker lines on the bottom and left rulers will high-light the tick marks. "
+"When both ticks are high-lighted, press the space bar to finalize the LED.\n"
+msgstr ""
+"Huomaa että kun LEDi on oikeassa kohdassa kohdistusruudukon jakoon nähden, "
+"viivaimien merkinnät korostetaan. Kun sekä vaaka- että pystyviivaimen "
+"merkinnät ovat korostettuna, paina välilyöntiä hyväksyäksesi LEDin "
+"asettelun.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:475
-msgid "Stop the train"
-msgstr "Pysäytä juna"
+#: ../../../../build/work/app/i18n/custmsg.h:142
+msgid "Now we'll add push buttons to control the turnouts.\n"
+msgstr "Nyt lisäämme painonapit, joilla ohjataan vaihteita.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:236
-msgid "Stops the demonstration and returns you to XTrackCAD"
-msgstr "Pysäyttää demon ja palaa XTrackCADin normaaliin tilaan"
+#: ../../../../build/work/app/i18n/custmsg.h:143
+msgid "Let's add signals to our siding.\n"
+msgstr "Lisätään sivuraiteelle opastimet.\n"
-#: ../bin/cdraw.c:821
-msgid "Straight"
-msgstr "Suora"
+#: ../../../../build/work/app/i18n/custmsg.h:144
+msgid ""
+"The entrance to the siding will be protected by double headed signals.\n"
+msgstr "Sivuraiteelle tulo suojataan kaksiosaisella opastimella.\n"
-#: ../bin/tstraigh.c:536
-msgid "Straight "
-msgstr "Suora "
+#: ../../../../build/work/app/i18n/custmsg.h:145
+msgid "First turn off the Snap Grid.\n"
+msgstr "Ota ensin kohdistusruudukko pois käytöstä.\n"
-#: ../bin/cdraw.c:407
-msgid "Straight Line"
-msgstr "Suora viiva"
+#: ../../../../build/work/app/i18n/custmsg.h:146
+msgid "Rotate the signals and move them to the proper locations.\n"
+msgstr "Pyöritä opastimia ja siirrä ne paikoilleen.\n"
-#: ../bin/drawgeom.c:283
-#, c-format
-msgid "Straight Line: Length=%s Angle=%0.3f"
-msgstr "Suora viiva: Pituus=%s Kulma=%0.3f"
+#: ../../../../build/work/app/i18n/custmsg.h:147
+msgid ""
+"We rotate the signals by Shift-Right-Click and select 90° CW on the popup "
+"menu. We can not show the popup menu in demo mode, but will simulate the "
+"effect.\n"
+msgstr ""
+"Pyöritämme opastimia pitämällä vaihto-näppäintä painettuna ja klikkaamalla "
+"hiiren oikealla painikkeella avataksemme ponnahdusvalikon. Sieltä valitsemme "
+"90° MP (myötäpäivään). Demossa ei voida näyttää ponnahdusvalikkoa, mutta "
+"näytämme komennon vaikutuksen.\n"
-#: ../bin/cdraw.c:1063
-msgid "Straight Objects"
-msgstr "Suorat objektit"
+#: ../../../../build/work/app/i18n/custmsg.h:148
+msgid "The exits from the siding will be protected by single headed signals.\n"
+msgstr "Sivuraiteelta lähdöt suojataan yksiosaisilla opastimilla.\n"
-#: ../bin/ctodesgn.c:449
-msgid "Straight Section"
-msgstr "Suora raideosa"
+#: ../../../../build/work/app/i18n/custmsg.h:149
+msgid "Now for some touch-ups.\n"
+msgstr "Nyt kohennetaan hieman kaaviota.\n"
-#: ../bin/cstraigh.c:104 ../bin/tstraigh.c:254
-msgid "Straight Track"
-msgstr "Suora raide"
+#: ../../../../build/work/app/i18n/custmsg.h:150
+msgid "Notice when the line meet at an angle there is a gap.\n"
+msgstr "Huomaa viivojen liitoskohdissa pienet raot.\n"
-#: ../bin/cstraigh.c:67
-#, c-format
-msgid "Straight Track Length=%s Angle=%0.3f"
-msgstr "Suora raideosa Pituus=%s Kulma=%0.3f"
+#: ../../../../build/work/app/i18n/custmsg.h:151
+msgid "We will fill this gap with the Œ\" dot.\n"
+msgstr "Näytämme ne 1/4 tuuman pisteillä.\n"
-#: ../bin/tstraigh.c:224
-#, c-format
+#: ../../../../build/work/app/i18n/custmsg.h:152
msgid ""
-"Straight Track(%d): Layer=%d Length=%s EP=[%0.3f,%0.3f A%0.3f] [%0.3f,%0.3f A"
-"%0.3f]"
+"Note: Win95/Win98/WinME does not support drawing lines with flat end-caps, "
+"but only with round end-caps.\n"
msgstr ""
-"Suora raideosa(%d): Taso=%d Pituus=%s Päätep.=[%0.3f,%0.3f K%0.3f] [%0.3f,%"
-"0.3f K%0.3f]"
-
-#: ../bin/ccurve.c:259 ../bin/cturntbl.c:559 ../bin/cmodify.c:251
-#: ../bin/cjoin.c:208
-#, c-format
-msgid "Straight Track: Length=%s Angle=%0.3f"
-msgstr "Suora raideosa: Pituus=%s Kulma=%0.3f"
-
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:24
-msgid "Straight to straight"
-msgstr "Suora - suora"
+"Huom: Win96/Win98/WinME ei tue tasapäisten viivojen piirtoa, vaan ainoastaan "
+"pyöreäpäisiä viivoja.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:15
-msgid "Straight tracks"
-msgstr "Suorat raiteet"
+#: ../../../../build/work/app/i18n/custmsg.h:153
+msgid "Users on those platforms will not see the gap.\n"
+msgstr "Mainittujen käyttöjärjestelmien käyttäjät eivät näe näitä rakoja.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:522
+#: ../../../../build/work/app/i18n/custmsg.h:154
msgid ""
-"Straight tracks are created by selecting the first End-Point of the track.\n"
+"Add an arrow head to indicate the tracks that connect to the rest of the "
+"layout.\n"
msgstr ""
-"Suorat raiteet luodaan valitsemalla hiiren vasemmalla painikkeella raiteen "
-"ensimmäinen päätepiste.\n"
-
-#: ../bin/track.c:1874 ../bin/tstraigh.c:543
-#, c-format
-msgid "Straight: Length=%s Angle=%0.3f"
-msgstr "Suora: Pituus=%s Kulma=%0.3f"
+"Lisää nuolenkärjet kuvaamaan raiteiden jatkumista muihin radan osiin.\n"
-#: ../bin/cstruct.c:759 ../bin/cstruct.c:904 ../bin/compound.c:776
-msgid "Structure"
-msgstr "Rakennus"
+#: ../../../../build/work/app/i18n/custmsg.h:155
+msgid "Rotate the arrow head by 180° and move into position.\n"
+msgstr "Pyöritä nuolenkärkeä 180° ja siirrä se paikoilleen.\n"
-#: ../bin/dcmpnd.c:402
-msgid "Structures"
-msgstr "Rakennukset"
+#: ../../../../build/work/app/i18n/custmsg.h:156
+msgid "And add some labels.\n"
+msgstr "Lisää joitakin merkintöjä.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:74
+#: ../../../../build/work/app/i18n/custmsg.h:157
msgid ""
-"Structures and non-track segements of turnouts are composed of Lines, "
-"Circles and other shapes. In this turnout these are the two lines and the "
-"two squares.\n"
+"We want to print our control panel onto a 8œx11 page, but the control panel "
+"is a bit too wide.\n"
msgstr ""
-"Rakennukset ja muut lohkot, jotka eivät ole raiteita, muodostuvat viivoista "
-"ympyröistä ja muista muodoista. Tässä vaihteessa on kaksi viivaa ja kaksi "
-"nelikulmiota.\n"
+"Haluamme tulostaa ohjeuspaneelin 8 1/2 x 11 tuuman kokoiseksi, mutta "
+"ohjauspaneeli on hieman liian suuri.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:158
+msgid "Lets tighten it up a bit.\n"
+msgstr "Tiivistetään hieman.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:217
+#: ../../../../build/work/app/i18n/custmsg.h:159
msgid ""
-"Structures do not have Right and Left hand versions. Their title is changed "
-"to indicate that they were flipped.\n"
+"First turn the Snap Grid on again so any moves we make will keep objects on "
+"the grid.\n"
msgstr ""
-"Rakennuksilla ei ole oikeaa ja vasenta versiota. Niiden otsikko muutetaan "
-"siten, että se kuvaa objektin olevan peilattu (flipped).\n"
+"Ota taas kohdistusruudukko käyttöön, jotta objektit pysyvät linjassa.\n"
-#: ../bin/cturnout.c:1484 ../bin/cturnout.c:2456
-msgid "TURNOUT "
-msgstr "PALARAIDE "
+#: ../../../../build/work/app/i18n/custmsg.h:160
+msgid "Lets move the spur track the left 3/4\"\n"
+msgstr "Siirrämme pistoraidetta vasemmalle 3/4 tuumaa.\n"
-#: ../bin/cdraw.c:425 ../bin/cdraw.c:824 ../bin/cdraw.c:1030
-msgid "Table Edge"
-msgstr "Pöydän reuna"
+#: ../../../../build/work/app/i18n/custmsg.h:161
+msgid "Now move the right side of the siding over.\n"
+msgstr "Siirretään liikennepaikan oikeaa puolta vasemmalle.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:52
-msgid "Table Edges"
-msgstr "Pöydän reunat"
+#: ../../../../build/work/app/i18n/custmsg.h:162
+msgid "Now, adjust the ends of the mainline and siding tracks.\n"
+msgstr "Lyhennä nyt pääraide ja sivuraide sopivan mittaisiksi.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:425
-msgid ""
-"Table Edges are used to mark the edges of the layout, either for aisles or "
-"room walls.\n"
-msgstr ""
-"Pöydän reunoja käytetään kuvaamaan ratasuunnitelman reunoja, joko "
-"kulkuväyliä tai seiniä.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:163
+msgid "And move the title over as well.\n"
+msgstr "Siirrä myös otsikkoa.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:427
-msgid "Table Edges can be modified by dragging on their ends.\n"
-msgstr "Pöydän reunoje voidaan muokara raahaamalla niiden päistä.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:164
+msgid "Now you can print it.\n"
+msgstr "Nyt voit tulostaa sen.\n"
-#: ../bin/param.c:122
-msgid "Tan"
-msgstr "Keltaisenruskea"
+#: ../../../../build/work/app/i18n/custmsg.h:165
+msgid "The cross-hairs on the LEDs and switch show the centers for drilling.\n"
+msgstr ""
+"LEDien ja kytkimien ristikkoviiva osoittaa niiden keskipisteet poraamista "
+"varten.\n"
-#: ../bin/tcurve.c:1072
-msgid "Tangent "
-msgstr "Tangentti "
+#: ../../../../build/work/app/i18n/custmsg.h:166
+msgid ""
+"Pressing the <Delete> button lets you delete selected tracks from the "
+"layout.\n"
+msgstr ""
+"Poista-painikkeella voidaan poistaa valitut raiteet ratasuunnitelmsta.\n"
-#: ../bin/tcurve.c:1081
-#, c-format
-msgid "Tangent track: Length %s Angle %0.3f"
-msgstr "Tangentti raide: Pituus %s Kulma %0.3f"
+#: ../../../../build/work/app/i18n/custmsg.h:167
+msgid ""
+"First you select the tracks you want to delete, and then press the <Delete> "
+"button.\n"
+msgstr ""
+"Valitse ensin raideosat, jotka haluat poistaa ja paina sitten Poista-"
+"nappia.\n"
-#: ../bin/ctext.c:236 ../bin/cdraw.c:201 ../bin/cdraw.c:483
-msgid "Text"
-msgstr "Teksti"
+#: ../../../../build/work/app/i18n/custmsg.h:168
+msgid ""
+"If you delete a track connected to an easement curve, then the easement "
+"curve is deleted as well.\n"
+msgstr ""
+"Jos poistat raideosan, joka on liitetty kaarreloivennukseen, poistetaan myös "
+"kaarreloivennus.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:129
-msgid "Thanks for watching.\n"
-msgstr "Kiitos kun katsoit.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:169
+msgid "You can use the <Undo> command to undelete tracks.\n"
+msgstr "Voit käyttää Kumoa-toimintoa palauttaaksesi poistamasi raideosat.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:68
+#: ../../../../build/work/app/i18n/custmsg.h:170
msgid ""
-"The 'Replace with new group?' toggle will replace the Selected objects with "
-"the new definition.\n"
+"If you Left-Drag on the layout you can select all tracks within an area.\n"
msgstr ""
-"Jos \"Korvaa uudella ryhmällä?\" on valittuna, ryhmittelyä varten valitut "
-"objektit korvataan juuri luodulla uudella ryhmällä.\n"
+"Raahaamalla hiiren vasemmalla voit valita kaikki raideosat valitulta "
+"alueelta.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:624
+#: ../../../../build/work/app/i18n/custmsg.h:171
msgid ""
-"The 'p' key will convert a Scale measurement to a Prototype measurement."
+"Note, only tracks within the selected area are deleted. Since the easement "
+"curve is connected to a deleted track, it is deleted as well.\n"
msgstr ""
+"Huom: Vain valitulla alueella olevat raideosat poistetaan. Koska "
+"kaarreloivennus liittyy poistettavaan raideosaan, poistetaan se myös.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:211
+#: ../../../../build/work/app/i18n/custmsg.h:172
msgid ""
-"The <Flip> command will create a mirror image of the selected objects.\n"
-msgstr "Peilaus-komento luo peilikuvan valitusta objektista.\n"
+"The demo also simulates entering values and selecting options on various "
+"dialogs.\n"
+msgstr ""
+"Tässä demossa simuloidaan myös arvojen syöttämistä ja valintojen tekemistä "
+"dialogeissa (ikkunoissa).\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:62
+#: ../../../../build/work/app/i18n/custmsg.h:173
msgid ""
-"The <Group> and <Ungroup> commands (on the Tools menu) are a powerful way to "
-"manipulate Turnout and Structure definitions.\n"
+"This is simulated by drawing a rectangle around the control when values are "
+"entered or changed.\n"
msgstr ""
-"Ryhmittele ja rymittelyn purku komennot (Hallinta-valikossa) ovat tehokas "
-"keino käsitellä raideosien ja rakennusten määrittelyjä.\n"
+"Tämä esitetään piirtämällä nelikulmio sen kontrollin ympärille, jonka arvoja "
+"ollaan syöttämässä tai muuttamassa.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:67
+#: ../../../../build/work/app/i18n/custmsg.h:174
msgid ""
-"The <Group> command dialog shows the Title (Manufacturer, Description and "
-"Part Number) of the new definition. This information is taken from the "
-"Selected objects you are grouping.\n"
+"Here we are going to make some changes to the Display dialog. Notice how "
+"this is simulated.\n"
msgstr ""
-"Ryhmittely-komennon ikkunassa näytetään valmistaja, kuvaus sekä tuotenumero. "
-"Nämä tiedot on saatu ryhmittelyä varten valituista objekteista.\n"
+"Tässä teemme joitakin muutoksia Näyttö asetuksiin. Huomaa esitystapa.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:255
+#: ../../../../build/work/app/i18n/custmsg.h:175
msgid ""
-"The <Join> command can join straight and curved tracks (in either order).\n"
+"This effect is only used in demonstration mode. During normal operation you "
+"will not see this.\n"
msgstr ""
-"Yhdistä-komennolla voi liittää suoran ja kaarevan raiteen (kummassa tahansa "
-"järjestyksessä).\n"
+"Tämä tehoste on käytössä ainoastaan demo -tilassa. Normaalissa käyttötilassa "
+"näin ei ole.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:470
-msgid "The <Join> command can move one group of tracks to join with another.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:176
+msgid "Dimension Lines are used to mark the distances between two points.\n"
msgstr ""
-"Yhdistä-komento pystyy siirtämään raiteita yhdistääkseen ne toisiin "
-"raiteisiin.\n"
+"Mittajanoja käytetään merkitsemään kahden pisteen välisiä etäisyyksiä.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:124
+#: ../../../../build/work/app/i18n/custmsg.h:177
msgid ""
-"The <Note> command lets you attach notes to various spots on the layout.\n"
-msgstr "Voit liittää ratasuunnitelmaasi muistiinpanoja.\n"
-
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:130
-msgid "The <Rescale> command will change the size of the selected objects.\n"
-msgstr "Mittakaavan muutos -komennolla muutetaan valittujen objektien kokoa.\n"
+"Here we will create a Dimension Line to show the separation between two "
+"tracks.\n"
+msgstr ""
+"Tässä luodaan mittajana näyttämään kahden raiteen välistä etäisyyttä.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:224
+#: ../../../../build/work/app/i18n/custmsg.h:178
msgid ""
-"The <Rotate> command will pivot the Selected objects. First Click on the "
-"pivot point and then drag to Rotate the objects.\n"
+"We might also want to measure the distance between two structures. In this "
+"case we will use a larger dimension line.\n"
msgstr ""
-"Voit pyörittää valittuja objekteja. Klikkaa ensin haluttua kiertopistettä ja "
-"raahaa sitten pyörittääksesi objekteja.\n"
+"Haluamme myös mitata kahden rakennuksen välisen etäisyyden. Tässä "
+"tapauksessa käytämme suurempaa mittajanaa.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:226
+#: ../../../../build/work/app/i18n/custmsg.h:179
msgid ""
-"The <Rotate> command will restrict the rotation to increments of 15° if you "
-"hold down the Control key.\n"
+"We can use the <Describe> command to change the position of the Dimension "
+"Line and the size of the numbers.\n"
msgstr ""
-"Jos pidät contol-näppäintä painettuna pyörittäminen tapahtuu 15°:n välein.\n"
+"Voimme käyttää määrittele-komentoa muuttaaksemme mittajanan sijaintia ja "
+"numeroiden kokoa.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:208
+#: ../../../../build/work/app/i18n/custmsg.h:180
msgid ""
-"The <Ruler> command draws a Ruler on the layout you can use to measure "
-"distances.\n"
+"This example will show the effect of using easements while joining tracks.\n"
msgstr ""
-"Viivain-komento piirtää viivaimen, jolla voit mitata etäisyyksiä "
-"ratasuunnitelmassasi.\n"
+"Tässä esimerkissä näytetään kaarreloivennuksen vaikutus yhdistettäessä "
+"raiteita.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:393
-msgid "The <Select> command is used to select tracks.\n"
-msgstr "Valitse -komentoa käytetään raiteiden valitsemiseen.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:181
+msgid "First, we'll enable easements.\n"
+msgstr "Ensiksi otetaan kaarreloivennus käyttöön.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:525
-msgid "The <Split> command is used to split and disconnect tracks.\n"
-msgstr "Pilko-komentoa käytetään raiteiden pilkkomiseen ja irrottamiseen.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:182
+msgid ""
+"We've selected sharp easements. The minimum radius curve we can use will be "
+"9.75\"\n"
+msgstr ""
+"Olemme valinneet jyrkät kaarreloivennukset. Pienin käytettävissä oleva "
+"kaarresäde on 9,75 tuumaa.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:529
-msgid "The <Tunnel> command marks selected tracks as hidden.\n"
-msgstr "Tunneli-komento merkitsee valitut raideosat piilotetuiksi.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:183
+msgid "Notice the label on the Easement button has changed to 'Sharp'.\n"
+msgstr ""
+"Huomaa että kaarreloivennus-painikkeen (Easements) tila on muuttunut "
+"\"jyrkäksi\" (Sharp).\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:73
+#: ../../../../build/work/app/i18n/custmsg.h:184
msgid ""
-"The <Ungroup> command replaces any Selected turnouts or structures with "
-"their parts.\n"
+"Note the connecting curve does not quite meet the straight tracks. This the "
+"'Offset'.\n"
msgstr ""
-"Ryhmittelyn purku komento korvaa valittut vaihteet tai rakennukset niiden "
-"osilla.\n"
+"Huomaa, ettei yhdistävä kaarre kohtaa aivan tarkasti suoria raiteita. Tämä "
+"on \"siirtymä\".\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:400
-msgid "The <esc> key will deselect all objects.\n"
-msgstr "Esc -näppäin poistaa valinnat kaikista objekteista.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:185
+msgid "Here the connecting curve is too small.\n"
+msgstr "Tässä yhdistävä kaarre on liian pieni.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:642
+#: ../../../../build/work/app/i18n/custmsg.h:186
msgid ""
-"The Align item on the Rotate command options menu will let you Align "
-"selected objects with any unselected object. \n"
-"The selected objects are rotated so the first point is parallel to the "
-"second point you selected."
+"The connecting curve is made of three tracks, the curve and two easement "
+"segments on each end.\n"
msgstr ""
+"Yhdistävä kaarre on tehty kolmesta raideosasta: kaarteesta ja molemmissa "
+"päissä olevista kaarreloivennuksesta.\n"
-#: ../../../../build/xtrkcad/app/help/messages.h:126
+#: ../../../../build/work/app/i18n/custmsg.h:187
msgid ""
-"The Car Length value must be greater\n"
-"than the Car Width value."
-msgstr "Pituuden on oltava leveyttä suurempi."
+"We have designed part of the layout with a siding, 2 branches and a spiral "
+"loop. We want to set Elevations.\n"
+msgstr ""
+"Meillä on ratasuunnitelma jossa on sivuraide, kaksi haaraa ja silmukka, joka "
+"muodostaa radalle risteyksen.\n"
+" Haluamme asetella radan korkeustasot.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:188
+msgid "First we will set elevations at the end of the branches.\n"
+msgstr "Ensin asetamme korkeustasot haarojen päihin.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:189
+msgid "We'll select the end of the top branch and set the Elevation to 4\"\n"
+msgstr ""
+"Valitsemme ylemmän haaran pään ja asetamme sille haluamamme korkeustason.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:190
+msgid "First, click on the End-Point.\n"
+msgstr "Klikkaa ensin päätepistettä.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:191
+msgid "Next, pick Defined on the Elevation dialog Radio box.\n"
+msgstr ""
+"Seuraavaksi muuta korkeustasojen määrittely ikkunassa tyypiksi \"Määritelty"
+"\".\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:192
+msgid "And set the Elevation to 4.\n"
+msgstr "Ja aseta haluttu korkeustaso.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:193
+msgid "Now, select the other branch and set it's elevation to 2\"\n"
+msgstr "Vlitse nyt toinen haara ja aseta sen korkeustaso.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:194
+msgid "We can move the Elevations by using Right-Drag\n"
+msgstr ""
+"Voimme siirtää korkeustasojen merkintöjä raahaamalla hiiren oikealla "
+"painikkeella.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:652
+#: ../../../../build/work/app/i18n/custmsg.h:195
+msgid "Now, we set the Elevation at one end of the Siding.\n"
+msgstr "Asetetaan nyt sivuraiteen toisen pään korkeustaso.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:196
+msgid "We want to find the elevations where the 2 tracks cross.\n"
+msgstr "Voimme selvittää korkeustasot raiteiden risteyskohdassa.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:197
+msgid "We picked an End-Point on the upper track.\n"
+msgstr "Valitsimme raiteiden liitoskohdan ylemmältä radalta.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:198
msgid ""
-"The Color dialog (on the Options menu) is used to change the color of "
-"different objects on the display. \n"
-"You can change the color of the Snap Grid and Borders, as well as Normal, "
-"Selected and Exception tracks."
+"XTrackCAD has computed the Elevation (2.34\") at this point based on the "
+"Elevation at the siding and a combination of the of the first Elevations.\n"
msgstr ""
+"XTrackCAD on laskenut tälle pisteelle korkeustason aiemmin antamiemme "
+"korkeustasojen perusteella.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:406
+#: ../../../../build/work/app/i18n/custmsg.h:199
msgid ""
-"The Command Options dialog (from the Options menu) contains a Radio button "
-"group which you can use to pick the drawing method.\n"
+"We create a Computed Elevation here that will be automatically adjusted "
+"whenever the other Elevations are changed.\n"
msgstr ""
-"Komentojen asetuksista (Asetukset|Komennot) voit valita raiteiden "
-"piirtotavan.\n"
+"Luomme tähän \"lasketun\" korkeustason, joka päivitetään automaattisesti jos "
+"muita korkeustasoja muutetaan.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:502
+#: ../../../../build/work/app/i18n/custmsg.h:200
msgid ""
"The Compute Elevation is based on Elevations at end of both of the "
"branches. We may want to base the Elevation on only one branch. For "
@@ -8898,574 +9370,790 @@ msgstr ""
"haaroista on päärata, emme halua muiden haarojen vaikuttavan tähän "
"laskettuun korkeustasoon.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:613
-msgid ""
-"The Connect command is used to join Sectional track pieces that don't quite "
-"fit together.\n"
-"This command works by adding small gaps between other tracks to move the "
-"selected End-Points closer together."
-msgstr ""
+#: ../../../../build/work/app/i18n/custmsg.h:201
+msgid "We do this by Ignoring the branch we don't want.\n"
+msgstr "Teemme tämän hylkäämällä haaran, jota emme halua käyttää.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:202
+msgid "We'll ignore the lower branch.\n"
+msgstr "Hylkäämme alemman haaran.\n"
-#: ../../../../build/xtrkcad/app/help/messages.h:125
+#: ../../../../build/work/app/i18n/custmsg.h:203
msgid ""
-"The Coupled Length must be greater than the Car Length,\n"
-"and the Coupler Length must be greater than 0."
+"Notice at the End-Point where the tracks cross, we see the Elevation has "
+"changed from 2.34 to 2.64.\n"
msgstr ""
-"Pituuden kytkimineen on oltava suurempi kuin vaunun/veturin pituus,\n"
-"ja kytkimen pituuden on oltava suurempi kuin 0."
+"Huomaa kuinka risteyskohdan laskettu korkeustaso muuttui 2,34 tuumasta 2,64 "
+"tuumaan.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:204
+msgid "Now we want to know the elevation of the lower track.\n"
+msgstr "Nyt haluamme tietää alemman radan korkeustason.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:245
+#: ../../../../build/work/app/i18n/custmsg.h:205
+msgid "There is no End-Point on the lower track here.\n"
+msgstr "Risteyksen kohdalla ei ole raiteiden liitosta.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:206
msgid ""
-"The Draw Commands are used to draw straight and curved lines on the layout.\n"
+"Use Shift-Left-Click to Split the track and create an End-Point we can use "
+"for an Elevation,\n"
msgstr ""
-"Piirtokomennoilla voidaan piirtää suoria ja kaarevia viivoja "
-"ratasuunnitelmaan.\n"
+"Paina vaihto-näppäintä ja klikkaa hiiren vasemmalla painikkeella rataa "
+"luodaksesi liitoskohdan korkeustasoja varten\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:207
+msgid "and create another Computed Elevation point.\n"
+msgstr "ja luo sen kohdalle toinen laskettu korkeustaso.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:197
+#: ../../../../build/work/app/i18n/custmsg.h:208
+msgid "Now we want to label the Grade on this section of track.\n"
+msgstr "Nyt haluamme merkitä raiteen tämän kohdan nousukulman.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:209
msgid ""
-"The End-Point of a straight track is selected and then Left-Dragged to "
-"change its length.\n"
+"Again, since there is no End-Point nearby, we split the track to create an "
+"End-Point we can use,\n"
msgstr ""
-"Suoran raiteen pituutta muutetaan raahaamalla hiiren vasemmalla painikkeella "
-"sen päätepisteestä.\n"
+"Taaskaan ei ole sopivaa raideliitosta lähistöllä, joten pilkomme raiteen\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:210
+msgid "and create a Grade marker.\n"
+msgstr "ja luomme uuteen liitoskohtaan nousukulman merkinnän.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:602
+#: ../../../../build/work/app/i18n/custmsg.h:211
+msgid "Note the marker has an arrow pointing in the upwards direction.\n"
+msgstr "Huomaa kuinka nuolella ilmaistaan nousun suunta.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:212
msgid ""
-"The File menu contains a list of the last 5 layouts you were working on."
+"The last thing we want to do is to create a Station label that we'll use in "
+"the <Profile> command.\n"
msgstr ""
+"Lopuksi haluamme vielä luoda aseman merkinnän, jota käytämme myöhemmin "
+"rataprofiilissa.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:213
+msgid "Now, set the Elevation to Station and enter the its name.\n"
+msgstr "Valitse \"Asema\" ja syötä tekstikenttään aseman nimi.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:647
+#: ../../../../build/work/app/i18n/custmsg.h:214
msgid ""
-"The Flip command produces a mirror-image of the selected tracks. \n"
-"If possible, right-hand turnouts are relabeled as left-hand turnouts (and "
-"vice versa)."
+"XTrackCAD can help find tracks that are curved too sharply or are too "
+"steep. These tracks are Exception tracks and are drawn in the Exception "
+"track color.\n"
msgstr ""
+"XTrackCAD auttaa löytämään raiteet, jotka ovat kaartuvat liian jyrkästi tai "
+"ovat liian jyrkkiä. Näitä kutsutaan erityisraiteiksi ja ne piirretään omalla "
+"värillään.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:587
+#: ../../../../build/work/app/i18n/custmsg.h:215
msgid ""
-"The Parallel command is helpful to layout yards and sidings. If the "
-"Parallel track abuts with an existing track, it is automatically connected."
+"In this example we have a curved track with radius of 9\" and a straight "
+"track with a grade of 3.8%.\n"
msgstr ""
-"Luo rinnakkainen raide -komento on avuksi tehtäessä ratapihoja ja "
-"sivuraiteita. Jos luotava rinnakkainen raide rajoittuu olemassa olevaan "
-"raiteeseen, ne yhdistetään automaattisesti."
+"Tässä esimerkissä meillä on karre, jonka säde on 9 tuumaa ja suora jonka "
+"nousukulma on 3,8%.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:216
+msgid " \n"
+msgstr " \n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:466
+#: ../../../../build/work/app/i18n/custmsg.h:217
+#, fuzzy
msgid ""
-"The Preferences dialog shows the Minimum Track Radius is 9\" and the Maximum "
+"The Layout dialog shows the Minimum Track Radius is 9\" and the Maximum "
"Track Grade is 5%.\n"
msgstr ""
"Ohjelman ominaisuuksissa on määritelty pienimmäksi kaarresäteeksi 9 tuumaa "
"ja suurimmaksi nousukulmaksi 5%.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:617
+#: ../../../../build/work/app/i18n/custmsg.h:218
msgid ""
-"The Price List dialog (on the File Menu) is used to specify the prices of "
-"each type of Turnout, Sectional Track and Structure. Also, the length and "
-"price of flex-track pieces can be specified for each scale.\n"
-"This values will be used on the Parts List report to generate total cost of "
-"the selected objects."
+"If we make the curved track sharper it will be drawn in the Exception "
+"color.\n"
msgstr ""
+"Jos muutamme kaarretta jyrkemmäksi, se piirretään erityisraiteiden värillä.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:603
+#: ../../../../build/work/app/i18n/custmsg.h:219
msgid ""
-"The Print command can optionally print lines representing the roadbed for "
-"all tracks. This is useful when printing full size (1:1) for cutting "
-"roadbed."
+"If we make the straight track steeper it will also be drawn in the Exception "
+"color.\n"
msgstr ""
+"Jos teemme suorasta raiteesta jyrkemmän, myös se piirretään erityisraiteiden "
+"värillä.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:592
+#: ../../../../build/work/app/i18n/custmsg.h:220
msgid ""
-"The Profile command can be used to find the length of a continous section of "
-"track.\n"
-"Select the track at the beginning and end of the section. The total length "
-"of track will be displayed on the Profile window in the lower right corner.\n"
-"Note: the Profile selects the shortest path between the two selected tracks, "
-"which might not be the path you are interested in. In this case, select the "
-"first track and then select other tracks along the path."
+"You can change the Exception color on the Colors dialog from the Options "
+"menu.\n"
+msgstr "Erityisraiteiden väritystä voi muuttaa Asetukset|Värit valikosta.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:221
+msgid ""
+"The unconnected End-Point of any track can be extended with the <Modify> "
+"command using Right-Drag.\n"
msgstr ""
-"Profiili-komentoa voidaan käyttää selvitettäessä jonkin yhtenäisen "
-"raideosuuden pituus.\n"
-"Valitse halutun raideosuuden alku- ja loppupää, jolloin osuuden "
-"kokonaispituus näytetään profiilikäyrän vaaka-akselin oikeassa reunassa.\n"
-"Huom: Profiili-komento valitsee aina lyhyimmän reitin annettujen pisteiden "
-"välillä. Jos haluat itse valita toisen reitin, valitse ensin alkupiste ja "
-"etene sitten haluttua reittiä pitkin loppupisteeseen."
+"Minkä tahansa raiteen irrallista päätä voi pidentää Muokkaa-komennolla "
+"raahaamalla hiiren oikealla painikkeella.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:167
+#: ../../../../build/work/app/i18n/custmsg.h:222
+msgid "Select the End-Point and Right-Drag.\n"
+msgstr "Valitse päätepiste ja raahaa oikealla painikkeella.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:223
+msgid "The extending track can be straight...\n"
+msgstr "Jatke voi olla suora...\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:224
+msgid "... or curved.\n"
+msgstr "...tai kaareva.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:225
msgid ""
-"The Profile line is drawn in Red. This indicates that there some turnouts "
-"on that section of the Path which have more than 2 connections.\n"
+"If you extend a Straight or Curved flex track and enable Easements then an "
+"Easement curve will be automatically generated when you extend the track.\n"
msgstr ""
-"Rataprofiili on piirretty punaisella viivalla. Tämä tarkoittaa sitä, että "
-"kyseisellä osuudella on vaihteita, jotka ovat yhteydessä useampaan kuin "
-"kahteen määriteltyyn korkeustasoon.\n"
+"Jos jatkat suoraa tai kaarevaa fleksiraidetta ja kaarreloivennus on "
+"käytössä, luodaan automaattisesti kaarreloivennus pidentämisen yhteydessä.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:634
+#: ../../../../build/work/app/i18n/custmsg.h:226
msgid ""
-"The Split command can be used to create Block Gaps at end points between two "
-"tracks. \n"
-"Either rail or both rails can be gapped, which are drawn as thick lines."
+"The <Flip> command will create a mirror image of the selected objects.\n"
+msgstr "Peilaus-komento luo peilikuvan valitusta objektista.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:227
+msgid "After selecting the object, drag a line which will form the mirror.\n"
+msgstr "Valittuasi objektin, raahaa hiirellä peilauslinja.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:228
+msgid "The mirror line does not have to be vertical or horizontal.\n"
+msgstr "Peilauslinjan ei tarvitse olla vaaka- tai pystysuuntainen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:229
+msgid "You can also flip any number of objects.\n"
+msgstr "Voit myös peilata useita objekteja.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:230
+msgid "Watch what happens to the structure and turnout titles.\n"
+msgstr "Katso mitä tapahtuu rakennusten ja vaihteen otsikoille.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:231
+msgid ""
+"Note that the turnout title has been changed from the Medium Right to Medium "
+"Left. When turnouts are flipped, XTrackCAD will try to find a matching "
+"turnout and if found will change the name.\n"
msgstr ""
+"Huomaa, että vaihteen otsikko muutettiin oikeasta (right) vasemmaksi (left). "
+"Kun vaihteita peilataan, XTrackCAD yrittää löytää vastaavan toispuoleisen "
+"vaihteen ja sellaisen löytäessään vaihtaa nimen.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:147
+#: ../../../../build/work/app/i18n/custmsg.h:232
msgid ""
-"The Status bar displays the number of auto-connections that will be made and "
-"the maximum offset.\n"
+"Structures do not have Right and Left hand versions. Their title is changed "
+"to indicate that they were flipped.\n"
msgstr ""
-"Tilarivillä näytetään automaattisten liitosten lukumäärä, sekä suurin "
-"päätepisteen siirtymä.\n"
+"Rakennuksilla ei ole oikeaa ja vasenta versiota. Niiden otsikko muutetaan "
+"siten, että se kuvaa objektin olevan peilattu (flipped).\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:651
+#: ../../../../build/work/app/i18n/custmsg.h:233
+msgid "You can use the <Describe> command to change their title.\n"
+msgstr "Voit käyttää määrittele-komentoa muuttaaksesi niiden otsikoita.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:234
msgid ""
-"The Turnout Designer dialogs allow you to specify the width of any attached "
-"roadbed. \n"
-"As well, the color and thickness of the lines used to represent the roadbed "
-"can be specified."
+"The <Group> and <Ungroup> commands (on the Tools menu) are a powerful way to "
+"manipulate Turnout and Structure definitions.\n"
msgstr ""
+"Ryhmittele ja rymittelyn purku komennot (Hallinta-valikossa) ovat tehokas "
+"keino käsitellä raideosien ja rakennusten määrittelyjä.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:84
+#: ../../../../build/work/app/i18n/custmsg.h:235
+msgid "We'll start with a simple turnout and add a switch machine.\n"
+msgstr "Aloitamme yksinkertaisesta vaihteesta ja vaihdekoneistosta.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:236
msgid ""
-"The a turnout is made of a number of individual straight and curved track "
-"segements. This turnout had four segments:\n"
+"Now that we have drawn a rough outline of a switch machine we will group it "
+"with the turnout definition.\n"
msgstr ""
-"Vaihde on tehty useasta erillisestä suorasta ja kaarevasta raideosasta. Tämä "
-"vaihde koostui neljästä osasta:\n"
+"Nyt kun olemme piirtäneet karkean hahmotelman vaihdekoneistosta, "
+"ryhmittelemme sen uudeksi vaihdemäärittelyksi.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:321
-msgid "The actual Turnout is a short portion at the points.\n"
-msgstr "Varsinainen vaihde on lyhyt osa kielten päiden luona.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:237
+msgid "First we Select the objects in the new definition.\n"
+msgstr "Ensin valitsemme objektit uutta määrittelyä varten.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:238
+msgid "Now do the <Group> command.\n"
+msgstr "Nyt suoritetaan ryhmittely-komento.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:637
+#: ../../../../build/work/app/i18n/custmsg.h:239
msgid ""
-"The center point and radius of Curved and Circle tracks can optionally be "
-"drawn. \n"
-"This feature is toggled by using the Move Label command and doing a Shift-"
-"Left-Click on the track."
+"The <Group> command dialog shows the Title (Manufacturer, Description and "
+"Part Number) of the new definition. This information is taken from the "
+"Selected objects you are grouping.\n"
msgstr ""
+"Ryhmittely-komennon ikkunassa näytetään valmistaja, kuvaus sekä tuotenumero. "
+"Nämä tiedot on saatu ryhmittelyä varten valituista objekteista.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:606
+#: ../../../../build/work/app/i18n/custmsg.h:240
msgid ""
-"The colors of different parts of the Main window can be changed with the "
-"Colors dialog. In particular, the Snap Grid color can be changed to make it "
-"more visible when printed."
+"The 'Replace with new group?' toggle will replace the Selected objects with "
+"the new definition.\n"
msgstr ""
+"Jos \"Korvaa uudella ryhmällä?\" on valittuna, ryhmittelyä varten valitut "
+"objektit korvataan juuri luodulla uudella ryhmällä.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:266
+#: ../../../../build/work/app/i18n/custmsg.h:241
msgid ""
-"The connecting curve is made of three tracks, the curve and two easement "
-"segments on each end.\n"
+"If we don't change the Title then the new definition will replace the "
+"existing definition.\n"
msgstr ""
-"Yhdistävä kaarre on tehty kolmesta raideosasta: kaarteesta ja molemmissa "
-"päissä olevista kaarreloivennuksesta.\n"
+"Jos otsikkotietoja (valmistaja, kuvaus ja tuotenumero) ei muuteta, korvaa "
+"tämä uusi määrittely jo olemassa olevan saman nimisen määrittelyn.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:462
-msgid "The connection was made by adding small gaps in other tracks.\n"
-msgstr "Liitos tehtiin lisäämällä hienoisia rakoja muiden raideosien väliin.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:242
+msgid "We'll give this definition a new Description.\n"
+msgstr "Annamme tälle määrittelylle uuden kuvauksen.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:269
-msgid "The controls are:\n"
-msgstr "Kontrollit ovat:\n"
+#: ../../../../build/work/app/i18n/custmsg.h:243
+msgid "We're done with this definition. Press Ok.\n"
+msgstr "Määrittely on valmis ja se hyväksytään painamalla Ok.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:388
-msgid "The cross-hairs on the LEDs and switch show the centers for drilling.\n"
-msgstr ""
-"LEDien ja kytkimien ristikkoviiva osoittaa niiden keskipisteet poraamista "
-"varten.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:244
+msgid "You will see the updated image on the HotBar.\n"
+msgstr "Näet päivitetyn kuvan Hot Barissa.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:555
+#: ../../../../build/work/app/i18n/custmsg.h:245
msgid ""
-"The demo also simulates entering values and selecting options on various "
-"dialogs.\n"
+"The <Ungroup> command replaces any Selected turnouts or structures with "
+"their parts.\n"
msgstr ""
-"Tässä demossa simuloidaan myös arvojen syöttämistä ja valintojen tekemistä "
-"dialogeissa (ikkunoissa).\n"
+"Ryhmittelyn purku komento korvaa valittut vaihteet tai rakennukset niiden "
+"osilla.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:280
-msgid "The demos are designed to fit within a certain sized window.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:246
+msgid ""
+"Structures and non-track segements of turnouts are composed of Lines, "
+"Circles and other shapes. In this turnout these are the two lines and the "
+"two squares.\n"
msgstr ""
-"Demot on suunniteltu niin, että ne mahtuvat tietyn kokoiseen ikkunaan.\n"
+"Rakennukset ja muut lohkot, jotka eivät ole raiteita, muodostuvat viivoista "
+"ympyröistä ja muista muodoista. Tässä vaihteessa on kaksi viivaa ja kaksi "
+"nelikulmiota.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:244
-msgid "The double crossover only needs length and track separation.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:247
+msgid ""
+"We will Ungroup this turnout and see how the individual parts can be "
+"changed.\n"
msgstr ""
-"Sovitettu raideristeys tarvitsee ainoastaan pituuden ja raiteiden välisen "
-"etäisyyden.\n"
+"Puramme tämän vaihteen ryhmittelyn nähdäksemme kuinka yksittäisiä osia "
+"voidaan muuttaa.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:243
-msgid "The double slip switch is described by only a few parameters.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:248
+msgid "First Select the turnout and then Ungroup it.\n"
+msgstr "Ensin valitsemme vaihteen ja sitten puramme ryhmittelyn.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:249
+msgid "Notice that the Title now indicates the turnout is Ungrouped.\n"
+msgstr "Huomaa että otsikko näyttää vaihteen ryhmittelyn olevan purettu.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:250
+msgid "Hit Escape to deselect everything.\n"
+msgstr "Paina Esc-näppäintä poistaaksesi valinnat objekteista.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:251
+msgid "Now Select the lines and squares.\n"
+msgstr "Valitse nyt viivat ja nelikulmiont.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:252
+msgid ""
+"We could modify these object or add new ones. For now we'll just delete "
+"them.\n"
msgstr ""
-"Kaksipuolinen risteysvaihde määritellään vain muutamalla parametrilla.\n"
+"Voisimme muokata näitä objekteja tai lisätä uusia. Nyt kuitenkin vain "
+"poistamme ne.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:253
+msgid "And move the Label out of the way.\n"
+msgstr "Ja siirrämme otsikon pois tieltä.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:254
+msgid "Notice that the turnout has been broken into three parts.\n"
+msgstr "Huomaa että vaihde on purettu kolmeen osaan.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:438
+#: ../../../../build/work/app/i18n/custmsg.h:255
msgid ""
-"The end of the turnout has been replaced by a piece of straight flex track "
-"which we can modify.\n"
+"Two ends of the turnout, from the frog to the end of the diverging leg and "
+"from the points to the left, are now straight track sections.\n"
msgstr ""
-"Vaihteen pää korvattiin pätkällä suoraa fleksiraidetta, jota voi muokata "
-"normaalisti.\n"
+"Haarautuvan raiteen takajatkos sekä vaihteen etujatkos ovat nyt suoria "
+"raideosia.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:367
+#: ../../../../build/work/app/i18n/custmsg.h:256
msgid ""
-"The entrance to the siding will be protected by double headed signals.\n"
-msgstr "Sivuraiteelle tulo suojataan kaksiosaisella opastimella.\n"
+"The a turnout is made of a number of individual straight and curved track "
+"segements. This turnout had four segments:\n"
+msgstr ""
+"Vaihde on tehty useasta erillisestä suorasta ja kaarevasta raideosasta. Tämä "
+"vaihde koostui neljästä osasta:\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:371
-msgid "The exits from the siding will be protected by single headed signals.\n"
-msgstr "Sivuraiteelta lähdöt suojataan yksiosaisilla opastimilla.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:257
+msgid " 1 a short straight segment to the left of the points\n"
+msgstr " 1 Lyhyestä suorasta etujatkoksesta.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:431
-msgid "The extending track can be straight...\n"
-msgstr "Jatke voi olla suora...\n"
+#: ../../../../build/work/app/i18n/custmsg.h:258
+msgid " 2 a long straight segment to the right of the points\n"
+msgstr " 2 Pitkästä suorasta raiteesta.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:259
+msgid " 3 a curved segment from the points to the frog\n"
+msgstr " 3 Kaarteesta kielten päistä risteyskappaleeseen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:260
+msgid ""
+" 4 a straight segment from the frog to the end of the diverging leg.\n"
+msgstr " 4 Haarautuvan raiteen suorasta takajatkoksesta.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:89
+#: ../../../../build/work/app/i18n/custmsg.h:261
msgid "The first and last segments have be converted to straight tracks.\n"
msgstr "Ensimmäinen ja viimeinen osa on muutettu suoriksi raideosiksi.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:455
-msgid "The first case joins the curve and straight track.\n"
-msgstr "Ensin yhdistetään kaarre suoraan raiteeseen.\n"
-
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:292
+#: ../../../../build/work/app/i18n/custmsg.h:262
msgid ""
-"The first is by clicking on the first End-Point and dragging in the "
-"direction of the Curve.\n"
+"The second and third segments form the the body of the turnout and can not "
+"be ungrouped further.\n"
msgstr ""
-"Ensimmäinen tapa on klikata kaarteen ensimmäistä päätepistettä ja raahata "
-"hiirellä kaarteen suntaan.\n"
+"Toinen ja kolmas osa muodostavat vaihteen rungon, eikä niiden ryhmittelyä "
+"voi purkaa tämän pidemmälle.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:220
+#: ../../../../build/work/app/i18n/custmsg.h:263
msgid ""
-"The first is to specify a fixed radius and simply drag the Circle into "
-"position.\n"
+"You can later Group this turnout with the straight segments to recreate the "
+"turnout definition. You can also add other track segments to turnout "
+"definitions.\n"
msgstr ""
-"Ensimmäinen tapa on määritellä ympyrän säde ja yksinkertaisesti raahaamalla "
-"ympyrä paikoilleen.\n"
+"Voit myöhemmin ryhmitellä tämän vaihteen suorien raideosien kanssa ja luoda "
+"vaihteen määrittelyn uudelleen. Voit myös lisätä muita raideosia vaihteiden "
+"määrittelyihin.\n"
-#: ../../../../build/xtrkcad/app/help/messages.h:119
-msgid ""
-"The first track for the Align\n"
-"Rotate command must be Selected."
+#: ../../../../build/work/app/i18n/custmsg.h:264
+msgid "Now, create a track and place the new turnout on it.\n"
+msgstr "Nyt luodaan raide ja lisätään siihen uusi vaihde.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:265
+msgid "Now suppose we want to replace the black squares with green circles.\n"
msgstr ""
-"Kohdistuskomennon ensimmäisen\n"
-"raideosan on oltava valittuna."
+"Oletetaan, että haluamme vaihtaa mustien nelikulmioiden paikalle vihreät "
+"ympyrät.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:266
+msgid "First we Select the turnout.\n"
+msgstr "Ensin valitsemme vaihteen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:267
+msgid "And now Ungroup it (from the Tools Menu)\n"
+msgstr "Ja sitten puramme ryhmittelyn.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:308
+#: ../../../../build/work/app/i18n/custmsg.h:268
msgid ""
-"The flange of the top L-Girders is on the outside edge of the girders. We "
-"want to change the girder so both flanges are on the inside.\n"
-msgstr ""
-"Ylemmän L-palkin pystylape on rakenteen ulkopuolella. Haluamme että "
-"molempien palkkien pystylappeet ovat sisäpuolella.\n"
+"Notice that the name has changed to indicate the turnout was Ungrouped.\n"
+msgstr "Huomaa kuinka nimi on muutettu kuvaamaan vaihteen purkua.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:168
+#: ../../../../build/work/app/i18n/custmsg.h:269
msgid ""
-"The grade on this part of the Path is the average and may be affected by "
-"other Elevations, such the end of the lower branch.\n"
+"Now, hit escape to deselect everything and then Select the 2 squares and "
+"delete them.\n"
msgstr ""
-"Osuuden nousukulma on keskiarvo ja siihen voi vaikuttaa muut korkeustasot, "
-"kuten alemman haaran pään korkeustaso.\n"
+"Paina Esc-näppäintä poistaaksesi valinnat objekteista ja valitse sitten "
+"nelikulmiot ja poista ne.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:554
-msgid "The helix description can be moved by the <Move Label> command.\n"
-msgstr "Helixin kuvausta voidaan siirtää aivan kuten muitakin merkintöjä.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:270
+msgid "Now draw the green circles...\n"
+msgstr "Piirrä nyt vihreät ympyrät...\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:271
+msgid "and Group the new definition.\n"
+msgstr "ja ryhmittele tämä uusi määrittely.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:417
+#: ../../../../build/work/app/i18n/custmsg.h:272
msgid ""
-"The hollow arrow represents the mouse cursor without a mouse button being "
-"pressed.\n"
+"Notice that the turnout in the HotBar is angled the same as the turnout on "
+"the layout. Make sure your new definition is rotated the way you want it.\n"
msgstr ""
-"Läpinäkyvä nuoli kuvaa hiiren osoitinta silloin kun hiiren painikkeita ei "
-"ole painettu.\n"
+"Huomaa että vaihteen kuva Hot Barissa on nyt samassa kulmassa kuin vaide "
+"ratasuunnitelmassa. Ole siis huolellinen tehdessäsi uusia määrittelyitä, "
+"jotta ne ovat haluamassasi kulmassa.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:223
-msgid ""
-"The last is similar, but you drag from the center of the Circle to the "
-"edge.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:273
+msgid "We can also create turnouts from simple straight and curved tracks.\n"
msgstr ""
-"Viimeinen tapa on vastaavanlainen, mutta raahataan ympyrän keskipisteestä "
-"ulos päin.\n"
+"Voimme myös luoda vaihteita yksinkertaisista suorista ja kaarevista "
+"raideosista.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:274
+msgid "We'll create two tracks that have a common End-Point.\n"
+msgstr "Luomme kaksi raidetta, joilla on yhteinen päätepiste.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:275
+msgid "At this point we can modify the tracks if necessary.\n"
+msgstr "Tässä vaiheessa voimme muokata raiteita, jos se on tarpeen.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:300
+#: ../../../../build/work/app/i18n/custmsg.h:276
+msgid "We will use the <Describe> command to change the tracks.\n"
+msgstr "Käytämme kuvaile-komentoa muuttaaksemme raiteiden ominaisuuksia.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:277
+msgid "We'll make the Length 7.5\".\n"
+msgstr "Muutamme pituutta.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:278
msgid ""
-"The last method begins by drawing a line between the two End-Points of the "
-"Curve. This forms the Chord of the Curve.\n"
+"If we change the Length, each End-Point will be moved to shorten the track. "
+"We want to just move the Right End-Point. To control this, change the Pivot "
+"to First which means the Left End-Point will be unchanged when we change the "
+"length (or angle) of the track.\n"
msgstr ""
-"Viimeinen tapa aloitetaan vetämällä viiva kaarteen päätepisteiden välille. "
-"Tämä muodostaa kaarteen jänteen.\n"
+"Jos nyt vain muutamme pituutta, lyhennetään raidetta molemmista päistä. "
+"Haluamme muuttaa raiteen pituutta vain oikeasta päästä, vaihdamme ensin "
+"kiertopisteeksi ensimmäisen pään, jolloin valittu kiertopiste pysyy "
+"paikoillaan muutettaessa raiteen pituutta (tai kulmaa).\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:279
+msgid "Now when change the Length only the Right End-Point will move.\n"
+msgstr "Nyt kun muutamme pituutta, vain oikeaa päätä lyhennetään.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:514
+#: ../../../../build/work/app/i18n/custmsg.h:280
+msgid "Now let's look at the curved track.\n"
+msgstr "Katsotaanpa sitten kaarevaa raidetta.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:281
msgid ""
-"The last thing we want to do is to create a Station label that we'll use in "
-"the <Profile> command.\n"
+"Here the Left End-Point (which we don't want to move) is the Second End-"
+"Point, so we'll make that the Pivot.\n"
msgstr ""
-"Lopuksi haluamme vielä luoda aseman merkinnän, jota käytämme myöhemmin "
-"rataprofiilissa.\n"
+"Tässä vasen päätepiste (jota emme halua siirtää) on toinen päätepiste, joten "
+"valitsemme sen kiertopisteeksi.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:524
-msgid "The left mouse button is released at the final end postion.\n"
-msgstr "Hiiren vasen painike vapautetaan loppupisteessä.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:282
+msgid "We want the curve to have a radius of 20\" and an angle of 17.5°.\n"
+msgstr "Haluamme kaarteelle tietyn säteen ja kulman.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:283
+msgid "First change the Radius...\n"
+msgstr "Ensin muutetaan säde...\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:591
+#: ../../../../build/work/app/i18n/custmsg.h:284
+msgid "and the the Angular Length.\n"
+msgstr "ja sitten kulma.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:285
+msgid "Now Select both tracks...\n"
+msgstr "Valitse molemmat raiteet...\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:286
+msgid "and Group them.\n"
+msgstr "ja ryhmittele ne.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:287
msgid ""
-"The length of flex-track attached to each Turnout is displayed on layout "
-"near the end-points of the Turnouts.\n"
-"Make sure 'Lengths' option of the 'Label Enable' toggle button on the "
-"Display dialog is selected."
+"If the two tracks have a common End-Point then they will form a Turnout and "
+"can be switched with the <Train> command. Otherwise they will just be two "
+"track segments grouped together.\n"
msgstr ""
-"Kuhunkin palaraiteeseen liittyvän fleksiraiteen pituus näytetään "
-"ratasuunnitelmassa palaraiteiden päiden lähellä.\n"
-"Varmista että Asetukset|Näyttöasetukset ikkunassa on ruksittu kohta "
-"\"Pituudet\" näytettävien merkintöjen kohdalla."
+"Jos molemmilla raiteilla on yhteinen päätepiste, ne muodostavat vaihteen, "
+"jonka asentoa voidaan vaihtaa simuloitaessa junien ajoa. Muussa tapauksessa "
+"ne ovat vain kaksi raideosaa, jotka ovat ryhmitelty keskenään.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:199
+#: ../../../../build/work/app/i18n/custmsg.h:288
msgid ""
-"The length of the straight track is determined by the distance from the far "
-"End-Point and the cursor.\n"
+"We have created a left hand turnout and we also want a right hand version.\n"
msgstr ""
-"Suoran raiteen pituus määräytyy päätepisteen ja osoittimen välisen "
-"etäisyyden mukaan.\n"
+"Olemme luoneen vasemman puoleisen vaihteen ja haluamme myös oikean puoleisen "
+"version.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:331
+#: ../../../../build/work/app/i18n/custmsg.h:289
+msgid "We'll use the <Flip> command.\n"
+msgstr "Käytämme peilaustoimintoa.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:290
msgid ""
-"The main drawing area shows a portion of total layout. You can zoom in or "
-"zoom out by choosing 'Zoom In' or 'Zoom Out' in the 'Edit' menu, by using "
-"the Zoom buttons on the toolbar or by using the 'Page Down' and 'Page Up' "
-"keys.\n"
-msgstr ""
-"Piirtoalueella näytetään osa ratasuunnitelmasta. Voit lähentää tai loitontaa "
-"näkymää valitsemalla Muokkaa -valikosta \"Lähennä\" tai \"Loitonna\", "
-"käyttämällä vastaavia painikkeita työkaluriviltä, näppäimistön PgUp ja PgDn -"
-"näppäimillä tai rullahiiren rullasta pyörittämällä.\n"
+"Drag a horizontal line that will be the mirror for the <Flip> command.\n"
+msgstr "Piirrä peilayslinja vaakatasoon.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:213
-msgid "The mirror line does not have to be vertical or horizontal.\n"
-msgstr "Peilauslinjan ei tarvitse olla vaaka- tai pystysuuntainen.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:291
+msgid "Notice the title has changed to Flipped Left.\n"
+msgstr "Huomaa että otsikko ilmaisee vaihteen olevan peilikuva.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:610
-msgid "The name of the Layer is the Balloon Help for the Layer button."
-msgstr ""
+#: ../../../../build/work/app/i18n/custmsg.h:292
+msgid "Now Group the turnout.\n"
+msgstr "Ryhmittele.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:323
-msgid "The new curved turnout is also composed of several segments.\n"
-msgstr "Myös kaarrevaihde koostuu useasta osasta.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:293
+msgid "We'll change the Title and Part No for the new defintion.\n"
+msgstr "Muutamme kuvausta ja tuotenumeroa uutta määrittelyä varten.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:408
+#: ../../../../build/work/app/i18n/custmsg.h:294
msgid ""
-"The next method is \"Simple\" draws. Here tracks are drawn using one line, "
-"no End-Points are drawn, lines are not drawn and structures are drawn using "
-"a box outline.\n"
+"To Remove the definitions, use the Custom Management dialog on the Tools "
+"menu.\n"
msgstr ""
-"Seuraava piirtotapa on \"Yksinkertainen\", jolloin raiteet piirretään "
-"yhdellä viivalla, ilman päätepisteiden merkintää. Viivoja ei piirretä ja "
-"rakennukset piirretään yksinkertaisina nelikulmioina.\n"
+"Poistaaksesi määrittelyt, käytä \"Omat raideosat ja kalusto\" ikkunaa "
+"Hallinta valikosta.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:298
+#: ../../../../build/work/app/i18n/custmsg.h:295
+msgid "Select the definitions you added and Delete them.\n"
+msgstr "Valitse lisäämäsi määrittelyt ja poista ne.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:296
msgid ""
-"The next method is similar to the last except that you drag first from the "
-"center of the Curve to one End-Point.\n"
+"Now we will create a helix in the corner of the layout connected to 2 "
+"tracks.\n"
msgstr ""
-"Seuraava tapa on saman kaltainen kuin edellinen, paitsi että toiminto "
-"aloitetaan raahaamalla kaarteen keskipisteestä kaarteen päätepisteeseen.\n"
+"Nyt luomme helixin (kierrenousun) ratasuunnitelman nurkkaukseen ja "
+"yhdistämme sen kahteen raiteeseen.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:295
+#: ../../../../build/work/app/i18n/custmsg.h:297
+#, c-format
msgid ""
-"The next method is to click at one End-Point and drag to the center of the "
-"Curve.\n"
+"We will be creating a helix with a Elevation Difference of 12\", Grade of "
+"1.5% and limit the Vertical Separation to at least 2\".\n"
msgstr ""
-"Seuraava tapa on klikata kaarteen päätepistettä ja raahata hiirellä kaarteen "
-"keskipisteeseen.\n"
+"Luomme helixin, jonka korkeusero on 12 tuumaa, nousukulma 1,5% ja määräämme "
+"kerrosten välisen tilan olevan vähintään 2 tuumaa.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:222
-msgid "The next method is to drag from the edge of the Circle to the center.\n"
-msgstr "Seuraava tapa on raahata ympyrän kehältä kohti keskipistettä.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:298
+msgid "First set the Elevation Difference to 12\"\n"
+msgstr "Ensin asetamme korkeuseron 12 tuumaan.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:299
+msgid "Next set the Vertical Separation to 2\"\n"
+msgstr "Sauraavaksi kerrosten välinen etäisyys 2 tuumaksi.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:300
+msgid "Notice how this causes the number of Turns to be set to 6\n"
+msgstr "Huomaa kuinka tämä muuttaa kierrosten lukumääräksi 6.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:301
+msgid "Next set the Grade to 1.5%\n"
+msgstr "Seuraavaksi nousukulmaksi 1,5%.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:302
+msgid "Notice how this causes the Radius to change.\n"
+msgstr "Huomaa, kuinka säde muuttuu.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:410
+#: ../../../../build/work/app/i18n/custmsg.h:303
msgid ""
-"The next method is to just draw the End-Points of the selected tracks.\n"
+"Setting these values changes the Radius to 21.2\" and the number of Turns to "
+"6.\n"
msgstr ""
-"Seuraava tapa on piirtää ainoastaan valittujen raiteiden päätepisteet.\n"
+"Näillä arvoilla säde muuttui 21,2 tuumaksi ja kierrosten lukumäärä 6:ksi.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:572
+#: ../../../../build/work/app/i18n/custmsg.h:304
msgid ""
-"The notation \"Menu|Item\" is used in the documentation (and the on-line "
-"demos and tips) to indicate the selection of a menu item.\n"
-"For example File|Open means to open the menu by clicking on File on the menu "
-"bar of the Main window and then selecting the Open item from that menu."
+"Now we specify the Angular Separation between the enterance and exit to the "
+"helix.\n"
+msgstr "Nyt määrittelemme helixin sisäänkäyntien välisen kulman.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:305
+msgid "Note: this will decrease the Radius slightly.\n"
+msgstr "Huom: Tämä pienentää sädettä hieman.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:306
+msgid "Next we can fine tune the helix by decreasing the Radius to 15\".\n"
msgstr ""
-"Merkintätapa \"Valikko|Komennot\" on käytössä dokumentaatiossa, ohjeessa, "
-"demoissa ja vinkeissä. Se kuvaa kyseessä olevaa valikon toimintoa.\n"
-"Esimerkiksi Tiedosto|Avaa tarkoittaa, että päävalikosta on ensin avattava "
-"Tiedosto-valikko ja sieltä valittava Avaa-komento."
+"Seuraavaksi voimme hienosäätää helixiä asettamalla säteeksi 15 tuumaa.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:322
-msgid "The other parts are various straight and curved segments.\n"
-msgstr "Muut osat ovat suoria ja kaarevia raideosia.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:307
+msgid "Note the change to the Grade.\n"
+msgstr "Huomaa nousukulman muutos.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:611
+#: ../../../../build/work/app/i18n/custmsg.h:308
msgid ""
-"The playback speed of the Demos can be changed by using Speed drop down list "
-"on the Demo window."
+"Lastly change the Vertical Separation to 2.5\". The number of Turns will "
+"change to 4 and the grade increase to almost 3%.\n"
msgstr ""
+"Viimeiseksi muutamme kerrosten välisen etäisyyden 2,5 tuumaksi. Kierrosten "
+"lukumäärä muuttuu 4:ksi ja nousukulma kasvaa lähes 3%:iin.\n"
-#: ../wlib/gtklib/wpref.c:112
-#, c-format
+#: ../../../../build/work/app/i18n/custmsg.h:309
msgid ""
-"The required configuration files could not be located in the expected "
-"location.\n"
-"\n"
-"Usually this is an installation problem. Make sure that these files are "
-"installed in either \n"
-" %s/share/xtrkcad or\n"
-" /usr/lib/%s or\n"
-" /usr/local/lib/%s\n"
-"If this is not possible, the environment variable %s must contain the name "
-"of the correct directory."
+"Note: the Vertical Separation will be increased. This value is the "
+"Elevation Difference (12.0) divided by the total number of turns. The total "
+"number of turns is 4.25: 4 whole Turns plus a quarter turn for the Angular "
+"Separation.\n"
msgstr ""
-"Tarvittavia asetustiedostoja ei löydy oletetuista hakemistoista.\n"
-"\n"
-"Yleensä tämä johtuu virheellisestä asennuksesta. Varmista että nämä "
-"tiedostot on asennettu johonkin seuraavista hakemistoista:\n"
-" %s/share/xtrkcad\n"
-" /usr/lib/%s\n"
-" /usr/local/lib/%s\n"
-"Jos tämä ei ole mahdollista, täytyy ympäristömuuttujan %s sisältää oikean "
-"hakemiston nimi."
+"Huom: Kerrosten välistä etäisyyttä kasvatetaan. Tämä arvo on "
+"kokonaiskorkeusero (12,0) jaettuna kierrosten kokonaislukumäärällä. "
+"Kierrosten kokonaislukumäärä on 4,25: 4 täyttä kierrosta sekä neljännes "
+"kierros johtuen sisäänkäyntien välisestä kulmasta.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:165
+#: ../../../../build/work/app/i18n/custmsg.h:310
msgid ""
-"The second Point is at the left end of the siding. The Path will be drawn "
-"in Purple on the layout.\n"
+"Now that the helix parameters are set we can place the helix on the layout.\n"
msgstr ""
-"Toinen piste on aseman vasen pää. Reitti merkitään ratasuunnitelmaan "
-"purppuralla.\n"
+"Nyt kun helixin parametrit on aseteltu, voimme asettaa helixin "
+"ratasuunnitelmaan.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:90
+#: ../../../../build/work/app/i18n/custmsg.h:311
msgid ""
-"The second and third segments form the the body of the turnout and can not "
-"be ungrouped further.\n"
+"Next, join the 2 straight tracks to the helix in the same way we join to a "
+"circle.\n"
msgstr ""
-"Toinen ja kolmas osa muodostavat vaihteen rungon, eikä niiden ryhmittelyä "
-"voi purkaa tämän pidemmälle.\n"
-
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:456
-msgid "The second case will join the two straight tracks.\n"
-msgstr "Seuraavaksi yhdistetään kaksi suoraa raidetta.\n"
+"Seuraavaksi yhdistetään suorat raiteet helixiin aivan kuten ympyrään.\n"
-#: ../../../../build/xtrkcad/app/help/messages.h:120
+#: ../../../../build/work/app/i18n/custmsg.h:312
msgid ""
-"The second track for the Align\n"
-"Rotate command must be Unselected."
+"Notice that the length has increased because we have more than 4 turns in "
+"the helix. It is closer to 4.25 turns.\n"
msgstr ""
-"Kohdistuskomennon toisen raideosan\n"
-"on oltava valitsematon."
-
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:480
-msgid "The selected Active End-Point"
-msgstr "Valittu aktiivinen päätepiste"
-
-#: ../bin/dcmpnd.c:257
-msgid "The selected Turnout had a differing number of End-Points"
-msgstr "Valitussa vaihteessa oli eri määrä päätepisteitä"
-
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:473
-msgid "The selected tracks are moved into position.\n"
-msgstr "Valitut raiteet siirrettiin paikoilleen.\n"
+"Huomaa kuinka pituus kasvoi hieman koska helixissä on yli 4 kierrosta. "
+"Kierrosten lukumäärä on lähempänä 4,25:tä.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:325
+#: ../../../../build/work/app/i18n/custmsg.h:313
msgid ""
-"The separation is set in the <Parallel Separation> window. You should set "
-"this value before you begin to select tracks.\n"
+"Next, we assign elevations to the 2 End-Points of the helix. This will "
+"determine the grade and separation between the helix coils.\n"
msgstr ""
-"Raiteiden välinen etäisyys asetetaan työkalurivillä olevan tekstikentän "
-"avulla. Tämä arvo on asetettava ennen kuin raiteita valitaan.\n"
+"Seuraavaksi määrittelemme korkeustason helixin toiselle päätepisteelle. Tämä "
+"määrittää nousukulman ja kierteiden välisen eron.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:595
+#: ../../../../build/work/app/i18n/custmsg.h:314
msgid ""
-"The size of the Map window is controlled by the overall size of the room "
-"(specified on the Layout dialog) and the Map Scale (on the Display dialog). "
-"You can make the Map window larger (or smaller) by decreasing (or "
-"increasing) the Map Scale.\n"
-"XTrackCAD will prevent you from making the Map window too small or too large."
+"Note: we could set the elevations anywhere along the connecting tracks "
+"instead. XTrackCAD treats a helix as a single length of track for "
+"elevations.\n"
msgstr ""
+"Huom: Voisimme määrittää korkeustason missä tahansa helixiin yhdistetyllä "
+"raiteella. Korkeustasojen kannalta XTrackCAD käsittelee helixiä yhtenä "
+"tietyn mittaisena raiteena.\n"
-#: ../../../../build/xtrkcad/app/help/messages.h:127
+#: ../../../../build/work/app/i18n/custmsg.h:315
msgid ""
-"The specified Index is already in use.\n"
-"The Index will be updated to the next available value."
+"We have set the elevations to 1\" and 13\" to produce a grade of 3.0% with "
+"2.8\" between coils.\n"
msgstr ""
-"Määritelty indeksi on jo käytössä.\n"
-"Indeksi muutetaan seuraavaksi vapaaksi arvoksi."
+"Asetimme korkeustasot 1 ja 13 tuumaksi luodaksemme 3,0% nousukulman ja 2,8 "
+"tuuman kerrosvälin.\n"
-#: ../../../../build/xtrkcad/app/help/messages.h:116
+#: ../../../../build/work/app/i18n/custmsg.h:316
msgid ""
-"The tracks cannot be connected together.\n"
-"\n"
-"Try changing some tracks for a closer fit\n"
-"or increase the Connection Angle value on\n"
-"the Preferences dialog."
+"You can use the <Describe> command to change the number of Turns or the "
+"Elevations at either end of the Helix. This will affect the Grade and "
+"Vertical Separation.\n"
msgstr ""
-"Raiteita ei voi yhdistää.\n"
-"\n"
-"Kokeile sovittaa raiteet paremmin keskenään\n"
-" tai kasvata liitoskulmaa ohjelman ominaisuuksista."
+"Voit käyttää määrittele-komentoa muuttaaksesi kierrosten lukumäärää tai "
+"korkeustasoja kummassa tahansa päässä helixiä. Tämä vaikuttaa nousukulmaan "
+"ja kerrosten väliseen tilaan.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:317
+msgid "The helix description can be moved by the <Move Label> command.\n"
+msgstr "Helixin kuvausta voidaan siirtää aivan kuten muitakin merkintöjä.\n"
-#: ../../../../build/xtrkcad/app/help/messages.h:118
+#: ../../../../build/work/app/i18n/custmsg.h:318
msgid ""
-"The tracks cannot be connected together.\n"
-"\n"
-"Try changing some tracks for a closer fit\n"
-"or increase the Connection Distance"
+"In addition to using the turnout definitions you can create 'Hand Laid "
+"Turnout'.\n"
msgstr ""
-"Raiteita ei voi yhdistää.\n"
-"\n"
-"Kokeile sovittaa raiteet paremmin keskenään\n"
-" tai kasvata liitosetäisyyttä ohjelman ominaisuuksista."
+"Valmiiden vaihdemäärittelyjen lisäksi voit luoda \"käsin asetellun vaihteen"
+"\".\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:319
+msgid "This is two step process:\n"
+msgstr "Tämä on kaksiosainen prosessi:\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:320
+msgid "1 - click on the frog and drag away to set the frog angle\n"
+msgstr "1 - klikkaa risteyskappaleen kohdalle ja raahaa asettaaksesi kulman.\n"
-#: ../../../../build/xtrkcad/app/help/messages.h:117
+#: ../../../../build/work/app/i18n/custmsg.h:321
msgid ""
-"The tracks cannot be connected together.\n"
-"\n"
-"Try changing some tracks for a closer fit\n"
-"or increase the Connection Distance and\n"
-"Angle values on the Preferences dialog"
+" Hint: the further you drag from the frog, the more accurate the angle.\n"
msgstr ""
-"Raiteita ei voi yhdistää.\n"
-"\n"
-"Kokeile sovittaa raiteet paremmin keskenään\n"
-" tai kasvata liitoskulmaa ja liitosetäisyyttä ohjelman ominaisuuksista."
+" Vinkki: Mitä kauemmas raahaat, sitä tarkemmin saat kulman asetelluksi.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:322
+msgid "2 - click and drag to set the position of the points\n"
+msgstr "2 - Klikkaa ja raahaa asetellaksesi kielten päät.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:323
+msgid "We can create Hand Laid Turnouts on curved tracks.\n"
+msgstr "Voimme luoda käsin asetellun vaihteen myös kaarteeseen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:324
+msgid "A Hand Laid Turnout is composed of several parts.\n"
+msgstr "Käsin asetellut vaihteet koostuvat useasta osasta.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:187
+#: ../../../../build/work/app/i18n/custmsg.h:325
+msgid "The actual Turnout is a short portion at the points.\n"
+msgstr "Varsinainen vaihde on lyhyt osa kielten päiden luona.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:326
+msgid "The other parts are various straight and curved segments.\n"
+msgstr "Muut osat ovat suoria ja kaarevia raideosia.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:327
+msgid "The new curved turnout is also composed of several segments.\n"
+msgstr "Myös kaarrevaihde koostuu useasta osasta.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:328
+msgid "Welcome to the XTrackCAD demonstration.\n"
+msgstr "Tervetuloa XTrackCADin havaintoesitykseen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:329
msgid ""
-"The two Elevations you see here are Computed Elevations which means "
-"XTrackCAD dynamically computes the Elevation based on the Elevations of "
-"connecting tracks.\n"
+"This will show some the features of XTrackCAD in an automated presentation. "
+"This window contains a number of controls and a message area (which I hope "
+"you are reading now). \n"
msgstr ""
-"Tässä näkyvät kaksi korkeustason merkintää ovat laskettuja, mikä tarkoittaa "
-"sitä että XTrackCAD laskee tämän pisteen korkeuden automaattisesti muiden "
-"tähän liittyvien korkeustasojen mukaan.\n"
+"Havaintoesitykset näyttävät joitakin XTrackCADin ominaisuuksia "
+"automaattisina esityksinä. Tämä ikkuna sisältää joitakin kontrolleja sekä "
+"viestialueen, jota juuri nyt luet.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:461
-msgid "The two End-Points are now aligned and connected.\n"
-msgstr "Päätepisteet ovat nyt kohdistettu ja liitetty.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:330
+msgid "The controls are:\n"
+msgstr "Kontrollit ovat:\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:429
+#: ../../../../build/work/app/i18n/custmsg.h:331
+msgid "Step - advances to the next step of the demo.\n"
+msgstr "Seuraava vaihe - Siirtyy seuraavaan vaiheeseen demossa.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:332
+msgid "Next - skips ahead to the next demo.\n"
+msgstr "Seuraava - Siirry seuraavaan demoon.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:333
+msgid "Quit - exits the demo and returns to XTrackCAD.\n"
+msgstr "Lopeta - Pysäyttää demon ja palaa XTrackCADin normaaliin tilaan.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:334
+msgid "Speed - controls the speed of the demo.\n"
+msgstr "Nopeus - Säätelee demojen suoritusnopeutta.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:335
+msgid "Click Step now for the next message.\n"
+msgstr ""
+"Klikkaa nyt Seuraava vaihe -painiketta katsoaksesi seuraavan viestin.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:336
msgid ""
-"The unconnected End-Point of any track can be extended with the <Modify> "
-"command using Right-Drag.\n"
+"If this is the first time you have used the demo you may want to rearrange "
+"the windows so the demo window does not obscure the main window.\n"
msgstr ""
-"Minkä tahansa raiteen irrallista päätä voi pidentää Muokkaa-komennolla "
-"raahaamalla hiiren oikealla painikkeella.\n"
+"Jos tämä on ensimmäinen kerta, kun käytät näitä havaintoesityksiä, saatat "
+"haluta järjestellä ikkunat siten, ettei demo-ikkuna peitä pääikkunaa "
+"oleellisesti.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:196
+#: ../../../../build/work/app/i18n/custmsg.h:337
msgid ""
-"The unconnected End-Points of a straight or curved track can be changed with "
-"the 'Modify Track' command.\n"
+"You can move the demo window now by dragging on the title bar at the top of "
+"the window. I suggest you move it to the top of your screen.\n"
msgstr ""
-"Suorien ja kaarevien raiteiden irtonaisia päätepisteitä voidaan muuttaa "
-"Muokkaa-komennolla.\n"
+"Voit siirrellä demo-ikkunaa raahaamalla otsikkopalkista. Ehdotan, että "
+"siirrät demo-ikkunan näyttösi yläosaan.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:277
+#: ../../../../build/work/app/i18n/custmsg.h:338
msgid ""
"The various controls are disabled when it would be inappropiate to click on "
"them. When the demo is running the Step button is disabled. When the demo "
@@ -9478,244 +10166,316 @@ msgstr ""
"painike on käytettävissä, jolloin voit siirtyä sen avulla demossa seuraavaan "
"vaiheeseen.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:648
-msgid ""
-"Then Ungroup command will break turnouts and structures into individual "
-"track, line and shape segments. \n"
-"You can modify each segment and add new ones. \n"
-"Then use the Group command to update the definition."
+#: ../../../../build/work/app/i18n/custmsg.h:339
+msgid "You can click on Quit to return to XTrackCAD at any time.\n"
msgstr ""
+"Voit painaa Lopeta -painiketta milloin tahansa palataksesi XTrackCADin "
+"perustilaan.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:523
-msgid "Then the other End-Point is dragged to its final postion.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:340
+msgid "You can adjust the speed of the demonstration with the Speed control.\n"
msgstr ""
-"Toinen päätepiste valitaan pitämällä hiiren vasen painike alhaalla ja "
-"valitsemalla oikea paikka.\n"
+"Voit säätää demojen suoritusnopeutta Nopeus -valintaluettelon avulla.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:313
-msgid "Then the turntable is dragged to its final location.\n"
-msgstr "Sitten kääntöpöytä raahataan paikoilleen.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:341
+msgid "The demos are designed to fit within a certain sized window.\n"
+msgstr ""
+"Demot on suunniteltu niin, että ne mahtuvat tietyn kokoiseen ikkunaan.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:452
+#: ../../../../build/work/app/i18n/custmsg.h:342
msgid ""
-"Then with the <Connect> command, Shift-Left-Click on the 2 End-Points.\n"
+"For best results, change the size of the main XTrackCAD window so the box "
+"shape is completely visible.\n"
msgstr ""
-"Sitten liitä-komennolla, vaihto + hiiren vasen klikkaus molempiin "
-"päätepisteisiin.\n"
+"Parhaan tuloksen saavuttamiseksi, muuta XTrackCADin pääikkunan kokoa siten, "
+"että nelikulmio on kokonaan näkyvissä.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:340
-msgid "Then you can rotate the turnout by Right dragging.\n"
-msgstr "Voit myös pyörittää sitä raahaamalla hiiren oikealla painikkeella.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:343
+msgid "You can do this by clicking and dragging on a corner of the window.\n"
+msgstr ""
+"Voit tehdä tämän klikkaamalla ja raahaamalla hiidella ikkunan reunoista tai "
+"nurkasta.\n"
-#: ../bin/celev.c:123 ../bin/celev.c:168
-msgid "There are no reachable Defined Elevations"
-msgstr "Ei määriteltyjä korkeustasoja saatavilla"
+#: ../../../../build/work/app/i18n/custmsg.h:344
+msgid "This is the end of the introductory demo.\n"
+msgstr "Tähän päättyy johdanto.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:290
-msgid "There are several ways to create a Curved track.\n"
-msgstr "On useita tapoja luoda kaarevia raiteita.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:345
+msgid ""
+"Please click Step for the next demo or click Quit to return to XTrackCAD.\n"
+msgstr ""
+"Paina Seuraava vaihe tai Seuraava, siirtyäksesi seuraavaan demoon tai Lopeta "
+"palataksesi XTrackCADin perustilaan.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:507
-msgid "There is no End-Point on the lower track here.\n"
-msgstr "Risteyksen kohdalla ei ole raiteiden liitosta.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:346
+msgid ""
+"You can also join to and from circles. This will change the circles to "
+"curves.\n"
+msgstr ""
+"Voit myös yhdistää alkaen ympyrästä ja päättyen ympyrään. Tämä muuttaa "
+"ympyrät kaarteiksi.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:347
+msgid "In this example we will join two circles.\n"
+msgstr "Tässä esimerkissä yhdistetään kaksi ympyrää.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:237
+#: ../../../../build/work/app/i18n/custmsg.h:348
msgid ""
-"These examples shows some of the various Turnout Designer windows. Each "
-"window defines a different type of turnout.\n"
+"Here we've selected points on the two circles. The direction of the "
+"connections (whether clockwise or counter clockwise) is controlled by where "
+"on the circle you select the connection points.\n"
msgstr ""
-"Tässä esimerkissä näytetään joitakin monista vaihteiden ja raideosien "
-"suunnitteluikkunoista. Kussakin ikkunassa määritellään eri tyyppinen "
-"vaihde.\n"
+"Nyt olemme valinneet pisteet molemmilta ympyräraiteilta. Liitoksen suuntaa "
+"kontrolloidaan sen mukaan mistä kohtaa ympyröitä liitoskohdat valitaan.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:349
+msgid "Now let's try a cross connection.\n"
+msgstr "Kokeillaanpa risteävää liitosta.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:301
+#: ../../../../build/work/app/i18n/custmsg.h:350
msgid ""
-"These radio buttons are a short-cut for Values of 0.0, 0.5, 1.0 and 2.0. "
-"None turns Easements off"
+"Note that the connection is from different 'ends' of the circle than in the "
+"last example.\n"
msgstr ""
-"Nämä painikkeet ovat pikavalintoja arvoille 0,0, 0,5, 1,0 ja 2,0. Mikään "
-"näistä ei poista kaarreloivennusta käytöstä."
-#: ../bin/misc.c:2181
-msgid "Thick Tracks"
-msgstr "Paksut raiteet"
+#: ../../../../build/work/app/i18n/custmsg.h:351
+msgid "This examples shows joining tracks whose End-Points are aligned.\n"
+msgstr ""
+"Tämä esimerkki näyttää kahden kohdakkain olevan päätepisteen yhdistämisen.\n"
-#: ../bin/misc.c:2179
-msgid "Thin Tracks"
-msgstr "Ohuet raiteet"
+#: ../../../../build/work/app/i18n/custmsg.h:352
+msgid ""
+"Note the 2 pairs of tracks have End-Points that are close and aligned but "
+"not connected.\n"
+msgstr ""
+"Huomaa, että molemmissa raidepareissa raiteet ovat aivan lähekkäin ja "
+"samansuuntaisesti, mutta toisistaan irrallisia.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:297
-msgid "This controls the sharpness of the easement curve"
-msgstr "Tällä säädellään kaarreloivennuksen jyrkkyyttä"
+#: ../../../../build/work/app/i18n/custmsg.h:353
+msgid "The first case joins the curve and straight track.\n"
+msgstr "Ensin yhdistetään kaarre suoraan raiteeseen.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:350
-msgid "This demo will construct a control panel for part of a bigger layout.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:354
+msgid "The second case will join the two straight tracks.\n"
+msgstr "Seuraavaksi yhdistetään kaksi suoraa raidetta.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:355
+msgid "Note that the two straight tracks were combined to form one track.\n"
msgstr ""
-"Tässä demossa luodaan ohjauspaneeli osaksi suurempaa ratasuunnitelmaa.\n"
+"Huomaa, että kaksi suoraa raidetta yhdistettiin siten, että ne muodostavat "
+"nyt yhden raideosan.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:558
+#: ../../../../build/work/app/i18n/custmsg.h:356
msgid ""
-"This effect is only used in demonstration mode. During normal operation you "
-"will not see this.\n"
+"The <Join> command can join straight and curved tracks (in either order).\n"
msgstr ""
-"Tämä tehoste on käytössä ainoastaan demo -tilassa. Normaalissa käyttötilassa "
-"näin ei ole.\n"
+"Yhdistä-komennolla voi liittää suoran ja kaarevan raiteen (kummassa tahansa "
+"järjestyksessä).\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:357
+msgid "A connecting track is drawn between the two tracks.\n"
+msgstr "Yhdistävä raide piirretään yhdistettävien raiteiden väliin.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:139
+#: ../../../../build/work/app/i18n/custmsg.h:358
msgid ""
-"This example show how to layout a yard using the <Turnout> and <Parallel> "
-"commands.\n"
+"Notice that the curved track is extended as the connection point moves past "
+"the End-Point.\n"
msgstr ""
-"Tässä esimerkissä näytetään ratapihan luominen käyttäen \"Palaraide\" ja "
-"\"Rinnakkainen raide\" komentoja.\n"
+"Huomaa kuinka kaarevaa raidetta jatketaan liitoskohdan siirtyessä "
+"päätepisteen ohi.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:324
-msgid "This example shows how to create parallel tracks.\n"
-msgstr "Tämä esimerkki näyttää miten rinnakkaisia raiteita luodaan.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:359
+msgid "Here the connection makes the curved track wrap around.\n"
+msgstr "Tässä liitos saa kaarevan raiteen kiepsahtamaan ympäri.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:260
+#: ../../../../build/work/app/i18n/custmsg.h:360
msgid ""
-"This example will show the effect of using easements while joining tracks.\n"
+"Now the cursor is about to be moved past the other (far) End-Point of the "
+"straight track. You will receive a warning and the connecting track turns "
+"Red.\n"
msgstr ""
-"Tässä esimerkissä näytetään kaarreloivennuksen vaikutus yhdistettäessä "
-"raiteita.\n"
+"Nyt osoitin siirretään suoran raiteen kauemman päätepisteen ohi. Tästä "
+"varoitetaan tilarivillä ja yhdysraide muuttuu punaiseksi.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:453
-msgid "This examples shows joining tracks whose End-Points are aligned.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:361
+msgid "The <Join> command can move one group of tracks to join with another.\n"
msgstr ""
-"Tämä esimerkki näyttää kahden kohdakkain olevan päätepisteen yhdistämisen.\n"
+"Yhdistä-komento pystyy siirtämään raiteita yhdistääkseen ne toisiin "
+"raiteisiin.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:424
-msgid "This is indicated by an outline drawn around the solid arrow.\n"
-msgstr "Tämä esitetään lisäämällä värilliseen osoittimeen ääriviivat.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:362
+msgid "First <Select> the tracks you want to move.\n"
+msgstr "Valitse ensin raiteet, jotka haluat siirtää.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:289
-msgid "This is probably not a very useful thing to do.\n"
-msgstr "Tämä ei luultavasti ole kovin hyödyllistä.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:363
+msgid "Click <Join> and Shift-Left-Click on the two End-Points.\n"
+msgstr ""
+"Klikkaa Yhdistä ja sen jälkeen vaihto-näppäintä painettuna klikkaa hiiren "
+"vasemmalla painikkeella yhdistettäviä päätepisteitä.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:364
+msgid "The selected tracks are moved into position.\n"
+msgstr "Valitut raiteet siirrettiin paikoilleen.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:556
+#: ../../../../build/work/app/i18n/custmsg.h:365
msgid ""
-"This is simulated by drawing a rectangle around the control when values are "
-"entered or changed.\n"
+"Two straight tracks are joined by selecting the two End-Points. The "
+"selected End-Points will be those closest to the cursor when the track is "
+"selected.\n"
msgstr ""
-"Tämä esitetään piirtämällä nelikulmio sen kontrollin ympärille, jonka arvoja "
-"ollaan syöttämässä tai muuttamassa.\n"
+"Kaksi suoraa raidetta yhdistetään valitsemalla kaksi päätepistettä. Valittu "
+"päätepiste on se, joka on lähempänä hiiren osoitinta raidetta valittaessa.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:357
+#: ../../../../build/work/app/i18n/custmsg.h:366
msgid ""
-"This is the body of the Note. To change this select Modify from the File "
-"Menu"
+"A connecting track is drawn between the two tracks. Notice how it moves as "
+"the cursor is dragged along the second track.\n"
msgstr ""
-"Tämä on muistiinpanon runko. Muuttaaksesi tätä, valitse Tiedosto-valikosta "
-"Muokkaa"
+"Yhdistävä raide piirretään yhdistettävien raiteiden väliin. Huomaa kuinka se "
+"siirtyy raahattaessa osoitinta toista raidetta pitkin.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:127
-msgid "This is the end of the XTrackCAD Demos.\n"
-msgstr "Tähän päättyivät XTrackCADin demot.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:367
+msgid ""
+"Note that two tracks are extended if you move past the end of the track.\n"
+msgstr ""
+"Huomaa, että raiteita pidennetään automaattisesti siirryttäessä raiteen pään "
+"ohi.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:283
-msgid "This is the end of the introductory demo.\n"
-msgstr "Tähän päättyy johdanto.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:368
+msgid ""
+"Notice what happens if you drag past the intersection points of the two "
+"tracks.\n"
+msgstr "Katso mitä tapahtuu, jos raahaat raiteiden leikkauspisteen ohi.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:312
-msgid "This is the list of parts for the layout"
-msgstr "Tämä on ratasuunnitelman osaluettelo"
+#: ../../../../build/work/app/i18n/custmsg.h:369
+msgid "This is probably not a very useful thing to do.\n"
+msgstr "Tämä ei luultavasti ole kovin hyödyllistä.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:170
-msgid "This is the portion of the layout shown in the Main Window canvas"
-msgstr "Tämä osa suunnitelmasta näytetään pääikkunan piirtoalueella"
+#: ../../../../build/work/app/i18n/custmsg.h:370
+msgid "You can connect from any track to a turntable\n"
+msgstr "Voit yhdistää mistä tahansa raiteesta kääntöpöytään.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:240
-msgid "This is the regular turnout.\n"
-msgstr "Tämä on tavallinen vaihde.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:371
+msgid "Note: you cannot have a turntable as your first connection point.\n"
+msgstr ""
+"Huom: Kääntöpöytä ei voi olla ensimmäinen liitoskohta, eli aina yhdistetään "
+"muusta raiteesta kääntöpöytää kohti.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:315
-msgid "This is two step process:\n"
-msgstr "Tämä on kaksiosainen prosessi:\n"
+#: ../../../../build/work/app/i18n/custmsg.h:372
+msgid ""
+"You cannot place the connecting track too close to an existing stall track. "
+"How close you can get is controlled by the Turntable Angle on the Setup "
+"dialog.\n"
+msgstr ""
+"Liitosraidetta ei voi yhdistää liian lähelle kääntöpöytään ennestään "
+"liittyvää raidetta. Tämä etäisyys, eli kääntöpöydän kulma, määritellään "
+"komentojen asetuksissa.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:238
-msgid "This is where comments about the demo are displayed"
-msgstr "Tässä näytetään demojen kommentit"
+#: ../../../../build/work/app/i18n/custmsg.h:373
+msgid "In this example it is set to 7.5 degrees.\n"
+msgstr "Tässä esimerkissä se on asetettu 7,5 asteeksi.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:374
+msgid "You can drag the connecting point all round the turntable.\n"
+msgstr "Voit raahata liitoskohtaa ympäti kääntöpöytää.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:207
+#: ../../../../build/work/app/i18n/custmsg.h:375
msgid ""
-"This lets you change a Straight track into a Curved track (and vice versa) "
-"as well as changing the radius of a Curved track.\n"
+"As you drag away from the turntable a straight track will be drawn to the "
+"cursor postion and a curve will be drawn from the cursor to the connecting "
+"track.\n"
msgstr ""
-"Näin voit muuttaa suoran raiteen kaarteeksi ja päin vastoin, sekä muuttaa "
-"kaarteen sädettä.\n"
+"Raahatessasi kääntöpöydästä pois päin, suora raide piirretään osoittimeen "
+"asti ja siitä jatketaan kaarteella liitettävään raiteeseen.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:268
+#: ../../../../build/work/app/i18n/custmsg.h:376
msgid ""
-"This will show some the features of XTrackCAD in an automated presentation. "
-"This window contains a number of controls and a message area (which I hope "
-"you are reading now). \n"
+"Now the cursor will be moved within the turntable. Notice the error "
+"message.\n"
msgstr ""
-"Havaintoesitykset näyttävät joitakin XTrackCADin ominaisuuksia "
-"automaattisina esityksinä. Tämä ikkuna sisältää joitakin kontrolleja sekä "
-"viestialueen, jota juuri nyt luet.\n"
-
-#: ../bin/cpull.c:547
-msgid "Tighten Tracks"
-msgstr "Yhdistä raiteet"
-
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:166
-msgid "Tile, Filename and Window Manager buttons"
-msgstr "Otsikko, tiedostonimi ja ikkunanhallintapainikkeet"
+"Nyt osoitin viedään kääntöpöydän sisälle. Huomaa virheilmoitus tilarivillä.\n"
-#: ../bin/cdraw.c:500 ../bin/cdraw.c:926
-msgid "Tiny"
-msgstr "Pikkuruinen"
+#: ../../../../build/work/app/i18n/custmsg.h:377
+msgid "All done.\n"
+msgstr "Valmis.\n"
-#: ../bin/smalldlg.c:89
-msgid "Tip of the Day"
-msgstr "Päivän vinkki"
+#: ../../../../build/work/app/i18n/custmsg.h:378
+msgid ""
+"The Draw Commands are used to draw straight and curved lines on the layout.\n"
+msgstr ""
+"Piirtokomennoilla voidaan piirtää suoria ja kaarevia viivoja "
+"ratasuunnitelmaan.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:115
-msgid "Tip of the Day window"
-msgstr "Näytä päivän vinkki"
+#: ../../../../build/work/app/i18n/custmsg.h:379
+msgid ""
+"Lines are drawn by clicking at the starting postion and dragging to the "
+"final position.\n"
+msgstr ""
+"Viivat piirretään klikkaamalla alkupistettä ja raahaamalla loppupisteeseen.\n"
-#: ../bin/misc.c:2325
-msgid "Tip of the Day..."
-msgstr "Päivän vinkki ..."
+#: ../../../../build/work/app/i18n/custmsg.h:380
+msgid ""
+"Drawing lines with the Shift key held down will use the previous line End-"
+"Point as the starting position. This makes it easy to draw connected "
+"lines.\n"
+msgstr ""
+"Jos vaihto-näppäin pidetään painettuna, seuraavan viivan piirto aloitetaan "
+"edellisen viivan loppupäästä. Näin voidaan helposti piirtää yhdistettyjä "
+"viivoja.\n"
-#: ../bin/doption.c:104
-msgid "Title"
-msgstr "Otsikko"
+#: ../../../../build/work/app/i18n/custmsg.h:381
+msgid "You also draw in various colors and line widths.\n"
+msgstr "Voit myös piirtää eri väreillä ja muuttaa viivan paksuutta.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:532
+#: ../../../../build/work/app/i18n/custmsg.h:382
msgid ""
-"To 'un-hide' a track just Select it again and click the Tunnel button.\n"
+"Like Curved Tracks, Curved Lines can be drawn by a variety of methods.\n"
msgstr ""
-"Palauttaaksesi tunneliksi merkityt raideosat normaaleiksi, valitse ne ja "
-"paina uudelleen tunneli-napista.\n"
+"Aivan kuten kaarevat raideosat, myös kaarevat viivat voidaan piirtää eri "
+"tavoin.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:122
+#: ../../../../build/work/app/i18n/custmsg.h:383
msgid ""
-"To Remove the definitions, use the Custom Management dialog on the Tools "
-"menu.\n"
+"Here we will draw a Curve by dragging from one End-Point to the other to "
+"define the chord of the Curve. Then we will drag from the center to shape "
+"the curve.\n"
msgstr ""
-"Poistaaksesi määrittelyt, käytä \"Omat raideosat ja kalusto\" ikkunaa "
-"Hallinta valikosta.\n"
+"Tässä piirrämme kaaren raahaamalla ensin jänteen päätepisteiden välille ja "
+"raahaamme sitten jänteen keskeltä muodostaaksemme halutun kaaren.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:614
-msgid ""
-"To copy a group of objects: Select the objects, press Control-C (or select "
-"Copy from the Edit menu), press Control-V (or select Paste from the Edit "
-"menu).\n"
-"The selected tracks will be copied to the layout and you can Move or Rotate "
-"them into position."
+#: ../../../../build/work/app/i18n/custmsg.h:384
+msgid "Boxes are useful for drawing rectangular shapes.\n"
msgstr ""
+"Nelikulmio koostuu neljästä yksittäisestä viivasta, mutta sen voi piirtää "
+"yhdellä komennolla.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:357
+#: ../../../../build/work/app/i18n/custmsg.h:385
msgid ""
-"To create a Œ\" line, divide the dots-per-inch (DPI) of your display by 4 "
-"and then by the drawing scale (which is 2 right now).\n"
+"Circles can be drawn by clicking on the center or edge and dragging to set "
+"the radius.\n"
msgstr ""
-"Luodaksesi 1/4 tuuman viivan, jaa näyttösi DPI (pisteitä tuumalla, dots per "
-"inch) neljällä ja sitten piirron mittakaavalla (joka tässä on 2).\n"
+"Ympyrät voidaan piirtää esimerkiksi klikkaamalla haluttua keskipistettä ja "
+"asettamalla ympyrän säde raahaamalla.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:386
+msgid "Here we will drag from the Center.\n"
+msgstr "Raahaamme keskipisteestä poispäin.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:387
+msgid "Lines and Shapes can be deleted by Selecting and Deleting.\n"
+msgstr ""
+"Viivat ja muodot poistetaan valitsemalla ne ensin ja sitten poistamalla ne.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:388
+msgid "We also draw Polylines and filled shapes.\n"
+msgstr "Voimme myös luoda monikulmioita ja täytettyjä monikulmioita.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:155
+#: ../../../../build/work/app/i18n/custmsg.h:389
+msgid ""
+"A Polyline is drawn by dragging to place each of the point in the Polyline.\n"
+msgstr "Monikulmio piirretään raahaamalla kukin kulma paikoilleen.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:390
msgid ""
"To finish off the Polyline press the <Space> key or choose another drawing "
"type.\n"
@@ -9723,966 +10483,1207 @@ msgstr ""
"Viimeistelläksesi monikulmion, paina välilyöntiä tai valitse toinen "
"piirtotyyppi.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:601
+#: ../../../../build/work/app/i18n/custmsg.h:391
+msgid "A Polygon is drawn in the same way\n"
+msgstr "Täytetty monikulmio piirretään samalla tavalla.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:392
msgid ""
-"To refresh the Main window, press Control-L (hold down the 'Ctrl' key and "
-"then press the 'l' key)."
+"You can use the Above and Below Commands to move lines and shapes to the "
+"front or back of the drawing.\n"
msgstr ""
+"Voit vaihtaa viivojen ja muotojen järjestystä viemällä niitä alimmaiseksi "
+"tai päällimmäiseksi.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:162
-msgid ""
-"To show the Profile you need to select a Path on the tracks of your layout.\n"
-msgstr "Näyttääksesi rataprofiilin täytyy valita reitti suunnitelmastasi.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:393
+msgid "Filled Boxes and Circles work the same as line Boxes and Circles.\n"
+msgstr ""
+"Täytetyt nelikulmiot ja täytetyt ympyrät toimivat samoin kuin tyhjät "
+"nelikulmiot ja ympyrät.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:159
+#: ../../../../build/work/app/i18n/custmsg.h:394
msgid ""
-"To use the <Profile> command you first need to define Elevations on your "
-"layout.\n"
+"In the drawing area of the main window you can see an hollow arrow which "
+"represents the mouse cursor. In this demo the mouse will move about to show "
+"you the actions of different commands.\n"
msgstr ""
-"Käyttääksesi profiili-komentoa täytyy ratasuunnitelmassa olla määriteltyjä "
-"korkeustasoja.\n"
-
-#: ../bin/cselect.c:570
-msgid "To: "
-msgstr "Uusi:"
-
-#: ../bin/cselect.c:1381
-msgid "Toggle Label"
-msgstr "Näytä/piilota merkintä"
+"Pääikkunan piirtoalueella näet läpinäkyvän nuolen, joka kuvaa hiiren "
+"osoitinta. Tässä demossa esitellään erilaiset hiiren toiminnot.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:412
-msgid "Toggle the loaded status of the selected parameter file"
-msgstr "Lataa tai poista valittu parametritiedosto"
+#: ../../../../build/work/app/i18n/custmsg.h:395
+msgid ""
+"The hollow arrow represents the mouse cursor without a mouse button being "
+"pressed.\n"
+msgstr ""
+"Läpinäkyvä nuoli kuvaa hiiren osoitinta silloin kun hiiren painikkeita ei "
+"ole painettu.\n"
-#: ../bin/param.c:127
-msgid "Tomato"
-msgstr "Tomaatti"
+#: ../../../../build/work/app/i18n/custmsg.h:396
+msgid ""
+"When the left mouse button would be pressed, the mouse cursor appears to "
+"flash and the hollow arrow is replaced by a solid red arrow. While the left "
+"button is pressed the mouse cursor will be a solid arrow.\n"
+msgstr ""
+"Osoittimen välähdys ja sen muuttuminen punaiseksi kuvaa hiiren vasemman "
+"painikkeen painamista. Koko sen ajan, kun hiiren painike on painettuna alas, "
+"osoitin esitetään punaisella nuolella.\n"
-#: ../../../../build/xtrkcad/app/help/messages.h:121
-msgid "Too many selected tracks, drawing tracks as End Point."
+#: ../../../../build/work/app/i18n/custmsg.h:397
+msgid ""
+"Note: these color changes occur only during the demo to simulate mouse "
+"button presses.\n"
msgstr ""
-"Liian monta valittua raidetta. Piirretään raiteet pelkkinä päätepisteinä."
+"Huom: Hiiren osoittimen väri muuttuu vain demo-tilassa kuvaten hiiren "
+"painikkeiden käyttöä.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:147
-msgid "Toolbar configuration"
-msgstr "Työkalurivin asetukset"
+#: ../../../../build/work/app/i18n/custmsg.h:398
+msgid ""
+"Moving the mouse while a mouse button is pressed is called 'dragging'.\n"
+msgstr ""
+"Hiiren liikuttelua silloin kun hiiren painike on painettuna, kutsutaan "
+"\"raahaamiseksi\".\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:145
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:148
-msgid "Tools menu"
-msgstr "Työkalut -valikko"
+#: ../../../../build/work/app/i18n/custmsg.h:399
+msgid ""
+"When the left mouse button is released, the mouse cursor flashes and the "
+"hollow arrow is restored.\n"
+msgstr ""
+"Kun hiiren vasen painike vapautetaan, osoitin välähtää ja se palautetaan "
+"läpinäkyväksi.\n"
-#: ../bin/csplit.c:111
-msgid "Top"
-msgstr "Päällimmäiseksi"
+#: ../../../../build/work/app/i18n/custmsg.h:400
+msgid "Dragging with the right button is simulated by a blue solid cursor.\n"
+msgstr ""
+"Hiiren oikealla painikkeella raahaamista kuvataan sinisellä nuolella.\n"
-#: ../bin/ccurve.c:395
-msgid "Total Length"
-msgstr "Kokonaispituus"
+#: ../../../../build/work/app/i18n/custmsg.h:401
+msgid ""
+"Sometimes the Shift key is held down while using the mouse for a Shift-Click "
+"or a Shift-Drag. \n"
+msgstr ""
+"Joskus vaihto -näppäintä (shift) on painettava samalla kun hiirellä "
+"klikataan tai raahataan.\n"
-#: ../bin/ccurve.c:471
-#, c-format
-msgid "Total Length %s"
-msgstr "Kokonaispituus %s"
+#: ../../../../build/work/app/i18n/custmsg.h:402
+msgid "This is indicated by an outline drawn around the solid arrow.\n"
+msgstr "Tämä esitetään lisäämällä värilliseen osoittimeen ääriviivat.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:156
-msgid "Total track count"
-msgstr "Raideosien kokonaismäärä"
+#: ../../../../build/work/app/i18n/custmsg.h:403
+msgid ""
+"The main drawing area shows a portion of total layout. You can zoom in or "
+"zoom out by choosing 'Zoom In' or 'Zoom Out' in the 'Edit' menu, by using "
+"the Zoom buttons on the toolbar or by using the 'Page Down' and 'Page Up' "
+"keys.\n"
+msgstr ""
+"Piirtoalueella näytetään osa ratasuunnitelmasta. Voit lähentää tai loitontaa "
+"näkymää valitsemalla Muokkaa -valikosta \"Lähennä\" tai \"Loitonna\", "
+"käyttämällä vastaavia painikkeita työkaluriviltä, näppäimistön PgUp ja PgDn -"
+"näppäimillä tai rullahiiren rullasta pyörittämällä.\n"
-#: ../bin/fileio.c:926
-msgid "Track"
-msgstr "Raide"
+#: ../../../../build/work/app/i18n/custmsg.h:404
+msgid "You can see the entire layout in the Map window.\n"
+msgstr "Kartta -ikkunassa esitetään koko ratasuunnitelma.\n"
-#: ../bin/cjoin.c:346
-#, c-format
-msgid "Track (%d) is too short for transition-curve by %0.3f"
-msgstr "Raide (%d) on %0.3f liian lyhyt kaarreloivennusta varten"
+#: ../../../../build/work/app/i18n/custmsg.h:405
+msgid "As you Zoom Out tracks are drawn with one line instead of two.\n"
+msgstr ""
+"Loitonnettaessa riittävästi, raiteet piirretään ainoastaan yhdellä viivalla "
+"normaalin kahden sijaan.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:582
+#: ../../../../build/work/app/i18n/custmsg.h:406
msgid ""
-"Track Circles provide a quick way to see what arrangement of tracks will fit "
-"in your layout spaces. Create Circles with your typical radius and place "
-"them in corners and other locations where your main-line will make changes "
-"of direction. This will give you an overall idea of how your layout will "
-"look.\n"
-"\n"
-"You can create Circles by:\n"
-" using a fixed radius\n"
-" dragging from the Center to edge\n"
-" dragging from an edge to the Center\n"
-"You can click on the small button to the left of the Circle command button "
-"to change the method."
+"You can change what portion of the layout is shown by using the 'Map' window "
+"which shows a compressed version of the entire layout. A hilighted area of "
+"the 'Map' (in reverse video) shows what portion of the layout is displayed "
+"in the main drawing area.\n"
msgstr ""
-"Ympyräraiteet tarjoavat nopean tavan hahmottaa millainen raidejärjestely "
-"mahtuu suunniteltuun tilaan. Luo ympyräraiteita käyttäen aikomaasi "
-"kaarresädettä ja asettele niitä nurkkiin ja muihin paikkoihin, joissa "
-"pääraiteesi vaihtaa suuntaa. Tämä antaa yleiskuvan tulevan ratasi muodosta.\n"
-"\n"
-"Voit luoda ympyräraiteita:\n"
-" - Käyttämällä määrättyä sädettä.\n"
-" - Raahaamalla keskipisteestä pois päin.\n"
-" - Raahaamalla kehältä kohti keskipistettä.\n"
-"Voit valita tavan valikosta, joka avautuu Ympyrärata-painikkeen oikealta "
-"puolelta."
-
-#: ../bin/doption.c:190
-msgid "Track Descriptions"
-msgstr "Raideosien kuvaukset"
-
-#: ../bin/doption.c:190
-msgid "Track Elevations"
-msgstr "Raideosien korkeudet"
+"Kartta -ikkunan avulla voit valita mikä osa ratasuunnitelmaa näytetään. "
+"Kartta -ikkunassa esitetään piennennetty kuva koko ratasuunnitelmasta. "
+"Korostettu alue esittää pääikkunan piirtoalueella näytettävän alueen.\n"
-#: ../bin/misc.c:1696 ../bin/misc.c:1725
-msgid "Track Group Buttons"
-msgstr "Raiteiden ryhmittely"
+#: ../../../../build/work/app/i18n/custmsg.h:407
+msgid ""
+"You can Left-Drag the hilighted area in the Map window to change the "
+"displayed portion of the layout.\n"
+msgstr ""
+"Raahaamalla hiiren vasemmalla painikkeella korostettua aluetta muuttaaksesi "
+"ratasuunnitelman näytettävän alueen.\n"
-#: ../bin/doption.c:538
-msgid "Track Ties"
-msgstr "Ratapölkyt"
+#: ../../../../build/work/app/i18n/custmsg.h:408
+msgid ""
+"You can also Right-Drag on the Map window to set the scale and position of "
+"the Main window.\n"
+msgstr ""
+"Hiiren oikealla painikkeella raahaaminen puolestaan muuttaa näytettävän "
+"alueen skaalausta (kokoa).\n"
-#: ../bin/doption.c:191
-msgid "Tracks"
-msgstr "Raiteet"
+#: ../../../../build/work/app/i18n/custmsg.h:409
+msgid ""
+"The <Note> command lets you attach notes to various spots on the layout.\n"
+msgstr "Voit liittää ratasuunnitelmaasi muistiinpanoja.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:646
+#: ../../../../build/work/app/i18n/custmsg.h:410
msgid ""
-"Tracks that are too steep or curve too tightly are drawn in the Expection "
-"color (Purple by default). \n"
-"This helps to identify potential problem areas. \n"
-"The maximum grade and minimum radius are set on the Preferences dialog."
+"When you place a note, the Note editor window is displayed which lets you "
+"enter the note.\n"
msgstr ""
+"Kun lisäät ratasuunnitelmaan muistiinpanon, avataan editori jossa voit "
+"kirjoittaa muistiinpanon sisällön.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:378
-msgid "Tracks with grades steeper than this are exceptional"
-msgstr "Raiteet, joissa on jyrkempi nousukulma, käsitetään erityiraiteiksi"
-
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:377
-msgid "Tracks with tighter radius than this are exceptional"
-msgstr "Raiteet, joissa on pienempi kaarresäde, käsitetään erityiraiteiksi"
+#: ../../../../build/work/app/i18n/custmsg.h:411
+msgid ""
+"If you click on a note in <Describe> mode the Note editor displays the "
+"note.\n"
+msgstr ""
+"Jos määrittele-komento on aktiivinen ja klikkaat muistiinpanoa, sen sisältö "
+"näytetään editorissa. Näin voit myös muokata aiemmin kirjoittamaasi "
+"muistiinpanoa.\n"
-#: ../bin/ctrain.c:2038 ../bin/ctrain.c:2520
-msgid "Train"
-msgstr "Aja junilla"
+#: ../../../../build/work/app/i18n/custmsg.h:412
+msgid "This is the end of the XTrackCAD Demos.\n"
+msgstr "Tähän päättyivät XTrackCADin demot.\n"
-#: ../bin/ctrain.c:1063
-msgid "Train Control"
-msgstr "Junien hallinta"
+#: ../../../../build/work/app/i18n/custmsg.h:413
+msgid "Click Step to return to XTrackCAD.\n"
+msgstr ""
+"Paina seuraava vaihe, seuraava tai lopeta painiketta palataksesi XTrackCADin "
+"normaaliin tilaan.\n"
-#: ../bin/ctrain.c:1061
-#, c-format
-msgid "Train Control %d"
-msgstr "Junien hallinta %d"
+#: ../../../../build/work/app/i18n/custmsg.h:414
+msgid "Thanks for watching.\n"
+msgstr "Kiitos kun katsoit.\n"
-#: ../bin/ctrain.c:1060
-msgid "Train Control XXX"
-msgstr "Junien hallinta XXX"
+#: ../../../../build/work/app/i18n/custmsg.h:415
+msgid "This example shows how to create parallel tracks.\n"
+msgstr "Tämä esimerkki näyttää miten rinnakkaisia raiteita luodaan.\n"
-#: ../bin/misc.c:1697 ../bin/misc.c:1726
-msgid "Train Group Buttons"
-msgstr "Junat"
+#: ../../../../build/work/app/i18n/custmsg.h:416
+msgid ""
+"The separation is set in the <Parallel Separation> window. You should set "
+"this value before you begin to select tracks.\n"
+msgstr ""
+"Raiteiden välinen etäisyys asetetaan työkalurivillä olevan tekstikentän "
+"avulla. Tämä arvo on asetettava ennen kuin raiteita valitaan.\n"
-#: ../bin/doption.c:373
-msgid "Train Update Delay"
-msgstr "Junien päivitysväli"
+#: ../../../../build/work/app/i18n/custmsg.h:417
+msgid ""
+"You control which side the parallel track will be on by moving the cursor "
+"from one side of the track centerline to the other.\n"
+msgstr ""
+"Voit kontrolloida kummalle puolelle rinnakkainen raide luodaan siirtämällä "
+"hiiren osoitinta alkuperäisen raiteen puolelta toiselle.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:469
-msgid "Train odometer"
-msgstr "Junan matkamittari"
+#: ../../../../build/work/app/i18n/custmsg.h:418
+msgid "When you release the mouse button the new parallel track is created.\n"
+msgstr "Uusi rinnakkainen raide luodaan kun vapautat hiiren painikkeen.\n"
-#: ../bin/doption.c:217
-msgid "Trains On Hidden Track"
-msgstr "Junat piilossa olevalla radalla"
+#: ../../../../build/work/app/i18n/custmsg.h:419
+msgid ""
+"Note that the <Parallel> command remains active after you created the "
+"track. This is controlled by the Sticky dialog in the Options menu.\n"
+msgstr ""
+"Huomaa, että rinnakkainen-komento pysyy aktiivisena komentona luotuamme "
+"raiteen. Tätä käyttäytymistä voidaan muuttaa valikosta Asetukset|Pysyvät "
+"komennot.\n"
-#: ../bin/ctrain.c:712
-msgid "Trains Paused"
-msgstr "Junat pysäytetty"
+#: ../../../../build/work/app/i18n/custmsg.h:420
+msgid "You cannot create a track parallel to a turnout.\n"
+msgstr "Vaihteesta ei voi luoda rinnakkaista raidetta.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:635
+#: ../../../../build/work/app/i18n/custmsg.h:421
msgid ""
-"Trains will 'crash' if they hit another car when travelling faster than the "
-"'Max Coupling Speed' (on the Command Options dialog). \n"
-"They will also 'crash' if they hit the end of the track or an open "
-"turnout. \n"
-"Crashed trains must be manually moved back onto the track."
+"Note that the new curved track is automatically connected to the short "
+"parallel track.\n"
msgstr ""
+"Huomaa, että uusi kaarre liitettiin automaattisesti lyhyeen rinnakkaiseen "
+"raiteeseen.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:224
-msgid "Trains will crash above this speed"
+#: ../../../../build/work/app/i18n/custmsg.h:422
+msgid ""
+"Polylines and Polygons (created with the <Draw> command) can be modified by "
+"dragging on their Corners or Edges.\n"
msgstr ""
-"Suurin sallittu vaunujen kytkentänopeus. Suuremmalla nopeudella aiheutuu "
-"törmäys."
+"Monikulmioita voidaan muokata raahaamalla niiden kulmista tai reunoista.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:36
-msgid "Triming Turnout Ends"
-msgstr "Vaihteen päiden säätö"
+#: ../../../../build/work/app/i18n/custmsg.h:423
+msgid "If you select the middle of an Edge a new Corner is created.\n"
+msgstr ""
+"Jos valitset raahauskohdan kulmien väliltä, siihen luodaan uusi kulma.\n"
-#: ../bin/dcar.c:45
-msgid "Truck"
-msgstr "Teli"
+#: ../../../../build/work/app/i18n/custmsg.h:424
+msgid ""
+"If you drag a Corner to another Corner the two are merged and the Edge "
+"between them is removed.\n"
+msgstr ""
+"Jos raahaat kulman toisen kulman päälle, ne yhdistetään yhdeksi "
+"kulmapisteeksi.\n"
-#: ../bin/dcar.c:1974
-msgid "Truck Centers"
-msgstr "Telien keskikohdat"
+#: ../../../../build/work/app/i18n/custmsg.h:425
+msgid "But you cannot have a Poly-shape with less than 3 sides.\n"
+msgstr "Monikulmiossa on kuitenkin aina oltava vähintään kolme kulmaa/sivua.\n"
-#: ../bin/dcar.c:3592
-msgid "Truck Centers must be less than Car Length"
+#: ../../../../build/work/app/i18n/custmsg.h:426
+msgid ""
+"To use the <Profile> command you first need to define Elevations on your "
+"layout.\n"
msgstr ""
-"Telien keskikohtien välisen etäisyyden on oltava vaunun pituutta pienempi"
+"Käyttääksesi profiili-komentoa täytyy ratasuunnitelmassa olla määriteltyjä "
+"korkeustasoja.\n"
-#: ../bin/misc.c:2174
-msgid "Tu&nnel"
-msgstr "Tunneli"
+#: ../../../../build/work/app/i18n/custmsg.h:427
+msgid "In this example we'll use the Elevations defined in the last example.\n"
+msgstr ""
+"Tässä esimerkissä käytämme edellisessä esimerkissä käytettyjä "
+"korkeustasoja.\n"
-#: ../bin/misc.c:2098 ../bin/cselect.c:1879
-msgid "Tunnel"
-msgstr "Tunneli"
+#: ../../../../build/work/app/i18n/custmsg.h:428
+msgid "You can move or resize the Profile dialog now if you want.\n"
+msgstr "Voit siirtää Profiili-ikkunaa tai muuttaa sen kokoa jos haluat.\n"
-#: ../bin/misc.c:2340
-msgid "Tur&nout Designer..."
-msgstr "Vaihteiden suunnittelu..."
+#: ../../../../build/work/app/i18n/custmsg.h:429
+msgid ""
+"To show the Profile you need to select a Path on the tracks of your layout.\n"
+msgstr "Näyttääksesi rataprofiilin täytyy valita reitti suunnitelmastasi.\n"
-#: ../bin/track.c:1681 ../bin/compound.c:773 ../bin/cturnout.c:884
-#: ../bin/cturnout.c:2272 ../bin/cturnout.c:2442
-msgid "Turnout"
-msgstr "Palaraide"
+#: ../../../../build/work/app/i18n/custmsg.h:430
+msgid "Select a Defined Elevation point (marked by Gold dots).\n"
+msgstr "Valitse määriteltyjä korkeustasoja (merkitty keltaisilla täplillä).\n"
-#: ../bin/ctodesgn.c:1708
-msgid "Turnout Designer"
-msgstr "Raideosien suunnittelu"
+#: ../../../../build/work/app/i18n/custmsg.h:431
+msgid "We will start with the right end of the siding.\n"
+msgstr "Aloitamme aseman oikeasta päästä.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:167
-msgid "Turnout and Structure Hot Bar"
-msgstr "Raideosien ja rakennusten valikko"
+#: ../../../../build/work/app/i18n/custmsg.h:432
+msgid ""
+"The second Point is at the left end of the siding. The Path will be drawn "
+"in Purple on the layout.\n"
+msgstr ""
+"Toinen piste on aseman vasen pää. Reitti merkitään ratasuunnitelmaan "
+"purppuralla.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:489
-msgid "Turnout description (Manuf., Size, Part Number, etc)"
-msgstr "Raideosan kuvaus (valmistaja, koko, tuotekoodi, jne.)"
+#: ../../../../build/work/app/i18n/custmsg.h:433
+msgid "Now select the end of one of the Branches\n"
+msgstr "Valitse nyt toisen haaran pää.\n"
-#: ../bin/cturnout.c:191
-#, c-format
-msgid "Turnout path[%d:%d] out of bounds: %d"
+#: ../../../../build/work/app/i18n/custmsg.h:434
+msgid ""
+"The Profile line is drawn in Red. This indicates that there some turnouts "
+"on that section of the Path which have more than 2 connections.\n"
msgstr ""
+"Rataprofiili on piirretty punaisella viivalla. Tämä tarkoittaa sitä, että "
+"kyseisellä osuudella on vaihteita, jotka ovat yhteydessä useampaan kuin "
+"kahteen määriteltyyn korkeustasoon.\n"
-#: ../bin/cturnout.c:203 ../bin/cturnout.c:208
-#, c-format
-msgid "Turnout path[%d] %d is not a track segment"
+#: ../../../../build/work/app/i18n/custmsg.h:435
+msgid ""
+"The grade on this part of the Path is the average and may be affected by "
+"other Elevations, such the end of the lower branch.\n"
msgstr ""
+"Osuuden nousukulma on keskiarvo ja siihen voi vaikuttaa muut korkeustasot, "
+"kuten alemman haaran pään korkeustaso.\n"
-#: ../bin/cturnout.c:216
-#, c-format
-msgid "Turnout path[%d] %d-%d not connected: %0.3f"
+#: ../../../../build/work/app/i18n/custmsg.h:436
+msgid "Now try to select the End-Point of the other branch.\n"
+msgstr "Yritä nyt valita toisen haaran pää.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:437
+msgid ""
+"You will get an error message because there is no route to one of the ends "
+"of the existing Path.\n"
msgstr ""
+"Saat virheilmoituksen, koska valitun reitin päistä ei ole reittiä tähän "
+"pisteeseen.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:638
+#: ../../../../build/work/app/i18n/custmsg.h:438
msgid ""
-"Turnout, Curved and Helix track labels can be individually turned on and off "
-"by doing a Shift-Right-Click on the track when using the Move Label command."
+"In this case remove the last part of the Path by clicking on current end of "
+"the Path and reselect the End-Point.\n"
msgstr ""
+"Poista tässä tapauksessa viimeinen osuus klikkaamalla valittuna olevan "
+"haaran päätä ja valitse sitten toisen haaran pää.\n"
-#: ../bin/doption.c:188 ../bin/dcmpnd.c:402
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:31
-msgid "Turnouts"
-msgstr "Raideosat"
+#: ../../../../build/work/app/i18n/custmsg.h:439
+msgid "Notice that the Grade has changed on the Profile.\n"
+msgstr "Huomaa että nousukulma on muuttunut profiili-ikkunassa.\n"
-#: ../bin/ccurve.c:390 ../bin/tcurve.c:344
-msgid "Turns"
-msgstr "Kierroksia"
+#: ../../../../build/work/app/i18n/custmsg.h:440
+msgid ""
+"You can Ignore End-Points on the Path by using Shift-Right-Click to display "
+"the Profile Options popup menu and chosing Ignore.\n"
+msgstr ""
+"Voit hylätä reitillä olevia raiteiden liitoskohtia ponnahdusvalikosta, joka "
+"aukeaa painamalla vaihto-nnäppäintä ja klikkaamalla hiiren oikealla. Valitse "
+"\"Hylkää\".\n"
-#: ../bin/cturntbl.c:286 ../bin/cturntbl.c:824
-msgid "Turntable"
-msgstr "Kääntöpöytä"
+#: ../../../../build/work/app/i18n/custmsg.h:441
+msgid ""
+"Note: We can't show the menu in demo mode but we will show the effect of a "
+"Shift Right Click and selecting ignore. We will be Ignoring the End-Point "
+"of the Turnout that is not on the Path.\n"
+msgstr ""
+"Huom: Demossa ei voida esittää valikoita, mutta näytämme ponnahdusvalikosta "
+"suoritetun hylkää-komennon vaikutuksen. Hylkäämme vaihteesta sen "
+"päätepisteen, joka ei ole profiilin reitillä.\n"
-#: ../bin/doption.c:295
-msgid "Turntable Angle"
-msgstr "Kääntöpöydän kulma"
+#: ../../../../build/work/app/i18n/custmsg.h:442
+msgid "Notice that part of the Profile line is redrawn in Blue.\n"
+msgstr "Huomaa että osa profiilista on piirretty sinisellä viivalla.\n"
-#: ../bin/ctodesgn.c:579
-msgid "Turntable Section"
-msgstr "Kääntöpöytä"
+#: ../../../../build/work/app/i18n/custmsg.h:443
+msgid ""
+"Also, the Computed Elevations and Grade marker on the right side of the "
+"layout have been updated.\n"
+msgstr "Myös lasketut korkeustasot sekä nousukulman merkintä on päivitetty.\n"
-#: ../bin/cturntbl.c:272
-#, c-format
-msgid "Turntable(%d): Layer=%d Center=[%s %s] Diameter=%s #EP=%d"
+#: ../../../../build/work/app/i18n/custmsg.h:444
+msgid ""
+"You can set additional Defined Elevation points using the Profile Options "
+"popup menu. These points are added to the Profile if they are on the Path.\n"
msgstr ""
-"Kääntöpöytä(%d): Taso=%d Keskipiste=[%s %s] Halkaisija=%s Päätepisteitä=%d"
-
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:18
-msgid "Turntables"
-msgstr "Kääntöpöydät"
+"Ponnahtusvalikon avulla voit lisätä myös uusia määriteltyjä korkeustasoja. "
+"Nämä pisteet lisätään profiiliin, jos ne ovat profiilin reitillä.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:312
+#: ../../../../build/work/app/i18n/custmsg.h:445
msgid ""
-"Turntables are created by specifying the radius in a dialog box on the "
-"Status Bar. The radius in the dialog can be changed before proceeding.\n"
+"We do this by Shift Right Click to display the Profile Options popup menu "
+"and selecting Define.\n"
msgstr ""
-"Kääntöpöydät luodaan määrittelemällä ensiksi kääntöpöydän säde tilarivillä "
-"olevaan tekstikenttään.\n"
+"Teemme tämän avaamalla ponnahdusvalikon ja valitsemalla \"Määritelty\".\n"
-#: ../bin/doption.c:208
-msgid "Two Rail Scale"
-msgstr "Kahden kiskon mittakaava"
+#: ../../../../build/work/app/i18n/custmsg.h:446
+msgid ""
+"We've just added a Defined Elevation point to the middle of the lower "
+"branch. Notice the addition on the Profile dialog.\n"
+msgstr ""
+"Olemme juuri lisänneet määritellyn korkeustason keskelle alempaa haaraa. "
+"Huomaa lisäys profiili-ikkunassa.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:83
+#: ../../../../build/work/app/i18n/custmsg.h:447
msgid ""
-"Two ends of the turnout, from the frog to the end of the diverging leg and "
-"from the points to the left, are now straight track sections.\n"
+"For the siding we defined a Station name but it's not on the Path, since the "
+"Path takes the shortest distance between points.\n"
msgstr ""
-"Haarautuvan raiteen takajatkos sekä vaihteen etujatkos ovat nyt suoria "
-"raideosia.\n"
+"Sivuraiteelle määrittelimme aseman, mutta se ei ole reitillä, koska "
+"profiilin reitti valitaan lyhyimmän pisteiden välisen etäisyyden mukaan.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:285
+#: ../../../../build/work/app/i18n/custmsg.h:448
msgid ""
-"Two straight tracks are joined by selecting the two End-Points. The "
-"selected End-Points will be those closest to the cursor when the track is "
-"selected.\n"
+"We can Ignore one of the End-Points on a Turnout to force the Path to take "
+"the other route.\n"
msgstr ""
-"Kaksi suoraa raidetta yhdistetään valitsemalla kaksi päätepistettä. Valittu "
-"päätepiste on se, joka on lähempänä hiiren osoitinta raidetta valittaessa.\n"
+"Voimme hylätä yhden vaihteen päätepisteistä pakottaaksemme reitin kulkemaan "
+"toista kautta.\n"
-#: ../bin/dcar.c:1941 ../bin/dcar.c:4070 ../bin/dcar.c:4075
-msgid "Type"
-msgstr "Tyyppi"
+#: ../../../../build/work/app/i18n/custmsg.h:449
+msgid ""
+"Again we use Shift-Right-Click to display the Profile Options menu and "
+"select ignore.\n"
+msgstr "Käytämme jälleen ponnahdusvalikkoa ja valitsemme \"Hylkää\".\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:303
-msgid "Type of elevation"
-msgstr "Tyyppi"
+#: ../../../../build/work/app/i18n/custmsg.h:450
+msgid "Now remove the First section of the Path,\n"
+msgstr "Valitse nyt reitin ensimmäinen osuus,\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:451
+msgid "and reselect it.\n"
+msgstr "ja valitse se uudelleen.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:411
+#: ../../../../build/work/app/i18n/custmsg.h:452
msgid ""
-"Unconnected End-Points are indicated by Red crosses, and connected End-"
-"Points are indicated by Red lines.\n"
+"Now the Path goes through the Station End-Point and the name appears on the "
+"Profile dialog.\n"
msgstr ""
-"Irralliset päätepisteet merkitään punaisilla risteillä ja liitetyt "
-"punaisilla viivoilla.\n"
+"Nyt reitti kulkee määrittelemämme aseman kautta ja sen nimi näkyy profiili-"
+"ikkunassa.\n"
-#: ../bin/ctrain.c:2535
-msgid "Uncouple"
-msgstr "Irrota"
+#: ../../../../build/work/app/i18n/custmsg.h:453
+msgid "Now we need to increase the separation where the tracks cross.\n"
+msgstr "Nyt meidän on kasvatettava risteävien raiteiden välistä etäisyyttä.\n"
-#: ../bin/dcar.c:2371 ../bin/dcar.c:2688
-msgid "Undecorated"
-msgstr "Ei yhtiömerkintöjä"
+#: ../../../../build/work/app/i18n/custmsg.h:454
+msgid ""
+"The two Elevations you see here are Computed Elevations which means "
+"XTrackCAD dynamically computes the Elevation based on the Elevations of "
+"connecting tracks.\n"
+msgstr ""
+"Tässä näkyvät kaksi korkeustason merkintää ovat laskettuja, mikä tarkoittaa "
+"sitä että XTrackCAD laskee tämän pisteen korkeuden automaattisesti muiden "
+"tähän liittyvien korkeustasojen mukaan.\n"
-#: ../bin/dcar.c:2598
-msgid "Undecorated "
-msgstr "Ei yhtiömerkintöjä "
+#: ../../../../build/work/app/i18n/custmsg.h:455
+msgid ""
+"First make the lower End-Point a Defined Elevation point using Shift-Right-"
+"Click and the Profile Options menu. You will see the End-Point marked by a "
+"Gold dot and a new line is added to the Profile dialog.\n"
+msgstr ""
+"Muuta ensin alempi \"laskettu\" korkeustaso \"määritellyksi\" käyttämällä "
+"jälleen ponnahdusvalikkoa. Piste merkitään nyt keltaisella täplällä ja uusi "
+"viiva lisätään profiili-ikkunaan.\n"
-#: ../bin/celev.c:317 ../bin/celev.c:334 ../bin/celev.c:375 ../bin/celev.c:382
-#: ../bin/celev.c:385
-#, c-format
-msgid "Undefined"
-msgstr "Määrittelemätön"
+#: ../../../../build/work/app/i18n/custmsg.h:456
+msgid "Now, drag the point on the Profile Dialog to change the Elevation.\n"
+msgstr ""
+"Raahaa nyt profiili-ikkunassa tätä pistettä muuttaaksesi sen korkeustasoa.\n"
-#: ../bin/misc.c:2083
-msgid "Undo"
-msgstr "Kumoa"
+#: ../../../../build/work/app/i18n/custmsg.h:457
+msgid ""
+"Note the grade on each side of the point will be displayed at the bottom of "
+"the Profile dialog.\n"
+msgstr ""
+"Nousukulmat pisteen molemmin puolin näytetään profiili-ikkunan alaosassa.\n"
-#: ../bin/misc.c:1690 ../bin/misc.c:1721
-msgid "Undo Buttons"
-msgstr "Kumoa/Tee uudelleen"
+#: ../../../../build/work/app/i18n/custmsg.h:458
+msgid ""
+"After we release the Profile is updated to show the new Elevation and "
+"Grade.\n"
+msgstr ""
+"Kun vapautamme hiiren painikkeen, profiili on päivitetty uuden korkeustason "
+"mukaisesti.\n"
-#: ../bin/cundo.c:154
-msgid "Undo Trace"
-msgstr "Jäljitys"
+#: ../../../../build/work/app/i18n/custmsg.h:459
+msgid "The <Rescale> command will change the size of the selected objects.\n"
+msgstr "Mittakaavan muutos -komennolla muutetaan valittujen objektien kokoa.\n"
-#: ../bin/cundo.c:491 ../../../../build/xtrkcad/app/bin/bllnhlp.c:125
-msgid "Undo last command"
-msgstr "Kumoa edellinen komento"
+#: ../../../../build/work/app/i18n/custmsg.h:460
+msgid "First we will try rescaling by ratio.\n"
+msgstr "Ensin kokeilemme suhteellista muutosta.\n"
-#: ../bin/cundo.c:488
-#, c-format
-msgid "Undo: %s"
-msgstr "Kumoa: %s"
+#: ../../../../build/work/app/i18n/custmsg.h:461
+msgid "We are going to make everything 150% bigger.\n"
+msgstr "Suurennamme kaiken 150%:ksi entiseen verrattuna.\n"
-#: ../bin/param.c:182
-msgid "Unexpected End Of String"
-msgstr "Odottamaton merkkijonon loppu"
+#: ../../../../build/work/app/i18n/custmsg.h:462
+msgid "Note the track gauge did not change.\n"
+msgstr "Huomaa ettei raideleveys muuttunut.\n"
-#: ../bin/cgroup.c:576
-msgid "Ungroup Object"
-msgstr "Pura ryhmittely"
+#: ../../../../build/work/app/i18n/custmsg.h:463
+msgid "Let's try that again.\n"
+msgstr "Kokeillaan uudestaan.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:126
-msgid "Ungroup objects"
-msgstr "Pura ryhmittely"
+#: ../../../../build/work/app/i18n/custmsg.h:464
+msgid "Now we are going to convert from one scale to another.\n"
+msgstr "Nyt muutamme mittakaavasta toiseen.\n"
-#: ../bin/doption.c:359
-msgid "Units"
-msgstr "Yksiköt"
+#: ../../../../build/work/app/i18n/custmsg.h:465
+msgid "We will convert everything from N scale to HO scale...\n"
+msgstr "Muutamme kaiken N-mittakaavasta H0:ksi...\n"
-#: ../bin/dcar.c:146 ../bin/dcar.c:2437 ../bin/dcar.c:2441
-msgid "Unknown"
-msgstr "Tuntematon"
+#: ../../../../build/work/app/i18n/custmsg.h:466
+msgid "and change the track gauge as well.\n"
+msgstr "ja muutamme myös raideleveyden.\n"
-#: ../bin/ctrain.c:733
-msgid "Unknown Status"
-msgstr "Tuntematon tila"
+#: ../../../../build/work/app/i18n/custmsg.h:467
+msgid "Note that the Title of the turnout did not change.\n"
+msgstr "Huomaa ettei vaihteen otsikko muuttunut.\n"
-#: ../../../../build/xtrkcad/app/help/messages.h:133
-#, c-format
+#: ../../../../build/work/app/i18n/custmsg.h:468
msgid ""
-"Unknown playback command (%d)\n"
-"%s"
+"The <Rotate> command will pivot the Selected objects. First Click on the "
+"pivot point and then drag to Rotate the objects.\n"
msgstr ""
-"Tuntematon toistokomento (%d)\n"
-"%s"
+"Voit pyörittää valittuja objekteja. Klikkaa ensin haluttua kiertopistettä ja "
+"raahaa sitten pyörittääksesi objekteja.\n"
-#: ../bin/cturnout.c:252
-msgid "Unknown special case"
-msgstr "Tuntematon erikoistapaus"
+#: ../../../../build/work/app/i18n/custmsg.h:469
+msgid ""
+"In this example we will rotate the selected structure about it's center.\n"
+msgstr ""
+"Tässä esimerkissä pyöritämme valittua rakennusta keskipisteensä ympäri.\n"
-#: ../bin/dprmfile.c:226 ../bin/dprmfile.c:330
-msgid "Unload"
-msgstr "Poista"
+#: ../../../../build/work/app/i18n/custmsg.h:470
+msgid ""
+"The <Rotate> command will restrict the rotation to increments of 15° if you "
+"hold down the Control key.\n"
+msgstr ""
+"Jos pidät contol-näppäintä painettuna pyörittäminen tapahtuu 15°:n välein.\n"
-#: ../bin/fileio.c:684
-msgid "Unnamed Trackplan"
-msgstr "Nimetön ratasuunnitelma"
+#: ../../../../build/work/app/i18n/custmsg.h:471
+msgid ""
+"Shift-Right-Click will display a popup-menu that you can use to rotate by "
+"fixed amount (15°, 30°, 45°, 90° or 180°). The demonstration cannot show "
+"the popup-menu but it can show the effects.\n"
+msgstr ""
+"Vaihto + oikea klikkaus avaa ponnahdusvalikon, josta voi pyörittää määrätyn "
+"kulman verran (15°, 30°, 45°, 90° or 180°). Demossa ei voida näyttää "
+"ponnahdusvalikkoa, mutta näytämme toiminnon vaikutuksen.\n"
-#: ../bin/misc.c:2542
-#, c-format
-msgid "Unnamed Trackplan - %s(%s)"
-msgstr "Nimetön ratasuunnitelma - %s(%s)"
+#: ../../../../build/work/app/i18n/custmsg.h:472
+msgid "Here we will rotate by 90° clockwise (CW).\n"
+msgstr "Pyöritämme 90° myötäpäivään (MP).\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:526
-msgid "Unprintable margins"
-msgstr "Tulostumattomat marginaalit"
+#: ../../../../build/work/app/i18n/custmsg.h:473
+msgid ""
+"Another option of the <Rotate> command popup-menu is to Align the Selected "
+"object with some other object.\n"
+msgstr ""
+"Toinen vaihtoehto ponnahdusvalikossa on suunnata valittu objekti jonkin "
+"toisen objektin mukaisesti.\n"
-#: ../../../../build/xtrkcad/app/help/messages.h:106
-#, c-format
-msgid "Unrecognized Option: %s"
-msgstr "Tunnistamaton valinta: %s"
+#: ../../../../build/work/app/i18n/custmsg.h:474
+msgid ""
+"First we will click on one line of the Selected object. The angle of this "
+"part of the object will be Aligned.\n"
+msgstr ""
+"Ensin klikkaamme valitun objektin jotakin viivaa. Objekti suunnataan tämän "
+"viivan avulla.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:443
-msgid "Unselected tracks"
-msgstr "Normaalit raideosat, joita ei ole valittu"
+#: ../../../../build/work/app/i18n/custmsg.h:475
+msgid ""
+"Next, we click on an Unselected object. The Selected structure will be "
+"rotated so that the line we clicked on will be parallel to the straight "
+"track.\n"
+msgstr ""
+"Seuraavaksi klikataan valitsematonta objektia. Valittu rakennus käännetään "
+"siten, että valittu viiva on saman suuntainen suoran radan kanssa.\n"
-#: ../bin/dcar.c:2822 ../bin/dcar.c:2831 ../bin/dcar.c:2840
-#: ../bin/dcmpnd.c:168
-msgid "Update"
-msgstr "Päivitä"
+#: ../../../../build/work/app/i18n/custmsg.h:476
+msgid ""
+"If we drag the mouse across the track, we can flip the structure by 180°. "
+"This is similar to how we place turnouts.\n"
+msgstr ""
+"Jos raahaamme hiirellä radan puolelta toiselle, rakennus peilataan 180°. "
+"Samalla tavalla kuin vaihteiden asettelussa.\n"
-#: ../bin/dcar.c:2821
-#, c-format
-msgid "Update %s Scale Car"
-msgstr "Päivitä %s mittakaavan vaunu"
+#: ../../../../build/work/app/i18n/custmsg.h:477
+msgid ""
+"We can also align to curved shapes. The Selected object will be rotated to "
+"be parallel to the curve under the cursor.\n"
+msgstr ""
+"Voimme myös suunnata kaarevien muotojen mukaisesti. Valittua objektia "
+"pyöritetään siten, että se on yhdensuuntainen hiiren osoittimen alla olevan "
+"kaaren mukaisesti.\n"
-#: ../bin/dcar.c:2830
-#, c-format
-msgid "Update %s Scale Car Part"
-msgstr "Päivitä %s mittakaavan vaunu"
+#: ../../../../build/work/app/i18n/custmsg.h:478
+msgid ""
+"As we drag along the curved track the Selected object rotates to follow the "
+"curve.\n"
+msgstr ""
+"Raahaamalla kaarretta pitkin, valittua objektia pyöritetään vastaavalla "
+"tavalla.\n"
-#: ../bin/dcar.c:2839
-msgid "Update Prototype"
-msgstr "Päivitä esikuva"
+#: ../../../../build/work/app/i18n/custmsg.h:479
+msgid "Again, if we drag across the track we can flip the stucture.\n"
+msgstr ""
+"Rakennus voidaan jälleen peilata raahaamalla raiteen puolelta toiselle.\n"
-#: ../bin/dcmpnd.c:168
-msgid "Update Title"
-msgstr "Pävitä otsikko"
+#: ../../../../build/work/app/i18n/custmsg.h:480
+msgid "We can also Align to another Structure or any object.\n"
+msgstr ""
+"Voimme myös suunnata jonkin toisen rakennuksen tai minkä tahansa objektin "
+"mukaan.\n"
-#: ../bin/misc.c:2346
-msgid "Update Turnouts and Structures"
-msgstr "Päivitä vaihteet ja rakennukset"
+#: ../../../../build/work/app/i18n/custmsg.h:481
+msgid ""
+"The <Ruler> command draws a Ruler on the layout you can use to measure "
+"distances.\n"
+msgstr ""
+"Viivain-komento piirtää viivaimen, jolla voit mitata etäisyyksiä "
+"ratasuunnitelmassasi.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:233
-msgid "Update custom file and close"
-msgstr "Päivitä tiedosto ja sulje ikkuna"
+#: ../../../../build/work/app/i18n/custmsg.h:482
+msgid "If you press the <Ruler> command again the Ruler is removed.\n"
+msgstr "Jos aktivoit toiminnon uudelleen, viivain poistetaan.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:414
-msgid "Update parameter file list"
-msgstr "Päivitä parametritiedostojen luettelo"
+#: ../../../../build/work/app/i18n/custmsg.h:483
+msgid "But you can place it somewhere else.\n"
+msgstr "Mutta voit sijoittaa sen johonkin toiseen paikkaan.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:100
-msgid "Update selected Turnout and Structure definitions"
-msgstr "Päivitä valittujen vaihteiden ja rakennusten määrittelyt"
+#: ../../../../build/work/app/i18n/custmsg.h:484
+msgid "The <Select> command is used to select tracks.\n"
+msgstr "Valitse -komentoa käytetään raiteiden valitsemiseen.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:511
-msgid "Update the Turnouts' title"
-msgstr "Päivitä raideosan otsikko"
+#: ../../../../build/work/app/i18n/custmsg.h:485
+msgid "Selected tracks can be moved or rotated during the <Select> command.\n"
+msgstr ""
+"Valittuja raiteita voidaan siirtää tai pyörittää Valitse -komennon ollessa "
+"aktiivisena.\n"
-#: ../bin/dcar.c:3839 ../bin/dcar.c:3856
-msgid "Updated"
-msgstr "Päivitetty"
+#: ../../../../build/work/app/i18n/custmsg.h:486
+msgid "Selected tracks can also be deleted, hidden, listed and exported.\n"
+msgstr ""
+"Valitut raiteet voidaan myös poistaa, piilottaa (tunneli), luetteloida tai "
+"eksportoida (viedä tiedostoon).\n"
-#: ../bin/dcar.c:3809
-msgid "Updated Car"
-msgstr "Päivitä vaunu/veturi"
+#: ../../../../build/work/app/i18n/custmsg.h:487
+msgid "A single Left-Click selects tracks.\n"
+msgstr "Yksi klikkaus hiiren vasemmalla painikkeella valitsee raiteen.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:382
-msgid "Updated cost of current selected item"
-msgstr "Syötä valitulle tuotteelle uusi hinta"
+#: ../../../../build/work/app/i18n/custmsg.h:488
+msgid "Selecting a selected track de-selects it.\n"
+msgstr "Klikkaamalla jo valittuna olevaa raidetta, sen valinta poistuu.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:527
-msgid "Updates and closes this dialog"
-msgstr "Hyväksy asetukset ja sulje ikkuna"
+#: ../../../../build/work/app/i18n/custmsg.h:489
+msgid ""
+"Shift-Left-Click on a track will select all unselected tracks connected to "
+"the track. Selection stops at a previously selected track.\n"
+msgstr ""
+"Pitämällä vaihto-näppäintä pohjassa ja klikkaamalla raidetta, valitaan "
+"kaikki tähän raiteeseen yhtyvät raiteet. Valinta pysähtyy kuitenkin "
+"ensimmäiseen jo valittuun raiteeseen.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:124
-msgid "Updates old source files with 3 part titles"
-msgstr "Päivittää vanhat lähdetiedostot kolmiosaisilla otsikoilla"
+#: ../../../../build/work/app/i18n/custmsg.h:490
+msgid "Be careful with this because its easy to select all tracks this way.\n"
+msgstr ""
+"Ole kuitenkin varovainen, sillä näin voit helposti tulla valinneeksi kaikki "
+"raiteet.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:448
-msgid "Updates the colors"
-msgstr "Pävitä värit ja sulje ikkuna"
+#: ../../../../build/work/app/i18n/custmsg.h:491
+msgid "The <esc> key will deselect all objects.\n"
+msgstr "Esc -näppäin poistaa valinnat kaikista objekteista.\n"
-#: ../bin/dprmfile.c:98
-#, c-format
-msgid "Updating %s"
-msgstr "Päivitetään %s"
+#: ../../../../build/work/app/i18n/custmsg.h:492
+msgid "Left-Drag is used to select all objects within an area.\n"
+msgstr ""
+"Raahaamalla hiiren vasemmalla painikkeella, voidaan valita kaikki alueella "
+"olevat objektit.\n"
-#: ../bin/dcmpnd.c:105
-msgid "Updating definitions, please wait"
-msgstr "Päivitetään määrittelyjä, odota hetki."
+#: ../../../../build/work/app/i18n/custmsg.h:493
+msgid "And Right-Drag de-selects all tracks within an area.\n"
+msgstr ""
+"Raahaaminen hiiren oikealla painikkeella puolestaan poistaa alueella olevien "
+"kohteiden valinnat.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:494
+msgid "Shift-Left-Drag is used to move selected tracks.\n"
+msgstr ""
+"Voit siirtää valittuja objekteja pitämällä vaihto-näppäintä painettuna ja "
+"raahaamalla hiiren vasemmalla painikkeella.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:508
+#: ../../../../build/work/app/i18n/custmsg.h:495
msgid ""
-"Use Shift-Left-Click to Split the track and create an End-Point we can use "
-"for an Elevation,\n"
+"When you move selected tracks that are connected to unselected tracks, the "
+"tracks will be disconnected. These points are marked by a Red cross on the "
+"layout.\n"
msgstr ""
-"Paina vaihto-näppäintä ja klikkaa hiiren vasemmalla painikkeella rataa "
-"luodaksesi liitoskohdan korkeustasoja varten\n"
+"Kun siirrät valittuja raiteita, jotka on liitetty valitsemattomiin "
+"raiteisiin, raiteet irrotetaan toisistaan. Nämä pisteet merkitään punaisilla "
+"risteillä.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:626
+#: ../../../../build/work/app/i18n/custmsg.h:496
msgid ""
-"Use the MoveTo button on the Custom Management dialog to move your custom "
-"Turnout, Structure and Car definitions to a .XTP parameter file."
+"Drawing the tracks while moving can be very time-consuming. We had just "
+"used the \"Normal\" method of drawing tracks.\n"
msgstr ""
+"Raiteita siirrettäessä niiden piirto voi olla hyvinkin aikaa vievää. Tässä "
+"on käytetty reiteiden piirron asetusta \"normaali\".\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:590
+#: ../../../../build/work/app/i18n/custmsg.h:497
msgid ""
-"Use the Parts List command to measure track length.\n"
-"Select the tracks you want to measure and then click on the Parts List "
-"button. The report will list the total of length of the selected flex-"
-"track. You will have to add in the length of any Turnouts."
+"The Command Options dialog (from the Options menu) contains a Radio button "
+"group which you can use to pick the drawing method.\n"
msgstr ""
-"Käytä osaluetteloa mitataksesi radan pituuksia.\n"
-"Valitse mitattava rataosuus ja avaa sitten osaluettelo. Raportissa on "
-"laskettuna fleksi raiteen kokonaispituus valitulla rataosuudella. "
-"Palaraiteiden pituudet täytyy lisätä erikseen."
+"Komentojen asetuksista (Asetukset|Komennot) voit valita raiteiden "
+"piirtotavan.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:179
-msgid "Use the Selected figure as the car image"
-msgstr "Käytä valittua kuvaa vaunun tai veturin kuvana"
+#: ../../../../build/work/app/i18n/custmsg.h:498
+msgid ""
+"You can also popup the Command Options Menu by pressing Shift-Right-Click "
+"which includes options for setting the drawing method. These options are "
+"also available for the Move and Rotate Command Options Menu.\n"
+msgstr ""
+"Piirtotavan voi valita myös painamalla vaihto-näppäintä ja klikkaamalla "
+"hiiren oikealla painikkeella, jolloin avautuu komennon ponnahdusvalikko. "
+"Piirtotavan valinta on saatavilla Siirrä ja Pyöritä komentojen "
+"ponnahdusvalikoissa.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:631
-msgid "Use the Train Odometer to measure distances along the track."
+#: ../../../../build/work/app/i18n/custmsg.h:499
+msgid ""
+"The next method is \"Simple\" draws. Here tracks are drawn using one line, "
+"no End-Points are drawn, lines are not drawn and structures are drawn using "
+"a box outline.\n"
msgstr ""
+"Seuraava piirtotapa on \"Yksinkertainen\", jolloin raiteet piirretään "
+"yhdellä viivalla, ilman päätepisteiden merkintää. Viivoja ei piirretä ja "
+"rakennukset piirretään yksinkertaisina nelikulmioina.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:180
-msgid "Use the default figure as the car image"
-msgstr "Käytä oletuskuvaa vaunun tai veturin kuvana"
+#: ../../../../build/work/app/i18n/custmsg.h:500
+msgid ""
+"Note: you can move the Command Options dialog if it obscures the main "
+"window.\n"
+msgstr ""
+"Huom: Voit siirtää Komentojen asetukset -ikkunaa, jos se peittää pääikkunaa "
+"oleellisesti.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:460
-msgid "Useful information about the program"
-msgstr "Hyödyllisiä tietoja ohjelmasta"
+#: ../../../../build/work/app/i18n/custmsg.h:501
+msgid ""
+"The next method is to just draw the End-Points of the selected tracks.\n"
+msgstr ""
+"Seuraava tapa on piirtää ainoastaan valittujen raiteiden päätepisteet.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:376
-msgid "Users on those platforms will not see the gap.\n"
-msgstr "Mainittujen käyttöjärjestelmien käyttäjät eivät näe näitä rakoja.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:502
+msgid ""
+"Unconnected End-Points are indicated by Red crosses, and connected End-"
+"Points are indicated by Red lines.\n"
+msgstr ""
+"Irralliset päätepisteet merkitään punaisilla risteillä ja liitetyt "
+"punaisilla viivoilla.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:365
-msgid "Validates the name and key. Terminates the registration command"
-msgstr "Vahvistaa nimen ja avainen, sekä päättää rekisteröitymisen"
+#: ../../../../build/work/app/i18n/custmsg.h:503
+msgid "Now we will go back to using the Normal method again.\n"
+msgstr "Nyt palautetaan normaali piirtotapa.\n"
-#: ../bin/dease.c:70
-msgid "Value"
-msgstr "Arvo"
+#: ../../../../build/work/app/i18n/custmsg.h:504
+msgid ""
+"Shift-Right-Drag rotates the selected tracks about the pivot point (which is "
+"where you started the drag)\n"
+msgstr ""
+"Painamalla vaihto-näppäintä ja raahaamalla hiiren oikealla painikkeella voit "
+"pyörittää valittuja raiteita. Kiertopiste määräytyy sen mukaan, mistä "
+"raahaaminen aloitettiin.\n"
-#: ../bin/csnap.c:521
-msgid "Vert"
-msgstr "Pysty"
+#: ../../../../build/work/app/i18n/custmsg.h:505
+msgid ""
+"Next we select the <Join Tracks> command. You can use Shift-Left-Click to "
+"move an End-Point of a selected track to join with an unselected track.\n"
+msgstr ""
+"Seuraavaksi käytämme Yhdistä-komentoa. Vaihto + hiiren vasen siirtää valitut "
+"raiteet ja liittää ne valitsemattomiin.\n"
-#: ../bin/ccurve.c:393
-msgid "Vertical Separation"
-msgstr "Kerrosten välinen etäisyys"
+#: ../../../../build/work/app/i18n/custmsg.h:506
+msgid ""
+"Note: because of differing display resolutions the next mouse click may not "
+"be positioned correctly in this demo and the Move-To-Join operation may not "
+"be demonstrated.\n"
+msgstr ""
+"Huom: Johtuen erilaisista näytön resoluutioista seuraava hiiren klikkaus voi "
+"olla virheellisesti kohdistettu tässä demossa, jolloin \"siirrä yhdistääksesi"
+"\" operaation esitys ei toimi oikein.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:146
-msgid "View menu"
-msgstr "Näytä -valikko"
+#: ../../../../build/work/app/i18n/custmsg.h:507
+msgid "The <Split> command is used to split and disconnect tracks.\n"
+msgstr "Pilko-komentoa käytetään raiteiden pilkkomiseen ja irrottamiseen.\n"
-#: ../bin/param.c:136
-msgid "Violet"
-msgstr "Violetti"
+#: ../../../../build/work/app/i18n/custmsg.h:508
+msgid "Simply select the spot on the track you want to split.\n"
+msgstr "Valitse radalta kohta, jonka haluat pilkkoa.\n"
-#: ../bin/dlayer.c:316
-msgid "Visible"
-msgstr "Näkyvä"
+#: ../../../../build/work/app/i18n/custmsg.h:509
+msgid "You cannot split turnouts (unless you hold down the Shift key).\n"
+msgstr ""
+"Palaraiteita ja vaihteita ei voi pilkkoa, ellei vaihto-näppäintä pidetä "
+"samanaikaisesti painettuna.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:198
+#: ../../../../build/work/app/i18n/custmsg.h:510
msgid ""
-"Watch what happens if you try to drag the selected End-Point beyond the far "
-"End-Point.\n"
+"If you split at spot that is already an End-Point between two tracks, or "
+"split twice at the same spot, the track is disconnected.\n"
msgstr ""
-"Katso mitä tapahtuu, jos raahaat valitun päätepisteen toisen päätepisteen "
-"yli.\n"
-
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:215
-msgid "Watch what happens to the structure and turnout titles.\n"
-msgstr "Katso mitä tapahtuu rakennusten ja vaihteen otsikoille.\n"
-
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:153
-msgid "We also draw Polylines and filled shapes.\n"
-msgstr "Voimme myös luoda monikulmioita ja täytettyjä monikulmioita.\n"
+"Jos pilkot kohdasta, joka on raiteiden liitos tai pilkot kaksi kertaa "
+"samasta kohdasta, raiteet irrotetaan toisistaan.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:132
-msgid "We are going to make everything 150% bigger.\n"
-msgstr "Suurennamme kaiken 150%:ksi entiseen verrattuna.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:511
+msgid "The <Tunnel> command marks selected tracks as hidden.\n"
+msgstr "Tunneli-komento merkitsee valitut raideosat piilotetuiksi.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:181
+#: ../../../../build/work/app/i18n/custmsg.h:512
msgid ""
-"We can Ignore one of the End-Points on a Turnout to force the Path to take "
-"the other route.\n"
+"A tunnel portal is drawn at the boundary between hidden and normal track.\n"
msgstr ""
-"Voimme hylätä yhden vaihteen päätepisteistä pakottaaksemme reitin kulkemaan "
-"toista kautta.\n"
+"Tunnelin suuaukko piirretään piilotetun ja normaalin raideosan "
+"liitoskohtaan.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:236
-msgid "We can also Align to another Structure or any object.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:513
+msgid ""
+"How the hidden tracks are drawn (solid, dashed or invisible) is controlled "
+"by the Draw EndPts radio button group on the Setup dialog.\n"
msgstr ""
-"Voimme myös suunnata jonkin toisen rakennuksen tai minkä tahansa objektin "
-"mukaan.\n"
+"Piilotettujen raiteiden esitystapa valitaan näyttöasetuksista, kohdasta "
+"\"Piirrä tunneli\". Tunneli voidaan piirtää yhtenäisellä viivalla, "
+"katkoviivalla tai jättää kokonaan piirtämättä.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:233
+#: ../../../../build/work/app/i18n/custmsg.h:514
msgid ""
-"We can also align to curved shapes. The Selected object will be rotated to "
-"be parallel to the curve under the cursor.\n"
+"To 'un-hide' a track just Select it again and click the Tunnel button.\n"
msgstr ""
-"Voimme myös suunnata kaarevien muotojen mukaisesti. Valittua objektia "
-"pyöritetään siten, että se on yhdensuuntainen hiiren osoittimen alla olevan "
-"kaaren mukaisesti.\n"
+"Palauttaaksesi tunneliksi merkityt raideosat normaaleiksi, valitse ne ja "
+"paina uudelleen tunneli-napista.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:101
-msgid "We can also create turnouts from simple straight and curved tracks.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:515
+msgid ""
+"Straight tracks are created by selecting the first End-Point of the track.\n"
msgstr ""
-"Voimme myös luoda vaihteita yksinkertaisista suorista ja kaarevista "
-"raideosista.\n"
-
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:319
-msgid "We can create Hand Laid Turnouts on curved tracks.\n"
-msgstr "Voimme luoda käsin asetellun vaihteen myös kaarteeseen.\n"
+"Suorat raiteet luodaan valitsemalla hiiren vasemmalla painikkeella raiteen "
+"ensimmäinen päätepiste.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:567
-msgid "We can indicate the mainline by making the rails wider.\n"
-msgstr "Voimme kuvata päärataa paksummalla raiteella.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:516
+msgid "Then the other End-Point is dragged to its final postion.\n"
+msgstr ""
+"Toinen päätepiste valitaan pitämällä hiiren vasen painike alhaalla ja "
+"valitsemalla oikea paikka.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:570
-msgid "We can make the rail thicker by selecting Thick Tracks.\n"
-msgstr "Tai paksut raiteet.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:517
+msgid "The left mouse button is released at the final end postion.\n"
+msgstr "Hiiren vasen painike vapautetaan loppupisteessä.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:496
-msgid "We can move the Elevations by using Right-Drag\n"
+#: ../../../../build/work/app/i18n/custmsg.h:518
+msgid ""
+"Table Edges are used to mark the edges of the layout, either for aisles or "
+"room walls.\n"
msgstr ""
-"Voimme siirtää korkeustasojen merkintöjä raahaamalla hiiren oikealla "
-"painikkeella.\n"
+"Pöydän reunoja käytetään kuvaamaan ratasuunnitelman reunoja, joko "
+"kulkuväyliä tai seiniä.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:439
-msgid "We can try splitting the diverging leg.\n"
-msgstr "Voimme yrittää pikkoa haarautuvan raiteen.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:519
+msgid "A Table Edge is attracted to the ends of other Table Edges.\n"
+msgstr "Pyödän reunojen päät vetävät toisiaan puoleensa.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:520
+msgid "Table Edges can be modified by dragging on their ends.\n"
+msgstr "Pöydän reunoje voidaan muokara raahaamalla niiden päistä.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:460
+#: ../../../../build/work/app/i18n/custmsg.h:521
msgid ""
-"We can use the <Connect> command to move the connecting tracks slightly and "
-"connect the 2 End-Points.\n"
+"If you hold down the Control key while dragging then the Table Edge will be "
+"attracted to other objects.\n"
msgstr ""
-"Voimme käyttää liitä-komentoa siirtääksemme raideosia hieman, jotta raiteet "
-"saadaan liitetyksi.\n"
+"Jos pidät control-näppäintä painettuna raahatessasi, pöydän reuna ja muut "
+"objektit vetävät toisiaan puoleensa.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:195
+#: ../../../../build/work/app/i18n/custmsg.h:522
msgid ""
-"We can use the <Describe> command to change the position of the Dimension "
-"Line and the size of the numbers.\n"
+"These examples shows some of the various Turnout Designer windows. Each "
+"window defines a different type of turnout.\n"
msgstr ""
-"Voimme käyttää määrittele-komentoa muuttaaksemme mittajanan sijaintia ja "
-"numeroiden kokoa.\n"
+"Tässä esimerkissä näytetään joitakin monista vaihteiden ja raideosien "
+"suunnitteluikkunoista. Kussakin ikkunassa määritellään eri tyyppinen "
+"vaihde.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:80
+#: ../../../../build/work/app/i18n/custmsg.h:523
msgid ""
-"We could modify these object or add new ones. For now we'll just delete "
-"them.\n"
+"In each window there are a number of parameters to fill in and one or two "
+"description lines.\n"
msgstr ""
-"Voisimme muokata näitä objekteja tai lisätä uusia. Nyt kuitenkin vain "
-"poistamme ne.\n"
+"Jokaisessa ikkunassa on useita parametrikenttiä sekä yksi tai kaksi riviä "
+"kuvausta varten.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:501
-msgid ""
-"We create a Computed Elevation here that will be automatically adjusted "
-"whenever the other Elevations are changed.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:524
+msgid "You can print the design to check the dimensions before saving them.\n"
msgstr ""
-"Luomme tähän \"lasketun\" korkeustason, joka päivitetään automaattisesti jos "
-"muita korkeustasoja muutetaan.\n"
+"Voit tulostaa suunnittelemasi vaihteen tarkastaaksesi sen mitat ennen "
+"tallentamista.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:503
-msgid "We do this by Ignoring the branch we don't want.\n"
-msgstr "Teemme tämän hylkäämällä haaran, jota emme halua käyttää.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:525
+msgid "This is the regular turnout.\n"
+msgstr "Tämä on tavallinen vaihde.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:178
+#: ../../../../build/work/app/i18n/custmsg.h:526
msgid ""
-"We do this by Shift Right Click to display the Profile Options popup menu "
-"and selecting Define.\n"
+"In addition to the dimensions, you also enter the Title (Manufacturer, "
+"Description and Part Number). For Turnouts with Left and Right hand "
+"versions there are separate Descriptions and Part Numbers.\n"
msgstr ""
-"Teemme tämän avaamalla ponnahdusvalikon ja valitsemalla \"Määritelty\".\n"
+"Mittatietojen lisäksi voit syöttää otsikon (valmistaja, kuvaus ja "
+"tuotenumero). Vaihteille, joilla on vasen ja oikea versio, on molempia "
+"versioita varten omat kentät kuvausta ja tuotenumeroa varten.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:442
+#: ../../../../build/work/app/i18n/custmsg.h:527
msgid ""
-"We have built a siding using Sectional track and have 2 End-Points that "
-"don't line up and are not connected automatically when placing the sectional "
-"track.\n"
+"Some Turnouts and Sectional track are pre-mounted on roadbed. For these "
+"parts you can specify the width of the roadbed, the thickness of the lines "
+"drawn for the edge of the roadbed and the color.\n"
msgstr ""
-"Olemme rakentaneet sivuraiteen käyttäen palaraiteita. Kaksi päätepistettä "
-"eivät ole riittävän kohdakkain, jotta ne olisi automaattisesti liitetty "
-"toisiinsa.\n"
+"Joihinkin raideosiin kuuluu kiinteä ratapenkka. Näitä osia varten voit "
+"määrittää ratapenkan leveyden, reunaviivan paksuuden sekä reunaviivan "
+"värin.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:116
-msgid ""
-"We have created a left hand turnout and we also want a right hand version.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:528
+msgid "The double slip switch is described by only a few parameters.\n"
msgstr ""
-"Olemme luoneen vasemman puoleisen vaihteen ja haluamme myös oikean puoleisen "
-"version.\n"
+"Kaksipuolinen risteysvaihde määritellään vain muutamalla parametrilla.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:489
-msgid ""
-"We have designed part of the layout with a siding, 2 branches and a spiral "
-"loop. We want to set Elevations.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:529
+msgid "The double crossover only needs length and track separation.\n"
msgstr ""
-"Meillä on ratasuunnitelma jossa on sivuraide, kaksi haaraa ja silmukka, joka "
-"muodostaa radalle risteyksen.\n"
-" Haluamme asetella radan korkeustasot.\n"
+"Sovitettu raideristeys tarvitsee ainoastaan pituuden ja raiteiden välisen "
+"etäisyyden.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:552
+#: ../../../../build/work/app/i18n/custmsg.h:530
msgid ""
-"We have set the elevations to 1\" and 13\" to produce a grade of 3.0% with "
-"2.8\" between coils.\n"
+"Pressing the turnout button displays the Turnout Selection window to let you "
+"choose a turnout to place.\n"
msgstr ""
-"Asetimme korkeustasot 1 ja 13 tuumaksi luodaksemme 3,0% nousukulman ja 2,8 "
-"tuuman kerrosvälin.\n"
-
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:150
-msgid "We have to delete the leftover piece by Selecting and Deleting it.\n"
-msgstr "Pilkkomisesta yli jäänyt raideosa täytyy poistaa.\n"
+"\"Lisää|Palaraide\" valikosta tai vastaava painike työkaluriviltä avaa "
+"palaraiteiden valinta ikkunan, josta voit valita valmiita raideosia "
+"liitettäväksi ratasuunnitelmaasi.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:194
+#: ../../../../build/work/app/i18n/custmsg.h:531
msgid ""
-"We might also want to measure the distance between two structures. In this "
-"case we will use a larger dimension line.\n"
+"Note that once you start to place the turnout on the Main window the Turnout "
+"Selection window disappears. This feature is enabled by the Hide toggle "
+"button on the dialog.\n"
msgstr ""
-"Haluamme myös mitata kahden rakennuksen välisen etäisyyden. Tässä "
-"tapauksessa käytämme suurempaa mittajanaa.\n"
-
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:499
-msgid "We picked an End-Point on the upper track.\n"
-msgstr "Valitsimme raiteiden liitoskohdan ylemmältä radalta.\n"
+"Huomaa, että kun aloitat raideosan paikoilleen asettelun pääikkunassa, "
+"valintaikkuna katoaa. Tämä voidaan myös estää poistamalla ruksi valinnasta "
+"\"Piilota\".\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:370
+#: ../../../../build/work/app/i18n/custmsg.h:532
msgid ""
-"We rotate the signals by Shift-Right-Click and select 90° CW on the popup "
-"menu. We can not show the popup menu in demo mode, but will simulate the "
-"effect.\n"
+"You can place the turnout on a arbitrary position on the layout. Left-drag "
+"the turnout into place...\n"
msgstr ""
-"Pyöritämme opastimia pitämällä vaihto-näppäintä painettuna ja klikkaamalla "
-"hiiren oikealla painikkeella avataksemme ponnahdusvalikon. Sieltä valitsemme "
-"90° MP (myötäpäivään). Demossa ei voida näyttää ponnahdusvalikkoa, mutta "
-"näytämme komennon vaikutuksen.\n"
+"Aseta palaraide ratasuunnitelmaasi klikkaamalla. Raahaa se sitten hiiren "
+"vasemmalla painikkeella paikoilleen...\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:356
-msgid "We specify the line width in pixels.\n"
-msgstr "Määrittelemme viivan paksuuden pikseleinä.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:533
+msgid "Then you can rotate the turnout by Right dragging.\n"
+msgstr "Voit myös pyörittää sitä raahaamalla hiiren oikealla painikkeella.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:443
+#: ../../../../build/work/app/i18n/custmsg.h:534
msgid ""
-"We use the <Connect> command to adjust neighboring tracks so the gap is "
-"closed.\n"
+"You can also use Shift-Right-Click to display a popup menu that lets you "
+"rotate the Turnout by specific angles.\n"
msgstr ""
-"Käytämme liitä-komentoa säätääksemme viereisiä raideosia siten, että rako "
-"saadaan suljettua.\n"
+"Vaihto + hiiren oikea avaa ponnahdusvalikon, josta voit pyörittää raideosaa "
+"tietyn kulman verran.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:435
-msgid "We use the <Split> command for this.\n"
-msgstr "Käytämme Pilko-komentoa tähän tarkoitukseen.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:535
+msgid ""
+"When you are satisfied with the position and orientation of the turnout "
+"press Space bar or the Return key on the keyboard to finish placing the "
+"turnout.\n"
+msgstr ""
+"Kun olet tyytyväinen raideosan asetteluun, paina Välilyönti tai Return "
+"viimeistelläksesi raideosan asettelun.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:110
-msgid "We want the curve to have a radius of 20\" and an angle of 17.5°.\n"
-msgstr "Haluamme kaarteelle tietyn säteen ja kulman.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:536
+msgid ""
+"Pressing the Ok button on the Turnout dialog will end the <Turnout> command "
+"as well as placing the turnout.\n"
+msgstr ""
+"\"Sulje\" painike valintaikkunassa viimeistelee raideosan asettelun ja "
+"lopettaa toiminnon.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:498
-msgid "We want to find the elevations where the 2 tracks cross.\n"
-msgstr "Voimme selvittää korkeustasot raiteiden risteyskohdassa.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:537
+msgid ""
+"If you drag along an existing track the new turnout will be attached to the "
+"track.\n"
+msgstr ""
+"Jos raahaat vaihdetta olemassa olevaa raidetta pitkin, uusi vaihde liitetään "
+"raiteeseen.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:380
+#: ../../../../build/work/app/i18n/custmsg.h:538
msgid ""
-"We want to print our control panel onto a 8œx11 page, but the control panel "
-"is a bit too wide.\n"
+"Note that the status line tells you the number of End-Points that would be "
+"connected and, the maximum displacement of the End-Points. This will be "
+"useful when building complex track, as we will see later.\n"
msgstr ""
-"Haluamme tulostaa ohjeuspaneelin 8 1/2 x 11 tuuman kokoiseksi, mutta "
-"ohjauspaneeli on hieman liian suuri.\n"
+"Huomaa, että tilarivillä kerrotaan kuinka monta päätepistettä ollaan "
+"liittämässä, sekä suurin päätepisteiden siirtymä. Tämä auttaa rakentamaan "
+"monimutkaisia ratoja, kuten myöhemmin näemme.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:75
+#: ../../../../build/work/app/i18n/custmsg.h:539
msgid ""
-"We will Ungroup this turnout and see how the individual parts can be "
-"changed.\n"
+"By moving the cursor from one side to the other of the track centerline you "
+"can flip the turnout 180°.\n"
msgstr ""
-"Puramme tämän vaihteen ryhmittelyn nähdäksemme kuinka yksittäisiä osia "
-"voidaan muuttaa.\n"
+"Siirtämällä hiiren osoitinta radan keskilinjan puolelta toiselle, voit "
+"kääntää vaihdetta 180°.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:534
-#, c-format
+#: ../../../../build/work/app/i18n/custmsg.h:540
msgid ""
-"We will be creating a helix with a Elevation Difference of 12\", Grade of "
-"1.5% and limit the Vertical Separation to at least 2\".\n"
+"If you try to drag across another turnout the new turnout will placed at the "
+"nearest End-Point of the existing turnout.\n"
msgstr ""
-"Luomme helixin, jonka korkeusero on 12 tuumaa, nousukulma 1,5% ja määräämme "
-"kerrosten välisen tilan olevan vähintään 2 tuumaa.\n"
+"Jos yrität raahata toisen vaihteen päälle, uusi vaihde asetetaan olemassa "
+"olevan vaihteen lähimmän päätepisteen kohdalle.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:221
-msgid "We will change the Radius before proceeding.\n"
-msgstr "Muutamme säteen ennen kuin jatkamme.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:541
+msgid ""
+"When you press Space or Return while the turnout is on a track, the track "
+"will be split and the new turnout attached automatically.\n"
+msgstr ""
+"Vaihteen ollessa olemassa olevan radan päällä, rata pilkotaan ja uusi vaihde "
+"liitetään automaattisesti.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:136
-msgid "We will convert everything from N scale to HO scale...\n"
-msgstr "Muutamme kaiken N-mittakaavasta H0:ksi...\n"
+#: ../../../../build/work/app/i18n/custmsg.h:542
+msgid "Pressing Close ends the <Turnout> command.\n"
+msgstr "Sulje-painike peruuttaa palaraiteiden asettelun.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:307
-msgid "We will draw two 3x6 inch L-girders.\n"
-msgstr "Piirrämme nyt 3x6 tuuman L-palkkeja.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:543
+msgid "Sometimes it's useful to modify turnouts triming one of the ends.\n"
+msgstr ""
+"Joskus on tarpeen muokata vaihteita säätämällä jonkin raiteen pituutta.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:374
-msgid "We will fill this gap with the Œ\" dot.\n"
-msgstr "Näytämme ne 1/4 tuuman pisteillä.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:544
+msgid "We use the <Split> command for this.\n"
+msgstr "Käytämme Pilko-komentoa tähän tarkoitukseen.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:164
-msgid "We will start with the right end of the siding.\n"
-msgstr "Aloitamme aseman oikeasta päästä.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:545
+msgid "Normally, if we try to Split a turnout we get an error message.\n"
+msgstr ""
+"Normaalisti, jos vaihdetta tai palaraidetta yritetään pilkkoa, saadaan "
+"virheilmoitus.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:362
-msgid "We will use T1 red and green LEDs.\n"
-msgstr "Käytämme punaisia ja vihreitä T1 LEDejä.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:546
+msgid "Hold down the Shift key and try again.\n"
+msgstr "Pidä vaihto-näppäi painettuna ja yritä uudelleen.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:309
-msgid "We will use the <Describe> command for this.\n"
-msgstr "Käytämme määrittele-komentoa.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:547
+msgid ""
+"The end of the turnout has been replaced by a piece of straight flex track "
+"which we can modify.\n"
+msgstr ""
+"Vaihteen pää korvattiin pätkällä suoraa fleksiraidetta, jota voi muokata "
+"normaalisti.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:104
-msgid "We will use the <Describe> command to change the tracks.\n"
-msgstr "Käytämme kuvaile-komentoa muuttaaksemme raiteiden ominaisuuksia.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:548
+msgid "We can try splitting the diverging leg.\n"
+msgstr "Voimme yrittää pikkoa haarautuvan raiteen.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:363
-msgid "We will zoom in to show positioning.\n"
-msgstr "Lähennämme näkymää asettelun helpottamiseksi.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:549
+msgid ""
+"Notice that the tail of the diverging leg has been changed to a curved "
+"track...\n"
+msgstr "Huomaa, että haarautuva raide on muutettu kaarteeksi...\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:121
-msgid "We'll change the Title and Part No for the new defintion.\n"
-msgstr "Muutamme kuvausta ja tuotenumeroa uutta määrittelyä varten.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:550
+msgid "and a straight track.\n"
+msgstr "ja suoraksi raideosaksi.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:102
-msgid "We'll create two tracks that have a common End-Point.\n"
-msgstr "Luomme kaksi raidetta, joilla on yhteinen päätepiste.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:551
+msgid ""
+"This example show how to layout a yard using the <Turnout> and <Parallel> "
+"commands.\n"
+msgstr ""
+"Tässä esimerkissä näytetään ratapihan luominen käyttäen \"Palaraide\" ja "
+"\"Rinnakkainen raide\" komentoja.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:70
-msgid "We'll give this definition a new Description.\n"
-msgstr "Annamme tälle määrittelylle uuden kuvauksen.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:552
+msgid ""
+"You can resize and move the Turnout Selection dialog if it obscures the "
+"other windows.\n"
+msgstr ""
+"Voit pienentää tai siirtää raideosien valintaikkunaa, jos se peittää muita "
+"ikkunoita.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:504
-msgid "We'll ignore the lower branch.\n"
-msgstr "Hylkäämme alemman haaran.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:553
+#, fuzzy
+msgid "First we place a turnout on the main line.\n"
+msgstr "Asetetaan ensin vaihde pääradalle.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:105
-msgid "We'll make the Length 7.5\".\n"
-msgstr "Muutamme pituutta.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:554
+msgid "Next extend the turnout with the <Modify> command.\n"
+msgstr "Seuraavaksi jatketaan vaihdetta \"Muokkaa\" komennolla.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:491
-msgid "We'll select the end of the top branch and set the Elevation to 4\"\n"
+#: ../../../../build/work/app/i18n/custmsg.h:555
+#, fuzzy
+msgid ""
+"Now create a track parallel to the main line. Make sure the separation is "
+"reasonable for your scale.\n"
msgstr ""
-"Valitsemme ylemmän haaran pään ja asetamme sille haluamamme korkeustason.\n"
-
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:63
-msgid "We'll start with a simple turnout and add a switch machine.\n"
-msgstr "Aloitamme yksinkertaisesta vaihteesta ja vaihdekoneistosta.\n"
+"Luo sitten pääradalle rinnakkainen raide. Varmista, että raideväli on "
+"mittakaavallesi sopiva.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:117
-msgid "We'll use the <Flip> command.\n"
-msgstr "Käytämme peilaustoimintoa.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:556
+msgid "And place a turnout to connect the new track.\n"
+msgstr "Ja aseta vaihde liittääksesi uuden raiteen.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:145
+#: ../../../../build/work/app/i18n/custmsg.h:557
msgid "We'll zoom in here to see what's going on.\n"
msgstr "Lähennämme, jotta näet paremmin mitä tapahtuu.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:71
-msgid "We're done with this definition. Press Ok.\n"
-msgstr "Määrittely on valmis ja se hyväksytään painamalla Ok.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:558
+msgid ""
+"Notice how we control which way the turnout is facing by moving the mouse "
+"across the center line of the track.\n"
+msgstr ""
+"Huomaa kuinka kontrolloimme vaihteen suuntaa siirtämällä hiiren osoitinta "
+"raiteen keskilinjan yli.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:179
+#: ../../../../build/work/app/i18n/custmsg.h:559
msgid ""
-"We've just added a Defined Elevation point to the middle of the lower "
-"branch. Notice the addition on the Profile dialog.\n"
+"The Status bar displays the number of auto-connections that will be made and "
+"the maximum offset.\n"
msgstr ""
-"Olemme juuri lisänneet määritellyn korkeustason keskelle alempaa haaraa. "
-"Huomaa lisäys profiili-ikkunassa.\n"
+"Tilarivillä näytetään automaattisten liitosten lukumäärä, sekä suurin "
+"päätepisteen siirtymä.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:262
+#: ../../../../build/work/app/i18n/custmsg.h:560
msgid ""
-"We've selected sharp easements. The minimum radius curve we can use will be "
-"9.75\"\n"
+"XTrackCAD adjusts the turnout position for the best fit to minimize any "
+"connection offset\n"
msgstr ""
-"Olemme valinneet jyrkät kaarreloivennukset. Pienin käytettävissä oleva "
-"kaarresäde on 9,75 tuumaa.\n"
+"XTrackCAD sijoittelee vaihteen siten, että se istuu parhaiten ja siirtymät "
+"ovat mahdollisimman pienet.\n"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:519
-msgid "Weight"
-msgstr "Lihavoitu"
+#: ../../../../build/work/app/i18n/custmsg.h:561
+msgid "Note that placing the turnout splits the parallel track.\n"
+msgstr "Huomaa, kuinka vaihteen asettaminen pilkkoi rinnakkaisen raiteen.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:267
-msgid "Welcome to the XTrackCAD demonstration.\n"
-msgstr "Tervetuloa XTrackCADin havaintoesitykseen.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:562
+msgid "We have to delete the leftover piece by Selecting and Deleting it.\n"
+msgstr "Pilkkomisesta yli jäänyt raideosa täytyy poistaa.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:578
-msgid ""
-"When Selecting tracks, the connection between Selected and Unselected tracks "
-"is marked by a Red X. This indicates points where the connection between "
-"tracks will be broken if you Move or Rotate the Selected tracks."
-msgstr ""
-"Raideosia valittaessa, valitun ja valitsemattoman raideosan välinen liitos "
-"esitetään punaisella ristillä. Tämä kertoo ne pisteet, joissa raiteiden "
-"liitos irroitetaan valittuja raiteita siirrettäessä tai pyöritettäessä."
+#: ../../../../build/work/app/i18n/custmsg.h:563
+msgid "Repeat the process for the other tracks in the yard.\n"
+msgstr "Toista prosessi ratapihan muille raiteille.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:564
+msgid "For the last track we will join with a curve instead of a turnout.\n"
+msgstr "Viimeinen raide yhdistetään kaarteella vaihteen sijaan.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:565
+msgid "We can indicate the mainline by making the rails wider.\n"
+msgstr "Voimme kuvata päärataa paksummalla raiteella.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:585
+#: ../../../../build/work/app/i18n/custmsg.h:566
+msgid "First we select the mainline tracks...\n"
+msgstr "Ensin valitaan pääradan raiteet...\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:567
+msgid "And then select Medium Tracks from the Edit menu.\n"
+msgstr "Valitse sitten keskikokoiset raiteet Muokkaa-valikosta.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:568
+msgid "We can make the rail thicker by selecting Thick Tracks.\n"
+msgstr "Tai paksut raiteet.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:569
msgid ""
-"When creating stall tracks for a turntable, you usually want the the stall "
-"tracks to be spaced evenly.\n"
-"The \"Turntable Angle\" item on \"Options|Command Options\" dialog can be "
-"used specify the minimum angle between stall tracks."
+"Turntables are created by specifying the radius in a dialog box on the "
+"Status Bar. The radius in the dialog can be changed before proceeding.\n"
msgstr ""
-"Luodessasi kääntöpöytään liittyviä raiteita, haluat yleensä ainakin osan "
-"niistä olevan tasavälein.\n"
-"\"Kääntöpöydän kulma\" parametrilla asetetaan pienin kääntöpöytään "
-"liittyvien raiteiden välinen kulma. Tämä parametri löytyy \"Asetukset|"
-"Komennot\" valikosta."
+"Kääntöpöydät luodaan määrittelemällä ensiksi kääntöpöydän säde tilarivillä "
+"olevaan tekstikenttään.\n"
+
+#: ../../../../build/work/app/i18n/custmsg.h:570
+msgid "Then the turntable is dragged to its final location.\n"
+msgstr "Sitten kääntöpöytä raahataan paikoilleen.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:622
+#: ../../../../build/work/app/i18n/custmsg.h:571
msgid ""
-"When entering Distances and Lengths you can press the '=' key to redisplay "
-"the value in the default format."
+"XTrackCAD provides demonstrations on most of the program's features. The "
+"demos can be run by clicking on the Help menu on the Main window and then "
+"selecting Demos."
msgstr ""
+"XTrackCAD tarjoaa havaintoesityksiä (demoja) useimmista ohjelman "
+"ominaisuuksista. Demoja voidaan suorittaa valitsemalla pääikkunan Ohje-"
+"valikosta Demot."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:482
+#: ../../../../build/work/app/i18n/custmsg.h:572
msgid ""
-"When in <Describe> mode, selecting any object will print a description in "
-"the Status Bar and display a Dialog showing properties of the clicked-on "
-"object.\n"
+"The notation \"Menu|Item\" is used in the documentation (and the on-line "
+"demos and tips) to indicate the selection of a menu item.\n"
+"For example File|Open means to open the menu by clicking on File on the menu "
+"bar of the Main window and then selecting the Open item from that menu."
msgstr ""
-"Määrittely -tilassa minkä tahansa objektin valinta tulostaa sen kuvauksen "
-"tilariville sekä avaa ikkunan, jossa esitetään valitun kohteen "
-"ominaisuudet.\n"
+"Merkintätapa \"Valikko|Komennot\" on käytössä dokumentaatiossa, ohjeessa, "
+"demoissa ja vinkeissä. Se kuvaa kyseessä olevaa valikon toimintoa.\n"
+"Esimerkiksi Tiedosto|Avaa tarkoittaa, että päävalikosta on ensin avattava "
+"Tiedosto-valikko ja sieltä valittava Avaa-komento."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:576
+#: ../../../../build/work/app/i18n/custmsg.h:573
msgid ""
-"When installed, the default command is the Describe command. More "
-"experienced users will probably want to change this to the Select command. "
-"You can do this on the \"Options|Command Options\" dialog."
+"A number of example layouts are provided. These files are located in the "
+"'examples' directory where you installed XTrackCAD. The \"File|Open\" "
+"command will open that directory when first used."
msgstr ""
-"Asennuksen jälkeen hiiren oletuskomento on Määritä-komento. Kokeneemmat "
-"käyttäjät saattavat haluta muuttaa tämän Valitse-komennoksi. Se tapahtuu "
-"\"Asetukset|Komennot\" ikkunasta."
+"Tarjolla on useita esimerkkejä ratasuunnitelmista. Nämä tiedostot "
+"sijaitsevat 'examples' hakemistossa sen hakemiston alla, johon XTrackCAD on "
+"asennettu. \"Tiedosto|Avaa\" näyttää tämän hakemiston ensimmäisellä "
+"käyttökerralla."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:574
+#: ../../../../build/work/app/i18n/custmsg.h:574
msgid ""
"When installed, the program measures all units in inches. You can change "
"this on the \"Options|Preferences\" dialog by changing the Units item to "
@@ -10692,200 +11693,160 @@ msgstr ""
"\"Asetukset|Ominaisuudet\" ikkunasta muuttamalla yksiköt metrijärjestelmään "
"englantilaisen sijaan."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:605
+#: ../../../../build/work/app/i18n/custmsg.h:575
msgid ""
-"When moving or rotating tracks on slow machines or with a large number of "
-"tracks, you can improve performance by changing the way tracks are drawn "
-"while being moved.\n"
-"Shift-Right click will display a menu containing options to draw tracks "
-"normally, as simple lines or just draw end-points."
-msgstr ""
-
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:421
-msgid ""
-"When the left mouse button is released, the mouse cursor flashes and the "
-"hollow arrow is restored.\n"
+"You can change the overall size of your layout on the \"Options|Layout\" "
+"dialog."
msgstr ""
-"Kun hiiren vasen painike vapautetaan, osoitin välähtää ja se palautetaan "
-"läpinäkyväksi.\n"
+"Voit muuttaa ratasuunnitelmasi kokoa \"Asetukset|Ratasuunnitelma\" ikkunasta."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:418
+#: ../../../../build/work/app/i18n/custmsg.h:576
msgid ""
-"When the left mouse button would be pressed, the mouse cursor appears to "
-"flash and the hollow arrow is replaced by a solid red arrow. While the left "
-"button is pressed the mouse cursor will be a solid arrow.\n"
-msgstr ""
-"Osoittimen välähdys ja sen muuttuminen punaiseksi kuvaa hiiren vasemman "
-"painikkeen painamista. Koko sen ajan, kun hiiren painike on painettuna alas, "
-"osoitin esitetään punaisella nuolella.\n"
-
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:278
-msgid "When to label Turnout, Flextrack Lengths and Elevations"
+"When installed, the default command is the Describe command. More "
+"experienced users will probably want to change this to the Select command. "
+"You can do this on the \"Options|Command Options\" dialog."
msgstr ""
-"Milloin näytetään merkinnät. Loitonnettaessa tästä arvosta, merkinnät eivät "
-"enää näy."
+"Asennuksen jälkeen hiiren oletuskomento on Määritä-komento. Kokeneemmat "
+"käyttäjät saattavat haluta muuttaa tämän Valitse-komennoksi. Se tapahtuu "
+"\"Asetukset|Komennot\" ikkunasta."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:656
+#: ../../../../build/work/app/i18n/custmsg.h:577
msgid ""
-"When using the Rotate command, Shift-Right-Click displays a menu allowing "
-"you to rotate by specific amounts or to align the selected objects with "
-"another object."
+"Set your modeling scale on the \"Options|Layout\" dialog. This controls the "
+"Turnouts and Structures that are available, Easement values and track gauge."
msgstr ""
+"Mittakaava asetetaan \"Asetukset|Ratasuunnitelma\" ikkunasta. Tämä asetus "
+"määrää mitkä raideosat ja rakennukset ovat käytettävissä sekä "
+"kaarreloivennuksen arvot ja raideleveyden."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:481
+#: ../../../../build/work/app/i18n/custmsg.h:578
msgid ""
-"When we clicked on the <Describe> button, the current command was "
-"cancelled.\n"
+"When Selecting tracks, the connection between Selected and Unselected tracks "
+"is marked by a Red X. This indicates points where the connection between "
+"tracks will be broken if you Move or Rotate the Selected tracks."
msgstr ""
-"Klikkaamalla Määrittele -painiketta, sen hetkinen komento peruutettiin.\n"
+"Raideosia valittaessa, valitun ja valitsemattoman raideosan välinen liitos "
+"esitetään punaisella ristillä. Tämä kertoo ne pisteet, joissa raiteiden "
+"liitos irroitetaan valittuja raiteita siirrettäessä tai pyöritettäessä."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:342
+#: ../../../../build/work/app/i18n/custmsg.h:579
msgid ""
-"When you are satisfied with the position and orientation of the turnout "
-"press Space bar or the Return key on the keyboard to finish placing the "
-"turnout.\n"
+"You can change orientation of the pages on the Print command by moving or "
+"rotating the Print Grid.\n"
+"Shift-Left-Drag moves the grid and Shift-Right-Drag rotates the grid."
msgstr ""
-"Kun olet tyytyväinen raideosan asetteluun, paina Välilyönti tai Return "
-"viimeistelläksesi raideosan asettelun.\n"
+"Voit muuttaa tulostettavien sivujen asettelua siirtämällä tai pyörittämällä "
+"tulostusruudukkoa.\n"
+"Vaihto-näppäin ja hiiren vasen raahaus siirtää ruudukkoa ja vaihto-hiiren "
+"oikea pyörittää sitä."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:619
+#: ../../../../build/work/app/i18n/custmsg.h:580
msgid ""
-"When you create Benchwork you can move it below other objects by Selecting "
-"the Benchwork and use the Below command.\n"
-"Also, put Benchwork in a separate Layer so you can hide it if desired."
+"You can add track to any unconnected End-Point with the Modify command.\n"
+"Hold down the Shift key and click on the End-Point and drag away to create a "
+"new track segment attached to the End-Point.\n"
+"Repeat with the new End-Point to create flowing tracks."
msgstr ""
+"Voit lisätä reiteita mihin tahansa irtonaiseen päätepisteeseen Muokkaa "
+"komennolla.\n"
+"Pidä vaihto-näppäin painettuna ja raahaa hiiren oikealla päätepisteestä "
+"luodaksesi uuden raideosan päätepisteen jatkeeksi.\n"
+"Tee sama uudesta päätepisteestä luodaksesi vapaamuotoisia raiteita."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:404
+#: ../../../../build/work/app/i18n/custmsg.h:581
msgid ""
-"When you move selected tracks that are connected to unselected tracks, the "
-"tracks will be disconnected. These points are marked by a Red cross on the "
-"layout.\n"
+"You can create Curved tracks in four ways by dragging from:\n"
+" the 1st End-Point in the direction of the curve\n"
+" Center of the Curve to the 1st End-Point\n"
+" End-Point to the Center\n"
+" the 1st to 2nd End-Point\n"
+"Then drag on one of the Red arrows to create the final shape of the curve.\n"
+"\n"
+"You can click on the small button to the left of the Curve command button to "
+"change the method."
msgstr ""
-"Kun siirrät valittuja raiteita, jotka on liitetty valitsemattomiin "
-"raiteisiin, raiteet irrotetaan toisistaan. Nämä pisteet merkitään punaisilla "
-"risteillä.\n"
+"Voit luoda kaarevia raiteita neljällä tavalla raahaamalla:\n"
+" - 1. päätepisteestä kaarteen suuntaan\n"
+" - keskipisteestä kaarteen ensimmäiseen päätepisteeseen\n"
+" - päätepisteestä keskipisteeseen\n"
+" - ensimmäisestä toiseen päätepisteeseen\n"
+"Asettele sitten kaarre lopulliseen muotoonsa raahaamalla punaisista "
+"nuolista.\n"
+"\n"
+"Voit valita tavan Kaarre painikkeen oikealla puolella olevasta pienestä "
+"painikkeesta avautuvan valikon kautta."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:125
+#: ../../../../build/work/app/i18n/custmsg.h:582
msgid ""
-"When you place a note, the Note editor window is displayed which lets you "
-"enter the note.\n"
+"When creating a straight or a curved track by dragging from the 1st End "
+"Point, you can snap the new track to an existing open end point by holding "
+"down Shift while you click.\n"
+"The new track will be joined to the old when you create it."
msgstr ""
-"Kun lisäät ratasuunnitelmaan muistiinpanon, avataan editori jossa voit "
-"kirjoittaa muistiinpanon sisällön.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:348
+#: ../../../../build/work/app/i18n/custmsg.h:583
msgid ""
-"When you press Space or Return while the turnout is on a track, the track "
-"will be split and the new turnout attached automatically.\n"
+"Track Circles provide a quick way to see what arrangement of tracks will fit "
+"in your layout spaces. Create Circles with your typical radius and place "
+"them in corners and other locations where your main-line will make changes "
+"of direction. This will give you an overall idea of how your layout will "
+"look.\n"
+"\n"
+"You can create Circles by:\n"
+" using a fixed radius\n"
+" dragging from the Center to edge\n"
+" dragging from an edge to the Center\n"
+"You can click on the small button to the left of the Circle command button "
+"to change the method."
msgstr ""
-"Vaihteen ollessa olemassa olevan radan päällä, rata pilkotaan ja uusi vaihde "
-"liitetään automaattisesti.\n"
-
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:327
-msgid "When you release the mouse button the new parallel track is created.\n"
-msgstr "Uusi rinnakkainen raide luodaan kun vapautat hiiren painikkeen.\n"
-
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:287
-msgid "Whether the main layout is updated while dragging on the Map"
-msgstr "Päivitetäänkö pääikkunan näkymä kartassa valitun alueen mukaan"
-
-#: ../bin/cprint.c:131 ../bin/ctrain.c:174 ../bin/dcar.c:1972
-msgid "Width"
-msgstr "Leveys"
-
-#: ../bin/cstruct.c:433
-#, c-format
-msgid "Width %s"
-msgstr "Leveys %s"
-
-#: ../bin/drawgeom.c:331
-#, c-format
-msgid "Width = %s, Height = %s"
-msgstr "Leveys = %s, Korkeus = %s"
-
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:502
-msgid "Width of Roadbed"
-msgstr "Ratapenkan leveys"
-
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:501
-msgid "Width of Roadbed lines"
-msgstr "Ratapenkan viivan paksuus"
-
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:191
-msgid "Width of car body"
-msgstr "Rungon leveys"
-
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:291
-msgid "Width of the lines"
-msgstr "Viivojen paksuus"
-
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:151
-msgid "Window menu"
-msgstr "Ikkunoiden valinta"
-
-#: ../../../../build/xtrkcad/app/help/messages.h:142
-msgid "Write Audit File?"
-msgstr "Kirjoita tarkastustiedosto?"
-
-#: ../bin/dbitmap.c:120
-msgid "Writing BitMap to file"
-msgstr "Kirjoitetaan bitmap tiedostoon"
-
-#: ../bin/ctodesgn.c:268
-msgid "Wye Turnout"
-msgstr "Y-vaihde"
-
-#: ../bin/dease.c:72 ../bin/csnap.c:530
-msgid "X"
-msgstr "X"
-
-#: ../wlib/gtklib/psprint.c:1278
-msgid "X Font"
-msgstr "X kirjasin"
-
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:157
-msgid "X Position of cursor"
-msgstr "Kohdistimen X sijainti"
-
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:439
-msgid "X and Y position markers"
-msgstr "Kohdistimen X ja Y sijainnin markkerit"
-
-#: ../bin/misc.c:679
-msgid "XTrackCAD Font"
-msgstr "XTrackCAD kirjasin"
-
-#: ../wlib/gtklib/gtkhelp.c:871
-msgid "XTrackCAD Help"
-msgstr "XTrackCAD ohje"
+"Ympyräraiteet tarjoavat nopean tavan hahmottaa millainen raidejärjestely "
+"mahtuu suunniteltuun tilaan. Luo ympyräraiteita käyttäen aikomaasi "
+"kaarresädettä ja asettele niitä nurkkiin ja muihin paikkoihin, joissa "
+"pääraiteesi vaihtaa suuntaa. Tämä antaa yleiskuvan tulevan ratasi muodosta.\n"
+"\n"
+"Voit luoda ympyräraiteita:\n"
+" - Käyttämällä määrättyä sädettä.\n"
+" - Raahaamalla keskipisteestä pois päin.\n"
+" - Raahaamalla kehältä kohti keskipistettä.\n"
+"Voit valita tavan valikosta, joka avautuu Ympyrärata-painikkeen oikealta "
+"puolelta."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:148
+#: ../../../../build/work/app/i18n/custmsg.h:584
msgid ""
-"XTrackCAD adjusts the turnout position for the best fit to minimize any "
-"connection offset\n"
+"Easements (spiral transition curves) are used when track changes from "
+"straight to curved by gradually changing the radius. This improves "
+"operation and appearance.\n"
+"Easements are created with Joining or Extending Tracks.\n"
+"The Easement dialog is used to control easements."
msgstr ""
-"XTrackCAD sijoittelee vaihteen siten, että se istuu parhaiten ja siirtymät "
-"ovat mahdollisimman pienet.\n"
+"Kaarreloivennuksia käytetään radan muuttuessa suorasta kaarteeksi "
+"muuttamalla vaihdoskohdassa kaarresädettä asteittain. Tämä parantaa radan "
+"ajettavuutta ja ulkonäköä.\n"
+"Kaarreloivennukset luodaan yhdistämällä tai jatkamalla raiteita.\n"
+"Kaarreloivennus-ikkunasta asetellaan tarvittavat parametrit."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:463
+#: ../../../../build/work/app/i18n/custmsg.h:585
msgid ""
-"XTrackCAD can help find tracks that are curved too sharply or are too "
-"steep. These tracks are Exception tracks and are drawn in the Exception "
-"track color.\n"
+"\"Help|Recent Messages\" shows the last error and warning messages that were "
+"generated by the program. Also an explanation of each message is displayed."
msgstr ""
-"XTrackCAD auttaa löytämään raiteet, jotka ovat kaartuvat liian jyrkästi tai "
-"ovat liian jyrkkiä. Näitä kutsutaan erityisraiteiksi ja ne piirretään omalla "
-"värillään.\n"
+"\"Ohje|Viimeisimmät viestit\" näyttää tapahtuneet virheet ja varoitukset. "
+"Valitsemalla jonkin viesteistä saat tarkennetun kuvauksen viestistä."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:500
+#: ../../../../build/work/app/i18n/custmsg.h:586
msgid ""
-"XTrackCAD has computed the Elevation (2.34\") at this point based on the "
-"Elevation at the siding and a combination of the of the first Elevations.\n"
+"When creating stall tracks for a turntable, you usually want the the stall "
+"tracks to be spaced evenly.\n"
+"The \"Turntable Angle\" item on \"Options|Command Options\" dialog can be "
+"used specify the minimum angle between stall tracks."
msgstr ""
-"XTrackCAD on laskenut tälle pisteelle korkeustason aiemmin antamiemme "
-"korkeustasojen perusteella.\n"
+"Luodessasi kääntöpöytään liittyviä raiteita, haluat yleensä ainakin osan "
+"niistä olevan tasavälein.\n"
+"\"Kääntöpöydän kulma\" parametrilla asetetaan pienin kääntöpöytään "
+"liittyvien raiteiden välinen kulma. Tämä parametri löytyy \"Asetukset|"
+"Komennot\" valikosta."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:586
+#: ../../../../build/work/app/i18n/custmsg.h:587
msgid ""
"XTrackCAD periodically saves the current layout in a check point file. The "
"'Check Point' item on the 'Options|Preferences' dialog controls how often "
@@ -10900,660 +11861,756 @@ msgstr ""
"varmennustiedosto xtrkcad.ckp, joka sijaitsee XTrackCADin työhakemistossa, ."
"xtc tiedostoksi."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:571
+#: ../../../../build/work/app/i18n/custmsg.h:588
msgid ""
-"XTrackCAD provides demonstrations on most of the program's features. The "
-"demos can be run by clicking on the Help menu on the Main window and then "
-"selecting Demos."
+"The Parallel command is helpful to layout yards and sidings. If the "
+"Parallel track abuts with an existing track, it is automatically connected."
msgstr ""
-"XTrackCAD tarjoaa havaintoesityksiä (demoja) useimmista ohjelman "
-"ominaisuuksista. Demoja voidaan suorittaa valitsemalla pääikkunan Ohje-"
-"valikosta Demot."
+"Luo rinnakkainen raide -komento on avuksi tehtäessä ratapihoja ja "
+"sivuraiteita. Jos luotava rinnakkainen raide rajoittuu olemassa olevaan "
+"raiteeseen, ne yhdistetään automaattisesti."
-#: ../bin/cprint.c:133 ../bin/csnap.c:532
-msgid "Y"
-msgstr "Y"
+#: ../../../../build/work/app/i18n/custmsg.h:589
+msgid ""
+"You can use Shift-Drag in Select command to move and rotate selected "
+"tracks.\n"
+"Shift-Left-Drag moves tracks and Shift-Right-Drag rotates them.\n"
+"Control-Left-Drag can move labels."
+msgstr ""
+"Valitse-komennon ollessa käytössä voit siirtää ja pyörittää raiteita "
+"pitämällä vaihto-näppäin painettuna ja raahaamalla hiirellä. Vaihto + "
+"vasemmalla raahaus siirtää ja vaihto + oikealla raahaus pyörittää niitä.\n"
+"Control + vasemmalla raahaaminen siirtää merkintöjä."
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:158
-msgid "Y Position of cursor"
-msgstr "Kohdistimen Y sijainti"
+#: ../../../../build/work/app/i18n/custmsg.h:590
+msgid ""
+"You can move and rotate the Snap Grid to align with existing track or "
+"benchwork."
+msgstr ""
+"Voit siirtää ja pyörittää kohdistusruudukkoa halutessasi kohdistaa jonkin "
+"olemassa olevan raiteen, runkorakenteen tai pöydän reunan kanssa."
-#: ../bin/param.c:116
-msgid "Yellow"
-msgstr "Keltainen"
-
-#: ../wlib/gtklib/gtkfilsel.c:130 ../bin/cgroup.c:968 ../bin/ctodesgn.c:1509
-#: ../bin/ctodesgn.c:1988 ../bin/misc.c:1023 ../bin/misc.c:1028
-#: ../bin/misc.c:1093 ../bin/track.c:1275 ../bin/track.c:1372
-#: ../bin/track.c:1386 ../bin/ctrain.c:2027 ../bin/dcustmgm.c:136
-#: ../bin/dcar.c:3664 ../bin/dcar.c:3742 ../bin/dcar.c:3826 ../bin/dcar.c:3845
-#: ../bin/dcar.c:4175 ../bin/dcar.c:4590 ../bin/dbitmap.c:205
-#: ../bin/cdraw.c:79
-msgid "Yes"
-msgstr "Kyllä"
+#: ../../../../build/work/app/i18n/custmsg.h:591
+msgid ""
+"Use the Parts List command to measure track length.\n"
+"Select the tracks you want to measure and then click on the Parts List "
+"button. The report will list the total of length of the selected flex-"
+"track. You will have to add in the length of any Turnouts."
+msgstr ""
+"Käytä osaluetteloa mitataksesi radan pituuksia.\n"
+"Valitse mitattava rataosuus ja avaa sitten osaluettelo. Raportissa on "
+"laskettuna fleksi raiteen kokonaispituus valitulla rataosuudella. "
+"Palaraiteiden pituudet täytyy lisätä erikseen."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:248
-msgid "You also draw in various colors and line widths.\n"
-msgstr "Voit myös piirtää eri väreillä ja muuttaa viivan paksuutta.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:592
+msgid ""
+"The length of flex-track attached to each Turnout is displayed on layout "
+"near the end-points of the Turnouts.\n"
+"Make sure 'Lengths' option of the 'Label Enable' toggle button on the "
+"Display dialog is selected."
+msgstr ""
+"Kuhunkin palaraiteeseen liittyvän fleksiraiteen pituus näytetään "
+"ratasuunnitelmassa palaraiteiden päiden lähellä.\n"
+"Varmista että Asetukset|Näyttöasetukset ikkunassa on ruksittu kohta "
+"\"Pituudet\" näytettävien merkintöjen kohdalla."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:630
+#: ../../../../build/work/app/i18n/custmsg.h:593
msgid ""
-"You can Export your Car Inventory to a file in Comma-Separated-Value format "
-"which can be read by most spread-sheet programs."
+"The Profile command can be used to find the length of a continous section of "
+"track.\n"
+"Select the track at the beginning and end of the section. The total length "
+"of track will be displayed on the Profile window in the lower right corner.\n"
+"Note: the Profile selects the shortest path between the two selected tracks, "
+"which might not be the path you are interested in. In this case, select the "
+"first track and then select other tracks along the path."
msgstr ""
+"Profiili-komentoa voidaan käyttää selvitettäessä jonkin yhtenäisen "
+"raideosuuden pituus.\n"
+"Valitse halutun raideosuuden alku- ja loppupää, jolloin osuuden "
+"kokonaispituus näytetään profiilikäyrän vaaka-akselin oikeassa reunassa.\n"
+"Huom: Profiili-komento valitsee aina lyhyimmän reitin annettujen pisteiden "
+"välillä. Jos haluat itse valita toisen reitin, valitse ensin alkupiste ja "
+"etene sitten haluttua reittiä pitkin loppupisteeseen."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:173
+#: ../../../../build/work/app/i18n/custmsg.h:594
msgid ""
-"You can Ignore End-Points on the Path by using Shift-Right-Click to display "
-"the Profile Options popup menu and chosing Ignore.\n"
+"Layers can be used to contain different groups of tracks or other features. "
+"You might use one layer for the main-line, another of staging tracks and "
+"another of benchwork.\n"
+"You can give each layer a name (by using the Layer dialog). This name will "
+"be displayed as the Balloon Help for the corresponding Layer button, if you "
+"have Balloon Help enabled on the Display dialog."
msgstr ""
-"Voit hylätä reitillä olevia raiteiden liitoskohtia ponnahdusvalikosta, joka "
-"aukeaa painamalla vaihto-nnäppäintä ja klikkaamalla hiiren oikealla. Valitse "
-"\"Hylkää\".\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:335
+#: ../../../../build/work/app/i18n/custmsg.h:595
msgid ""
-"You can Left-Drag the hilighted area in the Map window to change the "
-"displayed portion of the layout.\n"
+"You can remove groups of buttons or the Hot Bar from the Main window to give "
+"you more room if you are not using some features. Also, the number of Layer "
+"buttons displayed is controlled by the Layers dialog."
msgstr ""
-"Raahaamalla hiiren vasemmalla painikkeella korostettua aluetta muuttaaksesi "
-"ratasuunnitelman näytettävän alueen.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:636
+#: ../../../../build/work/app/i18n/custmsg.h:596
msgid ""
-"You can add new track segments to a turnout definition or create a "
-"definition from individual tracks using the Group command."
+"The size of the Map window is controlled by the overall size of the room "
+"(specified on the Layout dialog) and the Map Scale (on the Display dialog). "
+"You can make the Map window larger (or smaller) by decreasing (or "
+"increasing) the Map Scale.\n"
+"XTrackCAD will prevent you from making the Map window too small or too large."
msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:580
+#: ../../../../build/work/app/i18n/custmsg.h:597
msgid ""
-"You can add track to any unconnected End-Point with the Modify command.\n"
-"Hold down the Shift key and click on the End-Point and drag away to create a "
-"new track segment attached to the End-Point.\n"
-"Repeat with the new End-Point to create flowing tracks."
+"You can unload parameter files you are not using by the Parameter Files "
+"dialog. This removes unused Turnout and Structure definitions from the Hot "
+"Bar and makes the program start faster."
msgstr ""
-"Voit lisätä reiteita mihin tahansa irtonaiseen päätepisteeseen Muokkaa "
-"komennolla.\n"
-"Pidä vaihto-näppäin painettuna ja raahaa hiiren oikealla päätepisteestä "
-"luodaksesi uuden raideosan päätepisteen jatkeeksi.\n"
-"Tee sama uudesta päätepisteestä luodaksesi vapaamuotoisia raiteita."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:279
-msgid "You can adjust the speed of the demonstration with the Speed control.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:598
+msgid ""
+"Right-Click on the Main window displays a menu list of commands as an "
+"alternative to pressing the buttons on the tool bar or using the menu "
+"accelerator keys."
msgstr ""
-"Voit säätää demojen suoritusnopeutta Nopeus -valintaluettelon avulla.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:336
+#: ../../../../build/work/app/i18n/custmsg.h:599
msgid ""
-"You can also Right-Drag on the Map window to set the scale and position of "
-"the Main window.\n"
+"Holding down the Shift key while you Right-Click will display options for "
+"the current command (if any)."
msgstr ""
-"Hiiren oikealla painikkeella raahaaminen puolestaan muuttaa näytettävän "
-"alueen skaalausta (kokoa).\n"
+"Jos pidät vaihto-näppäintä painettuna, kun klikkaat hiiren oikealla "
+"painilleella, saat aktiiviseen komentoon liittyvän ponnahdusvalikon, mikäli "
+"komentoon sellainen liittyy."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:306
-msgid "You can also draw them in different orientations.\n"
-msgstr "Voit myös piirtää ne eri asentoihin.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:600
+msgid ""
+"Right-Click on the Hot Bar displays a menu of the different groups of "
+"objects which you can use to jump to the group you are interested in.\n"
+"Pressing a numeric key (1-9 and 0) moves the Hot Bar to corresponding "
+"position (1 is the start, 5 is half way, 0 is the end)."
+msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:214
-msgid "You can also flip any number of objects.\n"
-msgstr "Voit myös peilata useita objekteja.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:601
+msgid ""
+"Right-Drag on the Map window sets the origin and scale of the Main window.\n"
+"The Main window will be centered on the spot where you started the Draw and "
+"how far you Drag will control how large an area you can see on the Main "
+"window."
+msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:474
+#: ../../../../build/work/app/i18n/custmsg.h:602
msgid ""
-"You can also join to and from circles. This will change the circles to "
-"curves.\n"
+"To refresh the Main window, press Control-L (hold down the 'Ctrl' key and "
+"then press the 'l' key)."
msgstr ""
-"Voit myös yhdistää alkaen ympyrästä ja päättyen ympyrään. Tämä muuttaa "
-"ympyrät kaarteiksi.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:407
+#: ../../../../build/work/app/i18n/custmsg.h:603
msgid ""
-"You can also popup the Command Options Menu by pressing Shift-Right-Click "
-"which includes options for setting the drawing method. These options are "
-"also available for the Move and Rotate Command Options Menu.\n"
+"The File menu contains a list of the last 5 layouts you were working on."
msgstr ""
-"Piirtotavan voi valita myös painamalla vaihto-näppäintä ja klikkaamalla "
-"hiiren oikealla painikkeella, jolloin avautuu komennon ponnahdusvalikko. "
-"Piirtotavan valinta on saatavilla Siirrä ja Pyöritä komentojen "
-"ponnahdusvalikoissa.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:623
+#: ../../../../build/work/app/i18n/custmsg.h:604
msgid ""
-"You can also press the 's' key to convert a Prototype measurement to a Scale "
-"measurement y dividing by the ratio for the current scale."
+"The Print command can optionally print lines representing the roadbed for "
+"all tracks. This is useful when printing full size (1:1) for cutting "
+"roadbed."
msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:341
+#: ../../../../build/work/app/i18n/custmsg.h:605
msgid ""
-"You can also use Shift-Right-Click to display a popup menu that lets you "
-"rotate the Turnout by specific angles.\n"
+"Pressing the 'Esc' key cancels the current command and invokes the default "
+"command, (which is either Describe or Select)."
msgstr ""
-"Vaihto + hiiren oikea avaa ponnahdusvalikon, josta voit pyörittää raideosaa "
-"tietyn kulman verran.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:579
+#: ../../../../build/work/app/i18n/custmsg.h:606
msgid ""
-"You can change orientation of the pages on the Print command by moving or "
-"rotating the Print Grid.\n"
-"Shift-Left-Drag moves the grid and Shift-Right-Drag rotates the grid."
+"When moving or rotating tracks on slow machines or with a large number of "
+"tracks, you can improve performance by changing the way tracks are drawn "
+"while being moved.\n"
+"Shift-Right click will display a menu containing options to draw tracks "
+"normally, as simple lines or just draw end-points."
msgstr ""
-"Voit muuttaa tulostettavien sivujen asettelua siirtämällä tai pyörittämällä "
-"tulostusruudukkoa.\n"
-"Vaihto-näppäin ja hiiren vasen raahaus siirtää ruudukkoa ja vaihto-hiiren "
-"oikea pyörittää sitä."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:469
+#: ../../../../build/work/app/i18n/custmsg.h:607
msgid ""
-"You can change the Exception color on the Colors dialog from the Options "
-"menu.\n"
-msgstr "Erityisraiteiden väritystä voi muuttaa Asetukset|Värit valikosta.\n"
+"The colors of different parts of the Main window can be changed with the "
+"Colors dialog. In particular, the Snap Grid color can be changed to make it "
+"more visible when printed."
+msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:486
-msgid "You can change the contents of Text...\n"
-msgstr "Voit muuttaa tekstin sisältöä...\n"
+#: ../../../../build/work/app/i18n/custmsg.h:608
+msgid ""
+"By default objects are drawn in their normal colors. Tracks will be drawn "
+"in Black. Objects can also be drawn in the color according to their Layer. "
+"The color of a Layer is displayed on the corresponding Layer button.\n"
+"The Display dialog 'Color Layers' item has separate toggles for Tracks and "
+"non-Tracks."
+msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:575
+#: ../../../../build/work/app/i18n/custmsg.h:609
msgid ""
-"You can change the overall size of your layout on the \"Options|Layout\" "
-"dialog."
+"Each Layer can be drawn or hidden by the 'Visible' toggle on the Layers "
+"dialog. "
msgstr ""
-"Voit muuttaa ratasuunnitelmasi kokoa \"Asetukset|Ratasuunnitelma\" ikkunasta."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:206
+#: ../../../../build/work/app/i18n/custmsg.h:610
msgid ""
-"You can change the radius of a Straight or Curved track that is connected at "
-"one End-Point by holding down the Shift key while dragging on it.\n"
+"Short cut Layer buttons can also be displayed on the tool bar for up to the "
+"first 20 layers.\n"
+"This buttons allow to Show or Hide the layers."
+msgstr ""
+
+#: ../../../../build/work/app/i18n/custmsg.h:611
+msgid "The name of the Layer is the Balloon Help for the Layer button."
msgstr ""
-"Voit muuttaa suoran tai kaarevan raiteen sädettä, mikäli se on toisesta "
-"päästä liitetty. Tämä tapahtuu pitämällä vaihto-näppäintä painettuna "
-"raahattaessa raiteen toisesta päästä hiiren vasemmalla painikkeella.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:334
+#: ../../../../build/work/app/i18n/custmsg.h:612
msgid ""
-"You can change what portion of the layout is shown by using the 'Map' window "
-"which shows a compressed version of the entire layout. A hilighted area of "
-"the 'Map' (in reverse video) shows what portion of the layout is displayed "
-"in the main drawing area.\n"
+"The playback speed of the Demos can be changed by using Speed drop down list "
+"on the Demo window."
msgstr ""
-"Kartta -ikkunan avulla voit valita mikä osa ratasuunnitelmaa näytetään. "
-"Kartta -ikkunassa esitetään piennennetty kuva koko ratasuunnitelmasta. "
-"Korostettu alue esittää pääikkunan piirtoalueella näytettävän alueen.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:291
+#: ../../../../build/work/app/i18n/custmsg.h:613
msgid ""
-"You can choose which to use by clicking on the small button to the left of "
-"<Curve> command button if the current Curve command is not the one you "
-"want.\n"
+"Many of the commands and dialogs can be invoked by special key combinations "
+"called Menu-Accelerators. These are listed on the Menus next to the command "
+"name. For example, Control-P will invoke the Print command."
msgstr ""
-"Tavan voi valita Kaarre-painikkeen oikealla puolella olevasta pienestä "
-"nuolesta avautuvan valikon kautta.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:278
-msgid "You can click on Quit to return to XTrackCAD at any time.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:614
+msgid ""
+"The Connect command is used to join Sectional track pieces that don't quite "
+"fit together.\n"
+"This command works by adding small gaps between other tracks to move the "
+"selected End-Points closer together."
msgstr ""
-"Voit painaa Lopeta -painiketta milloin tahansa palataksesi XTrackCADin "
-"perustilaan.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:559
-msgid "You can connect from any track to a turntable\n"
-msgstr "Voit yhdistää mistä tahansa raiteesta kääntöpöytään.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:615
+msgid ""
+"To copy a group of objects: Select the objects, press Control-C (or select "
+"Copy from the Edit menu), press Control-V (or select Paste from the Edit "
+"menu).\n"
+"The selected tracks will be copied to the layout and you can Move or Rotate "
+"them into position."
+msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:581
+#: ../../../../build/work/app/i18n/custmsg.h:616
msgid ""
-"You can create Curved tracks in four ways by dragging from:\n"
-" the 1st End-Point in the direction of the curve\n"
-" Center of the Curve to the 1st End-Point\n"
-" End-Point to the Center\n"
-" the 1st to 2nd End-Point\n"
-"Then drag on one of the Red arrows to create the final shape of the curve.\n"
-"\n"
-"You can click on the small button to the left of the Curve command button to "
-"change the method."
+"In the Rotate (or Select) commands you can press Shift-Right-Click to "
+"display the Rotate menu which allows you to rotate the selected objects by a "
+"specific angle."
msgstr ""
-"Voit luoda kaarevia raiteita neljällä tavalla raahaamalla:\n"
-" - 1. päätepisteestä kaarteen suuntaan\n"
-" - keskipisteestä kaarteen ensimmäiseen päätepisteeseen\n"
-" - päätepisteestä keskipisteeseen\n"
-" - ensimmäisestä toiseen päätepisteeseen\n"
-"Asettele sitten kaarre lopulliseen muotoonsa raahaamalla punaisista "
-"nuolista.\n"
-"\n"
-"Voit valita tavan Kaarre painikkeen oikealla puolella olevasta pienestä "
-"painikkeesta avautuvan valikon kautta."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:282
-msgid "You can do this by clicking and dragging on a corner of the window.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:617
+msgid ""
+"You can use the Move-To-Join option of the Join command (hold down the Shift "
+"key) to move a group of Selected tracks to attach with some unselected End-"
+"Point."
msgstr ""
-"Voit tehdä tämän klikkaamalla ja raahaamalla hiidella ikkunan reunoista tai "
-"nurkasta.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:563
-msgid "You can drag the connecting point all round the turntable.\n"
-msgstr "Voit raahata liitoskohtaa ympäti kääntöpöytää.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:618
+msgid ""
+"The Price List dialog (on the File Menu) is used to specify the prices of "
+"each type of Turnout, Sectional Track and Structure. Also, the length and "
+"price of flex-track pieces can be specified for each scale.\n"
+"This values will be used on the Parts List report to generate total cost of "
+"the selected objects."
+msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:302
-msgid "You can draw a variety of different types of benchwork:\n"
-msgstr "Voit piirtää eri tyyppisiä runkorakenteita:\n"
+#: ../../../../build/work/app/i18n/custmsg.h:619
+msgid ""
+"Areas of water can represented by a Polygon (use the Draw command) of the "
+"appropiate color.\n"
+"By using the Modify command, you can move, add or remove corners of the "
+"Polygon to fit the shape of the water.\n"
+"You use the Below command to place the Polygon below (or behind) other "
+"objects.\n"
+"\n"
+"You can also use a Polygon to represent aisles. "
+msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:653
+#: ../../../../build/work/app/i18n/custmsg.h:620
msgid ""
-"You can draw tracks with wider lines for rails. \n"
-"Select the tracks and use Medium or Thick Tracks on the Edit menu."
+"When you create Benchwork you can move it below other objects by Selecting "
+"the Benchwork and use the Below command.\n"
+"Also, put Benchwork in a separate Layer so you can hide it if desired."
msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:620
+#: ../../../../build/work/app/i18n/custmsg.h:621
msgid ""
"You can enter Distances and Lengths using any format regardless of the "
"Length Format on the Preferences dialog."
msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:621
+#: ../../../../build/work/app/i18n/custmsg.h:622
msgid ""
"You can enter Metric values when English is the default Units and vice versa."
msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:644
-msgid ""
-"You can export the selected tracks to a DXF file which can be read by most "
-"CAD programs."
-msgstr ""
-
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:91
+#: ../../../../build/work/app/i18n/custmsg.h:623
msgid ""
-"You can later Group this turnout with the straight segments to recreate the "
-"turnout definition. You can also add other track segments to turnout "
-"definitions.\n"
+"When entering Distances and Lengths you can press the '=' key to redisplay "
+"the value in the default format."
msgstr ""
-"Voit myöhemmin ryhmitellä tämän vaihteen suorien raideosien kanssa ja luoda "
-"vaihteen määrittelyn uudelleen. Voit myös lisätä muita raideosia vaihteiden "
-"määrittelyihin.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:589
+#: ../../../../build/work/app/i18n/custmsg.h:624
msgid ""
-"You can move and rotate the Snap Grid to align with existing track or "
-"benchwork."
+"You can also press the 's' key to convert a Prototype measurement to a Scale "
+"measurement y dividing by the ratio for the current scale."
msgstr ""
-"Voit siirtää ja pyörittää kohdistusruudukkoa halutessasi kohdistaa jonkin "
-"olemassa olevan raiteen, runkorakenteen tai pöydän reunan kanssa."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:161
-msgid "You can move or resize the Profile dialog now if you want.\n"
-msgstr "Voit siirtää Profiili-ikkunaa tai muuttaa sen kokoa jos haluat.\n"
-
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:276
+#: ../../../../build/work/app/i18n/custmsg.h:625
msgid ""
-"You can move the demo window now by dragging on the title bar at the top of "
-"the window. I suggest you move it to the top of your screen.\n"
+"The 'p' key will convert a Scale measurement to a Prototype measurement."
msgstr ""
-"Voit siirrellä demo-ikkunaa raahaamalla otsikkopalkista. Ehdotan, että "
-"siirrät demo-ikkunan näyttösi yläosaan.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:625
+#: ../../../../build/work/app/i18n/custmsg.h:626
msgid ""
"You can place cars on the layout using the Train Simulation command to check "
"clearance points, track to track separation and coupling."
msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:339
+#: ../../../../build/work/app/i18n/custmsg.h:627
msgid ""
-"You can place the turnout on a arbitrary position on the layout. Left-drag "
-"the turnout into place...\n"
+"Use the MoveTo button on the Custom Management dialog to move your custom "
+"Turnout, Structure and Car definitions to a .XTP parameter file."
msgstr ""
-"Aseta palaraide ratasuunnitelmaasi klikkaamalla. Raahaa se sitten hiiren "
-"vasemmalla painikkeella paikoilleen...\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:239
-msgid "You can print the design to check the dimensions before saving them.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:628
+msgid ""
+"If you are printing multiple pages on a continuous feed printer (such a Dot "
+"Matrix) you can change the Page Order if necessary to print pages out in "
+"proper order."
msgstr ""
-"Voit tulostaa suunnittelemasi vaihteen tarkastaaksesi sen mitat ennen "
-"tallentamista.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:594
+#: ../../../../build/work/app/i18n/custmsg.h:629
msgid ""
-"You can remove groups of buttons or the Hot Bar from the Main window to give "
-"you more room if you are not using some features. Also, the number of Layer "
-"buttons displayed is controlled by the Layers dialog."
+"On the Car Item and Car Part dialogs, you can enter custom values for "
+"Manufacturer, Part and Road by typing the new value directly into the Drop "
+"Down List."
msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:450
+#: ../../../../build/work/app/i18n/custmsg.h:630
msgid ""
-"You can remove these slight mis-alignments by tightening the tracks starting "
-"from a unconnected End-Point. Use Shift-Left-Click with the <Connect> "
-"command.\n"
+"On the Car Item dialog, you can change the Road, Number, Color and other "
+"values for a Car. This is useful if you repaint or renumber a car. \n"
+"You can also change the Coupler Mounting and Coupler Length if you change "
+"the couplers."
msgstr ""
-"Voit poistaa kohdistusten heiton tiukentamalla raideosat alkaen irrallisesta "
-"päätepisteestä. Käytä liitä-komentoa ja pidä vaihto-näppäintä painettuna kun "
-"klikkaat hiiren vasemmalla painikkeella.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:140
+#: ../../../../build/work/app/i18n/custmsg.h:631
msgid ""
-"You can resize and move the Turnout Selection dialog if it obscures the "
-"other windows.\n"
+"You can Export your Car Inventory to a file in Comma-Separated-Value format "
+"which can be read by most spread-sheet programs."
msgstr ""
-"Voit pienentää tai siirtää raideosien valintaikkunaa, jos se peittää muita "
-"ikkunoita.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:332
-msgid "You can see the entire layout in the Map window.\n"
-msgstr "Kartta -ikkunassa esitetään koko ratasuunnitelma.\n"
-
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:447
-msgid "You can see these slight mis-alignments.\n"
-msgstr "Voit nähdä hienoisen heiton raideosien kohdistuksessa.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:632
+msgid "Use the Train Odometer to measure distances along the track."
+msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:177
+#: ../../../../build/work/app/i18n/custmsg.h:633
msgid ""
-"You can set additional Defined Elevation points using the Profile Options "
-"popup menu. These points are added to the Profile if they are on the Path.\n"
+"Holding down the Shift key when clicking the Zoom In or Zoom Out button will "
+"zoom to a programmed Drawing Scale. \n"
+"Holding down the Shift and Control keys when clicking a Zoom button will set "
+"it's program Zoom to the current Drawing Scale."
msgstr ""
-"Ponnahtusvalikon avulla voit lisätä myös uusia määriteltyjä korkeustasoja. "
-"Nämä pisteet lisätään profiiliin, jos ne ovat profiilin reitillä.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:633
+#: ../../../../build/work/app/i18n/custmsg.h:634
msgid ""
"You can trim the ends of turnouts by holding down the Shift key when using "
"the Split command."
msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:596
+#: ../../../../build/work/app/i18n/custmsg.h:635
msgid ""
-"You can unload parameter files you are not using by the Parameter Files "
-"dialog. This removes unused Turnout and Structure definitions from the Hot "
-"Bar and makes the program start faster."
+"The Split command can be used to create Block Gaps at end points between two "
+"tracks. \n"
+"Either rail or both rails can be gapped, which are drawn as thick lines."
msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:588
+#: ../../../../build/work/app/i18n/custmsg.h:636
msgid ""
-"You can use Shift-Drag in Select command to move and rotate selected "
-"tracks.\n"
-"Shift-Left-Drag moves tracks and Shift-Right-Drag rotates them.\n"
-"Control-Left-Drag can move labels."
+"Trains will 'crash' if they hit another car when travelling faster than the "
+"'Max Coupling Speed' (on the Command Options dialog). \n"
+"They will also 'crash' if they hit the end of the track or an open "
+"turnout. \n"
+"Crashed trains must be manually moved back onto the track."
msgstr ""
-"Valitse-komennon ollessa käytössä voit siirtää ja pyörittää raiteita "
-"pitämällä vaihto-näppäin painettuna ja raahaamalla hiirellä. Vaihto + "
-"vasemmalla raahaus siirtää ja vaihto + oikealla raahaus pyörittää niitä.\n"
-"Control + vasemmalla raahaaminen siirtää merkintöjä."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:553
+#: ../../../../build/work/app/i18n/custmsg.h:637
msgid ""
-"You can use the <Describe> command to change the number of Turns or the "
-"Elevations at either end of the Helix. This will affect the Grade and "
-"Vertical Separation.\n"
+"You can add new track segments to a turnout definition or create a "
+"definition from individual tracks using the Group command."
msgstr ""
-"Voit käyttää määrittele-komentoa muuttaaksesi kierrosten lukumäärää tai "
-"korkeustasoja kummassa tahansa päässä helixiä. Tämä vaikuttaa nousukulmaan "
-"ja kerrosten väliseen tilaan.\n"
-
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:218
-msgid "You can use the <Describe> command to change their title.\n"
-msgstr "Voit käyttää määrittele-komentoa muuttaaksesi niiden otsikoita.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:519
-msgid "You can use the <Undo> command to undelete tracks.\n"
-msgstr "Voit käyttää Kumoa-toimintoa palauttaaksesi poistamasi raideosat.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:638
+msgid ""
+"The center point and radius of Curved and Circle tracks can optionally be "
+"drawn. \n"
+"This feature is toggled by using the Move Label command and doing a Shift-"
+"Left-Click on the track."
+msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:157
+#: ../../../../build/work/app/i18n/custmsg.h:639
msgid ""
-"You can use the Above and Below Commands to move lines and shapes to the "
-"front or back of the drawing.\n"
+"Turnout, Curved and Helix track labels can be individually turned on and off "
+"by doing a Shift-Right-Click on the track when using the Move Label command."
msgstr ""
-"Voit vaihtaa viivojen ja muotojen järjestystä viemällä niitä alimmaiseksi "
-"tai päällimmäiseksi.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:639
+#: ../../../../build/work/app/i18n/custmsg.h:640
msgid ""
"You can use the Describe command to change the font size of Text objects."
msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:640
+#: ../../../../build/work/app/i18n/custmsg.h:641
msgid ""
"You can use the Describe command to change the size of Dimension Line labels."
msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:616
+#: ../../../../build/work/app/i18n/custmsg.h:642
msgid ""
-"You can use the Move-To-Join option of the Join command (hold down the Shift "
-"key) to move a group of Selected tracks to attach with some unselected End-"
-"Point."
+"Normally Right-Click displays a popup menu of commands and Shift-Right-Click "
+"displays options for the current command. \n"
+"This can reversed by using the Right Click toggle button on the Command "
+"Options dialog."
msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:329
-msgid "You cannot create a track parallel to a turnout.\n"
-msgstr "Vaihteesta ei voi luoda rinnakkaista raidetta.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:643
+msgid ""
+"The Align item on the Rotate command options menu will let you Align "
+"selected objects with any unselected object. \n"
+"The selected objects are rotated so the first point is parallel to the "
+"second point you selected."
+msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:561
+#: ../../../../build/work/app/i18n/custmsg.h:644
msgid ""
-"You cannot place the connecting track too close to an existing stall track. "
-"How close you can get is controlled by the Turntable Angle on the Setup "
-"dialog.\n"
+"Print To Bitmap allows you to print the track center line. \n"
+"This is useful if you later print the bitmap full size as a template when "
+"laying track."
msgstr ""
-"Liitosraidetta ei voi yhdistää liian lähelle kääntöpöytään ennestään "
-"liittyvää raidetta. Tämä etäisyys, eli kääntöpöydän kulma, määritellään "
-"komentojen asetuksissa.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:527
-msgid "You cannot split turnouts (unless you hold down the Shift key).\n"
+#: ../../../../build/work/app/i18n/custmsg.h:645
+msgid ""
+"You can export the selected tracks to a DXF file which can be read by most "
+"CAD programs."
msgstr ""
-"Palaraiteita ja vaihteita ei voi pilkkoa, ellei vaihto-näppäintä pidetä "
-"samanaikaisesti painettuna.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:326
+#: ../../../../build/work/app/i18n/custmsg.h:646
msgid ""
-"You control which side the parallel track will be on by moving the cursor "
-"from one side of the track centerline to the other.\n"
+"Lengths and distances can be displayed in a variety of units and formats "
+"such as 1' 10 3/4\", 1ft 10.75in or 22.750. In Metric mode, distances can "
+"be displayed as millimeters, centimeters or meters. See the Length Format "
+"item on the Preferences dialog."
msgstr ""
-"Voit kontrolloida kummalle puolelle rinnakkainen raide luodaan siirtämällä "
-"hiiren osoitinta alkuperäisen raiteen puolelta toiselle.\n"
-#: ../../../../build/xtrkcad/app/help/messages.h:128
+#: ../../../../build/work/app/i18n/custmsg.h:647
msgid ""
-"You have changed values for this object.\n"
-"\n"
-"Are you sure you want to Close?"
+"Tracks that are too steep or curve too tightly are drawn in the Expection "
+"color (Purple by default). \n"
+"This helps to identify potential problem areas. \n"
+"The maximum grade and minimum radius are set on the Preferences dialog."
msgstr ""
-"Olet muuttanut tämän objektin arvoja.\n"
-"\n"
-"Haluatko varmasti sulkea?"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:170
+#: ../../../../build/work/app/i18n/custmsg.h:648
msgid ""
-"You will get an error message because there is no route to one of the ends "
-"of the existing Path.\n"
+"The Flip command produces a mirror-image of the selected tracks. \n"
+"If possible, right-hand turnouts are relabeled as left-hand turnouts (and "
+"vice versa)."
msgstr ""
-"Saat virheilmoituksen, koska valitun reitin päistä ei ole reittiä tähän "
-"pisteeseen.\n"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:459
+#: ../../../../build/work/app/i18n/custmsg.h:649
msgid ""
-"You will notice that the tracks do not line up exactly in one location.\n"
-msgstr "Huomaat, etteivät raiteet aivan kohtaa yhdessä kohdassa.\n"
+"Then Ungroup command will break turnouts and structures into individual "
+"track, line and shape segments. \n"
+"You can modify each segment and add new ones. \n"
+"Then use the Group command to update the definition."
+msgstr ""
+
+#: ../../../../build/work/app/i18n/custmsg.h:650
+msgid "Dimension lines show the distance between two points."
+msgstr ""
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:293
+#: ../../../../build/work/app/i18n/custmsg.h:651
msgid ""
-"You will see a straight track with a double ended Red arrow at the end.\n"
-msgstr "Näet suoran raiteen, jonka päässä on kaksisuuntainen punainen nuoli.\n"
+"A variety of Benchwork (rectangular, L-girder and T-girder) can be drawn. \n"
+"Use the Below command to move the Benchwork below the track for proper "
+"display."
+msgstr ""
+"Erilaisia runkorakenteita voidaan piirtää (suora, L-palkki ja T-palkki).\n"
+"Käytä \"alimmaiseksi\" komentoa siirtääksesi runkorakenteen radan ja "
+"maisemoinnin alapuolelle."
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:72
-msgid "You will see the updated image on the HotBar.\n"
-msgstr "Näet päivitetyn kuvan Hot Barissa.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:652
+msgid ""
+"The Turnout Designer dialogs allow you to specify the width of any attached "
+"roadbed. \n"
+"As well, the color and thickness of the lines used to represent the roadbed "
+"can be specified."
+msgstr ""
-#: ../bin/tcurve.c:339 ../bin/tcurve.c:341 ../bin/tease.c:498
-#: ../bin/tease.c:500 ../bin/compound.c:513 ../bin/compound.c:515
-#: ../bin/tstraigh.c:77 ../bin/tstraigh.c:79
-msgid "Z"
-msgstr "Z"
+#: ../../../../build/work/app/i18n/custmsg.h:653
+msgid ""
+"The Color dialog (on the Options menu) is used to change the color of "
+"different objects on the display. \n"
+"You can change the color of the Snap Grid and Borders, as well as Normal, "
+"Selected and Exception tracks."
+msgstr ""
-#: ../bin/misc.c:2186
-msgid "Zoom &In"
-msgstr "Lähennä"
+#: ../../../../build/work/app/i18n/custmsg.h:654
+msgid ""
+"You can draw tracks with wider lines for rails. \n"
+"Select the tracks and use Medium or Thick Tracks on the Edit menu."
+msgstr ""
-#: ../bin/misc.c:2188
-msgid "Zoom &Out"
-msgstr "Loitonna"
+#: ../../../../build/work/app/i18n/custmsg.h:655
+msgid ""
+"Many objects on the layout have labels: Turnouts/Helix/Curved Titles, Track "
+"Lenghts, End-Point Elevations, Track Elevations and Cars. \n"
+"You can turn these labels on or off with the Label Enable toggle buttons on "
+"the Display options dialog."
+msgstr ""
-#: ../bin/misc.c:1689 ../bin/misc.c:1720
-msgid "Zoom Buttons"
-msgstr "Zoom"
+#: ../../../../build/work/app/i18n/custmsg.h:656
+msgid ""
+"If you hold down the Control key when using the Rotate command, the rotation "
+"will be down in increments of 15°."
+msgstr ""
-#: ../bin/misc.c:2085 ../bin/misc.c:2086
-msgid "Zoom In"
-msgstr "Lähennä"
+#: ../../../../build/work/app/i18n/custmsg.h:657
+msgid ""
+"When using the Rotate command, Shift-Right-Click displays a menu allowing "
+"you to rotate by specific amounts or to align the selected objects with "
+"another object."
+msgstr ""
-#: ../bin/draw.c:1775
-#, c-format
-msgid "Zoom In Program Value %ld:1"
-msgstr "Lähennä arvoon %ld:1"
+#~ msgid ""
+#~ " exists\n"
+#~ "Do you want to overwrite it?"
+#~ msgstr ""
+#~ " on olemassa.\n"
+#~ "Haluatko korvata olemassa olevan tiedoston?"
-#: ../bin/misc.c:2087 ../bin/misc.c:2088
-msgid "Zoom Out"
-msgstr "Loitonna"
+#~ msgid "%s exists"
+#~ msgstr "%s on olemassa"
-#: ../bin/draw.c:1795
-#, c-format
-msgid "Zoom Out Program Value %ld:1"
-msgstr "Loitonna arvoon %ld:1"
+#~ msgid ": cannot open"
+#~ msgstr ": ei voida avata"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:131
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:143
-msgid "Zoom in"
-msgstr "Lähennä näkymää"
+#~ msgid "Abort Print"
+#~ msgstr "Keskeytä tulostus"
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:132
-#: ../../../../build/xtrkcad/app/bin/bllnhlp.c:144
-msgid "Zoom out"
-msgstr "Loitonna näkymää"
+#~ msgid "Add Margin"
+#~ msgstr "Lisää marginaali"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:99
-msgid "and Group the new definition.\n"
-msgstr "ja ryhmittele tämä uusi määrittely.\n"
+#~ msgid "Add Printer"
+#~ msgstr "Lisää tulostin"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:114
-msgid "and Group them.\n"
-msgstr "ja ryhmittele ne.\n"
+#~ msgid "Angle=%0.3f"
+#~ msgstr "Kulma=%0.3f"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:441
-msgid "and a straight track.\n"
-msgstr "ja suoraksi raideosaksi.\n"
+#~ msgid "Beige"
+#~ msgstr "Beige"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:137
-msgid "and change the track gauge as well.\n"
-msgstr "ja muutamme myös raideleveyden.\n"
+#~ msgid "Black"
+#~ msgstr "Musta"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:485
-msgid "and change the turnout Title.\n"
-msgstr "ja muuttakaamme sen otsikkoa.\n"
+#~ msgid "Blue"
+#~ msgstr "Sininen"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:512
-msgid "and create a Grade marker.\n"
-msgstr "ja luomme uuteen liitoskohtaan nousukulman merkinnän.\n"
+#~ msgid "Brown"
+#~ msgstr "Ruskea"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:509
-msgid "and create another Computed Elevation point.\n"
-msgstr "ja luo sen kohdalle toinen laskettu korkeustaso.\n"
+#~ msgid "Can not save New Margin definition"
+#~ msgstr "Uuden marginaalin määrittelyjen tallennus ei onnistu"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:487
-msgid "and its size.\n"
-msgstr "ja kokoa.\n"
+#~ msgid "Can not save New Printer definition"
+#~ msgstr "Uuden tulostimen määrittelyjen tallennus ei onnistu"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:184
-msgid "and reselect it.\n"
-msgstr "ja valitse se uudelleen.\n"
+#~ msgid ""
+#~ "Can't find standard San-Serif font.\n"
+#~ "Please choose a font"
+#~ msgstr ""
+#~ "San-Serif kirjasinta ei löydy.\n"
+#~ "Ole hyvä ja valitse kirjasin"
-#: ../../../../build/xtrkcad/app/i18n/custmsg.h:112
-msgid "and the the Angular Length.\n"
-msgstr "ja sitten kulma.\n"
+#~ msgid ""
+#~ "Can't find standard Serif font.\n"
+#~ "Please choose a font"
+#~ msgstr ""
+#~ "Serif kirjasinta ei löydy.\n"
+#~ "Ole hyvä ja valitse kirjasin"
-#: ../../../../build/xtrkcad/app/help/messages.h:143
-#, c-format
-msgid "checkTrackLength: Short track length = %0.3f"
-msgstr "Raideosan pituuden tarkistus: Pienin raideosan pituus = %0.3f"
+#~ msgid "Chocolate"
+#~ msgstr "Suklaa"
-#: ../../../../build/xtrkcad/app/help/messages.h:144
-#, c-format
-msgid "checkTrackLength: unknown type: %d"
-msgstr "Raideosan pituuden tarkistus: Tuntematon tyyppi: %d"
+#~ msgid "Command: "
+#~ msgstr "Komento: "
-#: ../../../../build/xtrkcad/app/help/messages.h:145
-#, c-format
-msgid "connectTracks: T%d[%d] T%d[%d] d=%0.3f a=%0.3f"
-msgstr ""
+#~ msgid "Creating %s"
+#~ msgstr "Luodaan %s"
-#: ../bin/dpricels.c:61
-msgid "costs"
-msgstr "maksaa"
+#~ msgid "Custom Update"
+#~ msgstr "Omat raideosat ja kalusto"
-#: ../../../../build/xtrkcad/app/help/messages.h:131
-#, c-format
-msgid "doDemo: bad number (%d)"
-msgstr "Demo: Virheellinen demon numero (%d)."
+#~ msgid "Dark Blue"
+#~ msgstr "Tummansininen"
-#: ../bin/chndldto.c:85
-msgid "frog"
-msgstr "Risteyskappale"
+#~ msgid "Dark Gray"
+#~ msgstr "Tummanharmaa"
-#: ../../../../build/xtrkcad/app/help/messages.h:111
-msgid "inv-pathEndTrk on Path."
-msgstr ""
+#~ msgid "Dark Green"
+#~ msgstr "Tummanvihreä"
-#: ../../../../build/xtrkcad/app/help/messages.h:112
-msgid "inv-pathStartTrk on Path"
-msgstr ""
+#~ msgid "Dark Red"
+#~ msgstr "Tummanpunainen"
-#: ../../../../build/xtrkcad/app/help/messages.h:147
-#, c-format
-msgid "joinTracks: invalid track type=%d"
-msgstr ""
+#~ msgid "Describe objects"
+#~ msgstr "Määrittele objekteja"
-#: ../bin/tease.c:505
-msgid "l0"
-msgstr "l0"
+#~ msgid "Draw"
+#~ msgstr "Piirto"
-#: ../bin/tease.c:506
-msgid "l1"
-msgstr "l1"
+#~ msgid "Enter a post-script font name for:"
+#~ msgstr "Syötä post-script kirjasimen nimi:"
-#: ../bin/doption.c:354
-msgid "load last layout"
-msgstr "Lataa edellinen ratasuunnitelma"
+#~ msgid "Enter both printer name and command"
+#~ msgstr "Syötä tulostimen nimi ja komento"
-#: ../../../../build/xtrkcad/app/help/messages.h:114
-msgid "pathEndTrk not on Path."
-msgstr ""
+#~ msgid "Enter printer name"
+#~ msgstr "Syötä tulostimen nimi"
-#: ../../../../build/xtrkcad/app/help/messages.h:115
-msgid "pathStartTrk not on Path."
-msgstr ""
+#~ msgid "Factor"
+#~ msgstr "Kerroin"
-#: ../bin/chndldto.c:151 ../bin/chndldto.c:176
-msgid "points"
-msgstr "Kielien päät"
+#~ msgid "File Name? "
+#~ msgstr "Tiedostonimi?"
-#: ../bin/fileio.c:668
-#, c-format
-msgid "putTitle: title too long: %s"
-msgstr "putTitle: Otsikko on liian pitkä: %s"
+#~ msgid "Font Alias"
+#~ msgstr "Kirjasinalias"
-#: ../../../../build/xtrkcad/app/help/messages.h:148
-#, c-format
-msgid "resolveIndex: T%d[%d]: T%d doesn\\\\'t exist"
-msgstr ""
+#~ msgid "Forest Green"
+#~ msgstr "Metsän vihreä"
-#: ../bin/cprint.c:140 ../bin/cjoin.c:415 ../bin/cjoin.c:863
-msgid "selected"
-msgstr "valittu"
+#~ msgid "Format"
+#~ msgstr "Muotoilu"
-#: ../bin/cturnout.c:917
-msgid "splitTurnout: can't find segment"
-msgstr "Pilko: Lohkoja ei löytynyt."
+#~ msgid "Gold"
+#~ msgstr "Kulta"
-#: ../bin/doption.c:354
-msgid "start with blank layout"
-msgstr "Uusi ratasuunnitelma"
+#~ msgid "Gray"
+#~ msgstr "Harmaa"
-#: ../bin/cjoin.c:415 ../bin/cjoin.c:863
-msgid "unselected"
-msgstr "valitsematon"
+#~ msgid "Green"
+#~ msgstr "Vihreä"
+
+#~ msgid "Lawn Green"
+#~ msgstr "Ruohonvihreä"
+
+#~ msgid "Light Gray"
+#~ msgstr "Vaaleanharmaa"
+
+#~ msgid "Live"
+#~ msgstr "Seuraa"
+
+#~ msgid "Name: "
+#~ msgstr "Nimi: "
+
+#~ msgid "No file name specified"
+#~ msgstr "Tiedostonimeä ei ole annettu"
+
+#~ msgid "No font selected"
+#~ msgstr "Kirjasinta ei valittu"
+
+#~ msgid "No fonts"
+#~ msgstr "Ei kirjasimia"
+
+#~ msgid "Now printing"
+#~ msgstr "Tulostetaan"
+
+#~ msgid "Now printing %s"
+#~ msgstr "Tulostetaan %s"
+
+#~ msgid "Orange"
+#~ msgstr "Oranssi"
+
+#~ msgid "Overwrite"
+#~ msgstr "Kirjoita päälle"
+
+#~ msgid "PS Font"
+#~ msgstr "PS kirjasin"
+
+#~ msgid "Page %d"
+#~ msgstr "Sivu %d"
+
+#~ msgid "Page 1"
+#~ msgstr "Sivu 1"
+
+#~ msgid "Paper Size"
+#~ msgstr "Paperin koko"
+
+#~ msgid "Pink"
+#~ msgstr "Vaaleanpunainen"
+
+#~ msgid "Place circle center"
+#~ msgstr "Aseta ympyrän keskipiste"
+
+#~ msgid "Print Test Page"
+#~ msgstr "Tulosta testisivu"
+
+#~ msgid "Print To File"
+#~ msgstr "Tulosta tiedostoon"
+
+#~ msgid "Print to file ..."
+#~ msgstr "Tulosta tiedostoon..."
+
+#~ msgid "Printer"
+#~ msgstr "Tulostin"
+
+#~ msgid "Printer Margin Test Page"
+#~ msgstr "Tulostimen marginaalien testisivu"
+
+#~ msgid "Printing"
+#~ msgstr "Tulostetaan"
+
+#~ msgid "Purple"
+#~ msgstr "Purppura"
+
+#~ msgid "Red"
+#~ msgstr "Punainen"
+
+#~ msgid "Specifies the check point frequency"
+#~ msgstr "Kuinka usein automaattinen varmennus suoritetaan"
+
+#~ msgid "Tan"
+#~ msgstr "Keltaisenruskea"
+
+#~ msgid "Tomato"
+#~ msgstr "Tomaatti"
+
+#~ msgid "Tracks with grades steeper than this are exceptional"
+#~ msgstr "Raiteet, joissa on jyrkempi nousukulma, käsitetään erityiraiteiksi"
+
+#~ msgid "Tracks with tighter radius than this are exceptional"
+#~ msgstr "Raiteet, joissa on pienempi kaarresäde, käsitetään erityiraiteiksi"
+
+#~ msgid "Violet"
+#~ msgstr "Violetti"
+
+#~ msgid "X Font"
+#~ msgstr "X kirjasin"
+
+#~ msgid "XTrackCAD Help"
+#~ msgstr "XTrackCAD ohje"
+
+#~ msgid "Yellow"
+#~ msgstr "Keltainen"
+
+#~ msgid "load last layout"
+#~ msgstr "Lataa edellinen ratasuunnitelma"
+
+#~ msgid "start with blank layout"
+#~ msgstr "Uusi ratasuunnitelma"
#~ msgid " DXF Files|*.dxf"
#~ msgstr " DXF tiedostot|*.dxf"
@@ -11607,10 +12664,6 @@ msgstr "valitsematon"
#~ msgstr "Sovellushakemiston haku ei onnistunut"
#, fuzzy
-#~ msgid "Cannot split %s track"
-#~ msgstr "Pilko raide"
-
-#, fuzzy
#~ msgid "Car Item"
#~ msgstr "Tuote"
@@ -11621,9 +12674,6 @@ msgstr "valitsematon"
#~ msgid "Copyright (c) 2007 Sillub Technology and XTrkCad Team"
#~ msgstr "Copyright (c) 2007 Sillub Technology ja XTrkCad Team"
-#~ msgid "Error"
-#~ msgstr "Virhe"
-
#, fuzzy
#~ msgid "Help - %s"
#~ msgstr "Ohje"
diff --git a/app/i18n/pt_BR.po b/app/i18n/pt_BR.po
index d7304ed..13f4bac 100644
--- a/app/i18n/pt_BR.po
+++ b/app/i18n/pt_BR.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xtrkcad 4.1.3a\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-04 05:37-0400\n"
+"POT-Creation-Date: 2017-11-05 13:40+0100\n"
"PO-Revision-Date: 2009-10-06 22:22-0500\n"
"Last-Translator: Daniel Spagnol <dspagnol@yahoo.com>\n"
"Language-Team: Brazilian Portuguese\n"
@@ -17,943 +17,1097 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: ../bin/cblock.c:99
-#: ../bin/cblock.c:134
-#: ../bin/compound.c:520
-#: ../bin/cswitchmotor.c:99
-#: ../bin/cswitchmotor.c:140
-#: ../bin/dlayer.c:318
+#: ../bin/cbezier.c:586
+#, fuzzy
+msgid "Select End-Point - Ctrl unlocks end-point"
+msgstr "Selecionar primeira extremidade a conectar"
+
+#: ../bin/cbezier.c:588 ../bin/ccornu.c:462 ../bin/celev.c:418
+msgid "Select End-Point"
+msgstr "Selecionar extremidade"
+
+#: ../bin/cbezier.c:609
+msgid "Not close enough to any valid, selectable point, reselect"
+msgstr ""
+
+#: ../bin/cbezier.c:615 ../bin/ccornu.c:485
+#, c-format
+msgid "Drag point %d to new location and release it"
+msgstr ""
+
+#: ../bin/cbezier.c:625 ../bin/cbezier.c:716 ../bin/cbezier.c:718
+msgid "Pick any circle to adjust it - Enter to confirm, ESC to abort"
+msgstr ""
+
+#: ../bin/cbezier.c:648 ../bin/cbezier.c:706
+msgid "Bezier Curve Invalid has identical end points Change End Point"
+msgstr ""
+
+#: ../bin/cbezier.c:651 ../bin/cbezier.c:709
+#, c-format
+msgid "Bezier Curve Invalid has %s Change End Point"
+msgstr ""
+
+#: ../bin/cbezier.c:654 ../bin/cbezier.c:712
+msgid "Bezier Curve Invalid has three co-incident points"
+msgstr ""
+
+#: ../bin/cbezier.c:656
+#, fuzzy
+msgid "Bezier is Straight Line"
+msgstr "Linha reta"
+
+#: ../bin/cbezier.c:658
+#, c-format
+msgid "Bezier %s : Min Radius=%s Length=%s fx=%0.3f fy=%0.3f cusp=%0.3f"
+msgstr ""
+
+#: ../bin/cbezier.c:662
+#, fuzzy, c-format
+msgid "Bezier %s : Min Radius=%s Length=%s"
+msgstr "Trecho curvo: Raio=%s Comprimento=%s"
+
+#: ../bin/cbezier.c:688
+#, fuzzy
+msgid "No unconnected End Point to lock to"
+msgstr "Selecionar segunda extremidade a conectar"
+
+#: ../bin/cbezier.c:714
+#, fuzzy
+msgid "Bezier Curve is Straight Line"
+msgstr "Cria uma linha reta"
+
+#: ../bin/cbezier.c:729 ../bin/cbezier.c:743
+msgid "Invalid Bezier Track - end points are identical"
+msgstr ""
+
+#: ../bin/cbezier.c:736
+#, c-format
+msgid "Invalid Bezier Curve has a %s - Adjust"
+msgstr ""
+
+#: ../bin/cbezier.c:740
+msgid "Invalid Bezier Curve has three coincident points - Adjust"
+msgstr ""
+
+#: ../bin/cbezier.c:749
+#, fuzzy
+msgid "Create Bezier"
+msgstr "Criar linhas"
+
+#: ../bin/cbezier.c:826
+#, fuzzy, c-format
+msgid "%s picked - now select a Point"
+msgstr "Clicar em uma extremidade não selecionada"
+
+#: ../bin/cbezier.c:852 ../bin/ccornu.c:802
+msgid "No changes made"
+msgstr ""
+
+#: ../bin/cbezier.c:856
+#, fuzzy
+msgid "Modify Bezier"
+msgstr "Modificar trecho"
+
+#: ../bin/cbezier.c:870
+msgid "Modify Bezier Complete - select another"
+msgstr ""
+
+#: ../bin/cbezier.c:875
+msgid "Modify Bezier Cancelled"
+msgstr ""
+
+#: ../bin/cbezier.c:964 ../bin/cbezier.c:1034
+#, fuzzy, c-format
+msgid "Place 1st end point of Bezier + Shift -> snap to %s end"
+msgstr "Posicionar 1ª extremidade do trecho reto"
+
+#: ../bin/cbezier.c:987
+msgid "Shift used, but no Unconnected Track End there"
+msgstr ""
+
+#: ../bin/cbezier.c:1000
+msgid "Shift used, but no Line End there"
+msgstr ""
+
+#: ../bin/cbezier.c:1011
+msgid "Drag end of first Control Arm"
+msgstr ""
+
+#: ../bin/cbezier.c:1019
+msgid "Drag end of second Control Arm"
+msgstr ""
+
+#: ../bin/cbezier.c:1038
+#, c-format
+msgid "Select other end of Bezier, +Shift -> snap to %s end"
+msgstr ""
+
+#: ../bin/cbezier.c:1073
+msgid "Control Arm 1 is too short, try again"
+msgstr ""
+
+#: ../bin/cbezier.c:1078
+#, c-format
+msgid "Select other end of Bezier, +Shift -> snaps to %s end"
+msgstr ""
+
+#: ../bin/cblock.c:105 ../bin/cblock.c:117 ../bin/cblock.c:160
+#: ../bin/ccontrol.c:167 ../bin/ccontrol.c:384 ../bin/compound.c:525
+#: ../bin/csensor.c:159 ../bin/csensor.c:356 ../bin/csignal.c:234
+#: ../bin/csignal.c:473 ../bin/csignal.c:484 ../bin/csignal.c:510
+#: ../bin/cswitchmotor.c:86 ../bin/cswitchmotor.c:105
+#: ../bin/cswitchmotor.c:216 ../bin/dcontmgm.c:91 ../bin/dlayer.c:445
msgid "Name"
msgstr "Nome"
-#: ../bin/cblock.c:100
-#: ../bin/cblock.c:135
+#: ../bin/cblock.c:106 ../bin/cblock.c:118 ../bin/cblock.c:161
+#: ../bin/csensor.c:161 ../bin/csensor.c:362 ../bin/csignal.c:473
+#: ../bin/csignal.c:512
msgid "Script"
msgstr "Script"
-#: ../bin/cblock.c:136
-#: ../bin/cdraw.c:188
-#: ../bin/ctodesgn.c:129
-#: ../bin/ctodesgn.c:130
-#: ../bin/ctodesgn.c:131
-#: ../bin/ctodesgn.c:180
-#: ../bin/ctodesgn.c:183
-#: ../bin/ctodesgn.c:203
-#: ../bin/ctodesgn.c:208
-#: ../bin/ctodesgn.c:241
-#: ../bin/ctodesgn.c:246
-#: ../bin/ctodesgn.c:278
-#: ../bin/ctodesgn.c:281
-#: ../bin/ctodesgn.c:284
-#: ../bin/ctodesgn.c:319
-#: ../bin/ctodesgn.c:321
-#: ../bin/ctodesgn.c:339
-#: ../bin/ctodesgn.c:341
-#: ../bin/ctodesgn.c:360
-#: ../bin/ctodesgn.c:362
-#: ../bin/ctodesgn.c:381
-#: ../bin/ctodesgn.c:401
-#: ../bin/ctodesgn.c:421
-#: ../bin/ctodesgn.c:441
-#: ../bin/ctodesgn.c:479
-#: ../bin/ctodesgn.c:498
-#: ../bin/ctodesgn.c:499
-#: ../bin/ctrain.c:173
-#: ../bin/tcurve.c:348
-#: ../bin/tstraigh.c:80
+#: ../bin/cblock.c:119
+#, fuzzy
+msgid "Segments"
+msgstr "No. de segmentos"
+
+#: ../bin/cblock.c:162 ../bin/cdraw.c:219 ../bin/ctodesgn.c:137
+#: ../bin/ctodesgn.c:138 ../bin/ctodesgn.c:139 ../bin/ctodesgn.c:188
+#: ../bin/ctodesgn.c:191 ../bin/ctodesgn.c:211 ../bin/ctodesgn.c:216
+#: ../bin/ctodesgn.c:249 ../bin/ctodesgn.c:254 ../bin/ctodesgn.c:286
+#: ../bin/ctodesgn.c:289 ../bin/ctodesgn.c:292 ../bin/ctodesgn.c:327
+#: ../bin/ctodesgn.c:329 ../bin/ctodesgn.c:347 ../bin/ctodesgn.c:349
+#: ../bin/ctodesgn.c:368 ../bin/ctodesgn.c:370 ../bin/ctodesgn.c:389
+#: ../bin/ctodesgn.c:409 ../bin/ctodesgn.c:429 ../bin/ctodesgn.c:449
+#: ../bin/ctodesgn.c:487 ../bin/ctodesgn.c:506 ../bin/ctodesgn.c:507
+#: ../bin/ctrain.c:184 ../bin/tbezier.c:240 ../bin/tcornu.c:290
+#: ../bin/tcurve.c:356 ../bin/tstraigh.c:89
msgid "Length"
msgstr "Comprimento"
-#: ../bin/cblock.c:137
-#: ../bin/cdraw.c:184
-#: ../bin/compound.c:512
-#: ../bin/tcurve.c:340
-#: ../bin/tease.c:497
-#: ../bin/tstraigh.c:76
+#: ../bin/cblock.c:163 ../bin/cdraw.c:215 ../bin/compound.c:517
+#: ../bin/tbezier.c:231 ../bin/tcornu.c:277 ../bin/tcurve.c:348
+#: ../bin/tease.c:503 ../bin/tstraigh.c:85
msgid "End Pt 1: X"
msgstr "Extremidade 1: X"
-#: ../bin/cblock.c:138
-#: ../bin/cdraw.c:185
-#: ../bin/compound.c:514
-#: ../bin/tcurve.c:342
-#: ../bin/tease.c:499
-#: ../bin/tstraigh.c:78
+#: ../bin/cblock.c:164 ../bin/cdraw.c:216 ../bin/compound.c:519
+#: ../bin/tbezier.c:236 ../bin/tcornu.c:282 ../bin/tcurve.c:350
+#: ../bin/tease.c:505 ../bin/tstraigh.c:87
msgid "End Pt 2: X"
msgstr "Extremidade 2: X"
-#: ../bin/cblock.c:163
-msgid "Change Block"
+#: ../bin/cblock.c:189
+#, fuzzy
+msgid "Change block"
msgstr "Mudar Bloco"
-#: ../bin/cblock.c:208
-#: ../bin/compound.c:686
-#: ../bin/cswitchmotor.c:222
+#: ../bin/cblock.c:240 ../bin/compound.c:694 ../bin/cswitchmotor.c:299
#, c-format
msgid "(%d): Layer=%d %s"
msgstr "(%d): Camada=%d %s"
-#: ../bin/cblock.c:228
-#: ../bin/cblock.c:643
+#: ../bin/cblock.c:261 ../bin/cblock.c:910
msgid "Block"
msgstr "Bloco"
-#: ../bin/cblock.c:444
-#: ../bin/cblock.c:463
-#: ../bin/cblock.c:471
-#: ../bin/cblock.c:527
-#: ../bin/cdraw.c:75
-#: ../bin/cdraw.c:862
-#: ../bin/cgroup.c:962
-#: ../bin/cgroup.c:1009
-#: ../bin/cgroup.c:1024
-#: ../bin/cgroup.c:1063
-#: ../bin/cgroup.c:1089
-#: ../bin/cgroup.c:1148
-#: ../bin/cgroup.c:1592
-#: ../bin/cnote.c:96
-#: ../bin/cprint.c:520
-#: ../bin/cprint.c:945
-#: ../bin/cpull.c:499
-#: ../bin/cpull.c:514
-#: ../bin/cpull.c:516
-#: ../bin/cpull.c:518
-#: ../bin/cselect.c:670
-#: ../bin/cselect.c:767
-#: ../bin/cselect.c:1241
-#: ../bin/csnap.c:577
-#: ../bin/csnap.c:710
-#: ../bin/cstruct.c:759
-#: ../bin/cstruct.c:768
-#: ../bin/cstruct.c:870
-#: ../bin/cswitchmotor.c:357
-#: ../bin/cswitchmotor.c:383
-#: ../bin/ctext.c:152
-#: ../bin/ctodesgn.c:150
-#: ../bin/ctodesgn.c:1040
-#: ../bin/ctodesgn.c:1090
-#: ../bin/ctodesgn.c:1203
-#: ../bin/ctodesgn.c:1505
-#: ../bin/ctrain.c:2546
-#: ../bin/cturnout.c:2380
-#: ../bin/cturnout.c:2507
-#: ../bin/cundo.c:150
-#: ../bin/cundo.c:154
-#: ../bin/dbitmap.c:65
-#: ../bin/dbitmap.c:122
-#: ../bin/dbitmap.c:200
-#: ../bin/dbitmap.c:235
-#: ../bin/dcar.c:3528
-#: ../bin/dcar.c:3712
-#: ../bin/dcar.c:3716
-#: ../bin/dcar.c:3720
-#: ../bin/dcar.c:3725
-#: ../bin/dcar.c:4039
-#: ../bin/dcar.c:4150
-#: ../bin/dcar.c:4528
-#: ../bin/dcmpnd.c:390
-#: ../bin/dcmpnd.c:401
-#: ../bin/dcmpnd.c:535
-#: ../bin/dcustmgm.c:186
-#: ../bin/dcustmgm.c:192
-#: ../bin/dcustmgm.c:201
-#: ../bin/dcustmgm.c:217
-#: ../bin/dease.c:220
-#: ../bin/dlayer.c:199
-#: ../bin/dlayer.c:216
-#: ../bin/dlayer.c:656
-#: ../bin/dlayer.c:661
-#: ../bin/doption.c:150
-#: ../bin/doption.c:250
-#: ../bin/doption.c:330
-#: ../bin/doption.c:479
-#: ../bin/doption.c:490
-#: ../bin/doption.c:556
-#: ../bin/dprmfile.c:87
-#: ../bin/dprmfile.c:101
-#: ../bin/dprmfile.c:114
-#: ../bin/dprmfile.c:156
-#: ../bin/dprmfile.c:431
-#: ../bin/draw.c:2220
-#: ../bin/fileio.c:599
-#: ../bin/fileio.c:668
-#: ../bin/fileio.c:779
-#: ../bin/fileio.c:781
-#: ../bin/fileio.c:786
-#: ../bin/fileio.c:946
-#: ../bin/macro.c:932
-#: ../bin/macro.c:936
-#: ../bin/macro.c:1013
-#: ../bin/macro.c:1119
-#: ../bin/macro.c:1347
-#: ../bin/macro.c:1363
-#: ../bin/misc.c:300
-#: ../bin/misc.c:350
-#: ../bin/misc.c:1685
-#: ../bin/misc.c:1819
-#: ../bin/misc.c:1883
-#: ../bin/misc.c:2441
-#: ../bin/misc.c:2451
-#: ../bin/misc.c:2471
-#: ../bin/misc.c:2474
-#: ../bin/misc2.c:413
-#: ../bin/param.c:1800
-#: ../bin/param.c:1924
-#: ../bin/param.c:1927
-#: ../bin/param.c:2049
-#: ../bin/param.c:2055
-#: ../bin/smalldlg.c:91
-#: ../bin/smalldlg.c:221
-#: ../bin/tease.c:1034
-#: ../bin/track.c:1276
-#: ../wlib/gtklib/CVS/Base/psprint.c:829
-#: ../wlib/gtklib/CVS/Base/psprint.c:840
-#: ../wlib/gtklib/CVS/Base/psprint.c:853
-#: ../wlib/gtklib/CVS/Base/psprint.c:1088
-#: ../wlib/gtklib/CVS/Base/psprint.c:1094
-#: ../wlib/gtklib/CVS/Base/psprint.c:1116
-#: ../wlib/gtklib/CVS/Base/psprint.c:1122
-#: ../wlib/gtklib/CVS/Base/psprint.c:1283
-#: ../wlib/gtklib/CVS/Base/psprint.c:1306
-#: ../wlib/gtklib/CVS/Base/wpref.c:121
-#: ../wlib/gtklib/psprint.c:829
-#: ../wlib/gtklib/psprint.c:840
-#: ../wlib/gtklib/psprint.c:853
-#: ../wlib/gtklib/psprint.c:1088
-#: ../wlib/gtklib/psprint.c:1094
-#: ../wlib/gtklib/psprint.c:1116
-#: ../wlib/gtklib/psprint.c:1122
-#: ../wlib/gtklib/psprint.c:1283
-#: ../wlib/gtklib/psprint.c:1306
-#: ../wlib/gtklib/wpref.c:121
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:514
+#: ../bin/cblock.c:425
+#, c-format
+msgid "resolveBlockTrack: T%d[%d]: T%d doesn't exist"
+msgstr ""
+
+#: ../bin/cblock.c:425 ../bin/cswitchmotor.c:395 ../bin/dbench.c:147
+#: ../bin/dcar.c:4234 ../bin/dcar.c:4418 ../bin/dcar.c:4428 ../bin/dcar.c:4476
+#: ../bin/dcar.c:4483 ../bin/dcar.c:4501 ../bin/dcar.c:4514 ../bin/dcar.c:4519
+#: ../bin/dcar.c:4548 ../bin/dcar.c:4710 ../bin/dxfoutput.c:189
+#: ../bin/fileio.c:236 ../bin/fileio.c:541 ../bin/fileio.c:656
+#: ../bin/fileio.c:753 ../bin/fileio.c:944 ../bin/fileio.c:1212
+#: ../bin/fileio.c:1262 ../bin/fileio.c:1308 ../bin/macro.c:174
+#: ../bin/macro.c:838 ../bin/macro.c:854 ../bin/macro.c:1157
+#: ../bin/param.c:1947 ../bin/track.c:986 ../bin/track.c:1360
+#: ../bin/track.c:1651 ../bin/track.c:1655 ../bin/track.c:1675
+#: ../bin/track.c:1737 ../wlib/gtklib/wpref.c:248 ../wlib/gtklib/wpref.c:255
+msgid "Continue"
+msgstr "Continuar"
+
+#: ../bin/cblock.c:502 ../bin/cblock.c:718
+msgid "Block must have a name!"
+msgstr ""
+
+#: ../bin/cblock.c:502 ../bin/cblock.c:522 ../bin/cblock.c:530
+#: ../bin/cblock.c:589 ../bin/cblock.c:706 ../bin/cblock.c:718
+#: ../bin/cblock.c:755 ../bin/ccontrol.c:445 ../bin/cdraw.c:103
+#: ../bin/cdraw.c:909 ../bin/cgroup.c:982 ../bin/cgroup.c:1035
+#: ../bin/cgroup.c:1050 ../bin/cgroup.c:1089 ../bin/cgroup.c:1115
+#: ../bin/cgroup.c:1174 ../bin/cgroup.c:1618 ../bin/cnote.c:100
+#: ../bin/cprint.c:490 ../bin/cprint.c:916 ../bin/cpull.c:497
+#: ../bin/cpull.c:512 ../bin/cpull.c:514 ../bin/cpull.c:516
+#: ../bin/cselect.c:677 ../bin/cselect.c:774 ../bin/cselect.c:1299
+#: ../bin/csensor.c:411 ../bin/csignal.c:641 ../bin/csignal.c:709
+#: ../bin/csnap.c:584 ../bin/csnap.c:717 ../bin/cstruct.c:769
+#: ../bin/cstruct.c:778 ../bin/cstruct.c:880 ../bin/cswitchmotor.c:462
+#: ../bin/cswitchmotor.c:491 ../bin/cswitchmotor.c:625
+#: ../bin/cswitchmotor.c:656 ../bin/ctext.c:179 ../bin/ctodesgn.c:158
+#: ../bin/ctodesgn.c:1048 ../bin/ctodesgn.c:1098 ../bin/ctodesgn.c:1211
+#: ../bin/ctodesgn.c:1513 ../bin/cturnout.c:2410 ../bin/cturnout.c:2537
+#: ../bin/cundo.c:161 ../bin/cundo.c:166 ../bin/dbitmap.c:68
+#: ../bin/dbitmap.c:125 ../bin/dbitmap.c:203 ../bin/dbitmap.c:238
+#: ../bin/dcar.c:3536 ../bin/dcar.c:3720 ../bin/dcar.c:3724 ../bin/dcar.c:3728
+#: ../bin/dcar.c:3733 ../bin/dcar.c:4047 ../bin/dcar.c:4158 ../bin/dcar.c:4538
+#: ../bin/dcmpnd.c:393 ../bin/dcmpnd.c:404 ../bin/dcmpnd.c:536
+#: ../bin/dcustmgm.c:194 ../bin/dcustmgm.c:200 ../bin/dcustmgm.c:209
+#: ../bin/dcustmgm.c:225 ../bin/dease.c:230 ../bin/dlayer.c:206
+#: ../bin/dlayer.c:228 ../bin/dlayer.c:798 ../bin/dlayer.c:804
+#: ../bin/doption.c:164 ../bin/doption.c:244 ../bin/doption.c:398
+#: ../bin/doption.c:410 ../bin/doption.c:476 ../bin/dprmfile.c:91
+#: ../bin/dprmfile.c:105 ../bin/dprmfile.c:119 ../bin/dprmfile.c:165
+#: ../bin/dprmfile.c:533 ../bin/draw.c:2278 ../bin/fileio.c:610
+#: ../bin/fileio.c:678 ../bin/fileio.c:793 ../bin/fileio.c:795
+#: ../bin/fileio.c:800 ../bin/fileio.c:964 ../bin/layout.c:312
+#: ../bin/macro.c:939 ../bin/macro.c:943 ../bin/macro.c:1020
+#: ../bin/macro.c:1126 ../bin/macro.c:1354 ../bin/macro.c:1370
+#: ../bin/misc.c:312 ../bin/misc.c:362 ../bin/misc.c:1634 ../bin/misc.c:1764
+#: ../bin/misc.c:1828 ../bin/misc.c:2404 ../bin/misc.c:2414 ../bin/misc.c:2434
+#: ../bin/misc.c:2437 ../bin/misc2.c:457 ../bin/param.c:1710
+#: ../bin/param.c:1828 ../bin/param.c:1831 ../bin/param.c:1954
+#: ../bin/param.c:1960 ../bin/smalldlg.c:89 ../bin/smalldlg.c:220
+#: ../bin/tease.c:1044 ../bin/track.c:1374 ../wlib/gtklib/wpref.c:122
+#: ../../../../build/work/app/bin/bllnhlp.c:541
msgid "Ok"
msgstr "Ok"
-#: ../bin/cblock.c:471
+#: ../bin/cblock.c:530
msgid "Block is discontigious!"
msgstr "Bloco não contínuo!"
-#: ../bin/cblock.c:476
-#: ../bin/cblock.c:527
-#: ../bin/cblock.c:644
-msgid "Create Block"
+#: ../bin/cblock.c:535
+#, fuzzy
+msgid "Create block"
msgstr "Criar Bloco"
-#: ../bin/cblock.c:509
+#: ../bin/cblock.c:571
msgid "Non track object skipped!"
msgstr "Objeto não trilho Ignorado!"
-#: ../bin/cblock.c:513
-msgid "Selected Track is already in a block, skipped!"
+#: ../bin/cblock.c:575
+#, fuzzy
+msgid "Selected track is already in a block, skipped!"
msgstr "Trilho selecionado já está pertence a um bloco, descartado!"
-#: ../bin/cblock.c:556
-#: ../bin/cblock.c:588
+#: ../bin/cblock.c:589
+msgid "Create Block"
+msgstr "Criar Bloco"
+
+#: ../bin/cblock.c:619 ../bin/cblock.c:651
msgid "Select a track"
msgstr "Selecionar um trilho"
-#: ../bin/cblock.c:565
-#: ../bin/cblock.c:596
+#: ../bin/cblock.c:628 ../bin/cblock.c:659
msgid "Not a block!"
msgstr "Isto não é um bloco!"
-#: ../bin/cblock.c:601
+#: ../bin/cblock.c:664
#, c-format
msgid "Really delete block %s?"
msgstr "Deseja realmente eliminar bloco %s?"
-#: ../bin/cblock.c:601
-#: ../bin/cdraw.c:79
-#: ../bin/cgroup.c:968
-#: ../bin/cswitchmotor.c:472
-#: ../bin/ctodesgn.c:1513
-#: ../bin/ctodesgn.c:1992
-#: ../bin/ctrain.c:2043
-#: ../bin/dbitmap.c:205
-#: ../bin/dcar.c:3664
-#: ../bin/dcar.c:3742
-#: ../bin/dcar.c:3826
-#: ../bin/dcar.c:3845
-#: ../bin/dcar.c:4175
-#: ../bin/dcar.c:4590
-#: ../bin/dcustmgm.c:136
-#: ../bin/misc.c:1026
-#: ../bin/misc.c:1031
-#: ../bin/misc.c:1096
-#: ../bin/track.c:1278
-#: ../bin/track.c:1375
-#: ../bin/track.c:1389
-#: ../wlib/gtklib/CVS/Base/gtkfilsel.c:130
-#: ../wlib/gtklib/gtkfilsel.c:130
+#: ../bin/cblock.c:664 ../bin/cdraw.c:107 ../bin/cgroup.c:988
+#: ../bin/csignal.c:687 ../bin/cswitchmotor.c:581 ../bin/ctodesgn.c:1521
+#: ../bin/ctodesgn.c:2000 ../bin/ctrain.c:2425 ../bin/dbitmap.c:208
+#: ../bin/dcar.c:3672 ../bin/dcar.c:3750 ../bin/dcar.c:3834 ../bin/dcar.c:3853
+#: ../bin/dcar.c:4183 ../bin/dcar.c:4600 ../bin/dcontmgm.c:173
+#: ../bin/dcustmgm.c:141 ../bin/misc.c:1043 ../bin/misc.c:1048
+#: ../bin/misc.c:1113 ../bin/track.c:1376 ../bin/track.c:1473
+#: ../bin/track.c:1487
msgid "Yes"
msgstr "Sim"
-#: ../bin/cblock.c:601
-#: ../bin/cdraw.c:79
-#: ../bin/cgroup.c:968
-#: ../bin/cswitchmotor.c:472
-#: ../bin/ctodesgn.c:1513
-#: ../bin/ctodesgn.c:1992
-#: ../bin/ctrain.c:2043
-#: ../bin/dcar.c:3664
-#: ../bin/dcar.c:3742
-#: ../bin/dcar.c:3826
-#: ../bin/dcar.c:3845
-#: ../bin/dcar.c:4175
-#: ../bin/dcar.c:4590
-#: ../bin/dcustmgm.c:136
-#: ../bin/misc.c:1026
-#: ../bin/misc.c:1031
-#: ../bin/misc.c:1096
-#: ../bin/track.c:1278
-#: ../bin/track.c:1375
-#: ../bin/track.c:1389
-#: ../wlib/gtklib/CVS/Base/gtkfilsel.c:130
-#: ../wlib/gtklib/gtkfilsel.c:130
+#: ../bin/cblock.c:664 ../bin/cdraw.c:107 ../bin/cgroup.c:988
+#: ../bin/csignal.c:687 ../bin/cswitchmotor.c:581 ../bin/ctodesgn.c:1521
+#: ../bin/ctodesgn.c:2000 ../bin/ctrain.c:2425 ../bin/dcar.c:3672
+#: ../bin/dcar.c:3750 ../bin/dcar.c:3834 ../bin/dcar.c:3853 ../bin/dcar.c:4183
+#: ../bin/dcar.c:4600 ../bin/dcontmgm.c:173 ../bin/dcustmgm.c:141
+#: ../bin/misc.c:1043 ../bin/misc.c:1048 ../bin/misc.c:1113
+#: ../bin/track.c:1376 ../bin/track.c:1473 ../bin/track.c:1487
msgid "No"
msgstr "Não"
-#: ../bin/cblock.c:602
-#: ../bin/cblock.c:646
+#: ../bin/cblock.c:665
msgid "Delete Block"
msgstr "Eliminar bloco"
-#: ../bin/cblock.c:643
-msgid "Blocks"
-msgstr "Blocos"
+#: ../bin/cblock.c:706
+#, fuzzy, c-format
+msgid "Deleting block %s"
+msgstr "Eliminar bloco"
-#: ../bin/cblock.c:645
-msgid "Edit Block"
+#: ../bin/cblock.c:722
+#, fuzzy
+msgid "Modify Block"
+msgstr "Modificar trecho"
+
+#: ../bin/cblock.c:754
+#, fuzzy
+msgid "Edit block"
+msgstr "Editar bloco"
+
+#: ../bin/cblock.c:760
+#, fuzzy, c-format
+msgid "Edit block %d"
msgstr "Editar bloco"
-#: ../bin/ccurve.c:102
+#: ../bin/ccontrol.c:168 ../bin/cnote.c:162 ../bin/csensor.c:160
+#: ../bin/csignal.c:235 ../bin/ctrain.c:182
+msgid "Position"
+msgstr "Posição"
+
+#: ../bin/ccontrol.c:169 ../bin/ccontrol.c:390
+#, fuzzy
+msgid "On Script"
+msgstr "Script"
+
+#: ../bin/ccontrol.c:170 ../bin/ccontrol.c:392
+#, fuzzy
+msgid "Off Script"
+msgstr "Script"
+
+#: ../bin/ccontrol.c:213
+#, fuzzy
+msgid "Change Control"
+msgstr "Controle de trem"
+
+#: ../bin/ccontrol.c:255 ../bin/csensor.c:233
+#, fuzzy, c-format
+msgid "(%d [%s]): Layer=%d, at %0.3f,%0.3f"
+msgstr "(%d): Camada=%d %s"
+
+#: ../bin/ccontrol.c:268 ../bin/ccontrol.c:594
+#, fuzzy
+msgid "Control"
+msgstr "Controle de trem"
+
+#: ../bin/ccontrol.c:386 ../bin/csensor.c:358 ../bin/csignal.c:486
+#, fuzzy
+msgid "Orgin X"
+msgstr "Margem"
+
+#: ../bin/ccontrol.c:388 ../bin/csensor.c:360 ../bin/csignal.c:488
+#, fuzzy
+msgid "Origin Y"
+msgstr "Origem: X"
+
+#: ../bin/ccontrol.c:404
+#, fuzzy
+msgid "Create Control"
+msgstr "Controle de trem"
+
+#: ../bin/ccontrol.c:407
+#, fuzzy
+msgid "Modify Control"
+msgstr "Controle de trem"
+
+#: ../bin/ccontrol.c:444
+#, fuzzy
+msgid "Edit control"
+msgstr "Controle de trem"
+
+#: ../bin/ccontrol.c:484
+#, fuzzy
+msgid "Place control"
+msgstr "Posicionar a circunferência"
+
+#: ../bin/ccornu.c:480
+msgid "Not close enough to end point, reselect"
+msgstr ""
+
+#: ../bin/ccornu.c:498
+msgid ""
+"Pick any circle to adjust it by dragging - Enter to accept, Esc to cancel"
+msgstr ""
+
+#: ../bin/ccornu.c:509
+msgid "Track can't be split"
+msgstr ""
+
+#: ../bin/ccornu.c:522
+#, fuzzy
+msgid "Too close to other end of selected Track"
+msgstr "Eleva ou abaixa todos os trechos selecionados"
+
+#: ../bin/ccornu.c:629
+#, c-format
+msgid "Must be on the %s Track"
+msgstr ""
+
+#: ../bin/ccornu.c:643
+#, c-format
+msgid ""
+"Cornu : Min Radius=%s Max Rate of Radius Change=%s Length=%s Winding Arc=%s"
+msgstr ""
+
+#: ../bin/ccornu.c:661
+msgid "Pick on point to adjust it along track - Enter to confirm, ESC to abort"
+msgstr ""
+
+#: ../bin/ccornu.c:671
+msgid "Cornu has too complex shape - adjust end pts"
+msgstr ""
+
+#: ../bin/ccornu.c:675
+#, fuzzy
+msgid "Create Cornu"
+msgstr "Criar Bloco"
+
+#: ../bin/ccornu.c:679 ../bin/ccornu.c:831 ../bin/tcornu.c:722
+#: ../bin/tcornu.c:919 ../bin/tcornu.c:1174
+#, c-format
+msgid ""
+"Cornu Create Failed for p1[%0.3f,%0.3f] p2[%0.3f,%0.3f], c1[%0.3f,%0.3f] c2"
+"[%0.3f,%0.3f], a1=%0.3f a2=%0.3f, r1=%s r2=%s"
+msgstr ""
+
+#: ../bin/ccornu.c:776
+msgid "Track picked - now select a Point"
+msgstr ""
+
+#: ../bin/ccornu.c:806
+#, fuzzy
+msgid "Modify Cornu"
+msgstr "Modificar trecho"
+
+#: ../bin/ccornu.c:822
+#, c-format
+msgid "Cornu Extension Create Failed for end %d"
+msgstr ""
+
+#: ../bin/ccornu.c:866
+msgid "Modify Cornu Cancelled"
+msgstr ""
+
+#: ../bin/ccornu.c:984
+#, fuzzy
+msgid "Place 1st end point of Cornu track on unconnected end-point"
+msgstr "Posicionar 1ª extremidade do trecho reto"
+
+#: ../bin/ccornu.c:997
+msgid "No Unconnected end point there"
+msgstr ""
+
+#: ../bin/ccornu.c:1005
+msgid "Place 2nd end point of Cornu track on unconnected end-point"
+msgstr ""
+
+#: ../bin/ccornu.c:1008
+msgid "No Unconnected Track End there"
+msgstr ""
+
+#: ../bin/ccornu.c:1020
+#, fuzzy
+msgid "Move 1st end point of Cornu track along track 1"
+msgstr "Posicionar 1ª extremidade do trecho reto"
+
+#: ../bin/ccornu.c:1038
+#, fuzzy
+msgid "Move 2nd end point of Cornu track along track 2"
+msgstr "Posicionar 1ª extremidade do trecho reto"
+
+#: ../bin/ccornu.c:1056
+msgid "Can't Split - Locked to End Point"
+msgstr ""
+
+#: ../bin/ccornu.c:1061
+#, fuzzy
+msgid "Point not on track 1"
+msgstr "Junta dois trilhos"
+
+#: ../bin/ccornu.c:1085
+msgid "Put other end of Cornu on an unconnected end point"
+msgstr ""
+
+#: ../bin/ccurve.c:118
+#, fuzzy
+msgid ""
+"Drag from End-Point in direction of curve - Shift locks to track open end-"
+"point"
+msgstr "Arrastar a extremidade em direção de curva"
+
+#: ../bin/ccurve.c:120
msgid "Drag from End-Point in direction of curve"
msgstr "Arrastar a extremidade em direção de curva"
-#: ../bin/ccurve.c:105
-#: ../bin/ccurve.c:138
+#: ../bin/ccurve.c:124
+#, fuzzy
+msgid "Drag from End-Point to Center - Shift locks to track open end-point"
+msgstr "Arrastar a extremidade ao centro"
+
+#: ../bin/ccurve.c:126 ../bin/ccurve.c:187
msgid "Drag from End-Point to Center"
msgstr "Arrastar a extremidade ao centro"
-#: ../bin/ccurve.c:108
-#: ../bin/ccurve.c:138
+#: ../bin/ccurve.c:129 ../bin/ccurve.c:187
msgid "Drag from Center to End-Point"
msgstr "Arrastar do centro à extremidade"
-#: ../bin/ccurve.c:111
-#: ../bin/ccurve.c:144
+#: ../bin/ccurve.c:132
+#, fuzzy
+msgid "Drag from one to other end of chord"
+msgstr "Arrastar à outra extremidade da corda"
+
+#: ../bin/ccurve.c:155
+msgid ""
+"No unconnected end-point on Track - Try again or release Shift and click"
+msgstr ""
+
+#: ../bin/ccurve.c:160
+msgid "Not on a Track - Try again or release Shift and click"
+msgstr ""
+
+#: ../bin/ccurve.c:174
+msgid "End Locked: Drag out curve start"
+msgstr ""
+
+#: ../bin/ccurve.c:175
+#, fuzzy
+msgid "Drag along curve start"
+msgstr "Arrastar para criar ramo"
+
+#: ../bin/ccurve.c:185
+msgid "End Locked: Drag out to center"
+msgstr ""
+
+#: ../bin/ccurve.c:193
msgid "Drag to other end of chord"
msgstr "Arrastar à outra extremidade da corda"
-#: ../bin/ccurve.c:128
-#: ../bin/chndldto.c:91
-msgid "Drag to set angle"
-msgstr "Arrastar para selecionar o ângulo"
+#: ../bin/ccurve.c:221
+#, c-format
+msgid "Start Locked: Drag out curve start - Angle=%0.3f"
+msgstr ""
-#: ../bin/ccurve.c:156
+#: ../bin/ccurve.c:222
#, c-format
-msgid "Angle=%0.3f"
-msgstr "Ângulo=%0.3f"
+msgid "Drag out curve start - Angle=%0.3f"
+msgstr ""
-#: ../bin/ccurve.c:160
-#: ../bin/ccurve.c:166
+#: ../bin/ccurve.c:226
+#, fuzzy, c-format
+msgid "Tangent Locked: Drag out center - Radius=%s Angle=%0.3f"
+msgstr "Trecho tangente: Comprimento %s Ângulo %0.3f"
+
+#: ../bin/ccurve.c:227
+#, fuzzy, c-format
+msgid "Drag out center - Radius=%s Angle=%0.3f"
+msgstr "Raio=%s Ângulo=%0.3f"
+
+#: ../bin/ccurve.c:233
#, c-format
msgid "Radius=%s Angle=%0.3f"
msgstr "Raio=%s Ângulo=%0.3f"
-#: ../bin/ccurve.c:172
+#: ../bin/ccurve.c:239
#, c-format
msgid "Length=%s Angle=%0.3f"
msgstr "Comprimento=%s Ângulo=%0.3f"
-#: ../bin/ccurve.c:202
-#: ../bin/ccurve.c:303
-#: ../bin/drawgeom.c:365
+#: ../bin/ccurve.c:289 ../bin/ccurve.c:397 ../bin/drawgeom.c:440
msgid "Drag on Red arrows to adjust curve"
msgstr "Arrastar as setas vermelhas para ajustar a curva"
-#: ../bin/ccurve.c:259
-#: ../bin/cjoin.c:208
-#: ../bin/cmodify.c:251
-#: ../bin/cturntbl.c:559
+#: ../bin/ccurve.c:352 ../bin/cjoin.c:216 ../bin/cmodify.c:365
+#: ../bin/cturntbl.c:569
#, c-format
msgid "Straight Track: Length=%s Angle=%0.3f"
msgstr "Trecho reto: Comprimento=%s Ângulo=%0.3f"
-#: ../bin/ccurve.c:264
-#: ../bin/cmodify.c:256
-#: ../bin/drawgeom.c:288
+#: ../bin/ccurve.c:357 ../bin/cmodify.c:370 ../bin/drawgeom.c:324
+#: ../wlib/gtklib/ixhelp.c:235
msgid "Back"
msgstr "Voltar"
-#: ../bin/ccurve.c:282
+#: ../bin/ccurve.c:375
#, c-format
msgid "Curved Track: Radius=%s Angle=%0.3f Length=%s"
msgstr "Trecho curvo: Raio=%s Ângulo=%0.3f Comprimento=%s"
-#: ../bin/ccurve.c:314
-#: ../bin/cstraigh.c:83
+#: ../bin/ccurve.c:408 ../bin/cstraigh.c:133
msgid "Create Straight Track"
msgstr "Criar trecho reto"
-#: ../bin/ccurve.c:322
+#: ../bin/ccurve.c:420
msgid "Create Curved Track"
msgstr "Criar trecho curvo"
-#: ../bin/ccurve.c:388
+#: ../bin/ccurve.c:491
msgid "Elevation Difference"
msgstr "Diferença de elevação"
-#: ../bin/ccurve.c:389
-#: ../bin/cdraw.c:187
-#: ../bin/ctodesgn.c:459
-#: ../bin/tcurve.c:345
+#: ../bin/ccurve.c:492 ../bin/cdraw.c:218 ../bin/ctodesgn.c:467
+#: ../bin/tcurve.c:353
msgid "Radius"
msgstr "Raio"
-#: ../bin/ccurve.c:390
-#: ../bin/tcurve.c:346
+#: ../bin/ccurve.c:493 ../bin/tcurve.c:354
msgid "Turns"
msgstr "Desvios"
-#: ../bin/ccurve.c:391
+#: ../bin/ccurve.c:494
msgid "Angular Separation"
msgstr "Separação angular"
-#: ../bin/ccurve.c:392
-#: ../bin/celev.c:45
-#: ../bin/compound.c:516
-#: ../bin/tcurve.c:352
-#: ../bin/tease.c:507
-#: ../bin/tstraigh.c:82
+#: ../bin/ccurve.c:495 ../bin/celev.c:45 ../bin/compound.c:521
+#: ../bin/tbezier.c:241 ../bin/tcornu.c:291 ../bin/tcurve.c:360
+#: ../bin/tease.c:513 ../bin/tstraigh.c:91
msgid "Grade"
msgstr "Gradiente"
-#: ../bin/ccurve.c:393
+#: ../bin/ccurve.c:496
msgid "Vertical Separation"
msgstr "Separação vertical"
-#: ../bin/ccurve.c:395
+#: ../bin/ccurve.c:498
msgid "Total Length"
msgstr "Comprimento total"
-#: ../bin/ccurve.c:471
+#: ../bin/ccurve.c:574
#, c-format
msgid "Total Length %s"
msgstr "Comprimento total %s"
-#: ../bin/ccurve.c:510
-#: ../bin/ccurve.c:731
-#: ../bin/tcurve.c:771
+#: ../bin/ccurve.c:613 ../bin/ccurve.c:802 ../bin/tcurve.c:783
msgid "Helix"
msgstr "Hélice"
-#: ../bin/ccurve.c:524
+#: ../bin/ccurve.c:627
msgid "Circle Radius"
msgstr "Raio da circunferência"
-#: ../bin/ccurve.c:529
+#: ../bin/ccurve.c:632
msgid "Click on Circle Edge"
msgstr "Clicar no limite da circunferência"
-#: ../bin/ccurve.c:533
+#: ../bin/ccurve.c:636
msgid "Click on Circle Center"
msgstr "Clicar no centro da circunferência"
-#: ../bin/ccurve.c:564
+#: ../bin/ccurve.c:667
msgid "Drag to Center"
msgstr "Arrastar ao centro"
-#: ../bin/ccurve.c:568
+#: ../bin/ccurve.c:671
msgid "Drag to Edge"
msgstr "Arrastar à borda"
-#: ../bin/ccurve.c:589
-#: ../bin/ccurve.c:593
+#: ../bin/ccurve.c:692 ../bin/ccurve.c:696
#, c-format
msgid "Radius=%s"
msgstr "Raio=%s"
-#: ../bin/ccurve.c:608
+#: ../bin/ccurve.c:711
msgid "Create Helix Track"
msgstr "Criar trecho em hélice"
-#: ../bin/ccurve.c:615
+#: ../bin/ccurve.c:718
msgid "Create Circle Track"
msgstr "Criar trecho de circunferência"
-#: ../bin/ccurve.c:671
-msgid "Place circle center"
-msgstr "Posicionar o centro da circunferência"
-
-#: ../bin/ccurve.c:676
-#: ../bin/drawgeom.c:202
-msgid "Drag to set radius"
-msgstr "Arrastar para definir o raio"
-
-#: ../bin/ccurve.c:686
-msgid "Place circle"
-msgstr "Posicionar a circunferência"
-
-#: ../bin/ccurve.c:711
+#: ../bin/ccurve.c:773
msgid "Curve Track"
msgstr "Trecho curvo"
-#: ../bin/ccurve.c:711
+#: ../bin/ccurve.c:773
msgid "Curve Tracks"
msgstr "Trechos curvos"
-#: ../bin/ccurve.c:712
+#: ../bin/ccurve.c:774
msgid "Curve from End-Pt"
msgstr "Curva a partir de extremidade"
-#: ../bin/ccurve.c:713
+#: ../bin/ccurve.c:775
msgid "Curve from Tangent"
msgstr "Curva a partir de uma tangente"
-#: ../bin/ccurve.c:714
+#: ../bin/ccurve.c:776
msgid "Curve from Center"
msgstr "Curva a partir de um centro"
-#: ../bin/ccurve.c:715
+#: ../bin/ccurve.c:777
msgid "Curve from Chord"
msgstr "Curva a partir de uma corda"
-#: ../bin/ccurve.c:718
-#: ../bin/tcurve.c:611
+#: ../bin/ccurve.c:778 ../bin/cdraw.c:1091
+#, fuzzy
+msgid "Bezier Curve"
+msgstr "Fundir curvas"
+
+#: ../bin/ccurve.c:781 ../bin/tcurve.c:623
msgid "Circle Track"
msgstr "Trecho de circunferência"
-#: ../bin/ccurve.c:718
+#: ../bin/ccurve.c:781
msgid "Circle Tracks"
msgstr "Trechos de circunferências"
-#: ../bin/ccurve.c:719
+#: ../bin/ccurve.c:782
msgid "Fixed Radius Circle"
msgstr "Circunferência com raio fixo"
-#: ../bin/ccurve.c:720
+#: ../bin/ccurve.c:783
msgid "Circle from Tangent"
msgstr "Circunferência a partir de uma tangente"
-#: ../bin/ccurve.c:721
+#: ../bin/ccurve.c:784
msgid "Circle from Center"
msgstr "Circunferência a partir de um centro"
-#: ../bin/cdraw.c:75
+#: ../bin/cdraw.c:103
msgid "Font Size must be > 0"
msgstr "Tamanho da fonte deve ser maior que 0"
-#: ../bin/cdraw.c:186
-#: ../bin/tcurve.c:344
+#: ../bin/cdraw.c:217 ../bin/tcurve.c:352
msgid "Center: X"
msgstr "Centro: X"
-#: ../bin/cdraw.c:189
-#: ../bin/cdraw.c:199
-#: ../bin/compound.c:518
-#: ../bin/cprint.c:134
-#: ../bin/ctodesgn.c:136
-#: ../bin/ctodesgn.c:138
-#: ../bin/ctodesgn.c:181
-#: ../bin/ctodesgn.c:204
-#: ../bin/ctodesgn.c:206
-#: ../bin/ctodesgn.c:242
-#: ../bin/ctodesgn.c:245
-#: ../bin/ctodesgn.c:279
-#: ../bin/ctodesgn.c:283
-#: ../bin/ctodesgn.c:320
-#: ../bin/ctodesgn.c:340
-#: ../bin/ctodesgn.c:361
-#: ../bin/ctodesgn.c:460
-#: ../bin/ctrain.c:172
-#: ../bin/tease.c:502
-#: ../bin/tstraigh.c:81
+#: ../bin/cdraw.c:220 ../bin/cdraw.c:230 ../bin/compound.c:523
+#: ../bin/cprint.c:143 ../bin/csignal.c:236 ../bin/csignal.c:490
+#: ../bin/ctodesgn.c:144 ../bin/ctodesgn.c:146 ../bin/ctodesgn.c:189
+#: ../bin/ctodesgn.c:212 ../bin/ctodesgn.c:214 ../bin/ctodesgn.c:250
+#: ../bin/ctodesgn.c:253 ../bin/ctodesgn.c:287 ../bin/ctodesgn.c:291
+#: ../bin/ctodesgn.c:328 ../bin/ctodesgn.c:348 ../bin/ctodesgn.c:369
+#: ../bin/ctodesgn.c:468 ../bin/ctrain.c:183 ../bin/tease.c:508
+#: ../bin/tstraigh.c:90
msgid "Angle"
msgstr "Ângulo"
-#: ../bin/cdraw.c:190
-#: ../bin/tcurve.c:350
+#: ../bin/cdraw.c:221 ../bin/tcurve.c:358
msgid "CCW Angle"
msgstr "Ângulo anti-horário"
-#: ../bin/cdraw.c:191
-#: ../bin/tcurve.c:351
+#: ../bin/cdraw.c:222 ../bin/tcurve.c:359
msgid "CW Angle"
msgstr "Ângulo horário"
-#: ../bin/cdraw.c:192
+#: ../bin/cdraw.c:223
msgid "Point Count"
msgstr "Ponto de contagem"
-#: ../bin/cdraw.c:193
-#: ../bin/cdraw.c:803
-#: ../bin/ctodesgn.c:148
+#: ../bin/cdraw.c:224 ../bin/cdraw.c:847 ../bin/ctodesgn.c:156
+#: ../bin/tbezier.c:243
msgid "Line Width"
msgstr "Largura da linha"
-#: ../bin/cdraw.c:194
-#: ../bin/cdraw.c:805
-#: ../bin/cdraw.c:807
-#: ../bin/cdraw.c:882
-#: ../bin/cdraw.c:906
-#: ../bin/ctodesgn.c:149
-#: ../bin/dcar.c:1968
-#: ../bin/dlayer.c:320
-#: ../bin/doption.c:556
+#: ../bin/cdraw.c:225 ../bin/cdraw.c:849 ../bin/cdraw.c:851 ../bin/cdraw.c:930
+#: ../bin/cdraw.c:955 ../bin/cmisc.c:97 ../bin/ctext.c:62 ../bin/ctext.c:146
+#: ../bin/ctodesgn.c:157 ../bin/dcar.c:1976 ../bin/dlayer.c:447
+#: ../bin/doption.c:476
msgid "Color"
msgstr "Cor"
-#: ../bin/cdraw.c:195
-#: ../bin/cdraw.c:417
-#: ../bin/cdraw.c:823
+#: ../bin/cdraw.c:226 ../bin/cdraw.c:456 ../bin/cdraw.c:867
msgid "Lumber"
msgstr "Madeira"
-#: ../bin/cdraw.c:196
+#: ../bin/cdraw.c:227
msgid "Orientation"
msgstr "Orientação"
-#: ../bin/cdraw.c:197
-#: ../bin/cdraw.c:817
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:516
+#: ../bin/cdraw.c:228 ../bin/cdraw.c:861
+#: ../../../../build/work/app/bin/bllnhlp.c:543
msgid "Size"
msgstr "Tamanho"
-#: ../bin/cdraw.c:198
-#: ../bin/compound.c:517
-#: ../bin/cprint.c:131
-#: ../bin/cturntbl.c:239
-#: ../bin/tease.c:501
+#: ../bin/cdraw.c:229 ../bin/compound.c:522 ../bin/cprint.c:140
+#: ../bin/cturntbl.c:245 ../bin/tease.c:507
msgid "Origin: X"
msgstr "Origem: X"
-#: ../bin/cdraw.c:200
-#: ../bin/ctext.c:56
-#: ../bin/ctext.c:121
+#: ../bin/cdraw.c:231 ../bin/ctext.c:60 ../bin/ctext.c:145
msgid "Font Size"
msgstr "Tamanha da fonte"
-#: ../bin/cdraw.c:201
-#: ../bin/cdraw.c:483
-#: ../bin/ctext.c:236
+#: ../bin/cdraw.c:232 ../bin/cdraw.c:519 ../bin/ctext.c:264
msgid "Text"
msgstr "Texto"
-#: ../bin/cdraw.c:202
-#: ../bin/cmisc.c:115
-#: ../bin/tcurve.c:353
-#: ../bin/tease.c:508
-#: ../bin/tstraigh.c:83
+#: ../bin/cdraw.c:233 ../bin/cmisc.c:114 ../bin/tcurve.c:361
+#: ../bin/tease.c:514 ../bin/tstraigh.c:92
msgid "Pivot"
msgstr "Pivô"
-#: ../bin/cdraw.c:203
-#: ../bin/cnote.c:149
-#: ../bin/compound.c:524
-#: ../bin/cturntbl.c:242
-#: ../bin/tcurve.c:354
-#: ../bin/tease.c:509
-#: ../bin/tstraigh.c:84
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:594
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:595
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:596
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:597
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:598
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:599
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:600
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:601
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:602
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:603
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:604
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:605
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:606
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:607
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:608
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:609
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:610
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:611
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:612
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:613
+#: ../bin/cdraw.c:234 ../bin/cnote.c:163 ../bin/compound.c:529
+#: ../bin/cturntbl.c:248 ../bin/tbezier.c:242 ../bin/tcornu.c:292
+#: ../bin/tcurve.c:362 ../bin/tease.c:515 ../bin/tstraigh.c:93
+#: ../../../../build/work/app/bin/bllnhlp.c:621
+#: ../../../../build/work/app/bin/bllnhlp.c:622
+#: ../../../../build/work/app/bin/bllnhlp.c:623
+#: ../../../../build/work/app/bin/bllnhlp.c:624
+#: ../../../../build/work/app/bin/bllnhlp.c:625
+#: ../../../../build/work/app/bin/bllnhlp.c:626
+#: ../../../../build/work/app/bin/bllnhlp.c:627
+#: ../../../../build/work/app/bin/bllnhlp.c:628
+#: ../../../../build/work/app/bin/bllnhlp.c:629
+#: ../../../../build/work/app/bin/bllnhlp.c:630
+#: ../../../../build/work/app/bin/bllnhlp.c:631
+#: ../../../../build/work/app/bin/bllnhlp.c:632
+#: ../../../../build/work/app/bin/bllnhlp.c:633
+#: ../../../../build/work/app/bin/bllnhlp.c:634
+#: ../../../../build/work/app/bin/bllnhlp.c:635
+#: ../../../../build/work/app/bin/bllnhlp.c:636
+#: ../../../../build/work/app/bin/bllnhlp.c:637
+#: ../../../../build/work/app/bin/bllnhlp.c:638
+#: ../../../../build/work/app/bin/bllnhlp.c:639
+#: ../../../../build/work/app/bin/bllnhlp.c:640
msgid "Layer"
msgstr "Camada"
-#: ../bin/cdraw.c:407
+#: ../bin/cdraw.c:446
msgid "Straight Line"
msgstr "Linha reta"
-#: ../bin/cdraw.c:410
-#: ../bin/cdraw.c:1028
+#: ../bin/cdraw.c:449 ../bin/cdraw.c:1083
msgid "Dimension Line"
msgstr "Linha dimensional"
-#: ../bin/cdraw.c:425
-#: ../bin/cdraw.c:824
-#: ../bin/cdraw.c:1030
+#: ../bin/cdraw.c:464 ../bin/cdraw.c:868 ../bin/cdraw.c:1085
msgid "Table Edge"
msgstr "Limite do tablado"
-#: ../bin/cdraw.c:437
-#: ../bin/cdraw.c:829
-#: ../bin/cdraw.c:830
-#: ../bin/cdraw.c:831
+#: ../bin/cdraw.c:476 ../bin/cdraw.c:873 ../bin/cdraw.c:874 ../bin/cdraw.c:875
msgid "Circle"
msgstr "Circunferência"
-#: ../bin/cdraw.c:445
+#: ../bin/cdraw.c:484
msgid "Curved Line"
msgstr "Linha curva"
-#: ../bin/cdraw.c:454
-#: ../bin/cdraw.c:834
-#: ../bin/cdraw.c:835
-#: ../bin/cdraw.c:836
+#: ../bin/cdraw.c:493 ../bin/cdraw.c:878 ../bin/cdraw.c:879 ../bin/cdraw.c:880
msgid "Filled Circle"
msgstr "Círculo"
-#: ../bin/cdraw.c:459
-#: ../bin/cdraw.c:1046
+#: ../bin/cdraw.c:498 ../bin/cdraw.c:1102
msgid "Poly Line"
msgstr "Linha poligonal"
-#: ../bin/cdraw.c:465
-#: ../bin/cdraw.c:838
-#: ../bin/cdraw.c:1047
+#: ../bin/cdraw.c:504 ../bin/cdraw.c:882 ../bin/cdraw.c:1103
msgid "Polygon"
msgstr "Polígono"
-#: ../bin/cdraw.c:489
+#: ../bin/cdraw.c:525
#, c-format
msgid "%s: Layer=%d"
msgstr "%s: Camada=%d"
-#: ../bin/cdraw.c:500
-#: ../bin/cdraw.c:926
+#: ../bin/cdraw.c:536 ../bin/cdraw.c:972
msgid "Tiny"
msgstr "Minúsculo"
-#: ../bin/cdraw.c:501
-#: ../bin/cdraw.c:927
+#: ../bin/cdraw.c:537 ../bin/cdraw.c:973
msgid "Small"
msgstr "Pequeno"
-#: ../bin/cdraw.c:502
-#: ../bin/cdraw.c:928
+#: ../bin/cdraw.c:538 ../bin/cdraw.c:974
msgid "Medium"
msgstr "Médio"
-#: ../bin/cdraw.c:503
-#: ../bin/cdraw.c:929
+#: ../bin/cdraw.c:539 ../bin/cdraw.c:975
msgid "Large"
msgstr "Grande"
-#: ../bin/cdraw.c:770
-#: ../bin/drawgeom.c:71
-#: ../bin/drawgeom.c:86
-msgid "Create Lines"
-msgstr "Criar linhas"
-
-#: ../bin/cdraw.c:809
-#: ../bin/cdraw.c:904
+#: ../bin/cdraw.c:853 ../bin/cdraw.c:953
msgid "Lumber Type"
msgstr "Tipo de madeira"
-#: ../bin/cdraw.c:821
+#: ../bin/cdraw.c:865
msgid "Straight"
msgstr "Reto"
-#: ../bin/cdraw.c:822
+#: ../bin/cdraw.c:866
msgid "Dimension"
msgstr "Dimensão"
-#: ../bin/cdraw.c:825
-#: ../bin/cdraw.c:826
-#: ../bin/cdraw.c:827
-#: ../bin/cdraw.c:828
+#: ../bin/cdraw.c:869 ../bin/cdraw.c:870 ../bin/cdraw.c:871 ../bin/cdraw.c:872
msgid "Curved"
msgstr "Curvado"
-#: ../bin/cdraw.c:832
-#: ../bin/cdraw.c:1044
+#: ../bin/cdraw.c:876 ../bin/cdraw.c:1100
msgid "Box"
msgstr "Retângulo"
-#: ../bin/cdraw.c:833
+#: ../bin/cdraw.c:877
msgid "Polyline"
msgstr "Linha poligonal"
-#: ../bin/cdraw.c:837
-#: ../bin/cdraw.c:1045
+#: ../bin/cdraw.c:881 ../bin/cdraw.c:1101
msgid "Filled Box"
msgstr "Retângulo preenchido"
-#: ../bin/cdraw.c:880
+#: ../bin/cdraw.c:883 ../bin/tbezier.c:401
+#, fuzzy
+msgid "Bezier Line"
+msgstr "Criar linhas"
+
+#: ../bin/cdraw.c:928
#, c-format
msgid "%s Line Width"
msgstr "Largura da linha do %s"
-#: ../bin/cdraw.c:893
+#: ../bin/cdraw.c:942
#, c-format
msgid "%s Color"
msgstr "Cor %s"
-#: ../bin/cdraw.c:924
+#: ../bin/cdraw.c:970
msgid "Dimension Line Size"
msgstr "Dimensão da largura da linha"
-#: ../bin/cdraw.c:937
+#: ../bin/cdraw.c:983
msgid "Drag to create Table Edge"
msgstr "Arrastar para criar limite do tablado"
-#: ../bin/cdraw.c:1027
+#: ../bin/cdraw.c:1082
msgid "Line"
msgstr "Linha"
-#: ../bin/cdraw.c:1027
+#: ../bin/cdraw.c:1082
msgid "Draw Line"
msgstr "Desenhar linha"
-#: ../bin/cdraw.c:1028
+#: ../bin/cdraw.c:1083
msgid "Draw Dimension Line"
msgstr "Desenhar dimensão da linha"
-#: ../bin/cdraw.c:1029
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:53
+#: ../bin/cdraw.c:1084 ../../../../build/work/app/i18n/custmsg.h:53
msgid "Benchwork"
msgstr "Bancada"
-#: ../bin/cdraw.c:1029
+#: ../bin/cdraw.c:1084
msgid "Draw Benchwork"
msgstr "Desenhar bancada"
-#: ../bin/cdraw.c:1030
+#: ../bin/cdraw.c:1085
msgid "Draw Table Edge"
msgstr "Desenhar borda do tablado"
-#: ../bin/cdraw.c:1032
+#: ../bin/cdraw.c:1087
msgid "Curve End"
msgstr "Curva extremidade"
-#: ../bin/cdraw.c:1032
+#: ../bin/cdraw.c:1087
msgid "Draw Curve from End"
msgstr "Desenhar curva a partir de uma extremidade"
-#: ../bin/cdraw.c:1033
+#: ../bin/cdraw.c:1088
msgid "Curve Tangent"
msgstr "Curva tangente"
-#: ../bin/cdraw.c:1033
+#: ../bin/cdraw.c:1088
msgid "Draw Curve from Tangent"
msgstr "Desenhar curva a partir de uma tangente"
-#: ../bin/cdraw.c:1034
+#: ../bin/cdraw.c:1089
msgid "Curve Center"
msgstr "Curva centro"
-#: ../bin/cdraw.c:1034
+#: ../bin/cdraw.c:1089
msgid "Draw Curve from Center"
msgstr "Desenhar curva a partir de um centro"
-#: ../bin/cdraw.c:1035
+#: ../bin/cdraw.c:1090
msgid "Curve Chord"
msgstr "Curva corda"
-#: ../bin/cdraw.c:1035
+#: ../bin/cdraw.c:1090
msgid "Draw Curve from Chord"
msgstr "Desenhar curva a partir de uma corda"
-#: ../bin/cdraw.c:1038
+#: ../bin/cdraw.c:1091
+#, fuzzy
+msgid "Draw Bezier"
+msgstr "Desenhar linha"
+
+#: ../bin/cdraw.c:1094
msgid "Circle Tangent"
msgstr "Circunferência tangente"
-#: ../bin/cdraw.c:1038
+#: ../bin/cdraw.c:1094
msgid "Draw Circle from Tangent"
msgstr "Desenhar circunferência a partir de uma tangente"
-#: ../bin/cdraw.c:1039
+#: ../bin/cdraw.c:1095
msgid "Circle Center"
msgstr "Circunferência centro"
-#: ../bin/cdraw.c:1039
+#: ../bin/cdraw.c:1095
msgid "Draw Circle from Center"
msgstr "Desenhar circunferência a partir de um centro"
-#: ../bin/cdraw.c:1041
+#: ../bin/cdraw.c:1097
msgid "Circle Filled Tangent"
msgstr "Círculo tangente"
-#: ../bin/cdraw.c:1041
+#: ../bin/cdraw.c:1097
msgid "Draw Filled Circle from Tangent"
msgstr "Desenhar círculo a partir de uma tangente"
-#: ../bin/cdraw.c:1042
+#: ../bin/cdraw.c:1098
msgid "Circle Filled Center"
msgstr "Círculo centro"
-#: ../bin/cdraw.c:1042
+#: ../bin/cdraw.c:1098
msgid "Draw Filled Circle from Center"
msgstr "Desenhar círculo a partir de um centro"
-#: ../bin/cdraw.c:1044
+#: ../bin/cdraw.c:1100
msgid "Draw Box"
msgstr "Desenhar retângulo"
-#: ../bin/cdraw.c:1045
+#: ../bin/cdraw.c:1101
msgid "Draw Filled Box"
msgstr "Desenhar retângulo cheio"
-#: ../bin/cdraw.c:1046
+#: ../bin/cdraw.c:1102
msgid "Draw Polyline"
msgstr "Desenhar linha poligonal"
-#: ../bin/cdraw.c:1047
+#: ../bin/cdraw.c:1103
msgid "Draw Polygon"
msgstr "Desenhar polígono"
-#: ../bin/cdraw.c:1063
+#: ../bin/cdraw.c:1119
msgid "Straight Objects"
msgstr "Objetos retos"
-#: ../bin/cdraw.c:1063
+#: ../bin/cdraw.c:1119
msgid "Draw Straight Objects"
msgstr "Desenhar objetos retos"
-#: ../bin/cdraw.c:1064
+#: ../bin/cdraw.c:1120
msgid "Curved Lines"
msgstr "Linhas curvas"
-#: ../bin/cdraw.c:1064
+#: ../bin/cdraw.c:1120
msgid "Draw Curved Lines"
msgstr "Desenhar linhas curvas"
-#: ../bin/cdraw.c:1065
+#: ../bin/cdraw.c:1121
msgid "Circle Lines"
msgstr "Circunferência"
-#: ../bin/cdraw.c:1065
+#: ../bin/cdraw.c:1121
msgid "Draw Circles"
msgstr "Desenhar circunferência"
-#: ../bin/cdraw.c:1066
+#: ../bin/cdraw.c:1122
msgid "Shapes"
msgstr "Formas"
-#: ../bin/cdraw.c:1066
+#: ../bin/cdraw.c:1122
msgid "Draw Shapes"
msgstr "Desenhas formas"
-#: ../bin/cdraw.c:1144
-msgid "Draw"
-msgstr "Desenhar"
-
-#: ../bin/celev.c:44
-#: ../bin/cprofile.c:1355
-#: ../bin/csplit.c:105
-#: ../bin/csplit.c:110
-#: ../bin/dease.c:63
-#: ../bin/doption.c:192
-#: ../bin/doption.c:193
+#: ../bin/celev.c:44 ../bin/cprofile.c:1383 ../bin/csplit.c:107
+#: ../bin/csplit.c:112 ../bin/dease.c:64 ../bin/doption.c:101
+#: ../bin/doption.c:103
msgid "None"
msgstr "Nenhum"
@@ -973,15 +1127,12 @@ msgstr "Calculado"
msgid "Station"
msgstr "Estação"
-#: ../bin/celev.c:45
-#: ../bin/cprofile.c:1354
-#: ../bin/dcmpnd.c:70
-#: ../bin/misc.c:2390
+#: ../bin/celev.c:45 ../bin/cprofile.c:1382 ../bin/dcmpnd.c:74
+#: ../bin/misc.c:2352
msgid "Ignore"
msgstr "Ignorar"
-#: ../bin/celev.c:123
-#: ../bin/celev.c:168
+#: ../bin/celev.c:123 ../bin/celev.c:168
msgid "There are no reachable Defined Elevations"
msgstr "Não existem inclinações definidas possíveis"
@@ -989,283 +1140,233 @@ msgstr "Não existem inclinações definidas possíveis"
msgid "Set Elevation"
msgstr "Ajustar inclinação"
-#: ../bin/celev.c:309
-#: ../bin/celev.c:326
+#: ../bin/celev.c:308 ../bin/celev.c:325
#, c-format
msgid "Elev = %s"
msgstr "Elev = %s"
-#: ../bin/celev.c:311
-#: ../bin/celev.c:328
+#: ../bin/celev.c:310 ../bin/celev.c:327
#, c-format
msgid "Dist = %s"
msgstr "Dist = %s"
-#: ../bin/celev.c:317
-#: ../bin/celev.c:334
-#: ../bin/celev.c:375
-#: ../bin/celev.c:382
-#: ../bin/celev.c:385
+#: ../bin/celev.c:316 ../bin/celev.c:333 ../bin/celev.c:374 ../bin/celev.c:381
+#: ../bin/celev.c:384
#, c-format
msgid "Undefined"
msgstr "Indefinido"
-#: ../bin/celev.c:407
-#: ../bin/celev.c:473
+#: ../bin/celev.c:406 ../bin/celev.c:472
msgid "Elevation"
msgstr "Elevação"
-#: ../bin/celev.c:407
-#: ../bin/cmisc.c:310
-#: ../bin/cprofile.c:1255
-#: ../bin/dcustmgm.c:350
-#: ../bin/dlayer.c:849
-#: ../bin/dpricels.c:155
+#: ../bin/celev.c:406 ../bin/cmisc.c:401 ../bin/cprofile.c:1279
+#: ../bin/dcontmgm.c:300 ../bin/dcustmgm.c:358 ../bin/dlayer.c:1023
+#: ../bin/dpricels.c:154
msgid "Done"
msgstr "Ok"
-#: ../bin/celev.c:419
-msgid "Select End-Point"
-msgstr "Selecionar extremidade"
-
-#: ../bin/celev.c:435
-#: ../bin/csplit.c:90
-#: ../bin/csplit.c:153
+#: ../bin/celev.c:434 ../bin/csplit.c:92 ../bin/csplit.c:155
msgid "Split Track"
msgstr "Seccionar trecho"
-#: ../bin/cgroup.c:576
+#: ../bin/cgroup.c:591
msgid "Ungroup Object"
msgstr "Desagrupar objeto"
-#: ../bin/cgroup.c:588
+#: ../bin/cgroup.c:603
#, c-format
msgid "%d objects ungrouped"
msgstr "%d objetos desagrupados"
-#: ../bin/cgroup.c:590
+#: ../bin/cgroup.c:605
msgid "No objects ungrouped"
msgstr "Nenhum objeto desagrupado"
-#: ../bin/cgroup.c:599
+#: ../bin/cgroup.c:614
msgid "Replace with new group?"
msgstr "Substituir por novo grupo?"
-#: ../bin/cgroup.c:604
-#: ../bin/compound.c:519
-#: ../bin/cstruct.c:62
-#: ../bin/ctodesgn.c:140
-#: ../bin/ctodesgn.c:1764
-#: ../bin/cturnout.c:68
-#: ../bin/dcar.c:1933
-#: ../bin/dcar.c:4070
-#: ../bin/dcar.c:4075
-#: ../bin/dcmpnd.c:449
-#: ../bin/dcustmgm.c:45
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:324
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:493
+#: ../bin/cgroup.c:619 ../bin/compound.c:524 ../bin/cstruct.c:70
+#: ../bin/ctodesgn.c:148 ../bin/ctodesgn.c:1772 ../bin/cturnout.c:76
+#: ../bin/dcar.c:1941 ../bin/dcar.c:4078 ../bin/dcar.c:4083
+#: ../bin/dcmpnd.c:450 ../bin/dcustmgm.c:50
+#: ../../../../build/work/app/bin/bllnhlp.c:345
+#: ../../../../build/work/app/bin/bllnhlp.c:520
msgid "Manufacturer"
msgstr "Fabricante"
-#: ../bin/cgroup.c:605
-#: ../bin/cmisc.c:310
-#: ../bin/cstruct.c:62
-#: ../bin/ctodesgn.c:1765
-#: ../bin/ctodesgn.c:1766
-#: ../bin/ctrain.c:175
-#: ../bin/cturnout.c:68
-#: ../bin/dcar.c:1949
-#: ../bin/dcar.c:4071
-#: ../bin/dcar.c:4076
-#: ../bin/dcmpnd.c:450
-#: ../bin/dcustmgm.c:46
-#: ../bin/denum.c:168
-#: ../bin/denum.c:169
-#: ../bin/denum.c:172
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:325
+#: ../bin/cgroup.c:620 ../bin/cmisc.c:401 ../bin/cstruct.c:70
+#: ../bin/ctodesgn.c:1773 ../bin/ctodesgn.c:1774 ../bin/ctrain.c:186
+#: ../bin/cturnout.c:76 ../bin/dcar.c:1957 ../bin/dcar.c:4079
+#: ../bin/dcar.c:4084 ../bin/dcmpnd.c:451 ../bin/dcustmgm.c:51
+#: ../bin/denum.c:182 ../bin/denum.c:183 ../bin/denum.c:186
+#: ../../../../build/work/app/bin/bllnhlp.c:346
msgid "Description"
msgstr "Descrição"
-#: ../bin/cgroup.c:606
-#: ../bin/dcmpnd.c:451
+#: ../bin/cgroup.c:621 ../bin/dcmpnd.c:452
msgid "#"
msgstr "No."
-#: ../bin/cgroup.c:607
-#: ../bin/compound.c:523
+#: ../bin/cgroup.c:622 ../bin/compound.c:528
msgid "# Segments"
msgstr "No. de segmentos"
-#: ../bin/cgroup.c:1063
+#: ../bin/cgroup.c:1089
msgid "No endpts"
msgstr "Nenhuma extremidade"
-#: ../bin/cgroup.c:1148
+#: ../bin/cgroup.c:1174
msgid "No paths"
msgstr "Nenhuma via"
-#: ../bin/cgroup.c:1482
-#: ../bin/cgroup.c:1536
+#: ../bin/cgroup.c:1508 ../bin/cgroup.c:1562
msgid "Group Tracks"
msgstr "Agrupar trechos"
-#: ../bin/cgroup.c:1592
+#: ../bin/cgroup.c:1618
msgid "Group Objects"
msgstr "Agrupar objetos"
-#: ../bin/chndldto.c:68
+#: ../bin/chndldto.c:70
msgid "Place frog and drag angle"
msgstr "Posicionar jacaré e ajustar ângulo"
-#: ../bin/chndldto.c:85
+#: ../bin/chndldto.c:87
msgid "frog"
msgstr "Jacaré"
-#: ../bin/chndldto.c:132
+#: ../bin/chndldto.c:93
+msgid "Drag to set angle"
+msgstr "Arrastar para selecionar o ângulo"
+
+#: ../bin/chndldto.c:134
#, c-format
msgid "Angle = %0.2f Frog# = %0.2f"
msgstr "Ângulo = %0.2f Jacaré No. = %0.2f"
-#: ../bin/chndldto.c:134
+#: ../bin/chndldto.c:136
msgid "Frog angle is too close to 0"
msgstr "Ângulo do jacaré muito próximo de 0"
-#: ../bin/chndldto.c:137
+#: ../bin/chndldto.c:139
msgid "Select point position"
msgstr "Selecionar posição do ponto"
-#: ../bin/chndldto.c:151
-#: ../bin/chndldto.c:176
+#: ../bin/chndldto.c:153 ../bin/chndldto.c:178
msgid "points"
msgstr "Pontos"
-#: ../bin/chndldto.c:273
+#: ../bin/chndldto.c:275
#, c-format
msgid "Length = %0.2f Angle = %0.2f Frog# = %0.2f"
msgstr "Comprimento = %0.2f Ângulo = %0.2f Jacaré No. = %0.2f"
-#: ../bin/chndldto.c:277
+#: ../bin/chndldto.c:279
msgid "Create Hand Laid Turnout"
msgstr "Criar AMV personalizado"
-#: ../bin/chndldto.c:368
+#: ../bin/chndldto.c:370
msgid "HandLaidTurnout"
msgstr "AMV personalizado"
-#: ../bin/cjoin.c:164
+#: ../bin/cjoin.c:172
#, c-format
msgid "Curved Track: Radius=%s Length=%s"
msgstr "Trecho curvo: Raio=%s Comprimento=%s"
-#: ../bin/cjoin.c:250
+#: ../bin/cjoin.c:258
#, c-format
msgid "Curved Track: Radius=%s Length=%s Angle=%0.3f"
msgstr "Trecho curvo: Raio=%s Comprimento=%s Ângulo=%0.3f"
-#: ../bin/cjoin.c:346
+#: ../bin/cjoin.c:354
#, c-format
msgid "Track (%d) is too short for transition-curve by %0.3f"
msgstr "Trecho (%d) muito curto para transição curva por %0.3f"
-#: ../bin/cjoin.c:363
+#: ../bin/cjoin.c:371
#, c-format
msgid "Connecting track is too short by %0.3f"
msgstr "Trecho de conexão muito curto por %0.3f"
-#: ../bin/cjoin.c:407
-#: ../bin/cjoin.c:857
+#: ../bin/cjoin.c:415
msgid "Click on an unselected End-Point"
msgstr "Clicar em uma extremidade não selecionada"
-#: ../bin/cjoin.c:408
-#: ../bin/cjoin.c:858
+#: ../bin/cjoin.c:416
msgid "Click on a selected End-Point"
msgstr "Clicar em uma extremidade selecionada"
-#: ../bin/cjoin.c:415
-#: ../bin/cjoin.c:863
+#: ../bin/cjoin.c:423
msgid "unselected"
msgstr "deselecionado"
-#: ../bin/cjoin.c:415
-#: ../bin/cjoin.c:863
-#: ../bin/cprint.c:139
+#: ../bin/cjoin.c:423 ../bin/cprint.c:148
msgid "selected"
msgstr "selecionado"
-#: ../bin/cjoin.c:450
+#: ../bin/cjoin.c:458
msgid "Left click - join with track, Shift Left click - move to join"
-msgstr "Clicar com o botão esquerdo - junta um trecho, Clicar com o botão esquerdo + Shift - movimenta para juntar"
+msgstr ""
+"Clicar com o botão esquerdo - junta um trecho, Clicar com o botão esquerdo + "
+"Shift - movimenta para juntar"
-#: ../bin/cjoin.c:481
-#: ../bin/cjoin.c:781
-#: ../bin/cjoin.c:790
+#: ../bin/cjoin.c:493 ../bin/cjoin.c:802 ../bin/cjoin.c:811
msgid "Select 2nd track"
msgstr "Selecionar o segundo trecho"
-#: ../bin/cjoin.c:508
-#: ../bin/cmisc.c:53
-#: ../bin/track.c:1920
+#: ../bin/cjoin.c:520 ../bin/cmisc.c:52
msgid "First"
msgstr "Primeiro"
-#: ../bin/cjoin.c:513
-#: ../bin/cmisc.c:53
-#: ../bin/track.c:1920
+#: ../bin/cjoin.c:525 ../bin/cmisc.c:52
msgid "Second"
msgstr "Segundo"
-#: ../bin/cjoin.c:604
+#: ../bin/cjoin.c:620
msgid "Beyond end of 2nd track"
msgstr "Além da extremidade do 2º trecho"
-#: ../bin/cjoin.c:639
+#: ../bin/cjoin.c:655
msgid "Beyond end of 1st track"
msgstr "Além da extremidade do 1º trecho"
-#: ../bin/cjoin.c:663
+#: ../bin/cjoin.c:679
msgid "First "
msgstr "Primeiro "
-#: ../bin/cjoin.c:690
+#: ../bin/cjoin.c:706
msgid "Second "
msgstr "Segundo "
-#: ../bin/cjoin.c:704
-#: ../bin/track.c:1870
+#: ../bin/cjoin.c:720 ../bin/track.c:1959
msgid "Connecting "
msgstr "Conectando "
-#: ../bin/cjoin.c:793
+#: ../bin/cjoin.c:814
msgid "Join Tracks"
msgstr "Juntar trechos"
-#: ../bin/cjoin.c:898
+#: ../bin/cjoin.c:882
msgid "Join"
msgstr "Juntar"
-#: ../bin/cmisc.c:53
+#: ../bin/cmisc.c:52
msgid "Middle"
msgstr "Meio"
-#: ../bin/cmisc.c:154
-#: ../bin/cmodify.c:121
-#: ../bin/cnote.c:168
-#: ../bin/compound.c:592
-#: ../bin/ctrain.c:197
+#: ../bin/cmisc.c:209 ../bin/cmodify.c:203 ../bin/cnote.c:190
+#: ../bin/compound.c:597 ../bin/ctrain.c:213
msgid "Change Track"
msgstr "Substituir trecho"
-#: ../bin/cmisc.c:356
-#: ../bin/dlayer.c:324
-msgid "Frozen"
-msgstr "Congelado"
-
-#: ../bin/cmisc.c:411
+#: ../bin/cmisc.c:513
msgid "Select track to describe"
msgstr "Selecionar trecho a descrever"
-#: ../bin/cmisc.c:458
+#: ../bin/cmisc.c:570 ../bin/doption.c:205
msgid "Properties"
msgstr "Propriedades"
@@ -1273,1387 +1374,1409 @@ msgstr "Propriedades"
msgid "Bridge"
msgstr "Ponte"
-#: ../bin/cmodify.c:83
+#: ../bin/cmodify.c:144
msgid "Select track to modify"
msgstr "Selecionar trecho a modificar"
-#: ../bin/cmodify.c:166
+#: ../bin/cmodify.c:261
msgid "Modify Track"
msgstr "Modificar trecho"
-#: ../bin/cmodify.c:198
+#: ../bin/cmodify.c:299
msgid "Drag to create new track segment"
msgstr "Arrastar para criar novo trecho"
-#: ../bin/cmodify.c:315
+#: ../bin/cmodify.c:429
#, c-format
msgid "Curve Track: Radius=%s Length=%s Angle=%0.3f"
msgstr "Trecho curvo: Raio=%s Comprimento=%s Ângulo=%0.3f"
-#: ../bin/cmodify.c:330
+#: ../bin/cmodify.c:446
msgid "Extend Track"
msgstr "Estender um trecho"
-#: ../bin/cmodify.c:394
+#: ../bin/cmodify.c:522
msgid "Modify"
msgstr "Modificar"
-#: ../bin/cnote.c:96
-#: ../bin/cnote.c:203
-#: ../bin/cnote.c:398
+#: ../bin/cnote.c:100 ../bin/cnote.c:233 ../bin/cnote.c:462
msgid "Note"
msgstr "Nota"
-#: ../bin/cnote.c:99
+#: ../bin/cnote.c:106
msgid "Replace this text with your layout notes"
msgstr "Substitua este texto por uma nota do traçado"
-#: ../bin/cnote.c:148
-#: ../bin/ctrain.c:171
-msgid "Position"
-msgstr "Posição"
-
-#: ../bin/cnote.c:190
-#: ../bin/cnote.c:191
-#: ../bin/cnote.c:192
+#: ../bin/cnote.c:217 ../bin/cnote.c:218 ../bin/cnote.c:219
msgid "Note: "
msgstr "Nota: "
-#: ../bin/cnote.c:358
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:87
+#: ../bin/cnote.c:415 ../../../../build/work/app/bin/bllnhlp.c:94
msgid "Place a note on the layout"
msgstr "Posicionar uma nota no traçado"
-#: ../bin/cnote.c:371
+#: ../bin/cnote.c:431
msgid "New Note"
msgstr "Nova nota"
-#: ../bin/cnote.c:376
+#: ../bin/cnote.c:435
msgid "Replace this text with your note"
msgstr "Substitua este texto por uma nota"
-#: ../bin/compound.c:513
-#: ../bin/compound.c:515
-#: ../bin/tcurve.c:341
-#: ../bin/tcurve.c:343
-#: ../bin/tease.c:498
-#: ../bin/tease.c:500
-#: ../bin/tstraigh.c:77
-#: ../bin/tstraigh.c:79
+#: ../bin/compound.c:518 ../bin/compound.c:520 ../bin/tcurve.c:349
+#: ../bin/tcurve.c:351 ../bin/tease.c:504 ../bin/tease.c:506
+#: ../bin/tstraigh.c:86 ../bin/tstraigh.c:88
msgid "Z"
msgstr "Z"
-#: ../bin/compound.c:521
-#: ../bin/cstruct.c:62
-#: ../bin/cturnout.c:68
-#: ../bin/dcar.c:4070
-#: ../bin/dcar.c:4075
-#: ../bin/dcustmgm.c:46
-#: ../bin/doption.c:195
-#: ../bin/doption.c:196
+#: ../bin/compound.c:526 ../bin/cstruct.c:70 ../bin/cturnout.c:76
+#: ../bin/dcar.c:4078 ../bin/dcar.c:4083 ../bin/dcustmgm.c:51
+#: ../bin/doption.c:106 ../bin/doption.c:107
msgid "Part No"
msgstr "No. do item"
-#: ../bin/compound.c:522
+#: ../bin/compound.c:527
msgid "# End Pt"
msgstr "No. da extremidade"
-#: ../bin/compound.c:773
-#: ../bin/cswitchmotor.c:144
-#: ../bin/cturnout.c:884
-#: ../bin/cturnout.c:2371
-#: ../bin/cturnout.c:2541
-#: ../bin/track.c:1684
+#: ../bin/compound.c:782 ../bin/cswitchmotor.c:220 ../bin/cturnout.c:894
+#: ../bin/cturnout.c:2401 ../bin/cturnout.c:2571
msgid "Turnout"
msgstr "AMV"
-#: ../bin/compound.c:773
+#: ../bin/compound.c:782
msgid "Sectional Track"
msgstr "Trecho seccionado"
-#: ../bin/compound.c:776
-#: ../bin/cstruct.c:759
-#: ../bin/cstruct.c:904
+#: ../bin/compound.c:785 ../bin/cstruct.c:769 ../bin/cstruct.c:914
msgid "Structure"
msgstr "Estrutura"
-#: ../bin/cparalle.c:41
-#: ../bin/cparalle.c:71
-#: ../bin/cparalle.c:83
-#: ../bin/ctodesgn.c:382
-#: ../bin/ctodesgn.c:402
-#: ../bin/ctodesgn.c:422
-#: ../bin/tcurve.c:347
+#: ../bin/cparalle.c:44 ../bin/cparalle.c:74 ../bin/cparalle.c:86
+#: ../bin/ctodesgn.c:390 ../bin/ctodesgn.c:410 ../bin/ctodesgn.c:430
+#: ../bin/tcurve.c:355
msgid "Separation"
msgstr "Separação"
-#: ../bin/cparalle.c:140
+#: ../bin/cparalle.c:96
+msgid " Track doesn't support parallel"
+msgstr ""
+
+#: ../bin/cparalle.c:145
msgid "Create Parallel Track"
msgstr "Criar trecho paralelo"
-#: ../bin/cparalle.c:184
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:44
+#: ../bin/cparalle.c:189 ../../../../build/work/app/i18n/custmsg.h:44
msgid "Parallel"
msgstr "Paralelo"
-#: ../bin/cprint.c:96
-#: ../wlib/gtklib/CVS/Base/psprint.c:1155
-#: ../wlib/gtklib/psprint.c:1155
+#: ../bin/cprint.c:102
msgid "Portrait"
msgstr "Retrato"
-#: ../bin/cprint.c:96
-#: ../wlib/gtklib/CVS/Base/psprint.c:1155
-#: ../wlib/gtklib/psprint.c:1155
+#: ../bin/cprint.c:102
msgid "Landscape"
msgstr "Paisagem"
-#: ../bin/cprint.c:97
-#: ../bin/cselect.c:1856
-#: ../bin/cselect.c:1860
-#: ../bin/cswitchmotor.c:100
-#: ../bin/cswitchmotor.c:141
-#: ../bin/dbench.c:73
-#: ../bin/dease.c:63
-#: ../bin/doption.c:191
-#: ../bin/doption.c:286
-#: ../bin/macro.c:1226
+#: ../bin/cprint.c:103 ../bin/cselect.c:1922 ../bin/cselect.c:1926
+#: ../bin/cswitchmotor.c:87 ../bin/cswitchmotor.c:106
+#: ../bin/cswitchmotor.c:217 ../bin/dbench.c:78 ../bin/dease.c:64
+#: ../bin/doption.c:100 ../bin/doption.c:102 ../bin/doption.c:200
+#: ../bin/macro.c:1233
msgid "Normal"
msgstr "Normal"
-#: ../bin/cprint.c:97
-#: ../bin/cswitchmotor.c:101
-#: ../bin/cswitchmotor.c:142
-#: ../bin/ctrain.c:770
-#: ../bin/ctrain.c:1027
+#: ../bin/cprint.c:103 ../bin/cswitchmotor.c:88 ../bin/cswitchmotor.c:107
+#: ../bin/cswitchmotor.c:218 ../bin/ctrain.c:877 ../bin/ctrain.c:1187
msgid "Reverse"
msgstr "Inverso"
-#: ../bin/cprint.c:98
+#: ../bin/cprint.c:104
msgid "Engineering Data"
msgstr "Dados do projeto"
-#: ../bin/cprint.c:99
+#: ../bin/cprint.c:105
msgid "Print Registration Marks"
msgstr "Imprimir marcas de registro"
-#: ../bin/cprint.c:100
+#: ../bin/cprint.c:106
msgid "Ignore Page Margins"
msgstr "Ignorar margens de página"
-#: ../bin/cprint.c:101
+#: ../bin/cprint.c:107
msgid "Print Snap Grid"
msgstr "Imprimir grade"
-#: ../bin/cprint.c:102
+#: ../bin/cprint.c:108
msgid "Print Rulers"
msgstr "Imprimir régua"
-#: ../bin/cprint.c:103
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:402
+#: ../bin/cprint.c:109 ../../../../build/work/app/bin/bllnhlp.c:424
msgid "Print Roadbed Outline"
msgstr "Imprimir leito dos trilhos"
-#: ../bin/cprint.c:111
+#: ../bin/cprint.c:110
+#, fuzzy
+msgid "Print Centerline below Scale 1:1"
+msgstr "Imprimir linha central"
+
+#: ../bin/cprint.c:118
msgid "Print Scale"
msgstr "Imprimir escala"
-#: ../bin/cprint.c:112
+#: ../bin/cprint.c:119
msgid "Page Width"
msgstr "Largura de página"
-#: ../bin/cprint.c:113
+#: ../bin/cprint.c:120
msgid "Max"
msgstr "Máximo"
-#: ../bin/cprint.c:114
+#: ../bin/cprint.c:121
msgid "Height"
msgstr "Altura"
-#: ../bin/cprint.c:115
+#: ../bin/cprint.c:122
msgid "Snap Shot"
msgstr "Capturar"
-#: ../bin/cprint.c:116
+#: ../bin/cprint.c:123
msgid "Page Format"
msgstr "Formato da página"
-#: ../bin/cprint.c:117
+#: ../bin/cprint.c:124
msgid "Print Order"
msgstr "Ordem de impressão"
-#: ../bin/cprint.c:130
-#: ../bin/ctrain.c:174
-#: ../bin/dcar.c:1972
+#: ../bin/cprint.c:139 ../bin/ctrain.c:185 ../bin/dcar.c:1980
msgid "Width"
msgstr "Largura"
-#: ../bin/cprint.c:132
-#: ../bin/csnap.c:535
+#: ../bin/cprint.c:141 ../bin/csnap.c:542
msgid "Y"
msgstr "Y"
-#: ../bin/cprint.c:133
-#: ../bin/dcar.c:1953
+#: ../bin/cprint.c:142 ../bin/dcar.c:1961
msgid "Reset"
msgstr "Resetar"
-#: ../bin/cprint.c:135
+#: ../bin/cprint.c:144
msgid "Setup"
msgstr "Setup"
-#: ../bin/cprint.c:136
-#: ../bin/cprofile.c:548
-#: ../bin/misc.c:583
+#: ../bin/cprint.c:145 ../bin/cprofile.c:569 ../bin/misc.c:591
msgid "Clear"
msgstr "Limpar"
-#: ../bin/cprint.c:138
-#: ../bin/cprint.c:618
+#: ../bin/cprint.c:147 ../bin/cprint.c:588
msgid "0 pages"
msgstr "0 página"
-#: ../bin/cprint.c:228
-#: ../bin/cprint.c:277
+#: ../bin/cprint.c:211 ../bin/cprint.c:260
#, c-format
msgid "%d pages"
msgstr "%d páginas"
-#: ../bin/cprint.c:397
-#, c-format
-msgid "PrintScale %ld:1 Room %s x %s Model Scale %s File %s"
-msgstr "Escala de impressão %ld:1 Comôdo %s x %s Escala do modelo %s Arquivo %s"
+#: ../bin/cprint.c:380
+#, fuzzy, c-format
+msgid "PrintScale 1:%ld Room %s x %s Model Scale %s File %s"
+msgstr ""
+"Escala de impressão %ld:1 Comôdo %s x %s Escala do modelo %s Arquivo %s"
-#: ../bin/cprint.c:699
+#: ../bin/cprint.c:669
msgid "1 page"
msgstr "1 página"
-#: ../bin/cprint.c:1068
-#: ../bin/cprofile.c:549
-#: ../bin/ctodesgn.c:1712
-#: ../bin/denum.c:50
+#: ../bin/cprint.c:1039 ../bin/cprofile.c:570 ../bin/ctodesgn.c:1720
+#: ../bin/denum.c:55
msgid "Print"
msgstr "Imprimir"
-#: ../bin/cprint.c:1090
+#: ../bin/cprint.c:1061
msgid "Select pages to print, or drag to move print grid"
msgstr "Selecionar páginas a imprimir, ou arrastar para imprimir grade"
-#: ../bin/cprint.c:1190
+#: ../bin/cprint.c:1160
msgid "Print..."
msgstr "Imprimir..."
-#: ../bin/cprofile.c:456
-#: ../bin/cprofile.c:1255
-#: ../bin/cprofile.c:1351
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:97
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:40
+#: ../bin/cprofile.c:477 ../bin/cprofile.c:1279 ../bin/cprofile.c:1379
+#: ../../../../build/work/app/bin/bllnhlp.c:104
+#: ../../../../build/work/app/i18n/custmsg.h:40
msgid "Profile"
msgstr "Perfil"
-#: ../bin/cprofile.c:472
+#: ../bin/cprofile.c:493
#, c-format
msgid "%s Profile: %s"
msgstr "%s perfil: %s"
-#: ../bin/cprofile.c:620
-#: ../bin/cprofile.c:630
+#: ../bin/cprofile.c:641 ../bin/cprofile.c:651
#, c-format
msgid "Elev = %0.1f"
msgstr "Elev = %0.1f"
-#: ../bin/cprofile.c:632
+#: ../bin/cprofile.c:653
#, c-format
msgid "Elev=%0.2f %0.1f%%"
msgstr "Elev=%0.2f %0.1f%%"
-#: ../bin/cprofile.c:636
+#: ../bin/cprofile.c:657
#, c-format
msgid "%0.1f%% Elev = %0.2f"
msgstr "%0.1f%% Elev = %0.2f"
-#: ../bin/cprofile.c:640
+#: ../bin/cprofile.c:661
#, c-format
msgid "%0.1f%% Elev = %0.2f %0.1f%%"
msgstr "%0.1f%% Elev = %0.2f %0.1f%%"
-#: ../bin/cprofile.c:651
-#: ../bin/cprofile.c:1202
+#: ../bin/cprofile.c:672 ../bin/cprofile.c:1226
msgid "Profile Command"
msgstr "Comando perfil"
-#: ../bin/cprofile.c:659
-#: ../bin/cprofile.c:1260
+#: ../bin/cprofile.c:680 ../bin/cprofile.c:1284
msgid "Drag to change Elevation"
msgstr "Arrastar para alterar elevação"
-#: ../bin/cprofile.c:723
+#: ../bin/cprofile.c:747
msgid "Select a Defined Elevation to start Profile"
msgstr "Selecionar uma elevação definida para iniciar perfil"
-#: ../bin/cprofile.c:725
+#: ../bin/cprofile.c:749
msgid "Select a Defined Elevation to extend Profile"
msgstr "Selecionar uma elevação definida para estender perfil"
-#: ../bin/cprofile.c:1270
+#: ../bin/cprofile.c:1296
msgid "Select a Defined Elevation to start profile"
msgstr "Selecionar uma elevação definida para iniciar perfil"
-#: ../bin/cprofile.c:1353
+#: ../bin/cprofile.c:1381
msgid "Define"
msgstr "Definir"
-#: ../bin/cpull.c:438
-#: ../bin/cpull.c:583
+#: ../bin/cpull.c:436 ../bin/cpull.c:581
#, c-format
msgid "%d tracks moved"
msgstr "%d segmentos movidos"
-#: ../bin/cpull.c:473
+#: ../bin/cpull.c:471
msgid "Pull Tracks"
msgstr "Empurar trilhos"
-#: ../bin/cpull.c:547
+#: ../bin/cpull.c:545
msgid "Tighten Tracks"
msgstr "Trilhos forçados"
-#: ../bin/cpull.c:600
+#: ../bin/cpull.c:598
msgid "Select first End-Point to connect"
msgstr "Selecionar primeira extremidade a conectar"
-#: ../bin/cpull.c:611
+#: ../bin/cpull.c:609
msgid "Select second End-Point to connect"
msgstr "Selecionar segunda extremidade a conectar"
-#: ../bin/cpull.c:661
+#: ../bin/cpull.c:659
msgid "Connect Sectional Tracks"
msgstr "Conectar trechos seccionados"
-#: ../bin/cruler.c:141
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:51
+#: ../bin/cruler.c:151 ../../../../build/work/app/i18n/custmsg.h:51
msgid "Ruler"
msgstr "Medir"
-#: ../bin/cselect.c:306
+#: ../bin/cselect.c:313
msgid "Change Track Width"
msgstr "Alterar largura do trilho"
-#: ../bin/cselect.c:327
+#: ../bin/cselect.c:334
msgid "Delete Tracks"
msgstr "Apagar trilhos"
-#: ../bin/cselect.c:379
+#: ../bin/cselect.c:386
msgid "Hide Tracks (Tunnel)"
msgstr "Ocultar trilhos (túnel)"
-#: ../bin/cselect.c:418
-#: ../bin/misc.c:2113
+#: ../bin/cselect.c:425 ../bin/misc.c:2060
msgid "Move To Current Layer"
msgstr "Mover para camada em uso"
-#: ../bin/cselect.c:457
-#: ../bin/misc.c:2216
+#: ../bin/cselect.c:464 ../bin/misc.c:2175
msgid "Clear Elevations"
msgstr "Eliminar elevações"
-#: ../bin/cselect.c:501
+#: ../bin/cselect.c:508
msgid "Add Elevations"
msgstr "Adicionar elevações"
-#: ../bin/cselect.c:516
+#: ../bin/cselect.c:523
msgid "Refresh Compound"
msgstr "Atualizar composição"
-#: ../bin/cselect.c:552
-#: ../bin/dcar.c:4070
-#: ../bin/dcar.c:4075
-#: ../bin/dcustmgm.c:46
-#: ../bin/doption.c:106
+#: ../bin/cselect.c:559 ../bin/dcar.c:4078 ../bin/dcar.c:4083
+#: ../bin/dcustmgm.c:51 ../bin/layout.c:239
msgid "Scale"
msgstr "Escala"
-#: ../bin/cselect.c:552
-#: ../bin/cselect.c:577
+#: ../bin/cselect.c:559 ../bin/cselect.c:584
msgid "Ratio"
msgstr "Razão"
-#: ../bin/cselect.c:561
+#: ../bin/cselect.c:568
msgid "Do not resize track"
msgstr "Não redimensione o traçado"
-#: ../bin/cselect.c:565
+#: ../bin/cselect.c:572
msgid "Rescale by:"
msgstr "Reescalar para:"
-#: ../bin/cselect.c:567
+#: ../bin/cselect.c:574
msgid "From:"
msgstr "De:"
-#: ../bin/cselect.c:571
+#: ../bin/cselect.c:578
msgid "To: "
msgstr "A: "
-#: ../bin/cselect.c:636
+#: ../bin/cselect.c:643
msgid "Rescale Tracks"
msgstr "Reescalar traçado"
-#: ../bin/cselect.c:767
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:47
+#: ../bin/cselect.c:774 ../../../../build/work/app/i18n/custmsg.h:47
msgid "Rescale"
msgstr "Reescalar"
-#: ../bin/cselect.c:794
+#: ../bin/cselect.c:801
msgid "Draw moving track normally"
msgstr "Desenhar normalmente trechos sendo arrastados"
-#: ../bin/cselect.c:795
+#: ../bin/cselect.c:802
msgid "Draw moving track simply"
msgstr "Desenhar de modo simples trechos sendo arrastados"
-#: ../bin/cselect.c:796
+#: ../bin/cselect.c:803
msgid "Draw moving track as end-points"
msgstr "Desenhar apenas extremidades de trechos sendo movidos"
-#: ../bin/cselect.c:1089
+#: ../bin/cselect.c:1085
+msgid "Cornu too tight - it was deleted"
+msgstr ""
+
+#: ../bin/cselect.c:1105
+msgid "Cornu selected too tight after move - it was left alone"
+msgstr ""
+
+#: ../bin/cselect.c:1145
msgid "Move To Join"
msgstr "Arrastar para juntar"
-#: ../bin/cselect.c:1125
+#: ../bin/cselect.c:1181
msgid "Drag to move selected tracks"
msgstr "Arrastar para mover trecho selecionados"
-#: ../bin/cselect.c:1132
+#: ../bin/cselect.c:1188
msgid "Move Tracks"
msgstr "Mover trecho"
-#: ../bin/cselect.c:1187
+#: ../bin/cselect.c:1245
msgid "Click on selected object to align"
msgstr "Clicar no objeto selecionado para alinhar"
-#: ../bin/cselect.c:1215
+#: ../bin/cselect.c:1273
msgid "Drag to rotate selected tracks"
msgstr "Arrastar para rotacionar trechos selecionados"
-#: ../bin/cselect.c:1224
-#: ../bin/cselect.c:1376
+#: ../bin/cselect.c:1282 ../bin/cselect.c:1438
msgid "Rotate Tracks"
msgstr "Rotacionar trecho"
-#: ../bin/cselect.c:1263
-#: ../bin/cselect.c:1293
+#: ../bin/cselect.c:1321 ../bin/cselect.c:1352
#, c-format
msgid "Angle %0.3f"
msgstr "Ângulo %0.3f"
-#: ../bin/cselect.c:1322
+#: ../bin/cselect.c:1382
#, c-format
msgid " Angle %0.3f #%ld"
msgstr " Ângulo %0.3f No.%ld"
-#: ../bin/cselect.c:1324
+#: ../bin/cselect.c:1384
#, c-format
msgid " Angle %0.3f"
msgstr " Ângulo %0.3f"
-#: ../bin/cselect.c:1334
+#: ../bin/cselect.c:1395
msgid "Click on the 2nd Unselected object"
msgstr "Clicar no 2º objeto não selecionado"
-#: ../bin/cselect.c:1388
+#: ../bin/cselect.c:1450
msgid "Toggle Label"
msgstr "Ocultar ou apresentar etiqueta"
-#: ../bin/cselect.c:1417
+#: ../bin/cselect.c:1479
msgid "Select and drag a description"
msgstr "Selecionar e arrastar uma descrição"
-#: ../bin/cselect.c:1459
+#: ../bin/cselect.c:1521
msgid "Move Label"
msgstr "Mover etiqueta"
-#: ../bin/cselect.c:1484
+#: ../bin/cselect.c:1546
msgid "Show Description"
msgstr "Apresentar descrição"
-#: ../bin/cselect.c:1565
+#: ../bin/cselect.c:1628
msgid "Drag to mark mirror line"
msgstr "Arrastar para marcar linha espelho"
-#: ../bin/cselect.c:1579
+#: ../bin/cselect.c:1643
#, c-format
msgid "Angle %0.2f"
msgstr "Ângulo %0.2f"
-#: ../bin/cselect.c:1583
+#: ../bin/cselect.c:1648
msgid "Flip Tracks"
msgstr "Virar trecho"
-#: ../bin/cselect.c:1745
+#: ../bin/cselect.c:1811
msgid "Select tracks"
msgstr "Selecionar trecho"
-#: ../bin/cselect.c:1843
-#: ../bin/dcar.c:1536
-#: ../bin/doption.c:291
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:13
+#: ../bin/cselect.c:1909 ../bin/dcar.c:1544 ../bin/doption.c:205
+#: ../../../../build/work/app/i18n/custmsg.h:13
msgid "Select"
msgstr "Selecionar"
-#: ../bin/cselect.c:1857
-#: ../bin/cselect.c:1861
-#: ../bin/doption.c:287
+#: ../bin/cselect.c:1923 ../bin/cselect.c:1927 ../bin/doption.c:201
msgid "Simple"
msgstr "Simples"
-#: ../bin/cselect.c:1858
-#: ../bin/cselect.c:1862
+#: ../bin/cselect.c:1924 ../bin/cselect.c:1928
msgid "End Points"
msgstr "Extremidades"
-#: ../bin/cselect.c:1865
+#: ../bin/cselect.c:1931
msgid "Align"
msgstr "Alinhar"
-#: ../bin/cselect.c:1886
-#: ../bin/misc.c:2042
+#: ../bin/cselect.c:1952 ../bin/misc.c:1990
msgid "Tunnel"
msgstr "Túnel"
-#: ../bin/cselect.c:1895
+#: ../bin/cselect.c:1961
msgid "Move Description"
msgstr "Mover descrição"
-#: ../bin/cselect.c:1902
-#: ../bin/misc.c:2040
+#: ../bin/cselect.c:1968 ../bin/misc.c:1988
msgid "Move"
msgstr "Mover"
-#: ../bin/cselect.c:1904
-#: ../bin/misc.c:1819
-#: ../bin/misc.c:2041
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:58
+#: ../bin/cselect.c:1970 ../bin/misc.c:1764 ../bin/misc.c:1989
+#: ../../../../build/work/app/i18n/custmsg.h:58
msgid "Rotate"
msgstr "Rotacionar"
-#: ../bin/cselect.c:1906
-#: ../bin/dcar.c:1955
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:59
+#: ../bin/cselect.c:1972 ../bin/dcar.c:1963
+#: ../../../../build/work/app/i18n/custmsg.h:59
msgid "Flip"
msgstr "Virar"
-#: ../bin/csnap.c:516
+#: ../bin/csensor.c:197
+#, fuzzy
+msgid "Change Sensor"
+msgstr "Alterar escala"
+
+#: ../bin/csensor.c:243 ../bin/csensor.c:556
+msgid "Sensor"
+msgstr ""
+
+#: ../bin/csensor.c:374
+#, fuzzy
+msgid "Create Sensor"
+msgstr "Cria bancada"
+
+#: ../bin/csensor.c:377
+#, fuzzy
+msgid "Modify Sensor"
+msgstr "Modificar trecho"
+
+#: ../bin/csensor.c:410
+#, fuzzy
+msgid "Edit sensor"
+msgstr "Menu editar"
+
+#: ../bin/csensor.c:446
+#, fuzzy
+msgid "Place sensor"
+msgstr "Posicionar novo AMV"
+
+#: ../bin/csignal.c:237
+#, fuzzy
+msgid "Number Of Heads"
+msgstr "Números"
+
+#: ../bin/csignal.c:269
+#, fuzzy
+msgid "Change Signal"
+msgstr "Alterar escala"
+
+#: ../bin/csignal.c:303
+#, c-format
+msgid "(%d [%s]): Layer=%d, %d heads at %0.3f,%0.3f A%0.3f"
+msgstr ""
+
+#: ../bin/csignal.c:314 ../bin/csignal.c:885
+msgid "Signal"
+msgstr ""
+
+#: ../bin/csignal.c:492
+#, fuzzy
+msgid "Number of Heads"
+msgstr "Números"
+
+#: ../bin/csignal.c:497
+#, fuzzy
+msgid "Edit Aspect"
+msgstr "Menu editar"
+
+#: ../bin/csignal.c:499
+msgid "Add Aspect"
+msgstr ""
+
+#: ../bin/csignal.c:501
+#, fuzzy
+msgid "Delete Aspect"
+msgstr "Elimina objetos"
+
+#: ../bin/csignal.c:514
+msgid "Aspect Index"
+msgstr ""
+
+#: ../bin/csignal.c:529
+#, fuzzy
+msgid "Create Signal"
+msgstr "Criar linhas"
+
+#: ../bin/csignal.c:533
+#, fuzzy
+msgid "Modify Signal"
+msgstr "Modificar trecho"
+
+#: ../bin/csignal.c:640
+#, fuzzy
+msgid "Edit aspect"
+msgstr "Menu editar"
+
+#: ../bin/csignal.c:687
+#, c-format
+msgid "Are you sure you want to delete the %d aspect(s)"
+msgstr ""
+
+#: ../bin/csignal.c:708
+#, fuzzy
+msgid "Edit signal"
+msgstr "Menu editar"
+
+#: ../bin/csignal.c:770
+msgid "Place base of signal"
+msgstr ""
+
+#: ../bin/csignal.c:775
+#, fuzzy
+msgid "Drag to orient signal"
+msgstr "Arrastar para selecionar o ângulo"
+
+#: ../bin/csnap.c:523
msgid "Horz"
msgstr "Horizontal"
-#: ../bin/csnap.c:518
+#: ../bin/csnap.c:525
msgid "Spacing"
msgstr "Espaçamento"
-#: ../bin/csnap.c:520
+#: ../bin/csnap.c:527
msgid "Divisions"
msgstr "Divisões"
-#: ../bin/csnap.c:523
+#: ../bin/csnap.c:530
msgid "Enable"
msgstr "Habilitar"
-#: ../bin/csnap.c:524
+#: ../bin/csnap.c:531
msgid "Vert"
msgstr "Vertical"
-#: ../bin/csnap.c:533
-#: ../bin/dease.c:72
+#: ../bin/csnap.c:540 ../bin/dease.c:73
msgid "X"
msgstr "X"
-#: ../bin/csnap.c:537
+#: ../bin/csnap.c:544
msgid "A"
msgstr "θ"
-#: ../bin/csnap.c:540
+#: ../bin/csnap.c:547
msgid "Show"
msgstr "Apresentar"
-#: ../bin/csnap.c:710
-#: ../bin/doption.c:528
+#: ../bin/csnap.c:717 ../bin/doption.c:448
msgid "Snap Grid"
msgstr "Grade"
-#: ../bin/csnap.c:795
+#: ../bin/csnap.c:802
msgid "Change Grid..."
msgstr "Alterar grade..."
-#: ../bin/csplit.c:45
+#: ../bin/csplit.c:41
msgid "Set Block Gaps"
msgstr "Configurar espaçamento de bloco"
-#: ../bin/csplit.c:72
+#: ../bin/csplit.c:68
msgid "Select track to split"
msgstr "Selecionar trecho a seccionar"
-#: ../bin/csplit.c:106
-#: ../bin/dbench.c:64
-#: ../bin/dbench.c:75
+#: ../bin/csplit.c:84
+#, fuzzy
+msgid "Can't Split that Track"
+msgstr "Secciona um trilho"
+
+#: ../bin/csplit.c:108 ../bin/dbench.c:69 ../bin/dbench.c:80
msgid "Left"
msgstr "Esquerda"
-#: ../bin/csplit.c:107
-#: ../bin/dbench.c:65
-#: ../bin/dbench.c:74
+#: ../bin/csplit.c:109 ../bin/dbench.c:70 ../bin/dbench.c:79
msgid "Right"
msgstr "Direita"
-#: ../bin/csplit.c:108
-#: ../bin/csplit.c:113
+#: ../bin/csplit.c:110 ../bin/csplit.c:115
msgid "Both"
msgstr "Ambos"
-#: ../bin/csplit.c:111
+#: ../bin/csplit.c:113
msgid "Top"
msgstr "Em cima"
-#: ../bin/csplit.c:112
+#: ../bin/csplit.c:114
msgid "Bottom"
msgstr "Em baixo"
-#: ../bin/cstraigh.c:49
-msgid "Place 1st end point of Straight track"
+#: ../bin/cstraigh.c:58
+#, fuzzy
+msgid ""
+"Place 1st end point of Straight track + Shift -> snap to unconnected endpoint"
msgstr "Posicionar 1ª extremidade do trecho reto"
-#: ../bin/cstraigh.c:55
+#: ../bin/cstraigh.c:74
+msgid ""
+"No Unconnected end-point on track - Try again or release shift and click"
+msgstr ""
+
+#: ../bin/cstraigh.c:80
+msgid "Not on a Track - Try again or release shift and click"
+msgstr ""
+
+#: ../bin/cstraigh.c:89
msgid "Drag to place 2nd end point"
msgstr "Arrastar à posição da 2ª extremidade"
-#: ../bin/cstraigh.c:67
+#: ../bin/cstraigh.c:110
#, c-format
msgid "Straight Track Length=%s Angle=%0.3f"
msgstr "Trecho reto Comprimento=%s Ângulo=%0.3f"
-#: ../bin/cstraigh.c:104
-#: ../bin/tstraigh.c:254
+#: ../bin/cstraigh.c:158 ../bin/tstraigh.c:267
msgid "Straight Track"
msgstr "Trecho reto"
-#: ../bin/cstruct.c:64
-#: ../bin/cturnout.c:70
-#: ../bin/doption.c:191
-#: ../bin/doption.c:294
+#: ../bin/cstruct.c:72 ../bin/cturnout.c:78 ../bin/doption.c:100
+#: ../bin/doption.c:208
msgid "Hide"
msgstr "Esconder"
-#: ../bin/cstruct.c:319
-#: ../bin/cstruct.c:346
+#: ../bin/cstruct.c:327 ../bin/cstruct.c:354
msgid "Pier Number"
msgstr "Número do pilar"
-#: ../bin/cstruct.c:431
+#: ../bin/cstruct.c:439
#, c-format
msgid "Scale %d:1"
msgstr "Escala %d:1"
-#: ../bin/cstruct.c:433
+#: ../bin/cstruct.c:441
#, c-format
msgid "Width %s"
msgstr "Largura %s"
-#: ../bin/cstruct.c:435
+#: ../bin/cstruct.c:443
#, c-format
msgid "Height %s"
msgstr "Altura %s"
-#: ../bin/cstruct.c:533
+#: ../bin/cstruct.c:541
msgid "Place Structure"
msgstr "Posicionar estrutura"
-#: ../bin/cstruct.c:643
+#: ../bin/cstruct.c:651
msgid "Drag to place"
msgstr "Arrastar ao destino"
-#: ../bin/cstruct.c:670
+#: ../bin/cstruct.c:679
msgid "Drag to rotate"
msgstr "Arrastar para rotacionar"
-#: ../bin/cstruct.c:691
+#: ../bin/cstruct.c:700
#, c-format
msgid "Angle = %0.3f"
msgstr "Ângulo = %0.3f"
-#: ../bin/cstruct.c:776
+#: ../bin/cstruct.c:786
msgid "Select Structure and then drag to place"
msgstr "Selecionar estrutura e arrastar ao destino"
-#: ../bin/cstruct.c:794
-#: ../bin/cstruct.c:881
-msgid "Left drag to move, right drag to rotate, or press Return or click Ok to finalize"
-msgstr "Arrastar clicanco o botão esquerdo do mouse para mover, botão direito para rotacionar, pressionar \"Return\" ou clicar em \"Ok\" para finalizar"
+#: ../bin/cstruct.c:804 ../bin/cstruct.c:891
+msgid ""
+"Left drag to move, right drag to rotate, or press Return or click Ok to "
+"finalize"
+msgstr ""
+"Arrastar clicanco o botão esquerdo do mouse para mover, botão direito para "
+"rotacionar, pressionar \"Return\" ou clicar em \"Ok\" para finalizar"
-#: ../bin/cstruct.c:874
-#: ../bin/cturnout.c:2511
+#: ../bin/cstruct.c:884 ../bin/cturnout.c:2541
#, c-format
msgid "Place %s and draw into position"
msgstr "Posicionar %s e desenhar na posição"
-#: ../bin/cswitchmotor.c:102
-#: ../bin/cswitchmotor.c:143
+#: ../bin/cswitchmotor.c:89 ../bin/cswitchmotor.c:108
+#: ../bin/cswitchmotor.c:219
msgid "Point Sense"
msgstr "Aportar direção"
-#: ../bin/cswitchmotor.c:179
+#: ../bin/cswitchmotor.c:109
+#, fuzzy
+msgid "Turnout Number"
+msgstr "Número da parte"
+
+#: ../bin/cswitchmotor.c:255
msgid "Change Switch Motor"
msgstr "Alterar motor de AMV"
-#: ../bin/cswitchmotor.c:238
-msgid "Switch Motor"
+#: ../bin/cswitchmotor.c:316
+#, fuzzy
+msgid "Switch motor"
msgstr "Motor de AMV"
-#: ../bin/cswitchmotor.c:361
-#: ../bin/cswitchmotor.c:383
-#: ../bin/cswitchmotor.c:520
+#: ../bin/cswitchmotor.c:395
+#, c-format
+msgid "ResolveSwitchmotor: Turnout T%d: T%d doesn't exist"
+msgstr ""
+
+#: ../bin/cswitchmotor.c:462 ../bin/cswitchmotor.c:625
+msgid "Switch motor must have a name!"
+msgstr ""
+
+#: ../bin/cswitchmotor.c:466
msgid "Create Switch Motor"
msgstr "Criar motor de AMV"
-#: ../bin/cswitchmotor.c:397
-#: ../bin/cswitchmotor.c:427
-#: ../bin/cswitchmotor.c:459
+#: ../bin/cswitchmotor.c:491
+#, fuzzy
+msgid "Create switch motor"
+msgstr "Criar motor de AMV"
+
+#: ../bin/cswitchmotor.c:505 ../bin/cswitchmotor.c:536
+#: ../bin/cswitchmotor.c:568
msgid "Select a turnout"
msgstr "Selecionar um AMV"
-#: ../bin/cswitchmotor.c:404
+#: ../bin/cswitchmotor.c:512
msgid "Not a turnout!"
msgstr "Isto não é um AMV!"
-#: ../bin/cswitchmotor.c:436
-msgid "Not a SwitchMotor!"
+#: ../bin/cswitchmotor.c:545 ../bin/cswitchmotor.c:576
+#, fuzzy
+msgid "Not a switch motor!"
msgstr "Isto não é um motor de AMV!"
-#: ../bin/cswitchmotor.c:467
-msgid "Not a Switch Motor!"
-msgstr "Isto não é um motor de AMV!"
-
-#: ../bin/cswitchmotor.c:472
-#, c-format
-msgid "Really delete Switch Motor %s?"
+#: ../bin/cswitchmotor.c:581
+#, fuzzy, c-format
+msgid "Really delete switch motor %s?"
msgstr "Eliminar motor de AMV %s?"
-#: ../bin/cswitchmotor.c:473
-#: ../bin/cswitchmotor.c:522
+#: ../bin/cswitchmotor.c:582
msgid "Delete Switch Motor"
msgstr "Eliminar motor de AMV"
-#: ../bin/cswitchmotor.c:519
-msgid "SwitchMotor"
-msgstr "Motor de AMV"
+#: ../bin/cswitchmotor.c:629
+#, fuzzy
+msgid "Modify Switch Motor"
+msgstr "Editar motor de AMV"
-#: ../bin/cswitchmotor.c:519
-msgid "Switch Motors"
-msgstr "Motores de AMV"
+#: ../bin/cswitchmotor.c:655
+#, fuzzy
+msgid "Edit switch motor"
+msgstr "Editar motor de AMV"
-#: ../bin/cswitchmotor.c:521
-msgid "Edit Switch Motor"
+#: ../bin/cswitchmotor.c:661
+#, fuzzy, c-format
+msgid "Edit switch motor %d"
msgstr "Editar motor de AMV"
-#: ../bin/ctext.c:170
-#: ../bin/ctext.c:208
+#: ../bin/cswitchmotor.c:769
+msgid "Switch Motor"
+msgstr "Motor de AMV"
+
+#: ../bin/cswitchmotor.c:781
+#, fuzzy, c-format
+msgid "Deleting Switch Motor %s"
+msgstr "Eliminar motor de AMV"
+
+#: ../bin/ctext.c:196 ../bin/ctext.c:235
msgid "Create Text"
msgstr "Criar texto"
-#: ../bin/ctext.c:238
+#: ../bin/ctext.c:266
msgid "Fonts..."
msgstr "Fontes..."
-#: ../bin/ctodesgn.c:106
+#: ../bin/ctodesgn.c:114
msgid "Frog #"
msgstr "Jacaré No."
-#: ../bin/ctodesgn.c:106
+#: ../bin/ctodesgn.c:114
msgid "Degrees"
msgstr "Graus"
-#: ../bin/ctodesgn.c:133
-#: ../bin/ctodesgn.c:134
-#: ../bin/ctodesgn.c:182
-#: ../bin/ctodesgn.c:205
-#: ../bin/ctodesgn.c:207
-#: ../bin/ctodesgn.c:243
-#: ../bin/ctodesgn.c:244
-#: ../bin/ctodesgn.c:280
-#: ../bin/ctodesgn.c:282
-#: ../bin/ctodesgn.c:497
+#: ../bin/ctodesgn.c:141 ../bin/ctodesgn.c:142 ../bin/ctodesgn.c:190
+#: ../bin/ctodesgn.c:213 ../bin/ctodesgn.c:215 ../bin/ctodesgn.c:251
+#: ../bin/ctodesgn.c:252 ../bin/ctodesgn.c:288 ../bin/ctodesgn.c:290
+#: ../bin/ctodesgn.c:505
msgid "Offset"
msgstr "Distância"
-#: ../bin/ctodesgn.c:142
-#: ../bin/ctodesgn.c:1759
-#: ../bin/ctodesgn.c:1760
+#: ../bin/ctodesgn.c:150 ../bin/ctodesgn.c:1767 ../bin/ctodesgn.c:1768
msgid "Left Description"
msgstr "Descrição a esquerda"
-#: ../bin/ctodesgn.c:143
-#: ../bin/ctodesgn.c:146
+#: ../bin/ctodesgn.c:151 ../bin/ctodesgn.c:154
msgid " #"
msgstr " No."
-#: ../bin/ctodesgn.c:145
-#: ../bin/ctodesgn.c:1758
+#: ../bin/ctodesgn.c:153 ../bin/ctodesgn.c:1766
msgid "Right Description"
msgstr "Descrição a direita"
-#: ../bin/ctodesgn.c:147
+#: ../bin/ctodesgn.c:155
msgid "Roadbed Width"
msgstr "Largura do leito"
-#: ../bin/ctodesgn.c:151
-#: ../bin/denum.c:51
-#: ../wlib/gtklib/CVS/Base/psprint.c:1253
-#: ../wlib/gtklib/psprint.c:1253
+#: ../bin/ctodesgn.c:159 ../bin/denum.c:56
msgid "Print Setup"
msgstr "Setup de impressão"
-#: ../bin/ctodesgn.c:180
+#: ../bin/ctodesgn.c:188
msgid "Diverging Length"
msgstr "Comprimento divergente"
-#: ../bin/ctodesgn.c:181
+#: ../bin/ctodesgn.c:189
msgid "Diverging Angle"
msgstr "Ângulo divergente"
-#: ../bin/ctodesgn.c:182
+#: ../bin/ctodesgn.c:190
msgid "Diverging Offset"
msgstr "Distância de divergência"
-#: ../bin/ctodesgn.c:183
+#: ../bin/ctodesgn.c:191
msgid "Overall Length"
msgstr "Comprimento total"
-#: ../bin/ctodesgn.c:193
+#: ../bin/ctodesgn.c:201
msgid "Regular Turnout"
msgstr "AMV regular"
-#: ../bin/ctodesgn.c:203
+#: ../bin/ctodesgn.c:211
msgid "Inner Length"
msgstr "Comprimento interno"
-#: ../bin/ctodesgn.c:204
+#: ../bin/ctodesgn.c:212
msgid "Inner Angle"
msgstr "Ângulo interno"
-#: ../bin/ctodesgn.c:205
+#: ../bin/ctodesgn.c:213
msgid "Inner Offset"
msgstr "Distância interna"
-#: ../bin/ctodesgn.c:206
+#: ../bin/ctodesgn.c:214
msgid "Outer Angle"
msgstr "Ângulo externo"
-#: ../bin/ctodesgn.c:207
+#: ../bin/ctodesgn.c:215
msgid "Outer Offset"
msgstr "Distância externa"
-#: ../bin/ctodesgn.c:208
+#: ../bin/ctodesgn.c:216
msgid "Outer Length"
msgstr "Comprimento externo"
-#: ../bin/ctodesgn.c:230
+#: ../bin/ctodesgn.c:238
msgid "Curved Turnout"
msgstr "AMV curvo"
-#: ../bin/ctodesgn.c:241
-#: ../bin/ctodesgn.c:278
+#: ../bin/ctodesgn.c:249 ../bin/ctodesgn.c:286
msgid "Left Length"
msgstr "Comprimento a esquerda"
-#: ../bin/ctodesgn.c:242
-#: ../bin/ctodesgn.c:279
+#: ../bin/ctodesgn.c:250 ../bin/ctodesgn.c:287
msgid "Left Angle"
msgstr "Ângulo a esquerda"
-#: ../bin/ctodesgn.c:243
-#: ../bin/ctodesgn.c:280
+#: ../bin/ctodesgn.c:251 ../bin/ctodesgn.c:288
msgid "Left Offset"
msgstr "Distância esquerda"
-#: ../bin/ctodesgn.c:244
-#: ../bin/ctodesgn.c:282
+#: ../bin/ctodesgn.c:252 ../bin/ctodesgn.c:290
msgid "Right Offset"
msgstr "Distância direita"
-#: ../bin/ctodesgn.c:245
-#: ../bin/ctodesgn.c:283
+#: ../bin/ctodesgn.c:253 ../bin/ctodesgn.c:291
msgid "Right Angle"
msgstr "Ângulo a direita"
-#: ../bin/ctodesgn.c:246
-#: ../bin/ctodesgn.c:284
+#: ../bin/ctodesgn.c:254 ../bin/ctodesgn.c:292
msgid "Right Length"
msgstr "Comprimento a direita"
-#: ../bin/ctodesgn.c:268
+#: ../bin/ctodesgn.c:276
msgid "Wye Turnout"
msgstr "AMV em Y"
-#: ../bin/ctodesgn.c:309
+#: ../bin/ctodesgn.c:317
msgid "3-way Turnout"
msgstr "AMV de 3 posições"
-#: ../bin/ctodesgn.c:329
+#: ../bin/ctodesgn.c:337
msgid "Crossing"
msgstr "Cruzamento"
-#: ../bin/ctodesgn.c:350
+#: ../bin/ctodesgn.c:358
msgid "Single Slipswitch"
msgstr "Slipswitch simples"
-#: ../bin/ctodesgn.c:371
+#: ../bin/ctodesgn.c:379
msgid "Double Slipswitch"
msgstr "Slipswitch duplo"
-#: ../bin/ctodesgn.c:391
+#: ../bin/ctodesgn.c:399
msgid "Right Crossover"
msgstr "Sobrecruzamento direito"
-#: ../bin/ctodesgn.c:411
+#: ../bin/ctodesgn.c:419
msgid "Left Crossover"
msgstr "Sobrecruzamento esquerdo"
-#: ../bin/ctodesgn.c:431
+#: ../bin/ctodesgn.c:439
msgid "Double Crossover"
msgstr "Sobrecruzamento duplo"
-#: ../bin/ctodesgn.c:449
+#: ../bin/ctodesgn.c:457
msgid "Straight Section"
msgstr "Seção reta"
-#: ../bin/ctodesgn.c:460
+#: ../bin/ctodesgn.c:468
msgid "Angle (Degrees)"
msgstr "Ângulo (em graus)"
-#: ../bin/ctodesgn.c:468
+#: ../bin/ctodesgn.c:476
msgid "Curved Section"
msgstr "Seção curva"
-#: ../bin/ctodesgn.c:487
+#: ../bin/ctodesgn.c:495
msgid "Bumper Section"
msgstr "Seção de parachoque"
# Esse texto possui dois contextos diferentes. Favor alterar software para distingui-los.
-#: ../bin/ctodesgn.c:497
-#: ../bin/denum.c:109
-#: ../bin/denum.c:172
-#: ../bin/denum.c:201
-#: ../bin/denum.c:202
-#: ../bin/dlayer.c:328
+#: ../bin/ctodesgn.c:505 ../bin/denum.c:123 ../bin/denum.c:186
+#: ../bin/denum.c:218 ../bin/denum.c:219 ../bin/dlayer.c:455
msgid "Count"
msgstr "Posição"
-#: ../bin/ctodesgn.c:498
+#: ../bin/ctodesgn.c:506
msgid "Radius1"
msgstr "Raio 1"
-#: ../bin/ctodesgn.c:499
+#: ../bin/ctodesgn.c:507
msgid "Radius2"
msgstr "Raio 2"
-#: ../bin/ctodesgn.c:579
+#: ../bin/ctodesgn.c:587
msgid "Turntable Section"
msgstr "Virador de locomotivas"
-#: ../bin/ctodesgn.c:1413
+#: ../bin/ctodesgn.c:1421
#, c-format
msgid "%s Designer"
msgstr "Editor %s"
-#: ../bin/ctodesgn.c:1417
+#: ../bin/ctodesgn.c:1425
+#, c-format
+msgid "%s %d x %d (of %d x %d)"
+msgstr ""
+
+#: ../bin/ctodesgn.c:1425
msgid "Page"
msgstr "Página"
-#: ../bin/ctodesgn.c:1425
+#: ../bin/ctodesgn.c:1433
msgid "Frog Number"
msgstr "Número do jacaré"
-#: ../bin/ctodesgn.c:1712
+#: ../bin/ctodesgn.c:1720
msgid "Turnout Designer"
msgstr "Editor de AMV"
-#: ../bin/ctodesgn.c:1722
+#: ../bin/ctodesgn.c:1730
#, c-format
msgid "%s %s Designer"
msgstr "Editor %s %s"
-#: ../bin/ctrain.c:170
-#: ../bin/dcar.c:1986
-#: ../bin/dcar.c:4070
-#: ../bin/dcar.c:4075
+#: ../bin/ctrain.c:181 ../bin/dcar.c:1994 ../bin/dcar.c:4078
+#: ../bin/dcar.c:4083
msgid "Index"
msgstr "Índice"
-#: ../bin/ctrain.c:176
-#: ../bin/dcar.c:4071
+#: ../bin/ctrain.c:187 ../bin/dcar.c:4079
msgid "Rep Marks"
msgstr "Abreviaturas"
-#: ../bin/ctrain.c:240
+#: ../bin/ctrain.c:261
msgid "Car"
msgstr "Material rodante"
-#: ../bin/ctrain.c:544
+#: ../bin/ctrain.c:592
msgid "Follow"
msgstr "Seguido"
-#: ../bin/ctrain.c:545
+#: ../bin/ctrain.c:593
msgid "Auto Reverse"
msgstr "Auto reverso"
-#: ../bin/ctrain.c:564
-#: ../bin/dcar.c:4955
+#: ../bin/ctrain.c:612 ../bin/dcar.c:4966
msgid "Find"
msgstr "Encontrar"
# não seria melhor "Procurar"
-#: ../bin/ctrain.c:570
-#: ../bin/ctrain.c:770
-#: ../bin/ctrain.c:1027
+#: ../bin/ctrain.c:618 ../bin/ctrain.c:877 ../bin/ctrain.c:1187
+#: ../wlib/gtklib/ixhelp.c:239
msgid "Forward"
msgstr "Rodar"
-#: ../bin/ctrain.c:572
-#: ../bin/ctrain.c:2556
-#: ../bin/dcar.c:4409
-#: ../bin/dcar.c:4419
-#: ../bin/dcar.c:4538
-#: ../bin/fileio.c:240
-#: ../bin/macro.c:78
+#: ../bin/ctrain.c:620 ../bin/ctrain.c:3027 ../bin/dcar.c:4418
+#: ../bin/dcar.c:4428 ../bin/dcar.c:4548 ../bin/fileio.c:236 ../bin/macro.c:87
msgid "Stop"
msgstr "Parar"
-#: ../bin/ctrain.c:723
-#: ../bin/ctrain.c:746
+#: ../bin/ctrain.c:818 ../bin/ctrain.c:847
msgid "Crashed"
msgstr "Colisão"
-#: ../bin/ctrain.c:725
+#: ../bin/ctrain.c:820
msgid "Not on Track"
msgstr "Isso não é um trilho"
-#: ../bin/ctrain.c:728
+#: ../bin/ctrain.c:824
msgid "Trains Paused"
msgstr "Trens parados"
-#: ../bin/ctrain.c:730
+#: ../bin/ctrain.c:826
msgid "Running"
msgstr "Rodando"
-#: ../bin/ctrain.c:734
+#: ../bin/ctrain.c:831
msgid "End of Track"
msgstr "Fim da linha"
-#: ../bin/ctrain.c:737
+#: ../bin/ctrain.c:835
msgid "Open Turnout"
msgstr "AMV aberto"
-#: ../bin/ctrain.c:740
+#: ../bin/ctrain.c:839
msgid "Manual Stop"
msgstr "Parada manual"
-#: ../bin/ctrain.c:743
+#: ../bin/ctrain.c:843
msgid "No Room"
msgstr "Espaço insuficiente"
-#: ../bin/ctrain.c:749
+#: ../bin/ctrain.c:851
msgid "Unknown Status"
msgstr "Estado desconhecido"
-#: ../bin/ctrain.c:758
+#: ../bin/ctrain.c:861
msgid "No trains"
msgstr "Nenhum trem"
-#: ../bin/ctrain.c:1076
+#: ../bin/ctrain.c:1238
msgid "Train Control XXX"
msgstr "Controle do trem XXX"
-#: ../bin/ctrain.c:1077
+#: ../bin/ctrain.c:1239
#, c-format
msgid "Train Control %d"
msgstr "Controle do trem %d"
-#: ../bin/ctrain.c:1079
+#: ../bin/ctrain.c:1241
msgid "Train Control"
msgstr "Controle de trem"
-#: ../bin/ctrain.c:2017
-#: ../bin/dcar.c:1962
-msgid "Road"
-msgstr "Companhia"
-
-#: ../bin/ctrain.c:2017
-#: ../bin/dcar.c:1966
-msgid "Number"
-msgstr "Número"
-
-#: ../bin/ctrain.c:2054
-#: ../bin/ctrain.c:2536
+#: ../bin/ctrain.c:3004
msgid "Train"
msgstr "Trem"
-#: ../bin/ctrain.c:2551
+#: ../bin/ctrain.c:3017
msgid "Uncouple"
msgstr "Desengatar"
-#: ../bin/ctrain.c:2552
+#: ../bin/ctrain.c:3019
msgid "Flip Car"
msgstr "Virar material rodante"
-#: ../bin/ctrain.c:2553
+#: ../bin/ctrain.c:3021
msgid "Flip Train"
msgstr "Virar trem"
-#: ../bin/ctrain.c:2554
+#: ../bin/ctrain.c:3023
msgid "MU Master"
msgstr "MU Master"
-#: ../bin/ctrain.c:2555
+#: ../bin/ctrain.c:3026
msgid "Change Direction"
msgstr "Alternar direção"
-#: ../bin/ctrain.c:2558
+#: ../bin/ctrain.c:3030
msgid "Remove Car"
msgstr "Remover material rodante"
-#: ../bin/ctrain.c:2559
+#: ../bin/ctrain.c:3033
msgid "Remove Train"
msgstr "Remover trem"
-#: ../bin/cturnout.c:81
-#: ../bin/dcar.c:2008
-#: ../bin/dcar.c:2012
-#: ../bin/dcustmgm.c:59
-#: ../wlib/gtklib/CVS/Base/psprint.c:1256
-#: ../wlib/gtklib/CVS/Base/psprint.c:1274
-#: ../wlib/gtklib/psprint.c:1256
-#: ../wlib/gtklib/psprint.c:1274
+#: ../bin/cturnout.c:89 ../bin/dcar.c:2016 ../bin/dcar.c:2020
+#: ../bin/dcustmgm.c:64
msgid "New"
msgstr "Novo"
-#: ../bin/cturnout.c:191
+#: ../bin/cturnout.c:201
#, c-format
msgid "Turnout path[%d:%d] out of bounds: %d"
msgstr "AMV[%d:%d] fora do limite: %d"
-#: ../bin/cturnout.c:203
-#: ../bin/cturnout.c:208
+#: ../bin/cturnout.c:213 ../bin/cturnout.c:218
#, c-format
msgid "Turnout path[%d] %d is not a track segment"
msgstr "AMV[%d] %d não se encontra em um segmento"
-#: ../bin/cturnout.c:216
+#: ../bin/cturnout.c:226
#, c-format
msgid "Turnout path[%d] %d-%d not connected: %0.3f"
msgstr "AMV [%d] %d-%d não conectado: %0.3f"
-#: ../bin/cturnout.c:252
+#: ../bin/cturnout.c:262
msgid "Unknown special case"
msgstr "Caso especial desconhecido"
-#: ../bin/cturnout.c:358
+#: ../bin/cturnout.c:368
msgid "Connect Adjustable Tracks"
msgstr "Conectar trechos ajustáveis"
-#: ../bin/cturnout.c:917
+#: ../bin/cturnout.c:927
msgid "splitTurnout: can't find segment"
msgstr "Dividir AMV: não foi possivel encontrar segmento"
-#: ../bin/cturnout.c:1327
-#: ../bin/track.c:1863
-#: ../bin/tstraigh.c:529
+#: ../bin/cturnout.c:1337 ../bin/track.c:1952 ../bin/tstraigh.c:542
msgid "Drag to change track length"
msgstr "Arrastar para alterar comprimento do trecho"
-#: ../bin/cturnout.c:1338
+#: ../bin/cturnout.c:1348
#, c-format
msgid "Length=%s"
msgstr "Comprimento=%s"
-#: ../bin/cturnout.c:1582
-#: ../bin/cturnout.c:2555
+#: ../bin/cturnout.c:1609 ../bin/cturnout.c:2585
msgid "TURNOUT "
msgstr "AMV "
-#: ../bin/cturnout.c:1930
+#: ../bin/cturnout.c:1960
#, c-format
msgid "%d connections, max distance %0.3f (%s)"
msgstr "%d conexões, distancia máxima %0.3f (%s)"
-#: ../bin/cturnout.c:1935
+#: ../bin/cturnout.c:1965
#, c-format
msgid "0 connections (%s)"
msgstr "0 conexões (%s)"
-#: ../bin/cturnout.c:1975
+#: ../bin/cturnout.c:2005
msgid "Place New Turnout"
msgstr "Posicionar novo AMV"
-#: ../bin/cturnout.c:2234
-#: ../bin/cturnout.c:2290
-#: ../bin/cturnout.c:2406
-#: ../bin/cturnout.c:2518
-msgid "Left drag to move, right drag to rotate, press Space or Return to fix track in place or Esc to cancel"
-msgstr "Arrastar com o botão esquerdo do mouse para mover, direito para rotacionar, pressionar barra de espaço ou \"Enter\" para fixar trecho ou \"Esc\" para anular"
+#: ../bin/cturnout.c:2264 ../bin/cturnout.c:2320 ../bin/cturnout.c:2436
+#: ../bin/cturnout.c:2548
+msgid ""
+"Left drag to move, right drag to rotate, press Space or Return to fix track "
+"in place or Esc to cancel"
+msgstr ""
+"Arrastar com o botão esquerdo do mouse para mover, direito para rotacionar, "
+"pressionar barra de espaço ou \"Enter\" para fixar trecho ou \"Esc\" para "
+"anular"
-#: ../bin/cturnout.c:2281
+#: ../bin/cturnout.c:2311
#, c-format
msgid "Angle = %0.3f (%s)"
msgstr "Ângulo = %0.3f (%s)"
-#: ../bin/cturnout.c:2371
-#: ../bin/param.c:2563
+#: ../bin/cturnout.c:2401 ../bin/param.c:2468
msgid "Close"
msgstr "Fechar"
-#: ../bin/cturnout.c:2388
+#: ../bin/cturnout.c:2418
msgid "Pick turnout and active End Point, then place on the layout"
msgstr "Selecionar AMV e ativar extremidade, e então posicionar no layout"
-#: ../bin/cturntbl.c:47
-#: ../bin/cturntbl.c:240
-#: ../bin/cturntbl.c:766
-#: ../bin/cturntbl.c:779
+#: ../bin/cturntbl.c:52 ../bin/cturntbl.c:246 ../bin/cturntbl.c:795
+#: ../bin/cturntbl.c:808
msgid "Diameter"
msgstr "Diâmetro"
-#: ../bin/cturntbl.c:241
+#: ../bin/cturntbl.c:247
msgid "# EndPt"
msgstr "No. da extremidade"
-#: ../bin/cturntbl.c:272
+#: ../bin/cturntbl.c:281
#, c-format
msgid "Turntable(%d): Layer=%d Center=[%s %s] Diameter=%s #EP=%d"
-msgstr "Virador(%d): Camada=%d Centro=[%s %s] Diâmetro=%s No. da extremidade=%d"
+msgstr ""
+"Virador(%d): Camada=%d Centro=[%s %s] Diâmetro=%s No. da extremidade=%d"
-#: ../bin/cturntbl.c:286
-#: ../bin/cturntbl.c:824
+#: ../bin/cturntbl.c:296 ../bin/cturntbl.c:853
msgid "Turntable"
msgstr "Virador de locomotivas"
-#: ../bin/cturntbl.c:544
+#: ../bin/cturntbl.c:554
msgid "Drag to create stall track"
msgstr "Arrastar para criar ramo"
-#: ../bin/cturntbl.c:796
+#: ../bin/cturntbl.c:825
msgid "Create Turntable"
msgstr "Criar virador de locomotivas"
-#: ../bin/cundo.c:154
+#: ../bin/cundo.c:166
msgid "Undo Trace"
msgstr "Desfazer traço"
-#: ../bin/cundo.c:488
+#: ../bin/cundo.c:501
#, c-format
msgid "Undo: %s"
msgstr "Desfazer: %s"
-#: ../bin/cundo.c:491
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:125
+#: ../bin/cundo.c:504 ../../../../build/work/app/bin/bllnhlp.c:136
msgid "Undo last command"
msgstr "Desfazer último comando"
-#: ../bin/cundo.c:496
+#: ../bin/cundo.c:509
#, c-format
msgid "Redo: %s"
msgstr "Refazer: %s"
-#: ../bin/cundo.c:499
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:99
+#: ../bin/cundo.c:512 ../../../../build/work/app/bin/bllnhlp.c:106
msgid "Redo last undo"
msgstr "Refazer último comando"
-#: ../bin/custom.c:153
+#: ../bin/custom.c:164
#, c-format
msgid "%s Turnout Designer"
msgstr "Editor de AMV %s"
-#: ../bin/custom.c:158
+#: ../bin/custom.c:169
#, c-format
msgid "%s Version %s"
msgstr "%s versão %s"
-#: ../bin/custom.c:163
+#: ../bin/custom.c:174
#, c-format
msgid "%s Files|*.xtc"
msgstr "%s Arquivos|*.xtc"
-#: ../bin/custom.c:168
+#: ../bin/custom.c:179
#, c-format
msgid "%s Import Files|*.%sti"
msgstr "%s importar arquivos|*.%sti"
-#: ../bin/custom.c:173
+#: ../bin/custom.c:184
msgid "Data Exchange Format Files|*.dxf"
msgstr "Arquivos Data Exchange Format|*.dxf"
-#: ../bin/custom.c:177
+#: ../bin/custom.c:188
#, c-format
msgid "%s Record Files|*.%str"
msgstr "%s Arquivos de registro|*.%str"
-#: ../bin/custom.c:182
+#: ../bin/custom.c:193
#, c-format
msgid "%s Note Files|*.not"
msgstr "%s Arquivos de notas|*.not"
-#: ../bin/custom.c:187
+#: ../bin/custom.c:198
#, c-format
msgid "%s Log Files|*.log"
msgstr "%s Arquivos de Log|*.log"
-#: ../bin/custom.c:192
+#: ../bin/custom.c:203
#, c-format
msgid "%s PartsList Files|*.txt"
msgstr "%s Arquivos de Material|*.txt"
-#: ../bin/dbench.c:38
+#: ../bin/dbench.c:43
msgid " L-Girder"
msgstr " Viga mestra em L"
-#: ../bin/dbench.c:38
+#: ../bin/dbench.c:43
msgid " T-Girder"
msgstr "Viga mestra em T"
-#: ../bin/dbench.c:61
+#: ../bin/dbench.c:66
msgid "On Edge"
msgstr "À borda"
-#: ../bin/dbench.c:62
+#: ../bin/dbench.c:67
msgid "Flat"
msgstr "Plano"
-#: ../bin/dbench.c:66
+#: ../bin/dbench.c:71
msgid "Left-Down"
msgstr "Abaixo à esquerda"
-#: ../bin/dbench.c:67
+#: ../bin/dbench.c:72
msgid "Right-Down"
msgstr "Abaixo à direita"
-#: ../bin/dbench.c:68
+#: ../bin/dbench.c:73
msgid "Left-Up"
msgstr "Acima à esquerda"
-#: ../bin/dbench.c:69
+#: ../bin/dbench.c:74
msgid "Right-Up"
msgstr "Acima à direita"
-#: ../bin/dbench.c:70
+#: ../bin/dbench.c:75
msgid "Left-Inverted"
msgstr "Esquerdo invertido"
-#: ../bin/dbench.c:71
+#: ../bin/dbench.c:76
msgid "Right-Inverted"
msgstr "Direito invertido"
-#: ../bin/dbench.c:76
+#: ../bin/dbench.c:81
msgid "Inverted"
msgstr "Invertido"
-#: ../bin/dbench.c:142
+#: ../bin/dbench.c:147
#, c-format
msgid ""
"Bad BenchType for %s:\n"
@@ -2662,758 +2785,690 @@ msgstr ""
"Tipo de bancada não apropriada para %s:\n"
"%s"
-#: ../bin/dbench.c:142
-#: ../bin/dcar.c:4225
-#: ../bin/dcar.c:4409
-#: ../bin/dcar.c:4419
-#: ../bin/dcar.c:4466
-#: ../bin/dcar.c:4473
-#: ../bin/dcar.c:4491
-#: ../bin/dcar.c:4504
-#: ../bin/dcar.c:4509
-#: ../bin/dcar.c:4538
-#: ../bin/dcar.c:4699
-#: ../bin/fileio.c:240
-#: ../bin/fileio.c:528
-#: ../bin/fileio.c:646
-#: ../bin/fileio.c:739
-#: ../bin/fileio.c:926
-#: ../bin/fileio.c:1202
-#: ../bin/fileio.c:1338
-#: ../bin/fileio.c:1421
-#: ../bin/fileio.c:1461
-#: ../bin/macro.c:163
-#: ../bin/macro.c:831
-#: ../bin/macro.c:847
-#: ../bin/macro.c:1150
-#: ../bin/param.c:2042
-#: ../bin/track.c:920
-#: ../bin/track.c:1262
-#: ../bin/track.c:1552
-#: ../bin/track.c:1556
-#: ../bin/track.c:1576
-#: ../bin/track.c:1638
-#: ../wlib/gtklib/CVS/Base/wpref.c:241
-#: ../wlib/gtklib/CVS/Base/wpref.c:248
-#: ../wlib/gtklib/wpref.c:241
-#: ../wlib/gtklib/wpref.c:248
-msgid "Continue"
-msgstr "Continuar"
-
-#: ../bin/dbitmap.c:99
-#: ../bin/dbitmap.c:103
+#: ../bin/dbitmap.c:102 ../bin/dbitmap.c:106
msgid "Drawn with "
msgstr "Desenhado com "
-#: ../bin/dbitmap.c:113
+#: ../bin/dbitmap.c:116
msgid "Drawing tracks to BitMap"
msgstr "Desenhando layout em bitmap"
-#: ../bin/dbitmap.c:120
+#: ../bin/dbitmap.c:123
msgid "Writing BitMap to file"
msgstr "Gravando bitmap em arquivo"
-#: ../bin/dbitmap.c:141
+#: ../bin/dbitmap.c:144
msgid "Print Titles"
msgstr "Imprimir títulos"
-#: ../bin/dbitmap.c:141
+#: ../bin/dbitmap.c:144
msgid "Print Borders"
msgstr "Imprimir bordas"
-#: ../bin/dbitmap.c:142
+#: ../bin/dbitmap.c:145
msgid "Print Centerline"
msgstr "Imprimir linha central"
# São realmente necessários os espaços no texto?
-#: ../bin/dbitmap.c:149
+#: ../bin/dbitmap.c:152
msgid " dpi"
msgstr " PPP (pontos por polegada)"
-#: ../bin/dbitmap.c:151
+#: ../bin/dbitmap.c:154
msgid "Bitmap : 99999 by 99999 pixels"
msgstr "Bitmap : 99999 por 99999 pixels"
-#: ../bin/dbitmap.c:153
+#: ../bin/dbitmap.c:156
msgid "Approximate file size: 999.9Mb"
msgstr "Tamanho aproximado do arquivo: 999.9 Mb"
-#: ../bin/dbitmap.c:183
+#: ../bin/dbitmap.c:186
#, c-format
msgid "Bitmap : %ld by %ld pixels"
msgstr "Bitmap : %ld por %ld pixels"
-#: ../bin/dbitmap.c:187
+#: ../bin/dbitmap.c:190
#, c-format
msgid "Approximate file size : %0.0f"
msgstr "Tamanho aproximado do arquivo : %0.0f"
-#: ../bin/dbitmap.c:189
+#: ../bin/dbitmap.c:192
#, c-format
msgid "Approximate file size : %0.1fKb"
msgstr "Tamanho aproximado do arquivo : %0.1f Kb"
-#: ../bin/dbitmap.c:191
+#: ../bin/dbitmap.c:194
#, c-format
msgid "Approximate file size : %0.1fMb"
msgstr "Tamanho aproximado do arquivo : %0.1f Mb"
-#: ../bin/dbitmap.c:205
-#: ../bin/misc.c:1026
-#: ../bin/misc.c:1096
-#: ../bin/param.c:2563
-#: ../wlib/gtklib/CVS/Base/psprint.c:834
-#: ../wlib/gtklib/CVS/Base/psprint.c:1284
-#: ../wlib/gtklib/psprint.c:834
-#: ../wlib/gtklib/psprint.c:1284
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:512
+#: ../bin/dbitmap.c:208 ../bin/misc.c:1043 ../bin/misc.c:1113
+#: ../bin/param.c:2468 ../wlib/gtklib/browserhelp.c:127
+#: ../../../../build/work/app/bin/bllnhlp.c:539
msgid "Cancel"
msgstr "Anular"
-#: ../bin/dbitmap.c:210
+#: ../bin/dbitmap.c:213
msgid "Save Bitmap"
msgstr "Gravar bitmap"
-#: ../bin/dbitmap.c:212
+#: ../bin/dbitmap.c:215
msgid "Bitmap files|*.bmp"
msgstr "Arquivos bitmap:*.bmp"
-#: ../bin/dbitmap.c:214
+#: ../bin/dbitmap.c:217
msgid "Bitmap files|*.xpm"
msgstr "Arquivos bitmap|*.xpm"
-#: ../bin/dbitmap.c:235
+#: ../bin/dbitmap.c:238
msgid "BitMap"
msgstr "Bitmap"
-#: ../bin/dcar.c:45
+#: ../bin/dcar.c:53
msgid "Truck"
msgstr "Truque"
-#: ../bin/dcar.c:45
+#: ../bin/dcar.c:53
msgid "Body"
msgstr "Carcaça"
-#: ../bin/dcar.c:146
-#: ../bin/dcar.c:2437
-#: ../bin/dcar.c:2441
+#: ../bin/dcar.c:154 ../bin/dcar.c:2445 ../bin/dcar.c:2449
msgid "Unknown"
msgstr "Desconhecido"
-#: ../bin/dcar.c:479
+#: ../bin/dcar.c:487
msgid "Diesel Loco"
msgstr "Locomotiva à diesel"
-#: ../bin/dcar.c:480
+#: ../bin/dcar.c:488
msgid "Steam Loco"
msgstr "Locomotiva à vapor"
-#: ../bin/dcar.c:481
+#: ../bin/dcar.c:489
msgid "Elect Loco"
msgstr "Locomotiva elétrica"
-#: ../bin/dcar.c:482
+#: ../bin/dcar.c:490
msgid "Freight Car"
msgstr "Vagão de carga"
-#: ../bin/dcar.c:483
+#: ../bin/dcar.c:491
msgid "Psngr Car"
msgstr "Vagão de passageiro"
-#: ../bin/dcar.c:484
+#: ../bin/dcar.c:492
msgid "M-O-W"
msgstr "Carros de manutenção de linha"
-#: ../bin/dcar.c:485
-#: ../bin/doption.c:197
+#: ../bin/dcar.c:493 ../bin/doption.c:108
msgid "Other"
msgstr "Outros"
-#: ../bin/dcar.c:1084
-#: ../bin/dcar.c:4776
+#: ../bin/dcar.c:1092 ../bin/dcar.c:4787
msgid "N/A"
msgstr "N/A"
-#: ../bin/dcar.c:1085
-#: ../bin/dcar.c:4781
+#: ../bin/dcar.c:1093 ../bin/dcar.c:4792
msgid "Mint"
msgstr "Perfeito"
-#: ../bin/dcar.c:1086
-#: ../bin/dcar.c:4780
+#: ../bin/dcar.c:1094 ../bin/dcar.c:4791
msgid "Excellent"
msgstr "Excelente"
-#: ../bin/dcar.c:1087
-#: ../bin/dcar.c:4779
+#: ../bin/dcar.c:1095 ../bin/dcar.c:4790
msgid "Good"
msgstr "Bom"
-#: ../bin/dcar.c:1088
-#: ../bin/dcar.c:4778
+#: ../bin/dcar.c:1096 ../bin/dcar.c:4789
msgid "Fair"
msgstr "Médio"
-#: ../bin/dcar.c:1089
-#: ../bin/dcar.c:4777
+#: ../bin/dcar.c:1097 ../bin/dcar.c:4788
msgid "Poor"
msgstr "Regular"
-#: ../bin/dcar.c:1365
-#: ../bin/dpricels.c:46
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:383
+#: ../bin/dcar.c:1373 ../bin/dpricels.c:45
+#: ../../../../build/work/app/bin/bllnhlp.c:404
msgid "Item"
msgstr "Item"
-#: ../bin/dcar.c:1912
-#: ../wlib/gtklib/gtkmisc.c:398
-#: ../wlib/mswlib/mswmisc.c:1701
+#: ../bin/dcar.c:1920 ../wlib/gtklib/notice.c:91 ../wlib/mswlib/mswmisc.c:1967
msgid "Information"
msgstr "Informação"
-#: ../bin/dcar.c:1912
+#: ../bin/dcar.c:1920
msgid "Customize"
msgstr "Personalização"
-#: ../bin/dcar.c:1924
+#: ../bin/dcar.c:1932
msgid "Sequential"
msgstr "Sequencial"
-#: ../bin/dcar.c:1924
+#: ../bin/dcar.c:1932
msgid "Repeated"
msgstr "Repetido"
-#: ../bin/dcar.c:1935
-#: ../bin/dcar.c:1937
-#: ../bin/dcar.c:5106
+#: ../bin/dcar.c:1943 ../bin/dcar.c:1945 ../bin/dcar.c:5117
msgid "Prototype"
msgstr "Protótipo"
-#: ../bin/dcar.c:1941
-#: ../bin/dcar.c:4070
-#: ../bin/dcar.c:4075
+#: ../bin/dcar.c:1949 ../bin/dcar.c:4078 ../bin/dcar.c:4083
msgid "Type"
msgstr "Tipo"
-#: ../bin/dcar.c:1943
+#: ../bin/dcar.c:1951
msgid "Part"
msgstr "Parte"
-#: ../bin/dcar.c:1945
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:326
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:496
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:497
+#: ../bin/dcar.c:1953 ../../../../build/work/app/bin/bllnhlp.c:347
+#: ../../../../build/work/app/bin/bllnhlp.c:523
+#: ../../../../build/work/app/bin/bllnhlp.c:524
msgid "Part Number"
msgstr "Número da parte"
-#: ../bin/dcar.c:1947
+#: ../bin/dcar.c:1955
msgid "Loco?"
msgstr "Locomotiva?"
-#: ../bin/dcar.c:1951
-#: ../bin/dcar.c:4108
+#: ../bin/dcar.c:1959 ../bin/dcar.c:4116
msgid "Import"
msgstr "Importar"
-#: ../bin/dcar.c:1958
+#: ../bin/dcar.c:1966
msgid "Mode"
msgstr "Modo"
-#: ../bin/dcar.c:1964
+#: ../bin/dcar.c:1970
+msgid "Road"
+msgstr "Companhia"
+
+#: ../bin/dcar.c:1972
msgid "Reporting Mark"
msgstr "Abreviatura"
-#: ../bin/dcar.c:1970
+#: ../bin/dcar.c:1974
+msgid "Number"
+msgstr "Número"
+
+#: ../bin/dcar.c:1978
msgid "Car Length"
msgstr "Comprimento do material rodante"
-#: ../bin/dcar.c:1974
+#: ../bin/dcar.c:1982
msgid "Truck Centers"
msgstr "Centro dos truques"
-#: ../bin/dcar.c:1976
+#: ../bin/dcar.c:1984
msgid "Coupler Mount"
msgstr "Engate"
-#: ../bin/dcar.c:1978
+#: ../bin/dcar.c:1986
msgid "Coupled Length"
msgstr "Comprimento engatado"
-#: ../bin/dcar.c:1980
-#: ../bin/dcar.c:3946
+#: ../bin/dcar.c:1988 ../bin/dcar.c:3954
msgid "Coupler Length"
msgstr "Comprimento do engate"
-#: ../bin/dcar.c:1988
+#: ../bin/dcar.c:1996
msgid "Purchase Price"
msgstr "Preço de compra"
-#: ../bin/dcar.c:1990
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:199
+#: ../bin/dcar.c:1998 ../../../../build/work/app/bin/bllnhlp.c:213
msgid "Current Price"
msgstr "Preço atual"
-#: ../bin/dcar.c:1992
-#: ../bin/dcar.c:4072
-#: ../bin/dcar.c:4077
+#: ../bin/dcar.c:2000 ../bin/dcar.c:4080 ../bin/dcar.c:4085
msgid "Condition"
msgstr "Condição"
-#: ../bin/dcar.c:1994
+#: ../bin/dcar.c:2002
msgid "Purchase Date"
msgstr "Data de compra"
-#: ../bin/dcar.c:1996
-#: ../bin/dcar.c:4077
+#: ../bin/dcar.c:2004 ../bin/dcar.c:4085
msgid "Service Date"
msgstr "Data do serviço"
-#: ../bin/dcar.c:1998
+#: ../bin/dcar.c:2006
msgid "Quantity"
msgstr "Quantidade"
-#: ../bin/dcar.c:2000
+#: ../bin/dcar.c:2008
msgid "Numbers"
msgstr "Números"
-#: ../bin/dcar.c:2002
-#: ../bin/dcar.c:4073
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:61
+#: ../bin/dcar.c:2010 ../bin/dcar.c:4081
+#: ../../../../build/work/app/i18n/custmsg.h:61
msgid "Notes"
msgstr "Notas"
-#: ../bin/dcar.c:2009
-#: ../bin/dcustmgm.c:60
+#: ../bin/dcar.c:2017 ../bin/dcustmgm.c:65
msgid "Car Part"
msgstr "Parte do material rodante"
-#: ../bin/dcar.c:2010
-#: ../bin/dcustmgm.c:61
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:174
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:175
+#: ../bin/dcar.c:2018 ../bin/dcustmgm.c:66
+#: ../../../../build/work/app/bin/bllnhlp.c:188
+#: ../../../../build/work/app/bin/bllnhlp.c:189
msgid "Car Prototype"
msgstr "Protótipo do material rodante"
-#: ../bin/dcar.c:2371
-#: ../bin/dcar.c:2688
+#: ../bin/dcar.c:2379 ../bin/dcar.c:2696
msgid "Undecorated"
msgstr "Sem pintura"
-#: ../bin/dcar.c:2429
-#: ../bin/dcar.c:2433
-#: ../bin/fileio.c:646
+#: ../bin/dcar.c:2437 ../bin/dcar.c:2441 ../bin/fileio.c:656
msgid "Custom"
msgstr "Personalizado"
-#: ../bin/dcar.c:2598
+#: ../bin/dcar.c:2606
msgid "Undecorated "
msgstr "Sem pintura "
-#: ../bin/dcar.c:2818
+#: ../bin/dcar.c:2826
#, c-format
msgid "New %s Scale Car"
msgstr "Novo material rodante na escala %s"
-#: ../bin/dcar.c:2819
-#: ../bin/dcar.c:2828
-#: ../bin/dcar.c:2837
-#: ../bin/dcar.c:3976
-#: ../bin/dcar.c:4104
+#: ../bin/dcar.c:2827 ../bin/dcar.c:2836 ../bin/dcar.c:2845 ../bin/dcar.c:3984
+#: ../bin/dcar.c:4112
msgid "Add"
msgstr "Adicionar"
-#: ../bin/dcar.c:2821
+#: ../bin/dcar.c:2829
#, c-format
msgid "Update %s Scale Car"
msgstr "Atualizar material rodante na escala %s"
-#: ../bin/dcar.c:2822
-#: ../bin/dcar.c:2831
-#: ../bin/dcar.c:2840
-#: ../bin/dcmpnd.c:168
+#: ../bin/dcar.c:2830 ../bin/dcar.c:2839 ../bin/dcar.c:2848
+#: ../bin/dcmpnd.c:172
msgid "Update"
msgstr "Atualizar"
-#: ../bin/dcar.c:2827
+#: ../bin/dcar.c:2835
#, c-format
msgid "New %s Scale Car Part"
msgstr "Novo material rodante na escala %s"
-#: ../bin/dcar.c:2830
+#: ../bin/dcar.c:2838
#, c-format
msgid "Update %s Scale Car Part"
msgstr "Atualizar material rodante na escala %s"
-#: ../bin/dcar.c:2836
+#: ../bin/dcar.c:2844
msgid "New Prototype"
msgstr "Novo protótipo"
-#: ../bin/dcar.c:2839
+#: ../bin/dcar.c:2847
msgid "Update Prototype"
msgstr "Atualizar protótipo"
-#: ../bin/dcar.c:3482
+#: ../bin/dcar.c:3490
msgid "Enter a 8 digit numeric date"
msgstr "Digitar uma data de 8 dígitos numéricos"
-#: ../bin/dcar.c:3485
+#: ../bin/dcar.c:3493
msgid "Enter a 8 digit date"
msgstr "Digitar uma data de 8 dígitos"
-#: ../bin/dcar.c:3487
+#: ../bin/dcar.c:3495
msgid "Enter a date between 19000101 and 21991231"
msgstr "Digitar uma data entre 19000101 e 21991231"
-#: ../bin/dcar.c:3492
+#: ../bin/dcar.c:3500
msgid "Invalid month"
msgstr "Mês inválido"
-#: ../bin/dcar.c:3494
+#: ../bin/dcar.c:3502
msgid "Invalid day"
msgstr "Dia inválido"
-#: ../bin/dcar.c:3580
+#: ../bin/dcar.c:3588
msgid "Enter a Prototype name"
msgstr "Digitar um nome para o protótipo"
-#: ../bin/dcar.c:3582
+#: ../bin/dcar.c:3590
msgid "Select or Enter a Manufacturer"
msgstr "Selecionar ou digitar o fabricante"
-#: ../bin/dcar.c:3584
+#: ../bin/dcar.c:3592
msgid "Enter a Part Number"
msgstr "Digitar o número do item"
-#: ../bin/dcar.c:3586
+#: ../bin/dcar.c:3594
msgid "Enter the Car Length"
msgstr "Digitar o comprimento do material rodante"
-#: ../bin/dcar.c:3588
+#: ../bin/dcar.c:3596
msgid "Enter the Car Width"
msgstr "Digitar a largura do material rodante"
-#: ../bin/dcar.c:3590
+#: ../bin/dcar.c:3598
msgid "Enter the Truck Centers"
msgstr "Digitar o centro dos truques"
-#: ../bin/dcar.c:3592
+#: ../bin/dcar.c:3600
msgid "Truck Centers must be less than Car Length"
-msgstr "O centro dos truques devem ser menores que o comprimento do material rodante"
+msgstr ""
+"O centro dos truques devem ser menores que o comprimento do material rodante"
-#: ../bin/dcar.c:3594
+#: ../bin/dcar.c:3602
msgid "Enter the Coupled Length or Coupler Length"
msgstr "Digitar o comprimento engatado ou o comprimento do engate"
-#: ../bin/dcar.c:3596
+#: ../bin/dcar.c:3604
msgid "Enter the Coupled Length"
msgstr "Digitar o comprimento engatado"
-#: ../bin/dcar.c:3598
+#: ../bin/dcar.c:3606
msgid "Enter a item Index"
msgstr "Digitar um índice para o item"
-#: ../bin/dcar.c:3600
+#: ../bin/dcar.c:3608
msgid "Purchase Price is not valid"
msgstr "Preço de compra inválido"
-#: ../bin/dcar.c:3602
+#: ../bin/dcar.c:3610
msgid "Current Price is not valid"
msgstr "Preço atual inválido"
-#: ../bin/dcar.c:3604
+#: ../bin/dcar.c:3612
msgid "Purchase Date is not valid"
msgstr "Data de compra inválida"
-#: ../bin/dcar.c:3606
+#: ../bin/dcar.c:3614
msgid "Service Date is not valid"
msgstr "Data de serviço inválida"
-#: ../bin/dcar.c:3609
+#: ../bin/dcar.c:3617
#, c-format
msgid "Item Index %ld duplicated an existing item: updated to new value"
msgstr "Índice do item %ld já existente. Atualizado para um novo valor"
-#: ../bin/dcar.c:3804
+#: ../bin/dcar.c:3812
#, c-format
msgid "Added %ld new Cars"
msgstr "%ld novos materiais rodantes adicionados"
-#: ../bin/dcar.c:3806
+#: ../bin/dcar.c:3814
msgid "Added new Car"
msgstr "Adicionar novo material rodante"
-#: ../bin/dcar.c:3809
+#: ../bin/dcar.c:3817
msgid "Updated Car"
msgstr "Atualizar material rodante"
-#: ../bin/dcar.c:3812
+#: ../bin/dcar.c:3820
msgid " and Part"
msgstr " e item"
-#: ../bin/dcar.c:3839
+#: ../bin/dcar.c:3847
#, c-format
msgid "%s Part: %s %s %s %s %s %s"
msgstr "Item %s: %s %s %s %s %s %s"
-#: ../bin/dcar.c:3839
-#: ../bin/dcar.c:3856
+#: ../bin/dcar.c:3847 ../bin/dcar.c:3864
msgid "Added new"
msgstr "Adicionado um novo"
-#: ../bin/dcar.c:3839
-#: ../bin/dcar.c:3856
+#: ../bin/dcar.c:3847 ../bin/dcar.c:3864
msgid "Updated"
msgstr "Atualizado"
-#: ../bin/dcar.c:3855
+#: ../bin/dcar.c:3863
#, c-format
msgid "%s Prototype: %s%s."
msgstr "Protótipo %s: %s%s."
-#: ../bin/dcar.c:3857
+#: ../bin/dcar.c:3865
msgid ". Enter new values or press Close"
msgstr ". Digitar novos valores ou clicar em \"Fechar\""
-#: ../bin/dcar.c:3976
+#: ../bin/dcar.c:3984
msgid "New Car Part"
msgstr "Novo item de material rodante"
-#: ../bin/dcar.c:4071
-#: ../bin/dcar.c:4076
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:356
+#: ../bin/dcar.c:4079 ../bin/dcar.c:4084
+#: ../../../../build/work/app/bin/bllnhlp.c:377
msgid "Roadname"
msgstr "Ferrovia"
-#: ../bin/dcar.c:4071
+#: ../bin/dcar.c:4079
msgid "Purc Price"
msgstr "Preço de compra"
-#: ../bin/dcar.c:4072
-#: ../bin/dcar.c:4077
+#: ../bin/dcar.c:4080 ../bin/dcar.c:4085
msgid "Curr Price"
msgstr "Preço atual"
-#: ../bin/dcar.c:4072
+#: ../bin/dcar.c:4080
msgid "Purc Date"
msgstr "Data de compra"
-#: ../bin/dcar.c:4072
+#: ../bin/dcar.c:4080
msgid "Srvc Date"
msgstr "Data de serviço"
-#: ../bin/dcar.c:4073
+#: ../bin/dcar.c:4081
msgid "Locat'n"
msgstr "Localização"
-#: ../bin/dcar.c:4076
+#: ../bin/dcar.c:4084
msgid "RepMarks"
msgstr "Abreviaturas"
-#: ../bin/dcar.c:4076
+#: ../bin/dcar.c:4084
msgid "Purch Price"
msgstr "Preço de compra"
-#: ../bin/dcar.c:4077
+#: ../bin/dcar.c:4085
msgid "Purch Date"
msgstr "Data de compra"
-#: ../bin/dcar.c:4094
+#: ../bin/dcar.c:4102
msgid "Sort By"
msgstr "Ordenado por"
-#: ../bin/dcar.c:4102
-#: ../bin/dcustmgm.c:53
-#: ../bin/dcustmgm.c:90
+#: ../bin/dcar.c:4110 ../bin/dcontmgm.c:99 ../bin/dcustmgm.c:58
+#: ../bin/dcustmgm.c:95
msgid "Edit"
msgstr "Editar"
-#: ../bin/dcar.c:4106
-#: ../bin/dcustmgm.c:55
-#: ../bin/misc.c:2045
+#: ../bin/dcar.c:4114 ../bin/dcontmgm.c:101 ../bin/dcustmgm.c:60
+#: ../bin/misc.c:1993
msgid "Delete"
msgstr "Apagar"
-#: ../bin/dcar.c:4110
-#: ../bin/fileio.c:1202
+#: ../bin/dcar.c:4118 ../bin/fileio.c:1212
msgid "Export"
msgstr "Exportar"
-#: ../bin/dcar.c:4112
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:513
+#: ../bin/dcar.c:4120 ../../../../build/work/app/bin/bllnhlp.c:540
msgid "List"
msgstr "Listar"
-#: ../bin/dcar.c:4225
-#: ../bin/dcar.c:4955
-#: ../bin/misc.c:2302
+#: ../bin/dcar.c:4234 ../bin/dcar.c:4966 ../bin/misc.c:2262
msgid "Car Inventory"
msgstr "Invetário de material rodante"
-#: ../bin/dcar.c:4345
+#: ../bin/dcar.c:4354
msgid "List Cars"
msgstr "Listar material rodante"
-#: ../bin/dcar.c:4466
-#: ../bin/dcar.c:4629
+#: ../bin/dcar.c:4476 ../bin/dcar.c:4639
msgid "Import Cars"
msgstr "Importar material rodante"
-#: ../bin/dcar.c:4630
-#: ../bin/dcar.c:4751
+#: ../bin/dcar.c:4640 ../bin/dcar.c:4762
msgid "Comma-Separated-Values|*.csv"
msgstr "Valores separados por vírgulas|*.csv"
-#: ../bin/dcar.c:4699
-#: ../bin/dcar.c:4750
+#: ../bin/dcar.c:4710 ../bin/dcar.c:4761
msgid "Export Cars"
msgstr "Exportar material rodante"
-#: ../bin/dcar.c:4784
+#: ../bin/dcar.c:4795
msgid "Layout"
msgstr "Layout"
-#: ../bin/dcar.c:4786
+#: ../bin/dcar.c:4797
msgid "Shelf"
msgstr "Prateleira"
-#: ../bin/dcmpnd.c:72
-#: ../bin/dlayer.c:330
-#: ../bin/misc.c:468
-#: ../bin/misc.c:496
+#: ../bin/dcmpnd.c:76 ../bin/dlayer.c:457 ../bin/misc.c:480 ../bin/misc.c:509
msgid "Load"
msgstr "Carregar"
-#: ../bin/dcmpnd.c:105
+#: ../bin/dcmpnd.c:109
msgid "Updating definitions, please wait"
msgstr "Atualizando definições. Aguardar, por favor"
-#: ../bin/dcmpnd.c:168
+#: ../bin/dcmpnd.c:172
msgid "Update Title"
msgstr "Atualizar título"
-#: ../bin/dcmpnd.c:229
+#: ../bin/dcmpnd.c:232
#, c-format
msgid "End-Point #%d of the selected and actual turnouts are not close"
msgstr "Extremidade No.%d dos AMVs selecionado e corrente não estão próximos"
-#: ../bin/dcmpnd.c:238
+#: ../bin/dcmpnd.c:241
#, c-format
msgid "End-Point #%d of the selected and actual turnouts are not aligned"
msgstr "Extremidade No.%d dos AMVs selecionado e corrente não estão próximos"
-#: ../bin/dcmpnd.c:257
+#: ../bin/dcmpnd.c:260
msgid "The selected Turnout had a differing number of End-Points"
msgstr "O AMV selecionado tem um número diferente de extremidades"
-#: ../bin/dcmpnd.c:318
+#: ../bin/dcmpnd.c:321
msgid "Skip"
msgstr "Próximo"
-#: ../bin/dcmpnd.c:350
+#: ../bin/dcmpnd.c:353
#, c-format
msgid "%d Track(s) refreshed"
msgstr "%d trilho(s) redesenhado(s)"
-#: ../bin/dcmpnd.c:390
+#: ../bin/dcmpnd.c:393
msgid "Refresh Turnout/Structure"
msgstr "Atualizar AMV/estrutura"
-#: ../bin/dcmpnd.c:392
+#: ../bin/dcmpnd.c:395
msgid "Choose a Turnout/Structure to replace:"
msgstr "Escolher um AMV/estrutura para substituir:"
-#: ../bin/dcmpnd.c:402
-#: ../bin/doption.c:192
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:31
+#: ../bin/dcmpnd.c:405 ../bin/doption.c:101
+#: ../../../../build/work/app/i18n/custmsg.h:31
msgid "Turnouts"
msgstr "AMVs"
-#: ../bin/dcmpnd.c:402
+#: ../bin/dcmpnd.c:405
msgid "Structures"
msgstr "Estruturas"
-#: ../bin/dcmpnd.c:431
+#: ../bin/dcmpnd.c:434
msgid "Choose another Turnout/Structure to replace:"
msgstr "Escolher um(a) outro(a) AMV/estrutura para substituir:"
-#: ../bin/dcmpnd.c:535
+#: ../bin/dcmpnd.c:536
msgid "Rename Object"
msgstr "Renomear objeto"
-#: ../bin/dcustmgm.c:57
+#: ../bin/dcontmgm.c:92 ../bin/doption.c:108
+msgid "Tracks"
+msgstr "Trilhos"
+
+#: ../bin/dcontmgm.c:173
+#, c-format
+msgid "Are you sure you want to delete the %d control element(s)"
+msgstr ""
+
+#: ../bin/dcontmgm.c:176
+#, fuzzy
+msgid "Control Elements"
+msgstr "Elementos de controle de layout"
+
+#: ../bin/dcontmgm.c:300
+#, fuzzy
+msgid "Manage Layout Control Elements"
+msgstr "Elementos de controle de layout"
+
+#: ../bin/dcustmgm.c:62
msgid "Move To"
msgstr "Mover para"
-#: ../bin/dcustmgm.c:90
+#: ../bin/dcustmgm.c:95
msgid "Rename"
msgstr "Renomear"
-#: ../bin/dcustmgm.c:157
+#: ../bin/dcustmgm.c:162
msgid "Label"
msgstr "Etiqueta"
-#: ../bin/dcustmgm.c:192
+#: ../bin/dcustmgm.c:200
msgid "Contents Label"
msgstr "Texto da etiqueta"
-#: ../bin/dcustmgm.c:239
+#: ../bin/dcustmgm.c:247
msgid "Move To XTP"
msgstr "Mover para arquivo de parâmetros"
-#: ../bin/dcustmgm.c:240
+#: ../bin/dcustmgm.c:248
msgid "Parameter File|*.xtp"
msgstr "Arquivo de parâmetros|*.xtp"
-#: ../bin/dcustmgm.c:350
-msgid "Custom Update"
-msgstr "Atualizar personalizadamente"
+#: ../bin/dcustmgm.c:358
+#, fuzzy
+msgid "Manage custom designed parts"
+msgstr "Manipula entradas do editor personalizado"
-#: ../bin/dease.c:63
+#: ../bin/dease.c:64
msgid "Sharp"
msgstr "Agudo"
-#: ../bin/dease.c:63
+#: ../bin/dease.c:64
msgid "Broad"
msgstr "Largo"
-#: ../bin/dease.c:70
+#: ../bin/dease.c:64
+msgid "Cornu"
+msgstr ""
+
+#: ../bin/dease.c:71
msgid "Value"
msgstr "Valor"
-#: ../bin/dease.c:71
-#: ../bin/tease.c:503
+#: ../bin/dease.c:72 ../bin/tease.c:509
msgid "R"
msgstr "D"
-#: ../bin/dease.c:73
-#: ../bin/tease.c:504
+#: ../bin/dease.c:74 ../bin/tease.c:510
msgid "L"
msgstr "E"
-#: ../bin/dease.c:220
+#: ../bin/dease.c:230
msgid "Easement"
msgstr "Curva de transição"
-#: ../bin/denum.c:44
+#: ../bin/denum.c:49
msgid "Prices"
msgstr "Preços"
-#: ../bin/denum.c:49
+#: ../bin/denum.c:54
msgid "Save As ..."
msgstr "Salvar como..."
-#: ../bin/denum.c:120
-#: ../bin/denum.c:175
-#: ../bin/denum.c:207
+#: ../bin/denum.c:134 ../bin/denum.c:189 ../bin/denum.c:224
msgid "Each"
msgstr "Cada"
-#: ../bin/denum.c:134
-#: ../bin/denum.c:135
+#: ../bin/denum.c:148 ../bin/denum.c:149
msgid "Parts List"
msgstr "Lista de itens"
-#: ../bin/denum.c:140
+#: ../bin/denum.c:154
#, c-format
msgid ""
"%s Parts List\n"
@@ -3422,621 +3477,642 @@ msgstr ""
"Lista de itens %s\n"
"\n"
-#: ../bin/denum.c:175
-#: ../bin/denum.c:209
-#: ../bin/denum.c:217
+#: ../bin/denum.c:189 ../bin/denum.c:226 ../bin/denum.c:235
msgid "Extended"
msgstr "Subtotal"
-#: ../bin/denum.c:217
-#: ../bin/denum.c:220
+#: ../bin/denum.c:235 ../bin/denum.c:238
msgid "Total"
msgstr "Total"
-#: ../bin/dlayer.c:322
+#: ../bin/dlayer.c:449
msgid "Visible"
msgstr "Visível"
-#: ../bin/dlayer.c:326
+#: ../bin/dlayer.c:451
+msgid "Frozen"
+msgstr "Congelado"
+
+#: ../bin/dlayer.c:453
msgid "On Map"
msgstr "No mapa"
-#: ../bin/dlayer.c:329
+#: ../bin/dlayer.c:456
msgid "Personal Preferences"
msgstr "Preferências pessoais"
-#: ../bin/dlayer.c:331
-#: ../bin/draw.c:1311
-#: ../bin/macro.c:1239
+#: ../bin/dlayer.c:458 ../bin/macro.c:1246
msgid "Save"
msgstr "Salvar"
-#: ../bin/dlayer.c:332
+#: ../bin/dlayer.c:459
msgid "Defaults"
msgstr "Valores iniciais"
-#: ../bin/dlayer.c:333
+#: ../bin/dlayer.c:460
msgid "Number of Layer Buttons"
msgstr "Número de botões de camadas"
-#: ../bin/dlayer.c:350
-#: ../bin/dlayer.c:733
-#: ../bin/dlayer.c:743
-#: ../bin/dlayer.c:787
-#: ../bin/dlayer.c:966
+#: ../bin/dlayer.c:477 ../bin/dlayer.c:893 ../bin/dlayer.c:905
+#: ../bin/dlayer.c:950
msgid "Main"
msgstr "Principal"
-#: ../bin/dlayer.c:455
-#: ../bin/dlayer.c:688
-#: ../bin/dlayer.c:745
-#: ../bin/dlayer.c:789
-#: ../bin/dlayer.c:958
+#: ../bin/dlayer.c:587 ../bin/dlayer.c:836 ../bin/dlayer.c:908
+#: ../bin/dlayer.c:952 ../bin/dlayer.c:1190
msgid "Show/Hide Layer"
msgstr "Mostrar/Ocultar camada"
-#: ../bin/dlayer.c:849
+#: ../bin/dlayer.c:1023
msgid "Layers"
msgstr "Camadas"
-#: ../bin/doption.c:102
-msgid "Room Width"
-msgstr "Largura do cômodo"
-
-#: ../bin/doption.c:103
-msgid " Height"
-msgstr " Comprimento"
-
-#: ../bin/doption.c:104
-msgid "Layout Title"
-msgstr "Título do layout"
-
-#: ../bin/doption.c:105
-msgid "Subtitle"
-msgstr "Subtítulo"
-
-# Seria possível remover os espaços do texto original?
-#: ../bin/doption.c:107
-msgid " Gauge"
-msgstr " Bitola"
-
-#: ../bin/doption.c:108
-msgid "Min Track Radius"
-msgstr "Raio mínimo"
-
-#: ../bin/doption.c:109
-msgid " Max Track Grade"
-msgstr "Inclinação máxima"
-
-#: ../bin/doption.c:150
-msgid "Layout Options"
-msgstr "Opções de layout"
-
-#: ../bin/doption.c:190
+#: ../bin/doption.c:99
msgid "Auto Pan"
msgstr "Auto panorâmico"
-#: ../bin/doption.c:191
+#: ../bin/doption.c:100
msgid "Dash"
msgstr "Tracejado"
-#: ../bin/doption.c:192
+#: ../bin/doption.c:101
msgid "All"
msgstr "Tudo"
-#: ../bin/doption.c:193
+#: ../bin/doption.c:102
+msgid "Thick"
+msgstr ""
+
+#: ../bin/doption.c:102
+#, fuzzy
+msgid "Exception"
+msgstr "Trecho excepcional"
+
+#: ../bin/doption.c:103
msgid "Outline"
msgstr "Traçado"
-#: ../bin/doption.c:193
+#: ../bin/doption.c:103
msgid "Solid"
msgstr "Sólido"
-#: ../bin/doption.c:194
+#: ../bin/doption.c:104
+msgid "Off"
+msgstr "Desligado"
+
+#: ../bin/doption.c:104
+msgid "On"
+msgstr "Ligado"
+
+#: ../bin/doption.c:105
msgid "Track Descriptions"
msgstr "Descrição dos trilhos"
-#: ../bin/doption.c:194
+#: ../bin/doption.c:105
msgid "Lengths"
msgstr "Comprimentos"
-#: ../bin/doption.c:194
+#: ../bin/doption.c:105
msgid "EndPt Elevations"
msgstr "Extremidades das elevações"
-#: ../bin/doption.c:194
+#: ../bin/doption.c:105
msgid "Track Elevations"
msgstr "Elevações dos trilhos"
-#: ../bin/doption.c:194
+#: ../bin/doption.c:105
msgid "Cars"
msgstr "Material rodante"
-#: ../bin/doption.c:195
-#: ../bin/doption.c:196
+#: ../bin/doption.c:106 ../bin/doption.c:107
msgid "Descr"
msgstr "Descrição"
-#: ../bin/doption.c:196
+#: ../bin/doption.c:107
msgid "Manuf"
msgstr "Fabricante"
-#: ../bin/doption.c:197
-msgid "Tracks"
-msgstr "Trilhos"
-
-#: ../bin/doption.c:198
+#: ../bin/doption.c:109
msgid "Live Map"
msgstr "Mapa em \"tempo real\""
-#: ../bin/doption.c:199
+#: ../bin/doption.c:110
msgid "Hide Trains On Hidden Track"
msgstr "Ocultar trens em trecho escondido"
-#: ../bin/doption.c:201
-msgid "Off"
-msgstr "Desligado"
-
-#: ../bin/doption.c:201
-msgid "On"
-msgstr "Ligado"
+#: ../bin/doption.c:111
+msgid "Zoom keeps lower corner in view"
+msgstr ""
-#: ../bin/doption.c:206
+#: ../bin/doption.c:116
msgid "Color Layers"
msgstr "Cores das camadas"
-#: ../bin/doption.c:207
+#: ../bin/doption.c:117
msgid "Draw Tunnel"
msgstr "Desenhar túnel"
-#: ../bin/doption.c:208
+#: ../bin/doption.c:118
msgid "Draw EndPts"
msgstr "Desenhar extremidades"
-#: ../bin/doption.c:209
+#: ../bin/doption.c:119
+#, fuzzy
+msgid "Draw Unconnected EndPts"
+msgstr "Desenhar extremidades"
+
+#: ../bin/doption.c:120
msgid "Draw Ties"
msgstr "Desenhar dormentes"
-#: ../bin/doption.c:210
+#: ../bin/doption.c:121
+#, fuzzy
+msgid "Draw Centers"
+msgstr "Arrastar ao centro"
+
+#: ../bin/doption.c:122
msgid "Two Rail Scale"
msgstr "Escala de duas linhas"
-#: ../bin/doption.c:211
+#: ../bin/doption.c:123
msgid "Map Scale"
msgstr "Mapa da escala"
-#: ../bin/doption.c:214
+#: ../bin/doption.c:127
msgid "Label Enable"
msgstr "Etiqueta disponível"
-#: ../bin/doption.c:215
+#: ../bin/doption.c:128
msgid "Label Scale"
msgstr "Etiqueta de escala"
-#: ../bin/doption.c:216
+#: ../bin/doption.c:129
msgid "Label Font Size"
msgstr "Etiqueta do tamanho da fonte"
-#: ../bin/doption.c:217
+#: ../bin/doption.c:130
msgid "Hot Bar Labels"
msgstr "Etiquetas do barra de itens"
-#: ../bin/doption.c:218
+#: ../bin/doption.c:131
msgid "Layout Labels"
msgstr "Etiquetas do layout"
-#: ../bin/doption.c:219
+#: ../bin/doption.c:132
msgid "List Labels"
msgstr "Etiquetas das listas"
-#: ../bin/doption.c:221
+#: ../bin/doption.c:135
msgid "Car Labels"
msgstr "Etiquetas do material rodante"
-#: ../bin/doption.c:222
+#: ../bin/doption.c:136
msgid "Train Update Delay"
msgstr "Tempo de atualização do trem"
-#: ../bin/doption.c:250
+#: ../bin/doption.c:164
msgid "Display Options"
msgstr "Opções de tela"
-#: ../bin/doption.c:251
+#: ../bin/doption.c:165
msgid "Proto"
msgstr "Protótipo"
-#: ../bin/doption.c:252
+#: ../bin/doption.c:166
msgid "Proto/Manuf"
msgstr "Protótipo / fabricante"
-#: ../bin/doption.c:253
+#: ../bin/doption.c:167
msgid "Proto/Manuf/Part Number"
msgstr "Protótipo / fabricante / número do item"
-#: ../bin/doption.c:254
+#: ../bin/doption.c:168
msgid "Proto/Manuf/Partno/Item"
msgstr "Protótipo / fabricante / número do item / item"
-#: ../bin/doption.c:255
+#: ../bin/doption.c:169
msgid "Manuf/Proto"
msgstr "Fabricante / protótipo"
-#: ../bin/doption.c:256
+#: ../bin/doption.c:170
msgid "Manuf/Proto/Part Number"
msgstr "Fabricante / protótipo / número do item"
-#: ../bin/doption.c:257
+#: ../bin/doption.c:171
msgid "Manuf/Proto/Partno/Item"
msgstr "Fabricante / protótipo / número do item / item"
-#: ../bin/doption.c:288
+#: ../bin/doption.c:202
msgid "End-Points"
msgstr "Extremidades"
-#: ../bin/doption.c:291
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:12
-msgid "Describe"
-msgstr "Descrever"
-
-#: ../bin/doption.c:296
+#: ../bin/doption.c:210
msgid "Normal: Command List, Shift: Command Options"
msgstr "Normal: lista de comandos, Shift: opções dos comandos"
-#: ../bin/doption.c:296
+#: ../bin/doption.c:210
msgid "Normal: Command Options, Shift: Command List"
msgstr "Normal: opções dos comandos, Shift: lista de comandos"
-#: ../bin/doption.c:299
+#: ../bin/doption.c:213
msgid "Draw Moving Tracks"
msgstr "Desenhar trechos sendo arrastados"
-#: ../bin/doption.c:300
+#: ../bin/doption.c:214
msgid "Default Command"
msgstr "Comando padrão"
-#: ../bin/doption.c:302
+#: ../bin/doption.c:216
msgid "Hide Selection Window"
msgstr "Ocultar janela de seleção"
-#: ../bin/doption.c:304
+#: ../bin/doption.c:218
msgid "Right Click"
msgstr "Clicar com o botão direito"
-#: ../bin/doption.c:330
+#: ../bin/doption.c:244
msgid "Command Options"
msgstr "Opções de comandos"
-#: ../bin/doption.c:354
+#: ../bin/doption.c:268
msgid "English"
msgstr "Inglês"
-#: ../bin/doption.c:354
+#: ../bin/doption.c:268
msgid "Metric"
msgstr "Métrico"
-#: ../bin/doption.c:355
+#: ../bin/doption.c:269
msgid "Polar"
msgstr "Polar"
-#: ../bin/doption.c:355
+#: ../bin/doption.c:269
msgid "Cartesian"
msgstr "Cartesiano"
-#: ../bin/doption.c:356
+#: ../bin/doption.c:270
msgid "Balloon Help"
msgstr "Balão de ajuda"
-#: ../bin/doption.c:357
+#: ../bin/doption.c:271
msgid "Load Last Layout"
msgstr "Carregar último layout"
-#: ../bin/doption.c:357
+#: ../bin/doption.c:271
msgid "Start New Layout"
msgstr "Começar um novo layout"
-#: ../bin/doption.c:360
+#: ../bin/doption.c:274
msgid "Angles"
msgstr "Ângulos"
-#: ../bin/doption.c:361
+#: ../bin/doption.c:275
msgid "Units"
msgstr "Unidades"
-#: ../bin/doption.c:363
+#: ../bin/doption.c:277
msgid "Length Format"
msgstr "Formato do comprimento"
-#: ../bin/doption.c:364
+#: ../bin/doption.c:278
msgid "Min Track Length"
msgstr "Comprimento do trecho mínimo"
-#: ../bin/doption.c:365
+#: ../bin/doption.c:279
msgid "Connection Distance"
msgstr "Distância de conexão"
-#: ../bin/doption.c:366
+#: ../bin/doption.c:280
msgid "Connection Angle"
msgstr "Ângulo de conexão"
-#: ../bin/doption.c:367
+#: ../bin/doption.c:281
msgid "Turntable Angle"
msgstr "Ângulo do girador de locomotivas"
-#: ../bin/doption.c:368
+#: ../bin/doption.c:282
msgid "Max Coupling Speed"
msgstr "Velocidade máxima de engate"
-#: ../bin/doption.c:370
+#: ../bin/doption.c:284
msgid "Drag Distance"
msgstr "Distância para arrastar"
-#: ../bin/doption.c:371
+#: ../bin/doption.c:285
msgid "Drag Timeout"
msgstr "Tempo máximo para arrastar"
-#: ../bin/doption.c:372
+#: ../bin/doption.c:286
msgid "Min Grid Spacing"
msgstr "Espaço mínimo do gride"
-#: ../bin/doption.c:373
+#: ../bin/doption.c:287
msgid "Check Point"
msgstr "Freqüência de salvamento automático."
-#: ../bin/doption.c:374
+#: ../bin/doption.c:288
msgid "On Program Startup"
msgstr "Ao iniciar programa"
-#: ../bin/doption.c:384
-#: ../bin/doption.c:401
+#: ../bin/doption.c:298
+#, fuzzy
+msgid "999.999999"
+msgstr "999,999"
+
+#: ../bin/doption.c:299
+#, fuzzy
+msgid "999.99999"
+msgstr "999,999"
+
+#: ../bin/doption.c:300
+#, fuzzy
+msgid "999.9999"
+msgstr "999,999"
+
+#: ../bin/doption.c:301 ../bin/doption.c:318
msgid "999.999"
msgstr "999,999"
-#: ../bin/doption.c:385
-#: ../bin/doption.c:402
+#: ../bin/doption.c:302 ../bin/doption.c:319
msgid "999.99"
msgstr "999,99"
-#: ../bin/doption.c:386
-#: ../bin/doption.c:403
+#: ../bin/doption.c:303 ../bin/doption.c:320
msgid "999.9"
msgstr "999,9"
-#: ../bin/doption.c:387
+#: ../bin/doption.c:304
msgid "999 7/8"
msgstr "999 7/8"
-#: ../bin/doption.c:388
+#: ../bin/doption.c:305
msgid "999 63/64"
msgstr "999 63/64"
-#: ../bin/doption.c:389
+#: ../bin/doption.c:306
msgid "999' 11.999\""
msgstr "999′ 11,999″"
-#: ../bin/doption.c:390
+#: ../bin/doption.c:307
msgid "999' 11.99\""
msgstr "999′ 11,99″"
-#: ../bin/doption.c:391
+#: ../bin/doption.c:308
msgid "999' 11.9\""
msgstr "999′ 11,9″"
-#: ../bin/doption.c:392
+#: ../bin/doption.c:309
msgid "999' 11 7/8\""
msgstr "999′ 11 7/8″"
-#: ../bin/doption.c:393
+#: ../bin/doption.c:310
msgid "999' 11 63/64\""
msgstr "999′ 11 63/64″"
-#: ../bin/doption.c:394
+#: ../bin/doption.c:311
msgid "999ft 11.999in"
msgstr "999 ft 11,999 in"
-#: ../bin/doption.c:395
+#: ../bin/doption.c:312
msgid "999ft 11.99in"
msgstr "999 ft 11,99 in"
-#: ../bin/doption.c:396
+#: ../bin/doption.c:313
msgid "999ft 11.9in"
msgstr "999 ft 11,9 in"
-#: ../bin/doption.c:397
+#: ../bin/doption.c:314
msgid "999ft 11 7/8in"
msgstr "999 ft 11 7/8 in"
-#: ../bin/doption.c:398
+#: ../bin/doption.c:315
msgid "999ft 11 63/64in"
msgstr "999 ft 11 63/64 in"
-#: ../bin/doption.c:404
+#: ../bin/doption.c:321
msgid "999.999mm"
msgstr "999,999 mm"
-#: ../bin/doption.c:405
+#: ../bin/doption.c:322
msgid "999.99mm"
msgstr "999,99 mm"
-#: ../bin/doption.c:406
+#: ../bin/doption.c:323
msgid "999.9mm"
msgstr "999,9 mm"
-#: ../bin/doption.c:407
+#: ../bin/doption.c:324
msgid "999.999cm"
msgstr "999,999 cm"
-#: ../bin/doption.c:408
+#: ../bin/doption.c:325
msgid "999.99cm"
msgstr "999,99 cm"
-#: ../bin/doption.c:409
+#: ../bin/doption.c:326
msgid "999.9cm"
msgstr "999,9 cm"
-#: ../bin/doption.c:410
+#: ../bin/doption.c:327
msgid "999.999m"
msgstr "999,999 m"
-#: ../bin/doption.c:411
+#: ../bin/doption.c:328
msgid "999.99m"
msgstr "999,99 m"
-#: ../bin/doption.c:412
+#: ../bin/doption.c:329
msgid "999.9m"
msgstr "999,9 m"
-#: ../bin/doption.c:490
+#: ../bin/doption.c:410
msgid "Preferences"
msgstr "Preferências"
-#: ../bin/doption.c:529
+#: ../bin/doption.c:449
msgid "Marker"
msgstr "Marcador"
-#: ../bin/doption.c:530
+#: ../bin/doption.c:450
msgid "Border"
msgstr "Borda"
-#: ../bin/doption.c:531
+#: ../bin/doption.c:451
msgid "Primary Axis"
msgstr "Eixo primário"
-#: ../bin/doption.c:532
+#: ../bin/doption.c:452
msgid "Secondary Axis"
msgstr "Eixo secundário"
-#: ../bin/doption.c:533
+#: ../bin/doption.c:453
msgid "Normal Track"
msgstr "Trilho normal"
-#: ../bin/doption.c:534
+#: ../bin/doption.c:454
msgid "Selected Track"
msgstr "Trilho selecionado"
-#: ../bin/doption.c:535
+#: ../bin/doption.c:455
msgid "Profile Path"
msgstr "Perfil"
-#: ../bin/doption.c:536
+#: ../bin/doption.c:456
msgid "Exception Track"
msgstr "Trecho excepcional"
-#: ../bin/doption.c:537
+#: ../bin/doption.c:457
msgid "Track Ties"
msgstr "Dormentes"
-#: ../bin/dpricels.c:46
+#: ../bin/dpricels.c:45
msgid "Price"
msgstr "Preço"
-#: ../bin/dpricels.c:60
+#: ../bin/dpricels.c:59
msgid "Flex Track"
msgstr "Trilho flexível"
-#: ../bin/dpricels.c:61
+#: ../bin/dpricels.c:60
msgid "costs"
msgstr "Custos"
-#: ../bin/dpricels.c:155
+#: ../bin/dpricels.c:154
msgid "Price List"
msgstr "Lista de preços"
-#: ../bin/dprmfile.c:98
+#: ../bin/dprmfile.c:101
#, c-format
msgid "Updating %s"
msgstr "Atualizando %s"
-#: ../bin/dprmfile.c:217
+#: ../bin/dprmfile.c:228
msgid "Show File Names"
msgstr "Mostrar nomes dos arquivos"
-#: ../bin/dprmfile.c:226
-#: ../bin/dprmfile.c:330
+#: ../bin/dprmfile.c:235
+#, fuzzy
+msgid "Select all"
+msgstr "Selecionar &tudo"
+
+#: ../bin/dprmfile.c:238 ../bin/dprmfile.c:362
msgid "Unload"
msgstr "Descarregar"
-#: ../bin/dprmfile.c:227
+#: ../bin/dprmfile.c:239
msgid "Browse ..."
msgstr "Pesquisar..."
-#: ../bin/dprmfile.c:330
+#: ../bin/dprmfile.c:384
msgid "Reload"
msgstr "Recarregar"
-#: ../bin/dprmfile.c:431
+#: ../bin/dprmfile.c:533
msgid "Parameter Files"
msgstr "Lista de parâmetros"
-#: ../bin/dprmfile.c:432
+#: ../bin/dprmfile.c:534
msgid "Load Parameters"
msgstr "Carregar parâmetros"
-#: ../bin/dprmfile.c:432
+#: ../bin/dprmfile.c:534
msgid "Parameter files|*.xtp"
msgstr "Arquivos de parâmetros|*.xtp"
-#: ../bin/draw.c:1311
-#: ../bin/macro.c:598
-#: ../bin/misc.c:555
-msgid "Quit"
-msgstr "Sair"
+#: ../bin/draw.c:1802
+msgid "Macro Zoom Mode"
+msgstr ""
-#: ../bin/draw.c:1792
-#, c-format
-msgid "Zoom In Program Value %ld:1"
+#: ../bin/draw.c:1804
+msgid "Use Shift+PageDwn to jump to preset Zoom In"
+msgstr ""
+
+#: ../bin/draw.c:1809
+msgid "Scale 1:1 - Use Ctrl+PageDwn to go to Macro Zoom Mode"
+msgstr ""
+
+#: ../bin/draw.c:1813
+msgid "Preset Zoom In Value selected. Shift+Ctrl+PageDwn to reset value"
+msgstr ""
+
+#: ../bin/draw.c:1817
+#, fuzzy, c-format
+msgid "Zoom In Program Value %ld:1, Shift+PageDwn to use"
msgstr "Aproximar valor do programa %ld:1"
-#: ../bin/draw.c:1818
-#, c-format
-msgid "Zoom Out Program Value %ld:1"
+#: ../bin/draw.c:1836
+msgid "Use Shift+PageUp to jump to preset Zoom Out"
+msgstr ""
+
+#: ../bin/draw.c:1839
+msgid "At Maximum Zoom Out"
+msgstr ""
+
+#: ../bin/draw.c:1844
+msgid "Preset Zoom Out Value selected. Shift+Ctrl+PageUp to reset value"
+msgstr ""
+
+#: ../bin/draw.c:1848
+#, fuzzy, c-format
+msgid "Zoom Out Program Value %ld:1 set, Shift+PageUp to use"
msgstr "Afastar valor do programa %ld:1"
-#: ../bin/draw.c:2409
+#: ../bin/draw.c:2470
msgid "Map"
msgstr "Mapa"
-#: ../bin/drawgeom.c:157
-#: ../bin/drawgeom.c:170
+#: ../bin/drawgeom.c:79 ../bin/drawgeom.c:94
+msgid "Create Lines"
+msgstr "Criar linhas"
+
+#: ../bin/drawgeom.c:193 ../bin/drawgeom.c:206
msgid "Drag to place next end point"
msgstr "Arrastar para posicionar próxima extremidade"
-#: ../bin/drawgeom.c:215
+#: ../bin/drawgeom.c:238
+msgid "Drag to set radius"
+msgstr "Arrastar para definir o raio"
+
+#: ../bin/drawgeom.c:251
msgid "Drag set box size"
msgstr "Arrastar para ajustar tamanho do retângulo"
-#: ../bin/drawgeom.c:257
-#: ../bin/drawgeom.c:266
+#: ../bin/drawgeom.c:293 ../bin/drawgeom.c:302
#, c-format
msgid "Length = %s, Angle = %0.2f"
msgstr "Comprimento = %s, Ângulo = %0.2f"
# Ajustar software para imprimir virgulas ao invés de pontos decimais.
-#: ../bin/drawgeom.c:283
+#: ../bin/drawgeom.c:319
#, c-format
msgid "Straight Line: Length=%s Angle=%0.3f"
msgstr "Trecho reto: Comprimento=%s Ângulo=%0.3f"
-#: ../bin/drawgeom.c:306
+#: ../bin/drawgeom.c:342
#, c-format
msgid "Curved Line: Radius=%s Angle=%0.3f Length=%s"
msgstr "Linha curva: Raio=%s Ângulo=%0.3f Comprimento=%s"
-#: ../bin/drawgeom.c:321
+#: ../bin/drawgeom.c:357
#, c-format
msgid "Radius = %s"
msgstr "Raio = %s"
-#: ../bin/drawgeom.c:331
+#: ../bin/drawgeom.c:367
#, c-format
msgid "Width = %s, Height = %s"
msgstr "Largura = %s, Altura = %s"
-#: ../bin/drawgeom.c:609
+#: ../bin/drawgeom.c:686
#, c-format
msgid "Length = %0.3f Angle = %0.3f"
msgstr "Comprimento = %0.3f Ângulo = %0.3f"
-#: ../bin/fileio.c:239
+#: ../bin/dxfoutput.c:228
+msgid "Export to DXF"
+msgstr "Exportar para DXF"
+
+#: ../bin/fileio.c:235
msgid ""
"\n"
"Do you want to continue?"
@@ -4044,149 +4120,179 @@ msgstr ""
"\n"
"Continuar?"
-#: ../bin/fileio.c:528
+#: ../bin/fileio.c:541
msgid "Parameter"
msgstr "Parâmetro"
# Confirmar se "putTitle: " deve ser retirado do texto.
-#: ../bin/fileio.c:668
+#: ../bin/fileio.c:678
#, c-format
msgid "putTitle: title too long: %s"
msgstr "Título muito longo: %s"
-#: ../bin/fileio.c:684
+#: ../bin/fileio.c:698
msgid "Unnamed Trackplan"
msgstr "Trackplan sem nome"
-#: ../bin/fileio.c:700
-#: ../bin/fileio.c:1017
+#: ../bin/fileio.c:714 ../bin/fileio.c:1042
msgid "Check Pointing"
msgstr "Salvando arquivo temporário."
-#: ../bin/fileio.c:926
+#: ../bin/fileio.c:944
msgid "Track"
msgstr "Trilho"
-#: ../bin/fileio.c:984
-#: ../bin/fileio.c:997
+#: ../bin/fileio.c:1008
msgid "Save Tracks"
msgstr "Salvar layout"
-#: ../bin/fileio.c:1005
+#: ../bin/fileio.c:1022
+#, fuzzy
+msgid "Save Tracks As"
+msgstr "Salvar layout"
+
+#: ../bin/fileio.c:1030
msgid "Open Tracks"
msgstr "Abrir layout"
-#: ../bin/fileio.c:1166
-#: ../bin/fileio.c:1184
+#: ../bin/fileio.c:1163 ../bin/fileio.c:1181
msgid "Import Tracks"
msgstr "Importar layout"
-#: ../bin/fileio.c:1226
+#: ../bin/fileio.c:1242
msgid "Export Tracks"
msgstr "Exportar layout"
-#: ../bin/fileio.c:1403
-msgid "Export to DXF"
-msgstr "Exportar para DXF"
-
-#: ../bin/fileio.c:1421
+#: ../bin/fileio.c:1262
msgid "Clipboard"
msgstr "Área de transferência"
-#: ../bin/fileio.c:1458
-#: ../bin/misc.c:2038
+#: ../bin/fileio.c:1305 ../bin/misc.c:1986
msgid "Paste"
msgstr "Colar"
# Provavelmente uma mensagem de log que não necessita de tradução.
-#: ../bin/i18n.c:37
+#: ../bin/i18n.c:66
#, c-format
msgid "Gettext initialized (PACKAGE=%s, LOCALEDIR=%s, LC_ALL=%s).\n"
msgstr "Gettext iniciado (PACKAGE=%s, LOCALEDIR=%s, LC_ALL=%s).\n"
-#: ../bin/macro.c:81
+#: ../bin/layout.c:234
+msgid "Room Width"
+msgstr "Largura do cômodo"
+
+#: ../bin/layout.c:235
+msgid " Height"
+msgstr " Comprimento"
+
+#: ../bin/layout.c:236
+msgid "Layout Title"
+msgstr "Título do layout"
+
+#: ../bin/layout.c:237
+msgid "Subtitle"
+msgstr "Subtítulo"
+
+# Seria possível remover os espaços do texto original?
+#: ../bin/layout.c:241
+msgid " Gauge"
+msgstr " Bitola"
+
+#: ../bin/layout.c:243
+msgid "Min Track Radius"
+msgstr "Raio mínimo"
+
+#: ../bin/layout.c:244
+msgid " Max Track Grade (%)"
+msgstr "Inclinação máxima (%)"
+
+#: ../bin/layout.c:311
+msgid "Layout Options"
+msgstr "Opções de layout"
+
+#: ../bin/macro.c:90
msgid "Message"
msgstr "Mensagem"
-#: ../bin/macro.c:84
+#: ../bin/macro.c:93
msgid "End"
msgstr "Fim"
-#: ../bin/macro.c:163
+#: ../bin/macro.c:174
msgid "Recording"
msgstr "Gravando"
# "Próximo passo"? Provavelmente temos o mesmo texto sendo utilizado para dois contextos diferentes: playback e demo.
-#: ../bin/macro.c:198
+#: ../bin/macro.c:209
msgid "End of Playback. Hit Step to exit\n"
msgstr "Fim da gravação. Teclar \"Próximo passo\" para sair\n"
-#: ../bin/macro.c:262
+#: ../bin/macro.c:273
msgid "Record"
msgstr "Gravar"
-#: ../bin/macro.c:592
+#: ../bin/macro.c:603
msgid "Step"
msgstr "Próximo passo"
-#: ../bin/macro.c:595
-#: ../bin/macro.c:1360
+#: ../bin/macro.c:606 ../bin/macro.c:1367
msgid "Next"
msgstr "Próxima demonstração"
-#: ../bin/macro.c:601
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:468
+#: ../bin/macro.c:609 ../bin/misc.c:565
+msgid "Quit"
+msgstr "Sair"
+
+#: ../bin/macro.c:612 ../../../../build/work/app/bin/bllnhlp.c:495
msgid "Speed"
msgstr "Velocidade"
-#: ../bin/macro.c:831
-#: ../bin/macro.c:1221
+#: ../bin/macro.c:838 ../bin/macro.c:1228
msgid "Demo"
msgstr "Demonstração"
-#: ../bin/macro.c:1016
+#: ../bin/macro.c:1023
#, c-format
msgid "Elapsed time %lu\n"
msgstr "Tempo percorrido %lu\n"
-#: ../bin/macro.c:1150
+#: ../bin/macro.c:1157
msgid "Playback"
msgstr "Playback"
-#: ../bin/macro.c:1224
+#: ../bin/macro.c:1231
msgid "Slowest"
msgstr "Mínimo"
-#: ../bin/macro.c:1225
+#: ../bin/macro.c:1232
msgid "Slow"
msgstr "Devagar"
-#: ../bin/macro.c:1227
+#: ../bin/macro.c:1234
msgid "Fast"
msgstr "Rápido"
-#: ../bin/macro.c:1228
+#: ../bin/macro.c:1235
msgid "Faster"
msgstr "Mais rápido"
-#: ../bin/macro.c:1229
+#: ../bin/macro.c:1236
msgid "Fastest"
msgstr "Máximo"
-#: ../bin/macro.c:1347
+#: ../bin/macro.c:1354
msgid "Can not find PARAMETER playback proc"
msgstr "Não pôde encontrar PARÂMETRO do procedimento de playback"
-#: ../bin/misc.c:152
+#: ../bin/misc.c:164
msgid "No Messages"
msgstr "Nenhuma mensagem"
-#: ../bin/misc.c:297
-#: ../bin/misc.c:300
+#: ../bin/misc.c:309 ../bin/misc.c:312
msgid "ABORT"
msgstr "ABORTAR"
-#: ../bin/misc.c:299
+#: ../bin/misc.c:311
msgid ""
"\n"
"Do you want to save your layout?"
@@ -4194,12 +4300,12 @@ msgstr ""
"\n"
"Salvar layout?"
-#: ../bin/misc.c:349
+#: ../bin/misc.c:361
#, c-format
msgid "No help for %s"
msgstr "Ajuda inexistente para %s"
-#: ../bin/misc.c:452
+#: ../bin/misc.c:464
msgid ""
"Save changes to the layout design before closing?\n"
"\n"
@@ -4209,21 +4315,19 @@ msgstr ""
"\n"
"Se não salvar neste momento, suas alterações serão perdidas."
-#: ../bin/misc.c:454
-#: ../bin/misc.c:2081
+#: ../bin/misc.c:466 ../bin/misc.c:2028
msgid "&Save"
msgstr "&Salvar"
-#: ../bin/misc.c:454
-#: ../bin/misc.c:478
+#: ../bin/misc.c:466 ../bin/misc.c:490
msgid "&Cancel"
msgstr "&Anular"
-#: ../bin/misc.c:454
+#: ../bin/misc.c:466
msgid "&Don't Save"
msgstr "&Não salvar"
-#: ../bin/misc.c:476
+#: ../bin/misc.c:488
msgid ""
"Do you want to return to the last saved state?\n"
"\n"
@@ -4233,86 +4337,83 @@ msgstr ""
"\n"
"Revert will cause all changes done since last save to be lost."
-#: ../bin/misc.c:478
+#: ../bin/misc.c:490
msgid "&Revert"
msgstr "&Reverter"
-#: ../bin/misc.c:682
+#: ../bin/misc.c:716
msgid "XTrackCAD Font"
msgstr "Fonte XTrackCAD"
-#: ../bin/misc.c:764
+#: ../bin/misc.c:779
#, c-format
msgid "No balloon help for %s\n"
msgstr "Nenhum balão de ajuda para %s\n"
-#: ../bin/misc.c:766
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:531
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:532
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:534
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:535
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:537
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:538
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:539
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:540
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:541
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:542
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:543
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:544
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:545
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:546
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:547
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:548
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:549
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:550
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:551
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:552
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:553
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:554
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:555
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:556
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:557
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:558
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:559
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:560
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:561
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:562
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:563
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:564
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:565
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:566
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:567
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:568
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:569
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:570
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:571
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:572
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:573
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:574
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:575
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:576
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:577
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:578
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:579
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:580
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:581
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:582
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:583
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:584
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:585
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:586
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:587
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:588
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:589
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:590
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:591
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:593
+#: ../bin/misc.c:781 ../../../../build/work/app/bin/bllnhlp.c:558
+#: ../../../../build/work/app/bin/bllnhlp.c:559
+#: ../../../../build/work/app/bin/bllnhlp.c:561
+#: ../../../../build/work/app/bin/bllnhlp.c:562
+#: ../../../../build/work/app/bin/bllnhlp.c:564
+#: ../../../../build/work/app/bin/bllnhlp.c:565
+#: ../../../../build/work/app/bin/bllnhlp.c:566
+#: ../../../../build/work/app/bin/bllnhlp.c:567
+#: ../../../../build/work/app/bin/bllnhlp.c:568
+#: ../../../../build/work/app/bin/bllnhlp.c:569
+#: ../../../../build/work/app/bin/bllnhlp.c:570
+#: ../../../../build/work/app/bin/bllnhlp.c:571
+#: ../../../../build/work/app/bin/bllnhlp.c:572
+#: ../../../../build/work/app/bin/bllnhlp.c:573
+#: ../../../../build/work/app/bin/bllnhlp.c:574
+#: ../../../../build/work/app/bin/bllnhlp.c:575
+#: ../../../../build/work/app/bin/bllnhlp.c:576
+#: ../../../../build/work/app/bin/bllnhlp.c:577
+#: ../../../../build/work/app/bin/bllnhlp.c:578
+#: ../../../../build/work/app/bin/bllnhlp.c:579
+#: ../../../../build/work/app/bin/bllnhlp.c:580
+#: ../../../../build/work/app/bin/bllnhlp.c:581
+#: ../../../../build/work/app/bin/bllnhlp.c:582
+#: ../../../../build/work/app/bin/bllnhlp.c:583
+#: ../../../../build/work/app/bin/bllnhlp.c:584
+#: ../../../../build/work/app/bin/bllnhlp.c:585
+#: ../../../../build/work/app/bin/bllnhlp.c:586
+#: ../../../../build/work/app/bin/bllnhlp.c:587
+#: ../../../../build/work/app/bin/bllnhlp.c:588
+#: ../../../../build/work/app/bin/bllnhlp.c:589
+#: ../../../../build/work/app/bin/bllnhlp.c:590
+#: ../../../../build/work/app/bin/bllnhlp.c:591
+#: ../../../../build/work/app/bin/bllnhlp.c:592
+#: ../../../../build/work/app/bin/bllnhlp.c:593
+#: ../../../../build/work/app/bin/bllnhlp.c:594
+#: ../../../../build/work/app/bin/bllnhlp.c:595
+#: ../../../../build/work/app/bin/bllnhlp.c:596
+#: ../../../../build/work/app/bin/bllnhlp.c:597
+#: ../../../../build/work/app/bin/bllnhlp.c:598
+#: ../../../../build/work/app/bin/bllnhlp.c:599
+#: ../../../../build/work/app/bin/bllnhlp.c:600
+#: ../../../../build/work/app/bin/bllnhlp.c:601
+#: ../../../../build/work/app/bin/bllnhlp.c:602
+#: ../../../../build/work/app/bin/bllnhlp.c:603
+#: ../../../../build/work/app/bin/bllnhlp.c:604
+#: ../../../../build/work/app/bin/bllnhlp.c:605
+#: ../../../../build/work/app/bin/bllnhlp.c:606
+#: ../../../../build/work/app/bin/bllnhlp.c:607
+#: ../../../../build/work/app/bin/bllnhlp.c:608
+#: ../../../../build/work/app/bin/bllnhlp.c:609
+#: ../../../../build/work/app/bin/bllnhlp.c:610
+#: ../../../../build/work/app/bin/bllnhlp.c:611
+#: ../../../../build/work/app/bin/bllnhlp.c:612
+#: ../../../../build/work/app/bin/bllnhlp.c:613
+#: ../../../../build/work/app/bin/bllnhlp.c:614
+#: ../../../../build/work/app/bin/bllnhlp.c:615
+#: ../../../../build/work/app/bin/bllnhlp.c:616
+#: ../../../../build/work/app/bin/bllnhlp.c:617
+#: ../../../../build/work/app/bin/bllnhlp.c:618
+#: ../../../../build/work/app/bin/bllnhlp.c:620
msgid "No Help"
msgstr "Nenhuma ajuda"
-#: ../bin/misc.c:1024
-#: ../bin/misc.c:1029
-#: ../bin/misc.c:1094
+#: ../bin/misc.c:1041 ../bin/misc.c:1046 ../bin/misc.c:1111
msgid ""
"Cancelling the current command will undo the changes\n"
"you are currently making. Do you want to update?"
@@ -4320,1552 +4421,1495 @@ msgstr ""
"Anulação do último comando desfazerá as alterações\n"
"que você está fazendo. Continuar?"
-#: ../bin/misc.c:1685
+#: ../bin/misc.c:1634
msgid "Sticky Commands"
msgstr "Comandos \"grudendos\""
-#: ../bin/misc.c:1698
+#: ../bin/misc.c:1647
msgid "File Buttons"
msgstr "Botões de arquivos"
-#: ../bin/misc.c:1699
+#: ../bin/misc.c:1648
msgid "Zoom Buttons"
msgstr "Botões de zoom"
-#: ../bin/misc.c:1700
+#: ../bin/misc.c:1649
msgid "Undo Buttons"
msgstr "Botões de desfazer"
-#: ../bin/misc.c:1701
+#: ../bin/misc.c:1650
msgid "Easement Button"
msgstr "Botão de curva de transição"
-#: ../bin/misc.c:1702
+#: ../bin/misc.c:1651
msgid "SnapGrid Buttons"
msgstr "Botões da grade"
-#: ../bin/misc.c:1703
+#: ../bin/misc.c:1652
msgid "Create Track Buttons"
msgstr "Criar botões de trilhos"
-#: ../bin/misc.c:1705
+#: ../bin/misc.c:1653
msgid "Layout Control Elements"
msgstr "Elementos de controle de layout"
-#: ../bin/misc.c:1707
+#: ../bin/misc.c:1654
msgid "Modify Track Buttons"
msgstr "Modificar botões de trilhos"
-#: ../bin/misc.c:1708
-msgid "Describe/Select"
+#: ../bin/misc.c:1655
+msgid "Properties/Select"
msgstr "Descrever / Selecionar"
-#: ../bin/misc.c:1709
+#: ../bin/misc.c:1656
msgid "Track Group Buttons"
msgstr "Botões de grupos de trilhos"
-#: ../bin/misc.c:1710
+#: ../bin/misc.c:1657
msgid "Train Group Buttons"
msgstr "Botões de grupos de trens"
-#: ../bin/misc.c:1711
+#: ../bin/misc.c:1658
msgid "Create Misc Buttons"
msgstr "Criar botões de miscelâneas"
-#: ../bin/misc.c:1712
+#: ../bin/misc.c:1659
msgid "Ruler Button"
msgstr "Botão da régua"
-#: ../bin/misc.c:1713
+#: ../bin/misc.c:1660
msgid "Layer Buttons"
msgstr "Botões das camadas"
-#: ../bin/misc.c:1714
+#: ../bin/misc.c:1661
msgid "Hot Bar"
msgstr "Barra de itens"
-#: ../bin/misc.c:1799
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:66
+#: ../bin/misc.c:1744 ../../../../build/work/app/bin/bllnhlp.c:72
msgid "Change Elevations"
msgstr "Alterar elevações"
-#: ../bin/misc.c:1799
+#: ../bin/misc.c:1744
msgid "Change"
msgstr "Alterar"
-#: ../bin/misc.c:1812
+#: ../bin/misc.c:1757
msgid "Angle:"
msgstr "Ângulo:"
-#: ../bin/misc.c:1847
+#: ../bin/misc.c:1792
msgid "180 "
msgstr "180 "
-#: ../bin/misc.c:1848
+#: ../bin/misc.c:1793
msgid "90 CW"
msgstr "90° sentido horário"
-#: ../bin/misc.c:1849
+#: ../bin/misc.c:1794
msgid "45 CW"
msgstr "45° sentido horário"
-#: ../bin/misc.c:1850
+#: ../bin/misc.c:1795
msgid "30 CW"
msgstr "30° sentido horário"
-#: ../bin/misc.c:1851
+#: ../bin/misc.c:1796
msgid "15 CW"
msgstr "15° sentido horário"
-#: ../bin/misc.c:1852
+#: ../bin/misc.c:1797
msgid "15 CCW"
msgstr "15° sentido anti-horário"
-#: ../bin/misc.c:1853
+#: ../bin/misc.c:1798
msgid "30 CCW"
msgstr "30° sentido anti-horário"
-#: ../bin/misc.c:1854
+#: ../bin/misc.c:1799
msgid "45 CCW"
msgstr "45° sentido anti-horário"
-#: ../bin/misc.c:1855
+#: ../bin/misc.c:1800
msgid "90 CCW"
msgstr "90° sentido anti-horário"
-#: ../bin/misc.c:1856
+#: ../bin/misc.c:1801
msgid "Enter Angle ..."
msgstr "Entrar ângulo..."
-#: ../bin/misc.c:1883
+#: ../bin/misc.c:1828
msgid "Debug"
msgstr "Debugar"
-#: ../bin/misc.c:2009
+#: ../bin/misc.c:1956
msgid "&File"
msgstr "&Arquivo"
-#: ../bin/misc.c:2010
+#: ../bin/misc.c:1957
msgid "&Edit"
msgstr "&Editar"
-#: ../bin/misc.c:2011
+#: ../bin/misc.c:1958
msgid "&View"
msgstr "&Visualizar"
-#: ../bin/misc.c:2012
+#: ../bin/misc.c:1959
msgid "&Add"
msgstr "&Adicionar"
-#: ../bin/misc.c:2013
+#: ../bin/misc.c:1960
msgid "&Change"
msgstr "&Alterar"
-#: ../bin/misc.c:2014
+#: ../bin/misc.c:1961
msgid "&Draw"
msgstr "&Desenhar"
-#: ../bin/misc.c:2015
+#: ../bin/misc.c:1962
msgid "&Manage"
msgstr "&Gerenciar"
-#: ../bin/misc.c:2016
+#: ../bin/misc.c:1963
msgid "&Options"
msgstr "&Opções"
-#: ../bin/misc.c:2017
+#: ../bin/misc.c:1964
msgid "&Macro"
msgstr "&Macro"
-#: ../bin/misc.c:2018
+#: ../bin/misc.c:1965
msgid "&Window"
msgstr "&Janela"
-#: ../bin/misc.c:2019
+#: ../bin/misc.c:1966
msgid "&Help"
msgstr "&Ajuda"
-#: ../bin/misc.c:2025
-#: ../bin/misc.c:2026
+#: ../bin/misc.c:1972 ../bin/misc.c:1973
msgid "Commands"
msgstr "Comandos"
-#: ../bin/misc.c:2027
+#: ../bin/misc.c:1974
msgid "Undo"
msgstr "Desfazer"
-#: ../bin/misc.c:2028
+#: ../bin/misc.c:1975
msgid "Redo"
msgstr "Refazer"
-#: ../bin/misc.c:2029
-#: ../bin/misc.c:2030
+#: ../bin/misc.c:1976 ../bin/misc.c:1977
msgid "Zoom In"
msgstr "Aproximar"
-#: ../bin/misc.c:2031
-#: ../bin/misc.c:2032
+#: ../bin/misc.c:1978 ../bin/misc.c:1979
msgid "Zoom Out"
msgstr "Afastar"
-#: ../bin/misc.c:2033
+#: ../bin/misc.c:1980
msgid "SnapGrid Enable"
msgstr "Grade habilitada"
-#: ../bin/misc.c:2034
+#: ../bin/misc.c:1981
msgid "SnapGrid Show"
msgstr "Mostrar grade"
-#: ../bin/misc.c:2037
+#: ../bin/misc.c:1982 ../bin/misc.c:2107
+#, fuzzy
+msgid "Show/Hide Map"
+msgstr "Mostrar/Ocultar camada"
+
+#: ../bin/misc.c:1985
msgid "Copy"
msgstr "&Copiar"
-#: ../bin/misc.c:2039
+#: ../bin/misc.c:1987
msgid "Deselect All"
msgstr "Deselecionar tudo"
-#: ../bin/misc.c:2047
-#: ../bin/misc.c:2048
+#: ../bin/misc.c:1995 ../bin/misc.c:1996
msgid "More"
msgstr "Mais"
-#: ../bin/misc.c:2077
-msgid "&New"
-msgstr "&Novo"
+#: ../bin/misc.c:2024
+msgid "&New ..."
+msgstr "&Novo ..."
-#: ../bin/misc.c:2078
+#: ../bin/misc.c:2025
msgid "&Open ..."
msgstr "&Abrir..."
-#: ../bin/misc.c:2082
+#: ../bin/misc.c:2029
msgid "Save &As ..."
msgstr "Salvar &como..."
-#: ../bin/misc.c:2083
+#: ../bin/misc.c:2030
msgid "Revert"
msgstr "&Reverter"
-#: ../bin/misc.c:2085
+#: ../bin/misc.c:2032
msgid "P&rint Setup ..."
msgstr "Configuração de &impressão"
-#: ../bin/misc.c:2088
+#: ../bin/misc.c:2035
msgid "&Import"
msgstr "&Importar"
-#: ../bin/misc.c:2089
+#: ../bin/misc.c:2036
msgid "Export to &Bitmap"
msgstr "Exportar para &bitmap"
-#: ../bin/misc.c:2090
+#: ../bin/misc.c:2037
msgid "E&xport"
msgstr "E&xportar"
-#: ../bin/misc.c:2091
+#: ../bin/misc.c:2038
msgid "Export D&XF"
msgstr "Exportar D&XF"
-#: ../bin/misc.c:2094
+#: ../bin/misc.c:2041
msgid "Parameter &Files ..."
msgstr "Arquivos de &parâmetro..."
-#: ../bin/misc.c:2095
+#: ../bin/misc.c:2042
msgid "No&tes ..."
msgstr "N&otas..."
-#: ../bin/misc.c:2100
+#: ../bin/misc.c:2047
msgid "E&xit"
msgstr "&Sair"
-#: ../bin/misc.c:2106
+#: ../bin/misc.c:2053
msgid "&Undo"
msgstr "&Desfazer"
-#: ../bin/misc.c:2107
+#: ../bin/misc.c:2054
msgid "R&edo"
msgstr "&Refazer"
-#: ../bin/misc.c:2109
+#: ../bin/misc.c:2056
msgid "Cu&t"
msgstr "&Cortar"
-#: ../bin/misc.c:2110
+#: ../bin/misc.c:2057
msgid "&Copy"
msgstr "&Copiar"
-#: ../bin/misc.c:2111
+#: ../bin/misc.c:2058
msgid "&Paste"
msgstr "&Colar"
-#: ../bin/misc.c:2112
+#: ../bin/misc.c:2059
msgid "De&lete"
msgstr "&Apagar"
-#: ../bin/misc.c:2118
+#: ../bin/misc.c:2065
msgid "Select &All"
msgstr "Selecionar &tudo"
-#: ../bin/misc.c:2119
+#: ../bin/misc.c:2066
msgid "Select Current Layer"
msgstr "&Selecionar camada atual"
-#: ../bin/misc.c:2120
+#: ../bin/misc.c:2067
msgid "&Deselect All"
msgstr "&Deselecionar tudo"
-#: ../bin/misc.c:2121
+#: ../bin/misc.c:2068
msgid "&Invert Selection"
msgstr "&Inverter seleção"
-#: ../bin/misc.c:2122
+#: ../bin/misc.c:2069
msgid "Select Stranded Track"
msgstr "Selecionar trecho pego"
-#: ../bin/misc.c:2124
+#: ../bin/misc.c:2071
msgid "Tu&nnel"
msgstr "&Túnel"
-#: ../bin/misc.c:2125
+#: ../bin/misc.c:2072
msgid "A&bove"
msgstr "A&cima"
-#: ../bin/misc.c:2126
+#: ../bin/misc.c:2073
msgid "Belo&w"
msgstr "Abai&xo"
-#: ../bin/misc.c:2129
+#: ../bin/misc.c:2076
msgid "Thin Tracks"
msgstr "Trilhos finos"
-#: ../bin/misc.c:2130
+#: ../bin/misc.c:2077
msgid "Medium Tracks"
msgstr "Trilhos médios"
-#: ../bin/misc.c:2131
+#: ../bin/misc.c:2078
msgid "Thick Tracks"
msgstr "Trilhos largos"
-#: ../bin/misc.c:2136
+#: ../bin/misc.c:2083
msgid "Zoom &In"
msgstr "Aproximar"
-#: ../bin/misc.c:2137
+#: ../bin/misc.c:2084
msgid "&Zoom"
msgstr "&Zoom"
-#: ../bin/misc.c:2138
+#: ../bin/misc.c:2085
msgid "Zoom &Out"
msgstr "Afastar"
-#: ../bin/misc.c:2147
+#: ../bin/misc.c:2094
msgid "&Redraw"
msgstr "&Redesenhar"
-#: ../bin/misc.c:2148
+#: ../bin/misc.c:2095
msgid "Redraw All"
msgstr "Redesenhar tudo"
-#: ../bin/misc.c:2151
+#: ../bin/misc.c:2098
msgid "Enable SnapGrid"
msgstr "Habilitar grade"
-#: ../bin/misc.c:2153
+#: ../bin/misc.c:2100
msgid "Show SnapGrid"
msgstr "Mostrar grade"
-#: ../bin/misc.c:2158
+#: ../bin/misc.c:2112
msgid "&Tool Bar"
msgstr "Barra de &ferramentas"
-#: ../bin/misc.c:2203
+#: ../bin/misc.c:2162
msgid "&Loosen Tracks"
msgstr "Trechos &perdidos"
-#: ../bin/misc.c:2212
+#: ../bin/misc.c:2171
msgid "Raise/Lower Elevations"
msgstr "Aumentar / diminuir elevações"
-#: ../bin/misc.c:2217
+#: ../bin/misc.c:2176
msgid "Recompute Elevations"
msgstr "Recalcular inclinações"
-#: ../bin/misc.c:2221
+#: ../bin/misc.c:2180
msgid "Change Scale"
msgstr "Alterar escala"
-#: ../bin/misc.c:2238
+#: ../bin/misc.c:2197
msgid "L&ayout ..."
msgstr "&Layout..."
-#: ../bin/misc.c:2239
+#: ../bin/misc.c:2198
msgid "&Display ..."
msgstr "&Tela..."
-#: ../bin/misc.c:2240
+#: ../bin/misc.c:2199
msgid "Co&mmand ..."
msgstr "&Comando..."
-#: ../bin/misc.c:2241
+#: ../bin/misc.c:2200
msgid "&Easements ..."
msgstr "Curvas de &transição..."
-#: ../bin/misc.c:2242
+#: ../bin/misc.c:2201
msgid "&Fonts ..."
msgstr "&Fontes..."
-#: ../bin/misc.c:2243
+#: ../bin/misc.c:2202
msgid "Stic&ky ..."
msgstr "Comandos \"&grudendos\"..."
-#: ../bin/misc.c:2246
+#: ../bin/misc.c:2205
msgid "&Debug ..."
msgstr "&Debugar..."
-#: ../bin/misc.c:2248
+#: ../bin/misc.c:2207
msgid "&Preferences ..."
msgstr "&Preferências..."
-#: ../bin/misc.c:2249
+#: ../bin/misc.c:2208
msgid "&Colors ..."
msgstr "&Cores..."
-#: ../bin/misc.c:2254
+#: ../bin/misc.c:2213
msgid "&Record ..."
msgstr "&Gravar..."
-#: ../bin/misc.c:2255
+#: ../bin/misc.c:2214
msgid "&Play Back ..."
msgstr "&Playback..."
-#: ../bin/misc.c:2261
+#: ../bin/misc.c:2220
msgid "Main window"
msgstr "Janela principal"
-#: ../bin/misc.c:2273
+#: ../bin/misc.c:2232
msgid "Recent Messages"
msgstr "Mensagens recentes"
-#: ../bin/misc.c:2279
+#: ../bin/misc.c:2238
msgid "Tip of the Day..."
msgstr "Dica do dia..."
-#: ../bin/misc.c:2280
+#: ../bin/misc.c:2239
msgid "&Demos"
msgstr "&Demonstrações"
-#: ../bin/misc.c:2284
-#: ../bin/smalldlg.c:221
+#: ../bin/misc.c:2243 ../bin/smalldlg.c:220
msgid "About"
msgstr "Sobre"
-#: ../bin/misc.c:2294
+#: ../bin/misc.c:2253
msgid "Tur&nout Designer..."
msgstr "Editor de &AMV"
-#: ../bin/misc.c:2296
+#: ../bin/misc.c:2255
+#, fuzzy
+msgid "Layout &Control Elements"
+msgstr "Elementos de controle de layout"
+
+#: ../bin/misc.c:2256
msgid "&Group"
msgstr "A&grupar"
-#: ../bin/misc.c:2297
+#: ../bin/misc.c:2257
msgid "&Ungroup"
msgstr "&Desagrupar"
-#: ../bin/misc.c:2299
-msgid "Custom Management..."
+#: ../bin/misc.c:2259
+#, fuzzy
+msgid "Custom defined parts..."
msgstr "Gerenciamento personalizado"
-#: ../bin/misc.c:2300
+#: ../bin/misc.c:2260
msgid "Update Turnouts and Structures"
msgstr "Atualizar AMVs e estruturas"
-#: ../bin/misc.c:2306
+#: ../bin/misc.c:2266
msgid "Layers ..."
msgstr "Camadas"
-#: ../bin/misc.c:2309
+#: ../bin/misc.c:2269
msgid "Parts &List ..."
msgstr "Lista de itens"
-#: ../bin/misc.c:2310
+#: ../bin/misc.c:2270
msgid "Price List..."
msgstr "Lista de preços"
-#: ../bin/misc.c:2389
-msgid "Program was not terminated properly. Do you want to resume working on the previous trackplan?"
-msgstr "O programa não foi terminado apropriadamente. Continuar trabalhando no projeto de layout anterior?"
+#: ../bin/misc.c:2351
+msgid ""
+"Program was not terminated properly. Do you want to resume working on the "
+"previous trackplan?"
+msgstr ""
+"O programa não foi terminado apropriadamente. Continuar trabalhando no "
+"projeto de layout anterior?"
-#: ../bin/misc.c:2390
+#: ../bin/misc.c:2352
msgid "Resume"
msgstr "Continuar"
-#: ../bin/misc.c:2498
+#: ../bin/misc.c:2461
#, c-format
msgid "Unnamed Trackplan - %s(%s)"
msgstr "Layout sem nome - %s(%s)"
-#: ../bin/misc.c:2564
+#: ../bin/misc.c:2529
msgid "Initializing commands"
msgstr "Iniciando comandos"
-#: ../bin/misc.c:2573
+#: ../bin/misc.c:2538
msgid "Initializing menus"
msgstr "Iniciando menus"
-#: ../bin/misc.c:2610
+#: ../bin/misc.c:2575
msgid "Reading parameter files"
msgstr "Lendo arquivos de parâmetros"
-#: ../bin/misc.c:2639
+#: ../bin/misc.c:2609
msgid "Initialization complete"
msgstr "Iniciação completa"
-#: ../bin/param.c:91
-msgid "Black"
-msgstr "Preto"
-
-#: ../bin/param.c:93
-msgid "Dark Blue"
-msgstr "Azul-escuro"
-
-#: ../bin/param.c:94
-msgid "Steel Blue"
-msgstr "Azul-aço"
-
#: ../bin/param.c:95
-msgid "Royal Blue"
-msgstr "Azul-royal"
-
-#: ../bin/param.c:96
-msgid "Blue"
-msgstr "Azul"
-
-#: ../bin/param.c:97
-msgid "Deep Sky Blue"
-msgstr "Azul celeste profundo"
-
-#: ../bin/param.c:98
-msgid "Light Sky Blue"
-msgstr "Azul celeste claro"
-
-#: ../bin/param.c:99
-msgid "Powder Blue"
-msgstr "Azul-pólvora"
-
-#: ../bin/param.c:101
-msgid "Dark Aqua"
-msgstr "Azul-água-escuro"
-
-#: ../bin/param.c:102
-msgid "Aquamarine"
-msgstr "Verde-azulado"
-
-#: ../bin/param.c:103
-msgid "Aqua"
-msgstr "Azul-água"
-
-#: ../bin/param.c:105
-msgid "Dark Green"
-msgstr "Verde-escuro"
-
-#: ../bin/param.c:106
-msgid "Forest Green"
-msgstr "Verde-floresta"
-
-#: ../bin/param.c:107
-msgid "Lime Green"
-msgstr "Verde-lima"
-
-#: ../bin/param.c:108
-msgid "Green"
-msgstr "Verde"
-
-#: ../bin/param.c:109
-msgid "Lawn Green"
-msgstr "Verde-grama"
-
-#: ../bin/param.c:110
-msgid "Pale Green"
-msgstr "Verde-pálido"
-
-#: ../bin/param.c:112
-msgid "Dark Yellow"
-msgstr "Amarelo-escuro"
-
-#: ../bin/param.c:113
-msgid "Coral"
-msgstr "Coral"
-
-#: ../bin/param.c:114
-msgid "Orange"
-msgstr "Laranja"
-
-#: ../bin/param.c:115
-msgid "Gold"
-msgstr "Dourado"
-
-#: ../bin/param.c:116
-msgid "Yellow"
-msgstr "Amarelo"
-
-#: ../bin/param.c:118
-msgid "Saddle Brown"
-msgstr "Marrom-couro"
-
-#: ../bin/param.c:119
-msgid "Brown"
-msgstr "Marrom"
-
-#: ../bin/param.c:120
-msgid "Chocolate"
-msgstr "Chocolate"
-
-#: ../bin/param.c:121
-msgid "Rosy Brown"
-msgstr "Marrom-rosado"
-
-#: ../bin/param.c:122
-msgid "Tan"
-msgstr "Canela"
-
-#: ../bin/param.c:123
-msgid "Beige"
-msgstr "Bege"
-
-#: ../bin/param.c:126
-msgid "Dark Red"
-msgstr "Vermelho-escuro"
-
-#: ../bin/param.c:127
-msgid "Tomato"
-msgstr "Vermelho-tomate"
-
-#: ../bin/param.c:128
-msgid "Red"
-msgstr "Vermelho"
-
-#: ../bin/param.c:129
-msgid "Hot Pink"
-msgstr "Rosa-quente"
-
-#: ../bin/param.c:130
-msgid "Pink"
-msgstr "Rosado"
-
-#: ../bin/param.c:132
-msgid "Dark Purple"
-msgstr "Púrpura-escuro"
-
-#: ../bin/param.c:133
-msgid "Maroon"
-msgstr "Castanho"
-
-#: ../bin/param.c:134
-msgid "Purple2"
-msgstr "Púrpura 2"
-
-#: ../bin/param.c:135
-msgid "Purple"
-msgstr "Púrpura"
-
-#: ../bin/param.c:136
-msgid "Violet"
-msgstr "Violeta"
-
-#: ../bin/param.c:138
-msgid "Dark Gray"
-msgstr "Cinza-escuro"
-
-#: ../bin/param.c:139
-msgid "Gray"
-msgstr "Cinza"
-
-#: ../bin/param.c:140
-msgid "Light Gray"
-msgstr "Cinza-claro"
-
-#: ../bin/param.c:182
msgid "Unexpected End Of String"
msgstr "Fim de string não esperado"
-#: ../bin/param.c:189
+#: ../bin/param.c:102
msgid "Expected digit"
msgstr "Dígito esperado"
-#: ../bin/param.c:196
+#: ../bin/param.c:109
msgid "Overflow"
msgstr "Overflow"
-#: ../bin/param.c:244
+#: ../bin/param.c:157
msgid "Divide by 0"
msgstr "Divisão por zero"
-#: ../bin/param.c:252
+#: ../bin/param.c:165
msgid "Expected /"
msgstr "Caractere \"/\" esperado"
-#: ../bin/param.c:310
+#: ../bin/param.c:237
msgid "Invalid Units Indicator"
msgstr "Indicador de unidades inválido"
-#: ../bin/param.c:324
+#: ../bin/param.c:251
msgid "Expected End Of String"
msgstr "Fim de string esperado"
-#: ../bin/param.c:347
-#: ../bin/param.c:1373
+#: ../bin/param.c:274 ../bin/param.c:1294
#, c-format
msgid "Invalid Number"
msgstr "Número inválido"
-#: ../bin/param.c:395
+#: ../bin/param.c:322
msgid "End Of String"
msgstr "Fim de string"
-#: ../bin/param.c:1380
+#: ../bin/param.c:1301
#, c-format
msgid "Enter a value > %ld"
msgstr "Digitar um valor maior que %ld"
-#: ../bin/param.c:1382
+#: ../bin/param.c:1303
#, c-format
msgid "Enter a value < %ld"
msgstr "Digitar um valor menor que %ld"
-#: ../bin/param.c:1384
+#: ../bin/param.c:1305
#, c-format
msgid "Enter a value between %ld and %ld"
msgstr "Digitar um valor entre %ld e %ld"
-#: ../bin/param.c:1424
+#: ../bin/param.c:1353
#, c-format
msgid "Enter a value > %s"
msgstr "Digitar um valor maior que %s"
-#: ../bin/param.c:1427
+#: ../bin/param.c:1356
#, c-format
msgid "Enter a value < %s"
msgstr "Digitar um valor menor que %s"
-#: ../bin/param.c:1430
+#: ../bin/param.c:1359
#, c-format
msgid "Enter a value between %s and %s"
msgstr "Digitar um valor entre %s e %s"
-#: ../bin/param.c:2590
+#: ../bin/param.c:2495
msgid "Help"
msgstr "Ajuda"
-#: ../bin/smalldlg.c:66
+#: ../bin/smalldlg.c:63
msgid "Show tips at start"
msgstr "Exibir dicas ao iniciar"
-#: ../bin/smalldlg.c:72
+#: ../bin/smalldlg.c:69
msgid "Did you know..."
msgstr "Você sabia..."
-#: ../bin/smalldlg.c:74
+#: ../bin/smalldlg.c:71
msgid "Previous Tip"
msgstr "Dica anterior"
-#: ../bin/smalldlg.c:75
+#: ../bin/smalldlg.c:72
msgid "Next Tip"
msgstr "Próxima dica"
-#: ../bin/smalldlg.c:91
+#: ../bin/smalldlg.c:89
msgid "Tip of the Day"
msgstr "Dica do dia"
-#: ../bin/smalldlg.c:100
+#: ../bin/smalldlg.c:98
msgid "No tips are available"
msgstr "Nenhuma dica disponível"
-#: ../bin/smalldlg.c:198
-msgid "XTrackCAD is a CAD (computer-aided design) program for designing model railroad layouts."
-msgstr "XTrackCAD é um programa CAD (em inglês, computer aided design) para projetos de layout de ferromodelismo."
+#: ../bin/smalldlg.c:197
+msgid ""
+"XTrackCAD is a CAD (computer-aided design) program for designing model "
+"railroad layouts."
+msgstr ""
+"XTrackCAD é um programa CAD (em inglês, computer aided design) para projetos "
+"de layout de ferromodelismo."
-#: ../bin/tcurve.c:228
+#: ../bin/tbezier.c:170
+#, c-format
+msgid "Bezier Curve: length=%s min radius=%s"
+msgstr ""
+
+#: ../bin/tbezier.c:232
+#, fuzzy
+msgid "Z1"
+msgstr "Z"
+
+#: ../bin/tbezier.c:233 ../bin/tcornu.c:279
+#, fuzzy
+msgid "End Angle 1"
+msgstr "Entrar ângulo..."
+
+#: ../bin/tbezier.c:234
+#, fuzzy
+msgid "Ctl Pt 1: X"
+msgstr "Extremidade 1: X"
+
+#: ../bin/tbezier.c:235
+#, fuzzy
+msgid "Ctl Pt 2: X"
+msgstr "Extremidade 2: X"
+
+#: ../bin/tbezier.c:237
+#, fuzzy
+msgid "Z2"
+msgstr "Z"
+
+#: ../bin/tbezier.c:238 ../bin/tcornu.c:284
+#, fuzzy
+msgid "End Angle 2"
+msgstr "Entrar ângulo..."
+
+#: ../bin/tbezier.c:239
+#, fuzzy
+msgid "MinRadius"
+msgstr "Raio"
+
+#: ../bin/tbezier.c:244
+#, fuzzy
+msgid "Line Color"
+msgstr "Cor %s"
+
+#: ../bin/tbezier.c:341
+#, fuzzy, c-format
+msgid ""
+"Bezier %s(%d): Layer=%u MinRadius=%s Length=%s EP=[%0.3f,%0.3f] [%0.3f,"
+"%0.3f] CP1=[%0.3f,%0.3f] CP2=[%0.3f, %0.3f]"
+msgstr ""
+"Trecho curvo(%d): Camada=%d Raio=%s Comprimento=%s Centro=[%s,%s] "
+"Extremidades=[%0.3f,%0.3f θ%0.3f] [%0.3f,%0.3f θ%0.3f]"
+
+#: ../bin/tbezier.c:399
+#, fuzzy
+msgid "Bezier Track"
+msgstr "Trecho em hélice"
+
+#: ../bin/tbezier.c:768
+msgid "Merge Bezier"
+msgstr ""
+
+#: ../bin/tcornu.c:210
+#, c-format
+msgid "Cornu Curve: length=%0.3f min radius=%0.3f"
+msgstr ""
+
+#: ../bin/tcornu.c:278
+#, fuzzy
+msgid "Elev 1"
+msgstr "Elev = %s"
+
+#: ../bin/tcornu.c:280
+#, fuzzy
+msgid "Radius 1"
+msgstr "Raio 1"
+
+#: ../bin/tcornu.c:281
+#, fuzzy
+msgid "End Radius Center 1: X"
+msgstr "Extremidade 1: X"
+
+#: ../bin/tcornu.c:283
+#, fuzzy
+msgid "Elev 2"
+msgstr "Elev = %s"
+
+#: ../bin/tcornu.c:285
+#, fuzzy
+msgid "Radius 2"
+msgstr "Raio 2"
+
+#: ../bin/tcornu.c:286
+#, fuzzy
+msgid "End Radius Center 2: X"
+msgstr "Extremidade 2: X"
+
+#: ../bin/tcornu.c:287
+#, fuzzy
+msgid "Minimum Radius"
+msgstr "Raio mínimo"
+
+#: ../bin/tcornu.c:288
+msgid "Maximum Rate Of Change Of Curvature"
+msgstr ""
+
+#: ../bin/tcornu.c:289
+msgid "Total Winding Angle"
+msgstr ""
+
+#: ../bin/tcornu.c:410
+#, fuzzy, c-format
+msgid ""
+"Cornu Track(%d): Layer=%u MinRadius=%s Length=%s EP=[%0.3f,%0.3f] [%0.3f,"
+"%0.3f]"
+msgstr ""
+"Trecho curvo(%d): Camada=%d Raio=%s Comprimento=%s Centro=[%s,%s] "
+"Extremidades=[%0.3f,%0.3f θ%0.3f] [%0.3f,%0.3f θ%0.3f]"
+
+#: ../bin/tcornu.c:463
+#, fuzzy
+msgid "Cornu Track"
+msgstr "Trecho curvo"
+
+#: ../bin/tcornu.c:907
+#, fuzzy
+msgid "Merge Cornu"
+msgstr "Fundir curvas"
+
+#: ../bin/tcurve.c:234
#, c-format
msgid "Helix: turns=%ld length=%s grade=%0.1f%% sep=%s"
msgstr "Hélice: voltas=%ld comprimento=%s inclinação=%0.1f%% separação=%s"
-#: ../bin/tcurve.c:234
+#: ../bin/tcurve.c:240
#, c-format
msgid "Helix: turns=%ld length=%s"
msgstr "Hélice: voltas=%ld comprimento=%s"
-#: ../bin/tcurve.c:349
+#: ../bin/tcurve.c:357
msgid "Angular Length"
msgstr "Comprimento angular"
-#: ../bin/tcurve.c:522
+#: ../bin/tcurve.c:533
#, c-format
-msgid "Helix Track(%d): Layer=%d Radius=%s Turns=%ld Length=%s Center=[%s,%s] EP=[%0.3f,%0.3f A%0.3f] [%0.3f,%0.3f A%0.3f]"
-msgstr "Trecho em hélice(%d): Camada=%d Raio=%s Voltas=%ld Comprimento=%s Centro=[%s,%s] EP=[%0.3f,%0.3f θ%0.3f] [%0.3f,%0.3f θ%0.3f]"
+msgid ""
+"Helix Track(%d): Layer=%d Radius=%s Turns=%ld Length=%s Center=[%s,%s] EP="
+"[%0.3f,%0.3f A%0.3f] [%0.3f,%0.3f A%0.3f]"
+msgstr ""
+"Trecho em hélice(%d): Camada=%d Raio=%s Voltas=%ld Comprimento=%s Centro=[%s,"
+"%s] EP=[%0.3f,%0.3f θ%0.3f] [%0.3f,%0.3f θ%0.3f]"
-#: ../bin/tcurve.c:532
+#: ../bin/tcurve.c:543
#, c-format
-msgid "Curved Track(%d): Layer=%d Radius=%s Length=%s Center=[%s,%s] EP=[%0.3f,%0.3f A%0.3f] [%0.3f,%0.3f A%0.3f]"
-msgstr "Trecho curvo(%d): Camada=%d Raio=%s Comprimento=%s Centro=[%s,%s] Extremidades=[%0.3f,%0.3f θ%0.3f] [%0.3f,%0.3f θ%0.3f]"
+msgid ""
+"Curved Track(%d): Layer=%d Radius=%s Length=%s Center=[%s,%s] EP=[%0.3f,"
+"%0.3f A%0.3f] [%0.3f,%0.3f A%0.3f]"
+msgstr ""
+"Trecho curvo(%d): Camada=%d Raio=%s Comprimento=%s Centro=[%s,%s] "
+"Extremidades=[%0.3f,%0.3f θ%0.3f] [%0.3f,%0.3f θ%0.3f]"
-#: ../bin/tcurve.c:608
+#: ../bin/tcurve.c:620
msgid "Helix Track"
msgstr "Trecho em hélice"
-#: ../bin/tcurve.c:614
+#: ../bin/tcurve.c:626
msgid "Curved Track"
msgstr "Trecho curvo"
-#: ../bin/tcurve.c:968
+#: ../bin/tcurve.c:980
msgid "Merge Curves"
msgstr "Fundir curvas"
-#: ../bin/tcurve.c:1035
+#: ../bin/tcurve.c:1047
msgid "Drag to change angle or create tangent"
msgstr "Arrastar para alterar ângulo ou criar tangente"
-#: ../bin/tcurve.c:1068
-#: ../bin/tcurve.c:1100
+#: ../bin/tcurve.c:1080 ../bin/tcurve.c:1112
msgid "Curved "
msgstr "Curva"
-#: ../bin/tcurve.c:1074
+#: ../bin/tcurve.c:1086
msgid "Tangent "
msgstr "Tangente"
-#: ../bin/tcurve.c:1083
+#: ../bin/tcurve.c:1095
#, c-format
msgid "Tangent track: Length %s Angle %0.3f"
msgstr "Trecho tangente: Comprimento %s Ângulo %0.3f"
-#: ../bin/tcurve.c:1105
+#: ../bin/tcurve.c:1117
#, c-format
msgid "Curved: Radius=%s Length=%s Angle=%0.3f"
msgstr "Curva: Raio=%s Comprimento=%s Ângulo=%0.3f"
-#: ../bin/tease.c:505
+#: ../bin/tease.c:511
msgid "l0"
msgstr "l0"
-#: ../bin/tease.c:506
+#: ../bin/tease.c:512
msgid "l1"
msgstr "l1"
-#: ../bin/tease.c:545
+#: ../bin/tease.c:554
#, c-format
-msgid "Joint Track(%d): Layer=%d Length=%0.3f EP=[%0.3f,%0.3f A%0.3f] [%0.3f,%0.3f A%0.3f]"
-msgstr "Trecho juntado(%d): Camada=%d Comprimento=%0.3f Extremidades=[%0.3f,%0.3f θ%0.3f] [%0.3f,%0.3f θ%0.3f]"
+msgid ""
+"Joint Track(%d): Layer=%d Length=%0.3f EP=[%0.3f,%0.3f A%0.3f] [%0.3f,%0.3f A"
+"%0.3f]"
+msgstr ""
+"Trecho juntado(%d): Camada=%d Comprimento=%0.3f Extremidades=[%0.3f,%0.3f θ"
+"%0.3f] [%0.3f,%0.3f θ%0.3f]"
-#: ../bin/tease.c:589
+#: ../bin/tease.c:599
msgid "Easement Track"
msgstr "Trecho de curva de transição"
-#: ../bin/tease.c:1255
+#: ../bin/tease.c:1265
msgid "Merge Easements"
msgstr "Fundir curvas de transição"
-#: ../bin/tease.c:1320
+#: ../bin/tease.c:1330
msgid "Split Easement Curve"
msgstr "Seccionar curva de transição"
-#: ../bin/track.c:1039
+#: ../bin/track.c:1112
msgid "Move Objects Above"
msgstr "Mover objetos para cima"
-#: ../bin/track.c:1059
+#: ../bin/track.c:1132
msgid "Mode Objects Below"
msgstr "Mover objetos para baixo"
-#: ../bin/track.c:1262
+#: ../bin/track.c:1360
msgid "Audit"
msgstr "Auditar"
-#: ../bin/track.c:1535
+#: ../bin/track.c:1634
#, c-format
msgid "%d Track(s) loosened"
msgstr "%d trecho(s) liberado(s)"
-#: ../bin/track.c:1542
+#: ../bin/track.c:1641
msgid "No tracks loosened"
msgstr "Nenhum trecho liberado"
-#: ../bin/track.c:1552
-#: ../bin/track.c:1556
+#: ../bin/track.c:1651 ../bin/track.c:1655
#, c-format
msgid "Connecting a non-track(%d) to (%d)"
msgstr "Conectando um objeto(%d) a (%d)"
-#: ../bin/track.c:1617
+#: ../bin/track.c:1716
msgid "Join Abutting Tracks"
msgstr "Juntar trechos lado a lado"
-#: ../bin/track.c:1877
-#: ../bin/tstraigh.c:543
+#: ../bin/track.c:1966 ../bin/tstraigh.c:556
#, c-format
msgid "Straight: Length=%s Angle=%0.3f"
msgstr "Reto: Comprimento=%s Ângulo=%0.3f"
-#: ../bin/tstraigh.c:224
+#: ../bin/tstraigh.c:236
#, c-format
-msgid "Straight Track(%d): Layer=%d Length=%s EP=[%0.3f,%0.3f A%0.3f] [%0.3f,%0.3f A%0.3f]"
-msgstr "Trecho reto(%d): Camada=%d Comprimento=%s Extremidades=[%0.3f,%0.3f θ%0.3f] [%0.3f,%0.3f θ%0.3f]"
+msgid ""
+"Straight Track(%d): Layer=%d Length=%s EP=[%0.3f,%0.3f A%0.3f] [%0.3f,%0.3f A"
+"%0.3f]"
+msgstr ""
+"Trecho reto(%d): Camada=%d Comprimento=%s Extremidades=[%0.3f,%0.3f θ%0.3f] "
+"[%0.3f,%0.3f θ%0.3f]"
-#: ../bin/tstraigh.c:457
+#: ../bin/tstraigh.c:470
msgid "Extending Straight Track"
msgstr "Estendendo trecho reto"
-#: ../bin/tstraigh.c:536
+#: ../bin/tstraigh.c:549
msgid "Straight "
msgstr "Reto"
-#: ../wlib/gtklib/CVS/Base/gtkfilsel.c:129
-#: ../wlib/gtklib/gtkfilsel.c:129
-msgid ""
-" exists\n"
-"Do you want to overwrite it?"
-msgstr ""
-" existente\n"
-"Sobrescrever?"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:749
-#: ../wlib/gtklib/psprint.c:749
-#, c-format
-msgid "Page %d"
-msgstr "Página %d"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:795
-#: ../wlib/gtklib/psprint.c:795
-msgid "Print to file ..."
-msgstr "Imprimir em um arquivo..."
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:829
-#: ../wlib/gtklib/psprint.c:829
-msgid "No file name specified"
-msgstr "Nome do arquivo não especificado"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:833
-#: ../wlib/gtklib/psprint.c:833
-#, c-format
-msgid "%s exists"
-msgstr "%s existente"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:834
-#: ../wlib/gtklib/psprint.c:834
-msgid "Overwrite"
-msgstr "Sobrescrever"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:839
-#: ../wlib/gtklib/CVS/Base/psprint.c:852
-#: ../wlib/gtklib/psprint.c:839
-#: ../wlib/gtklib/psprint.c:852
-msgid ": cannot open"
-msgstr ": não foi possível abrir"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:914
-#: ../wlib/gtklib/psprint.c:914
-#, c-format
-msgid "Now printing %s"
-msgstr "Imprimindo agora %s"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:916
-#: ../wlib/gtklib/psprint.c:916
-msgid "Page 1"
-msgstr "Página 1"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:968
-#: ../wlib/gtklib/psprint.c:968
-msgid "Printer Margin Test Page"
-msgstr "Página de teste de margem"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:1088
-#: ../wlib/gtklib/psprint.c:1088
-msgid "Enter both printer name and command"
-msgstr "Digitar nome da impressora e comando"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:1094
-#: ../wlib/gtklib/psprint.c:1094
-msgid "Can not save New Printer definition"
-msgstr "Não foi possível nova impressora definida"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:1116
-#: ../wlib/gtklib/psprint.c:1116
-msgid "Enter printer name"
-msgstr "Digitar nome da impressora"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:1122
-#: ../wlib/gtklib/psprint.c:1122
-msgid "Can not save New Margin definition"
-msgstr "Não foi possível salvar nova margem definida"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:1252
-#: ../wlib/gtklib/CVS/Base/psprint.c:1258
-#: ../wlib/gtklib/psprint.c:1252
-#: ../wlib/gtklib/psprint.c:1258
-msgid "Paper Size"
-msgstr "Tamanho do papel"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:1254
-#: ../wlib/gtklib/psprint.c:1254
-msgid "Printer"
-msgstr "Impressora"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:1268
-#: ../wlib/gtklib/psprint.c:1268
-msgid "Margin"
-msgstr "Margem"
+#: ../wlib/gtklib/filesel.c:114
+msgid "All files"
+msgstr ""
-#: ../wlib/gtklib/CVS/Base/psprint.c:1276
-#: ../wlib/gtklib/psprint.c:1276
-msgid "Format"
-msgstr "Formato"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:1278
-#: ../wlib/gtklib/psprint.c:1278
-msgid "X Font"
-msgstr "Fonte X Window"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:1279
-#: ../wlib/gtklib/psprint.c:1279
-msgid "PS Font"
-msgstr "Fonte PostScript"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:1280
-#: ../wlib/gtklib/psprint.c:1280
-msgid "Factor"
-msgstr "Fator"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:1285
-#: ../wlib/gtklib/psprint.c:1285
-msgid "Print Test Page"
-msgstr "Imprimir página de teste"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:1288
-#: ../wlib/gtklib/psprint.c:1288
-msgid "Add Printer"
-msgstr "Adicionar impressora"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:1290
-#: ../wlib/gtklib/CVS/Base/psprint.c:1298
-#: ../wlib/gtklib/psprint.c:1290
-#: ../wlib/gtklib/psprint.c:1298
-msgid "Name: "
-msgstr "Nome:"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:1293
-#: ../wlib/gtklib/psprint.c:1293
-msgid "Command: "
-msgstr "Comando:"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:1296
-#: ../wlib/gtklib/psprint.c:1296
-msgid "Add Margin"
-msgstr "Adicionar margem"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:1302
-#: ../wlib/gtklib/psprint.c:1302
-msgid "Print To File"
-msgstr "Imprimir em um arquivo"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:1304
-#: ../wlib/gtklib/psprint.c:1304
-msgid "File Name? "
-msgstr "Nome do arquivo?"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:1308
-#: ../wlib/gtklib/psprint.c:1308
-msgid "Font Alias"
-msgstr "Nome da fonte"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:1309
-#: ../wlib/gtklib/psprint.c:1309
-msgid "Enter a post-script font name for:"
-msgstr "Digitar um nome de fonte PostScript para:"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:1321
-#: ../wlib/gtklib/psprint.c:1321
-msgid "Printing"
-msgstr "Imprimindo"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:1322
-#: ../wlib/gtklib/psprint.c:1322
-msgid "Now printing"
-msgstr "Imprimindo agora"
-
-#: ../wlib/gtklib/CVS/Base/psprint.c:1324
-#: ../wlib/gtklib/psprint.c:1324
-msgid "Abort Print"
-msgstr "Abandonar impressão"
+#: ../wlib/gtklib/font.c:275
+msgid "Font Select"
+msgstr "Seleção de fonte"
+
+#: ../wlib/gtklib/help.c:68
+msgid "&Contents"
+msgstr "&Conteúdo"
+
+#: ../wlib/gtklib/ixhelp.c:243
+msgid "Home"
+msgstr "Início"
+
+#: ../wlib/gtklib/ixhelp.c:247
+#, fuzzy
+msgid "Contents"
+msgstr "&Conteúdo"
+
+#: ../wlib/gtklib/menu.c:541
+msgid "<Empty List>"
+msgstr ""
+
+#: ../wlib/gtklib/notice.c:96 ../wlib/mswlib/mswmisc.c:1972
+#: ../wlib/mswlib/mswmisc.c:2015
+msgid "Warning"
+msgstr "Aviso"
+
+#: ../wlib/gtklib/notice.c:101 ../wlib/mswlib/mswmisc.c:1977
+msgid "Error"
+msgstr "Erro"
+
+#: ../wlib/gtklib/text.c:286
+#, c-format
+msgid "%d of %d"
+msgstr ""
# Texto não está claro. Quais arquivos tenho que copiar em um dos diretórios em questão?
-#: ../wlib/gtklib/CVS/Base/wpref.c:113
-#: ../wlib/gtklib/wpref.c:113
+#: ../wlib/gtklib/wpref.c:114
#, c-format
msgid ""
-"The required configuration files could not be located in the expected location.\n"
+"The required configuration files could not be located in the expected "
+"location.\n"
"\n"
-"Usually this is an installation problem. Make sure that these files are installed in either \n"
+"Usually this is an installation problem. Make sure that these files are "
+"installed in either \n"
" %s/share/xtrkcad or\n"
" /usr/lib/%s or\n"
" /usr/local/lib/%s\n"
-"If this is not possible, the environment variable %s must contain the name of the correct directory."
+"If this is not possible, the environment variable %s must contain the name "
+"of the correct directory."
msgstr ""
"Os arquivos de configuração mínima não foram encontrados.\n"
"\n"
-"Tipicamente, isso é um problema de instalação. Por favor, tenha certeza que esses arquivos estejam instalados em \n"
+"Tipicamente, isso é um problema de instalação. Por favor, tenha certeza que "
+"esses arquivos estejam instalados em \n"
" %s/share/xtrkcad ou\n"
" /usr/lib/%s ou\n"
" /usr/local/lib/%s\n"
-"Se não for possível, a variável de ambiente \"%s\" deverá conter o nome do diretório correto."
+"Se não for possível, a variável de ambiente \"%s\" deverá conter o nome do "
+"diretório correto."
-#: ../wlib/gtklib/CVS/Base/wpref.c:147
-#: ../wlib/gtklib/CVS/Base/wpref.c:192
-#: ../wlib/gtklib/wpref.c:147
-#: ../wlib/gtklib/wpref.c:192
+#: ../wlib/gtklib/wpref.c:148 ../wlib/gtklib/wpref.c:193
msgid "HOME is not set"
msgstr "Variável HOME não está configurada"
-#: ../wlib/gtklib/CVS/Base/wpref.c:147
-#: ../wlib/gtklib/CVS/Base/wpref.c:156
-#: ../wlib/gtklib/CVS/Base/wpref.c:192
-#: ../wlib/gtklib/wpref.c:147
-#: ../wlib/gtklib/wpref.c:156
-#: ../wlib/gtklib/wpref.c:192
+#: ../wlib/gtklib/wpref.c:148 ../wlib/gtklib/wpref.c:157
+#: ../wlib/gtklib/wpref.c:193
msgid "Exit"
msgstr "Sair"
-#: ../wlib/gtklib/CVS/Base/wpref.c:155
-#: ../wlib/gtklib/wpref.c:155
+#: ../wlib/gtklib/wpref.c:156
#, c-format
msgid "Cannot create %s"
msgstr "Não foi possível criar %s"
-#: ../wlib/gtklib/gtkfont.c:222
-msgid "Font Select"
-msgstr "Seleção de fonte"
-
-#: ../wlib/gtklib/gtkhelp.c:874
-msgid "XTrackCAD Help"
-msgstr "Ajuda XTrackCAD"
-
-#: ../wlib/gtklib/gtkhelp.c:911
-msgid "Home"
-msgstr "Início"
+#: ../wlib/mswlib/mswmenu.c:884
+msgid "Ctrl+"
+msgstr ""
-#: ../wlib/gtklib/gtkhelp.c:1038
-msgid "&Contents"
-msgstr "&Conteúdo"
+#: ../wlib/mswlib/mswmenu.c:889
+msgid "Alt+"
+msgstr ""
-#: ../wlib/gtklib/gtkmisc.c:402
-#: ../wlib/mswlib/mswmisc.c:1705
-#: ../wlib/mswlib/mswmisc.c:1744
-msgid "Warning"
-msgstr "Aviso"
+#: ../wlib/mswlib/mswmenu.c:894
+msgid "Shift+"
+msgstr ""
-#: ../wlib/gtklib/gtkmisc.c:406
-#: ../wlib/mswlib/mswmisc.c:1709
-msgid "Error"
-msgstr "Erro"
+#: ../wlib/mswlib/mswmenu.c:900
+#, fuzzy
+msgid "Space"
+msgstr "Espaçamento"
-#: ../../../../xtrkcad-build/app/help/messages.h:7
+#: ../../../../build/work/app/help/messages.h:9
#, c-format
-msgid "MSG_CANT_PLACE_FROGPOINTS\tFrog|Points cannot be placed on a turnout, circle or helix.\tA %s cannot be placed on a turnout, circle or helix."
-msgstr "MSG_CANT_PLACE_FROGPOINTS\tJacaré|Pontos não podem ser posicionados em um AMV, circunferência ou hélice.\tUm %s não pode ser posicionado em um AMV, circunferência ou hélice."
+msgid ""
+"MSG_CANT_PLACE_FROGPOINTS\tFrog|Points cannot be placed on a turnout, circle "
+"or helix.\tA %s cannot be placed on a turnout, circle or helix."
+msgstr ""
+"MSG_CANT_PLACE_FROGPOINTS\tJacaré|Pontos não podem ser posicionados em um "
+"AMV, circunferência ou hélice.\tUm %s não pode ser posicionado em um AMV, "
+"circunferência ou hélice."
-#: ../../../../xtrkcad-build/app/help/messages.h:8
+#: ../../../../build/work/app/help/messages.h:10
+#, fuzzy
msgid ""
-"MSG_SEL_TRK_FROZEN\tA frozen layer contains selected...\tA frozen layer contains selected\n"
-"track. Command cannot be executed."
+"MSG_SEL_TRK_FROZEN\tA frozen layer contains selected track. Command cannot "
+"be executed."
msgstr ""
-"MSG_SEL_TRK_FROZEN\tUma camada congelada possui selecionados,..\tUma camada congelada possui trilhos selecionados\n"
+"MSG_SEL_TRK_FROZEN\tUma camada congelada possui selecionados,..\tUma camada "
+"congelada possui trilhos selecionados\n"
"selecionados. Comando não pode ser executado."
-#: ../../../../xtrkcad-build/app/help/messages.h:9
+#: ../../../../build/work/app/help/messages.h:11
msgid "MSG_HELIX_TURNS_GTR_0\tA Helix must have one or more loops of track."
msgstr "MSG_HELIX_TURNS_GTR_0\tUma hélice deve possuir um ou mais loops."
-#: ../../../../xtrkcad-build/app/help/messages.h:10
+#: ../../../../build/work/app/help/messages.h:12
msgid ""
-"MSG_LARGE_FONT\tA large font has been selected....\tA large font has been selected.\n"
+"MSG_LARGE_FONT\tA large font has been selected....\tA large font has been "
+"selected.\n"
"Large fonts may a take a while to load.\n"
"\n"
"Do you wish to continue?"
msgstr ""
-"MSG_LARGE_FONT\tUma fonte grande foi selecionada....\tUma fonte grande foi selecionada.\n"
+"MSG_LARGE_FONT\tUma fonte grande foi selecionada....\tUma fonte grande foi "
+"selecionada.\n"
"Fontes grandes podem levar algum tempo para serem carregadas.\n"
"\n"
"Continuar?"
-#: ../../../../xtrkcad-build/app/help/messages.h:11
+#: ../../../../build/work/app/help/messages.h:13
msgid ""
-"MSG_TODSGN_DESC_NONBLANK\tAll description fields present in the Turnout...\tAll description fields present in the Turnout\n"
+"MSG_TODSGN_DESC_NONBLANK\tAll description fields present in the Turnout..."
+"\tAll description fields present in the Turnout\n"
"Designer must contain appropriate information.\n"
"Correct inappropriate values and try again."
msgstr ""
-"MSG_TODSGN_DESC_NONBLANK\tTodos os campos do AMV presentes...\tTodos os campos do AMV presentes\n"
+"MSG_TODSGN_DESC_NONBLANK\tTodos os campos do AMV presentes...\tTodos os "
+"campos do AMV presentes\n"
"Editor deve conter a informação apropriada.\n"
"Corrigir valores inapropriados e tentar novamente"
-#: ../../../../xtrkcad-build/app/help/messages.h:12
+#: ../../../../build/work/app/help/messages.h:14
msgid ""
-"MSG_GROUP_NONBLANK\tAll fields listed in the Group dialog must contain data....\tAll fields listed in the Group dialog must contain data.\n"
+"MSG_GROUP_NONBLANK\tAll fields listed in the Group dialog must contain "
+"data....\tAll fields listed in the Group dialog must contain data.\n"
"Please enter missing values and try again."
msgstr ""
-"MSG_GROUP_NONBLANK\tTodos os campos listados na caixa de diálogo de grupo devem conter dados....\tTodos os campos listados na caixa de diálogo de grupo devem conter dados.\n"
+"MSG_GROUP_NONBLANK\tTodos os campos listados na caixa de diálogo de grupo "
+"devem conter dados....\tTodos os campos listados na caixa de diálogo de "
+"grupo devem conter dados.\n"
"Por favor, digitar os valores restantes e tentar novamente."
-#: ../../../../xtrkcad-build/app/help/messages.h:13
+#: ../../../../build/work/app/help/messages.h:15
msgid ""
-"MSG_TODSGN_VALUES_GTR_0\tAll values specified in the Turnout Designer must be...\tAll values specified in the Turnout Designer must be\n"
+"MSG_TODSGN_VALUES_GTR_0\tAll values specified in the Turnout Designer must "
+"be...\tAll values specified in the Turnout Designer must be\n"
"greater than 0. Correct inappropriate values and try again."
msgstr ""
-"MSG_TODSGN_VALUES_GTR_0\tTodos os valores especificados no editor de AMV devem ser...\tTodos os valores especificados no editor de AMV devem ser\n"
+"MSG_TODSGN_VALUES_GTR_0\tTodos os valores especificados no editor de AMV "
+"devem ser...\tTodos os valores especificados no editor de AMV devem ser\n"
"maiores que zero. Corrigir os valores inapropriados e tentar novamente."
-#: ../../../../xtrkcad-build/app/help/messages.h:14
-msgid "MSG_CURVE_OUT_OF_RANGE\tAngle must be between 0° and 360°."
+#: ../../../../build/work/app/help/messages.h:16
+#, fuzzy
+msgid "MSG_CURVE_OUT_OF_RANGE\tAngle must be between 0\\u00B0 and 360\\u00B0."
msgstr "MSG_CURVE_OUT_OF_RANGE\tÂngulo deve estar entre 0° e 360°."
-#: ../../../../xtrkcad-build/app/help/messages.h:15
+#: ../../../../build/work/app/help/messages.h:17
#, c-format
msgid ""
-"MSG_CUSTMGM_DELETE_CONFIRM\tAre you sure you want to delete the NNN definition(s)?\tAre you sure you want to delete the\n"
+"MSG_CUSTMGM_DELETE_CONFIRM\tAre you sure you want to delete the NNN "
+"definition(s)?\tAre you sure you want to delete the\n"
"%d definition(s)?"
msgstr ""
-"MSG_CUSTMGM_DELETE_CONFIRM\tVocê tem certeza que deseja eliminar as NNN definição(ões)?\tVocê tem certeza que deseja eliminar as\n"
+"MSG_CUSTMGM_DELETE_CONFIRM\tVocê tem certeza que deseja eliminar as NNN "
+"definição(ões)?\tVocê tem certeza que deseja eliminar as\n"
"%d definition(ões)?"
-#: ../../../../xtrkcad-build/app/help/messages.h:16
+#: ../../../../build/work/app/help/messages.h:18
msgid "MSG_WBITMAP_FAILED\tBitmap create or write function failed."
msgstr "MSG_WBITMAP_FAILED\tCriação do bitmap ou falha na função de escrita."
-#: ../../../../xtrkcad-build/app/help/messages.h:17
+#: ../../../../build/work/app/help/messages.h:19
msgid "MSG_BITMAP_TOO_LARGE\tBitmap is too large."
msgstr "MSG_BITMAP_TOO_LARGE\tBitmap muito grande."
-#: ../../../../xtrkcad-build/app/help/messages.h:18
+#: ../../../../build/work/app/help/messages.h:20
msgid "MSG_CHANGE_ELEV_MODE\tCannot change elevation mode."
msgstr "MSG_CHANGE_ELEV_MODE\tNão é possível alterar modo de inclinação."
-#: ../../../../xtrkcad-build/app/help/messages.h:19
-msgid "MSG_GRID_ENABLE_SPACE_GTR_0\tCannot Enable Grid; spacing must be greater than 0"
-msgstr "MSG_GRID_ENABLE_SPACE_GTR_0\tNão é possível habilitar grade; espaçamento deve ser maior que zero"
+#: ../../../../build/work/app/help/messages.h:21
+msgid ""
+"MSG_GRID_ENABLE_SPACE_GTR_0\tCannot Enable Grid; spacing must be greater "
+"than 0"
+msgstr ""
+"MSG_GRID_ENABLE_SPACE_GTR_0\tNão é possível habilitar grade; espaçamento "
+"deve ser maior que zero"
-#: ../../../../xtrkcad-build/app/help/messages.h:20
+#: ../../../../build/work/app/help/messages.h:22
msgid "MSG_LAYER_FREEZE\tCannot freeze current layer"
msgstr "MSG_LAYER_FREEZE\tNão é possível congelar camada corrente"
-#: ../../../../xtrkcad-build/app/help/messages.h:21
-msgid "MSG_CANT_GROUP_BUMPER1\tCannot Group Bumper Track. The track has been unselected."
-msgstr "MSG_CANT_GROUP_BUMPER1\tNão é possível agrupar trilho com pára-choque. O trilho foi deselecionado."
+#: ../../../../build/work/app/help/messages.h:23
+msgid ""
+"MSG_CANT_GROUP_BUMPER1\tCannot Group Bumper Track. The track has been "
+"unselected."
+msgstr ""
+"MSG_CANT_GROUP_BUMPER1\tNão é possível agrupar trilho com pára-choque. O "
+"trilho foi deselecionado."
-#: ../../../../xtrkcad-build/app/help/messages.h:22
+#: ../../../../build/work/app/help/messages.h:24
msgid "MSG_CANNOT_GROUP_TRACK\tCannot Group selected track."
msgstr "MSG_CANNOT_GROUP_TRACK\tNão é possível agrupar trilhos selecionados."
-#: ../../../../xtrkcad-build/app/help/messages.h:23
+#: ../../../../build/work/app/help/messages.h:25
msgid "MSG_LAYER_HIDE\tCannot hide current layer"
msgstr "MSG_LAYER_HIDE\tImpossível esconder camada corrente"
-#: ../../../../xtrkcad-build/app/help/messages.h:24
+#: ../../../../build/work/app/help/messages.h:26
msgid "MSG_JOIN_EASEMENTS\tCannot Join; Easements do not align or abut."
-msgstr "MSG_JOIN_EASEMENTS\tImpossível juntar; Curvas de transição não estão alinhadas e nem estão próximas."
+msgstr ""
+"MSG_JOIN_EASEMENTS\tImpossível juntar; Curvas de transição não estão "
+"alinhadas e nem estão próximas."
-#: ../../../../xtrkcad-build/app/help/messages.h:25
+#: ../../../../build/work/app/help/messages.h:27
#, c-format
-msgid "MSG_TRK_ALREADY_CONN\tFirst|Second track is already connected.\tCannot Join; %s track is already connected."
-msgstr "MSG_TRK_ALREADY_CONN\tPrimeiro|Segundo trilho já estão conectados.\tNão é possível juntar; Trilho %s já está conectado."
+msgid ""
+"MSG_TRK_ALREADY_CONN\tFirst|Second track is already connected.\tCannot Join; "
+"%s track is already connected."
+msgstr ""
+"MSG_TRK_ALREADY_CONN\tPrimeiro|Segundo trilho já estão conectados.\tNão é "
+"possível juntar; Trilho %s já está conectado."
-#: ../../../../xtrkcad-build/app/help/messages.h:26
+#: ../../../../build/work/app/help/messages.h:28
msgid "MSG_JOIN_TURNTABLE\tCannot join from a turntable, try to a turntable"
-msgstr "MSG_JOIN_TURNTABLE\tNão é possível juntar a partir de um virador de locomotivas, tentar no outro sentido"
+msgstr ""
+"MSG_JOIN_TURNTABLE\tNão é possível juntar a partir de um virador de "
+"locomotivas, tentar no outro sentido"
+
+#: ../../../../build/work/app/help/messages.h:29
+#, fuzzy
+msgid "MSG_JOIN_CORNU_SAME\tCannot Join; Selected endpoints are on same track."
+msgstr ""
+"MSG_JOIN_SAME\tNão é possível juntar; Extremidades selecionadas estão na "
+"mesma linha."
-#: ../../../../xtrkcad-build/app/help/messages.h:27
+#: ../../../../build/work/app/help/messages.h:30
msgid "MSG_JOIN_SAME\tCannot Join; Selected endpoints are on same track."
-msgstr "MSG_JOIN_SAME\tNão é possível juntar; Extremidades selecionadas estão na mesma linha."
+msgstr ""
+"MSG_JOIN_SAME\tNão é possível juntar; Extremidades selecionadas estão na "
+"mesma linha."
-#: ../../../../xtrkcad-build/app/help/messages.h:28
-msgid "MSG_SELECTED_TRACKS_PARALLEL\tCannot Join; Selected tracks are parallel."
-msgstr "MSG_SELECTED_TRACKS_PARALLEL\tNão é possível juntar; Trilhos selecionados estão paralelos."
+#: ../../../../build/work/app/help/messages.h:31
+msgid ""
+"MSG_SELECTED_TRACKS_PARALLEL\tCannot Join; Selected tracks are parallel."
+msgstr ""
+"MSG_SELECTED_TRACKS_PARALLEL\tNão é possível juntar; Trilhos selecionados "
+"estão paralelos."
-#: ../../../../xtrkcad-build/app/help/messages.h:29
+#: ../../../../build/work/app/help/messages.h:32
#, c-format
-msgid "MSG_PRMFIL_OPEN_NEW\tCannot open New Parameter File: FILENAME\tCannot open New Parameter File: %s"
-msgstr "MSG_PRMFIL_OPEN_NEW\tNão é possível abrir novo arquivo de parâmetros: FILENAME\tNão é possível abrir novo arquivo de parâmetros: %s"
+msgid ""
+"MSG_PRMFIL_OPEN_NEW\tCannot open New Parameter File: FILENAME\tCannot open "
+"New Parameter File: %s"
+msgstr ""
+"MSG_PRMFIL_OPEN_NEW\tNão é possível abrir novo arquivo de parâmetros: "
+"FILENAME\tNão é possível abrir novo arquivo de parâmetros: %s"
-#: ../../../../xtrkcad-build/app/help/messages.h:30
+#: ../../../../build/work/app/help/messages.h:33
msgid "MSG_LAYER_SEL_FROZEN\tCannot select a frozen layer"
msgstr "MSG_LAYER_SEL_FROZEN\tNão é possível selecionar uma camada congelada"
-#: ../../../../xtrkcad-build/app/help/messages.h:31
-msgid "MSG_GRID_SHOW_SPACE_GTR_0\tCannot Show Grid; spacing must be greater than 0"
-msgstr "MSG_GRID_SHOW_SPACE_GTR_0\tNão é possível exibir grade; Espaçamento deve ser maior que zero"
+#: ../../../../build/work/app/help/messages.h:34
+msgid ""
+"MSG_GRID_SHOW_SPACE_GTR_0\tCannot Show Grid; spacing must be greater than 0"
+msgstr ""
+"MSG_GRID_SHOW_SPACE_GTR_0\tNão é possível exibir grade; Espaçamento deve ser "
+"maior que zero"
-#: ../../../../xtrkcad-build/app/help/messages.h:32
+#: ../../../../build/work/app/help/messages.h:35
#, c-format
msgid "MSG_CANT_SPLIT_TRK\tCannot split TYPE track\tCannot split %s track"
-msgstr "MSG_CANT_SPLIT_TRK\tNão é possível seccionar trilho do tipo TYPE\tNão é possível seccionar trilho do tipo %s"
+msgstr ""
+"MSG_CANT_SPLIT_TRK\tNão é possível seccionar trilho do tipo TYPE\tNão é "
+"possível seccionar trilho do tipo %s"
-#: ../../../../xtrkcad-build/app/help/messages.h:33
+#: ../../../../build/work/app/help/messages.h:36
#, c-format
-msgid "MSG_CUSTMGM_CANT_WRITE\tCannot write to parameter file: FILENAME\tCannot write to parameter file: %s"
-msgstr "MSG_CUSTMGM_CANT_WRITE\tNão é possível escrever no arquivo: FILENAME\tNão é possível escrever no arquivo: %s"
+msgid ""
+"MSG_CUSTMGM_CANT_WRITE\tCannot write to parameter file: FILENAME\tCannot "
+"write to parameter file: %s"
+msgstr ""
+"MSG_CUSTMGM_CANT_WRITE\tNão é possível escrever no arquivo: FILENAME\tNão é "
+"possível escrever no arquivo: %s"
-#: ../../../../xtrkcad-build/app/help/messages.h:34
+#: ../../../../build/work/app/help/messages.h:37
msgid "MSG_CARIMP_DUP_INDEX\tCar Index number duplicated."
msgstr "MSG_CARIMP_DUP_INDEX\tÍndice do material rodante duplicado."
-#: ../../../../xtrkcad-build/app/help/messages.h:35
-msgid "MSG_CONN_PARAMS_TOO_SMALL\tConnection parameters reset to minimum values."
-msgstr "MSG_CONN_PARAMS_TOO_SMALL\tParâmetros de conexão restaurados aos valores mínimos."
+#: ../../../../build/work/app/help/messages.h:38
+msgid ""
+"MSG_CONN_PARAMS_TOO_SMALL\tConnection parameters reset to minimum values."
+msgstr ""
+"MSG_CONN_PARAMS_TOO_SMALL\tParâmetros de conexão restaurados aos valores "
+"mínimos."
-#: ../../../../xtrkcad-build/app/help/messages.h:36
+#: ../../../../build/work/app/help/messages.h:39
msgid "MSG_CANT_PASTE\tCopy/Paste buffer is empty. There is nothing to Paste."
-msgstr "MSG_CANT_PASTE\tEspaço para copiar/colar está vazio. Não há nada a colar."
+msgstr ""
+"MSG_CANT_PASTE\tEspaço para copiar/colar está vazio. Não há nada a colar."
-#: ../../../../xtrkcad-build/app/help/messages.h:37
+#: ../../../../build/work/app/help/messages.h:40
msgid ""
-"MSG_TODSGN_CROSSOVER_TOO_SHORT\tCrossover length is too short. Correct...\tCrossover length is too short. Correct\n"
+"MSG_TODSGN_CROSSOVER_TOO_SHORT\tCrossover length is too short. Correct..."
+"\tCrossover length is too short. Correct\n"
"inappropriate value(s) and try again."
msgstr ""
-"MSG_TODSGN_CROSSOVER_TOO_SHORT\tComprimento do sobrecruzamento é muito pequeno. Corrigir...\tComprimento do sobrecruzamento é muito pequeno. Corrigir\n"
+"MSG_TODSGN_CROSSOVER_TOO_SHORT\tComprimento do sobrecruzamento é muito "
+"pequeno. Corrigir...\tComprimento do sobrecruzamento é muito pequeno. "
+"Corrigir\n"
"valores inapropriados e tentar novamente."
-#: ../../../../xtrkcad-build/app/help/messages.h:38
+#: ../../../../build/work/app/help/messages.h:41
msgid "MSG_CURVE_TOO_LARGE\tCurved track is too large."
msgstr "MSG_CURVE_TOO_LARGE\tTrecho curvo muito aberto."
-#: ../../../../xtrkcad-build/app/help/messages.h:39
+#: ../../../../build/work/app/help/messages.h:42
msgid ""
-"MSG_TODSGN_REPLACE\tDefinition name is already in use. Saving this...\tDefinition name is already in use. Saving this\n"
+"MSG_TODSGN_REPLACE\tDefinition name is already in use. Saving this..."
+"\tDefinition name is already in use. Saving this\n"
"definition replaces the existing definition.\n"
"\n"
"Do you want to continue?"
msgstr ""
-"MSG_TODSGN_REPLACE\tNome da definição já utilizado. Salvar esta...\tNome da definição já utilizado. Salvar esta\n"
+"MSG_TODSGN_REPLACE\tNome da definição já utilizado. Salvar esta...\tNome da "
+"definição já utilizado. Salvar esta\n"
"definição substitui a existente.\n"
"\n"
"Você deseja continuar?"
-#: ../../../../xtrkcad-build/app/help/messages.h:40
+#: ../../../../build/work/app/help/messages.h:43
msgid "MSG_SAVE_CHANGES\tDo you want to save the changes made to your Layout?"
-msgstr "MSG_SAVE_CHANGES\tVocê deseja salvar as alterações feitas no seu layout?"
+msgstr ""
+"MSG_SAVE_CHANGES\tVocê deseja salvar as alterações feitas no seu layout?"
-#: ../../../../xtrkcad-build/app/help/messages.h:41
-msgid "MSG_CARIMP_DUP_COLUMNS\tDuplicate column headers found in Car Import file."
-msgstr "MSG_CARIMP_DUP_COLUMNS\tNomes de colunas duplicados encontrados no material rodante importado."
+#: ../../../../build/work/app/help/messages.h:44
+msgid ""
+"MSG_CARIMP_DUP_COLUMNS\tDuplicate column headers found in Car Import file."
+msgstr ""
+"MSG_CARIMP_DUP_COLUMNS\tNomes de colunas duplicados encontrados no material "
+"rodante importado."
-#: ../../../../xtrkcad-build/app/help/messages.h:42
+#: ../../../../build/work/app/help/messages.h:45
msgid "MSG_EP_ON_PATH\tEndpoint already on Path."
msgstr "MSG_EP_ON_PATH\tExtremidade ainda no caminho."
-#: ../../../../xtrkcad-build/app/help/messages.h:43
+#: ../../../../build/work/app/help/messages.h:46
#, c-format
msgid ""
-"MSG_UPGRADE_VERSION1\tFile version %ld is greater than supported...\tFile version %ld is greater than supported\n"
+"MSG_UPGRADE_VERSION1\tFile version %ld is greater than supported...\tFile "
+"version %ld is greater than supported\n"
"version %d. You need to upgrade %s\n"
"to at least version %s."
msgstr ""
-"MSG_UPGRADE_VERSION1\tVersão do arquivo %ld é maior que a versão...\tVersão do arquivo %ld é maior que a versão\n"
+"MSG_UPGRADE_VERSION1\tVersão do arquivo %ld é maior que a versão...\tVersão "
+"do arquivo %ld é maior que a versão\n"
"suportada %d. Você precisa atualizar a %s\n"
"para a versão %s pelo menos."
-#: ../../../../xtrkcad-build/app/help/messages.h:44
+#: ../../../../build/work/app/help/messages.h:47
#, c-format
msgid ""
-"MSG_UPGRADE_VERSION2\tFile version %ld is greater than supported...\tFile version %ld is greater than supported\n"
+"MSG_UPGRADE_VERSION2\tFile version %ld is greater than supported...\tFile "
+"version %ld is greater than supported\n"
"version %d. You need to upgrade your\n"
"version of %s"
msgstr ""
-"MSG_UPGRADE_VERSION2\tVersão %ld do arquivo é maior que a versão...\tVersão %ld do arquivo é maior que a versão\n"
+"MSG_UPGRADE_VERSION2\tVersão %ld do arquivo é maior que a versão...\tVersão "
+"%ld do arquivo é maior que a versão\n"
"suportada %d. Você precisa atualizar sua versão\n"
"de %s"
-#: ../../../../xtrkcad-build/app/help/messages.h:45
+#: ../../../../build/work/app/help/messages.h:48
+#, fuzzy
msgid ""
-"MSG_MOVE_POINTS_OTHER_SIDE\tFrog angle prevents placement of points....\tFrog angle prevents placement of points.\n"
-"Move points to opposite side of frog."
+"MSG_MOVE_POINTS_OTHER_SIDE\tFrog angle prevents placement of points. Move "
+"points to opposite side of frog."
msgstr ""
-"MSG_MOVE_POINTS_OTHER_SIDE\tÂngulo do jacaré impede posicionamento dos pontos....\tÂngulo do jacaré impede posicionamento dos pontos.\n"
+"MSG_MOVE_POINTS_OTHER_SIDE\tÂngulo do jacaré impede posicionamento dos "
+"pontos....\tÂngulo do jacaré impede posicionamento dos pontos.\n"
"Mova os pontos para o lado oposto do jacaré."
-#: ../../../../xtrkcad-build/app/help/messages.h:46
+#: ../../../../build/work/app/help/messages.h:49
msgid "MSG_NO_ROOM_BTW_TRKS\tInsufficient space between existing stall tracks."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:47
+#: ../../../../build/work/app/help/messages.h:50
#, c-format
-msgid "MSG_JOIN_DIFFER_ELEV\tJoining tracks with differing elevations (N.NNN)\tJoining tracks with differing elevations (%0.2f)"
+msgid ""
+"MSG_JOIN_DIFFER_ELEV\tJoining tracks with differing elevations (N."
+"NNN)\tJoining tracks with differing elevations (%0.2f)"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:48
+#: ../../../../build/work/app/help/messages.h:51
msgid "MSG_DESC_NOT_VISIBLE\tLabel descriptions not visible"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:49
+#: ../../../../build/work/app/help/messages.h:52
msgid "MSG_OBJECT_TOO_SHORT\tLength of object is too short."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:50
+#: ../../../../build/work/app/help/messages.h:53
#, c-format
-msgid "MSG_PRINT_MAX_SIZE\tMaximum allowed page size is W x H\tMaximum allowed page size is %s x %s"
+msgid ""
+"MSG_PRINT_MAX_SIZE\tMaximum allowed page size is W x H\tMaximum allowed page "
+"size is %s x %s"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:51
+#: ../../../../build/work/app/help/messages.h:54
#, c-format
-msgid "MSG_PRMFIL_NO_CONTENTS\tNew Parameter File has no CONTENTS line: FILENAME.\tNew Parameter File has no CONTENTS line: %s"
+msgid ""
+"MSG_PRMFIL_NO_CONTENTS\tNew Parameter File has no CONTENTS line: FILENAME."
+"\tNew Parameter File has no CONTENTS line: %s"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:52
+#: ../../../../build/work/app/help/messages.h:55
msgid ""
-"MSG_NO_CARS\tNo Cars are defined for the current scale....\tNo Cars are defined for the current scale.\n"
+"MSG_NO_CARS\tNo Cars are defined for the current scale....\tNo Cars are "
+"defined for the current scale.\n"
"\n"
"Do you want to use the Car Inventory dialog?"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:53
+#: ../../../../build/work/app/help/messages.h:56
msgid ""
-"MSG_NO_CARPROTO\tNo Car Prototypes are defined....\tNo Car Prototypes are defined.\n"
+"MSG_NO_CARPROTO\tNo Car Prototypes are defined....\tNo Car Prototypes are "
+"defined.\n"
"Load a Prototype definition file using the\n"
"Parameter Files dialog or create a Prototype\n"
"definition using the Car Prototype dialog."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:54
+#: ../../../../build/work/app/help/messages.h:57
msgid "MSG_CARIMP_NO_DATA\tNo data present in Car Import file."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:55
+#: ../../../../build/work/app/help/messages.h:58
msgid "MSG_PRINT_NO_PAGES\tNo pages selected for printing."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:56
+#: ../../../../build/work/app/help/messages.h:59
msgid "MSG_NO_PATH_TO_EP\tNo path between Profile and selected endpoint."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:57
+#: ../../../../build/work/app/help/messages.h:60
#, c-format
-msgid "MSG_PRMFIL_NO_MAP\tNo Parameter File Map for CONTENTS\tNo Parameter File Map for %s"
+msgid ""
+"MSG_PRMFIL_NO_MAP\tNo Parameter File Map for CONTENTS\tNo Parameter File Map "
+"for %s"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:58
+#: ../../../../build/work/app/help/messages.h:61
msgid "MSG_NO_SELECTED_TRK\tNo track(s) selected!"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:59
+#: ../../../../build/work/app/help/messages.h:62
#, c-format
-msgid "MSG_NO_TURNOUTS_AVAILABLE\tNo Turnouts|Structures are available.\tNo %s are available."
+msgid ""
+"MSG_NO_TURNOUTS_AVAILABLE\tNo Turnouts|Structures are available.\tNo %s are "
+"available."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:60
+#: ../../../../build/work/app/help/messages.h:63
msgid ""
-"MSG_CARDESC_VALUE_ZERO\tNumeric values on the Car Description...\tNumeric values on the Car Description\n"
+"MSG_CARDESC_VALUE_ZERO\tNumeric values on the Car Description...\tNumeric "
+"values on the Car Description\n"
"dialog must be greater than 0."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:61
+#: ../../../../build/work/app/help/messages.h:64
msgid "MSG_MOVE_OUT_OF_BOUNDS\tObject has moved beyond room boundaries."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:62
+#: ../../../../build/work/app/help/messages.h:65
msgid "MSG_PARALLEL_SEP_GTR_0\tParallel separation must be greater than 0."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:63
+#: ../../../../build/work/app/help/messages.h:66
msgid ""
-"MSG_CARPART_DUPNAME\tPart Number for this Manufacturer already exists....\tPart Number for this Manufacturer already exists.\n"
+"MSG_CARPART_DUPNAME\tPart Number for this Manufacturer already exists...."
+"\tPart Number for this Manufacturer already exists.\n"
"\n"
"Do you want to update it?"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:64
+#: ../../../../build/work/app/help/messages.h:67
#, c-format
-msgid "MSG_PLAYBACK_LISTENTRY\tPlayback: Cannot find list entry: NAME\tPlayback: Cannot find list entry: %s"
+msgid ""
+"MSG_PLAYBACK_LISTENTRY\tPlayback: Cannot find list entry: NAME\tPlayback: "
+"Cannot find list entry: %s"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:65
+#: ../../../../build/work/app/help/messages.h:68
#, c-format
msgid ""
-"MSG_PLAYBACK_VERSION_UPGRADE\tPlayback file version %ld is...\tPlayback file version %ld is\n"
+"MSG_PLAYBACK_VERSION_UPGRADE\tPlayback file version %ld is...\tPlayback file "
+"version %ld is\n"
"greater than supported version %d\n"
"You need to upgrade your version of %s"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:66
+#: ../../../../build/work/app/help/messages.h:69
#, c-format
-msgid "MSG_DOMOUSE_BAD_OP\tPlayback: unknown action NNN\tPlayback: unknown action %d"
+msgid ""
+"MSG_DOMOUSE_BAD_OP\tPlayback: unknown action NNN\tPlayback: unknown action %d"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:67
+#: ../../../../build/work/app/help/messages.h:70
msgid "MSG_MOVE_POINTS_AWAY_CLOSE\tPoints are to close to frog; move away."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:68
+#: ../../../../build/work/app/help/messages.h:71
msgid "MSG_POLY_SHAPES_3_SIDES\tPoly shapes must have at least 3 sides."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:69
+#: ../../../../build/work/app/help/messages.h:72
msgid ""
-"MSG_CARPROTO_DUPNAME\tPrototype name already exists....\tPrototype name already exists.\n"
+"MSG_CARPROTO_DUPNAME\tPrototype name already exists....\tPrototype name "
+"already exists.\n"
"\n"
"Do you want to update it?"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:70
+#: ../../../../build/work/app/help/messages.h:73
msgid "MSG_RADIUS_GTR_0\tRadius must be greater than 0."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:71
+#: ../../../../build/work/app/help/messages.h:74
#, c-format
msgid ""
-"MSG_RESCALE_TOO_BIG\tRescaled tracks do not fit within layouts room parameters...\tRescaled tracks do not fit within layouts room parameters\n"
+"MSG_RESCALE_TOO_BIG\tRescaled tracks do not fit within layouts room "
+"parameters...\tRescaled tracks do not fit within layouts room parameters\n"
"(Height and width). The layouts room parameters should be\n"
"set to at least %s by %s."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:72
-msgid "MSG_CARIMP_MISSING_COLUMNS\tRequired column headers missing from Car Import file."
+#: ../../../../build/work/app/help/messages.h:75
+msgid ""
+"MSG_CARIMP_MISSING_COLUMNS\tRequired column headers missing from Car Import "
+"file."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:73
+#: ../../../../build/work/app/help/messages.h:76
#, c-format
-msgid "MSG_2ND_TRK_NOT_SEL_UNSEL\tSecond track must be selected|unselected\tSecond track must be %s."
+msgid ""
+"MSG_2ND_TRK_NOT_SEL_UNSEL\tSecond track must be selected|unselected\tSecond "
+"track must be %s."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:74
+#: ../../../../build/work/app/help/messages.h:77
msgid "MSG_OUT_OF_BOUNDS\tSelected page is out of bounds."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:75
+#: ../../../../build/work/app/help/messages.h:78
msgid "MSG_SEL_POS_FIRST\tSelect position prior to entering Text."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:76
+#: ../../../../build/work/app/help/messages.h:79
msgid ""
-"MSG_CARPROTO_BADSEGS\tSelected shapes must define a rectangular area ...\tSelected shapes must define a rectangular\n"
+"MSG_CARPROTO_BADSEGS\tSelected shapes must define a rectangular area ..."
+"\tSelected shapes must define a rectangular\n"
"area with length greater than height."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:77
+#: ../../../../build/work/app/help/messages.h:80
msgid ""
-"MSG_TOO_FAR_APART_DIVERGE\tSelected tracks deviate too much or...\tSelected tracks deviate too much or\n"
-"are too far apart from each other."
+"MSG_TOO_FAR_APART_DIVERGE\tSelected tracks deviate too much or are too far "
+"apart from each other."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:78
+#: ../../../../build/work/app/help/messages.h:81
msgid "MSG_COMMAND_DISABLED\tSpecified command disabled."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:79
+#: ../../../../build/work/app/help/messages.h:82
msgid "MSG_SPLIT_POS_BTW_MERGEPTS\tSplit position between Turnout Points"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:80
+#: ../../../../build/work/app/help/messages.h:83
msgid "MSG_SPLIT_PATH_NOT_UNIQUE\tSplit position not on unique path"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:81
+#: ../../../../build/work/app/help/messages.h:84
#, c-format
msgid ""
-"MSG_CARIMP_MISSING_DIMS\tThe following car has no dimensions and a...\tThe following car has no dimensions and a\n"
+"MSG_CARIMP_MISSING_DIMS\tThe following car has no dimensions and a...\tThe "
+"following car has no dimensions and a\n"
"Car Part description can not be found.\n"
"\n"
"%s\n"
@@ -5873,116 +5917,128 @@ msgid ""
"Do you wish to continue importing other Cars?"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:82
+#: ../../../../build/work/app/help/messages.h:85
#, c-format
msgid ""
-"MSG_CARIMP_MISSING_PARTNO\tThe following car has no Part Number...\tThe following car has no Part Number\n"
+"MSG_CARIMP_MISSING_PARTNO\tThe following car has no Part Number...\tThe "
+"following car has no Part Number\n"
"\n"
"%s\n"
"\n"
"Do you wish to continue importing other Cars?"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:83
+#: ../../../../build/work/app/help/messages.h:86
#, c-format
msgid ""
-"MSG_CARIMP_IGNORED_COLUMN\tThe following column in the Car Import file will be ignored:...\tThe following column in the Car Import file will be ignored:\n"
+"MSG_CARIMP_IGNORED_COLUMN\tThe following column in the Car Import file will "
+"be ignored:...\tThe following column in the Car Import file will be "
+"ignored:\n"
"\n"
"%s"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:84
+#: ../../../../build/work/app/help/messages.h:87
msgid ""
-"MSG_CANT_MOVE_UNDER_TRAIN\tThe position of a turnout or turntable cannot...\tThe position of a turnout or turntable cannot\n"
-"be changed while occupied by a train."
+"MSG_CANT_MOVE_UNDER_TRAIN\tThe position of a turnout or turntable cannot be "
+"changed while occupied by a train."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:85
+#: ../../../../build/work/app/help/messages.h:88
msgid ""
-"MSG_STRUCT_NO_STRUCTS\tThere are no structures to choose from in the structure...\tThere are no structures to choose from in the structure\n"
+"MSG_STRUCT_NO_STRUCTS\tThere are no structures to choose from in the "
+"structure...\tThere are no structures to choose from in the structure\n"
"selection list. Please check your SCALE, select the\n"
"<File|Parameter Files> menu to load a Parameter File or\n"
"create a new Structure with the Group command."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:86
+#: ../../../../build/work/app/help/messages.h:89
msgid ""
-"MSG_TURNOUT_NO_TURNOUT\tThere are no turnouts to choose from in the turnout...\tThere are no turnouts to choose from in the turnout\n"
+"MSG_TURNOUT_NO_TURNOUT\tThere are no turnouts to choose from in the "
+"turnout...\tThere are no turnouts to choose from in the turnout\n"
"selection list. Please check your SCALE, select the\n"
-"<Add|Turnout Designer> menu to enter a new turnout\n"
+"<Manage|Turnout Designer> menu to enter a new turnout\n"
"or select the <File|Parameter Files> menu to load a\n"
"Parameter File"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:87
+#: ../../../../build/work/app/help/messages.h:90
msgid "MSG_NO_UNCONN_EP\tThere are no unconnected end points for this track"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:88
+#: ../../../../build/work/app/help/messages.h:91
msgid "MSG_PULL_FEW_SECTIONS\tThere are too few sections in this loop."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:89
+#: ../../../../build/work/app/help/messages.h:92
msgid "MSG_NO_REDO\tThere is nothing to redo!"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:90
+#: ../../../../build/work/app/help/messages.h:93
msgid "MSG_NO_UNDO\tThere is nothing to undo!"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:91
+#: ../../../../build/work/app/help/messages.h:94
msgid "MSG_TOOMANYSEGSINGROUP\tToo many segments in Group."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:92
+#: ../../../../build/work/app/help/messages.h:95
msgid "MSG_CANNOT_CHANGE\tTrack cannot be changed."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:93
+#: ../../../../build/work/app/help/messages.h:96
msgid "MSG_POINT_INSIDE_TURNTABLE\tTrack endpoint is within turntable radius."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:94
-msgid "MSG_MOVE_POINTS_AWAY_NO_INTERSECTION\tTrack intersection not possible; move points away from frog."
+#: ../../../../build/work/app/help/messages.h:97
+msgid ""
+"MSG_MOVE_POINTS_AWAY_NO_INTERSECTION\tTrack intersection not possible; move "
+"points away from frog."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:95
+#: ../../../../build/work/app/help/messages.h:98
#, c-format
-msgid "MSG_TRK_TOO_SHORT\tTrack is too short by N.NNN\t%strack is too short by %0.3f"
+msgid ""
+"MSG_TRK_TOO_SHORT\tTrack is too short by N.NNN\t%strack is too short by %0.3f"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:96
+#: ../../../../build/work/app/help/messages.h:99
#, c-format
msgid ""
-"MSG_RADIUS_LSS_EASE_MIN\tTrack radius (N.NNN) is smaller than easement minimum (N.NNN).\tTrack radius (%s) is smaller than\n"
-"easement minimum (%s)."
+"MSG_RADIUS_LSS_EASE_MIN\tTrack radius (N.NNN) is smaller than easement "
+"minimum (N.NNN).\tTrack radius (%s) is smaller than easement minimum (%s)."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:97
-msgid "MSG_CANT_MODIFY_FROZEN_TRK\tTracks in a frozen layer cannot be modified."
+#: ../../../../build/work/app/help/messages.h:100
+msgid ""
+"MSG_CANT_MODIFY_FROZEN_TRK\tTracks in a frozen layer cannot be modified."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:98
+#: ../../../../build/work/app/help/messages.h:101
msgid ""
-"MSG_SEGMENTS_DIFFER\tTurnout definition contains non-track segments....\tTurnout definition contains non-track segments.\n"
+"MSG_SEGMENTS_DIFFER\tTurnout definition contains non-track segments...."
+"\tTurnout definition contains non-track segments.\n"
"\n"
"Do you want to include them in this update?"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:99
+#: ../../../../build/work/app/help/messages.h:102
msgid "MSG_TURNTABLE_DIAM_GTR_0\tTurntable diameter must greater than 0."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:100
+#: ../../../../build/work/app/help/messages.h:103
#, c-format
msgid ""
-"MSG_UNDO_ASSERT\tUndo assertion failure %s:%d...\tUndo assertion failure %s:%d\n"
+"MSG_UNDO_ASSERT\tUndo assertion failure %s:%d...\tUndo assertion failure %s:"
+"%d\n"
"Val = %ld(%lx)\n"
"%s\n"
-"Please report this error to the XTrackCAD project development team at SourceForge."
+"Please report this error to the XTrackCAD project development team at "
+"SourceForge."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:101
+#: ../../../../build/work/app/help/messages.h:104
#, c-format
msgid ""
"MSG_PROG_CORRUPTED\tCritical file damaged!...\tCritical file damaged!\n"
@@ -5992,36 +6048,37 @@ msgid ""
"Please reinstall software."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:102
+#: ../../../../build/work/app/help/messages.h:105
#, c-format
msgid "MSG_PT_IS_NOT_TRK\t[X Y] is not a track\t[%s %s] is not a track."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:103
+#: ../../../../build/work/app/help/messages.h:106
msgid ""
-"MSG_BITMAP_SIZE_WARNING\tYou have specified a large Bitmap....\tYou have specified a large Bitmap.\n"
+"MSG_BITMAP_SIZE_WARNING\tYou have specified a large Bitmap....\tYou have "
+"specified a large Bitmap.\n"
"\n"
"Are you sure you want to continue?"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:104
+#: ../../../../build/work/app/help/messages.h:107
#, c-format
msgid "Are you sure you want to delete these %d car(s)?"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:105
+#: ../../../../build/work/app/help/messages.h:108
#, c-format
msgid ""
"Cannot open %s file:\n"
"%s:%s"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:106
+#: ../../../../build/work/app/help/messages.h:109
#, c-format
msgid "Unrecognized Option: %s"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:107
+#: ../../../../build/work/app/help/messages.h:110
#, c-format
msgid ""
"End-Of-Line is unexpected in a quoted field.\n"
@@ -6030,7 +6087,7 @@ msgid ""
"Do you want to continue reading the file?"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:108
+#: ../../../../build/work/app/help/messages.h:111
#, c-format
msgid ""
"A comma was expected after this quoted field.\n"
@@ -6039,14 +6096,14 @@ msgid ""
"Do you want to continue reading the file?"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:109
+#: ../../../../build/work/app/help/messages.h:112
#, c-format
msgid ""
"Error \\\\\"%s\\\\\" occurred while writing %s.\n"
"Please check disk space and system status."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:110
+#: ../../../../build/work/app/help/messages.h:113
#, c-format
msgid ""
"At least one path for the Turnout T%d does not\n"
@@ -6054,28 +6111,28 @@ msgid ""
"The track has been unselected."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:111
+#: ../../../../build/work/app/help/messages.h:114
msgid "inv-pathEndTrk on Path."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:112
+#: ../../../../build/work/app/help/messages.h:115
msgid "inv-pathStartTrk on Path"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:113
+#: ../../../../build/work/app/help/messages.h:116
#, c-format
msgid "%s:%d- %s"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:114
+#: ../../../../build/work/app/help/messages.h:117
msgid "pathEndTrk not on Path."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:115
+#: ../../../../build/work/app/help/messages.h:118
msgid "pathStartTrk not on Path."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:116
+#: ../../../../build/work/app/help/messages.h:119
msgid ""
"The tracks cannot be connected together.\n"
"\n"
@@ -6084,7 +6141,7 @@ msgid ""
"the Preferences dialog."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:117
+#: ../../../../build/work/app/help/messages.h:120
msgid ""
"The tracks cannot be connected together.\n"
"\n"
@@ -6093,7 +6150,7 @@ msgid ""
"Angle values on the Preferences dialog"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:118
+#: ../../../../build/work/app/help/messages.h:121
msgid ""
"The tracks cannot be connected together.\n"
"\n"
@@ -6101,27 +6158,27 @@ msgid ""
"or increase the Connection Distance"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:119
+#: ../../../../build/work/app/help/messages.h:122
msgid ""
"The first track for the Align\n"
"Rotate command must be Selected."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:120
+#: ../../../../build/work/app/help/messages.h:123
msgid ""
"The second track for the Align\n"
"Rotate command must be Unselected."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:121
+#: ../../../../build/work/app/help/messages.h:124
msgid "Too many selected tracks, drawing tracks as End Point."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:122
+#: ../../../../build/work/app/help/messages.h:125
msgid "Select an endpoint between two tracks."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:123
+#: ../../../../build/work/app/help/messages.h:126
msgid ""
"According to values that have been entered the diverging\n"
"track does not connect with the tangent track. Please\n"
@@ -6130,36 +6187,36 @@ msgid ""
"by Angle Mode radio buttons."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:124
+#: ../../../../build/work/app/help/messages.h:127
msgid "Moved before the end of the turnout"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:125
+#: ../../../../build/work/app/help/messages.h:128
msgid ""
"The Coupled Length must be greater than the Car Length,\n"
"and the Coupler Length must be greater than 0."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:126
+#: ../../../../build/work/app/help/messages.h:129
msgid ""
"The Car Length value must be greater\n"
"than the Car Width value."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:127
+#: ../../../../build/work/app/help/messages.h:130
msgid ""
"The specified Index is already in use.\n"
"The Index will be updated to the next available value."
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:128
+#: ../../../../build/work/app/help/messages.h:131
msgid ""
"You have changed values for this object.\n"
"\n"
"Are you sure you want to Close?"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:129
+#: ../../../../build/work/app/help/messages.h:132
#, c-format
msgid ""
"File version %ld is lower than the minimum\n"
@@ -6167,30 +6224,30 @@ msgid ""
"layout file using an older version of %s"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:130
+#: ../../../../build/work/app/help/messages.h:133
#, c-format
msgid ""
"%s cannot read the demo file:\n"
"%s"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:131
+#: ../../../../build/work/app/help/messages.h:134
#, c-format
msgid "doDemo: bad number (%d)"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:132
+#: ../../../../build/work/app/help/messages.h:135
msgid "Playback TIMEEND without TIMESTART"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:133
+#: ../../../../build/work/app/help/messages.h:136
#, c-format
msgid ""
"Unknown playback command (%d)\n"
"%s"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:134
+#: ../../../../build/work/app/help/messages.h:137
#, c-format
msgid ""
"Playback file version %ld is lower than the\n"
@@ -6199,4047 +6256,4738 @@ msgid ""
"older version of %s"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:135
+#: ../../../../build/work/app/help/messages.h:138
#, c-format
msgid "Scale index (%d) is not valid"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:136
+#: ../../../../build/work/app/help/messages.h:139
#, c-format
msgid ""
"Scale %s is not valid\n"
"Please check your %s.xtq file"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:137
+#: ../../../../build/work/app/help/messages.h:140
msgid "Cannot extend a helix"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:138
+#: ../../../../build/work/app/help/messages.h:141
msgid "Cannot trim a helix"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:139
+#: ../../../../build/work/app/help/messages.h:142
msgid "Ignore further audit notices?"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:140
+#: ../../../../build/work/app/help/messages.h:143
#, c-format
msgid "%s"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:141
+#: ../../../../build/work/app/help/messages.h:144
msgid "Audit Abort?"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:142
+#: ../../../../build/work/app/help/messages.h:145
msgid "Write Audit File?"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:143
+#: ../../../../build/work/app/help/messages.h:146
#, c-format
msgid "checkTrackLength: Short track length = %0.3f"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:144
+#: ../../../../build/work/app/help/messages.h:147
#, c-format
msgid "checkTrackLength: unknown type: %d"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:145
+#: ../../../../build/work/app/help/messages.h:148
#, c-format
msgid "connectTracks: T%d[%d] T%d[%d] d=%0.3f a=%0.3f"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:146
+#: ../../../../build/work/app/help/messages.h:149
#, c-format
msgid "GetAngleAtPoint: bad type(%d) for T(%d)"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:147
+#: ../../../../build/work/app/help/messages.h:150
#, c-format
msgid "joinTracks: invalid track type=%d"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:148
+#: ../../../../build/work/app/help/messages.h:151
#, c-format
msgid "resolveIndex: T%d[%d]: T%d doesn\\\\'t exist"
msgstr ""
-#: ../../../../xtrkcad-build/app/help/messages.h:149
+#: ../../../../build/work/app/help/messages.h:152
msgid "Moved beyond the end of the track"
msgstr "Movido além do fim do trilho"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:10
+#: ../../../../build/work/app/bin/bllnhlp.c:10
msgid "Invokes on-line help for this dialog"
msgstr "Invoca ajuda on-line para esta caixa de diálogo"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:11
+#: ../../../../build/work/app/bin/bllnhlp.c:11
msgid "Cancels this command"
msgstr "Anula este comando"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:12
+#: ../../../../build/work/app/bin/bllnhlp.c:12
msgid "Closes the dialog"
msgstr "Fecha a caixa de diálogo"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:13
+#: ../../../../build/work/app/bin/bllnhlp.c:13
msgid "About box dialog"
msgstr "Caixa de diálogo \"Sobre\""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:14
+#: ../../../../build/work/app/bin/bllnhlp.c:14
msgid "Move Selected object to top"
msgstr "Move objeto selecionado para o topo"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:15
+#: ../../../../build/work/app/bin/bllnhlp.c:15
msgid "Raise or Lower all Selected tracks"
msgstr "Eleva ou abaixa todo trecho selecionado"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:16
+#: ../../../../build/work/app/bin/bllnhlp.c:16
msgid "Move Selected object to bottom"
msgstr "Move objeto selecionado para o fundo"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:17
+#: ../../../../build/work/app/bin/bllnhlp.c:17
+msgid "Create a section of track for automation"
+msgstr ""
+
+#: ../../../../build/work/app/bin/bllnhlp.c:18
+msgid "Edit a Block Definition "
+msgstr ""
+
+#: ../../../../build/work/app/bin/bllnhlp.c:19
msgid "Create a new Car/Loco description"
msgstr "Cria uma nova descrição do material rodante"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:18
+#: ../../../../build/work/app/bin/bllnhlp.c:20
msgid "Manage your Car and Loco Inventory"
msgstr "Gerencia seu inventário de material rodante"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:19
+#: ../../../../build/work/app/bin/bllnhlp.c:21
msgid "Create track circle from center"
msgstr "Cria trilho circular a partir do centro"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:20
+#: ../../../../build/work/app/bin/bllnhlp.c:22
msgid "Create fixed radius track circle"
msgstr "Cria trilho circular com um raio fixo"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:21
+#: ../../../../build/work/app/bin/bllnhlp.c:23
msgid "Set Circle Track creation mode"
msgstr "Configura modo de criação de trilho circular"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:22
+#: ../../../../build/work/app/bin/bllnhlp.c:24
msgid "Create track circle from tangent"
msgstr "Cria trilho circular a parti da tangente"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:23
+#: ../../../../build/work/app/bin/bllnhlp.c:25
msgid "Removes elevation from Selected tracks"
msgstr "Remove inclinação dos trechos selecionados"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:24
+#: ../../../../build/work/app/bin/bllnhlp.c:26
msgid "Command Options dialog"
msgstr "Caixa de dialogo das opções de comando"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:25
+#: ../../../../build/work/app/bin/bllnhlp.c:27
msgid "Controls colors"
msgstr "Cores dos controles"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:26
+#: ../../../../build/work/app/bin/bllnhlp.c:28
msgid "Connect two tracks"
msgstr "Conecta dois trilhos"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:27
+#: ../../../../build/work/app/bin/bllnhlp.c:29
+msgid "Create a control for layout automation"
+msgstr ""
+
+#: ../../../../build/work/app/bin/bllnhlp.c:30
+#, fuzzy
+msgid "Manage control elements"
+msgstr "Elementos de controle de layout"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:31
msgid "Copy selected objects to clipboard"
msgstr "Copia objetos selecionados para a área de transferencia"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:28
+#: ../../../../build/work/app/bin/bllnhlp.c:32
msgid "Create curved track from center"
msgstr "Cria trilho curvado a partir de um centro"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:29
+#: ../../../../build/work/app/bin/bllnhlp.c:33
msgid "Create curved track from chord"
msgstr "Cria trilho curvado a partir de uma corda"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:30
+#: ../../../../build/work/app/bin/bllnhlp.c:34
msgid "Create curved track from end-point"
msgstr "Cria trilho curvado a partir de uma extremidade"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:31
+#: ../../../../build/work/app/bin/bllnhlp.c:35
+#, fuzzy
+msgid "Create Bezier track"
+msgstr "Criar trecho em hélice"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:36
msgid "Set Curve Track creation mode"
msgstr "Configura modo de criação de curva"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:32
+#: ../../../../build/work/app/bin/bllnhlp.c:37
msgid "Create curved track from tangent"
msgstr "Cria trecho curvado a partir de um tangente"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:33
+#: ../../../../build/work/app/bin/bllnhlp.c:38
msgid "Manipulate Custom designer entries"
msgstr "Manipula entradas do editor personalizado"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:34
+#: ../../../../build/work/app/bin/bllnhlp.c:39
msgid "Moves selected objects to clipboard"
msgstr "Move objetos selecionados para a área de transferencia"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:35
+#: ../../../../build/work/app/bin/bllnhlp.c:40
msgid "Delete objects"
msgstr "Elimina objetos"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:36
+#: ../../../../build/work/app/bin/bllnhlp.c:41
msgid "Playback demos"
msgstr "Playback de demonstrações"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:37
-msgid "Describe objects"
-msgstr "Descreve objetos"
+#: ../../../../build/work/app/bin/bllnhlp.c:42
+msgid "Change Object Properties"
+msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:38
+#: ../../../../build/work/app/bin/bllnhlp.c:43
msgid "Deselect all selected objects"
msgstr "Deseleciona todos os objetos"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:39
+#: ../../../../build/work/app/bin/bllnhlp.c:44
msgid "Change Display parameters"
msgstr "Altera parâmetros das janelas"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:40
+#: ../../../../build/work/app/bin/bllnhlp.c:45
msgid "Create benchwork"
msgstr "Cria bancada"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:41
+#: ../../../../build/work/app/bin/bllnhlp.c:46
msgid "Create a box"
msgstr "Cria um retângulo"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:42
+#: ../../../../build/work/app/bin/bllnhlp.c:47
msgid "Set Circle drawing command"
msgstr "Configura comando de desenho de circunferência"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:43
+#: ../../../../build/work/app/bin/bllnhlp.c:48
msgid "Create a circle"
msgstr "Cria circunferência"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:44
+#: ../../../../build/work/app/bin/bllnhlp.c:49
msgid "Draw a circle line from center"
msgstr "Desenha uma circunferência a partir do centro"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:45
+#: ../../../../build/work/app/bin/bllnhlp.c:50
msgid "Draw a fixed radius circle line"
msgstr "Desenha uma circunferência com um raio fixo"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:46
+#: ../../../../build/work/app/bin/bllnhlp.c:51
msgid "Draw a circle line from tangent"
msgstr "Desenha uma circunferência a partir de uma tangente"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:47
+#: ../../../../build/work/app/bin/bllnhlp.c:52
msgid "Set Curve drawing command"
msgstr "Configura comando de desenho de circunferência"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:48
+#: ../../../../build/work/app/bin/bllnhlp.c:53
msgid "Create a curved line"
msgstr "Cria uma linha curva"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:49
+#: ../../../../build/work/app/bin/bllnhlp.c:54
msgid "Create a curved line from End"
msgstr "Cria uma linha curva a partir de uma extremidade"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:50
+#: ../../../../build/work/app/bin/bllnhlp.c:55
msgid "Create a curved line from center"
msgstr "Cria uma linha curva a partir de um centro"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:51
+#: ../../../../build/work/app/bin/bllnhlp.c:56
msgid "Create a curved line from chord"
msgstr "Cria uma linha curva a partir de uma corda"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:52
+#: ../../../../build/work/app/bin/bllnhlp.c:57
msgid "Create a curved line from tangent"
msgstr "Cria uma linha curva a partir de uma tangente"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:53
+#: ../../../../build/work/app/bin/bllnhlp.c:58
+#, fuzzy
+msgid "Create a Bezier line"
+msgstr "Cria uma linha curva"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:59
msgid "Create a dimension line"
msgstr "Cria uma linha de uma dimensão"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:54
+#: ../../../../build/work/app/bin/bllnhlp.c:60
msgid "Create a filled box"
msgstr "Cria um retângulo preenchido"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:55
+#: ../../../../build/work/app/bin/bllnhlp.c:61
msgid "Create a filled circle"
msgstr "Cria um círculo"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:56
+#: ../../../../build/work/app/bin/bllnhlp.c:62
msgid "Draw a filled circle from center"
msgstr "Desenha um círculo a partir de um centro"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:57
+#: ../../../../build/work/app/bin/bllnhlp.c:63
msgid "Draw a fixed radius filled circle"
msgstr "Desenha um círculo com um raio fixo"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:58
+#: ../../../../build/work/app/bin/bllnhlp.c:64
msgid "Draw a filled circle from tangent"
msgstr "Desenha um círculo a partir de uma tangente"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:59
+#: ../../../../build/work/app/bin/bllnhlp.c:65
msgid "Create a filled polygon"
msgstr "Cria um polígono preenchido"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:60
+#: ../../../../build/work/app/bin/bllnhlp.c:66
msgid "Create a polyline"
msgstr "Cria uma linha poligonal"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:61
+#: ../../../../build/work/app/bin/bllnhlp.c:67
msgid "Create a straight line"
msgstr "Cria uma linha reta"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:62
+#: ../../../../build/work/app/bin/bllnhlp.c:68
msgid "Set Line drawing command"
msgstr "Configura comando de desenho de linha"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:63
+#: ../../../../build/work/app/bin/bllnhlp.c:69
msgid "Set Shape drawing command"
msgstr "Configura comando de desenho de polígonos"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:64
+#: ../../../../build/work/app/bin/bllnhlp.c:70
msgid "Draw table edge"
msgstr "Desenha limite do tablado"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:65
+#: ../../../../build/work/app/bin/bllnhlp.c:71
msgid "Easement menu"
msgstr "Menu de curva de transição"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:67
+#: ../../../../build/work/app/bin/bllnhlp.c:73
msgid "Generate a Parts List of selected objects"
msgstr "Gera uma lista de itens dos objetos selecionados"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:68
+#: ../../../../build/work/app/bin/bllnhlp.c:74
msgid "Export a .xti file"
msgstr "Expota um arquivo XTI"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:69
+#: ../../../../build/work/app/bin/bllnhlp.c:75
msgid "Export a DXF file"
msgstr "Exporta um arquivo DXF"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:70
+#: ../../../../build/work/app/bin/bllnhlp.c:76
msgid "General note about the layout"
msgstr "Notas gerais sobre o layout"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:71
+#: ../../../../build/work/app/bin/bllnhlp.c:77
msgid "Flip selected objects"
msgstr "Vira objetos selecionados"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:72
+#: ../../../../build/work/app/bin/bllnhlp.c:78
msgid "Adjust snap grid"
msgstr "Ajusta grade"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:73
+#: ../../../../build/work/app/bin/bllnhlp.c:79
msgid "Enable snap grid"
msgstr "Habilita grade"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:74
+#: ../../../../build/work/app/bin/bllnhlp.c:80
msgid "Show snap grid"
msgstr "Mostra grade"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:75
+#: ../../../../build/work/app/bin/bllnhlp.c:81
msgid "Create a structure from a Group of objects"
msgstr "Cria uma estrutura a partir de um grupo de objetos"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:76
+#: ../../../../build/work/app/bin/bllnhlp.c:82
msgid "Create a hand-laid turnout"
msgstr "Cria um AMV personalizado"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:77
+#: ../../../../build/work/app/bin/bllnhlp.c:83
msgid "Create a track helix"
msgstr "Cria trilho em hélice"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:78
+#: ../../../../build/work/app/bin/bllnhlp.c:84
msgid "Import a .xti file"
msgstr "Importa um arquivo XTI"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:79
+#: ../../../../build/work/app/bin/bllnhlp.c:85
msgid "Join two tracks"
msgstr "Junta dois trilhos"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:80
+#: ../../../../build/work/app/bin/bllnhlp.c:86
msgid "Change Layers"
msgstr "Muda camadas"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:81
+#: ../../../../build/work/app/bin/bllnhlp.c:87
msgid "Selects the current drawing layer"
msgstr "Seleciona a camada de desenho corrente"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:82
+#: ../../../../build/work/app/bin/bllnhlp.c:88
msgid "Layout parameters"
msgstr "Parâmetros de layout"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:83
+#: ../../../../build/work/app/bin/bllnhlp.c:89
+#, fuzzy
+msgid "Show/Hide Map Window"
+msgstr "Mostrar/Ocultar camada"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:90
msgid "Modify or extend a track"
msgstr "Modifica ou estende trilho"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:84
+#: ../../../../build/work/app/bin/bllnhlp.c:91
msgid "Move selected objects"
msgstr "Move objetos selecionados"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:85
+#: ../../../../build/work/app/bin/bllnhlp.c:92
msgid "Move a label"
msgstr "Move uma etiqueta"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:86
+#: ../../../../build/work/app/bin/bllnhlp.c:93
msgid "Move selected objects to current layer"
msgstr "Move objetos selecionados para a camada corrente"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:88
+#: ../../../../build/work/app/bin/bllnhlp.c:95
msgid "Print a BitMap"
msgstr "Imprime um bitmap"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:89
+#: ../../../../build/work/app/bin/bllnhlp.c:96
msgid "Create a parallel track"
msgstr "Cria um trilho paralelo"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:90
+#: ../../../../build/work/app/bin/bllnhlp.c:97
msgid "Register"
msgstr "Registra"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:91
+#: ../../../../build/work/app/bin/bllnhlp.c:98
msgid "Copy objects from clipboard"
msgstr "Copia objetos da área de transferencia"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:92
+#: ../../../../build/work/app/bin/bllnhlp.c:99
msgid "Perferences dialog"
msgstr "Caixa de diálogo de preferências"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:93
+#: ../../../../build/work/app/bin/bllnhlp.c:100
msgid "Display prices of turnouts, sectional tracks and structures"
msgstr "Exibe preços de AMVs, trilhos e estruturas"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:94
+#: ../../../../build/work/app/bin/bllnhlp.c:101
msgid "Print the layout"
msgstr "Imprime o layout"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:95
+#: ../../../../build/work/app/bin/bllnhlp.c:102
msgid "Loads and unloads parameter files"
msgstr "Carrega e descarrega arquivo de parâmetros"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:96
+#: ../../../../build/work/app/bin/bllnhlp.c:103
msgid "Elevation Profile Command"
msgstr "Comando de perfil de inclinação"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:98
+#: ../../../../build/work/app/bin/bllnhlp.c:105
msgid "Command recorder"
msgstr "Comando de gravação"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:100
+#: ../../../../build/work/app/bin/bllnhlp.c:107
msgid "Update selected Turnout and Structure definitions"
msgstr "Atualiza AMV selecionado e definições de estruturas"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:101
+#: ../../../../build/work/app/bin/bllnhlp.c:108
msgid "Rescale selected objects"
msgstr "Reescala objetos selecionados"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:102
+#: ../../../../build/work/app/bin/bllnhlp.c:109
msgid "Rotate selected object(s)"
msgstr "Rotaciona objetos selecionados"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:103
+#: ../../../../build/work/app/bin/bllnhlp.c:110
msgid "Show a ruler"
msgstr "Exibe régua"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:104
+#: ../../../../build/work/app/bin/bllnhlp.c:111
msgid "Select objects"
msgstr "Seleciona objetos"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:105
+#: ../../../../build/work/app/bin/bllnhlp.c:112
msgid "Selects all objects on the layout"
msgstr "Seleciona todos os objetos do layout"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:106
+#: ../../../../build/work/app/bin/bllnhlp.c:113
msgid "Selects all objects in the current Layer"
msgstr "Seleciona todos os objetos da camada corrente"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:107
+#: ../../../../build/work/app/bin/bllnhlp.c:114
msgid "Invert current selection"
msgstr "Inverte seleção"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:108
+#: ../../../../build/work/app/bin/bllnhlp.c:115
msgid "Split a track"
msgstr "Secciona um trilho"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:109
+#: ../../../../build/work/app/bin/bllnhlp.c:116
msgid "Select stranded (unconnected) track pieces"
msgstr "Seleciona trecho não conectados"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:110
+#: ../../../../build/work/app/bin/bllnhlp.c:117
+msgid "Create a sensor (ie. a occupancy detector or a toggle switch)"
+msgstr ""
+
+#: ../../../../build/work/app/bin/bllnhlp.c:118
+#, fuzzy
+msgid "Create a signal for train control"
+msgstr "Cria trilho circular a parti da tangente"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:119
msgid "Choose which commands are sticky"
-msgstr "Escolhe quais comandos são \"grudendos\". Aqueles cujos botões de atalho continuarão habilitados após seu uso."
+msgstr ""
+"Escolhe quais comandos são \"grudendos\". Aqueles cujos botões de atalho "
+"continuarão habilitados após seu uso."
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:111
+#: ../../../../build/work/app/bin/bllnhlp.c:120
msgid "Create straight track"
msgstr "Cria um trilho reto"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:112
+#: ../../../../build/work/app/bin/bllnhlp.c:121
msgid "Place a structure on the layout"
msgstr "Posiciona uma estrutura no layout"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:113
+#: ../../../../build/work/app/bin/bllnhlp.c:122
+#, fuzzy
+msgid "Create a switchmotor for turnout control"
+msgstr "Cria uma nova definição de AMV"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:123
+#, fuzzy
+msgid "Edit a switchmotor definition"
+msgstr "Cria uma nova definição de AMV"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:124
msgid "Enter text on the layout"
msgstr "Entra um texto no layout"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:114
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:459
+#: ../../../../build/work/app/bin/bllnhlp.c:125
+#: ../../../../build/work/app/bin/bllnhlp.c:486
msgid "Controls the size of the entered text"
msgstr "Controla o tamanho do texto inserido"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:115
+#: ../../../../build/work/app/bin/bllnhlp.c:126
msgid "Tip of the Day window"
msgstr "Janela de dica do dia"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:116
+#: ../../../../build/work/app/bin/bllnhlp.c:127
msgid "Run Trains"
msgstr "Roda trens"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:117
+#: ../../../../build/work/app/bin/bllnhlp.c:128
msgid "Pause/Resume Trains"
msgstr "Pausa / roda trens"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:118
+#: ../../../../build/work/app/bin/bllnhlp.c:129
msgid "Place a car on the layout"
msgstr "Posiciona material rodante no layout"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:119
+#: ../../../../build/work/app/bin/bllnhlp.c:130
msgid "Exit Trains"
msgstr "Sai do modo de trem"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:120
+#: ../../../../build/work/app/bin/bllnhlp.c:131
msgid "Hide/Unhide a track"
msgstr "Oculta / exibe um trilho"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:121
+#: ../../../../build/work/app/bin/bllnhlp.c:132
msgid "Place a turnout or sectional track"
msgstr "Posiciona um AMV ou trilho"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:122
+#: ../../../../build/work/app/bin/bllnhlp.c:133
msgid "Create a new turnout definition"
msgstr "Cria uma nova definição de AMV"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:123
+#: ../../../../build/work/app/bin/bllnhlp.c:134
msgid "Place a turntable"
msgstr "Posiciona um virador de locomotivas"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:124
+#: ../../../../build/work/app/bin/bllnhlp.c:135
msgid "Updates old source files with 3 part titles"
msgstr "Atualiza arquivos antigos com três partes"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:126
+#: ../../../../build/work/app/bin/bllnhlp.c:137
msgid "Ungroup objects"
msgstr "Desagrupa objetos"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:127
+#: ../../../../build/work/app/bin/bllnhlp.c:138
msgid "Draw tracks with thin lines"
msgstr "Desenha trilhos com linhas finas"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:128
+#: ../../../../build/work/app/bin/bllnhlp.c:139
msgid "Draw tracks with medium lines"
msgstr "Desenha trilhos com linhas médias"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:129
+#: ../../../../build/work/app/bin/bllnhlp.c:140
msgid "Draw tracks with thick lines"
msgstr "Desenha trilhos com linhas grossas"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:130
+#: ../../../../build/work/app/bin/bllnhlp.c:141
msgid "Change drawing scale"
msgstr "Altera escala de desenho"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:131
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:143
+#: ../../../../build/work/app/bin/bllnhlp.c:142
+#: ../../../../build/work/app/bin/bllnhlp.c:154
msgid "Zoom in"
msgstr "Aproxima"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:132
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:144
+#: ../../../../build/work/app/bin/bllnhlp.c:143
+#: ../../../../build/work/app/bin/bllnhlp.c:155
msgid "Zoom out"
msgstr "Afasta"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:133
+#: ../../../../build/work/app/bin/bllnhlp.c:144
msgid "File Menu"
msgstr "Menu de arquivo"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:134
+#: ../../../../build/work/app/bin/bllnhlp.c:145
msgid "Save layout"
msgstr "Salva layout"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:135
+#: ../../../../build/work/app/bin/bllnhlp.c:146
msgid "Save layout under a new name "
msgstr "Salva layout com um novo nome"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:136
+#: ../../../../build/work/app/bin/bllnhlp.c:147
msgid "New layout"
msgstr "Novo layout"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:137
+#: ../../../../build/work/app/bin/bllnhlp.c:148
msgid "Generate parts list"
msgstr "Gera lista de itens"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:138
+#: ../../../../build/work/app/bin/bllnhlp.c:149
msgid "Load a layout"
msgstr "Carrega um layout"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:139
+#: ../../../../build/work/app/bin/bllnhlp.c:150
msgid "Exit the program"
msgstr "Sai do programa"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:140
+#: ../../../../build/work/app/bin/bllnhlp.c:151
msgid "Revert to last saved state of layout plan"
msgstr "Reverte para o estado do último layout salvo"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:141
+#: ../../../../build/work/app/bin/bllnhlp.c:152
msgid "Edit menu"
msgstr "Menu editar"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:142
+#: ../../../../build/work/app/bin/bllnhlp.c:153
msgid "Redraw layout"
msgstr "Redesenha layout"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:145
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:148
+#: ../../../../build/work/app/bin/bllnhlp.c:156
+#: ../../../../build/work/app/bin/bllnhlp.c:159
msgid "Tools menu"
msgstr "Menu de ferramentas"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:146
+#: ../../../../build/work/app/bin/bllnhlp.c:157
msgid "View menu"
msgstr "Menu visualizar"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:147
+#: ../../../../build/work/app/bin/bllnhlp.c:158
msgid "Toolbar configuration"
msgstr "Configuração da barra de ferramentas"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:149
+#: ../../../../build/work/app/bin/bllnhlp.c:160
msgid "Options menu"
msgstr "Menu de opções"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:150
+#: ../../../../build/work/app/bin/bllnhlp.c:161
msgid "Playback/Record commands"
msgstr "Comandos de playback e gravação"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:151
+#: ../../../../build/work/app/bin/bllnhlp.c:162
msgid "Window menu"
msgstr "Menu de janelas"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:152
+#: ../../../../build/work/app/bin/bllnhlp.c:163
msgid "Help menu"
msgstr "Menu de ajuda"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:153
+#: ../../../../build/work/app/bin/bllnhlp.c:164
msgid "Recent error messages and explanations"
msgstr "Últimas mensagens de erros e explicações"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:154
+#: ../../../../build/work/app/bin/bllnhlp.c:165
msgid "Move Hot Bar left"
msgstr "Move barra de itens à esquerda"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:155
+#: ../../../../build/work/app/bin/bllnhlp.c:166
msgid "Move Hot Bar right"
msgstr "Move barra de itens à direita"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:156
+#: ../../../../build/work/app/bin/bllnhlp.c:167
msgid "Total track count"
msgstr "Total de trilhos"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:157
+#: ../../../../build/work/app/bin/bllnhlp.c:168
msgid "X Position of cursor"
msgstr "Posição X do cursor"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:158
+#: ../../../../build/work/app/bin/bllnhlp.c:169
msgid "Y Position of cursor"
msgstr "Posição Y do cursor"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:159
+#: ../../../../build/work/app/bin/bllnhlp.c:170
msgid "Drawing scale"
msgstr "Escala de desenho"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:160
+#: ../../../../build/work/app/bin/bllnhlp.c:171
msgid "Message and status line"
msgstr "Mensagem e linha de status"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:161
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:162
+#: ../../../../build/work/app/bin/bllnhlp.c:172
+#: ../../../../build/work/app/bin/bllnhlp.c:173
msgid "Main layout canvas"
msgstr "Tela de layout principal "
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:163
+#: ../../../../build/work/app/bin/bllnhlp.c:174
msgid "Main drawing canvas"
msgstr "Tela de desenho principal"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:164
+#: ../../../../build/work/app/bin/bllnhlp.c:175
msgid "Command buttons"
msgstr "Botões dos comandos"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:165
+#: ../../../../build/work/app/bin/bllnhlp.c:176
msgid "Menus"
msgstr "Menus"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:166
+#: ../../../../build/work/app/bin/bllnhlp.c:177
msgid "Tile, Filename and Window Manager buttons"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:167
+#: ../../../../build/work/app/bin/bllnhlp.c:178
msgid "Turnout and Structure Hot Bar"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:168
+#: ../../../../build/work/app/bin/bllnhlp.c:179
msgid "Active layer list and layer buttons"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:169
+#: ../../../../build/work/app/bin/bllnhlp.c:180
msgid "Map window"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:170
+#: ../../../../build/work/app/bin/bllnhlp.c:181
msgid "This is the portion of the layout shown in the Main Window canvas"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:171
+#: ../../../../build/work/app/bin/bllnhlp.c:182
msgid "Raise or Lower all Selected Track"
msgstr "Eleva ou abaixa todos os trechos selecionados"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:172
+#: ../../../../build/work/app/bin/bllnhlp.c:183
+#, fuzzy
+msgid "Name of block"
+msgstr "Isto não é um bloco!"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:184
+msgid "Script that the block will run"
+msgstr ""
+
+#: ../../../../build/work/app/bin/bllnhlp.c:185
+msgid "List of tracks in the Block"
+msgstr ""
+
+#: ../../../../build/work/app/bin/bllnhlp.c:186
msgid "Add or Update car object"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:173
+#: ../../../../build/work/app/bin/bllnhlp.c:187
msgid "Manufacturer name"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:176
+#: ../../../../build/work/app/bin/bllnhlp.c:190
msgid "Is the Car a Locomotive?"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:177
+#: ../../../../build/work/app/bin/bllnhlp.c:191
msgid "Part Number and Description"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:178
+#: ../../../../build/work/app/bin/bllnhlp.c:192
msgid "Manufacturer Part Number"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:179
+#: ../../../../build/work/app/bin/bllnhlp.c:193
msgid "Use the Selected figure as the car image"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:180
+#: ../../../../build/work/app/bin/bllnhlp.c:194
msgid "Use the default figure as the car image"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:181
+#: ../../../../build/work/app/bin/bllnhlp.c:195
msgid "Optional description of the Car Part"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:182
+#: ../../../../build/work/app/bin/bllnhlp.c:196
msgid "Flip car image"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:183
+#: ../../../../build/work/app/bin/bllnhlp.c:197
msgid "Display Car Item information or reporting marks and dimensions"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:184
+#: ../../../../build/work/app/bin/bllnhlp.c:198
msgid "Full Roadname"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:185
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:186
+#: ../../../../build/work/app/bin/bllnhlp.c:199
+#: ../../../../build/work/app/bin/bllnhlp.c:200
msgid "Car Type"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:187
+#: ../../../../build/work/app/bin/bllnhlp.c:201
msgid "Reporting Marks (Roadname abbreviation)"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:188
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:357
+#: ../../../../build/work/app/bin/bllnhlp.c:202
+#: ../../../../build/work/app/bin/bllnhlp.c:378
msgid "Car Number"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:189
+#: ../../../../build/work/app/bin/bllnhlp.c:203
msgid "Car body Color"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:190
+#: ../../../../build/work/app/bin/bllnhlp.c:204
msgid "Length of car body"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:191
+#: ../../../../build/work/app/bin/bllnhlp.c:205
msgid "Width of car body"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:192
+#: ../../../../build/work/app/bin/bllnhlp.c:206
msgid "Distance between Trucks "
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:193
+#: ../../../../build/work/app/bin/bllnhlp.c:207
msgid "Coupler are mounted on body or truck"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:194
+#: ../../../../build/work/app/bin/bllnhlp.c:208
msgid "Overall Coupled Length"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:195
+#: ../../../../build/work/app/bin/bllnhlp.c:209
msgid "Coupler Length from end of car"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:196
+#: ../../../../build/work/app/bin/bllnhlp.c:210
msgid "Diagram of Car"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:197
+#: ../../../../build/work/app/bin/bllnhlp.c:211
msgid "Item Index Number"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:198
+#: ../../../../build/work/app/bin/bllnhlp.c:212
msgid "Original Purchase Price"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:200
+#: ../../../../build/work/app/bin/bllnhlp.c:214
msgid "Condition of car"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:201
+#: ../../../../build/work/app/bin/bllnhlp.c:215
msgid "Original Purchase Date"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:202
+#: ../../../../build/work/app/bin/bllnhlp.c:216
msgid "Last Service Date"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:203
+#: ../../../../build/work/app/bin/bllnhlp.c:217
msgid "Number of identical cars to be entered"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:204
+#: ../../../../build/work/app/bin/bllnhlp.c:218
msgid "Do all the cars have the same Number?"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:205
+#: ../../../../build/work/app/bin/bllnhlp.c:219
msgid "Notes about the car"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:206
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:207
+#: ../../../../build/work/app/bin/bllnhlp.c:220
+#: ../../../../build/work/app/bin/bllnhlp.c:221
msgid "Create a new car Part or Prototype definitions"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:208
+#: ../../../../build/work/app/bin/bllnhlp.c:222
msgid "Finds the selected Car Item on the layout"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:209
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:210
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:211
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:212
+#: ../../../../build/work/app/bin/bllnhlp.c:223
+#: ../../../../build/work/app/bin/bllnhlp.c:224
+#: ../../../../build/work/app/bin/bllnhlp.c:225
+#: ../../../../build/work/app/bin/bllnhlp.c:226
msgid "Sort the Item list"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:214
+#: ../../../../build/work/app/bin/bllnhlp.c:228
msgid "Edit the selected Car Item"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:215
+#: ../../../../build/work/app/bin/bllnhlp.c:229
msgid "Add a new Car Item"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:216
+#: ../../../../build/work/app/bin/bllnhlp.c:230
msgid "Delete the selected Car Items"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:217
+#: ../../../../build/work/app/bin/bllnhlp.c:231
msgid "Import a Car Item .csv file"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:218
+#: ../../../../build/work/app/bin/bllnhlp.c:232
msgid "Export a Car Item .csv file"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:219
+#: ../../../../build/work/app/bin/bllnhlp.c:233
msgid "Create a text list of the Car Items"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:220
+#: ../../../../build/work/app/bin/bllnhlp.c:234
msgid "Specifies the radius of the circle track"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:221
+#: ../../../../build/work/app/bin/bllnhlp.c:235
msgid "How to draw track being moved/rotated"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:222
+#: ../../../../build/work/app/bin/bllnhlp.c:236
msgid "Default command is Describe or Select"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:223
+#: ../../../../build/work/app/bin/bllnhlp.c:237
msgid "Action to invoke on Right-Click"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:225
+#: ../../../../build/work/app/bin/bllnhlp.c:239
+#, fuzzy
+msgid "The list of control elements"
+msgstr "Elementos de controle de layout"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:240
+#, fuzzy
+msgid "Edit the element"
+msgstr "Menu editar"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:241
+msgid "Delete the element"
+msgstr ""
+
+#: ../../../../build/work/app/bin/bllnhlp.c:242
msgid "Contents Label for new Parameter file"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:226
+#: ../../../../build/work/app/bin/bllnhlp.c:243
msgid "List of custom designed turnouts and structures"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:227
+#: ../../../../build/work/app/bin/bllnhlp.c:244
msgid "Invoke designer editor"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:228
+#: ../../../../build/work/app/bin/bllnhlp.c:245
msgid "Remove selected entries"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:229
+#: ../../../../build/work/app/bin/bllnhlp.c:246
msgid "Copy selected entries to Parameter File"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:230
+#: ../../../../build/work/app/bin/bllnhlp.c:247
msgid "Create a New part or prototype"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:231
+#: ../../../../build/work/app/bin/bllnhlp.c:248
msgid "Update custom file and close"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:232
+#: ../../../../build/work/app/bin/bllnhlp.c:249
msgid "Executes the next step of the demo"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:233
+#: ../../../../build/work/app/bin/bllnhlp.c:250
msgid "Skip to next demo"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:234
+#: ../../../../build/work/app/bin/bllnhlp.c:251
msgid "Stops the demonstration and returns you to XTrackCAD"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:235
+#: ../../../../build/work/app/bin/bllnhlp.c:252
msgid "Select speed of Playback"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:236
+#: ../../../../build/work/app/bin/bllnhlp.c:253
msgid "This is where comments about the demo are displayed"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:272
+#: ../../../../build/work/app/bin/bllnhlp.c:290
msgid "Move the Main canvas if you drag near the edge"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:273
+#: ../../../../build/work/app/bin/bllnhlp.c:291
msgid "Color tracks or other objects by layer"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:274
+#: ../../../../build/work/app/bin/bllnhlp.c:292
msgid "Controls the drawing of hidden tracks"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:275
+#: ../../../../build/work/app/bin/bllnhlp.c:293
msgid "Controls the drawing of End-Points"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:276
+#: ../../../../build/work/app/bin/bllnhlp.c:294
msgid "How to draw track ties"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:277
+#: ../../../../build/work/app/bin/bllnhlp.c:295
+msgid "Show crosshair at center of curves"
+msgstr ""
+
+#: ../../../../build/work/app/bin/bllnhlp.c:296
msgid "Drawing scale when to draw tracks with 2 rails"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:278
+#: ../../../../build/work/app/bin/bllnhlp.c:297
msgid "Drawing scale of the map window"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:279
+#: ../../../../build/work/app/bin/bllnhlp.c:298
msgid "Whether the main layout is updated while dragging on the Map"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:280
+#: ../../../../build/work/app/bin/bllnhlp.c:299
msgid "Enable labels for Turnouts, Flextrack Lengths and Elevations"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:281
+#: ../../../../build/work/app/bin/bllnhlp.c:300
msgid "When to label Turnout, Flextrack Lengths and Elevations"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:282
+#: ../../../../build/work/app/bin/bllnhlp.c:301
msgid "Font size for labels on layout"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:283
+#: ../../../../build/work/app/bin/bllnhlp.c:302
msgid "Label elements on the Hot Bar"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:284
+#: ../../../../build/work/app/bin/bllnhlp.c:303
msgid "Label elements on layout"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:285
+#: ../../../../build/work/app/bin/bllnhlp.c:304
msgid "Label elements for lists"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:286
+#: ../../../../build/work/app/bin/bllnhlp.c:305
msgid "How to group cars on the Train Hot Bar"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:287
+#: ../../../../build/work/app/bin/bllnhlp.c:306
msgid "Delay (in mS) between updating train movements"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:288
+#: ../../../../build/work/app/bin/bllnhlp.c:307
msgid "Don't show trains in tunnels when tunnels are hidden"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:290
+#: ../../../../build/work/app/bin/bllnhlp.c:308
+msgid "Display unconnected endpoints of track with sepecial marks"
+msgstr ""
+
+#: ../../../../build/work/app/bin/bllnhlp.c:309
+msgid "Whether zoom is locked to the bottom left corner or the center point"
+msgstr ""
+
+#: ../../../../build/work/app/bin/bllnhlp.c:311
msgid "Width of the lines"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:291
+#: ../../../../build/work/app/bin/bllnhlp.c:312
msgid "Color of the lines"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:292
+#: ../../../../build/work/app/bin/bllnhlp.c:313
msgid "List of types of Lumber"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:293
+#: ../../../../build/work/app/bin/bllnhlp.c:314
msgid "Color of Benchwork"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:294
+#: ../../../../build/work/app/bin/bllnhlp.c:315
msgid "Orientation of Benchwork"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:295
+#: ../../../../build/work/app/bin/bllnhlp.c:316
msgid "Size of Dimension Arrows"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:296
+#: ../../../../build/work/app/bin/bllnhlp.c:317
msgid "This controls the sharpness of the easement curve"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:297
+#: ../../../../build/work/app/bin/bllnhlp.c:318
msgid "Minimum radius"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:298
+#: ../../../../build/work/app/bin/bllnhlp.c:319
msgid "Maximum offset"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:299
+#: ../../../../build/work/app/bin/bllnhlp.c:320
msgid "Easement length"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:300
-msgid "These radio buttons are a short-cut for Values of 0.0, 0.5, 1.0 and 2.0. None turns Easements off"
+#: ../../../../build/work/app/bin/bllnhlp.c:321
+msgid ""
+"These radio buttons are a short-cut for Values of 0.0, 0.5, 1.0 and 2.0. "
+"None turns Easements off"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:301
+#: ../../../../build/work/app/bin/bllnhlp.c:322
msgid "Complete easement selection"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:302
+#: ../../../../build/work/app/bin/bllnhlp.c:323
msgid "Type of elevation"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:303
+#: ../../../../build/work/app/bin/bllnhlp.c:324
msgid "Height of End Point"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:304
+#: ../../../../build/work/app/bin/bllnhlp.c:325
msgid "Compute elevation based on neighbors"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:305
+#: ../../../../build/work/app/bin/bllnhlp.c:326
msgid "Compute grade based on neighbors"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:306
+#: ../../../../build/work/app/bin/bllnhlp.c:327
msgid "Specify a name for an End-Point"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:308
+#: ../../../../build/work/app/bin/bllnhlp.c:329
msgid "Print parts list"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:309
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:408
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:503
+#: ../../../../build/work/app/bin/bllnhlp.c:330
+#: ../../../../build/work/app/bin/bllnhlp.c:430
+#: ../../../../build/work/app/bin/bllnhlp.c:530
msgid "Invoke the Print Setup dialog"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:310
+#: ../../../../build/work/app/bin/bllnhlp.c:331
msgid "Save parts list to file"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:311
+#: ../../../../build/work/app/bin/bllnhlp.c:332
msgid "This is the list of parts for the layout"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:312
+#: ../../../../build/work/app/bin/bllnhlp.c:333
msgid "Enable prices on the Parts List"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:313
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:316
+#: ../../../../build/work/app/bin/bllnhlp.c:334
+#: ../../../../build/work/app/bin/bllnhlp.c:337
msgid "Spacing between major grid lines"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:314
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:317
+#: ../../../../build/work/app/bin/bllnhlp.c:335
+#: ../../../../build/work/app/bin/bllnhlp.c:338
msgid "Allows the spacing to be subdivided"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:315
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:318
+#: ../../../../build/work/app/bin/bllnhlp.c:336
+#: ../../../../build/work/app/bin/bllnhlp.c:339
msgid "Specifies if positions are snaped in this direction"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:319
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:320
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:321
+#: ../../../../build/work/app/bin/bllnhlp.c:340
+#: ../../../../build/work/app/bin/bllnhlp.c:341
+#: ../../../../build/work/app/bin/bllnhlp.c:342
msgid "Shows the origin and angle of the grid"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:322
+#: ../../../../build/work/app/bin/bllnhlp.c:343
msgid "Specifies if the grid is shown"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:323
+#: ../../../../build/work/app/bin/bllnhlp.c:344
msgid "Completes the grid specification"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:327
+#: ../../../../build/work/app/bin/bllnhlp.c:348
msgid "Number of segments in Group"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:328
+#: ../../../../build/work/app/bin/bllnhlp.c:349
msgid "Replace the Selected object with the new definition?"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:329
+#: ../../../../build/work/app/bin/bllnhlp.c:350
msgid "Creates a new Structure (or Turnout)"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:330
+#: ../../../../build/work/app/bin/bllnhlp.c:351
msgid "Elevation difference of Helix End-Points"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:331
+#: ../../../../build/work/app/bin/bllnhlp.c:352
msgid "Helix Radius"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:332
+#: ../../../../build/work/app/bin/bllnhlp.c:353
msgid "Number of turns in the helix"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:333
+#: ../../../../build/work/app/bin/bllnhlp.c:354
msgid "Angle betweek helix entrance and exit"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:334
+#: ../../../../build/work/app/bin/bllnhlp.c:355
msgid "Grade in helix"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:335
+#: ../../../../build/work/app/bin/bllnhlp.c:356
msgid "Separation between helix layers"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:336
+#: ../../../../build/work/app/bin/bllnhlp.c:357
msgid "Layer list"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:337
+#: ../../../../build/work/app/bin/bllnhlp.c:358
msgid "Layer Name"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:338
+#: ../../../../build/work/app/bin/bllnhlp.c:359
msgid "Color of layer"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:339
+#: ../../../../build/work/app/bin/bllnhlp.c:360
msgid "Layer is drawn on Main window"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:340
+#: ../../../../build/work/app/bin/bllnhlp.c:361
msgid "Layer cannot be changed"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:341
+#: ../../../../build/work/app/bin/bllnhlp.c:362
msgid "Layer is drawn on Map window"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:342
+#: ../../../../build/work/app/bin/bllnhlp.c:363
msgid "Number of layer buttons to show"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:343
+#: ../../../../build/work/app/bin/bllnhlp.c:364
msgid "Number of objects in this layer"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:345
+#: ../../../../build/work/app/bin/bllnhlp.c:366
msgid "Load layer configuration from default"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:346
+#: ../../../../build/work/app/bin/bllnhlp.c:367
msgid "Save current layer configuration as default"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:347
+#: ../../../../build/work/app/bin/bllnhlp.c:368
msgid "Overwrite layer configuration with system default values"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:348
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:349
+#: ../../../../build/work/app/bin/bllnhlp.c:369
+#: ../../../../build/work/app/bin/bllnhlp.c:370
msgid "Specifies the size of the room (in inches or centimeters)"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:350
+#: ../../../../build/work/app/bin/bllnhlp.c:371
msgid "Specifies the layout Title that will appear on printouts"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:351
+#: ../../../../build/work/app/bin/bllnhlp.c:372
msgid "Specifies the layout Subtitle that will appear on printouts"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:352
+#: ../../../../build/work/app/bin/bllnhlp.c:373
msgid "Specifies the Modelling Scale"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:353
+#: ../../../../build/work/app/bin/bllnhlp.c:374
msgid "Specifies the rail gauge, ie. the distance between the rails"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:354
-msgid "Specifies minimum track radius (in inches or centimeters). Tracks with a smaller radius are considered exceptional."
-msgstr "Especifica raio mínimo (em centímetros ou em polegadas). Trechos com raios menores serão considerados excepcionais."
+#: ../../../../build/work/app/bin/bllnhlp.c:375
+msgid ""
+"Specifies minimum track radius (in inches or centimeters). Tracks with a "
+"smaller radius are considered exceptional."
+msgstr ""
+"Especifica raio mínimo (em centímetros ou em polegadas). Trechos com raios "
+"menores serão considerados excepcionais."
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:355
-msgid "Specifies maximum track elevation expressed as a percent (%). Tracks with a larger elevation are considered exceptional."
-msgstr "Especifica inclinação máxima (em porcentagem). Trechos com inclinações maiores serão considerados excepcionais."
+#: ../../../../build/work/app/bin/bllnhlp.c:376
+msgid ""
+"Specifies maximum track elevation expressed as a percent (%). Tracks with a "
+"larger elevation are considered exceptional."
+msgstr ""
+"Especifica inclinação máxima (em porcentagem). Trechos com inclinações "
+"maiores serão considerados excepcionais."
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:358
-msgid "This is the body of the Note. To change this select Modify from the File Menu"
+#: ../../../../build/work/app/bin/bllnhlp.c:379
+msgid ""
+"This is the body of the Note. To change this select Modify from the File "
+"Menu"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:360
+#: ../../../../build/work/app/bin/bllnhlp.c:381
msgid "Specifies number of pixels per inch (or centimeter)"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:362
-msgid "Specifies whether Layout Titles, Borders or Track Centerlines are printed on the BitMap"
+#: ../../../../build/work/app/bin/bllnhlp.c:383
+msgid ""
+"Specifies whether Layout Titles, Borders or Track Centerlines are printed on "
+"the BitMap"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:363
+#: ../../../../build/work/app/bin/bllnhlp.c:384
msgid "Specifies the separation between parallel tracks"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:364
+#: ../../../../build/work/app/bin/bllnhlp.c:385
msgid "Enter your name as specified in the XTrackCAD Registration Notice"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:365
+#: ../../../../build/work/app/bin/bllnhlp.c:386
msgid "Enter the key value as specified in the XTrackCAD Registration Notice"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:366
+#: ../../../../build/work/app/bin/bllnhlp.c:387
msgid "Validates the name and key. Terminates the registration command"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:367
-msgid "0° is up or to the right"
+#: ../../../../build/work/app/bin/bllnhlp.c:388
+msgid "0ᅵ is up or to the right"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:368
+#: ../../../../build/work/app/bin/bllnhlp.c:389
msgid "Choose english (inches) or metric (centimeters)"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:369
+#: ../../../../build/work/app/bin/bllnhlp.c:390
msgid "How to display length measurements"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:370
+#: ../../../../build/work/app/bin/bllnhlp.c:391
msgid "Do not create tracks to be shorter than this value"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:371
+#: ../../../../build/work/app/bin/bllnhlp.c:392
msgid "Maximum distance between connected end points"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:372
+#: ../../../../build/work/app/bin/bllnhlp.c:393
msgid "Minimum angle between connected End-Points"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:373
+#: ../../../../build/work/app/bin/bllnhlp.c:394
msgid "Specifies the minimum angle between tracks connected to a turntable"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:374
+#: ../../../../build/work/app/bin/bllnhlp.c:395
msgid "Trains will crash above this speed"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:375
+#: ../../../../build/work/app/bin/bllnhlp.c:396
msgid "Enable/Disable balloon popup help windows"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:376
+#: ../../../../build/work/app/bin/bllnhlp.c:397
msgid "How far you can move the mouse before its considered a drag"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:377
+#: ../../../../build/work/app/bin/bllnhlp.c:398
msgid "How long you can hold a mouse button down before its considered a drag"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:378
+#: ../../../../build/work/app/bin/bllnhlp.c:399
msgid "Minimum distance (in pixels) between grid lines/ticks"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:379
-msgid "Specifies the Check Point frequency; number of modifications made since the last save."
-msgstr "Especifica a freqüência de salvamento automático. Isto é, o número de modificações desde a última gravação."
+#: ../../../../build/work/app/bin/bllnhlp.c:400
+msgid ""
+"Specifies the Check Point frequency; number of modifications made since the "
+"last save."
+msgstr ""
+"Especifica a freqüência de salvamento automático. Isto é, o número de "
+"modificações desde a última gravação."
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:380
+#: ../../../../build/work/app/bin/bllnhlp.c:401
msgid "Resume work on last layout or start with new layout"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:382
+#: ../../../../build/work/app/bin/bllnhlp.c:403
msgid "Updated cost of current selected item"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:384
+#: ../../../../build/work/app/bin/bllnhlp.c:405
msgid "Selection list for prices"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:385
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:386
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:387
+#: ../../../../build/work/app/bin/bllnhlp.c:406
+#: ../../../../build/work/app/bin/bllnhlp.c:407
+#: ../../../../build/work/app/bin/bllnhlp.c:408
msgid "Price of specified length of flex-track"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:389
+#: ../../../../build/work/app/bin/bllnhlp.c:410
+#, fuzzy
+msgid "Controls the printing of a centerline of track cmdPrint"
+msgstr "Controla o tamanho do texto inserido"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:411
msgid "Controls the reduction (scale) of the printout"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:390
+#: ../../../../build/work/app/bin/bllnhlp.c:412
msgid "Scaled page width (Scale times physical page width)"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:391
+#: ../../../../build/work/app/bin/bllnhlp.c:413
msgid "Sets page size to the maximum (based on scale and physical page size)"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:392
+#: ../../../../build/work/app/bin/bllnhlp.c:414
msgid "Scaled page height (Scale times physical page height)"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:393
+#: ../../../../build/work/app/bin/bllnhlp.c:415
msgid "Sets scale, origin and angle for a one page printout of the layout"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:394
+#: ../../../../build/work/app/bin/bllnhlp.c:416
msgid "Print page in Portrait or Landscape format"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:395
+#: ../../../../build/work/app/bin/bllnhlp.c:417
msgid "Order of printing pages"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:396
+#: ../../../../build/work/app/bin/bllnhlp.c:418
msgid "Print Title, Date, Author and other information at bottom of page?"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:397
+#: ../../../../build/work/app/bin/bllnhlp.c:419
msgid "Ignore unprintable page margins?"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:398
+#: ../../../../build/work/app/bin/bllnhlp.c:420
msgid "Print Registration Marks at 1:1?"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:399
+#: ../../../../build/work/app/bin/bllnhlp.c:421
msgid "Print Snap Grid?"
msgstr "Linha e divisão da grade"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:400
+#: ../../../../build/work/app/bin/bllnhlp.c:422
msgid "Print Rulers on all page edges?"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:401
+#: ../../../../build/work/app/bin/bllnhlp.c:423
msgid "Print Roadbed Outline?"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:403
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:404
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:406
-msgid "Origin of the print grid. This is useful if you want to reprint a set of pages"
+#: ../../../../build/work/app/bin/bllnhlp.c:425
+#: ../../../../build/work/app/bin/bllnhlp.c:426
+#: ../../../../build/work/app/bin/bllnhlp.c:428
+msgid ""
+"Origin of the print grid. This is useful if you want to reprint a set of "
+"pages"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:405
+#: ../../../../build/work/app/bin/bllnhlp.c:427
msgid "Resets the origin and angle to 0"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:407
+#: ../../../../build/work/app/bin/bllnhlp.c:429
msgid "Deselects all pages"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:409
+#: ../../../../build/work/app/bin/bllnhlp.c:431
msgid "Print selected pages and terminates the print command"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:410
+#: ../../../../build/work/app/bin/bllnhlp.c:432
msgid "List of loaded and unloaded parameter files"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:411
+#: ../../../../build/work/app/bin/bllnhlp.c:433
msgid "Show parameter files by names or descriptions"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:412
+#: ../../../../build/work/app/bin/bllnhlp.c:434
msgid "Toggle the loaded status of the selected parameter file"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:413
+#: ../../../../build/work/app/bin/bllnhlp.c:435
msgid "Find a parameter file for loading"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:414
+#: ../../../../build/work/app/bin/bllnhlp.c:436
msgid "Update parameter file list"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:415
+#: ../../../../build/work/app/bin/bllnhlp.c:437
+#, fuzzy
+msgid "Select all parameter files shown"
+msgstr "Lendo arquivos de parâmetros"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:438
msgid "Profile of specified path"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:416
+#: ../../../../build/work/app/bin/bllnhlp.c:439
msgid "Clear the profile"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:417
+#: ../../../../build/work/app/bin/bllnhlp.c:440
msgid "Print the profile"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:419
+#: ../../../../build/work/app/bin/bllnhlp.c:442
msgid "Stop recording"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:420
+#: ../../../../build/work/app/bin/bllnhlp.c:443
msgid "Insert a message"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:421
+#: ../../../../build/work/app/bin/bllnhlp.c:444
msgid "End a message"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:422
+#: ../../../../build/work/app/bin/bllnhlp.c:445
msgid "Message body"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:423
+#: ../../../../build/work/app/bin/bllnhlp.c:446
msgid "Possible turnouts"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:424
+#: ../../../../build/work/app/bin/bllnhlp.c:447
msgid "Skip this turnout"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:426
+#: ../../../../build/work/app/bin/bllnhlp.c:449
msgid "Manufacturer of Object"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:427
+#: ../../../../build/work/app/bin/bllnhlp.c:450
msgid "Description of Object"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:428
+#: ../../../../build/work/app/bin/bllnhlp.c:451
msgid "Part Nuber of Object"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:430
+#: ../../../../build/work/app/bin/bllnhlp.c:453
msgid "Rescale by Scale Conversion or by Ratio"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:431
+#: ../../../../build/work/app/bin/bllnhlp.c:454
msgid "Original Scale of the selected objects"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:432
+#: ../../../../build/work/app/bin/bllnhlp.c:455
msgid "Original Gauge of the selected objects"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:433
+#: ../../../../build/work/app/bin/bllnhlp.c:456
msgid "New Scale of the selected objects"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:434
+#: ../../../../build/work/app/bin/bllnhlp.c:457
msgid "New Gauge of the selected objects"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:435
+#: ../../../../build/work/app/bin/bllnhlp.c:458
msgid "Change track dimensions to new scale"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:436
+#: ../../../../build/work/app/bin/bllnhlp.c:459
msgid "Change size by this amount"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:438
+#: ../../../../build/work/app/bin/bllnhlp.c:461
msgid "Snap Grid Line and Division"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:439
+#: ../../../../build/work/app/bin/bllnhlp.c:462
msgid "X and Y position markers"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:440
+#: ../../../../build/work/app/bin/bllnhlp.c:463
msgid "Border rulers, room boundaries and table edges"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:441
+#: ../../../../build/work/app/bin/bllnhlp.c:464
msgid "Primary Axis of grid rotation"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:442
+#: ../../../../build/work/app/bin/bllnhlp.c:465
msgid "Secondary Axis of grid rotation"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:443
+#: ../../../../build/work/app/bin/bllnhlp.c:466
msgid "Unselected tracks"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:444
+#: ../../../../build/work/app/bin/bllnhlp.c:467
msgid "Selected tracks"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:445
+#: ../../../../build/work/app/bin/bllnhlp.c:468
msgid "Color of tracks on the Profile path"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:446
+#: ../../../../build/work/app/bin/bllnhlp.c:469
msgid "Color of Exceptional tracks"
msgstr "Cor dos trechos excepcionais"
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:447
+#: ../../../../build/work/app/bin/bllnhlp.c:470
msgid "Color of track ties"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:448
+#: ../../../../build/work/app/bin/bllnhlp.c:471
msgid "Updates the colors"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:449
+#: ../../../../build/work/app/bin/bllnhlp.c:472
msgid "Angle in degrees"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:450
+#: ../../../../build/work/app/bin/bllnhlp.c:473
msgid "Rotate object(s) by specified amount"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:451
+#: ../../../../build/work/app/bin/bllnhlp.c:474
msgid "Choose commands to be sticky"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:452
+#: ../../../../build/work/app/bin/bllnhlp.c:475
msgid "Make the commands sticky"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:453
+#: ../../../../build/work/app/bin/bllnhlp.c:476
msgid "List of available structure"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:454
+#: ../../../../build/work/app/bin/bllnhlp.c:477
msgid "Diagram of the selected structure"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:455
+#: ../../../../build/work/app/bin/bllnhlp.c:478
msgid "Hide Selection window when placing Structure"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:456
+#: ../../../../build/work/app/bin/bllnhlp.c:479
msgid "Drawing scale and size"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:457
+#: ../../../../build/work/app/bin/bllnhlp.c:480
msgid "Complete structure placement"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:458
+#: ../../../../build/work/app/bin/bllnhlp.c:481
msgid "Choose a Pier number"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:460
+#: ../../../../build/work/app/bin/bllnhlp.c:482
+#, fuzzy
+msgid "Name of the Motor"
+msgstr "Alterar motor de AMV"
+
+#: ../../../../build/work/app/bin/bllnhlp.c:483
+msgid "Value when switch is normal"
+msgstr ""
+
+#: ../../../../build/work/app/bin/bllnhlp.c:484
+msgid "Value when the switch is reversed"
+msgstr ""
+
+#: ../../../../build/work/app/bin/bllnhlp.c:485
+msgid "Value for a positive comfirmation of switch position"
+msgstr ""
+
+#: ../../../../build/work/app/bin/bllnhlp.c:487
msgid "Useful information about the program"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:461
+#: ../../../../build/work/app/bin/bllnhlp.c:488
msgid "Show Tip of the Day every time the program starts"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:462
+#: ../../../../build/work/app/bin/bllnhlp.c:489
msgid "Show the next Tip of the Day"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:463
+#: ../../../../build/work/app/bin/bllnhlp.c:490
msgid "Show the previous Tip of the Day"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:465
+#: ../../../../build/work/app/bin/bllnhlp.c:492
msgid "Controls which Command Buttons are displayed"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:466
+#: ../../../../build/work/app/bin/bllnhlp.c:493
msgid "List of Cars"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:467
+#: ../../../../build/work/app/bin/bllnhlp.c:494
msgid "List of active trains"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:469
+#: ../../../../build/work/app/bin/bllnhlp.c:496
msgid "Train odometer"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:470
+#: ../../../../build/work/app/bin/bllnhlp.c:497
msgid "Reset odometer to 0"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:471
+#: ../../../../build/work/app/bin/bllnhlp.c:498
msgid "Find train on layout"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:472
+#: ../../../../build/work/app/bin/bllnhlp.c:499
msgid "Follow train around layout"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:473
+#: ../../../../build/work/app/bin/bllnhlp.c:500
msgid "Flip direction at End Of Track"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:474
+#: ../../../../build/work/app/bin/bllnhlp.c:501
msgid "Change direction of train"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:475
+#: ../../../../build/work/app/bin/bllnhlp.c:502
msgid "Stop the train"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:476
+#: ../../../../build/work/app/bin/bllnhlp.c:503
msgid "List of available turnouts for the current scale"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:477
-msgid "Diagram of the currently selected turnout. Click on a End-Point to select the Active End-Point"
+#: ../../../../build/work/app/bin/bllnhlp.c:504
+msgid ""
+"Diagram of the currently selected turnout. Click on a End-Point to select "
+"the Active End-Point"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:478
-msgid "A menu list of various type of turnouts and sectional tracks you can define"
+#: ../../../../build/work/app/bin/bllnhlp.c:505
+msgid ""
+"A menu list of various type of turnouts and sectional tracks you can define"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:479
+#: ../../../../build/work/app/bin/bllnhlp.c:506
msgid "Hide Selection window when placing Turnout"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:480
+#: ../../../../build/work/app/bin/bllnhlp.c:507
msgid "The selected Active End-Point"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:481
+#: ../../../../build/work/app/bin/bllnhlp.c:508
msgid "Current selected turnout, (displayed in the diagram window)"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:482
+#: ../../../../build/work/app/bin/bllnhlp.c:509
msgid "One the End-Points that can be selected"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:484
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:485
+#: ../../../../build/work/app/bin/bllnhlp.c:511
+#: ../../../../build/work/app/bin/bllnhlp.c:512
msgid "Angle of the specified track to the center line of the turnout"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:486
+#: ../../../../build/work/app/bin/bllnhlp.c:513
msgid "Specifies if angles are entered as Frog Numbers or in degrees"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:487
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:488
+#: ../../../../build/work/app/bin/bllnhlp.c:514
+#: ../../../../build/work/app/bin/bllnhlp.c:515
msgid "Desciption"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:489
+#: ../../../../build/work/app/bin/bllnhlp.c:516
msgid "Turnout description (Manuf., Size, Part Number, etc)"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:490
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:491
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:492
+#: ../../../../build/work/app/bin/bllnhlp.c:517
+#: ../../../../build/work/app/bin/bllnhlp.c:518
+#: ../../../../build/work/app/bin/bllnhlp.c:519
msgid "Length from the base to the end of the specified track"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:494
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:495
+#: ../../../../build/work/app/bin/bllnhlp.c:521
+#: ../../../../build/work/app/bin/bllnhlp.c:522
msgid "Offset of the track End-Point from the center line of the turnout"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:498
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:499
+#: ../../../../build/work/app/bin/bllnhlp.c:525
+#: ../../../../build/work/app/bin/bllnhlp.c:526
msgid "Prints a full size diagram of the turnout for checking"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:500
+#: ../../../../build/work/app/bin/bllnhlp.c:527
msgid "Color of Roadbed lines"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:501
+#: ../../../../build/work/app/bin/bllnhlp.c:528
msgid "Width of Roadbed lines"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:502
+#: ../../../../build/work/app/bin/bllnhlp.c:529
msgid "Width of Roadbed"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:504
+#: ../../../../build/work/app/bin/bllnhlp.c:531
msgid "Closes the window and returns to the Turnout Selection window"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:505
+#: ../../../../build/work/app/bin/bllnhlp.c:532
msgid "Specifies the diameter of the turntable"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:506
+#: ../../../../build/work/app/bin/bllnhlp.c:533
msgid "Old Turnout title"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:507
+#: ../../../../build/work/app/bin/bllnhlp.c:534
msgid "List of available titles"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:508
+#: ../../../../build/work/app/bin/bllnhlp.c:535
msgid "Leave the Turnouts' title unchanged"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:509
+#: ../../../../build/work/app/bin/bllnhlp.c:536
msgid "Invoke the Parameter Files dialog"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:510
+#: ../../../../build/work/app/bin/bllnhlp.c:537
msgid "List of available turnouts"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:511
+#: ../../../../build/work/app/bin/bllnhlp.c:538
msgid "Update the Turnouts' title"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:515
+#: ../../../../build/work/app/bin/bllnhlp.c:542
msgid "Sample"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:517
+#: ../../../../build/work/app/bin/bllnhlp.c:544
msgid "Slant"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:518
+#: ../../../../build/work/app/bin/bllnhlp.c:545
msgid "Font selection dialog"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:519
+#: ../../../../build/work/app/bin/bllnhlp.c:546
msgid "Weight"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:520
+#: ../../../../build/work/app/bin/bllnhlp.c:547
msgid "Printer Abort Window"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:521
+#: ../../../../build/work/app/bin/bllnhlp.c:548
msgid "Print to filename"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:522
+#: ../../../../build/work/app/bin/bllnhlp.c:549
msgid "Specify Postscript font alias mapping"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:523
-msgid "Displays the Print Setup window to change printers, orientation, paper size, etc."
+#: ../../../../build/work/app/bin/bllnhlp.c:550
+msgid ""
+"Displays the Print Setup window to change printers, orientation, paper size, "
+"etc."
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:524
+#: ../../../../build/work/app/bin/bllnhlp.c:551
msgid "Closes this dialog"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:525
+#: ../../../../build/work/app/bin/bllnhlp.c:552
msgid "Page orientation"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:526
+#: ../../../../build/work/app/bin/bllnhlp.c:553
msgid "Unprintable margins"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:527
+#: ../../../../build/work/app/bin/bllnhlp.c:554
msgid "Updates and closes this dialog"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:528
+#: ../../../../build/work/app/bin/bllnhlp.c:555
msgid "Choose paper size"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:529
+#: ../../../../build/work/app/bin/bllnhlp.c:556
msgid "Choose printer"
msgstr ""
-#: ../../../../xtrkcad-build/app/bin/bllnhlp.c:530
+#: ../../../../build/work/app/bin/bllnhlp.c:557
msgid "Print test page"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:7
+#: ../../../../build/work/app/i18n/custmsg.h:7
msgid "Introduction"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:8
+#: ../../../../build/work/app/i18n/custmsg.h:8
msgid "Mouse Actions"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:9
+#: ../../../../build/work/app/i18n/custmsg.h:9
msgid "Dialogs"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:10
+#: ../../../../build/work/app/i18n/custmsg.h:10
msgid "Moving about"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:11
+#: ../../../../build/work/app/i18n/custmsg.h:11
msgid "Describe and Select"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:14
+#: ../../../../build/work/app/i18n/custmsg.h:12
+#, fuzzy
+msgid "Describe"
+msgstr "Descrição"
+
+#: ../../../../build/work/app/i18n/custmsg.h:14
msgid "Simple tracks"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:15
+#: ../../../../build/work/app/i18n/custmsg.h:15
msgid "Straight tracks"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:16
+#: ../../../../build/work/app/i18n/custmsg.h:16
msgid "Curved tracks"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:17
+#: ../../../../build/work/app/i18n/custmsg.h:17
msgid "Circles"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:18
+#: ../../../../build/work/app/i18n/custmsg.h:18
msgid "Turntables"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:19
+#: ../../../../build/work/app/i18n/custmsg.h:19
msgid "Modifying tracks"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:20
+#: ../../../../build/work/app/i18n/custmsg.h:20
msgid "Modifying end points "
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:21
+#: ../../../../build/work/app/i18n/custmsg.h:21
msgid "Extending"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:22
+#: ../../../../build/work/app/i18n/custmsg.h:22
msgid "Medium and Thick Tracks"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:23
+#: ../../../../build/work/app/i18n/custmsg.h:23
msgid "Joining Tracks"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:24
+#: ../../../../build/work/app/i18n/custmsg.h:24
msgid "Straight to straight"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:25
+#: ../../../../build/work/app/i18n/custmsg.h:25
msgid "Curve to straight"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:26
+#: ../../../../build/work/app/i18n/custmsg.h:26
msgid "Circle to circle"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:27
+#: ../../../../build/work/app/i18n/custmsg.h:27
msgid "Joining to turntables"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:28
+#: ../../../../build/work/app/i18n/custmsg.h:28
msgid "Easements"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:29
+#: ../../../../build/work/app/i18n/custmsg.h:29
msgid "Abutting tracks"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:30
+#: ../../../../build/work/app/i18n/custmsg.h:30
msgid "Move to Join"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:32
+#: ../../../../build/work/app/i18n/custmsg.h:32
msgid "Select and Placement"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:33
+#: ../../../../build/work/app/i18n/custmsg.h:33
msgid "Building a yard throat."
msgstr "Construindo ramos de um pátio"
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:34
+#: ../../../../build/work/app/i18n/custmsg.h:34
msgid "Designing turnouts"
msgstr "Projetando AMVs"
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:35
+#: ../../../../build/work/app/i18n/custmsg.h:35
msgid "Group and Ungroup"
msgstr "Agrupando e desagrupando"
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:36
+#: ../../../../build/work/app/i18n/custmsg.h:36
msgid "Triming Turnout Ends"
msgstr "Cortando trechos de AMV"
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:37
+#: ../../../../build/work/app/i18n/custmsg.h:37
msgid "Handlaid Turnouts"
msgstr "AMVs personalizados"
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:38
+#: ../../../../build/work/app/i18n/custmsg.h:38
msgid "Elevations and Profile"
msgstr "Elevações e perfils"
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:39
+#: ../../../../build/work/app/i18n/custmsg.h:39
msgid "Elevations"
msgstr "Elevações"
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:41
+#: ../../../../build/work/app/i18n/custmsg.h:41
msgid "Misc track commands"
msgstr "Miscelânea de comandos de trilhos"
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:42
+#: ../../../../build/work/app/i18n/custmsg.h:42
msgid "Delete and Undo"
msgstr "Apagando e desfazendo"
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:43
+#: ../../../../build/work/app/i18n/custmsg.h:43
msgid "Splitting and Tunnels"
msgstr "Seccionando trechos e criando túneis"
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:45
+#: ../../../../build/work/app/i18n/custmsg.h:45
msgid "Helix tracks"
msgstr "Trechos em hélice"
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:46
+#: ../../../../build/work/app/i18n/custmsg.h:46
msgid "Exception Tracks"
msgstr "Trechos excepcionais"
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:48
+#: ../../../../build/work/app/i18n/custmsg.h:48
msgid "Connect and Tighten - a siding"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:49
+#: ../../../../build/work/app/i18n/custmsg.h:49
msgid "Connect and Tighten - figure-8"
msgstr "Conectando e firmando - figura-8"
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:50
+#: ../../../../build/work/app/i18n/custmsg.h:50
msgid "Other commands"
msgstr "Outros comandos"
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:52
+#: ../../../../build/work/app/i18n/custmsg.h:52
msgid "Table Edges"
msgstr "Limites do tablado"
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:54
+#: ../../../../build/work/app/i18n/custmsg.h:54
msgid "Dimension Lines"
msgstr "Linhas dimensionais"
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:55
+#: ../../../../build/work/app/i18n/custmsg.h:55
msgid "Lines"
msgstr "Linhas"
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:56
+#: ../../../../build/work/app/i18n/custmsg.h:56
msgid "Poly-Shapes"
msgstr "Formas poligonais"
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:57
+#: ../../../../build/work/app/i18n/custmsg.h:57
msgid "Modifying Poly-Shapes"
msgstr "Modificando forma poligonais"
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:60
+#: ../../../../build/work/app/i18n/custmsg.h:60
msgid "Control Panels (New)"
msgstr "Painéis de controle (Novo)"
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:62
-msgid "The unconnected End-Points of a straight or curved track can be changed with the 'Modify Track' command.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:62
+msgid ""
+"The unconnected End-Points of a straight or curved track can be changed with "
+"the 'Modify Track' command.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:63
-msgid "The End-Point of a straight track is selected and then Left-Dragged to change its length.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:63
+msgid ""
+"The End-Point of a straight track is selected and then Left-Dragged to "
+"change its length.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:64
-msgid "Watch what happens if you try to drag the selected End-Point beyond the far End-Point.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:64
+msgid ""
+"Watch what happens if you try to drag the selected End-Point beyond the far "
+"End-Point.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:65
-msgid "The length of the straight track is determined by the distance from the far End-Point and the cursor.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:65
+msgid ""
+"The length of the straight track is determined by the distance from the far "
+"End-Point and the cursor.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:66
-msgid "A curved track is selected and it's new End-Point is determined by the angle to the cursor.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:66
+msgid ""
+"A curved track is selected and it's new End-Point is determined by the angle "
+"to the cursor.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:67
+#: ../../../../build/work/app/i18n/custmsg.h:67
msgid "It's possible to almost create a complete circle.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:68
-msgid "If you drag the mouse beyond the start of the curve the track becomes very short.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:68
+msgid ""
+"If you drag the mouse beyond the start of the curve the track becomes very "
+"short.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:69
+#: ../../../../build/work/app/i18n/custmsg.h:69
msgid "Here you are warned that the track will be too short.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:70
-msgid "If you move the cursor away from the curve, you will create a straight track tangent to the curve.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:70
+msgid ""
+"If you move the cursor away from the curve, you will create a straight track "
+"tangent to the curve.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:71
-msgid "If you adjust the End-Point of a turnout or sectional track the track is extended by a straight track segment.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:71
+msgid ""
+"If you adjust the End-Point of a turnout or sectional track the track is "
+"extended by a straight track segment.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:72
-msgid "You can change the radius of a Straight or Curved track that is connected at one End-Point by holding down the Shift key while dragging on it.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:72
+msgid ""
+"You can change the radius of a Straight or Curved track that is connected at "
+"one End-Point by holding down the Shift key while dragging on it.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:73
-msgid "This lets you change a Straight track into a Curved track (and vice versa) as well as changing the radius of a Curved track.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:73
+msgid ""
+"This lets you change a Straight track into a Curved track (and vice versa) "
+"as well as changing the radius of a Curved track.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:74
+#: ../../../../build/work/app/i18n/custmsg.h:74
msgid "You can draw a variety of different types of benchwork:\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:75
+#: ../../../../build/work/app/i18n/custmsg.h:75
msgid "- rectangular (1x2, 2x4 etc)\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:76
+#: ../../../../build/work/app/i18n/custmsg.h:76
msgid "- L girders\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:77
+#: ../../../../build/work/app/i18n/custmsg.h:77
msgid "- T girders\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:78
+#: ../../../../build/work/app/i18n/custmsg.h:78
msgid "You can also draw them in different orientations.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:79
+#: ../../../../build/work/app/i18n/custmsg.h:79
msgid "We will draw two 3x6 inch L-girders.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:80
-msgid "The flange of the top L-Girders is on the outside edge of the girders. We want to change the girder so both flanges are on the inside.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:80
+msgid ""
+"The flange of the top L-Girders is on the outside edge of the girders. We "
+"want to change the girder so both flanges are on the inside.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:81
+#: ../../../../build/work/app/i18n/custmsg.h:81
msgid "We will use the <Describe> command for this.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:82
+#: ../../../../build/work/app/i18n/custmsg.h:82
msgid "Change the Orientation to Right.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:83
+#: ../../../../build/work/app/i18n/custmsg.h:83
msgid "Now both flanges are on the inside of the two girders.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:84
-msgid "Pushing the <Describe> button will cancel any other command in progress.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:84
+msgid ""
+"Pushing the <Describe> button will cancel any other command in progress.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:85
-msgid "Here we will begin to create a Curved track which is a two step process.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:85
+msgid ""
+"Here we will begin to create a Curved track which is a two step process.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:86
-msgid "When we clicked on the <Describe> button, the current command was cancelled.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:86
+msgid ""
+"When we clicked on the <Describe> button, the current command was "
+"cancelled.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:87
-msgid "When in <Describe> mode, selecting any object will print a description in the Status Bar and display a Dialog showing properties of the clicked-on object.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:87
+msgid ""
+"When in <Describe> mode, selecting any object will print a description in "
+"the Status Bar and display a Dialog showing properties of the clicked-on "
+"object.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:88
-msgid "Certain parameters of the object can be changed. In this case we'll change the Length\n"
+#: ../../../../build/work/app/i18n/custmsg.h:88
+msgid ""
+"Certain parameters of the object can be changed. In this case we'll change "
+"the Length\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:89
+#: ../../../../build/work/app/i18n/custmsg.h:89
msgid "Let's look at the Turnout...\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:90
+#: ../../../../build/work/app/i18n/custmsg.h:90
msgid "and change the turnout Title.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:91
+#: ../../../../build/work/app/i18n/custmsg.h:91
msgid "You can change the contents of Text...\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:92
+#: ../../../../build/work/app/i18n/custmsg.h:92
msgid "and its size.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:93
-msgid "If you select a Note, the Description dialog appears which displays the contents of the note.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:93
+msgid ""
+"If you select a Note, the Description dialog appears which displays the "
+"contents of the note.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:94
-msgid "Like the <Curve> track command, there are several ways to create a Circle track.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:94
+msgid ""
+"Like the <Curve> track command, there are several ways to create a Circle "
+"track.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:95
-msgid "The first is to specify a fixed radius and simply drag the Circle into position.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:95
+msgid ""
+"The first is to specify a fixed radius and simply drag the Circle into "
+"position.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:96
+#: ../../../../build/work/app/i18n/custmsg.h:96
msgid "We will change the Radius before proceeding.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:97
+#: ../../../../build/work/app/i18n/custmsg.h:97
msgid "The next method is to drag from the edge of the Circle to the center.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:98
-msgid "The last is similar, but you drag from the center of the Circle to the edge.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:98
+msgid ""
+"The last is similar, but you drag from the center of the Circle to the "
+"edge.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:99
-msgid "We have built a siding using Sectional track and have 2 End-Points that don't line up and are not connected automatically when placing the sectional track.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:99
+msgid ""
+"We have built a siding using Sectional track and have 2 End-Points that "
+"don't line up and are not connected automatically when placing the sectional "
+"track.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:100
-msgid "We use the <Connect> command to adjust neighboring tracks so the gap is closed.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:100
+msgid ""
+"We use the <Connect> command to adjust neighboring tracks so the gap is "
+"closed.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:101
-msgid "Note: the adjustments are only done on tracks which have only 1 or 2 connections. In this example the Turnouts would not be affected.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:101
+msgid ""
+"Note: the adjustments are only done on tracks which have only 1 or 2 "
+"connections. In this example the Turnouts would not be affected.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:102
+#: ../../../../build/work/app/i18n/custmsg.h:102
msgid "And now the gap is closed.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:103
+#: ../../../../build/work/app/i18n/custmsg.h:103
msgid "Other tracks have been shifted slightly to close the gap.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:104
+#: ../../../../build/work/app/i18n/custmsg.h:104
msgid "You can see these slight mis-alignments.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:105
+#: ../../../../build/work/app/i18n/custmsg.h:105
msgid "But they will have no effect when the layout is actually built.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:106
-msgid "After working with Sectional track you might get to point where these mis-alignments have accumulated and you wish to remove them.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:106
+msgid ""
+"After working with Sectional track you might get to point where these mis-"
+"alignments have accumulated and you wish to remove them.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:107
-msgid "You can remove these slight mis-alignments by tightening the tracks starting from a unconnected End-Point. Use Shift-Left-Click with the <Connect> command.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:107
+msgid ""
+"You can remove these slight mis-alignments by tightening the tracks starting "
+"from a unconnected End-Point. Use Shift-Left-Click with the <Connect> "
+"command.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:108
+#: ../../../../build/work/app/i18n/custmsg.h:108
msgid "First use the <Split> command to disconnect the tracks.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:109
-msgid "Then with the <Connect> command, Shift-Left-Click on the 2 End-Points.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:109
+msgid ""
+"Then with the <Connect> command, Shift-Left-Click on the 2 End-Points.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:110
+#: ../../../../build/work/app/i18n/custmsg.h:110
msgid "In example shows a simple figure-8 layout using Sectional track.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:111
-msgid "You will notice that the tracks do not line up exactly in one location.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:111
+msgid ""
+"You will notice that the tracks do not line up exactly in one location.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:112
-msgid "We can use the <Connect> command to move the connecting tracks slightly and connect the 2 End-Points.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:112
+msgid ""
+"We can use the <Connect> command to move the connecting tracks slightly and "
+"connect the 2 End-Points.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:113
+#: ../../../../build/work/app/i18n/custmsg.h:113
msgid "The two End-Points are now aligned and connected.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:114
+#: ../../../../build/work/app/i18n/custmsg.h:114
msgid "The connection was made by adding small gaps in other tracks.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:115
+#: ../../../../build/work/app/i18n/custmsg.h:115
msgid "There are several ways to create a Curved track.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:116
-msgid "You can choose which to use by clicking on the small button to the left of <Curve> command button if the current Curve command is not the one you want.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:116
+msgid ""
+"You can choose which to use by clicking on the small button to the left of "
+"<Curve> command button if the current Curve command is not the one you "
+"want.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:117
-msgid "The first is by clicking on the first End-Point and dragging in the direction of the Curve.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:117
+msgid ""
+"The first is by clicking on the first End-Point and dragging in the "
+"direction of the Curve.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:118
-msgid "You will see a straight track with a double ended Red arrow at the end.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:118
+msgid ""
+"You will see a straight track with a double ended Red arrow at the end.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:119
+#: ../../../../build/work/app/i18n/custmsg.h:119
msgid "Click and drag on one of the Red arrows to complete the Curve.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:120
-msgid "The next method is to click at one End-Point and drag to the center of the Curve.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:120
+msgid ""
+"The next method is to click at one End-Point and drag to the center of the "
+"Curve.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:121
-msgid "Now you will see the double ended Red arrow connected to the center of the Curve marked by a small circle.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:121
+msgid ""
+"Now you will see the double ended Red arrow connected to the center of the "
+"Curve marked by a small circle.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:122
+#: ../../../../build/work/app/i18n/custmsg.h:122
msgid "As before, drag on one of the Red arrows to complete the Curve.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:123
-msgid "The next method is similar to the last except that you drag first from the center of the Curve to one End-Point.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:123
+msgid ""
+"The next method is similar to the last except that you drag first from the "
+"center of the Curve to one End-Point.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:124
+#: ../../../../build/work/app/i18n/custmsg.h:124
msgid "Once again, drag on a Red arrow to complete the Curve.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:125
-msgid "The last method begins by drawing a line between the two End-Points of the Curve. This forms the Chord of the Curve.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:125
+msgid ""
+"The last method begins by drawing a line between the two End-Points of the "
+"Curve. This forms the Chord of the Curve.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:126
+#: ../../../../build/work/app/i18n/custmsg.h:126
msgid "Now drag on a Red arrow to complete the Curve.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:127
+#: ../../../../build/work/app/i18n/custmsg.h:127
msgid "This demo will construct a control panel for part of a bigger layout.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:128
+#: ../../../../build/work/app/i18n/custmsg.h:128
msgid "For our control panel we will use Œ\" lines. \n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:129
+#: ../../../../build/work/app/i18n/custmsg.h:129
msgid "Also, we will use a 1/8\" grid to lay out our controls.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:130
-msgid "First, we will set up the Snap Grid for 1\" grid lines and 8 divisions.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:130
+msgid ""
+"First, we will set up the Snap Grid for 1\" grid lines and 8 divisions.\n"
msgstr "Primeiramente, ajustaremos a grade para linhas de 1″ e 8 divisões.\n"
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:131
+#: ../../../../build/work/app/i18n/custmsg.h:131
msgid "Now, clear the layout and turn on the Snap Grid.\n"
msgstr "Agora, limparemos o layout e ligaremos a grade.\n"
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:132
+#: ../../../../build/work/app/i18n/custmsg.h:132
msgid "First step: draw the lines representing the tracks.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:133
+#: ../../../../build/work/app/i18n/custmsg.h:133
msgid "We specify the line width in pixels.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:134
-msgid "To create a Œ\" line, divide the dots-per-inch (DPI) of your display by 4 and then by the drawing scale (which is 2 right now).\n"
+#: ../../../../build/work/app/i18n/custmsg.h:134
+msgid ""
+"To create a Œ\" line, divide the dots-per-inch (DPI) of your display by 4 "
+"and then by the drawing scale (which is 2 right now).\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:135
-msgid "For MS-Windows the DPI is usually 98, so choose: 98/4/2 = 12 (approximately).\n"
+#: ../../../../build/work/app/i18n/custmsg.h:135
+msgid ""
+"For MS-Windows the DPI is usually 98, so choose: 98/4/2 = 12 "
+"(approximately).\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:136
+#: ../../../../build/work/app/i18n/custmsg.h:136
msgid "For Linux, the DPI is usually 72, so choose: 72/4/2 = 9.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:137
-msgid "Notice how the Snap Grid keeps the main line and siding track parallel and the connecting tracks and spur at a 45° angle.\n"
-msgstr "Note como a grade mantém a linha principal e lateral paralelas e as linhas de conexão e incita a um ângulo de 45°.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:137
+msgid ""
+"Notice how the Snap Grid keeps the main line and siding track parallel and "
+"the connecting tracks and spur at a 45° angle.\n"
+msgstr ""
+"Note como a grade mantém a linha principal e lateral paralelas e as linhas "
+"de conexão e incita a um ângulo de 45°.\n"
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:138
+#: ../../../../build/work/app/i18n/custmsg.h:138
msgid "Second step: add LEDs for the turnout position indicators.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:139
+#: ../../../../build/work/app/i18n/custmsg.h:139
msgid "We will use T1 red and green LEDs.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:140
+#: ../../../../build/work/app/i18n/custmsg.h:140
msgid "We will zoom in to show positioning.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:141
-msgid "Notice that when we are in the correct position (on the 1/8\" grid), the Marker lines on the bottom and left rulers will high-light the tick marks. When both ticks are high-lighted, press the space bar to finalize the LED.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:141
+msgid ""
+"Notice that when we are in the correct position (on the 1/8\" grid), the "
+"Marker lines on the bottom and left rulers will high-light the tick marks. "
+"When both ticks are high-lighted, press the space bar to finalize the LED.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:142
+#: ../../../../build/work/app/i18n/custmsg.h:142
msgid "Now we'll add push buttons to control the turnouts.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:143
+#: ../../../../build/work/app/i18n/custmsg.h:143
msgid "Let's add signals to our siding.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:144
-msgid "The entrance to the siding will be protected by double headed signals.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:144
+msgid ""
+"The entrance to the siding will be protected by double headed signals.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:145
+#: ../../../../build/work/app/i18n/custmsg.h:145
msgid "First turn off the Snap Grid.\n"
msgstr "Primeiramente, desligamos a grade.\n"
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:146
+#: ../../../../build/work/app/i18n/custmsg.h:146
msgid "Rotate the signals and move them to the proper locations.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:147
-msgid "We rotate the signals by Shift-Right-Click and select 90° CW on the popup menu. We can not show the popup menu in demo mode, but will simulate the effect.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:147
+msgid ""
+"We rotate the signals by Shift-Right-Click and select 90° CW on the popup "
+"menu. We can not show the popup menu in demo mode, but will simulate the "
+"effect.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:148
+#: ../../../../build/work/app/i18n/custmsg.h:148
msgid "The exits from the siding will be protected by single headed signals.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:149
+#: ../../../../build/work/app/i18n/custmsg.h:149
msgid "Now for some touch-ups.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:150
+#: ../../../../build/work/app/i18n/custmsg.h:150
msgid "Notice when the line meet at an angle there is a gap.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:151
+#: ../../../../build/work/app/i18n/custmsg.h:151
msgid "We will fill this gap with the Œ\" dot.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:152
-msgid "Note: Win95/Win98/WinME does not support drawing lines with flat end-caps, but only with round end-caps.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:152
+msgid ""
+"Note: Win95/Win98/WinME does not support drawing lines with flat end-caps, "
+"but only with round end-caps.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:153
+#: ../../../../build/work/app/i18n/custmsg.h:153
msgid "Users on those platforms will not see the gap.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:154
-msgid "Add an arrow head to indicate the tracks that connect to the rest of the layout.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:154
+msgid ""
+"Add an arrow head to indicate the tracks that connect to the rest of the "
+"layout.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:155
+#: ../../../../build/work/app/i18n/custmsg.h:155
msgid "Rotate the arrow head by 180° and move into position.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:156
+#: ../../../../build/work/app/i18n/custmsg.h:156
msgid "And add some labels.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:157
-msgid "We want to print our control panel onto a 8œx11 page, but the control panel is a bit too wide.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:157
+msgid ""
+"We want to print our control panel onto a 8œx11 page, but the control panel "
+"is a bit too wide.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:158
+#: ../../../../build/work/app/i18n/custmsg.h:158
msgid "Lets tighten it up a bit.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:159
-msgid "First turn the Snap Grid on again so any moves we make will keep objects on the grid.\n"
-msgstr "Primeiramente, habilitamos a grade novamente para fazer com que os objetos fiquem mantidos nela.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:159
+msgid ""
+"First turn the Snap Grid on again so any moves we make will keep objects on "
+"the grid.\n"
+msgstr ""
+"Primeiramente, habilitamos a grade novamente para fazer com que os objetos "
+"fiquem mantidos nela.\n"
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:160
+#: ../../../../build/work/app/i18n/custmsg.h:160
msgid "Lets move the spur track the left 3/4\"\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:161
+#: ../../../../build/work/app/i18n/custmsg.h:161
msgid "Now move the right side of the siding over.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:162
+#: ../../../../build/work/app/i18n/custmsg.h:162
msgid "Now, adjust the ends of the mainline and siding tracks.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:163
+#: ../../../../build/work/app/i18n/custmsg.h:163
msgid "And move the title over as well.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:164
+#: ../../../../build/work/app/i18n/custmsg.h:164
msgid "Now you can print it.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:165
+#: ../../../../build/work/app/i18n/custmsg.h:165
msgid "The cross-hairs on the LEDs and switch show the centers for drilling.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:166
-msgid "Pressing the <Delete> button lets you delete selected tracks from the layout.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:166
+msgid ""
+"Pressing the <Delete> button lets you delete selected tracks from the "
+"layout.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:167
-msgid "First you select the tracks you want to delete, and then press the <Delete> button.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:167
+msgid ""
+"First you select the tracks you want to delete, and then press the <Delete> "
+"button.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:168
-msgid "If you delete a track connected to an easement curve, then the easement curve is deleted as well.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:168
+msgid ""
+"If you delete a track connected to an easement curve, then the easement "
+"curve is deleted as well.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:169
+#: ../../../../build/work/app/i18n/custmsg.h:169
msgid "You can use the <Undo> command to undelete tracks.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:170
-msgid "If you Left-Drag on the layout you can select all tracks within an area.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:170
+msgid ""
+"If you Left-Drag on the layout you can select all tracks within an area.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:171
-msgid "Note, only tracks within the selected area are deleted. Since the easement curve is connected to a deleted track, it is deleted as well.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:171
+msgid ""
+"Note, only tracks within the selected area are deleted. Since the easement "
+"curve is connected to a deleted track, it is deleted as well.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:172
-msgid "The demo also simulates entering values and selecting options on various dialogs.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:172
+msgid ""
+"The demo also simulates entering values and selecting options on various "
+"dialogs.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:173
-msgid "This is simulated by drawing a rectangle around the control when values are entered or changed.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:173
+msgid ""
+"This is simulated by drawing a rectangle around the control when values are "
+"entered or changed.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:174
-msgid "Here we are going to make some changes to the Display dialog. Notice how this is simulated.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:174
+msgid ""
+"Here we are going to make some changes to the Display dialog. Notice how "
+"this is simulated.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:175
-msgid "This effect is only used in demonstration mode. During normal operation you will not see this.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:175
+msgid ""
+"This effect is only used in demonstration mode. During normal operation you "
+"will not see this.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:176
+#: ../../../../build/work/app/i18n/custmsg.h:176
msgid "Dimension Lines are used to mark the distances between two points.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:177
-msgid "Here we will create a Dimension Line to show the separation between two tracks.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:177
+msgid ""
+"Here we will create a Dimension Line to show the separation between two "
+"tracks.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:178
-msgid "We might also want to measure the distance between two structures. In this case we will use a larger dimension line.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:178
+msgid ""
+"We might also want to measure the distance between two structures. In this "
+"case we will use a larger dimension line.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:179
-msgid "We can use the <Describe> command to change the position of the Dimension Line and the size of the numbers.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:179
+msgid ""
+"We can use the <Describe> command to change the position of the Dimension "
+"Line and the size of the numbers.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:180
-msgid "This example will show the effect of using easements while joining tracks.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:180
+msgid ""
+"This example will show the effect of using easements while joining tracks.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:181
+#: ../../../../build/work/app/i18n/custmsg.h:181
msgid "First, we'll enable easements.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:182
-msgid "We've selected sharp easements. The minimum radius curve we can use will be 9.75\"\n"
+#: ../../../../build/work/app/i18n/custmsg.h:182
+msgid ""
+"We've selected sharp easements. The minimum radius curve we can use will be "
+"9.75\"\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:183
+#: ../../../../build/work/app/i18n/custmsg.h:183
msgid "Notice the label on the Easement button has changed to 'Sharp'.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:184
-msgid "Note the connecting curve does not quite meet the straight tracks. This the 'Offset'.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:184
+msgid ""
+"Note the connecting curve does not quite meet the straight tracks. This the "
+"'Offset'.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:185
+#: ../../../../build/work/app/i18n/custmsg.h:185
msgid "Here the connecting curve is too small.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:186
-msgid "The connecting curve is made of three tracks, the curve and two easement segments on each end.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:186
+msgid ""
+"The connecting curve is made of three tracks, the curve and two easement "
+"segments on each end.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:187
-msgid "We have designed part of the layout with a siding, 2 branches and a spiral loop. We want to set Elevations.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:187
+msgid ""
+"We have designed part of the layout with a siding, 2 branches and a spiral "
+"loop. We want to set Elevations.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:188
+#: ../../../../build/work/app/i18n/custmsg.h:188
msgid "First we will set elevations at the end of the branches.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:189
+#: ../../../../build/work/app/i18n/custmsg.h:189
msgid "We'll select the end of the top branch and set the Elevation to 4\"\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:190
+#: ../../../../build/work/app/i18n/custmsg.h:190
msgid "First, click on the End-Point.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:191
+#: ../../../../build/work/app/i18n/custmsg.h:191
msgid "Next, pick Defined on the Elevation dialog Radio box.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:192
+#: ../../../../build/work/app/i18n/custmsg.h:192
msgid "And set the Elevation to 4.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:193
+#: ../../../../build/work/app/i18n/custmsg.h:193
msgid "Now, select the other branch and set it's elevation to 2\"\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:194
+#: ../../../../build/work/app/i18n/custmsg.h:194
msgid "We can move the Elevations by using Right-Drag\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:195
+#: ../../../../build/work/app/i18n/custmsg.h:195
msgid "Now, we set the Elevation at one end of the Siding.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:196
+#: ../../../../build/work/app/i18n/custmsg.h:196
msgid "We want to find the elevations where the 2 tracks cross.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:197
+#: ../../../../build/work/app/i18n/custmsg.h:197
msgid "We picked an End-Point on the upper track.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:198
-msgid "XTrackCAD has computed the Elevation (2.34\") at this point based on the Elevation at the siding and a combination of the of the first Elevations.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:198
+msgid ""
+"XTrackCAD has computed the Elevation (2.34\") at this point based on the "
+"Elevation at the siding and a combination of the of the first Elevations.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:199
-msgid "We create a Computed Elevation here that will be automatically adjusted whenever the other Elevations are changed.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:199
+msgid ""
+"We create a Computed Elevation here that will be automatically adjusted "
+"whenever the other Elevations are changed.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:200
-msgid "The Compute Elevation is based on Elevations at end of both of the branches. We may want to base the Elevation on only one branch. For example if one branch was the mainline we don't want the other branch affecting this Computed Elevation.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:200
+msgid ""
+"The Compute Elevation is based on Elevations at end of both of the "
+"branches. We may want to base the Elevation on only one branch. For "
+"example if one branch was the mainline we don't want the other branch "
+"affecting this Computed Elevation.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:201
+#: ../../../../build/work/app/i18n/custmsg.h:201
msgid "We do this by Ignoring the branch we don't want.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:202
+#: ../../../../build/work/app/i18n/custmsg.h:202
msgid "We'll ignore the lower branch.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:203
-msgid "Notice at the End-Point where the tracks cross, we see the Elevation has changed from 2.34 to 2.64.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:203
+msgid ""
+"Notice at the End-Point where the tracks cross, we see the Elevation has "
+"changed from 2.34 to 2.64.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:204
+#: ../../../../build/work/app/i18n/custmsg.h:204
msgid "Now we want to know the elevation of the lower track.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:205
+#: ../../../../build/work/app/i18n/custmsg.h:205
msgid "There is no End-Point on the lower track here.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:206
-msgid "Use Shift-Left-Click to Split the track and create an End-Point we can use for an Elevation,\n"
+#: ../../../../build/work/app/i18n/custmsg.h:206
+msgid ""
+"Use Shift-Left-Click to Split the track and create an End-Point we can use "
+"for an Elevation,\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:207
+#: ../../../../build/work/app/i18n/custmsg.h:207
msgid "and create another Computed Elevation point.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:208
+#: ../../../../build/work/app/i18n/custmsg.h:208
msgid "Now we want to label the Grade on this section of track.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:209
-msgid "Again, since there is no End-Point nearby, we split the track to create an End-Point we can use,\n"
+#: ../../../../build/work/app/i18n/custmsg.h:209
+msgid ""
+"Again, since there is no End-Point nearby, we split the track to create an "
+"End-Point we can use,\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:210
+#: ../../../../build/work/app/i18n/custmsg.h:210
msgid "and create a Grade marker.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:211
+#: ../../../../build/work/app/i18n/custmsg.h:211
msgid "Note the marker has an arrow pointing in the upwards direction.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:212
-msgid "The last thing we want to do is to create a Station label that we'll use in the <Profile> command.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:212
+msgid ""
+"The last thing we want to do is to create a Station label that we'll use in "
+"the <Profile> command.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:213
+#: ../../../../build/work/app/i18n/custmsg.h:213
msgid "Now, set the Elevation to Station and enter the its name.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:214
-msgid "XTrackCAD can help find tracks that are curved too sharply or are too steep. These tracks are Exception tracks and are drawn in the Exception track color.\n"
-msgstr "XTrackCAD pode ajudar encontrar curvas muito fechadas ou trechos demasiadamente inclinados. Esses são os chamados trechos excepcionais e serão desenhados na cor de trechos excepcionais.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:214
+msgid ""
+"XTrackCAD can help find tracks that are curved too sharply or are too "
+"steep. These tracks are Exception tracks and are drawn in the Exception "
+"track color.\n"
+msgstr ""
+"XTrackCAD pode ajudar encontrar curvas muito fechadas ou trechos "
+"demasiadamente inclinados. Esses são os chamados trechos excepcionais e "
+"serão desenhados na cor de trechos excepcionais.\n"
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:215
-msgid "In this example we have a curved track with radius of 9\" and a straight track with a grade of 3.8%.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:215
+msgid ""
+"In this example we have a curved track with radius of 9\" and a straight "
+"track with a grade of 3.8%.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:216
+#: ../../../../build/work/app/i18n/custmsg.h:216
msgid " \n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:217
-msgid "The Layout dialog shows the Minimum Track Radius is 9\" and the Maximum Track Grade is 5%.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:217
+msgid ""
+"The Layout dialog shows the Minimum Track Radius is 9\" and the Maximum "
+"Track Grade is 5%.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:218
-msgid "If we make the curved track sharper it will be drawn in the Exception color.\n"
-msgstr "Se instalarmos uma curva muito fechada, ela será desenhada na cor de trecho excepcional.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:218
+msgid ""
+"If we make the curved track sharper it will be drawn in the Exception "
+"color.\n"
+msgstr ""
+"Se instalarmos uma curva muito fechada, ela será desenhada na cor de trecho "
+"excepcional.\n"
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:219
-msgid "If we make the straight track steeper it will also be drawn in the Exception color.\n"
-msgstr "Se instalarmos um trecho muito inclinado ele será também desenhado na cor de trecho excepcional.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:219
+msgid ""
+"If we make the straight track steeper it will also be drawn in the Exception "
+"color.\n"
+msgstr ""
+"Se instalarmos um trecho muito inclinado ele será também desenhado na cor de "
+"trecho excepcional.\n"
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:220
-msgid "You can change the Exception color on the Colors dialog from the Options menu.\n"
-msgstr "Você pode alterar a cor dos trechos excepcionais na caixa de diálogo de cores acessível através do menu \"Opções\".\n"
+#: ../../../../build/work/app/i18n/custmsg.h:220
+msgid ""
+"You can change the Exception color on the Colors dialog from the Options "
+"menu.\n"
+msgstr ""
+"Você pode alterar a cor dos trechos excepcionais na caixa de diálogo de "
+"cores acessível através do menu \"Opções\".\n"
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:221
-msgid "The unconnected End-Point of any track can be extended with the <Modify> command using Right-Drag.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:221
+msgid ""
+"The unconnected End-Point of any track can be extended with the <Modify> "
+"command using Right-Drag.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:222
+#: ../../../../build/work/app/i18n/custmsg.h:222
msgid "Select the End-Point and Right-Drag.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:223
+#: ../../../../build/work/app/i18n/custmsg.h:223
msgid "The extending track can be straight...\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:224
+#: ../../../../build/work/app/i18n/custmsg.h:224
msgid "... or curved.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:225
-msgid "If you extend a Straight or Curved flex track and enable Easements then an Easement curve will be automatically generated when you extend the track.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:225
+msgid ""
+"If you extend a Straight or Curved flex track and enable Easements then an "
+"Easement curve will be automatically generated when you extend the track.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:226
-msgid "The <Flip> command will create a mirror image of the selected objects.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:226
+msgid ""
+"The <Flip> command will create a mirror image of the selected objects.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:227
+#: ../../../../build/work/app/i18n/custmsg.h:227
msgid "After selecting the object, drag a line which will form the mirror.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:228
+#: ../../../../build/work/app/i18n/custmsg.h:228
msgid "The mirror line does not have to be vertical or horizontal.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:229
+#: ../../../../build/work/app/i18n/custmsg.h:229
msgid "You can also flip any number of objects.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:230
+#: ../../../../build/work/app/i18n/custmsg.h:230
msgid "Watch what happens to the structure and turnout titles.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:231
-msgid "Note that the turnout title has been changed from the Medium Right to Medium Left. When turnouts are flipped, XTrackCAD will try to find a matching turnout and if found will change the name.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:231
+msgid ""
+"Note that the turnout title has been changed from the Medium Right to Medium "
+"Left. When turnouts are flipped, XTrackCAD will try to find a matching "
+"turnout and if found will change the name.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:232
-msgid "Structures do not have Right and Left hand versions. Their title is changed to indicate that they were flipped.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:232
+msgid ""
+"Structures do not have Right and Left hand versions. Their title is changed "
+"to indicate that they were flipped.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:233
+#: ../../../../build/work/app/i18n/custmsg.h:233
msgid "You can use the <Describe> command to change their title.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:234
-msgid "The <Group> and <Ungroup> commands (on the Tools menu) are a powerful way to manipulate Turnout and Structure definitions.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:234
+msgid ""
+"The <Group> and <Ungroup> commands (on the Tools menu) are a powerful way to "
+"manipulate Turnout and Structure definitions.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:235
+#: ../../../../build/work/app/i18n/custmsg.h:235
msgid "We'll start with a simple turnout and add a switch machine.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:236
-msgid "Now that we have drawn a rough outline of a switch machine we will group it with the turnout definition.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:236
+msgid ""
+"Now that we have drawn a rough outline of a switch machine we will group it "
+"with the turnout definition.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:237
+#: ../../../../build/work/app/i18n/custmsg.h:237
msgid "First we Select the objects in the new definition.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:238
+#: ../../../../build/work/app/i18n/custmsg.h:238
msgid "Now do the <Group> command.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:239
-msgid "The <Group> command dialog shows the Title (Manufacturer, Description and Part Number) of the new definition. This information is taken from the Selected objects you are grouping.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:239
+msgid ""
+"The <Group> command dialog shows the Title (Manufacturer, Description and "
+"Part Number) of the new definition. This information is taken from the "
+"Selected objects you are grouping.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:240
-msgid "The 'Replace with new group?' toggle will replace the Selected objects with the new definition.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:240
+msgid ""
+"The 'Replace with new group?' toggle will replace the Selected objects with "
+"the new definition.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:241
-msgid "If we don't change the Title then the new definition will replace the existing definition.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:241
+msgid ""
+"If we don't change the Title then the new definition will replace the "
+"existing definition.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:242
+#: ../../../../build/work/app/i18n/custmsg.h:242
msgid "We'll give this definition a new Description.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:243
+#: ../../../../build/work/app/i18n/custmsg.h:243
msgid "We're done with this definition. Press Ok.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:244
+#: ../../../../build/work/app/i18n/custmsg.h:244
msgid "You will see the updated image on the HotBar.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:245
-msgid "The <Ungroup> command replaces any Selected turnouts or structures with their parts.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:245
+msgid ""
+"The <Ungroup> command replaces any Selected turnouts or structures with "
+"their parts.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:246
-msgid "Structures and non-track segements of turnouts are composed of Lines, Circles and other shapes. In this turnout these are the two lines and the two squares.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:246
+msgid ""
+"Structures and non-track segements of turnouts are composed of Lines, "
+"Circles and other shapes. In this turnout these are the two lines and the "
+"two squares.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:247
-msgid "We will Ungroup this turnout and see how the individual parts can be changed.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:247
+msgid ""
+"We will Ungroup this turnout and see how the individual parts can be "
+"changed.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:248
+#: ../../../../build/work/app/i18n/custmsg.h:248
msgid "First Select the turnout and then Ungroup it.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:249
+#: ../../../../build/work/app/i18n/custmsg.h:249
msgid "Notice that the Title now indicates the turnout is Ungrouped.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:250
+#: ../../../../build/work/app/i18n/custmsg.h:250
msgid "Hit Escape to deselect everything.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:251
+#: ../../../../build/work/app/i18n/custmsg.h:251
msgid "Now Select the lines and squares.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:252
-msgid "We could modify these object or add new ones. For now we'll just delete them.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:252
+msgid ""
+"We could modify these object or add new ones. For now we'll just delete "
+"them.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:253
+#: ../../../../build/work/app/i18n/custmsg.h:253
msgid "And move the Label out of the way.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:254
+#: ../../../../build/work/app/i18n/custmsg.h:254
msgid "Notice that the turnout has been broken into three parts.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:255
-msgid "Two ends of the turnout, from the frog to the end of the diverging leg and from the points to the left, are now straight track sections.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:255
+msgid ""
+"Two ends of the turnout, from the frog to the end of the diverging leg and "
+"from the points to the left, are now straight track sections.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:256
-msgid "The a turnout is made of a number of individual straight and curved track segements. This turnout had four segments:\n"
+#: ../../../../build/work/app/i18n/custmsg.h:256
+msgid ""
+"The a turnout is made of a number of individual straight and curved track "
+"segements. This turnout had four segments:\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:257
+#: ../../../../build/work/app/i18n/custmsg.h:257
msgid " 1 a short straight segment to the left of the points\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:258
+#: ../../../../build/work/app/i18n/custmsg.h:258
msgid " 2 a long straight segment to the right of the points\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:259
+#: ../../../../build/work/app/i18n/custmsg.h:259
msgid " 3 a curved segment from the points to the frog\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:260
-msgid " 4 a straight segment from the frog to the end of the diverging leg.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:260
+msgid ""
+" 4 a straight segment from the frog to the end of the diverging leg.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:261
+#: ../../../../build/work/app/i18n/custmsg.h:261
msgid "The first and last segments have be converted to straight tracks.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:262
-msgid "The second and third segments form the the body of the turnout and can not be ungrouped further.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:262
+msgid ""
+"The second and third segments form the the body of the turnout and can not "
+"be ungrouped further.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:263
-msgid "You can later Group this turnout with the straight segments to recreate the turnout definition. You can also add other track segments to turnout definitions.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:263
+msgid ""
+"You can later Group this turnout with the straight segments to recreate the "
+"turnout definition. You can also add other track segments to turnout "
+"definitions.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:264
+#: ../../../../build/work/app/i18n/custmsg.h:264
msgid "Now, create a track and place the new turnout on it.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:265
+#: ../../../../build/work/app/i18n/custmsg.h:265
msgid "Now suppose we want to replace the black squares with green circles.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:266
+#: ../../../../build/work/app/i18n/custmsg.h:266
msgid "First we Select the turnout.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:267
+#: ../../../../build/work/app/i18n/custmsg.h:267
msgid "And now Ungroup it (from the Tools Menu)\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:268
-msgid "Notice that the name has changed to indicate the turnout was Ungrouped.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:268
+msgid ""
+"Notice that the name has changed to indicate the turnout was Ungrouped.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:269
-msgid "Now, hit escape to deselect everything and then Select the 2 squares and delete them.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:269
+msgid ""
+"Now, hit escape to deselect everything and then Select the 2 squares and "
+"delete them.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:270
+#: ../../../../build/work/app/i18n/custmsg.h:270
msgid "Now draw the green circles...\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:271
+#: ../../../../build/work/app/i18n/custmsg.h:271
msgid "and Group the new definition.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:272
-msgid "Notice that the turnout in the HotBar is angled the same as the turnout on the layout. Make sure your new definition is rotated the way you want it.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:272
+msgid ""
+"Notice that the turnout in the HotBar is angled the same as the turnout on "
+"the layout. Make sure your new definition is rotated the way you want it.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:273
+#: ../../../../build/work/app/i18n/custmsg.h:273
msgid "We can also create turnouts from simple straight and curved tracks.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:274
+#: ../../../../build/work/app/i18n/custmsg.h:274
msgid "We'll create two tracks that have a common End-Point.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:275
+#: ../../../../build/work/app/i18n/custmsg.h:275
msgid "At this point we can modify the tracks if necessary.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:276
+#: ../../../../build/work/app/i18n/custmsg.h:276
msgid "We will use the <Describe> command to change the tracks.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:277
+#: ../../../../build/work/app/i18n/custmsg.h:277
msgid "We'll make the Length 7.5\".\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:278
-msgid "If we change the Length, each End-Point will be moved to shorten the track. We want to just move the Right End-Point. To control this, change the Pivot to First which means the Left End-Point will be unchanged when we change the length (or angle) of the track.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:278
+msgid ""
+"If we change the Length, each End-Point will be moved to shorten the track. "
+"We want to just move the Right End-Point. To control this, change the Pivot "
+"to First which means the Left End-Point will be unchanged when we change the "
+"length (or angle) of the track.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:279
+#: ../../../../build/work/app/i18n/custmsg.h:279
msgid "Now when change the Length only the Right End-Point will move.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:280
+#: ../../../../build/work/app/i18n/custmsg.h:280
msgid "Now let's look at the curved track.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:281
-msgid "Here the Left End-Point (which we don't want to move) is the Second End-Point, so we'll make that the Pivot.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:281
+msgid ""
+"Here the Left End-Point (which we don't want to move) is the Second End-"
+"Point, so we'll make that the Pivot.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:282
+#: ../../../../build/work/app/i18n/custmsg.h:282
msgid "We want the curve to have a radius of 20\" and an angle of 17.5°.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:283
+#: ../../../../build/work/app/i18n/custmsg.h:283
msgid "First change the Radius...\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:284
+#: ../../../../build/work/app/i18n/custmsg.h:284
msgid "and the the Angular Length.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:285
+#: ../../../../build/work/app/i18n/custmsg.h:285
msgid "Now Select both tracks...\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:286
+#: ../../../../build/work/app/i18n/custmsg.h:286
msgid "and Group them.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:287
-msgid "If the two tracks have a common End-Point then they will form a Turnout and can be switched with the <Train> command. Otherwise they will just be two track segments grouped together.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:287
+msgid ""
+"If the two tracks have a common End-Point then they will form a Turnout and "
+"can be switched with the <Train> command. Otherwise they will just be two "
+"track segments grouped together.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:288
-msgid "We have created a left hand turnout and we also want a right hand version.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:288
+msgid ""
+"We have created a left hand turnout and we also want a right hand version.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:289
+#: ../../../../build/work/app/i18n/custmsg.h:289
msgid "We'll use the <Flip> command.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:290
-msgid "Drag a horizontal line that will be the mirror for the <Flip> command.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:290
+msgid ""
+"Drag a horizontal line that will be the mirror for the <Flip> command.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:291
+#: ../../../../build/work/app/i18n/custmsg.h:291
msgid "Notice the title has changed to Flipped Left.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:292
+#: ../../../../build/work/app/i18n/custmsg.h:292
msgid "Now Group the turnout.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:293
+#: ../../../../build/work/app/i18n/custmsg.h:293
msgid "We'll change the Title and Part No for the new defintion.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:294
-msgid "To Remove the definitions, use the Custom Management dialog on the Tools menu.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:294
+msgid ""
+"To Remove the definitions, use the Custom Management dialog on the Tools "
+"menu.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:295
+#: ../../../../build/work/app/i18n/custmsg.h:295
msgid "Select the definitions you added and Delete them.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:296
-msgid "Now we will create a helix in the corner of the layout connected to 2 tracks.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:296
+msgid ""
+"Now we will create a helix in the corner of the layout connected to 2 "
+"tracks.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:297
+#: ../../../../build/work/app/i18n/custmsg.h:297
#, c-format
-msgid "We will be creating a helix with a Elevation Difference of 12\", Grade of 1.5% and limit the Vertical Separation to at least 2\".\n"
+msgid ""
+"We will be creating a helix with a Elevation Difference of 12\", Grade of "
+"1.5% and limit the Vertical Separation to at least 2\".\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:298
+#: ../../../../build/work/app/i18n/custmsg.h:298
msgid "First set the Elevation Difference to 12\"\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:299
+#: ../../../../build/work/app/i18n/custmsg.h:299
msgid "Next set the Vertical Separation to 2\"\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:300
+#: ../../../../build/work/app/i18n/custmsg.h:300
msgid "Notice how this causes the number of Turns to be set to 6\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:301
+#: ../../../../build/work/app/i18n/custmsg.h:301
msgid "Next set the Grade to 1.5%\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:302
+#: ../../../../build/work/app/i18n/custmsg.h:302
msgid "Notice how this causes the Radius to change.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:303
-msgid "Setting these values changes the Radius to 21.2\" and the number of Turns to 6.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:303
+msgid ""
+"Setting these values changes the Radius to 21.2\" and the number of Turns to "
+"6.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:304
-msgid "Now we specify the Angular Separation between the enterance and exit to the helix.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:304
+msgid ""
+"Now we specify the Angular Separation between the enterance and exit to the "
+"helix.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:305
+#: ../../../../build/work/app/i18n/custmsg.h:305
msgid "Note: this will decrease the Radius slightly.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:306
+#: ../../../../build/work/app/i18n/custmsg.h:306
msgid "Next we can fine tune the helix by decreasing the Radius to 15\".\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:307
+#: ../../../../build/work/app/i18n/custmsg.h:307
msgid "Note the change to the Grade.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:308
-msgid "Lastly change the Vertical Separation to 2.5\". The number of Turns will change to 4 and the grade increase to almost 3%.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:308
+msgid ""
+"Lastly change the Vertical Separation to 2.5\". The number of Turns will "
+"change to 4 and the grade increase to almost 3%.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:309
-msgid "Note: the Vertical Separation will be increased. This value is the Elevation Difference (12.0) divided by the total number of turns. The total number of turns is 4.25: 4 whole Turns plus a quarter turn for the Angular Separation.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:309
+msgid ""
+"Note: the Vertical Separation will be increased. This value is the "
+"Elevation Difference (12.0) divided by the total number of turns. The total "
+"number of turns is 4.25: 4 whole Turns plus a quarter turn for the Angular "
+"Separation.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:310
-msgid "Now that the helix parameters are set we can place the helix on the layout.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:310
+msgid ""
+"Now that the helix parameters are set we can place the helix on the layout.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:311
-msgid "Next, join the 2 straight tracks to the helix in the same way we join to a circle.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:311
+msgid ""
+"Next, join the 2 straight tracks to the helix in the same way we join to a "
+"circle.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:312
-msgid "Notice that the length has increased because we have more than 4 turns in the helix. It is closer to 4.25 turns.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:312
+msgid ""
+"Notice that the length has increased because we have more than 4 turns in "
+"the helix. It is closer to 4.25 turns.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:313
-msgid "Next, we assign elevations to the 2 End-Points of the helix. This will determine the grade and separation between the helix coils.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:313
+msgid ""
+"Next, we assign elevations to the 2 End-Points of the helix. This will "
+"determine the grade and separation between the helix coils.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:314
-msgid "Note: we could set the elevations anywhere along the connecting tracks instead. XTrackCAD treats a helix as a single length of track for elevations.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:314
+msgid ""
+"Note: we could set the elevations anywhere along the connecting tracks "
+"instead. XTrackCAD treats a helix as a single length of track for "
+"elevations.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:315
-msgid "We have set the elevations to 1\" and 13\" to produce a grade of 3.0% with 2.8\" between coils.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:315
+msgid ""
+"We have set the elevations to 1\" and 13\" to produce a grade of 3.0% with "
+"2.8\" between coils.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:316
-msgid "You can use the <Describe> command to change the number of Turns or the Elevations at either end of the Helix. This will affect the Grade and Vertical Separation.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:316
+msgid ""
+"You can use the <Describe> command to change the number of Turns or the "
+"Elevations at either end of the Helix. This will affect the Grade and "
+"Vertical Separation.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:317
+#: ../../../../build/work/app/i18n/custmsg.h:317
msgid "The helix description can be moved by the <Move Label> command.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:318
-msgid "In addition to using the turnout definitions you can create 'Hand Laid Turnout'.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:318
+msgid ""
+"In addition to using the turnout definitions you can create 'Hand Laid "
+"Turnout'.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:319
+#: ../../../../build/work/app/i18n/custmsg.h:319
msgid "This is two step process:\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:320
+#: ../../../../build/work/app/i18n/custmsg.h:320
msgid "1 - click on the frog and drag away to set the frog angle\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:321
-msgid " Hint: the further you drag from the frog, the more accurate the angle.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:321
+msgid ""
+" Hint: the further you drag from the frog, the more accurate the angle.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:322
+#: ../../../../build/work/app/i18n/custmsg.h:322
msgid "2 - click and drag to set the position of the points\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:323
+#: ../../../../build/work/app/i18n/custmsg.h:323
msgid "We can create Hand Laid Turnouts on curved tracks.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:324
+#: ../../../../build/work/app/i18n/custmsg.h:324
msgid "A Hand Laid Turnout is composed of several parts.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:325
+#: ../../../../build/work/app/i18n/custmsg.h:325
msgid "The actual Turnout is a short portion at the points.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:326
+#: ../../../../build/work/app/i18n/custmsg.h:326
msgid "The other parts are various straight and curved segments.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:327
+#: ../../../../build/work/app/i18n/custmsg.h:327
msgid "The new curved turnout is also composed of several segments.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:328
+#: ../../../../build/work/app/i18n/custmsg.h:328
msgid "Welcome to the XTrackCAD demonstration.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:329
-msgid "This will show some the features of XTrackCAD in an automated presentation. This window contains a number of controls and a message area (which I hope you are reading now). \n"
+#: ../../../../build/work/app/i18n/custmsg.h:329
+msgid ""
+"This will show some the features of XTrackCAD in an automated presentation. "
+"This window contains a number of controls and a message area (which I hope "
+"you are reading now). \n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:330
+#: ../../../../build/work/app/i18n/custmsg.h:330
msgid "The controls are:\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:331
+#: ../../../../build/work/app/i18n/custmsg.h:331
msgid "Step - advances to the next step of the demo.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:332
+#: ../../../../build/work/app/i18n/custmsg.h:332
msgid "Next - skips ahead to the next demo.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:333
+#: ../../../../build/work/app/i18n/custmsg.h:333
msgid "Quit - exits the demo and returns to XTrackCAD.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:334
+#: ../../../../build/work/app/i18n/custmsg.h:334
msgid "Speed - controls the speed of the demo.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:335
+#: ../../../../build/work/app/i18n/custmsg.h:335
msgid "Click Step now for the next message.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:336
-msgid "If this is the first time you have used the demo you may want to rearrange the windows so the demo window does not obscure the main window.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:336
+msgid ""
+"If this is the first time you have used the demo you may want to rearrange "
+"the windows so the demo window does not obscure the main window.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:337
-msgid "You can move the demo window now by dragging on the title bar at the top of the window. I suggest you move it to the top of your screen.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:337
+msgid ""
+"You can move the demo window now by dragging on the title bar at the top of "
+"the window. I suggest you move it to the top of your screen.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:338
-msgid "The various controls are disabled when it would be inappropiate to click on them. When the demo is running the Step button is disabled. When the demo is paused the Step button is enabled and you can click it when you are ready to view the next part of the demo.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:338
+msgid ""
+"The various controls are disabled when it would be inappropiate to click on "
+"them. When the demo is running the Step button is disabled. When the demo "
+"is paused the Step button is enabled and you can click it when you are ready "
+"to view the next part of the demo.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:339
+#: ../../../../build/work/app/i18n/custmsg.h:339
msgid "You can click on Quit to return to XTrackCAD at any time.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:340
+#: ../../../../build/work/app/i18n/custmsg.h:340
msgid "You can adjust the speed of the demonstration with the Speed control.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:341
+#: ../../../../build/work/app/i18n/custmsg.h:341
msgid "The demos are designed to fit within a certain sized window.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:342
-msgid "For best results, change the size of the main XTrackCAD window so the box shape is completely visible.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:342
+msgid ""
+"For best results, change the size of the main XTrackCAD window so the box "
+"shape is completely visible.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:343
+#: ../../../../build/work/app/i18n/custmsg.h:343
msgid "You can do this by clicking and dragging on a corner of the window.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:344
+#: ../../../../build/work/app/i18n/custmsg.h:344
msgid "This is the end of the introductory demo.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:345
-msgid "Please click Step for the next demo or click Quit to return to XTrackCAD.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:345
+msgid ""
+"Please click Step for the next demo or click Quit to return to XTrackCAD.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:346
-msgid "You can also join to and from circles. This will change the circles to curves.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:346
+msgid ""
+"You can also join to and from circles. This will change the circles to "
+"curves.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:347
+#: ../../../../build/work/app/i18n/custmsg.h:347
msgid "In this example we will join two circles.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:348
-msgid "Here we've selected points on the two circles. The direction of the connections (whether clockwise or counter clockwise) is controlled by where on the circle you select the connection points.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:348
+msgid ""
+"Here we've selected points on the two circles. The direction of the "
+"connections (whether clockwise or counter clockwise) is controlled by where "
+"on the circle you select the connection points.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:349
+#: ../../../../build/work/app/i18n/custmsg.h:349
msgid "Now let's try a cross connection.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:350
-msgid "Note that the connection is from different 'ends' of the circle than in the last example.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:350
+msgid ""
+"Note that the connection is from different 'ends' of the circle than in the "
+"last example.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:351
+#: ../../../../build/work/app/i18n/custmsg.h:351
msgid "This examples shows joining tracks whose End-Points are aligned.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:352
-msgid "Note the 2 pairs of tracks have End-Points that are close and aligned but not connected.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:352
+msgid ""
+"Note the 2 pairs of tracks have End-Points that are close and aligned but "
+"not connected.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:353
+#: ../../../../build/work/app/i18n/custmsg.h:353
msgid "The first case joins the curve and straight track.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:354
+#: ../../../../build/work/app/i18n/custmsg.h:354
msgid "The second case will join the two straight tracks.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:355
+#: ../../../../build/work/app/i18n/custmsg.h:355
msgid "Note that the two straight tracks were combined to form one track.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:356
-msgid "The <Join> command can join straight and curved tracks (in either order).\n"
+#: ../../../../build/work/app/i18n/custmsg.h:356
+msgid ""
+"The <Join> command can join straight and curved tracks (in either order).\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:357
+#: ../../../../build/work/app/i18n/custmsg.h:357
msgid "A connecting track is drawn between the two tracks.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:358
-msgid "Notice that the curved track is extended as the connection point moves past the End-Point.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:358
+msgid ""
+"Notice that the curved track is extended as the connection point moves past "
+"the End-Point.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:359
+#: ../../../../build/work/app/i18n/custmsg.h:359
msgid "Here the connection makes the curved track wrap around.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:360
-msgid "Now the cursor is about to be moved past the other (far) End-Point of the straight track. You will receive a warning and the connecting track turns Red.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:360
+msgid ""
+"Now the cursor is about to be moved past the other (far) End-Point of the "
+"straight track. You will receive a warning and the connecting track turns "
+"Red.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:361
+#: ../../../../build/work/app/i18n/custmsg.h:361
msgid "The <Join> command can move one group of tracks to join with another.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:362
+#: ../../../../build/work/app/i18n/custmsg.h:362
msgid "First <Select> the tracks you want to move.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:363
+#: ../../../../build/work/app/i18n/custmsg.h:363
msgid "Click <Join> and Shift-Left-Click on the two End-Points.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:364
+#: ../../../../build/work/app/i18n/custmsg.h:364
msgid "The selected tracks are moved into position.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:365
-msgid "Two straight tracks are joined by selecting the two End-Points. The selected End-Points will be those closest to the cursor when the track is selected.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:365
+msgid ""
+"Two straight tracks are joined by selecting the two End-Points. The "
+"selected End-Points will be those closest to the cursor when the track is "
+"selected.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:366
-msgid "A connecting track is drawn between the two tracks. Notice how it moves as the cursor is dragged along the second track.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:366
+msgid ""
+"A connecting track is drawn between the two tracks. Notice how it moves as "
+"the cursor is dragged along the second track.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:367
-msgid "Note that two tracks are extended if you move past the end of the track.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:367
+msgid ""
+"Note that two tracks are extended if you move past the end of the track.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:368
-msgid "Notice what happens if you drag past the intersection points of the two tracks.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:368
+msgid ""
+"Notice what happens if you drag past the intersection points of the two "
+"tracks.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:369
+#: ../../../../build/work/app/i18n/custmsg.h:369
msgid "This is probably not a very useful thing to do.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:370
+#: ../../../../build/work/app/i18n/custmsg.h:370
msgid "You can connect from any track to a turntable\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:371
+#: ../../../../build/work/app/i18n/custmsg.h:371
msgid "Note: you cannot have a turntable as your first connection point.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:372
-msgid "You cannot place the connecting track too close to an existing stall track. How close you can get is controlled by the Turntable Angle on the Setup dialog.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:372
+msgid ""
+"You cannot place the connecting track too close to an existing stall track. "
+"How close you can get is controlled by the Turntable Angle on the Setup "
+"dialog.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:373
+#: ../../../../build/work/app/i18n/custmsg.h:373
msgid "In this example it is set to 7.5 degrees.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:374
+#: ../../../../build/work/app/i18n/custmsg.h:374
msgid "You can drag the connecting point all round the turntable.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:375
-msgid "As you drag away from the turntable a straight track will be drawn to the cursor postion and a curve will be drawn from the cursor to the connecting track.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:375
+msgid ""
+"As you drag away from the turntable a straight track will be drawn to the "
+"cursor postion and a curve will be drawn from the cursor to the connecting "
+"track.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:376
-msgid "Now the cursor will be moved within the turntable. Notice the error message.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:376
+msgid ""
+"Now the cursor will be moved within the turntable. Notice the error "
+"message.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:377
+#: ../../../../build/work/app/i18n/custmsg.h:377
msgid "All done.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:378
-msgid "The Draw Commands are used to draw straight and curved lines on the layout.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:378
+msgid ""
+"The Draw Commands are used to draw straight and curved lines on the layout.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:379
-msgid "Lines are drawn by clicking at the starting postion and dragging to the final position.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:379
+msgid ""
+"Lines are drawn by clicking at the starting postion and dragging to the "
+"final position.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:380
-msgid "Drawing lines with the Shift key held down will use the previous line End-Point as the starting position. This makes it easy to draw connected lines.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:380
+msgid ""
+"Drawing lines with the Shift key held down will use the previous line End-"
+"Point as the starting position. This makes it easy to draw connected "
+"lines.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:381
+#: ../../../../build/work/app/i18n/custmsg.h:381
msgid "You also draw in various colors and line widths.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:382
-msgid "Like Curved Tracks, Curved Lines can be drawn by a variety of methods.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:382
+msgid ""
+"Like Curved Tracks, Curved Lines can be drawn by a variety of methods.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:383
-msgid "Here we will draw a Curve by dragging from one End-Point to the other to define the chord of the Curve. Then we will drag from the center to shape the curve.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:383
+msgid ""
+"Here we will draw a Curve by dragging from one End-Point to the other to "
+"define the chord of the Curve. Then we will drag from the center to shape "
+"the curve.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:384
+#: ../../../../build/work/app/i18n/custmsg.h:384
msgid "Boxes are useful for drawing rectangular shapes.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:385
-msgid "Circles can be drawn by clicking on the center or edge and dragging to set the radius.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:385
+msgid ""
+"Circles can be drawn by clicking on the center or edge and dragging to set "
+"the radius.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:386
+#: ../../../../build/work/app/i18n/custmsg.h:386
msgid "Here we will drag from the Center.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:387
+#: ../../../../build/work/app/i18n/custmsg.h:387
msgid "Lines and Shapes can be deleted by Selecting and Deleting.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:388
+#: ../../../../build/work/app/i18n/custmsg.h:388
msgid "We also draw Polylines and filled shapes.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:389
-msgid "A Polyline is drawn by dragging to place each of the point in the Polyline.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:389
+msgid ""
+"A Polyline is drawn by dragging to place each of the point in the Polyline.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:390
-msgid "To finish off the Polyline press the <Space> key or choose another drawing type.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:390
+msgid ""
+"To finish off the Polyline press the <Space> key or choose another drawing "
+"type.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:391
+#: ../../../../build/work/app/i18n/custmsg.h:391
msgid "A Polygon is drawn in the same way\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:392
-msgid "You can use the Above and Below Commands to move lines and shapes to the front or back of the drawing.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:392
+msgid ""
+"You can use the Above and Below Commands to move lines and shapes to the "
+"front or back of the drawing.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:393
+#: ../../../../build/work/app/i18n/custmsg.h:393
msgid "Filled Boxes and Circles work the same as line Boxes and Circles.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:394
-msgid "In the drawing area of the main window you can see an hollow arrow which represents the mouse cursor. In this demo the mouse will move about to show you the actions of different commands.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:394
+msgid ""
+"In the drawing area of the main window you can see an hollow arrow which "
+"represents the mouse cursor. In this demo the mouse will move about to show "
+"you the actions of different commands.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:395
-msgid "The hollow arrow represents the mouse cursor without a mouse button being pressed.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:395
+msgid ""
+"The hollow arrow represents the mouse cursor without a mouse button being "
+"pressed.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:396
-msgid "When the left mouse button would be pressed, the mouse cursor appears to flash and the hollow arrow is replaced by a solid red arrow. While the left button is pressed the mouse cursor will be a solid arrow.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:396
+msgid ""
+"When the left mouse button would be pressed, the mouse cursor appears to "
+"flash and the hollow arrow is replaced by a solid red arrow. While the left "
+"button is pressed the mouse cursor will be a solid arrow.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:397
-msgid "Note: these color changes occur only during the demo to simulate mouse button presses.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:397
+msgid ""
+"Note: these color changes occur only during the demo to simulate mouse "
+"button presses.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:398
-msgid "Moving the mouse while a mouse button is pressed is called 'dragging'.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:398
+msgid ""
+"Moving the mouse while a mouse button is pressed is called 'dragging'.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:399
-msgid "When the left mouse button is released, the mouse cursor flashes and the hollow arrow is restored.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:399
+msgid ""
+"When the left mouse button is released, the mouse cursor flashes and the "
+"hollow arrow is restored.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:400
+#: ../../../../build/work/app/i18n/custmsg.h:400
msgid "Dragging with the right button is simulated by a blue solid cursor.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:401
-msgid "Sometimes the Shift key is held down while using the mouse for a Shift-Click or a Shift-Drag. \n"
+#: ../../../../build/work/app/i18n/custmsg.h:401
+msgid ""
+"Sometimes the Shift key is held down while using the mouse for a Shift-Click "
+"or a Shift-Drag. \n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:402
+#: ../../../../build/work/app/i18n/custmsg.h:402
msgid "This is indicated by an outline drawn around the solid arrow.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:403
-msgid "The main drawing area shows a portion of total layout. You can zoom in or zoom out by choosing 'Zoom In' or 'Zoom Out' in the 'Edit' menu, by using the Zoom buttons on the toolbar or by using the 'Page Down' and 'Page Up' keys.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:403
+msgid ""
+"The main drawing area shows a portion of total layout. You can zoom in or "
+"zoom out by choosing 'Zoom In' or 'Zoom Out' in the 'Edit' menu, by using "
+"the Zoom buttons on the toolbar or by using the 'Page Down' and 'Page Up' "
+"keys.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:404
+#: ../../../../build/work/app/i18n/custmsg.h:404
msgid "You can see the entire layout in the Map window.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:405
+#: ../../../../build/work/app/i18n/custmsg.h:405
msgid "As you Zoom Out tracks are drawn with one line instead of two.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:406
-msgid "You can change what portion of the layout is shown by using the 'Map' window which shows a compressed version of the entire layout. A hilighted area of the 'Map' (in reverse video) shows what portion of the layout is displayed in the main drawing area.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:406
+msgid ""
+"You can change what portion of the layout is shown by using the 'Map' window "
+"which shows a compressed version of the entire layout. A hilighted area of "
+"the 'Map' (in reverse video) shows what portion of the layout is displayed "
+"in the main drawing area.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:407
-msgid "You can Left-Drag the hilighted area in the Map window to change the displayed portion of the layout.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:407
+msgid ""
+"You can Left-Drag the hilighted area in the Map window to change the "
+"displayed portion of the layout.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:408
-msgid "You can also Right-Drag on the Map window to set the scale and position of the Main window.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:408
+msgid ""
+"You can also Right-Drag on the Map window to set the scale and position of "
+"the Main window.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:409
-msgid "The <Note> command lets you attach notes to various spots on the layout.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:409
+msgid ""
+"The <Note> command lets you attach notes to various spots on the layout.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:410
-msgid "When you place a note, the Note editor window is displayed which lets you enter the note.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:410
+msgid ""
+"When you place a note, the Note editor window is displayed which lets you "
+"enter the note.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:411
-msgid "If you click on a note in <Describe> mode the Note editor displays the note.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:411
+msgid ""
+"If you click on a note in <Describe> mode the Note editor displays the "
+"note.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:412
+#: ../../../../build/work/app/i18n/custmsg.h:412
msgid "This is the end of the XTrackCAD Demos.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:413
+#: ../../../../build/work/app/i18n/custmsg.h:413
msgid "Click Step to return to XTrackCAD.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:414
+#: ../../../../build/work/app/i18n/custmsg.h:414
msgid "Thanks for watching.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:415
+#: ../../../../build/work/app/i18n/custmsg.h:415
msgid "This example shows how to create parallel tracks.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:416
-msgid "The separation is set in the <Parallel Separation> window. You should set this value before you begin to select tracks.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:416
+msgid ""
+"The separation is set in the <Parallel Separation> window. You should set "
+"this value before you begin to select tracks.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:417
-msgid "You control which side the parallel track will be on by moving the cursor from one side of the track centerline to the other.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:417
+msgid ""
+"You control which side the parallel track will be on by moving the cursor "
+"from one side of the track centerline to the other.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:418
+#: ../../../../build/work/app/i18n/custmsg.h:418
msgid "When you release the mouse button the new parallel track is created.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:419
-msgid "Note that the <Parallel> command remains active after you created the track. This is controlled by the Sticky dialog in the Options menu.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:419
+msgid ""
+"Note that the <Parallel> command remains active after you created the "
+"track. This is controlled by the Sticky dialog in the Options menu.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:420
+#: ../../../../build/work/app/i18n/custmsg.h:420
msgid "You cannot create a track parallel to a turnout.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:421
-msgid "Note that the new curved track is automatically connected to the short parallel track.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:421
+msgid ""
+"Note that the new curved track is automatically connected to the short "
+"parallel track.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:422
-msgid "Polylines and Polygons (created with the <Draw> command) can be modified by dragging on their Corners or Edges.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:422
+msgid ""
+"Polylines and Polygons (created with the <Draw> command) can be modified by "
+"dragging on their Corners or Edges.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:423
+#: ../../../../build/work/app/i18n/custmsg.h:423
msgid "If you select the middle of an Edge a new Corner is created.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:424
-msgid "If you drag a Corner to another Corner the two are merged and the Edge between them is removed.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:424
+msgid ""
+"If you drag a Corner to another Corner the two are merged and the Edge "
+"between them is removed.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:425
+#: ../../../../build/work/app/i18n/custmsg.h:425
msgid "But you cannot have a Poly-shape with less than 3 sides.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:426
-msgid "To use the <Profile> command you first need to define Elevations on your layout.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:426
+msgid ""
+"To use the <Profile> command you first need to define Elevations on your "
+"layout.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:427
+#: ../../../../build/work/app/i18n/custmsg.h:427
msgid "In this example we'll use the Elevations defined in the last example.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:428
+#: ../../../../build/work/app/i18n/custmsg.h:428
msgid "You can move or resize the Profile dialog now if you want.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:429
-msgid "To show the Profile you need to select a Path on the tracks of your layout.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:429
+msgid ""
+"To show the Profile you need to select a Path on the tracks of your layout.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:430
+#: ../../../../build/work/app/i18n/custmsg.h:430
msgid "Select a Defined Elevation point (marked by Gold dots).\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:431
+#: ../../../../build/work/app/i18n/custmsg.h:431
msgid "We will start with the right end of the siding.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:432
-msgid "The second Point is at the left end of the siding. The Path will be drawn in Purple on the layout.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:432
+msgid ""
+"The second Point is at the left end of the siding. The Path will be drawn "
+"in Purple on the layout.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:433
+#: ../../../../build/work/app/i18n/custmsg.h:433
msgid "Now select the end of one of the Branches\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:434
-msgid "The Profile line is drawn in Red. This indicates that there some turnouts on that section of the Path which have more than 2 connections.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:434
+msgid ""
+"The Profile line is drawn in Red. This indicates that there some turnouts "
+"on that section of the Path which have more than 2 connections.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:435
-msgid "The grade on this part of the Path is the average and may be affected by other Elevations, such the end of the lower branch.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:435
+msgid ""
+"The grade on this part of the Path is the average and may be affected by "
+"other Elevations, such the end of the lower branch.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:436
+#: ../../../../build/work/app/i18n/custmsg.h:436
msgid "Now try to select the End-Point of the other branch.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:437
-msgid "You will get an error message because there is no route to one of the ends of the existing Path.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:437
+msgid ""
+"You will get an error message because there is no route to one of the ends "
+"of the existing Path.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:438
-msgid "In this case remove the last part of the Path by clicking on current end of the Path and reselect the End-Point.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:438
+msgid ""
+"In this case remove the last part of the Path by clicking on current end of "
+"the Path and reselect the End-Point.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:439
+#: ../../../../build/work/app/i18n/custmsg.h:439
msgid "Notice that the Grade has changed on the Profile.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:440
-msgid "You can Ignore End-Points on the Path by using Shift-Right-Click to display the Profile Options popup menu and chosing Ignore.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:440
+msgid ""
+"You can Ignore End-Points on the Path by using Shift-Right-Click to display "
+"the Profile Options popup menu and chosing Ignore.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:441
-msgid "Note: We can't show the menu in demo mode but we will show the effect of a Shift Right Click and selecting ignore. We will be Ignoring the End-Point of the Turnout that is not on the Path.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:441
+msgid ""
+"Note: We can't show the menu in demo mode but we will show the effect of a "
+"Shift Right Click and selecting ignore. We will be Ignoring the End-Point "
+"of the Turnout that is not on the Path.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:442
+#: ../../../../build/work/app/i18n/custmsg.h:442
msgid "Notice that part of the Profile line is redrawn in Blue.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:443
-msgid "Also, the Computed Elevations and Grade marker on the right side of the layout have been updated.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:443
+msgid ""
+"Also, the Computed Elevations and Grade marker on the right side of the "
+"layout have been updated.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:444
-msgid "You can set additional Defined Elevation points using the Profile Options popup menu. These points are added to the Profile if they are on the Path.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:444
+msgid ""
+"You can set additional Defined Elevation points using the Profile Options "
+"popup menu. These points are added to the Profile if they are on the Path.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:445
-msgid "We do this by Shift Right Click to display the Profile Options popup menu and selecting Define.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:445
+msgid ""
+"We do this by Shift Right Click to display the Profile Options popup menu "
+"and selecting Define.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:446
-msgid "We've just added a Defined Elevation point to the middle of the lower branch. Notice the addition on the Profile dialog.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:446
+msgid ""
+"We've just added a Defined Elevation point to the middle of the lower "
+"branch. Notice the addition on the Profile dialog.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:447
-msgid "For the siding we defined a Station name but it's not on the Path, since the Path takes the shortest distance between points.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:447
+msgid ""
+"For the siding we defined a Station name but it's not on the Path, since the "
+"Path takes the shortest distance between points.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:448
-msgid "We can Ignore one of the End-Points on a Turnout to force the Path to take the other route.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:448
+msgid ""
+"We can Ignore one of the End-Points on a Turnout to force the Path to take "
+"the other route.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:449
-msgid "Again we use Shift-Right-Click to display the Profile Options menu and select ignore.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:449
+msgid ""
+"Again we use Shift-Right-Click to display the Profile Options menu and "
+"select ignore.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:450
+#: ../../../../build/work/app/i18n/custmsg.h:450
msgid "Now remove the First section of the Path,\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:451
+#: ../../../../build/work/app/i18n/custmsg.h:451
msgid "and reselect it.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:452
-msgid "Now the Path goes through the Station End-Point and the name appears on the Profile dialog.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:452
+msgid ""
+"Now the Path goes through the Station End-Point and the name appears on the "
+"Profile dialog.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:453
+#: ../../../../build/work/app/i18n/custmsg.h:453
msgid "Now we need to increase the separation where the tracks cross.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:454
-msgid "The two Elevations you see here are Computed Elevations which means XTrackCAD dynamically computes the Elevation based on the Elevations of connecting tracks.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:454
+msgid ""
+"The two Elevations you see here are Computed Elevations which means "
+"XTrackCAD dynamically computes the Elevation based on the Elevations of "
+"connecting tracks.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:455
-msgid "First make the lower End-Point a Defined Elevation point using Shift-Right-Click and the Profile Options menu. You will see the End-Point marked by a Gold dot and a new line is added to the Profile dialog.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:455
+msgid ""
+"First make the lower End-Point a Defined Elevation point using Shift-Right-"
+"Click and the Profile Options menu. You will see the End-Point marked by a "
+"Gold dot and a new line is added to the Profile dialog.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:456
+#: ../../../../build/work/app/i18n/custmsg.h:456
msgid "Now, drag the point on the Profile Dialog to change the Elevation.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:457
-msgid "Note the grade on each side of the point will be displayed at the bottom of the Profile dialog.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:457
+msgid ""
+"Note the grade on each side of the point will be displayed at the bottom of "
+"the Profile dialog.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:458
-msgid "After we release the Profile is updated to show the new Elevation and Grade.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:458
+msgid ""
+"After we release the Profile is updated to show the new Elevation and "
+"Grade.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:459
+#: ../../../../build/work/app/i18n/custmsg.h:459
msgid "The <Rescale> command will change the size of the selected objects.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:460
+#: ../../../../build/work/app/i18n/custmsg.h:460
msgid "First we will try rescaling by ratio.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:461
+#: ../../../../build/work/app/i18n/custmsg.h:461
msgid "We are going to make everything 150% bigger.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:462
+#: ../../../../build/work/app/i18n/custmsg.h:462
msgid "Note the track gauge did not change.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:463
+#: ../../../../build/work/app/i18n/custmsg.h:463
msgid "Let's try that again.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:464
+#: ../../../../build/work/app/i18n/custmsg.h:464
msgid "Now we are going to convert from one scale to another.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:465
+#: ../../../../build/work/app/i18n/custmsg.h:465
msgid "We will convert everything from N scale to HO scale...\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:466
+#: ../../../../build/work/app/i18n/custmsg.h:466
msgid "and change the track gauge as well.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:467
+#: ../../../../build/work/app/i18n/custmsg.h:467
msgid "Note that the Title of the turnout did not change.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:468
-msgid "The <Rotate> command will pivot the Selected objects. First Click on the pivot point and then drag to Rotate the objects.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:468
+msgid ""
+"The <Rotate> command will pivot the Selected objects. First Click on the "
+"pivot point and then drag to Rotate the objects.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:469
-msgid "In this example we will rotate the selected structure about it's center.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:469
+msgid ""
+"In this example we will rotate the selected structure about it's center.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:470
-msgid "The <Rotate> command will restrict the rotation to increments of 15° if you hold down the Control key.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:470
+msgid ""
+"The <Rotate> command will restrict the rotation to increments of 15° if you "
+"hold down the Control key.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:471
-msgid "Shift-Right-Click will display a popup-menu that you can use to rotate by fixed amount (15°, 30°, 45°, 90° or 180°). The demonstration cannot show the popup-menu but it can show the effects.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:471
+msgid ""
+"Shift-Right-Click will display a popup-menu that you can use to rotate by "
+"fixed amount (15°, 30°, 45°, 90° or 180°). The demonstration cannot show "
+"the popup-menu but it can show the effects.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:472
+#: ../../../../build/work/app/i18n/custmsg.h:472
msgid "Here we will rotate by 90° clockwise (CW).\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:473
-msgid "Another option of the <Rotate> command popup-menu is to Align the Selected object with some other object.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:473
+msgid ""
+"Another option of the <Rotate> command popup-menu is to Align the Selected "
+"object with some other object.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:474
-msgid "First we will click on one line of the Selected object. The angle of this part of the object will be Aligned.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:474
+msgid ""
+"First we will click on one line of the Selected object. The angle of this "
+"part of the object will be Aligned.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:475
-msgid "Next, we click on an Unselected object. The Selected structure will be rotated so that the line we clicked on will be parallel to the straight track.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:475
+msgid ""
+"Next, we click on an Unselected object. The Selected structure will be "
+"rotated so that the line we clicked on will be parallel to the straight "
+"track.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:476
-msgid "If we drag the mouse across the track, we can flip the structure by 180°. This is similar to how we place turnouts.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:476
+msgid ""
+"If we drag the mouse across the track, we can flip the structure by 180°. "
+"This is similar to how we place turnouts.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:477
-msgid "We can also align to curved shapes. The Selected object will be rotated to be parallel to the curve under the cursor.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:477
+msgid ""
+"We can also align to curved shapes. The Selected object will be rotated to "
+"be parallel to the curve under the cursor.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:478
-msgid "As we drag along the curved track the Selected object rotates to follow the curve.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:478
+msgid ""
+"As we drag along the curved track the Selected object rotates to follow the "
+"curve.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:479
+#: ../../../../build/work/app/i18n/custmsg.h:479
msgid "Again, if we drag across the track we can flip the stucture.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:480
+#: ../../../../build/work/app/i18n/custmsg.h:480
msgid "We can also Align to another Structure or any object.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:481
-msgid "The <Ruler> command draws a Ruler on the layout you can use to measure distances.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:481
+msgid ""
+"The <Ruler> command draws a Ruler on the layout you can use to measure "
+"distances.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:482
+#: ../../../../build/work/app/i18n/custmsg.h:482
msgid "If you press the <Ruler> command again the Ruler is removed.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:483
+#: ../../../../build/work/app/i18n/custmsg.h:483
msgid "But you can place it somewhere else.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:484
+#: ../../../../build/work/app/i18n/custmsg.h:484
msgid "The <Select> command is used to select tracks.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:485
+#: ../../../../build/work/app/i18n/custmsg.h:485
msgid "Selected tracks can be moved or rotated during the <Select> command.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:486
+#: ../../../../build/work/app/i18n/custmsg.h:486
msgid "Selected tracks can also be deleted, hidden, listed and exported.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:487
+#: ../../../../build/work/app/i18n/custmsg.h:487
msgid "A single Left-Click selects tracks.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:488
+#: ../../../../build/work/app/i18n/custmsg.h:488
msgid "Selecting a selected track de-selects it.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:489
-msgid "Shift-Left-Click on a track will select all unselected tracks connected to the track. Selection stops at a previously selected track.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:489
+msgid ""
+"Shift-Left-Click on a track will select all unselected tracks connected to "
+"the track. Selection stops at a previously selected track.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:490
+#: ../../../../build/work/app/i18n/custmsg.h:490
msgid "Be careful with this because its easy to select all tracks this way.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:491
+#: ../../../../build/work/app/i18n/custmsg.h:491
msgid "The <esc> key will deselect all objects.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:492
+#: ../../../../build/work/app/i18n/custmsg.h:492
msgid "Left-Drag is used to select all objects within an area.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:493
+#: ../../../../build/work/app/i18n/custmsg.h:493
msgid "And Right-Drag de-selects all tracks within an area.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:494
+#: ../../../../build/work/app/i18n/custmsg.h:494
msgid "Shift-Left-Drag is used to move selected tracks.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:495
-msgid "When you move selected tracks that are connected to unselected tracks, the tracks will be disconnected. These points are marked by a Red cross on the layout.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:495
+msgid ""
+"When you move selected tracks that are connected to unselected tracks, the "
+"tracks will be disconnected. These points are marked by a Red cross on the "
+"layout.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:496
-msgid "Drawing the tracks while moving can be very time-consuming. We had just used the \"Normal\" method of drawing tracks.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:496
+msgid ""
+"Drawing the tracks while moving can be very time-consuming. We had just "
+"used the \"Normal\" method of drawing tracks.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:497
-msgid "The Command Options dialog (from the Options menu) contains a Radio button group which you can use to pick the drawing method.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:497
+msgid ""
+"The Command Options dialog (from the Options menu) contains a Radio button "
+"group which you can use to pick the drawing method.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:498
-msgid "You can also popup the Command Options Menu by pressing Shift-Right-Click which includes options for setting the drawing method. These options are also available for the Move and Rotate Command Options Menu.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:498
+msgid ""
+"You can also popup the Command Options Menu by pressing Shift-Right-Click "
+"which includes options for setting the drawing method. These options are "
+"also available for the Move and Rotate Command Options Menu.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:499
-msgid "The next method is \"Simple\" draws. Here tracks are drawn using one line, no End-Points are drawn, lines are not drawn and structures are drawn using a box outline.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:499
+msgid ""
+"The next method is \"Simple\" draws. Here tracks are drawn using one line, "
+"no End-Points are drawn, lines are not drawn and structures are drawn using "
+"a box outline.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:500
-msgid "Note: you can move the Command Options dialog if it obscures the main window.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:500
+msgid ""
+"Note: you can move the Command Options dialog if it obscures the main "
+"window.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:501
-msgid "The next method is to just draw the End-Points of the selected tracks.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:501
+msgid ""
+"The next method is to just draw the End-Points of the selected tracks.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:502
-msgid "Unconnected End-Points are indicated by Red crosses, and connected End-Points are indicated by Red lines.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:502
+msgid ""
+"Unconnected End-Points are indicated by Red crosses, and connected End-"
+"Points are indicated by Red lines.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:503
+#: ../../../../build/work/app/i18n/custmsg.h:503
msgid "Now we will go back to using the Normal method again.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:504
-msgid "Shift-Right-Drag rotates the selected tracks about the pivot point (which is where you started the drag)\n"
+#: ../../../../build/work/app/i18n/custmsg.h:504
+msgid ""
+"Shift-Right-Drag rotates the selected tracks about the pivot point (which is "
+"where you started the drag)\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:505
-msgid "Next we select the <Join Tracks> command. You can use Shift-Left-Click to move an End-Point of a selected track to join with an unselected track.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:505
+msgid ""
+"Next we select the <Join Tracks> command. You can use Shift-Left-Click to "
+"move an End-Point of a selected track to join with an unselected track.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:506
-msgid "Note: because of differing display resolutions the next mouse click may not be positioned correctly in this demo and the Move-To-Join operation may not be demonstrated.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:506
+msgid ""
+"Note: because of differing display resolutions the next mouse click may not "
+"be positioned correctly in this demo and the Move-To-Join operation may not "
+"be demonstrated.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:507
+#: ../../../../build/work/app/i18n/custmsg.h:507
msgid "The <Split> command is used to split and disconnect tracks.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:508
+#: ../../../../build/work/app/i18n/custmsg.h:508
msgid "Simply select the spot on the track you want to split.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:509
+#: ../../../../build/work/app/i18n/custmsg.h:509
msgid "You cannot split turnouts (unless you hold down the Shift key).\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:510
-msgid "If you split at spot that is already an End-Point between two tracks, or split twice at the same spot, the track is disconnected.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:510
+msgid ""
+"If you split at spot that is already an End-Point between two tracks, or "
+"split twice at the same spot, the track is disconnected.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:511
+#: ../../../../build/work/app/i18n/custmsg.h:511
msgid "The <Tunnel> command marks selected tracks as hidden.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:512
-msgid "A tunnel portal is drawn at the boundary between hidden and normal track.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:512
+msgid ""
+"A tunnel portal is drawn at the boundary between hidden and normal track.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:513
-msgid "How the hidden tracks are drawn (solid, dashed or invisible) is controlled by the Draw EndPts radio button group on the Setup dialog.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:513
+msgid ""
+"How the hidden tracks are drawn (solid, dashed or invisible) is controlled "
+"by the Draw EndPts radio button group on the Setup dialog.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:514
-msgid "To 'un-hide' a track just Select it again and click the Tunnel button.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:514
+msgid ""
+"To 'un-hide' a track just Select it again and click the Tunnel button.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:515
-msgid "Straight tracks are created by selecting the first End-Point of the track.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:515
+msgid ""
+"Straight tracks are created by selecting the first End-Point of the track.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:516
+#: ../../../../build/work/app/i18n/custmsg.h:516
msgid "Then the other End-Point is dragged to its final postion.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:517
+#: ../../../../build/work/app/i18n/custmsg.h:517
msgid "The left mouse button is released at the final end postion.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:518
-msgid "Table Edges are used to mark the edges of the layout, either for aisles or room walls.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:518
+msgid ""
+"Table Edges are used to mark the edges of the layout, either for aisles or "
+"room walls.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:519
+#: ../../../../build/work/app/i18n/custmsg.h:519
msgid "A Table Edge is attracted to the ends of other Table Edges.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:520
+#: ../../../../build/work/app/i18n/custmsg.h:520
msgid "Table Edges can be modified by dragging on their ends.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:521
-msgid "If you hold down the Control key while dragging then the Table Edge will be attracted to other objects.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:521
+msgid ""
+"If you hold down the Control key while dragging then the Table Edge will be "
+"attracted to other objects.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:522
-msgid "These examples shows some of the various Turnout Designer windows. Each window defines a different type of turnout.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:522
+msgid ""
+"These examples shows some of the various Turnout Designer windows. Each "
+"window defines a different type of turnout.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:523
-msgid "In each window there are a number of parameters to fill in and one or two description lines.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:523
+msgid ""
+"In each window there are a number of parameters to fill in and one or two "
+"description lines.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:524
+#: ../../../../build/work/app/i18n/custmsg.h:524
msgid "You can print the design to check the dimensions before saving them.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:525
+#: ../../../../build/work/app/i18n/custmsg.h:525
msgid "This is the regular turnout.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:526
-msgid "In addition to the dimensions, you also enter the Title (Manufacturer, Description and Part Number). For Turnouts with Left and Right hand versions there are separate Descriptions and Part Numbers.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:526
+msgid ""
+"In addition to the dimensions, you also enter the Title (Manufacturer, "
+"Description and Part Number). For Turnouts with Left and Right hand "
+"versions there are separate Descriptions and Part Numbers.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:527
-msgid "Some Turnouts and Sectional track are pre-mounted on roadbed. For these parts you can specify the width of the roadbed, the thickness of the lines drawn for the edge of the roadbed and the color.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:527
+msgid ""
+"Some Turnouts and Sectional track are pre-mounted on roadbed. For these "
+"parts you can specify the width of the roadbed, the thickness of the lines "
+"drawn for the edge of the roadbed and the color.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:528
+#: ../../../../build/work/app/i18n/custmsg.h:528
msgid "The double slip switch is described by only a few parameters.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:529
+#: ../../../../build/work/app/i18n/custmsg.h:529
msgid "The double crossover only needs length and track separation.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:530
-msgid "Pressing the turnout button displays the Turnout Selection window to let you choose a turnout to place.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:530
+msgid ""
+"Pressing the turnout button displays the Turnout Selection window to let you "
+"choose a turnout to place.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:531
-msgid "Note that once you start to place the turnout on the Main window the Turnout Selection window disappears. This feature is enabled by the Hide toggle button on the dialog.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:531
+msgid ""
+"Note that once you start to place the turnout on the Main window the Turnout "
+"Selection window disappears. This feature is enabled by the Hide toggle "
+"button on the dialog.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:532
-msgid "You can place the turnout on a arbitrary position on the layout. Left-drag the turnout into place...\n"
+#: ../../../../build/work/app/i18n/custmsg.h:532
+msgid ""
+"You can place the turnout on a arbitrary position on the layout. Left-drag "
+"the turnout into place...\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:533
+#: ../../../../build/work/app/i18n/custmsg.h:533
msgid "Then you can rotate the turnout by Right dragging.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:534
-msgid "You can also use Shift-Right-Click to display a popup menu that lets you rotate the Turnout by specific angles.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:534
+msgid ""
+"You can also use Shift-Right-Click to display a popup menu that lets you "
+"rotate the Turnout by specific angles.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:535
-msgid "When you are satisfied with the position and orientation of the turnout press Space bar or the Return key on the keyboard to finish placing the turnout.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:535
+msgid ""
+"When you are satisfied with the position and orientation of the turnout "
+"press Space bar or the Return key on the keyboard to finish placing the "
+"turnout.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:536
-msgid "Pressing the Ok button on the Turnout dialog will end the <Turnout> command as well as placing the turnout.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:536
+msgid ""
+"Pressing the Ok button on the Turnout dialog will end the <Turnout> command "
+"as well as placing the turnout.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:537
-msgid "If you drag along an existing track the new turnout will be attached to the track.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:537
+msgid ""
+"If you drag along an existing track the new turnout will be attached to the "
+"track.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:538
-msgid "Note that the status line tells you the number of End-Points that would be connected and, the maximum displacement of the End-Points. This will be useful when building complex track, as we will see later.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:538
+msgid ""
+"Note that the status line tells you the number of End-Points that would be "
+"connected and, the maximum displacement of the End-Points. This will be "
+"useful when building complex track, as we will see later.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:539
-msgid "By moving the cursor from one side to the other of the track centerline you can flip the turnout 180°.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:539
+msgid ""
+"By moving the cursor from one side to the other of the track centerline you "
+"can flip the turnout 180°.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:540
-msgid "If you try to drag across another turnout the new turnout will placed at the nearest End-Point of the existing turnout.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:540
+msgid ""
+"If you try to drag across another turnout the new turnout will placed at the "
+"nearest End-Point of the existing turnout.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:541
-msgid "When you press Space or Return while the turnout is on a track, the track will be split and the new turnout attached automatically.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:541
+msgid ""
+"When you press Space or Return while the turnout is on a track, the track "
+"will be split and the new turnout attached automatically.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:542
+#: ../../../../build/work/app/i18n/custmsg.h:542
msgid "Pressing Close ends the <Turnout> command.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:543
+#: ../../../../build/work/app/i18n/custmsg.h:543
msgid "Sometimes it's useful to modify turnouts triming one of the ends.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:544
+#: ../../../../build/work/app/i18n/custmsg.h:544
msgid "We use the <Split> command for this.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:545
+#: ../../../../build/work/app/i18n/custmsg.h:545
msgid "Normally, if we try to Split a turnout we get an error message.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:546
+#: ../../../../build/work/app/i18n/custmsg.h:546
msgid "Hold down the Shift key and try again.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:547
-msgid "The end of the turnout has been replaced by a piece of straight flex track which we can modify.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:547
+msgid ""
+"The end of the turnout has been replaced by a piece of straight flex track "
+"which we can modify.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:548
+#: ../../../../build/work/app/i18n/custmsg.h:548
msgid "We can try splitting the diverging leg.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:549
-msgid "Notice that the tail of the diverging leg has been changed to a curved track...\n"
+#: ../../../../build/work/app/i18n/custmsg.h:549
+msgid ""
+"Notice that the tail of the diverging leg has been changed to a curved "
+"track...\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:550
+#: ../../../../build/work/app/i18n/custmsg.h:550
msgid "and a straight track.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:551
-msgid "This example show how to layout a yard using the <Turnout> and <Parallel> commands.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:551
+msgid ""
+"This example show how to layout a yard using the <Turnout> and <Parallel> "
+"commands.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:552
-msgid "You can resize and move the Turnout Selection dialog if it obscures the other windows.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:552
+msgid ""
+"You can resize and move the Turnout Selection dialog if it obscures the "
+"other windows.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:553
+#: ../../../../build/work/app/i18n/custmsg.h:553
msgid "First we place a turnout on the main line.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:554
+#: ../../../../build/work/app/i18n/custmsg.h:554
msgid "Next extend the turnout with the <Modify> command.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:555
-msgid "Now create a track parallel to the main line. Make sure the separation is reasonable for your scale.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:555
+msgid ""
+"Now create a track parallel to the main line. Make sure the separation is "
+"reasonable for your scale.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:556
+#: ../../../../build/work/app/i18n/custmsg.h:556
msgid "And place a turnout to connect the new track.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:557
+#: ../../../../build/work/app/i18n/custmsg.h:557
msgid "We'll zoom in here to see what's going on.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:558
-msgid "Notice how we control which way the turnout is facing by moving the mouse across the center line of the track.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:558
+msgid ""
+"Notice how we control which way the turnout is facing by moving the mouse "
+"across the center line of the track.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:559
-msgid "The Status bar displays the number of auto-connections that will be made and the maximum offset.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:559
+msgid ""
+"The Status bar displays the number of auto-connections that will be made and "
+"the maximum offset.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:560
-msgid "XTrackCAD adjusts the turnout position for the best fit to minimize any connection offset\n"
+#: ../../../../build/work/app/i18n/custmsg.h:560
+msgid ""
+"XTrackCAD adjusts the turnout position for the best fit to minimize any "
+"connection offset\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:561
+#: ../../../../build/work/app/i18n/custmsg.h:561
msgid "Note that placing the turnout splits the parallel track.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:562
+#: ../../../../build/work/app/i18n/custmsg.h:562
msgid "We have to delete the leftover piece by Selecting and Deleting it.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:563
+#: ../../../../build/work/app/i18n/custmsg.h:563
msgid "Repeat the process for the other tracks in the yard.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:564
+#: ../../../../build/work/app/i18n/custmsg.h:564
msgid "For the last track we will join with a curve instead of a turnout.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:565
+#: ../../../../build/work/app/i18n/custmsg.h:565
msgid "We can indicate the mainline by making the rails wider.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:566
+#: ../../../../build/work/app/i18n/custmsg.h:566
msgid "First we select the mainline tracks...\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:567
+#: ../../../../build/work/app/i18n/custmsg.h:567
msgid "And then select Medium Tracks from the Edit menu.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:568
+#: ../../../../build/work/app/i18n/custmsg.h:568
msgid "We can make the rail thicker by selecting Thick Tracks.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:569
-msgid "Turntables are created by specifying the radius in a dialog box on the Status Bar. The radius in the dialog can be changed before proceeding.\n"
+#: ../../../../build/work/app/i18n/custmsg.h:569
+msgid ""
+"Turntables are created by specifying the radius in a dialog box on the "
+"Status Bar. The radius in the dialog can be changed before proceeding.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:570
+#: ../../../../build/work/app/i18n/custmsg.h:570
msgid "Then the turntable is dragged to its final location.\n"
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:571
-msgid "XTrackCAD provides demonstrations on most of the program's features. The demos can be run by clicking on the Help menu on the Main window and then selecting Demos."
+#: ../../../../build/work/app/i18n/custmsg.h:571
+msgid ""
+"XTrackCAD provides demonstrations on most of the program's features. The "
+"demos can be run by clicking on the Help menu on the Main window and then "
+"selecting Demos."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:572
+#: ../../../../build/work/app/i18n/custmsg.h:572
msgid ""
-"The notation \"Menu|Item\" is used in the documentation (and the on-line demos and tips) to indicate the selection of a menu item.\n"
-"For example File|Open means to open the menu by clicking on File on the menu bar of the Main window and then selecting the Open item from that menu."
+"The notation \"Menu|Item\" is used in the documentation (and the on-line "
+"demos and tips) to indicate the selection of a menu item.\n"
+"For example File|Open means to open the menu by clicking on File on the menu "
+"bar of the Main window and then selecting the Open item from that menu."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:573
-msgid "A number of example layouts are provided. These files are located in the 'examples' directory where you installed XTrackCAD. The \"File|Open\" command will open that directory when first used."
+#: ../../../../build/work/app/i18n/custmsg.h:573
+msgid ""
+"A number of example layouts are provided. These files are located in the "
+"'examples' directory where you installed XTrackCAD. The \"File|Open\" "
+"command will open that directory when first used."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:574
-msgid "When installed, the program measures all units in inches. You can change this on the \"Options|Preferences\" dialog by changing the Units item to Metric instead of English."
+#: ../../../../build/work/app/i18n/custmsg.h:574
+msgid ""
+"When installed, the program measures all units in inches. You can change "
+"this on the \"Options|Preferences\" dialog by changing the Units item to "
+"Metric instead of English."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:575
-msgid "You can change the overall size of your layout on the \"Options|Layout\" dialog."
+#: ../../../../build/work/app/i18n/custmsg.h:575
+msgid ""
+"You can change the overall size of your layout on the \"Options|Layout\" "
+"dialog."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:576
-msgid "When installed, the default command is the Describe command. More experienced users will probably want to change this to the Select command. You can do this on the \"Options|Command Options\" dialog."
+#: ../../../../build/work/app/i18n/custmsg.h:576
+msgid ""
+"When installed, the default command is the Describe command. More "
+"experienced users will probably want to change this to the Select command. "
+"You can do this on the \"Options|Command Options\" dialog."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:577
-msgid "Set your modeling scale on the \"Options|Layout\" dialog. This controls the Turnouts and Structures that are available, Easement values and track gauge."
+#: ../../../../build/work/app/i18n/custmsg.h:577
+msgid ""
+"Set your modeling scale on the \"Options|Layout\" dialog. This controls the "
+"Turnouts and Structures that are available, Easement values and track gauge."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:578
-msgid "When Selecting tracks, the connection between Selected and Unselected tracks is marked by a Red X. This indicates points where the connection between tracks will be broken if you Move or Rotate the Selected tracks."
+#: ../../../../build/work/app/i18n/custmsg.h:578
+msgid ""
+"When Selecting tracks, the connection between Selected and Unselected tracks "
+"is marked by a Red X. This indicates points where the connection between "
+"tracks will be broken if you Move or Rotate the Selected tracks."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:579
+#: ../../../../build/work/app/i18n/custmsg.h:579
msgid ""
-"You can change orientation of the pages on the Print command by moving or rotating the Print Grid.\n"
+"You can change orientation of the pages on the Print command by moving or "
+"rotating the Print Grid.\n"
"Shift-Left-Drag moves the grid and Shift-Right-Drag rotates the grid."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:580
+#: ../../../../build/work/app/i18n/custmsg.h:580
msgid ""
"You can add track to any unconnected End-Point with the Modify command.\n"
-"Hold down the Shift key and click on the End-Point and drag away to create a new track segment attached to the End-Point.\n"
+"Hold down the Shift key and click on the End-Point and drag away to create a "
+"new track segment attached to the End-Point.\n"
"Repeat with the new End-Point to create flowing tracks."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:581
+#: ../../../../build/work/app/i18n/custmsg.h:581
msgid ""
"You can create Curved tracks in four ways by dragging from:\n"
" the 1st End-Point in the direction of the curve\n"
@@ -10248,397 +10996,824 @@ msgid ""
" the 1st to 2nd End-Point\n"
"Then drag on one of the Red arrows to create the final shape of the curve.\n"
"\n"
-"You can click on the small button to the left of the Curve command button to change the method."
+"You can click on the small button to the left of the Curve command button to "
+"change the method."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:582
+#: ../../../../build/work/app/i18n/custmsg.h:582
msgid ""
-"Track Circles provide a quick way to see what arrangement of tracks will fit in your layout spaces. Create Circles with your typical radius and place them in corners and other locations where your main-line will make changes of direction. This will give you an overall idea of how your layout will look.\n"
+"When creating a straight or a curved track by dragging from the 1st End "
+"Point, you can snap the new track to an existing open end point by holding "
+"down Shift while you click.\n"
+"The new track will be joined to the old when you create it."
+msgstr ""
+
+#: ../../../../build/work/app/i18n/custmsg.h:583
+msgid ""
+"Track Circles provide a quick way to see what arrangement of tracks will fit "
+"in your layout spaces. Create Circles with your typical radius and place "
+"them in corners and other locations where your main-line will make changes "
+"of direction. This will give you an overall idea of how your layout will "
+"look.\n"
"\n"
"You can create Circles by:\n"
" using a fixed radius\n"
" dragging from the Center to edge\n"
" dragging from an edge to the Center\n"
-"You can click on the small button to the left of the Circle command button to change the method."
+"You can click on the small button to the left of the Circle command button "
+"to change the method."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:583
+#: ../../../../build/work/app/i18n/custmsg.h:584
msgid ""
-"Easements (spiral transition curves) are used when track changes from straight to curved by gradually changing the radius. This improves operation and appearance.\n"
+"Easements (spiral transition curves) are used when track changes from "
+"straight to curved by gradually changing the radius. This improves "
+"operation and appearance.\n"
"Easements are created with Joining or Extending Tracks.\n"
"The Easement dialog is used to control easements."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:584
-msgid "\"Help|Recent Messages\" shows the last error and warning messages that were generated by the program. Also an explanation of each message is displayed."
+#: ../../../../build/work/app/i18n/custmsg.h:585
+msgid ""
+"\"Help|Recent Messages\" shows the last error and warning messages that were "
+"generated by the program. Also an explanation of each message is displayed."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:585
+#: ../../../../build/work/app/i18n/custmsg.h:586
msgid ""
-"When creating stall tracks for a turntable, you usually want the the stall tracks to be spaced evenly.\n"
-"The \"Turntable Angle\" item on \"Options|Command Options\" dialog can be used specify the minimum angle between stall tracks."
+"When creating stall tracks for a turntable, you usually want the the stall "
+"tracks to be spaced evenly.\n"
+"The \"Turntable Angle\" item on \"Options|Command Options\" dialog can be "
+"used specify the minimum angle between stall tracks."
msgstr ""
# Este texto não descreve com clareza onde se localiza o diretório de trabalho e nem onde copiar o arquivo file.xtc. Verificar também se o nome do arquivo destino está correto.
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:586
+#: ../../../../build/work/app/i18n/custmsg.h:587
msgid ""
-"XTrackCAD periodically saves the current layout in a check point file. The 'Check Point' item on the 'Options|Preferences' dialog controls how often the file is saved.\n"
-"You can recover your working file after a system crash by copying the checkpoint file (xtrkcad.ckp in the XTrackCAD Working directory) to file.xtc"
-msgstr ""
-"XTrackCAD salva periodicamente o layout em um arquivo temporário. O item \"Freqüência de salvamento automatico\" na caixa de diálogo \"Opções | Preferências\" controla a periodicidade na qual o arquivo é salvo.\n"
-"Você pode restaurar seu arquivo de trabalho após uma falha do sistema copiando o arquivo temporário (\"xtrkcad.ckp\" no diretório de trabalho do XTrackCAD) para \"file.xtc\"."
-
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:587
-msgid "The Parallel command is helpful to layout yards and sidings. If the Parallel track abuts with an existing track, it is automatically connected."
+"XTrackCAD periodically saves the current layout in a check point file. The "
+"'Check Point' item on the 'Options|Preferences' dialog controls how often "
+"the file is saved.\n"
+"You can recover your working file after a system crash by copying the "
+"checkpoint file (xtrkcad.ckp in the XTrackCAD Working directory) to file.xtc"
+msgstr ""
+"XTrackCAD salva periodicamente o layout em um arquivo temporário. O item "
+"\"Freqüência de salvamento automatico\" na caixa de diálogo \"Opções | "
+"Preferências\" controla a periodicidade na qual o arquivo é salvo.\n"
+"Você pode restaurar seu arquivo de trabalho após uma falha do sistema "
+"copiando o arquivo temporário (\"xtrkcad.ckp\" no diretório de trabalho do "
+"XTrackCAD) para \"file.xtc\"."
+
+#: ../../../../build/work/app/i18n/custmsg.h:588
+msgid ""
+"The Parallel command is helpful to layout yards and sidings. If the "
+"Parallel track abuts with an existing track, it is automatically connected."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:588
+#: ../../../../build/work/app/i18n/custmsg.h:589
msgid ""
-"You can use Shift-Drag in Select command to move and rotate selected tracks.\n"
+"You can use Shift-Drag in Select command to move and rotate selected "
+"tracks.\n"
"Shift-Left-Drag moves tracks and Shift-Right-Drag rotates them.\n"
"Control-Left-Drag can move labels."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:589
-msgid "You can move and rotate the Snap Grid to align with existing track or benchwork."
-msgstr "Você pode mover e rotacionar a grade para alinhar com uma linha existente ou a bancada."
+#: ../../../../build/work/app/i18n/custmsg.h:590
+msgid ""
+"You can move and rotate the Snap Grid to align with existing track or "
+"benchwork."
+msgstr ""
+"Você pode mover e rotacionar a grade para alinhar com uma linha existente ou "
+"a bancada."
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:590
+#: ../../../../build/work/app/i18n/custmsg.h:591
msgid ""
"Use the Parts List command to measure track length.\n"
-"Select the tracks you want to measure and then click on the Parts List button. The report will list the total of length of the selected flex-track. You will have to add in the length of any Turnouts."
+"Select the tracks you want to measure and then click on the Parts List "
+"button. The report will list the total of length of the selected flex-"
+"track. You will have to add in the length of any Turnouts."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:591
+#: ../../../../build/work/app/i18n/custmsg.h:592
msgid ""
-"The length of flex-track attached to each Turnout is displayed on layout near the end-points of the Turnouts.\n"
-"Make sure 'Lengths' option of the 'Label Enable' toggle button on the Display dialog is selected."
+"The length of flex-track attached to each Turnout is displayed on layout "
+"near the end-points of the Turnouts.\n"
+"Make sure 'Lengths' option of the 'Label Enable' toggle button on the "
+"Display dialog is selected."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:592
+#: ../../../../build/work/app/i18n/custmsg.h:593
msgid ""
-"The Profile command can be used to find the length of a continous section of track.\n"
-"Select the track at the beginning and end of the section. The total length of track will be displayed on the Profile window in the lower right corner.\n"
-"Note: the Profile selects the shortest path between the two selected tracks, which might not be the path you are interested in. In this case, select the first track and then select other tracks along the path."
+"The Profile command can be used to find the length of a continous section of "
+"track.\n"
+"Select the track at the beginning and end of the section. The total length "
+"of track will be displayed on the Profile window in the lower right corner.\n"
+"Note: the Profile selects the shortest path between the two selected tracks, "
+"which might not be the path you are interested in. In this case, select the "
+"first track and then select other tracks along the path."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:593
+#: ../../../../build/work/app/i18n/custmsg.h:594
msgid ""
-"Layers can be used to contain different groups of tracks or other features. You might use one layer for the main-line, another of staging tracks and another of benchwork.\n"
-"You can give each layer a name (by using the Layer dialog). This name will be displayed as the Balloon Help for the corresponding Layer button, if you have Balloon Help enabled on the Display dialog."
+"Layers can be used to contain different groups of tracks or other features. "
+"You might use one layer for the main-line, another of staging tracks and "
+"another of benchwork.\n"
+"You can give each layer a name (by using the Layer dialog). This name will "
+"be displayed as the Balloon Help for the corresponding Layer button, if you "
+"have Balloon Help enabled on the Display dialog."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:594
-msgid "You can remove groups of buttons or the Hot Bar from the Main window to give you more room if you are not using some features. Also, the number of Layer buttons displayed is controlled by the Layers dialog."
+#: ../../../../build/work/app/i18n/custmsg.h:595
+msgid ""
+"You can remove groups of buttons or the Hot Bar from the Main window to give "
+"you more room if you are not using some features. Also, the number of Layer "
+"buttons displayed is controlled by the Layers dialog."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:595
+#: ../../../../build/work/app/i18n/custmsg.h:596
msgid ""
-"The size of the Map window is controlled by the overall size of the room (specified on the Layout dialog) and the Map Scale (on the Display dialog). You can make the Map window larger (or smaller) by decreasing (or increasing) the Map Scale.\n"
+"The size of the Map window is controlled by the overall size of the room "
+"(specified on the Layout dialog) and the Map Scale (on the Display dialog). "
+"You can make the Map window larger (or smaller) by decreasing (or "
+"increasing) the Map Scale.\n"
"XTrackCAD will prevent you from making the Map window too small or too large."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:596
-msgid "You can unload parameter files you are not using by the Parameter Files dialog. This removes unused Turnout and Structure definitions from the Hot Bar and makes the program start faster."
+#: ../../../../build/work/app/i18n/custmsg.h:597
+msgid ""
+"You can unload parameter files you are not using by the Parameter Files "
+"dialog. This removes unused Turnout and Structure definitions from the Hot "
+"Bar and makes the program start faster."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:597
-msgid "Right-Click on the Main window displays a menu list of commands as an alternative to pressing the buttons on the tool bar or using the menu accelerator keys."
+#: ../../../../build/work/app/i18n/custmsg.h:598
+msgid ""
+"Right-Click on the Main window displays a menu list of commands as an "
+"alternative to pressing the buttons on the tool bar or using the menu "
+"accelerator keys."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:598
-msgid "Holding down the Shift key while you Right-Click will display options for the current command (if any)."
+#: ../../../../build/work/app/i18n/custmsg.h:599
+msgid ""
+"Holding down the Shift key while you Right-Click will display options for "
+"the current command (if any)."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:599
+#: ../../../../build/work/app/i18n/custmsg.h:600
msgid ""
-"Right-Click on the Hot Bar displays a menu of the different groups of objects which you can use to jump to the group you are interested in.\n"
-"Pressing a numeric key (1-9 and 0) moves the Hot Bar to corresponding position (1 is the start, 5 is half way, 0 is the end)."
+"Right-Click on the Hot Bar displays a menu of the different groups of "
+"objects which you can use to jump to the group you are interested in.\n"
+"Pressing a numeric key (1-9 and 0) moves the Hot Bar to corresponding "
+"position (1 is the start, 5 is half way, 0 is the end)."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:600
+#: ../../../../build/work/app/i18n/custmsg.h:601
msgid ""
"Right-Drag on the Map window sets the origin and scale of the Main window.\n"
-"The Main window will be centered on the spot where you started the Draw and how far you Drag will control how large an area you can see on the Main window."
+"The Main window will be centered on the spot where you started the Draw and "
+"how far you Drag will control how large an area you can see on the Main "
+"window."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:601
-msgid "To refresh the Main window, press Control-L (hold down the 'Ctrl' key and then press the 'l' key)."
+#: ../../../../build/work/app/i18n/custmsg.h:602
+msgid ""
+"To refresh the Main window, press Control-L (hold down the 'Ctrl' key and "
+"then press the 'l' key)."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:602
-msgid "The File menu contains a list of the last 5 layouts you were working on."
+#: ../../../../build/work/app/i18n/custmsg.h:603
+msgid ""
+"The File menu contains a list of the last 5 layouts you were working on."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:603
-msgid "The Print command can optionally print lines representing the roadbed for all tracks. This is useful when printing full size (1:1) for cutting roadbed."
+#: ../../../../build/work/app/i18n/custmsg.h:604
+msgid ""
+"The Print command can optionally print lines representing the roadbed for "
+"all tracks. This is useful when printing full size (1:1) for cutting "
+"roadbed."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:604
-msgid "Pressing the 'Esc' key cancels the current command and invokes the default command, (which is either Describe or Select)."
+#: ../../../../build/work/app/i18n/custmsg.h:605
+msgid ""
+"Pressing the 'Esc' key cancels the current command and invokes the default "
+"command, (which is either Describe or Select)."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:605
+#: ../../../../build/work/app/i18n/custmsg.h:606
msgid ""
-"When moving or rotating tracks on slow machines or with a large number of tracks, you can improve performance by changing the way tracks are drawn while being moved.\n"
-"Shift-Right click will display a menu containing options to draw tracks normally, as simple lines or just draw end-points."
+"When moving or rotating tracks on slow machines or with a large number of "
+"tracks, you can improve performance by changing the way tracks are drawn "
+"while being moved.\n"
+"Shift-Right click will display a menu containing options to draw tracks "
+"normally, as simple lines or just draw end-points."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:606
-msgid "The colors of different parts of the Main window can be changed with the Colors dialog. In particular, the Snap Grid color can be changed to make it more visible when printed."
-msgstr "As cores dos diferentes objetos da janela principal podem ser alteradas através da caixa de diálogo de cores. Particularmente, a cor da grade pode ser mudada para ficar melhor visível quando impressa."
+#: ../../../../build/work/app/i18n/custmsg.h:607
+msgid ""
+"The colors of different parts of the Main window can be changed with the "
+"Colors dialog. In particular, the Snap Grid color can be changed to make it "
+"more visible when printed."
+msgstr ""
+"As cores dos diferentes objetos da janela principal podem ser alteradas "
+"através da caixa de diálogo de cores. Particularmente, a cor da grade pode "
+"ser mudada para ficar melhor visível quando impressa."
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:607
+#: ../../../../build/work/app/i18n/custmsg.h:608
msgid ""
-"By default objects are drawn in their normal colors. Tracks will be drawn in Black. Objects can also be drawn in the color according to their Layer. The color of a Layer is displayed on the corresponding Layer button.\n"
-"The Display dialog 'Color Layers' item has separate toggles for Tracks and non-Tracks."
+"By default objects are drawn in their normal colors. Tracks will be drawn "
+"in Black. Objects can also be drawn in the color according to their Layer. "
+"The color of a Layer is displayed on the corresponding Layer button.\n"
+"The Display dialog 'Color Layers' item has separate toggles for Tracks and "
+"non-Tracks."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:608
-msgid "Each Layer can be drawn or hidden by the 'Visible' toggle on the Layers dialog. "
+#: ../../../../build/work/app/i18n/custmsg.h:609
+msgid ""
+"Each Layer can be drawn or hidden by the 'Visible' toggle on the Layers "
+"dialog. "
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:609
+#: ../../../../build/work/app/i18n/custmsg.h:610
msgid ""
-"Short cut Layer buttons can also be displayed on the tool bar for up to the first 20 layers.\n"
+"Short cut Layer buttons can also be displayed on the tool bar for up to the "
+"first 20 layers.\n"
"This buttons allow to Show or Hide the layers."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:610
+#: ../../../../build/work/app/i18n/custmsg.h:611
msgid "The name of the Layer is the Balloon Help for the Layer button."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:611
-msgid "The playback speed of the Demos can be changed by using Speed drop down list on the Demo window."
+#: ../../../../build/work/app/i18n/custmsg.h:612
+msgid ""
+"The playback speed of the Demos can be changed by using Speed drop down list "
+"on the Demo window."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:612
-msgid "Many of the commands and dialogs can be invoked by special key combinations called Menu-Accelerators. These are listed on the Menus next to the command name. For example, Control-P will invoke the Print command."
+#: ../../../../build/work/app/i18n/custmsg.h:613
+msgid ""
+"Many of the commands and dialogs can be invoked by special key combinations "
+"called Menu-Accelerators. These are listed on the Menus next to the command "
+"name. For example, Control-P will invoke the Print command."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:613
+#: ../../../../build/work/app/i18n/custmsg.h:614
msgid ""
-"The Connect command is used to join Sectional track pieces that don't quite fit together.\n"
-"This command works by adding small gaps between other tracks to move the selected End-Points closer together."
+"The Connect command is used to join Sectional track pieces that don't quite "
+"fit together.\n"
+"This command works by adding small gaps between other tracks to move the "
+"selected End-Points closer together."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:614
+#: ../../../../build/work/app/i18n/custmsg.h:615
msgid ""
-"To copy a group of objects: Select the objects, press Control-C (or select Copy from the Edit menu), press Control-V (or select Paste from the Edit menu).\n"
-"The selected tracks will be copied to the layout and you can Move or Rotate them into position."
+"To copy a group of objects: Select the objects, press Control-C (or select "
+"Copy from the Edit menu), press Control-V (or select Paste from the Edit "
+"menu).\n"
+"The selected tracks will be copied to the layout and you can Move or Rotate "
+"them into position."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:615
-msgid "In the Rotate (or Select) commands you can press Shift-Right-Click to display the Rotate menu which allows you to rotate the selected objects by a specific angle."
+#: ../../../../build/work/app/i18n/custmsg.h:616
+msgid ""
+"In the Rotate (or Select) commands you can press Shift-Right-Click to "
+"display the Rotate menu which allows you to rotate the selected objects by a "
+"specific angle."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:616
-msgid "You can use the Move-To-Join option of the Join command (hold down the Shift key) to move a group of Selected tracks to attach with some unselected End-Point."
+#: ../../../../build/work/app/i18n/custmsg.h:617
+msgid ""
+"You can use the Move-To-Join option of the Join command (hold down the Shift "
+"key) to move a group of Selected tracks to attach with some unselected End-"
+"Point."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:617
+#: ../../../../build/work/app/i18n/custmsg.h:618
msgid ""
-"The Price List dialog (on the File Menu) is used to specify the prices of each type of Turnout, Sectional Track and Structure. Also, the length and price of flex-track pieces can be specified for each scale.\n"
-"This values will be used on the Parts List report to generate total cost of the selected objects."
+"The Price List dialog (on the File Menu) is used to specify the prices of "
+"each type of Turnout, Sectional Track and Structure. Also, the length and "
+"price of flex-track pieces can be specified for each scale.\n"
+"This values will be used on the Parts List report to generate total cost of "
+"the selected objects."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:618
+#: ../../../../build/work/app/i18n/custmsg.h:619
msgid ""
-"Areas of water can represented by a Polygon (use the Draw command) of the appropiate color.\n"
-"By using the Modify command, you can move, add or remove corners of the Polygon to fit the shape of the water.\n"
-"You use the Below command to place the Polygon below (or behind) other objects.\n"
+"Areas of water can represented by a Polygon (use the Draw command) of the "
+"appropiate color.\n"
+"By using the Modify command, you can move, add or remove corners of the "
+"Polygon to fit the shape of the water.\n"
+"You use the Below command to place the Polygon below (or behind) other "
+"objects.\n"
"\n"
"You can also use a Polygon to represent aisles. "
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:619
+#: ../../../../build/work/app/i18n/custmsg.h:620
msgid ""
-"When you create Benchwork you can move it below other objects by Selecting the Benchwork and use the Below command.\n"
+"When you create Benchwork you can move it below other objects by Selecting "
+"the Benchwork and use the Below command.\n"
"Also, put Benchwork in a separate Layer so you can hide it if desired."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:620
-msgid "You can enter Distances and Lengths using any format regardless of the Length Format on the Preferences dialog."
+#: ../../../../build/work/app/i18n/custmsg.h:621
+msgid ""
+"You can enter Distances and Lengths using any format regardless of the "
+"Length Format on the Preferences dialog."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:621
-msgid "You can enter Metric values when English is the default Units and vice versa."
+#: ../../../../build/work/app/i18n/custmsg.h:622
+msgid ""
+"You can enter Metric values when English is the default Units and vice versa."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:622
-msgid "When entering Distances and Lengths you can press the '=' key to redisplay the value in the default format."
+#: ../../../../build/work/app/i18n/custmsg.h:623
+msgid ""
+"When entering Distances and Lengths you can press the '=' key to redisplay "
+"the value in the default format."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:623
-msgid "You can also press the 's' key to convert a Prototype measurement to a Scale measurement y dividing by the ratio for the current scale."
+#: ../../../../build/work/app/i18n/custmsg.h:624
+msgid ""
+"You can also press the 's' key to convert a Prototype measurement to a Scale "
+"measurement y dividing by the ratio for the current scale."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:624
-msgid "The 'p' key will convert a Scale measurement to a Prototype measurement."
+#: ../../../../build/work/app/i18n/custmsg.h:625
+msgid ""
+"The 'p' key will convert a Scale measurement to a Prototype measurement."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:625
-msgid "You can place cars on the layout using the Train Simulation command to check clearance points, track to track separation and coupling."
+#: ../../../../build/work/app/i18n/custmsg.h:626
+msgid ""
+"You can place cars on the layout using the Train Simulation command to check "
+"clearance points, track to track separation and coupling."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:626
-msgid "Use the MoveTo button on the Custom Management dialog to move your custom Turnout, Structure and Car definitions to a .XTP parameter file."
+#: ../../../../build/work/app/i18n/custmsg.h:627
+msgid ""
+"Use the MoveTo button on the Custom Management dialog to move your custom "
+"Turnout, Structure and Car definitions to a .XTP parameter file."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:627
-msgid "If you are printing multiple pages on a continuous feed printer (such a Dot Matrix) you can change the Page Order if necessary to print pages out in proper order."
+#: ../../../../build/work/app/i18n/custmsg.h:628
+msgid ""
+"If you are printing multiple pages on a continuous feed printer (such a Dot "
+"Matrix) you can change the Page Order if necessary to print pages out in "
+"proper order."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:628
-msgid "On the Car Item and Car Part dialogs, you can enter custom values for Manufacturer, Part and Road by typing the new value directly into the Drop Down List."
+#: ../../../../build/work/app/i18n/custmsg.h:629
+msgid ""
+"On the Car Item and Car Part dialogs, you can enter custom values for "
+"Manufacturer, Part and Road by typing the new value directly into the Drop "
+"Down List."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:629
+#: ../../../../build/work/app/i18n/custmsg.h:630
msgid ""
-"On the Car Item dialog, you can change the Road, Number, Color and other values for a Car. This is useful if you repaint or renumber a car. \n"
-"You can also change the Coupler Mounting and Coupler Length if you change the couplers."
+"On the Car Item dialog, you can change the Road, Number, Color and other "
+"values for a Car. This is useful if you repaint or renumber a car. \n"
+"You can also change the Coupler Mounting and Coupler Length if you change "
+"the couplers."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:630
-msgid "You can Export your Car Inventory to a file in Comma-Separated-Value format which can be read by most spread-sheet programs."
+#: ../../../../build/work/app/i18n/custmsg.h:631
+msgid ""
+"You can Export your Car Inventory to a file in Comma-Separated-Value format "
+"which can be read by most spread-sheet programs."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:631
+#: ../../../../build/work/app/i18n/custmsg.h:632
msgid "Use the Train Odometer to measure distances along the track."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:632
+#: ../../../../build/work/app/i18n/custmsg.h:633
msgid ""
-"Holding down the Shift key when clicking the Zoom In or Zoom Out button will zoom to a programmed Drawing Scale. \n"
-"Holding down the Shift and Control keys when clicking a Zoom button will set it's program Zoom to the current Drawing Scale."
+"Holding down the Shift key when clicking the Zoom In or Zoom Out button will "
+"zoom to a programmed Drawing Scale. \n"
+"Holding down the Shift and Control keys when clicking a Zoom button will set "
+"it's program Zoom to the current Drawing Scale."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:633
-msgid "You can trim the ends of turnouts by holding down the Shift key when using the Split command."
+#: ../../../../build/work/app/i18n/custmsg.h:634
+msgid ""
+"You can trim the ends of turnouts by holding down the Shift key when using "
+"the Split command."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:634
+#: ../../../../build/work/app/i18n/custmsg.h:635
msgid ""
-"The Split command can be used to create Block Gaps at end points between two tracks. \n"
+"The Split command can be used to create Block Gaps at end points between two "
+"tracks. \n"
"Either rail or both rails can be gapped, which are drawn as thick lines."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:635
+#: ../../../../build/work/app/i18n/custmsg.h:636
msgid ""
-"Trains will 'crash' if they hit another car when travelling faster than the 'Max Coupling Speed' (on the Command Options dialog). \n"
-"They will also 'crash' if they hit the end of the track or an open turnout. \n"
+"Trains will 'crash' if they hit another car when travelling faster than the "
+"'Max Coupling Speed' (on the Command Options dialog). \n"
+"They will also 'crash' if they hit the end of the track or an open "
+"turnout. \n"
"Crashed trains must be manually moved back onto the track."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:636
-msgid "You can add new track segments to a turnout definition or create a definition from individual tracks using the Group command."
+#: ../../../../build/work/app/i18n/custmsg.h:637
+msgid ""
+"You can add new track segments to a turnout definition or create a "
+"definition from individual tracks using the Group command."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:637
+#: ../../../../build/work/app/i18n/custmsg.h:638
msgid ""
-"The center point and radius of Curved and Circle tracks can optionally be drawn. \n"
-"This feature is toggled by using the Move Label command and doing a Shift-Left-Click on the track."
+"The center point and radius of Curved and Circle tracks can optionally be "
+"drawn. \n"
+"This feature is toggled by using the Move Label command and doing a Shift-"
+"Left-Click on the track."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:638
-msgid "Turnout, Curved and Helix track labels can be individually turned on and off by doing a Shift-Right-Click on the track when using the Move Label command."
+#: ../../../../build/work/app/i18n/custmsg.h:639
+msgid ""
+"Turnout, Curved and Helix track labels can be individually turned on and off "
+"by doing a Shift-Right-Click on the track when using the Move Label command."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:639
-msgid "You can use the Describe command to change the font size of Text objects."
+#: ../../../../build/work/app/i18n/custmsg.h:640
+msgid ""
+"You can use the Describe command to change the font size of Text objects."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:640
-msgid "You can use the Describe command to change the size of Dimension Line labels."
+#: ../../../../build/work/app/i18n/custmsg.h:641
+msgid ""
+"You can use the Describe command to change the size of Dimension Line labels."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:641
+#: ../../../../build/work/app/i18n/custmsg.h:642
msgid ""
-"Normally Right-Click displays a popup menu of commands and Shift-Right-Click displays options for the current command. \n"
-"This can reversed by using the Right Click toggle button on the Command Options dialog."
+"Normally Right-Click displays a popup menu of commands and Shift-Right-Click "
+"displays options for the current command. \n"
+"This can reversed by using the Right Click toggle button on the Command "
+"Options dialog."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:642
+#: ../../../../build/work/app/i18n/custmsg.h:643
msgid ""
-"The Align item on the Rotate command options menu will let you Align selected objects with any unselected object. \n"
-"The selected objects are rotated so the first point is parallel to the second point you selected."
+"The Align item on the Rotate command options menu will let you Align "
+"selected objects with any unselected object. \n"
+"The selected objects are rotated so the first point is parallel to the "
+"second point you selected."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:643
+#: ../../../../build/work/app/i18n/custmsg.h:644
msgid ""
"Print To Bitmap allows you to print the track center line. \n"
-"This is useful if you later print the bitmap full size as a template when laying track."
+"This is useful if you later print the bitmap full size as a template when "
+"laying track."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:644
-msgid "You can export the selected tracks to a DXF file which can be read by most CAD programs."
+#: ../../../../build/work/app/i18n/custmsg.h:645
+msgid ""
+"You can export the selected tracks to a DXF file which can be read by most "
+"CAD programs."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:645
-msgid "Lengths and distances can be displayed in a variety of units and formats such as 1' 10 3/4\", 1ft 10.75in or 22.750. In Metric mode, distances can be displayed as millimeters, centimeters or meters. See the Length Format item on the Preferences dialog."
+#: ../../../../build/work/app/i18n/custmsg.h:646
+msgid ""
+"Lengths and distances can be displayed in a variety of units and formats "
+"such as 1' 10 3/4\", 1ft 10.75in or 22.750. In Metric mode, distances can "
+"be displayed as millimeters, centimeters or meters. See the Length Format "
+"item on the Preferences dialog."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:646
+#: ../../../../build/work/app/i18n/custmsg.h:647
msgid ""
-"Tracks that are too steep or curve too tightly are drawn in the Expection color (Purple by default). \n"
+"Tracks that are too steep or curve too tightly are drawn in the Expection "
+"color (Purple by default). \n"
"This helps to identify potential problem areas. \n"
"The maximum grade and minimum radius are set on the Preferences dialog."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:647
+#: ../../../../build/work/app/i18n/custmsg.h:648
msgid ""
"The Flip command produces a mirror-image of the selected tracks. \n"
-"If possible, right-hand turnouts are relabeled as left-hand turnouts (and vice versa)."
+"If possible, right-hand turnouts are relabeled as left-hand turnouts (and "
+"vice versa)."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:648
+#: ../../../../build/work/app/i18n/custmsg.h:649
msgid ""
-"Then Ungroup command will break turnouts and structures into individual track, line and shape segments. \n"
+"Then Ungroup command will break turnouts and structures into individual "
+"track, line and shape segments. \n"
"You can modify each segment and add new ones. \n"
"Then use the Group command to update the definition."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:649
+#: ../../../../build/work/app/i18n/custmsg.h:650
msgid "Dimension lines show the distance between two points."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:650
+#: ../../../../build/work/app/i18n/custmsg.h:651
msgid ""
"A variety of Benchwork (rectangular, L-girder and T-girder) can be drawn. \n"
-"Use the Below command to move the Benchwork below the track for proper display."
+"Use the Below command to move the Benchwork below the track for proper "
+"display."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:651
+#: ../../../../build/work/app/i18n/custmsg.h:652
msgid ""
-"The Turnout Designer dialogs allow you to specify the width of any attached roadbed. \n"
-"As well, the color and thickness of the lines used to represent the roadbed can be specified."
+"The Turnout Designer dialogs allow you to specify the width of any attached "
+"roadbed. \n"
+"As well, the color and thickness of the lines used to represent the roadbed "
+"can be specified."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:652
+#: ../../../../build/work/app/i18n/custmsg.h:653
msgid ""
-"The Color dialog (on the Options menu) is used to change the color of different objects on the display. \n"
-"You can change the color of the Snap Grid and Borders, as well as Normal, Selected and Exception tracks."
+"The Color dialog (on the Options menu) is used to change the color of "
+"different objects on the display. \n"
+"You can change the color of the Snap Grid and Borders, as well as Normal, "
+"Selected and Exception tracks."
msgstr ""
-"A caixa de diálogo de cores (no menu \"Opções\") é usada para alterar a cor dos diferentes objetos na janela principal. \n"
-"Você pode alterar a cor da grade e das bordas, como também dos trechos normais, selecionados e excepcionais."
+"A caixa de diálogo de cores (no menu \"Opções\") é usada para alterar a cor "
+"dos diferentes objetos na janela principal. \n"
+"Você pode alterar a cor da grade e das bordas, como também dos trechos "
+"normais, selecionados e excepcionais."
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:653
+#: ../../../../build/work/app/i18n/custmsg.h:654
msgid ""
"You can draw tracks with wider lines for rails. \n"
"Select the tracks and use Medium or Thick Tracks on the Edit menu."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:654
+#: ../../../../build/work/app/i18n/custmsg.h:655
msgid ""
-"Many objects on the layout have labels: Turnouts/Helix/Curved Titles, Track Lenghts, End-Point Elevations, Track Elevations and Cars. \n"
-"You can turn these labels on or off with the Label Enable toggle buttons on the Display options dialog."
+"Many objects on the layout have labels: Turnouts/Helix/Curved Titles, Track "
+"Lenghts, End-Point Elevations, Track Elevations and Cars. \n"
+"You can turn these labels on or off with the Label Enable toggle buttons on "
+"the Display options dialog."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:655
-msgid "If you hold down the Control key when using the Rotate command, the rotation will be down in increments of 15°."
+#: ../../../../build/work/app/i18n/custmsg.h:656
+msgid ""
+"If you hold down the Control key when using the Rotate command, the rotation "
+"will be down in increments of 15°."
msgstr ""
-#: ../../../../xtrkcad-build/app/i18n/custmsg.h:656
-msgid "When using the Rotate command, Shift-Right-Click displays a menu allowing you to rotate by specific amounts or to align the selected objects with another object."
+#: ../../../../build/work/app/i18n/custmsg.h:657
+msgid ""
+"When using the Rotate command, Shift-Right-Click displays a menu allowing "
+"you to rotate by specific amounts or to align the selected objects with "
+"another object."
msgstr ""
+#~ msgid "Blocks"
+#~ msgstr "Blocos"
+
+#~ msgid "Angle=%0.3f"
+#~ msgstr "Ângulo=%0.3f"
+
+#~ msgid "Place circle center"
+#~ msgstr "Posicionar o centro da circunferência"
+
+#~ msgid "Draw"
+#~ msgstr "Desenhar"
+
+#~ msgid "Not a SwitchMotor!"
+#~ msgstr "Isto não é um motor de AMV!"
+
+#~ msgid "SwitchMotor"
+#~ msgstr "Motor de AMV"
+
+#~ msgid "Switch Motors"
+#~ msgstr "Motores de AMV"
+
+#~ msgid "Custom Update"
+#~ msgstr "Atualizar personalizadamente"
+
+#~ msgid "Black"
+#~ msgstr "Preto"
+
+#~ msgid "Dark Blue"
+#~ msgstr "Azul-escuro"
+
+#~ msgid "Steel Blue"
+#~ msgstr "Azul-aço"
+
+#~ msgid "Royal Blue"
+#~ msgstr "Azul-royal"
+
+#~ msgid "Blue"
+#~ msgstr "Azul"
+
+#~ msgid "Deep Sky Blue"
+#~ msgstr "Azul celeste profundo"
+
+#~ msgid "Light Sky Blue"
+#~ msgstr "Azul celeste claro"
+
+#~ msgid "Powder Blue"
+#~ msgstr "Azul-pólvora"
+
+#~ msgid "Dark Aqua"
+#~ msgstr "Azul-água-escuro"
+
+#~ msgid "Aquamarine"
+#~ msgstr "Verde-azulado"
+
+#~ msgid "Aqua"
+#~ msgstr "Azul-água"
+
+#~ msgid "Dark Green"
+#~ msgstr "Verde-escuro"
+
+#~ msgid "Forest Green"
+#~ msgstr "Verde-floresta"
+
+#~ msgid "Lime Green"
+#~ msgstr "Verde-lima"
+
+#~ msgid "Green"
+#~ msgstr "Verde"
+
+#~ msgid "Lawn Green"
+#~ msgstr "Verde-grama"
+
+#~ msgid "Pale Green"
+#~ msgstr "Verde-pálido"
+
+#~ msgid "Dark Yellow"
+#~ msgstr "Amarelo-escuro"
+
+#~ msgid "Coral"
+#~ msgstr "Coral"
+
+#~ msgid "Orange"
+#~ msgstr "Laranja"
+
+#~ msgid "Gold"
+#~ msgstr "Dourado"
+
+#~ msgid "Yellow"
+#~ msgstr "Amarelo"
+
+#~ msgid "Saddle Brown"
+#~ msgstr "Marrom-couro"
+
+#~ msgid "Brown"
+#~ msgstr "Marrom"
+
+#~ msgid "Chocolate"
+#~ msgstr "Chocolate"
+
+#~ msgid "Rosy Brown"
+#~ msgstr "Marrom-rosado"
+
+#~ msgid "Tan"
+#~ msgstr "Canela"
+
+#~ msgid "Beige"
+#~ msgstr "Bege"
+
+#~ msgid "Dark Red"
+#~ msgstr "Vermelho-escuro"
+
+#~ msgid "Tomato"
+#~ msgstr "Vermelho-tomate"
+
+#~ msgid "Red"
+#~ msgstr "Vermelho"
+
+#~ msgid "Hot Pink"
+#~ msgstr "Rosa-quente"
+
+#~ msgid "Pink"
+#~ msgstr "Rosado"
+
+#~ msgid "Dark Purple"
+#~ msgstr "Púrpura-escuro"
+
+#~ msgid "Maroon"
+#~ msgstr "Castanho"
+
+#~ msgid "Purple2"
+#~ msgstr "Púrpura 2"
+
+#~ msgid "Purple"
+#~ msgstr "Púrpura"
+
+#~ msgid "Violet"
+#~ msgstr "Violeta"
+
+#~ msgid "Dark Gray"
+#~ msgstr "Cinza-escuro"
+
+#~ msgid "Gray"
+#~ msgstr "Cinza"
+
+#~ msgid "Light Gray"
+#~ msgstr "Cinza-claro"
+
+#~ msgid ""
+#~ " exists\n"
+#~ "Do you want to overwrite it?"
+#~ msgstr ""
+#~ " existente\n"
+#~ "Sobrescrever?"
+
+#~ msgid "Page %d"
+#~ msgstr "Página %d"
+
+#~ msgid "Print to file ..."
+#~ msgstr "Imprimir em um arquivo..."
+
+#~ msgid "No file name specified"
+#~ msgstr "Nome do arquivo não especificado"
+
+#~ msgid "%s exists"
+#~ msgstr "%s existente"
+
+#~ msgid "Overwrite"
+#~ msgstr "Sobrescrever"
+
+#~ msgid ": cannot open"
+#~ msgstr ": não foi possível abrir"
+
+#~ msgid "Now printing %s"
+#~ msgstr "Imprimindo agora %s"
+
+#~ msgid "Page 1"
+#~ msgstr "Página 1"
+
+#~ msgid "Printer Margin Test Page"
+#~ msgstr "Página de teste de margem"
+
+#~ msgid "Enter both printer name and command"
+#~ msgstr "Digitar nome da impressora e comando"
+
+#~ msgid "Can not save New Printer definition"
+#~ msgstr "Não foi possível nova impressora definida"
+
+#~ msgid "Enter printer name"
+#~ msgstr "Digitar nome da impressora"
+
+#~ msgid "Can not save New Margin definition"
+#~ msgstr "Não foi possível salvar nova margem definida"
+
+#~ msgid "Paper Size"
+#~ msgstr "Tamanho do papel"
+
+#~ msgid "Printer"
+#~ msgstr "Impressora"
+
+#~ msgid "Format"
+#~ msgstr "Formato"
+
+#~ msgid "X Font"
+#~ msgstr "Fonte X Window"
+
+#~ msgid "PS Font"
+#~ msgstr "Fonte PostScript"
+
+#~ msgid "Factor"
+#~ msgstr "Fator"
+
+#~ msgid "Print Test Page"
+#~ msgstr "Imprimir página de teste"
+
+#~ msgid "Add Printer"
+#~ msgstr "Adicionar impressora"
+
+#~ msgid "Name: "
+#~ msgstr "Nome:"
+
+#~ msgid "Command: "
+#~ msgstr "Comando:"
+
+#~ msgid "Add Margin"
+#~ msgstr "Adicionar margem"
+
+#~ msgid "Print To File"
+#~ msgstr "Imprimir em um arquivo"
+
+#~ msgid "File Name? "
+#~ msgstr "Nome do arquivo?"
+
+#~ msgid "Font Alias"
+#~ msgstr "Nome da fonte"
+
+#~ msgid "Enter a post-script font name for:"
+#~ msgstr "Digitar um nome de fonte PostScript para:"
+
+#~ msgid "Printing"
+#~ msgstr "Imprimindo"
+
+#~ msgid "Now printing"
+#~ msgstr "Imprimindo agora"
+
+#~ msgid "Abort Print"
+#~ msgstr "Abandonar impressão"
+
+#~ msgid "XTrackCAD Help"
+#~ msgstr "Ajuda XTrackCAD"
+
+#~ msgid "Describe objects"
+#~ msgstr "Descreve objetos"
diff --git a/app/lib/CHANGELOG.md b/app/lib/CHANGELOG.md
new file mode 100644
index 0000000..212017a
--- /dev/null
+++ b/app/lib/CHANGELOG.md
@@ -0,0 +1,199 @@
+# XTrackCAD Changelog #
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
+
+## [unpublished]
+
+### Added
+
+### Fixed
+
+### Added and changed parameter files
+
+## [5.1.0]
+
+### Added
+
+### Fixed
++ Fix Traditional Easements that are smaller than Sharp value between 0.21 and 0.5
++ Resuming after an abort takes precedence over loading last layout
++ Fix the vanish track segments problem.
++ Change all track segments currently set to white to black in parameter files and examples
++ Changed initial defaults to orange for exception color and snap grid turned off
++ Make snap feature work with rotated or moved lines
++ Fix track description editing for bezier, cornu and curve
++ Fix track description editing for compound (turnouts)
++ Flip sense of records for Bezier and Cornu so that the default (hidden) matches all the records written so far (0). Only those explicitly unhidden with have the bit flipped.
++ Fix Abend when naked cornu end is modified
++ Allow for small rounding errors when checking minimum radius
++ Round down exception radii in Cornu and Bezier
++ Limit maximum length for PD_STRING and enable limits for layout title
++ Add new check for radius > room dimensions when creating helix or circle
++ Fix map window update on zoom with options for gtk, map overlay update on pan/zoom and pan/zoom messages and doc.
++ Update German translations
+
+### Added and changed parameter files
+
+## [5.1.0beta]
+
+### Added
++ Finish the new End Point records which have fixed positions and all fields are output
++ Add Select Track and then Right-Click mode to Connect Tracks to reconnect large numbers
+of tracks in one command (and provide an alternative to accurately selecting two close end-points).
++ Pan/Zoom button LeftDrag Pan, RightDrag Zoom
++ Pan/Zoom command adds 0 key to set origin and e key to zoom to extents
++ Improve zoom and pan performance if map is showing
++ Amend Mass Connect to use two passes - one close and one wide
++ Add Select All and Select All Current to popup menus
+
+### Fixed
++ Open external sites in separate window from help (bug #219)
++ Fix the initial position of rotated elements
++ Make sure all connection parms do not exceed bounds from options dialogs
++ Fix Abend on naked cornu modify
++ Fix invalid value modification when selecting new number format
++ Fix error threshold for bezier to avoid weird curves if connection distance high
++ Re-enable splitting fixed track for straight, curved and bumpers
++ Fix prompt for Join Start
++ Fix Abend when using connect for first track to turntable
+
+### Added and changed parameter files
+
+## [5.0.0.beta5]
+
+### Added
++ Allow Turnout Placement on Bezier Tracks, also improve Bezier splitting logic
+to be more precise
++ Ensure Cornu is deleted if connected track is deleted (like Easement)
++ Make an unfilled Box into a Polygon with a RECTANGLE shape. Add special edit
+capability for filled and unfilled Boxes in Modify that preserve their shape and
+allow for either editing at the corner or on a side. Add user prompts during
+editing.
++ All: Add multi line text fields in drawing
++ Windows: Select monospaced font for parts list
+
+### Fixed
++ Linux/OSX: Fix memory leak when updating status bar
++ Stop turnout placement on helix, ensure no turnout placement on bezier or cornu
++ Set the width of the benchwork selector
++ Restore Labels in HotBar to full size and sort out layout even without labels
++ Fix Lionel files which were binary and had bad end lines
++ Fix assorted leaks and adjust the rate of change of curvature calc
++ Windows: Fix text handling for multi line edit fields, bug #198
++ Windows: Fix printing multi page parts lists
++ All: Fix car part files
++ Windows: Fix parts list
++ All: Fix Traverse of rotated turnouts and issues with inaccurate segments in turnouts
+
+### Added and Changed Parameter Files
++ Z-Atlas55.xtp Updated, added #6 Turnouts and 19d Crossing. Dimensions were scale from online images.
++ F-NMRA-RP12-21.xtp NMRA F Scale Std Gauge 13&#39; prototypical track centers
++ G-NMRA-RP12-23.xtp NMRA G Scale Std Gauge 13&#39; prototypical track centers
+
+## [5.0.0.beta4]
+
+### Added
++ Lock center of rotation to center of turntable if within 1/4 of turntable radius when clicked
++ Allow Connect Two Tracks to connect correctly aligned stall tracks to a turntable like normal tracks
++ Add Precise Move Right-Click submenu
++ Additional German translations
+
+### Fixed
++ Linux/OSX: Fix Note invisibility
++ Linux: FIX RPM dependencies for browser builds
++ Linux/OSX: Fixed invisibility of Note icon on trackplan
++ Fixed crash in demo mode
++ Update copyright notice in About dialog
++ Cope with larger system fonts set by user
++ Linux/OSX: Make sure the draw area and the message are correctly placed after redraw
++ Fix Abend in Train with Car Label Display enabled
++ Allow Cornu Join to work on Circles and Helixes
++ Fix Layers Abend
++ Update map window after Quick Move and Quick Rotate
+
+## [5.0.0.beta3]
+
+### Added
++ Add Micro-Move using Shift-Ctrl-Arrows in Move Command
+
+### Changed
++ Improve Cornu documentation
+
+###Fixed
++ Allow GTK window width to shrink, resize on restart to fit inside and show on available monitor(s)
++ Fix toolbar ballons blank after resize
++ Fix Display Elevations bug
++ Fix Bezier displayed radius and center for second end
++ Upgrade Describe for Compounds and reduce real estate for larger items by rendering POS X, Y on one line
++ Fix for up arrow panning down instead of up when un-shifted
++ Fixes for Traverse inside a Compound/Turnout.
+
+## [4.4.0.beta2] - 2017-11-09
+
+###Fixed
++ Cornu problem with saving that led to bad curves on file open
++ Cornu and Bezier problem with List Parts - led to abend plus bad lengths
++ Failure in Train if a train hits an end-point
+
+###Added
++ Constrain add to unconnected Cornu end in Modify via right drag to be correct radius
+
+## [4.4.0.beta1]
+
+### Added
++ New Cornu track feature for more flexible easements
++ New Bezier tracks and lines
++ Snapping of new straight, curved and Bezier tracks to unconnected end points
++ Snapping of new straight, curved and Bezier lines to line segment ends
++ Use region specific defaults on initial run of program
++ Keep separate current directories per file type
++ Add option to highlight unconnected end points
++ Add option to keep lower corner in zoom
++ MicroStep Pan Buttons
++ Add toolbar button to toggle map window on and off
+
+### Changed
++ During build the local browser can be enabled to show help, therefore replacing the built-in webkit viewer
++ Improved "New" layout function
++ User prompts added to Zoom function
++ Added and improved German translations
++ Add Print option to force out Centerline. Adjust dashed line for GTK to reduce gap between dashes
+
+### Changed Parameter Files
++ Fixed three way turnout in Tillig TT Advanced track
++ Clean up CTC-Panel, Peco N Code 80 Streamline, KB Scale and On30 parameters
++ Fix scale definitions and clean up S-Trax, Hubner, Atlas O Scale parameters
++ Added structures to Walthers Cornerstone in HO and N
++ Extended T-Eishindo
++ Renamed rocon.xtp and updated N-fl for new ownership
++ Cleanup and reorganize Peco N track parameters
++ Cleanup and create separate files for Peco HO/OO track ranges
++ Peco HO Code 70, 83 and 100 - Added inspection pit
++ Peco N Code 55 and Code 80 - Added inspection pit
++ Atlas Code 100 HO-Added Bridges and Turntable
++ Atlas Code 83 HO-Added more Bridges
++ Kato HO-Added #4 and #6 Single Slip (Lefthand Crossover) Turnouts
++ Kato N-Added Open (inspection) Pit 20-016
++ Z Rokuhan-Added New Short Iron and Deck Girder Bridges and 440mm PC and Std Straight Track Sections
++ Add Micro Engineering parameter file
++ Updated and corrected parameter file for LGB
+
+### Fixed
++ Keep layer count up to date and store relevant layers on save
++ Enable changing layers for "Notes" from "Properties" dialog
++ Fix bug #203 Train turns on itself at a buffer
++ Fix broken DXF export by putting correct version into DXF export
++ Allow larger number of files to be selected at once for loading
++ Fix bug #196 wrong layer number in object properties
++ Changing "Layout Options" can be cancelled
++ Consistently change "Describe" label to "Properties"
++ Make Text immediatetly update color as well as size
++ Fix filename handling bugs
++ Fix option dialog and end point drawing for normal endpoints
++ Numpad + and - can be used like standard + and - for zoom control
++ Make sure a number format is set after changing the measurement system
++ Linux/OSX: Fix color button bug
++ Fix extra data re-allocation logic in csignal.c
++ Updated spec file for EL6 RPMs
diff --git a/app/lib/CMakeLists.txt b/app/lib/CMakeLists.txt
index 3de124e..a2e823d 100644
--- a/app/lib/CMakeLists.txt
+++ b/app/lib/CMakeLists.txt
@@ -1,28 +1,56 @@
-
-# $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/lib/CMakeLists.txt,v 1.6 2008-03-27 18:17:16 m_fischer Exp $
+# CMakeList for the LIB directory
#
+# Include the subdirectories for params, examples and params
+# Generate and install a Readme.txt file from markdown if pandoc is available on the system
+# install desktop integration following freedesktop.org specification
+#
+project(lib)
-PROJECT(lib)
-
-ADD_SUBDIRECTORY(demos)
-ADD_SUBDIRECTORY(examples)
-ADD_SUBDIRECTORY(params)
+add_subdirectory(demos)
+add_subdirectory(examples)
+add_subdirectory(params)
-INSTALL(FILES
+install(FILES
COPYING
- Readme.txt
logo.bmp
xtrkcad.xtq
DESTINATION ${XTRKCAD_SHARE_INSTALL_DIR}
)
+
+set( infile "${CMAKE_CURRENT_SOURCE_DIR}/Readme.md" )
+set( outfile "${CMAKE_CURRENT_BINARY_DIR}/Readme.txt" )
+set( changelogin "${CMAKE_CURRENT_SOURCE_DIR}/CHANGELOG.md" )
+set( changelogout "${CMAKE_CURRENT_BINARY_DIR}/CHANGELOG.txt" )
-IF(UNIX AND NOT APPLE)
- INSTALL(FILES
+if(PANDOC_FOUND)
+ add_custom_command(OUTPUT "${outfile}"
+ COMMAND ${PANDOC_EXECUTABLE} "--from=Markdown" "--to=plain" "-o" ${outfile} ${infile}
+ DEPENDS "${infile}"
+ )
+ add_custom_target(CHANGELOG ALL DEPENDS ${changelogout})
+ add_custom_command(OUTPUT "${changelogout}"
+ COMMAND ${PANDOC_EXECUTABLE} "--from=Markdown" "--to=plain" "-o" ${changelogout} ${changelogin}
+ DEPENDS "${changelogin}"
+ )
+ add_custom_target(Readme ALL DEPENDS ${outfile})
+ install(FILES ${outfile} ${changelogout}
+ DESTINATION ${XTRKCAD_SHARE_INSTALL_DIR}
+ )
+else()
+ message(STATUS "Pandoc is not available on this system, Readme.txt is not generated!")
+endif()
+
+if(UNIX AND NOT APPLE)
+ install(PROGRAMS
+ xdg-open
+ DESTINATION ${XTRKCAD_SHARE_INSTALL_DIR}
+ )
+ install(FILES
xtrkcad.desktop
DESTINATION "/usr/share/applications"
)
- INSTALL(FILES
+ install(FILES
xtrkcad.png
DESTINATION "/usr/share/pixmaps"
)
-ENDIF(UNIX AND NOT APPLE) \ No newline at end of file
+endif() \ No newline at end of file
diff --git a/app/lib/Readme.md b/app/lib/Readme.md
index dfa904d..689730f 100644
--- a/app/lib/Readme.md
+++ b/app/lib/Readme.md
@@ -6,7 +6,6 @@ This file contains installation instructions and up-to-date information regardin
* About XTrackCad
* License Information
-* New features in this release
* Installation
* Upgrading from earlier releases
* Bugs fixed
@@ -37,262 +36,11 @@ XTrackCad is copyrighted by Dave Bullis and Martin Fischer and licensed as
free software under the terms of the GNU General Public License v2 which
you can find in the file COPYING.
-## New features ##
-
-### Version 4.3.0 ###
-
-* Linux: Install xtrkcad.desktop and xtrkcad.png for desktop integration
-* All: Fix color button initialization
-* Add control and sensor types
-* Development of signal feature was finished
-* Add extra AppleHelp files
-* All: Add documentation for layout control elements
-* Write proper Describe, Move, and Rotate functions for Signals.
-* Add high lighting for signals.
-* Add AppleHelp bundle generation including index
-* First pass at high lighting layout control elements.
-* Linux/OSX: Set directory for rc file
-* All: Rework DXF export, add support for metric measurements
-* All: Add dynstring to build and modify DynstrMalloc interface
-* All: Add dynstring library and unit tests
-* All: enable unit testing with CMocka
-* Add Layout Control Element management dialog
-
-### Version 4.2.4 ###
-* All: Parameter file for Minitrains HOe-009-HOn30 Track System
-* All: Improved and new parameter files Kato N and Super O
-* All: Corrected parameter file for Peco HOn30/OO9 track
-* All: New parameter file for Peco HOn3 turnouts
-* All: New and updated parameter files for Z-scale
-* All: added a few more length formats
-* All: added additional zoom and marco zoom steps
-* All: Increase meximum number of layer buttons to 99
-* All: The parameter file dialog now allows loading and unloading several files together
-
-### Version 4.2.3 ###
-* All: updated German translations
-* All: TT Kuehn added items
-* Linux/OSX: New printing system
-* All: tomix-n.xtp Added or Updated multiple items
-* All: Add length format with six decimal places for English units (feature wish #33)
-* All: Feature Request #35: add hotkey for switching map window on and off
-* All: Make the installation's param directory the default on initial run
-* All: several new and updated parameter files
-* All: add Nm gauge and some Nm track parameters
-
-### Version 4.2.2 ###
-* All: Update German translations
-* All: extended parameter files f𲠋ato HO and Walthers N structures
-* All: Added and extended parameter files
-* All: Add support for HOf scale/gauge and Busch track parameter files
-* Linux/OSX: Replace file selector dialog with newer file chooser dialog
-* All: Make editing of custom track work
-* All: Fix Atlas HO Code 100 parameter file
-* All: new Kato Unitrack N-Scale parameter file
-* All: add measurement units to train speed
-
-### Version 4.2.1 ###
-* Increase the number of layer buttons to 99
-* All: Update Eishindo T Gauge parameter file
-* All: Paste clipboard content at position of mouse pointer
-* All: Never mark curve centers of turnouts
-* All: Make drawing of center markings (crosshair) an user option
-* add ability to set text color when creating them
-* Windows: Draw and print crosshair to mark the center of an arc
-* Add the ability to change layers of a piece of track in the describe box.
-
-### Version 4.2.0 ###
-* New and updated parameter files and layout examples
-* Apply user preferences for dimensions to elevations
-* Add ability to update color of Text in properties
-* Fix compile problem on FreeBSD
-* Fix Oracle Solaris Studio 12.3 warnings
-* partially completed Brazilian Portuguese translation (57%)
-* Improve German translations
-* Merged webkit help system from Debian
-* Update help CSS to the Wiki's new default look
-
-## Bugs fixed ##
-
-### Version 4.3.0 ###
-* All: Save and set user defined values for Text command
-* All: Fix path handling error after Save/Save As
-* All: Fix color button initialization
-* Fix Malloc error (wrong size in ReadBlock, causing Guard1 hose error)
-* Updated cblock.c and cswitchmotor.c to handle possible broken blocks and switchmotors and not crash (check for NULL pointers)
-* Bulletproof against undefined (NULL pointer) track segments in SwitchMotor code.
-* Bulletproof against undefined (NULL pointer) track segments in Block code.
-* Linux/OSX: Preparing for GTK3 migration, second set of changes
-* Clean up help files for Apple Help Indexer
-* Linux/OSX: Preparing for GTK3 migration, first set of changes
-* All: New and updated parameter files for Lego and Peco H0 Code 83
-* Linux/OSX: Add OSX specific files
-* Linux/OSX: Split help functions in generic and platform specific piece
-* Description: Correct some translation typos
-* Linux/OSX: Fix #163 GCC format-security errors
-* All: Update parameter file for Kuehn TT track
-* Add forward reference resolution for Blocks and Switchmotors
-* Cleanly delete blocks and switch motors when their tracks are deleted (avoid dangling pointers)
-* Updated Spec file
-* Expand help path name for longer bundle directories
-* Attempt to fix help files crash issue
-* Add GLIB Schemas to GTK-Bundle
-* All: Improved German translations
-* Update Readme for OSX package
-* Add support for gtk-mac-bundler
-* fix bugs in xtrkcad-bundler code
-* Fix parm dialog default for GTK builds
-* Add a post-build script for auto-creating OSX images
-* Remove failing copy command for gtk-bundle share
-* Linux/OSX: Fix uninitialized param file directory on first run
-* All: Add TTi scale / gauge
-* All: New paramter files for Frateschi HO and Auhagen TTi
-
-### Version 4.2.4a ###
-* All: Update help
-* Linux: Installation from self extracting archive accepts install path
-* Linux/OSX: Remove absolute path from source packages
-* All: remove all dependencies on obsolete XTRKCAD_USE_LAYOUTCONTROL conditional
-* All: New parameter file for Micro Engineering HOn3 Turnouts
-* Windows: Fix bug 157 Crash on color change when drawing lines
-* All: Updated parameter file for Kato N scale
-* All: Fix build problem with block and switchmotor feature
-
-### Version 4.2.4 ###
-* Linux/OSX: Correct search order for config files
-* All: Layout control functions are always included
-* Linux/OSX: add a default file extension when none is present on save
-* Linux/OSX: Update package build
-* All: Fix compiler warnings for pointer to in casts on 64 bit systems
-* All: Correct file comments
-* All: Consistent spelling
-* All: Fix definition for Atlas Code 83 3/4" straight track
-
-### Version 4.2.3b ###
-* Windows: Fix numeric overflow when reading layouts created on Linux
-* Linux/OSX: Fix crash when closing Train Control window
-* Linux/OSX: Fix crash when closing Change Elevation Window
-* All: new and improved parameter files for Tillig track
-
-### Version 4.2.3a ###
-* Windows: Make UI translation work with directory structure of 64 bit Windows
-* Linux/OSX: Use defaults for printer and page settings on first run
-
-### Version 4.2.3 ###
-* All: Fix bug #143: Roco N Turnout 22247
-* All: fix invalid const variable usage
-* Linux/OSX: cairo is required and no longer optional
-* All: Fix bug #137 remove accelerator keys from block and switchmotor functions
-* All: Fixed wrapping of messages in status line
-* All: fix parameter files for On30
-* All: fix some compiler warnings
-* All: Fix bug #137 ie. crash on in intial run
-* All: fix possible signed / unsigned char problems
-* Windows: fix some compiler warnings
-
-### Version 4.2.2 ###
-* All: proper initialization of gauge on initial run
-* All: Added missing Language code header in Finnish and Brazilian Portuguese translations
-* Linux/MacOSX Fix for string conversion issues found using -Wformat-security default compiler flag on modern Linux distros
-* All: Bugfix: enable changing the layer of drawing elements from Describe dialog
-* All: Fix formatting of parts list, use monospace font on Linux and OSX
-* All: fix buffer overflow bug on overly long title lines (bug 120)
-* All: Fix memory violation bug on initial run of XTrackCAD
-* All: help and message fixes, load example directories on first start
-* All: Fix cmake backwards compatibility
-* All: Fix Backspace-Handling when field is emptied completly
-* All: Suppress warning from CMake versions 3.0
-* Linux: Additional files needed for Debian packages
-
-### Version 4.2.1 ###
-* All: Fix problem with blank line in American prototype file
-* All: fix one occurence if undo assert bug
-* All: Fix setting and getting minimum radius in Layout Options dialog
-* Windows: add round() missing in older Visual Studio versions
-* All: Fix locale problem with Export/Import
-* Linux/OSX: fix line width when printing
-* Linux/OSX: Add text rotation to gtk/cairo
-* Windows: Fix text rotation from Describe dialog
-* Fix initial HotBar Text Issue
-* Fix shift-modify abend
-* Fix redraw on Undo and Redo
-* All: fix bug 23 - make line width independent of zoom factor a creation time
-* Remove Ruler Text when selecting ruler button
-* Windows: Correct size calculation for radio buttons and checkboxes
-* Fix ghosts after delete
-* Fix modify
-* Fix ghost tracks and text on mac
-* Fix color stack protection bug
-* Windows Fix Bug 108: make sure that the line width is at least 1
-* ALL Fix bug 110: Proper error message on invalid scale in parameter file
-* Linux: Add valid ChangeLog to the RPM package
-* fix layerlist
-* Linux: Make RPM package generator work
-* Linux/OSX Draw and print crosshair to mark center of arc
-* ALL: Complete German translation for UI, messages and demos
-* Linux/OSX Fix bug 103: Icons are unreadable
-* Linux/OSX Fix bug 101: Print command fails with path+name > 42 chars
-* fix kato-n parameter file
-* Change the default input to be the same as the default output.
-* Correction to parameter file, Marklin 5119 is a Right not a Left turnout
-
-### Version 4.2.0 ###
-* Fix I18N on Windows
-* Fix bug 48: created invalid XPMs when many colors were used
-* Windows: associate application icon to xtc files
-* Fixed installation problem on Windows 7 when profile directory did not exist
-* Add math library libm to link library list.
-* sscanf extra format string parameter removed
-* Changed the font size used to print XtrackCAD in the engineering data box.
-* Update in app/README - correct instructions for Mercurial access
-* Fixed bug 3121382 - made menu item and dialog box labeling consistent for custom management
-* Fix bug 3310506, 3121372 (partly) - Minimum gauge is persisted, gauge is automatically selected in Layout Options
-* Fixed bug 3524218: print scale is shown correctly on print out.
-* Fixed bug 3468014 - build instructions for OSX in README have been updated
-* Fixed bug 3535258 - Broken PostScript in German locale
-* Fixed bug 3375218 - Odometer Reads A Multiple Of Locos
-* Fixed MSVC compile problem and added missing function to mswlib
-* Updated doxygen configuration file to doxygen version 1.8.2
-* Added code to properly determine the postscript fonts occurring in a document.
-* Fixed the syntax of the Document Structure Comments.
-* Circle line tangent/center were interchanged
-* Fix cairo text drawing bugs by forcing painting with frequent redraws.
-* Locale prefix change to conform to FHS (tracker bug 3049900)
-* Internationalization support added for help button text.
-* FIX: replaced hard-coded XTRKCAD_LOCALE_DIR path with 'locale' based on application library directory (XTRKCAD_LOCALE_DIR is defined at makefiles generation time and does not reflect the place where the application is actually installed)
-* FIX: now it should work with CMake-2.8.1
-* Get command line parameter handling correct
-* make load last layout option work
-* Pango version check at compile time
-* Block and Switchmotor updates
-* FIX: "Gauge" translation support
-* FIX: application crash due to a double value used as a "%*" sprintf. scenario is "Manage" -> "Parts List..." -> "Price" (checkbox).
-* Bug fix for setting the minimum radius
-* FIX: hotbar redraw too slow under gtk-quartz
-* FIX: linux still crashed due to a cairo context access after its drawable destruction
-* FIX: workaround for OSX with GTK-Quartz -> pixmaps are not rendered when using the mask; and replaced gtk_pixmap_new deprecated function with gtk_image_new_from_pixmap
-* FIX: crash when displaying a non utf8 string in balloon help
-* FIX: warning removed: pointer targets in passing argument 1 of 'strcpy' differ in signedness
-* FIX: removed GTK run-time references to /opt/local in root directory
-* FIX: removed remained Xlib dependencies and added gtk configuration files when generating the OSX bundle
-* FIX: image in about dialog box was not being displayed
-* FIX: deallocate PangoFontDescription using the right function
-* FIX: EXC_BAD_ACCESS when displaying about dialog
-* ENH: replace the old font select dialog with the GTK standard one, and some code cleanup
-* FIX - text in layout and selection were not aligned
-* New 'About' and new icons
-* Add source for new button icons
-* LINUX Desktop File
-* New application icon
-* Improved support for bitmaps
-* New tip of the day icon
-* Enhanced bitmap display control
-* Improve internationalization support, use simple gettext on Win32
# Installation #
## Windows ##
-XTrackCad has only been tested on Windows 7.
+XTrackCad has only been tested on Windows 7 and Windows 10.
The MS-Windows version of XTrackCad is shipped as a self-extracting/
self-installing program using the NSIS Installer from Nullsoft Inc.
@@ -300,19 +48,19 @@ self-installing program using the NSIS Installer from Nullsoft Inc.
Using Windows Explorer, locate the directory in which you downloaded or copied your new version of XTrackCAD.
Start the installation program by double clicking on the
-**[xtrkcad-setup-4.3.0.exe][]** file icon.
+**[xtrkcad-setup-4.4.0beta1.exe][]** file icon.
Follow the steps in the installation program.
The installation lets you define the directory into which XTrackCAD is
installed. The directory is created automatically if it doesn't already exist.
-A program folder named XTrackCAD 4.3.0 will be created during the installation
+A program folder named XTrackCAD 4.4.0beta1 will be created during the installation
process. This folder contains the program, documentation, parameter and
example files. An existing installation of earlier versions of XTrackCad is
not overwritten.
-A new program group named XTrackCad 4.3.0 will be created in the Start menu.
+A new program group named XTrackCad 4.4.0beta1 will be created in the Start menu.
## Linux ##
@@ -327,7 +75,7 @@ Use your operating system's package manager to install XTrackCAD.
After downloading open a command line then
- ./xtrkcad-setup-4.3.0.x86_64.sh --prefix=/usr/local --exclude-subdir
+ ./xtrkcad-setup-4.4.0beta1.x86_64.sh --prefix=/usr/local --exclude-subdir
This will install the executable in /usr/local/bin. A directory named
xtrkcad will be created in /usr/local/share and all files will be unpacked
@@ -340,8 +88,11 @@ environment variable to point to that directory.
## Upgrade Information ##
-The available options for number formats have been extended. Check your setting
-in Options>Preferences
+**Note:** This version of XTrackCAD comes with the new cornu feature. In order to support
+this feature, the file format for layout files (.xtc) had to be extended.
+Files from earlier versions of XTrackCAD can be read without problems.
+Layouts that were saved from this version of the program cannot be read by older
+versions of XTrackCAD.
# Building #
## Overview ##
diff --git a/app/lib/Readme.txt b/app/lib/Readme.txt
deleted file mode 100644
index 568b2e5..0000000
--- a/app/lib/Readme.txt
+++ /dev/null
@@ -1,559 +0,0 @@
-
-
-XTRACKCAD 4.3.0
-
-
-This file contains installation instructions and up-to-date information
-regarding XTrackCad.
-
-
-Contents
-
-- About XTrackCad
-- License Information
-- New features in this release
-- Installation
-- Upgrading from earlier releases
-- Bugs fixed
-- Building
-- Where to go for support
-
-
-About XTrackCad
-
-XTrackCad is a powerful CAD program for designing Model Railroad
-layouts.
-
-Some highlights:
-
-- Easy to use.
-- Supports any scale.
-- Supplied with parameter libraries for many popular brands of
- turnouts, plus the capability to define your own.
-- Automatic easement (spiral transition) curve calculation.
-- Extensive help files and video-clip demonstration mode.
-
-Availability: XTrkCad Fork is a project for further development of the
-original XTrkCad software. See the project homepage at
-http://www.xtrackcad.org/ for news and current releases.
-
-
-License Information
-
-COPYING:
-
-XTrackCad is copyrighted by Dave Bullis and Martin Fischer and licensed
-as free software under the terms of the GNU General Public License v2
-which you can find in the file COPYING.
-
-
-New features
-
-Version 4.3.0
-
-- Linux: Install xtrkcad.desktop and xtrkcad.png for desktop
- integration
-- All: Fix color button initialization
-- Add control and sensor types
-- Development of signal feature was finished
-- Add extra AppleHelp files
-- All: Add documentation for layout control elements
-- Write proper Describe, Move, and Rotate functions for Signals.
-- Add high lighting for signals.
-- Add AppleHelp bundle generation including index
-- First pass at high lighting layout control elements.
-- Linux/OSX: Set directory for rc file
-- All: Rework DXF export, add support for metric measurements
-- All: Add dynstring to build and modify DynstrMalloc interface
-- All: Add dynstring library and unit tests
-- All: enable unit testing with CMocka
-- Add Layout Control Element management dialog
-
-Version 4.2.4
-
-- All: Parameter file for Minitrains HOe-009-HOn30 Track System
-- All: Improved and new parameter files Kato N and Super O
-- All: Corrected parameter file for Peco HOn30/OO9 track
-- All: New parameter file for Peco HOn3 turnouts
-- All: New and updated parameter files for Z-scale
-- All: added a few more length formats
-- All: added additional zoom and marco zoom steps
-- All: Increase meximum number of layer buttons to 99
-- All: The parameter file dialog now allows loading and unloading
- several files together
-
-Version 4.2.3
-
-- All: updated German translations
-- All: TT Kuehn added items
-- Linux/OSX: New printing system
-- All: tomix-n.xtp Added or Updated multiple items
-- All: Add length format with six decimal places for English units
- (feature wish #33)
-- All: Feature Request #35: add hotkey for switching map window on and
- off
-- All: Make the installation's param directory the default on initial
- run
-- All: several new and updated parameter files
-- All: add Nm gauge and some Nm track parameters
-
-Version 4.2.2
-
-- All: Update German translations
-- All: extended parameter files f𲠋ato HO and Walthers N structures
-- All: Added and extended parameter files
-- All: Add support for HOf scale/gauge and Busch track parameter files
-- Linux/OSX: Replace file selector dialog with newer file chooser
- dialog
-- All: Make editing of custom track work
-- All: Fix Atlas HO Code 100 parameter file
-- All: new Kato Unitrack N-Scale parameter file
-- All: add measurement units to train speed
-
-Version 4.2.1
-
-- Increase the number of layer buttons to 99
-- All: Update Eishindo T Gauge parameter file
-- All: Paste clipboard content at position of mouse pointer
-- All: Never mark curve centers of turnouts
-- All: Make drawing of center markings (crosshair) an user option
-- add ability to set text color when creating them
-- Windows: Draw and print crosshair to mark the center of an arc
-- Add the ability to change layers of a piece of track in the
- describe box.
-
-Version 4.2.0
-
-- New and updated parameter files and layout examples
-- Apply user preferences for dimensions to elevations
-- Add ability to update color of Text in properties
-- Fix compile problem on FreeBSD
-- Fix Oracle Solaris Studio 12.3 warnings
-- partially completed Brazilian Portuguese translation (57%)
-- Improve German translations
-- Merged webkit help system from Debian
-- Update help CSS to the Wiki's new default look
-
-
-Bugs fixed
-
-Version 4.3.0
-
-- All: Save and set user defined values for Text command
-- All: Fix path handling error after Save/Save As
-- All: Fix color button initialization
-- Fix Malloc error (wrong size in ReadBlock, causing Guard1
- hose error)
-- Updated cblock.c and cswitchmotor.c to handle possible broken blocks
- and switchmotors and not crash (check for NULL pointers)
-- Bulletproof against undefined (NULL pointer) track segments in
- SwitchMotor code.
-- Bulletproof against undefined (NULL pointer) track segments in
- Block code.
-- Linux/OSX: Preparing for GTK3 migration, second set of changes
-- Clean up help files for Apple Help Indexer
-- Linux/OSX: Preparing for GTK3 migration, first set of changes
-- All: New and updated parameter files for Lego and Peco H0 Code 83
-- Linux/OSX: Add OSX specific files
-- Linux/OSX: Split help functions in generic and platform specific
- piece
-- Description: Correct some translation typos
-- Linux/OSX: Fix #163 GCC format-security errors
-- All: Update parameter file for Kuehn TT track
-- Add forward reference resolution for Blocks and Switchmotors
-- Cleanly delete blocks and switch motors when their tracks are
- deleted (avoid dangling pointers)
-- Updated Spec file
-- Expand help path name for longer bundle directories
-- Attempt to fix help files crash issue
-- Add GLIB Schemas to GTK-Bundle
-- All: Improved German translations
-- Update Readme for OSX package
-- Add support for gtk-mac-bundler
-- fix bugs in xtrkcad-bundler code
-- Fix parm dialog default for GTK builds
-- Add a post-build script for auto-creating OSX images
-- Remove failing copy command for gtk-bundle share
-- Linux/OSX: Fix uninitialized param file directory on first run
-- All: Add TTi scale / gauge
-- All: New paramter files for Frateschi HO and Auhagen TTi
-
-Version 4.2.4a
-
-- All: Update help
-- Linux: Installation from self extracting archive accepts install
- path
-- Linux/OSX: Remove absolute path from source packages
-- All: remove all dependencies on obsolete XTRKCAD_USE_LAYOUTCONTROL
- conditional
-- All: New parameter file for Micro Engineering HOn3 Turnouts
-- Windows: Fix bug 157 Crash on color change when drawing lines
-- All: Updated parameter file for Kato N scale
-- All: Fix build problem with block and switchmotor feature
-
-Version 4.2.4
-
-- Linux/OSX: Correct search order for config files
-- All: Layout control functions are always included
-- Linux/OSX: add a default file extension when none is present on save
-- Linux/OSX: Update package build
-- All: Fix compiler warnings for pointer to in casts on 64 bit systems
-- All: Correct file comments
-- All: Consistent spelling
-- All: Fix definition for Atlas Code 83 3/4" straight track
-
-Version 4.2.3b
-
-- Windows: Fix numeric overflow when reading layouts created on Linux
-- Linux/OSX: Fix crash when closing Train Control window
-- Linux/OSX: Fix crash when closing Change Elevation Window
-- All: new and improved parameter files for Tillig track
-
-Version 4.2.3a
-
-- Windows: Make UI translation work with directory structure of 64 bit
- Windows
-- Linux/OSX: Use defaults for printer and page settings on first run
-
-Version 4.2.3
-
-- All: Fix bug #143: Roco N Turnout 22247
-- All: fix invalid const variable usage
-- Linux/OSX: cairo is required and no longer optional
-- All: Fix bug #137 remove accelerator keys from block and switchmotor
- functions
-- All: Fixed wrapping of messages in status line
-- All: fix parameter files for On30
-- All: fix some compiler warnings
-- All: Fix bug #137 ie. crash on in intial run
-- All: fix possible signed / unsigned char problems
-- Windows: fix some compiler warnings
-
-Version 4.2.2
-
-- All: proper initialization of gauge on initial run
-- All: Added missing Language code header in Finnish and Brazilian
- Portuguese translations
-- Linux/MacOSX Fix for string conversion issues found using
- -Wformat-security default compiler flag on modern Linux distros
-- All: Bugfix: enable changing the layer of drawing elements from
- Describe dialog
-- All: Fix formatting of parts list, use monospace font on Linux and
- OSX
-- All: fix buffer overflow bug on overly long title lines (bug 120)
-- All: Fix memory violation bug on initial run of XTrackCAD
-- All: help and message fixes, load example directories on first start
-- All: Fix cmake backwards compatibility
-- All: Fix Backspace-Handling when field is emptied completly
-- All: Suppress warning from CMake versions 3.0
-- Linux: Additional files needed for Debian packages
-
-Version 4.2.1
-
-- All: Fix problem with blank line in American prototype file
-- All: fix one occurence if undo assert bug
-- All: Fix setting and getting minimum radius in Layout Options dialog
-- Windows: add round() missing in older Visual Studio versions
-- All: Fix locale problem with Export/Import
-- Linux/OSX: fix line width when printing
-- Linux/OSX: Add text rotation to gtk/cairo
-- Windows: Fix text rotation from Describe dialog
-- Fix initial HotBar Text Issue
-- Fix shift-modify abend
-- Fix redraw on Undo and Redo
-- All: fix bug 23 - make line width independent of zoom factor a
- creation time
-- Remove Ruler Text when selecting ruler button
-- Windows: Correct size calculation for radio buttons and checkboxes
-- Fix ghosts after delete
-- Fix modify
-- Fix ghost tracks and text on mac
-- Fix color stack protection bug
-- Windows Fix Bug 108: make sure that the line width is at least 1
-- ALL Fix bug 110: Proper error message on invalid scale in parameter
- file
-- Linux: Add valid ChangeLog to the RPM package
-- fix layerlist
-- Linux: Make RPM package generator work
-- Linux/OSX Draw and print crosshair to mark center of arc
-- ALL: Complete German translation for UI, messages and demos
-- Linux/OSX Fix bug 103: Icons are unreadable
-- Linux/OSX Fix bug 101: Print command fails with path+name > 42 chars
-- fix kato-n parameter file
-- Change the default input to be the same as the default output.
-- Correction to parameter file, Marklin 5119 is a Right not a Left
- turnout
-
-Version 4.2.0
-
-- Fix I18N on Windows
-- Fix bug 48: created invalid XPMs when many colors were used
-- Windows: associate application icon to xtc files
-- Fixed installation problem on Windows 7 when profile directory did
- not exist
-- Add math library libm to link library list.
-- sscanf extra format string parameter removed
-- Changed the font size used to print XtrackCAD in the engineering
- data box.
-- Update in app/README - correct instructions for Mercurial access
-- Fixed bug 3121382 - made menu item and dialog box labeling
- consistent for custom management
-- Fix bug 3310506, 3121372 (partly) - Minimum gauge is persisted,
- gauge is automatically selected in Layout Options
-- Fixed bug 3524218: print scale is shown correctly on print out.
-- Fixed bug 3468014 - build instructions for OSX in README have been
- updated
-- Fixed bug 3535258 - Broken PostScript in German locale
-- Fixed bug 3375218 - Odometer Reads A Multiple Of Locos
-- Fixed MSVC compile problem and added missing function to mswlib
-- Updated doxygen configuration file to doxygen version 1.8.2
-- Added code to properly determine the postscript fonts occurring in
- a document.
-- Fixed the syntax of the Document Structure Comments.
-- Circle line tangent/center were interchanged
-- Fix cairo text drawing bugs by forcing painting with
- frequent redraws.
-- Locale prefix change to conform to FHS (tracker bug 3049900)
-- Internationalization support added for help button text.
-- FIX: replaced hard-coded XTRKCAD_LOCALE_DIR path with 'locale' based
- on application library directory (XTRKCAD_LOCALE_DIR is defined at
- makefiles generation time and does not reflect the place where the
- application is actually installed)
-- FIX: now it should work with CMake-2.8.1
-- Get command line parameter handling correct
-- make load last layout option work
-- Pango version check at compile time
-- Block and Switchmotor updates
-- FIX: "Gauge" translation support
-- FIX: application crash due to a double value used as a "%*" sprintf.
- scenario is "Manage" -> "Parts List..." -> "Price" (checkbox).
-- Bug fix for setting the minimum radius
-- FIX: hotbar redraw too slow under gtk-quartz
-- FIX: linux still crashed due to a cairo context access after its
- drawable destruction
-- FIX: workaround for OSX with GTK-Quartz -> pixmaps are not rendered
- when using the mask; and replaced gtk_pixmap_new deprecated function
- with gtk_image_new_from_pixmap
-- FIX: crash when displaying a non utf8 string in balloon help
-- FIX: warning removed: pointer targets in passing argument 1 of
- 'strcpy' differ in signedness
-- FIX: removed GTK run-time references to /opt/local in root directory
-- FIX: removed remained Xlib dependencies and added gtk configuration
- files when generating the OSX bundle
-- FIX: image in about dialog box was not being displayed
-- FIX: deallocate PangoFontDescription using the right function
-- FIX: EXC_BAD_ACCESS when displaying about dialog
-- ENH: replace the old font select dialog with the GTK standard one,
- and some code cleanup
-- FIX - text in layout and selection were not aligned
-- New 'About' and new icons
-- Add source for new button icons
-- LINUX Desktop File
-- New application icon
-- Improved support for bitmaps
-- New tip of the day icon
-- Enhanced bitmap display control
-- Improve internationalization support, use simple gettext on Win32
-
-
-
-INSTALLATION
-
-
-Windows
-
-XTrackCad has only been tested on Windows 7.
-
-The MS-Windows version of XTrackCad is shipped as a self-extracting/
-self-installing program using the NSIS Installer from Nullsoft Inc.
-
-Using Windows Explorer, locate the directory in which you downloaded or
-copied your new version of XTrackCAD.
-
-Start the installation program by double clicking on the
-[XTRKCAD-SETUP-4.3.0.EXE][] file icon.
-
-Follow the steps in the installation program.
-
-The installation lets you define the directory into which XTrackCAD is
-installed. The directory is created automatically if it doesn't already
-exist.
-
-A program folder named XTrackCAD 4.3.0 will be created during the
-installation process. This folder contains the program, documentation,
-parameter and example files. An existing installation of earlier
-versions of XTrackCad is not overwritten.
-
-A new program group named XTrackCad 4.3.0 will be created in the Start
-menu.
-
-
-Linux
-
-XTrackCAD for LINUX is shipped as a RPM file and a self extracting
-archive. You will need libc6, X11R6, GTK+2.0, webkitgtk.
-
-Installing from the RPM package.
-
-Use your operating system's package manager to install XTrackCAD.
-
-Installing from the self-extracting archive.
-
-After downloading open a command line then
-
- ./xtrkcad-setup-4.3.0.x86_64.sh --prefix=/usr/local --exclude-subdir
-
-This will install the executable in /usr/local/bin. A directory named
-xtrkcad will be created in /usr/local/share and all files will be
-unpacked into it.
-
-If you install XTrackCAD into another directory, set the XTRKCADLIB
-environment variable to point to that directory.
-
-
-
-RELEASE INFO
-
-
-Upgrade Information
-
-The available options for number formats have been extended. Check your
-setting in Options>Preferences
-
-
-
-BUILDING
-
-
-Overview
-
-The following instructions detail building XTrackCAD using CMake. CMake
-is a cross-platform build system, available at http://www.cmake.org,
-that can be used to generate builds for a variety of build tools ranging
-from "make" to Visual Studio and XCode. Using CMake you can build
-XTrackCAD on Windows, GNU/Linux, and Mac OSX using the build tool(s) of
-your choice.
-
-Building XTrackCAD on GNU/Linux
-
-- Obtain the current sources from Mercurial; I assume that they are
- stored locally at "~/src/xtrkcad". Note that the correct URL for
- read-only access to Mercurial is
- http://xtrkcad-fork.hg.sourceforge.net:8000/hgroot/xtrkcad-fork/xtrkcad
-- Create a separate build directory; for these instructions I assume
- that your build directory is "~/build/xtrkcad".
-- Run CMake from the build directory, passing it the path to the
- source directory:
-
- $ cd ~/build/xtrkcad $ ccmake ~/src/xtrkcad
-
-- Press the "c" key to configure the build. After a few moments you
- will see four options to configure: CMAKE_BUILD_TYPE,
- CMAKE_INSTALL_PREFIX, XTRKCAD_USE_GTK, and XTRKCAD_USE_GTK_CAIRO.
-- Use CMAKE_BUILD_TYPE to control the build type. Enter "Debug" for a
- debug build, "Release" for a release build, etc.
-- Use CMAKE_INSTALL_PREFIX to control where the software will be
- installed. For this example, I assume "~/install/xtrkcad".
-- Use XTRKCAD_USE_GETTEXT to add new locales (language translations).
- Choose "OFF" to use XTrackCAD's default language (English). Refer to
- http://www.xtrkcad.org/Wikka/Internationalization for
- additional information.
-- Use XTRKCAD_USE_GTK to control the user-interface back-end. Choose
- "OFF" for Windows, "ON" for all other platforms.
-- Use XTRKCAD_USE_GTK_CAIRO to enable optional high-quality
- antialiased Cairo rendering for the GTK back-end. This option has no
- effect unless you are using the GTK back-end.
-- Use XTRKCAD_USE_DOXYGEN to enable the production of type, function,
- etc., documentation from the the source code. Requires doxygen if
- enabled. Enable if and only if you intend to hack on the code.
-- If you made any changes, press the "c" key again to update your
- new configuration.
-- Once everything is configured to your satisfaction, press the "g"
- key to generate makefiles for your build.
-- Compile XTrkCad using your new build:
-
- $ make
-
-- Install the new binary:
-
- $ make install
-
-- Run the installed binary:
-
- $ ~/install/xtrkcad/bin/xtrkcad
-
-- If XTRKCAD_USE_DOXYGEN was enabled:
-
- $ make docs-doxygen
-
-to create the internals documentation. Read this documentation by
-pointing your web browser at
-~/build/xtrkcad/docs/doxygen/html/index.html.
-
-Building XTrackCAD on Mac OSX
-
-- You will need to install the following dependencies - I recommend
- using http://www.macports.org to obtain them:
-- GTK2
-- webkit
-- gnome-icon-theme
-- Once the prerequisites are installed the build instructions are the
- same as for the GNU/Linux build, above.
-- Remember that to run XTrackCAD on OSX, you need to have X11 running
- with your DISPLAY set.
-
-Building XTrackCAD on Windows
-
-- Obtain the current sources from Mercurial; I assume that they are
- stored locally at "c:/src/xtrkcad". Note that the correct URL for
- read-only access to Mercurial is
- http://xtrkcad-fork.hg.sourceforge.net:8000/hgroot/xtrkcad-fork/xtrkcad
-- Use the Windows Start menu to run CMake (cmake-gui).
-- Specify the source and build directories in the CMake window. You
- must provide a build directory outside the source tree - I
- use "c:/build/xtrkcad".
-- Press the "Configure" button to configure the build. You will be
- prompted for the type of build to generate. Choose your desired
- tool - I used "Visual Studio 10". After a few moments you will see
- three options to configure: CMAKE_INSTALL_PREFIX, XTRKCAD_USE_GTK,
- and XTRKCAD_USE_GTK_CAIRO.
-- Use CMAKE_INSTALL_PREFIX to control where the software will be
- installed. The default "c:/Program Files/XTrkCAD" is a good choice.
-- Use XTRKCAD_USE_GETTEXT to add new locales (language translations).
- Choose "OFF" to use XTrackCAD's default language (English). Refer to
- http://www.xtrkcad.org/Wikka/Internationalization for
- additional information.
-- Use XTRKCAD_USE_GTK to control the user-interface back-end. Choose
- "OFF" for Windows.
-- Use XTRKCAD_USE_GTK_CAIRO to enable optional high-quality
- antialiased Cairo rendering for the GTK back-end. This option has no
- effect unless on Windows.
-- Use XTRKCAD_USE_DOXYGEN to enable the production of type, function,
- etc., documentation from the the source code. Requires doxygen if
- enabled. Enable if and only if you intend to hack on the code.
-- If you made any changes, press the "Configure" button again to
- update your new configuration.
-- Once everything is configured to your satisfaction, press the "OK"
- button to generate project files for your build.
-- Compile XTrackCad using the new project files. For example, start
- MSVC and open the "XTrkCAD.sln" solution file which is located in
- your build directory.
-- Build the "BUILD_ALL" project to build the software.
-- Build the "INSTALL" project to install the software.
-- Run XTrackCAD by double-clicking its icon located in the install
- directory - for example: c:/Program Files/XTrkCAD/bin/xtrkcad.exe.
-
-
-Where to go for support
-
-The following web addresses will be helpful for any questions or bug
-reports
-
-- The Yahoo!Group mailing list
- http://groups.yahoo.com/projects/XTrkCad
-- The project website for the open source development
- http://www.xtrackcad.org/
-- The official Sourceforge site
- http://www.sourceforge.net/groups/xtrkcad-fork/
-
-Thanks for your interest in XTrackCAD.
diff --git a/app/lib/examples/DVRR v3.0 E Stroudsburg - Pt Jervis.xtc b/app/lib/examples/DVRR v3.0 E Stroudsburg - Pt Jervis.xtc
index bc2d80f..5465b68 100644
--- a/app/lib/examples/DVRR v3.0 E Stroudsburg - Pt Jervis.xtc
+++ b/app/lib/examples/DVRR v3.0 E Stroudsburg - Pt Jervis.xtc
@@ -2287,58 +2287,58 @@ TURNOUT 230 1 0 0 0 HO 2 194.697360 124.297621 0 21.843766 "Walthers 90' Turn T
P "17" 49 50 51
P "18" 52 53 54
S 0 0.000000 0.000000 6.875000 0.000000 6.250000
- S 16777215 0.000000 0.000000 6.250000 0.000000 -6.250000
+ S 0 0.000000 0.000000 6.250000 0.000000 -6.250000
S 0 0.000000 0.000000 -6.250000 0.000000 -6.875000
S 0 0.000000 1.193831 6.770553 1.085301 6.155048
- S 16777215 0.000000 1.085301 6.155048 -1.085301 -6.155048
+ S 0 0.000000 1.085301 6.155048 -1.085301 -6.155048
S 0 0.000000 -1.085301 -6.155048 -1.193831 -6.770553
S 0 0.000000 2.351388 6.460387 2.137626 5.873079
- S 16777215 0.000000 2.137626 5.873079 -2.137626 -5.873079
+ S 0 0.000000 2.137626 5.873079 -2.137626 -5.873079
S 0 0.000000 -2.137626 -5.873079 -2.351388 -6.460387
S 0 0.000000 3.437500 5.953925 3.125000 5.412659
- S 16777215 0.000000 3.125000 5.412659 -3.125000 -5.412659
+ S 0 0.000000 3.125000 5.412659 -3.125000 -5.412659
S 0 0.000000 -3.125000 -5.412659 -3.437500 -5.953925
S 0 0.000000 4.419165 5.266556 4.017423 4.787778
- S 16777215 0.000000 4.017423 4.787778 -4.017423 -4.787778
+ S 0 0.000000 4.017423 4.787778 -4.017423 -4.787778
S 0 0.000000 -4.017423 -4.787778 -4.419165 -5.266556
S 0 0.000000 5.266556 4.419165 4.787778 4.017423
- S 16777215 0.000000 4.787778 4.017423 -4.787778 -4.017423
+ S 0 0.000000 4.787778 4.017423 -4.787778 -4.017423
S 0 0.000000 -4.787778 -4.017423 -5.266556 -4.419165
S 0 0.000000 5.953925 3.437500 5.412659 3.125000
- S 16777215 0.000000 5.412659 3.125000 -5.412659 -3.125000
+ S 0 0.000000 5.412659 3.125000 -5.412659 -3.125000
S 0 0.000000 -5.412659 -3.125000 -5.953925 -3.437500
S 0 0.000000 6.460387 2.351388 5.873079 2.137626
- S 16777215 0.000000 5.873079 2.137626 -5.873079 -2.137626
+ S 0 0.000000 5.873079 2.137626 -5.873079 -2.137626
S 0 0.000000 -5.873079 -2.137626 -6.460387 -2.351388
S 0 0.000000 6.770553 1.193831 6.155048 1.085301
- S 16777215 0.000000 6.155048 1.085301 -6.155048 -1.085301
+ S 0 0.000000 6.155048 1.085301 -6.155048 -1.085301
S 0 0.000000 -6.155048 -1.085301 -6.770553 -1.193831
S 0 0.000000 6.875000 0.000000 6.250000 0.000000
S 0 0.000000 6.250000 0.000000 -6.875000 0.000000
S 0 0.000000 -6.875000 0.000000 -6.250000 0.000000
S 0 0.000000 6.770553 -1.193831 6.155048 -1.085301
- S 16777215 0.000000 6.155048 -1.085301 -6.155048 1.085301
+ S 0 0.000000 6.155048 -1.085301 -6.155048 1.085301
S 0 0.000000 -6.155048 1.085301 -6.770553 1.193831
S 0 0.000000 6.460387 -2.351388 5.873079 -2.137626
- S 16777215 0.000000 5.873079 -2.137626 -5.873079 2.137626
+ S 0 0.000000 5.873079 -2.137626 -5.873079 2.137626
S 0 0.000000 -5.873079 2.137626 -6.460387 2.351388
S 0 0.000000 5.953925 -3.437500 5.412659 -3.125000
- S 16777215 0.000000 5.412659 -3.125000 -5.412659 3.125000
+ S 0 0.000000 5.412659 -3.125000 -5.412659 3.125000
S 0 0.000000 -5.412659 3.125000 -5.953925 3.437500
S 0 0.000000 5.266556 -4.419165 4.787778 -4.017423
- S 16777215 0.000000 4.787778 -4.017423 -4.787778 4.017423
+ S 0 0.000000 4.787778 -4.017423 -4.787778 4.017423
S 0 0.000000 -4.787778 4.017423 -5.266556 4.419165
S 0 0.000000 4.419165 -5.266556 4.017423 -4.787778
- S 16777215 0.000000 4.017423 -4.787778 -4.017423 4.787778
+ S 0 0.000000 4.017423 -4.787778 -4.017423 4.787778
S 0 0.000000 -4.017423 4.787778 -4.419165 5.266556
S 0 0.000000 3.437500 -5.953925 3.125000 -5.412659
- S 16777215 0.000000 3.125000 -5.412659 -3.125000 5.412659
+ S 0 0.000000 3.125000 -5.412659 -3.125000 5.412659
S 0 0.000000 -3.125000 5.412659 -3.437500 5.953925
S 0 0.000000 2.351388 -6.460387 2.137626 -5.873079
- S 16777215 0.000000 2.137626 -5.873079 -2.137626 5.873079
+ S 0 0.000000 2.137626 -5.873079 -2.137626 5.873079
S 0 0.000000 -2.137626 5.873079 -2.351388 6.460387
S 0 0.000000 1.193831 -6.770553 1.085301 -6.155048
- S 16777215 0.000000 1.085301 -6.155048 -1.085301 6.155048
+ S 0 0.000000 1.085301 -6.155048 -1.085301 6.155048
S 0 0.000000 -1.085301 6.155048 -1.193831 6.770553
A3 11579568 0.053333 6.875000 0.000000 0.000000 0 0.000000 360.000000
A3 11579568 0.053333 6.250000 0.000000 0.000000 0 0.000000 360.000000
diff --git a/app/lib/mdtotxt.bat b/app/lib/mdtotxt.bat
deleted file mode 100644
index 970063c..0000000
--- a/app/lib/mdtotxt.bat
+++ /dev/null
@@ -1,3 +0,0 @@
-@echo off
-REM Convert the Readme from Markdown to plain text
-pandoc Readme.md --from Markdown --to plain -o Readme.txt \ No newline at end of file
diff --git a/app/lib/params/Any-CTC_panel.xtp b/app/lib/params/Any-CTC_panel.xtp
index d70cd16..ab7dfd7 100644
--- a/app/lib/params/Any-CTC_panel.xtp
+++ b/app/lib/params/Any-CTC_panel.xtp
@@ -246,143 +246,143 @@ STRUCTURE * "Signals 2 Aspect Signal 2DS"
L 0 0.020000 -0.100000 0.000000 0.100000 0.000000
END
SUBCONTENTS Track Symbols - Straights
-TURNOUT NONE " 0.5"" Straight (adjustable to 6""" S"
+TURNOUT * " 0.5"" Straight (adjustable to 6""" S"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 0.500000 0.000000 90.000000
X adjustable 0.500000 6.000000
- S 16777215 0 0.000000 0.000000 0.500000 0.000000
+ S 0 0 0.000000 0.000000 0.500000 0.000000
L 0 0.080000 0.000000 0.000000 0.500000 0.000000
END
-TURNOUT NONE "Block Gap" BG"
+TURNOUT * "Block Gap" BG"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 0.500000 0.000000 90.000000
- S 16777215 0 0.000000 0.000000 0.500000 0.000000
+ S 0 0 0.000000 0.000000 0.500000 0.000000
L 0 0.080000 0.000000 0.000000 0.200000 0.000000
L 0 0.080000 0.300000 0.000000 0.500000 0.000000
END
SUBCONTENTS Track Symbols - Turnouts
-TURNOUT NONE "Turnout LH(GAP)" LHG"
+TURNOUT * "Turnout LH(GAP)" LHG"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 1.000000 0.000000 90.000000
E 1.000000 0.500000 90.000000
- S 16777215 0 0.000000 0.000000 1.000000 0.000000
- S 16777215 0 0.300000 0.000000 0.800000 0.500000
- S 16777215 0 0.800000 0.500000 1.000000 0.500000
+ S 0 0 0.000000 0.000000 1.000000 0.000000
+ S 0 0 0.300000 0.000000 0.800000 0.500000
+ S 0 0 0.800000 0.500000 1.000000 0.500000
L 0 0.080000 0.050000 0.000000 0.950000 0.000000
L 0 0.080000 0.300000 0.000000 0.825000 0.525000
L 0 0.080000 0.800000 0.500000 0.950000 0.500000
END
-TURNOUT NONE "Turnout RH(GAP)" RHG"
+TURNOUT * "Turnout RH(GAP)" RHG"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 1.000000 0.000000 90.000000
E 1.000000 -0.500000 90.000000
- S 16777215 0 0.000000 0.000000 1.000000 0.000000
- S 16777215 0 0.300000 0.000000 0.800000 -0.500000
- S 16777215 0 0.800000 -0.500000 1.000000 -0.500000
+ S 0 0 0.000000 0.000000 1.000000 0.000000
+ S 0 0 0.300000 0.000000 0.800000 -0.500000
+ S 0 0 0.800000 -0.500000 1.000000 -0.500000
L 0 0.080000 0.050000 0.000000 0.950000 0.000000
L 0 0.080000 0.300000 0.000000 0.825000 -0.525000
L 0 0.080000 0.800000 -0.500000 0.950000 -0.500000
END
-TURNOUT NONE "Turnout LH" LH"
+TURNOUT * "Turnout LH" LH"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 1.000000 0.000000 90.000000
E 1.000000 0.500000 90.000000
- S 16777215 0 0.000000 0.000000 1.000000 0.000000
- S 16777215 0 0.300000 0.000000 0.800000 0.500000
- S 16777215 0 0.800000 0.500000 1.000000 0.500000
+ S 0 0 0.000000 0.000000 1.000000 0.000000
+ S 0 0 0.300000 0.000000 0.800000 0.500000
+ S 0 0 0.800000 0.500000 1.000000 0.500000
L 0 0.080000 0.000000 0.000000 1.000000 0.000000
L 0 0.080000 0.300000 0.000000 0.825000 0.525000
L 0 0.080000 0.800000 0.500000 1.000000 0.500000
END
-TURNOUT NONE "Turnout RH" RH"
+TURNOUT * "Turnout RH" RH"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 1.000000 0.000000 90.000000
E 1.000000 -0.500000 90.000000
- S 16777215 0 0.000000 0.000000 1.000000 0.000000
- S 16777215 0 0.300000 0.000000 0.800000 -0.500000
- S 16777215 0 0.800000 -0.500000 1.000000 -0.500000
+ S 0 0 0.000000 0.000000 1.000000 0.000000
+ S 0 0 0.300000 0.000000 0.800000 -0.500000
+ S 0 0 0.800000 -0.500000 1.000000 -0.500000
L 0 0.080000 0.000000 0.000000 1.000000 0.000000
L 0 0.080000 0.300000 0.000000 0.825000 -0.525000
L 0 0.080000 0.800000 -0.500000 1.000000 -0.500000
END
SUBCONTENTS Track Symbols - Crossovers
-TURNOUT NONE "Crossover LH(GAP)" COLHG"
+TURNOUT * "Crossover LH(GAP)" COLHG"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 0.000000 0.500000 270.000000
E 1.000000 0.000000 90.000000
E 1.000000 0.500000 90.000000
- S 16777215 0 0.000000 0.000000 1.000000 0.000000
- S 16777215 0 0.000000 0.500000 1.000000 0.500000
+ S 0 0 0.000000 0.000000 1.000000 0.000000
+ S 0 0 0.000000 0.500000 1.000000 0.500000
L 0 0.080000 0.050000 0.000000 0.950000 0.000000
L 0 0.080000 0.250000 0.000000 0.750000 0.500000
L 0 0.080000 0.050000 0.500000 0.950000 0.500000
END
-TURNOUT NONE "Crossover RH(GAP)" CORHG"
+TURNOUT * "Crossover RH(GAP)" CORHG"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 0.000000 -0.500000 270.000000
E 1.000000 0.000000 90.000000
E 1.000000 -0.500000 90.000000
- S 16777215 0 0.000000 0.000000 1.000000 0.000000
- S 16777215 0 0.000000 -0.500000 1.000000 -0.500000
+ S 0 0 0.000000 0.000000 1.000000 0.000000
+ S 0 0 0.000000 -0.500000 1.000000 -0.500000
L 0 0.080000 0.050000 0.000000 0.950000 0.000000
L 0 0.080000 0.250000 0.000000 0.750000 -0.500000
L 0 0.080000 0.050000 -0.500000 0.950000 -0.500000
END
-TURNOUT NONE "Crossover LH" COLH"
+TURNOUT * "Crossover LH" COLH"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 0.000000 0.500000 270.000000
E 1.000000 0.000000 90.000000
E 1.000000 0.500000 90.000000
- S 16777215 0 0.000000 0.000000 1.000000 0.000000
- S 16777215 0 0.000000 0.500000 1.000000 0.500000
+ S 0 0 0.000000 0.000000 1.000000 0.000000
+ S 0 0 0.000000 0.500000 1.000000 0.500000
L 0 0.080000 0.000000 0.000000 1.000000 0.000000
L 0 0.080000 0.250000 0.000000 0.750000 0.500000
L 0 0.080000 0.000000 0.500000 1.000000 0.500000
END
-TURNOUT NONE "Crossover RH" CORH"
+TURNOUT * "Crossover RH" CORH"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 0.000000 -0.500000 270.000000
E 1.000000 0.000000 90.000000
E 1.000000 -0.500000 90.000000
- S 16777215 0 0.000000 0.000000 1.000000 0.000000
- S 16777215 0 0.000000 -0.500000 1.000000 -0.500000
+ S 0 0 0.000000 0.000000 1.000000 0.000000
+ S 0 0 0.000000 -0.500000 1.000000 -0.500000
L 0 0.080000 0.000000 0.000000 1.000000 0.000000
L 0 0.080000 0.250000 0.000000 0.750000 -0.500000
L 0 0.080000 0.000000 -0.500000 1.000000 -0.500000
END
-TURNOUT NONE "Dbl.Crossover(GAP)" DBLCOG"
+TURNOUT * "Dbl.Crossover(GAP)" DBLCOG"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 0.000000 0.500000 270.000000
E 1.000000 0.000000 90.000000
E 1.000000 0.500000 90.000000
- S 16777215 0 0.000000 0.000000 1.000000 0.000000
- S 16777215 0 0.000000 0.500000 1.000000 0.500000
+ S 0 0 0.000000 0.000000 1.000000 0.000000
+ S 0 0 0.000000 0.500000 1.000000 0.500000
L 0 0.080000 0.050000 0.000000 0.950000 0.000000
L 0 0.080000 0.250000 0.000000 0.750000 0.500000
L 0 0.080000 0.250000 0.500000 0.750000 0.000000
L 0 0.080000 0.050000 0.500000 0.950000 0.500000
END
-TURNOUT NONE "Dbl.Crossover" DBLCO"
+TURNOUT * "Dbl.Crossover" DBLCO"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 0.000000 0.500000 270.000000
E 1.000000 0.000000 90.000000
E 1.000000 0.500000 90.000000
- S 16777215 0 0.000000 0.000000 1.000000 0.000000
- S 16777215 0 0.000000 0.500000 1.000000 0.500000
+ S 0 0 0.000000 0.000000 1.000000 0.000000
+ S 0 0 0.000000 0.500000 1.000000 0.500000
L 0 0.080000 0.000000 0.000000 1.000000 0.000000
L 0 0.080000 0.250000 0.000000 0.750000 0.500000
L 0 0.080000 0.250000 0.500000 0.750000 0.000000
@@ -390,25 +390,25 @@ TURNOUT NONE "Dbl.Crossover" DBLCO"
END
SUBCONTENTS Track Symbols - Crossings
-TURNOUT NONE "90 Crossing" 90C"
+TURNOUT * "90 Crossing" 90C"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 0.500000 0.000000 90.000000
E 0.250000 0.250000 0.000000
E 0.250000 -0.250000 180.000000
- S 16777215 0 0.000000 0.000000 0.500000 0.000000
- S 16777215 0 0.250000 0.250000 0.250000 -0.250000
+ S 0 0 0.000000 0.000000 0.500000 0.000000
+ S 0 0 0.250000 0.250000 0.250000 -0.250000
L 0 0.080000 0.000000 0.000000 0.500000 0.000000
L 0 0.080000 0.250000 0.250000 0.250000 -0.250000
END
-TURNOUT NONE "45 Crossing" 45C"
+TURNOUT * "45 Crossing" 45C"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 0.500000 0.000000 90.000000
E 0.500000 0.250000 45.000000
E 0.000000 -0.2500000 225.000000
- S 16777215 0 0.000000 0.000000 0.500000 0.000000
- S 16777215 0 0.000000 -0.25000 0.500000 0.250000
+ S 0 0 0.000000 0.000000 0.500000 0.000000
+ S 0 0 0.000000 -0.25000 0.500000 0.250000
L 0 0.080000 0.000000 0.000000 0.500000 0.000000
L 0 0.080000 0.000000 -0.250000 0.500000 0.250000
END
diff --git a/app/lib/params/AtlasTrueTrk.xtp b/app/lib/params/AtlasTrueTrk.xtp
index c4c5f02..4203234 100644
--- a/app/lib/params/AtlasTrueTrk.xtp
+++ b/app/lib/params/AtlasTrueTrk.xtp
@@ -45,7 +45,7 @@ TURNOUT HO "Atlas True-Track Straight 1.5in 453"
SUBCONTENTS Atlas True-Tack - Curve Track
-TURNOUT HO "Atlas True-Track Curved 18in 30 411/460"
+TURNOUT HO "Atlas True-Track Curved 18in 30° 411/460"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 9.000000 -2.411543 120.000000
@@ -53,7 +53,7 @@ TURNOUT HO "Atlas True-Track Curved 18in 30 411/460"
A 11579568 0.053333 18.984375 0.000000 -18.000000 0.000000 30.000000
A 11579568 0.053333 17.015625 0.000000 -18.000000 0.000000 30.000000
END
-TURNOUT HO "Atlas True-Track Curved 18in 15 461"
+TURNOUT HO "Atlas True-Track Curved 18in 15° 461"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.658743 -0.613335 105.000000
@@ -61,7 +61,7 @@ TURNOUT HO "Atlas True-Track Curved 18in 15 461"
A 11579568 0.053333 18.984375 0.000000 -18.000000 0.000000 15.000000
A 11579568 0.053333 17.015625 0.000000 -18.000000 0.000000 15.000000
END
-TURNOUT HO "Atlas True-Track Curved 22in 22.5 412/463"
+TURNOUT HO "Atlas True-Track Curved 22in 22.5° 412/463"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 8.419036 -1.674650 112.500000
@@ -69,7 +69,7 @@ TURNOUT HO "Atlas True-Track Curved 22in 22.5 412/463"
A 11579568 0.053333 22.984375 0.000000 -22.000000 0.000000 22.500000
A 11579568 0.053333 21.015625 0.000000 -22.000000 0.000000 22.500000
END
-TURNOUT HO "Atlas True-Track Curved 22in 7.5 464"
+TURNOUT HO "Atlas True-Track Curved 22in 7.5° 464"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 2.871576 -0.188213 97.500000
@@ -77,7 +77,7 @@ TURNOUT HO "Atlas True-Track Curved 22in 7.5 464"
A 11579568 0.053333 22.984375 0.000000 -22.000000 0.000000 7.500000
A 11579568 0.053333 21.015625 0.000000 -22.000000 0.000000 7.500000
END
-TURNOUT HO "Atlas True-Track Curved 24in 22.5 468"
+TURNOUT HO "Atlas True-Track Curved 24in 22.5° 468"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 9.184402 -1.811266 112.500000
@@ -180,7 +180,7 @@ TURNOUT HO "Atlas True-Track Right 22"" Snap Remote/Manual Turnout 453/455"
SUBCONTENTS Atlas True-Tack - Misc Track
-TURNOUT HO "Atlas True-Track Crossing 90 476"
+TURNOUT HO "Atlas True-Track Crossing 90° 476"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 2.000000 0.000000 90.000000
diff --git a/app/lib/params/BachmannEZ-HO.xtp b/app/lib/params/BachmannEZ-HO.xtp
index 30af359..13438a0 100644
--- a/app/lib/params/BachmannEZ-HO.xtp
+++ b/app/lib/params/BachmannEZ-HO.xtp
@@ -86,7 +86,7 @@ TURNOUT HO "Bachmann E-Z Track Straight 0.75in 44592E"
SUBCONTENTS Bachmann True-Tack - Curve Track
-TURNOUT HO "Bachmann E-Z Track Curved 15in 30 44505"
+TURNOUT HO "Bachmann E-Z Track Curved 15in 30° 44505"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 7.500000 -2.009619 120.000000
@@ -94,7 +94,7 @@ TURNOUT HO "Bachmann E-Z Track Curved 15in 30 44505"
A 11579568 0.053333 15.984375 0.000000 -15.000000 0.000000 30.000000
A 11579568 0.053333 14.015625 0.000000 -15.000000 0.000000 30.000000
END
-TURNOUT HO "Bachmann E-Z Track Curved 18in 30 44501/44401"
+TURNOUT HO "Bachmann E-Z Track Curved 18in 30° 44501/44401"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 9.000000 -2.411543 120.000000
@@ -102,7 +102,7 @@ TURNOUT HO "Bachmann E-Z Track Curved 18in 30 44501/44401"
A 11579568 0.053333 18.984375 0.000000 -18.000000 0.000000 30.000000
A 11579568 0.053333 17.015625 0.000000 -18.000000 0.000000 30.000000
END
-TURNOUT HO "Bachmann E-Z Track Curved 18in 15 44531"
+TURNOUT HO "Bachmann E-Z Track Curved 18in 15° 44531"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.658743 -0.613335 105.000000
@@ -110,7 +110,7 @@ TURNOUT HO "Bachmann E-Z Track Curved 18in 15 44531"
A 11579568 0.053333 18.984375 0.000000 -18.000000 0.000000 15.000000
A 11579568 0.053333 17.015625 0.000000 -18.000000 0.000000 15.000000
END
-TURNOUT HO "Bachmann E-Z Track Curved 18in 10 44530"
+TURNOUT HO "Bachmann E-Z Track Curved 18in 10° 44530"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 3.125667 -0.273460 100.000000
@@ -118,7 +118,7 @@ TURNOUT HO "Bachmann E-Z Track Curved 18in 10 44530"
A 11579568 0.053333 18.984375 0.000000 -18.000000 0.000000 10.000000
A 11579568 0.053333 17.015625 0.000000 -18.000000 0.000000 10.000000
END
-TURNOUT HO "Bachmann E-Z Track Curved 22in 22.5 44503/44403"
+TURNOUT HO "Bachmann E-Z Track Curved 22in 22.5° 44503/44403"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 8.419036 -1.674650 112.500000
@@ -126,7 +126,7 @@ TURNOUT HO "Bachmann E-Z Track Curved 22in 22.5 44503/44403"
A 11579568 0.053333 22.984375 0.000000 -22.000000 0.000000 22.500000
A 11579568 0.053333 21.015625 0.000000 -22.000000 0.000000 22.500000
END
-TURNOUT HO "Bachmann E-Z Track Curved 22in 11.25 44532"
+TURNOUT HO "Bachmann E-Z Track Curved 22in 11.25° 44532"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.291987 -0.422724 101.250000
@@ -134,7 +134,7 @@ TURNOUT HO "Bachmann E-Z Track Curved 22in 11.25 44532"
A 11579568 0.053333 22.984375 0.000000 -22.000000 0.000000 11.250000
A 11579568 0.053333 21.015625 0.000000 -22.000000 0.000000 11.250000
END
-TURNOUT HO "Bachmann E-Z Track Curved 26in 18 44519"
+TURNOUT HO "Bachmann E-Z Track Curved 26in 18° 44519"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 8.034442 -1.272531 108.000000
@@ -142,7 +142,7 @@ TURNOUT HO "Bachmann E-Z Track Curved 26in 18 44519"
A 11579568 0.053333 26.984375 0.000000 -26.000000 0.000000 18.000000
A 11579568 0.053333 25.015625 0.000000 -26.000000 0.000000 18.000000
END
-TURNOUT HO "Bachmann E-Z Track Curved 28in 18 44506"
+TURNOUT HO "Bachmann E-Z Track Curved 28in 18° 44506"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 8.652476 -1.370418 108.000000
@@ -150,7 +150,7 @@ TURNOUT HO "Bachmann E-Z Track Curved 28in 18 44506"
A 11579568 0.053333 28.984375 0.000000 -28.000000 0.000000 18.000000
A 11579568 0.053333 27.015625 0.000000 -28.000000 0.000000 18.000000
END
-TURNOUT HO "Bachmann E-Z Track Curved 33.25in 18 44504"
+TURNOUT HO "Bachmann E-Z Track Curved 33.25in 18° 44504"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 10.274815 -1.627371 108.000000
@@ -158,7 +158,7 @@ TURNOUT HO "Bachmann E-Z Track Curved 33.25in 18 44504"
A 11579568 0.053333 34.234375 0.000000 -33.250000 0.000000 18.000000
A 11579568 0.053333 32.265625 0.000000 -33.250000 0.000000 18.000000
END
-TURNOUT HO "Bachmann E-Z Track Curved 33.25in 12 44509"
+TURNOUT HO "Bachmann E-Z Track Curved 33.25in 12° 44509"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 6.913064 -0.726592 102.000000
@@ -166,7 +166,7 @@ TURNOUT HO "Bachmann E-Z Track Curved 33.25in 12 44509"
A 11579568 0.053333 34.234375 0.000000 -33.250000 0.000000 12.000000
A 11579568 0.053333 32.265625 0.000000 -33.250000 0.000000 12.000000
END
-TURNOUT HO "Bachmann E-Z Track Curved 33.25in 6 44508"
+TURNOUT HO "Bachmann E-Z Track Curved 33.25in 6° 44508"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 3.475571 -0.182147 96.000000
@@ -174,7 +174,7 @@ TURNOUT HO "Bachmann E-Z Track Curved 33.25in 6 44508"
A 11579568 0.053333 34.234375 0.000000 -33.250000 0.000000 6.000000
A 11579568 0.053333 32.265625 0.000000 -33.250000 0.000000 6.000000
END
-TURNOUT HO "Bachmann E-Z Track Curved 35.5in 18 44507"
+TURNOUT HO "Bachmann E-Z Track Curved 35.5in 18° 44507"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 10.970103 -1.737494 108.000000
@@ -348,7 +348,7 @@ TURNOUT HO "Bachmann E-Z Track #6 Left Crossover Turnout 44137"
SUBCONTENTS Bachmann True-Tack - Misc Track
-TURNOUT HO "Bachmann E-Z Track Crossing 90 w/ext 44541/44411"
+TURNOUT HO "Bachmann E-Z Track Crossing 90° w/ext 44541/44411"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 4.000000 0.000000 90.000000
@@ -365,7 +365,7 @@ TURNOUT HO "Bachmann E-Z Track Crossing 90 w/ext 44541/44411"
L 11579568 0.053333 1.015625 -0.984375 1.015625 -2.000000
L 11579568 0.053333 2.984375 -0.984375 2.984375 -2.000000
END
-TURNOUT HO "Bachmann E-Z Track Crossing 90 w/o ext 44541/44411"
+TURNOUT HO "Bachmann E-Z Track Crossing 90° w/o ext 44541/44411"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 2.000000 0.000000 90.000000
@@ -374,7 +374,7 @@ TURNOUT HO "Bachmann E-Z Track Crossing 90 w/o ext 44541/44411"
S 0 0 0.000000 0.000000 2.000000 0.000000
S 0 0 1.000000 1.000000 1.000000 -1.000000
END
-TURNOUT HO "Bachmann E-Z Track Crossing 90 2" Str 44541/44411"
+TURNOUT HO "Bachmann E-Z Track Crossing 90° 2" Str 44541/44411"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 2.000000 0.000000 90.000000
@@ -382,7 +382,7 @@ TURNOUT HO "Bachmann E-Z Track Crossing 90 2" Str 44541/44411"
L 11579568 0.053333 0.000000 0.984375 2.000000 0.984375
L 11579568 0.053333 0.000000 -0.984375 2.000000 -0.984375
END
-TURNOUT HO "Bachmann E-Z Track Crossing 60 476"
+TURNOUT HO "Bachmann E-Z Track Crossing 60° 476"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 4.000000 0.000000 90.000000
@@ -399,7 +399,7 @@ TURNOUT HO "Bachmann E-Z Track Crossing 60 476"
L 11579568 0.053333 0.147506 -1.239863 0.312750 -0.984375
L 11579568 0.053333 1.852494 -2.224238 2.568329 -0.984375
END
-TURNOUT HO "Bachmann E-Z Track Crossing 45 476"
+TURNOUT HO "Bachmann E-Z Track Crossing 45° 476"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 5.000000 0.000000 90.000000
@@ -412,7 +412,7 @@ TURNOUT HO "Bachmann E-Z Track Crossing 45 476"
L 11579568 0.053333 2.056084 0.984375 3.571709 2.463825
L 11579568 0.053333 1.428291 -2.463825 2.943916 -0.984375
END
-TURNOUT HO "Bachmann E-Z Track Crossing 30 44540/44440"
+TURNOUT HO "Bachmann E-Z Track Crossing 30° 44540/44440"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 10.000000 0.000000 90.000000
@@ -542,7 +542,7 @@ TURNOUT HO "Bachmann E-Z Track Hayes Bumper 44591/44491"
L 11579568 0.053333 0.000000 0.984375 2.500000 0.984375
L 11579568 0.053333 0.000000 -0.984375 2.500000 -0.984375
END
-TURNOUT HO "Bachmann E-Z Track Auto-Reverse Curved 18in 30 44549"
+TURNOUT HO "Bachmann E-Z Track Auto-Reverse Curved 18in 30° 44549"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 9.000000 -2.411543 120.000000
@@ -550,7 +550,7 @@ TURNOUT HO "Bachmann E-Z Track Auto-Reverse Curved 18in 30 44549"
A 11579568 0.053333 18.984375 0.000000 -18.000000 0.000000 30.000000
A 11579568 0.053333 17.015625 0.000000 -18.000000 0.000000 30.000000
END
-TURNOUT HO "Bachmann E-Z Track Rerailer Curved 18in 30 44529/44429"
+TURNOUT HO "Bachmann E-Z Track Rerailer Curved 18in 30° 44529/44429"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 9.000000 -2.411543 120.000000
@@ -558,7 +558,7 @@ TURNOUT HO "Bachmann E-Z Track Rerailer Curved 18in 30 44529/44429"
A 11579568 0.053333 18.984375 0.000000 -18.000000 0.000000 30.000000
A 11579568 0.053333 17.015625 0.000000 -18.000000 0.000000 30.000000
END
-TURNOUT HO "Bachmann E-Z Track Terminal Curved 18in 30 44502/44402"
+TURNOUT HO "Bachmann E-Z Track Terminal Curved 18in 30° 44502/44402"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 9.000000 -2.411543 120.000000
diff --git a/app/lib/params/BachmannEZ-N.xtp b/app/lib/params/BachmannEZ-N.xtp
index c71e82f..2db6eea 100644
--- a/app/lib/params/BachmannEZ-N.xtp
+++ b/app/lib/params/BachmannEZ-N.xtp
@@ -107,7 +107,7 @@ TURNOUT N "Bachmann EZ Track Straight 3/4 44899D"
END
SUBCONTENTS Bachmann EZ Track N-Scale Curved Track
-TURNOUT N "Bachmann EZ Track Curve 11.25R 30 44801"
+TURNOUT N "Bachmann EZ Track Curve 11.25R 30° 44801"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 5.625000 -1.507214 120.000000
@@ -115,7 +115,7 @@ TURNOUT N "Bachmann EZ Track Curve 11.25R 30 44801"
A 11579568 0.053333 10.804226 0.000000 -11.250000 0.000000 30.000000
A 11579568 0.053333 11.695774 0.000000 -11.250000 0.000000 30.000000
END
-TURNOUT N "Bachmann EZ Track Curve 11.25R 15 44821"
+TURNOUT N "Bachmann EZ Track Curve 11.25R 15° 44821"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 2.911712 -0.383334 105.000000
@@ -123,7 +123,7 @@ TURNOUT N "Bachmann EZ Track Curve 11.25R 15 44821"
A 11579568 0.053333 11.695774 0.000000 -11.250000 0.000000 15.000000
A 11579568 0.053333 10.804226 0.000000 -11.250000 0.000000 15.000000
END
-TURNOUT N "Bachmann EZ Track Curve 11.25R 7.5 44831"
+TURNOUT N "Bachmann EZ Track Curve 11.25R 7.5° 44831"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 1.468418 -0.096245 97.500000
@@ -131,7 +131,7 @@ TURNOUT N "Bachmann EZ Track Curve 11.25R 7.5 44831"
A 11579568 0.053333 11.695774 0.000000 -11.250000 0.000000 7.500000
A 11579568 0.053333 10.804226 0.000000 -11.250000 0.000000 7.500000
END
-TURNOUT N "Bachmann EZ Track Curve 12.5R 30 44852"
+TURNOUT N "Bachmann EZ Track Curve 12.5R 30° 44852"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 6.250000 -1.674682 120.000000
@@ -139,7 +139,7 @@ TURNOUT N "Bachmann EZ Track Curve 12.5R 30 44852"
A 11579568 0.053333 12.054226 0.000000 -12.500000 0.000000 30.000000
A 11579568 0.053333 12.945774 0.000000 -12.500000 0.000000 30.000000
END
-TURNOUT N "Bachmann EZ Track Half-Curve 12.5R 15 44822"
+TURNOUT N "Bachmann EZ Track Half-Curve 12.5R 15° 44822"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 3.235238 -0.425927 105.000000
@@ -147,7 +147,7 @@ TURNOUT N "Bachmann EZ Track Half-Curve 12.5R 15 44822"
A 11579568 0.053333 12.054226 0.000000 -12.500000 0.000000 15.000000
A 11579568 0.053333 12.945774 0.000000 -12.500000 0.000000 15.000000
END
-TURNOUT N "Bachmann EZ Track Curve 12.5R 7.5 44832"
+TURNOUT N "Bachmann EZ Track Curve 12.5R 7.5° 44832"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 1.631576 -0.106939 97.500000
@@ -155,7 +155,7 @@ TURNOUT N "Bachmann EZ Track Curve 12.5R 7.5 44832"
A 11579568 0.053333 12.945774 0.000000 -12.500000 0.000000 7.500000
A 11579568 0.053333 12.054226 0.000000 -12.500000 0.000000 7.500000
END
-TURNOUT N "Bachmann EZ Track Curve 14R 30 44853"
+TURNOUT N "Bachmann EZ Track Curve 14R 30° 44853"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 6.999995 -1.875641 120.000000
@@ -163,7 +163,7 @@ TURNOUT N "Bachmann EZ Track Curve 14R 30 44853"
A 11579568 0.053333 13.554226 0.000000 -14.000000 0.000000 30.000000
A 11579568 0.053333 14.445774 0.000000 -14.000000 0.000000 30.000000
END
-TURNOUT N "Bachmann EZ Track Half-Curve 14R 15 44823"
+TURNOUT N "Bachmann EZ Track Half-Curve 14R 15° 44823"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 3.623464 -0.477038 105.000000
@@ -171,7 +171,7 @@ TURNOUT N "Bachmann EZ Track Half-Curve 14R 15 44823"
A 11579568 0.053333 13.554226 0.000000 -14.000000 0.000000 15.000000
A 11579568 0.053333 14.445774 0.000000 -14.000000 0.000000 15.000000
END
-TURNOUT N "Bachmann EZ Track Curve 15.5R 30 44854"
+TURNOUT N "Bachmann EZ Track Curve 15.5R 30° 44854"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 7.749994 -2.076603 120.000000
@@ -179,8 +179,8 @@ TURNOUT N "Bachmann EZ Track Curve 15.5R 30 44854"
A 11579568 0.053333 15.945774 0.000000 -15.500000 0.000000 30.000000
A 11579568 0.053333 15.054226 0.000000 -15.500000 0.000000 30.000000
END
-TURNOUT N "Bachmann EZ Track Curve 15.5R 15 44824"
- U "Curved Section" "" "Bachmann EZ Track" "Curve 15.5R 15" "44824" 15.500000 15.000000 0.891548 0.010417 0
+TURNOUT N "Bachmann EZ Track Curve 15.5R 15° 44824"
+ U "Curved Section" "" "Bachmann EZ Track" "Curve 15.5R 15°" "44824" 15.500000 15.000000 0.891548 0.010417 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.011692 -0.528149 105.000000
@@ -188,7 +188,7 @@ TURNOUT N "Bachmann EZ Track Curve 15.5R 15 44824"
A 11579568 0.053333 15.945774 0.000000 -15.500000 0.000000 15.000000
A 11579568 0.053333 15.054226 0.000000 -15.500000 0.000000 15.000000
END
-TURNOUT N "Bachmann EZ Track Curve 15.5R 7.5 44834"
+TURNOUT N "Bachmann EZ Track Curve 15.5R 7.5° 44834"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 2.023154 -0.132604 97.500000
@@ -196,7 +196,7 @@ TURNOUT N "Bachmann EZ Track Curve 15.5R 7.5 44834"
A 11579568 0.053333 15.945774 0.000000 -15.500000 0.000000 7.500000
A 11579568 0.053333 15.054226 0.000000 -15.500000 0.000000 7.500000
END
-TURNOUT N "Bachmann EZ Track Curve 17.5R 15 44855"
+TURNOUT N "Bachmann EZ Track Curve 17.5R 15° 44855"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.529330 -0.596297 105.000000
@@ -204,7 +204,7 @@ TURNOUT N "Bachmann EZ Track Curve 17.5R 15 44855"
A 11579568 0.053333 17.945774 0.000000 -17.500000 0.000000 15.000000
A 11579568 0.053333 17.054226 0.000000 -17.500000 0.000000 15.000000
END
-TURNOUT N "Bachmann EZ Track Curve 17.5R 7.5 44825"
+TURNOUT N "Bachmann EZ Track Curve 17.5R 7.5° 44825"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 2.284206 -0.149715 97.500000
@@ -212,7 +212,7 @@ TURNOUT N "Bachmann EZ Track Curve 17.5R 7.5 44825"
A 11579568 0.053333 17.945774 0.000000 -17.500000 0.000000 7.500000
A 11579568 0.053333 17.054226 0.000000 -17.500000 0.000000 7.500000
END
-TURNOUT N "Bachmann EZ Track Curve 17.5R 3.75 44835"
+TURNOUT N "Bachmann EZ Track Curve 17.5R 3.75° 44835"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 1.144554 -0.037469 93.750000
@@ -220,7 +220,7 @@ TURNOUT N "Bachmann EZ Track Curve 17.5R 3.75 44835"
A 11579568 0.053333 17.945774 0.000000 -17.500000 0.000000 3.750000
A 11579568 0.053333 17.054226 0.000000 -17.500000 0.000000 3.750000
END
-TURNOUT N "Bachmann EZ Track Curve 19R 15 44804"
+TURNOUT N "Bachmann EZ Track Curve 19R 15° 44804"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.917562 -0.647409 105.000000
@@ -228,7 +228,7 @@ TURNOUT N "Bachmann EZ Track Curve 19R 15 44804"
A 11579568 0.053333 18.554226 0.000000 -19.000000 0.000000 15.000000
A 11579568 0.053333 19.445774 0.000000 -19.000000 0.000000 15.000000
END
-TURNOUT N "Bachmann EZ Track Half-Curve 19R 7.5 44856"
+TURNOUT N "Bachmann EZ Track Half-Curve 19R 7.5° 44856"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 2.479998 -0.162548 97.500000
@@ -236,7 +236,7 @@ TURNOUT N "Bachmann EZ Track Half-Curve 19R 7.5 44856"
A 11579568 0.053333 18.554226 0.000000 -19.000000 0.000000 7.500000
A 11579568 0.053333 19.445774 0.000000 -19.000000 0.000000 7.500000
END
-TURNOUT N "Bachmann EZ Track Curve 19R 3.75 44836"
+TURNOUT N "Bachmann EZ Track Curve 19R 3.75° 44836"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 1.242658 -0.040680 93.750000
@@ -244,7 +244,7 @@ TURNOUT N "Bachmann EZ Track Curve 19R 3.75 44836"
A 11579568 0.053333 19.445774 0.000000 -19.000000 0.000000 3.750000
A 11579568 0.053333 18.554226 0.000000 -19.000000 0.000000 3.750000
END
-TURNOUT N "Bachmann EZ Track Terminal/Rerailer Curve 11.25R 30 44802"
+TURNOUT N "Bachmann EZ Track Terminal/Rerailer Curve 11.25R 30° 44802"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 5.625000 -1.507214 120.000000
@@ -252,7 +252,7 @@ TURNOUT N "Bachmann EZ Track Terminal/Rerailer Curve 11.25R 30 44802"
A 11579568 0.053333 10.804226 0.000000 -11.250000 0.000000 30.000000
A 11579568 0.053333 11.695774 0.000000 -11.250000 0.000000 30.000000
END
-TURNOUT N "Bachmann EZ Track Elec.Auto-Reversing Curve 11.25R 30 44849"
+TURNOUT N "Bachmann EZ Track Elec.Auto-Reversing Curve 11.25R 30° 44849"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 5.625000 -1.507214 120.000000
@@ -319,7 +319,7 @@ TURNOUT N "Bachmann EZ Track #4 Turnout Left 44863"
A 11579568 0.053333 18.577221 0.354325 19.022995 165.522400 14.477676
L 11579568 0.053333 4.998651 1.035690 6.028554 1.301618 0
END
-TURNOUT N "Bachmann EZ Track #4 Turnout Curve 11.25R 14 44863/64"
+TURNOUT N "Bachmann EZ Track #4 Turnout Curve 11.25R 14° 44863/64"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 2.721619 -0.334173 104.000000
@@ -359,7 +359,7 @@ TURNOUT N "Bachmann EZ Track #6 Turnout Left 44859"
L 11579568 0.053333 7.859557 0.440626 8.864298 0.610461 0
L 11579568 0.053333 4.696741 0.810198 8.715704 1.489539 0
END
-TURNOUT N "Bachmann EZ Track #6 Turnout Curve 14R 9.46 44859/60"
+TURNOUT N "Bachmann EZ Track #6 Turnout Curve 14R 9.46° 44859/60"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 2.301024 -0.190391 99.460000
@@ -406,7 +406,7 @@ TURNOUT N "Bachmann EZ Track #6 Wye Turnout 44869"
L 11579568 0.053333 7.976437 -0.930491 8.325689 -0.989536 0
L 11579568 0.053333 8.125058 -0.051418 8.474310 -0.110463 0
END
-TURNOUT N "Bachmann EZ Track Wye Turnout Curve 19R 4.75 44869D"
+TURNOUT N "Bachmann EZ Track Wye Turnout Curve 19R 4.75° 44869D"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 1.573355 -0.065255 94.750000
@@ -463,7 +463,7 @@ TURNOUT N "Bachmann EZ Track #6 Right Crossover Turnout 44876"
SUBCONTENTS Bachmann EZ Track N-Scale Crossings
-TURNOUT N "Bachmann EZ Track Crossing 90 w/1.25 44841"
+TURNOUT N "Bachmann EZ Track Crossing 90° w/1.25 44841"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 3.750000 0.000000 90.000000
@@ -480,7 +480,7 @@ TURNOUT N "Bachmann EZ Track Crossing 90 w/1.25 44841"
L 11579568 0.053333 1.429226 -1.875000 1.429226 -0.445774
L 11579568 0.053333 2.320774 -1.875000 2.320774 -0.445774
END
-TURNOUT N "Bachmann EZ Track Crossing 90 w/o 1.25 44841"
+TURNOUT N "Bachmann EZ Track Crossing 90° w/o 1.25 44841"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 1.250000 0.000000 90.000000
@@ -505,7 +505,7 @@ TURNOUT N "Bachmann EZ Track Straight 1 1/4 44841"
L 11579568 0.053333 0.000000 0.445774 1.250000 0.445774
L 11579568 0.053333 0.000000 -0.445774 1.250000 -0.445774
END
-TURNOUT N "Bachmann EZ Track Crossing 60 44842"
+TURNOUT N "Bachmann EZ Track Crossing 60° 44842"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 2.500000 0.000000 90.000000
@@ -522,7 +522,7 @@ TURNOUT N "Bachmann EZ Track Crossing 60 44842"
L 11579568 0.053333 0.238948 -0.859645 0.477897 -0.445774
L 11579568 0.053333 1.011052 -1.305419 1.507368 -0.445774
END
-TURNOUT N "Bachmann EZ Track Crossing 45 44843"
+TURNOUT N "Bachmann EZ Track Crossing 45° 44843"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 2.500000 0.000000 90.000000
@@ -539,7 +539,7 @@ TURNOUT N "Bachmann EZ Track Crossing 45 44843"
L 11579568 0.053333 0.050907 -0.568674 0.173806 -0.445774
L 11579568 0.053333 0.681326 -1.199093 1.434646 -0.445774
END
-TURNOUT N "Bachmann EZ Track Crossing 30 44840"
+TURNOUT N "Bachmann EZ Track Crossing 30° 44840"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 3.500000 0.000000 90.000000
diff --git a/app/lib/params/ChangeLog b/app/lib/params/ChangeLog
deleted file mode 100644
index 4bbc6a1..0000000
--- a/app/lib/params/ChangeLog
+++ /dev/null
@@ -1,87 +0,0 @@
-May 30, 2010
- FIX: Martin Fischer
- fl-profi.xtp: corrected 36 degree crossing
- LionelFastTrack.xtp: corrected 12065 and 12066 30 degree turnout
-
-Jan 14, 2010
- FIX: Martin Fischer
- rocon.xtp: length of 22207 is 0.677165 inch
-
-Jan 02, 2010
- ENH: Dwayne Ward
- O-atlaso3rail.xtp: added
-
-Dec 29, 2009
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- Lionel-O-O27.xtp: fix crossing
- Marx.xtp: added
-
-Nov 23, 2009
- Lionel Fasttrack and Kato N
-
-Nov 22, 2009
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- T Scale, Updated and renamed Atlas N, Fasttracks On30
-
-Jul 02, 2009
- ENH: Michael ?
- prototype-de.xtp German Prototype Turnouts
-
-Jun 09, 2009
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- wlthho83.xtp: correct curved turnouts
-
-May 08, 2009
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- atl83ho.xtp: fixed a formatting error
-
-May 08, 2009
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- AtlasTrueTrackN.xtp: added or updated by Dwayne Ward
-
-May 08, 2009
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- JouefHO.xtp, kato-n.xtp, lgb.xtp, LimaHO.xtp,
- pecohost.xtp, Piko-g.xtp, TilligAdvTT.xtp
- added or updated by Dwayne Ward
-
-May 08, 2009
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- atl83ho.xtp, BachmannEZ-HO.xtp, BachmannEZ-N.xtp,
- FastTrack-HO.xtp: added or updated by Dwayne Ward
-
-Oct 02, 2008
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- AtlasTrueTrackN.xtp created by Dwayne Ward
-
-Oct 02, 2008
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- Peco-On30.xtp and RocoGeoLineHO.xtp created by Dwayne Ward
-
-Sep 28, 2008
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- Added USA-G.xtp created by Dwyane Ward
-
-Jun 10, 2008
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- mkstruct.c: remove some useless code
-
-Jun 09, 2008
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- nmra-to.c: remove some useless code
-
-Jun 04, 2008
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- CMakeLists.txt: remove reference to m.lib for Win32
-
-Mar 25, 2008
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- CMakeLists.txt, nmra-to.c: Create turnout definitions from text files
-
-Mar 21, 2008
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- CMakeLists.txt, mkcarpart.c: Create car definitions from text files
-
-Mar 10, 2008
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- CMakeLists.txt, mkstruct.c: create param files from structure definitions
diff --git a/app/lib/params/F-NMRA-RP12-21.xtp b/app/lib/params/F-NMRA-RP12-21.xtp
new file mode 100644
index 0000000..cd2f6fb
--- /dev/null
+++ b/app/lib/params/F-NMRA-RP12-21.xtp
@@ -0,0 +1,592 @@
+CONTENTS NMRA RP-12.21 Feb 2015 F Scale Turnouts
+SUBCONTENTS NMRA F Scale Regular Turnouts
+TURNOUT F "NMRA F #4 Left 4L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 27.058242 0.000000 90.000000
+ E 26.578419 3.838583 75.749967
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 27.058242 0.000000
+ C 0 0.000000 -69.449093 2.783092 69.449093 165.749891 14.250185
+ S 0 0.000000 19.878326 2.136937 26.578419 3.838583
+END
+TURNOUT F "NMRA F #4 Right 4R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 27.058242 0.000000 90.000000
+ E 26.578419 -3.838583 104.250033
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 27.058242 0.000000
+ C 0 0.000000 69.449093 2.782724 -69.449093 0.000076 14.250185
+ S 0 0.000000 19.878326 -2.136937 26.578419 -3.838583
+END
+TURNOUT F "NMRA F #5 Left 5L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 30.968843 0.000000 90.000000
+ E 30.584984 3.838583 78.578814
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 30.968843 0.000000
+ C 0 0.000000 -88.011949 2.783117 88.011949 168.578738 11.421338
+ S 0 0.000000 20.211323 1.742854 30.584984 3.838583
+END
+TURNOUT F "NMRA F #5 Right 5R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 30.968843 0.000000 90.000000
+ E 30.584984 -3.838583 101.421186
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 30.968843 0.000000
+ C 0 0.000000 88.011949 2.782650 -88.011949 0.000076 11.421338
+ S 0 0.000000 20.211323 -1.742854 30.584984 -3.838583
+END
+TURNOUT F "NMRA F #6 Left 6L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 34.896437 0.000000 90.000000
+ E 34.576555 3.838583 80.472717
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 34.896437 0.000000
+ C 0 0.000000 -107.067165 2.783142 107.067165 170.472641 9.527435
+ S 0 0.000000 20.504726 1.476833 34.576555 3.838583
+END
+TURNOUT F "NMRA F #6 Right 6R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 34.896437 0.000000 90.000000
+ E 34.576555 -3.838583 99.527283
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 34.896437 0.000000
+ C 0 0.000000 107.067165 2.782574 -107.067165 0.000076 9.527435
+ S 0 0.000000 20.504726 -1.476833 34.576555 -3.838583
+END
+TURNOUT F "NMRA F #7 Left 7L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 44.517171 0.000000 90.000000
+ E 44.242987 3.838583 81.828766
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 44.517171 0.000000
+ C 0 0.000000 -206.183634 2.783274 206.183634 171.828690 8.171386
+ S 0 0.000000 32.088807 2.093309 44.242987 3.838583
+END
+TURNOUT F "NMRA F #7 Right 7R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 44.517171 0.000000 90.000000
+ E 44.242987 -3.838583 98.171234
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 44.517171 0.000000
+ C 0 0.000000 206.183634 2.782179 -206.183634 0.000076 8.171386
+ S 0 0.000000 32.088807 -2.093309 44.242987 -3.838583
+END
+TURNOUT F "NMRA F #8 Left 8L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 49.024617 0.000000 90.000000
+ E 48.784706 3.838583 82.847331
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 49.024617 0.000000
+ C 0 0.000000 -246.616097 2.783327 246.616097 172.847255 7.152821
+ S 0 0.000000 33.490687 1.919270 48.784706 3.838583
+END
+TURNOUT F "NMRA F #8 Right 8R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 49.024617 0.000000 90.000000
+ E 48.784706 -3.838583 97.152669
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 49.024617 0.000000
+ C 0 0.000000 246.616097 2.782018 -246.616097 0.000076 7.152821
+ S 0 0.000000 33.490687 -1.919270 48.784706 -3.838583
+END
+TURNOUT F "NMRA F #9 Left 9L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 52.576871 0.000000 90.000000
+ E 52.363617 3.838583 83.640340
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 52.576871 0.000000
+ C 0 0.000000 -272.530953 2.783362 272.530953 173.640264 6.359812
+ S 0 0.000000 32.971736 1.677191 52.363617 3.838583
+END
+TURNOUT F "NMRA F #9 Right 9R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 52.576871 0.000000 90.000000
+ E 52.363617 -3.838583 96.359660
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 52.576871 0.000000
+ C 0 0.000000 272.530953 2.781915 -272.530953 0.000076 6.359812
+ S 0 0.000000 32.971736 -1.677191 52.363617 -3.838583
+END
+TURNOUT F "NMRA F #10 Left 10L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 57.411791 0.000000 90.000000
+ E 57.219862 3.838583 84.275190
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 57.411791 0.000000
+ C 0 0.000000 -322.954766 2.783428 322.954766 174.275114 5.724962
+ S 0 0.000000 34.998762 1.610829 57.219862 3.838583
+END
+TURNOUT F "NMRA F #10 Right 10R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 57.411791 0.000000 90.000000
+ E 57.219862 -3.838583 95.724810
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 57.411791 0.000000
+ C 0 0.000000 322.954766 2.781715 -322.954766 0.000076 5.724962
+ S 0 0.000000 34.998762 -1.610829 57.219862 -3.838583
+END
+TURNOUT F "NMRA F #11 Left 11L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 66.172650 0.000000 90.000000
+ E 65.998169 3.838583 84.794876
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 66.172650 0.000000
+ C 0 0.000000 -463.736751 2.783615 463.736751 174.794800 5.205276
+ S 0 0.000000 44.855150 1.912425 65.998169 3.838583
+END
+TURNOUT F "NMRA F #11 Right 11L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 66.172650 0.000000 90.000000
+ E 65.998169 -3.838583 95.205124
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 66.172650 0.000000
+ C 0 0.000000 463.736751 2.781154 -463.736751 0.000076 5.205276
+ S 0 0.000000 44.855150 -1.912425 65.998169 -3.838583
+END
+TURNOUT F "NMRA F #12 Left 12L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 70.037963 0.000000 90.000000
+ E 69.878022 3.838583 85.228112
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 70.037963 0.000000
+ C 0 0.000000 -506.714177 2.783672 506.714177 175.228036 4.772040
+ S 0 0.000000 44.937303 1.756484 69.878022 3.838583
+END
+TURNOUT F "NMRA F #12 Right 12R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 70.037963 0.000000 90.000000
+ E 69.878022 -3.838583 94.771888
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 70.037963 0.000000
+ C 0 0.000000 506.714177 2.780983 -506.714177 0.000076 4.772040
+ S 0 0.000000 44.937303 -1.756484 69.878022 -3.838583
+END
+TURNOUT F "NMRA F #13 Left 13L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 74.132394 0.000000 90.000000
+ E 73.984756 3.838583 85.594804
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 74.132394 0.000000
+ C 0 0.000000 -555.756472 2.783737 555.756472 175.594728 4.405348
+ S 0 0.000000 45.471782 1.641931 73.984756 3.838583
+END
+TURNOUT F "NMRA F #13 Right 13R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 74.132394 0.000000 90.000000
+ E 73.984756 -3.838583 94.405196
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 74.132394 0.000000
+ C 0 0.000000 555.756472 2.780788 -555.756472 0.000076 4.405348
+ S 0 0.000000 45.471782 -1.641931 73.984756 -3.838583
+END
+TURNOUT F "NMRA F #14 Left 13L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 78.227704 0.000000 90.000000
+ E 78.090611 3.838583 85.909183
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 78.227704 0.000000
+ C 0 0.000000 -605.847813 2.783804 605.847813 175.909107 4.090969
+ S 0 0.000000 46.004284 1.543673 78.090611 3.838583
+END
+TURNOUT F "NMRA F #14 Right 14R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 78.227704 0.000000 90.000000
+ E 78.090611 -3.838583 94.090817
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 78.227704 0.000000
+ C 0 0.000000 605.847813 2.780588 -605.847813 0.000076 4.090969
+ S 0 0.000000 46.004284 -1.543673 78.090611 -3.838583
+END
+TURNOUT F "NMRA F #15 Left 15L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 90.659717 0.000000 90.000000
+ E 90.531764 3.838583 86.181695
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 90.659717 0.000000
+ C 0 0.000000 -907.073341 2.784204 907.073341 176.181619 3.818457
+ S 0 0.000000 63.189793 2.013638 90.531764 3.838583
+END
+TURNOUT F "NMRA F #15 Right 15R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 90.659717 0.000000 90.000000
+ E 90.531764 -3.838583 93.818305
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 90.659717 0.000000
+ C 0 0.000000 907.073341 2.779389 -907.073341 0.000076 3.818457
+ S 0 0.000000 63.189793 -2.013638 90.531764 -3.838583
+END
+TURNOUT F "NMRA F #16 Left 16L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 94.614301 0.000000 90.000000
+ E 94.494345 3.838583 86.420179
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 94.614301 0.000000
+ C 0 0.000000 -971.391226 2.784289 971.391226 176.420103 3.579973
+ S 0 0.000000 63.438238 1.895555 94.494345 3.838583
+END
+TURNOUT F "NMRA F #16 Right 16R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 94.614301 0.000000 90.000000
+ E 94.494345 -3.838583 93.579821
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 94.614301 0.000000
+ C 0 0.000000 971.391226 2.779133 -971.391226 0.000076 3.579973
+ S 0 0.000000 63.438238 -1.895555 94.494345 -3.838583
+END
+TURNOUT F "NMRA F $17 Left 17L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 98.484355 0.000000 90.000000
+ E 98.371456 3.838583 86.630631
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 98.484355 0.000000
+ C 0 0.000000 -1033.300494 2.784371 1033.300494 176.630555 3.369521
+ S 0 0.000000 63.515540 1.786331 98.371456 3.838583
+END
+TURNOUT F "NMRA F #17 Right 17R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 98.484355 0.000000 90.000000
+ E 98.371456 -3.838583 93.369369
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 98.484355 0.000000
+ C 0 0.000000 1033.300494 2.778887 -1033.300494 0.000076 3.369521
+ S 0 0.000000 63.515540 -1.786331 98.371456 -3.838583
+END
+TURNOUT F "NMRA F #18 Left 18L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 102.353802 0.000000 90.000000
+ E 102.247175 3.838583 86.817719
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 102.353802 0.000000
+ C 0 0.000000 -1095.314854 2.784453 1095.314854 176.817643 3.182433
+ S 0 0.000000 63.589768 1.689156 102.247175 3.838583
+END
+TURNOUT F "NMRA F #18 Right 18R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 102.353802 0.000000 90.000000
+ E 102.247175 -3.838583 93.182281
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 102.353802 0.000000
+ C 0 0.000000 1095.314854 2.778640 -1095.314854 0.000076 3.182433
+ S 0 0.000000 63.589768 -1.689156 102.247175 -3.838583
+END
+TURNOUT F "NMRA F #19 Left 19L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 106.629579 0.000000 90.000000
+ E 106.528563 3.838583 86.985128
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 106.629579 0.000000
+ C 0 0.000000 -1172.894835 2.784556 1172.894835 176.985052 3.015024
+ S 0 0.000000 64.474652 1.623545 106.528563 3.838583
+END
+TURNOUT F "NMRA F #19 Right 19R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 106.629579 0.000000 90.000000
+ E 106.528563 -3.838583 93.014872
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 106.629579 0.000000
+ C 0 0.000000 1172.894835 2.778331 -1172.894835 0.000076 3.015024
+ S 0 0.000000 64.474652 -1.623545 106.528563 -3.838583
+END
+TURNOUT F "NMRA F #20 Left 20L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 110.906636 0.000000 90.000000
+ E 110.810671 3.838583 87.135808
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 110.906636 0.000000
+ C 0 0.000000 -1252.275708 2.784662 1252.275708 177.135732 2.864344
+ S 0 0.000000 65.360934 1.564530 110.810671 3.838583
+END
+TURNOUT F "NMRA F #20 Right 20R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 110.906636 0.000000 90.000000
+ E 110.810671 -3.838583 92.864192
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ S 0 0.000000 2.783000 0.000000 110.906636 0.000000
+ C 0 0.000000 1252.275708 2.778015 -1252.275708 0.000076 2.864344
+ S 0 0.000000 65.360934 -1.564530 110.810671 -3.838583
+END
+
+SUBCONTENTS NMRA F Scale WYE Turnouts
+TURNOUT F "NMRA F #2 WYE 2Y"
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 26.578419 3.838583 75.749967
+ E 26.578419 -3.838583 104.250033
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ C 0 0.000000 -69.449093 2.783092 69.449093 165.749891 14.250185
+ S 0 0.000000 19.878326 2.136937 26.578419 3.838583
+ C 0 0.000000 69.449093 2.782724 -69.449093 0.000076 14.250185
+ S 0 0.000000 19.878326 -2.136937 26.578419 -3.838583
+END
+TURNOUT F "NMRA F #2.5 WYE 2.5Y"
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 30.584984 3.838583 78.578814
+ E 30.584984 -3.838583 101.421186
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ C 0 0.000000 -88.011949 2.783117 88.011949 168.578738 11.421338
+ S 0 0.000000 20.211323 1.742854 30.584984 3.838583
+ C 0 0.000000 88.011949 2.782650 -88.011949 0.000076 11.421338
+ S 0 0.000000 20.211323 -1.742854 30.584984 -3.838583
+END
+TURNOUT F "NMRA F #3 WYE 3Y"
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 34.576555 3.838583 80.472717
+ E 34.576555 -3.838583 99.527283
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ C 0 0.000000 -107.067165 2.783142 107.067165 170.472641 9.527435
+ S 0 0.000000 20.504726 1.476833 34.576555 3.838583
+ C 0 0.000000 107.067165 2.782574 -107.067165 0.000076 9.527435
+ S 0 0.000000 20.504726 -1.476833 34.576555 -3.838583
+END
+TURNOUT F "NMRA F #4 WYE 4Y"
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 42.052706 3.838583 82.847331
+ E 42.052706 -3.838583 97.152669
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ C 0 0.000000 -138.902871 2.783184 138.902871 172.847255 7.152821
+ S 0 0.000000 20.078651 1.081000 42.052706 3.838583
+ C 0 0.000000 138.902871 2.782447 -138.902871 0.000076 7.152821
+ S 0 0.000000 20.078651 -1.081000 42.052706 -3.838583
+END
+TURNOUT F "NMRA F #5 WYE 5Y"
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 49.873862 3.838583 84.275190
+ E 49.873862 -3.838583 95.724810
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ C 0 0.000000 -176.032686 2.783234 176.032686 174.275114 5.724962
+ S 0 0.000000 20.342819 0.878013 49.873862 3.838583
+ C 0 0.000000 176.032686 2.782299 -176.032686 0.000076 5.724962
+ S 0 0.000000 20.342819 -0.878013 49.873862 -3.838583
+END
+TURNOUT F "NMRA F #6 6Y"
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 57.688022 3.838583 85.228112
+ E 57.688022 -3.838583 94.771888
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ C 0 0.000000 -214.149276 2.783284 214.149276 175.228036 4.772040
+ S 0 0.000000 20.598396 0.742331 57.688022 3.838583
+ C 0 0.000000 214.149276 2.782148 -214.149276 0.000076 4.772040
+ S 0 0.000000 20.598396 -0.742331 57.688022 -3.838583
+END
+TURNOUT F "NMRA F #7 WYE 7Y"
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 71.181611 3.838583 85.909183
+ E 71.181611 -3.838583 94.090817
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ C 0 0.000000 -412.392062 2.783547 412.392062 175.909107 4.090969
+ S 0 0.000000 32.203118 1.050757 71.181611 3.838583
+ C 0 0.000000 412.392062 2.781359 -412.392062 0.000076 4.090969
+ S 0 0.000000 32.203118 -1.050757 71.181611 -3.838583
+END
+TURNOUT F "NMRA F #8 WYE 8Y"
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 79.553345 3.838583 86.420179
+ E 79.553345 -3.838583 93.579821
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ C 0 0.000000 -493.268653 2.783654 493.268653 176.420103 3.579973
+ S 0 0.000000 33.583492 0.962555 79.553345 3.838583
+ C 0 0.000000 493.268653 2.781037 -493.268653 0.000076 3.579973
+ S 0 0.000000 33.583492 -0.962555 79.553345 -3.838583
+END
+TURNOUT F "NMRA F #9 WYE 9Y"
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 86.964175 3.838583 86.817719
+ E 86.964175 -3.838583 93.182281
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ C 0 0.000000 -545.113338 2.783723 545.113338 176.817643 3.182433
+ S 0 0.000000 33.045148 0.840655 86.964175 3.838583
+ C 0 0.000000 545.113338 2.780830 -545.113338 0.000076 3.182433
+ S 0 0.000000 33.045148 -0.840655 86.964175 -3.838583
+END
+TURNOUT F "NMRA F #10 WYE 10Y"
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 95.653671 3.838583 87.135808
+ E 95.653671 -3.838583 92.864192
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ C 0 0.000000 -645.979039 2.783857 645.979039 177.135732 2.864344
+ S 0 0.000000 35.063458 0.807054 95.653671 3.838583
+ C 0 0.000000 645.979039 2.780429 -645.979039 0.000076 2.864344
+ S 0 0.000000 35.063458 -0.807054 95.653671 -3.838583
+END
+
+SUBCONTENTS NMRA F Scale 3-WAY Turnouts
+TURNOUT F "NMRA F #6 3-WAY (SYMMETRICAL) 6-3WS"
+ P "Left" 1 2 3
+ P "Normal" 1 6
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 34.576555 3.838583 80.472717
+ E 34.576555 -3.838583 99.527283
+ E 34.896437 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ C 0 0.000000 -107.067165 2.783142 107.067165 170.472641 9.527435
+ S 0 0.000000 20.504726 1.476833 34.576555 3.838583
+ C 0 0.000000 107.067165 2.782574 -107.067165 0.000076 9.527435
+ S 0 0.000000 20.504726 -1.476833 34.576555 -3.838583
+ S 0 0.000000 2.783000 0.000000 34.896437 0.000000
+END
+TURNOUT F "NMRA F #8 3-WAY (SYMMETRICAL) 8-3WS"
+ P "Left" 1 2 3
+ P "Normal" 1 6
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 48.784706 3.838583 82.847331
+ E 48.784706 -3.838583 97.152669
+ E 49.024617 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 2.783000 0.000000
+ C 0 0.000000 -246.616097 2.783327 246.616097 172.847255 7.152821
+ S 0 0.000000 33.490687 1.919270 48.784706 3.838583
+ C 0 0.000000 246.616097 2.782018 -246.616097 0.000076 7.152821
+ S 0 0.000000 33.490687 -1.919270 48.784706 -3.838583
+ S 0 0.000000 2.783000 0.000000 49.024617 0.000000
+END
+
+SUBCONTENTS NMRA F Scale Single Slip Turnouts
+TURNOUT F "NMRA F #6 Single Slip 6SS"
+ P "Normal" 1 2 0 3 4
+ P "Reverse" 1 5 4
+ E 0.000000 0.000000 270.000000
+ E 64.484000 0.000000 90.000000
+ E 0.444709 5.336560 279.527283
+ E 64.039291 -5.336560 99.527283
+ S 0 0.000000 0.000000 0.000000 5.567451 0.000000
+ S 0 0.000000 5.567451 0.000000 64.484000 0.000000
+ S 0 0.000000 0.444709 5.336560 58.550906 -4.415355
+ S 0 0.000000 58.550906 -4.415355 64.039291 -5.336560
+ C 0 0.000000 320.103594 5.566177 -320.103594 0.000076 9.527435
+END
+TURNOUT F "NMRA F #8 Single Slip 8SS"
+ P "Normal" 1 2 0 3 4
+ P "Reverse" 1 5 4
+ E 0.000000 0.000000 270.000000
+ E 90.664000 0.000000 90.000000
+ E 0.352770 5.644387 277.152669
+ E 90.311230 -5.644387 97.152669
+ S 0 0.000000 0.000000 0.000000 5.568769 0.000000
+ S 0 0.000000 5.568769 0.000000 90.664000 0.000000
+ S 0 0.000000 0.352770 5.644387 84.790227 -4.951443
+ S 0 0.000000 84.790227 -4.951443 90.311230 -5.644387
+ C 0 0.000000 636.234392 5.566236 -636.234392 0.000076 7.152821
+END
+
+SUBCONTENTS NMRA F Scale Double Slip Turnouts
+TURNOUT F "NMRA F #6 Double Slip 6DS"
+ P "Normal" 1 2 3 0 4 5 6
+ P "Reverse" 1 7 6 0 4 8 3
+ E 0.000000 0.000000 270.000000
+ E 64.484000 0.000000 90.000000
+ E 0.444709 5.336560 279.527283
+ E 64.039291 -5.336560 99.527283
+ S 0 0.000000 0.000000 0.000000 5.567451 0.000000
+ S 0 0.000000 5.567451 0.000000 58.916549 0.000000
+ S 0 0.000000 58.916549 0.000000 64.484000 0.000000
+ S 0 0.000000 0.444709 5.336560 5.933094 4.415355
+ S 0 0.000000 5.933094 4.415355 58.550906 -4.415355
+ S 0 0.000000 58.550906 -4.415355 64.039291 -5.336560
+ C 0 0.000000 320.103594 5.566177 -320.103594 0.000076 9.527435
+ C 0 0.000000 -320.103594 58.916967 320.103523 180.000076 9.527435
+END
+TURNOUT F "NMRA F #8 Double Slip 8DS"
+ P "Normal" 1 2 3 0 4 5 6
+ P "Reverse" 1 7 6 0 4 8 3
+ E 0.000000 0.000000 270.000000
+ E 90.664000 0.000000 90.000000
+ E 0.352770 5.644387 277.152669
+ E 90.311230 -5.644387 97.152669
+ S 0 0.000000 0.000000 0.000000 5.568769 0.000000
+ S 0 0.000000 5.568769 0.000000 85.095231 0.000000
+ S 0 0.000000 85.095231 0.000000 90.664000 0.000000
+ S 0 0.000000 0.352770 5.644387 5.873773 4.951443
+ S 0 0.000000 5.873773 4.951443 84.790227 -4.951443
+ S 0 0.000000 84.790227 -4.951443 90.311230 -5.644387
+ C 0 0.000000 636.234392 5.566236 -636.234392 0.000076 7.152821
+ C 0 0.000000 -636.234392 85.096069 636.234287 180.000076 7.152821
+END \ No newline at end of file
diff --git a/app/lib/params/G-NMRA-RP12-23.xtp b/app/lib/params/G-NMRA-RP12-23.xtp
new file mode 100644
index 0000000..6d36e4e
--- /dev/null
+++ b/app/lib/params/G-NMRA-RP12-23.xtp
@@ -0,0 +1,592 @@
+CONTENTS NMRA RP-12.23(LS) Feb 2015 G Scale Turnouts
+SUBCONTENTS NMRA G Scale Regular Turnouts
+TURNOUT G "NMRA G #4 Left 4L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 21.550333 0.000000 90.000000
+ E 21.117000 3.466667 75.749967
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 21.550333 0.000000
+ C 0 0.000000 -45.576853 1.770060 45.576853 165.749891 14.250185
+ S 0 0.000000 12.989026 1.402392 21.117000 3.466667
+END
+TURNOUT G "NMRA G #4 Right 4R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 21.550333 0.000000 90.000000
+ E 21.117000 -3.466667 104.250033
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 21.550333 0.000000
+ C 0 0.000000 45.576853 1.769819 -45.576853 0.000076 14.250185
+ S 0 0.000000 12.989026 -1.402392 21.117000 -3.466667
+END
+TURNOUT G "NMRA G #5 Left 5L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 25.051667 0.000000 90.000000
+ E 24.705000 3.466667 78.578814
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 25.051667 0.000000
+ C 0 0.000000 -57.751549 1.770077 57.751549 168.578738 11.421338
+ S 0 0.000000 13.206091 1.143623 24.705000 3.466667
+END
+TURNOUT G "NMRA G #5 Right 5R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 25.051667 0.000000 90.000000
+ E 24.705000 -3.466667 101.421186
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 25.051667 0.000000
+ C 0 0.000000 57.751549 1.769770 -57.751549 0.000076 11.421338
+ S 0 0.000000 13.206091 -1.143623 24.705000 -3.466667
+END
+TURNOUT G "NMRA G #6 Left 6L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 28.566444 0.000000 90.000000
+ E 28.277556 3.466667 80.472717
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 28.566444 0.000000
+ C 0 0.000000 -70.226558 1.770093 70.226558 170.472641 9.527435
+ S 0 0.000000 13.393880 0.968671 28.277556 3.466667
+END
+TURNOUT G "NMRA G #6 Right 6R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 28.566444 0.000000 90.000000
+ E 28.277556 -3.466667 99.527283
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 28.566444 0.000000
+ C 0 0.000000 70.226558 1.769720 -70.226558 0.000076 9.527435
+ S 0 0.000000 13.393880 -0.968671 28.277556 -3.466667
+END
+TURNOUT G "NMRA G #7 Left 7L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 35.700476 0.000000 90.000000
+ E 35.452857 3.466667 81.828766
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 35.700476 0.000000
+ C 0 0.000000 -133.564451 1.770177 133.564451 171.828690 8.171386
+ S 0 0.000000 20.754116 1.356033 35.452857 3.466667
+END
+TURNOUT G "NMRA G #7 Right 7R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 35.700476 0.000000 90.000000
+ E 35.452857 -3.466667 98.171234
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 35.700476 0.000000
+ C 0 0.000000 133.564451 1.769468 -133.564451 0.000076 8.171386
+ S 0 0.000000 20.754116 -1.356033 35.452857 -3.466667
+END
+TURNOUT G "NMRA G #8 Left 8L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 39.588667 0.000000 90.000000
+ E 39.372000 3.466667 82.847331
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 39.588667 0.000000
+ C 0 0.000000 -159.638459 1.770212 159.638459 172.847255 7.152821
+ S 0 0.000000 21.647567 1.242373 39.372000 3.466667
+END
+TURNOUT G "NMRA G #8 Right 8R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 39.588667 0.000000 90.000000
+ E 39.372000 -3.466667 97.152669
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 39.588667 0.000000
+ C 0 0.000000 159.638459 1.769365 -159.638459 0.000076 7.152821
+ S 0 0.000000 21.647567 -1.242373 39.372000 -3.466667
+END
+TURNOUT G "NMRA G #9 Left 9L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 42.871296 0.000000 90.000000
+ E 42.678704 3.466667 83.640340
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 42.871296 0.000000
+ C 0 0.000000 -176.498837 1.770234 176.498837 173.640264 6.359812
+ S 0 0.000000 21.321089 1.086197 42.678704 3.466667
+END
+TURNOUT G "NMRA G #9 Right 9R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 42.871296 0.000000 90.000000
+ E 42.678704 -3.466667 96.359660
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 42.871296 0.000000
+ C 0 0.000000 176.498837 1.769297 -176.498837 0.000076 6.359812
+ S 0 0.000000 21.321089 -1.086197 42.678704 -3.466667
+END
+TURNOUT G "NMRA G #10 Left 10L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 46.968333 0.000000 90.000000
+ E 46.795000 3.466667 84.275190
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 46.968333 0.000000
+ C 0 0.000000 -208.911962 1.770277 208.911962 174.275114 5.724962
+ S 0 0.000000 22.609631 1.042008 46.795000 3.466667
+END
+TURNOUT G "NMRA G #10 Right 10R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 46.968333 0.000000 90.000000
+ E 46.795000 -3.466667 95.724810
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 46.968333 0.000000
+ C 0 0.000000 208.911962 1.769168 -208.911962 0.000076 5.724962
+ S 0 0.000000 22.609631 -1.042008 46.795000 -3.466667
+END
+TURNOUT G "NMRA G #11 Left 11L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 53.559121 0.000000 90.000000
+ E 53.401545 3.466667 84.794876
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 53.559121 0.000000
+ C 0 0.000000 -298.710621 1.770396 298.710621 174.794800 5.205276
+ S 0 0.000000 28.870285 1.231866 53.401545 3.466667
+END
+TURNOUT G "NMRA G #11 Right 11R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 53.559121 0.000000 90.000000
+ E 53.401545 -3.466667 95.205124
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 53.559121 0.000000
+ C 0 0.000000 298.710621 1.768811 -298.710621 0.000076 5.205276
+ S 0 0.000000 28.870285 -1.231866 53.401545 -3.466667
+END
+TURNOUT G "NMRA G #12 Left 12L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 57.042222 0.000000 90.000000
+ E 56.897778 3.466667 85.228112
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 57.042222 0.000000
+ C 0 0.000000 -326.421145 1.770433 326.421145 175.228036 4.772040
+ S 0 0.000000 28.925459 1.131513 56.897778 3.466667
+END
+TURNOUT G "NMRA G #12 RIght 12R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 57.042222 0.000000 90.000000
+ E 56.897778 -3.466667 94.771888
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 57.042222 0.000000
+ C 0 0.000000 326.421145 1.768701 -326.421145 0.000076 4.772040
+ S 0 0.000000 28.925459 -1.131513 56.897778 -3.466667
+END
+TURNOUT G "NMRA G #13 Left 13L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 60.671333 0.000000 90.000000
+ E 60.538000 3.466667 85.594804
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 60.671333 0.000000
+ C 0 0.000000 -357.994366 1.770475 357.994366 175.594728 4.405348
+ S 0 0.000000 29.268274 1.057661 60.538000 3.466667
+END
+TURNOUT G "NMRA G #13 Right 13R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 60.671333 0.000000 90.000000
+ E 60.538000 -3.466667 94.405196
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 60.671333 0.000000
+ C 0 0.000000 357.994366 1.768575 -357.994366 0.000076 4.405348
+ S 0 0.000000 29.268274 -1.057661 60.538000 -3.466667
+END
+TURNOUT G "NMRA G #14 Left 14L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 64.301238 0.000000 90.000000
+ E 64.177429 3.466667 85.909183
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 64.301238 0.000000
+ C 0 0.000000 -390.240532 1.770518 390.240532 175.909107 4.090969
+ S 0 0.000000 29.609825 0.994316 64.177429 3.466667
+END
+TURNOUT G "NMRA G #14 Right 14R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 64.301238 0.000000 90.000000
+ E 64.177429 -3.466667 94.090817
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 64.301238 0.000000
+ C 0 0.000000 390.240532 1.768447 -390.240532 0.000076 4.090969
+ S 0 0.000000 29.609825 -0.994316 64.177429 -3.466667
+END
+TURNOUT G "NMRA G #15 Left 15L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 73.223778 0.000000 90.000000
+ E 73.108222 3.466667 86.181695
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 73.223778 0.000000
+ C 0 0.000000 -581.922789 1.770772 581.922789 176.181619 3.818457
+ S 0 0.000000 40.523304 1.291827 73.108222 3.466667
+END
+TURNOUT G "NMRA G #15 Right 15R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 73.223778 0.000000 90.000000
+ E 73.108222 -3.466667 93.818305
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 73.223778 0.000000
+ C 0 0.000000 581.922789 1.767684 -581.922789 0.000076 3.818457
+ S 0 0.000000 40.523304 -1.291827 73.108222 -3.466667
+END
+TURNOUT G "NMRA G #16 Left 16L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 76.764833 0.000000 90.000000
+ E 76.656500 3.466667 86.420179
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 76.764833 0.000000
+ C 0 0.000000 -623.218955 1.770827 623.218955 176.420103 3.579973
+ S 0 0.000000 40.684799 1.216138 76.656500 3.466667
+END
+TURNOUT G "NMRA G #16 Right 16R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 76.764833 0.000000 90.000000
+ E 76.656500 -3.466667 93.579821
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 76.764833 0.000000
+ C 0 0.000000 623.218955 1.767519 -623.218955 0.000076 3.579973
+ S 0 0.000000 40.684799 -1.216138 76.656500 -3.466667
+END
+TURNOUT G "NMRA G #17 Left 17L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 80.251314 0.000000 90.000000
+ E 80.149353 3.466667 86.630631
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 80.251314 0.000000
+ C 0 0.000000 -662.958389 1.770880 662.958389 176.630555 3.369521
+ S 0 0.000000 40.735574 1.146097 80.149353 3.466667
+END
+TURNOUT G "NMRA G #17 Right 17R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 80.251314 0.000000 90.000000
+ E 80.149353 -3.466667 93.369369
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 80.251314 0.000000
+ C 0 0.000000 662.958389 1.767361 -662.958389 0.000076 3.369521
+ S 0 0.000000 40.735574 -1.146097 80.149353 -3.466667
+END
+TURNOUT G "NMRA G #18 Left 18L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 83.738148 0.000000 90.000000
+ E 83.641852 3.466667 86.817719
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 83.738148 0.000000
+ C 0 0.000000 -702.790728 1.770932 702.790728 176.817643 3.182433
+ S 0 0.000000 40.785661 1.083819 83.641852 3.466667
+END
+TURNOUT G "NMRA G #18 Right 18R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 83.738148 0.000000 90.000000
+ E 83.641852 -3.466667 93.182281
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 83.738148 0.000000
+ C 0 0.000000 702.790728 1.767203 -702.790728 0.000076 3.182433
+ S 0 0.000000 40.785661 -1.083819 83.641852 -3.466667
+END
+TURNOUT G "NMRA G #19 Left 19L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 87.483281 0.000000 90.000000
+ E 87.392053 3.466667 86.985128
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 87.483281 0.000000
+ C 0 0.000000 -752.520407 1.770998 752.520407 176.985052 3.015024
+ S 0 0.000000 41.350895 1.041654 87.392053 3.466667
+END
+TURNOUT G "NMRA G #19 Right 19R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 87.483281 0.000000 90.000000
+ E 87.392053 -3.466667 93.014872
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 87.483281 0.000000
+ C 0 0.000000 752.520407 1.767005 -752.520407 0.000076 3.015024
+ S 0 0.000000 41.350895 -1.041654 87.392053 -3.466667
+END
+TURNOUT G "NMRA G #20 Left 20L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 91.228667 0.000000 90.000000
+ E 91.142000 3.466667 87.135808
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 91.228667 0.000000
+ C 0 0.000000 -803.374679 1.771066 803.374679 177.135732 2.864344
+ S 0 0.000000 41.915734 1.003696 91.142000 3.466667
+END
+TURNOUT G "NMRA G #20 Right 20R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 91.228667 0.000000 90.000000
+ E 91.142000 -3.466667 92.864192
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ S 0 0.000000 1.770000 0.000000 91.228667 0.000000
+ C 0 0.000000 803.374679 1.766802 -803.374679 0.000076 2.864344
+ S 0 0.000000 41.915734 -1.003696 91.142000 -3.466667
+END
+
+SUBCONTENTS NMRA G Scale WYE Turnouts
+TURNOUT G "NMRA G #2 WYE 2Y"
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 21.117000 3.466667 75.749967
+ E 21.117000 -3.466667 104.250033
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ C 0 0.000000 -45.576853 1.770060 45.576853 165.749891 14.250185
+ S 0 0.000000 12.989026 1.402392 21.117000 3.466667
+ C 0 0.000000 45.576853 1.769819 -45.576853 0.000076 14.250185
+ S 0 0.000000 12.989026 -1.402392 21.117000 -3.466667
+END
+TURNOUT G "NMRA G #2.5 WYE 2.5Y"
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 24.705000 3.466667 78.578814
+ E 24.705000 -3.466667 101.421186
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ C 0 0.000000 -57.751549 1.770077 57.751549 168.578738 11.421338
+ S 0 0.000000 13.206091 1.143623 24.705000 3.466667
+ C 0 0.000000 57.751549 1.769770 -57.751549 0.000076 11.421338
+ S 0 0.000000 13.206091 -1.143623 24.705000 -3.466667
+END
+TURNOUT G "NMRA G #3 WYE 3Y"
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 28.277556 3.466667 80.472717
+ E 28.177553 -3.466667 99.527283
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ C 0 0.000000 -70.226558 1.770093 70.226558 170.472641 9.527435
+ S 0 0.000000 13.393880 0.968671 28.277556 3.466667
+ C 0 0.000000 69.026512 1.769725 -69.026512 0.000076 9.527435
+ S 0 0.000000 13.195248 -0.952118 28.177553 -3.466667
+END
+TURNOUT G "NMRA G #4 WYE 4Y"
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 35.092000 3.466667 82.847331
+ E 35.092000 -3.466667 97.152669
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ C 0 0.000000 -91.157680 1.770121 91.157680 172.847255 7.152821
+ S 0 0.000000 13.120603 0.709427 35.092000 3.466667
+ C 0 0.000000 91.157680 1.769637 -91.157680 0.000076 7.152821
+ S 0 0.000000 13.120603 -0.709427 35.092000 -3.466667
+END
+TURNOUT G "NMRA G #5 WYE 5Y"
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 42.125000 3.466667 84.275190
+ E 42.125000 -3.466667 95.724810
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ C 0 0.000000 -115.510640 1.770153 115.510640 174.275114 5.724962
+ S 0 0.000000 13.292553 0.576142 42.125000 3.466667
+ C 0 0.000000 115.510640 1.769540 -115.510640 0.000076 5.724962
+ S 0 0.000000 13.292553 -0.576142 42.125000 -3.466667
+END
+TURNOUT G "NMRA G #6 WYE 6Y"
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 49.149778 3.466667 85.228112
+ E 49.149778 -3.466667 94.771888
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ C 0 0.000000 -140.466030 1.770186 140.466030 175.228036 4.772040
+ S 0 0.000000 13.455577 0.486914 49.149778 3.466667
+ C 0 0.000000 140.466030 1.769441 -140.466030 0.000076 4.772040
+ S 0 0.000000 13.455577 -0.486914 49.149778 -3.466667
+END
+TURNOUT G "NMRA G #7 WYE 7Y"
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 59.781429 3.466667 85.909183
+ E 59.781429 -3.466667 94.090817
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ C 0 0.000000 -267.150145 1.770354 267.150145 175.909107 4.090969
+ S 0 0.000000 20.828536 0.680687 59.781429 3.466667
+ C 0 0.000000 267.150145 1.768937 -267.150145 0.000076 4.090969
+ S 0 0.000000 20.828536 -0.680687 59.781429 -3.466667
+END
+TURNOUT G "NMRA G #8 WYE 8Y"
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 67.159500 3.466667 86.420179
+ E 67.159500 -3.466667 93.579821
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ C 0 0.000000 -319.308235 1.770424 319.308235 176.420103 3.579973
+ S 0 0.000000 21.708122 0.623092 67.159500 3.466667
+ C 0 0.000000 319.308235 1.768729 -319.308235 0.000076 3.579973
+ S 0 0.000000 21.708122 -0.623092 67.159500 -3.466667
+END
+TURNOUT G "NMRA G #9 WYE 9Y"
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 73.926852 3.466667 86.817719
+ E 73.926852 -3.466667 93.182281
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ C 0 0.000000 -353.042137 1.770468 353.042137 176.817643 3.182433
+ S 0 0.000000 21.369252 0.544449 73.926852 3.466667
+ C 0 0.000000 353.042137 1.768595 -353.042137 0.000076 3.182433
+ S 0 0.000000 21.369252 -0.544449 73.926852 -3.466667
+END
+TURNOUT G "NMRA G #10 WYE 10Y"
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 81.505000 3.466667 87.135808
+ E 81.505000 -3.466667 92.864192
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ C 0 0.000000 -417.884081 1.770554 417.884081 177.135732 2.864344
+ S 0 0.000000 22.652241 0.522083 81.505000 3.466667
+ C 0 0.000000 417.884081 1.768337 -417.884081 0.000076 2.864344
+ S 0 0.000000 22.652241 -0.522083 81.505000 -3.466667
+END
+
+SUBCONTENTS NMRA G Scale 3-WAY Turnouts
+TURNOUT G "NMRA G #6 3-WAY (SYMMETRICAL) 6-3WS"
+ P "Left" 1 2 3
+ P "Normal" 1 6
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 28.277556 3.466667 80.472717
+ E 28.277556 -3.466667 99.527283
+ E 28.566444 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ C 0 0.000000 -70.226558 1.770093 70.226558 170.472641 9.527435
+ S 0 0.000000 13.393880 0.968671 28.277556 3.466667
+ C 0 0.000000 70.226558 1.769720 -70.226558 0.000076 9.527435
+ S 0 0.000000 13.393880 -0.968671 28.277556 -3.466667
+ S 0 0.000000 1.770000 0.000000 28.566444 0.000000
+END
+TURNOUT G "NMRA G #8 3-WAY (SYMMETRICAL) 8-3WS"
+ P "Left" 1 2 3
+ P "Normal" 1 6
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 39.372000 3.466667 82.847331
+ E 39.372000 -3.466667 97.152669
+ E 39.588667 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 1.770000 0.000000
+ C 0 0.000000 -159.638459 1.770212 159.638459 172.847255 7.152821
+ S 0 0.000000 21.647567 1.242373 39.372000 3.466667
+ C 0 0.000000 159.638459 1.769365 -159.638459 0.000076 7.152821
+ S 0 0.000000 21.647567 -1.242373 39.372000 -3.466667
+ S 0 0.000000 1.770000 0.000000 39.588667 0.000000
+END
+
+SUBCONTENTS NMRA G Scale Single Slip Turnouts
+TURNOUT G "NMRA G #6 SINGLE SLIP 6SS"
+ P "Normal" 1 2 0 3 4
+ P "Reverse" 1 5 4
+ E 0.000000 0.000000 270.000000
+ E 41.312000 0.000000 90.000000
+ E 0.284905 3.418894 279.527283
+ E 41.027095 -3.418894 99.527283
+ S 0 0.000000 0.000000 0.000000 3.540930 0.000000
+ S 0 0.000000 3.540930 0.000000 41.312000 0.000000
+ S 0 0.000000 0.284905 3.418894 37.536463 -2.833004
+ S 0 0.000000 37.536463 -2.833004 41.027095 -3.418894
+ C 0 0.000000 205.386612 3.540113 -205.386612 0.000076 9.527435
+END
+TURNOUT G "NMRA G #8 SINGLE SLIP 8SS"
+ P "Normal" 1 2 0 3 4
+ P "Reverse" 1 5 4
+ E 0.000000 0.000000 270.000000
+ E 57.938000 0.000000 90.000000
+ E 0.225435 3.606994 277.152669
+ E 57.712565 -3.606994 97.152669
+ S 0 0.000000 0.000000 0.000000 3.541770 0.000000
+ S 0 0.000000 3.541770 0.000000 57.938000 0.000000
+ S 0 0.000000 0.225435 3.606994 54.201189 -3.166279
+ S 0 0.000000 54.201189 -3.166279 57.712565 -3.606994
+ C 0 0.000000 406.850189 3.540150 -406.850189 0.000076 7.152821
+END
+
+SUBCONTENTS NMRA G Scale Double Slip Turnouts
+TURNOUT G "NMRA G #6 DOUBLE SLIP 6DS"
+ P "Normal" 1 2 3 0 4 5 6
+ P "Reverse" 1 7 6 0 4 8 3
+ E 0.000000 0.000000 270.000000
+ E 41.312000 0.000000 90.000000
+ E 0.284905 3.418894 279.527283
+ E 41.027095 -3.418894 99.527283
+ S 0 0.000000 0.000000 0.000000 3.540930 0.000000
+ S 0 0.000000 3.540930 0.000000 37.771070 0.000000
+ S 0 0.000000 37.771070 0.000000 41.312000 0.000000
+ S 0 0.000000 0.284905 3.418894 3.775537 2.833004
+ S 0 0.000000 3.775537 2.833004 37.536463 -2.833004
+ S 0 0.000000 37.536463 -2.833004 41.027095 -3.418894
+ C 0 0.000000 205.386612 3.540113 -205.386612 0.000076 9.527435
+ C 0 0.000000 -205.386612 37.771338 205.386567 180.000076 9.527435
+END
+TURNOUT G "NMRA G #8 DOUBLE SLIP 8DS"
+ P "Normal" 1 2 3 0 4 5 6
+ P "Reverse" 1 7 6 0 4 8 3
+ E 0.000000 0.000000 270.000000
+ E 57.938000 0.000000 90.000000
+ E 0.225435 3.606994 277.152669
+ E 57.712565 -3.606994 97.152669
+ S 0 0.000000 0.000000 0.000000 3.541770 0.000000
+ S 0 0.000000 3.541770 0.000000 54.396230 0.000000
+ S 0 0.000000 54.396230 0.000000 57.938000 0.000000
+ S 0 0.000000 0.225435 3.606994 3.736811 3.166279
+ S 0 0.000000 3.736811 3.166279 54.201189 -3.166279
+ S 0 0.000000 54.201189 -3.166279 57.712565 -3.606994
+ C 0 0.000000 406.850189 3.540150 -406.850189 0.000076 7.152821
+ C 0 0.000000 -406.850189 54.396766 406.850122 180.000076 7.152821
+END \ No newline at end of file
diff --git a/app/lib/params/HO-Frateschi.xtp b/app/lib/params/HO-Frateschi.xtp
index 60b63eb..6093198 100644
--- a/app/lib/params/HO-Frateschi.xtp
+++ b/app/lib/params/HO-Frateschi.xtp
@@ -1,196 +1,196 @@
-CONTENTS Frateschi HO Track
-SUBCONTENTS Frateschi HO Track - Straight
-TURNOUT HO "Frateschi HO Track Straight 880mm 4880/4980"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 34.645669 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 34.645669 0.000000
-END
-TURNOUT HO "Frateschi HO Track Straight 220mm 4220/4920"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.661417 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 8.661417 0.000000
-END
-TURNOUT HO "Frateschi HO Track Straight 110mm 4110/4910"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.330709 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 4.330709 0.000000
-END
-TURNOUT HO "Frateschi HO Track Straight 55mm 4055/4955"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.165354 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 2.165354 0.000000
-END
-TURNOUT HO "Frateschi HO Track Straight(old geometry) 45mm 4045"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.771654 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 1.771654 0.000000
-END
-SUBCONTENTS Frateschi HO Track - Misc
-TURNOUT HO "Frateschi HO Track Uncoupler Straight 110mm 4110D/4910D"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.330709 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 4.330709 0.000000
- F 0 0.000000 4
- 1.443570 0.250000 0
- 2.887139 0.250000 0
- 2.887139 -0.250000 0
- 1.443570 -0.250000 0
-END
-STRUCTURE HO "Frateschi HO Track Bumper 1525"
- X pier 0.000000 "B"
- L 0 0.100000 0.000000 0.300000 -1.000000 0.300000
- L 0 0.100000 -0.500000 0.600000 -0.500000 -0.600000
- L 0 0.100000 0.000000 -0.300000 -1.000000 -0.300000
-END
-SUBCONTENTS Frateschi HO Track - Curve
-TURNOUT HO "Frateschi HO Track Curve 360mm 30 4188/4988"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.086614 -1.898853 120.000000
- C 0 0.000000 14.173228 0.000000 -14.173228 0.000000 30.000000
-END
-TURNOUT HO "Frateschi HO Track Curve 418mm 30 4219/4919"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.228346 -2.204779 120.000000
- C 0 0.000000 16.456693 0.000000 -16.456693 0.000000 30.000000
-END
-TURNOUT HO "Frateschi HO Track Curve 480mm 20 4166/4966"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.463373 -1.139667 110.000000
- C 0 0.000000 18.897638 0.000000 -18.897638 0.000000 20.000000
-END
-TURNOUT HO "Frateschi HO Track Curve 480mm 10 4083/4983"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.281540 -0.287098 100.000000
- C 0 0.000000 18.897638 0.000000 -18.897638 0.000000 10.000000
-END
-TURNOUT HO "Frateschi HO Track Curve(old) 482mm 20 4166"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.490304 -1.144416 110.000000
- C 0 0.000000 18.976378 0.000000 -18.976378 0.000000 20.000000
-END
-TURNOUT HO "Frateschi HO Track Curve(old) 482mm 10 4083"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.295213 -0.288294 100.000000
- C 0 0.000000 18.976378 0.000000 -18.976378 0.000000 10.000000
-END
-SUBCONTENTS Frateschi HO Track - Turnouts
-TURNOUT HO "Frateschi HO Track Left Remote Turnout 4200L/4900L"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 8.661417 0.000000 90.000000
- E 8.661417 1.141732 75.000000
- S 0 0.000000 0.000000 0.000000 0.649600 0.000000
- S 0 0.000000 0.649600 0.000000 8.661417 0.000000
- C 0 0.000000 -28.490603 0.649638 28.490603 164.999924 15.000152
- S 0 0.000000 8.023578 0.970812 8.661417 1.141732
- F 0 0.000000 6
- 2.887139 -0.600000 0
- 5.774278 -0.600000 0
- 5.774278 -1.050000 0
- 5.574278 -1.250000 0
- 3.087139 -1.250000 0
- 2.887139 -1.050000 0
-END
-TURNOUT HO "Frateschi HO Track Curve 850mm 15 4222/4922"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.661267 -1.140277 105.000000
- C 0 0.000000 33.464567 0.000000 -33.464567 0.000000 15.000000
-END
-TURNOUT HO "Frateschi HO Track Right Remote Turnout 4200R/4900R"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 8.661417 0.000000 90.000000
- E 8.661417 -1.141732 105.000000
- S 0 0.000000 0.000000 0.000000 0.649600 0.000000
- S 0 0.000000 0.649600 0.000000 8.661417 0.000000
- C 0 0.000000 28.490603 0.649487 -28.490603 0.000076 15.000152
- S 0 0.000000 8.023578 -0.970812 8.661417 -1.141732
- F 0 0.000000 6
- 2.887139 0.600000 0
- 5.774278 0.600000 0
- 5.774278 1.050000 0
- 5.574278 1.250000 0
- 3.087139 1.250000 0
- 2.887139 1.050000 0
-END
-TURNOUT HO "Frateschi HO Track Left Turnout (OLD) 4165L"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 6.496063 0.000000 90.000000
- E 6.496063 1.144416 70.000000
- S 0 0.000000 0.000000 0.000000 0.655402 0.000000
- S 0 0.000000 0.655402 0.000000 6.496063 0.000000
- C 0 0.000000 -15.292205 0.655422 15.292205 159.999924 20.000152
- S 0 0.000000 5.885678 0.922245 6.496063 1.144416
-END
-TURNOUT HO "Frateschi HO Track Right Turnout (OLD) 4165R"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 6.496063 0.000000 90.000000
- E 6.496063 -1.144416 110.000000
- S 0 0.000000 0.000000 0.000000 0.655402 0.000000
- S 0 0.000000 0.655402 0.000000 6.496063 0.000000
- C 0 0.000000 15.292205 0.655341 -15.292205 0.000076 20.000152
- S 0 0.000000 5.885678 -0.922245 6.496063 -1.144416
-END
-SUBCONTENTS Frateschi HO Track - TurnTable
-TURNOUT HO "Frateschi Turntable 220mm 20d 4500"
- P "1" 1
- P "2" 2
- P "3" 3
- P "4" 4
- P "5" 5
- P "6" 6
- P "7" 7
- P "8" 8
- P "9" 9
- E 0.000000 0.000000 180.000000
- E 0.000000 4.330709 0.000000
- E 1.481190 4.069535 20.000000
- E 2.783726 3.317515 40.000000
- E 3.750504 2.165354 60.000000
- E 4.264915 0.752020 80.000000
- E 4.264915 -0.752020 100.000000
- E 3.750504 -2.165354 120.000000
- E 2.783726 -3.317515 140.000000
- E 1.481190 -4.069535 160.000000
- E 0.000000 -4.330709 180.000000
- E -1.481190 -4.069535 200.000000
- E -2.783726 -3.317515 220.000000
- E -3.750504 -2.165354 240.000000
- E -4.264915 -0.752020 260.000000
- E -4.264915 0.752020 280.000000
- E -3.750504 2.165354 300.000000
- E -2.783726 3.317515 320.000000
- E -1.481190 4.069535 340.000000
- S 16777215 0 0.000000 4.330709 0.000000 -4.330709
- S 16777215 0 1.481190 4.069535 -1.481190 -4.069535
- S 16777215 0 2.783726 3.317515 -2.783726 -3.317515
- S 16777215 0 3.750504 2.165354 -3.750504 -2.165354
- S 16777215 0 4.264915 0.752020 -4.264915 -0.752020
- S 16777215 0 4.264915 -0.752020 -4.264915 0.752020
- S 16777215 0 3.750504 -2.165354 -3.750504 2.165354
- S 16777215 0 2.783726 -3.317515 -2.783726 3.317515
- S 16777215 0 1.481190 -4.069535 -1.481190 4.069535
- A 0 0.031250 4.330709 0.000000 0.000000 0.000000 360.000000
- A 0 0.031250 5.080709 0.000000 0.000000 0.000000 360.000000
- A 0 0.031250 1.377727 0.000000 0.000000 0.000000 360.000000
- G 0 0.000000 0.750000 0.000000 0.000000 0.000000 360.000000
+CONTENTS Frateschi HO Track
+SUBCONTENTS Frateschi HO Track - Straight
+TURNOUT HO "Frateschi HO Track Straight 880mm 4880/4980"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 34.645669 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 34.645669 0.000000
+END
+TURNOUT HO "Frateschi HO Track Straight 220mm 4220/4920"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.661417 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 8.661417 0.000000
+END
+TURNOUT HO "Frateschi HO Track Straight 110mm 4110/4910"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.330709 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 4.330709 0.000000
+END
+TURNOUT HO "Frateschi HO Track Straight 55mm 4055/4955"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.165354 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 2.165354 0.000000
+END
+TURNOUT HO "Frateschi HO Track Straight(old geometry) 45mm 4045"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.771654 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 1.771654 0.000000
+END
+SUBCONTENTS Frateschi HO Track - Misc
+TURNOUT HO "Frateschi HO Track Uncoupler Straight 110mm 4110D/4910D"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.330709 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 4.330709 0.000000
+ F 0 0.000000 4
+ 1.443570 0.250000 0
+ 2.887139 0.250000 0
+ 2.887139 -0.250000 0
+ 1.443570 -0.250000 0
+END
+STRUCTURE HO "Frateschi HO Track Bumper 1525"
+ X pier 0.000000 "B"
+ L 0 0.100000 0.000000 0.300000 -1.000000 0.300000
+ L 0 0.100000 -0.500000 0.600000 -0.500000 -0.600000
+ L 0 0.100000 0.000000 -0.300000 -1.000000 -0.300000
+END
+SUBCONTENTS Frateschi HO Track - Curve
+TURNOUT HO "Frateschi HO Track Curve 360mm 30° 4188/4988"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.086614 -1.898853 120.000000
+ C 0 0.000000 14.173228 0.000000 -14.173228 0.000000 30.000000
+END
+TURNOUT HO "Frateschi HO Track Curve 418mm 30° 4219/4919"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.228346 -2.204779 120.000000
+ C 0 0.000000 16.456693 0.000000 -16.456693 0.000000 30.000000
+END
+TURNOUT HO "Frateschi HO Track Curve 480mm 20° 4166/4966"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.463373 -1.139667 110.000000
+ C 0 0.000000 18.897638 0.000000 -18.897638 0.000000 20.000000
+END
+TURNOUT HO "Frateschi HO Track Curve 480mm 10° 4083/4983"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.281540 -0.287098 100.000000
+ C 0 0.000000 18.897638 0.000000 -18.897638 0.000000 10.000000
+END
+TURNOUT HO "Frateschi HO Track Curve(old) 482mm 20° 4166"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.490304 -1.144416 110.000000
+ C 0 0.000000 18.976378 0.000000 -18.976378 0.000000 20.000000
+END
+TURNOUT HO "Frateschi HO Track Curve(old) 482mm 10° 4083"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.295213 -0.288294 100.000000
+ C 0 0.000000 18.976378 0.000000 -18.976378 0.000000 10.000000
+END
+SUBCONTENTS Frateschi HO Track - Turnouts
+TURNOUT HO "Frateschi HO Track Left Remote Turnout 4200L/4900L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 8.661417 0.000000 90.000000
+ E 8.661417 1.141732 75.000000
+ S 0 0.000000 0.000000 0.000000 0.649600 0.000000
+ S 0 0.000000 0.649600 0.000000 8.661417 0.000000
+ C 0 0.000000 -28.490603 0.649638 28.490603 164.999924 15.000152
+ S 0 0.000000 8.023578 0.970812 8.661417 1.141732
+ F 0 0.000000 6
+ 2.887139 -0.600000 0
+ 5.774278 -0.600000 0
+ 5.774278 -1.050000 0
+ 5.574278 -1.250000 0
+ 3.087139 -1.250000 0
+ 2.887139 -1.050000 0
+END
+TURNOUT HO "Frateschi HO Track Curve 850mm 15° 4222/4922"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.661267 -1.140277 105.000000
+ C 0 0.000000 33.464567 0.000000 -33.464567 0.000000 15.000000
+END
+TURNOUT HO "Frateschi HO Track Right Remote Turnout 4200R/4900R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 8.661417 0.000000 90.000000
+ E 8.661417 -1.141732 105.000000
+ S 0 0.000000 0.000000 0.000000 0.649600 0.000000
+ S 0 0.000000 0.649600 0.000000 8.661417 0.000000
+ C 0 0.000000 28.490603 0.649487 -28.490603 0.000076 15.000152
+ S 0 0.000000 8.023578 -0.970812 8.661417 -1.141732
+ F 0 0.000000 6
+ 2.887139 0.600000 0
+ 5.774278 0.600000 0
+ 5.774278 1.050000 0
+ 5.574278 1.250000 0
+ 3.087139 1.250000 0
+ 2.887139 1.050000 0
+END
+TURNOUT HO "Frateschi HO Track Left Turnout (OLD) 4165L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 6.496063 0.000000 90.000000
+ E 6.496063 1.144416 70.000000
+ S 0 0.000000 0.000000 0.000000 0.655402 0.000000
+ S 0 0.000000 0.655402 0.000000 6.496063 0.000000
+ C 0 0.000000 -15.292205 0.655422 15.292205 159.999924 20.000152
+ S 0 0.000000 5.885678 0.922245 6.496063 1.144416
+END
+TURNOUT HO "Frateschi HO Track Right Turnout (OLD) 4165R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 6.496063 0.000000 90.000000
+ E 6.496063 -1.144416 110.000000
+ S 0 0.000000 0.000000 0.000000 0.655402 0.000000
+ S 0 0.000000 0.655402 0.000000 6.496063 0.000000
+ C 0 0.000000 15.292205 0.655341 -15.292205 0.000076 20.000152
+ S 0 0.000000 5.885678 -0.922245 6.496063 -1.144416
+END
+SUBCONTENTS Frateschi HO Track - TurnTable
+TURNOUT HO "Frateschi Turntable 220mm 20d 4500"
+ P "1" 1
+ P "2" 2
+ P "3" 3
+ P "4" 4
+ P "5" 5
+ P "6" 6
+ P "7" 7
+ P "8" 8
+ P "9" 9
+ E 0.000000 0.000000 180.000000
+ E 0.000000 4.330709 0.000000
+ E 1.481190 4.069535 20.000000
+ E 2.783726 3.317515 40.000000
+ E 3.750504 2.165354 60.000000
+ E 4.264915 0.752020 80.000000
+ E 4.264915 -0.752020 100.000000
+ E 3.750504 -2.165354 120.000000
+ E 2.783726 -3.317515 140.000000
+ E 1.481190 -4.069535 160.000000
+ E 0.000000 -4.330709 180.000000
+ E -1.481190 -4.069535 200.000000
+ E -2.783726 -3.317515 220.000000
+ E -3.750504 -2.165354 240.000000
+ E -4.264915 -0.752020 260.000000
+ E -4.264915 0.752020 280.000000
+ E -3.750504 2.165354 300.000000
+ E -2.783726 3.317515 320.000000
+ E -1.481190 4.069535 340.000000
+ S 0 0 0.000000 4.330709 0.000000 -4.330709
+ S 0 0 1.481190 4.069535 -1.481190 -4.069535
+ S 0 0 2.783726 3.317515 -2.783726 -3.317515
+ S 0 0 3.750504 2.165354 -3.750504 -2.165354
+ S 0 0 4.264915 0.752020 -4.264915 -0.752020
+ S 0 0 4.264915 -0.752020 -4.264915 0.752020
+ S 0 0 3.750504 -2.165354 -3.750504 2.165354
+ S 0 0 2.783726 -3.317515 -2.783726 3.317515
+ S 0 0 1.481190 -4.069535 -1.481190 4.069535
+ A 0 0.031250 4.330709 0.000000 0.000000 0.000000 360.000000
+ A 0 0.031250 5.080709 0.000000 0.000000 0.000000 360.000000
+ A 0 0.031250 1.377727 0.000000 0.000000 0.000000 360.000000
+ G 0 0.000000 0.750000 0.000000 0.000000 0.000000 360.000000
END \ No newline at end of file
diff --git a/app/lib/params/HO-LifeLike-Power-Loc.xtp b/app/lib/params/HO-LifeLike-Power-Loc.xtp
index ceafd20..8d37f11 100644
--- a/app/lib/params/HO-LifeLike-Power-Loc.xtp
+++ b/app/lib/params/HO-LifeLike-Power-Loc.xtp
@@ -20,7 +20,7 @@ TURNOUT HO "LifeLike HO Power-Loc Track Straight 9in 21302/21332"
END
SUBCONTENTS Bachmann True-Tack - Curve Track
-TURNOUT HO "LifeLike HO Power-Loc Track Curved 18in 30 21303/21333"
+TURNOUT HO "LifeLike HO Power-Loc Track Curved 18in 30° 21303/21333"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 9.000000 -2.411543 120.000000
@@ -28,7 +28,7 @@ TURNOUT HO "LifeLike HO Power-Loc Track Curved 18in 30 21303/21333"
A 11579568 0.053333 18.984375 0.000000 -18.000000 0.000000 30.000000
A 11579568 0.053333 17.015625 0.000000 -18.000000 0.000000 30.000000
END
-TURNOUT HO "LifeLike HO Power-Loc Track Curved 22in 22.5 21318/21348"
+TURNOUT HO "LifeLike HO Power-Loc Track Curved 22in 22.5° 21318/21348"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 8.419036 -1.674650 112.500000
@@ -71,7 +71,7 @@ TURNOUT HO "LifeLike HO Power-Loc Track Right Turnout 21305/21335"
SUBCONTENTS Bachmann True-Tack - Misc Track
-TURNOUT HO "LifeLike HO Power-Loc Track Crossing 90 21715"
+TURNOUT HO "LifeLike HO Power-Loc Track Crossing 90° 21715"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 4.000000 0.000000 90.000000
@@ -88,7 +88,7 @@ TURNOUT HO "LifeLike HO Power-Loc Track Crossing 90 21715"
L 11579568 0.053333 1.015625 -0.984375 1.015625 -2.000000
L 11579568 0.053333 2.984375 -0.984375 2.984375 -2.000000
END
-TURNOUT HO "LifeLike HO Power-Loc Track Terminal/Rerailer Curved 18in 30 21304/21334"
+TURNOUT HO "LifeLike HO Power-Loc Track Terminal/Rerailer Curved 18in 30° 21304/21334"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 9.000000 -2.411543 120.000000
diff --git a/app/lib/params/HO-MicroEngineering.xtp b/app/lib/params/HO-MicroEngineering.xtp
new file mode 100644
index 0000000..7ac88fa
--- /dev/null
+++ b/app/lib/params/HO-MicroEngineering.xtp
@@ -0,0 +1,160 @@
+CONTENTS Micro-Engineering HO-Scale
+SUBCONTENTS Micro-Engineering HO Code 70 Turnouts
+TURNOUT HO "Micro Engineering #6 Code 70 RH 14-806"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 10.857000 0.000000 90.000000
+ E 10.686000 -1.223000 99.527200
+ S 0 0 0.000000 0.000000 0.649000 0.000000
+ S 0 0 0.649000 0.000000 10.857000 0.000000
+ C 0 0 33.004000 0.649000 -33.004000 0.000000 9.527000
+ S 0 0 6.111000 -0.455000 10.686000 -1.223000
+ END
+TURNOUT HO "Micro Engineering #6 Code 70 LH 14-805"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 10.857000 0.000000 90.000000
+ E 10.686000 1.223000 80.472800
+ S 0 0 0.000000 0.000000 0.649000 0.000000
+ S 0 0 0.649000 0.000000 10.857000 0.000000
+ C 0 0 -33.004000 0.649000 33.004000 170.473000 9.527000
+ S 0 0 6.111000 0.455000 10.686000 1.223000
+ END
+
+SUBCONTENTS Micro-Engineering HO Code 83 Turnouts
+TURNOUT HO "Micro Engineering #6 Code 83 RH 14-706"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 10.857000 0.000000 90.000000
+ E 10.686000 -1.223000 99.527200
+ S 0 0 0.000000 0.000000 0.649000 0.000000
+ S 0 0 0.649000 0.000000 10.857000 0.000000
+ C 0 0 33.004000 0.649000 -33.004000 0.000000 9.527000
+ S 0 0 6.111000 -0.455000 10.686000 -1.223000
+ END
+TURNOUT HO "Micro Engineering #6 Code 83 LH 14-705"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 10.857000 0.000000 90.000000
+ E 10.686000 1.223000 80.472800
+ S 0 0 0.000000 0.000000 0.649000 0.000000
+ S 0 0 0.649000 0.000000 10.857000 0.000000
+ C 0 0 -33.004000 0.649000 33.004000 170.473000 9.527000
+ S 0 0 6.111000 0.455000 10.686000 1.223000
+ END
+
+SUBCONTENTS Micro-Engineering HO Code 83 Ladder Track System Turnouts
+TURNOUT HO "Micro Engineering #5A Code 83 LH Std Turnout 14-710"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 10.402958 0.000000 90.000000
+ E 10.281435 1.207850 78.579000
+ S 0 0.000000 0.000000 0.000000 0.649600 0.000000
+ S 0 0.000000 0.649600 0.000000 10.402958 0.000000
+ C 0 0.000000 -36.530044 0.649648 36.530044 168.578924 11.421152
+ S 0 0.000000 7.883245 0.723362 10.281435 1.207850
+ END
+TURNOUT HO "Micro Engineering #5A Code 83 RH Std Turnout 14-711"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 10.402958 0.000000 90.000000
+ E 10.281435 -1.207850 101.421000
+ S 0 0.000000 0.000000 0.000000 0.649600 0.000000
+ S 0 0.000000 0.649600 0.000000 10.402958 0.000000
+ C 0 0.000000 36.530044 0.649455 -36.530044 0.000076 11.421152
+ S 0 0.000000 7.883245 -0.723362 10.281435 -1.207850
+ END
+TURNOUT HO "Micro Engineering #5B Code 83 LH Curved Diverging Turnout 14-712"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 9.259112 0.000000 90.000000
+ E 9.001466 1.216628 73.800000
+ S 0 0.000000 0.000000 0.000000 1.102670 0.000000
+ S 0 0.000000 1.102670 0.000000 9.259112 0.000000
+ C 0 0.000000 -26.076087 1.102705 26.076087 163.799924 16.200152
+ S 0 0.000000 8.377727 1.035403 9.001466 1.216628
+ END
+TURNOUT HO "Micro Engineering #5B Code 83 RH Curved Diverging Turnout 14-713"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 9.259112 0.000000 90.000000
+ E 9.001466 -1.216628 106.200000
+ S 0 0.000000 0.000000 0.000000 1.102670 0.000000
+ S 0 0.000000 1.102670 0.000000 9.259112 0.000000
+ C 0 0.000000 26.076087 1.102567 -26.076087 0.000076 16.200152
+ S 0 0.000000 8.377727 -1.035403 9.001466 -1.216628
+ END
+TURNOUT HO "Micro Engineering #5C Code 83 LH Lead Trk Turnout 14-714"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 7.284000 0.000000 90.000000
+ E 8.998425 1.216664 73.800000
+ S 0 0.000000 0.000000 0.000000 1.099376 0.000000
+ S 0 0.000000 1.099376 0.000000 7.284000 0.000000
+ C 0 0.000000 -26.076994 1.099411 26.076994 163.799924 16.200152
+ S 0 0.000000 8.374686 1.035439 8.998425 1.216664
+ END
+TURNOUT HO "Micro Engineering #5C Code 83 RH Lead Trk Turnout 14-715"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 7.284000 0.000000 90.000000
+ E 8.998425 -1.216664 106.200000
+ S 0 0.000000 0.000000 0.000000 1.099376 0.000000
+ S 0 0.000000 1.099376 0.000000 7.284000 0.000000
+ C 0 0.000000 26.076994 1.099273 -26.076994 0.000076 16.200152
+ S 0 0.000000 8.374686 -1.035439 8.998425 -1.216664
+ END
+TURNOUT HO "Micro Engineering #5D Code 83 LH Intermediate Trk Turnout 14-716"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 7.489000 0.000000 90.000000
+ E 9.223145 1.216664 73.800000
+ S 0 0.000000 0.000000 0.000000 1.324098 0.000000
+ S 0 0.000000 1.324098 0.000000 7.489000 0.000000
+ C 0 0.000000 -26.076987 1.324133 26.076987 163.799924 16.200152
+ S 0 0.000000 8.599406 1.035439 9.223145 1.216664
+ END
+TURNOUT HO "Micro Engineering #5D Code 83 RH Intermediate Trk Turnout 14-717"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 7.489000 0.000000 90.000000
+ E 9.223145 -1.216664 106.200000
+ S 0 0.000000 0.000000 0.000000 1.324098 0.000000
+ S 0 0.000000 1.324098 0.000000 7.489000 0.000000
+ C 0 0.000000 26.076987 1.323995 -26.076987 0.000076 16.200152
+ S 0 0.000000 8.599406 -1.035439 9.223145 -1.216664
+ END
+TURNOUT HO "Micro Engineering #5E Code 83 LH Last Trk Turnout 14-718"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 9.474000 0.000000 90.000000
+ E 9.228948 1.216664 73.800000
+ S 0 0.000000 0.000000 0.000000 1.329901 0.000000
+ S 0 0.000000 1.329901 0.000000 9.474000 0.000000
+ C 0 0.000000 -26.076986 1.329936 26.076986 163.799924 16.200152
+ S 0 0.000000 8.605209 1.035439 9.228948 1.216664
+ END
+TURNOUT HO "Micro Engineering #5E Code 83 RH Last Trk Turnout 14-719"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 9.474000 0.000000 90.000000
+ E 9.228948 -1.216664 106.200000
+ S 0 0.000000 0.000000 0.000000 1.329901 0.000000
+ S 0 0.000000 1.329901 0.000000 9.474000 0.000000
+ C 0 0.000000 26.076986 1.329798 -26.076986 0.000076 16.200152
+ S 0 0.000000 8.605209 -1.035439 9.228948 -1.216664
+ END
diff --git a/app/lib/params/pecohost.xtp b/app/lib/params/HO-Peco-Code100Setrack.xtp
index 423d43d..3b16768 100644
--- a/app/lib/params/pecohost.xtp
+++ b/app/lib/params/HO-Peco-Code100Setrack.xtp
@@ -1,4 +1,4 @@
-CONTENTS Peco HO Scale Turnouts Setrack
+CONTENTS Peco HO Scale Code 100 Setrack
SUBCONTENTS Peco HO Setrack - Track
TURNOUT HO "Peco Setrack Straight standard ST-200"
@@ -101,7 +101,7 @@ TURNOUT HO "Peco Setrack Special Curve ST-238"
END
SUBCONTENTS Peco HO Setrack - Turnouts
-TURNOUT HO "Peco Setrack No.2 Radius. LH Turnout, lnsulfrog ST-241"
+TURNOUT HO "Peco Setrack No.2 Radius LH Turnout, Insulfrog ST-241"
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -112,7 +112,7 @@ TURNOUT HO "Peco Setrack No.2 Radius. LH Turnout, lnsulfrog ST-241"
C 0 0.000000 -13.978252 0.649656 13.978252 157.499924 22.500152
S 0 0.000000 5.998913 1.064043 6.599029 1.312629
END
-TURNOUT HO "Peco Setrack No.2 Radius. RH Turnout, lnsulfrog ST-240"
+TURNOUT HO "Peco Setrack No.2 Radius RH Turnout, Insulfrog ST-240"
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -123,7 +123,7 @@ TURNOUT HO "Peco Setrack No.2 Radius. RH Turnout, lnsulfrog ST-240"
C 0 0.000000 13.978252 0.649582 -13.978252 0.000076 22.500152
S 0 0.000000 5.998913 -1.064043 6.599029 -1.312629
END
-TURNOUT HO "Peco Setrack Curved Double Radius. L/H Turnout. lnsulfrog ST-245"
+TURNOUT HO "Peco Setrack Curved Double Radius LH Turnout, Insulfrog ST-245"
P "Normal" 2 3 4
P "Reverse" 1
E 0.000000 0.000000 270.000000
@@ -134,7 +134,7 @@ TURNOUT HO "Peco Setrack Curved Double Radius. L/H Turnout. lnsulfrog ST-245"
C 0 0.000000 -15.424000 3.000000 15.424000 157.500000 22.500000
S 0 0.000000 8.902509 1.174082 9.237000 1.313000
END
-TURNOUT HO "Peco Setrack Curved Double Radius. R/H Turnout. lnsulfrog ST-244"
+TURNOUT HO "Peco Setrack Curved Double Radius RH Turnout, Insulfrog ST-244"
P "Normal" 2 3 4
P "Reverse" 1
E 0.000000 0.000000 270.000000
@@ -145,7 +145,7 @@ TURNOUT HO "Peco Setrack Curved Double Radius. R/H Turnout. lnsulfrog ST-244"
C 0 0.000000 15.424000 3.000000 -15.424000 0.000000 22.500000
S 0 0.000000 8.902509 -1.174082 9.237000 -1.313000
END
-TURNOUT HO "Peco Setrack Medium Radius Y Turnout, lnsulfrog ST-247"
+TURNOUT HO "Peco Setrack Medium Radius Y Turnout, Insulfrog ST-247"
P "Left" 1 2 3
P "Right" 1 4 5
E 0.000000 0.000000 270.000000
@@ -159,7 +159,7 @@ TURNOUT HO "Peco Setrack Medium Radius Y Turnout, lnsulfrog ST-247"
END
SUBCONTENTS Peco HO Setrack - Crossing
-TURNOUT HO "Peco Setrack Crossing ST-250"
+TURNOUT HO "Peco Setrack Medium Diamond Crossing, Insulfrog ST-250"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 6.692913 0.000000 90.000000
diff --git a/app/lib/params/pecoho.xtp b/app/lib/params/HO-Peco-Code100Streamline.xtp
index dcdbd6f..23924a5 100644
--- a/app/lib/params/pecoho.xtp
+++ b/app/lib/params/HO-Peco-Code100Streamline.xtp
@@ -1,6 +1,6 @@
-CONTENTS Peco HO Scale Turnouts
-SUBCONTENTS Peco HO Scale Turnouts
-TURNOUT HO "Peco LH Small turnout SL-92/192"
+CONTENTS Peco HO Scale Code 100 Streamline Track
+SUBCONTENTS Peco HO Scale Code 100 Turnouts
+TURNOUT HO "Peco LH Small Turnout SL-92"
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -11,7 +11,7 @@ TURNOUT HO "Peco LH Small turnout SL-92/192"
C 0 0.000000 -18.365376 0.648624 18.365376 167.999924 12.000152
S 0 0.000000 4.467021 0.401337 7.283465 1.000000
END
-TURNOUT HO "Peco RH Small turnout SL-91/191"
+TURNOUT HO "Peco RH Small Turnout SL-91"
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -22,7 +22,7 @@ TURNOUT HO "Peco RH Small turnout SL-91/191"
C 0 0.000000 18.365376 0.648527 -18.365376 0.000076 12.000152
S 0 0.000000 4.467021 -0.401337 7.283465 -1.000000
END
-TURNOUT HO "Peco LH Medium turnout SL-96/196"
+TURNOUT HO "Peco LH Medium Turnout SL-96"
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -33,7 +33,7 @@ TURNOUT HO "Peco LH Medium turnout SL-96/196"
C 0 0.000000 -31.101230 0.648641 31.101230 167.999924 12.000152
S 0 0.000000 7.114985 0.679653 8.622047 1.000000
END
-TURNOUT HO "Peco RH Medium turnout SL-95/195"
+TURNOUT HO "Peco RH Medium Turnout SL-95"
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -44,7 +44,7 @@ TURNOUT HO "Peco RH Medium turnout SL-95/195"
C 0 0.000000 31.101230 0.648476 -31.101230 0.000076 12.000152
S 0 0.000000 7.114985 -0.679653 8.622047 -1.000000
END
-TURNOUT HO "Peco LH Long turnout SL-89/189"
+TURNOUT HO "Peco LH Long Turnout, Insulfrog SL-89"
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -55,7 +55,7 @@ TURNOUT HO "Peco LH Long turnout SL-89/189"
C 0 0.000000 -39.590004 1.291890 39.590004 167.999924 12.000152
S 0 0.000000 9.523158 0.865157 10.157480 1.000000
END
-TURNOUT HO "Peco RH Long turnout SL-88/188"
+TURNOUT HO "Peco RH Long Turnout, Insulfrog SL-88"
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -66,7 +66,7 @@ TURNOUT HO "Peco RH Long turnout SL-88/188"
C 0 0.000000 39.590004 1.291680 -39.590004 0.000076 12.000152
S 0 0.000000 9.523158 -0.865157 10.157480 -1.000000
END
-TURNOUT HO "Peco Curved Left SL-87/187"
+TURNOUT HO "Peco Curved Left Turnout SL-87"
P "Normal" 1 4 5
P "Reverse" 1 2 3
E 0.000000 0.000000 270.000000
@@ -78,7 +78,7 @@ TURNOUT HO "Peco Curved Left SL-87/187"
C 0 0.000000 -48.243775 0.648600 48.243775 171.000000 9.000000
S 0 0.000000 8.195589 0.593961 9.970000 0.875000
END
-TURNOUT HO "Peco Curved Right SL-86/186"
+TURNOUT HO "Peco Curved Right Turnout SL-86"
P "Normal" 1 4 5
P "Reverse" 1 2 3
E 0.000000 0.000000 270.000000
@@ -90,7 +90,7 @@ TURNOUT HO "Peco Curved Right SL-86/186"
C 0 0.000000 48.243775 0.648600 -48.243775 0.000000 9.000000
S 0 0.000000 8.195589 -0.593961 9.970000 -0.875000
END
-TURNOUT HO "Peco Short Y turnout SL-97/197"
+TURNOUT HO "Peco Short Y Turnout SL-97"
P "Left" 1 2 3
P "Right" 1 4 5
E 0.000000 0.000000 270.000000
@@ -102,7 +102,7 @@ TURNOUT HO "Peco Short Y turnout SL-97/197"
C 0 0.000000 18.075241 0.648528 -18.075241 0.000076 12.000152
S 0 0.000000 4.406698 -0.394997 5.826772 -0.696850
END
-TURNOUT HO "Peco Medium Y turnout SL-98/198"
+TURNOUT HO "Peco Large Y Turnout SL-98"
P "Left" 1 2 3
P "Right" 1 4 5
E 0.000000 0.000000 270.000000
@@ -114,7 +114,7 @@ TURNOUT HO "Peco Medium Y turnout SL-98/198"
C 0 0.000000 26.386054 0.648495 -26.386054 0.000076 6.000152
S 0 0.000000 3.406761 -0.144553 8.661417 -0.696850
END
-TURNOUT HO "Peco Medium Radius 3 Way Turnout(code 100) SL-99"
+TURNOUT HO "Peco Medium Radius 3 Way Turnout, Insulfrog SL-99"
P "Left" 1 2 3
P "Normal" 1 6
P "Right" 1 4 5
@@ -129,24 +129,7 @@ TURNOUT HO "Peco Medium Radius 3 Way Turnout(code 100) SL-99"
S 0 0.000000 7.192866 -0.687838 8.661417 -1.000000
S 0 0.000000 0.648600 0.000000 8.661417 0.000000
END
-TURNOUT HO "PECO SLE199 "
- U "3-way Turnout" "Open Registration" "PECO" "SLE199" "" 10.590551 12.000000 1.023622 10.787402 1.023622 12.000000 8.661417 0.000000 0.000000 0
- P "Left" 1 2 3 4
- P "Normal" 1 2 7
- P "Right" 1 5 6
- E 0.000000 0.000000 270.000000
- E 10.590551 1.023622 78.000000
- E 8.661417 -1.023622 102.000000
- E 10.787402 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 0.648600 0.000000
- S 0 0.000000 0.648600 0.000000 1.500165 0.000000
- C 0 0.000000 -40.670961 1.500219 40.670961 167.999924 12.000152
- S 0 0.000000 9.956232 0.888779 10.590551 1.023622
- C 0 0.000000 30.418452 0.648479 -30.418452 0.000076 12.000152
- S 0 0.000000 6.973026 -0.664732 8.661417 -1.023622
- S 0 0.000000 1.500165 0.000000 10.787402 0.000000
- END
-TURNOUT HO "Peco Single Slip SL-80/180"
+TURNOUT HO "Peco Single Slip, Insulfrog SL-80"
P "Normal" 1 2 0 3 4
P "Reverse" 1 5 4
E 0.000000 0.000000 270.000000
@@ -159,7 +142,7 @@ TURNOUT HO "Peco Single Slip SL-80/180"
S 0 0.000000 8.427277 -0.749392 9.696040 -1.019087
C 0 0.000000 34.292562 1.297233 -34.292562 0.000076 12.000152
END
-TURNOUT HO "Peco Double Slip SL-90/190"
+TURNOUT HO "Peco Double Slip, Insulfrog SL-90"
P "Normal" 1 2 3 0 4 5 6
P "Reverse" 1 7 6 0 4 8 3
E 0.000000 0.000000 270.000000
@@ -175,7 +158,7 @@ TURNOUT HO "Peco Double Slip SL-90/190"
C 0 0.000000 34.292562 1.297233 -34.292562 0.000076 12.000152
C 0 0.000000 -34.292562 8.505825 34.292552 180.000076 12.000152
END
-TURNOUT HO "PECO LH CatchPoint(code 100) SL-84"
+TURNOUT HO "PECO RH CatchPoint SL-84"
P "Closed" 1 2
P "Open" 1 3
E 0.000000 0.000000 270.000000
@@ -185,7 +168,7 @@ TURNOUT HO "PECO LH CatchPoint(code 100) SL-84"
S 0 0.000000 0.649000 0.000000 4.094488 0.000000
S 0 0.000000 0.649000 0.000000 3.250000 0.12500
END
-TURNOUT HO "PECO RH CatchPoint(code 100) SL-85"
+TURNOUT HO "PECO LH CatchPoint SL-85"
P "Closed" 1 2
P "Open" 1 3
E 0.000000 0.000000 270.000000
@@ -195,9 +178,8 @@ TURNOUT HO "PECO RH CatchPoint(code 100) SL-85"
S 0 0.000000 0.649000 0.000000 4.094488 0.000000
S 0 0.000000 0.649000 0.000000 3.250000 -0.12500
END
-
SUBCONTENTS Peco HO Scale Crossings
-TURNOUT HO "Peco Short Crossing SL-93/193"
+TURNOUT HO "Peco Short Crossing, Insulfrog SL-93"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 5.000000 0.000000 90.000000
@@ -206,7 +188,7 @@ TURNOUT HO "Peco Short Crossing SL-93/193"
S 0 0.000000 0.000000 0.000000 5.000000 0.000000
S 0 0.000000 0.216135 1.016838 4.783865 -1.016838
END
-TURNOUT HO "Peco Long Crossing SL-94/194"
+TURNOUT HO "Peco Long Crossing, Insulfrog SL-94"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 9.803150 0.000000 90.000000
@@ -215,3 +197,92 @@ TURNOUT HO "Peco Long Crossing SL-94/194"
S 0 0.000000 0.000000 0.000000 9.803150 0.000000
S 0 0.000000 0.107110 1.019087 9.696040 -1.019087
END
+
+SUBCONTENTS Peco HO Scale Code 100 Inspection Pit
+TURNOUT HO "Peco Inspection Pit (Code 100) LK-56"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 11.692913 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 11.692913 0.000000
+ F 15720651 0.000000 4
+ 0.000000 0.551091 0
+ 11.692913 0.551091 0
+ 11.692913 -0.551091 0
+ 0.000000 -0.551091 0
+ F 12632256 0.000000 4
+ 0.000000 0.280000 0
+ 0.560000 0.280000 0
+ 0.560000 -0.280000 0
+ 0.000000 -0.280000 0
+ L 0 0.020000 0.000000 0.280000 0.000000 -0.280000
+ L 0 0.020000 0.112000 0.280000 0.112000 -0.280000
+ L 0 0.020000 0.224000 0.280000 0.224000 -0.280000
+ L 0 0.020000 0.336000 0.280000 0.336000 -0.280000
+ L 0 0.020000 0.448000 0.280000 0.448000 -0.280000
+ L 0 0.020000 0.560000 0.280000 0.560000 -0.280000
+ F 12632256 0.000000 4
+ 11.132913 0.280000 0
+ 11.692913 0.280000 0
+ 11.692913 -0.280000 0
+ 11.132913 -0.280000 0
+ L 0 0.020000 11.132913 0.280000 11.132913 -0.280000
+ L 0 0.020000 11.244913 0.280000 11.244913 -0.280000
+ L 0 0.020000 11.356913 0.280000 11.356913 -0.280000
+ L 0 0.020000 11.468913 0.280000 11.468913 -0.280000
+ L 0 0.020000 11.580913 0.280000 11.580913 -0.280000
+ L 0 0.020000 11.692913 0.280000 11.692913 -0.280000
+ A 0 0.020000 0.062500 0.974409 0.000000 0.000000 360.000000
+ A 0 0.020000 0.062500 2.923228 0.000000 0.000000 360.000000
+ A 0 0.020000 0.062500 4.872047 0.000000 0.000000 360.000000
+ A 0 0.020000 0.062500 6.820866 0.000000 0.000000 360.000000
+ A 0 0.020000 0.062500 8.769685 0.000000 0.000000 360.000000
+ A 0 0.020000 0.062500 10.718504 0.000000 0.000000 360.000000
+ L 0 0.020000 0.000000 0.551091 11.692913 0.551091
+ L 0 0.020000 0.000000 0.280000 11.692913 0.28000
+ L 0 0.020000 0.000000 -0.280000 11.692913 -0.280000
+ L 0 0.020000 0.000000 -0.551091 11.692913 -0.551091
+END
+TURNOUT HO "Peco Code 100 Inspection Pit(Stair End) LK-56A"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.948819 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 1.948819 0.000000
+ F 15720651 0.000000 4
+ 0.000000 0.551091 0
+ 1.948819 0.551091 0
+ 1.948819 -0.551091 0
+ 0.000000 -0.551091 0
+ F 12632256 0.000000 4
+ 0.000000 0.280000 0
+ 0.560000 0.280000 0
+ 0.560000 -0.280000 0
+ 0.000000 -0.280000 0
+ L 0 0.020000 0.000000 0.280000 0.000000 -0.280000
+ L 0 0.020000 0.112000 0.280000 0.112000 -0.280000
+ L 0 0.020000 0.224000 0.280000 0.224000 -0.280000
+ L 0 0.020000 0.336000 0.280000 0.336000 -0.280000
+ L 0 0.020000 0.448000 0.280000 0.448000 -0.280000
+ L 0 0.020000 0.560000 0.280000 0.560000 -0.280000
+ A 0 0.020000 0.062500 0.974409 0.000000 0.000000 360.000000
+ L 0 0.020000 0.000000 0.551091 1.948819 0.551091
+ L 0 0.020000 0.000000 0.280000 1.948819 0.28000
+ L 0 0.020000 0.000000 -0.280000 1.948819 -0.280000
+ L 0 0.020000 0.000000 -0.551091 1.948819 -0.551091
+
+END
+TURNOUT HO "Peco Code 100 Inspection Pit(Mid Section) LK-56B"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.948819 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 1.948819 0.000000
+ F 15720651 0.000000 4
+ 0.000000 0.551091 0
+ 1.948819 0.551091 0
+ 1.948819 -0.551091 0
+ 0.000000 -0.551091 0
+ A 0 0.020000 0.062500 0.974409 0.000000 0.000000 360.000000
+ L 0 0.020000 0.000000 0.551091 1.948819 0.551091
+ L 0 0.020000 0.000000 0.280000 1.948819 0.28000
+ L 0 0.020000 0.000000 -0.280000 1.948819 -0.280000
+ L 0 0.020000 0.000000 -0.551091 1.948819 -0.551091
+END \ No newline at end of file
diff --git a/app/lib/params/HO-Peco-Code75Finescale.xtp b/app/lib/params/HO-Peco-Code75Finescale.xtp
new file mode 100644
index 0000000..39ea0c1
--- /dev/null
+++ b/app/lib/params/HO-Peco-Code75Finescale.xtp
@@ -0,0 +1,288 @@
+CONTENTS Peco HO Scale Code 75 Finescale Track
+SUBCONTENTS Peco HO Scale Code 75 Turnouts
+TURNOUT HO "Peco LH Small Turnout, Electrofrog SL-E192"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 7.283465 0.000000 90.000000
+ E 7.283465 1.000000 78.000000
+ S 0 0.000000 0.000000 0.000000 0.648600 0.000000
+ S 0 0.000000 0.648600 0.000000 7.283465 0.000000
+ C 0 0.000000 -18.365376 0.648624 18.365376 167.999924 12.000152
+ S 0 0.000000 4.467021 0.401337 7.283465 1.000000
+ END
+TURNOUT HO "Peco RH Small Turnout, Electrofrog SL-E191"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 7.283465 0.000000 90.000000
+ E 7.283465 -1.000000 102.000000
+ S 0 0.000000 0.000000 0.000000 0.648600 0.000000
+ S 0 0.000000 0.648600 0.000000 7.283465 0.000000
+ C 0 0.000000 18.365376 0.648527 -18.365376 0.000076 12.000152
+ S 0 0.000000 4.467021 -0.401337 7.283465 -1.000000
+ END
+TURNOUT HO "Peco LH Medium Turnout, Electrofrog SL-E196"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 8.622047 0.000000 90.000000
+ E 8.622047 1.000000 78.000000
+ S 0 0.000000 0.000000 0.000000 0.648600 0.000000
+ S 0 0.000000 0.648600 0.000000 8.622047 0.000000
+ C 0 0.000000 -31.101230 0.648641 31.101230 167.999924 12.000152
+ S 0 0.000000 7.114985 0.679653 8.622047 1.000000
+ END
+TURNOUT HO "Peco RH Medium Turnout, Electrofrog SL-E195"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 8.622047 0.000000 90.000000
+ E 8.622047 -1.000000 102.000000
+ S 0 0.000000 0.000000 0.000000 0.648600 0.000000
+ S 0 0.000000 0.648600 0.000000 8.622047 0.000000
+ C 0 0.000000 31.101230 0.648476 -31.101230 0.000076 12.000152
+ S 0 0.000000 7.114985 -0.679653 8.622047 -1.000000
+ END
+TURNOUT HO "Peco LH Long Turnout, Electrofrog SL-E189"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 10.157480 0.000000 90.000000
+ E 10.157480 1.000000 78.000000
+ S 0 0.000000 0.000000 0.000000 1.291837 0.000000
+ S 0 0.000000 1.291837 0.000000 10.157480 0.000000
+ C 0 0.000000 -39.590004 1.291890 39.590004 167.999924 12.000152
+ S 0 0.000000 9.523158 0.865157 10.157480 1.000000
+ END
+TURNOUT HO "Peco RH Long Turnout, Electrofrog SL-E188"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 10.157480 0.000000 90.000000
+ E 10.157480 -1.000000 102.000000
+ S 0 0.000000 0.000000 0.000000 1.291837 0.000000
+ S 0 0.000000 1.291837 0.000000 10.157480 0.000000
+ C 0 0.000000 39.590004 1.291680 -39.590004 0.000076 12.000152
+ S 0 0.000000 9.523158 -0.865157 10.157480 -1.000000
+ END
+TURNOUT HO "Peco Curved Left Turnout, Electrofrog SL-E187"
+ P "Normal" 1 4 5
+ P "Reverse" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 9.970000 0.875000 81.000000
+ E 9.725000 1.850000 69.750000
+ S 0 0.000000 0.000000 0.000000 0.648600 0.000000
+ C 0 0.000000 -22.745078 0.648600 22.745078 159.750000 20.250000
+ S 0 0.000000 8.521059 1.405843 9.725000 1.850000
+ C 0 0.000000 -48.243775 0.648600 48.243775 171.000000 9.000000
+ S 0 0.000000 8.195589 0.593961 9.970000 0.875000
+ END
+TURNOUT HO "Peco Curved Right Turnout, Electrofrog SL-E186"
+ P "Normal" 1 4 5
+ P "Reverse" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 9.970000 -0.875000 99.000000
+ E 9.725000 -1.850000 110.250000
+ S 0 0.000000 0.000000 0.000000 0.648600 0.000000
+ C 0 0.000000 22.745078 0.648600 -22.745078 0.000000 20.250000
+ S 0 0.000000 8.521059 -1.405843 9.725000 -1.850000
+ C 0 0.000000 48.243775 0.648600 -48.243775 0.000000 9.000000
+ S 0 0.000000 8.195589 -0.593961 9.970000 -0.875000
+ END
+TURNOUT HO "Peco Short Y Turnout, Electrofrog SL-E197"
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 5.826772 0.696850 78.000000
+ E 5.826772 -0.696850 102.000000
+ S 0 0.000000 0.000000 0.000000 0.648600 0.000000
+ C 0 0.000000 -18.075241 0.648624 18.075241 167.999924 12.000152
+ S 0 0.000000 4.406698 0.394997 5.826772 0.696850
+ C 0 0.000000 18.075241 0.648528 -18.075241 0.000076 12.000152
+ S 0 0.000000 4.406698 -0.394997 5.826772 -0.696850
+ END
+TURNOUT HO "Peco Medium Y Turnout, Electrofrog SL-E198"
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 8.661417 0.696850 84.000000
+ E 8.661417 -0.696850 96.000000
+ S 0 0.000000 0.000000 0.000000 0.648600 0.000000
+ C 0 0.000000 -26.386054 0.648635 26.386054 173.999924 6.000152
+ S 0 0.000000 3.406761 0.144553 8.661417 0.696850
+ C 0 0.000000 26.386054 0.648495 -26.386054 0.000076 6.000152
+ S 0 0.000000 3.406761 -0.144553 8.661417 -0.696850
+ END
+TURNOUT HO "Peco Asymmetric 3 Way Turnout SL-E199"
+ P "Left" 1 2 3 4
+ P "Normal" 1 2 7
+ P "Right" 1 5 6
+ E 0.000000 0.000000 270.000000
+ E 10.599803 1.023622 78.000000
+ E 8.661417 -1.023622 102.000000
+ E 10.724803 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 0.649600 -0.000000
+ S 0 0.000000 0.649600 -0.000000 1.510417 0.000000
+ C 0 0.000000 -40.661444 1.510471 40.661444 167.999924 12.000152
+ S 0 0.000000 9.964505 0.888571 10.599803 1.023622
+ C 0 0.000000 30.408937 0.649479 -30.408937 0.000076 12.000152
+ S 0 0.000000 6.972047 -0.664524 8.661417 -1.023622
+ S 0 0.000000 1.510417 0.000000 10.724803 0.000000
+ END
+TURNOUT HO "Peco Single Slip, Insulfrog SL-180"
+ P "Normal" 1 2 0 3 4
+ P "Reverse" 1 5 4
+ E 0.000000 0.000000 270.000000
+ E 9.803150 0.000000 90.000000
+ E 0.107110 1.019087 282.000000
+ E 9.696040 -1.019087 102.000000
+ S 0 0.000000 0.000000 0.000000 1.297369 0.000000
+ S 0 0.000000 1.297369 0.000000 9.803150 0.000000
+ S 0 0.000000 0.107110 1.019087 8.427277 -0.749392
+ S 0 0.000000 8.427277 -0.749392 9.696040 -1.019087
+ C 0 0.000000 34.292562 1.297233 -34.292562 0.000076 12.000152
+ END
+TURNOUT HO "Peco Double Slip, Electrofrog SL-E190"
+ P "Normal" 1 2 3 0 4 5 6
+ P "Reverse" 1 7 6 0 4 8 3
+ E 0.000000 0.000000 270.000000
+ E 9.803150 0.000000 90.000000
+ E 0.107110 1.019087 282.000000
+ E 9.696040 -1.019087 102.000000
+ S 0 0.000000 0.000000 0.000000 1.297369 0.000000
+ S 0 0.000000 1.297369 0.000000 8.505780 0.000000
+ S 0 0.000000 8.505780 0.000000 9.803150 0.000000
+ S 0 0.000000 0.107110 1.019087 1.375873 0.749392
+ S 0 0.000000 1.375873 0.749392 8.427277 -0.749392
+ S 0 0.000000 8.427277 -0.749392 9.696040 -1.019087
+ C 0 0.000000 34.292562 1.297233 -34.292562 0.000076 12.000152
+ C 0 0.000000 -34.292562 8.505825 34.292552 180.000076 12.000152
+ END
+TURNOUT HO "PECO RH CatchPoint SL-184"
+ P "Closed" 1 2
+ P "Open" 1 3
+ E 0.000000 0.000000 270.000000
+ E 3.579921 0.000000 90.000000
+ E 2.500000 0.125000 85.000000
+ S 0 0.000000 0.000000 0.000000 0.649000 0.000000
+ S 0 0.000000 0.649000 0.000000 3.579921 0.000000
+ S 0 0.000000 0.649000 0.000000 2.500000 0.12500
+ END
+TURNOUT HO "PECO LH CatchPoint SL-185"
+ P "Closed" 1 2
+ P "Open" 1 3
+ E 0.000000 0.000000 270.000000
+ E 3.579921 0.000000 90.00000
+ E 2.500000 -0.12500 95.500000
+ S 0 0.000000 0.000000 0.000000 0.649000 0.000000
+ S 0 0.000000 0.649000 0.000000 3.579921 0.000000
+ S 0 0.000000 0.649000 0.000000 2.500000 -0.12500
+ END
+SUBCONTENTS Peco HO Scale Crossings
+TURNOUT HO "Peco Short Crossing, Insulfrog SL-193"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 5.000000 0.000000 90.000000
+ E 0.216135 1.016838 294.000000
+ E 4.783865 -1.016838 114.000000
+ S 0 0.000000 0.000000 0.000000 5.000000 0.000000
+ S 0 0.000000 0.216135 1.016838 4.783865 -1.016838
+ END
+TURNOUT HO "Peco Long Crossing, Insulfrog SL-194"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 9.803150 0.000000 90.000000
+ E 0.107110 1.019087 282.000000
+ E 9.696040 -1.019087 102.000000
+ S 0 0.000000 0.000000 0.000000 9.803150 0.000000
+ S 0 0.000000 0.107110 1.019087 9.696040 -1.019087
+ END
+SUBCONTENTS Peco Code 75 Inspection Pit
+TURNOUT HO "Peco Code 75 Inspection Pit LK-156"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 11.692913 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 11.692913 0.000000
+ F 15720651 0.000000 4
+ 0.000000 0.551091 0
+ 11.692913 0.551091 0
+ 11.692913 -0.551091 0
+ 0.000000 -0.551091 0
+ F 12632256 0.000000 4
+ 0.000000 0.280000 0
+ 0.560000 0.280000 0
+ 0.560000 -0.280000 0
+ 0.000000 -0.280000 0
+ L 0 0.020000 0.000000 0.280000 0.000000 -0.280000
+ L 0 0.020000 0.112000 0.280000 0.112000 -0.280000
+ L 0 0.020000 0.224000 0.280000 0.224000 -0.280000
+ L 0 0.020000 0.336000 0.280000 0.336000 -0.280000
+ L 0 0.020000 0.448000 0.280000 0.448000 -0.280000
+ L 0 0.020000 0.560000 0.280000 0.560000 -0.280000
+ F 12632256 0.000000 4
+ 11.132913 0.280000 0
+ 11.692913 0.280000 0
+ 11.692913 -0.280000 0
+ 11.132913 -0.280000 0
+ L 0 0.020000 11.132913 0.280000 11.132913 -0.280000
+ L 0 0.020000 11.244913 0.280000 11.244913 -0.280000
+ L 0 0.020000 11.356913 0.280000 11.356913 -0.280000
+ L 0 0.020000 11.468913 0.280000 11.468913 -0.280000
+ L 0 0.020000 11.580913 0.280000 11.580913 -0.280000
+ L 0 0.020000 11.692913 0.280000 11.692913 -0.280000
+ A 0 0.020000 0.062500 0.974409 0.000000 0.000000 360.000000
+ A 0 0.020000 0.062500 2.923228 0.000000 0.000000 360.000000
+ A 0 0.020000 0.062500 4.872047 0.000000 0.000000 360.000000
+ A 0 0.020000 0.062500 6.820866 0.000000 0.000000 360.000000
+ A 0 0.020000 0.062500 8.769685 0.000000 0.000000 360.000000
+ A 0 0.020000 0.062500 10.718504 0.000000 0.000000 360.000000
+ L 0 0.020000 0.000000 0.551091 11.692913 0.551091
+ L 0 0.020000 0.000000 0.280000 11.692913 0.28000
+ L 0 0.020000 0.000000 -0.280000 11.692913 -0.280000
+ L 0 0.020000 0.000000 -0.551091 11.692913 -0.551091
+END
+TURNOUT HO "Peco Code 75 Inspection Pit(Stair End) LK-156A"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.948819 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 1.948819 0.000000
+ F 15720651 0.000000 4
+ 0.000000 0.551091 0
+ 1.948819 0.551091 0
+ 1.948819 -0.551091 0
+ 0.000000 -0.551091 0
+ F 12632256 0.000000 4
+ 0.000000 0.280000 0
+ 0.560000 0.280000 0
+ 0.560000 -0.280000 0
+ 0.000000 -0.280000 0
+ L 0 0.020000 0.000000 0.280000 0.000000 -0.280000
+ L 0 0.020000 0.112000 0.280000 0.112000 -0.280000
+ L 0 0.020000 0.224000 0.280000 0.224000 -0.280000
+ L 0 0.020000 0.336000 0.280000 0.336000 -0.280000
+ L 0 0.020000 0.448000 0.280000 0.448000 -0.280000
+ L 0 0.020000 0.560000 0.280000 0.560000 -0.280000
+ A 0 0.020000 0.062500 0.974409 0.000000 0.000000 360.000000
+ L 0 0.020000 0.000000 0.551091 1.948819 0.551091
+ L 0 0.020000 0.000000 0.280000 1.948819 0.28000
+ L 0 0.020000 0.000000 -0.280000 1.948819 -0.280000
+ L 0 0.020000 0.000000 -0.551091 1.948819 -0.551091
+
+END
+TURNOUT HO "Peco Code 75 Inspection Pit(Mid Section) LK-156B"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.948819 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 1.948819 0.000000
+ F 15720651 0.000000 4
+ 0.000000 0.551091 0
+ 1.948819 0.551091 0
+ 1.948819 -0.551091 0
+ 0.000000 -0.551091 0
+ A 0 0.020000 0.062500 0.974409 0.000000 0.000000 360.000000
+ L 0 0.020000 0.000000 0.551091 1.948819 0.551091
+ L 0 0.020000 0.000000 0.280000 1.948819 0.28000
+ L 0 0.020000 0.000000 -0.280000 1.948819 -0.280000
+ L 0 0.020000 0.000000 -0.551091 1.948819 -0.551091
+END \ No newline at end of file
diff --git a/app/lib/params/pecoho83.xtp b/app/lib/params/HO-Peco-Code83.xtp
index 7af3cc2..09bf426 100644
--- a/app/lib/params/pecoho83.xtp
+++ b/app/lib/params/HO-Peco-Code83.xtp
@@ -1,145 +1,236 @@
-CONTENTS Peco North American Code 83 HO Scale Turnouts
-#Updated based on PECO Website and PDF's
-SUBCONTENTS Peco Code 83 HO Turnouts
-TURNOUT HO "PECO Code 83 #5 Left Hand Turnout SL-8352/SLE-8352"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 8.259842 0.000000 90.000000
- E 8.259842 1.000000 78.600000
- S 0 0.000000 0.000000 0.000000 0.649600 0.000000
- S 0 0.000000 0.649600 0.000000 8.259842 0.000000
- C 0 0.000000 -26.558075 0.649635 26.558075 168.599924 11.400152
- S 0 0.000000 5.899063 0.523973 8.259842 1.000000
- END
-TURNOUT HO "PECO Code 83 #5 Right Hand Turnout SL-8351/SLE-8351"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 8.259842 0.000000 90.000000
- E 8.259842 -1.000000 101.400000
- S 0 0.000000 0.000000 0.000000 0.649600 0.000000
- S 0 0.000000 0.649600 0.000000 8.259842 0.000000
- C 0 0.000000 26.558075 0.649494 -26.558075 0.000076 11.400152
- S 0 0.000000 5.899063 -0.523973 8.259842 -1.000000
- END
-TURNOUT HO "PECO Code 83 #6 Left Hand Turnout SL-8362/SLE-8362"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 9.192913 0.000000 90.000000
- E 9.192913 1.000000 80.500000
- S 0 0.000000 0.000000 0.000000 0.649600 0.000000
- S 0 0.000000 0.649600 0.000000 9.192913 0.000000
- C 0 0.000000 -30.900336 0.649641 30.900336 170.499924 9.500152
- S 0 0.000000 5.749703 0.423792 9.192913 1.000000
- END
-TURNOUT HO "PECO Code 83 #6 Right Hand Turnout SL-8361/SLE-8361"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 9.192913 0.000000 90.000000
- E 9.192913 -1.000000 99.500000
- S 0 0.000000 0.000000 0.000000 0.649600 0.000000
- S 0 0.000000 0.649600 0.000000 9.192913 0.000000
- C 0 0.000000 30.900336 0.649477 -30.900336 0.000076 9.500152
- S 0 0.000000 5.749703 -0.423792 9.192913 -1.000000
- END
-TURNOUT HO "PECO Code 83 #8 Left Hand Turnout SL-8382/SLE-8382"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 12.649606 0.000000 90.000000
- E 12.649606 1.000000 82.850000
- S 0 0.000000 0.000000 0.000000 0.649600 0.000000
- S 0 0.000000 0.649600 0.000000 12.649606 0.000000
- C 0 0.000000 -64.478236 0.649686 64.478236 172.849924 7.150152
- S 0 0.000000 8.675202 0.501423 12.649606 1.000000
- END
-TURNOUT HO "PECO Code 83 #8 Right Hand Turnout SL-8381/SLE-8381"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 12.649606 0.000000 90.000000
- E 12.649606 -1.000000 97.150000
- S 0 0.000000 0.000000 0.000000 0.649600 0.000000
- S 0 0.000000 0.649600 0.000000 12.649606 0.000000
- C 0 0.000000 64.478236 0.649343 -64.478236 0.000076 7.150152
- S 0 0.000000 8.675202 -0.501423 12.649606 -1.000000
- END
-SUBCONTENTS Peco Code 83 HO Wye Turnouts
-TURNOUT HO "PECO Code 83 #4 WYE Turnout SL-8348/SLE-8348"
- P "Left" 1 2 3
- P "Right" 1 4 5
- E 0.000000 0.000000 270.000000
- E 7.159055 0.500000 82.850000
- E 7.159055 -0.500000 97.150000
- S 0 0.000000 0.000000 0.000000 0.649600 0.000000
- C 0 0.000000 -40.393551 0.649654 40.393551 172.849924 7.150152
- S 0 0.000000 5.677382 0.314125 7.159055 0.500000
- C 0 0.000000 40.393551 0.649439 -40.393551 0.000076 7.150152
- S 0 0.000000 5.677382 -0.314125 7.159055 -0.500000
- END
-
-SUBCONTENTS Peco Code 83 HO Crossings
-TURNOUT HO "PECO Code 83 #6 Diamond Crossing SL-8364/SLE-8364"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 12.035433 0.000000 90.000000
- E 0.082528 0.993201 279.500000
- E 11.952905 -0.993201 99.500000
- S 0 0.000000 0.000000 0.000000 12.035433 0.000000
- S 0 0.000000 0.082528 0.993201 11.952905 -0.993201
- END
-TURNOUT HO "PECO Code 83 90d Crossing SL-8390"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 2.000000 0.000000 90.000000
- E 1.000000 -1.000000 180.000000
- E 1.000000 1.000000 0.000000
- S 0 0.000000 0.000000 0.000000 2.000000 0.000000
- S 0 0.000000 1.000000 1.000000 1.000000 -1.000000
- END
-
-SUBCONTENTS Peco Code 83 HO Curved Turnouts
-TURNOUT HO "Peco Code 83 #7 Curved Left Turnout SL-8377/SLE-8377"
- P "Normal" 1 4 5
- P "Reverse" 1 2 3
- E 0.000000 0.000000 270.000000
- E 11.106693 0.984252 81.000000
- E 10.865748 1.968504 72.000000
- S 0 0.000000 0.000000 0.000000 0.649600 0.000000
- C 0 0.000000 -26.251070 0.649635 26.251070 161.999924 18.000152
- S 0 0.000000 8.761686 1.284838 10.865748 1.968504
- C 0 0.000000 -53.910688 0.649672 53.910688 170.999924 9.000152
- S 0 0.000000 9.083224 0.663751 11.106693 0.984252
- END
-TURNOUT HO "Peco Code 83 #7 Curved Right Turnout SL-8376/SLE-8376"
- P "Normal" 1 4 5
- P "Reverse" 1 2 3
- E 0.000000 0.000000 270.000000
- E 11.106693 -0.984252 99.000000
- E 10.865748 -1.968504 108.000000
- S 0 0.000000 0.000000 0.000000 0.649600 0.000000
- C 0 0.000000 26.251070 0.649496 -26.251070 0.000076 18.000152
- S 0 0.000000 8.761686 -1.284838 10.865748 -1.968504
- C 0 0.000000 53.910688 0.649385 -53.910688 0.000076 9.000152
- S 0 0.000000 9.083224 -0.663751 11.106693 -0.984252
- END
-SUBCONTENTS Peco Code 83 HO Slip Turnouts
-TURNOUT HO "Peco Code 83 #6 Double Slip Switch SL-U8363"
- P "Normal" 1 2 3 0 4 5 6
- P "Reverse" 1 7 6 0 4 8 3
- E 0.000000 0.000000 270.000000
- E 12.035433 0.000000 90.000000
- E 0.082528 0.993201 279.500000
- E 11.952905 -0.993201 99.500000
- S 0 0.000000 0.000000 0.000000 1.299468 0.000000
- S 0 0.000000 1.299468 0.000000 10.735965 0.000000
- S 0 0.000000 10.735965 0.000000 12.035433 0.000000
- S 0 0.000000 0.082528 0.993201 1.363761 0.778782
- S 0 0.000000 1.363761 0.778782 10.671672 -0.778782
- S 0 0.000000 10.671672 -0.778782 11.952905 -0.993201
- C 0 0.000000 56.784006 1.299241 -56.784006 0.000076 9.500152
- C 0 0.000000 -56.784006 10.736040 56.783993 180.000076 9.500152
- END
+CONTENTS Peco North American Code 83 HO Scale Turnouts
+#Updated based on PECO Website and PDF's
+SUBCONTENTS Peco Code 83 HO Turnouts
+TURNOUT HO "PECO Code 83 #5 Left Hand Turnout SL-8352/SLE-8352"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 8.259842 0.000000 90.000000
+ E 8.259842 1.000000 78.600000
+ S 0 0.000000 0.000000 0.000000 0.649600 0.000000
+ S 0 0.000000 0.649600 0.000000 8.259842 0.000000
+ C 0 0.000000 -26.558075 0.649635 26.558075 168.599924 11.400152
+ S 0 0.000000 5.899063 0.523973 8.259842 1.000000
+END
+TURNOUT HO "PECO Code 83 #5 Right Hand Turnout SL-8351/SLE-8351"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 8.259842 0.000000 90.000000
+ E 8.259842 -1.000000 101.400000
+ S 0 0.000000 0.000000 0.000000 0.649600 0.000000
+ S 0 0.000000 0.649600 0.000000 8.259842 0.000000
+ C 0 0.000000 26.558075 0.649494 -26.558075 0.000076 11.400152
+ S 0 0.000000 5.899063 -0.523973 8.259842 -1.000000
+END
+TURNOUT HO "PECO Code 83 #6 Left Hand Turnout SL-8362/SLE-8362"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 9.192913 0.000000 90.000000
+ E 9.192913 1.000000 80.500000
+ S 0 0.000000 0.000000 0.000000 0.649600 0.000000
+ S 0 0.000000 0.649600 0.000000 9.192913 0.000000
+ C 0 0.000000 -30.900336 0.649641 30.900336 170.499924 9.500152
+ S 0 0.000000 5.749703 0.423792 9.192913 1.000000
+END
+TURNOUT HO "PECO Code 83 #6 Right Hand Turnout SL-8361/SLE-8361"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 9.192913 0.000000 90.000000
+ E 9.192913 -1.000000 99.500000
+ S 0 0.000000 0.000000 0.000000 0.649600 0.000000
+ S 0 0.000000 0.649600 0.000000 9.192913 0.000000
+ C 0 0.000000 30.900336 0.649477 -30.900336 0.000076 9.500152
+ S 0 0.000000 5.749703 -0.423792 9.192913 -1.000000
+END
+TURNOUT HO "PECO Code 83 #8 Left Hand Turnout SL-8382/SLE-8382"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 12.649606 0.000000 90.000000
+ E 12.649606 1.000000 82.850000
+ S 0 0.000000 0.000000 0.000000 0.649600 0.000000
+ S 0 0.000000 0.649600 0.000000 12.649606 0.000000
+ C 0 0.000000 -64.478236 0.649686 64.478236 172.849924 7.150152
+ S 0 0.000000 8.675202 0.501423 12.649606 1.000000
+END
+TURNOUT HO "PECO Code 83 #8 Right Hand Turnout SL-8381/SLE-8381"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 12.649606 0.000000 90.000000
+ E 12.649606 -1.000000 97.150000
+ S 0 0.000000 0.000000 0.000000 0.649600 0.000000
+ S 0 0.000000 0.649600 0.000000 12.649606 0.000000
+ C 0 0.000000 64.478236 0.649343 -64.478236 0.000076 7.150152
+ S 0 0.000000 8.675202 -0.501423 12.649606 -1.000000
+END
+
+SUBCONTENTS Peco Code 83 HO Wye Turnouts
+TURNOUT HO "PECO Code 83 #4 WYE Turnout SL-8348/SLE-8348"
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 7.159055 0.500000 82.850000
+ E 7.159055 -0.500000 97.150000
+ S 0 0.000000 0.000000 0.000000 0.649600 0.000000
+ C 0 0.000000 -40.393551 0.649654 40.393551 172.849924 7.150152
+ S 0 0.000000 5.677382 0.314125 7.159055 0.500000
+ C 0 0.000000 40.393551 0.649439 -40.393551 0.000076 7.150152
+ S 0 0.000000 5.677382 -0.314125 7.159055 -0.500000
+END
+
+SUBCONTENTS Peco Code 83 HO Crossings
+TURNOUT HO "PECO Code 83 #6 Diamond Crossing SL-8364/SLE-8364"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 12.035433 0.000000 90.000000
+ E 0.082528 0.993201 279.500000
+ E 11.952905 -0.993201 99.500000
+ S 0 0.000000 0.000000 0.000000 12.035433 0.000000
+ S 0 0.000000 0.082528 0.993201 11.952905 -0.993201
+END
+TURNOUT HO "PECO Code 83 90d Crossing SL-8390"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 2.000000 0.000000 90.000000
+ E 1.000000 -1.000000 180.000000
+ E 1.000000 1.000000 0.000000
+ S 0 0.000000 0.000000 0.000000 2.000000 0.000000
+ S 0 0.000000 1.000000 1.000000 1.000000 -1.000000
+END
+
+SUBCONTENTS Peco Code 83 HO Curved Turnouts
+TURNOUT HO "Peco Code 83 #7 Curved Left Turnout SL-8377/SLE-8377"
+ P "Normal" 1 4 5
+ P "Reverse" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 11.106693 0.984252 81.000000
+ E 10.865748 1.968504 72.000000
+ S 0 0.000000 0.000000 0.000000 0.649600 0.000000
+ C 0 0.000000 -26.251070 0.649635 26.251070 161.999924 18.000152
+ S 0 0.000000 8.761686 1.284838 10.865748 1.968504
+ C 0 0.000000 -53.910688 0.649672 53.910688 170.999924 9.000152
+ S 0 0.000000 9.083224 0.663751 11.106693 0.984252
+END
+TURNOUT HO "Peco Code 83 #7 Curved Right Turnout SL-8376/SLE-8376"
+ P "Normal" 1 4 5
+ P "Reverse" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 11.106693 -0.984252 99.000000
+ E 10.865748 -1.968504 108.000000
+ S 0 0.000000 0.000000 0.000000 0.649600 0.000000
+ C 0 0.000000 26.251070 0.649496 -26.251070 0.000076 18.000152
+ S 0 0.000000 8.761686 -1.284838 10.865748 -1.968504
+ C 0 0.000000 53.910688 0.649385 -53.910688 0.000076 9.000152
+ S 0 0.000000 9.083224 -0.663751 11.106693 -0.984252
+END
+
+SUBCONTENTS Peco Code 83 HO Slip Turnouts
+TURNOUT HO "Peco Code 83 #6 Double Slip Switch SL-U8363"
+ P "Normal" 1 2 3 0 4 5 6
+ P "Reverse" 1 7 6 0 4 8 3
+ E 0.000000 0.000000 270.000000
+ E 12.035433 0.000000 90.000000
+ E 0.082528 0.993201 279.500000
+ E 11.952905 -0.993201 99.500000
+ S 0 0.000000 0.000000 0.000000 1.299468 0.000000
+ S 0 0.000000 1.299468 0.000000 10.735965 0.000000
+ S 0 0.000000 10.735965 0.000000 12.035433 0.000000
+ S 0 0.000000 0.082528 0.993201 1.363761 0.778782
+ S 0 0.000000 1.363761 0.778782 10.671672 -0.778782
+ S 0 0.000000 10.671672 -0.778782 11.952905 -0.993201
+ C 0 0.000000 56.784006 1.299241 -56.784006 0.000076 9.500152
+ C 0 0.000000 -56.784006 10.736040 56.783993 180.000076 9.500152
+END
+
+SUBCONTENTS Peco Code 83 HO Inspection Pit
+TURNOUT HO "Peco Code 83 Inspection Pit SL-8356"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 11.692913 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 11.692913 0.000000
+ F 15720651 0.000000 4
+ 0.000000 0.551091 0
+ 11.692913 0.551091 0
+ 11.692913 -0.551091 0
+ 0.000000 -0.551091 0
+ F 12632256 0.000000 4
+ 0.000000 0.280000 0
+ 0.560000 0.280000 0
+ 0.560000 -0.280000 0
+ 0.000000 -0.280000 0
+ L 0 0.020000 0.000000 0.280000 0.000000 -0.280000
+ L 0 0.020000 0.112000 0.280000 0.112000 -0.280000
+ L 0 0.020000 0.224000 0.280000 0.224000 -0.280000
+ L 0 0.020000 0.336000 0.280000 0.336000 -0.280000
+ L 0 0.020000 0.448000 0.280000 0.448000 -0.280000
+ L 0 0.020000 0.560000 0.280000 0.560000 -0.280000
+ F 12632256 0.000000 4
+ 11.132913 0.280000 0
+ 11.692913 0.280000 0
+ 11.692913 -0.280000 0
+ 11.132913 -0.280000 0
+ L 0 0.020000 11.132913 0.280000 11.132913 -0.280000
+ L 0 0.020000 11.244913 0.280000 11.244913 -0.280000
+ L 0 0.020000 11.356913 0.280000 11.356913 -0.280000
+ L 0 0.020000 11.468913 0.280000 11.468913 -0.280000
+ L 0 0.020000 11.580913 0.280000 11.580913 -0.280000
+ L 0 0.020000 11.692913 0.280000 11.692913 -0.280000
+ A 0 0.020000 0.062500 0.974409 0.000000 0.000000 360.000000
+ A 0 0.020000 0.062500 2.923228 0.000000 0.000000 360.000000
+ A 0 0.020000 0.062500 4.872047 0.000000 0.000000 360.000000
+ A 0 0.020000 0.062500 6.820866 0.000000 0.000000 360.000000
+ A 0 0.020000 0.062500 8.769685 0.000000 0.000000 360.000000
+ A 0 0.020000 0.062500 10.718504 0.000000 0.000000 360.000000
+ L 0 0.020000 0.000000 0.551091 11.692913 0.551091
+ L 0 0.020000 0.000000 0.280000 11.692913 0.28000
+ L 0 0.020000 0.000000 -0.280000 11.692913 -0.280000
+ L 0 0.020000 0.000000 -0.551091 11.692913 -0.551091
+END
+TURNOUT HO "Peco Code 83 Inspection Pit(Stair End) SL-8356A"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.948819 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 1.948819 0.000000
+ F 15720651 0.000000 4
+ 0.000000 0.551091 0
+ 1.948819 0.551091 0
+ 1.948819 -0.551091 0
+ 0.000000 -0.551091 0
+ F 12632256 0.000000 4
+ 0.000000 0.280000 0
+ 0.560000 0.280000 0
+ 0.560000 -0.280000 0
+ 0.000000 -0.280000 0
+ L 0 0.020000 0.000000 0.280000 0.000000 -0.280000
+ L 0 0.020000 0.112000 0.280000 0.112000 -0.280000
+ L 0 0.020000 0.224000 0.280000 0.224000 -0.280000
+ L 0 0.020000 0.336000 0.280000 0.336000 -0.280000
+ L 0 0.020000 0.448000 0.280000 0.448000 -0.280000
+ L 0 0.020000 0.560000 0.280000 0.560000 -0.280000
+ A 0 0.020000 0.062500 0.974409 0.000000 0.000000 360.000000
+ L 0 0.020000 0.000000 0.551091 1.948819 0.551091
+ L 0 0.020000 0.000000 0.280000 1.948819 0.28000
+ L 0 0.020000 0.000000 -0.280000 1.948819 -0.280000
+ L 0 0.020000 0.000000 -0.551091 1.948819 -0.551091
+
+END
+TURNOUT HO "Peco Code 83 Inspection Pit(Mid Section) SL-8356B"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.948819 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 1.948819 0.000000
+ F 15720651 0.000000 4
+ 0.000000 0.551091 0
+ 1.948819 0.551091 0
+ 1.948819 -0.551091 0
+ 0.000000 -0.551091 0
+ A 0 0.020000 0.062500 0.974409 0.000000 0.000000 360.000000
+ L 0 0.020000 0.000000 0.551091 1.948819 0.551091
+ L 0 0.020000 0.000000 0.280000 1.948819 0.28000
+ L 0 0.020000 0.000000 -0.280000 1.948819 -0.280000
+ L 0 0.020000 0.000000 -0.551091 1.948819 -0.551091
+END \ No newline at end of file
diff --git a/app/lib/params/HO-WalthCornerstone 1.xtp b/app/lib/params/HO-WalthCornerstone 1.xtp
new file mode 100644
index 0000000..b65af44
--- /dev/null
+++ b/app/lib/params/HO-WalthCornerstone 1.xtp
@@ -0,0 +1,4385 @@
+CONTENTS Walthers Cornerstone HO Structures 1
+
+SUBCONTENTS Walthers Cornerstone HO Structures - Dairy Facilities
+STRUCTURE HO "Walthers Cornerstone Structures Sterling Consolidated Dairy Bottling Plant 933-3298"
+ F3 0 0.000000 4
+ 27.554530 4.822044 0
+ 27.554530 4.822044 0
+ 27.554530 4.822044 0
+ 27.554530 4.822044 0
+ F3 12632256 0.000000 4
+ 27.554530 4.850746 0
+ 30.051660 4.850746 0
+ 30.051660 0.229621 0
+ 27.554530 0.229621 0
+ F3 0 0.000000 4
+ 22.962110 5.051665 0
+ 22.962110 5.051665 0
+ 22.962110 5.051665 0
+ 22.962110 5.051665 0
+ F3 12632256 0.000000 4
+ 0.000000 0.000000 0
+ 4.592422 0.000000 0
+ 4.592422 10.562570 0
+ 0.000000 10.562570 0
+ F3 32768 0.000000 4
+ 0.000000 10.562570 0
+ 0.918485 10.562570 0
+ 0.918485 0.057405 0
+ 0.000000 0.057405 0
+ F3 8388608 0.000000 4
+ 0.918485 0.000000 0
+ 1.148106 0.000000 0
+ 1.148106 10.562570 0
+ 0.918485 10.562570 0
+ F3 8388608 0.000000 4
+ 1.033295 10.562570 0
+ 4.535017 10.562570 0
+ 4.535017 10.332950 0
+ 1.033295 10.332950 0
+ F3 0 0.000000 4
+ 22.847300 10.562570 0
+ 22.847300 10.562570 0
+ 22.847300 10.562570 0
+ 22.847300 10.562570 0
+ F3 8388608 0.000000 4
+ 4.592422 10.562570 0
+ 4.362802 10.562570 0
+ 4.362802 5.051665 0
+ 4.592422 5.051665 0
+ F3 8388608 0.000000 4
+ 22.962110 5.051665 0
+ 4.362802 5.051665 0
+ 4.362802 4.822044 0
+ 22.962110 4.822044 0
+ F3 8388608 0.000000 4
+ 22.962110 10.562570 0
+ 27.525830 10.562570 0
+ 27.525830 10.332950 0
+ 22.962110 10.332950 0
+ F3 8388608 0.000000 4
+ 30.309990 0.000000 0
+ 7.347876 0.000000 0
+ 7.347876 0.229621 0
+ 30.309990 0.229621 0
+ F3 8388608 0.000000 4
+ 7.319173 0.000000 0
+ 1.119403 0.000000 0
+ 1.119403 0.229621 0
+ 7.319173 0.229621 0
+ F3 0 0.000000 4
+ 27.554530 10.591270 0
+ 27.554530 10.591270 0
+ 27.554530 10.591270 0
+ 27.554530 10.591270 0
+ F3 8388608 0.000000 4
+ 27.554530 10.562570 0
+ 27.324910 10.562570 0
+ 27.324910 5.080368 0
+ 27.554530 5.080368 0
+ F3 8388608 0.000000 4
+ 30.309990 5.080368 0
+ 27.324910 5.080368 0
+ 27.324910 4.822044 0
+ 30.309990 4.822044 0
+ F3 8388608 0.000000 4
+ 30.309990 5.080368 0
+ 30.080370 5.080368 0
+ 30.080370 0.258324 0
+ 30.309990 0.258324 0
+ F3 8388608 0.000000 4
+ 22.962110 10.562570 0
+ 23.191730 10.562570 0
+ 23.191730 0.258324 0
+ 22.962110 0.258324 0
+ F3 11316396 0.000000 4
+ 23.191730 10.332950 0
+ 27.267510 10.332950 0
+ 27.267510 0.287026 0
+ 23.191730 0.287026 0
+ G3 8421504 0.000000 1.320634 25.287030 8.352468 0
+ G3 15790320 0.000000 1.092210 25.315730 8.352468 0
+ L3 0 0.000000 25.258320 9.414466 0 25.258320 7.233066 0
+ L3 0 0.000000 24.196330 8.323766 0 26.406430 8.323766 0
+ L3 0 0.000000 24.540760 7.577497 0 26.062000 9.127439 0
+ L3 0 0.000000 24.483350 9.070035 0 26.033290 7.548795 0
+ F3 8388608 0.000000 4
+ 23.880600 6.027555 0
+ 24.339840 6.027555 0
+ 24.339840 6.486797 0
+ 23.880600 6.486797 0
+ F3 0 0.000000 4
+ 23.966710 6.400689 0
+ 24.282430 6.400689 0
+ 24.282430 6.084960 0
+ 23.966710 6.084960 0
+ L3 0 0.000000 25.258320 10.332950 0 25.258320 9.672790 0
+ L3 0 0.000000 25.258320 7.003444 0 25.258320 0.229621 0
+ F3 8388608 0.000000 4
+ 27.324910 4.822044 0
+ 27.554530 4.822044 0
+ 27.554530 0.229621 0
+ 27.324910 0.229621 0
+ L3 0 0.000000 23.191730 0.688863 0 27.324910 0.688863 0
+ L3 0 0.000000 23.163030 1.148106 0 27.324910 1.148106 0
+ L3 0 0.000000 23.191730 1.607348 0 27.296210 1.607348 0
+ L3 0 0.000000 23.191730 2.066590 0 27.324910 2.066590 0
+ L3 0 0.000000 23.191730 2.525832 0 27.324910 2.525832 0
+ L3 0 0.000000 23.191730 2.985075 0 23.191730 2.985075 0
+ L3 0 0.000000 23.191730 2.985075 0 27.324910 2.985075 0
+ F3 12632256 0.000000 4
+ 4.563720 4.822044 0
+ 22.962110 4.822044 0
+ 22.962110 0.229621 0
+ 4.563720 0.229621 0
+ L3 0 0.000000 17.451210 10.390360 0 17.451210 10.390360 0
+ F3 4210752 0.000000 4
+ 21.584390 3.444317 0
+ 20.780710 3.444317 0
+ 20.780710 1.664753 0
+ 21.584390 1.664753 0
+ F3 4210752 0.000000 4
+ 8.323766 3.444317 0
+ 11.136620 3.444317 0
+ 11.136620 1.894374 0
+ 8.323766 1.894374 0
+ G3 4210752 0.000000 0.292710 21.986220 4.133180 0
+ G3 4210752 0.000000 0.462817 5.970150 2.353616 0
+ F3 4210752 0.000000 4
+ 14.236510 4.133180 0
+ 15.154990 4.133180 0
+ 15.154990 3.329506 0
+ 14.236510 3.329506 0
+ F3 4210752 0.000000 4
+ 14.236510 1.377727 0
+ 15.154990 1.377727 0
+ 15.154990 0.631458 0
+ 14.236510 0.631458 0
+ F3 4210752 0.000000 4
+ 2.181401 2.525832 0
+ 2.870264 2.525832 0
+ 2.870264 1.836969 0
+ 2.181401 1.836969 0
+ F3 4473924 0.000000 4
+ 2.066590 8.725603 0
+ 3.329506 8.725603 0
+ 3.329506 7.634902 0
+ 2.066590 7.634902 0
+ L3 0 0.000000 32.950630 12.858780 0 32.950630 12.858780 0
+ L3 0 0.000000 23.163030 3.444317 0 27.296210 3.444317 0
+ L3 0 0.000000 23.163030 3.960964 0 27.267510 3.960964 0
+ L3 0 0.000000 23.163030 4.420207 0 27.296210 4.420207 0
+ L3 0 0.000000 23.134330 4.850746 0 27.267510 4.850746 0
+ L3 0 0.000000 23.134330 5.281286 0 27.267510 5.281286 0
+ L3 0 0.000000 23.163030 5.740528 0 27.296210 5.740528 0
+ L3 0 0.000000 23.134330 6.199770 0 23.851890 6.199770 0
+ L3 0 0.000000 24.339840 6.199770 0 27.296210 6.199770 0
+ L3 0 0.000000 23.134330 6.659013 0 27.296210 6.659013 0
+ L3 0 0.000000 23.134330 7.118255 0 24.856490 7.118255 0
+ L3 0 0.000000 25.688860 7.118255 0 27.296210 7.118255 0
+ L3 0 0.000000 23.163030 7.577497 0 24.196330 7.577497 0
+ L3 0 0.000000 26.320320 7.577497 0 27.324910 7.577497 0
+ L3 0 0.000000 23.134330 8.036739 0 23.995410 8.036739 0
+ L3 0 0.000000 26.549940 8.036739 0 27.267510 8.036739 0
+ L3 0 0.000000 23.134330 8.467279 0 23.134330 8.495982 0
+ L3 0 0.000000 23.163030 8.495982 0 23.938000 8.495982 0
+ L3 0 0.000000 26.578650 8.495982 0 27.267510 8.495982 0
+ L3 0 0.000000 23.134330 8.955224 0 24.110220 8.955224 0
+ L3 0 0.000000 26.435130 8.955224 0 27.296210 8.955224 0
+ L3 0 0.000000 23.134330 9.414466 0 24.483350 9.414466 0
+ L3 0 0.000000 26.033290 9.414466 0 27.238810 9.414466 0
+ L3 0 0.000000 23.134330 9.873709 0 27.267510 9.873709 0
+ END
+STRUCTURE HO "Walthers Cornerstone Structures Sterling Consolidated Dairy Power House 933-3298"
+ L3 0 0.000000 0.000000 0.000000 0 4.822044 0.000000 0
+ L3 0 0.000000 4.822044 0.000000 0 4.822044 4.822044 0
+ L3 8388608 0.000000 4.822044 4.822044 0 0.000000 4.822044 0
+ L3 8388608 0.000000 0.000000 4.822044 0 0.000000 0.000000 0
+ F3 8388608 0.000000 4
+ 0.000000 0.000000 0
+ 4.822044 0.000000 0
+ 4.822044 0.229621 0
+ 0.000000 0.229621 0
+ F3 8388608 0.000000 4
+ 0.000000 0.000000 0
+ 0.229621 0.000000 0
+ 0.229621 4.822044 0
+ 0.000000 4.822044 0
+ F3 8388608 0.000000 4
+ 0.000000 4.822044 0
+ 4.822044 4.822044 0
+ 4.822044 4.592422 0
+ 0.000000 4.592422 0
+ F3 8388608 0.000000 4
+ 4.822044 4.822044 0
+ 4.592422 4.822044 0
+ 4.592422 0.000000 0
+ 4.822044 0.000000 0
+ F3 12632256 0.000000 4
+ 0.229621 4.592422 0
+ 4.592422 4.592422 0
+ 4.592422 0.229621 0
+ 0.229621 0.229621 0
+ L3 0 0.000000 2.324914 4.592422 0 2.324914 4.592422 0
+ L3 0 0.000000 2.296211 4.592422 0 2.296211 0.229621 0
+ L3 0 0.000000 0.200919 4.133180 0 4.592422 4.133180 0
+ L3 0 0.000000 0.200919 3.673938 0 4.592422 3.673938 0
+ L3 0 0.000000 0.200919 3.214696 0 4.592422 3.214696 0
+ L3 0 0.000000 0.229621 2.755454 0 4.592422 2.755454 0
+ L3 0 0.000000 0.229621 2.296211 0 4.592422 2.296211 0
+ L3 0 0.000000 0.229621 1.836969 0 4.592422 1.836969 0
+ L3 0 0.000000 0.229621 1.377727 0 4.592422 1.377727 0
+ L3 0 0.000000 0.229621 0.918485 0 4.592422 0.889782 0
+ L3 0 0.000000 0.229621 0.459242 0 4.592422 0.459242 0
+ F3 0 0.000000 4
+ 1.492537 2.640643 0
+ 1.865672 2.640643 0
+ 1.865672 2.382319 0
+ 1.492537 2.382319 0
+ F3 0 0.000000 4
+ 2.755454 2.611940 0
+ 3.157290 2.611940 0
+ 3.157290 2.353616 0
+ 2.755454 2.353616 0
+ END
+STRUCTURE HO "Walthers Cornerstone Structures Sterling Consolidated Dairy Smoke Stack 933-3298"
+ G3 8388608 0.000000 0.689460 0.689460 0.689460 0
+ G3 0 0.000000 0.516648 0.689460 0.689460 0
+ END
+STRUCTURE HO "Walthers Cornerstone Structures Sterling Consolidated Dairy Office/Freight House 933-3298"
+ F3 8388608 0.000000 4
+ 0.172216 0.229621 0
+ 15.614240 0.229621 0
+ 15.614240 0.000000 0
+ 0.172216 0.000000 0
+ F3 8388608 0.000000 4
+ 0.000000 0.000000 0
+ 0.200919 0.000000 0
+ 0.200919 6.888634 0
+ 0.000000 6.888634 0
+ F3 8388608 0.000000 4
+ 15.614240 0.000000 0
+ 15.355910 0.000000 0
+ 15.355910 6.888634 0
+ 15.614240 6.888634 0
+ F3 8388608 0.000000 4
+ 0.000000 6.888634 0
+ 15.585530 6.888634 0
+ 15.585530 6.659013 0
+ 0.000000 6.659013 0
+ F3 12632256 0.000000 4
+ 0.200919 6.659013 0
+ 15.327210 6.659013 0
+ 15.327210 0.258324 0
+ 0.200919 0.258324 0
+ F3 8388608 0.000000 4
+ 4.592422 6.659013 0
+ 4.822044 6.659013 0
+ 4.822044 0.000000 0
+ 4.592422 0.000000 0
+ L3 0 0.000000 0.000000 3.444317 0 4.649828 3.444317 0
+ F3 7039851 0.000000 4
+ 1.262916 5.740528 0
+ 1.664753 5.740528 0
+ 1.664753 5.281286 0
+ 1.262916 5.281286 0
+ G3 7105644 0.000000 0.243551 1.148106 1.894374 0
+ L3 0 0.000000 0.459242 6.659013 0 0.459242 0.229621 0
+ L3 0 0.000000 0.918485 6.659013 0 0.889782 0.258324 0
+ L3 0 0.000000 1.377727 6.659013 0 1.377727 5.740528 0
+ L3 0 0.000000 1.377727 5.281286 0 1.377727 0.229621 0
+ L3 0 0.000000 1.836969 6.659013 0 1.836969 0.229621 0
+ L3 0 0.000000 2.296211 6.659013 0 2.296211 0.229621 0
+ L3 0 0.000000 2.755454 6.659013 0 2.755454 0.287026 0
+ L3 0 0.000000 3.214696 6.659013 0 3.214696 0.229621 0
+ L3 0 0.000000 3.673938 6.659013 0 3.673938 0.229621 0
+ L3 0 0.000000 4.133180 6.659013 0 4.133180 0.258324 0
+ F3 7368816 0.000000 4
+ 9.816303 3.903559 0
+ 10.505170 3.903559 0
+ 10.505170 3.214696 0
+ 9.816303 3.214696 0
+ G3 7631988 0.000000 0.317031 6.429391 5.510907 0
+ G3 7039851 0.000000 0.344432 6.429391 1.377727 0
+ G3 6776679 0.000000 0.345626 13.777270 1.377727 0
+ G3 0 0.000000 0.344432 13.777270 5.510907 0
+ END
+STRUCTURE HO "Walthers Cornerstone Structures Sterling Consolidated Dairy Store 933-3298"
+ F3 16776960 0.000000 4
+ 0.000000 0.000000 0
+ 0.229621 0.000000 0
+ 0.229621 5.051665 0
+ 0.000000 5.051665 0
+ F3 16776960 0.000000 4
+ 0.000000 0.000000 0
+ 3.444317 0.000000 0
+ 3.444317 0.229621 0
+ 0.000000 0.229621 0
+ F3 16776960 0.000000 4
+ 0.000000 5.051665 0
+ 3.444317 5.051665 0
+ 3.444317 4.822044 0
+ 0.000000 4.822044 0
+ F3 16776960 0.000000 4
+ 3.444317 0.000000 0
+ 3.214696 0.000000 0
+ 3.214696 5.051665 0
+ 3.444317 5.051665 0
+ F3 15000804 0.000000 4
+ 0.229621 4.822044 0
+ 3.185993 4.822044 0
+ 3.185993 0.229621 0
+ 0.229621 0.229621 0
+ F3 0 0.000000 4
+ 0.459242 4.133180 0
+ 0.774971 4.133180 0
+ 0.774971 3.817451 0
+ 0.459242 3.817451 0
+ END
+
+
+SUBCONTENTS Walthers Cornerstone HO Structures - Railroad Facilities
+STRUCTURE HO "Walther's Trackside Interlocking Tower 933-2600A"
+ F3 8421504 0.000000 4
+ 0.028703 0.000000 0
+ 2.324914 0.000000 0
+ 2.324914 2.296211 0
+ 0.028703 2.296211 0
+ L3 0 0.000000 0.000000 0.000000 0 2.296211 2.296211 0
+ L3 0 0.000000 2.296211 0.000000 0 0.028703 2.296211 0
+ F3 12976128 0.000000 4
+ 2.324914 2.296211 0
+ 1.865672 2.296211 0
+ 1.865672 3.673938 0
+ 2.324914 3.673938 0
+ F3 13369344 0.000000 4
+ 1.865672 2.296211 0
+ 0.028703 2.296211 0
+ 0.028703 2.611940 0
+ 1.865672 2.611940 0
+ F3 15790320 0.000000 4
+ 0.028703 1.377727 0
+ 0.373134 1.377727 0
+ 0.373134 0.918485 0
+ 0.028703 0.918485 0
+ F3 0 0.000000 4
+ 0.086108 1.262916 0
+ 0.258324 1.262916 0
+ 0.258324 1.033295 0
+ 0.086108 1.033295 0
+ L3 0 0.000000 0.717566 2.296211 0 0.717566 2.640643 0
+ L3 0 0.000000 1.865672 2.640643 0 2.324914 2.640643 0
+ L3 0 0.000000 2.324914 2.640643 0 2.324914 2.296211 0
+ L3 0 0.000000 2.324914 2.296211 0 1.865672 2.296211 0
+ L3 0 0.000000 1.865672 2.296211 0 1.865672 2.640643 0
+ L3 0 0.000000 1.865672 3.444317 0 2.296211 3.444317 0
+ L3 0 0.000000 1.865672 3.214696 0 2.324914 3.214696 0
+ L3 0 0.000000 1.865672 2.985075 0 2.324914 2.985075 0
+ L3 0 0.000000 1.865672 2.755454 0 2.267509 2.755454 0
+ L3 0 0.000000 0.947187 2.296211 0 0.947187 2.669346 0
+ L3 0 0.000000 1.176808 2.296211 0 1.176808 2.669346 0
+ L3 0 0.000000 1.406429 2.296211 0 1.406429 2.640643 0
+ L3 0 0.000000 1.636051 2.296211 0 1.636051 2.669346 0
+ END
+STRUCTURE HO "Walther's Speeder Shed 933-2600B"
+ F3 10724259 0.000000 4
+ 0.000000 1.836969 0
+ 2.066590 1.836969 0
+ 2.066590 4.822044 0
+ 0.000000 4.822044 0
+ L3 0 0.000000 1.004592 1.836969 0 1.031238 4.822062 0
+ F3 12632256 0.000000 4
+ 0.315729 0.000000 0
+ 1.693456 0.000000 0
+ 1.693456 1.836969 0
+ 0.315729 1.836969 0
+ L3 0 0.000000 0.631458 0.000000 0 0.631458 1.836969 0
+ L3 0 0.000000 1.377727 0.000000 0 1.377727 1.836969 0
+ L3 0 0.000000 0.631458 0.229621 0 1.377727 0.229621 0
+ L3 0 0.000000 0.602756 0.459242 0 1.377727 0.459242 0
+ L3 0 0.000000 0.631458 0.688863 0 1.349024 0.688863 0
+ L3 0 0.000000 0.631458 0.918485 0 1.406429 0.918485 0
+ L3 0 0.000000 0.631458 1.148106 0 1.377727 1.148106 0
+ L3 0 0.000000 0.631458 1.377727 0 1.377727 1.377727 0
+ L3 0 0.000000 0.602756 1.607348 0 1.377727 1.607348 0
+ END
+STRUCTURE HO "Walther's Crossing Shanty 933-2600C"
+ F3 12632256 0.000000 4
+ 0.000000 0.000000 0
+ 1.148106 0.000000 0
+ 1.148106 0.459242 0
+ 0.000000 0.459242 0
+ F3 11053224 0.000000 4
+ 0.000000 0.459242 0
+ 1.119403 0.459242 0
+ 1.119403 1.377727 0
+ 0.000000 1.377727 0
+ L3 0 0.000000 0.000000 0.918485 0 1.119403 0.918485 0
+ G3 0 0.000000 0.057405 0.344432 1.148106 0
+ F3 16776960 0.000000 4
+ 1.119403 1.205511 0
+ 1.607348 1.205511 0
+ 1.607348 0.545350 0
+ 1.119403 0.545350 0
+ L3 0 0.000000 1.119403 1.234214 0 1.578645 1.234214 0
+ L3 0 0.000000 1.578645 1.234214 0 1.578645 0.516648 0
+ L3 0 0.000000 1.578645 0.516648 0 1.119403 0.516648 0
+ L3 0 0.000000 1.119403 0.516648 0 1.119403 1.234214 0
+ END
+STRUCTURE HO "Walther's Speeder 933-2600D"
+ F3 16776960 0.000000 4
+ 0.000000 0.000000 0
+ 0.918485 0.000000 0
+ 0.918485 0.688863 0
+ 0.000000 0.688863 0
+ L3 0 0.000000 0.000000 0.000000 0 0.918485 0.000000 0
+ L3 0 0.000000 0.918485 0.000000 0 0.918485 0.688863 0
+ L3 0 0.000000 0.918485 0.688863 0 0.000000 0.688863 0
+ L3 0 0.000000 0.000000 0.688863 0 0.000000 0.000000 0
+ G3 0 0.000000 0.028703 0.057405 0.344432 0
+ END
+STRUCTURE HO "Walther's Icing Platform 292-3061"
+ F3 13816530 0.000000 4
+ 0.000000 0.028703 0
+ 18.369690 0.028703 0
+ 18.369690 2.669346 0
+ 0.000000 2.669346 0
+ F3 8404992 0.000000 4
+ 0.000000 2.669346 0
+ 0.086108 2.669346 0
+ 0.086108 0.057405 0
+ 0.000000 0.057405 0
+ F3 8404992 0.000000 4
+ 0.000000 2.669346 0
+ 18.369690 2.669346 0
+ 18.369690 2.583238 0
+ 0.000000 2.583238 0
+ F3 8404992 0.000000 4
+ 0.000000 0.028703 0
+ 18.369690 0.028703 0
+ 18.369690 0.114811 0
+ 0.000000 0.114811 0
+ F3 8404992 0.000000 4
+ 18.369690 1.636051 0
+ 21.785310 1.636051 0
+ 21.785310 0.947187 0
+ 18.369690 0.947187 0
+ F3 8404992 0.000000 4
+ 19.833520 0.918485 0
+ 19.747420 0.918485 0
+ 19.747420 0.000000 0
+ 19.833520 0.000000 0
+ F3 8404992 0.000000 4
+ 19.833520 2.583238 0
+ 19.747420 2.583238 0
+ 19.747420 1.607348 0
+ 19.833520 1.607348 0
+ L3 0 0.000000 18.599310 1.664753 0 18.599310 0.918485 0
+ L3 12632256 0.000000 18.828930 1.664753 0 18.828930 0.947187 0
+ L3 0 0.000000 19.058550 1.636051 0 19.058550 0.947187 0
+ L3 0 0.000000 19.288180 1.664753 0 19.288180 0.975890 0
+ L3 0 0.000000 19.517800 1.664753 0 19.517800 0.975890 0
+ L3 0 0.000000 19.747420 1.636051 0 19.747420 0.975890 0
+ L3 0 0.000000 19.977040 1.636051 0 19.977040 0.947187 0
+ L3 0 0.000000 20.206660 1.636051 0 20.206660 0.918485 0
+ L3 0 0.000000 20.436280 1.664753 0 20.436280 0.975890 0
+ L3 0 0.000000 20.665900 1.664753 0 20.665900 0.918485 0
+ L3 0 0.000000 20.895520 1.664753 0 20.895520 0.975890 0
+ L3 0 0.000000 21.125140 1.636051 0 21.125140 0.947187 0
+ L3 0 0.000000 21.354760 1.636051 0 21.354760 0.975890 0
+ L3 0 0.000000 21.584390 1.664753 0 21.584390 0.947187 0
+ F3 13816530 0.000000 4
+ 18.340990 0.143513 0
+ 19.747420 0.143513 0
+ 19.747420 2.583238 0
+ 18.340990 2.583238 0
+ F3 8404992 0.000000 4
+ 18.312280 2.669346 0
+ 19.804820 2.669346 0
+ 19.804820 2.583238 0
+ 18.312280 2.583238 0
+ F3 8404992 0.000000 4
+ 18.369690 0.028703 0
+ 19.747420 0.028703 0
+ 19.747420 0.114811 0
+ 18.369690 0.114811 0
+ END
+STRUCTURE HO "Walther's Icing Platform Add-On 292-3062"
+ F3 13816530 0.000000 4
+ 0.000000 0.028703 0
+ 18.369690 0.028703 0
+ 18.369690 2.669346 0
+ 0.000000 2.669346 0
+ F3 8404992 0.000000 4
+ 0.000000 2.669346 0
+ 0.086108 2.669346 0
+ 0.086108 0.057405 0
+ 0.000000 0.057405 0
+ F3 8404992 0.000000 4
+ 0.000000 2.669346 0
+ 18.369690 2.669346 0
+ 18.369690 2.583238 0
+ 0.000000 2.583238 0
+ F3 8404992 0.000000 4
+ 0.000000 0.028703 0
+ 18.369690 0.028703 0
+ 18.369690 0.114811 0
+ 0.000000 0.114811 0
+ F3 13684944 0.000000 4
+ 19.833520 0.918485 0
+ 19.747420 0.918485 0
+ 19.747420 0.000000 0
+ 19.833520 0.000000 0
+ F3 13684944 0.000000 4
+ 19.833520 2.583238 0
+ 19.747420 2.583238 0
+ 19.747420 1.607348 0
+ 19.833520 1.607348 0
+ F3 13816530 0.000000 4
+ 18.340990 0.143513 0
+ 19.747420 0.143513 0
+ 19.747420 2.583238 0
+ 18.340990 2.583238 0
+ F3 8404992 0.000000 4
+ 18.312280 2.669346 0
+ 19.804820 2.669346 0
+ 19.804820 2.583238 0
+ 18.312280 2.583238 0
+ F3 8404992 0.000000 4
+ 18.369690 0.028703 0
+ 19.747420 0.028703 0
+ 19.747420 0.114811 0
+ 18.369690 0.114811 0
+ F3 13816530 0.000000 4
+ 19.833520 1.636051 0
+ 19.747420 1.636051 0
+ 19.747420 0.918485 0
+ 19.833520 0.918485 0
+ END
+STRUCTURE HO "Walther's Ice House 292-526"
+ F3 8421504 0.000000 4
+ 3.673938 1.808266 0
+ 12.858780 1.808266 0
+ 12.858780 7.319173 0
+ 3.673938 7.319173 0
+ F3 8421504 0.000000 4
+ 0.000000 5.482204 0
+ 3.673938 5.482204 0
+ 3.673938 3.645235 0
+ 0.000000 3.645235 0
+ L3 0 0.000000 0.000000 4.563720 0 12.887490 4.563720 0
+ L3 0 0.000000 3.673938 5.482204 0 3.673938 3.645235 0
+ F3 8421504 0.000000 4
+ 12.858780 6.859931 0
+ 16.532720 6.859931 0
+ 16.532720 2.267509 0
+ 12.858780 2.267509 0
+ L3 0 0.000000 12.858780 6.859931 0 12.858780 2.267509 0
+ L3 0 0.000000 12.858780 4.563720 0 16.532720 4.563720 0
+ F3 14737632 0.000000 4
+ 12.858780 2.267509 0
+ 16.532720 2.267509 0
+ 16.532720 1.808266 0
+ 12.858780 1.808266 0
+ F3 15132390 0.000000 4
+ 12.858780 6.859931 0
+ 16.532720 6.859931 0
+ 16.532720 7.319173 0
+ 12.858780 7.319173 0
+ F3 8421504 0.000000 4
+ 16.532720 6.859931 0
+ 18.369690 6.859931 0
+ 18.369690 2.296211 0
+ 16.532720 2.296211 0
+ L3 0 0.000000 16.532720 2.267509 0 16.532720 6.859931 0
+ F3 8421504 0.000000 4
+ 16.532720 0.889782 0
+ 15.154990 0.889782 0
+ 15.154990 2.267509 0
+ 16.532720 2.267509 0
+ L3 0 0.000000 15.154990 2.267509 0 16.532720 2.267509 0
+ F3 8421504 0.000000 4
+ 16.532720 2.296211 0
+ 18.369690 2.296211 0
+ 18.369690 0.000000 0
+ 16.532720 0.000000 0
+ L3 0 0.000000 16.532720 2.267509 0 18.369690 2.267509 0
+ L3 0 0.000000 16.532720 2.411022 0 16.532720 0.889782 0
+ G3 15790320 0.000000 0.516648 17.451210 1.578645 0
+ G3 0 0.000000 0.345626 17.451210 1.578645 0
+ END
+STRUCTURE HO "Walther's Icing Platform 933-3245B"
+ F3 8421504 0.000000 4
+ 0.000000 0.000000 0
+ 16.991960 0.000000 0
+ 16.991960 1.607348 0
+ 0.000000 1.607348 0
+ L3 0 0.000000 0.000000 0.803674 0 16.991960 0.803674 0
+ F3 13882323 0.000000 4
+ 16.991960 1.033295 0
+ 18.140070 1.033295 0
+ 18.140070 0.574053 0
+ 16.991960 0.574053 0
+ L3 0 0.000000 17.221580 1.033295 0 17.221580 0.574053 0
+ L3 0 0.000000 17.451210 1.033295 0 17.451210 0.574053 0
+ L3 0 0.000000 17.680830 1.033295 0 17.680830 0.602756 0
+ L3 0 0.000000 17.910450 1.033295 0 17.910450 0.574053 0
+ END
+STRUCTURE HO "Walther's Ice House 933-3245A"
+ F3 8421504 0.000000 4
+ 0.000000 0.000000 0
+ 11.940300 0.000000 0
+ 11.940300 5.281286 0
+ 0.000000 5.281286 0
+ L3 0 0.000000 0.000000 2.640643 0 11.940300 2.640643 0
+ L3 0 0.000000 2.755454 2.640643 0 2.755454 0.000000 0
+ L3 0 0.000000 9.184845 2.640643 0 9.184845 0.000000 0
+ L3 0 0.000000 2.296211 1.836969 0 2.296211 0.000000 0
+ L3 0 0.000000 3.214696 1.836969 0 3.214696 0.000000 0
+ L3 0 0.000000 8.725603 1.836969 0 8.725603 0.000000 0
+ L3 0 0.000000 9.644088 1.836969 0 9.644088 0.000000 0
+ L3 0 0.000000 2.755454 2.640643 0 2.296211 1.836969 0
+ L3 0 0.000000 2.755454 2.640643 0 3.214696 1.836969 0
+ L3 0 0.000000 9.184845 2.640643 0 8.725603 1.836969 0
+ L3 0 0.000000 9.184845 2.640643 0 9.644088 1.836969 0
+ L3 0 0.000000 0.918485 2.985075 0 1.549943 2.985075 0
+ L3 0 0.000000 1.549943 2.985075 0 1.549943 2.296211 0
+ L3 0 0.000000 1.549943 2.296211 0 0.918485 2.296211 0
+ L3 0 0.000000 0.918485 2.296211 0 0.918485 2.985075 0
+ L3 0 0.000000 5.625718 2.296211 0 6.314581 2.296211 0
+ L3 0 0.000000 6.314581 2.296211 0 6.314581 2.985075 0
+ L3 0 0.000000 6.314581 2.985075 0 5.625718 2.985075 0
+ L3 0 0.000000 5.625718 2.985075 0 5.625718 2.296211 0
+ L3 0 0.000000 11.021810 2.296211 0 10.332950 2.296211 0
+ L3 0 0.000000 10.332950 2.296211 0 10.332950 2.985075 0
+ L3 0 0.000000 10.332950 2.985075 0 11.021810 2.985075 0
+ L3 0 0.000000 11.021810 2.985075 0 11.021810 2.296211 0
+ END
+STRUCTURE HO "Walther's Cornerstone Structure The Bralick Building 933-3255"
+ F3 12632256 0.000000 4
+ 0.000000 0.688863 0
+ 12.399540 0.688863 0
+ 12.399540 9.931114 0
+ 0.000000 9.931114 0
+ F3 12632256 0.000000 4
+ 4.822044 0.000000 0
+ 6.773823 0.000000 0
+ 6.773823 0.688863 0
+ 4.822044 0.688863 0
+ F3 12632256 0.000000 4
+ 13.088400 1.836969 0
+ 12.399540 1.836969 0
+ 12.399540 2.985075 0
+ 13.088400 2.985075 0
+ F3 8421504 0.000000 4
+ 0.229621 9.758898 0
+ 12.227330 9.758898 0
+ 12.227330 0.861079 0
+ 0.229621 0.861079 0
+ L3 0 0.000000 4.822044 0.688863 0 6.745121 0.688863 0
+ L3 0 0.000000 12.399540 2.985075 0 12.399540 1.836969 0
+ F3 12632256 0.000000 4
+ 4.362802 3.673938 0
+ 7.347876 3.673938 0
+ 7.347876 7.347876 0
+ 4.362802 7.347876 0
+ F3 12632256 0.000000 4
+ 9.471871 7.577497 0
+ 10.074630 7.577497 0
+ 10.074630 7.032147 0
+ 9.471871 7.032147 0
+ END
+STRUCTURE HO "Walther's Cornerstone Structure Yard Office 933-3822"
+ F3 8421504 0.000000 4
+ 0.000000 0.688863 0
+ 5.281286 0.688863 0
+ 5.281286 4.822044 0
+ 0.000000 4.822044 0
+ F3 12632256 0.000000 4
+ 5.051665 0.746269 0
+ 4.362802 0.746269 0
+ 4.362802 0.000000 0
+ 5.051665 0.000000 0
+ F3 12632256 0.000000 4
+ 1.836969 0.660161 0
+ 2.554535 0.660161 0
+ 2.554535 0.000000 0
+ 1.836969 0.000000 0
+ L3 0 0.000000 1.836969 0.229621 0 2.525832 0.229621 0
+ L3 0 0.000000 1.836969 0.459242 0 2.525832 0.459242 0
+ L3 0 0.000000 1.836969 0.688863 0 2.583238 0.688863 0
+ L3 0 0.000000 4.362802 0.688863 0 5.051665 0.688863 0
+ L3 0 0.000000 4.362802 0.459242 0 5.022962 0.459242 0
+ L3 0 0.000000 4.362802 0.229621 0 5.051665 0.229621 0
+ F3 12632256 0.000000 4
+ 0.459242 4.822044 0
+ 2.755454 4.822044 0
+ 2.755454 5.970150 0
+ 0.459242 5.970150 0
+ F3 12632256 0.000000 4
+ 0.688863 5.970150 0
+ 1.836969 5.970150 0
+ 1.836969 6.400689 0
+ 0.688863 6.400689 0
+ F3 12632256 0.000000 4
+ 0.918485 6.429391 0
+ 1.549943 6.429391 0
+ 1.549943 7.347876 0
+ 0.918485 7.347876 0
+ L3 0 0.000000 0.688863 5.970150 0 1.865672 5.970150 0
+ L3 0 0.000000 0.918485 6.429391 0 1.549943 6.429391 0
+ F3 8388608 0.000000 4
+ 0.000000 4.822044 0
+ 0.114811 4.822044 0
+ 0.114811 0.688863 0
+ 0.000000 0.688863 0
+ F3 8388608 0.000000 4
+ 0.000000 0.688863 0
+ 5.252584 0.688863 0
+ 5.252584 0.832377 0
+ 0.000000 0.832377 0
+ F3 8388608 0.000000 4
+ 5.252584 0.688863 0
+ 5.109070 0.688863 0
+ 5.109070 4.822044 0
+ 5.252584 4.822044 0
+ F3 12632256 0.000000 4
+ 0.459242 1.377727 0
+ 0.803674 1.377727 0
+ 0.803674 1.664753 0
+ 0.459242 1.664753 0
+ F3 12632256 0.000000 4
+ 0.459242 4.247991 0
+ 0.803674 4.247991 0
+ 0.803674 3.903559 0
+ 0.459242 3.903559 0
+ F3 16777215 0.000000 4
+ 2.296211 3.214696 0
+ 2.755454 3.214696 0
+ 2.755454 2.755454 0
+ 2.296211 2.755454 0
+ F3 0 0.000000 4
+ 2.353616 3.128588 0
+ 2.669346 3.128588 0
+ 2.669346 2.870264 0
+ 2.353616 2.870264 0
+ G3 0 0.000000 0.143513 4.133180 3.099885 0
+ END
+STRUCTURE HO "Walther's Cornerstone Structure Shed 933-3822"
+ F3 12632256 0.000000 4
+ 0.000000 0.000000 0
+ 7.577497 0.000000 0
+ 7.577497 4.822044 0
+ 0.000000 4.822044 0
+ L3 0 0.000000 0.000000 2.411022 0 7.520092 2.411022 0
+ F3 0 0.000000 4
+ 3.559128 2.525832 0
+ 3.788749 2.525832 0
+ 3.788749 2.296211 0
+ 3.559128 2.296211 0
+ L3 0 0.000000 0.229621 4.822044 0 0.229621 0.000000 0
+ L3 0 0.000000 0.459242 4.822044 0 0.430540 0.000000 0
+ L3 0 0.000000 0.688863 4.822044 0 0.688863 0.000000 0
+ L3 0 0.000000 0.918485 4.822044 0 0.918485 0.000000 0
+ L3 0 0.000000 1.148106 4.822044 0 1.119403 0.000000 0
+ L3 0 0.000000 1.377727 4.822044 0 1.349024 0.000000 0
+ L3 0 0.000000 1.607348 0.000000 0 1.607348 4.822044 0
+ L3 0 0.000000 1.836969 0.000000 0 1.836969 4.822044 0
+ L3 0 0.000000 2.066590 0.000000 0 2.066590 4.822044 0
+ L3 0 0.000000 2.296211 4.822044 0 2.296211 0.000000 0
+ L3 0 0.000000 2.525832 4.822044 0 2.525832 0.000000 0
+ L3 0 0.000000 2.755454 4.822044 0 2.726751 0.028703 0
+ L3 0 0.000000 2.985075 4.822044 0 2.985075 0.000000 0
+ L3 0 0.000000 3.214696 4.822044 0 3.214696 0.000000 0
+ L3 0 0.000000 3.444317 4.822044 0 3.444317 0.000000 0
+ L3 0 0.000000 3.673938 4.822044 0 3.673938 0.000000 0
+ L3 0 0.000000 3.903559 4.822044 0 3.874856 0.028703 0
+ L3 0 0.000000 4.133180 4.822044 0 4.104478 0.000000 0
+ L3 0 0.000000 4.362802 0.000000 0 4.334099 4.822044 0
+ L3 0 0.000000 4.592422 0.000000 0 4.592422 4.822044 0
+ L3 0 0.000000 5.510907 0.000000 0 5.510907 4.822044 0
+ L3 0 0.000000 5.051665 0.000000 0 5.051665 4.822044 0
+ L3 0 0.000000 4.822044 4.822044 0 4.822044 0.000000 0
+ L3 0 0.000000 5.281286 4.822044 0 5.281286 0.000000 0
+ L3 0 0.000000 5.740528 4.822044 0 5.740528 0.000000 0
+ L3 0 0.000000 5.970150 4.822044 0 5.970150 0.000000 0
+ L3 0 0.000000 6.199770 4.822044 0 6.171068 0.000000 0
+ L3 0 0.000000 6.429391 4.822044 0 6.429391 0.028703 0
+ L3 0 0.000000 6.659013 4.822044 0 6.659013 0.000000 0
+ L3 0 0.000000 6.888634 4.822044 0 6.859931 0.057405 0
+ L3 0 0.000000 7.118255 4.822044 0 7.118255 0.000000 0
+ L3 0 0.000000 7.347876 4.822044 0 7.347876 0.000000 0
+ END
+STRUCTURE HO "Walther's Cornerstone Structures Shed 933-3822"
+ F3 12632256 0.000000 4
+ 0.000000 0.000000 0
+ 7.577497 0.000000 0
+ 7.577497 4.822044 0
+ 0.000000 4.822044 0
+ L3 0 0.000000 0.000000 2.411022 0 7.520092 2.411022 0
+ F3 0 0.000000 4
+ 3.559128 2.525832 0
+ 3.788749 2.525832 0
+ 3.788749 2.296211 0
+ 3.559128 2.296211 0
+ L3 0 0.000000 0.229621 4.822044 0 0.229621 0.000000 0
+ L3 0 0.000000 0.459242 4.822044 0 0.430540 0.000000 0
+ L3 0 0.000000 0.688863 4.822044 0 0.688863 0.000000 0
+ L3 0 0.000000 0.918485 4.822044 0 0.918485 0.000000 0
+ L3 0 0.000000 1.148106 4.822044 0 1.119403 0.000000 0
+ L3 0 0.000000 1.377727 4.822044 0 1.349024 0.000000 0
+ L3 0 0.000000 1.607348 0.000000 0 1.607348 4.822044 0
+ L3 0 0.000000 1.836969 0.000000 0 1.836969 4.822044 0
+ L3 0 0.000000 2.066590 0.000000 0 2.066590 4.822044 0
+ L3 0 0.000000 2.296211 4.822044 0 2.296211 0.000000 0
+ L3 0 0.000000 2.525832 4.822044 0 2.525832 0.000000 0
+ L3 0 0.000000 2.755454 4.822044 0 2.726751 0.028703 0
+ L3 0 0.000000 2.985075 4.822044 0 2.985075 0.000000 0
+ L3 0 0.000000 3.214696 4.822044 0 3.214696 0.000000 0
+ L3 0 0.000000 3.444317 4.822044 0 3.444317 0.000000 0
+ L3 0 0.000000 3.673938 4.822044 0 3.673938 0.000000 0
+ L3 0 0.000000 3.903559 4.822044 0 3.874856 0.028703 0
+ L3 0 0.000000 4.133180 4.822044 0 4.104478 0.000000 0
+ L3 0 0.000000 4.362802 0.000000 0 4.334099 4.822044 0
+ L3 0 0.000000 4.592422 0.000000 0 4.592422 4.822044 0
+ L3 0 0.000000 5.510907 0.000000 0 5.510907 4.822044 0
+ L3 0 0.000000 5.051665 0.000000 0 5.051665 4.822044 0
+ L3 0 0.000000 4.822044 4.822044 0 4.822044 0.000000 0
+ L3 0 0.000000 5.281286 4.822044 0 5.281286 0.000000 0
+ L3 0 0.000000 5.740528 4.822044 0 5.740528 0.000000 0
+ L3 0 0.000000 5.970150 4.822044 0 5.970150 0.000000 0
+ L3 0 0.000000 6.199770 4.822044 0 6.171068 0.000000 0
+ L3 0 0.000000 6.429391 4.822044 0 6.429391 0.028703 0
+ L3 0 0.000000 6.659013 4.822044 0 6.659013 0.000000 0
+ L3 0 0.000000 6.888634 4.822044 0 6.859931 0.057405 0
+ L3 0 0.000000 7.118255 4.822044 0 7.118255 0.000000 0
+ L3 0 0.000000 7.347876 4.822044 0 7.347876 0.000000 0
+ END
+STRUCTURE HO "Walthers Shady Jct Water Tower 933-3205a"
+ L 0 0 0.000000 0.000000 2.870264 0.000000
+ L 0 0 2.870264 0.000000 2.870264 2.870264
+ L 0 0 2.870264 2.870264 0.000000 2.870264
+ L 0 0 0.000000 2.870264 0.000000 0.000000
+ L 0 0 0.000000 0.688863 2.296211 0.688863
+ L 0 0 2.296211 0.688863 2.296211 2.870264
+ L 0 0 1.148106 1.836969 1.148106 0.688863
+ L 0 0 1.148106 1.836969 2.296211 1.836969
+ L 0 0 1.148106 1.836969 0.000000 1.836969
+ L 0 0 1.148106 1.836969 1.148106 2.870264
+ L 0 0 1.148106 1.836969 1.951780 2.640643
+ L 0 0 1.148106 1.836969 1.951780 1.033295
+ L 0 0 1.148106 1.836969 0.344432 1.033295
+ L 0 0 1.148106 1.836969 0.344432 2.640643
+ L 0 0 1.148106 2.870264 1.951780 2.640643
+ L 0 0 1.951780 2.640643 2.296211 1.836969
+ L 0 0 2.296211 1.836969 1.951780 1.033295
+ L 0 0 1.951780 1.033295 1.148106 0.688863
+ L 0 0 1.148106 0.688863 0.344432 1.033295
+ L 0 0 0.344432 1.033295 0.000000 1.836969
+ L 0 0 0.000000 1.836969 0.344432 2.640643
+ L 0 0 0.344432 2.640643 1.148106 2.870264
+ L 0 0 2.296211 2.755454 3.214696 2.755454
+ L 0 0 3.214696 2.755454 3.214696 1.951780
+ L 0 0 3.214696 1.951780 2.296211 1.951780
+ END
+STRUCTURE HO "Walthers Shady Jct Interlocking Tower 933-3205b"
+ L 0 0 0.000000 0.000000 2.755454 0.000000
+ L 0 0 2.755454 0.000000 2.755454 1.836969
+ L 0 0 2.755454 1.836969 0.000000 1.836969
+ L 0 0 0.000000 1.836969 0.000000 0.000000
+ L 0 0 0.229621 0.114811 2.066590 0.114811
+ L 0 0 2.066590 0.114811 2.066590 1.148106
+ L 0 0 2.066590 1.148106 0.229621 1.148106
+ L 0 0 0.229621 1.148106 0.229621 0.114811
+ L 0 0 0.459242 1.148106 0.459242 0.114811
+ L 0 0 0.459242 0.574053 2.066590 0.574053
+ END
+STRUCTURE HO "Walthers Shady Jct Xing Shanty 933-3205c"
+ L 0 0 0.000000 0.000000 1.836969 0.000000
+ L 0 0 1.836969 0.000000 1.836969 1.377727
+ L 0 0 1.836969 1.377727 0.000000 1.377727
+ L 0 0 0.000000 1.377727 0.000000 0.000000
+ L 0 0 0.000000 0.688863 1.836969 0.688863
+ L 0 0 1.377727 1.377727 1.377727 1.722158
+ L 0 0 1.377727 1.722158 0.459242 1.722158
+ L 0 0 0.459242 1.722158 0.459242 1.377727
+ L 0 0 0.229621 0.000000 0.229621 -0.114811
+ L 0 0 0.229621 -0.114811 0.688863 -0.114811
+ L 0 0 0.688863 -0.114811 0.688863 0.000000
+ END
+STRUCTURE HO "Walthers Shady Jct Water Crane 933-3205d"
+ L 0 0 0.000000 0.000000 0.918485 0.000000
+ L 0 0 0.918485 0.000000 0.918485 2.066590
+ L 0 0 0.918485 2.066590 0.000000 2.066590
+ L 0 0 0.000000 2.066590 0.000000 0.000000
+ A 0 0 0.000000 0.459242 1.722158 0.000000 360.000000
+ A 0 0 0.114811 0.459242 1.722158 0.000000 360.000000
+ L 0 0 0.574053 1.607348 0.574053 0.344432
+ L 0 0 0.344432 1.607348 0.344432 0.344432
+ L 0 0 0.344432 0.344432 0.574053 0.344432
+ END
+STRUCTURE HO "Walthers Water St Freight Terminal 933-3201"
+ L 0 0 0.918485 0.000000 20.206660 0.000000
+ L 0 0 20.206660 0.000000 20.206660 0.918485
+ L 0 0 20.206660 0.918485 18.369690 0.918485
+ L 0 0 17.451210 0.000000 17.451210 6.429391
+ L 0 0 17.451210 6.429391 7.347876 6.429391
+ L 0 0 7.347876 6.429391 7.347876 0.000000
+ L 0 0 7.347876 3.214696 17.451210 3.214696
+ L 0 0 7.347876 5.970150 0.918485 5.970150
+ L 0 0 7.347876 0.918485 0.918485 0.918485
+ L 0 0 0.918485 3.903559 -0.114811 3.903559
+ L 0 0 0.000000 3.903559 0.000000 2.985075
+ L 0 0 0.000000 2.985075 0.918485 2.985075
+ L 0 0 0.918485 2.985075 0.918485 0.000000
+ L 0 0 0.918485 5.970150 0.918485 3.903559
+ L 0 0 17.451210 3.903559 18.369690 3.903559
+ L 0 0 18.369690 3.903559 18.369690 0.918485
+ END
+STRUCTURE HO "Walthers Mi-Jack Crane (Intermodal) 3222"
+ F3 16776960 0.000000 4
+ 0.000000 0.000000 0
+ 7.347876 0.000000 0
+ 7.347876 0.459242 0
+ 0.000000 0.459242 0
+ F3 0 0.000000 4
+ 0.000000 5.510907 0
+ 0.000000 5.510907 0
+ 0.000000 5.510907 0
+ 0.000000 5.510907 0
+ F3 16776960 0.000000 4
+ 0.000000 5.510907 0
+ 7.347876 5.510907 0
+ 7.347876 5.970150 0
+ 0.000000 5.970150 0
+ F3 16776960 0.000000 4
+ 4.592422 5.510907 0
+ 5.051665 5.510907 0
+ 5.051665 0.516648 0
+ 4.592422 0.516648 0
+ L3 0 0.000000 0.459242 5.510907 0 0.688863 5.510907 0
+ L3 0 0.000000 0.688863 0.516648 0 0.459242 0.516648 0
+ L3 0 0.000000 0.000000 5.970150 0 7.347876 5.970150 0
+ L3 0 0.000000 7.347876 5.970150 0 7.347876 5.510907 0
+ L3 0 0.000000 7.347876 5.510907 0 0.000000 5.510907 0
+ L3 0 0.000000 0.000000 5.510907 0 0.000000 5.970150 0
+ L3 0 0.000000 0.000000 0.459242 0 7.290471 0.459242 0
+ L3 0 0.000000 7.290471 0.459242 0 7.290471 0.000000 0
+ L3 0 0.000000 7.290471 0.000000 0 0.000000 0.000000 0
+ L3 0 0.000000 0.000000 0.000000 0 0.000000 0.459242 0
+ L3 0 0.000000 4.592422 5.510907 0 5.051665 5.510907 0
+ L3 0 0.000000 5.051665 5.510907 0 5.051665 0.459242 0
+ L3 0 0.000000 5.051665 0.459242 0 4.592422 0.459242 0
+ L3 0 0.000000 4.592422 0.459242 0 4.592422 5.510907 0
+ Z 0 0.487941 5.510907 90.000000 0 36.000000 "xxxxxxxxxxxxxxxxxxxxxx"
+ L3 0 0.000000 0.746269 5.510907 0 0.746269 0.487945 0
+ L3 0 0.000000 0.459242 5.510907 0 0.459242 0.459242 0
+ END
+STRUCTURE HO "Walthers Golden Valley Freight House 933-3533"
+ F3 16755285 0.000000 4
+ 0.776042 3.401042 0
+ 6.401042 3.401042 0
+ 6.401042 0.776042 0
+ 0.776042 0.776042 0
+ F3 15720651 0.000000 4
+ 0.026042 3.151042 0
+ 0.776042 3.151042 0
+ 0.776042 0.026042 0
+ 0.026042 0.026042 0
+ F3 15720651 0.000000 4
+ 0.776042 0.776042 0
+ 6.401042 0.776042 0
+ 6.401042 0.026042 0
+ 0.776042 0.026042 0
+ F3 15720651 0.000000 4
+ 6.401042 1.151042 0
+ 8.401042 1.151042 0
+ 8.401042 0.026042 0
+ 6.401042 0.026042 0
+ L3 0 0.052083 0.026042 0.026042 0 8.401042 0.026042 0
+ L3 0 0.052083 8.401042 0.026042 0 8.401042 1.126042 0
+ L3 0 0.052083 6.401042 3.401050 0 0.776042 3.401042 0
+ L3 0 0.052083 0.026042 3.151042 0 0.026042 0.026042 0
+ L3 0 0.052083 6.401042 3.401042 0 6.401035 0.776042 0
+ L3 0 0.052083 6.401042 1.126042 0 8.401042 1.126042 0
+ L3 0 0.052083 6.401042 1.151042 0 6.401042 1.151042 0
+ L3 0 0.052083 0.776042 3.401042 0 0.776042 0.776042 0
+ L3 0 0.052083 0.776042 0.776042 0 6.401042 0.776042 0
+ L3 0 0.052083 0.026042 3.151042 0 0.776042 3.151042 0
+ L3 0 0.010417 0.026042 3.026042 0 0.776042 3.026042 0
+ L3 0 0.010417 0.026042 2.901042 0 0.776042 2.901042 0
+ L3 0 0.010417 0.026042 2.776042 0 0.776042 2.776042 0
+ L3 0 0.010417 0.026042 2.651042 0 0.776042 2.651042 0
+ L3 0 0.010417 0.026042 2.526042 0 0.776042 2.526042 0
+ L3 0 0.010417 0.026042 2.401042 0 0.776042 2.401042 0
+ L3 0 0.010417 6.401042 0.776042 0 6.401042 0.026042 0
+ L3 0 0.052083 6.401042 2.088542 0 0.776042 2.088542 0
+ END
+STRUCTURE HO "Walthers Wood Water Tank 933-3531"
+ F3 16755285 0.000000 8
+ 1.026042 3.901042 0
+ 0.026042 2.901042 0
+ 0.026042 1.401042 0
+ 1.026042 0.401042 0
+ 2.526042 0.401042 0
+ 3.526042 1.401042 0
+ 3.526042 2.901042 0
+ 2.526042 3.901042 0
+ F3 13541990 0.000000 4
+ 1.401042 0.401042 0
+ 2.151042 0.401042 0
+ 2.151042 0.026042 0
+ 1.401042 0.026042 0
+ L3 0 0.052083 1.401042 0.401042 0 1.401042 0.026042 0
+ L3 0 0.052083 1.713542 0.088542 0 1.713542 0.088542 0
+ L3 0 0.052083 1.401042 0.026042 0 1.401042 0.026042 0
+ L3 0 0.052083 1.401042 0.026042 0 2.151042 0.026042 0
+ L3 0 0.052083 2.151042 0.026042 0 2.151042 0.401042 0
+ L3 0 0.052083 0.026042 2.901042 0 0.026042 1.401042 0
+ L3 0 0.052083 0.026042 1.401042 0 1.026042 0.401042 0
+ L3 0 0.052083 1.026042 0.401042 0 2.526042 0.401042 0
+ L3 0 0.052083 2.526042 0.401042 0 3.526042 1.401042 0
+ L3 0 0.052083 3.526042 1.401042 0 3.526042 2.901042 0
+ L3 0 0.052083 3.526042 2.901042 0 2.526042 3.901042 0
+ L3 0 0.052083 2.526042 3.901042 0 1.026042 3.901042 0
+ L3 0 0.052083 1.026042 3.901042 0 0.026042 2.901042 0
+ L3 0 0.052083 1.026042 3.901042 0 1.776042 2.151042 0
+ L3 0 0.052083 1.776042 2.151042 0 1.026042 0.401042 0
+ L3 0 0.052083 1.776042 2.151042 0 2.526042 0.401042 0
+ L3 0 0.052083 1.776042 2.151042 0 3.526042 1.401042 0
+ L3 0 0.052083 1.776042 2.151042 0 3.526042 2.901042 0
+ L3 0 0.052083 1.776042 2.151042 0 2.526042 3.901042 0
+ L3 0 0.052083 1.776042 2.151042 0 0.026042 2.901042 0
+ L3 0 0.052083 1.776042 2.151042 0 0.026042 1.401042 0
+ END
+STRUCTURE HO "Walthers Santa Fe Freight House circa 1908 933-3804"
+ F3 16379605 0.000000 4
+ 0.000000 6.888634 0
+ 12.399540 6.888634 0
+ 12.399540 0.000000 0
+ 0.000000 0.000000 0
+ L3 0 0.000000 0.000000 0.000000 0 12.399540 0.000000 0
+ L3 0 0.000000 12.399540 0.000000 0 12.399540 6.888634 0
+ L3 0 0.000000 12.399540 6.888634 0 0.000000 6.888634 0
+ L3 0 0.000000 0.000000 6.888634 0 0.000000 0.000000 0
+ L3 0 0.000000 0.688863 0.688863 0 11.710680 0.688863 0
+ L3 0 0.000000 11.710680 0.688863 0 11.710680 6.199770 0
+ L3 0 0.000000 11.710680 6.199770 0 0.688863 6.199770 0
+ L3 0 0.000000 0.688863 6.199770 0 0.688863 0.688863 0
+ L3 0 0.000000 0.688863 1.377727 0 0.918485 1.377727 0
+ L3 0 0.000000 0.889782 0.918485 0 1.148106 0.918485 0
+ L3 0 0.000000 1.119403 0.918485 0 1.119403 0.688863 0
+ L3 0 0.000000 1.148106 5.998852 0 0.889782 5.998852 0
+ L3 0 0.000000 0.889782 5.998852 0 0.889782 5.797934 0
+ L3 0 0.000000 0.889782 5.797934 0 0.717566 5.797934 0
+ L3 0 0.000000 11.021810 6.171068 0 11.021810 5.970150 0
+ L3 0 0.000000 11.021810 5.970150 0 11.481060 5.970150 0
+ L3 0 0.000000 11.710680 5.740528 0 11.481060 5.740528 0
+ L3 0 0.000000 11.481060 5.740528 0 11.481060 5.970150 0
+ L3 0 0.000000 11.021810 0.688863 0 11.021810 0.918485 0
+ L3 0 0.000000 11.021810 0.918485 0 11.481060 0.918485 0
+ L3 0 0.000000 11.481060 0.918485 0 11.481060 1.377727 0
+ L3 0 0.000000 11.710680 4.592422 0 11.452350 4.592422 0
+ L3 0 0.000000 11.452350 4.592422 0 11.452350 2.755454 0
+ L3 0 0.000000 11.452350 2.755454 0 11.710680 2.755454 0
+ L3 0 0.000000 11.710680 2.755454 0 11.710680 4.592422 0
+ L3 0 0.000000 4.133180 6.199770 0 7.807118 6.199770 0
+ L3 0 0.000000 7.807118 6.199770 0 7.807118 5.970150 0
+ L3 0 0.000000 7.807118 5.970150 0 4.133180 5.970150 0
+ L3 0 0.000000 4.133180 5.970150 0 4.133180 6.199770 0
+ L3 0 0.000000 4.133180 0.688863 0 7.807118 0.688863 0
+ L3 0 0.000000 7.807118 0.688863 0 7.807118 0.918485 0
+ L3 0 0.000000 7.807118 0.918485 0 4.133180 0.918485 0
+ L3 0 0.000000 4.133180 0.918485 0 4.133180 0.688863 0
+ END
+
+
+
+SUBCONTENTS Walthers Cornerstone HO Structures - Passenger Facilities
+STRUCTURE HO "Walther's Cornerstone Structures Butterfly-Style Station Platform Shelter 933-3258"
+ F3 12632256 0.000000 4
+ 0.000000 0.000000 0
+ 11.251440 0.000000 0
+ 11.251440 2.296211 0
+ 0.000000 2.296211 0
+ END
+STRUCTURE HO "Walthers Amtrak Station 933-3038"
+ L 16711935 0 0.000000 0.000000 0.000000 8.500000
+ L 16711935 0 0.000000 8.500000 11.812500 8.500000
+ L 16711935 0 11.812500 8.500000 11.812500 0.000000
+ L 16711935 0 11.812500 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Santa Fe Depot circa 1908 933-3803"
+ F3 16379605 0.000000 4
+ 0.000000 7.118255 0
+ 12.399540 7.118255 0
+ 12.399540 0.000000 0
+ 0.000000 0.000000 0
+ L3 0 0.000000 0.000000 0.000000 0 12.399540 0.000000 0
+ L3 0 0.000000 12.399540 0.000000 0 12.399540 7.118255 0
+ L3 0 0.000000 12.399540 7.118255 0 0.000000 7.118255 0
+ L3 0 0.000000 0.688863 0.688863 0 11.710680 0.688863 0
+ L3 0 0.000000 11.710680 0.688863 0 11.710680 6.429391 0
+ L3 0 0.000000 11.710680 6.429391 0 0.688863 6.429391 0
+ L3 0 0.000000 0.688863 6.429391 0 0.688863 0.688863 0
+ L3 0 0.000000 0.660161 3.559128 0 11.681970 3.559128 0
+ L3 0 0.000000 11.681970 4.822044 0 11.452350 4.822044 0
+ L3 0 0.000000 11.452350 4.822044 0 11.452350 2.525832 0
+ L3 0 0.000000 11.452350 2.525832 0 11.681970 2.525832 0
+ L3 0 0.000000 11.681970 2.525832 0 11.681970 4.822044 0
+ L3 0 0.000000 0.918485 4.822044 0 0.918485 2.296211 0
+ L3 0 0.000000 0.918485 2.296211 0 0.688863 2.296211 0
+ L3 0 0.000000 0.688863 2.296211 0 0.688863 5.051665 0
+ L3 0 0.000000 0.688863 4.822044 0 0.889782 4.822044 0
+ L3 0 0.000000 3.903559 0.688863 0 7.577497 0.688863 0
+ L3 0 0.000000 7.577497 0.688863 0 7.577497 0.918485 0
+ L3 0 0.000000 7.577497 0.918485 0 3.903559 0.918485 0
+ L3 0 0.000000 3.903559 0.918485 0 3.903559 0.688863 0
+ L3 0 0.000000 3.903559 6.429391 0 7.577497 6.429391 0
+ L3 0 0.000000 7.577497 6.429391 0 7.577497 6.199770 0
+ L3 0 0.000000 7.577497 6.199770 0 3.903559 6.199770 0
+ L3 0 0.000000 3.903559 6.199770 0 3.903559 6.429391 0
+ L3 0 0.000000 10.103330 4.391504 0 10.619980 4.391504 0
+ L3 0 0.000000 10.619980 4.391504 0 10.619980 3.960964 0
+ L3 0 0.000000 10.619980 3.960964 0 10.103330 3.960964 0
+ L3 0 0.000000 10.103330 3.960964 0 10.103330 4.391504 0
+ L3 0 0.000000 1.693456 4.391504 0 2.210103 4.391504 0
+ L3 0 0.000000 2.210103 4.391504 0 2.210103 3.932262 0
+ L3 0 0.000000 2.210103 3.932262 0 1.693456 3.932262 0
+ L3 0 0.000000 1.693456 3.932262 0 1.693456 4.391504 0
+ L3 0 0.000000 0.028703 7.089552 0 0.028703 0.028703 0
+ END
+STRUCTURE HO "Walthers Union Station (Cornerstone Series) 3257"
+ F3 14211288 0.000000 4
+ 0.000000 11.021810 0
+ 29.391500 11.021810 0
+ 29.391500 0.000000 0
+ 0.000000 0.000000 0
+ L3 0 0.000000 0.000000 0.005684 0 29.391500 0.005684 0
+ L3 0 0.000000 29.391500 0.005684 0 29.391500 11.027500 0
+ L3 0 0.000000 29.391500 11.027500 0 0.000000 11.027500 0
+ L3 0 0.000000 0.000000 11.027500 0 0.000000 0.005684 0
+ L3 0 0.000000 0.000000 0.924168 0 8.266360 0.924168 0
+ L3 0 0.000000 8.266360 0.924168 0 8.266360 10.223820 0
+ L3 0 0.000000 8.266360 10.223820 0 0.000000 10.223820 0
+ L3 0 0.000000 0.000000 10.223820 0 0.000000 0.924168 0
+ L3 0 0.000000 29.391500 0.005684 0 21.010330 0.005684 0
+ L3 0 0.000000 29.391500 9.821987 0 29.391500 0.005684 0
+ L3 0 0.000000 29.391500 0.924168 0 21.125140 0.924168 0
+ L3 0 0.000000 21.125140 0.924168 0 21.125140 10.223820 0
+ L3 0 0.000000 21.125140 10.223820 0 29.391500 10.223820 0
+ L3 0 0.000000 29.391500 10.223820 0 29.391500 0.924168 0
+ L3 0 0.000000 8.208956 10.223820 0 8.208956 11.027500 0
+ L3 0 0.000000 21.125140 10.223820 0 21.125140 11.027500 0
+ L3 0 0.000000 21.125140 0.924168 0 21.125140 0.005684 0
+ L3 0 0.000000 8.266360 0.924168 0 8.266360 0.005684 0
+ A3 0 0.000000 0.292710 14.695750 0.292710 0 0.000000 360.000000
+ A3 0 0.000000 0.287026 19.288180 0.350115 0 0.000000 360.000000
+ A3 0 0.000000 0.287026 16.991960 0.292710 0 0.000000 360.000000
+ A3 0 0.000000 0.292710 10.103330 0.292710 0 0.000000 360.000000
+ A3 0 0.000000 0.292710 12.399540 0.292710 0 0.000000 360.000000
+ L3 0 0.000000 0.229621 9.879393 0 7.979334 9.879393 0
+ L3 0 0.000000 7.979334 9.879393 0 7.979334 1.211195 0
+ L3 0 0.000000 7.979334 1.211195 0 0.229621 1.211195 0
+ L3 0 0.000000 0.229621 1.211195 0 0.229621 9.879393 0
+ L3 0 0.000000 21.469580 9.879393 0 29.104480 9.879393 0
+ L3 0 0.000000 29.104480 9.879393 0 29.104480 1.268600 0
+ L3 0 0.000000 29.104480 1.268600 0 21.469580 1.268600 0
+ L3 0 0.000000 21.469580 1.268600 0 21.469580 9.879393 0
+ L3 0 0.000000 8.495982 10.683070 0 20.895520 10.683070 0
+ L3 0 0.000000 20.895520 10.683070 0 20.895520 0.924168 0
+ L3 0 0.000000 20.895520 0.924168 0 8.495982 0.924168 0
+ L3 0 0.000000 8.495982 0.924168 0 8.495982 10.683070 0
+ L3 0 0.000000 13.777270 0.924168 0 15.614240 0.924168 0
+ L3 0 0.000000 15.614240 0.924168 0 15.614240 1.268600 0
+ L3 0 0.000000 15.614240 1.268600 0 13.777270 1.268600 0
+ L3 0 0.000000 13.777270 1.268600 0 13.777270 0.924168 0
+ END
+
+
+SUBCONTENTS Walthers Cornerstone HO Structures - Gas Works
+STRUCTURE HO "Walthers Central Gas & Supply, Office 933-3011a"
+ L 16711935 0 0.000000 0.000000 0.000000 3.000000
+ L 16711935 0 0.000000 3.000000 4.375000 3.000000
+ L 16711935 0 4.375000 3.000000 4.375000 0.000000
+ L 16711935 0 4.375000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Central Gas & Supply, Tank 933-3011b"
+ L 16711935 0 0.000000 0.000000 0.000000 1.500000
+ L 16711935 0 0.000000 1.500000 9.000000 1.500000
+ L 16711935 0 9.000000 1.500000 9.000000 0.000000
+ L 16711935 0 9.000000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Central Gas & Supply, Shed 933-3011c"
+ L 16711935 0 0.000000 0.000000 0.000000 1.000000
+ L 16711935 0 0.000000 1.000000 0.825000 1.000000
+ L 16711935 0 0.825000 1.000000 0.825000 0.000000
+ L 16711935 0 0.825000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Central Gas & Supply, Pump House 933-3011d"
+ L 16711935 0 0.000000 0.000000 0.000000 1.375000
+ L 16711935 0 0.000000 1.375000 1.375000 1.375000
+ L 16711935 0 1.375000 1.375000 1.375000 0.000000
+ L 16711935 0 1.375000 0.000000 0.000000 0.000000
+ END
+
+
+SUBCONTENTS Walthers Cornerstone HO Structures - Power Industries
+STRUCTURE HO "Walthers Northern Light & Power, Substation 933-3025"
+ L 0 0.000000 0.000000 0.000000 12.500000 0.000000
+ L 0 0.000000 12.500000 0.000000 12.500000 8.500000
+ L 0 0.000000 12.500000 8.500000 0.000000 8.500000
+ L 0 0.000000 0.000000 8.500000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Northern Light & Power, Powerhouse 933-3021"
+ L 0 0.000000 0.000000 0.000000 10.250000 0.000000
+ L 0 0.000000 10.250000 0.000000 10.250000 6.500000
+ L 0 0.000000 10.250000 6.500000 0.000000 6.500000
+ L 0 0.000000 0.000000 6.500000 0.000000 0.000000
+ A 0 0.000000 0.625000 12.125000 4.875000 0.000000 360.000000
+ END
+STRUCTURE HO "Walthers Nothern Light Powerhouse 933-3214"
+ L 0 0 0.000000 0.000000 7.577497 0.000000
+ L 0 0 7.577497 0.000000 7.577497 4.822044
+ L 0 0 7.577497 4.822044 0.000000 4.822044
+ L 0 0 0.000000 4.822044 0.000000 0.000000
+ A 0 0 0.229621 0.918485 0.918485 0.000000 360.000000
+ A 0 0 0.229621 6.659013 0.918485 0.000000 360.000000
+ A 0 0 0.229621 2.755454 0.918485 0.000000 360.000000
+ A 0 0 0.256724 4.822044 0.918485 0.000000 360.000000
+ A 0 0 0.980941 8.955224 4.018370 0.000000 360.000000
+ A 0 0 0.000000 9.070035 3.788749 0.000000 360.000000
+ A 0 0 0.669454 8.955224 4.018370 0.000000 360.000000
+ END
+
+
+SUBCONTENTS Walthers Cornerstone HO Structures - Aggregate Industries
+STRUCTURE HO "Walthers Glacier Gravel 933-3062"
+ F3 14737632 0.000000 4
+ 16.250000 3.687500 0
+ 16.250000 3.187500 0
+ 3.000000 1.187500 0
+ 3.000000 1.687500 0
+ F3 15720651 0.000000 7
+ 16.875000 4.000000 0
+ 16.875000 4.000000 0
+ 16.875000 4.250000 0
+ 18.312500 4.250000 0
+ 18.312500 2.625000 0
+ 16.250000 2.625000 0
+ 16.250000 4.000000 0
+ F3 14737632 0.000000 4
+ 16.250000 4.000000 0
+ 18.000000 4.000000 0
+ 18.000000 2.875000 0
+ 16.250000 2.875000 0
+ L3 0 0.041667 13.000000 5.875000 0 13.000000 5.375000 0
+ L3 0 0.041667 4.500000 5.375000 0 4.500000 5.875000 0
+ F3 14737632 0.000000 4
+ 4.500000 5.875000 0
+ 13.000000 5.875000 0
+ 13.000000 5.375000 0
+ 4.500000 5.375000 0
+ F3 14531987 0.000000 4
+ 13.000000 7.250000 0
+ 14.250000 7.250000 0
+ 14.250000 4.000000 0
+ 13.000000 4.000000 0
+ F3 16755285 0.000000 4
+ 8.500000 -1.250000 0
+ 11.000000 -1.250000 0
+ 11.000000 -2.750000 0
+ 8.500000 -2.750000 0
+ F3 14737632 0.000000 6
+ 0.000000 6.625000 0
+ 5.000000 6.625000 0
+ 5.000000 1.000000 0
+ 8.500000 1.000000 0
+ 8.500000 -2.750000 0
+ 0.000000 -2.750000 0
+ L3 0 0.041667 0.000000 -2.750000 0 11.000000 -2.750000 0
+ L3 0 0.041667 0.000000 -2.750000 0 0.000000 6.625000 0
+ L3 0 0.041667 0.000000 1.937500 0 3.000000 1.937500 0
+ L3 0 0.041667 3.000000 1.937500 0 3.000000 -2.750000 0
+ L3 0 0.041667 1.500000 1.937500 0 1.500000 -2.750000 0
+ L3 0 0.041667 2.500000 1.937500 0 2.500000 6.625000 0
+ L3 0 0.041667 0.000000 6.625000 0 5.000000 6.625000 0
+ L3 0 0.041667 0.875000 5.312500 0 0.875000 5.312500 0
+ L3 0 0.041667 11.000000 -1.250000 0 8.500000 -1.250000 0
+ L3 0 0.041667 11.000000 -1.250000 0 11.000000 -2.750000 0
+ L3 0 0.041667 8.500000 -2.750000 0 8.500000 1.000000 0
+ L3 0 0.041667 8.500000 1.000000 0 3.000000 1.000000 0
+ L3 0 0.041667 8.500000 -0.875000 0 3.000000 -0.875000 0
+ L3 0 0.041667 4.000000 -0.875000 0 4.000000 0.625000 0
+ L3 0 0.041667 4.000000 0.625000 0 7.000000 0.625000 0
+ L3 0 0.041667 7.000000 0.625000 0 7.000000 -0.875000 0
+ L3 0 0.041667 4.000000 -0.125000 0 7.000000 -0.125000 0
+ L3 0 0.041667 3.000000 6.250000 0 4.500000 6.250000 0
+ L3 0 0.041667 4.500000 6.250000 0 4.500000 5.000000 0
+ L3 0 0.041667 4.500000 5.000000 0 3.000000 5.000000 0
+ L3 0 0.041667 3.000000 5.000000 0 3.000000 6.250000 0
+ L3 0 0.041667 5.375000 5.187500 0 5.375000 5.187500 0
+ L3 0 0.041667 5.375000 5.187500 0 5.375000 5.187500 0
+ L3 0 0.041667 5.375000 5.187500 0 5.375000 5.187500 0
+ L3 0 0.041667 5.375000 5.187500 0 5.375000 5.187500 0
+ L3 0 0.041667 4.500000 5.875000 0 13.000000 5.875000 0
+ L3 0 0.041667 13.000000 5.375000 0 4.500000 5.375000 0
+ L3 0 0.041667 13.000000 7.250000 0 14.250000 7.250000 0
+ L3 0 0.041667 14.250000 7.250000 0 14.250000 4.000000 0
+ L3 0 0.041667 14.250000 4.000000 0 13.000000 4.000000 0
+ L3 0 0.041667 13.000000 4.000000 0 13.000000 7.250000 0
+ L3 0 0.041667 5.000000 6.625000 0 5.000000 5.875000 0
+ L3 0 0.041667 16.250000 2.625000 0 18.312500 2.625000 0
+ L3 0 0.041667 18.312500 2.625000 0 18.312500 4.250000 0
+ L3 0 0.041667 16.250000 2.875000 0 18.000000 2.875000 0
+ L3 0 0.041667 18.000000 2.875000 0 18.000000 4.000000 0
+ L3 0 0.041667 18.000000 4.000000 0 16.250000 4.000000 0
+ L3 0 0.041667 16.250000 4.000000 0 16.250000 2.875000 0
+ L3 0 0.041667 18.312500 4.250000 0 16.875000 4.250000 0
+ L3 0 0.041667 16.875000 4.250000 0 16.875000 4.000000 0
+ L3 0 0.041667 16.250000 2.875000 0 16.250000 2.625000 0
+ L3 0 0.041667 12.250000 1.125000 0 12.250000 1.125000 0
+ L3 0 0.041667 16.250000 3.187500 0 3.000000 1.187500 0
+ L3 0 0.041667 16.250000 3.687500 0 3.000000 1.687500 0
+ L3 0 0.041667 5.000000 1.000000 0 5.000000 1.437500 0
+ L3 0 0.041667 5.000000 5.375000 0 5.000000 2.000000 0
+ END
+STRUCTURE HO "Walthers Medusa Cement Co 933-3019"
+ F3 14737632 0.000000 4
+ -1.312500 -1.750000 0
+ -0.812500 -1.750000 0
+ -0.812500 -3.125000 0
+ -1.312500 -3.125000 0
+ F3 14737632 0.000000 4
+ -1.312500 -3.875000 0
+ -0.812500 -3.875000 0
+ -0.812500 -5.250000 0
+ -1.312500 -5.250000 0
+ F3 14737632 0.000000 4
+ 7.687500 -3.875000 0
+ 7.125000 -3.875000 0
+ 7.125000 -5.250000 0
+ 7.687500 -5.250000 0
+ F3 14737632 0.000000 4
+ 7.687500 -1.750000 0
+ 7.187500 -1.750000 0
+ 7.187500 -3.125000 0
+ 7.687500 -3.125000 0
+ F3 14737632 0.000000 4
+ 0.000000 1.375000 0
+ 6.375000 1.375000 0
+ 6.375000 -1.687500 0
+ 0.000000 -1.687500 0
+ F3 13092749 0.000000 4
+ 2.937500 -1.125000 0
+ 3.437500 -1.125000 0
+ 3.437500 -1.625000 0
+ 2.937500 -1.625000 0
+ G3 15720651 0.000000 1.069828 0.000000 -4.562500 0
+ G3 15720651 0.000000 1.062500 2.125000 -4.562500 0
+ G3 15720651 0.000000 1.062500 4.250000 -4.562500 0
+ G3 15720651 0.000000 1.064337 6.375000 -4.562500 0
+ G3 15720651 0.000000 1.062500 6.375000 -2.437500 0
+ G3 15720651 0.000000 1.062500 4.250000 -2.437500 0
+ G3 15720651 0.000000 1.062500 2.125000 -2.437500 0
+ G3 15720651 0.000000 1.062500 0.000000 -2.437500 0
+ A3 0 0.041667 1.062500 0.000000 -4.562000 0 0.000000 360.000000
+ A3 0 0.041667 1.062500 2.125000 -4.562000 0 0.000000 360.000000
+ A3 0 0.041667 1.062500 4.250000 -4.562000 0 0.000000 360.000000
+ A3 0 0.041667 1.062500 6.375000 -4.562000 0 0.000000 360.000000
+ A3 0 0.041667 1.062500 0.000500 -2.437500 0 0.000000 360.000000
+ A3 0 0.041667 1.062500 2.125500 -2.437500 0 0.000000 360.000000
+ A3 0 0.041667 1.062500 4.250500 -2.437500 0 0.000000 360.000000
+ A3 0 0.041667 1.062500 6.375500 -2.437500 0 0.000000 360.000000
+ L3 0 0.041667 6.375500 -1.375000 0 6.375500 1.375000 0
+ L3 0 0.041667 6.375500 1.375000 0 0.000500 1.375000 0
+ L3 0 0.041667 0.000500 1.375000 0 0.000500 -1.375000 0
+ L3 0 0.041667 -1.312500 -5.250000 0 -0.812500 -5.250000 0
+ L3 0 0.041667 -1.312500 -3.875000 0 -0.812500 -3.875000 0
+ L3 0 0.041667 -1.312500 -3.875000 0 -1.312500 -5.250000 0
+ L3 0 0.041667 -1.312500 -3.125000 0 -0.812500 -3.125000 0
+ L3 0 0.041667 -1.312500 -1.750000 0 -0.812500 -1.750000 0
+ L3 0 0.041667 -1.312500 -1.750000 0 -1.312504 -3.125000 0
+ L3 0 0.041667 7.687515 -5.249994 0 7.187515 -5.249992 0
+ L3 0 0.041667 7.687530 -3.874994 0 7.187530 -3.874992 0
+ L3 0 0.041667 7.687516 -3.874994 0 7.687508 -5.249994 0
+ L3 0 0.041667 7.687513 -3.124994 0 7.187513 -3.124992 0
+ L3 0 0.041667 7.687528 -1.749994 0 7.187528 -1.749992 0
+ L3 0 0.041667 7.687514 -1.749994 0 7.687513 -3.124994 0
+ L3 0 0.041667 -1.062500 -3.125000 0 -1.062500 -1.750000 0
+ L3 0 0.041667 -1.062500 -3.875000 0 -1.062500 -5.250000 0
+ L3 0 0.041667 7.437500 -3.875000 0 7.437500 -5.250000 0
+ L3 0 0.041667 7.437500 -3.125000 0 7.437500 -1.750000 0
+ L3 0 0.041667 2.937500 -1.625000 0 3.437500 -1.625000 0
+ L3 0 0.041667 3.437500 -1.625000 0 3.437500 -1.125000 0
+ L3 0 0.041667 3.437500 -1.125000 0 2.937500 -1.125000 0
+ L3 0 0.041667 2.937500 -1.125000 0 2.937500 -1.625000 0
+ G3 15720651 0.000000 0.000000 6.312500 -2.437500 0
+ F3 12632256 0.000000 4
+ -0.625000 -1.687500 0
+ 7.000000 -1.687500 0
+ 7.000000 -5.312500 0
+ -0.625000 -5.312500 0
+ L3 0 0.041667 -0.625000 -1.687500 0 7.000000 -1.687500 0
+ L3 0 0.041667 7.000000 -1.687500 0 7.000000 -5.312500 0
+ L3 0 0.041667 7.000000 -5.312500 0 -0.625000 -5.312500 0
+ L3 0 0.041667 -0.625000 -5.312500 0 -0.625000 -1.687500 0
+ F3 13092749 0.000000 4
+ -0.500000 -5.187500 0
+ 0.625000 -5.187500 0
+ 0.625000 -4.062500 0
+ -0.500000 -4.062500 0
+ L3 0 0.041667 -0.500000 -5.187500 0 0.625000 -5.187500 0
+ L3 0 0.041667 0.625000 -5.187500 0 0.625000 -4.062500 0
+ L3 0 0.041667 0.625000 -4.062500 0 -0.500000 -4.062500 0
+ L3 0 0.041667 -0.500000 -4.062500 0 -0.500000 -5.187500 0
+ L3 0 0.041667 -0.500000 -4.062500 0 0.625000 -5.187500 0
+ L3 0 0.041667 0.625000 -4.062500 0 -0.500000 -5.187500 0
+ F3 13092749 0.000000 4
+ 2.937500 -1.125000 0
+ 2.750000 -1.125000 0
+ 2.750000 -2.625000 0
+ 2.937500 -2.625000 0
+ L3 0 0.041667 2.937500 -1.125000 0 2.750000 -1.125000 0
+ L3 0 0.041667 2.750000 -1.125000 0 2.750000 -2.625000 0
+ L3 0 0.041667 2.750000 -2.625000 0 2.937500 -2.625000 0
+ L3 0 0.041667 2.937500 -2.625000 0 2.937500 -1.125000 0
+ L3 0 0.020833 0.687500 1.375000 0 0.687500 -1.625000 0
+ L3 0 0.020833 1.687500 1.375000 0 1.687500 -1.437500 0
+ L3 0 0.020833 2.687500 1.375000 0 2.687500 -1.500000 0
+ L3 0 0.020833 3.687500 1.375000 0 3.687500 -1.500000 0
+ L3 0 0.020833 4.687500 1.375000 0 4.687500 -1.437500 0
+ L3 0 0.020833 5.687500 1.375000 0 5.687500 -1.625000 0
+ L3 0 0.020833 1.187500 1.375000 0 1.187500 -0.875000 0
+ L3 0 0.020833 2.187500 1.375000 0 2.187500 -0.875000 0
+ L3 0 0.020833 3.187500 1.375000 0 3.187500 -0.875000 0
+ L3 0 0.020833 4.187500 1.375000 0 4.187500 -0.875000 0
+ L3 0 0.020833 5.187500 1.375000 0 5.187500 -0.875000 0
+ L3 0 0.020833 6.062500 1.375000 0 6.062500 -0.875000 0
+ L3 0 0.020833 0.312500 1.375000 0 0.312500 -0.875000 0
+ F3 13092749 0.000000 4
+ 1.687500 -2.125000 0
+ 4.687500 -2.125000 0
+ 4.687500 -2.875000 0
+ 1.687500 -2.875000 0
+ F3 13092749 0.000000 4
+ 1.687500 -3.000000 0
+ 1.687500 -3.000000 0
+ 1.687500 -3.125000 0
+ 1.687500 -3.125000 0
+ F3 13092749 0.000000 4
+ 1.687500 -3.125000 0
+ 1.687500 -3.125000 0
+ 1.687500 -3.125000 0
+ 1.687500 -3.125000 0
+ F3 13092749 0.000000 4
+ 1.687500 -3.125000 0
+ 4.687500 -3.125000 0
+ 4.687500 -3.875000 0
+ 1.687500 -3.875000 0
+ F3 13092749 0.000000 4
+ 1.687500 -3.875000 0
+ 4.687500 -3.875000 0
+ 4.687500 -5.187500 0
+ 1.687500 -5.187500 0
+ L3 0 0.041667 1.687500 -2.125000 0 4.687500 -2.125000 0
+ L3 0 0.041667 4.687500 -2.125000 0 4.687500 -2.875000 0
+ L3 0 0.041667 4.687500 -2.875000 0 1.687500 -2.875000 0
+ L3 0 0.041667 1.687500 -2.875000 0 1.687500 -2.125000 0
+ L3 0 0.041667 1.687500 -3.125000 0 4.687500 -3.125000 0
+ L3 0 0.041667 4.687500 -3.125000 0 4.687500 -3.875000 0
+ L3 0 0.041667 4.687500 -3.875000 0 1.687500 -3.875000 0
+ L3 0 0.041667 1.687500 -3.875000 0 1.687500 -3.125000 0
+ L3 0 0.041667 1.687500 -3.875000 0 4.687500 -3.875000 0
+ L3 0 0.041667 4.687500 -3.875000 0 4.687500 -5.187500 0
+ L3 0 0.041667 4.687500 -5.187500 0 1.687500 -5.187500 0
+ L3 0 0.041667 1.687500 -5.187500 0 1.687500 -3.875000 0
+ L3 0 0.041667 1.687500 -2.125000 0 4.687500 -2.875000 0
+ L3 0 0.041667 4.687500 -2.125000 0 1.687500 -2.875000 0
+ L3 0 0.041667 1.687500 -3.125000 0 4.687500 -3.875000 0
+ L3 0 0.041667 4.687500 -3.125000 0 1.687500 -3.875000 0
+ L3 0 0.041667 1.750000 -3.875000 0 1.750000 -3.875000 0
+ END
+STRUCTURE HO "Walthers Cornerstone Valley Cement Plant 933-3098"
+#Created by Howard Hayes
+ G3 8029321 0.000000 1.050000 1.514583 4.014583 0
+ G3 8029321 0.000000 1.050000 5.714583 4.014583 0
+ G3 8029321 0.000000 1.050000 3.614583 4.014583 0
+ G3 8029321 0.000000 1.050000 7.814583 4.014583 0
+ L3 0 0.125000 8.062500 2.062500 0 1.062500 2.062500 0
+ L3 0 0.000000 8.062500 1.062500 0 1.062500 1.062500 0
+ F3 12632256 0.000000 4
+ 1.114583 0.114583 0
+ 8.114583 0.114583 0
+ 8.114583 3.114583 0
+ 1.114583 3.114583 0
+ F3 12632256 0.000000 4
+ 0.114583 23.114583 0
+ 8.114583 23.114583 0
+ 8.114583 18.114583 0
+ 0.114583 18.114583 0
+ F3 12632256 0.000000 4
+ 1.114583 18.114583 0
+ 2.114583 18.114583 0
+ 2.114583 7.114583 0
+ 1.114583 7.114583 0
+ F3 0 0.000000 4
+ 28.114583 21.114583 0
+ 39.114583 21.114583 0
+ 39.114583 14.114583 0
+ 28.114583 14.114583 0
+ F3 12632256 0.000000 4
+ 20.114583 17.114583 0
+ 26.114583 17.114583 0
+ 26.114583 22.114583 0
+ 20.114583 22.114583 0
+ L3 8029321 0.125000 20.062500 22.062500 0 26.062500 22.062500 0
+ F3 8388608 0.000000 4
+ 9.114583 23.114583 0
+ 12.114583 23.114583 0
+ 12.114583 20.114583 0
+ 9.114583 20.114583 0
+ L3 255 0.000000 0.114583 0.114583 0 0.114583 0.114583 0
+ L3 255 0.000000 0.114583 0.114583 0 0.114583 0.114583 0
+ L3 255 0.000000 0.114583 0.114583 0 0.114583 0.114583 0
+ L3 255 0.000000 0.114583 0.114583 0 0.114583 0.114583 0
+ F3 0 0.000000 4
+ 0.114583 7.114583 0
+ 0.114583 7.114583 0
+ 0.114583 6.114583 0
+ 0.114583 6.114583 0
+ G3 8029321 0.000000 1.050000 3.614583 6.114583 0
+ G3 8029321 0.000000 1.050000 1.514583 6.114583 0
+ G3 8029321 0.000000 1.050000 5.714583 6.114583 0
+ G3 8029321 0.000000 1.050000 7.824583 6.114583 0
+ F3 0 0.000000 4
+ 0.114583 3.114583 0
+ 0.114583 3.114583 0
+ 0.114583 3.114583 0
+ 0.114583 3.114583 0
+ F3 0 0.000000 4
+ 0.114583 7.114583 0
+ 0.114583 7.114583 0
+ 0.114583 8.114583 0
+ 0.114583 8.114583 0
+ F3 0 0.000000 4
+ 8.114583 18.114583 0
+ 20.114583 18.114583 0
+ 20.114583 20.114583 0
+ 8.114583 20.114583 0
+ F3 12632256 0.000000 4
+ 27.114583 15.114583 0
+ 40.114583 15.114583 0
+ 40.114583 16.114583 0
+ 27.114583 16.114583 0
+ F3 12632256 0.000000 4
+ 27.114583 17.114583 0
+ 40.114583 17.114583 0
+ 40.114583 18.114583 0
+ 27.114583 18.114583 0
+ F3 12632256 0.000000 4
+ 27.114583 20.114583 0
+ 40.114583 20.114583 0
+ 40.114583 19.114583 0
+ 27.114583 19.114583 0
+ F3 0 0.000000 4
+ 27.114583 20.114583 0
+ 26.114583 20.114583 0
+ 26.114583 19.114583 0
+ 27.114583 19.114583 0
+ G3 16777215 0.000000 1.000000 10.614583 21.614583 0
+ F3 8029321 0.000000 4
+ 1.062500 6.062500 0
+ 8.062500 6.062500 0
+ 8.062500 4.062500 0
+ 1.062500 4.062500 0
+ L3 0 0.000000 9.062500 3.062500 0 9.062500 3.062500 0
+ L3 0 0.000000 9.062500 3.062500 0 9.062500 3.062500 0
+ L3 0 0.000000 9.062500 3.062500 0 9.062500 3.062500 0
+ L3 0 0.000000 9.062500 3.062500 0 9.062500 3.062500 0
+ L3 0 0.125000 1.062500 3.062500 0 8.062500 3.062500 0
+ L3 0 0.125000 8.062500 3.062500 0 8.062500 2.062500 0
+ L3 0 0.125000 1.062500 2.062500 0 1.062500 3.062500 0
+ L3 0 0.125000 1.062500 1.062500 0 1.062500 2.062500 0
+ L3 0 0.125000 1.062500 1.062500 0 8.062500 1.062500 0
+ L3 0 0.125000 8.062500 1.062500 0 8.062500 0.062500 0
+ L3 0 0.125000 8.062500 0.062500 0 1.062500 0.062500 0
+ L3 0 0.125000 1.062500 0.062500 0 1.062500 1.062500 0
+ L3 8029321 0.125000 1.062500 6.062500 0 1.062500 18.062500 0
+ L3 8029321 0.125000 1.062500 18.062500 0 20.062500 18.062500 0
+ L3 8029321 0.125000 1.062500 18.062500 0 0.062500 18.062500 0
+ L3 8029321 0.125000 0.062500 18.062500 0 0.062500 23.062500 0
+ L3 8029321 0.125000 0.062500 23.062500 0 8.062500 23.062500 0
+ L3 8029321 0.125000 8.062500 23.062500 0 8.062500 18.062500 0
+ L3 8029321 0.125000 8.062500 20.062500 0 20.062500 20.062500 0
+ L3 8029321 0.125000 20.062500 18.062500 0 20.062500 22.062500 0
+ L3 8029321 0.125000 26.062500 22.062500 0 26.062500 19.062500 0
+ L3 8029321 0.125000 26.062500 19.062500 0 26.062500 17.062500 0
+ L3 8029321 0.125000 20.062500 17.062500 0 26.062500 17.062500 0
+ L3 8029321 0.125000 20.062500 18.062500 0 20.062500 17.062500 0
+ L3 0 0.000000 20.062500 20.062500 0 19.062500 18.062500 0
+ L3 8029321 0.125000 2.062500 6.062500 0 2.062500 18.062500 0
+ Z 0 11.375000 16.625000 0.000000 0 64.000000 "Drying Cylinder"
+ L3 0 0.125000 1.062500 2.062500 0 8.062500 2.062500 0
+ L3 0 0.125000 8.062500 2.062500 0 8.062500 1.062500 0
+ Z 0 3.712100 7.712100 0.000000 0 64.000000 "Silos"
+ Z 0 8.712100 2.712100 0.000000 0 64.000000 "Loading Facility"
+ Z 0 2.712100 16.712100 0.000000 0 64.000000 "Crusher"
+ Z 0 20.712100 15.712100 0.000000 0 64.000000 "Kiln Building"
+ Z 0 2.712101 11.712100 0.000000 0 64.000000 "Conveyor"
+ Z 0 29.712100 12.712100 0.000000 0 64.000000 "Bulk Storage Building"
+ Z 0 12.712100 21.712100 0.000000 0 64.000000 "Smoke Stack"
+ END
+
+
+SUBCONTENTS Walthers Cornerstone HO Structures - Oil Industries
+STRUCTURE HO "Walthers Cornerstone Structures Walking Beam/"Horse Head" Oil Pump 933-3248"
+ L3 0 0.000000 0.000000 0.000000 0 5.051665 0.000000 0
+ L3 0 0.000000 5.051665 0.000000 0 5.051665 1.836969 0
+ L3 0 0.000000 5.051665 1.836969 0 0.000000 1.836969 0
+ L3 0 0.000000 0.000000 1.836969 0 0.000000 0.000000 0
+ F3 0 0.000000 4
+ 4.994259 1.377727 0
+ 4.994259 1.377727 0
+ 4.994259 1.377727 0
+ 4.994259 1.377727 0
+ F3 0 0.000000 4
+ 3.673938 1.377727 0
+ 4.592422 1.377727 0
+ 4.592422 0.459242 0
+ 3.673938 0.459242 0
+ F3 0 0.000000 4
+ 0.459242 1.033295 0
+ 3.185993 1.033295 0
+ 3.185993 0.803674 0
+ 0.459242 0.803674 0
+ F3 0 0.000000 4
+ 3.214696 1.377727 0
+ 3.444317 1.377727 0
+ 3.444317 0.459242 0
+ 3.214696 0.459242 0
+ F3 0 0.000000 4
+ 3.444317 1.234214 0
+ 3.645235 1.234214 0
+ 3.645235 1.176808 0
+ 3.444317 1.176808 0
+ F3 0 0.000000 4
+ 3.415614 0.574053 0
+ 3.645235 0.574053 0
+ 3.645235 0.631458 0
+ 3.415614 0.631458 0
+ END
+STRUCTURE HO "Walthers North Island Refinery 933-3013"
+ L 16711935 0 0.000000 0.000000 0.000000 8.250000
+ L 16711935 0 0.000000 8.250000 13.500000 8.250000
+ L 16711935 0 13.500000 8.250000 13.500000 0.000000
+ L 16711935 0 13.500000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Interstate Fuel & Oil, Loading Rack 933-3006a"
+ L 16711935 0 0.000000 0.000000 0.000000 5.750000
+ L 16711935 0 0.000000 5.750000 7.000000 5.750000
+ L 16711935 0 7.000000 5.750000 7.000000 0.000000
+ L 16711935 0 7.000000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Interstate Fuel & Oil, Office 933-3006b"
+ L 16711935 0 0.000000 0.000000 0.000000 5.750000
+ L 16711935 0 0.000000 5.750000 4.500000 5.750000
+ L 16711935 0 4.500000 5.750000 4.500000 0.000000
+ L 16711935 0 4.500000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Interstate Fuel & Oil, Tanks 933-3006c"
+ L 16711935 0 0.000000 0.000000 0.000000 4.000000
+ L 16711935 0 0.000000 4.000000 2.000000 4.000000
+ L 16711935 0 2.000000 4.000000 2.000000 0.000000
+ L 16711935 0 2.000000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Interstate Fuel & Oil, Shed 933-3006d"
+ L 16711935 0 0.000000 0.000000 0.000000 1.250000
+ L 16711935 0 0.000000 1.250000 1.500000 1.250000
+ L 16711935 0 1.500000 1.250000 1.500000 0.000000
+ L 16711935 0 1.500000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Interstate Fuel - Loading Rack 933-32000a"
+ L 0 0 1.377727 0.000000 6.888634 0.000000
+ L 0 0 6.888634 0.000000 6.888634 5.740528
+ L 0 0 6.888634 5.740528 1.377727 5.740528
+ L 0 0 6.773823 0.114811 3.099885 0.114811
+ L 0 0 3.099885 0.114811 3.099885 1.492537
+ L 0 0 3.099885 1.492537 6.773823 1.492537
+ L 0 0 6.773823 1.492537 6.773823 0.114811
+ L 0 0 6.773823 5.625718 3.099885 5.625718
+ L 0 0 3.099885 5.625718 3.099885 4.247991
+ L 0 0 3.099885 4.247991 6.773823 4.247991
+ L 0 0 6.773823 4.247991 6.773823 5.625718
+ L 0 0 6.773823 2.181401 3.099885 2.181401
+ L 0 0 3.099885 2.181401 3.099885 3.559128
+ L 0 0 3.099885 3.559128 6.773823 3.559128
+ L 0 0 6.773823 3.559128 6.773823 2.181401
+ A 0 0 0.162366 5.510907 4.936854 0.000000 360.000000
+ A 0 0 0.162366 5.510907 2.870264 0.000000 360.000000
+ A 0 0 0.162366 5.510907 0.803674 0.000000 360.000000
+ L 0 0 1.377727 5.281286 0.000000 5.281286
+ L 0 0 0.000000 5.281286 0.000000 0.459242
+ L 0 0 0.000000 0.459242 1.377727 0.459242
+ L 0 0 2.755454 4.018370 0.803674 4.018370
+ L 0 0 0.803674 4.018370 0.803674 1.722158
+ L 0 0 0.803674 1.722158 2.755454 1.722158
+ L 0 0 2.755454 1.722158 2.755454 4.018370
+ L 0 0 1.377727 5.740528 1.377727 4.018370
+ L 0 0 1.377727 0.000000 1.377727 1.722158
+ END
+STRUCTURE HO "Walthers Interstate Fuel - Office 933-3200b"
+ L 0 0 0.000000 5.510907 3.673938 5.510907
+ L 0 0 3.673938 5.510907 3.673938 0.918485
+ L 0 0 3.673938 0.918485 0.000000 0.918485
+ L 0 0 0.000000 0.918485 0.000000 5.510907
+ L 0 0 3.673938 4.133180 4.592422 4.133180
+ L 0 0 4.592422 4.133180 4.592422 0.000000
+ L 0 0 4.592422 0.000000 0.688863 0.000000
+ L 0 0 0.688863 0.000000 0.688863 0.918485
+ A 0 0 0.162366 1.836969 4.362802 0.000000 360.000000
+ A 0 0 0.162366 1.836969 2.066590 0.000000 360.000000
+ END
+STRUCTURE HO "Walthers Interstate Fuel - Shed 933-3200c"
+ L 0 0 0.000000 0.000000 1.836969 0.000000
+ L 0 0 1.836969 0.000000 1.836969 1.148106
+ L 0 0 1.836969 1.148106 0.000000 1.148106
+ L 0 0 0.000000 1.148106 0.000000 0.000000
+ L 0 0 0.000000 0.574053 1.836969 0.574053
+ END
+STRUCTURE HO "Walthers Interstate Fuel - Tanks 933-3200d"
+ L 0 0 1.836969 3.788749 1.836969 2.066590
+ L 0 0 0.114811 0.000000 1.722158 0.000000
+ L 0 0 0.000000 0.114811 0.114811 0.000000
+ L 0 0 1.836969 0.114811 1.722158 0.000000
+ L 0 0 1.836969 0.114811 1.836969 1.836969
+ L 0 0 0.000000 1.836969 0.000000 0.114811
+ L 0 0 0.000000 3.788749 0.000000 2.066590
+ L 0 0 0.000000 2.066590 0.114811 1.951780
+ L 0 0 0.114811 1.951780 0.000000 1.836969
+ L 0 0 1.836969 1.836969 1.722158 1.951780
+ L 0 0 1.722158 1.951780 1.836969 2.066590
+ L 0 0 0.114811 3.903559 1.722158 3.903559
+ L 0 0 1.722158 3.903559 1.836969 3.788749
+ L 0 0 0.114811 3.903559 0.000000 3.788749
+ A 0 0 0.835834 0.918485 0.918485 0.000000 360.000000
+ A 0 0 0.803674 0.918485 2.985075 0.000000 360.000000
+ END
+STRUCTURE HO "Walthers Cornerstone McGraw Oil Company 933-3170"
+#Created by Howard Hayes
+ F3 12632256 0.000000 4
+ 0.000000 6.500000 0
+ 6.500000 6.500000 0
+ 6.500000 0.000000 0
+ 0.000000 0.000000 0
+ F3 8029321 0.000000 4
+ 0.250000 6.250000 0
+ 6.250000 6.250000 0
+ 6.250000 0.250000 0
+ 0.250000 0.250000 0
+ G3 12632256 0.000000 1.118034 2.000000 4.500000 0
+ G3 12632256 0.000000 1.118034 1.995891 1.995891 0
+ G3 12632256 0.000000 1.118034 4.495891 4.495891 0
+ G3 12632256 0.000000 1.118034 4.495891 1.995891 0
+ F3 0 0.000000 4
+ 2.750000 2.000000 0
+ 3.750000 2.000000 0
+ 3.750000 1.750000 0
+ 2.750000 1.750000 0
+ F3 0 0.000000 4
+ 2.750000 4.500000 0
+ 3.750000 4.500000 0
+ 3.750000 4.250000 0
+ 2.750000 4.250000 0
+ F3 0 0.000000 4
+ 2.000000 3.750000 0
+ 2.250000 3.750000 0
+ 2.250000 2.750000 0
+ 2.000000 2.750000 0
+ F3 0 0.000000 4
+ 8.125000 6.875000 0
+ 8.125000 6.875000 0
+ 8.125000 7.000000 0
+ 8.125000 7.000000 0
+ F3 0 0.000000 4
+ 9.875000 6.375000 0
+ 7.625000 6.375000 0
+ 7.625000 4.125000 0
+ 9.875000 4.125000 0
+ F3 0 0.000000 4
+ 7.625000 4.125000 0
+ 8.000000 4.125000 0
+ 8.000000 3.750000 0
+ 7.625000 3.750000 0
+ F3 0 0.000000 4
+ 9.875000 0.875000 0
+ 7.500000 0.875000 0
+ 7.500000 3.125000 0
+ 9.875000 3.125000 0
+ F3 0 0.000000 4
+ 7.500000 3.125000 0
+ 7.875000 3.125000 0
+ 7.875000 3.500000 0
+ 7.500000 3.500000 0
+ F3 0 0.000000 4
+ 8.625000 0.875000 0
+ 8.625000 0.875000 0
+ 8.625000 0.875000 0
+ 8.625000 0.875000 0
+ F3 0 0.000000 4
+ 8.625000 0.750000 0
+ 9.000000 0.750000 0
+ 9.000000 0.875000 0
+ 8.625000 0.875000 0
+ L3 0 0.000000 7.625000 6.375000 0 9.875000 6.375000 0
+ L3 0 0.000000 9.875000 6.375000 0 9.875000 5.250000 0
+ L3 16777215 0.000000 9.875000 5.250000 0 7.625000 5.250000 0
+ L3 0 0.000000 7.625000 5.250000 0 7.625000 6.375000 0
+ L3 16777215 0.000000 9.899600 5.274600 0 7.649600 5.274600 0
+ L3 16777215 0.000000 9.875000 6.375000 0 9.875000 4.500000 0
+ L3 16777215 0.000000 9.625000 6.375000 0 9.625000 4.000000 0
+ L3 16777215 0.000000 9.399600 6.399600 0 9.399600 4.024600 0
+ L3 16777215 0.000000 9.149600 6.399600 0 9.149600 4.024600 0
+ L3 16777215 0.000000 8.899600 6.399600 0 8.899600 4.024600 0
+ L3 16777215 0.000000 8.649600 6.399600 0 8.649600 4.024600 0
+ L3 16777215 0.000000 8.399600 6.399600 0 8.399600 4.024600 0
+ L3 16777215 0.000000 8.149600 6.399600 0 8.149600 4.024600 0
+ L3 16777215 0.000000 7.625000 6.375000 0 7.625000 3.625000 0
+ L3 16777215 0.000000 7.875000 6.375000 0 7.875000 3.750000 0
+ L3 16777215 0.000000 9.625000 3.875000 0 9.625000 0.750000 0
+ L3 16777215 0.000000 9.399600 4.024600 0 9.399600 0.899600 0
+ L3 16777215 0.000000 9.149600 4.024600 0 9.149600 0.899600 0
+ L3 16777215 0.000000 8.899600 4.024600 0 8.899600 0.899600 0
+ L3 16777215 0.000000 8.649600 4.024600 0 8.649600 0.899600 0
+ L3 16777215 0.000000 8.399600 4.024600 0 8.399600 0.899600 0
+ L3 16777215 0.000000 8.149600 4.024600 0 8.149600 0.899600 0
+ L3 16777215 0.000000 7.649600 3.649600 0 7.649600 0.524600 0
+ L3 16777215 0.000000 7.899600 3.649600 0 7.899600 0.524600 0
+ L3 16777215 0.000000 7.500000 2.125000 0 9.875000 2.125000 0
+ L3 16777215 0.000000 7.524600 2.149600 0 9.899600 2.149600 0
+ END
+
+
+SUBCONTENTS Walthers Cornerstone HO Structures - Steel Industries
+STRUCTURE HO "Walthers Blast Furnace 933-3054"
+ L 0 0.000000 0.000000 0.041667 12.666667 0.041667
+ L 0 0.000000 12.666667 0.041667 12.666667 11.791667
+ L 0 0.000000 12.666667 11.791667 0.000000 11.791667
+ L 0 0.000000 0.000000 11.791667 0.000000 0.041667
+ L 0 0.000000 -0.041667 6.208334 12.625000 6.208334
+ L 0 0.000000 12.625000 6.208334 12.625000 5.375000
+ L 0 0.000000 12.625000 5.375000 -0.041667 5.375000
+ L 0 0.000000 -0.041667 5.375000 -0.041667 6.208334
+ END
+
+
+SUBCONTENTS Walthers Cornerstone HO Structures - Trackside Industries
+STRUCTURE HO "Walthers R.J. Frost Ice & Storage 933-3020"
+ L 0 0.000000 0.000000 0.000000 11.000000 0.000000
+ L 0 0.000000 11.000000 0.000000 11.000000 11.000000
+ L 0 0.000000 11.000000 11.000000 0.000000 11.000000
+ L 0 0.000000 0.000000 11.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Brook Hill Farm Dairy 933-3010"
+ L 16711935 0 0.000000 0.000000 0.000000 7.250000
+ L 16711935 0 0.000000 7.250000 7.375000 7.250000
+ L 16711935 0 7.375000 7.250000 7.375000 0.000000
+ L 16711935 0 7.375000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Golden Valley Canning Co, Main Bldg 933-3018a"
+ L 16711935 0 0.000000 0.000000 0.000000 8.000000
+ L 16711935 0 0.000000 8.000000 10.500000 8.000000
+ L 16711935 0 10.500000 8.000000 10.500000 0.000000
+ L 16711935 0 10.500000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Golden Valley Canning Co, Boiler House 933-3018b"
+ L 16711935 0 0.000000 0.000000 0.000000 3.000000
+ L 16711935 0 0.000000 3.000000 4.750000 3.000000
+ L 16711935 0 4.750000 3.000000 4.750000 0.000000
+ L 16711935 0 4.750000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers United Trucking Transfer Terminal 933-3005"
+ L 16711935 0 0.000000 0.000000 0.000000 6.000000
+ L 16711935 0 0.000000 6.000000 2.625000 6.000000
+ L 16711935 0 2.625000 6.000000 2.625000 0.000000
+ L 16711935 0 2.625000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Hardwood Furniture Co 933-3044"
+ L 16711935 0 0.000000 0.000000 0.000000 10.625000
+ L 16711935 0 0.000000 10.625000 11.875000 10.625000
+ L 16711935 0 11.875000 10.625000 11.875000 0.000000
+ L 16711935 0 11.875000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Geo. Roberts Printing Inc 933-3046"
+ L 16711935 0 0.000000 0.000000 0.000000 7.500000
+ L 16711935 0 0.000000 7.500000 12.750000 7.500000
+ L 16711935 0 12.750000 7.500000 12.750000 0.000000
+ L 16711935 0 12.750000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Water St Freight Terminal 933-3009"
+ L 16711935 0 0.000000 0.000000 0.000000 6.250000
+ L 16711935 0 0.000000 6.250000 20.500000 6.250000
+ L 16711935 0 20.500000 6.250000 20.500000 0.000000
+ L 16711935 0 20.500000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Vulcan Mfg Co, Main Bldg 933-3045a"
+ L 0 0.000000 0.000000 0.000000 9.250000 0.000000
+ L 0 0.000000 9.250000 0.000000 9.250000 8.500000
+ L 0 0.000000 9.250000 8.500000 0.000000 8.500000
+ L 0 0.000000 0.000000 8.500000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Vulcan Mfg Co, Crane Canopy 933-3045"
+ L 0 0.000000 0.000000 0.000000 9.125000 0.000000
+ L 0 0.000000 9.125000 0.000000 9.125000 8.375000
+ L 0 0.000000 9.125000 8.375000 0.000000 8.375000
+ L 0 0.000000 0.000000 8.375000 0.000000 0.000000
+ END
+STRUCTURE HO "Walther Champion Packing Co. 933-3048"
+ L 0 0.000000 0.000000 1.250000 16.375000 1.250000
+ L 0 0.000000 16.375000 1.250000 16.375000 4.750000
+ L 0 0.000000 10.625000 1.250000 10.625000 7.250000
+ L 0 0.000000 16.375000 4.750000 10.562500 4.750000
+ L 0 0.000000 16.375000 4.750000 16.375000 5.250000
+ L 0 0.000000 16.375000 5.250000 17.000000 5.250000
+ L 0 0.000000 17.000000 5.250000 17.000000 0.000000
+ L 0 0.000000 17.000000 0.000000 0.500000 0.000000
+ L 0 0.000000 0.500000 0.000000 0.500000 1.250000
+ L 0 0.000000 0.000000 1.250000 0.000000 7.250000
+ L 0 0.000000 0.000000 7.250000 11.500000 7.250000
+ L 0 0.000000 11.500000 7.250000 11.500000 8.500000
+ L 0 0.000000 11.500000 8.500000 0.000000 8.500000
+ L 0 0.000000 0.000000 8.500000 0.000000 7.250000
+ A 0 0.000000 0.951972 12.750000 6.250000 0.000000 360.000000
+ END
+STRUCTURE HO "Walthers Stockyard 933-3047"
+ L 0 0.000000 0.000000 0.000000 12.500000 0.000000
+ L 0 0.000000 12.500000 0.000000 12.500000 7.250000
+ L 0 0.000000 12.500000 7.250000 13.000000 7.250000
+ L 0 0.000000 13.000000 7.250000 13.000000 8.000000
+ L 0 0.000000 13.000000 8.000000 11.000000 8.000000
+ L 0 0.000000 11.000000 8.000000 11.000000 7.625000
+ L 0 0.000000 11.000000 7.625000 10.500000 7.625000
+ L 0 0.000000 10.500000 7.625000 10.500000 7.250000
+ L 0 0.000000 10.500000 7.250000 6.000000 7.250000
+ L 0 0.000000 6.500000 7.250000 6.500000 8.000000
+ L 0 0.000000 6.500000 8.000000 4.500000 8.000000
+ L 0 0.000000 4.500000 8.000000 4.500000 7.687500
+ L 0 0.000000 4.500000 7.687500 4.000000 7.687500
+ L 0 0.000000 4.000000 7.687500 4.000000 7.250000
+ L 0 0.000000 4.000000 7.250000 0.000000 7.250000
+ L 0 0.000000 0.000000 7.250000 0.000000 0.000000
+ L 0 0.000000 6.000000 7.250000 6.000000 -0.062500
+ END
+STRUCTURE HO "Walthers Ice House and Platform 933-3049"
+ L 0 0.000000 2.000000 0.000000 18.500000 0.000000
+ L 0 0.000000 18.500000 0.000000 18.500000 1.500000
+ L 0 0.000000 18.500000 1.500000 2.000000 1.500000
+ L 0 0.000000 2.000000 1.500000 2.000000 0.000000
+ L 0 0.000000 2.125000 0.125000 18.375000 0.125000
+ L 0 0.000000 18.375000 0.125000 18.375000 1.375000
+ L 0 0.000000 18.375000 1.375000 2.125000 1.375000
+ L 0 0.000000 2.125000 1.375000 2.125000 0.125000
+ L 0 0.000000 2.000000 0.562500 0.000000 0.562500
+ L 0 0.000000 2.000000 0.937500 0.000000 0.937500
+ L 0 0.000000 0.000000 0.937500 0.000000 0.562500
+ L 0 0.000000 4.875000 1.625000 15.625000 1.625000
+ L 0 0.000000 15.625000 1.625000 15.625000 6.375000
+ L 0 0.000000 15.625000 6.375000 4.875000 6.375000
+ L 0 0.000000 4.875000 6.375000 4.875000 1.625000
+ END
+STRUCTURE HO "Walthers Overhead Traveling Crane 933-3102"
+ L 0 0.000000 0.000000 8.625000 0.125000 8.625000
+ L 0 0.000000 0.125000 8.625000 0.125000 7.125000
+ L 0 0.000000 0.125000 7.125000 0.000000 7.125000
+ L 0 0.000000 0.000000 7.125000 0.000000 8.625000
+ L 0 0.000000 12.187500 8.625000 12.062500 8.625000
+ L 0 0.000000 12.062500 8.625000 12.062500 7.125000
+ L 0 0.000000 12.062500 7.125000 12.187500 7.125000
+ L 0 0.000000 12.187500 7.125000 12.187500 8.625000
+ L 0 0.000000 12.187500 0.000000 12.062500 0.000000
+ L 0 0.000000 12.062500 0.000000 12.062500 1.500000
+ L 0 0.000000 12.062500 1.500000 12.187500 1.500000
+ L 0 0.000000 12.187500 1.500000 12.187500 0.000000
+ L 0 0.000000 0.000000 0.000000 0.125000 0.000000
+ L 0 0.000000 0.125000 0.000000 0.125000 1.500000
+ L 0 0.000000 0.125000 1.500000 0.000000 1.500000
+ L 0 0.000000 0.000000 1.500000 0.000000 0.000000
+ L 0 0.000000 0.000000 1.500000 12.187500 1.500000
+ L 0 0.000000 12.187500 1.500000 12.187500 1.625000
+ L 0 0.000000 12.187500 1.625000 0.000000 1.625000
+ L 0 0.000000 0.000000 1.625000 0.000000 1.500000
+ L 0 0.000000 0.000000 7.125000 12.187500 7.125000
+ L 0 0.000000 12.187500 7.125000 12.187500 7.000000
+ L 0 0.000000 12.187500 7.000000 0.000000 7.000000
+ L 0 0.000000 0.000000 7.000000 0.000000 7.125000
+ L 0 0.000000 6.000000 8.625000 6.125000 8.625000
+ L 0 0.000000 6.125000 8.625000 6.125000 7.125000
+ L 0 0.000000 6.125000 7.125000 6.000000 7.125000
+ L 0 0.000000 6.000000 7.125000 6.000000 8.625000
+ L 0 0.000000 6.000000 1.500000 6.125000 1.500000
+ L 0 0.000000 6.125000 1.500000 6.125000 0.000000
+ L 0 0.000000 6.125000 0.000000 6.000000 0.000000
+ L 0 0.000000 6.000000 0.000000 6.000000 1.500000
+ L 0 0.000000 2.937500 8.625000 3.062500 8.625000
+ L 0 0.000000 3.062500 8.625000 3.062500 7.125000
+ L 0 0.000000 3.062500 7.125000 2.937500 7.125000
+ L 0 0.000000 2.937500 7.125000 2.937500 8.625000
+ L 0 0.000000 8.937500 8.625000 9.062500 8.625000
+ L 0 0.000000 9.062500 8.625000 9.062500 7.125000
+ L 0 0.000000 9.062500 7.125000 8.937500 7.125000
+ L 0 0.000000 8.937500 7.125000 8.937500 8.625000
+ L 0 0.000000 2.937500 1.500000 3.062500 1.500000
+ L 0 0.000000 3.062500 1.500000 3.062500 0.000000
+ L 0 0.000000 3.062500 0.000000 2.937500 0.000000
+ L 0 0.000000 2.937500 0.000000 2.937500 1.500000
+ L 0 0.000000 8.937500 1.500000 9.062500 1.500000
+ L 0 0.000000 9.062500 1.500000 9.062500 0.000000
+ L 0 0.000000 9.062500 0.000000 8.937500 0.000000
+ L 0 0.000000 8.937500 0.000000 8.937500 1.500000
+ L 0 0.000000 11.000000 7.125000 11.125000 7.125000
+ L 0 0.000000 11.125000 7.125000 11.125000 1.500000
+ L 0 0.000000 11.125000 1.500000 11.000000 1.500000
+ L 0 0.000000 11.000000 1.500000 11.000000 7.125000
+ L 0 0.000000 10.250000 7.125000 10.375000 7.125000
+ L 0 0.000000 10.375000 7.125000 10.375000 1.500000
+ L 0 0.000000 10.375000 1.500000 10.250000 1.500000
+ L 0 0.000000 10.250000 1.500000 10.250000 7.125000
+ L 0 0.000000 10.062500 5.000000 11.312500 5.000000
+ L 0 0.000000 11.312500 5.000000 11.312500 3.687500
+ L 0 0.000000 11.312500 3.687500 10.062500 3.687500
+ L 0 0.000000 10.062500 3.687500 10.062500 5.000000
+ L 0 0.000000 10.062500 4.375000 11.312500 4.375000
+ END
+
+
+SUBCONTENTS Walthers Cornerstone HO Structures - Grain Industries
+STRUCTURE HO "Walthers ADM Scalehouse 933-3027a"
+ L 0 0.000000 0.000000 0.000000 5.875000 0.000000
+ L 0 0.000000 5.875000 0.000000 5.875000 3.875000
+ L 0 0.000000 5.875000 3.875000 0.000000 3.875000
+ L 0 0.000000 0.000000 3.875000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers ADM Rail Car Scale 933-3027b"
+ L 0 0.000000 0.000000 0.000000 8.000000 0.000000
+ L 0 0.000000 8.000000 0.000000 8.000000 1.875000
+ L 0 0.000000 8.000000 1.875000 0.000000 1.875000
+ L 0 0.000000 0.000000 1.875000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers ADM Truck Scale 933-3027c"
+ L 0 0.000000 0.000000 0.000000 4.000000 0.000000
+ L 0 0.000000 4.000000 0.000000 4.000000 1.562500
+ L 0 0.000000 4.000000 1.562500 0.000000 1.562500
+ L 0 0.000000 0.000000 1.562500 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Coop Grain Elevator, Main Bldg 933-3036a"
+ L 0 0.000000 0.750000 0.000000 0.750000 7.250000
+ L 0 0.000000 1.750000 0.000000 1.750000 3.375000
+ L 0 0.000000 2.750000 0.000000 2.750000 3.375000
+ L 0 0.000000 3.750000 0.000000 3.750000 3.375000
+ L 0 0.000000 4.750000 0.000000 4.750000 7.250000
+ L 0 0.000000 0.000000 6.250000 8.812500 6.250000
+ L 0 0.000000 8.812500 6.250000 8.812500 4.000000
+ L 0 0.000000 8.812500 4.000000 8.000000 4.000000
+ L 0 0.000000 8.000000 4.000000 8.000000 2.937500
+ L 0 0.000000 8.000000 2.937500 7.687500 2.937500
+ L 0 0.000000 7.687500 3.812500 7.687500 2.562500
+ L 0 0.000000 7.687500 2.562500 5.500000 2.562500
+ L 0 0.000000 5.500000 2.562500 5.500000 4.000000
+ L 0 0.000000 7.687500 3.812500 5.500000 3.812500
+ L 0 0.000000 5.500000 4.000000 0.000000 4.000000
+ L 0 0.000000 0.000000 6.250000 0.000000 4.000000
+ L 0 0.000000 0.750000 0.000000 4.750000 0.000000
+ L 0 0.000000 0.750000 6.562500 4.750000 6.562500
+ L 0 0.000000 1.750000 3.375000 1.750000 4.000000
+ L 0 0.000000 2.750000 3.375000 2.750000 4.000000
+ L 0 0.000000 3.750000 3.312500 3.750000 4.000000
+ END
+STRUCTURE HO "Walthers Coop Grain Elevator, Shed 933-3036b"
+ L 0 0.000000 0.000000 0.000000 7.000000 0.000000
+ L 0 0.000000 7.000000 0.000000 7.000000 4.500000
+ L 0 0.000000 7.000000 4.500000 0.000000 4.500000
+ L 0 0.000000 0.000000 4.500000 0.000000 0.000000
+ L 0 0.000000 0.000000 2.250000 6.937500 2.250000
+ L 0 0.000000 3.250000 2.000000 3.750000 2.000000
+ L 0 0.000000 3.750000 2.000000 3.750000 2.500000
+ L 0 0.000000 3.750000 2.500000 3.250000 2.500000
+ L 0 0.000000 3.250000 2.500000 3.250000 2.000000
+ END
+STRUCTURE HO "Walthers ADM Grain Elevator 933-3022"
+ L 0 0.000000 0.000000 0.000000 13.500000 0.000000
+ L 0 0.000000 13.500000 0.000000 13.500000 9.500000
+ L 0 0.000000 13.500000 9.500000 0.000000 9.500000
+ L 0 0.000000 0.000000 9.500000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers ADM Grain Elevator 933-3225"
+ L 0 0 14.925370 10.792190 6.659013 10.792190
+ L 0 0 14.925370 0.000000 9.184845 0.000000
+ L 0 0 9.184845 0.000000 9.184845 7.692308
+ L 0 0 14.925370 7.692308 6.659013 7.692308
+ L 0 0 6.659013 10.792190 6.659013 7.692308
+ L 0 0 9.184845 2.870264 14.925370 2.870264
+ L 0 0 13.432840 7.692308 13.432840 2.870264
+ L 0 0 10.332950 7.692308 10.332950 2.870264
+ L 0 0 14.925370 6.888634 14.006890 6.888634
+ L 0 0 14.006890 6.888634 14.006890 5.970150
+ L 0 0 14.006890 5.970150 14.925370 5.970150
+ L 0 0 14.006890 4.362802 14.925370 4.362802
+ L 0 0 14.925370 10.792190 14.925370 0.000000
+ A 0 0 0.363062 14.466130 6.429391 0.000000 360.000000
+ A 0 0 0.363062 14.466130 3.903559 0.000000 360.000000
+ L 0 0 14.925370 3.444317 14.006890 3.444317
+ L 0 0 14.006890 4.362802 14.006890 3.444317
+ A 0 0 0.229621 14.466130 6.429391 0.000000 360.000000
+ A 0 0 0.229621 14.466130 3.903559 0.000000 360.000000
+ A 0 0 0.114811 11.825490 6.888634 0.000000 360.000000
+ A 0 0 0.114811 11.825490 5.970150 0.000000 360.000000
+ A 0 0 0.114811 11.825490 4.362802 0.000000 360.000000
+ A 0 0 0.114811 11.825490 3.559128 0.000000 360.000000
+ A 0 0 1.148106 8.036739 6.429391 270.000000 180.000000
+ L 0 0 6.888634 6.429391 6.888634 6.429391
+ A 0 0 1.148106 5.740528 6.429391 270.000000 180.000000
+ A 0 0 1.148106 3.444317 6.429391 270.000000 180.000000
+ A 0 0 1.139042 1.157169 6.429391 246.222684 203.777316
+ A 0 0 1.148106 8.036739 4.133180 90.000000 180.000000
+ A 0 0 1.148106 5.740528 4.133180 90.000000 180.000000
+ A 0 0 1.148106 3.444317 4.133180 90.000000 180.000000
+ A 0 0 1.139042 1.157169 4.133180 90.000000 203.777316
+ L 0 0 9.184845 5.281286 0.114811 5.281286
+ L 0 0 0.114811 5.281286 0.114811 6.199770
+ L 0 0 0.114811 6.199770 9.070035 6.199770
+ L 0 0 0.114811 5.281286 0.114811 4.362802
+ L 0 0 0.114811 4.362802 9.184845 4.362802
+ END
+STRUCTURE HO "Walthers ADM Grain Elevator (concrete) 933-3022"
+ G3 15720651 0.000000 1.148106 1.148106 5.442971 0
+ G3 15720651 0.000000 1.148106 3.444317 5.442971 0
+ G3 15720651 0.000000 1.148106 3.444317 5.442971 0
+ G3 15720651 0.000000 1.148106 5.740528 5.442971 0
+ G3 15720651 0.000000 1.148106 8.036739 5.442971 0
+ G3 15720651 0.000000 1.148106 1.148106 7.739183 0
+ G3 15720651 0.000000 1.148106 3.444317 7.739183 0
+ G3 15720651 0.000000 1.148106 5.740528 7.739183 0
+ G3 15720651 0.000000 1.148106 8.036739 7.739183 0
+ A3 0 0.093750 1.148106 1.148106 5.442971 0 0.000000 360.000000
+ A3 0 0.093750 1.148106 1.148106 7.739183 0 0.000000 360.000000
+ A3 0 0.093750 1.148106 3.444317 5.442971 0 0.000000 360.000000
+ A3 0 0.093750 1.148106 5.740528 5.442971 0 0.000000 360.000000
+ A3 0 0.093750 1.148106 8.036739 5.442971 0 0.000000 360.000000
+ A3 0 0.093750 1.148106 3.444317 7.739183 0 0.000000 360.000000
+ A3 0 0.093750 1.148106 5.740528 7.739183 0 0.000000 360.000000
+ A3 0 0.093750 1.148106 8.036739 7.739183 0 0.000000 360.000000
+ F3 12632256 0.000000 4
+ 1.148106 7.739183 0
+ 9.184845 7.739183 0
+ 9.184845 5.442971 0
+ 1.148106 5.442971 0
+ G3 0 0.000000 0.000000 1.148106 5.442971 0
+ G3 0 0.000000 0.000000 1.148106 7.739183 0
+ L3 0 0.093750 1.148106 7.739183 0 1.148106 5.442971 0
+ L3 0 0.093750 1.148106 5.442971 0 9.184845 5.442971 0
+ L3 0 0.093750 1.148106 6.591077 0 9.184845 6.591077 0
+ L3 0 0.093750 9.184845 7.739183 0 1.148106 7.739183 0
+ F3 12632256 0.000000 4
+ 9.184845 9.231720 0
+ 14.466131 9.231720 0
+ 14.466131 3.950434 0
+ 9.184845 3.950434 0
+ L3 0 0.093750 14.466131 3.950434 0 14.466131 9.231720 0
+ L3 0 0.093750 9.184845 9.231720 0 9.184845 3.950434 0
+ L3 0 0.093750 10.447761 3.950434 0 10.447761 9.231720 0
+ L3 0 0.093750 13.203215 3.950434 0 13.203215 9.231720 0
+ A3 0 0.093750 0.459242 13.826866 5.442971 0 0.000000 360.000000
+ A3 0 0.093750 0.229621 13.826866 5.442971 0 0.000000 360.000000
+ A3 0 0.093750 0.459242 13.826866 7.853993 0 0.000000 360.000000
+ A3 0 0.093750 0.229621 13.826866 7.853993 0 0.000000 360.000000
+ L3 0 0.093750 9.184845 5.442971 0 9.184845 7.739183 0
+ F3 12632256 0.000000 4
+ 9.184845 11.757552 0
+ 14.466131 11.757552 0
+ 14.466131 9.231720 0
+ 9.184845 9.231720 0
+ L3 0 0.093750 9.184845 9.231720 0 9.184845 11.757552 0
+ L3 0 0.093750 9.184845 11.757552 0 14.466131 11.757552 0
+ L3 0 0.093750 14.466131 11.757552 0 14.466131 9.231720 0
+ L3 0 0.093750 14.466131 9.231720 0 9.184845 9.231720 0
+ F3 12632256 0.000000 4
+ 13.088404 9.346531 0
+ 13.088404 9.346531 0
+ 13.088404 9.346531 0
+ 13.088404 9.346531 0
+ G3 0 0.000000 0.114811 11.825488 8.428046 0
+ G3 0 0.000000 0.114811 11.825488 7.279940 0
+ G3 0 0.000000 0.114811 11.825488 5.672593 0
+ G3 0 0.000000 0.114811 11.825488 4.754108 0
+ F3 12632256 0.000000 4
+ 5.855339 3.950434 0
+ 14.466131 3.950434 0
+ 14.466131 0.046875 0
+ 5.855339 0.046875 0
+ L3 0 0.093750 9.184845 3.950434 0 14.466131 3.950434 0
+ L3 0 0.093750 14.466131 3.950434 0 14.466131 0.046875 0
+ L3 0 0.093750 14.466131 0.046875 0 5.855339 0.046875 0
+ L3 0 0.093750 5.855339 0.046875 0 5.855339 3.950434 0
+ L3 0 0.093750 5.855339 3.950434 0 9.184845 3.950434 0
+ L3 0 0.187500 11.825488 3.950434 0 11.825488 1.769033 0
+ END
+STRUCTURE HO "Walthers ADM Grain Elevator Silo Add-on 933-"
+ G3 15720651 0.000000 1.148106 1.148106 1.148106 0
+ G3 15720651 0.000000 1.148106 3.444317 1.148106 0
+ G3 15720651 0.000000 1.148106 3.444317 1.148106 0
+ G3 15720651 0.000000 1.148106 5.740528 1.148106 0
+ G3 15720651 0.000000 1.148106 8.036739 1.148106 0
+ G3 15720651 0.000000 1.148106 1.148106 3.444317 0
+ G3 15720651 0.000000 1.148106 3.444317 3.444317 0
+ G3 15720651 0.000000 1.148106 5.740528 3.444317 0
+ G3 15720651 0.000000 1.148106 8.036739 3.444317 0
+ A3 0 0.093750 1.148106 1.148106 1.148106 0 0.000000 360.000000
+ A3 0 0.093750 1.148106 1.148106 3.444317 0 0.000000 360.000000
+ A3 0 0.093750 1.148106 3.444317 1.148106 0 0.000000 360.000000
+ A3 0 0.093750 1.148106 5.740528 1.148106 0 0.000000 360.000000
+ A3 0 0.093750 1.148106 8.036739 1.148106 0 0.000000 360.000000
+ A3 0 0.093750 1.148106 3.444317 3.444317 0 0.000000 360.000000
+ A3 0 0.093750 1.148106 5.740528 3.444317 0 0.000000 360.000000
+ A3 0 0.093750 1.148106 8.036739 3.444317 0 0.000000 360.000000
+ F3 12632256 0.000000 4
+ 1.148106 3.444317 0
+ 9.184845 3.444317 0
+ 9.184845 1.148106 0
+ 1.148106 1.148106 0
+ G3 0 0.000000 0.000000 1.148106 1.148106 0
+ G3 0 0.000000 0.000000 1.148106 3.444317 0
+ L3 0 0.093750 1.148106 3.444317 0 1.148106 1.148106 0
+ L3 0 0.093750 1.148106 1.148106 0 9.184845 1.148106 0
+ L3 0 0.093750 1.148106 2.296211 0 9.184845 2.296211 0
+ L3 0 0.093750 9.184845 3.444317 0 1.148106 3.444317 0
+ L3 0 0.093750 9.184845 1.148106 0 9.184845 3.444317 0
+ END
+STRUCTURE HO "Walthers Redwing Flour Mill 933-3026"
+ L 0 0.000000 0.000000 0.000000 11.000000 0.000000
+ L 0 0.000000 11.000000 0.000000 11.000000 8.000000
+ L 0 0.000000 11.000000 8.000000 0.000000 8.000000
+ L 0 0.000000 0.000000 8.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Red Wing Milling Co 933-3212"
+ L 0 0 8.266360 0.000000 8.266360 0.688863
+ L 0 0 12.169920 0.688863 8.266360 0.688863
+ L 0 0 12.169920 8.955224 3.788749 8.955224
+ L 0 0 3.788749 8.955224 3.788749 8.266360
+ L 0 0 3.788749 8.151550 0.000000 8.151550
+ L 0 0 0.688863 1.377727 5.970150 1.377727
+ L 0 0 5.970150 1.377727 5.970150 2.985075
+ L 0 0 5.970150 2.985075 0.688863 2.985075
+ L 0 0 0.688863 2.985075 0.688863 1.377727
+ L 0 0 5.625718 2.640643 4.822044 2.640643
+ L 0 0 4.822044 2.640643 4.822044 1.951780
+ L 0 0 4.822044 1.951780 5.625718 1.951780
+ L 0 0 5.625718 1.951780 5.625718 2.640643
+ L 0 0 8.266360 0.000000 8.266360 -1.262916
+ L 0 0 8.266360 -1.262916 3.673938 -1.262916
+ L 0 0 3.673938 -1.262916 3.673938 0.688863
+ L 0 0 3.673938 0.688863 0.000000 0.688863
+ L 0 0 8.266360 0.688863 3.673938 0.688863
+ L 0 0 3.673938 0.000000 0.000000 0.000000
+ L 0 0 4.133180 0.688863 4.133180 -0.114811
+ L 0 0 4.133180 -0.114811 7.462687 -0.114811
+ L 0 0 7.462687 -0.114811 7.462687 0.688863
+ A 0 0 0.256724 5.855339 0.229621 0.000000 360.000000
+ A 0 0 0.256724 7.003444 0.229621 0.000000 360.000000
+ A 0 0 0.256724 4.822044 0.229621 0.000000 360.000000
+ A 0 0 0.114811 7.003444 0.229621 0.000000 360.000000
+ A 0 0 0.114811 5.855339 0.229621 0.000000 360.000000
+ A 0 0 0.000000 4.822044 0.229621 0.000000 360.000000
+ A 0 0 0.114811 4.822044 0.229621 0.000000 360.000000
+ L 0 0 12.169920 8.955224 12.169920 0.688863
+ L 0 0 3.788749 8.151550 12.169920 8.151550
+ L 0 4 5.396097 -0.114811 5.396097 -1.033295
+ L 0 4 2.411022 0.688863 2.411022 -0.114811
+ L 0 0 0.000000 8.151550 0.000000 8.151550
+ L 0 0 0.000000 8.151550 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Grain Bin 933-3123"
+ A 0 0.000000 2.765424 2.843750 2.770833 0.000000 360.000000
+ A 0 0.000000 0.192074 2.739583 2.750000 0.000000 360.000000
+ A 0 0.000000 2.458157 2.781250 2.770833 0.000000 360.000000
+ END
+STRUCTURE HO "Walthers Grain Dryer 933-3128"
+ L 0 0.000000 -0.010417 0.000000 2.864583 0.000000
+ L 0 0.000000 2.864583 0.000000 2.864583 1.145833
+ L 0 0.000000 -0.010417 1.145833 -0.010417 0.000000
+ L 0 0.000000 -0.010417 0.593750 2.864583 0.593750
+ L 0 0.000000 2.864583 0.468750 -0.010417 0.468750
+ L 0 0.000000 2.864583 0.697917 3.072916 0.697917
+ L 0 0.000000 3.072916 0.697917 3.072916 0.322917
+ L 0 0.000000 3.072916 0.322917 2.864583 0.322917
+ L 0 0.000000 2.864583 0.322917 2.864583 0.697917
+ L 0 0.000000 2.593750 0.718750 2.593750 1.072917
+ L 0 0.000000 2.593750 0.093750 2.593750 0.364583
+ L 0 0.000000 2.218750 0.718750 2.218750 1.072917
+ L 0 0.000000 2.218750 0.114583 2.218750 0.406250
+ L 0 0.000000 2.593750 0.343750 2.593750 0.385417
+ L 0 0.000000 1.864583 0.718750 1.864583 1.052083
+ L 0 0.000000 1.864583 0.093750 1.864583 0.385417
+ L 0 0.000000 1.489583 0.093750 1.489583 0.385417
+ L 0 0.000000 2.864583 1.135417 -0.010417 1.135417
+ L 0 0.000000 1.489583 0.677083 1.489583 1.052083
+ L 0 0.000000 1.156250 0.677083 1.156250 1.031250
+ L 0 0.000000 1.156250 0.093750 1.156250 0.385417
+ L 0 0.000000 0.802083 0.677083 0.802083 1.031250
+ L 0 0.000000 0.802083 0.072917 0.802083 0.364583
+ L 0 0.000000 0.385416 0.697917 0.385416 1.052083
+ L 0 0.000000 0.385416 0.072917 0.385416 0.406250
+ END
+
+
+SUBCONTENTS Walthers Cornerstone HO Structures - Coal Industries
+STRUCTURE HO "Walthers Cornerstone Structures Coal Bunkers 933-3246A"
+ F3 8421504 0.000000 4
+ 0.000000 0.000000 0
+ 8.840413 0.000000 0
+ 8.840413 3.444317 0
+ 0.000000 3.444317 0
+ G3 13289984 0.000000 0.918933 1.435132 1.607348 0
+ G3 13289984 0.000000 0.918933 3.720264 1.596269 0
+ G3 13289984 0.000000 0.918933 7.394203 1.567567 0
+ F3 10309376 0.000000 4
+ 4.822044 2.755454 0
+ 6.199770 2.755454 0
+ 6.199770 0.459242 0
+ 4.822044 0.459242 0
+ END
+STRUCTURE HO "Walther's Cornerstone Structures New River Mine Tipple 933-3221"
+ F3 12632256 0.000000 4
+ 0.000000 0.000000 0
+ 9.184845 0.000000 0
+ 9.184845 9.184845 0
+ 0.000000 9.184845 0
+ L3 0 0.000000 4.477612 9.184845 0 4.477612 0.000000 0
+ L3 0 0.000000 2.066590 0.000000 0 2.066590 9.156142 0
+ L3 0 0.000000 4.477612 4.592422 0 9.156142 4.592422 0
+ END
+STRUCTURE HO "Walther's Cornerstone Structures New River Mine Conveyor 933-3221"
+ F3 12632256 0.000000 4
+ 5.510907 0.000000 0
+ 0.000000 0.000000 0
+ 0.000000 4.707233 0
+ 5.510907 4.707233 0
+ F3 8421504 0.000000 4
+ 2.296211 4.707233 0
+ 3.214696 4.707233 0
+ 3.214696 5.281286 0
+ 2.296211 5.281286 0
+ L3 0 0.000000 0.000000 0.000000 0 5.510907 0.000000 0
+ L3 0 0.000000 5.510907 0.000000 0 5.510907 4.707233 0
+ L3 0 0.000000 5.510907 4.707233 0 0.000000 4.707233 0
+ L3 0 0.000000 0.000000 4.707233 0 0.000000 0.000000 0
+ L3 0 0.000000 2.755454 4.707233 0 2.755454 0.028703 0
+ L3 0 0.000000 0.000000 2.755454 0 5.482204 2.784156 0
+ END
+STRUCTURE HO "Walther's Cornerstone Structures New River Mine Track Coaling Bldg. 933-3221"
+ F3 12632256 0.000000 4
+ 0.000000 0.000000 0
+ 7.577497 0.000000 0
+ 7.577497 2.985075 0
+ 0.000000 2.985075 0
+ L3 0 0.000000 0.000000 1.492537 0 7.520092 1.463835 0
+ END
+STRUCTURE HO "Walthers Coal Flood Loader 933-3051"
+ L 0 0.000000 0.000000 0.000000 6.000000 0.000000
+ L 0 0.000000 6.000000 0.000000 6.000000 4.000000
+ L 0 0.000000 6.000000 4.000000 0.000000 4.000000
+ L 0 0.000000 0.000000 4.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Cornerstone Structure Western (coal) Flood Loader 933-3247"
+ G3 0 0.000000 0.000000 2.440384 2.440384 0
+ G3 15132390 0.000000 2.497789 2.497789 2.497789 0
+ F3 8421504 0.000000 4
+ 4.363461 3.330166 0
+ 2.870924 3.330166 0
+ 2.870924 1.550602 0
+ 4.363461 1.550602 0
+ L3 0 0.000000 3.559787 3.330166 0 3.559787 1.550602 0
+ F3 0 0.000000 4
+ 34.874370 1.464494 0
+ 34.816960 1.464494 0
+ 34.816960 1.464494 0
+ 34.874370 1.464494 0
+ F3 12632256 0.000000 4
+ 34.931770 1.464494 0
+ 33.037400 1.464494 0
+ 33.037400 3.301463 0
+ 34.931770 3.301463 0
+ L3 0 0.000000 4.908811 1.981142 0 32.979990 1.981142 0
+ L3 0 0.000000 32.979990 1.981142 0 32.979990 2.842221 0
+ L3 0 0.000000 32.979990 2.842221 0 4.908811 2.842221 0
+ L3 0 0.000000 4.908811 2.842221 0 4.908811 1.981142 0
+ A3 0 0.000000 2.285423 2.469087 2.497789 0 0.000000 360.000000
+ G3 0 0.000000 0.118345 3.186653 2.124655 0
+ G3 8421504 0.000000 0.192544 1.005252 2.583897 0
+ F3 8421504 0.000000 4
+ 4.966217 2.497789 0
+ 32.979990 2.497789 0
+ 32.979990 2.210763 0
+ 4.966217 2.210763 0
+ END
+STRUCTURE HO "Walthers Rotary Dumper 933-3145"
+ L 0 0.000000 -0.020833 0.020833 7.229167 0.020833
+ L 0 0.000000 7.229167 0.020833 7.229167 9.520833
+ L 0 0.000000 7.229167 9.520833 -0.020833 9.520833
+ L 0 0.000000 -0.020833 9.520833 -0.020833 0.020833
+ L 0 0.000000 3.895833 0.020833 3.895833 9.520833
+ L 0 0.000000 3.354167 -0.020833 3.354167 9.520833
+ END
+STRUCTURE HO "Walthers O.L. King Coal Yard, Shed 933-3015a"
+ L 16711935 0 0.000000 0.000000 0.000000 2.875000
+ L 16711935 0 0.000000 2.875000 5.000000 2.875000
+ L 16711935 0 5.000000 2.875000 5.000000 0.000000
+ L 16711935 0 5.000000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers O.L. King Coal Yard, Office 933-3015b"
+ L 16711935 0 0.000000 0.000000 0.000000 4.500000
+ L 16711935 0 0.000000 4.500000 6.500000 4.500000
+ L 16711935 0 6.500000 4.500000 6.500000 0.000000
+ L 16711935 0 6.500000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers O.L. King Coal Yard, Trestle 933-3015c"
+ L 16711935 0 0.000000 0.000000 0.000000 2.000000
+ L 16711935 0 0.000000 2.000000 15.750000 2.000000
+ L 16711935 0 15.750000 2.000000 15.750000 0.000000
+ L 16711935 0 15.750000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Western Flood Loader 933-3089"
+ F3 16755285 0.000000 4
+ 29.250868 3.375868 0
+ 32.000868 3.375868 0
+ 32.000868 1.125868 0
+ 29.250868 1.125868 0
+ G3 12632256 0.000000 2.250868 2.250868 2.250868 0
+ F3 16755285 0.000000 4
+ 1.938368 3.375868 0
+ 4.188368 3.375868 0
+ 4.188368 1.125868 0
+ 1.938368 1.125868 0
+ L3 0 0.052083 28.563368 2.063368 0 28.563368 2.063368 0
+ A3 0 0.052083 2.250000 2.250868 2.250868 0 0.000000 360.000000
+ L3 0 0.052083 1.938368 1.125868 0 4.188368 1.125868 0
+ L3 0 0.052083 4.188368 3.375868 0 1.938368 3.375868 0
+ L3 0 0.052083 1.938368 3.375868 0 1.938368 1.125868 0
+ L3 12632256 0.052083 3.063368 3.438368 0 3.063368 3.438368 0
+ L3 0 0.052083 3.063368 3.375868 0 3.063368 1.125868 0
+ L3 0 0.052083 32.000868 1.125868 0 29.250868 1.125868 0
+ L3 0 0.052083 29.250868 3.375868 0 32.000868 3.375868 0
+ L3 0 0.052083 32.000868 3.375868 0 32.000868 1.125868 0
+ F3 16755285 0.000000 4
+ 29.250868 3.000868 0
+ 4.188368 3.000868 0
+ 4.188368 1.500868 0
+ 29.250868 1.500868 0
+ L3 0 0.052083 4.188368 1.125868 0 4.188368 3.375868 0
+ L3 0 0.052083 29.250868 3.000868 0 4.188368 3.000868 0
+ L3 0 0.052083 29.250868 1.500868 0 4.188368 1.500868 0
+ L3 0 0.052083 29.250868 1.125868 0 29.250868 3.375868 0
+ END
+STRUCTURE HO "Walthers New River Mining Co.- Stack Loading Building 933-3017B"
+ L3 0 0.052083 4.526042 2.463542 0 4.526042 2.463542 0
+ L3 0 0.052083 4.526042 2.463542 0 4.526042 2.463542 0
+ L3 0 0.052083 4.526042 2.463542 0 4.526042 2.463542 0
+ L3 0 0.052083 4.526042 2.463542 0 4.526042 2.463542 0
+ F3 16755285 0.000000 4
+ 0.026042 0.026042 0
+ 7.026042 0.026042 0
+ 7.026042 2.776042 0
+ 0.026042 2.776042 0
+ L3 0 0.052083 0.026042 0.026042 0 7.026042 0.026042 0
+ L3 0 0.052083 7.026042 0.026042 0 7.026042 2.776042 0
+ L3 0 0.052083 7.026042 2.776042 0 0.026042 2.776042 0
+ L3 0 0.052083 0.026042 2.776042 0 0.026042 0.026042 0
+ L3 0 0.052083 0.026042 1.401042 0 7.026042 1.401042 0
+ END
+STRUCTURE HO "Walthers New River Mining Co.- Tripple Building 933-3017A"
+ F3 16755285 0.000000 4
+ 0.026042 0.026042 0
+ 7.526042 0.026042 0
+ 7.526042 5.026042 0
+ 0.026042 5.026042 0
+ F3 16755285 0.000000 4
+ 7.526042 3.026042 0
+ 12.526042 3.026042 0
+ 12.526042 5.026042 0
+ 7.526042 5.026042 0
+ L3 0 0.052083 7.526042 3.026042 0 12.526042 3.026042 0
+ L3 0 0.052083 12.526042 5.026042 0 7.526042 5.026042 0
+ L3 0 0.052083 10.026042 3.026042 0 10.026042 5.026042 0
+ F3 16755285 0.000000 4
+ 7.526042 9.026042 0
+ 12.526042 9.026042 0
+ 12.526042 7.526042 0
+ 7.526042 7.526042 0
+ F3 16755285 0.000000 4
+ 0.026042 7.526042 0
+ 12.526042 7.526042 0
+ 12.526042 5.026042 0
+ 0.026042 5.026042 0
+ L3 0 0.052083 0.026042 0.026042 0 7.526042 0.026042 0
+ L3 0 0.052083 7.526042 0.026042 0 7.526042 7.526042 0
+ L3 0 0.052083 7.526042 7.526042 0 0.026042 7.526042 0
+ L3 0 0.052083 0.026042 7.526042 0 0.026042 0.026042 0
+ L3 0 0.052083 12.401042 9.401042 0 12.401042 9.401042 0
+ L3 0 0.052083 12.401042 9.401042 0 12.401042 9.401042 0
+ L3 0 0.052083 12.401042 9.401042 0 12.401042 9.401042 0
+ L3 0 0.052083 12.401042 9.401042 0 12.401042 9.401042 0
+ L3 0 0.052083 12.526042 9.026042 0 7.526042 9.026042 0
+ L3 0 0.052083 7.526042 9.026042 0 7.526042 3.026042 0
+ L3 0 0.052083 12.526042 3.026042 0 12.526042 9.026042 0
+ L3 0 0.052083 0.026042 7.526042 0 2.526042 7.526042 0
+ L3 0 0.052083 2.526042 7.526042 0 2.526042 5.026042 0
+ L3 0 0.052083 2.526042 5.026042 0 0.026042 5.026042 0
+ L3 0 0.052083 0.026042 5.026042 0 0.026042 7.526042 0
+ L3 0 0.052083 2.526042 7.526042 0 7.526042 7.526042 0
+ L3 0 0.052083 7.526042 7.526042 0 7.526042 5.026042 0
+ L3 0 0.052083 7.526042 5.026042 0 2.526042 5.026042 0
+ L3 0 0.052083 2.526042 5.026042 0 2.526042 7.526042 0
+ L3 0 0.052083 7.526042 7.526042 0 12.526042 7.526042 0
+ L3 0 0.052083 12.526042 7.526042 0 12.526042 5.026042 0
+ L3 0 0.052083 7.526042 5.026042 0 7.526042 7.526042 0
+ L3 0 0.052083 0.026042 6.276042 0 12.526042 6.276042 0
+ L3 0 0.104167 3.151042 3.651042 0 3.151042 3.651042 0
+ L3 0 0.052083 3.776042 0.026042 0 3.776042 5.026042 0
+ L3 8421504 0.010417 0.026042 4.526042 0 3.776042 4.526042 0
+ L3 8421504 0.010417 0.026042 4.026042 0 3.776042 4.026042 0
+ L3 8421504 0.010417 0.026042 3.526042 0 3.776042 3.526042 0
+ L3 8421504 0.010417 0.026042 3.026042 0 3.776042 3.026042 0
+ L3 8421504 0.010417 0.026042 2.526042 0 3.776042 2.526042 0
+ L3 8421504 0.010417 0.026042 2.026042 0 3.776042 2.026042 0
+ L3 8421504 0.010417 0.026042 1.526042 0 3.776042 1.526042 0
+ L3 8421504 0.010417 0.026042 1.026042 0 3.776042 1.026042 0
+ L3 8421504 0.010417 0.026042 0.526042 0 3.776042 0.526042 0
+ L3 8421504 0.010417 3.776042 4.526042 0 7.526042 4.526042 0
+ L3 8421504 0.010417 3.776042 4.026042 0 7.526042 4.026042 0
+ L3 8421504 0.010417 3.776042 3.526042 0 7.526042 3.526042 0
+ L3 8421504 0.010417 3.776042 3.026042 0 7.526042 3.026042 0
+ L3 8421504 0.010417 3.776042 2.526042 0 7.526042 2.526042 0
+ L3 8421504 0.010417 3.776042 2.026042 0 7.526042 2.026042 0
+ L3 8421504 0.010417 3.776042 1.526042 0 7.526042 1.526042 0
+ L3 8421504 0.010417 3.776042 1.026042 0 7.526042 1.026042 0
+ L3 8421504 0.010417 3.776042 0.526042 0 7.526042 0.526042 0
+ L3 8421504 0.010417 0.276042 6.276042 0 0.276042 5.026042 0
+ L3 8421504 0.010417 0.526042 6.276042 0 0.526042 5.026042 0
+ L3 8421504 0.010417 0.776042 6.276042 0 0.776042 5.088542 0
+ L3 8421504 0.010417 1.026042 6.276042 0 1.026042 5.026042 0
+ L3 8421504 0.010417 1.276042 6.276042 0 1.276042 5.088542 0
+ L3 8421504 0.010417 1.526042 6.276042 0 1.526042 5.088542 0
+ L3 8421504 0.010417 1.776042 6.276042 0 1.776042 5.026042 0
+ L3 8421504 0.010417 2.026042 6.276042 0 2.026042 5.026042 0
+ L3 8421504 0.010417 2.276042 6.276042 0 2.276042 5.026042 0
+ L3 8421504 0.010417 0.276042 6.276042 0 0.276042 7.526042 0
+ L3 8421504 0.010417 0.526042 6.276042 0 0.526042 7.526042 0
+ L3 8421504 0.010417 0.776042 6.276042 0 0.776042 7.526042 0
+ L3 8421504 0.010417 1.026042 6.276042 0 1.026042 7.526042 0
+ L3 8421504 0.010417 1.276042 6.276042 0 1.276042 7.526042 0
+ L3 8421504 0.010417 1.526042 6.276042 0 1.526042 7.526042 0
+ L3 8421504 0.010417 1.776042 6.276042 0 1.776042 7.526042 0
+ L3 8421504 0.010417 2.026042 6.276042 0 2.026042 7.526042 0
+ L3 8421504 0.010417 2.276042 6.276042 0 2.276042 7.526042 0
+ L3 8421504 0.010417 2.765625 6.260417 0 2.765625 7.510417 0
+ L3 8421504 0.010417 3.015625 6.260417 0 3.015625 7.510417 0
+ L3 8421504 0.010417 3.265625 6.260417 0 3.265625 7.510417 0
+ L3 8421504 0.010417 3.515625 6.260417 0 3.515625 7.510417 0
+ L3 8421504 0.010417 3.765625 6.260417 0 3.765625 7.510417 0
+ L3 8421504 0.010417 4.015625 6.260417 0 4.015625 7.510417 0
+ L3 8421504 0.010417 4.265625 6.260417 0 4.265625 7.510417 0
+ L3 8421504 0.010417 4.515625 6.260417 0 4.515625 7.510417 0
+ L3 8421504 0.010417 4.765625 6.260417 0 4.765625 7.510417 0
+ L3 8421504 0.010417 4.968750 6.307292 0 4.968750 7.557292 0
+ L3 8421504 0.010417 5.218750 6.307292 0 5.218750 7.557292 0
+ L3 8421504 0.010417 5.468750 6.307292 0 5.468750 7.557292 0
+ L3 8421504 0.010417 5.718750 6.307292 0 5.718750 7.557292 0
+ L3 8421504 0.010417 5.968750 6.307292 0 5.968750 7.557292 0
+ L3 8421504 0.010417 6.218750 6.307292 0 6.218750 7.557292 0
+ L3 8421504 0.010417 6.468750 6.307292 0 6.468750 7.557292 0
+ L3 8421504 0.010417 6.718750 6.307292 0 6.718750 7.557292 0
+ L3 8421504 0.010417 6.968750 6.307292 0 6.968750 7.557292 0
+ L3 8421504 0.010417 2.750000 5.041667 0 2.750000 6.291667 0
+ L3 8421504 0.010417 3.000000 5.041667 0 3.000000 6.291667 0
+ L3 8421504 0.010417 3.250000 5.041667 0 3.250000 6.291667 0
+ L3 8421504 0.010417 3.500000 5.041667 0 3.500000 6.291667 0
+ L3 8421504 0.010417 3.750000 5.041667 0 3.750000 6.291667 0
+ L3 8421504 0.010417 4.000000 5.041667 0 4.000000 6.291667 0
+ L3 8421504 0.010417 4.250000 5.041667 0 4.250000 6.291667 0
+ L3 8421504 0.010417 4.500000 5.041667 0 4.500000 6.291667 0
+ L3 8421504 0.010417 4.750000 5.041667 0 4.750000 6.291667 0
+ L3 8421504 0.010417 4.984375 5.041667 0 4.984375 6.291667 0
+ L3 8421504 0.010417 5.234375 5.041667 0 5.234375 6.291667 0
+ L3 8421504 0.010417 5.484375 5.041667 0 5.484375 6.291667 0
+ L3 8421504 0.010417 5.734375 5.041667 0 5.734375 6.291667 0
+ L3 8421504 0.010417 5.984375 5.041667 0 5.984375 6.291667 0
+ L3 8421504 0.010417 6.234375 5.041667 0 6.234375 6.291667 0
+ L3 8421504 0.010417 6.484375 5.041667 0 6.484375 6.291667 0
+ L3 8421504 0.010417 6.734375 5.041667 0 6.734375 6.291667 0
+ L3 8421504 0.010417 6.984375 5.041667 0 6.984375 6.291667 0
+ L3 8421504 0.010417 7.781250 6.276042 0 7.781250 7.526042 0
+ L3 8421504 0.010417 8.031250 6.276042 0 8.031250 7.526042 0
+ L3 8421504 0.010417 8.281250 6.276042 0 8.281250 7.526042 0
+ L3 8421504 0.010417 8.531250 6.276042 0 8.531250 7.526042 0
+ L3 8421504 0.010417 8.781250 6.276042 0 8.781250 7.526042 0
+ L3 8421504 0.010417 9.031250 6.276042 0 9.031250 7.526042 0
+ L3 8421504 0.010417 9.281250 6.276042 0 9.281250 7.526042 0
+ L3 8421504 0.010417 9.531250 6.276042 0 9.531250 7.526042 0
+ L3 8421504 0.010417 9.781250 6.276042 0 9.781250 7.526042 0
+ L3 8421504 0.010417 10.031250 6.291667 0 10.031250 7.541667 0
+ L3 8421504 0.010417 10.281250 6.291667 0 10.281250 7.541667 0
+ L3 8421504 0.010417 10.531250 6.291667 0 10.531250 7.541667 0
+ L3 8421504 0.010417 10.781250 6.291667 0 10.781250 7.541667 0
+ L3 8421504 0.010417 11.031250 6.291667 0 11.031250 7.541667 0
+ L3 8421504 0.010417 11.281250 6.291667 0 11.281250 7.541667 0
+ L3 8421504 0.010417 11.531250 6.291667 0 11.531250 7.541667 0
+ L3 8421504 0.010417 11.781250 6.291667 0 11.781250 7.541667 0
+ L3 8421504 0.010417 12.031250 6.291667 0 12.031250 7.541667 0
+ L3 8421504 0.010417 7.796875 5.026042 0 7.796875 6.276042 0
+ L3 8421504 0.010417 8.046875 5.026042 0 8.046875 6.276042 0
+ L3 8421504 0.010417 8.296875 5.026042 0 8.296875 6.276042 0
+ L3 8421504 0.010417 8.546875 5.026042 0 8.546875 6.276042 0
+ L3 8421504 0.010417 8.796875 5.026042 0 8.796875 6.276042 0
+ L3 8421504 0.010417 9.046875 5.026042 0 9.046875 6.276042 0
+ L3 8421504 0.010417 9.296875 5.026042 0 9.296875 6.276042 0
+ L3 8421504 0.010417 9.546875 5.026042 0 9.546875 6.276042 0
+ L3 8421504 0.010417 9.796875 5.026042 0 9.796875 6.276042 0
+ L3 8421504 0.010417 10.046875 5.026042 0 10.046875 6.276042 0
+ L3 8421504 0.010417 10.296875 5.026042 0 10.296875 6.276042 0
+ L3 8421504 0.010417 10.546875 5.026042 0 10.546875 6.276042 0
+ L3 8421504 0.010417 10.796875 5.026042 0 10.796875 6.276042 0
+ L3 8421504 0.010417 11.046875 5.026042 0 11.046875 6.276042 0
+ L3 8421504 0.010417 11.296875 5.026042 0 11.296875 6.276042 0
+ L3 8421504 0.010417 11.546875 5.026042 0 11.546875 6.276042 0
+ L3 8421504 0.010417 11.796875 5.026042 0 11.796875 6.276042 0
+ L3 8421504 0.010417 12.046875 5.026042 0 12.046875 6.276042 0
+ L3 8421504 0.010417 7.276042 7.526042 0 7.276042 6.276042 0
+ L3 8421504 0.010417 7.276042 6.276042 0 7.276042 5.026042 0
+ L3 8421504 0.010417 12.276042 7.526042 0 12.276042 6.276042 0
+ L3 8421504 0.010417 12.276042 6.276042 0 12.276042 5.026042 0
+ END
+STRUCTURE HO "Walthers Diamond Coal Corp. 933-4046"
+ F3 14737632 0.000000 5
+ 8.650265 6.265639 0
+ 0.150265 6.265651 0
+ 0.025264 5.765651 0
+ 0.150263 5.265651 0
+ 8.650263 5.265639 0
+ F3 14737632 0.000000 4
+ 8.650258 1.140639 0
+ 8.650260 2.765639 0
+ 11.650260 2.765635 0
+ 11.650258 1.140635 0
+ F3 14737632 0.000000 4
+ 8.650260 2.765639 0
+ 8.650268 8.765639 0
+ 19.400268 8.765625 0
+ 19.400260 2.765625 0
+ F3 14737632 0.000000 4
+ 13.400268 8.765633 0
+ 13.400274 13.390633 0
+ 19.400274 13.390625 0
+ 19.400268 8.765625 0
+ F3 15720651 0.000000 4
+ 11.650260 2.390635 0
+ 11.650260 2.765635 0
+ 19.275260 2.765625 0
+ 19.275260 2.390625 0
+ F3 15720651 0.000000 4
+ 18.900260 2.390626 0
+ 18.900257 0.140626 0
+ 19.275257 0.140625 0
+ 19.275260 2.390625 0
+ F3 15720651 0.000000 4
+ 13.275260 2.390633 0
+ 13.275258 0.890633 0
+ 13.650258 0.890633 0
+ 13.650260 2.390633 0
+ L3 0 0.031250 13.400275 14.015633 0 13.400278 16.515633 0
+ L3 0 0.031250 13.400278 16.515633 0 10.900278 16.515636 0
+ L3 0 0.031250 10.900278 16.515636 0 10.900275 14.015636 0
+ L3 0 0.031250 10.900275 14.015636 0 13.400275 14.015633 0
+ A3 0 0.052083 1.125000 12.150277 15.265635 0 270.000000 360.000000
+ F3 14737632 0.000000 4
+ 11.150275 14.265636 0
+ 11.150278 16.265636 0
+ 12.900278 16.265634 0
+ 12.900275 14.265634 0
+ F3 14737632 0.000000 4
+ 11.900268 8.765635 0
+ 11.900275 14.265635 0
+ 12.650275 14.265634 0
+ 12.650268 8.765634 0
+ L3 0 0.052083 19.400274 13.390625 0 13.400274 13.390633 0
+ L3 0 0.052083 13.400274 13.390633 0 13.400268 8.765633 0
+ L3 0 0.052083 19.400274 13.390625 0 19.400268 8.765625 0
+ L3 0 0.052083 8.650268 8.765639 0 8.650260 2.765639 0
+ L3 0 0.052083 8.650260 2.765639 0 19.400260 2.765625 0
+ L3 0 0.052083 19.400260 2.765625 0 19.400268 8.765625 0
+ L3 8421504 0.020833 16.400274 13.390629 0 16.400268 8.765629 0
+ L3 8421504 0.020833 19.400264 5.765625 0 8.650264 5.765639 0
+ L3 0 0.052083 8.650260 2.765639 0 8.650258 1.140639 0
+ L3 0 0.052083 8.650258 1.140639 0 11.650258 1.140627 0
+ L3 0 0.052083 11.900268 8.765635 0 11.900268 14.265635 0
+ L3 0 0.052083 11.900275 14.265635 0 12.650275 14.265634 0
+ L3 0 0.052083 12.650268 14.265634 0 12.650268 8.765634 0
+ L3 0 0.052083 13.275274 13.390633 0 13.275274 13.390633 0
+ L3 8421504 0.010417 17.900275 13.640627 0 17.900275 14.640627 0
+ L3 8421504 0.010417 14.900275 13.640631 0 14.900276 14.640631 0
+ L3 0 0.052083 12.900275 14.265634 0 12.900278 16.265634 0
+ L3 0 0.052083 12.900278 16.265634 0 11.150278 16.265636 0
+ L3 0 0.052083 11.150278 16.265636 0 11.150275 14.265636 0
+ L3 0 0.052083 11.150275 14.265636 0 12.900275 14.265634 0
+ L3 8421504 0.020833 12.275268 8.765634 0 12.275275 14.265634 0
+ L3 8421504 0.020833 12.025275 14.265635 0 12.025278 16.265635 0
+ F3 14737632 0.000000 4
+ 8.650268 8.765639 0
+ 8.650270 10.390639 0
+ 11.650270 10.390635 0
+ 11.650268 8.765635 0
+ L3 0 0.052083 8.650268 8.765639 0 8.650270 10.390639 0
+ L3 0 0.052083 8.650270 10.390639 0 11.650270 10.390635 0
+ L3 0 0.052083 11.650270 10.390635 0 11.650268 8.765635 0
+ L3 8421504 0.020833 11.400268 8.890636 0 11.400270 10.265636 0
+ L3 8421504 0.020833 11.150268 8.890636 0 11.150270 10.265636 0
+ L3 8421504 0.020833 10.900268 8.890636 0 10.900270 10.265636 0
+ L3 8421504 0.020833 10.650268 8.890637 0 10.650270 10.265637 0
+ L3 8421504 0.020833 10.400268 8.890637 0 10.400270 10.265637 0
+ L3 8421504 0.020833 10.150270 10.265637 0 10.150268 8.890637 0
+ L3 8421504 0.020833 9.900270 10.265638 0 9.900268 8.890638 0
+ L3 8421504 0.020833 9.775270 10.265638 0 9.775270 10.265638 0
+ L3 8421504 0.020833 9.650270 10.265638 0 9.650268 8.890638 0
+ L3 8421504 0.020833 9.400270 10.265638 0 9.400268 8.890638 0
+ L3 8421504 0.020833 9.150268 8.890639 0 9.150270 10.265639 0
+ L3 8421504 0.020833 8.900268 8.890639 0 8.900270 10.265639 0
+ L3 8421504 0.020833 11.275276 14.515636 0 11.900276 14.515635 0
+ L3 8421504 0.020833 11.900276 14.765635 0 11.275276 14.765636 0
+ L3 8421504 0.020833 11.275276 15.015636 0 11.900276 15.015635 0
+ L3 8421504 0.020833 11.275277 15.265636 0 11.900277 15.265635 0
+ L3 8421504 0.020833 11.275277 15.515636 0 11.900277 15.515635 0
+ L3 8421504 0.020833 11.275277 15.765636 0 11.900277 15.765635 0
+ L3 8421504 0.020833 11.275278 16.015636 0 11.900278 16.015635 0
+ L3 8421504 0.020833 12.150278 16.015635 0 12.775278 16.015634 0
+ L3 8421504 0.020833 12.150277 15.765635 0 12.775277 15.765634 0
+ L3 8421504 0.020833 12.150277 15.515635 0 12.775277 15.515634 0
+ L3 8421504 0.020833 12.150277 15.265635 0 12.775277 15.265634 0
+ L3 8421504 0.020833 12.150276 15.015635 0 12.775276 15.015634 0
+ L3 8421504 0.020833 12.150276 14.765635 0 12.775276 14.765634 0
+ L3 8421504 0.020833 12.150276 14.515635 0 12.775276 14.515634 0
+ L3 8421504 0.020833 12.150276 14.390635 0 12.150276 14.390635 0
+ L3 8421504 0.020833 12.150275 14.140635 0 12.025275 14.140635 0
+ L3 8421504 0.020833 12.150275 13.890635 0 12.025275 13.890635 0
+ L3 8421504 0.020833 12.150275 13.640635 0 12.025275 13.640635 0
+ L3 8421504 0.020833 12.150274 13.390635 0 12.025274 13.390635 0
+ L3 8421504 0.020833 12.150274 13.140635 0 12.025274 13.140635 0
+ L3 8421504 0.020833 12.150274 12.890635 0 12.025274 12.890635 0
+ L3 8421504 0.020833 12.150273 12.640635 0 12.025273 12.640635 0
+ L3 8421504 0.020833 12.150273 12.390635 0 12.025273 12.390635 0
+ L3 8421504 0.020833 12.150273 12.140635 0 12.025273 12.140635 0
+ L3 8421504 0.020833 12.150272 11.890635 0 12.025272 11.890635 0
+ L3 8421504 0.020833 12.150272 11.640635 0 12.025272 11.640635 0
+ L3 8421504 0.020833 12.150272 11.390635 0 12.025272 11.390635 0
+ L3 8421504 0.020833 12.150271 11.140635 0 12.025271 11.140635 0
+ L3 8421504 0.020833 12.150271 10.890635 0 12.025271 10.890635 0
+ L3 8421504 0.020833 12.150271 10.640635 0 12.025271 10.640635 0
+ L3 8421504 0.020833 12.150270 10.390635 0 12.025270 10.390635 0
+ L3 8421504 0.020833 12.150270 10.140635 0 12.025270 10.140635 0
+ L3 8421504 0.020833 12.150270 9.890635 0 12.025270 9.890635 0
+ L3 8421504 0.020833 12.150269 9.640635 0 12.025269 9.640635 0
+ L3 8421504 0.020833 12.150269 9.390635 0 12.025269 9.390635 0
+ L3 8421504 0.020833 12.150269 9.140635 0 12.025269 9.140635 0
+ L3 8421504 0.020833 12.150268 8.890635 0 12.025268 8.890635 0
+ L3 8421504 0.020833 12.400268 8.890634 0 12.525268 8.890634 0
+ L3 8421504 0.020833 12.400269 9.140634 0 12.525269 9.140634 0
+ L3 8421504 0.020833 12.400269 9.390634 0 12.525269 9.390634 0
+ L3 8421504 0.020833 12.400269 9.640634 0 12.525269 9.640634 0
+ L3 8421504 0.020833 12.400270 9.890634 0 12.525270 9.890634 0
+ L3 8421504 0.020833 12.400270 10.140634 0 12.525270 10.140634 0
+ L3 8421504 0.020833 12.400270 10.390634 0 12.525270 10.390634 0
+ L3 8421504 0.020833 12.400271 10.640634 0 12.525271 10.640634 0
+ L3 8421504 0.020833 12.400271 10.890634 0 12.525271 10.890634 0
+ L3 8421504 0.020833 12.400271 11.140634 0 12.525271 11.140634 0
+ L3 8421504 0.020833 12.400272 11.390634 0 12.525272 11.390634 0
+ L3 8421504 0.020833 12.400272 11.640634 0 12.525272 11.640634 0
+ L3 8421504 0.020833 12.400272 11.890634 0 12.525272 11.890634 0
+ L3 8421504 0.020833 12.400273 12.140634 0 12.525273 12.140634 0
+ L3 8421504 0.020833 12.400273 12.390634 0 12.525273 12.390634 0
+ L3 8421504 0.020833 12.400273 12.640634 0 12.525273 12.640634 0
+ L3 8421504 0.020833 12.400274 12.890634 0 12.525274 12.890634 0
+ L3 8421504 0.020833 12.400274 13.140634 0 12.525274 13.140634 0
+ L3 8421504 0.020833 12.400274 13.390634 0 12.525274 13.390634 0
+ L3 8421504 0.020833 12.400275 13.640634 0 12.525275 13.640634 0
+ L3 8421504 0.020833 12.400275 13.890634 0 12.525275 13.890634 0
+ L3 8421504 0.020833 12.400275 14.140634 0 12.525275 14.140634 0
+ L3 8421504 0.020833 8.900258 1.265639 0 8.900260 2.640639 0
+ L3 8421504 0.020833 9.150258 1.265639 0 9.150260 2.640639 0
+ L3 8421504 0.020833 9.400258 1.265638 0 9.400260 2.640638 0
+ L3 8421504 0.020833 9.650258 1.265638 0 9.650260 2.640638 0
+ L3 8421504 0.020833 9.900258 1.265638 0 9.900260 2.640638 0
+ L3 8421504 0.020833 10.150258 1.265637 0 10.150260 2.640637 0
+ L3 8421504 0.020833 10.400258 1.265637 0 10.400260 2.640637 0
+ L3 8421504 0.020833 10.650258 1.265637 0 10.650260 2.640637 0
+ L3 8421504 0.020833 10.900258 1.265636 0 10.900260 2.640636 0
+ L3 8421504 0.020833 11.150258 1.265636 0 11.150260 2.640636 0
+ L3 8421504 0.020833 11.400258 1.265636 0 11.400260 2.390636 0
+ L3 8421504 0.020833 11.400260 2.390636 0 11.400260 2.640636 0
+ L3 0 0.052083 19.400268 8.765625 0 8.650268 8.765639 0
+ L3 8421504 0.020833 16.275274 13.140629 0 13.525274 13.140633 0
+ L3 8421504 0.020833 16.275274 12.890629 0 13.525274 12.890633 0
+ L3 8421504 0.020833 16.275273 12.640629 0 13.525273 12.640633 0
+ L3 8421504 0.020833 16.275273 12.390629 0 13.525273 12.390633 0
+ L3 8421504 0.020833 16.275273 12.140629 0 13.525273 12.140633 0
+ L3 8421504 0.020833 16.275272 11.890629 0 13.525272 11.890633 0
+ L3 8421504 0.020833 16.275272 11.640629 0 13.525272 11.640633 0
+ L3 8421504 0.020833 16.275272 11.390629 0 13.525272 11.390633 0
+ L3 8421504 0.020833 16.275271 11.140629 0 13.525271 11.140633 0
+ L3 8421504 0.020833 16.275271 10.890629 0 13.525271 10.890633 0
+ L3 8421504 0.020833 16.275271 10.640629 0 13.525271 10.640633 0
+ L3 8421504 0.020833 16.275270 10.390629 0 13.525270 10.390633 0
+ L3 8421504 0.020833 16.275270 10.140629 0 13.525270 10.140633 0
+ L3 8421504 0.020833 16.275270 9.890629 0 13.525270 9.890633 0
+ L3 8421504 0.020833 16.275269 9.640629 0 13.525269 9.640633 0
+ L3 8421504 0.020833 16.275269 9.390629 0 13.525269 9.390633 0
+ L3 8421504 0.020833 16.275269 9.140629 0 13.525269 9.140633 0
+ L3 8421504 0.020833 16.275268 8.890629 0 13.525268 8.890633 0
+ L3 8421504 0.020833 16.525268 8.890629 0 19.275268 8.890625 0
+ L3 8421504 0.020833 16.525269 9.140629 0 19.275269 9.140625 0
+ L3 8421504 0.020833 19.275269 9.390625 0 16.525269 9.390629 0
+ L3 8421504 0.020833 16.525269 9.640629 0 19.275269 9.640625 0
+ L3 8421504 0.020833 16.525270 9.890629 0 19.275270 9.890625 0
+ L3 8421504 0.020833 16.525270 10.140629 0 19.275270 10.140625 0
+ L3 8421504 0.020833 16.525270 10.390629 0 19.275270 10.390625 0
+ L3 8421504 0.020833 16.525271 10.640629 0 19.275271 10.640625 0
+ L3 8421504 0.020833 16.525271 10.890629 0 19.275271 10.890625 0
+ L3 8421504 0.020833 16.525271 11.140629 0 19.275271 11.140625 0
+ L3 8421504 0.020833 16.525272 11.390629 0 19.275272 11.390625 0
+ L3 8421504 0.020833 16.525272 11.640629 0 19.275272 11.640625 0
+ L3 8421504 0.020833 19.275272 11.640625 0 19.275272 11.640625 0
+ L3 8421504 0.020833 19.275272 11.890625 0 16.525272 11.890629 0
+ L3 8421504 0.020833 16.525273 12.140629 0 19.275273 12.140625 0
+ L3 8421504 0.020833 19.275273 12.390625 0 16.525273 12.390629 0
+ L3 8421504 0.020833 19.275273 12.640625 0 16.525273 12.640629 0
+ L3 8421504 0.020833 16.525274 12.890629 0 19.275274 12.890625 0
+ L3 8421504 0.020833 19.275274 13.140625 0 16.525274 13.140629 0
+ L3 8421504 0.020833 8.900264 5.640639 0 8.900260 2.890639 0
+ L3 8421504 0.020833 9.150264 5.640639 0 9.150260 2.890639 0
+ L3 8421504 0.020833 9.400260 2.890638 0 9.400264 5.640638 0
+ L3 8421504 0.020833 9.650264 5.640638 0 9.650260 2.890638 0
+ L3 8421504 0.020833 9.900260 2.890638 0 9.900264 5.640638 0
+ L3 8421504 0.020833 9.900264 5.890638 0 9.900268 8.640638 0
+ L3 8421504 0.020833 9.650264 5.890638 0 9.650268 8.640638 0
+ L3 8421504 0.020833 9.400264 5.890638 0 9.400268 8.640638 0
+ L3 8421504 0.020833 9.150264 5.890639 0 9.150268 8.640639 0
+ L3 8421504 0.020833 8.900264 5.890639 0 8.900268 8.640639 0
+ L3 8421504 0.020833 10.150268 8.640637 0 10.150264 5.890637 0
+ L3 8421504 0.020833 10.150264 5.640637 0 10.150260 2.890637 0
+ L3 8421504 0.020833 10.400268 8.640637 0 10.400264 5.890637 0
+ L3 8421504 0.020833 10.400264 5.640637 0 10.400260 2.890637 0
+ L3 8421504 0.020833 10.650268 8.640637 0 10.650264 5.890637 0
+ L3 8421504 0.020833 10.650264 5.640637 0 10.650260 2.890637 0
+ L3 8421504 0.020833 10.900268 8.640636 0 10.900264 5.890636 0
+ L3 8421504 0.020833 10.900264 5.640636 0 10.900260 2.890636 0
+ L3 8421504 0.020833 11.150260 2.890636 0 11.150264 5.640636 0
+ L3 8421504 0.020833 11.150264 5.890636 0 11.150268 8.640636 0
+ L3 8421504 0.020833 11.400268 8.640636 0 11.400264 5.890636 0
+ L3 8421504 0.020833 11.400264 5.640636 0 11.400260 2.890636 0
+ L3 8421504 0.020833 11.650260 2.890635 0 11.650264 5.640635 0
+ L3 8421504 0.020833 11.650264 5.890635 0 11.650268 8.640635 0
+ L3 8421504 0.020833 11.900260 2.890635 0 11.900264 5.640635 0
+ L3 8421504 0.020833 11.900264 5.890635 0 11.900268 8.640635 0
+ L3 8421504 0.020833 12.150268 8.640635 0 12.150264 5.890635 0
+ L3 8421504 0.020833 12.150264 5.640635 0 12.150260 2.890635 0
+ L3 8421504 0.020833 12.400260 2.890634 0 12.400264 5.640634 0
+ L3 8421504 0.020833 12.400264 5.890634 0 12.400268 8.640634 0
+ L3 8421504 0.020833 12.650268 8.640634 0 12.650264 5.890634 0
+ L3 8421504 0.020833 12.650264 5.640634 0 12.650260 2.890634 0
+ L3 8421504 0.020833 12.900260 2.890634 0 12.900264 5.640634 0
+ L3 8421504 0.020833 12.900264 5.890634 0 12.900268 8.640634 0
+ L3 8421504 0.020833 13.150268 8.640633 0 13.150264 5.890633 0
+ L3 8421504 0.020833 13.150264 5.640633 0 13.150260 2.890633 0
+ L3 8421504 0.020833 13.400260 2.890633 0 13.400264 5.640633 0
+ L3 8421504 0.020833 13.650268 8.640633 0 13.650264 5.890633 0
+ L3 8421504 0.020833 13.400268 8.640633 0 13.400264 5.890633 0
+ L3 8421504 0.020833 13.650264 5.640633 0 13.650260 2.890633 0
+ L3 8421504 0.020833 13.900260 2.890632 0 13.900264 5.640632 0
+ L3 8421504 0.020833 13.900264 5.890632 0 13.900268 8.640632 0
+ L3 8421504 0.020833 14.150268 8.640632 0 14.150264 5.890632 0
+ L3 8421504 0.020833 14.150264 5.640632 0 14.150260 2.890632 0
+ L3 8421504 0.020833 14.400260 2.890632 0 14.400264 5.640632 0
+ L3 8421504 0.020833 14.400264 5.890632 0 14.400268 8.640632 0
+ L3 8421504 0.020833 14.650268 8.640631 0 14.650264 5.890631 0
+ L3 8421504 0.020833 14.650264 5.640631 0 14.650260 2.890631 0
+ L3 8421504 0.020833 14.900260 2.890631 0 14.900264 5.640631 0
+ L3 8421504 0.020833 14.900264 5.890631 0 14.900268 8.640631 0
+ L3 8421504 0.020833 15.150260 2.890631 0 15.150264 5.640631 0
+ L3 8421504 0.020833 15.400264 5.640630 0 15.400260 2.890630 0
+ L3 8421504 0.020833 15.650260 2.890630 0 15.650264 5.640630 0
+ L3 8421504 0.020833 15.900264 5.640630 0 15.900260 2.890630 0
+ L3 8421504 0.020833 16.150260 2.890629 0 16.150264 5.640629 0
+ L3 8421504 0.020833 16.400264 5.640629 0 16.400260 2.890629 0
+ L3 8421504 0.020833 16.400264 5.890629 0 16.400268 8.640629 0
+ L3 8421504 0.020833 16.150268 8.640629 0 16.150264 5.890629 0
+ L3 8421504 0.020833 15.900264 5.890630 0 15.900268 8.640630 0
+ L3 8421504 0.020833 15.650268 8.640630 0 15.650264 5.890630 0
+ L3 8421504 0.020833 15.400264 5.890630 0 15.400268 8.640630 0
+ L3 8421504 0.020833 15.150268 8.640631 0 15.150264 5.890631 0
+ L3 8421504 0.020833 16.650260 2.890629 0 16.650264 5.640629 0
+ L3 8421504 0.020833 16.900264 5.640628 0 16.900260 2.890628 0
+ L3 8421504 0.020833 17.150260 2.890628 0 17.150264 5.640628 0
+ L3 8421504 0.020833 17.400264 5.640628 0 17.400260 2.890628 0
+ L3 8421504 0.020833 17.650260 2.890627 0 17.650264 5.640627 0
+ L3 8421504 0.020833 17.900264 5.640627 0 17.900260 2.890627 0
+ L3 8421504 0.020833 18.150260 2.890627 0 18.150264 5.640627 0
+ L3 8421504 0.020833 18.400264 5.640626 0 18.400260 2.890626 0
+ L3 8421504 0.020833 18.650260 2.890626 0 18.650264 5.640626 0
+ L3 8421504 0.020833 18.900264 5.640626 0 18.900260 2.890626 0
+ L3 8421504 0.020833 19.150260 2.890625 0 19.150264 5.640625 0
+ L3 8421504 0.020833 19.150264 5.890625 0 19.150268 8.640625 0
+ L3 8421504 0.020833 18.900268 8.640626 0 18.900264 5.890626 0
+ L3 8421504 0.020833 18.650264 5.890626 0 18.650268 8.640626 0
+ L3 8421504 0.020833 18.400268 8.640626 0 18.400264 5.890626 0
+ L3 8421504 0.020833 18.150264 5.890627 0 18.150268 8.640627 0
+ L3 8421504 0.020833 17.900268 8.640627 0 17.900264 5.890627 0
+ L3 8421504 0.020833 17.650264 5.890627 0 17.650268 8.640627 0
+ L3 8421504 0.020833 17.400268 8.640628 0 17.400264 5.890628 0
+ L3 8421504 0.020833 17.150264 5.890628 0 17.150268 8.640628 0
+ L3 8421504 0.020833 16.900268 8.640628 0 16.900264 5.890628 0
+ L3 8421504 0.020833 16.650264 5.890629 0 16.650268 8.640629 0
+ L3 8421504 0.020833 16.775268 9.015628 0 16.775268 9.015628 0
+ L3 0 0.031250 13.775260 2.390632 0 13.775258 0.765632 0
+ L3 0 0.031250 13.775258 0.765632 0 13.150258 0.765633 0
+ L3 0 0.031250 13.150258 0.765633 0 13.150258 1.140633 0
+ L3 0 0.031250 13.150258 1.140633 0 11.650258 1.140635 0
+ L3 0 0.031250 18.775257 0.015626 0 19.400257 0.015625 0
+ L3 0 0.031250 19.400257 0.015625 0 19.400257 0.265625 0
+ L3 0 0.031250 19.400257 0.265625 0 19.275257 0.265625 0
+ L3 0 0.031250 18.900257 0.265626 0 18.775257 0.265626 0
+ L3 0 0.031250 18.775257 0.265626 0 18.775257 0.015626 0
+
+ L3 0 0.031250 19.275260 2.765625 0 19.275260 2.390625 0
+ L3 0 0.031250 19.275260 2.390625 0 11.650260 2.390635 0
+ L3 0 0.031250 19.275260 2.390625 0 19.275257 0.140625 0
+ L3 0 0.031250 19.275257 0.140625 0 18.900257 0.140626 0
+ L3 0 0.031250 18.900257 0.140626 0 18.900260 2.390626 0
+ L3 0 0.031250 13.275260 2.390633 0 13.275258 0.890633 0
+ L3 0 0.031250 13.275258 0.890633 0 13.650258 0.890633 0
+ L3 0 0.031250 13.650258 0.890633 0 13.650260 2.390633 0
+ L3 0 0.031250 13.650260 2.390633 0 13.650260 2.765633 0
+ L3 0 0.031250 14.150260 2.765632 0 14.150260 2.390632 0
+ L3 0 0.052083 11.650258 1.140635 0 11.650260 2.765635 0
+ L3 8421504 0.020833 11.650260 2.640635 0 13.650260 2.640633 0
+ L3 8421504 0.020833 13.650260 2.515633 0 11.650260 2.515635 0
+ L3 8421504 0.020833 14.150260 2.515632 0 19.275260 2.515625 0
+ L3 8421504 0.020833 19.275260 2.640625 0 14.150260 2.640632 0
+ L3 8421504 0.020833 18.900259 2.265626 0 19.275259 2.265625 0
+ L3 8421504 0.020833 18.900259 2.140626 0 19.275259 2.140625 0
+ L3 8421504 0.020833 18.900259 2.015626 0 19.275259 2.015625 0
+ L3 8421504 0.020833 18.900259 1.890626 0 19.275259 1.890625 0
+ L3 8421504 0.020833 18.900259 1.765626 0 19.275259 1.765625 0
+ L3 8421504 0.020833 18.900259 1.640626 0 19.275259 1.640625 0
+ L3 8421504 0.020833 18.900258 1.515626 0 19.275258 1.515625 0
+ L3 8421504 0.020833 18.900258 1.390626 0 19.275258 1.390625 0
+ L3 8421504 0.020833 18.900258 1.265626 0 19.275258 1.265625 0
+ L3 8421504 0.020833 18.900258 1.140626 0 19.275258 1.140625 0
+ L3 8421504 0.020833 19.275258 1.015625 0 18.900258 1.015626 0
+ L3 8421504 0.020833 18.900258 0.890626 0 19.275258 0.890625 0
+ L3 8421504 0.020833 19.275258 0.765625 0 18.900258 0.765626 0
+ L3 8421504 0.020833 18.900257 0.640626 0 19.275257 0.640625 0
+ L3 8421504 0.020833 19.275257 0.515625 0 18.900257 0.515626 0
+ L3 8421504 0.020833 18.900257 0.390626 0 19.275257 0.390625 0
+ L3 8421504 0.020833 19.275257 0.265625 0 18.900257 0.265626 0
+ L3 8421504 0.020833 13.275258 1.015633 0 13.650258 1.015633 0
+ L3 8421504 0.020833 13.275258 1.140633 0 13.650258 1.140633 0
+ L3 8421504 0.020833 13.275258 1.265633 0 13.650258 1.265633 0
+ L3 8421504 0.020833 13.650258 1.390633 0 13.275258 1.390633 0
+ L3 8421504 0.020833 13.275258 1.515633 0 13.650258 1.515633 0
+ L3 8421504 0.020833 13.650259 1.640633 0 13.275259 1.640633 0
+ L3 8421504 0.020833 13.275259 1.765633 0 13.650259 1.765633 0
+ L3 8421504 0.020833 13.275259 1.890633 0 13.650259 1.890633 0
+ L3 8421504 0.020833 13.275259 2.015633 0 13.650259 2.015633 0
+ L3 8421504 0.020833 13.275259 2.140633 0 13.650259 2.140633 0
+ L3 8421504 0.020833 13.275259 2.265633 0 13.650259 2.265633 0
+ L3 8421504 0.020833 13.775260 2.390632 0 13.775260 2.765632 0
+ L3 8421504 0.020833 13.900260 2.765632 0 13.900260 2.390632 0
+ L3 8421504 0.020833 14.025260 2.390632 0 14.025260 2.765632 0
+ L3 8421504 0.020833 8.650264 5.765639 0 0.025264 5.765651 0
+ L3 0 0.052083 8.650263 5.265639 0 0.150263 5.265651 0
+ L3 0 0.052083 0.150263 5.265651 0 0.025264 5.765651 0
+ L3 0 0.052083 0.025264 5.765651 0 0.150265 6.265651 0
+ L3 0 0.052083 0.150265 6.265651 0 8.650265 6.265639 0
+ L3 0 0.052083 0.400263 5.265650 0 0.400263 4.765650 0
+ L3 0 0.052083 0.400263 4.765650 0 0.650263 4.765650 0
+ L3 0 0.052083 0.650263 4.765650 0 0.650263 5.265650 0
+ L3 0 0.052083 0.400265 6.265650 0 0.400265 6.765650 0
+ L3 0 0.052083 0.400265 6.765650 0 0.650265 6.765650 0
+ L3 0 0.052083 0.650265 6.765650 0 0.650265 6.265650 0
+ L3 8421504 0.020833 0.275264 5.390650 0 0.275264 5.640650 0
+ L3 8421504 0.020833 0.525264 5.640650 0 0.525264 5.390650 0
+ L3 8421504 0.020833 0.775264 5.390650 0 0.775264 5.640650 0
+ L3 8421504 0.020833 1.025264 5.640649 0 1.025264 5.390649 0
+ L3 8421504 0.020833 1.275264 5.390649 0 1.275264 5.640649 0
+ L3 8421504 0.020833 1.525264 5.640649 0 1.525264 5.390649 0
+ L3 8421504 0.020833 1.775264 5.390648 0 1.775264 5.640648 0
+ L3 8421504 0.020833 2.025264 5.640648 0 2.025264 5.390648 0
+ L3 8421504 0.020833 2.275264 5.390648 0 2.275264 5.640648 0
+ L3 8421504 0.020833 2.525264 5.640647 0 2.525264 5.390647 0
+ L3 8421504 0.020833 2.775264 5.390647 0 2.775264 5.640647 0
+ L3 8421504 0.020833 3.025264 5.640647 0 3.025264 5.390647 0
+ L3 8421504 0.020833 3.275264 5.390646 0 3.275264 5.640646 0
+ L3 8421504 0.020833 3.525264 5.640646 0 3.525264 5.390646 0
+ L3 8421504 0.020833 3.775264 5.390646 0 3.775264 5.640646 0
+ L3 8421504 0.020833 4.025264 5.640645 0 4.025264 5.390645 0
+ L3 8421504 0.020833 4.275264 5.390645 0 4.275264 5.640645 0
+ L3 8421504 0.020833 4.525264 5.640645 0 4.525264 5.390645 0
+ L3 8421504 0.020833 4.775264 5.390644 0 4.775264 5.640644 0
+ L3 8421504 0.020833 5.025264 5.640644 0 5.025264 5.390644 0
+ L3 8421504 0.020833 5.275264 5.390644 0 5.275264 5.640644 0
+ L3 8421504 0.020833 5.525264 5.640643 0 5.525264 5.390643 0
+ L3 8421504 0.020833 5.775264 5.390643 0 5.775264 5.640643 0
+ L3 8421504 0.020833 6.025264 5.640643 0 6.025264 5.390643 0
+ L3 8421504 0.020833 6.275264 5.390642 0 6.275264 5.640642 0
+ L3 8421504 0.020833 6.525264 5.640642 0 6.525264 5.390642 0
+ L3 8421504 0.020833 6.775264 5.390642 0 6.775264 5.640642 0
+ L3 8421504 0.020833 7.025264 5.640641 0 7.025264 5.390641 0
+ L3 8421504 0.020833 7.275264 5.390641 0 7.275264 5.640641 0
+ L3 8421504 0.020833 7.525264 5.640641 0 7.525264 5.390641 0
+ L3 8421504 0.020833 7.775264 5.390640 0 7.775264 5.640640 0
+ L3 8421504 0.020833 8.025264 5.640640 0 8.025264 5.390640 0
+ L3 8421504 0.020833 8.275264 5.390640 0 8.275264 5.640640 0
+ L3 8421504 0.020833 8.525264 5.640639 0 8.525264 5.390639 0
+ L3 8421504 0.020833 8.525264 5.890639 0 8.525265 6.140639 0
+ L3 8421504 0.020833 8.275265 6.140640 0 8.275264 5.890640 0
+ L3 8421504 0.020833 8.025264 5.890640 0 8.025265 6.140640 0
+ L3 8421504 0.020833 7.775265 6.140640 0 7.775264 5.890640 0
+ L3 8421504 0.020833 7.525264 5.890641 0 7.525265 6.140641 0
+ L3 8421504 0.020833 7.275265 6.140641 0 7.275264 5.890641 0
+ L3 8421504 0.020833 7.025264 5.890641 0 7.025265 6.140641 0
+ L3 8421504 0.020833 6.775265 6.140642 0 6.775264 5.890642 0
+ L3 8421504 0.020833 6.525264 5.890642 0 6.525265 6.140642 0
+ L3 8421504 0.020833 6.275265 6.140642 0 6.275264 5.890642 0
+ L3 8421504 0.020833 6.025264 5.890643 0 6.025265 6.140643 0
+ L3 8421504 0.020833 5.775265 6.140643 0 5.775264 5.890643 0
+ L3 8421504 0.020833 5.525264 5.890643 0 5.525265 6.140643 0
+ L3 8421504 0.020833 5.275265 6.140644 0 5.275264 5.890644 0
+ L3 8421504 0.020833 5.025264 5.890644 0 5.025265 6.140644 0
+ L3 8421504 0.020833 4.775264 5.890644 0 4.775265 6.140644 0
+ L3 8421504 0.020833 4.525265 6.140645 0 4.525264 5.890645 0
+ L3 8421504 0.020833 4.275264 5.890645 0 4.275265 6.140645 0
+ L3 8421504 0.020833 4.025265 6.140645 0 4.025264 5.890645 0
+ L3 8421504 0.020833 3.775264 5.890646 0 3.775265 6.140646 0
+ L3 8421504 0.020833 3.525264 5.890646 0 3.525265 6.140646 0
+ L3 8421504 0.020833 3.275265 6.140646 0 3.275264 5.890646 0
+ L3 8421504 0.020833 3.025264 5.890647 0 3.025265 6.140647 0
+ L3 8421504 0.020833 2.775265 6.140647 0 2.775264 5.890647 0
+ L3 8421504 0.020833 2.525264 5.890647 0 2.525265 6.140647 0
+ L3 8421504 0.020833 2.275265 6.140648 0 2.275264 5.890648 0
+ L3 8421504 0.020833 2.025264 5.890648 0 2.025265 6.140648 0
+ L3 8421504 0.020833 1.775265 6.140648 0 1.775264 5.890648 0
+ L3 8421504 0.020833 1.525264 5.890649 0 1.525265 6.140649 0
+ L3 8421504 0.020833 1.275265 6.140649 0 1.275264 5.890649 0
+ L3 8421504 0.020833 1.025264 5.890649 0 1.025265 6.140649 0
+ L3 8421504 0.020833 0.775265 6.140650 0 0.775264 5.890650 0
+ L3 8421504 0.020833 0.525264 5.890650 0 0.525265 6.140650 0
+ L3 8421504 0.020833 0.275265 6.140650 0 0.275264 5.890650 0
+ L3 8421504 0.010417 14.900259 2.140631 0 14.900258 1.140631 0
+ L3 8421504 0.010417 17.900259 2.140627 0 17.900258 1.140627 0
+ END
+
+SUBCONTENTS Walthers Cornerstone HO Structures - Lumber Industries
+STRUCTURE HO "Walthers Sawmill powerhouse 933-3058a"
+ L 0 0.000000 0.020833 0.041667 4.395833 0.041667
+ L 0 0.000000 4.395833 0.041667 4.395833 4.208333
+ L 0 0.000000 4.395833 4.208333 0.020833 4.208333
+ L 0 0.000000 0.020833 4.208333 0.020833 0.041667
+ L 0 0.000000 0.020833 2.083333 4.395833 2.083333
+ A 0 0.000000 0.356000 3.895833 2.791667 0.000000 360.000000
+ A 0 0.000000 0.343592 3.895833 1.250000 0.000000 360.000000
+ END
+STRUCTURE HO "Walthers Sawmill main bldg 933-3058b"
+ L 0 0.000000 0.041667 -0.041667 13.041667 -0.041667
+ L 0 0.000000 13.041667 -0.041667 13.041667 11.958333
+ L 0 0.000000 0.041667 11.958333 0.041667 -0.041667
+ L 0 0.000000 3.958333 11.958333 3.958333 15.958333
+ L 0 0.000000 0.041667 11.958333 0.041667 15.958333
+ L 0 0.000000 3.958333 15.875000 0.041667 15.875000
+ L 0 0.000000 3.958333 11.958333 13.041667 11.958333
+ L 0 0.000000 0.041667 5.958333 13.041667 5.958333
+ L 0 0.000000 1.125000 7.458333 11.708333 7.458333
+ L 0 0.000000 11.708333 7.458333 11.708333 4.541667
+ L 0 0.000000 11.708333 4.541667 1.125000 4.541667
+ L 0 0.000000 1.125000 4.541667 1.125000 7.458333
+ L 0 0.000000 3.958333 11.958333 2.041667 10.041667
+ L 0 0.000000 0.041667 11.958333 1.958333 10.041667
+ L 0 0.000000 1.958333 10.041667 1.958333 15.875000
+ A 0 0.000000 1.900292 2.312500 -3.979167 0.000000 360.000000
+ A 0 0.000000 0.471405 2.229167 -3.979167 0.000000 360.000000
+ L 0 0.000000 2.145833 -2.812500 2.145833 0.687500
+ L 0 0.000000 2.312500 -2.812500 2.312500 0.687500
+ L 0 0.000000 13.062500 0.687500 24.645833 0.687500
+ L 0 0.000000 24.645833 0.687500 24.645833 1.687500
+ L 0 0.000000 24.645833 1.687500 13.062500 1.687500
+ L 0 0.000000 13.062500 1.687500 13.062500 0.687500
+ L 0 0.000000 14.062500 1.937500 14.062500 0.437500
+ L 0 0.000000 15.145833 1.937500 15.145833 0.520833
+ L 0 0.000000 16.229167 1.854167 16.229167 0.354167
+ L 0 0.000000 17.729167 2.020833 17.729167 0.520833
+ L 0 0.000000 19.062500 1.937500 19.062500 0.354167
+ L 0 0.000000 20.395833 1.854167 20.395833 0.437500
+ L 0 0.000000 21.979167 1.937500 21.979167 0.520833
+ L 0 0.000000 23.062500 1.854167 23.062500 0.437500
+ END
+STRUCTURE HO "Walthers Planing Mill 933-3059a"
+ L 0 0.000000 0.041667 0.041667 6.041667 0.041667
+ L 0 0.000000 6.041667 0.041667 6.041667 8.000000
+ L 0 0.000000 6.041667 8.000000 0.041667 8.000000
+ L 0 0.000000 0.041667 8.000000 0.041667 0.041667
+ L 0 0.000000 7.500000 7.291667 9.458333 7.291667
+ L 0 0.000000 9.458333 7.291667 9.458333 5.375000
+ L 0 0.000000 9.458333 5.375000 7.500000 5.375000
+ L 0 0.000000 7.500000 5.375000 7.500000 7.291667
+ L 0 0.000000 5.291667 6.708333 8.333333 6.708333
+ L 0 0.000000 5.333333 6.041667 8.291667 6.041667
+ A 0 0.000000 0.372678 8.458333 6.375000 0.000000 360.000000
+ A 0 0.000000 0.000000 5.291667 5.666667 0.000000 360.000000
+ L 0 0.000000 5.291667 6.833333 5.291667 5.958333
+ L 0 0.000000 5.291667 6.000000 5.041667 6.000000
+ L 0 0.000000 3.000000 0.000000 3.000000 8.000000
+ END
+STRUCTURE HO "Walthers Planing Mill Shed 933-3059b"
+ L 0 0.000000 0.000000 0.000000 6.000000 0.000000
+ L 0 0.000000 6.000000 0.000000 6.000000 9.750000
+ L 0 0.000000 6.000000 9.750000 0.000000 9.750000
+ L 0 0.000000 0.000000 9.750000 0.000000 0.000000
+ L 0 0.000000 2.958333 -0.041667 2.958333 9.750000
+ END
+STRUCTURE HO "Walthers Paper Mill Main Bldg 933-3060a"
+ L 0 0.000000 0.041667 0.083333 20.958333 0.083333
+ L 0 0.000000 20.958333 0.083333 20.958333 10.000000
+ L 0 0.000000 20.958333 10.000000 0.041667 10.000000
+ L 0 0.000000 0.041667 10.000000 0.041667 0.083333
+ L 0 0.000000 20.875000 9.333333 21.041667 9.333333
+ L 0 0.000000 21.041667 9.333333 21.041667 7.916667
+ L 0 0.000000 21.041667 7.916667 20.875000 7.916667
+ L 0 0.000000 20.875000 7.916667 20.875000 9.333333
+ END
+STRUCTURE HO "Walthers Paper Mill Kraft Mill 933-3060b"
+ L 0 0.000000 0.020833 -0.020833 12.020833 -0.020833
+ L 0 0.000000 0.020833 7.979167 0.020833 -0.020833
+ L 0 0.000000 0.020833 7.979167 8.354167 7.979167
+ L 0 0.000000 12.020833 -0.020833 12.020833 4.937500
+ L 0 0.000000 11.979167 4.937500 8.437500 4.937500
+ L 0 0.000000 8.354167 7.979167 8.354167 4.979167
+ END
+STRUCTURE HO "Walthers Sawmill outbldgs log debarker 933-3144a"
+ L 0 0.000000 4.958333 4.833333 0.000000 4.833333
+ L 0 0.000000 0.000000 4.833333 0.000000 0.083333
+ L 0 0.000000 2.375000 0.083333 2.375000 2.833333
+ L 0 0.000000 2.375000 0.083333 0.041667 0.083333
+ L 0 0.000000 2.395833 2.833333 4.937500 2.833333
+ L 0 0.000000 4.937500 4.812500 4.937500 2.854167
+ L 0 0.000000 1.020833 0.062500 1.020833 4.812500
+ END
+STRUCTURE HO "Walthers Sawmill outbldgs gondol loader 933-3144b"
+ L 0 0.000000 0.020833 -0.062500 2.520833 -0.062500
+ L 0 0.000000 2.520833 -0.062500 2.520833 3.645833
+ L 0 0.000000 2.520833 3.645833 0.020833 3.645833
+ L 0 0.000000 0.020833 3.645833 0.020833 -0.062500
+ L 0 0.000000 0.020833 0.937500 2.520833 0.937500
+ L 0 0.000000 1.729167 3.645833 2.479167 3.104167
+ L 0 0.000000 2.479167 1.520833 1.895833 0.937500
+ L 0 0.000000 0.520833 0.937500 0.062500 1.645833
+ L 0 0.000000 0.645833 3.645833 0.062500 3.020833
+ L 0 0.000000 0.645833 3.604167 0.645833 0.979167
+ L 0 0.000000 1.729167 3.604167 1.729167 0.979167
+ END
+STRUCTURE HO "Walthers Sawmill outbldgs truck loader 933-3144c"
+ L 0 0.000000 0.020833 0.104167 4.770833 0.104167
+ L 0 0.000000 4.770833 0.104167 4.770833 3.854167
+ L 0 0.000000 4.770833 3.854167 0.020833 3.854167
+ L 0 0.000000 0.020833 3.854167 0.020833 0.104167
+ L 0 0.000000 0.020833 1.979167 4.770833 1.979167
+ A 0 0.000000 0.515388 2.145833 1.979167 0.000000 360.000000
+ L 0 0.000000 1.604167 1.479167 2.645833 1.479167
+ L 0 0.000000 2.645833 1.479167 2.645833 2.479167
+ L 0 0.000000 2.645833 2.479167 1.604167 2.479167
+ L 0 0.000000 1.604167 2.479167 1.604167 1.479167
+ L 0 0.000000 -0.020833 3.354167 4.770833 3.354167
+ L 0 0.000000 0.020833 0.562500 4.770833 0.562500
+ END
+STRUCTURE HO "Walthers Sawmill outbldgs wood chipper 933-3144d"
+ L 0 0.000000 0.020833 -0.062500 2.270833 -0.062500
+ L 0 0.000000 2.270833 -0.062500 2.270833 1.645833
+ L 0 0.000000 2.270833 1.645833 0.020833 1.645833
+ L 0 0.000000 0.020833 1.645833 0.020833 -0.062500
+ L 0 0.000000 0.020833 0.812500 2.270833 0.812500
+ L 0 0.000000 2.270833 1.020833 5.270833 1.020833
+ L 0 0.000000 5.270833 1.020833 5.270833 0.562500
+ L 0 0.000000 5.270833 0.562500 2.270833 0.562500
+ L 0 0.000000 2.270833 0.562500 2.270833 1.020833
+ END
+
+
+SUBCONTENTS Walthers Cornerstone HO Structures - City Businesses
+STRUCTURE HO "Walthers Bailey Saving & Loan 933-3031"
+ L 16711935 0 0.000000 0.000000 0.000000 5.937500
+ L 16711935 0 0.000000 5.937500 10.125000 5.937500
+ L 16711935 0 10.125000 5.937500 10.125000 0.000000
+ L 16711935 0 10.125000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Crown Paint & Hardware 933-3032"
+ L 16711935 0 0.000000 0.000000 0.000000 4.125000
+ L 16711935 0 0.000000 4.125000 7.625000 4.125000
+ L 16711935 0 7.625000 4.125000 7.625000 0.000000
+ L 16711935 0 7.625000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Neighborhood Food Mart 933-3033"
+ L 16711935 0 0.000000 0.000000 0.000000 8.250000
+ L 16711935 0 0.000000 8.250000 5.000000 8.250000
+ L 16711935 0 5.000000 8.250000 5.000000 0.000000
+ L 16711935 0 5.000000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Bill's Glass Shop 933-3002"
+ L 16711935 0 0.000000 0.000000 0.000000 4.000000
+ L 16711935 0 0.000000 4.000000 3.000000 4.000000
+ L 16711935 0 3.000000 4.000000 3.000000 0.000000
+ L 16711935 0 3.000000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Gemini Bldg 933-3001"
+ L 16711935 0 0.000000 0.000000 0.000000 3.625000
+ L 16711935 0 0.000000 3.625000 4.250000 3.625000
+ L 16711935 0 4.250000 3.625000 4.250000 0.000000
+ L 16711935 0 4.250000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Wallschlager Motors 933-3004"
+ L 16711935 0 0.000000 0.000000 0.000000 5.000000
+ L 16711935 0 0.000000 5.000000 5.250000 5.000000
+ L 16711935 0 5.250000 5.000000 5.250000 0.000000
+ L 16711935 0 5.250000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers White Tower Restaurant 933-3030"
+ L 16711935 0 0.000000 0.000000 0.000000 3.000000
+ L 16711935 0 0.000000 3.000000 4.625000 3.000000
+ L 16711935 0 4.625000 3.000000 4.625000 0.000000
+ L 16711935 0 4.625000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Adam's Rib Restaurant 933-3034"
+ L 16711935 0 0.000000 0.000000 0.000000 3.000000
+ L 16711935 0 0.000000 3.000000 5.500000 3.000000
+ L 16711935 0 5.500000 3.000000 5.500000 0.000000
+ L 16711935 0 5.500000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Western Ave Fire Station 933-3037"
+ L 16711935 0 0.000000 0.000000 0.000000 6.750000
+ L 16711935 0 0.000000 6.750000 4.250000 6.750000
+ L 16711935 0 4.250000 6.750000 4.250000 0.000000
+ L 16711935 0 4.250000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Main St, Merchant's Row 1 933-3028"
+ L 16711935 0 0.000000 0.000000 0.000000 5.000000
+ L 16711935 0 0.000000 5.000000 11.000000 5.000000
+ L 16711935 0 11.000000 5.000000 11.000000 0.000000
+ L 16711935 0 11.000000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Don's Shoe Store 933-3000"
+ L 16711935 0 0.000000 0.000000 0.000000 3.500000
+ L 16711935 0 0.000000 3.500000 2.500000 3.500000
+ L 16711935 0 2.500000 3.500000 2.500000 0.000000
+ L 16711935 0 2.500000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Interstate Fuel & Oil Gas Station 933-3035"
+ L 16711935 0 0.000000 0.000000 0.000000 7.750000
+ L 16711935 0 0.000000 7.750000 9.250000 7.750000
+ L 16711935 0 9.250000 7.750000 9.250000 0.000000
+ L 16711935 0 9.250000 0.000000 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Main St, Merchant's Row 2 933-3029"
+ L 16711935 0 0.000000 0.000000 0.000000 5.000000
+ L 16711935 0 0.000000 5.000000 10.000000 5.000000
+ L 16711935 0 10.000000 5.000000 10.000000 0.000000
+ L 16711935 0 10.000000 0.000000 0.000000 0.000000
+ END
+
+
+SUBCONTENTS Walthers Cornerstone HO Structures - Engine Servicing Structures
+STRUCTURE HO "Walther's Cornerstone Structure Backshop 933-3227"
+ F3 12632256 0.000000 4
+ 0.000000 12.858780 0
+ 0.000017 0.000000 0
+ 9.644104 0.000013 0
+ 9.644088 12.858800 0
+ F3 8388608 0.000000 4
+ 9.644088 12.858800 0
+ 9.644088 12.629180 0
+ 0.000000 12.629160 0
+ 0.000000 12.858780 0
+ F3 8388608 0.000000 4
+ 9.644088 12.858800 0
+ 9.644104 0.000013 0
+ 9.414483 0.000013 0
+ 9.414466 12.858800 0
+ F3 8388608 0.000000 4
+ 0.000017 0.000000 0
+ 0.000017 0.229621 0
+ 9.644104 0.229634 0
+ 9.644104 0.000013 0
+ F3 8388608 0.000000 4
+ 0.000000 12.858780 0
+ 0.000017 0.000000 0
+ 0.229638 0.000000 0
+ 0.229621 12.858780 0
+ F3 8388608 0.000000 4
+ 9.471873 11.739390 0
+ 9.471871 12.657880 0
+ 8.926521 12.657880 0
+ 8.926523 11.739390 0
+ F3 8388608 0.000000 4
+ 0.229623 11.768080 0
+ 0.229621 12.686570 0
+ 0.918485 12.686570 0
+ 0.918486 11.768080 0
+ F3 8388608 0.000000 4
+ 0.229636 1.205511 0
+ 0.229638 0.172216 0
+ 0.918501 0.172218 0
+ 0.918499 1.205513 0
+ F3 8388608 0.000000 4
+ 9.471887 1.205524 0
+ 9.471889 0.200931 0
+ 8.926538 0.200930 0
+ 8.926537 1.205522 0
+ F3 8388608 0.000000 4
+ 0.258331 6.888634 0
+ 0.258333 5.998852 0
+ 0.947196 5.998854 0
+ 0.947195 6.888636 0
+ F3 8388608 0.000000 4
+ 9.500581 6.888647 0
+ 9.500583 5.998865 0
+ 8.955233 5.998863 0
+ 8.955231 6.888645 0
+ END
+STRUCTURE HO "Walther's Cornerstone Structure Cinder Conveyor & Ash Pit 933-3816"
+ F3 8421504 0.000000 4
+ 0.229621 0.688863 0
+ 1.836969 0.688863 0
+ 1.836969 3.903559 0
+ 0.229621 3.903559 0
+ F3 8421504 0.000000 4
+ 0.000000 3.214696 0
+ 2.066590 3.214696 0
+ 2.066590 2.525832 0
+ 0.000000 2.525832 0
+ F3 0 0.000000 4
+ 0.086108 3.099885 0
+ 1.951780 3.099885 0
+ 1.951780 2.640643 0
+ 0.086108 2.640643 0
+ F3 14803425 0.000000 4
+ 0.774971 1.176808 0
+ 1.836969 1.176808 0
+ 1.836969 2.210103 0
+ 0.774971 2.210103 0
+ L3 0 0.000000 0.861079 2.238806 0 0.861079 1.148106 0
+ L3 0 0.000000 0.975890 2.238806 0 0.975890 1.176808 0
+ L3 0 0.000000 1.090700 2.210103 0 1.090700 1.176808 0
+ L3 0 0.000000 1.205511 2.238806 0 1.205511 1.119403 0
+ L3 0 0.000000 1.320321 2.238806 0 1.320321 1.176808 0
+ L3 0 0.000000 1.435132 2.210103 0 1.435132 1.176808 0
+ L3 0 0.000000 1.549943 2.238806 0 1.549943 1.176808 0
+ L3 0 0.000000 1.664753 2.238806 0 1.664753 1.176808 0
+ F3 0 0.000000 4
+ 0.229621 0.688863 0
+ 1.836969 0.688863 0
+ 1.836969 0.746269 0
+ 0.229621 0.746269 0
+ F3 14342874 0.000000 4
+ 0.574053 0.688863 0
+ 1.492537 0.688863 0
+ 1.492537 0.000000 0
+ 0.574053 0.000000 0
+ F3 0 0.000000 4
+ 0.746269 2.267509 0
+ 0.229621 2.267509 0
+ 0.229621 2.238806 0
+ 0.746269 2.238806 0
+ F3 0 0.000000 4
+ 0.200919 0.746269 0
+ 0.258324 0.746269 0
+ 0.258324 2.267509 0
+ 0.200919 2.267509 0
+ F3 0 0.000000 4
+ 1.808266 0.717566 0
+ 1.750861 0.717566 0
+ 1.750861 1.205511 0
+ 1.808266 1.205511 0
+ L3 0 0.000000 0.832377 0.000000 0 0.832377 0.717566 0
+ L3 0 0.000000 1.176808 0.000000 0 1.176808 0.746269 0
+ END
+STRUCTURE HO "Walther's Cornerstone Structure Sand Drying Building 933-3813"
+ F3 8421504 0.000000 4
+ 0.000000 0.000000 0
+ 3.329506 0.000000 0
+ 3.329506 3.099885 0
+ 0.000000 3.099885 0
+ L3 0 0.000000 0.000000 1.549943 0 3.329506 1.549943 0
+ L3 0 0.000000 1.406429 1.779564 0 2.066590 1.779564 0
+ L3 0 0.000000 2.066590 1.779564 0 2.066590 1.291619 0
+ L3 0 0.000000 2.066590 1.291619 0 1.406429 1.291619 0
+ L3 0 0.000000 1.406429 1.291619 0 1.406429 1.779564 0
+ F3 16777215 0.000000 4
+ 2.296211 2.525832 0
+ 2.583238 2.525832 0
+ 2.583238 2.296211 0
+ 2.296211 2.296211 0
+ F3 0 0.000000 4
+ 2.353616 2.468427 0
+ 2.497130 2.468427 0
+ 2.497130 2.353616 0
+ 2.353616 2.353616 0
+ END
+STRUCTURE HO "Walther's Cornerstone Structure Sanding Storage Bin 933-3813"
+ F3 8421504 0.000000 4
+ 0.000000 0.000000 0
+ 6.429391 0.000000 0
+ 6.429391 3.099885 0
+ 0.000000 3.099885 0
+ F3 16777215 0.000000 4
+ 0.229621 2.870264 0
+ 6.257176 2.870264 0
+ 6.257176 0.200919 0
+ 0.229621 0.200919 0
+ END
+STRUCTURE HO "Walther's Cornerstone Structure Small Sanding Tower 933-3813"
+ F3 15790080 0.000000 4
+ 0.000000 0.688863 0
+ 1.607348 0.688863 0
+ 1.607348 1.262916 0
+ 0.000000 1.262916 0
+ G3 12632256 0.000000 0.344432 0.803674 1.033295 0
+ L3 0 0.000000 0.803674 1.377727 0 0.803674 3.903559 0
+ L3 0 0.000000 0.803674 0.688863 0 0.803674 0.000000 0
+ END
+STRUCTURE HO "Walther's Cornerstone Structure Large Sanding Tower 933-3813"
+ F3 14803200 0.000000 4
+ 0.000000 2.181401 0
+ 1.377727 2.181401 0
+ 1.377727 3.559128 0
+ 0.000000 3.559128 0
+ F3 12895232 0.000000 4
+ 0.344432 2.525832 0
+ 1.033295 2.525832 0
+ 1.033295 3.214696 0
+ 0.344432 3.214696 0
+ G3 12632256 0.000000 0.315729 0.660161 2.898967 0
+ F3 14803200 0.000000 4
+ 0.545350 0.000000 0
+ 0.889782 0.000000 0
+ 0.889782 0.344432 0
+ 0.545350 0.344432 0
+ F3 14803200 0.000000 4
+ 0.536028 5.645098 0
+ 0.880459 5.645098 0
+ 0.880459 5.989530 0
+ 0.536028 5.989530 0
+ F3 12632256 0.000000 4
+ 0.602756 5.912744 0
+ 0.803674 5.912744 0
+ 0.803674 5.769231 0
+ 0.602756 5.769231 0
+ F3 12632256 0.000000 4
+ 0.631458 0.287026 0
+ 0.803674 0.287026 0
+ 0.803674 0.114811 0
+ 0.631458 0.114811 0
+ L3 0 0.000000 0.688863 3.185993 0 0.688863 5.797934 0
+ L3 0 0.000000 0.688863 2.583238 0 0.688858 0.315729 0
+ END
+STRUCTURE HO "Walther's Cornerstone Structures Machine Shop 933-3264"
+ F3 12632256 0.000000 4
+ 5.539610 0.000000 0
+ 9.529277 0.000000 0
+ 9.529277 3.903559 0
+ 5.539610 3.903559 0
+ F3 8388608 0.000000 4
+ 5.539610 3.903559 0
+ 9.529277 3.903559 0
+ 9.529277 3.788749 0
+ 5.539610 3.788749 0
+ F3 8388608 0.000000 4
+ 9.529277 0.000000 0
+ 9.414466 0.000000 0
+ 9.414466 3.846154 0
+ 9.529277 3.846154 0
+ F3 8388608 0.000000 4
+ 5.539610 0.000000 0
+ 9.500574 0.000000 0
+ 9.500574 0.114811 0
+ 5.539610 0.114811 0
+ G3 8388608 0.000000 0.634063 7.577497 4.592422 0
+ G3 0 0.000000 0.459242 7.577497 4.592422 0
+ F3 8388608 0.000000 4
+ 5.539610 1.836969 0
+ 7.376579 1.836969 0
+ 7.376579 1.722158 0
+ 5.539610 1.722158 0
+ F3 8388608 0.000000 4
+ 7.376579 0.114811 0
+ 7.261768 0.114811 0
+ 7.261768 1.836969 0
+ 7.376579 1.836969 0
+ F3 12632256 0.000000 4
+ 0.028703 0.028703 0
+ 5.539610 0.028703 0
+ 5.539610 14.954080 0
+ 0.028703 14.954080 0
+ F3 8388608 0.000000 4
+ 5.568312 0.086108 0
+ 5.424799 0.086108 0
+ 5.424799 14.954080 0
+ 5.568312 14.954080 0
+ F3 8388608 0.000000 4
+ 0.028703 14.954080 0
+ 0.172216 14.954080 0
+ 0.172216 0.028703 0
+ 0.028703 0.028703 0
+ G3 0 0.000000 0.344432 3.702641 11.050520 0
+ F3 8388608 0.000000 4
+ 0.000000 14.925370 0
+ 5.510907 14.925370 0
+ 5.510907 14.810560 0
+ 0.000000 14.810560 0
+ F3 8388608 0.000000 4
+ 0.057405 0.000000 0
+ 5.568312 0.000000 0
+ 5.568312 0.114811 0
+ 0.057405 0.114811 0
+ G3 0 0.000000 0.344432 3.731343 5.510907 0
+ G3 0 0.000000 0.344432 3.731343 8.266360 0
+ G3 0 0.000000 0.344432 3.731343 2.755454 0
+ END
+STRUCTURE HO "Wahther's Cornerstone Structures Machine Shop Engine Room 933-3264A"
+ F3 12632256 0.000000 4
+ 0.000000 0.000000 0
+ 5.510907 0.000000 0
+ 5.510907 11.021810 0
+ 0.000000 11.021810 0
+ F3 8388608 0.000000 4
+ 0.000000 11.021810 0
+ 5.424799 11.021810 0
+ 5.424799 10.907000 0
+ 0.000000 10.907000 0
+ F3 8388608 0.000000 4
+ 5.510907 11.021810 0
+ 5.396097 11.021810 0
+ 5.396097 0.000000 0
+ 5.510907 0.000000 0
+ F3 8388608 0.000000 4
+ 0.000000 0.000000 0
+ 5.453502 0.000000 0
+ 5.453502 0.114811 0
+ 0.000000 0.114811 0
+ F3 8388608 0.000000 4
+ 0.000000 0.000000 0
+ 0.114811 0.000000 0
+ 0.114811 11.021810 0
+ 0.000000 11.021810 0
+ G3 0 0.000000 0.344432 2.755454 5.510907 0
+ G3 0 0.000000 0.344432 2.755454 9.184845 0
+ G3 0 0.000000 0.344432 2.755454 1.836969 0
+ END
+STRUCTURE HO "Walthers Modern Coaling Tower 933-3262"
+ F3 8421504 0.000000 4
+ 0.000000 7.663605 0
+ 2.296211 7.663605 0
+ 2.296211 1.923077 0
+ 0.000000 1.923077 0
+ F3 8421504 0.000000 4
+ 3.673938 2.037888 0
+ 9.184845 2.037888 0
+ 9.184845 7.548795 0
+ 3.673938 7.548795 0
+ F3 8421504 0.000000 4
+ 3.673938 3.903559 0
+ 2.296211 3.903559 0
+ 2.296211 5.740528 0
+ 3.673938 5.740528 0
+ L3 0 0.000000 1.148106 1.951780 0 1.148106 7.692308 0
+ L3 0 0.000000 2.296211 5.740528 0 2.296211 3.903559 0
+ L3 0 0.000000 3.673938 5.740528 0 9.184845 5.740528 0
+ L3 0 0.000000 3.673938 3.903559 0 9.184845 3.903559 0
+ L3 0 0.000000 6.429391 2.066590 0 6.429391 3.903559 0
+ L3 0 0.000000 6.429391 5.740528 0 6.429391 7.577497 0
+ L3 0 0.000000 3.673938 5.740528 0 3.673938 3.903559 0
+ L3 0 0.000000 5.051665 5.740528 0 5.051665 3.903559 0
+ L3 0 0.000000 4.362802 3.903559 0 4.362802 5.740528 0
+ L3 0 0.000000 8.926521 7.577497 0 8.495982 7.577497 0
+ L3 0 0.000000 8.495982 7.577497 0 8.495982 9.644088 0
+ L3 0 0.000000 8.495982 9.644088 0 8.926521 9.644088 0
+ L3 0 0.000000 8.926521 9.644088 0 8.926521 7.577497 0
+ L3 0 0.000000 8.955224 0.000000 0 8.495982 0.000000 0
+ L3 0 0.000000 8.495982 0.000000 0 8.495982 2.037888 0
+ L3 0 0.000000 8.495982 2.037888 0 8.955224 2.037888 0
+ L3 0 0.000000 8.955224 2.037888 0 8.955224 0.000000 0
+ L3 0 0.000000 3.673938 0.000000 0 3.214696 0.000000 0
+ L3 0 0.000000 3.214696 0.000000 0 3.214696 3.960964 0
+ L3 0 0.000000 3.214696 3.960964 0 3.673938 3.960964 0
+ L3 0 0.000000 3.673938 3.960964 0 3.673938 0.000000 0
+ L3 0 0.000000 8.495982 7.807118 0 8.897819 7.807118 0
+ L3 0 0.000000 8.495982 8.036739 0 8.926521 8.036739 0
+ L3 0 0.000000 8.495982 8.266360 0 8.955224 8.266360 0
+ L3 0 0.000000 8.495982 8.495982 0 8.926521 8.495982 0
+ L3 0 0.000000 8.495982 8.725603 0 8.955224 8.725603 0
+ L3 0 0.000000 8.495982 8.955224 0 8.926521 8.955224 0
+ L3 0 0.000000 8.495982 9.184845 0 8.926521 9.184845 0
+ L3 0 0.000000 8.495982 9.414466 0 8.897819 9.414466 0
+ L3 0 0.000000 8.495982 9.644088 0 8.926521 9.644088 0
+ L3 0 0.000000 8.495982 0.000000 0 8.955224 0.000000 0
+ L3 0 0.000000 8.495982 0.229621 0 8.955224 0.229621 0
+ L3 0 0.000000 8.495982 0.459242 0 8.955224 0.459242 0
+ L3 0 0.000000 8.495982 0.688863 0 8.926521 0.688863 0
+ L3 0 0.000000 8.524684 0.918485 0 8.926521 0.918485 0
+ L3 0 0.000000 8.495982 1.148106 0 8.926521 1.148106 0
+ L3 0 0.000000 8.524684 1.607348 0 8.926521 1.607348 0
+ L3 0 0.000000 8.495982 1.377727 0 8.955224 1.377727 0
+ L3 0 0.000000 8.495982 1.836969 0 8.955224 1.836969 0
+ L3 0 0.000000 3.214696 0.000000 0 3.673938 0.000000 0
+ L3 0 0.000000 3.214696 0.229621 0 3.673938 0.229621 0
+ L3 0 0.000000 3.214696 0.459242 0 3.673938 0.459242 0
+ L3 0 0.000000 3.214696 0.688863 0 3.702641 0.688863 0
+ L3 0 0.000000 3.214696 0.918485 0 3.673938 0.918485 0
+ L3 0 0.000000 3.214696 1.836969 0 3.673938 1.836969 0
+ L3 0 0.000000 3.214696 1.607348 0 3.673938 1.607348 0
+ L3 0 0.000000 3.214696 1.148106 0 3.673938 1.148106 0
+ L3 0 0.000000 3.214696 1.377727 0 3.673938 1.377727 0
+ L3 0 0.000000 3.214696 3.673938 0 3.673938 3.673938 0
+ L3 0 0.000000 3.214696 3.444317 0 3.673938 3.444317 0
+ L3 0 0.000000 3.214696 3.214696 0 3.645235 3.214696 0
+ L3 0 0.000000 3.214696 2.985075 0 3.616533 2.985075 0
+ L3 0 0.000000 3.214696 2.755454 0 3.616533 2.755454 0
+ L3 0 0.000000 3.214696 2.525832 0 3.645235 2.525832 0
+ L3 0 0.000000 3.214696 2.296211 0 3.645235 2.296211 0
+ L3 0 0.000000 3.214696 2.066590 0 3.645235 2.066590 0
+ END
+STRUCTURE HO "Walthers Modern Coaling Tower Office 933-3262"
+ F3 8421504 0.000000 4
+ 0.000000 3.673938 0
+ 1.377727 3.673938 0
+ 1.377727 0.459242 0
+ 0.000000 0.459242 0
+ F3 12632256 0.000000 4
+ 0.229621 0.459242 0
+ 1.148106 0.459242 0
+ 1.148106 0.000000 0
+ 0.229621 0.000000 0
+ END
+STRUCTURE HO "Walthers Steel Water Tower B/U 933-2601"
+ F3 0 0.000000 4
+ 0.459242 0.000000 0
+ 0.459242 0.000000 0
+ 0.459242 0.000000 0
+ 0.459242 0.000000 0
+ F3 15395562 0.000000 9
+ 0.459242 0.000000 0
+ 0.459242 0.000000 0
+ 3.214696 0.000000 0
+ 3.673938 0.459242 0
+ 3.673938 3.214696 0
+ 3.214696 3.673938 0
+ 0.459242 3.673938 0
+ 0.000000 3.214696 0
+ 0.028703 0.459242 0
+ G3 8421504 0.000000 1.836969 1.836969 1.836969 0
+ L3 0 0.000000 0.000000 1.836969 0 3.673938 1.836969 0
+ L3 0 0.000000 1.836969 0.000000 0 1.836969 3.673938 0
+ L3 0 0.000000 0.516648 3.099885 0 3.157290 0.631458 0
+ L3 0 0.000000 0.602756 0.516648 0 3.042480 3.157290 0
+ L3 0 0.000000 0.605592 3.229621 0 1.871307 1.898296 0
+ L3 0 0.000000 0.439177 3.071407 0 1.704891 1.740082 0
+ L3 0 0.000000 0.922021 2.896790 0 0.755606 2.738575 0
+ L3 0 0.000000 1.080235 2.730373 0 0.913820 2.572161 0
+ L3 0 0.000000 1.238450 2.563959 0 1.030429 2.366191 0
+ L3 0 0.000000 1.375862 2.377767 0 1.188644 2.199776 0
+ L3 0 0.000000 1.713093 2.064713 0 1.525875 1.886721 0
+ L3 0 0.000000 1.871307 1.898296 0 1.704891 1.740082 0
+ L3 0 0.000000 1.554878 2.231128 0 1.388462 2.072913 0
+ L3 0 0.000000 0.763806 3.063205 0 0.597392 2.904990 0
+ L3 0 0.000000 0.605592 3.229621 0 0.439177 3.071407 0
+ END
+STRUCTURE HO "Walthers Oil Column B/U 933-2601"
+ F3 14803425 0.000000 4
+ 0.000000 0.000000 0
+ 0.918485 0.000000 0
+ 0.918485 0.918485 0
+ 0.000000 0.918485 0
+ F3 0 0.000000 4
+ 0.459242 0.516648 0
+ 1.148106 0.516648 0
+ 1.148106 0.401837 0
+ 0.459242 0.401837 0
+ END
+STRUCTURE HO "Walthers Water Column B/U 933-2601"
+ F3 14342874 0.000000 4
+ 0.000000 0.000000 0
+ 1.607348 0.000000 0
+ 1.607348 0.918485 0
+ 0.000000 0.918485 0
+ F3 0 0.000000 4
+ 0.459242 0.516648 0
+ 1.836969 0.516648 0
+ 1.836969 0.401837 0
+ 0.459242 0.401837 0
+ END
+STRUCTURE HO "Walther's Cornerstone Structures Modern Round House 933-3260"
+ F3 15496704 0.000000 10
+ 4.592422 0.057405 0
+ 0.000000 19.001150 0
+ 0.057405 19.001150 0
+ 5.625718 20.206660 0
+ 11.768080 20.206660 0
+ 17.336400 19.058550 0
+ 12.858780 0.057405 0
+ 10.103330 0.516648 0
+ 7.347876 0.516648 0
+ 4.592422 0.057405 0
+ L3 0 0.000000 8.438577 0.057405 0 8.438577 0.057405 0
+ L3 0 0.000000 12.055110 0.057405 0 12.055110 0.057405 0
+ L3 0 0.000000 11.710680 0.114811 0 11.710680 0.057405 0
+ L3 0 0.000000 11.653270 20.264060 0 17.393800 19.058550 0
+ L3 0 0.000000 0.000000 19.001150 0 5.625718 20.206660 0
+ L3 0 0.000000 5.568312 20.264060 0 11.710680 20.264060 0
+ L3 0 0.000000 6.084960 14.867970 0 11.308840 14.867970 0
+ L3 0 0.000000 6.831229 6.314581 0 10.562570 6.314581 0
+ L3 0 0.000000 7.347876 0.516648 0 7.347876 0.516648 0
+ L3 0 0.000000 7.347876 0.516648 0 10.103330 0.516648 0
+ L3 0 0.000000 10.103330 0.516648 0 12.743970 0.057405 0
+ L3 0 0.000000 12.858780 0.000000 0 17.336400 19.058550 0
+ L3 0 0.000000 10.103330 0.459242 0 11.768080 20.206660 0
+ L3 0 0.000000 7.347876 0.516648 0 4.592422 0.057405 0
+ L3 0 0.000000 4.592422 0.057405 0 0.000000 19.001150 0
+ L3 0 0.000000 7.347876 0.516648 0 5.568312 20.264060 0
+ L3 0 0.000000 6.773823 6.314581 0 3.214696 5.510907 0
+ L3 0 0.000000 10.562570 6.314581 0 14.121700 5.568312 0
+ L3 0 0.000000 11.366250 14.867970 0 16.130880 13.892080 0
+ L3 0 0.000000 6.027555 14.867970 0 1.262916 13.719860 0
+ END
+STRUCTURE HO "Walthers Union City Roundhouse 933-3202xx"
+ L3 32768 0.041667 9.452816 25.353970 0 0.038350 15.595070 0
+ L3 32768 0.020833 4.860394 8.419414 0 17.432150 13.643290 0
+ L3 32768 0.020833 3.654883 11.060060 0 15.308160 17.833880 0
+ L3 32768 0.020833 2.047535 13.413670 0 12.724920 21.622630 0
+ L3 32768 0.020833 5.836284 5.606555 0 18.924690 9.223087 0
+ L3 32768 0.020833 6.410336 2.908506 0 19.785770 4.630664 0
+ A3 32768 0.041667 35.591270 -15.403670 0.038242 0 44.474403 45.525597
+ A3 32768 0.041667 22.043630 -15.403670 0.038242 0 44.468552 45.531448
+ L3 32768 0.020833 20.072790 0.038242 0 6.525147 0.038242 0
+ A3 32768 0.041667 29.162110 -15.403670 0.038242 0 44.521254 45.478746
+ A3 32768 0.020833 25.602820 -15.403670 0.038242 0 44.443785 45.556215
+ A3 32768 0.020833 32.491390 -15.403670 0.038242 0 44.498085 45.501915
+ A3 32768 0.020833 32.491390 -15.403670 0.038242 0 44.354681 45.645319
+ L3 32768 0.020833 9.247304 17.592280 0 10.255170 16.056490 0
+ L3 32768 0.020833 10.255170 16.056490 0 8.335421 14.796660 0
+ L3 32768 0.020833 8.335421 14.796660 0 7.327559 16.332450 0
+ L3 32768 0.020833 7.327559 16.332450 0 9.247304 17.592280 0
+ L3 32768 0.020833 11.790940 6.352979 0 14.046450 6.783416 0
+ L3 32768 0.020833 14.046450 6.783416 0 14.390800 4.979011 0
+ L3 32768 0.020833 14.390800 4.979011 0 12.135290 4.548574 0
+ L3 32768 0.020833 12.135290 4.548574 0 11.790940 6.352979 0
+ L3 32768 0.020833 10.793430 9.823590 0 12.961810 10.579030 0
+ L3 32768 0.020833 12.961810 10.579030 0 13.566160 8.844321 0
+ L3 32768 0.020833 13.566160 8.844321 0 11.397780 8.088882 0
+ L3 32768 0.020833 11.397780 8.088882 0 10.793430 9.823590 0
+ L3 32768 0.020833 9.222174 13.236830 0 11.245010 14.323440 0
+ L3 32768 0.020833 11.245010 14.323440 0 12.114300 12.705170 0
+ L3 32768 0.020833 12.114300 12.705170 0 10.091460 11.618560 0
+ L3 32768 0.020833 10.091460 11.618560 0 9.222174 13.236830 0
+ L3 32768 0.020833 5.089516 19.357520 0 6.665311 20.694550 0
+ L3 32768 0.020833 6.665311 20.694550 0 7.853786 19.293840 0
+ L3 32768 0.020833 7.853786 19.293840 0 6.277990 17.956810 0
+ L3 32768 0.020833 6.277990 17.956810 0 5.089516 19.357520 0
+ L3 32768 0.020833 12.369590 2.753752 0 14.658730 2.933794 0
+ L3 32768 0.020833 14.658730 2.933794 0 14.802760 1.102481 0
+ L3 32768 0.020833 14.802760 1.102481 0 12.513620 0.922438 0
+ L3 32768 0.020833 12.513620 0.922438 0 12.369590 2.753752 0
+ A3 32768 0.020833 0.324734 18.580260 2.162237 0 0.000000 360.000000
+ A3 32768 0.020833 0.324734 18.061110 6.637327 0 0.000000 360.000000
+ A3 32768 0.020833 0.324734 7.670751 4.513332 0 0.000000 360.000000
+ A3 32768 0.020833 0.324734 6.924482 7.498406 0 0.000000 360.000000
+ A3 32768 0.020833 0.324734 5.718971 10.426080 0 0.000000 360.000000
+ A3 32768 0.020833 0.324734 4.169029 13.124120 0 0.000000 360.000000
+ A3 32768 0.020833 0.324734 2.274655 15.535150 0 0.000000 360.000000
+ A3 32768 0.020833 0.324734 16.913000 10.942720 0 0.000000 360.000000
+ A3 32768 0.020833 0.324734 15.190840 15.133310 0 0.000000 360.000000
+ A3 32768 0.020833 0.324734 10.196580 22.596000 0 0.000000 360.000000
+ A3 32768 0.020833 0.324734 8.072588 1.585662 0 0.000000 360.000000
+ A3 32768 0.020833 0.324734 12.952040 18.979460 0 0.000000 360.000000
+ END
+STRUCTURE HO "Walthers 2-Stall Engine House 933-3204"
+ L 0 0 0.000000 0.000000 14.006890 0.000000
+ L 0 0 14.006890 0.000000 14.006890 5.970150
+ L 0 0 14.006890 5.970150 0.000000 5.970150
+ L 0 0 0.000000 5.970150 0.000000 0.000000
+ L 0 0 0.000000 2.985075 14.006890 2.985075
+ L 0 0 0.000000 3.673938 14.006890 3.673938
+ L 0 0 0.000000 2.296211 14.006890 2.296211
+ A 0 0 0.413956 12.169920 1.607348 0.000000 360.000000
+ A 0 0 0.256724 12.169920 1.607348 0.000000 360.000000
+ A 0 0 0.413956 1.836969 1.607348 0.000000 360.000000
+ A 0 0 0.256724 1.836969 1.607348 0.000000 360.000000
+ A 0 0 0.413956 1.836969 4.362802 0.000000 360.000000
+ A 0 0 0.256724 1.836969 4.362802 0.000000 360.000000
+ A 0 0 0.413956 12.169920 4.362802 0.000000 360.000000
+ A 0 0 0.256724 12.169920 4.362802 0.000000 360.000000
+ END
+STRUCTURE HO "Walthers Backshop 933-3039"
+ L 0 0.000000 0.000000 0.000000 11.625000 0.000000
+ L 0 0.000000 11.625000 0.000000 11.625000 8.812500
+ L 0 0.000000 11.625000 8.812500 0.000000 8.812500
+ L 0 0.000000 0.000000 8.812500 0.000000 0.000000
+ END
+STRUCTURE HO "Walthers Car Shop 933-3040"
+ F3 14803425 0.000000 4
+ 0.000000 4.406250 0
+ 11.625000 4.406250 0
+ 11.620000 -4.406250 0
+ 0.000000 -4.406250 0
+ L3 0 0.083333 0.000000 -4.406250 0 11.625000 -4.406235 0
+ L3 0 0.083333 0.000000 4.406250 0 11.625000 4.406250 0
+ L3 0 0.083333 0.000000 4.406500 0 0.000000 -4.406500 0
+ L3 0 0.083333 11.625000 4.406500 0 11.625000 -4.406500 0
+ END
+STRUCTURE HO "Walthers Rail Shop 933-2970"
+ F3 16751128 0.000000 4
+ 0.000000 4.406250 0
+ 17.125000 4.406250 0
+ 17.125000 -4.406250 0
+ 0.000000 -4.406250 0
+ L3 0 0.053333 0.000000 -4.406250 0 17.125000 -4.406235 0
+ L3 0 0.053333 0.000000 4.406250 0 17.125000 4.406250 0
+ L3 0 0.053333 0.000000 4.406500 0 0.000000 -4.406500 0
+ L3 0 0.053333 17.125000 4.406500 0 17.125000 -4.406500 0
+ L3 0 0.053333 11.416700 4.406000 0 11.416700 -4.406000 0
+ G3 14803425 0.000000 1.000000 14.500000 0.000000 0
+ G3 14803425 0.000000 1.000000 14.500000 2.938000 0
+ G3 14803425 0.000000 1.000000 14.500000 -2.937000 0
+ G3 14803425 0.000000 1.000000 2.399600 2.938000 0
+ G3 14803425 0.000000 1.000000 2.399600 0.000000 0
+ G3 14803425 0.000000 1.000000 2.399600 -2.937000 0
+ G3 14803425 0.000000 1.000000 9.149600 2.938000 0
+ G3 14803425 0.000000 1.000000 9.149601 0.000000 0
+ G3 14803425 0.000000 1.000000 9.149601 -2.937000 0
+ A3 0 0.053333 1.000000 14.500000 0.000000 0 0.000000 360.000000
+ A3 0 0.053333 1.000000 14.500000 2.938000 0 0.000000 360.000000
+ A3 0 0.053333 1.000000 14.500000 -2.937000 0 0.000000 360.000000
+ A3 0 0.053333 1.000000 2.399600 2.938000 0 0.000000 360.000000
+ A3 0 0.053333 1.000000 2.399600 0.000000 0 0.000000 360.000000
+ A3 0 0.053333 1.000000 2.399600 -2.937000 0 0.000000 360.000000
+ A3 0 0.053333 1.000000 9.149600 2.938000 0 0.000000 360.000000
+ A3 0 0.053333 1.000000 9.149601 0.000000 0 0.000000 360.000000
+ A3 0 0.053333 1.000000 9.149601 -2.937000 0 0.000000 360.000000
+ END
+STRUCTURE HO "Walthers Allied Rail Rebuilders 933-3016"
+ F3 14803425 0.000000 4
+ 0.000000 5.000000 0
+ 0.000000 -5.000000 0
+ 10.000000 -5.000000 0
+ 10.000000 5.000000 0
+ L3 0 0.083333 0.000000 -5.000000 0 10.000000 -5.000000 0
+ L3 0 0.083333 10.000000 -5.000000 0 10.000000 5.000000 0
+ L3 0 0.083333 10.000000 5.000000 0 0.000000 5.000000 0
+ L3 0 0.083333 0.000000 5.000000 0 0.000000 -5.000000 0
+ L3 0 0.083333 0.000000 -2.000000 0 10.000000 -2.000000 0
+ L3 0 0.083333 0.000000 2.000000 0 10.000000 2.000000 0
+ G3 0 0.000000 0.250000 0.500000 -2.500000 0
+ G3 0 0.000000 0.250000 1.250000 -2.500000 0
+ L3 0 0.000000 0.000000 0.000000 0 10.000000 0.000000 0
+ END
+STRUCTURE HO "Walthers Modern Roundhouse 933-2900"
+ L 0 0.053333 11.892074 1.040422 11.892074 -1.040422
+ L 0 0.053333 11.892074 1.040422 11.530740 3.089652
+ L 0 0.053333 11.892074 -1.040422 11.530740 -3.089652
+ L 0 0.053333 29.574530 2.587436 29.574530 -2.587436
+ L 0 0.053333 29.574530 2.587436 28.675923 7.683690
+ L 0 0.053333 31.940493 -2.794431 30.969997 -8.298386
+ L 0 0.053333 11.530740 3.089652 28.675923 7.683690
+ L 0 0.053333 11.530740 -3.089652 30.969997 -8.298386
+ L 0 0.053333 29.574530 -2.587436 31.940493 -2.794431
+ L 0 0.053333 17.786226 1.556093 17.786226 -1.556093
+ L 0 0.053333 17.786226 1.556093 17.245801 4.620998
+ L 0 0.053333 17.786226 -1.556093 17.245801 -4.620998
+ L 0 0.053333 23.680378 2.071765 23.680378 -2.071765
+ L 0 0.053333 23.680378 2.071765 22.960862 6.152344
+ L 0 0.053333 23.680378 -2.071765 22.960862 -6.152344
+ A 0 0.053333 0.375000 26.937500 0.000000 0.000000 360.000000
+ A 0 0.053333 0.625000 26.937500 0.000000 0.000000 360.000000
+ A 0 0.053333 0.375000 26.528259 4.677648 0.000000 360.000000
+ A 0 0.053333 0.625000 26.528259 4.677648 0.000000 360.000000
+ A 0 0.053333 0.375000 28.867177 -5.090062 0.000000 360.000000
+ A 0 0.053333 0.625000 28.867177 -5.090062 0.000000 360.000000
+ END
+STRUCTURE HO "Walthers Modern Roundhouse Add-on Stalls 933-2901"
+ L 0 0.053333 11.892074 1.040422 11.892074 -1.040422
+ L 0 0.053333 11.892074 1.040422 11.530740 3.089652
+ L 0 0.053333 11.892074 -1.040422 11.530740 -3.089652
+ L 0 0.053333 29.574530 2.587436 29.574530 -2.587436
+ L 0 0.053333 29.574530 2.587436 28.675923 7.683690
+ L 0 0.053333 29.574530 -2.587436 28.675923 -7.683690
+ L 0 0.053333 11.530740 -3.089652 28.675923 -7.683690
+ L 0 0.053333 11.530740 3.089652 28.675923 7.683690
+ L 0 0.053333 17.786226 1.556093 17.786226 -1.556093
+ L 0 0.053333 17.786226 1.556093 17.245801 4.620998
+ L 0 0.053333 17.786226 -1.556093 17.245801 -4.620998
+ L 0 0.053333 23.680378 2.071765 23.680378 -2.071765
+ L 0 0.053333 23.680378 2.071765 22.960862 6.152344
+ L 0 0.053333 23.680378 -2.071765 22.960862 -6.152344
+ A 0 0.053333 0.375000 26.937500 0.000000 0.000000 360.000000
+ A 0 0.053333 0.625000 26.937500 0.000000 0.000000 360.000000
+ A 0 0.053333 0.375000 26.528259 4.677648 0.000000 360.000000
+ A 0 0.053333 0.625000 26.528259 4.677648 0.000000 360.000000
+ A 0 0.053333 0.375000 26.528259 -4.677648 0.000000 360.000000
+ A 0 0.053333 0.625000 26.528259 -4.677648 0.000000 360.000000
+ END
+STRUCTURE HO "Walthers Sanding Towers & Drying House 933-3182A"
+ L3 0 0.052083 3.380214 0.130208 0 9.130214 0.130208 0
+ L3 0 0.052083 9.130214 0.130208 0 9.130214 2.880208 0
+ L3 0 0.052083 9.130214 2.880208 0 3.380214 2.880208 0
+ L3 0 0.052083 3.380210 3.005208 0 3.380218 0.005208 0
+ L3 0 0.052083 3.380214 0.005208 0 0.005214 0.005208 0
+ L3 0 0.052083 0.005208 0.005208 0 0.005212 3.005208 0
+ L3 0 0.052083 0.005214 3.005208 0 3.380214 3.005208 0
+ L3 0 0.052083 0.005214 1.505208 0 3.380214 1.505208 0
+ F3 13541990 0.000000 4
+ 3.442714 2.817708 0
+ 9.067714 2.817708 0
+ 9.067714 0.192708 0
+ 3.442714 0.192708 0
+ F3 16755285 0.000000 4
+ 0.067714 2.942708 0
+ 3.317714 2.942708 0
+ 3.317714 1.567708 0
+ 0.067714 1.567708 0
+ F3 16755285 0.000000 4
+ 0.067714 1.442708 0
+ 3.317714 1.442708 0
+ 3.317714 0.067708 0
+ 0.067714 0.067708 0
+ END
+STRUCTURE HO "Walthers Diesel Sanding Tower 933-3182B"
+ L3 0 0.052083 0.125000 0.026042 0 0.875000 0.026042 0
+ L3 0 0.052083 0.875000 1.526042 0 0.125000 1.526042 0
+ L3 0 0.052083 0.125000 1.526042 0 0.125000 1.088542 0
+ L3 0 0.052083 0.875000 1.526042 0 0.875000 1.088542 0
+ L3 0 0.052083 0.125000 0.276042 0 0.125000 0.276042 0
+ L3 0 0.052083 0.875000 0.026042 0 0.875000 0.463542 0
+ L3 0 0.052083 0.125000 0.026042 0 0.125000 0.463542 0
+ G3 8421504 0.000000 0.500000 0.500000 0.776042 0
+ A3 0 0.052083 0.500000 0.500000 0.776042 0 0.000000 360.000000
+ END
+STRUCTURE HO "Walthers Steam Sanding Tower 933-3182C"
+ F3 8421504 0.000000 4
+ 5.213542 0.838542 0
+ 5.588542 0.838542 0
+ 5.588542 0.463542 0
+ 5.213542 0.463542 0
+ F3 8421504 0.000000 4
+ 0.338542 0.838542 0
+ 0.713542 0.838542 0
+ 0.713542 0.463542 0
+ 0.338542 0.463542 0
+ L3 0 0.052083 2.338542 0.026042 0 3.588542 0.026042 0
+ L3 0 0.052083 3.588542 0.026042 0 3.588542 1.276042 0
+ L3 0 0.052083 3.588542 1.276042 0 2.338542 1.276042 0
+ L3 0 0.052083 2.338542 1.276042 0 2.338542 0.026042 0
+ L3 0 0.052083 0.026042 0.151042 0 1.026042 0.151042 0
+ L3 0 0.052083 1.026042 0.151042 0 1.026042 1.151042 0
+ L3 0 0.052083 1.026042 1.151042 0 0.026042 1.151042 0
+ L3 0 0.052083 0.026042 1.151042 0 0.026042 0.151042 0
+ L3 0 0.052083 5.901042 0.151042 0 4.901042 0.151042 0
+ L3 0 0.052083 4.901042 0.151042 0 4.901042 1.151042 0
+ L3 0 0.052083 4.901042 1.151042 0 5.901042 1.151042 0
+ L3 0 0.052083 5.901042 1.151042 0 5.901042 0.151042 0
+ L3 0 0.052083 0.338542 0.463542 0 0.713542 0.463542 0
+ L3 0 0.052083 0.713542 0.463542 0 0.713542 0.838542 0
+ L3 0 0.052083 0.713542 0.838542 0 0.338542 0.838542 0
+ L3 0 0.052083 0.338542 0.838542 0 0.338542 0.463542 0
+ L3 0 0.052083 5.213542 0.463542 0 5.588542 0.463542 0
+ L3 0 0.052083 5.588542 0.463542 0 5.588542 0.838542 0
+ L3 0 0.052083 5.588542 0.838542 0 5.213542 0.838542 0
+ L3 0 0.052083 5.213542 0.838542 0 5.213542 0.463542 0
+ L3 0 0.104167 3.338542 0.651042 0 5.213542 0.651042 0
+ L3 0 0.104167 2.588542 0.651042 0 0.713542 0.651042 0
+ G3 8421504 0.000000 0.375000 2.963542 0.651042 0
+ A3 0 0.052083 0.125000 2.963542 0.651042 0 0.000000 360.000000
+ A3 0 0.052083 0.375000 2.963542 0.651042 0 0.000000 360.000000
+ END
+STRUCTURE HO "Walthers Steel Water Tower 933-3043"
+ G3 12632256 0.000000 1.501302 1.713542 1.713542 0
+ A3 0 0.052083 1.500000 1.713542 1.713542 0 0.000000 360.000000
+ L3 0 0.052083 0.697070 2.818391 0 0.652875 2.862585 0
+ L3 0 0.052083 0.652875 2.862585 0 0.564488 2.774196 0
+ L3 0 0.052083 0.564488 2.774196 0 0.608682 2.730002 0
+ L3 0 0.052083 0.608693 0.697070 0 0.564499 0.652875 0
+ L3 0 0.052083 0.564499 0.652875 0 0.652888 0.564488 0
+ L3 0 0.052083 0.652888 0.564488 0 0.697082 0.608682 0
+ L3 0 0.052083 2.818401 0.697082 0 2.862596 0.652888 0
+ L3 0 0.052083 2.862596 0.652888 0 2.774208 0.564499 0
+ L3 0 0.052083 2.774208 0.564499 0 2.730014 0.608693 0
+ L3 0 0.052083 2.730002 2.818401 0 2.774196 2.862596 0
+ L3 0 0.052083 2.774196 2.862596 0 2.862585 2.774208 0
+ L3 0 0.052083 2.862585 2.774208 0 2.818391 2.730014 0
+ L3 0 0.052083 0.026042 0.026042 0 3.401042 0.026042 0
+ L3 0 0.052083 3.401042 0.026042 0 3.401042 3.401042 0
+ L3 0 0.052083 3.401042 3.401042 0 0.026042 3.401042 0
+ L3 0 0.052083 0.026042 3.401042 0 0.026042 0.026042 0
+ END
+STRUCTURE HO "Walthers Machine Shop 933-2902"
+ F3 16755285 0.000000 4
+ 0.026042 6.750000 0
+ 5.026042 6.750000 0
+ 5.026042 2.750000 0
+ 0.026042 2.750000 0
+ F3 16755285 0.000000 6
+ 0.026042 8.750000 0
+ 0.026042 6.750000 0
+ 5.026042 6.750000 0
+ 5.026042 4.750000 0
+ 13.651042 4.750000 0
+ 13.651042 8.750000 0
+ L3 0 0.052083 3.026042 6.750000 0 5.026042 6.750000 0
+ L3 0 0.052083 4.776042 7.562500 0 4.776042 7.562500 0
+ L3 0 0.052083 0.026042 2.750000 0 0.026042 8.750000 0
+ L3 0 0.052083 0.026042 8.750000 0 13.651042 8.750000 0
+ L3 0 0.052083 6.651042 8.125000 0 6.651042 8.125000 0
+ L3 0 0.052083 0.026042 2.750000 0 0.026042 2.750000 0
+ L3 0 0.052083 0.026042 2.750000 0 5.026042 2.750007 0
+ L3 0 0.052083 3.963542 9.500000 0 3.963542 9.500000 0
+ L3 0 0.052083 4.338542 9.187500 0 4.338542 9.187500 0
+ L3 0 0.052083 5.026042 2.750000 0 5.026042 4.750000 0
+ L3 0 0.052083 5.026042 4.750000 0 13.651042 4.750000 0
+ L3 0 0.052083 13.651042 4.750000 0 13.651042 8.750000 0
+ L3 0 0.052083 3.026042 6.750000 0 0.026042 6.750000 0
+ L3 0 0.052083 5.026042 4.750000 0 3.026042 4.750000 0
+ L3 0 0.052083 3.026042 4.750000 0 3.026042 6.750000 0
+ L3 0 0.052083 5.026042 6.750000 0 5.026042 4.750000 0
+ G3 15720651 0.000000 1.375000 2.026042 1.375000 0
+ A3 0 0.052083 0.877229 2.026042 1.375000 0 0.000000 360.000000
+ A3 0 0.052083 0.625000 2.026042 1.375000 0 0.000000 360.000000
+ G3 0 0.000000 0.625000 2.026042 1.375000 0
+ A3 0 0.052083 1.375000 2.026042 1.375000 0 0.000000 360.000000
+ END
+
+
+
+
+SUBCONTENTS Walthers Cornerstone HO Structures - Turn Tables
+TURNOUT HO "Walthers 130' Turn Table 933-2829"
+# TT was designed with 18.875" bridge, 19.125" outside dia., 10 degree spacing
+ P "1" 1 2 3
+ P "2" 4 5 6
+ P "3" 7 8 9
+ P "4" 10 11 12
+ P "5" 13 14 15
+ P "6" 16 17 18
+ P "7" 19 20 21
+ P "8" 22 23 24
+ P "9" 25 26 27
+ P "10" 28 29 30
+ P "11" 31 32 33
+ P "12" 34 35 36
+ P "13" 37 38 39
+ P "14" 40 41 42
+ P "15" 43 44 45
+ P "16" 46 47 48
+ P "17" 49 50 51
+ P "18" 52 53 54
+ E 0.000000 9.562500 0.000000
+ E 1.660511 9.417224 10.000000
+ E 3.270568 8.985811 20.000000
+ E 4.781250 8.281368 30.000000
+ E 6.146657 7.325300 40.000000
+ E 7.325300 6.146657 50.000000
+ E 8.281368 4.781250 60.000000
+ E 8.985811 3.270568 70.000000
+ E 9.417224 1.660511 80.000000
+ E 9.562500 0.000000 90.000000
+ E 9.417224 -1.660511 100.000000
+ E 8.985811 -3.270568 110.000000
+ E 8.281368 -4.781250 120.000000
+ E 7.325300 -6.146657 130.000000
+ E 6.146657 -7.325300 140.000000
+ E 4.781250 -8.281368 150.000000
+ E 3.270568 -8.985811 160.000000
+ E 1.660511 -9.417224 170.000000
+ E 0.000000 -9.562500 180.000000
+ E -1.660511 -9.417224 190.000000
+ E -3.270568 -8.985811 200.000000
+ E -4.781250 -8.281368 210.000000
+ E -6.146657 -7.325300 220.000000
+ E -7.325300 -6.146657 230.000000
+ E -8.281368 -4.781250 240.000000
+ E -8.985811 -3.270568 250.000000
+ E -9.417224 -1.660511 260.000000
+ E -9.562500 0.000000 270.000000
+ E -9.417224 1.660511 280.000000
+ E -8.985811 3.270568 290.000000
+ E -8.281368 4.781250 300.000000
+ E -7.325300 6.146657 310.000000
+ E -6.146657 7.325300 320.000000
+ E -4.781250 8.281368 330.000000
+ E -3.270568 8.985811 340.000000
+ E -1.660511 9.417224 350.000000
+
+#0/180
+ S 0 0 0.000000 9.562500 0.000000 9.437500
+ S 16777215 0 0.000000 9.437500 0.000000 -9.437500
+ S 0 0 0.000000 -9.437500 0.000000 -9.562500
+#10/190
+ S 0 0 1.660511 9.417224 1.638805 9.294123
+ S 16777215 0 1.638805 9.294123 -1.638805 -9.294123
+ S 0 0 -1.638805 -9.294123 -1.660511 -9.417224
+#20/200
+ S 0 0 3.270568 8.985811 3.227815 8.868349
+ S 16777215 0 3.227815 8.868349 -3.227815 -8.868349
+ S 0 0 -3.227815 -8.868349 -3.270568 -8.985811
+#30/210
+ S 0 0 4.781250 8.281368 4.718750 8.173115
+ S 16777215 0 4.718750 8.173115 -4.718750 -8.173115
+ S 0 0 -4.718750 -8.173115 -4.781250 -8.281368
+#40/220
+ S 0 0 6.146657 7.325300 6.066308 7.229544
+ S 16777215 0 6.066308 7.229544 -6.066308 -7.229544
+ S 0 0 -6.066308 -7.229544 -6.146657 -7.325300
+#50/230
+ S 0 0 7.325300 6.146657 7.229544 6.066308
+ S 16777215 0 7.229544 6.066308 -7.229544 -6.066308
+ S 0 0 -7.229544 -6.066308 -7.325300 -6.146657
+#60/240
+ S 0 0 8.281368 4.781250 8.173115 4.718750
+ S 16777215 0 8.173115 4.718750 -8.173115 -4.718750
+ S 0 0 -8.173115 -4.718750 -8.281368 -4.781250
+#70/250
+ S 0 0 8.985811 3.270568 8.868349 3.227815
+ S 16777215 0 8.868349 3.227815 -8.868349 -3.227815
+ S 0 0 -8.868349 -3.227815 -8.985811 -3.270568
+#80/260
+ S 0 0 9.417224 1.660511 9.294123 1.638805
+ S 16777215 0 9.294123 1.638805 -9.294123 -1.638805
+ S 0 0 -9.294123 -1.638805 -9.417224 -1.660511
+#90/270
+ S 0 0 9.562500 0.000000 9.437500 0.000000
+ S 0 0 9.437500 0.000000 -9.437500 0.000000
+ S 0 0 -9.437500 0.000000 -9.562500 0.000000
+#100/280
+ S 0 0 9.417224 -1.660511 9.294123 -1.638805
+ S 16777215 0 9.294123 -1.638805 -9.294123 1.638805
+ S 0 0 -9.294123 1.638805 -9.417224 1.660511
+#110/290
+ S 0 0 8.985811 -3.270568 8.868349 -3.227815
+ S 16777215 0 8.868349 -3.227815 -8.868349 3.227815
+ S 0 0 -8.868349 3.227815 -8.985811 3.270568
+#120/300
+ S 0 0 8.281368 -4.781250 8.173115 -4.718750
+ S 16777215 0 8.173115 -4.718750 -8.173115 4.718750
+ S 0 0 -8.173115 4.718750 -8.281368 4.781250
+#130/310
+ S 0 0 7.325300 -6.146657 7.229544 -6.066308
+ S 16777215 0 7.229544 -6.066308 -7.229544 6.066308
+ S 0 0 -7.229544 6.066308 -7.325300 6.146657
+#140/320
+ S 0 0 6.146657 -7.325300 6.066308 -7.229544
+ S 16777215 0 6.066308 -7.229544 -6.066308 7.229544
+ S 0 0 -6.066308 7.229544 -6.146657 7.325300
+#150/330
+ S 0 0 4.781250 -8.281368 4.718750 -8.173115
+ S 16777215 0 4.718750 -8.173115 -4.718750 8.173115
+ S 0 0 -4.718750 8.173115 -4.781250 8.281368
+#160/340
+ S 0 0 3.270568 -8.985811 3.227815 -8.868349
+ S 16777215 0 3.227815 -8.868349 -3.227815 8.868349
+ S 0 0 -3.227815 8.868349 -3.270568 8.985811
+#170/350
+ S 0 0 1.660511 -9.417224 1.638805 -9.294123
+ S 16777215 0 1.638805 -9.294123 -1.638805 9.294123
+ S 0 0 -1.638805 9.294123 -1.660511 9.417224
+
+ A 11579568 0.053333 9.562500 0.000000 0.000000 0.000000 360.000000
+ A 11579568 0.053333 9.437500 0.000000 0.000000 0.000000 360.000000
+ G 11579568 0.000000 0.053333 0.000000 0.000000 0
+ END
+TURNOUT HO "Walthers 90' Turn Table 933-2840"
+# TT was designed with 12.5" bridge, 13.75" outside dia., 10 degree spacing
+ P "1" 1 2 3
+ P "2" 4 5 6
+ P "3" 7 8 9
+ P "4" 10 11 12
+ P "5" 13 14 15
+ P "6" 16 17 18
+ P "7" 19 20 21
+ P "8" 22 23 24
+ P "9" 25 26 27
+ P "10" 28 29 30
+ P "11" 31 32 33
+ P "12" 34 35 36
+ P "13" 37 38 39
+ P "14" 40 41 42
+ P "15" 43 44 45
+ P "16" 46 47 48
+ P "17" 49 50 51
+ P "18" 52 53 54
+ E 0.000000 6.875000 0.000000
+ E 1.193831 6.770553 10.000000
+ E 2.351388 6.460387 20.000000
+ E 3.437500 5.953925 30.000000
+ E 4.419165 5.266556 40.000000
+ E 5.266556 4.419165 50.000000
+ E 5.953925 3.437500 60.000000
+ E 6.460387 2.351388 70.000000
+ E 6.770553 1.193831 80.000000
+ E 6.875000 0.000000 90.000000
+ E 6.770553 -1.193831 100.000000
+ E 6.460387 -2.351388 110.000000
+ E 5.953925 -3.437500 120.000000
+ E 5.266556 -4.419165 130.000000
+ E 4.419165 -5.266556 140.000000
+ E 3.437500 -5.953925 150.000000
+ E 2.351388 -6.460387 160.000000
+ E 1.193831 -6.770553 170.000000
+ E 0.000000 -6.875000 180.000000
+ E -1.193831 -6.770553 190.000000
+ E -2.351388 -6.460387 200.000000
+ E -3.437500 -5.953925 210.000000
+ E -4.419165 -5.266556 220.000000
+ E -5.266556 -4.419165 230.000000
+ E -5.953925 -3.437500 240.000000
+ E -6.460387 -2.351388 250.000000
+ E -6.770553 -1.193831 260.000000
+ E -6.875000 0.000000 270.000000
+ E -6.770553 1.193831 280.000000
+ E -6.460387 2.351388 290.000000
+ E -5.953925 3.437500 300.000000
+ E -5.266556 4.419165 310.000000
+ E -4.419165 5.266556 320.000000
+ E -3.437500 5.953925 330.000000
+ E -2.351388 6.460387 340.000000
+ E -1.193831 6.770553 350.000000
+
+#0/180
+ S 0 0 0.000000 6.875000 0.000000 6.250000
+ S 16777215 0 0.000000 6.250000 0.000000 -6.250000
+ S 0 0 0.000000 -6.250000 0.000000 -6.875000
+#10/190
+ S 0 0 1.193831 6.770553 1.085301 6.155048
+ S 16777215 0 1.085301 6.155048 -1.085301 -6.155048
+ S 0 0 -1.085301 -6.155048 -1.193831 -6.770553
+#20/200
+ S 0 0 2.351388 6.460387 2.137626 5.873079
+ S 16777215 0 2.137626 5.873079 -2.137626 -5.873079
+ S 0 0 -2.137626 -5.873079 -2.351388 -6.460387
+#30/210
+ S 0 0 3.437500 5.953925 3.125000 5.412659
+ S 16777215 0 3.125000 5.412659 -3.125000 -5.412659
+ S 0 0 -3.125000 -5.412659 -3.437500 -5.953925
+#40/220
+ S 0 0 4.419165 5.266556 4.017423 4.787778
+ S 16777215 0 4.017423 4.787778 -4.017423 -4.787778
+ S 0 0 -4.017423 -4.787778 -4.419165 -5.266556
+#50/230
+ S 0 0 5.266556 4.419165 4.787778 4.017423
+ S 16777215 0 4.787778 4.017423 -4.787778 -4.017423
+ S 0 0 -4.787778 -4.017423 -5.266556 -4.419165
+#60/240
+ S 0 0 5.953925 3.437500 5.412659 3.125000
+ S 16777215 0 5.412659 3.125000 -5.412659 -3.125000
+ S 0 0 -5.412659 -3.125000 -5.953925 -3.437500
+#70/250
+ S 0 0 6.460387 2.351388 5.873079 2.137626
+ S 16777215 0 5.873079 2.137626 -5.873079 -2.137626
+ S 0 0 -5.873079 -2.137626 -6.460387 -2.351388
+#80/260
+ S 0 0 6.770553 1.193831 6.155048 1.085301
+ S 16777215 0 6.155048 1.085301 -6.155048 -1.085301
+ S 0 0 -6.155048 -1.085301 -6.770553 -1.193831
+#90/270
+ S 0 0 6.875000 0.000000 6.250000 0.000000
+ S 0 0 6.250000 0.000000 -6.875000 0.000000
+ S 0 0 -6.875000 0.000000 -6.2500000 0.000000
+#100/280
+ S 0 0 6.770553 -1.193831 6.155048 -1.085301
+ S 16777215 0 6.155048 -1.085301 -6.155048 1.085301
+ S 0 0 -6.155048 1.085301 -6.770553 1.193831
+#110/290
+ S 0 0 6.460387 -2.351388 5.873079 -2.137626
+ S 16777215 0 5.873079 -2.137626 -5.873079 2.137626
+ S 0 0 -5.873079 2.137626 -6.460387 2.351388
+#120/300
+ S 0 0 5.953925 -3.437500 5.412659 -3.125000
+ S 16777215 0 5.412659 -3.125000 -5.412659 3.125000
+ S 0 0 -5.412659 3.125000 -5.953925 3.437500
+#130/310
+ S 0 0 5.266556 -4.419165 4.787778 -4.017423
+ S 16777215 0 4.787778 -4.017423 -4.787778 4.017423
+ S 0 0 -4.787778 4.017423 -5.266556 4.419165
+#140/320
+ S 0 0 4.419165 -5.266556 4.017423 -4.787778
+ S 16777215 0 4.017423 -4.787778 -4.017423 4.787778
+ S 0 0 -4.017423 4.787778 -4.419165 5.266556
+#150/330
+ S 0 0 3.437500 -5.953925 3.125000 -5.412659
+ S 16777215 0 3.125000 -5.412659 -3.125000 5.412659
+ S 0 0 -3.125000 5.412659 -3.437500 5.953925
+#160/340
+ S 0 0 2.351388 -6.460387 2.137626 -5.873079
+ S 16777215 0 2.137626 -5.873079 -2.137626 5.873079
+ S 0 0 -2.137626 5.873079 -2.351388 6.460387
+#170/350
+ S 0 0 1.193831 -6.770553 1.085301 -6.155048
+ S 16777215 0 1.085301 -6.155048 -1.085301 6.155048
+ S 0 0 -1.085301 6.155048 -1.193831 6.770553
+
+ A 11579568 0.053333 6.875000 0.000000 0.000000 0.000000 360.000000
+ A 11579568 0.053333 6.250000 0.000000 0.000000 0.000000 360.000000
+ G 11579568 0.000000 0.053333 0.000000 0.000000 0
+ END
+
+TURNOUT HO "Walthers Transfer Table 933-2968"
+# TT was designed with 2.1875" Bridge position spacing table has 48 programmable positions
+ P "P1" 1
+ P "P2" 2
+ P "P3" 3
+ P "P4" 4
+ P "P5" 5
+ E 0.000000 4.375000 270.000000
+ E 14.812500 4.375000 90.000000
+ E 0.000000 0.000000 270.000000
+ E 0.000000 2.187500 270.000000
+ E 14.812500 2.187500 90.000000
+ E 14.812500 0.000000 90.000000
+ E 14.812500 -2.187500 90.000000
+ E 14.812500 -4.375000 90.000000
+ E 0.000006 -4.375000 270.000000
+ E 0.000006 -2.187500 270.000000
+ S 0 0.000000 0.000006 -4.375500 14.812506 -4.375480
+ S 16777215 0.000000 0.000006 -2.188000 14.812506 -2.187980
+ S 16777215 0.000000 0.000000 0.000000 14.812500 0.000020
+ S 16777215 0.000000 -0.000006 2.188000 14.812494 2.188020
+ S 16777215 0.000000 -0.000012 4.376000 14.812488 4.376020
+ F3 14803425 0.000000 4
+ 4.000000 -5.875000 0
+ 7.000000 -5.875000 0
+ 7.000000 -7.000000 0
+ 4.000000 -7.000000 0
+ L3 0 0.083333 -0.562494 -7.562500 0 -0.562494 6.812500 0
+ L3 0 0.083333 15.375006 -7.562500 0 15.375006 6.812500 0
+ L3 0 0.083333 -0.562494 -7.563000 0 15.375006 -7.563000 0
+ L3 0 0.083333 -0.562494 6.812500 0 15.375006 6.812500 0
+ L3 0 0.083333 0.000006 -7.313000 0 0.000006 6.562000 0
+ L3 0 0.083333 14.812506 -7.313000 0 14.812506 6.562000 0
+ L3 0 0.083333 0.000006 -7.313000 0 14.813006 -7.313000 0
+ L3 0 0.083333 0.000006 6.562500 0 14.812506 6.562520 0
+ L3 0 0.083333 0.000006 -5.875500 0 14.812506 -5.875500 0
+ L3 0 0.083333 0.000006 -2.875500 0 14.812506 -2.875500 0
+ L3 0 0.083333 4.000006 -5.875500 0 4.000003 -7.063000 0
+ L3 0 0.083333 4.000006 -7.062500 0 8.000006 -7.062500 0
+ L3 0 0.083333 7.999999 -7.063000 0 8.000002 -5.875500 0
+ L3 0 0.083333 7.000006 -7.062500 0 7.000006 -5.875500 0
+ L3 0 0.083333 4.000006 -6.469250 0 7.000006 -6.469250 0
+ END
+
diff --git a/app/lib/params/HO-atl100ho.xtp b/app/lib/params/HO-atl100ho.xtp
index 62fe9f6..2adfbe7 100644
--- a/app/lib/params/HO-atl100ho.xtp
+++ b/app/lib/params/HO-atl100ho.xtp
@@ -1,330 +1,640 @@
-CONTENTS Atlas Code 100 HO Scale
-# Crossing Design by Dave Bullis - 6.000000 19.000000 6.000000
-TURNOUT HO "Atlas 19D Crossing 171"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 6.000000 0.000000 90.000000
- E 0.163444 0.976704 289.000000
- E 5.836556 -0.976704 109.000000
- S 0 0 0.000000 0.000000 6.000000 0.000000
- S 0 0 0.163444 0.976704 5.836556 -0.976704
- END
-# Crossing Design by Dave Bullis - 4.500000 25.000000 4.500000
-TURNOUT HO "Atlas 25D Crossing 172"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 4.500000 0.000000 90.000000
- E 0.210807 0.950890 295.000000
- E 4.289193 -0.950890 115.000000
- S 0 0 0.000000 0.000000 4.500000 0.000000
- S 0 0 0.210807 0.950890 4.289193 -0.950890
- END
-# Crossing Design by Dave Bullis - 4.000000 30.000000 4.000000
-TURNOUT HO "Atlas 30D Crossing 173"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 4.000000 0.000000 90.000000
- E 0.267949 0.999999 300.000000
- E 3.732051 -0.999999 120.000000
- S 0 0 0.000000 0.000000 4.000000 0.000000
- S 0 0 0.267949 0.999999 3.732051 -0.999999
- END
-# Crossing Design by Dave Bullis - 3.000000 45.000000 3.000000
-TURNOUT HO "Atlas 45D Crossing 174"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 3.000000 0.000000 90.000000
- E 0.439339 1.060659 315.000000
- E 2.560661 -1.060659 135.000000
- S 0 0 0.000000 0.000000 3.000000 0.000000
- S 0 0 0.439339 1.060659 2.560661 -1.060659
- END
-# Crossing Design by Dave Bullis - 3.000000 60.000000 3.000000
-TURNOUT HO "Atlas 60D Crossing 175"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 3.000000 0.000000 90.000000
- E 0.749999 1.299037 330.000000
- E 2.250001 -1.299037 150.000000
- S 0 0 0.000000 0.000000 3.000000 0.000000
- S 0 0 0.749999 1.299037 2.250001 -1.299037
- END
-# Crossing Design by Dave Bullis - 6.000000 90.000000 6.000000
-TURNOUT HO "Atlas 90D Crossing 176"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 6.000000 0.000000 90.000000
- E 2.999996 3.000000 0.000000
- E 3.000004 -3.000000 180.000000
- S 0 0 0.000000 0.000000 6.000000 0.000000
- S 0 0 2.999996 3.000000 3.000004 -3.000000
- END
-# Crossing Design by Dave Bullis - 9.000000 12.500000 9.000000
-TURNOUT HO "Atlas 12.5D Crossing 177"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 9.000000 0.000000 90.000000
- E 0.106668 0.973977 282.500000
- E 8.893332 -0.973977 102.500000
- S 0 0 0.000000 0.000000 9.000000 0.000000
- S 0 0 0.106668 0.973977 8.893332 -0.973977
- END
-# Crossing Design by Dave Bullis - 6.000000 30.000000 6.000000
-TURNOUT HO "Atlas 30D Snap Crossing 839"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 6.000000 0.000000 90.000000
- E 0.401923 1.499999 300.000000
- E 5.598077 -1.499999 120.000000
- S 0 0 0.000000 0.000000 6.000000 0.000000
- S 0 0 0.401923 1.499999 5.598077 -1.499999
- END
-
-
-# Wye Turnout Design by Dave Bullis - 7.800000 0.670000 9.600000 9.600000 0.670000 7.800000
-TURNOUT HO "Atlas Mark IV Wye 280"
- P "Left" 1 2 3
- P "Right" 1 4 5
- E 0.000000 0.000000 270.000000
- E 7.800000 -0.670000 99.600000
- E 7.800000 0.670000 80.400000
- S 0 0 0.000000 0.000000 0.648600 0.000000
- C 0 0 -37.990143 0.648701 37.990143 170.399924 9.600152
- S 0 0 6.984263 0.532020 7.800000 0.670000
- C 0 0 37.990143 0.648701 -37.990143 359.999924 9.600152
- S 0 0 6.984263 -0.532020 7.800000 -0.670000
- END
-# Regular Turnout Design by Dave Bullis - 8.000000 1.000000 12.800000 9.000000
-TURNOUT HO "Atlas #4 Mark IV Left 281"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 9.000000 0.000000 90.000000
- E 8.000000 1.000000 77.200000
- S 0 0 0.000000 0.000000 0.648600 0.000000
- S 0 0 0.648600 0.000000 9.000000 0.000000
- C 0 0 -26.298793 0.648670 26.298793 167.199924 12.800152
- S 0 0 6.475122 0.653549 8.000000 1.000000
- END
-TURNOUT HO "Atlas #4 Mark IV Right 282"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 9.000000 0.000000 90.000000
- E 8.000000 -1.000000 102.800000
- S 0 0 0.000000 0.000000 0.648600 0.000000
- S 0 0 0.648600 0.000000 9.000000 0.000000
- C 0 0 26.298793 0.648670 -26.298793 359.999924 12.800152
- S 0 0 6.475122 -0.653549 8.000000 -1.000000
- END
-# Regular Turnout Design by Dave Bullis - 10.000000 1.000000 9.500000 12.000000
-TURNOUT HO "Atlas #6 Mark IV Left 283"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 12.000000 0.000000 90.000000
- E 10.000000 1.000000 80.500000
- S 0 0 0.000000 0.000000 0.648600 0.000000
- S 0 0 0.648600 0.000000 12.000000 0.000000
- C 0 0 -40.624473 0.648708 40.624473 170.499924 9.500152
- S 0 0 7.353673 0.557148 10.000000 1.000000
- END
-TURNOUT HO "Atlas #6 Mark IV Right 284"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 12.000000 0.000000 90.000000
- E 10.000000 -1.000000 99.500000
- S 0 0 0.000000 0.000000 0.648600 0.000000
- S 0 0 0.648600 0.000000 12.000000 0.000000
- C 0 0 40.624473 0.648708 -40.624473 359.999924 9.500152
- S 0 0 7.353673 -0.557148 10.000000 -1.000000
- END
-TURNOUT HO "Atlas #8 Mark IV Left 285"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 13.500000 0.000000 90.000000
- E 12.200000 1.000000 82.819238
- S 0 0.000000 0.000000 0.000000 0.649600 0.000000
- S 0 0.000000 0.649600 0.000000 13.500000 0.000000
- C 0 0.000000 -57.585695 0.649676 57.585695 172.819162 7.180914
- S 0 0.000000 7.847964 0.451679 12.200000 1.000000
- END
-TURNOUT HO "Atlas #8 Mark IV Right 286"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 13.500000 0.000000 90.000000
- E 12.200000 -1.000000 97.180762
- S 0 0.000000 0.000000 0.000000 0.649600 0.000000
- S 0 0.000000 0.649600 0.000000 13.500000 0.000000
- C 0 0.000000 57.585695 0.649371 -57.585695 0.000076 7.180914
- S 0 0.000000 7.847964 -0.451679 12.200000 -1.000000
- END
-
-
-TURNOUT HO "Atlas 0.75"" Straight 847a"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 0.750000 0.000000 90.000000
- S 0 0 0.000000 0.000000 0.750000 0.000000
- END
-TURNOUT HO "Atlas 1"" Straight 847b"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.000000 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.000000 0.000000
- END
-TURNOUT HO "Atlas 1.25"" Straight 847c"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.250000 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.250000 0.000000
- END
-TURNOUT HO "Atlas 1.5"" Straight 847d"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.500000 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.500000 0.000000
- END
-TURNOUT HO "Atlas 2.0"" Straight 847e"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.000000 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.000000 0.000000
- END
-# Straight Section Design by Dave Bullis - 2.500000
-TURNOUT HO "Atlas 2.5"" Straight 847f"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.500000 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.500000 0.000000
- END
-# Straight Section Design by Dave Bullis - 3.000000
-TURNOUT HO "Atlas 3"" Straight 823"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.000000 0.000000 90.000000
- S 0 0 0.000000 0.000000 3.000000 0.000000
- END
-# Straight Section Design by Dave Bullis - 6.000000
-TURNOUT HO "Atlas 6"" Straight 822"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.000000 0.000000 90.000000
- S 0 0 0.000000 0.000000 6.000000 0.000000
- END
-# Straight Section Design by Dave Bullis - 9.000000
-TURNOUT HO "Atlas 9"" Straight 821"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.000000 0.000000 90.000000
- S 0 0 0.000000 0.000000 9.000000 0.000000
- END
-
-
-# Curved Section Design by Dave Bullis - 15.000000 30.000000
-TURNOUT HO "Atlas 15"" 30D Curve 831"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.499994 -2.009616 120.000000
- C 0 0 15.000000 0.000000 -15.000000 0.000000 30.000000
- END
-TURNOUT HO "Atlas 15"" 15D Curve 832"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.882282 -0.511112 105.000000
- C 0 0.000000 15.000000 0.000000 -15.000000 0.000000 15.000000
- END
-# Curved Section Design by Dave Bullis - 18.000000 30.000000
-TURNOUT HO "Atlas 18"" 30D Curve 833"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.999993 -2.411539 120.000000
- C 0 0 18.000000 0.000000 -18.000000 0.000000 30.000000
- END
-# Curved Section Design by Dave Bullis - 18.000000 15.000000
-TURNOUT HO "Atlas 18"" 15D Curve 834"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.658739 -0.613334 105.000000
- C 0 0 18.000000 0.000000 -18.000000 0.000000 15.000000
- END
-# Curved Section Design by Dave Bullis - 18.000000 10.000000
-TURNOUT HO "Atlas 18"" 10D Curve 835"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.125665 -0.273460 100.000000
- C 0 0 18.000000 0.000000 -18.000000 0.000000 10.000000
- END
-# Curved Section Design by Dave Bullis - 22.000000 22.500000
-TURNOUT HO "Atlas 22"" 22.5D Curve 836"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.419029 -1.674647 112.500000
- C 0 0 22.000000 0.000000 -22.000000 0.000000 22.500000
- END
-
-
-TURNOUT HO "Atlas 9"" Straight Terminal 840"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.000000 0.000000 90.000000
- S 0 0 0.000000 0.000000 9.000000 0.000000
- L 16711680 0 3.800000 0.500000 3.800000 1.300000
- L 16711680 0 5.200000 0.500000 5.200000 1.300000
- L 16711680 0 3.800000 1.300000 5.200000 1.300000
- A 15611680 0 0.200000 4.100000 1.000000 0.000000 360.000000
- A 15611680 0 0.200000 4.900000 1.000000 0.000000 360.000000
- END
-TURNOUT HO "Atlas 18"" 30D Curve Terminal 845"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.999993 -2.411539 120.000000
- C 0 0 18.000000 0.000000 -18.000000 0.000000 30.000000
- L 16711680 0 0.500000 0.500000 0.500000 1.300000
- L 16711680 0 1.900000 0.500000 1.900000 1.300000
- L 16711680 0 0.500000 1.300000 1.900000 1.300000
- A 15611680 0 0.200000 0.800000 1.000000 0.000000 360.000000
- A 15611680 0 0.200000 1.600000 1.000000 0.000000 360.000000
- END
-
-TURNOUT HO "Atlas Left Snap Switch 850"
- U "Regular Turnout" "Sillub Technology" "Atlas" "Left Snap Switch" "850" "Right Snap Switch" "850" 6.156363 20.000000 1.085533 9.000000
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 9.000000 0.000000 90.000000
- E 6.156363 1.085533 70.000000
- S 0 0.000000 0.000000 0.000000 0.648600 0.000000
- S 0 0.000000 0.648600 0.000000 9.000000 0.000000
- C 0 0.000000 -14.321607 0.648600 14.321607 160.000000 20.000000
- S 0 0.000000 5.546878 0.863699 6.156363 1.085533
- END
-TURNOUT HO "Atlas Right Snap Switch 851"
- U "Regular Turnout" "Sillub Technology" "Atlas" "Left Snap Switch" "850" "Right Snap Switch" "850" 6.156363 20.000000 1.085533 9.000000
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 9.000000 0.000000 90.000000
- E 6.156363 -1.085533 110.000000
- S 0 0.000000 0.000000 0.000000 0.648600 0.000000
- S 0 0.000000 0.648600 0.000000 9.000000 0.000000
- C 0 0.000000 14.321607 0.648600 -14.321607 0.000000 20.000000
- S 0 0.000000 5.546878 -0.863699 6.156363 -1.085533
- END
-
-TURNOUT HO "Atlas Extension 85x"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.125667 0.273460 80.000000
- C 0 0.000000 -18.000000 0.000000 18.000000 170.000000 10.000000
- END
-
-# Straight Section Design by Victor Bobier - 3.750000
-TURNOUT HO "Atlas Bumper Track 843"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- S 0 0 0.000000 0.000000 3.750000 0.000000
- END
+CONTENTS Atlas Code 100 HO Scale
+#########################################################################################
+#########################################################################################
+SUBCONTENTS Atlas HO-Scale C100 - Crossings
+# Crossing Design by Dave Bullis - 6.000000 19.000000 6.000000
+TURNOUT HO "Atlas 19D Crossing 171"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 6.000000 0.000000 90.000000
+ E 0.163444 0.976704 289.000000
+ E 5.836556 -0.976704 109.000000
+ S 0 0 0.000000 0.000000 6.000000 0.000000
+ S 0 0 0.163444 0.976704 5.836556 -0.976704
+ END
+# Crossing Design by Dave Bullis - 4.500000 25.000000 4.500000
+TURNOUT HO "Atlas 25D Crossing 172"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 4.500000 0.000000 90.000000
+ E 0.210807 0.950890 295.000000
+ E 4.289193 -0.950890 115.000000
+ S 0 0 0.000000 0.000000 4.500000 0.000000
+ S 0 0 0.210807 0.950890 4.289193 -0.950890
+ END
+# Crossing Design by Dave Bullis - 4.000000 30.000000 4.000000
+TURNOUT HO "Atlas 30D Crossing 173"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 4.000000 0.000000 90.000000
+ E 0.267949 0.999999 300.000000
+ E 3.732051 -0.999999 120.000000
+ S 0 0 0.000000 0.000000 4.000000 0.000000
+ S 0 0 0.267949 0.999999 3.732051 -0.999999
+ END
+# Crossing Design by Dave Bullis - 3.000000 45.000000 3.000000
+TURNOUT HO "Atlas 45D Crossing 174"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 3.000000 0.000000 90.000000
+ E 0.439339 1.060659 315.000000
+ E 2.560661 -1.060659 135.000000
+ S 0 0 0.000000 0.000000 3.000000 0.000000
+ S 0 0 0.439339 1.060659 2.560661 -1.060659
+ END
+# Crossing Design by Dave Bullis - 3.000000 60.000000 3.000000
+TURNOUT HO "Atlas 60D Crossing 175"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 3.000000 0.000000 90.000000
+ E 0.749999 1.299037 330.000000
+ E 2.250001 -1.299037 150.000000
+ S 0 0 0.000000 0.000000 3.000000 0.000000
+ S 0 0 0.749999 1.299037 2.250001 -1.299037
+ END
+# Crossing Design by Dave Bullis - 6.000000 90.000000 6.000000
+TURNOUT HO "Atlas 90D Crossing 176"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 6.000000 0.000000 90.000000
+ E 2.999996 3.000000 0.000000
+ E 3.000004 -3.000000 180.000000
+ S 0 0 0.000000 0.000000 6.000000 0.000000
+ S 0 0 2.999996 3.000000 3.000004 -3.000000
+ END
+# Crossing Design by Dave Bullis - 9.000000 12.500000 9.000000
+TURNOUT HO "Atlas 12.5D Crossing 177"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 9.000000 0.000000 90.000000
+ E 0.106668 0.973977 282.500000
+ E 8.893332 -0.973977 102.500000
+ S 0 0 0.000000 0.000000 9.000000 0.000000
+ S 0 0 0.106668 0.973977 8.893332 -0.973977
+ END
+# Crossing Design by Dave Bullis - 6.000000 30.000000 6.000000
+TURNOUT HO "Atlas 30D Snap Crossing 839"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 6.000000 0.000000 90.000000
+ E 0.401923 1.499999 300.000000
+ E 5.598077 -1.499999 120.000000
+ S 0 0 0.000000 0.000000 6.000000 0.000000
+ S 0 0 0.401923 1.499999 5.598077 -1.499999
+ END
+
+#########################################################################################
+#########################################################################################
+SUBCONTENTS Atlas HO-Scale C100 - Turnouts
+# Wye Turnout Design by Dave Bullis - 7.800000 0.670000 9.600000 9.600000 0.670000 7.800000
+TURNOUT HO "Atlas Mark IV Wye 280"
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 7.800000 -0.670000 99.600000
+ E 7.800000 0.670000 80.400000
+ S 0 0 0.000000 0.000000 0.648600 0.000000
+ C 0 0 -37.990143 0.648701 37.990143 170.399924 9.600152
+ S 0 0 6.984263 0.532020 7.800000 0.670000
+ C 0 0 37.990143 0.648701 -37.990143 359.999924 9.600152
+ S 0 0 6.984263 -0.532020 7.800000 -0.670000
+ END
+# Regular Turnout Design by Dave Bullis - 8.000000 1.000000 12.800000 9.000000
+TURNOUT HO "Atlas #4 Mark IV Left 281"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 9.000000 0.000000 90.000000
+ E 8.000000 1.000000 77.200000
+ S 0 0 0.000000 0.000000 0.648600 0.000000
+ S 0 0 0.648600 0.000000 9.000000 0.000000
+ C 0 0 -26.298793 0.648670 26.298793 167.199924 12.800152
+ S 0 0 6.475122 0.653549 8.000000 1.000000
+ END
+TURNOUT HO "Atlas #4 Mark IV Right 282"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 9.000000 0.000000 90.000000
+ E 8.000000 -1.000000 102.800000
+ S 0 0 0.000000 0.000000 0.648600 0.000000
+ S 0 0 0.648600 0.000000 9.000000 0.000000
+ C 0 0 26.298793 0.648670 -26.298793 359.999924 12.800152
+ S 0 0 6.475122 -0.653549 8.000000 -1.000000
+ END
+# Regular Turnout Design by Dave Bullis - 10.000000 1.000000 9.500000 12.000000
+TURNOUT HO "Atlas #6 Mark IV Left 283"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 12.000000 0.000000 90.000000
+ E 10.000000 1.000000 80.500000
+ S 0 0 0.000000 0.000000 0.648600 0.000000
+ S 0 0 0.648600 0.000000 12.000000 0.000000
+ C 0 0 -40.624473 0.648708 40.624473 170.499924 9.500152
+ S 0 0 7.353673 0.557148 10.000000 1.000000
+ END
+TURNOUT HO "Atlas #6 Mark IV Right 284"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 12.000000 0.000000 90.000000
+ E 10.000000 -1.000000 99.500000
+ S 0 0 0.000000 0.000000 0.648600 0.000000
+ S 0 0 0.648600 0.000000 12.000000 0.000000
+ C 0 0 40.624473 0.648708 -40.624473 359.999924 9.500152
+ S 0 0 7.353673 -0.557148 10.000000 -1.000000
+ END
+TURNOUT HO "Atlas #8 Mark IV Left 285"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 13.500000 0.000000 90.000000
+ E 12.200000 1.000000 82.819238
+ S 0 0.000000 0.000000 0.000000 0.649600 0.000000
+ S 0 0.000000 0.649600 0.000000 13.500000 0.000000
+ C 0 0.000000 -57.585695 0.649676 57.585695 172.819162 7.180914
+ S 0 0.000000 7.847964 0.451679 12.200000 1.000000
+ END
+TURNOUT HO "Atlas #8 Mark IV Right 286"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 13.500000 0.000000 90.000000
+ E 12.200000 -1.000000 97.180762
+ S 0 0.000000 0.000000 0.000000 0.649600 0.000000
+ S 0 0.000000 0.649600 0.000000 13.500000 0.000000
+ C 0 0.000000 57.585695 0.649371 -57.585695 0.000076 7.180914
+ S 0 0.000000 7.847964 -0.451679 12.200000 -1.000000
+ END
+TURNOUT HO "Atlas Left Snap Switch 850"
+ U "Regular Turnout" "Sillub Technology" "Atlas" "Left Snap Switch" "850" "Right Snap Switch" "850" 6.156363 20.000000 1.085533 9.000000
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 9.000000 0.000000 90.000000
+ E 6.156363 1.085533 70.000000
+ S 0 0.000000 0.000000 0.000000 0.648600 0.000000
+ S 0 0.000000 0.648600 0.000000 9.000000 0.000000
+ C 0 0.000000 -14.321607 0.648600 14.321607 160.000000 20.000000
+ S 0 0.000000 5.546878 0.863699 6.156363 1.085533
+ END
+TURNOUT HO "Atlas Right Snap Switch 851"
+ U "Regular Turnout" "Sillub Technology" "Atlas" "Left Snap Switch" "850" "Right Snap Switch" "850" 6.156363 20.000000 1.085533 9.000000
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 9.000000 0.000000 90.000000
+ E 6.156363 -1.085533 110.000000
+ S 0 0.000000 0.000000 0.000000 0.648600 0.000000
+ S 0 0.000000 0.648600 0.000000 9.000000 0.000000
+ C 0 0.000000 14.321607 0.648600 -14.321607 0.000000 20.000000
+ S 0 0.000000 5.546878 -0.863699 6.156363 -1.085533
+ END
+
+#########################################################################################
+#########################################################################################
+SUBCONTENTS Atlas HO-Scale C100 - Straight Track
+TURNOUT HO "Atlas 0.75"" Straight 847a"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 0.750000 0.000000 90.000000
+ S 0 0 0.000000 0.000000 0.750000 0.000000
+ END
+TURNOUT HO "Atlas 1"" Straight 847b"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.000000 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.000000 0.000000
+ END
+TURNOUT HO "Atlas 1.25"" Straight 847c"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.250000 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.250000 0.000000
+ END
+TURNOUT HO "Atlas 1.5"" Straight 847d"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.500000 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.500000 0.000000
+ END
+TURNOUT HO "Atlas 2.0"" Straight 847e"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.000000 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.000000 0.000000
+ END
+# Straight Section Design by Dave Bullis - 2.500000
+TURNOUT HO "Atlas 2.5"" Straight 847f"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.500000 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.500000 0.000000
+ END
+# Straight Section Design by Dave Bullis - 3.000000
+TURNOUT HO "Atlas 3"" Straight 823"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.000000 0.000000 90.000000
+ S 0 0 0.000000 0.000000 3.000000 0.000000
+ END
+# Straight Section Design by Dave Bullis - 6.000000
+TURNOUT HO "Atlas 6"" Straight 822"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.000000 0.000000 90.000000
+ S 0 0 0.000000 0.000000 6.000000 0.000000
+ END
+# Straight Section Design by Dave Bullis - 9.000000
+TURNOUT HO "Atlas 9"" Straight 150/821"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.000000 0.000000 90.000000
+ S 0 0 0.000000 0.000000 9.000000 0.000000
+ END
+TURNOUT HO "Atlas 36"" Super-Flex 168/178"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 36.000000 0.000000 90.000000
+ S 0 0 0.000000 0.000000 36.000000 0.000000
+ END
+
+#########################################################################################
+#########################################################################################
+SUBCONTENTS Atlas HO-Scale C100 - Curve Track
+# Curved Section Design by Dave Bullis - 15.000000 30.000000
+TURNOUT HO "Atlas 15"" 30D Curve 151/831"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.499994 -2.009616 120.000000
+ C 0 0 15.000000 0.000000 -15.000000 0.000000 30.000000
+ END
+TURNOUT HO "Atlas 15"" 15D Curve 832"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.882282 -0.511112 105.000000
+ C 0 0.000000 15.000000 0.000000 15.000000 0.000000 15.000000
+ END
+# Curved Section Design by Dave Bullis - 18.000000 30.000000
+TURNOUT HO "Atlas 18"" 30D Curve 152/833"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.999993 -2.411539 120.000000
+ C 0 0 18.000000 0.000000 -18.000000 0.000000 30.000000
+ END
+# Curved Section Design by Dave Bullis - 18.000000 15.000000
+TURNOUT HO "Atlas 18"" 15D Curve 834"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.658739 -0.613334 105.000000
+ C 0 0 18.000000 0.000000 -18.000000 0.000000 15.000000
+ END
+# Curved Section Design by Dave Bullis - 18.000000 10.000000
+TURNOUT HO "Atlas 18"" 10D Curve 835"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.125665 -0.273460 100.000000
+ C 0 0 18.000000 0.000000 -18.000000 0.000000 10.000000
+ END
+# Curved Section Design by Dave Bullis - 22.000000 22.500000
+TURNOUT HO "Atlas 22"" 22.5D Curve 153/836"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.419029 -1.674647 112.500000
+ C 0 0 22.000000 0.000000 -22.000000 0.000000 22.500000
+ END
+TURNOUT HO "Atlas 24"" 22.5D Curve 837"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.184402 -1.826891 112.500000
+ C 0 0 24.000000 0.000000 -24.000000 0.000000 22.500000
+ END
+
+#########################################################################################
+#########################################################################################
+SUBCONTENTS Atlas HO-Scale C100 - Misc. Track
+TURNOUT HO "Atlas 9"" Straight Terminal 840"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.000000 0.000000 90.000000
+ S 0 0 0.000000 0.000000 9.000000 0.000000
+ L 16711680 0 3.800000 0.500000 3.800000 1.300000
+ L 16711680 0 5.200000 0.500000 5.200000 1.300000
+ L 16711680 0 3.800000 1.300000 5.200000 1.300000
+ A 15611680 0 0.200000 4.100000 1.000000 0.000000 360.000000
+ A 15611680 0 0.200000 4.900000 1.000000 0.000000 360.000000
+ END
+TURNOUT HO "Atlas 9"" Rerailer 844"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.000000 0.000000 90.000000
+ S 0 0 0.000000 0.000000 9.000000 0.000000
+ END
+# Straight Section Design by Victor Bobier - 3.750000
+TURNOUT HO "Atlas Bumper Track 843"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ S 0 0 0.000000 0.000000 3.750000 0.000000
+ END
+TURNOUT HO "Atlas 18"" 30D Curve Terminal 845"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.999993 -2.411539 120.000000
+ C 0 0 18.000000 0.000000 -18.000000 0.000000 30.000000
+ L 16711680 0 0.500000 0.500000 0.500000 1.300000
+ L 16711680 0 1.900000 0.500000 1.900000 1.300000
+ L 16711680 0 0.500000 1.300000 1.900000 1.300000
+ A 15611680 0 0.200000 0.800000 1.000000 0.000000 360.000000
+ A 15611680 0 0.200000 1.600000 1.000000 0.000000 360.000000
+ END
+
+#########################################################################################
+#########################################################################################
+SUBCONTENTS Atlas HO-Scale C100 - Bridges
+TURNOUT HO "Atlas C100 9"" Single-Track Thru-Girder Bridge 880"
+ P "P0" 1
+ E 0.000000 0.000000 270.000000
+ E 9.000000 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 9.000000 0.000000
+ L 11579568 0.100000 0.500000 1.000000 8.500000 1.000000
+ L 11579568 0.050000 0.750000 1.000000 0.750000 0.625000
+ L 11579568 0.050000 2.000000 1.000000 2.000000 0.625000
+ L 11579568 0.050000 3.250000 1.000000 3.250000 0.625000
+ L 11579568 0.050000 4.500000 1.000000 4.500000 0.625000
+ L 11579568 0.050000 5.750000 1.000000 5.750000 0.625000
+ L 11579568 0.050000 7.000000 1.000000 7.000000 0.625000
+ L 11579568 0.050000 8.250000 1.000000 8.250000 0.625000
+ L 11579568 0.100000 0.500000 -1.000000 8.500000 -1.000000
+ L 11579568 0.050000 0.750000 -1.000000 0.750000 -0.625000
+ L 11579568 0.050000 2.000000 -1.000000 2.000000 -0.625000
+ L 11579568 0.050000 3.250000 -1.000000 3.250000 -0.625000
+ L 11579568 0.050000 4.500000 -1.000000 4.500000 -0.625000
+ L 11579568 0.050000 5.750000 -1.000000 5.750000 -0.625000
+ L 11579568 0.050000 7.000000 -1.000000 7.000000 -0.625000
+ L 11579568 0.050000 8.250000 -1.000000 8.250000 -0.625000
+END
+TURNOUT HO "Atlas C100 9"" Double-Track Thru-Girder Bridge 881"
+ P "P0" 1 0 1
+ E 0.000000 0.000000 270.000000
+ E 9.000000 0.000000 90.000000
+ E 0.000000 -2.000000 270.000000
+ E 9.000000 -2.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 9.000000 0.000000
+ S 0 0.000000 0.000000 -2.000000 9.000000 -2.000000
+ L 11579568 0.100000 0.500000 1.000000 8.500000 1.000000
+
+ L 11579568 0.050000 0.750000 1.000000 0.750000 0.625000
+ L 11579568 0.050000 2.000000 1.000000 2.000000 0.625000
+ L 11579568 0.050000 3.250000 1.000000 3.250000 0.625000
+ L 11579568 0.050000 4.500000 1.000000 4.500000 0.625000
+ L 11579568 0.050000 5.750000 1.000000 5.750000 0.625000
+ L 11579568 0.050000 7.000000 1.000000 7.000000 0.625000
+ L 11579568 0.050000 8.250000 1.000000 8.250000 0.625000
+
+ L 11579568 0.050000 0.750000 -1.000000 0.750000 -0.625000
+ L 11579568 0.050000 2.000000 -1.000000 2.000000 -0.625000
+ L 11579568 0.050000 3.250000 -1.000000 3.250000 -0.625000
+ L 11579568 0.050000 4.500000 -1.000000 4.500000 -0.625000
+ L 11579568 0.050000 5.750000 -1.000000 5.750000 -0.625000
+ L 11579568 0.050000 7.000000 -1.000000 7.000000 -0.625000
+ L 11579568 0.050000 8.250000 -1.000000 8.250000 -0.625000
+
+ L 11579568 0.100000 0.500000 -1.000000 8.500000 -1.000000
+
+ L 11579568 0.050000 0.750000 -1.000000 0.750000 -1.375000
+ L 11579568 0.050000 2.000000 -1.000000 2.000000 -1.375000
+ L 11579568 0.050000 3.250000 -1.000000 3.250000 -1.375000
+ L 11579568 0.050000 4.500000 -1.000000 4.500000 -1.375000
+ L 11579568 0.050000 5.750000 -1.000000 5.750000 -1.375000
+ L 11579568 0.050000 7.000000 -1.000000 7.000000 -1.375000
+ L 11579568 0.050000 8.250000 -1.000000 8.250000 -1.375000
+
+ L 11579568 0.050000 0.750000 -3.000000 0.750000 -2.625000
+ L 11579568 0.050000 2.000000 -3.000000 2.000000 -2.625000
+ L 11579568 0.050000 3.250000 -3.000000 3.250000 -2.625000
+ L 11579568 0.050000 4.500000 -3.000000 4.500000 -2.625000
+ L 11579568 0.050000 5.750000 -3.000000 5.750000 -2.625000
+ L 11579568 0.050000 7.000000 -3.000000 7.000000 -2.625000
+ L 11579568 0.050000 8.250000 -3.000000 8.250000 -2.625000
+
+ L 11579568 0.100000 0.500000 -3.000000 8.500000 -3.000000
+END
+TURNOUT HO "Atlas C100 9"" Single-Track Add-On Thru-Girder Bridge 882"
+ P "P0" 1
+ E 0.000000 0.000000 270.000000
+ E 9.000000 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 9.000000 0.000000
+ #L 11579568 0.100000 0.500000 1.000000 8.500000 1.000000
+ L 11579568 0.050000 0.750000 1.000000 0.750000 0.625000
+ L 11579568 0.050000 2.000000 1.000000 2.000000 0.625000
+ L 11579568 0.050000 3.250000 1.000000 3.250000 0.625000
+ L 11579568 0.050000 4.500000 1.000000 4.500000 0.625000
+ L 11579568 0.050000 5.750000 1.000000 5.750000 0.625000
+ L 11579568 0.050000 7.000000 1.000000 7.000000 0.625000
+ L 11579568 0.050000 8.250000 1.000000 8.250000 0.625000
+ L 11579568 0.100000 0.500000 -1.000000 8.500000 -1.000000
+ L 11579568 0.050000 0.750000 -1.000000 0.750000 -0.625000
+ L 11579568 0.050000 2.000000 -1.000000 2.000000 -0.625000
+ L 11579568 0.050000 3.250000 -1.000000 3.250000 -0.625000
+ L 11579568 0.050000 4.500000 -1.000000 4.500000 -0.625000
+ L 11579568 0.050000 5.750000 -1.000000 5.750000 -0.625000
+ L 11579568 0.050000 7.000000 -1.000000 7.000000 -0.625000
+ L 11579568 0.050000 8.250000 -1.000000 8.250000 -0.625000
+END
+TURNOUT HO "Atlas C100 9"" Warren Truss Bridge 883"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.000000 0.000000 90.000000
+ S 0 0 0.000000 0.000000 9.000000 0.000000
+ F 11579568 0.000000 4
+ 0.000000 1.200000 0
+ 9.000000 1.200000 0
+ 9.000000 0.625000 0
+ 0.000000 0.625000 0
+ F 11579568 0.000000 4
+ 0.000000 -1.200000 0
+ 9.000000 -1.200000 0
+ 9.000000 -0.625000 0
+ 0.000000 -0.625000 0
+ L 8421504 0.100000 0.000000 1.200000 9.000000 1.200000
+ L 8421504 0.100000 0.000000 -1.200000 9.000000 -1.200000
+ END
+TURNOUT HO "Atlas C100 9"" Deck Truss Bridge 884"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.000000 0.000000 90.000000
+ S 0 0 0.000000 0.000000 9.000000 0.000000
+ L 11579568 0.050000 0.000000 0.700000 9.000000 0.700000
+ L 11579568 0.050000 0.000000 0.600000 0.000000 0.700000
+ L 11579568 0.050000 9.000000 0.600000 9.000000 0.700000
+ L 11579568 0.050000 0.000000 -0.700000 9.000000 -0.700000
+ L 11579568 0.050000 0.000000 -0.600000 0.000000 -0.700000
+ L 11579568 0.050000 9.000000 -0.600000 9.000000 -0.700000
+ END
+TURNOUT HO "Atlas C100 9"" Plate Girder Bridge 885"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.000000 0.000000 90.000000
+ S 0 0 0.000000 0.000000 9.000000 0.000000
+ F 11579568 0.000000 4
+ 0.000000 1.300000 0
+ 9.000000 1.300000 0
+ 9.000000 0.625000 0
+ 0.000000 0.625000 0
+ F 11579568 0.000000 4
+ 0.000000 -1.300000 0
+ 9.000000 -1.300000 0
+ 9.000000 -0.625000 0
+ 0.000000 -0.625000 0
+ L 8421504 0.100000 0.000000 1.300000 9.000000 1.300000
+ L 8421504 0.050000 0.900000 1.000000 0.900000 1.300000
+ L 8421504 0.050000 2.700000 1.000000 2.700000 1.300000
+ L 8421504 0.050000 4.500000 1.000000 4.500000 1.300000
+ L 8421504 0.050000 6.300000 1.000000 6.300000 1.300000
+ L 8421504 0.050000 8.100000 1.000000 8.100000 1.300000
+ L 8421504 0.100000 0.000000 -1.300000 9.000000 -1.300000
+ L 8421504 0.050000 0.900000 -1.000000 0.900000 -1.300000
+ L 8421504 0.050000 2.700000 -1.000000 2.700000 -1.300000
+ L 8421504 0.050000 4.500000 -1.000000 4.500000 -1.300000
+ L 8421504 0.050000 6.300000 -1.000000 6.300000 -1.300000
+ L 8421504 0.050000 8.100000 -1.000000 8.100000 -1.300000
+ END
+TURNOUT HO "Atlas C100 18"" Through Truss Bridge 888/889"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 18.000000 0.000000 90.000000
+ S 0 0 0.000000 0.000000 18.000000 0.000000
+ L 11579568 0.050000 0.000000 1.200000 18.000000 1.200000
+ L 11579568 0.050000 0.000000 0.750000 0.000000 1.200000
+ L 11579568 0.050000 18.000000 0.750000 18.000000 1.200000
+ L 11579568 0.050000 0.000000 -1.200000 18.000000 -1.200000
+ L 11579568 0.050000 0.000000 -0.750000 0.000000 -1.200000
+ L 11579568 0.050000 18.000000 -0.750000 18.000000 -1.200000
+ L 11579568 0.050000 3.000000 -1.200000 3.000000 1.200000
+ L 11579568 0.050000 6.000000 -1.200000 6.000000 1.200000
+ L 11579568 0.050000 9.000000 -1.200000 9.000000 1.200000
+ L 11579568 0.050000 12.000000 -1.200000 12.000000 1.200000
+ L 11579568 0.050000 15.000000 -1.200000 15.000000 1.200000
+ L 11579568 0.050000 3.000000 -1.200000 6.000000 1.200000
+ L 11579568 0.050000 3.000000 1.200000 6.000000 -1.200000
+ L 11579568 0.050000 6.000000 -1.200000 9.000000 1.200000
+ L 11579568 0.050000 6.000000 1.200000 9.000000 -1.200000
+ L 11579568 0.050000 9.000000 -1.200000 12.000000 1.200000
+ L 11579568 0.050000 9.000000 1.200000 12.000000 -1.200000
+ L 11579568 0.050000 12.000000 -1.200000 15.000000 1.200000
+ L 11579568 0.050000 12.000000 1.200000 15.000000 -1.200000
+ END
+TURNOUT HO "Atlas C100 9"" Decorate Plate Girder Bridge (Various Roads) 890-898"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.000000 0.000000 90.000000
+ S 0 0 0.000000 0.000000 9.000000 0.000000
+ F 11579568 0.000000 4
+ 0.000000 1.300000 0
+ 9.000000 1.300000 0
+ 9.000000 0.625000 0
+ 0.000000 0.625000 0
+ F 11579568 0.000000 4
+ 0.000000 -1.300000 0
+ 9.000000 -1.300000 0
+ 9.000000 -0.625000 0
+ 0.000000 -0.625000 0
+ L 8421504 0.100000 0.000000 1.300000 9.000000 1.300000
+ L 8421504 0.050000 0.900000 1.000000 0.900000 1.300000
+ L 8421504 0.050000 2.700000 1.000000 2.700000 1.300000
+ L 8421504 0.050000 4.500000 1.000000 4.500000 1.300000
+ L 8421504 0.050000 6.300000 1.000000 6.300000 1.300000
+ L 8421504 0.050000 8.100000 1.000000 8.100000 1.300000
+ L 8421504 0.100000 0.000000 -1.300000 9.000000 -1.300000
+ L 8421504 0.050000 0.900000 -1.000000 0.900000 -1.300000
+ L 8421504 0.050000 2.700000 -1.000000 2.700000 -1.300000
+ L 8421504 0.050000 4.500000 -1.000000 4.500000 -1.300000
+ L 8421504 0.050000 6.300000 -1.000000 6.300000 -1.300000
+ L 8421504 0.050000 8.100000 -1.000000 8.100000 -1.300000
+END
+TURNOUT HO "Atlas C100 9"" Decorate Plate Girder Bridge (Various Roads) 70000001-70000012"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.000000 0.000000 90.000000
+ S 0 0 0.000000 0.000000 9.000000 0.000000
+ F 11579568 0.000000 4
+ 0.000000 1.300000 0
+ 9.000000 1.300000 0
+ 9.000000 0.625000 0
+ 0.000000 0.625000 0
+ F 11579568 0.000000 4
+ 0.000000 -1.300000 0
+ 9.000000 -1.300000 0
+ 9.000000 -0.625000 0
+ 0.000000 -0.625000 0
+ L 8421504 0.100000 0.000000 1.300000 9.000000 1.300000
+ L 8421504 0.050000 0.900000 1.000000 0.900000 1.300000
+ L 8421504 0.050000 2.700000 1.000000 2.700000 1.300000
+ L 8421504 0.050000 4.500000 1.000000 4.500000 1.300000
+ L 8421504 0.050000 6.300000 1.000000 6.300000 1.300000
+ L 8421504 0.050000 8.100000 1.000000 8.100000 1.300000
+ L 8421504 0.100000 0.000000 -1.300000 9.000000 -1.300000
+ L 8421504 0.050000 0.900000 -1.000000 0.900000 -1.300000
+ L 8421504 0.050000 2.700000 -1.000000 2.700000 -1.300000
+ L 8421504 0.050000 4.500000 -1.000000 4.500000 -1.300000
+ L 8421504 0.050000 6.300000 -1.000000 6.300000 -1.300000
+ L 8421504 0.050000 8.100000 -1.000000 8.100000 -1.300000
+END
+
+#########################################################################################
+#########################################################################################
+SUBCONTENTS Atlas HO-Scale C100 - Turntable
+TURNOUT HO "Atlas Turntable 9"" Dia 15d 21 Positions 305"
+ P "1" 1
+ P "2" 2
+ P "3" 3
+ P "4" 4
+ P "5" 5
+ P "6" 6
+ P "7" 7
+ P "8" 8
+ P "9" 9
+ P "10" 10
+ P "11" 11
+ P "12" 12
+ G 0 0.000000 0.500000 0.000000 0.000000 0.000000 360.000000
+ A 0 0.031250 4.500000 0.000000 0.000000 0.000000 360.000000
+ A 0 0.031250 5.000000 0.000000 0.000000 0.000000 360.000000
+ L 0 0.031250 7.000000 1.750000 7.000000 -1.750000
+ L 0 0.031250 4.625000 1.750000 7.000000 1.750000
+ L 0 0.031250 4.625000 -1.750000 7.000000 -1.750000
+ E 3.897114 -2.250000 120.000000
+ E 3.181981 -3.181981 135.000000
+ E 2.250000 -3.897114 150.000000
+ E 1.164686 -4.346666 165.000000
+ E 0.000000 -4.500000 180.000000
+ E -1.164686 -4.346666 195.000000
+ E -2.250000 -3.897114 210.000000
+ E -3.181981 -3.181981 225.000000
+ E -3.897114 -2.250000 240.000000
+ E -4.346666 -1.164686 255.000000
+ E -4.500000 0.000000 270.000000
+ E -4.346666 1.164686 285.000000
+ E -3.897114 2.250000 300.000000
+ E -3.181981 3.181981 315.000000
+ E -2.250000 3.897114 330.000000
+ E -1.164686 4.346666 345.000000
+ E 0.000000 4.500000 360.000000
+ E 1.164686 4.346666 375.000000
+ E 2.250000 3.897114 390.000000
+ E 3.181981 3.181981 405.000000
+ E 3.897114 2.250000 420.000000
+ S 0 0 3.897114 -2.250000 -3.897114 2.250000
+ S 0 0 3.181981 -3.181981 -3.181981 3.181981
+ S 0 0 2.250000 -3.897114 -2.250000 3.897114
+ S 0 0 1.164686 -4.346666 -1.164686 4.346666
+ S 0 0 0.000000 -4.500000 0.000000 4.500000
+ S 0 0 -1.164686 -4.346666 1.164686 4.346666
+ S 0 0 -2.250000 -3.897114 2.250000 3.897114
+ S 0 0 -3.181981 -3.181981 3.181981 3.181981
+ S 0 0 -3.897114 -2.250000 3.897114 2.250000
+ S 0 0 -4.346666 -1.164686 4.346666 1.164686
+ S 0 0 -4.500000 0.000000 4.500000 0.000000
+ S 0 0 -4.346666 1.164686 4.346666 -1.164686
+END
diff --git a/app/lib/params/HOn3-BlackStoneProTraxx.xtp b/app/lib/params/HOn3-BlackStoneProTraxx.xtp
index d47e2b8..f5690e7 100644
--- a/app/lib/params/HOn3-BlackStoneProTraxx.xtp
+++ b/app/lib/params/HOn3-BlackStoneProTraxx.xtp
@@ -1,21 +1,21 @@
-CONTENTS Blackstone ProTraxx HOn3 Snap-Track
-
-SUBCONTENTS Blackstone ProTraxx HOn3 Snap-Track - Straight Track
-TURNOUT HOn3 "ProTraxx HOn3 Snap-Track Straight 6.535 228mm B500100"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.976378 0.000000 90.000000
- S 0 0 0.000000 0.000000 8.976378 0.000000
- L 11579568 0.053333 0.000000 0.629921 8.976378 0.629921
- L 11579568 0.053333 0.000000 -0.629921 8.976378 -0.629921
-END
-
-SUBCONTENTS Blackstone ProTraxx HOn3 Snap-Track - Curve Track
-TURNOUT HOn3 "ProTraxx HOn3 Snap-Track Curve 18.90R 480mm 22.5 B500200"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.231813 -1.438497 112.500000
- C 0 0 18.897638 0.000000 -18.897638 0.000000 22.500000
- A 11579568 0.053333 18.267717 0.000000 -18.897638 0.000000 22.500000
- A 11579568 0.053333 19.527559 0.000000 -18.897638 0.000000 22.500000
-END
+CONTENTS Blackstone ProTraxx HOn3 Snap-Track
+
+SUBCONTENTS Blackstone ProTraxx HOn3 Snap-Track - Straight Track
+TURNOUT HOn3 "ProTraxx HOn3 Snap-Track Straight 6.535 228mm B500100"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.976378 0.000000 90.000000
+ S 0 0 0.000000 0.000000 8.976378 0.000000
+ L 11579568 0.053333 0.000000 0.629921 8.976378 0.629921
+ L 11579568 0.053333 0.000000 -0.629921 8.976378 -0.629921
+END
+
+SUBCONTENTS Blackstone ProTraxx HOn3 Snap-Track - Curve Track
+TURNOUT HOn3 "ProTraxx HOn3 Snap-Track Curve 18.90R 480mm 22.5° B500200"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.231813 -1.438497 112.500000
+ C 0 0 18.897638 0.000000 -18.897638 0.000000 22.500000
+ A 11579568 0.053333 18.267717 0.000000 -18.897638 0.000000 22.500000
+ A 11579568 0.053333 19.527559 0.000000 -18.897638 0.000000 22.500000
+END
diff --git a/app/lib/params/HOn30_Minitrains.xtp b/app/lib/params/HOn30_Minitrains.xtp
index 4a1f1a2..36d0144 100644
--- a/app/lib/params/HOn30_Minitrains.xtp
+++ b/app/lib/params/HOn30_Minitrains.xtp
@@ -1,74 +1,74 @@
-CONTENTS Minitrains HOe - 009 -HOn30 Gleissystem / Track System
-TURNOUT HOn30 "Minitrains Straight Track 2/1 9311"
- U "Straight Section" "" "Minitrains" "Straight Track 2/1" "9311" 6.062992 0.000000 0.000000 0
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.062992 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 6.062992 0.000000
- END
-TURNOUT HOn30 "Minitrains Straight Track 9301"
- U "Straight Section" "" "Minitrains" "Straight Track" "9301" 3.031496 0.000000 0.000000 0
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.031496 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 3.031496 0.000000
- END
-TURNOUT HOn30 "Minitrains Straight Track 9313"
- U "Straight Section" "" "Minitrains" "Straight Track" "9313" 2.480315 0.000000 0.000000 0
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.480315 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 2.480315 0.000000
- END
-TURNOUT HOn30 "Minitrains Feeder Track 9303"
- U "Straight Section" "" "Minitrains" "Feeder Track" "9303" 6.062992 0.000000 0.000000 0
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.062992 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 6.062992 0.000000
- END
-TURNOUT HOn30 "Minitrains Insulated Track 9304"
- U "Straight Section" "" "Minitrains" "Insulated Track" "9304" 3.031496 0.000000 0.000000 0
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.031496 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 3.031496 0.000000
- END
-TURNOUT HOn30 "Minitrains Curved Track 60 9321"
- U "Curved Section" "" "Minitrains" "Curved Track 60" "9321" 5.511811 60.000000 0.000000 0.000000 0
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.773366 2.755901 30.000000
- C 0 0.000000 -5.511811 0.000007 5.511811 120.000076 60.000000
- END
-TURNOUT HOn30 "Minitrains Curved Track 30 9302"
- U "Curved Section" "" "Minitrains" "Curved Track 30" "9302" 5.511811 30.000000 0.000000 0.000000 0
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.755903 0.738441 60.000000
- C 0 0.000000 -5.511811 0.000007 5.511811 150.000076 30.000000
- END
-TURNOUT HOn30 "Minitrains Left Hand Turnout 9306"
- U "Regular Turnout" "" "Minitrains" "Left Hand Turnout" "9306" "Right Hand Turnout" "9316" 2.755906 30.000000 0.708661 3.031496 0.000000 0.000000 0
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 3.031496 0.000000 90.000000
- E 2.755906 0.708661 60.000000
- S 0 0.000000 0.000000 0.000000 0.465457 0.000000
- S 0 0.000000 0.465457 0.000000 3.031496 0.000000
- C 0 0.000000 -3.967235 0.465463 3.967235 149.999924 30.000152
- S 0 0.000000 2.449083 0.531513 2.755906 0.708661
- END
-TURNOUT HOn30 "Minitrains Right Hand Turnout 9316"
- U "Regular Turnout" "" "Minitrains" "Left Hand Turnout" "9306" "Right Hand Turnout" "9316" 2.755906 30.000000 0.708661 3.031496 0.000000 0.000000 0
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 3.031496 0.000000 90.000000
- E 2.755906 -0.708661 120.000000
- S 0 0.000000 0.000000 0.000000 0.465457 0.000000
- S 0 0.000000 0.465457 0.000000 3.031496 0.000000
- C 0 0.000000 3.967235 0.465442 -3.967235 0.000076 30.000152
- S 0 0.000000 2.449083 -0.531513 2.755906 -0.708661
- END
+CONTENTS Minitrains HOe - 009 -HOn30 Gleissystem / Track System
+TURNOUT HOn30 "Minitrains Straight Track 2/1 9311"
+ U "Straight Section" "" "Minitrains" "Straight Track 2/1" "9311" 6.062992 0.000000 0.000000 0
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.062992 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 6.062992 0.000000
+ END
+TURNOUT HOn30 "Minitrains Straight Track 9301"
+ U "Straight Section" "" "Minitrains" "Straight Track" "9301" 3.031496 0.000000 0.000000 0
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.031496 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 3.031496 0.000000
+ END
+TURNOUT HOn30 "Minitrains Straight Track 9313"
+ U "Straight Section" "" "Minitrains" "Straight Track" "9313" 2.480315 0.000000 0.000000 0
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.480315 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 2.480315 0.000000
+ END
+TURNOUT HOn30 "Minitrains Feeder Track 9303"
+ U "Straight Section" "" "Minitrains" "Feeder Track" "9303" 6.062992 0.000000 0.000000 0
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.062992 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 6.062992 0.000000
+ END
+TURNOUT HOn30 "Minitrains Insulated Track 9304"
+ U "Straight Section" "" "Minitrains" "Insulated Track" "9304" 3.031496 0.000000 0.000000 0
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.031496 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 3.031496 0.000000
+ END
+TURNOUT HOn30 "Minitrains Curved Track 60° 9321"
+ U "Curved Section" "" "Minitrains" "Curved Track 60°" "9321" 5.511811 60.000000 0.000000 0.000000 0
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.773366 2.755901 30.000000
+ C 0 0.000000 -5.511811 0.000007 5.511811 120.000076 60.000000
+ END
+TURNOUT HOn30 "Minitrains Curved Track 30° 9302"
+ U "Curved Section" "" "Minitrains" "Curved Track 30°" "9302" 5.511811 30.000000 0.000000 0.000000 0
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.755903 0.738441 60.000000
+ C 0 0.000000 -5.511811 0.000007 5.511811 150.000076 30.000000
+ END
+TURNOUT HOn30 "Minitrains Left Hand Turnout 9306"
+ U "Regular Turnout" "" "Minitrains" "Left Hand Turnout" "9306" "Right Hand Turnout" "9316" 2.755906 30.000000 0.708661 3.031496 0.000000 0.000000 0
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 3.031496 0.000000 90.000000
+ E 2.755906 0.708661 60.000000
+ S 0 0.000000 0.000000 0.000000 0.465457 0.000000
+ S 0 0.000000 0.465457 0.000000 3.031496 0.000000
+ C 0 0.000000 -3.967235 0.465463 3.967235 149.999924 30.000152
+ S 0 0.000000 2.449083 0.531513 2.755906 0.708661
+ END
+TURNOUT HOn30 "Minitrains Right Hand Turnout 9316"
+ U "Regular Turnout" "" "Minitrains" "Left Hand Turnout" "9306" "Right Hand Turnout" "9316" 2.755906 30.000000 0.708661 3.031496 0.000000 0.000000 0
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 3.031496 0.000000 90.000000
+ E 2.755906 -0.708661 120.000000
+ S 0 0.000000 0.000000 0.000000 0.465457 0.000000
+ S 0 0.000000 0.465457 0.000000 3.031496 0.000000
+ C 0 0.000000 3.967235 0.465442 -3.967235 0.000076 30.000152
+ S 0 0.000000 2.449083 -0.531513 2.755906 -0.708661
+ END
diff --git a/app/lib/params/LifeLike-N.xtp b/app/lib/params/LifeLike-N.xtp
index dd45fd9..9e74df4 100644
--- a/app/lib/params/LifeLike-N.xtp
+++ b/app/lib/params/LifeLike-N.xtp
@@ -19,7 +19,7 @@ TURNOUT N "LifeLike Power-Loc Power Link Adapter Str 2.5 433-7807"
END
SUBCONTENTS LifeLike Power-Loc N-Scale Curved Track
-TURNOUT N "LifeLike Power-Loc Curve 9.75R 30 433-7803"
+TURNOUT N "LifeLike Power-Loc Curve 9.75R 30° 433-7803"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.875000 -1.306252 120.000000
@@ -27,7 +27,7 @@ TURNOUT N "LifeLike Power-Loc Curve 9.75R 30 433-7803"
A 11579568 0.053333 9.250000 0.000000 -9.750000 0.000000 30.000000
A 11579568 0.053333 10.250000 0.000000 -9.750000 0.000000 30.000000
END
-TURNOUT N "LifeLike Power-Loc Terminal Curve 9.75R 30 433-7806"
+TURNOUT N "LifeLike Power-Loc Terminal Curve 9.75R 30° 433-7806"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.875000 -1.306252 120.000000
diff --git a/app/lib/params/Lionel-O-O27.xtp b/app/lib/params/Lionel-O-O27.xtp
index 29e9712..6e36f23 100644
--- a/app/lib/params/Lionel-O-O27.xtp
+++ b/app/lib/params/Lionel-O-O27.xtp
@@ -50,28 +50,28 @@ TURNOUT O "Lionel O-27 Track Remote-Control Track 8.75 6-12746"
SUBCONTENTS Lionel O-27 Track - Curve Track
-TURNOUT O "Lionel O-27 Track Half 27 Dia Curved Track Section 22.5 6-65014"
+TURNOUT O "Lionel O-27 Track Half 27 Dia Curved Track Section 22.5° 6-65014"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 5.166226 -1.027626 112.500000
C 0 0 13.500000 0.000000 -13.500000 0.000000 22.500000
A 11579568 0.053333 13.500000 0.000000 -13.500000 0.000000 22.500000
END
-TURNOUT O "Lionel O-27 Track 27 Dia Curved Track Section 45 6-65033"
+TURNOUT O "Lionel O-27 Track 27 Dia Curved Track Section 45° 6-65033"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 9.545942 -3.954058 135.000000
C 0 0 13.500000 0.000000 -13.500000 0.000000 45.000000
A 11579568 0.053333 13.500000 0.000000 -13.500000 0.000000 45.000000
END
-TURNOUT O "Lionel O-27 Track 42 Dia Curved Track Section 30 6-65049"
+TURNOUT O "Lionel O-27 Track 42 Dia Curved Track Section 30° 6-65049"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 10.500000 -2.813467 120.000000
C 0 0 21.000000 0.000000 -21.000000 0.000000 30.000000
A 11579568 0.053333 21.000000 0.000000 -21.000000 0.000000 30.000000
END
-TURNOUT O "Lionel O-27 Track 54 Dia Curved Track Section 22.5 6-65113"
+TURNOUT O "Lionel O-27 Track 54 Dia Curved Track Section 22.5° 6-65113"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 10.332453 -2.055253 112.500000
@@ -104,7 +104,7 @@ TURNOUT O "Lionel O-27 Track 45 Cross 6-65023"
END
SUBCONTENTS Lionel O-27 Track - Turnout
-TURNOUT O "Lionel O-27 Track 27 Left Switch 45 6-65021/65121"
+TURNOUT O "Lionel O-27 Track 27 Left Switch 45° 6-65021/65121"
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -115,7 +115,7 @@ TURNOUT O "Lionel O-27 Track 27 Left Switch 45 6-65021/65121"
L 11579568 0.053333 0.000000 0.000000 8.750000 -0.000000
A 11579568 0.053333 13.500000 0.000000 13.500000 135.000000 45.000000
END
-TURNOUT O "Lionel O-27 Track 27 Right Switch 45 6-65022/65122"
+TURNOUT O "Lionel O-27 Track 27 Right Switch 45° 6-65022/65122"
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -126,7 +126,7 @@ TURNOUT O "Lionel O-27 Track 27 Right Switch 45 6-65022/65122"
L 11579568 0.053333 0.000000 0.000000 8.750000 -0.000000
A 11579568 0.053333 13.500000 0.000000 -13.500000 0.000000 45.000000
END
-TURNOUT O "Lionel O-27 Track 42 Left Switch 30 6-65167"
+TURNOUT O "Lionel O-27 Track 42 Left Switch 30° 6-65167"
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -137,7 +137,7 @@ TURNOUT O "Lionel O-27 Track 42 Left Switch 30 6-65167"
L 11579568 0.053333 0.000000 0.000000 13.625000 -0.000000
A 11579568 0.053333 21.000000 0.000000 21.000000 150.000000 30.000000
END
-TURNOUT O "Lionel O-27 Track 42 Right Switch 30 6-65168"
+TURNOUT O "Lionel O-27 Track 42 Right Switch 30° 6-65168"
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -174,35 +174,35 @@ TURNOUT O "Lionel O Track EX-Long Straight 40.0 6-65523"
END
SUBCONTENTS Lionel O Track - Curve Track
-TURNOUT O "Lionel O Track Curved 72 22.5 6-65572"
+TURNOUT O "Lionel O Track Curved 72 22.5° 6-65572"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 13.776604 -2.740337 112.500000
C 0 0 36.000000 0.000000 -36.000000 0.000000 22.500000
A 11579568 0.053333 36.000000 0.000000 -36.000000 0.000000 22.500000
END
-TURNOUT O "Lionel O Track Curved 54 22.5 6-65554"
+TURNOUT O "Lionel O Track Curved 54 22.5° 6-65554"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 10.332453 -2.055253 112.500000
C 0 0 27.000000 0.000000 -27.000000 0.000000 22.500000
A 11579568 0.053333 27.000000 0.000000 -27.000000 0.000000 22.500000
END
-TURNOUT O "Lionel O Track Curved 42 30 6-12925"
+TURNOUT O "Lionel O Track Curved 42 30° 6-12925"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 10.500000 -2.813467 120.000000
C 0 0 21.000000 0.000000 -21.000000 0.000000 30.000000
A 11579568 0.053333 21.000000 0.000000 -21.000000 0.000000 30.000000
END
-TURNOUT O "Lionel O Track Half Curved 31 22.5 6-65504"
+TURNOUT O "Lionel O Track Half Curved 31 22.5° 6-65504"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 5.931593 -1.179867 112.500000
C 0 0 15.500000 0.000000 -15.500000 0.000000 22.500000
A 11579568 0.053333 15.500000 0.000000 -15.500000 0.000000 22.500000
END
-TURNOUT O "Lionel O Track Curved 31 45 6-65501"
+TURNOUT O "Lionel O Track Curved 31 45° 6-65501"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 10.960155 -4.539845 135.000000
@@ -212,7 +212,7 @@ TURNOUT O "Lionel O Track Curved 31 45 6-65501"
SUBCONTENTS Lionel O Track - Turnout
-TURNOUT O "Lionel O Track 31 Left Switch 45 6-14062"
+TURNOUT O "Lionel O Track 31 Left Switch 45° 6-14062"
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -223,7 +223,7 @@ TURNOUT O "Lionel O Track 31 Left Switch 45 6-14062"
A 11579568 0.053333 15.500000 0.000000 15.500000 135.000000 45.000000
L 11579568 0.053333 0.000000 0.000000 10.000000 0.000000
END
-TURNOUT O "Lionel O Track 31 Right Switch 45 6-14063"
+TURNOUT O "Lionel O Track 31 Right Switch 45° 6-14063"
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -234,7 +234,7 @@ TURNOUT O "Lionel O Track 31 Right Switch 45 6-14063"
A 11579568 0.053333 15.500000 0.000000 -15.500000 0.000000 45.000000
L 11579568 0.053333 0.000000 0.000000 10.000000 0.000000
END
-TURNOUT O "Lionel O Track 42 Left Switch 30 6-12081"
+TURNOUT O "Lionel O Track 42 Left Switch 30° 6-12081"
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -245,7 +245,7 @@ TURNOUT O "Lionel O Track 42 Left Switch 30 6-12081"
A 11579568 0.053333 21.000000 0.000000 21.000000 150.000000 30.000000
L 11579568 0.053333 0.000000 0.000000 13.625000 0.000000
END
-TURNOUT O "Lionel O Track 42 Right Switch 30 6-12080"
+TURNOUT O "Lionel O Track 42 Right Switch 30° 6-12080"
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -256,7 +256,7 @@ TURNOUT O "Lionel O Track 42 Right Switch 30 6-12080"
A 11579568 0.053333 21.000000 0.000000 -21.000000 0.000000 30.000000
L 11579568 0.053333 0.000000 0.000000 13.625000 0.000000
END
-TURNOUT O "Lionel O Track 72 Left Switch 22.5 6-65166
+TURNOUT O "Lionel O Track 72 Left Switch 22.5° 6-65166
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -267,7 +267,7 @@ TURNOUT O "Lionel O Track 72 Left Switch 22.5 6-65166
A 11579568 0.053333 36.000000 0.000000 36.000000 157.500000 22.500000
L 11579568 0.053333 0.000000 0.000000 14.250000 0.000000
END
-TURNOUT O "Lionel O Track 72 Right Switch 22.5 6-65165"
+TURNOUT O "Lionel O Track 72 Right Switch 22.5° 6-65165"
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
diff --git a/app/lib/params/Lionel-O.xtp b/app/lib/params/Lionel-O.xtp
index 10a2d09..f96e167 100644
--- a/app/lib/params/Lionel-O.xtp
+++ b/app/lib/params/Lionel-O.xtp
@@ -55,21 +55,21 @@ TURNOUT O "Lionel O Track EX-Long Straight 40.0 6-65523"
END
SUBCONTENTS Lionel O Track - Curve Track
-TURNOUT O "Lionel O Track Curved 72 22.5 6-65572"
+TURNOUT O "Lionel O Track Curved 72 22.5° 6-65572"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 13.776604 -2.740337 112.500000
C 0 0 36.000000 0.000000 -36.000000 0.000000 22.500000
A 11579568 0.053333 36.000000 0.000000 -36.000000 0.000000 22.500000
END
-TURNOUT O "Lionel O Track Curved 54 22.5 6-65554"
+TURNOUT O "Lionel O Track Curved 54 22.5° 6-65554"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 10.332453 -2.055253 112.500000
C 0 0 27.000000 0.000000 -27.000000 0.000000 22.500000
A 11579568 0.053333 27.000000 0.000000 -27.000000 0.000000 22.500000
END
-TURNOUT O "Lionel O Track Curved 42 30 6-12925"
+TURNOUT O "Lionel O Track Curved 42 30° 6-12925"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 10.500000 -2.813467 120.000000
@@ -91,7 +91,7 @@ TURNOUT O "Lionel O Track Curve 31 22.5 6-xx.5"
SUBCONTENTS Lionel O Track - Turnout
-#TURNOUT O "Lionel O Track 31 Left Switch 45 6-14062"
+#TURNOUT O "Lionel O Track 31 Left Switch 45° 6-14062"
# P "Normal" 1
# P "Reverse" 2
# E 0.000000 0.000000 270.000000
@@ -114,7 +114,7 @@ TURNOUT O "Lionel O Track 31 Right Switch 450 121"
C 0 0.000000 11.279226 1.390465 -11.279226 0.000076 45.000152
S 0 0.000000 9.366143 -3.303625 10.250000 -4.187500
END
-#TURNOUT O "Lionel O Track 31 Right Switch 45 6-14063"
+#TURNOUT O "Lionel O Track 31 Right Switch 45° 6-14063"
# P "Normal" 1
# P "Reverse" 2
# E 0.000000 0.000000 270.000000
@@ -125,7 +125,7 @@ TURNOUT O "Lionel O Track 31 Right Switch 450 121"
# A 11579568 0.053333 14.500000 0.000000 -14.500000 0.000000 45.000000
# L 11579568 0.053333 0.000000 0.000000 10.000000 0.000000
# END
-TURNOUT O "Lionel O Track 31 Left Switch 45 121"
+TURNOUT O "Lionel O Track 31 Left Switch 45° 121"
# U "Regular Turnout" "" "Lionel" "Left 0-31" "121" "Right 0-31" "121" 10.250000 45.000000 4.187500 10.000000 0.000000 0.000000 0
P "Normal" 1 2
P "Reverse" 1 3 4
@@ -137,7 +137,7 @@ TURNOUT O "Lionel O Track 31 Left Switch 45 121"
C 0 0.000000 -11.279226 1.390525 11.279226 134.999924 45.000152
S 0 0.000000 9.366143 3.303625 10.250000 4.187500
END
-TURNOUT O "Lionel O Track 42 Left Switch 30 6-xxxxx"
+TURNOUT O "Lionel O Track 42 Left Switch 30° 6-xxxxx"
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -148,7 +148,7 @@ TURNOUT O "Lionel O Track 42 Left Switch 30 6-xxxxx"
A 11579568 0.053333 21.000000 0.000000 21.000000 150.000000 30.000000
L 11579568 0.053333 0.000000 0.000000 13.625000 0.000000
END
-TURNOUT O "Lionel O Track 42 Right Switch 30 6-12080"
+TURNOUT O "Lionel O Track 42 Right Switch 30° 6-12080"
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -159,7 +159,7 @@ TURNOUT O "Lionel O Track 42 Right Switch 30 6-12080"
A 11579568 0.053333 21.000000 0.000000 -21.000000 0.000000 30.000000
L 11579568 0.053333 0.000000 0.000000 13.625000 0.000000
END
-TURNOUT O "Lionel O Track 72 Left Switch 22.5 6-65166
+TURNOUT O "Lionel O Track 72 Left Switch 22.5° 6-65166
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -170,7 +170,7 @@ TURNOUT O "Lionel O Track 72 Left Switch 22.5 6-65166
A 11579568 0.053333 36.000000 0.000000 36.000000 157.500000 22.500000
L 11579568 0.053333 0.000000 0.000000 14.250000 0.000000
END
-TURNOUT O "Lionel O Track 72 Right Switch 22.5 6-65165"
+TURNOUT O "Lionel O Track 72 Right Switch 22.5° 6-65165"
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -182,7 +182,6 @@ TURNOUT O "Lionel O Track 72 Right Switch 22.5 6-65165"
L 11579568 0.053333 0.000000 0.000000 14.250000 0.000000
END
-
SUBCONTENTS Lionel O Track - Misc. Track
TURNOUT O "Lionel O Track Insulated Track 10.0 6-12840"
P "Normal" 1
@@ -200,7 +199,6 @@ TURNOUT O "Lionel O Track Remote-COntrol Track 10.0 6-65530"
G 0 0.000000 0.500000 5.000000 0.000000 0
END
-
SUBCONTENTS Lionel O Track - Crossings
TURNOUT O "Lionel O Track 90 Cross 6-65540"
P "Normal" 1
@@ -223,5 +221,4 @@ TURNOUT O "Lionel O Track 45 Cross 6-65545"
S 0 0 1.720748 -4.154252 10.029252 4.154252
L 11579568 0.053333 0.000000 0.000000 11.750000 0.000000
L 11579568 0.053333 1.720748 -4.154252 10.029252 4.154252
- END
- \ No newline at end of file
+ END \ No newline at end of file
diff --git a/app/lib/params/Lionel27.xtp b/app/lib/params/Lionel27.xtp
index b97e2df..d170fd4 100644
--- a/app/lib/params/Lionel27.xtp
+++ b/app/lib/params/Lionel27.xtp
@@ -1,3 +1,4 @@
+CONTENTS Lionel O-27 Track - Curve Track
# Design by Dwyane Ward Created 03JAN08
# Design modified by Paul Pullen September 2010
# Curve Track Radius Changed, Switch (27) Curve
@@ -48,9 +49,7 @@ TURNOUT O "Lionel O-27 Track Remote-Control Track 8.75 6-12746"
L 11579568 0.053333 0.000000 0.000000 8.750000 0.000000
G 0 0.000000 0.500000 4.375000 0.000000 0
END
-
-
-CONTENTS Lionel O-27 Track - Curve Track
+SUBCONTENTS Lionel O-27 Track - Curved Track
TURNOUT O "Lionel O-27 Original O-27 Curve "
# U "Curved Section" "" "Lionel O-27" "Original O-27 Curve" "" 12.500000 45.000000 0.000000 0.000000 0
P "Normal" 1
@@ -65,14 +64,14 @@ TURNOUT O "Lionel O-27 Original O-27 Half Curve "
E 8.838829 3.661159 22.500000
C 0 0.000000 -12.500000 0.000017 12.500000 135.000076 22.500000
END
-TURNOUT O "Lionel O-27 Track 42 Dia Curved Track Section 30 6-65049"
+TURNOUT O "Lionel O-27 Track 42 Dia Curved Track Section 30° 6-65049"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 10.500000 -2.813467 120.000000
C 0 0 21.000000 0.000000 -21.000000 0.000000 30.000000
A 11579568 0.053333 21.000000 0.000000 -21.000000 0.000000 30.000000
END
-TURNOUT O "Lionel O-27 Track 54 Dia Curved Track Section 22.5 6-65113"
+TURNOUT O "Lionel O-27 Track 54 Dia Curved Track Section 22.5° 6-65113"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 10.332453 -2.055253 112.500000
@@ -129,7 +128,7 @@ TURNOUT O "Lionel 1122 O-27 Remote Control Switch Right 1122-R"
C 0 0.000000 9.572120 1.722576 -9.572120 0.000076 45.000152
S 0 0.000000 8.491139 -2.803623 9.375000 -3.687500
END
-#TURNOUT O "Lionel O-27 Track 27 Left Switch 45 6-65021/65121"
+#TURNOUT O "Lionel O-27 Track 27 Left Switch 45° 6-65021/65121"
# P "Normal" 1
# P "Reverse" 2
# E 0.000000 0.000000 270.000000
@@ -140,7 +139,7 @@ TURNOUT O "Lionel 1122 O-27 Remote Control Switch Right 1122-R"
# L 11579568 0.053333 0.000000 0.000000 8.750000 -0.000000
# A 11579568 0.053333 13.500000 0.000000 13.500000 135.000000 45.000000
# END
-#TURNOUT O "Lionel O-27 Track 27 Right Switch 45 6-65022/65122"
+#TURNOUT O "Lionel O-27 Track 27 Right Switch 45° 6-65022/65122"
# P "Normal" 1
# P "Reverse" 2
# E 0.000000 0.000000 270.000000
@@ -151,7 +150,7 @@ TURNOUT O "Lionel 1122 O-27 Remote Control Switch Right 1122-R"
# L 11579568 0.053333 0.000000 0.000000 8.750000 -0.000000
# A 11579568 0.053333 13.500000 0.000000 -13.500000 0.000000 45.000000
# END
-TURNOUT O "Lionel O-27 Track 42 Left Switch 30 6-65167"
+TURNOUT O "Lionel O-27 Track 42 Left Switch 30° 6-65167"
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -162,7 +161,7 @@ TURNOUT O "Lionel O-27 Track 42 Left Switch 30 6-65167"
L 11579568 0.053333 0.000000 0.000000 13.625000 -0.000000
A 11579568 0.053333 21.000000 0.000000 21.000000 150.000000 30.000000
END
-TURNOUT O "Lionel O-27 Track 42 Right Switch 30 6-65168"
+TURNOUT O "Lionel O-27 Track 42 Right Switch 30° 6-65168"
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -172,7 +171,4 @@ TURNOUT O "Lionel O-27 Track 42 Right Switch 30 6-65168"
C 0 0 21.000000 0.000000 -21.000000 0.000000 30.000000
L 11579568 0.053333 0.000000 0.000000 13.625000 -0.000000
A 11579568 0.053333 21.000000 0.000000 -21.000000 0.000000 30.000000
- END
-
-
- \ No newline at end of file
+ END \ No newline at end of file
diff --git a/app/lib/params/LionelFasttrack.xtp b/app/lib/params/LionelFasttrack.xtp
index 4bc37b2..feeb974 100644
--- a/app/lib/params/LionelFasttrack.xtp
+++ b/app/lib/params/LionelFasttrack.xtp
@@ -57,7 +57,7 @@ TURNOUT O "Lionel Fast Track Straight 1.375 w/o Roadbed 6-12074"
END
SUBCONTENTS Lionel Fast Track - Curve Track
-TURNOUT O "Lionel Fast Track Curved O84 11.25 6-12061"
+TURNOUT O "Lionel Fast Track Curved O84 11.25° 6-12061"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 8.193794 -0.807018 101.250000
@@ -65,7 +65,7 @@ TURNOUT O "Lionel Fast Track Curved O84 11.25 6-12061"
A 11579568 0.053333 40.312500 0.000000 -42.000000 0.000000 11.250000
A 11579568 0.053333 43.687500 0.000000 -42.000000 0.000000 11.250000
END
-TURNOUT O "Lionel Fast Track Curved O72 11.25 6-12055"
+TURNOUT O "Lionel Fast Track Curved O72 11.25° 6-12055"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 7.023252 -0.691730 101.250000
@@ -73,7 +73,7 @@ TURNOUT O "Lionel Fast Track Curved O72 11.25 6-12055"
A 11579568 0.053333 34.312500 0.000000 -36.000000 0.000000 11.250000
A 11579568 0.053333 37.687500 0.000000 -36.000000 0.000000 11.250000
END
-TURNOUT O "Lionel Fast Track Curved O72 22.5 6-12041"
+TURNOUT O "Lionel Fast Track Curved O72 22.5° 6-12041"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 13.776604 -2.740337 112.500000
@@ -81,7 +81,7 @@ TURNOUT O "Lionel Fast Track Curved O72 22.5 6-12041"
A 11579568 0.053333 34.312500 0.000000 -36.000000 0.000000 22.500000
A 11579568 0.053333 37.687500 0.000000 -36.000000 0.000000 22.500000
END
-TURNOUT O "Lionel Fast Track Curved O60 22.5 6-12056"
+TURNOUT O "Lionel Fast Track Curved O60 22.5° 6-12056"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 11.480503 -2.283614 112.500000
@@ -89,7 +89,7 @@ TURNOUT O "Lionel Fast Track Curved O60 22.5 6-12056"
A 11579568 0.053333 28.312500 0.000000 -30.000000 0.000000 22.500000
A 11579568 0.053333 31.687500 0.000000 -30.000000 0.000000 22.500000
END
-TURNOUT O "Lionel Fast Track Curved O48 30.0 6-12043"
+TURNOUT O "Lionel Fast Track Curved O48 30.0° 6-12043"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 12.000000 -3.215390 120.000000
@@ -97,7 +97,7 @@ TURNOUT O "Lionel Fast Track Curved O48 30.0 6-12043"
A 11579568 0.053333 22.312500 0.000000 -24.000000 0.000000 30.000000
A 11579568 0.053333 25.687500 0.000000 -24.000000 0.000000 30.000000
END
-TURNOUT O "Lionel Fast Track Curved O36 11.25 6-12023"
+TURNOUT O "Lionel Fast Track Curved O36 11.25° 6-12023"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 3.511626 -0.345865 101.250000
@@ -105,7 +105,7 @@ TURNOUT O "Lionel Fast Track Curved O36 11.25 6-12023"
A 11579568 0.053333 16.312500 0.000000 -18.000000 0.000000 11.250000
A 11579568 0.053333 19.687500 0.000000 -18.000000 0.000000 11.250000
END
-TURNOUT O "Lionel Fast Track Curved O36 22.5 6-12022"
+TURNOUT O "Lionel Fast Track Curved O36 22.5° 6-12022"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 6.888302 -1.370168 112.500000
@@ -113,7 +113,7 @@ TURNOUT O "Lionel Fast Track Curved O36 22.5 6-12022"
A 11579568 0.053333 16.312500 0.000000 -18.000000 0.000000 22.500000
A 11579568 0.053333 19.687500 0.000000 -18.000000 0.000000 22.500000
END
-TURNOUT O "Lionel Fast Track Curved O36 45.0 6-12015"
+TURNOUT O "Lionel Fast Track Curved O36 45.0° 6-12015"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 12.727922 -5.272078 135.000000
@@ -121,7 +121,7 @@ TURNOUT O "Lionel Fast Track Curved O36 45.0 6-12015"
A 11579568 0.053333 16.312500 0.000000 -18.000000 0.000000 45.000000
A 11579568 0.053333 19.687500 0.000000 -18.000000 0.000000 45.000000
END
-TURNOUT O "Lionel Fast Track Curved O31 45.0 6-37103"
+TURNOUT O "Lionel Fast Track Curved O31 45.0° 6-37103"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 10.960155 -4.539845 135.000000
@@ -132,7 +132,7 @@ TURNOUT O "Lionel Fast Track Curved O31 45.0 6-37103"
SUBCONTENTS Lionel Fast Track - Turnout
-TURNOUT O "Lionel Fast Track O36 Left Switch 33.75 6-12017/12045"
+TURNOUT O "Lionel Fast Track O36 Left Switch 33.75° 6-12017/12045"
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -143,7 +143,7 @@ TURNOUT O "Lionel Fast Track O36 Left Switch 33.75 6-12017/12045"
L 11579568 0.053333 0.000000 -1.687500 10.000000 -1.687500
A 11579568 0.053333 16.312500 0.000000 18.000000 146.250000 33.750000
END
-TURNOUT O "Lionel Fast Track O36 Curve(L) 11.25 (incl w/ 6-12017/12045)"
+TURNOUT O "Lionel Fast Track O36 Curve(L) 11.25° (incl w/ 6-12017/12045)"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 3.511626 0.345865 78.750000
@@ -151,7 +151,7 @@ TURNOUT O "Lionel Fast Track O36 Curve(L) 11.25 (incl w/ 6-12017/12045)"
A 11579568 0.053333 16.312500 0.000000 18.000000 168.750000 11.250000
A 11579568 0.053333 19.687500 0.000000 18.000000 168.750000 11.250000
END
-TURNOUT O "Lionel Fast Track O36 Curve(R) 11.25 (incl w/ 6-12018/12046)"
+TURNOUT O "Lionel Fast Track O36 Curve(R) 11.25° (incl w/ 6-12018/12046)"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 3.511626 -0.345865 101.250000
@@ -159,7 +159,7 @@ TURNOUT O "Lionel Fast Track O36 Curve(R) 11.25 (incl w/ 6-12018/12046)"
A 11579568 0.053333 16.312500 0.000000 -18.000000 0.000000 11.250000
A 11579568 0.053333 19.687500 0.000000 -18.000000 0.000000 11.250000
END
-TURNOUT O "Lionel Fast Track O36 Right Switch 33.75 6-12018/12046"
+TURNOUT O "Lionel Fast Track O36 Right Switch 33.75° 6-12018/12046"
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -170,7 +170,7 @@ TURNOUT O "Lionel Fast Track O36 Right Switch 33.75 6-12018/12046"
L 11579568 0.053333 0.000000 1.687500 10.000000 1.687500
A 11579568 0.053333 16.312500 0.000000 -18.000000 0.000000 33.750000
END
-TURNOUT O "Lionel Fast Track O72 Left Switch 22.5 6-12048"
+TURNOUT O "Lionel Fast Track O72 Left Switch 22.5° 6-12048"
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -181,7 +181,7 @@ TURNOUT O "Lionel Fast Track O72 Left Switch 22.5 6-12048"
L 11579568 0.053333 0.000000 -1.687500 14.250000 -1.687500
A 11579568 0.053333 34.312500 0.000000 36.000000 157.500000 22.500000
END
-TURNOUT O "Lionel Fast Track O72 Right Switch 22.5 6-12049"
+TURNOUT O "Lionel Fast Track O72 Right Switch 22.5° 6-12049"
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -192,7 +192,7 @@ TURNOUT O "Lionel Fast Track O72 Right Switch 22.5 6-12049"
L 11579568 0.053333 0.000000 1.687500 14.250000 1.687500
A 11579568 0.053333 34.312500 0.000000 -36.000000 0.000000 22.500000
END
-TURNOUT O "Lionel Fast Track O72 WYE Switch 22.5 6-12047"
+TURNOUT O "Lionel Fast Track O72 WYE Switch 22.5° 6-12047"
P "Normal" 1 3
P "Reverse" 2 4
E 0.000000 0.000000 270.000000
@@ -207,7 +207,7 @@ TURNOUT O "Lionel Fast Track O72 WYE Switch 22.5 6-12047"
L 11579568 0.053333 6.694037 2.346805 11.75000 3.352499
L 11579568 0.053333 6.694037 -2.346805 11.75000 -3.352499
END
-TURNOUT O "Lionel Fast Track O60 Left Switch 22.5 6-12057"
+TURNOUT O "Lionel Fast Track O60 Left Switch 22.5° 6-12057"
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -218,7 +218,7 @@ TURNOUT O "Lionel Fast Track O60 Left Switch 22.5 6-12057"
L 11579568 0.053333 0.000000 -1.687500 13.125000 -1.687500
A 11579568 0.053333 28.312500 0.000000 30.000000 157.500000 22.500000
END
-TURNOUT O "Lionel Fast Track O60 Right Switch 22.5 6-12049"
+TURNOUT O "Lionel Fast Track O60 Right Switch 22.5° 6-12049"
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -229,7 +229,7 @@ TURNOUT O "Lionel Fast Track O60 Right Switch 22.5 6-12049"
L 11579568 0.053333 0.000000 1.687500 13.125000 1.687500
A 11579568 0.053333 28.312500 0.000000 -30.000000 0.000000 22.500000
END
-TURNOUT O "Lionel Fast Track O48 Left Switch 30 6-12065"
+TURNOUT O "Lionel Fast Track O48 Left Switch 30° 6-12065"
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -241,7 +241,7 @@ TURNOUT O "Lionel Fast Track O48 Left Switch 30 6-12065"
L 11579568 0.053333 12.812500 1.687500 15.000000 1.687500
A 11579568 0.053333 22.312500 0.000000 24.000000 150.000000 30.000000
END
-TURNOUT O "Lionel Fast Track O48 Right Switch 30 6-12066"
+TURNOUT O "Lionel Fast Track O48 Right Switch 30° 6-12066"
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
diff --git a/app/lib/params/N-AtlasTrueTrack.xtp b/app/lib/params/N-AtlasTrueTrack.xtp
index d6d9147..ed3d7fc 100644
--- a/app/lib/params/N-AtlasTrueTrack.xtp
+++ b/app/lib/params/N-AtlasTrueTrack.xtp
@@ -35,7 +35,7 @@ TURNOUT N "Atlas True-Track Straight 1"" 2405"
END
SUBCONTENTS Atlas True-Track N-Scale Curved Track
-TURNOUT N "Atlas True-Track Curve 11.00R 22.5 2410"
+TURNOUT N "Atlas True-Track Curve 11.00R 22.5° 2410"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.209518 -0.837325 112.500000
@@ -43,7 +43,7 @@ TURNOUT N "Atlas True-Track Curve 11.00R 22.5 2410"
A 11579568 0.053333 10.500000 0.000000 -11.000000 0.000000 22.500000
A 11579568 0.053333 11.500000 0.000000 -11.000000 0.000000 22.500000
END
-TURNOUT N "Atlas True-Track Curve 11.00R 11.25 2411"
+TURNOUT N "Atlas True-Track Curve 11.00R 11.25° 2411"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 2.145994 -0.211362 101.250000
@@ -51,7 +51,7 @@ TURNOUT N "Atlas True-Track Curve 11.00R 11.25 2411"
A 11579568 0.053333 10.500000 0.000000 -11.000000 0.000000 11.250000
A 11579568 0.053333 11.500000 0.000000 -11.000000 0.000000 11.250000
END
-TURNOUT N "Atlas True-Track Terminal Curve 12.50R 22.5 2412"
+TURNOUT N "Atlas True-Track Terminal Curve 12.50R 22.5° 2412"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.783543 -0.951506 112.500000
@@ -59,7 +59,7 @@ TURNOUT N "Atlas True-Track Terminal Curve 12.50R 22.5 2412"
A 11579568 0.053333 12.000000 0.000000 -12.500000 0.000000 22.500000
A 11579568 0.053333 13.000000 0.000000 -12.500000 0.000000 22.500000
END
-TURNOUT N "Atlas True-Track Terminal Curve 12.50R 11.25 241x"
+TURNOUT N "Atlas True-Track Terminal Curve 12.50R 11.25° 241x"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 2.438629 -0.240184 101.250000
@@ -67,7 +67,7 @@ TURNOUT N "Atlas True-Track Terminal Curve 12.50R 11.25 241x"
A 11579568 0.053333 12.000000 0.000000 -12.500000 0.000000 11.250000
A 11579568 0.053333 13.000000 0.000000 -12.500000 0.000000 11.250000
END
-TURNOUT N "Atlas True-Track Terminal Curve 14.00R 22.5 241x"
+TURNOUT N "Atlas True-Track Terminal Curve 14.00R 22.5° 241x"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 5.357568 -1.065687 112.500000
@@ -75,7 +75,7 @@ TURNOUT N "Atlas True-Track Terminal Curve 14.00R 22.5 241x"
A 11579568 0.053333 13.500000 0.000000 -14.000000 0.000000 22.500000
A 11579568 0.053333 14.500000 0.000000 -14.000000 0.000000 22.500000
END
-TURNOUT N "Atlas True-Track Terminal Curve 15.50R 22.5 2416"
+TURNOUT N "Atlas True-Track Terminal Curve 15.50R 22.5° 2416"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 5.931593 -1.179867 112.500000
@@ -85,7 +85,7 @@ TURNOUT N "Atlas True-Track Terminal Curve 15.50R 22.5 2416"
END
SUBCONTENTS Atlas True-Track N-Scale Crossings
-TURNOUT N "Atlas True-Track 90 Crossing 2420"
+TURNOUT N "Atlas True-Track 90° Crossing 2420"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 2.000000 0.000000 90.000000
diff --git a/app/lib/params/N-LifeLike Power-Loc.xtp b/app/lib/params/N-LifeLike Power-Loc.xtp
index dd45fd9..9e74df4 100644
--- a/app/lib/params/N-LifeLike Power-Loc.xtp
+++ b/app/lib/params/N-LifeLike Power-Loc.xtp
@@ -19,7 +19,7 @@ TURNOUT N "LifeLike Power-Loc Power Link Adapter Str 2.5 433-7807"
END
SUBCONTENTS LifeLike Power-Loc N-Scale Curved Track
-TURNOUT N "LifeLike Power-Loc Curve 9.75R 30 433-7803"
+TURNOUT N "LifeLike Power-Loc Curve 9.75R 30° 433-7803"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.875000 -1.306252 120.000000
@@ -27,7 +27,7 @@ TURNOUT N "LifeLike Power-Loc Curve 9.75R 30 433-7803"
A 11579568 0.053333 9.250000 0.000000 -9.750000 0.000000 30.000000
A 11579568 0.053333 10.250000 0.000000 -9.750000 0.000000 30.000000
END
-TURNOUT N "LifeLike Power-Loc Terminal Curve 9.75R 30 433-7806"
+TURNOUT N "LifeLike Power-Loc Terminal Curve 9.75R 30° 433-7806"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.875000 -1.306252 120.000000
diff --git a/app/lib/params/N-NScaleArchitect.xtp b/app/lib/params/N-NScaleArchitect.xtp
index 05aebea..086851d 100644
--- a/app/lib/params/N-NScaleArchitect.xtp
+++ b/app/lib/params/N-NScaleArchitect.xtp
@@ -1,5 +1,5 @@
CONTENTS N Scale Architect Structures N Scale
-STRUCTURE N "N SCALE ARCHITECT Andrews Auto & Gas AAG404"
+STRUCTURE N "N SCALE ARCHITECT Andrews’ Auto & Gas AAG404"
F3 4227200 0.000000 4
0.510417 2.010417 0
1.760417 2.010417 0
diff --git a/app/lib/params/pecon55.xtp b/app/lib/params/N-PecoCode55Finescale.xtp
index f1a3a7f..48a2581 100644
--- a/app/lib/params/pecon55.xtp
+++ b/app/lib/params/N-PecoCode55Finescale.xtp
@@ -1,6 +1,5 @@
-CONTENTS Peco N-Scale Code55 Turnouts
+CONTENTS Peco N-Scale Code55 Finescale Track
SUBCONTENTS Peco Code 55 - Turnouts
-# Regular Turnout Design by Klaus Domes - 4.843000 0.512000 10.000000 4.882000
TURNOUT N "Peco-55 Small Right SL-E391F"
P "Normal" 1 2
P "Reverse" 1 3 4
@@ -45,7 +44,6 @@ TURNOUT N "Peco-55 Medium Left SL-E396F"
C 0 0.000000 -23.763449 0.354332 23.763449 169.999924 10.000152
S 0 0.000000 4.480838 0.361031 5.393701 0.522000
END
-# Large right corrected by Andrew Crosland 30/12/2006
TURNOUT N "Peco-55 Large Right SL-E388F"
P "Normal" 1 2
P "Reverse" 1 3 4
@@ -57,8 +55,6 @@ TURNOUT N "Peco-55 Large Right SL-E388F"
C 0 0.000000 30.309454 0.844479 -30.309454 0.000076 10.000152
S 0 0.000000 6.107856 -0.460482 6.456693 -0.522000
END
-#
-# Large left corrected by Andrew Crosland 30/12/2006
TURNOUT N "Peco-55 Large Left SL-E389F"
P "Normal" 1 2
P "Reverse" 1 3 4
@@ -117,9 +113,6 @@ TURNOUT N "Peco-55 Curved Left SL-E387F"
C 0 0 -36.000000 0.117000 36.000000 170.240000 9.771000
C 0 0 -18.000000 0.022000 18.000000 160.275000 19.445000
END
-# Double Crossover Design by Dave Bullis - 10.660000 1.044000
-#
-# Verified by Andrew Crosland 30/12/2006
TURNOUT N "Peco-55 Scissors Crossover SL-E383F"
P "Normal" 1 2 3 0 4 5 6
P "Reverse" 1 7 8 9 6 0 4 10 11 12 3
@@ -140,9 +133,6 @@ TURNOUT N "Peco-55 Scissors Crossover SL-E383F"
S 0 0 4.984421 0.594492 5.675579 0.449508
C 0 0 -21.102603 10.007960 21.102603 180.000000 11.847110
END
-# Single Slipswitch Design by Dave Bullis - 6.047000 9.686000 6.047000
-#
-# Corrected by Andrew Crosland 30/12/2006
TURNOUT N "Peco-55 Single Slip SL-380F"
P "Normal" 1 2 0 3 4
P "Reverse" 1 5 4
@@ -156,9 +146,6 @@ TURNOUT N "Peco-55 Single Slip SL-380F"
S 0 0.000000 5.321536 -0.403784 6.016938 -0.526409
C 0 0.000000 26.577553 0.706221 -26.577553 0.000076 10.000152
END
-# Double Slipswitch Design by Dave Bullis - 6.047000 9.686000 6.047000
-#
-# Corrected by Andrew Crosland 30/12/2006
TURNOUT N "Peco-55 Double Slip SL-390F"
P "Normal" 1 2 3 0 4 5 6
P "Reverse" 1 7 6 0 4 8 3
@@ -177,10 +164,7 @@ TURNOUT N "Peco-55 Double Slip SL-390F"
END
SUBCONTENTS Peco Code 55 - Crossings
-# Crossing Design by Dave Bullis - 6.047000 9.686000 6.047000
-#
-# Corrected by Andrew Crosland 30/12/2006
-TURNOUT N "Peco-55 Crossing 10d SL-394F"
+TURNOUT N "Peco-55 Long Crossing 10d SL-394F"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 6.062992 0.000000 90.000000
@@ -190,7 +174,6 @@ TURNOUT N "Peco-55 Crossing 10d SL-394F"
S 0 0.000000 0.046054 0.526409 6.016938 -0.526409
END
TURNOUT N "Peco-55 Short Crossing 20d SL-E393F"
- U "Crossing" "Dave Bullis" "Peco-55" "Short Crossing" "SL-E393F" 4.082677 20.000000 4.082677 0.000000 0.026316 0
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 4.082677 0.000000 90.000000
@@ -257,60 +240,149 @@ TURNOUT N "Peco Turn Table NB-55"
E -1.100877 3.024636 340.000000
E -0.558930 3.169850 350.000000
S 0 0.000000 0.000000 3.218750 0.000000 3.000000
- S 16777215 0.000000 0.000000 3.000000 0.000000 -3.000000
+ S 0 0.000000 0.000000 3.000000 0.000000 -3.000000
S 0 0.000000 0.000000 -3.000000 0.000000 -3.218750
S 0 0.000000 0.558930 3.169850 0.520945 2.954423
- S 16777215 0.000000 0.520945 2.954423 -0.520945 -2.954423
+ S 0 0.000000 0.520945 2.954423 -0.520945 -2.954423
S 0 0.000000 -0.520945 -2.954423 -0.558930 -3.169850
S 0 0.000000 1.100877 3.024636 1.026060 2.819078
- S 16777215 0.000000 1.026060 2.819078 -1.026060 -2.819078
+ S 0 0.000000 1.026060 2.819078 -1.026060 -2.819078
S 0 0.000000 -1.026060 -2.819078 -1.100877 -3.024636
S 0 0.000000 1.609375 2.787519 1.500000 2.598076
- S 16777215 0.000000 1.500000 2.598076 -1.500000 -2.598076
+ S 0 0.000000 1.500000 2.598076 -1.500000 -2.598076
S 0 0.000000 -1.500000 -2.598076 -1.609375 -2.787519
S 0 0.000000 2.068973 2.465706 1.928363 2.298133
- S 16777215 0.000000 1.928363 2.298133 -1.928363 -2.298133
+ S 0 0.000000 1.928363 2.298133 -1.928363 -2.298133
S 0 0.000000 -1.928363 -2.298133 -2.068973 -2.465706
S 0 0.000000 2.465706 2.068973 2.298133 1.928363
- S 16777215 0.000000 2.298133 1.928363 -2.298133 -1.928363
+ S 0 0.000000 2.298133 1.928363 -2.298133 -1.928363
S 0 0.000000 -2.298133 -1.928363 -2.465706 -2.068973
S 0 0.000000 2.787519 1.609375 2.598076 1.500000
- S 16777215 0.000000 2.598076 1.500000 -2.598076 -1.500000
+ S 0 0.000000 2.598076 1.500000 -2.598076 -1.500000
S 0 0.000000 -2.598076 -1.500000 -2.787519 -1.609375
S 0 0.000000 3.024636 1.100877 2.819078 1.026060
- S 16777215 0.000000 2.819078 1.026060 -2.819078 -1.026060
+ S 0 0.000000 2.819078 1.026060 -2.819078 -1.026060
S 0 0.000000 -2.819078 -1.026060 -3.024636 -1.100877
S 0 0.000000 3.169850 0.558930 2.954423 0.520945
- S 16777215 0.000000 2.954423 0.520945 -2.954423 -0.520945
+ S 0 0.000000 2.954423 0.520945 -2.954423 -0.520945
S 0 0.000000 -2.954423 -0.520945 -3.169850 -0.558930
S 0 0.000000 3.218750 0.000000 3.000000 0.000000
- S 16777215 0.000000 3.000000 0.000000 -3.000000 0.000000
+ S 0 0.000000 3.000000 0.000000 -3.000000 0.000000
S 0 0.000000 -3.000000 0.000000 -3.218750 0.000000
S 0 0.000000 3.169850 -0.558930 2.954423 -0.520945
- S 16777215 0.000000 2.954423 -0.520945 -2.954423 0.520945
+ S 0 0.000000 2.954423 -0.520945 -2.954423 0.520945
S 0 0.000000 -2.954423 0.520945 -3.169850 0.558930
S 0 0.000000 3.024636 -1.100877 2.819078 -1.026060
- S 16777215 0.000000 2.819078 -1.026060 -2.819078 1.026060
+ S 0 0.000000 2.819078 -1.026060 -2.819078 1.026060
S 0 0.000000 -2.819078 1.026060 -3.024636 1.100877
S 0 0.000000 2.787519 -1.609375 2.598076 -1.500000
- S 16777215 0.000000 2.598076 -1.500000 -2.598076 1.500000
+ S 0 0.000000 2.598076 -1.500000 -2.598076 1.500000
S 0 0.000000 -2.598076 1.500000 -2.787519 1.609375
S 0 0.000000 2.465706 -2.068973 2.298133 -1.928363
- S 16777215 0.000000 2.298133 -1.928363 -2.298133 1.928363
+ S 0 0.000000 2.298133 -1.928363 -2.298133 1.928363
S 0 0.000000 -2.298133 1.928363 -2.465706 2.068973
S 0 0.000000 2.068973 -2.465706 1.928363 -2.298133
- S 16777215 0.000000 1.928363 -2.298133 -1.928363 2.298133
+ S 0 0.000000 1.928363 -2.298133 -1.928363 2.298133
S 0 0.000000 -1.928363 2.298133 -2.068973 2.465706
S 0 0.000000 1.609375 -2.787519 1.500000 -2.598076
- S 16777215 0.000000 1.500000 -2.598076 -1.500000 2.598076
+ S 0 0.000000 1.500000 -2.598076 -1.500000 2.598076
S 0 0.000000 -1.500000 2.598076 -1.609375 2.787519
S 0 0.000000 1.100877 -3.024636 1.026060 -2.819078
- S 16777215 0.000000 1.026060 -2.819078 -1.026060 2.819078
+ S 0 0.000000 1.026060 -2.819078 -1.026060 2.819078
S 0 0.000000 -1.026060 2.819078 -1.100877 3.024636
S 0 0.000000 0.558930 -3.169850 0.520945 -2.954423
- S 16777215 0.000000 0.520945 -2.954423 -0.520945 2.954423
+ S 0 0.000000 0.520945 -2.954423 -0.520945 2.954423
S 0 0.000000 -0.520945 2.954423 -0.558930 3.169850
A3 0 0.031250 3.000000 0.000000 0.000000 0 0.000000 360.000000
G3 0 0.000000 0.01 0.000000 0.000000 0
A 0 0.000000 3.218750 0.000000 0.000000 0.000000 360.000000
END
+
+SUBCONTENTS Peco Code 55/80 - Misc Track
+TURNOUT N "Peco Code 55/80 Inspection Pit NB-56F"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.732283 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 6.732283 0.000000
+ F 15720651 0.000000 4
+ 0.000000 0.300000 0
+ 6.732283 0.300000 0
+ 6.732283 -0.300000 0
+ 0.000000 -0.300000 0
+ F 12632256 0.000000 4
+ 0.000000 0.160000 0
+ 0.320000 0.160000 0
+ 0.320000 -0.160000 0
+ 0.000000 -0.160000 0
+ L 0 0.020000 0.000000 0.160000 0.000000 -0.160000
+ L 0 0.020000 0.064000 0.160000 0.064000 -0.160000
+ L 0 0.020000 0.128000 0.160000 0.128000 -0.160000
+ L 0 0.020000 0.192000 0.160000 0.192000 -0.160000
+ L 0 0.020000 0.256000 0.160000 0.256000 -0.160000
+ L 0 0.020000 0.320000 0.160000 0.320000 -0.160000
+ F 12632256 0.000000 4
+ 6.412283 0.160000 0
+ 6.732283 0.160000 0
+ 6.732283 -0.160000 0
+ 6.412283 -0.160000 0
+ L 0 0.020000 6.412283 0.160000 6.412283 -0.160000
+ L 0 0.020000 6.476283 0.160000 6.476283 -0.160000
+ L 0 0.020000 6.540283 0.160000 6.540283 -0.160000
+ L 0 0.020000 6.604283 0.160000 6.604283 -0.160000
+ L 0 0.020000 6.668283 0.160000 6.668283 -0.160000
+ L 0 0.020000 6.732283 0.160000 6.732283 -0.160000
+ A 0 0.020000 0.062500 0.561024 0.000000 0.000000 360.000000
+ A 0 0.020000 0.062500 1.683071 0.000000 0.000000 360.000000
+ A 0 0.020000 0.062500 2.805118 0.000000 0.000000 360.000000
+ A 0 0.020000 0.062500 3.927165 0.000000 0.000000 360.000000
+ A 0 0.020000 0.062500 5.049212 0.000000 0.000000 360.000000
+ A 0 0.020000 0.062500 6.171259 0.000000 0.000000 360.000000
+ L 0 0.020000 0.000000 0.300000 6.732283 0.300000
+ L 0 0.020000 0.000000 0.160000 6.732283 0.160000
+ L 0 0.020000 0.000000 -0.160000 6.732283 -0.160000
+ L 0 0.020000 0.000000 -0.300000 6.732283 -0.300000
+END
+TURNOUT N "Peco Code 55/80 Inspection Pit(Stair End) NB-56FA"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.122047 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 1.122047 0.000000
+ F 15720651 0.000000 4
+ 0.000000 0.300000 0
+ 1.122047 0.300000 0
+ 1.122047 -0.300000 0
+ 0.000000 -0.300000 0
+ F 12632256 0.000000 4
+ 0.000000 0.160000 0
+ 0.320000 0.160000 0
+ 0.320000 -0.160000 0
+ 0.000000 -0.160000 0
+ L 0 0.020000 0.000000 0.160000 0.000000 -0.160000
+ L 0 0.020000 0.064000 0.160000 0.064000 -0.160000
+ L 0 0.020000 0.128000 0.160000 0.128000 -0.160000
+ L 0 0.020000 0.192000 0.160000 0.192000 -0.160000
+ L 0 0.020000 0.256000 0.160000 0.256000 -0.160000
+ L 0 0.020000 0.320000 0.160000 0.320000 -0.160000
+ A 0 0.020000 0.062500 0.561024 0.000000 0.000000 360.000000
+ L 0 0.020000 0.000000 0.300000 1.122047 0.300000
+ L 0 0.020000 0.000000 0.160000 1.122047 0.160000
+ L 0 0.020000 0.000000 -0.160000 1.122047 -0.160000
+ L 0 0.020000 0.000000 -0.300000 1.122047 -0.300000
+
+END
+TURNOUT N "Peco Code 55/80 Inspection Pit(Mid Section) NB-56FB"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.122047 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 1.122047 0.000000
+ F 15720651 0.000000 4
+ 0.000000 0.300000 0
+ 1.122047 0.300000 0
+ 1.122047 -0.300000 0
+ 0.000000 -0.300000 0
+ A 0 0.020000 0.062500 0.561024 0.000000 0.000000 360.000000
+ L 0 0.020000 0.000000 0.300000 1.122047 0.300000
+ L 0 0.020000 0.000000 0.160000 1.122047 0.160000
+ L 0 0.020000 0.000000 -0.160000 1.122047 -0.160000
+ L 0 0.020000 0.000000 -0.300000 1.122047 -0.300000
+END \ No newline at end of file
diff --git a/app/lib/params/peconst.xtp b/app/lib/params/N-PecoCode80Setrack.xtp
index 604a5ba..30c3272 100644
--- a/app/lib/params/peconst.xtp
+++ b/app/lib/params/N-PecoCode80Setrack.xtp
@@ -1,189 +1,158 @@
-CONTENTS Peco N Scale ST-Track
-SUBCONTENTS Peco N Scale Straight Track
-TURNOUT N "Peco Straight ST1"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.425197 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 3.425197 0.000000
- END
-TURNOUT N "Peco Short Straight ST2"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.283465 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 2.283465 0.000000
- END
-TURNOUT N "Peco Double Straight ST11"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.850394 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 6.850394 0.000000
- END
-
-
-SUBCONTENTS Peco N Scale Turnouts
-TURNOUT N "PECO Right ST5"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 3.425197 0.000000 90.000000
- E 3.425197 -0.687500 112.500000
- S 0 0.000000 0.000000 0.000000 0.354300 0.000000
- S 0 0.000000 0.354300 0.000000 3.425197 0.000000
- C 0 0.000000 7.094263 0.354272 -7.094263 0.000076 22.500152
- S 0 0.000000 3.069172 -0.540025 3.425197 -0.687500
- END
-TURNOUT N "PECO Left ST6"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 3.425197 0.000000 90.000000
- E 3.425197 0.687500 67.500000
- S 0 0.000000 0.000000 0.000000 0.354300 0.000000
- S 0 0.000000 0.354300 0.000000 3.425197 0.000000
- C 0 0.000000 -7.094263 0.354309 7.094263 157.499924 22.500152
- S 0 0.000000 3.069172 0.540025 3.425197 0.687500
- END
-TURNOUT N "PECO Right ST44"
- P "Normal" 1 2
- P "Reverse" 3
- E 0.000000 0.000000 270.000000
- E 5.363426 -0.894565 112.500000
- E 5.763494 -1.748337 123.750000
- S 0 0.000000 0.000000 0.000000 0.866142 0.000000
- C 0 0.000000 11.751969 0.866142 -11.751969 0.000000 22.500000
- C 0 0.000000 10.374016 0.000000 -10.374016 0.000000 33.750000
- END
-TURNOUT N "Peco Straight ST43"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 0.866142 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 0.866142 0.000000
- END
-TURNOUT N "Peco R2(263.5mm) Half Curve ST47"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.023870 0.199334 78.750000
- C 0 0.000000 -10.374016 0.000000 10.374016 168.750000 11.250000
- END
-TURNOUT N "PECO Left ST45"
- P "Normal" 1 2
- P "Reverse" 3
- E 0.000000 0.000000 270.000000
- E 5.363426 0.894565 67.500000
- E 5.763494 1.748337 56.250000
- S 0 0.000000 0.000000 0.000000 0.866142 0.000000
- C 0 0.000000 -11.751969 0.866142 11.751969 157.500000 22.500000
- C 0 0.000000 -10.374016 0.000000 10.374016 146.250000 33.750000
- END
-
-
-SUBCONTENTS Peco N Scale Crossings
-TURNOUT N "Peco Setrack Crossing ST7"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 3.582677 0.000000 90.000000
- E 0.167833 0.757050 295.000000
- E 3.414844 -0.757050 115.000000
- S 0 0.000000 0.000000 0.000000 3.582677 0.000000
- S 0 0.000000 0.167833 0.757050 3.414844 -0.757050
- END
-TURNOUT N "Peco Setrack Crossing Right ST50"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 3.425197 0.000000 90.000000
- E 0.000000 0.687500 292.500000
- E 3.425197 -0.687500 112.500000
- S 0 0.000000 0.000000 0.000000 3.425197 0.000000
- S 0 0.000000 0.000000 0.687500 3.425197 -0.687500
- END
-TURNOUT N "Peco Setrack Crossing Left ST51"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 3.425197 0.000000 90.000000
- E 0.000000 -0.687500 247.500000
- E 3.425197 0.687500 67.500000
- S 0 0.000000 0.000000 0.000000 3.425197 0.000000
- S 0 0.000000 0.000000 -0.687500 3.425197 0.687500
- END
-
-
-SUBCONTENTS Peco N Scale Curve Track
-TURNOUT N "Peco R1(228mm) Curve ST3"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.435108 0.683285 67.500000
- C 0 0.000000 -8.976378 0.000012 8.976378 157.500076 22.500000
- END
-TURNOUT N "Peco R1(228mm) Half Curve ST4"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.751203 0.172478 78.750000
- C 0 0.000000 -8.976378 0.000000 8.976378 168.750000 11.250000
- END
-TURNOUT N "Peco R1(228mm) Double Curve ST12"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.347254 2.629116 45.000000
- C 0 0.000000 -8.976378 0.000000 8.976378 135.000000 45.000000
- END
-TURNOUT N "Peco R2(263.5mm) Curve ST14"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.969961 0.789674 67.500000
- C 0 0.000000 -10.374016 0.000000 10.374016 157.500000 22.500000
- END
-TURNOUT N "Peco R2(263.5mm) Double Curve ST15"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.335532 3.038474 45.000000
- C 0 0.000000 -10.374016 0.000000 10.374016 135.000000 45.000000
- END
-TURNOUT N "Peco R3(298.5mm) Curve ST16"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.497284 0.894565 67.500000
- C 0 0.000000 -11.751969 0.000000 11.751969 157.500000 22.500000
- END
-TURNOUT N "Peco R3(298.5mm) Double Curve ST17"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.309897 3.442072 45.000000
- C 0 0.000000 -11.751969 0.000000 11.751969 135.000000 45.000000
- END
-TURNOUT N "Peco R4(333.4mm) Curve ST18"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.023097 0.999156 67.500000
- C 0 0.000000 -13.125984 0.000000 13.125984 157.500000 22.500000
- END
-TURNOUT N "Peco R4(333.4mm) Double Curve ST19"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.281472 3.844512 45.000000
- C 0 0.000000 -13.125984 0.000000 13.125984 135.000000 45.000000
- END
-
-
-SUBCONTENTS Peco N Scale Catch POints
-TURNOUT N "Peco Left Catchpoint SL385"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 3.375000 0.000000 90.000000
- E 2.875000 0.093750 87.500000
- S 0 0.000000 0.000000 0.000000 0.353100 0.000000
- S 0 0.000000 0.353100 0.000000 3.375000 0.000000
- C 0 0.000000 -17.174915 0.353123 17.174915 177.499924 2.500152
- S 0 0.000000 1.102304 0.016349 2.875000 0.093750
- END
-TURNOUT N "Peco Right Catchpoint SL384"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 3.375000 0.000000 90.000000
- E 2.875000 -0.093750 92.500000
- S 0 0.000000 0.000000 0.000000 0.353100 0.000000
- S 0 0.000000 0.353100 0.000000 3.375000 0.000000
- C 0 0.000000 17.174915 0.353032 -17.174915 0.000076 2.500152
- S 0 0.000000 1.102304 -0.016349 2.875000 -0.093750
- END
+CONTENTS Peco N Scale Setrack
+SUBCONTENTS Peco N Scale Straight Track
+TURNOUT N "Peco Straight Track ST1"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.425197 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 3.425197 0.000000
+ END
+TURNOUT N "Peco Short Straight Track ST2"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.283465 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 2.283465 0.000000
+ END
+TURNOUT N "Peco Double Straight Track ST11"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.850394 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 6.850394 0.000000
+ END
+TURNOUT N "Peco Special Short Straight ST43"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 0.866142 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 0.866142 0.000000
+ END
+SUBCONTENTS Peco N Scale Curve Track
+TURNOUT N "Peco R1(228mm) Curve ST3"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.435108 0.683285 67.500000
+ C 0 0.000000 -8.976378 0.000012 8.976378 157.500076 22.500000
+ END
+TURNOUT N "Peco R1(228mm) Half Curve ST4"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.751203 0.172478 78.750000
+ C 0 0.000000 -8.976378 0.000000 8.976378 168.750000 11.250000
+ END
+TURNOUT N "Peco R1(228mm) Double Curve ST12"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.347254 2.629116 45.000000
+ C 0 0.000000 -8.976378 0.000000 8.976378 135.000000 45.000000
+ END
+TURNOUT N "Peco R2(263.5mm) Curve ST14"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.969961 0.789674 67.500000
+ C 0 0.000000 -10.374016 0.000000 10.374016 157.500000 22.500000
+ END
+TURNOUT N "Peco R2(263.5mm) Double Curve ST15"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.335532 3.038474 45.000000
+ C 0 0.000000 -10.374016 0.000000 10.374016 135.000000 45.000000
+ END
+TURNOUT N "Peco R2(263.5mm) Half Curve ST47"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.023870 0.199334 78.750000
+ C 0 0.000000 -10.374016 0.000000 10.374016 168.750000 11.250000
+ END
+TURNOUT N "Peco R3(298.5mm) Curve ST16"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.497284 0.894565 67.500000
+ C 0 0.000000 -11.751969 0.000000 11.751969 157.500000 22.500000
+ END
+TURNOUT N "Peco R3(298.5mm) Double Curve ST17"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.309897 3.442072 45.000000
+ C 0 0.000000 -11.751969 0.000000 11.751969 135.000000 45.000000
+ END
+TURNOUT N "Peco R4(333.4mm) Curve ST18"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.023097 0.999156 67.500000
+ C 0 0.000000 -13.125984 0.000000 13.125984 157.500000 22.500000
+ END
+TURNOUT N "Peco R4(333.4mm) Double Curve ST19"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.281472 3.844512 45.000000
+ C 0 0.000000 -13.125984 0.000000 13.125984 135.000000 45.000000
+ END
+SUBCONTENTS Peco N Scale Turnouts
+TURNOUT N "PECO Right ST5"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 3.425197 0.000000 90.000000
+ E 3.425197 -0.687500 112.500000
+ S 0 0.000000 0.000000 0.000000 0.354300 0.000000
+ S 0 0.000000 0.354300 0.000000 3.425197 0.000000
+ C 0 0.000000 7.094263 0.354272 -7.094263 0.000076 22.500152
+ S 0 0.000000 3.069172 -0.540025 3.425197 -0.687500
+ END
+TURNOUT N "PECO Left ST6"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 3.425197 0.000000 90.000000
+ E 3.425197 0.687500 67.500000
+ S 0 0.000000 0.000000 0.000000 0.354300 0.000000
+ S 0 0.000000 0.354300 0.000000 3.425197 0.000000
+ C 0 0.000000 -7.094263 0.354309 7.094263 157.499924 22.500152
+ S 0 0.000000 3.069172 0.540025 3.425197 0.687500
+ END
+TURNOUT N "PECO Curved Right ST44"
+ P "Normal" 1 2
+ P "Reverse" 3
+ E 0.000000 0.000000 270.000000
+ E 5.363426 -0.894565 112.500000
+ E 5.763494 -1.748337 123.750000
+ S 0 0.000000 0.000000 0.000000 0.866142 0.000000
+ C 0 0.000000 11.751969 0.866142 -11.751969 0.000000 22.500000
+ C 0 0.000000 10.374016 0.000000 -10.374016 0.000000 33.750000
+ END
+TURNOUT N "PECO Curved Left ST45"
+ P "Normal" 1 2
+ P "Reverse" 3
+ E 0.000000 0.000000 270.000000
+ E 5.363426 0.894565 67.500000
+ E 5.763494 1.748337 56.250000
+ S 0 0.000000 0.000000 0.000000 0.866142 0.000000
+ C 0 0.000000 -11.751969 0.866142 11.751969 157.500000 22.500000
+ C 0 0.000000 -10.374016 0.000000 10.374016 146.250000 33.750000
+ END
+SUBCONTENTS Peco N Scale Crossings
+TURNOUT N "Peco Setrack 25 Degree Crossing ST7"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 3.582677 0.000000 90.000000
+ E 0.167833 0.757050 295.000000
+ E 3.414844 -0.757050 115.000000
+ S 0 0.000000 0.000000 0.000000 3.582677 0.000000
+ S 0 0.000000 0.167833 0.757050 3.414844 -0.757050
+ END
+TURNOUT N "Peco Setrack Crossing Right ST50"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 3.425197 0.000000 90.000000
+ E 0.000000 0.687500 292.500000
+ E 3.425197 -0.687500 112.500000
+ S 0 0.000000 0.000000 0.000000 3.425197 0.000000
+ S 0 0.000000 0.000000 0.687500 3.425197 -0.687500
+ END
+TURNOUT N "Peco Setrack Crossing Left ST51"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 3.425197 0.000000 90.000000
+ E 0.000000 -0.687500 247.500000
+ E 3.425197 0.687500 67.500000
+ S 0 0.000000 0.000000 0.000000 3.425197 0.000000
+ S 0 0.000000 0.000000 -0.687500 3.425197 0.687500
+ END
diff --git a/app/lib/params/pecon80.xtp b/app/lib/params/N-PecoCode80Streamline.xtp
index b7a7aec..0d31703 100644
--- a/app/lib/params/pecon80.xtp
+++ b/app/lib/params/N-PecoCode80Streamline.xtp
@@ -1,6 +1,6 @@
-CONTENTS Peco N-Scale Code80 Turnouts
+CONTENTS Peco N-Scale Code80 Streamline Track
SUBCONTENTS Peco Code 80 - Turnouts
-TURNOUT N "Peco-80 Medium Right SL-1704/395"
+TURNOUT N "Peco-80 Medium Right SL-1738/395"
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -11,7 +11,7 @@ TURNOUT N "Peco-80 Medium Right SL-1704/395"
C 0 0.000000 14.687496 0.973021 -14.687496 0.000076 14.000152
S 0 0.000000 4.526342 -0.436290 4.870079 -0.522000
END
-TURNOUT N "Peco-80 Medium Left SL-1705/396"
+TURNOUT N "Peco-80 Medium Left SL-1739/396"
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -22,7 +22,7 @@ TURNOUT N "Peco-80 Medium Left SL-1705/396"
C 0 0.000000 -14.687496 0.973099 14.687496 165.999924 14.000152
S 0 0.000000 4.526342 0.436290 4.870079 0.522000
END
-TURNOUT N "Peco-80 Large Right SL-1738/388"
+TURNOUT N "Peco-80 Large Right SL-1736/388"
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -33,7 +33,7 @@ TURNOUT N "Peco-80 Large Right SL-1738/388"
C 0 0.000000 31.901195 0.354173 -31.901195 0.000076 8.000152
S 0 0.000000 4.794168 -0.310471 6.299213 -0.522000
END
-TURNOUT N "Peco-80 Large Left SL-1739/389"
+TURNOUT N "Peco-80 Large Left SL-1737/389"
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -78,31 +78,9 @@ TURNOUT N "Peco-80 Curved Left SL-1735/387"
C 0 0 -18.000000 0.570000 18.029000 163.381000 16.046000
S 0 0 5.718000 0.781000 6.093000 0.875000
END
-TURNOUT N "PECO Right ST5"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 3.425197 0.000000 90.000000
- E 3.425197 -0.687500 112.500000
- S 0 0.000000 0.000000 0.000000 0.354300 0.000000
- S 0 0.000000 0.354300 0.000000 3.425197 0.000000
- C 0 0.000000 7.094263 0.354272 -7.094263 0.000076 22.500152
- S 0 0.000000 3.069172 -0.540025 3.425197 -0.687500
- END
-TURNOUT N "PECO Left ST6"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 3.425197 0.000000 90.000000
- E 3.425197 0.687500 67.500000
- S 0 0.000000 0.000000 0.000000 0.354300 0.000000
- S 0 0.000000 0.354300 0.000000 3.425197 0.000000
- C 0 0.000000 -7.094263 0.354309 7.094263 157.499924 22.500152
- S 0 0.000000 3.069172 0.540025 3.425197 0.687500
- END
SUBCONTENTS Peco Code 80 - Crossings
# Crossing Design by Dave Bullis - 3.582677 25.000000 3.582677
-TURNOUT N "Peco-80 25 Crossing SL-1706/ST-7"
+TURNOUT N "Peco-80 25° Crossing SL-1706"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 3.582677 0.000000 90.000000
@@ -112,7 +90,7 @@ TURNOUT N "Peco-80 25 Crossing SL-1706/ST-7"
S 0 0.000000 0.167833 0.757050 3.414844 -0.757050
END
# Crossing Design by Dave Bullis - 7.362204 8.000000 7.362204
-TURNOUT N "Peco-80 8 Crossing SL-1740/394"
+TURNOUT N "Peco-80 8° Crossing SL-1740/394"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 7.362205 0.000000 90.000000
@@ -121,7 +99,30 @@ TURNOUT N "Peco-80 8 Crossing SL-1740/394"
S 0 0.000000 0.000000 0.000000 7.362205 0.000000
S 0 0.000000 0.035823 0.512305 7.326382 -0.512305
END
-SUBCONTENTS Peco - Turn Tables
+SUBCONTENTS Peco N Scale Catch Points
+TURNOUT N "Peco Left Catchpoint SL-385"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 3.375000 0.000000 90.000000
+ E 2.875000 0.093750 87.500000
+ S 0 0.000000 0.000000 0.000000 0.353100 0.000000
+ S 0 0.000000 0.353100 0.000000 3.375000 0.000000
+ C 0 0.000000 -17.174915 0.353123 17.174915 177.499924 2.500152
+ S 0 0.000000 1.102304 0.016349 2.875000 0.093750
+ END
+TURNOUT N "Peco Right Catchpoint SL-384"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 3.375000 0.000000 90.000000
+ E 2.875000 -0.093750 92.500000
+ S 0 0.000000 0.000000 0.000000 0.353100 0.000000
+ S 0 0.000000 0.353100 0.000000 3.375000 0.000000
+ C 0 0.000000 17.174915 0.353032 -17.174915 0.000076 2.500152
+ S 0 0.000000 1.102304 -0.016349 2.875000 -0.093750
+ END
+SUBCONTENTS Peco - Turntables
TURNOUT N "Peco Turn Table NB-55"
P "1" 1 2 3
P "2" 4 5 6
@@ -235,3 +236,91 @@ TURNOUT N "Peco Turn Table NB-55"
G3 0 0.000000 0.01 0.000000 0.000000 0
A 0 0.000000 3.218750 0.000000 0.000000 0.000000 360.000000
END
+
+SUBCONTENTS Peco Code 55/80 - Inspection Pit
+TURNOUT N "Peco Code 55/80 Inspection Pit NB-56F"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.732283 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 6.732283 0.000000
+ F 15720651 0.000000 4
+ 0.000000 0.300000 0
+ 6.732283 0.300000 0
+ 6.732283 -0.300000 0
+ 0.000000 -0.300000 0
+ F 12632256 0.000000 4
+ 0.000000 0.160000 0
+ 0.320000 0.160000 0
+ 0.320000 -0.160000 0
+ 0.000000 -0.160000 0
+ L 0 0.020000 0.000000 0.160000 0.000000 -0.160000
+ L 0 0.020000 0.064000 0.160000 0.064000 -0.160000
+ L 0 0.020000 0.128000 0.160000 0.128000 -0.160000
+ L 0 0.020000 0.192000 0.160000 0.192000 -0.160000
+ L 0 0.020000 0.256000 0.160000 0.256000 -0.160000
+ L 0 0.020000 0.320000 0.160000 0.320000 -0.160000
+ F 12632256 0.000000 4
+ 6.412283 0.160000 0
+ 6.732283 0.160000 0
+ 6.732283 -0.160000 0
+ 6.412283 -0.160000 0
+ L 0 0.020000 6.412283 0.160000 6.412283 -0.160000
+ L 0 0.020000 6.476283 0.160000 6.476283 -0.160000
+ L 0 0.020000 6.540283 0.160000 6.540283 -0.160000
+ L 0 0.020000 6.604283 0.160000 6.604283 -0.160000
+ L 0 0.020000 6.668283 0.160000 6.668283 -0.160000
+ L 0 0.020000 6.732283 0.160000 6.732283 -0.160000
+ A 0 0.020000 0.062500 0.561024 0.000000 0.000000 360.000000
+ A 0 0.020000 0.062500 1.683071 0.000000 0.000000 360.000000
+ A 0 0.020000 0.062500 2.805118 0.000000 0.000000 360.000000
+ A 0 0.020000 0.062500 3.927165 0.000000 0.000000 360.000000
+ A 0 0.020000 0.062500 5.049212 0.000000 0.000000 360.000000
+ A 0 0.020000 0.062500 6.171259 0.000000 0.000000 360.000000
+ L 0 0.020000 0.000000 0.300000 6.732283 0.300000
+ L 0 0.020000 0.000000 0.160000 6.732283 0.160000
+ L 0 0.020000 0.000000 -0.160000 6.732283 -0.160000
+ L 0 0.020000 0.000000 -0.300000 6.732283 -0.300000
+END
+TURNOUT N "Peco Code 55/80 Inspection Pit(Stair End) NB-56FA"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.122047 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 1.122047 0.000000
+ F 15720651 0.000000 4
+ 0.000000 0.300000 0
+ 1.122047 0.300000 0
+ 1.122047 -0.300000 0
+ 0.000000 -0.300000 0
+ F 12632256 0.000000 4
+ 0.000000 0.160000 0
+ 0.320000 0.160000 0
+ 0.320000 -0.160000 0
+ 0.000000 -0.160000 0
+ L 0 0.020000 0.000000 0.160000 0.000000 -0.160000
+ L 0 0.020000 0.064000 0.160000 0.064000 -0.160000
+ L 0 0.020000 0.128000 0.160000 0.128000 -0.160000
+ L 0 0.020000 0.192000 0.160000 0.192000 -0.160000
+ L 0 0.020000 0.256000 0.160000 0.256000 -0.160000
+ L 0 0.020000 0.320000 0.160000 0.320000 -0.160000
+ A 0 0.020000 0.062500 0.561024 0.000000 0.000000 360.000000
+ L 0 0.020000 0.000000 0.300000 1.122047 0.300000
+ L 0 0.020000 0.000000 0.160000 1.122047 0.160000
+ L 0 0.020000 0.000000 -0.160000 1.122047 -0.160000
+ L 0 0.020000 0.000000 -0.300000 1.122047 -0.300000
+END
+TURNOUT N "Peco Code 55/80 Inspection Pit(Mid Section) NB-56FB"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.122047 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 1.122047 0.000000
+ F 15720651 0.000000 4
+ 0.000000 0.300000 0
+ 1.122047 0.300000 0
+ 1.122047 -0.300000 0
+ 0.000000 -0.300000 0
+ A 0 0.020000 0.062500 0.561024 0.000000 0.000000 360.000000
+ L 0 0.020000 0.000000 0.300000 1.122047 0.300000
+ L 0 0.020000 0.000000 0.160000 1.122047 0.160000
+ L 0 0.020000 0.000000 -0.160000 1.122047 -0.160000
+ L 0 0.020000 0.000000 -0.300000 1.122047 -0.300000
+END \ No newline at end of file
diff --git a/app/lib/params/rocon.xtp b/app/lib/params/N-fl.xtp
index fea8847..8cc0039 100644
--- a/app/lib/params/rocon.xtp
+++ b/app/lib/params/N-fl.xtp
@@ -1,132 +1,133 @@
-CONTENTS Roco N Scale Turnouts
-TURNOUT N "Roco Straight 12-5/16 22202"
+CONTENTS Fleischmann N Scale (Roco)
+# http://www.fleischmann.de/en/productsearch/0-0-0-0-0-0-0-005009/products.html
+TURNOUT N "Fleischmann Straight 312.2mm 12-5/16 22202"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 12.307087 0.000000 90.000000
S 0 0.000000 0.000000 0.000000 12.307087 0.000000
END
-TURNOUT N "Roco Straight 4-1/8 22203"
+TURNOUT N "Fleischmann Straight 104.2mm 4-1/8 22203"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.102362 0.000000 90.000000
S 0 0.000000 0.000000 0.000000 4.102362 0.000000
END
-TURNOUT N "Roco Straight 2-1/8 22204"
+TURNOUT N "Fleischmann Straight 54.2mm 2-1/8 22204"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 2.133858 0.000000 90.000000
S 0 0.000000 0.000000 0.000000 2.133858 0.000000
END
-TURNOUT N "Roco Straight 2 22205"
+TURNOUT N "Fleischmann Straight 50.0mm 2 22205"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 1.968504 0.000000 90.000000
S 0 0.000000 0.000000 0.000000 1.968504 0.000000
END
-TURNOUT N "Roco Straight 1-5/16 22206"
+TURNOUT N "Fleischmann Straight 33.6mm 1-5/16 22206"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 1.322835 0.000000 90.000000
S 0 0.000000 0.000000 0.000000 1.322835 0.000000
END
-TURNOUT N "Roco Straight 5/8 22207"
+TURNOUT N "Fleischmann Straight 17.2mm 5/8 22207"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 0.677165 0.000000 90.000000
S 0 0.000000 0.000000 0.000000 0.677165 0.000000
END
-TURNOUT N "Roco Rerailer 22210"
+TURNOUT N "Fleischmann Rerailer 104.2mm 22210"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.102362 0.000000 90.000000
S 0 0.000000 0.000000 0.000000 4.102362 0.000000
END
-TURNOUT N "Roco Uncoupler 22212"
+TURNOUT N "Fleischmann Uncoupler 104.2mm 22212"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.102362 0.000000 90.000000
S 0 0.000000 0.000000 0.000000 4.102362 0.000000
END
-TURNOUT N "Roco Curve 7-5/8 30 22221"
+TURNOUT N "Fleischmann Curve R1 194.6mm 7-5/8 30° 22221"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 3.830709 1.026435 60.000000
C 0 0.000000 -7.661417 0.000000 7.661417 150.000000 30.000000
END
-TURNOUT N "Roco Curve 9 30 22222"
+TURNOUT N "Fleischmann Curve R2 228.2mm 9 30° 22222"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.492126 1.203662 60.000000
C 0 0.000000 -8.984252 0.000000 8.984252 150.000000 30.000000
END
-TURNOUT N "Roco Curve 10-5/16 30 22223"
+TURNOUT N "Fleischmann Curve R3 261.8mm 10-5/16 30° 22223"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 5.153543 1.380888 60.000000
C 0 0.000000 -10.307087 0.000000 10.307087 150.000000 30.000000
END
-TURNOUT N "Roco Curve 11-9/16 30 22224"
+TURNOUT N "Fleischmann Curve R3a 295.4mm 11-9/16 30° 22224"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 5.814961 1.558114 60.000000
C 0 0.000000 -11.629921 0.000000 11.629921 150.000000 30.000000
END
-TURNOUT N "Roco Curve 12-15/16 15 22225"
+TURNOUT N "Fleischmann Curve R4 329.0mm 12-15/16 15° 22225"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 3.352420 0.441354 75.000000
C 0 0.000000 -12.952756 0.000000 12.952756 165.000000 15.000000
END
-TURNOUT N "Roco Curve 14-1/4 15 22226"
+TURNOUT N "Fleischmann Curve R5 362.6mm 14-1/4 15° 22226"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 3.694795 0.486429 75.000000
C 0 0.000000 -14.275591 0.000000 14.275591 165.000000 15.000000
END
-TURNOUT N "Roco Curve 18-7/8 15 22227"
+TURNOUT N "Fleischmann Curve R6 480.0mm 18-7/8 15° 22227"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.891069 0.643921 75.000000
C 0 0.000000 -18.897638 0.000000 18.897638 165.000000 15.000000
END
-TURNOUT N "Roco Curve 30 12 22228"
+TURNOUT N "Fleischmann Curve R7 765.0mm 30 12° 22228"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 6.261907 0.658153 78.000000
C 0 0.000000 -30.118110 0.000000 30.118110 168.000000 12.000000
END
-TURNOUT N "Roco Curve 7-5/8 24 22231"
+TURNOUT N "Fleischmann Curve R1 194.6mm 7-5/8 24° 22231"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 3.116179 0.662364 66.000000
C 0 0.000000 -7.661417 0.000000 7.661417 156.000000 24.000000
END
-TURNOUT N "Roco Curve 7-5/8 6 22232"
+TURNOUT N "Fleischmann Curve R1 194.6mm 7-5/8 6° 22232"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 0.800836 0.041970 84.000000
C 0 0.000000 -7.661417 0.000000 7.661417 174.000000 6.000000
END
-TURNOUT N "Roco Curve 9 24 22233"
- U "Curved Section" "Dave Bullis" "Roco" "Curve 9 24" "22233" 8.984252 24.000000
+TURNOUT N "Fleischmann Curve R2 228.2mm 9 24° 22233"
+ U "Curved Section" "Dave Bullis" "Fleischmann" "Curve 9 24°" "22233" 8.984252 24.000000
P "Normal" 1
E 0.000000 0.000000 270.000000
E 3.654224 0.776729 66.000000
C 0 0.000000 -8.984252 0.000000 8.984252 156.000000 24.000000
END
-TURNOUT N "Roco Curve 9 6 22234"
+TURNOUT N "Fleischmann Curve R2 228.2mm 9 6° 22234"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 0.939110 0.049217 84.000000
C 0 0.000000 -8.984252 0.000000 8.984252 174.000000 6.000000
END
-TURNOUT N "Roco Curve Terminal 7-5/8 30 22238"
+TURNOUT N "Fleischmann Curve Terminal 7-5/8 30° 22238"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 3.830709 1.026435 60.000000
C 0 0.000000 -7.661417 0.000000 7.661417 150.000000 30.000000
END
-TURNOUT N "Roco Crossing 30 22244"
+TURNOUT N "Fleischmann Crossing 30° 22244"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 4.102362 0.000000 90.000000
@@ -135,7 +136,7 @@ TURNOUT N "Roco Crossing 30 22244"
S 0 0.000000 0.000000 0.000000 4.102362 0.000000
S 0 0.000000 0.274806 1.025591 3.827556 -1.025591
END
-TURNOUT N "Roco Crossing 15 22245"
+TURNOUT N "Fleischmann Crossing 15° 22245"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 4.433071 0.000000 90.000000
@@ -144,24 +145,25 @@ TURNOUT N "Roco Crossing 15 22245"
S 0 0.000000 0.000000 0.000000 4.433071 0.000000
S 0 0.000000 0.075527 0.573682 4.357544 -0.573682
END
-TURNOUT N "Roco Double Slip 22246"
+TURNOUT N "Fleischmann Double Slip R5 15° 22246"
+ U "Double Slipswitch" "" "Fleischmann" "Double slip" "22246" 5.110236 15.000000 5.110236 0.000000 0.000000 0
P "Normal" 1 2 3 0 4 5 6
P "Reverse" 1 7 6 0 4 8 3
E 0.000000 0.000000 270.000000
- E 4.433071 0.000000 90.000000
- E 0.075527 0.573682 285.000000
- E 4.357544 -0.573682 105.000000
- S 0 0.000000 0.000000 0.000000 0.706200 0.000000
- S 0 0.000000 0.706200 0.000000 3.726871 0.000000
- S 0 0.000000 3.726871 0.000000 4.433071 0.000000
- S 0 0.000000 0.075527 0.573682 0.757663 0.390904
- S 0 0.000000 0.757663 0.390904 3.675407 -0.390904
- S 0 0.000000 3.675407 -0.390904 4.357544 -0.573682
- C 0 0.000000 11.472137 0.706200 -11.472137 0.000000 15.000000
- C 0 0.000000 -11.472137 3.726871 11.472137 180.000000 15.000000
- END
-TURNOUT N "Roco 3-Way Turnout Remote 22247"
- U "3-way Turnout" "" "Roco" "3-Way Turnout Remote" "22247" 4.207480 15.000000 0.622441 4.433071 0.622441 15.000000 4.207480 0.000000 0.000000 0
+ E 5.110236 0.000000 90.000000
+ E 0.087064 0.661313 285.000000
+ E 5.023173 -0.661313 105.000000
+ S 0 0.000000 0.000000 0.000000 0.708600 0.000000
+ S 0 0.000000 0.708600 0.000000 4.401636 0.000000
+ S 0 0.000000 4.401636 0.000000 5.110236 0.000000
+ S 0 0.000000 0.087064 0.661313 0.771519 0.477914
+ S 0 0.000000 0.771519 0.477914 4.338718 -0.477914
+ S 0 0.000000 4.338718 -0.477914 5.023173 -0.661313
+ C 0 0.000000 14.025698 0.708600 -14.025698 0.000000 15.000000
+ C 0 0.000000 -14.025698 4.401636 14.025698 180.000000 15.000000
+ END
+TURNOUT N "Fleischmann 3-Way Turnout Remote 22247"
+ U "3-way Turnout" "" "Fleischmann" "3-Way Turnout Remote" "22247" 4.207480 15.000000 0.622441 4.433071 0.622441 15.000000 4.207480 0.000000 0.000000 0
P "Left" 1 2 3
P "Normal" 1 6
P "Right" 1 4 5
@@ -176,7 +178,7 @@ TURNOUT N "Roco 3-Way Turnout Remote 22247"
S 0 0.000000 3.362626 -0.396057 4.207480 -0.622441
S 0 0.000000 0.354300 0.000000 4.433071 0.000000
END
-TURNOUT N "Roco Turnout #2 Left Remote 22249"
+TURNOUT N "Fleischmann Turnout #2 R1 24° Left Remote 22249"
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -187,8 +189,8 @@ TURNOUT N "Roco Turnout #2 Left Remote 22249"
C 0 0.000000 -6.000212 0.353100 6.000212 156.000000 24.000000
S 0 0.000000 2.793606 0.518746 3.116179 0.662364
END
-TURNOUT N "Roco Turnout #2 Right Remote 22251"
- U "Regular Turnout" "Sillub Technology" "Roco" "Turnout #2 Left Remote" "22250L" "Turnout #2 Right Remote" "22250R" 3.116179 24.000000 0.662364 4.102362
+TURNOUT N "Fleischmann Turnout #2 R1 24° Right Remote 22251"
+ U "Regular Turnout" "Sillub Technology" "Fleischmann" "Turnout #2 Left Remote" "22250L" "Turnout #2 Right Remote" "22250R" 3.116179 24.000000 0.662364 4.102362
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -199,7 +201,7 @@ TURNOUT N "Roco Turnout #2 Right Remote 22251"
C 0 0.000000 6.000212 0.353100 -6.000212 0.000000 24.000000
S 0 0.000000 2.793606 -0.518746 3.116179 -0.662364
END
-TURNOUT N "Roco Turnout #2 Left Man 22253"
+TURNOUT N "Fleischmann Turnout #2 R1 24° Left Man 22253"
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -210,8 +212,8 @@ TURNOUT N "Roco Turnout #2 Left Man 22253"
C 0 0.000000 -6.000212 0.353100 6.000212 156.000000 24.000000
S 0 0.000000 2.793606 0.518746 3.116179 0.662364
END
-TURNOUT N "Roco Turnout #2 Right Man 22255"
- U "Regular Turnout" "Sillub Technology" "Roco" "Turnout #2 Left Man" "22254L" "Turnout #2 Right Man" "22254R" 3.116179 24.000000 0.662364 4.102362
+TURNOUT N "Fleischmann Turnout #2 R1 24° Right Man 22255"
+ U "Regular Turnout" "Sillub Technology" "Fleischmann" "Turnout #2 Left Man" "22254L" "Turnout #2 Right Man" "22254R" 3.116179 24.000000 0.662364 4.102362
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -222,55 +224,55 @@ TURNOUT N "Roco Turnout #2 Right Man 22255"
C 0 0.000000 6.000212 0.353100 -6.000212 0.000000 24.000000
S 0 0.000000 2.793606 -0.518746 3.116179 -0.662364
END
-TURNOUT N "Roco Turnout #4 Left Remote 22261"
- U "Regular Turnout" "Dave Bullis" "Roco" "Turnout Left Elec 15D" "2261" "Turnout Right Elec 15D" "2263" 4.207392 15.000000 0.622421 4.433071
+TURNOUT N "Fleischmann Turnout #4 R5 15° Left Remote 22261"
+ U "Regular Turnout" "" "Fleischmann" "Left turnout R5" "xx261" "Right turnout R5" "xx263" 4.348886 15.000000 0.661692 4.433071 0.000000 0.000000 0
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
E 4.433071 0.000000 90.000000
- E 4.207392 0.622421 75.000000
- S 0 0.000000 0.000000 0.000000 0.353100 0.000000
- S 0 0.000000 0.353100 0.000000 4.433071 0.000000
- C 0 0.000000 -11.632016 0.353100 11.632016 165.000000 15.000000
- S 0 0.000000 3.363687 0.396351 4.207392 0.622421
+ E 4.348886 0.661692 75.000000
+ S 0 0.000000 0.000000 0.000000 0.354300 0.000000
+ S 0 0.000000 0.354300 0.000000 4.433071 0.000000
+ C 0 0.000000 -11.584420 0.354300 11.584420 165.000000 15.000000
+ S 0 0.000000 3.352569 0.394730 4.348886 0.661692
END
-TURNOUT N "Roco Turnout #4 Right Remote 22263"
- U "Regular Turnout" "Dave Bullis" "Roco" "Turnout Left Elec 15D" "2261" "Turnout Right Elec 15D" "2263" 4.207392 15.000000 0.622421 4.433071
+TURNOUT N "Fleischmann Turnout #4 R5 15° Right Remote 22263"
+ U "Regular Turnout" "" "Fleischmann" "Left turnout R5" "xx261" "Right turnout R5" "xx263" 4.348886 15.000000 0.661692 4.433071 0.000000 0.000000 0
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
E 4.433071 0.000000 90.000000
- E 4.207392 -0.622421 105.000000
- S 0 0.000000 0.000000 0.000000 0.353100 0.000000
- S 0 0.000000 0.353100 0.000000 4.433071 0.000000
- C 0 0.000000 11.632016 0.353100 -11.632016 0.000000 15.000000
- S 0 0.000000 3.363687 -0.396351 4.207392 -0.622421
+ E 4.348886 -0.661692 105.000000
+ S 0 0.000000 0.000000 0.000000 0.354300 0.000000
+ S 0 0.000000 0.354300 0.000000 4.433071 0.000000
+ C 0 0.000000 11.584420 0.354300 -11.584420 0.000000 15.000000
+ S 0 0.000000 3.352569 -0.394730 4.348886 -0.661692
END
-TURNOUT N "Roco Turnout #4 Left Man 22265"
- U "Regular Turnout" "Dave Bullis" "Roco" "Turnout Left Elec 15D" "2261" "Turnout Right Elec 15D" "2263" 4.207392 15.000000 0.622421 4.433071
+TURNOUT N "Fleischmann Turnout #4 R5 15° Left Man 22265"
+ U "Regular Turnout" "" "Fleischmann" "Left turnout R5" "xx261" "Right turnout R5" "xx263" 4.348886 15.000000 0.661692 4.433071 0.000000 0.000000 0
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
E 4.433071 0.000000 90.000000
- E 4.207392 0.622421 75.000000
- S 0 0.000000 0.000000 0.000000 0.353100 0.000000
- S 0 0.000000 0.353100 0.000000 4.433071 0.000000
- C 0 0.000000 -11.632016 0.353100 11.632016 165.000000 15.000000
- S 0 0.000000 3.363687 0.396351 4.207392 0.622421
+ E 4.348886 0.661692 75.000000
+ S 0 0.000000 0.000000 0.000000 0.354300 0.000000
+ S 0 0.000000 0.354300 0.000000 4.433071 0.000000
+ C 0 0.000000 -11.584420 0.354300 11.584420 165.000000 15.000000
+ S 0 0.000000 3.352569 0.394730 4.348886 0.661692
END
-TURNOUT N "Roco Turnout #4 Right Man 22267"
- U "Regular Turnout" "Dave Bullis" "Roco" "Turnout Left Elec 15D" "2261" "Turnout Right Elec 15D" "2263" 4.207392 15.000000 0.622421 4.433071
+TURNOUT N "Fleischmann Turnout #4 R5 15° Right Man 22267"
+ U "Regular Turnout" "" "Fleischmann" "Left turnout R5" "xx261" "Right turnout R5" "xx263" 4.348886 15.000000 0.661692 4.433071 0.000000 0.000000 0
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
E 4.433071 0.000000 90.000000
- E 4.207392 -0.622421 105.000000
- S 0 0.000000 0.000000 0.000000 0.353100 0.000000
- S 0 0.000000 0.353100 0.000000 4.433071 0.000000
- C 0 0.000000 11.632016 0.353100 -11.632016 0.000000 15.000000
- S 0 0.000000 3.363687 -0.396351 4.207392 -0.622421
+ E 4.348886 -0.661692 105.000000
+ S 0 0.000000 0.000000 0.000000 0.354300 0.000000
+ S 0 0.000000 0.354300 0.000000 4.433071 0.000000
+ C 0 0.000000 11.584420 0.354300 -11.584420 0.000000 15.000000
+ S 0 0.000000 3.352569 -0.394730 4.348886 -0.661692
END
-TURNOUT N "Roco Turnout Curved Left Remote 22273"
+TURNOUT N "Fleischmann Turnout R2 42° / R1 42° Curved Left Remote 22273"
P "Normal" 1 4 5
P "Reverse" 1 2 3
E 0.000000 0.000000 270.000000
@@ -282,8 +284,8 @@ TURNOUT N "Roco Turnout Curved Left Remote 22273"
C 0 0.000000 -9.387230 0.353100 9.387230 138.000000 42.000000
S 0 0.000000 6.634383 2.411159 6.896787 2.647429
END
-TURNOUT N "Roco Turnout Curved Right Remote 22275"
- U "Curved Turnout" "Sillub Technology" "Roco" "Turnout Curved Left Remote" "22273" "Turnout Curved Right Remote" "22275" 6.011638 42.000000 2.307652 42.000000 2.647429 6.896787
+TURNOUT N "Fleischmann Turnout R2 42° / R1 42° Curved Right Remote 22275"
+ U "Curved Turnout" "Sillub Technology" "Fleischmann" "Turnout Curved Left Remote" "22273" "Turnout Curved Right Remote" "22275" 6.011638 42.000000 2.307652 42.000000 2.647429 6.896787
P "Normal" 1 4 5
P "Reverse" 1 2 3
E 0.000000 0.000000 270.000000
diff --git a/app/lib/params/N-kato-n-gl-trk.xtp b/app/lib/params/N-kato-n-gl-trk.xtp
index 283f99a..3660497 100644
--- a/app/lib/params/N-kato-n-gl-trk.xtp
+++ b/app/lib/params/N-kato-n-gl-trk.xtp
@@ -1,12 +1,12 @@
CONTENTS Kato Unitrack N-Scale
#
# Note These are somewhat twiddled so that turnouts and
-# the 15 crossing line up with the corresponding curve.
+# the 15° crossing line up with the corresponding curve.
# Also, most straight tracks are a multiple of
# 20-010 (186mm) (20-000:4/3, 20-020:2/3, 20-040:1/3).
#
# The curves are 1mm smaller than the specification. According to the specs
-# on the Kato 90 crossing, half of the crossing + S45.5 + S186 should equal
+# on the Kato 90° crossing, half of the crossing + S45.5 + S186 should equal
# the radius of a R249, but is 16.5+45.4+186=248.
#
# Note: I added the Kato #20-091 Misc Track Assmt pieces
@@ -230,7 +230,7 @@ TURNOUT N "Kato Unitrack Deck Plate Grider Bridge 4 7/8 124mm 20-464"
END
SUBCONTENTS Kato Unitrack N-Scale Curved Track
# Curved Section Design by D.Ward - 8.5625 8.000
-TURNOUT N "Kato Unitrack Curve 8.56R 216mm 45 20-170"
+TURNOUT N "Kato Unitrack Curve 8.56R 216mm 45° 20-170"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 6.013192 -2.490745 135.000000
@@ -239,7 +239,7 @@ TURNOUT N "Kato Unitrack Curve 8.56R 216mm 45 20-170"
A 11579568 0.053333 8.949711 0.000000 -8.503937 0.000000 45.000000
END
# Curved Section Design by D.Ward - 8.5625 8.000
-TURNOUT N "Kato Unitrack Curve 8.56R 216mm 15 20-171"
+TURNOUT N "Kato Unitrack Curve 8.56R 216mm 15° 20-171"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 2.200981 -0.289765 105.000000
@@ -248,7 +248,7 @@ TURNOUT N "Kato Unitrack Curve 8.56R 216mm 15 20-171"
A 11579568 0.053333 8.949711 0.000000 -8.503937 0.000000 15.000000
END
# Curved Section Design by Dave Bullis - 9.750 8.000
-TURNOUT N "Kato Unitrack Curve 9.75R 249mm 45 20-100"
+TURNOUT N "Kato Unitrack Curve 9.75R 249mm 45° 20-100"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 6.931874 -2.871276 135.000000
@@ -257,7 +257,7 @@ TURNOUT N "Kato Unitrack Curve 9.75R 249mm 45 20-100"
A 11579568 0.053333 10.248924 0.000000 -9.803150 0.000000 45.000000
END
# Curved Section Design by Dave Bullis - 9.750 8.000
-TURNOUT N "Kato Unitrack Curve 9.75R 249mm 15 20-101"
+TURNOUT N "Kato Unitrack Curve 9.75R 249mm 15° 20-101"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 2.537242 -0.334034 105.000000
@@ -266,7 +266,7 @@ TURNOUT N "Kato Unitrack Curve 9.75R 249mm 15 20-101"
A 11579568 0.053333 10.248924 0.000000 -9.803150 0.000000 15.000000
END
# Curved Section Design by Dave Bullis - 11.000 8.000
-TURNOUT N "Kato Unitrack Curve 11R 282mm 45 20-110"
+TURNOUT N "Kato Unitrack Curve 11R 282mm 45° 20-110"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 7.850556 -3.251807 135.000000
@@ -275,7 +275,7 @@ TURNOUT N "Kato Unitrack Curve 11R 282mm 45 20-110"
A 11579568 0.053333 11.548136 0.000000 -11.102362 0.000000 45.000000
END
# Curved Section Design by Dave Bullis - 11.000 24.000
-TURNOUT N "Kato Unitrack Curve 11R 282mm 15 20-111"
+TURNOUT N "Kato Unitrack Curve 11R 282mm 15° 20-111"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 2.873503 -0.378304 105.000000
@@ -284,7 +284,7 @@ TURNOUT N "Kato Unitrack Curve 11R 282mm 15 20-111"
A 11579568 0.053333 11.548136 0.000000 -11.102362 0.000000 15.000000
END
# Curved Section Design by Dave Bullis - 12.375 8.000
-TURNOUT N "Kato Unitrack Curve 12.375R 315mm 45 20-120"
+TURNOUT N "Kato Unitrack Curve 12.375R 315mm 45° 20-120"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 8.769238 -3.632337 135.000000
@@ -293,7 +293,7 @@ TURNOUT N "Kato Unitrack Curve 12.375R 315mm 45 20-120"
A 11579568 0.053333 12.847349 0.000000 -12.401575 0.000000 45.000000
END
# Curved Section Design by Dave Bullis - 12.375 8.000
-TURNOUT N "Kato Unitrack Curve 12.375R 315mm 15 20-121"
+TURNOUT N "Kato Unitrack Curve 12.375R 315mm 15° 20-121"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 3.209764 -0.422573 105.000000
@@ -302,7 +302,7 @@ TURNOUT N "Kato Unitrack Curve 12.375R 315mm 15 20-121"
A 11579568 0.053333 12.847349 0.000000 -12.401575 0.000000 15.000000
END
# Curved Section Design by Dave Bullis - 13.750 12.000
-TURNOUT N "Kato Unitrack Curve 13.75R 348mm 30 20-130"
+TURNOUT N "Kato Unitrack Curve 13.75R 348mm 30° 20-130"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 6.850394 -1.835557 120.000000
@@ -311,7 +311,7 @@ TURNOUT N "Kato Unitrack Curve 13.75R 348mm 30 20-130"
A 11579568 0.053333 14.146561 0.000000 -13.700787 0.000000 30.000000
END
# Curved Section Design by Dave Bullis - 13.750 8.000
-TURNOUT N "Kato Unitrack Curve 13.75R 348mm 45 20-132"
+TURNOUT N "Kato Unitrack Curve 13.75R 348mm 45° 20-132"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 9.687920 -4.012868 135.000000
@@ -320,7 +320,7 @@ TURNOUT N "Kato Unitrack Curve 13.75R 348mm 45 20-132"
A 11579568 0.053333 14.146561 0.000000 -13.700787 0.000000 45.000000
END
# Curved Section Design by Dave Bullis - 15.000 12.000
-TURNOUT N "Kato Unitrack Curve 15R 381mm 30 20-140"
+TURNOUT N "Kato Unitrack Curve 15R 381mm 30° 20-140"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 7.500000 -2.009619 120.000000
@@ -329,7 +329,7 @@ TURNOUT N "Kato Unitrack Curve 15R 381mm 30 20-140"
A 11579568 0.053333 15.445774 0.000000 -15.000000 0.000000 30.000000
END
# Curved Section Design by Dave Bullis - 19.000 24.000
-TURNOUT N "Kato Unitrack Curve 19R 481mm 15 20-160"
+TURNOUT N "Kato Unitrack Curve 19R 481mm 15° 20-160"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.901258 -0.645263 105.000000
@@ -338,7 +338,7 @@ TURNOUT N "Kato Unitrack Curve 19R 481mm 15 20-160"
A 11579568 0.053333 19.382782 -0.000000 -18.937008 0.000000 15.000000
END
# Curved Section Design by Dave Bullis - 28.25333 24.000
-TURNOUT N "Kato Unitrack Curve 28.25R 718mm 15 20-150"
+TURNOUT N "Kato Unitrack Curve 28.25R 718mm 15° 20-150"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 7.316223 -0.963199 105.000000
@@ -494,7 +494,7 @@ TURNOUT N "Kato Unitrack Double Crossover 20-210"
L 11579568 0.053333 0.000000 -1.772546 12.204724 -1.772546
END
# Crossing Design by Dave Bullis - 3.656 15.000 3.793
-TURNOUT N "Kato Unitrack Crossing 15 X15R 20-301"
+TURNOUT N "Kato Unitrack Crossing 15° X15R 20-301"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 7.322834 0.000000 90.000000
@@ -508,7 +508,7 @@ TURNOUT N "Kato Unitrack Crossing 15 X15R 20-301"
L 11579568 0.053333 7.20 -1.43 3.62 -0.445774
END
# Crossing Design by Dave Bullis - 3.793 15.000 3.656
-TURNOUT N "Kato Unitrack Crossing 15 X15L 20-300"
+TURNOUT N "Kato Unitrack Crossing 15° X15L 20-300"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 7.322834 0.000000 90.000000
@@ -522,7 +522,7 @@ TURNOUT N "Kato Unitrack Crossing 15 X15L 20-300"
L 11579568 0.053333 7.20 1.43 3.62 0.445774
END
# Crossing Design by Dave Bullis - 2.438 90.000 2.438
-TURNOUT N "Kato Unitrack Crossing 90 w/S45.5 20-320"
+TURNOUT N "Kato Unitrack Crossing 90° w/S45.5 20-320"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 4.881889 0.000000 90.000000
@@ -540,7 +540,7 @@ TURNOUT N "Kato Unitrack Crossing 90 w/S45.5 20-320"
L 11579568 0.053333 2.914278 2.440944 2.914278 0.500000
END
# Crossing Design by Dave Bullis - 2.438 90.000 2.438
-TURNOUT N "Kato Unitrack Crossing 90 w/o S45.5 20-320"
+TURNOUT N "Kato Unitrack Crossing 90° w/o S45.5 20-320"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 1.299212 0.000000 90.000000
diff --git a/app/lib/params/N-kato-turntable.xtp b/app/lib/params/N-kato-turntable.xtp
index b614c13..735f5ab 100644
--- a/app/lib/params/N-kato-turntable.xtp
+++ b/app/lib/params/N-kato-turntable.xtp
@@ -70,7 +70,7 @@ TURNOUT N "Kato Unitrack Curve (R) Extension Line 20-286R"
L 0 0.031250 5.642748 0.000000 5.492126 -0.854220
L 0 0.031250 5.642748 0.000000 5.492126 0.854220
END
-TURNOUT N "Kato Unitrack Curve 15R 381mm 10 381-10"
+TURNOUT N "Kato Unitrack Curve 15R 381mm 10° 381-10"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 2.604723 -0.227884 100.000000
@@ -134,58 +134,58 @@ TURNOUT N "Kato Unitrack 160mm Turn Table 20-283"
E -1.460992 4.014041 340.000000
E -0.741765 4.206758 350.000000
S 0 0.000000 0.000000 4.271654 0.000000 3.149606
- S 16777215 0.000000 0.000000 3.149606 0.000000 -3.149606
+ S 0 0.000000 0.000000 3.149606 0.000000 -3.149606
S 0 0.000000 0.000000 -3.149606 0.000000 -4.271654
S 0 0.000000 0.741765 4.206758 0.546923 3.101757
- S 16777215 0.000000 0.546923 3.101757 -0.546923 -3.101757
+ S 0 0.000000 0.546923 3.101757 -0.546923 -3.101757
S 0 0.000000 -0.546923 -3.101757 -0.741765 -4.206758
S 0 0.000000 1.460992 4.014041 1.077229 2.959662
- S 16777215 0.000000 1.077229 2.959662 -1.077229 -2.959662
+ S 0 0.000000 1.077229 2.959662 -1.077229 -2.959662
S 0 0.000000 -1.077229 -2.959662 -1.460992 -4.014041
S 0 0.000000 2.135827 3.699360 1.574803 2.727639
- S 16777215 0.000000 1.574803 2.727639 -1.574803 -2.727639
+ S 0 0.000000 1.574803 2.727639 -1.574803 -2.727639
S 0 0.000000 -1.574803 -2.727639 -2.135827 -3.699360
S 0 0.000000 2.745766 3.272276 2.024528 2.412738
- S 16777215 0.000000 2.024528 2.412738 -2.024528 -2.412738
+ S 0 0.000000 2.024528 2.412738 -2.024528 -2.412738
S 0 0.000000 -2.024528 -2.412738 -2.745766 -3.272276
S 0 0.000000 3.272276 2.745766 2.412738 2.024528
- S 16777215 0.000000 2.412738 2.024528 -2.412738 -2.024528
+ S 0 0.000000 2.412738 2.024528 -2.412738 -2.024528
S 0 0.000000 -2.412738 -2.024528 -3.272276 -2.745766
S 0 0.000000 3.699360 2.135827 2.727639 1.574803
- S 16777215 0.000000 2.727639 1.574803 -2.727639 -1.574803
+ S 0 0.000000 2.727639 1.574803 -2.727639 -1.574803
S 0 0.000000 -2.727639 -1.574803 -3.699360 -2.135827
S 0 0.000000 4.014041 1.460992 2.959662 1.077229
- S 16777215 0.000000 2.959662 1.077229 -2.959662 -1.077229
+ S 0 0.000000 2.959662 1.077229 -2.959662 -1.077229
S 0 0.000000 -2.959662 -1.077229 -4.014041 -1.460992
S 0 0.000000 4.206758 0.741765 3.101757 0.546923
- S 16777215 0.000000 3.101757 0.546923 -3.101757 -0.546923
+ S 0 0.000000 3.101757 0.546923 -3.101757 -0.546923
S 0 0.000000 -3.101757 -0.546923 -4.206758 -0.741765
S 0 0.000000 4.271654 0.000000 3.149606 0.000000
- S 16777215 0.000000 3.149606 0.000000 -3.149606 0.000000
+ S 0 0.000000 3.149606 0.000000 -3.149606 0.000000
S 0 0.000000 -3.149606 0.000000 -4.271654 0.000000
S 0 0.000000 4.206758 -0.741765 3.101757 -0.546923
- S 16777215 0.000000 3.101757 -0.546923 -3.101757 0.546923
+ S 0 0.000000 3.101757 -0.546923 -3.101757 0.546923
S 0 0.000000 -3.101757 0.546923 -4.206758 0.741765
S 0 0.000000 4.014041 -1.460992 2.959662 -1.077229
- S 16777215 0.000000 2.959662 -1.077229 -2.959662 1.077229
+ S 0 0.000000 2.959662 -1.077229 -2.959662 1.077229
S 0 0.000000 -2.959662 1.077229 -4.014041 1.460992
S 0 0.000000 3.699360 -2.135827 2.727639 -1.574803
- S 16777215 0.000000 2.727639 -1.574803 -2.727639 1.574803
+ S 0 0.000000 2.727639 -1.574803 -2.727639 1.574803
S 0 0.000000 -2.727639 1.574803 -3.699360 2.135827
S 0 0.000000 3.272276 -2.745766 2.412738 -2.024528
- S 16777215 0.000000 2.412738 -2.024528 -2.412738 2.024528
+ S 0 0.000000 2.412738 -2.024528 -2.412738 2.024528
S 0 0.000000 -2.412738 2.024528 -3.272276 2.745766
S 0 0.000000 2.745766 -3.272276 2.024528 -2.412738
- S 16777215 0.000000 2.024528 -2.412738 -2.024528 2.412738
+ S 0 0.000000 2.024528 -2.412738 -2.024528 2.412738
S 0 0.000000 -2.024528 2.412738 -2.745766 3.272276
S 0 0.000000 2.135827 -3.699360 1.574803 -2.727639
- S 16777215 0.000000 1.574803 -2.727639 -1.574803 2.727639
+ S 0 0.000000 1.574803 -2.727639 -1.574803 2.727639
S 0 0.000000 -1.574803 2.727639 -2.135827 3.699360
S 0 0.000000 1.460992 -4.014041 1.077229 -2.959662
- S 16777215 0.000000 1.077229 -2.959662 -1.077229 2.959662
+ S 0 0.000000 1.077229 -2.959662 -1.077229 2.959662
S 0 0.000000 -1.077229 2.959662 -1.460992 4.014041
S 0 0.000000 0.741765 -4.206758 0.546923 -3.101757
- S 16777215 0.000000 0.546923 -3.101757 -0.546923 3.101757
+ S 0 0.000000 0.546923 -3.101757 -0.546923 3.101757
S 0 0.000000 -0.546923 3.101757 -0.741765 4.206758
A 0 0.031250 3.149606 0.000000 0.000000 0.000000 360.000000
A 11427422 0.250000 3.399606 0.000000 0.000000 0.000000 360.000000
diff --git a/app/lib/params/N-kato.xtp b/app/lib/params/N-kato.xtp
index 3755258..5c200d9 100644
--- a/app/lib/params/N-kato.xtp
+++ b/app/lib/params/N-kato.xtp
@@ -1,1691 +1,1704 @@
-CONTENTS Kato Unitrack N-Scale
-#
-#
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale Straight Track
-TURNOUT N "Kato Unitrack Straight 9.75 248mm 20-000"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.763779 0.000000 90.000000
- S 0 0 0.000000 0.000000 9.763779 0.000000
- L 11579568 0.053333 0.000000 0.492126 9.763779 0.492126
- L 11579568 0.053333 0.000000 -0.492126 9.763779 -0.492126
- END
-TURNOUT N "Kato Unitrack Straight 7 5/16 186mm 20-010"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.322834 0.000000 90.000000
- S 0 0 0.000000 0.000000 7.322834 0.000000
- L 11579568 0.053333 0.000000 0.492126 7.322834 0.492126
- L 11579568 0.053333 0.000000 -0.492126 7.322834 -0.492126
- END
-TURNOUT N "Kato Unitrack Straight 4 7/8 124mm 20-020"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.881889 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.881889 0.000000
- L 11579568 0.053333 0.000000 0.492126 4.881889 0.492126
- L 11579568 0.053333 0.000000 -0.492126 4.881889 -0.492126
- END
-TURNOUT N "Kato Unitrack Straight 2 1/2 64mm 20-030"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.519685 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.519685 0.000000
- L 11579568 0.053333 0.000000 0.492126 2.519685 0.492126
- L 11579568 0.053333 0.000000 -0.492126 2.519685 -0.492126
- END
-TURNOUT N "Kato Unitrack Straight 2 7/16 62mm 20-040"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.440944 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.440944 0.000000
- L 11579568 0.053333 0.000000 0.492126 2.440944 0.492126
- L 11579568 0.053333 0.000000 -0.492126 2.440944 -0.492126
- END
-TURNOUT N "Kato Unitrack Straight 1 3/4 45-5mm 20-091A"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.791339 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.791339 0.000000
- L 11579568 0.053333 0.000000 0.492126 1.791339 0.492126
- L 11579568 0.053333 0.000000 -0.492126 1.791339 -0.492126
- END
-TURNOUT N "Kato Unitrack Straight 1 1/8 29mm 20-091B"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.141732 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.141732 0.000000
- L 11579568 0.053333 0.000000 0.492126 1.141732 0.492126
- L 11579568 0.053333 0.000000 -0.492126 1.141732 -0.492126
- END
-TURNOUT N "Kato Unitrack Straight 1 19/64 33mm 20-092A"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.299213 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.299213 0.000000
- L 11579568 0.053333 0.000000 0.492126 1.299213 0.492126
- L 11579568 0.053333 0.000000 -0.492126 1.299213 -0.492126
- END
-TURNOUT N "Kato Unitrack Straight 1 1/2 38mm 20-092B"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.496063 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.496063 0.000000
- L 11579568 0.053333 0.000000 0.492126 1.496063 0.492126
- L 11579568 0.053333 0.000000 -0.492126 1.496063 -0.492126
- END
-TURNOUT N "Kato Unitrack Road Crossing 124mm 20-021"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.881889 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 4.881889 0.000000
- L 11579568 0.053333 0.000000 0.4921260 4.881889 0.4921260
- L 11579568 0.053333 0.000000 -0.4921260 4.881889 -0.4921260
- L 0 0.053333 0.500000 0.548560 4.375000 0.548560
- L 0 0.053333 4.375000 0.548560 4.375000 -0.576440
- L 0 0.053333 4.375000 -0.576440 0.500000 -0.576440
- L 0 0.053333 0.500000 -0.576440 0.500000 0.548560
- L 0 0.053333 1.466667 0.133560 1.000000 -0.013107
- L 0 0.053333 1.440000 -0.133107 1.000000 -0.026440
- L 0 0.053333 1.440000 0.120227 3.320000 0.120227
- L 0 0.053333 1.453333 -0.133107 3.306667 -0.119773
- L 0 0.053333 3.306667 0.120227 3.626667 0.000227
- L 0 0.053333 3.293333 -0.119773 3.600000 0.000227
- END
-TURNOUT N "Kato Unitrack Mag Uncoupler 64mm 20-032"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.519685 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 2.519685 0.000000
- L 11579568 0.053333 0.000000 0.4921260 2.519685 0.4921260
- L 11579568 0.053333 0.000000 -0.4921260 2.519685 -0.4921260
- L 0 0.053333 0.253333 0.133560 2.280000 0.133560
- L 0 0.053333 2.280000 0.133560 2.280000 -0.146440
- L 0 0.053333 2.280000 -0.146440 0.253333 -0.146440
- L 0 0.053333 0.253333 -0.146440 0.253333 0.133560
- END
-TURNOUT N "Kato Unitrack Feeder Track 62mm 20-041"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.440944 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.440944 0.000000
- L 11579568 0.053333 0.000000 0.492126 2.440944 0.492126
- L 11579568 0.053333 0.000000 -0.492126 2.440944 -0.492126
- L 0 0.026667 2.000000 -0.498874 2.000000 -0.698874
- L 0 0.026667 2.000000 -0.698874 2.100000 -0.798874
- L 0 0.026667 2.000000 -0.698874 1.900000 -0.798874
- L 16711680 0.026667 1.800000 -0.498874 1.800000 -0.698874
- L 16711680 0.026667 1.800000 -0.698874 1.900000 -0.798874
- L 16711680 0.026667 1.800000 -0.698874 1.700000 -0.798874
- END
-TURNOUT N "Kato Unitrack Snap Tk. Conv. Tk. 62mm 20-045"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.440944 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.440944 0.000000
- L 11579568 0.053333 0.000000 0.492126 2.440944 0.492126
- L 11579568 0.053333 0.000000 -0.492126 2.440944 -0.492126
- END
-TURNOUT N "Kato Unitrack Adjustable 20-050"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.070866 0.000000 90.000000
- X adjustable 3.070866 4.251968
- S 0 0 0.000000 0.000000 3.070866 0.000000
- L 11579568 0.053333 0.000000 0.492126 3.070866 0.492126
- L 11579568 0.053333 0.000000 -0.492126 3.070866 -0.492126
- END
-TURNOUT N "Kato Unitrack 3-Color Signal 4 7/8 124mm 20-605-1"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.881889 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.881889 0.000000
- L 11579568 0.053333 0.000000 0.492126 4.881889 0.492126
- L 11579568 0.053333 0.000000 -0.492126 4.881889 -0.492126
- F 11579568 0.000000 4
- 1.948819 0.492126 0
- 1.948819 0.992126 0
- 2.948819 0.992126 0
- 2.948819 0.492126 0
- G 0 0.053333 0.100000 2.448819 0.742126 0
- END
-TURNOUT N "Kato Unitrack Ash Pit Track 7 5/16 186mm 20-015"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.322834 0.000000 90.000000
- S 0 0 0.000000 0.000000 7.322834 0.000000
- L 11579568 0.053333 0.000000 0.492126 7.322834 0.492126
- L 11579568 0.053333 0.000000 -0.492126 7.322834 -0.492126
- F 11579568 0.000000 4
- 0.500000 0.150000 0
- 6.822834 0.150000 0
- 6.822834 -0.150000 0
- 0.500000 -0.150000 0
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale Curved Track
-TURNOUT N "Kato Unitrack Curve 4.625R 117mm 45 20-176"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.257145 -1.349154 135.000000
- C 0 0 4.606299 0.000000 -4.606299 0.000000 45.000000
- A 11579568 0.053333 4.114173 0.000000 -4.606299 0.000000 45.000000
- A 11579568 0.053333 5.098425 0.000000 -4.606299 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack Curve 5.905R 150mm 45 20-174"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.175827 -1.729684 135.000000
- C 0 0 5.905512 0.000000 -5.905512 0.000000 45.000000
- A 11579568 0.053333 5.413386 0.000000 -5.905512 0.000000 45.000000
- A 11579568 0.053333 6.397638 0.000000 -5.905512 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack Curve 7.204R 183mm 45 20-172"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.094509 -2.110215 135.000000
- C 0 0 7.204724 0.000000 -7.204724 0.000000 45.000000
- A 11579568 0.053333 6.712598 0.000000 -7.204724 0.000000 45.000000
- A 11579568 0.053333 7.696850 0.000000 -7.204724 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack Curve 8.56R 216mm 45 20-170"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.013192 -2.490745 135.000000
- C 0 0 8.503937 0.000000 -8.503937 0.000000 45.000000
- A 11579568 0.053333 8.011811 0.000000 -8.503937 0.000000 45.000000
- A 11579568 0.053333 8.996063 0.000000 -8.503937 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack Curve 8.56R 216mm 15 20-171"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.200981 -0.289765 105.000000
- C 0 0 8.503937 0.000000 -8.503937 0.000000 15.000000
- A 11579568 0.053333 8.011811 0.000000 -8.503937 0.000000 15.000000
- A 11579568 0.053333 8.996063 0.000000 -8.503937 0.000000 15.000000
- END
-TURNOUT N "Kato Unitrack Curve 9.75R 249mm 45 20-100"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.931874 -2.871276 135.000000
- C 0 0 9.803150 0.000000 -9.803150 0.000000 45.000000
- A 11579568 0.053333 9.311024 0.000000 -9.803150 0.000000 45.000000
- A 11579568 0.053333 10.295276 0.000000 -9.803150 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack Curve 9.75R 249mm 15 20-101"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.537242 -0.334034 105.000000
- C 0 0 9.803150 0.000000 -9.803150 0.000000 15.000000
- A 11579568 0.053333 9.311024 0.000000 -9.803150 0.000000 15.000000
- A 11579568 0.053333 10.295276 0.000000 -9.803150 0.000000 15.000000
- END
-TURNOUT N "Kato Unitrack Curve 11R 282mm 45 20-110"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.850556 -3.251807 135.000000
- C 0 0 11.102362 0.000000 -11.102362 0.000000 45.000000
- A 11579568 0.053333 10.610236 0.000000 -11.102362 0.000000 45.000000
- A 11579568 0.053333 11.594488 0.000000 -11.102362 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack Curve 11R 282mm 15 20-111"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.873503 -0.378304 105.000000
- C 0 0 11.102362 0.000000 -11.102362 0.000000 15.000000
- A 11579568 0.053333 10.610236 0.000000 -11.102362 0.000000 15.000000
- A 11579568 0.053333 11.594488 0.000000 -11.102362 0.000000 15.000000
- END
-TURNOUT N "Kato Unitrack Curve 12.375R 315mm 45 20-120"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.769238 -3.632337 135.000000
- C 0 0 12.401575 0.000000 -12.401575 0.000000 45.000000
- A 11579568 0.053333 11.909449 0.000000 -12.401575 0.000000 45.000000
- A 11579568 0.053333 12.893701 0.000000 -12.401575 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack Curve 12.375R 315mm 15 20-121"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.209764 -0.422573 105.000000
- C 0 0 12.401575 0.000000 -12.401575 0.000000 15.000000
- A 11579568 0.053333 11.909449 0.000000 -12.401575 0.000000 15.000000
- A 11579568 0.053333 12.893701 0.000000 -12.401575 0.000000 15.000000
- END
-TURNOUT N "Kato Unitrack Curve 13.75R 348mm 30 20-130"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.850394 -1.835557 120.000000
- C 0 0 13.700787 0.000000 -13.700787 0.000000 30.000000
- A 11579568 0.053333 13.208661 0.000000 -13.700787 0.000000 30.000000
- A 11579568 0.053333 14.192913 0.000000 -13.700787 0.000000 30.000000
- END
-TURNOUT N "Kato Unitrack Curve 13.75R 348mm 45 20-132"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.687920 -4.012868 135.000000
- C 0 0 13.700787 0.000000 -13.700787 0.000000 45.000000
- A 11579568 0.053333 13.208661 0.000000 -13.700787 0.000000 45.000000
- A 11579568 0.053333 14.192913 0.000000 -13.700787 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack Curve 15R 381mm 30 20-140"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.500000 -2.009619 120.000000
- C 0 0 15.000000 0.000000 -15.000000 0.000000 30.000000
- A 11579568 0.053333 14.507874 0.000000 -15.000000 0.000000 30.000000
- A 11579568 0.053333 15.492126 0.000000 -15.000000 0.000000 30.000000
- END
-TURNOUT N "Kato Unitrack Curve 19R 481mm 15 20-160"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.901258 -0.645263 105.000000
- C 0 0 18.937008 -0.000000 -18.937008 0.000000 15.000000
- A 11579568 0.053333 18.444882 -0.000000 -18.937008 0.000000 15.000000
- A 11579568 0.053333 19.429134 -0.000000 -18.937008 0.000000 15.000000
- END
-TURNOUT N "Kato Unitrack Curve 28.25R 718mm 15 20-150"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.316223 -0.963199 105.000000
- C 0 0 28.267717 0.003000 -28.267717 0.000000 15.000000
- A 11579568 0.053333 27.775591 0.000000 -28.267717 0.000000 15.000000
- A 11579568 0.053333 28.759843 0.000000 -28.267717 0.000000 15.000000
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale Bumper Track
-TURNOUT N "Kato Unitrack Bumper A 2 1/2 64mm 20-033"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- S 0 0.000000 0.000000 0.000000 2.440944 0.000000
- L 11579568 0.053333 0.000000 0.492126 3.740157 0.492126
- L 11579568 0.053333 0.000000 -0.492126 3.740157 -0.492126
- L 11579568 0.053333 3.740157 0.492126 3.740157 -0.492126
- L 10824234 0.053333 2.520000 0.320227 3.186667 0.320227
- L 10824234 0.053333 3.186667 0.320227 3.186667 -0.346440
- L 10824234 0.053333 3.186667 -0.346440 2.520000 -0.346440
- L 10824234 0.053333 2.520000 -0.346440 2.520000 0.320227
- L 0 0.053333 2.720000 0.080227 2.866667 0.080227
- L 0 0.053333 2.866667 0.080227 2.866667 -0.106440
- L 0 0.053333 2.866667 -0.106440 2.720000 -0.106440
- L 0 0.053333 2.720000 -0.106440 2.720000 0.080227
- END
-TURNOUT N "Kato Unitrack Bumper B 2 1/2 64mm 20-034"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- S 0 0.000000 0.000000 0.000000 2.440944 0.000000
- L 11579568 0.053333 0.000000 0.492126 3.740157 0.492126
- L 11579568 0.053333 0.000000 -0.492126 3.740157 -0.492126
- L 11579568 0.053333 3.740157 0.492126 3.740157 -0.492126
- L 0 0.053333 2.720000 0.080227 2.866667 0.080227
- L 0 0.053333 2.866667 0.080227 2.866667 -0.106440
- L 0 0.053333 2.866667 -0.106440 2.720000 -0.106440
- L 0 0.053333 2.720000 -0.106440 2.720000 0.080227
- L 9127187 0.053333 2.520000 0.306893 3.226667 0.306893
- L 9127187 0.053333 3.226667 -0.333107 2.520000 -0.333107
- L 9127187 0.053333 2.520000 -0.333107 2.520000 0.306893
- L 11579568 0.053333 2.573333 0.253560 3.186667 0.253560
- L 11579568 0.053333 3.186667 0.253560 3.186667 -0.293107
- L 11579568 0.053333 3.186667 -0.293107 2.573333 -0.293107
- L 11579568 0.053333 2.573333 -0.293107 2.573333 0.253560
- END
-TURNOUT N "Kato Unitrack Bumper C 2 20-035"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- S 0 0.000000 0.000000 0.000000 1.338583 0.000000
- L 11579568 0.053333 0.000000 0.492126 1.968504 0.492126
- L 11579568 0.053333 0.000000 -0.492126 1.968504 -0.492126
- L 11579568 0.053333 1.968504 0.492126 1.968504 -0.492126
- L 0 0.053333 1.026667 0.080227 1.200000 0.080227
- L 0 0.053333 1.200000 0.080227 1.200000 -0.093107
- L 0 0.053333 1.200000 -0.093107 1.026667 -0.093107
- L 0 0.053333 1.026667 -0.093107 1.026667 0.080227
- L 0 0.053333 0.800000 0.080227 0.800000 -0.093107
- L 0 0.040000 0.826667 -0.066440 1.146667 -0.453107
- L 0 0.040000 0.826667 0.066893 1.160000 0.440227
- L 0 0.040000 0.826667 -0.093107 0.573333 -0.453107
- L 0 0.040000 0.840000 0.080227 0.586667 0.440227
- L 0 0.053333 0.746667 -0.106440 0.746667 0.106893
-END
-TURNOUT N "Kato Unitrack Bollard Bumper D 35mm 20-060"
-#new item
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- L 11579568 0.053333 0.000000 0.492126 1.377953 0.492126
- L 11579568 0.053333 0.000000 -0.492126 1.377953 -0.492126
- L 11579568 0.053333 1.377953 0.492126 1.377953 -0.492126
- L 0 0.053333 0.000000 0.350000 0.000000 -0.350000
- L 0 0.053333 0.000000 0.350000 0.450000 0.350000
- L 0 0.053333 0.000000 -0.350000 0.450000 -0.350000
- L 0 0.053333 0.320000 0.080227 0.466667 0.080227
- L 0 0.053333 0.466667 0.080227 0.466667 -0.106440
- L 0 0.053333 0.466667 -0.106440 0.320000 -0.106440
- L 0 0.053333 0.320000 -0.106440 0.320000 0.080227
-END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale Turnouts
-TURNOUT N "Kato Unitrack Turnout 150-R 20-240"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 4.881889 0.000000 90.000000
- E 4.175827 -1.729684 135.000000
- S 0 0 0.000000 0.000000 4.881889 0.000000
- C 0 0 5.905512 0.000000 -5.905512 0.000000 45.000000
- L 11579568 0.053333 0.000000 0.492126 4.881889 0.492126
- L 11579568 0.053333 3.380000 -0.492126 4.881889 -0.492126
- A 11579568 0.053333 5.413386 0.000000 -5.905512 0.000000 45.000000
- A 11579568 0.053333 6.397638 0.000000 -5.905512 32.500000 12.500000
- END
-TURNOUT N "Kato Unitrack Turnout 150-L 20-241"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 4.881889 0.000000 90.000000
- E 4.175827 1.729684 45.000000
- S 0 0 0.000000 0.000000 4.881889 0.000000
- C 0 0 5.905512 0.000000 5.905512 135.000000 45.000000
- L 11579568 0.053333 0.000000 -0.492126 4.881889 -0.492126
- L 11579568 0.053333 3.380000 0.492126 4.881889 0.492126
- A 11579568 0.053333 5.413386 0.000000 5.905512 135.000000 45.000000
- A 11579568 0.053333 6.397638 0.000000 5.905512 135.000000 12.500000
- END
-TURNOUT N "Kato Unitrack Turnout 4-L 20-220"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 4.960629 0.000000 90.000000
- E 4.881889 0.642713 75.000000
- S 0 0 0.000000 0.000000 4.960629 0.000000
- C 0 0 -18.862000 0.000000 18.862000 165.000000 15.000000
- L 11579568 0.053333 0.000000 -0.492126 4.960629 -0.492126
- A 11579568 0.053333 -18.369874 0.000000 18.862000 165.000000 15.000000
- END
-TURNOUT N "Kato Unitrack S60L {incl w/4} "
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.362204 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.362204 0.000000
- L 11579568 0.053333 0.000000 0.492126 2.362204 0.492126
- L 11579568 0.053333 0.000000 -0.492126 2.362204 -0.492126
- END
-TURNOUT N "Kato Unitrack Turnout 4-R 20-221"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 4.960629 0.000000 90.000000
- E 4.881889 -0.642713 105.000000
- S 0 0 0.000000 0.000000 4.960629 0.000000
- C 0 0 18.862000 0.000000 -18.862000 0.000000 15.000000
- L 11579568 0.053333 0.000000 0.492126 4.960629 0.492126
- A 11579568 0.053333 18.369874 0.000000 -18.862000 0.000000 15.000000
- END
-TURNOUT N "Kato Unitrack S60R {incl w/4} "
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.362204 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.362204 0.000000
- L 11579568 0.053333 0.000000 0.492126 2.362204 0.492126
- L 11579568 0.053333 0.000000 -0.492126 2.362204 -0.492126
- END
-TURNOUT N "Kato Unitrack Turnout 2-WYE 20-222"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 4.881889 0.642713 75.000000
- E 4.881889 -0.642713 105.000000
- C 0 0 -18.862000 0.000000 18.862000 165.000000 15.000000
- C 0 0 18.862000 0.000000 -18.862000 0.000000 15.000000
- A 11579568 0.053333 -18.416226 0.000000 18.862000 165.000000 15.000000
- A 11579568 0.053333 18.416226 0.000000 -18.862000 0.000000 15.000000
- L 11579568 0.053333 5.000000 0.200000 5.000000 -0.200000
- END
-TURNOUT N "Kato Unitrack Turnout 6-L 20-202"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 7.322834 0.000000 90.000000
- E 7.322834 0.964069 75.000000
- S 0 0 0.000000 0.000000 7.322834 0.000000
- C 0 0 -28.268000 0.000000 28.268000 165.0000000 15.000000
- L 11579568 0.053333 0.000000 -0.492126 7.322834 -0.492126
- A 11579568 0.053333 27.775874 0.000000 28.268000 165.000000 15.000000
- END
-TURNOUT N "Kato Unitrack Turnout 6-R 20-203"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 7.322834 0.000000 90.000000
- E 7.322834 -0.964069 105.000000
- S 0 0 0.000000 0.000000 7.322834 0.000000
- C 0 0 28.268000 0.000000 -28.268000 0.000000 15.000000
- L 11579568 0.053333 0.000000 0.492126 7.322834 0.492126
- A 11579568 0.053333 27.775874 0.000000 -28.268000 0.000000 15.000000
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale Crossings
-TURNOUT N "Kato Unitrack Double Crossover 20-210"
- P "Normal" 1 2 3 0 4 5 6
- P "Reverse" 1 7 8 9 6 0 4 10 11 12 3
- E 0.000000 0.000000 270.000000
- E 12.204724 0.000000 90.000000
- E 0.000000 -1.299212 270.000000
- E 12.204724 -1.299212 90.000000
- S 0 0 0.000000 0.000000 0.632000 0.000000
- S 0 0 0.632000 0.000000 11.555000 0.000000
- S 0 0 11.555000 0.000000 12.204724 0.000000
- S 0 0 0.000000 -1.299212 0.632000 -1.299212
- S 0 0 0.632000 -1.299212 11.555000 -1.299212
- S 0 0 11.555000 -1.299212 12.204724 -1.299212
- C 0 0 22.960000 0.631000 -22.960000 0.003000 12.880000
- S 0 0 5.750000 -0.578000 6.438000 -0.735000
- C 0 0 -22.960000 11.497000 21.661000 179.855000 12.874000
- C 0 0 -22.960000 0.691000 21.661000 167.271000 12.876000
- S 0 0 5.750000 -0.735000 6.438000 -0.578000
- C 0 0 22.960000 11.557000 -22.960000 347.117000 12.878000
- L 11579568 0.053333 0.000000 0.492126 12.204724 0.492126
- L 11579568 0.053333 0.000000 -0.492126 0.5 -0.492126
- L 11579568 0.053333 0.000000 -0.825878 0.5 -0.825878
- L 11579568 0.053333 0.5 -0.492126 0.5 -0.825878
- L 11579568 0.053333 12.204724 -0.492126 11.704724 -0.492126
- L 11579568 0.053333 12.204724 -0.825878 11.704724 -0.825878
- L 11579568 0.053333 11.704724 -0.492126 11.704724 -0.825878
- L 11579568 0.053333 0.000000 -1.772546 12.204724 -1.772546
- END
-TURNOUT N "Kato Unitrack Dbl Trk Single Crossover (left) 9.75 248mm 20-230"
- P "Normal" 1 2 0 3 4
- P "Reverse" 1 5 6 7 4
- E 0.000000 0.000000 270.000000
- E 9.763779 0.000000 90.000000
- E 0.000000 1.299212 270.000000
- E 9.763779 1.299212 90.000000
- S 0 0.000000 0.000000 0.000000 0.617287 0.000000
- S 0 0.000000 0.617287 0.000000 9.763779 0.000000
- S 0 0.000000 0.000000 1.299212 9.146492 1.299212
- S 0 0.000000 9.146492 1.299212 9.763779 1.299212
- C 0 0.000000 -14.226684 0.617306 14.226684 163.988842 16.011234
- S 0 0.000000 4.541371 0.551886 5.222408 0.747326
- C 0 0.000000 14.226684 9.146510 -12.927467 343.988842 16.011234
- L 11579568 0.053333 0.000000 -0.445774 9.763799 -0.445774
- L 11579568 0.053333 0.000000 1.744986 9.763799 1.744986
- END
-TURNOUT N "Kato Unitrack Dbl Trk Single Crossover (Right) 9.75 248mm 20-231"
- P "Normal" 1 2 0 3 4
- P "Reverse" 3 5 6 7 2
- E 0.000000 0.000000 270.000000
- E 9.763799 0.000000 90.000000
- E 0.000000 1.299212 270.000000
- E 9.763799 1.299212 90.000000
- S 0 0.000000 0.000000 0.000000 9.146512 0.000000
- S 0 0.000000 9.146512 0.000000 9.763799 0.000000
- S 0 0.000000 0.000000 1.299212 0.617287 1.299212
- S 0 0.000000 0.617287 1.299212 9.763799 1.299212
- C 0 0.000000 14.226749 0.617230 -12.927537 0.000076 16.011200
- S 0 0.000000 4.541380 0.747326 5.222419 0.551886
- C 0 0.000000 -14.226749 9.146530 14.226744 180.000076 16.011200
- L 11579568 0.053333 0.000000 -0.445774 9.763799 -0.445774
- L 11579568 0.053333 0.000000 1.744986 9.763799 1.744986
- END
-TURNOUT N "Kato Unitrack Crossing 15 X15R 20-301"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 7.322834 0.000000 90.000000
- E 0.000000 0.964069 285.000000
- E 7.322834 -0.964069 105.000000
- S 0 0 0.000000 0.000000 7.322834 0.000000
- S 0 0 0.000000 0.964069 7.322834 -0.964069
- L 11579568 0.053333 3.71 0.492126 7.322834 0.492126
- L 11579568 0.053333 0.000000 -0.492126 3.62 -0.492126
- L 11579568 0.053333 0.12 1.43 3.71 0.492126
- L 11579568 0.053333 7.20 -1.43 3.62 -0.492126
- END
-TURNOUT N "Kato Unitrack Crossing 15 X15L 20-300"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 7.322834 0.000000 90.000000
- E 0.000000 -0.964069 255.000000
- E 7.322834 0.964069 75.000000
- S 0 0 0.000000 0.000000 7.322834 0.000000
- S 0 0 0.000000 -0.964069 7.322834 0.964069
- L 11579568 0.053333 3.71 -0.492126 7.322834 -0.492126
- L 11579568 0.053333 0.000000 0.492126 3.62 0.492126
- L 11579568 0.053333 0.12 -1.43 3.71 -0.492126
- L 11579568 0.053333 7.20 1.43 3.62 0.492126
- END
-TURNOUT N "Kato Unitrack Crossing 90 w/S45.5 20-320"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 4.881889 0.000000 90.000000
- E 2.440944 2.440944 0.000000
- E 2.440944 -2.440944 180.000000
- S 0 0 0.000000 0.000000 4.881889 0.000000
- S 0 0 2.440944 2.440944 2.440944 -2.440944
- L 11579568 0.053333 0.000000 0.492126 1.967610 0.492126
- L 11579568 0.053333 0.000000 -0.492126 1.967610 -0.492126
- L 11579568 0.053333 2.914278 0.492126 4.881889 0.492126
- L 11579568 0.053333 2.914278 -0.492126 4.881889 -0.492126
- L 11579568 0.053333 1.967610 -2.440944 1.967610 -0.500000
- L 11579568 0.053333 2.914278 -2.440944 2.914278 -0.500000
- L 11579568 0.053333 1.967610 2.440944 1.967610 0.500000
- L 11579568 0.053333 2.914278 2.440944 2.914278 0.500000
- END
-TURNOUT N "Kato Unitrack Crossing 90 w/o S45.5 20-320"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 1.299212 0.000000 90.000000
- E 0.649606 0.649606 0.000000
- E 0.649606 -0.649606 180.000000
- S 0 0 0.000000 0.000000 1.299212 0.000000
- S 0 0 0.649606 0.649606 0.649606 -0.650000
- L 11579568 0.053333 0.000000 0.492126 0.176272 0.492126
- L 11579568 0.053333 0.000000 -0.492126 0.176272 -0.492126
- L 11579568 0.053333 1.122940 0.492126 1.299212 0.492126
- L 11579568 0.053333 1.122940 -0.492126 1.299212 -0.492126
- L 11579568 0.053333 0.176272 -0.649606 0.176272 -0.492126
- L 11579568 0.053333 1.122940 -0.649606 1.122940 -0.492126
- L 11579568 0.053333 0.176272 0.649606 0.176272 0.492126
- L 11579568 0.053333 1.122940 0.649606 1.122940 0.492126
- END
-TURNOUT N "Kato Unitrack S45.5 (incl w/20-320) "
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.791339 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.791339 0.000000
- L 11579568 0.053333 0.000000 0.492126 1.791339 0.492126
- L 11579568 0.053333 0.000000 -0.492126 1.791339 -0.492126
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale Single Track Viaducts - Straights
-TURNOUT N "Kato Unitrack Viaduct Straight 9.75 248mm 20-400"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.763779 0.000000 90.000000
- S 0 0 0.000000 0.000000 9.763779 0.000000
- L 0 0.053333 0.000000 0.47334 9.763799 0.47334
- L 0 0.053333 0.000000 -0.47334 9.763799 -0.47334
- END
-TURNOUT N "Kato Unitrack Viaduct Straight 7.312 186mm 20-410"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.322834 0.000000 90.000000
- S 0 0 0.000000 0.000000 7.322834 0.000000
- L 0 0.053333 0.000000 0.47334 7.322834 0.47334
- L 0 0.053333 0.000000 -0.47334 7.322834 -0.47334
- END
-TURNOUT N "Kato Unitrack Viaduct Straight 4.875 124mm 20-420"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.881889 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.881889 0.000000
- L 0 0.053333 0.000000 0.47334 4.881889 0.47334
- L 0 0.053333 0.000000 -0.47334 4.881889 -0.47334
- END
-TURNOUT N "Kato Unitrack Viaduct Straight(Platform) 4.875 124mm 20-421"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.881889 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.881889 0.000000
- L 0 0.053333 0.000000 0.47334 4.881889 0.47334
- L 0 0.053333 0.000000 -0.47334 4.881889 -0.47334
- L 0 0.040000 3.000000 -0.526440 3.000000 -0.826440
- L 0 0.040000 3.000000 -0.826440 1.900000 -0.826440
- L 0 0.040000 1.900000 -0.826440 1.900000 -0.526440
- END
-TURNOUT N "Kato Unitrack Viaduct Straight 2.4375 62mm 20-440"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.440944 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.440944 0.000000
- L 0 0.053333 0.000000 0.47334 2.440944 0.47334
- L 0 0.053333 0.000000 -0.47334 2.440944 -0.47334
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale Single Track Viaducts - Curves
-TURNOUT N "Kato Unitrack Viaduct Curve 9.75R 249mm 45 Curve 20-505"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.931874 -2.871276 135.000000
- C 0 0 9.803150 0.000000 -9.803150 0.000000 45.000000
- A 0 0.053333 9.329810 0.000000 -9.803150 0.000000 45.000000
- A 0 0.053333 10.276490 0.000000 -9.803150 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack Viaduct Curve 11R 282mm 45 20-510"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.850556 -3.251807 135.000000
- C 0 0 11.102362 0.000000 -11.102362 0.000000 45.000000
- A 0 0.053333 10.629022 0.000000 -11.102362 0.000000 45.000000
- A 0 0.053333 11.575702 0.000000 -11.102362 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack Viaduct Curve 12.375R 315mm 45 20-520"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.769238 -3.632337 135.000000
- C 0 0 12.401575 0.000000 -12.401575 0.000000 45.000000
- A 0 0.053333 11.928235 0.000000 -12.401575 0.000000 45.000000
- A 0 0.053333 12.874915 0.000000 -12.401575 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack Viaduct Curve 13.75R 348mm 45 20-530"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.687920 -4.012868 135.000000
- C 0 0 13.700787 0.000000 -13.700787 0.000000 45.000000
- A 0 0.053333 13.227447 0.000000 -13.700787 0.000000 45.000000
- A 0 0.053333 14.174127 0.000000 -13.700787 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack Viaduct Curve 13.75R 348mm 30 20-531"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.850394 -1.835557 120.000000
- C 0 0 13.700787 0.000000 -13.700787 0.000000 30.000000
- A 0 0.053333 13.227447 0.000000 -13.700787 0.000000 30.000000
- A 0 0.053333 14.174127 0.000000 -13.700787 0.000000 30.000000
- END
-TURNOUT N "Kato Unitrack Viaduct Curve 15R 381mm 30 20-540"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.500000 -2.009619 120.000000
- C 0 0 15.000000 0.000000 -15.000000 0.000000 30.000000
- A 0 0.053333 14.526660 0.000000 -15.000000 0.000000 30.000000
- A 0 0.053333 15.473340 0.000000 -15.000000 0.000000 30.000000
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale Double Track Viaducts - Straights
-TURNOUT N "Kato Unitrack Double Viaduct Straight 9.75 248mm 20-401"
- P "Normal" 1 0 2
- E 0.000000 0.649606 270.000000
- E 9.763779 0.649606 90.000000
- E 0.000000 -0.649606 270.000000
- E 9.763779 -0.649606 90.000000
- S 0 0 0.000000 0.649606 9.763779 0.649606
- S 0 0 0.000000 -0.649606 9.763779 -0.649606
- L 0 0.053333 0.000000 1.122946 9.763779 1.122946
- L 0 0.053333 0.000000 -1.122946 9.763779 -1.122946
- END
-TURNOUT N "Kato Unitrack Double Viaduct Straight 7 5/16 186mm 20-411"
- P "Normal" 1 0 2
- E 0.000000 0.649606 270.000000
- E 7.322834 0.649606 90.000000
- E 0.000000 -0.649606 270.000000
- E 7.322834 -0.649606 90.000000
- S 0 0 0.000000 0.649606 7.322834 0.649606
- S 0 0 0.000000 -0.649606 7.322834 -0.649606
- L 0 0.053333 0.000000 1.122946 7.322834 1.122946
- L 0 0.053333 0.000000 -1.122946 7.322834 -1.122946
- END
-TURNOUT N "Kato Unitrack Double Viaduct Straight 4.875 124mm 20-422"
- P "Normal" 1
- E 0.000000 0.649606 270.000000
- E 4.881889 0.649606 90.000000
- E 0.000000 -0.649606 270.000000
- E 4.881889 -0.649606 90.000000
- S 0 0 0.000000 0.649606 4.881889 0.649606
- S 0 0 0.000000 -0.649606 4.881889 -0.649606
- L 0 0.053333 0.000000 1.122946 4.881889 1.122946
- L 0 0.053333 0.000000 -1.122946 4.881889 -1.122946
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale CS Double Track Viaducts - Curves
-TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Viaduct Curve 16.3,15R 414/381mm 45 20-544"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 10.606602 -4.393398 135.000000
- E 0.000000 1.299213 270.000000
- E 11.525284 -3.474716 135.000000
- C 0 0 15.000000 0.000000 -15.000000 0.000000 45.000000
- C 0 0 16.299213 0.000000 -15.000000 0.000000 45.000000
- A 0 0.053333 14.526660 0.000000 -15.000000 0.000000 45.000000
- A 0 0.053333 16.772553 0.000000 -15.000000 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Viaduct Easement Curve (R) Appr 16.3/15R 414/381mm 22.5 20-545 Right"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 6.237438 -1.240704 112.500000
- E 0.000000 -1.299212 270.000000
- E 5.740251 -2.441019 112.500000
- C 0 0 16.299212 0.000000 -16.299212 0.000000 22.500000
- C 0 0 15.000000 0.000000 -16.299212 0.000000 22.500000
- A 11579568 0.053333 16.744986 0.000000 -16.299212 0.000000 22.500000
- A 11579568 0.053333 14.554226 0.000000 -16.299212 0.000000 22.500000
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Viaduct Easement Curve (L) Appr 16.3/15R 414/381mm 22.5 20-545 Left"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 6.237438 -1.240704 112.500000
- E 0.000000 -1.299212 270.000000
- E 5.740251 -2.441019 112.500000
- C 0 0 16.299212 0.000000 -16.299212 0.000000 22.500000
- C 0 0 15.000000 0.000000 -16.299212 0.000000 22.500000
- A 11579568 0.053333 16.744986 0.000000 -16.299212 0.000000 22.500000
- A 11579568 0.053333 14.554226 0.000000 -16.299212 0.000000 22.500000
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale GL CS Double Track - Straights
-TURNOUT N "Kato Unitrack CS Dbl Trk Straight 9.75 248mm 20-004"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 9.763799 0.000000 90.000000
- E 0.000000 -1.299212 270.000000
- E 9.763799 -1.299212 90.000000
- S 0 0 0.000000 0.000000 9.763799 0.000000
- S 0 0 0.000000 -1.299212 9.763799 -1.299212
- L 11579568 0.053333 0.000000 0.492126 9.763799 0.492126
- L 11579568 0.053333 0.000000 -1.744986 9.763799 -1.744986
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk Straight 7 5/16 186mm 20-012"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 7.322834 0.000000 90.000000
- E 0.000000 -1.299212 270.000000
- E 7.322834 -1.299212 90.000000
- S 0 0 0.000000 0.000000 7.322834 0.000000
- S 0 0 0.000000 -1.299212 7.322834 -1.299212
- L 11579568 0.053333 0.000000 0.492126 7.322834 0.492126
- L 11579568 0.053333 0.000000 -1.744986 7.322834 -1.744986
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk Straight 4 7/8 124mm 20-023"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 4.881889 0.000000 90.000000
- E 0.000000 -1.299212 270.000000
- E 4.881889 -1.299212 90.000000
- S 0 0 0.000000 0.000000 4.881889 0.000000
- S 0 0 0.000000 -1.299212 4.881889 -1.299212
- L 11579568 0.053333 0.000000 0.492126 4.881889 0.492126
- L 11579568 0.053333 0.000000 -1.744986 4.881889 -1.744986
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk Straight 2 7/16 62mm 20-042"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 2.440944 0.000000 90.000000
- E 0.000000 -1.299212 270.000000
- E 2.440944 -1.299212 90.000000
- S 0 0 0.000000 0.000000 2.440944 0.000000
- S 0 0 0.000000 -1.299212 2.440944 -1.299212
- L 11579568 0.053333 0.000000 0.492126 2.440944 0.492126
- L 11579568 0.053333 0.000000 -1.744986 2.440944 -1.744986
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk Feeder Track 62mm 20-043"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 2.440944 0.000000 90.000000
- E 0.000000 -1.299212 270.000000
- E 2.440944 -1.299212 90.000000
- S 0 0 0.000000 0.000000 2.440944 0.000000
- S 0 0 0.000000 -1.299212 2.440944 -1.299212
- L 11579568 0.053333 0.000000 0.492126 2.440944 0.492126
- L 11579568 0.053333 0.000000 -1.744986 2.440944 -1.744986
- L 0 0.026667 2.000000 -1.798086 2.000000 -1.998086
- L 0 0.026667 2.000000 -1.998086 2.100000 -2.098086
- L 0 0.026667 2.000000 -1.998086 1.900000 -2.098086
- L 16711680 0.026667 1.800000 -1.798086 1.800000 -1.998086
- L 16711680 0.026667 1.800000 -1.998086 1.900000 -2.098086
- L 16711680 0.026667 1.800000 -1.998086 1.700000 -2.098086
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale GL CS Double Track - Curves
-TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Curve 16.3/15R 414/381mm 45 20-181"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 11.525283 -4.773929 135.000000
- E 0.000000 -1.299212 270.000000
- E 10.606602 -5.692610 135.000000
- C 0 0 16.299212 0.000000 -16.299212 0.000000 45.000000
- C 0 0 15.000000 0.000000 -16.299212 0.000000 45.000000
- A 11579568 0.053333 16.744986 0.000000 -16.299212 0.000000 45.000000
- A 11579568 0.053333 14.554226 0.000000 -16.299212 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Easement Curve (R) Appr 16.3/15R 414/381mm 22.5 20-182 Right"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 6.237438 -1.240704 112.500000
- E 0.000000 -1.299212 270.000000
- E 5.740251 -2.441019 112.500000
- C 0 0 16.299212 0.000000 -16.299212 0.000000 22.500000
- C 0 0 15.000000 0.000000 -16.299212 0.000000 22.500000
- A 11579568 0.053333 16.744986 0.000000 -16.299212 0.000000 22.500000
- A 11579568 0.053333 14.554226 0.000000 -16.299212 0.000000 22.500000
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Easement Curve (L) Appr 16.3/15R 414/381mm 22.5 20-182 Left"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 6.237438 -1.240704 112.500000
- E 0.000000 -1.299212 270.000000
- E 5.740251 -2.441019 112.500000
- C 0 0 16.299212 0.000000 -16.299212 0.000000 22.500000
- C 0 0 15.000000 0.000000 -16.299212 0.000000 22.500000
- A 11579568 0.053333 16.744986 0.000000 -16.299212 0.000000 22.500000
- A 11579568 0.053333 14.554226 0.000000 -16.299212 0.000000 22.500000
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Curve 12.375/11R 315/282mm 45 20-183"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 0.000000 -1.299212 270.000000
- E 8.769238 -3.632337 135.000000
- E 7.850556 -4.551019 135.000000
- C 0 0 12.401575 0.000000 -12.401575 0.000000 45.000000
- C 0 0 11.102362 0.000000 -12.401575 0.000000 45.000000
- A 11579568 0.053333 12.847349 0.000000 -12.401575 0.000000 45.000000
- A 11579568 0.053333 10.656588 0.000000 -12.401575 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Easement Curve 12.375/11R 315/282mm 22.5 20-184 Right"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 0.000000 -1.299212 270.000000
- E 4.745877 -0.944014 112.500000
- E 4.248690 -2.144330 112.500000
- C 0 0 12.401575 0.000000 -12.401575 0.000000 22.500000
- C 0 0 11.102362 0.000000 -12.401575 0.000000 22.500000
- A 11579568 0.053333 12.847349 0.000000 -12.401575 0.000000 22.500000
- A 11579568 0.053333 10.656588 0.000000 -12.401575 0.000000 22.500000
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Easement Curve 12.375/11R 315/282mm 22.5 20-184 Left"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 0.000000 -1.299212 270.000000
- E 4.745877 -0.944014 112.500000
- E 4.248690 -2.144330 112.500000
- C 0 0 12.401575 0.000000 -12.401575 0.000000 22.500000
- C 0 0 11.102362 0.000000 -12.401575 0.000000 22.500000
- A 11579568 0.053333 12.847349 0.000000 -12.401575 0.000000 22.500000
- A 11579568 0.053333 10.656588 0.000000 -12.401575 0.000000 22.500000
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Curve 18.875/17.625R 480/447mm 45 20-185"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 13.362648 -5.534990 135.000000
- E 0.000000 -1.299212 270.000000
- E 12.443966 -6.453672 135.000000
- C 0 0 18.897638 0.000000 -18.897638 0.000000 45.000000
- C 0 0 17.598425 0.000000 -18.897638 0.000000 45.000000
- A 11579568 0.053333 19.343412 0.000000 -18.897638 0.000000 45.000000
- A 11579568 0.053333 17.152651 0.000000 -18.897638 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Easement Curve (R) Appr 18.875/17.625R 480/447mm 22.5 20-186 Right"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 7.231813 -1.438497 112.500000
- E 0.000000 -1.299212 270.000000
- E 6.734626 -2.638813 112.500000
- C 0 0 18.897638 0.000000 -18.897638 0.000000 22.500000
- C 0 0 17.598425 0.000000 -18.897638 0.000000 22.500000
- A 11579568 0.053333 19.343412 0.000000 -18.897638 0.000000 22.500000
- A 11579568 0.053333 17.152651 0.000000 -18.897638 0.000000 22.500000
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Easement Curve (L) Appr 18.875/17.625R 480/447mm 22.5 20-186 Left"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 7.231813 -1.438497 112.500000
- E 0.000000 -1.299212 270.000000
- E 6.734626 -2.638813 112.500000
- C 0 0 18.897638 0.000000 -18.897638 0.000000 22.500000
- C 0 0 17.598425 0.000000 -18.897638 0.000000 22.500000
- A 11579568 0.053333 19.343412 0.000000 -18.897638 0.000000 22.500000
- A 11579568 0.053333 17.152651 0.000000 -18.897638 0.000000 22.500000
- END
-
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale V-15 Double Track Widening Sections
-TURNOUT N "Kato Unitrack CS Dbl Trk Widening Section 310mm 20-051 Left"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 12.204724 0.000000 90.000000
- E 0.000000 1.299212 270.000000
- E 12.204724 2.598425 90.000000
- S 0 0 0.000000 0.000000 12.204724 0.000000
- S 0 0 0.000000 1.299212 0.980334 1.299212
- C 0 0 17.598425 0.980334 18.897637 169.500000 10.500000
- S 0 0 4.187392 1.593899 8.017332 2.303737
- C 0 0 17.598425 11.224390 -15.000001 349.500000 10.500000
- S 0 0 11.224390 2.598425 12.204724 2.598425
- L 11579568 0.053333 0.000000 -0.492126 12.204724 -0.492126
- L 11579568 0.053333 0.000000 1.744986 0.980334 1.744986
- A 11579568 0.053333 17.152651 0.980334 18.897637 169.500000 10.500000
- L 11579568 0.053333 4.187392 2.039673 8.017332 2.749511
- A 11579568 0.053333 18.044199 11.224390 -15.000001 349.500000 10.500000
- L 11579568 0.053333 11.224390 3.044199 12.204724 3.044199
- L 11579568 0.053333 11.704724 0.492126 12.204724 0.492126
- L 11579568 0.053333 11.704724 0.492126 11.704724 2.152651
- L 11579568 0.053333 11.704724 2.152651 12.204724 2.152651
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk Widening Section 310mm 20-052 Right"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 12.204724 0.000000 90.000000
- E 0.000000 -1.299212 270.000000
- E 12.204724 -2.598425 90.000000
- S 0 0 0.000000 0.000000 12.204724 0.000000
- S 0 0 0.000000 -1.299212 0.980334 -1.299212
- C 0 0 17.598425 0.980334 -18.897637 0.000000 10.500000
- S 0 0 4.187392 -1.593899 8.017332 -2.303737
- C 0 0 17.598425 11.224390 15.000001 180.000000 10.500000
- S 0 0 11.224390 -2.598425 12.204724 -2.598425
- L 11579568 0.053333 0.000000 0.492126 12.204724 0.492126
- L 11579568 0.053333 0.000000 -1.744986 0.980334 -1.744986
- A 11579568 0.053333 17.152651 0.980334 -18.897637 0.000000 10.500000
- L 11579568 0.053333 4.187392 -2.039673 8.017332 -2.749511
- A 11579568 0.053333 18.044199 11.224390 15.000001 180.000000 10.500000
- L 11579568 0.053333 11.224390 -3.044199 12.204724 -3.044199
- L 11579568 0.053333 11.704724 -0.492126 12.204724 -0.492126
- L 11579568 0.053333 11.704724 -0.492126 11.704724 -2.152651
- L 11579568 0.053333 11.704724 -2.152651 12.204724 -2.152651
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale Conc Sleeper Straight Track
-TURNOUT N "Kato Unitrack CS Trk Straight 9.75 248mm 20-875"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.763779 0.000000 90.000000
- S 0 0 0.000000 0.000000 9.763779 0.000000
- L 11579568 0.053333 0.000000 0.492126 9.763779 0.492126
- L 11579568 0.053333 0.000000 -0.492126 9.763779 -0.492126
- END
-TURNOUT N "Kato Unitrack CS Trk Straight 4 7/8 124mm 20-XXX"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.881889 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.881889 0.000000
- L 11579568 0.053333 0.000000 0.492126 4.881889 0.492126
- L 11579568 0.053333 0.000000 -0.492126 4.881889 -0.492126
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale Bridges
-TURNOUT N "Kato Unitrack Dbl. Track Truss Bridge 9.75 248mm 20-435/6/7/8"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 9.763779 0.000000 90.000000
- E 0.000000 -1.299212 270.000000
- E 9.763779 -1.299212 90.000000
- S 0 0 0.000000 0.000000 9.763779 0.000000
- S 0 0 0.000000 -1.299212 9.763779 -1.299212
- L 0 0.053333 0.000000 0.47334 9.763779 0.47334
- L 0 0.053333 0.000000 -1.772552 9.763779 -1.772552
- L 0 0.053333 1.220474 -1.772552 1.220474 0.47334
- L 0 0.053333 1.220474 -1.772552 2.440948 0.47334
- L 0 0.053333 2.440948 -1.772552 1.220474 0.47334
- L 0 0.053333 2.440948 -1.772552 2.440948 0.47334
- L 0 0.053333 2.440948 -1.772552 3.661422 0.47334
- L 0 0.053333 3.661422 -1.772552 2.440948 0.47334
- L 0 0.053333 3.661422 -1.772552 3.661422 0.47334
- L 0 0.053333 3.661422 -1.772552 4.881896 0.47334
- L 0 0.053333 4.881896 -1.772552 3.661422 0.47334
- L 0 0.053333 4.881896 -1.772552 4.881896 0.47334
- L 0 0.053333 4.881896 -1.772552 6.102370 0.47334
- L 0 0.053333 6.102370 -1.772552 4.881896 0.47334
- L 0 0.053333 6.102370 -1.772552 6.102370 0.47334
- L 0 0.053333 6.102370 -1.772552 7.322844 0.47334
- L 0 0.053333 7.322844 -1.772552 6.102370 0.47334
- L 0 0.053333 7.322844 -1.772552 7.322844 0.47334
- L 0 0.053333 7.322844 -1.772552 8.543318 0.47334
- L 0 0.053333 8.543318 -1.772552 7.322844 0.47334
- L 0 0.053333 8.543318 -1.772552 8.543318 0.47334
- END
-TURNOUT N "Kato Unitrack Single Track Truss Bridge 9.75 248mm 20-430/1/2/3/4"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.763779 0.000000 90.000000
- S 0 0 0.000000 0.000000 9.763779 0.000000
- L 0 0.053333 0.000000 0.47334 9.763779 0.47334
- L 0 0.053333 0.000000 -0.47334 9.763779 -0.47334
- L 0 0.053333 1.220474 -0.47334 1.220474 0.47334
- L 0 0.053333 1.220474 -0.47334 2.440948 0.47334
- L 0 0.053333 2.440948 -0.47334 1.220474 0.47334
- L 0 0.053333 2.440948 -0.47334 2.440948 0.47334
- L 0 0.053333 2.440948 -0.47334 3.661422 0.47334
- L 0 0.053333 3.661422 -0.47334 2.440948 0.47334
- L 0 0.053333 3.661422 -0.47334 3.661422 0.47334
- L 0 0.053333 3.661422 -0.47334 4.881896 0.47334
- L 0 0.053333 4.881896 -0.47334 3.661422 0.47334
- L 0 0.053333 4.881896 -0.47334 4.881896 0.47334
- L 0 0.053333 4.881896 -0.47334 6.102370 0.47334
- L 0 0.053333 6.102370 -0.47334 4.881896 0.47334
- L 0 0.053333 6.102370 -0.47334 6.102370 0.47334
- L 0 0.053333 6.102370 -0.47334 7.322844 0.47334
- L 0 0.053333 7.322844 -0.47334 6.102370 0.47334
- L 0 0.053333 7.322844 -0.47334 7.322844 0.47334
- L 0 0.053333 7.322844 -0.47334 8.543318 0.47334
- L 0 0.053333 8.543318 -0.47334 7.322844 0.47334
- L 0 0.053333 8.543318 -0.47334 8.543318 0.47334
- END
-TURNOUT N "Kato Unitrack Single Track Plate Grider Bridge 7 5/16 186mm 20-450/1/2/3/4"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.322834 0.000000 90.000000
- S 0 0 0.000000 0.000000 7.322834 0.000000
- L 0 0.053333 0.000000 0.47334 7.322834 0.47334
- L 0 0.053333 0.000000 -0.47334 7.322834 -0.47334
- END
-TURNOUT N "Kato Unitrack Double Track Plate Grider Bridge 7 5/16 186mm 20-455/6/7/8"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 7.322834 0.000000 90.000000
- E 0.000000 -1.299212 270.000000
- E 7.322834 -1.299212 90.000000
- S 0 0 0.000000 0.000000 7.322834 0.000000
- S 0 0 0.000000 -1.299212 7.322834 -1.299212
- L 0 0.053333 0.000000 0.47334 7.322834 0.47334
- L 0 0.053333 0.000000 -0.649606 7.322834 -0.649606
- L 0 0.053333 0.000000 -1.772552 7.322834 -1.772552
- END
-TURNOUT N "Kato Unitrack Deck Plate Grider Bridge 4 7/8 124mm 20-460/1/2/3/4"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.881889 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.881889 0.000000
- L 0 0.053333 0.000000 0.47334 4.881889 0.47334
- L 0 0.053333 0.000000 -0.47334 4.881889 -0.47334
- END
-TURNOUT N "Kato Unitrack Curve Deck Plate Grider Bridge 17 5/8 448mm 15d 20-823"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.564997 -0.600993 105.000000
- C 0 0 17.637795 0.000000 -17.637795 0.000000 15.000000
- A 0 0.053333 17.164455 0.000000 -17.637795 0.000000 15.000000
- A 0 0.053333 18.111135 0.000000 -17.637795 0.000000 15.000000
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale Structures
-STRUCTURE N "Kato Unitrack Pier 23-015"
- X pier 0.590551 "1" 0.984251 "2" 1.377952 "3" 1.771653 "4" 1.968503 "5"
- L 0 0.000000 -0.250000 -0.5 0.250000 -0.5
- L 0 0.000000 0.250000 -0.5 0.250000 0.5
- L 0 0.000000 0.250000 0.5 -0.250000 0.5
- L 0 0.000000 -0.250000 0.5 -0.250000 -0.5
- A 0 0.000000 0.250000 -0.000000 0.50000 270.000000 180.000000
- A 0 0.000000 0.250000 -0.000000 -0.50000 90.000000 180.000000
- END
-STRUCTURE N "Kato Unitrack Pier 23-016"
- X pier 1.968503 "5"
- L 7368826 0.040000 -0.75 -0.6 0.75 -0.6
- L 7368826 0.040000 0.75 -0.6 0.75 1.899212
- L 7368826 0.040000 0.75 1.899212 -0.75 1.899212
- L 7368826 0.040000 -0.75 1.899212 -0.75 -0.6
- END
-STRUCTURE N "Kato Unitrack Island Platform Type A 23-100"
- L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
- L 10824234 0.000000 0.000000 1.653543 9.763780 1.653543
- L 10824234 0.000000 9.763780 1.653543 9.763780 0.000000
- L 10824234 0.000000 9.763780 0.000000 0.000000 0.000000
- L 10824234 0.000000 0.000000 0.826772 9.763780 0.826772
- L 10824234 0.000000 0.787402 1.141732 5.157480 1.141732
- L 10824234 0.000000 5.157480 1.141732 5.157480 0.511811
- L 10824234 0.000000 5.157480 0.511811 0.787402 0.511811
- L 10824234 0.000000 0.787402 0.511811 0.787402 1.141732
- L 10824234 0.000000 2.952756 1.141732 2.952756 0.511811
- L 10824234 0.000000 0.078740 1.653543 0.078740 0.866142
- L 10824234 0.000000 0.157480 1.653543 0.157480 0.984252
- L 10824234 0.000000 0.236220 1.653543 0.236220 1.102362
- L 10824234 0.000000 0.314961 1.653543 0.314961 1.220472
- L 10824234 0.000000 0.393701 1.653543 0.393701 1.299213
- L 10824234 0.000000 0.472441 1.653543 0.472441 1.377953
- L 10824234 0.000000 0.551181 1.653543 0.551181 1.496063
- L 10824234 0.000000 0.629921 1.653543 0.629921 1.614173
- L 10824234 0.000000 9.685039 0.000000 9.685039 0.787402
- L 10824234 0.000000 9.606299 0.000000 9.606299 0.669291
- L 10824234 0.000000 9.527559 0.000000 9.527559 0.551181
- L 10824234 0.000000 9.448819 0.000000 9.448819 0.433071
- L 10824234 0.000000 9.370079 0.000000 9.370079 0.354331
- L 10824234 0.000000 9.291339 0.000000 9.291339 0.236220
- L 10824234 0.000000 9.212598 0.000000 9.212598 0.157480
- L 10824234 0.000000 9.133858 0.000000 9.133858 0.039370
- END
-STRUCTURE N "Kato Unitrack Island Platform Type B 23-101"
- L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
- L 10824234 0.000000 0.000000 1.653543 9.763780 1.653543
- L 10824234 0.000000 9.763780 1.653543 9.763780 0.000000
- L 10824234 0.000000 9.763780 0.000000 0.000000 0.000000
- L 10824234 0.000000 0.000000 0.826772 9.763780 0.826772
- L 10824234 0.000000 0.787402 1.141732 5.157480 1.141732
- L 10824234 0.000000 5.157480 1.141732 5.157480 0.511811
- L 10824234 0.000000 5.157480 0.511811 0.787402 0.511811
- L 10824234 0.000000 0.787402 0.511811 0.787402 1.141732
- L 10824234 0.000000 2.952756 1.141732 2.952756 0.511811
- L 10824234 0.000000 0.078740 1.653543 0.078740 0.866142
- L 10824234 0.000000 0.157480 1.653543 0.157480 0.984252
- L 10824234 0.000000 0.236220 1.653543 0.236220 1.102362
- L 10824234 0.000000 0.314961 1.653543 0.314961 1.220472
- L 10824234 0.000000 0.393701 1.653543 0.393701 1.299213
- L 10824234 0.000000 0.472441 1.653543 0.472441 1.377953
- L 10824234 0.000000 0.551181 1.653543 0.551181 1.496063
- L 10824234 0.000000 0.629921 1.653543 0.629921 1.614173
- L 10824234 0.000000 9.685039 0.000000 9.685039 0.787402
- L 10824234 0.000000 9.606299 0.000000 9.606299 0.669291
- L 10824234 0.000000 9.527559 0.000000 9.527559 0.551181
- L 10824234 0.000000 9.448819 0.000000 9.448819 0.433071
- L 10824234 0.000000 9.370079 0.000000 9.370079 0.354331
- L 10824234 0.000000 9.291339 0.000000 9.291339 0.236220
- L 10824234 0.000000 9.212598 0.000000 9.212598 0.157480
- L 10824234 0.000000 9.133858 0.000000 9.133858 0.039370
- END
-STRUCTURE N "Kato Unitrack Island Platform End, Type 1 23-102"
- L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
- L 10824234 0.000000 0.000000 0.000000 7.874016 0.000000
- L 10824234 0.000000 7.874016 0.000000 7.874016 1.653543
- L 10824234 0.000000 7.874016 1.653543 0.000000 1.653543
- L 10824234 0.000000 0.787402 1.653543 0.787402 0.000000
- L 10824234 0.000000 0.787402 0.629921 0.196850 0.629921
- L 10824234 0.000000 0.196850 0.629921 0.196850 0.984252
- L 10824234 0.000000 0.196850 0.984252 0.787402 0.984252
- L 10824234 0.000000 0.787402 0.984252 0.787402 0.629921
- L 10824234 0.000000 0.669291 0.629921 0.669291 0.984252
- L 10824234 0.000000 0.551181 0.629921 0.551181 0.984252
- L 10824234 0.000000 0.433071 0.629921 0.433071 0.984252
- L 10824234 0.000000 0.314961 0.629921 0.314961 0.984252
- L 0 0.026667 0.866142 1.614173 0.866142 0.039370
- A 0 0.026667 0.141951 5.196850 0.826772 0.000000 360.000000
- L 0 0.000000 3.031496 0.944882 4.606299 0.944882
- L 0 0.000000 4.606299 0.944882 4.606299 0.708661
- L 0 0.000000 4.606299 0.708661 3.031496 0.708661
- L 0 0.000000 3.031496 0.708661 3.031496 0.944882
- L 0 0.066667 3.543307 0.826772 4.094488 0.826772
- END
-STRUCTURE N "Kato Unitrack Island Platform End, Type 2 23-103"
- L 10824234 0.000000 7.874016 0.000000 7.874016 1.653543
- L 10824234 0.000000 7.874016 1.653543 0.000000 1.653543
- A 0 0.026667 0.141951 5.196850 0.826772 0.000000 360.000000
- L 0 0.000000 3.031496 0.944882 4.606299 0.944882
- L 0 0.000000 4.606299 0.944882 4.606299 0.708661
- L 0 0.000000 4.606299 0.708661 3.031496 0.708661
- L 0 0.000000 3.031496 0.708661 3.031496 0.944882
- L 0 0.066667 3.543307 0.826772 4.094488 0.826772
- A 10824234 0.000000 27.822226 7.874016 27.822226 180.000000 15.000000
- L 0 0.026667 0.866142 1.614173 0.866142 1.023622
- L 10824234 0.000000 0.196850 1.535433 0.196850 1.299213
- L 10824234 0.000000 0.669291 1.535433 0.669291 1.299213
- L 10824234 0.000000 0.551181 1.535433 0.551181 1.299213
- L 10824234 0.000000 0.433071 1.535433 0.433071 1.299213
- L 10824234 0.000000 0.314961 1.535433 0.314961 1.299213
- L 10824234 0.000000 0.196667 1.295000 0.670000 1.298333
- L 10824234 0.000000 0.193333 1.535000 0.670000 1.535000
- L 10824234 0.000000 0.670000 1.535000 0.670000 1.651667
- L 10824234 0.000000 0.670000 1.295833 0.670000 0.949167
- L 10824234 0.000000 0.673333 0.946667 0.000000 1.126667
- L 10824234 0.000000 0.006667 1.125000 0.000000 1.645000
- END
-STRUCTURE N "Kato Unitrack Island Platform End, Type 3 23-104"
- L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
- L 10824234 0.000000 0.000000 1.653543 7.874016 1.653543
- A 0 0.026667 0.141951 2.677166 0.826772 0.000000 360.000000
- L 0 0.000000 4.842520 0.944882 3.267717 0.944882
- L 0 0.000000 3.267717 0.944882 3.267717 0.708661
- L 0 0.000000 3.267717 0.708661 4.842520 0.708661
- L 0 0.000000 4.842520 0.708661 4.842520 0.944882
- L 0 0.066667 4.330709 0.826772 3.779528 0.826772
- A 10824234 0.000000 27.822226 0.000000 27.822226 165.000000 15.000000
- L 0 0.026667 7.007874 1.614173 7.007874 1.023622
- L 10824234 0.000000 7.677166 1.535433 7.677166 1.299213
- L 10824234 0.000000 7.204725 1.535433 7.204725 1.299213
- L 10824234 0.000000 7.322835 1.535433 7.322835 1.299213
- L 10824234 0.000000 7.440945 1.535433 7.440945 1.299213
- L 10824234 0.000000 7.559055 1.535433 7.559055 1.299213
- L 10824234 0.000000 7.677349 1.295000 7.204016 1.298333
- L 10824234 0.000000 7.680683 1.535000 7.204016 1.535000
- L 10824234 0.000000 7.204016 1.535000 7.204016 1.651667
- L 10824234 0.000000 7.204016 1.295833 7.204016 0.949167
- L 10824234 0.000000 7.200683 0.946667 7.874016 1.126667
- L 10824234 0.000000 7.867349 1.125000 7.874016 1.645000
- END
-STRUCTURE N "Kato Unitrack Island Platform Type D 23-106"
- L 10824234 0 0.000000 0.000000 0.000000 1.653543
- L 10824234 0 0.000000 1.653543 9.763780 1.653543
- L 10824234 0 9.763780 1.653543 9.763780 0.000000
- L 10824234 0 9.763780 0.000000 0.000000 0.000000
- END
-STRUCTURE N "Kato Unitrack One Sided Platform Type A 23-110"
- L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
- L 10824234 0.000000 0.000000 1.653543 9.763780 1.653543
- L 10824234 0.000000 9.763780 1.653543 9.763780 0.000000
- L 10824234 0.000000 9.763780 0.000000 0.000000 0.000000
- L 10824234 0.000000 5.157480 1.141732 5.157480 0.511811
- L 10824234 0.000000 0.078740 1.653543 0.078740 0.866142
- L 10824234 0.000000 0.157480 1.653543 0.157480 0.984252
- L 10824234 0.000000 0.236220 1.653543 0.236220 1.102362
- L 10824234 0.000000 0.314961 1.653543 0.314961 1.220472
- L 10824234 0.000000 0.393701 1.653543 0.393701 1.299213
- L 10824234 0.000000 0.472441 1.653543 0.472441 1.377953
- L 10824234 0.000000 0.551181 1.653543 0.551181 1.496063
- L 10824234 0.000000 0.629921 1.653543 0.629921 1.614173
- L 10824234 0.000000 9.685039 0.000000 9.685039 0.787402
- L 10824234 0.000000 9.606299 0.000000 9.606299 0.669291
- L 10824234 0.000000 9.527559 0.000000 9.527559 0.551181
- L 10824234 0.000000 9.448819 0.000000 9.448819 0.433071
- L 10824234 0.000000 9.370079 0.000000 9.370079 0.354331
- L 10824234 0.000000 9.291339 0.000000 9.291339 0.236220
- L 10824234 0.000000 9.212598 0.000000 9.212598 0.157480
- L 10824234 0.000000 9.133858 0.000000 9.133858 0.039370
- L 10824234 0.000000 1.181102 1.141732 8.582677 1.141732
- L 10824234 0.000000 8.582677 1.141732 8.582677 0.511811
- L 10824234 0.000000 8.582677 0.511811 1.181102 0.511811
- L 10824234 0.000000 1.181102 0.511811 1.181102 1.141732
- END
-STRUCTURE N "Kato Unitrack One Sided Platform Type B 23-111"
- L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
- L 10824234 0.000000 0.000000 1.653543 9.763780 1.653543
- L 10824234 0.000000 9.763780 1.653543 9.763780 0.000000
- L 10824234 0.000000 9.763780 0.000000 0.000000 0.000000
- L 10824234 0.000000 5.157480 1.141732 5.157480 0.511811
- L 10824234 0.000000 0.078740 1.653543 0.078740 0.866142
- L 10824234 0.000000 0.157480 1.653543 0.157480 0.984252
- L 10824234 0.000000 0.236220 1.653543 0.236220 1.102362
- L 10824234 0.000000 0.314961 1.653543 0.314961 1.220472
- L 10824234 0.000000 0.393701 1.653543 0.393701 1.299213
- L 10824234 0.000000 0.472441 1.653543 0.472441 1.377953
- L 10824234 0.000000 0.551181 1.653543 0.551181 1.496063
- L 10824234 0.000000 0.629921 1.653543 0.629921 1.614173
- L 10824234 0.000000 9.685039 0.000000 9.685039 0.787402
- L 10824234 0.000000 9.606299 0.000000 9.606299 0.669291
- L 10824234 0.000000 9.527559 0.000000 9.527559 0.551181
- L 10824234 0.000000 9.448819 0.000000 9.448819 0.433071
- L 10824234 0.000000 9.370079 0.000000 9.370079 0.354331
- L 10824234 0.000000 9.291339 0.000000 9.291339 0.236220
- L 10824234 0.000000 9.212598 0.000000 9.212598 0.157480
- L 10824234 0.000000 9.133858 0.000000 9.133858 0.039370
- L 10824234 0.000000 1.181102 1.141732 8.582677 1.141732
- L 10824234 0.000000 8.582677 1.141732 8.582677 0.511811
- L 10824234 0.000000 8.582677 0.511811 1.181102 0.511811
- L 10824234 0.000000 1.181102 0.511811 1.181102 1.141732
- END
-STRUCTURE N "Kato Unitrack One Sided Platform End Type 1 23-112"
- L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
- L 10824234 0.000000 0.000000 0.000000 7.874016 0.000000
- L 10824234 0.000000 7.874016 0.000000 7.874016 1.653543
- L 10824234 0.000000 7.874016 1.653543 0.000000 1.653543
- L 10824234 0.000000 0.787402 1.653543 0.787402 0.000000
- L 10824234 0.000000 0.787402 0.629921 0.196850 0.629921
- L 10824234 0.000000 0.196850 0.629921 0.196850 0.984252
- L 10824234 0.000000 0.196850 0.984252 0.787402 0.984252
- L 10824234 0.000000 0.787402 0.984252 0.787402 0.629921
- L 10824234 0.000000 0.669291 0.629921 0.669291 0.984252
- L 10824234 0.000000 0.551181 0.629921 0.551181 0.984252
- L 10824234 0.000000 0.433071 0.629921 0.433071 0.984252
- L 10824234 0.000000 0.314961 0.629921 0.314961 0.984252
- L 0 0.026667 0.866142 1.614173 0.866142 0.039370
- A 0 0.026667 0.141951 5.196850 0.826772 0.000000 360.000000
- L 0 0.000000 3.031496 0.944882 4.606299 0.944882
- L 0 0.000000 4.606299 0.944882 4.606299 0.708661
- L 0 0.000000 4.606299 0.708661 3.031496 0.708661
- L 0 0.000000 3.031496 0.708661 3.031496 0.944882
- L 0 0.066667 3.543307 0.826772 4.094488 0.826772
- L 0 0.026667 0.866142 1.614173 7.874016 1.614173
- END
-STRUCTURE N "Kato Unitrack One Sided Platform End Type 2 23-113"
- L 10824234 0.000000 7.874016 0.000000 7.874016 1.653543
- L 10824234 0.000000 7.874016 0.000000 0.000000 0.000000
- L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
- L 10824234 0.000000 0.000000 1.653543 7.874016 1.653543
- L 10824234 0.000000 7.086614 1.653543 7.086614 0.000000
- L 10824234 0.000000 7.086614 0.629921 7.677166 0.629921
- L 10824234 0.000000 7.677166 0.629921 7.677166 0.984252
- L 10824234 0.000000 7.677166 0.984252 7.086614 0.984252
- L 10824234 0.000000 7.086614 0.984252 7.086614 0.629921
- L 10824234 0.000000 7.204725 0.629921 7.204725 0.984252
- L 10824234 0.000000 7.322835 0.629921 7.322835 0.984252
- L 10824234 0.000000 7.440945 0.629921 7.440945 0.984252
- L 10824234 0.000000 7.559055 0.629921 7.559055 0.984252
- L 0 0.026667 7.007874 1.614173 7.007874 0.039370
- A 0 0.026667 0.141951 2.677166 0.826772 0.000000 360.000000
- L 0 0.000000 4.842520 0.944882 3.267717 0.944882
- L 0 0.000000 3.267717 0.944882 3.267717 0.708661
- L 0 0.000000 3.267717 0.708661 4.842520 0.708661
- L 0 0.000000 4.842520 0.708661 4.842520 0.944882
- L 0 0.066667 4.330709 0.826772 3.779528 0.826772
- L 0 0.026667 7.007874 1.614173 0.000000 1.614173
- END
-STRUCTURE N "Kato Unitrack Overhead Station 23-200"
- L 10824234 0.000000 0.000000 5.393701 13.307087 5.393701
- L 10824234 0.000000 12.952756 1.299213 3.188976 1.299213
- L 10824234 0.000000 3.188976 1.299213 3.188976 2.952756
- L 10824234 0.000000 3.188976 2.952756 12.952756 2.952756
- L 10824234 0.000000 12.952756 2.952756 12.952756 1.299213
- L 10824234 0.000000 12.165354 5.393701 12.165354 4.251969
- L 10824234 0.000000 1.102362 5.393701 1.102362 4.251969
- L 10824234 0.000000 7.874016 5.393701 7.874016 4.251969
- L 10824234 0.000000 5.511811 5.393701 5.511811 4.251969
- L 10824234 0.000000 7.913386 4.251969 7.913386 0.000000
- L 10824234 0.000000 7.913386 0.000000 2.716535 0.000000
- L 10824234 0.000000 2.716535 0.000000 2.716535 4.251969
- L 10824234 0.000000 7.795276 4.251969 7.795276 0.157480
- L 10824234 0.000000 7.795276 0.157480 4.330709 0.157480
- L 10824234 0.000000 4.330709 0.157480 4.330709 4.251969
- L 10824234 0.000000 4.330709 2.165354 7.795276 2.165354
- L 10824234 0.000000 13.307087 5.393701 13.307087 4.251969
- L 10824234 0.000000 0.000000 5.393701 0.000000 4.251969
- L 10824234 0.000000 7.952756 2.637795 11.574803 2.637795
- L 10824234 0.000000 11.574803 2.637795 11.574803 1.692913
- L 10824234 0.000000 11.574803 1.692913 7.952756 1.692913
- L 10824234 0.000000 10.866142 2.637795 10.866142 1.692913
- L 10824234 0.000000 10.118110 2.637795 10.118110 1.692913
- L 10824234 0.000000 0.000000 4.251969 4.330709 4.251969
- L 10824234 0.000000 4.330709 4.251969 7.795276 4.251969
- L 10824234 0.000000 7.874016 4.251969 13.267717 4.251969
- END
-STRUCTURE N "Kato Unitrack Station Entrance 23-210"
- L 10824234 0.000000 0.000000 0.000000 0.000000 2.874016
- L 10824234 0.000000 4.921260 0.000000 0.000000 0.000000
- L 10824234 0.000000 0.000000 1.417323 4.055118 1.417323
- L 10824234 0.000000 4.055118 2.874016 4.055118 0.000000
- L 10824234 0.000000 4.055118 1.574803 4.921260 1.574803
- L 10824234 0.000000 4.921260 1.574803 4.921260 0.000000
- L 10824234 0.000000 0.000000 2.874016 4.055118 2.874016
- L 10824234 0.000000 3.779528 0.000000 3.779528 1.299213
- L 10824234 0.000000 3.503937 0.000000 3.503937 1.181102
- L 10824234 0.000000 3.228346 0.000000 3.228346 1.062992
- L 10824234 0.000000 2.952756 0.000000 2.952756 0.944882
- L 10824234 0.000000 2.677165 0.000000 2.677165 0.826772
- L 10824234 0.000000 0.275591 2.874016 0.275591 1.535433
- L 10824234 0.000000 0.551181 2.874016 0.551181 1.692913
- L 10824234 0.000000 0.826772 2.874016 0.826772 1.811024
- L 10824234 0.000000 1.102362 2.874016 1.102362 1.929134
- L 10824234 0.000000 1.377953 2.874016 1.377953 2.047244
- L 10824234 0.000000 4.055118 0.039370 4.921260 0.039370
- L 10824234 0.000000 4.055118 1.535433 4.921260 1.535433
- L 10824234 0.000000 4.055118 0.275591 4.685039 0.275591
- L 10824234 0.000000 4.055118 0.511811 4.448819 0.511811
- L 10824234 0.000000 4.921260 1.299213 4.330709 1.299213
- L 10824234 0.000000 4.921260 1.062992 4.527559 1.062992
- END
-STRUCTURE N "Kato Unitrack Long Engine House 23-300"
- L 10824234 0.000000 0.000000 0.000000 0.000000 3.779528
- L 10824234 0.000000 0.000000 3.779528 7.362205 3.779528
- L 10824234 0.000000 7.362205 3.779528 7.362205 0.000000
- L 10824234 0.000000 7.362205 0.000000 0.000000 0.000000
- L 10824234 0.000000 0.275591 0.393701 0.787402 0.393701
- L 10824234 0.000000 0.787402 0.393701 0.787402 3.385827
- L 10824234 0.000000 0.787402 3.385827 0.275591 3.385827
- L 10824234 0.000000 0.275591 3.385827 0.275591 0.393701
- L 10824234 0.000000 1.062992 0.393701 1.574803 0.393701
- L 10824234 0.000000 1.574803 0.393701 1.574803 3.385827
- L 10824234 0.000000 1.574803 3.385827 1.062992 3.385827
- L 10824234 0.000000 1.062992 3.385827 1.062992 0.393701
- L 10824234 0.000000 1.850394 0.393701 2.362205 0.393701
- L 10824234 0.000000 2.362205 0.393701 2.362205 3.385827
- L 10824234 0.000000 2.362205 3.385827 1.850394 3.385827
- L 10824234 0.000000 1.850394 3.385827 1.850394 0.393701
- L 10824234 0.000000 2.637795 0.393701 3.149606 0.393701
- L 10824234 0.000000 3.149606 0.393701 3.149606 3.385827
- L 10824234 0.000000 3.149606 3.385827 2.637795 3.385827
- L 10824234 0.000000 2.637795 3.385827 2.637795 0.393701
- L 10824234 0.000000 3.425197 0.393701 3.937008 0.393701
- L 10824234 0.000000 3.937008 0.393701 3.937008 3.385827
- L 10824234 0.000000 3.937008 3.385827 3.425197 3.385827
- L 10824234 0.000000 3.425197 3.385827 3.425197 0.393701
- L 10824234 0.000000 4.212598 0.393701 4.724409 0.393701
- L 10824234 0.000000 4.724409 0.393701 4.724409 3.385827
- L 10824234 0.000000 4.724409 3.385827 4.212598 3.385827
- L 10824234 0.000000 4.212598 3.385827 4.212598 0.393701
- L 10824234 0.000000 5.000000 0.393701 5.511811 0.393701
- L 10824234 0.000000 5.511811 0.393701 5.511811 3.385827
- L 10824234 0.000000 5.511811 3.385827 5.000000 3.385827
- L 10824234 0.000000 5.000000 3.385827 5.000000 0.393701
- L 10824234 0.000000 5.787402 0.393701 6.299213 0.393701
- L 10824234 0.000000 6.299213 0.393701 6.299213 3.385827
- L 10824234 0.000000 6.299213 3.385827 5.787402 3.385827
- L 10824234 0.000000 5.787402 3.385827 5.787402 0.393701
- L 10824234 0.000000 6.574803 0.393701 7.086614 0.393701
- L 10824234 0.000000 7.086614 0.393701 7.086614 3.385827
- L 10824234 0.000000 7.086614 3.385827 6.574803 3.385827
- L 10824234 0.000000 6.574803 3.385827 6.574803 0.393701
- L 10824234 0.000000 0.275591 3.464567 0.472441 3.464567
- L 10824234 0.000000 0.472441 3.464567 0.472441 3.661417
- L 10824234 0.000000 0.472441 3.661417 0.275591 3.661417
- L 10824234 0.000000 0.275591 3.661417 0.275591 3.464567
- L 10824234 0.000000 0.275591 0.314961 0.472441 0.314961
- L 10824234 0.000000 0.472441 0.314961 0.472441 0.118110
- L 10824234 0.000000 0.472441 0.118110 0.275591 0.118110
- L 10824234 0.000000 0.275591 0.118110 0.275591 0.314961
- L 10824234 0.000000 7.086614 0.314961 6.889764 0.314961
- L 10824234 0.000000 6.889764 0.314961 6.889764 0.118110
- L 10824234 0.000000 6.889764 0.118110 7.086614 0.118110
- L 10824234 0.000000 7.086614 0.118110 7.086614 0.314961
- L 10824234 0.000000 7.086614 3.464567 6.889764 3.464567
- L 10824234 0.000000 6.889764 3.464567 6.889764 3.661417
- L 10824234 0.000000 6.889764 3.661417 7.086614 3.661417
- L 10824234 0.000000 7.086614 3.661417 7.086614 3.464567
- L 10824234 0.000000 3.582677 0.314961 3.779528 0.314961
- L 10824234 0.000000 3.779528 0.314961 3.779528 0.118110
- L 10824234 0.000000 3.779528 0.118110 3.582677 0.118110
- L 10824234 0.000000 3.582677 0.118110 3.582677 0.314961
- L 10824234 0.000000 3.582677 3.464567 3.779528 3.464567
- L 10824234 0.000000 3.779528 3.464567 3.779528 3.661417
- L 10824234 0.000000 3.779528 3.661417 3.582677 3.661417
- L 10824234 0.000000 3.582677 3.661417 3.582677 3.464567
- END
-STRUCTURE N "Kato Unitrack Industrial Building 23-310"
- L 10824234 0 0.000000 0.000000 0.000000 2.952756
- L 10824234 0 0.000000 2.952756 5.905512 2.952756
- L 10824234 0 5.905512 2.952756 5.905512 0.000000
- L 10824234 0 5.905512 0.000000 0.000000 0.000000
- END
-STRUCTURE N "Kato Unitrack Station Office 23-315a"
- L 10824234 0 0.000000 0.000000 0.000000 1.574803
- L 10824234 0 0.000000 1.574803 2.421260 1.574803
- L 10824234 0 2.421260 1.574803 2.421260 0.000000
- L 10824234 0 2.421260 0.000000 0.000000 0.000000
- END
-STRUCTURE N "Kato Unitrack Signal Tower 23-315b"
- L 10824234 0 0.000000 0.000000 0.000000 1.102362
- L 10824234 0 0.000000 1.102362 2.283465 1.102362
- L 10824234 0 2.283465 1.102362 2.283465 0.000000
- L 10824234 0 2.283465 0.000000 0.000000 0.000000
- END
-STRUCTURE N "Kato Unitrack Building 2x4 23-2x4"
- L 10824234 0 0.000000 0.000000 0.000000 2.000000
- L 10824234 0 0.000000 2.000000 4.000000 2.000000
- L 10824234 0 4.000000 2.000000 4.000000 0.000000
- L 10824234 0 4.000000 0.000000 0.000000 0.000000
- END
-STRUCTURE N "Kato Unitrack Building 4x5 23-4x5"
- L 10824234 0 0.000000 0.000000 0.000000 4.000000
- L 10824234 0 0.000000 4.000000 5.000000 4.000000
- L 10824234 0 5.000000 4.000000 5.000000 0.000000
- L 10824234 0 5.000000 0.000000 0.000000 0.000000
- END
-STRUCTURE N "Kato Unitrack Building 4x6 23-4x6"
- L 10824234 0 0.000000 0.000000 0.000000 4.000000
- L 10824234 0 0.000000 4.000000 6.000000 4.000000
- L 10824234 0 6.000000 4.000000 6.000000 0.000000
- L 10824234 0 6.000000 0.000000 0.000000 0.000000
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale Turntable and Accessories
-TURNOUT N "Kato Unitrack 3 Stall Round House 20-240"
- P "Normal" 1
- E -0.148334 1.695463 260.000000
- E 0.000000 0.000000 270.000000
- E -0.148334 -1.695463 280.000000
- S 0 0.000000 -0.148334 1.695463 7.063251 2.967059
- S 0 0.000000 0.000000 0.000000 7.322835 0.000000
- S 0 0.000000 -0.148334 -1.695463 7.063251 -2.967059
- F 12632256 0.000000 8
- -0.296668 2.536705 0
- 7.338100 4.582435 0
- 7.874016 1.543107 0
- 7.874016 -1.543107 0
- 7.338100 -4.582435 0
- -0.296668 -2.536705 0
- 0.000000 -0.854220 0
- 0.000000 0.854220 0
- G 0 0.000000 0.200000 0.750000 0.000000 0
- G 0 0.000000 0.200000 7.125000 0.000000 0
- G 0 0.000000 0.200000 0.590272 1.825699 0
- G 0 0.000000 0.200000 6.868421 2.932706 0
- G 0 0.000000 0.200000 0.590272 -1.825699 0
- G 0 0.000000 0.200000 6.868421 -2.932706 0
- L 0 0.031250 -0.296668 2.536705 7.338100 4.582435
- L 0 0.031250 0.000000 0.854220 7.874016 1.543107
- L 0 0.031250 0.000000 -0.854220 7.874016 -1.543107
- L 0 0.031250 -0.296668 -2.536705 7.338100 -4.582435
- L 0 0.031250 0.000000 0.854220 -0.296668 2.536705
- L 0 0.031250 0.000000 0.854220 0.000000 -0.854220
- L 0 0.031250 0.000000 -0.854220 -0.296668 -2.536705
- L 0 0.031250 7.874016 1.543107 7.338100 4.582435
- L 0 0.031250 7.874016 1.543107 7.874016 -1.543107
- L 0 0.031250 7.874016 -1.543107 7.338100 -4.582435
-END
-TURNOUT N "Kato Unitrack 139.5mm Straight Extension Line 20-285"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.492126 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 5.492126 0.000000
- L 0 0.031250 0.000000 0.372299 5.492126 0.854220
- L 0 0.031250 0.000000 -0.372299 5.492126 -0.854220
- L 0 0.031250 5.492126 0.854220 5.492126 -0.854220
-END
-TURNOUT N "Kato Unitrack Curve (L) Extension Line 20-286L"
- P "Normal" 1 2 3
- E 0.000000 0.000000 270.000000
- E 5.569398 -0.415987 100.000000
- S 0 0.000000 0.000000 0.000000 0.935511 0.000000
- C 0 0 26.000000 0.935511 -26.000000 0.000000 10.000000
- S 0 0.000000 5.450363 -0.394998 5.569398 -0.415987
- L 0 0.031250 0.000000 0.372299 5.492126 0.854220
- L 0 0.031250 0.000000 -0.372299 5.492126 -0.854220
- L 0 0.031250 5.642748 0.000000 5.492126 -0.854220
- L 0 0.031250 5.642748 0.000000 5.492126 0.854220
-END
-TURNOUT N "Kato Unitrack Curve (R) Extension Line 20-286R"
- P "Normal" 1 2 3
- E 0.000000 0.000000 270.000000
- E 5.569398 0.415987 80.000000
- S 0 0.000000 0.000000 0.000000 0.935511 0.000000
- C 0 0 -26.000000 0.935511 26.000000 170.000000 10.000000
- S 0 0.000000 5.450363 0.394998 5.569398 0.415987
- L 0 0.031250 0.000000 -0.372299 5.492126 -0.854220
- L 0 0.031250 0.000000 0.372299 5.492126 0.854220
- L 0 0.031250 5.642748 0.000000 5.492126 -0.854220
- L 0 0.031250 5.642748 0.000000 5.492126 0.854220
-END
-TURNOUT N "Kato Unitrack Curve 15R 381mm 10 381-10"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.604723 -0.227884 100.000000
- C 0 0 15.000000 0.000000 -15.000000 0.000000 10.000000
- A 11579568 0.053333 14.554226 0.000000 -15.000000 0.000000 10.000000
- A 11579568 0.053333 15.445774 0.000000 -15.000000 0.000000 10.000000
-END
-TURNOUT N "Kato Unitrack Track Turntable Section 20-283A"
- P "Normal" 1
- E 3.101756 0.546923 260.000000
- E 4.206758 0.741765 80.000000
- E 3.149606 0.000000 270.000000
- E 4.271654 0.000000 90.000000
- E 3.101756 -0.546923 280.000000
- E 4.206758 -0.741765 100.000000
- S 0 0.000000 3.101756 0.546923 4.206758 0.741765
- S 0 0.000000 3.149606 0.000000 4.271654 0.000000
- S 0 0.000000 3.101756 -0.546923 4.206758 -0.741765
- A 11579568 0.031250 3.149606 0.000000 0.000000 75.000000 30.00000
- A 11579568 0.031250 4.271654 0.000000 0.000000 75.000000 30.000000
- L 0 0.031250 3.042286 0.815178 4.126100 1.105585
- L 0 0.031250 3.042286 -0.815178 4.126100 -1.105585
-END
-TURNOUT N "Kato Unitrack 160mm Turn Table 20-283"
- P "1" 1
- P "2" 2
- P "3" 3
- P "4" 4
- P "5" 5
- P "6" 6
- P "7" 7
- P "8" 8
- P "9" 9
- P "10" 10
- P "11" 11
- P "12" 12
- P "13" 13
- P "14" 14
- P "15" 15
- P "16" 16
- P "17" 17
- P "18" 18
- E 0.000000 0.000000 0.000000
- E 0.000000 3.149606 0.000000
- E 0.546923 3.101757 10.000000
- E 1.077229 2.959662 20.000000
- E 1.574803 2.727639 30.000000
- E 2.024528 2.412738 40.000000
- E 2.412738 2.024528 50.000000
- E 2.727639 1.574803 60.000000
- E 2.959662 1.077229 70.000000
- E 3.101757 0.546923 80.000000
- E 3.149606 0.000000 90.000000
- E 3.101757 -0.546923 100.000000
- E 2.959662 -1.077229 110.000000
- E 2.727639 -1.574803 120.000000
- E 2.412738 -2.024528 130.000000
- E 2.024528 -2.412738 140.000000
- E 1.574803 -2.727639 150.000000
- E 1.077229 -2.959662 160.000000
- E 0.546923 -3.101757 170.000000
- E 0.000000 -3.149606 180.000000
- E -0.546923 -3.101757 190.000000
- E -1.077229 -2.959662 200.000000
- E -1.574803 -2.727639 210.000000
- E -2.024528 -2.412738 220.000000
- E -2.412738 -2.024528 230.000000
- E -2.727639 -1.574803 240.000000
- E -2.959662 -1.077229 250.000000
- E -3.101757 -0.546923 260.000000
- E -3.149606 0.000000 270.000000
- E -3.101757 0.546923 280.000000
- E -2.959662 1.077229 290.000000
- E -2.727639 1.574803 300.000000
- E -2.412738 2.024528 310.000000
- E -2.024528 2.412738 320.000000
- E -1.574803 2.727639 330.000000
- E -1.077229 2.959662 340.000000
- E -0.546923 3.101757 350.000000
- S 16777215 0.000000 0.000000 3.149606 0.000000 -3.149606
- S 16777215 0.000000 0.546923 3.101757 -0.546923 -3.101757
- S 16777215 0.000000 1.077229 2.959662 -1.077229 -2.959662
- S 16777215 0.000000 1.574803 2.727639 -1.574803 -2.727639
- S 16777215 0.000000 2.024528 2.412738 -2.024528 -2.412738
- S 16777215 0.000000 2.412738 2.024528 -2.412738 -2.024528
- S 16777215 0.000000 2.727639 1.574803 -2.727639 -1.574803
- S 16777215 0.000000 2.959662 1.077229 -2.959662 -1.077229
- S 16777215 0.000000 3.101757 0.546923 -3.101757 -0.546923
- S 16777215 0.000000 3.149606 0.000000 -3.149606 0.000000
- S 16777215 0.000000 3.101757 -0.546923 -3.101757 0.546923
- S 16777215 0.000000 2.959662 -1.077229 -2.959662 1.077229
- S 16777215 0.000000 2.727639 -1.574803 -2.727639 1.574803
- S 16777215 0.000000 2.412738 -2.024528 -2.412738 2.024528
- S 16777215 0.000000 2.024528 -2.412738 -2.024528 2.412738
- S 16777215 0.000000 1.574803 -2.727639 -1.574803 2.727639
- S 16777215 0.000000 1.077229 -2.959662 -1.077229 2.959662
- S 16777215 0.000000 0.546923 -3.101757 -0.546923 3.101757
- A 11579568 0.031250 3.149606 0.000000 0.000000 0.000000 360.000000
- A 11579568 0.031250 4.271654 0.000000 0.000000 0.000000 360.000000
-END
+CONTENTS Kato Unitrack N-Scale
+#
+#
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale Straight Track
+TURNOUT N "Kato Unitrack Straight 9.75 248mm 20-000"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.763779 0.000000 90.000000
+ S 0 0 0.000000 0.000000 9.763779 0.000000
+ L 11579568 0.053333 0.000000 0.492126 9.763779 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 9.763779 -0.492126
+ END
+TURNOUT N "Kato Unitrack Straight 7 5/16 186mm 20-010"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.322834 0.000000 90.000000
+ S 0 0 0.000000 0.000000 7.322834 0.000000
+ L 11579568 0.053333 0.000000 0.492126 7.322834 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 7.322834 -0.492126
+ END
+TURNOUT N "Kato Unitrack Straight 4 7/8 124mm 20-020"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.881889 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.881889 0.000000
+ L 11579568 0.053333 0.000000 0.492126 4.881889 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 4.881889 -0.492126
+ END
+TURNOUT N "Kato Unitrack Straight 2 1/2 64mm 20-030"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.519685 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.519685 0.000000
+ L 11579568 0.053333 0.000000 0.492126 2.519685 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 2.519685 -0.492126
+ END
+TURNOUT N "Kato Unitrack Straight 2 7/16 62mm 20-040"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.440944 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.440944 0.000000
+ L 11579568 0.053333 0.000000 0.492126 2.440944 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 2.440944 -0.492126
+ END
+TURNOUT N "Kato Unitrack Straight 1 3/4 45-5mm 20-091A"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.791339 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.791339 0.000000
+ L 11579568 0.053333 0.000000 0.492126 1.791339 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 1.791339 -0.492126
+ END
+TURNOUT N "Kato Unitrack Straight 1 1/8 29mm 20-091B"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.141732 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.141732 0.000000
+ L 11579568 0.053333 0.000000 0.492126 1.141732 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 1.141732 -0.492126
+ END
+TURNOUT N "Kato Unitrack Straight 1 19/64 33mm 20-092A"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.299213 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.299213 0.000000
+ L 11579568 0.053333 0.000000 0.492126 1.299213 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 1.299213 -0.492126
+ END
+TURNOUT N "Kato Unitrack Straight 1 1/2 38mm 20-092B"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.496063 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.496063 0.000000
+ L 11579568 0.053333 0.000000 0.492126 1.496063 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 1.496063 -0.492126
+ END
+TURNOUT N "Kato Unitrack Road Crossing 124mm 20-021"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.881889 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 4.881889 0.000000
+ L 11579568 0.053333 0.000000 0.4921260 4.881889 0.4921260
+ L 11579568 0.053333 0.000000 -0.4921260 4.881889 -0.4921260
+ L 0 0.053333 0.500000 0.548560 4.375000 0.548560
+ L 0 0.053333 4.375000 0.548560 4.375000 -0.576440
+ L 0 0.053333 4.375000 -0.576440 0.500000 -0.576440
+ L 0 0.053333 0.500000 -0.576440 0.500000 0.548560
+ L 0 0.053333 1.466667 0.133560 1.000000 -0.013107
+ L 0 0.053333 1.440000 -0.133107 1.000000 -0.026440
+ L 0 0.053333 1.440000 0.120227 3.320000 0.120227
+ L 0 0.053333 1.453333 -0.133107 3.306667 -0.119773
+ L 0 0.053333 3.306667 0.120227 3.626667 0.000227
+ L 0 0.053333 3.293333 -0.119773 3.600000 0.000227
+ END
+TURNOUT N "Kato Unitrack Mag Uncoupler 64mm 20-032"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.519685 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 2.519685 0.000000
+ L 11579568 0.053333 0.000000 0.4921260 2.519685 0.4921260
+ L 11579568 0.053333 0.000000 -0.4921260 2.519685 -0.4921260
+ L 0 0.053333 0.253333 0.133560 2.280000 0.133560
+ L 0 0.053333 2.280000 0.133560 2.280000 -0.146440
+ L 0 0.053333 2.280000 -0.146440 0.253333 -0.146440
+ L 0 0.053333 0.253333 -0.146440 0.253333 0.133560
+ END
+TURNOUT N "Kato Unitrack Feeder Track 62mm 20-041"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.440944 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.440944 0.000000
+ L 11579568 0.053333 0.000000 0.492126 2.440944 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 2.440944 -0.492126
+ L 0 0.026667 2.000000 -0.498874 2.000000 -0.698874
+ L 0 0.026667 2.000000 -0.698874 2.100000 -0.798874
+ L 0 0.026667 2.000000 -0.698874 1.900000 -0.798874
+ L 16711680 0.026667 1.800000 -0.498874 1.800000 -0.698874
+ L 16711680 0.026667 1.800000 -0.698874 1.900000 -0.798874
+ L 16711680 0.026667 1.800000 -0.698874 1.700000 -0.798874
+ END
+TURNOUT N "Kato Unitrack Snap Tk. Conv. Tk. 62mm 20-045"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.440944 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.440944 0.000000
+ L 11579568 0.053333 0.000000 0.492126 2.440944 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 2.440944 -0.492126
+ END
+TURNOUT N "Kato Unitrack 78-108mm Adjustable 20-050"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.070866 0.000000 90.000000
+ X adjustable 3.070866 4.251968
+ S 0 0 0.000000 0.000000 3.070866 0.000000
+ L 11579568 0.053333 0.000000 0.492126 3.070866 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 3.070866 -0.492126
+ END
+TURNOUT N "Kato Unitrack 3-Color Signal 4 7/8 124mm 20-605-1"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.881889 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.881889 0.000000
+ L 11579568 0.053333 0.000000 0.492126 4.881889 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 4.881889 -0.492126
+ F 11579568 0.000000 4
+ 1.948819 0.492126 0
+ 1.948819 0.992126 0
+ 2.948819 0.992126 0
+ 2.948819 0.492126 0
+ G 0 0.053333 0.100000 2.448819 0.742126 0
+ END
+TURNOUT N "Kato Unitrack Ash Pit Track 7 5/16 186mm 20-015"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.322834 0.000000 90.000000
+ S 0 0 0.000000 0.000000 7.322834 0.000000
+ L 11579568 0.053333 0.000000 0.492126 7.322834 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 7.322834 -0.492126
+ F 11579568 0.000000 4
+ 0.500000 0.150000 0
+ 6.822834 0.150000 0
+ 6.822834 -0.150000 0
+ 0.500000 -0.150000 0
+ END
+TURNOUT N "Kato Unitrack Open Pit Track 7 5/16 186mm 20-016"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.322834 0.000000 90.000000
+ S 0 0 0.000000 0.000000 7.322834 0.000000
+ L 11579568 0.053333 0.000000 0.492126 7.322834 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 7.322834 -0.492126
+ F 11579568 0.000000 4
+ 0.500000 0.150000 0
+ 6.822834 0.150000 0
+ 6.822834 -0.150000 0
+ 0.500000 -0.150000 0
+ END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale Curved Track
+TURNOUT N "Kato Unitrack Curve 4.625R 117mm 45° 20-176"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.257145 -1.349154 135.000000
+ C 0 0 4.606299 0.000000 -4.606299 0.000000 45.000000
+ A 11579568 0.053333 4.114173 0.000000 -4.606299 0.000000 45.000000
+ A 11579568 0.053333 5.098425 0.000000 -4.606299 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack Curve 5.905R 150mm 45° 20-174"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.175827 -1.729684 135.000000
+ C 0 0 5.905512 0.000000 -5.905512 0.000000 45.000000
+ A 11579568 0.053333 5.413386 0.000000 -5.905512 0.000000 45.000000
+ A 11579568 0.053333 6.397638 0.000000 -5.905512 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack Curve 7.204R 183mm 45° 20-172"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.094509 -2.110215 135.000000
+ C 0 0 7.204724 0.000000 -7.204724 0.000000 45.000000
+ A 11579568 0.053333 6.712598 0.000000 -7.204724 0.000000 45.000000
+ A 11579568 0.053333 7.696850 0.000000 -7.204724 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack Curve 8.56R 216mm 45° 20-170"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.013192 -2.490745 135.000000
+ C 0 0 8.503937 0.000000 -8.503937 0.000000 45.000000
+ A 11579568 0.053333 8.011811 0.000000 -8.503937 0.000000 45.000000
+ A 11579568 0.053333 8.996063 0.000000 -8.503937 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack Curve 8.56R 216mm 15° 20-171"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.200981 -0.289765 105.000000
+ C 0 0 8.503937 0.000000 -8.503937 0.000000 15.000000
+ A 11579568 0.053333 8.011811 0.000000 -8.503937 0.000000 15.000000
+ A 11579568 0.053333 8.996063 0.000000 -8.503937 0.000000 15.000000
+ END
+TURNOUT N "Kato Unitrack Curve 9.75R 249mm 45° 20-100"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.931874 -2.871276 135.000000
+ C 0 0 9.803150 0.000000 -9.803150 0.000000 45.000000
+ A 11579568 0.053333 9.311024 0.000000 -9.803150 0.000000 45.000000
+ A 11579568 0.053333 10.295276 0.000000 -9.803150 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack Curve 9.75R 249mm 15° 20-101"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.537242 -0.334034 105.000000
+ C 0 0 9.803150 0.000000 -9.803150 0.000000 15.000000
+ A 11579568 0.053333 9.311024 0.000000 -9.803150 0.000000 15.000000
+ A 11579568 0.053333 10.295276 0.000000 -9.803150 0.000000 15.000000
+ END
+TURNOUT N "Kato Unitrack Curve 11R 282mm 45° 20-110"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.850556 -3.251807 135.000000
+ C 0 0 11.102362 0.000000 -11.102362 0.000000 45.000000
+ A 11579568 0.053333 10.610236 0.000000 -11.102362 0.000000 45.000000
+ A 11579568 0.053333 11.594488 0.000000 -11.102362 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack Curve 11R 282mm 15° 20-111"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.873503 -0.378304 105.000000
+ C 0 0 11.102362 0.000000 -11.102362 0.000000 15.000000
+ A 11579568 0.053333 10.610236 0.000000 -11.102362 0.000000 15.000000
+ A 11579568 0.053333 11.594488 0.000000 -11.102362 0.000000 15.000000
+ END
+TURNOUT N "Kato Unitrack Curve 12.375R 315mm 45° 20-120"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.769238 -3.632337 135.000000
+ C 0 0 12.401575 0.000000 -12.401575 0.000000 45.000000
+ A 11579568 0.053333 11.909449 0.000000 -12.401575 0.000000 45.000000
+ A 11579568 0.053333 12.893701 0.000000 -12.401575 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack Curve 12.375R 315mm 15° 20-121"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.209764 -0.422573 105.000000
+ C 0 0 12.401575 0.000000 -12.401575 0.000000 15.000000
+ A 11579568 0.053333 11.909449 0.000000 -12.401575 0.000000 15.000000
+ A 11579568 0.053333 12.893701 0.000000 -12.401575 0.000000 15.000000
+ END
+TURNOUT N "Kato Unitrack Curve 13.75R 348mm 30° 20-130"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.850394 -1.835557 120.000000
+ C 0 0 13.700787 0.000000 -13.700787 0.000000 30.000000
+ A 11579568 0.053333 13.208661 0.000000 -13.700787 0.000000 30.000000
+ A 11579568 0.053333 14.192913 0.000000 -13.700787 0.000000 30.000000
+ END
+TURNOUT N "Kato Unitrack Curve 13.75R 348mm 45° 20-132"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.687920 -4.012868 135.000000
+ C 0 0 13.700787 0.000000 -13.700787 0.000000 45.000000
+ A 11579568 0.053333 13.208661 0.000000 -13.700787 0.000000 45.000000
+ A 11579568 0.053333 14.192913 0.000000 -13.700787 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack Curve 15R 381mm 30° 20-140"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.500000 -2.009619 120.000000
+ C 0 0 15.000000 0.000000 -15.000000 0.000000 30.000000
+ A 11579568 0.053333 14.507874 0.000000 -15.000000 0.000000 30.000000
+ A 11579568 0.053333 15.492126 0.000000 -15.000000 0.000000 30.000000
+ END
+TURNOUT N "Kato Unitrack Curve 19R 481mm 15° 20-160"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.901258 -0.645263 105.000000
+ C 0 0 18.937008 -0.000000 -18.937008 0.000000 15.000000
+ A 11579568 0.053333 18.444882 -0.000000 -18.937008 0.000000 15.000000
+ A 11579568 0.053333 19.429134 -0.000000 -18.937008 0.000000 15.000000
+ END
+TURNOUT N "Kato Unitrack Curve 28.25R 718mm 15° 20-150"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.316223 -0.963199 105.000000
+ C 0 0 28.267717 0.003000 -28.267717 0.000000 15.000000
+ A 11579568 0.053333 27.775591 0.000000 -28.267717 0.000000 15.000000
+ A 11579568 0.053333 28.759843 0.000000 -28.267717 0.000000 15.000000
+ END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale Bumper Track
+TURNOUT N "Kato Unitrack Bumper A 2 1/2 64mm 20-033"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ S 0 0.000000 0.000000 0.000000 2.440944 0.000000
+ L 11579568 0.053333 0.000000 0.492126 3.740157 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 3.740157 -0.492126
+ L 11579568 0.053333 3.740157 0.492126 3.740157 -0.492126
+ L 10824234 0.053333 2.520000 0.320227 3.186667 0.320227
+ L 10824234 0.053333 3.186667 0.320227 3.186667 -0.346440
+ L 10824234 0.053333 3.186667 -0.346440 2.520000 -0.346440
+ L 10824234 0.053333 2.520000 -0.346440 2.520000 0.320227
+ L 0 0.053333 2.720000 0.080227 2.866667 0.080227
+ L 0 0.053333 2.866667 0.080227 2.866667 -0.106440
+ L 0 0.053333 2.866667 -0.106440 2.720000 -0.106440
+ L 0 0.053333 2.720000 -0.106440 2.720000 0.080227
+ END
+TURNOUT N "Kato Unitrack Bumper B 2 1/2 64mm 20-034"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ S 0 0.000000 0.000000 0.000000 2.440944 0.000000
+ L 11579568 0.053333 0.000000 0.492126 3.740157 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 3.740157 -0.492126
+ L 11579568 0.053333 3.740157 0.492126 3.740157 -0.492126
+ L 0 0.053333 2.720000 0.080227 2.866667 0.080227
+ L 0 0.053333 2.866667 0.080227 2.866667 -0.106440
+ L 0 0.053333 2.866667 -0.106440 2.720000 -0.106440
+ L 0 0.053333 2.720000 -0.106440 2.720000 0.080227
+ L 9127187 0.053333 2.520000 0.306893 3.226667 0.306893
+ L 9127187 0.053333 3.226667 -0.333107 2.520000 -0.333107
+ L 9127187 0.053333 2.520000 -0.333107 2.520000 0.306893
+ L 11579568 0.053333 2.573333 0.253560 3.186667 0.253560
+ L 11579568 0.053333 3.186667 0.253560 3.186667 -0.293107
+ L 11579568 0.053333 3.186667 -0.293107 2.573333 -0.293107
+ L 11579568 0.053333 2.573333 -0.293107 2.573333 0.253560
+ END
+TURNOUT N "Kato Unitrack Bumper C 2 20-035"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ S 0 0.000000 0.000000 0.000000 1.338583 0.000000
+ L 11579568 0.053333 0.000000 0.492126 1.968504 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 1.968504 -0.492126
+ L 11579568 0.053333 1.968504 0.492126 1.968504 -0.492126
+ L 0 0.053333 1.026667 0.080227 1.200000 0.080227
+ L 0 0.053333 1.200000 0.080227 1.200000 -0.093107
+ L 0 0.053333 1.200000 -0.093107 1.026667 -0.093107
+ L 0 0.053333 1.026667 -0.093107 1.026667 0.080227
+ L 0 0.053333 0.800000 0.080227 0.800000 -0.093107
+ L 0 0.040000 0.826667 -0.066440 1.146667 -0.453107
+ L 0 0.040000 0.826667 0.066893 1.160000 0.440227
+ L 0 0.040000 0.826667 -0.093107 0.573333 -0.453107
+ L 0 0.040000 0.840000 0.080227 0.586667 0.440227
+ L 0 0.053333 0.746667 -0.106440 0.746667 0.106893
+END
+TURNOUT N "Kato Unitrack Bollard Bumper D 35mm 20-060"
+#new item
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ L 11579568 0.053333 0.000000 0.492126 1.377953 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 1.377953 -0.492126
+ L 11579568 0.053333 1.377953 0.492126 1.377953 -0.492126
+ L 0 0.053333 0.000000 0.350000 0.000000 -0.350000
+ L 0 0.053333 0.000000 0.350000 0.450000 0.350000
+ L 0 0.053333 0.000000 -0.350000 0.450000 -0.350000
+ L 0 0.053333 0.320000 0.080227 0.466667 0.080227
+ L 0 0.053333 0.466667 0.080227 0.466667 -0.106440
+ L 0 0.053333 0.466667 -0.106440 0.320000 -0.106440
+ L 0 0.053333 0.320000 -0.106440 0.320000 0.080227
+END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale Turnouts
+TURNOUT N "Kato Unitrack Turnout 150-R 20-240"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 4.881889 0.000000 90.000000
+ E 4.175827 -1.729684 135.000000
+ S 0 0 0.000000 0.000000 4.881889 0.000000
+ C 0 0 5.905512 0.000000 -5.905512 0.000000 45.000000
+ L 11579568 0.053333 0.000000 0.492126 4.881889 0.492126
+ L 11579568 0.053333 3.380000 -0.492126 4.881889 -0.492126
+ A 11579568 0.053333 5.413386 0.000000 -5.905512 0.000000 45.000000
+ A 11579568 0.053333 6.397638 0.000000 -5.905512 32.500000 12.500000
+ END
+TURNOUT N "Kato Unitrack Turnout 150-L 20-241"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 4.881889 0.000000 90.000000
+ E 4.175827 1.729684 45.000000
+ S 0 0 0.000000 0.000000 4.881889 0.000000
+ C 0 0 5.905512 0.000000 5.905512 135.000000 45.000000
+ L 11579568 0.053333 0.000000 -0.492126 4.881889 -0.492126
+ L 11579568 0.053333 3.380000 0.492126 4.881889 0.492126
+ A 11579568 0.053333 5.413386 0.000000 5.905512 135.000000 45.000000
+ A 11579568 0.053333 6.397638 0.000000 5.905512 135.000000 12.500000
+ END
+TURNOUT N "Kato Unitrack Turnout 4-L 20-220"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 4.960629 0.000000 90.000000
+ E 4.881889 0.642713 75.000000
+ S 0 0 0.000000 0.000000 4.960629 0.000000
+ C 0 0 -18.862000 0.000000 18.862000 165.000000 15.000000
+ L 11579568 0.053333 0.000000 -0.492126 4.960629 -0.492126
+ A 11579568 0.053333 -18.369874 0.000000 18.862000 165.000000 15.000000
+ END
+TURNOUT N "Kato Unitrack S60L {incl w/4} "
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.362204 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.362204 0.000000
+ L 11579568 0.053333 0.000000 0.492126 2.362204 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 2.362204 -0.492126
+ END
+TURNOUT N "Kato Unitrack Turnout 4-R 20-221"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 4.960629 0.000000 90.000000
+ E 4.881889 -0.642713 105.000000
+ S 0 0 0.000000 0.000000 4.960629 0.000000
+ C 0 0 18.862000 0.000000 -18.862000 0.000000 15.000000
+ L 11579568 0.053333 0.000000 0.492126 4.960629 0.492126
+ A 11579568 0.053333 18.369874 0.000000 -18.862000 0.000000 15.000000
+ END
+TURNOUT N "Kato Unitrack S60R {incl w/4} "
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.362204 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.362204 0.000000
+ L 11579568 0.053333 0.000000 0.492126 2.362204 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 2.362204 -0.492126
+ END
+TURNOUT N "Kato Unitrack Turnout 2-WYE 20-222"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 4.881889 0.642713 75.000000
+ E 4.881889 -0.642713 105.000000
+ C 0 0 -18.862000 0.000000 18.862000 165.000000 15.000000
+ C 0 0 18.862000 0.000000 -18.862000 0.000000 15.000000
+ A 11579568 0.053333 -18.416226 0.000000 18.862000 165.000000 15.000000
+ A 11579568 0.053333 18.416226 0.000000 -18.862000 0.000000 15.000000
+ L 11579568 0.053333 5.000000 0.200000 5.000000 -0.200000
+ END
+TURNOUT N "Kato Unitrack Turnout 6-L 20-202"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 7.322834 0.000000 90.000000
+ E 7.322834 0.964069 75.000000
+ S 0 0 0.000000 0.000000 7.322834 0.000000
+ C 0 0 -28.268000 0.000000 28.268000 165.0000000 15.000000
+ L 11579568 0.053333 0.000000 -0.492126 7.322834 -0.492126
+ A 11579568 0.053333 27.775874 0.000000 28.268000 165.000000 15.000000
+ END
+TURNOUT N "Kato Unitrack Turnout 6-R 20-203"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 7.322834 0.000000 90.000000
+ E 7.322834 -0.964069 105.000000
+ S 0 0 0.000000 0.000000 7.322834 0.000000
+ C 0 0 28.268000 0.000000 -28.268000 0.000000 15.000000
+ L 11579568 0.053333 0.000000 0.492126 7.322834 0.492126
+ A 11579568 0.053333 27.775874 0.000000 -28.268000 0.000000 15.000000
+ END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale Crossings
+TURNOUT N "Kato Unitrack Double Crossover 20-210"
+ P "Normal" 1 2 3 0 4 5 6
+ P "Reverse" 1 7 8 9 6 0 4 10 11 12 3
+ E 0.000000 0.000000 270.000000
+ E 12.204724 0.000000 90.000000
+ E 0.000000 -1.299212 270.000000
+ E 12.204724 -1.299212 90.000000
+ S 0 0 0.000000 0.000000 0.632000 0.000000
+ S 0 0 0.632000 0.000000 11.555000 0.000000
+ S 0 0 11.555000 0.000000 12.204724 0.000000
+ S 0 0 0.000000 -1.299212 0.632000 -1.299212
+ S 0 0 0.632000 -1.299212 11.555000 -1.299212
+ S 0 0 11.555000 -1.299212 12.204724 -1.299212
+ C 0 0 22.960000 0.631000 -22.960000 0.003000 12.880000
+ S 0 0 5.750000 -0.578000 6.438000 -0.735000
+ C 0 0 -22.960000 11.497000 21.661000 179.855000 12.874000
+ C 0 0 -22.960000 0.691000 21.661000 167.271000 12.876000
+ S 0 0 5.750000 -0.735000 6.438000 -0.578000
+ C 0 0 22.960000 11.557000 -22.960000 347.117000 12.878000
+ L 11579568 0.053333 0.000000 0.492126 12.204724 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 0.5 -0.492126
+ L 11579568 0.053333 0.000000 -0.825878 0.5 -0.825878
+ L 11579568 0.053333 0.5 -0.492126 0.5 -0.825878
+ L 11579568 0.053333 12.204724 -0.492126 11.704724 -0.492126
+ L 11579568 0.053333 12.204724 -0.825878 11.704724 -0.825878
+ L 11579568 0.053333 11.704724 -0.492126 11.704724 -0.825878
+ L 11579568 0.053333 0.000000 -1.772546 12.204724 -1.772546
+ END
+TURNOUT N "Kato Unitrack Dbl Trk Single Crossover (left) 9.75 248mm 20-230"
+ P "Normal" 1 2 0 3 4
+ P "Reverse" 1 5 6 7 4
+ E 0.000000 0.000000 270.000000
+ E 9.763779 0.000000 90.000000
+ E 0.000000 1.299212 270.000000
+ E 9.763779 1.299212 90.000000
+ S 0 0.000000 0.000000 0.000000 0.617287 0.000000
+ S 0 0.000000 0.617287 0.000000 9.763779 0.000000
+ S 0 0.000000 0.000000 1.299212 9.146492 1.299212
+ S 0 0.000000 9.146492 1.299212 9.763779 1.299212
+ C 0 0.000000 -14.226684 0.617306 14.226684 163.988842 16.011234
+ S 0 0.000000 4.541371 0.551886 5.222408 0.747326
+ C 0 0.000000 14.226684 9.146510 -12.927467 343.988842 16.011234
+ L 11579568 0.053333 0.000000 -0.445774 9.763799 -0.445774
+ L 11579568 0.053333 0.000000 1.744986 9.763799 1.744986
+ END
+TURNOUT N "Kato Unitrack Dbl Trk Single Crossover (Right) 9.75 248mm 20-231"
+ P "Normal" 1 2 0 3 4
+ P "Reverse" 3 5 6 7 2
+ E 0.000000 0.000000 270.000000
+ E 9.763799 0.000000 90.000000
+ E 0.000000 1.299212 270.000000
+ E 9.763799 1.299212 90.000000
+ S 0 0.000000 0.000000 0.000000 9.146512 0.000000
+ S 0 0.000000 9.146512 0.000000 9.763799 0.000000
+ S 0 0.000000 0.000000 1.299212 0.617287 1.299212
+ S 0 0.000000 0.617287 1.299212 9.763799 1.299212
+ C 0 0.000000 14.226749 0.617230 -12.927537 0.000076 16.011200
+ S 0 0.000000 4.541380 0.747326 5.222419 0.551886
+ C 0 0.000000 -14.226749 9.146530 14.226744 180.000076 16.011200
+ L 11579568 0.053333 0.000000 -0.445774 9.763799 -0.445774
+ L 11579568 0.053333 0.000000 1.744986 9.763799 1.744986
+ END
+TURNOUT N "Kato Unitrack Crossing 15° X15R 20-301"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 7.322834 0.000000 90.000000
+ E 0.000000 0.964069 285.000000
+ E 7.322834 -0.964069 105.000000
+ S 0 0 0.000000 0.000000 7.322834 0.000000
+ S 0 0 0.000000 0.964069 7.322834 -0.964069
+ L 11579568 0.053333 3.71 0.492126 7.322834 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 3.62 -0.492126
+ L 11579568 0.053333 0.12 1.43 3.71 0.492126
+ L 11579568 0.053333 7.20 -1.43 3.62 -0.492126
+ END
+TURNOUT N "Kato Unitrack Crossing 15° X15L 20-300"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 7.322834 0.000000 90.000000
+ E 0.000000 -0.964069 255.000000
+ E 7.322834 0.964069 75.000000
+ S 0 0 0.000000 0.000000 7.322834 0.000000
+ S 0 0 0.000000 -0.964069 7.322834 0.964069
+ L 11579568 0.053333 3.71 -0.492126 7.322834 -0.492126
+ L 11579568 0.053333 0.000000 0.492126 3.62 0.492126
+ L 11579568 0.053333 0.12 -1.43 3.71 -0.492126
+ L 11579568 0.053333 7.20 1.43 3.62 0.492126
+ END
+TURNOUT N "Kato Unitrack Crossing 90° w/S45.5 20-320"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 4.881889 0.000000 90.000000
+ E 2.440944 2.440944 0.000000
+ E 2.440944 -2.440944 180.000000
+ S 0 0 0.000000 0.000000 4.881889 0.000000
+ S 0 0 2.440944 2.440944 2.440944 -2.440944
+ L 11579568 0.053333 0.000000 0.492126 1.967610 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 1.967610 -0.492126
+ L 11579568 0.053333 2.914278 0.492126 4.881889 0.492126
+ L 11579568 0.053333 2.914278 -0.492126 4.881889 -0.492126
+ L 11579568 0.053333 1.967610 -2.440944 1.967610 -0.500000
+ L 11579568 0.053333 2.914278 -2.440944 2.914278 -0.500000
+ L 11579568 0.053333 1.967610 2.440944 1.967610 0.500000
+ L 11579568 0.053333 2.914278 2.440944 2.914278 0.500000
+ END
+TURNOUT N "Kato Unitrack Crossing 90° w/o S45.5 20-320"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 1.299212 0.000000 90.000000
+ E 0.649606 0.649606 0.000000
+ E 0.649606 -0.649606 180.000000
+ S 0 0 0.000000 0.000000 1.299212 0.000000
+ S 0 0 0.649606 0.649606 0.649606 -0.650000
+ L 11579568 0.053333 0.000000 0.492126 0.176272 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 0.176272 -0.492126
+ L 11579568 0.053333 1.122940 0.492126 1.299212 0.492126
+ L 11579568 0.053333 1.122940 -0.492126 1.299212 -0.492126
+ L 11579568 0.053333 0.176272 -0.649606 0.176272 -0.492126
+ L 11579568 0.053333 1.122940 -0.649606 1.122940 -0.492126
+ L 11579568 0.053333 0.176272 0.649606 0.176272 0.492126
+ L 11579568 0.053333 1.122940 0.649606 1.122940 0.492126
+ END
+TURNOUT N "Kato Unitrack S45.5 (incl w/20-320) "
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.791339 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.791339 0.000000
+ L 11579568 0.053333 0.000000 0.492126 1.791339 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 1.791339 -0.492126
+ END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale Single Track Viaducts - Straights
+TURNOUT N "Kato Unitrack Viaduct Straight 9.75 248mm 20-400"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.763779 0.000000 90.000000
+ S 0 0 0.000000 0.000000 9.763779 0.000000
+ L 0 0.053333 0.000000 0.47334 9.763799 0.47334
+ L 0 0.053333 0.000000 -0.47334 9.763799 -0.47334
+ END
+TURNOUT N "Kato Unitrack Viaduct Straight 7.312 186mm 20-410"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.322834 0.000000 90.000000
+ S 0 0 0.000000 0.000000 7.322834 0.000000
+ L 0 0.053333 0.000000 0.47334 7.322834 0.47334
+ L 0 0.053333 0.000000 -0.47334 7.322834 -0.47334
+ END
+TURNOUT N "Kato Unitrack Viaduct Straight 4.875 124mm 20-420"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.881889 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.881889 0.000000
+ L 0 0.053333 0.000000 0.47334 4.881889 0.47334
+ L 0 0.053333 0.000000 -0.47334 4.881889 -0.47334
+ END
+TURNOUT N "Kato Unitrack Viaduct Straight(Platform) 4.875 124mm 20-421"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.881889 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.881889 0.000000
+ L 0 0.053333 0.000000 0.47334 4.881889 0.47334
+ L 0 0.053333 0.000000 -0.47334 4.881889 -0.47334
+ L 0 0.040000 3.000000 -0.526440 3.000000 -0.826440
+ L 0 0.040000 3.000000 -0.826440 1.900000 -0.826440
+ L 0 0.040000 1.900000 -0.826440 1.900000 -0.526440
+ END
+TURNOUT N "Kato Unitrack Viaduct Straight 2.4375 62mm 20-440"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.440944 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.440944 0.000000
+ L 0 0.053333 0.000000 0.47334 2.440944 0.47334
+ L 0 0.053333 0.000000 -0.47334 2.440944 -0.47334
+ END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale Single Track Viaducts - Curves
+TURNOUT N "Kato Unitrack Viaduct Curve 9.75R 249mm 45° Curve 20-505"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.931874 -2.871276 135.000000
+ C 0 0 9.803150 0.000000 -9.803150 0.000000 45.000000
+ A 0 0.053333 9.329810 0.000000 -9.803150 0.000000 45.000000
+ A 0 0.053333 10.276490 0.000000 -9.803150 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack Viaduct Curve 11R 282mm 45° 20-510"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.850556 -3.251807 135.000000
+ C 0 0 11.102362 0.000000 -11.102362 0.000000 45.000000
+ A 0 0.053333 10.629022 0.000000 -11.102362 0.000000 45.000000
+ A 0 0.053333 11.575702 0.000000 -11.102362 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack Viaduct Curve 12.375R 315mm 45° 20-520"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.769238 -3.632337 135.000000
+ C 0 0 12.401575 0.000000 -12.401575 0.000000 45.000000
+ A 0 0.053333 11.928235 0.000000 -12.401575 0.000000 45.000000
+ A 0 0.053333 12.874915 0.000000 -12.401575 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack Viaduct Curve 13.75R 348mm 45° 20-530"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.687920 -4.012868 135.000000
+ C 0 0 13.700787 0.000000 -13.700787 0.000000 45.000000
+ A 0 0.053333 13.227447 0.000000 -13.700787 0.000000 45.000000
+ A 0 0.053333 14.174127 0.000000 -13.700787 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack Viaduct Curve 13.75R 348mm 30° 20-531"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.850394 -1.835557 120.000000
+ C 0 0 13.700787 0.000000 -13.700787 0.000000 30.000000
+ A 0 0.053333 13.227447 0.000000 -13.700787 0.000000 30.000000
+ A 0 0.053333 14.174127 0.000000 -13.700787 0.000000 30.000000
+ END
+TURNOUT N "Kato Unitrack Viaduct Curve 15R 381mm 30° 20-540"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.500000 -2.009619 120.000000
+ C 0 0 15.000000 0.000000 -15.000000 0.000000 30.000000
+ A 0 0.053333 14.526660 0.000000 -15.000000 0.000000 30.000000
+ A 0 0.053333 15.473340 0.000000 -15.000000 0.000000 30.000000
+ END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale Double Track Viaducts - Straights
+TURNOUT N "Kato Unitrack Double Viaduct Straight 9.75 248mm 20-401"
+ P "Normal" 1 0 2
+ E 0.000000 0.649606 270.000000
+ E 9.763779 0.649606 90.000000
+ E 0.000000 -0.649606 270.000000
+ E 9.763779 -0.649606 90.000000
+ S 0 0 0.000000 0.649606 9.763779 0.649606
+ S 0 0 0.000000 -0.649606 9.763779 -0.649606
+ L 0 0.053333 0.000000 1.122946 9.763779 1.122946
+ L 0 0.053333 0.000000 -1.122946 9.763779 -1.122946
+ END
+TURNOUT N "Kato Unitrack Double Viaduct Straight 7 5/16 186mm 20-411"
+ P "Normal" 1 0 2
+ E 0.000000 0.649606 270.000000
+ E 7.322834 0.649606 90.000000
+ E 0.000000 -0.649606 270.000000
+ E 7.322834 -0.649606 90.000000
+ S 0 0 0.000000 0.649606 7.322834 0.649606
+ S 0 0 0.000000 -0.649606 7.322834 -0.649606
+ L 0 0.053333 0.000000 1.122946 7.322834 1.122946
+ L 0 0.053333 0.000000 -1.122946 7.322834 -1.122946
+ END
+TURNOUT N "Kato Unitrack Double Viaduct Straight 4.875 124mm 20-422"
+ P "Normal" 1
+ E 0.000000 0.649606 270.000000
+ E 4.881889 0.649606 90.000000
+ E 0.000000 -0.649606 270.000000
+ E 4.881889 -0.649606 90.000000
+ S 0 0 0.000000 0.649606 4.881889 0.649606
+ S 0 0 0.000000 -0.649606 4.881889 -0.649606
+ L 0 0.053333 0.000000 1.122946 4.881889 1.122946
+ L 0 0.053333 0.000000 -1.122946 4.881889 -1.122946
+ END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale CS Double Track Viaducts - Curves
+TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Viaduct Curve 16.3,15R 414/381mm 45° 20-544"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 10.606602 -4.393398 135.000000
+ E 0.000000 1.299213 270.000000
+ E 11.525284 -3.474716 135.000000
+ C 0 0 15.000000 0.000000 -15.000000 0.000000 45.000000
+ C 0 0 16.299213 0.000000 -15.000000 0.000000 45.000000
+ A 0 0.053333 14.526660 0.000000 -15.000000 0.000000 45.000000
+ A 0 0.053333 16.772553 0.000000 -15.000000 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Viaduct Easement Curve (R) Appr 16.3/15R 414/381mm 22.5° 20-545 Right"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 6.237438 -1.240704 112.500000
+ E 0.000000 -1.299212 270.000000
+ E 5.740251 -2.441019 112.500000
+ C 0 0 16.299212 0.000000 -16.299212 0.000000 22.500000
+ C 0 0 15.000000 0.000000 -16.299212 0.000000 22.500000
+ A 11579568 0.053333 16.744986 0.000000 -16.299212 0.000000 22.500000
+ A 11579568 0.053333 14.554226 0.000000 -16.299212 0.000000 22.500000
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Viaduct Easement Curve (L) Appr 16.3/15R 414/381mm 22.5° 20-545 Left"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 6.237438 -1.240704 112.500000
+ E 0.000000 -1.299212 270.000000
+ E 5.740251 -2.441019 112.500000
+ C 0 0 16.299212 0.000000 -16.299212 0.000000 22.500000
+ C 0 0 15.000000 0.000000 -16.299212 0.000000 22.500000
+ A 11579568 0.053333 16.744986 0.000000 -16.299212 0.000000 22.500000
+ A 11579568 0.053333 14.554226 0.000000 -16.299212 0.000000 22.500000
+ END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale GL CS Double Track - Straights
+TURNOUT N "Kato Unitrack CS Dbl Trk Straight 9.75 248mm 20-004"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 9.763799 0.000000 90.000000
+ E 0.000000 -1.299212 270.000000
+ E 9.763799 -1.299212 90.000000
+ S 0 0 0.000000 0.000000 9.763799 0.000000
+ S 0 0 0.000000 -1.299212 9.763799 -1.299212
+ L 11579568 0.053333 0.000000 0.492126 9.763799 0.492126
+ L 11579568 0.053333 0.000000 -1.744986 9.763799 -1.744986
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk Straight 7 5/16 186mm 20-012"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 7.322834 0.000000 90.000000
+ E 0.000000 -1.299212 270.000000
+ E 7.322834 -1.299212 90.000000
+ S 0 0 0.000000 0.000000 7.322834 0.000000
+ S 0 0 0.000000 -1.299212 7.322834 -1.299212
+ L 11579568 0.053333 0.000000 0.492126 7.322834 0.492126
+ L 11579568 0.053333 0.000000 -1.744986 7.322834 -1.744986
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk Straight 4 7/8 124mm 20-023"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 4.881889 0.000000 90.000000
+ E 0.000000 -1.299212 270.000000
+ E 4.881889 -1.299212 90.000000
+ S 0 0 0.000000 0.000000 4.881889 0.000000
+ S 0 0 0.000000 -1.299212 4.881889 -1.299212
+ L 11579568 0.053333 0.000000 0.492126 4.881889 0.492126
+ L 11579568 0.053333 0.000000 -1.744986 4.881889 -1.744986
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk Straight 2 7/16 62mm 20-042"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 2.440944 0.000000 90.000000
+ E 0.000000 -1.299212 270.000000
+ E 2.440944 -1.299212 90.000000
+ S 0 0 0.000000 0.000000 2.440944 0.000000
+ S 0 0 0.000000 -1.299212 2.440944 -1.299212
+ L 11579568 0.053333 0.000000 0.492126 2.440944 0.492126
+ L 11579568 0.053333 0.000000 -1.744986 2.440944 -1.744986
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk Feeder Track 62mm 20-043"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 2.440944 0.000000 90.000000
+ E 0.000000 -1.299212 270.000000
+ E 2.440944 -1.299212 90.000000
+ S 0 0 0.000000 0.000000 2.440944 0.000000
+ S 0 0 0.000000 -1.299212 2.440944 -1.299212
+ L 11579568 0.053333 0.000000 0.492126 2.440944 0.492126
+ L 11579568 0.053333 0.000000 -1.744986 2.440944 -1.744986
+ L 0 0.026667 2.000000 -1.798086 2.000000 -1.998086
+ L 0 0.026667 2.000000 -1.998086 2.100000 -2.098086
+ L 0 0.026667 2.000000 -1.998086 1.900000 -2.098086
+ L 16711680 0.026667 1.800000 -1.798086 1.800000 -1.998086
+ L 16711680 0.026667 1.800000 -1.998086 1.900000 -2.098086
+ L 16711680 0.026667 1.800000 -1.998086 1.700000 -2.098086
+ END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale GL CS Double Track - Curves
+TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Curve 16.3/15R 414/381mm 45° 20-181"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 11.525283 -4.773929 135.000000
+ E 0.000000 -1.299212 270.000000
+ E 10.606602 -5.692610 135.000000
+ C 0 0 16.299212 0.000000 -16.299212 0.000000 45.000000
+ C 0 0 15.000000 0.000000 -16.299212 0.000000 45.000000
+ A 11579568 0.053333 16.744986 0.000000 -16.299212 0.000000 45.000000
+ A 11579568 0.053333 14.554226 0.000000 -16.299212 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Easement Curve (R) Appr 16.3/15R 414/381mm 22.5° 20-182 Right"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 6.237438 -1.240704 112.500000
+ E 0.000000 -1.299212 270.000000
+ E 5.740251 -2.441019 112.500000
+ C 0 0 16.299212 0.000000 -16.299212 0.000000 22.500000
+ C 0 0 15.000000 0.000000 -16.299212 0.000000 22.500000
+ A 11579568 0.053333 16.744986 0.000000 -16.299212 0.000000 22.500000
+ A 11579568 0.053333 14.554226 0.000000 -16.299212 0.000000 22.500000
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Easement Curve (L) Appr 16.3/15R 414/381mm 22.5° 20-182 Left"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 6.237438 -1.240704 112.500000
+ E 0.000000 -1.299212 270.000000
+ E 5.740251 -2.441019 112.500000
+ C 0 0 16.299212 0.000000 -16.299212 0.000000 22.500000
+ C 0 0 15.000000 0.000000 -16.299212 0.000000 22.500000
+ A 11579568 0.053333 16.744986 0.000000 -16.299212 0.000000 22.500000
+ A 11579568 0.053333 14.554226 0.000000 -16.299212 0.000000 22.500000
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Curve 12.375/11R 315/282mm 45° 20-183"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 0.000000 -1.299212 270.000000
+ E 8.769238 -3.632337 135.000000
+ E 7.850556 -4.551019 135.000000
+ C 0 0 12.401575 0.000000 -12.401575 0.000000 45.000000
+ C 0 0 11.102362 0.000000 -12.401575 0.000000 45.000000
+ A 11579568 0.053333 12.847349 0.000000 -12.401575 0.000000 45.000000
+ A 11579568 0.053333 10.656588 0.000000 -12.401575 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Easement Curve 12.375/11R 315/282mm 22.5° 20-184 Right"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 0.000000 -1.299212 270.000000
+ E 4.745877 -0.944014 112.500000
+ E 4.248690 -2.144330 112.500000
+ C 0 0 12.401575 0.000000 -12.401575 0.000000 22.500000
+ C 0 0 11.102362 0.000000 -12.401575 0.000000 22.500000
+ A 11579568 0.053333 12.847349 0.000000 -12.401575 0.000000 22.500000
+ A 11579568 0.053333 10.656588 0.000000 -12.401575 0.000000 22.500000
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Easement Curve 12.375/11R 315/282mm 22.5° 20-184 Left"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 0.000000 -1.299212 270.000000
+ E 4.745877 -0.944014 112.500000
+ E 4.248690 -2.144330 112.500000
+ C 0 0 12.401575 0.000000 -12.401575 0.000000 22.500000
+ C 0 0 11.102362 0.000000 -12.401575 0.000000 22.500000
+ A 11579568 0.053333 12.847349 0.000000 -12.401575 0.000000 22.500000
+ A 11579568 0.053333 10.656588 0.000000 -12.401575 0.000000 22.500000
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Curve 18.875/17.625R 480/447mm 45° 20-185"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 13.362648 -5.534990 135.000000
+ E 0.000000 -1.299212 270.000000
+ E 12.443966 -6.453672 135.000000
+ C 0 0 18.897638 0.000000 -18.897638 0.000000 45.000000
+ C 0 0 17.598425 0.000000 -18.897638 0.000000 45.000000
+ A 11579568 0.053333 19.343412 0.000000 -18.897638 0.000000 45.000000
+ A 11579568 0.053333 17.152651 0.000000 -18.897638 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Easement Curve (R) Appr 18.875/17.625R 480/447mm 22.5° 20-186 Right"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 7.231813 -1.438497 112.500000
+ E 0.000000 -1.299212 270.000000
+ E 6.734626 -2.638813 112.500000
+ C 0 0 18.897638 0.000000 -18.897638 0.000000 22.500000
+ C 0 0 17.598425 0.000000 -18.897638 0.000000 22.500000
+ A 11579568 0.053333 19.343412 0.000000 -18.897638 0.000000 22.500000
+ A 11579568 0.053333 17.152651 0.000000 -18.897638 0.000000 22.500000
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Easement Curve (L) Appr 18.875/17.625R 480/447mm 22.5° 20-186 Left"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 7.231813 -1.438497 112.500000
+ E 0.000000 -1.299212 270.000000
+ E 6.734626 -2.638813 112.500000
+ C 0 0 18.897638 0.000000 -18.897638 0.000000 22.500000
+ C 0 0 17.598425 0.000000 -18.897638 0.000000 22.500000
+ A 11579568 0.053333 19.343412 0.000000 -18.897638 0.000000 22.500000
+ A 11579568 0.053333 17.152651 0.000000 -18.897638 0.000000 22.500000
+ END
+
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale V-15 Double Track Widening Sections
+TURNOUT N "Kato Unitrack CS Dbl Trk Widening Section 310mm 20-051 Left"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 12.204724 0.000000 90.000000
+ E 0.000000 1.299212 270.000000
+ E 12.204724 2.598425 90.000000
+ S 0 0 0.000000 0.000000 12.204724 0.000000
+ S 0 0 0.000000 1.299212 0.980334 1.299212
+ C 0 0 17.598425 0.980334 18.897637 169.500000 10.500000
+ S 0 0 4.187392 1.593899 8.017332 2.303737
+ C 0 0 17.598425 11.224390 -15.000001 349.500000 10.500000
+ S 0 0 11.224390 2.598425 12.204724 2.598425
+ L 11579568 0.053333 0.000000 -0.492126 12.204724 -0.492126
+ L 11579568 0.053333 0.000000 1.744986 0.980334 1.744986
+ A 11579568 0.053333 17.152651 0.980334 18.897637 169.500000 10.500000
+ L 11579568 0.053333 4.187392 2.039673 8.017332 2.749511
+ A 11579568 0.053333 18.044199 11.224390 -15.000001 349.500000 10.500000
+ L 11579568 0.053333 11.224390 3.044199 12.204724 3.044199
+ L 11579568 0.053333 11.704724 0.492126 12.204724 0.492126
+ L 11579568 0.053333 11.704724 0.492126 11.704724 2.152651
+ L 11579568 0.053333 11.704724 2.152651 12.204724 2.152651
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk Widening Section 310mm 20-052 Right"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 12.204724 0.000000 90.000000
+ E 0.000000 -1.299212 270.000000
+ E 12.204724 -2.598425 90.000000
+ S 0 0 0.000000 0.000000 12.204724 0.000000
+ S 0 0 0.000000 -1.299212 0.980334 -1.299212
+ C 0 0 17.598425 0.980334 -18.897637 0.000000 10.500000
+ S 0 0 4.187392 -1.593899 8.017332 -2.303737
+ C 0 0 17.598425 11.224390 15.000001 180.000000 10.500000
+ S 0 0 11.224390 -2.598425 12.204724 -2.598425
+ L 11579568 0.053333 0.000000 0.492126 12.204724 0.492126
+ L 11579568 0.053333 0.000000 -1.744986 0.980334 -1.744986
+ A 11579568 0.053333 17.152651 0.980334 -18.897637 0.000000 10.500000
+ L 11579568 0.053333 4.187392 -2.039673 8.017332 -2.749511
+ A 11579568 0.053333 18.044199 11.224390 15.000001 180.000000 10.500000
+ L 11579568 0.053333 11.224390 -3.044199 12.204724 -3.044199
+ L 11579568 0.053333 11.704724 -0.492126 12.204724 -0.492126
+ L 11579568 0.053333 11.704724 -0.492126 11.704724 -2.152651
+ L 11579568 0.053333 11.704724 -2.152651 12.204724 -2.152651
+ END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale Conc Sleeper Straight Track
+TURNOUT N "Kato Unitrack CS Trk Straight 9.75 248mm 20-875"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.763779 0.000000 90.000000
+ S 0 0 0.000000 0.000000 9.763779 0.000000
+ L 11579568 0.053333 0.000000 0.492126 9.763779 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 9.763779 -0.492126
+ END
+TURNOUT N "Kato Unitrack CS Trk Straight 4 7/8 124mm 20-XXX"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.881889 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.881889 0.000000
+ L 11579568 0.053333 0.000000 0.492126 4.881889 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 4.881889 -0.492126
+ END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale Bridges
+TURNOUT N "Kato Unitrack Dbl. Track Truss Bridge 9.75 248mm 20-435/6/7/8"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 9.763779 0.000000 90.000000
+ E 0.000000 -1.299212 270.000000
+ E 9.763779 -1.299212 90.000000
+ S 0 0 0.000000 0.000000 9.763779 0.000000
+ S 0 0 0.000000 -1.299212 9.763779 -1.299212
+ L 0 0.053333 0.000000 0.47334 9.763779 0.47334
+ L 0 0.053333 0.000000 -1.772552 9.763779 -1.772552
+ L 0 0.053333 1.220474 -1.772552 1.220474 0.47334
+ L 0 0.053333 1.220474 -1.772552 2.440948 0.47334
+ L 0 0.053333 2.440948 -1.772552 1.220474 0.47334
+ L 0 0.053333 2.440948 -1.772552 2.440948 0.47334
+ L 0 0.053333 2.440948 -1.772552 3.661422 0.47334
+ L 0 0.053333 3.661422 -1.772552 2.440948 0.47334
+ L 0 0.053333 3.661422 -1.772552 3.661422 0.47334
+ L 0 0.053333 3.661422 -1.772552 4.881896 0.47334
+ L 0 0.053333 4.881896 -1.772552 3.661422 0.47334
+ L 0 0.053333 4.881896 -1.772552 4.881896 0.47334
+ L 0 0.053333 4.881896 -1.772552 6.102370 0.47334
+ L 0 0.053333 6.102370 -1.772552 4.881896 0.47334
+ L 0 0.053333 6.102370 -1.772552 6.102370 0.47334
+ L 0 0.053333 6.102370 -1.772552 7.322844 0.47334
+ L 0 0.053333 7.322844 -1.772552 6.102370 0.47334
+ L 0 0.053333 7.322844 -1.772552 7.322844 0.47334
+ L 0 0.053333 7.322844 -1.772552 8.543318 0.47334
+ L 0 0.053333 8.543318 -1.772552 7.322844 0.47334
+ L 0 0.053333 8.543318 -1.772552 8.543318 0.47334
+ END
+TURNOUT N "Kato Unitrack Single Track Truss Bridge 9.75 248mm 20-430/1/2/3/4"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.763779 0.000000 90.000000
+ S 0 0 0.000000 0.000000 9.763779 0.000000
+ L 0 0.053333 0.000000 0.47334 9.763779 0.47334
+ L 0 0.053333 0.000000 -0.47334 9.763779 -0.47334
+ L 0 0.053333 1.220474 -0.47334 1.220474 0.47334
+ L 0 0.053333 1.220474 -0.47334 2.440948 0.47334
+ L 0 0.053333 2.440948 -0.47334 1.220474 0.47334
+ L 0 0.053333 2.440948 -0.47334 2.440948 0.47334
+ L 0 0.053333 2.440948 -0.47334 3.661422 0.47334
+ L 0 0.053333 3.661422 -0.47334 2.440948 0.47334
+ L 0 0.053333 3.661422 -0.47334 3.661422 0.47334
+ L 0 0.053333 3.661422 -0.47334 4.881896 0.47334
+ L 0 0.053333 4.881896 -0.47334 3.661422 0.47334
+ L 0 0.053333 4.881896 -0.47334 4.881896 0.47334
+ L 0 0.053333 4.881896 -0.47334 6.102370 0.47334
+ L 0 0.053333 6.102370 -0.47334 4.881896 0.47334
+ L 0 0.053333 6.102370 -0.47334 6.102370 0.47334
+ L 0 0.053333 6.102370 -0.47334 7.322844 0.47334
+ L 0 0.053333 7.322844 -0.47334 6.102370 0.47334
+ L 0 0.053333 7.322844 -0.47334 7.322844 0.47334
+ L 0 0.053333 7.322844 -0.47334 8.543318 0.47334
+ L 0 0.053333 8.543318 -0.47334 7.322844 0.47334
+ L 0 0.053333 8.543318 -0.47334 8.543318 0.47334
+ END
+TURNOUT N "Kato Unitrack Single Track Plate Grider Bridge 7 5/16 186mm 20-450/1/2/3/4"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.322834 0.000000 90.000000
+ S 0 0 0.000000 0.000000 7.322834 0.000000
+ L 0 0.053333 0.000000 0.47334 7.322834 0.47334
+ L 0 0.053333 0.000000 -0.47334 7.322834 -0.47334
+ END
+TURNOUT N "Kato Unitrack Double Track Plate Grider Bridge 7 5/16 186mm 20-455/6/7/8"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 7.322834 0.000000 90.000000
+ E 0.000000 -1.299212 270.000000
+ E 7.322834 -1.299212 90.000000
+ S 0 0 0.000000 0.000000 7.322834 0.000000
+ S 0 0 0.000000 -1.299212 7.322834 -1.299212
+ L 0 0.053333 0.000000 0.47334 7.322834 0.47334
+ L 0 0.053333 0.000000 -0.649606 7.322834 -0.649606
+ L 0 0.053333 0.000000 -1.772552 7.322834 -1.772552
+ END
+TURNOUT N "Kato Unitrack Deck Plate Grider Bridge 4 7/8 124mm 20-460/1/2/3/4"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.881889 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.881889 0.000000
+ L 0 0.053333 0.000000 0.47334 4.881889 0.47334
+ L 0 0.053333 0.000000 -0.47334 4.881889 -0.47334
+ END
+TURNOUT N "Kato Unitrack Curve Deck Plate Grider Bridge 17 5/8 448mm 15d 20-823"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.564997 -0.600993 105.000000
+ C 0 0 17.637795 0.000000 -17.637795 0.000000 15.000000
+ A 0 0.053333 17.164455 0.000000 -17.637795 0.000000 15.000000
+ A 0 0.053333 18.111135 0.000000 -17.637795 0.000000 15.000000
+ END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale Structures
+STRUCTURE N "Kato Unitrack Pier 23-015"
+ X pier 0.590551 "1" 0.984251 "2" 1.377952 "3" 1.771653 "4" 1.968503 "5"
+ L 0 0.000000 -0.250000 -0.5 0.250000 -0.5
+ L 0 0.000000 0.250000 -0.5 0.250000 0.5
+ L 0 0.000000 0.250000 0.5 -0.250000 0.5
+ L 0 0.000000 -0.250000 0.5 -0.250000 -0.5
+ A 0 0.000000 0.250000 -0.000000 0.50000 270.000000 180.000000
+ A 0 0.000000 0.250000 -0.000000 -0.50000 90.000000 180.000000
+ END
+STRUCTURE N "Kato Unitrack Pier 23-016"
+ X pier 1.968503 "5"
+ L 7368826 0.040000 -0.75 -0.6 0.75 -0.6
+ L 7368826 0.040000 0.75 -0.6 0.75 1.899212
+ L 7368826 0.040000 0.75 1.899212 -0.75 1.899212
+ L 7368826 0.040000 -0.75 1.899212 -0.75 -0.6
+ END
+STRUCTURE N "Kato Unitrack Island Platform Type A 23-100"
+ L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
+ L 10824234 0.000000 0.000000 1.653543 9.763780 1.653543
+ L 10824234 0.000000 9.763780 1.653543 9.763780 0.000000
+ L 10824234 0.000000 9.763780 0.000000 0.000000 0.000000
+ L 10824234 0.000000 0.000000 0.826772 9.763780 0.826772
+ L 10824234 0.000000 0.787402 1.141732 5.157480 1.141732
+ L 10824234 0.000000 5.157480 1.141732 5.157480 0.511811
+ L 10824234 0.000000 5.157480 0.511811 0.787402 0.511811
+ L 10824234 0.000000 0.787402 0.511811 0.787402 1.141732
+ L 10824234 0.000000 2.952756 1.141732 2.952756 0.511811
+ L 10824234 0.000000 0.078740 1.653543 0.078740 0.866142
+ L 10824234 0.000000 0.157480 1.653543 0.157480 0.984252
+ L 10824234 0.000000 0.236220 1.653543 0.236220 1.102362
+ L 10824234 0.000000 0.314961 1.653543 0.314961 1.220472
+ L 10824234 0.000000 0.393701 1.653543 0.393701 1.299213
+ L 10824234 0.000000 0.472441 1.653543 0.472441 1.377953
+ L 10824234 0.000000 0.551181 1.653543 0.551181 1.496063
+ L 10824234 0.000000 0.629921 1.653543 0.629921 1.614173
+ L 10824234 0.000000 9.685039 0.000000 9.685039 0.787402
+ L 10824234 0.000000 9.606299 0.000000 9.606299 0.669291
+ L 10824234 0.000000 9.527559 0.000000 9.527559 0.551181
+ L 10824234 0.000000 9.448819 0.000000 9.448819 0.433071
+ L 10824234 0.000000 9.370079 0.000000 9.370079 0.354331
+ L 10824234 0.000000 9.291339 0.000000 9.291339 0.236220
+ L 10824234 0.000000 9.212598 0.000000 9.212598 0.157480
+ L 10824234 0.000000 9.133858 0.000000 9.133858 0.039370
+ END
+STRUCTURE N "Kato Unitrack Island Platform Type B 23-101"
+ L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
+ L 10824234 0.000000 0.000000 1.653543 9.763780 1.653543
+ L 10824234 0.000000 9.763780 1.653543 9.763780 0.000000
+ L 10824234 0.000000 9.763780 0.000000 0.000000 0.000000
+ L 10824234 0.000000 0.000000 0.826772 9.763780 0.826772
+ L 10824234 0.000000 0.787402 1.141732 5.157480 1.141732
+ L 10824234 0.000000 5.157480 1.141732 5.157480 0.511811
+ L 10824234 0.000000 5.157480 0.511811 0.787402 0.511811
+ L 10824234 0.000000 0.787402 0.511811 0.787402 1.141732
+ L 10824234 0.000000 2.952756 1.141732 2.952756 0.511811
+ L 10824234 0.000000 0.078740 1.653543 0.078740 0.866142
+ L 10824234 0.000000 0.157480 1.653543 0.157480 0.984252
+ L 10824234 0.000000 0.236220 1.653543 0.236220 1.102362
+ L 10824234 0.000000 0.314961 1.653543 0.314961 1.220472
+ L 10824234 0.000000 0.393701 1.653543 0.393701 1.299213
+ L 10824234 0.000000 0.472441 1.653543 0.472441 1.377953
+ L 10824234 0.000000 0.551181 1.653543 0.551181 1.496063
+ L 10824234 0.000000 0.629921 1.653543 0.629921 1.614173
+ L 10824234 0.000000 9.685039 0.000000 9.685039 0.787402
+ L 10824234 0.000000 9.606299 0.000000 9.606299 0.669291
+ L 10824234 0.000000 9.527559 0.000000 9.527559 0.551181
+ L 10824234 0.000000 9.448819 0.000000 9.448819 0.433071
+ L 10824234 0.000000 9.370079 0.000000 9.370079 0.354331
+ L 10824234 0.000000 9.291339 0.000000 9.291339 0.236220
+ L 10824234 0.000000 9.212598 0.000000 9.212598 0.157480
+ L 10824234 0.000000 9.133858 0.000000 9.133858 0.039370
+ END
+STRUCTURE N "Kato Unitrack Island Platform End, Type 1 23-102"
+ L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
+ L 10824234 0.000000 0.000000 0.000000 7.874016 0.000000
+ L 10824234 0.000000 7.874016 0.000000 7.874016 1.653543
+ L 10824234 0.000000 7.874016 1.653543 0.000000 1.653543
+ L 10824234 0.000000 0.787402 1.653543 0.787402 0.000000
+ L 10824234 0.000000 0.787402 0.629921 0.196850 0.629921
+ L 10824234 0.000000 0.196850 0.629921 0.196850 0.984252
+ L 10824234 0.000000 0.196850 0.984252 0.787402 0.984252
+ L 10824234 0.000000 0.787402 0.984252 0.787402 0.629921
+ L 10824234 0.000000 0.669291 0.629921 0.669291 0.984252
+ L 10824234 0.000000 0.551181 0.629921 0.551181 0.984252
+ L 10824234 0.000000 0.433071 0.629921 0.433071 0.984252
+ L 10824234 0.000000 0.314961 0.629921 0.314961 0.984252
+ L 0 0.026667 0.866142 1.614173 0.866142 0.039370
+ A 0 0.026667 0.141951 5.196850 0.826772 0.000000 360.000000
+ L 0 0.000000 3.031496 0.944882 4.606299 0.944882
+ L 0 0.000000 4.606299 0.944882 4.606299 0.708661
+ L 0 0.000000 4.606299 0.708661 3.031496 0.708661
+ L 0 0.000000 3.031496 0.708661 3.031496 0.944882
+ L 0 0.066667 3.543307 0.826772 4.094488 0.826772
+ END
+STRUCTURE N "Kato Unitrack Island Platform End, Type 2 23-103"
+ L 10824234 0.000000 7.874016 0.000000 7.874016 1.653543
+ L 10824234 0.000000 7.874016 1.653543 0.000000 1.653543
+ A 0 0.026667 0.141951 5.196850 0.826772 0.000000 360.000000
+ L 0 0.000000 3.031496 0.944882 4.606299 0.944882
+ L 0 0.000000 4.606299 0.944882 4.606299 0.708661
+ L 0 0.000000 4.606299 0.708661 3.031496 0.708661
+ L 0 0.000000 3.031496 0.708661 3.031496 0.944882
+ L 0 0.066667 3.543307 0.826772 4.094488 0.826772
+ A 10824234 0.000000 27.822226 7.874016 27.822226 180.000000 15.000000
+ L 0 0.026667 0.866142 1.614173 0.866142 1.023622
+ L 10824234 0.000000 0.196850 1.535433 0.196850 1.299213
+ L 10824234 0.000000 0.669291 1.535433 0.669291 1.299213
+ L 10824234 0.000000 0.551181 1.535433 0.551181 1.299213
+ L 10824234 0.000000 0.433071 1.535433 0.433071 1.299213
+ L 10824234 0.000000 0.314961 1.535433 0.314961 1.299213
+ L 10824234 0.000000 0.196667 1.295000 0.670000 1.298333
+ L 10824234 0.000000 0.193333 1.535000 0.670000 1.535000
+ L 10824234 0.000000 0.670000 1.535000 0.670000 1.651667
+ L 10824234 0.000000 0.670000 1.295833 0.670000 0.949167
+ L 10824234 0.000000 0.673333 0.946667 0.000000 1.126667
+ L 10824234 0.000000 0.006667 1.125000 0.000000 1.645000
+ END
+STRUCTURE N "Kato Unitrack Island Platform End, Type 3 23-104"
+ L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
+ L 10824234 0.000000 0.000000 1.653543 7.874016 1.653543
+ A 0 0.026667 0.141951 2.677166 0.826772 0.000000 360.000000
+ L 0 0.000000 4.842520 0.944882 3.267717 0.944882
+ L 0 0.000000 3.267717 0.944882 3.267717 0.708661
+ L 0 0.000000 3.267717 0.708661 4.842520 0.708661
+ L 0 0.000000 4.842520 0.708661 4.842520 0.944882
+ L 0 0.066667 4.330709 0.826772 3.779528 0.826772
+ A 10824234 0.000000 27.822226 0.000000 27.822226 165.000000 15.000000
+ L 0 0.026667 7.007874 1.614173 7.007874 1.023622
+ L 10824234 0.000000 7.677166 1.535433 7.677166 1.299213
+ L 10824234 0.000000 7.204725 1.535433 7.204725 1.299213
+ L 10824234 0.000000 7.322835 1.535433 7.322835 1.299213
+ L 10824234 0.000000 7.440945 1.535433 7.440945 1.299213
+ L 10824234 0.000000 7.559055 1.535433 7.559055 1.299213
+ L 10824234 0.000000 7.677349 1.295000 7.204016 1.298333
+ L 10824234 0.000000 7.680683 1.535000 7.204016 1.535000
+ L 10824234 0.000000 7.204016 1.535000 7.204016 1.651667
+ L 10824234 0.000000 7.204016 1.295833 7.204016 0.949167
+ L 10824234 0.000000 7.200683 0.946667 7.874016 1.126667
+ L 10824234 0.000000 7.867349 1.125000 7.874016 1.645000
+ END
+STRUCTURE N "Kato Unitrack Island Platform Type D 23-106"
+ L 10824234 0 0.000000 0.000000 0.000000 1.653543
+ L 10824234 0 0.000000 1.653543 9.763780 1.653543
+ L 10824234 0 9.763780 1.653543 9.763780 0.000000
+ L 10824234 0 9.763780 0.000000 0.000000 0.000000
+ END
+STRUCTURE N "Kato Unitrack One Sided Platform Type A 23-110"
+ L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
+ L 10824234 0.000000 0.000000 1.653543 9.763780 1.653543
+ L 10824234 0.000000 9.763780 1.653543 9.763780 0.000000
+ L 10824234 0.000000 9.763780 0.000000 0.000000 0.000000
+ L 10824234 0.000000 5.157480 1.141732 5.157480 0.511811
+ L 10824234 0.000000 0.078740 1.653543 0.078740 0.866142
+ L 10824234 0.000000 0.157480 1.653543 0.157480 0.984252
+ L 10824234 0.000000 0.236220 1.653543 0.236220 1.102362
+ L 10824234 0.000000 0.314961 1.653543 0.314961 1.220472
+ L 10824234 0.000000 0.393701 1.653543 0.393701 1.299213
+ L 10824234 0.000000 0.472441 1.653543 0.472441 1.377953
+ L 10824234 0.000000 0.551181 1.653543 0.551181 1.496063
+ L 10824234 0.000000 0.629921 1.653543 0.629921 1.614173
+ L 10824234 0.000000 9.685039 0.000000 9.685039 0.787402
+ L 10824234 0.000000 9.606299 0.000000 9.606299 0.669291
+ L 10824234 0.000000 9.527559 0.000000 9.527559 0.551181
+ L 10824234 0.000000 9.448819 0.000000 9.448819 0.433071
+ L 10824234 0.000000 9.370079 0.000000 9.370079 0.354331
+ L 10824234 0.000000 9.291339 0.000000 9.291339 0.236220
+ L 10824234 0.000000 9.212598 0.000000 9.212598 0.157480
+ L 10824234 0.000000 9.133858 0.000000 9.133858 0.039370
+ L 10824234 0.000000 1.181102 1.141732 8.582677 1.141732
+ L 10824234 0.000000 8.582677 1.141732 8.582677 0.511811
+ L 10824234 0.000000 8.582677 0.511811 1.181102 0.511811
+ L 10824234 0.000000 1.181102 0.511811 1.181102 1.141732
+ END
+STRUCTURE N "Kato Unitrack One Sided Platform Type B 23-111"
+ L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
+ L 10824234 0.000000 0.000000 1.653543 9.763780 1.653543
+ L 10824234 0.000000 9.763780 1.653543 9.763780 0.000000
+ L 10824234 0.000000 9.763780 0.000000 0.000000 0.000000
+ L 10824234 0.000000 5.157480 1.141732 5.157480 0.511811
+ L 10824234 0.000000 0.078740 1.653543 0.078740 0.866142
+ L 10824234 0.000000 0.157480 1.653543 0.157480 0.984252
+ L 10824234 0.000000 0.236220 1.653543 0.236220 1.102362
+ L 10824234 0.000000 0.314961 1.653543 0.314961 1.220472
+ L 10824234 0.000000 0.393701 1.653543 0.393701 1.299213
+ L 10824234 0.000000 0.472441 1.653543 0.472441 1.377953
+ L 10824234 0.000000 0.551181 1.653543 0.551181 1.496063
+ L 10824234 0.000000 0.629921 1.653543 0.629921 1.614173
+ L 10824234 0.000000 9.685039 0.000000 9.685039 0.787402
+ L 10824234 0.000000 9.606299 0.000000 9.606299 0.669291
+ L 10824234 0.000000 9.527559 0.000000 9.527559 0.551181
+ L 10824234 0.000000 9.448819 0.000000 9.448819 0.433071
+ L 10824234 0.000000 9.370079 0.000000 9.370079 0.354331
+ L 10824234 0.000000 9.291339 0.000000 9.291339 0.236220
+ L 10824234 0.000000 9.212598 0.000000 9.212598 0.157480
+ L 10824234 0.000000 9.133858 0.000000 9.133858 0.039370
+ L 10824234 0.000000 1.181102 1.141732 8.582677 1.141732
+ L 10824234 0.000000 8.582677 1.141732 8.582677 0.511811
+ L 10824234 0.000000 8.582677 0.511811 1.181102 0.511811
+ L 10824234 0.000000 1.181102 0.511811 1.181102 1.141732
+ END
+STRUCTURE N "Kato Unitrack One Sided Platform End Type 1 23-112"
+ L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
+ L 10824234 0.000000 0.000000 0.000000 7.874016 0.000000
+ L 10824234 0.000000 7.874016 0.000000 7.874016 1.653543
+ L 10824234 0.000000 7.874016 1.653543 0.000000 1.653543
+ L 10824234 0.000000 0.787402 1.653543 0.787402 0.000000
+ L 10824234 0.000000 0.787402 0.629921 0.196850 0.629921
+ L 10824234 0.000000 0.196850 0.629921 0.196850 0.984252
+ L 10824234 0.000000 0.196850 0.984252 0.787402 0.984252
+ L 10824234 0.000000 0.787402 0.984252 0.787402 0.629921
+ L 10824234 0.000000 0.669291 0.629921 0.669291 0.984252
+ L 10824234 0.000000 0.551181 0.629921 0.551181 0.984252
+ L 10824234 0.000000 0.433071 0.629921 0.433071 0.984252
+ L 10824234 0.000000 0.314961 0.629921 0.314961 0.984252
+ L 0 0.026667 0.866142 1.614173 0.866142 0.039370
+ A 0 0.026667 0.141951 5.196850 0.826772 0.000000 360.000000
+ L 0 0.000000 3.031496 0.944882 4.606299 0.944882
+ L 0 0.000000 4.606299 0.944882 4.606299 0.708661
+ L 0 0.000000 4.606299 0.708661 3.031496 0.708661
+ L 0 0.000000 3.031496 0.708661 3.031496 0.944882
+ L 0 0.066667 3.543307 0.826772 4.094488 0.826772
+ L 0 0.026667 0.866142 1.614173 7.874016 1.614173
+ END
+STRUCTURE N "Kato Unitrack One Sided Platform End Type 2 23-113"
+ L 10824234 0.000000 7.874016 0.000000 7.874016 1.653543
+ L 10824234 0.000000 7.874016 0.000000 0.000000 0.000000
+ L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
+ L 10824234 0.000000 0.000000 1.653543 7.874016 1.653543
+ L 10824234 0.000000 7.086614 1.653543 7.086614 0.000000
+ L 10824234 0.000000 7.086614 0.629921 7.677166 0.629921
+ L 10824234 0.000000 7.677166 0.629921 7.677166 0.984252
+ L 10824234 0.000000 7.677166 0.984252 7.086614 0.984252
+ L 10824234 0.000000 7.086614 0.984252 7.086614 0.629921
+ L 10824234 0.000000 7.204725 0.629921 7.204725 0.984252
+ L 10824234 0.000000 7.322835 0.629921 7.322835 0.984252
+ L 10824234 0.000000 7.440945 0.629921 7.440945 0.984252
+ L 10824234 0.000000 7.559055 0.629921 7.559055 0.984252
+ L 0 0.026667 7.007874 1.614173 7.007874 0.039370
+ A 0 0.026667 0.141951 2.677166 0.826772 0.000000 360.000000
+ L 0 0.000000 4.842520 0.944882 3.267717 0.944882
+ L 0 0.000000 3.267717 0.944882 3.267717 0.708661
+ L 0 0.000000 3.267717 0.708661 4.842520 0.708661
+ L 0 0.000000 4.842520 0.708661 4.842520 0.944882
+ L 0 0.066667 4.330709 0.826772 3.779528 0.826772
+ L 0 0.026667 7.007874 1.614173 0.000000 1.614173
+ END
+STRUCTURE N "Kato Unitrack Overhead Station 23-200"
+ L 10824234 0.000000 0.000000 5.393701 13.307087 5.393701
+ L 10824234 0.000000 12.952756 1.299213 3.188976 1.299213
+ L 10824234 0.000000 3.188976 1.299213 3.188976 2.952756
+ L 10824234 0.000000 3.188976 2.952756 12.952756 2.952756
+ L 10824234 0.000000 12.952756 2.952756 12.952756 1.299213
+ L 10824234 0.000000 12.165354 5.393701 12.165354 4.251969
+ L 10824234 0.000000 1.102362 5.393701 1.102362 4.251969
+ L 10824234 0.000000 7.874016 5.393701 7.874016 4.251969
+ L 10824234 0.000000 5.511811 5.393701 5.511811 4.251969
+ L 10824234 0.000000 7.913386 4.251969 7.913386 0.000000
+ L 10824234 0.000000 7.913386 0.000000 2.716535 0.000000
+ L 10824234 0.000000 2.716535 0.000000 2.716535 4.251969
+ L 10824234 0.000000 7.795276 4.251969 7.795276 0.157480
+ L 10824234 0.000000 7.795276 0.157480 4.330709 0.157480
+ L 10824234 0.000000 4.330709 0.157480 4.330709 4.251969
+ L 10824234 0.000000 4.330709 2.165354 7.795276 2.165354
+ L 10824234 0.000000 13.307087 5.393701 13.307087 4.251969
+ L 10824234 0.000000 0.000000 5.393701 0.000000 4.251969
+ L 10824234 0.000000 7.952756 2.637795 11.574803 2.637795
+ L 10824234 0.000000 11.574803 2.637795 11.574803 1.692913
+ L 10824234 0.000000 11.574803 1.692913 7.952756 1.692913
+ L 10824234 0.000000 10.866142 2.637795 10.866142 1.692913
+ L 10824234 0.000000 10.118110 2.637795 10.118110 1.692913
+ L 10824234 0.000000 0.000000 4.251969 4.330709 4.251969
+ L 10824234 0.000000 4.330709 4.251969 7.795276 4.251969
+ L 10824234 0.000000 7.874016 4.251969 13.267717 4.251969
+ END
+STRUCTURE N "Kato Unitrack Station Entrance 23-210"
+ L 10824234 0.000000 0.000000 0.000000 0.000000 2.874016
+ L 10824234 0.000000 4.921260 0.000000 0.000000 0.000000
+ L 10824234 0.000000 0.000000 1.417323 4.055118 1.417323
+ L 10824234 0.000000 4.055118 2.874016 4.055118 0.000000
+ L 10824234 0.000000 4.055118 1.574803 4.921260 1.574803
+ L 10824234 0.000000 4.921260 1.574803 4.921260 0.000000
+ L 10824234 0.000000 0.000000 2.874016 4.055118 2.874016
+ L 10824234 0.000000 3.779528 0.000000 3.779528 1.299213
+ L 10824234 0.000000 3.503937 0.000000 3.503937 1.181102
+ L 10824234 0.000000 3.228346 0.000000 3.228346 1.062992
+ L 10824234 0.000000 2.952756 0.000000 2.952756 0.944882
+ L 10824234 0.000000 2.677165 0.000000 2.677165 0.826772
+ L 10824234 0.000000 0.275591 2.874016 0.275591 1.535433
+ L 10824234 0.000000 0.551181 2.874016 0.551181 1.692913
+ L 10824234 0.000000 0.826772 2.874016 0.826772 1.811024
+ L 10824234 0.000000 1.102362 2.874016 1.102362 1.929134
+ L 10824234 0.000000 1.377953 2.874016 1.377953 2.047244
+ L 10824234 0.000000 4.055118 0.039370 4.921260 0.039370
+ L 10824234 0.000000 4.055118 1.535433 4.921260 1.535433
+ L 10824234 0.000000 4.055118 0.275591 4.685039 0.275591
+ L 10824234 0.000000 4.055118 0.511811 4.448819 0.511811
+ L 10824234 0.000000 4.921260 1.299213 4.330709 1.299213
+ L 10824234 0.000000 4.921260 1.062992 4.527559 1.062992
+ END
+STRUCTURE N "Kato Unitrack Long Engine House 23-300"
+ L 10824234 0.000000 0.000000 0.000000 0.000000 3.779528
+ L 10824234 0.000000 0.000000 3.779528 7.362205 3.779528
+ L 10824234 0.000000 7.362205 3.779528 7.362205 0.000000
+ L 10824234 0.000000 7.362205 0.000000 0.000000 0.000000
+ L 10824234 0.000000 0.275591 0.393701 0.787402 0.393701
+ L 10824234 0.000000 0.787402 0.393701 0.787402 3.385827
+ L 10824234 0.000000 0.787402 3.385827 0.275591 3.385827
+ L 10824234 0.000000 0.275591 3.385827 0.275591 0.393701
+ L 10824234 0.000000 1.062992 0.393701 1.574803 0.393701
+ L 10824234 0.000000 1.574803 0.393701 1.574803 3.385827
+ L 10824234 0.000000 1.574803 3.385827 1.062992 3.385827
+ L 10824234 0.000000 1.062992 3.385827 1.062992 0.393701
+ L 10824234 0.000000 1.850394 0.393701 2.362205 0.393701
+ L 10824234 0.000000 2.362205 0.393701 2.362205 3.385827
+ L 10824234 0.000000 2.362205 3.385827 1.850394 3.385827
+ L 10824234 0.000000 1.850394 3.385827 1.850394 0.393701
+ L 10824234 0.000000 2.637795 0.393701 3.149606 0.393701
+ L 10824234 0.000000 3.149606 0.393701 3.149606 3.385827
+ L 10824234 0.000000 3.149606 3.385827 2.637795 3.385827
+ L 10824234 0.000000 2.637795 3.385827 2.637795 0.393701
+ L 10824234 0.000000 3.425197 0.393701 3.937008 0.393701
+ L 10824234 0.000000 3.937008 0.393701 3.937008 3.385827
+ L 10824234 0.000000 3.937008 3.385827 3.425197 3.385827
+ L 10824234 0.000000 3.425197 3.385827 3.425197 0.393701
+ L 10824234 0.000000 4.212598 0.393701 4.724409 0.393701
+ L 10824234 0.000000 4.724409 0.393701 4.724409 3.385827
+ L 10824234 0.000000 4.724409 3.385827 4.212598 3.385827
+ L 10824234 0.000000 4.212598 3.385827 4.212598 0.393701
+ L 10824234 0.000000 5.000000 0.393701 5.511811 0.393701
+ L 10824234 0.000000 5.511811 0.393701 5.511811 3.385827
+ L 10824234 0.000000 5.511811 3.385827 5.000000 3.385827
+ L 10824234 0.000000 5.000000 3.385827 5.000000 0.393701
+ L 10824234 0.000000 5.787402 0.393701 6.299213 0.393701
+ L 10824234 0.000000 6.299213 0.393701 6.299213 3.385827
+ L 10824234 0.000000 6.299213 3.385827 5.787402 3.385827
+ L 10824234 0.000000 5.787402 3.385827 5.787402 0.393701
+ L 10824234 0.000000 6.574803 0.393701 7.086614 0.393701
+ L 10824234 0.000000 7.086614 0.393701 7.086614 3.385827
+ L 10824234 0.000000 7.086614 3.385827 6.574803 3.385827
+ L 10824234 0.000000 6.574803 3.385827 6.574803 0.393701
+ L 10824234 0.000000 0.275591 3.464567 0.472441 3.464567
+ L 10824234 0.000000 0.472441 3.464567 0.472441 3.661417
+ L 10824234 0.000000 0.472441 3.661417 0.275591 3.661417
+ L 10824234 0.000000 0.275591 3.661417 0.275591 3.464567
+ L 10824234 0.000000 0.275591 0.314961 0.472441 0.314961
+ L 10824234 0.000000 0.472441 0.314961 0.472441 0.118110
+ L 10824234 0.000000 0.472441 0.118110 0.275591 0.118110
+ L 10824234 0.000000 0.275591 0.118110 0.275591 0.314961
+ L 10824234 0.000000 7.086614 0.314961 6.889764 0.314961
+ L 10824234 0.000000 6.889764 0.314961 6.889764 0.118110
+ L 10824234 0.000000 6.889764 0.118110 7.086614 0.118110
+ L 10824234 0.000000 7.086614 0.118110 7.086614 0.314961
+ L 10824234 0.000000 7.086614 3.464567 6.889764 3.464567
+ L 10824234 0.000000 6.889764 3.464567 6.889764 3.661417
+ L 10824234 0.000000 6.889764 3.661417 7.086614 3.661417
+ L 10824234 0.000000 7.086614 3.661417 7.086614 3.464567
+ L 10824234 0.000000 3.582677 0.314961 3.779528 0.314961
+ L 10824234 0.000000 3.779528 0.314961 3.779528 0.118110
+ L 10824234 0.000000 3.779528 0.118110 3.582677 0.118110
+ L 10824234 0.000000 3.582677 0.118110 3.582677 0.314961
+ L 10824234 0.000000 3.582677 3.464567 3.779528 3.464567
+ L 10824234 0.000000 3.779528 3.464567 3.779528 3.661417
+ L 10824234 0.000000 3.779528 3.661417 3.582677 3.661417
+ L 10824234 0.000000 3.582677 3.661417 3.582677 3.464567
+ END
+STRUCTURE N "Kato Unitrack Industrial Building 23-310"
+ L 10824234 0 0.000000 0.000000 0.000000 2.952756
+ L 10824234 0 0.000000 2.952756 5.905512 2.952756
+ L 10824234 0 5.905512 2.952756 5.905512 0.000000
+ L 10824234 0 5.905512 0.000000 0.000000 0.000000
+ END
+STRUCTURE N "Kato Unitrack Station Office 23-315a"
+ L 10824234 0 0.000000 0.000000 0.000000 1.574803
+ L 10824234 0 0.000000 1.574803 2.421260 1.574803
+ L 10824234 0 2.421260 1.574803 2.421260 0.000000
+ L 10824234 0 2.421260 0.000000 0.000000 0.000000
+ END
+STRUCTURE N "Kato Unitrack Signal Tower 23-315b"
+ L 10824234 0 0.000000 0.000000 0.000000 1.102362
+ L 10824234 0 0.000000 1.102362 2.283465 1.102362
+ L 10824234 0 2.283465 1.102362 2.283465 0.000000
+ L 10824234 0 2.283465 0.000000 0.000000 0.000000
+ END
+STRUCTURE N "Kato Unitrack Building 2x4 23-2x4"
+ L 10824234 0 0.000000 0.000000 0.000000 2.000000
+ L 10824234 0 0.000000 2.000000 4.000000 2.000000
+ L 10824234 0 4.000000 2.000000 4.000000 0.000000
+ L 10824234 0 4.000000 0.000000 0.000000 0.000000
+ END
+STRUCTURE N "Kato Unitrack Building 4x5 23-4x5"
+ L 10824234 0 0.000000 0.000000 0.000000 4.000000
+ L 10824234 0 0.000000 4.000000 5.000000 4.000000
+ L 10824234 0 5.000000 4.000000 5.000000 0.000000
+ L 10824234 0 5.000000 0.000000 0.000000 0.000000
+ END
+STRUCTURE N "Kato Unitrack Building 4x6 23-4x6"
+ L 10824234 0 0.000000 0.000000 0.000000 4.000000
+ L 10824234 0 0.000000 4.000000 6.000000 4.000000
+ L 10824234 0 6.000000 4.000000 6.000000 0.000000
+ L 10824234 0 6.000000 0.000000 0.000000 0.000000
+ END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale Turntable and Accessories
+TURNOUT N "Kato Unitrack 3 Stall Round House 20-240"
+ P "Normal" 1
+ E -0.148334 1.695463 260.000000
+ E 0.000000 0.000000 270.000000
+ E -0.148334 -1.695463 280.000000
+ S 0 0.000000 -0.148334 1.695463 7.063251 2.967059
+ S 0 0.000000 0.000000 0.000000 7.322835 0.000000
+ S 0 0.000000 -0.148334 -1.695463 7.063251 -2.967059
+ F 12632256 0.000000 8
+ -0.296668 2.536705 0
+ 7.338100 4.582435 0
+ 7.874016 1.543107 0
+ 7.874016 -1.543107 0
+ 7.338100 -4.582435 0
+ -0.296668 -2.536705 0
+ 0.000000 -0.854220 0
+ 0.000000 0.854220 0
+ G 0 0.000000 0.200000 0.750000 0.000000 0
+ G 0 0.000000 0.200000 7.125000 0.000000 0
+ G 0 0.000000 0.200000 0.590272 1.825699 0
+ G 0 0.000000 0.200000 6.868421 2.932706 0
+ G 0 0.000000 0.200000 0.590272 -1.825699 0
+ G 0 0.000000 0.200000 6.868421 -2.932706 0
+ L 0 0.031250 -0.296668 2.536705 7.338100 4.582435
+ L 0 0.031250 0.000000 0.854220 7.874016 1.543107
+ L 0 0.031250 0.000000 -0.854220 7.874016 -1.543107
+ L 0 0.031250 -0.296668 -2.536705 7.338100 -4.582435
+ L 0 0.031250 0.000000 0.854220 -0.296668 2.536705
+ L 0 0.031250 0.000000 0.854220 0.000000 -0.854220
+ L 0 0.031250 0.000000 -0.854220 -0.296668 -2.536705
+ L 0 0.031250 7.874016 1.543107 7.338100 4.582435
+ L 0 0.031250 7.874016 1.543107 7.874016 -1.543107
+ L 0 0.031250 7.874016 -1.543107 7.338100 -4.582435
+END
+TURNOUT N "Kato Unitrack 139.5mm Straight Extension Line 20-285"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.492126 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 5.492126 0.000000
+ L 0 0.031250 0.000000 0.372299 5.492126 0.854220
+ L 0 0.031250 0.000000 -0.372299 5.492126 -0.854220
+ L 0 0.031250 5.492126 0.854220 5.492126 -0.854220
+END
+TURNOUT N "Kato Unitrack Curve (L) Extension Line 20-286L"
+ P "Normal" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 5.569398 -0.415987 100.000000
+ S 0 0.000000 0.000000 0.000000 0.935511 0.000000
+ C 0 0 26.000000 0.935511 -26.000000 0.000000 10.000000
+ S 0 0.000000 5.450363 -0.394998 5.569398 -0.415987
+ L 0 0.031250 0.000000 0.372299 5.492126 0.854220
+ L 0 0.031250 0.000000 -0.372299 5.492126 -0.854220
+ L 0 0.031250 5.642748 0.000000 5.492126 -0.854220
+ L 0 0.031250 5.642748 0.000000 5.492126 0.854220
+END
+TURNOUT N "Kato Unitrack Curve (R) Extension Line 20-286R"
+ P "Normal" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 5.569398 0.415987 80.000000
+ S 0 0.000000 0.000000 0.000000 0.935511 0.000000
+ C 0 0 -26.000000 0.935511 26.000000 170.000000 10.000000
+ S 0 0.000000 5.450363 0.394998 5.569398 0.415987
+ L 0 0.031250 0.000000 -0.372299 5.492126 -0.854220
+ L 0 0.031250 0.000000 0.372299 5.492126 0.854220
+ L 0 0.031250 5.642748 0.000000 5.492126 -0.854220
+ L 0 0.031250 5.642748 0.000000 5.492126 0.854220
+END
+TURNOUT N "Kato Unitrack Curve 15R 381mm 10° 381-10"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.604723 -0.227884 100.000000
+ C 0 0 15.000000 0.000000 -15.000000 0.000000 10.000000
+ A 11579568 0.053333 14.554226 0.000000 -15.000000 0.000000 10.000000
+ A 11579568 0.053333 15.445774 0.000000 -15.000000 0.000000 10.000000
+END
+TURNOUT N "Kato Unitrack Track Turntable Section 20-283A"
+ P "Normal" 1
+ E 3.101756 0.546923 260.000000
+ E 4.206758 0.741765 80.000000
+ E 3.149606 0.000000 270.000000
+ E 4.271654 0.000000 90.000000
+ E 3.101756 -0.546923 280.000000
+ E 4.206758 -0.741765 100.000000
+ S 0 0.000000 3.101756 0.546923 4.206758 0.741765
+ S 0 0.000000 3.149606 0.000000 4.271654 0.000000
+ S 0 0.000000 3.101756 -0.546923 4.206758 -0.741765
+ A 11579568 0.031250 3.149606 0.000000 0.000000 75.000000 30.00000
+ A 11579568 0.031250 4.271654 0.000000 0.000000 75.000000 30.000000
+ L 0 0.031250 3.042286 0.815178 4.126100 1.105585
+ L 0 0.031250 3.042286 -0.815178 4.126100 -1.105585
+END
+TURNOUT N "Kato Unitrack 160mm Turn Table 20-283"
+ P "1" 1
+ P "2" 2
+ P "3" 3
+ P "4" 4
+ P "5" 5
+ P "6" 6
+ P "7" 7
+ P "8" 8
+ P "9" 9
+ P "10" 10
+ P "11" 11
+ P "12" 12
+ P "13" 13
+ P "14" 14
+ P "15" 15
+ P "16" 16
+ P "17" 17
+ P "18" 18
+ E 0.000000 0.000000 0.000000
+ E 0.000000 3.149606 0.000000
+ E 0.546923 3.101757 10.000000
+ E 1.077229 2.959662 20.000000
+ E 1.574803 2.727639 30.000000
+ E 2.024528 2.412738 40.000000
+ E 2.412738 2.024528 50.000000
+ E 2.727639 1.574803 60.000000
+ E 2.959662 1.077229 70.000000
+ E 3.101757 0.546923 80.000000
+ E 3.149606 0.000000 90.000000
+ E 3.101757 -0.546923 100.000000
+ E 2.959662 -1.077229 110.000000
+ E 2.727639 -1.574803 120.000000
+ E 2.412738 -2.024528 130.000000
+ E 2.024528 -2.412738 140.000000
+ E 1.574803 -2.727639 150.000000
+ E 1.077229 -2.959662 160.000000
+ E 0.546923 -3.101757 170.000000
+ E 0.000000 -3.149606 180.000000
+ E -0.546923 -3.101757 190.000000
+ E -1.077229 -2.959662 200.000000
+ E -1.574803 -2.727639 210.000000
+ E -2.024528 -2.412738 220.000000
+ E -2.412738 -2.024528 230.000000
+ E -2.727639 -1.574803 240.000000
+ E -2.959662 -1.077229 250.000000
+ E -3.101757 -0.546923 260.000000
+ E -3.149606 0.000000 270.000000
+ E -3.101757 0.546923 280.000000
+ E -2.959662 1.077229 290.000000
+ E -2.727639 1.574803 300.000000
+ E -2.412738 2.024528 310.000000
+ E -2.024528 2.412738 320.000000
+ E -1.574803 2.727639 330.000000
+ E -1.077229 2.959662 340.000000
+ E -0.546923 3.101757 350.000000
+ S 0 0.000000 0.000000 3.149606 0.000000 -3.149606
+ S 0 0.000000 0.546923 3.101757 -0.546923 -3.101757
+ S 0 0.000000 1.077229 2.959662 -1.077229 -2.959662
+ S 0 0.000000 1.574803 2.727639 -1.574803 -2.727639
+ S 0 0.000000 2.024528 2.412738 -2.024528 -2.412738
+ S 0 0.000000 2.412738 2.024528 -2.412738 -2.024528
+ S 0 0.000000 2.727639 1.574803 -2.727639 -1.574803
+ S 0 0.000000 2.959662 1.077229 -2.959662 -1.077229
+ S 0 0.000000 3.101757 0.546923 -3.101757 -0.546923
+ S 0 0.000000 3.149606 0.000000 -3.149606 0.000000
+ S 0 0.000000 3.101757 -0.546923 -3.101757 0.546923
+ S 0 0.000000 2.959662 -1.077229 -2.959662 1.077229
+ S 0 0.000000 2.727639 -1.574803 -2.727639 1.574803
+ S 0 0.000000 2.412738 -2.024528 -2.412738 2.024528
+ S 0 0.000000 2.024528 -2.412738 -2.024528 2.412738
+ S 0 0.000000 1.574803 -2.727639 -1.574803 2.727639
+ S 0 0.000000 1.077229 -2.959662 -1.077229 2.959662
+ S 0 0.000000 0.546923 -3.101757 -0.546923 3.101757
+ A 11579568 0.031250 3.149606 0.000000 0.000000 0.000000 360.000000
+ A 11579568 0.031250 4.271654 0.000000 0.000000 0.000000 360.000000
+END
diff --git a/app/lib/params/N-walth-n.xtp b/app/lib/params/N-walth-n.xtp
new file mode 100644
index 0000000..7d43e9e
--- /dev/null
+++ b/app/lib/params/N-walth-n.xtp
@@ -0,0 +1,3050 @@
+CONTENTS Walthers Cornerstone N Structures
+SUBCONTENTS Walthers Cornerstone N Structures - Power Industries
+STRUCTURE N "Walthers Nothern Light Powerhouse 933-3214"
+ L 0 0 0.000000 0.000000 4.125000 0.000000
+ L 0 0 4.125000 0.000000 4.125000 2.625000
+ L 0 0 4.125000 2.625000 0.000000 2.625000
+ L 0 0 0.000000 2.625000 0.000000 0.000000
+ A 0 0 0.125000 0.500000 0.500000 0.000000 360.000000
+ A 0 0 0.125000 3.625000 0.500000 0.000000 360.000000
+ A 0 0 0.125000 1.500000 0.500000 0.000000 360.000000
+ A 0 0 0.139754 2.625000 0.500000 0.000000 360.000000
+ A 0 0 0.534000 4.875000 2.187500 0.000000 360.000000
+ A 0 0 0.000000 4.937500 2.062500 0.000000 360.000000
+ A 0 0 0.364434 4.875000 2.187500 0.000000 360.000000
+ END
+
+SUBCONTENTS Walthers Cornerstone N Structures - Coal Industries
+STRUCTURE N "Walthers Diamond Coal Corp. 933-3836"
+ F3 14531987 0.000000 4
+ 9.774702 0.390631 0
+ 9.774704 1.640631 0
+ 10.024704 1.640630 0
+ 10.024702 0.390630 0
+ F3 14531987 0.000000 4
+ 13.087202 0.140626 0
+ 13.087204 1.640626 0
+ 13.337204 1.640626 0
+ 13.337202 0.140626 0
+ F3 14531987 0.000000 4
+ 13.337204 1.640626 0
+ 13.337204 1.890626 0
+ 8.774704 1.890632 0
+ 8.774704 1.640632 0
+ A3 0 0.020833 0.750000 9.087212 7.703132 0 270.000000 360.000000
+ L3 0 0.052083 13.399706 3.640626 0 13.399704 1.890626 0
+ L3 0 0.052083 13.399706 3.640626 0 13.399710 6.640626 0
+ L3 0 0.052083 8.399711 7.015633 0 8.399711 7.015633 0
+ L3 0 0.052083 9.274711 6.890631 0 9.899711 6.890631 0
+ L3 0 0.052083 8.899711 6.890632 0 8.274711 6.890633 0
+ L3 0 0.052083 8.274711 6.890633 0 8.274713 8.515633 0
+ L3 0 0.052083 8.274713 8.515633 0 9.899713 8.515631 0
+ L3 0 0.052083 9.899713 8.515631 0 9.899711 6.890631 0
+ L3 0 0.041667 0.274705 2.390643 0 0.274704 2.015643 0
+ L3 0 0.041667 0.274704 2.015643 0 0.399704 2.015643 0
+ L3 0 0.041667 0.399704 2.015643 0 0.399705 2.390643 0
+ L3 0 0.041667 7.274709 5.640634 0 7.274709 5.640634 0
+ L3 0 0.041667 5.649707 4.265636 0 5.649707 4.265636 0
+ F3 14737632 0.000000 4
+ 8.399711 7.140633 0
+ 8.399713 8.265633 0
+ 9.524713 8.265631 0
+ 9.524711 7.140631 0
+ L3 0 0.052083 9.524711 7.140631 0 9.524713 8.265631 0
+ L3 0 0.052083 8.399713 8.265633 0 9.524713 8.265631 0
+ L3 8421504 0.020833 8.962211 7.140632 0 8.962213 8.265632 0
+ L3 8421504 0.020833 8.524711 7.265632 0 9.399711 7.265631 0
+ L3 8421504 0.020833 9.399711 7.390631 0 8.524711 7.390632 0
+ L3 8421504 0.020833 8.524712 7.515632 0 9.399712 7.515631 0
+ L3 8421504 0.020833 8.524712 7.640632 0 9.399712 7.640631 0
+ L3 8421504 0.020833 9.399712 7.765631 0 8.524712 7.765632 0
+ L3 8421504 0.020833 9.399712 7.890631 0 8.524712 7.890632 0
+ L3 8421504 0.020833 8.524712 8.015632 0 9.399712 8.015631 0
+ L3 8421504 0.020833 9.399712 8.140631 0 8.524712 8.140632 0
+ L3 0 0.052083 8.399713 8.265633 0 8.399711 7.140633 0
+ L3 0 0.052083 8.399711 7.140633 0 8.899711 7.140632 0
+ L3 0 0.052083 9.274711 7.140631 0 9.524711 7.140631 0
+ F3 14737632 0.000000 4
+ 8.899706 3.640632 0
+ 8.899711 7.140632 0
+ 9.274711 7.140631 0
+ 9.274706 3.640631 0
+ L3 0 0.052083 8.899711 7.140632 0 9.274711 7.140631 0
+ L3 0 0.052083 8.899706 3.640632 0 8.899711 7.140632 0
+ L3 0 0.052083 9.274711 7.140631 0 9.274706 3.640631 0
+ L3 8421504 0.020833 9.087206 3.640632 0 9.087211 7.140632 0
+ L3 8421504 0.020833 9.024707 3.765632 0 9.149707 3.765632 0
+ L3 8421504 0.020833 9.024707 3.890632 0 9.149707 3.890632 0
+ L3 8421504 0.020833 9.024707 4.015632 0 9.149707 4.015632 0
+ L3 8421504 0.020833 9.024707 4.140632 0 9.149707 4.140632 0
+ L3 8421504 0.020833 9.024707 4.390632 0 9.149707 4.390632 0
+ L3 8421504 0.020833 9.024707 4.265632 0 9.149707 4.265632 0
+ L3 8421504 0.020833 9.024708 4.515632 0 9.149708 4.515632 0
+ L3 8421504 0.020833 9.024708 4.640632 0 9.149708 4.640632 0
+ L3 8421504 0.020833 9.024708 4.765632 0 9.149708 4.765632 0
+ L3 8421504 0.020833 9.024708 4.890632 0 9.149708 4.890632 0
+ L3 8421504 0.020833 9.024708 5.015632 0 9.149708 5.015632 0
+ L3 8421504 0.020833 9.024709 5.265632 0 9.149709 5.265632 0
+ L3 8421504 0.020833 9.024708 5.140632 0 9.149708 5.140632 0
+ L3 8421504 0.020833 9.024709 5.390632 0 9.149709 5.390632 0
+ L3 8421504 0.020833 9.024709 5.515632 0 9.149709 5.515632 0
+ L3 8421504 0.020833 9.024709 5.640632 0 9.149709 5.640632 0
+ L3 8421504 0.020833 9.024709 5.765632 0 9.149709 5.765632 0
+ L3 8421504 0.020833 9.024709 5.890632 0 9.149709 5.890632 0
+ L3 8421504 0.020833 9.024710 6.015632 0 9.149710 6.015632 0
+ L3 8421504 0.020833 9.024710 6.140632 0 9.149710 6.140632 0
+ L3 8421504 0.020833 9.024710 6.265632 0 9.149710 6.265632 0
+ L3 8421504 0.020833 9.024710 6.390632 0 9.149710 6.390632 0
+ L3 8421504 0.020833 9.024710 6.515632 0 9.149710 6.515632 0
+ L3 8421504 0.020833 9.024710 6.640632 0 9.149710 6.640632 0
+ L3 8421504 0.020833 9.024711 6.765632 0 9.149711 6.765632 0
+ L3 8421504 0.020833 9.024711 6.890632 0 9.149711 6.890632 0
+ L3 8421504 0.020833 9.024711 7.015632 0 9.149711 7.015632 0
+ F3 14737632 0.000000 4
+ 9.899706 3.640631 0
+ 9.899710 6.640631 0
+ 13.399710 6.640626 0
+ 13.399706 3.640626 0
+ L3 0 0.052083 13.399710 6.640626 0 9.899710 6.640631 0
+ L3 8421504 0.020833 13.274707 3.765626 0 10.024707 3.765630 0
+ L3 8421504 0.020833 10.024707 3.890630 0 13.274707 3.890626 0
+ L3 8421504 0.020833 13.274707 4.015626 0 10.024707 4.015630 0
+ L3 8421504 0.020833 10.024707 4.140630 0 13.274707 4.140626 0
+ L3 8421504 0.020833 13.274707 4.265626 0 10.024707 4.265630 0
+ L3 8421504 0.020833 10.024707 4.390630 0 13.274707 4.390626 0
+ L3 8421504 0.020833 13.274708 4.515626 0 10.024708 4.515630 0
+ L3 8421504 0.020833 10.024708 4.640630 0 13.274708 4.640626 0
+ L3 8421504 0.020833 13.274708 4.765626 0 10.024708 4.765630 0
+ L3 8421504 0.020833 10.024708 4.890630 0 13.274708 4.890626 0
+ L3 8421504 0.020833 13.274708 5.015626 0 10.024708 5.015630 0
+ L3 8421504 0.020833 10.024708 5.140630 0 13.274708 5.140626 0
+ L3 8421504 0.020833 13.274709 5.265626 0 10.024709 5.265630 0
+ L3 8421504 0.020833 10.024709 5.390630 0 13.274709 5.390626 0
+ L3 8421504 0.020833 13.274709 5.515626 0 10.024709 5.515630 0
+ L3 8421504 0.020833 10.024709 5.640630 0 13.274709 5.640626 0
+ L3 8421504 0.020833 13.274709 5.765626 0 10.024709 5.765630 0
+ L3 8421504 0.020833 10.024709 5.890630 0 13.274709 5.890626 0
+ L3 8421504 0.020833 13.274710 6.015626 0 10.024710 6.015630 0
+ L3 8421504 0.020833 10.024710 6.140630 0 13.274710 6.140626 0
+ L3 8421504 0.020833 13.274710 6.265626 0 10.024710 6.265630 0
+ L3 8421504 0.020833 10.024710 6.390630 0 13.274710 6.390626 0
+ L3 8421504 0.020833 13.274710 6.515626 0 10.024710 6.515630 0
+ L3 0 0.052083 9.899710 6.640631 0 9.899706 3.640631 0
+ L3 0 0.020833 11.649710 6.640628 0 11.649706 3.640628 0
+ F3 14737632 0.000000 4
+ 13.399704 1.890626 0
+ 13.399706 3.640626 0
+ 6.649706 3.640635 0
+ 6.649704 1.890635 0
+ F3 14737632 0.000000 4
+ 8.774706 3.640632 0
+ 8.774708 4.515632 0
+ 6.649708 4.515635 0
+ 6.649706 3.640635 0
+ F3 14737632 0.000000 4
+ 8.774703 1.015632 0
+ 8.774704 1.890632 0
+ 6.649704 1.890635 0
+ 6.649703 1.015635 0
+ L3 0 0.052083 6.649704 1.890635 0 6.649706 3.640635 0
+ L3 0 0.052083 6.649706 3.640635 0 6.649708 4.515635 0
+ L3 0 0.052083 6.649704 1.890635 0 6.649703 1.015635 0
+ L3 8421504 0.020833 6.774704 1.765635 0 6.774703 1.140635 0
+ L3 8421504 0.020833 6.899704 1.765635 0 6.899703 1.140635 0
+ L3 8421504 0.020833 7.024704 1.765634 0 7.024703 1.140634 0
+ L3 8421504 0.020833 7.149704 1.765634 0 7.149703 1.140634 0
+ L3 8421504 0.020833 7.274704 1.765634 0 7.274703 1.140634 0
+ L3 8421504 0.020833 7.399704 1.765634 0 7.399703 1.140634 0
+ L3 8421504 0.020833 7.524704 1.765634 0 7.524703 1.140634 0
+ L3 8421504 0.020833 7.649704 1.765634 0 7.649703 1.140634 0
+ L3 8421504 0.020833 7.774704 1.765633 0 7.774703 1.140633 0
+ L3 8421504 0.020833 7.899704 1.765633 0 7.899703 1.140633 0
+ L3 8421504 0.020833 8.024704 1.765633 0 8.024703 1.140633 0
+ L3 8421504 0.020833 8.149704 1.765633 0 8.149703 1.140633 0
+ L3 8421504 0.020833 8.274704 1.765633 0 8.274703 1.140633 0
+ L3 8421504 0.020833 8.399704 1.765633 0 8.399703 1.140633 0
+ L3 8421504 0.020833 8.524704 1.765632 0 8.524703 1.140632 0
+ L3 8421504 0.020833 8.649704 1.765632 0 8.649703 1.140632 0
+ L3 8421504 0.020833 6.774707 3.765635 0 6.774707 4.390635 0
+ L3 8421504 0.020833 6.899707 3.765635 0 6.899707 4.390635 0
+ L3 8421504 0.020833 7.024707 4.390634 0 7.024707 3.765634 0
+ L3 8421504 0.020833 7.024707 4.390635 0 7.024707 4.390634 0
+ L3 8421504 0.020833 7.024707 4.390635 0 7.024707 4.390635 0
+ L3 8421504 0.020833 7.149707 4.390634 0 7.149707 3.765634 0
+ L3 8421504 0.020833 7.274707 3.765634 0 7.274707 4.390634 0
+ L3 8421504 0.020833 7.399707 4.390634 0 7.399707 3.765634 0
+ L3 8421504 0.020833 7.524707 4.390634 0 7.524707 3.765634 0
+ L3 8421504 0.020833 7.649707 3.765634 0 7.649707 4.390634 0
+ L3 8421504 0.020833 7.774707 4.390633 0 7.774707 3.765633 0
+ L3 8421504 0.020833 7.899707 3.765633 0 7.899707 4.390633 0
+ L3 8421504 0.020833 8.024707 4.390633 0 8.024707 3.765633 0
+ L3 8421504 0.020833 8.149707 3.765633 0 8.149707 4.390633 0
+ L3 8421504 0.020833 8.274707 4.390633 0 8.274707 3.765633 0
+ L3 8421504 0.020833 8.399707 3.765633 0 8.399707 4.390633 0
+ L3 8421504 0.020833 8.524707 3.765632 0 8.524707 4.390632 0
+ L3 8421504 0.020833 8.649707 4.390632 0 8.649707 3.765632 0
+ L3 8421504 0.020833 7.274706 3.515634 0 7.274704 2.015634 0
+ L3 8421504 0.020833 7.399704 2.015634 0 7.399706 3.515634 0
+ L3 8421504 0.020833 7.524706 3.515634 0 7.524704 2.015634 0
+ L3 8421504 0.020833 7.649704 2.015634 0 7.649706 3.515634 0
+ L3 8421504 0.020833 7.774706 3.515633 0 7.774704 2.015633 0
+ L3 8421504 0.020833 7.899704 2.015633 0 7.899706 3.515633 0
+ L3 8421504 0.020833 8.024706 3.515633 0 8.024704 2.015633 0
+ L3 8421504 0.020833 8.149704 2.015633 0 8.149706 3.515633 0
+ L3 8421504 0.020833 8.274706 3.515633 0 8.274704 2.015633 0
+ L3 8421504 0.020833 8.399704 2.015633 0 8.399706 3.515633 0
+ L3 8421504 0.020833 8.524706 3.515632 0 8.524704 2.015632 0
+ L3 8421504 0.020833 7.149706 3.515634 0 7.149704 2.015634 0
+ L3 8421504 0.020833 7.024704 2.015634 0 7.024706 3.515634 0
+ L3 8421504 0.020833 6.899706 3.515635 0 6.899704 2.015635 0
+ L3 8421504 0.020833 6.774704 2.015635 0 6.774706 3.515635 0
+ L3 8421504 0.020833 8.774706 3.515632 0 8.774704 2.015632 0
+ L3 8421504 0.020833 8.899704 2.015632 0 8.899706 3.515632 0
+ L3 8421504 0.020833 9.024706 3.515632 0 9.024704 2.015632 0
+ L3 8421504 0.020833 9.149704 2.015632 0 9.149706 3.515632 0
+ L3 8421504 0.020833 9.274706 3.515631 0 9.274704 2.015631 0
+ L3 8421504 0.020833 9.399704 2.015631 0 9.399706 3.515631 0
+ L3 8421504 0.020833 9.524706 3.515631 0 9.524704 2.015631 0
+ L3 8421504 0.020833 9.649704 2.015631 0 9.649706 3.515631 0
+ L3 8421504 0.020833 9.774706 3.515631 0 9.774704 2.015631 0
+ L3 8421504 0.020833 9.899704 2.015631 0 9.899706 3.515631 0
+ L3 8421504 0.020833 10.024706 3.515630 0 10.024704 2.015630 0
+ L3 8421504 0.020833 10.149704 2.015630 0 10.149706 3.515630 0
+ L3 8421504 0.020833 10.274706 3.515630 0 10.274704 2.015630 0
+ L3 8421504 0.020833 10.524704 2.015630 0 10.524706 3.515630 0
+ L3 8421504 0.020833 10.399706 3.515630 0 10.399704 2.015630 0
+ L3 8421504 0.020833 10.649704 2.015630 0 10.649706 3.515630 0
+ L3 8421504 0.020833 10.774706 3.515629 0 10.774704 2.015629 0
+ L3 8421504 0.020833 10.899704 2.015629 0 10.899706 3.515629 0
+ L3 8421504 0.020833 11.024706 3.515629 0 11.024704 2.015629 0
+ L3 8421504 0.020833 11.149704 2.015629 0 11.149706 3.515629 0
+ L3 8421504 0.020833 11.274706 3.515629 0 11.274704 2.015629 0
+ L3 8421504 0.020833 11.399704 2.015629 0 11.399706 3.515629 0
+ L3 8421504 0.020833 11.524706 3.515628 0 11.524704 2.015628 0
+ L3 8421504 0.020833 11.649704 2.015628 0 11.649706 3.515628 0
+ L3 8421504 0.020833 11.774706 3.515628 0 11.774704 2.015628 0
+ L3 8421504 0.020833 11.899704 2.015628 0 11.899706 3.515628 0
+ L3 8421504 0.020833 12.024706 3.515628 0 12.024704 2.015628 0
+ L3 8421504 0.020833 12.149704 2.015628 0 12.149706 3.515628 0
+ L3 8421504 0.020833 12.274706 3.515627 0 12.274704 2.015627 0
+ L3 8421504 0.020833 12.399704 2.015627 0 12.399706 3.515627 0
+ L3 8421504 0.020833 12.524706 3.515627 0 12.524704 2.015627 0
+ L3 8421504 0.020833 12.649704 2.015627 0 12.649706 3.515627 0
+ L3 8421504 0.020833 12.774706 3.515627 0 12.774704 2.015627 0
+ L3 8421504 0.020833 12.899704 2.015627 0 12.899706 3.515627 0
+ L3 8421504 0.020833 13.024706 3.515626 0 13.024704 2.015626 0
+ L3 8421504 0.020833 13.149704 2.015626 0 13.149706 3.515626 0
+ L3 8421504 0.020833 13.274706 3.515626 0 13.274704 2.015626 0
+ L3 8421504 0.020833 8.649704 2.015632 0 8.649706 3.515632 0
+ L3 0 0.052083 13.399704 1.890626 0 6.649704 1.890635 0
+ L3 0 0.052083 6.649708 4.515635 0 8.774708 4.515632 0
+ L3 0 0.052083 8.774708 4.515632 0 8.774706 3.640632 0
+ L3 0 0.052083 6.649703 1.015635 0 8.774703 1.015632 0
+ L3 0 0.052083 8.774703 1.015632 0 8.774704 1.890632 0
+ L3 0 0.052083 13.399706 3.640626 0 6.649706 3.640635 0
+ L3 0 0.020833 13.399705 2.765626 0 6.649705 2.765635 0
+ F3 14737632 0.000000 5
+ 6.649706 3.140635 0
+ 0.149706 3.140644 0
+ 0.024705 2.765644 0
+ 0.149705 2.390644 0
+ 6.649705 2.390635 0
+ L3 8421504 0.020833 0.524706 3.015643 0 0.524705 2.515643 0
+ L3 8421504 0.020833 0.649705 2.515643 0 0.649706 3.015643 0
+ L3 8421504 0.020833 0.774706 3.015643 0 0.774705 2.515643 0
+ L3 8421504 0.020833 0.899705 2.515643 0 0.899706 3.015643 0
+ L3 8421504 0.020833 1.024706 3.015642 0 1.024705 2.515642 0
+ L3 8421504 0.020833 1.149705 2.515642 0 1.149706 3.015642 0
+ L3 8421504 0.020833 1.274706 3.015642 0 1.274705 2.515642 0
+ L3 8421504 0.020833 1.399705 2.515642 0 1.399706 3.015642 0
+ L3 8421504 0.020833 1.524706 3.015642 0 1.524705 2.515642 0
+ L3 8421504 0.020833 1.649705 2.515642 0 1.649706 3.015642 0
+ L3 8421504 0.020833 1.774706 3.015641 0 1.774705 2.515641 0
+ L3 8421504 0.020833 1.899705 2.515641 0 1.899706 3.015641 0
+ L3 8421504 0.020833 2.024706 3.015641 0 2.024705 2.515641 0
+ L3 8421504 0.020833 2.149705 2.515641 0 2.149706 3.015641 0
+ L3 8421504 0.020833 2.274706 3.015641 0 2.274705 2.515641 0
+ L3 8421504 0.020833 2.399705 2.515641 0 2.399706 3.015641 0
+ L3 8421504 0.020833 2.524706 3.015640 0 2.524705 2.515640 0
+ L3 8421504 0.020833 2.649705 2.515640 0 2.649706 3.015640 0
+ L3 8421504 0.020833 2.774706 3.015640 0 2.774705 2.515640 0
+ L3 8421504 0.020833 2.899705 2.515640 0 2.899706 3.015640 0
+ L3 8421504 0.020833 3.024706 3.015640 0 3.024705 2.515640 0
+ L3 8421504 0.020833 3.149705 2.515640 0 3.149706 3.015640 0
+ L3 8421504 0.020833 3.274706 3.015639 0 3.274705 2.515639 0
+ L3 8421504 0.020833 3.399705 2.515639 0 3.399706 3.015639 0
+ L3 8421504 0.020833 3.524706 3.015639 0 3.524705 2.515639 0
+ L3 8421504 0.020833 3.649705 2.515639 0 3.649706 3.015639 0
+ L3 8421504 0.020833 3.774706 3.015639 0 3.774705 2.515639 0
+ L3 8421504 0.020833 3.899705 2.515639 0 3.899706 3.015639 0
+ L3 8421504 0.020833 4.024706 3.015638 0 4.024705 2.515638 0
+ L3 8421504 0.020833 4.149705 2.515638 0 4.149706 3.015638 0
+ L3 8421504 0.020833 4.274706 3.015638 0 4.274705 2.515638 0
+ L3 8421504 0.020833 4.399705 2.515638 0 4.399706 3.015638 0
+ L3 8421504 0.020833 4.524706 3.015638 0 4.524705 2.515638 0
+ L3 8421504 0.020833 4.649705 2.515638 0 4.649706 3.015638 0
+ L3 8421504 0.020833 4.774706 3.015637 0 4.774705 2.515637 0
+ L3 8421504 0.020833 4.899705 2.515637 0 4.899706 3.015637 0
+ L3 8421504 0.020833 5.024706 3.015637 0 5.024705 2.515637 0
+ L3 8421504 0.020833 5.149705 2.515637 0 5.149706 3.015637 0
+ L3 8421504 0.020833 5.274706 3.015637 0 5.274705 2.515637 0
+ L3 8421504 0.020833 5.399706 3.015637 0 5.399705 2.515637 0
+ L3 8421504 0.020833 5.524705 2.515636 0 5.524706 3.015636 0
+ L3 8421504 0.020833 5.649706 3.015636 0 5.649705 2.515636 0
+ L3 8421504 0.020833 5.774705 2.515636 0 5.774706 3.015636 0
+ L3 8421504 0.020833 5.899706 3.015636 0 5.899705 2.515636 0
+ L3 8421504 0.020833 6.024705 2.515636 0 6.024706 3.015636 0
+ L3 8421504 0.020833 6.149706 3.015636 0 6.149705 2.515636 0
+ L3 8421504 0.020833 6.274705 2.515635 0 6.274706 3.015635 0
+ L3 0 0.041667 0.274706 3.140643 0 0.274706 3.515643 0
+ L3 0 0.041667 0.274706 3.515643 0 0.399706 3.515643 0
+ L3 0 0.041667 0.399706 3.515643 0 0.399706 3.140643 0
+ L3 8421504 0.020833 6.399706 3.015635 0 6.399705 2.515635 0
+ L3 8421504 0.020833 6.524705 2.515635 0 6.524706 3.015635 0
+ L3 0 0.052083 0.149706 3.140644 0 0.024705 2.765644 0
+ L3 0 0.052083 0.024705 2.765644 0 0.149705 2.390644 0
+ L3 8421504 0.020833 0.149706 3.015644 0 0.149705 2.515644 0
+ L3 8421504 0.020833 0.274705 2.515643 0 0.274706 3.015643 0
+ L3 8421504 0.020833 0.399705 2.515643 0 0.399706 3.015643 0
+ L3 8421504 0.020833 6.649705 2.765635 0 0.024705 2.765644 0
+ L3 0 0.052083 6.649705 2.390635 0 0.149705 2.390644 0
+ L3 0 0.052083 6.649706 3.140635 0 0.149706 3.140644 0
+ L3 0 0.031250 13.337204 1.890626 0 13.337202 0.140626 0
+ L3 0 0.031250 13.087202 0.140626 0 13.087204 1.640626 0
+ L3 0 0.031250 13.337204 1.640626 0 10.399704 1.640630 0
+ L3 0 0.031250 10.399704 1.640630 0 10.399704 1.890630 0
+ L3 0 0.031250 10.399704 1.640630 0 10.024704 1.640630 0
+ L3 0 0.031250 10.024704 1.890630 0 10.024702 0.390630 0
+ L3 0 0.031250 10.024702 0.390630 0 9.774702 0.390631 0
+ L3 0 0.031250 9.774702 0.390631 0 9.774704 1.640631 0
+ L3 0 0.031250 10.024704 1.640630 0 8.774704 1.640632 0
+ L3 0 0.031250 8.774703 1.015632 0 9.712203 1.015631 0
+ L3 0 0.031250 9.712203 1.015631 0 9.712202 0.265631 0
+ L3 0 0.031250 9.712202 0.265631 0 10.087202 0.265630 0
+ L3 0 0.031250 10.087202 0.265630 0 10.087204 1.640630 0
+ L3 0 0.031250 13.024702 0.015626 0 13.399702 0.015625 0
+ L3 0 0.031250 13.399702 0.015626 0 13.399702 0.265626 0
+ L3 0 0.031250 13.399702 0.265626 0 13.337202 0.265626 0
+ L3 0 0.031250 13.024702 0.265626 0 13.024702 0.015626 0
+ L3 8421504 0.010417 10.337204 1.640630 0 10.337204 1.890630 0
+ L3 8421504 0.010417 10.274704 1.640630 0 10.274704 1.890630 0
+ L3 8421504 0.010417 10.212204 1.640630 0 10.212204 1.890630 0
+ L3 8421504 0.010417 10.149704 1.640630 0 10.149704 1.890630 0
+ L3 8421504 0.010417 10.087204 1.640630 0 10.087204 1.890630 0
+ L3 8421504 0.010417 10.024704 1.578130 0 9.774704 1.578131 0
+ L3 8421504 0.010417 9.774704 1.515631 0 10.024704 1.515630 0
+ L3 8421504 0.010417 10.024704 1.453130 0 9.774704 1.453131 0
+ L3 8421504 0.010417 9.774703 1.390631 0 10.024703 1.390630 0
+ L3 8421504 0.010417 10.024703 1.328130 0 9.774703 1.328131 0
+ L3 8421504 0.010417 9.774703 1.265631 0 10.024703 1.265630 0
+ L3 8421504 0.010417 10.024703 1.203130 0 9.774703 1.203131 0
+ L3 8421504 0.010417 9.774703 1.140631 0 10.024703 1.140630 0
+ L3 8421504 0.010417 10.024703 1.078130 0 9.774703 1.078131 0
+ L3 8421504 0.010417 9.774703 1.015631 0 10.024703 1.015630 0
+ L3 8421504 0.010417 10.024703 0.953130 0 9.774703 0.953131 0
+ L3 8421504 0.010417 9.774703 0.890631 0 10.024703 0.890630 0
+ L3 8421504 0.010417 10.024703 0.828130 0 9.774703 0.828131 0
+ L3 8421504 0.010417 9.774703 0.765631 0 10.024703 0.765630 0
+ L3 8421504 0.010417 9.774703 0.703131 0 10.024703 0.703130 0
+ L3 8421504 0.010417 9.774702 0.640631 0 10.024702 0.640630 0
+ L3 8421504 0.010417 9.774702 0.578131 0 10.024702 0.578130 0
+ L3 8421504 0.010417 9.774702 0.515631 0 10.024702 0.515630 0
+ L3 8421504 0.010417 9.774702 0.453131 0 10.024702 0.453130 0
+ L3 8421504 0.010417 12.524711 6.765627 0 12.524711 7.015627 0
+ L3 8421504 0.010417 10.774711 6.765629 0 10.774711 7.015629 0
+ L3 8421504 0.010417 10.774704 1.515629 0 10.774703 1.265629 0
+ L3 8421504 0.010417 12.524704 1.515627 0 12.524703 1.265627 0
+ L3 0 0.031250 13.337202 0.140626 0 13.087202 0.140626 0
+ L3 0 0.031250 13.087202 0.265626 0 13.024702 0.265626 0
+ L3 8421504 0.010417 13.087204 1.578126 0 13.337204 1.578126 0
+ L3 8421504 0.010417 13.087204 1.515626 0 13.337204 1.515626 0
+ L3 8421504 0.010417 13.087204 1.453126 0 13.337204 1.453126 0
+ L3 8421504 0.010417 13.087203 1.390626 0 13.337203 1.390626 0
+ L3 8421504 0.010417 13.087203 1.328126 0 13.337203 1.328126 0
+ L3 8421504 0.010417 13.087203 1.265626 0 13.337203 1.265626 0
+ L3 8421504 0.010417 13.087203 1.203126 0 13.337203 1.203126 0
+ L3 8421504 0.010417 13.087203 1.140626 0 13.337203 1.140626 0
+ L3 8421504 0.010417 13.087203 1.078126 0 13.274703 1.078126 0
+ L3 8421504 0.010417 13.274703 1.078126 0 13.337203 1.078126 0
+ L3 8421504 0.010417 13.087203 1.015626 0 13.337203 1.015626 0
+ L3 8421504 0.010417 13.087203 0.953126 0 13.337203 0.953126 0
+ L3 8421504 0.010417 13.087203 0.890626 0 13.337203 0.890626 0
+ L3 8421504 0.010417 13.087203 0.828126 0 13.337203 0.828126 0
+ L3 8421504 0.010417 13.087203 0.765626 0 13.337203 0.765626 0
+ L3 8421504 0.010417 13.087203 0.703126 0 13.337203 0.703126 0
+ L3 8421504 0.010417 13.087202 0.640626 0 13.337202 0.640626 0
+ L3 8421504 0.010417 13.087202 0.578126 0 13.337202 0.578126 0
+ L3 8421504 0.010417 13.337202 0.515626 0 13.087202 0.515626 0
+ L3 8421504 0.010417 13.087202 0.453126 0 13.337202 0.453126 0
+ L3 8421504 0.010417 13.337202 0.390626 0 13.087202 0.390626 0
+ L3 8421504 0.010417 13.087202 0.328126 0 13.337202 0.328126 0
+ L3 8421504 0.010417 13.337202 0.265626 0 13.087202 0.265626 0
+ L3 8421504 0.010417 13.087202 0.203126 0 13.337202 0.203126 0
+ L3 8421504 0.010417 8.774704 1.703132 0 10.024704 1.703130 0
+ L3 8421504 0.010417 8.774704 1.828132 0 10.024704 1.828130 0
+ L3 8421504 0.010417 8.774704 1.765632 0 10.024704 1.765630 0
+ L3 8421504 0.010417 13.337204 1.828126 0 10.399704 1.828130 0
+ L3 8421504 0.010417 10.399704 1.765630 0 13.337204 1.765626 0
+ L3 8421504 0.010417 10.399704 1.703130 0 13.337204 1.703126 0
+ END
+STRUCTURE N "Walthers Cornerstone Structure Western (coal) Flood Loader 933-3247"
+ G3 0 0.000000 0.000000 1.328484 1.328484 0
+ G3 15132390 0.000000 1.359734 1.359734 1.359734 0
+ F3 8421504 0.000000 4
+ 2.375359 1.812859 0
+ 1.562859 1.812859 0
+ 1.562859 0.844109 0
+ 2.375359 0.844109 0
+ L3 0 0.000000 1.937859 1.812859 0 1.937859 0.844109 0
+ F3 0 0.000000 4
+ 18.984734 0.797234 0
+ 18.953484 0.797234 0
+ 18.953484 0.797234 0
+ 18.984734 0.797234 0
+ F3 12632256 0.000000 4
+ 19.015984 0.797234 0
+ 17.984734 0.797234 0
+ 17.984734 1.797234 0
+ 19.015984 1.797234 0
+ L3 0 0.000000 2.672234 1.078484 0 17.953484 1.078484 0
+ L3 0 0.000000 17.953484 1.078484 0 17.953484 1.547234 0
+ L3 0 0.000000 17.953484 1.547234 0 2.672234 1.547234 0
+ L3 0 0.000000 2.672234 1.547234 0 2.672234 1.078484 0
+ A3 0 0.000000 1.244127 1.344109 1.359734 0 0.000000 360.000000
+ G3 0 0.000000 0.064424 1.734734 1.156609 0
+ G3 8421504 0.000000 0.104816 0.547234 1.406609 0
+ F3 8421504 0.000000 4
+ 2.703484 1.359734 0
+ 17.953484 1.359734 0
+ 17.953484 1.203484 0
+ 2.703484 1.203484 0
+ END
+STRUCTURE N "Walther's Cornerstone Structures New River Mine Tipple 933-3221"
+ F3 12632256 0.000000 4
+ 0.000000 0.000000 0
+ 5.000000 0.000000 0
+ 5.000000 5.000000 0
+ 0.000000 5.000000 0
+ L3 0 0.000000 2.437500 5.000000 0 2.437500 0.000000 0
+ L3 0 0.000000 1.125000 0.000000 0 1.125000 4.984375 0
+ L3 0 0.000000 2.437500 2.500000 0 4.984375 2.500000 0
+ END
+STRUCTURE N "Walther's Cornerstone Structures New River Mine Conveyor 933-3221"
+ F3 12632256 0.000000 4
+ 3.000000 0.000000 0
+ 0.000000 0.000000 0
+ 0.000000 2.562500 0
+ 3.000000 2.562500 0
+ F3 8421504 0.000000 4
+ 1.250000 2.562500 0
+ 1.750000 2.562500 0
+ 1.750000 2.875000 0
+ 1.250000 2.875000 0
+ L3 0 0.000000 0.000000 0.000000 0 3.000000 0.000000 0
+ L3 0 0.000000 3.000000 0.000000 0 3.000000 2.562500 0
+ L3 0 0.000000 3.000000 2.562500 0 0.000000 2.562500 0
+ L3 0 0.000000 0.000000 2.562500 0 0.000000 0.000000 0
+ L3 0 0.000000 1.500000 2.562500 0 1.500000 0.015625 0
+ L3 0 0.000000 0.000000 1.500000 0 2.984375 1.515625 0
+ END
+STRUCTURE N "Walther's Cornerstone Structures New River Mine Track Coaling Bldg. 933-3221"
+ F3 12632256 0.000000 4
+ 0.000000 0.000000 0
+ 4.125000 0.000000 0
+ 4.125000 1.625000 0
+ 0.000000 1.625000 0
+ L3 0 0.000000 0.000000 0.812500 0 4.093750 0.796875 0
+ END
+STRUCTURE N "Walthers Cornerstone Structures Coal Bunkers 933-3246A"
+ F3 8421504 0.000000 4
+ 0.000000 0.000000 0
+ 4.812500 0.000000 0
+ 4.812500 1.875000 0
+ 0.000000 1.875000 0
+ G3 13289984 0.000000 0.500244 0.781250 0.875000 0
+ G3 13289984 0.000000 0.500244 2.025219 0.868969 0
+ G3 13289984 0.000000 0.500244 4.025219 0.853344 0
+ F3 10309376 0.000000 4
+ 2.625000 1.500000 0
+ 3.375000 1.500000 0
+ 3.375000 0.250000 0
+ 2.625000 0.250000 0
+ END
+STRUCTURE N "Walthers Cornerstone Structures Oil Tanks 933-3246B"
+ G3 0 0.000000 0.375000 0.375000 0.375000 0
+ G3 0 0.000000 0.375000 1.306225 0.384350 0
+ END
+STRUCTURE N "Walthers Cornerstone Structures Office/Scalehouse 933-3246C"
+ F3 32768 0.000000 4
+ 0.000000 0.187500 0
+ 2.562500 0.187500 0
+ 2.562500 1.437500 0
+ 0.000000 1.437500 0
+ F3 32768 0.000000 4
+ 0.000000 1.734375 0
+ 0.859375 1.734375 0
+ 0.859375 1.437500 0
+ 0.000000 1.437500 0
+ L3 0 0.000000 0.375000 0.875000 0 2.062500 0.875000 0
+ L3 0 0.000000 2.062500 0.875000 0 2.546875 1.437500 0
+ L3 0 0.000000 2.062500 0.875000 0 2.531250 0.187500 0
+ L3 0 0.000000 0.000000 1.437500 0 0.843750 1.437500 0
+ L3 0 0.000000 0.359375 0.875000 0 0.000000 1.437500 0
+ L3 0 0.000000 0.359375 0.875000 0 0.000000 0.187500 0
+ F3 12632256 0.000000 4
+ 1.000000 0.187500 0
+ 1.375000 0.187500 0
+ 1.375000 0.000000 0
+ 1.000000 0.000000 0
+ L3 0 0.000000 0.437500 0.625000 0 0.625000 0.625000 0
+ L3 0 0.000000 0.437500 0.625000 0 0.218750 0.203125 0
+ L3 0 0.000000 0.593750 0.625000 0 0.718750 0.187500 0
+ L3 0 0.000000 1.890625 0.625000 0 2.078125 0.625000 0
+ L3 0 0.000000 1.875000 0.625000 0 1.734375 0.187500 0
+ L3 0 0.000000 2.062500 0.640625 0 2.203125 0.203125 0
+ END
+STRUCTURE N "Walthers Cornerstone Structures Pump House 933-3246D"
+ F3 32768 0.000000 4
+ 0.000000 0.125000 0
+ 0.812500 0.125000 0
+ 0.812500 0.687500 0
+ 0.000000 0.687500 0
+ F3 12632256 0.000000 4
+ 0.265625 0.125000 0
+ 0.531250 0.125000 0
+ 0.531250 0.000000 0
+ 0.265625 0.000000 0
+ END
+
+SUBCONTENTS Walthers Cornerstone N Structures - Grain Industries
+STRUCTURE N "Walthers Red Wing Milling Co 933-3212"
+ L 0 0 4.500000 0.000000 4.500000 0.375000
+ L 0 0 6.625000 0.375000 4.500000 0.375000
+ L 0 0 6.625000 4.875000 2.062500 4.875000
+ L 0 0 2.062500 4.875000 2.062500 4.500000
+ L 0 0 2.062500 4.437500 0.000000 4.437500
+ L 0 0 0.375000 0.750000 3.250000 0.750000
+ L 0 0 3.250000 0.750000 3.250000 1.625000
+ L 0 0 3.250000 1.625000 0.375000 1.625000
+ L 0 0 0.375000 1.625000 0.375000 0.750000
+ L 0 0 3.062500 1.437500 2.625000 1.437500
+ L 0 0 2.625000 1.437500 2.625000 1.062500
+ L 0 0 2.625000 1.062500 3.062500 1.062500
+ L 0 0 3.062500 1.062500 3.062500 1.437500
+ L 0 0 4.500000 0.000000 4.500000 -0.687500
+ L 0 0 4.500000 -0.687500 2.000000 -0.687500
+ L 0 0 2.000000 -0.687500 2.000000 0.375000
+ L 0 0 2.000000 0.375000 0.000000 0.375000
+ L 0 0 4.500000 0.375000 2.000000 0.375000
+ L 0 0 2.000000 0.000000 0.000000 0.000000
+ L 0 0 2.250000 0.375000 2.250000 -0.062500
+ L 0 0 2.250000 -0.062500 4.062500 -0.062500
+ L 0 0 4.062500 -0.062500 4.062500 0.375000
+ A 0 0 0.139754 3.187500 0.125000 0.000000 360.000000
+ A 0 0 0.139754 3.812500 0.125000 0.000000 360.000000
+ A 0 0 0.139754 2.625000 0.125000 0.000000 360.000000
+ A 0 0 0.062500 3.812500 0.125000 0.000000 360.000000
+ A 0 0 0.062500 3.187500 0.125000 0.000000 360.000000
+ A 0 0 0.000000 2.625000 0.125000 0.000000 360.000000
+ A 0 0 0.062500 2.625000 0.125000 0.000000 360.000000
+ L 0 0 6.625000 4.875000 6.625000 0.375000
+ L 0 0 2.062500 4.437500 6.625000 4.437500
+ L 0 4 2.937500 -0.062500 2.937500 -0.562500
+ L 0 4 1.312500 0.375000 1.312500 -0.062500
+ L 0 0 0.000000 4.437500 0.000000 4.437500
+ L 0 0 0.000000 4.437500 0.000000 0.000000
+ END
+STRUCTURE N "Walthers ADM Grain Elevator 933-3225"
+ L 0 0 8.125000 5.875000 3.625000 5.875000
+ L 0 0 8.125000 0.000000 5.000000 0.000000
+ L 0 0 5.000000 0.000000 5.000000 4.187500
+ L 0 0 8.125000 4.187500 3.625000 4.187500
+ L 0 0 3.625000 5.875000 3.625000 4.187500
+ L 0 0 5.000000 1.562500 8.125000 1.562500
+ L 0 0 7.312500 4.187500 7.312500 1.562500
+ L 0 0 5.625000 4.187500 5.625000 1.562500
+ L 0 0 8.125000 3.750000 7.625000 3.750000
+ L 0 0 7.625000 3.750000 7.625000 3.250000
+ L 0 0 7.625000 3.250000 8.125000 3.250000
+ L 0 0 7.625000 2.375000 8.125000 2.375000
+ L 0 0 8.125000 5.875000 8.125000 0.000000
+ A 0 0 0.197642 7.875000 3.500000 0.000000 360.000000
+ A 0 0 0.197642 7.875000 2.125000 0.000000 360.000000
+ L 0 0 8.125000 1.875000 7.625000 1.875000
+ L 0 0 7.625000 2.375000 7.625000 1.875000
+ A 0 0 0.125000 7.875000 3.500000 0.000000 360.000000
+ A 0 0 0.125000 7.875000 2.125000 0.000000 360.000000
+ A 0 0 0.062500 6.437500 3.750000 0.000000 360.000000
+ A 0 0 0.062500 6.437500 3.250000 0.000000 360.000000
+ A 0 0 0.062500 6.437500 2.375000 0.000000 360.000000
+ A 0 0 0.062500 6.437500 1.937500 0.000000 360.000000
+ A 0 0 0.625000 4.375000 3.500000 270.000000 180.000000
+ L 0 0 3.750000 3.500000 3.750000 3.500000
+ A 0 0 0.625000 3.125000 3.500000 270.000000 180.000000
+ A 0 0 0.625000 1.875000 3.500000 270.000000 180.000000
+ A 0 0 0.620066 0.629934 3.500000 246.222684 203.777316
+ A 0 0 0.625000 4.375000 2.250000 90.000000 180.000000
+ A 0 0 0.625000 3.125000 2.250000 90.000000 180.000000
+ A 0 0 0.625000 1.875000 2.250000 90.000000 180.000000
+ A 0 0 0.620066 0.629934 2.250000 90.000000 203.777316
+ L 0 0 5.000000 2.875000 0.062500 2.875000
+ L 0 0 0.062500 2.875000 0.062500 3.375000
+ L 0 0 0.062500 3.375000 4.937500 3.375000
+ L 0 0 0.062500 2.875000 0.062500 2.375000
+ L 0 0 0.062500 2.375000 5.000000 2.375000
+ END
+
+
+SUBCONTENTS Walthers Cornerstone N Structures - Engine Servicing Structures
+STRUCTURE N "Walthers Modern Coaling Tower 933-3262"
+ F3 8421504 0.000000 4
+ 0.000000 4.171875 0
+ 1.250000 4.171875 0
+ 1.250000 1.046875 0
+ 0.000000 1.046875 0
+ F3 8421504 0.000000 4
+ 2.000000 1.109375 0
+ 5.000000 1.109375 0
+ 5.000000 4.109375 0
+ 2.000000 4.109375 0
+ F3 8421504 0.000000 4
+ 2.000000 2.125000 0
+ 1.250000 2.125000 0
+ 1.250000 3.125000 0
+ 2.000000 3.125000 0
+ L3 0 0.000000 0.625000 1.062500 0 0.625000 4.187500 0
+ L3 0 0.000000 1.250000 3.125000 0 1.250000 2.125000 0
+ L3 0 0.000000 2.000000 3.125000 0 5.000000 3.125000 0
+ L3 0 0.000000 2.000000 2.125000 0 5.000000 2.125000 0
+ L3 0 0.000000 3.500000 1.125000 0 3.500000 2.125000 0
+ L3 0 0.000000 3.500000 3.125000 0 3.500000 4.125000 0
+ L3 0 0.000000 2.000000 3.125000 0 2.000000 2.125000 0
+ L3 0 0.000000 2.750000 3.125000 0 2.750000 2.125000 0
+ L3 0 0.000000 2.375000 2.125000 0 2.375000 3.125000 0
+ L3 0 0.000000 4.859375 4.125000 0 4.625000 4.125000 0
+ L3 0 0.000000 4.625000 4.125000 0 4.625000 5.250000 0
+ L3 0 0.000000 4.625000 5.250000 0 4.859375 5.250000 0
+ L3 0 0.000000 4.859375 5.250000 0 4.859375 4.125000 0
+ L3 0 0.000000 4.875000 0.000000 0 4.625000 0.000000 0
+ L3 0 0.000000 4.625000 0.000000 0 4.625000 1.109375 0
+ L3 0 0.000000 4.625000 1.109375 0 4.875000 1.109375 0
+ L3 0 0.000000 4.875000 1.109375 0 4.875000 0.000000 0
+ L3 0 0.000000 2.000000 0.000000 0 1.750000 0.000000 0
+ L3 0 0.000000 1.750000 0.000000 0 1.750000 2.156250 0
+ L3 0 0.000000 1.750000 2.156250 0 2.000000 2.156250 0
+ L3 0 0.000000 2.000000 2.156250 0 2.000000 0.000000 0
+ L3 0 0.000000 4.625000 4.250000 0 4.843750 4.250000 0
+ L3 0 0.000000 4.625000 4.375000 0 4.859375 4.375000 0
+ L3 0 0.000000 4.625000 4.500000 0 4.875000 4.500000 0
+ L3 0 0.000000 4.625000 4.625000 0 4.859375 4.625000 0
+ L3 0 0.000000 4.625000 4.750000 0 4.875000 4.750000 0
+ L3 0 0.000000 4.625000 4.875000 0 4.859375 4.875000 0
+ L3 0 0.000000 4.625000 5.000000 0 4.859375 5.000000 0
+ L3 0 0.000000 4.625000 5.125000 0 4.843750 5.125000 0
+ L3 0 0.000000 4.625000 5.250000 0 4.859375 5.250000 0
+ L3 0 0.000000 4.625000 0.000000 0 4.875000 0.000000 0
+ L3 0 0.000000 4.625000 0.125000 0 4.875000 0.125000 0
+ L3 0 0.000000 4.625000 0.250000 0 4.875000 0.250000 0
+ L3 0 0.000000 4.625000 0.375000 0 4.859375 0.375000 0
+ L3 0 0.000000 4.640625 0.500000 0 4.859375 0.500000 0
+ L3 0 0.000000 4.625000 0.625000 0 4.859375 0.625000 0
+ L3 0 0.000000 4.640625 0.875000 0 4.859375 0.875000 0
+ L3 0 0.000000 4.625000 0.750000 0 4.875000 0.750000 0
+ L3 0 0.000000 4.625000 1.000000 0 4.875000 1.000000 0
+ L3 0 0.000000 1.750000 0.000000 0 2.000000 0.000000 0
+ L3 0 0.000000 1.750000 0.125000 0 2.000000 0.125000 0
+ L3 0 0.000000 1.750000 0.250000 0 2.000000 0.250000 0
+ L3 0 0.000000 1.750000 0.375000 0 2.015625 0.375000 0
+ L3 0 0.000000 1.750000 0.500000 0 2.000000 0.500000 0
+ L3 0 0.000000 1.750000 1.000000 0 2.000000 1.000000 0
+ L3 0 0.000000 1.750000 0.875000 0 2.000000 0.875000 0
+ L3 0 0.000000 1.750000 0.625000 0 2.000000 0.625000 0
+ L3 0 0.000000 1.750000 0.750000 0 2.000000 0.750000 0
+ L3 0 0.000000 1.750000 2.000000 0 2.000000 2.000000 0
+ L3 0 0.000000 1.750000 1.875000 0 2.000000 1.875000 0
+ L3 0 0.000000 1.750000 1.750000 0 1.984375 1.750000 0
+ L3 0 0.000000 1.750000 1.625000 0 1.968750 1.625000 0
+ L3 0 0.000000 1.750000 1.500000 0 1.968750 1.500000 0
+ L3 0 0.000000 1.750000 1.375000 0 1.984375 1.375000 0
+ L3 0 0.000000 1.750000 1.250000 0 1.984375 1.250000 0
+ L3 0 0.000000 1.750000 1.125000 0 1.984375 1.125000 0
+ END
+STRUCTURE N "Walthers Modern Coaling Tower Office 933-3262"
+ F3 8421504 0.000000 4
+ 0.000000 2.000000 0
+ 0.750000 2.000000 0
+ 0.750000 0.250000 0
+ 0.000000 0.250000 0
+ F3 12632256 0.000000 4
+ 0.125000 0.250000 0
+ 0.625000 0.250000 0
+ 0.625000 0.000000 0
+ 0.125000 0.000000 0
+ END
+STRUCTURE N "Walthers Shady Jct Water Tower 933-3205a"
+ L 0 0 0.000000 0.000000 1.562500 0.000000
+ L 0 0 1.562500 0.000000 1.562500 1.562500
+ L 0 0 1.562500 1.562500 0.000000 1.562500
+ L 0 0 0.000000 1.562500 0.000000 0.000000
+ L 0 0 0.000000 0.375000 1.250000 0.375000
+ L 0 0 1.250000 0.375000 1.250000 1.562500
+ L 0 0 0.625000 1.000000 0.625000 0.375000
+ L 0 0 0.625000 1.000000 1.250000 1.000000
+ L 0 0 0.625000 1.000000 0.000000 1.000000
+ L 0 0 0.625000 1.000000 0.625000 1.562500
+ L 0 0 0.625000 1.000000 1.062500 1.437500
+ L 0 0 0.625000 1.000000 1.062500 0.562500
+ L 0 0 0.625000 1.000000 0.187500 0.562500
+ L 0 0 0.625000 1.000000 0.187500 1.437500
+ L 0 0 0.625000 1.562500 1.062500 1.437500
+ L 0 0 1.062500 1.437500 1.250000 1.000000
+ L 0 0 1.250000 1.000000 1.062500 0.562500
+ L 0 0 1.062500 0.562500 0.625000 0.375000
+ L 0 0 0.625000 0.375000 0.187500 0.562500
+ L 0 0 0.187500 0.562500 0.000000 1.000000
+ L 0 0 0.000000 1.000000 0.187500 1.437500
+ L 0 0 0.187500 1.437500 0.625000 1.562500
+ L 0 0 1.250000 1.500000 1.750000 1.500000
+ L 0 0 1.750000 1.500000 1.750000 1.062500
+ L 0 0 1.750000 1.062500 1.250000 1.062500
+ END
+STRUCTURE N "Walthers Shady Jct Interlocking Tower 933-3205b"
+ L 0 0 0.000000 0.000000 1.500000 0.000000
+ L 0 0 1.500000 0.000000 1.500000 1.000000
+ L 0 0 1.500000 1.000000 0.000000 1.000000
+ L 0 0 0.000000 1.000000 0.000000 0.000000
+ L 0 0 0.125000 0.062500 1.125000 0.062500
+ L 0 0 1.125000 0.062500 1.125000 0.625000
+ L 0 0 1.125000 0.625000 0.125000 0.625000
+ L 0 0 0.125000 0.625000 0.125000 0.062500
+ L 0 0 0.250000 0.625000 0.250000 0.062500
+ L 0 0 0.250000 0.312500 1.125000 0.312500
+ END
+STRUCTURE N "Walthers Shady Jct Xing Shanty 933-3205c"
+ L 0 0 0.000000 0.000000 1.000000 0.000000
+ L 0 0 1.000000 0.000000 1.000000 0.750000
+ L 0 0 1.000000 0.750000 0.000000 0.750000
+ L 0 0 0.000000 0.750000 0.000000 0.000000
+ L 0 0 0.000000 0.375000 1.000000 0.375000
+ L 0 0 0.750000 0.750000 0.750000 0.937500
+ L 0 0 0.750000 0.937500 0.250000 0.937500
+ L 0 0 0.250000 0.937500 0.250000 0.750000
+ L 0 0 0.125000 0.000000 0.125000 -0.062500
+ L 0 0 0.125000 -0.062500 0.375000 -0.062500
+ L 0 0 0.375000 -0.062500 0.375000 0.000000
+ END
+STRUCTURE N "Walthers Shady Jct Water Crane 933-3205d"
+ L 0 0 0.000000 0.000000 0.500000 0.000000
+ L 0 0 0.500000 0.000000 0.500000 1.125000
+ L 0 0 0.500000 1.125000 0.000000 1.125000
+ L 0 0 0.000000 1.125000 0.000000 0.000000
+ A 0 0 0.000000 0.250000 0.937500 0.000000 360.000000
+ A 0 0 0.062500 0.250000 0.937500 0.000000 360.000000
+ L 0 0 0.312500 0.875000 0.312500 0.187500
+ L 0 0 0.187500 0.875000 0.187500 0.187500
+ L 0 0 0.187500 0.187500 0.312500 0.187500
+ END
+STRUCTURE N "Walthers 2-Stall Engine House 933-3204"
+ L 0 0 0.000000 0.000000 7.625000 0.000000
+ L 0 0 7.625000 0.000000 7.625000 3.250000
+ L 0 0 7.625000 3.250000 0.000000 3.250000
+ L 0 0 0.000000 3.250000 0.000000 0.000000
+ L 0 0 0.000000 1.625000 7.625000 1.625000
+ L 0 0 0.000000 2.000000 7.625000 2.000000
+ L 0 0 0.000000 1.250000 7.625000 1.250000
+ A 0 0 0.225347 6.625000 0.875000 0.000000 360.000000
+ A 0 0 0.139754 6.625000 0.875000 0.000000 360.000000
+ A 0 0 0.225347 1.000000 0.875000 0.000000 360.000000
+ A 0 0 0.139754 1.000000 0.875000 0.000000 360.000000
+ A 0 0 0.225347 1.000000 2.375000 0.000000 360.000000
+ A 0 0 0.139754 1.000000 2.375000 0.000000 360.000000
+ A 0 0 0.225347 6.625000 2.375000 0.000000 360.000000
+ A 0 0 0.139754 6.625000 2.375000 0.000000 360.000000
+ END
+STRUCTURE N "Walthers Union City Roundhouse 933-3202"
+ L3 32768 0.041667 5.145877 13.802068 0 0.020877 8.489568 0
+ L3 32768 0.020833 2.645877 4.583318 0 9.489627 7.427068 0
+ L3 32768 0.020833 1.989627 6.020818 0 8.333377 9.708318 0
+ L3 32768 0.020833 1.114627 7.302068 0 6.927127 11.770818 0
+ L3 32768 0.020833 3.177127 3.052068 0 10.302127 5.020818 0
+ L3 32768 0.020833 3.489627 1.583318 0 10.770877 2.520818 0
+ A3 32768 0.041667 19.375000 -8.385373 0.020818 0 44.474403 45.525597
+ A3 32768 0.041667 12.000000 -8.385373 0.020818 0 44.468552 45.531448
+ L3 32768 0.020833 10.927127 0.020818 0 3.552127 0.020818 0
+ A3 32768 0.041667 15.875123 -8.385373 0.020818 0 44.521254 45.478746
+ A3 32768 0.020833 13.937535 -8.385373 0.020818 0 44.443785 45.556215
+ A3 32768 0.020833 17.687500 -8.385373 0.020818 0 44.498085 45.501915
+ A3 32768 0.020833 17.687500 -8.385373 0.020818 0 44.354681 45.645319
+ L3 32768 0.020833 5.034001 9.576799 0 5.582656 8.740751 0
+ L3 32768 0.020833 5.582656 8.740751 0 4.537595 8.054932 0
+ L3 32768 0.020833 4.537595 8.054932 0 3.988940 8.890980 0
+ L3 32768 0.020833 3.988940 8.890980 0 5.034001 9.576799 0
+ L3 32768 0.020833 6.418694 3.458403 0 7.646536 3.692722 0
+ L3 32768 0.020833 7.646536 3.692722 0 7.833991 2.710449 0
+ L3 32768 0.020833 7.833991 2.710449 0 6.606150 2.476130 0
+ L3 32768 0.020833 6.606150 2.476130 0 6.418694 3.458403 0
+ L3 32768 0.020833 5.875673 5.347717 0 7.056088 5.758959 0
+ L3 32768 0.020833 7.056088 5.758959 0 7.385081 4.814627 0
+ L3 32768 0.020833 7.385081 4.814627 0 6.204666 4.403385 0
+ L3 32768 0.020833 6.204666 4.403385 0 5.875673 5.347717 0
+ L3 32768 0.020833 5.020321 7.205801 0 6.121503 7.797323 0
+ L3 32768 0.020833 6.121503 7.797323 0 6.594721 6.916378 0
+ L3 32768 0.020833 6.594721 6.916378 0 5.493539 6.324856 0
+ L3 32768 0.020833 5.493539 6.324856 0 5.020321 7.205801 0
+ L3 32768 0.020833 2.770605 10.537748 0 3.628429 11.265596 0
+ L3 32768 0.020833 3.628429 11.265596 0 4.275405 10.503086 0
+ L3 32768 0.020833 4.275405 10.503086 0 3.417581 9.775238 0
+ L3 32768 0.020833 3.417581 9.775238 0 2.770605 10.537748 0
+ L3 32768 0.020833 6.733693 1.499074 0 7.979845 1.597084 0
+ L3 32768 0.020833 7.979845 1.597084 0 8.058253 0.600163 0
+ L3 32768 0.020833 8.058253 0.600163 0 6.812101 0.502152 0
+ L3 32768 0.020833 6.812101 0.502152 0 6.733693 1.499074 0
+ A3 32768 0.020833 0.176777 10.114627 1.177068 0 0.000000 360.000000
+ A3 32768 0.020833 0.176777 9.832015 3.613195 0 0.000000 360.000000
+ A3 32768 0.020833 0.176777 4.175765 2.456945 0 0.000000 360.000000
+ A3 32768 0.020833 0.176777 3.769515 4.081945 0 0.000000 360.000000
+ A3 32768 0.020833 0.176777 3.113265 5.675695 0 0.000000 360.000000
+ A3 32768 0.020833 0.176777 2.269515 7.144445 0 0.000000 360.000000
+ A3 32768 0.020833 0.176777 1.238265 8.456945 0 0.000000 360.000000
+ A3 32768 0.020833 0.176777 9.207015 5.956945 0 0.000000 360.000000
+ A3 32768 0.020833 0.176777 8.269515 8.238195 0 0.000000 360.000000
+ A3 32768 0.020833 0.176777 5.550765 12.300695 0 0.000000 360.000000
+ A3 32768 0.020833 0.176777 4.394515 0.863195 0 0.000000 360.000000
+ A3 32768 0.020833 0.176777 7.050765 10.331945 0 0.000000 360.000000
+ END
+STRUCTURE N "Walther's Cornerstone Structure Backshop 933-3227"
+ F3 12632256 0.000000 4
+ 0.000000 7.000000 0
+ 0.000009 0.000000 0
+ 5.250009 0.000007 0
+ 5.250000 7.000007 0
+ F3 8388608 0.000000 4
+ 5.250000 7.000007 0
+ 5.250000 6.875007 0
+ 0.000000 6.875000 0
+ 0.000000 7.000000 0
+ F3 8388608 0.000000 4
+ 5.250000 7.000007 0
+ 5.250009 0.000007 0
+ 5.125009 0.000007 0
+ 5.125000 7.000007 0
+ F3 8388608 0.000000 4
+ 0.000009 0.000000 0
+ 0.000009 0.125000 0
+ 5.250009 0.125007 0
+ 5.250009 0.000007 0
+ F3 8388608 0.000000 4
+ 0.000000 7.000000 0
+ 0.000009 0.000000 0
+ 0.125009 0.000000 0
+ 0.125000 7.000000 0
+ F3 8388608 0.000000 4
+ 5.156251 6.390632 0
+ 5.156250 6.890632 0
+ 4.859375 6.890631 0
+ 4.859376 6.390631 0
+ F3 8388608 0.000000 4
+ 0.125001 6.406250 0
+ 0.125000 6.906250 0
+ 0.500000 6.906251 0
+ 0.500001 6.406251 0
+ F3 8388608 0.000000 4
+ 0.125008 0.656250 0
+ 0.125009 0.093750 0
+ 0.500009 0.093751 0
+ 0.500008 0.656251 0
+ F3 8388608 0.000000 4
+ 5.156258 0.656257 0
+ 5.156259 0.109382 0
+ 4.859384 0.109381 0
+ 4.859383 0.656256 0
+ F3 8388608 0.000000 4
+ 0.140629 3.750000 0
+ 0.140630 3.265625 0
+ 0.515630 3.265626 0
+ 0.515629 3.750001 0
+ F3 8388608 0.000000 4
+ 5.171879 3.750007 0
+ 5.171880 3.265632 0
+ 4.875005 3.265631 0
+ 4.875004 3.750006 0
+ END
+STRUCTURE N "Walther's Cornerstone Structure Yard Office 933-3822"
+ F3 8421504 0.000000 4
+ 0.000000 0.375000 0
+ 2.875000 0.375000 0
+ 2.875000 2.625000 0
+ 0.000000 2.625000 0
+ F3 12632256 0.000000 4
+ 2.750000 0.406250 0
+ 2.375000 0.406250 0
+ 2.375000 0.000000 0
+ 2.750000 0.000000 0
+ F3 12632256 0.000000 4
+ 1.000000 0.359375 0
+ 1.390625 0.359375 0
+ 1.390625 0.000000 0
+ 1.000000 0.000000 0
+ L3 0 0.000000 1.000000 0.125000 0 1.375000 0.125000 0
+ L3 0 0.000000 1.000000 0.250000 0 1.375000 0.250000 0
+ L3 0 0.000000 1.000000 0.375000 0 1.406250 0.375000 0
+ L3 0 0.000000 2.375000 0.375000 0 2.750000 0.375000 0
+ L3 0 0.000000 2.375000 0.250000 0 2.734375 0.250000 0
+ L3 0 0.000000 2.375000 0.125000 0 2.750000 0.125000 0
+ F3 12632256 0.000000 4
+ 0.250000 2.625000 0
+ 1.500000 2.625000 0
+ 1.500000 3.250000 0
+ 0.250000 3.250000 0
+ F3 12632256 0.000000 4
+ 0.375000 3.250000 0
+ 1.000000 3.250000 0
+ 1.000000 3.484375 0
+ 0.375000 3.484375 0
+ F3 12632256 0.000000 4
+ 0.500000 3.500000 0
+ 0.843750 3.500000 0
+ 0.843750 4.000000 0
+ 0.500000 4.000000 0
+ L3 0 0.000000 0.375000 3.250000 0 1.015625 3.250000 0
+ L3 0 0.000000 0.500000 3.500000 0 0.843750 3.500000 0
+ F3 8388608 0.000000 4
+ 0.000000 2.625000 0
+ 0.062500 2.625000 0
+ 0.062500 0.375000 0
+ 0.000000 0.375000 0
+ F3 8388608 0.000000 4
+ 0.000000 0.375000 0
+ 2.859375 0.375000 0
+ 2.859375 0.453125 0
+ 0.000000 0.453125 0
+ F3 8388608 0.000000 4
+ 2.859375 0.375000 0
+ 2.781250 0.375000 0
+ 2.781250 2.625000 0
+ 2.859375 2.625000 0
+ F3 12632256 0.000000 4
+ 0.250000 0.750000 0
+ 0.437500 0.750000 0
+ 0.437500 0.906250 0
+ 0.250000 0.906250 0
+ F3 12632256 0.000000 4
+ 0.250000 2.312500 0
+ 0.437500 2.312500 0
+ 0.437500 2.125000 0
+ 0.250000 2.125000 0
+ F3 16777215 0.000000 4
+ 1.250000 1.750000 0
+ 1.500000 1.750000 0
+ 1.500000 1.500000 0
+ 1.250000 1.500000 0
+ F3 0 0.000000 4
+ 1.281250 1.703125 0
+ 1.453125 1.703125 0
+ 1.453125 1.562500 0
+ 1.281250 1.562500 0
+ G3 0 0.000000 0.078125 2.250000 1.687500 0
+ END
+STRUCTURE N "Walthers Steel Water Tower B/U 933-2601"
+ F3 0 0.000000 4
+ 0.250000 0.000000 0
+ 0.250000 0.000000 0
+ 0.250000 0.000000 0
+ 0.250000 0.000000 0
+ F3 15395562 0.000000 9
+ 0.250000 0.000000 0
+ 0.250000 0.000000 0
+ 1.750000 0.000000 0
+ 2.000000 0.250000 0
+ 2.000000 1.750000 0
+ 1.750000 2.000000 0
+ 0.250000 2.000000 0
+ 0.000000 1.750000 0
+ 0.015625 0.250000 0
+ G3 8421504 0.000000 1.000000 1.000000 1.000000 0
+ L3 0 0.000000 0.000000 1.000000 0 2.000000 1.000000 0
+ L3 0 0.000000 1.000000 0.000000 0 1.000000 2.000000 0
+ L3 0 0.000000 0.281250 1.687500 0 1.718750 0.343750 0
+ L3 0 0.000000 0.328125 0.281250 0 1.656250 1.718750 0
+ L3 0 0.000000 0.329669 1.758125 0 1.018693 1.033385 0
+ L3 0 0.000000 0.239077 1.671997 0 0.928100 0.947257 0
+ L3 0 0.000000 0.501925 1.576940 0 0.411333 1.490812 0
+ L3 0 0.000000 0.588053 1.486347 0 0.497461 1.400220 0
+ L3 0 0.000000 0.674181 1.395755 0 0.560940 1.288095 0
+ L3 0 0.000000 0.748985 1.294397 0 0.647068 1.197503 0
+ L3 0 0.000000 0.932565 1.123978 0 0.830648 1.027084 0
+ L3 0 0.000000 1.018693 1.033385 0 0.928100 0.947257 0
+ L3 0 0.000000 0.846437 1.214570 0 0.755844 1.128442 0
+ L3 0 0.000000 0.415797 1.667532 0 0.325205 1.581404 0
+ L3 0 0.000000 0.329669 1.758125 0 0.239077 1.671997 0
+ END
+STRUCTURE N "Walthers Oil Column B/U 933-2601"
+ F3 14803425 0.000000 4
+ 0.000000 0.000000 0
+ 0.500000 0.000000 0
+ 0.500000 0.500000 0
+ 0.000000 0.500000 0
+ F3 0 0.000000 4
+ 0.250000 0.281250 0
+ 0.625000 0.281250 0
+ 0.625000 0.218750 0
+ 0.250000 0.218750 0
+ END
+STRUCTURE N "Walthers Water Column B/U 933-2601"
+ F3 14342874 0.000000 4
+ 0.000000 0.000000 0
+ 0.875000 0.000000 0
+ 0.875000 0.500000 0
+ 0.000000 0.500000 0
+ F3 0 0.000000 4
+ 0.250000 0.281250 0
+ 1.000000 0.281250 0
+ 1.000000 0.218750 0
+ 0.250000 0.218750 0
+ END
+STRUCTURE N "Walther's Trackside Interlocking Tower 933-2600A"
+ F3 8421504 0.000000 4
+ 0.015625 0.000000 0
+ 1.265625 0.000000 0
+ 1.265625 1.250000 0
+ 0.015625 1.250000 0
+ L3 0 0.000000 0.000000 0.000000 0 1.250000 1.250000 0
+ L3 0 0.000000 1.250000 0.000000 0 0.015625 1.250000 0
+ F3 12976128 0.000000 4
+ 1.265625 1.250000 0
+ 1.015625 1.250000 0
+ 1.015625 2.000000 0
+ 1.265625 2.000000 0
+ F3 13369344 0.000000 4
+ 1.015625 1.250000 0
+ 0.015625 1.250000 0
+ 0.015625 1.421875 0
+ 1.015625 1.421875 0
+ F3 15790320 0.000000 4
+ 0.015625 0.750000 0
+ 0.203125 0.750000 0
+ 0.203125 0.500000 0
+ 0.015625 0.500000 0
+ F3 0 0.000000 4
+ 0.046875 0.687500 0
+ 0.140625 0.687500 0
+ 0.140625 0.562500 0
+ 0.046875 0.562500 0
+ L3 0 0.000000 0.390625 1.250000 0 0.390625 1.437500 0
+ L3 0 0.000000 1.015625 1.437500 0 1.265625 1.437500 0
+ L3 0 0.000000 1.265625 1.437500 0 1.265625 1.250000 0
+ L3 0 0.000000 1.265625 1.250000 0 1.015625 1.250000 0
+ L3 0 0.000000 1.015625 1.250000 0 1.015625 1.437500 0
+ L3 0 0.000000 1.015625 1.875000 0 1.250000 1.875000 0
+ L3 0 0.000000 1.015625 1.750000 0 1.265625 1.750000 0
+ L3 0 0.000000 1.015625 1.625000 0 1.265625 1.625000 0
+ L3 0 0.000000 1.015625 1.500000 0 1.234375 1.500000 0
+ L3 0 0.000000 0.515625 1.250000 0 0.515625 1.453125 0
+ L3 0 0.000000 0.640625 1.250000 0 0.640625 1.453125 0
+ L3 0 0.000000 0.765625 1.250000 0 0.765625 1.437500 0
+ L3 0 0.000000 0.890625 1.250000 0 0.890625 1.453125 0
+ END
+STRUCTURE N "Walther's Speeder Shed 933-2600B"
+ F3 10724259 0.000000 4
+ 0.000000 1.000000 0
+ 1.125000 1.000000 0
+ 1.125000 2.625000 0
+ 0.000000 2.625000 0
+ L3 0 0.000000 0.546875 1.000000 0 0.561380 2.625010 0
+ F3 12632256 0.000000 4
+ 0.171875 0.000000 0
+ 0.921875 0.000000 0
+ 0.921875 1.000000 0
+ 0.171875 1.000000 0
+ L3 0 0.000000 0.343750 0.000000 0 0.343750 1.000000 0
+ L3 0 0.000000 0.750000 0.000000 0 0.750000 1.000000 0
+ L3 0 0.000000 0.343750 0.125000 0 0.750000 0.125000 0
+ L3 0 0.000000 0.328125 0.250000 0 0.750000 0.250000 0
+ L3 0 0.000000 0.343750 0.375000 0 0.734375 0.375000 0
+ L3 0 0.000000 0.343750 0.500000 0 0.765625 0.500000 0
+ L3 0 0.000000 0.343750 0.625000 0 0.750000 0.625000 0
+ L3 0 0.000000 0.343750 0.750000 0 0.750000 0.750000 0
+ L3 0 0.000000 0.328125 0.875000 0 0.750000 0.875000 0
+ END
+STRUCTURE N "Walther's Crossing Shanty 933-2600C"
+ F3 12632256 0.000000 4
+ 0.000000 0.000000 0
+ 0.625000 0.000000 0
+ 0.625000 0.250000 0
+ 0.000000 0.250000 0
+ F3 11053224 0.000000 4
+ 0.000000 0.250000 0
+ 0.609375 0.250000 0
+ 0.609375 0.750000 0
+ 0.000000 0.750000 0
+ L3 0 0.000000 0.000000 0.500000 0 0.609375 0.500000 0
+ G3 0 0.000000 0.031250 0.187500 0.625000 0
+ F3 16776960 0.000000 4
+ 0.609375 0.656250 0
+ 0.875000 0.656250 0
+ 0.875000 0.296875 0
+ 0.609375 0.296875 0
+ L3 0 0.000000 0.609375 0.671875 0 0.859375 0.671875 0
+ L3 0 0.000000 0.859375 0.671875 0 0.859375 0.281250 0
+ L3 0 0.000000 0.859375 0.281250 0 0.609375 0.281250 0
+ L3 0 0.000000 0.609375 0.281250 0 0.609375 0.671875 0
+ END
+STRUCTURE N "Walther's Speeder 933-2600D"
+ F3 16776960 0.000000 4
+ 0.000000 0.000000 0
+ 0.500000 0.000000 0
+ 0.500000 0.375000 0
+ 0.000000 0.375000 0
+ L3 0 0.000000 0.000000 0.000000 0 0.500000 0.000000 0
+ L3 0 0.000000 0.500000 0.000000 0 0.500000 0.375000 0
+ L3 0 0.000000 0.500000 0.375000 0 0.000000 0.375000 0
+ L3 0 0.000000 0.000000 0.375000 0 0.000000 0.000000 0
+ G3 0 0.000000 0.015625 0.031250 0.187500 0
+ END
+STRUCTURE N "Walther's Cornerstone Structure Cinder Conveyor & Ash Pit 933-3816"
+ F3 8421504 0.000000 4
+ 0.125000 0.375000 0
+ 1.000000 0.375000 0
+ 1.000000 2.125000 0
+ 0.125000 2.125000 0
+ F3 8421504 0.000000 4
+ 0.000000 1.750000 0
+ 1.125000 1.750000 0
+ 1.125000 1.375000 0
+ 0.000000 1.375000 0
+ F3 0 0.000000 4
+ 0.046875 1.687500 0
+ 1.062500 1.687500 0
+ 1.062500 1.437500 0
+ 0.046875 1.437500 0
+ F3 14803425 0.000000 4
+ 0.421875 0.640625 0
+ 1.000000 0.640625 0
+ 1.000000 1.203125 0
+ 0.421875 1.203125 0
+ L3 0 0.000000 0.468750 1.218750 0 0.468750 0.625000 0
+ L3 0 0.000000 0.531250 1.218750 0 0.531250 0.640625 0
+ L3 0 0.000000 0.593750 1.203125 0 0.593750 0.640625 0
+ L3 0 0.000000 0.656250 1.218750 0 0.656250 0.609375 0
+ L3 0 0.000000 0.718750 1.218750 0 0.718750 0.640625 0
+ L3 0 0.000000 0.781250 1.203125 0 0.781250 0.640625 0
+ L3 0 0.000000 0.843750 1.218750 0 0.843750 0.640625 0
+ L3 0 0.000000 0.906250 1.218750 0 0.906250 0.640625 0
+ F3 0 0.000000 4
+ 0.125000 0.375000 0
+ 1.000000 0.375000 0
+ 1.000000 0.406250 0
+ 0.125000 0.406250 0
+ F3 14342874 0.000000 4
+ 0.312500 0.375000 0
+ 0.812500 0.375000 0
+ 0.812500 0.000000 0
+ 0.312500 0.000000 0
+ F3 0 0.000000 4
+ 0.406250 1.234375 0
+ 0.125000 1.234375 0
+ 0.125000 1.218750 0
+ 0.406250 1.218750 0
+ F3 0 0.000000 4
+ 0.109375 0.406250 0
+ 0.140625 0.406250 0
+ 0.140625 1.234375 0
+ 0.109375 1.234375 0
+ F3 0 0.000000 4
+ 0.984375 0.390625 0
+ 0.953125 0.390625 0
+ 0.953125 0.656250 0
+ 0.984375 0.656250 0
+ L3 0 0.000000 0.453125 0.000000 0 0.453125 0.390625 0
+ L3 0 0.000000 0.640625 0.000000 0 0.640625 0.406250 0
+ END
+STRUCTURE N "Walther's Cornerstone Structure Sand Drying Building 933-3813"
+ F3 8421504 0.000000 4
+ 0.000000 0.000000 0
+ 1.812500 0.000000 0
+ 1.812500 1.687500 0
+ 0.000000 1.687500 0
+ L3 0 0.000000 0.000000 0.843750 0 1.812500 0.843750 0
+ L3 0 0.000000 0.765625 0.968750 0 1.125000 0.968750 0
+ L3 0 0.000000 1.125000 0.968750 0 1.125000 0.703125 0
+ L3 0 0.000000 1.125000 0.703125 0 0.765625 0.703125 0
+ L3 0 0.000000 0.765625 0.703125 0 0.765625 0.968750 0
+ F3 16777215 0.000000 4
+ 1.250000 1.375000 0
+ 1.406250 1.375000 0
+ 1.406250 1.250000 0
+ 1.250000 1.250000 0
+ F3 0 0.000000 4
+ 1.281250 1.343750 0
+ 1.359375 1.343750 0
+ 1.359375 1.281250 0
+ 1.281250 1.281250 0
+ END
+STRUCTURE N "Walther's Cornerstone Structure Sanding Storage Bin 933-3813"
+ F3 8421504 0.000000 4
+ 0.000000 0.000000 0
+ 3.500000 0.000000 0
+ 3.500000 1.687500 0
+ 0.000000 1.687500 0
+ F3 16777215 0.000000 4
+ 0.125000 1.562500 0
+ 3.406250 1.562500 0
+ 3.406250 0.109375 0
+ 0.125000 0.109375 0
+ END
+STRUCTURE N "Walther's Cornerstone Structure Small Sanding Tower 933-3813"
+ F3 15790080 0.000000 4
+ 0.000000 0.375000 0
+ 0.875000 0.375000 0
+ 0.875000 0.687500 0
+ 0.000000 0.687500 0
+ G3 12632256 0.000000 0.187500 0.437500 0.562500 0
+ L3 0 0.000000 0.437500 0.750000 0 0.437500 2.125000 0
+ L3 0 0.000000 0.437500 0.375000 0 0.437500 0.000000 0
+ END
+STRUCTURE N "Walther's Cornerstone Structure Large Sanding Tower 933-3813"
+ F3 14803200 0.000000 4
+ 0.000000 1.187500 0
+ 0.750000 1.187500 0
+ 0.750000 1.937500 0
+ 0.000000 1.937500 0
+ F3 12895232 0.000000 4
+ 0.187500 1.375000 0
+ 0.562500 1.375000 0
+ 0.562500 1.750000 0
+ 0.187500 1.750000 0
+ G3 12632256 0.000000 0.171875 0.359375 1.578125 0
+ F3 14803200 0.000000 4
+ 0.296875 0.000000 0
+ 0.484375 0.000000 0
+ 0.484375 0.187500 0
+ 0.296875 0.187500 0
+ F3 14803200 0.000000 4
+ 0.291800 3.073050 0
+ 0.479300 3.073050 0
+ 0.479300 3.260550 0
+ 0.291800 3.260550 0
+ F3 12632256 0.000000 4
+ 0.328125 3.218750 0
+ 0.437500 3.218750 0
+ 0.437500 3.140625 0
+ 0.328125 3.140625 0
+ F3 12632256 0.000000 4
+ 0.343750 0.156250 0
+ 0.437500 0.156250 0
+ 0.437500 0.062500 0
+ 0.343750 0.062500 0
+ L3 0 0.000000 0.375000 1.734375 0 0.375000 3.156250 0
+ L3 0 0.000000 0.375000 1.406250 0 0.374997 0.171875 0
+ END
+STRUCTURE N "Walthers Modern Roundhouse 933-3260"
+ F3 12632256 0.000000 8
+ 6.882222 1.844086 0
+ 7.097887 0.620985 0
+ 7.097887 -0.620985 0
+ 6.882222 -1.844086 0
+ 17.507406 -4.691095 0
+ 18.056029 -1.579698 0
+ 18.056029 1.579698 0
+ 17.507406 4.691095 0
+ L3 0 0.053333 7.097887 0.620985 0 7.097887 -0.620985 0
+ L3 0 0.053333 7.097887 0.620985 0 6.882222 1.844086 0
+ L3 0 0.053333 7.097887 -0.620985 0 6.882222 -1.844086 0
+ L3 0 0.053333 10.750601 0.940556 0 10.750601 -0.940556 0
+ L3 0 0.053333 10.750601 0.940556 0 10.423950 2.793089 0
+ L3 0 0.053333 10.750601 -0.940556 0 10.423950 -2.793089 0
+ L3 0 0.053333 14.403315 1.260127 0 14.403315 -1.260127 0
+ L3 0 0.053333 14.403315 1.260127 0 13.965678 3.742092 0
+ L3 0 0.053333 14.403315 -1.260127 0 13.965678 -3.742092 0
+ L3 0 0.053333 18.056029 1.579698 0 18.056029 -1.579698 0
+ L3 0 0.053333 18.056029 1.579698 0 17.507406 4.691095 0
+ L3 0 0.053333 18.056029 -1.579698 0 17.507406 -4.691095 0
+ L3 0 0.053333 6.882222 1.844086 0 17.507406 4.691095 0
+ L3 0 0.053333 7.097887 0.620985 0 18.056029 1.579698 0
+ L3 0 0.053333 7.097887 -0.620985 0 18.056029 -1.579698 0
+ L3 0 0.053333 6.882222 -1.844086 0 17.507406 -4.691095 0
+ A3 0 0.053333 0.203431 16.249328 2.865195 0 0.000000 360.000000
+ A3 0 0.053333 0.339052 16.249328 2.865195 0 0.000000 360.000000
+ A3 0 0.053333 0.203431 16.500000 0.000000 0 0.000000 360.000000
+ A3 0 0.053333 0.339052 16.500000 0.000000 0 0.000000 360.000000
+ A3 0 0.053333 0.203431 16.249328 -2.865195 0 0.000000 360.000000
+ A3 0 0.053333 0.339052 16.249328 -2.865195 0 0.000000 360.000000
+ END
+STRUCTURE N "Walthers Modern Roundhouse Add-On Stalls 933-3261"
+ F3 12632256 0.000000 8
+ 6.882222 1.844086 0
+ 7.097887 0.620985 0
+ 7.097887 -0.620985 0
+ 6.882222 -1.844086 0
+ 17.507406 -4.691095 0
+ 18.056029 -1.579698 0
+ 18.056029 1.579698 0
+ 17.507406 4.691095 0
+ L3 0 0.053333 7.097887 0.620985 0 7.097887 -0.620985 0
+ L3 0 0.053333 7.097887 0.620985 0 6.882222 1.844086 0
+ L3 0 0.053333 7.097887 -0.620985 0 6.882222 -1.844086 0
+ L3 0 0.053333 10.750601 0.940556 0 10.750601 -0.940556 0
+ L3 0 0.053333 10.750601 0.940556 0 10.423950 2.793089 0
+ L3 0 0.053333 10.750601 -0.940556 0 10.423950 -2.793089 0
+ L3 0 0.053333 14.403315 1.260127 0 14.403315 -1.260127 0
+ L3 0 0.053333 14.403315 1.260127 0 13.965678 3.742092 0
+ L3 0 0.053333 14.403315 -1.260127 0 13.965678 -3.742092 0
+ L3 0 0.053333 18.056029 1.579698 0 18.056029 -1.579698 0
+ L3 0 0.053333 18.056029 1.579698 0 17.507406 4.691095 0
+ L3 0 0.053333 18.056029 -1.579698 0 17.507406 -4.691095 0
+ L3 0 0.053333 6.882222 1.844086 0 17.507406 4.691095 0
+ L3 0 0.053333 7.097887 0.620985 0 18.056029 1.579698 0
+ L3 0 0.053333 7.097887 -0.620985 0 18.056029 -1.579698 0
+ L3 0 0.053333 6.882222 -1.844086 0 17.507406 -4.691095 0
+ A3 0 0.053333 0.203431 16.249328 2.865195 0 0.000000 360.000000
+ A3 0 0.053333 0.339052 16.249328 2.865195 0 0.000000 360.000000
+ A3 0 0.053333 0.203431 16.500000 0.000000 0 0.000000 360.000000
+ A3 0 0.053333 0.339052 16.500000 0.000000 0 0.000000 360.000000
+ A3 0 0.053333 0.203431 16.249328 -2.865195 0 0.000000 360.000000
+ A3 0 0.053333 0.339052 16.249328 -2.865195 0 0.000000 360.000000
+ END
+STRUCTURE N "Walthers Modern Roundhouse(Single Stall) 933-3260"
+ F3 12632256 0.000000 4
+ 7.097887 0.620985 0
+ 7.097887 -0.620985 0
+ 18.056029 -1.579698 0
+ 18.056029 1.579698 0
+ L3 0 0.053333 7.097887 0.620985 0 7.097887 -0.620985 0
+ L3 0 0.053333 10.750601 0.940556 0 10.750601 -0.940556 0
+ L3 0 0.053333 14.403315 1.260127 0 14.403315 -1.260127 0
+ L3 0 0.053333 18.056029 1.579698 0 18.056029 -1.579698 0
+ L3 0 0.053333 7.097887 0.620985 0 18.056029 1.579698 0
+ L3 0 0.053333 7.097887 -0.620985 0 18.056029 -1.579698 0
+ A3 0 0.053333 0.203431 16.500000 0.000000 0 0.000000 360.000000
+ A3 0 0.053333 0.339052 16.500000 0.000000 0 0.000000 360.000000
+ END
+TURNOUT N "Walthers Modern Roundhouse(Single Stall /w Track) 933-3260"
+ P "Normal" 1
+ E 5.187500 0.000000 270.000000
+ S 0 0 5.187500 0.00000 18.000000 0.000000
+ F3 12632256 0.000000 4
+ 7.097887 0.620985 0
+ 7.097887 -0.620985 0
+ 18.056029 -1.579698 0
+ 18.056029 1.579698 0
+ L3 0 0.053333 7.097887 0.620985 0 7.097887 -0.620985 0
+ L3 0 0.053333 10.750601 0.940556 0 10.750601 -0.940556 0
+ L3 0 0.053333 14.403315 1.260127 0 14.403315 -1.260127 0
+ L3 0 0.053333 18.056029 1.579698 0 18.056029 -1.579698 0
+ L3 0 0.053333 7.097887 0.620985 0 18.056029 1.579698 0
+ L3 0 0.053333 7.097887 -0.620985 0 18.056029 -1.579698 0
+ A3 0 0.053333 0.203431 16.500000 0.000000 0 0.000000 360.000000
+ A3 0 0.053333 0.339052 16.500000 0.000000 0 0.000000 360.000000
+ END
+STRUCTURE N "Walther's Cornerstone Structures Machine Shop 933-3264"
+ F3 12632256 0.000000 4
+ 3.015625 0.000000 0
+ 5.187500 0.000000 0
+ 5.187500 2.125000 0
+ 3.015625 2.125000 0
+ F3 8388608 0.000000 4
+ 3.015625 2.125000 0
+ 5.187500 2.125000 0
+ 5.187500 2.062500 0
+ 3.015625 2.062500 0
+ F3 8388608 0.000000 4
+ 5.187500 0.000000 0
+ 5.125000 0.000000 0
+ 5.125000 2.093750 0
+ 5.187500 2.093750 0
+ F3 8388608 0.000000 4
+ 3.015625 0.000000 0
+ 5.171875 0.000000 0
+ 5.171875 0.062500 0
+ 3.015625 0.062500 0
+ G3 8388608 0.000000 0.345168 4.125000 2.500000 0
+ G3 0 0.000000 0.250000 4.125000 2.500000 0
+ F3 8388608 0.000000 4
+ 3.015625 1.000000 0
+ 4.015625 1.000000 0
+ 4.015625 0.937500 0
+ 3.015625 0.937500 0
+ F3 8388608 0.000000 4
+ 4.015625 0.062500 0
+ 3.953125 0.062500 0
+ 3.953125 1.000000 0
+ 4.015625 1.000000 0
+ F3 12632256 0.000000 4
+ 0.015625 0.015625 0
+ 3.015625 0.015625 0
+ 3.015625 8.140625 0
+ 0.015625 8.140625 0
+ F3 8388608 0.000000 4
+ 3.031250 0.046875 0
+ 2.953125 0.046875 0
+ 2.953125 8.140625 0
+ 3.031250 8.140625 0
+ F3 8388608 0.000000 4
+ 0.015625 8.140625 0
+ 0.093750 8.140625 0
+ 0.093750 0.015625 0
+ 0.015625 0.015625 0
+ G3 0 0.000000 0.187500 2.015625 6.015625 0
+ F3 8388608 0.000000 4
+ 0.000000 8.125000 0
+ 3.000000 8.125000 0
+ 3.000000 8.062500 0
+ 0.000000 8.062500 0
+ F3 8388608 0.000000 4
+ 0.031250 0.000000 0
+ 3.031250 0.000000 0
+ 3.031250 0.062500 0
+ 0.031250 0.062500 0
+ G3 0 0.000000 0.187500 2.031250 3.000000 0
+ G3 0 0.000000 0.187500 2.031250 4.500000 0
+ G3 0 0.000000 0.187500 2.031250 1.500000 0
+ END
+STRUCTURE N "Wahther's Cornerstone Structures Machine Shop Engine Room 933-3264A"
+ F3 12632256 0.000000 4
+ 0.000000 0.000000 0
+ 3.000000 0.000000 0
+ 3.000000 6.000000 0
+ 0.000000 6.000000 0
+ F3 8388608 0.000000 4
+ 0.000000 6.000000 0
+ 2.953125 6.000000 0
+ 2.953125 5.937500 0
+ 0.000000 5.937500 0
+ F3 8388608 0.000000 4
+ 3.000000 6.000000 0
+ 2.937500 6.000000 0
+ 2.937500 0.000000 0
+ 3.000000 0.000000 0
+ F3 8388608 0.000000 4
+ 0.000000 0.000000 0
+ 2.968750 0.000000 0
+ 2.968750 0.062500 0
+ 0.000000 0.062500 0
+ F3 8388608 0.000000 4
+ 0.000000 0.000000 0
+ 0.062500 0.000000 0
+ 0.062500 6.000000 0
+ 0.000000 6.000000 0
+ G3 0 0.000000 0.187500 1.500000 3.000000 0
+ G3 0 0.000000 0.187500 1.500000 5.000000 0
+ G3 0 0.000000 0.187500 1.500000 1.000000 0
+ END
+
+
+SUBCONTENTS Walthers Cornerstone N Structures - Turn Tables
+TURNOUT N "Walthers Modern 130' TurnTable 933-2613/2618"
+ P "1" 1 2 3
+ P "2" 4 5 6
+ P "3" 7 8 9
+ P "4" 10 11 12
+ P "5" 13 14 15
+ P "6" 16 17 18
+ P "7" 19 20 21
+ P "8" 22 23 24
+ P "9" 25 26 27
+ P "10" 28 29 30
+ P "11" 31 32 33
+ P "12" 34 35 36
+ P "13" 37 38 39
+ P "14" 40 41 42
+ P "15" 43 44 45
+ P "16" 46 47 48
+ P "17" 49 50 51
+ P "18" 52 53 54
+ E 0.000000 0.000000 180.000000
+ #E 0.000000 5.187500 0.000000
+ E 0.900800 5.108690 10.000000
+ E 1.774229 4.874655 20.000000
+ E 2.593750 4.492507 30.000000
+ E 3.334461 3.973856 40.000000
+ E 3.973856 3.334461 50.000000
+ E 4.492507 2.593750 60.000000
+ E 4.874655 1.774229 70.000000
+ E 5.108690 0.900800 80.000000
+ E 5.187500 0.000000 90.000000
+ E 5.108690 -0.900800 100.000000
+ E 4.874655 -1.774229 110.000000
+ E 4.492507 -2.593750 120.000000
+ E 3.973856 -3.334461 130.000000
+ E 3.334461 -3.973856 140.000000
+ E 2.593750 -4.492507 150.000000
+ E 1.774229 -4.874655 160.000000
+ E 0.900800 -5.108690 170.000000
+ #E 0.000000 -5.187500 180.000000
+ E -0.900800 -5.108690 190.000000
+ E -1.774229 -4.874655 200.000000
+ E -2.593750 -4.492507 210.000000
+ E -3.334461 -3.973856 220.000000
+ E -3.973856 -3.334461 230.000000
+ E -4.492507 -2.593750 240.000000
+ E -4.874655 -1.774229 250.000000
+ E -5.108690 -0.900800 260.000000
+ E -5.187500 0.000000 270.000000
+ E -5.108690 0.900800 280.000000
+ E -4.874655 1.774229 290.000000
+ E -4.492507 2.593750 300.000000
+ E -3.973856 3.334461 310.000000
+ E -3.334461 3.973856 320.000000
+ E -2.593750 4.492507 330.000000
+ E -1.774229 4.874655 340.000000
+ E -0.900800 5.108690 350.000000
+#0/180
+ S 16777215 0.000000 0.000000 5.187500 0.000000 4.968750
+ S 16777215 0.000000 0.000000 4.968750 0.000000 -4.968750
+ S 16777215 0.000000 0.000000 -4.968750 0.000000 -5.187500
+#10/190
+ S 0 0.000000 0.900800 5.108690 0.862814 4.893264
+ S 16777215 0.000000 0.862814 4.893264 -0.862814 -4.893264
+ S 0 0.000000 -0.862814 -4.893264 -0.900800 -5.108690
+#20/200
+ S 0 0.000000 1.774229 4.874655 1.699413 4.669098
+ S 16777215 0.000000 1.699413 4.669098 -1.699413 -4.669098
+ S 0 0.000000 -1.699413 -4.669098 -1.774229 -4.874655
+#30/210
+ S 0 0.000000 2.593750 4.492507 2.484375 4.303064
+ S 16777215 0.000000 2.484375 4.303064 -2.484375 -4.303064
+ S 0 0.000000 -2.484375 -4.303064 -2.593750 -4.492507
+#40/220
+ S 0 0.000000 3.334461 3.973856 3.193851 3.806283
+ S 16777215 0.000000 3.193851 3.806283 -3.193851 -3.806283
+ S 0 0.000000 -3.193851 -3.806283 -3.334461 -3.973856
+#50/230
+ S 0 0.000000 3.973856 3.334461 3.806283 3.193851
+ S 16777215 0.000000 3.806283 3.193851 -3.806283 -3.193851
+ S 0 0.000000 -3.806283 -3.193851 -3.973856 -3.334461
+#60/240
+ S 0 0.000000 4.492507 2.593750 4.303064 2.484375
+ S 16777215 0.000000 4.303064 2.484375 -4.303064 -2.484375
+ S 0 0.000000 -4.303064 -2.484375 -4.492507 -2.593750
+#70/250
+ S 0 0.000000 4.874655 1.774229 4.669098 1.699413
+ S 16777215 0.000000 4.669098 1.699413 -4.669098 -1.699413
+ S 0 0.000000 -4.669098 -1.699413 -4.874655 -1.774229
+#80/260
+ S 0 0.000000 5.108690 0.900800 4.893264 0.862814
+ S 16777215 0.000000 4.893264 0.862814 -4.893264 -0.862814
+ S 0 0.000000 -4.893264 -0.862814 -5.108690 -0.900800
+#90/270
+ S 0 0.000000 5.187500 0.000000 4.968750 0.000000
+ S 16777215 0.000000 4.968750 0.000000 -4.968750 0.000000
+ S 0 0.000000 -4.968750 0.000000 -5.187500 0.000000
+#100/280
+ S 0 0.000000 5.108690 -0.900800 4.893264 -0.862814
+ S 16777215 0.000000 4.893264 -0.862814 -4.893264 0.862814
+ S 0 0.000000 -4.893264 0.862814 -5.108690 0.900800
+#110/290
+ S 0 0.000000 4.874655 -1.774229 4.669098 -1.699413
+ S 16777215 0.000000 4.669098 -1.699413 -4.669098 1.699413
+ S 0 0.000000 -4.669098 1.699413 -4.874655 1.774229
+#120/300
+ S 0 0.000000 4.492507 -2.593750 4.303064 -2.484375
+ S 16777215 0.000000 4.303064 -2.484375 -4.303064 2.484375
+ S 0 0.000000 -4.303064 2.484375 -4.492507 2.593750
+#130/310
+ S 0 0.000000 3.973856 -3.334461 3.806283 -3.193851
+ S 16777215 0.000000 3.806283 -3.193851 -3.806283 3.193851
+ S 0 0.000000 -3.806283 3.193851 -3.973856 3.334461
+#140/320
+ S 0 0.000000 3.334461 -3.973856 3.193851 -3.806283
+ S 16777215 0.000000 3.193851 -3.806283 -3.193851 3.806283
+ S 0 0.000000 -3.193851 3.806283 -3.334461 3.973856
+#150/330
+ S 0 0.000000 2.593750 -4.492507 2.484375 -4.303064
+ S 16777215 0.000000 2.484375 -4.303064 -2.484375 4.303064
+ S 0 0.000000 -2.484375 4.303064 -2.593750 4.492507
+#160/340
+ S 0 0.000000 1.774229 -4.874655 1.699413 -4.669098
+ S 16777215 0.000000 1.699413 -4.669098 -1.699413 4.669098
+ S 0 0.000000 -1.699413 4.669098 -1.774229 4.874655
+#170/350
+ S 0 0.000000 0.900800 -5.108690 0.862814 -4.893264
+ S 16777215 0.000000 0.862814 -4.893264 -0.862814 4.893264
+ S 0 0.000000 -0.862814 4.893264 -0.900800 5.108690
+
+ A 0 0.031250 5.187500 0.000000 0.000000 0.000000 360.000000
+ A 0 0.031250 4.968750 0.000000 0.000000 0.000000 360.000000
+ G3 0 0.000000 0.5 0.000000 0.000000 0
+ A 0 0.000000 4.218750 0.000000 0.000000 0.000000 360.000000
+ A 0 0.020000 4.771875 0.000000 0.000000 0.000000 360.000000
+ A 0 0.020000 4.321875 0.000000 0.000000 0.000000 360.000000
+ END
+
+TURNOUT N "Walthers Manual 120' 10d index TurnTable 933-3203"
+# TT Designed w/ 9.00" bridge, 9.576" OD, 10 degree spacing
+ P "1" 1 2 3
+ P "2" 4 5 6
+ P "3" 7 8 9
+ P "4" 10 11 12
+ P "5" 13 14 15
+ P "6" 16 17 18
+ P "7" 19 20 21
+ P "8" 22 23 24
+ P "9" 25 26 27
+ P "10" 28 29 30
+ P "11" 31 32 33
+ P "12" 34 35 36
+ P "13" 37 38 39
+ P "14" 40 41 42
+ P "15" 43 44 45
+ P "16" 46 47 48
+ P "17" 49 50 51
+ P "18" 52 53 54
+
+ E 0.000000 0.000000 180.000000
+ E 0.000000 4.788462 0.000000
+ E 0.831508 4.715714 10.000000
+ E 1.637750 4.499682 20.000000
+ E 2.394231 4.146930 30.000000
+ E 3.077964 3.668175 40.000000
+ E 3.668175 3.077964 50.000000
+ E 4.146930 2.394231 60.000000
+ E 4.499682 1.637750 70.000000
+ E 4.715714 0.831508 80.000000
+ E 4.788162 0.000000 90.000000
+ E 4.715714 -0.831508 100.000000
+ E 4.499682 -1.637750 110.000000
+ E 4.146930 -2.394231 120.000000
+ E 3.668175 -3.077964 130.000000
+ E 3.077964 -3.668175 140.000000
+ E 2.394231 -4.146930 150.000000
+ E 1.637750 -4.499682 160.000000
+ E 0.831508 -4.715714 170.000000
+ E 0.000000 -4.788462 180.000000
+ E -0.831508 -4.715714 190.000000
+ E -1.637750 -4.499682 200.000000
+ E -2.394231 -4.146930 210.000000
+ E -3.077964 -3.668175 220.000000
+ E -3.668175 -3.077964 230.000000
+ E -4.146930 -2.394231 240.000000
+ E -4.499682 -1.637750 250.000000
+ E -4.715714 -0.831508 260.000000
+ E -4.788162 0.000000 270.000000
+ E -4.715714 0.831508 280.000000
+ E -4.499682 1.637750 290.000000
+ E -4.146930 2.394231 300.000000
+ E -3.668175 3.077964 310.000000
+ E -3.077964 3.668175 320.000000
+ E -2.394231 4.146930 330.000000
+ E -1.637750 4.499682 340.000000
+ E -0.831508 4.715714 350.000000
+#Setup
+# S 16777215 0 0.000000 0.000000 0.000000 4.788462
+# S 16777215 0 0.000000 -4.788462 0.000000 4.788462
+#0/180
+ S 0 0 0.000000 4.788462 0.000000 4.500000
+ S 16777215 0 0.000000 4.500000 0.000000 -4.500000
+ S 0 0 0.000000 -4.500000 0.000000 -4.788462
+#10/190
+ S 0 0 0.831508 4.715714 0.781417 4.431635
+ S 16777215 0 0.781417 4.431635 -0.781417 -4.431635
+ S 0 0 -0.781417 -4.431635 -0.831508 -4.715714
+#20/200
+ S 0 0 1.637750 4.499682 1.539090 4.228617
+ S 16777215 0 1.539090 4.228617 -1.539090 -4.228617
+ S 0 0 -1.539090 -4.228617 -1.637750 -4.499682
+#30/210
+ S 0 0 2.394231 4.146930 2.250000 3.897114
+ S 16777215 0 2.250000 3.897114 -2.250000 -3.897114
+ S 0 0 -2.250000 -3.897114 -2.394231 -4.146930
+#40/220
+ S 0 0 3.077964 3.668175 2.892545 3.447200
+ S 16777215 0 2.892545 3.447200 -2.892545 -3.447200
+ S 0 0 -2.892545 -3.447200 -3.077964 -3.668175
+#50/230
+ S 0 0 3.668175 3.077964 3.447200 2.892545
+ S 16777215 0 3.447200 2.892545 -3.447200 -2.892545
+ S 0 0 -3.447200 -2.892545 -3.668175 -3.077964
+#60/240
+ S 0 0 4.146930 2.394231 3.897114 2.250000
+ S 16777215 0 3.897114 2.250000 -3.897114 -2.250000
+ S 0 0 -3.897114 -2.250000 -4.146930 -2.394231
+#70/250
+ S 0 0 4.499682 1.637750 4.228617 1.539090
+ S 16777215 0 4.228617 1.539090 -4.228617 -1.539090
+ S 0 0 -4.228617 -1.539090 -4.499682 -1.637750
+#80/260
+ S 0 0 4.715714 0.831508 4.431635 0.781417
+ S 16777215 0 4.431635 0.781417 -4.431635 -0.781417
+ S 0 0 -4.431635 -0.781417 -4.715714 -0.831508
+#90/270
+ S 0 0 4.788462 0.000000 4.500000 0.000000
+ S 16777215 0 4.500000 0.000000 -4.500000 0.000000
+ S 0 0 -4.500000 0.000000 -4.788462 0.000000
+#100/280
+ S 0 0 4.715714 -0.831508 4.431635 -0.781417
+ S 16777215 0 4.431635 -0.781417 -4.431635 0.781417
+ S 0 0 -4.431635 0.781417 -4.715714 0.831508
+#110/290
+ S 0 0 4.499682 -1.637750 4.228617 -1.539090
+ S 16777215 0 4.228617 -1.539090 -4.228617 1.539090
+ S 0 0 -4.228617 1.539090 -4.499682 1.637750
+#120/300
+ S 0 0 4.146930 -2.394231 3.897114 -2.250000
+ S 16777215 0 3.897114 -2.250000 -3.897114 2.250000
+ S 0 0 -3.8971144 2.250000 -4.146930 2.394231
+#130/310
+ S 0 0 3.668175 -3.077964 3.447200 -2.892545
+ S 16777215 0 3.447200 -2.892545 -3.447200 2.892545
+ S 0 0 -3.447200 2.892545 -3.668175 3.077964
+#140/320
+ S 0 0 3.077964 -3.668175 2.892545 -3.447200
+ S 16777215 0 2.892545 -3.447200 -2.892545 3.447200
+ S 0 0 -2.892545 3.447200 -3.077964 3.668175
+#150/330
+ S 0 0 2.394231 -4.146930 2.250000 -3.897114
+ S 16777215 0 2.250000 -3.897114 -2.250000 3.897114
+ S 0 0 -2.250000 3.897114 -2.394231 4.146930
+#160/340
+ S 0 0 1.637750 -4.499682 1.539090 -4.228617
+ S 16777215 0 1.539090 -4.228617 -1.539090 4.228617
+ S 0 0 -1.539090 4.228617 -1.637750 4.499682
+#170/350
+ S 0 0 0.831508 -4.715714 0.781417 -4.431635
+ S 16777215 0 0.781417 -4.431635 -0.781417 4.431635
+ S 0 0 -0.781417 4.431635 -0.831508 4.715714
+
+ A 0 0.000000 4.788462 0.000000 0.000000 0.000000 360.000000
+ A 0 0.000000 4.500000 0.000000 0.000000 0.000000 360.000000
+ A 0 0.000000 3.894231 0.000000 0.000000 0.000000 360.000000
+ G 0 0.000000 0.500000 0.000000 0.000000 0.000000 360.000000
+ A 0 0.020000 4.404808 0.000000 0.000000 0.000000 360.000000
+ A 0 0.020000 3.989423 0.000000 0.000000 0.000000 360.000000
+ END
+
+
+
+SUBCONTENTS Walthers Cornerstone N Structures - Dairy Facilities
+STRUCTURE N "Walthers Cornerstone Structures Sterling Consolidated Dairy Bottling Plant 933-3298"
+ D 0.000000 0.000000
+ F3 0 0.000000 4
+ 15.000000 2.625000 0
+ 15.000000 2.625000 0
+ 15.000000 2.625000 0
+ 15.000000 2.625000 0
+ F3 12632256 0.000000 4
+ 15.000000 2.640625 0
+ 16.359375 2.640625 0
+ 16.359375 0.125000 0
+ 15.000000 0.125000 0
+ F3 0 0.000000 4
+ 12.500000 2.750000 0
+ 12.500000 2.750000 0
+ 12.500000 2.750000 0
+ 12.500000 2.750000 0
+ F3 12632256 0.000000 4
+ 0.000000 0.000000 0
+ 2.500000 0.000000 0
+ 2.500000 5.750000 0
+ 0.000000 5.750000 0
+ F3 32768 0.000000 4
+ 0.000000 5.750000 0
+ 0.500000 5.750000 0
+ 0.500000 0.031250 0
+ 0.000000 0.031250 0
+ F3 8388608 0.000000 4
+ 0.500000 0.000000 0
+ 0.625000 0.000000 0
+ 0.625000 5.750000 0
+ 0.500000 5.750000 0
+ F3 8388608 0.000000 4
+ 0.562500 5.750000 0
+ 2.468750 5.750000 0
+ 2.468750 5.625000 0
+ 0.562500 5.625000 0
+ F3 0 0.000000 4
+ 12.437500 5.750000 0
+ 12.437500 5.750000 0
+ 12.437500 5.750000 0
+ 12.437500 5.750000 0
+ F3 8388608 0.000000 4
+ 2.500000 5.750000 0
+ 2.375000 5.750000 0
+ 2.375000 2.750000 0
+ 2.500000 2.750000 0
+ F3 8388608 0.000000 4
+ 12.500000 2.750000 0
+ 2.375000 2.750000 0
+ 2.375000 2.625000 0
+ 12.500000 2.625000 0
+ F3 8388608 0.000000 4
+ 12.500000 5.750000 0
+ 14.984375 5.750000 0
+ 14.984375 5.625000 0
+ 12.500000 5.625000 0
+ F3 8388608 0.000000 4
+ 16.500000 0.000000 0
+ 4.000000 0.000000 0
+ 4.000000 0.125000 0
+ 16.500000 0.125000 0
+ F3 8388608 0.000000 4
+ 3.984375 0.000000 0
+ 0.609375 0.000000 0
+ 0.609375 0.125000 0
+ 3.984375 0.125000 0
+ F3 0 0.000000 4
+ 15.000000 5.765625 0
+ 15.000000 5.765625 0
+ 15.000000 5.765625 0
+ 15.000000 5.765625 0
+ F3 8388608 0.000000 4
+ 15.000000 5.750000 0
+ 14.875000 5.750000 0
+ 14.875000 2.765625 0
+ 15.000000 2.765625 0
+ F3 8388608 0.000000 4
+ 16.500000 2.765625 0
+ 14.875000 2.765625 0
+ 14.875000 2.625000 0
+ 16.500000 2.625000 0
+ F3 8388608 0.000000 4
+ 16.500000 2.765625 0
+ 16.375000 2.765625 0
+ 16.375000 0.140625 0
+ 16.500000 0.140625 0
+ F3 8388608 0.000000 4
+ 12.500000 5.750000 0
+ 12.625000 5.750000 0
+ 12.625000 0.140625 0
+ 12.500000 0.140625 0
+ F3 11316396 0.000000 4
+ 12.625000 5.625000 0
+ 14.843750 5.625000 0
+ 14.843750 0.156250 0
+ 12.625000 0.156250 0
+ G3 8421504 0.000000 0.718920 13.765625 4.546875 0
+ G3 15790320 0.000000 0.594572 13.781250 4.546875 0
+ L3 0 0.000000 13.750000 5.125000 0 13.750000 3.937500 0
+ L3 0 0.000000 13.171875 4.531250 0 14.375000 4.531250 0
+ L3 0 0.000000 13.359375 4.125000 0 14.187500 4.968750 0
+ L3 0 0.000000 13.328125 4.937500 0 14.171875 4.109375 0
+ F3 8388608 0.000000 4
+ 13.000000 3.281250 0
+ 13.250000 3.281250 0
+ 13.250000 3.531250 0
+ 13.000000 3.531250 0
+ F3 0 0.000000 4
+ 13.046875 3.484375 0
+ 13.218750 3.484375 0
+ 13.218750 3.312500 0
+ 13.046875 3.312500 0
+ L3 0 0.000000 13.750000 5.625000 0 13.750000 5.265625 0
+ L3 0 0.000000 13.750000 3.812500 0 13.750000 0.125000 0
+ F3 8388608 0.000000 4
+ 14.875000 2.625000 0
+ 15.000000 2.625000 0
+ 15.000000 0.125000 0
+ 14.875000 0.125000 0
+ L3 0 0.000000 12.625000 0.375000 0 14.875000 0.375000 0
+ L3 0 0.000000 12.609375 0.625000 0 14.875000 0.625000 0
+ L3 0 0.000000 12.625000 0.875000 0 14.859375 0.875000 0
+ L3 0 0.000000 12.625000 1.125000 0 14.875000 1.125000 0
+ L3 0 0.000000 12.625000 1.375000 0 14.875000 1.375000 0
+ L3 0 0.000000 12.625000 1.625000 0 12.625000 1.625000 0
+ L3 0 0.000000 12.625000 1.625000 0 14.875000 1.625000 0
+ F3 12632256 0.000000 4
+ 2.484375 2.625000 0
+ 12.500000 2.625000 0
+ 12.500000 0.125000 0
+ 2.484375 0.125000 0
+ L3 0 0.000000 9.500000 5.656250 0 9.500000 5.656250 0
+ F3 4210752 0.000000 4
+ 11.750000 1.875000 0
+ 11.312500 1.875000 0
+ 11.312500 0.906250 0
+ 11.750000 0.906250 0
+ F3 4210752 0.000000 4
+ 4.531250 1.875000 0
+ 6.062500 1.875000 0
+ 6.062500 1.031250 0
+ 4.531250 1.031250 0
+ G3 4210752 0.000000 0.159344 11.968750 2.250000 0
+ G3 4210752 0.000000 0.251946 3.250000 1.281250 0
+ F3 4210752 0.000000 4
+ 7.750000 2.250000 0
+ 8.250000 2.250000 0
+ 8.250000 1.812500 0
+ 7.750000 1.812500 0
+ F3 4210752 0.000000 4
+ 7.750000 0.750000 0
+ 8.250000 0.750000 0
+ 8.250000 0.343750 0
+ 7.750000 0.343750 0
+ F3 4210752 0.000000 4
+ 1.187500 1.375000 0
+ 1.562500 1.375000 0
+ 1.562500 1.000000 0
+ 1.187500 1.000000 0
+ F3 4473924 0.000000 4
+ 1.125000 4.750000 0
+ 1.812500 4.750000 0
+ 1.812500 4.156250 0
+ 1.125000 4.156250 0
+ L3 0 0.000000 17.937500 7.000000 0 17.937500 7.000000 0
+ L3 0 0.000000 12.609375 1.875000 0 14.859375 1.875000 0
+ L3 0 0.000000 12.609375 2.156250 0 14.843750 2.156250 0
+ L3 0 0.000000 12.609375 2.406250 0 14.859375 2.406250 0
+ L3 0 0.000000 12.593750 2.640625 0 14.843750 2.640625 0
+ L3 0 0.000000 12.593750 2.875000 0 14.843750 2.875000 0
+ L3 0 0.000000 12.609375 3.125000 0 14.859375 3.125000 0
+ L3 0 0.000000 12.593750 3.375000 0 12.984375 3.375000 0
+ L3 0 0.000000 13.250000 3.375000 0 14.859375 3.375000 0
+ L3 0 0.000000 12.593750 3.625000 0 14.859375 3.625000 0
+ L3 0 0.000000 12.593750 3.875000 0 13.531250 3.875000 0
+ L3 0 0.000000 13.984375 3.875000 0 14.859375 3.875000 0
+ L3 0 0.000000 12.609375 4.125000 0 13.171875 4.125000 0
+ L3 0 0.000000 14.328125 4.125000 0 14.875000 4.125000 0
+ L3 0 0.000000 12.593750 4.375000 0 13.062500 4.375000 0
+ L3 0 0.000000 14.453125 4.375000 0 14.843750 4.375000 0
+ L3 0 0.000000 12.593750 4.609375 0 12.593750 4.625000 0
+ L3 0 0.000000 12.609375 4.625000 0 13.031250 4.625000 0
+ L3 0 0.000000 14.468750 4.625000 0 14.843750 4.625000 0
+ L3 0 0.000000 12.593750 4.875000 0 13.125000 4.875000 0
+ L3 0 0.000000 14.390625 4.875000 0 14.859375 4.875000 0
+ L3 0 0.000000 12.593750 5.125000 0 13.328125 5.125000 0
+ L3 0 0.000000 14.171875 5.125000 0 14.828125 5.125000 0
+ L3 0 0.000000 12.593750 5.375000 0 14.843750 5.375000 0
+ END
+STRUCTURE N "Walthers Cornerstone Structures Sterling Consolidated Dairy Power House 933-3298"
+ L3 0 0.000000 0.000000 0.000000 0 2.625000 0.000000 0
+ L3 0 0.000000 2.625000 0.000000 0 2.625000 2.625000 0
+ L3 8388608 0.000000 2.625000 2.625000 0 0.000000 2.625000 0
+ L3 8388608 0.000000 0.000000 2.625000 0 0.000000 0.000000 0
+ F3 8388608 0.000000 4
+ 0.000000 0.000000 0
+ 2.625000 0.000000 0
+ 2.625000 0.125000 0
+ 0.000000 0.125000 0
+ F3 8388608 0.000000 4
+ 0.000000 0.000000 0
+ 0.125000 0.000000 0
+ 0.125000 2.625000 0
+ 0.000000 2.625000 0
+ F3 8388608 0.000000 4
+ 0.000000 2.625000 0
+ 2.625000 2.625000 0
+ 2.625000 2.500000 0
+ 0.000000 2.500000 0
+ F3 8388608 0.000000 4
+ 2.625000 2.625000 0
+ 2.500000 2.625000 0
+ 2.500000 0.000000 0
+ 2.625000 0.000000 0
+ F3 12632256 0.000000 4
+ 0.125000 2.500000 0
+ 2.500000 2.500000 0
+ 2.500000 0.125000 0
+ 0.125000 0.125000 0
+ L3 0 0.000000 1.265625 2.500000 0 1.265625 2.500000 0
+ L3 0 0.000000 1.250000 2.500000 0 1.250000 0.125000 0
+ L3 0 0.000000 0.109375 2.250000 0 2.500000 2.250000 0
+ L3 0 0.000000 0.109375 2.000000 0 2.500000 2.000000 0
+ L3 0 0.000000 0.109375 1.750000 0 2.500000 1.750000 0
+ L3 0 0.000000 0.125000 1.500000 0 2.500000 1.500000 0
+ L3 0 0.000000 0.125000 1.250000 0 2.500000 1.250000 0
+ L3 0 0.000000 0.125000 1.000000 0 2.500000 1.000000 0
+ L3 0 0.000000 0.125000 0.750000 0 2.500000 0.750000 0
+ L3 0 0.000000 0.125000 0.500000 0 2.500000 0.484375 0
+ L3 0 0.000000 0.125000 0.250000 0 2.500000 0.250000 0
+ F3 0 0.000000 4
+ 0.812500 1.437500 0
+ 1.015625 1.437500 0
+ 1.015625 1.296875 0
+ 0.812500 1.296875 0
+ F3 0 0.000000 4
+ 1.500000 1.421875 0
+ 1.718750 1.421875 0
+ 1.718750 1.281250 0
+ 1.500000 1.281250 0
+ END
+STRUCTURE N "Walthers Cornerstone Structures Sterling Consolidated Dairy Smoke Stack 933-3298"
+ G3 8388608 0.000000 0.375325 0.375325 0.375325 0
+ G3 0 0.000000 0.281250 0.375325 0.375325 0
+ END
+STRUCTURE N "Walthers Cornerstone Structures Sterling Consolidated Dairy Office/Freight House 933-3298"
+ F3 8388608 0.000000 4
+ 0.093750 0.125000 0
+ 8.500000 0.125000 0
+ 8.500000 0.000000 0
+ 0.093750 0.000000 0
+ F3 8388608 0.000000 4
+ 0.000000 0.000000 0
+ 0.109375 0.000000 0
+ 0.109375 3.750000 0
+ 0.000000 3.750000 0
+ F3 8388608 0.000000 4
+ 8.500000 0.000000 0
+ 8.359375 0.000000 0
+ 8.359375 3.750000 0
+ 8.500000 3.750000 0
+ F3 8388608 0.000000 4
+ 0.000000 3.750000 0
+ 8.484375 3.750000 0
+ 8.484375 3.625000 0
+ 0.000000 3.625000 0
+ F3 12632256 0.000000 4
+ 0.109375 3.625000 0
+ 8.343750 3.625000 0
+ 8.343750 0.140625 0
+ 0.109375 0.140625 0
+ F3 8388608 0.000000 4
+ 2.500000 3.625000 0
+ 2.625000 3.625000 0
+ 2.625000 0.000000 0
+ 2.500000 0.000000 0
+ L3 0 0.000000 0.000000 1.875000 0 2.531250 1.875000 0
+ F3 7039851 0.000000 4
+ 0.687500 3.125000 0
+ 0.906250 3.125000 0
+ 0.906250 2.875000 0
+ 0.687500 2.875000 0
+ G3 7105644 0.000000 0.132583 0.625000 1.031250 0
+ L3 0 0.000000 0.250000 3.625000 0 0.250000 0.125000 0
+ L3 0 0.000000 0.500000 3.625000 0 0.484375 0.140625 0
+ L3 0 0.000000 0.750000 3.625000 0 0.750000 3.125000 0
+ L3 0 0.000000 0.750000 2.875000 0 0.750000 0.125000 0
+ L3 0 0.000000 1.000000 3.625000 0 1.000000 0.125000 0
+ L3 0 0.000000 1.250000 3.625000 0 1.250000 0.125000 0
+ L3 0 0.000000 1.500000 3.625000 0 1.500000 0.156250 0
+ L3 0 0.000000 1.750000 3.625000 0 1.750000 0.125000 0
+ L3 0 0.000000 2.000000 3.625000 0 2.000000 0.125000 0
+ L3 0 0.000000 2.250000 3.625000 0 2.250000 0.140625 0
+ F3 7368816 0.000000 4
+ 5.343750 2.125000 0
+ 5.718750 2.125000 0
+ 5.718750 1.750000 0
+ 5.343750 1.750000 0
+ G3 7631988 0.000000 0.172584 3.500000 3.000000 0
+ G3 7039851 0.000000 0.187500 3.500000 0.750000 0
+ G3 6776679 0.000000 0.188150 7.500000 0.750000 0
+ G3 0 0.000000 0.187500 7.500000 3.000000 0
+ END
+STRUCTURE N "Walthers Cornerstone Structures Sterling Consolidated Dairy Store 933-3298"
+ F3 16776960 0.000000 4
+ 0.000000 0.000000 0
+ 0.125000 0.000000 0
+ 0.125000 2.750000 0
+ 0.000000 2.750000 0
+ F3 16776960 0.000000 4
+ 0.000000 0.000000 0
+ 1.875000 0.000000 0
+ 1.875000 0.125000 0
+ 0.000000 0.125000 0
+ F3 16776960 0.000000 4
+ 0.000000 2.750000 0
+ 1.875000 2.750000 0
+ 1.875000 2.625000 0
+ 0.000000 2.625000 0
+ F3 16776960 0.000000 4
+ 1.875000 0.000000 0
+ 1.750000 0.000000 0
+ 1.750000 2.750000 0
+ 1.875000 2.750000 0
+ F3 15000804 0.000000 4
+ 0.125000 2.625000 0
+ 1.734375 2.625000 0
+ 1.734375 0.125000 0
+ 0.125000 0.125000 0
+ F3 0 0.000000 4
+ 0.250000 2.250000 0
+ 0.421875 2.250000 0
+ 0.421875 2.078125 0
+ 0.250000 2.078125 0
+ END
+
+
+
+SUBCONTENTS Walthers Cornerstone N Structures - Passenger Facilities
+STRUCTURE N "Walthers Santa Fe Depot circa 1908 933-3803"
+ F3 16379605 0.000000 4
+ 0.000000 3.875000 0
+ 6.750000 3.875000 0
+ 6.750000 0.000000 0
+ 0.000000 0.000000 0
+ L3 0 0.000000 0.000000 0.000000 0 6.750000 0.000000 0
+ L3 0 0.000000 6.750000 0.000000 0 6.750000 3.875000 0
+ L3 0 0.000000 6.750000 3.875000 0 0.000000 3.875000 0
+ L3 0 0.000000 0.375000 0.375000 0 6.375000 0.375000 0
+ L3 0 0.000000 6.375000 0.375000 0 6.375000 3.500000 0
+ L3 0 0.000000 6.375000 3.500000 0 0.375000 3.500000 0
+ L3 0 0.000000 0.375000 3.500000 0 0.375000 0.375000 0
+ L3 0 0.000000 0.359375 1.937500 0 6.359375 1.937500 0
+ L3 0 0.000000 6.359375 2.625000 0 6.234375 2.625000 0
+ L3 0 0.000000 6.234375 2.625000 0 6.234375 1.375000 0
+ L3 0 0.000000 6.234375 1.375000 0 6.359375 1.375000 0
+ L3 0 0.000000 6.359375 1.375000 0 6.359375 2.625000 0
+ L3 0 0.000000 0.500000 2.625000 0 0.500000 1.250000 0
+ L3 0 0.000000 0.500000 1.250000 0 0.375000 1.250000 0
+ L3 0 0.000000 0.375000 1.250000 0 0.375000 2.750000 0
+ L3 0 0.000000 0.375000 2.625000 0 0.484375 2.625000 0
+ L3 0 0.000000 2.125000 0.375000 0 4.125000 0.375000 0
+ L3 0 0.000000 4.125000 0.375000 0 4.125000 0.500000 0
+ L3 0 0.000000 4.125000 0.500000 0 2.125000 0.500000 0
+ L3 0 0.000000 2.125000 0.500000 0 2.125000 0.375000 0
+ L3 0 0.000000 2.125000 3.500000 0 4.125000 3.500000 0
+ L3 0 0.000000 4.125000 3.500000 0 4.125000 3.375000 0
+ L3 0 0.000000 4.125000 3.375000 0 2.125000 3.375000 0
+ L3 0 0.000000 2.125000 3.375000 0 2.125000 3.500000 0
+ L3 0 0.000000 5.500000 2.390625 0 5.781250 2.390625 0
+ L3 0 0.000000 5.781250 2.390625 0 5.781250 2.156250 0
+ L3 0 0.000000 5.781250 2.156250 0 5.500000 2.156250 0
+ L3 0 0.000000 5.500000 2.156250 0 5.500000 2.390625 0
+ L3 0 0.000000 0.921875 2.390625 0 1.203125 2.390625 0
+ L3 0 0.000000 1.203125 2.390625 0 1.203125 2.140625 0
+ L3 0 0.000000 1.203125 2.140625 0 0.921875 2.140625 0
+ L3 0 0.000000 0.921875 2.140625 0 0.921875 2.390625 0
+ L3 0 0.000000 0.015625 3.859375 0 0.015625 0.015625 0
+ END
+STRUCTURE N "Walther's Cornerstone Structures Butterfly-Style Station Platform Shelter 933-3258"
+ F3 12632256 0.000000 4
+ 0.000000 0.000000 0
+ 6.125000 0.000000 0
+ 6.125000 1.250000 0
+ 0.000000 1.250000 0
+ END
+STRUCTURE N "Walthers Union Station (Cornerstone Series) 3257"
+ F3 14211288 0.000000 4
+ 0.000000 6.000000 0
+ 16.000000 6.000000 0
+ 16.000000 0.000000 0
+ 0.000000 0.000000 0
+ L3 0 0.000000 0.000000 0.003094 0 16.000000 0.003094 0
+ L3 0 0.000000 16.000000 0.003094 0 16.000000 6.003094 0
+ L3 0 0.000000 16.000000 6.003094 0 0.000000 6.003094 0
+ L3 0 0.000000 0.000000 6.003094 0 0.000000 0.003094 0
+ L3 0 0.000000 0.000000 0.503094 0 4.500000 0.503094 0
+ L3 0 0.000000 4.500000 0.503094 0 4.500000 5.565594 0
+ L3 0 0.000000 4.500000 5.565594 0 0.000000 5.565594 0
+ L3 0 0.000000 0.000000 5.565594 0 0.000000 0.503094 0
+ L3 0 0.000000 16.000000 0.003094 0 11.437500 0.003094 0
+ L3 0 0.000000 16.000000 5.346844 0 16.000000 0.003094 0
+ L3 0 0.000000 16.000000 0.503094 0 11.500000 0.503094 0
+ L3 0 0.000000 11.500000 0.503094 0 11.500000 5.565594 0
+ L3 0 0.000000 11.500000 5.565594 0 16.000000 5.565594 0
+ L3 0 0.000000 16.000000 5.565594 0 16.000000 0.503094 0
+ L3 0 0.000000 4.468750 5.565594 0 4.468750 6.003094 0
+ L3 0 0.000000 11.500000 5.565594 0 11.500000 6.003094 0
+ L3 0 0.000000 11.500000 0.503094 0 11.500000 0.003094 0
+ L3 0 0.000000 4.500000 0.503094 0 4.500000 0.003094 0
+ A3 0 0.000000 0.159344 8.000000 0.159344 0 0.000000 360.000000
+ A3 0 0.000000 0.156250 10.500000 0.190594 0 0.000000 360.000000
+ A3 0 0.000000 0.156250 9.250000 0.159344 0 0.000000 360.000000
+ A3 0 0.000000 0.159344 5.500000 0.159344 0 0.000000 360.000000
+ A3 0 0.000000 0.159344 6.750000 0.159344 0 0.000000 360.000000
+ L3 0 0.000000 0.125000 5.378094 0 4.343750 5.378094 0
+ L3 0 0.000000 4.343750 5.378094 0 4.343750 0.659344 0
+ L3 0 0.000000 4.343750 0.659344 0 0.125000 0.659344 0
+ L3 0 0.000000 0.125000 0.659344 0 0.125000 5.378094 0
+ L3 0 0.000000 11.687500 5.378094 0 15.843750 5.378094 0
+ L3 0 0.000000 15.843750 5.378094 0 15.843750 0.690594 0
+ L3 0 0.000000 15.843750 0.690594 0 11.687500 0.690594 0
+ L3 0 0.000000 11.687500 0.690594 0 11.687500 5.378094 0
+ L3 0 0.000000 4.625000 5.815594 0 11.375000 5.815594 0
+ L3 0 0.000000 11.375000 5.815594 0 11.375000 0.503094 0
+ L3 0 0.000000 11.375000 0.503094 0 4.625000 0.503094 0
+ L3 0 0.000000 4.625000 0.503094 0 4.625000 5.815594 0
+ L3 0 0.000000 7.500000 0.503094 0 8.500000 0.503094 0
+ L3 0 0.000000 8.500000 0.503094 0 8.500000 0.690594 0
+ L3 0 0.000000 8.500000 0.690594 0 7.500000 0.690594 0
+ L3 0 0.000000 7.500000 0.690594 0 7.500000 0.503094 0
+ END
+
+
+
+SUBCONTENTS Walthers Cornerstone N Structures - Trackside Industries
+STRUCTURE N "Walther's Icing Platform 292-3061"
+ F3 13816530 0.000000 4
+ 0.000000 0.015625 0
+ 10.000000 0.015625 0
+ 10.000000 1.453125 0
+ 0.000000 1.453125 0
+ F3 8404992 0.000000 4
+ 0.000000 1.453125 0
+ 0.046875 1.453125 0
+ 0.046875 0.031250 0
+ 0.000000 0.031250 0
+ F3 8404992 0.000000 4
+ 0.000000 1.453125 0
+ 10.000000 1.453125 0
+ 10.000000 1.406250 0
+ 0.000000 1.406250 0
+ F3 8404992 0.000000 4
+ 0.000000 0.015625 0
+ 10.000000 0.015625 0
+ 10.000000 0.062500 0
+ 0.000000 0.062500 0
+ F3 8404992 0.000000 4
+ 10.000000 0.890625 0
+ 11.859375 0.890625 0
+ 11.859375 0.515625 0
+ 10.000000 0.515625 0
+ F3 8404992 0.000000 4
+ 10.796875 0.500000 0
+ 10.750000 0.500000 0
+ 10.750000 0.000000 0
+ 10.796875 0.000000 0
+ F3 8404992 0.000000 4
+ 10.796875 1.406250 0
+ 10.750000 1.406250 0
+ 10.750000 0.875000 0
+ 10.796875 0.875000 0
+ L3 0 0.000000 10.125000 0.906250 0 10.125000 0.500000 0
+ L3 12632256 0.000000 10.250000 0.906250 0 10.250000 0.515625 0
+ L3 0 0.000000 10.375000 0.890625 0 10.375000 0.515625 0
+ L3 0 0.000000 10.500000 0.906250 0 10.500000 0.531250 0
+ L3 0 0.000000 10.625000 0.906250 0 10.625000 0.531250 0
+ L3 0 0.000000 10.750000 0.890625 0 10.750000 0.531250 0
+ L3 0 0.000000 10.875000 0.890625 0 10.875000 0.515625 0
+ L3 0 0.000000 11.000000 0.890625 0 11.000000 0.500000 0
+ L3 0 0.000000 11.125000 0.906250 0 11.125000 0.531250 0
+ L3 0 0.000000 11.250000 0.906250 0 11.250000 0.500000 0
+ L3 0 0.000000 11.375000 0.906250 0 11.375000 0.531250 0
+ L3 0 0.000000 11.500000 0.890625 0 11.500000 0.515625 0
+ L3 0 0.000000 11.625000 0.890625 0 11.625000 0.531250 0
+ L3 0 0.000000 11.750000 0.906250 0 11.750000 0.515625 0
+ F3 13816530 0.000000 4
+ 9.984375 0.078125 0
+ 10.750000 0.078125 0
+ 10.750000 1.406250 0
+ 9.984375 1.406250 0
+ F3 8404992 0.000000 4
+ 9.968750 1.453125 0
+ 10.781250 1.453125 0
+ 10.781250 1.406250 0
+ 9.968750 1.406250 0
+ F3 8404992 0.000000 4
+ 10.000000 0.015625 0
+ 10.750000 0.015625 0
+ 10.750000 0.062500 0
+ 10.000000 0.062500 0
+ END
+STRUCTURE N "Walther's Icing Platform Add-On 292-3062"
+ F3 13816530 0.000000 4
+ 0.000000 0.015625 0
+ 10.000000 0.015625 0
+ 10.000000 1.453125 0
+ 0.000000 1.453125 0
+ F3 8404992 0.000000 4
+ 0.000000 1.453125 0
+ 0.046875 1.453125 0
+ 0.046875 0.031250 0
+ 0.000000 0.031250 0
+ F3 8404992 0.000000 4
+ 0.000000 1.453125 0
+ 10.000000 1.453125 0
+ 10.000000 1.406250 0
+ 0.000000 1.406250 0
+ F3 8404992 0.000000 4
+ 0.000000 0.015625 0
+ 10.000000 0.015625 0
+ 10.000000 0.062500 0
+ 0.000000 0.062500 0
+ F3 13684944 0.000000 4
+ 10.796875 0.500000 0
+ 10.750000 0.500000 0
+ 10.750000 0.000000 0
+ 10.796875 0.000000 0
+ F3 13684944 0.000000 4
+ 10.796875 1.406250 0
+ 10.750000 1.406250 0
+ 10.750000 0.875000 0
+ 10.796875 0.875000 0
+ F3 13816530 0.000000 4
+ 9.984375 0.078125 0
+ 10.750000 0.078125 0
+ 10.750000 1.406250 0
+ 9.984375 1.406250 0
+ F3 8404992 0.000000 4
+ 9.968750 1.453125 0
+ 10.781250 1.453125 0
+ 10.781250 1.406250 0
+ 9.968750 1.406250 0
+ F3 8404992 0.000000 4
+ 10.000000 0.015625 0
+ 10.750000 0.015625 0
+ 10.750000 0.062500 0
+ 10.000000 0.062500 0
+ F3 13816530 0.000000 4
+ 10.796875 0.890625 0
+ 10.750000 0.890625 0
+ 10.750000 0.500000 0
+ 10.796875 0.500000 0
+ END
+STRUCTURE N "Walther's Ice House 292-526"
+ F3 8421504 0.000000 4
+ 2.000000 0.984375 0
+ 7.000000 0.984375 0
+ 7.000000 3.984375 0
+ 2.000000 3.984375 0
+ F3 8421504 0.000000 4
+ 0.000000 2.984375 0
+ 2.000000 2.984375 0
+ 2.000000 1.984375 0
+ 0.000000 1.984375 0
+ L3 0 0.000000 0.000000 2.484375 0 7.015625 2.484375 0
+ L3 0 0.000000 2.000000 2.984375 0 2.000000 1.984375 0
+ F3 8421504 0.000000 4
+ 7.000000 3.734375 0
+ 9.000000 3.734375 0
+ 9.000000 1.234375 0
+ 7.000000 1.234375 0
+ L3 0 0.000000 7.000000 3.734375 0 7.000000 1.234375 0
+ L3 0 0.000000 7.000000 2.484375 0 9.000000 2.484375 0
+ F3 14737632 0.000000 4
+ 7.000000 1.234375 0
+ 9.000000 1.234375 0
+ 9.000000 0.984375 0
+ 7.000000 0.984375 0
+ F3 15132390 0.000000 4
+ 7.000000 3.734375 0
+ 9.000000 3.734375 0
+ 9.000000 3.984375 0
+ 7.000000 3.984375 0
+ F3 8421504 0.000000 4
+ 9.000000 3.734375 0
+ 10.000000 3.734375 0
+ 10.000000 1.250000 0
+ 9.000000 1.250000 0
+ L3 0 0.000000 9.000000 1.234375 0 9.000000 3.734375 0
+ F3 8421504 0.000000 4
+ 9.000000 0.484375 0
+ 8.250000 0.484375 0
+ 8.250000 1.234375 0
+ 9.000000 1.234375 0
+ L3 0 0.000000 8.250000 1.234375 0 9.000000 1.234375 0
+ F3 8421504 0.000000 4
+ 9.000000 1.250000 0
+ 10.000000 1.250000 0
+ 10.000000 0.000000 0
+ 9.000000 0.000000 0
+ L3 0 0.000000 9.000000 1.234375 0 10.000000 1.234375 0
+ L3 0 0.000000 9.000000 1.312500 0 9.000000 0.484375 0
+ G3 15790320 0.000000 0.281250 9.500000 0.859375 0
+ G3 0 0.000000 0.188150 9.500000 0.859375 0
+ END
+STRUCTURE N "Walther's Icing Platform 933-3245B"
+ F3 8421504 0.000000 4
+ 0.000000 0.000000 0
+ 9.250000 0.000000 0
+ 9.250000 0.875000 0
+ 0.000000 0.875000 0
+ L3 0 0.000000 0.000000 0.437500 0 9.250000 0.437500 0
+ F3 13882323 0.000000 4
+ 9.250000 0.562500 0
+ 9.875000 0.562500 0
+ 9.875000 0.312500 0
+ 9.250000 0.312500 0
+ L3 0 0.000000 9.375000 0.562500 0 9.375000 0.312500 0
+ L3 0 0.000000 9.500000 0.562500 0 9.500000 0.312500 0
+ L3 0 0.000000 9.625000 0.562500 0 9.625000 0.328125 0
+ L3 0 0.000000 9.750000 0.562500 0 9.750000 0.312500 0
+ END
+STRUCTURE N "Walther's Ice House 933-3245A"
+ F3 8421504 0.000000 4
+ 0.000000 0.000000 0
+ 6.500000 0.000000 0
+ 6.500000 2.875000 0
+ 0.000000 2.875000 0
+ L3 0 0.000000 0.000000 1.437500 0 6.500000 1.437500 0
+ L3 0 0.000000 1.500000 1.437500 0 1.500000 0.000000 0
+ L3 0 0.000000 5.000000 1.437500 0 5.000000 0.000000 0
+ L3 0 0.000000 1.250000 1.000000 0 1.250000 0.000000 0
+ L3 0 0.000000 1.750000 1.000000 0 1.750000 0.000000 0
+ L3 0 0.000000 4.750000 1.000000 0 4.750000 0.000000 0
+ L3 0 0.000000 5.250000 1.000000 0 5.250000 0.000000 0
+ L3 0 0.000000 1.500000 1.437500 0 1.250000 1.000000 0
+ L3 0 0.000000 1.500000 1.437500 0 1.750000 1.000000 0
+ L3 0 0.000000 5.000000 1.437500 0 4.750000 1.000000 0
+ L3 0 0.000000 5.000000 1.437500 0 5.250000 1.000000 0
+ L3 0 0.000000 0.500000 1.625000 0 0.843750 1.625000 0
+ L3 0 0.000000 0.843750 1.625000 0 0.843750 1.250000 0
+ L3 0 0.000000 0.843750 1.250000 0 0.500000 1.250000 0
+ L3 0 0.000000 0.500000 1.250000 0 0.500000 1.625000 0
+ L3 0 0.000000 3.062500 1.250000 0 3.437500 1.250000 0
+ L3 0 0.000000 3.437500 1.250000 0 3.437500 1.625000 0
+ L3 0 0.000000 3.437500 1.625000 0 3.062500 1.625000 0
+ L3 0 0.000000 3.062500 1.625000 0 3.062500 1.250000 0
+ L3 0 0.000000 6.000000 1.250000 0 5.625000 1.250000 0
+ L3 0 0.000000 5.625000 1.250000 0 5.625000 1.625000 0
+ L3 0 0.000000 5.625000 1.625000 0 6.000000 1.625000 0
+ L3 0 0.000000 6.000000 1.625000 0 6.000000 1.250000 0
+ END
+STRUCTURE N "Walthers Interstate Fuel - Loading Rack 933-32000a"
+ L 0 0 0.750000 0.000000 3.750000 0.000000
+ L 0 0 3.750000 0.000000 3.750000 3.125000
+ L 0 0 3.750000 3.125000 0.750000 3.125000
+ L 0 0 3.687500 0.062500 1.687500 0.062500
+ L 0 0 1.687500 0.062500 1.687500 0.812500
+ L 0 0 1.687500 0.812500 3.687500 0.812500
+ L 0 0 3.687500 0.812500 3.687500 0.062500
+ L 0 0 3.687500 3.062500 1.687500 3.062500
+ L 0 0 1.687500 3.062500 1.687500 2.312500
+ L 0 0 1.687500 2.312500 3.687500 2.312500
+ L 0 0 3.687500 2.312500 3.687500 3.062500
+ L 0 0 3.687500 1.187500 1.687500 1.187500
+ L 0 0 1.687500 1.187500 1.687500 1.937500
+ L 0 0 1.687500 1.937500 3.687500 1.937500
+ L 0 0 3.687500 1.937500 3.687500 1.187500
+ A 0 0 0.088388 3.000000 2.687500 0.000000 360.000000
+ A 0 0 0.088388 3.000000 1.562500 0.000000 360.000000
+ A 0 0 0.088388 3.000000 0.437500 0.000000 360.000000
+ L 0 0 0.750000 2.875000 0.000000 2.875000
+ L 0 0 0.000000 2.875000 0.000000 0.250000
+ L 0 0 0.000000 0.250000 0.750000 0.250000
+ L 0 0 1.500000 2.187500 0.437500 2.187500
+ L 0 0 0.437500 2.187500 0.437500 0.937500
+ L 0 0 0.437500 0.937500 1.500000 0.937500
+ L 0 0 1.500000 0.937500 1.500000 2.187500
+ L 0 0 0.750000 3.125000 0.750000 2.187500
+ L 0 0 0.750000 0.000000 0.750000 0.937500
+ END
+STRUCTURE N "Walthers Interstate Fuel - Office 933-3200b"
+ L 0 0 0.000000 3.000000 2.000000 3.000000
+ L 0 0 2.000000 3.000000 2.000000 0.500000
+ L 0 0 2.000000 0.500000 0.000000 0.500000
+ L 0 0 0.000000 0.500000 0.000000 3.000000
+ L 0 0 2.000000 2.250000 2.500000 2.250000
+ L 0 0 2.500000 2.250000 2.500000 0.000000
+ L 0 0 2.500000 0.000000 0.375000 0.000000
+ L 0 0 0.375000 0.000000 0.375000 0.500000
+ A 0 0 0.088388 1.000000 2.375000 0.000000 360.000000
+ A 0 0 0.088388 1.000000 1.125000 0.000000 360.000000
+ END
+STRUCTURE N "Walthers Interstate Fuel - Shed 933-3200c"
+ L 0 0 0.000000 0.000000 1.000000 0.000000
+ L 0 0 1.000000 0.000000 1.000000 0.625000
+ L 0 0 1.000000 0.625000 0.000000 0.625000
+ L 0 0 0.000000 0.625000 0.000000 0.000000
+ L 0 0 0.000000 0.312500 1.000000 0.312500
+ END
+STRUCTURE N "Walthers Interstate Fuel - Tanks 933-3200d"
+ L 0 0 1.000000 2.062500 1.000000 1.125000
+ L 0 0 0.062500 0.000000 0.937500 0.000000
+ L 0 0 0.000000 0.062500 0.062500 0.000000
+ L 0 0 1.000000 0.062500 0.937500 0.000000
+ L 0 0 1.000000 0.062500 1.000000 1.000000
+ L 0 0 0.000000 1.000000 0.000000 0.062500
+ L 0 0 0.000000 2.062500 0.000000 1.125000
+ L 0 0 0.000000 1.125000 0.062500 1.062500
+ L 0 0 0.062500 1.062500 0.000000 1.000000
+ L 0 0 1.000000 1.000000 0.937500 1.062500
+ L 0 0 0.937500 1.062500 1.000000 1.125000
+ L 0 0 0.062500 2.125000 0.937500 2.125000
+ L 0 0 0.937500 2.125000 1.000000 2.062500
+ L 0 0 0.062500 2.125000 0.000000 2.062500
+ A 0 0 0.455007 0.500000 0.500000 0.000000 360.000000
+ A 0 0 0.437500 0.500000 1.625000 0.000000 360.000000
+ END
+STRUCTURE N "Walthers Water St Freight Terminal 933-3201"
+ L 0 0 0.500000 0.000000 11.000000 0.000000
+ L 0 0 11.000000 0.000000 11.000000 0.500000
+ L 0 0 11.000000 0.500000 10.000000 0.500000
+ L 0 0 9.500000 0.000000 9.500000 3.500000
+ L 0 0 9.500000 3.500000 4.000000 3.500000
+ L 0 0 4.000000 3.500000 4.000000 0.000000
+ L 0 0 4.000000 1.750000 9.500000 1.750000
+ L 0 0 4.000000 3.250000 0.500000 3.250000
+ L 0 0 4.000000 0.500000 0.500000 0.500000
+ L 0 0 0.500000 2.125000 -0.062500 2.125000
+ L 0 0 0.000000 2.125000 0.000000 1.625000
+ L 0 0 0.000000 1.625000 0.500000 1.625000
+ L 0 0 0.500000 1.625000 0.500000 0.000000
+ L 0 0 0.500000 3.250000 0.500000 2.125000
+ L 0 0 9.500000 2.125000 10.000000 2.125000
+ L 0 0 10.000000 2.125000 10.000000 0.500000
+ END
+STRUCTURE N "Walthers Mi-Jack Crane (Intermodal) 3222"
+ F3 16776960 0.000000 4
+ 0.000000 0.000000 0
+ 4.000000 0.000000 0
+ 4.000000 0.250000 0
+ 0.000000 0.250000 0
+ F3 0 0.000000 4
+ 0.000000 3.000000 0
+ 0.000000 3.000000 0
+ 0.000000 3.000000 0
+ 0.000000 3.000000 0
+ F3 16776960 0.000000 4
+ 0.000000 3.000000 0
+ 4.000000 3.000000 0
+ 4.000000 3.250000 0
+ 0.000000 3.250000 0
+ F3 16776960 0.000000 4
+ 2.500000 3.000000 0
+ 2.750000 3.000000 0
+ 2.750000 0.281250 0
+ 2.500000 0.281250 0
+ L3 0 0.000000 0.250000 3.000000 0 0.375000 3.000000 0
+ L3 0 0.000000 0.375000 0.281250 0 0.250000 0.281250 0
+ L3 0 0.000000 0.000000 3.250000 0 4.000000 3.250000 0
+ L3 0 0.000000 4.000000 3.250000 0 4.000000 3.000000 0
+ L3 0 0.000000 4.000000 3.000000 0 0.000000 3.000000 0
+ L3 0 0.000000 0.000000 3.000000 0 0.000000 3.250000 0
+ L3 0 0.000000 0.000000 0.250000 0 3.968750 0.250000 0
+ L3 0 0.000000 3.968750 0.250000 0 3.968750 0.000000 0
+ L3 0 0.000000 3.968750 0.000000 0 0.000000 0.000000 0
+ L3 0 0.000000 0.000000 0.000000 0 0.000000 0.250000 0
+ L3 0 0.000000 2.500000 3.000000 0 2.750000 3.000000 0
+ L3 0 0.000000 2.750000 3.000000 0 2.750000 0.250000 0
+ L3 0 0.000000 2.750000 0.250000 0 2.500000 0.250000 0
+ L3 0 0.000000 2.500000 0.250000 0 2.500000 3.000000 0
+ Z 0 0.265623 3.000000 90.000000 0 18.000000 "xxxxxxxxxxxxxxxxxxxxxx"
+ L3 0 0.000000 0.406250 3.000000 0 0.406250 0.265625 0
+ L3 0 0.000000 0.250000 3.000000 0 0.250000 0.250000 0
+ END
+STRUCTURE N "Walthers Santa Fe Freight House circa 1908 933-3804"
+ F3 16379605 0.000000 4
+ 0.000000 3.750000 0
+ 6.750000 3.750000 0
+ 6.750000 0.000000 0
+ 0.000000 0.000000 0
+ L3 0 0.000000 0.000000 0.000000 0 6.750000 0.000000 0
+ L3 0 0.000000 6.750000 0.000000 0 6.750000 3.750000 0
+ L3 0 0.000000 6.750000 3.750000 0 0.000000 3.750000 0
+ L3 0 0.000000 0.000000 3.750000 0 0.000000 0.000000 0
+ L3 0 0.000000 0.375000 0.375000 0 6.375000 0.375000 0
+ L3 0 0.000000 6.375000 0.375000 0 6.375000 3.375000 0
+ L3 0 0.000000 6.375000 3.375000 0 0.375000 3.375000 0
+ L3 0 0.000000 0.375000 3.375000 0 0.375000 0.375000 0
+ L3 0 0.000000 0.375000 0.750000 0 0.500000 0.750000 0
+ L3 0 0.000000 0.484375 0.500000 0 0.625000 0.500000 0
+ L3 0 0.000000 0.609375 0.500000 0 0.609375 0.375000 0
+ L3 0 0.000000 0.625000 3.265625 0 0.484375 3.265625 0
+ L3 0 0.000000 0.484375 3.265625 0 0.484375 3.156250 0
+ L3 0 0.000000 0.484375 3.156250 0 0.390625 3.156250 0
+ L3 0 0.000000 6.000000 3.359375 0 6.000000 3.250000 0
+ L3 0 0.000000 6.000000 3.250000 0 6.250000 3.250000 0
+ L3 0 0.000000 6.375000 3.125000 0 6.250000 3.125000 0
+ L3 0 0.000000 6.250000 3.125000 0 6.250000 3.250000 0
+ L3 0 0.000000 6.000000 0.375000 0 6.000000 0.500000 0
+ L3 0 0.000000 6.000000 0.500000 0 6.250000 0.500000 0
+ L3 0 0.000000 6.250000 0.500000 0 6.250000 0.750000 0
+ L3 0 0.000000 6.375000 2.500000 0 6.234375 2.500000 0
+ L3 0 0.000000 6.234375 2.500000 0 6.234375 1.500000 0
+ L3 0 0.000000 6.234375 1.500000 0 6.375000 1.500000 0
+ L3 0 0.000000 6.375000 1.500000 0 6.375000 2.500000 0
+ L3 0 0.000000 2.250000 3.375000 0 4.250000 3.375000 0
+ L3 0 0.000000 4.250000 3.375000 0 4.250000 3.250000 0
+ L3 0 0.000000 4.250000 3.250000 0 2.250000 3.250000 0
+ L3 0 0.000000 2.250000 3.250000 0 2.250000 3.375000 0
+ L3 0 0.000000 2.250000 0.375000 0 4.250000 0.375000 0
+ L3 0 0.000000 4.250000 0.375000 0 4.250000 0.500000 0
+ L3 0 0.000000 4.250000 0.500000 0 2.250000 0.500000 0
+ L3 0 0.000000 2.250000 0.500000 0 2.250000 0.375000 0
+ END
+STRUCTURE N "Walthers Cornerstone Structures 2 Story factory/w Loading Addition 933-3297"
+ F3 8388608 0.000000 4
+ 0.000000 5.250000 0
+ 7.750000 5.250000 0
+ 7.750000 5.000000 0
+ 0.000000 5.000000 0
+ F3 8388608 0.000000 4
+ 7.750000 5.000000 0
+ 7.500000 5.000000 0
+ 7.500000 3.250000 0
+ 7.750000 3.250000 0
+ F3 8388608 0.000000 4
+ 0.000000 5.000000 0
+ 0.250000 5.000000 0
+ 0.250000 0.000000 0
+ 0.000000 0.000000 0
+ F3 8388608 0.000000 4
+ 0.234375 0.000000 0
+ 5.250000 0.000000 0
+ 5.250000 0.250000 0
+ 0.234375 0.250000 0
+ F3 0 0.000000 4
+ 5.000000 0.234375 0
+ 4.984375 0.234375 0
+ 4.984375 0.250000 0
+ 5.000000 0.250000 0
+ F3 8388608 0.000000 4
+ 5.000000 0.250000 0
+ 5.250000 0.250000 0
+ 5.250000 3.296875 0
+ 4.984375 3.296875 0
+ F3 8388608 0.000000 4
+ 7.484375 3.265625 0
+ 5.000000 3.265625 0
+ 5.000000 3.500000 0
+ 7.484375 3.500000 0
+ F3 12632256 0.000000 4
+ 0.250000 5.015625 0
+ 4.968750 5.015625 0
+ 4.968750 0.281250 0
+ 0.250000 0.281250 0
+ F3 12632256 0.000000 4
+ 4.968750 5.000000 0
+ 7.468750 5.000000 0
+ 7.468750 3.531250 0
+ 4.968750 3.531250 0
+ F3 0 0.000000 4
+ 4.984375 3.515625 0
+ 4.984375 3.515625 0
+ 4.984375 3.515625 0
+ 4.984375 3.515625 0
+ F3 8388608 0.000000 4
+ 5.000000 3.515625 0
+ 0.234375 3.515625 0
+ 0.234375 3.250000 0
+ 5.000000 3.250000 0
+ L3 0 0.000000 0.218750 1.750000 0 4.968750 1.750000 0
+ A3 0 0.000000 0.125000 2.500000 1.000000 0 0.000000 360.000000
+ A3 0 0.000000 0.109375 1.000000 2.500000 0 0.000000 360.000000
+ A3 0 0.000000 0.109375 4.000000 2.500000 0 0.000000 360.000000
+ A3 0 0.000000 0.125000 5.000000 4.000000 0 0.000000 360.000000
+ A3 0 0.000000 0.125000 7.000000 4.000000 0 0.000000 360.000000
+ F3 8388608 0.000000 4
+ 1.531250 2.937500 0
+ 1.718750 2.937500 0
+ 1.718750 2.750000 0
+ 1.531250 2.750000 0
+ L3 0 0.000000 0.500000 3.250000 0 0.500000 0.281250 0
+ L3 0 0.000000 0.750000 3.250000 0 0.750000 0.250000 0
+ L3 0 0.000000 1.000000 2.390625 0 1.000000 0.281250 0
+ L3 0 0.000000 1.000000 3.250000 0 1.000000 2.609375 0
+ L3 0 0.000000 1.250000 3.250000 0 1.250000 0.250000 0
+ L3 0 0.000000 1.500000 3.250000 0 1.500000 0.250000 0
+ L3 0 0.000000 2.000000 3.250000 0 2.000000 0.234375 0
+ L3 0 0.000000 2.250000 3.250000 0 2.250000 0.250000 0
+ L3 0 0.000000 2.500000 3.250000 0 2.500000 1.125000 0
+ L3 0 0.000000 2.500000 0.859375 0 2.500000 0.265625 0
+ L3 0 0.000000 1.750000 3.250000 0 1.750000 0.234375 0
+ F3 0 0.000000 4
+ 1.562500 2.906250 0
+ 1.687500 2.906250 0
+ 1.687500 2.796875 0
+ 1.562500 2.796875 0
+ L3 0 0.000000 2.750000 3.250000 0 2.750000 0.250000 0
+ L3 0 0.000000 3.000000 3.250000 0 3.000000 0.250000 0
+ L3 0 0.000000 3.250000 3.250000 0 3.250000 0.250000 0
+ L3 0 0.000000 4.750000 3.250000 0 4.750000 0.250000 0
+ L3 0 0.000000 4.500000 3.250000 0 4.500000 0.250000 0
+ L3 0 0.000000 4.250000 3.250000 0 4.250000 0.250000 0
+ L3 0 0.000000 3.500000 3.250000 0 3.500000 0.250000 0
+ L3 0 0.000000 3.750000 3.250000 0 3.750000 0.250000 0
+ L3 0 0.000000 4.000000 3.250000 0 4.000000 2.609375 0
+ L3 0 0.000000 4.000000 2.390625 0 4.000000 0.250000 0
+ END
+STRUCTURE N "Walthers Cornerstone Structures Van Dyke Farm Windmill 933-3801"
+ L3 0 0.000000 0.000000 1.250000 0 0.500000 0.750000 0
+ L3 0 0.000000 1.250000 1.250000 0 0.734375 0.750000 0
+ L3 0 0.000000 0.000000 0.000000 0 0.500000 0.500000 0
+ L3 0 0.000000 1.250000 0.000000 0 0.750000 0.500000 0
+ L3 0 0.000000 0.250000 1.000000 0 1.000000 1.000000 0
+ L3 0 0.000000 1.000000 1.000000 0 1.000000 0.250000 0
+ L3 0 0.000000 1.000000 0.250000 0 0.250000 0.250000 0
+ L3 0 0.000000 0.250000 0.250000 0 0.250000 1.000000 0
+ F3 12632256 0.000000 4
+ 0.500000 0.750000 0
+ 0.750000 0.750000 0
+ 0.750000 0.500000 0
+ 0.500000 0.500000 0
+ L3 0 0.000000 0.125000 1.125000 0 1.125000 1.125000 0
+ L3 0 0.000000 1.125000 1.125000 0 1.125000 0.125000 0
+ L3 0 0.000000 1.125000 0.125000 0 0.125000 0.125000 0
+ L3 0 0.000000 0.125000 0.125000 0 0.125000 1.125000 0
+ L3 0 0.000000 0.375000 0.875000 0 0.875000 0.875000 0
+ L3 0 0.000000 0.875000 0.875000 0 0.875000 0.375000 0
+ L3 0 0.000000 0.875000 0.375000 0 0.375000 0.375000 0
+ L3 0 0.000000 0.375000 0.375000 0 0.375000 0.875000 0
+ L3 0 0.000000 0.625000 0.812500 0 0.625000 0.312500 0
+ F3 12632256 0.000000 4
+ 0.593750 0.812500 0
+ 0.656250 0.812500 0
+ 0.656250 0.968750 0
+ 0.593750 0.968750 0
+ F3 12632256 0.000000 4
+ 0.812500 0.312500 0
+ 0.437500 0.312500 0
+ 0.437500 0.218750 0
+ 0.812500 0.218750 0
+ END
+STRUCTURE N "Walthers Cornerstone Structures Walking Beam/""Horse Head"" Oil Pump 933-3248"
+ L3 0 0.000000 0.000000 0.000000 0 2.750000 0.000000 0
+ L3 0 0.000000 2.750000 0.000000 0 2.750000 1.000000 0
+ L3 0 0.000000 2.750000 1.000000 0 0.000000 1.000000 0
+ L3 0 0.000000 0.000000 1.000000 0 0.000000 0.000000 0
+ F3 0 0.000000 4
+ 2.718750 0.750000 0
+ 2.718750 0.750000 0
+ 2.718750 0.750000 0
+ 2.718750 0.750000 0
+ F3 0 0.000000 4
+ 2.000000 0.750000 0
+ 2.500000 0.750000 0
+ 2.500000 0.250000 0
+ 2.000000 0.250000 0
+ F3 0 0.000000 4
+ 0.250000 0.562500 0
+ 1.734375 0.562500 0
+ 1.734375 0.437500 0
+ 0.250000 0.437500 0
+ F3 0 0.000000 4
+ 1.750000 0.750000 0
+ 1.875000 0.750000 0
+ 1.875000 0.250000 0
+ 1.750000 0.250000 0
+ F3 0 0.000000 4
+ 1.875000 0.671875 0
+ 1.984375 0.671875 0
+ 1.984375 0.640625 0
+ 1.875000 0.640625 0
+ F3 0 0.000000 4
+ 1.859375 0.312500 0
+ 1.984375 0.312500 0
+ 1.984375 0.343750 0
+ 1.859375 0.343750 0
+ END
+STRUCTURE N "Walther's Cornerstone Structure The Bralick Building 933-3255"
+ F3 12632256 0.000000 4
+ 0.000000 0.375000 0
+ 6.750000 0.375000 0
+ 6.750000 5.406250 0
+ 0.000000 5.406250 0
+ F3 12632256 0.000000 4
+ 2.625000 0.000000 0
+ 3.687500 0.000000 0
+ 3.687500 0.375000 0
+ 2.625000 0.375000 0
+ F3 12632256 0.000000 4
+ 7.125000 1.000000 0
+ 6.750000 1.000000 0
+ 6.750000 1.625000 0
+ 7.125000 1.625000 0
+ F3 8421504 0.000000 4
+ 0.125000 5.312500 0
+ 6.656250 5.312500 0
+ 6.656250 0.468750 0
+ 0.125000 0.468750 0
+ L3 0 0.000000 2.625000 0.375000 0 3.671875 0.375000 0
+ L3 0 0.000000 6.750000 1.625000 0 6.750000 1.000000 0
+ F3 12632256 0.000000 4
+ 2.375000 2.000000 0
+ 4.000000 2.000000 0
+ 4.000000 4.000000 0
+ 2.375000 4.000000 0
+ F3 12632256 0.000000 4
+ 5.156250 4.125000 0
+ 5.484375 4.125000 0
+ 5.484375 3.828125 0
+ 5.156250 3.828125 0
+ END
+STRUCTURE N "Walther's Cornerstone Structure Shed 933-3822"
+ F3 12632256 0.000000 4
+ 0.000000 0.000000 0
+ 4.125000 0.000000 0
+ 4.125000 2.625000 0
+ 0.000000 2.625000 0
+ L3 0 0.000000 0.000000 1.312500 0 4.093750 1.312500 0
+ F3 0 0.000000 4
+ 1.937500 1.375000 0
+ 2.062500 1.375000 0
+ 2.062500 1.250000 0
+ 1.937500 1.250000 0
+ L3 0 0.000000 0.125000 2.625000 0 0.125000 0.000000 0
+ L3 0 0.000000 0.250000 2.625000 0 0.234375 0.000000 0
+ L3 0 0.000000 0.375000 2.625000 0 0.375000 0.000000 0
+ L3 0 0.000000 0.500000 2.625000 0 0.500000 0.000000 0
+ L3 0 0.000000 0.625000 2.625000 0 0.609375 0.000000 0
+ L3 0 0.000000 0.750000 2.625000 0 0.734375 0.000000 0
+ L3 0 0.000000 0.875000 0.000000 0 0.875000 2.625000 0
+ L3 0 0.000000 1.000000 0.000000 0 1.000000 2.625000 0
+ L3 0 0.000000 1.125000 0.000000 0 1.125000 2.625000 0
+ L3 0 0.000000 1.250000 2.625000 0 1.250000 0.000000 0
+ L3 0 0.000000 1.375000 2.625000 0 1.375000 0.000000 0
+ L3 0 0.000000 1.500000 2.625000 0 1.484375 0.015625 0
+ L3 0 0.000000 1.625000 2.625000 0 1.625000 0.000000 0
+ L3 0 0.000000 1.750000 2.625000 0 1.750000 0.000000 0
+ L3 0 0.000000 1.875000 2.625000 0 1.875000 0.000000 0
+ L3 0 0.000000 2.000000 2.625000 0 2.000000 0.000000 0
+ L3 0 0.000000 2.125000 2.625000 0 2.109375 0.015625 0
+ L3 0 0.000000 2.250000 2.625000 0 2.234375 0.000000 0
+ L3 0 0.000000 2.375000 0.000000 0 2.359375 2.625000 0
+ L3 0 0.000000 2.500000 0.000000 0 2.500000 2.625000 0
+ L3 0 0.000000 3.000000 0.000000 0 3.000000 2.625000 0
+ L3 0 0.000000 2.750000 0.000000 0 2.750000 2.625000 0
+ L3 0 0.000000 2.625000 2.625000 0 2.625000 0.000000 0
+ L3 0 0.000000 2.875000 2.625000 0 2.875000 0.000000 0
+ L3 0 0.000000 3.125000 2.625000 0 3.125000 0.000000 0
+ L3 0 0.000000 3.250000 2.625000 0 3.250000 0.000000 0
+ L3 0 0.000000 3.375000 2.625000 0 3.359375 0.000000 0
+ L3 0 0.000000 3.500000 2.625000 0 3.500000 0.015625 0
+ L3 0 0.000000 3.625000 2.625000 0 3.625000 0.000000 0
+ L3 0 0.000000 3.750000 2.625000 0 3.734375 0.031250 0
+ L3 0 0.000000 3.875000 2.625000 0 3.875000 0.000000 0
+ L3 0 0.000000 4.000000 2.625000 0 4.000000 0.000000 0
+ END
+STRUCTURE N "Walthers Cornerstone Structures Parkview Terrace Backgroung Bldg. (Tuscan) 933-3263"
+ F3 12632256 0.000000 4
+ 0.000000 0.000000 0
+ 4.625000 0.000000 0
+ 4.625000 1.375000 0
+ 0.000000 1.375000 0
+ F3 8388608 0.000000 4
+ 0.000000 0.000000 0
+ 0.125000 0.000000 0
+ 0.125000 1.375000 0
+ 0.000000 1.375000 0
+ F3 8388608 0.000000 4
+ 4.609375 0.000000 0
+ 4.500000 0.000000 0
+ 4.500000 1.375000 0
+ 4.609375 1.375000 0
+ END
+STRUCTURE N "Walthers Cornerstone Structures Rolling Mill 933-3250"
+ F3 12632256 0.000000 4
+ 0.000000 0.000000 0
+ 11.375000 0.000000 0
+ 11.375000 7.000000 0
+ 0.000000 7.000000 0
+ L3 0 0.000000 0.000000 3.500000 0 11.375000 3.500000 0
+ L3 0 0.000000 0.500000 4.000000 0 10.500000 4.000000 0
+ L3 0 0.000000 10.500000 4.000000 0 10.500000 3.000000 0
+ L3 0 0.000000 10.500000 3.000000 0 0.500000 3.000000 0
+ L3 0 0.000000 0.500000 3.000000 0 0.500000 4.000000 0
+ END
+STRUCTURE N "Walthers Cornerstone Co-Op Storage Shed 933-3230"
+ L3 0 0.062500 0.031250 0.031250 0 4.281250 0.031250 0
+ L3 0 0.062500 4.281250 0.031250 0 4.281250 2.781250 0
+ L3 0 0.062500 4.281250 2.781250 0 0.031250 2.781250 0
+ L3 0 0.062500 0.031250 2.781250 0 0.031250 0.031250 0
+ L3 0 0.062500 0.031250 1.406250 0 4.281250 1.406250 0
+ F3 0 0.000000 4
+ 2.031250 1.531250 0
+ 2.281250 1.531250 0
+ 2.281250 1.281250 0
+ 2.031250 1.281250 0
+ L3 12632256 0.000000 0.281250 2.781250 0 0.281250 1.531250 0
+ L3 12632256 0.000000 0.531250 2.531250 0 0.531250 1.531250 0
+ L3 12632256 0.000000 0.781250 2.781250 0 0.781250 1.531250 0
+ L3 12632256 0.000000 1.031250 2.531250 0 1.031250 1.531250 0
+ L3 12632256 0.000000 1.281250 2.781250 0 1.281250 1.531250 0
+ L3 12632256 0.000000 1.531250 2.531250 0 1.531250 1.531250 0
+ L3 12632256 0.000000 1.781250 2.781250 0 1.781250 1.531250 0
+ L3 12632256 0.000000 2.031250 2.531250 0 2.031250 1.531250 0
+ L3 12632256 0.000000 2.281250 2.781250 0 2.281250 1.531250 0
+ L3 12632256 0.000000 2.531250 2.531250 0 2.531250 1.531250 0
+ L3 12632256 0.000000 2.781250 2.781250 0 2.781250 1.531250 0
+ L3 12632256 0.000000 3.031250 2.531250 0 3.031250 1.531250 0
+ L3 12632256 0.000000 3.281250 1.531250 0 3.281250 2.781250 0
+ L3 12632256 0.000000 3.531250 2.531250 0 3.531250 1.531250 0
+ L3 12632256 0.000000 3.781250 1.531250 0 3.781250 2.781250 0
+ L3 12632256 0.000000 4.031250 2.531250 0 4.031250 1.531250 0
+ L3 12632256 0.000000 4.031250 1.281250 0 4.031250 0.281250 0
+ L3 12632256 0.000000 3.781250 0.031250 0 3.781250 1.281250 0
+ L3 12632256 0.000000 3.281250 1.281250 0 3.281250 0.031250 0
+ L3 12632256 0.000000 3.531250 0.281250 0 3.531250 1.281250 0
+ L3 12632256 0.000000 3.031250 1.281250 0 3.031250 0.281250 0
+ L3 12632256 0.000000 2.781250 0.031250 0 2.781250 1.281250 0
+ L3 12632256 0.000000 2.531250 1.281250 0 2.531250 0.281250 0
+ L3 12632256 0.000000 2.281250 0.031250 0 2.281250 1.281250 0
+ L3 12632256 0.000000 2.031250 1.281250 0 2.031250 0.281250 0
+ L3 12632256 0.000000 1.781250 0.031250 0 1.781250 1.281250 0
+ L3 12632256 0.000000 1.531250 1.281250 0 1.531250 0.281250 0
+ L3 12632256 0.000000 1.281250 0.031250 0 1.281250 1.281250 0
+ L3 12632256 0.000000 1.031250 1.281250 0 1.031250 0.281250 0
+ L3 12632256 0.000000 0.781250 0.031250 0 0.781250 1.281250 0
+ L3 12632256 0.000000 0.531250 1.281250 0 0.531250 0.281250 0
+ L3 12632256 0.000000 0.281250 0.031250 0 0.281250 1.281250 0
+ END
+STRUCTURE N "Walthers Cornerstone Co-op Rural Grain Elevator 933-3238"
+ L3 0 0.041667 0.020833 1.020833 0 4.395833 1.020833 0
+ L3 0 0.041667 4.395833 1.020833 0 4.395833 5.395833 0
+ L3 0 0.041667 4.395833 5.395833 0 0.020833 5.395833 0
+ L3 0 0.041667 0.020833 5.395833 0 0.020833 1.020833 0
+ L3 0 0.041667 0.020833 1.020833 0 0.020833 0.020833 0
+ L3 0 0.041667 0.020833 0.020833 0 4.395833 0.020833 0
+ L3 0 0.041667 4.395833 0.020833 0 4.395833 1.020833 0
+ L3 0 0.041667 2.208333 5.395833 0 2.208333 1.020833 0
+ L3 0 0.041667 1.145833 5.395833 0 1.145833 1.020833 0
+ L3 0 0.041667 3.270833 5.395833 0 3.270833 1.020833 0
+ L3 12632256 0.000000 1.020833 5.145833 0 0.020833 5.145833 0
+ L3 12632256 0.000000 1.020833 4.895833 0 0.020833 4.895833 0
+ L3 12632256 0.000000 1.020833 4.645833 0 0.020833 4.645833 0
+ L3 12632256 0.000000 1.020833 4.395833 0 0.020833 4.395833 0
+ L3 12632256 0.000000 1.020833 4.145833 0 0.020833 4.145833 0
+ L3 12632256 0.000000 0.020833 3.895833 0 1.145833 3.895833 0
+ L3 12632256 0.000000 1.020833 3.645833 0 0.020833 3.645833 0
+ L3 12632256 0.000000 0.020833 3.395833 0 1.020833 3.395833 0
+ L3 12632256 0.000000 1.020833 3.145833 0 0.020833 3.145833 0
+ L3 12632256 0.000000 0.020833 2.895833 0 1.020833 2.895833 0
+ L3 12632256 0.000000 1.020833 2.645833 0 0.020833 2.645833 0
+ L3 12632256 0.000000 0.020833 2.395833 0 1.020833 2.395833 0
+ L3 12632256 0.000000 1.020833 2.145833 0 0.020833 2.145833 0
+ L3 12632256 0.000000 0.145833 1.895833 0 1.020833 1.895833 0
+ L3 12632256 0.000000 0.270833 1.895833 0 0.020833 1.895833 0
+ L3 12632256 0.000000 0.020833 1.645833 0 1.020833 1.645833 0
+ L3 12632256 0.000000 1.020833 1.395833 0 0.020833 1.395833 0
+ L3 12632256 0.000000 1.020833 1.145833 0 0.020833 1.145833 0
+ L3 12632256 0.000000 1.270833 5.270833 0 2.145833 5.270833 0
+ L3 12632256 0.000000 2.145833 5.020833 0 1.270833 5.020833 0
+ L3 12632256 0.000000 1.270833 4.770833 0 2.145833 4.770833 0
+ L3 12632256 0.000000 2.145833 4.520833 0 1.270833 4.520833 0
+ L3 12632256 0.000000 1.270833 4.270833 0 2.145833 4.270833 0
+ L3 12632256 0.000000 2.020833 4.020833 0 1.270833 4.020833 0
+ L3 12632256 0.000000 2.145833 4.020833 0 1.270833 4.020833 0
+ L3 12632256 0.000000 2.145833 3.770833 0 1.270833 3.770833 0
+ L3 12632256 0.000000 2.145833 3.520833 0 1.270833 3.520833 0
+ L3 12632256 0.000000 2.145833 3.270833 0 1.270833 3.270833 0
+ L3 12632256 0.000000 2.020833 3.020833 0 1.270833 3.020833 0
+ L3 12632256 0.000000 2.145833 2.770833 0 1.270833 2.770833 0
+ L3 12632256 0.000000 2.145833 2.520833 0 1.270833 2.520833 0
+ L3 12632256 0.000000 1.270833 2.270833 0 2.020833 2.270833 0
+ L3 12632256 0.000000 2.020833 2.020833 0 1.270833 2.020833 0
+ L3 12632256 0.000000 1.270833 1.770833 0 2.145833 1.770833 0
+ L3 12632256 0.000000 2.145833 1.520833 0 1.395833 1.520833 0
+ L3 12632256 0.000000 2.145833 1.270833 0 1.270833 1.270833 0
+ L3 12632256 0.000000 0.145833 0.895833 0 0.145833 0.145833 0
+ L3 12632256 0.000000 0.395833 1.020833 0 0.395833 0.145833 0
+ L3 12632256 0.000000 0.645833 0.895833 0 0.645833 0.145833 0
+ L3 12632256 0.000000 0.895833 1.020833 0 0.895833 0.145833 0
+ L3 12632256 0.000000 1.145833 0.895833 0 1.145833 0.145833 0
+ L3 12632256 0.000000 1.395833 1.020833 0 1.395833 0.145833 0
+ L3 12632256 0.000000 1.645833 0.895833 0 1.645833 0.145833 0
+ L3 12632256 0.000000 1.895833 1.020833 0 1.895833 0.145833 0
+ L3 12632256 0.000000 2.145833 1.020833 0 2.145833 0.145833 0
+ L3 12632256 0.000000 2.395833 1.020833 0 2.395833 0.145833 0
+ L3 12632256 0.000000 2.645833 0.895833 0 2.645833 0.145833 0
+ L3 12632256 0.000000 2.895833 1.020833 0 2.895833 0.145833 0
+ L3 12632256 0.000000 3.145833 0.895833 0 3.145833 0.145833 0
+ L3 12632256 0.000000 3.395833 1.020833 0 3.395833 0.145833 0
+ L3 12632256 0.000000 3.645833 0.895833 0 3.645833 0.145833 0
+ L3 12632256 0.000000 3.895833 1.020833 0 3.895833 0.145833 0
+ L3 12632256 0.000000 4.145833 0.895833 0 4.145833 0.145833 0
+ L3 12632256 0.000000 2.270833 5.145833 0 3.145833 5.145833 0
+ L3 12632256 0.000000 3.145833 4.895833 0 2.270833 4.895833 0
+ L3 12632256 0.000000 2.270833 4.645833 0 3.145833 4.645833 0
+ L3 12632256 0.000000 3.145833 4.395833 0 2.270833 4.395833 0
+ L3 12632256 0.000000 2.270833 4.145833 0 3.145833 4.145833 0
+ L3 12632256 0.000000 3.145833 3.895833 0 2.270833 3.895833 0
+ L3 12632256 0.000000 2.270833 3.645833 0 3.145833 3.645833 0
+ L3 12632256 0.000000 2.270833 3.395833 0 3.145833 3.395833 0
+ L3 12632256 0.000000 3.145833 3.145833 0 2.270833 3.145833 0
+ L3 12632256 0.000000 2.270833 2.895833 0 3.145833 2.895833 0
+ L3 12632256 0.000000 3.145833 2.645833 0 2.270833 2.645833 0
+ L3 12632256 0.000000 2.270833 2.395833 0 3.145833 2.395833 0
+ L3 12632256 0.000000 3.145833 2.145833 0 2.270833 2.145833 0
+ L3 12632256 0.000000 2.270833 1.895833 0 3.145833 1.895833 0
+ L3 12632256 0.000000 3.145833 1.645833 0 2.270833 1.645833 0
+ L3 12632256 0.000000 2.270833 1.395833 0 3.145833 1.395833 0
+ L3 12632256 0.000000 3.145833 1.145833 0 2.270833 1.145833 0
+ L3 12632256 0.000000 3.395833 5.270833 0 4.270833 5.270833 0
+ L3 12632256 0.000000 4.270833 5.020833 0 3.395833 5.020833 0
+ L3 12632256 0.000000 3.395833 4.770833 0 4.395833 4.770833 0
+ L3 12632256 0.000000 4.270833 4.520833 0 3.395833 4.520833 0
+ L3 12632256 0.000000 3.395833 4.270833 0 4.270833 4.270833 0
+ L3 12632256 0.000000 4.270833 4.020833 0 3.395833 4.020833 0
+ L3 12632256 0.000000 3.395833 3.770833 0 4.270833 3.770833 0
+ L3 12632256 0.000000 4.270833 3.520833 0 3.395833 3.520833 0
+ L3 12632256 0.000000 3.395833 3.270833 0 4.395833 3.270833 0
+ L3 12632256 0.000000 4.270833 3.020833 0 3.395833 3.020833 0
+ L3 12632256 0.000000 4.270833 2.770833 0 3.395833 2.770833 0
+ L3 12632256 0.000000 3.395833 2.520833 0 4.270833 2.520833 0
+ L3 12632256 0.000000 4.270833 2.270833 0 3.395833 2.270833 0
+ L3 12632256 0.000000 3.395833 2.020833 0 4.270833 2.020833 0
+ L3 12632256 0.000000 4.270833 1.770833 0 3.395833 1.770833 0
+ L3 12632256 0.000000 3.395833 1.520833 0 4.270833 1.520833 0
+ L3 12632256 0.000000 3.395833 1.270833 0 4.270833 1.270833 0
+ END
+
+STRUCTURE N "Walthers Cornerstone GoldenFlame Fuel Co. - Office/ScaleHouse 933-3246A"
+ F3 16755285 0.000000 4
+ 0.031250 1.781250 0
+ 2.906250 1.781250 0
+ 2.906250 0.031250 0
+ 0.031250 0.031250 0
+ L3 0 0.062500 0.031250 0.031250 0 2.906250 0.031250 0
+ L3 0 0.062500 2.906250 0.031250 0 2.906250 1.781250 0
+ L3 0 0.062500 2.906250 1.781250 0 0.031250 1.781250 0
+ L3 0 0.062500 0.031250 1.781250 0 0.031250 0.031250 0
+ L3 0 0.062500 0.656250 0.906250 0 2.281250 0.906250 0
+ L3 0 0.062500 2.906250 1.781250 0 2.281250 0.906250 0
+ L3 0 0.062500 0.031250 1.781250 0 0.656250 0.906250 0
+ L3 0 0.062500 0.656250 0.906250 0 0.031250 0.031250 0
+ L3 0 0.062500 2.281250 0.906250 0 2.906250 0.031250 0
+ END
+STRUCTURE N "Walthers Cornerstone GoldenFlame Fuel Co. - Coal Bunker 933-3246B"
+ F3 12632256 0.000000 4
+ 0.031250 2.156250 0
+ 5.406250 2.156250 0
+ 5.406250 0.031250 0
+ 0.031250 0.031250 0
+ L3 0 0.062500 0.031250 0.031250 0 5.406250 0.031250 0
+ L3 0 0.062500 5.406250 0.031250 0 5.406250 2.156250 0
+ L3 0 0.062500 5.406250 2.156250 0 0.031250 2.156250 0
+ L3 0 0.062500 0.031250 2.156250 0 0.031250 0.031250 0
+ L3 0 0.062500 0.031250 1.093750 0 5.406250 1.093750 0
+ L3 0 0.062500 0.031250 1.906250 0 5.406250 1.906250 0
+ L3 0 0.062500 0.031250 0.281250 0 5.406250 0.281250 0
+ F3 12632256 0.000000 4
+ 4.281250 0.031250 0
+ 4.281250 0.031250 0
+ 4.281250 0.031250 0
+ 4.281250 0.031250 0
+ END
+STRUCTURE N "Walthers Cornerstone GoldenFlame Fuel Co. - Pump House 933-3246C"
+ F3 8421504 0.000000 4
+ 0.031250 0.781250 0
+ 1.031250 0.781250 0
+ 1.031250 0.031250 0
+ 0.031250 0.031250 0
+ L3 0 0.062500 0.031250 0.031250 0 1.031250 0.031250 0
+ L3 0 0.062500 1.031250 0.031250 0 1.031250 0.781250 0
+ L3 0 0.062500 1.031250 0.781250 0 0.031250 0.781250 0
+ L3 0 0.062500 0.031250 0.781250 0 0.031250 0.031250 0
+ F3 8421504 0.000000 4
+ 0.406250 0.281250 0
+ 0.406250 0.281250 0
+ 0.406250 0.281250 0
+ 0.406250 0.281250 0
+ END
+STRUCTURE N "Walthers Cornerstone GoldenFlame Fuel Co. - Oil Tanks 933-3246D"
+ G3 12632256 0.000000 0.375000 1.250000 0.375000 0
+ A3 0 0.062500 0.375000 1.250000 0.375000 0 0.000000 360.000000
+ G3 12632256 0.000000 0.375000 0.375000 0.375000 0
+ A3 0 0.062500 0.375000 0.375000 0.375000 0 0.000000 360.000000
+ END
+STRUCTURE N "Walther's Cornerstone Structures American Hardware Supply 933-3253"
+ F3 14474460 0.000000 4
+ 0.265625 5.765625 0
+ 1.015625 5.765625 0
+ 1.015625 5.015625 0
+ 0.265625 5.015625 0
+ F3 14474460 0.000000 4
+ 8.500000 5.750000 0
+ 7.750000 5.750000 0
+ 7.750000 5.000000 0
+ 8.500000 5.000000 0
+ F3 12632256 0.000000 4
+ 1.000000 0.000000 0
+ 7.500000 0.000000 0
+ 7.500000 0.500000 0
+ 1.000000 0.500000 0
+ F3 12632256 0.000000 4
+ 0.000000 1.500000 0
+ 0.500000 1.500000 0
+ 0.500000 2.500000 0
+ 0.000000 2.500000 0
+ F3 14474460 0.000000 4
+ 0.500000 0.500000 0
+ 8.250000 0.500000 0
+ 8.250000 5.500000 0
+ 0.500000 5.500000 0
+ F3 8421504 0.000000 4
+ 0.750000 0.750000 0
+ 8.000000 0.750000 0
+ 8.000000 5.250000 0
+ 0.750000 5.250000 0
+ F3 14474460 0.000000 4
+ 5.796875 5.078125 0
+ 7.781250 5.078125 0
+ 7.781250 3.109375 0
+ 5.796875 3.109375 0
+ G3 0 0.000000 0.843750 6.796875 4.109375 0
+ F3 0 0.000000 4
+ 1.500000 4.031250 0
+ 1.812500 4.031250 0
+ 1.812500 3.765625 0
+ 1.500000 3.765625 0
+ END
+
diff --git a/app/lib/params/O-ETS TramTrack.xtp b/app/lib/params/O-ETS TramTrack.xtp
index 565aae8..3c7be29 100644
--- a/app/lib/params/O-ETS TramTrack.xtp
+++ b/app/lib/params/O-ETS TramTrack.xtp
@@ -1,97 +1,97 @@
-CONTENTS Electric Train System O Scale TramTrack
-SUBCONTENTS Electric Train System O Scale TramTrack - Straight Track
-TURNOUT O "Electric Train System O Scale TramTrack 360mm (14.173"") Straight 15"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 14.173228 0.000000 90.000000
- S 0 0 0.000000 0.000000 14.173228 0.000000
- L 11579568 0.053333 0.000000 1.377953 14.173228 1.377953
- L 11579568 0.053333 0.000000 -1.377953 14.173228 -1.377953
- END
-TURNOUT O "Electric Train System O Scale TramTrack 120mm (4.724"") Straight 11"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.724409 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.724409 0.000000
- L 11579568 0.053333 0.000000 1.377953 4.724409 1.377953
- L 11579568 0.053333 0.000000 -1.377953 4.724409 -1.377953
- END
-TURNOUT O "Electric Train System O Scale TramTrack 70mm (2.755"") Straight 12"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.755906 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.755906 0.000000
- L 11579568 0.053333 0.000000 1.377953 2.755906 1.377953
- L 11579568 0.053333 0.000000 -1.377953 2.755906 -1.377953
- END
-TURNOUT O "Electric Train System O Scale TramTrack 50mm (1.968"") Straight 13"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.968504 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.968504 0.000000
- L 11579568 0.053333 0.000000 1.377953 1.968504 1.377953
- L 11579568 0.053333 0.000000 -1.377953 1.968504 -1.377953
- END
-
-SUBCONTENTS Electric Train System O Scale TramTrack - Misc Track
-TURNOUT O "Electric Train System O Scale TramTrack 120mm Connecting Track 14"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.724409 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.724409 0.000000
- L 11579568 0.053333 0.000000 1.377953 4.724409 1.377953
- L 11579568 0.053333 0.000000 -1.377953 4.724409 -1.377953
- END
-TURNOUT O "Electric Train System O Scale TramTrack 120mm 90 Crosss 27"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.724409 0.000000 90.000000
- E 2.362205 2.362205 0.000000
- E 2.362205 -2.362205 180.000000
- S 0 0 0.000000 0.000000 4.724409 0.000000
- S 0 0 2.362205 2.362205 2.362205 -2.362205
- L 11579568 0.053333 0.000000 1.377953 0.984252 1.377953
- L 11579568 0.053333 3.740157 1.377953 4.724409 1.377953
- L 11579568 0.053333 0.000000 -1.377953 0.984252 -1.377953
- L 11579568 0.053333 3.740157 -1.377953 4.724409 -1.377953
- L 11579568 0.053333 0.984252 1.377953 0.984252 2.362205
- L 11579568 0.053333 3.740157 1.377953 3.740157 2.362205
- L 11579568 0.053333 0.984252 -1.377953 0.984252 -2.362205
- L 11579568 0.053333 3.740157 -1.377953 3.740157 -2.362205
- END
-
-SUBCONTENTS Electric Train System O Scale TramTrack - Curve Track
-TURNOUT O "Electric Train System O Scale TramTrack R170mm 45 Curve 31"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.732601 1.960306 45.000000
- C 0 0.000000 6.692913 0.000000 6.692913 135.000000 45.000000
- A 11579568 0.053333 8.070866 0.000000 6.692913 135.000000 45.000000
- A 11579568 0.053333 5.314961 0.000000 6.692913 135.000000 45.000000
- END
-
-SUBCONTENTS Electric Train System O Scale TramTrack - Turnouts
-TURNOUT O "Electric Train System O Scale TramTrack 190mm/R170mm 45 Left Turnout 24"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 7.480315 0.000000 90.000000
- E 4.732601 1.960306 45.000000
- S 0 0 0.000000 0.000000 7.480315 0.000000
- C 0 0.000000 6.692913 0.000000 6.692913 135.000000 45.000000
- L 11579568 0.053333 6.102362 1.377953 7.480315 1.377953
- L 11579568 0.053333 0.000000 -1.377953 7.480315 -1.377953
- A 11579568 0.053333 5.314961 0.000000 6.692913 135.000000 45.000000
- END
-TURNOUT O "Electric Train System O Scale TramTrack 190mm/R170mm 45 Right Turnout 23"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 7.480315 0.000000 90.000000
- E 4.732601 -1.960306 135.000000
- S 0 0 0.000000 0.000000 7.480315 0.000000
- C 0 0.000000 6.692913 0.000000 -6.692913 0.000000 45.000000
- L 11579568 0.053333 6.102362 -1.377953 7.480315 -1.377953
- L 11579568 0.053333 0.000000 1.377953 7.480315 1.377953
- A 11579568 0.053333 5.314961 0.000000 -6.692913 0.000000 45.000000
- END
+CONTENTS Electric Train System O Scale TramTrack
+SUBCONTENTS Electric Train System O Scale TramTrack - Straight Track
+TURNOUT O "Electric Train System O Scale TramTrack 360mm (14.173"") Straight 15"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 14.173228 0.000000 90.000000
+ S 0 0 0.000000 0.000000 14.173228 0.000000
+ L 11579568 0.053333 0.000000 1.377953 14.173228 1.377953
+ L 11579568 0.053333 0.000000 -1.377953 14.173228 -1.377953
+ END
+TURNOUT O "Electric Train System O Scale TramTrack 120mm (4.724"") Straight 11"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.724409 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.724409 0.000000
+ L 11579568 0.053333 0.000000 1.377953 4.724409 1.377953
+ L 11579568 0.053333 0.000000 -1.377953 4.724409 -1.377953
+ END
+TURNOUT O "Electric Train System O Scale TramTrack 70mm (2.755"") Straight 12"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.755906 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.755906 0.000000
+ L 11579568 0.053333 0.000000 1.377953 2.755906 1.377953
+ L 11579568 0.053333 0.000000 -1.377953 2.755906 -1.377953
+ END
+TURNOUT O "Electric Train System O Scale TramTrack 50mm (1.968"") Straight 13"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.968504 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.968504 0.000000
+ L 11579568 0.053333 0.000000 1.377953 1.968504 1.377953
+ L 11579568 0.053333 0.000000 -1.377953 1.968504 -1.377953
+ END
+
+SUBCONTENTS Electric Train System O Scale TramTrack - Misc Track
+TURNOUT O "Electric Train System O Scale TramTrack 120mm Connecting Track 14"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.724409 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.724409 0.000000
+ L 11579568 0.053333 0.000000 1.377953 4.724409 1.377953
+ L 11579568 0.053333 0.000000 -1.377953 4.724409 -1.377953
+ END
+TURNOUT O "Electric Train System O Scale TramTrack 120mm 90° Crosss 27"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.724409 0.000000 90.000000
+ E 2.362205 2.362205 0.000000
+ E 2.362205 -2.362205 180.000000
+ S 0 0 0.000000 0.000000 4.724409 0.000000
+ S 0 0 2.362205 2.362205 2.362205 -2.362205
+ L 11579568 0.053333 0.000000 1.377953 0.984252 1.377953
+ L 11579568 0.053333 3.740157 1.377953 4.724409 1.377953
+ L 11579568 0.053333 0.000000 -1.377953 0.984252 -1.377953
+ L 11579568 0.053333 3.740157 -1.377953 4.724409 -1.377953
+ L 11579568 0.053333 0.984252 1.377953 0.984252 2.362205
+ L 11579568 0.053333 3.740157 1.377953 3.740157 2.362205
+ L 11579568 0.053333 0.984252 -1.377953 0.984252 -2.362205
+ L 11579568 0.053333 3.740157 -1.377953 3.740157 -2.362205
+ END
+
+SUBCONTENTS Electric Train System O Scale TramTrack - Curve Track
+TURNOUT O "Electric Train System O Scale TramTrack R170mm 45° Curve 31"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.732601 1.960306 45.000000
+ C 0 0.000000 6.692913 0.000000 6.692913 135.000000 45.000000
+ A 11579568 0.053333 8.070866 0.000000 6.692913 135.000000 45.000000
+ A 11579568 0.053333 5.314961 0.000000 6.692913 135.000000 45.000000
+ END
+
+SUBCONTENTS Electric Train System O Scale TramTrack - Turnouts
+TURNOUT O "Electric Train System O Scale TramTrack 190mm/R170mm 45° Left Turnout 24"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 7.480315 0.000000 90.000000
+ E 4.732601 1.960306 45.000000
+ S 0 0 0.000000 0.000000 7.480315 0.000000
+ C 0 0.000000 6.692913 0.000000 6.692913 135.000000 45.000000
+ L 11579568 0.053333 6.102362 1.377953 7.480315 1.377953
+ L 11579568 0.053333 0.000000 -1.377953 7.480315 -1.377953
+ A 11579568 0.053333 5.314961 0.000000 6.692913 135.000000 45.000000
+ END
+TURNOUT O "Electric Train System O Scale TramTrack 190mm/R170mm 45° Right Turnout 23"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 7.480315 0.000000 90.000000
+ E 4.732601 -1.960306 135.000000
+ S 0 0 0.000000 0.000000 7.480315 0.000000
+ C 0 0.000000 6.692913 0.000000 -6.692913 0.000000 45.000000
+ L 11579568 0.053333 6.102362 -1.377953 7.480315 -1.377953
+ L 11579568 0.053333 0.000000 1.377953 7.480315 1.377953
+ A 11579568 0.053333 5.314961 0.000000 -6.692913 0.000000 45.000000
+ END
diff --git a/app/lib/params/O-ETS.xtp b/app/lib/params/O-ETS.xtp
index 282a33e..95edbc5 100644
--- a/app/lib/params/O-ETS.xtp
+++ b/app/lib/params/O-ETS.xtp
@@ -1,233 +1,233 @@
-CONTENTS Electric Train System O Scale Track
-SUBCONTENTS Electric Train System O Scale - Straight Track
-TURNOUT O "Electric Train System O Scale 240mm (9.448"") Straight 611"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.448819 0.000000 90.000000
- S 0 0 0.000000 0.000000 9.448819 0.000000
- END
-TURNOUT O "Electric Train System O Scale 120mm (4.724"") Straight 612"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.724409 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.724409 0.000000
- END
-TURNOUT O "Electric Train System O Scale 60mm (2.362"") Straight 613"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.362205 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.362205 0.000000
- END
-TURNOUT O "Electric Train System O Scale 36mm (1.417"") Straight 614"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.417323 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.417323 0.000000
- END
-
-SUBCONTENTS Electric Train System O Scale - Misc Track
-TURNOUT O "Electric Train System O Scale 120mm Connecting Break track 751"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.724409 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.724409 0.000000
- L 11579568 1.000000 1.375000 1.062992 1.375000 -1.062992
- L 11579568 1.000000 3.375000 1.062992 3.375000 -1.062992
- END
-TURNOUT O "Electric Train System O Scale 240mm Connecting Track 752"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.448819 0.000000 90.000000
- S 0 0 0.000000 0.000000 9.448819 0.000000
- L 11579568 1.000000 4.724409 1.062992 4.724409 -1.062992
- END
-TURNOUT O "Electric Train System O Scale 120mm Buffer Stop DR 861"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- S 0 0 0.000000 0.000000 4.724409 0.000000
- L 11579568 0.500000 3.543307 1.000000 3.543307 -1.000000
- END
-TURNOUT O "Electric Train System O Scale 120mm Buffer Stop CSD 862"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- S 0 0 0.000000 0.000000 4.724409 0.000000
- L 11579568 0.500000 3.543307 1.000000 3.543307 -1.000000
- END
-TURNOUT O "Electric Train System O Scale Railroad Crossing Gate 835"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.448819 0.000000 90.000000
- S 0 0 0.000000 0.000000 9.448819 0.000000
- F 32768 0.000000 4
- 0.295275 0.688973 0
- 0.295275 6.594488 0
- 9.152543 6.594488 0
- 9.152543 0.688973 0
- F 11579568 0.000000 4
- 1.220472 0.688973 0
- 1.220472 6.594488 0
- 8.228346 6.594488 0
- 8.228346 0.688973 0
- F 8404992 0.000000 4
- 1.220472 0.531496 0
- 8.228346 0.531496 0
- 8.228346 -0.531496 0
- 1.220472 -0.531496 0
- F 32768 0.000000 4
- 0.295275 -0.688973 0
- 0.295275 -6.594488 0
- 9.152543 -6.594488 0
- 9.152543 -0.688973 0
- F 11579568 0.000000 4
- 1.220472 -0.688973 0
- 1.220472 -6.594488 0
- 8.228346 -6.594488 0
- 8.228346 -0.688973 0
- END
-TURNOUT O "Electric Train System O Scale Level Crossing 836"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.448819 0.000000 90.000000
- S 0 0 0.000000 0.000000 9.448819 0.000000
- F 32768 0.000000 4
- 0.295275 0.688973 0
- 0.295275 6.594488 0
- 9.152543 6.594488 0
- 9.152543 0.688973 0
- F 11579568 0.000000 4
- 1.220472 0.688973 0
- 1.220472 6.594488 0
- 8.228346 6.594488 0
- 8.228346 0.688973 0
- F 8404992 0.000000 4
- 1.220472 0.531496 0
- 8.228346 0.531496 0
- 8.228346 -0.531496 0
- 1.220472 -0.531496 0
- F 32768 0.000000 4
- 0.295275 -0.688973 0
- 0.295275 -6.594488 0
- 9.152543 -6.594488 0
- 9.152543 -0.688973 0
- F 11579568 0.000000 4
- 1.220472 -0.688973 0
- 1.220472 -6.594488 0
- 8.228346 -6.594488 0
- 8.228346 -0.688973 0
- END
-
-SUBCONTENTS Electric Train System O Scale - Curve Track
-TURNOUT O "Electric Train System O Scale R672mm 2230' Curve 631"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.446548 1.879034 67.500000
- C 0 0.000000 -24.685039 0.000033 24.685039 157.500076 22.500000
- END
-TURNOUT O "Electric Train System O Scale R672mm 1125' Curve 632"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.815808 0.474315 78.750000
- C 0 0.000000 -24.685039 0.000000 24.685039 168.750000 11.250000
- END
-TURNOUT O "Electric Train System O Scale R672mm 542' Curve 633"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.419555 0.118865 84.375000
- C 0 0.000000 -24.685039 0.000000 24.685039 174.375000 5.625000
- END
-TURNOUT O "Electric Train System O Scale R747mm 2230' Curve 634"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 11.254500 2.238657 67.500000
- C 0 0.000000 -29.409449 0.000000 29.409449 157.500000 22.500000
- END
-
-SUBCONTENTS Electric Train System O Scale - Turnouts
-TURNOUT O "Electric Train System O Scale 240mm/R672mm 2230' Left Remote Turnout 651"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 9.448819 0.000000 90.000000
- E 9.446548 1.879034 67.500000
- S 0 0 0.000000 0.000000 9.448819 0.000000
- C 0 0.000000 24.685039 0.000000 24.685039 157.500000 22.500000
- END
-TURNOUT O "Electric Train System O Scale 240mm/R672mm 2230' Right Remote Turnout 652"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 9.448819 0.000000 90.000000
- E 9.446548 -1.879034 112.500000
- S 0 0 0.000000 0.000000 9.448819 0.000000
- C 0 0.000000 24.685039 0.000000 -24.685039 0.000000 22.500000
- END
-TURNOUT O "Electric Train System O Scale 240mm/R672mm 2230' Left Manual Turnout 653"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 9.448819 0.000000 90.000000
- E 9.446548 1.879034 67.500000
- S 0 0 0.000000 0.000000 9.448819 0.000000
- C 0 0.000000 24.685039 0.000000 24.685039 157.500000 22.500000
- END
-TURNOUT O "Electric Train System O Scale 240mm/R672mm 2230' Right Manual Turnout 654"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 9.448819 0.000000 90.000000
- E 9.446548 -1.879034 112.500000
- S 0 0 0.000000 0.000000 9.448819 0.000000
- C 0 0.000000 24.685039 0.000000 -24.685039 0.000000 22.500000
- END
-TURNOUT O "Electric Train System O Scale 240mm/R672mm 2230' Three-Way Manual Turnout 655"
- P "Normal" 1
- P "Reverse" 2
- P "Reverse" 3
- E 0.000000 0.000000 270.000000
- E 9.446548 1.879034 67.500000
- E 9.448819 0.000000 90.000000
- E 9.446548 -1.879034 112.500000
- S 0 0 0.000000 0.000000 9.448819 0.000000
- C 0 0.000000 24.685039 0.000000 24.685039 157.500000 22.500000
- C 0 0.000000 24.685039 0.000000 -24.685039 0.000000 22.500000
- END
-TURNOUT O "Electric Train System O Scale 240mm/R672mm 2230' Three-Way Remote Turnout 656"
- P "Normal" 1
- P "Reverse" 2
- P "Reverse" 3
- E 0.000000 0.000000 270.000000
- E 9.446548 1.879034 67.500000
- E 9.448819 0.000000 90.000000
- E 9.446548 -1.879034 112.500000
- S 0 0 0.000000 0.000000 9.448819 0.000000
- C 0 0.000000 24.685039 0.000000 24.685039 157.500000 22.500000
- C 0 0.000000 24.685039 0.000000 -24.685039 0.000000 22.500000
- END
-
-SUBCONTENTS Electric Train System O Scale - Turntable
-TURNOUT O "Electric Train System O Scale 240mm 2230' Turntable 863"
- P "1" 1 2
- P "2" 3 4 5
- P "3" 6 7 8
- P "4" 9 10
- E 0.000000 0.000000 270.000000
- E 0.000000 7.086614 0.000000
- E 2.711930 6.547178 22.500000
- E 5.010993 5.010993 45.000000
- E 6.547178 2.711930 67.500000
- E -2.711930 -6.547178 202.500000
- E -5.010993 -5.010993 225.000000
- S 0 0.000000 0.000000 7.086614 0.000000 4.724409
- S 16777215 0.000000 0.000000 4.724409 0.000000 -4.724409
- S 0 0.000000 2.711930 6.547178 1.807953 4.364785
- S 16777215 0.000000 1.807953 4.364785 -1.807953 -4.364785
- S 0 0.000000 -1.807953 -4.364785 -2.711930 -6.547178
- S 0 0.000000 5.010993 5.010993 3.340662 3.340662
- S 16777215 0.000000 3.340662 3.340662 -3.340662 -3.340662
- S 0 0.000000 -3.340662 -3.340662 -5.010993 -5.010993
- S 0 0.000000 6.547178 2.711930 4.364785 1.807953
- S 16777215 0.000000 4.364785 1.807953 -4.364785 -1.807953
- A 0 0 4.724409 0.000000 0.000000 0.000000 360.000000
- A 0 0 7.086614 0.000000 0.000000 0.000000 360.000000
- G 11579568 0 4.724409 0.000000 0.000000 0.000000 360.000000
- END
+CONTENTS Electric Train System O Scale Track
+SUBCONTENTS Electric Train System O Scale - Straight Track
+TURNOUT O "Electric Train System O Scale 240mm (9.448"") Straight 611"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.448819 0.000000 90.000000
+ S 0 0 0.000000 0.000000 9.448819 0.000000
+ END
+TURNOUT O "Electric Train System O Scale 120mm (4.724"") Straight 612"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.724409 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.724409 0.000000
+ END
+TURNOUT O "Electric Train System O Scale 60mm (2.362"") Straight 613"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.362205 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.362205 0.000000
+ END
+TURNOUT O "Electric Train System O Scale 36mm (1.417"") Straight 614"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.417323 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.417323 0.000000
+ END
+
+SUBCONTENTS Electric Train System O Scale - Misc Track
+TURNOUT O "Electric Train System O Scale 120mm Connecting Break track 751"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.724409 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.724409 0.000000
+ L 11579568 1.000000 1.375000 1.062992 1.375000 -1.062992
+ L 11579568 1.000000 3.375000 1.062992 3.375000 -1.062992
+ END
+TURNOUT O "Electric Train System O Scale 240mm Connecting Track 752"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.448819 0.000000 90.000000
+ S 0 0 0.000000 0.000000 9.448819 0.000000
+ L 11579568 1.000000 4.724409 1.062992 4.724409 -1.062992
+ END
+TURNOUT O "Electric Train System O Scale 120mm Buffer Stop DR 861"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ S 0 0 0.000000 0.000000 4.724409 0.000000
+ L 11579568 0.500000 3.543307 1.000000 3.543307 -1.000000
+ END
+TURNOUT O "Electric Train System O Scale 120mm Buffer Stop CSD 862"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ S 0 0 0.000000 0.000000 4.724409 0.000000
+ L 11579568 0.500000 3.543307 1.000000 3.543307 -1.000000
+ END
+TURNOUT O "Electric Train System O Scale Railroad Crossing Gate 835"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.448819 0.000000 90.000000
+ S 0 0 0.000000 0.000000 9.448819 0.000000
+ F 32768 0.000000 4
+ 0.295275 0.688973 0
+ 0.295275 6.594488 0
+ 9.152543 6.594488 0
+ 9.152543 0.688973 0
+ F 11579568 0.000000 4
+ 1.220472 0.688973 0
+ 1.220472 6.594488 0
+ 8.228346 6.594488 0
+ 8.228346 0.688973 0
+ F 8404992 0.000000 4
+ 1.220472 0.531496 0
+ 8.228346 0.531496 0
+ 8.228346 -0.531496 0
+ 1.220472 -0.531496 0
+ F 32768 0.000000 4
+ 0.295275 -0.688973 0
+ 0.295275 -6.594488 0
+ 9.152543 -6.594488 0
+ 9.152543 -0.688973 0
+ F 11579568 0.000000 4
+ 1.220472 -0.688973 0
+ 1.220472 -6.594488 0
+ 8.228346 -6.594488 0
+ 8.228346 -0.688973 0
+ END
+TURNOUT O "Electric Train System O Scale Level Crossing 836"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.448819 0.000000 90.000000
+ S 0 0 0.000000 0.000000 9.448819 0.000000
+ F 32768 0.000000 4
+ 0.295275 0.688973 0
+ 0.295275 6.594488 0
+ 9.152543 6.594488 0
+ 9.152543 0.688973 0
+ F 11579568 0.000000 4
+ 1.220472 0.688973 0
+ 1.220472 6.594488 0
+ 8.228346 6.594488 0
+ 8.228346 0.688973 0
+ F 8404992 0.000000 4
+ 1.220472 0.531496 0
+ 8.228346 0.531496 0
+ 8.228346 -0.531496 0
+ 1.220472 -0.531496 0
+ F 32768 0.000000 4
+ 0.295275 -0.688973 0
+ 0.295275 -6.594488 0
+ 9.152543 -6.594488 0
+ 9.152543 -0.688973 0
+ F 11579568 0.000000 4
+ 1.220472 -0.688973 0
+ 1.220472 -6.594488 0
+ 8.228346 -6.594488 0
+ 8.228346 -0.688973 0
+ END
+
+SUBCONTENTS Electric Train System O Scale - Curve Track
+TURNOUT O "Electric Train System O Scale R672mm 22°30' Curve 631"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.446548 1.879034 67.500000
+ C 0 0.000000 -24.685039 0.000033 24.685039 157.500076 22.500000
+ END
+TURNOUT O "Electric Train System O Scale R672mm 11°25' Curve 632"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.815808 0.474315 78.750000
+ C 0 0.000000 -24.685039 0.000000 24.685039 168.750000 11.250000
+ END
+TURNOUT O "Electric Train System O Scale R672mm 5°42' Curve 633"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.419555 0.118865 84.375000
+ C 0 0.000000 -24.685039 0.000000 24.685039 174.375000 5.625000
+ END
+TURNOUT O "Electric Train System O Scale R747mm 22°30' Curve 634"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 11.254500 2.238657 67.500000
+ C 0 0.000000 -29.409449 0.000000 29.409449 157.500000 22.500000
+ END
+
+SUBCONTENTS Electric Train System O Scale - Turnouts
+TURNOUT O "Electric Train System O Scale 240mm/R672mm 22°30' Left Remote Turnout 651"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 9.448819 0.000000 90.000000
+ E 9.446548 1.879034 67.500000
+ S 0 0 0.000000 0.000000 9.448819 0.000000
+ C 0 0.000000 24.685039 0.000000 24.685039 157.500000 22.500000
+ END
+TURNOUT O "Electric Train System O Scale 240mm/R672mm 22°30' Right Remote Turnout 652"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 9.448819 0.000000 90.000000
+ E 9.446548 -1.879034 112.500000
+ S 0 0 0.000000 0.000000 9.448819 0.000000
+ C 0 0.000000 24.685039 0.000000 -24.685039 0.000000 22.500000
+ END
+TURNOUT O "Electric Train System O Scale 240mm/R672mm 22°30' Left Manual Turnout 653"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 9.448819 0.000000 90.000000
+ E 9.446548 1.879034 67.500000
+ S 0 0 0.000000 0.000000 9.448819 0.000000
+ C 0 0.000000 24.685039 0.000000 24.685039 157.500000 22.500000
+ END
+TURNOUT O "Electric Train System O Scale 240mm/R672mm 22°30' Right Manual Turnout 654"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 9.448819 0.000000 90.000000
+ E 9.446548 -1.879034 112.500000
+ S 0 0 0.000000 0.000000 9.448819 0.000000
+ C 0 0.000000 24.685039 0.000000 -24.685039 0.000000 22.500000
+ END
+TURNOUT O "Electric Train System O Scale 240mm/R672mm 22°30' Three-Way Manual Turnout 655"
+ P "Normal" 1
+ P "Reverse" 2
+ P "Reverse" 3
+ E 0.000000 0.000000 270.000000
+ E 9.446548 1.879034 67.500000
+ E 9.448819 0.000000 90.000000
+ E 9.446548 -1.879034 112.500000
+ S 0 0 0.000000 0.000000 9.448819 0.000000
+ C 0 0.000000 24.685039 0.000000 24.685039 157.500000 22.500000
+ C 0 0.000000 24.685039 0.000000 -24.685039 0.000000 22.500000
+ END
+TURNOUT O "Electric Train System O Scale 240mm/R672mm 22°30' Three-Way Remote Turnout 656"
+ P "Normal" 1
+ P "Reverse" 2
+ P "Reverse" 3
+ E 0.000000 0.000000 270.000000
+ E 9.446548 1.879034 67.500000
+ E 9.448819 0.000000 90.000000
+ E 9.446548 -1.879034 112.500000
+ S 0 0 0.000000 0.000000 9.448819 0.000000
+ C 0 0.000000 24.685039 0.000000 24.685039 157.500000 22.500000
+ C 0 0.000000 24.685039 0.000000 -24.685039 0.000000 22.500000
+ END
+
+SUBCONTENTS Electric Train System O Scale - Turntable
+TURNOUT O "Electric Train System O Scale 240mm 22°30' Turntable 863"
+ P "1" 1 2
+ P "2" 3 4 5
+ P "3" 6 7 8
+ P "4" 9 10
+ E 0.000000 0.000000 270.000000
+ E 0.000000 7.086614 0.000000
+ E 2.711930 6.547178 22.500000
+ E 5.010993 5.010993 45.000000
+ E 6.547178 2.711930 67.500000
+ E -2.711930 -6.547178 202.500000
+ E -5.010993 -5.010993 225.000000
+ S 0 0.000000 0.000000 7.086614 0.000000 4.724409
+ S 16777215 0.000000 0.000000 4.724409 0.000000 -4.724409
+ S 0 0.000000 2.711930 6.547178 1.807953 4.364785
+ S 16777215 0.000000 1.807953 4.364785 -1.807953 -4.364785
+ S 0 0.000000 -1.807953 -4.364785 -2.711930 -6.547178
+ S 0 0.000000 5.010993 5.010993 3.340662 3.340662
+ S 16777215 0.000000 3.340662 3.340662 -3.340662 -3.340662
+ S 0 0.000000 -3.340662 -3.340662 -5.010993 -5.010993
+ S 0 0.000000 6.547178 2.711930 4.364785 1.807953
+ S 16777215 0.000000 4.364785 1.807953 -4.364785 -1.807953
+ A 0 0 4.724409 0.000000 0.000000 0.000000 360.000000
+ A 0 0 7.086614 0.000000 0.000000 0.000000 360.000000
+ G 11579568 0 4.724409 0.000000 0.000000 0.000000 360.000000
+ END
diff --git a/app/lib/params/O-Lehnhardt Tramrails.xtp b/app/lib/params/O-Lehnhardt Tramrails.xtp
index 5cf2add..8420497 100644
--- a/app/lib/params/O-Lehnhardt Tramrails.xtp
+++ b/app/lib/params/O-Lehnhardt Tramrails.xtp
@@ -1,180 +1,180 @@
-CONTENTS Lehnhardt O Scale TramTrack
-## Note radius for curves and turnouts are my best guess from scaling photos.
-SUBCONTENTS Lehnhardt O Scale TramTrack - Straight Track
-TURNOUT O "Lehnhardt O Scale TramTrack 360mm (14.173"") Straight 3000-50-101"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 14.173228 0.000000 90.000000
- S 0 0 0.000000 0.000000 14.173228 0.000000
- L 11579568 0.053333 0.000000 1.377953 14.173228 1.377953
- L 11579568 0.053333 0.000000 -1.377953 14.173228 -1.377953
- END
-TURNOUT O "Lehnhardt O Scale TramTrack 240mm (9.448"") Straight 3000-50-102"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.448819 0.000000 90.000000
- S 0 0 0.000000 0.000000 9.448819 0.000000
- L 11579568 0.053333 0.000000 1.377953 9.448819 1.377953
- L 11579568 0.053333 0.000000 -1.377953 9.448819 -1.377953
- END
-TURNOUT O "Lehnhardt O Scale TramTrack 120mm (4.724"") Straight 3000-50-103"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.724409 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.724409 0.000000
- L 11579568 0.053333 0.000000 1.377953 4.724409 1.377953
- L 11579568 0.053333 0.000000 -1.377953 4.724409 -1.377953
- END
-TURNOUT O "Lehnhardt O Scale TramTrack 120mm (4.724"") Connect track 3000-50-104"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.724409 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.724409 0.000000
- L 11579568 0.053333 0.000000 1.377953 4.724409 1.377953
- L 11579568 0.053333 0.000000 -1.377953 4.724409 -1.377953
- END
-TURNOUT O "Lehnhardt O Scale TramTrack 70mm (2.755"") Straight 3000-50-105"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.755906 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.755906 0.000000
- L 11579568 0.053333 0.000000 1.377953 2.755906 1.377953
- L 11579568 0.053333 0.000000 -1.377953 2.755906 -1.377953
- END
-TURNOUT O "Lehnhardt O Scale TramTrack 50mm (1.968"") Straight 3000-50-106"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.968504 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.968504 0.000000
- L 11579568 0.053333 0.000000 1.377953 1.968504 1.377953
- L 11579568 0.053333 0.000000 -1.377953 1.968504 -1.377953
- END
-TURNOUT O "Lehnhardt O Scale TramTrack 30mm (1.181"") Straight 3000-50-107"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.181102 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.181102 0.000000
- L 11579568 0.053333 0.000000 1.377953 1.181102 1.377953
- L 11579568 0.053333 0.000000 -1.377953 1.181102 -1.377953
- END
-
-SUBCONTENTS Lehnhardt O Scale TramTrack - Misc Track
-TURNOUT O "Lehnhardt O Scale TramTrack 120mm 90 Crosss 3000-50-109"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.724409 0.000000 90.000000
- E 2.362205 2.362205 0.000000
- E 2.362205 -2.362205 180.000000
- S 0 0 0.000000 0.000000 4.724409 0.000000
- S 0 0 2.362205 2.362205 2.362205 -2.362205
- L 11579568 0.053333 0.000000 1.377953 0.984252 1.377953
- L 11579568 0.053333 3.740157 1.377953 4.724409 1.377953
- L 11579568 0.053333 0.000000 -1.377953 0.984252 -1.377953
- L 11579568 0.053333 3.740157 -1.377953 4.724409 -1.377953
- L 11579568 0.053333 0.984252 1.377953 0.984252 2.362205
- L 11579568 0.053333 3.740157 1.377953 3.740157 2.362205
- L 11579568 0.053333 0.984252 -1.377953 0.984252 -2.362205
- L 11579568 0.053333 3.740157 -1.377953 3.740157 -2.362205
- END
-
-SUBCONTENTS Lehnhardt O Scale TramTrack - Curve Track
-TURNOUT O "Lehnhardt O Scale TramTrack R310mm 2230' Curve 3000-51-102"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.670542 0.929028 67.500000
- C 0 0.000000 12.204724 0.000000 12.204724 157.500000 22.500000
- A 11579568 0.053333 13.582677 0.000000 12.204724 157.500000 22.500000
- A 11579568 0.053333 10.826772 0.000000 12.204724 157.500000 22.500000
- END
-TURNOUT O "Lehnhardt O Scale TramTrack R310mm 45 Curve 3000-51-103"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.630038 3.574675 45.000000
- C 0 0.000000 12.204724 0.000000 12.204724 135.000000 45.000000
- A 11579568 0.053333 13.582677 0.000000 12.204724 135.000000 45.000000
- A 11579568 0.053333 10.826772 0.000000 12.204724 135.000000 45.000000
- END
-TURNOUT O "Lehnhardt O Scale TramTrack R310mm 45 Interruption 3000-51-104"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.630038 3.574675 45.000000
- C 0 0.000000 12.204724 0.000000 12.204724 135.000000 45.000000
- A 11579568 0.053333 13.582677 0.000000 12.204724 135.000000 45.000000
- A 11579568 0.053333 10.826772 0.000000 12.204724 135.000000 45.000000
- END
-
-SUBCONTENTS Lehnhardt O Scale TramTrack - Turnouts
-TURNOUT O "Lehnhardt O Scale TramTrack 240mm/R310mm 45 Left Manual Turnout 3000-50-113"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 9.448819 0.000000 90.000000
- E 8.630038 3.574675 45.000000
- S 0 0 0.000000 0.000000 9.448819 0.000000
- C 0 0.000000 12.204724 0.000000 12.204724 135.000000 45.000000
- L 11579568 0.053333 8.070866 1.377953 9.448819 1.377953
- L 11579568 0.053333 0.000000 -1.377953 9.448819 -1.377953
- A 11579568 0.053333 10.826772 0.000000 12.204724 135.000000 45.000000
- A 11579568 0.053333 13.582677 0.000000 12.204724 135.000000 8.000000
- END
-TURNOUT O "Lehnhardt O Scale TramTrack 240mm/R310mm 45 Right Manual Turnout 3000-50-112"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 9.448819 0.000000 90.000000
- E 8.630038 -3.574675 135.000000
- S 0 0 0.000000 0.000000 9.448819 0.000000
- C 0 0.000000 12.204724 0.000000 -12.204724 0.000000 45.000000
- L 11579568 0.053333 8.070866 -1.377953 9.448819 -1.377953
- L 11579568 0.053333 0.000000 1.377953 9.448819 1.377953
- A 11579568 0.053333 10.826772 0.000000 -12.204724 0.000000 45.000000
- A 11579568 0.053333 13.582677 0.000000 -12.204724 37.000000 8.000000
- END
-TURNOUT O "Lehnhardt O Scale TramTrack 240mm/R310mm 45 Left Electric Turnout 3000-50-113E"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 9.448819 0.000000 90.000000
- E 8.630038 3.574675 45.000000
- S 0 0 0.000000 0.000000 9.448819 0.000000
- C 0 0.000000 12.204724 0.000000 12.204724 135.000000 45.000000
- L 11579568 0.053333 8.070866 1.377953 9.448819 1.377953
- L 11579568 0.053333 0.000000 -1.377953 9.448819 -1.377953
- A 11579568 0.053333 10.826772 0.000000 12.204724 135.000000 45.000000
- A 11579568 0.053333 13.582677 0.000000 12.204724 135.000000 8.000000
- END
-TURNOUT O "Lehnhardt O Scale TramTrack 240mm/R310mm 45 Right Electric Turnout 3000-50-112E"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 9.448819 0.000000 90.000000
- E 8.630038 -3.574675 135.000000
- S 0 0 0.000000 0.000000 9.448819 0.000000
- C 0 0.000000 12.204724 0.000000 -12.204724 0.000000 45.000000
- L 11579568 0.053333 8.070866 -1.377953 9.448819 -1.377953
- L 11579568 0.053333 0.000000 1.377953 9.448819 1.377953
- A 11579568 0.053333 10.826772 0.000000 -12.204724 0.000000 45.000000
- A 11579568 0.053333 13.582677 0.000000 -12.204724 37.000000 8.000000
- END
-TURNOUT O "Lehnhardt O Scale TramTrack R310mm 2230' Wye Manual Turnout 3000-50-110"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 4.670542 0.929028 67.500000
- E 4.670542 -0.929028 112.500000
- C 0 0.000000 12.204724 0.000000 12.204724 157.500000 22.500000
- C 0 0.000000 12.204724 0.000000 -12.204724 0.000000 22.500000
- A 11579568 0.053333 10.826772 0.000000 12.204724 157.500000 22.500000
- A 11579568 0.053333 10.826772 0.000000 -12.204724 0.000000 22.500000
- END
-TURNOUT O "Lehnhardt O Scale TramTrack R310mm 2230' Wye Electric Turnout 3000-50-110E"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 4.670542 0.929028 67.500000
- E 4.670542 -0.929028 112.500000
- C 0 0.000000 12.204724 0.000000 12.204724 157.500000 22.500000
- C 0 0.000000 12.204724 0.000000 -12.204724 0.000000 22.500000
- A 11579568 0.053333 10.826772 0.000000 12.204724 157.500000 22.500000
- A 11579568 0.053333 10.826772 0.000000 -12.204724 0.000000 22.500000
- END
+CONTENTS Lehnhardt O Scale TramTrack
+## Note radius for curves and turnouts are my best guess from scaling photos.
+SUBCONTENTS Lehnhardt O Scale TramTrack - Straight Track
+TURNOUT O "Lehnhardt O Scale TramTrack 360mm (14.173"") Straight 3000-50-101"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 14.173228 0.000000 90.000000
+ S 0 0 0.000000 0.000000 14.173228 0.000000
+ L 11579568 0.053333 0.000000 1.377953 14.173228 1.377953
+ L 11579568 0.053333 0.000000 -1.377953 14.173228 -1.377953
+ END
+TURNOUT O "Lehnhardt O Scale TramTrack 240mm (9.448"") Straight 3000-50-102"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.448819 0.000000 90.000000
+ S 0 0 0.000000 0.000000 9.448819 0.000000
+ L 11579568 0.053333 0.000000 1.377953 9.448819 1.377953
+ L 11579568 0.053333 0.000000 -1.377953 9.448819 -1.377953
+ END
+TURNOUT O "Lehnhardt O Scale TramTrack 120mm (4.724"") Straight 3000-50-103"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.724409 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.724409 0.000000
+ L 11579568 0.053333 0.000000 1.377953 4.724409 1.377953
+ L 11579568 0.053333 0.000000 -1.377953 4.724409 -1.377953
+ END
+TURNOUT O "Lehnhardt O Scale TramTrack 120mm (4.724"") Connect track 3000-50-104"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.724409 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.724409 0.000000
+ L 11579568 0.053333 0.000000 1.377953 4.724409 1.377953
+ L 11579568 0.053333 0.000000 -1.377953 4.724409 -1.377953
+ END
+TURNOUT O "Lehnhardt O Scale TramTrack 70mm (2.755"") Straight 3000-50-105"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.755906 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.755906 0.000000
+ L 11579568 0.053333 0.000000 1.377953 2.755906 1.377953
+ L 11579568 0.053333 0.000000 -1.377953 2.755906 -1.377953
+ END
+TURNOUT O "Lehnhardt O Scale TramTrack 50mm (1.968"") Straight 3000-50-106"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.968504 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.968504 0.000000
+ L 11579568 0.053333 0.000000 1.377953 1.968504 1.377953
+ L 11579568 0.053333 0.000000 -1.377953 1.968504 -1.377953
+ END
+TURNOUT O "Lehnhardt O Scale TramTrack 30mm (1.181"") Straight 3000-50-107"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.181102 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.181102 0.000000
+ L 11579568 0.053333 0.000000 1.377953 1.181102 1.377953
+ L 11579568 0.053333 0.000000 -1.377953 1.181102 -1.377953
+ END
+
+SUBCONTENTS Lehnhardt O Scale TramTrack - Misc Track
+TURNOUT O "Lehnhardt O Scale TramTrack 120mm 90° Crosss 3000-50-109"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.724409 0.000000 90.000000
+ E 2.362205 2.362205 0.000000
+ E 2.362205 -2.362205 180.000000
+ S 0 0 0.000000 0.000000 4.724409 0.000000
+ S 0 0 2.362205 2.362205 2.362205 -2.362205
+ L 11579568 0.053333 0.000000 1.377953 0.984252 1.377953
+ L 11579568 0.053333 3.740157 1.377953 4.724409 1.377953
+ L 11579568 0.053333 0.000000 -1.377953 0.984252 -1.377953
+ L 11579568 0.053333 3.740157 -1.377953 4.724409 -1.377953
+ L 11579568 0.053333 0.984252 1.377953 0.984252 2.362205
+ L 11579568 0.053333 3.740157 1.377953 3.740157 2.362205
+ L 11579568 0.053333 0.984252 -1.377953 0.984252 -2.362205
+ L 11579568 0.053333 3.740157 -1.377953 3.740157 -2.362205
+ END
+
+SUBCONTENTS Lehnhardt O Scale TramTrack - Curve Track
+TURNOUT O "Lehnhardt O Scale TramTrack R310mm 22°30' Curve 3000-51-102"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.670542 0.929028 67.500000
+ C 0 0.000000 12.204724 0.000000 12.204724 157.500000 22.500000
+ A 11579568 0.053333 13.582677 0.000000 12.204724 157.500000 22.500000
+ A 11579568 0.053333 10.826772 0.000000 12.204724 157.500000 22.500000
+ END
+TURNOUT O "Lehnhardt O Scale TramTrack R310mm 45° Curve 3000-51-103"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.630038 3.574675 45.000000
+ C 0 0.000000 12.204724 0.000000 12.204724 135.000000 45.000000
+ A 11579568 0.053333 13.582677 0.000000 12.204724 135.000000 45.000000
+ A 11579568 0.053333 10.826772 0.000000 12.204724 135.000000 45.000000
+ END
+TURNOUT O "Lehnhardt O Scale TramTrack R310mm 45° Interruption 3000-51-104"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.630038 3.574675 45.000000
+ C 0 0.000000 12.204724 0.000000 12.204724 135.000000 45.000000
+ A 11579568 0.053333 13.582677 0.000000 12.204724 135.000000 45.000000
+ A 11579568 0.053333 10.826772 0.000000 12.204724 135.000000 45.000000
+ END
+
+SUBCONTENTS Lehnhardt O Scale TramTrack - Turnouts
+TURNOUT O "Lehnhardt O Scale TramTrack 240mm/R310mm 45° Left Manual Turnout 3000-50-113"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 9.448819 0.000000 90.000000
+ E 8.630038 3.574675 45.000000
+ S 0 0 0.000000 0.000000 9.448819 0.000000
+ C 0 0.000000 12.204724 0.000000 12.204724 135.000000 45.000000
+ L 11579568 0.053333 8.070866 1.377953 9.448819 1.377953
+ L 11579568 0.053333 0.000000 -1.377953 9.448819 -1.377953
+ A 11579568 0.053333 10.826772 0.000000 12.204724 135.000000 45.000000
+ A 11579568 0.053333 13.582677 0.000000 12.204724 135.000000 8.000000
+ END
+TURNOUT O "Lehnhardt O Scale TramTrack 240mm/R310mm 45° Right Manual Turnout 3000-50-112"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 9.448819 0.000000 90.000000
+ E 8.630038 -3.574675 135.000000
+ S 0 0 0.000000 0.000000 9.448819 0.000000
+ C 0 0.000000 12.204724 0.000000 -12.204724 0.000000 45.000000
+ L 11579568 0.053333 8.070866 -1.377953 9.448819 -1.377953
+ L 11579568 0.053333 0.000000 1.377953 9.448819 1.377953
+ A 11579568 0.053333 10.826772 0.000000 -12.204724 0.000000 45.000000
+ A 11579568 0.053333 13.582677 0.000000 -12.204724 37.000000 8.000000
+ END
+TURNOUT O "Lehnhardt O Scale TramTrack 240mm/R310mm 45° Left Electric Turnout 3000-50-113E"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 9.448819 0.000000 90.000000
+ E 8.630038 3.574675 45.000000
+ S 0 0 0.000000 0.000000 9.448819 0.000000
+ C 0 0.000000 12.204724 0.000000 12.204724 135.000000 45.000000
+ L 11579568 0.053333 8.070866 1.377953 9.448819 1.377953
+ L 11579568 0.053333 0.000000 -1.377953 9.448819 -1.377953
+ A 11579568 0.053333 10.826772 0.000000 12.204724 135.000000 45.000000
+ A 11579568 0.053333 13.582677 0.000000 12.204724 135.000000 8.000000
+ END
+TURNOUT O "Lehnhardt O Scale TramTrack 240mm/R310mm 45° Right Electric Turnout 3000-50-112E"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 9.448819 0.000000 90.000000
+ E 8.630038 -3.574675 135.000000
+ S 0 0 0.000000 0.000000 9.448819 0.000000
+ C 0 0.000000 12.204724 0.000000 -12.204724 0.000000 45.000000
+ L 11579568 0.053333 8.070866 -1.377953 9.448819 -1.377953
+ L 11579568 0.053333 0.000000 1.377953 9.448819 1.377953
+ A 11579568 0.053333 10.826772 0.000000 -12.204724 0.000000 45.000000
+ A 11579568 0.053333 13.582677 0.000000 -12.204724 37.000000 8.000000
+ END
+TURNOUT O "Lehnhardt O Scale TramTrack R310mm 22°30' Wye Manual Turnout 3000-50-110"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 4.670542 0.929028 67.500000
+ E 4.670542 -0.929028 112.500000
+ C 0 0.000000 12.204724 0.000000 12.204724 157.500000 22.500000
+ C 0 0.000000 12.204724 0.000000 -12.204724 0.000000 22.500000
+ A 11579568 0.053333 10.826772 0.000000 12.204724 157.500000 22.500000
+ A 11579568 0.053333 10.826772 0.000000 -12.204724 0.000000 22.500000
+ END
+TURNOUT O "Lehnhardt O Scale TramTrack R310mm 22°30' Wye Electric Turnout 3000-50-110E"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 4.670542 0.929028 67.500000
+ E 4.670542 -0.929028 112.500000
+ C 0 0.000000 12.204724 0.000000 12.204724 157.500000 22.500000
+ C 0 0.000000 12.204724 0.000000 -12.204724 0.000000 22.500000
+ A 11579568 0.053333 10.826772 0.000000 12.204724 157.500000 22.500000
+ A 11579568 0.053333 10.826772 0.000000 -12.204724 0.000000 22.500000
+ END
diff --git a/app/lib/params/O-Lenz.xtp b/app/lib/params/O-Lenz.xtp
index d6d4373..ec48ff9 100644
--- a/app/lib/params/O-Lenz.xtp
+++ b/app/lib/params/O-Lenz.xtp
@@ -1,183 +1,183 @@
-CONTENTS Lenz O Scale Track
-SUBCONTENTS Lenz O Scale - Straight Track
-TURNOUT O "Lenz O Scale 1000mm (39.370"") Flexible G4 45013"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 39.370079 0.000000 90.000000
- S 0 0 0.000000 0.000000 39.370079 0.000000
- END
-TURNOUT O "Lenz O Scale 444.12mm (17.485"") Straight G1 45010"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 17.485039 0.000000 90.000000
- S 0 0 0.000000 0.000000 17.485039 0.000000
- END
-TURNOUT O "Lenz O Scale 130.49mm (5.137"") Straight G2 45011"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.137402 0.000000 90.000000
- S 0 0 0.000000 0.000000 5.137402 0.000000
- END
-TURNOUT O "Lenz O Scale 11.27mm (0.443"") Straight G10 45012"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 0.443701 0.000000 90.000000
- S 0 0 0.000000 0.000000 0.443701 0.000000
- END
-
-SUBCONTENTS Lenz O Scale - Crossing
-TURNOUT O "Lenz O Scale 277.2mm 2230' Crossing 45030"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 10.913386 0.000000 90.000000
- E 0.415363 2.088178 292.500000
- E 10.498023 -2.088178 112.500000
- S 0 0.000000 0.000000 0.000000 10.913386 0.000000
- S 0 0.000000 0.415363 2.088178 10.498023 -2.088178
- END
-
-SUBCONTENTS Lenz O Scale - Curve Track
-TURNOUT O "Lenz O Scale R914.4mm 2230' Curve R1 45021"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 13.776593 2.740332 67.500000
- C 0 0.000000 36.000000 0.000000 36.000000 157.500000 22.500000
- END
-TURNOUT O "Lenz O Scale R1028.7mm 2230' Curve R2 45022"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 15.498667 3.082874 67.500000
- C 0 0.000000 40.500000 0.000000 40.500000 157.500000 22.500000
- END
-TURNOUT O "Lenz O Scale R1028.7mm 730' Curve R2 45023"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.286306 0.346483 82.500000
- C 0 0.000000 40.500000 0.000000 40.500000 172.500000 7.500000
- END
-TURNOUT O "Lenz O Scale R1649.36mm 1115' Curve R10 45025"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 12.668264 1.247714 78.750000
- C 0 0.000000 64.935433 0.000000 64.935433 168.750000 11.250000
- END
-TURNOUT O "Lenz O Scale R1763.66mm 1115' Curve R11 450XX"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 13.546170 1.334180 78.750000
- C 0 0.000000 -69.435433 0.000000 69.435433 168.750000 11.250000
- END
-
-SUBCONTENTS Lenz O Scale - Turnouts
-TURNOUT O "Lenz O Scale 455.39mm/R1649.39mm 1115' Left Manual Turnout 45031"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 17.928740 0.000000 90.000000
- E 17.706890 2.250000 78.750000
- S 0 0.000000 0.000000 0.000000 1.250000 0.000000
- S 0 0.000000 1.250000 0.000000 17.928740 0.000000
- C 0 0.000000 -52.243053 1.250069 52.243053 168.750000 11.250000
- S 0 0.000000 11.442241 1.003861 17.706890 2.250000
- END
-TURNOUT O "Lenz O Scale 455.39mm/R1649.39mm 1115' Right Manual Turnout 45032"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 17.928740 0.000000 90.000000
- E 17.706890 -2.250000 101.250000
- S 0 0.000000 0.000000 0.000000 1.250000 0.000000
- S 0 0.000000 1.250000 0.000000 17.928740 0.000000
- C 0 0.000000 52.243053 1.249792 -52.243053 0.000000 11.250000
- S 0 0.000000 11.442241 -1.003861 17.706890 -2.250000
- END
-TURNOUT O "Lenz O Scale 585.88mm/R1649.39mm 1115' Three-Way Manual Turnout 45036"
- P "Left" 1 2 3 4
- P "Normal" 1 2 7
- P "Right" 1 5 6
- E 0.000000 0.000000 270.000000
- E 23.066142 2.250000 78.750000
- E 17.928740 -2.250000 101.250000
- E 23.066142 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 1.250000 -0.000000
- S 0 0.000000 1.250000 -0.000000 1.471803 0.000000
- C 0 0.000000 -104.404858 1.471941 104.404858 168.749924 11.250152
- S 0 0.000000 21.840435 2.006161 23.066142 2.250000
- C 0 0.000000 54.495554 1.249783 -54.495554 0.000076 11.250152
- S 0 0.000000 11.881688 -1.047143 17.928740 -2.250000
- S 0 0.000000 1.471803 0.000000 23.066142 0.000000
- END
-TURNOUT O "Lenz O Scale 585.88mm 1115' Double Slip Turnout 45033"
- P "Normal" 1 2 3 0 4 5 6
- P "Reverse" 1 7 6 0 4 8 3
- E 0.000000 0.000000 270.000000
- E 23.066142 0.000000 90.000000
- E 0.221601 2.249974 281.250000
- E 22.844540 -2.249974 101.250000
- S 0 0.000000 0.000000 0.000000 2.500432 0.000000
- S 0 0.000000 2.500432 0.000000 20.565709 0.000000
- S 0 0.000000 20.565709 0.000000 23.066142 0.000000
- S 0 0.000000 0.221601 2.249974 2.673324 1.762269
- S 0 0.000000 2.673324 1.762269 20.392818 -1.762269
- S 0 0.000000 20.392818 -1.762269 22.844540 -2.249974
- C 0 0.000000 91.712196 2.500067 -91.712196 0.000076 11.250152
- C 0 0.000000 -91.712196 20.565829 91.712173 180.000076 11.250152
- END
-TURNOUT O "Lenz O Scale 455.39mm/R1649.39mm 1115' Left DCC Turnout 45041"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 17.928740 0.000000 90.000000
- E 17.706890 2.250000 78.750000
- S 0 0.000000 0.000000 0.000000 1.250000 0.000000
- S 0 0.000000 1.250000 0.000000 17.928740 0.000000
- C 0 0.000000 -52.243053 1.250069 52.243053 168.750000 11.250000
- S 0 0.000000 11.442241 1.003861 17.706890 2.250000
- END
-TURNOUT O "Lenz O Scale 455.39mm/R1649.39mm 1115' Right DCC Turnout 45042"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 17.928740 0.000000 90.000000
- E 17.706890 -2.250000 101.250000
- S 0 0.000000 0.000000 0.000000 1.250000 0.000000
- S 0 0.000000 1.250000 0.000000 17.928740 0.000000
- C 0 0.000000 52.243053 1.249792 -52.243053 0.000000 11.250000
- S 0 0.000000 11.442241 -1.003861 17.706890 -2.250000
- END
-TURNOUT O "Lenz O Scale R1028.7mm 30/R1649.39mm 1845' Left Curve Turnout 45034"
- P "Normal" 1 6 4 5
- P "Reverse" 1 2 3
- E 0.000000 0.000000 270.000000
- E 21.189000 3.364000 71.250000
- E 20.252000 5.420000 60.000000
- S 0 0.000000 0.000000 0.000000 1.274374 0.000000
- C 0 0.000000 -35.790229 1.274422 35.790229 150.000000 30.000000
- S 0 0.000000 19.169557 4.795021 20.252000 5.420000
- C 0 0.000000 -55.816564 2.063784 55.816564 161.250000 18.750000
- S 0 0.000000 20.005482 2.962220 21.189000 3.364000
- S 0 0.000000 1.274374 0.000000 2.063710 0.000000
- END
-TURNOUT O "Lenz O Scale R1028.7mm 30/R1649.39mm 1845' Right Curve Turnout 45035"
- P "Normal" 1 6 4 5
- P "Reverse" 1 2 3
- E 0.000000 0.000000 270.000000
- E 21.189000 -3.364000 108.750000
- E 20.252000 -5.420000 120.000000
- S 0 0.000000 0.000000 0.000000 1.274374 0.000000
- C 0 0.000000 35.790229 1.274232 -35.790229 0.00000 30.000000
- S 0 0.000000 19.169557 -4.795021 20.252000 -5.420000
- C 0 0.000000 55.816564 2.063488 -55.816564 0.000000 18.750000
- S 0 0.000000 20.005482 -2.962220 21.189000 -3.364000
- S 0 0.000000 1.274374 0.000000 2.063710 0.000000
- END
-
-SUBCONTENTS Lenz O Scale - Misc track
-TURNOUT O "Lenz O Scale 130.49mm Feeder Track 45050"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.137402 0.000000 90.000000
- S 0 0 0.000000 0.000000 5.137402 0.000000
- L 0 0.053333 2.318701 -1.062500 2.318701 -1.312500
- L 0 0.053333 2.818701 -1.062500 2.818701 -1.312500
- END
+CONTENTS Lenz O Scale Track
+SUBCONTENTS Lenz O Scale - Straight Track
+TURNOUT O "Lenz O Scale 1000mm (39.370"") Flexible G4 45013"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 39.370079 0.000000 90.000000
+ S 0 0 0.000000 0.000000 39.370079 0.000000
+ END
+TURNOUT O "Lenz O Scale 444.12mm (17.485"") Straight G1 45010"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 17.485039 0.000000 90.000000
+ S 0 0 0.000000 0.000000 17.485039 0.000000
+ END
+TURNOUT O "Lenz O Scale 130.49mm (5.137"") Straight G2 45011"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.137402 0.000000 90.000000
+ S 0 0 0.000000 0.000000 5.137402 0.000000
+ END
+TURNOUT O "Lenz O Scale 11.27mm (0.443"") Straight G10 45012"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 0.443701 0.000000 90.000000
+ S 0 0 0.000000 0.000000 0.443701 0.000000
+ END
+
+SUBCONTENTS Lenz O Scale - Crossing
+TURNOUT O "Lenz O Scale 277.2mm 22°30' Crossing 45030"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 10.913386 0.000000 90.000000
+ E 0.415363 2.088178 292.500000
+ E 10.498023 -2.088178 112.500000
+ S 0 0.000000 0.000000 0.000000 10.913386 0.000000
+ S 0 0.000000 0.415363 2.088178 10.498023 -2.088178
+ END
+
+SUBCONTENTS Lenz O Scale - Curve Track
+TURNOUT O "Lenz O Scale R914.4mm 22°30' Curve R1 45021"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 13.776593 2.740332 67.500000
+ C 0 0.000000 36.000000 0.000000 36.000000 157.500000 22.500000
+ END
+TURNOUT O "Lenz O Scale R1028.7mm 22°30' Curve R2 45022"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 15.498667 3.082874 67.500000
+ C 0 0.000000 40.500000 0.000000 40.500000 157.500000 22.500000
+ END
+TURNOUT O "Lenz O Scale R1028.7mm 7°30' Curve R2 45023"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.286306 0.346483 82.500000
+ C 0 0.000000 40.500000 0.000000 40.500000 172.500000 7.500000
+ END
+TURNOUT O "Lenz O Scale R1649.36mm 11°15' Curve R10 45025"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 12.668264 1.247714 78.750000
+ C 0 0.000000 64.935433 0.000000 64.935433 168.750000 11.250000
+ END
+TURNOUT O "Lenz O Scale R1763.66mm 11°15' Curve R11 450XX"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 13.546170 1.334180 78.750000
+ C 0 0.000000 -69.435433 0.000000 69.435433 168.750000 11.250000
+ END
+
+SUBCONTENTS Lenz O Scale - Turnouts
+TURNOUT O "Lenz O Scale 455.39mm/R1649.39mm 11°15' Left Manual Turnout 45031"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 17.928740 0.000000 90.000000
+ E 17.706890 2.250000 78.750000
+ S 0 0.000000 0.000000 0.000000 1.250000 0.000000
+ S 0 0.000000 1.250000 0.000000 17.928740 0.000000
+ C 0 0.000000 -52.243053 1.250069 52.243053 168.750000 11.250000
+ S 0 0.000000 11.442241 1.003861 17.706890 2.250000
+ END
+TURNOUT O "Lenz O Scale 455.39mm/R1649.39mm 11°15' Right Manual Turnout 45032"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 17.928740 0.000000 90.000000
+ E 17.706890 -2.250000 101.250000
+ S 0 0.000000 0.000000 0.000000 1.250000 0.000000
+ S 0 0.000000 1.250000 0.000000 17.928740 0.000000
+ C 0 0.000000 52.243053 1.249792 -52.243053 0.000000 11.250000
+ S 0 0.000000 11.442241 -1.003861 17.706890 -2.250000
+ END
+TURNOUT O "Lenz O Scale 585.88mm/R1649.39mm 11°15' Three-Way Manual Turnout 45036"
+ P "Left" 1 2 3 4
+ P "Normal" 1 2 7
+ P "Right" 1 5 6
+ E 0.000000 0.000000 270.000000
+ E 23.066142 2.250000 78.750000
+ E 17.928740 -2.250000 101.250000
+ E 23.066142 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 1.250000 -0.000000
+ S 0 0.000000 1.250000 -0.000000 1.471803 0.000000
+ C 0 0.000000 -104.404858 1.471941 104.404858 168.749924 11.250152
+ S 0 0.000000 21.840435 2.006161 23.066142 2.250000
+ C 0 0.000000 54.495554 1.249783 -54.495554 0.000076 11.250152
+ S 0 0.000000 11.881688 -1.047143 17.928740 -2.250000
+ S 0 0.000000 1.471803 0.000000 23.066142 0.000000
+ END
+TURNOUT O "Lenz O Scale 585.88mm 11°15' Double Slip Turnout 45033"
+ P "Normal" 1 2 3 0 4 5 6
+ P "Reverse" 1 7 6 0 4 8 3
+ E 0.000000 0.000000 270.000000
+ E 23.066142 0.000000 90.000000
+ E 0.221601 2.249974 281.250000
+ E 22.844540 -2.249974 101.250000
+ S 0 0.000000 0.000000 0.000000 2.500432 0.000000
+ S 0 0.000000 2.500432 0.000000 20.565709 0.000000
+ S 0 0.000000 20.565709 0.000000 23.066142 0.000000
+ S 0 0.000000 0.221601 2.249974 2.673324 1.762269
+ S 0 0.000000 2.673324 1.762269 20.392818 -1.762269
+ S 0 0.000000 20.392818 -1.762269 22.844540 -2.249974
+ C 0 0.000000 91.712196 2.500067 -91.712196 0.000076 11.250152
+ C 0 0.000000 -91.712196 20.565829 91.712173 180.000076 11.250152
+ END
+TURNOUT O "Lenz O Scale 455.39mm/R1649.39mm 11°15' Left DCC Turnout 45041"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 17.928740 0.000000 90.000000
+ E 17.706890 2.250000 78.750000
+ S 0 0.000000 0.000000 0.000000 1.250000 0.000000
+ S 0 0.000000 1.250000 0.000000 17.928740 0.000000
+ C 0 0.000000 -52.243053 1.250069 52.243053 168.750000 11.250000
+ S 0 0.000000 11.442241 1.003861 17.706890 2.250000
+ END
+TURNOUT O "Lenz O Scale 455.39mm/R1649.39mm 11°15' Right DCC Turnout 45042"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 17.928740 0.000000 90.000000
+ E 17.706890 -2.250000 101.250000
+ S 0 0.000000 0.000000 0.000000 1.250000 0.000000
+ S 0 0.000000 1.250000 0.000000 17.928740 0.000000
+ C 0 0.000000 52.243053 1.249792 -52.243053 0.000000 11.250000
+ S 0 0.000000 11.442241 -1.003861 17.706890 -2.250000
+ END
+TURNOUT O "Lenz O Scale R1028.7mm 30°/R1649.39mm 18°45' Left Curve Turnout 45034"
+ P "Normal" 1 6 4 5
+ P "Reverse" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 21.189000 3.364000 71.250000
+ E 20.252000 5.420000 60.000000
+ S 0 0.000000 0.000000 0.000000 1.274374 0.000000
+ C 0 0.000000 -35.790229 1.274422 35.790229 150.000000 30.000000
+ S 0 0.000000 19.169557 4.795021 20.252000 5.420000
+ C 0 0.000000 -55.816564 2.063784 55.816564 161.250000 18.750000
+ S 0 0.000000 20.005482 2.962220 21.189000 3.364000
+ S 0 0.000000 1.274374 0.000000 2.063710 0.000000
+ END
+TURNOUT O "Lenz O Scale R1028.7mm 30°/R1649.39mm 18°45' Right Curve Turnout 45035"
+ P "Normal" 1 6 4 5
+ P "Reverse" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 21.189000 -3.364000 108.750000
+ E 20.252000 -5.420000 120.000000
+ S 0 0.000000 0.000000 0.000000 1.274374 0.000000
+ C 0 0.000000 35.790229 1.274232 -35.790229 0.00000 30.000000
+ S 0 0.000000 19.169557 -4.795021 20.252000 -5.420000
+ C 0 0.000000 55.816564 2.063488 -55.816564 0.000000 18.750000
+ S 0 0.000000 20.005482 -2.962220 21.189000 -3.364000
+ S 0 0.000000 1.274374 0.000000 2.063710 0.000000
+ END
+
+SUBCONTENTS Lenz O Scale - Misc track
+TURNOUT O "Lenz O Scale 130.49mm Feeder Track 45050"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.137402 0.000000 90.000000
+ S 0 0 0.000000 0.000000 5.137402 0.000000
+ L 0 0.053333 2.318701 -1.062500 2.318701 -1.312500
+ L 0 0.053333 2.818701 -1.062500 2.818701 -1.312500
+ END
diff --git a/app/lib/params/O-RealTrax.xtp b/app/lib/params/O-RealTrax.xtp
index 59b21ba..9fbd35f 100644
--- a/app/lib/params/O-RealTrax.xtp
+++ b/app/lib/params/O-RealTrax.xtp
@@ -324,8 +324,8 @@ TURNOUT O "MTH Realtrax 10"" Oper. Sect. (Beta) 40-1008"
L3 8421504 0.010000 -0.000004 -1.500000 0 9.999996 -1.499987 0
L3 8421504 0.010000 0.000000 1.500000 0 10.000000 1.500013 0
END
-TURNOUT O "MTH Realtrax 90 Crossing 40-1006"
- U "Crossing" "" "MTH Realtrax" "90 Crossing" "40-1006" 8.400000 90.000000 8.400000 3.000000 0.010000 8421504
+TURNOUT O "MTH Realtrax 90° Crossing 40-1006"
+ U "Crossing" "" "MTH Realtrax" "90° Crossing" "40-1006" 8.400000 90.000000 8.400000 3.000000 0.010000 8421504
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 8.400000 0.000000 90.000000
@@ -342,8 +342,8 @@ TURNOUT O "MTH Realtrax 90 Crossing 40-1006"
L3 8421504 0.010000 5.700011 4.200002 0 5.700004 1.575002 0
L3 8421504 0.010000 5.699996 -1.574998 0 5.699989 -4.199998 0
END
-TURNOUT O "MTH Realtrax 45 Crossing 40-1007"
- U "Crossing" "" "MTH Realtrax" "45 Crossing" "40-1007" 11.700000 45.000000 11.700000 3.000000 0.010000 8421504
+TURNOUT O "MTH Realtrax 45° Crossing 40-1007"
+ U "Crossing" "" "MTH Realtrax" "45° Crossing" "40-1007" 11.700000 45.000000 11.700000 3.000000 0.010000 8421504
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 11.700000 0.000000 90.000000
diff --git a/app/lib/params/O-Ross.xtp b/app/lib/params/O-Ross.xtp
index 890c882..cb72f3e 100644
--- a/app/lib/params/O-Ross.xtp
+++ b/app/lib/params/O-Ross.xtp
@@ -809,30 +809,30 @@ TURNOUT O "Ross 18"" 7.5d Turn Table TUTA18M/A"
E -3.444151 8.314916 337.500000
E -2.329371 8.693332 345.000000
E -1.174736 8.923004 352.500000
- S 16777215 0.000000 0.000000 9.000000 0.000000 -9.000000
- S 16777215 0.000000 1.174736 8.923004 -1.174736 -8.923004
- S 16777215 0.000000 2.329371 8.693332 -2.329371 -8.693332
- S 16777215 0.000000 3.444151 8.314916 -3.444151 -8.314916
- S 16777215 0.000000 4.500000 7.794229 -4.500000 -7.794229
- S 16777215 0.000000 5.478853 7.140180 -5.478853 -7.140180
- S 16777215 0.000000 6.363961 6.363961 -6.363961 -6.363961
- S 16777215 0.000000 7.140180 5.478853 -7.140180 -5.478853
- S 16777215 0.000000 7.794229 4.500000 -7.794229 -4.500000
- S 16777215 0.000000 8.314916 3.444151 -8.314916 -3.444151
- S 16777215 0.000000 8.693332 2.329371 -8.693332 -2.329371
- S 16777215 0.000000 8.923004 1.174736 -8.923004 -1.174736
+ S 0 0.000000 0.000000 9.000000 0.000000 -9.000000
+ S 0 0.000000 1.174736 8.923004 -1.174736 -8.923004
+ S 0 0.000000 2.329371 8.693332 -2.329371 -8.693332
+ S 0 0.000000 3.444151 8.314916 -3.444151 -8.314916
+ S 0 0.000000 4.500000 7.794229 -4.500000 -7.794229
+ S 0 0.000000 5.478853 7.140180 -5.478853 -7.140180
+ S 0 0.000000 6.363961 6.363961 -6.363961 -6.363961
+ S 0 0.000000 7.140180 5.478853 -7.140180 -5.478853
+ S 0 0.000000 7.794229 4.500000 -7.794229 -4.500000
+ S 0 0.000000 8.314916 3.444151 -8.314916 -3.444151
+ S 0 0.000000 8.693332 2.329371 -8.693332 -2.329371
+ S 0 0.000000 8.923004 1.174736 -8.923004 -1.174736
S 0 0.000000 9.000000 0.000000 -9.000000 0.000000
- S 16777215 0.000000 8.923004 -1.174736 -8.923004 1.174736
- S 16777215 0.000000 8.693332 -2.329371 -8.693332 2.329371
- S 16777215 0.000000 8.314916 -3.444151 -8.314916 3.444151
- S 16777215 0.000000 7.794229 -4.500000 -7.794229 4.500000
- S 16777215 0.000000 7.140180 -5.478853 -7.140180 5.478853
- S 16777215 0.000000 6.363961 -6.363961 -6.363961 6.363961
- S 16777215 0.000000 5.478853 -7.140180 -5.478853 7.140180
- S 16777215 0.000000 4.500000 -7.794229 -4.500000 7.794229
- S 16777215 0.000000 3.444151 -8.314916 -3.444151 8.314916
- S 16777215 0.000000 2.329371 -8.693332 -2.329371 8.693332
- S 16777215 0.000000 1.174736 -8.923004 -1.174736 8.923004
+ S 0 0.000000 8.923004 -1.174736 -8.923004 1.174736
+ S 0 0.000000 8.693332 -2.329371 -8.693332 2.329371
+ S 0 0.000000 8.314916 -3.444151 -8.314916 3.444151
+ S 0 0.000000 7.794229 -4.500000 -7.794229 4.500000
+ S 0 0.000000 7.140180 -5.478853 -7.140180 5.478853
+ S 0 0.000000 6.363961 -6.363961 -6.363961 6.363961
+ S 0 0.000000 5.478853 -7.140180 -5.478853 7.140180
+ S 0 0.000000 4.500000 -7.794229 -4.500000 7.794229
+ S 0 0.000000 3.444151 -8.314916 -3.444151 8.314916
+ S 0 0.000000 2.329371 -8.693332 -2.329371 8.693332
+ S 0 0.000000 1.174736 -8.923004 -1.174736 8.923004
A 11579568 0.046875 9.000000 0.000000 0.000000 0.000000 360.000000
L 11579568 0.046875 -10.000000 10.000000 10.000000 10.000000
L 11579568 0.046875 10.000000 10.000000 10.000000 -10.000000
@@ -912,30 +912,30 @@ TURNOUT O "Ross 24"" 7.5d Turn Table TUTA24M/A"
E -4.592201 11.086554 337.500000
E -3.105829 11.591110 345.000000
E -1.566314 11.897338 352.500000
- S 16777215 0.000000 0.000000 12.000000 0.000000 -12.000000
- S 16777215 0.000000 1.566314 11.897338 -1.566314 -11.897338
- S 16777215 0.000000 3.105829 11.591110 -3.105829 -11.591110
- S 16777215 0.000000 4.592201 11.086554 -4.592201 -11.086554
- S 16777215 0.000000 6.000000 10.392305 -6.000000 -10.392305
- S 16777215 0.000000 7.305137 9.520240 -7.305137 -9.520240
- S 16777215 0.000000 8.485281 8.485281 -8.485281 -8.485281
- S 16777215 0.000000 9.520240 7.305137 -9.520240 -7.305137
- S 16777215 0.000000 10.392305 6.000000 -10.392305 -6.000000
- S 16777215 0.000000 11.086554 4.592201 -11.086554 -4.592201
- S 16777215 0.000000 11.591110 3.105829 -11.591110 -3.105829
- S 16777215 0.000000 11.897338 1.566314 -11.897338 -1.566314
+ S 0 0.000000 0.000000 12.000000 0.000000 -12.000000
+ S 0 0.000000 1.566314 11.897338 -1.566314 -11.897338
+ S 0 0.000000 3.105829 11.591110 -3.105829 -11.591110
+ S 0 0.000000 4.592201 11.086554 -4.592201 -11.086554
+ S 0 0.000000 6.000000 10.392305 -6.000000 -10.392305
+ S 0 0.000000 7.305137 9.520240 -7.305137 -9.520240
+ S 0 0.000000 8.485281 8.485281 -8.485281 -8.485281
+ S 0 0.000000 9.520240 7.305137 -9.520240 -7.305137
+ S 0 0.000000 10.392305 6.000000 -10.392305 -6.000000
+ S 0 0.000000 11.086554 4.592201 -11.086554 -4.592201
+ S 0 0.000000 11.591110 3.105829 -11.591110 -3.105829
+ S 0 0.000000 11.897338 1.566314 -11.897338 -1.566314
S 0 0.000000 12.000000 0.000000 -12.000000 0.000000
- S 16777215 0.000000 11.897338 -1.566314 -11.897338 1.566314
- S 16777215 0.000000 11.591110 -3.105829 -11.591110 3.105829
- S 16777215 0.000000 11.086554 -4.592201 -11.086554 4.592201
- S 16777215 0.000000 10.392305 -6.000000 -10.392305 6.000000
- S 16777215 0.000000 9.520240 -7.305137 -9.520240 7.305137
- S 16777215 0.000000 8.485281 -8.485281 -8.485281 8.485281
- S 16777215 0.000000 7.305137 -9.520240 -7.305137 9.520240
- S 16777215 0.000000 6.000000 -10.392305 -6.000000 10.392305
- S 16777215 0.000000 4.592201 -11.086554 -4.592201 11.086554
- S 16777215 0.000000 3.105829 -11.591110 -3.105829 11.591110
- S 16777215 0.000000 1.566314 -11.897338 -1.566314 11.897338
+ S 0 0.000000 11.897338 -1.566314 -11.897338 1.566314
+ S 0 0.000000 11.591110 -3.105829 -11.591110 3.105829
+ S 0 0.000000 11.086554 -4.592201 -11.086554 4.592201
+ S 0 0.000000 10.392305 -6.000000 -10.392305 6.000000
+ S 0 0.000000 9.520240 -7.305137 -9.520240 7.305137
+ S 0 0.000000 8.485281 -8.485281 -8.485281 8.485281
+ S 0 0.000000 7.305137 -9.520240 -7.305137 9.520240
+ S 0 0.000000 6.000000 -10.392305 -6.000000 10.392305
+ S 0 0.000000 4.592201 -11.086554 -4.592201 11.086554
+ S 0 0.000000 3.105829 -11.591110 -3.105829 11.591110
+ S 0 0.000000 1.566314 -11.897338 -1.566314 11.897338
A 11579568 0.046875 12.000000 0.000000 0.000000 0.000000 360.000000
L 11579568 0.046875 -13.000000 13.000000 13.000000 13.000000
L 11579568 0.046875 13.000000 13.000000 13.000000 -13.000000
@@ -1015,30 +1015,30 @@ TURNOUT O "Ross 27"" 7.5d Turn Table TUTA27M/A"
E -5.166226 12.472374 337.500000
E -3.494057 13.039999 345.000000
E -1.762104 13.384506 352.500000
- S 16777215 0.000000 0.000000 13.500000 0.000000 -13.500000
- S 16777215 0.000000 1.762104 13.384506 -1.762104 -13.384506
- S 16777215 0.000000 3.494057 13.039999 -3.494057 -13.039999
- S 16777215 0.000000 5.166226 12.472374 -5.166226 -12.472374
- S 16777215 0.000000 6.750000 11.691343 -6.750000 -11.691343
- S 16777215 0.000000 8.218279 10.710270 -8.218279 -10.710270
- S 16777215 0.000000 9.545942 9.545942 -9.545942 -9.545942
- S 16777215 0.000000 10.710270 8.218279 -10.710270 -8.218279
- S 16777215 0.000000 11.691343 6.750000 -11.691343 -6.750000
- S 16777215 0.000000 12.472374 5.166226 -12.472374 -5.166226
- S 16777215 0.000000 13.039999 3.494057 -13.039999 -3.494057
- S 16777215 0.000000 13.384506 1.762104 -13.384506 -1.762104
+ S 0 0.000000 0.000000 13.500000 0.000000 -13.500000
+ S 0 0.000000 1.762104 13.384506 -1.762104 -13.384506
+ S 0 0.000000 3.494057 13.039999 -3.494057 -13.039999
+ S 0 0.000000 5.166226 12.472374 -5.166226 -12.472374
+ S 0 0.000000 6.750000 11.691343 -6.750000 -11.691343
+ S 0 0.000000 8.218279 10.710270 -8.218279 -10.710270
+ S 0 0.000000 9.545942 9.545942 -9.545942 -9.545942
+ S 0 0.000000 10.710270 8.218279 -10.710270 -8.218279
+ S 0 0.000000 11.691343 6.750000 -11.691343 -6.750000
+ S 0 0.000000 12.472374 5.166226 -12.472374 -5.166226
+ S 0 0.000000 13.039999 3.494057 -13.039999 -3.494057
+ S 0 0.000000 13.384506 1.762104 -13.384506 -1.762104
S 0 0.000000 13.500000 0.000000 -13.500000 0.000000
- S 16777215 0.000000 13.384506 -1.762104 -13.384506 1.762104
- S 16777215 0.000000 13.039999 -3.494057 -13.039999 3.494057
- S 16777215 0.000000 12.472374 -5.166226 -12.472374 5.166226
- S 16777215 0.000000 11.691343 -6.750000 -11.691343 6.750000
- S 16777215 0.000000 10.710270 -8.218279 -10.710270 8.218279
- S 16777215 0.000000 9.545942 -9.545942 -9.545942 9.545942
- S 16777215 0.000000 8.218279 -10.710270 -8.218279 10.710270
- S 16777215 0.000000 6.750000 -11.691343 -6.750000 11.691343
- S 16777215 0.000000 5.166226 -12.472374 -5.166226 12.472374
- S 16777215 0.000000 3.494057 -13.039999 -3.494057 13.039999
- S 16777215 0.000000 1.762104 -13.384506 -1.762104 13.384506
+ S 0 0.000000 13.384506 -1.762104 -13.384506 1.762104
+ S 0 0.000000 13.039999 -3.494057 -13.039999 3.494057
+ S 0 0.000000 12.472374 -5.166226 -12.472374 5.166226
+ S 0 0.000000 11.691343 -6.750000 -11.691343 6.750000
+ S 0 0.000000 10.710270 -8.218279 -10.710270 8.218279
+ S 0 0.000000 9.545942 -9.545942 -9.545942 9.545942
+ S 0 0.000000 8.218279 -10.710270 -8.218279 10.710270
+ S 0 0.000000 6.750000 -11.691343 -6.750000 11.691343
+ S 0 0.000000 5.166226 -12.472374 -5.166226 12.472374
+ S 0 0.000000 3.494057 -13.039999 -3.494057 13.039999
+ S 0 0.000000 1.762104 -13.384506 -1.762104 13.384506
A 11579568 0.046875 13.500000 0.000000 0.000000 0.000000 360.000000
L 11579568 0.046875 -14.500000 14.500000 14.500000 14.500000
L 11579568 0.046875 14.500000 14.500000 14.500000 -14.500000
@@ -1118,30 +1118,30 @@ TURNOUT O "Ross 33"" 7.5d Turn Table TUTA33M/A"
E -6.314277 15.244012 337.500000
E -4.270514 15.937776 345.000000
E -2.153682 16.358840 352.500000
- S 16777215 0.000000 0.000000 16.500000 0.000000 -16.500000
- S 16777215 0.000000 2.153682 16.358840 -2.153682 -16.358840
- S 16777215 0.000000 4.270514 15.937776 -4.270514 -15.937776
- S 16777215 0.000000 6.314277 15.244012 -6.314277 -15.244012
- S 16777215 0.000000 8.250000 14.289419 -8.250000 -14.289419
- S 16777215 0.000000 10.044564 13.090330 -10.044564 -13.090330
- S 16777215 0.000000 11.667262 11.667262 -11.667262 -11.667262
- S 16777215 0.000000 13.090330 10.044564 -13.090330 -10.044564
- S 16777215 0.000000 14.289419 8.250000 -14.289419 -8.250000
- S 16777215 0.000000 15.244012 6.314277 -15.244012 -6.314277
- S 16777215 0.000000 15.937776 4.270514 -15.937776 -4.270514
- S 16777215 0.000000 16.358840 2.153682 -16.358840 -2.153682
+ S 0 0.000000 0.000000 16.500000 0.000000 -16.500000
+ S 0 0.000000 2.153682 16.358840 -2.153682 -16.358840
+ S 0 0.000000 4.270514 15.937776 -4.270514 -15.937776
+ S 0 0.000000 6.314277 15.244012 -6.314277 -15.244012
+ S 0 0.000000 8.250000 14.289419 -8.250000 -14.289419
+ S 0 0.000000 10.044564 13.090330 -10.044564 -13.090330
+ S 0 0.000000 11.667262 11.667262 -11.667262 -11.667262
+ S 0 0.000000 13.090330 10.044564 -13.090330 -10.044564
+ S 0 0.000000 14.289419 8.250000 -14.289419 -8.250000
+ S 0 0.000000 15.244012 6.314277 -15.244012 -6.314277
+ S 0 0.000000 15.937776 4.270514 -15.937776 -4.270514
+ S 0 0.000000 16.358840 2.153682 -16.358840 -2.153682
S 0 0.000000 16.500000 0.000000 -16.500000 0.000000
- S 16777215 0.000000 16.358840 -2.153682 -16.358840 2.153682
- S 16777215 0.000000 15.937776 -4.270514 -15.937776 4.270514
- S 16777215 0.000000 15.244012 -6.314277 -15.244012 6.314277
- S 16777215 0.000000 14.289419 -8.250000 -14.289419 8.250000
- S 16777215 0.000000 13.090330 -10.044564 -13.090330 10.044564
- S 16777215 0.000000 11.667262 -11.667262 -11.667262 11.667262
- S 16777215 0.000000 10.044564 -13.090330 -10.044564 13.090330
- S 16777215 0.000000 8.250000 -14.289419 -8.250000 14.289419
- S 16777215 0.000000 6.314277 -15.244012 -6.314277 15.244012
- S 16777215 0.000000 4.270514 -15.937776 -4.270514 15.937776
- S 16777215 0.000000 2.153682 -16.358840 -2.153682 16.358840
+ S 0 0.000000 16.358840 -2.153682 -16.358840 2.153682
+ S 0 0.000000 15.937776 -4.270514 -15.937776 4.270514
+ S 0 0.000000 15.244012 -6.314277 -15.244012 6.314277
+ S 0 0.000000 14.289419 -8.250000 -14.289419 8.250000
+ S 0 0.000000 13.090330 -10.044564 -13.090330 10.044564
+ S 0 0.000000 11.667262 -11.667262 -11.667262 11.667262
+ S 0 0.000000 10.044564 -13.090330 -10.044564 13.090330
+ S 0 0.000000 8.250000 -14.289419 -8.250000 14.289419
+ S 0 0.000000 6.314277 -15.244012 -6.314277 15.244012
+ S 0 0.000000 4.270514 -15.937776 -4.270514 15.937776
+ S 0 0.000000 2.153682 -16.358840 -2.153682 16.358840
A 11579568 0.046875 16.500000 0.000000 0.000000 0.000000 360.000000
L 11579568 0.046875 -17.500000 17.500000 17.500000 17.500000
L 11579568 0.046875 17.500000 17.500000 17.500000 -17.500000
@@ -1167,10 +1167,10 @@ TURNOUT O "Ross 18"" 5 Stop Transfer Table (3.5"" Trk Center) TT185"
E 0.000000 -14.000000 270.000000
E 18.000000 -14.000000 90.000000
S 0 0.000000 0.000000 0.000000 18.000000 0.000000
- S 16777215 0.000000 0.000000 -3.500000 18.000000 -3.500000
- S 16777215 0.000000 0.000000 -7.000000 18.000000 -7.000000
- S 16777215 0.000000 0.000000 -10.500000 18.000000 -10.500000
- S 16777215 0.000000 0.000000 -14.000000 18.000000 -14.000000
+ S 0 0.000000 0.000000 -3.500000 18.000000 -3.500000
+ S 0 0.000000 0.000000 -7.000000 18.000000 -7.000000
+ S 0 0.000000 0.000000 -10.500000 18.000000 -10.500000
+ S 0 0.000000 0.000000 -14.000000 18.000000 -14.000000
L 11579568 0.750000 -0.375000 3.8750000 18.375000 3.875000
L 11579568 0.750000 18.375000 4.250000 18.375000 -18.250000
L 11579568 0.750000 18.375000 -17.875000 -0.375000 -17.875000
@@ -1216,15 +1216,15 @@ TURNOUT O "Ross 18"" 10 Stop Transfer Table (3.5"" Trk Center) TT1810"
E 0.000000 -31.500000 270.000000
E 18.000000 -31.500000 90.000000
S 0 0.000000 0.000000 0.000000 18.000000 0.000000
- S 16777215 0.000000 0.000000 -3.500000 18.000000 -3.500000
- S 16777215 0.000000 0.000000 -7.000000 18.000000 -7.000000
- S 16777215 0.000000 0.000000 -10.500000 18.000000 -10.500000
- S 16777215 0.000000 0.000000 -14.000000 18.000000 -14.000000
- S 16777215 0.000000 0.000000 -17.500000 18.000000 -17.500000
- S 16777215 0.000000 0.000000 -21.000000 18.000000 -21.000000
- S 16777215 0.000000 0.000000 -24.500000 18.000000 -24.500000
- S 16777215 0.000000 0.000000 -28.000000 18.000000 -28.000000
- S 16777215 0.000000 0.000000 -31.500000 18.000000 -31.500000
+ S 0 0.000000 0.000000 -3.500000 18.000000 -3.500000
+ S 0 0.000000 0.000000 -7.000000 18.000000 -7.000000
+ S 0 0.000000 0.000000 -10.500000 18.000000 -10.500000
+ S 0 0.000000 0.000000 -14.000000 18.000000 -14.000000
+ S 0 0.000000 0.000000 -17.500000 18.000000 -17.500000
+ S 0 0.000000 0.000000 -21.000000 18.000000 -21.000000
+ S 0 0.000000 0.000000 -24.500000 18.000000 -24.500000
+ S 0 0.000000 0.000000 -28.000000 18.000000 -28.000000
+ S 0 0.000000 0.000000 -31.500000 18.000000 -31.500000
L 11579568 0.750000 -0.375000 3.8750000 18.375000 3.875000
L 11579568 0.750000 18.375000 4.250000 18.375000 -35.750000
L 11579568 0.750000 18.375000 -35.375000 -0.375000 -35.375000
@@ -1255,10 +1255,10 @@ TURNOUT O "Ross 27"" 5 Stop Transfer Table (3.5"" Trk Center) TT275"
E 0.000000 -14.000000 270.000000
E 27.000000 -14.000000 90.000000
S 0 0.000000 0.000000 0.000000 27.000000 0.000000
- S 16777215 0.000000 0.000000 -3.500000 27.000000 -3.500000
- S 16777215 0.000000 0.000000 -7.000000 27.000000 -7.000000
- S 16777215 0.000000 0.000000 -10.500000 27.000000 -10.500000
- S 16777215 0.000000 0.000000 -14.000000 27.000000 -14.000000
+ S 0 0.000000 0.000000 -3.500000 27.000000 -3.500000
+ S 0 0.000000 0.000000 -7.000000 27.000000 -7.000000
+ S 0 0.000000 0.000000 -10.500000 27.000000 -10.500000
+ S 0 0.000000 0.000000 -14.000000 27.000000 -14.000000
L 11579568 0.750000 -0.375000 3.8750000 27.375000 3.875000
L 11579568 0.750000 27.375000 4.250000 27.375000 -18.250000
L 11579568 0.750000 27.375000 -17.875000 -0.375000 -17.875000
@@ -1304,15 +1304,15 @@ TURNOUT O "Ross 27"" 10 Stop Transfer Table (3.5"" Trk Center) TT2710"
E 0.000000 -31.500000 270.000000
E 27.000000 -31.500000 90.000000
S 0 0.000000 0.000000 0.000000 27.000000 0.000000
- S 16777215 0.000000 0.000000 -3.500000 27.000000 -3.500000
- S 16777215 0.000000 0.000000 -7.000000 27.000000 -7.000000
- S 16777215 0.000000 0.000000 -10.500000 27.000000 -10.500000
- S 16777215 0.000000 0.000000 -14.000000 27.000000 -14.000000
- S 16777215 0.000000 0.000000 -17.500000 27.000000 -17.500000
- S 16777215 0.000000 0.000000 -21.000000 27.000000 -21.000000
- S 16777215 0.000000 0.000000 -24.500000 27.000000 -24.500000
- S 16777215 0.000000 0.000000 -28.000000 27.000000 -28.000000
- S 16777215 0.000000 0.000000 -31.500000 27.000000 -31.500000
+ S 0 0.000000 0.000000 -3.500000 27.000000 -3.500000
+ S 0 0.000000 0.000000 -7.000000 27.000000 -7.000000
+ S 0 0.000000 0.000000 -10.500000 27.000000 -10.500000
+ S 0 0.000000 0.000000 -14.000000 27.000000 -14.000000
+ S 0 0.000000 0.000000 -17.500000 27.000000 -17.500000
+ S 0 0.000000 0.000000 -21.000000 27.000000 -21.000000
+ S 0 0.000000 0.000000 -24.500000 27.000000 -24.500000
+ S 0 0.000000 0.000000 -28.000000 27.000000 -28.000000
+ S 0 0.000000 0.000000 -31.500000 27.000000 -31.500000
L 11579568 0.750000 -0.375000 3.8750000 27.375000 3.875000
L 11579568 0.750000 27.375000 4.250000 27.375000 -35.750000
L 11579568 0.750000 27.375000 -35.375000 -0.375000 -35.375000
@@ -1343,10 +1343,10 @@ TURNOUT O "Ross 36"" 5 Stop Transfer Table (3.5"" Trk Center) TT365"
E 0.000000 -14.000000 270.000000
E 36.000000 -14.000000 90.000000
S 0 0.000000 0.000000 0.000000 36.000000 0.000000
- S 16777215 0.000000 0.000000 -3.500000 36.000000 -3.500000
- S 16777215 0.000000 0.000000 -7.000000 36.000000 -7.000000
- S 16777215 0.000000 0.000000 -10.500000 36.000000 -10.500000
- S 16777215 0.000000 0.000000 -14.000000 36.000000 -14.000000
+ S 0 0.000000 0.000000 -3.500000 36.000000 -3.500000
+ S 0 0.000000 0.000000 -7.000000 36.000000 -7.000000
+ S 0 0.000000 0.000000 -10.500000 36.000000 -10.500000
+ S 0 0.000000 0.000000 -14.000000 36.000000 -14.000000
L 11579568 0.750000 -0.375000 3.8750000 36.375000 3.875000
L 11579568 0.750000 36.375000 4.250000 36.375000 -18.250000
L 11579568 0.750000 36.375000 -17.875000 -0.375000 -17.875000
@@ -1392,15 +1392,15 @@ TURNOUT O "Ross 36"" 10 Stop Transfer Table (3.5"" Trk Center) TT3610"
E 0.000000 -31.500000 270.000000
E 36.000000 -31.500000 90.000000
S 0 0.000000 0.000000 0.000000 36.000000 0.000000
- S 16777215 0.000000 0.000000 -3.500000 36.000000 -3.500000
- S 16777215 0.000000 0.000000 -7.000000 36.000000 -7.000000
- S 16777215 0.000000 0.000000 -10.500000 36.000000 -10.500000
- S 16777215 0.000000 0.000000 -14.000000 36.000000 -14.000000
- S 16777215 0.000000 0.000000 -17.500000 36.000000 -17.500000
- S 16777215 0.000000 0.000000 -21.000000 36.000000 -21.000000
- S 16777215 0.000000 0.000000 -24.500000 36.000000 -24.500000
- S 16777215 0.000000 0.000000 -28.000000 36.000000 -28.000000
- S 16777215 0.000000 0.000000 -31.500000 36.000000 -31.500000
+ S 0 0.000000 0.000000 -3.500000 36.000000 -3.500000
+ S 0 0.000000 0.000000 -7.000000 36.000000 -7.000000
+ S 0 0.000000 0.000000 -10.500000 36.000000 -10.500000
+ S 0 0.000000 0.000000 -14.000000 36.000000 -14.000000
+ S 0 0.000000 0.000000 -17.500000 36.000000 -17.500000
+ S 0 0.000000 0.000000 -21.000000 36.000000 -21.000000
+ S 0 0.000000 0.000000 -24.500000 36.000000 -24.500000
+ S 0 0.000000 0.000000 -28.000000 36.000000 -28.000000
+ S 0 0.000000 0.000000 -31.500000 36.000000 -31.500000
L 11579568 0.750000 -0.375000 3.8750000 36.375000 3.875000
L 11579568 0.750000 36.375000 4.250000 36.375000 -35.750000
L 11579568 0.750000 36.375000 -35.375000 -0.375000 -35.375000
diff --git a/app/lib/params/On14mm KBScale.xtp b/app/lib/params/On14mm KBScale.xtp
index 9c4b351..a61ca4d 100644
--- a/app/lib/params/On14mm KBScale.xtp
+++ b/app/lib/params/On14mm KBScale.xtp
@@ -36,27 +36,30 @@ TURNOUT On14mm "KB Scale On14mm Type2 Turnout Left KB-0002L"
S 0 0 0.000000 0.000000 4.133858 0.000000
C 0 0.000000 9.921260 0.000000 9.921260 157.500000 22.500000
END
-TURNOUT On14mm "KB Scale On14mm Type3 Turnout Right KB-0003R"
- P "Normal" 1
- P "Reverse" 2 3
+TURNOUT On14mm "KB Scale On14mm Type3 Turnout Left KB-0003L"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
E 4.960630 0.000000 90.000000
- E 4.363660 -0.548316 104.323945
- S 0 0 0.000000 0.000000 4.960630 0.000000
- S 0 0 0.000000 0.000000 0.596970 0.000000
- C 0 0.000000 -17.637795 0.596970 -17.637795 0.000000 14.323645
+ E 4.363660 0.548316 75.000000
+ S 0 0.000000 0.000000 0.000000 0.749828 0.000000
+ S 0 0.000000 0.749828 0.000000 4.960630 0.000000
+ C 0 0.000000 -11.906429 0.749843 11.906429 164.999924 15.000152
+ S 0 0.000000 3.831466 0.405709 4.363660 0.548316
END
-TURNOUT On14mm "KB Scale On14mm Type3 Turnout Left KB-0003L"
- P "Normal" 1
- P "Reverse" 2 3
+TURNOUT On14mm "KB Scale On14mm Type3 Turnout Right KB-0003R"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
E 4.960630 0.000000 90.000000
- E 4.363660 0.548316 75.676055
- S 0 0 0.000000 0.000000 4.960630 0.000000
- S 0 0 0.000000 0.000000 0.596970 0.000000
- C 0 0.000000 -17.637795 0.596970 17.637795 165.676055 14.323645
+ E 4.363660 -0.548316 105.000000
+ S 0 0.000000 0.000000 0.000000 0.749828 0.000000
+ S 0 0.000000 0.749828 0.000000 4.960630 0.000000
+ C 0 0.000000 11.906429 0.749780 -11.906429 0.000076 15.000152
+ S 0 0.000000 3.831466 -0.405709 4.363660 -0.548316
END
+
SUBCONTENTS KB Scale On14mm scale - Track Straight
TURNOUT On14mm "KB Scale On14mm 105mm Straight KB-0001"
P "Normal" 1
diff --git a/app/lib/params/On30-FastTrack.xtp b/app/lib/params/On30-FastTrack.xtp
index c4eb922..2b8c4b0 100644
--- a/app/lib/params/On30-FastTrack.xtp
+++ b/app/lib/params/On30-FastTrack.xtp
@@ -1,4 +1,4 @@
-CONTENTS On30/On2 FastTrack Turnouts
+CONTENTS On30/On2½ FastTrack Turnouts
#Created By Dwyane Ward 13 SEP 2009
TURNOUT On30 "Fast Tracks #4 WYE On30 TT-On30-Y-4"
U "Wye Turnout" "" "Fast Tracks" "#4 WYE On30" "TT-ON30-Y-4" 9.937500 7.180762 0.625000 0.625000 7.180762 9.937500 0.000000 0.031250 0
diff --git a/app/lib/params/On30.xtp b/app/lib/params/On30.xtp
index 49f99cb..1c0184f 100644
--- a/app/lib/params/On30.xtp
+++ b/app/lib/params/On30.xtp
@@ -1,6 +1,6 @@
-CONTENTS On2 Turnouts Trackwork
+CONTENTS On30 Turnouts Trackwork
# Regular Turnout Design by - 21.900000 2.540000 12.000000 21.900000
-TURNOUT On2 "Peco LH turnout SL-E596"
+TURNOUT On30 "Peco LH turnout SL-E596"
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -11,7 +11,7 @@ TURNOUT On2 "Peco LH turnout SL-E596"
C 0 0.000000 -31.101230 0.648641 31.101230 167.999924 12.000152
S 0 0.000000 7.114985 0.679653 8.622047 1.000000
END
-TURNOUT On2 "Peco RH turnout SL-E595"
+TURNOUT On30 "Peco RH turnout SL-E595"
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -23,7 +23,7 @@ TURNOUT On2 "Peco RH turnout SL-E595"
S 0 0.000000 7.114985 -0.679653 8.622047 -1.000000
END
# Wye Turnout Design by - 22.000000 1.770000 6.000000 6.000000 1.770000 22.000000
-TURNOUT On2 "Peco Y turnout SL-E597"
+TURNOUT On30 "Peco Y turnout SL-E597"
P "Left" 1 2 3
P "Right" 1 4 5
E 0.000000 0.000000 270.000000
@@ -36,7 +36,7 @@ TURNOUT On2 "Peco Y turnout SL-E597"
S 0 0.000000 3.406761 -0.144553 8.661417 -0.696850
END
# Crossing Design by Dave Bullis - 6.000000 19.000000 6.000000
-TURNOUT On2 "Atlas 19D Crossing 171"
+TURNOUT On30 "Atlas 19D Crossing 171"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 6.000000 0.000000 90.000000
@@ -46,7 +46,7 @@ TURNOUT On2 "Atlas 19D Crossing 171"
S 0 0 0.163444 0.976704 5.836556 -0.976704
END
# Crossing Design by Dave Bullis - 4.500000 25.000000 4.500000
-TURNOUT On2 "Atlas 25D Crossing 172"
+TURNOUT On30 "Atlas 25D Crossing 172"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 4.500000 0.000000 90.000000
@@ -56,7 +56,7 @@ TURNOUT On2 "Atlas 25D Crossing 172"
S 0 0 0.210807 0.950890 4.289193 -0.950890
END
# Crossing Design by Dave Bullis - 4.000000 30.000000 4.000000
-TURNOUT On2 "Atlas 30D Crossing 173"
+TURNOUT On30 "Atlas 30D Crossing 173"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 4.000000 0.000000 90.000000
@@ -66,7 +66,7 @@ TURNOUT On2 "Atlas 30D Crossing 173"
S 0 0 0.267949 0.999999 3.732051 -0.999999
END
# Crossing Design by Dave Bullis - 3.000000 45.000000 3.000000
-TURNOUT On2 "Atlas 45D Crossing 174"
+TURNOUT On30 "Atlas 45D Crossing 174"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 3.000000 0.000000 90.000000
@@ -76,7 +76,7 @@ TURNOUT On2 "Atlas 45D Crossing 174"
S 0 0 0.439339 1.060659 2.560661 -1.060659
END
# Crossing Design by Dave Bullis - 3.000000 60.000000 3.000000
-TURNOUT On2 "Atlas 60D Crossing 175"
+TURNOUT On30 "Atlas 60D Crossing 175"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 3.000000 0.000000 90.000000
@@ -86,7 +86,7 @@ TURNOUT On2 "Atlas 60D Crossing 175"
S 0 0 0.749999 1.299037 2.250001 -1.299037
END
# Crossing Design by Dave Bullis - 6.000000 90.000000 6.000000
-TURNOUT On2 "Atlas 90D Crossing 176"
+TURNOUT On30 "Atlas 90D Crossing 176"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 6.000000 0.000000 90.000000
@@ -96,7 +96,7 @@ TURNOUT On2 "Atlas 90D Crossing 176"
S 0 0 2.999996 3.000000 3.000004 -3.000000
END
# Crossing Design by Dave Bullis - 9.000000 12.500000 9.000000
-TURNOUT On2 "Atlas 12.5D Crossing 177"
+TURNOUT On30 "Atlas 12.5D Crossing 177"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 9.000000 0.000000 90.000000
@@ -106,7 +106,7 @@ TURNOUT On2 "Atlas 12.5D Crossing 177"
S 0 0 0.106668 0.973977 8.893332 -0.973977
END
#NMRA-Std TO 2.125 0.125 43.000 5.062 15.000 14.250 0.562 0.938
-TURNOUT On2 "NMRA On2 #4 Right 4R"
+TURNOUT On30 "NMRA On30 #4 Right 4R"
P "Normal" 1
P "Reverse" 2 3 4
E 0.000000 0.000000 270.000000
@@ -117,7 +117,7 @@ TURNOUT On2 "NMRA On2 #4 Right 4R"
C 0 0 15.000000 0.945768 -15.078575 4.508989 9.197539
S 0 0 4.500000 -0.505743 6.000000 -0.879369
END
-TURNOUT On2 "NMRA On2 #4 Left 4L"
+TURNOUT On30 "NMRA On30 #4 Left 4L"
P "Normal" 1
P "Reverse" 2 3 4
E 0.000000 0.000000 270.000000
@@ -129,7 +129,7 @@ TURNOUT On2 "NMRA On2 #4 Left 4L"
S 0 0 4.500000 0.505743 6.000000 0.879369
END
#NMRA-Std TO 2.125 0.125 43.000 5.688 26.000 11.417 0.625 1.062
-TURNOUT On2 "NMRA On2 #5 Right 5R"
+TURNOUT On30 "NMRA On30 #5 Right 5R"
P "Normal" 1
P "Reverse" 2 3 4
E 0.000000 0.000000 270.000000
@@ -140,7 +140,7 @@ TURNOUT On2 "NMRA On2 #5 Right 5R"
C 0 0 26.000000 0.113855 -26.047101 4.436359 6.535830
S 0 0 5.062500 -0.522389 6.750000 -0.858914
END
-TURNOUT On2 "NMRA On2 #5 Left 5L"
+TURNOUT On30 "NMRA On30 #5 Left 5L"
P "Normal" 1
P "Reverse" 2 3 4
E 0.000000 0.000000 270.000000
@@ -152,7 +152,7 @@ TURNOUT On2 "NMRA On2 #5 Left 5L"
S 0 0 5.062500 0.522389 6.750000 0.858914
END
#NMRA-Std TO 2.125 0.125 43.000 6.250 43.000 9.533 0.688 1.188
-TURNOUT On2 "NMRA On2 #6 Right 6R"
+TURNOUT On30 "NMRA On30 #6 Right 6R"
P "Normal" 1
P "Reverse" 2 3 4
E 0.000000 0.000000 270.000000
@@ -163,7 +163,7 @@ TURNOUT On2 "NMRA On2 #6 Right 6R"
C 0 0 43.000000 -1.222000 -42.994541 4.464260 4.613750
S 0 0 5.562500 -0.533141 7.437500 -0.845275
END
-TURNOUT On2 "NMRA On2 #6 Left 6L"
+TURNOUT On30 "NMRA On30 #6 Left 6L"
P "Normal" 1
P "Reverse" 2 3 4
E 0.000000 0.000000 270.000000
@@ -175,7 +175,7 @@ TURNOUT On2 "NMRA On2 #6 Left 6L"
S 0 0 5.562500 0.533141 7.437500 0.845275
END
#NMRA-Std TO 3.188 0.125 117.000 8.438 49.000 8.167 0.750 1.312
-TURNOUT On2 "NMRA On2 #7 Right 7R"
+TURNOUT On30 "NMRA On30 #7 Right 7R"
P "Normal" 1
P "Reverse" 2 3 4
E 0.000000 0.000000 270.000000
@@ -186,7 +186,7 @@ TURNOUT On2 "NMRA On2 #7 Right 7R"
C 0 0 49.000000 0.932089 -49.073066 2.638188 5.286165
S 0 0 7.687500 -0.540969 9.750000 -0.835045
END
-TURNOUT On2 "NMRA On2 #7 Left 7L"
+TURNOUT On30 "NMRA On30 #7 Left 7L"
P "Normal" 1
P "Reverse" 2 3 4
E 0.000000 0.000000 270.000000
@@ -198,7 +198,7 @@ TURNOUT On2 "NMRA On2 #7 Left 7L"
S 0 0 7.687500 0.540969 9.750000 0.835045
END
#NMRA-Std TO 3.188 0.125 117.000 9.000 67.000 7.150 0.875 1.500
-TURNOUT On2 "NMRA On2 #8 Right 8R"
+TURNOUT On30 "NMRA On30 #8 Right 8R"
P "Normal" 1
P "Reverse" 2 3 4
E 0.000000 0.000000 270.000000
@@ -209,7 +209,7 @@ TURNOUT On2 "NMRA On2 #8 Right 8R"
C 0 0 67.000000 0.064081 -67.052156 2.671994 4.238128
S 0 0 8.125000 -0.538837 10.500000 -0.835301
END
-TURNOUT On2 "NMRA On2 #8 Left 8L"
+TURNOUT On30 "NMRA On30 #8 Left 8L"
P "Normal" 1
P "Reverse" 2 3 4
E 0.000000 0.000000 270.000000
@@ -220,7 +220,7 @@ TURNOUT On2 "NMRA On2 #8 Left 8L"
C 0 0 -67.000000 0.064081 67.052156 173.089878 4.238128
S 0 0 8.125000 0.538837 10.500000 0.835301
END
-TURNOUT On2 "On30Guy LH Ind Switch "
+TURNOUT On30 "On30Guy LH Ind Switch "
U "Regular Turnout" "" "On30Guy" "LH Ind Switch" "" "RH Ind Switch" "" 5.365560 30.000000 1.235150 6.175790 0.000000 0.000000 0
P "Normal" 1 2
P "Reverse" 1 3 4
@@ -232,7 +232,7 @@ TURNOUT On2 "On30Guy LH Ind Switch "
C 0 0.000000 -6.798637 1.404551 6.798637 149.999924 30.000152
S 0 0.000000 4.803873 0.910852 5.365560 1.235150
END
-TURNOUT On2 "On30Guy RH Ind Switch "
+TURNOUT On30 "On30Guy RH Ind Switch "
U "Regular Turnout" "" "On30Guy" "LH Ind Switch" "" "RH Ind Switch" "" 5.365560 30.000000 1.235150 6.175790 0.000000 0.000000 0
P "Normal" 1 2
P "Reverse" 1 3 4
@@ -244,7 +244,7 @@ TURNOUT On2 "On30Guy RH Ind Switch "
C 0 0.000000 6.798637 1.404515 -6.798637 0.000076 30.000152
S 0 0.000000 4.803873 -0.910852 5.365560 -1.235150
END
-TURNOUT On2 "On30Guy 9"" Y Ind Switch "
+TURNOUT On30 "On30Guy 9"" Y Ind Switch "
U "Wye Turnout" "" "On30Guy" "9"" Y Ind Switch" "" 5.406000 30.000000 1.195500 1.195500 30.000000 5.406000 0.000000 0.000000 0
P "Left" 1 2 3
P "Right" 1 4 5
@@ -257,28 +257,28 @@ TURNOUT On2 "On30Guy 9"" Y Ind Switch "
C 0 0.000000 6.502684 1.592932 -6.502684 0.000076 30.000152
S 0 0.000000 4.844312 -0.871202 5.406000 -1.195500
END
-TURNOUT On2 "On30Guy 12"" Industrial Curve "
+TURNOUT On30 "On30Guy 12"" Industrial Curve "
U "Curved Section" "" "On30Guy" "12"" Industrial Curve" "" 12.000000 30.000000 0.000000 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 5.999995 1.607693 60.000000
C 0 0.000000 -12.000000 0.000016 12.000000 150.000076 30.000000
END
-TURNOUT On2 "On30Guy 9"" Industrial Curve "
+TURNOUT On30 "On30Guy 9"" Industrial Curve "
U "Curved Section" "" "On30Guy" "9"" Industrial Curve" "" 9.000000 30.000000 0.000000 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.499997 1.205769 60.000000
C 0 0.000000 -9.000000 0.000012 9.000000 150.000076 30.000000
END
-TURNOUT On2 "On30Guy 4"" Ind Straight "
+TURNOUT On30 "On30Guy 4"" Ind Straight "
U "Straight Section" "" "On30Guy" "4"" Ind Straight" "" 4.000000 0.000000 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.000000 0.000000 90.000000
S 0 0.000000 0.000000 0.000000 4.000000 0.000000
END
-TURNOUT On2 "On30Guy 60deg Ind. Crossing "
+TURNOUT On30 "On30Guy 60deg Ind. Crossing "
U "Crossing" "" "On30Guy" "60deg Ind. Crossing" "" 6.000000 60.000000 6.000000 0.000000 0.000000 0
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
@@ -288,7 +288,7 @@ TURNOUT On2 "On30Guy 60deg Ind. Crossing "
S 0 0.000000 0.000000 0.000000 6.000000 0.000000
S 0 0.000000 1.499994 2.598073 4.500006 -2.598073
END
-TURNOUT On2 "On30Guy 90deg Ind. Crossing "
+TURNOUT On30 "On30Guy 90deg Ind. Crossing "
U "Crossing" "" "On30Guy" "90deg Ind. Crossing" "" 4.000000 90.000000 4.000000 0.000000 0.000000 0
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
@@ -298,7 +298,7 @@ TURNOUT On2 "On30Guy 90deg Ind. Crossing "
S 0 0.000000 0.000000 0.000000 4.000000 0.000000
S 0 0.000000 2.000005 2.000000 1.999995 -2.000000
END
-TURNOUT On2 "On30Guy 30deg Ind. Crossing "
+TURNOUT On30 "On30Guy 30deg Ind. Crossing "
U "Crossing" "" "On30Guy" "30deg Ind. Crossing" "" 6.000000 30.000000 6.000000 0.000000 0.000000 0
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
@@ -308,7 +308,7 @@ TURNOUT On2 "On30Guy 30deg Ind. Crossing "
S 0 0.000000 0.000000 0.000000 6.000000 0.000000
S 0 0.000000 0.401921 1.499995 5.598079 -1.499995
END
-TURNOUT On2 "On30Guy 45deg Ind. Crossing "
+TURNOUT On30 "On30Guy 45deg Ind. Crossing "
U "Crossing" "" "On30Guy" "45deg Ind. Crossing" "" 6.000000 45.000000 6.000000 0.000000 0.000000 0
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
@@ -318,7 +318,7 @@ TURNOUT On2 "On30Guy 45deg Ind. Crossing "
S 0 0.000000 0.000000 0.000000 6.000000 0.000000
S 0 0.000000 0.878675 2.121316 5.121325 -2.121316
END
-TURNOUT On2 "On30Guy 12"" Ind. LH Switch "
+TURNOUT On30 "On30Guy 12"" Ind. LH Switch "
U "Regular Turnout" "" "On30Guy" "12"" Ind. LH Switch" "" "12"" Ind. RH Switch" "" 5.840000 30.000000 1.550000 6.000000 0.000000 0.000000 0
P "Normal" 1 2
P "Reverse" 1 3 4
@@ -330,7 +330,7 @@ TURNOUT On2 "On30Guy 12"" Ind. LH Switch "
C 0 0.000000 -9.148708 0.703959 9.148708 149.999924 30.000152
S 0 0.000000 5.278319 1.225705 5.840000 1.550000
END
-TURNOUT On2 "On30Guy 12"" Ind. RH Switch "
+TURNOUT On30 "On30Guy 12"" Ind. RH Switch "
U "Regular Turnout" "" "On30Guy" "12"" Ind. LH Switch" "" "12"" Ind. RH Switch" "" 5.840000 30.000000 1.550000 6.000000 0.000000 0.000000 0
P "Normal" 1 2
P "Reverse" 1 3 4
@@ -342,7 +342,7 @@ TURNOUT On2 "On30Guy 12"" Ind. RH Switch "
C 0 0.000000 9.148708 0.703911 -9.148708 0.000076 30.000152
S 0 0.000000 5.278319 -1.225705 5.840000 -1.550000
END
-TURNOUT On2 "On30Guy 12"" Ind. Y Switch "
+TURNOUT On30 "On30Guy 12"" Ind. Y Switch "
U "Wye Turnout" "" "On30Guy" "12"" Ind. Y Switch" "" 5.840000 30.000000 1.550000 1.550000 30.000000 5.840000 0.000000 0.000000 0
P "Left" 1 2 3
P "Right" 1 4 5
@@ -355,112 +355,112 @@ TURNOUT On2 "On30Guy 12"" Ind. Y Switch "
C 0 0.000000 9.148708 0.703911 -9.148708 0.000076 30.000152
S 0 0.000000 5.278319 -1.225705 5.840000 -1.550000
END
-TURNOUT On2 "On30Guy 8"" Ind. Straight "
+TURNOUT On30 "On30Guy 8"" Ind. Straight "
U "Straight Section" "" "On30Guy" "8"" Ind. Straight" "" 8.000000 0.000000 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 8.000000 0.000000 90.000000
S 0 0.000000 0.000000 0.000000 8.000000 0.000000
END
-TURNOUT On2 "On30Guy 9"" Ind. Half Curve "
+TURNOUT On30 "On30Guy 9"" Ind. Half Curve "
U "Curved Section" "" "On30Guy" "9"" Ind. Half Curve" "" 9.000000 15.000000 0.000000 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 2.329369 0.306667 75.000000
C 0 0.000000 -9.000000 0.000012 9.000000 165.000076 15.000000
END
-TURNOUT On2 "On30Guy 12"" Ind. Half Curve "
+TURNOUT On30 "On30Guy 12"" Ind. Half Curve "
U "Curved Section" "" "On30Guy" "12"" Ind. Half Curve" "" 12.000000 15.000000 0.000000 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 3.105826 0.408889 75.000000
C 0 0.000000 -12.000000 0.000016 12.000000 165.000076 15.000000
END
-TURNOUT On2 "On30Guy 6"" Industrial Straight "
+TURNOUT On30 "On30Guy 6"" Industrial Straight "
U "Straight Section" "" "On30Guy" "6"" Industrial Straight" "" 6.000000 0.000000 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 6.000000 0.000000 90.000000
S 0 0.000000 0.000000 0.000000 6.000000 0.000000
END
-TURNOUT On2 "On30Guy 2"" Industrial Straight "
+TURNOUT On30 "On30Guy 2"" Industrial Straight "
U "Straight Section" "" "On30Guy" "2"" Industrial Straight" "" 2.000000 0.000000 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 2.000000 0.000000 90.000000
S 0 0.000000 0.000000 0.000000 2.000000 0.000000
END
-TURNOUT On2 " 15"" 30' "
+TURNOUT On30 " 15"" 30' "
U "Curved Section" "Geren W. Mortensen, Jr." "" "15"" 30'" "" 15.000000 30.000000 0.000000 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 7.499994 2.009616 60.000000
C 0 0.000000 -15.000000 0.000020 15.000000 150.000076 30.000000
END
-TURNOUT On2 " 15"" 15' "
+TURNOUT On30 " 15"" 15' "
U "Curved Section" "Geren W. Mortensen, Jr." "" "15"" 15'" "" 15.000000 15.000000 0.000000 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 3.882282 0.511112 75.000000
C 0 0.000000 -15.000000 0.000020 15.000000 165.000076 15.000000
END
-TURNOUT On2 " 18"" 30' "
+TURNOUT On30 " 18"" 30' "
U "Curved Section" "Geren W. Mortensen, Jr." "" "18"" 30'" "" 18.000000 30.000000 0.000000 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 8.999993 2.411539 60.000000
C 0 0.000000 -18.000000 0.000024 18.000000 150.000076 30.000000
END
-TURNOUT On2 " 18"" 15' "
+TURNOUT On30 " 18"" 15' "
U "Curved Section" "Geren W. Mortensen, Jr." "" "18"" 15'" "" 18.000000 15.000000 0.000000 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.658739 0.613334 75.000000
C 0 0.000000 -18.000000 0.000024 18.000000 165.000076 15.000000
END
-TURNOUT On2 " 18"" 10' "
+TURNOUT On30 " 18"" 10' "
U "Curved Section" "Geren W. Mortensen, Jr." "" "18"" 10'" "" 18.000000 10.000000 0.000000 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 3.125665 0.273460 80.000000
C 0 0.000000 -18.000000 0.000024 18.000000 170.000076 10.000000
END
-TURNOUT On2 " 21"" 30' "
+TURNOUT On30 " 21"" 30' "
U "Curved Section" "Geren W. Mortensen, Jr." "" "21"" 30'" "" 21.000000 30.000000 0.000000 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 10.499992 2.813462 60.000000
C 0 0.000000 -21.000000 0.000028 21.000000 150.000076 30.000000
END
-TURNOUT On2 " 21"" 15' "
+TURNOUT On30 " 21"" 15' "
U "Curved Section" "Geren W. Mortensen, Jr." "" "21"" 15'" "" 21.000000 15.000000 0.000000 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 5.435195 0.715556 75.000000
C 0 0.000000 -21.000000 0.000028 21.000000 165.000076 15.000000
END
-TURNOUT On2 " 21"" 10' "
+TURNOUT On30 " 21"" 10' "
U "Curved Section" "Geren W. Mortensen, Jr." "" "21"" 10'" "" 21.000000 10.000000 0.000000 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 3.646609 0.319037 80.000000
C 0 0.000000 -21.000000 0.000028 21.000000 170.000076 10.000000
END
-TURNOUT On2 " 24"" 30' "
+TURNOUT On30 " 24"" 30' "
U "Curved Section" "Geren W. Mortensen, Jr." "" "24"" 30'" "" 24.000000 30.000000 0.000000 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 11.999991 3.215385 60.000000
C 0 0.000000 -24.000000 0.000032 24.000000 150.000076 30.000000
END
-TURNOUT On2 " 24"" 15' "
+TURNOUT On30 " 24"" 15' "
U "Curved Section" "Geren W. Mortensen, Jr." "" "24"" 15'" "" 24.000000 15.000000 0.000000 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 6.211652 0.817779 75.000000
C 0 0.000000 -24.000000 0.000032 24.000000 165.000076 15.000000
END
-TURNOUT On2 " 24"" 10' "
+TURNOUT On30 " 24"" 10' "
U "Curved Section" "Geren W. Mortensen, Jr." "" "24"" 10'" "" 24.000000 10.000000 0.000000 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
diff --git a/app/lib/params/Piko-A.xtp b/app/lib/params/Piko-A.xtp
index bf56883..8a33628 100644
--- a/app/lib/params/Piko-A.xtp
+++ b/app/lib/params/Piko-A.xtp
@@ -41,31 +41,31 @@ TURNOUT HO "Piko A Track Straight G62 62mm 55205"
SUBCONTENTS Piko A Track - Curve Track
-TURNOUT HO "Piko A Track Curved R1 360mm 30 55211"
+TURNOUT HO "Piko A Track Curved R1 360mm 30° 55211"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 7.086614 -1.898853 120.000000
C 0 0 14.173228 0.000000 -14.173228 0.000000 30.000000
END
-TURNOUT HO "Piko A Track Curved R2 422mm 30 55212"
+TURNOUT HO "Piko A Track Curved R2 422mm 30° 55212"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 8.304724 -2.225244 120.000000
C 0 0 16.609449 0.000000 -16.609449 0.000000 30.000000
END
-TURNOUT HO "Piko A Track Curved R3 484mm 30 55213"
+TURNOUT HO "Piko A Track Curved R3 484mm 30° 55213"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 9.522638 -2.551583 120.000000
C 0 0 19.045276 0.000000 -19.045276 0.000000 30.000000
END
-TURNOUT HO "Piko A Track Curved R4 546mm 30 55214"
+TURNOUT HO "Piko A Track Curved R4 546mm 30° 55214"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 10.748031 -2.879926 120.000000
C 0 0 21.496063 0.000000 -21.496063 0.000000 30.000000
END
-TURNOUT HO "Piko A Track Curved R9 907.98mm 15 55219"
+TURNOUT HO "Piko A Track Curved R9 907.98mm 15° 55219"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 9.251966 -1.218044 105.000000
@@ -74,7 +74,7 @@ TURNOUT HO "Piko A Track Curved R9 907.98mm 15 55219"
SUBCONTENTS Piko A Track - Track Turnouts
-TURNOUT HO "Piko A Track WL, 239mm, 15 55220"
+TURNOUT HO "Piko A Track WL, 239mm, 15° 55220"
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -83,7 +83,7 @@ TURNOUT HO "Piko A Track WL, 239mm, 15 55220"
S 0 0 0.000000 0.000000 9.412205 0.000000
C 0 0 35.746850 0.000000 35.746850 165.000000 15.000000
END
-TURNOUT HO "Piko A Track WR, 239mm, 15 55221"
+TURNOUT HO "Piko A Track WR, 239mm, 15° 55221"
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -92,7 +92,7 @@ TURNOUT HO "Piko A Track WR, 239mm, 15 55221"
S 0 0 0.000000 0.000000 9.412205 0.000000
C 0 0 35.746850 0.000000 -35.746850 0.000000 15.000000
END
-TURNOUT HO "Piko A Track BWL, R2, 30 55222"
+TURNOUT HO "Piko A Track BWL, R2, 30° 55222"
P "Normal" 1 3
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -102,7 +102,7 @@ TURNOUT HO "Piko A Track BWL, R2, 30 55222"
C 0 0 16.609449 0.000000 16.609449 150.000000 30.000000
C 0 0 -16.609449 2.440945 16.609449 150.000000 30.000000
END
-TURNOUT HO "Piko A Track BWR, R2, 30 55223"
+TURNOUT HO "Piko A Track BWR, R2, 30° 55223"
P "Normal" 1 3
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -112,7 +112,7 @@ TURNOUT HO "Piko A Track BWR, R2, 30 55223"
C 0 0 16.609449 0.000000 -16.609449 0.000000 30.000000
C 0 0 16.609449 2.440945 -16.609449 0.000000 30.000000
END
-TURNOUT HO "Piko A Track DKW, 239mm, 15 55224"
+TURNOUT HO "Piko A Track DKW, 239mm, 15° 55224"
P "Normal" 1 0 2
P "Reverse" 3 0 4
E 0.000000 0.000000 270.000000
@@ -124,7 +124,7 @@ TURNOUT HO "Piko A Track DKW, 239mm, 15 55224"
C 0 0 35.746850 0.000000 35.746850 165.000000 15.000000
C 0 0 35.746850 9.412205 -35.746850 -15.000000 15.000000
END
-TURNOUT HO "Piko A Track W3, 239mm, 15 55225"
+TURNOUT HO "Piko A Track W3, 239mm, 15° 55225"
P "Normal" 1
P "Left" 2
P "Right" 3
@@ -136,7 +136,7 @@ TURNOUT HO "Piko A Track W3, 239mm, 15 55225"
C 0 0 35.746850 0.000000 35.746850 165.000000 15.000000
C 0 0 35.746850 0.000000 -35.746850 0.000000 15.000000
END
-TURNOUT HO "Piko A Track Y, 239mm, 15 55226"
+TURNOUT HO "Piko A Track Y, 239mm, 15° 55226"
P "Left" 1
P "Right" 2
E 0.000000 0.000000 270.000000
@@ -145,7 +145,7 @@ TURNOUT HO "Piko A Track Y, 239mm, 15 55226"
C 0 0 35.746850 0.000000 35.746850 165.000000 15.000000
C 0 0 35.746850 0.000000 -35.746850 0.000000 15.000000
END
-TURNOUT HO "Piko A Track BWL-R3, R3, 30 55227"
+TURNOUT HO "Piko A Track BWL-R3, R3, 30° 55227"
P "Normal" 1 3
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -155,7 +155,7 @@ TURNOUT HO "Piko A Track BWL-R3, R3, 30 55227"
C 0 0 19.045276 0.000000 19.045276 150.000000 30.000000
C 0 0 -19.045276 2.440945 19.045276 150.000000 30.000000
END
-TURNOUT HO "Piko A Track BWR-R3, R3, 30 55228"
+TURNOUT HO "Piko A Track BWR-R3, R3, 30° 55228"
P "Normal" 1 3
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -168,7 +168,7 @@ TURNOUT HO "Piko A Track BWR-R3, R3, 30 55228"
SUBCONTENTS Piko A Track - Track Crossing
-TURNOUT HO "Piko A Track K15, 239mm, 15 55240"
+TURNOUT HO "Piko A Track K15, 239mm, 15° 55240"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 0.160239 -1.218044 255.000000
@@ -177,7 +177,7 @@ TURNOUT HO "Piko A Track K15, 239mm, 15 55240"
S 0 0 0.000000 0.000000 9.412205 0.000000
S 0 0 0.160239 -1.218044 9.251966 1.218044
END
-TURNOUT HO "Piko A Track K30, 119mm, 30 55241"
+TURNOUT HO "Piko A Track K30, 119mm, 30° 55241"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 0.315262 -1.176575 240.000000
diff --git a/app/lib/params/Piko-g.xtp b/app/lib/params/Piko-g.xtp
index ea16452..ac870ee 100644
--- a/app/lib/params/Piko-g.xtp
+++ b/app/lib/params/Piko-g.xtp
@@ -46,25 +46,25 @@ TURNOUT G "Piko G-G95 95mm (3.74) Straight 35204"
SUBCONTENTS Piko G Scale Track - Curves
-TURNOUT G "Piko G-R1 600mm (23.62) Dia. 30 Curve 35211"
+TURNOUT G "Piko G-R1 600mm (23.62) Dia. 30° Curve 35211"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 11.811024 -3.164754 120.000000
C 0 0.000000 23.622047 0.000000 -23.622047 0.000000 30.000000
END
-TURNOUT G "Piko G-R3 921.54mm (36.28) Dia. 30 Curve 35213"
+TURNOUT G "Piko G-R3 921.54mm (36.28) Dia. 30° Curve 35213"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 18.140551 -4.860746 120.000000
C 0 0.000000 36.281102 0.000000 -36.281102 0.000000 30.000000
END
-TURNOUT G "Piko G-R5 1243.08mm (48.94) Dia. 15 Curve 35215"
+TURNOUT G "Piko G-R5 1243.08mm (48.94) Dia. 15° Curve 35215"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 12.666645 -1.667595 105.000000
C 0 0.000000 48.940157 0.000000 -48.940157 0.000000 15.000000
END
-TURNOUT G "Piko G-R5 1243.08mm (48.94) Dia. 7.5 Curve 35216"
+TURNOUT G "Piko G-R5 1243.08mm (48.94) Dia. 7.5° Curve 35216"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 6.387972 -0.418690 97.500000
@@ -73,7 +73,7 @@ TURNOUT G "Piko G-R5 1243.08mm (48.94) Dia. 7.5 Curve 35216"
SUBCONTENTS Piko G Scale Track - Crossings
-TURNOUT G "Piko K30 30 Crossing 35240"
+TURNOUT G "Piko K30 30° Crossing 35240"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 12.598425 0.000000 90.000000
@@ -82,7 +82,7 @@ TURNOUT G "Piko K30 30 Crossing 35240"
S 0 0.000000 0.000000 0.000000 12.598425 0.000000
S 0 0.000000 0.843934 3.149606 11.754491 -3.149606
END
-TURNOUT G "Piko K60 60 Crossing 35241"
+TURNOUT G "Piko K60 60° Crossing 35241"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 6.162992 0.000000 90.000000
diff --git a/app/lib/params/ProZ-Track.xtp b/app/lib/params/ProZ-Track.xtp
index ad76b2f..c6f1941 100644
--- a/app/lib/params/ProZ-Track.xtp
+++ b/app/lib/params/ProZ-Track.xtp
@@ -33,13 +33,13 @@ TURNOUT Z "Tokyo Marui Pro Z Straight Feeder Track PZR-06"
END
SUBCONTENTS Tokyo Marui Pro Z Track - Curve Track
-TURNOUT Z "Tokyo Marui Pro Z Curved 145mm 45 PZR-04"
+TURNOUT Z "Tokyo Marui Pro Z Curved 145mm 45° PZR-04"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.036633 -1.672028 135.000000
C 0 0 5.708661 0.000000 -5.708661 0.000000 45.000000
END
-TURNOUT Z "Tokyo Marui Pro Z Curved 170mm 45 PZR-05"
+TURNOUT Z "Tokyo Marui Pro Z Curved 170mm 45° PZR-05"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.732604 -1.960309 135.000000
diff --git a/app/lib/params/RocoGeoLineHO.xtp b/app/lib/params/RocoGeoLineHO.xtp
index 028f13d..52e3774 100644
--- a/app/lib/params/RocoGeoLineHO.xtp
+++ b/app/lib/params/RocoGeoLineHO.xtp
@@ -46,7 +46,7 @@ TURNOUT HO "Roco Geoline Track Straight 100mm 61113"
SUBCONTENTS Roco Geoline Track - Curve Track
-TURNOUT HO "Roco Geoline Track Curved R2 358mm 30 61122"
+TURNOUT HO "Roco Geoline Track Curved R2 358mm 30° 61122"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 7.047244 -1.888303 120.000000
@@ -54,7 +54,7 @@ TURNOUT HO "Roco Geoline Track Curved R2 358mm 30 61122"
A 11579568 0.053333 14.894488 0.000000 -14.094488 0.000000 30.000000
A 11579568 0.053333 13.294488 0.000000 -14.094488 0.000000 30.000000
END
-TURNOUT HO "Roco Geoline Track Curved R3 434.5mm 30 61123"
+TURNOUT HO "Roco Geoline Track Curved R3 434.5mm 30° 61123"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 8.553150 -2.291810 120.000000
@@ -62,7 +62,7 @@ TURNOUT HO "Roco Geoline Track Curved R3 434.5mm 30 61123"
A 11579568 0.053333 17.906299 0.000000 -17.106299 0.000000 30.000000
A 11579568 0.053333 16.306299 0.000000 -17.106299 0.000000 30.000000
END
-TURNOUT HO "Roco Geoline Track Curved R4 511mm 30 61124"
+TURNOUT HO "Roco Geoline Track Curved R4 511mm 30° 61124"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 10.059055 -2.695316 120.000000
@@ -70,7 +70,7 @@ TURNOUT HO "Roco Geoline Track Curved R4 511mm 30 61124"
A 11579568 0.053333 20.918110 0.000000 -20.118110 0.000000 30.000000
A 11579568 0.053333 19.318110 0.000000 -20.118110 0.000000 30.000000
END
-TURNOUT HO "Roco Geoline Track Counter Curved 2GB mm 22.5 61128"
+TURNOUT HO "Roco Geoline Track Counter Curved 2GB mm 22.5° 61128"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 7.578740 -1.505906 112.500000
@@ -78,7 +78,7 @@ TURNOUT HO "Roco Geoline Track Counter Curved 2GB mm 22.5 61128"
A 11579568 0.053333 20.604201 0.000000 -19.804201 0.000000 22.500000
A 11579568 0.053333 19.004201 0.000000 -19.804201 0.000000 22.500000
END
-TURNOUT HO "Roco Geoline Track Curved R2 358mm 7.5 61129"
+TURNOUT HO "Roco Geoline Track Curved R2 358mm 7.5° 61129"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 1.839700 -0.120580 97.500000
@@ -86,7 +86,7 @@ TURNOUT HO "Roco Geoline Track Curved R2 358mm 7.5 61129"
A 11579568 0.053333 14.894488 0.000000 -14.094488 0.000000 7.500000
A 11579568 0.053333 13.294488 0.000000 -14.094488 0.000000 7.500000
END
-TURNOUT HO "Roco Geoline Track Curved R3 434.5mm 7.5 61130"
+TURNOUT HO "Roco Geoline Track Curved R3 434.5mm 7.5° 61130"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 2.232820 -0.146347 97.500000
diff --git a/app/lib/params/S-SHelper S-Trax.xtp b/app/lib/params/S-SHelper S-Trax.xtp
index 5be8270..0fdb724 100644
--- a/app/lib/params/S-SHelper S-Trax.xtp
+++ b/app/lib/params/S-SHelper S-Trax.xtp
@@ -164,7 +164,7 @@ TURNOUT S "S Helper Showcase Line C131 5"" Third Rail 671"
L 0 0.053333 0.000000 1.281250 5.000000 1.281250
END
-
+
SUBCONTENTS S Helper Showcase Line Code 131 - Turnout
TURNOUT S "S Helper Showcase Line #3 Left Turnout 299"
P "Normal" 1 2
diff --git a/app/lib/params/S-Trax.xtp b/app/lib/params/S-Trax.xtp
index 6c8f96d..a1d29ce 100644
--- a/app/lib/params/S-Trax.xtp
+++ b/app/lib/params/S-Trax.xtp
@@ -164,7 +164,7 @@ TURNOUT S "Showcase Line C131 5"" Third Rail 671"
L 0 0.053333 0.000000 1.281250 5.000000 1.281250
END
-
+
SUBCONTENTS Showcase Line Code 131 - Turnout
TURNOUT S "Showcase Line #3 Left Turnout 299"
P "Normal" 1 2
@@ -198,4 +198,3 @@ TURNOUT S "Showcase Line #3 Right Turnout 298"
L3 0 0.000000 8.602487 -3.172591 0 9.359354 -3.609583 0
L3 0 0.000000 10.356817 -1.226543 0 10.640643 -1.390415 0
END
-
diff --git a/app/lib/params/T-Eishindo.xtp b/app/lib/params/T-Eishindo.xtp
index 11e5da4..6bcb11c 100644
--- a/app/lib/params/T-Eishindo.xtp
+++ b/app/lib/params/T-Eishindo.xtp
@@ -1,321 +1,337 @@
-CONTENTS Eishindo T Scale Track Components
-
-SUBCONTENTS Eishindo T Scale - Straight Track
-TURNOUT T "Eishindo Straight 30mm R-012"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.181102 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.181102 0.000000
- L 11579568 0.023333 0.000000 0.157480 1.181102 0.157480
- L 11579568 0.023333 0.000000 -0.157480 1.181102 -0.157480
- END
-TURNOUT T "Eishindo Straight 60mm R-003"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.362205 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.362205 0.000000
- L 11579568 0.023333 0.000000 0.157480 2.362205 0.157480
- L 11579568 0.023333 0.000000 -0.157480 2.362205 -0.157480
- END
-TURNOUT T "Eishindo Straight 120mm R-023"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.724409 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.724409 0.000000
- L 11579568 0.023333 0.000000 0.157480 4.724409 0.157480
- L 11579568 0.023333 0.000000 -0.157480 4.724409 -0.157480
- END
-
-SUBCONTENTS Eishindo T Scale - Curve Track
-TURNOUT T "Eishindo Curved 120mm 15 R-013"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.222767 -0.160980 105.000000
- C 0 0 4.724409 0.000000 -4.724409 0.000000 15.000000
- A 11579568 0.023333 4.881889 0.000000 -4.724409 0.000000 15.000000
- A 11579568 0.023333 4.566929 0.000000 -4.724409 0.000000 15.000000
- END
-TURNOUT T "Eishindo Curved 120mm 30 R-004"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.362205 -.632951 120.000000
- C 0 0 4.724409 0.000000 -4.724409 0.000000 30.000000
- A 11579568 0.023333 4.881889 0.000000 -4.724409 0.000000 30.000000
- A 11579568 0.023333 4.566929 0.000000 -4.724409 0.000000 30.000000
- END
-TURNOUT T "Eishindo Curved 132.5mm 15 R-014"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.350139 -0.177749 105.000000
- C 0 0 5.216535 0.000000 -5.216535 0.000000 15.000000
- A 11579568 0.023333 5.374015 0.000000 -5.216535 0.000000 15.000000
- A 11579568 0.023333 5.059055 0.000000 -5.216535 0.000000 15.000000
- END
-TURNOUT T "Eishindo Curved 132.5mm 30 R-005"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.608268 -0.698883 120.000000
- C 0 0 5.216535 0.000000 -5.216535 0.000000 30.000000
- A 11579568 0.023333 5.374015 0.000000 -5.216535 0.000000 30.000000
- A 11579568 0.023333 5.059055 0.000000 -5.216535 0.000000 30.000000
- END
-TURNOUT T "Eishindo Curved 145mm 15 R-015"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.477510 -0.194518 105.000000
- C 0 0 5.708661 0.000000 -5.708661 0.000000 15.000000
- A 11579568 0.023333 5.866141 0.000000 -5.708661 0.000000 15.000000
- A 11579568 0.023333 5.551181 0.000000 -5.708661 0.000000 15.000000
- END
-TURNOUT T "Eishindo Curved 145mm 30 R-006"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.854331 -0.764816 120.000000
- C 0 0 5.708661 0.000000 -5.708661 0.000000 30.000000
- A 11579568 0.023333 5.866141 0.000000 -5.708661 0.000000 30.000000
- A 11579568 0.023333 5.551181 0.000000 -5.708661 0.000000 30.000000
- END
-TURNOUT T "Eishindo Curved 157.5mm 15 R-024"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.604882 -0.211287 105.000000
- C 0 0 6.200787 0.000000 -6.200787 0.000000 15.000000
- A 11579568 0.023333 6.358267 0.000000 -6.200787 0.000000 15.000000
- A 11579568 0.023333 6.043307 0.000000 -6.200787 0.000000 15.000000
- END
-TURNOUT T "Eishindo Curved 157.5mm 30 R-025"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.100394 -0.830748 120.000000
- C 0 0 6.200787 0.000000 -6.200787 0.000000 30.000000
- A 11579568 0.023333 6.358267 0.000000 -6.200787 0.000000 30.000000
- A 11579568 0.023333 6.043307 0.000000 -6.200787 0.000000 30.000000
- END
-
-SUBCONTENTS Eishindo T Scale - Misc Track
-TURNOUT T "Eishindo S Curved 90mm R-018L"
- P "Normal" 1 2 3
- E 0.000000 0.000000 270.000000
- E 3.543307 0.492126 90.000000
- C 0 0 -5.708661 0.000000 5.708661 168.000000 12.000000
- S 0 0 1.186897 0.124748 2.356410 0.367378
- C 0 0 5.708661 3.543307 -5.216535 348.000000 12.000000
- A 11579568 0.023333 5.866141 0.000000 5.708661 168.000000 12.000000
- A 11579568 0.023333 5.551181 0.000000 5.708661 168.000000 12.000000
- A 11579568 0.023333 5.866141 3.543307 -5.216535 348.000000 12.000000
- A 11579568 0.023333 5.551181 3.543307 -5.216535 348.000000 12.000000
- L 11579568 0.023333 1.154156 0.278787 2.3323668 0.521417
- L 11579568 0.023333 1.219639 -0.029291 2.389151 0.213339
- END
-TURNOUT T "Eishindo S Curved 90mm R-018R"
- P "Normal" 1 2 3
- E 0.000000 0.000000 270.000000
- E 3.543307 -0.492126 90.000000
- C 0 0 5.708661 0.000000 -5.708661 0.000000 12.000000
- S 0 0 1.186897 -0.124748 2.356410 -0.367378
- C 0 0 -5.708661 3.543307 5.216535 180.000000 12.000000
- A 11579568 0.023333 5.866141 0.000000 -5.708661 0.000000 12.000000
- A 11579568 0.023333 5.551181 0.000000 -5.708661 0.000000 12.000000
- A 11579568 0.023333 5.866141 3.543307 5.216535 180.000000 12.000000
- A 11579568 0.023333 5.551181 3.543307 5.216535 180.000000 12.000000
- L 11579568 0.023333 1.154156 -0.278787 2.3323668 -0.521417
- L 11579568 0.023333 1.219639 0.029291 2.389151 -0.213339
- END
-TURNOUT T "Eishindo 60mm 90 degree Crossover R-019"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 2.362205 0.000000 90.000000
- E 1.181102 1.181102 0.000000
- E 1.181102 -1.181102 180.000000
- S 0 0 0.000000 0.000000 2.362205 0.000000
- S 0 0 1.181102 1.181102 1.181102 -1.181102
- L 11579568 0.023333 0.000000 0.157480 1.023622 0.157480
- L 11579568 0.023333 1.338582 0.157480 2.362205 0.157480
- L 11579568 0.023333 0.000000 -0.157480 1.023622 -0.157480
- L 11579568 0.023333 1.338582 -0.157480 2.362205 -0.157480
- L 11579568 0.023333 1.023622 1.181102 1.023622 0.157480
- L 11579568 0.023333 1.023622 -0.157480 1.023622 -1.181102
- L 11579568 0.023333 1.338582 1.181102 1.338582 0.157480
- L 11579568 0.023333 1.338582 -0.157480 1.338582 -1.181102
- END
-TURNOUT T "Eishindo 60mm 30 degree Crossover R-029"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 2.362205 0.000000 90.000000
- E 0.158237 0.590549 300.000000
- E 2.203968 -0.590549 120.000000
- S 0 0.000000 0.000000 0.000000 2.362205 0.000000
- S 0 0.000000 0.158237 0.590549 2.203968 -0.590549
- L 11579568 0.023333 0.000000 0.157480 0.590551 0.157480
- L 11579568 0.023333 0.000000 -0.157480 1.107283 -0.157480
- L 11579568 0.023333 1.254921 0.157480 2.362205 0.157480
- L 11579568 0.023333 1.771653 -0.157480 2.362205 -0.157480
- L 11579568 0.023333 0.079496 0.454168 0.590551 0.157480
- L 11579568 0.023333 0.236977 0.726931 1.254921 0.157480
- L 11579568 0.023333 1.107283 -0.157480 2.125228 -0.726931
- L 11579568 0.023333 1.771653 -0.157480 2.282708 -0.454168
- END
-TURNOUT T "Eishindo Straight 60mm Feeder Track R-022"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.362205 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.362205 0.000000
- L 11579568 0.023333 0.000000 0.157480 2.362205 0.157480
- L 11579568 0.023333 0.000000 -0.157480 2.362205 -0.157480
- F 12566463 0.000000 4
- 0.500000 0.100000 0
- 0.600000 0.100000 0
- 0.600000 -0.100000 0
- 0.500000 -0.100000 0
- END
-TURNOUT T "Eishindo Straight 30mm Feeder Track R-036"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.181102 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.181102 0.000000
- L 11579568 0.023333 0.000000 0.157480 1.181102 0.157480
- L 11579568 0.023333 0.000000 -0.157480 1.181102 -0.157480
- F 12566463 0.000000 4
- 0.500000 0.100000 0
- 0.600000 0.100000 0
- 0.600000 -0.100000 0
- 0.500000 -0.100000 0
- END
-TURNOUT T "Eishindo 30mm Isolating Track R-030"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.181102 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.181102 0.000000
- L 11579568 0.023333 0.000000 0.157480 1.181102 0.157480
- L 11579568 0.023333 0.000000 -0.157480 1.181102 -0.157480
- F 0 0.000000 4
- 0.300000 0.060000 0
- 0.350000 0.060000 0
- 0.350000 -0.060000 0
- 0.300000 -0.060000 0
- END
-TURNOUT T "Eishindo Level Grade Crossing 60mm Track R-008"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.362205 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.362205 0.000000
- L 11579568 0.023333 0.000000 0.157480 2.362205 0.157480
- L 11579568 0.023333 0.000000 -0.157480 2.362205 -0.157480
- F 12566463 0.000000 4
- 0.590551 0.150000 0
- 1.771654 0.150000 0
- 1.771654 0.600000 0
- 0.590551 0.600000 0
- F 12566463 0.000000 4
- 0.590551 -0.150000 0
- 1.771654 -0.150000 0
- 1.771654 -0.600000 0
- 0.590551 -0.600000 0
- END
-TURNOUT T "Eishindo Level Grade Crossing 30mm Track R-008-2"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.181102 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.181102 0.000000
- L 11579568 0.023333 0.000000 0.157480 1.181102 0.157480
- L 11579568 0.023333 0.000000 -0.157480 1.181102 -0.157480
- F 12566463 0.000000 4
- 0.000000 0.150000 0
- 1.181102 0.150000 0
- 1.181102 0.600000 0
- 0.000000 0.600000 0
- F 12566463 0.000000 4
- 0.000000 -0.150000 0
- 1.181102 -0.150000 0
- 1.181102 -0.600000 0
- 0.000000 -0.600000 0
- END
-TURNOUT T "Eishindo Road Crossing 30mm Track R-026"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.181102 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.181102 0.000000
- L 11579568 0.023333 0.000000 0.157480 1.181102 0.157480
- L 11579568 0.023333 0.000000 -0.157480 1.181102 -0.157480
- F 12566463 0.000000 4
- 0.000000 0.150000 0
- 1.181102 0.150000 0
- 1.181102 0.600000 0
- 0.000000 0.600000 0
- F 12566463 0.000000 4
- 0.000000 -0.150000 0
- 1.181102 -0.150000 0
- 1.181102 -0.600000 0
- 0.000000 -0.600000 0
- END
-
-SUBCONTENTS Eishindo T Scale - Turnout
-TURNOUT T "Eishindo Left Turnout R-016"
- P "Normal" 4
- P "Reverse" 1 2 3
- E 0.000000 0.000000 270.000000
- E 3.543307 0.000000 90.000000
- E 3.543307 0.492126 90.000000
- C 0 0 -5.708661 0.000000 5.708661 168.000000 12.000000
- S 0 0 1.186897 0.124748 2.356410 0.367378
- C 0 0 5.708661 3.543307 -5.216535 348.000000 12.000000
- S 0 0 0.000000 0.000000 3.543307 0.000000
- A 11579568 0.023333 5.551181 0.000000 5.708661 168.000000 12.000000
- A 11579568 0.023333 5.866141 3.543307 -5.216535 348.000000 12.000000
- A 11579568 0.023333 5.551181 3.543307 -5.216535 348.000000 12.000000
- L 11579568 0.023333 2.375000 0.157480 3.543307 0.157480
- L 11579568 0.023333 0.000000 -0.157480 3.543307 -0.157480
- L 11579568 0.023333 1.154156 0.278787 2.3323668 0.521417
- END
-TURNOUT T "Eishindo Right Turnout R-017"
- P "Normal" 4
- P "Reverse" 1 2 3
- E 0.000000 0.000000 270.000000
- E 3.543307 -0.492126 90.000000
- E 3.543307 0.000000 90.000000
- C 0 0 5.708661 0.000000 -5.708661 0.000000 12.000000
- S 0 0 1.186897 -0.124748 2.356410 -0.367378
- C 0 0 -5.708661 3.543307 5.216535 180.000000 12.000000
- S 0 0 0.000000 0.000000 3.543307 0.000000
- A 11579568 0.023333 5.551181 0.000000 -5.708661 0.000000 12.000000
- A 11579568 0.023333 5.866141 3.543307 5.216535 180.000000 12.000000
- A 11579568 0.023333 5.551181 3.543307 5.216535 180.000000 12.000000
- L 11579568 0.023333 2.375000 -0.157480 3.543307 -0.157480
- L 11579568 0.023333 0.000000 0.157480 3.543307 0.157480
- L 11579568 0.023333 1.154156 -0.278787 2.3323668 -0.521417
- END
-TURNOUT T "Eishindo Left One Way Turnout R-031"
- P "Normal" 4
- P "Reverse" 1 2 3
- E 0.000000 0.000000 270.000000
- E 3.543307 0.000000 90.000000
- E 3.543307 0.492126 90.000000
- C 0 0 -5.708661 0.000000 5.708661 168.000000 12.000000
- S 0 0 1.186897 0.124748 2.356410 0.367378
- C 0 0 5.708661 3.543307 -5.216535 348.000000 12.000000
- S 0 0 0.000000 0.000000 3.543307 0.000000
- A 11579568 0.023333 5.551181 0.000000 5.708661 168.000000 12.000000
- A 11579568 0.023333 5.866141 3.543307 -5.216535 348.000000 12.000000
- A 11579568 0.023333 5.551181 3.543307 -5.216535 348.000000 12.000000
- L 11579568 0.023333 2.375000 0.157480 3.543307 0.157480
- L 11579568 0.023333 0.000000 -0.157480 3.543307 -0.157480
- L 11579568 0.023333 1.154156 0.278787 2.3323668 0.521417
- END
-TURNOUT T "Eishindo Right One Way Turnout R-032"
- P "Normal" 4
- P "Reverse" 1 2 3
- E 0.000000 0.000000 270.000000
- E 3.543307 -0.492126 90.000000
- E 3.543307 0.000000 90.000000
- C 0 0 5.708661 0.000000 -5.708661 0.000000 12.000000
- S 0 0 1.186897 -0.124748 2.356410 -0.367378
- C 0 0 -5.708661 3.543307 5.216535 180.000000 12.000000
- S 0 0 0.000000 0.000000 3.543307 0.000000
- A 11579568 0.023333 5.551181 0.000000 -5.708661 0.000000 12.000000
- A 11579568 0.023333 5.866141 3.543307 5.216535 180.000000 12.000000
- A 11579568 0.023333 5.551181 3.543307 5.216535 180.000000 12.000000
- L 11579568 0.023333 2.375000 -0.157480 3.543307 -0.157480
- L 11579568 0.023333 0.000000 0.157480 3.543307 0.157480
- L 11579568 0.023333 1.154156 -0.278787 2.3323668 -0.521417
- END
-
+CONTENTS Eishindo T Scale Track Components
+
+SUBCONTENTS Eishindo T Scale - Straight Track
+TURNOUT T "Eishindo Straight 30mm R-012"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.181102 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.181102 0.000000
+ L 11579568 0.023333 0.000000 0.157480 1.181102 0.157480
+ L 11579568 0.023333 0.000000 -0.157480 1.181102 -0.157480
+ END
+TURNOUT T "Eishindo Straight 60mm R-003"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.362205 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.362205 0.000000
+ L 11579568 0.023333 0.000000 0.157480 2.362205 0.157480
+ L 11579568 0.023333 0.000000 -0.157480 2.362205 -0.157480
+ END
+TURNOUT T "Eishindo Straight 120mm R-023"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.724409 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.724409 0.000000
+ L 11579568 0.023333 0.000000 0.157480 4.724409 0.157480
+ L 11579568 0.023333 0.000000 -0.157480 4.724409 -0.157480
+ END
+
+SUBCONTENTS Eishindo T Scale - Curve Track
+TURNOUT T "Eishindo Track Set Curve 60mm 90° RF-060S/060S-2"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.362205 -2.362205 180.000000
+ C 0 0 2.362205 0.000000 -2.362205 0.000000 90.000000
+ A 11579568 0.023333 2.519685 0.000000 -2.362205 0.000000 90.000000
+ A 11579568 0.023333 2.204725 0.000000 -2.362205 0.000000 90.000000
+ END
+TURNOUT T "Eishindo Track Set Curve 70mm 90° RF-070S/070S-2"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.755906 -2.755906 180.000000
+ C 0 0 2.755906 0.000000 -2.755906 0.000000 90.000000
+ A 11579568 0.023333 2.913386 0.000000 -2.755906 0.000000 90.000000
+ A 11579568 0.023333 2.598426 0.000000 -2.755906 0.000000 90.000000
+ END
+TURNOUT T "Eishindo Curve 120mm 15° R-013"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.222767 -0.160980 105.000000
+ C 0 0 4.724409 0.000000 -4.724409 0.000000 15.000000
+ A 11579568 0.023333 4.881889 0.000000 -4.724409 0.000000 15.000000
+ A 11579568 0.023333 4.566929 0.000000 -4.724409 0.000000 15.000000
+ END
+TURNOUT T "Eishindo Curve 120mm 30° R-004"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.362205 -.632951 120.000000
+ C 0 0 4.724409 0.000000 -4.724409 0.000000 30.000000
+ A 11579568 0.023333 4.881889 0.000000 -4.724409 0.000000 30.000000
+ A 11579568 0.023333 4.566929 0.000000 -4.724409 0.000000 30.000000
+ END
+TURNOUT T "Eishindo Curve 132.5mm 15° R-014"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.350139 -0.177749 105.000000
+ C 0 0 5.216535 0.000000 -5.216535 0.000000 15.000000
+ A 11579568 0.023333 5.374015 0.000000 -5.216535 0.000000 15.000000
+ A 11579568 0.023333 5.059055 0.000000 -5.216535 0.000000 15.000000
+ END
+TURNOUT T "Eishindo Curve 132.5mm 30° R-005"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.608268 -0.698883 120.000000
+ C 0 0 5.216535 0.000000 -5.216535 0.000000 30.000000
+ A 11579568 0.023333 5.374015 0.000000 -5.216535 0.000000 30.000000
+ A 11579568 0.023333 5.059055 0.000000 -5.216535 0.000000 30.000000
+ END
+TURNOUT T "Eishindo Curve 145mm 15° R-015"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.477510 -0.194518 105.000000
+ C 0 0 5.708661 0.000000 -5.708661 0.000000 15.000000
+ A 11579568 0.023333 5.866141 0.000000 -5.708661 0.000000 15.000000
+ A 11579568 0.023333 5.551181 0.000000 -5.708661 0.000000 15.000000
+ END
+TURNOUT T "Eishindo Curve 145mm 30° R-006"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.854331 -0.764816 120.000000
+ C 0 0 5.708661 0.000000 -5.708661 0.000000 30.000000
+ A 11579568 0.023333 5.866141 0.000000 -5.708661 0.000000 30.000000
+ A 11579568 0.023333 5.551181 0.000000 -5.708661 0.000000 30.000000
+ END
+TURNOUT T "Eishindo Curve 157.5mm 15° R-024"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.604882 -0.211287 105.000000
+ C 0 0 6.200787 0.000000 -6.200787 0.000000 15.000000
+ A 11579568 0.023333 6.358267 0.000000 -6.200787 0.000000 15.000000
+ A 11579568 0.023333 6.043307 0.000000 -6.200787 0.000000 15.000000
+ END
+TURNOUT T "Eishindo Curve 157.5mm 30° R-025"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.100394 -0.830748 120.000000
+ C 0 0 6.200787 0.000000 -6.200787 0.000000 30.000000
+ A 11579568 0.023333 6.358267 0.000000 -6.200787 0.000000 30.000000
+ A 11579568 0.023333 6.043307 0.000000 -6.200787 0.000000 30.000000
+ END
+
+SUBCONTENTS Eishindo T Scale - Misc Track
+TURNOUT T "Eishindo S Curve 90mm R-018L"
+ P "Normal" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 3.543307 0.492126 90.000000
+ C 0 0 -5.708661 0.000000 5.708661 168.000000 12.000000
+ S 0 0 1.186897 0.124748 2.356410 0.367378
+ C 0 0 5.708661 3.543307 -5.216535 348.000000 12.000000
+ A 11579568 0.023333 5.866141 0.000000 5.708661 168.000000 12.000000
+ A 11579568 0.023333 5.551181 0.000000 5.708661 168.000000 12.000000
+ A 11579568 0.023333 5.866141 3.543307 -5.216535 348.000000 12.000000
+ A 11579568 0.023333 5.551181 3.543307 -5.216535 348.000000 12.000000
+ L 11579568 0.023333 1.154156 0.278787 2.3323668 0.521417
+ L 11579568 0.023333 1.219639 -0.029291 2.389151 0.213339
+ END
+TURNOUT T "Eishindo S Curve 90mm R-018R"
+ P "Normal" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 3.543307 -0.492126 90.000000
+ C 0 0 5.708661 0.000000 -5.708661 0.000000 12.000000
+ S 0 0 1.186897 -0.124748 2.356410 -0.367378
+ C 0 0 -5.708661 3.543307 5.216535 180.000000 12.000000
+ A 11579568 0.023333 5.866141 0.000000 -5.708661 0.000000 12.000000
+ A 11579568 0.023333 5.551181 0.000000 -5.708661 0.000000 12.000000
+ A 11579568 0.023333 5.866141 3.543307 5.216535 180.000000 12.000000
+ A 11579568 0.023333 5.551181 3.543307 5.216535 180.000000 12.000000
+ L 11579568 0.023333 1.154156 -0.278787 2.3323668 -0.521417
+ L 11579568 0.023333 1.219639 0.029291 2.389151 -0.213339
+ END
+TURNOUT T "Eishindo 60mm 90 degree Crossover R-019"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 2.362205 0.000000 90.000000
+ E 1.181102 1.181102 0.000000
+ E 1.181102 -1.181102 180.000000
+ S 0 0 0.000000 0.000000 2.362205 0.000000
+ S 0 0 1.181102 1.181102 1.181102 -1.181102
+ L 11579568 0.023333 0.000000 0.157480 1.023622 0.157480
+ L 11579568 0.023333 1.338582 0.157480 2.362205 0.157480
+ L 11579568 0.023333 0.000000 -0.157480 1.023622 -0.157480
+ L 11579568 0.023333 1.338582 -0.157480 2.362205 -0.157480
+ L 11579568 0.023333 1.023622 1.181102 1.023622 0.157480
+ L 11579568 0.023333 1.023622 -0.157480 1.023622 -1.181102
+ L 11579568 0.023333 1.338582 1.181102 1.338582 0.157480
+ L 11579568 0.023333 1.338582 -0.157480 1.338582 -1.181102
+ END
+TURNOUT T "Eishindo 60mm 30 degree Crossover R-029"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 2.362205 0.000000 90.000000
+ E 0.158237 0.590549 300.000000
+ E 2.203968 -0.590549 120.000000
+ S 0 0.000000 0.000000 0.000000 2.362205 0.000000
+ S 0 0.000000 0.158237 0.590549 2.203968 -0.590549
+ L 11579568 0.023333 0.000000 0.157480 0.590551 0.157480
+ L 11579568 0.023333 0.000000 -0.157480 1.107283 -0.157480
+ L 11579568 0.023333 1.254921 0.157480 2.362205 0.157480
+ L 11579568 0.023333 1.771653 -0.157480 2.362205 -0.157480
+ L 11579568 0.023333 0.079496 0.454168 0.590551 0.157480
+ L 11579568 0.023333 0.236977 0.726931 1.254921 0.157480
+ L 11579568 0.023333 1.107283 -0.157480 2.125228 -0.726931
+ L 11579568 0.023333 1.771653 -0.157480 2.282708 -0.454168
+ END
+TURNOUT T "Eishindo Straight 60mm Feeder Track R-022"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.362205 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.362205 0.000000
+ L 11579568 0.023333 0.000000 0.157480 2.362205 0.157480
+ L 11579568 0.023333 0.000000 -0.157480 2.362205 -0.157480
+ F 12566463 0.000000 4
+ 0.500000 0.100000 0
+ 0.600000 0.100000 0
+ 0.600000 -0.100000 0
+ 0.500000 -0.100000 0
+ END
+TURNOUT T "Eishindo Straight 30mm Feeder Track R-036"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.181102 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.181102 0.000000
+ L 11579568 0.023333 0.000000 0.157480 1.181102 0.157480
+ L 11579568 0.023333 0.000000 -0.157480 1.181102 -0.157480
+ F 12566463 0.000000 4
+ 0.500000 0.100000 0
+ 0.600000 0.100000 0
+ 0.600000 -0.100000 0
+ 0.500000 -0.100000 0
+ END
+TURNOUT T "Eishindo 30mm Isolating Track R-030"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.181102 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.181102 0.000000
+ L 11579568 0.023333 0.000000 0.157480 1.181102 0.157480
+ L 11579568 0.023333 0.000000 -0.157480 1.181102 -0.157480
+ F 0 0.000000 4
+ 0.300000 0.060000 0
+ 0.350000 0.060000 0
+ 0.350000 -0.060000 0
+ 0.300000 -0.060000 0
+ END
+TURNOUT T "Eishindo Level Grade Crossing 60mm Track R-008"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.362205 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.362205 0.000000
+ L 11579568 0.023333 0.000000 0.157480 2.362205 0.157480
+ L 11579568 0.023333 0.000000 -0.157480 2.362205 -0.157480
+ F 12566463 0.000000 4
+ 0.590551 0.150000 0
+ 1.771654 0.150000 0
+ 1.771654 0.600000 0
+ 0.590551 0.600000 0
+ F 12566463 0.000000 4
+ 0.590551 -0.150000 0
+ 1.771654 -0.150000 0
+ 1.771654 -0.600000 0
+ 0.590551 -0.600000 0
+ END
+TURNOUT T "Eishindo Level Grade Crossing 30mm Track R-008-2"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.181102 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.181102 0.000000
+ L 11579568 0.023333 0.000000 0.157480 1.181102 0.157480
+ L 11579568 0.023333 0.000000 -0.157480 1.181102 -0.157480
+ F 12566463 0.000000 4
+ 0.000000 0.150000 0
+ 1.181102 0.150000 0
+ 1.181102 0.600000 0
+ 0.000000 0.600000 0
+ F 12566463 0.000000 4
+ 0.000000 -0.150000 0
+ 1.181102 -0.150000 0
+ 1.181102 -0.600000 0
+ 0.000000 -0.600000 0
+ END
+TURNOUT T "Eishindo Road Crossing 30mm Track R-026"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.181102 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.181102 0.000000
+ L 11579568 0.023333 0.000000 0.157480 1.181102 0.157480
+ L 11579568 0.023333 0.000000 -0.157480 1.181102 -0.157480
+ F 12566463 0.000000 4
+ 0.000000 0.150000 0
+ 1.181102 0.150000 0
+ 1.181102 0.600000 0
+ 0.000000 0.600000 0
+ F 12566463 0.000000 4
+ 0.000000 -0.150000 0
+ 1.181102 -0.150000 0
+ 1.181102 -0.600000 0
+ 0.000000 -0.600000 0
+ END
+
+SUBCONTENTS Eishindo T Scale - Turnout
+TURNOUT T "Eishindo Left Turnout R-016/16E"
+ P "Normal" 4
+ P "Reverse" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 3.543307 0.000000 90.000000
+ E 3.543307 0.492126 90.000000
+ C 0 0 -5.708661 0.000000 5.708661 168.000000 12.000000
+ S 0 0 1.186897 0.124748 2.356410 0.367378
+ C 0 0 5.708661 3.543307 -5.216535 348.000000 12.000000
+ S 0 0 0.000000 0.000000 3.543307 0.000000
+ A 11579568 0.023333 5.551181 0.000000 5.708661 168.000000 12.000000
+ A 11579568 0.023333 5.866141 3.543307 -5.216535 348.000000 12.000000
+ A 11579568 0.023333 5.551181 3.543307 -5.216535 348.000000 12.000000
+ L 11579568 0.023333 2.375000 0.157480 3.543307 0.157480
+ L 11579568 0.023333 0.000000 -0.157480 3.543307 -0.157480
+ L 11579568 0.023333 1.154156 0.278787 2.3323668 0.521417
+ END
+TURNOUT T "Eishindo Right Turnout R-017/17E"
+ P "Normal" 4
+ P "Reverse" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 3.543307 -0.492126 90.000000
+ E 3.543307 0.000000 90.000000
+ C 0 0 5.708661 0.000000 -5.708661 0.000000 12.000000
+ S 0 0 1.186897 -0.124748 2.356410 -0.367378
+ C 0 0 -5.708661 3.543307 5.216535 180.000000 12.000000
+ S 0 0 0.000000 0.000000 3.543307 0.000000
+ A 11579568 0.023333 5.551181 0.000000 -5.708661 0.000000 12.000000
+ A 11579568 0.023333 5.866141 3.543307 5.216535 180.000000 12.000000
+ A 11579568 0.023333 5.551181 3.543307 5.216535 180.000000 12.000000
+ L 11579568 0.023333 2.375000 -0.157480 3.543307 -0.157480
+ L 11579568 0.023333 0.000000 0.157480 3.543307 0.157480
+ L 11579568 0.023333 1.154156 -0.278787 2.3323668 -0.521417
+ END
+TURNOUT T "Eishindo Left One Way Turnout R-031"
+ P "Normal" 4
+ P "Reverse" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 3.543307 0.000000 90.000000
+ E 3.543307 0.492126 90.000000
+ C 0 0 -5.708661 0.000000 5.708661 168.000000 12.000000
+ S 0 0 1.186897 0.124748 2.356410 0.367378
+ C 0 0 5.708661 3.543307 -5.216535 348.000000 12.000000
+ S 0 0 0.000000 0.000000 3.543307 0.000000
+ A 11579568 0.023333 5.551181 0.000000 5.708661 168.000000 12.000000
+ A 11579568 0.023333 5.866141 3.543307 -5.216535 348.000000 12.000000
+ A 11579568 0.023333 5.551181 3.543307 -5.216535 348.000000 12.000000
+ L 11579568 0.023333 2.375000 0.157480 3.543307 0.157480
+ L 11579568 0.023333 0.000000 -0.157480 3.543307 -0.157480
+ L 11579568 0.023333 1.154156 0.278787 2.3323668 0.521417
+ END
+TURNOUT T "Eishindo Right One Way Turnout R-032"
+ P "Normal" 4
+ P "Reverse" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 3.543307 -0.492126 90.000000
+ E 3.543307 0.000000 90.000000
+ C 0 0 5.708661 0.000000 -5.708661 0.000000 12.000000
+ S 0 0 1.186897 -0.124748 2.356410 -0.367378
+ C 0 0 -5.708661 3.543307 5.216535 180.000000 12.000000
+ S 0 0 0.000000 0.000000 3.543307 0.000000
+ A 11579568 0.023333 5.551181 0.000000 -5.708661 0.000000 12.000000
+ A 11579568 0.023333 5.866141 3.543307 5.216535 180.000000 12.000000
+ A 11579568 0.023333 5.551181 3.543307 5.216535 180.000000 12.000000
+ L 11579568 0.023333 2.375000 -0.157480 3.543307 -0.157480
+ L 11579568 0.023333 0.000000 0.157480 3.543307 0.157480
+ L 11579568 0.023333 1.154156 -0.278787 2.3323668 -0.521417
+ END
+
diff --git a/app/lib/params/TT-Roco-Turntable.xtp b/app/lib/params/TT-Roco-Turntable.xtp
index e4377c7..12b5427 100644
--- a/app/lib/params/TT-Roco-Turntable.xtp
+++ b/app/lib/params/TT-Roco-Turntable.xtp
@@ -37,18 +37,18 @@ TURNOUT TT "Roco Turn Table 35900"
E -2.547255 2.547255 315.000000
E -1.801181 3.119737 330.000000
E -0.932360 3.479615 345.000000
- S 16777215 0.000000 0.000000 3.602362 0.000000 -3.602362
- S 16777215 0.000000 0.932360 3.479615 -0.932360 -3.479615
- S 16777215 0.000000 1.801181 3.119737 -1.801181 -3.119737
- S 16777215 0.000000 2.547255 2.547255 -2.547255 -2.547255
- S 16777215 0.000000 3.119737 1.801181 -3.119737 -1.801181
- S 16777215 0.000000 3.479615 0.932360 -3.479615 -0.932360
- S 16777215 0.000000 3.602362 0.000000 -3.602362 0.000000
- S 16777215 0.000000 3.479615 -0.932360 -3.479615 0.932360
- S 16777215 0.000000 3.119737 -1.801181 -3.119737 1.801181
- S 16777215 0.000000 2.547255 -2.547255 -2.547255 2.547255
- S 16777215 0.000000 1.801181 -3.119737 -1.801181 3.119737
- S 16777215 0.000000 0.932360 -3.479615 -0.932360 3.479615
+ S 0 0.000000 0.000000 3.602362 0.000000 -3.602362
+ S 0 0.000000 0.932360 3.479615 -0.932360 -3.479615
+ S 0 0.000000 1.801181 3.119737 -1.801181 -3.119737
+ S 0 0.000000 2.547255 2.547255 -2.547255 -2.547255
+ S 0 0.000000 3.119737 1.801181 -3.119737 -1.801181
+ S 0 0.000000 3.479615 0.932360 -3.479615 -0.932360
+ S 0 0.000000 3.602362 0.000000 -3.602362 0.000000
+ S 0 0.000000 3.479615 -0.932360 -3.479615 0.932360
+ S 0 0.000000 3.119737 -1.801181 -3.119737 1.801181
+ S 0 0.000000 2.547255 -2.547255 -2.547255 2.547255
+ S 0 0.000000 1.801181 -3.119737 -1.801181 3.119737
+ S 0 0.000000 0.932360 -3.479615 -0.932360 3.479615
A 11579568 0.000000 3.602362 0.000000 0.000000 0.000000 360.000000
A 11579568 0.000000 5.059000 0.000000 0.000000 0.000000 360.000000
END
diff --git a/app/lib/params/TT-TilligAdvBeddingTrack.xtp b/app/lib/params/TT-TilligAdvBeddingTrack.xtp
index 3fda43e..d3db931 100644
--- a/app/lib/params/TT-TilligAdvBeddingTrack.xtp
+++ b/app/lib/params/TT-TilligAdvBeddingTrack.xtp
@@ -1,257 +1,257 @@
-CONTENTS Pilz/Tillig Advance Bedding Track System
-SUBCONTENTS Pilz/Tillig TT-Scale Advance Bedding Track - Straight Track
-TURNOUT TT "Pilz/Tillig Bedding Track BG1 Straight 6.535 166mm 83701"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.535433 0.000000 90.000000
- S 0 0 0.000000 0.000000 6.535433 0.000000
- L 11579568 0.053333 0.000000 0.629921 6.535433 0.629921
- L 11579568 0.053333 0.000000 -0.629921 6.535433 -0.629921
- END
-TURNOUT TT "Pilz/Tillig Bedding Track BG2 Straight 3.268 83mm 83702"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.267717 0.000000 90.000000
- S 0 0 0.000000 0.000000 3.267717 0.000000
- L 11579568 0.053333 0.000000 0.629921 3.267717 0.629921
- L 11579568 0.053333 0.000000 -0.629921 3.267717 -0.629921
- END
-TURNOUT TT "Pilz/Tillig Bedding Track BG3 Straight 1.692 43mm 83705"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.692913 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.692913 0.000000
- L 11579568 0.053333 0.000000 0.629921 1.692913 0.629921
- L 11579568 0.053333 0.000000 -0.629921 1.692913 -0.629921
- END
-TURNOUT TT "Pilz/Tillig Bedding Track BG4 Straight 1.633 41.5mm 83703"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.633858 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.633858 0.000000
- L 11579568 0.053333 0.000000 0.629921 1.633858 0.629921
- L 11579568 0.053333 0.000000 -0.629921 1.633858 -0.629921
- END
-TURNOUT TT "Pilz/Tillig Bedding Track BG5 Straight 1.437 36.5mm 83704"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.437008 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.437008 0.000000
- L 11579568 0.053333 0.000000 0.629921 1.437008 0.629921
- L 11579568 0.053333 0.000000 -0.629921 1.437008 -0.629921
- END
-
-SUBCONTENTS Pilz/Tillig TT-Scale Advance Bedding Track - Curve Track
-TURNOUT TT "Pilz/Tillig Bedding Track BR11 Curve 12.20R 310mm 30 83709"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.102362 -1.635123 120.000000
- C 0 0 12.204724 0.000000 -12.204724 0.000000 30.000000
- A 11579568 0.053333 11.574803 0.000000 -12.204724 0.000000 30.000000
- A 11579568 0.053333 12.834645 0.000000 -12.204724 0.000000 30.000000
- END
-TURNOUT TT "Pilz/Tillig Bedding Track BR12 Curve 12.20R 310mm 15 83710"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.158815 -0.415866 105.000000
- C 0 0 12.204724 0.000000 -12.204724 0.000000 15.000000
- A 11579568 0.053333 11.574803 0.000000 -12.204724 0.000000 15.000000
- A 11579568 0.053333 12.834645 0.000000 -12.204724 0.000000 15.000000
- END
-TURNOUT TT "Pilz/Tillig Bedding Track BR21 Curve 13.89R 353mm 30 83706"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.948819 -1.861930 120.000000
- C 0 0 13.897638 0.000000 -13.897638 0.000000 30.000000
- A 11579568 0.053333 13.267717 0.000000 -13.897638 0.000000 30.000000
- A 11579568 0.053333 14.527559 0.000000 -13.897638 0.000000 30.000000
- END
-TURNOUT TT "Pilz/Tillig Bedding Track BR22 Curve 13.89R 353mm 15 83707"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.596973 -0.473551 105.000000
- C 0 0 13.897638 0.000000 -13.897638 0.000000 15.000000
- A 11579568 0.053333 13.267717 0.000000 -13.897638 0.000000 15.000000
- A 11579568 0.053333 14.527559 0.000000 -13.897638 0.000000 15.000000
- END
-
-SUBCONTENTS Pilz/Tillig TT-Scale Advance Bedding Track - Function Track
-TURNOUT TT "Pilz/Tillig Bedding Track Straight Feeder 6.535 166mm 83740"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.535433 0.000000 90.000000
- S 0 0 0.000000 0.000000 6.535433 0.000000
- L 11579568 0.053333 0.000000 0.629921 6.535433 0.629921
- L 11579568 0.053333 0.000000 -0.629921 6.535433 -0.629921
- F 11579568 0.000000 4
- 0.500000 -0.500000 0
- 1.000000 -0.500000 0
- 1.000000 -1.000000 0
- 0.500000 -1.000000 0
- END
-TURNOUT TT "Pilz/Tillig Bedding Track Uncouple Track 3.268 83mm 83801"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.267717 0.000000 90.000000
- S 0 0 0.000000 0.000000 3.267717 0.000000
- L 11579568 0.053333 0.000000 0.629921 3.267717 0.629921
- L 11579568 0.053333 0.000000 -0.629921 3.267717 -0.629921
- F 11579568 0.000000 4
- 2.500000 -0.500000 0
- 2.750000 -0.500000 0
- 2.750000 -0.800000 0
- 2.500000 -0.800000 0
- F 11579568 0.000000 4
- 0.5000000 -0.150000 0
- 2.750000 -0.150000 0
- 2.750000 0.150000 0
- 0.500000 0.1500000 0
- END
-TURNOUT TT "Pilz/Tillig Bedding Track Circuit Track 3.268 83mm 83758"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.267717 0.000000 90.000000
- S 0 0 0.000000 0.000000 3.267717 0.000000
- L 11579568 0.053333 0.000000 0.629921 3.267717 0.629921
- L 11579568 0.053333 0.000000 -0.629921 3.267717 -0.629921
- L 0 0.053333 0.787402 0.000000 0.787402 -0.629921
- END
-TURNOUT TT "Pilz/Tillig Bedding Track Bumper Track 1.692 43mm 83700"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- S 0 0 0.000000 0.000000 1.692913 0.000000
- L 11579568 0.053333 0.000000 0.629921 2.121484 0.629921
- L 11579568 0.053333 0.000000 -0.629921 2.121484 -0.629921
- L 11579568 0.053333 2.121484 0.629921 2.121484 -0.629921
- L 0 0.053333 0.846456 0.400000 0.846456 -0.400000
- L 0 0.053333 0.846456 0.100000 1.692913 0.200000
- L 0 0.053333 0.846456 -0.100000 1.692913 -0.200000
- END
-TURNOUT TT "Pilz/Tillig Bedding Track Bedding Gravel End 1.692 43mm 83961"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- L 11579568 0.053333 0.000000 0.629921 0.428571 0.629921
- L 11579568 0.053333 0.000000 -0.629921 0.428571 -0.629921
- L 11579568 0.053333 0.428571 0.629921 0.428571 -0.629921
- END
-
-SUBCONTENTS Pilz/Tillig TT-Scale Advance Bedding Track - Turnouts
-TURNOUT TT "Tillig BW-Left 83817/819"
- P "Normal" 1
- P "Reverse" 2 3
- E 0.000000 0.000000 270.000000
- E 5.098425 0.000000 90.000000
- E 4.985016 0.845476 75.000000
- S 0 0.000000 0.000000 0.000000 5.098425 0.000000
- C 0 0.000000 -13.897638 0.000000 13.897638 165.000000 15.000000
- S 0 0.000000 3.596973 0.473551 4.985016 0.845476
- L 11579568 0.053333 0.000000 -0.629921 5.098425 -0.629921
- A 11579568 0.053333 13.267717 0.000000 13.897638 165.000000 15.000000
- L 11579568 0.053333 3.433938 1.082007 4.821981 1.453932
- END
-TURNOUT TT "Tillig BW-Right 83816/818"
- P "Normal" 1
- P "Reverse" 2 3
- E 0.000000 0.000000 270.000000
- E 5.098425 0.000000 90.000000
- E 4.985016 -0.845476 105.000000
- S 0 0.000000 0.000000 0.000000 5.098425 0.000000
- C 0 0.000000 13.897638 0.000000 -13.897638 0.000000 15.000000
- S 0 0.000000 3.596973 -0.473551 4.985016 -0.845476
- L 11579568 0.053333 0.000000 0.629921 5.098425 0.629921
- A 11579568 0.053333 13.267717 0.000000 -13.897638 0.000000 15.000000
- L 11579568 0.053333 3.433938 -1.082007 4.821981 -1.453932
- END
-TURNOUT TT "Tillig IBW-Left 83362"
- P "Normal" 1 4 5
- P "Reverse" 1 2 3
- E 0.000000 0.000000 270.000000
- E 6.429717 0.846488 75.000000
- E 6.102362 1.635123 60.000000
- S 0 0.000000 0.000000 0.000000 0.472027 0.000000
- C 0 0.000000 -10.443154 0.472041 10.443154 150.000000 30.000000
- S 0 0.000000 5.693624 1.399129 6.102362 1.635123
- C 0 0.000000 -21.257102 0.472091 21.257102 165.000000 15.000000
- S 0 0.000000 5.973856 0.724332 6.429717 0.846488
- A 11579568 0.053333 11.574803 0.000000 12.204724 150.000000 30.000000
- A 11579568 0.053333 25.472441 0.000000 24.842520 165.000000 15.000000
- END
-TURNOUT TT "Tillig IBW-Right 83361"
- P "Normal" 1 4 5
- P "Reverse" 1 2 3
- E 0.000000 0.000000 270.000000
- E 6.429717 -0.846488 105.000000
- E 6.102362 -1.635123 120.000000
- S 0 0.000000 0.000000 0.000000 0.472027 0.000000
- C 0 0.000000 10.443154 0.471985 -10.443154 0.000076 30.000152
- S 0 0.000000 5.693624 -1.399129 6.102362 -1.635123
- C 0 0.000000 21.257102 0.472091 -21.257102 359.999979 15.000249
- S 0 0.000000 5.973856 -0.724332 6.429717 -0.846488
- A 11579568 0.053333 11.574803 0.000000 -12.204724 0.000000 30.000000
- A 11579568 0.053333 25.472441 0.000000 -24.842520 0.000000 15.000000
- END
-
-SUBCONTENTS Pilz/Tillig TT-Scale Advance Bedding Track - Turnout Extensions
-TURNOUT TT "Pilz/Tillig Bedding Track BG5KRE Right Straight Turnout Extension 1.437 36.5mm 83721"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.437008 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.437008 0.000000
- L 11579568 0.053333 0.000000 0.629921 1.437008 0.629921
- L 11579568 0.053333 0.000000 -0.629921 1.000000 -0.500000
- END
-TURNOUT TT "Pilz/Tillig Bedding Track BG5KLE Left Straight Turnout Extension 1.437 36.5mm 83722"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.437008 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.437008 0.000000
- L 11579568 0.053333 0.000000 0.629921 1.000000 0.500000
- L 11579568 0.053333 0.000000 -0.629921 1.437008 -0.629921
- END
-TURNOUT TT "Pilz/Tillig Bedding Track BR22KRE Right Curve Turnout Extension 13.89R 353mm 15 83723"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.596973 -0.473551 105.000000
- C 0 0 13.897638 0.000000 -13.897638 0.000000 15.000000
- A 11579568 0.053333 13.267717 0.000000 -13.897638 0.000000 15.000000
- A 11579568 0.053333 14.527559 0.000000 -13.897638 7.500000 7.500000
- END
-TURNOUT TT "Pilz/Tillig Bedding Track BR22KLE Left Curve Turnout Extension 13.89R 353mm 15 83724"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.596973 0.473551 75.000000
- C 0 0 13.897638 0.000000 13.897638 165.000000 15.000000
- A 11579568 0.053333 13.267717 0.000000 13.897638 165.000000 15.000000
- A 11579568 0.053333 14.527559 0.000000 13.897638 165.000000 7.500000
- END
-TURNOUT TT "Pilz/Tillig Bedding Track BR12-22KRE Right Curve Turnout Extension 13.89R 353mm 15 83725"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.596973 -0.473551 105.000000
- C 0 0 13.897638 0.000000 -13.897638 0.000000 15.000000
- A 11579568 0.053333 13.267717 0.000000 -13.897638 0.000000 7.500000
- A 11579568 0.053333 14.527559 0.000000 -13.897638 0.000000 15.000000
- END
-TURNOUT TT "Pilz/Tillig Bedding Track BR12-22KLE Left Curve Turnout Extension 13.89R 353mm 15 83726"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.596973 0.473551 75.000000
- C 0 0 13.897638 0.000000 13.897638 165.000000 15.000000
- A 11579568 0.053333 13.267717 0.000000 13.897638 172.500000 7.500000
- A 11579568 0.053333 14.527559 0.000000 13.897638 165.000000 15.000000
- END
-
-SUBCONTENTS Pilz/Tillig TT-Scale Advance Bedding Track - Crossings
-TURNOUT TT "Tillig 15d Crossing 83760"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 6.535433 0.000000 90.000000
- E 0.111343 0.845742 285.000000
- E 6.424090 -0.845742 105.000000
- S 0 0.000000 0.000000 0.000000 6.535433 0.000000
- S 0 0.000000 0.111343 0.845742 6.424090 -0.845742
- L 11579568 0.053333 3.267717 0.629921 6.535433 0.629921
- L 11579568 0.053333 0.000000 -0.629921 3.267717 -0.629921
- L 11579568 0.053333 3.267717 -0.629921 6.261053 -1.454199
- L 11579568 0.053333 0.274379 1.454199 3.267717 0.629921
- END
+CONTENTS Pilz/Tillig Advance Bedding Track System
+SUBCONTENTS Pilz/Tillig TT-Scale Advance Bedding Track - Straight Track
+TURNOUT TT "Pilz/Tillig Bedding Track BG1 Straight 6.535 166mm 83701"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.535433 0.000000 90.000000
+ S 0 0 0.000000 0.000000 6.535433 0.000000
+ L 11579568 0.053333 0.000000 0.629921 6.535433 0.629921
+ L 11579568 0.053333 0.000000 -0.629921 6.535433 -0.629921
+ END
+TURNOUT TT "Pilz/Tillig Bedding Track BG2 Straight 3.268 83mm 83702"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.267717 0.000000 90.000000
+ S 0 0 0.000000 0.000000 3.267717 0.000000
+ L 11579568 0.053333 0.000000 0.629921 3.267717 0.629921
+ L 11579568 0.053333 0.000000 -0.629921 3.267717 -0.629921
+ END
+TURNOUT TT "Pilz/Tillig Bedding Track BG3 Straight 1.692 43mm 83705"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.692913 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.692913 0.000000
+ L 11579568 0.053333 0.000000 0.629921 1.692913 0.629921
+ L 11579568 0.053333 0.000000 -0.629921 1.692913 -0.629921
+ END
+TURNOUT TT "Pilz/Tillig Bedding Track BG4 Straight 1.633 41.5mm 83703"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.633858 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.633858 0.000000
+ L 11579568 0.053333 0.000000 0.629921 1.633858 0.629921
+ L 11579568 0.053333 0.000000 -0.629921 1.633858 -0.629921
+ END
+TURNOUT TT "Pilz/Tillig Bedding Track BG5 Straight 1.437 36.5mm 83704"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.437008 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.437008 0.000000
+ L 11579568 0.053333 0.000000 0.629921 1.437008 0.629921
+ L 11579568 0.053333 0.000000 -0.629921 1.437008 -0.629921
+ END
+
+SUBCONTENTS Pilz/Tillig TT-Scale Advance Bedding Track - Curve Track
+TURNOUT TT "Pilz/Tillig Bedding Track BR11 Curve 12.20R 310mm 30° 83709"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.102362 -1.635123 120.000000
+ C 0 0 12.204724 0.000000 -12.204724 0.000000 30.000000
+ A 11579568 0.053333 11.574803 0.000000 -12.204724 0.000000 30.000000
+ A 11579568 0.053333 12.834645 0.000000 -12.204724 0.000000 30.000000
+ END
+TURNOUT TT "Pilz/Tillig Bedding Track BR12 Curve 12.20R 310mm 15° 83710"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.158815 -0.415866 105.000000
+ C 0 0 12.204724 0.000000 -12.204724 0.000000 15.000000
+ A 11579568 0.053333 11.574803 0.000000 -12.204724 0.000000 15.000000
+ A 11579568 0.053333 12.834645 0.000000 -12.204724 0.000000 15.000000
+ END
+TURNOUT TT "Pilz/Tillig Bedding Track BR21 Curve 13.89R 353mm 30° 83706"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.948819 -1.861930 120.000000
+ C 0 0 13.897638 0.000000 -13.897638 0.000000 30.000000
+ A 11579568 0.053333 13.267717 0.000000 -13.897638 0.000000 30.000000
+ A 11579568 0.053333 14.527559 0.000000 -13.897638 0.000000 30.000000
+ END
+TURNOUT TT "Pilz/Tillig Bedding Track BR22 Curve 13.89R 353mm 15° 83707"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.596973 -0.473551 105.000000
+ C 0 0 13.897638 0.000000 -13.897638 0.000000 15.000000
+ A 11579568 0.053333 13.267717 0.000000 -13.897638 0.000000 15.000000
+ A 11579568 0.053333 14.527559 0.000000 -13.897638 0.000000 15.000000
+ END
+
+SUBCONTENTS Pilz/Tillig TT-Scale Advance Bedding Track - Function Track
+TURNOUT TT "Pilz/Tillig Bedding Track Straight Feeder 6.535 166mm 83740"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.535433 0.000000 90.000000
+ S 0 0 0.000000 0.000000 6.535433 0.000000
+ L 11579568 0.053333 0.000000 0.629921 6.535433 0.629921
+ L 11579568 0.053333 0.000000 -0.629921 6.535433 -0.629921
+ F 11579568 0.000000 4
+ 0.500000 -0.500000 0
+ 1.000000 -0.500000 0
+ 1.000000 -1.000000 0
+ 0.500000 -1.000000 0
+ END
+TURNOUT TT "Pilz/Tillig Bedding Track Uncouple Track 3.268 83mm 83801"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.267717 0.000000 90.000000
+ S 0 0 0.000000 0.000000 3.267717 0.000000
+ L 11579568 0.053333 0.000000 0.629921 3.267717 0.629921
+ L 11579568 0.053333 0.000000 -0.629921 3.267717 -0.629921
+ F 11579568 0.000000 4
+ 2.500000 -0.500000 0
+ 2.750000 -0.500000 0
+ 2.750000 -0.800000 0
+ 2.500000 -0.800000 0
+ F 11579568 0.000000 4
+ 0.5000000 -0.150000 0
+ 2.750000 -0.150000 0
+ 2.750000 0.150000 0
+ 0.500000 0.1500000 0
+ END
+TURNOUT TT "Pilz/Tillig Bedding Track Circuit Track 3.268 83mm 83758"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.267717 0.000000 90.000000
+ S 0 0 0.000000 0.000000 3.267717 0.000000
+ L 11579568 0.053333 0.000000 0.629921 3.267717 0.629921
+ L 11579568 0.053333 0.000000 -0.629921 3.267717 -0.629921
+ L 0 0.053333 0.787402 0.000000 0.787402 -0.629921
+ END
+TURNOUT TT "Pilz/Tillig Bedding Track Bumper Track 1.692 43mm 83700"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ S 0 0 0.000000 0.000000 1.692913 0.000000
+ L 11579568 0.053333 0.000000 0.629921 2.121484 0.629921
+ L 11579568 0.053333 0.000000 -0.629921 2.121484 -0.629921
+ L 11579568 0.053333 2.121484 0.629921 2.121484 -0.629921
+ L 0 0.053333 0.846456 0.400000 0.846456 -0.400000
+ L 0 0.053333 0.846456 0.100000 1.692913 0.200000
+ L 0 0.053333 0.846456 -0.100000 1.692913 -0.200000
+ END
+TURNOUT TT "Pilz/Tillig Bedding Track Bedding Gravel End 1.692 43mm 83961"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ L 11579568 0.053333 0.000000 0.629921 0.428571 0.629921
+ L 11579568 0.053333 0.000000 -0.629921 0.428571 -0.629921
+ L 11579568 0.053333 0.428571 0.629921 0.428571 -0.629921
+ END
+
+SUBCONTENTS Pilz/Tillig TT-Scale Advance Bedding Track - Turnouts
+TURNOUT TT "Tillig BW-Left 83817/819"
+ P "Normal" 1
+ P "Reverse" 2 3
+ E 0.000000 0.000000 270.000000
+ E 5.098425 0.000000 90.000000
+ E 4.985016 0.845476 75.000000
+ S 0 0.000000 0.000000 0.000000 5.098425 0.000000
+ C 0 0.000000 -13.897638 0.000000 13.897638 165.000000 15.000000
+ S 0 0.000000 3.596973 0.473551 4.985016 0.845476
+ L 11579568 0.053333 0.000000 -0.629921 5.098425 -0.629921
+ A 11579568 0.053333 13.267717 0.000000 13.897638 165.000000 15.000000
+ L 11579568 0.053333 3.433938 1.082007 4.821981 1.453932
+ END
+TURNOUT TT "Tillig BW-Right 83816/818"
+ P "Normal" 1
+ P "Reverse" 2 3
+ E 0.000000 0.000000 270.000000
+ E 5.098425 0.000000 90.000000
+ E 4.985016 -0.845476 105.000000
+ S 0 0.000000 0.000000 0.000000 5.098425 0.000000
+ C 0 0.000000 13.897638 0.000000 -13.897638 0.000000 15.000000
+ S 0 0.000000 3.596973 -0.473551 4.985016 -0.845476
+ L 11579568 0.053333 0.000000 0.629921 5.098425 0.629921
+ A 11579568 0.053333 13.267717 0.000000 -13.897638 0.000000 15.000000
+ L 11579568 0.053333 3.433938 -1.082007 4.821981 -1.453932
+ END
+TURNOUT TT "Tillig IBW-Left 83362"
+ P "Normal" 1 4 5
+ P "Reverse" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 6.429717 0.846488 75.000000
+ E 6.102362 1.635123 60.000000
+ S 0 0.000000 0.000000 0.000000 0.472027 0.000000
+ C 0 0.000000 -10.443154 0.472041 10.443154 150.000000 30.000000
+ S 0 0.000000 5.693624 1.399129 6.102362 1.635123
+ C 0 0.000000 -21.257102 0.472091 21.257102 165.000000 15.000000
+ S 0 0.000000 5.973856 0.724332 6.429717 0.846488
+ A 11579568 0.053333 11.574803 0.000000 12.204724 150.000000 30.000000
+ A 11579568 0.053333 25.472441 0.000000 24.842520 165.000000 15.000000
+ END
+TURNOUT TT "Tillig IBW-Right 83361"
+ P "Normal" 1 4 5
+ P "Reverse" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 6.429717 -0.846488 105.000000
+ E 6.102362 -1.635123 120.000000
+ S 0 0.000000 0.000000 0.000000 0.472027 0.000000
+ C 0 0.000000 10.443154 0.471985 -10.443154 0.000076 30.000152
+ S 0 0.000000 5.693624 -1.399129 6.102362 -1.635123
+ C 0 0.000000 21.257102 0.472091 -21.257102 359.999979 15.000249
+ S 0 0.000000 5.973856 -0.724332 6.429717 -0.846488
+ A 11579568 0.053333 11.574803 0.000000 -12.204724 0.000000 30.000000
+ A 11579568 0.053333 25.472441 0.000000 -24.842520 0.000000 15.000000
+ END
+
+SUBCONTENTS Pilz/Tillig TT-Scale Advance Bedding Track - Turnout Extensions
+TURNOUT TT "Pilz/Tillig Bedding Track BG5KRE Right Straight Turnout Extension 1.437 36.5mm 83721"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.437008 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.437008 0.000000
+ L 11579568 0.053333 0.000000 0.629921 1.437008 0.629921
+ L 11579568 0.053333 0.000000 -0.629921 1.000000 -0.500000
+ END
+TURNOUT TT "Pilz/Tillig Bedding Track BG5KLE Left Straight Turnout Extension 1.437 36.5mm 83722"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.437008 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.437008 0.000000
+ L 11579568 0.053333 0.000000 0.629921 1.000000 0.500000
+ L 11579568 0.053333 0.000000 -0.629921 1.437008 -0.629921
+ END
+TURNOUT TT "Pilz/Tillig Bedding Track BR22KRE Right Curve Turnout Extension 13.89R 353mm 15° 83723"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.596973 -0.473551 105.000000
+ C 0 0 13.897638 0.000000 -13.897638 0.000000 15.000000
+ A 11579568 0.053333 13.267717 0.000000 -13.897638 0.000000 15.000000
+ A 11579568 0.053333 14.527559 0.000000 -13.897638 7.500000 7.500000
+ END
+TURNOUT TT "Pilz/Tillig Bedding Track BR22KLE Left Curve Turnout Extension 13.89R 353mm 15° 83724"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.596973 0.473551 75.000000
+ C 0 0 13.897638 0.000000 13.897638 165.000000 15.000000
+ A 11579568 0.053333 13.267717 0.000000 13.897638 165.000000 15.000000
+ A 11579568 0.053333 14.527559 0.000000 13.897638 165.000000 7.500000
+ END
+TURNOUT TT "Pilz/Tillig Bedding Track BR12-22KRE Right Curve Turnout Extension 13.89R 353mm 15° 83725"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.596973 -0.473551 105.000000
+ C 0 0 13.897638 0.000000 -13.897638 0.000000 15.000000
+ A 11579568 0.053333 13.267717 0.000000 -13.897638 0.000000 7.500000
+ A 11579568 0.053333 14.527559 0.000000 -13.897638 0.000000 15.000000
+ END
+TURNOUT TT "Pilz/Tillig Bedding Track BR12-22KLE Left Curve Turnout Extension 13.89R 353mm 15° 83726"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.596973 0.473551 75.000000
+ C 0 0 13.897638 0.000000 13.897638 165.000000 15.000000
+ A 11579568 0.053333 13.267717 0.000000 13.897638 172.500000 7.500000
+ A 11579568 0.053333 14.527559 0.000000 13.897638 165.000000 15.000000
+ END
+
+SUBCONTENTS Pilz/Tillig TT-Scale Advance Bedding Track - Crossings
+TURNOUT TT "Tillig 15d Crossing 83760"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 6.535433 0.000000 90.000000
+ E 0.111343 0.845742 285.000000
+ E 6.424090 -0.845742 105.000000
+ S 0 0.000000 0.000000 0.000000 6.535433 0.000000
+ S 0 0.000000 0.111343 0.845742 6.424090 -0.845742
+ L 11579568 0.053333 3.267717 0.629921 6.535433 0.629921
+ L 11579568 0.053333 0.000000 -0.629921 3.267717 -0.629921
+ L 11579568 0.053333 3.267717 -0.629921 6.261053 -1.454199
+ L 11579568 0.053333 0.274379 1.454199 3.267717 0.629921
+ END
diff --git a/app/lib/params/TTi-AuhagenNG.xtp b/app/lib/params/TTi-AuhagenNG.xtp
index 4dc194c..eb1bbf1 100644
--- a/app/lib/params/TTi-AuhagenNG.xtp
+++ b/app/lib/params/TTi-AuhagenNG.xtp
@@ -1,40 +1,40 @@
-CONTENTS Auhagen Narrow Gauge TT Scale Track System
-SUBCONTENTS Auhagen TTi Narrow Gauge Track - Straight Track
-TURNOUT TTi "Auhagen TTi Track G44 Straight 1.65 41.7mm 43700-1"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.641732 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.641732 0.000000
- END
-
-SUBCONTENTS Auhagen TTi Narrow Gauge Track - Curve Track
-TURNOUT TTi "Auhagen TTi Track Curve 1.65R 42mm 30 43700-2"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 0.820866 -0.219950 120.000000
- C 0 0 1.641732 0.000000 -1.641732 0.000000 30.000000
- END
-
-SUBCONTENTS Auhagen TTi Narrow Gauge Track - Turnouts
-TURNOUT TTi "Auhagen TTi Track Left Turnout 43700-3"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 1.212598 0.000000 90.000000
- E 1.212598 0.437530 60.000000
- S 0 0.000000 0.000000 0.000000 0.177000 0.000000
- S 0 0.000000 0.177000 0.000000 1.212598 0.000000
- C 0 0.000000 -1.036677 0.177001 1.036677 149.999924 30.000152
- S 0 0.000000 0.695340 0.138889 1.212598 0.437530
- END
-TURNOUT TTi "Auhagen TTi Track Right Turnout 43700-4"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 1.212598 0.000000 90.000000
- E 1.212598 -0.437530 120.000000
- S 0 0.000000 0.000000 0.000000 0.177000 0.000000
- S 0 0.000000 0.177000 0.000000 1.212598 0.000000
- C 0 0.000000 1.036677 0.176996 -1.036677 0.000076 30.000152
- S 0 0.000000 0.695340 -0.138889 1.212598 -0.437530
- END
+CONTENTS Auhagen Narrow Gauge TT Scale Track System
+SUBCONTENTS Auhagen TTi Narrow Gauge Track - Straight Track
+TURNOUT TTi "Auhagen TTi Track G44 Straight 1.65 41.7mm 43700-1"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.641732 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.641732 0.000000
+ END
+
+SUBCONTENTS Auhagen TTi Narrow Gauge Track - Curve Track
+TURNOUT TTi "Auhagen TTi Track Curve 1.65R 42mm 30° 43700-2"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 0.820866 -0.219950 120.000000
+ C 0 0 1.641732 0.000000 -1.641732 0.000000 30.000000
+ END
+
+SUBCONTENTS Auhagen TTi Narrow Gauge Track - Turnouts
+TURNOUT TTi "Auhagen TTi Track Left Turnout 43700-3"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 1.212598 0.000000 90.000000
+ E 1.212598 0.437530 60.000000
+ S 0 0.000000 0.000000 0.000000 0.177000 0.000000
+ S 0 0.000000 0.177000 0.000000 1.212598 0.000000
+ C 0 0.000000 -1.036677 0.177001 1.036677 149.999924 30.000152
+ S 0 0.000000 0.695340 0.138889 1.212598 0.437530
+ END
+TURNOUT TTi "Auhagen TTi Track Right Turnout 43700-4"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 1.212598 0.000000 90.000000
+ E 1.212598 -0.437530 120.000000
+ S 0 0.000000 0.000000 0.000000 0.177000 0.000000
+ S 0 0.000000 0.177000 0.000000 1.212598 0.000000
+ C 0 0.000000 1.036677 0.176996 -1.036677 0.000076 30.000152
+ S 0 0.000000 0.695340 -0.138889 1.212598 -0.437530
+ END
diff --git a/app/lib/params/TilligAdvTT.xtp b/app/lib/params/TilligAdvTT.xtp
index b9ddf8b..7670769 100644
--- a/app/lib/params/TilligAdvTT.xtp
+++ b/app/lib/params/TilligAdvTT.xtp
@@ -1,323 +1,324 @@
-CONTENTS Pilz/Tillig Advance Track System
-SUBCONTENTS Pilz/Tillig TT-Scale Advance Track - Straight Track
-TURNOUT TT "Pilz/Tillig Track G1 Straight 6.535 166mm 83101"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.535433 0.000000 90.000000
- S 0 0 0.000000 0.000000 6.535433 0.000000
- END
-TURNOUT TT "Pilz/Tillig Track G2 Straight 3.268 83mm 83102"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.267717 0.000000 90.000000
- S 0 0 0.000000 0.000000 3.267717 0.000000
- END
-TURNOUT TT "Pilz/Tillig Track G3 Straight 1.692 43mm 83105"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.692913 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.692913 0.000000
- END
-TURNOUT TT "Pilz/Tillig Track G4 Straight 1.633 41.5mm 83103"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.633858 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.633858 0.000000
- END
-TURNOUT TT "Pilz/Tillig Track G5 Straight 1.437 36.5mm 83104"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.437008 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.437008 0.000000
- END
-TURNOUT TT "Pilz/Tillig Track Adapter Track 2.244 57mm 83132"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.244094 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.244094 0.000000
- END
-
-SUBCONTENTS Pilz/Tillig TT-Scale Advance Track - Curve Track
-TURNOUT TT "Pilz/Tillig Track R01 Curve 10.51R 267mm 30 83116"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.255906 -1.408316 120.000000
- C 0 0 10.511811 0.000000 -10.511811 0.000000 30.000000
- END
-TURNOUT TT "Pilz/Tillig Track R04 Curve 10.51R 267mm 7.5 83115"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.372067 -0.089930 97.500000
- C 0 0 10.511811 0.000000 -10.511811 0.000000 7.500000
- END
-TURNOUT TT "Pilz/Tillig Track R11 Curve 12.20R 310mm 30 83109"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.102362 -1.635123 120.000000
- C 0 0 12.204724 0.000000 -12.204724 0.000000 30.000000
- END
-TURNOUT TT "Pilz/Tillig Track R12 Curve 12.20R 310mm 15 83110"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.158815 -0.415866 105.000000
- C 0 0 12.204724 0.000000 -12.204724 0.000000 15.000000
- END
-TURNOUT TT "Pilz/Tillig Track R14 Curve 12.20R 310mm 7.5 83113"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.593036 -0.104413 97.500000
- C 0 0 12.204724 0.000000 -12.204724 0.000000 7.500000
- END
-TURNOUT TT "Pilz/Tillig Track R21 Curve 13.89R 353mm 30 83106"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.948819 -1.861930 120.000000
- C 0 0 13.897638 0.000000 -13.897638 0.000000 30.000000
- END
-TURNOUT TT "Pilz/Tillig Track R22 Curve 13.89R 353mm 15 83107"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.596973 -0.473551 105.000000
- C 0 0 13.897638 0.000000 -13.897638 0.000000 15.000000
- END
-TURNOUT TT "Pilz/Tillig Track R24 Curve 13.89R 353mm 7.5 83114"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.814006 -0.118896 97.500000
- C 0 0 13.897638 0.000000 -13.897638 0.000000 7.500000
- END
-TURNOUT TT "Pilz/Tillig Track R31 Curve 15.59R 396mm 30 83111"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.795276 -2.088738 120.000000
- C 0 0 15.590551 0.000000 -15.590551 0.000000 30.000000
- END
-TURNOUT TT "Pilz/Tillig Track R32 Curve 15.59R 396mm 15 83112"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.035132 -0.531235 105.000000
- C 0 0 15.590551 0.000000 -15.590551 0.000000 15.000000
- END
-
-SUBCONTENTS Pilz/Tillig TT-Scale Advance Track - Function Track
-TURNOUT TT "Pilz/Tillig Track Straight Feeder 6.535 166mm 83149"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.535433 0.000000 90.000000
- S 0 0 0.000000 0.000000 6.535433 0.000000
- F 11579568 0.000000 4
- 0.500000 -0.500000 0
- 1.000000 -0.500000 0
- 1.000000 -1.000000 0
- 0.500000 -1.000000 0
- END
-TURNOUT TT "Pilz/Tillig Track Uncouple Track 3.268 83mm 83201"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.267717 0.000000 90.000000
- S 0 0 0.000000 0.000000 3.267717 0.000000
- F 11579568 0.000000 4
- 0.000000 -0.500000 0
- 2.750000 -0.500000 0
- 2.750000 -1.000000 0
- 0.000000 -1.000000 0
- F 11579568 0.000000 4
- 0.5000000 -0.200000 0
- 2.750000 -0.200000 0
- 2.750000 0.200000 0
- 0.500000 0.2000000 0
- END
-TURNOUT TT "Pilz/Tillig Track Isolation Track 1.633 41.5mm 83150"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.633858 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.633858 0.000000
- END
-
-SUBCONTENTS Pilz/Tillig TT-Scale Advance Track - Turnouts
-TURNOUT TT "Tillig EW1-left 15d 83322/27"
- P "Normal" 1
- P "Reverse" 2 3
- E 0.000000 0.000000 270.000000
- E 5.098425 0.000000 90.000000
- E 4.985016 0.845476 75.000000
- S 0 0.000000 0.000000 0.000000 5.098425 0.000000
- C 0 0.000000 -13.897638 0.000000 13.897638 165.000000 15.000000
- S 0 0.000000 3.596973 0.473551 4.985016 0.845476
- END
-TURNOUT TT "Tillig EW1-right 15d 83321/26"
- P "Normal" 1
- P "Reverse" 2 3
- E 0.000000 0.000000 270.000000
- E 5.098425 0.000000 90.000000
- E 4.985016 -0.845476 105.000000
- S 0 0.000000 0.000000 0.000000 5.098425 0.000000
- C 0 0.000000 13.897638 0.000000 -13.897638 0.000000 15.000000
- S 0 0.000000 3.596973 -0.473551 4.985016 -0.845476
- END
-TURNOUT TT "Tillig EW2-left 15d 83332"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 6.535433 0.000000 90.000000
- E 6.429717 0.846488 75.000000
- S 0 0.000000 0.000000 0.000000 0.472063 0.000000
- S 0 0.000000 0.472063 0.000000 6.535433 0.000000
- C 0 0.000000 -21.257102 0.472091 21.257102 164.999924 15.000152
- S 0 0.000000 5.973856 0.724332 6.429717 0.846488
- END
-TURNOUT TT "Tillig EW2-right 15d 83331"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 6.535433 0.000000 90.000000
- E 6.429717 -0.846488 105.000000
- S 0 0.000000 0.000000 0.000000 0.472063 0.000000
- S 0 0.000000 0.472063 0.000000 6.535433 0.000000
- C 0 0.000000 21.257102 0.471978 -21.257102 0.000076 15.000152
- S 0 0.000000 5.973856 -0.724332 6.429717 -0.846488
- END
-TURNOUT TT "Tillig EW3-left 12d 83342"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 8.149606 0.000000 90.000000
- E 8.054532 0.846565 78.000000
- S 0 0.000000 0.000000 0.000000 0.472100 0.000000
- S 0 0.000000 0.472100 0.000000 8.149606 0.000000
- C 0 0.000000 -34.248932 0.472145 34.248932 167.999924 12.000152
- S 0 0.000000 7.592936 0.748439 8.054532 0.846565
- END
-TURNOUT TT "Tillig EW3-right 12d 83341"
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 8.149606 0.000000 90.000000
- E 8.054532 -0.846565 102.000000
- S 0 0.000000 0.000000 0.000000 0.472100 0.000000
- S 0 0.000000 0.472100 0.000000 8.149606 0.000000
- C 0 0.000000 34.248932 0.471964 -34.248932 0.000076 12.000152
- S 0 0.000000 7.592936 -0.748439 8.054532 -0.846565
- END
-TURNOUT TT "Tillig IBW-left 83362"
- P "Normal" 1 4 5
- P "Reverse" 1 2 3
- E 0.000000 0.000000 270.000000
- E 6.429717 0.846488 75.000000
- E 6.102362 1.635123 60.000000
- S 0 0.000000 0.000000 0.000000 0.472027 0.000000
- C 0 0.000000 -10.443154 0.472041 10.443154 149.999924 30.000152
- S 0 0.000000 5.693624 1.399129 6.102362 1.635123
- C 0 0.000000 -21.257102 0.472091 21.257102 164.999924 15.000249
- S 0 0.000000 5.973856 0.724332 6.429717 0.846488
- END
-TURNOUT TT "Tillig IBW-right 83361"
- P "Normal" 1 4 5
- P "Reverse" 1 2 3
- E 0.000000 0.000000 270.000000
- E 6.429717 -0.846488 105.000000
- E 6.102362 -1.635123 120.000000
- S 0 0.000000 0.000000 0.000000 0.472027 0.000000
- C 0 0.000000 10.443154 0.471985 -10.443154 0.000076 30.000152
- S 0 0.000000 5.693624 -1.399129 6.102362 -1.635123
- C 0 0.000000 21.257102 0.472091 -21.257102 359.999979 15.000249
- S 0 0.000000 5.973856 -0.724332 6.429717 -0.846488
- END
-SUBCONTENTS Pilz/Tillig TT-Scale Advance Track - Wyes
-TURNOUT TT "Tillig ABW-15 Wye 83380"
- P "Left" 1 2 3
- P "Right" 1 4 5
- E 0.000000 0.000000 270.000000
- E 6.552004 0.429441 82.500000
- E 6.552004 -0.429441 97.500000
- S 0 0.000000 0.000000 0.000000 0.472128 0.000000
- C 0 0.000000 -42.994583 0.472185 42.994583 172.499924 7.500152
- S 0 0.000000 6.084156 0.367839 6.552004 0.429441
- C 0 0.000000 42.994583 0.471957 -42.994583 0.000076 7.500152
- S 0 0.000000 6.084156 -0.367839 6.552004 -0.429441
-END
-TURNOUT TT "Tillig ABW-12 Wye 83382"
- P "Left" 1 2 3
- P "Right" 1 4 5
- E 0.000000 0.000000 270.000000
- E 8.172974 0.428327 84.000000
- E 8.172974 -0.428327 96.000000
- S 0 0.000000 0.000000 0.000000 0.472209 0.000000
- C 0 0.000000 -69.180753 0.472300 69.180753 173.999924 6.000152
- S 0 0.000000 7.703743 0.378998 8.172974 0.428327
- C 0 0.000000 69.180753 0.471933 -69.180753 0.000076 6.000152
- S 0 0.000000 7.703743 -0.378998 8.172974 -0.428327
-END
-TURNOUT TT "Tillig DW-15 Asymmetrical 3-Way 83230"
- P "Normal" 1 2 3
- P "Right" 1 4 5
- P "Left" 1 2 6 7
- E 0.000000 0.000000 270.000000
- E 6.535433 0.000000 90.000000
- E 6.429717 0.846488 75.000000
- E 6.429717 -0.846488 105.000000
- S 0 0.000000 0.000000 0.000000 0.472063 0.000000
- S 0 0.000000 0.472063 0.000000 0.964945 0.000000
- S 0 0.000000 0.964945 0.000000 6.535433 0.000000
- C 0 0.000000 -21.257102 0.472091 21.257102 165.000000 15.000000
- S 0 0.000000 5.973856 0.724332 6.429717 0.846488
- C 0 0.000000 21.257102 0.964945 -21.257102 0.000000 15.000000
- S 0 0.000000 6.938801 -0.724332 7.394662 -0.846488
-END
-SUBCONTENTS Pilz/Tillig TT-Scale Advance Track - Slips
-TURNOUT TT "Tillig DKW15 Double-Slip 83300/391"
- P "Normal" 1 2 3 0 4 5 6
- P "Reverse" 1 7 6 0 4 8 3
- E 0.000000 0.000000 270.000000
- E 6.535433 0.000000 90.000000
- E 0.111343 0.845742 285.000000
- E 6.424090 -0.845742 105.000000
- S 0 0.000000 0.000000 0.000000 0.944089 0.000000
- S 0 0.000000 0.944089 0.000000 5.591344 0.000000
- S 0 0.000000 5.591344 0.000000 6.535433 0.000000
- S 0 0.000000 0.111343 0.845742 1.023131 0.601422
- S 0 0.000000 1.023131 0.601422 5.512302 -0.601422
- S 0 0.000000 5.512302 -0.601422 6.424090 -0.845742
- C 0 0.000000 17.650057 0.944019 -17.650057 0.000076 15.000152
- C 0 0.000000 -17.650057 5.591366 17.650051 180.000076 15.000152
-END
-SUBCONTENTS Pilz/Tillig TT-Scale Advance Track - Double Crossover
-TURNOUT TT "Tillig DGV Dbl. Crossover 83210"
- P "Normal" 1 2 3 0 4 5 6
- P "Reverse" 1 7 8 9 6 0 4 10 11 12 3
- E 0.000000 0.000000 270.000000
- E 9.881890 0.000000 90.000000
- E 0.000000 1.692913 270.000000
- E 9.881890 1.692913 90.000000
- S 0 0.000000 0.000000 0.000000 0.789084 0.000000
- S 0 0.000000 0.789084 0.000000 9.092806 0.000000
- S 0 0.000000 9.092806 0.000000 9.881890 0.000000
- S 0 0.000000 0.000000 1.692913 0.789084 1.692913
- S 0 0.000000 0.789084 1.692913 9.092806 1.692913
- S 0 0.000000 9.092806 1.692913 9.881890 1.692913
- C 0 0.000000 -10.474132 0.789097 10.474132 159.252360 20.747716
- S 0 0.000000 4.499581 0.679253 5.382309 1.013660
- C 0 0.000000 10.474132 9.092819 -8.781214 339.252360 20.747716
- C 0 0.000000 10.474132 0.789042 -8.781219 0.000076 20.747716
- S 0 0.000000 4.499581 1.013660 5.382309 0.679253
- C 0 0.000000 -10.474132 9.092819 10.474127 180.000076 20.747716
-END
-SUBCONTENTS Pilz/Tillig TT-Scale Advance Track - Crossings
-TURNOUT TT "Tillig K1-15 Crossing 83160"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 6.535433 0.000000 90.000000
- E 0.111343 0.845742 285.000000
- E 6.424090 -0.845742 105.000000
- S 0 0.000000 0.000000 0.000000 6.535433 0.000000
- S 0 0.000000 0.111343 0.845742 6.424090 -0.845742
-END
-TURNOUT TT "Tillig K2-30 Crossing 83170"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 3.267717 0.000000 90.000000
- E 0.218894 0.816927 300.000000
- E 3.048823 -0.816927 120.000000
- S 0 0.000000 0.000000 0.000000 3.267717 0.000000
- S 0 0.000000 0.218894 0.816927 3.048823 -0.816927
-END
+CONTENTS Pilz/Tillig Advance Track System
+SUBCONTENTS Pilz/Tillig TT-Scale Advance Track - Straight Track
+TURNOUT TT "Pilz/Tillig Track G1 Straight 6.535 166mm 83101"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.535433 0.000000 90.000000
+ S 0 0 0.000000 0.000000 6.535433 0.000000
+ END
+TURNOUT TT "Pilz/Tillig Track G2 Straight 3.268 83mm 83102"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.267717 0.000000 90.000000
+ S 0 0 0.000000 0.000000 3.267717 0.000000
+ END
+TURNOUT TT "Pilz/Tillig Track G3 Straight 1.692 43mm 83105"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.692913 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.692913 0.000000
+ END
+TURNOUT TT "Pilz/Tillig Track G4 Straight 1.633 41.5mm 83103"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.633858 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.633858 0.000000
+ END
+TURNOUT TT "Pilz/Tillig Track G5 Straight 1.437 36.5mm 83104"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.437008 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.437008 0.000000
+ END
+TURNOUT TT "Pilz/Tillig Track Adapter Track 2.244 57mm 83132"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.244094 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.244094 0.000000
+ END
+
+SUBCONTENTS Pilz/Tillig TT-Scale Advance Track - Curve Track
+TURNOUT TT "Pilz/Tillig Track R01 Curve 10.51R 267mm 30° 83116"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.255906 -1.408316 120.000000
+ C 0 0 10.511811 0.000000 -10.511811 0.000000 30.000000
+ END
+TURNOUT TT "Pilz/Tillig Track R04 Curve 10.51R 267mm 7.5° 83115"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.372067 -0.089930 97.500000
+ C 0 0 10.511811 0.000000 -10.511811 0.000000 7.500000
+ END
+TURNOUT TT "Pilz/Tillig Track R11 Curve 12.20R 310mm 30° 83109"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.102362 -1.635123 120.000000
+ C 0 0 12.204724 0.000000 -12.204724 0.000000 30.000000
+ END
+TURNOUT TT "Pilz/Tillig Track R12 Curve 12.20R 310mm 15° 83110"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.158815 -0.415866 105.000000
+ C 0 0 12.204724 0.000000 -12.204724 0.000000 15.000000
+ END
+TURNOUT TT "Pilz/Tillig Track R14 Curve 12.20R 310mm 7.5° 83113"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.593036 -0.104413 97.500000
+ C 0 0 12.204724 0.000000 -12.204724 0.000000 7.500000
+ END
+TURNOUT TT "Pilz/Tillig Track R21 Curve 13.89R 353mm 30° 83106"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.948819 -1.861930 120.000000
+ C 0 0 13.897638 0.000000 -13.897638 0.000000 30.000000
+ END
+TURNOUT TT "Pilz/Tillig Track R22 Curve 13.89R 353mm 15° 83107"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.596973 -0.473551 105.000000
+ C 0 0 13.897638 0.000000 -13.897638 0.000000 15.000000
+ END
+TURNOUT TT "Pilz/Tillig Track R24 Curve 13.89R 353mm 7.5° 83114"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.814006 -0.118896 97.500000
+ C 0 0 13.897638 0.000000 -13.897638 0.000000 7.500000
+ END
+TURNOUT TT "Pilz/Tillig Track R31 Curve 15.59R 396mm 30° 83111"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.795276 -2.088738 120.000000
+ C 0 0 15.590551 0.000000 -15.590551 0.000000 30.000000
+ END
+TURNOUT TT "Pilz/Tillig Track R32 Curve 15.59R 396mm 15° 83112"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.035132 -0.531235 105.000000
+ C 0 0 15.590551 0.000000 -15.590551 0.000000 15.000000
+ END
+
+SUBCONTENTS Pilz/Tillig TT-Scale Advance Track - Function Track
+TURNOUT TT "Pilz/Tillig Track Straight Feeder 6.535 166mm 83149"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.535433 0.000000 90.000000
+ S 0 0 0.000000 0.000000 6.535433 0.000000
+ F 11579568 0.000000 4
+ 0.500000 -0.500000 0
+ 1.000000 -0.500000 0
+ 1.000000 -1.000000 0
+ 0.500000 -1.000000 0
+ END
+TURNOUT TT "Pilz/Tillig Track Uncouple Track 3.268 83mm 83201"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.267717 0.000000 90.000000
+ S 0 0 0.000000 0.000000 3.267717 0.000000
+ F 11579568 0.000000 4
+ 0.000000 -0.500000 0
+ 2.750000 -0.500000 0
+ 2.750000 -1.000000 0
+ 0.000000 -1.000000 0
+ F 11579568 0.000000 4
+ 0.5000000 -0.200000 0
+ 2.750000 -0.200000 0
+ 2.750000 0.200000 0
+ 0.500000 0.2000000 0
+ END
+TURNOUT TT "Pilz/Tillig Track Isolation Track 1.633 41.5mm 83150"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.633858 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.633858 0.000000
+ END
+
+SUBCONTENTS Pilz/Tillig TT-Scale Advance Track - Turnouts
+TURNOUT TT "Tillig EW1-left 15d 83322/27"
+ P "Normal" 1
+ P "Reverse" 2 3
+ E 0.000000 0.000000 270.000000
+ E 5.098425 0.000000 90.000000
+ E 4.985016 0.845476 75.000000
+ S 0 0.000000 0.000000 0.000000 5.098425 0.000000
+ C 0 0.000000 -13.897638 0.000000 13.897638 165.000000 15.000000
+ S 0 0.000000 3.596973 0.473551 4.985016 0.845476
+ END
+TURNOUT TT "Tillig EW1-right 15d 83321/26"
+ P "Normal" 1
+ P "Reverse" 2 3
+ E 0.000000 0.000000 270.000000
+ E 5.098425 0.000000 90.000000
+ E 4.985016 -0.845476 105.000000
+ S 0 0.000000 0.000000 0.000000 5.098425 0.000000
+ C 0 0.000000 13.897638 0.000000 -13.897638 0.000000 15.000000
+ S 0 0.000000 3.596973 -0.473551 4.985016 -0.845476
+ END
+TURNOUT TT "Tillig EW2-left 15d 83332"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 6.535433 0.000000 90.000000
+ E 6.429717 0.846488 75.000000
+ S 0 0.000000 0.000000 0.000000 0.472063 0.000000
+ S 0 0.000000 0.472063 0.000000 6.535433 0.000000
+ C 0 0.000000 -21.257102 0.472091 21.257102 164.999924 15.000152
+ S 0 0.000000 5.973856 0.724332 6.429717 0.846488
+ END
+TURNOUT TT "Tillig EW2-right 15d 83331"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 6.535433 0.000000 90.000000
+ E 6.429717 -0.846488 105.000000
+ S 0 0.000000 0.000000 0.000000 0.472063 0.000000
+ S 0 0.000000 0.472063 0.000000 6.535433 0.000000
+ C 0 0.000000 21.257102 0.471978 -21.257102 0.000076 15.000152
+ S 0 0.000000 5.973856 -0.724332 6.429717 -0.846488
+ END
+TURNOUT TT "Tillig EW3-left 12d 83342"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 8.149606 0.000000 90.000000
+ E 8.054532 0.846565 78.000000
+ S 0 0.000000 0.000000 0.000000 0.472100 0.000000
+ S 0 0.000000 0.472100 0.000000 8.149606 0.000000
+ C 0 0.000000 -34.248932 0.472145 34.248932 167.999924 12.000152
+ S 0 0.000000 7.592936 0.748439 8.054532 0.846565
+ END
+TURNOUT TT "Tillig EW3-right 12d 83341"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 8.149606 0.000000 90.000000
+ E 8.054532 -0.846565 102.000000
+ S 0 0.000000 0.000000 0.000000 0.472100 0.000000
+ S 0 0.000000 0.472100 0.000000 8.149606 0.000000
+ C 0 0.000000 34.248932 0.471964 -34.248932 0.000076 12.000152
+ S 0 0.000000 7.592936 -0.748439 8.054532 -0.846565
+ END
+TURNOUT TT "Tillig IBW-left 83362"
+ P "Normal" 1 4 5
+ P "Reverse" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 6.429717 0.846488 75.000000
+ E 6.102362 1.635123 60.000000
+ S 0 0.000000 0.000000 0.000000 0.472027 0.000000
+ C 0 0.000000 -10.443154 0.472041 10.443154 149.999924 30.000152
+ S 0 0.000000 5.693624 1.399129 6.102362 1.635123
+ C 0 0.000000 -21.257102 0.472091 21.257102 164.999924 15.000249
+ S 0 0.000000 5.973856 0.724332 6.429717 0.846488
+ END
+TURNOUT TT "Tillig IBW-right 83361"
+ P "Normal" 1 4 5
+ P "Reverse" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 6.429717 -0.846488 105.000000
+ E 6.102362 -1.635123 120.000000
+ S 0 0.000000 0.000000 0.000000 0.472027 0.000000
+ C 0 0.000000 10.443154 0.471985 -10.443154 0.000076 30.000152
+ S 0 0.000000 5.693624 -1.399129 6.102362 -1.635123
+ C 0 0.000000 21.257102 0.472091 -21.257102 359.999979 15.000249
+ S 0 0.000000 5.973856 -0.724332 6.429717 -0.846488
+ END
+SUBCONTENTS Pilz/Tillig TT-Scale Advance Track - Wyes
+TURNOUT TT "Tillig ABW-15 Wye 83380"
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 6.552004 0.429441 82.500000
+ E 6.552004 -0.429441 97.500000
+ S 0 0.000000 0.000000 0.000000 0.472128 0.000000
+ C 0 0.000000 -42.994583 0.472185 42.994583 172.499924 7.500152
+ S 0 0.000000 6.084156 0.367839 6.552004 0.429441
+ C 0 0.000000 42.994583 0.471957 -42.994583 0.000076 7.500152
+ S 0 0.000000 6.084156 -0.367839 6.552004 -0.429441
+END
+TURNOUT TT "Tillig ABW-12 Wye 83382"
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 8.172974 0.428327 84.000000
+ E 8.172974 -0.428327 96.000000
+ S 0 0.000000 0.000000 0.000000 0.472209 0.000000
+ C 0 0.000000 -69.180753 0.472300 69.180753 173.999924 6.000152
+ S 0 0.000000 7.703743 0.378998 8.172974 0.428327
+ C 0 0.000000 69.180753 0.471933 -69.180753 0.000076 6.000152
+ S 0 0.000000 7.703743 -0.378998 8.172974 -0.428327
+END
+TURNOUT TT "Tillig DW-15 Asymmetrical 3-Way 83230"
+ P "Left" 1 2 3
+ P "Normal" 1 6
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 4.985016 0.845479 75.000000
+ E 6.422024 -0.845479 105.000000
+ E 6.535433 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 0.472000 0.000000
+ C 0 0.000000 -10.312524 0.472014 10.312524 164.999924 15.000152
+ S 0 0.000000 3.141102 0.351397 4.985016 0.845479
+ C 0 0.000000 21.227491 0.472062 -21.227491 359.999985 15.000243
+ S 0 0.000000 5.966163 -0.723323 6.422024 -0.845479
+ S 0 0.000000 0.472000 0.000000 6.535433 0.000000
+END
+
+SUBCONTENTS Pilz/Tillig TT-Scale Advance Track - Slips
+TURNOUT TT "Tillig DKW15 Double-Slip 83300/391"
+ P "Normal" 1 2 3 0 4 5 6
+ P "Reverse" 1 7 6 0 4 8 3
+ E 0.000000 0.000000 270.000000
+ E 6.535433 0.000000 90.000000
+ E 0.111343 0.845742 285.000000
+ E 6.424090 -0.845742 105.000000
+ S 0 0.000000 0.000000 0.000000 0.944089 0.000000
+ S 0 0.000000 0.944089 0.000000 5.591344 0.000000
+ S 0 0.000000 5.591344 0.000000 6.535433 0.000000
+ S 0 0.000000 0.111343 0.845742 1.023131 0.601422
+ S 0 0.000000 1.023131 0.601422 5.512302 -0.601422
+ S 0 0.000000 5.512302 -0.601422 6.424090 -0.845742
+ C 0 0.000000 17.650057 0.944019 -17.650057 0.000076 15.000152
+ C 0 0.000000 -17.650057 5.591366 17.650051 180.000076 15.000152
+END
+SUBCONTENTS Pilz/Tillig TT-Scale Advance Track - Double Crossover
+TURNOUT TT "Tillig DGV Dbl. Crossover 83210"
+ P "Normal" 1 2 3 0 4 5 6
+ P "Reverse" 1 7 8 9 6 0 4 10 11 12 3
+ E 0.000000 0.000000 270.000000
+ E 9.881890 0.000000 90.000000
+ E 0.000000 1.692913 270.000000
+ E 9.881890 1.692913 90.000000
+ S 0 0.000000 0.000000 0.000000 0.789084 0.000000
+ S 0 0.000000 0.789084 0.000000 9.092806 0.000000
+ S 0 0.000000 9.092806 0.000000 9.881890 0.000000
+ S 0 0.000000 0.000000 1.692913 0.789084 1.692913
+ S 0 0.000000 0.789084 1.692913 9.092806 1.692913
+ S 0 0.000000 9.092806 1.692913 9.881890 1.692913
+ C 0 0.000000 -10.474132 0.789097 10.474132 159.252360 20.747716
+ S 0 0.000000 4.499581 0.679253 5.382309 1.013660
+ C 0 0.000000 10.474132 9.092819 -8.781214 339.252360 20.747716
+ C 0 0.000000 10.474132 0.789042 -8.781219 0.000076 20.747716
+ S 0 0.000000 4.499581 1.013660 5.382309 0.679253
+ C 0 0.000000 -10.474132 9.092819 10.474127 180.000076 20.747716
+END
+SUBCONTENTS Pilz/Tillig TT-Scale Advance Track - Crossings
+TURNOUT TT "Tillig K1-15 Crossing 83161"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 6.535433 0.000000 90.000000
+ E 0.111343 0.845742 285.000000
+ E 6.424090 -0.845742 105.000000
+ S 0 0.000000 0.000000 0.000000 6.535433 0.000000
+ S 0 0.000000 0.111343 0.845742 6.424090 -0.845742
+END
+TURNOUT TT "Tillig K2-30 Crossing 83170"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 3.267717 0.000000 90.000000
+ E 0.218894 0.816927 300.000000
+ E 3.048823 -0.816927 120.000000
+ S 0 0.000000 0.000000 0.000000 3.267717 0.000000
+ S 0 0.000000 0.218894 0.816927 3.048823 -0.816927
+END
+
diff --git a/app/lib/params/TilligH0EliteCode83.xtp b/app/lib/params/TilligH0EliteCode83.xtp
index f7f2da9..90e66bf 100644
--- a/app/lib/params/TilligH0EliteCode83.xtp
+++ b/app/lib/params/TilligH0EliteCode83.xtp
@@ -1,793 +1,793 @@
-CONTENTS Tillig H0 Elite Code 83
-TURNOUT HO "Tillig Holzschwellen-Flexgleis, 890 mm 85125"
- U "Straight Section" "" "Tillig" "Holzschwellen-Flexgleis, 890 mm" "85125" 35.039370 1.811024 0.000000 13276512
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 35.039370 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 35.039370 0.000000
- L3 13276512 0.000000 -0.000002 -0.905512 0 35.039368 -0.905466 0
- L3 13276512 0.000000 0.000000 0.905512 0 35.039370 0.905558 0
- END
-TURNOUT HO "Tillig Betonschwellen-Flexgleis, 470 mm 85134"
- U "Straight Section" "" "Tillig" "Betonschwellen-Flexgleis, 470 mm" "85134" 18.503937 1.811024 0.000000 13276512
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 18.503937 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 18.503937 0.000000
- L3 13276512 0.000000 -0.000002 -0.905512 0 18.503935 -0.905487 0
- L3 13276512 0.000000 0.000000 0.905512 0 18.503937 0.905536 0
- END
-TURNOUT HO "Tillig Stahlschwellen-Flexgleis, 470 mm 85136"
- U "Straight Section" "" "Tillig" "Stahlschwellen-Flexgleis, 470 mm" "85136" 18.503937 1.811024 0.000000 13276512
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 18.503937 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 18.503937 0.000000
- L3 13276512 0.000000 -0.000002 -0.905512 0 18.503935 -0.905487 0
- L3 13276512 0.000000 0.000000 0.905512 0 18.503937 0.905536 0
- END
-TURNOUT HO "Tillig Gerades Gleis - G1 - 228 mm 85118"
- U "Straight Section" "" "Tillig" "Gerades Gleis - G1 - 228 mm" "85118" 8.976378 1.811024 0.000000 13276512
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.976378 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 8.976378 0.000000
- L3 13276512 0.000000 -0.000002 -0.905512 0 8.976376 -0.905500 0
- L3 13276512 0.000000 0.000000 0.905512 0 8.976378 0.905524 0
- END
-TURNOUT HO "Tillig Gerades Gleis - G2 - 114 mm 85124"
- U "Straight Section" "" "Tillig" "Gerades Gleis - G2 - 114 mm" "85124" 4.488189 1.811024 0.000000 13276512
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.488189 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 4.488189 0.000000
- L3 13276512 0.000000 -0.000002 -0.905512 0 4.488187 -0.905506 0
- L3 13276512 0.000000 0.000000 0.905512 0 4.488189 0.905518 0
- END
-TURNOUT HO "Tillig Gerades Gleis - G3 - 64 mm 85130"
- U "Straight Section" "" "Tillig" "Gerades Gleis - G3 - 64 mm" "85130" 2.519685 1.811024 0.000000 13276512
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.519685 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 2.519685 0.000000
- L3 13276512 0.000000 -0.000002 -0.905512 0 2.519683 -0.905508 0
- L3 13276512 0.000000 0.000000 0.905512 0 2.519685 0.905515 0
- END
-TURNOUT HO "Tillig Gerades Gleis - G4 - 57 mm 85131"
- U "Straight Section" "" "Tillig" "Gerades Gleis - G4 - 57 mm" "85131" 2.244094 1.811024 0.000000 13276512
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.244094 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 2.244094 0.000000
- L3 13276512 0.000000 -0.000002 -0.905512 0 2.244092 -0.905509 0
- L3 13276512 0.000000 0.000000 0.905512 0 2.244094 0.905515 0
- END
-TURNOUT HO "Tillig Gerades Gleis - G5 - 53 mm 85128"
- U "Straight Section" "" "Tillig" "Gerades Gleis - G5 - 53 mm" "85128" 2.086614 1.811024 0.000000 13276512
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.086614 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 2.086614 0.000000
- L3 13276512 0.000000 -0.000002 -0.905512 0 2.086612 -0.905509 0
- L3 13276512 0.000000 0.000000 0.905512 0 2.086614 0.905515 0
- END
-TURNOUT HO "Tillig Gerades Gleis - G6 - 50 mm 85129"
- U "Straight Section" "" "Tillig" "Gerades Gleis - G6 - 50 mm" "85129" 1.968504 1.811024 0.000000 13276512
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.968504 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 1.968504 0.000000
- L3 13276512 0.000000 -0.000002 -0.905512 0 1.968502 -0.905509 0
- L3 13276512 0.000000 0.000000 0.905512 0 1.968504 0.905514 0
- END
-TURNOUT HO "Tillig Gebogenes Gleis - R11 - 30 / R366 85140"
- U "Curved Section" "" "Tillig" "Gebogenes Gleis - R11 - 30 / R366" "85140" 14.409449 30.000000 1.811024 0.000000 13276512
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.204719 1.930497 60.000000
- C 0 0.000000 -14.409449 0.000019 14.409449 150.000076 30.000000
- A3 13276512 0.000000 15.314961 0.000019 14.409449 0 150.000076 30.000000
- A3 13276512 0.000000 13.503937 0.000019 14.409449 0 150.000076 30.000000
- END
-TURNOUT HO "Tillig Gebogenes Gleis - R21 - 30 / R425 85141"
- U "Curved Section" "" "Tillig" "Gebogenes Gleis - R21 - 30 / R425" "85141" 16.732283 30.000000 1.811024 0.000000 13276512
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.366135 2.241697 60.000000
- C 0 0.000000 -16.732283 0.000022 16.732283 150.000076 30.000000
- A3 13276512 0.000000 17.637795 0.000022 16.732283 0 150.000076 30.000000
- A3 13276512 0.000000 15.826771 0.000022 16.732283 0 150.000076 30.000000
- END
-TURNOUT HO "Tillig Gebogenes Gleis - R31 - 30 / R484 85143"
- U "Curved Section" "" "Tillig" "Gebogenes Gleis - R31 - 30 / R484" "85143" 19.055118 30.000000 1.811024 0.000000 13276512
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.527552 2.552898 60.000000
- C 0 0.000000 -19.055118 0.000025 19.055118 150.000076 30.000000
- A3 13276512 0.000000 19.960630 0.000025 19.055118 0 150.000076 30.000000
- A3 13276512 0.000000 18.149606 0.000025 19.055118 0 150.000076 30.000000
- END
-TURNOUT HO "Tillig Gebogenes Gleis - R41 - 30 / R543 85145"
- U "Curved Section" "" "Tillig" "Gebogenes Gleis - R41 - 30 / R543" "85145" 21.377953 30.000000 1.811024 0.000000 13276512
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 10.688968 2.864098 60.000000
- C 0 0.000000 -21.377953 0.000028 21.377953 150.000076 30.000000
- A3 13276512 0.000000 22.283465 0.000028 21.377953 0 150.000076 30.000000
- A3 13276512 0.000000 20.472441 0.000028 21.377953 0 150.000076 30.000000
- END
-TURNOUT HO "Tillig Einfache Weiche links - EW2 - 15 85324"
- U "Regular Turnout" "" "Tillig" "Einfache Weiche links - EW2 - 15" "85324" "Einfache Weiche rechts - EW2 - 15" "85323" 6.833465 15.000000 1.161417 7.007874 1.811024 0.000000 13276512
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 7.007874 0.000000 90.000000
- E 6.833465 1.161417 75.000000
- S 0 0.000000 0.000000 0.000000 0.649600 0.000000
- S 0 0.000000 0.649600 0.000000 7.007874 0.000000
- C 0 0.000000 -14.047822 0.649619 14.047822 164.999924 15.000152
- S 0 0.000000 4.285477 0.478677 6.833465 1.161417
- L3 13276512 0.000000 -0.000002 -0.905512 0 7.007872 -0.905503 0
- L3 13276512 0.000000 0.000000 0.905512 0 0.649600 0.905513 0
- A3 13276512 0.000000 13.142310 0.649619 14.047822 0 164.999924 15.000152
- L3 13276512 0.000000 4.051112 1.353334 0 6.599100 2.036074 0
- END
-TURNOUT HO "Tillig Einfache Weiche rechts - EW2 - 15 85323"
- U "Regular Turnout" "" "Tillig" "Einfache Weiche links - EW2 - 15" "85324" "Einfache Weiche rechts - EW2 - 15" "85323" 6.833465 15.000000 1.161417 7.007874 1.811024 0.000000 13276512
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 7.007874 0.000000 90.000000
- E 6.833465 -1.161417 105.000000
- S 0 0.000000 0.000000 0.000000 0.649600 0.000000
- S 0 0.000000 0.649600 0.000000 7.007874 0.000000
- C 0 0.000000 14.047822 0.649544 -14.047822 0.000076 15.000152
- S 0 0.000000 4.285477 -0.478677 6.833465 -1.161417
- L3 13276512 0.000000 -0.000002 -0.905512 0 0.649598 -0.905511 0
- L3 13276512 0.000000 0.000000 0.905512 0 7.007874 0.905520 0
- A3 13276512 0.000000 13.142310 0.649544 -14.047822 0 0.000076 15.000152
- L3 13276512 0.000000 4.051107 -1.353332 0 6.599095 -2.036073 0
- END
-TURNOUT HO "Tillig Einfache Weiche links - EW1 - 15 85344"
- U "Regular Turnout" "" "Tillig" "Einfache Weiche links - EW1 - 15" "85344" "Einfache Weiche rechts - EW1 - 15" "85343" 8.824409 15.000000 1.161417 8.976378 1.811024 0.000000 13276512
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 8.976378 0.000000 90.000000
- E 8.824409 1.161417 75.000000
- S 0 0.000000 0.000000 0.000000 0.652254 0.000000
- S 0 0.000000 0.652254 0.000000 8.976378 0.000000
- C 0 0.000000 -29.150472 0.652293 29.150472 164.999924 15.000152
- S 0 0.000000 8.197020 0.993297 8.824409 1.161417
- L3 13276512 0.000000 -0.000002 -0.905512 0 8.976376 -0.905501 0
- L3 13276512 0.000000 0.000000 0.905512 0 0.652254 0.905513 0
- A3 13276512 0.000000 28.244960 0.652293 29.150472 0 164.999924 15.000152
- L3 13276512 0.000000 7.962642 1.867950 0 8.590031 2.036070 0
- END
-TURNOUT HO "Tillig Einfache Weiche rechts - EW1 - 15 85343"
- U "Regular Turnout" "" "Tillig" "Einfache Weiche links - EW1 - 15" "85344" "Einfache Weiche rechts - EW1 - 15" "85343" 8.824409 15.000000 1.161417 8.976378 1.811024 0.000000 13276512
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 8.976378 0.000000 90.000000
- E 8.824409 -1.161417 105.000000
- S 0 0.000000 0.000000 0.000000 0.652254 0.000000
- S 0 0.000000 0.652254 0.000000 8.976378 0.000000
- C 0 0.000000 29.150472 0.652138 -29.150472 0.000076 15.000152
- S 0 0.000000 8.197020 -0.993297 8.824409 -1.161417
- L3 13276512 0.000000 -0.000002 -0.905512 0 0.652252 -0.905511 0
- L3 13276512 0.000000 0.000000 0.905512 0 8.976378 0.905523 0
- A3 13276512 0.000000 28.244960 0.652138 -29.150472 0 0.000076 15.000152
- L3 13276512 0.000000 7.962637 -1.867949 0 8.590026 -2.036069 0
- END
-TURNOUT HO "Tillig Einfache Weiche links - EW3 - 12 85354"
- U "Regular Turnout" "" "Tillig" "Einfache Weiche links - EW3 - 12" "85354" "Einfache Weiche rechts - EW3 - 12" "85353" 11.050394 12.000000 1.161417 11.181102 1.811024 0.000000 13276512
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 11.181102 0.000000 90.000000
- E 11.050394 1.161417 78.000000
- S 0 0.000000 0.000000 0.000000 0.649981 0.000000
- S 0 0.000000 0.649981 0.000000 11.181102 0.000000
- C 0 0.000000 -46.967142 0.650043 46.967142 167.999924 12.000152
- S 0 0.000000 10.415113 1.026369 11.050394 1.161417
- L3 13276512 0.000000 -0.000002 -0.905512 0 11.181100 -0.905498 0
- L3 13276512 0.000000 0.000000 0.905512 0 0.649981 0.905513 0
- A3 13276512 0.000000 46.061630 0.650043 46.967142 0 167.999924 12.000152
- L3 13276512 0.000000 10.226828 1.912089 0 10.862109 2.047137 0
- END
-TURNOUT HO "Tillig Einfache Weiche rechts - EW3 - 12 85353"
- U "Regular Turnout" "" "Tillig" "Einfache Weiche links - EW3 - 12" "85354" "Einfache Weiche rechts - EW3 - 12" "85353" 11.050394 12.000000 1.161417 11.181102 1.811024 0.000000 13276512
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 11.181102 0.000000 90.000000
- E 11.050394 -1.161417 102.000000
- S 0 0.000000 0.000000 0.000000 0.649981 0.000000
- S 0 0.000000 0.649981 0.000000 11.181102 0.000000
- C 0 0.000000 46.967142 0.649794 -46.967142 0.000076 12.000152
- S 0 0.000000 10.415113 -1.026369 11.050394 -1.161417
- L3 13276512 0.000000 -0.000002 -0.905512 0 0.649979 -0.905511 0
- L3 13276512 0.000000 0.000000 0.905512 0 11.181102 0.905526 0
- A3 13276512 0.000000 46.061630 0.649794 -46.967142 0 0.000076 12.000152
- L3 13276512 0.000000 10.226823 -1.912088 0 10.862104 -2.047136 0
- END
-TURNOUT HO "Tillig Einfache Weiche links - EW5 - 9,4 85327"
- U "Regular Turnout" "" "Tillig" "Einfache Weiche links - EW5 - 9,4" "85327" "Einfache Weiche rechts - EW5 - 9,4" "85326" 14.146063 9.400000 1.161417 14.212598 1.811024 0.000000 13276512
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 14.212598 0.000000 90.000000
- E 14.146063 1.161417 80.600000
- S 0 0.000000 0.000000 0.000000 0.669292 0.000000
- S 0 0.000000 0.669292 0.000000 14.212598 0.000000
- C 0 0.000000 -78.590725 0.669396 78.590725 170.599924 9.400152
- S 0 0.000000 13.505393 1.055336 14.146063 1.161417
- L3 13276512 0.000000 -0.000002 -0.905512 0 14.212596 -0.905494 0
- L3 13276512 0.000000 0.000000 0.905512 0 0.669292 0.905513 0
- A3 13276512 0.000000 77.685213 0.669396 78.590725 0 170.599924 9.400152
- L3 13276512 0.000000 13.357475 1.948685 0 13.998145 2.054766 0
- END
-TURNOUT HO "Tillig Einfache Weiche rechts - EW5 - 9,4 85326"
- U "Regular Turnout" "" "Tillig" "Einfache Weiche links - EW5 - 9,4" "85327" "Einfache Weiche rechts - EW5 - 9,4" "85326" 14.146063 9.400000 1.161417 14.212598 1.811024 0.000000 13276512
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 14.212598 0.000000 90.000000
- E 14.146063 -1.161417 99.400000
- S 0 0.000000 0.000000 0.000000 0.669292 0.000000
- S 0 0.000000 0.669292 0.000000 14.212598 0.000000
- C 0 0.000000 78.590725 0.668979 -78.590725 0.000076 9.400152
- S 0 0.000000 13.505393 -1.055336 14.146063 -1.161417
- L3 13276512 0.000000 -0.000002 -0.905512 0 0.669290 -0.905511 0
- L3 13276512 0.000000 0.000000 0.905512 0 14.212598 0.905530 0
- A3 13276512 0.000000 77.685213 0.668979 -78.590725 0 0.000076 9.400152
- L3 13276512 0.000000 13.357470 -1.948684 0 13.998140 -2.054765 0
- END
-TURNOUT HO "Tillig Einfache Weiche links - EW6 - 6,34 85347"
- U "Regular Turnout" "" "Tillig" "Einfache Weiche links - EW6 - 6,34" "85347" "Einfache Weiche rechts - EW6 - 6,34" "85346" 15.240157 6.340000 1.161417 15.314961 1.811024 0.000000 13276512
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 15.314961 0.000000 90.000000
- E 15.240157 1.161417 83.660000
- S 0 0.000000 0.000000 0.000000 0.649600 0.000000
- S 0 0.000000 0.649600 0.000000 15.314961 0.000000
- C 0 0.000000 -74.709370 0.649699 74.709370 173.659924 6.340152
- S 0 0.000000 8.899811 0.456936 15.240157 1.161417
- L3 13276512 0.000000 -0.000002 -0.905512 0 15.314959 -0.905492 0
- L3 13276512 0.000000 0.000000 0.905512 0 0.649600 0.905513 0
- A3 13276512 0.000000 73.803859 0.649699 74.709370 0 173.659924 6.340152
- L3 13276512 0.000000 8.799816 1.356909 0 15.140161 2.061391 0
- END
-TURNOUT HO "Tillig Einfache Weiche rechts - EW6 - 6,34 85346"
- U "Regular Turnout" "" "Tillig" "Einfache Weiche links - EW6 - 6,34" "85347" "Einfache Weiche rechts - EW6 - 6,34" "85346" 15.240157 6.340000 1.161417 15.314961 1.811024 0.000000 13276512
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 15.314961 0.000000 90.000000
- E 15.240157 -1.161417 96.340000
- S 0 0.000000 0.000000 0.000000 0.649600 0.000000
- S 0 0.000000 0.649600 0.000000 15.314961 0.000000
- C 0 0.000000 74.709370 0.649303 -74.709370 0.000076 6.340152
- S 0 0.000000 8.899811 -0.456936 15.240157 -1.161417
- L3 13276512 0.000000 -0.000002 -0.905512 0 0.649598 -0.905511 0
- L3 13276512 0.000000 0.000000 0.905512 0 15.314961 0.905531 0
- A3 13276512 0.000000 73.803859 0.649303 -74.709370 0 0.000076 6.340152
- L3 13276512 0.000000 8.799811 -1.356909 0 15.140157 -2.061390 0
- END
-TURNOUT HO "Tillig Innenbogenweiche links - IBW - 17/29 85374"
- U "Curved Turnout" "" "Tillig" "Innenbogenweiche links - IBW - 17/29" "85374" "Innenbogenweiche rechts - IBW - 17/29" "85373" 10.192126 29.000000 2.635827 17.000000 1.606299 10.751969 1.811024 0.000000 13276512
- P "Normal" 1 4 5
- P "Reverse" 1 2 3
- E 0.000000 0.000000 270.000000
- E 10.751969 1.606299 73.000000
- E 10.192126 2.635827 61.000000
- S 0 0.000000 0.000000 0.000000 0.649786 0.000000
- C 0 0.000000 -18.510766 0.649811 18.510766 150.999924 29.000152
- S 0 0.000000 9.624019 2.320905 10.192126 2.635827
- C 0 0.000000 -32.414571 0.653702 32.414571 162.999923 17.006999
- S 0 0.000000 10.130838 1.416385 10.751969 1.606299
- L3 13276512 0.000000 -0.000002 -0.905512 0 0.649784 -0.905511 0
- L3 13276512 0.000000 0.000000 0.905512 0 0.649786 0.905513 0
- A3 13276512 0.000000 17.605254 0.649811 18.510766 0 150.999924 29.000152
- L3 13276512 0.000000 9.185003 3.112875 0 9.753110 3.427797 0
- A3 13276512 0.000000 33.320083 0.653702 32.414571 0 162.999923 17.006999
- L3 13276512 0.000000 10.395604 0.550446 0 11.016735 0.740360 0
- END
-TURNOUT HO "Tillig Innenbogenweiche rechts - IBW - 17/29 85373"
- U "Curved Turnout" "" "Tillig" "Innenbogenweiche links - IBW - 17/29" "85374" "Innenbogenweiche rechts - IBW - 17/29" "85373" 10.192126 29.000000 2.635827 17.000000 1.606299 10.751969 1.811024 0.000000 13276512
- P "Normal" 1 4 5
- P "Reverse" 1 2 3
- E 0.000000 0.000000 270.000000
- E 10.751969 -1.606299 107.000000
- E 10.192126 -2.635827 119.000000
- S 0 0.000000 0.000000 0.000000 0.649786 0.000000
- C 0 0.000000 18.510766 0.649712 -18.510766 0.000076 29.000152
- S 0 0.000000 9.624019 -2.320905 10.192126 -2.635827
- C 0 0.000000 32.414571 0.653702 -32.414571 359.993230 17.006999
- S 0 0.000000 10.130838 -1.416385 10.751969 -1.606299
- L3 13276512 0.000000 -0.000002 -0.905512 0 0.649784 -0.905511 0
- L3 13276512 0.000000 0.000000 0.905512 0 0.649786 0.905513 0
- A3 13276512 0.000000 17.605254 0.649712 -18.510766 0 0.000076 29.000152
- L3 13276512 0.000000 9.184999 -3.112873 0 9.753106 -3.427795 0
- A3 13276512 0.000000 33.320083 0.653702 -32.414571 0 359.993230 17.006999
- L3 13276512 0.000000 10.395604 -0.550446 0 11.016735 -0.740360 0
- END
-TURNOUT HO "Tillig Innenbogenweiche links - IBW - 15/30 85364"
- U "Curved Turnout" "" "Tillig" "Innenbogenweiche links - IBW - 15/30" "85364" "Innenbogenweiche rechts - IBW - 15/30" "85363" 8.366142 30.000000 2.241732 15.000000 1.161417 8.824409 1.811024 0.000000 13276512
- P "Normal" 1 4 5
- P "Reverse" 1 2 3
- E 0.000000 0.000000 270.000000
- E 8.824409 1.161417 75.000000
- E 8.366142 2.241732 60.000000
- S 0 0.000000 0.000000 0.000000 0.649600 0.000000
- C 0 0.000000 -14.307824 0.649619 14.307824 149.999924 30.000152
- S 0 0.000000 7.803539 1.916901 8.366142 2.241732
- C 0 0.000000 -29.150472 0.652292 29.150472 164.999923 15.005369
- S 0 0.000000 8.197020 0.993297 8.824409 1.161417
- L3 13276512 0.000000 -0.000002 -0.905512 0 0.649598 -0.905511 0
- L3 13276512 0.000000 0.000000 0.905512 0 0.649600 0.905513 0
- A3 13276512 0.000000 13.402312 0.649619 14.307824 0 149.999924 30.000152
- L3 13276512 0.000000 7.350772 2.701090 0 7.913374 3.025921 0
- A3 13276512 0.000000 30.055984 0.652292 29.150472 0 164.999923 15.005369
- L3 13276512 0.000000 8.431400 0.118644 0 9.058789 0.286764 0
- END
-TURNOUT HO "Tillig Innenbogenweiche rechts - IBW - 15/30 85363"
- U "Curved Turnout" "" "Tillig" "Innenbogenweiche links - IBW - 15/30" "85364" "Innenbogenweiche rechts - IBW - 15/30" "85363" 8.366142 30.000000 2.241732 15.000000 1.161417 8.824409 1.811024 0.000000 13276512
- P "Normal" 1 4 5
- P "Reverse" 1 2 3
- E 0.000000 0.000000 270.000000
- E 8.824409 -1.161417 105.000000
- E 8.366142 -2.241732 120.000000
- S 0 0.000000 0.000000 0.000000 0.649600 0.000000
- C 0 0.000000 14.307824 0.649543 -14.307824 0.000076 30.000152
- S 0 0.000000 7.803539 -1.916901 8.366142 -2.241732
- C 0 0.000000 29.150472 0.652292 -29.150472 359.994860 15.005369
- S 0 0.000000 8.197020 -0.993297 8.824409 -1.161417
- L3 13276512 0.000000 -0.000002 -0.905512 0 0.649598 -0.905511 0
- L3 13276512 0.000000 0.000000 0.905512 0 0.649600 0.905513 0
- A3 13276512 0.000000 13.402312 0.649543 -14.307824 0 0.000076 30.000152
- L3 13276512 0.000000 7.350767 -2.701088 0 7.913370 -3.025919 0
- A3 13276512 0.000000 30.055984 0.652292 -29.150472 0 359.994860 15.005369
- L3 13276512 0.000000 8.431400 -0.118644 0 9.058789 -0.286764 0
- END
-TURNOUT HO "Tillig Innenbogenweiche links - IBW - 20,7/32,7 85314"
- U "Curved Turnout" "" "Tillig" "Innenbogenweiche links - IBW - 20,7/32,7" "85314" "Innenbogenweiche rechts - IBW - 20,7/32,7" "85313" 10.294094 32.700000 3.019685 20.700000 1.977165 10.826772 1.811024 0.000000 13276512
- P "Normal" 1 4 5
- P "Reverse" 1 2 3
- E 0.000000 0.000000 270.000000
- E 10.826772 1.977165 69.300000
- E 10.294094 3.019685 57.300000
- S 0 0.000000 0.000000 0.000000 0.650571 0.000000
- C 0 0.000000 -16.838596 0.650593 16.838596 147.299924 32.700152
- S 0 0.000000 9.747490 2.668756 10.294094 3.019685
- C 0 0.000000 -27.070099 0.650555 27.070099 159.299924 20.700042
- S 0 0.000000 10.219177 1.747559 10.826772 1.977165
- L3 13276512 0.000000 -0.000002 -0.905512 0 0.650568 -0.905511 0
- L3 13276512 0.000000 0.000000 0.905512 0 0.650571 0.905513 0
- A3 13276512 0.000000 15.933084 0.650593 16.838596 0 147.299924 32.700152
- L3 13276512 0.000000 9.258281 3.430744 0 9.804885 3.781674 0
- A3 13276512 0.000000 27.975611 0.650555 27.070099 0 159.299924 20.700042
- L3 13276512 0.000000 10.539273 0.900511 0 11.146867 1.130117 0
- END
-TURNOUT HO "Tillig Innenbogenweiche rechts - IBW - 20,7/32,7 85313"
- U "Curved Turnout" "" "Tillig" "Innenbogenweiche links - IBW - 20,7/32,7" "85314" "Innenbogenweiche rechts - IBW - 20,7/32,7" "85313" 10.294094 32.700000 3.019685 20.700000 1.977165 10.826772 1.811024 0.000000 13276512
- P "Normal" 1 4 5
- P "Reverse" 1 2 3
- E 0.000000 0.000000 270.000000
- E 10.826772 -1.977165 110.700000
- E 10.294094 -3.019685 122.700000
- S 0 0.000000 0.000000 0.000000 0.650571 0.000000
- C 0 0.000000 16.838596 0.650504 -16.838596 0.000076 32.700152
- S 0 0.000000 9.747490 -2.668756 10.294094 -3.019685
- C 0 0.000000 27.070099 0.650411 -27.070099 0.000186 20.700042
- S 0 0.000000 10.219177 -1.747559 10.826772 -1.977165
- L3 13276512 0.000000 -0.000002 -0.905512 0 0.650568 -0.905511 0
- L3 13276512 0.000000 0.000000 0.905512 0 0.650571 0.905513 0
- A3 13276512 0.000000 15.933084 0.650504 -16.838596 0 0.000076 32.700152
- L3 13276512 0.000000 9.258277 -3.430742 0 9.804881 -3.781671 0
- A3 13276512 0.000000 27.975611 0.650411 -27.070099 0 0.000186 20.700042
- L3 13276512 0.000000 10.539273 -0.900511 0 11.146867 -1.130117 0
- END
-TURNOUT HO "Tillig Innenbogenweiche links - IBW - 29,3/41,3 85334"
- U "Curved Turnout" "" "Tillig" "Innenbogenweiche links - IBW - 29,3/41,3" "85334" "Innenbogenweiche rechts - IBW - 29,3/41,3" "85333" 9.796063 41.300000 3.691732 29.300000 2.735039 10.461811 1.811024 0.000000 13276512
- P "Normal" 1 4 5
- P "Reverse" 1 2 3
- E 0.000000 0.000000 270.000000
- E 10.461811 2.735039 60.700000
- E 9.796063 3.691732 48.700000
- S 0 0.000000 0.000000 0.000000 0.649964 0.000000
- C 0 0.000000 -13.118283 0.649981 13.118283 138.699924 41.300152
- S 0 0.000000 9.308073 3.263005 9.796063 3.691732
- C 0 0.000000 -18.891427 0.649625 18.891427 150.699924 29.299049
- S 0 0.000000 9.894769 2.416815 10.461811 2.735039
- L3 13276512 0.000000 -0.000002 -0.905512 0 0.649961 -0.905511 0
- L3 13276512 0.000000 0.000000 0.905512 0 0.649964 0.905513 0
- A3 13276512 0.000000 12.212771 0.649981 13.118283 0 138.699924 41.300152
- L3 13276512 0.000000 8.710421 3.943273 0 9.198411 4.372000 0
- A3 13276512 0.000000 19.796939 0.649625 18.891427 0 150.699924 29.299049
- L3 13276512 0.000000 10.337929 1.627155 0 10.904970 1.945380 0
- END
-TURNOUT HO "Tillig Innenbogenweiche rechts - IBW - 29,3/41,3 85333"
- U "Curved Turnout" "" "Tillig" "Innenbogenweiche links - IBW - 29,3/41,3" "85334" "Innenbogenweiche rechts - IBW - 29,3/41,3" "85333" 9.796063 41.300000 3.691732 29.300000 2.735039 10.461811 1.811024 0.000000 13276512
- P "Normal" 1 4 5
- P "Reverse" 1 2 3
- E 0.000000 0.000000 270.000000
- E 10.461811 -2.735039 119.300000
- E 9.796063 -3.691732 131.300000
- S 0 0.000000 0.000000 0.000000 0.649964 0.000000
- C 0 0.000000 13.118283 0.649912 -13.118283 0.000076 41.300152
- S 0 0.000000 9.308073 -3.263005 9.796063 -3.691732
- C 0 0.000000 18.891427 0.649525 -18.891427 0.001179 29.299049
- S 0 0.000000 9.894769 -2.416815 10.461811 -2.735039
- L3 13276512 0.000000 -0.000002 -0.905512 0 0.649961 -0.905511 0
- L3 13276512 0.000000 0.000000 0.905512 0 0.649964 0.905513 0
- A3 13276512 0.000000 12.212771 0.649912 -13.118283 0 0.000076 41.300152
- L3 13276512 0.000000 8.710417 -3.943270 0 9.198408 -4.371997 0
- A3 13276512 0.000000 19.796939 0.649525 -18.891427 0 0.001179 29.299049
- L3 13276512 0.000000 10.337929 -1.627155 0 10.904970 -1.945380 0
- END
-TURNOUT HO "Tillig Auenbogenweiche - ABW - 2x 7,5 85381"
- U "Wye Turnout" "" "Tillig" "Auenbogenweiche - ABW - 2x 7,5" "85381" 8.937008 7.500000 0.585433 0.585433 7.500000 8.937008 1.811024 0.000000 13276512
- P "Left" 1 2 3
- P "Right" 1 4 5
- E 0.000000 0.000000 270.000000
- E 8.937008 0.585433 82.500000
- E 8.937008 -0.585433 97.500000
- S 0 0.000000 0.000000 0.000000 0.654801 0.000000
- C 0 0.000000 -58.518309 0.654878 58.518309 172.499924 7.500152
- S 0 0.000000 8.293120 0.500652 8.937008 0.585433
- C 0 0.000000 58.518309 0.654568 -58.518309 0.000076 7.500152
- S 0 0.000000 8.293120 -0.500652 8.937008 -0.585433
- L3 13276512 0.000000 -0.000002 -0.905512 0 0.654798 -0.905511 0
- L3 13276512 0.000000 0.000000 0.905512 0 0.654801 0.905513 0
- A3 13276512 0.000000 57.612797 0.654878 58.518309 0 172.499924 7.500152
- L3 13276512 0.000000 8.174912 1.398415 0 8.818800 1.483196 0
- A3 13276512 0.000000 57.612797 0.654568 -58.518309 0 0.000076 7.500152
- L3 13276512 0.000000 8.174907 -1.398414 0 8.818795 -1.483195 0
- END
-TURNOUT HO "Tillig Auenbogenweiche - ABW - 2x 6 85383"
- U "Wye Turnout" "" "Tillig" "Auenbogenweiche - ABW - 2x 6" "85383" 11.141732 6.000000 0.583858 0.583858 6.000000 11.141732 1.811024 0.000000 13276512
- P "Left" 1 2 3
- P "Right" 1 4 5
- E 0.000000 0.000000 270.000000
- E 11.141732 0.583858 84.000000
- E 11.141732 -0.583858 96.000000
- S 0 0.000000 0.000000 0.000000 0.650931 0.000000
- C 0 0.000000 -94.182658 0.651056 94.182658 173.999924 6.000152
- S 0 0.000000 10.495940 0.515968 11.141732 0.583858
- C 0 0.000000 94.182658 0.650556 -94.182658 0.000076 6.000152
- S 0 0.000000 10.495940 -0.515968 11.141732 -0.583858
- L3 13276512 0.000000 -0.000002 -0.905512 0 0.650929 -0.905511 0
- L3 13276512 0.000000 0.000000 0.905512 0 0.650931 0.905513 0
- A3 13276512 0.000000 93.277146 0.651056 94.182658 0 173.999924 6.000152
- L3 13276512 0.000000 10.401269 1.416517 0 11.047061 1.484407 0
- A3 13276512 0.000000 93.277146 0.650556 -94.182658 0 0.000076 6.000152
- L3 13276512 0.000000 10.401264 -1.416517 0 11.047056 -1.484407 0
- END
-TURNOUT HO "Tillig Einfache Kreuzungsweiche - EKW I - 15 85395"
- U "Single Slipswitch" "" "Tillig" "Einfache Kreuzungsweiche - EKW I - 15" "85395" 8.976378 15.000000 8.976378 1.811024 0.000000 13276512
- P "Normal" 1 2 0 3 4
- P "Reverse" 1 5 4
- E 0.000000 0.000000 270.000000
- E 8.976378 0.000000 90.000000
- E 0.152930 1.161622 285.000000
- E 8.823448 -1.161622 105.000000
- S 0 0.000000 0.000000 0.000000 1.299323 0.000000
- S 0 0.000000 1.299323 0.000000 8.976378 0.000000
- S 0 0.000000 0.152930 1.161622 7.568581 -0.825371
- S 0 0.000000 7.568581 -0.825371 8.823448 -1.161622
- C 0 0.000000 24.222333 1.299226 -24.222333 0.000076 15.000152
- L3 13276512 0.000000 -0.000002 -0.905512 0 1.299320 -0.905510 0
- L3 13276512 0.000000 4.658034 0.905516 0 8.976378 0.905522 0
- L3 13276512 0.000000 0.387292 2.036280 0 4.558596 0.918596 0
- L3 13276512 0.000000 7.334207 -1.700026 0 8.589075 -2.036277 0
- A3 13276512 0.000000 23.316822 1.299226 -24.222333 0 0.000076 15.000152
- END
-TURNOUT HO "Tillig Doppelkreuzungsweiche - DKW I - 15 85390"
- U "Double Slipswitch" "" "Tillig" "Doppelkreuzungsweiche - DKW I - 15" "85390" 8.976378 15.000000 8.976378 1.811024 0.000000 13276512
- P "Normal" 1 2 3 0 4 5 6
- P "Reverse" 1 7 6 0 4 8 3
- E 0.000000 0.000000 270.000000
- E 8.976378 0.000000 90.000000
- E 0.152930 1.161622 285.000000
- E 8.823448 -1.161622 105.000000
- S 0 0.000000 0.000000 0.000000 1.299323 0.000000
- S 0 0.000000 1.299323 0.000000 7.677055 0.000000
- S 0 0.000000 7.677055 0.000000 8.976378 0.000000
- S 0 0.000000 0.152930 1.161622 1.407797 0.825371
- S 0 0.000000 1.407797 0.825371 7.568581 -0.825371
- S 0 0.000000 7.568581 -0.825371 8.823448 -1.161622
- C 0 0.000000 24.222333 1.299226 -24.222333 0.000076 15.000152
- C 0 0.000000 -24.222333 7.677086 24.222325 180.000076 15.000152
- L3 13276512 0.000000 -0.000002 -0.905512 0 1.299320 -0.905510 0
- L3 13276512 0.000000 7.677055 0.905512 0 8.976378 0.905514 0
- L3 13276512 0.000000 0.387301 2.036277 0 1.642169 1.700026 0
- L3 13276512 0.000000 7.334207 -1.700026 0 8.589075 -2.036277 0
- A3 13276512 0.000000 23.316822 1.299226 -24.222333 0 0.000076 15.000152
- A3 13276512 0.000000 23.316822 7.677086 24.222325 0 180.000076 15.000152
- END
-TURNOUT HO "Tillig Doppelkreuzungsweiche - DKW II (Bauart Baeseler) - 15 85391"
- U "Double Slipswitch" "" "Tillig" "Doppelkreuzungsweiche - DKW II (Bauart Baeseler) - 15" "85391" 10.866142 15.000000 10.866142 1.811024 0.000000 13276512
- P "Normal" 1 2 3 0 4 5 6
- P "Reverse" 1 7 6 0 4 8 3
- E 0.000000 0.000000 270.000000
- E 10.866142 0.000000 90.000000
- E 0.185125 1.406174 285.000000
- E 10.681017 -1.406174 105.000000
- S 0 0.000000 0.000000 0.000000 1.299351 0.000000
- S 0 0.000000 1.299351 0.000000 9.566791 0.000000
- S 0 0.000000 9.566791 0.000000 10.866142 0.000000
- S 0 0.000000 0.185125 1.406174 1.439974 1.069926
- S 0 0.000000 1.439974 1.069926 9.426168 -1.069926
- S 0 0.000000 9.426168 -1.069926 10.681017 -1.406174
- C 0 0.000000 31.399323 1.299226 -31.399323 0.000076 15.000152
- C 0 0.000000 -31.399323 9.566831 31.399312 180.000076 15.000152
- L3 13276512 0.000000 -0.000002 -0.905512 0 1.299349 -0.905510 0
- L3 13276512 0.000000 9.566791 0.905512 0 10.866142 0.905514 0
- L3 13276512 0.000000 0.419498 2.280829 0 1.674347 1.944580 0
- L3 13276512 0.000000 9.191792 -1.944580 0 10.446641 -2.280828 0
- A3 13276512 0.000000 30.493811 1.299226 -31.399323 0 0.000076 15.000152
- A3 13276512 0.000000 30.493811 9.566831 31.399312 0 180.000076 15.000152
- END
-TURNOUT HO "Tillig Kreuzung - K - 15 85160"
- U "Crossing" "" "Tillig" "Kreuzung - K - 15" "85160" 8.976378 15.000000 8.976378 1.811024 0.000000 13276512
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 8.976378 0.000000 90.000000
- E 0.152930 1.161622 285.000000
- E 8.823448 -1.161622 105.000000
- S 0 0.000000 0.000000 0.000000 8.976378 0.000000
- S 0 0.000000 0.152930 1.161622 8.823448 -1.161622
- L3 13276512 0.000000 -0.000002 -0.905512 0 4.488187 -0.905506 0
- L3 13276512 0.000000 4.488189 0.905518 0 8.976378 0.905524 0
- L3 13276512 0.000000 4.253823 -0.874657 0 8.589083 -2.036279 0
- L3 13276512 0.000000 0.387293 2.036279 0 4.722553 0.874657 0
- END
-TURNOUT HO "Tillig Kreuzung - 30 85170"
- U "Crossing" "" "Tillig" "Kreuzung - 30" "85170" 4.488189 30.000000 4.488189 1.811024 0.000000 13276512
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 4.488189 0.000000 90.000000
- E 0.300650 1.122044 300.000000
- E 4.187539 -1.122044 120.000000
- S 0 0.000000 0.000000 0.000000 4.488189 0.000000
- S 0 0.000000 0.300650 1.122044 4.187539 -1.122044
- L3 13276512 0.000000 -0.000002 -0.905512 0 1.963580 -0.905509 0
- L3 13276512 0.000000 2.524606 0.905515 0 4.488189 0.905518 0
- L3 13276512 0.000000 2.034267 -0.924451 0 3.734782 -1.906239 0
- L3 13276512 0.000000 0.753405 1.906240 0 2.453919 0.924452 0
- END
-TURNOUT HO "Tillig Gerades Schwellenband - G1 - 228mm 85018"
- U "Straight Section" "" "Tillig" "Gerades Schwellenband - G1 - 228mm" "85018" 8.976378 1.811024 0.000000 13276512
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.976378 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 8.976378 0.000000
- L3 13276512 0.000000 -0.000002 -0.905512 0 8.976376 -0.905500 0
- L3 13276512 0.000000 0.000000 0.905512 0 8.976378 0.905524 0
- END
-TURNOUT HO "Tillig Flex-Schwellenband - ca.220mm 85025"
- U "Straight Section" "" "Tillig" "Flex-Schwellenband - ca.220mm" "85025" 8.661417 1.811024 0.000000 13276512
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.661417 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 8.661417 0.000000
- L3 13276512 0.000000 -0.000002 -0.905512 0 8.661415 -0.905500 0
- L3 13276512 0.000000 0.000000 0.905512 0 8.661417 0.905523 0
- END
-TURNOUT HO "Tillig Betonschwellenband - ca.110mm 85034"
- U "Straight Section" "" "Tillig" "Betonschwellenband - ca.110mm" "85034" 4.330709 1.811024 0.000000 13276512
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.330709 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 4.330709 0.000000
- L3 13276512 0.000000 -0.000002 -0.905512 0 4.330707 -0.905506 0
- L3 13276512 0.000000 0.000000 0.905512 0 4.330709 0.905518 0
- END
-TURNOUT HO "Tillig Stahlschwellenband - ca.54mm 85036"
- U "Straight Section" "" "Tillig" "Stahlschwellenband - ca.54mm" "85036" 2.125984 1.811024 0.000000 13276512
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.125984 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 2.125984 0.000000
- L3 13276512 0.000000 -0.000002 -0.905512 0 2.125982 -0.905509 0
- L3 13276512 0.000000 0.000000 0.905512 0 2.125984 0.905515 0
- END
-TURNOUT HO "Tillig Bogen-Schwellenband - R11 - R366/30 85040"
- U "Curved Section" "" "Tillig" "Bogen-Schwellenband - R11 - R366/30" "85040" 14.409449 30.000000 1.811024 0.000000 13276512
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.204719 1.930497 60.000000
- C 0 0.000000 -14.409449 0.000019 14.409449 150.000076 30.000000
- A3 13276512 0.000000 15.314961 0.000019 14.409449 0 150.000076 30.000000
- A3 13276512 0.000000 13.503937 0.000019 14.409449 0 150.000076 30.000000
- END
-TURNOUT HO "Tillig Bogen-Schwellenband - R21 - R425/30 85041"
- U "Curved Section" "" "Tillig" "Bogen-Schwellenband - R21 - R425/30" "85041" 16.732283 30.000000 1.811024 0.000000 13276512
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.366135 2.241697 60.000000
- C 0 0.000000 -16.732283 0.000022 16.732283 150.000076 30.000000
- A3 13276512 0.000000 17.637795 0.000022 16.732283 0 150.000076 30.000000
- A3 13276512 0.000000 15.826771 0.000022 16.732283 0 150.000076 30.000000
- END
-TURNOUT HO "Tillig Bogen-Schwellenband - R31 -R484/30 85043"
- U "Curved Section" "" "Tillig" "Bogen-Schwellenband - R31 -R484/30" "85043" 19.055118 30.000000 1.811024 0.000000 13276512
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.527552 2.552898 60.000000
- C 0 0.000000 -19.055118 0.000025 19.055118 150.000076 30.000000
- A3 13276512 0.000000 19.960630 0.000025 19.055118 0 150.000076 30.000000
- A3 13276512 0.000000 18.149606 0.000025 19.055118 0 150.000076 30.000000
- END
-TURNOUT HO "Tillig Bogen-Schwellenband - R41 - R543/30 85045"
- U "Curved Section" "" "Tillig" "Bogen-Schwellenband - R41 - R543/30" "85045" 21.377953 30.000000 1.811024 0.000000 13276512
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 10.688968 2.864098 60.000000
- C 0 0.000000 -21.377953 0.000028 21.377953 150.000076 30.000000
- A3 13276512 0.000000 22.283465 0.000028 21.377953 0 150.000076 30.000000
- A3 13276512 0.000000 20.472441 0.000028 21.377953 0 150.000076 30.000000
- END
-TURNOUT HO "Tillig Bausatz Weiche links - EW2 - 15 85422"
- U "Regular Turnout" "" "Tillig" "Bausatz Weiche links - EW2 - 15" "85422" "Bausatz Weiche rechts - EW2 - 15" "85423" 6.834646 15.000000 1.161417 7.007874 1.811024 0.000000 13276512
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 7.007874 0.000000 90.000000
- E 6.834646 1.161417 75.000000
- S 0 0.000000 0.000000 0.000000 0.649600 0.000000
- S 0 0.000000 0.649600 0.000000 7.007874 0.000000
- C 0 0.000000 -14.056793 0.649619 14.056793 164.999924 15.000152
- S 0 0.000000 4.287799 0.478982 6.834646 1.161417
- L3 13276512 0.000000 -0.000002 -0.905512 0 7.007872 -0.905503 0
- L3 13276512 0.000000 0.000000 0.905512 0 0.649600 0.905513 0
- A3 13276512 0.000000 13.151281 0.649619 14.056793 0 164.999924 15.000152
- L3 13276512 0.000000 4.053433 1.353639 0 6.600281 2.036074 0
- END
-TURNOUT HO "Tillig Bausatz Weiche rechts - EW2 - 15 85423"
- U "Regular Turnout" "" "Tillig" "Bausatz Weiche links - EW2 - 15" "85422" "Bausatz Weiche rechts - EW2 - 15" "85423" 6.834646 15.000000 1.161417 7.007874 1.811024 0.000000 13276512
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 7.007874 0.000000 90.000000
- E 6.834646 -1.161417 105.000000
- S 0 0.000000 0.000000 0.000000 0.649600 0.000000
- S 0 0.000000 0.649600 0.000000 7.007874 0.000000
- C 0 0.000000 14.056793 0.649544 -14.056793 0.000076 15.000152
- S 0 0.000000 4.287799 -0.478982 6.834646 -1.161417
- L3 13276512 0.000000 -0.000002 -0.905512 0 0.649598 -0.905511 0
- L3 13276512 0.000000 0.000000 0.905512 0 7.007874 0.905520 0
- A3 13276512 0.000000 13.151281 0.649544 -14.056793 0 0.000076 15.000152
- L3 13276512 0.000000 4.053429 -1.353638 0 6.600276 -2.036073 0
- END
-TURNOUT HO "Tillig Flexsteg-Weiche l - W3 - 12 85451"
- U "Regular Turnout" "" "Tillig" "Flexsteg-Weiche l - W3 - 12" "85451" "Flexsteg-Weiche r - W3 - 12" "85451" 11.050394 12.000000 1.161417 11.181102 1.811024 0.000000 13276512
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 11.181102 0.000000 90.000000
- E 11.050394 1.161417 78.000000
- S 0 0.000000 0.000000 0.000000 0.649981 0.000000
- S 0 0.000000 0.649981 0.000000 11.181102 0.000000
- C 0 0.000000 -46.967142 0.650043 46.967142 167.999924 12.000152
- S 0 0.000000 10.415113 1.026369 11.050394 1.161417
- L3 13276512 0.000000 -0.000002 -0.905512 0 11.181100 -0.905498 0
- L3 13276512 0.000000 0.000000 0.905512 0 0.649981 0.905513 0
- A3 13276512 0.000000 46.061630 0.650043 46.967142 0 167.999924 12.000152
- L3 13276512 0.000000 10.226828 1.912089 0 10.862109 2.047137 0
- END
-TURNOUT HO "Tillig Flexsteg-Weiche r - W3 - 12 85451"
- U "Regular Turnout" "" "Tillig" "Flexsteg-Weiche l - W3 - 12" "85451" "Flexsteg-Weiche r - W3 - 12" "85451" 11.050394 12.000000 1.161417 11.181102 1.811024 0.000000 13276512
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 11.181102 0.000000 90.000000
- E 11.050394 -1.161417 102.000000
- S 0 0.000000 0.000000 0.000000 0.649981 0.000000
- S 0 0.000000 0.649981 0.000000 11.181102 0.000000
- C 0 0.000000 46.967142 0.649794 -46.967142 0.000076 12.000152
- S 0 0.000000 10.415113 -1.026369 11.050394 -1.161417
- L3 13276512 0.000000 -0.000002 -0.905512 0 0.649979 -0.905511 0
- L3 13276512 0.000000 0.000000 0.905512 0 11.181102 0.905526 0
- A3 13276512 0.000000 46.061630 0.649794 -46.967142 0 0.000076 12.000152
- L3 13276512 0.000000 10.226823 -1.912088 0 10.862104 -2.047136 0
- END
-TURNOUT HO "Tillig Flexsteg-Weiche l - W4 - 15 85441"
- U "Regular Turnout" "" "Tillig" "Flexsteg-Weiche l - W4 - 15" "85441" "Flexsteg-Weiche r - W4 - 15" "85441" 8.824409 15.000000 1.161417 8.976378 1.811024 0.000000 13276512
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 8.976378 0.000000 90.000000
- E 8.824409 1.161417 75.000000
- S 0 0.000000 0.000000 0.000000 0.652254 0.000000
- S 0 0.000000 0.652254 0.000000 8.976378 0.000000
- C 0 0.000000 -29.150472 0.652293 29.150472 164.999924 15.000152
- S 0 0.000000 8.197020 0.993297 8.824409 1.161417
- L3 13276512 0.000000 -0.000002 -0.905512 0 8.976376 -0.905501 0
- L3 13276512 0.000000 0.000000 0.905512 0 0.652254 0.905513 0
- A3 13276512 0.000000 28.244960 0.652293 29.150472 0 164.999924 15.000152
- L3 13276512 0.000000 7.962642 1.867950 0 8.590031 2.036070 0
- END
-TURNOUT HO "Tillig Flexsteg-Weiche r - W4 - 15 85441"
- U "Regular Turnout" "" "Tillig" "Flexsteg-Weiche l - W4 - 15" "85441" "Flexsteg-Weiche r - W4 - 15" "85441" 8.824409 15.000000 1.161417 8.976378 1.811024 0.000000 13276512
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 8.976378 0.000000 90.000000
- E 8.824409 -1.161417 105.000000
- S 0 0.000000 0.000000 0.000000 0.652254 0.000000
- S 0 0.000000 0.652254 0.000000 8.976378 0.000000
- C 0 0.000000 29.150472 0.652138 -29.150472 0.000076 15.000152
- S 0 0.000000 8.197020 -0.993297 8.824409 -1.161417
- L3 13276512 0.000000 -0.000002 -0.905512 0 0.652252 -0.905511 0
- L3 13276512 0.000000 0.000000 0.905512 0 8.976378 0.905523 0
- A3 13276512 0.000000 28.244960 0.652138 -29.150472 0 0.000076 15.000152
- L3 13276512 0.000000 7.962637 -1.867949 0 8.590026 -2.036069 0
- END
-TURNOUT HO "Tillig Flexsteg-Weiche l - W5 - 9,4 85435"
- U "Regular Turnout" "" "Tillig" "Flexsteg-Weiche l - W5 - 9,4" "85435" "Flexsteg-Weiche r - W5 - 9,4" "85435" 14.146063 9.400000 1.161417 14.212598 1.811024 0.000000 13276512
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 14.212598 0.000000 90.000000
- E 14.146063 1.161417 80.600000
- S 0 0.000000 0.000000 0.000000 0.669292 0.000000
- S 0 0.000000 0.669292 0.000000 14.212598 0.000000
- C 0 0.000000 -78.590725 0.669396 78.590725 170.599924 9.400152
- S 0 0.000000 13.505393 1.055336 14.146063 1.161417
- L3 13276512 0.000000 -0.000002 -0.905512 0 14.212596 -0.905494 0
- L3 13276512 0.000000 0.000000 0.905512 0 0.669292 0.905513 0
- A3 13276512 0.000000 77.685213 0.669396 78.590725 0 170.599924 9.400152
- L3 13276512 0.000000 13.357475 1.948685 0 13.998145 2.054766 0
- END
-TURNOUT HO "Tillig Flexsteg-Weiche r - W5 - 9,4 85435"
- U "Regular Turnout" "" "Tillig" "Flexsteg-Weiche l - W5 - 9,4" "85435" "Flexsteg-Weiche r - W5 - 9,4" "85435" 14.146063 9.400000 1.161417 14.212598 1.811024 0.000000 13276512
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 14.212598 0.000000 90.000000
- E 14.146063 -1.161417 99.400000
- S 0 0.000000 0.000000 0.000000 0.669292 0.000000
- S 0 0.000000 0.669292 0.000000 14.212598 0.000000
- C 0 0.000000 78.590725 0.668979 -78.590725 0.000076 9.400152
- S 0 0.000000 13.505393 -1.055336 14.146063 -1.161417
- L3 13276512 0.000000 -0.000002 -0.905512 0 0.669290 -0.905511 0
- L3 13276512 0.000000 0.000000 0.905512 0 14.212598 0.905530 0
- A3 13276512 0.000000 77.685213 0.668979 -78.590725 0 0.000076 9.400152
- L3 13276512 0.000000 13.357470 -1.948684 0 13.998140 -2.054765 0
- END
-TURNOUT HO "Tillig Flexsteg-Weiche l - W6 - 6,34 85445"
- U "Regular Turnout" "" "Tillig" "Flexsteg-Weiche l - W6 - 6,34" "85445" "Flexsteg-Weiche r - W6 - 6,34" "85445" 15.240157 6.340000 1.161417 15.275591 1.811024 0.000000 13276512
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 15.275591 0.000000 90.000000
- E 15.240157 1.161417 83.660000
- S 0 0.000000 0.000000 0.000000 0.649600 0.000000
- S 0 0.000000 0.649600 0.000000 15.275591 0.000000
- C 0 0.000000 -74.709370 0.649699 74.709370 173.659924 6.340152
- S 0 0.000000 8.899811 0.456936 15.240157 1.161417
- L3 13276512 0.000000 -0.000002 -0.905512 0 15.275589 -0.905492 0
- L3 13276512 0.000000 0.000000 0.905512 0 0.649600 0.905513 0
- A3 13276512 0.000000 73.803859 0.649699 74.709370 0 173.659924 6.340152
- L3 13276512 0.000000 8.799816 1.356909 0 15.140161 2.061391 0
- END
-TURNOUT HO "Tillig Flexsteg-Weiche r - W6 - 6,34 85445"
- U "Regular Turnout" "" "Tillig" "Flexsteg-Weiche l - W6 - 6,34" "85445" "Flexsteg-Weiche r - W6 - 6,34" "85445" 15.240157 6.340000 1.161417 15.275591 1.811024 0.000000 13276512
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 15.275591 0.000000 90.000000
- E 15.240157 -1.161417 96.340000
- S 0 0.000000 0.000000 0.000000 0.649600 0.000000
- S 0 0.000000 0.649600 0.000000 15.275591 0.000000
- C 0 0.000000 74.709370 0.649303 -74.709370 0.000076 6.340152
- S 0 0.000000 8.899811 -0.456936 15.240157 -1.161417
- L3 13276512 0.000000 -0.000002 -0.905512 0 0.649598 -0.905511 0
- L3 13276512 0.000000 0.000000 0.905512 0 15.275591 0.905531 0
- A3 13276512 0.000000 73.803859 0.649303 -74.709370 0 0.000076 6.340152
- L3 13276512 0.000000 8.799811 -1.356909 0 15.140157 -2.061390 0
- END
+CONTENTS Tillig H0 Elite Code 83
+TURNOUT HO "Tillig Holzschwellen-Flexgleis, 890 mm 85125"
+ U "Straight Section" "" "Tillig" "Holzschwellen-Flexgleis, 890 mm" "85125" 35.039370 1.811024 0.000000 13276512
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 35.039370 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 35.039370 0.000000
+ L3 13276512 0.000000 -0.000002 -0.905512 0 35.039368 -0.905466 0
+ L3 13276512 0.000000 0.000000 0.905512 0 35.039370 0.905558 0
+ END
+TURNOUT HO "Tillig Betonschwellen-Flexgleis, 470 mm 85134"
+ U "Straight Section" "" "Tillig" "Betonschwellen-Flexgleis, 470 mm" "85134" 18.503937 1.811024 0.000000 13276512
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 18.503937 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 18.503937 0.000000
+ L3 13276512 0.000000 -0.000002 -0.905512 0 18.503935 -0.905487 0
+ L3 13276512 0.000000 0.000000 0.905512 0 18.503937 0.905536 0
+ END
+TURNOUT HO "Tillig Stahlschwellen-Flexgleis, 470 mm 85136"
+ U "Straight Section" "" "Tillig" "Stahlschwellen-Flexgleis, 470 mm" "85136" 18.503937 1.811024 0.000000 13276512
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 18.503937 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 18.503937 0.000000
+ L3 13276512 0.000000 -0.000002 -0.905512 0 18.503935 -0.905487 0
+ L3 13276512 0.000000 0.000000 0.905512 0 18.503937 0.905536 0
+ END
+TURNOUT HO "Tillig Gerades Gleis - G1 - 228 mm 85118"
+ U "Straight Section" "" "Tillig" "Gerades Gleis - G1 - 228 mm" "85118" 8.976378 1.811024 0.000000 13276512
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.976378 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 8.976378 0.000000
+ L3 13276512 0.000000 -0.000002 -0.905512 0 8.976376 -0.905500 0
+ L3 13276512 0.000000 0.000000 0.905512 0 8.976378 0.905524 0
+ END
+TURNOUT HO "Tillig Gerades Gleis - G2 - 114 mm 85124"
+ U "Straight Section" "" "Tillig" "Gerades Gleis - G2 - 114 mm" "85124" 4.488189 1.811024 0.000000 13276512
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.488189 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 4.488189 0.000000
+ L3 13276512 0.000000 -0.000002 -0.905512 0 4.488187 -0.905506 0
+ L3 13276512 0.000000 0.000000 0.905512 0 4.488189 0.905518 0
+ END
+TURNOUT HO "Tillig Gerades Gleis - G3 - 64 mm 85130"
+ U "Straight Section" "" "Tillig" "Gerades Gleis - G3 - 64 mm" "85130" 2.519685 1.811024 0.000000 13276512
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.519685 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 2.519685 0.000000
+ L3 13276512 0.000000 -0.000002 -0.905512 0 2.519683 -0.905508 0
+ L3 13276512 0.000000 0.000000 0.905512 0 2.519685 0.905515 0
+ END
+TURNOUT HO "Tillig Gerades Gleis - G4 - 57 mm 85131"
+ U "Straight Section" "" "Tillig" "Gerades Gleis - G4 - 57 mm" "85131" 2.244094 1.811024 0.000000 13276512
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.244094 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 2.244094 0.000000
+ L3 13276512 0.000000 -0.000002 -0.905512 0 2.244092 -0.905509 0
+ L3 13276512 0.000000 0.000000 0.905512 0 2.244094 0.905515 0
+ END
+TURNOUT HO "Tillig Gerades Gleis - G5 - 53 mm 85128"
+ U "Straight Section" "" "Tillig" "Gerades Gleis - G5 - 53 mm" "85128" 2.086614 1.811024 0.000000 13276512
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.086614 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 2.086614 0.000000
+ L3 13276512 0.000000 -0.000002 -0.905512 0 2.086612 -0.905509 0
+ L3 13276512 0.000000 0.000000 0.905512 0 2.086614 0.905515 0
+ END
+TURNOUT HO "Tillig Gerades Gleis - G6 - 50 mm 85129"
+ U "Straight Section" "" "Tillig" "Gerades Gleis - G6 - 50 mm" "85129" 1.968504 1.811024 0.000000 13276512
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.968504 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 1.968504 0.000000
+ L3 13276512 0.000000 -0.000002 -0.905512 0 1.968502 -0.905509 0
+ L3 13276512 0.000000 0.000000 0.905512 0 1.968504 0.905514 0
+ END
+TURNOUT HO "Tillig Gebogenes Gleis - R11 - 30° / R366 85140"
+ U "Curved Section" "" "Tillig" "Gebogenes Gleis - R11 - 30° / R366" "85140" 14.409449 30.000000 1.811024 0.000000 13276512
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.204719 1.930497 60.000000
+ C 0 0.000000 -14.409449 0.000019 14.409449 150.000076 30.000000
+ A3 13276512 0.000000 15.314961 0.000019 14.409449 0 150.000076 30.000000
+ A3 13276512 0.000000 13.503937 0.000019 14.409449 0 150.000076 30.000000
+ END
+TURNOUT HO "Tillig Gebogenes Gleis - R21 - 30° / R425 85141"
+ U "Curved Section" "" "Tillig" "Gebogenes Gleis - R21 - 30° / R425" "85141" 16.732283 30.000000 1.811024 0.000000 13276512
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.366135 2.241697 60.000000
+ C 0 0.000000 -16.732283 0.000022 16.732283 150.000076 30.000000
+ A3 13276512 0.000000 17.637795 0.000022 16.732283 0 150.000076 30.000000
+ A3 13276512 0.000000 15.826771 0.000022 16.732283 0 150.000076 30.000000
+ END
+TURNOUT HO "Tillig Gebogenes Gleis - R31 - 30° / R484 85143"
+ U "Curved Section" "" "Tillig" "Gebogenes Gleis - R31 - 30° / R484" "85143" 19.055118 30.000000 1.811024 0.000000 13276512
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.527552 2.552898 60.000000
+ C 0 0.000000 -19.055118 0.000025 19.055118 150.000076 30.000000
+ A3 13276512 0.000000 19.960630 0.000025 19.055118 0 150.000076 30.000000
+ A3 13276512 0.000000 18.149606 0.000025 19.055118 0 150.000076 30.000000
+ END
+TURNOUT HO "Tillig Gebogenes Gleis - R41 - 30° / R543 85145"
+ U "Curved Section" "" "Tillig" "Gebogenes Gleis - R41 - 30° / R543" "85145" 21.377953 30.000000 1.811024 0.000000 13276512
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 10.688968 2.864098 60.000000
+ C 0 0.000000 -21.377953 0.000028 21.377953 150.000076 30.000000
+ A3 13276512 0.000000 22.283465 0.000028 21.377953 0 150.000076 30.000000
+ A3 13276512 0.000000 20.472441 0.000028 21.377953 0 150.000076 30.000000
+ END
+TURNOUT HO "Tillig Einfache Weiche links - EW2 - 15° 85324"
+ U "Regular Turnout" "" "Tillig" "Einfache Weiche links - EW2 - 15°" "85324" "Einfache Weiche rechts - EW2 - 15°" "85323" 6.833465 15.000000 1.161417 7.007874 1.811024 0.000000 13276512
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 7.007874 0.000000 90.000000
+ E 6.833465 1.161417 75.000000
+ S 0 0.000000 0.000000 0.000000 0.649600 0.000000
+ S 0 0.000000 0.649600 0.000000 7.007874 0.000000
+ C 0 0.000000 -14.047822 0.649619 14.047822 164.999924 15.000152
+ S 0 0.000000 4.285477 0.478677 6.833465 1.161417
+ L3 13276512 0.000000 -0.000002 -0.905512 0 7.007872 -0.905503 0
+ L3 13276512 0.000000 0.000000 0.905512 0 0.649600 0.905513 0
+ A3 13276512 0.000000 13.142310 0.649619 14.047822 0 164.999924 15.000152
+ L3 13276512 0.000000 4.051112 1.353334 0 6.599100 2.036074 0
+ END
+TURNOUT HO "Tillig Einfache Weiche rechts - EW2 - 15° 85323"
+ U "Regular Turnout" "" "Tillig" "Einfache Weiche links - EW2 - 15°" "85324" "Einfache Weiche rechts - EW2 - 15°" "85323" 6.833465 15.000000 1.161417 7.007874 1.811024 0.000000 13276512
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 7.007874 0.000000 90.000000
+ E 6.833465 -1.161417 105.000000
+ S 0 0.000000 0.000000 0.000000 0.649600 0.000000
+ S 0 0.000000 0.649600 0.000000 7.007874 0.000000
+ C 0 0.000000 14.047822 0.649544 -14.047822 0.000076 15.000152
+ S 0 0.000000 4.285477 -0.478677 6.833465 -1.161417
+ L3 13276512 0.000000 -0.000002 -0.905512 0 0.649598 -0.905511 0
+ L3 13276512 0.000000 0.000000 0.905512 0 7.007874 0.905520 0
+ A3 13276512 0.000000 13.142310 0.649544 -14.047822 0 0.000076 15.000152
+ L3 13276512 0.000000 4.051107 -1.353332 0 6.599095 -2.036073 0
+ END
+TURNOUT HO "Tillig Einfache Weiche links - EW1 - 15° 85344"
+ U "Regular Turnout" "" "Tillig" "Einfache Weiche links - EW1 - 15°" "85344" "Einfache Weiche rechts - EW1 - 15°" "85343" 8.824409 15.000000 1.161417 8.976378 1.811024 0.000000 13276512
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 8.976378 0.000000 90.000000
+ E 8.824409 1.161417 75.000000
+ S 0 0.000000 0.000000 0.000000 0.652254 0.000000
+ S 0 0.000000 0.652254 0.000000 8.976378 0.000000
+ C 0 0.000000 -29.150472 0.652293 29.150472 164.999924 15.000152
+ S 0 0.000000 8.197020 0.993297 8.824409 1.161417
+ L3 13276512 0.000000 -0.000002 -0.905512 0 8.976376 -0.905501 0
+ L3 13276512 0.000000 0.000000 0.905512 0 0.652254 0.905513 0
+ A3 13276512 0.000000 28.244960 0.652293 29.150472 0 164.999924 15.000152
+ L3 13276512 0.000000 7.962642 1.867950 0 8.590031 2.036070 0
+ END
+TURNOUT HO "Tillig Einfache Weiche rechts - EW1 - 15° 85343"
+ U "Regular Turnout" "" "Tillig" "Einfache Weiche links - EW1 - 15°" "85344" "Einfache Weiche rechts - EW1 - 15°" "85343" 8.824409 15.000000 1.161417 8.976378 1.811024 0.000000 13276512
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 8.976378 0.000000 90.000000
+ E 8.824409 -1.161417 105.000000
+ S 0 0.000000 0.000000 0.000000 0.652254 0.000000
+ S 0 0.000000 0.652254 0.000000 8.976378 0.000000
+ C 0 0.000000 29.150472 0.652138 -29.150472 0.000076 15.000152
+ S 0 0.000000 8.197020 -0.993297 8.824409 -1.161417
+ L3 13276512 0.000000 -0.000002 -0.905512 0 0.652252 -0.905511 0
+ L3 13276512 0.000000 0.000000 0.905512 0 8.976378 0.905523 0
+ A3 13276512 0.000000 28.244960 0.652138 -29.150472 0 0.000076 15.000152
+ L3 13276512 0.000000 7.962637 -1.867949 0 8.590026 -2.036069 0
+ END
+TURNOUT HO "Tillig Einfache Weiche links - EW3 - 12° 85354"
+ U "Regular Turnout" "" "Tillig" "Einfache Weiche links - EW3 - 12°" "85354" "Einfache Weiche rechts - EW3 - 12°" "85353" 11.050394 12.000000 1.161417 11.181102 1.811024 0.000000 13276512
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 11.181102 0.000000 90.000000
+ E 11.050394 1.161417 78.000000
+ S 0 0.000000 0.000000 0.000000 0.649981 0.000000
+ S 0 0.000000 0.649981 0.000000 11.181102 0.000000
+ C 0 0.000000 -46.967142 0.650043 46.967142 167.999924 12.000152
+ S 0 0.000000 10.415113 1.026369 11.050394 1.161417
+ L3 13276512 0.000000 -0.000002 -0.905512 0 11.181100 -0.905498 0
+ L3 13276512 0.000000 0.000000 0.905512 0 0.649981 0.905513 0
+ A3 13276512 0.000000 46.061630 0.650043 46.967142 0 167.999924 12.000152
+ L3 13276512 0.000000 10.226828 1.912089 0 10.862109 2.047137 0
+ END
+TURNOUT HO "Tillig Einfache Weiche rechts - EW3 - 12° 85353"
+ U "Regular Turnout" "" "Tillig" "Einfache Weiche links - EW3 - 12°" "85354" "Einfache Weiche rechts - EW3 - 12°" "85353" 11.050394 12.000000 1.161417 11.181102 1.811024 0.000000 13276512
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 11.181102 0.000000 90.000000
+ E 11.050394 -1.161417 102.000000
+ S 0 0.000000 0.000000 0.000000 0.649981 0.000000
+ S 0 0.000000 0.649981 0.000000 11.181102 0.000000
+ C 0 0.000000 46.967142 0.649794 -46.967142 0.000076 12.000152
+ S 0 0.000000 10.415113 -1.026369 11.050394 -1.161417
+ L3 13276512 0.000000 -0.000002 -0.905512 0 0.649979 -0.905511 0
+ L3 13276512 0.000000 0.000000 0.905512 0 11.181102 0.905526 0
+ A3 13276512 0.000000 46.061630 0.649794 -46.967142 0 0.000076 12.000152
+ L3 13276512 0.000000 10.226823 -1.912088 0 10.862104 -2.047136 0
+ END
+TURNOUT HO "Tillig Einfache Weiche links - EW5 - 9,4° 85327"
+ U "Regular Turnout" "" "Tillig" "Einfache Weiche links - EW5 - 9,4°" "85327" "Einfache Weiche rechts - EW5 - 9,4°" "85326" 14.146063 9.400000 1.161417 14.212598 1.811024 0.000000 13276512
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 14.212598 0.000000 90.000000
+ E 14.146063 1.161417 80.600000
+ S 0 0.000000 0.000000 0.000000 0.669292 0.000000
+ S 0 0.000000 0.669292 0.000000 14.212598 0.000000
+ C 0 0.000000 -78.590725 0.669396 78.590725 170.599924 9.400152
+ S 0 0.000000 13.505393 1.055336 14.146063 1.161417
+ L3 13276512 0.000000 -0.000002 -0.905512 0 14.212596 -0.905494 0
+ L3 13276512 0.000000 0.000000 0.905512 0 0.669292 0.905513 0
+ A3 13276512 0.000000 77.685213 0.669396 78.590725 0 170.599924 9.400152
+ L3 13276512 0.000000 13.357475 1.948685 0 13.998145 2.054766 0
+ END
+TURNOUT HO "Tillig Einfache Weiche rechts - EW5 - 9,4° 85326"
+ U "Regular Turnout" "" "Tillig" "Einfache Weiche links - EW5 - 9,4°" "85327" "Einfache Weiche rechts - EW5 - 9,4°" "85326" 14.146063 9.400000 1.161417 14.212598 1.811024 0.000000 13276512
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 14.212598 0.000000 90.000000
+ E 14.146063 -1.161417 99.400000
+ S 0 0.000000 0.000000 0.000000 0.669292 0.000000
+ S 0 0.000000 0.669292 0.000000 14.212598 0.000000
+ C 0 0.000000 78.590725 0.668979 -78.590725 0.000076 9.400152
+ S 0 0.000000 13.505393 -1.055336 14.146063 -1.161417
+ L3 13276512 0.000000 -0.000002 -0.905512 0 0.669290 -0.905511 0
+ L3 13276512 0.000000 0.000000 0.905512 0 14.212598 0.905530 0
+ A3 13276512 0.000000 77.685213 0.668979 -78.590725 0 0.000076 9.400152
+ L3 13276512 0.000000 13.357470 -1.948684 0 13.998140 -2.054765 0
+ END
+TURNOUT HO "Tillig Einfache Weiche links - EW6 - 6,34° 85347"
+ U "Regular Turnout" "" "Tillig" "Einfache Weiche links - EW6 - 6,34°" "85347" "Einfache Weiche rechts - EW6 - 6,34°" "85346" 15.240157 6.340000 1.161417 15.314961 1.811024 0.000000 13276512
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 15.314961 0.000000 90.000000
+ E 15.240157 1.161417 83.660000
+ S 0 0.000000 0.000000 0.000000 0.649600 0.000000
+ S 0 0.000000 0.649600 0.000000 15.314961 0.000000
+ C 0 0.000000 -74.709370 0.649699 74.709370 173.659924 6.340152
+ S 0 0.000000 8.899811 0.456936 15.240157 1.161417
+ L3 13276512 0.000000 -0.000002 -0.905512 0 15.314959 -0.905492 0
+ L3 13276512 0.000000 0.000000 0.905512 0 0.649600 0.905513 0
+ A3 13276512 0.000000 73.803859 0.649699 74.709370 0 173.659924 6.340152
+ L3 13276512 0.000000 8.799816 1.356909 0 15.140161 2.061391 0
+ END
+TURNOUT HO "Tillig Einfache Weiche rechts - EW6 - 6,34° 85346"
+ U "Regular Turnout" "" "Tillig" "Einfache Weiche links - EW6 - 6,34°" "85347" "Einfache Weiche rechts - EW6 - 6,34°" "85346" 15.240157 6.340000 1.161417 15.314961 1.811024 0.000000 13276512
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 15.314961 0.000000 90.000000
+ E 15.240157 -1.161417 96.340000
+ S 0 0.000000 0.000000 0.000000 0.649600 0.000000
+ S 0 0.000000 0.649600 0.000000 15.314961 0.000000
+ C 0 0.000000 74.709370 0.649303 -74.709370 0.000076 6.340152
+ S 0 0.000000 8.899811 -0.456936 15.240157 -1.161417
+ L3 13276512 0.000000 -0.000002 -0.905512 0 0.649598 -0.905511 0
+ L3 13276512 0.000000 0.000000 0.905512 0 15.314961 0.905531 0
+ A3 13276512 0.000000 73.803859 0.649303 -74.709370 0 0.000076 6.340152
+ L3 13276512 0.000000 8.799811 -1.356909 0 15.140157 -2.061390 0
+ END
+TURNOUT HO "Tillig Innenbogenweiche links - IBW - 17°/29° 85374"
+ U "Curved Turnout" "" "Tillig" "Innenbogenweiche links - IBW - 17°/29°" "85374" "Innenbogenweiche rechts - IBW - 17°/29°" "85373" 10.192126 29.000000 2.635827 17.000000 1.606299 10.751969 1.811024 0.000000 13276512
+ P "Normal" 1 4 5
+ P "Reverse" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 10.751969 1.606299 73.000000
+ E 10.192126 2.635827 61.000000
+ S 0 0.000000 0.000000 0.000000 0.649786 0.000000
+ C 0 0.000000 -18.510766 0.649811 18.510766 150.999924 29.000152
+ S 0 0.000000 9.624019 2.320905 10.192126 2.635827
+ C 0 0.000000 -32.414571 0.653702 32.414571 162.999923 17.006999
+ S 0 0.000000 10.130838 1.416385 10.751969 1.606299
+ L3 13276512 0.000000 -0.000002 -0.905512 0 0.649784 -0.905511 0
+ L3 13276512 0.000000 0.000000 0.905512 0 0.649786 0.905513 0
+ A3 13276512 0.000000 17.605254 0.649811 18.510766 0 150.999924 29.000152
+ L3 13276512 0.000000 9.185003 3.112875 0 9.753110 3.427797 0
+ A3 13276512 0.000000 33.320083 0.653702 32.414571 0 162.999923 17.006999
+ L3 13276512 0.000000 10.395604 0.550446 0 11.016735 0.740360 0
+ END
+TURNOUT HO "Tillig Innenbogenweiche rechts - IBW - 17°/29° 85373"
+ U "Curved Turnout" "" "Tillig" "Innenbogenweiche links - IBW - 17°/29°" "85374" "Innenbogenweiche rechts - IBW - 17°/29°" "85373" 10.192126 29.000000 2.635827 17.000000 1.606299 10.751969 1.811024 0.000000 13276512
+ P "Normal" 1 4 5
+ P "Reverse" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 10.751969 -1.606299 107.000000
+ E 10.192126 -2.635827 119.000000
+ S 0 0.000000 0.000000 0.000000 0.649786 0.000000
+ C 0 0.000000 18.510766 0.649712 -18.510766 0.000076 29.000152
+ S 0 0.000000 9.624019 -2.320905 10.192126 -2.635827
+ C 0 0.000000 32.414571 0.653702 -32.414571 359.993230 17.006999
+ S 0 0.000000 10.130838 -1.416385 10.751969 -1.606299
+ L3 13276512 0.000000 -0.000002 -0.905512 0 0.649784 -0.905511 0
+ L3 13276512 0.000000 0.000000 0.905512 0 0.649786 0.905513 0
+ A3 13276512 0.000000 17.605254 0.649712 -18.510766 0 0.000076 29.000152
+ L3 13276512 0.000000 9.184999 -3.112873 0 9.753106 -3.427795 0
+ A3 13276512 0.000000 33.320083 0.653702 -32.414571 0 359.993230 17.006999
+ L3 13276512 0.000000 10.395604 -0.550446 0 11.016735 -0.740360 0
+ END
+TURNOUT HO "Tillig Innenbogenweiche links - IBW - 15°/30° 85364"
+ U "Curved Turnout" "" "Tillig" "Innenbogenweiche links - IBW - 15°/30°" "85364" "Innenbogenweiche rechts - IBW - 15°/30°" "85363" 8.366142 30.000000 2.241732 15.000000 1.161417 8.824409 1.811024 0.000000 13276512
+ P "Normal" 1 4 5
+ P "Reverse" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 8.824409 1.161417 75.000000
+ E 8.366142 2.241732 60.000000
+ S 0 0.000000 0.000000 0.000000 0.649600 0.000000
+ C 0 0.000000 -14.307824 0.649619 14.307824 149.999924 30.000152
+ S 0 0.000000 7.803539 1.916901 8.366142 2.241732
+ C 0 0.000000 -29.150472 0.652292 29.150472 164.999923 15.005369
+ S 0 0.000000 8.197020 0.993297 8.824409 1.161417
+ L3 13276512 0.000000 -0.000002 -0.905512 0 0.649598 -0.905511 0
+ L3 13276512 0.000000 0.000000 0.905512 0 0.649600 0.905513 0
+ A3 13276512 0.000000 13.402312 0.649619 14.307824 0 149.999924 30.000152
+ L3 13276512 0.000000 7.350772 2.701090 0 7.913374 3.025921 0
+ A3 13276512 0.000000 30.055984 0.652292 29.150472 0 164.999923 15.005369
+ L3 13276512 0.000000 8.431400 0.118644 0 9.058789 0.286764 0
+ END
+TURNOUT HO "Tillig Innenbogenweiche rechts - IBW - 15°/30° 85363"
+ U "Curved Turnout" "" "Tillig" "Innenbogenweiche links - IBW - 15°/30°" "85364" "Innenbogenweiche rechts - IBW - 15°/30°" "85363" 8.366142 30.000000 2.241732 15.000000 1.161417 8.824409 1.811024 0.000000 13276512
+ P "Normal" 1 4 5
+ P "Reverse" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 8.824409 -1.161417 105.000000
+ E 8.366142 -2.241732 120.000000
+ S 0 0.000000 0.000000 0.000000 0.649600 0.000000
+ C 0 0.000000 14.307824 0.649543 -14.307824 0.000076 30.000152
+ S 0 0.000000 7.803539 -1.916901 8.366142 -2.241732
+ C 0 0.000000 29.150472 0.652292 -29.150472 359.994860 15.005369
+ S 0 0.000000 8.197020 -0.993297 8.824409 -1.161417
+ L3 13276512 0.000000 -0.000002 -0.905512 0 0.649598 -0.905511 0
+ L3 13276512 0.000000 0.000000 0.905512 0 0.649600 0.905513 0
+ A3 13276512 0.000000 13.402312 0.649543 -14.307824 0 0.000076 30.000152
+ L3 13276512 0.000000 7.350767 -2.701088 0 7.913370 -3.025919 0
+ A3 13276512 0.000000 30.055984 0.652292 -29.150472 0 359.994860 15.005369
+ L3 13276512 0.000000 8.431400 -0.118644 0 9.058789 -0.286764 0
+ END
+TURNOUT HO "Tillig Innenbogenweiche links - IBW - 20,7°/32,7° 85314"
+ U "Curved Turnout" "" "Tillig" "Innenbogenweiche links - IBW - 20,7°/32,7°" "85314" "Innenbogenweiche rechts - IBW - 20,7°/32,7°" "85313" 10.294094 32.700000 3.019685 20.700000 1.977165 10.826772 1.811024 0.000000 13276512
+ P "Normal" 1 4 5
+ P "Reverse" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 10.826772 1.977165 69.300000
+ E 10.294094 3.019685 57.300000
+ S 0 0.000000 0.000000 0.000000 0.650571 0.000000
+ C 0 0.000000 -16.838596 0.650593 16.838596 147.299924 32.700152
+ S 0 0.000000 9.747490 2.668756 10.294094 3.019685
+ C 0 0.000000 -27.070099 0.650555 27.070099 159.299924 20.700042
+ S 0 0.000000 10.219177 1.747559 10.826772 1.977165
+ L3 13276512 0.000000 -0.000002 -0.905512 0 0.650568 -0.905511 0
+ L3 13276512 0.000000 0.000000 0.905512 0 0.650571 0.905513 0
+ A3 13276512 0.000000 15.933084 0.650593 16.838596 0 147.299924 32.700152
+ L3 13276512 0.000000 9.258281 3.430744 0 9.804885 3.781674 0
+ A3 13276512 0.000000 27.975611 0.650555 27.070099 0 159.299924 20.700042
+ L3 13276512 0.000000 10.539273 0.900511 0 11.146867 1.130117 0
+ END
+TURNOUT HO "Tillig Innenbogenweiche rechts - IBW - 20,7°/32,7° 85313"
+ U "Curved Turnout" "" "Tillig" "Innenbogenweiche links - IBW - 20,7°/32,7°" "85314" "Innenbogenweiche rechts - IBW - 20,7°/32,7°" "85313" 10.294094 32.700000 3.019685 20.700000 1.977165 10.826772 1.811024 0.000000 13276512
+ P "Normal" 1 4 5
+ P "Reverse" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 10.826772 -1.977165 110.700000
+ E 10.294094 -3.019685 122.700000
+ S 0 0.000000 0.000000 0.000000 0.650571 0.000000
+ C 0 0.000000 16.838596 0.650504 -16.838596 0.000076 32.700152
+ S 0 0.000000 9.747490 -2.668756 10.294094 -3.019685
+ C 0 0.000000 27.070099 0.650411 -27.070099 0.000186 20.700042
+ S 0 0.000000 10.219177 -1.747559 10.826772 -1.977165
+ L3 13276512 0.000000 -0.000002 -0.905512 0 0.650568 -0.905511 0
+ L3 13276512 0.000000 0.000000 0.905512 0 0.650571 0.905513 0
+ A3 13276512 0.000000 15.933084 0.650504 -16.838596 0 0.000076 32.700152
+ L3 13276512 0.000000 9.258277 -3.430742 0 9.804881 -3.781671 0
+ A3 13276512 0.000000 27.975611 0.650411 -27.070099 0 0.000186 20.700042
+ L3 13276512 0.000000 10.539273 -0.900511 0 11.146867 -1.130117 0
+ END
+TURNOUT HO "Tillig Innenbogenweiche links - IBW - 29,3°/41,3° 85334"
+ U "Curved Turnout" "" "Tillig" "Innenbogenweiche links - IBW - 29,3°/41,3°" "85334" "Innenbogenweiche rechts - IBW - 29,3°/41,3°" "85333" 9.796063 41.300000 3.691732 29.300000 2.735039 10.461811 1.811024 0.000000 13276512
+ P "Normal" 1 4 5
+ P "Reverse" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 10.461811 2.735039 60.700000
+ E 9.796063 3.691732 48.700000
+ S 0 0.000000 0.000000 0.000000 0.649964 0.000000
+ C 0 0.000000 -13.118283 0.649981 13.118283 138.699924 41.300152
+ S 0 0.000000 9.308073 3.263005 9.796063 3.691732
+ C 0 0.000000 -18.891427 0.649625 18.891427 150.699924 29.299049
+ S 0 0.000000 9.894769 2.416815 10.461811 2.735039
+ L3 13276512 0.000000 -0.000002 -0.905512 0 0.649961 -0.905511 0
+ L3 13276512 0.000000 0.000000 0.905512 0 0.649964 0.905513 0
+ A3 13276512 0.000000 12.212771 0.649981 13.118283 0 138.699924 41.300152
+ L3 13276512 0.000000 8.710421 3.943273 0 9.198411 4.372000 0
+ A3 13276512 0.000000 19.796939 0.649625 18.891427 0 150.699924 29.299049
+ L3 13276512 0.000000 10.337929 1.627155 0 10.904970 1.945380 0
+ END
+TURNOUT HO "Tillig Innenbogenweiche rechts - IBW - 29,3°/41,3° 85333"
+ U "Curved Turnout" "" "Tillig" "Innenbogenweiche links - IBW - 29,3°/41,3°" "85334" "Innenbogenweiche rechts - IBW - 29,3°/41,3°" "85333" 9.796063 41.300000 3.691732 29.300000 2.735039 10.461811 1.811024 0.000000 13276512
+ P "Normal" 1 4 5
+ P "Reverse" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 10.461811 -2.735039 119.300000
+ E 9.796063 -3.691732 131.300000
+ S 0 0.000000 0.000000 0.000000 0.649964 0.000000
+ C 0 0.000000 13.118283 0.649912 -13.118283 0.000076 41.300152
+ S 0 0.000000 9.308073 -3.263005 9.796063 -3.691732
+ C 0 0.000000 18.891427 0.649525 -18.891427 0.001179 29.299049
+ S 0 0.000000 9.894769 -2.416815 10.461811 -2.735039
+ L3 13276512 0.000000 -0.000002 -0.905512 0 0.649961 -0.905511 0
+ L3 13276512 0.000000 0.000000 0.905512 0 0.649964 0.905513 0
+ A3 13276512 0.000000 12.212771 0.649912 -13.118283 0 0.000076 41.300152
+ L3 13276512 0.000000 8.710417 -3.943270 0 9.198408 -4.371997 0
+ A3 13276512 0.000000 19.796939 0.649525 -18.891427 0 0.001179 29.299049
+ L3 13276512 0.000000 10.337929 -1.627155 0 10.904970 -1.945380 0
+ END
+TURNOUT HO "Tillig Außenbogenweiche - ABW - 2x 7,5° 85381"
+ U "Wye Turnout" "" "Tillig" "Außenbogenweiche - ABW - 2x 7,5°" "85381" 8.937008 7.500000 0.585433 0.585433 7.500000 8.937008 1.811024 0.000000 13276512
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 8.937008 0.585433 82.500000
+ E 8.937008 -0.585433 97.500000
+ S 0 0.000000 0.000000 0.000000 0.654801 0.000000
+ C 0 0.000000 -58.518309 0.654878 58.518309 172.499924 7.500152
+ S 0 0.000000 8.293120 0.500652 8.937008 0.585433
+ C 0 0.000000 58.518309 0.654568 -58.518309 0.000076 7.500152
+ S 0 0.000000 8.293120 -0.500652 8.937008 -0.585433
+ L3 13276512 0.000000 -0.000002 -0.905512 0 0.654798 -0.905511 0
+ L3 13276512 0.000000 0.000000 0.905512 0 0.654801 0.905513 0
+ A3 13276512 0.000000 57.612797 0.654878 58.518309 0 172.499924 7.500152
+ L3 13276512 0.000000 8.174912 1.398415 0 8.818800 1.483196 0
+ A3 13276512 0.000000 57.612797 0.654568 -58.518309 0 0.000076 7.500152
+ L3 13276512 0.000000 8.174907 -1.398414 0 8.818795 -1.483195 0
+ END
+TURNOUT HO "Tillig Außenbogenweiche - ABW - 2x 6° 85383"
+ U "Wye Turnout" "" "Tillig" "Außenbogenweiche - ABW - 2x 6°" "85383" 11.141732 6.000000 0.583858 0.583858 6.000000 11.141732 1.811024 0.000000 13276512
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 11.141732 0.583858 84.000000
+ E 11.141732 -0.583858 96.000000
+ S 0 0.000000 0.000000 0.000000 0.650931 0.000000
+ C 0 0.000000 -94.182658 0.651056 94.182658 173.999924 6.000152
+ S 0 0.000000 10.495940 0.515968 11.141732 0.583858
+ C 0 0.000000 94.182658 0.650556 -94.182658 0.000076 6.000152
+ S 0 0.000000 10.495940 -0.515968 11.141732 -0.583858
+ L3 13276512 0.000000 -0.000002 -0.905512 0 0.650929 -0.905511 0
+ L3 13276512 0.000000 0.000000 0.905512 0 0.650931 0.905513 0
+ A3 13276512 0.000000 93.277146 0.651056 94.182658 0 173.999924 6.000152
+ L3 13276512 0.000000 10.401269 1.416517 0 11.047061 1.484407 0
+ A3 13276512 0.000000 93.277146 0.650556 -94.182658 0 0.000076 6.000152
+ L3 13276512 0.000000 10.401264 -1.416517 0 11.047056 -1.484407 0
+ END
+TURNOUT HO "Tillig Einfache Kreuzungsweiche - EKW I - 15° 85395"
+ U "Single Slipswitch" "" "Tillig" "Einfache Kreuzungsweiche - EKW I - 15°" "85395" 8.976378 15.000000 8.976378 1.811024 0.000000 13276512
+ P "Normal" 1 2 0 3 4
+ P "Reverse" 1 5 4
+ E 0.000000 0.000000 270.000000
+ E 8.976378 0.000000 90.000000
+ E 0.152930 1.161622 285.000000
+ E 8.823448 -1.161622 105.000000
+ S 0 0.000000 0.000000 0.000000 1.299323 0.000000
+ S 0 0.000000 1.299323 0.000000 8.976378 0.000000
+ S 0 0.000000 0.152930 1.161622 7.568581 -0.825371
+ S 0 0.000000 7.568581 -0.825371 8.823448 -1.161622
+ C 0 0.000000 24.222333 1.299226 -24.222333 0.000076 15.000152
+ L3 13276512 0.000000 -0.000002 -0.905512 0 1.299320 -0.905510 0
+ L3 13276512 0.000000 4.658034 0.905516 0 8.976378 0.905522 0
+ L3 13276512 0.000000 0.387292 2.036280 0 4.558596 0.918596 0
+ L3 13276512 0.000000 7.334207 -1.700026 0 8.589075 -2.036277 0
+ A3 13276512 0.000000 23.316822 1.299226 -24.222333 0 0.000076 15.000152
+ END
+TURNOUT HO "Tillig Doppelkreuzungsweiche - DKW I - 15° 85390"
+ U "Double Slipswitch" "" "Tillig" "Doppelkreuzungsweiche - DKW I - 15°" "85390" 8.976378 15.000000 8.976378 1.811024 0.000000 13276512
+ P "Normal" 1 2 3 0 4 5 6
+ P "Reverse" 1 7 6 0 4 8 3
+ E 0.000000 0.000000 270.000000
+ E 8.976378 0.000000 90.000000
+ E 0.152930 1.161622 285.000000
+ E 8.823448 -1.161622 105.000000
+ S 0 0.000000 0.000000 0.000000 1.299323 0.000000
+ S 0 0.000000 1.299323 0.000000 7.677055 0.000000
+ S 0 0.000000 7.677055 0.000000 8.976378 0.000000
+ S 0 0.000000 0.152930 1.161622 1.407797 0.825371
+ S 0 0.000000 1.407797 0.825371 7.568581 -0.825371
+ S 0 0.000000 7.568581 -0.825371 8.823448 -1.161622
+ C 0 0.000000 24.222333 1.299226 -24.222333 0.000076 15.000152
+ C 0 0.000000 -24.222333 7.677086 24.222325 180.000076 15.000152
+ L3 13276512 0.000000 -0.000002 -0.905512 0 1.299320 -0.905510 0
+ L3 13276512 0.000000 7.677055 0.905512 0 8.976378 0.905514 0
+ L3 13276512 0.000000 0.387301 2.036277 0 1.642169 1.700026 0
+ L3 13276512 0.000000 7.334207 -1.700026 0 8.589075 -2.036277 0
+ A3 13276512 0.000000 23.316822 1.299226 -24.222333 0 0.000076 15.000152
+ A3 13276512 0.000000 23.316822 7.677086 24.222325 0 180.000076 15.000152
+ END
+TURNOUT HO "Tillig Doppelkreuzungsweiche - DKW II (Bauart Baeseler) - 15° 85391"
+ U "Double Slipswitch" "" "Tillig" "Doppelkreuzungsweiche - DKW II (Bauart Baeseler) - 15°" "85391" 10.866142 15.000000 10.866142 1.811024 0.000000 13276512
+ P "Normal" 1 2 3 0 4 5 6
+ P "Reverse" 1 7 6 0 4 8 3
+ E 0.000000 0.000000 270.000000
+ E 10.866142 0.000000 90.000000
+ E 0.185125 1.406174 285.000000
+ E 10.681017 -1.406174 105.000000
+ S 0 0.000000 0.000000 0.000000 1.299351 0.000000
+ S 0 0.000000 1.299351 0.000000 9.566791 0.000000
+ S 0 0.000000 9.566791 0.000000 10.866142 0.000000
+ S 0 0.000000 0.185125 1.406174 1.439974 1.069926
+ S 0 0.000000 1.439974 1.069926 9.426168 -1.069926
+ S 0 0.000000 9.426168 -1.069926 10.681017 -1.406174
+ C 0 0.000000 31.399323 1.299226 -31.399323 0.000076 15.000152
+ C 0 0.000000 -31.399323 9.566831 31.399312 180.000076 15.000152
+ L3 13276512 0.000000 -0.000002 -0.905512 0 1.299349 -0.905510 0
+ L3 13276512 0.000000 9.566791 0.905512 0 10.866142 0.905514 0
+ L3 13276512 0.000000 0.419498 2.280829 0 1.674347 1.944580 0
+ L3 13276512 0.000000 9.191792 -1.944580 0 10.446641 -2.280828 0
+ A3 13276512 0.000000 30.493811 1.299226 -31.399323 0 0.000076 15.000152
+ A3 13276512 0.000000 30.493811 9.566831 31.399312 0 180.000076 15.000152
+ END
+TURNOUT HO "Tillig Kreuzung - K - 15° 85160"
+ U "Crossing" "" "Tillig" "Kreuzung - K - 15°" "85160" 8.976378 15.000000 8.976378 1.811024 0.000000 13276512
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 8.976378 0.000000 90.000000
+ E 0.152930 1.161622 285.000000
+ E 8.823448 -1.161622 105.000000
+ S 0 0.000000 0.000000 0.000000 8.976378 0.000000
+ S 0 0.000000 0.152930 1.161622 8.823448 -1.161622
+ L3 13276512 0.000000 -0.000002 -0.905512 0 4.488187 -0.905506 0
+ L3 13276512 0.000000 4.488189 0.905518 0 8.976378 0.905524 0
+ L3 13276512 0.000000 4.253823 -0.874657 0 8.589083 -2.036279 0
+ L3 13276512 0.000000 0.387293 2.036279 0 4.722553 0.874657 0
+ END
+TURNOUT HO "Tillig Kreuzung - 30° 85170"
+ U "Crossing" "" "Tillig" "Kreuzung - 30°" "85170" 4.488189 30.000000 4.488189 1.811024 0.000000 13276512
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 4.488189 0.000000 90.000000
+ E 0.300650 1.122044 300.000000
+ E 4.187539 -1.122044 120.000000
+ S 0 0.000000 0.000000 0.000000 4.488189 0.000000
+ S 0 0.000000 0.300650 1.122044 4.187539 -1.122044
+ L3 13276512 0.000000 -0.000002 -0.905512 0 1.963580 -0.905509 0
+ L3 13276512 0.000000 2.524606 0.905515 0 4.488189 0.905518 0
+ L3 13276512 0.000000 2.034267 -0.924451 0 3.734782 -1.906239 0
+ L3 13276512 0.000000 0.753405 1.906240 0 2.453919 0.924452 0
+ END
+TURNOUT HO "Tillig Gerades Schwellenband - G1 - 228mm 85018"
+ U "Straight Section" "" "Tillig" "Gerades Schwellenband - G1 - 228mm" "85018" 8.976378 1.811024 0.000000 13276512
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.976378 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 8.976378 0.000000
+ L3 13276512 0.000000 -0.000002 -0.905512 0 8.976376 -0.905500 0
+ L3 13276512 0.000000 0.000000 0.905512 0 8.976378 0.905524 0
+ END
+TURNOUT HO "Tillig Flex-Schwellenband - ca.220mm 85025"
+ U "Straight Section" "" "Tillig" "Flex-Schwellenband - ca.220mm" "85025" 8.661417 1.811024 0.000000 13276512
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.661417 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 8.661417 0.000000
+ L3 13276512 0.000000 -0.000002 -0.905512 0 8.661415 -0.905500 0
+ L3 13276512 0.000000 0.000000 0.905512 0 8.661417 0.905523 0
+ END
+TURNOUT HO "Tillig Betonschwellenband - ca.110mm 85034"
+ U "Straight Section" "" "Tillig" "Betonschwellenband - ca.110mm" "85034" 4.330709 1.811024 0.000000 13276512
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.330709 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 4.330709 0.000000
+ L3 13276512 0.000000 -0.000002 -0.905512 0 4.330707 -0.905506 0
+ L3 13276512 0.000000 0.000000 0.905512 0 4.330709 0.905518 0
+ END
+TURNOUT HO "Tillig Stahlschwellenband - ca.54mm 85036"
+ U "Straight Section" "" "Tillig" "Stahlschwellenband - ca.54mm" "85036" 2.125984 1.811024 0.000000 13276512
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.125984 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 2.125984 0.000000
+ L3 13276512 0.000000 -0.000002 -0.905512 0 2.125982 -0.905509 0
+ L3 13276512 0.000000 0.000000 0.905512 0 2.125984 0.905515 0
+ END
+TURNOUT HO "Tillig Bogen-Schwellenband - R11 - R366/30° 85040"
+ U "Curved Section" "" "Tillig" "Bogen-Schwellenband - R11 - R366/30°" "85040" 14.409449 30.000000 1.811024 0.000000 13276512
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.204719 1.930497 60.000000
+ C 0 0.000000 -14.409449 0.000019 14.409449 150.000076 30.000000
+ A3 13276512 0.000000 15.314961 0.000019 14.409449 0 150.000076 30.000000
+ A3 13276512 0.000000 13.503937 0.000019 14.409449 0 150.000076 30.000000
+ END
+TURNOUT HO "Tillig Bogen-Schwellenband - R21 - R425/30° 85041"
+ U "Curved Section" "" "Tillig" "Bogen-Schwellenband - R21 - R425/30°" "85041" 16.732283 30.000000 1.811024 0.000000 13276512
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.366135 2.241697 60.000000
+ C 0 0.000000 -16.732283 0.000022 16.732283 150.000076 30.000000
+ A3 13276512 0.000000 17.637795 0.000022 16.732283 0 150.000076 30.000000
+ A3 13276512 0.000000 15.826771 0.000022 16.732283 0 150.000076 30.000000
+ END
+TURNOUT HO "Tillig Bogen-Schwellenband - R31 -R484/30° 85043"
+ U "Curved Section" "" "Tillig" "Bogen-Schwellenband - R31 -R484/30°" "85043" 19.055118 30.000000 1.811024 0.000000 13276512
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.527552 2.552898 60.000000
+ C 0 0.000000 -19.055118 0.000025 19.055118 150.000076 30.000000
+ A3 13276512 0.000000 19.960630 0.000025 19.055118 0 150.000076 30.000000
+ A3 13276512 0.000000 18.149606 0.000025 19.055118 0 150.000076 30.000000
+ END
+TURNOUT HO "Tillig Bogen-Schwellenband - R41 - R543/30° 85045"
+ U "Curved Section" "" "Tillig" "Bogen-Schwellenband - R41 - R543/30°" "85045" 21.377953 30.000000 1.811024 0.000000 13276512
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 10.688968 2.864098 60.000000
+ C 0 0.000000 -21.377953 0.000028 21.377953 150.000076 30.000000
+ A3 13276512 0.000000 22.283465 0.000028 21.377953 0 150.000076 30.000000
+ A3 13276512 0.000000 20.472441 0.000028 21.377953 0 150.000076 30.000000
+ END
+TURNOUT HO "Tillig Bausatz Weiche links - EW2 - 15° 85422"
+ U "Regular Turnout" "" "Tillig" "Bausatz Weiche links - EW2 - 15°" "85422" "Bausatz Weiche rechts - EW2 - 15°" "85423" 6.834646 15.000000 1.161417 7.007874 1.811024 0.000000 13276512
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 7.007874 0.000000 90.000000
+ E 6.834646 1.161417 75.000000
+ S 0 0.000000 0.000000 0.000000 0.649600 0.000000
+ S 0 0.000000 0.649600 0.000000 7.007874 0.000000
+ C 0 0.000000 -14.056793 0.649619 14.056793 164.999924 15.000152
+ S 0 0.000000 4.287799 0.478982 6.834646 1.161417
+ L3 13276512 0.000000 -0.000002 -0.905512 0 7.007872 -0.905503 0
+ L3 13276512 0.000000 0.000000 0.905512 0 0.649600 0.905513 0
+ A3 13276512 0.000000 13.151281 0.649619 14.056793 0 164.999924 15.000152
+ L3 13276512 0.000000 4.053433 1.353639 0 6.600281 2.036074 0
+ END
+TURNOUT HO "Tillig Bausatz Weiche rechts - EW2 - 15° 85423"
+ U "Regular Turnout" "" "Tillig" "Bausatz Weiche links - EW2 - 15°" "85422" "Bausatz Weiche rechts - EW2 - 15°" "85423" 6.834646 15.000000 1.161417 7.007874 1.811024 0.000000 13276512
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 7.007874 0.000000 90.000000
+ E 6.834646 -1.161417 105.000000
+ S 0 0.000000 0.000000 0.000000 0.649600 0.000000
+ S 0 0.000000 0.649600 0.000000 7.007874 0.000000
+ C 0 0.000000 14.056793 0.649544 -14.056793 0.000076 15.000152
+ S 0 0.000000 4.287799 -0.478982 6.834646 -1.161417
+ L3 13276512 0.000000 -0.000002 -0.905512 0 0.649598 -0.905511 0
+ L3 13276512 0.000000 0.000000 0.905512 0 7.007874 0.905520 0
+ A3 13276512 0.000000 13.151281 0.649544 -14.056793 0 0.000076 15.000152
+ L3 13276512 0.000000 4.053429 -1.353638 0 6.600276 -2.036073 0
+ END
+TURNOUT HO "Tillig Flexsteg-Weiche l - W3 - 12° 85451"
+ U "Regular Turnout" "" "Tillig" "Flexsteg-Weiche l - W3 - 12°" "85451" "Flexsteg-Weiche r - W3 - 12°" "85451" 11.050394 12.000000 1.161417 11.181102 1.811024 0.000000 13276512
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 11.181102 0.000000 90.000000
+ E 11.050394 1.161417 78.000000
+ S 0 0.000000 0.000000 0.000000 0.649981 0.000000
+ S 0 0.000000 0.649981 0.000000 11.181102 0.000000
+ C 0 0.000000 -46.967142 0.650043 46.967142 167.999924 12.000152
+ S 0 0.000000 10.415113 1.026369 11.050394 1.161417
+ L3 13276512 0.000000 -0.000002 -0.905512 0 11.181100 -0.905498 0
+ L3 13276512 0.000000 0.000000 0.905512 0 0.649981 0.905513 0
+ A3 13276512 0.000000 46.061630 0.650043 46.967142 0 167.999924 12.000152
+ L3 13276512 0.000000 10.226828 1.912089 0 10.862109 2.047137 0
+ END
+TURNOUT HO "Tillig Flexsteg-Weiche r - W3 - 12° 85451"
+ U "Regular Turnout" "" "Tillig" "Flexsteg-Weiche l - W3 - 12°" "85451" "Flexsteg-Weiche r - W3 - 12°" "85451" 11.050394 12.000000 1.161417 11.181102 1.811024 0.000000 13276512
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 11.181102 0.000000 90.000000
+ E 11.050394 -1.161417 102.000000
+ S 0 0.000000 0.000000 0.000000 0.649981 0.000000
+ S 0 0.000000 0.649981 0.000000 11.181102 0.000000
+ C 0 0.000000 46.967142 0.649794 -46.967142 0.000076 12.000152
+ S 0 0.000000 10.415113 -1.026369 11.050394 -1.161417
+ L3 13276512 0.000000 -0.000002 -0.905512 0 0.649979 -0.905511 0
+ L3 13276512 0.000000 0.000000 0.905512 0 11.181102 0.905526 0
+ A3 13276512 0.000000 46.061630 0.649794 -46.967142 0 0.000076 12.000152
+ L3 13276512 0.000000 10.226823 -1.912088 0 10.862104 -2.047136 0
+ END
+TURNOUT HO "Tillig Flexsteg-Weiche l - W4 - 15° 85441"
+ U "Regular Turnout" "" "Tillig" "Flexsteg-Weiche l - W4 - 15°" "85441" "Flexsteg-Weiche r - W4 - 15°" "85441" 8.824409 15.000000 1.161417 8.976378 1.811024 0.000000 13276512
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 8.976378 0.000000 90.000000
+ E 8.824409 1.161417 75.000000
+ S 0 0.000000 0.000000 0.000000 0.652254 0.000000
+ S 0 0.000000 0.652254 0.000000 8.976378 0.000000
+ C 0 0.000000 -29.150472 0.652293 29.150472 164.999924 15.000152
+ S 0 0.000000 8.197020 0.993297 8.824409 1.161417
+ L3 13276512 0.000000 -0.000002 -0.905512 0 8.976376 -0.905501 0
+ L3 13276512 0.000000 0.000000 0.905512 0 0.652254 0.905513 0
+ A3 13276512 0.000000 28.244960 0.652293 29.150472 0 164.999924 15.000152
+ L3 13276512 0.000000 7.962642 1.867950 0 8.590031 2.036070 0
+ END
+TURNOUT HO "Tillig Flexsteg-Weiche r - W4 - 15° 85441"
+ U "Regular Turnout" "" "Tillig" "Flexsteg-Weiche l - W4 - 15°" "85441" "Flexsteg-Weiche r - W4 - 15°" "85441" 8.824409 15.000000 1.161417 8.976378 1.811024 0.000000 13276512
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 8.976378 0.000000 90.000000
+ E 8.824409 -1.161417 105.000000
+ S 0 0.000000 0.000000 0.000000 0.652254 0.000000
+ S 0 0.000000 0.652254 0.000000 8.976378 0.000000
+ C 0 0.000000 29.150472 0.652138 -29.150472 0.000076 15.000152
+ S 0 0.000000 8.197020 -0.993297 8.824409 -1.161417
+ L3 13276512 0.000000 -0.000002 -0.905512 0 0.652252 -0.905511 0
+ L3 13276512 0.000000 0.000000 0.905512 0 8.976378 0.905523 0
+ A3 13276512 0.000000 28.244960 0.652138 -29.150472 0 0.000076 15.000152
+ L3 13276512 0.000000 7.962637 -1.867949 0 8.590026 -2.036069 0
+ END
+TURNOUT HO "Tillig Flexsteg-Weiche l - W5 - 9,4° 85435"
+ U "Regular Turnout" "" "Tillig" "Flexsteg-Weiche l - W5 - 9,4°" "85435" "Flexsteg-Weiche r - W5 - 9,4°" "85435" 14.146063 9.400000 1.161417 14.212598 1.811024 0.000000 13276512
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 14.212598 0.000000 90.000000
+ E 14.146063 1.161417 80.600000
+ S 0 0.000000 0.000000 0.000000 0.669292 0.000000
+ S 0 0.000000 0.669292 0.000000 14.212598 0.000000
+ C 0 0.000000 -78.590725 0.669396 78.590725 170.599924 9.400152
+ S 0 0.000000 13.505393 1.055336 14.146063 1.161417
+ L3 13276512 0.000000 -0.000002 -0.905512 0 14.212596 -0.905494 0
+ L3 13276512 0.000000 0.000000 0.905512 0 0.669292 0.905513 0
+ A3 13276512 0.000000 77.685213 0.669396 78.590725 0 170.599924 9.400152
+ L3 13276512 0.000000 13.357475 1.948685 0 13.998145 2.054766 0
+ END
+TURNOUT HO "Tillig Flexsteg-Weiche r - W5 - 9,4° 85435"
+ U "Regular Turnout" "" "Tillig" "Flexsteg-Weiche l - W5 - 9,4°" "85435" "Flexsteg-Weiche r - W5 - 9,4°" "85435" 14.146063 9.400000 1.161417 14.212598 1.811024 0.000000 13276512
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 14.212598 0.000000 90.000000
+ E 14.146063 -1.161417 99.400000
+ S 0 0.000000 0.000000 0.000000 0.669292 0.000000
+ S 0 0.000000 0.669292 0.000000 14.212598 0.000000
+ C 0 0.000000 78.590725 0.668979 -78.590725 0.000076 9.400152
+ S 0 0.000000 13.505393 -1.055336 14.146063 -1.161417
+ L3 13276512 0.000000 -0.000002 -0.905512 0 0.669290 -0.905511 0
+ L3 13276512 0.000000 0.000000 0.905512 0 14.212598 0.905530 0
+ A3 13276512 0.000000 77.685213 0.668979 -78.590725 0 0.000076 9.400152
+ L3 13276512 0.000000 13.357470 -1.948684 0 13.998140 -2.054765 0
+ END
+TURNOUT HO "Tillig Flexsteg-Weiche l - W6 - 6,34° 85445"
+ U "Regular Turnout" "" "Tillig" "Flexsteg-Weiche l - W6 - 6,34°" "85445" "Flexsteg-Weiche r - W6 - 6,34°" "85445" 15.240157 6.340000 1.161417 15.275591 1.811024 0.000000 13276512
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 15.275591 0.000000 90.000000
+ E 15.240157 1.161417 83.660000
+ S 0 0.000000 0.000000 0.000000 0.649600 0.000000
+ S 0 0.000000 0.649600 0.000000 15.275591 0.000000
+ C 0 0.000000 -74.709370 0.649699 74.709370 173.659924 6.340152
+ S 0 0.000000 8.899811 0.456936 15.240157 1.161417
+ L3 13276512 0.000000 -0.000002 -0.905512 0 15.275589 -0.905492 0
+ L3 13276512 0.000000 0.000000 0.905512 0 0.649600 0.905513 0
+ A3 13276512 0.000000 73.803859 0.649699 74.709370 0 173.659924 6.340152
+ L3 13276512 0.000000 8.799816 1.356909 0 15.140161 2.061391 0
+ END
+TURNOUT HO "Tillig Flexsteg-Weiche r - W6 - 6,34° 85445"
+ U "Regular Turnout" "" "Tillig" "Flexsteg-Weiche l - W6 - 6,34°" "85445" "Flexsteg-Weiche r - W6 - 6,34°" "85445" 15.240157 6.340000 1.161417 15.275591 1.811024 0.000000 13276512
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 15.275591 0.000000 90.000000
+ E 15.240157 -1.161417 96.340000
+ S 0 0.000000 0.000000 0.000000 0.649600 0.000000
+ S 0 0.000000 0.649600 0.000000 15.275591 0.000000
+ C 0 0.000000 74.709370 0.649303 -74.709370 0.000076 6.340152
+ S 0 0.000000 8.899811 -0.456936 15.240157 -1.161417
+ L3 13276512 0.000000 -0.000002 -0.905512 0 0.649598 -0.905511 0
+ L3 13276512 0.000000 0.000000 0.905512 0 15.275591 0.905531 0
+ A3 13276512 0.000000 73.803859 0.649303 -74.709370 0 0.000076 6.340152
+ L3 13276512 0.000000 8.799811 -1.356909 0 15.140157 -2.061390 0
+ END
diff --git a/app/lib/params/TilligH0e.xtp b/app/lib/params/TilligH0e.xtp
index 3114179..4813b06 100644
--- a/app/lib/params/TilligH0e.xtp
+++ b/app/lib/params/TilligH0e.xtp
@@ -1,74 +1,74 @@
-CONTENTS Tillig Elite Schmalspurgleise H0e
-TURNOUT HOn30 "Tillig Flexgleis H0e - 680mm 85626"
- U "Straight Section" "" "Tillig" "Flexgleis H0e - 680mm" "85626" 26.771654 1.377953 0.000000 13276512
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 26.771654 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 26.771654 0.000000
- L3 13276512 0.000000 -0.000002 -0.688976 0 26.771652 -0.688941 0
- L3 13276512 0.000000 0.000000 0.688976 0 26.771654 0.689012 0
- END
-TURNOUT HOn30 "Tillig Einfache Weiche li. H0e - EW - 18 85638"
- U "Regular Turnout" "" "Tillig" "Einfache Weiche li. H0e - EW - 18" "85638" "Einfache Weiche re. H0e - EW - 18" "85637" 4.975984 18.000000 0.787402 5.039370 1.377953 0.000000 13276512
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 5.039370 0.000000 90.000000
- E 4.975984 0.787402 72.000000
- S 0 0.000000 0.000000 0.000000 0.358862 0.000000
- S 0 0.000000 0.358862 0.000000 5.039370 0.000000
- C 0 0.000000 -13.850912 0.358880 13.850912 161.999924 18.000152
- S 0 0.000000 4.639061 0.677922 4.975984 0.787402
- L3 13276512 0.000000 -0.000002 -0.688976 0 5.039368 -0.688970 0
- L3 13276512 0.000000 0.000000 0.688976 0 0.358862 0.688977 0
- A3 13276512 0.000000 13.161936 0.358880 13.850912 0 161.999924 18.000152
- L3 13276512 0.000000 4.426144 1.333174 0 4.763067 1.442654 0
- END
-TURNOUT HOn30 "Tillig Einfache Weiche re. H0e - EW - 18 85637"
- U "Regular Turnout" "" "Tillig" "Einfache Weiche li. H0e - EW - 18" "85638" "Einfache Weiche re. H0e - EW - 18" "85637" 4.975984 18.000000 0.787402 5.039370 1.377953 0.000000 13276512
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 5.039370 0.000000 90.000000
- E 4.975984 -0.787402 108.000000
- S 0 0.000000 0.000000 0.000000 0.358862 0.000000
- S 0 0.000000 0.358862 0.000000 5.039370 0.000000
- C 0 0.000000 13.850912 0.358807 -13.850912 0.000076 18.000152
- S 0 0.000000 4.639061 -0.677922 4.975984 -0.787402
- L3 13276512 0.000000 -0.000002 -0.688976 0 0.358860 -0.688976 0
- L3 13276512 0.000000 0.000000 0.688976 0 5.039370 0.688983 0
- A3 13276512 0.000000 13.161936 0.358807 -13.850912 0 0.000076 18.000152
- L3 13276512 0.000000 4.426141 -1.333173 0 4.763064 -1.442653 0
- END
-TURNOUT HOn30 "Tillig Bausatz Flexweiche li. Spur H0e - W1 - 18 85641"
- U "Regular Turnout" "" "Tillig" "Bausatz Flexweiche li. Spur H0e - W1 - 18" "85641" "Bausatz Flexweiche re. Spur H0e - W1 - 18" "85641" 4.975984 18.000000 0.787402 5.039370 1.377953 0.000000 13276512
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 5.039370 0.000000 90.000000
- E 4.975984 0.787402 72.000000
- S 0 0.000000 0.000000 0.000000 0.358862 0.000000
- S 0 0.000000 0.358862 0.000000 5.039370 0.000000
- C 0 0.000000 -13.850912 0.358880 13.850912 161.999924 18.000152
- S 0 0.000000 4.639061 0.677922 4.975984 0.787402
- L3 13276512 0.000000 -0.000002 -0.688976 0 5.039368 -0.688970 0
- L3 13276512 0.000000 0.000000 0.688976 0 0.358862 0.688977 0
- A3 13276512 0.000000 13.161936 0.358880 13.850912 0 161.999924 18.000152
- L3 13276512 0.000000 4.426144 1.333174 0 4.763067 1.442654 0
- END
-TURNOUT HOn30 "Tillig Bausatz Flexweiche re. Spur H0e - W1 - 18 85641"
- U "Regular Turnout" "" "Tillig" "Bausatz Flexweiche li. Spur H0e - W1 - 18" "85641" "Bausatz Flexweiche re. Spur H0e - W1 - 18" "85641" 4.975984 18.000000 0.787402 5.039370 1.377953 0.000000 13276512
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 5.039370 0.000000 90.000000
- E 4.975984 -0.787402 108.000000
- S 0 0.000000 0.000000 0.000000 0.358862 0.000000
- S 0 0.000000 0.358862 0.000000 5.039370 0.000000
- C 0 0.000000 13.850912 0.358807 -13.850912 0.000076 18.000152
- S 0 0.000000 4.639061 -0.677922 4.975984 -0.787402
- L3 13276512 0.000000 -0.000002 -0.688976 0 0.358860 -0.688976 0
- L3 13276512 0.000000 0.000000 0.688976 0 5.039370 0.688983 0
- A3 13276512 0.000000 13.161936 0.358807 -13.850912 0 0.000076 18.000152
- L3 13276512 0.000000 4.426141 -1.333173 0 4.763064 -1.442653 0
- END
+CONTENTS Tillig Elite Schmalspurgleise H0e
+TURNOUT HOn30 "Tillig Flexgleis H0e - 680mm 85626"
+ U "Straight Section" "" "Tillig" "Flexgleis H0e - 680mm" "85626" 26.771654 1.377953 0.000000 13276512
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 26.771654 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 26.771654 0.000000
+ L3 13276512 0.000000 -0.000002 -0.688976 0 26.771652 -0.688941 0
+ L3 13276512 0.000000 0.000000 0.688976 0 26.771654 0.689012 0
+ END
+TURNOUT HOn30 "Tillig Einfache Weiche li. H0e - EW - 18° 85638"
+ U "Regular Turnout" "" "Tillig" "Einfache Weiche li. H0e - EW - 18°" "85638" "Einfache Weiche re. H0e - EW - 18°" "85637" 4.975984 18.000000 0.787402 5.039370 1.377953 0.000000 13276512
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 5.039370 0.000000 90.000000
+ E 4.975984 0.787402 72.000000
+ S 0 0.000000 0.000000 0.000000 0.358862 0.000000
+ S 0 0.000000 0.358862 0.000000 5.039370 0.000000
+ C 0 0.000000 -13.850912 0.358880 13.850912 161.999924 18.000152
+ S 0 0.000000 4.639061 0.677922 4.975984 0.787402
+ L3 13276512 0.000000 -0.000002 -0.688976 0 5.039368 -0.688970 0
+ L3 13276512 0.000000 0.000000 0.688976 0 0.358862 0.688977 0
+ A3 13276512 0.000000 13.161936 0.358880 13.850912 0 161.999924 18.000152
+ L3 13276512 0.000000 4.426144 1.333174 0 4.763067 1.442654 0
+ END
+TURNOUT HOn30 "Tillig Einfache Weiche re. H0e - EW - 18° 85637"
+ U "Regular Turnout" "" "Tillig" "Einfache Weiche li. H0e - EW - 18°" "85638" "Einfache Weiche re. H0e - EW - 18°" "85637" 4.975984 18.000000 0.787402 5.039370 1.377953 0.000000 13276512
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 5.039370 0.000000 90.000000
+ E 4.975984 -0.787402 108.000000
+ S 0 0.000000 0.000000 0.000000 0.358862 0.000000
+ S 0 0.000000 0.358862 0.000000 5.039370 0.000000
+ C 0 0.000000 13.850912 0.358807 -13.850912 0.000076 18.000152
+ S 0 0.000000 4.639061 -0.677922 4.975984 -0.787402
+ L3 13276512 0.000000 -0.000002 -0.688976 0 0.358860 -0.688976 0
+ L3 13276512 0.000000 0.000000 0.688976 0 5.039370 0.688983 0
+ A3 13276512 0.000000 13.161936 0.358807 -13.850912 0 0.000076 18.000152
+ L3 13276512 0.000000 4.426141 -1.333173 0 4.763064 -1.442653 0
+ END
+TURNOUT HOn30 "Tillig Bausatz Flexweiche li. Spur H0e - W1 - 18° 85641"
+ U "Regular Turnout" "" "Tillig" "Bausatz Flexweiche li. Spur H0e - W1 - 18°" "85641" "Bausatz Flexweiche re. Spur H0e - W1 - 18°" "85641" 4.975984 18.000000 0.787402 5.039370 1.377953 0.000000 13276512
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 5.039370 0.000000 90.000000
+ E 4.975984 0.787402 72.000000
+ S 0 0.000000 0.000000 0.000000 0.358862 0.000000
+ S 0 0.000000 0.358862 0.000000 5.039370 0.000000
+ C 0 0.000000 -13.850912 0.358880 13.850912 161.999924 18.000152
+ S 0 0.000000 4.639061 0.677922 4.975984 0.787402
+ L3 13276512 0.000000 -0.000002 -0.688976 0 5.039368 -0.688970 0
+ L3 13276512 0.000000 0.000000 0.688976 0 0.358862 0.688977 0
+ A3 13276512 0.000000 13.161936 0.358880 13.850912 0 161.999924 18.000152
+ L3 13276512 0.000000 4.426144 1.333174 0 4.763067 1.442654 0
+ END
+TURNOUT HOn30 "Tillig Bausatz Flexweiche re. Spur H0e - W1 - 18° 85641"
+ U "Regular Turnout" "" "Tillig" "Bausatz Flexweiche li. Spur H0e - W1 - 18°" "85641" "Bausatz Flexweiche re. Spur H0e - W1 - 18°" "85641" 4.975984 18.000000 0.787402 5.039370 1.377953 0.000000 13276512
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 5.039370 0.000000 90.000000
+ E 4.975984 -0.787402 108.000000
+ S 0 0.000000 0.000000 0.000000 0.358862 0.000000
+ S 0 0.000000 0.358862 0.000000 5.039370 0.000000
+ C 0 0.000000 13.850912 0.358807 -13.850912 0.000076 18.000152
+ S 0 0.000000 4.639061 -0.677922 4.975984 -0.787402
+ L3 13276512 0.000000 -0.000002 -0.688976 0 0.358860 -0.688976 0
+ L3 13276512 0.000000 0.000000 0.688976 0 5.039370 0.688983 0
+ A3 13276512 0.000000 13.161936 0.358807 -13.850912 0 0.000076 18.000152
+ L3 13276512 0.000000 4.426141 -1.333173 0 4.763064 -1.442653 0
+ END
diff --git a/app/lib/params/TilligH0m.xtp b/app/lib/params/TilligH0m.xtp
index a17d87a..819756e 100644
--- a/app/lib/params/TilligH0m.xtp
+++ b/app/lib/params/TilligH0m.xtp
@@ -1,74 +1,74 @@
-CONTENTS Tillig Elite Schmalspurgleise H0m
-TURNOUT HOm "Tillig Flexgleis H0m - 680mm 85627"
- U "Straight Section" "" "Tillig" "Flexgleis H0m - 680mm" "85627" 26.771654 1.574803 0.000000 13276512
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 26.771654 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 26.771654 0.000000
- L3 13276512 0.000000 -0.000002 -0.787402 0 26.771652 -0.787366 0
- L3 13276512 0.000000 0.000000 0.787402 0 26.771654 0.787437 0
- END
-TURNOUT HOm "Tillig Einfache Weiche H0m links - EW - 18 85632"
- U "Regular Turnout" "" "Tillig" "Einfache Weiche H0m links - EW - 18" "85632" "Einfache Weiche H0m rechts - EW - 18" "85631" 5.961417 18.000000 0.944882 6.102362 1.574803 0.000000 13276512
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 6.102362 0.000000 90.000000
- E 5.961417 0.944882 72.000000
- S 0 0.000000 0.000000 0.000000 0.472000 0.000000
- S 0 0.000000 0.472000 0.000000 6.102362 0.000000
- C 0 0.000000 -16.298283 0.472022 16.298283 161.999924 18.000152
- S 0 0.000000 5.508483 0.797707 5.961417 0.944882
- L3 13276512 0.000000 -0.000002 -0.787402 0 6.102360 -0.787394 0
- L3 13276512 0.000000 0.000000 0.787402 0 0.472000 0.787402 0
- A3 13276512 0.000000 15.510881 0.472022 16.298283 0 161.999924 18.000152
- L3 13276512 0.000000 5.265152 1.546567 0 5.718085 1.693742 0
- END
-TURNOUT HOm "Tillig Einfache Weiche H0m rechts - EW - 18 85631"
- U "Regular Turnout" "" "Tillig" "Einfache Weiche H0m links - EW - 18" "85632" "Einfache Weiche H0m rechts - EW - 18" "85631" 5.961417 18.000000 0.944882 6.102362 1.574803 0.000000 13276512
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 6.102362 0.000000 90.000000
- E 5.961417 -0.944882 108.000000
- S 0 0.000000 0.000000 0.000000 0.472000 0.000000
- S 0 0.000000 0.472000 0.000000 6.102362 0.000000
- C 0 0.000000 16.298283 0.471935 -16.298283 0.000076 18.000152
- S 0 0.000000 5.508483 -0.797707 5.961417 -0.944882
- L3 13276512 0.000000 -0.000002 -0.787402 0 0.471998 -0.787401 0
- L3 13276512 0.000000 0.000000 0.787402 0 6.102362 0.787409 0
- A3 13276512 0.000000 15.510881 0.471935 -16.298283 0 0.000076 18.000152
- L3 13276512 0.000000 5.265148 -1.546565 0 5.718081 -1.693740 0
- END
-TURNOUT HOm "Tillig Bausatz Flexweiche li. Spur H0m - W1 - 18 85640"
- U "Regular Turnout" "" "Tillig" "Bausatz Flexweiche li. Spur H0m - W1 - 18" "85640" "Bausatz Flexweiche re. Spur H0m - W1 - 18" "85640" 5.961417 18.000000 0.944882 6.102362 1.574803 0.000000 13276512
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 6.102362 0.000000 90.000000
- E 5.961417 0.944882 72.000000
- S 0 0.000000 0.000000 0.000000 0.472000 0.000000
- S 0 0.000000 0.472000 0.000000 6.102362 0.000000
- C 0 0.000000 -16.298283 0.472022 16.298283 161.999924 18.000152
- S 0 0.000000 5.508483 0.797707 5.961417 0.944882
- L3 13276512 0.000000 -0.000002 -0.787402 0 6.102360 -0.787394 0
- L3 13276512 0.000000 0.000000 0.787402 0 0.472000 0.787402 0
- A3 13276512 0.000000 15.510881 0.472022 16.298283 0 161.999924 18.000152
- L3 13276512 0.000000 5.265152 1.546567 0 5.718085 1.693742 0
- END
-TURNOUT HOm "Tillig Bausatz Flexweiche re. Spur H0m - W1 - 18 85640"
- U "Regular Turnout" "" "Tillig" "Bausatz Flexweiche li. Spur H0m - W1 - 18" "85640" "Bausatz Flexweiche re. Spur H0m - W1 - 18" "85640" 5.961417 18.000000 0.944882 6.102362 1.574803 0.000000 13276512
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 6.102362 0.000000 90.000000
- E 5.961417 -0.944882 108.000000
- S 0 0.000000 0.000000 0.000000 0.472000 0.000000
- S 0 0.000000 0.472000 0.000000 6.102362 0.000000
- C 0 0.000000 16.298283 0.471935 -16.298283 0.000076 18.000152
- S 0 0.000000 5.508483 -0.797707 5.961417 -0.944882
- L3 13276512 0.000000 -0.000002 -0.787402 0 0.471998 -0.787401 0
- L3 13276512 0.000000 0.000000 0.787402 0 6.102362 0.787409 0
- A3 13276512 0.000000 15.510881 0.471935 -16.298283 0 0.000076 18.000152
- L3 13276512 0.000000 5.265148 -1.546565 0 5.718081 -1.693740 0
- END
+CONTENTS Tillig Elite Schmalspurgleise H0m
+TURNOUT HOm "Tillig Flexgleis H0m - 680mm 85627"
+ U "Straight Section" "" "Tillig" "Flexgleis H0m - 680mm" "85627" 26.771654 1.574803 0.000000 13276512
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 26.771654 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 26.771654 0.000000
+ L3 13276512 0.000000 -0.000002 -0.787402 0 26.771652 -0.787366 0
+ L3 13276512 0.000000 0.000000 0.787402 0 26.771654 0.787437 0
+ END
+TURNOUT HOm "Tillig Einfache Weiche H0m links - EW - 18° 85632"
+ U "Regular Turnout" "" "Tillig" "Einfache Weiche H0m links - EW - 18°" "85632" "Einfache Weiche H0m rechts - EW - 18°" "85631" 5.961417 18.000000 0.944882 6.102362 1.574803 0.000000 13276512
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 6.102362 0.000000 90.000000
+ E 5.961417 0.944882 72.000000
+ S 0 0.000000 0.000000 0.000000 0.472000 0.000000
+ S 0 0.000000 0.472000 0.000000 6.102362 0.000000
+ C 0 0.000000 -16.298283 0.472022 16.298283 161.999924 18.000152
+ S 0 0.000000 5.508483 0.797707 5.961417 0.944882
+ L3 13276512 0.000000 -0.000002 -0.787402 0 6.102360 -0.787394 0
+ L3 13276512 0.000000 0.000000 0.787402 0 0.472000 0.787402 0
+ A3 13276512 0.000000 15.510881 0.472022 16.298283 0 161.999924 18.000152
+ L3 13276512 0.000000 5.265152 1.546567 0 5.718085 1.693742 0
+ END
+TURNOUT HOm "Tillig Einfache Weiche H0m rechts - EW - 18° 85631"
+ U "Regular Turnout" "" "Tillig" "Einfache Weiche H0m links - EW - 18°" "85632" "Einfache Weiche H0m rechts - EW - 18°" "85631" 5.961417 18.000000 0.944882 6.102362 1.574803 0.000000 13276512
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 6.102362 0.000000 90.000000
+ E 5.961417 -0.944882 108.000000
+ S 0 0.000000 0.000000 0.000000 0.472000 0.000000
+ S 0 0.000000 0.472000 0.000000 6.102362 0.000000
+ C 0 0.000000 16.298283 0.471935 -16.298283 0.000076 18.000152
+ S 0 0.000000 5.508483 -0.797707 5.961417 -0.944882
+ L3 13276512 0.000000 -0.000002 -0.787402 0 0.471998 -0.787401 0
+ L3 13276512 0.000000 0.000000 0.787402 0 6.102362 0.787409 0
+ A3 13276512 0.000000 15.510881 0.471935 -16.298283 0 0.000076 18.000152
+ L3 13276512 0.000000 5.265148 -1.546565 0 5.718081 -1.693740 0
+ END
+TURNOUT HOm "Tillig Bausatz Flexweiche li. Spur H0m - W1 - 18° 85640"
+ U "Regular Turnout" "" "Tillig" "Bausatz Flexweiche li. Spur H0m - W1 - 18°" "85640" "Bausatz Flexweiche re. Spur H0m - W1 - 18°" "85640" 5.961417 18.000000 0.944882 6.102362 1.574803 0.000000 13276512
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 6.102362 0.000000 90.000000
+ E 5.961417 0.944882 72.000000
+ S 0 0.000000 0.000000 0.000000 0.472000 0.000000
+ S 0 0.000000 0.472000 0.000000 6.102362 0.000000
+ C 0 0.000000 -16.298283 0.472022 16.298283 161.999924 18.000152
+ S 0 0.000000 5.508483 0.797707 5.961417 0.944882
+ L3 13276512 0.000000 -0.000002 -0.787402 0 6.102360 -0.787394 0
+ L3 13276512 0.000000 0.000000 0.787402 0 0.472000 0.787402 0
+ A3 13276512 0.000000 15.510881 0.472022 16.298283 0 161.999924 18.000152
+ L3 13276512 0.000000 5.265152 1.546567 0 5.718085 1.693742 0
+ END
+TURNOUT HOm "Tillig Bausatz Flexweiche re. Spur H0m - W1 - 18° 85640"
+ U "Regular Turnout" "" "Tillig" "Bausatz Flexweiche li. Spur H0m - W1 - 18°" "85640" "Bausatz Flexweiche re. Spur H0m - W1 - 18°" "85640" 5.961417 18.000000 0.944882 6.102362 1.574803 0.000000 13276512
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 6.102362 0.000000 90.000000
+ E 5.961417 -0.944882 108.000000
+ S 0 0.000000 0.000000 0.000000 0.472000 0.000000
+ S 0 0.000000 0.472000 0.000000 6.102362 0.000000
+ C 0 0.000000 16.298283 0.471935 -16.298283 0.000076 18.000152
+ S 0 0.000000 5.508483 -0.797707 5.961417 -0.944882
+ L3 13276512 0.000000 -0.000002 -0.787402 0 0.471998 -0.787401 0
+ L3 13276512 0.000000 0.000000 0.787402 0 6.102362 0.787409 0
+ A3 13276512 0.000000 15.510881 0.471935 -16.298283 0 0.000076 18.000152
+ L3 13276512 0.000000 5.265148 -1.546565 0 5.718081 -1.693740 0
+ END
diff --git a/app/lib/params/TilligTTModellGS.xtp b/app/lib/params/TilligTTModellGS.xtp
index 83b35d0..9df4773 100644
--- a/app/lib/params/TilligTTModellGS.xtp
+++ b/app/lib/params/TilligTTModellGS.xtp
@@ -1,831 +1,831 @@
-CONTENTS Tillig Modell-Gleissystem in TT
-TURNOUT TT "Tillig Gerades Gleis - G1 - 166,0 mm 83101"
- U "Straight Section" "" "Tillig" "Gerades Gleis - G1 - 166,0 mm" "83101" 6.535433 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.535433 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 6.535433 0.000000
- L3 13279072 0.000000 -0.000002 -0.590551 0 6.535432 -0.590543 0
- L3 13279072 0.000000 0.000000 0.590551 0 6.535433 0.590560 0
- END
-TURNOUT TT "Tillig Gerades Gleis - G2 - 83,0 mm 83102"
- U "Straight Section" "" "Tillig" "Gerades Gleis - G2 - 83,0 mm" "83102" 3.267717 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.267717 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 3.267717 0.000000
- L3 13279072 0.000000 -0.000002 -0.590551 0 3.267715 -0.590547 0
- L3 13279072 0.000000 0.000000 0.590551 0 3.267717 0.590556 0
- END
-TURNOUT TT "Tillig Gerades Gleis - G3 - 43,0 mm 83105"
- U "Straight Section" "" "Tillig" "Gerades Gleis - G3 - 43,0 mm" "83105" 1.692913 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.692913 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 1.692913 0.000000
- L3 13279072 0.000000 -0.000002 -0.590551 0 1.692912 -0.590549 0
- L3 13279072 0.000000 0.000000 0.590551 0 1.692913 0.590553 0
- END
-TURNOUT TT "Tillig Gerades Gleis - G4 - 41,5 mm 83103"
- U "Straight Section" "" "Tillig" "Gerades Gleis - G4 - 41,5 mm" "83103" 1.633858 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.633858 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 1.633858 0.000000
- L3 13279072 0.000000 -0.000002 -0.590551 0 1.633857 -0.590549 0
- L3 13279072 0.000000 0.000000 0.590551 0 1.633858 0.590553 0
- END
-TURNOUT TT "Tillig Gerades Gleis - G5 - 36,5 mm 83104"
- U "Straight Section" "" "Tillig" "Gerades Gleis - G5 - 36,5 mm" "83104" 1.437008 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.437008 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 1.437008 0.000000
- L3 13279072 0.000000 -0.000002 -0.590551 0 1.437006 -0.590549 0
- L3 13279072 0.000000 0.000000 0.590551 0 1.437008 0.590553 0
- END
-TURNOUT TT "Tillig Gerades Gleis - G6 - 21,3 mm 83120"
- U "Straight Section" "" "Tillig" "Gerades Gleis - G6 - 21,3 mm" "83120" 0.838583 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 0.838583 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 0.838583 0.000000
- L3 13279072 0.000000 -0.000002 -0.590551 0 0.838581 -0.590550 0
- L3 13279072 0.000000 0.000000 0.590551 0 0.838583 0.590552 0
- END
-TURNOUT TT "Tillig bergangsgleis, Standard-/Modellgleis 57,0 mm 83132"
- U "Straight Section" "" "Tillig" "bergangsgleis, Standard-/Modellgleis 57,0 mm" "83132" 2.244094 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.244094 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 2.244094 0.000000
- L3 13279072 0.000000 -0.000002 -0.590551 0 2.244093 -0.590548 0
- L3 13279072 0.000000 0.000000 0.590551 0 2.244094 0.590554 0
- END
-TURNOUT TT "Tillig Modulausgleichsstck, 83,0 mm bis 88,0 mm 83139"
- U "Straight Section" "" "Tillig" "Modulausgleichsstck, 83,0 mm bis 88,0 mm" "83139" 3.366142 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.366142 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 3.366142 0.000000
- L3 13279072 0.000000 -0.000002 -0.590551 0 3.366140 -0.590547 0
- L3 13279072 0.000000 0.000000 0.590551 0 3.366142 0.590556 0
- END
-TURNOUT TT "Tillig Prellbock mit Gleisstck, 41,5 mm 83100"
- U "Straight Section" "" "Tillig" "Prellbock mit Gleisstck, 41,5 mm" "83100" 1.633858 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.633858 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 1.633858 0.000000
- L3 13279072 0.000000 -0.000002 -0.590551 0 1.633857 -0.590549 0
- L3 13279072 0.000000 0.000000 0.590551 0 1.633858 0.590553 0
- F3 0 0.000000 4
- 0.039370 0.255906 0
- 0.826772 0.255906 0
- 0.826772 0.216535 0
- 0.039370 0.216535 0
- F3 0 0.000000 4
- 0.038928 -0.236660 0
- 0.826329 -0.236660 0
- 0.826329 -0.276030 0
- 0.038928 -0.276030 0
- F3 0 0.000000 4
- 0.669291 0.413386 0
- 0.708661 0.413386 0
- 0.708661 -0.413386 0
- 0.669291 -0.413386 0
- END
-TURNOUT TT "Tillig Gebogenes Gleis - R01 - R 267 mm/30,0 83116"
- U "Curved Section" "" "Tillig" "Gebogenes Gleis - R01 - R 267 mm/30,0" "83116" 10.511811 30.000000 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.255901 1.408313 60.000000
- C 0 0.000000 -10.511811 0.000014 10.511811 150.000076 30.000000
- A3 13279072 0.000000 11.102362 0.000014 10.511811 0 150.000076 30.000000
- A3 13279072 0.000000 9.921260 0.000014 10.511811 0 150.000076 30.000000
- END
-TURNOUT TT "Tillig Gebogenes Gleis - R04 - R 267 mm/7,5 83115"
- U "Curved Section" "" "Tillig" "Gebogenes Gleis - R04 - R 267 mm/7,5" "83115" 10.511811 7.500000 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.372066 0.089930 82.500000
- C 0 0.000000 -10.511811 0.000014 10.511811 172.500076 7.500000
- A3 13279072 0.000000 11.102362 0.000014 10.511811 0 172.500076 7.500000
- A3 13279072 0.000000 9.921260 0.000014 10.511811 0 172.500076 7.500000
- END
-TURNOUT TT "Tillig Gebogenes Gleis - R11 - R 310 mm/30,0 83109"
- U "Curved Section" "" "Tillig" "Gebogenes Gleis - R11 - R 310 mm/30,0" "83109" 12.204724 30.000000 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.102358 1.635120 60.000000
- C 0 0.000000 -12.204724 0.000016 12.204724 150.000076 30.000000
- A3 13279072 0.000000 12.795276 0.000016 12.204724 0 150.000076 30.000000
- A3 13279072 0.000000 11.614173 0.000016 12.204724 0 150.000076 30.000000
- END
-TURNOUT TT "Tillig Gebogenes Gleis - R12 - R 310 mm/15,0 83110"
- U "Curved Section" "" "Tillig" "Gebogenes Gleis - R12 - R 310 mm/15,0" "83110" 12.204724 15.000000 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.158813 0.415865 75.000000
- C 0 0.000000 -12.204724 0.000016 12.204724 165.000076 15.000000
- A3 13279072 0.000000 12.795276 0.000016 12.204724 0 165.000076 15.000000
- A3 13279072 0.000000 11.614173 0.000016 12.204724 0 165.000076 15.000000
- END
-TURNOUT TT "Tillig Gebogenes Gleis - R14 - R 310 mm/7,5 83113"
- U "Curved Section" "" "Tillig" "Gebogenes Gleis - R14 - R 310 mm/7,5" "83113" 12.204724 7.500000 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.593035 0.104413 82.500000
- C 0 0.000000 -12.204724 0.000016 12.204724 172.500076 7.500000
- A3 13279072 0.000000 12.795276 0.000016 12.204724 0 172.500076 7.500000
- A3 13279072 0.000000 11.614173 0.000016 12.204724 0 172.500076 7.500000
- END
-TURNOUT TT "Tillig Gebogenes Gleis - R21 - R 353 mm/30,0 83106"
- U "Curved Section" "" "Tillig" "Gebogenes Gleis - R21 - R 353 mm/30,0" "83106" 13.897638 30.000000 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.948814 1.861927 60.000000
- C 0 0.000000 -13.897638 0.000018 13.897638 150.000076 30.000000
- A3 13279072 0.000000 14.488189 0.000018 13.897638 0 150.000076 30.000000
- A3 13279072 0.000000 13.307087 0.000018 13.897638 0 150.000076 30.000000
- END
-TURNOUT TT "Tillig Gebogenes Gleis - R22 - R 353 mm/15,0 83107"
- U "Curved Section" "" "Tillig" "Gebogenes Gleis - R22 - R 353 mm/15,0" "83107" 13.897638 15.000000 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.596970 0.473550 75.000000
- C 0 0.000000 -13.897638 0.000018 13.897638 165.000076 15.000000
- A3 13279072 0.000000 14.488189 0.000018 13.897638 0 165.000076 15.000000
- A3 13279072 0.000000 13.307087 0.000018 13.897638 0 165.000076 15.000000
- END
-TURNOUT TT "Tillig Gebogenes Gleis - R24 - R 353 mm/7,5 83114"
- U "Curved Section" "" "Tillig" "Gebogenes Gleis - R24 - R 353 mm/7,5" "83114" 13.897638 7.500000 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.814004 0.118896 82.500000
- C 0 0.000000 -13.897638 0.000018 13.897638 172.500076 7.500000
- A3 13279072 0.000000 14.488189 0.000018 13.897638 0 172.500076 7.500000
- A3 13279072 0.000000 13.307087 0.000018 13.897638 0 172.500076 7.500000
- END
-TURNOUT TT "Tillig Gebogenes Gleis - R31 - R 396 mm/30,0 83111"
- U "Curved Section" "" "Tillig" "Gebogenes Gleis - R31 - R 396 mm/30,0" "83111" 15.590551 30.000000 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.795270 2.088734 60.000000
- C 0 0.000000 -15.590551 0.000021 15.590551 150.000076 30.000000
- A3 13279072 0.000000 16.181102 0.000021 15.590551 0 150.000076 30.000000
- A3 13279072 0.000000 15.000000 0.000021 15.590551 0 150.000076 30.000000
- END
-TURNOUT TT "Tillig Gebogenes Gleis - R32 - R 396 mm/15,0 83112"
- U "Curved Section" "" "Tillig" "Gebogenes Gleis - R32 - R 396 mm/15,0" "83112" 15.590551 15.000000 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.035128 0.531234 75.000000
- C 0 0.000000 -15.590551 0.000021 15.590551 165.000076 15.000000
- A3 13279072 0.000000 16.181102 0.000021 15.590551 0 165.000076 15.000000
- A3 13279072 0.000000 15.000000 0.000021 15.590551 0 165.000076 15.000000
- END
-TURNOUT TT "Tillig Holzschwellenflexgleis, 664 mm 83125"
- U "Straight Section" "" "Tillig" "Holzschwellenflexgleis, 664 mm" "83125" 26.141732 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 26.141732 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 26.141732 0.000000
- L3 13279072 0.000000 -0.000002 -0.590551 0 26.141731 -0.590516 0
- L3 13279072 0.000000 0.000000 0.590551 0 26.141732 0.590586 0
- END
-TURNOUT TT "Tillig Stahlschwellenflexgleis, 520 mm 83136"
- U "Straight Section" "" "Tillig" "Stahlschwellenflexgleis, 520 mm" "83136" 20.472441 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 20.472441 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 20.472441 0.000000
- L3 13279072 0.000000 -0.000002 -0.590551 0 20.472439 -0.590524 0
- L3 13279072 0.000000 0.000000 0.590551 0 20.472441 0.590578 0
- END
-TURNOUT TT "Tillig Betonschwellenflexgleis, 520 mm 83134"
- U "Straight Section" "" "Tillig" "Betonschwellenflexgleis, 520 mm" "83134" 20.472441 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 20.472441 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 20.472441 0.000000
- L3 13279072 0.000000 -0.000002 -0.590551 0 20.472439 -0.590524 0
- L3 13279072 0.000000 0.000000 0.590551 0 20.472441 0.590578 0
- END
-TURNOUT TT "Tillig Einfache Weiche - EW 1, links - Weiche 15 83322"
- U "Regular Turnout" "" "Tillig" "Einfache Weiche - EW 1, links - Weiche 15" "83322" "Einfache Weiche - EW 1, rechts - Weiche 15" "83321" 4.985039 15.000000 0.846457 5.098425 1.181102 0.000000 13279072
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 5.098425 0.000000 90.000000
- E 4.985039 0.846457 75.000000
- S 0 0.000000 0.000000 0.000000 0.472000 0.000000
- S 0 0.000000 0.472000 0.000000 5.098425 0.000000
- C 0 0.000000 -10.284986 0.472014 10.284986 164.999924 15.000152
- S 0 0.000000 3.133975 0.350459 4.985039 0.846457
- L3 13279072 0.000000 -0.000002 -0.590551 0 5.098424 -0.590545 0
- L3 13279072 0.000000 0.000000 0.590551 0 0.472000 0.590552 0
- A3 13279072 0.000000 9.694435 0.472014 10.284986 0 164.999924 15.000152
- L3 13279072 0.000000 2.981128 0.920887 0 4.832192 1.416885 0
- END
-TURNOUT TT "Tillig Einfache Weiche - EW 1, rechts - Weiche 15 83321"
- U "Regular Turnout" "" "Tillig" "Einfache Weiche - EW 1, links - Weiche 15" "83322" "Einfache Weiche - EW 1, rechts - Weiche 15" "83321" 4.985039 15.000000 0.846457 5.098425 1.181102 0.000000 13279072
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 5.098425 0.000000 90.000000
- E 4.985039 -0.846457 105.000000
- S 0 0.000000 0.000000 0.000000 0.472000 0.000000
- S 0 0.000000 0.472000 0.000000 5.098425 0.000000
- C 0 0.000000 10.284986 0.471959 -10.284986 0.000076 15.000152
- S 0 0.000000 3.133975 -0.350459 4.985039 -0.846457
- L3 13279072 0.000000 -0.000002 -0.590551 0 0.471998 -0.590550 0
- L3 13279072 0.000000 0.000000 0.590551 0 5.098425 0.590557 0
- A3 13279072 0.000000 9.694435 0.471959 -10.284986 0 0.000076 15.000152
- L3 13279072 0.000000 2.981125 -0.920886 0 4.832189 -1.416884 0
- END
-TURNOUT TT "Tillig Einfache Weiche - EW 2, links - Weiche 15 83332"
- U "Regular Turnout" "" "Tillig" "Einfache Weiche - EW 2, links - Weiche 15" "83332" "Einfache Weiche - EW 2, rechts - Weiche 15" "83331" 6.429528 15.000000 0.846457 6.535433 1.181102 0.000000 13279072
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 6.535433 0.000000 90.000000
- E 6.429528 0.846457 75.000000
- S 0 0.000000 0.000000 0.000000 0.472111 0.000000
- S 0 0.000000 0.472111 0.000000 6.535433 0.000000
- C 0 0.000000 -21.256184 0.472139 21.256184 164.999924 15.000152
- S 0 0.000000 5.973666 0.724300 6.429528 0.846457
- L3 13279072 0.000000 -0.000002 -0.590551 0 6.535432 -0.590543 0
- L3 13279072 0.000000 0.000000 0.590551 0 0.472111 0.590552 0
- A3 13279072 0.000000 20.665632 0.472139 21.256184 0 164.999924 15.000152
- L3 13279072 0.000000 5.820811 1.294726 0 6.276672 1.416883 0
- END
-TURNOUT TT "Tillig Einfache Weiche - EW 2, rechts - Weiche 15 83331"
- U "Regular Turnout" "" "Tillig" "Einfache Weiche - EW 2, links - Weiche 15" "83332" "Einfache Weiche - EW 2, rechts - Weiche 15" "83331" 6.429528 15.000000 0.846457 6.535433 1.181102 0.000000 13279072
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 6.535433 0.000000 90.000000
- E 6.429528 -0.846457 105.000000
- S 0 0.000000 0.000000 0.000000 0.472111 0.000000
- S 0 0.000000 0.472111 0.000000 6.535433 0.000000
- C 0 0.000000 21.256184 0.472026 -21.256184 0.000076 15.000152
- S 0 0.000000 5.973666 -0.724300 6.429528 -0.846457
- L3 13279072 0.000000 -0.000002 -0.590551 0 0.472110 -0.590551 0
- L3 13279072 0.000000 0.000000 0.590551 0 6.535433 0.590559 0
- A3 13279072 0.000000 20.665632 0.472026 -21.256184 0 0.000076 15.000152
- L3 13279072 0.000000 5.820808 -1.294726 0 6.276669 -1.416882 0
- END
-TURNOUT TT "Tillig Einfache Weiche - EW 3, links - Weiche 12 83342"
- U "Regular Turnout" "" "Tillig" "Einfache Weiche - EW 3, links - Weiche 12" "83342" "Einfache Weiche - EW 3, rechts - Weiche 12" "83341" 8.053937 12.000000 0.846457 8.149606 1.181102 0.000000 13279072
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 8.149606 0.000000 90.000000
- E 8.053937 0.846457 78.000000
- S 0 0.000000 0.000000 0.000000 0.472535 0.000000
- S 0 0.000000 0.472535 0.000000 8.149606 0.000000
- C 0 0.000000 -34.243976 0.472581 34.243976 167.999924 12.000152
- S 0 0.000000 7.592341 0.748331 8.053937 0.846457
- L3 13279072 0.000000 -0.000002 -0.590551 0 8.149605 -0.590541 0
- L3 13279072 0.000000 0.000000 0.590551 0 0.472535 0.590552 0
- A3 13279072 0.000000 33.653425 0.472581 34.243976 0 167.999924 12.000152
- L3 13279072 0.000000 7.469547 1.325974 0 7.931142 1.424100 0
- END
-TURNOUT TT "Tillig Einfache Weiche - EW 3, rechts - Weiche 12 83341"
- U "Regular Turnout" "" "Tillig" "Einfache Weiche - EW 3, links - Weiche 12" "83342" "Einfache Weiche - EW 3, rechts - Weiche 12" "83341" 8.053937 12.000000 0.846457 8.149606 1.181102 0.000000 13279072
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 8.149606 0.000000 90.000000
- E 8.053937 -0.846457 102.000000
- S 0 0.000000 0.000000 0.000000 0.472535 0.000000
- S 0 0.000000 0.472535 0.000000 8.149606 0.000000
- C 0 0.000000 34.243976 0.472399 -34.243976 0.000076 12.000152
- S 0 0.000000 7.592341 -0.748331 8.053937 -0.846457
- L3 13279072 0.000000 -0.000002 -0.590551 0 0.472534 -0.590550 0
- L3 13279072 0.000000 0.000000 0.590551 0 8.149606 0.590561 0
- A3 13279072 0.000000 33.653425 0.472399 -34.243976 0 0.000076 12.000152
- L3 13279072 0.000000 7.469544 -1.325973 0 7.931139 -1.424099 0
- END
-TURNOUT TT "Tillig Innenbogenweiche - IBW, links 83362"
- U "Curved Turnout" "" "Tillig" "Innenbogenweiche - IBW, links" "83362" "Innenbogenweiche - IBW, rechts" "83361" 6.102362 30.000000 1.635039 15.000000 0.846457 6.429528 1.181102 0.000000 13279072
- P "Normal" 1 4 5
- P "Reverse" 1 2 3
- E 0.000000 0.000000 270.000000
- E 6.429528 0.846457 75.000000
- E 6.102362 1.635039 60.000000
- S 0 0.000000 0.000000 0.000000 0.472339 0.000000
- C 0 0.000000 -10.442530 0.472353 10.442530 149.999924 30.000152
- S 0 0.000000 5.693624 1.399045 6.102362 1.635039
- C 0 0.000000 -21.256184 0.472139 21.256184 164.999924 14.999537
- S 0 0.000000 5.973666 0.724300 6.429528 0.846457
- L3 13279072 0.000000 -0.000002 -0.590551 0 0.472338 -0.590550 0
- L3 13279072 0.000000 0.000000 0.590551 0 0.472339 0.590552 0
- A3 13279072 0.000000 9.851979 0.472353 10.442530 0 149.999924 30.000152
- L3 13279072 0.000000 5.398341 1.910473 0 5.807079 2.146467 0
- A3 13279072 0.000000 21.846735 0.472139 21.256184 0 164.999924 14.999537
- L3 13279072 0.000000 6.126523 0.153875 0 6.582384 0.276031 0
- END
-TURNOUT TT "Tillig Innenbogenweiche - IBW, rechts 83361"
- U "Curved Turnout" "" "Tillig" "Innenbogenweiche - IBW, links" "83362" "Innenbogenweiche - IBW, rechts" "83361" 6.102362 30.000000 1.635039 15.000000 0.846457 6.429528 1.181102 0.000000 13279072
- P "Normal" 1 4 5
- P "Reverse" 1 2 3
- E 0.000000 0.000000 270.000000
- E 6.429528 -0.846457 105.000000
- E 6.102362 -1.635039 120.000000
- S 0 0.000000 0.000000 0.000000 0.472339 0.000000
- C 0 0.000000 10.442530 0.472298 -10.442530 0.000076 30.000152
- S 0 0.000000 5.693624 -1.399045 6.102362 -1.635039
- C 0 0.000000 21.256184 0.472026 -21.256184 0.000691 14.999537
- S 0 0.000000 5.973666 -0.724300 6.429528 -0.846457
- L3 13279072 0.000000 -0.000002 -0.590551 0 0.472338 -0.590550 0
- L3 13279072 0.000000 0.000000 0.590551 0 0.472339 0.590552 0
- A3 13279072 0.000000 9.851979 0.472298 -10.442530 0 0.000076 30.000152
- L3 13279072 0.000000 5.398338 -1.910471 0 5.807076 -2.146465 0
- A3 13279072 0.000000 21.846735 0.472026 -21.256184 0 0.000691 14.999537
- L3 13279072 0.000000 6.126523 -0.153875 0 6.582384 -0.276031 0
- END
-TURNOUT TT "Tillig Auenbogenweiche - ABW - 15 (2 x 7,5) 83380"
- U "Wye Turnout" "" "Tillig" "Auenbogenweiche - ABW - 15 (2 x 7,5)" "83380" 6.574803 7.500000 0.428740 0.428740 7.500000 6.574803 1.181102 0.000000 13279072
- P "Left" 1 2 3
- P "Right" 1 4 5
- E 0.000000 0.000000 270.000000
- E 6.574803 0.428740 82.500000
- E 6.574803 -0.428740 97.500000
- S 0 0.000000 0.000000 0.000000 0.505621 0.000000
- C 0 0.000000 -42.912659 0.505677 42.912659 172.499924 7.500152
- S 0 0.000000 6.106955 0.367138 6.574803 0.428740
- C 0 0.000000 42.912659 0.505450 -42.912659 0.000076 7.500152
- S 0 0.000000 6.106955 -0.367138 6.574803 -0.428740
- L3 13279072 0.000000 -0.000002 -0.590551 0 0.505619 -0.590550 0
- L3 13279072 0.000000 0.000000 0.590551 0 0.505621 0.590552 0
- A3 13279072 0.000000 42.322108 0.505677 42.912659 0 172.499924 7.500152
- L3 13279072 0.000000 6.029862 0.952635 0 6.497711 1.014238 0
- A3 13279072 0.000000 42.322108 0.505450 -42.912659 0 0.000076 7.500152
- L3 13279072 0.000000 6.029859 -0.952635 0 6.497708 -1.014237 0
- END
-TURNOUT TT "Tillig Auenbogenweiche - ABW - 12 (2 x 6) 83382"
- U "Wye Turnout" "" "Tillig" "Auenbogenweiche - ABW - 12 (2 x 6)" "83382" 8.188976 6.000000 0.428346 0.428346 6.000000 8.188976 1.181102 0.000000 13279072
- P "Left" 1 2 3
- P "Right" 1 4 5
- E 0.000000 0.000000 270.000000
- E 8.188976 0.428346 84.000000
- E 8.188976 -0.428346 96.000000
- S 0 0.000000 0.000000 0.000000 0.487840 0.000000
- C 0 0.000000 -69.184301 0.487932 69.184301 173.999924 6.000152
- S 0 0.000000 7.719745 0.379017 8.188976 0.428346
- C 0 0.000000 69.184301 0.487565 -69.184301 0.000076 6.000152
- S 0 0.000000 7.719745 -0.379017 8.188976 -0.428346
- L3 13279072 0.000000 -0.000002 -0.590551 0 0.487838 -0.590550 0
- L3 13279072 0.000000 0.000000 0.590551 0 0.487840 0.590552 0
- A3 13279072 0.000000 68.593750 0.487932 69.184301 0 173.999924 6.000152
- L3 13279072 0.000000 7.658003 0.966332 0 8.127234 1.015661 0
- A3 13279072 0.000000 68.593750 0.487565 -69.184301 0 0.000076 6.000152
- L3 13279072 0.000000 7.658000 -0.966332 0 8.127231 -1.015661 0
- END
-TURNOUT TT "Tillig Dreiwege-Weiche 83230"
- U "3-way Turnout" "" "Tillig" "Dreiwege-Weiche" "83230" 4.985039 15.000000 0.846457 6.535433 0.846457 15.000000 6.422047 1.181102 0.000000 13279072
- P "Left" 1 2 3
- P "Normal" 1 6
- P "Right" 1 4 5
- E 0.000000 0.000000 270.000000
- E 4.985039 0.846457 75.000000
- E 6.422047 -0.846457 105.000000
- E 6.535433 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 0.472000 0.000000
- C 0 0.000000 -10.284986 0.472014 10.284986 164.999924 15.000152
- S 0 0.000000 3.133975 0.350459 4.985039 0.846457
- C 0 0.000000 21.200208 0.471916 -21.200208 0.000076 15.000152
- S 0 0.000000 5.959067 -0.722393 6.422047 -0.846457
- S 0 0.000000 0.472000 0.000000 6.535433 0.000000
- L3 13279072 0.000000 -0.000002 -0.590551 0 0.471998 -0.590550 0
- L3 13279072 0.000000 0.000000 0.590551 0 0.472000 0.590552 0
- A3 13279072 0.000000 9.694435 0.472014 10.284986 0 164.999924 15.000152
- L3 13279072 0.000000 2.981128 0.920887 0 4.832192 1.416885 0
- A3 13279072 0.000000 20.609657 0.471916 -21.200208 0 0.000076 15.000152
- L3 13279072 0.000000 5.806209 -1.292818 0 6.269189 -1.416882 0
- L3 13279072 0.000000 5.588022 0.590558 0 6.535433 0.590559 0
- END
-TURNOUT TT "Tillig Kreuzung - K1 - 15 83160"
- U "Crossing" "" "Tillig" "Kreuzung - K1 - 15" "83160" 6.535433 15.000000 6.535433 1.181102 0.000000 13279072
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 6.535433 0.000000 90.000000
- E 0.111343 0.845742 285.000000
- E 6.424090 -0.845742 105.000000
- S 0 0.000000 0.000000 0.000000 6.535433 0.000000
- S 0 0.000000 0.111343 0.845742 6.424090 -0.845742
- L3 13279072 0.000000 -0.000002 -0.590551 0 3.267715 -0.590547 0
- L3 13279072 0.000000 3.267717 0.590555 0 6.535433 0.590560 0
- L3 13279072 0.000000 3.114869 -0.570428 0 6.271242 -1.416170 0
- L3 13279072 0.000000 0.264189 1.416171 0 3.420562 0.570428 0
- END
-TURNOUT TT "Tillig Kreuzung - K2 - 30 83170"
- U "Crossing" "" "Tillig" "Kreuzung - K2 - 30" "83170" 3.385827 30.000000 3.385827 1.181102 0.000000 13279072
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 3.385827 0.000000 90.000000
- E 0.226806 0.846454 300.000000
- E 3.159021 -0.846454 120.000000
- S 0 0.000000 0.000000 0.000000 3.385827 0.000000
- S 0 0.000000 0.226806 0.846454 3.159021 -0.846454
- L3 13279072 0.000000 -0.000002 -0.590551 0 1.587105 -0.590549 0
- L3 13279072 0.000000 1.798720 0.590553 0 3.385827 0.590555 0
- L3 13279072 0.000000 1.489268 -0.564335 0 2.863744 -1.357886 0
- L3 13279072 0.000000 0.522081 1.357886 0 1.896557 0.564336 0
- END
-TURNOUT TT "Tillig Doppelkreuzungsweiche - DKW 1 83300"
- U "Double Slipswitch" "" "Tillig" "Doppelkreuzungsweiche - DKW 1" "83300" 6.535433 15.000000 6.535433 1.181102 0.000000 13279072
- P "Normal" 1 2 3 0 4 5 6
- P "Reverse" 1 7 6 0 4 8 3
- E 0.000000 0.000000 270.000000
- E 6.535433 0.000000 90.000000
- E 0.111343 0.845742 285.000000
- E 6.424090 -0.845742 105.000000
- S 0 0.000000 0.000000 0.000000 0.944089 0.000000
- S 0 0.000000 0.944089 0.000000 5.591344 0.000000
- S 0 0.000000 5.591344 0.000000 6.535433 0.000000
- S 0 0.000000 0.111343 0.845742 1.023131 0.601422
- S 0 0.000000 1.023131 0.601422 5.512302 -0.601422
- S 0 0.000000 5.512302 -0.601422 6.424090 -0.845742
- C 0 0.000000 17.650057 0.944019 -17.650057 0.000076 15.000152
- C 0 0.000000 -17.650057 5.591366 17.650051 180.000076 15.000152
- L3 13279072 0.000000 -0.000002 -0.590551 0 0.944088 -0.590550 0
- L3 13279072 0.000000 5.591344 0.590551 0 6.535433 0.590552 0
- L3 13279072 0.000000 0.264194 1.416170 0 1.175982 1.171849 0
- L3 13279072 0.000000 5.359449 -1.171849 0 6.271237 -1.416169 0
- A3 13279072 0.000000 17.059506 0.944019 -17.650057 0 0.000076 15.000152
- A3 13279072 0.000000 17.059506 5.591366 17.650051 0 180.000076 15.000152
- END
-TURNOUT TT "Tillig Doppelkreuzungsweiche - DKW II Bauart Baeseler 83391"
- U "Double Slipswitch" "" "Tillig" "Doppelkreuzungsweiche - DKW II Bauart Baeseler" "83391" 8.212598 15.000000 8.212598 1.181102 0.000000 13279072
- P "Normal" 1 2 3 0 4 5 6
- P "Reverse" 1 7 6 0 4 8 3
- E 0.000000 0.000000 270.000000
- E 8.212598 0.000000 90.000000
- E 0.139917 1.062782 285.000000
- E 8.072681 -1.062782 105.000000
- S 0 0.000000 0.000000 0.000000 0.944115 0.000000
- S 0 0.000000 0.944115 0.000000 7.268484 0.000000
- S 0 0.000000 7.268484 0.000000 8.212598 0.000000
- S 0 0.000000 0.139917 1.062782 1.051688 0.818464
- S 0 0.000000 1.051688 0.818464 7.160910 -0.818464
- S 0 0.000000 7.160910 -0.818464 8.072681 -1.062782
- C 0 0.000000 24.019634 0.944019 -24.019634 0.000076 15.000152
- C 0 0.000000 -24.019634 7.268515 24.019626 180.000076 15.000152
- L3 13279072 0.000000 -0.000002 -0.590551 0 0.944113 -0.590550 0
- L3 13279072 0.000000 7.268484 0.590551 0 8.212598 0.590552 0
- L3 13279072 0.000000 0.292769 1.633209 0 1.204541 1.388891 0
- L3 13279072 0.000000 7.008056 -1.388891 0 7.919828 -1.633209 0
- A3 13279072 0.000000 23.429083 0.944019 -24.019634 0 0.000076 15.000152
- A3 13279072 0.000000 23.429083 7.268515 24.019626 0 180.000076 15.000152
- END
-TURNOUT TT "Tillig Doppelte Gleisverbindung - DGV 83210"
- U "Double Crossover" "" "Tillig" "Doppelte Gleisverbindung - DGV" "83210" 9.980315 1.692913 1.181102 0.000000 13279072
- P "Normal" 1 2 3 0 4 5 6
- P "Reverse" 1 7 8 9 6 0 4 10 11 12 3
- E 0.000000 0.000000 270.000000
- E 9.980315 0.000000 90.000000
- E 0.000000 1.692913 270.000000
- E 9.980315 1.692913 90.000000
- S 0 0.000000 0.000000 0.000000 0.790664 0.000000
- S 0 0.000000 0.790664 0.000000 9.189651 0.000000
- S 0 0.000000 9.189651 0.000000 9.980315 0.000000
- S 0 0.000000 0.000000 1.692913 0.790664 1.692913
- S 0 0.000000 0.790664 1.692913 9.189651 1.692913
- S 0 0.000000 9.189651 1.692913 9.980315 1.692913
- C 0 0.000000 -10.709106 0.790678 10.709106 159.459380 20.540696
- S 0 0.000000 4.548193 0.680849 5.432122 1.012064
- C 0 0.000000 10.709106 9.189664 -9.016188 339.459380 20.540696
- C 0 0.000000 10.709106 0.790622 -9.016193 0.000076 20.540696
- S 0 0.000000 4.548193 1.012064 5.432122 0.680849
- C 0 0.000000 -10.709106 9.189664 10.709101 180.000076 20.540696
- L3 13279072 0.000000 -0.000002 -0.590551 0 9.980313 -0.590550 0
- L3 13279072 0.000000 0.000000 0.590551 0 0.790664 0.590552 0
- L3 13279072 0.000000 9.189651 0.590551 0 9.980315 0.590552 0
- L3 13279072 0.000000 -0.000002 1.102362 0 0.790663 1.102363 0
- L3 13279072 0.000000 0.000000 2.283464 0 9.980315 2.283465 0
- L3 13279072 0.000000 9.189649 1.102362 0 9.980313 1.102363 0
- A3 13279072 0.000000 10.118555 0.790678 10.709106 0 167.162141 12.837935
- A3 13279072 0.000000 10.118555 9.189664 -9.016188 0 347.162141 12.837935
- A3 13279072 0.000000 10.118555 0.790622 -9.016193 0 0.000076 12.837935
- A3 13279072 0.000000 10.118555 9.189664 10.709101 0 180.000076 12.837935
- END
-TURNOUT TT "Tillig Gerades Anschlussgleis - 166,0 mm 83143"
- U "Straight Section" "" "Tillig" "Gerades Anschlussgleis - 166,0 mm" "83143" 6.535433 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.535433 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 6.535433 0.000000
- F3 8421504 0.000000 4
- 0.393701 -0.433071 0
- 1.220472 -0.433071 0
- 1.220472 -1.062992 0
- 0.393701 -1.062992 0
- L3 13279072 0.000000 -0.000002 -0.590551 0 6.535432 -0.590542 0
- L3 13279072 0.000000 0.000000 0.590551 0 6.535433 0.590560 0
- END
-TURNOUT TT "Tillig Trenngleis - 41,5 mm 83151"
- U "Straight Section" "" "Tillig" "Trenngleis - 41,5 mm" "83151" 1.633858 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 90.000000
- E -1.633858 0.000004 270.000000
- S 0 0.000000 0.000000 0.000000 -1.633858 0.000004
- F3 8421504 0.000000 4
- -1.240157 -0.413386 0
- -0.413386 -0.413386 0
- -0.413386 -1.043307 0
- -1.240157 -1.043307 0
- L3 13279072 0.000000 0.000003 0.590551 0 -1.633855 0.590553 0
- L3 13279072 0.000000 -0.000002 -0.590551 0 -1.633860 -0.590549 0
- END
-TURNOUT TT "Tillig Unterbrechergleis - 41,5 mm 83156"
- U "Straight Section" "" "Tillig" "Unterbrechergleis - 41,5 mm" "83156" 1.633858 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.633858 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 1.633858 0.000000
- F3 8421504 0.000000 4
- 0.412945 -0.453197 0
- 1.239717 -0.453197 0
- 1.239717 -1.083118 0
- 0.412945 -1.083118 0
- L3 13279072 0.000000 -0.000002 -0.590551 0 1.633857 -0.590549 0
- L3 13279072 0.000000 0.000000 0.590551 0 1.633858 0.590553 0
- END
-TURNOUT TT "Tillig Schaltgleis - 41,5 mm 83159"
- U "Straight Section" "" "Tillig" "Schaltgleis - 41,5 mm" "83159" 1.633858 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.633858 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 1.633858 0.000000
- F3 8421504 0.000000 4
- 0.393260 -0.433512 0
- 1.220032 -0.433512 0
- 1.220032 -1.063433 0
- 0.393260 -1.063433 0
- L3 13279072 0.000000 -0.000002 -0.590551 0 1.633857 -0.590549 0
- L3 13279072 0.000000 0.000000 0.590551 0 1.633858 0.590553 0
- END
-TURNOUT TT "Tillig Entkupplungsgleis, elektromagnetisch - 83,0 mm 83201"
- U "Straight Section" "" "Tillig" "Entkupplungsgleis, elektromagnetisch - 83,0 mm" "83201" 3.267717 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.267717 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 3.267717 0.000000
- F3 8421504 0.000000 4
- 0.433071 0.905512 0
- 3.366142 0.905512 0
- 3.366142 0.570866 0
- 0.433071 0.570866 0
- F3 8421504 0.000000 4
- 0.433071 0.118110 0
- 2.795276 0.118110 0
- 2.795276 -0.157480 0
- 0.433071 -0.157480 0
- L3 13279072 0.000000 -0.000002 -0.590551 0 3.267715 -0.590547 0
- L3 13279072 0.000000 0.000000 0.590551 0 3.267717 0.590555 0
- END
-TURNOUT TT "Tillig Gerades Schwellenband - G1 - 166mm 83001"
- U "Straight Section" "" "Tillig" "Gerades Schwellenband - G1 - 166mm" "83001" 6.535433 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.535433 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 6.535433 0.000000
- L3 13279072 0.000000 -0.000002 -0.590551 0 6.535431 -0.590542 0
- L3 13279072 0.000000 0.000000 0.590551 0 6.535433 0.590560 0
- END
-TURNOUT TT "Tillig Bogen-Schwellenband - R01 - R267/30 83016"
- U "Curved Section" "" "Tillig" "Bogen-Schwellenband - R01 - R267/30" "83016" 10.511811 30.000000 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.255901 1.408313 60.000000
- C 0 0.000000 -10.511811 0.000014 10.511811 150.000076 30.000000
- A3 13279072 0.000000 11.102362 0.000014 10.511811 0 150.000076 30.000000
- A3 13279072 0.000000 9.921260 0.000014 10.511811 0 150.000076 30.000000
- END
-TURNOUT TT "Tillig Bogen-Schwellenband - R285/15 83003"
- U "Curved Section" "" "Tillig" "Bogen-Schwellenband - R285/15" "83003" 11.220472 15.000000 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.904070 0.382328 75.000000
- C 0 0.000000 -11.220472 0.000015 11.220472 165.000076 15.000000
- A3 13279072 0.000000 11.811023 0.000015 11.220472 0 165.000076 15.000000
- A3 13279072 0.000000 10.629921 0.000015 11.220472 0 165.000076 15.000000
- END
-TURNOUT TT "Tillig Bogen-Schwellenband - R11 - R310/30 83008"
- U "Curved Section" "" "Tillig" "Bogen-Schwellenband - R11 - R310/30" "83008" 12.204724 30.000000 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.102358 1.635120 60.000000
- C 0 0.000000 -12.204724 0.000016 12.204724 150.000076 30.000000
- A3 13279072 0.000000 12.795275 0.000016 12.204724 0 150.000076 30.000000
- A3 13279072 0.000000 11.614173 0.000016 12.204724 0 150.000076 30.000000
- END
-TURNOUT TT "Tillig Bogen-Schwellenband - R12 - R310/15 83009"
- U "Curved Section" "" "Tillig" "Bogen-Schwellenband - R12 - R310/15" "83009" 12.204724 15.000000 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.158813 0.415865 75.000000
- C 0 0.000000 -12.204724 0.000016 12.204724 165.000076 15.000000
- A3 13279072 0.000000 12.795275 0.000016 12.204724 0 165.000076 15.000000
- A3 13279072 0.000000 11.614173 0.000016 12.204724 0 165.000076 15.000000
- END
-TURNOUT TT "Tillig Bogen-Schwellenband - R21 - R353/30 83006"
- U "Curved Section" "" "Tillig" "Bogen-Schwellenband - R21 - R353/30" "83006" 13.897638 30.000000 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.948814 1.861927 60.000000
- C 0 0.000000 -13.897638 0.000018 13.897638 150.000076 30.000000
- A3 13279072 0.000000 14.488189 0.000018 13.897638 0 150.000076 30.000000
- A3 13279072 0.000000 13.307087 0.000018 13.897638 0 150.000076 30.000000
- END
-TURNOUT TT "Tillig Bogen-Schwellenband - R22 - R353/15 83007"
- U "Curved Section" "" "Tillig" "Bogen-Schwellenband - R22 - R353/15" "83007" 13.897638 15.000000 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.596970 0.473550 75.000000
- C 0 0.000000 -13.897638 0.000018 13.897638 165.000076 15.000000
- A3 13279072 0.000000 14.488189 0.000018 13.897638 0 165.000076 15.000000
- A3 13279072 0.000000 13.307087 0.000018 13.897638 0 165.000076 15.000000
- END
-TURNOUT TT "Tillig Bogen-Schwellenband - R31 - R396/30 83011"
- U "Curved Section" "" "Tillig" "Bogen-Schwellenband - R31 - R396/30" "83011" 15.590551 30.000000 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.795270 2.088734 60.000000
- C 0 0.000000 -15.590551 0.000021 15.590551 150.000076 30.000000
- A3 13279072 0.000000 16.181102 0.000021 15.590551 0 150.000076 30.000000
- A3 13279072 0.000000 15.000000 0.000021 15.590551 0 150.000076 30.000000
- END
-TURNOUT TT "Tillig Bogen-Schwellenband - R32 - R396/15 83012"
- U "Curved Section" "" "Tillig" "Bogen-Schwellenband - R32 - R396/15" "83012" 15.590551 15.000000 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.035128 0.531234 75.000000
- C 0 0.000000 -15.590551 0.000021 15.590551 165.000076 15.000000
- A3 13279072 0.000000 16.181102 0.000021 15.590551 0 165.000076 15.000000
- A3 13279072 0.000000 15.000000 0.000021 15.590551 0 165.000076 15.000000
- END
-TURNOUT TT "Tillig Flex-Schwellenband - 220mm - Holzschwellen 83025"
- U "Straight Section" "" "Tillig" "Flex-Schwellenband - 220mm - Holzschwellen" "83025" 8.661417 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.661417 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 8.661417 0.000000
- L3 13279072 0.000000 -0.000002 -0.590551 0 8.661416 -0.590540 0
- L3 13279072 0.000000 0.000000 0.590551 0 8.661417 0.590562 0
- END
-TURNOUT TT "Tillig Flex-Schwellenband - 125mm - Betonschwellen 83034"
- U "Straight Section" "" "Tillig" "Flex-Schwellenband - 125mm - Betonschwellen" "83034" 4.921260 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.921260 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 4.921260 0.000000
- L3 13279072 0.000000 -0.000002 -0.590551 0 4.921258 -0.590544 0
- L3 13279072 0.000000 0.000000 0.590551 0 4.921260 0.590558 0
- END
-TURNOUT TT "Tillig Flex-Schwellenband - 80mm - Stahlschwellen 83036"
- U "Straight Section" "" "Tillig" "Flex-Schwellenband - 80mm - Stahlschwellen" "83036" 3.149606 1.181102 0.000000 13279072
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.149606 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 3.149606 0.000000
- L3 13279072 0.000000 -0.000002 -0.590551 0 3.149605 -0.590547 0
- L3 13279072 0.000000 0.000000 0.590551 0 3.149606 0.590555 0
- END
-TURNOUT TT "Tillig Flexsteg-Weiche links - 15 - Bausatz 83420"
- U "Regular Turnout" "" "Tillig" "Flexsteg-Weiche links - 15 - Bausatz" "83420" "Flexsteg-Weiche rechts - 15 - Bausatz" "83420" 6.429528 15.000000 0.846457 6.535433 1.181102 0.000000 13279072
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 6.535433 0.000000 90.000000
- E 6.429528 0.846457 75.000000
- S 0 0.000000 0.000000 0.000000 0.472111 0.000000
- S 0 0.000000 0.472111 0.000000 6.535433 0.000000
- C 0 0.000000 -21.256184 0.472139 21.256184 164.999924 15.000152
- S 0 0.000000 5.973666 0.724300 6.429528 0.846457
- L3 13279072 0.000000 -0.000002 -0.590551 0 6.535432 -0.590543 0
- L3 13279072 0.000000 0.000000 0.590551 0 0.472111 0.590552 0
- A3 13279072 0.000000 20.665633 0.472139 21.256184 0 164.999924 15.000152
- L3 13279072 0.000000 5.820811 1.294726 0 6.276672 1.416883 0
- END
-TURNOUT TT "Tillig Flexsteg-Weiche rechts - 15 - Bausatz 83420"
- U "Regular Turnout" "" "Tillig" "Flexsteg-Weiche links - 15 - Bausatz" "83420" "Flexsteg-Weiche rechts - 15 - Bausatz" "83420" 6.429528 15.000000 0.846457 6.535433 1.181102 0.000000 13279072
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 6.535433 0.000000 90.000000
- E 6.429528 -0.846457 105.000000
- S 0 0.000000 0.000000 0.000000 0.472111 0.000000
- S 0 0.000000 0.472111 0.000000 6.535433 0.000000
- C 0 0.000000 21.256184 0.472026 -21.256184 0.000076 15.000152
- S 0 0.000000 5.973666 -0.724300 6.429528 -0.846457
- L3 13279072 0.000000 -0.000002 -0.590551 0 0.472110 -0.590550 0
- L3 13279072 0.000000 0.000000 0.590551 0 6.535433 0.590559 0
- A3 13279072 0.000000 20.665633 0.472026 -21.256184 0 0.000076 15.000152
- L3 13279072 0.000000 5.820808 -1.294725 0 6.276669 -1.416882 0
- END
-TURNOUT TT "Tillig Flexsteg-Weiche links - 12 - Bausatz 83421"
- U "Regular Turnout" "" "Tillig" "Flexsteg-Weiche links - 12 - Bausatz" "83421" "Flexsteg-Weiche rechts - 12 - Bausatz" "83421" 8.054331 12.000000 0.846457 8.149606 1.181102 0.000000 13279072
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 8.149606 0.000000 90.000000
- E 8.054331 0.846457 78.000000
- S 0 0.000000 0.000000 0.000000 0.472929 0.000000
- S 0 0.000000 0.472929 0.000000 8.149606 0.000000
- C 0 0.000000 -34.243976 0.472975 34.243976 167.999924 12.000152
- S 0 0.000000 7.592735 0.748331 8.054331 0.846457
- L3 13279072 0.000000 -0.000002 -0.590551 0 8.149605 -0.590541 0
- L3 13279072 0.000000 0.000000 0.590551 0 0.472929 0.590552 0
- A3 13279072 0.000000 33.653425 0.472975 34.243976 0 167.999924 12.000152
- L3 13279072 0.000000 7.469940 1.325974 0 7.931536 1.424100 0
- END
-TURNOUT TT "Tillig Flexsteg-Weiche rechts - 12 - Bausatz 83421"
- U "Regular Turnout" "" "Tillig" "Flexsteg-Weiche links - 12 - Bausatz" "83421" "Flexsteg-Weiche rechts - 12 - Bausatz" "83421" 8.054331 12.000000 0.846457 8.149606 1.181102 0.000000 13279072
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 8.149606 0.000000 90.000000
- E 8.054331 -0.846457 102.000000
- S 0 0.000000 0.000000 0.000000 0.472929 0.000000
- S 0 0.000000 0.472929 0.000000 8.149606 0.000000
- C 0 0.000000 34.243976 0.472793 -34.243976 0.000076 12.000152
- S 0 0.000000 7.592735 -0.748331 8.054331 -0.846457
- L3 13279072 0.000000 -0.000002 -0.590551 0 0.472928 -0.590550 0
- L3 13279072 0.000000 0.000000 0.590551 0 8.149606 0.590561 0
- A3 13279072 0.000000 33.653425 0.472793 -34.243976 0 0.000076 12.000152
- L3 13279072 0.000000 7.469937 -1.325973 0 7.931533 -1.424099 0
- END
-TURNOUT TT "Tillig Innenbogenweiche - Bausatz, links 83410"
- U "Curved Turnout" "" "Tillig" "Innenbogenweiche - Bausatz, links" "83410" "Innenbogenweiche - Bausatz, rechts" "83411" 6.102362 30.000000 1.635039 15.000000 0.846457 6.429528 1.181102 0.000000 13279072
- P "Normal" 1 4 5
- P "Reverse" 1 2 3
- E 0.000000 0.000000 270.000000
- E 6.429528 0.846457 75.000000
- E 6.102362 1.635039 60.000000
- S 0 0.000000 0.000000 0.000000 0.472340 0.000000
- C 0 0.000000 -10.442527 0.472354 10.442527 149.999924 30.000152
- S 0 0.000000 5.693624 1.399045 6.102362 1.635039
- C 0 0.000000 -21.256193 0.472137 21.256193 164.999924 14.999529
- S 0 0.000000 5.973667 0.724301 6.429528 0.846457
- L3 13279072 0.000000 -0.000002 -0.590551 0 0.472339 -0.590550 0
- L3 13279072 0.000000 0.000000 0.590551 0 0.472340 0.590552 0
- A3 13279072 0.000000 9.851976 0.472354 10.442527 0 149.999924 30.000152
- L3 13279072 0.000000 5.398341 1.910473 0 5.807079 2.146467 0
- A3 13279072 0.000000 21.846744 0.472137 21.256193 0 164.999924 14.999529
- L3 13279072 0.000000 6.126523 0.153875 0 6.582385 0.276031 0
- END
-TURNOUT TT "Tillig Innenbogenweiche - Bausatz, rechts 83411"
- U "Curved Turnout" "" "Tillig" "Innenbogenweiche - Bausatz, links" "83410" "Innenbogenweiche - Bausatz, rechts" "83411" 6.102362 30.000000 1.635039 15.000000 0.846457 6.429528 1.181102 0.000000 13279072
- P "Normal" 1 4 5
- P "Reverse" 1 2 3
- E 0.000000 0.000000 270.000000
- E 6.429528 -0.846457 105.000000
- E 6.102362 -1.635039 120.000000
- S 0 0.000000 0.000000 0.000000 0.472340 0.000000
- C 0 0.000000 10.442527 0.472299 -10.442527 0.000076 30.000152
- S 0 0.000000 5.693624 -1.399045 6.102362 -1.635039
- C 0 0.000000 21.256193 0.472025 -21.256193 0.000699 14.999529
- S 0 0.000000 5.973667 -0.724301 6.429528 -0.846457
- L3 13279072 0.000000 -0.000002 -0.590551 0 0.472339 -0.590550 0
- L3 13279072 0.000000 0.000000 0.590551 0 0.472340 0.590552 0
- A3 13279072 0.000000 9.851976 0.472299 -10.442527 0 0.000076 30.000152
- L3 13279072 0.000000 5.398338 -1.910471 0 5.807076 -2.146465 0
- A3 13279072 0.000000 21.846744 0.472025 -21.256193 0 0.000699 14.999529
- L3 13279072 0.000000 6.126523 -0.153875 0 6.582385 -0.276031 0
- END
-TURNOUT TT "Tillig EW1 - Bausatz, links - 15 83430"
- U "Regular Turnout" "" "Tillig" "EW1 - Bausatz, links - 15" "83430" "EW1 - Bausatz, rechts - 15" "83431" 4.985039 15.000000 0.846457 5.098425 1.181102 0.000000 13279072
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 5.098425 0.000000 90.000000
- E 4.985039 0.846457 75.000000
- S 0 0.000000 0.000000 0.000000 0.472000 0.000000
- S 0 0.000000 0.472000 0.000000 5.098425 0.000000
- C 0 0.000000 -10.284986 0.472014 10.284986 164.999924 15.000152
- S 0 0.000000 3.133975 0.350459 4.985039 0.846457
- L3 13279072 0.000000 -0.000002 -0.590551 0 5.098424 -0.590545 0
- L3 13279072 0.000000 0.000000 0.590551 0 0.472000 0.590552 0
- A3 13279072 0.000000 9.694435 0.472014 10.284986 0 164.999924 15.000152
- L3 13279072 0.000000 2.981128 0.920887 0 4.832192 1.416885 0
- END
-TURNOUT TT "Tillig EW1 - Bausatz, rechts - 15 83431"
- U "Regular Turnout" "" "Tillig" "EW1 - Bausatz, links - 15" "83430" "EW1 - Bausatz, rechts - 15" "83431" 4.985039 15.000000 0.846457 5.098425 1.181102 0.000000 13279072
- P "Normal" 1 2
- P "Reverse" 1 3 4
- E 0.000000 0.000000 270.000000
- E 5.098425 0.000000 90.000000
- E 4.985039 -0.846457 105.000000
- S 0 0.000000 0.000000 0.000000 0.472000 0.000000
- S 0 0.000000 0.472000 0.000000 5.098425 0.000000
- C 0 0.000000 10.284986 0.471959 -10.284986 0.000076 15.000152
- S 0 0.000000 3.133975 -0.350459 4.985039 -0.846457
- L3 13279072 0.000000 -0.000002 -0.590551 0 0.471998 -0.590550 0
- L3 13279072 0.000000 0.000000 0.590551 0 5.098425 0.590557 0
- A3 13279072 0.000000 9.694435 0.471959 -10.284986 0 0.000076 15.000152
- L3 13279072 0.000000 2.981125 -0.920886 0 4.832189 -1.416884 0
- END
+CONTENTS Tillig Modell-Gleissystem in TT
+TURNOUT TT "Tillig Gerades Gleis - G1 - 166,0 mm 83101"
+ U "Straight Section" "" "Tillig" "Gerades Gleis - G1 - 166,0 mm" "83101" 6.535433 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.535433 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 6.535433 0.000000
+ L3 13279072 0.000000 -0.000002 -0.590551 0 6.535432 -0.590543 0
+ L3 13279072 0.000000 0.000000 0.590551 0 6.535433 0.590560 0
+ END
+TURNOUT TT "Tillig Gerades Gleis - G2 - 83,0 mm 83102"
+ U "Straight Section" "" "Tillig" "Gerades Gleis - G2 - 83,0 mm" "83102" 3.267717 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.267717 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 3.267717 0.000000
+ L3 13279072 0.000000 -0.000002 -0.590551 0 3.267715 -0.590547 0
+ L3 13279072 0.000000 0.000000 0.590551 0 3.267717 0.590556 0
+ END
+TURNOUT TT "Tillig Gerades Gleis - G3 - 43,0 mm 83105"
+ U "Straight Section" "" "Tillig" "Gerades Gleis - G3 - 43,0 mm" "83105" 1.692913 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.692913 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 1.692913 0.000000
+ L3 13279072 0.000000 -0.000002 -0.590551 0 1.692912 -0.590549 0
+ L3 13279072 0.000000 0.000000 0.590551 0 1.692913 0.590553 0
+ END
+TURNOUT TT "Tillig Gerades Gleis - G4 - 41,5 mm 83103"
+ U "Straight Section" "" "Tillig" "Gerades Gleis - G4 - 41,5 mm" "83103" 1.633858 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.633858 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 1.633858 0.000000
+ L3 13279072 0.000000 -0.000002 -0.590551 0 1.633857 -0.590549 0
+ L3 13279072 0.000000 0.000000 0.590551 0 1.633858 0.590553 0
+ END
+TURNOUT TT "Tillig Gerades Gleis - G5 - 36,5 mm 83104"
+ U "Straight Section" "" "Tillig" "Gerades Gleis - G5 - 36,5 mm" "83104" 1.437008 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.437008 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 1.437008 0.000000
+ L3 13279072 0.000000 -0.000002 -0.590551 0 1.437006 -0.590549 0
+ L3 13279072 0.000000 0.000000 0.590551 0 1.437008 0.590553 0
+ END
+TURNOUT TT "Tillig Gerades Gleis - G6 - 21,3 mm 83120"
+ U "Straight Section" "" "Tillig" "Gerades Gleis - G6 - 21,3 mm" "83120" 0.838583 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 0.838583 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 0.838583 0.000000
+ L3 13279072 0.000000 -0.000002 -0.590551 0 0.838581 -0.590550 0
+ L3 13279072 0.000000 0.000000 0.590551 0 0.838583 0.590552 0
+ END
+TURNOUT TT "Tillig Übergangsgleis, Standard-/Modellgleis 57,0 mm 83132"
+ U "Straight Section" "" "Tillig" "Übergangsgleis, Standard-/Modellgleis 57,0 mm" "83132" 2.244094 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.244094 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 2.244094 0.000000
+ L3 13279072 0.000000 -0.000002 -0.590551 0 2.244093 -0.590548 0
+ L3 13279072 0.000000 0.000000 0.590551 0 2.244094 0.590554 0
+ END
+TURNOUT TT "Tillig Modulausgleichsstück, 83,0 mm bis 88,0 mm 83139"
+ U "Straight Section" "" "Tillig" "Modulausgleichsstück, 83,0 mm bis 88,0 mm" "83139" 3.366142 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.366142 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 3.366142 0.000000
+ L3 13279072 0.000000 -0.000002 -0.590551 0 3.366140 -0.590547 0
+ L3 13279072 0.000000 0.000000 0.590551 0 3.366142 0.590556 0
+ END
+TURNOUT TT "Tillig Prellbock mit Gleisstück, 41,5 mm 83100"
+ U "Straight Section" "" "Tillig" "Prellbock mit Gleisstück, 41,5 mm" "83100" 1.633858 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.633858 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 1.633858 0.000000
+ L3 13279072 0.000000 -0.000002 -0.590551 0 1.633857 -0.590549 0
+ L3 13279072 0.000000 0.000000 0.590551 0 1.633858 0.590553 0
+ F3 0 0.000000 4
+ 0.039370 0.255906 0
+ 0.826772 0.255906 0
+ 0.826772 0.216535 0
+ 0.039370 0.216535 0
+ F3 0 0.000000 4
+ 0.038928 -0.236660 0
+ 0.826329 -0.236660 0
+ 0.826329 -0.276030 0
+ 0.038928 -0.276030 0
+ F3 0 0.000000 4
+ 0.669291 0.413386 0
+ 0.708661 0.413386 0
+ 0.708661 -0.413386 0
+ 0.669291 -0.413386 0
+ END
+TURNOUT TT "Tillig Gebogenes Gleis - R01 - R 267 mm/30,0° 83116"
+ U "Curved Section" "" "Tillig" "Gebogenes Gleis - R01 - R 267 mm/30,0°" "83116" 10.511811 30.000000 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.255901 1.408313 60.000000
+ C 0 0.000000 -10.511811 0.000014 10.511811 150.000076 30.000000
+ A3 13279072 0.000000 11.102362 0.000014 10.511811 0 150.000076 30.000000
+ A3 13279072 0.000000 9.921260 0.000014 10.511811 0 150.000076 30.000000
+ END
+TURNOUT TT "Tillig Gebogenes Gleis - R04 - R 267 mm/7,5° 83115"
+ U "Curved Section" "" "Tillig" "Gebogenes Gleis - R04 - R 267 mm/7,5°" "83115" 10.511811 7.500000 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.372066 0.089930 82.500000
+ C 0 0.000000 -10.511811 0.000014 10.511811 172.500076 7.500000
+ A3 13279072 0.000000 11.102362 0.000014 10.511811 0 172.500076 7.500000
+ A3 13279072 0.000000 9.921260 0.000014 10.511811 0 172.500076 7.500000
+ END
+TURNOUT TT "Tillig Gebogenes Gleis - R11 - R 310 mm/30,0° 83109"
+ U "Curved Section" "" "Tillig" "Gebogenes Gleis - R11 - R 310 mm/30,0°" "83109" 12.204724 30.000000 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.102358 1.635120 60.000000
+ C 0 0.000000 -12.204724 0.000016 12.204724 150.000076 30.000000
+ A3 13279072 0.000000 12.795276 0.000016 12.204724 0 150.000076 30.000000
+ A3 13279072 0.000000 11.614173 0.000016 12.204724 0 150.000076 30.000000
+ END
+TURNOUT TT "Tillig Gebogenes Gleis - R12 - R 310 mm/15,0° 83110"
+ U "Curved Section" "" "Tillig" "Gebogenes Gleis - R12 - R 310 mm/15,0°" "83110" 12.204724 15.000000 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.158813 0.415865 75.000000
+ C 0 0.000000 -12.204724 0.000016 12.204724 165.000076 15.000000
+ A3 13279072 0.000000 12.795276 0.000016 12.204724 0 165.000076 15.000000
+ A3 13279072 0.000000 11.614173 0.000016 12.204724 0 165.000076 15.000000
+ END
+TURNOUT TT "Tillig Gebogenes Gleis - R14 - R 310 mm/7,5° 83113"
+ U "Curved Section" "" "Tillig" "Gebogenes Gleis - R14 - R 310 mm/7,5°" "83113" 12.204724 7.500000 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.593035 0.104413 82.500000
+ C 0 0.000000 -12.204724 0.000016 12.204724 172.500076 7.500000
+ A3 13279072 0.000000 12.795276 0.000016 12.204724 0 172.500076 7.500000
+ A3 13279072 0.000000 11.614173 0.000016 12.204724 0 172.500076 7.500000
+ END
+TURNOUT TT "Tillig Gebogenes Gleis - R21 - R 353 mm/30,0° 83106"
+ U "Curved Section" "" "Tillig" "Gebogenes Gleis - R21 - R 353 mm/30,0°" "83106" 13.897638 30.000000 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.948814 1.861927 60.000000
+ C 0 0.000000 -13.897638 0.000018 13.897638 150.000076 30.000000
+ A3 13279072 0.000000 14.488189 0.000018 13.897638 0 150.000076 30.000000
+ A3 13279072 0.000000 13.307087 0.000018 13.897638 0 150.000076 30.000000
+ END
+TURNOUT TT "Tillig Gebogenes Gleis - R22 - R 353 mm/15,0° 83107"
+ U "Curved Section" "" "Tillig" "Gebogenes Gleis - R22 - R 353 mm/15,0°" "83107" 13.897638 15.000000 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.596970 0.473550 75.000000
+ C 0 0.000000 -13.897638 0.000018 13.897638 165.000076 15.000000
+ A3 13279072 0.000000 14.488189 0.000018 13.897638 0 165.000076 15.000000
+ A3 13279072 0.000000 13.307087 0.000018 13.897638 0 165.000076 15.000000
+ END
+TURNOUT TT "Tillig Gebogenes Gleis - R24 - R 353 mm/7,5° 83114"
+ U "Curved Section" "" "Tillig" "Gebogenes Gleis - R24 - R 353 mm/7,5°" "83114" 13.897638 7.500000 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.814004 0.118896 82.500000
+ C 0 0.000000 -13.897638 0.000018 13.897638 172.500076 7.500000
+ A3 13279072 0.000000 14.488189 0.000018 13.897638 0 172.500076 7.500000
+ A3 13279072 0.000000 13.307087 0.000018 13.897638 0 172.500076 7.500000
+ END
+TURNOUT TT "Tillig Gebogenes Gleis - R31 - R 396 mm/30,0 83111"
+ U "Curved Section" "" "Tillig" "Gebogenes Gleis - R31 - R 396 mm/30,0" "83111" 15.590551 30.000000 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.795270 2.088734 60.000000
+ C 0 0.000000 -15.590551 0.000021 15.590551 150.000076 30.000000
+ A3 13279072 0.000000 16.181102 0.000021 15.590551 0 150.000076 30.000000
+ A3 13279072 0.000000 15.000000 0.000021 15.590551 0 150.000076 30.000000
+ END
+TURNOUT TT "Tillig Gebogenes Gleis - R32 - R 396 mm/15,0° 83112"
+ U "Curved Section" "" "Tillig" "Gebogenes Gleis - R32 - R 396 mm/15,0°" "83112" 15.590551 15.000000 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.035128 0.531234 75.000000
+ C 0 0.000000 -15.590551 0.000021 15.590551 165.000076 15.000000
+ A3 13279072 0.000000 16.181102 0.000021 15.590551 0 165.000076 15.000000
+ A3 13279072 0.000000 15.000000 0.000021 15.590551 0 165.000076 15.000000
+ END
+TURNOUT TT "Tillig Holzschwellenflexgleis, 664 mm 83125"
+ U "Straight Section" "" "Tillig" "Holzschwellenflexgleis, 664 mm" "83125" 26.141732 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 26.141732 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 26.141732 0.000000
+ L3 13279072 0.000000 -0.000002 -0.590551 0 26.141731 -0.590516 0
+ L3 13279072 0.000000 0.000000 0.590551 0 26.141732 0.590586 0
+ END
+TURNOUT TT "Tillig Stahlschwellenflexgleis, 520 mm 83136"
+ U "Straight Section" "" "Tillig" "Stahlschwellenflexgleis, 520 mm" "83136" 20.472441 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 20.472441 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 20.472441 0.000000
+ L3 13279072 0.000000 -0.000002 -0.590551 0 20.472439 -0.590524 0
+ L3 13279072 0.000000 0.000000 0.590551 0 20.472441 0.590578 0
+ END
+TURNOUT TT "Tillig Betonschwellenflexgleis, 520 mm 83134"
+ U "Straight Section" "" "Tillig" "Betonschwellenflexgleis, 520 mm" "83134" 20.472441 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 20.472441 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 20.472441 0.000000
+ L3 13279072 0.000000 -0.000002 -0.590551 0 20.472439 -0.590524 0
+ L3 13279072 0.000000 0.000000 0.590551 0 20.472441 0.590578 0
+ END
+TURNOUT TT "Tillig Einfache Weiche - EW 1, links - Weiche 15° 83322"
+ U "Regular Turnout" "" "Tillig" "Einfache Weiche - EW 1, links - Weiche 15°" "83322" "Einfache Weiche - EW 1, rechts - Weiche 15°" "83321" 4.985039 15.000000 0.846457 5.098425 1.181102 0.000000 13279072
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 5.098425 0.000000 90.000000
+ E 4.985039 0.846457 75.000000
+ S 0 0.000000 0.000000 0.000000 0.472000 0.000000
+ S 0 0.000000 0.472000 0.000000 5.098425 0.000000
+ C 0 0.000000 -10.284986 0.472014 10.284986 164.999924 15.000152
+ S 0 0.000000 3.133975 0.350459 4.985039 0.846457
+ L3 13279072 0.000000 -0.000002 -0.590551 0 5.098424 -0.590545 0
+ L3 13279072 0.000000 0.000000 0.590551 0 0.472000 0.590552 0
+ A3 13279072 0.000000 9.694435 0.472014 10.284986 0 164.999924 15.000152
+ L3 13279072 0.000000 2.981128 0.920887 0 4.832192 1.416885 0
+ END
+TURNOUT TT "Tillig Einfache Weiche - EW 1, rechts - Weiche 15° 83321"
+ U "Regular Turnout" "" "Tillig" "Einfache Weiche - EW 1, links - Weiche 15°" "83322" "Einfache Weiche - EW 1, rechts - Weiche 15°" "83321" 4.985039 15.000000 0.846457 5.098425 1.181102 0.000000 13279072
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 5.098425 0.000000 90.000000
+ E 4.985039 -0.846457 105.000000
+ S 0 0.000000 0.000000 0.000000 0.472000 0.000000
+ S 0 0.000000 0.472000 0.000000 5.098425 0.000000
+ C 0 0.000000 10.284986 0.471959 -10.284986 0.000076 15.000152
+ S 0 0.000000 3.133975 -0.350459 4.985039 -0.846457
+ L3 13279072 0.000000 -0.000002 -0.590551 0 0.471998 -0.590550 0
+ L3 13279072 0.000000 0.000000 0.590551 0 5.098425 0.590557 0
+ A3 13279072 0.000000 9.694435 0.471959 -10.284986 0 0.000076 15.000152
+ L3 13279072 0.000000 2.981125 -0.920886 0 4.832189 -1.416884 0
+ END
+TURNOUT TT "Tillig Einfache Weiche - EW 2, links - Weiche 15° 83332"
+ U "Regular Turnout" "" "Tillig" "Einfache Weiche - EW 2, links - Weiche 15°" "83332" "Einfache Weiche - EW 2, rechts - Weiche 15°" "83331" 6.429528 15.000000 0.846457 6.535433 1.181102 0.000000 13279072
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 6.535433 0.000000 90.000000
+ E 6.429528 0.846457 75.000000
+ S 0 0.000000 0.000000 0.000000 0.472111 0.000000
+ S 0 0.000000 0.472111 0.000000 6.535433 0.000000
+ C 0 0.000000 -21.256184 0.472139 21.256184 164.999924 15.000152
+ S 0 0.000000 5.973666 0.724300 6.429528 0.846457
+ L3 13279072 0.000000 -0.000002 -0.590551 0 6.535432 -0.590543 0
+ L3 13279072 0.000000 0.000000 0.590551 0 0.472111 0.590552 0
+ A3 13279072 0.000000 20.665632 0.472139 21.256184 0 164.999924 15.000152
+ L3 13279072 0.000000 5.820811 1.294726 0 6.276672 1.416883 0
+ END
+TURNOUT TT "Tillig Einfache Weiche - EW 2, rechts - Weiche 15° 83331"
+ U "Regular Turnout" "" "Tillig" "Einfache Weiche - EW 2, links - Weiche 15°" "83332" "Einfache Weiche - EW 2, rechts - Weiche 15°" "83331" 6.429528 15.000000 0.846457 6.535433 1.181102 0.000000 13279072
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 6.535433 0.000000 90.000000
+ E 6.429528 -0.846457 105.000000
+ S 0 0.000000 0.000000 0.000000 0.472111 0.000000
+ S 0 0.000000 0.472111 0.000000 6.535433 0.000000
+ C 0 0.000000 21.256184 0.472026 -21.256184 0.000076 15.000152
+ S 0 0.000000 5.973666 -0.724300 6.429528 -0.846457
+ L3 13279072 0.000000 -0.000002 -0.590551 0 0.472110 -0.590551 0
+ L3 13279072 0.000000 0.000000 0.590551 0 6.535433 0.590559 0
+ A3 13279072 0.000000 20.665632 0.472026 -21.256184 0 0.000076 15.000152
+ L3 13279072 0.000000 5.820808 -1.294726 0 6.276669 -1.416882 0
+ END
+TURNOUT TT "Tillig Einfache Weiche - EW 3, links - Weiche 12° 83342"
+ U "Regular Turnout" "" "Tillig" "Einfache Weiche - EW 3, links - Weiche 12°" "83342" "Einfache Weiche - EW 3, rechts - Weiche 12°" "83341" 8.053937 12.000000 0.846457 8.149606 1.181102 0.000000 13279072
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 8.149606 0.000000 90.000000
+ E 8.053937 0.846457 78.000000
+ S 0 0.000000 0.000000 0.000000 0.472535 0.000000
+ S 0 0.000000 0.472535 0.000000 8.149606 0.000000
+ C 0 0.000000 -34.243976 0.472581 34.243976 167.999924 12.000152
+ S 0 0.000000 7.592341 0.748331 8.053937 0.846457
+ L3 13279072 0.000000 -0.000002 -0.590551 0 8.149605 -0.590541 0
+ L3 13279072 0.000000 0.000000 0.590551 0 0.472535 0.590552 0
+ A3 13279072 0.000000 33.653425 0.472581 34.243976 0 167.999924 12.000152
+ L3 13279072 0.000000 7.469547 1.325974 0 7.931142 1.424100 0
+ END
+TURNOUT TT "Tillig Einfache Weiche - EW 3, rechts - Weiche 12° 83341"
+ U "Regular Turnout" "" "Tillig" "Einfache Weiche - EW 3, links - Weiche 12°" "83342" "Einfache Weiche - EW 3, rechts - Weiche 12°" "83341" 8.053937 12.000000 0.846457 8.149606 1.181102 0.000000 13279072
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 8.149606 0.000000 90.000000
+ E 8.053937 -0.846457 102.000000
+ S 0 0.000000 0.000000 0.000000 0.472535 0.000000
+ S 0 0.000000 0.472535 0.000000 8.149606 0.000000
+ C 0 0.000000 34.243976 0.472399 -34.243976 0.000076 12.000152
+ S 0 0.000000 7.592341 -0.748331 8.053937 -0.846457
+ L3 13279072 0.000000 -0.000002 -0.590551 0 0.472534 -0.590550 0
+ L3 13279072 0.000000 0.000000 0.590551 0 8.149606 0.590561 0
+ A3 13279072 0.000000 33.653425 0.472399 -34.243976 0 0.000076 12.000152
+ L3 13279072 0.000000 7.469544 -1.325973 0 7.931139 -1.424099 0
+ END
+TURNOUT TT "Tillig Innenbogenweiche - IBW, links 83362"
+ U "Curved Turnout" "" "Tillig" "Innenbogenweiche - IBW, links" "83362" "Innenbogenweiche - IBW, rechts" "83361" 6.102362 30.000000 1.635039 15.000000 0.846457 6.429528 1.181102 0.000000 13279072
+ P "Normal" 1 4 5
+ P "Reverse" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 6.429528 0.846457 75.000000
+ E 6.102362 1.635039 60.000000
+ S 0 0.000000 0.000000 0.000000 0.472339 0.000000
+ C 0 0.000000 -10.442530 0.472353 10.442530 149.999924 30.000152
+ S 0 0.000000 5.693624 1.399045 6.102362 1.635039
+ C 0 0.000000 -21.256184 0.472139 21.256184 164.999924 14.999537
+ S 0 0.000000 5.973666 0.724300 6.429528 0.846457
+ L3 13279072 0.000000 -0.000002 -0.590551 0 0.472338 -0.590550 0
+ L3 13279072 0.000000 0.000000 0.590551 0 0.472339 0.590552 0
+ A3 13279072 0.000000 9.851979 0.472353 10.442530 0 149.999924 30.000152
+ L3 13279072 0.000000 5.398341 1.910473 0 5.807079 2.146467 0
+ A3 13279072 0.000000 21.846735 0.472139 21.256184 0 164.999924 14.999537
+ L3 13279072 0.000000 6.126523 0.153875 0 6.582384 0.276031 0
+ END
+TURNOUT TT "Tillig Innenbogenweiche - IBW, rechts 83361"
+ U "Curved Turnout" "" "Tillig" "Innenbogenweiche - IBW, links" "83362" "Innenbogenweiche - IBW, rechts" "83361" 6.102362 30.000000 1.635039 15.000000 0.846457 6.429528 1.181102 0.000000 13279072
+ P "Normal" 1 4 5
+ P "Reverse" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 6.429528 -0.846457 105.000000
+ E 6.102362 -1.635039 120.000000
+ S 0 0.000000 0.000000 0.000000 0.472339 0.000000
+ C 0 0.000000 10.442530 0.472298 -10.442530 0.000076 30.000152
+ S 0 0.000000 5.693624 -1.399045 6.102362 -1.635039
+ C 0 0.000000 21.256184 0.472026 -21.256184 0.000691 14.999537
+ S 0 0.000000 5.973666 -0.724300 6.429528 -0.846457
+ L3 13279072 0.000000 -0.000002 -0.590551 0 0.472338 -0.590550 0
+ L3 13279072 0.000000 0.000000 0.590551 0 0.472339 0.590552 0
+ A3 13279072 0.000000 9.851979 0.472298 -10.442530 0 0.000076 30.000152
+ L3 13279072 0.000000 5.398338 -1.910471 0 5.807076 -2.146465 0
+ A3 13279072 0.000000 21.846735 0.472026 -21.256184 0 0.000691 14.999537
+ L3 13279072 0.000000 6.126523 -0.153875 0 6.582384 -0.276031 0
+ END
+TURNOUT TT "Tillig Außenbogenweiche - ABW - 15° (2 x 7,5°) 83380"
+ U "Wye Turnout" "" "Tillig" "Außenbogenweiche - ABW - 15° (2 x 7,5°)" "83380" 6.574803 7.500000 0.428740 0.428740 7.500000 6.574803 1.181102 0.000000 13279072
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 6.574803 0.428740 82.500000
+ E 6.574803 -0.428740 97.500000
+ S 0 0.000000 0.000000 0.000000 0.505621 0.000000
+ C 0 0.000000 -42.912659 0.505677 42.912659 172.499924 7.500152
+ S 0 0.000000 6.106955 0.367138 6.574803 0.428740
+ C 0 0.000000 42.912659 0.505450 -42.912659 0.000076 7.500152
+ S 0 0.000000 6.106955 -0.367138 6.574803 -0.428740
+ L3 13279072 0.000000 -0.000002 -0.590551 0 0.505619 -0.590550 0
+ L3 13279072 0.000000 0.000000 0.590551 0 0.505621 0.590552 0
+ A3 13279072 0.000000 42.322108 0.505677 42.912659 0 172.499924 7.500152
+ L3 13279072 0.000000 6.029862 0.952635 0 6.497711 1.014238 0
+ A3 13279072 0.000000 42.322108 0.505450 -42.912659 0 0.000076 7.500152
+ L3 13279072 0.000000 6.029859 -0.952635 0 6.497708 -1.014237 0
+ END
+TURNOUT TT "Tillig Außenbogenweiche - ABW - 12° (2 x 6°) 83382"
+ U "Wye Turnout" "" "Tillig" "Außenbogenweiche - ABW - 12° (2 x 6°)" "83382" 8.188976 6.000000 0.428346 0.428346 6.000000 8.188976 1.181102 0.000000 13279072
+ P "Left" 1 2 3
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 8.188976 0.428346 84.000000
+ E 8.188976 -0.428346 96.000000
+ S 0 0.000000 0.000000 0.000000 0.487840 0.000000
+ C 0 0.000000 -69.184301 0.487932 69.184301 173.999924 6.000152
+ S 0 0.000000 7.719745 0.379017 8.188976 0.428346
+ C 0 0.000000 69.184301 0.487565 -69.184301 0.000076 6.000152
+ S 0 0.000000 7.719745 -0.379017 8.188976 -0.428346
+ L3 13279072 0.000000 -0.000002 -0.590551 0 0.487838 -0.590550 0
+ L3 13279072 0.000000 0.000000 0.590551 0 0.487840 0.590552 0
+ A3 13279072 0.000000 68.593750 0.487932 69.184301 0 173.999924 6.000152
+ L3 13279072 0.000000 7.658003 0.966332 0 8.127234 1.015661 0
+ A3 13279072 0.000000 68.593750 0.487565 -69.184301 0 0.000076 6.000152
+ L3 13279072 0.000000 7.658000 -0.966332 0 8.127231 -1.015661 0
+ END
+TURNOUT TT "Tillig Dreiwege-Weiche 83230"
+ U "3-way Turnout" "" "Tillig" "Dreiwege-Weiche" "83230" 4.985039 15.000000 0.846457 6.535433 0.846457 15.000000 6.422047 1.181102 0.000000 13279072
+ P "Left" 1 2 3
+ P "Normal" 1 6
+ P "Right" 1 4 5
+ E 0.000000 0.000000 270.000000
+ E 4.985039 0.846457 75.000000
+ E 6.422047 -0.846457 105.000000
+ E 6.535433 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 0.472000 0.000000
+ C 0 0.000000 -10.284986 0.472014 10.284986 164.999924 15.000152
+ S 0 0.000000 3.133975 0.350459 4.985039 0.846457
+ C 0 0.000000 21.200208 0.471916 -21.200208 0.000076 15.000152
+ S 0 0.000000 5.959067 -0.722393 6.422047 -0.846457
+ S 0 0.000000 0.472000 0.000000 6.535433 0.000000
+ L3 13279072 0.000000 -0.000002 -0.590551 0 0.471998 -0.590550 0
+ L3 13279072 0.000000 0.000000 0.590551 0 0.472000 0.590552 0
+ A3 13279072 0.000000 9.694435 0.472014 10.284986 0 164.999924 15.000152
+ L3 13279072 0.000000 2.981128 0.920887 0 4.832192 1.416885 0
+ A3 13279072 0.000000 20.609657 0.471916 -21.200208 0 0.000076 15.000152
+ L3 13279072 0.000000 5.806209 -1.292818 0 6.269189 -1.416882 0
+ L3 13279072 0.000000 5.588022 0.590558 0 6.535433 0.590559 0
+ END
+TURNOUT TT "Tillig Kreuzung - K1 - 15° 83160"
+ U "Crossing" "" "Tillig" "Kreuzung - K1 - 15°" "83160" 6.535433 15.000000 6.535433 1.181102 0.000000 13279072
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 6.535433 0.000000 90.000000
+ E 0.111343 0.845742 285.000000
+ E 6.424090 -0.845742 105.000000
+ S 0 0.000000 0.000000 0.000000 6.535433 0.000000
+ S 0 0.000000 0.111343 0.845742 6.424090 -0.845742
+ L3 13279072 0.000000 -0.000002 -0.590551 0 3.267715 -0.590547 0
+ L3 13279072 0.000000 3.267717 0.590555 0 6.535433 0.590560 0
+ L3 13279072 0.000000 3.114869 -0.570428 0 6.271242 -1.416170 0
+ L3 13279072 0.000000 0.264189 1.416171 0 3.420562 0.570428 0
+ END
+TURNOUT TT "Tillig Kreuzung - K2 - 30° 83170"
+ U "Crossing" "" "Tillig" "Kreuzung - K2 - 30°" "83170" 3.385827 30.000000 3.385827 1.181102 0.000000 13279072
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 3.385827 0.000000 90.000000
+ E 0.226806 0.846454 300.000000
+ E 3.159021 -0.846454 120.000000
+ S 0 0.000000 0.000000 0.000000 3.385827 0.000000
+ S 0 0.000000 0.226806 0.846454 3.159021 -0.846454
+ L3 13279072 0.000000 -0.000002 -0.590551 0 1.587105 -0.590549 0
+ L3 13279072 0.000000 1.798720 0.590553 0 3.385827 0.590555 0
+ L3 13279072 0.000000 1.489268 -0.564335 0 2.863744 -1.357886 0
+ L3 13279072 0.000000 0.522081 1.357886 0 1.896557 0.564336 0
+ END
+TURNOUT TT "Tillig Doppelkreuzungsweiche - DKW 1 83300"
+ U "Double Slipswitch" "" "Tillig" "Doppelkreuzungsweiche - DKW 1" "83300" 6.535433 15.000000 6.535433 1.181102 0.000000 13279072
+ P "Normal" 1 2 3 0 4 5 6
+ P "Reverse" 1 7 6 0 4 8 3
+ E 0.000000 0.000000 270.000000
+ E 6.535433 0.000000 90.000000
+ E 0.111343 0.845742 285.000000
+ E 6.424090 -0.845742 105.000000
+ S 0 0.000000 0.000000 0.000000 0.944089 0.000000
+ S 0 0.000000 0.944089 0.000000 5.591344 0.000000
+ S 0 0.000000 5.591344 0.000000 6.535433 0.000000
+ S 0 0.000000 0.111343 0.845742 1.023131 0.601422
+ S 0 0.000000 1.023131 0.601422 5.512302 -0.601422
+ S 0 0.000000 5.512302 -0.601422 6.424090 -0.845742
+ C 0 0.000000 17.650057 0.944019 -17.650057 0.000076 15.000152
+ C 0 0.000000 -17.650057 5.591366 17.650051 180.000076 15.000152
+ L3 13279072 0.000000 -0.000002 -0.590551 0 0.944088 -0.590550 0
+ L3 13279072 0.000000 5.591344 0.590551 0 6.535433 0.590552 0
+ L3 13279072 0.000000 0.264194 1.416170 0 1.175982 1.171849 0
+ L3 13279072 0.000000 5.359449 -1.171849 0 6.271237 -1.416169 0
+ A3 13279072 0.000000 17.059506 0.944019 -17.650057 0 0.000076 15.000152
+ A3 13279072 0.000000 17.059506 5.591366 17.650051 0 180.000076 15.000152
+ END
+TURNOUT TT "Tillig Doppelkreuzungsweiche - DKW II Bauart Baeseler 83391"
+ U "Double Slipswitch" "" "Tillig" "Doppelkreuzungsweiche - DKW II Bauart Baeseler" "83391" 8.212598 15.000000 8.212598 1.181102 0.000000 13279072
+ P "Normal" 1 2 3 0 4 5 6
+ P "Reverse" 1 7 6 0 4 8 3
+ E 0.000000 0.000000 270.000000
+ E 8.212598 0.000000 90.000000
+ E 0.139917 1.062782 285.000000
+ E 8.072681 -1.062782 105.000000
+ S 0 0.000000 0.000000 0.000000 0.944115 0.000000
+ S 0 0.000000 0.944115 0.000000 7.268484 0.000000
+ S 0 0.000000 7.268484 0.000000 8.212598 0.000000
+ S 0 0.000000 0.139917 1.062782 1.051688 0.818464
+ S 0 0.000000 1.051688 0.818464 7.160910 -0.818464
+ S 0 0.000000 7.160910 -0.818464 8.072681 -1.062782
+ C 0 0.000000 24.019634 0.944019 -24.019634 0.000076 15.000152
+ C 0 0.000000 -24.019634 7.268515 24.019626 180.000076 15.000152
+ L3 13279072 0.000000 -0.000002 -0.590551 0 0.944113 -0.590550 0
+ L3 13279072 0.000000 7.268484 0.590551 0 8.212598 0.590552 0
+ L3 13279072 0.000000 0.292769 1.633209 0 1.204541 1.388891 0
+ L3 13279072 0.000000 7.008056 -1.388891 0 7.919828 -1.633209 0
+ A3 13279072 0.000000 23.429083 0.944019 -24.019634 0 0.000076 15.000152
+ A3 13279072 0.000000 23.429083 7.268515 24.019626 0 180.000076 15.000152
+ END
+TURNOUT TT "Tillig Doppelte Gleisverbindung - DGV 83210"
+ U "Double Crossover" "" "Tillig" "Doppelte Gleisverbindung - DGV" "83210" 9.980315 1.692913 1.181102 0.000000 13279072
+ P "Normal" 1 2 3 0 4 5 6
+ P "Reverse" 1 7 8 9 6 0 4 10 11 12 3
+ E 0.000000 0.000000 270.000000
+ E 9.980315 0.000000 90.000000
+ E 0.000000 1.692913 270.000000
+ E 9.980315 1.692913 90.000000
+ S 0 0.000000 0.000000 0.000000 0.790664 0.000000
+ S 0 0.000000 0.790664 0.000000 9.189651 0.000000
+ S 0 0.000000 9.189651 0.000000 9.980315 0.000000
+ S 0 0.000000 0.000000 1.692913 0.790664 1.692913
+ S 0 0.000000 0.790664 1.692913 9.189651 1.692913
+ S 0 0.000000 9.189651 1.692913 9.980315 1.692913
+ C 0 0.000000 -10.709106 0.790678 10.709106 159.459380 20.540696
+ S 0 0.000000 4.548193 0.680849 5.432122 1.012064
+ C 0 0.000000 10.709106 9.189664 -9.016188 339.459380 20.540696
+ C 0 0.000000 10.709106 0.790622 -9.016193 0.000076 20.540696
+ S 0 0.000000 4.548193 1.012064 5.432122 0.680849
+ C 0 0.000000 -10.709106 9.189664 10.709101 180.000076 20.540696
+ L3 13279072 0.000000 -0.000002 -0.590551 0 9.980313 -0.590550 0
+ L3 13279072 0.000000 0.000000 0.590551 0 0.790664 0.590552 0
+ L3 13279072 0.000000 9.189651 0.590551 0 9.980315 0.590552 0
+ L3 13279072 0.000000 -0.000002 1.102362 0 0.790663 1.102363 0
+ L3 13279072 0.000000 0.000000 2.283464 0 9.980315 2.283465 0
+ L3 13279072 0.000000 9.189649 1.102362 0 9.980313 1.102363 0
+ A3 13279072 0.000000 10.118555 0.790678 10.709106 0 167.162141 12.837935
+ A3 13279072 0.000000 10.118555 9.189664 -9.016188 0 347.162141 12.837935
+ A3 13279072 0.000000 10.118555 0.790622 -9.016193 0 0.000076 12.837935
+ A3 13279072 0.000000 10.118555 9.189664 10.709101 0 180.000076 12.837935
+ END
+TURNOUT TT "Tillig Gerades Anschlussgleis - 166,0 mm 83143"
+ U "Straight Section" "" "Tillig" "Gerades Anschlussgleis - 166,0 mm" "83143" 6.535433 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.535433 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 6.535433 0.000000
+ F3 8421504 0.000000 4
+ 0.393701 -0.433071 0
+ 1.220472 -0.433071 0
+ 1.220472 -1.062992 0
+ 0.393701 -1.062992 0
+ L3 13279072 0.000000 -0.000002 -0.590551 0 6.535432 -0.590542 0
+ L3 13279072 0.000000 0.000000 0.590551 0 6.535433 0.590560 0
+ END
+TURNOUT TT "Tillig Trenngleis - 41,5 mm 83151"
+ U "Straight Section" "" "Tillig" "Trenngleis - 41,5 mm" "83151" 1.633858 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 90.000000
+ E -1.633858 0.000004 270.000000
+ S 0 0.000000 0.000000 0.000000 -1.633858 0.000004
+ F3 8421504 0.000000 4
+ -1.240157 -0.413386 0
+ -0.413386 -0.413386 0
+ -0.413386 -1.043307 0
+ -1.240157 -1.043307 0
+ L3 13279072 0.000000 0.000003 0.590551 0 -1.633855 0.590553 0
+ L3 13279072 0.000000 -0.000002 -0.590551 0 -1.633860 -0.590549 0
+ END
+TURNOUT TT "Tillig Unterbrechergleis - 41,5 mm 83156"
+ U "Straight Section" "" "Tillig" "Unterbrechergleis - 41,5 mm" "83156" 1.633858 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.633858 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 1.633858 0.000000
+ F3 8421504 0.000000 4
+ 0.412945 -0.453197 0
+ 1.239717 -0.453197 0
+ 1.239717 -1.083118 0
+ 0.412945 -1.083118 0
+ L3 13279072 0.000000 -0.000002 -0.590551 0 1.633857 -0.590549 0
+ L3 13279072 0.000000 0.000000 0.590551 0 1.633858 0.590553 0
+ END
+TURNOUT TT "Tillig Schaltgleis - 41,5 mm 83159"
+ U "Straight Section" "" "Tillig" "Schaltgleis - 41,5 mm" "83159" 1.633858 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.633858 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 1.633858 0.000000
+ F3 8421504 0.000000 4
+ 0.393260 -0.433512 0
+ 1.220032 -0.433512 0
+ 1.220032 -1.063433 0
+ 0.393260 -1.063433 0
+ L3 13279072 0.000000 -0.000002 -0.590551 0 1.633857 -0.590549 0
+ L3 13279072 0.000000 0.000000 0.590551 0 1.633858 0.590553 0
+ END
+TURNOUT TT "Tillig Entkupplungsgleis, elektromagnetisch - 83,0 mm 83201"
+ U "Straight Section" "" "Tillig" "Entkupplungsgleis, elektromagnetisch - 83,0 mm" "83201" 3.267717 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.267717 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 3.267717 0.000000
+ F3 8421504 0.000000 4
+ 0.433071 0.905512 0
+ 3.366142 0.905512 0
+ 3.366142 0.570866 0
+ 0.433071 0.570866 0
+ F3 8421504 0.000000 4
+ 0.433071 0.118110 0
+ 2.795276 0.118110 0
+ 2.795276 -0.157480 0
+ 0.433071 -0.157480 0
+ L3 13279072 0.000000 -0.000002 -0.590551 0 3.267715 -0.590547 0
+ L3 13279072 0.000000 0.000000 0.590551 0 3.267717 0.590555 0
+ END
+TURNOUT TT "Tillig Gerades Schwellenband - G1 - 166mm 83001"
+ U "Straight Section" "" "Tillig" "Gerades Schwellenband - G1 - 166mm" "83001" 6.535433 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.535433 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 6.535433 0.000000
+ L3 13279072 0.000000 -0.000002 -0.590551 0 6.535431 -0.590542 0
+ L3 13279072 0.000000 0.000000 0.590551 0 6.535433 0.590560 0
+ END
+TURNOUT TT "Tillig Bogen-Schwellenband - R01 - R267/30° 83016"
+ U "Curved Section" "" "Tillig" "Bogen-Schwellenband - R01 - R267/30°" "83016" 10.511811 30.000000 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.255901 1.408313 60.000000
+ C 0 0.000000 -10.511811 0.000014 10.511811 150.000076 30.000000
+ A3 13279072 0.000000 11.102362 0.000014 10.511811 0 150.000076 30.000000
+ A3 13279072 0.000000 9.921260 0.000014 10.511811 0 150.000076 30.000000
+ END
+TURNOUT TT "Tillig Bogen-Schwellenband - R285/15° 83003"
+ U "Curved Section" "" "Tillig" "Bogen-Schwellenband - R285/15°" "83003" 11.220472 15.000000 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.904070 0.382328 75.000000
+ C 0 0.000000 -11.220472 0.000015 11.220472 165.000076 15.000000
+ A3 13279072 0.000000 11.811023 0.000015 11.220472 0 165.000076 15.000000
+ A3 13279072 0.000000 10.629921 0.000015 11.220472 0 165.000076 15.000000
+ END
+TURNOUT TT "Tillig Bogen-Schwellenband - R11 - R310/30° 83008"
+ U "Curved Section" "" "Tillig" "Bogen-Schwellenband - R11 - R310/30°" "83008" 12.204724 30.000000 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.102358 1.635120 60.000000
+ C 0 0.000000 -12.204724 0.000016 12.204724 150.000076 30.000000
+ A3 13279072 0.000000 12.795275 0.000016 12.204724 0 150.000076 30.000000
+ A3 13279072 0.000000 11.614173 0.000016 12.204724 0 150.000076 30.000000
+ END
+TURNOUT TT "Tillig Bogen-Schwellenband - R12 - R310/15° 83009"
+ U "Curved Section" "" "Tillig" "Bogen-Schwellenband - R12 - R310/15°" "83009" 12.204724 15.000000 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.158813 0.415865 75.000000
+ C 0 0.000000 -12.204724 0.000016 12.204724 165.000076 15.000000
+ A3 13279072 0.000000 12.795275 0.000016 12.204724 0 165.000076 15.000000
+ A3 13279072 0.000000 11.614173 0.000016 12.204724 0 165.000076 15.000000
+ END
+TURNOUT TT "Tillig Bogen-Schwellenband - R21 - R353/30° 83006"
+ U "Curved Section" "" "Tillig" "Bogen-Schwellenband - R21 - R353/30°" "83006" 13.897638 30.000000 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.948814 1.861927 60.000000
+ C 0 0.000000 -13.897638 0.000018 13.897638 150.000076 30.000000
+ A3 13279072 0.000000 14.488189 0.000018 13.897638 0 150.000076 30.000000
+ A3 13279072 0.000000 13.307087 0.000018 13.897638 0 150.000076 30.000000
+ END
+TURNOUT TT "Tillig Bogen-Schwellenband - R22 - R353/15° 83007"
+ U "Curved Section" "" "Tillig" "Bogen-Schwellenband - R22 - R353/15°" "83007" 13.897638 15.000000 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.596970 0.473550 75.000000
+ C 0 0.000000 -13.897638 0.000018 13.897638 165.000076 15.000000
+ A3 13279072 0.000000 14.488189 0.000018 13.897638 0 165.000076 15.000000
+ A3 13279072 0.000000 13.307087 0.000018 13.897638 0 165.000076 15.000000
+ END
+TURNOUT TT "Tillig Bogen-Schwellenband - R31 - R396/30° 83011"
+ U "Curved Section" "" "Tillig" "Bogen-Schwellenband - R31 - R396/30°" "83011" 15.590551 30.000000 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.795270 2.088734 60.000000
+ C 0 0.000000 -15.590551 0.000021 15.590551 150.000076 30.000000
+ A3 13279072 0.000000 16.181102 0.000021 15.590551 0 150.000076 30.000000
+ A3 13279072 0.000000 15.000000 0.000021 15.590551 0 150.000076 30.000000
+ END
+TURNOUT TT "Tillig Bogen-Schwellenband - R32 - R396/15° 83012"
+ U "Curved Section" "" "Tillig" "Bogen-Schwellenband - R32 - R396/15°" "83012" 15.590551 15.000000 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.035128 0.531234 75.000000
+ C 0 0.000000 -15.590551 0.000021 15.590551 165.000076 15.000000
+ A3 13279072 0.000000 16.181102 0.000021 15.590551 0 165.000076 15.000000
+ A3 13279072 0.000000 15.000000 0.000021 15.590551 0 165.000076 15.000000
+ END
+TURNOUT TT "Tillig Flex-Schwellenband - 220mm - Holzschwellen 83025"
+ U "Straight Section" "" "Tillig" "Flex-Schwellenband - 220mm - Holzschwellen" "83025" 8.661417 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.661417 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 8.661417 0.000000
+ L3 13279072 0.000000 -0.000002 -0.590551 0 8.661416 -0.590540 0
+ L3 13279072 0.000000 0.000000 0.590551 0 8.661417 0.590562 0
+ END
+TURNOUT TT "Tillig Flex-Schwellenband - 125mm - Betonschwellen 83034"
+ U "Straight Section" "" "Tillig" "Flex-Schwellenband - 125mm - Betonschwellen" "83034" 4.921260 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.921260 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 4.921260 0.000000
+ L3 13279072 0.000000 -0.000002 -0.590551 0 4.921258 -0.590544 0
+ L3 13279072 0.000000 0.000000 0.590551 0 4.921260 0.590558 0
+ END
+TURNOUT TT "Tillig Flex-Schwellenband - 80mm - Stahlschwellen 83036"
+ U "Straight Section" "" "Tillig" "Flex-Schwellenband - 80mm - Stahlschwellen" "83036" 3.149606 1.181102 0.000000 13279072
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.149606 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 3.149606 0.000000
+ L3 13279072 0.000000 -0.000002 -0.590551 0 3.149605 -0.590547 0
+ L3 13279072 0.000000 0.000000 0.590551 0 3.149606 0.590555 0
+ END
+TURNOUT TT "Tillig Flexsteg-Weiche links - 15° - Bausatz 83420"
+ U "Regular Turnout" "" "Tillig" "Flexsteg-Weiche links - 15° - Bausatz" "83420" "Flexsteg-Weiche rechts - 15° - Bausatz" "83420" 6.429528 15.000000 0.846457 6.535433 1.181102 0.000000 13279072
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 6.535433 0.000000 90.000000
+ E 6.429528 0.846457 75.000000
+ S 0 0.000000 0.000000 0.000000 0.472111 0.000000
+ S 0 0.000000 0.472111 0.000000 6.535433 0.000000
+ C 0 0.000000 -21.256184 0.472139 21.256184 164.999924 15.000152
+ S 0 0.000000 5.973666 0.724300 6.429528 0.846457
+ L3 13279072 0.000000 -0.000002 -0.590551 0 6.535432 -0.590543 0
+ L3 13279072 0.000000 0.000000 0.590551 0 0.472111 0.590552 0
+ A3 13279072 0.000000 20.665633 0.472139 21.256184 0 164.999924 15.000152
+ L3 13279072 0.000000 5.820811 1.294726 0 6.276672 1.416883 0
+ END
+TURNOUT TT "Tillig Flexsteg-Weiche rechts - 15° - Bausatz 83420"
+ U "Regular Turnout" "" "Tillig" "Flexsteg-Weiche links - 15° - Bausatz" "83420" "Flexsteg-Weiche rechts - 15° - Bausatz" "83420" 6.429528 15.000000 0.846457 6.535433 1.181102 0.000000 13279072
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 6.535433 0.000000 90.000000
+ E 6.429528 -0.846457 105.000000
+ S 0 0.000000 0.000000 0.000000 0.472111 0.000000
+ S 0 0.000000 0.472111 0.000000 6.535433 0.000000
+ C 0 0.000000 21.256184 0.472026 -21.256184 0.000076 15.000152
+ S 0 0.000000 5.973666 -0.724300 6.429528 -0.846457
+ L3 13279072 0.000000 -0.000002 -0.590551 0 0.472110 -0.590550 0
+ L3 13279072 0.000000 0.000000 0.590551 0 6.535433 0.590559 0
+ A3 13279072 0.000000 20.665633 0.472026 -21.256184 0 0.000076 15.000152
+ L3 13279072 0.000000 5.820808 -1.294725 0 6.276669 -1.416882 0
+ END
+TURNOUT TT "Tillig Flexsteg-Weiche links - 12° - Bausatz 83421"
+ U "Regular Turnout" "" "Tillig" "Flexsteg-Weiche links - 12° - Bausatz" "83421" "Flexsteg-Weiche rechts - 12° - Bausatz" "83421" 8.054331 12.000000 0.846457 8.149606 1.181102 0.000000 13279072
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 8.149606 0.000000 90.000000
+ E 8.054331 0.846457 78.000000
+ S 0 0.000000 0.000000 0.000000 0.472929 0.000000
+ S 0 0.000000 0.472929 0.000000 8.149606 0.000000
+ C 0 0.000000 -34.243976 0.472975 34.243976 167.999924 12.000152
+ S 0 0.000000 7.592735 0.748331 8.054331 0.846457
+ L3 13279072 0.000000 -0.000002 -0.590551 0 8.149605 -0.590541 0
+ L3 13279072 0.000000 0.000000 0.590551 0 0.472929 0.590552 0
+ A3 13279072 0.000000 33.653425 0.472975 34.243976 0 167.999924 12.000152
+ L3 13279072 0.000000 7.469940 1.325974 0 7.931536 1.424100 0
+ END
+TURNOUT TT "Tillig Flexsteg-Weiche rechts - 12° - Bausatz 83421"
+ U "Regular Turnout" "" "Tillig" "Flexsteg-Weiche links - 12° - Bausatz" "83421" "Flexsteg-Weiche rechts - 12° - Bausatz" "83421" 8.054331 12.000000 0.846457 8.149606 1.181102 0.000000 13279072
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 8.149606 0.000000 90.000000
+ E 8.054331 -0.846457 102.000000
+ S 0 0.000000 0.000000 0.000000 0.472929 0.000000
+ S 0 0.000000 0.472929 0.000000 8.149606 0.000000
+ C 0 0.000000 34.243976 0.472793 -34.243976 0.000076 12.000152
+ S 0 0.000000 7.592735 -0.748331 8.054331 -0.846457
+ L3 13279072 0.000000 -0.000002 -0.590551 0 0.472928 -0.590550 0
+ L3 13279072 0.000000 0.000000 0.590551 0 8.149606 0.590561 0
+ A3 13279072 0.000000 33.653425 0.472793 -34.243976 0 0.000076 12.000152
+ L3 13279072 0.000000 7.469937 -1.325973 0 7.931533 -1.424099 0
+ END
+TURNOUT TT "Tillig Innenbogenweiche - Bausatz, links 83410"
+ U "Curved Turnout" "" "Tillig" "Innenbogenweiche - Bausatz, links" "83410" "Innenbogenweiche - Bausatz, rechts" "83411" 6.102362 30.000000 1.635039 15.000000 0.846457 6.429528 1.181102 0.000000 13279072
+ P "Normal" 1 4 5
+ P "Reverse" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 6.429528 0.846457 75.000000
+ E 6.102362 1.635039 60.000000
+ S 0 0.000000 0.000000 0.000000 0.472340 0.000000
+ C 0 0.000000 -10.442527 0.472354 10.442527 149.999924 30.000152
+ S 0 0.000000 5.693624 1.399045 6.102362 1.635039
+ C 0 0.000000 -21.256193 0.472137 21.256193 164.999924 14.999529
+ S 0 0.000000 5.973667 0.724301 6.429528 0.846457
+ L3 13279072 0.000000 -0.000002 -0.590551 0 0.472339 -0.590550 0
+ L3 13279072 0.000000 0.000000 0.590551 0 0.472340 0.590552 0
+ A3 13279072 0.000000 9.851976 0.472354 10.442527 0 149.999924 30.000152
+ L3 13279072 0.000000 5.398341 1.910473 0 5.807079 2.146467 0
+ A3 13279072 0.000000 21.846744 0.472137 21.256193 0 164.999924 14.999529
+ L3 13279072 0.000000 6.126523 0.153875 0 6.582385 0.276031 0
+ END
+TURNOUT TT "Tillig Innenbogenweiche - Bausatz, rechts 83411"
+ U "Curved Turnout" "" "Tillig" "Innenbogenweiche - Bausatz, links" "83410" "Innenbogenweiche - Bausatz, rechts" "83411" 6.102362 30.000000 1.635039 15.000000 0.846457 6.429528 1.181102 0.000000 13279072
+ P "Normal" 1 4 5
+ P "Reverse" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 6.429528 -0.846457 105.000000
+ E 6.102362 -1.635039 120.000000
+ S 0 0.000000 0.000000 0.000000 0.472340 0.000000
+ C 0 0.000000 10.442527 0.472299 -10.442527 0.000076 30.000152
+ S 0 0.000000 5.693624 -1.399045 6.102362 -1.635039
+ C 0 0.000000 21.256193 0.472025 -21.256193 0.000699 14.999529
+ S 0 0.000000 5.973667 -0.724301 6.429528 -0.846457
+ L3 13279072 0.000000 -0.000002 -0.590551 0 0.472339 -0.590550 0
+ L3 13279072 0.000000 0.000000 0.590551 0 0.472340 0.590552 0
+ A3 13279072 0.000000 9.851976 0.472299 -10.442527 0 0.000076 30.000152
+ L3 13279072 0.000000 5.398338 -1.910471 0 5.807076 -2.146465 0
+ A3 13279072 0.000000 21.846744 0.472025 -21.256193 0 0.000699 14.999529
+ L3 13279072 0.000000 6.126523 -0.153875 0 6.582385 -0.276031 0
+ END
+TURNOUT TT "Tillig EW1 - Bausatz, links - 15° 83430"
+ U "Regular Turnout" "" "Tillig" "EW1 - Bausatz, links - 15°" "83430" "EW1 - Bausatz, rechts - 15°" "83431" 4.985039 15.000000 0.846457 5.098425 1.181102 0.000000 13279072
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 5.098425 0.000000 90.000000
+ E 4.985039 0.846457 75.000000
+ S 0 0.000000 0.000000 0.000000 0.472000 0.000000
+ S 0 0.000000 0.472000 0.000000 5.098425 0.000000
+ C 0 0.000000 -10.284986 0.472014 10.284986 164.999924 15.000152
+ S 0 0.000000 3.133975 0.350459 4.985039 0.846457
+ L3 13279072 0.000000 -0.000002 -0.590551 0 5.098424 -0.590545 0
+ L3 13279072 0.000000 0.000000 0.590551 0 0.472000 0.590552 0
+ A3 13279072 0.000000 9.694435 0.472014 10.284986 0 164.999924 15.000152
+ L3 13279072 0.000000 2.981128 0.920887 0 4.832192 1.416885 0
+ END
+TURNOUT TT "Tillig EW1 - Bausatz, rechts - 15° 83431"
+ U "Regular Turnout" "" "Tillig" "EW1 - Bausatz, links - 15°" "83430" "EW1 - Bausatz, rechts - 15°" "83431" 4.985039 15.000000 0.846457 5.098425 1.181102 0.000000 13279072
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 5.098425 0.000000 90.000000
+ E 4.985039 -0.846457 105.000000
+ S 0 0.000000 0.000000 0.000000 0.472000 0.000000
+ S 0 0.000000 0.472000 0.000000 5.098425 0.000000
+ C 0 0.000000 10.284986 0.471959 -10.284986 0.000076 15.000152
+ S 0 0.000000 3.133975 -0.350459 4.985039 -0.846457
+ L3 13279072 0.000000 -0.000002 -0.590551 0 0.471998 -0.590550 0
+ L3 13279072 0.000000 0.000000 0.590551 0 5.098425 0.590557 0
+ A3 13279072 0.000000 9.694435 0.471959 -10.284986 0 0.000076 15.000152
+ L3 13279072 0.000000 2.981125 -0.920886 0 4.832189 -1.416884 0
+ END
diff --git a/app/lib/params/Z-Atlas55.xtp b/app/lib/params/Z-Atlas55.xtp
index e8e4394..2c72944 100644
--- a/app/lib/params/Z-Atlas55.xtp
+++ b/app/lib/params/Z-Atlas55.xtp
@@ -1,8 +1,43 @@
CONTENTS Atlas Z Scale Super-Flex Code 55 Track
-
+SUBCONTENTS Atlas Z-Scale - Track
TURNOUT Z "Atlas Z Scale Super-Flex Code 55 Straight Track 24""/609.6mm 2810"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 24.000000 0.000000 90.000000
S 0 0 0.000000 0.000000 24.000000 0.000000
- END
+END
+
+SUBCONTENTS Atlas Z-Scale - Turnouts
+TURNOUT Z "Atlas Z Scale #6 Left 2811"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 4.166600 0.000000 90.000000
+ E 4.166600 0.475900 80.472717
+ S 0 0.000000 0.000000 0.000000 0.256000 0.000000
+ S 0 0.000000 0.256000 0.000000 4.166600 0.000000
+ C 0 0.000000 -12.900734 0.256017 12.900734 170.472641 9.527435
+ S 0 0.000000 2.391326 0.177947 4.166600 0.475900
+END
+TURNOUT Z "Atlas Z Scale #6 Right 2812"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 4.166600 0.000000 90.000000
+ E 4.166600 -0.475900 99.527283
+ S 0 0.000000 0.000000 0.000000 0.256000 0.000000
+ S 0 0.000000 0.256000 0.000000 4.166600 0.000000
+ C 0 0.000000 12.900734 0.255949 -12.900734 0.000076 9.527435
+ S 0 0.000000 2.391326 -0.177947 4.166600 -0.475900
+END
+
+SUBCONTENTS Atlas Z-Scale - Crossings
+TURNOUT Z "Atlas Z Scale 19d Crossing 2813"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 2.869843 0.000000 90.000000
+ E 0.078176 0.467163 289.000000
+ E 2.791667 -0.467163 109.000000
+ S 0 0.000000 0.000000 0.000000 2.869843 0.000000
+ S 0 0.000000 0.078176 0.467163 2.791667 -0.467163
+END \ No newline at end of file
diff --git a/app/lib/params/Z-Rokuhan.xtp b/app/lib/params/Z-Rokuhan.xtp
index c18a605..624d364 100644
--- a/app/lib/params/Z-Rokuhan.xtp
+++ b/app/lib/params/Z-Rokuhan.xtp
@@ -1,1061 +1,1146 @@
-CONTENTS Rokuhan Z Scale Track Components
-#http://www.rokuhan.com
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Rokuhan Z-Scale - Straight Track
-TURNOUT Z "Rokuhan Straight 25mm R030"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 0.984252 0.000000 90.000000
- S 0 0 0.000000 0.000000 0.984252 0.000000
- L 11579568 0.019685 0.000000 0.300000 0.984252 0.300000
- L 11579568 0.019685 0.000000 -0.300000 0.984252 -0.300000
- END
-TURNOUT Z "Rokuhan Straight 55mm R008"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.165354 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.165354 0.000000
- L 11579568 0.019685 0.000000 0.300000 2.165354 0.300000
- L 11579568 0.019685 0.000000 -0.300000 2.165354 -0.300000
- END
-TURNOUT Z "Rokuhan Straight 110mm R001"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.330709 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.330709 0.000000
- L 11579568 0.019685 0.000000 0.300000 4.330709 0.300000
- L 11579568 0.019685 0.000000 -0.300000 4.330709 -0.300000
- END
-TURNOUT Z "Rokuhan Straight w/o Ballast 110mm R045"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.330709 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.330709 0.000000
- END
-TURNOUT Z "Rokuhan Straight 112.8mm R036"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.440945 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.440945 0.000000
- L 11579568 0.019685 0.000000 0.300000 4.440945 0.300000
- L 11579568 0.019685 0.000000 -0.300000 4.440945 -0.300000
- END
-TURNOUT Z "Rokuhan Straight 220mm R009"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.661417 0.000000 90.000000
- S 0 0 0.000000 0.000000 8.661417 0.000000
- L 11579568 0.019685 0.000000 0.300000 8.661417 0.300000
- L 11579568 0.019685 0.000000 -0.300000 8.661417 -0.300000
- END
-TURNOUT Z "Rokuhan Straight Flex 135mm R017"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.314961 0.000000 90.000000
- S 0 0 0.000000 0.000000 5.314961 0.000000
- L 11579568 0.019685 0.000000 0.300000 5.314961 0.300000
- L 11579568 0.019685 0.000000 -0.300000 5.314961 -0.300000
- END
-TURNOUT Z "Rokuhan Straight Flex 330mm R016"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 12.992126 0.000000 90.000000
- S 0 0 0.000000 0.000000 12.992126 0.000000
- L 11579568 0.019685 0.000000 0.300000 12.992126 0.300000
- L 11579568 0.019685 0.000000 -0.300000 12.992126 -0.300000
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Rokuhan Z-Scale - Misc Track
-TURNOUT Z "Rokuhan Insulated Rail Joiner 1mm A013"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 0.039370 0.000000 90.000000
- S 0 0 0.000000 0.000000 0.039370 0.000000
- L 11579568 0.019685 0.000000 0.300000 0.039370 0.300000
- L 11579568 0.019685 0.000000 -0.300000 0.039370 -0.300000
- L 33023 0.039370 0.019685 -0.300000 0.019685 0.300000
- END
-TURNOUT Z "Rokuhan Bumper Track R013"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- S 0 0 0.000000 0.000000 0.761535 0.000000
- L 11579568 0.019685 0.000000 0.300000 1.141732 0.300000
- L 11579568 0.019685 0.000000 -0.300000 1.141732 -0.300000
- L 11579568 0.019685 1.141732 0.300000 1.141732 -0.300000
- END
-TURNOUT Z "Rokuhan Straight 55mm Isolation Break R021"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.165354 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.165354 0.000000
- L 11579568 0.019685 0.000000 0.300000 2.165354 0.300000
- L 11579568 0.019685 0.000000 -0.300000 2.165354 -0.300000
- L 33023 0.039370 1.082627 0.150000 1.082627 -0.150000
- END
-TURNOUT Z "Rokuhan Straight 55mm Feeder R024"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.165354 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.165354 0.000000
- L 11579568 0.019685 0.000000 0.300000 2.165354 0.300000
- L 11579568 0.019685 0.000000 -0.300000 2.165354 -0.300000
- L 11579568 0.039370 1.000000 0.1500000 1.000000 -0.450000
- L 11579568 0.039370 1.165254 -0.1500000 1.165254 -0.450000
- END
-TURNOUT Z "Rokuhan Bumper Track(Euro) R029"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- S 0 0 0.000000 0.000000 0.761535 0.000000
- L 11579568 0.019685 0.000000 0.300000 1.141732 0.300000
- L 11579568 0.019685 0.000000 -0.300000 1.141732 -0.300000
- L 11579568 0.019685 1.141732 0.300000 1.141732 -0.300000
- END
-TURNOUT Z "Rokuhan Adjustable Track 100-120mm R031"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.937008 0.000000 90.000000
- X adjustable 3.937008 4.724409
- S 0 0 0.000000 0.000000 3.937008 0.000000
- L 11579568 0.019685 0.000000 0.300000 3.937008 0.300000
- L 11579568 0.019685 0.000000 -0.300000 3.937008 -0.300000
- END
-TURNOUT Z "Rokuhan Custom Track 25-220mm R0XX"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 0.984252 0.000000 90.000000
- X adjustable 0.984252 8.661417
- S 0 0 0.000000 0.000000 0.984252 0.000000
- L 11579568 0.019685 0.000000 0.300000 0.984252 0.300000
- L 11579568 0.019685 0.000000 -0.300000 0.984252 -0.300000
- END
-TURNOUT Z "Rokuhan Uncoupler Track(American) R037"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.165354 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.165354 0.000000
- L 11579568 0.019685 0.000000 0.300000 2.165354 0.300000
- L 11579568 0.019685 0.000000 -0.300000 2.165354 -0.300000
- L 8421504 0.200000 0.582677 0.000000 1.582677 0.000000
- END
-TURNOUT Z "Rokuhan Uncoupler Track(Euro/Arnold) R077"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.165354 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.165354 0.000000
- L 11579568 0.019685 0.000000 0.300000 2.165354 0.300000
- L 11579568 0.019685 0.000000 -0.300000 2.165354 -0.300000
- L 8421504 0.200000 0.582677 0.000000 1.582677 0.000000
- END
-TURNOUT Z "Rokuhan 110mm Point Rail(Left) R039"
- P "Normal" 1
- E 4.330709 0.000000 90.000000
- E 0.000000 0.000000 270.000000
- S 0 0 0.000000 0.000000 4.330709 0.000000
- L 11579568 0.019685 0.500000 0.300000 4.330709 0.300000
- L 11579568 0.019685 0.000000 -0.300000 4.330709 -0.300000
- END
-TURNOUT Z "Rokuhan 110mm Point Rail(Right) R040"
- P "Normal" 1
- E 4.330709 0.000000 90.000000
- E 0.000000 0.000000 270.000000
- S 0 0 0.000000 0.000000 4.330709 0.000000
- L 11579568 0.019685 0.000000 0.300000 4.330709 0.300000
- L 11579568 0.019685 0.500000 -0.300000 4.330709 -0.300000
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Rokuhan Z-Scale - Curve Track
-TURNOUT Z "Rokuhan Curved 45mm 45 R046"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.252748 -0.518905 135.000000
- C 0 0 1.771654 0.000000 -1.771654 0.000000 45.000000
- A 11579568 0.019685 2.217428 0.000000 -1.771654 0.000000 45.000000
- A 11579568 0.019685 1.325880 0.000000 -1.771654 0.000000 45.000000
- END
-TURNOUT Z "Rokuhan Curved 70mm 45 R018"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.948719 -0.807186 135.000000
- C 0 0 2.755906 0.000000 -2.755906 0.000000 45.000000
- A 11579568 0.019685 3.055906 0.000000 -2.755906 0.000000 45.000000
- A 11579568 0.019685 2.455906 0.000000 -2.755906 0.000000 45.000000
- END
-TURNOUT Z "Rokuhan Curved 95mm 45 R010"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.644691 -1.095467 135.000000
- C 0 0 3.740157 0.000000 -3.740157 0.000000 45.000000
- A 11579568 0.019685 4.040157 0.000000 -3.740157 0.000000 45.000000
- A 11579568 0.019685 3.440157 0.000000 -3.740157 0.000000 45.000000
- END
-TURNOUT Z "Rokuhan Curved 120mm 45 R011"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.340662 -1.383747 135.000000
- C 0 0 4.724409 0.000000 -4.724409 0.000000 45.000000
- A 11579568 0.019685 5.024409 0.000000 -4.724409 0.000000 45.000000
- A 11579568 0.019685 4.424409 0.000000 -4.724409 0.000000 45.000000
- END
-TURNOUT Z "Rokuhan Curved 127mm 26 R019"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.191856 -0.506030 116.000000
- C 0 0 5.000000 0.000000 -5.000000 0.000000 26.000000
- A 11579568 0.019685 5.300000 0.000000 -5.000000 0.000000 26.000000
- A 11579568 0.019685 4.700000 0.000000 -5.000000 0.000000 26.000000
- END
-TURNOUT Z "Rokuhan Curved 145mm 45 R005"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.036633 -1.672028 135.000000
- C 0 0 5.708661 0.000000 -5.708661 0.000000 45.000000
- A 11579568 0.019685 6.008661 0.000000 -5.708661 0.000000 45.000000
- A 11579568 0.019685 5.408661 0.000000 -5.708661 0.000000 45.000000
- END
-TURNOUT Z "Rokuhan Curved 170mm 45 R003"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.732604 -1.960309 135.000000
- C 0 0 6.692913 0.000000 -6.692913 0.000000 45.000000
- A 11579568 0.019685 6.992913 0.000000 -6.692913 0.000000 45.000000
- A 11579568 0.019685 6.392913 0.000000 -6.692913 0.000000 45.000000
- END
-TURNOUT Z "Rokuhan Curved 195mm 30 R032"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.838583 -1.028545 120.000000
- C 0 0 7.677165 0.000000 -7.677165 0.000000 30.000000
- A 11579568 0.019685 7.977165 0.000000 -7.677165 0.000000 30.000000
- A 11579568 0.019685 7.377165 0.000000 -7.677165 0.000000 30.000000
- END
-TURNOUT Z "Rokuhan SuperElevated Curved 195mm 30 R064"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.838583 -1.028545 120.000000
- C 0 0 7.677165 0.000000 -7.677165 0.000000 30.000000
- A 11579568 0.019685 7.977165 0.000000 -7.677165 0.000000 30.000000
- A 11579568 0.019685 7.377165 0.000000 -7.677165 0.000000 30.000000
- END
-TURNOUT Z "Rokuhan Curved 195mm 45 R002"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.428575 -2.248590 135.000000
- C 0 0 7.677165 0.000000 -7.677165 0.000000 45.000000
- A 11579568 0.019685 7.977165 0.000000 -7.677165 0.000000 45.000000
- A 11579568 0.019685 7.377165 0.000000 -7.677165 0.000000 45.000000
- END
-TURNOUT Z "Rokuhan Curved 220mm 30 R033"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.330709 -1.160410 120.000000
- C 0 0 8.661417 0.000000 -8.661417 0.000000 30.000000
- A 11579568 0.019685 8.961417 0.000000 -8.661417 0.000000 30.000000
- A 11579568 0.019685 8.361417 0.000000 -8.661417 0.000000 30.000000
- END
-TURNOUT Z "Rokuhan SuperElevated Curved 220mm 30 R065"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.330709 -1.160410 120.000000
- C 0 0 8.661417 0.000000 -8.661417 0.000000 30.000000
- A 11579568 0.019685 8.961417 0.000000 -8.661417 0.000000 30.000000
- A 11579568 0.019685 8.361417 0.000000 -8.661417 0.000000 30.000000
- END
-TURNOUT Z "Rokuhan Curved 220mm 45 R004"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.124547 -2.536870 135.000000
- C 0 0 8.661417 0.000000 -8.661417 0.000000 45.000000
- A 11579568 0.019685 8.961417 0.000000 -8.661417 0.000000 45.000000
- A 11579568 0.019685 8.361417 0.000000 -8.661417 0.000000 45.000000
- END
-TURNOUT Z "Rokuhan Curved 245mm 30 R014"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.822835 -1.292275 120.000000
- C 0 0 9.645669 0.000000 -9.645669 0.000000 30.000000
- A 11579568 0.019685 9.945669 0.000000 -9.645669 0.000000 30.000000
- A 11579568 0.019685 9.345669 0.000000 -9.645669 0.000000 30.000000
- END
-TURNOUT Z "Rokuhan SuperElevated Curved 245mm 30 R073"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.822835 -1.292275 120.000000
- C 0 0 9.645669 0.000000 -9.645669 0.000000 30.000000
- A 11579568 0.019685 9.945669 0.000000 -9.645669 0.000000 30.000000
- A 11579568 0.019685 9.345669 0.000000 -9.645669 0.000000 30.000000
- END
-TURNOUT Z "Rokuhan Curved 270mm 30 R015"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.314961 -1.4241396 120.000000
- C 0 0 10.629921 0.000000 -10.629921 0.000000 30.000000
- A 11579568 0.019685 10.929921 0.000000 -10.629921 0.000000 30.000000
- A 11579568 0.019685 10.329921 0.000000 -10.629921 0.000000 30.000000
- END
-TURNOUT Z "Rokuhan SuperElevated Curved 270mm 30 R074"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.314961 -1.4241396 120.000000
- C 0 0 10.629921 0.000000 -10.629921 0.000000 30.000000
- A 11579568 0.019685 10.929921 0.000000 -10.629921 0.000000 30.000000
- A 11579568 0.019685 10.329921 0.000000 -10.629921 0.000000 30.000000
- END
-TURNOUT Z "Rokuhan Curved 490mm 13 R012"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.339607 -0.494436 103.000000
- C 0 0 19.291339 0.000000 -19.291339 0.000000 13.000000
- A 11579568 0.019685 19.591339 0.000000 -19.291339 0.000000 13.000000
- A 11579568 0.019685 18.991339 0.000000 -19.291339 0.000000 13.000000
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Rokuhan Z-Scale - Turnouts
-TURNOUT Z "Rokuhan Double Crossover 220mm Turnout R078"
- P "Normal" 1 2 3 0 4 5 6
- P "Reverse" 1 7 8 9 6 0 4 10 11 12 3
- E 0.000000 0.000000 270.000000
- E 8.661417 0.000000 90.000000
- E 0.000000 0.984252 270.000000
- E 8.661417 0.984252 90.000000
- S 0 0.000000 0.000000 0.000000 0.453455 0.000000
- S 0 0.000000 0.453455 0.000000 8.207962 0.000000
- S 0 0.000000 8.207962 0.000000 8.661417 0.000000
- S 0 0.000000 0.000000 0.984252 0.453455 0.984252
- S 0 0.000000 0.453455 0.984252 8.207962 0.984252
- S 0 0.000000 8.207962 0.984252 8.661417 0.984252
- C 0 0.000000 -15.453285 0.453475 15.453285 166.420155 13.579921
- S 0 0.000000 4.081906 0.432021 4.579511 0.552231
- C 0 0.000000 15.453285 8.207982 -14.469028 346.420155 13.579921
- C 0 0.000000 15.453285 0.453393 -14.469033 0.000076 13.579921
- S 0 0.000000 4.081906 0.552231 4.579511 0.432021
- C 0 0.000000 -15.453285 8.207982 15.453280 180.000076 13.579921
- L3 11579568 0.019685 -0.000000 -0.300000 0 8.661417 -0.300000 0
- L3 11579568 0.019685 0.000000 0.300000 0 0.453455 0.300000 0
- L3 11579568 0.019685 8.207962 0.300000 0 8.661417 0.300000 0
- L3 11579568 0.019685 -0.000000 0.684252 0 0.453454 0.684252 0
- L3 11579568 0.019685 0.000000 1.284252 0 8.661417 1.284252 0
- L3 11579568 0.019685 8.207962 0.684252 0 8.661417 0.684252 0
- L3 11579568 0.019685 4.117129 0.286216 0 4.334831 0.338807 0
- L3 11579568 0.019685 4.326586 0.645445 0 4.544288 0.698036 0
- L3 11579568 0.019685 4.326585 0.338807 0 4.544288 0.286216 0
- L3 11579568 0.019685 4.117129 0.698036 0 4.334831 0.645445 0
- A3 11579568 0.019685 15.153285 0.453455 15.453285 0 171.000000 9.000000
- A3 11579568 0.019685 15.153285 0.453455 -14.449033 0 0.000000 9.000000
- A3 11579568 0.019685 15.153285 8.207962 -14.449033 0 351.000000 9.000000
- A3 11579568 0.019685 15.153285 8.207962 15.453285 0 180.000010 9.000000
- END
-TURNOUT Z "Rokuhan Left 110mm R490 13 Turnout R039"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 4.330709 0.000000 90.000000
- E 4.339607 0.494436 77.000000
- S 0 0 0.000000 0.000000 4.330709 0.000000
- C 0 0 19.291339 0.000000 19.291339 167.000000 13.000000
- L 11579568 0.019685 0.000000 -0.300000 4.330709 -0.300000
- A 11579568 0.019685 18.991339 0.000000 19.291339 167.000000 13.000000
- END
-TURNOUT Z "Rokuhan Right 110mm R490 13 Turnout R040"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 4.330709 0.000000 90.000000
- E 4.339607 -0.494436 103.000000
- S 0 0 0.000000 0.000000 4.330709 0.000000
- C 0 0 19.291339 0.000000 -19.291339 0.000000 13.000000
- L 11579568 0.019685 0.000000 0.300000 4.330709 0.300000
- A 11579568 0.019685 18.991339 0.000000 -19.291339 0.000000 13.000000
- END
-TURNOUT Z "Rokuhan Left 55mm R127 26 Turnout R022"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 2.165354 0.000000 90.000000
- E 2.191856 0.506030 64.000000
- S 0 0 0.000000 0.000000 2.165354 0.000000
- C 0 0 5.000000 0.000000 5.000000 154.000000 26.000000
- L 11579568 0.019685 0.000000 -0.300000 2.165354 -0.300000
- A 11579568 0.019685 4.700000 0.000000 5.000000 154.000000 26.000000
- END
-TURNOUT Z "Rokuhan Right 55mm R127 26 Turnout R023"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 2.165354 0.000000 90.000000
- E 2.191856 -0.506030 116.000000
- S 0 0 0.000000 0.000000 2.165354 0.000000
- C 0 0 5.000000 0.000000 -5.000000 0.000000 26.000000
- L 11579568 0.019685 0.000000 0.300000 2.165354 0.300000
- A 11579568 0.019685 4.700000 0.000000 -5.000000 0.000000 26.000000
- END
-TURNOUT Z "Rokuhan Double Slip 112.8mm Turnout R034/35"
- P "Normal" 1 2 3 0 4 5 6
- P "Reverse" 1 7 6 0 4 8 3
- E 0.000000 0.000000 270.000000
- E 4.440945 0.000000 90.000000
- E 0.056910 0.499494 283.000000
- E 4.384035 -0.499494 103.000000
- S 0 0.000000 0.000000 0.000000 0.512072 0.000000
- S 0 0.000000 0.512072 0.000000 3.928873 0.000000
- S 0 0.000000 3.928873 0.000000 4.440945 0.000000
- S 0 0.000000 0.056910 0.499494 0.555748 0.384323
- S 0 0.000000 0.555748 0.384323 3.885197 -0.384323
- S 0 0.000000 3.885197 -0.384323 4.384035 -0.499494
- C 0 0.000000 14.994770 0.512012 -14.994770 0.000000 13.000000
- C 0 0.000000 -14.994770 3.928893 14.994766 180.000000 13.000000
- L 11579568 0.019685 -0.000001 -0.300000 0.512071 -0.299999 0
- L 11579568 0.019685 3.928873 0.300000 4.440945 0.300001 0
- L 11579568 0.019685 0.124398 0.791805 0.623237 0.676634 0
- L 11579568 0.019685 3.817708 -0.676633 4.316546 -0.791804 0
- A 11579568 0.019685 14.694770 0.512012 -14.994770 0.000000 13.000000
- A 11579568 0.019685 14.694770 3.928893 14.994766 180.000000 13.000000
- END
-TURNOUT Z "Rokuhan Left Curve R195/R220 30 Turnout R026"
- P "Normal" 2 3
- P "Reverse" 1
- E 0.000000 0.000000 270.000000
- E 4.822835 1.028545 60.000000
- E 3.838583 1.028545 60.000000
- C 0 0 -7.677165 0.000000 7.677165 150.000000 30.000000
- S 0 0.000000 0.000000 0.000000 0.984252 0.000000
- C 0 0 -7.677165 0.984252 7.677165 150.000000 30.000000
- A 11579568 0.019685 7.377165 0.000000 7.677165 150.000000 30.000000
- L 11579568 0.019685 0.000000 -0.300000 0.984252 -0.300000
- A 11579568 0.019685 7.977165 0.984252 7.677165 150.000000 30.000000
- END
-TURNOUT Z "Rokuhan Right Curve R220/R195 30 Turnout R027"
- P "Normal" 2 3
- P "Reverse" 1
- E 0.000000 0.000000 270.000000
- E 4.822835 -1.028545 120.000000
- E 3.838583 -1.028545 120.000000
- C 0 0 7.677165 0.000000 -7.677165 0.000000 30.000000
- S 0 0.000000 0.000000 0.000000 0.984252 0.000000
- C 0 0 7.677165 0.984252 -7.677165 0.000000 30.000000
- A 11579568 0.019685 7.377165 0.000000 -7.677165 0.000000 30.000000
- L 11579568 0.019685 0.000000 0.300000 0.984252 0.300000
- A 11579568 0.019685 7.977165 0.984252 -7.677165 0.000000 30.000000
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Rokuhan Z-Scale - Crossings
-TURNOUT Z "Rokuhan Crossing 112.8mm 13 R020A"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 4.440945 0.000000 90.000000
- E 0.056910 0.499494 283.000000
- E 4.384035 -0.499494 103.000000
- S 0 0.000000 0.000000 0.000000 4.440945 0.000000
- S 0 0.000000 0.056910 0.499494 4.384035 -0.499494
- L 11579568 0.019685 -0.000001 -0.300000 2.220472 -0.299997
- L 11579568 0.019685 2.220472 0.300003 4.440945 0.300006
- L 11579568 0.019685 2.152986 -0.292311 4.316549 -0.791805
- L 11579568 0.019685 0.124395 0.791805 2.287958 0.292311
- END
-TURNOUT Z "Rokuhan Straight 53.6mm R020B"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.110236 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.110236 0.000000
- L 11579568 0.019685 0.000000 0.300000 2.110236 0.300000
- L 11579568 0.019685 0.000000 -0.300000 2.110236 -0.300000
- END
-TURNOUT Z "Rokuhan Crossing 25mm 90 R025A"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 0.984252 0.000000 90.000000
- E 0.492127 0.492126 360.000000
- E 0.492125 -0.492126 180.000000
- S 0 0.000000 0.000000 0.000000 0.984252 0.000000
- S 0 0.000000 0.492127 0.492126 0.492125 -0.492126
- L3 11579568 0.019685 -0.000001 -0.300000 0 0.184546 -0.300000 0
- L3 11579568 0.019685 0.799704 -0.299999 0 0.984251 -0.299999 0
- L3 11579568 0.019685 0.000000 0.300000 0 0.184547 0.300000 0
- L3 11579568 0.019685 0.799705 0.300001 0 0.984252 0.300001 0
- L3 11579568 0.019685 0.192127 0.492126 0 0.192127 0.307579 0
- L3 11579568 0.019685 0.192125 -0.307578 0 0.192125 -0.492126 0
- L3 11579568 0.019685 0.792127 0.492126 0 0.792127 0.307579 0
- L3 11579568 0.019685 0.792125 -0.307578 0 0.792125 -0.492126 0
- END
-TURNOUT Z "Rokuhan Straight 25mm R025B"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 0.984252 0.000000 90.000000
- S 0 0 0.000000 0.000000 0.984252 0.000000
- L 11579568 0.019685 0.000000 0.300000 0.984252 0.300000
- L 11579568 0.019685 0.000000 -0.300000 0.984252 -0.300000
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Rokuhan Z-Scale - Shinkansen Viaduct System Straight Track
-TURNOUT Z "Rokuhan Viaduct Straight 110mm S010"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.330709 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.330709 0.000000
- L 11579568 0.019685 0.000000 0.300000 4.330709 0.300000
- L 11579568 0.019685 0.000000 -0.300000 4.330709 -0.300000
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Rokuhan Z-Scale - Shinkansen Viaduct System Double Straight Track
-TURNOUT Z "Rokuhan Viaduct Double Straight 110mm S019"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.330709 0.000000 90.000000
- E 0.000000 0.984252 270.000000
- E 4.330709 0.984252 90.000000
- S 0 0 0.000000 0.000000 4.330709 0.000000
- L 11579568 0.019685 0.000000 0.300000 4.330709 0.300000
- L 11579568 0.019685 0.000000 -0.300000 4.330709 -0.300000
- S 0 0 0.000000 0.984252 4.330709 0.984252
- L 11579568 0.019685 0.000000 1.284252 4.330709 1.284252
- L 11579568 0.019685 0.000000 0.684252 4.330709 0.684252
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Rokuhan Z-Scale - Shinkansen Viaduct System Curve Track
-TURNOUT Z "Rokuhan Viaduct Curved 195mm 30 S011"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.838583 -1.028545 120.000000
- C 0 0 7.677165 0.000000 -7.677165 0.000000 30.000000
- A 11579568 0.019685 7.977165 0.000000 -7.677165 0.000000 30.000000
- A 11579568 0.019685 7.377165 0.000000 -7.677165 0.000000 30.000000
- END
-TURNOUT Z "Rokuhan Viaduct Curved 195mm 45 R0x"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.428575 -2.248590 135.000000
- C 0 0 7.677165 0.000000 -7.677165 0.000000 45.000000
- A 11579568 0.019685 7.977165 0.000000 -7.677165 0.000000 45.000000
- A 11579568 0.019685 7.377165 0.000000 -7.677165 0.000000 45.000000
- END
-TURNOUT Z "Rokuhan Viaduct Curved 220mm 30 S012"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.330709 -1.160410 120.000000
- C 0 0 8.661417 0.000000 -8.661417 0.000000 30.000000
- A 11579568 0.019685 8.961417 0.000000 -8.661417 0.000000 30.000000
- A 11579568 0.019685 8.361417 0.000000 -8.661417 0.000000 30.000000
- END
-TURNOUT Z "Rokuhan Viaduct Curved 220mm 45 R0x"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.124547 -2.536870 135.000000
- C 0 0 8.661417 0.000000 -8.661417 0.000000 45.000000
- A 11579568 0.019685 8.961417 0.000000 -8.661417 0.000000 45.000000
- A 11579568 0.019685 8.361417 0.000000 -8.661417 0.000000 45.000000
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Rokuhan Z-Scale - Shinkansen Viaduct System Curve Double Track
-TURNOUT Z "Rokuhan Viaduct Curved 195/220mm 30 S013"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.838583 -1.028545 120.000000
- E 0.000000 0.984252 270.000000
- E 4.330709 -0.176158 120.000000
- C 0 0 7.677165 0.000000 -7.677165 0.000000 30.000000
- A 11579568 0.019685 7.977165 0.000000 -7.677165 0.000000 30.000000
- A 11579568 0.019685 7.377165 0.000000 -7.677165 0.000000 30.000000
- C 0 0 8.661417 0.000000 -7.677165 0.000000 30.000000
- A 11579568 0.019685 8.961417 0.000000 -7.677165 0.000000 30.000000
- A 11579568 0.019685 8.361417 0.000000 -7.677165 0.000000 30.000000
- END
-TURNOUT Z "Rokuhan Viaduct Curved 195/220mm 45 R0x"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.428575 -2.248590 135.000000
- E 0.000000 0.000000 270.000000
- E 6.124547 -1.552618 135.000000
- C 0 0 7.677165 0.000000 -7.677165 0.000000 45.000000
- A 11579568 0.019685 7.977165 0.000000 -7.677165 0.000000 45.000000
- A 11579568 0.019685 7.377165 0.000000 -7.677165 0.000000 45.000000
- C 0 0 8.661417 0.000000 -7.677165 0.000000 45.000000
- A 11579568 0.019685 8.961417 0.000000 -7.677165 0.000000 45.000000
- A 11579568 0.019685 8.361417 0.000000 -7.677165 0.000000 45.000000
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Rokuhan Z-Scale - Straight PC Track
-TURNOUT Z "Rokuhan Straight PC Track 55mm R048"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.165354 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.165354 0.000000
- L 11579568 0.019685 0.000000 0.300000 2.165354 0.300000
- L 11579568 0.019685 0.000000 -0.300000 2.165354 -0.300000
- END
-TURNOUT Z "Rokuhan Straight PC Track 110mm R049"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.330709 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.330709 0.000000
- L 11579568 0.019685 0.000000 0.300000 4.330709 0.300000
- L 11579568 0.019685 0.000000 -0.300000 4.330709 -0.300000
- END
-TURNOUT Z "Rokuhan Straight PC Track 112.8mm R038"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.440945 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.440945 0.000000
- L 11579568 0.019685 0.000000 0.300000 4.440945 0.300000
- L 11579568 0.019685 0.000000 -0.300000 4.440945 -0.300000
- END
-TURNOUT Z "Rokuhan Straight PC Track 220mm R050"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.661417 0.000000 90.000000
- S 0 0 0.000000 0.000000 8.661417 0.000000
- L 11579568 0.019685 0.000000 0.300000 8.661417 0.300000
- L 11579568 0.019685 0.000000 -0.300000 8.661417 -0.300000
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Rokuhan Z-Scale - Curve PC Track
-TURNOUT Z "Rokuhan Curved PC Track 195mm 30 R051"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.838583 -1.028545 120.000000
- C 0 0 7.677165 0.000000 -7.677165 0.000000 30.000000
- A 11579568 0.019685 7.977165 0.000000 -7.677165 0.000000 30.000000
- A 11579568 0.019685 7.377165 0.000000 -7.677165 0.000000 30.000000
- END
-TURNOUT Z "Rokuhan SuperElevated Curved PC Track 195mm 30 R066"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.838583 -1.028545 120.000000
- C 0 0 7.677165 0.000000 -7.677165 0.000000 30.000000
- A 11579568 0.019685 7.977165 0.000000 -7.677165 0.000000 30.000000
- A 11579568 0.019685 7.377165 0.000000 -7.677165 0.000000 30.000000
- END
-TURNOUT Z "Rokuhan Curved PC Track 220mm 30 R052"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.330709 -1.160410 120.000000
- C 0 0 8.661417 0.000000 -8.661417 0.000000 30.000000
- A 11579568 0.019685 8.961417 0.000000 -8.661417 0.000000 30.000000
- A 11579568 0.019685 8.361417 0.000000 -8.661417 0.000000 30.000000
- END
-TURNOUT Z "Rokuhan SuperElevated Curved PC Track 220mm 30 R067"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.330709 -1.160410 120.000000
- C 0 0 8.661417 0.000000 -8.661417 0.000000 30.000000
- A 11579568 0.019685 8.961417 0.000000 -8.661417 0.000000 30.000000
- A 11579568 0.019685 8.361417 0.000000 -8.661417 0.000000 30.000000
- END
-TURNOUT Z "Rokuhan Curved PC Track 245mm 30 R053"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.822835 -1.292275 120.000000
- C 0 0 9.645669 0.000000 -9.645669 0.000000 30.000000
- A 11579568 0.019685 9.945669 0.000000 -9.645669 0.000000 30.000000
- A 11579568 0.019685 9.345669 0.000000 -9.645669 0.000000 30.000000
- END
-TURNOUT Z "Rokuhan SuperElevated Curved PC Track 245mm 30 R075"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.822835 -1.292275 120.000000
- C 0 0 9.645669 0.000000 -9.645669 0.000000 30.000000
- A 11579568 0.019685 9.945669 0.000000 -9.645669 0.000000 30.000000
- A 11579568 0.019685 9.345669 0.000000 -9.645669 0.000000 30.000000
- END
-TURNOUT Z "Rokuhan SuperElevated Curved PC Track 270mm 30 R076"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.314961 -1.4241396 120.000000
- C 0 0 10.629921 0.000000 -10.629921 0.000000 30.000000
- A 11579568 0.019685 10.929921 0.000000 -10.629921 0.000000 30.000000
- A 11579568 0.019685 10.329921 0.000000 -10.629921 0.000000 30.000000
- END
-TURNOUT Z "Rokuhan Curved PC Track 270mm 30 R054"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.314961 -1.4241396 120.000000
- C 0 0 10.629921 0.000000 -10.629921 0.000000 30.000000
- A 11579568 0.019685 10.929921 0.000000 -10.629921 0.000000 30.000000
- A 11579568 0.019685 10.329921 0.000000 -10.629921 0.000000 30.000000
- END
-TURNOUT Z "Rokuhan Curved PC Track 490mm 13 R059"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.339607 -0.494436 103.000000
- C 0 0 19.291339 0.000000 -19.291339 0.000000 13.000000
- A 11579568 0.019685 19.591339 0.000000 -19.291339 0.000000 13.000000
- A 11579568 0.019685 18.991339 0.000000 -19.291339 0.000000 13.000000
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Rokuhan Z-Scale - Turnout PC Track
-TURNOUT Z "Rokuhan Left 110mm R490 13 PC Turnout R055"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 4.330709 0.000000 90.000000
- E 4.339607 0.494436 77.000000
- S 0 0 0.000000 0.000000 4.330709 0.000000
- C 0 0 19.291339 0.000000 19.291339 167.000000 13.000000
- L 11579568 0.019685 0.000000 -0.300000 4.330709 -0.300000
- A 11579568 0.019685 18.991339 0.000000 19.291339 167.000000 13.000000
- END
-TURNOUT Z "Rokuhan Straight Trim Left PC Track 110mm R055A"
- P "Normal" 1
- E 4.330709 0.000000 90.000000
- E 0.000000 0.000000 270.000000
- S 0 0 0.000000 0.000000 4.330709 0.000000
- L 11579568 0.019685 0.500000 0.300000 4.330709 0.300000
- L 11579568 0.019685 0.000000 -0.300000 4.330709 -0.300000
- END
-TURNOUT Z "Rokuhan Right 110mm R490 13 PC Turnout R056"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 4.330709 0.000000 90.000000
- E 4.339607 -0.494436 103.000000
- S 0 0 0.000000 0.000000 4.330709 0.000000
- C 0 0 19.291339 0.000000 -19.291339 0.000000 13.000000
- L 11579568 0.019685 0.000000 0.300000 4.330709 0.300000
- A 11579568 0.019685 18.991339 0.000000 -19.291339 0.000000 13.000000
- END
-TURNOUT Z "Rokuhan Straight trim Right PC Track 110mm R056A"
- P "Normal" 1
- E 4.330709 0.000000 90.000000
- E 0.000000 0.000000 270.000000
- S 0 0 0.000000 0.000000 4.330709 0.000000
- L 11579568 0.019685 0.000000 0.300000 4.330709 0.300000
- L 11579568 0.019685 0.500000 -0.300000 4.330709 -0.300000
- END
-TURNOUT Z "Rokuhan Double Slip PC Track 112.8mm Turnout R068/69"
- P "Normal" 1 2 3 0 4 5 6
- P "Reverse" 1 7 6 0 4 8 3
- E 0.000000 0.000000 270.000000
- E 4.440945 0.000000 90.000000
- E 0.056910 0.499494 283.000000
- E 4.384035 -0.499494 103.000000
- S 0 0.000000 0.000000 0.000000 0.512072 0.000000
- S 0 0.000000 0.512072 0.000000 3.928873 0.000000
- S 0 0.000000 3.928873 0.000000 4.440945 0.000000
- S 0 0.000000 0.056910 0.499494 0.555748 0.384323
- S 0 0.000000 0.555748 0.384323 3.885197 -0.384323
- S 0 0.000000 3.885197 -0.384323 4.384035 -0.499494
- C 0 0.000000 14.994770 0.512012 -14.994770 0.000000 13.000000
- C 0 0.000000 -14.994770 3.928893 14.994766 180.000000 13.000000
- L 11579568 0.019685 -0.000001 -0.300000 0.512071 -0.299999 0
- L 11579568 0.019685 3.928873 0.300000 4.440945 0.300001 0
- L 11579568 0.019685 0.124398 0.791805 0.623237 0.676634 0
- L 11579568 0.019685 3.817708 -0.676633 4.316546 -0.791804 0
- A 11579568 0.019685 14.694770 0.512012 -14.994770 0.000000 13.000000
- A 11579568 0.019685 14.694770 3.928893 14.994766 180.000000 13.000000
- END
-TURNOUT Z "Rokuhan Double Crossover PC 220mm Turnout R082"
- P "Normal" 1 2 3 0 4 5 6
- P "Reverse" 1 7 8 9 6 0 4 10 11 12 3
- E 0.000000 0.000000 270.000000
- E 8.661417 0.000000 90.000000
- E 0.000000 0.984252 270.000000
- E 8.661417 0.984252 90.000000
- S 0 0.000000 0.000000 0.000000 0.453455 0.000000
- S 0 0.000000 0.453455 0.000000 8.207962 0.000000
- S 0 0.000000 8.207962 0.000000 8.661417 0.000000
- S 0 0.000000 0.000000 0.984252 0.453455 0.984252
- S 0 0.000000 0.453455 0.984252 8.207962 0.984252
- S 0 0.000000 8.207962 0.984252 8.661417 0.984252
- C 0 0.000000 -15.453285 0.453475 15.453285 166.420155 13.579921
- S 0 0.000000 4.081906 0.432021 4.579511 0.552231
- C 0 0.000000 15.453285 8.207982 -14.469028 346.420155 13.579921
- C 0 0.000000 15.453285 0.453393 -14.469033 0.000076 13.579921
- S 0 0.000000 4.081906 0.552231 4.579511 0.432021
- C 0 0.000000 -15.453285 8.207982 15.453280 180.000076 13.579921
- L3 11579568 0.019685 -0.000000 -0.300000 0 8.661417 -0.300000 0
- L3 11579568 0.019685 0.000000 0.300000 0 0.453455 0.300000 0
- L3 11579568 0.019685 8.207962 0.300000 0 8.661417 0.300000 0
- L3 11579568 0.019685 -0.000000 0.684252 0 0.453454 0.684252 0
- L3 11579568 0.019685 0.000000 1.284252 0 8.661417 1.284252 0
- L3 11579568 0.019685 8.207962 0.684252 0 8.661417 0.684252 0
- L3 11579568 0.019685 4.117129 0.286216 0 4.334831 0.338807 0
- L3 11579568 0.019685 4.326586 0.645445 0 4.544288 0.698036 0
- L3 11579568 0.019685 4.326585 0.338807 0 4.544288 0.286216 0
- L3 11579568 0.019685 4.117129 0.698036 0 4.334831 0.645445 0
- A3 11579568 0.019685 15.153285 0.453455 15.453285 0 171.000000 9.000000
- A3 11579568 0.019685 15.153285 0.453455 -14.449033 0 0.000000 9.000000
- A3 11579568 0.019685 15.153285 8.207962 -14.449033 0 351.000000 9.000000
- A3 11579568 0.019685 15.153285 8.207962 15.453285 0 180.000010 9.000000
- END
-
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Rokuhan Z-Scale - Bridges
-TURNOUT Z "Rokuhan Single Trk Truss Bridge 220mm(Green) R041"
- P "Normal" 1
- E 8.661417 0.000000 90.000000
- E 0.000000 0.000000 270.000000
- S 0 0 0.000000 0.000000 8.661417 0.000000
- L 32896 0.053333 0.000000 0.375000 8.661417 0.375000
- L 32896 0.053333 0.000000 -0.375000 8.661417 -0.375000
- L 32896 0.053333 0.861412 -0.375000 0.861412 0.375000
- L 32896 0.053333 0.861412 -0.375000 2.598425 0.375000
- L 32896 0.053333 2.598425 -0.375000 0.861412 0.375000
- L 32896 0.053333 2.598425 -0.375000 2.598425 0.375000
- L 32896 0.053333 2.598425 -0.375000 4.330708 0.375000
- L 32896 0.053333 4.330708 -0.375000 2.598425 0.375000
- L 32896 0.053333 4.330708 -0.375000 4.330708 0.375000
- L 32896 0.053333 4.330708 -0.375000 6.062922 0.375000
- L 32896 0.053333 6.062922 -0.375000 4.330708 0.375000
- L 32896 0.053333 6.062922 -0.375000 6.062992 0.375000
- L 32896 0.053333 6.062922 -0.375000 7.795275 0.375000
- L 32896 0.053333 7.795275 -0.375000 6.062922 0.375000
- L 32896 0.053333 7.795275 -0.375000 7.795275 0.375000
- END
-TURNOUT Z "Rokuhan Single Trk Truss Bridge 220mm(Red) R042"
- P "Normal" 1
- E 8.661417 0.000000 90.000000
- E 0.000000 0.000000 270.000000
- S 0 0 0.000000 0.000000 8.661417 0.000000
- L 16711680 0.053333 0.000000 0.375000 8.661417 0.375000
- L 16711680 0.053333 0.000000 -0.375000 8.661417 -0.375000
- L 16711680 0.053333 0.861412 -0.375000 0.861412 0.375000
- L 16711680 0.053333 0.861412 -0.375000 2.598425 0.375000
- L 16711680 0.053333 2.598425 -0.375000 0.861412 0.375000
- L 16711680 0.053333 2.598425 -0.375000 2.598425 0.375000
- L 16711680 0.053333 2.598425 -0.375000 4.330708 0.375000
- L 16711680 0.053333 4.330708 -0.375000 2.598425 0.375000
- L 16711680 0.053333 4.330708 -0.375000 4.330708 0.375000
- L 16711680 0.053333 4.330708 -0.375000 6.062922 0.375000
- L 16711680 0.053333 6.062922 -0.375000 4.330708 0.375000
- L 16711680 0.053333 6.062922 -0.375000 6.062992 0.375000
- L 16711680 0.053333 6.062922 -0.375000 7.795275 0.375000
- L 16711680 0.053333 7.795275 -0.375000 6.062922 0.375000
- L 16711680 0.053333 7.795275 -0.375000 7.795275 0.375000
- END
-TURNOUT Z "Rokuhan Double Trk Truss Bridge 220mm(Green) R043"
- P "Normal" 1
- E 8.661417 0.000000 90.000000
- E 0.000000 0.000000 270.000000
- E 8.661417 0.984252 90.000000
- E 0.000000 0.984252 270.000000
- S 0 0 0.000000 0.000000 8.661417 0.000000
- S 0 0 0.000000 0.984252 8.661417 0.984252
- L 32896 0.053333 0.000000 1.359252 8.661417 1.359252
- L 32896 0.053333 0.000000 -0.375000 8.661417 -0.375000
- L 32896 0.053333 0.618673 -0.375000 0.618673 1.359252
- L 32896 0.053333 0.618673 -0.375000 1.856018 1.359252
- L 32896 0.053333 1.856018 -0.375000 0.618673 1.359252
- L 32896 0.053333 1.856018 -0.375000 1.856018 1.359252
- L 32896 0.053333 1.856018 -0.375000 3.093363 1.359252
- L 32896 0.053333 3.093363 -0.375000 1.856018 1.359252
- L 32896 0.053333 3.093363 -0.375000 3.093363 1.359252
- L 32896 0.053333 3.093363 -0.375000 4.330708 1.359252
- L 32896 0.053333 4.330708 -0.375000 3.093363 1.359252
- L 32896 0.053333 4.330708 -0.375000 4.330708 1.359252
- L 32896 0.053333 4.330708 -0.375000 5.568053 1.359252
- L 32896 0.053333 5.568053 -0.375000 4.330708 1.359252
- L 32896 0.053333 5.568053 -0.375000 5.568053 1.359252
- L 32896 0.053333 5.568053 -0.375000 6.805398 1.359252
- L 32896 0.053333 6.805398 -0.375000 5.568053 1.359252
- L 32896 0.053333 6.805398 -0.375000 6.805398 1.359252
- L 32896 0.053333 6.805398 -0.375000 8.042743 1.359252
- L 32896 0.053333 8.042743 -0.375000 6.805398 1.359252
- L 32896 0.053333 8.042743 -0.375000 8.042743 1.359252
- END
-TURNOUT Z "Rokuhan Double Trk Truss Bridge 220mm(Beige) R044"
- P "Normal" 1
- E 8.661417 0.000000 90.000000
- E 0.000000 0.000000 270.000000
- E 8.661417 0.984252 90.000000
- E 0.000000 0.984252 270.000000
- S 0 0 0.000000 0.000000 8.661417 0.000000
- S 0 0 0.000000 0.984252 8.661417 0.984252
- L 15720651 0.053333 0.000000 1.359252 8.661417 1.359252
- L 15720651 0.053333 0.000000 -0.375000 8.661417 -0.375000
- L 15720651 0.053333 0.618673 -0.375000 0.618673 1.359252
- L 15720651 0.053333 0.618673 -0.375000 1.856018 1.359252
- L 15720651 0.053333 1.856018 -0.375000 0.618673 1.359252
- L 15720651 0.053333 1.856018 -0.375000 1.856018 1.359252
- L 15720651 0.053333 1.856018 -0.375000 3.093363 1.359252
- L 15720651 0.053333 3.093363 -0.375000 1.856018 1.359252
- L 15720651 0.053333 3.093363 -0.375000 3.093363 1.359252
- L 15720651 0.053333 3.093363 -0.375000 4.330708 1.359252
- L 15720651 0.053333 4.330708 -0.375000 3.093363 1.359252
- L 15720651 0.053333 4.330708 -0.375000 4.330708 1.359252
- L 15720651 0.053333 4.330708 -0.375000 5.568053 1.359252
- L 15720651 0.053333 5.568053 -0.375000 4.330708 1.359252
- L 15720651 0.053333 5.568053 -0.375000 5.568053 1.359252
- L 15720651 0.053333 5.568053 -0.375000 6.805398 1.359252
- L 15720651 0.053333 6.805398 -0.375000 5.568053 1.359252
- L 15720651 0.053333 6.805398 -0.375000 6.805398 1.359252
- L 15720651 0.053333 6.805398 -0.375000 8.042743 1.359252
- L 15720651 0.053333 8.042743 -0.375000 6.805398 1.359252
- L 15720651 0.053333 8.042743 -0.375000 8.042743 1.359252
- END
-TURNOUT Z "Rokuhan Double Trk Truss Bridge 220mm(Brown) R060"
- P "Normal" 1
- E 8.661417 0.000000 90.000000
- E 0.000000 0.000000 270.000000
- E 8.661417 0.984252 90.000000
- E 0.000000 0.984252 270.000000
- S 0 0 0.000000 0.000000 8.661417 0.000000
- S 0 0 0.000000 0.984252 8.661417 0.984252
- L 8388608 0.053333 0.000000 1.359252 8.661417 1.359252
- L 8388608 0.053333 0.000000 -0.375000 8.661417 -0.375000
- L 8388608 0.053333 0.618673 -0.375000 0.618673 1.359252
- L 8388608 0.053333 0.618673 -0.375000 1.856018 1.359252
- L 8388608 0.053333 1.856018 -0.375000 0.618673 1.359252
- L 8388608 0.053333 1.856018 -0.375000 1.856018 1.359252
- L 8388608 0.053333 1.856018 -0.375000 3.093363 1.359252
- L 8388608 0.053333 3.093363 -0.375000 1.856018 1.359252
- L 8388608 0.053333 3.093363 -0.375000 3.093363 1.359252
- L 8388608 0.053333 3.093363 -0.375000 4.330708 1.359252
- L 8388608 0.053333 4.330708 -0.375000 3.093363 1.359252
- L 8388608 0.053333 4.330708 -0.375000 4.330708 1.359252
- L 8388608 0.053333 4.330708 -0.375000 5.568053 1.359252
- L 8388608 0.053333 5.568053 -0.375000 4.330708 1.359252
- L 8388608 0.053333 5.568053 -0.375000 5.568053 1.359252
- L 8388608 0.053333 5.568053 -0.375000 6.805398 1.359252
- L 8388608 0.053333 6.805398 -0.375000 5.568053 1.359252
- L 8388608 0.053333 6.805398 -0.375000 6.805398 1.359252
- L 8388608 0.053333 6.805398 -0.375000 8.042743 1.359252
- L 8388608 0.053333 8.042743 -0.375000 6.805398 1.359252
- L 8388608 0.053333 8.042743 -0.375000 8.042743 1.359252
- END
-TURNOUT Z "Rokuhan Single Trk Truss Bridge 220mm(Brown) R061"
- P "Normal" 1
- E 8.661417 0.000000 90.000000
- E 0.000000 0.000000 270.000000
- S 0 0 0.000000 0.000000 8.661417 0.000000
- L 8388608 0.053333 0.000000 0.375000 8.661417 0.375000
- L 8388608 0.053333 0.000000 -0.375000 8.661417 -0.375000
- L 8388608 0.053333 0.861412 -0.375000 0.861412 0.375000
- L 8388608 0.053333 0.861412 -0.375000 2.598425 0.375000
- L 8388608 0.053333 2.598425 -0.375000 0.861412 0.375000
- L 8388608 0.053333 2.598425 -0.375000 2.598425 0.375000
- L 8388608 0.053333 2.598425 -0.375000 4.330708 0.375000
- L 8388608 0.053333 4.330708 -0.375000 2.598425 0.375000
- L 8388608 0.053333 4.330708 -0.375000 4.330708 0.375000
- L 8388608 0.053333 4.330708 -0.375000 6.062922 0.375000
- L 8388608 0.053333 6.062922 -0.375000 4.330708 0.375000
- L 8388608 0.053333 6.062922 -0.375000 6.062992 0.375000
- L 8388608 0.053333 6.062922 -0.375000 7.795275 0.375000
- L 8388608 0.053333 7.795275 -0.375000 6.062922 0.375000
- L 8388608 0.053333 7.795275 -0.375000 7.795275 0.375000
- END
-TURNOUT Z "Rokuhan Single Trk Deck Girder Bridge 110mm(Red) R070"
- P "Normal" 1
- E 4.330709 0.000000 90.000000
- E 0.000000 0.000000 270.000000
- S 0 0 0.000000 0.000000 4.330709 0.000000
- L 16711680 0.053333 0.000000 0.375000 4.330709 0.375000
- L 16711680 0.053333 0.000000 -0.375000 4.330709 -0.375000
- END
-TURNOUT Z "Rokuhan Single Trk Deck Girder Bridge 110mm(Green) R071"
- P "Normal" 1
- E 4.330709 0.000000 90.000000
- E 0.000000 0.000000 270.000000
- S 0 0 0.000000 0.000000 4.330709 0.000000
- L 32896 0.053333 0.000000 0.375000 4.330709 0.375000
- L 32896 0.053333 0.000000 -0.375000 4.330709 -0.375000
- END
-TURNOUT Z "Rokuhan Single Trk Deck Girder Bridge 110mm(Black) R072"
- P "Normal" 1
- E 4.330709 0.000000 90.000000
- E 0.000000 0.000000 270.000000
- S 0 0 0.000000 0.000000 4.330709 0.000000
- L 0 0.053333 0.000000 0.375000 4.330709 0.375000
- L 0 0.053333 0.000000 -0.375000 4.330709 -0.375000
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Rokuhan Z-Scale - Turntable
-TURNOUT Z "Rokuhan Turntable 170mm S037"
- P "1" 1 2 3
- P "2" 4 5 6
- P "3" 7 8 9
- P "4" 10 11 12
- P "5" 13 14 15
- P "6" 16 17 18
- P "7" 19 20 21
- P "8" 22 23 24
- E 0.000000 3.346457 0.000000
- E 0.866127 3.232429 15.000000
- E 1.673228 2.898117 30.000000
- E 2.366302 2.366302 45.000000
- E 2.898117 1.673228 60.000000
- E 3.232429 0.866127 75.000000
- E 3.346457 0.000000 90.000000
- E 3.232429 -0.866127 105.000000
- E 2.898117 -1.673228 120.000000
- E 2.366302 -2.366302 135.000000
- E 1.673228 -2.898117 150.000000
- E 0.866127 -3.232429 165.000000
- E 0.000000 -3.346457 180.000000
- E -0.866127 -3.232429 195.000000
- E -1.673228 -2.898117 210.000000
- E -2.366302 -2.366302 225.000000
- E -2.898117 -1.673228 240.000000
- E -3.232429 -0.866127 255.000000
- E -3.346457 0.000000 270.000000
- E -3.232429 0.866127 285.000000
- E -2.898117 1.673228 300.000000
- E -2.366302 2.366302 315.000000
- E -1.673228 2.898117 330.000000
- E -0.866127 3.232429 345.000000
- S 0 0.031250 0.000000 3.346457 0.000000 2.559055
- S 16777215 0.031250 0.000000 2.559055 0.000000 -2.559055
- S 0 0.031250 0.000000 -2.559055 0.000000 -3.346457
- S 0 0.031250 0.866127 3.232429 0.662332 2.471857
- S 16777215 0.031250 0.662332 2.471857 -0.662332 -2.471857
- S 0 0.031250 -0.662332 -2.471857 -0.866127 -3.232429
- S 0 0.031250 1.673228 2.898117 1.279528 2.216207
- S 16777215 0.031250 1.279528 2.216207 -1.279528 -2.216207
- S 0 0.031250 -1.279528 -2.216207 -1.673228 -2.898117
- S 0 0.031250 2.366302 2.366302 1.809525 1.809525
- S 16777215 0.031250 1.809525 1.809525 -1.809525 -1.809525
- S 0 0.031250 -1.809525 -1.809525 -2.366302 -2.366302
- S 0 0.031250 2.898117 1.673228 2.216207 1.279528
- S 16777215 0.031250 2.216207 1.279528 -2.216207 -1.279528
- S 0 0.031250 -2.216207 -1.279528 -2.898117 -1.673228
- S 0 0.031250 3.232429 0.866127 2.471857 0.662332
- S 16777215 0.031250 2.471857 0.662332 -2.471857 -0.662332
- S 0 0.031250 -2.471857 -0.662332 -3.232429 -0.866127
- S 0 0.031250 3.346457 0.000000 2.559055 0.000000
- S 16777215 0.031250 2.559055 0.000000 -2.559055 0.000000
- S 0 0.031250 -2.559055 0.000000 -3.346457 0.000000
- S 0 0.031250 3.232429 -0.866127 2.471857 -0.662332
- S 16777215 0.031250 2.471857 -0.662332 -2.471857 0.662332
- S 0 0.031250 -2.471857 0.662332 -3.232429 0.866127
- S 0 0.031250 2.898117 -1.673228 2.216207 -1.279528
- S 16777215 0.031250 2.216207 -1.279528 -2.216207 1.279528
- S 0 0.031250 -2.216207 1.279528 -2.898117 1.673228
- S 0 0.031250 2.366302 -2.366302 1.809525 -1.809525
- S 16777215 0.031250 1.809525 -2.366302 -1.809525 2.366302
- S 0 0.031250 -1.809525 1.809525 -2.366302 2.366302
- S 0 0.031250 1.673228 -2.898117 1.279528 -2.216207
- S 16777215 0.031250 1.279528 -2.216207 -1.279528 2.216207
- S 0 0.031250 -1.279528 2.216207 -1.673228 2.898117
- S 0 0.031250 0.866127 -3.232429 0.662332 -2.471857
- S 16777215 0.031250 0.662332 -2.471857 -0.662332 2.471857
- S 0 0.031250 -0.662332 2.471857 -0.866127 3.232429
- A 0 0.031250 3.346457 0.000000 0.000000 0.000000 360.000000
- A 0 0.031250 2.559055 0.000000 0.000000 0.000000 360.000000
- END
-
-
+CONTENTS Rokuhan Z Scale Track Components
+#http://www.rokuhan.com
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Rokuhan Z-Scale - Straight Track
+TURNOUT Z "Rokuhan Straight Track 25mm R030"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 0.984252 0.000000 90.000000
+ S 0 0 0.000000 0.000000 0.984252 0.000000
+ L 11579568 0.019685 0.000000 0.300000 0.984252 0.300000
+ L 11579568 0.019685 0.000000 -0.300000 0.984252 -0.300000
+END
+TURNOUT Z "Rokuhan Straight Track 55mm R008"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.165354 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.165354 0.000000
+ L 11579568 0.019685 0.000000 0.300000 2.165354 0.300000
+ L 11579568 0.019685 0.000000 -0.300000 2.165354 -0.300000
+END
+TURNOUT Z "Rokuhan Straight Track 110mm R001"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.330709 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+ L 11579568 0.019685 0.000000 0.300000 4.330709 0.300000
+ L 11579568 0.019685 0.000000 -0.300000 4.330709 -0.300000
+END
+TURNOUT Z "Rokuhan Straight Track w/o Ballast 110mm R045"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.330709 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+END
+TURNOUT Z "Rokuhan Straight Track 112.8mm R036"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.440945 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.440945 0.000000
+ L 11579568 0.019685 0.000000 0.300000 4.440945 0.300000
+ L 11579568 0.019685 0.000000 -0.300000 4.440945 -0.300000
+END
+TURNOUT Z "Rokuhan Straight Track 220mm R009"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.661417 0.000000 90.000000
+ S 0 0 0.000000 0.000000 8.661417 0.000000
+ L 11579568 0.019685 0.000000 0.300000 8.661417 0.300000
+ L 11579568 0.019685 0.000000 -0.300000 8.661417 -0.300000
+END
+TURNOUT Z "Rokuhan Straight Track 440mm R083"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 17.322835 0.000000 90.000000
+ S 0 0 0.000000 0.000000 17.322835 0.000000
+ L 11579568 0.019685 0.000000 0.300000 17.322835 0.300000
+ L 11579568 0.019685 0.000000 -0.300000 17.322835 -0.300000
+END
+TURNOUT Z "Rokuhan Straight Flex 135mm R017"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.314961 0.000000 90.000000
+ S 0 0 0.000000 0.000000 5.314961 0.000000
+ L 11579568 0.019685 0.000000 0.300000 5.314961 0.300000
+ L 11579568 0.019685 0.000000 -0.300000 5.314961 -0.300000
+END
+TURNOUT Z "Rokuhan Straight Flex 330mm R016"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 12.992126 0.000000 90.000000
+ S 0 0 0.000000 0.000000 12.992126 0.000000
+ L 11579568 0.019685 0.000000 0.300000 12.992126 0.300000
+ L 11579568 0.019685 0.000000 -0.300000 12.992126 -0.300000
+END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Rokuhan Z-Scale - Misc Track
+TURNOUT Z "Rokuhan Insulated Rail Joiner 1mm A013"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 0.039370 0.000000 90.000000
+ S 0 0 0.000000 0.000000 0.039370 0.000000
+ L 11579568 0.019685 0.000000 0.300000 0.039370 0.300000
+ L 11579568 0.019685 0.000000 -0.300000 0.039370 -0.300000
+ L 33023 0.039370 0.019685 -0.300000 0.019685 0.300000
+END
+TURNOUT Z "Rokuhan Bumper Track R013"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ S 0 0 0.000000 0.000000 0.761535 0.000000
+ L 11579568 0.019685 0.000000 0.300000 1.141732 0.300000
+ L 11579568 0.019685 0.000000 -0.300000 1.141732 -0.300000
+ L 11579568 0.019685 1.141732 0.300000 1.141732 -0.300000
+END
+TURNOUT Z "Rokuhan Straight 55mm Isolation Break R021"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.165354 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.165354 0.000000
+ L 11579568 0.019685 0.000000 0.300000 2.165354 0.300000
+ L 11579568 0.019685 0.000000 -0.300000 2.165354 -0.300000
+ L 33023 0.039370 1.082627 0.150000 1.082627 -0.150000
+END
+TURNOUT Z "Rokuhan Straight 55mm Feeder R024"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.165354 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.165354 0.000000
+ L 11579568 0.019685 0.000000 0.300000 2.165354 0.300000
+ L 11579568 0.019685 0.000000 -0.300000 2.165354 -0.300000
+ L 11579568 0.039370 1.000000 0.1500000 1.000000 -0.450000
+ L 11579568 0.039370 1.165254 -0.1500000 1.165254 -0.450000
+END
+TURNOUT Z "Rokuhan Bumper Track(Euro) R029"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ S 0 0 0.000000 0.000000 0.761535 0.000000
+ L 11579568 0.019685 0.000000 0.300000 1.141732 0.300000
+ L 11579568 0.019685 0.000000 -0.300000 1.141732 -0.300000
+ L 11579568 0.019685 1.141732 0.300000 1.141732 -0.300000
+END
+TURNOUT Z "Rokuhan Adjustable Track 100-120mm R031"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.937008 0.000000 90.000000
+ X adjustable 3.937008 4.724409
+ S 0 0 0.000000 0.000000 3.937008 0.000000
+ L 11579568 0.019685 0.000000 0.300000 3.937008 0.300000
+ L 11579568 0.019685 0.000000 -0.300000 3.937008 -0.300000
+END
+TURNOUT Z "Rokuhan Custom Track 25-220mm R0XX"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 0.984252 0.000000 90.000000
+ X adjustable 0.984252 8.661417
+ S 0 0 0.000000 0.000000 0.984252 0.000000
+ L 11579568 0.019685 0.000000 0.300000 0.984252 0.300000
+ L 11579568 0.019685 0.000000 -0.300000 0.984252 -0.300000
+END
+TURNOUT Z "Rokuhan Uncoupler Track(American) R037"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.165354 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.165354 0.000000
+ L 11579568 0.019685 0.000000 0.300000 2.165354 0.300000
+ L 11579568 0.019685 0.000000 -0.300000 2.165354 -0.300000
+ L 8421504 0.200000 0.582677 0.000000 1.582677 0.000000
+END
+TURNOUT Z "Rokuhan Uncoupler Track(Euro/Arnold) R077"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.165354 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.165354 0.000000
+ L 11579568 0.019685 0.000000 0.300000 2.165354 0.300000
+ L 11579568 0.019685 0.000000 -0.300000 2.165354 -0.300000
+ L 8421504 0.200000 0.582677 0.000000 1.582677 0.000000
+END
+TURNOUT Z "Rokuhan 110mm Point Rail(Left) R039"
+ P "Normal" 1
+ E 4.330709 0.000000 90.000000
+ E 0.000000 0.000000 270.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+ L 11579568 0.019685 0.500000 0.300000 4.330709 0.300000
+ L 11579568 0.019685 0.000000 -0.300000 4.330709 -0.300000
+END
+TURNOUT Z "Rokuhan 110mm Point Rail(Right) R040"
+ P "Normal" 1
+ E 4.330709 0.000000 90.000000
+ E 0.000000 0.000000 270.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+ L 11579568 0.019685 0.000000 0.300000 4.330709 0.300000
+ L 11579568 0.019685 0.500000 -0.300000 4.330709 -0.300000
+END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Rokuhan Z-Scale - Curve Track
+TURNOUT Z "Rokuhan Curved Track 45mm 45° R046"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.252748 -0.518905 135.000000
+ C 0 0 1.771654 0.000000 -1.771654 0.000000 45.000000
+ A 11579568 0.019685 2.217428 0.000000 -1.771654 0.000000 45.000000
+ A 11579568 0.019685 1.325880 0.000000 -1.771654 0.000000 45.000000
+END
+TURNOUT Z "Rokuhan Curved Track 70mm 45° R018"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.948719 -0.807186 135.000000
+ C 0 0 2.755906 0.000000 -2.755906 0.000000 45.000000
+ A 11579568 0.019685 3.055906 0.000000 -2.755906 0.000000 45.000000
+ A 11579568 0.019685 2.455906 0.000000 -2.755906 0.000000 45.000000
+END
+TURNOUT Z "Rokuhan Curved Track 95mm 45° R010"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.644691 -1.095467 135.000000
+ C 0 0 3.740157 0.000000 -3.740157 0.000000 45.000000
+ A 11579568 0.019685 4.040157 0.000000 -3.740157 0.000000 45.000000
+ A 11579568 0.019685 3.440157 0.000000 -3.740157 0.000000 45.000000
+END
+TURNOUT Z "Rokuhan Curved Track 120mm 45° R011"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.340662 -1.383747 135.000000
+ C 0 0 4.724409 0.000000 -4.724409 0.000000 45.000000
+ A 11579568 0.019685 5.024409 0.000000 -4.724409 0.000000 45.000000
+ A 11579568 0.019685 4.424409 0.000000 -4.724409 0.000000 45.000000
+END
+TURNOUT Z "Rokuhan Curved Track 127mm 26° R019"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.191856 -0.506030 116.000000
+ C 0 0 5.000000 0.000000 -5.000000 0.000000 26.000000
+ A 11579568 0.019685 5.300000 0.000000 -5.000000 0.000000 26.000000
+ A 11579568 0.019685 4.700000 0.000000 -5.000000 0.000000 26.000000
+END
+TURNOUT Z "Rokuhan Curved Track 145mm 45° R005"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.036633 -1.672028 135.000000
+ C 0 0 5.708661 0.000000 -5.708661 0.000000 45.000000
+ A 11579568 0.019685 6.008661 0.000000 -5.708661 0.000000 45.000000
+ A 11579568 0.019685 5.408661 0.000000 -5.708661 0.000000 45.000000
+END
+TURNOUT Z "Rokuhan Curved Track 170mm 45° R003"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.732604 -1.960309 135.000000
+ C 0 0 6.692913 0.000000 -6.692913 0.000000 45.000000
+ A 11579568 0.019685 6.992913 0.000000 -6.692913 0.000000 45.000000
+ A 11579568 0.019685 6.392913 0.000000 -6.692913 0.000000 45.000000
+END
+TURNOUT Z "Rokuhan Curved Track 195mm 30° R032"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.838583 -1.028545 120.000000
+ C 0 0 7.677165 0.000000 -7.677165 0.000000 30.000000
+ A 11579568 0.019685 7.977165 0.000000 -7.677165 0.000000 30.000000
+ A 11579568 0.019685 7.377165 0.000000 -7.677165 0.000000 30.000000
+END
+TURNOUT Z "Rokuhan SuperElevated Curved Track 195mm 30° R064"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.838583 -1.028545 120.000000
+ C 0 0 7.677165 0.000000 -7.677165 0.000000 30.000000
+ A 11579568 0.019685 7.977165 0.000000 -7.677165 0.000000 30.000000
+ A 11579568 0.019685 7.377165 0.000000 -7.677165 0.000000 30.000000
+END
+TURNOUT Z "Rokuhan Curved Track 195mm 45° R002"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.428575 -2.248590 135.000000
+ C 0 0 7.677165 0.000000 -7.677165 0.000000 45.000000
+ A 11579568 0.019685 7.977165 0.000000 -7.677165 0.000000 45.000000
+ A 11579568 0.019685 7.377165 0.000000 -7.677165 0.000000 45.000000
+END
+TURNOUT Z "Rokuhan Curved Track 220mm 30° R033"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.330709 -1.160410 120.000000
+ C 0 0 8.661417 0.000000 -8.661417 0.000000 30.000000
+ A 11579568 0.019685 8.961417 0.000000 -8.661417 0.000000 30.000000
+ A 11579568 0.019685 8.361417 0.000000 -8.661417 0.000000 30.000000
+END
+TURNOUT Z "Rokuhan SuperElevated Curved Track 220mm 30° R065"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.330709 -1.160410 120.000000
+ C 0 0 8.661417 0.000000 -8.661417 0.000000 30.000000
+ A 11579568 0.019685 8.961417 0.000000 -8.661417 0.000000 30.000000
+ A 11579568 0.019685 8.361417 0.000000 -8.661417 0.000000 30.000000
+END
+TURNOUT Z "Rokuhan Curved Track 220mm 45° R004"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.124547 -2.536870 135.000000
+ C 0 0 8.661417 0.000000 -8.661417 0.000000 45.000000
+ A 11579568 0.019685 8.961417 0.000000 -8.661417 0.000000 45.000000
+ A 11579568 0.019685 8.361417 0.000000 -8.661417 0.000000 45.000000
+END
+TURNOUT Z "Rokuhan Curved Track 245mm 30° R014"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.822835 -1.292275 120.000000
+ C 0 0 9.645669 0.000000 -9.645669 0.000000 30.000000
+ A 11579568 0.019685 9.945669 0.000000 -9.645669 0.000000 30.000000
+ A 11579568 0.019685 9.345669 0.000000 -9.645669 0.000000 30.000000
+END
+TURNOUT Z "Rokuhan SuperElevated Curved Track 245mm 30° R073"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.822835 -1.292275 120.000000
+ C 0 0 9.645669 0.000000 -9.645669 0.000000 30.000000
+ A 11579568 0.019685 9.945669 0.000000 -9.645669 0.000000 30.000000
+ A 11579568 0.019685 9.345669 0.000000 -9.645669 0.000000 30.000000
+END
+TURNOUT Z "Rokuhan Curved Track 270mm 30° R015"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.314961 -1.4241396 120.000000
+ C 0 0 10.629921 0.000000 -10.629921 0.000000 30.000000
+ A 11579568 0.019685 10.929921 0.000000 -10.629921 0.000000 30.000000
+ A 11579568 0.019685 10.329921 0.000000 -10.629921 0.000000 30.000000
+END
+TURNOUT Z "Rokuhan SuperElevated Curved Track 270mm 30° R074"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.314961 -1.4241396 120.000000
+ C 0 0 10.629921 0.000000 -10.629921 0.000000 30.000000
+ A 11579568 0.019685 10.929921 0.000000 -10.629921 0.000000 30.000000
+ A 11579568 0.019685 10.329921 0.000000 -10.629921 0.000000 30.000000
+END
+TURNOUT Z "Rokuhan Curved Track 490mm 13° R012"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.339607 -0.494436 103.000000
+ C 0 0 19.291339 0.000000 -19.291339 0.000000 13.000000
+ A 11579568 0.019685 19.591339 0.000000 -19.291339 0.000000 13.000000
+ A 11579568 0.019685 18.991339 0.000000 -19.291339 0.000000 13.000000
+END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Rokuhan Z-Scale - Turnouts
+TURNOUT Z "Rokuhan Double Crossover 220mm Turnout R078"
+ P "Normal" 1 2 3 0 4 5 6
+ P "Reverse" 1 7 8 9 6 0 4 10 11 12 3
+ E 0.000000 0.000000 270.000000
+ E 8.661417 0.000000 90.000000
+ E 0.000000 0.984252 270.000000
+ E 8.661417 0.984252 90.000000
+ S 0 0.000000 0.000000 0.000000 0.453455 0.000000
+ S 0 0.000000 0.453455 0.000000 8.207962 0.000000
+ S 0 0.000000 8.207962 0.000000 8.661417 0.000000
+ S 0 0.000000 0.000000 0.984252 0.453455 0.984252
+ S 0 0.000000 0.453455 0.984252 8.207962 0.984252
+ S 0 0.000000 8.207962 0.984252 8.661417 0.984252
+ C 0 0.000000 -15.453285 0.453475 15.453285 166.420155 13.579921
+ S 0 0.000000 4.081906 0.432021 4.579511 0.552231
+ C 0 0.000000 15.453285 8.207982 -14.469028 346.420155 13.579921
+ C 0 0.000000 15.453285 0.453393 -14.469033 0.000076 13.579921
+ S 0 0.000000 4.081906 0.552231 4.579511 0.432021
+ C 0 0.000000 -15.453285 8.207982 15.453280 180.000076 13.579921
+ L3 11579568 0.019685 -0.000000 -0.300000 0 8.661417 -0.300000 0
+ L3 11579568 0.019685 0.000000 0.300000 0 0.453455 0.300000 0
+ L3 11579568 0.019685 8.207962 0.300000 0 8.661417 0.300000 0
+ L3 11579568 0.019685 -0.000000 0.684252 0 0.453454 0.684252 0
+ L3 11579568 0.019685 0.000000 1.284252 0 8.661417 1.284252 0
+ L3 11579568 0.019685 8.207962 0.684252 0 8.661417 0.684252 0
+ L3 11579568 0.019685 4.117129 0.286216 0 4.334831 0.338807 0
+ L3 11579568 0.019685 4.326586 0.645445 0 4.544288 0.698036 0
+ L3 11579568 0.019685 4.326585 0.338807 0 4.544288 0.286216 0
+ L3 11579568 0.019685 4.117129 0.698036 0 4.334831 0.645445 0
+ A3 11579568 0.019685 15.153285 0.453455 15.453285 0 171.000000 9.000000
+ A3 11579568 0.019685 15.153285 0.453455 -14.449033 0 0.000000 9.000000
+ A3 11579568 0.019685 15.153285 8.207962 -14.449033 0 351.000000 9.000000
+ A3 11579568 0.019685 15.153285 8.207962 15.453285 0 180.000010 9.000000
+END
+TURNOUT Z "Rokuhan Left 110mm R490 13° Turnout R039"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 4.330709 0.000000 90.000000
+ E 4.339607 0.494436 77.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+ C 0 0 19.291339 0.000000 19.291339 167.000000 13.000000
+ L 11579568 0.019685 0.000000 -0.300000 4.330709 -0.300000
+ A 11579568 0.019685 18.991339 0.000000 19.291339 167.000000 13.000000
+END
+TURNOUT Z "Rokuhan Right 110mm R490 13° Turnout R040"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 4.330709 0.000000 90.000000
+ E 4.339607 -0.494436 103.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+ C 0 0 19.291339 0.000000 -19.291339 0.000000 13.000000
+ L 11579568 0.019685 0.000000 0.300000 4.330709 0.300000
+ A 11579568 0.019685 18.991339 0.000000 -19.291339 0.000000 13.000000
+END
+TURNOUT Z "Rokuhan Left 55mm R127 26° Turnout R022"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 2.165354 0.000000 90.000000
+ E 2.191856 0.506030 64.000000
+ S 0 0 0.000000 0.000000 2.165354 0.000000
+ C 0 0 5.000000 0.000000 5.000000 154.000000 26.000000
+ L 11579568 0.019685 0.000000 -0.300000 2.165354 -0.300000
+ A 11579568 0.019685 4.700000 0.000000 5.000000 154.000000 26.000000
+END
+TURNOUT Z "Rokuhan Right 55mm R127 26° Turnout R023"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 2.165354 0.000000 90.000000
+ E 2.191856 -0.506030 116.000000
+ S 0 0 0.000000 0.000000 2.165354 0.000000
+ C 0 0 5.000000 0.000000 -5.000000 0.000000 26.000000
+ L 11579568 0.019685 0.000000 0.300000 2.165354 0.300000
+ A 11579568 0.019685 4.700000 0.000000 -5.000000 0.000000 26.000000
+END
+TURNOUT Z "Rokuhan Double Slip 112.8mm Turnout R034/35"
+ P "Normal" 1 2 3 0 4 5 6
+ P "Reverse" 1 7 6 0 4 8 3
+ E 0.000000 0.000000 270.000000
+ E 4.440945 0.000000 90.000000
+ E 0.056910 0.499494 283.000000
+ E 4.384035 -0.499494 103.000000
+ S 0 0.000000 0.000000 0.000000 0.512072 0.000000
+ S 0 0.000000 0.512072 0.000000 3.928873 0.000000
+ S 0 0.000000 3.928873 0.000000 4.440945 0.000000
+ S 0 0.000000 0.056910 0.499494 0.555748 0.384323
+ S 0 0.000000 0.555748 0.384323 3.885197 -0.384323
+ S 0 0.000000 3.885197 -0.384323 4.384035 -0.499494
+ C 0 0.000000 14.994770 0.512012 -14.994770 0.000000 13.000000
+ C 0 0.000000 -14.994770 3.928893 14.994766 180.000000 13.000000
+ L 11579568 0.019685 -0.000001 -0.300000 0.512071 -0.299999 0
+ L 11579568 0.019685 3.928873 0.300000 4.440945 0.300001 0
+ L 11579568 0.019685 0.124398 0.791805 0.623237 0.676634 0
+ L 11579568 0.019685 3.817708 -0.676633 4.316546 -0.791804 0
+ A 11579568 0.019685 14.694770 0.512012 -14.994770 0.000000 13.000000
+ A 11579568 0.019685 14.694770 3.928893 14.994766 180.000000 13.000000
+END
+TURNOUT Z "Rokuhan Left Curve R195/R220 30° Turnout R026"
+ P "Normal" 2 3
+ P "Reverse" 1
+ E 0.000000 0.000000 270.000000
+ E 4.822835 1.028545 60.000000
+ E 3.838583 1.028545 60.000000
+ C 0 0 -7.677165 0.000000 7.677165 150.000000 30.000000
+ S 0 0.000000 0.000000 0.000000 0.984252 0.000000
+ C 0 0 -7.677165 0.984252 7.677165 150.000000 30.000000
+ A 11579568 0.019685 7.377165 0.000000 7.677165 150.000000 30.000000
+ L 11579568 0.019685 0.000000 -0.300000 0.984252 -0.300000
+ A 11579568 0.019685 7.977165 0.984252 7.677165 150.000000 30.000000
+END
+TURNOUT Z "Rokuhan Right Curve R220/R195 30° Turnout R027"
+ P "Normal" 2 3
+ P "Reverse" 1
+ E 0.000000 0.000000 270.000000
+ E 4.822835 -1.028545 120.000000
+ E 3.838583 -1.028545 120.000000
+ C 0 0 7.677165 0.000000 -7.677165 0.000000 30.000000
+ S 0 0.000000 0.000000 0.000000 0.984252 0.000000
+ C 0 0 7.677165 0.984252 -7.677165 0.000000 30.000000
+ A 11579568 0.019685 7.377165 0.000000 -7.677165 0.000000 30.000000
+ L 11579568 0.019685 0.000000 0.300000 0.984252 0.300000
+ A 11579568 0.019685 7.977165 0.984252 -7.677165 0.000000 30.000000
+END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Rokuhan Z-Scale - Crossings
+TURNOUT Z "Rokuhan Crossing 112.8mm 13° R020A"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 4.440945 0.000000 90.000000
+ E 0.056910 0.499494 283.000000
+ E 4.384035 -0.499494 103.000000
+ S 0 0.000000 0.000000 0.000000 4.440945 0.000000
+ S 0 0.000000 0.056910 0.499494 4.384035 -0.499494
+ L 11579568 0.019685 -0.000001 -0.300000 2.220472 -0.299997
+ L 11579568 0.019685 2.220472 0.300003 4.440945 0.300006
+ L 11579568 0.019685 2.152986 -0.292311 4.316549 -0.791805
+ L 11579568 0.019685 0.124395 0.791805 2.287958 0.292311
+END
+TURNOUT Z "Rokuhan Straight 53.6mm R020B"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.110236 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.110236 0.000000
+ L 11579568 0.019685 0.000000 0.300000 2.110236 0.300000
+ L 11579568 0.019685 0.000000 -0.300000 2.110236 -0.300000
+END
+TURNOUT Z "Rokuhan Crossing 25mm 90° R025A"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 0.984252 0.000000 90.000000
+ E 0.492127 0.492126 360.000000
+ E 0.492125 -0.492126 180.000000
+ S 0 0.000000 0.000000 0.000000 0.984252 0.000000
+ S 0 0.000000 0.492127 0.492126 0.492125 -0.492126
+ L3 11579568 0.019685 -0.000001 -0.300000 0 0.184546 -0.300000 0
+ L3 11579568 0.019685 0.799704 -0.299999 0 0.984251 -0.299999 0
+ L3 11579568 0.019685 0.000000 0.300000 0 0.184547 0.300000 0
+ L3 11579568 0.019685 0.799705 0.300001 0 0.984252 0.300001 0
+ L3 11579568 0.019685 0.192127 0.492126 0 0.192127 0.307579 0
+ L3 11579568 0.019685 0.192125 -0.307578 0 0.192125 -0.492126 0
+ L3 11579568 0.019685 0.792127 0.492126 0 0.792127 0.307579 0
+ L3 11579568 0.019685 0.792125 -0.307578 0 0.792125 -0.492126 0
+END
+TURNOUT Z "Rokuhan Straight 25mm R025B"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 0.984252 0.000000 90.000000
+ S 0 0 0.000000 0.000000 0.984252 0.000000
+ L 11579568 0.019685 0.000000 0.300000 0.984252 0.300000
+ L 11579568 0.019685 0.000000 -0.300000 0.984252 -0.300000
+END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Rokuhan Z-Scale - Shinkansen Viaduct System Straight Track
+TURNOUT Z "Rokuhan Viaduct Straight 110mm S010"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.330709 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+ L 11579568 0.019685 0.000000 0.300000 4.330709 0.300000
+ L 11579568 0.019685 0.000000 -0.300000 4.330709 -0.300000
+END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Rokuhan Z-Scale - Shinkansen Viaduct System Double Straight Track
+TURNOUT Z "Rokuhan Viaduct Double Straight 110mm S019"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.330709 0.000000 90.000000
+ E 0.000000 0.984252 270.000000
+ E 4.330709 0.984252 90.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+ L 11579568 0.019685 0.000000 0.300000 4.330709 0.300000
+ L 11579568 0.019685 0.000000 -0.300000 4.330709 -0.300000
+ S 0 0 0.000000 0.984252 4.330709 0.984252
+ L 11579568 0.019685 0.000000 1.284252 4.330709 1.284252
+ L 11579568 0.019685 0.000000 0.684252 4.330709 0.684252
+END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Rokuhan Z-Scale - Shinkansen Viaduct System Curve Track
+TURNOUT Z "Rokuhan Viaduct Curved 195mm 30° S011"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.838583 -1.028545 120.000000
+ C 0 0 7.677165 0.000000 -7.677165 0.000000 30.000000
+ A 11579568 0.019685 7.977165 0.000000 -7.677165 0.000000 30.000000
+ A 11579568 0.019685 7.377165 0.000000 -7.677165 0.000000 30.000000
+END
+TURNOUT Z "Rokuhan Viaduct Curved 195mm 45° R0x"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.428575 -2.248590 135.000000
+ C 0 0 7.677165 0.000000 -7.677165 0.000000 45.000000
+ A 11579568 0.019685 7.977165 0.000000 -7.677165 0.000000 45.000000
+ A 11579568 0.019685 7.377165 0.000000 -7.677165 0.000000 45.000000
+END
+TURNOUT Z "Rokuhan Viaduct Curved 220mm 30° S012"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.330709 -1.160410 120.000000
+ C 0 0 8.661417 0.000000 -8.661417 0.000000 30.000000
+ A 11579568 0.019685 8.961417 0.000000 -8.661417 0.000000 30.000000
+ A 11579568 0.019685 8.361417 0.000000 -8.661417 0.000000 30.000000
+END
+TURNOUT Z "Rokuhan Viaduct Curved 220mm 45° R0x"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.124547 -2.536870 135.000000
+ C 0 0 8.661417 0.000000 -8.661417 0.000000 45.000000
+ A 11579568 0.019685 8.961417 0.000000 -8.661417 0.000000 45.000000
+ A 11579568 0.019685 8.361417 0.000000 -8.661417 0.000000 45.000000
+END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Rokuhan Z-Scale - Shinkansen Viaduct System Curve Double Track
+TURNOUT Z "Rokuhan Viaduct Curved 195/220mm 30° S013"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.838583 -1.028545 120.000000
+ E 0.000000 0.984252 270.000000
+ E 4.330709 -0.176158 120.000000
+ C 0 0 7.677165 0.000000 -7.677165 0.000000 30.000000
+ A 11579568 0.019685 7.977165 0.000000 -7.677165 0.000000 30.000000
+ A 11579568 0.019685 7.377165 0.000000 -7.677165 0.000000 30.000000
+ C 0 0 8.661417 0.000000 -7.677165 0.000000 30.000000
+ A 11579568 0.019685 8.961417 0.000000 -7.677165 0.000000 30.000000
+ A 11579568 0.019685 8.361417 0.000000 -7.677165 0.000000 30.000000
+END
+TURNOUT Z "Rokuhan Viaduct Curved 195/220mm 45° R0x"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.428575 -2.248590 135.000000
+ E 0.000000 0.000000 270.000000
+ E 6.124547 -1.552618 135.000000
+ C 0 0 7.677165 0.000000 -7.677165 0.000000 45.000000
+ A 11579568 0.019685 7.977165 0.000000 -7.677165 0.000000 45.000000
+ A 11579568 0.019685 7.377165 0.000000 -7.677165 0.000000 45.000000
+ C 0 0 8.661417 0.000000 -7.677165 0.000000 45.000000
+ A 11579568 0.019685 8.961417 0.000000 -7.677165 0.000000 45.000000
+ A 11579568 0.019685 8.361417 0.000000 -7.677165 0.000000 45.000000
+END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Rokuhan Z-Scale - Straight PC Track
+TURNOUT Z "Rokuhan Straight PC Track 55mm R048"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.165354 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.165354 0.000000
+ L 11579568 0.019685 0.000000 0.300000 2.165354 0.300000
+ L 11579568 0.019685 0.000000 -0.300000 2.165354 -0.300000
+END
+TURNOUT Z "Rokuhan Straight PC Track 110mm R049"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.330709 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+ L 11579568 0.019685 0.000000 0.300000 4.330709 0.300000
+ L 11579568 0.019685 0.000000 -0.300000 4.330709 -0.300000
+END
+TURNOUT Z "Rokuhan Straight PC Track 112.8mm R038"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.440945 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.440945 0.000000
+ L 11579568 0.019685 0.000000 0.300000 4.440945 0.300000
+ L 11579568 0.019685 0.000000 -0.300000 4.440945 -0.300000
+END
+TURNOUT Z "Rokuhan Straight PC Track 220mm R050"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.661417 0.000000 90.000000
+ S 0 0 0.000000 0.000000 8.661417 0.000000
+ L 11579568 0.019685 0.000000 0.300000 8.661417 0.300000
+ L 11579568 0.019685 0.000000 -0.300000 8.661417 -0.300000
+END
+TURNOUT Z "Rokuhan Straight PC Track 440mm R084"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 17.322835 0.000000 90.000000
+ S 0 0 0.000000 0.000000 17.322835 0.000000
+ L 11579568 0.019685 0.000000 0.300000 17.322835 0.300000
+ L 11579568 0.019685 0.000000 -0.300000 17.322835 -0.300000
+END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Rokuhan Z-Scale - Curve PC Track
+TURNOUT Z "Rokuhan Curved PC Track 195mm 30° R051"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.838583 -1.028545 120.000000
+ C 0 0 7.677165 0.000000 -7.677165 0.000000 30.000000
+ A 11579568 0.019685 7.977165 0.000000 -7.677165 0.000000 30.000000
+ A 11579568 0.019685 7.377165 0.000000 -7.677165 0.000000 30.000000
+END
+TURNOUT Z "Rokuhan SuperElevated Curved PC Track 195mm 30° R066"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.838583 -1.028545 120.000000
+ C 0 0 7.677165 0.000000 -7.677165 0.000000 30.000000
+ A 11579568 0.019685 7.977165 0.000000 -7.677165 0.000000 30.000000
+ A 11579568 0.019685 7.377165 0.000000 -7.677165 0.000000 30.000000
+END
+TURNOUT Z "Rokuhan Curved PC Track 220mm 30° R052"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.330709 -1.160410 120.000000
+ C 0 0 8.661417 0.000000 -8.661417 0.000000 30.000000
+ A 11579568 0.019685 8.961417 0.000000 -8.661417 0.000000 30.000000
+ A 11579568 0.019685 8.361417 0.000000 -8.661417 0.000000 30.000000
+END
+TURNOUT Z "Rokuhan SuperElevated Curved PC Track 220mm 30° R067"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.330709 -1.160410 120.000000
+ C 0 0 8.661417 0.000000 -8.661417 0.000000 30.000000
+ A 11579568 0.019685 8.961417 0.000000 -8.661417 0.000000 30.000000
+ A 11579568 0.019685 8.361417 0.000000 -8.661417 0.000000 30.000000
+END
+TURNOUT Z "Rokuhan Curved PC Track 245mm 30° R053"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.822835 -1.292275 120.000000
+ C 0 0 9.645669 0.000000 -9.645669 0.000000 30.000000
+ A 11579568 0.019685 9.945669 0.000000 -9.645669 0.000000 30.000000
+ A 11579568 0.019685 9.345669 0.000000 -9.645669 0.000000 30.000000
+END
+TURNOUT Z "Rokuhan SuperElevated Curved PC Track 245mm 30° R075"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.822835 -1.292275 120.000000
+ C 0 0 9.645669 0.000000 -9.645669 0.000000 30.000000
+ A 11579568 0.019685 9.945669 0.000000 -9.645669 0.000000 30.000000
+ A 11579568 0.019685 9.345669 0.000000 -9.645669 0.000000 30.000000
+END
+TURNOUT Z "Rokuhan SuperElevated Curved PC Track 270mm 30° R076"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.314961 -1.4241396 120.000000
+ C 0 0 10.629921 0.000000 -10.629921 0.000000 30.000000
+ A 11579568 0.019685 10.929921 0.000000 -10.629921 0.000000 30.000000
+ A 11579568 0.019685 10.329921 0.000000 -10.629921 0.000000 30.000000
+END
+TURNOUT Z "Rokuhan Curved PC Track 270mm 30° R054"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.314961 -1.4241396 120.000000
+ C 0 0 10.629921 0.000000 -10.629921 0.000000 30.000000
+ A 11579568 0.019685 10.929921 0.000000 -10.629921 0.000000 30.000000
+ A 11579568 0.019685 10.329921 0.000000 -10.629921 0.000000 30.000000
+END
+TURNOUT Z "Rokuhan Curved PC Track 490mm 13° R059"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.339607 -0.494436 103.000000
+ C 0 0 19.291339 0.000000 -19.291339 0.000000 13.000000
+ A 11579568 0.019685 19.591339 0.000000 -19.291339 0.000000 13.000000
+ A 11579568 0.019685 18.991339 0.000000 -19.291339 0.000000 13.000000
+END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Rokuhan Z-Scale - Turnout PC Track
+TURNOUT Z "Rokuhan Left 110mm R490 13° PC Turnout R055"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 4.330709 0.000000 90.000000
+ E 4.339607 0.494436 77.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+ C 0 0 19.291339 0.000000 19.291339 167.000000 13.000000
+ L 11579568 0.019685 0.000000 -0.300000 4.330709 -0.300000
+ A 11579568 0.019685 18.991339 0.000000 19.291339 167.000000 13.000000
+END
+TURNOUT Z "Rokuhan Straight Trim Left PC Track 110mm R055A"
+ P "Normal" 1
+ E 4.330709 0.000000 90.000000
+ E 0.000000 0.000000 270.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+ L 11579568 0.019685 0.500000 0.300000 4.330709 0.300000
+ L 11579568 0.019685 0.000000 -0.300000 4.330709 -0.300000
+END
+TURNOUT Z "Rokuhan Right 110mm R490 13° PC Turnout R056"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 4.330709 0.000000 90.000000
+ E 4.339607 -0.494436 103.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+ C 0 0 19.291339 0.000000 -19.291339 0.000000 13.000000
+ L 11579568 0.019685 0.000000 0.300000 4.330709 0.300000
+ A 11579568 0.019685 18.991339 0.000000 -19.291339 0.000000 13.000000
+END
+TURNOUT Z "Rokuhan Straight trim Right PC Track 110mm R056A"
+ P "Normal" 1
+ E 4.330709 0.000000 90.000000
+ E 0.000000 0.000000 270.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+ L 11579568 0.019685 0.000000 0.300000 4.330709 0.300000
+ L 11579568 0.019685 0.500000 -0.300000 4.330709 -0.300000
+END
+TURNOUT Z "Rokuhan Double Slip PC Track 112.8mm Turnout R068/69"
+ P "Normal" 1 2 3 0 4 5 6
+ P "Reverse" 1 7 6 0 4 8 3
+ E 0.000000 0.000000 270.000000
+ E 4.440945 0.000000 90.000000
+ E 0.056910 0.499494 283.000000
+ E 4.384035 -0.499494 103.000000
+ S 0 0.000000 0.000000 0.000000 0.512072 0.000000
+ S 0 0.000000 0.512072 0.000000 3.928873 0.000000
+ S 0 0.000000 3.928873 0.000000 4.440945 0.000000
+ S 0 0.000000 0.056910 0.499494 0.555748 0.384323
+ S 0 0.000000 0.555748 0.384323 3.885197 -0.384323
+ S 0 0.000000 3.885197 -0.384323 4.384035 -0.499494
+ C 0 0.000000 14.994770 0.512012 -14.994770 0.000000 13.000000
+ C 0 0.000000 -14.994770 3.928893 14.994766 180.000000 13.000000
+ L 11579568 0.019685 -0.000001 -0.300000 0.512071 -0.299999 0
+ L 11579568 0.019685 3.928873 0.300000 4.440945 0.300001 0
+ L 11579568 0.019685 0.124398 0.791805 0.623237 0.676634 0
+ L 11579568 0.019685 3.817708 -0.676633 4.316546 -0.791804 0
+ A 11579568 0.019685 14.694770 0.512012 -14.994770 0.000000 13.000000
+ A 11579568 0.019685 14.694770 3.928893 14.994766 180.000000 13.000000
+END
+TURNOUT Z "Rokuhan Double Crossover PC 220mm Turnout R082"
+ P "Normal" 1 2 3 0 4 5 6
+ P "Reverse" 1 7 8 9 6 0 4 10 11 12 3
+ E 0.000000 0.000000 270.000000
+ E 8.661417 0.000000 90.000000
+ E 0.000000 0.984252 270.000000
+ E 8.661417 0.984252 90.000000
+ S 0 0.000000 0.000000 0.000000 0.453455 0.000000
+ S 0 0.000000 0.453455 0.000000 8.207962 0.000000
+ S 0 0.000000 8.207962 0.000000 8.661417 0.000000
+ S 0 0.000000 0.000000 0.984252 0.453455 0.984252
+ S 0 0.000000 0.453455 0.984252 8.207962 0.984252
+ S 0 0.000000 8.207962 0.984252 8.661417 0.984252
+ C 0 0.000000 -15.453285 0.453475 15.453285 166.420155 13.579921
+ S 0 0.000000 4.081906 0.432021 4.579511 0.552231
+ C 0 0.000000 15.453285 8.207982 -14.469028 346.420155 13.579921
+ C 0 0.000000 15.453285 0.453393 -14.469033 0.000076 13.579921
+ S 0 0.000000 4.081906 0.552231 4.579511 0.432021
+ C 0 0.000000 -15.453285 8.207982 15.453280 180.000076 13.579921
+ L3 11579568 0.019685 -0.000000 -0.300000 0 8.661417 -0.300000 0
+ L3 11579568 0.019685 0.000000 0.300000 0 0.453455 0.300000 0
+ L3 11579568 0.019685 8.207962 0.300000 0 8.661417 0.300000 0
+ L3 11579568 0.019685 -0.000000 0.684252 0 0.453454 0.684252 0
+ L3 11579568 0.019685 0.000000 1.284252 0 8.661417 1.284252 0
+ L3 11579568 0.019685 8.207962 0.684252 0 8.661417 0.684252 0
+ L3 11579568 0.019685 4.117129 0.286216 0 4.334831 0.338807 0
+ L3 11579568 0.019685 4.326586 0.645445 0 4.544288 0.698036 0
+ L3 11579568 0.019685 4.326585 0.338807 0 4.544288 0.286216 0
+ L3 11579568 0.019685 4.117129 0.698036 0 4.334831 0.645445 0
+ A3 11579568 0.019685 15.153285 0.453455 15.453285 0 171.000000 9.000000
+ A3 11579568 0.019685 15.153285 0.453455 -14.449033 0 0.000000 9.000000
+ A3 11579568 0.019685 15.153285 8.207962 -14.449033 0 351.000000 9.000000
+ A3 11579568 0.019685 15.153285 8.207962 15.453285 0 180.000010 9.000000
+END
+
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Rokuhan Z-Scale - Bridges
+TURNOUT Z "Rokuhan Single Trk Truss Bridge 220mm(Green) R041"
+ P "Normal" 1
+ E 8.661417 0.000000 90.000000
+ E 0.000000 0.000000 270.000000
+ S 0 0 0.000000 0.000000 8.661417 0.000000
+ L 32896 0.053333 0.000000 0.375000 8.661417 0.375000
+ L 32896 0.053333 0.000000 -0.375000 8.661417 -0.375000
+ L 32896 0.053333 0.861412 -0.375000 0.861412 0.375000
+ L 32896 0.053333 0.861412 -0.375000 2.598425 0.375000
+ L 32896 0.053333 2.598425 -0.375000 0.861412 0.375000
+ L 32896 0.053333 2.598425 -0.375000 2.598425 0.375000
+ L 32896 0.053333 2.598425 -0.375000 4.330708 0.375000
+ L 32896 0.053333 4.330708 -0.375000 2.598425 0.375000
+ L 32896 0.053333 4.330708 -0.375000 4.330708 0.375000
+ L 32896 0.053333 4.330708 -0.375000 6.062922 0.375000
+ L 32896 0.053333 6.062922 -0.375000 4.330708 0.375000
+ L 32896 0.053333 6.062922 -0.375000 6.062992 0.375000
+ L 32896 0.053333 6.062922 -0.375000 7.795275 0.375000
+ L 32896 0.053333 7.795275 -0.375000 6.062922 0.375000
+ L 32896 0.053333 7.795275 -0.375000 7.795275 0.375000
+END
+TURNOUT Z "Rokuhan Single Trk Truss Bridge 220mm(Red) R042"
+ P "Normal" 1
+ E 8.661417 0.000000 90.000000
+ E 0.000000 0.000000 270.000000
+ S 0 0 0.000000 0.000000 8.661417 0.000000
+ L 16711680 0.053333 0.000000 0.375000 8.661417 0.375000
+ L 16711680 0.053333 0.000000 -0.375000 8.661417 -0.375000
+ L 16711680 0.053333 0.861412 -0.375000 0.861412 0.375000
+ L 16711680 0.053333 0.861412 -0.375000 2.598425 0.375000
+ L 16711680 0.053333 2.598425 -0.375000 0.861412 0.375000
+ L 16711680 0.053333 2.598425 -0.375000 2.598425 0.375000
+ L 16711680 0.053333 2.598425 -0.375000 4.330708 0.375000
+ L 16711680 0.053333 4.330708 -0.375000 2.598425 0.375000
+ L 16711680 0.053333 4.330708 -0.375000 4.330708 0.375000
+ L 16711680 0.053333 4.330708 -0.375000 6.062922 0.375000
+ L 16711680 0.053333 6.062922 -0.375000 4.330708 0.375000
+ L 16711680 0.053333 6.062922 -0.375000 6.062992 0.375000
+ L 16711680 0.053333 6.062922 -0.375000 7.795275 0.375000
+ L 16711680 0.053333 7.795275 -0.375000 6.062922 0.375000
+ L 16711680 0.053333 7.795275 -0.375000 7.795275 0.375000
+END
+TURNOUT Z "Rokuhan Double Trk Truss Bridge 220mm(Green) R043"
+ P "Normal" 1
+ E 8.661417 0.000000 90.000000
+ E 0.000000 0.000000 270.000000
+ E 8.661417 0.984252 90.000000
+ E 0.000000 0.984252 270.000000
+ S 0 0 0.000000 0.000000 8.661417 0.000000
+ S 0 0 0.000000 0.984252 8.661417 0.984252
+ L 32896 0.053333 0.000000 1.359252 8.661417 1.359252
+ L 32896 0.053333 0.000000 -0.375000 8.661417 -0.375000
+ L 32896 0.053333 0.618673 -0.375000 0.618673 1.359252
+ L 32896 0.053333 0.618673 -0.375000 1.856018 1.359252
+ L 32896 0.053333 1.856018 -0.375000 0.618673 1.359252
+ L 32896 0.053333 1.856018 -0.375000 1.856018 1.359252
+ L 32896 0.053333 1.856018 -0.375000 3.093363 1.359252
+ L 32896 0.053333 3.093363 -0.375000 1.856018 1.359252
+ L 32896 0.053333 3.093363 -0.375000 3.093363 1.359252
+ L 32896 0.053333 3.093363 -0.375000 4.330708 1.359252
+ L 32896 0.053333 4.330708 -0.375000 3.093363 1.359252
+ L 32896 0.053333 4.330708 -0.375000 4.330708 1.359252
+ L 32896 0.053333 4.330708 -0.375000 5.568053 1.359252
+ L 32896 0.053333 5.568053 -0.375000 4.330708 1.359252
+ L 32896 0.053333 5.568053 -0.375000 5.568053 1.359252
+ L 32896 0.053333 5.568053 -0.375000 6.805398 1.359252
+ L 32896 0.053333 6.805398 -0.375000 5.568053 1.359252
+ L 32896 0.053333 6.805398 -0.375000 6.805398 1.359252
+ L 32896 0.053333 6.805398 -0.375000 8.042743 1.359252
+ L 32896 0.053333 8.042743 -0.375000 6.805398 1.359252
+ L 32896 0.053333 8.042743 -0.375000 8.042743 1.359252
+END
+TURNOUT Z "Rokuhan Double Trk Truss Bridge 220mm(Beige) R044"
+ P "Normal" 1
+ E 8.661417 0.000000 90.000000
+ E 0.000000 0.000000 270.000000
+ E 8.661417 0.984252 90.000000
+ E 0.000000 0.984252 270.000000
+ S 0 0 0.000000 0.000000 8.661417 0.000000
+ S 0 0 0.000000 0.984252 8.661417 0.984252
+ L 15720651 0.053333 0.000000 1.359252 8.661417 1.359252
+ L 15720651 0.053333 0.000000 -0.375000 8.661417 -0.375000
+ L 15720651 0.053333 0.618673 -0.375000 0.618673 1.359252
+ L 15720651 0.053333 0.618673 -0.375000 1.856018 1.359252
+ L 15720651 0.053333 1.856018 -0.375000 0.618673 1.359252
+ L 15720651 0.053333 1.856018 -0.375000 1.856018 1.359252
+ L 15720651 0.053333 1.856018 -0.375000 3.093363 1.359252
+ L 15720651 0.053333 3.093363 -0.375000 1.856018 1.359252
+ L 15720651 0.053333 3.093363 -0.375000 3.093363 1.359252
+ L 15720651 0.053333 3.093363 -0.375000 4.330708 1.359252
+ L 15720651 0.053333 4.330708 -0.375000 3.093363 1.359252
+ L 15720651 0.053333 4.330708 -0.375000 4.330708 1.359252
+ L 15720651 0.053333 4.330708 -0.375000 5.568053 1.359252
+ L 15720651 0.053333 5.568053 -0.375000 4.330708 1.359252
+ L 15720651 0.053333 5.568053 -0.375000 5.568053 1.359252
+ L 15720651 0.053333 5.568053 -0.375000 6.805398 1.359252
+ L 15720651 0.053333 6.805398 -0.375000 5.568053 1.359252
+ L 15720651 0.053333 6.805398 -0.375000 6.805398 1.359252
+ L 15720651 0.053333 6.805398 -0.375000 8.042743 1.359252
+ L 15720651 0.053333 8.042743 -0.375000 6.805398 1.359252
+ L 15720651 0.053333 8.042743 -0.375000 8.042743 1.359252
+END
+TURNOUT Z "Rokuhan Double Trk Truss Bridge 220mm(Brown) R060"
+ P "Normal" 1
+ E 8.661417 0.000000 90.000000
+ E 0.000000 0.000000 270.000000
+ E 8.661417 0.984252 90.000000
+ E 0.000000 0.984252 270.000000
+ S 0 0 0.000000 0.000000 8.661417 0.000000
+ S 0 0 0.000000 0.984252 8.661417 0.984252
+ L 8388608 0.053333 0.000000 1.359252 8.661417 1.359252
+ L 8388608 0.053333 0.000000 -0.375000 8.661417 -0.375000
+ L 8388608 0.053333 0.618673 -0.375000 0.618673 1.359252
+ L 8388608 0.053333 0.618673 -0.375000 1.856018 1.359252
+ L 8388608 0.053333 1.856018 -0.375000 0.618673 1.359252
+ L 8388608 0.053333 1.856018 -0.375000 1.856018 1.359252
+ L 8388608 0.053333 1.856018 -0.375000 3.093363 1.359252
+ L 8388608 0.053333 3.093363 -0.375000 1.856018 1.359252
+ L 8388608 0.053333 3.093363 -0.375000 3.093363 1.359252
+ L 8388608 0.053333 3.093363 -0.375000 4.330708 1.359252
+ L 8388608 0.053333 4.330708 -0.375000 3.093363 1.359252
+ L 8388608 0.053333 4.330708 -0.375000 4.330708 1.359252
+ L 8388608 0.053333 4.330708 -0.375000 5.568053 1.359252
+ L 8388608 0.053333 5.568053 -0.375000 4.330708 1.359252
+ L 8388608 0.053333 5.568053 -0.375000 5.568053 1.359252
+ L 8388608 0.053333 5.568053 -0.375000 6.805398 1.359252
+ L 8388608 0.053333 6.805398 -0.375000 5.568053 1.359252
+ L 8388608 0.053333 6.805398 -0.375000 6.805398 1.359252
+ L 8388608 0.053333 6.805398 -0.375000 8.042743 1.359252
+ L 8388608 0.053333 8.042743 -0.375000 6.805398 1.359252
+ L 8388608 0.053333 8.042743 -0.375000 8.042743 1.359252
+END
+TURNOUT Z "Rokuhan Single Trk Truss Bridge 220mm(Brown) R061"
+ P "Normal" 1
+ E 8.661417 0.000000 90.000000
+ E 0.000000 0.000000 270.000000
+ S 0 0 0.000000 0.000000 8.661417 0.000000
+ L 8388608 0.053333 0.000000 0.375000 8.661417 0.375000
+ L 8388608 0.053333 0.000000 -0.375000 8.661417 -0.375000
+ L 8388608 0.053333 0.861412 -0.375000 0.861412 0.375000
+ L 8388608 0.053333 0.861412 -0.375000 2.598425 0.375000
+ L 8388608 0.053333 2.598425 -0.375000 0.861412 0.375000
+ L 8388608 0.053333 2.598425 -0.375000 2.598425 0.375000
+ L 8388608 0.053333 2.598425 -0.375000 4.330708 0.375000
+ L 8388608 0.053333 4.330708 -0.375000 2.598425 0.375000
+ L 8388608 0.053333 4.330708 -0.375000 4.330708 0.375000
+ L 8388608 0.053333 4.330708 -0.375000 6.062922 0.375000
+ L 8388608 0.053333 6.062922 -0.375000 4.330708 0.375000
+ L 8388608 0.053333 6.062922 -0.375000 6.062992 0.375000
+ L 8388608 0.053333 6.062922 -0.375000 7.795275 0.375000
+ L 8388608 0.053333 7.795275 -0.375000 6.062922 0.375000
+ L 8388608 0.053333 7.795275 -0.375000 7.795275 0.375000
+END
+TURNOUT Z "Rokuhan Single Trk Deck Girder Bridge 110mm(Red) R070"
+ P "Normal" 1
+ E 4.330709 0.000000 90.000000
+ E 0.000000 0.000000 270.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+ L 16711680 0.053333 0.000000 0.375000 4.330709 0.375000
+ L 16711680 0.053333 0.000000 -0.375000 4.330709 -0.375000
+END
+TURNOUT Z "Rokuhan Single Trk Deck Girder Bridge 110mm(Green) R071"
+ P "Normal" 1
+ E 4.330709 0.000000 90.000000
+ E 0.000000 0.000000 270.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+ L 32896 0.053333 0.000000 0.375000 4.330709 0.375000
+ L 32896 0.053333 0.000000 -0.375000 4.330709 -0.375000
+END
+TURNOUT Z "Rokuhan Single Trk Deck Girder Bridge 110mm(Black) R072"
+ P "Normal" 1
+ E 4.330709 0.000000 90.000000
+ E 0.000000 0.000000 270.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+ L 0 0.053333 0.000000 0.375000 4.330709 0.375000
+ L 0 0.053333 0.000000 -0.375000 4.330709 -0.375000
+END
+TURNOUT Z "Rokuhan Single Trk Deck Girder Bridge(Short) 55mm(DK Red) R085"
+ P "Normal" 1
+ E 2.165354 0.000000 90.000000
+ E 0.000000 0.000000 270.000000
+ S 0 0 0.000000 0.000000 2.165354 0.000000
+ L 10223889 0.053333 0.000000 0.375000 2.165354 0.375000
+ L 10223889 0.053333 0.000000 -0.375000 2.165354 -0.375000
+END
+TURNOUT Z "Rokuhan Single Trk Deck Girder Bridge(Short) 55mm(Green) R086"
+ P "Normal" 1
+ E 2.165354 0.000000 90.000000
+ E 0.000000 0.000000 270.000000
+ S 0 0 0.000000 0.000000 2.165354 0.000000
+ L 32896 0.053333 0.000000 0.375000 2.165354 0.375000
+ L 32896 0.053333 0.000000 -0.375000 2.165354 -0.375000
+END
+TURNOUT Z "Rokuhan Single Trk Deck Girder Bridge(Short) 55mm(DK Grey) R087"
+ P "Normal" 1
+ E 2.165354 0.000000 90.000000
+ E 0.000000 0.000000 270.000000
+ S 0 0 0.000000 0.000000 2.165354 0.000000
+ L 8421504 0.053333 0.000000 0.375000 2.165354 0.375000
+ L 8421504 0.053333 0.000000 -0.375000 2.165354 -0.375000
+END
+TURNOUT Z "Rokuhan Single Trk Iron Bridge(Short) 110mm(Red) R088"
+ P "Normal" 1
+ E 4.330709 0.000000 90.000000
+ E 0.000000 0.000000 270.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+ L 16711680 0.053333 0.000000 0.375000 4.330709 0.375000
+ L 16711680 0.053333 0.000000 -0.375000 4.330709 -0.375000
+ L 16711680 0.053333 0.748031 -0.375000 0.748031 0.375000
+ L 16711680 0.053333 0.748031 -0.375000 2.165354 0.375000
+ L 16711680 0.053333 2.165354 -0.375000 0.748031 0.375000
+ L 16711680 0.053333 2.165354 -0.375000 2.165354 0.375000
+ L 16711680 0.053333 2.165354 -0.375000 3.582677 0.375000
+ L 16711680 0.053333 3.582677 -0.375000 2.165354 0.375000
+ L 16711680 0.053333 3.582677 -0.375000 3.582677 0.375000
+END
+TURNOUT Z "Rokuhan Single Trk Iron Bridge(Short) 110mm(Green) R089"
+ P "Normal" 1
+ E 4.330709 0.000000 90.000000
+ E 0.000000 0.000000 270.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+ L 32896 0.053333 0.000000 0.375000 4.330709 0.375000
+ L 32896 0.053333 0.000000 -0.375000 4.330709 -0.375000
+ L 32896 0.053333 0.748031 -0.375000 0.748031 0.375000
+ L 32896 0.053333 0.748031 -0.375000 2.165354 0.375000
+ L 32896 0.053333 2.165354 -0.375000 0.748031 0.375000
+ L 32896 0.053333 2.165354 -0.375000 2.165354 0.375000
+ L 32896 0.053333 2.165354 -0.375000 3.582677 0.375000
+ L 32896 0.053333 3.582677 -0.375000 2.165354 0.375000
+ L 32896 0.053333 3.582677 -0.375000 3.582677 0.375000
+END
+TURNOUT Z "Rokuhan Single Trk Iron Bridge(Short) 110mm(DK Grey) R090"
+ P "Normal" 1
+ E 4.330709 0.000000 90.000000
+ E 0.000000 0.000000 270.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+ L 8421504 0.053333 0.000000 0.375000 4.330709 0.375000
+ L 8421504 0.053333 0.000000 -0.375000 4.330709 -0.375000
+ L 8421504 0.053333 0.748031 -0.375000 0.748031 0.375000
+ L 8421504 0.053333 0.748031 -0.375000 2.165354 0.375000
+ L 8421504 0.053333 2.165354 -0.375000 0.748031 0.375000
+ L 8421504 0.053333 2.165354 -0.375000 2.165354 0.375000
+ L 8421504 0.053333 2.165354 -0.375000 3.582677 0.375000
+ L 8421504 0.053333 3.582677 -0.375000 2.165354 0.375000
+ L 8421504 0.053333 3.582677 -0.375000 3.582677 0.375000
+END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Rokuhan Z-Scale - Turntable
+TURNOUT Z "Rokuhan Turntable 170mm S037"
+ P "1" 1 2 3
+ P "2" 4 5 6
+ P "3" 7 8 9
+ P "4" 10 11 12
+ P "5" 13 14 15
+ P "6" 16 17 18
+ P "7" 19 20 21
+ P "8" 22 23 24
+ E 0.000000 3.346457 0.000000
+ E 0.866127 3.232429 15.000000
+ E 1.673228 2.898117 30.000000
+ E 2.366302 2.366302 45.000000
+ E 2.898117 1.673228 60.000000
+ E 3.232429 0.866127 75.000000
+ E 3.346457 0.000000 90.000000
+ E 3.232429 -0.866127 105.000000
+ E 2.898117 -1.673228 120.000000
+ E 2.366302 -2.366302 135.000000
+ E 1.673228 -2.898117 150.000000
+ E 0.866127 -3.232429 165.000000
+ E 0.000000 -3.346457 180.000000
+ E -0.866127 -3.232429 195.000000
+ E -1.673228 -2.898117 210.000000
+ E -2.366302 -2.366302 225.000000
+ E -2.898117 -1.673228 240.000000
+ E -3.232429 -0.866127 255.000000
+ E -3.346457 0.000000 270.000000
+ E -3.232429 0.866127 285.000000
+ E -2.898117 1.673228 300.000000
+ E -2.366302 2.366302 315.000000
+ E -1.673228 2.898117 330.000000
+ E -0.866127 3.232429 345.000000
+ S 0 0.031250 0.000000 3.346457 0.000000 2.559055
+ S 0 0.031250 0.000000 2.559055 0.000000 -2.559055
+ S 0 0.031250 0.000000 -2.559055 0.000000 -3.346457
+ S 0 0.031250 0.866127 3.232429 0.662332 2.471857
+ S 0 0.031250 0.662332 2.471857 -0.662332 -2.471857
+ S 0 0.031250 -0.662332 -2.471857 -0.866127 -3.232429
+ S 0 0.031250 1.673228 2.898117 1.279528 2.216207
+ S 0 0.031250 1.279528 2.216207 -1.279528 -2.216207
+ S 0 0.031250 -1.279528 -2.216207 -1.673228 -2.898117
+ S 0 0.031250 2.366302 2.366302 1.809525 1.809525
+ S 0 0.031250 1.809525 1.809525 -1.809525 -1.809525
+ S 0 0.031250 -1.809525 -1.809525 -2.366302 -2.366302
+ S 0 0.031250 2.898117 1.673228 2.216207 1.279528
+ S 0 0.031250 2.216207 1.279528 -2.216207 -1.279528
+ S 0 0.031250 -2.216207 -1.279528 -2.898117 -1.673228
+ S 0 0.031250 3.232429 0.866127 2.471857 0.662332
+ S 0 0.031250 2.471857 0.662332 -2.471857 -0.662332
+ S 0 0.031250 -2.471857 -0.662332 -3.232429 -0.866127
+ S 0 0.031250 3.346457 0.000000 2.559055 0.000000
+ S 0 0.031250 2.559055 0.000000 -2.559055 0.000000
+ S 0 0.031250 -2.559055 0.000000 -3.346457 0.000000
+ S 0 0.031250 3.232429 -0.866127 2.471857 -0.662332
+ S 0 0.031250 2.471857 -0.662332 -2.471857 0.662332
+ S 0 0.031250 -2.471857 0.662332 -3.232429 0.866127
+ S 0 0.031250 2.898117 -1.673228 2.216207 -1.279528
+ S 0 0.031250 2.216207 -1.279528 -2.216207 1.279528
+ S 0 0.031250 -2.216207 1.279528 -2.898117 1.673228
+ S 0 0.031250 2.366302 -2.366302 1.809525 -1.809525
+ S 0 0.031250 1.809525 -2.366302 -1.809525 2.366302
+ S 0 0.031250 -1.809525 1.809525 -2.366302 2.366302
+ S 0 0.031250 1.673228 -2.898117 1.279528 -2.216207
+ S 0 0.031250 1.279528 -2.216207 -1.279528 2.216207
+ S 0 0.031250 -1.279528 2.216207 -1.673228 2.898117
+ S 0 0.031250 0.866127 -3.232429 0.662332 -2.471857
+ S 0 0.031250 0.662332 -2.471857 -0.662332 2.471857
+ S 0 0.031250 -0.662332 2.471857 -0.866127 3.232429
+ A 0 0.031250 3.346457 0.000000 0.000000 0.000000 360.000000
+ A 0 0.031250 2.559055 0.000000 0.000000 0.000000 360.000000
+END
+
+
diff --git a/app/lib/params/arnold.xtp b/app/lib/params/arnold.xtp
index fc0d8cf..aa11805 100644
--- a/app/lib/params/arnold.xtp
+++ b/app/lib/params/arnold.xtp
@@ -1,6 +1,6 @@
CONTENTS Arnold-Tracks N-Scale
-# From 'Mrklin Complete Program 1994/95 E'
-# Elementos diseados por MAA - 7.086614
+# From 'Märklin Complete Program 1994/95 E'
+# Elementos diseñados por MAA - 7.086614
# Straight Section Design by MAA - 22.200000
TURNOUT N "Arnold Straight 222 1010"
P "Normal" 1
@@ -30,63 +30,63 @@ TURNOUT N "Arnold Straight 57.5 mm 1030"
S 0 0 0.000000 0.000000 2.263780 0.000000
END
# Curved Section Design by MAA - 19.200000 90.000000
-TURNOUT N "Arnold Curved R1 90 1310"
+TURNOUT N "Arnold Curved R1 90º 1310"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 7.559055 7.559045 0.000000
C 0 0 -7.559055 0.000010 7.559055 90.000076 90.000000
END
# Curved Section Design by MAA - 19.200000 45.000000
-TURNOUT N "Arnold Curved R1 45 1320"
+TURNOUT N "Arnold Curved R1 45º 1320"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 5.345056 2.213992 45.000000
C 0 0 -7.559055 0.000010 7.559055 135.000076 45.000000
END
# Curved Section Design by MAA - 19.200000 15.000000
-TURNOUT N "Arnold Curved R1 15 1340"
+TURNOUT N "Arnold Curved R1 15º 1340"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 1.956426 0.257568 75.000000
C 0 0 -7.559055 0.000010 7.559055 165.000076 15.000000
END
# Curved Section Design by MAA - 22.200000 45.000000
-TURNOUT N "Arnold Curved R2 45 1420"
+TURNOUT N "Arnold Curved R2 45º 1420"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 6.180221 2.559929 45.000000
C 0 0 -8.740157 0.000012 8.740157 135.000076 45.000000
END
# Curved Section Design by MAA - 22.200000 15.000000
-TURNOUT N "Arnold Curved R2 15 1440"
+TURNOUT N "Arnold Curved R2 15º 1440"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 2.262117 0.297813 75.000000
C 0 0 -8.740157 0.000012 8.740157 165.000076 15.000000
END
# Curved Section Design by MAA - 40.000000 30.000000
-TURNOUT N "Arnold Curved R3 30 1530"
+TURNOUT N "Arnold Curved R3 30º 1530"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 7.874010 2.109833 60.000000
C 0 0 -15.748031 0.000021 15.748031 150.000076 30.000000
END
# Curved Section Design by MAA - 40.000000 15.000000
-TURNOUT N "Arnold Curved R3 15 1540"
+TURNOUT N "Arnold Curved R3 15º 1540"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.075887 0.536600 75.000000
C 0 0 -15.748031 0.000021 15.748031 165.000076 15.000000
END
# Curved Section Design by MAA - 43.000000 30.000000
-TURNOUT N "Arnold Curved R4 30 1630"
+TURNOUT N "Arnold Curved R4 30º 1630"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 8.464560 2.268070 60.000000
C 0 0 -16.929134 0.000022 16.929134 150.000076 30.000000
END
# Curved Section Design by MAA - 43.000000 15.000000
-TURNOUT N "Arnold Curved R4 15 1640"
+TURNOUT N "Arnold Curved R4 15º 1640"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.381579 0.576845 75.000000
@@ -115,7 +115,7 @@ TURNOUT N "Arnold Turnout Right 1742"
C 0 0 13.771359 0.353045 -13.771359 0.000076 15.000152
S 0 0 3.917422 -0.469256 4.370079 -0.590551
END
-TURNOUT N "Arnold Curved Left 45 1761"
+TURNOUT N "Arnold Curved Left 45º 1761"
P "Normal" 1 4 5
P "Reverse" 1 2 3
E 0.000000 0.000000 270.000000
@@ -127,7 +127,7 @@ TURNOUT N "Arnold Curved Left 45 1761"
C 0 0.000000 -7.887699 0.353100 7.887699 135.000000 45.000000
S 0 0.000000 5.930545 2.310253 6.180225 2.559933
END
-TURNOUT N "Arnold Curved Right 45 1762"
+TURNOUT N "Arnold Curved Right 45º 1762"
U "Curved Turnout" "Sillub Technology" "Arnold" "Curved Left 45D" "1761" "Curved Right 45D" "1762" 5.345059 45.000000 2.213996 45.000000 2.559933 6.180225
P "Normal" 1 4 5
P "Reverse" 1 2 3
@@ -141,7 +141,7 @@ TURNOUT N "Arnold Curved Right 45 1762"
S 0 0.000000 5.930545 -2.310253 6.180225 -2.559933
END
# Crossing Design by MAA - 11.500000 30.000000 11.500000
-TURNOUT N "Arnold Crossing 30 1855"
+TURNOUT N "Arnold Crossing 30º 1855"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 4.527559 0.000000 90.000000
@@ -151,7 +151,7 @@ TURNOUT N "Arnold Crossing 30 1855"
S 0 0 0.303287 1.131886 4.224272 -1.131886
END
# Crossing Design by MAA - 11.500000 90.000000 11.500000
-TURNOUT N "Arnold Crossing 90 1856"
+TURNOUT N "Arnold Crossing 90º 1856"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 4.527559 0.000000 90.000000
@@ -161,7 +161,7 @@ TURNOUT N "Arnold Crossing 90 1856"
S 0 0 2.263786 2.263780 2.263774 -2.263780
END
# Crossing Design by MAA - 11.100000 15.000000 11.500000
-TURNOUT N "Arnold Crossing Right 15 1854"
+TURNOUT N "Arnold Crossing Right 15º 1854"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 4.370079 0.000000 90.000000
@@ -171,7 +171,7 @@ TURNOUT N "Arnold Crossing Right 15 1854"
S 0 0 -0.001605 0.585906 4.371683 -0.585906
END
# Crossing Design by MAA - 11.500000 15.000000 11.100000
-TURNOUT N "Arnold Crossing Left 15 1853"
+TURNOUT N "Arnold Crossing Left 15º 1853"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 4.527559 0.000000 90.000000
diff --git a/app/lib/params/atl83ho.xtp b/app/lib/params/atl83ho.xtp
index d3271f4..8f70bc4 100644
--- a/app/lib/params/atl83ho.xtp
+++ b/app/lib/params/atl83ho.xtp
@@ -385,18 +385,25 @@ TURNOUT HO "Atlas C83 Bumper 518"
S 0 0 0.000000 0.000000 3.750000 0.000000
END
+SUBCONTENTS Atlas HO-Scale C83 - Bridges
TURNOUT HO "Atlas C83 9"" Warren Truss Bridge 590"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 9.000000 0.000000 90.000000
S 0 0 0.000000 0.000000 9.000000 0.000000
- L 11579568 0.050000 0.000000 1.200000 9.000000 1.200000
- L 11579568 0.050000 0.000000 0.750000 0.000000 1.200000
- L 11579568 0.050000 9.000000 0.750000 9.000000 1.200000
- L 11579568 0.050000 0.000000 -1.200000 9.000000 -1.200000
- L 11579568 0.050000 0.000000 -0.750000 0.000000 -1.200000
- L 11579568 0.050000 9.000000 -0.750000 9.000000 -1.200000
- END
+ F 11579568 0.000000 4
+ 0.000000 1.200000 0
+ 9.000000 1.200000 0
+ 9.000000 0.625000 0
+ 0.000000 0.625000 0
+ F 11579568 0.000000 4
+ 0.000000 -1.200000 0
+ 9.000000 -1.200000 0
+ 9.000000 -0.625000 0
+ 0.000000 -0.625000 0
+ L 8421504 0.100000 0.000000 1.200000 9.000000 1.200000
+ L 8421504 0.100000 0.000000 -1.200000 9.000000 -1.200000
+END
TURNOUT HO "Atlas C83 9"" Deck Truss Bridge 591"
P "Normal" 1
E 0.000000 0.000000 270.000000
@@ -408,19 +415,35 @@ TURNOUT HO "Atlas C83 9"" Deck Truss Bridge 591"
L 11579568 0.050000 0.000000 -0.700000 9.000000 -0.700000
L 11579568 0.050000 0.000000 -0.600000 0.000000 -0.700000
L 11579568 0.050000 9.000000 -0.600000 9.000000 -0.700000
- END
+END
TURNOUT HO "Atlas C83 9"" Plate Girder Bridge 592"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 9.000000 0.000000 90.000000
S 0 0 0.000000 0.000000 9.000000 0.000000
- L 11579568 0.050000 0.000000 1.300000 9.000000 1.300000
- L 11579568 0.050000 0.000000 0.750000 0.000000 1.300000
- L 11579568 0.050000 9.000000 0.750000 9.000000 1.300000
- L 11579568 0.050000 0.000000 -1.300000 9.000000 -1.300000
- L 11579568 0.050000 0.000000 -0.750000 0.000000 -1.300000
- L 11579568 0.050000 9.000000 -0.750000 9.000000 -1.300000
- END
+ F 11579568 0.000000 4
+ 0.000000 1.300000 0
+ 9.000000 1.300000 0
+ 9.000000 0.625000 0
+ 0.000000 0.625000 0
+ F 11579568 0.000000 4
+ 0.000000 -1.300000 0
+ 9.000000 -1.300000 0
+ 9.000000 -0.625000 0
+ 0.000000 -0.625000 0
+ L 8421504 0.100000 0.000000 1.300000 9.000000 1.300000
+ L 8421504 0.050000 0.900000 1.000000 0.900000 1.300000
+ L 8421504 0.050000 2.700000 1.000000 2.700000 1.300000
+ L 8421504 0.050000 4.500000 1.000000 4.500000 1.300000
+ L 8421504 0.050000 6.300000 1.000000 6.300000 1.300000
+ L 8421504 0.050000 8.100000 1.000000 8.100000 1.300000
+ L 8421504 0.100000 0.000000 -1.300000 9.000000 -1.300000
+ L 8421504 0.050000 0.900000 -1.000000 0.900000 -1.300000
+ L 8421504 0.050000 2.700000 -1.000000 2.700000 -1.300000
+ L 8421504 0.050000 4.500000 -1.000000 4.500000 -1.300000
+ L 8421504 0.050000 6.300000 -1.000000 6.300000 -1.300000
+ L 8421504 0.050000 8.100000 -1.000000 8.100000 -1.300000
+END
TURNOUT HO "Atlas C83 18"" Through Truss Bridge 593/594"
P "Normal" 1
E 0.000000 0.000000 270.000000
@@ -445,4 +468,94 @@ TURNOUT HO "Atlas C83 18"" Through Truss Bridge 593/594"
L 11579568 0.050000 9.000000 1.200000 12.000000 -1.200000
L 11579568 0.050000 12.000000 -1.200000 15.000000 1.200000
L 11579568 0.050000 12.000000 1.200000 15.000000 -1.200000
- END
+END
+TURNOUT HO "Atlas C83 9"" Single-Track Thru-Girder Bridge 70000027"
+ P "P0" 1
+ E 0.000000 0.000000 270.000000
+ E 9.000000 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 9.000000 0.000000
+ L 11579568 0.100000 0.500000 1.000000 8.500000 1.000000
+ L 11579568 0.050000 0.750000 1.000000 0.750000 0.625000
+ L 11579568 0.050000 2.000000 1.000000 2.000000 0.625000
+ L 11579568 0.050000 3.250000 1.000000 3.250000 0.625000
+ L 11579568 0.050000 4.500000 1.000000 4.500000 0.625000
+ L 11579568 0.050000 5.750000 1.000000 5.750000 0.625000
+ L 11579568 0.050000 7.000000 1.000000 7.000000 0.625000
+ L 11579568 0.050000 8.250000 1.000000 8.250000 0.625000
+ L 11579568 0.100000 0.500000 -1.000000 8.500000 -1.000000
+ L 11579568 0.050000 0.750000 -1.000000 0.750000 -0.625000
+ L 11579568 0.050000 2.000000 -1.000000 2.000000 -0.625000
+ L 11579568 0.050000 3.250000 -1.000000 3.250000 -0.625000
+ L 11579568 0.050000 4.500000 -1.000000 4.500000 -0.625000
+ L 11579568 0.050000 5.750000 -1.000000 5.750000 -0.625000
+ L 11579568 0.050000 7.000000 -1.000000 7.000000 -0.625000
+ L 11579568 0.050000 8.250000 -1.000000 8.250000 -0.625000
+END
+TURNOUT HO "Atlas C83 9"" Double-Track Thru-Girder Bridge 70000028"
+ P "P0" 1 0 1
+ E 0.000000 0.000000 270.000000
+ E 9.000000 0.000000 90.000000
+ E 0.000000 -2.000000 270.000000
+ E 9.000000 -2.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 9.000000 0.000000
+ S 0 0.000000 0.000000 -2.000000 9.000000 -2.000000
+ L 11579568 0.100000 0.500000 1.000000 8.500000 1.000000
+
+ L 11579568 0.050000 0.750000 1.000000 0.750000 0.625000
+ L 11579568 0.050000 2.000000 1.000000 2.000000 0.625000
+ L 11579568 0.050000 3.250000 1.000000 3.250000 0.625000
+ L 11579568 0.050000 4.500000 1.000000 4.500000 0.625000
+ L 11579568 0.050000 5.750000 1.000000 5.750000 0.625000
+ L 11579568 0.050000 7.000000 1.000000 7.000000 0.625000
+ L 11579568 0.050000 8.250000 1.000000 8.250000 0.625000
+
+ L 11579568 0.050000 0.750000 -1.000000 0.750000 -0.625000
+ L 11579568 0.050000 2.000000 -1.000000 2.000000 -0.625000
+ L 11579568 0.050000 3.250000 -1.000000 3.250000 -0.625000
+ L 11579568 0.050000 4.500000 -1.000000 4.500000 -0.625000
+ L 11579568 0.050000 5.750000 -1.000000 5.750000 -0.625000
+ L 11579568 0.050000 7.000000 -1.000000 7.000000 -0.625000
+ L 11579568 0.050000 8.250000 -1.000000 8.250000 -0.625000
+
+ L 11579568 0.100000 0.500000 -1.000000 8.500000 -1.000000
+
+ L 11579568 0.050000 0.750000 -1.000000 0.750000 -1.375000
+ L 11579568 0.050000 2.000000 -1.000000 2.000000 -1.375000
+ L 11579568 0.050000 3.250000 -1.000000 3.250000 -1.375000
+ L 11579568 0.050000 4.500000 -1.000000 4.500000 -1.375000
+ L 11579568 0.050000 5.750000 -1.000000 5.750000 -1.375000
+ L 11579568 0.050000 7.000000 -1.000000 7.000000 -1.375000
+ L 11579568 0.050000 8.250000 -1.000000 8.250000 -1.375000
+
+ L 11579568 0.050000 0.750000 -3.000000 0.750000 -2.625000
+ L 11579568 0.050000 2.000000 -3.000000 2.000000 -2.625000
+ L 11579568 0.050000 3.250000 -3.000000 3.250000 -2.625000
+ L 11579568 0.050000 4.500000 -3.000000 4.500000 -2.625000
+ L 11579568 0.050000 5.750000 -3.000000 5.750000 -2.625000
+ L 11579568 0.050000 7.000000 -3.000000 7.000000 -2.625000
+ L 11579568 0.050000 8.250000 -3.000000 8.250000 -2.625000
+
+ L 11579568 0.100000 0.500000 -3.000000 8.500000 -3.000000
+END
+TURNOUT HO "Atlas C83 9"" Single-Track Add-On Thru-Girder Bridge 70000029"
+ P "P0" 1
+ E 0.000000 0.000000 270.000000
+ E 9.000000 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 9.000000 0.000000
+ #L 11579568 0.100000 0.500000 1.000000 8.500000 1.000000
+ L 11579568 0.050000 0.750000 1.000000 0.750000 0.625000
+ L 11579568 0.050000 2.000000 1.000000 2.000000 0.625000
+ L 11579568 0.050000 3.250000 1.000000 3.250000 0.625000
+ L 11579568 0.050000 4.500000 1.000000 4.500000 0.625000
+ L 11579568 0.050000 5.750000 1.000000 5.750000 0.625000
+ L 11579568 0.050000 7.000000 1.000000 7.000000 0.625000
+ L 11579568 0.050000 8.250000 1.000000 8.250000 0.625000
+ L 11579568 0.100000 0.500000 -1.000000 8.500000 -1.000000
+ L 11579568 0.050000 0.750000 -1.000000 0.750000 -0.625000
+ L 11579568 0.050000 2.000000 -1.000000 2.000000 -0.625000
+ L 11579568 0.050000 3.250000 -1.000000 3.250000 -0.625000
+ L 11579568 0.050000 4.500000 -1.000000 4.500000 -0.625000
+ L 11579568 0.050000 5.750000 -1.000000 5.750000 -0.625000
+ L 11579568 0.050000 7.000000 -1.000000 7.000000 -0.625000
+ L 11579568 0.050000 8.250000 -1.000000 8.250000 -0.625000
+END
diff --git a/app/lib/params/atlascho.cars b/app/lib/params/atlascho.cars
index fe03a55..00a4386 100644
--- a/app/lib/params/atlascho.cars
+++ b/app/lib/params/atlascho.cars
@@ -122,8 +122,8 @@ PART=1659-2%Norfolk Southern%%600942
PART=1660-1%Canadian National%%799088
PART=1660-2%Canadian National%%799423
PART=1661-1%Canadian National 'Web Site'%%799440
-PART=1662-1%Cotton Belt%%63365
-PART=1662-2%Cotton Belt%%63380
+PART=1662-1%Cotton Belt%%63365
+PART=1662-2%Cotton Belt%%63380
PART=1663-1%Rock Island%%33754
PART=1663-2%Rock Island%%533815
PART=1670%Undecorated
@@ -291,8 +291,8 @@ PART=1781-1%Virginia Central%%5220
PART=1781-2%Virginia Central%%5225
PART=1782-1%Willamette Industries%%19001
PART=1782-2%Willamette Industries%%19002
-PART=1783-1%Union Pacific%%50308
-PART=1783-2%Union Pacific%%50406
+PART=1783-1%Union Pacific%%50308
+PART=1783-2%Union Pacific%%50406
PART=1788-1%Union Pacific%%451315
PART=1788-2%Union Pacific%%451324
PART=1784-1 %David J. Joseph Company %%101
@@ -437,7 +437,7 @@ PART=1835-3%Boraxo%%31061
PART=1836-1%Central of Georgia%%1157
PART=1836-2%Central of Georgia%%1177
PART=1837-1%Chicago & North Western%% 95230
-PART=1837-2%Chicago & North Western%%95239
+PART=1837-2%Chicago & North Western%%95239
PART=1837-7%C&NW%%70374
PART=1838-1%Clinchfield%% 60106
PART=1838-2%Clinchfield%% 60102
@@ -548,8 +548,8 @@ PART=1965-1%MP%MP/UP Merger%710310
PART=1965-2%MP%MP/UP Merger%710364
PART=1966-1%Southern Pacific%%491010
PART=1966-2%Southern Pacific%%491041
-PART=1978-1%Cotton Belt%%79020
-PART=1978-2%Cotton Belt%%79039
+PART=1978-1%Cotton Belt%%79020
+PART=1978-2%Cotton Belt%%79039
#############################################
#
# Hopper, Cyl, 56', ACF 3-Bay
@@ -614,13 +614,13 @@ PART=1900%Undecorated
PART=1901-3%Burlington Northern%%10531
PART=1901-4%Burlington Northern%%10586
PART=1903-4%Conrail%%22131
-PART=1902-1%Cotton Belt%%40
-PART=1902-2%Cotton Belt%%45
+PART=1902-1%Cotton Belt%%40
+PART=1902-2%Cotton Belt%%45
PART=1907-1%Chessie System*%%C-3188
PART=1907-2%Chessie System*%%C-3190
PART=1926-2%Delaware & Hudson%%35794
PART=1926-3%Delaware & Hudson%%35797
-PART=1999%Undecorated%w/ Roof Walls
+PART=1999%Undecorated%w/ Roof Walks
PART=1993%Chessie Safety #2%%3143
PART=1994%Chessie Safety #3%%903180
PART=1994-4%Chessie Safety #4%%3163
diff --git a/app/lib/params/atlascn.xtp b/app/lib/params/atlascn.xtp
index 6b85250..5a74bb5 100644
--- a/app/lib/params/atlascn.xtp
+++ b/app/lib/params/atlascn.xtp
@@ -279,7 +279,7 @@ CARPART N "Atlas Caboose, Ext Vision 30661 Illinois Central Gulf ICG 199044" 0
CARPART N "Atlas Caboose, Ext Vision 30662 Illinois Central Gulf ICG 199045" 0 30100 2.931 0.750 0 0 2.198 3.331 8535808
CARPART N "Atlas Caboose, Ext Vision 30668 Illinois Central Gulf ICG 199044" 0 30100 2.931 0.750 0 0 2.198 3.331 8535808
CARPART N "Atlas Caboose, Ext Vision 30669 Illinois Central Gulf ICG 199045" 0 30100 2.931 0.750 0 0 2.198 3.331 8535808
-CARPART N "Atlas Caboose, NE-6 NH Style 33400 " 0 30100 2.475 0.750 0 0 1.856 2.875 8535808
+CARPART N "Atlas Caboose, NE-6 NH Style 33400  " 0 30100 2.475 0.750 0 0 1.856 2.875 8535808
CARPART N "Atlas Caboose, NE-6 NH Style 33411 Clinchfield CRR 1071" 0 30100 2.475 0.750 0 0 1.856 2.875 8535808
CARPART N "Atlas Caboose, NE-6 NH Style 33412 Clinchfield CRR 1076" 0 30100 2.475 0.750 0 0 1.856 2.875 8535808
CARPART N "Atlas Caboose, NE-6 NH Style 33421 New Haven NH C-667" 0 30100 2.475 0.750 0 0 1.856 2.875 8535808
@@ -306,7 +306,7 @@ CARPART N "Atlas Caboose, NE-6 NH Style 33552 Monongahela 72" 0 30100 2.475 0.7
CARPART N "Atlas Caboose, NE-6 NH Style 33561 Morristown & Erie 4" 0 30100 2.475 0.750 0 0 1.856 2.875 8535808
CARPART N "Atlas Caboose, NE-6 NH Style 33571 Susquehanna 112" 0 30100 2.475 0.750 0 0 1.856 2.875 8535808
CARPART N "Atlas Caboose, NE-6 NH Style 33572 Susquehanna 115" 0 30100 2.475 0.750 0 0 1.856 2.875 8535808
-CARPART N "Atlas Caboose, NE-6 NKP Style 33401 " 0 30100 2.475 0.750 0 0 1.856 2.875 8535808
+CARPART N "Atlas Caboose, NE-6 NKP Style 33401  " 0 30100 2.475 0.750 0 0 1.856 2.875 8535808
CARPART N "Atlas Caboose, NE-6 NKP Style 33431 Nickel Plate Road 768" 0 30100 2.475 0.750 0 0 1.856 2.875 8535808
CARPART N "Atlas Caboose, NE-6 NKP Style 33432 Nickel Plate Road 772" 0 30100 2.475 0.750 0 0 1.856 2.875 8535808
CARPART N "Atlas Caboose, NE-6 NKP Style 33441 Norfolk & Western N&W 557728" 0 30100 2.475 0.750 0 0 1.856 2.875 8535808
@@ -654,7 +654,7 @@ CARPART N "Atlas Box, 50' Staggered Double-Door 36392 Western Pacific WP 35030"
CARPART N "Atlas Box, 50' Staggered Double-Door 36393 Western Pacific WP 35022" 0 30100 3.800 0.750 0 0 2.850 4.200 8535808
CARPART N "Atlas Box, 50' Staggered Double-Door Automated Railway 36401 Union Pacific UP 554038" 0 30100 3.800 0.750 0 0 2.850 4.200 8535808
CARPART N "Atlas Box, 50' Staggered Double-Door Automated Railway 36402 Union Pacific UP 554040" 0 30100 3.800 0.750 0 0 2.850 4.200 8535808
-CARPART N "Atlas Box, 50' ACF Precision Design 45000 " 0 30100 3.800 0.750 0 0 2.850 4.200 8535808
+CARPART N "Atlas Box, 50' ACF Precision Design 45000  " 0 30100 3.800 0.750 0 0 2.850 4.200 8535808
CARPART N "Atlas Box, 50' ACF Precision Design 45001 Chicago & North Western CNW 154102" 0 30100 3.800 0.750 0 0 2.850 4.200 8535808
CARPART N "Atlas Box, 50' ACF Precision Design 45002 Chicago & North Western CNW 154836" 0 30100 3.800 0.750 0 0 2.850 4.200 8535808
CARPART N "Atlas Box, 50' ACF Precision Design 45011 Illinois Centra 11379" 0 30100 3.800 0.750 0 0 2.850 4.200 8535808
@@ -685,7 +685,7 @@ CARPART N "Atlas Box, 50' ACF Precision Design 45101 Penn Eastern 1031" 0 30100
CARPART N "Atlas Box, 50' ACF Precision Design 45102 Penn Eastern 1035" 0 30100 3.800 0.750 0 0 2.850 4.200 8535808
CARPART N "Atlas Box, 50' ACF Precision Design 45111 Mississippi Delta 194298" 0 30100 3.800 0.750 0 0 2.850 4.200 8535808
CARPART N "Atlas Box, 50' ACF Precision Design 45112 Mississippi Delta 194385" 0 30100 3.800 0.750 0 0 2.850 4.200 8535808
-CARPART N "Atlas Box, 50' ACF Precision Design Ribside 45200 " 0 30100 3.800 0.750 0 0 2.850 4.200 8535808
+CARPART N "Atlas Box, 50' ACF Precision Design Ribside 45200  " 0 30100 3.800 0.750 0 0 2.850 4.200 8535808
CARPART N "Atlas Box, 50' ACF Precision Design Ribside 45201 Chicago & North Western CNW 155138" 0 30100 3.800 0.750 0 0 2.850 4.200 8535808
CARPART N "Atlas Box, 50' ACF Precision Design Ribside 45202 Chicago & North Western CNW 155153" 0 30100 3.800 0.750 0 0 2.850 4.200 8535808
CARPART N "Atlas Box, 50' ACF Precision Design Ribside 45211 Frisco SLSF 42044" 0 30100 3.800 0.750 0 0 2.850 4.200 8535808
@@ -869,7 +869,7 @@ CARPART N "Atlas Stock, 50' 35422 Norfolk & Western N&W 316619" 0 30100 3.800 0
CARPART N "Atlas Stock, 50' 35423 Norfolk & Western N&W 316615" 0 30100 3.800 0.750 0 0 2.850 4.200 8535808
CARPART N "Atlas Stock, 50' 35492 Pennsylvania PRR 130013" 0 30100 3.800 0.750 0 0 2.850 4.200 8535808
CARPART N "Atlas Stock, 50' 35493 Pennsylvania PRR 130011" 0 30100 3.800 0.750 0 0 2.850 4.200 8535808
-CARPART N "Atlas Reefer, 40' Wood Refridgerator 41400 " 0 30100 3.750 0.750 0 0 2.813 4.150 8535808
+CARPART N "Atlas Reefer, 40' Wood Refridgerator 41400  " 0 30100 3.750 0.750 0 0 2.813 4.150 8535808
CARPART N "Atlas Reefer, 40' Wood Refridgerator 41401 Chicago Burlington & Quincy CB&Q 75276" 0 30100 3.750 0.750 0 0 2.813 4.150 8535808
CARPART N "Atlas Reefer, 40' Wood Refridgerator 41402 Chicago Burlington & Quincy CB&Q 75280" 0 30100 3.750 0.750 0 0 2.813 4.150 8535808
CARPART N "Atlas Reefer, 40' Wood Refridgerator 41403 Edelweiss 18301" 0 30100 3.750 0.750 0 0 2.813 4.150 8535808
@@ -968,7 +968,7 @@ CARPART N "Atlas Reefer, 40' Wood Refridgerator 41506 Pelican Brand 6300" 0 301
CARPART N "Atlas Reefer, 40' Wood Refridgerator 41507 Pelican Brand 6301" 0 30100 3.750 0.750 0 0 2.813 4.150 8535808
CARPART N "Atlas Reefer, 40' Wood Refridgerator 41508 Silver Edge 1001" 0 30100 3.750 0.750 0 0 2.813 4.150 8535808
CARPART N "Atlas Reefer, 40' Wood Refridgerator 41509 Silver Edge 1002" 0 30100 3.750 0.750 0 0 2.813 4.150 8535808
-CARPART N "Atlas Reefer, 50' Mechanical 3650 " 0 30100 3.750 0.750 0 0 2.813 4.150 8535808
+CARPART N "Atlas Reefer, 50' Mechanical 3650  " 0 30100 3.750 0.750 0 0 2.813 4.150 8535808
CARPART N "Atlas Reefer, 50' Mechanical 36521 Bangor & Aroostook " 0 30100 3.750 0.750 0 0 2.813 4.150 8535808
CARPART N "Atlas Reefer, 50' Mechanical 36522 Bangor & Aroostook 99" 0 30100 3.750 0.750 0 0 2.813 4.150 8535808
CARPART N "Atlas Reefer, 50' Mechanical 36523 Bangor & Aroostook 96" 0 30100 3.750 0.750 0 0 2.813 4.150 8535808
@@ -1087,7 +1087,7 @@ CARPART N "Atlas Tank, 28' Modern (Beer Can) Gatx 32531 Dow Chemical 8710" 0 30
CARPART N "Atlas Tank, 28' Modern (Beer Can) Gatx 32532 Dow Chemical 8713" 0 30100 2.100 0.750 0 0 1.575 2.500 8535808
CARPART N "Atlas Tank, 28' Modern (Beer Can) Monx 32541 Monsanto Chemical Co 11510" 0 30100 2.100 0.750 0 0 1.575 2.500 8535808
CARPART N "Atlas Tank, 28' Modern (Beer Can) Monx 32542 Monsanto Chemical Co 11513" 0 30100 2.100 0.750 0 0 1.575 2.500 8535808
-CARPART N "Atlas Tank, 40' Tank Car, 14,000 Gallon Kaolin 1700 " 0 30100 3.000 0.750 0 0 2.250 3.400 8535808
+CARPART N "Atlas Tank, 40' Tank Car, 14,000 Gallon Kaolin 1700  " 0 30100 3.000 0.750 0 0 2.250 3.400 8535808
CARPART N "Atlas Tank, 40' Tank Car, 14,000 Gallon Kaolin 1711-1 Acfx 72084" 0 30100 3.000 0.750 0 0 2.250 3.400 8535808
CARPART N "Atlas Tank, 40' Tank Car, 14,000 Gallon Kaolin 1711-2 Acfx 75969" 0 30100 3.000 0.750 0 0 2.250 3.400 8535808
CARPART N "Atlas Tank, 40' Tank Car, 14,000 Gallon Kaolin 1712-1 Anglo American Clays 78630" 0 30100 3.000 0.750 0 0 2.250 3.400 8535808
@@ -1151,7 +1151,7 @@ CARPART N "Atlas Tank, 40' Tank Car, 14,000 Gallon Kaolin 34941 Ontario Carbonat
CARPART N "Atlas Tank, 40' Tank Car, 14,000 Gallon Kaolin 34942 Ontario Carbonate 71477" 0 30100 3.000 0.750 0 0 2.250 3.400 8535808
CARPART N "Atlas Tank, 40' Tank Car, 14,000 Gallon Kaolin 34951 Shpx 203080" 0 30100 3.000 0.750 0 0 2.250 3.400 8535808
CARPART N "Atlas Tank, 40' Tank Car, 14,000 Gallon Kaolin 34952 Shpx 203084" 0 30100 3.000 0.750 0 0 2.250 3.400 8535808
-CARPART N "Atlas Tank, 55' 23,500 Gallon 30700 " 0 30100 4.125 0.750 0 0 3.094 4.525 8535808
+CARPART N "Atlas Tank, 55' 23,500 Gallon 30700  " 0 30100 4.125 0.750 0 0 3.094 4.525 8535808
CARPART N "Atlas Tank, 55' 23,500 Gallon 30701 Gaf Corporation 83122" 0 30100 4.125 0.750 0 0 3.094 4.525 8535808
CARPART N "Atlas Tank, 55' 23,500 Gallon 30701 Gaf Corporation ACFX 83122" 0 30100 4.125 0.750 0 0 3.094 4.525 8535808
CARPART N "Atlas Tank, 55' 23,500 Gallon 30702 Gaf Corporation 83124" 0 30100 4.125 0.750 0 0 3.094 4.525 8535808
diff --git a/app/lib/params/atlaseho.cars b/app/lib/params/atlaseho.cars
index d0196dd..9dadfe8 100644
--- a/app/lib/params/atlaseho.cars
+++ b/app/lib/params/atlaseho.cars
@@ -918,7 +918,7 @@ DESC=Older Run, Made in Austria 1980's
PROTOLENGTH=767
PART=7021%Santa Fe%%3560
PART=7024%Norfolk & Western%%4138
-PART=7060%Undecorated%%
+PART=7060%Undecorated%%    
PART=7061%Union Pacific%%2048
PART=7063%Grand Trunk Western%%7063
PART=7065%Detroit Toledo & Ironton%%201
@@ -1005,7 +1005,7 @@ PART=8968%CSX%%2121
PART=8970%Gulf, Mobile & Ohio%%709
PART=8971%Gulf, Mobile & Ohio%%713
PART=8973%New England Central%%9528
-PART=8974%New England Central%%9537
+PART=8974%New England Central%%9537
PART=8976%Penn Central%%7754
PART=8977%Penn Central%%7786
PART=8979%Alaska RR%%2003
@@ -1047,7 +1047,7 @@ PART=9169%Genessee & Wyoming%%51
DESC=High Nose, Master DCC Equipped
#============================================
PART=8990%Undecorated
-PART=8991%Southern%%2815
+PART=8991%Southern%%2815 
PART=8992%Southern%%2822
PART=9135%Southern%%2804
PART=9136%Southern%%2806
@@ -1197,7 +1197,7 @@ PART=9199%Green Mountain Railroad%%305
DESC=Master DCC Equipped, High Nose
#============================================
PART=8940%Undecorated
-PART=8941%Guilford Rail%%370
+PART=8941%Guilford Rail%%370
PART=8942%Guilford Rail%%378
PART=8943%Guilford Rail
PART=8944%Norfolk & Western%%1334
@@ -1600,7 +1600,7 @@ PART=8150%Lehigh Valley%%216
PART=8157%Ontario Northland%%1306
PART=8343%Great Northern%%221
PART=8351%Long Island%%No #
-PART=8450%Undecorated%%
+PART=8450%Undecorated%% 
PART=8451%Canadian National%%1807
PART=8452%Canadian National%%1812
PART=8454%Central of Georgia%%108
@@ -1780,7 +1780,7 @@ PART=8732%Richmond, Fredericksburg & Potomac%%61
PART=8733%Richmond, Fredericksburg & Potomac%%65
PART=8734%South Buffalo%%103
PART=8735%South Buffalo%%106
-PART=8736%South Buffalo%%
+PART=8736%South Buffalo%% 
PART=8737%Western Pacific%%561
PART=8738%Bay Colony%%1052
PART=8739%Baltimore & Ohio%%9074
diff --git a/app/lib/params/atlasen.xtp b/app/lib/params/atlasen.xtp
index 0b669c4..e859826 100644
--- a/app/lib/params/atlasen.xtp
+++ b/app/lib/params/atlasen.xtp
@@ -78,7 +78,7 @@ CARPART N "Atlas RS3 4222 Erie Lackawanna EL 1039" 1 10101 3.900 0.750 0 0 2.92
CARPART N "Atlas RS3 4250 Reading RDG 496" 1 10101 3.900 0.750 0 0 2.925 4.300 8535808
CARPART N "Atlas RS3 4251 Lehigh Valley LV 214" 1 10101 3.900 0.750 0 0 2.925 4.300 8535808
CARPART N "Atlas RS3 4252 Central New Jersy CNJ 1553" 1 10101 3.900 0.750 0 0 2.925 4.300 8535808
-CARPART N "Atlas RS3 4253 Boston & Maine B&M " 1 10101 3.900 0.750 0 0 2.925 4.300 8535808
+CARPART N "Atlas RS3 4253 Boston & Maine B&M   " 1 10101 3.900 0.750 0 0 2.925 4.300 8535808
CARPART N "Atlas RS3 4254 Conrail CR 9946" 1 10101 3.900 0.750 0 0 2.925 4.300 8535808
CARPART N "Atlas RS3 4255 Lehigh & Ne 654" 1 10101 3.900 0.750 0 0 2.925 4.300 8535808
CARPART N "Atlas RS3 4256 Western Maryland WM 185" 1 10101 3.900 0.750 0 0 2.925 4.300 8535808
@@ -1095,8 +1095,8 @@ CARPART N "Atlas H16-44 52016 Santa Fe SF 2804" 1 10101 3.825 0.750 0 0 2.869 4
CARPART N "Atlas H16-44 W/ Early Loewy Body & Cab W/Sill Mounted Handrails 52018 " 1 10101 3.825 0.750 0 0 2.869 4.225 8535808
CARPART N "Atlas H16-44 Early Body & Cab w/Sill Mounted Handrails 52027 New Haven NH 594" 1 10101 3.825 0.750 0 0 2.869 4.225 8535808
CARPART N "Atlas H16-44 Early Body & Cab w/Sill Mounted Handrails 52028 New Haven NH 596" 1 10101 3.825 0.750 0 0 2.869 4.225 8535808
-CARPART N "Atlas H16-44 Early Body & Square Window Cab w/Body Mounted Handrails 52030 Pennsyvlania 8807" 1 10101 3.825 0.750 0 0 2.869 4.225 8535808
-CARPART N "Atlas H16-44 Early Body & Square Window Cab w/Body Mounted Handrails 52031 Pennsyvlania 8809" 1 10101 3.825 0.750 0 0 2.869 4.225 8535808
+CARPART N "Atlas H16-44 Early Body & Square Window Cab w/Body Mounted Handrails   52030 Pennsyvlania 8807" 1 10101 3.825 0.750 0 0 2.869 4.225 8535808
+CARPART N "Atlas H16-44 Early Body & Square Window Cab w/Body Mounted Handrails   52031 Pennsyvlania 8809" 1 10101 3.825 0.750 0 0 2.869 4.225 8535808
CARPART N "Atlas H16-44 Early Body & Square Window Cab w/Sill Mounted Handrails 52033 Southern SOU 2147" 1 10101 3.825 0.750 0 0 2.869 4.225 8535808
CARPART N "Atlas H16-44 Early Body & Square Window Cab w/Sill Mounted Handrails 52034 Southern SOU 2151" 1 10101 3.825 0.750 0 0 2.869 4.225 8535808
CARPART N "Atlas H16-44 Early Body & Square Window Cab w/Sill Mounted Handrails 52046 Long Island 1504" 1 10101 3.825 0.750 0 0 2.869 4.225 8535808
@@ -1106,33 +1106,33 @@ CARPART N "Atlas H16-44 Early Body & Square Window Cab w/Sill Mounted Handrails
CARPART N "Atlas H16-44 Early Body & Square Window Cab w/Sill Mounted Handrails 52052 New Haven NH 598" 1 10101 3.825 0.750 0 0 2.869 4.225 8535808
CARPART N "Atlas H16-44 Early Body & Square Window Cab w/Sill Mounted Handrails 52054 Santa Fe SF 3007" 1 10101 3.825 0.750 0 0 2.869 4.225 8535808
CARPART N "Atlas H16-44 Early Body & Square Window Cab w/Sill Mounted Handrails 52055 Santa Fe SF 3011" 1 10101 3.825 0.750 0 0 2.869 4.225 8535808
-CARPART N "Atlas H16-44 Late Body & Square Window Cab w/Sill Mounted Handrails 52036 Lackawanna 930" 1 10101 3.825 0.750 0 0 2.869 4.225 8535808
-CARPART N "Atlas H16-44 Late Body & Square Window Cab w/Sill Mounted Handrails 52037 Lackawanna 934" 1 10101 3.825 0.750 0 0 2.869 4.225 8535808
-CARPART N "Atlas H16-44 Late Body/Square Window Cab w/Body & Sill Mounted Handrails 52057 Erie Lackawanna EL 1932" 1 10101 3.825 0.750 0 0 2.869 4.225 8535808
-CARPART N "Atlas H16-44 Late Body/Square Window Cab w/Body & Sill Mounted Handrails 52058 Erie Lackawanna EL 1935" 1 10101 3.825 0.750 0 0 2.869 4.225 8535808
-CARPART N "Atlas VO-1000 With Step Guards 50000 " 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
-CARPART N "Atlas VO-1000 With Step Guards 50001 Santa Fe SF 2223" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
-CARPART N "Atlas VO-1000 With Step Guards 50003 Atlantic Coast Line ACL 606" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
-CARPART N "Atlas VO-1000 With Step Guards 50004 Atlantic Coast Line ACL 607" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
-CARPART N "Atlas VO-1000 With Step Guards 50006 Southern Pacific SP 1329" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
-CARPART N "Atlas VO-1000 With Step Guards 50007 Southern Pacific SP 1379" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
-CARPART N "Atlas VO-1000 With Step Guards 50009 Lehigh Valley LV 135" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
-CARPART N "Atlas VO-1000 With Step Guards 50010 Lehigh Valley LV 137" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
-CARPART N "Atlas VO-1000 With Step Guards 50012 Santa Fe SF 2207" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
-CARPART N "Atlas VO-1000 With Step Guards 50013 Southern Pacific SP 1374" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
-CARPART N "Atlas VO-1000 With Step Guards 50014 Southern Pacific SP 1377" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
-CARPART N "Atlas VO-1000 With Step Guards 50015 Lehigh Valley LV 136" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
-CARPART N "Atlas VO-1000 With Step Guards 50016 Lehigh Valley LV 139" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
-CARPART N "Atlas VO-1000 With Step Guards 50017 Pennsylvania PRR 5917" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
-CARPART N "Atlas VO-1000 With Step Guards 50018 Pennsylvania PRR 5918" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
-CARPART N "Atlas VO-1000 With Step Guards 50020 Reading RDG 83" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
-CARPART N "Atlas VO-1000 With Step Guards 50021 Reading RDG 86" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
-CARPART N "Atlas VO-1000 With Step Guards 50023 Rock Island ROCK 760" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
-CARPART N "Atlas VO-1000 With Step Guards 50024 Rock Island ROCK 761" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
-CARPART N "Atlas VO-1000 With Step Guards 50026 Western Maryland WM 128" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
-CARPART N "Atlas VO-1000 With Step Guards 50027 Western Maryland WM 132" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
-CARPART N "Atlas VO-1000 With Step Guards 51030 Union Pacific UP 1200" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
-CARPART N "Atlas VO-1000 With Step Guards 51031 Union Pacific UP 1203" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
+CARPART N "Atlas H16-44 Late Body & Square Window Cab w/Sill Mounted Handrails  52036 Lackawanna 930" 1 10101 3.825 0.750 0 0 2.869 4.225 8535808
+CARPART N "Atlas H16-44 Late Body & Square Window Cab w/Sill Mounted Handrails  52037 Lackawanna 934" 1 10101 3.825 0.750 0 0 2.869 4.225 8535808
+CARPART N "Atlas H16-44 Late Body/Square Window Cab w/Body & Sill Mounted Handrails  52057 Erie Lackawanna EL 1932" 1 10101 3.825 0.750 0 0 2.869 4.225 8535808
+CARPART N "Atlas H16-44 Late Body/Square Window Cab w/Body & Sill Mounted Handrails  52058 Erie Lackawanna EL 1935" 1 10101 3.825 0.750 0 0 2.869 4.225 8535808
+CARPART N "Atlas VO-1000 With Step Guards  50000 " 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
+CARPART N "Atlas VO-1000 With Step Guards  50001 Santa Fe SF 2223" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
+CARPART N "Atlas VO-1000 With Step Guards  50003 Atlantic Coast Line ACL 606" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
+CARPART N "Atlas VO-1000 With Step Guards  50004 Atlantic Coast Line ACL 607" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
+CARPART N "Atlas VO-1000 With Step Guards  50006 Southern Pacific SP 1329" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
+CARPART N "Atlas VO-1000 With Step Guards  50007 Southern Pacific SP 1379" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
+CARPART N "Atlas VO-1000 With Step Guards  50009 Lehigh Valley LV 135" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
+CARPART N "Atlas VO-1000 With Step Guards  50010 Lehigh Valley LV 137" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
+CARPART N "Atlas VO-1000 With Step Guards  50012 Santa Fe SF 2207" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
+CARPART N "Atlas VO-1000 With Step Guards  50013 Southern Pacific SP 1374" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
+CARPART N "Atlas VO-1000 With Step Guards  50014 Southern Pacific SP 1377" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
+CARPART N "Atlas VO-1000 With Step Guards  50015 Lehigh Valley LV 136" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
+CARPART N "Atlas VO-1000 With Step Guards  50016 Lehigh Valley LV 139" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
+CARPART N "Atlas VO-1000 With Step Guards  50017 Pennsylvania PRR 5917" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
+CARPART N "Atlas VO-1000 With Step Guards  50018 Pennsylvania PRR 5918" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
+CARPART N "Atlas VO-1000 With Step Guards  50020 Reading RDG 83" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
+CARPART N "Atlas VO-1000 With Step Guards  50021 Reading RDG 86" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
+CARPART N "Atlas VO-1000 With Step Guards  50023 Rock Island ROCK 760" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
+CARPART N "Atlas VO-1000 With Step Guards  50024 Rock Island ROCK 761" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
+CARPART N "Atlas VO-1000 With Step Guards  50026 Western Maryland WM 128" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
+CARPART N "Atlas VO-1000 With Step Guards  50027 Western Maryland WM 132" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
+CARPART N "Atlas VO-1000 With Step Guards  51030 Union Pacific UP 1200" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
+CARPART N "Atlas VO-1000 With Step Guards  51031 Union Pacific UP 1203" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
CARPART N "Atlas VO-1000 Without Step Guards 51000 " 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
CARPART N "Atlas VO-1000 Without Step Guards 51003 Milwaukee Rd 935" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
CARPART N "Atlas VO-1000 Without Step Guards 51004 Milwaukee Rd 939" 1 10101 3.663 0.750 0 0 2.747 4.063 8535808
diff --git a/app/lib/params/atlaso2rail.xtp b/app/lib/params/atlaso2rail.xtp
index 75797a7..7fdece4 100644
--- a/app/lib/params/atlaso2rail.xtp
+++ b/app/lib/params/atlaso2rail.xtp
@@ -232,7 +232,6 @@ TURNOUT O "Atlas O 2 Rail 18"" Single Track Plate Girder Bridge AT-7918"
L 0 0.100000 13.500000 1.250000 13.500000 2.000000
L 0 0.100000 16.500000 1.250000 16.500000 2.000000
END
-
TURNOUT O "Atlas O 2 Rail 24"" Turntable AT-6910"
P "1" 1
P "2" 2
@@ -283,29 +282,29 @@ TURNOUT O "Atlas O 2 Rail 24"" Turntable AT-6910"
E 3.105829 -11.591110 165.000000
E -3.105829 11.591110 345.000000
#0/180
- S 16777215 0 0.000000 12.000000 0.000000 -12.000000
+ S 0 0 0.000000 12.000000 0.000000 -12.000000
#15/195
- S 16777215 0 3.105829 11.591110 -3.105829 -11.591110
+ S 0 0 3.105829 11.591110 -3.105829 -11.591110
#30/210
- S 16777215 0 6.000000 10.392305 -6.000000 -10.392305
+ S 0 0 6.000000 10.392305 -6.000000 -10.392305
#45/225
- S 16777215 0 8.485281 8.485281 -8.485281 -8.485281
+ S 0 0 8.485281 8.485281 -8.485281 -8.485281
#60/240
- S 16777215 0 10.392305 6.000000 -10.392305 -6.000000
+ S 0 0 10.392305 6.000000 -10.392305 -6.000000
#75/255
- S 16777215 0 11.591110 3.105829 -11.591110 -3.105829
+ S 0 0 11.591110 3.105829 -11.591110 -3.105829
#90/270
- S 16777215 0 -12.000000 0.000000 12.000000 0.000000
+ S 0 0 -12.000000 0.000000 12.000000 0.000000
#105/285
- S 16777215 0 11.591110 -3.105829 -11.591110 3.105829
+ S 0 0 11.591110 -3.105829 -11.591110 3.105829
#120/300
- S 16777215 0 10.392305 -6.000000 -10.392305 6.000000
+ S 0 0 10.392305 -6.000000 -10.392305 6.000000
#135/315
- S 16777215 0 8.485281 -8.485281 -8.485281 8.485281
+ S 0 0 8.485281 -8.485281 -8.485281 8.485281
#150/330
- S 16777215 0 6.000000 -10.392305 -6.000000 10.392305
+ S 0 0 6.000000 -10.392305 -6.000000 10.392305
#165/345
- S 16777215 0 3.105829 -11.591110 -3.105829 11.591110
+ S 0 0 3.105829 -11.591110 -3.105829 11.591110
A 11579568 0.053333 12.000000 0.000000 0.000000 0.000000 360.000000
A 11579568 0.053333 13.000000 0.000000 0.000000 0.000000 360.000000
END
diff --git a/app/lib/params/ctlpanel.xtp b/app/lib/params/ctlpanel.xtp
index b31201d..7139b2d 100644
--- a/app/lib/params/ctlpanel.xtp
+++ b/app/lib/params/ctlpanel.xtp
@@ -1,12 +1,12 @@
CONTENTS Control Panel Items
-STRUCTURE * "Switch "" Push Button "
+STRUCTURE * "Switch ¼"" Push Button "
G3 16448250 0.000000 0.125000 0.000000 0.000000 0
A3 0 0.013889 0.125000 0.000000 0.000000 0 0.000000 360.000000
A3 0 0.013889 0.050000 0.000000 0.000000 0 0.000000 360.000000
L3 0 0.000000 0.125000 0.000000 0 -0.125000 0.000000 0
L3 0 0.000000 0.000000 0.125000 0 0.000000 -0.125000 0
END
-STRUCTURE * "Switch "" DPDT Toggle "
+STRUCTURE * "Switch ¼"" DPDT Toggle "
G3 16448250 0.000000 0.125000 0.000000 0.000000 0
A3 0 0.013889 0.125000 0.000000 0.000000 0 0.000000 360.000000
A3 0 0.013889 0.050000 0.000000 0.000000 0 0.000000 360.000000
@@ -43,31 +43,31 @@ STRUCTURE * "LED T1 Bi-Color LED "
L3 0 0.000000 0.059000 0.000000 0 -0.059000 0.000000 0
L3 0 0.000000 0.000000 0.059000 0 0.000000 -0.059000 0
END
-STRUCTURE * "LED T1 Red LED "
+STRUCTURE * "LED T1¾ Red LED "
G3 16448250 0.000000 0.098400 0.000000 0.000000 0
A3 16711680 0.013889 0.098400 0.000000 0.000000 0 0.000000 360.000000
L3 0 0.000000 0.098400 0.000000 0 -0.098400 0.000000 0
L3 0 0.000000 0.000000 0.098400 0 0.000000 -0.098400 0
END
-STRUCTURE * "LED T1 Green LED "
+STRUCTURE * "LED T1¾ Green LED "
G3 16448250 0.000000 0.098400 0.000000 0.000000 0
A3 65280 0.013889 0.098400 0.000000 0.000000 0 0.000000 360.000000
L3 0 0.000000 0.098400 0.000000 0 -0.098400 0.000000 0
L3 0 0.000000 0.000000 0.098400 0 0.000000 -0.098400 0
END
-STRUCTURE * "LED T1 Yellow LED "
+STRUCTURE * "LED T1¾ Yellow LED "
G3 16448250 0.000000 0.098400 0.000000 0.000000 0
A3 16776960 0.013889 0.098400 0.000000 0.000000 0 0.000000 360.000000
L3 0 0.000000 0.098400 0.000000 0 -0.098400 0.000000 0
L3 0 0.000000 0.000000 0.098400 0 0.000000 -0.098400 0
END
-STRUCTURE * "LED T1 Orange LED "
+STRUCTURE * "LED T1¾ Orange LED "
G3 16448250 0.000000 0.098400 0.000000 0.000000 0
A3 16744448 0.013889 0.098400 0.000000 0.000000 0 0.000000 360.000000
L3 0 0.000000 0.098400 0.000000 0 -0.098400 0.000000 0
L3 0 0.000000 0.000000 0.098400 0 0.000000 -0.098400 0
END
-STRUCTURE * "LED T1 Bi-Color LED "
+STRUCTURE * "LED T1¾ Bi-Color LED "
G3 16448250 0.000000 0.098400 0.000000 0.000000 0
A3 0 0.013889 0.098400 0.000000 0.000000 0 0.000000 360.000000
L3 0 0.000000 0.098400 0.000000 0 -0.098400 0.000000 0
@@ -96,7 +96,7 @@ STRUCTURE * "Signals Dbl Signal 2"
L3 0 0.027778 0.000000 -0.320000 0 0.000000 -0.600000 0
L3 0 0.027778 -0.100000 -0.600000 0 0.100000 -0.600000 0
END
-STRUCTURE * " "" DOT "
+STRUCTURE * " ¼"" DOT "
G3 0 0.000000 0.125000 0.000000 0.000000 0
END
STRUCTURE * " Arrow "
diff --git a/app/lib/params/fl-model.xtp b/app/lib/params/fl-model.xtp
index 965eb38..49fae73 100644
--- a/app/lib/params/fl-model.xtp
+++ b/app/lib/params/fl-model.xtp
@@ -66,49 +66,49 @@ TURNOUT HO "Fleischmann-Modell Bumper 6014"
E 2.165354 0.000000 90.000000
S 0 0.000000 0.000000 0.000000 2.165354 0.000000
END
-TURNOUT HO "Fleischmann-Modell Curve 250mm 60 6020"
+TURNOUT HO "Fleischmann-Modell Curve 250mm 60° 6020"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 8.523872 4.921260 30.000000
C 0 0.000000 -9.842520 0.000000 9.842520 120.000000 60.000000
END
-TURNOUT HO "Fleischmann-Modell Curve 357mm 45 6024"
+TURNOUT HO "Fleischmann-Modell Curve 357mm 45° 6024"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 9.938469 4.116649 45.000000
C 0 0.000000 -14.055118 0.000000 14.055118 135.000000 45.000000
END
-TURNOUT HO "Fleischmann-Modell Curve 357mm 30 6025"
+TURNOUT HO "Fleischmann-Modell Curve 357mm 30° 6025"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 7.027559 1.883029 60.000000
C 0 0.000000 -14.055118 0.000000 14.055118 150.000000 30.000000
END
-TURNOUT HO "Fleischmann-Modell Curve 357mm 15 6026"
+TURNOUT HO "Fleischmann-Modell Curve 357mm 15° 6026"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 3.637732 0.478917 75.000000
C 0 0.000000 -14.055118 0.000000 14.055118 165.000000 15.000000
END
-TURNOUT HO "Fleischmann-Modell Curve 415mm 30 6030"
+TURNOUT HO "Fleischmann-Modell Curve 415mm 30° 6030"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 8.169291 2.188955 60.000000
C 0 0.000000 -16.338583 0.000000 16.338583 150.000000 30.000000
END
-TURNOUT HO "Fleischmann-Modell Curve 415mm 15 6032"
+TURNOUT HO "Fleischmann-Modell Curve 415mm 15° 6032"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.228736 0.556724 75.000000
C 0 0.000000 -16.338583 0.000000 16.338583 165.000000 15.000000
END
-TURNOUT HO "Fleischmann-Modell Curve 415mm 7.5 6033"
+TURNOUT HO "Fleischmann-Modell Curve 415mm 7.5° 6033"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 2.132613 0.139779 82.500000
C 0 0.000000 -16.338583 0.000000 16.338583 172.500000 7.500000
END
-TURNOUT HO "Fleischmann-Modell Curve 738mm 15 6036"
+TURNOUT HO "Fleischmann-Modell Curve 738mm 15° 6036"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 7.520018 0.990029 75.000000
@@ -298,7 +298,7 @@ TURNOUT HO "Fleischmann-Modell 3-Way Turnout Elec 6058"
S 0 0.000000 7.444367 -0.687338 8.070866 -0.855208
S 0 0.000000 2.223516 -0.000000 8.031496 0.000000
END
-TURNOUT HO "Fleischmann-Modell Crossing 30 6060"
+TURNOUT HO "Fleischmann-Modell Crossing 30° 6060"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 6.692913 0.000000 90.000000
@@ -307,7 +307,7 @@ TURNOUT HO "Fleischmann-Modell Crossing 30 6060"
S 0 0.000000 0.000000 0.000000 6.692913 0.000000
S 0 0.000000 0.448340 1.673228 6.244573 -1.673228
END
-TURNOUT HO "Fleischmann-Modell Crossing 15 6062"
+TURNOUT HO "Fleischmann-Modell Crossing 15° 6062"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 8.641732 0.000000 90.000000
@@ -316,7 +316,7 @@ TURNOUT HO "Fleischmann-Modell Crossing 15 6062"
S 0 0.000000 0.000000 0.000000 8.641732 0.000000
S 0 0.000000 0.147230 1.118322 8.494502 -1.118322
END
-TURNOUT HO "Fleischmann-Modell DoubleSlip 15 6065"
+TURNOUT HO "Fleischmann-Modell DoubleSlip 15° 6065"
P "Normal" 1 2 3 0 4 5 6
P "Reverse" 1 7 6 0 4 8 3
E 0.000000 0.000000 270.000000
@@ -332,7 +332,7 @@ TURNOUT HO "Fleischmann-Modell DoubleSlip 15 6065"
C 0 0.000000 22.967025 1.297200 -22.967025 0.000000 15.000000
C 0 0.000000 -22.967025 7.344532 22.967025 180.000000 15.000000
END
-TURNOUT HO "Fleischmann-Modell DoubleSlip 15 Elec 6066"
+TURNOUT HO "Fleischmann-Modell DoubleSlip 15° Elec 6066"
P "Normal" 1 2 3 0 4 5 6
P "Reverse" 1 7 6 0 4 8 3
E 0.000000 0.000000 270.000000
diff --git a/app/lib/params/fl-profi.xtp b/app/lib/params/fl-profi.xtp
index e344242..261d73e 100644
--- a/app/lib/params/fl-profi.xtp
+++ b/app/lib/params/fl-profi.xtp
@@ -54,49 +54,49 @@ TURNOUT HO "Fleischmann-Profi Bumper 6116"
E 3.937008 0.000000 90.000000
S 0 0.000000 0.000000 0.000000 3.937008 0.000000
END
-TURNOUT HO "Fleischmann-Profi Curve 358.5mm 36 6120"
+TURNOUT HO "Fleischmann-Profi Curve 358.5mm 36° 6120"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 8.296103 2.695567 54.000000
C 0 0.000000 -14.114173 0.000000 14.114173 144.000000 36.000000
END
-TURNOUT HO "Fleischmann-Profi Curve 358.5mm 18 6122"
+TURNOUT HO "Fleischmann-Profi Curve 358.5mm 18° 6122"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.361519 0.690797 72.000000
C 0 0.000000 -14.114173 0.000000 14.114173 162.000000 18.000000
END
-TURNOUT HO "Fleischmann-Profi Curve 420mm 36 6125"
+TURNOUT HO "Fleischmann-Profi Curve 420mm 36° 6125"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 9.719284 3.157987 54.000000
C 0 0.000000 -16.535433 0.000000 16.535433 144.000000 36.000000
END
-TURNOUT HO "Fleischmann-Profi Curve 420mm 18 6127"
+TURNOUT HO "Fleischmann-Profi Curve 420mm 18° 6127"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 5.109730 0.809302 72.000000
C 0 0.000000 -16.535433 0.000000 16.535433 162.000000 18.000000
END
-TURNOUT HO "Fleischmann-Profi Curve 483.5m 18 6131"
+TURNOUT HO "Fleischmann-Profi Curve 483.5m 18° 6131"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 5.882272 0.931660 72.000000
C 0 0.000000 -19.035433 0.000000 19.035433 162.000000 18.000000
END
-TURNOUT HO "Fleischmann-Profi Curve 547mm 18 6133"
+TURNOUT HO "Fleischmann-Profi Curve 547mm 18° 6133"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 6.654815 1.054019 72.000000
C 0 0.000000 -21.535433 0.000000 21.535433 162.000000 18.000000
END
-TURNOUT HO "Fleischmann-Profi Curve 647mm 18 6138"
+TURNOUT HO "Fleischmann-Profi Curve 647mm 18° 6138"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 7.871417 1.246710 72.000000
C 0 0.000000 -25.472441 0.000000 25.472441 162.000000 18.000000
END
-TURNOUT HO "Fleischmann-Profi Curve 788mm 7.5 6139"
+TURNOUT HO "Fleischmann-Profi Curve 788mm 7.5° 6139"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.049395 0.265411 82.500000
@@ -365,7 +365,7 @@ TURNOUT HO "Fleischmann-Profi Crossing 36X 6160"
S 0 0.000000 0.000000 0.000000 3.739110 0.000000
S 0 0.000000 0.394748 1.214910 3.739110 -1.214910
END
-TURNOUT HO "Fleischmann-Profi Crossing 18 Left 6162"
+TURNOUT HO "Fleischmann-Profi Crossing 18° Left 6162"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 7.874016 0.000000 90.000000
@@ -374,7 +374,7 @@ TURNOUT HO "Fleischmann-Profi Crossing 18 Left 6162"
S 0 0.000000 0.000000 0.000000 7.874016 0.000000
S 0 0.000000 0.005475 -1.277432 7.868541 1.277432
END
-TURNOUT HO "Fleischmann-Profi Crossing 18 Right 6163"
+TURNOUT HO "Fleischmann-Profi Crossing 18° Right 6163"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 7.874016 0.000000 90.000000
@@ -383,7 +383,7 @@ TURNOUT HO "Fleischmann-Profi Crossing 18 Right 6163"
S 0 0.000000 0.000000 0.000000 7.874016 0.000000
S 0 0.000000 0.005475 1.277432 7.868541 -1.277432
END
-TURNOUT HO "Fleischmann-Profi DoubleSlip 18 Left 6164"
+TURNOUT HO "Fleischmann-Profi DoubleSlip 18° Left 6164"
P "Normal" 1 2 3 0 4 5 6
P "Reverse" 1 7 6 0 4 8 3
E 0.000000 0.000000 270.000000
@@ -399,7 +399,7 @@ TURNOUT HO "Fleischmann-Profi DoubleSlip 18 Left 6164"
C 0 0.000000 -17.909955 1.100350 17.909955 162.000000 18.000000
C 0 0.000000 17.909955 6.773666 -17.909955 342.000000 18.000000
END
-TURNOUT HO "Fleischmann-Profi DoubleSlip 18 Right 6165"
+TURNOUT HO "Fleischmann-Profi DoubleSlip 18° Right 6165"
P "Normal" 1 2 3 0 4 5 6
P "Reverse" 1 7 6 0 4 8 3
E 0.000000 0.000000 270.000000
@@ -415,7 +415,7 @@ TURNOUT HO "Fleischmann-Profi DoubleSlip 18 Right 6165"
C 0 0.000000 17.909955 1.100350 -17.909955 0.000000 18.000000
C 0 0.000000 -17.909955 6.773666 17.909955 180.000000 18.000000
END
-TURNOUT HO "Fleischmann-Profi DoubleSlip 18 Left Elec 6166"
+TURNOUT HO "Fleischmann-Profi DoubleSlip 18° Left Elec 6166"
P "Normal" 1 2 3 0 4 5 6
P "Reverse" 1 7 6 0 4 8 3
E 0.000000 0.000000 270.000000
@@ -431,7 +431,7 @@ TURNOUT HO "Fleischmann-Profi DoubleSlip 18 Left Elec 6166"
C 0 0.000000 -17.909955 1.100350 17.909955 162.000000 18.000000
C 0 0.000000 17.909955 6.773666 -17.909955 342.000000 18.000000
END
-TURNOUT HO "Fleischmann-Profi DoubleSlip 18 Right Elec 6167"
+TURNOUT HO "Fleischmann-Profi DoubleSlip 18° Right Elec 6167"
P "Normal" 1 2 3 0 4 5 6
P "Reverse" 1 7 6 0 4 8 3
E 0.000000 0.000000 270.000000
diff --git a/app/lib/params/flnpicco.xtp b/app/lib/params/flnpicco.xtp
index 23a5d9d..b9fc119 100644
--- a/app/lib/params/flnpicco.xtp
+++ b/app/lib/params/flnpicco.xtp
@@ -46,8 +46,8 @@ TURNOUT N "Fleischmann N Scale Straight 27.75mm 9104"
L 0 0.000000 0.000000 0.314960 1.092520 0.314961
END
SUBCONTENTS Curved Track
-TURNOUT N "Fleischmann N Scale Curved 192mm 45 9120"
- U "Curved Section" "Sillub Technology" "Fleischmann N Scale" "Curved 192mm 45" "9120" 7.559055 45.000000 0.629921 0.000000 0
+TURNOUT N "Fleischmann N Scale Curved 192mm 45° 9120"
+ U "Curved Section" "Sillub Technology" "Fleischmann N Scale" "Curved 192mm 45°" "9120" 7.559055 45.000000 0.629921 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 5.345059 2.213996 45.000000
@@ -55,8 +55,8 @@ TURNOUT N "Fleischmann N Scale Curved 192mm 45 9120"
A 0 0.000000 7.874016 0.000000 7.559055 135.000000 45.000000
A 0 0.000000 7.244095 0.000000 7.559055 135.000000 45.000000
END
-TURNOUT N "Fleischmann N Scale Curved 192mm 15 9122"
- U "Curved Section" "Sillub Technology" "Fleischmann N Scale" "Curved 192mm 15" "9122" 7.559055 15.000000 0.629921 0.000000 0
+TURNOUT N "Fleischmann N Scale Curved 192mm 15° 9122"
+ U "Curved Section" "Sillub Technology" "Fleischmann N Scale" "Curved 192mm 15°" "9122" 7.559055 15.000000 0.629921 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 1.956427 0.257569 75.000000
@@ -64,8 +64,8 @@ TURNOUT N "Fleischmann N Scale Curved 192mm 15 9122"
A 0 0.000000 7.874016 0.000000 7.559055 165.000000 15.000000
A 0 0.000000 7.244095 0.000000 7.559055 165.000000 15.000000
END
-TURNOUT N "Fleischmann N Scale Curved 192mm 7.5 9123"
- U "Curved Section" "Sillub Technology" "Fleischmann N Scale" "Curved 192mm 7.5" "9123" 7.559055 7.500000 0.629921 0.000000 0
+TURNOUT N "Fleischmann N Scale Curved 192mm 7.5° 9123"
+ U "Curved Section" "Sillub Technology" "Fleischmann N Scale" "Curved 192mm 7.5°" "9123" 7.559055 7.500000 0.629921 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 0.986655 0.064669 82.500000
@@ -73,8 +73,8 @@ TURNOUT N "Fleischmann N Scale Curved 192mm 7.5 9123"
A 0 0.000000 7.874016 0.000000 7.559055 172.500000 7.500000
A 0 0.000000 7.244095 0.000000 7.559055 172.500000 7.500000
END
-TURNOUT N "Fleischmann N Scale Curved 225.6mm 45 9125"
- U "Curved Section" "Sillub Technology" "Fleischmann N Scale" "Curved 225.6mm 45" "9125" 8.881890 45.000000 0.629921 0.000000 0
+TURNOUT N "Fleischmann N Scale Curved 225.6mm 45° 9125"
+ U "Curved Section" "Sillub Technology" "Fleischmann N Scale" "Curved 225.6mm 45°" "9125" 8.881890 45.000000 0.629921 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 6.280444 2.601445 45.000000
@@ -82,8 +82,8 @@ TURNOUT N "Fleischmann N Scale Curved 225.6mm 45 9125"
A 0 0.000000 9.196850 0.000000 8.881890 135.000000 45.000000
A 0 0.000000 8.566929 0.000000 8.881890 135.000000 45.000000
END
-TURNOUT N "Fleischmann N Scale Curved 225.6mm 15 9127"
- U "Curved Section" "Sillub Technology" "Fleischmann N Scale" "Curved 225.6mm 15" "9127" 8.881890 15.000000 0.629921 0.000000 0
+TURNOUT N "Fleischmann N Scale Curved 225.6mm 15° 9127"
+ U "Curved Section" "Sillub Technology" "Fleischmann N Scale" "Curved 225.6mm 15°" "9127" 8.881890 15.000000 0.629921 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 2.298802 0.302643 75.000000
@@ -91,8 +91,8 @@ TURNOUT N "Fleischmann N Scale Curved 225.6mm 15 9127"
A 0 0.000000 9.196850 0.000000 8.881890 165.000000 15.000000
A 0 0.000000 8.566929 0.000000 8.881890 165.000000 15.000000
END
-TURNOUT N "Fleischmann N Scale Curved 225.6mm 7.5 9128"
- U "Curved Section" "Sillub Technology" "Fleischmann N Scale" "Curved 225.6mm 7.5" "9128" 8.881890 7.500000 0.629921 0.000000 0
+TURNOUT N "Fleischmann N Scale Curved 225.6mm 7.5° 9128"
+ U "Curved Section" "Sillub Technology" "Fleischmann N Scale" "Curved 225.6mm 7.5°" "9128" 8.881890 7.500000 0.629921 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 1.159319 0.075986 82.500000
@@ -100,8 +100,8 @@ TURNOUT N "Fleischmann N Scale Curved 225.6mm 7.5 9128"
A 0 0.000000 9.196850 0.000000 8.881890 172.500000 7.500000
A 0 0.000000 8.566929 0.000000 8.881890 172.500000 7.500000
END
-TURNOUT N "Fleischmann N Scale Curved 396.4mm 30 9130"
- U "Curved Section" "Sillub Technology" "Fleischmann N Scale" "Curved 396.4mm 30" "9130" 15.606299 30.000000 0.629921 0.000000 0
+TURNOUT N "Fleischmann N Scale Curved 396.4mm 30° 9130"
+ U "Curved Section" "Sillub Technology" "Fleischmann N Scale" "Curved 396.4mm 30°" "9130" 15.606299 30.000000 0.629921 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 7.803150 2.090848 60.000000
@@ -109,8 +109,8 @@ TURNOUT N "Fleischmann N Scale Curved 396.4mm 30 9130"
A 0 0.000000 15.921260 0.000000 15.606299 150.000000 30.000000
A 0 0.000000 15.291339 0.000000 15.606299 150.000000 30.000000
END
-TURNOUT N "Fleischmann N Scale Curved 396.4mm 15 9131"
- U "Curved Section" "Sillub Technology" "Fleischmann N Scale" "Curved 396.4mm 15" "9131" 15.606299 15.000000 0.629921 0.000000 0
+TURNOUT N "Fleischmann N Scale Curved 396.4mm 15° 9131"
+ U "Curved Section" "Sillub Technology" "Fleischmann N Scale" "Curved 396.4mm 15°" "9131" 15.606299 15.000000 0.629921 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.039207 0.531772 75.000000
@@ -118,8 +118,8 @@ TURNOUT N "Fleischmann N Scale Curved 396.4mm 15 9131"
A 0 0.000000 15.921260 0.000000 15.606299 165.000000 15.000000
A 0 0.000000 15.291339 0.000000 15.606299 165.000000 15.000000
END
-TURNOUT N "Fleischmann N Scale Curved 430mm 30 9135"
- U "Curved Section" "Sillub Technology" "Fleischmann N Scale" "Curved 430mm 30" "9135" 16.929134 30.000000 0.629921 0.000000 0
+TURNOUT N "Fleischmann N Scale Curved 430mm 30° 9135"
+ U "Curved Section" "Sillub Technology" "Fleischmann N Scale" "Curved 430mm 30°" "9135" 16.929134 30.000000 0.629921 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 8.464567 2.268074 60.000000
@@ -127,8 +127,8 @@ TURNOUT N "Fleischmann N Scale Curved 430mm 30 9135"
A 0 0.000000 17.244094 0.000000 16.929134 150.000000 30.000000
A 0 0.000000 16.614173 0.000000 16.929134 150.000000 30.000000
END
-TURNOUT N "Fleischmann N Scale Curved 430mm 15 9136"
- U "Curved Section" "Sillub Technology" "Fleischmann N Scale" "Curved 430mm 15" "9136" 16.929134 15.000000 0.629921 0.000000 0
+TURNOUT N "Fleischmann N Scale Curved 430mm 15° 9136"
+ U "Curved Section" "Sillub Technology" "Fleischmann N Scale" "Curved 430mm 15°" "9136" 16.929134 15.000000 0.629921 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.381582 0.576846 75.000000
@@ -137,8 +137,8 @@ TURNOUT N "Fleischmann N Scale Curved 430mm 15 9136"
A 0 0.000000 16.614173 0.000000 16.929134 165.000000 15.000000
END
SUBCONTENTS Crossings
-TURNOUT N "Fleischmann N Scale Crossing 115mm 30 9161"
- U "Crossing" "Sillub Technology" "Fleischmann N Scale" "Crossing 115mm 30" "9161" 4.527559 30.000000 4.527559 0.629921 0.000000 0
+TURNOUT N "Fleischmann N Scale Crossing 115mm 30° 9161"
+ U "Crossing" "Sillub Technology" "Fleischmann N Scale" "Crossing 115mm 30°" "9161" 4.527559 30.000000 4.527559 0.629921 0.000000 0
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 4.527559 0.000000 90.000000
@@ -155,8 +155,8 @@ TURNOUT N "Fleischmann N Scale Crossing 115mm 30 9161"
L 0 0.000000 0.460769 1.404654 2.298729 0.343507
L 0 0.000000 3.401505 -0.293181 4.381750 -0.859126
END
-TURNOUT N "Fleischmann N Scale Crossing Right 111mm 15 9162"
- U "Crossing" "Sillub Technology" "Fleischmann N Scale" "Crossing Right 111mm 15" "9162" 4.527559 15.000000 4.370079 0.629921 0.000000 0
+TURNOUT N "Fleischmann N Scale Crossing Right 111mm 15° 9162"
+ U "Crossing" "Sillub Technology" "Fleischmann N Scale" "Crossing Right 111mm 15°" "9162" 4.527559 15.000000 4.370079 0.629921 0.000000 0
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 4.527559 0.000000 90.000000
@@ -169,8 +169,8 @@ TURNOUT N "Fleischmann N Scale Crossing Right 111mm 15 9162"
L 0 0.000000 2.182262 -0.304228 4.292848 -0.869758
L 0 0.000000 0.234711 0.869758 2.345297 0.304228
END
-TURNOUT N "Fleischmann N Scale Crossing Left 111mm 15 9163"
- U "Crossing" "Sillub Technology" "Fleischmann N Scale" "Crossing Left 111mm 15" "9163" 4.370079 15.000000 4.527559 0.629921 0.000000 0
+TURNOUT N "Fleischmann N Scale Crossing Left 111mm 15° 9163"
+ U "Crossing" "Sillub Technology" "Fleischmann N Scale" "Crossing Left 111mm 15°" "9163" 4.370079 15.000000 4.527559 0.629921 0.000000 0
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 4.370079 0.000000 90.000000
@@ -183,8 +183,8 @@ TURNOUT N "Fleischmann N Scale Crossing Left 111mm 15 9163"
L 0 0.000000 2.103522 -0.304228 4.290165 -0.890138
L 0 0.000000 0.079914 0.890138 2.266557 0.304228
END
-TURNOUT N "Fleischmann N Scale Double Slip Left 111mm 15 9184"
- U "Double Slipswitch" "Sillub Technology" "Fleischmann N Scale" "Double Slip Left 111mm 15" "9184" 4.527559 15.000000 4.370079 0.629921 0.000000 0
+TURNOUT N "Fleischmann N Scale Double Slip Left 111mm 15° 9184"
+ U "Double Slipswitch" "Sillub Technology" "Fleischmann N Scale" "Double Slip Left 111mm 15°" "9184" 4.527559 15.000000 4.370079 0.629921 0.000000 0
P "Normal" 1 2 3 0 4 5 6
P "Reverse" 1 7 6 0 4 8 3
E 0.000000 0.000000 270.000000
@@ -206,8 +206,8 @@ TURNOUT N "Fleischmann N Scale Double Slip Left 111mm 15 9184"
A 0 0.000000 10.917940 0.784940 -11.232900 0.000000 15.000000
A 0 0.000000 10.917940 3.742619 11.232900 180.000000 15.000000
END
-TURNOUT N "Fleischmann N Scale Double Slip Right 111mm 15 9185"
- U "Double Slipswitch" "Sillub Technology" "Fleischmann N Scale" "Double Slip Right 111mm 15" "9185" 4.370079 15.000000 4.527559 0.629921 0.000000 0
+TURNOUT N "Fleischmann N Scale Double Slip Right 111mm 15° 9185"
+ U "Double Slipswitch" "Sillub Technology" "Fleischmann N Scale" "Double Slip Right 111mm 15°" "9185" 4.370079 15.000000 4.527559 0.629921 0.000000 0
P "Normal" 1 2 3 0 4 5 6
P "Reverse" 1 7 6 0 4 8 3
E 0.000000 0.000000 270.000000
@@ -229,8 +229,8 @@ TURNOUT N "Fleischmann N Scale Double Slip Right 111mm 15 9185"
A 0 0.000000 11.516031 0.627460 -11.830991 0.000000 15.000000
A 0 0.000000 11.516031 3.742619 11.830991 180.000000 15.000000
END
-TURNOUT N "Fleischmann N Scale Double Slip w/Motor Left 111mm 15 9186"
- U "Double Slipswitch" "Sillub Technology" "Fleischmann N Scale" "Double Slip w/Motor Left 111mm 15" "9186" 4.527559 15.000000 4.370079 0.629921 0.000000 0
+TURNOUT N "Fleischmann N Scale Double Slip w/Motor Left 111mm 15° 9186"
+ U "Double Slipswitch" "Sillub Technology" "Fleischmann N Scale" "Double Slip w/Motor Left 111mm 15°" "9186" 4.527559 15.000000 4.370079 0.629921 0.000000 0
P "Normal" 1 2 3 0 4 5 6
P "Reverse" 1 7 6 0 4 8 3
E 0.000000 0.000000 270.000000
@@ -252,8 +252,8 @@ TURNOUT N "Fleischmann N Scale Double Slip w/Motor Left 111mm 15 9186"
A 0 0.000000 10.917940 0.784940 -11.232900 0.000000 15.000000
A 0 0.000000 10.917940 3.742619 11.232900 180.000000 15.000000
END
-TURNOUT N "Fleischmann N Scale Double Slip w/Motor Right 111mm 15 9187"
- U "Double Slipswitch" "Sillub Technology" "Fleischmann N Scale" "Double Slip w/Motor Right 111mm 15" "9187" 4.370079 15.000000 4.527559 0.629921 0.000000 0
+TURNOUT N "Fleischmann N Scale Double Slip w/Motor Right 111mm 15° 9187"
+ U "Double Slipswitch" "Sillub Technology" "Fleischmann N Scale" "Double Slip w/Motor Right 111mm 15°" "9187" 4.370079 15.000000 4.527559 0.629921 0.000000 0
P "Normal" 1 2 3 0 4 5 6
P "Reverse" 1 7 6 0 4 8 3
E 0.000000 0.000000 270.000000
@@ -275,8 +275,8 @@ TURNOUT N "Fleischmann N Scale Double Slip w/Motor Right 111mm 15 9187"
A 0 0.000000 11.516031 0.627460 -11.830991 0.000000 15.000000
A 0 0.000000 11.516031 3.742619 11.830991 180.000000 15.000000
END
-TURNOUT N "Fleischmann N Scale Turnout Left 111mm 15 9170"
- U "Regular Turnout" "Martin Fischer" "Fleischmann N Scale" "Turnout Left 111mm 15" "9170" "Turnout Right 111mm 15" "9171" 4.381582 15.000000 0.576846 4.370079 0.629921 0.000000 0
+TURNOUT N "Fleischmann N Scale Turnout Left 111mm 15° 9170"
+ U "Regular Turnout" "Martin Fischer" "Fleischmann N Scale" "Turnout Left 111mm 15°" "9170" "Turnout Right 111mm 15°" "9171" 4.381582 15.000000 0.576846 4.370079 0.629921 0.000000 0
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -294,8 +294,8 @@ TURNOUT N "Fleischmann N Scale Turnout Left 111mm 15 9170"
L3 0 0.000000 3.316016 0.699917 0 4.289845 0.960854 0
END
SUBCONTENTS Turnouts
-TURNOUT N "Fleischmann N Scale Turnout Right 111mm 15 9171"
- U "Regular Turnout" "Martin Fischer" "Fleischmann N Scale" "Turnout Left 111mm 15" "9170" "Turnout Right 111mm 15" "9171" 4.381582 15.000000 0.576846 4.370079 0.629921 0.000000 0
+TURNOUT N "Fleischmann N Scale Turnout Right 111mm 15° 9171"
+ U "Regular Turnout" "Martin Fischer" "Fleischmann N Scale" "Turnout Left 111mm 15°" "9170" "Turnout Right 111mm 15°" "9171" 4.381582 15.000000 0.576846 4.370079 0.629921 0.000000 0
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -312,8 +312,8 @@ TURNOUT N "Fleischmann N Scale Turnout Right 111mm 15 9171"
L3 0 0.000000 3.316016 -0.699917 0 4.289845 -0.960854 0
L3 0 0.000000 4.267720 -0.313054 0 4.450313 -0.361980 0
END
-TURNOUT N "Fleischmann N Scale Turnout w/Motor Left 111mm 15 9172"
- U "Regular Turnout" "Martin Fischer" "Fleischmann N Scale" "Turnout w/Motor Left 111mm 15" "9172" "Turnout w/Motor Right 111mm 15" "9173" 4.381582 15.000000 0.576846 4.370079 0.629921 0.000000 0
+TURNOUT N "Fleischmann N Scale Turnout w/Motor Left 111mm 15° 9172"
+ U "Regular Turnout" "Martin Fischer" "Fleischmann N Scale" "Turnout w/Motor Left 111mm 15°" "9172" "Turnout w/Motor Right 111mm 15°" "9173" 4.381582 15.000000 0.576846 4.370079 0.629921 0.000000 0
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -330,8 +330,8 @@ TURNOUT N "Fleischmann N Scale Turnout w/Motor Left 111mm 15 9172"
L3 0 0.000000 4.267720 0.313054 0 4.450313 0.361980 0
L3 0 0.000000 3.316016 0.699917 0 4.289845 0.960854 0
END
-TURNOUT N "Fleischmann N Scale Turnout w/Motor Right 111mm 15 9173"
- U "Regular Turnout" "Martin Fischer" "Fleischmann N Scale" "Turnout w/Motor Left 111mm 15" "9172" "Turnout w/Motor Right 111mm 15" "9173" 4.381582 15.000000 0.576846 4.370079 0.629921 0.000000 0
+TURNOUT N "Fleischmann N Scale Turnout w/Motor Right 111mm 15° 9173"
+ U "Regular Turnout" "Martin Fischer" "Fleischmann N Scale" "Turnout w/Motor Left 111mm 15°" "9172" "Turnout w/Motor Right 111mm 15°" "9173" 4.381582 15.000000 0.576846 4.370079 0.629921 0.000000 0
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -348,8 +348,8 @@ TURNOUT N "Fleischmann N Scale Turnout w/Motor Right 111mm 15 9173"
L3 0 0.000000 3.316016 -0.699917 0 4.289845 -0.960854 0
L3 0 0.000000 4.267720 -0.313054 0 4.450313 -0.361980 0
END
-TURNOUT N "Fleischmann N Scale Turnout w/Cond Frog Left 111mm 15 9178"
- U "Regular Turnout" "Martin Fischer" "Fleischmann N Scale" "Turnout w/Cond Frog Left 111mm 15" "9178" "Turnout w/Cond Frog Right 111mm 15" "9179" 4.381582 15.000000 0.576846 4.370079 0.629921 0.000000 0
+TURNOUT N "Fleischmann N Scale Turnout w/Cond Frog Left 111mm 15° 9178"
+ U "Regular Turnout" "Martin Fischer" "Fleischmann N Scale" "Turnout w/Cond Frog Left 111mm 15°" "9178" "Turnout w/Cond Frog Right 111mm 15°" "9179" 4.381582 15.000000 0.576846 4.370079 0.629921 0.000000 0
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -366,8 +366,8 @@ TURNOUT N "Fleischmann N Scale Turnout w/Cond Frog Left 111mm 15 9178"
L3 0 0.000000 4.267720 0.313054 0 4.450313 0.361980 0
L3 0 0.000000 3.316016 0.699917 0 4.289845 0.960854 0
END
-TURNOUT N "Fleischmann N Scale Turnout w/Cond Frog Right 111mm 15 9179"
- U "Regular Turnout" "Martin Fischer" "Fleischmann N Scale" "Turnout w/Cond Frog Left 111mm 15" "9178" "Turnout w/Cond Frog Right 111mm 15" "9179" 4.381582 15.000000 0.576846 4.370079 0.629921 0.000000 0
+TURNOUT N "Fleischmann N Scale Turnout w/Cond Frog Right 111mm 15° 9179"
+ U "Regular Turnout" "Martin Fischer" "Fleischmann N Scale" "Turnout w/Cond Frog Left 111mm 15°" "9178" "Turnout w/Cond Frog Right 111mm 15°" "9179" 4.381582 15.000000 0.576846 4.370079 0.629921 0.000000 0
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -384,8 +384,8 @@ TURNOUT N "Fleischmann N Scale Turnout w/Cond Frog Right 111mm 15 9179"
L3 0 0.000000 3.316016 -0.699917 0 4.289845 -0.960854 0
L3 0 0.000000 4.267720 -0.313054 0 4.450313 -0.361980 0
END
-TURNOUT N "Fleischmann N Scale Turnout w/Cond Frog w/Motor Left 111mm 15 9180"
- U "Regular Turnout" "Martin Fischer" "Fleischmann N Scale" "Turnout w/Cond Frog w/Motor Left 111mm 15" "9180" "Turnout w/Cond Frog w/Motor Right 111mm 15" "9181" 4.381582 15.000000 0.576846 4.370079 0.629921 0.000000 0
+TURNOUT N "Fleischmann N Scale Turnout w/Cond Frog w/Motor Left 111mm 15° 9180"
+ U "Regular Turnout" "Martin Fischer" "Fleischmann N Scale" "Turnout w/Cond Frog w/Motor Left 111mm 15°" "9180" "Turnout w/Cond Frog w/Motor Right 111mm 15°" "9181" 4.381582 15.000000 0.576846 4.370079 0.629921 0.000000 0
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -402,8 +402,8 @@ TURNOUT N "Fleischmann N Scale Turnout w/Cond Frog w/Motor Left 111mm 15 9180"
L3 0 0.000000 4.267720 0.313054 0 4.450313 0.361980 0
L3 0 0.000000 3.316016 0.699917 0 4.289845 0.960854 0
END
-TURNOUT N "Fleischmann N Scale Turnout w/Cond Frog w/Motor Right 111mm 15 9181"
- U "Regular Turnout" "Martin Fischer" "Fleischmann N Scale" "Turnout w/Cond Frog w/Motor Left 111mm 15" "9180" "Turnout w/Cond Frog w/Motor Right 111mm 15" "9181" 4.381582 15.000000 0.576846 4.370079 0.629921 0.000000 0
+TURNOUT N "Fleischmann N Scale Turnout w/Cond Frog w/Motor Right 111mm 15° 9181"
+ U "Regular Turnout" "Martin Fischer" "Fleischmann N Scale" "Turnout w/Cond Frog w/Motor Left 111mm 15°" "9180" "Turnout w/Cond Frog w/Motor Right 111mm 15°" "9181" 4.381582 15.000000 0.576846 4.370079 0.629921 0.000000 0
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -420,8 +420,8 @@ TURNOUT N "Fleischmann N Scale Turnout w/Cond Frog w/Motor Right 111mm 15 9181"
L3 0 0.000000 3.316016 -0.699917 0 4.289845 -0.960854 0
L3 0 0.000000 4.267720 -0.313054 0 4.450313 -0.361980 0
END
-TURNOUT N "Fleischmann N Scale Turnout 3-Way 111mm 15 9157"
- U "3-way Turnout" "Sillub Technology" "Fleischmann N Scale" "Turnout 3-Way 111mm 15" "9157" 4.370079 15.000000 0.576772 4.370079 0.576772 15.000000 4.370079 0.629921 0.000000 0
+TURNOUT N "Fleischmann N Scale Turnout 3-Way 111mm 15° 9157"
+ U "3-way Turnout" "Sillub Technology" "Fleischmann N Scale" "Turnout 3-Way 111mm 15°" "9157" 4.370079 15.000000 0.576772 4.370079 0.576772 15.000000 4.370079 0.629921 0.000000 0
P "Left" 1 2 3
P "Normal" 1 6
P "Right" 1 4 5
diff --git a/app/lib/params/gargrv-o.xtp b/app/lib/params/gargrv-o.xtp
index 3d089cd..bd4f2cb 100644
--- a/app/lib/params/gargrv-o.xtp
+++ b/app/lib/params/gargrv-o.xtp
@@ -1,76 +1,76 @@
CONTENTS GarGraves sectional track and turnouts
# Curved Section Design by Dave Bullis - 16.403 8.000
-TURNOUT O "GarGraves Curve R16.403"" A45 32-101S"
+TURNOUT O "GarGraves Curve R16.403"" A45° 32-101S"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 11.599000 -4.804000 135.000000
C 0 0 16.403000 0.001000 -16.403000 359.998000 45.001000
END
# Curved Section Design by Dave Bullis - 21.177 8.000
-TURNOUT O "GarGraves Curve R21.177"" A45 42-101S"
+TURNOUT O "GarGraves Curve R21.177"" A45° 42-101S"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 14.975000 -6.203000 135.000000
C 0 0 21.177000 -0.001000 -21.177000 0.002000 44.999000
END
# Curved Section Design by Dave Bullis - 23.167 12.000
-TURNOUT O "GarGraves Curve R23.167"" A30 47-101S (Interail)"
+TURNOUT O "GarGraves Curve R23.167"" A30° 47-101S (Interail)"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 11.583000 -3.104000 120.000000
C 0 0 23.167000 -0.001000 -23.167000 0.002000 29.999000
END
# Curved Section Design by Dave Bullis - 26.748 12.000
-TURNOUT O "GarGraves Curve R26.748"" A45 54-101S"
+TURNOUT O "GarGraves Curve R26.748"" A45° 54-101S"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 18.913692 -7.834308 135.000000
C 0 0 26.748000 0.000000 -26.748000 0.000000 45.000000
END
# Curved Section Design by Dave Bullis - 31.522 12.000
-TURNOUT O "GarGraves Curve R31.522"" A30 O-101SCIR (Interail)"
+TURNOUT O "GarGraves Curve R31.522"" A30° O-101SCIR (Interail)"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 15.761000 -4.223000 120.000000
C 0 0 31.522000 0.000000 -31.522000 0.000000 30.000000
END
# Curved Section Design by Dave Bullis - 31.522 8.000
-TURNOUT O "GarGraves Curve R31.522"" A45 63-101S"
+TURNOUT O "GarGraves Curve R31.522"" A45° 63-101S"
E 0.000000 0.000000 270.000000
E 22.289000 -9.233000 135.000000
P "Normal" 1
C 0 0 31.522000 -0.001000 -31.522000 0.002000 45.000000
END
# Curved Section Design by Dave Bullis - 36.297 45.000
-TURNOUT O "GarGraves Curve R36.297"" A45 72-101S"
+TURNOUT O "GarGraves Curve R36.297"" A45° 72-101S"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 25.665855 -10.631145 135.000000
C 0 0 36.297000 0.000000 -36.297000 0.000000 45.000000
END
# Curved Section Design by Dave Bullis - 39.878 12.000
-TURNOUT O "GarGraves Curve R39.878"" A30 80-101S"
+TURNOUT O "GarGraves Curve R39.878"" A30° 80-101S"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 19.939000 -5.343000 120.000000
C 0 0 39.878000 -0.001000 -39.878000 0.001000 30.000000
END
# Curved Section Design by Dave Bullis - 48.233 12.000
-TURNOUT O "GarGraves Curve R48.233"" A30 96-101S"
+TURNOUT O "GarGraves Curve R48.233"" A30° 96-101S"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 24.116000 -6.462000 120.000000
C 0 0 48.233000 -0.001000 -48.233000 0.001000 29.999000
END
# Curved Section Design by Dave Bullis - 53.008 12.000
-TURNOUT O "GarGraves Curve R53.008"" A30 106-101S"
+TURNOUT O "GarGraves Curve R53.008"" A30° 106-101S"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 26.504000 -7.102000 120.000000
C 0 0 53.008000 0.000000 -53.008000 0.001000 30.000000
END
# Curved Section Design by Dave Bullis - 68.924 16.000
-TURNOUT O "GarGraves Curve R68.924"" A22.5 138-101S"
+TURNOUT O "GarGraves Curve R68.924"" A22.5° 138-101S"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 26.376000 -5.247000 112.500000
diff --git a/app/lib/params/ho-amb.xtp b/app/lib/params/ho-amb.xtp
index b62a0d3..0aac285 100644
--- a/app/lib/params/ho-amb.xtp
+++ b/app/lib/params/ho-amb.xtp
@@ -165,7 +165,7 @@ STRUCTURE HO "American Model Builders Hillview Volunteer Fire Co. 147"
2.765625 0.578125 0
2.578125 0.578125 0
END
-STRUCTURE HO "American Model Builders Sonnys Shack 705"
+STRUCTURE HO "American Model Builders Sonny’s Shack 705"
F3 9403516 0.000000 4
0.000000 0.000000 0
4.500000 0.000000 0
diff --git a/app/lib/params/hubner1.xtp b/app/lib/params/hubner1.xtp
index 0cbdb7b..760a6a8 100644
--- a/app/lib/params/hubner1.xtp
+++ b/app/lib/params/hubner1.xtp
@@ -1,50 +1,50 @@
-CONTENTS Hbner 1-Scale Turnouts
-# From 'Mrklin Complete Program 1994/95 E'
+CONTENTS Húbner 1-Scale Turnouts
+# From 'Märklin Complete Program 1994/95 E'
# Straight Section Design by Dave Bullis
-TURNOUT 1 "Hbner Straight 15cm T1002"
+TURNOUT 1 "Húbner Straight 15cm T1002"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 5.905512 0.000000 90.000000
S 0 0 0.000000 0.000000 5.906000 0.000000
END
-TURNOUT 1 "Hbner Straight 15.22cm T1003"
+TURNOUT 1 "Húbner Straight 15.22cm T1003"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 5.992126 0.000000 90.000000
S 0 0 0.000000 0.000000 5.992000 0.000000
END
-TURNOUT 1 "Hbner Straight 20cm T1004"
+TURNOUT 1 "Húbner Straight 20cm T1004"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 7.874016 0.000000 90.000000
S 0 0 0.000000 0.000000 7.874000 0.000000
END
-TURNOUT 1 "Hbner Straight 30cm T1005"
+TURNOUT 1 "Húbner Straight 30cm T1005"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 11.811024 0.000000 90.000000
S 0 0 0.000000 0.000000 11.811000 0.000000
END
-TURNOUT 1 "Hbner Straight 60cm T1006"
+TURNOUT 1 "Húbner Straight 60cm T1006"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 23.622047 0.000000 90.000000
S 0 0 0.000000 0.000000 23.622000 0.000000
END
-TURNOUT 1 "Hbner Straight 5.9cm T1026"
+TURNOUT 1 "Húbner Straight 5.9cm T1026"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 2.342520 0.000000 90.000000
S 0 0 0.000000 0.000000 2.343000 0.000000
END
# Curved Section Design by Dave Bullis
-TURNOUT 1 "Hbner Curved R232.1cm 30 T1008"
+TURNOUT 1 "Húbner Curved R232.1cm 30° T1008"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 15.867615 -1.388236 100.000000
C 0 0 91.378000 0.000000 -91.378000 0.000000 10.000000
END
-TURNOUT 1 "Hbner Right Turnout T1000"
+TURNOUT 1 "Húbner Right Turnout T1000"
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -55,7 +55,7 @@ TURNOUT 1 "Hbner Right Turnout T1000"
C 0 0 71.174000 1.766000 -71.174000 0.000000 10.000000
S 0 0 14.125000 -1.081000 23.622000 -2.756000
END
-TURNOUT 1 "Hbner Left Turnout T1001"
+TURNOUT 1 "Húbner Left Turnout T1001"
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -66,7 +66,7 @@ TURNOUT 1 "Hbner Left Turnout T1001"
C 0 0 -71.174000 1.766000 71.174000 170.000000 10.000000
S 0 0 14.125000 1.081000 23.622000 2.756000
END
-TURNOUT 1 "Hbner Right 10 Crossing T1042"
+TURNOUT 1 "Húbner Right 10° Crossing T1042"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 31.496063 0.000000 90.000000
@@ -75,7 +75,7 @@ TURNOUT 1 "Hbner Right 10 Crossing T1042"
S 0 0 0.000000 0.000000 31.496000 0.000000
S 0 0 0.000000 2.756000 31.496000 -2.756000
END
-TURNOUT 1 "Hbner Left 10 Crossing T1042"
+TURNOUT 1 "Húbner Left 10° Crossing T1042"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 31.496063 0.000000 90.000000
@@ -85,7 +85,7 @@ TURNOUT 1 "Hbner Left 10 Crossing T1042"
S 0 0 0.000000 -2.756000 31.496000 2.756000
END
# Double Slipswitch Design by Dave Bullis - 31.496063 10.000000 31.981932
-TURNOUT 1 "Hbner Right 10 Double Slip T1024"
+TURNOUT 1 "Húbner Right 10° Double Slip T1024"
P "Normal" 1 2 3 0 4 5 6
P "Reverse" 1 7 6 0 4 8 3
E 0.000000 0.000000 270.000000
@@ -101,7 +101,7 @@ TURNOUT 1 "Hbner Right 10 Double Slip T1024"
C 0 0 142.416000 3.288000 -142.416000 0.000000 10.000000
C 0 0 -142.416000 28.208000 142.416000 180.000000 10.000000
END
-TURNOUT 1 "Hbner Right 10 Double Slip T1024"
+TURNOUT 1 "Húbner Right 10° Double Slip T1024"
P "Normal" 1 2 3 0 4 5 6
P "Reverse" 1 7 6 0 4 8 3
E 0.000000 0.000000 270.000000
@@ -117,11 +117,9 @@ TURNOUT 1 "Hbner Right 10 Double Slip T1024"
C 0 0 -142.416000 3.288000 142.416000 170.000000 10.000000
C 0 0 142.416000 28.208000 -142.416000 350.000000 10.000000
END
-
# Curved turnouts designed by Martin Heine
-
-TURNOUT 1 "Hbner Right Curved Turnout R1020mm 22.5/45 H1074"
- U "Curved Turnout" "" "Hbner" "Left Curved Turnout R1020mm 22.5/45" "H1075" "Right Curved Turnout R1020mm 22.5/45" "H1074" 28.395669 45.000000 11.761811 22.500000 3.056693 21.509449 0.000000 0.000000 0
+TURNOUT 1 "Hübner Right Curved Turnout R1020mm 22.5/45° H1074"
+ U "Curved Turnout" "" "Hübner" "Left Curved Turnout R1020mm 22.5/45°" "H1075" "Right Curved Turnout R1020mm 22.5/45°" "H1074" 28.395669 45.000000 11.761811 22.500000 3.056693 21.509449 0.000000 0.000000 0
P "Normal" 1 6 4 5
P "Reverse" 1 2 3
E 0.000000 0.000000 270.000000
@@ -134,8 +132,8 @@ TURNOUT 1 "Hbner Right Curved Turnout R1020mm 22.5/45 H1074"
S 0 0.000000 19.874263 -2.379347 21.509449 -3.056693
S 0 0.000000 1.770225 0.000000 7.912550 0.000000
END
-TURNOUT 1 "Hbner Left Curved Turnout R1020mm 22.5/45 H1075"
- U "Curved Turnout" "" "Hbner" "Left Curved Turnout R1020mm 22.5/45" "H1075" "Right Curved Turnout R1020mm 22.5/45" "H1074" 28.395669 45.000000 11.761811 22.500000 3.056693 21.509449 0.000000 0.000000 0
+TURNOUT 1 "Hübner Left Curved Turnout R1020mm 22.5/45° H1075"
+ U "Curved Turnout" "" "Hübner" "Left Curved Turnout R1020mm 22.5/45°" "H1075" "Right Curved Turnout R1020mm 22.5/45°" "H1074" 28.395669 45.000000 11.761811 22.500000 3.056693 21.509449 0.000000 0.000000 0
P "Normal" 1 6 4 5
P "Reverse" 1 2 3
E 0.000000 0.000000 270.000000
@@ -148,8 +146,8 @@ TURNOUT 1 "Hbner Left Curved Turnout R1020mm 22.5/45 H1075"
S 0 0.000000 19.874263 2.379347 21.509449 3.056693
S 0 0.000000 1.770225 0.000000 7.912550 0.000000
END
-TURNOUT 1 "Hbner Straight 15.6mm adjustment to H1074/H1075 H1076"
- U "Straight Section" "" "Hbner" "Straight 15.6mm adjustment to H1074/H1075" "H1076" 6.141732 0.000000 0.000000 0
+TURNOUT 1 "Hübner Straight 15.6mm adjustment to H1074/H1075 H1076"
+ U "Straight Section" "" "Hübner" "Straight 15.6mm adjustment to H1074/H1075" "H1076" 6.141732 0.000000 0.000000 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 6.141732 0.000000 90.000000
diff --git a/app/lib/params/kato-ho.xtp b/app/lib/params/kato-ho.xtp
index 9e6f58b..3cfe85b 100644
--- a/app/lib/params/kato-ho.xtp
+++ b/app/lib/params/kato-ho.xtp
@@ -1,483 +1,556 @@
-CONTENTS Kato Unitrack HO-Scale
-SUBCONTENTS Kato Unitrack HO-Scale Straight Track
-TURNOUT HO "Kato Unitrack Straight 2 3/8 60mm 2-105"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.362205 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.362205 0.000000
- L 11579568 0.053333 0.000000 0.723334 2.362205 0.723334
- L 11579568 0.053333 0.000000 -0.723334 2.362205 -0.723334
- END
-TURNOUT HO "Kato Unitrack Straight 3 11/16 94mm 2-111"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.700787 0.000000 90.000000
- S 0 0 0.000000 0.000000 3.700787 0.000000
- L 11579568 0.053333 0.000000 0.723334 3.700787 0.723334
- L 11579568 0.053333 0.000000 -0.723334 3.700787 -0.723334
- END
-TURNOUT HO "Kato Unitrack Straight 4 1/2 114mm 2-120"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.488189 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.488189 0.000000
- L 11579568 0.053333 0.000000 0.723334 4.488189 0.723334
- L 11579568 0.053333 0.000000 -0.723334 4.488189 -0.723334
- END
-TURNOUT HO "Kato Unitrack Straight 4 7/8 123mm 2-140"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.842520 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.842520 0.000000
- L 11579568 0.053333 0.000000 0.723334 4.842520 0.723334
- L 11579568 0.053333 0.000000 -0.723334 4.842520 -0.723334
- END
-TURNOUT HO "Kato Unitrack Straight 6 7/8 174mm 2-130"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.850394 0.000000 90.000000
- S 0 0 0.000000 0.000000 6.850394 0.000000
- L 11579568 0.053333 0.000000 0.723334 6.850394 0.723334
- L 11579568 0.053333 0.000000 -0.723334 6.850394 -0.723334
- END
-TURNOUT HO "Kato Unitrack Straight 9 3/4 246mm 2-150"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.685039 0.000000 90.000000
- S 0 0 0.000000 0.000000 9.685039 0.000000
- L 11579568 0.053333 0.000000 0.723334 9.685039 0.723334
- L 11579568 0.053333 0.000000 -0.723334 9.685039 -0.723334
- END
-TURNOUT HO "Kato Unitrack Straight 8 15/16 227mm 2-160"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.937008 0.000000 90.000000
- S 0 0 0.000000 0.000000 8.937008 0.000000
- L 11579568 0.053333 0.000000 0.723334 8.937008 0.723334
- L 11579568 0.053333 0.000000 -0.723334 8.937008 -0.723334
- END
-TURNOUT HO "Kato Unitrack Straight 14 1/2 369mm 2-180"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 14.527559 0.000000 90.000000
- S 0 0 0.000000 0.000000 14.527559 0.000000
- L 11579568 0.053333 0.000000 0.723334 14.527559 0.723334
- L 11579568 0.053333 0.000000 -0.723334 14.527559 -0.723334
- END
-TURNOUT HO "Kato Unitrack Straight 5 7/8 159mm 2-193"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.866142 0.000000 90.000000
- S 0 0 0.000000 0.000000 5.866142 0.000000
- L 11579568 0.053333 0.000000 0.723334 5.866142 0.723334
- L 11579568 0.053333 0.000000 -0.723334 5.866142 -0.723334
- END
-
-SUBCONTENTS Kato Unitrack HO-Scale Concrete-Tie Straight Track
-TURNOUT HO "Kato Unitrack Concrete-Tie Straight 4 7/8 123mm 2-141"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.842520 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.842520 0.000000
- L 11579568 0.053333 0.000000 0.723334 4.842520 0.723334
- L 11579568 0.053333 0.000000 -0.723334 4.842520 -0.723334
- END
-TURNOUT HO "Kato Unitrack Concrete-Tie Straight 9 3/4 246mm 2-152"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.685039 0.000000 90.000000
- S 0 0 0.000000 0.000000 9.685039 0.000000
- L 11579568 0.053333 0.000000 0.723334 9.685039 0.723334
- L 11579568 0.053333 0.000000 -0.723334 9.685039 -0.723334
- END
-TURNOUT HO "Kato Unitrack Concrete-Tie Feeder Trk 9 3/4 246mm 2-153"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.685039 0.000000 90.000000
- S 0 0 0.000000 0.000000 9.685039 0.000000
- L 11579568 0.053333 0.000000 0.723334 9.685039 0.723334
- L 11579568 0.053333 0.000000 -0.723334 9.685039 -0.723334
- END
-TURNOUT HO "Kato Unitrack Concrete-Tie Straight 14 1/2 369mm 2-181"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 14.527559 0.000000 90.000000
- S 0 0 0.000000 0.000000 14.527559 0.000000
- L 11579568 0.053333 0.000000 0.723334 14.527559 0.723334
- L 11579568 0.053333 0.000000 -0.723334 14.527559 -0.723334
- END
-
-
-SUBCONTENTS Kato Unitrack HO-Scale Curve Track
-TURNOUT HO "Kato Unitrack Curved R21 5/8 550mm 22.5 2-210"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.286452 -1.648278 112.500000
- C 0 0 21.653543 0.000000 -21.653543 0.000000 22.500000
- A 11579568 0.053333 20.930209 0.000000 -21.653543 0.000000 22.500000
- A 11579568 0.053333 22.376877 0.000000 -21.653543 0.000000 22.500000
- END
-TURNOUT HO "Kato Unitrack Curved R24 610mm 22.5 2-220"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.190429 -1.828090 112.500000
- C 0 0 24.015748 0.000000 -24.015748 0.000000 22.500000
- A 11579568 0.053333 23.292414 0.000000 -24.015748 0.000000 22.500000
- A 11579568 0.053333 24.739082 0.000000 -24.015748 0.000000 22.500000
- END
-TURNOUT HO "Kato Unitrack Curved R26 3/8 670mm 22.5 2-230"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 10.094406 -2.007902 112.500000
- C 0 0 26.377953 0.000000 -26.377953 0.000000 22.500000
- A 11579568 0.053333 25.654619 0.000000 -26.377953 0.000000 22.500000
- A 11579568 0.053333 27.101287 0.000000 -26.377953 0.000000 22.500000
- END
-TURNOUT HO "Kato Unitrack Curved 28 3/4 730mm 22.5 2-240"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 10.998382 -2.187714 112.500000
- C 0 0 28.740157 0.000000 -28.740157 0.000000 22.500000
- A 11579568 0.053333 28.016823 0.000000 -28.740157 0.000000 22.500000
- A 11579568 0.053333 29.463491 0.000000 -28.740157 0.000000 22.500000
- END
-TURNOUT HO "Kato Unitrack Curved 31 1/8 790mm 22.5 2-250"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 11.902359 -2.367526 112.500000
- C 0 0 31.102362 0.000000 -31.102362 0.000000 22.500000
- A 11579568 0.053333 30.379028 0.000000 -31.102362 0.000000 22.500000
- A 11579568 0.053333 31.825696 0.000000 -31.102362 0.000000 22.500000
- END
-TURNOUT HO "Kato Unitrack Curved R16 7/8 430mm 22.5 2-260"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.478499 -1.288654 112.500000
- C 0 0 16.929134 0.000000 -16.929134 0.000000 22.500000
- A 11579568 0.053333 16.205800 0.000000 -16.929134 0.000000 22.500000
- A 11579568 0.053333 17.652468 0.000000 -16.929134 0.000000 22.500000
- END
-TURNOUT HO "Kato Unitrack Curved R19 1/4 490mm 22.5 2-270"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.382476 -1.468466 112.500000
- C 0 0 19.291339 0.000000 -19.291339 0.000000 22.500000
- A 11579568 0.053333 18.568005 0.000000 -19.291339 0.000000 22.500000
- A 11579568 0.053333 20.014673 0.000000 -19.291339 0.000000 22.500000
- END
-TURNOUT HO "Kato Unitrack Curved R34 1/8 867mm 22.5 2-290"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.927282 -0.518570 100.000000
- C 0 0 34.133858 0.000000 -34.133858 0.000000 10.000000
- A 11579568 0.053333 33.410524 0.000000 -34.133858 0.000000 10.000000
- A 11579568 0.053333 34.857192 0.000000 -34.133858 0.000000 10.000000
- END
-
-
-SUBCONTENTS Kato Unitrack HO-Scale Superelevated Concrete-Tie Curve Track
-TURNOUT HO "Kato Unitrack Superelevated CT Curved 28 3/4 730mm 22.5 2-241"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 10.998382 -2.187714 112.500000
- C 0 0 28.740157 0.000000 -28.740157 0.000000 22.500000
- A 11579568 0.053333 28.016823 0.000000 -28.740157 0.000000 22.500000
- A 11579568 0.053333 29.463491 0.000000 -28.740157 0.000000 22.500000
- END
-TURNOUT HO "Kato Unitrack Superelevated CT Easement Curved (L) 28 3/4 730mm 22.5 2-242 Left"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 10.998382 -2.187714 112.500000
- C 0 0 28.740157 0.000000 -28.740157 0.000000 22.500000
- A 11579568 0.053333 28.016823 0.000000 -28.740157 0.000000 22.500000
- A 11579568 0.053333 29.463491 0.000000 -28.740157 0.000000 22.500000
- END
-TURNOUT HO "Kato Unitrack Superelevated CT Easement Curved (R) 28 3/4 730mm 22.5 2-242 Right"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 10.998382 -2.187714 112.500000
- C 0 0 28.740157 0.000000 -28.740157 0.000000 22.500000
- A 11579568 0.053333 28.016823 0.000000 -28.740157 0.000000 22.500000
- A 11579568 0.053333 29.463491 0.000000 -28.740157 0.000000 22.500000
- END
-TURNOUT HO "Kato Unitrack Superelevated CT Curved 31 1/8 790mm 22.5 2-251"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 11.902359 -2.367526 112.500000
- C 0 0 31.102362 0.000000 -31.102362 0.000000 22.500000
- A 11579568 0.053333 30.379028 0.000000 -31.102362 0.000000 22.500000
- A 11579568 0.053333 31.825696 0.000000 -31.102362 0.000000 22.500000
- END
-TURNOUT HO "Kato Unitrack Superelevated CT Curved (L) 31 1/8 790mm 22.5 2-252 Left"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 11.902359 -2.367526 112.500000
- C 0 0 31.102362 0.000000 -31.102362 0.000000 22.500000
- A 11579568 0.053333 30.379028 0.000000 -31.102362 0.000000 22.500000
- A 11579568 0.053333 31.825696 0.000000 -31.102362 0.000000 22.500000
- END
-TURNOUT HO "Kato Unitrack Superelevated CT Curved (R) 31 1/8 790mm 22.5 2-252 Right"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 11.902359 -2.367526 112.500000
- C 0 0 31.102362 0.000000 -31.102362 0.000000 22.500000
- A 11579568 0.053333 30.379028 0.000000 -31.102362 0.000000 22.500000
- A 11579568 0.053333 31.825696 0.000000 -31.102362 0.000000 22.500000
- END
-
-
-SUBCONTENTS Kato Unitrack HO-Scale Turnouts
-TURNOUT HO "Kato Unitrack #4-L Man Turnout 2-840"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 9.685039 0.000000 90.000000
- E 7.382476 1.468466 67.500000
- S 0 0 0.000000 0.000000 9.685039 0.000000
- C 0 0 -19.291339 0.000000 19.291339 157.500000 22.500000
- L 11579568 0.053333 0.000000 -0.723334 9.685039 -0.723334
- L 11579568 0.053333 7.685039 0.723334 9.685039 0.723334
- A 11579568 0.053333 -18.568005 0.000000 19.291339 157.500000 22.500000
- END
-TURNOUT HO "Kato Unitrack #4-R Man Turnout 2-841"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 9.685039 0.000000 90.000000
- E 7.382476 -1.468466 112.500000
- S 0 0 0.000000 0.000000 9.685039 0.000000
- C 0 0 19.291339 0.000000 -19.291339 0.000000 22.500000
- L 11579568 0.053333 0.000000 0.723334 9.685039 0.723334
- L 11579568 0.053333 7.685039 -0.723334 9.685039 -0.723334
- A 11579568 0.053333 18.568005 0.000000 -19.291339 0.000000 22.500000
- END
-TURNOUT HO "Kato Unitrack #4-L Powered Turnout 2-850"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 7.283465 0.000000 90.000000
- E 7.049704 1.179716 71.000000
- S 0 0 0.000000 0.000000 7.283465 0.000000
- C 0 0 -21.653543 0.000000 21.653543 161.000000 19.000000
- L 11579568 0.053333 0.000000 -0.723334 7.283465 -0.723334
- A 11579568 0.053333 -20.930209 0.000000 21.653543 161.000000 19.000000
- END
-TURNOUT HO "Kato Unitrack #4-R Powered Turnout 2-851"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 7.283465 0.000000 90.000000
- E 7.049704 -1.179716 109.000000
- S 0 0 0.000000 0.000000 7.283465 0.000000
- C 0 0 21.653543 0.000000 -21.653543 0.000000 19.000000
- L 11579568 0.053333 0.000000 0.723334 7.283465 0.723334
- A 11579568 0.053333 20.930209 0.000000 -21.653543 0.000000 19.000000
- END
-TURNOUT HO "Kato Unitrack S61L (incl w/#4 TO) "
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.401575 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.401575 0.000000
- L 11579568 0.053333 0.000000 0.723334 2.401575 0.723334
- L 11579568 0.053333 0.000000 -0.723334 2.401575 -0.723334
- END
-TURNOUT HO "Kato Unitrack S61R (incl w/#4 TO) "
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.401575 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.401575 0.000000
- L 11579568 0.053333 0.000000 0.723334 2.401575 0.723334
- L 11579568 0.053333 0.000000 -0.723334 2.401575 -0.723334
- END
-TURNOUT HO "Kato Unitrack S114 (incl w/#4 TO) "
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.488189 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.488189 0.000000
- L 11579568 0.053333 0.000000 0.723334 4.488189 0.723334
- L 11579568 0.053333 0.000000 -0.723334 4.488189 -0.723334
- END
-TURNOUT HO "Kato Unitrack R550-3.5 (incl w/#4 TO) "
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.321917 -0.040388 93.500000
- C 0 0 21.653543 0.000000 -21.654000 0.000000 3.500000
- A 11579568 0.053333 20.930209 0.000000 -21.653543 0.000000 3.500000
- A 11579568 0.053333 22.376877 0.000000 -21.653543 0.000000 3.500000
- END
-TURNOUT HO "Kato Unitrack R550-15.5 (incl w/#4 TO) "
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.786658 -0.787530 105.500000
- C 0 0 21.653543 0.000000 -21.653543 0.000000 15.500000
- A 11579568 0.053333 20.930209 0.000000 -21.653543 0.000000 15.500000
- A 11579568 0.053333 22.376877 0.000000 -21.653543 0.000000 15.500000
- END
-TURNOUT HO "Kato Unitrack R550-3.5+15.5 (incl w/#4 TO) "
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.049704 -1.179716 109.000000
- C 0 0 21.653543 0.000000 -21.653543 0.000000 19.000000
- A 11579568 0.053333 20.930209 0.000000 -21.653543 0.000000 19.000000
- A 11579568 0.053333 22.376877 0.000000 -21.653543 0.000000 19.000000
- END
-TURNOUT HO "Kato Unitrack #6-L Powered Turnout 2-860"
- P "Normal" 1
- P "Reverse" 2 3
- E 0.000000 0.000000 270.000000
- E 9.803150 0.000000 90.000000
- E 9.685039 1.181102 80.000000
- S 0 0.000000 0.000000 0.000000 9.803150 0.000000
- C 0 0.000000 -34.133858 0.000000 34.133858 170.000000 10.000000
- S 0 0.000000 5.927282 0.518570 9.803150 1.181102
- L 11579568 0.053333 0.000000 -0.723334 9.803150 -0.723334
- A 11579568 0.053333 -33.410524 0.000000 34.133858 170.000000 10.000000
- L 11579568 0.053333 5.801677 1.230915 9.560039 1.903665
- END
-TURNOUT HO "Kato Unitrack #6-R Powered Turnout 2-861"
- P "Normal" 1
- P "Reverse" 2 3
- E 0.000000 0.000000 270.000000
- E 9.803150 0.000000 90.000000
- E 9.685039 -1.181102 100.000000
- S 0 0.000000 0.000000 0.000000 9.803150 0.000000
- C 0 0.000000 34.133858 0.000000 -34.133858 0.000000 10.000000
- S 0 0.000000 5.927282 -0.518570 9.803150 -1.181102
- L 11579568 0.053333 0.000000 0.723334 9.803150 0.723334
- A 11579568 0.053333 33.410524 0.000000 -34.133858 0.000000 10.000000
- L 11579568 0.053333 5.801677 -1.230915 9.560039 -1.903665
- END
-TURNOUT HO "Kato Unitrack S97 (incl w/ #6 TO) "
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.818898 0.000000 90.000000
- S 0 0 0.000000 0.000000 3.818898 0.000000
- L 11579568 0.053333 0.000000 0.723334 3.818898 0.723334
- L 11579568 0.053333 0.000000 -0.723334 3.818898 -0.723334
- END
-TURNOUT HO "Kato Unitrack S94 (incl w/ #6 TO) "
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.700787 0.000000 90.000000
- S 0 0 0.000000 0.000000 3.700787 0.000000
- L 11579568 0.053333 0.000000 0.723334 3.700787 0.723334
- L 11579568 0.053333 0.000000 -0.723334 3.700787 -0.723334
- END
-TURNOUT HO "Kato Unitrack S149 (incl w/ #6 TO) "
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.866142 0.000000 90.000000
- S 0 0 0.000000 0.000000 5.866142 0.000000
- L 11579568 0.053333 0.000000 0.723334 5.866142 0.723334
- L 11579568 0.053333 0.000000 -0.723334 5.866142 -0.723334
- END
-TURNOUT HO "Kato Unitrack R867-10 (incl w/ #6 TO) "
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.927282 -0.518570 100.000000
- C 0 0 34.134000 0.000000 -34.134000 0.000000 10.000000
- A 11579568 0.053333 33.410666 0.000000 -34.134000 0.000000 10.000000
- A 11579568 0.053333 34.857334 0.000000 -34.134000 0.000000 10.000000
- END
-TURNOUT HO "Kato Unitrack #6-L Man Turnout 2-862"
- P "Normal" 1
- P "Reverse" 2 3
- E 0.000000 0.000000 270.000000
- E 9.803150 0.000000 90.000000
- E 9.685039 1.181102 80.000000
- S 0 0.000000 0.000000 0.000000 9.803150 0.000000
- C 0 0.000000 -34.133858 0.000000 34.133858 170.000000 10.000000
- S 0 0.000000 5.927282 0.518570 9.803150 1.181102
- L 11579568 0.053333 0.000000 -0.723334 9.803150 -0.723334
- A 11579568 0.053333 -33.410524 0.000000 34.133858 170.000000 10.000000
- L 11579568 0.053333 5.801677 1.230915 9.560039 1.903665
- END
-TURNOUT HO "Kato Unitrack #6-R Man Turnout 2-863"
- P "Normal" 1
- P "Reverse" 2 3
- E 0.000000 0.000000 270.000000
- E 9.803150 0.000000 90.000000
- E 9.685039 -1.181102 100.000000
- S 0 0.000000 0.000000 0.000000 9.803150 0.000000
- C 0 0.000000 34.133858 0.000000 -34.133858 0.000000 10.000000
- S 0 0.000000 5.927282 -0.518570 9.803150 -1.181102
- L 11579568 0.053333 0.000000 0.723334 9.803150 0.723334
- A 11579568 0.053333 33.410524 0.000000 -34.133858 0.000000 10.000000
- L 11579568 0.053333 5.801677 -1.230915 9.560039 -1.903665
- END
-
-SUBCONTENTS Kato Unitrack HO-Scale Misc Tracks
-TURNOUT HO "Kato Unitrack Feeder 9 3/4 246mm 2-151"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.685039 0.000000 90.000000
- S 0 0 0.000000 0.000000 9.685039 0.000000
- L 11579568 0.053333 0.000000 0.723334 9.685039 0.723334
- L 11579568 0.053333 0.000000 -0.723334 9.685039 -0.723334
- END
-TURNOUT HO "Kato Unitrack Bumper 4 1/4 109mm 2-170"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- S 0 0 0.000000 0.000000 3.291339 0.000000
- L 11579568 0.053333 0.000000 0.723334 4.291339 0.723334
- L 11579568 0.053333 0.000000 -0.723334 4.291339 -0.723334
- L 11579568 0.053333 4.291339 0.723334 4.291339 -0.723334
- END
-TURNOUT HO "Kato Unitrack Crossing 2 3/8 60mm 90 2-401"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 2.362205 0.000000 90.000000
- E 1.181025 1.181025 0.000000
- E 1.181025 -1.181025 180.000000
- S 0 0 0.000000 0.000000 2.362205 0.000000
- S 0 0 1.181025 1.181025 1.181025 -1.181025
- L 11579568 0.053333 0.000000 0.723334 0.457769 0.723334
- L 11579568 0.053333 0.000000 -0.723334 0.457769 -0.723334
- L 11579568 0.053333 1.904437 0.723334 2.362205 0.723334
- L 11579568 0.053333 1.904437 -0.723334 2.362205 -0.723334
- L 11579568 0.053333 0.457769 1.181025 0.457769 0.723334
- L 11579568 0.053333 1.904437 1.181025 1.904437 0.723334
- L 11579568 0.053333 0.457769 -0.723334 0.457769 -1.181025
- L 11579568 0.053333 1.904437 -0.723334 1.904437 -1.181025
- END
-TURNOUT HO "Kato Unitrack RoadCrossing+Rerailer 4 7/8 123mm 2-142"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.842520 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.842520 0.000000
- L 11579568 0.053333 0.000000 0.723334 4.842520 0.723334
- L 11579568 0.053333 0.000000 -0.723334 4.842520 -0.723334
- F 12632256 0.000000 4
- 0.000000 0.723334 0
- 0.500000 1.123334 0
- 4.342520 1.123334 0
- 4.842520 0.723334 0
- F 12632256 0.000000 4
- 0.000000 -0.723334 0
- 0.500000 -1.123334 0
- 4.342520 -1.123334 0
- 4.842520 -0.723334 0
- END
-TURNOUT HO "Kato Unitrack Uncoupler Track 4 7/8 123mm 2-143"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.842520 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.842520 0.000000
- L 11579568 0.053333 0.000000 0.723334 4.842520 0.723334
- L 11579568 0.053333 0.000000 -0.723334 4.842520 -0.723334
- L 0 0.53333 1.000000 0.000000 3.842520 0.000000
- END
-TURNOUT HO "Kato Unitrack 3-Lamp Automatic Signal 4 7/8 123mm 2-601"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.842520 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.842520 0.000000
- L 11579568 0.053333 0.000000 0.723334 4.842520 0.723334
- L 11579568 0.053333 0.000000 -0.723334 4.842520 -0.723334
- F 12632256 0.000000 4
- 1.929134 0.723334 0
- 1.929134 1.707586 0
- 2.913386 1.707586 0
- 2.913386 0.723334 0
- G 0 0.053333 0.200000 2.421260 1.215460 0
- END
+CONTENTS Kato Unitrack HO-Scale
+SUBCONTENTS Kato Unitrack HO-Scale Straight Track
+TURNOUT HO "Kato Unitrack Straight 2 3/8 60mm 2-105"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.362205 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.362205 0.000000
+ L 11579568 0.053333 0.000000 0.723334 2.362205 0.723334
+ L 11579568 0.053333 0.000000 -0.723334 2.362205 -0.723334
+ END
+TURNOUT HO "Kato Unitrack Straight 3 11/16 94mm 2-111"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.700787 0.000000 90.000000
+ S 0 0 0.000000 0.000000 3.700787 0.000000
+ L 11579568 0.053333 0.000000 0.723334 3.700787 0.723334
+ L 11579568 0.053333 0.000000 -0.723334 3.700787 -0.723334
+ END
+TURNOUT HO "Kato Unitrack Straight 4 1/2 114mm 2-120"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.488189 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.488189 0.000000
+ L 11579568 0.053333 0.000000 0.723334 4.488189 0.723334
+ L 11579568 0.053333 0.000000 -0.723334 4.488189 -0.723334
+ END
+TURNOUT HO "Kato Unitrack Straight 4 7/8 123mm 2-140"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.842520 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.842520 0.000000
+ L 11579568 0.053333 0.000000 0.723334 4.842520 0.723334
+ L 11579568 0.053333 0.000000 -0.723334 4.842520 -0.723334
+ END
+TURNOUT HO "Kato Unitrack Straight 6 7/8 174mm 2-130"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.850394 0.000000 90.000000
+ S 0 0 0.000000 0.000000 6.850394 0.000000
+ L 11579568 0.053333 0.000000 0.723334 6.850394 0.723334
+ L 11579568 0.053333 0.000000 -0.723334 6.850394 -0.723334
+ END
+TURNOUT HO "Kato Unitrack Straight 9 3/4 246mm 2-150"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.685039 0.000000 90.000000
+ S 0 0 0.000000 0.000000 9.685039 0.000000
+ L 11579568 0.053333 0.000000 0.723334 9.685039 0.723334
+ L 11579568 0.053333 0.000000 -0.723334 9.685039 -0.723334
+ END
+TURNOUT HO "Kato Unitrack Straight 8 15/16 227mm 2-160"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.937008 0.000000 90.000000
+ S 0 0 0.000000 0.000000 8.937008 0.000000
+ L 11579568 0.053333 0.000000 0.723334 8.937008 0.723334
+ L 11579568 0.053333 0.000000 -0.723334 8.937008 -0.723334
+ END
+TURNOUT HO "Kato Unitrack Straight 14 1/2 369mm 2-180"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 14.527559 0.000000 90.000000
+ S 0 0 0.000000 0.000000 14.527559 0.000000
+ L 11579568 0.053333 0.000000 0.723334 14.527559 0.723334
+ L 11579568 0.053333 0.000000 -0.723334 14.527559 -0.723334
+ END
+TURNOUT HO "Kato Unitrack Straight 5 7/8 149mm 2-193"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.826772 0.000000 90.000000
+ S 0 0 0.000000 0.000000 5.826772 0.000000
+ L 11579568 0.053333 0.000000 0.723334 5.826772 0.723334
+ L 11579568 0.053333 0.000000 -0.723334 5.826772 -0.723334
+ END
+
+###############################################################################
+###############################################################################
+SUBCONTENTS Kato Unitrack HO-Scale Concrete-Tie Straight Track
+TURNOUT HO "Kato Unitrack Concrete-Tie Straight 4 7/8 123mm 2-141"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.842520 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.842520 0.000000
+ L 11579568 0.053333 0.000000 0.723334 4.842520 0.723334
+ L 11579568 0.053333 0.000000 -0.723334 4.842520 -0.723334
+ END
+TURNOUT HO "Kato Unitrack Concrete-Tie Straight 9 3/4 246mm 2-152"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.685039 0.000000 90.000000
+ S 0 0 0.000000 0.000000 9.685039 0.000000
+ L 11579568 0.053333 0.000000 0.723334 9.685039 0.723334
+ L 11579568 0.053333 0.000000 -0.723334 9.685039 -0.723334
+ END
+TURNOUT HO "Kato Unitrack Concrete-Tie Feeder Trk 9 3/4 246mm 2-153"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.685039 0.000000 90.000000
+ S 0 0 0.000000 0.000000 9.685039 0.000000
+ L 11579568 0.053333 0.000000 0.723334 9.685039 0.723334
+ L 11579568 0.053333 0.000000 -0.723334 9.685039 -0.723334
+ END
+TURNOUT HO "Kato Unitrack Concrete-Tie Straight 14 1/2 369mm 2-181"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 14.527559 0.000000 90.000000
+ S 0 0 0.000000 0.000000 14.527559 0.000000
+ L 11579568 0.053333 0.000000 0.723334 14.527559 0.723334
+ L 11579568 0.053333 0.000000 -0.723334 14.527559 -0.723334
+ END
+
+###############################################################################
+###############################################################################
+SUBCONTENTS Kato Unitrack HO-Scale Curve Track
+TURNOUT HO "Kato Unitrack Curved R21 5/8 550mm 22.5° 2-210"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.286452 -1.648278 112.500000
+ C 0 0 21.653543 0.000000 -21.653543 0.000000 22.500000
+ A 11579568 0.053333 20.930209 0.000000 -21.653543 0.000000 22.500000
+ A 11579568 0.053333 22.376877 0.000000 -21.653543 0.000000 22.500000
+ END
+TURNOUT HO "Kato Unitrack Curved R24 610mm 22.5° 2-220"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.190429 -1.828090 112.500000
+ C 0 0 24.015748 0.000000 -24.015748 0.000000 22.500000
+ A 11579568 0.053333 23.292414 0.000000 -24.015748 0.000000 22.500000
+ A 11579568 0.053333 24.739082 0.000000 -24.015748 0.000000 22.500000
+ END
+TURNOUT HO "Kato Unitrack Curved R26 3/8 670mm 22.5° 2-230"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 10.094406 -2.007902 112.500000
+ C 0 0 26.377953 0.000000 -26.377953 0.000000 22.500000
+ A 11579568 0.053333 25.654619 0.000000 -26.377953 0.000000 22.500000
+ A 11579568 0.053333 27.101287 0.000000 -26.377953 0.000000 22.500000
+ END
+TURNOUT HO "Kato Unitrack Curved 28 3/4 730mm 22.5° 2-240"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 10.998382 -2.187714 112.500000
+ C 0 0 28.740157 0.000000 -28.740157 0.000000 22.500000
+ A 11579568 0.053333 28.016823 0.000000 -28.740157 0.000000 22.500000
+ A 11579568 0.053333 29.463491 0.000000 -28.740157 0.000000 22.500000
+ END
+TURNOUT HO "Kato Unitrack Curved 31 1/8 790mm 22.5° 2-250"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 11.902359 -2.367526 112.500000
+ C 0 0 31.102362 0.000000 -31.102362 0.000000 22.500000
+ A 11579568 0.053333 30.379028 0.000000 -31.102362 0.000000 22.500000
+ A 11579568 0.053333 31.825696 0.000000 -31.102362 0.000000 22.500000
+ END
+TURNOUT HO "Kato Unitrack Curved R16 7/8 430mm 22.5° 2-260"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.478499 -1.288654 112.500000
+ C 0 0 16.929134 0.000000 -16.929134 0.000000 22.500000
+ A 11579568 0.053333 16.205800 0.000000 -16.929134 0.000000 22.500000
+ A 11579568 0.053333 17.652468 0.000000 -16.929134 0.000000 22.500000
+ END
+TURNOUT HO "Kato Unitrack Curved R19 1/4 490mm 22.5° 2-270"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.382476 -1.468466 112.500000
+ C 0 0 19.291339 0.000000 -19.291339 0.000000 22.500000
+ A 11579568 0.053333 18.568005 0.000000 -19.291339 0.000000 22.500000
+ A 11579568 0.053333 20.014673 0.000000 -19.291339 0.000000 22.500000
+ END
+TURNOUT HO "Kato Unitrack Curved R34 1/8 867mm 22.5° 2-290"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.927282 -0.518570 100.000000
+ C 0 0 34.133858 0.000000 -34.133858 0.000000 10.000000
+ A 11579568 0.053333 33.410524 0.000000 -34.133858 0.000000 10.000000
+ A 11579568 0.053333 34.857192 0.000000 -34.133858 0.000000 10.000000
+ END
+
+###############################################################################
+###############################################################################
+SUBCONTENTS Kato Unitrack HO-Scale Superelevated Concrete-Tie Curve Track
+TURNOUT HO "Kato Unitrack Superelevated CT Curved 28 3/4 730mm 22.5° 2-241"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 10.998382 -2.187714 112.500000
+ C 0 0 28.740157 0.000000 -28.740157 0.000000 22.500000
+ A 11579568 0.053333 28.016823 0.000000 -28.740157 0.000000 22.500000
+ A 11579568 0.053333 29.463491 0.000000 -28.740157 0.000000 22.500000
+ END
+TURNOUT HO "Kato Unitrack Superelevated CT Easement Curved (L) 28 3/4 730mm 22.5° 2-242 Left"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 10.998382 -2.187714 112.500000
+ C 0 0 28.740157 0.000000 -28.740157 0.000000 22.500000
+ A 11579568 0.053333 28.016823 0.000000 -28.740157 0.000000 22.500000
+ A 11579568 0.053333 29.463491 0.000000 -28.740157 0.000000 22.500000
+ END
+TURNOUT HO "Kato Unitrack Superelevated CT Easement Curved (R) 28 3/4 730mm 22.5° 2-242 Right"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 10.998382 -2.187714 112.500000
+ C 0 0 28.740157 0.000000 -28.740157 0.000000 22.500000
+ A 11579568 0.053333 28.016823 0.000000 -28.740157 0.000000 22.500000
+ A 11579568 0.053333 29.463491 0.000000 -28.740157 0.000000 22.500000
+ END
+TURNOUT HO "Kato Unitrack Superelevated CT Curved 31 1/8 790mm 22.5° 2-251"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 11.902359 -2.367526 112.500000
+ C 0 0 31.102362 0.000000 -31.102362 0.000000 22.500000
+ A 11579568 0.053333 30.379028 0.000000 -31.102362 0.000000 22.500000
+ A 11579568 0.053333 31.825696 0.000000 -31.102362 0.000000 22.500000
+ END
+TURNOUT HO "Kato Unitrack Superelevated CT Curved (L) 31 1/8 790mm 22.5° 2-252 Left"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 11.902359 -2.367526 112.500000
+ C 0 0 31.102362 0.000000 -31.102362 0.000000 22.500000
+ A 11579568 0.053333 30.379028 0.000000 -31.102362 0.000000 22.500000
+ A 11579568 0.053333 31.825696 0.000000 -31.102362 0.000000 22.500000
+ END
+TURNOUT HO "Kato Unitrack Superelevated CT Curved (R) 31 1/8 790mm 22.5° 2-252 Right"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 11.902359 -2.367526 112.500000
+ C 0 0 31.102362 0.000000 -31.102362 0.000000 22.500000
+ A 11579568 0.053333 30.379028 0.000000 -31.102362 0.000000 22.500000
+ A 11579568 0.053333 31.825696 0.000000 -31.102362 0.000000 22.500000
+ END
+
+###############################################################################
+###############################################################################
+SUBCONTENTS Kato Unitrack HO-Scale #4 Turnouts
+TURNOUT HO "Kato Unitrack #4-L Man Turnout 2-840"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 9.685039 0.000000 90.000000
+ E 7.382476 1.468466 67.500000
+ S 0 0 0.000000 0.000000 9.685039 0.000000
+ C 0 0 -19.291339 0.000000 19.291339 157.500000 22.500000
+ L 11579568 0.053333 0.000000 -0.723334 9.685039 -0.723334
+ L 11579568 0.053333 7.685039 0.723334 9.685039 0.723334
+ A 11579568 0.053333 -18.568005 0.000000 19.291339 157.500000 22.500000
+ END
+TURNOUT HO "Kato Unitrack #4-R Man Turnout 2-841"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 9.685039 0.000000 90.000000
+ E 7.382476 -1.468466 112.500000
+ S 0 0 0.000000 0.000000 9.685039 0.000000
+ C 0 0 19.291339 0.000000 -19.291339 0.000000 22.500000
+ L 11579568 0.053333 0.000000 0.723334 9.685039 0.723334
+ L 11579568 0.053333 7.685039 -0.723334 9.685039 -0.723334
+ A 11579568 0.053333 18.568005 0.000000 -19.291339 0.000000 22.500000
+ END
+TURNOUT HO "Kato Unitrack #4-L Powered Turnout 2-850"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 7.283465 0.000000 90.000000
+ E 7.049704 1.179716 71.000000
+ S 0 0 0.000000 0.000000 7.283465 0.000000
+ C 0 0 -21.653543 0.000000 21.653543 161.000000 19.000000
+ L 11579568 0.053333 0.000000 -0.723334 7.283465 -0.723334
+ A 11579568 0.053333 -20.930209 0.000000 21.653543 161.000000 19.000000
+ END
+TURNOUT HO "Kato Unitrack #4-R Powered Turnout 2-851"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 7.283465 0.000000 90.000000
+ E 7.049704 -1.179716 109.000000
+ S 0 0 0.000000 0.000000 7.283465 0.000000
+ C 0 0 21.653543 0.000000 -21.653543 0.000000 19.000000
+ L 11579568 0.053333 0.000000 0.723334 7.283465 0.723334
+ A 11579568 0.053333 20.930209 0.000000 -21.653543 0.000000 19.000000
+ END
+TURNOUT HO "Kato Unitrack S61L (incl w/#4 TO) "
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.401575 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.401575 0.000000
+ L 11579568 0.053333 0.000000 0.723334 2.401575 0.723334
+ L 11579568 0.053333 0.000000 -0.723334 2.401575 -0.723334
+ END
+TURNOUT HO "Kato Unitrack S61R (incl w/#4 TO) "
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.401575 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.401575 0.000000
+ L 11579568 0.053333 0.000000 0.723334 2.401575 0.723334
+ L 11579568 0.053333 0.000000 -0.723334 2.401575 -0.723334
+ END
+TURNOUT HO "Kato Unitrack S114 (incl w/#4 TO) "
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.488189 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.488189 0.000000
+ L 11579568 0.053333 0.000000 0.723334 4.488189 0.723334
+ L 11579568 0.053333 0.000000 -0.723334 4.488189 -0.723334
+ END
+TURNOUT HO "Kato Unitrack R550-3.5° (incl w/#4 TO) "
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.321917 -0.040388 93.500000
+ C 0 0 21.653543 0.000000 -21.654000 0.000000 3.500000
+ A 11579568 0.053333 20.930209 0.000000 -21.653543 0.000000 3.500000
+ A 11579568 0.053333 22.376877 0.000000 -21.653543 0.000000 3.500000
+ END
+TURNOUT HO "Kato Unitrack R550-15.5° (incl w/#4 TO) "
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.786658 -0.787530 105.500000
+ C 0 0 21.653543 0.000000 -21.653543 0.000000 15.500000
+ A 11579568 0.053333 20.930209 0.000000 -21.653543 0.000000 15.500000
+ A 11579568 0.053333 22.376877 0.000000 -21.653543 0.000000 15.500000
+ END
+TURNOUT HO "Kato Unitrack R550-3.5+15.5° (incl w/#4 TO) "
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.049704 -1.179716 109.000000
+ C 0 0 21.653543 0.000000 -21.653543 0.000000 19.000000
+ A 11579568 0.053333 20.930209 0.000000 -21.653543 0.000000 19.000000
+ A 11579568 0.053333 22.376877 0.000000 -21.653543 0.000000 19.000000
+ END
+TURNOUT HO "Kato Unitrack #4 Single Slip Turnout 3-113"
+ P "Normal" 1 2 0 3 4
+ P "Reverse" 1 5 6 7 4
+ E 0.000000 0.000000 270.000000
+ E 14.173228 0.000000 90.000000
+ E 0.000000 2.362205 270.000000
+ E 14.173228 2.362205 90.000000
+ S 0 0.000000 0.000000 0.000000 1.089381 0.000000
+ S 0 0.000000 1.089381 0.000000 14.173228 0.000000
+ S 0 0.000000 0.000000 2.362205 13.083847 2.362205
+ S 0 0.000000 13.083847 2.362205 14.173228 2.362205
+ C 0 0.000000 -15.637979 1.089402 15.637979 159.848175 20.151901
+ S 0 0.000000 6.476821 0.957315 7.696407 1.404890
+ C 0 0.000000 15.637979 13.083866 -13.275767 339.848175 20.151901
+ L 11579568 0.053333 -0.000000 -0.723334 14.173226 -0.723317
+ L 11579568 0.053333 0.000000 0.723334 1.089381 0.723335
+ L 11579568 0.053333 8.040175 0.723343 14.173228 0.723351
+ L 11579568 0.053333 -0.000002 1.638871 6.133051 1.638879
+ L 11579568 0.053333 0.000000 3.085539 14.173228 3.085540
+ L 11579568 0.053333 13.083845 1.638871 14.173226 1.638872
+ A 11579568 0.053333 14.914645 1.089402 15.637979 159.848175 20.151901
+ A 11579568 0.053333 14.914645 13.083866 -13.275767 339.848175 20.151901
+END
+TURNOUT HO "Kato Unitrack Straight 114mm(incl w/ #4 Slip) 3-113B"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.488189 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.488189 0.000000
+ L 11579568 0.053333 0.000000 0.723334 4.488189 0.723334
+ L 11579568 0.053333 0.000000 -0.723334 4.488189 -0.723334
+END
+TURNOUT HO "Kato Unitrack Straight 246mm(incl w/ #4 Slip) 3-113C"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.685039 0.000000 90.000000
+ S 0 0 0.000000 0.000000 9.685039 0.000000
+ L 11579568 0.053333 0.000000 0.723334 9.685039 0.723334
+ L 11579568 0.053333 0.000000 -0.723334 9.685039 -0.723334
+END
+
+###############################################################################
+###############################################################################
+SUBCONTENTS Kato Unitrack HO-Scale #6 Turnouts
+TURNOUT HO "Kato Unitrack #6-L Powered Turnout 2-860"
+ P "Normal" 1
+ P "Reverse" 2 3
+ E 0.000000 0.000000 270.000000
+ E 9.803150 0.000000 90.000000
+ E 9.685039 1.181102 80.000000
+ S 0 0.000000 0.000000 0.000000 9.803150 0.000000
+ C 0 0.000000 -34.133858 0.000000 34.133858 170.000000 10.000000
+ S 0 0.000000 5.927282 0.518570 9.803150 1.181102
+ L 11579568 0.053333 0.000000 -0.723334 9.803150 -0.723334
+ A 11579568 0.053333 -33.410524 0.000000 34.133858 170.000000 10.000000
+ L 11579568 0.053333 5.801677 1.230915 9.560039 1.903665
+ END
+TURNOUT HO "Kato Unitrack #6-R Powered Turnout 2-861"
+ P "Normal" 1
+ P "Reverse" 2 3
+ E 0.000000 0.000000 270.000000
+ E 9.803150 0.000000 90.000000
+ E 9.685039 -1.181102 100.000000
+ S 0 0.000000 0.000000 0.000000 9.803150 0.000000
+ C 0 0.000000 34.133858 0.000000 -34.133858 0.000000 10.000000
+ S 0 0.000000 5.927282 -0.518570 9.803150 -1.181102
+ L 11579568 0.053333 0.000000 0.723334 9.803150 0.723334
+ A 11579568 0.053333 33.410524 0.000000 -34.133858 0.000000 10.000000
+ L 11579568 0.053333 5.801677 -1.230915 9.560039 -1.903665
+ END
+TURNOUT HO "Kato Unitrack S97 (incl w/ #6 TO) "
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.818898 0.000000 90.000000
+ S 0 0 0.000000 0.000000 3.818898 0.000000
+ L 11579568 0.053333 0.000000 0.723334 3.818898 0.723334
+ L 11579568 0.053333 0.000000 -0.723334 3.818898 -0.723334
+ END
+TURNOUT HO "Kato Unitrack S94 (incl w/ #6 TO) "
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.700787 0.000000 90.000000
+ S 0 0 0.000000 0.000000 3.700787 0.000000
+ L 11579568 0.053333 0.000000 0.723334 3.700787 0.723334
+ L 11579568 0.053333 0.000000 -0.723334 3.700787 -0.723334
+ END
+TURNOUT HO "Kato Unitrack S149 (incl w/ #6 TO) "
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.866142 0.000000 90.000000
+ S 0 0 0.000000 0.000000 5.866142 0.000000
+ L 11579568 0.053333 0.000000 0.723334 5.866142 0.723334
+ L 11579568 0.053333 0.000000 -0.723334 5.866142 -0.723334
+ END
+TURNOUT HO "Kato Unitrack R867-10° (incl w/ #6 TO) "
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.927282 -0.518570 100.000000
+ C 0 0 34.134000 0.000000 -34.134000 0.000000 10.000000
+ A 11579568 0.053333 33.410666 0.000000 -34.134000 0.000000 10.000000
+ A 11579568 0.053333 34.857334 0.000000 -34.134000 0.000000 10.000000
+ END
+TURNOUT HO "Kato Unitrack #6-L Man Turnout 2-862"
+ P "Normal" 1
+ P "Reverse" 2 3
+ E 0.000000 0.000000 270.000000
+ E 9.803150 0.000000 90.000000
+ E 9.685039 1.181102 80.000000
+ S 0 0.000000 0.000000 0.000000 9.803150 0.000000
+ C 0 0.000000 -34.133858 0.000000 34.133858 170.000000 10.000000
+ S 0 0.000000 5.927282 0.518570 9.803150 1.181102
+ L 11579568 0.053333 0.000000 -0.723334 9.803150 -0.723334
+ A 11579568 0.053333 -33.410524 0.000000 34.133858 170.000000 10.000000
+ L 11579568 0.053333 5.801677 1.230915 9.560039 1.903665
+END
+TURNOUT HO "Kato Unitrack #6-R Man Turnout 2-863"
+ P "Normal" 1
+ P "Reverse" 2 3
+ E 0.000000 0.000000 270.000000
+ E 9.803150 0.000000 90.000000
+ E 9.685039 -1.181102 100.000000
+ S 0 0.000000 0.000000 0.000000 9.803150 0.000000
+ C 0 0.000000 34.133858 0.000000 -34.133858 0.000000 10.000000
+ S 0 0.000000 5.927282 -0.518570 9.803150 -1.181102
+ L 11579568 0.053333 0.000000 0.723334 9.803150 0.723334
+ A 11579568 0.053333 33.410524 0.000000 -34.133858 0.000000 10.000000
+ L 11579568 0.053333 5.801677 -1.230915 9.560039 -1.903665
+END
+TURNOUT HO "Kato Unitrack #6 Single Slip Turnout 3-114"
+ P "Normal" 1 2 0 3 4
+ P "Reverse" 1 5 6 7 4
+ E 0.000000 0.000000 270.000000
+ E 19.370079 0.000000 90.000000
+ E 0.000000 2.362205 270.000000
+ E 19.370079 2.362205 90.000000
+ S 0 0.000000 0.000000 0.000000 1.147461 0.000000
+ S 0 0.000000 1.147461 0.000000 19.370079 0.000000
+ S 0 0.000000 0.000000 2.362205 18.222618 2.362205
+ S 0 0.000000 18.222618 2.362205 19.370079 2.362205
+ C 0 0.000000 -31.269120 1.147502 31.269120 165.348561 14.651515
+ S 0 0.000000 9.056644 1.016803 10.313435 1.345402
+ C 0 0.000000 31.269120 18.222658 -28.906905 345.348561 14.651515
+ L 11579568 0.053333 -0.000002 -0.723334 19.370077 -0.723310
+ L 11579568 0.053333 0.000000 0.723334 1.147461 0.723336
+ L 11579568 0.053333 10.828227 0.723347 19.370079 0.723358
+ L 11579568 0.053333 -0.000002 1.638871 8.541850 1.638882
+ L 11579568 0.053333 0.000000 3.085539 19.370079 3.085541
+ L 11579568 0.053333 18.222616 1.638871 19.370077 1.638873
+ A 11579568 0.053333 30.545786 1.147502 31.269120 165.806421 14.193655
+ A 11579568 0.053333 30.545786 18.222658 -28.906905 345.806421 14.193655
+END
+
+###############################################################################
+###############################################################################
+SUBCONTENTS Kato Unitrack HO-Scale Misc Tracks
+TURNOUT HO "Kato Unitrack Feeder 9 3/4 246mm 2-151"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.685039 0.000000 90.000000
+ S 0 0 0.000000 0.000000 9.685039 0.000000
+ L 11579568 0.053333 0.000000 0.723334 9.685039 0.723334
+ L 11579568 0.053333 0.000000 -0.723334 9.685039 -0.723334
+END
+TURNOUT HO "Kato Unitrack Bumper 4 1/4 109mm 2-170"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ S 0 0 0.000000 0.000000 3.291339 0.000000
+ L 11579568 0.053333 0.000000 0.723334 4.291339 0.723334
+ L 11579568 0.053333 0.000000 -0.723334 4.291339 -0.723334
+ L 11579568 0.053333 4.291339 0.723334 4.291339 -0.723334
+END
+TURNOUT HO "Kato Unitrack Crossing 2 3/8 60mm 90° 2-401"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 2.362205 0.000000 90.000000
+ E 1.181025 1.181025 0.000000
+ E 1.181025 -1.181025 180.000000
+ S 0 0 0.000000 0.000000 2.362205 0.000000
+ S 0 0 1.181025 1.181025 1.181025 -1.181025
+ L 11579568 0.053333 0.000000 0.723334 0.457769 0.723334
+ L 11579568 0.053333 0.000000 -0.723334 0.457769 -0.723334
+ L 11579568 0.053333 1.904437 0.723334 2.362205 0.723334
+ L 11579568 0.053333 1.904437 -0.723334 2.362205 -0.723334
+ L 11579568 0.053333 0.457769 1.181025 0.457769 0.723334
+ L 11579568 0.053333 1.904437 1.181025 1.904437 0.723334
+ L 11579568 0.053333 0.457769 -0.723334 0.457769 -1.181025
+ L 11579568 0.053333 1.904437 -0.723334 1.904437 -1.181025
+END
+TURNOUT HO "Kato Unitrack RoadCrossing+Rerailer 4 7/8 123mm 2-142"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.842520 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.842520 0.000000
+ L 11579568 0.053333 0.000000 0.723334 4.842520 0.723334
+ L 11579568 0.053333 0.000000 -0.723334 4.842520 -0.723334
+ F 12632256 0.000000 4
+ 0.000000 0.723334 0
+ 0.500000 1.123334 0
+ 4.342520 1.123334 0
+ 4.842520 0.723334 0
+ F 12632256 0.000000 4
+ 0.000000 -0.723334 0
+ 0.500000 -1.123334 0
+ 4.342520 -1.123334 0
+ 4.842520 -0.723334 0
+END
+TURNOUT HO "Kato Unitrack Uncoupler Track 4 7/8 123mm 2-143"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.842520 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.842520 0.000000
+ L 11579568 0.053333 0.000000 0.723334 4.842520 0.723334
+ L 11579568 0.053333 0.000000 -0.723334 4.842520 -0.723334
+ L 0 0.53333 1.000000 0.000000 3.842520 0.000000
+END
+TURNOUT HO "Kato Unitrack 3-Lamp Automatic Signal 4 7/8 123mm 2-601"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.842520 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.842520 0.000000
+ L 11579568 0.053333 0.000000 0.723334 4.842520 0.723334
+ L 11579568 0.053333 0.000000 -0.723334 4.842520 -0.723334
+ F 12632256 0.000000 4
+ 1.929134 0.723334 0
+ 1.929134 1.707586 0
+ 2.913386 1.707586 0
+ 2.913386 0.723334 0
+ G 0 0.053333 0.200000 2.421260 1.215460 0
+END
diff --git a/app/lib/params/kato-n-DblTrk.xtp b/app/lib/params/kato-n-DblTrk.xtp
index 82d6562..ec6b0c6 100644
--- a/app/lib/params/kato-n-DblTrk.xtp
+++ b/app/lib/params/kato-n-DblTrk.xtp
@@ -206,7 +206,7 @@ TURNOUT N "Kato Unitrack Conc Tie Single Trk Straight 9.75 248mm 20-875"
SUBCONTENTS Kato Unitrack N-Scale Dbl Trk Plate Curved Track
-TURNOUT N "Kato Unitrack Dbl Trk Plate Curve 12.375/11R 315/282mm 45 20-112"
+TURNOUT N "Kato Unitrack Dbl Trk Plate Curve 12.375/11R 315/282mm 45° 20-112"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 0.000000 -1.299212 270.000000
@@ -219,7 +219,7 @@ TURNOUT N "Kato Unitrack Dbl Trk Plate Curve 12.375/11R 315/282mm 45 20-112"
END
SUBCONTENTS Kato Unitrack N-Scale Dbl Trk SupElev Curved Track
-TURNOUT N "Kato Unitrack Conc Tie Dbl Trk SupElev Curve 16.3/15R 414/381mm 45 20-181"
+TURNOUT N "Kato Unitrack Conc Tie Dbl Trk SupElev Curve 16.3/15R 414/381mm 45° 20-181"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 11.525283 -4.773929 135.000000
@@ -230,7 +230,7 @@ TURNOUT N "Kato Unitrack Conc Tie Dbl Trk SupElev Curve 16.3/15R 414/381mm 45
A 11579568 0.053333 16.744986 0.000000 -16.299212 0.000000 45.000000
A 11579568 0.053333 14.554226 0.000000 -16.299212 0.000000 45.000000
END
-TURNOUT N "Kato Unitrack Conc Tie Dbl Trk SupElev Easement Curve (R) Appr 16.3/15R 414/381mm 22.5 20-182 Right"
+TURNOUT N "Kato Unitrack Conc Tie Dbl Trk SupElev Easement Curve (R) Appr 16.3/15R 414/381mm 22.5° 20-182 Right"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 6.237438 -1.240704 112.500000
@@ -241,7 +241,7 @@ TURNOUT N "Kato Unitrack Conc Tie Dbl Trk SupElev Easement Curve (R) Appr 16.3/
A 11579568 0.053333 16.744986 0.000000 -16.299212 0.000000 22.500000
A 11579568 0.053333 14.554226 0.000000 -16.299212 0.000000 22.500000
END
-TURNOUT N "Kato Unitrack Conc Tie Dbl Trk SupElev Easement Curve (L) Appr 16.3/15R 414/381mm 22.5 20-182 Left"
+TURNOUT N "Kato Unitrack Conc Tie Dbl Trk SupElev Easement Curve (L) Appr 16.3/15R 414/381mm 22.5° 20-182 Left"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 6.237438 -1.240704 112.500000
@@ -252,7 +252,7 @@ TURNOUT N "Kato Unitrack Conc Tie Dbl Trk SupElev Easement Curve (L) Appr 16.3/
A 11579568 0.053333 16.744986 0.000000 -16.299212 0.000000 22.500000
A 11579568 0.053333 14.554226 0.000000 -16.299212 0.000000 22.500000
END
-TURNOUT N "Kato Unitrack Conc Tie Dbl Trk SupElev Curve 12.375/11R 315/282mm 45 20-183"
+TURNOUT N "Kato Unitrack Conc Tie Dbl Trk SupElev Curve 12.375/11R 315/282mm 45° 20-183"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 0.000000 -1.299212 270.000000
@@ -263,7 +263,7 @@ TURNOUT N "Kato Unitrack Conc Tie Dbl Trk SupElev Curve 12.375/11R 315/282mm 45
A 11579568 0.053333 12.847349 0.000000 -12.401575 0.000000 45.000000
A 11579568 0.053333 10.656588 0.000000 -12.401575 0.000000 45.000000
END
-TURNOUT N "Kato Unitrack Conc Tie Dbl Trk SupElev Easement Curve 12.375/11R 315/282mm 22.5 20-184 Right"
+TURNOUT N "Kato Unitrack Conc Tie Dbl Trk SupElev Easement Curve 12.375/11R 315/282mm 22.5° 20-184 Right"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 0.000000 -1.299212 270.000000
@@ -274,7 +274,7 @@ TURNOUT N "Kato Unitrack Conc Tie Dbl Trk SupElev Easement Curve 12.375/11R 315
A 11579568 0.053333 12.847349 0.000000 -12.401575 0.000000 22.500000
A 11579568 0.053333 10.656588 0.000000 -12.401575 0.000000 22.500000
END
-TURNOUT N "Kato Unitrack Conc Tie Dbl Trk SupElev Easement Curve 12.375/11R 315/282mm 22.5 20-184 Left"
+TURNOUT N "Kato Unitrack Conc Tie Dbl Trk SupElev Easement Curve 12.375/11R 315/282mm 22.5° 20-184 Left"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 0.000000 -1.299212 270.000000
@@ -285,7 +285,7 @@ TURNOUT N "Kato Unitrack Conc Tie Dbl Trk SupElev Easement Curve 12.375/11R 315
A 11579568 0.053333 12.847349 0.000000 -12.401575 0.000000 22.500000
A 11579568 0.053333 10.656588 0.000000 -12.401575 0.000000 22.500000
END
-TURNOUT N "Kato Unitrack Conc Tie Dbl Trk SupElev Curve 18.875/17.625R 480/447mm 45 20-185"
+TURNOUT N "Kato Unitrack Conc Tie Dbl Trk SupElev Curve 18.875/17.625R 480/447mm 45° 20-185"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 13.362648 -5.534990 135.000000
@@ -296,7 +296,7 @@ TURNOUT N "Kato Unitrack Conc Tie Dbl Trk SupElev Curve 18.875/17.625R 480/447m
A 11579568 0.053333 19.343412 0.000000 -18.897638 0.000000 45.000000
A 11579568 0.053333 17.152651 0.000000 -18.897638 0.000000 45.000000
END
-TURNOUT N "Kato Unitrack Conc Tie Dbl Trk SupElev Easement Curve (R) Appr 18.875/17.625R 480/447mm 22.5 20-186 Right"
+TURNOUT N "Kato Unitrack Conc Tie Dbl Trk SupElev Easement Curve (R) Appr 18.875/17.625R 480/447mm 22.5° 20-186 Right"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 7.231813 -1.438497 112.500000
@@ -307,7 +307,7 @@ TURNOUT N "Kato Unitrack Conc Tie Dbl Trk SupElev Easement Curve (R) Appr 18.87
A 11579568 0.053333 19.343412 0.000000 -18.897638 0.000000 22.500000
A 11579568 0.053333 17.152651 0.000000 -18.897638 0.000000 22.500000
END
-TURNOUT N "Kato Unitrack Conc Tie Dbl Trk SupElev Easement Curve (L) Appr 18.875/17.625R 480/447mm 22.5 20-186 Left"
+TURNOUT N "Kato Unitrack Conc Tie Dbl Trk SupElev Easement Curve (L) Appr 18.875/17.625R 480/447mm 22.5° 20-186 Left"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 7.231813 -1.438497 112.500000
@@ -320,7 +320,7 @@ TURNOUT N "Kato Unitrack Conc Tie Dbl Trk SupElev Easement Curve (L) Appr 18.87
END
SUBCONTENTS Kato Unitrack N-Scale Dbl Trk Curved Viaduct Track
-TURNOUT N "Kato Unitrack Dbl Trk Curve Viadut 16.3/15R 414/381mm 45 20-541"
+TURNOUT N "Kato Unitrack Dbl Trk Curve Viadut 16.3/15R 414/381mm 45° 20-541"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 11.525283 -4.773929 135.000000
@@ -333,7 +333,7 @@ TURNOUT N "Kato Unitrack Dbl Trk Curve Viadut 16.3/15R 414/381mm 45 20-541"
END
SUBCONTENTS Kato Unitrack N-Scale Dbl Viaduct Trk SupElev Curved Track
-TURNOUT N "Kato Unitrack Dbl Viaduct Trk Sup Elev Curve 16.3/15R 414/381mm 45 20-544"
+TURNOUT N "Kato Unitrack Dbl Viaduct Trk Sup Elev Curve 16.3/15R 414/381mm 45° 20-544"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 11.525283 -4.773929 135.000000
@@ -344,7 +344,7 @@ TURNOUT N "Kato Unitrack Dbl Viaduct Trk Sup Elev Curve 16.3/15R 414/381mm 45
A 11579568 0.053333 16.744986 0.000000 -16.299212 0.000000 45.000000
A 11579568 0.053333 14.554226 0.000000 -16.299212 0.000000 45.000000
END
-TURNOUT N "Kato Unitrack Dbl Viaduct Trk SupElev Easement Curve (R) Appr 16.3/15R 414/381mm 22.5 20-545 Right"
+TURNOUT N "Kato Unitrack Dbl Viaduct Trk SupElev Easement Curve (R) Appr 16.3/15R 414/381mm 22.5° 20-545 Right"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 6.237438 -1.240704 112.500000
@@ -355,7 +355,7 @@ TURNOUT N "Kato Unitrack Dbl Viaduct Trk SupElev Easement Curve (R) Appr 16.3/1
A 11579568 0.053333 16.744986 0.000000 -16.299212 0.000000 22.500000
A 11579568 0.053333 14.554226 0.000000 -16.299212 0.000000 22.500000
END
-TURNOUT N "Kato Unitrack Dbl Viaduct Trk SupElev Easement Curve (L) Appr 16.3/15R 414/381mm 22.5 20-545 Left"
+TURNOUT N "Kato Unitrack Dbl Viaduct Trk SupElev Easement Curve (L) Appr 16.3/15R 414/381mm 22.5° 20-545 Left"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 6.237438 -1.240704 112.500000
diff --git a/app/lib/params/kato-n.xtp b/app/lib/params/kato-n.xtp
index 3671f25..d0cd2c7 100644
--- a/app/lib/params/kato-n.xtp
+++ b/app/lib/params/kato-n.xtp
@@ -1,1639 +1,1639 @@
-CONTENTS Kato Unitrack N-Scale
-#
-#
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale Straight Track
-TURNOUT N "Kato Unitrack Straight 9.75 248mm 20-000"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.763779 0.000000 90.000000
- S 0 0 0.000000 0.000000 9.763779 0.000000
- L 11579568 0.053333 0.000000 0.492126 9.763779 0.492126
- L 11579568 0.053333 0.000000 -0.492126 9.763779 -0.492126
- END
-TURNOUT N "Kato Unitrack Straight 7 5/16 186mm 20-010"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.322834 0.000000 90.000000
- S 0 0 0.000000 0.000000 7.322834 0.000000
- L 11579568 0.053333 0.000000 0.492126 7.322834 0.492126
- L 11579568 0.053333 0.000000 -0.492126 7.322834 -0.492126
- END
-TURNOUT N "Kato Unitrack Straight 4 7/8 124mm 20-020"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.881889 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.881889 0.000000
- L 11579568 0.053333 0.000000 0.492126 4.881889 0.492126
- L 11579568 0.053333 0.000000 -0.492126 4.881889 -0.492126
- END
-TURNOUT N "Kato Unitrack Straight 2 1/2 64mm 20-030"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.519685 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.519685 0.000000
- L 11579568 0.053333 0.000000 0.492126 2.519685 0.492126
- L 11579568 0.053333 0.000000 -0.492126 2.519685 -0.492126
- END
-TURNOUT N "Kato Unitrack Straight 2 7/16 62mm 20-040"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.440944 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.440944 0.000000
- L 11579568 0.053333 0.000000 0.492126 2.440944 0.492126
- L 11579568 0.053333 0.000000 -0.492126 2.440944 -0.492126
- END
-TURNOUT N "Kato Unitrack Straight 1 3/4 45-5mm 20-091A"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.791339 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.791339 0.000000
- L 11579568 0.053333 0.000000 0.492126 1.791339 0.492126
- L 11579568 0.053333 0.000000 -0.492126 1.791339 -0.492126
- END
-TURNOUT N "Kato Unitrack Straight 1 1/8 29mm 20-091B"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.141732 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.141732 0.000000
- L 11579568 0.053333 0.000000 0.492126 1.141732 0.492126
- L 11579568 0.053333 0.000000 -0.492126 1.141732 -0.492126
- END
-TURNOUT N "Kato Unitrack Road Crossing 124mm 20-021"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.881889 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 4.881889 0.000000
- L 11579568 0.053333 0.000000 0.4921260 4.881889 0.4921260
- L 11579568 0.053333 0.000000 -0.4921260 4.881889 -0.4921260
- L 0 0.053333 0.500000 0.548560 4.375000 0.548560
- L 0 0.053333 4.375000 0.548560 4.375000 -0.576440
- L 0 0.053333 4.375000 -0.576440 0.500000 -0.576440
- L 0 0.053333 0.500000 -0.576440 0.500000 0.548560
- L 0 0.053333 1.466667 0.133560 1.000000 -0.013107
- L 0 0.053333 1.440000 -0.133107 1.000000 -0.026440
- L 0 0.053333 1.440000 0.120227 3.320000 0.120227
- L 0 0.053333 1.453333 -0.133107 3.306667 -0.119773
- L 0 0.053333 3.306667 0.120227 3.626667 0.000227
- L 0 0.053333 3.293333 -0.119773 3.600000 0.000227
- END
-TURNOUT N "Kato Unitrack Mag Uncoupler 64mm 20-032"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.519685 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 2.519685 0.000000
- L 11579568 0.053333 0.000000 0.4921260 2.519685 0.4921260
- L 11579568 0.053333 0.000000 -0.4921260 2.519685 -0.4921260
- L 0 0.053333 0.253333 0.133560 2.280000 0.133560
- L 0 0.053333 2.280000 0.133560 2.280000 -0.146440
- L 0 0.053333 2.280000 -0.146440 0.253333 -0.146440
- L 0 0.053333 0.253333 -0.146440 0.253333 0.133560
- END
-TURNOUT N "Kato Unitrack Feeder Track 62mm 20-041"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.440944 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.440944 0.000000
- L 11579568 0.053333 0.000000 0.492126 2.440944 0.492126
- L 11579568 0.053333 0.000000 -0.492126 2.440944 -0.492126
- L 0 0.026667 2.000000 -0.498874 2.000000 -0.698874
- L 0 0.026667 2.000000 -0.698874 2.100000 -0.798874
- L 0 0.026667 2.000000 -0.698874 1.900000 -0.798874
- L 16711680 0.026667 1.800000 -0.498874 1.800000 -0.698874
- L 16711680 0.026667 1.800000 -0.698874 1.900000 -0.798874
- L 16711680 0.026667 1.800000 -0.698874 1.700000 -0.798874
- END
-TURNOUT N "Kato Unitrack Snap Tk. Conv. Tk. 62mm 20-045"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.440944 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.440944 0.000000
- L 11579568 0.053333 0.000000 0.492126 2.440944 0.492126
- L 11579568 0.053333 0.000000 -0.492126 2.440944 -0.492126
- END
-TURNOUT N "Kato Unitrack Adjustable 20-050"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.070866 0.000000 90.000000
- X adjustable 3.070866 4.251968
- S 0 0 0.000000 0.000000 3.070866 0.000000
- L 11579568 0.053333 0.000000 0.492126 3.070866 0.492126
- L 11579568 0.053333 0.000000 -0.492126 3.070866 -0.492126
- END
-TURNOUT N "Kato Unitrack 3-Color Signal 4 7/8 124mm 20-605-1"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.881889 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.881889 0.000000
- L 11579568 0.053333 0.000000 0.492126 4.881889 0.492126
- L 11579568 0.053333 0.000000 -0.492126 4.881889 -0.492126
- F 11579568 0.000000 4
- 1.948819 0.492126 0
- 1.948819 0.992126 0
- 2.948819 0.992126 0
- 2.948819 0.492126 0
- G 0 0.053333 0.100000 2.448819 0.742126 0
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale Curved Track
-TURNOUT N "Kato Unitrack Curve 4.625R 117mm 45 20-176"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.257145 -1.349154 135.000000
- C 0 0 4.606299 0.000000 -4.606299 0.000000 45.000000
- A 11579568 0.053333 4.114173 0.000000 -4.606299 0.000000 45.000000
- A 11579568 0.053333 5.098425 0.000000 -4.606299 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack Curve 5.905R 150mm 45 20-174"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.175827 -1.729684 135.000000
- C 0 0 5.905512 0.000000 -5.905512 0.000000 45.000000
- A 11579568 0.053333 5.605512 0.000000 -5.905512 0.000000 45.000000
- A 11579568 0.053333 6.205512 0.000000 -5.905512 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack Curve 7.204R 183mm 45 20-172"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.094509 -2.110215 135.000000
- C 0 0 7.204724 0.000000 -7.204724 0.000000 45.000000
- A 11579568 0.053333 6.904724 0.000000 -7.204724 0.000000 45.000000
- A 11579568 0.053333 7.504724 0.000000 -7.204724 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack Curve 8.56R 216mm 45 20-170"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.013192 -2.490745 135.000000
- C 0 0 8.503937 0.000000 -8.503937 0.000000 45.000000
- A 11579568 0.053333 8.058163 0.000000 -8.503937 0.000000 45.000000
- A 11579568 0.053333 8.949711 0.000000 -8.503937 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack Curve 8.56R 216mm 15 20-171"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.200981 -0.289765 105.000000
- C 0 0 8.503937 0.000000 -8.503937 0.000000 15.000000
- A 11579568 0.053333 8.058163 0.000000 -8.503937 0.000000 15.000000
- A 11579568 0.053333 8.949711 0.000000 -8.503937 0.000000 15.000000
- END
-TURNOUT N "Kato Unitrack Curve 9.75R 249mm 45 20-100"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.931874 -2.871276 135.000000
- C 0 0 9.803150 0.000000 -9.803150 0.000000 45.000000
- A 11579568 0.053333 9.357376 0.000000 -9.803150 0.000000 45.000000
- A 11579568 0.053333 10.248924 0.000000 -9.803150 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack Curve 9.75R 249mm 15 20-101"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.537242 -0.334034 105.000000
- C 0 0 9.803150 0.000000 -9.803150 0.000000 15.000000
- A 11579568 0.053333 9.357376 0.000000 -9.803150 0.000000 15.000000
- A 11579568 0.053333 10.248924 0.000000 -9.803150 0.000000 15.000000
- END
-TURNOUT N "Kato Unitrack Curve 11R 282mm 45 20-110"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.850556 -3.251807 135.000000
- C 0 0 11.102362 0.000000 -11.102362 0.000000 45.000000
- A 11579568 0.053333 10.656588 0.000000 -11.102362 0.000000 45.000000
- A 11579568 0.053333 11.548136 0.000000 -11.102362 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack Curve 11R 282mm 15 20-111"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.873503 -0.378304 105.000000
- C 0 0 11.102362 0.000000 -11.102362 0.000000 15.000000
- A 11579568 0.053333 10.656588 0.000000 -11.102362 0.000000 15.000000
- A 11579568 0.053333 11.548136 0.000000 -11.102362 0.000000 15.000000
- END
-TURNOUT N "Kato Unitrack Curve 12.375R 315mm 45 20-120"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.769238 -3.632337 135.000000
- C 0 0 12.401575 0.000000 -12.401575 0.000000 45.000000
- A 11579568 0.053333 11.955801 0.000000 -12.401575 0.000000 45.000000
- A 11579568 0.053333 12.847349 0.000000 -12.401575 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack Curve 12.375R 315mm 15 20-121"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.209764 -0.422573 105.000000
- C 0 0 12.401575 0.000000 -12.401575 0.000000 15.000000
- A 11579568 0.053333 11.955801 0.000000 -12.401575 0.000000 15.000000
- A 11579568 0.053333 12.847349 0.000000 -12.401575 0.000000 15.000000
- END
-TURNOUT N "Kato Unitrack Curve 13.75R 348mm 30 20-130"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.850394 -1.835557 120.000000
- C 0 0 13.700787 0.000000 -13.700787 0.000000 30.000000
- A 11579568 0.053333 13.255013 0.000000 -13.700787 0.000000 30.000000
- A 11579568 0.053333 14.146561 0.000000 -13.700787 0.000000 30.000000
- END
-TURNOUT N "Kato Unitrack Curve 13.75R 348mm 45 20-132"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.687920 -4.012868 135.000000
- C 0 0 13.700787 0.000000 -13.700787 0.000000 45.000000
- A 11579568 0.053333 13.255013 0.000000 -13.700787 0.000000 45.000000
- A 11579568 0.053333 14.146561 0.000000 -13.700787 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack Curve 15R 381mm 30 20-140"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.500000 -2.009619 120.000000
- C 0 0 15.000000 0.000000 -15.000000 0.000000 30.000000
- A 11579568 0.053333 14.554226 0.000000 -15.000000 0.000000 30.000000
- A 11579568 0.053333 15.445774 0.000000 -15.000000 0.000000 30.000000
- END
-TURNOUT N "Kato Unitrack Curve 19R 481mm 15 20-160"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.901258 -0.645263 105.000000
- C 0 0 18.937008 -0.000000 -18.937008 0.000000 15.000000
- A 11579568 0.053333 18.491234 -0.000000 -18.937008 0.000000 15.000000
- A 11579568 0.053333 19.382782 -0.000000 -18.937008 0.000000 15.000000
- END
-TURNOUT N "Kato Unitrack Curve 28.25R 718mm 15 20-150"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.316223 -0.963199 105.000000
- C 0 0 28.267717 0.003000 -28.267717 0.000000 15.000000
- A 11579568 0.053333 27.821943 0.000000 -28.267717 0.000000 15.000000
- A 11579568 0.053333 28.713491 0.000000 -28.267717 0.000000 15.000000
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale Bumper Track
-TURNOUT N "Kato Unitrack Bumper A 2 1/2 64mm 20-033"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- S 0 0.000000 0.000000 0.000000 2.440944 0.000000
- L 11579568 0.053333 0.000000 0.4921260 3.740157 0.4921260
- L 11579568 0.053333 0.000000 -0.4921260 3.740157 -0.4921260
- L 11579568 0.053333 3.740157 0.4921260 3.740157 -0.4921260
- L 10824234 0.053333 2.520000 0.320227 3.186667 0.320227
- L 10824234 0.053333 3.186667 0.320227 3.186667 -0.346440
- L 10824234 0.053333 3.186667 -0.346440 2.520000 -0.346440
- L 10824234 0.053333 2.520000 -0.346440 2.520000 0.320227
- L 0 0.053333 2.720000 0.080227 2.866667 0.080227
- L 0 0.053333 2.866667 0.080227 2.866667 -0.106440
- L 0 0.053333 2.866667 -0.106440 2.720000 -0.106440
- L 0 0.053333 2.720000 -0.106440 2.720000 0.080227
- END
-TURNOUT N "Kato Unitrack Bumper B 2 1/2 64mm 20-034"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- S 0 0.000000 0.000000 0.000000 2.440944 0.000000
- L 11579568 0.053333 0.000000 0.4921260 3.740157 0.4921260
- L 11579568 0.053333 0.000000 -0.4921260 3.740157 -0.4921260
- L 11579568 0.053333 3.740157 0.4921260 3.740157 -0.4921260
- L 0 0.053333 2.720000 0.080227 2.866667 0.080227
- L 0 0.053333 2.866667 0.080227 2.866667 -0.106440
- L 0 0.053333 2.866667 -0.106440 2.720000 -0.106440
- L 0 0.053333 2.720000 -0.106440 2.720000 0.080227
- L 9127187 0.053333 2.520000 0.306893 3.226667 0.306893
- L 9127187 0.053333 3.226667 -0.333107 2.520000 -0.333107
- L 9127187 0.053333 2.520000 -0.333107 2.520000 0.306893
- L 11579568 0.053333 2.573333 0.253560 3.186667 0.253560
- L 11579568 0.053333 3.186667 0.253560 3.186667 -0.293107
- L 11579568 0.053333 3.186667 -0.293107 2.573333 -0.293107
- L 11579568 0.053333 2.573333 -0.293107 2.573333 0.253560
- END
-TURNOUT N "Kato Unitrack Bumper C 2 20-035"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- S 0 0.000000 0.000000 0.000000 1.338583 0.000000
- L 11579568 0.053333 0.000000 0.4921260 1.968504 0.4921260
- L 11579568 0.053333 0.000000 -0.4921260 1.968504 -0.4921260
- L 11579568 0.053333 1.968504 0.4921260 1.968504 -0.4921260
- L 0 0.053333 1.026667 0.080227 1.200000 0.080227
- L 0 0.053333 1.200000 0.080227 1.200000 -0.093107
- L 0 0.053333 1.200000 -0.093107 1.026667 -0.093107
- L 0 0.053333 1.026667 -0.093107 1.026667 0.080227
- L 0 0.053333 0.800000 0.080227 0.800000 -0.093107
- L 0 0.040000 0.826667 -0.066440 1.146667 -0.453107
- L 0 0.040000 0.826667 0.066893 1.160000 0.440227
- L 0 0.040000 0.826667 -0.093107 0.573333 -0.453107
- L 0 0.040000 0.840000 0.080227 0.586667 0.440227
- L 0 0.053333 0.746667 -0.106440 0.746667 0.106893
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale Turnouts
-TURNOUT N "Kato Unitrack Turnout 150-R 20-240"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 4.881889 0.000000 90.000000
- E 4.175827 -1.729684 135.000000
- S 0 0 0.000000 0.000000 4.881889 0.000000
- C 0 0 5.905512 0.000000 -5.905512 0.000000 45.000000
- L 11579568 0.053333 0.000000 0.492126 4.881889 0.492126
- L 11579568 0.053333 3.380000 -0.492126 4.881889 -0.492126
- A 11579568 0.053333 5.413386 0.000000 -5.905512 0.000000 45.000000
- A 11579568 0.053333 6.397638 0.000000 -5.905512 32.500000 12.500000
- END
-TURNOUT N "Kato Unitrack Turnout 150-L 20-241"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 4.881889 0.000000 90.000000
- E 4.175827 1.729684 45.000000
- S 0 0 0.000000 0.000000 4.881889 0.000000
- C 0 0 5.905512 0.000000 5.905512 135.000000 45.000000
- L 11579568 0.053333 0.000000 -0.492126 4.881889 -0.492126
- L 11579568 0.053333 3.380000 0.492126 4.881889 0.492126
- A 11579568 0.053333 5.413386 0.000000 5.905512 135.000000 45.000000
- A 11579568 0.053333 6.397638 0.000000 5.905512 135.000000 12.500000
- END
-TURNOUT N "Kato Unitrack Turnout 4-L 20-220"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 4.960629 0.000000 90.000000
- E 4.881889 0.642713 75.000000
- S 0 0 0.000000 0.000000 4.960629 0.000000
- C 0 0 -18.862000 0.000000 18.862000 165.000000 15.000000
- L 11579568 0.053333 0.000000 -0.492126 4.960629 -0.492126
- A 11579568 0.053333 -18.369874 0.000000 18.862000 165.000000 15.000000
- END
-TURNOUT N "Kato Unitrack S60L {incl w/4} "
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.362204 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.362204 0.000000
- L 11579568 0.053333 0.000000 0.492126 2.362204 0.492126
- L 11579568 0.053333 0.000000 -0.492126 2.362204 -0.492126
- END
-TURNOUT N "Kato Unitrack Turnout 4-R 20-221"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 4.960629 0.000000 90.000000
- E 4.881889 -0.642713 105.000000
- S 0 0 0.000000 0.000000 4.960629 0.000000
- C 0 0 18.862000 0.000000 -18.862000 0.000000 15.000000
- L 11579568 0.053333 0.000000 0.492126 4.960629 0.492126
- A 11579568 0.053333 18.369874 0.000000 -18.862000 0.000000 15.000000
- END
-TURNOUT N "Kato Unitrack S60R {incl w/4} "
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.362204 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.362204 0.000000
- L 11579568 0.053333 0.000000 0.492126 2.362204 0.492126
- L 11579568 0.053333 0.000000 -0.492126 2.362204 -0.492126
- END
-TURNOUT N "Kato Unitrack Turnout 2-WYE 20-222"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 4.881889 0.642713 75.000000
- E 4.881889 -0.642713 105.000000
- C 0 0 -18.862000 0.000000 18.862000 165.000000 15.000000
- C 0 0 18.862000 0.000000 -18.862000 0.000000 15.000000
- A 11579568 0.053333 -18.416226 0.000000 18.862000 165.000000 15.000000
- A 11579568 0.053333 18.416226 0.000000 -18.862000 0.000000 15.000000
- L 11579568 0.053333 5.000000 0.200000 5.000000 -0.200000
- END
-TURNOUT N "Kato Unitrack Turnout 6-L 20-202"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 7.322834 0.000000 90.000000
- E 7.322834 0.964069 75.000000
- S 0 0 0.000000 0.000000 7.322834 0.000000
- C 0 0 -28.268000 0.000000 28.268000 165.0000000 15.000000
- L 11579568 0.053333 0.000000 -0.492126 7.322834 -0.492126
- A 11579568 0.053333 27.775874 0.000000 28.268000 165.000000 15.000000
- END
-TURNOUT N "Kato Unitrack Turnout 6-R 20-203"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 7.322834 0.000000 90.000000
- E 7.322834 -0.964069 105.000000
- S 0 0 0.000000 0.000000 7.322834 0.000000
- C 0 0 28.268000 0.000000 -28.268000 0.000000 15.000000
- L 11579568 0.053333 0.000000 0.492126 7.322834 0.492126
- A 11579568 0.053333 27.775874 0.000000 -28.268000 0.000000 15.000000
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale Crossings
-TURNOUT N "Kato Unitrack Double Crossover 20-210"
- P "Normal" 1 2 3 0 4 5 6
- P "Reverse" 1 7 8 9 6 0 4 10 11 12 3
- E 0.000000 0.000000 270.000000
- E 12.204724 0.000000 90.000000
- E 0.000000 -1.299212 270.000000
- E 12.204724 -1.299212 90.000000
- S 0 0 0.000000 0.000000 0.632000 0.000000
- S 0 0 0.632000 0.000000 11.555000 0.000000
- S 0 0 11.555000 0.000000 12.204724 0.000000
- S 0 0 0.000000 -1.299212 0.632000 -1.299212
- S 0 0 0.632000 -1.299212 11.555000 -1.299212
- S 0 0 11.555000 -1.299212 12.204724 -1.299212
- C 0 0 22.960000 0.631000 -22.960000 0.003000 12.880000
- S 0 0 5.750000 -0.578000 6.438000 -0.735000
- C 0 0 -22.960000 11.497000 21.661000 179.855000 12.874000
- C 0 0 -22.960000 0.691000 21.661000 167.271000 12.876000
- S 0 0 5.750000 -0.735000 6.438000 -0.578000
- C 0 0 22.960000 11.557000 -22.960000 347.117000 12.878000
- L 11579568 0.053333 0.000000 0.492126 12.204724 0.492126
- L 11579568 0.053333 0.000000 -0.492126 0.5 -0.492126
- L 11579568 0.053333 0.000000 -0.825878 0.5 -0.825878
- L 11579568 0.053333 0.5 -0.492126 0.5 -0.825878
- L 11579568 0.053333 12.204724 -0.492126 11.704724 -0.492126
- L 11579568 0.053333 12.204724 -0.825878 11.704724 -0.825878
- L 11579568 0.053333 11.704724 -0.492126 11.704724 -0.825878
- L 11579568 0.053333 0.000000 -1.772546 12.204724 -1.772546
- END
-TURNOUT N "Kato Unitrack Dbl Trk Single Crossover (left) 9.75 248mm 20-230"
- P "Normal" 1 2 0 3 4
- P "Reverse" 1 5 6 7 4
- E 0.000000 0.000000 270.000000
- E 9.763779 0.000000 90.000000
- E 0.000000 1.299212 270.000000
- E 9.763779 1.299212 90.000000
- S 0 0.000000 0.000000 0.000000 0.617287 0.000000
- S 0 0.000000 0.617287 0.000000 9.763779 0.000000
- S 0 0.000000 0.000000 1.299212 9.146492 1.299212
- S 0 0.000000 9.146492 1.299212 9.763779 1.299212
- C 0 0.000000 -14.226684 0.617306 14.226684 163.988842 16.011234
- S 0 0.000000 4.541371 0.551886 5.222408 0.747326
- C 0 0.000000 14.226684 9.146510 -12.927467 343.988842 16.011234
- L 11579568 0.053333 0.000000 -0.445774 9.763799 -0.445774
- L 11579568 0.053333 0.000000 1.744986 9.763799 1.744986
- END
-TURNOUT N "Kato Unitrack Dbl Trk Single Crossover (Right) 9.75 248mm 20-231"
- P "Normal" 1 2 0 3 4
- P "Reverse" 3 5 6 7 2
- E 0.000000 0.000000 270.000000
- E 9.763799 0.000000 90.000000
- E 0.000000 1.299212 270.000000
- E 9.763799 1.299212 90.000000
- S 0 0.000000 0.000000 0.000000 9.146512 0.000000
- S 0 0.000000 9.146512 0.000000 9.763799 0.000000
- S 0 0.000000 0.000000 1.299212 0.617287 1.299212
- S 0 0.000000 0.617287 1.299212 9.763799 1.299212
- C 0 0.000000 14.226749 0.617230 -12.927537 0.000076 16.011200
- S 0 0.000000 4.541380 0.747326 5.222419 0.551886
- C 0 0.000000 -14.226749 9.146530 14.226744 180.000076 16.011200
- L 11579568 0.053333 0.000000 -0.445774 9.763799 -0.445774
- L 11579568 0.053333 0.000000 1.744986 9.763799 1.744986
- END
-TURNOUT N "Kato Unitrack Crossing 15 X15R 20-301"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 7.322834 0.000000 90.000000
- E 0.000000 0.964069 285.000000
- E 7.322834 -0.964069 105.000000
- S 0 0 0.000000 0.000000 7.322834 0.000000
- S 0 0 0.000000 0.964069 7.322834 -0.964069
- L 11579568 0.053333 3.71 0.492126 7.322834 0.492126
- L 11579568 0.053333 0.000000 -0.492126 3.62 -0.492126
- L 11579568 0.053333 0.12 1.43 3.71 0.492126
- L 11579568 0.053333 7.20 -1.43 3.62 -0.492126
- END
-TURNOUT N "Kato Unitrack Crossing 15 X15L 20-300"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 7.322834 0.000000 90.000000
- E 0.000000 -0.964069 255.000000
- E 7.322834 0.964069 75.000000
- S 0 0 0.000000 0.000000 7.322834 0.000000
- S 0 0 0.000000 -0.964069 7.322834 0.964069
- L 11579568 0.053333 3.71 -0.492126 7.322834 -0.492126
- L 11579568 0.053333 0.000000 0.492126 3.62 0.492126
- L 11579568 0.053333 0.12 -1.43 3.71 -0.492126
- L 11579568 0.053333 7.20 1.43 3.62 0.492126
- END
-TURNOUT N "Kato Unitrack Crossing 90 w/S45.5 20-320"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 4.881889 0.000000 90.000000
- E 2.440944 2.440944 0.000000
- E 2.440944 -2.440944 180.000000
- S 0 0 0.000000 0.000000 4.881889 0.000000
- S 0 0 2.440944 2.440944 2.440944 -2.440944
- L 11579568 0.053333 0.000000 0.492126 1.967610 0.492126
- L 11579568 0.053333 0.000000 -0.492126 1.967610 -0.492126
- L 11579568 0.053333 2.914278 0.492126 4.881889 0.492126
- L 11579568 0.053333 2.914278 -0.492126 4.881889 -0.492126
- L 11579568 0.053333 1.967610 -2.440944 1.967610 -0.500000
- L 11579568 0.053333 2.914278 -2.440944 2.914278 -0.500000
- L 11579568 0.053333 1.967610 2.440944 1.967610 0.500000
- L 11579568 0.053333 2.914278 2.440944 2.914278 0.500000
- END
-TURNOUT N "Kato Unitrack Crossing 90 w/o S45.5 20-320"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 1.299212 0.000000 90.000000
- E 0.649606 0.649606 0.000000
- E 0.649606 -0.649606 180.000000
- S 0 0 0.000000 0.000000 1.299212 0.000000
- S 0 0 0.649606 0.649606 0.649606 -0.650000
- L 11579568 0.053333 0.000000 0.492126 0.176272 0.492126
- L 11579568 0.053333 0.000000 -0.492126 0.176272 -0.492126
- L 11579568 0.053333 1.122940 0.492126 1.299212 0.492126
- L 11579568 0.053333 1.122940 -0.492126 1.299212 -0.492126
- L 11579568 0.053333 0.176272 -0.649606 0.176272 -0.492126
- L 11579568 0.053333 1.122940 -0.649606 1.122940 -0.492126
- L 11579568 0.053333 0.176272 0.649606 0.176272 0.492126
- L 11579568 0.053333 1.122940 0.649606 1.122940 0.492126
- END
-TURNOUT N "Kato Unitrack S45.5 (incl w/20-320) "
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.791339 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.791339 0.000000
- L 11579568 0.053333 0.000000 0.492126 1.791339 0.492126
- L 11579568 0.053333 0.000000 -0.492126 1.791339 -0.492126
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale Single Track Viaducts - Straights
-TURNOUT N "Kato Unitrack Viaduct Straight 9.75 248mm 20-400"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.763779 0.000000 90.000000
- S 0 0 0.000000 0.000000 9.763779 0.000000
- L 0 0.053333 0.000000 0.47334 9.763799 0.47334
- L 0 0.053333 0.000000 -0.47334 9.763799 -0.47334
- END
-TURNOUT N "Kato Unitrack Viaduct Straight 7.312 186mm 20-410"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.322834 0.000000 90.000000
- S 0 0 0.000000 0.000000 7.322834 0.000000
- L 0 0.053333 0.000000 0.47334 7.322834 0.47334
- L 0 0.053333 0.000000 -0.47334 7.322834 -0.47334
- END
-TURNOUT N "Kato Unitrack Viaduct Straight 4.875 124mm 20-420"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.881889 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.881889 0.000000
- L 0 0.053333 0.000000 0.47334 4.881889 0.47334
- L 0 0.053333 0.000000 -0.47334 4.881889 -0.47334
- END
-TURNOUT N "Kato Unitrack Viaduct Straight(Platform) 4.875 124mm 20-421"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.881889 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.881889 0.000000
- L 0 0.053333 0.000000 0.47334 4.881889 0.47334
- L 0 0.053333 0.000000 -0.47334 4.881889 -0.47334
- L 0 0.040000 3.000000 -0.526440 3.000000 -0.826440
- L 0 0.040000 3.000000 -0.826440 1.900000 -0.826440
- L 0 0.040000 1.900000 -0.826440 1.900000 -0.526440
- END
-TURNOUT N "Kato Unitrack Viaduct Straight 2.4375 62mm 20-440"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.440944 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.440944 0.000000
- L 0 0.053333 0.000000 0.47334 2.440944 0.47334
- L 0 0.053333 0.000000 -0.47334 2.440944 -0.47334
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale Single Track Viaducts - Curves
-TURNOUT N "Kato Unitrack Viaduct Curve 9.75R 249mm 45 Curve 20-505"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.931874 -2.871276 135.000000
- C 0 0 9.803150 0.000000 -9.803150 0.000000 45.000000
- A 0 0.053333 9.329810 0.000000 -9.803150 0.000000 45.000000
- A 0 0.053333 10.276490 0.000000 -9.803150 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack Viaduct Curve 11R 282mm 45 20-510"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.850556 -3.251807 135.000000
- C 0 0 11.102362 0.000000 -11.102362 0.000000 45.000000
- A 0 0.053333 10.629022 0.000000 -11.102362 0.000000 45.000000
- A 0 0.053333 11.575702 0.000000 -11.102362 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack Viaduct Curve 12.375R 315mm 45 20-520"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.769238 -3.632337 135.000000
- C 0 0 12.401575 0.000000 -12.401575 0.000000 45.000000
- A 0 0.053333 11.928235 0.000000 -12.401575 0.000000 45.000000
- A 0 0.053333 12.874915 0.000000 -12.401575 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack Viaduct Curve 13.75R 348mm 45 20-530"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.687920 -4.012868 135.000000
- C 0 0 13.700787 0.000000 -13.700787 0.000000 45.000000
- A 0 0.053333 13.227447 0.000000 -13.700787 0.000000 45.000000
- A 0 0.053333 14.174127 0.000000 -13.700787 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack Viaduct Curve 13.75R 348mm 30 20-531"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.850394 -1.835557 120.000000
- C 0 0 13.700787 0.000000 -13.700787 0.000000 30.000000
- A 0 0.053333 13.227447 0.000000 -13.700787 0.000000 30.000000
- A 0 0.053333 14.174127 0.000000 -13.700787 0.000000 30.000000
- END
-TURNOUT N "Kato Unitrack Viaduct Curve 15R 381mm 30 20-540"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.500000 -2.009619 120.000000
- C 0 0 15.000000 0.000000 -15.000000 0.000000 30.000000
- A 0 0.053333 14.526660 0.000000 -15.000000 0.000000 30.000000
- A 0 0.053333 15.473340 0.000000 -15.000000 0.000000 30.000000
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale Double Track Viaducts - Straights
-TURNOUT N "Kato Unitrack Double Viaduct Straight 9.75 248mm 20-401"
- P "Normal" 1 0 2
- E 0.000000 0.649606 270.000000
- E 9.763779 0.649606 90.000000
- E 0.000000 -0.649606 270.000000
- E 9.763779 -0.649606 90.000000
- S 0 0 0.000000 0.649606 9.763779 0.649606
- S 0 0 0.000000 -0.649606 9.763779 -0.649606
- L 0 0.053333 0.000000 1.122946 9.763779 1.122946
- L 0 0.053333 0.000000 -1.122946 9.763779 -1.122946
- END
-TURNOUT N "Kato Unitrack Double Viaduct Straight 7 5/16 186mm 20-411"
- P "Normal" 1 0 2
- E 0.000000 0.649606 270.000000
- E 7.322834 0.649606 90.000000
- E 0.000000 -0.649606 270.000000
- E 7.322834 -0.649606 90.000000
- S 0 0 0.000000 0.649606 7.322834 0.649606
- S 0 0 0.000000 -0.649606 7.322834 -0.649606
- L 0 0.053333 0.000000 1.122946 7.322834 1.122946
- L 0 0.053333 0.000000 -1.122946 7.322834 -1.122946
- END
-TURNOUT N "Kato Unitrack Double Viaduct Straight 4.875 124mm 20-422"
- P "Normal" 1
- E 0.000000 0.649606 270.000000
- E 4.881889 0.649606 90.000000
- E 0.000000 -0.649606 270.000000
- E 4.881889 -0.649606 90.000000
- S 0 0 0.000000 0.649606 4.881889 0.649606
- S 0 0 0.000000 -0.649606 4.881889 -0.649606
- L 0 0.053333 0.000000 1.122946 4.881889 1.122946
- L 0 0.053333 0.000000 -1.122946 4.881889 -1.122946
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale CS Double Track Viaducts - Curves
-TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Viaduct Curve 16.3,15R 414/381mm 45 20-544"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 10.606602 -4.393398 135.000000
- E 0.000000 1.299213 270.000000
- E 11.525284 -3.474716 135.000000
- C 0 0 15.000000 0.000000 -15.000000 0.000000 45.000000
- C 0 0 16.299213 0.000000 -15.000000 0.000000 45.000000
- A 0 0.053333 14.526660 0.000000 -15.000000 0.000000 45.000000
- A 0 0.053333 16.772553 0.000000 -15.000000 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Viaduct Easement Curve (R) Appr 16.3/15R 414/381mm 22.5 20-545 Right"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 6.237438 -1.240704 112.500000
- E 0.000000 -1.299212 270.000000
- E 5.740251 -2.441019 112.500000
- C 0 0 16.299212 0.000000 -16.299212 0.000000 22.500000
- C 0 0 15.000000 0.000000 -16.299212 0.000000 22.500000
- A 11579568 0.053333 16.744986 0.000000 -16.299212 0.000000 22.500000
- A 11579568 0.053333 14.554226 0.000000 -16.299212 0.000000 22.500000
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Viaduct Easement Curve (L) Appr 16.3/15R 414/381mm 22.5 20-545 Left"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 6.237438 -1.240704 112.500000
- E 0.000000 -1.299212 270.000000
- E 5.740251 -2.441019 112.500000
- C 0 0 16.299212 0.000000 -16.299212 0.000000 22.500000
- C 0 0 15.000000 0.000000 -16.299212 0.000000 22.500000
- A 11579568 0.053333 16.744986 0.000000 -16.299212 0.000000 22.500000
- A 11579568 0.053333 14.554226 0.000000 -16.299212 0.000000 22.500000
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale GL CS Double Track - Straights
-TURNOUT N "Kato Unitrack CS Dbl Trk Straight 9.75 248mm 20-004"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 9.763799 0.000000 90.000000
- E 0.000000 -1.299212 270.000000
- E 9.763799 -1.299212 90.000000
- S 0 0 0.000000 0.000000 9.763799 0.000000
- S 0 0 0.000000 -1.299212 9.763799 -1.299212
- L 11579568 0.053333 0.000000 0.492126 9.763799 0.492126
- L 11579568 0.053333 0.000000 -1.744986 9.763799 -1.744986
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk Straight 7 5/16 186mm 20-012"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 7.322834 0.000000 90.000000
- E 0.000000 -1.299212 270.000000
- E 7.322834 -1.299212 90.000000
- S 0 0 0.000000 0.000000 7.322834 0.000000
- S 0 0 0.000000 -1.299212 7.322834 -1.299212
- L 11579568 0.053333 0.000000 0.492126 7.322834 0.492126
- L 11579568 0.053333 0.000000 -1.744986 7.322834 -1.744986
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk Straight 4 7/8 124mm 20-023"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 4.881889 0.000000 90.000000
- E 0.000000 -1.299212 270.000000
- E 4.881889 -1.299212 90.000000
- S 0 0 0.000000 0.000000 4.881889 0.000000
- S 0 0 0.000000 -1.299212 4.881889 -1.299212
- L 11579568 0.053333 0.000000 0.492126 4.881889 0.492126
- L 11579568 0.053333 0.000000 -1.744986 4.881889 -1.744986
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk Straight 2 7/16 62mm 20-042"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 2.440944 0.000000 90.000000
- E 0.000000 -1.299212 270.000000
- E 2.440944 -1.299212 90.000000
- S 0 0 0.000000 0.000000 2.440944 0.000000
- S 0 0 0.000000 -1.299212 2.440944 -1.299212
- L 11579568 0.053333 0.000000 0.492126 2.440944 0.492126
- L 11579568 0.053333 0.000000 -1.744986 2.440944 -1.744986
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk Feeder Track 62mm 20-043"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 2.440944 0.000000 90.000000
- E 0.000000 -1.299212 270.000000
- E 2.440944 -1.299212 90.000000
- S 0 0 0.000000 0.000000 2.440944 0.000000
- S 0 0 0.000000 -1.299212 2.440944 -1.299212
- L 11579568 0.053333 0.000000 0.492126 2.440944 0.492126
- L 11579568 0.053333 0.000000 -1.744986 2.440944 -1.744986
- L 0 0.026667 2.000000 -1.798086 2.000000 -1.998086
- L 0 0.026667 2.000000 -1.998086 2.100000 -2.098086
- L 0 0.026667 2.000000 -1.998086 1.900000 -2.098086
- L 16711680 0.026667 1.800000 -1.798086 1.800000 -1.998086
- L 16711680 0.026667 1.800000 -1.998086 1.900000 -2.098086
- L 16711680 0.026667 1.800000 -1.998086 1.700000 -2.098086
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale GL CS Double Track - Curves
-TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Curve 16.3/15R 414/381mm 45 20-181"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 11.525283 -4.773929 135.000000
- E 0.000000 -1.299212 270.000000
- E 10.606602 -5.692610 135.000000
- C 0 0 16.299212 0.000000 -16.299212 0.000000 45.000000
- C 0 0 15.000000 0.000000 -16.299212 0.000000 45.000000
- A 11579568 0.053333 16.744986 0.000000 -16.299212 0.000000 45.000000
- A 11579568 0.053333 14.554226 0.000000 -16.299212 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Easement Curve (R) Appr 16.3/15R 414/381mm 22.5 20-182 Right"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 6.237438 -1.240704 112.500000
- E 0.000000 -1.299212 270.000000
- E 5.740251 -2.441019 112.500000
- C 0 0 16.299212 0.000000 -16.299212 0.000000 22.500000
- C 0 0 15.000000 0.000000 -16.299212 0.000000 22.500000
- A 11579568 0.053333 16.744986 0.000000 -16.299212 0.000000 22.500000
- A 11579568 0.053333 14.554226 0.000000 -16.299212 0.000000 22.500000
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Easement Curve (L) Appr 16.3/15R 414/381mm 22.5 20-182 Left"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 6.237438 -1.240704 112.500000
- E 0.000000 -1.299212 270.000000
- E 5.740251 -2.441019 112.500000
- C 0 0 16.299212 0.000000 -16.299212 0.000000 22.500000
- C 0 0 15.000000 0.000000 -16.299212 0.000000 22.500000
- A 11579568 0.053333 16.744986 0.000000 -16.299212 0.000000 22.500000
- A 11579568 0.053333 14.554226 0.000000 -16.299212 0.000000 22.500000
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Curve 12.375/11R 315/282mm 45 20-183"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 0.000000 -1.299212 270.000000
- E 8.769238 -3.632337 135.000000
- E 7.850556 -4.551019 135.000000
- C 0 0 12.401575 0.000000 -12.401575 0.000000 45.000000
- C 0 0 11.102362 0.000000 -12.401575 0.000000 45.000000
- A 11579568 0.053333 12.847349 0.000000 -12.401575 0.000000 45.000000
- A 11579568 0.053333 10.656588 0.000000 -12.401575 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Easement Curve 12.375/11R 315/282mm 22.5 20-184 Right"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 0.000000 -1.299212 270.000000
- E 4.745877 -0.944014 112.500000
- E 4.248690 -2.144330 112.500000
- C 0 0 12.401575 0.000000 -12.401575 0.000000 22.500000
- C 0 0 11.102362 0.000000 -12.401575 0.000000 22.500000
- A 11579568 0.053333 12.847349 0.000000 -12.401575 0.000000 22.500000
- A 11579568 0.053333 10.656588 0.000000 -12.401575 0.000000 22.500000
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Easement Curve 12.375/11R 315/282mm 22.5 20-184 Left"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 0.000000 -1.299212 270.000000
- E 4.745877 -0.944014 112.500000
- E 4.248690 -2.144330 112.500000
- C 0 0 12.401575 0.000000 -12.401575 0.000000 22.500000
- C 0 0 11.102362 0.000000 -12.401575 0.000000 22.500000
- A 11579568 0.053333 12.847349 0.000000 -12.401575 0.000000 22.500000
- A 11579568 0.053333 10.656588 0.000000 -12.401575 0.000000 22.500000
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Curve 18.875/17.625R 480/447mm 45 20-185"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 13.362648 -5.534990 135.000000
- E 0.000000 -1.299212 270.000000
- E 12.443966 -6.453672 135.000000
- C 0 0 18.897638 0.000000 -18.897638 0.000000 45.000000
- C 0 0 17.598425 0.000000 -18.897638 0.000000 45.000000
- A 11579568 0.053333 19.343412 0.000000 -18.897638 0.000000 45.000000
- A 11579568 0.053333 17.152651 0.000000 -18.897638 0.000000 45.000000
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Easement Curve (R) Appr 18.875/17.625R 480/447mm 22.5 20-186 Right"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 7.231813 -1.438497 112.500000
- E 0.000000 -1.299212 270.000000
- E 6.734626 -2.638813 112.500000
- C 0 0 18.897638 0.000000 -18.897638 0.000000 22.500000
- C 0 0 17.598425 0.000000 -18.897638 0.000000 22.500000
- A 11579568 0.053333 19.343412 0.000000 -18.897638 0.000000 22.500000
- A 11579568 0.053333 17.152651 0.000000 -18.897638 0.000000 22.500000
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Easement Curve (L) Appr 18.875/17.625R 480/447mm 22.5 20-186 Left"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 7.231813 -1.438497 112.500000
- E 0.000000 -1.299212 270.000000
- E 6.734626 -2.638813 112.500000
- C 0 0 18.897638 0.000000 -18.897638 0.000000 22.500000
- C 0 0 17.598425 0.000000 -18.897638 0.000000 22.500000
- A 11579568 0.053333 19.343412 0.000000 -18.897638 0.000000 22.500000
- A 11579568 0.053333 17.152651 0.000000 -18.897638 0.000000 22.500000
- END
-
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale V-15 Double Track Widening Sections
-TURNOUT N "Kato Unitrack CS Dbl Trk Widening Section 310mm 20-051 Left"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 12.204724 0.000000 90.000000
- E 0.000000 1.299212 270.000000
- E 12.204724 2.598425 90.000000
- S 0 0 0.000000 0.000000 12.204724 0.000000
- S 0 0 0.000000 1.299212 0.980334 1.299212
- C 0 0 17.598425 0.980334 18.897637 169.500000 10.500000
- S 0 0 4.187392 1.593899 8.017332 2.303737
- C 0 0 17.598425 11.224390 -15.000001 349.500000 10.500000
- S 0 0 11.224390 2.598425 12.204724 2.598425
- L 11579568 0.053333 0.000000 -0.492126 12.204724 -0.492126
- L 11579568 0.053333 0.000000 1.744986 0.980334 1.744986
- A 11579568 0.053333 17.152651 0.980334 18.897637 169.500000 10.500000
- L 11579568 0.053333 4.187392 2.039673 8.017332 2.749511
- A 11579568 0.053333 18.044199 11.224390 -15.000001 349.500000 10.500000
- L 11579568 0.053333 11.224390 3.044199 12.204724 3.044199
- L 11579568 0.053333 11.704724 0.492126 12.204724 0.492126
- L 11579568 0.053333 11.704724 0.492126 11.704724 2.152651
- L 11579568 0.053333 11.704724 2.152651 12.204724 2.152651
- END
-TURNOUT N "Kato Unitrack CS Dbl Trk Widening Section 310mm 20-052 Right"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 12.204724 0.000000 90.000000
- E 0.000000 -1.299212 270.000000
- E 12.204724 -2.598425 90.000000
- S 0 0 0.000000 0.000000 12.204724 0.000000
- S 0 0 0.000000 -1.299212 0.980334 -1.299212
- C 0 0 17.598425 0.980334 -18.897637 0.000000 10.500000
- S 0 0 4.187392 -1.593899 8.017332 -2.303737
- C 0 0 17.598425 11.224390 15.000001 180.000000 10.500000
- S 0 0 11.224390 -2.598425 12.204724 -2.598425
- L 11579568 0.053333 0.000000 0.492126 12.204724 0.492126
- L 11579568 0.053333 0.000000 -1.744986 0.980334 -1.744986
- A 11579568 0.053333 17.152651 0.980334 -18.897637 0.000000 10.500000
- L 11579568 0.053333 4.187392 -2.039673 8.017332 -2.749511
- A 11579568 0.053333 18.044199 11.224390 15.000001 180.000000 10.500000
- L 11579568 0.053333 11.224390 -3.044199 12.204724 -3.044199
- L 11579568 0.053333 11.704724 -0.492126 12.204724 -0.492126
- L 11579568 0.053333 11.704724 -0.492126 11.704724 -2.152651
- L 11579568 0.053333 11.704724 -2.152651 12.204724 -2.152651
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale Conc Sleeper Straight Track
-TURNOUT N "Kato Unitrack CS Trk Straight 9.75 248mm 20-875"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.763779 0.000000 90.000000
- S 0 0 0.000000 0.000000 9.763779 0.000000
- L 11579568 0.053333 0.000000 0.492126 9.763779 0.492126
- L 11579568 0.053333 0.000000 -0.492126 9.763779 -0.492126
- END
-TURNOUT N "Kato Unitrack CS Trk Straight 4 7/8 124mm 20-XXX"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.881889 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.881889 0.000000
- L 11579568 0.053333 0.000000 0.492126 4.881889 0.492126
- L 11579568 0.053333 0.000000 -0.492126 4.881889 -0.492126
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale Bridges
-TURNOUT N "Kato Unitrack Dbl. Track Truss Bridge 9.75 248mm 20-435/6/7/8"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 9.763779 0.000000 90.000000
- E 0.000000 -1.299212 270.000000
- E 9.763779 -1.299212 90.000000
- S 0 0 0.000000 0.000000 9.763779 0.000000
- S 0 0 0.000000 -1.299212 9.763779 -1.299212
- L 0 0.053333 0.000000 0.47334 9.763779 0.47334
- L 0 0.053333 0.000000 -1.772552 9.763779 -1.772552
- L 0 0.053333 1.220474 -1.772552 1.220474 0.47334
- L 0 0.053333 1.220474 -1.772552 2.440948 0.47334
- L 0 0.053333 2.440948 -1.772552 1.220474 0.47334
- L 0 0.053333 2.440948 -1.772552 2.440948 0.47334
- L 0 0.053333 2.440948 -1.772552 3.661422 0.47334
- L 0 0.053333 3.661422 -1.772552 2.440948 0.47334
- L 0 0.053333 3.661422 -1.772552 3.661422 0.47334
- L 0 0.053333 3.661422 -1.772552 4.881896 0.47334
- L 0 0.053333 4.881896 -1.772552 3.661422 0.47334
- L 0 0.053333 4.881896 -1.772552 4.881896 0.47334
- L 0 0.053333 4.881896 -1.772552 6.102370 0.47334
- L 0 0.053333 6.102370 -1.772552 4.881896 0.47334
- L 0 0.053333 6.102370 -1.772552 6.102370 0.47334
- L 0 0.053333 6.102370 -1.772552 7.322844 0.47334
- L 0 0.053333 7.322844 -1.772552 6.102370 0.47334
- L 0 0.053333 7.322844 -1.772552 7.322844 0.47334
- L 0 0.053333 7.322844 -1.772552 8.543318 0.47334
- L 0 0.053333 8.543318 -1.772552 7.322844 0.47334
- L 0 0.053333 8.543318 -1.772552 8.543318 0.47334
- END
-TURNOUT N "Kato Unitrack Single Track Truss Bridge 9.75 248mm 20-430/1/2/3/4"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.763779 0.000000 90.000000
- S 0 0 0.000000 0.000000 9.763779 0.000000
- L 0 0.053333 0.000000 0.47334 9.763779 0.47334
- L 0 0.053333 0.000000 -0.47334 9.763779 -0.47334
- L 0 0.053333 1.220474 -0.47334 1.220474 0.47334
- L 0 0.053333 1.220474 -0.47334 2.440948 0.47334
- L 0 0.053333 2.440948 -0.47334 1.220474 0.47334
- L 0 0.053333 2.440948 -0.47334 2.440948 0.47334
- L 0 0.053333 2.440948 -0.47334 3.661422 0.47334
- L 0 0.053333 3.661422 -0.47334 2.440948 0.47334
- L 0 0.053333 3.661422 -0.47334 3.661422 0.47334
- L 0 0.053333 3.661422 -0.47334 4.881896 0.47334
- L 0 0.053333 4.881896 -0.47334 3.661422 0.47334
- L 0 0.053333 4.881896 -0.47334 4.881896 0.47334
- L 0 0.053333 4.881896 -0.47334 6.102370 0.47334
- L 0 0.053333 6.102370 -0.47334 4.881896 0.47334
- L 0 0.053333 6.102370 -0.47334 6.102370 0.47334
- L 0 0.053333 6.102370 -0.47334 7.322844 0.47334
- L 0 0.053333 7.322844 -0.47334 6.102370 0.47334
- L 0 0.053333 7.322844 -0.47334 7.322844 0.47334
- L 0 0.053333 7.322844 -0.47334 8.543318 0.47334
- L 0 0.053333 8.543318 -0.47334 7.322844 0.47334
- L 0 0.053333 8.543318 -0.47334 8.543318 0.47334
- END
-TURNOUT N "Kato Unitrack Single Track Plate Grider Bridge 7 5/16 186mm 20-450/1/2/3/4"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.322834 0.000000 90.000000
- S 0 0 0.000000 0.000000 7.322834 0.000000
- L 0 0.053333 0.000000 0.47334 7.322834 0.47334
- L 0 0.053333 0.000000 -0.47334 7.322834 -0.47334
- END
-TURNOUT N "Kato Unitrack Double Track Plate Grider Bridge 7 5/16 186mm 20-455/6/7/8"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 7.322834 0.000000 90.000000
- E 0.000000 -1.299212 270.000000
- E 7.322834 -1.299212 90.000000
- S 0 0 0.000000 0.000000 7.322834 0.000000
- S 0 0 0.000000 -1.299212 7.322834 -1.299212
- L 0 0.053333 0.000000 0.47334 7.322834 0.47334
- L 0 0.053333 0.000000 -0.649606 7.322834 -0.649606
- L 0 0.053333 0.000000 -1.772552 7.322834 -1.772552
- END
-TURNOUT N "Kato Unitrack Deck Plate Grider Bridge 4 7/8 124mm 20-460/1/2/3/4"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.881889 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.881889 0.000000
- L 0 0.053333 0.000000 0.47334 4.881889 0.47334
- L 0 0.053333 0.000000 -0.47334 4.881889 -0.47334
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale Structures
-STRUCTURE N "Kato Unitrack Pier 23-015"
- X pier 0.590551 "1" 0.984251 "2" 1.377952 "3" 1.771653 "4" 1.968503 "5"
- L 0 0.000000 -0.250000 -0.5 0.250000 -0.5
- L 0 0.000000 0.250000 -0.5 0.250000 0.5
- L 0 0.000000 0.250000 0.5 -0.250000 0.5
- L 0 0.000000 -0.250000 0.5 -0.250000 -0.5
- A 0 0.000000 0.250000 -0.000000 0.50000 270.000000 180.000000
- A 0 0.000000 0.250000 -0.000000 -0.50000 90.000000 180.000000
- END
-STRUCTURE N "Kato Unitrack Pier 23-016"
- X pier 1.968503 "5"
- L 7368826 0.040000 -0.75 -0.6 0.75 -0.6
- L 7368826 0.040000 0.75 -0.6 0.75 1.899212
- L 7368826 0.040000 0.75 1.899212 -0.75 1.899212
- L 7368826 0.040000 -0.75 1.899212 -0.75 -0.6
- END
-STRUCTURE N "Kato Unitrack Island Platform Type A 23-100"
- L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
- L 10824234 0.000000 0.000000 1.653543 9.763780 1.653543
- L 10824234 0.000000 9.763780 1.653543 9.763780 0.000000
- L 10824234 0.000000 9.763780 0.000000 0.000000 0.000000
- L 10824234 0.000000 0.000000 0.826772 9.763780 0.826772
- L 10824234 0.000000 0.787402 1.141732 5.157480 1.141732
- L 10824234 0.000000 5.157480 1.141732 5.157480 0.511811
- L 10824234 0.000000 5.157480 0.511811 0.787402 0.511811
- L 10824234 0.000000 0.787402 0.511811 0.787402 1.141732
- L 10824234 0.000000 2.952756 1.141732 2.952756 0.511811
- L 10824234 0.000000 0.078740 1.653543 0.078740 0.866142
- L 10824234 0.000000 0.157480 1.653543 0.157480 0.984252
- L 10824234 0.000000 0.236220 1.653543 0.236220 1.102362
- L 10824234 0.000000 0.314961 1.653543 0.314961 1.220472
- L 10824234 0.000000 0.393701 1.653543 0.393701 1.299213
- L 10824234 0.000000 0.472441 1.653543 0.472441 1.377953
- L 10824234 0.000000 0.551181 1.653543 0.551181 1.496063
- L 10824234 0.000000 0.629921 1.653543 0.629921 1.614173
- L 10824234 0.000000 9.685039 0.000000 9.685039 0.787402
- L 10824234 0.000000 9.606299 0.000000 9.606299 0.669291
- L 10824234 0.000000 9.527559 0.000000 9.527559 0.551181
- L 10824234 0.000000 9.448819 0.000000 9.448819 0.433071
- L 10824234 0.000000 9.370079 0.000000 9.370079 0.354331
- L 10824234 0.000000 9.291339 0.000000 9.291339 0.236220
- L 10824234 0.000000 9.212598 0.000000 9.212598 0.157480
- L 10824234 0.000000 9.133858 0.000000 9.133858 0.039370
- END
-STRUCTURE N "Kato Unitrack Island Platform Type B 23-101"
- L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
- L 10824234 0.000000 0.000000 1.653543 9.763780 1.653543
- L 10824234 0.000000 9.763780 1.653543 9.763780 0.000000
- L 10824234 0.000000 9.763780 0.000000 0.000000 0.000000
- L 10824234 0.000000 0.000000 0.826772 9.763780 0.826772
- L 10824234 0.000000 0.787402 1.141732 5.157480 1.141732
- L 10824234 0.000000 5.157480 1.141732 5.157480 0.511811
- L 10824234 0.000000 5.157480 0.511811 0.787402 0.511811
- L 10824234 0.000000 0.787402 0.511811 0.787402 1.141732
- L 10824234 0.000000 2.952756 1.141732 2.952756 0.511811
- L 10824234 0.000000 0.078740 1.653543 0.078740 0.866142
- L 10824234 0.000000 0.157480 1.653543 0.157480 0.984252
- L 10824234 0.000000 0.236220 1.653543 0.236220 1.102362
- L 10824234 0.000000 0.314961 1.653543 0.314961 1.220472
- L 10824234 0.000000 0.393701 1.653543 0.393701 1.299213
- L 10824234 0.000000 0.472441 1.653543 0.472441 1.377953
- L 10824234 0.000000 0.551181 1.653543 0.551181 1.496063
- L 10824234 0.000000 0.629921 1.653543 0.629921 1.614173
- L 10824234 0.000000 9.685039 0.000000 9.685039 0.787402
- L 10824234 0.000000 9.606299 0.000000 9.606299 0.669291
- L 10824234 0.000000 9.527559 0.000000 9.527559 0.551181
- L 10824234 0.000000 9.448819 0.000000 9.448819 0.433071
- L 10824234 0.000000 9.370079 0.000000 9.370079 0.354331
- L 10824234 0.000000 9.291339 0.000000 9.291339 0.236220
- L 10824234 0.000000 9.212598 0.000000 9.212598 0.157480
- L 10824234 0.000000 9.133858 0.000000 9.133858 0.039370
- END
-STRUCTURE N "Kato Unitrack Island Platform End, Type 1 23-102"
- L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
- L 10824234 0.000000 0.000000 0.000000 7.874016 0.000000
- L 10824234 0.000000 7.874016 0.000000 7.874016 1.653543
- L 10824234 0.000000 7.874016 1.653543 0.000000 1.653543
- L 10824234 0.000000 0.787402 1.653543 0.787402 0.000000
- L 10824234 0.000000 0.787402 0.629921 0.196850 0.629921
- L 10824234 0.000000 0.196850 0.629921 0.196850 0.984252
- L 10824234 0.000000 0.196850 0.984252 0.787402 0.984252
- L 10824234 0.000000 0.787402 0.984252 0.787402 0.629921
- L 10824234 0.000000 0.669291 0.629921 0.669291 0.984252
- L 10824234 0.000000 0.551181 0.629921 0.551181 0.984252
- L 10824234 0.000000 0.433071 0.629921 0.433071 0.984252
- L 10824234 0.000000 0.314961 0.629921 0.314961 0.984252
- L 0 0.026667 0.866142 1.614173 0.866142 0.039370
- A 0 0.026667 0.141951 5.196850 0.826772 0.000000 360.000000
- L 0 0.000000 3.031496 0.944882 4.606299 0.944882
- L 0 0.000000 4.606299 0.944882 4.606299 0.708661
- L 0 0.000000 4.606299 0.708661 3.031496 0.708661
- L 0 0.000000 3.031496 0.708661 3.031496 0.944882
- L 0 0.066667 3.543307 0.826772 4.094488 0.826772
- END
-STRUCTURE N "Kato Unitrack Island Platform End, Type 2 23-103"
- L 10824234 0.000000 7.874016 0.000000 7.874016 1.653543
- L 10824234 0.000000 7.874016 1.653543 0.000000 1.653543
- A 0 0.026667 0.141951 5.196850 0.826772 0.000000 360.000000
- L 0 0.000000 3.031496 0.944882 4.606299 0.944882
- L 0 0.000000 4.606299 0.944882 4.606299 0.708661
- L 0 0.000000 4.606299 0.708661 3.031496 0.708661
- L 0 0.000000 3.031496 0.708661 3.031496 0.944882
- L 0 0.066667 3.543307 0.826772 4.094488 0.826772
- A 10824234 0.000000 27.822226 7.874016 27.822226 180.000000 15.000000
- L 0 0.026667 0.866142 1.614173 0.866142 1.023622
- L 10824234 0.000000 0.196850 1.535433 0.196850 1.299213
- L 10824234 0.000000 0.669291 1.535433 0.669291 1.299213
- L 10824234 0.000000 0.551181 1.535433 0.551181 1.299213
- L 10824234 0.000000 0.433071 1.535433 0.433071 1.299213
- L 10824234 0.000000 0.314961 1.535433 0.314961 1.299213
- L 10824234 0.000000 0.196667 1.295000 0.670000 1.298333
- L 10824234 0.000000 0.193333 1.535000 0.670000 1.535000
- L 10824234 0.000000 0.670000 1.535000 0.670000 1.651667
- L 10824234 0.000000 0.670000 1.295833 0.670000 0.949167
- L 10824234 0.000000 0.673333 0.946667 0.000000 1.126667
- L 10824234 0.000000 0.006667 1.125000 0.000000 1.645000
- END
-STRUCTURE N "Kato Unitrack Island Platform End, Type 3 23-104"
- L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
- L 10824234 0.000000 0.000000 1.653543 7.874016 1.653543
- A 0 0.026667 0.141951 2.677166 0.826772 0.000000 360.000000
- L 0 0.000000 4.842520 0.944882 3.267717 0.944882
- L 0 0.000000 3.267717 0.944882 3.267717 0.708661
- L 0 0.000000 3.267717 0.708661 4.842520 0.708661
- L 0 0.000000 4.842520 0.708661 4.842520 0.944882
- L 0 0.066667 4.330709 0.826772 3.779528 0.826772
- A 10824234 0.000000 27.822226 0.000000 27.822226 165.000000 15.000000
- L 0 0.026667 7.007874 1.614173 7.007874 1.023622
- L 10824234 0.000000 7.677166 1.535433 7.677166 1.299213
- L 10824234 0.000000 7.204725 1.535433 7.204725 1.299213
- L 10824234 0.000000 7.322835 1.535433 7.322835 1.299213
- L 10824234 0.000000 7.440945 1.535433 7.440945 1.299213
- L 10824234 0.000000 7.559055 1.535433 7.559055 1.299213
- L 10824234 0.000000 7.677349 1.295000 7.204016 1.298333
- L 10824234 0.000000 7.680683 1.535000 7.204016 1.535000
- L 10824234 0.000000 7.204016 1.535000 7.204016 1.651667
- L 10824234 0.000000 7.204016 1.295833 7.204016 0.949167
- L 10824234 0.000000 7.200683 0.946667 7.874016 1.126667
- L 10824234 0.000000 7.867349 1.125000 7.874016 1.645000
- END
-STRUCTURE N "Kato Unitrack Island Platform Type D 23-106"
- L 10824234 0 0.000000 0.000000 0.000000 1.653543
- L 10824234 0 0.000000 1.653543 9.763780 1.653543
- L 10824234 0 9.763780 1.653543 9.763780 0.000000
- L 10824234 0 9.763780 0.000000 0.000000 0.000000
- END
-STRUCTURE N "Kato Unitrack One Sided Platform Type A 23-110"
- L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
- L 10824234 0.000000 0.000000 1.653543 9.763780 1.653543
- L 10824234 0.000000 9.763780 1.653543 9.763780 0.000000
- L 10824234 0.000000 9.763780 0.000000 0.000000 0.000000
- L 10824234 0.000000 5.157480 1.141732 5.157480 0.511811
- L 10824234 0.000000 0.078740 1.653543 0.078740 0.866142
- L 10824234 0.000000 0.157480 1.653543 0.157480 0.984252
- L 10824234 0.000000 0.236220 1.653543 0.236220 1.102362
- L 10824234 0.000000 0.314961 1.653543 0.314961 1.220472
- L 10824234 0.000000 0.393701 1.653543 0.393701 1.299213
- L 10824234 0.000000 0.472441 1.653543 0.472441 1.377953
- L 10824234 0.000000 0.551181 1.653543 0.551181 1.496063
- L 10824234 0.000000 0.629921 1.653543 0.629921 1.614173
- L 10824234 0.000000 9.685039 0.000000 9.685039 0.787402
- L 10824234 0.000000 9.606299 0.000000 9.606299 0.669291
- L 10824234 0.000000 9.527559 0.000000 9.527559 0.551181
- L 10824234 0.000000 9.448819 0.000000 9.448819 0.433071
- L 10824234 0.000000 9.370079 0.000000 9.370079 0.354331
- L 10824234 0.000000 9.291339 0.000000 9.291339 0.236220
- L 10824234 0.000000 9.212598 0.000000 9.212598 0.157480
- L 10824234 0.000000 9.133858 0.000000 9.133858 0.039370
- L 10824234 0.000000 1.181102 1.141732 8.582677 1.141732
- L 10824234 0.000000 8.582677 1.141732 8.582677 0.511811
- L 10824234 0.000000 8.582677 0.511811 1.181102 0.511811
- L 10824234 0.000000 1.181102 0.511811 1.181102 1.141732
- END
-STRUCTURE N "Kato Unitrack One Sided Platform Type B 23-111"
- L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
- L 10824234 0.000000 0.000000 1.653543 9.763780 1.653543
- L 10824234 0.000000 9.763780 1.653543 9.763780 0.000000
- L 10824234 0.000000 9.763780 0.000000 0.000000 0.000000
- L 10824234 0.000000 5.157480 1.141732 5.157480 0.511811
- L 10824234 0.000000 0.078740 1.653543 0.078740 0.866142
- L 10824234 0.000000 0.157480 1.653543 0.157480 0.984252
- L 10824234 0.000000 0.236220 1.653543 0.236220 1.102362
- L 10824234 0.000000 0.314961 1.653543 0.314961 1.220472
- L 10824234 0.000000 0.393701 1.653543 0.393701 1.299213
- L 10824234 0.000000 0.472441 1.653543 0.472441 1.377953
- L 10824234 0.000000 0.551181 1.653543 0.551181 1.496063
- L 10824234 0.000000 0.629921 1.653543 0.629921 1.614173
- L 10824234 0.000000 9.685039 0.000000 9.685039 0.787402
- L 10824234 0.000000 9.606299 0.000000 9.606299 0.669291
- L 10824234 0.000000 9.527559 0.000000 9.527559 0.551181
- L 10824234 0.000000 9.448819 0.000000 9.448819 0.433071
- L 10824234 0.000000 9.370079 0.000000 9.370079 0.354331
- L 10824234 0.000000 9.291339 0.000000 9.291339 0.236220
- L 10824234 0.000000 9.212598 0.000000 9.212598 0.157480
- L 10824234 0.000000 9.133858 0.000000 9.133858 0.039370
- L 10824234 0.000000 1.181102 1.141732 8.582677 1.141732
- L 10824234 0.000000 8.582677 1.141732 8.582677 0.511811
- L 10824234 0.000000 8.582677 0.511811 1.181102 0.511811
- L 10824234 0.000000 1.181102 0.511811 1.181102 1.141732
- END
-STRUCTURE N "Kato Unitrack One Sided Platform End Type 1 23-112"
- L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
- L 10824234 0.000000 0.000000 0.000000 7.874016 0.000000
- L 10824234 0.000000 7.874016 0.000000 7.874016 1.653543
- L 10824234 0.000000 7.874016 1.653543 0.000000 1.653543
- L 10824234 0.000000 0.787402 1.653543 0.787402 0.000000
- L 10824234 0.000000 0.787402 0.629921 0.196850 0.629921
- L 10824234 0.000000 0.196850 0.629921 0.196850 0.984252
- L 10824234 0.000000 0.196850 0.984252 0.787402 0.984252
- L 10824234 0.000000 0.787402 0.984252 0.787402 0.629921
- L 10824234 0.000000 0.669291 0.629921 0.669291 0.984252
- L 10824234 0.000000 0.551181 0.629921 0.551181 0.984252
- L 10824234 0.000000 0.433071 0.629921 0.433071 0.984252
- L 10824234 0.000000 0.314961 0.629921 0.314961 0.984252
- L 0 0.026667 0.866142 1.614173 0.866142 0.039370
- A 0 0.026667 0.141951 5.196850 0.826772 0.000000 360.000000
- L 0 0.000000 3.031496 0.944882 4.606299 0.944882
- L 0 0.000000 4.606299 0.944882 4.606299 0.708661
- L 0 0.000000 4.606299 0.708661 3.031496 0.708661
- L 0 0.000000 3.031496 0.708661 3.031496 0.944882
- L 0 0.066667 3.543307 0.826772 4.094488 0.826772
- L 0 0.026667 0.866142 1.614173 7.874016 1.614173
- END
-STRUCTURE N "Kato Unitrack One Sided Platform End Type 2 23-113"
- L 10824234 0.000000 7.874016 0.000000 7.874016 1.653543
- L 10824234 0.000000 7.874016 0.000000 0.000000 0.000000
- L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
- L 10824234 0.000000 0.000000 1.653543 7.874016 1.653543
- L 10824234 0.000000 7.086614 1.653543 7.086614 0.000000
- L 10824234 0.000000 7.086614 0.629921 7.677166 0.629921
- L 10824234 0.000000 7.677166 0.629921 7.677166 0.984252
- L 10824234 0.000000 7.677166 0.984252 7.086614 0.984252
- L 10824234 0.000000 7.086614 0.984252 7.086614 0.629921
- L 10824234 0.000000 7.204725 0.629921 7.204725 0.984252
- L 10824234 0.000000 7.322835 0.629921 7.322835 0.984252
- L 10824234 0.000000 7.440945 0.629921 7.440945 0.984252
- L 10824234 0.000000 7.559055 0.629921 7.559055 0.984252
- L 0 0.026667 7.007874 1.614173 7.007874 0.039370
- A 0 0.026667 0.141951 2.677166 0.826772 0.000000 360.000000
- L 0 0.000000 4.842520 0.944882 3.267717 0.944882
- L 0 0.000000 3.267717 0.944882 3.267717 0.708661
- L 0 0.000000 3.267717 0.708661 4.842520 0.708661
- L 0 0.000000 4.842520 0.708661 4.842520 0.944882
- L 0 0.066667 4.330709 0.826772 3.779528 0.826772
- L 0 0.026667 7.007874 1.614173 0.000000 1.614173
- END
-STRUCTURE N "Kato Unitrack Overhead Station 23-200"
- L 10824234 0.000000 0.000000 5.393701 13.307087 5.393701
- L 10824234 0.000000 12.952756 1.299213 3.188976 1.299213
- L 10824234 0.000000 3.188976 1.299213 3.188976 2.952756
- L 10824234 0.000000 3.188976 2.952756 12.952756 2.952756
- L 10824234 0.000000 12.952756 2.952756 12.952756 1.299213
- L 10824234 0.000000 12.165354 5.393701 12.165354 4.251969
- L 10824234 0.000000 1.102362 5.393701 1.102362 4.251969
- L 10824234 0.000000 7.874016 5.393701 7.874016 4.251969
- L 10824234 0.000000 5.511811 5.393701 5.511811 4.251969
- L 10824234 0.000000 7.913386 4.251969 7.913386 0.000000
- L 10824234 0.000000 7.913386 0.000000 2.716535 0.000000
- L 10824234 0.000000 2.716535 0.000000 2.716535 4.251969
- L 10824234 0.000000 7.795276 4.251969 7.795276 0.157480
- L 10824234 0.000000 7.795276 0.157480 4.330709 0.157480
- L 10824234 0.000000 4.330709 0.157480 4.330709 4.251969
- L 10824234 0.000000 4.330709 2.165354 7.795276 2.165354
- L 10824234 0.000000 13.307087 5.393701 13.307087 4.251969
- L 10824234 0.000000 0.000000 5.393701 0.000000 4.251969
- L 10824234 0.000000 7.952756 2.637795 11.574803 2.637795
- L 10824234 0.000000 11.574803 2.637795 11.574803 1.692913
- L 10824234 0.000000 11.574803 1.692913 7.952756 1.692913
- L 10824234 0.000000 10.866142 2.637795 10.866142 1.692913
- L 10824234 0.000000 10.118110 2.637795 10.118110 1.692913
- L 10824234 0.000000 0.000000 4.251969 4.330709 4.251969
- L 10824234 0.000000 4.330709 4.251969 7.795276 4.251969
- L 10824234 0.000000 7.874016 4.251969 13.267717 4.251969
- END
-STRUCTURE N "Kato Unitrack Station Entrance 23-210"
- L 10824234 0.000000 0.000000 0.000000 0.000000 2.874016
- L 10824234 0.000000 4.921260 0.000000 0.000000 0.000000
- L 10824234 0.000000 0.000000 1.417323 4.055118 1.417323
- L 10824234 0.000000 4.055118 2.874016 4.055118 0.000000
- L 10824234 0.000000 4.055118 1.574803 4.921260 1.574803
- L 10824234 0.000000 4.921260 1.574803 4.921260 0.000000
- L 10824234 0.000000 0.000000 2.874016 4.055118 2.874016
- L 10824234 0.000000 3.779528 0.000000 3.779528 1.299213
- L 10824234 0.000000 3.503937 0.000000 3.503937 1.181102
- L 10824234 0.000000 3.228346 0.000000 3.228346 1.062992
- L 10824234 0.000000 2.952756 0.000000 2.952756 0.944882
- L 10824234 0.000000 2.677165 0.000000 2.677165 0.826772
- L 10824234 0.000000 0.275591 2.874016 0.275591 1.535433
- L 10824234 0.000000 0.551181 2.874016 0.551181 1.692913
- L 10824234 0.000000 0.826772 2.874016 0.826772 1.811024
- L 10824234 0.000000 1.102362 2.874016 1.102362 1.929134
- L 10824234 0.000000 1.377953 2.874016 1.377953 2.047244
- L 10824234 0.000000 4.055118 0.039370 4.921260 0.039370
- L 10824234 0.000000 4.055118 1.535433 4.921260 1.535433
- L 10824234 0.000000 4.055118 0.275591 4.685039 0.275591
- L 10824234 0.000000 4.055118 0.511811 4.448819 0.511811
- L 10824234 0.000000 4.921260 1.299213 4.330709 1.299213
- L 10824234 0.000000 4.921260 1.062992 4.527559 1.062992
- END
-STRUCTURE N "Kato Unitrack Long Engine House 23-300"
- L 10824234 0.000000 0.000000 0.000000 0.000000 3.779528
- L 10824234 0.000000 0.000000 3.779528 7.362205 3.779528
- L 10824234 0.000000 7.362205 3.779528 7.362205 0.000000
- L 10824234 0.000000 7.362205 0.000000 0.000000 0.000000
- L 10824234 0.000000 0.275591 0.393701 0.787402 0.393701
- L 10824234 0.000000 0.787402 0.393701 0.787402 3.385827
- L 10824234 0.000000 0.787402 3.385827 0.275591 3.385827
- L 10824234 0.000000 0.275591 3.385827 0.275591 0.393701
- L 10824234 0.000000 1.062992 0.393701 1.574803 0.393701
- L 10824234 0.000000 1.574803 0.393701 1.574803 3.385827
- L 10824234 0.000000 1.574803 3.385827 1.062992 3.385827
- L 10824234 0.000000 1.062992 3.385827 1.062992 0.393701
- L 10824234 0.000000 1.850394 0.393701 2.362205 0.393701
- L 10824234 0.000000 2.362205 0.393701 2.362205 3.385827
- L 10824234 0.000000 2.362205 3.385827 1.850394 3.385827
- L 10824234 0.000000 1.850394 3.385827 1.850394 0.393701
- L 10824234 0.000000 2.637795 0.393701 3.149606 0.393701
- L 10824234 0.000000 3.149606 0.393701 3.149606 3.385827
- L 10824234 0.000000 3.149606 3.385827 2.637795 3.385827
- L 10824234 0.000000 2.637795 3.385827 2.637795 0.393701
- L 10824234 0.000000 3.425197 0.393701 3.937008 0.393701
- L 10824234 0.000000 3.937008 0.393701 3.937008 3.385827
- L 10824234 0.000000 3.937008 3.385827 3.425197 3.385827
- L 10824234 0.000000 3.425197 3.385827 3.425197 0.393701
- L 10824234 0.000000 4.212598 0.393701 4.724409 0.393701
- L 10824234 0.000000 4.724409 0.393701 4.724409 3.385827
- L 10824234 0.000000 4.724409 3.385827 4.212598 3.385827
- L 10824234 0.000000 4.212598 3.385827 4.212598 0.393701
- L 10824234 0.000000 5.000000 0.393701 5.511811 0.393701
- L 10824234 0.000000 5.511811 0.393701 5.511811 3.385827
- L 10824234 0.000000 5.511811 3.385827 5.000000 3.385827
- L 10824234 0.000000 5.000000 3.385827 5.000000 0.393701
- L 10824234 0.000000 5.787402 0.393701 6.299213 0.393701
- L 10824234 0.000000 6.299213 0.393701 6.299213 3.385827
- L 10824234 0.000000 6.299213 3.385827 5.787402 3.385827
- L 10824234 0.000000 5.787402 3.385827 5.787402 0.393701
- L 10824234 0.000000 6.574803 0.393701 7.086614 0.393701
- L 10824234 0.000000 7.086614 0.393701 7.086614 3.385827
- L 10824234 0.000000 7.086614 3.385827 6.574803 3.385827
- L 10824234 0.000000 6.574803 3.385827 6.574803 0.393701
- L 10824234 0.000000 0.275591 3.464567 0.472441 3.464567
- L 10824234 0.000000 0.472441 3.464567 0.472441 3.661417
- L 10824234 0.000000 0.472441 3.661417 0.275591 3.661417
- L 10824234 0.000000 0.275591 3.661417 0.275591 3.464567
- L 10824234 0.000000 0.275591 0.314961 0.472441 0.314961
- L 10824234 0.000000 0.472441 0.314961 0.472441 0.118110
- L 10824234 0.000000 0.472441 0.118110 0.275591 0.118110
- L 10824234 0.000000 0.275591 0.118110 0.275591 0.314961
- L 10824234 0.000000 7.086614 0.314961 6.889764 0.314961
- L 10824234 0.000000 6.889764 0.314961 6.889764 0.118110
- L 10824234 0.000000 6.889764 0.118110 7.086614 0.118110
- L 10824234 0.000000 7.086614 0.118110 7.086614 0.314961
- L 10824234 0.000000 7.086614 3.464567 6.889764 3.464567
- L 10824234 0.000000 6.889764 3.464567 6.889764 3.661417
- L 10824234 0.000000 6.889764 3.661417 7.086614 3.661417
- L 10824234 0.000000 7.086614 3.661417 7.086614 3.464567
- L 10824234 0.000000 3.582677 0.314961 3.779528 0.314961
- L 10824234 0.000000 3.779528 0.314961 3.779528 0.118110
- L 10824234 0.000000 3.779528 0.118110 3.582677 0.118110
- L 10824234 0.000000 3.582677 0.118110 3.582677 0.314961
- L 10824234 0.000000 3.582677 3.464567 3.779528 3.464567
- L 10824234 0.000000 3.779528 3.464567 3.779528 3.661417
- L 10824234 0.000000 3.779528 3.661417 3.582677 3.661417
- L 10824234 0.000000 3.582677 3.661417 3.582677 3.464567
- END
-STRUCTURE N "Kato Unitrack Industrial Building 23-310"
- L 10824234 0 0.000000 0.000000 0.000000 2.952756
- L 10824234 0 0.000000 2.952756 5.905512 2.952756
- L 10824234 0 5.905512 2.952756 5.905512 0.000000
- L 10824234 0 5.905512 0.000000 0.000000 0.000000
- END
-STRUCTURE N "Kato Unitrack Station Office 23-315a"
- L 10824234 0 0.000000 0.000000 0.000000 1.574803
- L 10824234 0 0.000000 1.574803 2.421260 1.574803
- L 10824234 0 2.421260 1.574803 2.421260 0.000000
- L 10824234 0 2.421260 0.000000 0.000000 0.000000
- END
-STRUCTURE N "Kato Unitrack Signal Tower 23-315b"
- L 10824234 0 0.000000 0.000000 0.000000 1.102362
- L 10824234 0 0.000000 1.102362 2.283465 1.102362
- L 10824234 0 2.283465 1.102362 2.283465 0.000000
- L 10824234 0 2.283465 0.000000 0.000000 0.000000
- END
-STRUCTURE N "Kato Unitrack Building 2x4 23-2x4"
- L 10824234 0 0.000000 0.000000 0.000000 2.000000
- L 10824234 0 0.000000 2.000000 4.000000 2.000000
- L 10824234 0 4.000000 2.000000 4.000000 0.000000
- L 10824234 0 4.000000 0.000000 0.000000 0.000000
- END
-STRUCTURE N "Kato Unitrack Building 4x5 23-4x5"
- L 10824234 0 0.000000 0.000000 0.000000 4.000000
- L 10824234 0 0.000000 4.000000 5.000000 4.000000
- L 10824234 0 5.000000 4.000000 5.000000 0.000000
- L 10824234 0 5.000000 0.000000 0.000000 0.000000
- END
-STRUCTURE N "Kato Unitrack Building 4x6 23-4x6"
- L 10824234 0 0.000000 0.000000 0.000000 4.000000
- L 10824234 0 0.000000 4.000000 6.000000 4.000000
- L 10824234 0 6.000000 4.000000 6.000000 0.000000
- L 10824234 0 6.000000 0.000000 0.000000 0.000000
- END
-##########################################################################
-##########################################################################
-
-SUBCONTENTS Kato Unitrack N-Scale Turntable and Accessories
-TURNOUT N "Kato Unitrack 3 Stall Round House 20-240"
- P "Normal" 1
- E -0.148334 1.695463 260.000000
- E 0.000000 0.000000 270.000000
- E -0.148334 -1.695463 280.000000
- S 0 0.000000 -0.148334 1.695463 7.063251 2.967059
- S 0 0.000000 0.000000 0.000000 7.322835 0.000000
- S 0 0.000000 -0.148334 -1.695463 7.063251 -2.967059
- F 12632256 0.000000 8
- -0.296668 2.536705 0
- 7.338100 4.582435 0
- 7.874016 1.543107 0
- 7.874016 -1.543107 0
- 7.338100 -4.582435 0
- -0.296668 -2.536705 0
- 0.000000 -0.854220 0
- 0.000000 0.854220 0
- G 0 0.000000 0.200000 0.750000 0.000000 0
- G 0 0.000000 0.200000 7.125000 0.000000 0
- G 0 0.000000 0.200000 0.590272 1.825699 0
- G 0 0.000000 0.200000 6.868421 2.932706 0
- G 0 0.000000 0.200000 0.590272 -1.825699 0
- G 0 0.000000 0.200000 6.868421 -2.932706 0
- L 0 0.031250 -0.296668 2.536705 7.338100 4.582435
- L 0 0.031250 0.000000 0.854220 7.874016 1.543107
- L 0 0.031250 0.000000 -0.854220 7.874016 -1.543107
- L 0 0.031250 -0.296668 -2.536705 7.338100 -4.582435
- L 0 0.031250 0.000000 0.854220 -0.296668 2.536705
- L 0 0.031250 0.000000 0.854220 0.000000 -0.854220
- L 0 0.031250 0.000000 -0.854220 -0.296668 -2.536705
- L 0 0.031250 7.874016 1.543107 7.338100 4.582435
- L 0 0.031250 7.874016 1.543107 7.874016 -1.543107
- L 0 0.031250 7.874016 -1.543107 7.338100 -4.582435
-END
-TURNOUT N "Kato Unitrack 139.5mm Straight Extension Line 20-285"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.492126 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 5.492126 0.000000
- L 0 0.031250 0.000000 0.372299 5.492126 0.854220
- L 0 0.031250 0.000000 -0.372299 5.492126 -0.854220
- L 0 0.031250 5.492126 0.854220 5.492126 -0.854220
-END
-TURNOUT N "Kato Unitrack Curve (L) Extension Line 20-286L"
- P "Normal" 1 2 3
- E 0.000000 0.000000 270.000000
- E 5.569398 -0.415987 100.000000
- S 0 0.000000 0.000000 0.000000 0.935511 0.000000
- C 0 0 26.000000 0.935511 -26.000000 0.000000 10.000000
- S 0 0.000000 5.450363 -0.394998 5.569398 -0.415987
- L 0 0.031250 0.000000 0.372299 5.492126 0.854220
- L 0 0.031250 0.000000 -0.372299 5.492126 -0.854220
- L 0 0.031250 5.642748 0.000000 5.492126 -0.854220
- L 0 0.031250 5.642748 0.000000 5.492126 0.854220
-END
-TURNOUT N "Kato Unitrack Curve (R) Extension Line 20-286R"
- P "Normal" 1 2 3
- E 0.000000 0.000000 270.000000
- E 5.569398 0.415987 80.000000
- S 0 0.000000 0.000000 0.000000 0.935511 0.000000
- C 0 0 -26.000000 0.935511 26.000000 170.000000 10.000000
- S 0 0.000000 5.450363 0.394998 5.569398 0.415987
- L 0 0.031250 0.000000 -0.372299 5.492126 -0.854220
- L 0 0.031250 0.000000 0.372299 5.492126 0.854220
- L 0 0.031250 5.642748 0.000000 5.492126 -0.854220
- L 0 0.031250 5.642748 0.000000 5.492126 0.854220
-END
-TURNOUT N "Kato Unitrack Curve 15R 381mm 10 381-10"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.604723 -0.227884 100.000000
- C 0 0 15.000000 0.000000 -15.000000 0.000000 10.000000
- A 11579568 0.053333 14.554226 0.000000 -15.000000 0.000000 10.000000
- A 11579568 0.053333 15.445774 0.000000 -15.000000 0.000000 10.000000
-END
-TURNOUT N "Kato Unitrack Track Turntable Section 20-283A"
- P "Normal" 1
- E 3.101756 0.546923 260.000000
- E 4.206758 0.741765 80.000000
- E 3.149606 0.000000 270.000000
- E 4.271654 0.000000 90.000000
- E 3.101756 -0.546923 280.000000
- E 4.206758 -0.741765 100.000000
- S 0 0.000000 3.101756 0.546923 4.206758 0.741765
- S 0 0.000000 3.149606 0.000000 4.271654 0.000000
- S 0 0.000000 3.101756 -0.546923 4.206758 -0.741765
- A 11579568 0.031250 3.149606 0.000000 0.000000 75.000000 30.00000
- A 11579568 0.031250 4.271654 0.000000 0.000000 75.000000 30.000000
- L 0 0.031250 3.042286 0.815178 4.126100 1.105585
- L 0 0.031250 3.042286 -0.815178 4.126100 -1.105585
-END
-TURNOUT N "Kato Unitrack 160mm Turn Table 20-283"
- P "1" 1
- P "2" 2
- P "3" 3
- P "4" 4
- P "5" 5
- P "6" 6
- P "7" 7
- P "8" 8
- P "9" 9
- P "10" 10
- P "11" 11
- P "12" 12
- P "13" 13
- P "14" 14
- P "15" 15
- P "16" 16
- P "17" 17
- P "18" 18
- E 0.000000 0.000000 0.000000
- E 0.000000 3.149606 0.000000
- E 0.546923 3.101757 10.000000
- E 1.077229 2.959662 20.000000
- E 1.574803 2.727639 30.000000
- E 2.024528 2.412738 40.000000
- E 2.412738 2.024528 50.000000
- E 2.727639 1.574803 60.000000
- E 2.959662 1.077229 70.000000
- E 3.101757 0.546923 80.000000
- E 3.149606 0.000000 90.000000
- E 3.101757 -0.546923 100.000000
- E 2.959662 -1.077229 110.000000
- E 2.727639 -1.574803 120.000000
- E 2.412738 -2.024528 130.000000
- E 2.024528 -2.412738 140.000000
- E 1.574803 -2.727639 150.000000
- E 1.077229 -2.959662 160.000000
- E 0.546923 -3.101757 170.000000
- E 0.000000 -3.149606 180.000000
- E -0.546923 -3.101757 190.000000
- E -1.077229 -2.959662 200.000000
- E -1.574803 -2.727639 210.000000
- E -2.024528 -2.412738 220.000000
- E -2.412738 -2.024528 230.000000
- E -2.727639 -1.574803 240.000000
- E -2.959662 -1.077229 250.000000
- E -3.101757 -0.546923 260.000000
- E -3.149606 0.000000 270.000000
- E -3.101757 0.546923 280.000000
- E -2.959662 1.077229 290.000000
- E -2.727639 1.574803 300.000000
- E -2.412738 2.024528 310.000000
- E -2.024528 2.412738 320.000000
- E -1.574803 2.727639 330.000000
- E -1.077229 2.959662 340.000000
- E -0.546923 3.101757 350.000000
- S 16777215 0.000000 0.000000 3.149606 0.000000 -3.149606
- S 16777215 0.000000 0.546923 3.101757 -0.546923 -3.101757
- S 16777215 0.000000 1.077229 2.959662 -1.077229 -2.959662
- S 16777215 0.000000 1.574803 2.727639 -1.574803 -2.727639
- S 16777215 0.000000 2.024528 2.412738 -2.024528 -2.412738
- S 16777215 0.000000 2.412738 2.024528 -2.412738 -2.024528
- S 16777215 0.000000 2.727639 1.574803 -2.727639 -1.574803
- S 16777215 0.000000 2.959662 1.077229 -2.959662 -1.077229
- S 16777215 0.000000 3.101757 0.546923 -3.101757 -0.546923
- S 16777215 0.000000 3.149606 0.000000 -3.149606 0.000000
- S 16777215 0.000000 3.101757 -0.546923 -3.101757 0.546923
- S 16777215 0.000000 2.959662 -1.077229 -2.959662 1.077229
- S 16777215 0.000000 2.727639 -1.574803 -2.727639 1.574803
- S 16777215 0.000000 2.412738 -2.024528 -2.412738 2.024528
- S 16777215 0.000000 2.024528 -2.412738 -2.024528 2.412738
- S 16777215 0.000000 1.574803 -2.727639 -1.574803 2.727639
- S 16777215 0.000000 1.077229 -2.959662 -1.077229 2.959662
- S 16777215 0.000000 0.546923 -3.101757 -0.546923 3.101757
- A 11579568 0.031250 3.149606 0.000000 0.000000 0.000000 360.000000
- A 11579568 0.031250 4.271654 0.000000 0.000000 0.000000 360.000000
- END
+CONTENTS Kato Unitrack N-Scale
+#
+#
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale Straight Track
+TURNOUT N "Kato Unitrack Straight 9.75 248mm 20-000"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.763779 0.000000 90.000000
+ S 0 0 0.000000 0.000000 9.763779 0.000000
+ L 11579568 0.053333 0.000000 0.492126 9.763779 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 9.763779 -0.492126
+ END
+TURNOUT N "Kato Unitrack Straight 7 5/16 186mm 20-010"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.322834 0.000000 90.000000
+ S 0 0 0.000000 0.000000 7.322834 0.000000
+ L 11579568 0.053333 0.000000 0.492126 7.322834 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 7.322834 -0.492126
+ END
+TURNOUT N "Kato Unitrack Straight 4 7/8 124mm 20-020"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.881889 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.881889 0.000000
+ L 11579568 0.053333 0.000000 0.492126 4.881889 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 4.881889 -0.492126
+ END
+TURNOUT N "Kato Unitrack Straight 2 1/2 64mm 20-030"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.519685 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.519685 0.000000
+ L 11579568 0.053333 0.000000 0.492126 2.519685 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 2.519685 -0.492126
+ END
+TURNOUT N "Kato Unitrack Straight 2 7/16 62mm 20-040"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.440944 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.440944 0.000000
+ L 11579568 0.053333 0.000000 0.492126 2.440944 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 2.440944 -0.492126
+ END
+TURNOUT N "Kato Unitrack Straight 1 3/4 45-5mm 20-091A"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.791339 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.791339 0.000000
+ L 11579568 0.053333 0.000000 0.492126 1.791339 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 1.791339 -0.492126
+ END
+TURNOUT N "Kato Unitrack Straight 1 1/8 29mm 20-091B"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.141732 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.141732 0.000000
+ L 11579568 0.053333 0.000000 0.492126 1.141732 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 1.141732 -0.492126
+ END
+TURNOUT N "Kato Unitrack Road Crossing 124mm 20-021"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.881889 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 4.881889 0.000000
+ L 11579568 0.053333 0.000000 0.4921260 4.881889 0.4921260
+ L 11579568 0.053333 0.000000 -0.4921260 4.881889 -0.4921260
+ L 0 0.053333 0.500000 0.548560 4.375000 0.548560
+ L 0 0.053333 4.375000 0.548560 4.375000 -0.576440
+ L 0 0.053333 4.375000 -0.576440 0.500000 -0.576440
+ L 0 0.053333 0.500000 -0.576440 0.500000 0.548560
+ L 0 0.053333 1.466667 0.133560 1.000000 -0.013107
+ L 0 0.053333 1.440000 -0.133107 1.000000 -0.026440
+ L 0 0.053333 1.440000 0.120227 3.320000 0.120227
+ L 0 0.053333 1.453333 -0.133107 3.306667 -0.119773
+ L 0 0.053333 3.306667 0.120227 3.626667 0.000227
+ L 0 0.053333 3.293333 -0.119773 3.600000 0.000227
+ END
+TURNOUT N "Kato Unitrack Mag Uncoupler 64mm 20-032"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.519685 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 2.519685 0.000000
+ L 11579568 0.053333 0.000000 0.4921260 2.519685 0.4921260
+ L 11579568 0.053333 0.000000 -0.4921260 2.519685 -0.4921260
+ L 0 0.053333 0.253333 0.133560 2.280000 0.133560
+ L 0 0.053333 2.280000 0.133560 2.280000 -0.146440
+ L 0 0.053333 2.280000 -0.146440 0.253333 -0.146440
+ L 0 0.053333 0.253333 -0.146440 0.253333 0.133560
+ END
+TURNOUT N "Kato Unitrack Feeder Track 62mm 20-041"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.440944 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.440944 0.000000
+ L 11579568 0.053333 0.000000 0.492126 2.440944 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 2.440944 -0.492126
+ L 0 0.026667 2.000000 -0.498874 2.000000 -0.698874
+ L 0 0.026667 2.000000 -0.698874 2.100000 -0.798874
+ L 0 0.026667 2.000000 -0.698874 1.900000 -0.798874
+ L 16711680 0.026667 1.800000 -0.498874 1.800000 -0.698874
+ L 16711680 0.026667 1.800000 -0.698874 1.900000 -0.798874
+ L 16711680 0.026667 1.800000 -0.698874 1.700000 -0.798874
+ END
+TURNOUT N "Kato Unitrack Snap Tk. Conv. Tk. 62mm 20-045"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.440944 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.440944 0.000000
+ L 11579568 0.053333 0.000000 0.492126 2.440944 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 2.440944 -0.492126
+ END
+TURNOUT N "Kato Unitrack Adjustable 20-050"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.070866 0.000000 90.000000
+ X adjustable 3.070866 4.251968
+ S 0 0 0.000000 0.000000 3.070866 0.000000
+ L 11579568 0.053333 0.000000 0.492126 3.070866 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 3.070866 -0.492126
+ END
+TURNOUT N "Kato Unitrack 3-Color Signal 4 7/8 124mm 20-605-1"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.881889 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.881889 0.000000
+ L 11579568 0.053333 0.000000 0.492126 4.881889 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 4.881889 -0.492126
+ F 11579568 0.000000 4
+ 1.948819 0.492126 0
+ 1.948819 0.992126 0
+ 2.948819 0.992126 0
+ 2.948819 0.492126 0
+ G 0 0.053333 0.100000 2.448819 0.742126 0
+ END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale Curved Track
+TURNOUT N "Kato Unitrack Curve 4.625R 117mm 45° 20-176"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.257145 -1.349154 135.000000
+ C 0 0 4.606299 0.000000 -4.606299 0.000000 45.000000
+ A 11579568 0.053333 4.114173 0.000000 -4.606299 0.000000 45.000000
+ A 11579568 0.053333 5.098425 0.000000 -4.606299 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack Curve 5.905R 150mm 45° 20-174"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.175827 -1.729684 135.000000
+ C 0 0 5.905512 0.000000 -5.905512 0.000000 45.000000
+ A 11579568 0.053333 5.605512 0.000000 -5.905512 0.000000 45.000000
+ A 11579568 0.053333 6.205512 0.000000 -5.905512 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack Curve 7.204R 183mm 45° 20-172"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.094509 -2.110215 135.000000
+ C 0 0 7.204724 0.000000 -7.204724 0.000000 45.000000
+ A 11579568 0.053333 6.904724 0.000000 -7.204724 0.000000 45.000000
+ A 11579568 0.053333 7.504724 0.000000 -7.204724 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack Curve 8.56R 216mm 45° 20-170"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.013192 -2.490745 135.000000
+ C 0 0 8.503937 0.000000 -8.503937 0.000000 45.000000
+ A 11579568 0.053333 8.058163 0.000000 -8.503937 0.000000 45.000000
+ A 11579568 0.053333 8.949711 0.000000 -8.503937 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack Curve 8.56R 216mm 15° 20-171"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.200981 -0.289765 105.000000
+ C 0 0 8.503937 0.000000 -8.503937 0.000000 15.000000
+ A 11579568 0.053333 8.058163 0.000000 -8.503937 0.000000 15.000000
+ A 11579568 0.053333 8.949711 0.000000 -8.503937 0.000000 15.000000
+ END
+TURNOUT N "Kato Unitrack Curve 9.75R 249mm 45° 20-100"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.931874 -2.871276 135.000000
+ C 0 0 9.803150 0.000000 -9.803150 0.000000 45.000000
+ A 11579568 0.053333 9.357376 0.000000 -9.803150 0.000000 45.000000
+ A 11579568 0.053333 10.248924 0.000000 -9.803150 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack Curve 9.75R 249mm 15° 20-101"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.537242 -0.334034 105.000000
+ C 0 0 9.803150 0.000000 -9.803150 0.000000 15.000000
+ A 11579568 0.053333 9.357376 0.000000 -9.803150 0.000000 15.000000
+ A 11579568 0.053333 10.248924 0.000000 -9.803150 0.000000 15.000000
+ END
+TURNOUT N "Kato Unitrack Curve 11R 282mm 45° 20-110"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.850556 -3.251807 135.000000
+ C 0 0 11.102362 0.000000 -11.102362 0.000000 45.000000
+ A 11579568 0.053333 10.656588 0.000000 -11.102362 0.000000 45.000000
+ A 11579568 0.053333 11.548136 0.000000 -11.102362 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack Curve 11R 282mm 15° 20-111"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.873503 -0.378304 105.000000
+ C 0 0 11.102362 0.000000 -11.102362 0.000000 15.000000
+ A 11579568 0.053333 10.656588 0.000000 -11.102362 0.000000 15.000000
+ A 11579568 0.053333 11.548136 0.000000 -11.102362 0.000000 15.000000
+ END
+TURNOUT N "Kato Unitrack Curve 12.375R 315mm 45° 20-120"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.769238 -3.632337 135.000000
+ C 0 0 12.401575 0.000000 -12.401575 0.000000 45.000000
+ A 11579568 0.053333 11.955801 0.000000 -12.401575 0.000000 45.000000
+ A 11579568 0.053333 12.847349 0.000000 -12.401575 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack Curve 12.375R 315mm 15° 20-121"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.209764 -0.422573 105.000000
+ C 0 0 12.401575 0.000000 -12.401575 0.000000 15.000000
+ A 11579568 0.053333 11.955801 0.000000 -12.401575 0.000000 15.000000
+ A 11579568 0.053333 12.847349 0.000000 -12.401575 0.000000 15.000000
+ END
+TURNOUT N "Kato Unitrack Curve 13.75R 348mm 30° 20-130"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.850394 -1.835557 120.000000
+ C 0 0 13.700787 0.000000 -13.700787 0.000000 30.000000
+ A 11579568 0.053333 13.255013 0.000000 -13.700787 0.000000 30.000000
+ A 11579568 0.053333 14.146561 0.000000 -13.700787 0.000000 30.000000
+ END
+TURNOUT N "Kato Unitrack Curve 13.75R 348mm 45° 20-132"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.687920 -4.012868 135.000000
+ C 0 0 13.700787 0.000000 -13.700787 0.000000 45.000000
+ A 11579568 0.053333 13.255013 0.000000 -13.700787 0.000000 45.000000
+ A 11579568 0.053333 14.146561 0.000000 -13.700787 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack Curve 15R 381mm 30° 20-140"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.500000 -2.009619 120.000000
+ C 0 0 15.000000 0.000000 -15.000000 0.000000 30.000000
+ A 11579568 0.053333 14.554226 0.000000 -15.000000 0.000000 30.000000
+ A 11579568 0.053333 15.445774 0.000000 -15.000000 0.000000 30.000000
+ END
+TURNOUT N "Kato Unitrack Curve 19R 481mm 15° 20-160"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.901258 -0.645263 105.000000
+ C 0 0 18.937008 -0.000000 -18.937008 0.000000 15.000000
+ A 11579568 0.053333 18.491234 -0.000000 -18.937008 0.000000 15.000000
+ A 11579568 0.053333 19.382782 -0.000000 -18.937008 0.000000 15.000000
+ END
+TURNOUT N "Kato Unitrack Curve 28.25R 718mm 15° 20-150"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.316223 -0.963199 105.000000
+ C 0 0 28.267717 0.003000 -28.267717 0.000000 15.000000
+ A 11579568 0.053333 27.821943 0.000000 -28.267717 0.000000 15.000000
+ A 11579568 0.053333 28.713491 0.000000 -28.267717 0.000000 15.000000
+ END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale Bumper Track
+TURNOUT N "Kato Unitrack Bumper A 2 1/2 64mm 20-033"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ S 0 0.000000 0.000000 0.000000 2.440944 0.000000
+ L 11579568 0.053333 0.000000 0.4921260 3.740157 0.4921260
+ L 11579568 0.053333 0.000000 -0.4921260 3.740157 -0.4921260
+ L 11579568 0.053333 3.740157 0.4921260 3.740157 -0.4921260
+ L 10824234 0.053333 2.520000 0.320227 3.186667 0.320227
+ L 10824234 0.053333 3.186667 0.320227 3.186667 -0.346440
+ L 10824234 0.053333 3.186667 -0.346440 2.520000 -0.346440
+ L 10824234 0.053333 2.520000 -0.346440 2.520000 0.320227
+ L 0 0.053333 2.720000 0.080227 2.866667 0.080227
+ L 0 0.053333 2.866667 0.080227 2.866667 -0.106440
+ L 0 0.053333 2.866667 -0.106440 2.720000 -0.106440
+ L 0 0.053333 2.720000 -0.106440 2.720000 0.080227
+ END
+TURNOUT N "Kato Unitrack Bumper B 2 1/2 64mm 20-034"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ S 0 0.000000 0.000000 0.000000 2.440944 0.000000
+ L 11579568 0.053333 0.000000 0.4921260 3.740157 0.4921260
+ L 11579568 0.053333 0.000000 -0.4921260 3.740157 -0.4921260
+ L 11579568 0.053333 3.740157 0.4921260 3.740157 -0.4921260
+ L 0 0.053333 2.720000 0.080227 2.866667 0.080227
+ L 0 0.053333 2.866667 0.080227 2.866667 -0.106440
+ L 0 0.053333 2.866667 -0.106440 2.720000 -0.106440
+ L 0 0.053333 2.720000 -0.106440 2.720000 0.080227
+ L 9127187 0.053333 2.520000 0.306893 3.226667 0.306893
+ L 9127187 0.053333 3.226667 -0.333107 2.520000 -0.333107
+ L 9127187 0.053333 2.520000 -0.333107 2.520000 0.306893
+ L 11579568 0.053333 2.573333 0.253560 3.186667 0.253560
+ L 11579568 0.053333 3.186667 0.253560 3.186667 -0.293107
+ L 11579568 0.053333 3.186667 -0.293107 2.573333 -0.293107
+ L 11579568 0.053333 2.573333 -0.293107 2.573333 0.253560
+ END
+TURNOUT N "Kato Unitrack Bumper C 2 20-035"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ S 0 0.000000 0.000000 0.000000 1.338583 0.000000
+ L 11579568 0.053333 0.000000 0.4921260 1.968504 0.4921260
+ L 11579568 0.053333 0.000000 -0.4921260 1.968504 -0.4921260
+ L 11579568 0.053333 1.968504 0.4921260 1.968504 -0.4921260
+ L 0 0.053333 1.026667 0.080227 1.200000 0.080227
+ L 0 0.053333 1.200000 0.080227 1.200000 -0.093107
+ L 0 0.053333 1.200000 -0.093107 1.026667 -0.093107
+ L 0 0.053333 1.026667 -0.093107 1.026667 0.080227
+ L 0 0.053333 0.800000 0.080227 0.800000 -0.093107
+ L 0 0.040000 0.826667 -0.066440 1.146667 -0.453107
+ L 0 0.040000 0.826667 0.066893 1.160000 0.440227
+ L 0 0.040000 0.826667 -0.093107 0.573333 -0.453107
+ L 0 0.040000 0.840000 0.080227 0.586667 0.440227
+ L 0 0.053333 0.746667 -0.106440 0.746667 0.106893
+ END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale Turnouts
+TURNOUT N "Kato Unitrack Turnout 150-R 20-240"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 4.881889 0.000000 90.000000
+ E 4.175827 -1.729684 135.000000
+ S 0 0 0.000000 0.000000 4.881889 0.000000
+ C 0 0 5.905512 0.000000 -5.905512 0.000000 45.000000
+ L 11579568 0.053333 0.000000 0.492126 4.881889 0.492126
+ L 11579568 0.053333 3.380000 -0.492126 4.881889 -0.492126
+ A 11579568 0.053333 5.413386 0.000000 -5.905512 0.000000 45.000000
+ A 11579568 0.053333 6.397638 0.000000 -5.905512 32.500000 12.500000
+ END
+TURNOUT N "Kato Unitrack Turnout 150-L 20-241"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 4.881889 0.000000 90.000000
+ E 4.175827 1.729684 45.000000
+ S 0 0 0.000000 0.000000 4.881889 0.000000
+ C 0 0 5.905512 0.000000 5.905512 135.000000 45.000000
+ L 11579568 0.053333 0.000000 -0.492126 4.881889 -0.492126
+ L 11579568 0.053333 3.380000 0.492126 4.881889 0.492126
+ A 11579568 0.053333 5.413386 0.000000 5.905512 135.000000 45.000000
+ A 11579568 0.053333 6.397638 0.000000 5.905512 135.000000 12.500000
+ END
+TURNOUT N "Kato Unitrack Turnout 4-L 20-220"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 4.960629 0.000000 90.000000
+ E 4.881889 0.642713 75.000000
+ S 0 0 0.000000 0.000000 4.960629 0.000000
+ C 0 0 -18.862000 0.000000 18.862000 165.000000 15.000000
+ L 11579568 0.053333 0.000000 -0.492126 4.960629 -0.492126
+ A 11579568 0.053333 -18.369874 0.000000 18.862000 165.000000 15.000000
+ END
+TURNOUT N "Kato Unitrack S60L {incl w/4} "
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.362204 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.362204 0.000000
+ L 11579568 0.053333 0.000000 0.492126 2.362204 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 2.362204 -0.492126
+ END
+TURNOUT N "Kato Unitrack Turnout 4-R 20-221"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 4.960629 0.000000 90.000000
+ E 4.881889 -0.642713 105.000000
+ S 0 0 0.000000 0.000000 4.960629 0.000000
+ C 0 0 18.862000 0.000000 -18.862000 0.000000 15.000000
+ L 11579568 0.053333 0.000000 0.492126 4.960629 0.492126
+ A 11579568 0.053333 18.369874 0.000000 -18.862000 0.000000 15.000000
+ END
+TURNOUT N "Kato Unitrack S60R {incl w/4} "
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.362204 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.362204 0.000000
+ L 11579568 0.053333 0.000000 0.492126 2.362204 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 2.362204 -0.492126
+ END
+TURNOUT N "Kato Unitrack Turnout 2-WYE 20-222"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 4.881889 0.642713 75.000000
+ E 4.881889 -0.642713 105.000000
+ C 0 0 -18.862000 0.000000 18.862000 165.000000 15.000000
+ C 0 0 18.862000 0.000000 -18.862000 0.000000 15.000000
+ A 11579568 0.053333 -18.416226 0.000000 18.862000 165.000000 15.000000
+ A 11579568 0.053333 18.416226 0.000000 -18.862000 0.000000 15.000000
+ L 11579568 0.053333 5.000000 0.200000 5.000000 -0.200000
+ END
+TURNOUT N "Kato Unitrack Turnout 6-L 20-202"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 7.322834 0.000000 90.000000
+ E 7.322834 0.964069 75.000000
+ S 0 0 0.000000 0.000000 7.322834 0.000000
+ C 0 0 -28.268000 0.000000 28.268000 165.0000000 15.000000
+ L 11579568 0.053333 0.000000 -0.492126 7.322834 -0.492126
+ A 11579568 0.053333 27.775874 0.000000 28.268000 165.000000 15.000000
+ END
+TURNOUT N "Kato Unitrack Turnout 6-R 20-203"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 7.322834 0.000000 90.000000
+ E 7.322834 -0.964069 105.000000
+ S 0 0 0.000000 0.000000 7.322834 0.000000
+ C 0 0 28.268000 0.000000 -28.268000 0.000000 15.000000
+ L 11579568 0.053333 0.000000 0.492126 7.322834 0.492126
+ A 11579568 0.053333 27.775874 0.000000 -28.268000 0.000000 15.000000
+ END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale Crossings
+TURNOUT N "Kato Unitrack Double Crossover 20-210"
+ P "Normal" 1 2 3 0 4 5 6
+ P "Reverse" 1 7 8 9 6 0 4 10 11 12 3
+ E 0.000000 0.000000 270.000000
+ E 12.204724 0.000000 90.000000
+ E 0.000000 -1.299212 270.000000
+ E 12.204724 -1.299212 90.000000
+ S 0 0 0.000000 0.000000 0.632000 0.000000
+ S 0 0 0.632000 0.000000 11.555000 0.000000
+ S 0 0 11.555000 0.000000 12.204724 0.000000
+ S 0 0 0.000000 -1.299212 0.632000 -1.299212
+ S 0 0 0.632000 -1.299212 11.555000 -1.299212
+ S 0 0 11.555000 -1.299212 12.204724 -1.299212
+ C 0 0 22.960000 0.631000 -22.960000 0.003000 12.880000
+ S 0 0 5.750000 -0.578000 6.438000 -0.735000
+ C 0 0 -22.960000 11.497000 21.661000 179.855000 12.874000
+ C 0 0 -22.960000 0.691000 21.661000 167.271000 12.876000
+ S 0 0 5.750000 -0.735000 6.438000 -0.578000
+ C 0 0 22.960000 11.557000 -22.960000 347.117000 12.878000
+ L 11579568 0.053333 0.000000 0.492126 12.204724 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 0.5 -0.492126
+ L 11579568 0.053333 0.000000 -0.825878 0.5 -0.825878
+ L 11579568 0.053333 0.5 -0.492126 0.5 -0.825878
+ L 11579568 0.053333 12.204724 -0.492126 11.704724 -0.492126
+ L 11579568 0.053333 12.204724 -0.825878 11.704724 -0.825878
+ L 11579568 0.053333 11.704724 -0.492126 11.704724 -0.825878
+ L 11579568 0.053333 0.000000 -1.772546 12.204724 -1.772546
+ END
+TURNOUT N "Kato Unitrack Dbl Trk Single Crossover (left) 9.75 248mm 20-230"
+ P "Normal" 1 2 0 3 4
+ P "Reverse" 1 5 6 7 4
+ E 0.000000 0.000000 270.000000
+ E 9.763779 0.000000 90.000000
+ E 0.000000 1.299212 270.000000
+ E 9.763779 1.299212 90.000000
+ S 0 0.000000 0.000000 0.000000 0.617287 0.000000
+ S 0 0.000000 0.617287 0.000000 9.763779 0.000000
+ S 0 0.000000 0.000000 1.299212 9.146492 1.299212
+ S 0 0.000000 9.146492 1.299212 9.763779 1.299212
+ C 0 0.000000 -14.226684 0.617306 14.226684 163.988842 16.011234
+ S 0 0.000000 4.541371 0.551886 5.222408 0.747326
+ C 0 0.000000 14.226684 9.146510 -12.927467 343.988842 16.011234
+ L 11579568 0.053333 0.000000 -0.445774 9.763799 -0.445774
+ L 11579568 0.053333 0.000000 1.744986 9.763799 1.744986
+ END
+TURNOUT N "Kato Unitrack Dbl Trk Single Crossover (Right) 9.75 248mm 20-231"
+ P "Normal" 1 2 0 3 4
+ P "Reverse" 3 5 6 7 2
+ E 0.000000 0.000000 270.000000
+ E 9.763799 0.000000 90.000000
+ E 0.000000 1.299212 270.000000
+ E 9.763799 1.299212 90.000000
+ S 0 0.000000 0.000000 0.000000 9.146512 0.000000
+ S 0 0.000000 9.146512 0.000000 9.763799 0.000000
+ S 0 0.000000 0.000000 1.299212 0.617287 1.299212
+ S 0 0.000000 0.617287 1.299212 9.763799 1.299212
+ C 0 0.000000 14.226749 0.617230 -12.927537 0.000076 16.011200
+ S 0 0.000000 4.541380 0.747326 5.222419 0.551886
+ C 0 0.000000 -14.226749 9.146530 14.226744 180.000076 16.011200
+ L 11579568 0.053333 0.000000 -0.445774 9.763799 -0.445774
+ L 11579568 0.053333 0.000000 1.744986 9.763799 1.744986
+ END
+TURNOUT N "Kato Unitrack Crossing 15° X15R 20-301"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 7.322834 0.000000 90.000000
+ E 0.000000 0.964069 285.000000
+ E 7.322834 -0.964069 105.000000
+ S 0 0 0.000000 0.000000 7.322834 0.000000
+ S 0 0 0.000000 0.964069 7.322834 -0.964069
+ L 11579568 0.053333 3.71 0.492126 7.322834 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 3.62 -0.492126
+ L 11579568 0.053333 0.12 1.43 3.71 0.492126
+ L 11579568 0.053333 7.20 -1.43 3.62 -0.492126
+ END
+TURNOUT N "Kato Unitrack Crossing 15° X15L 20-300"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 7.322834 0.000000 90.000000
+ E 0.000000 -0.964069 255.000000
+ E 7.322834 0.964069 75.000000
+ S 0 0 0.000000 0.000000 7.322834 0.000000
+ S 0 0 0.000000 -0.964069 7.322834 0.964069
+ L 11579568 0.053333 3.71 -0.492126 7.322834 -0.492126
+ L 11579568 0.053333 0.000000 0.492126 3.62 0.492126
+ L 11579568 0.053333 0.12 -1.43 3.71 -0.492126
+ L 11579568 0.053333 7.20 1.43 3.62 0.492126
+ END
+TURNOUT N "Kato Unitrack Crossing 90° w/S45.5 20-320"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 4.881889 0.000000 90.000000
+ E 2.440944 2.440944 0.000000
+ E 2.440944 -2.440944 180.000000
+ S 0 0 0.000000 0.000000 4.881889 0.000000
+ S 0 0 2.440944 2.440944 2.440944 -2.440944
+ L 11579568 0.053333 0.000000 0.492126 1.967610 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 1.967610 -0.492126
+ L 11579568 0.053333 2.914278 0.492126 4.881889 0.492126
+ L 11579568 0.053333 2.914278 -0.492126 4.881889 -0.492126
+ L 11579568 0.053333 1.967610 -2.440944 1.967610 -0.500000
+ L 11579568 0.053333 2.914278 -2.440944 2.914278 -0.500000
+ L 11579568 0.053333 1.967610 2.440944 1.967610 0.500000
+ L 11579568 0.053333 2.914278 2.440944 2.914278 0.500000
+ END
+TURNOUT N "Kato Unitrack Crossing 90° w/o S45.5 20-320"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 1.299212 0.000000 90.000000
+ E 0.649606 0.649606 0.000000
+ E 0.649606 -0.649606 180.000000
+ S 0 0 0.000000 0.000000 1.299212 0.000000
+ S 0 0 0.649606 0.649606 0.649606 -0.650000
+ L 11579568 0.053333 0.000000 0.492126 0.176272 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 0.176272 -0.492126
+ L 11579568 0.053333 1.122940 0.492126 1.299212 0.492126
+ L 11579568 0.053333 1.122940 -0.492126 1.299212 -0.492126
+ L 11579568 0.053333 0.176272 -0.649606 0.176272 -0.492126
+ L 11579568 0.053333 1.122940 -0.649606 1.122940 -0.492126
+ L 11579568 0.053333 0.176272 0.649606 0.176272 0.492126
+ L 11579568 0.053333 1.122940 0.649606 1.122940 0.492126
+ END
+TURNOUT N "Kato Unitrack S45.5 (incl w/20-320) "
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.791339 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.791339 0.000000
+ L 11579568 0.053333 0.000000 0.492126 1.791339 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 1.791339 -0.492126
+ END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale Single Track Viaducts - Straights
+TURNOUT N "Kato Unitrack Viaduct Straight 9.75 248mm 20-400"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.763779 0.000000 90.000000
+ S 0 0 0.000000 0.000000 9.763779 0.000000
+ L 0 0.053333 0.000000 0.47334 9.763799 0.47334
+ L 0 0.053333 0.000000 -0.47334 9.763799 -0.47334
+ END
+TURNOUT N "Kato Unitrack Viaduct Straight 7.312 186mm 20-410"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.322834 0.000000 90.000000
+ S 0 0 0.000000 0.000000 7.322834 0.000000
+ L 0 0.053333 0.000000 0.47334 7.322834 0.47334
+ L 0 0.053333 0.000000 -0.47334 7.322834 -0.47334
+ END
+TURNOUT N "Kato Unitrack Viaduct Straight 4.875 124mm 20-420"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.881889 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.881889 0.000000
+ L 0 0.053333 0.000000 0.47334 4.881889 0.47334
+ L 0 0.053333 0.000000 -0.47334 4.881889 -0.47334
+ END
+TURNOUT N "Kato Unitrack Viaduct Straight(Platform) 4.875 124mm 20-421"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.881889 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.881889 0.000000
+ L 0 0.053333 0.000000 0.47334 4.881889 0.47334
+ L 0 0.053333 0.000000 -0.47334 4.881889 -0.47334
+ L 0 0.040000 3.000000 -0.526440 3.000000 -0.826440
+ L 0 0.040000 3.000000 -0.826440 1.900000 -0.826440
+ L 0 0.040000 1.900000 -0.826440 1.900000 -0.526440
+ END
+TURNOUT N "Kato Unitrack Viaduct Straight 2.4375 62mm 20-440"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.440944 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.440944 0.000000
+ L 0 0.053333 0.000000 0.47334 2.440944 0.47334
+ L 0 0.053333 0.000000 -0.47334 2.440944 -0.47334
+ END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale Single Track Viaducts - Curves
+TURNOUT N "Kato Unitrack Viaduct Curve 9.75R 249mm 45° Curve 20-505"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.931874 -2.871276 135.000000
+ C 0 0 9.803150 0.000000 -9.803150 0.000000 45.000000
+ A 0 0.053333 9.329810 0.000000 -9.803150 0.000000 45.000000
+ A 0 0.053333 10.276490 0.000000 -9.803150 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack Viaduct Curve 11R 282mm 45° 20-510"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.850556 -3.251807 135.000000
+ C 0 0 11.102362 0.000000 -11.102362 0.000000 45.000000
+ A 0 0.053333 10.629022 0.000000 -11.102362 0.000000 45.000000
+ A 0 0.053333 11.575702 0.000000 -11.102362 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack Viaduct Curve 12.375R 315mm 45° 20-520"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.769238 -3.632337 135.000000
+ C 0 0 12.401575 0.000000 -12.401575 0.000000 45.000000
+ A 0 0.053333 11.928235 0.000000 -12.401575 0.000000 45.000000
+ A 0 0.053333 12.874915 0.000000 -12.401575 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack Viaduct Curve 13.75R 348mm 45° 20-530"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.687920 -4.012868 135.000000
+ C 0 0 13.700787 0.000000 -13.700787 0.000000 45.000000
+ A 0 0.053333 13.227447 0.000000 -13.700787 0.000000 45.000000
+ A 0 0.053333 14.174127 0.000000 -13.700787 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack Viaduct Curve 13.75R 348mm 30° 20-531"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.850394 -1.835557 120.000000
+ C 0 0 13.700787 0.000000 -13.700787 0.000000 30.000000
+ A 0 0.053333 13.227447 0.000000 -13.700787 0.000000 30.000000
+ A 0 0.053333 14.174127 0.000000 -13.700787 0.000000 30.000000
+ END
+TURNOUT N "Kato Unitrack Viaduct Curve 15R 381mm 30° 20-540"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.500000 -2.009619 120.000000
+ C 0 0 15.000000 0.000000 -15.000000 0.000000 30.000000
+ A 0 0.053333 14.526660 0.000000 -15.000000 0.000000 30.000000
+ A 0 0.053333 15.473340 0.000000 -15.000000 0.000000 30.000000
+ END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale Double Track Viaducts - Straights
+TURNOUT N "Kato Unitrack Double Viaduct Straight 9.75 248mm 20-401"
+ P "Normal" 1 0 2
+ E 0.000000 0.649606 270.000000
+ E 9.763779 0.649606 90.000000
+ E 0.000000 -0.649606 270.000000
+ E 9.763779 -0.649606 90.000000
+ S 0 0 0.000000 0.649606 9.763779 0.649606
+ S 0 0 0.000000 -0.649606 9.763779 -0.649606
+ L 0 0.053333 0.000000 1.122946 9.763779 1.122946
+ L 0 0.053333 0.000000 -1.122946 9.763779 -1.122946
+ END
+TURNOUT N "Kato Unitrack Double Viaduct Straight 7 5/16 186mm 20-411"
+ P "Normal" 1 0 2
+ E 0.000000 0.649606 270.000000
+ E 7.322834 0.649606 90.000000
+ E 0.000000 -0.649606 270.000000
+ E 7.322834 -0.649606 90.000000
+ S 0 0 0.000000 0.649606 7.322834 0.649606
+ S 0 0 0.000000 -0.649606 7.322834 -0.649606
+ L 0 0.053333 0.000000 1.122946 7.322834 1.122946
+ L 0 0.053333 0.000000 -1.122946 7.322834 -1.122946
+ END
+TURNOUT N "Kato Unitrack Double Viaduct Straight 4.875 124mm 20-422"
+ P "Normal" 1
+ E 0.000000 0.649606 270.000000
+ E 4.881889 0.649606 90.000000
+ E 0.000000 -0.649606 270.000000
+ E 4.881889 -0.649606 90.000000
+ S 0 0 0.000000 0.649606 4.881889 0.649606
+ S 0 0 0.000000 -0.649606 4.881889 -0.649606
+ L 0 0.053333 0.000000 1.122946 4.881889 1.122946
+ L 0 0.053333 0.000000 -1.122946 4.881889 -1.122946
+ END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale CS Double Track Viaducts - Curves
+TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Viaduct Curve 16.3,15R 414/381mm 45° 20-544"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 10.606602 -4.393398 135.000000
+ E 0.000000 1.299213 270.000000
+ E 11.525284 -3.474716 135.000000
+ C 0 0 15.000000 0.000000 -15.000000 0.000000 45.000000
+ C 0 0 16.299213 0.000000 -15.000000 0.000000 45.000000
+ A 0 0.053333 14.526660 0.000000 -15.000000 0.000000 45.000000
+ A 0 0.053333 16.772553 0.000000 -15.000000 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Viaduct Easement Curve (R) Appr 16.3/15R 414/381mm 22.5° 20-545 Right"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 6.237438 -1.240704 112.500000
+ E 0.000000 -1.299212 270.000000
+ E 5.740251 -2.441019 112.500000
+ C 0 0 16.299212 0.000000 -16.299212 0.000000 22.500000
+ C 0 0 15.000000 0.000000 -16.299212 0.000000 22.500000
+ A 11579568 0.053333 16.744986 0.000000 -16.299212 0.000000 22.500000
+ A 11579568 0.053333 14.554226 0.000000 -16.299212 0.000000 22.500000
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Viaduct Easement Curve (L) Appr 16.3/15R 414/381mm 22.5° 20-545 Left"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 6.237438 -1.240704 112.500000
+ E 0.000000 -1.299212 270.000000
+ E 5.740251 -2.441019 112.500000
+ C 0 0 16.299212 0.000000 -16.299212 0.000000 22.500000
+ C 0 0 15.000000 0.000000 -16.299212 0.000000 22.500000
+ A 11579568 0.053333 16.744986 0.000000 -16.299212 0.000000 22.500000
+ A 11579568 0.053333 14.554226 0.000000 -16.299212 0.000000 22.500000
+ END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale GL CS Double Track - Straights
+TURNOUT N "Kato Unitrack CS Dbl Trk Straight 9.75 248mm 20-004"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 9.763799 0.000000 90.000000
+ E 0.000000 -1.299212 270.000000
+ E 9.763799 -1.299212 90.000000
+ S 0 0 0.000000 0.000000 9.763799 0.000000
+ S 0 0 0.000000 -1.299212 9.763799 -1.299212
+ L 11579568 0.053333 0.000000 0.492126 9.763799 0.492126
+ L 11579568 0.053333 0.000000 -1.744986 9.763799 -1.744986
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk Straight 7 5/16 186mm 20-012"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 7.322834 0.000000 90.000000
+ E 0.000000 -1.299212 270.000000
+ E 7.322834 -1.299212 90.000000
+ S 0 0 0.000000 0.000000 7.322834 0.000000
+ S 0 0 0.000000 -1.299212 7.322834 -1.299212
+ L 11579568 0.053333 0.000000 0.492126 7.322834 0.492126
+ L 11579568 0.053333 0.000000 -1.744986 7.322834 -1.744986
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk Straight 4 7/8 124mm 20-023"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 4.881889 0.000000 90.000000
+ E 0.000000 -1.299212 270.000000
+ E 4.881889 -1.299212 90.000000
+ S 0 0 0.000000 0.000000 4.881889 0.000000
+ S 0 0 0.000000 -1.299212 4.881889 -1.299212
+ L 11579568 0.053333 0.000000 0.492126 4.881889 0.492126
+ L 11579568 0.053333 0.000000 -1.744986 4.881889 -1.744986
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk Straight 2 7/16 62mm 20-042"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 2.440944 0.000000 90.000000
+ E 0.000000 -1.299212 270.000000
+ E 2.440944 -1.299212 90.000000
+ S 0 0 0.000000 0.000000 2.440944 0.000000
+ S 0 0 0.000000 -1.299212 2.440944 -1.299212
+ L 11579568 0.053333 0.000000 0.492126 2.440944 0.492126
+ L 11579568 0.053333 0.000000 -1.744986 2.440944 -1.744986
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk Feeder Track 62mm 20-043"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 2.440944 0.000000 90.000000
+ E 0.000000 -1.299212 270.000000
+ E 2.440944 -1.299212 90.000000
+ S 0 0 0.000000 0.000000 2.440944 0.000000
+ S 0 0 0.000000 -1.299212 2.440944 -1.299212
+ L 11579568 0.053333 0.000000 0.492126 2.440944 0.492126
+ L 11579568 0.053333 0.000000 -1.744986 2.440944 -1.744986
+ L 0 0.026667 2.000000 -1.798086 2.000000 -1.998086
+ L 0 0.026667 2.000000 -1.998086 2.100000 -2.098086
+ L 0 0.026667 2.000000 -1.998086 1.900000 -2.098086
+ L 16711680 0.026667 1.800000 -1.798086 1.800000 -1.998086
+ L 16711680 0.026667 1.800000 -1.998086 1.900000 -2.098086
+ L 16711680 0.026667 1.800000 -1.998086 1.700000 -2.098086
+ END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale GL CS Double Track - Curves
+TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Curve 16.3/15R 414/381mm 45° 20-181"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 11.525283 -4.773929 135.000000
+ E 0.000000 -1.299212 270.000000
+ E 10.606602 -5.692610 135.000000
+ C 0 0 16.299212 0.000000 -16.299212 0.000000 45.000000
+ C 0 0 15.000000 0.000000 -16.299212 0.000000 45.000000
+ A 11579568 0.053333 16.744986 0.000000 -16.299212 0.000000 45.000000
+ A 11579568 0.053333 14.554226 0.000000 -16.299212 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Easement Curve (R) Appr 16.3/15R 414/381mm 22.5° 20-182 Right"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 6.237438 -1.240704 112.500000
+ E 0.000000 -1.299212 270.000000
+ E 5.740251 -2.441019 112.500000
+ C 0 0 16.299212 0.000000 -16.299212 0.000000 22.500000
+ C 0 0 15.000000 0.000000 -16.299212 0.000000 22.500000
+ A 11579568 0.053333 16.744986 0.000000 -16.299212 0.000000 22.500000
+ A 11579568 0.053333 14.554226 0.000000 -16.299212 0.000000 22.500000
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Easement Curve (L) Appr 16.3/15R 414/381mm 22.5° 20-182 Left"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 6.237438 -1.240704 112.500000
+ E 0.000000 -1.299212 270.000000
+ E 5.740251 -2.441019 112.500000
+ C 0 0 16.299212 0.000000 -16.299212 0.000000 22.500000
+ C 0 0 15.000000 0.000000 -16.299212 0.000000 22.500000
+ A 11579568 0.053333 16.744986 0.000000 -16.299212 0.000000 22.500000
+ A 11579568 0.053333 14.554226 0.000000 -16.299212 0.000000 22.500000
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Curve 12.375/11R 315/282mm 45° 20-183"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 0.000000 -1.299212 270.000000
+ E 8.769238 -3.632337 135.000000
+ E 7.850556 -4.551019 135.000000
+ C 0 0 12.401575 0.000000 -12.401575 0.000000 45.000000
+ C 0 0 11.102362 0.000000 -12.401575 0.000000 45.000000
+ A 11579568 0.053333 12.847349 0.000000 -12.401575 0.000000 45.000000
+ A 11579568 0.053333 10.656588 0.000000 -12.401575 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Easement Curve 12.375/11R 315/282mm 22.5° 20-184 Right"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 0.000000 -1.299212 270.000000
+ E 4.745877 -0.944014 112.500000
+ E 4.248690 -2.144330 112.500000
+ C 0 0 12.401575 0.000000 -12.401575 0.000000 22.500000
+ C 0 0 11.102362 0.000000 -12.401575 0.000000 22.500000
+ A 11579568 0.053333 12.847349 0.000000 -12.401575 0.000000 22.500000
+ A 11579568 0.053333 10.656588 0.000000 -12.401575 0.000000 22.500000
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Easement Curve 12.375/11R 315/282mm 22.5° 20-184 Left"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 0.000000 -1.299212 270.000000
+ E 4.745877 -0.944014 112.500000
+ E 4.248690 -2.144330 112.500000
+ C 0 0 12.401575 0.000000 -12.401575 0.000000 22.500000
+ C 0 0 11.102362 0.000000 -12.401575 0.000000 22.500000
+ A 11579568 0.053333 12.847349 0.000000 -12.401575 0.000000 22.500000
+ A 11579568 0.053333 10.656588 0.000000 -12.401575 0.000000 22.500000
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Curve 18.875/17.625R 480/447mm 45° 20-185"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 13.362648 -5.534990 135.000000
+ E 0.000000 -1.299212 270.000000
+ E 12.443966 -6.453672 135.000000
+ C 0 0 18.897638 0.000000 -18.897638 0.000000 45.000000
+ C 0 0 17.598425 0.000000 -18.897638 0.000000 45.000000
+ A 11579568 0.053333 19.343412 0.000000 -18.897638 0.000000 45.000000
+ A 11579568 0.053333 17.152651 0.000000 -18.897638 0.000000 45.000000
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Easement Curve (R) Appr 18.875/17.625R 480/447mm 22.5° 20-186 Right"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 7.231813 -1.438497 112.500000
+ E 0.000000 -1.299212 270.000000
+ E 6.734626 -2.638813 112.500000
+ C 0 0 18.897638 0.000000 -18.897638 0.000000 22.500000
+ C 0 0 17.598425 0.000000 -18.897638 0.000000 22.500000
+ A 11579568 0.053333 19.343412 0.000000 -18.897638 0.000000 22.500000
+ A 11579568 0.053333 17.152651 0.000000 -18.897638 0.000000 22.500000
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk SupElev Easement Curve (L) Appr 18.875/17.625R 480/447mm 22.5° 20-186 Left"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 7.231813 -1.438497 112.500000
+ E 0.000000 -1.299212 270.000000
+ E 6.734626 -2.638813 112.500000
+ C 0 0 18.897638 0.000000 -18.897638 0.000000 22.500000
+ C 0 0 17.598425 0.000000 -18.897638 0.000000 22.500000
+ A 11579568 0.053333 19.343412 0.000000 -18.897638 0.000000 22.500000
+ A 11579568 0.053333 17.152651 0.000000 -18.897638 0.000000 22.500000
+ END
+
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale V-15 Double Track Widening Sections
+TURNOUT N "Kato Unitrack CS Dbl Trk Widening Section 310mm 20-051 Left"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 12.204724 0.000000 90.000000
+ E 0.000000 1.299212 270.000000
+ E 12.204724 2.598425 90.000000
+ S 0 0 0.000000 0.000000 12.204724 0.000000
+ S 0 0 0.000000 1.299212 0.980334 1.299212
+ C 0 0 17.598425 0.980334 18.897637 169.500000 10.500000
+ S 0 0 4.187392 1.593899 8.017332 2.303737
+ C 0 0 17.598425 11.224390 -15.000001 349.500000 10.500000
+ S 0 0 11.224390 2.598425 12.204724 2.598425
+ L 11579568 0.053333 0.000000 -0.492126 12.204724 -0.492126
+ L 11579568 0.053333 0.000000 1.744986 0.980334 1.744986
+ A 11579568 0.053333 17.152651 0.980334 18.897637 169.500000 10.500000
+ L 11579568 0.053333 4.187392 2.039673 8.017332 2.749511
+ A 11579568 0.053333 18.044199 11.224390 -15.000001 349.500000 10.500000
+ L 11579568 0.053333 11.224390 3.044199 12.204724 3.044199
+ L 11579568 0.053333 11.704724 0.492126 12.204724 0.492126
+ L 11579568 0.053333 11.704724 0.492126 11.704724 2.152651
+ L 11579568 0.053333 11.704724 2.152651 12.204724 2.152651
+ END
+TURNOUT N "Kato Unitrack CS Dbl Trk Widening Section 310mm 20-052 Right"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 12.204724 0.000000 90.000000
+ E 0.000000 -1.299212 270.000000
+ E 12.204724 -2.598425 90.000000
+ S 0 0 0.000000 0.000000 12.204724 0.000000
+ S 0 0 0.000000 -1.299212 0.980334 -1.299212
+ C 0 0 17.598425 0.980334 -18.897637 0.000000 10.500000
+ S 0 0 4.187392 -1.593899 8.017332 -2.303737
+ C 0 0 17.598425 11.224390 15.000001 180.000000 10.500000
+ S 0 0 11.224390 -2.598425 12.204724 -2.598425
+ L 11579568 0.053333 0.000000 0.492126 12.204724 0.492126
+ L 11579568 0.053333 0.000000 -1.744986 0.980334 -1.744986
+ A 11579568 0.053333 17.152651 0.980334 -18.897637 0.000000 10.500000
+ L 11579568 0.053333 4.187392 -2.039673 8.017332 -2.749511
+ A 11579568 0.053333 18.044199 11.224390 15.000001 180.000000 10.500000
+ L 11579568 0.053333 11.224390 -3.044199 12.204724 -3.044199
+ L 11579568 0.053333 11.704724 -0.492126 12.204724 -0.492126
+ L 11579568 0.053333 11.704724 -0.492126 11.704724 -2.152651
+ L 11579568 0.053333 11.704724 -2.152651 12.204724 -2.152651
+ END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale Conc Sleeper Straight Track
+TURNOUT N "Kato Unitrack CS Trk Straight 9.75 248mm 20-875"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.763779 0.000000 90.000000
+ S 0 0 0.000000 0.000000 9.763779 0.000000
+ L 11579568 0.053333 0.000000 0.492126 9.763779 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 9.763779 -0.492126
+ END
+TURNOUT N "Kato Unitrack CS Trk Straight 4 7/8 124mm 20-XXX"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.881889 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.881889 0.000000
+ L 11579568 0.053333 0.000000 0.492126 4.881889 0.492126
+ L 11579568 0.053333 0.000000 -0.492126 4.881889 -0.492126
+ END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale Bridges
+TURNOUT N "Kato Unitrack Dbl. Track Truss Bridge 9.75 248mm 20-435/6/7/8"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 9.763779 0.000000 90.000000
+ E 0.000000 -1.299212 270.000000
+ E 9.763779 -1.299212 90.000000
+ S 0 0 0.000000 0.000000 9.763779 0.000000
+ S 0 0 0.000000 -1.299212 9.763779 -1.299212
+ L 0 0.053333 0.000000 0.47334 9.763779 0.47334
+ L 0 0.053333 0.000000 -1.772552 9.763779 -1.772552
+ L 0 0.053333 1.220474 -1.772552 1.220474 0.47334
+ L 0 0.053333 1.220474 -1.772552 2.440948 0.47334
+ L 0 0.053333 2.440948 -1.772552 1.220474 0.47334
+ L 0 0.053333 2.440948 -1.772552 2.440948 0.47334
+ L 0 0.053333 2.440948 -1.772552 3.661422 0.47334
+ L 0 0.053333 3.661422 -1.772552 2.440948 0.47334
+ L 0 0.053333 3.661422 -1.772552 3.661422 0.47334
+ L 0 0.053333 3.661422 -1.772552 4.881896 0.47334
+ L 0 0.053333 4.881896 -1.772552 3.661422 0.47334
+ L 0 0.053333 4.881896 -1.772552 4.881896 0.47334
+ L 0 0.053333 4.881896 -1.772552 6.102370 0.47334
+ L 0 0.053333 6.102370 -1.772552 4.881896 0.47334
+ L 0 0.053333 6.102370 -1.772552 6.102370 0.47334
+ L 0 0.053333 6.102370 -1.772552 7.322844 0.47334
+ L 0 0.053333 7.322844 -1.772552 6.102370 0.47334
+ L 0 0.053333 7.322844 -1.772552 7.322844 0.47334
+ L 0 0.053333 7.322844 -1.772552 8.543318 0.47334
+ L 0 0.053333 8.543318 -1.772552 7.322844 0.47334
+ L 0 0.053333 8.543318 -1.772552 8.543318 0.47334
+ END
+TURNOUT N "Kato Unitrack Single Track Truss Bridge 9.75 248mm 20-430/1/2/3/4"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.763779 0.000000 90.000000
+ S 0 0 0.000000 0.000000 9.763779 0.000000
+ L 0 0.053333 0.000000 0.47334 9.763779 0.47334
+ L 0 0.053333 0.000000 -0.47334 9.763779 -0.47334
+ L 0 0.053333 1.220474 -0.47334 1.220474 0.47334
+ L 0 0.053333 1.220474 -0.47334 2.440948 0.47334
+ L 0 0.053333 2.440948 -0.47334 1.220474 0.47334
+ L 0 0.053333 2.440948 -0.47334 2.440948 0.47334
+ L 0 0.053333 2.440948 -0.47334 3.661422 0.47334
+ L 0 0.053333 3.661422 -0.47334 2.440948 0.47334
+ L 0 0.053333 3.661422 -0.47334 3.661422 0.47334
+ L 0 0.053333 3.661422 -0.47334 4.881896 0.47334
+ L 0 0.053333 4.881896 -0.47334 3.661422 0.47334
+ L 0 0.053333 4.881896 -0.47334 4.881896 0.47334
+ L 0 0.053333 4.881896 -0.47334 6.102370 0.47334
+ L 0 0.053333 6.102370 -0.47334 4.881896 0.47334
+ L 0 0.053333 6.102370 -0.47334 6.102370 0.47334
+ L 0 0.053333 6.102370 -0.47334 7.322844 0.47334
+ L 0 0.053333 7.322844 -0.47334 6.102370 0.47334
+ L 0 0.053333 7.322844 -0.47334 7.322844 0.47334
+ L 0 0.053333 7.322844 -0.47334 8.543318 0.47334
+ L 0 0.053333 8.543318 -0.47334 7.322844 0.47334
+ L 0 0.053333 8.543318 -0.47334 8.543318 0.47334
+ END
+TURNOUT N "Kato Unitrack Single Track Plate Grider Bridge 7 5/16 186mm 20-450/1/2/3/4"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.322834 0.000000 90.000000
+ S 0 0 0.000000 0.000000 7.322834 0.000000
+ L 0 0.053333 0.000000 0.47334 7.322834 0.47334
+ L 0 0.053333 0.000000 -0.47334 7.322834 -0.47334
+ END
+TURNOUT N "Kato Unitrack Double Track Plate Grider Bridge 7 5/16 186mm 20-455/6/7/8"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 7.322834 0.000000 90.000000
+ E 0.000000 -1.299212 270.000000
+ E 7.322834 -1.299212 90.000000
+ S 0 0 0.000000 0.000000 7.322834 0.000000
+ S 0 0 0.000000 -1.299212 7.322834 -1.299212
+ L 0 0.053333 0.000000 0.47334 7.322834 0.47334
+ L 0 0.053333 0.000000 -0.649606 7.322834 -0.649606
+ L 0 0.053333 0.000000 -1.772552 7.322834 -1.772552
+ END
+TURNOUT N "Kato Unitrack Deck Plate Grider Bridge 4 7/8 124mm 20-460/1/2/3/4"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.881889 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.881889 0.000000
+ L 0 0.053333 0.000000 0.47334 4.881889 0.47334
+ L 0 0.053333 0.000000 -0.47334 4.881889 -0.47334
+ END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale Structures
+STRUCTURE N "Kato Unitrack Pier 23-015"
+ X pier 0.590551 "1" 0.984251 "2" 1.377952 "3" 1.771653 "4" 1.968503 "5"
+ L 0 0.000000 -0.250000 -0.5 0.250000 -0.5
+ L 0 0.000000 0.250000 -0.5 0.250000 0.5
+ L 0 0.000000 0.250000 0.5 -0.250000 0.5
+ L 0 0.000000 -0.250000 0.5 -0.250000 -0.5
+ A 0 0.000000 0.250000 -0.000000 0.50000 270.000000 180.000000
+ A 0 0.000000 0.250000 -0.000000 -0.50000 90.000000 180.000000
+ END
+STRUCTURE N "Kato Unitrack Pier 23-016"
+ X pier 1.968503 "5"
+ L 7368826 0.040000 -0.75 -0.6 0.75 -0.6
+ L 7368826 0.040000 0.75 -0.6 0.75 1.899212
+ L 7368826 0.040000 0.75 1.899212 -0.75 1.899212
+ L 7368826 0.040000 -0.75 1.899212 -0.75 -0.6
+ END
+STRUCTURE N "Kato Unitrack Island Platform Type A 23-100"
+ L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
+ L 10824234 0.000000 0.000000 1.653543 9.763780 1.653543
+ L 10824234 0.000000 9.763780 1.653543 9.763780 0.000000
+ L 10824234 0.000000 9.763780 0.000000 0.000000 0.000000
+ L 10824234 0.000000 0.000000 0.826772 9.763780 0.826772
+ L 10824234 0.000000 0.787402 1.141732 5.157480 1.141732
+ L 10824234 0.000000 5.157480 1.141732 5.157480 0.511811
+ L 10824234 0.000000 5.157480 0.511811 0.787402 0.511811
+ L 10824234 0.000000 0.787402 0.511811 0.787402 1.141732
+ L 10824234 0.000000 2.952756 1.141732 2.952756 0.511811
+ L 10824234 0.000000 0.078740 1.653543 0.078740 0.866142
+ L 10824234 0.000000 0.157480 1.653543 0.157480 0.984252
+ L 10824234 0.000000 0.236220 1.653543 0.236220 1.102362
+ L 10824234 0.000000 0.314961 1.653543 0.314961 1.220472
+ L 10824234 0.000000 0.393701 1.653543 0.393701 1.299213
+ L 10824234 0.000000 0.472441 1.653543 0.472441 1.377953
+ L 10824234 0.000000 0.551181 1.653543 0.551181 1.496063
+ L 10824234 0.000000 0.629921 1.653543 0.629921 1.614173
+ L 10824234 0.000000 9.685039 0.000000 9.685039 0.787402
+ L 10824234 0.000000 9.606299 0.000000 9.606299 0.669291
+ L 10824234 0.000000 9.527559 0.000000 9.527559 0.551181
+ L 10824234 0.000000 9.448819 0.000000 9.448819 0.433071
+ L 10824234 0.000000 9.370079 0.000000 9.370079 0.354331
+ L 10824234 0.000000 9.291339 0.000000 9.291339 0.236220
+ L 10824234 0.000000 9.212598 0.000000 9.212598 0.157480
+ L 10824234 0.000000 9.133858 0.000000 9.133858 0.039370
+ END
+STRUCTURE N "Kato Unitrack Island Platform Type B 23-101"
+ L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
+ L 10824234 0.000000 0.000000 1.653543 9.763780 1.653543
+ L 10824234 0.000000 9.763780 1.653543 9.763780 0.000000
+ L 10824234 0.000000 9.763780 0.000000 0.000000 0.000000
+ L 10824234 0.000000 0.000000 0.826772 9.763780 0.826772
+ L 10824234 0.000000 0.787402 1.141732 5.157480 1.141732
+ L 10824234 0.000000 5.157480 1.141732 5.157480 0.511811
+ L 10824234 0.000000 5.157480 0.511811 0.787402 0.511811
+ L 10824234 0.000000 0.787402 0.511811 0.787402 1.141732
+ L 10824234 0.000000 2.952756 1.141732 2.952756 0.511811
+ L 10824234 0.000000 0.078740 1.653543 0.078740 0.866142
+ L 10824234 0.000000 0.157480 1.653543 0.157480 0.984252
+ L 10824234 0.000000 0.236220 1.653543 0.236220 1.102362
+ L 10824234 0.000000 0.314961 1.653543 0.314961 1.220472
+ L 10824234 0.000000 0.393701 1.653543 0.393701 1.299213
+ L 10824234 0.000000 0.472441 1.653543 0.472441 1.377953
+ L 10824234 0.000000 0.551181 1.653543 0.551181 1.496063
+ L 10824234 0.000000 0.629921 1.653543 0.629921 1.614173
+ L 10824234 0.000000 9.685039 0.000000 9.685039 0.787402
+ L 10824234 0.000000 9.606299 0.000000 9.606299 0.669291
+ L 10824234 0.000000 9.527559 0.000000 9.527559 0.551181
+ L 10824234 0.000000 9.448819 0.000000 9.448819 0.433071
+ L 10824234 0.000000 9.370079 0.000000 9.370079 0.354331
+ L 10824234 0.000000 9.291339 0.000000 9.291339 0.236220
+ L 10824234 0.000000 9.212598 0.000000 9.212598 0.157480
+ L 10824234 0.000000 9.133858 0.000000 9.133858 0.039370
+ END
+STRUCTURE N "Kato Unitrack Island Platform End, Type 1 23-102"
+ L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
+ L 10824234 0.000000 0.000000 0.000000 7.874016 0.000000
+ L 10824234 0.000000 7.874016 0.000000 7.874016 1.653543
+ L 10824234 0.000000 7.874016 1.653543 0.000000 1.653543
+ L 10824234 0.000000 0.787402 1.653543 0.787402 0.000000
+ L 10824234 0.000000 0.787402 0.629921 0.196850 0.629921
+ L 10824234 0.000000 0.196850 0.629921 0.196850 0.984252
+ L 10824234 0.000000 0.196850 0.984252 0.787402 0.984252
+ L 10824234 0.000000 0.787402 0.984252 0.787402 0.629921
+ L 10824234 0.000000 0.669291 0.629921 0.669291 0.984252
+ L 10824234 0.000000 0.551181 0.629921 0.551181 0.984252
+ L 10824234 0.000000 0.433071 0.629921 0.433071 0.984252
+ L 10824234 0.000000 0.314961 0.629921 0.314961 0.984252
+ L 0 0.026667 0.866142 1.614173 0.866142 0.039370
+ A 0 0.026667 0.141951 5.196850 0.826772 0.000000 360.000000
+ L 0 0.000000 3.031496 0.944882 4.606299 0.944882
+ L 0 0.000000 4.606299 0.944882 4.606299 0.708661
+ L 0 0.000000 4.606299 0.708661 3.031496 0.708661
+ L 0 0.000000 3.031496 0.708661 3.031496 0.944882
+ L 0 0.066667 3.543307 0.826772 4.094488 0.826772
+ END
+STRUCTURE N "Kato Unitrack Island Platform End, Type 2 23-103"
+ L 10824234 0.000000 7.874016 0.000000 7.874016 1.653543
+ L 10824234 0.000000 7.874016 1.653543 0.000000 1.653543
+ A 0 0.026667 0.141951 5.196850 0.826772 0.000000 360.000000
+ L 0 0.000000 3.031496 0.944882 4.606299 0.944882
+ L 0 0.000000 4.606299 0.944882 4.606299 0.708661
+ L 0 0.000000 4.606299 0.708661 3.031496 0.708661
+ L 0 0.000000 3.031496 0.708661 3.031496 0.944882
+ L 0 0.066667 3.543307 0.826772 4.094488 0.826772
+ A 10824234 0.000000 27.822226 7.874016 27.822226 180.000000 15.000000
+ L 0 0.026667 0.866142 1.614173 0.866142 1.023622
+ L 10824234 0.000000 0.196850 1.535433 0.196850 1.299213
+ L 10824234 0.000000 0.669291 1.535433 0.669291 1.299213
+ L 10824234 0.000000 0.551181 1.535433 0.551181 1.299213
+ L 10824234 0.000000 0.433071 1.535433 0.433071 1.299213
+ L 10824234 0.000000 0.314961 1.535433 0.314961 1.299213
+ L 10824234 0.000000 0.196667 1.295000 0.670000 1.298333
+ L 10824234 0.000000 0.193333 1.535000 0.670000 1.535000
+ L 10824234 0.000000 0.670000 1.535000 0.670000 1.651667
+ L 10824234 0.000000 0.670000 1.295833 0.670000 0.949167
+ L 10824234 0.000000 0.673333 0.946667 0.000000 1.126667
+ L 10824234 0.000000 0.006667 1.125000 0.000000 1.645000
+ END
+STRUCTURE N "Kato Unitrack Island Platform End, Type 3 23-104"
+ L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
+ L 10824234 0.000000 0.000000 1.653543 7.874016 1.653543
+ A 0 0.026667 0.141951 2.677166 0.826772 0.000000 360.000000
+ L 0 0.000000 4.842520 0.944882 3.267717 0.944882
+ L 0 0.000000 3.267717 0.944882 3.267717 0.708661
+ L 0 0.000000 3.267717 0.708661 4.842520 0.708661
+ L 0 0.000000 4.842520 0.708661 4.842520 0.944882
+ L 0 0.066667 4.330709 0.826772 3.779528 0.826772
+ A 10824234 0.000000 27.822226 0.000000 27.822226 165.000000 15.000000
+ L 0 0.026667 7.007874 1.614173 7.007874 1.023622
+ L 10824234 0.000000 7.677166 1.535433 7.677166 1.299213
+ L 10824234 0.000000 7.204725 1.535433 7.204725 1.299213
+ L 10824234 0.000000 7.322835 1.535433 7.322835 1.299213
+ L 10824234 0.000000 7.440945 1.535433 7.440945 1.299213
+ L 10824234 0.000000 7.559055 1.535433 7.559055 1.299213
+ L 10824234 0.000000 7.677349 1.295000 7.204016 1.298333
+ L 10824234 0.000000 7.680683 1.535000 7.204016 1.535000
+ L 10824234 0.000000 7.204016 1.535000 7.204016 1.651667
+ L 10824234 0.000000 7.204016 1.295833 7.204016 0.949167
+ L 10824234 0.000000 7.200683 0.946667 7.874016 1.126667
+ L 10824234 0.000000 7.867349 1.125000 7.874016 1.645000
+ END
+STRUCTURE N "Kato Unitrack Island Platform Type D 23-106"
+ L 10824234 0 0.000000 0.000000 0.000000 1.653543
+ L 10824234 0 0.000000 1.653543 9.763780 1.653543
+ L 10824234 0 9.763780 1.653543 9.763780 0.000000
+ L 10824234 0 9.763780 0.000000 0.000000 0.000000
+ END
+STRUCTURE N "Kato Unitrack One Sided Platform Type A 23-110"
+ L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
+ L 10824234 0.000000 0.000000 1.653543 9.763780 1.653543
+ L 10824234 0.000000 9.763780 1.653543 9.763780 0.000000
+ L 10824234 0.000000 9.763780 0.000000 0.000000 0.000000
+ L 10824234 0.000000 5.157480 1.141732 5.157480 0.511811
+ L 10824234 0.000000 0.078740 1.653543 0.078740 0.866142
+ L 10824234 0.000000 0.157480 1.653543 0.157480 0.984252
+ L 10824234 0.000000 0.236220 1.653543 0.236220 1.102362
+ L 10824234 0.000000 0.314961 1.653543 0.314961 1.220472
+ L 10824234 0.000000 0.393701 1.653543 0.393701 1.299213
+ L 10824234 0.000000 0.472441 1.653543 0.472441 1.377953
+ L 10824234 0.000000 0.551181 1.653543 0.551181 1.496063
+ L 10824234 0.000000 0.629921 1.653543 0.629921 1.614173
+ L 10824234 0.000000 9.685039 0.000000 9.685039 0.787402
+ L 10824234 0.000000 9.606299 0.000000 9.606299 0.669291
+ L 10824234 0.000000 9.527559 0.000000 9.527559 0.551181
+ L 10824234 0.000000 9.448819 0.000000 9.448819 0.433071
+ L 10824234 0.000000 9.370079 0.000000 9.370079 0.354331
+ L 10824234 0.000000 9.291339 0.000000 9.291339 0.236220
+ L 10824234 0.000000 9.212598 0.000000 9.212598 0.157480
+ L 10824234 0.000000 9.133858 0.000000 9.133858 0.039370
+ L 10824234 0.000000 1.181102 1.141732 8.582677 1.141732
+ L 10824234 0.000000 8.582677 1.141732 8.582677 0.511811
+ L 10824234 0.000000 8.582677 0.511811 1.181102 0.511811
+ L 10824234 0.000000 1.181102 0.511811 1.181102 1.141732
+ END
+STRUCTURE N "Kato Unitrack One Sided Platform Type B 23-111"
+ L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
+ L 10824234 0.000000 0.000000 1.653543 9.763780 1.653543
+ L 10824234 0.000000 9.763780 1.653543 9.763780 0.000000
+ L 10824234 0.000000 9.763780 0.000000 0.000000 0.000000
+ L 10824234 0.000000 5.157480 1.141732 5.157480 0.511811
+ L 10824234 0.000000 0.078740 1.653543 0.078740 0.866142
+ L 10824234 0.000000 0.157480 1.653543 0.157480 0.984252
+ L 10824234 0.000000 0.236220 1.653543 0.236220 1.102362
+ L 10824234 0.000000 0.314961 1.653543 0.314961 1.220472
+ L 10824234 0.000000 0.393701 1.653543 0.393701 1.299213
+ L 10824234 0.000000 0.472441 1.653543 0.472441 1.377953
+ L 10824234 0.000000 0.551181 1.653543 0.551181 1.496063
+ L 10824234 0.000000 0.629921 1.653543 0.629921 1.614173
+ L 10824234 0.000000 9.685039 0.000000 9.685039 0.787402
+ L 10824234 0.000000 9.606299 0.000000 9.606299 0.669291
+ L 10824234 0.000000 9.527559 0.000000 9.527559 0.551181
+ L 10824234 0.000000 9.448819 0.000000 9.448819 0.433071
+ L 10824234 0.000000 9.370079 0.000000 9.370079 0.354331
+ L 10824234 0.000000 9.291339 0.000000 9.291339 0.236220
+ L 10824234 0.000000 9.212598 0.000000 9.212598 0.157480
+ L 10824234 0.000000 9.133858 0.000000 9.133858 0.039370
+ L 10824234 0.000000 1.181102 1.141732 8.582677 1.141732
+ L 10824234 0.000000 8.582677 1.141732 8.582677 0.511811
+ L 10824234 0.000000 8.582677 0.511811 1.181102 0.511811
+ L 10824234 0.000000 1.181102 0.511811 1.181102 1.141732
+ END
+STRUCTURE N "Kato Unitrack One Sided Platform End Type 1 23-112"
+ L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
+ L 10824234 0.000000 0.000000 0.000000 7.874016 0.000000
+ L 10824234 0.000000 7.874016 0.000000 7.874016 1.653543
+ L 10824234 0.000000 7.874016 1.653543 0.000000 1.653543
+ L 10824234 0.000000 0.787402 1.653543 0.787402 0.000000
+ L 10824234 0.000000 0.787402 0.629921 0.196850 0.629921
+ L 10824234 0.000000 0.196850 0.629921 0.196850 0.984252
+ L 10824234 0.000000 0.196850 0.984252 0.787402 0.984252
+ L 10824234 0.000000 0.787402 0.984252 0.787402 0.629921
+ L 10824234 0.000000 0.669291 0.629921 0.669291 0.984252
+ L 10824234 0.000000 0.551181 0.629921 0.551181 0.984252
+ L 10824234 0.000000 0.433071 0.629921 0.433071 0.984252
+ L 10824234 0.000000 0.314961 0.629921 0.314961 0.984252
+ L 0 0.026667 0.866142 1.614173 0.866142 0.039370
+ A 0 0.026667 0.141951 5.196850 0.826772 0.000000 360.000000
+ L 0 0.000000 3.031496 0.944882 4.606299 0.944882
+ L 0 0.000000 4.606299 0.944882 4.606299 0.708661
+ L 0 0.000000 4.606299 0.708661 3.031496 0.708661
+ L 0 0.000000 3.031496 0.708661 3.031496 0.944882
+ L 0 0.066667 3.543307 0.826772 4.094488 0.826772
+ L 0 0.026667 0.866142 1.614173 7.874016 1.614173
+ END
+STRUCTURE N "Kato Unitrack One Sided Platform End Type 2 23-113"
+ L 10824234 0.000000 7.874016 0.000000 7.874016 1.653543
+ L 10824234 0.000000 7.874016 0.000000 0.000000 0.000000
+ L 10824234 0.000000 0.000000 0.000000 0.000000 1.653543
+ L 10824234 0.000000 0.000000 1.653543 7.874016 1.653543
+ L 10824234 0.000000 7.086614 1.653543 7.086614 0.000000
+ L 10824234 0.000000 7.086614 0.629921 7.677166 0.629921
+ L 10824234 0.000000 7.677166 0.629921 7.677166 0.984252
+ L 10824234 0.000000 7.677166 0.984252 7.086614 0.984252
+ L 10824234 0.000000 7.086614 0.984252 7.086614 0.629921
+ L 10824234 0.000000 7.204725 0.629921 7.204725 0.984252
+ L 10824234 0.000000 7.322835 0.629921 7.322835 0.984252
+ L 10824234 0.000000 7.440945 0.629921 7.440945 0.984252
+ L 10824234 0.000000 7.559055 0.629921 7.559055 0.984252
+ L 0 0.026667 7.007874 1.614173 7.007874 0.039370
+ A 0 0.026667 0.141951 2.677166 0.826772 0.000000 360.000000
+ L 0 0.000000 4.842520 0.944882 3.267717 0.944882
+ L 0 0.000000 3.267717 0.944882 3.267717 0.708661
+ L 0 0.000000 3.267717 0.708661 4.842520 0.708661
+ L 0 0.000000 4.842520 0.708661 4.842520 0.944882
+ L 0 0.066667 4.330709 0.826772 3.779528 0.826772
+ L 0 0.026667 7.007874 1.614173 0.000000 1.614173
+ END
+STRUCTURE N "Kato Unitrack Overhead Station 23-200"
+ L 10824234 0.000000 0.000000 5.393701 13.307087 5.393701
+ L 10824234 0.000000 12.952756 1.299213 3.188976 1.299213
+ L 10824234 0.000000 3.188976 1.299213 3.188976 2.952756
+ L 10824234 0.000000 3.188976 2.952756 12.952756 2.952756
+ L 10824234 0.000000 12.952756 2.952756 12.952756 1.299213
+ L 10824234 0.000000 12.165354 5.393701 12.165354 4.251969
+ L 10824234 0.000000 1.102362 5.393701 1.102362 4.251969
+ L 10824234 0.000000 7.874016 5.393701 7.874016 4.251969
+ L 10824234 0.000000 5.511811 5.393701 5.511811 4.251969
+ L 10824234 0.000000 7.913386 4.251969 7.913386 0.000000
+ L 10824234 0.000000 7.913386 0.000000 2.716535 0.000000
+ L 10824234 0.000000 2.716535 0.000000 2.716535 4.251969
+ L 10824234 0.000000 7.795276 4.251969 7.795276 0.157480
+ L 10824234 0.000000 7.795276 0.157480 4.330709 0.157480
+ L 10824234 0.000000 4.330709 0.157480 4.330709 4.251969
+ L 10824234 0.000000 4.330709 2.165354 7.795276 2.165354
+ L 10824234 0.000000 13.307087 5.393701 13.307087 4.251969
+ L 10824234 0.000000 0.000000 5.393701 0.000000 4.251969
+ L 10824234 0.000000 7.952756 2.637795 11.574803 2.637795
+ L 10824234 0.000000 11.574803 2.637795 11.574803 1.692913
+ L 10824234 0.000000 11.574803 1.692913 7.952756 1.692913
+ L 10824234 0.000000 10.866142 2.637795 10.866142 1.692913
+ L 10824234 0.000000 10.118110 2.637795 10.118110 1.692913
+ L 10824234 0.000000 0.000000 4.251969 4.330709 4.251969
+ L 10824234 0.000000 4.330709 4.251969 7.795276 4.251969
+ L 10824234 0.000000 7.874016 4.251969 13.267717 4.251969
+ END
+STRUCTURE N "Kato Unitrack Station Entrance 23-210"
+ L 10824234 0.000000 0.000000 0.000000 0.000000 2.874016
+ L 10824234 0.000000 4.921260 0.000000 0.000000 0.000000
+ L 10824234 0.000000 0.000000 1.417323 4.055118 1.417323
+ L 10824234 0.000000 4.055118 2.874016 4.055118 0.000000
+ L 10824234 0.000000 4.055118 1.574803 4.921260 1.574803
+ L 10824234 0.000000 4.921260 1.574803 4.921260 0.000000
+ L 10824234 0.000000 0.000000 2.874016 4.055118 2.874016
+ L 10824234 0.000000 3.779528 0.000000 3.779528 1.299213
+ L 10824234 0.000000 3.503937 0.000000 3.503937 1.181102
+ L 10824234 0.000000 3.228346 0.000000 3.228346 1.062992
+ L 10824234 0.000000 2.952756 0.000000 2.952756 0.944882
+ L 10824234 0.000000 2.677165 0.000000 2.677165 0.826772
+ L 10824234 0.000000 0.275591 2.874016 0.275591 1.535433
+ L 10824234 0.000000 0.551181 2.874016 0.551181 1.692913
+ L 10824234 0.000000 0.826772 2.874016 0.826772 1.811024
+ L 10824234 0.000000 1.102362 2.874016 1.102362 1.929134
+ L 10824234 0.000000 1.377953 2.874016 1.377953 2.047244
+ L 10824234 0.000000 4.055118 0.039370 4.921260 0.039370
+ L 10824234 0.000000 4.055118 1.535433 4.921260 1.535433
+ L 10824234 0.000000 4.055118 0.275591 4.685039 0.275591
+ L 10824234 0.000000 4.055118 0.511811 4.448819 0.511811
+ L 10824234 0.000000 4.921260 1.299213 4.330709 1.299213
+ L 10824234 0.000000 4.921260 1.062992 4.527559 1.062992
+ END
+STRUCTURE N "Kato Unitrack Long Engine House 23-300"
+ L 10824234 0.000000 0.000000 0.000000 0.000000 3.779528
+ L 10824234 0.000000 0.000000 3.779528 7.362205 3.779528
+ L 10824234 0.000000 7.362205 3.779528 7.362205 0.000000
+ L 10824234 0.000000 7.362205 0.000000 0.000000 0.000000
+ L 10824234 0.000000 0.275591 0.393701 0.787402 0.393701
+ L 10824234 0.000000 0.787402 0.393701 0.787402 3.385827
+ L 10824234 0.000000 0.787402 3.385827 0.275591 3.385827
+ L 10824234 0.000000 0.275591 3.385827 0.275591 0.393701
+ L 10824234 0.000000 1.062992 0.393701 1.574803 0.393701
+ L 10824234 0.000000 1.574803 0.393701 1.574803 3.385827
+ L 10824234 0.000000 1.574803 3.385827 1.062992 3.385827
+ L 10824234 0.000000 1.062992 3.385827 1.062992 0.393701
+ L 10824234 0.000000 1.850394 0.393701 2.362205 0.393701
+ L 10824234 0.000000 2.362205 0.393701 2.362205 3.385827
+ L 10824234 0.000000 2.362205 3.385827 1.850394 3.385827
+ L 10824234 0.000000 1.850394 3.385827 1.850394 0.393701
+ L 10824234 0.000000 2.637795 0.393701 3.149606 0.393701
+ L 10824234 0.000000 3.149606 0.393701 3.149606 3.385827
+ L 10824234 0.000000 3.149606 3.385827 2.637795 3.385827
+ L 10824234 0.000000 2.637795 3.385827 2.637795 0.393701
+ L 10824234 0.000000 3.425197 0.393701 3.937008 0.393701
+ L 10824234 0.000000 3.937008 0.393701 3.937008 3.385827
+ L 10824234 0.000000 3.937008 3.385827 3.425197 3.385827
+ L 10824234 0.000000 3.425197 3.385827 3.425197 0.393701
+ L 10824234 0.000000 4.212598 0.393701 4.724409 0.393701
+ L 10824234 0.000000 4.724409 0.393701 4.724409 3.385827
+ L 10824234 0.000000 4.724409 3.385827 4.212598 3.385827
+ L 10824234 0.000000 4.212598 3.385827 4.212598 0.393701
+ L 10824234 0.000000 5.000000 0.393701 5.511811 0.393701
+ L 10824234 0.000000 5.511811 0.393701 5.511811 3.385827
+ L 10824234 0.000000 5.511811 3.385827 5.000000 3.385827
+ L 10824234 0.000000 5.000000 3.385827 5.000000 0.393701
+ L 10824234 0.000000 5.787402 0.393701 6.299213 0.393701
+ L 10824234 0.000000 6.299213 0.393701 6.299213 3.385827
+ L 10824234 0.000000 6.299213 3.385827 5.787402 3.385827
+ L 10824234 0.000000 5.787402 3.385827 5.787402 0.393701
+ L 10824234 0.000000 6.574803 0.393701 7.086614 0.393701
+ L 10824234 0.000000 7.086614 0.393701 7.086614 3.385827
+ L 10824234 0.000000 7.086614 3.385827 6.574803 3.385827
+ L 10824234 0.000000 6.574803 3.385827 6.574803 0.393701
+ L 10824234 0.000000 0.275591 3.464567 0.472441 3.464567
+ L 10824234 0.000000 0.472441 3.464567 0.472441 3.661417
+ L 10824234 0.000000 0.472441 3.661417 0.275591 3.661417
+ L 10824234 0.000000 0.275591 3.661417 0.275591 3.464567
+ L 10824234 0.000000 0.275591 0.314961 0.472441 0.314961
+ L 10824234 0.000000 0.472441 0.314961 0.472441 0.118110
+ L 10824234 0.000000 0.472441 0.118110 0.275591 0.118110
+ L 10824234 0.000000 0.275591 0.118110 0.275591 0.314961
+ L 10824234 0.000000 7.086614 0.314961 6.889764 0.314961
+ L 10824234 0.000000 6.889764 0.314961 6.889764 0.118110
+ L 10824234 0.000000 6.889764 0.118110 7.086614 0.118110
+ L 10824234 0.000000 7.086614 0.118110 7.086614 0.314961
+ L 10824234 0.000000 7.086614 3.464567 6.889764 3.464567
+ L 10824234 0.000000 6.889764 3.464567 6.889764 3.661417
+ L 10824234 0.000000 6.889764 3.661417 7.086614 3.661417
+ L 10824234 0.000000 7.086614 3.661417 7.086614 3.464567
+ L 10824234 0.000000 3.582677 0.314961 3.779528 0.314961
+ L 10824234 0.000000 3.779528 0.314961 3.779528 0.118110
+ L 10824234 0.000000 3.779528 0.118110 3.582677 0.118110
+ L 10824234 0.000000 3.582677 0.118110 3.582677 0.314961
+ L 10824234 0.000000 3.582677 3.464567 3.779528 3.464567
+ L 10824234 0.000000 3.779528 3.464567 3.779528 3.661417
+ L 10824234 0.000000 3.779528 3.661417 3.582677 3.661417
+ L 10824234 0.000000 3.582677 3.661417 3.582677 3.464567
+ END
+STRUCTURE N "Kato Unitrack Industrial Building 23-310"
+ L 10824234 0 0.000000 0.000000 0.000000 2.952756
+ L 10824234 0 0.000000 2.952756 5.905512 2.952756
+ L 10824234 0 5.905512 2.952756 5.905512 0.000000
+ L 10824234 0 5.905512 0.000000 0.000000 0.000000
+ END
+STRUCTURE N "Kato Unitrack Station Office 23-315a"
+ L 10824234 0 0.000000 0.000000 0.000000 1.574803
+ L 10824234 0 0.000000 1.574803 2.421260 1.574803
+ L 10824234 0 2.421260 1.574803 2.421260 0.000000
+ L 10824234 0 2.421260 0.000000 0.000000 0.000000
+ END
+STRUCTURE N "Kato Unitrack Signal Tower 23-315b"
+ L 10824234 0 0.000000 0.000000 0.000000 1.102362
+ L 10824234 0 0.000000 1.102362 2.283465 1.102362
+ L 10824234 0 2.283465 1.102362 2.283465 0.000000
+ L 10824234 0 2.283465 0.000000 0.000000 0.000000
+ END
+STRUCTURE N "Kato Unitrack Building 2x4 23-2x4"
+ L 10824234 0 0.000000 0.000000 0.000000 2.000000
+ L 10824234 0 0.000000 2.000000 4.000000 2.000000
+ L 10824234 0 4.000000 2.000000 4.000000 0.000000
+ L 10824234 0 4.000000 0.000000 0.000000 0.000000
+ END
+STRUCTURE N "Kato Unitrack Building 4x5 23-4x5"
+ L 10824234 0 0.000000 0.000000 0.000000 4.000000
+ L 10824234 0 0.000000 4.000000 5.000000 4.000000
+ L 10824234 0 5.000000 4.000000 5.000000 0.000000
+ L 10824234 0 5.000000 0.000000 0.000000 0.000000
+ END
+STRUCTURE N "Kato Unitrack Building 4x6 23-4x6"
+ L 10824234 0 0.000000 0.000000 0.000000 4.000000
+ L 10824234 0 0.000000 4.000000 6.000000 4.000000
+ L 10824234 0 6.000000 4.000000 6.000000 0.000000
+ L 10824234 0 6.000000 0.000000 0.000000 0.000000
+ END
+##########################################################################
+##########################################################################
+
+SUBCONTENTS Kato Unitrack N-Scale Turntable and Accessories
+TURNOUT N "Kato Unitrack 3 Stall Round House 20-240"
+ P "Normal" 1
+ E -0.148334 1.695463 260.000000
+ E 0.000000 0.000000 270.000000
+ E -0.148334 -1.695463 280.000000
+ S 0 0.000000 -0.148334 1.695463 7.063251 2.967059
+ S 0 0.000000 0.000000 0.000000 7.322835 0.000000
+ S 0 0.000000 -0.148334 -1.695463 7.063251 -2.967059
+ F 12632256 0.000000 8
+ -0.296668 2.536705 0
+ 7.338100 4.582435 0
+ 7.874016 1.543107 0
+ 7.874016 -1.543107 0
+ 7.338100 -4.582435 0
+ -0.296668 -2.536705 0
+ 0.000000 -0.854220 0
+ 0.000000 0.854220 0
+ G 0 0.000000 0.200000 0.750000 0.000000 0
+ G 0 0.000000 0.200000 7.125000 0.000000 0
+ G 0 0.000000 0.200000 0.590272 1.825699 0
+ G 0 0.000000 0.200000 6.868421 2.932706 0
+ G 0 0.000000 0.200000 0.590272 -1.825699 0
+ G 0 0.000000 0.200000 6.868421 -2.932706 0
+ L 0 0.031250 -0.296668 2.536705 7.338100 4.582435
+ L 0 0.031250 0.000000 0.854220 7.874016 1.543107
+ L 0 0.031250 0.000000 -0.854220 7.874016 -1.543107
+ L 0 0.031250 -0.296668 -2.536705 7.338100 -4.582435
+ L 0 0.031250 0.000000 0.854220 -0.296668 2.536705
+ L 0 0.031250 0.000000 0.854220 0.000000 -0.854220
+ L 0 0.031250 0.000000 -0.854220 -0.296668 -2.536705
+ L 0 0.031250 7.874016 1.543107 7.338100 4.582435
+ L 0 0.031250 7.874016 1.543107 7.874016 -1.543107
+ L 0 0.031250 7.874016 -1.543107 7.338100 -4.582435
+END
+TURNOUT N "Kato Unitrack 139.5mm Straight Extension Line 20-285"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.492126 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 5.492126 0.000000
+ L 0 0.031250 0.000000 0.372299 5.492126 0.854220
+ L 0 0.031250 0.000000 -0.372299 5.492126 -0.854220
+ L 0 0.031250 5.492126 0.854220 5.492126 -0.854220
+END
+TURNOUT N "Kato Unitrack Curve (L) Extension Line 20-286L"
+ P "Normal" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 5.569398 -0.415987 100.000000
+ S 0 0.000000 0.000000 0.000000 0.935511 0.000000
+ C 0 0 26.000000 0.935511 -26.000000 0.000000 10.000000
+ S 0 0.000000 5.450363 -0.394998 5.569398 -0.415987
+ L 0 0.031250 0.000000 0.372299 5.492126 0.854220
+ L 0 0.031250 0.000000 -0.372299 5.492126 -0.854220
+ L 0 0.031250 5.642748 0.000000 5.492126 -0.854220
+ L 0 0.031250 5.642748 0.000000 5.492126 0.854220
+END
+TURNOUT N "Kato Unitrack Curve (R) Extension Line 20-286R"
+ P "Normal" 1 2 3
+ E 0.000000 0.000000 270.000000
+ E 5.569398 0.415987 80.000000
+ S 0 0.000000 0.000000 0.000000 0.935511 0.000000
+ C 0 0 -26.000000 0.935511 26.000000 170.000000 10.000000
+ S 0 0.000000 5.450363 0.394998 5.569398 0.415987
+ L 0 0.031250 0.000000 -0.372299 5.492126 -0.854220
+ L 0 0.031250 0.000000 0.372299 5.492126 0.854220
+ L 0 0.031250 5.642748 0.000000 5.492126 -0.854220
+ L 0 0.031250 5.642748 0.000000 5.492126 0.854220
+END
+TURNOUT N "Kato Unitrack Curve 15R 381mm 10° 381-10"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.604723 -0.227884 100.000000
+ C 0 0 15.000000 0.000000 -15.000000 0.000000 10.000000
+ A 11579568 0.053333 14.554226 0.000000 -15.000000 0.000000 10.000000
+ A 11579568 0.053333 15.445774 0.000000 -15.000000 0.000000 10.000000
+END
+TURNOUT N "Kato Unitrack Track Turntable Section 20-283A"
+ P "Normal" 1
+ E 3.101756 0.546923 260.000000
+ E 4.206758 0.741765 80.000000
+ E 3.149606 0.000000 270.000000
+ E 4.271654 0.000000 90.000000
+ E 3.101756 -0.546923 280.000000
+ E 4.206758 -0.741765 100.000000
+ S 0 0.000000 3.101756 0.546923 4.206758 0.741765
+ S 0 0.000000 3.149606 0.000000 4.271654 0.000000
+ S 0 0.000000 3.101756 -0.546923 4.206758 -0.741765
+ A 11579568 0.031250 3.149606 0.000000 0.000000 75.000000 30.00000
+ A 11579568 0.031250 4.271654 0.000000 0.000000 75.000000 30.000000
+ L 0 0.031250 3.042286 0.815178 4.126100 1.105585
+ L 0 0.031250 3.042286 -0.815178 4.126100 -1.105585
+END
+TURNOUT N "Kato Unitrack 160mm Turn Table 20-283"
+ P "1" 1
+ P "2" 2
+ P "3" 3
+ P "4" 4
+ P "5" 5
+ P "6" 6
+ P "7" 7
+ P "8" 8
+ P "9" 9
+ P "10" 10
+ P "11" 11
+ P "12" 12
+ P "13" 13
+ P "14" 14
+ P "15" 15
+ P "16" 16
+ P "17" 17
+ P "18" 18
+ E 0.000000 0.000000 0.000000
+ E 0.000000 3.149606 0.000000
+ E 0.546923 3.101757 10.000000
+ E 1.077229 2.959662 20.000000
+ E 1.574803 2.727639 30.000000
+ E 2.024528 2.412738 40.000000
+ E 2.412738 2.024528 50.000000
+ E 2.727639 1.574803 60.000000
+ E 2.959662 1.077229 70.000000
+ E 3.101757 0.546923 80.000000
+ E 3.149606 0.000000 90.000000
+ E 3.101757 -0.546923 100.000000
+ E 2.959662 -1.077229 110.000000
+ E 2.727639 -1.574803 120.000000
+ E 2.412738 -2.024528 130.000000
+ E 2.024528 -2.412738 140.000000
+ E 1.574803 -2.727639 150.000000
+ E 1.077229 -2.959662 160.000000
+ E 0.546923 -3.101757 170.000000
+ E 0.000000 -3.149606 180.000000
+ E -0.546923 -3.101757 190.000000
+ E -1.077229 -2.959662 200.000000
+ E -1.574803 -2.727639 210.000000
+ E -2.024528 -2.412738 220.000000
+ E -2.412738 -2.024528 230.000000
+ E -2.727639 -1.574803 240.000000
+ E -2.959662 -1.077229 250.000000
+ E -3.101757 -0.546923 260.000000
+ E -3.149606 0.000000 270.000000
+ E -3.101757 0.546923 280.000000
+ E -2.959662 1.077229 290.000000
+ E -2.727639 1.574803 300.000000
+ E -2.412738 2.024528 310.000000
+ E -2.024528 2.412738 320.000000
+ E -1.574803 2.727639 330.000000
+ E -1.077229 2.959662 340.000000
+ E -0.546923 3.101757 350.000000
+ S 0 0.000000 0.000000 3.149606 0.000000 -3.149606
+ S 0 0.000000 0.546923 3.101757 -0.546923 -3.101757
+ S 0 0.000000 1.077229 2.959662 -1.077229 -2.959662
+ S 0 0.000000 1.574803 2.727639 -1.574803 -2.727639
+ S 0 0.000000 2.024528 2.412738 -2.024528 -2.412738
+ S 0 0.000000 2.412738 2.024528 -2.412738 -2.024528
+ S 0 0.000000 2.727639 1.574803 -2.727639 -1.574803
+ S 0 0.000000 2.959662 1.077229 -2.959662 -1.077229
+ S 0 0.000000 3.101757 0.546923 -3.101757 -0.546923
+ S 0 0.000000 3.149606 0.000000 -3.149606 0.000000
+ S 0 0.000000 3.101757 -0.546923 -3.101757 0.546923
+ S 0 0.000000 2.959662 -1.077229 -2.959662 1.077229
+ S 0 0.000000 2.727639 -1.574803 -2.727639 1.574803
+ S 0 0.000000 2.412738 -2.024528 -2.412738 2.024528
+ S 0 0.000000 2.024528 -2.412738 -2.024528 2.412738
+ S 0 0.000000 1.574803 -2.727639 -1.574803 2.727639
+ S 0 0.000000 1.077229 -2.959662 -1.077229 2.959662
+ S 0 0.000000 0.546923 -3.101757 -0.546923 3.101757
+ A 11579568 0.031250 3.149606 0.000000 0.000000 0.000000 360.000000
+ A 11579568 0.031250 4.271654 0.000000 0.000000 0.000000 360.000000
+ END
diff --git a/app/lib/params/lgb.xtp b/app/lib/params/lgb.xtp
index 3a740cf..7c00155 100644
--- a/app/lib/params/lgb.xtp
+++ b/app/lib/params/lgb.xtp
@@ -49,6 +49,12 @@ TURNOUT G "LGB Straight 150mm 10150"
E 5.905512 0.000000 90.000000
S 0 0.000000 0.000000 0.000000 5.905512 0.000000
END
+TURNOUT G "LGB Reverse Loop Track 150mm 10151"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.905512 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 5.905512 0.000000
+ END
TURNOUT G "LGB Insulated Double 150mm 10152"
P "Normal" 1
E 0.000000 0.000000 270.000000
@@ -61,7 +67,7 @@ TURNOUT G "LGB Insulated Single 150mm 10153"
E 5.905512 0.000000 90.000000
S 0 0.000000 0.000000 0.000000 5.905512 0.000000
END
-TURNOUT G "LGB Bumper 10320"
+TURNOUT G "LGB Bumper(old timer) 10320"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 5.905512 0.000000 90.000000
@@ -93,49 +99,49 @@ TURNOUT G "LGB Straight 1200mm 10610"
END
SUBCONTENTS LGB Curve Track
-TURNOUT G "LGB Curved R1 30 11000"
+TURNOUT G "LGB Curved R1 30° 11000"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 11.811024 3.164754 60.000000
C 0 0.000000 -23.622047 0.000000 23.622047 150.000000 30.000000
END
-TURNOUT G "LGB Curved R1 15 11020"
+TURNOUT G "LGB Curved R1 15° 11020"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 6.113836 0.804902 75.000000
C 0 0.000000 -23.622047 0.000000 23.622047 165.000000 15.000000
END
-TURNOUT G "LGB Curved R1 7.5 11040"
+TURNOUT G "LGB Curved R1 7.5° 11040"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 3.083296 0.202090 82.500000
C 0 0.000000 -23.622047 0.000000 23.622047 172.500000 7.500000
END
-TURNOUT G "LGB Curved Insulated Double R1 15 11152"
+TURNOUT G "LGB Curved Insulated Double R1 15° 11152"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 6.113836 0.804902 75.000000
C 0 0.000000 -23.622047 0.000000 23.622047 165.000000 15.000000
END
-TURNOUT G "LGB Curved R2 30 15000"
+TURNOUT G "LGB Curved R2 30° 15000"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 15.354331 4.114181 60.000000
C 0 0.000000 -30.708661 0.000000 30.708661 150.000000 30.000000
END
-TURNOUT G "LGB Curved R3 22.5 16000"
+TURNOUT G "LGB Curved R3 22.5° 16000"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 18.004201 3.581258 67.500000
C 0 0.000000 -47.047224 0.000000 47.047224 157.500000 22.500000
END
-TURNOUT G "LGB Curved R5 15 18000"
+TURNOUT G "LGB Curved R5 15° 18000"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 23.640165 3.112287 75.000000
C 0 0.000000 -91.338583 0.000000 91.338583 165.000000 15.000000
END
-TURNOUT G "LGB Curved R5 7.5 18020"
+TURNOUT G "LGB Curved R5 7.5° 18020"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 11.922077 0.781414 82.500000
@@ -203,6 +209,17 @@ TURNOUT G "LGB Electric Double-Slip Switch 12260"
C 0 0.000000 19.314484 3.540000 -19.314484 0.000000 22.500000
C 0 0.000000 -19.314484 11.223780 19.314484 180.000000 22.500000
END
+TURNOUT G "LGB Manual Switch R3 Left 16140"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 17.322835 0.000000 90.000000
+ E 18.004201 3.581258 67.500000
+ S 0 0.000000 0.000000 0.000000 1.770110 0.000000
+ S 0 0.000000 1.770110 0.000000 17.322835 0.000000
+ C 0 0.000000 -38.148607 1.770161 38.148607 157.499924 22.500152
+ S 0 0.000000 16.369032 2.903924 18.004201 3.581258
+ END
TURNOUT G "LGB Electric Switch R3 Left 16150"
P "Normal" 1 2
P "Reverse" 1 3 4
@@ -214,6 +231,17 @@ TURNOUT G "LGB Electric Switch R3 Left 16150"
C 0 0.000000 -38.148607 1.770161 38.148607 157.499924 22.500152
S 0 0.000000 16.369032 2.903924 18.004201 3.581258
END
+TURNOUT G "LGB Manual Switch R3 Right 16040"
+ P "Normal" 1 2
+ P "Reverse" 1 3 4
+ E 0.000000 0.000000 270.000000
+ E 17.322835 0.000000 90.000000
+ E 18.004201 -3.581258 112.500000
+ S 0 0.000000 0.000000 0.000000 1.770110 0.000000
+ S 0 0.000000 1.770110 0.000000 17.322835 0.000000
+ C 0 0.000000 38.148607 1.769959 -38.148607 0.000076 22.500152
+ S 0 0.000000 16.369032 -2.903924 18.004201 -3.581258
+ END
TURNOUT G "LGB Electric Switch R3 Right 16050"
P "Normal" 1 2
P "Reverse" 1 3 4
@@ -247,7 +275,7 @@ TURNOUT G "LGB Manual Switch R5 Right 18050"
C 0 0.000000 77.893327 1.769910 -77.893327 0.000076 15.000152
S 0 0.000000 21.930680 -2.654200 23.640165 -3.112287
END
-TURNOUT G "LGB 3-Way Switch R1 14236"
+TURNOUT G "LGB 3-Way Switch R1 12360"
P "Left" 1 2 3 4
P "Normal" 1 2 7
P "Right" 1 5 6
@@ -265,16 +293,16 @@ TURNOUT G "LGB 3-Way Switch R1 14236"
END
SUBCONTENTS LGB Crossings
-TURNOUT G "LGB Crossing 30 13000"
+TURNOUT G "LGB Crossing 30° 13000"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
- E 11.811024 0.000000 90.000000
- E 0.092231 3.356299 300.000000
- E 11.718793 -3.356299 120.000000
- S 0 0.000000 0.000000 0.000000 11.811024 0.000000
- S 0 0.000000 0.092231 3.356299 11.718793 -3.356299
- END
-TURNOUT G "LGB Crossing 90 13100"
+ E 13.425197 0.000000 90.000000
+ E 1.598270 2.952747 300.000000
+ E 11.826927 -2.952747 120.000000
+ S 0 0.000000 0.000000 0.000000 13.425197 0.000000
+ S 0 0.000000 1.598270 2.952747 11.826927 -2.952747
+END
+TURNOUT G "LGB Crossing 90° 13100"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 5.905512 0.000000 90.000000
@@ -283,7 +311,7 @@ TURNOUT G "LGB Crossing 90 13100"
S 0 0.000000 0.000000 0.000000 5.905512 0.000000
S 0 0.000000 2.952756 3.641732 2.952756 -3.641732
END
-TURNOUT G "LGB Crossing 22.5 R3 13200"
+TURNOUT G "LGB Crossing 22.5° R3 13200"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 14.763780 0.000000 90.000000
@@ -328,28 +356,28 @@ TURNOUT G "LGB Turntable 14000"
E 5.574522 -13.458088 157.500000
E -5.574522 13.458088 337.500000
S 0 0 0.000000 14.566929 0.000000 9.251969
- S 16777215 0 0.000000 9.251969 -0.000000 -9.251969
+ S 0 0 0.000000 9.251969 -0.000000 -9.251969
S 0 0 -0.000000 -9.251969 -0.000000 -14.566929
S 0 0 5.574522 13.458088 3.540575 8.547704
- S 16777215 0 3.540575 8.547704 -3.540575 -8.547704
+ S 0 0 3.540575 8.547704 -3.540575 -8.547704
S 0 0 -3.540575 -8.547704 -5.574522 -13.458088
S 0 0 10.300374 10.300374 6.542130 6.542130
- S 16777215 0 6.542130 6.542130 -6.542130 -6.542130
+ S 0 0 6.542130 6.542130 -6.542130 -6.542130
S 0 0 -6.542130 -6.542130 -10.300374 -10.300374
S 0 0 13.458088 5.574522 8.547704 3.540575
- S 16777215 0 8.547704 3.540575 -8.547704 -3.540575
+ S 0 0 8.547704 3.540575 -8.547704 -3.540575
S 0 0 -8.547704 -3.540575 -13.458088 -5.574522
S 0 0 14.566929 0.000000 9.251969 0.000000
- S 16777215 0 9.251969 0.000000 -9.251969 -0.000000
+ S 0 0 9.251969 0.000000 -9.251969 -0.000000
S 0 0 -9.251969 -0.000000 -14.566929 -0.000000
S 0 0 13.458088 -5.574522 8.547704 -3.540575
- S 16777215 0 8.547704 -3.540575 -8.547704 3.540575
+ S 0 0 8.547704 -3.540575 -8.547704 3.540575
S 0 0 -8.547704 3.540575 -13.458088 5.574522
S 0 0 10.300374 -10.300374 6.542130 -6.542130
- S 16777215 0 6.542130 -6.542130 -6.542130 6.542130
+ S 0 0 6.542130 -6.542130 -6.542130 6.542130
S 0 0 -6.542130 6.542130 -10.300374 10.300374
S 0 0 5.574522 -13.458088 3.540575 -8.547704
- S 16777215 0 3.540575 -8.547704 -3.540575 8.547704
+ S 0 0 3.540575 -8.547704 -3.540575 8.547704
S 0 0 -3.540575 8.547704 -5.574522 13.458088
A 16711680 0 14.566929 0.000000 0.000000 0.000000 360.000000
A 16711680 0 9.251969 0.000000 0.000000 0.000000 360.000000
diff --git a/app/lib/params/minitrix.xtp b/app/lib/params/minitrix.xtp
index 4a2dc03..0f9765b 100644
--- a/app/lib/params/minitrix.xtp
+++ b/app/lib/params/minitrix.xtp
@@ -3,7 +3,7 @@ CONTENTS Minitrix N-Scale
#
# Design Armin Poschmann 08.01.1999 nach Vorgaben aus dem Minitrix Katalog
# zur Benutzung mit xtrkcad
-# Genauigkeit der Berechnungen : Eingabe der Werte in cm mit 10 gltigen
+# Genauigkeit der Berechnungen : Eingabe der Werte in cm mit 10 gültigen
# Ziffern
#
############################################################################
@@ -66,7 +66,7 @@ TURNOUT N "Minitrix Gerade-312,6mm 14902"
S 0 0.000000 0.000000 0.000000 12.307087 0.000000
END
############################################################################
-SUBCONTENTS Bgen
+SUBCONTENTS Bögen
#################
TURNOUT N "Minitrix Bogen-R1-6 14916"
U "Curved Section" "" "Minitrix" "Bogen-R1-6" "14916" 7.661417 6.000000
diff --git a/app/lib/params/mkcarpart.c b/app/lib/params/mkcarpart.c
index dfdbe45..7680a8b 100644
--- a/app/lib/params/mkcarpart.c
+++ b/app/lib/params/mkcarpart.c
@@ -54,7 +54,7 @@ void readMap(
map_t * map )
{
FILE * mapF;
- char line[256], *cp1;
+ char line[256];
int len;
mapF = fopen( mapFile, "r" );
if ( mapF == NULL ) {
@@ -62,13 +62,15 @@ void readMap(
exit(1);
}
while ( fgets( line, sizeof line, mapF ) != NULL ) {
+ char *cp1;
+
if ( map->cnt+1 > map->max ) {
map->max += 10;
map->map = (map_element_t*)realloc( map->map, map->max * sizeof *(map_element_t*)0 );
}
cp1 = strchr( line, '\t' );
if ( cp1 == NULL ) {
- fprintf( stderr, "bad map line: %s\n", cp1 );
+ fprintf( stderr, "bad map line: %s\n", line );
continue;
}
while ( *cp1 == '\t' )
@@ -100,8 +102,6 @@ void readRoadnameMap(
{
FILE * mapF;
char line[256];
- int len;
- int currLen = 0;
roadname_p r_p;
char * cp;
mapF = fopen( mapFile, "r" );
@@ -110,7 +110,7 @@ void readRoadnameMap(
exit(1);
}
while ( fgets( line, sizeof line, mapF ) != NULL ) {
- len = strlen( line );
+ int len = strlen( line );
if ( line[len-1] == '\n' )
line[--len] = '\0';
if ( line[0] == '\0' || line[0] == '\n' || line[0] == '#' )
@@ -141,14 +141,6 @@ void readRoadnameMap(
alias_last = r_p;
}
fclose( mapF );
-#ifdef LATER
- for ( r_p=roadnames; r_p; r_p=r_p->next ) {
- roadname_p r_p1;
- for ( r_p1=r_p; r_p1; r_p1=r_p1->alias )
- printf( "%s ", r_p1->name );
- printf("\n");
- }
-#endif
}
@@ -173,8 +165,7 @@ long lookupColor(
return 0x823F00;
if ( !isdigit( colorS[0] ) )
colorS = lookupMap( &colorMap, colorS );
- if ( colorS == NULL )
- return 0x823F00;
+
return strtol( colorS, &colorS, 10 );
}
@@ -310,6 +301,7 @@ void processFile(
outF = fopen( outFile, "w" );
if ( outF == NULL ) {
perror( outFile );
+ fclose( inF );
return;
}
while ( fgets( line, sizeof line, inF ) != NULL ) {
@@ -403,7 +395,7 @@ void processFile(
cp = line+5;
memset( blanks, 0, sizeof blanks );
tab[0] = blanks;
- for ( cp=line+5,inx=1; cp; inx++ ) {
+ for ( inx=1; cp; inx++ ) {
tab[inx] = cp;
cp = strchr( cp, '%' );
if ( cp )
@@ -411,7 +403,7 @@ void processFile(
while ( *tab[inx] == ' ' ) tab[inx]++;
cq = tab[inx]+strlen(tab[inx]);
while ( cq[-1] == ' ' ) cq--;
- cq = '\0';
+ *cq = '\0';
}
for ( ; inx<sizeof tab/sizeof tab[0]; inx++ ) {
tab[inx] = blanks;
diff --git a/app/lib/params/mrkholde.xtp b/app/lib/params/mrkholde.xtp
index 23a703f..9cbdaf5 100644
--- a/app/lib/params/mrkholde.xtp
+++ b/app/lib/params/mrkholde.xtp
@@ -89,8 +89,8 @@ TURNOUT HO " Maerklin Modellgleis 28mm 3900D 1/8"
L3 16754688 0.053333 -0.000000 -0.787402 0 1.102362 -0.787402 0
L3 16754688 0.053333 0.000000 0.787402 0 1.102362 0.787402 0
END
-TURNOUT HO " Maerklin Modellgleis 22.5MG 3900A 1/1"
- U "Kurve" "jr" " Maerklin Modellgleis " " 22.5MG " "3900A 1/1" 23.031496 22.500000 1.476378 0.053333 16754688
+TURNOUT HO " Maerklin Modellgleis 22.5°MG 3900A 1/1"
+ U "Kurve" "jr" " Maerklin Modellgleis " " 22.5°MG " "3900A 1/1" 23.031496 22.500000 1.476378 0.053333 16754688
P "Normal" 1
E 0.000000 0.000000 270.000000
E 8.813772 1.753168 67.500000
@@ -98,8 +98,8 @@ TURNOUT HO " Maerklin Modellgleis 22.5MG 3900A 1/1"
A3 16754688 0.053333 23.818898 0.000000 23.031496 0 157.500000 22.500000
A3 16754688 0.053333 22.244094 0.000000 23.031496 0 157.500000 22.500000
END
-TURNOUT HO " Maerklin Modellgleis 11.25MG 3900A 1/2"
- U "Kurve" "jr" " Maerklin Modellgleis " " 11.25MG " "3900A 1/2" 23.031496 11.250000 1.476378 0.053333 16754688
+TURNOUT HO " Maerklin Modellgleis 11.25°MG 3900A 1/2"
+ U "Kurve" "jr" " Maerklin Modellgleis " " 11.25°MG " "3900A 1/2" 23.031496 11.250000 1.476378 0.053333 16754688
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.493222 0.442544 78.750000
@@ -107,8 +107,8 @@ TURNOUT HO " Maerklin Modellgleis 11.25MG 3900A 1/2"
A3 16754688 0.053333 23.818898 0.000000 23.031496 0 168.750000 11.250000
A3 16754688 0.053333 22.244094 0.000000 23.031496 0 168.750000 11.250000
END
-TURNOUT HO " Maerklin Modellgleis 5.6MG 3900A 1/4"
- U "Kurve" "jr" " Maerklin Modellgleis " " 5.6MG " "3900A 1/4" 23.031496 5.625000 1.476378 0.053333 16754688
+TURNOUT HO " Maerklin Modellgleis 5.6°MG 3900A 1/4"
+ U "Kurve" "jr" " Maerklin Modellgleis " " 5.6°MG " "3900A 1/4" 23.031496 5.625000 1.476378 0.053333 16754688
P "Normal" 1
E 0.000000 0.000000 270.000000
E 2.257481 0.110903 84.375000
@@ -116,8 +116,8 @@ TURNOUT HO " Maerklin Modellgleis 5.6MG 3900A 1/4"
A3 16754688 0.053333 23.818898 0.000000 23.031496 0 174.375000 5.625000
A3 16754688 0.053333 22.244094 0.000000 23.031496 0 174.375000 5.625000
END
-TURNOUT HO " Maerklin Modellgleis 5.6MG 3900ZL"
- U "Kurve" "jr" " Maerklin Modellgleis " " 5.6MG " "3900ZL" 23.031496 5.625000 1.476378 0.053333 16754688
+TURNOUT HO " Maerklin Modellgleis 5.6°MG 3900ZL"
+ U "Kurve" "jr" " Maerklin Modellgleis " " 5.6°MG " "3900ZL" 23.031496 5.625000 1.476378 0.053333 16754688
P "Normal" 1
E 0.000000 0.000000 270.000000
E 2.257481 0.110903 84.375000
@@ -125,8 +125,8 @@ TURNOUT HO " Maerklin Modellgleis 5.6MG 3900ZL"
A3 16754688 0.053333 23.818898 0.000000 23.031496 0 174.375000 5.625000
A3 16754688 0.053333 22.244094 0.000000 23.031496 0 174.375000 5.625000
END
-TURNOUT HO " Maerklin Modellgleis 5.6MG 3900ZR"
- U "Kurve" "jr" " Maerklin Modellgleis " " 5.6MG " "3900ZR" 23.031496 5.625000 1.476378 0.053333 16754688
+TURNOUT HO " Maerklin Modellgleis 5.6°MG 3900ZR"
+ U "Kurve" "jr" " Maerklin Modellgleis " " 5.6°MG " "3900ZR" 23.031496 5.625000 1.476378 0.053333 16754688
P "Normal" 1
E 0.000000 0.000000 270.000000
E 2.257481 0.110903 84.375000
@@ -134,8 +134,8 @@ TURNOUT HO " Maerklin Modellgleis 5.6MG 3900ZR"
A3 16754688 0.053333 23.818898 0.000000 23.031496 0 174.375000 5.625000
A3 16754688 0.053333 22.244094 0.000000 23.031496 0 174.375000 5.625000
END
-TURNOUT HO " Maerklin Modellgleis 22.5MGP 3800A 1/1"
- U "Kurve" "jr" " Maerklin Modellgleis " " 22.5MGP " "3800A 1/1" 21.062992 22.500000 1.476378 0.053333 16754688
+TURNOUT HO " Maerklin Modellgleis 22.5°MGP 3800A 1/1"
+ U "Kurve" "jr" " Maerklin Modellgleis " " 22.5°MGP " "3800A 1/1" 21.062992 22.500000 1.476378 0.053333 16754688
P "Parallel" 1
E 0.000000 0.000000 270.000000
E 8.060458 1.603325 67.500000
@@ -143,8 +143,8 @@ TURNOUT HO " Maerklin Modellgleis 22.5MGP 3800A 1/1"
A3 16754688 0.053333 21.850394 0.000000 21.062992 0 157.500000 22.500000
A3 16754688 0.053333 20.275591 0.000000 21.062992 0 157.500000 22.500000
END
-TURNOUT HO " Maerklin Modellgleis 11.25MGP 3800A 1/2"
- U "Kurve" "jr" " Maerklin Modellgleis " " 11.25MGP " "3800A 1/2" 21.062992 11.250000 1.476378 0.053333 16754688
+TURNOUT HO " Maerklin Modellgleis 11.25°MGP 3800A 1/2"
+ U "Kurve" "jr" " Maerklin Modellgleis " " 11.25°MGP " "3800A 1/2" 21.062992 11.250000 1.476378 0.053333 16754688
P "Parallel" 1
E 0.000000 0.000000 270.000000
E 4.109186 0.404719 88.750000
@@ -152,7 +152,7 @@ TURNOUT HO " Maerklin Modellgleis 11.25MGP 3800A 1/2"
A3 16754688 0.053333 21.850394 0.000000 21.062992 0 168.750000 11.250000
A3 16754688 0.053333 20.275591 0.000000 21.062992 0 168.750000 11.250000
END
-TURNOUT HO " Maerklin Modellgleis L16.9MG 3900MWL"
+TURNOUT HO " Maerklin Modellgleis L16.9°MG 3900MWL"
P "P0" 4 2 3
P "P1" 1 3
E 0.000000 0.000000 270.000000
@@ -194,7 +194,7 @@ TURNOUT HO " Maerklin Modellgleis L16.9MG 3900MWL"
L3 16754688 0.010417 5.835667 1.556663 0 6.457247 1.745226 0
L3 16754688 0.010417 5.835667 1.556662 0 6.457247 1.745225 0
END
-TURNOUT HO " Maerklin Modellgleis R16.9MG 3900MWR"
+TURNOUT HO " Maerklin Modellgleis R16.9°MG 3900MWR"
P "P0" 4 2 3
P "P1" 1 3
E 0.000000 0.000000 270.000000
@@ -230,8 +230,8 @@ TURNOUT HO " Maerklin Modellgleis R16.9MG 3900MWR"
L3 16754688 0.010417 5.835663 -1.556661 0 6.457243 -1.745224 0
L3 16754688 0.010417 5.835663 -1.556661 0 6.457243 -1.745224 0
END
-TURNOUT HO "Maerklin Modellgleis Kr16.9MG 3900K"
- U "Crossing" "" "Maerklin Modellgleis" "Kr16.9MG" "3900K" 6.968504 16.875000 6.968504 1.574803 0.052083 0
+TURNOUT HO "Maerklin Modellgleis Kr16.9°MG 3900K"
+ U "Crossing" "" "Maerklin Modellgleis" "Kr16.9°MG" "3900K" 6.968504 16.875000 6.968504 1.574803 0.052083 0
P "P0" 2 0 1
E 0.000000 0.000000 270.000000
E 6.818475 -1.011420 106.874852
@@ -272,8 +272,8 @@ TURNOUT HO " Maerklin Modellgleis AnschlG 224mm 3900DA"
L3 16711680 0.052083 4.842749 0.000000 0 4.842749 -1.023622 0
L3 0 0.052083 3.661581 0.000000 0 3.661581 -1.023622 0
END
-TURNOUT HO " Maerklin Modellgleis AnschlG 22.5MG 3900AA"
- U "Kurve" "jr" " Maerklin Modellgleis " " AnschlG 22.5MG " "3900AA" 23.031496 22.500000 1.476378 0.053333 16754688
+TURNOUT HO " Maerklin Modellgleis AnschlG 22.5°MG 3900AA"
+ U "Kurve" "jr" " Maerklin Modellgleis " " AnschlG 22.5°MG " "3900AA" 23.031496 22.500000 1.476378 0.053333 16754688
P "P0" 1
E 0.000000 0.000000 270.000000
E 8.813882 1.753189 67.500000
@@ -318,8 +318,8 @@ TURNOUT HO " Maerklin Modellgleis KontaktG 224mm 3900BSD"
L3 0 0.041667 6.732284 -0.412162 0 6.732284 -0.246069 0
L3 0 0.041667 6.621555 -0.412162 0 6.621556 -0.246069 0
END
-TURNOUT HO " Maerklin Modellgleis KontaktG 22.5MG 3900BSA"
- U "Kurve" "jr" " Maerklin Modellgleis " " KontaktG 22.5MG " "3900BSA" 23.031496 22.500000 1.476378 0.053333 16754688
+TURNOUT HO " Maerklin Modellgleis KontaktG 22.5°MG 3900BSA"
+ U "Kurve" "jr" " Maerklin Modellgleis " " KontaktG 22.5°MG " "3900BSA" 23.031496 22.500000 1.476378 0.053333 16754688
P "P0" 1
E 0.000000 0.000000 270.000000
E 8.813882 1.753189 67.500000
@@ -353,8 +353,8 @@ TURNOUT HO " Maerklin Modellgleis KontaktG 22.5MG 3900BSA"
L3 0 0.041667 7.055398 0.677028 0 6.999767 0.833526 0
L3 0 0.041667 6.951065 0.639940 0 6.895434 0.796438 0
END
-TURNOUT HO " Maerklin Modellgleis KontaktG 22.5MGP 3800BSA"
- U "Kurve" "jr" " Maerklin Modellgleis " " KontaktG 22.5MGP " "3800BSA" 21.062992 22.500000 1.476378 0.053333 16754688
+TURNOUT HO " Maerklin Modellgleis KontaktG 22.5°MGP 3800BSA"
+ U "Kurve" "jr" " Maerklin Modellgleis " " KontaktG 22.5°MGP " "3800BSA" 21.062992 22.500000 1.476378 0.053333 16754688
P "P0" 1
E 0.000000 0.000000 270.000000
E 8.060559 1.603344 67.500000
@@ -392,7 +392,7 @@ TURNOUT HO " Maerklin Modellgleis KontaktG 22.5MGP 3800BSA"
SUBCONTENTS 13 Modellgleis Kombination
#XTrkCAD Gleisparameter fuer Maerklin HO Modellgleis Kombination
#XTrkCAD track parameter for Maerklin HO Modeltrack Combination
-TURNOUT HO " Maerklin Modellgleis WechselL16.9MG 2x3900MWL+2x3900DE"
+TURNOUT HO " Maerklin Modellgleis WechselL16.9°MG 2x3900MWL+2x3900DE"
P "P0" 9 5 7 0 3 1 10
P "P1" 3 2 4 8 6 7
E 0.000000 0.000000 270.000000
@@ -476,7 +476,7 @@ TURNOUT HO " Maerklin Modellgleis WechselL16.9MG 2x3900MWL+2x3900DE"
L3 16754688 0.052083 8.818898 -0.787402 0 13.346457 -0.787402 0
L3 16754688 0.052083 8.818898 0.787402 0 13.346457 0.787402 0
END
-TURNOUT HO " Maerklin Modellgleis WechselR16.9MG 2x3900MWR+2x3900DE"
+TURNOUT HO " Maerklin Modellgleis WechselR16.9°MG 2x3900MWR+2x3900DE"
P "P0" 10 5 7 0 3 1 9
P "P1" 3 2 4 8 6 7
E 0.000000 0.000000 270.000000
diff --git a/app/lib/params/mrkhomde.xtp b/app/lib/params/mrkhomde.xtp
index 63d18bf..924e394 100644
--- a/app/lib/params/mrkhomde.xtp
+++ b/app/lib/params/mrkhomde.xtp
@@ -83,8 +83,8 @@ TURNOUT HO " Maerklin M 8 5208"
L3 16754688 0.053333 -0.000000 -0.738189 0 0.314961 -0.738189 0
L3 16754688 0.053333 0.000000 0.738189 0 0.314961 0.738189 0
END
-TURNOUT HO " Maerklin M 45I 5120"
- U "Kurve" "jr" " Maerklin M " " 45I " "5120" 11.259843 45.000000 1.476378 0.053333 16754688
+TURNOUT HO " Maerklin M 45°I 5120"
+ U "Kurve" "jr" " Maerklin M " " 45°I " "5120" 11.259843 45.000000 1.476378 0.053333 16754688
P "Normal" 1
E 0.000000 0.000000 270.000000
E 7.961911 3.297932 45.000000
@@ -92,8 +92,8 @@ TURNOUT HO " Maerklin M 45I 5120"
A3 16754688 0.053333 11.998032 0.000000 11.259843 0 135.000000 45.000000
A3 16754688 0.053333 10.521654 0.000000 11.259843 0 135.000000 45.000000
END
-TURNOUT HO " Maerklin M 30 5100"
- U "Kurve" "jr" " Maerklin M " " 30 " "5100" 14.173228 30.000000 1.476378 0.053333 16754688
+TURNOUT HO " Maerklin M 30° 5100"
+ U "Kurve" "jr" " Maerklin M " " 30° " "5100" 14.173228 30.000000 1.476378 0.053333 16754688
P "Normal" 1
E 0.000000 0.000000 270.000000
E 7.086614 1.898853 60.000000
@@ -101,8 +101,8 @@ TURNOUT HO " Maerklin M 30 5100"
A3 16754688 0.053333 14.911417 0.000000 14.173228 0 150.000000 30.000000
A3 16754688 0.053333 13.435039 0.000000 14.173228 0 150.000000 30.000000
END
-TURNOUT HO " Maerklin M 15 5101"
- U "Kurve" "jr" " Maerklin M " " 15 " "5101" 14.173228 15.000000 1.476378 0.053333 16754688
+TURNOUT HO " Maerklin M 15° 5101"
+ U "Kurve" "jr" " Maerklin M " " 15° " "5101" 14.173228 15.000000 1.476378 0.053333 16754688
P "Normal" 1
E 0.000000 0.000000 270.000000
E 3.668301 0.482941 75.000000
@@ -110,8 +110,8 @@ TURNOUT HO " Maerklin M 15 5101"
A3 16754688 0.053333 14.911417 0.000000 14.173228 0 165.000000 15.000000
A3 16754688 0.053333 13.435039 0.000000 14.173228 0 165.000000 15.000000
END
-TURNOUT HO " Maerklin M 7.5 5102"
- U "Kurve" "jr" " Maerklin M " " 7.5 " "5102" 14.173228 7.500000 1.476378 0.053333 16754688
+TURNOUT HO " Maerklin M 7.5° 5102"
+ U "Kurve" "jr" " Maerklin M " " 7.5° " "5102" 14.173228 7.500000 1.476378 0.053333 16754688
P "Normal" 1
E 0.000000 0.000000 270.000000
E 1.849978 0.121254 82.500000
@@ -119,8 +119,8 @@ TURNOUT HO " Maerklin M 7.5 5102"
A3 16754688 0.053333 14.911417 0.000000 14.173228 0 172.500000 7.500000
A3 16754688 0.053333 13.435039 0.000000 14.173228 0 172.500000 7.500000
END
-TURNOUT HO " Maerklin M 30P 5200"
- U "Kurve" "jr" " Maerklin M " " 30P " "5200" 17.220472 30.000000 1.476378 0.053333 16754688
+TURNOUT HO " Maerklin M 30°P 5200"
+ U "Kurve" "jr" " Maerklin M " " 30°P " "5200" 17.220472 30.000000 1.476378 0.053333 16754688
P "Normal" 1
E 0.000000 0.000000 270.000000
E 8.610236 2.307106 60.000000
@@ -128,8 +128,8 @@ TURNOUT HO " Maerklin M 30P 5200"
A3 16754688 0.053333 17.958661 0.000000 17.220472 0 150.000000 30.000000
A3 16754688 0.053333 16.482283 0.000000 17.220472 0 150.000000 30.000000
END
-TURNOUT HO " Maerklin M 15P 5201"
- U "Kurve" "jr" " Maerklin M " " 15P " "5201" 17.220472 15.000000 1.476378 0.053333 16754688
+TURNOUT HO " Maerklin M 15°P 5201"
+ U "Kurve" "jr" " Maerklin M " " 15°P " "5201" 17.220472 15.000000 1.476378 0.053333 16754688
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.456986 0.586773 75.000000
@@ -141,7 +141,7 @@ TURNOUT HO " Maerklin M 15P 5201"
SUBCONTENTS 02 Weiche Normalkreis
#Maerklin HO M-Gleis Weichen und Kreuzung Normalkreis r=360cm Entkuppler Prellbock
#Maerklin HO M-track turnouts double slip crossing normal radius R360 uncoupler bumper
-TURNOUT HO " Maerklin M L30 5118"
+TURNOUT HO " Maerklin M L30° 5118"
P "P0" 1 2
P "P1" 1 3 4 5
E 0.050937 0.764231 270.000000
@@ -167,7 +167,7 @@ TURNOUT HO " Maerklin M L30 5118"
A3 16754688 0.052083 14.911417 0.050942 14.937461 0 150.000000 7.500000
A3 16754688 0.052083 13.435039 0.050942 14.937461 0 150.000000 7.500000
END
-TURNOUT HO " Maerklin M R30 5119"
+TURNOUT HO " Maerklin M R30° 5119"
P "P0" 1 2
P "P1" 1 3 4 5
E 0.051021 2.564184 270.000000
@@ -193,7 +193,7 @@ TURNOUT HO " Maerklin M R30 5119"
A3 16754688 0.052083 14.911417 0.051024 -11.609046 0 22.500000 7.500000
A3 16754688 0.052083 13.435039 0.051024 -11.609046 0 22.500000 7.500000
END
-TURNOUT HO " Maerklin M L22.5 5138"
+TURNOUT HO " Maerklin M L22.5° 5138"
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.015738 0.764231 270.000000
@@ -213,7 +213,7 @@ TURNOUT HO " Maerklin M L22.5 5138"
A3 16754688 0.052083 10.174306 0.664338 11.676726 0 157.500000 22.500000
L3 16754688 0.052083 4.557876 2.276893 0 5.157105 2.525102 0
END
-TURNOUT HO " Maerklin M R22.5 5139"
+TURNOUT HO " Maerklin M R22.5° 5139"
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.015740 1.784930 270.000000
@@ -233,7 +233,7 @@ TURNOUT HO " Maerklin M R22.5 5139"
A3 16754688 0.052083 10.174306 0.664340 -9.127565 0 0.000000 22.500000
L3 16754688 0.052083 4.557878 0.272268 0 5.157107 0.024059 0
END
-TURNOUT HO " Maerklin M DKW30 5128"
+TURNOUT HO " Maerklin M DKW30° 5128"
P "Normal" 1 2 3 0 4 5 6
P "Reverse" 1 7 6 0 4 8 3
E 0.215299 0.738192 255.000000
@@ -272,8 +272,8 @@ TURNOUT HO " Maerklin M DKW30 5128"
A3 16754688 0.052083 8.599449 3.885055 -7.945535 0 345.000000 30.000000
a3 16754688 0.052083 8.599449 3.885059 11.388534 0 165.000000 30.000000
END
-TURNOUT HO " Maerklin M Kr30 5114"
- U "Kreuzung" "jr" " Maerklin M " " Kr30 " "5114" 7.598425 30.000000 7.598425 1.476378 0.053333 16754688
+TURNOUT HO " Maerklin M Kr30° 5114"
+ U "Kreuzung" "jr" " Maerklin M " " Kr30° " "5114" 7.598425 30.000000 7.598425 1.476378 0.053333 16754688
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 7.598425 0.000000 90.000000
@@ -415,8 +415,8 @@ TURNOUT HO " Maerklin M Prellb m/L 7191"
SUBCONTENTS 03 Weiche Parallelkreis
#Maerklin HO M-Gleis Weichen und Kreuzungen Parellelkreis r=437,4cm
#Maerklin HO M-track turnouts double slip crossings parallel radius R437.4
-TURNOUT HO " Maerklin M 24.3P 5206"
- U "Kurve" "jr" " Maerklin M " " 24.3P " "5206" 17.220472 24.299000 1.476378 0.053333 16754688
+TURNOUT HO " Maerklin M 24.3°P 5206"
+ U "Kurve" "jr" " Maerklin M " " 24.3°P " "5206" 17.220472 24.299000 1.476378 0.053333 16754688
P "Normal" 1
E 0.000000 0.000000 270.000000
E 7.086198 1.525554 65.701000
@@ -424,8 +424,8 @@ TURNOUT HO " Maerklin M 24.3P 5206"
A3 16754688 0.053333 17.958661 0.000000 17.220472 0 155.701000 24.299000
A3 16754688 0.053333 16.482283 0.000000 17.220472 0 155.701000 24.299000
END
-TURNOUT HO " Maerklin M 5.7P 5205"
- U "Kurve" "jr" " Maerklin M " " 5.7P " "5205" 17.220472 5.717000 1.476378 0.053333 16754688
+TURNOUT HO " Maerklin M 5.7°P 5205"
+ U "Kurve" "jr" " Maerklin M " " 5.7°P " "5205" 17.220472 5.717000 1.476378 0.053333 16754688
P "Normal" 1
E 0.000000 0.000000 270.000000
E 1.715417 0.085654 84.283000
@@ -433,7 +433,7 @@ TURNOUT HO " Maerklin M 5.7P 5205"
A3 16754688 0.053333 17.958661 0.000000 17.220472 0 174.283000 5.717000
A3 16754688 0.053333 16.482283 0.000000 17.220472 0 174.283000 5.717000
END
-TURNOUT HO " Maerklin M L24.3P 5203"
+TURNOUT HO " Maerklin M L24.3°P 5203"
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.015738 0.764231 270.000000
@@ -453,7 +453,7 @@ TURNOUT HO " Maerklin M L24.3P 5203"
L3 16754688 0.052083 7.147492 1.498287 0 7.406116 1.615055 0
L3 16754688 0.052083 6.207448 2.693743 0 6.798588 2.960641 0
END
-TURNOUT HO " Maerklin M R24.3P 5204"
+TURNOUT HO " Maerklin M R24.3°P 5204"
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.015740 2.220145 270.000000
@@ -502,8 +502,8 @@ TURNOUT HO " Maerklin M 3WegW 5214"
L3 16754688 0.052083 6.205026 0.290474 0 6.796240 0.023738 0
L3 16754688 0.052083 7.144743 1.486187 0 7.403399 1.369490 0
END
-TURNOUT HO " Maerklin M DKW24.3P 5207"
- U "DKW" "jr" " Maerklin M " " DKW24.3P " "5207" 7.086614 24.283000 7.086614 1.476378 0.053333 16754688
+TURNOUT HO " Maerklin M DKW24.3°P 5207"
+ U "DKW" "jr" " Maerklin M " " DKW24.3°P " "5207" 7.086614 24.283000 7.086614 1.476378 0.053333 16754688
P "P0" 5 3 8 0 7 4 6
P "P1" 7 2 8 0 5 1 6
E 0.000000 0.000000 270.000000
@@ -534,8 +534,8 @@ TURNOUT HO " Maerklin M DKW24.3P 5207"
A3 16754688 0.052083 0.477635 6.378230 1.205484 0 183.647554 52.826191
L3 16754688 0.052083 2.185039 1.929134 0 5.610236 1.200787 0
END
-TURNOUT HO " Maerklin M Kr24.3P 5215"
- U "Kreuzung" "jr" " Maerklin M " " Kr24.3P " "5215" 7.086614 24.283000 7.086614 1.476378 0.053333 16754688
+TURNOUT HO " Maerklin M Kr24.3°P 5215"
+ U "Kreuzung" "jr" " Maerklin M " " Kr24.3°P " "5215" 7.086614 24.283000 7.086614 1.476378 0.053333 16754688
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 7.086614 0.000000 90.000000
@@ -552,8 +552,8 @@ TURNOUT HO " Maerklin M Kr24.3P 5215"
L3 16754688 0.053333 0.617069 2.130041 0 3.645019 0.763951 0
L3 16754688 0.053333 6.874834 -0.693213 0 7.076697 -0.784286 0
END
-TURNOUT HO " Maerklin M Kr48.5 5211"
- U "Crossing" "jr" " Maerklin M " " Kr48.5 " "5211" 3.858268 48.500000 3.858268 1.476378 0.053333 16754688
+TURNOUT HO " Maerklin M Kr48.5° 5211"
+ U "Crossing" "jr" " Maerklin M " " Kr48.5° " "5211" 3.858268 48.500000 3.858268 1.476378 0.053333 16754688
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 3.858268 0.000000 90.000000
@@ -636,8 +636,8 @@ TURNOUT HO " Maerklin M AnschlG&Kond 5131"
L3 16754688 0.053333 0.000000 -0.738189 0 7.086614 -0.738189 0
L3 16754688 0.053333 0.000000 0.738189 0 7.086614 0.738189 0
END
-TURNOUT HO " Maerklin M AnschlG 30 5103"
- U "Kurve" "jr" " Maerklin M " " Anschl30 " "5103" 14.173228 30.000000 1.476378 0.053333 16754688
+TURNOUT HO " Maerklin M AnschlG 30° 5103"
+ U "Kurve" "jr" " Maerklin M " " Anschl30° " "5103" 14.173228 30.000000 1.476378 0.053333 16754688
P "Normal" 1
E 0.000000 0.000000 270.000000
E 7.086614 1.898853 60.000000
@@ -673,8 +673,8 @@ TURNOUT HO " Maerklin M SchaltG 1/2 5146"
L3 16754688 0.053333 0.000000 -0.738189 0 3.543307 -0.738189 0
L3 16754688 0.053333 0.000000 0.738189 0 3.543307 0.738189 0
END
-TURNOUT HO " Maerklin M SchaltG 15 5147"
- U "Kurve" "jr" " Maerklin M " " SchaltG15 " "5147" 14.173228 15.000000 1.476378 0.053333 16754688
+TURNOUT HO " Maerklin M SchaltG 15° 5147"
+ U "Kurve" "jr" " Maerklin M " " SchaltG15° " "5147" 14.173228 15.000000 1.476378 0.053333 16754688
P "Normal" 1
E 0.000000 0.000000 270.000000
E 3.668301 0.482941 75.000000
@@ -699,8 +699,8 @@ TURNOUT HO " Maerklin M SchaltG 15 5147"
A3 16754688 0.053333 14.911417 -0.000000 14.173228 0 165.000000 15.000000
A3 16754688 0.053333 13.435039 -0.000000 14.173228 0 165.000000 15.000000
END
-TURNOUT HO " Maerklin M SchaltG 15P 5213"
- U "Kurve" "jr" " Maerklin M " " SchaltG 15P " "5213" 17.220472 15.000000 1.476378 0.053333 16754688
+TURNOUT HO " Maerklin M SchaltG 15°P 5213"
+ U "Kurve" "jr" " Maerklin M " " SchaltG 15°P " "5213" 17.220472 15.000000 1.476378 0.053333 16754688
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.456986 0.586773 75.000000
@@ -787,7 +787,7 @@ TURNOUT HO " Maerklin M KontaktG 1 5105"
L3 0 0.041667 6.023623 -0.412162 0 6.023623 -0.246069 0
L3 0 0.041667 5.912894 -0.412162 0 5.912895 -0.246069 0
END
-TURNOUT HO " Maerklin M KontaktG 30 5104"
+TURNOUT HO " Maerklin M KontaktG 30° 5104"
P "Normal" 1
E 0.000000 0.000000 300.000000
E 7.086615 -1.898849 90.000000
@@ -846,8 +846,8 @@ TURNOUT HO " Maerklin M KontaktG 1 Verl 5115"
L3 16754688 0.053333 0.000000 -0.738189 0 7.086614 -0.738189 0
L3 16754688 0.053333 0.000000 0.738189 0 7.086614 0.738189 0
END
-TURNOUT HO " Maerklin M KontaktG 30 Verl 5116"
- U "Kurve" "jr" " Maerklin M " " KontaktG 30 " "5116" 14.173228 30.000000 1.476378 0.053333 16754688
+TURNOUT HO " Maerklin M KontaktG 30° Verl 5116"
+ U "Kurve" "jr" " Maerklin M " " KontaktG 30° " "5116" 14.173228 30.000000 1.476378 0.053333 16754688
P "Normal" 1
E 0.000000 0.000000 270.000000
E 7.086614 1.898853 60.000000
@@ -859,7 +859,7 @@ TURNOUT HO " Maerklin M KontaktG 30 Verl 5116"
SUBCONTENTS 09 Spezial Kombination
#Maerklin HO M-Gleis Spezialanfertigungen, Kombinationen, dreifache Gleise, Harfe, Wchsel
#Maerklin HO M-track special sections, combinations, triple tracks, ladder, change
-TURNOUT HO " Maerklin M 30I 2/3x5120"
+TURNOUT HO " Maerklin M 30°I 2/3x5120"
P "P0" 1
E 0.000000 0.000000 270.000000
E 5.629973 1.508545 60.000000
@@ -867,7 +867,7 @@ TURNOUT HO " Maerklin M 30I 2/3x5120"
A3 16754688 0.052083 11.998032 0.000030 11.259843 0 150.000000 30.000000
A3 16754688 0.052083 10.521654 0.000030 11.259843 0 150.000000 30.000000
END
-TURNOUT HO " Maerklin M 225I 1/2x5120"
+TURNOUT HO " Maerklin M 22°5I 1/2x5120"
P "P0" 1
E 0.000000 0.000000 270.000000
E 4.309009 0.857115 67.500000
@@ -875,7 +875,7 @@ TURNOUT HO " Maerklin M 225I 1/2x5120"
A3 16754688 0.052083 11.998032 0.000030 11.259843 0 157.500000 22.500000
A3 16754688 0.052083 10.521654 0.000030 11.259843 0 157.500000 22.500000
END
-TURNOUT HO " Maerklin M 15I 1/3x5120"
+TURNOUT HO " Maerklin M 15°I 1/3x5120"
P "P0" 1
E 0.000000 0.000000 270.000000
E 2.914318 0.383677 75.000000
@@ -892,7 +892,7 @@ TURNOUT HO " Maerklin M 3x1 3x5106"
L3 16754688 0.052083 -0.000002 -0.738189 0 21.259841 -0.738161 0
L3 16754688 0.052083 0.000000 0.738189 0 21.259843 0.738217 0
END
-TURNOUT HO " Maerklin M 2x45I 2x5120"
+TURNOUT HO " Maerklin M 2x45°I 2x5120"
P "P0" 1
E 0.000000 0.000000 270.000000
E 11.259873 11.259858 0.000000
@@ -900,8 +900,8 @@ TURNOUT HO " Maerklin M 2x45I 2x5120"
A3 16754688 0.052083 11.998032 0.000030 11.259843 0 90.000000 90.000000
A3 16754688 0.052083 10.521654 0.000030 11.259843 0 90.000000 90.000000
END
-TURNOUT HO " Maerklin M 3x30 3x5100"
- U "Curved Section" "" "Maerklin M" "3x30" "3x5100" 14.173228 90.000000 1.476378 0.052083 0
+TURNOUT HO " Maerklin M 3x30° 3x5100"
+ U "Curved Section" "" "Maerklin M" "3x30°" "3x5100" 14.173228 90.000000 1.476378 0.052083 0
P "Normal" 1
E 0.000000 0.000000 270.000000
E 14.173228 14.173210 0.000000
@@ -909,8 +909,8 @@ TURNOUT HO " Maerklin M 3x30 3x5100"
A3 16754688 0.052083 14.911417 0.000000 14.173228 0 90.000000 90.000000
A3 16754688 0.052083 13.435039 0.000000 14.173228 0 90.000000 90.000000
END
-TURNOUT HO " Maerklin M 3x30P 3x5200"
- U "Curved Section" "jr" "Maerklin M" "3x30P" "3x5200" 17.716535 90.000000 1.476378 0.052083 0
+TURNOUT HO " Maerklin M 3x30°P 3x5200"
+ U "Curved Section" "jr" "Maerklin M" "3x30°P" "3x5200" 17.716535 90.000000 1.476378 0.052083 0
P "P0" 1
E 0.000000 0.000000 270.000000
E 17.220482 17.220468 0.000000
@@ -918,7 +918,7 @@ TURNOUT HO " Maerklin M 3x30P 3x5200"
A3 16754688 0.051803 17.958661 0.000010 17.220483 0 90.000000 90.000000
A3 16754688 0.051803 16.482283 0.000010 17.220483 0 90.000000 90.000000
END
-TURNOUT HO " Maerklin M HarfeL225 2x5138 + 1x5207 + 2x5210"
+TURNOUT HO " Maerklin M HarfeL22°5 2x5138 + 1x5207 + 2x5210"
P "P0" 6 5 0 16 10 15 0 1 2
P "P1" 16 11 13 18 8 7 5 0 1 3 4 17 14 12 15
P "P2" 1 3 4 17 14 9 13 18 8 7 5 0 16 10 15
@@ -980,7 +980,7 @@ TURNOUT HO " Maerklin M HarfeL225 2x5138 + 1x5207 + 2x5210"
L3 16754688 0.052083 7.276995 2.494345 0 6.469542 2.130053 0
L3 16754688 0.052083 7.884149 1.148590 0 7.076696 0.784298 0
END
-TURNOUT HO " Maerklin M HarfeR225 2x5139 + 1x5207 + 2x5210"
+TURNOUT HO " Maerklin M HarfeR22°5 2x5139 + 1x5207 + 2x5210"
P "P0" 13 14 0 10 9 0 5 1 6
P "P1" 13 15 16 17 7 4 6 0 5 3 8 18 12 11 9
P "P2" 13 15 16 17 7 2 8 18 12 11 9 0 5 1 6
@@ -1042,7 +1042,7 @@ TURNOUT HO " Maerklin M HarfeR225 2x5139 + 1x5207 + 2x5210"
L3 16754688 0.052083 0.617074 2.130040 0 0.042886 2.389093 0
L3 16754688 0.052083 0.009920 0.784286 0 -0.564268 1.043338 0
END
-TURNOUT HO " Maerklin M WechselL225 2x5138 + 5108"
+TURNOUT HO " Maerklin M WechselL22°5 2x5138 + 5108"
P "P0" 7 6 0 1 2
P "P1" 1 3 4 5 9 8 6
E 0.000000 0.000000 269.999982
@@ -1075,7 +1075,7 @@ TURNOUT HO " Maerklin M WechselL225 2x5138 + 5108"
A3 16754688 0.052083 10.174306 0.648597 10.912495 0 157.499982 22.500000
L3 16754688 0.052083 4.542138 1.512663 0 5.141366 1.760873 0
END
-TURNOUT HO " Maerklin M WechselR225 2x5139 + 5108"
+TURNOUT HO " Maerklin M WechselR22°5 2x5139 + 5108"
P "P0" 7 6 0 1 2
P "P1" 1 3 4 5 9 8 6
E 0.000000 0.000000 270.000000
@@ -1290,7 +1290,7 @@ TURNOUT HO " Maerklin M Rampe 1 7168/7268"
L3 0 0.000000 7.086614 0.314961 0 -0.019685 0.314961 0
L3 0 0.000000 7.066929 -0.334646 0 -0.000000 -0.334646 0
END
-TURNOUT HO " Maerklin M Rampe 30 7167/7267"
+TURNOUT HO " Maerklin M Rampe 30° 7167/7267"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 7.086614 1.898853 60.000000
@@ -1340,7 +1340,7 @@ TURNOUT HO " Maerklin M Rampe 30 7167/7267"
A3 0 0.000000 13.846457 0.000000 14.173228 0 150.000000 30.000000
A3 0 0.000000 14.500000 -0.000000 14.173228 0 150.000000 30.000000
END
-TURNOUT HO " Maerklin M Rampe 30P 7269"
+TURNOUT HO " Maerklin M Rampe 30°P 7269"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 8.610236 2.307106 60.000000
diff --git a/app/lib/params/mrklnhom.xtp b/app/lib/params/mrklnhom.xtp
index 88f105e..e228811 100644
--- a/app/lib/params/mrklnhom.xtp
+++ b/app/lib/params/mrklnhom.xtp
@@ -776,76 +776,76 @@ TURNOUT HO "Märklin M-Track Turntable 7186"
E 0.991794 -7.533420 172.500000
E -0.991794 7.533420 352.500000
S 0 0 0.000000 7.598425 0.000000 6.102362
- S 16777215 0 0.000000 6.102362 -0.000000 -6.102362
+ S 0 0 0.000000 6.102362 -0.000000 -6.102362
S 0 0 -0.000000 -6.102362 -0.000000 -7.598425
S 0 0 0.991794 7.533420 0.796518 6.050156
- S 16777215 0 0.796518 6.050156 -0.796518 -6.050156
+ S 0 0 0.796518 6.050156 -0.796518 -6.050156
S 0 0 -0.796518 -6.050156 -0.991794 -7.533420
S 0 0 1.966617 7.339515 1.579408 5.894429
- S 16777215 0 1.579408 5.894429 -1.579408 -5.894429
+ S 0 0 1.579408 5.894429 -1.579408 -5.894429
S 0 0 -1.579408 -5.894429 -1.966617 -7.339515
S 0 0 2.907791 7.020030 2.335273 5.637848
- S 16777215 0 2.335273 5.637848 -2.335273 -5.637848
+ S 0 0 2.335273 5.637848 -2.335273 -5.637848
S 0 0 -2.335273 -5.637848 -2.907791 -7.020030
S 0 0 3.799213 6.580429 3.051181 5.284801
- S 16777215 0 3.051181 5.284801 -3.051181 -5.284801
+ S 0 0 3.051181 5.284801 -3.051181 -5.284801
S 0 0 -3.051181 -5.284801 -3.799213 -6.580429
S 0 0 4.625628 6.028236 3.714883 4.841329
- S 16777215 0 3.714883 4.841329 -3.714883 -4.841329
+ S 0 0 3.714883 4.841329 -3.714883 -4.841329
S 0 0 -3.714883 -4.841329 -4.625628 -6.028236
S 0 0 5.372898 5.372898 4.315022 4.315022
- S 16777215 0 4.315022 4.315022 -4.315022 -4.315022
+ S 0 0 4.315022 4.315022 -4.315022 -4.315022
S 0 0 -4.315022 -4.315022 -5.372898 -5.372898
S 0 0 6.028236 4.625628 4.841329 3.714883
- S 16777215 0 4.841329 3.714883 -4.841329 -3.714883
+ S 0 0 4.841329 3.714883 -4.841329 -3.714883
S 0 0 -4.841329 -3.714883 -6.028236 -4.625628
S 0 0 6.580429 3.799213 5.284801 3.051181
- S 16777215 0 5.284801 3.051181 -5.284801 -3.051181
+ S 0 0 5.284801 3.051181 -5.284801 -3.051181
S 0 0 -5.284801 -3.051181 -6.580429 -3.799213
S 0 0 7.020030 2.907791 5.637848 2.335273
- S 16777215 0 5.637848 2.335273 -5.637848 -2.335273
+ S 0 0 5.637848 2.335273 -5.637848 -2.335273
S 0 0 -5.637848 -2.335273 -7.020030 -2.907791
S 0 0 7.339515 1.966617 5.894429 1.579408
- S 16777215 0 5.894429 1.579408 -5.894429 -1.579408
+ S 0 0 5.894429 1.579408 -5.894429 -1.579408
S 0 0 -5.894429 -1.579408 -7.339515 -1.966617
S 0 0 7.533420 0.991794 6.050156 0.796518
- S 16777215 0 6.050156 0.796518 -6.050156 -0.796518
+ S 0 0 6.050156 0.796518 -6.050156 -0.796518
S 0 0 -6.050156 -0.796518 -7.533420 -0.991794
S 0 0 7.598425 0.000000 6.102362 0.000000
- S 16777215 0 6.102362 0.000000 -6.102362 -0.000000
+ S 0 0 6.102362 0.000000 -6.102362 -0.000000
S 0 0 -6.102362 -0.000000 -7.598425 -0.000000
S 0 0 7.533420 -0.991794 6.050156 -0.796518
- S 16777215 0 6.050156 -0.796518 -6.050156 0.796518
+ S 0 0 6.050156 -0.796518 -6.050156 0.796518
S 0 0 -6.050156 0.796518 -7.533420 0.991794
S 0 0 7.339515 -1.966617 5.894429 -1.579408
- S 16777215 0 5.894429 -1.579408 -5.894429 1.579408
+ S 0 0 5.894429 -1.579408 -5.894429 1.579408
S 0 0 -5.894429 1.579408 -7.339515 1.966617
S 0 0 7.020030 -2.907791 5.637848 -2.335273
- S 16777215 0 5.637848 -2.335273 -5.637848 2.335273
+ S 0 0 5.637848 -2.335273 -5.637848 2.335273
S 0 0 -5.637848 2.335273 -7.020030 2.907791
S 0 0 6.580429 -3.799213 5.284801 -3.051181
- S 16777215 0 5.284801 -3.051181 -5.284801 3.051181
+ S 0 0 5.284801 -3.051181 -5.284801 3.051181
S 0 0 -5.284801 3.051181 -6.580429 3.799213
S 0 0 6.028236 -4.625628 4.841329 -3.714883
- S 16777215 0 4.841329 -3.714883 -4.841329 3.714883
+ S 0 0 4.841329 -3.714883 -4.841329 3.714883
S 0 0 -4.841329 3.714883 -6.028236 4.625628
S 0 0 5.372898 -5.372898 4.315022 -4.315022
- S 16777215 0 4.315022 -4.315022 -4.315022 4.315022
+ S 0 0 4.315022 -4.315022 -4.315022 4.315022
S 0 0 -4.315022 4.315022 -5.372898 5.372898
S 0 0 4.625628 -6.028236 3.714883 -4.841329
- S 16777215 0 3.714883 -4.841329 -3.714883 4.841329
+ S 0 0 3.714883 -4.841329 -3.714883 4.841329
S 0 0 -3.714883 4.841329 -4.625628 6.028236
S 0 0 3.799213 -6.580429 3.051181 -5.284801
- S 16777215 0 3.051181 -5.284801 -3.051181 5.284801
+ S 0 0 3.051181 -5.284801 -3.051181 5.284801
S 0 0 -3.051181 5.284801 -3.799213 6.580429
S 0 0 2.907791 -7.020030 2.335273 -5.637848
- S 16777215 0 2.335273 -5.637848 -2.335273 5.637848
+ S 0 0 2.335273 -5.637848 -2.335273 5.637848
S 0 0 -2.335273 5.637848 -2.907791 7.020030
S 0 0 1.966617 -7.339515 1.579408 -5.894429
- S 16777215 0 1.579408 -5.894429 -1.579408 5.894429
+ S 0 0 1.579408 -5.894429 -1.579408 5.894429
S 0 0 -1.579408 5.894429 -1.966617 7.339515
S 0 0 0.991794 -7.533420 0.796518 -6.050156
- S 16777215 0 0.796518 -6.050156 -0.796518 6.050156
+ S 0 0 0.796518 -6.050156 -0.796518 6.050156
S 0 0 -0.796518 6.050156 -0.991794 7.533420
A 16711680 0 7.598425 0.000000 0.000000 0.000000 360.000000
A 16711680 0 6.102362 0.000000 0.000000 0.000000 360.000000
@@ -873,24 +873,24 @@ TURNOUT HO "Märklin M-Track Transfer Table 7294"
E 0.000000 -6.094488 270.000000
E 0.000000 -3.047244 270.000000
S 0 0.000000 0.000000 -6.094488 0.787402 -6.094488
- S 16777215 0 0.787402 -6.094488 13.385827 -6.094488
+ S 0 0 0.787402 -6.094488 13.385827 -6.094488
S 0 0.000000 13.385827 -6.094488 14.173228 -6.094488
S 0 0.000000 0.000000 -3.047244 0.787402 -3.047244
- S 16777215 0 0.787402 -3.047244 13.385827 -3.047244
+ S 0 0 0.787402 -3.047244 13.385827 -3.047244
S 0 0.000000 0.000000 0.000000 0.787402 0.000000
- S 16777215 0 0.787402 0.000000 13.385827 0.000000
+ S 0 0 0.787402 0.000000 13.385827 0.000000
S 0 0.000000 0.000000 3.047244 0.787402 3.047244
- S 16777215 0 0.787402 3.047244 13.385827 3.047244
+ S 0 0 0.787402 3.047244 13.385827 3.047244
S 0 0.000000 0.000000 6.078740 0.787402 6.078740
- S 16777215 0 0.787402 6.078740 13.385827 6.078740
+ S 0 0 0.787402 6.078740 13.385827 6.078740
S 0 0.000000 14.173228 -3.551181 13.385827 -3.551181
- S 16777215 0 13.385827 -3.551181 0.787402 -3.551181
+ S 0 0 13.385827 -3.551181 0.787402 -3.551181
S 0 0.000000 14.173228 -0.503937 13.385827 -0.503937
- S 16777215 0 13.385827 -0.503937 0.787402 -0.503937
+ S 0 0 13.385827 -0.503937 0.787402 -0.503937
S 0 0.000000 14.173228 2.543307 13.385827 2.543307
- S 16777215 0 13.385827 2.543307 0.787402 2.543307
+ S 0 0 13.385827 2.543307 0.787402 2.543307
S 0 0.000000 14.173228 5.590551 13.385827 5.590551
- S 16777215 0 13.385827 5.590551 0.787402 5.590551
+ S 0 0 13.385827 5.590551 0.787402 5.590551
L3 0 0.052632 0.000000 -8.279528 0 14.173228 -8.279528 0
L3 0 0.052632 14.173228 -8.279528 0 14.173228 8.255906 0
L3 0 0.052632 14.173228 8.255906 0 0.000000 8.255906 0
diff --git a/app/lib/params/mrklnz.xtp b/app/lib/params/mrklnz.xtp
index 51ed189..6e0205c 100644
--- a/app/lib/params/mrklnz.xtp
+++ b/app/lib/params/mrklnz.xtp
@@ -1,40 +1,40 @@
-CONTENTS Mrklin Z-Scale Turnouts
-# From 'Mrklin Complete Program 1994/95 E'
+CONTENTS Märklin Z-Scale Turnouts
+# From 'Märklin Complete Program 1994/95 E'
##########################################################################
##########################################################################
-SUBCONTENTS Mrklin Z-Scale - Straight Track
-TURNOUT Z "Mrklin Straight 110mm 8500"
+SUBCONTENTS Märklin Z-Scale - Straight Track
+TURNOUT Z "Märklin Straight 110mm 8500"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.330709 0.000000 90.000000
S 0 0 0.000000 0.000000 4.331000 0.000000
END
-TURNOUT Z "Mrklin Straight 55mm 8503"
+TURNOUT Z "Märklin Straight 55mm 8503"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 2.165354 0.000000 90.000000
S 0 0 0.000000 0.000000 2.165000 0.000000
END
-TURNOUT Z "Mrklin Straight 25mm 8504"
+TURNOUT Z "Märklin Straight 25mm 8504"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 0.984252 0.000000 90.000000
S 0 0 0.000000 0.000000 0.984000 0.000000
END
-TURNOUT Z "Mrklin Straight 220mm 8505"
+TURNOUT Z "Märklin Straight 220mm 8505"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 8.661417 0.000000 90.000000
S 0 0 0.000000 0.000000 8.661000 0.000000
END
-TURNOUT Z "Mrklin Straight 108.6mm 8506"
+TURNOUT Z "Märklin Straight 108.6mm 8506"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.275591 0.000000 90.000000
S 0 0 0.000000 0.000000 4.276000 0.000000
END
-TURNOUT Z "Mrklin Straight 112.8mm 8507"
+TURNOUT Z "Märklin Straight 112.8mm 8507"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.440945 0.000000 90.000000
@@ -43,26 +43,26 @@ TURNOUT Z "Mrklin Straight 112.8mm 8507"
##########################################################################
##########################################################################
-SUBCONTENTS Mrklin Z-Scale - Curved Track
-TURNOUT Z "Mrklin Curved 145mm 45 8510"
+SUBCONTENTS Märklin Z-Scale - Curved Track
+TURNOUT Z "Märklin Curved 145mm 45° 8510"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.036633 -1.672028 135.000000
C 0 0 5.709000 0.000000 -5.709000 0.000000 45.000000
END
-TURNOUT Z "Mrklin Curved 195mm 45 8520"
+TURNOUT Z "Märklin Curved 195mm 45° 8520"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 5.428576 -2.248590 135.000000
C 0 0 7.677000 0.000000 -7.677000 0.000000 45.000000
END
-TURNOUT Z "Mrklin Curved 195mm 30 8521"
+TURNOUT Z "Märklin Curved 195mm 30° 8521"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 3.838583 -1.028545 120.000000
C 0 0 7.677000 0.000000 -7.677000 0.000000 30.000000
END
-TURNOUT Z "Mrklin Curved 195mm Circuit Track 8529"
+TURNOUT Z "Märklin Curved 195mm Circuit Track 8529"
P "Normal" 1
E 0.000000 1.028523 270.000000
E 3.838583 -0.000022 120.000000
@@ -91,19 +91,19 @@ TURNOUT Z "Mrklin Curved 195mm Circuit Track 8529"
2.500000 0.457657 0
1.515748 0.733247 0
END
-TURNOUT Z "Mrklin Curved 220mm 45 8530"
+TURNOUT Z "Märklin Curved 220mm 45° 8530"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 6.124547 -2.536870 135.000000
C 0 0 8.661000 0.000000 -8.661000 0.000000 45.000000
END
-TURNOUT Z "Mrklin Curved 220mm 30 8531"
+TURNOUT Z "Märklin Curved 220mm 30° 8531"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.330709 -1.160410 120.000000
C 0 0 8.661000 0.000000 -8.661000 0.000000 30.000000
END
-TURNOUT Z "Mrklin Curved 220mm Circuit Track 8539"
+TURNOUT Z "Märklin Curved 220mm Circuit Track 8539"
P "Normal" 1
E 0.000000 1.160354 270.000000
E 4.330709 -0.000056 120.000000
@@ -132,7 +132,7 @@ TURNOUT Z "Mrklin Curved 220mm Circuit Track 8539"
2.755906 0.550118 0
1.771654 0.825708 0
END
-TURNOUT Z "Mrklin Curve 490mm 13 8591"
+TURNOUT Z "Märklin Curve 490mm 13° 8591"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.339607 -0.494436 103.000000
@@ -141,8 +141,8 @@ TURNOUT Z "Mrklin Curve 490mm 13 8591"
##########################################################################
##########################################################################
-SUBCONTENTS Mrklin Z-Scale - Crossings
-TURNOUT Z "Mrklin Crossing 8559"
+SUBCONTENTS Märklin Z-Scale - Crossings
+TURNOUT Z "Märklin Crossing 8559"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 4.440945 0.000000 90.000000
@@ -154,9 +154,9 @@ TURNOUT Z "Mrklin Crossing 8559"
##########################################################################
##########################################################################
-SUBCONTENTS Mrklin Z-Scale - Turnouts(Switches)
+SUBCONTENTS Märklin Z-Scale - Turnouts(Switches)
# Double Slipswitch Design by Dirk Husemann - 11.280000 13.000000 11.2800
-TURNOUT Z "Mrklin Double Slip 8560"
+TURNOUT Z "Märklin Double Slip 8560"
P "Normal" 1 2 3 0 4 5 6
P "Reverse" 1 7 6 0 4 8 3
E 0.000000 0.000000 270.000000
@@ -172,7 +172,7 @@ TURNOUT Z "Mrklin Double Slip 8560"
C 0 0 14.981027 0.513600 -14.981027 0.000000 13.000000
C 0 0 -14.981027 3.927345 14.981027 180.000000 13.000000
END
-TURNOUT Z "Mrklin Left Remote Turnout 8562"
+TURNOUT Z "Märklin Left Remote Turnout 8562"
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -181,7 +181,7 @@ TURNOUT Z "Mrklin Left Remote Turnout 8562"
S 0 0 0.000000 0.000000 4.331000 0.000000
C 0 0 -19.291000 0.000000 19.291000 167.000000 13.000000
END
-TURNOUT Z "Mrklin Right Remote Turnout 8563"
+TURNOUT Z "Märklin Right Remote Turnout 8563"
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -190,7 +190,7 @@ TURNOUT Z "Mrklin Right Remote Turnout 8563"
S 0 0 0.000000 0.000000 4.331000 0.000000
C 0 0 19.291000 0.000000 -19.291000 0.000000 13.000000
END
-TURNOUT Z "Mrklin Left Manual Turnout 8565"
+TURNOUT Z "Märklin Left Manual Turnout 8565"
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -199,7 +199,7 @@ TURNOUT Z "Mrklin Left Manual Turnout 8565"
S 0 0 0.000000 0.000000 4.331000 0.000000
C 0 0 -19.291000 0.000000 19.291000 167.000000 13.000000
END
-TURNOUT Z "Mrklin Right Manual Turnout 8566"
+TURNOUT Z "Märklin Right Manual Turnout 8566"
P "Normal" 1
P "Reverse" 2
E 0.000000 0.000000 270.000000
@@ -211,7 +211,7 @@ TURNOUT Z "Mrklin Right Manual Turnout 8566"
#
# I'm guessing about the Outside leg radius
#
-TURNOUT Z "Mrklin Curved Left Turnout 8568"
+TURNOUT Z "Märklin Curved Left Turnout 8568"
P "Normal" 1 2
P "Reverse" 3
E 0.000000 0.000000 270.000000
@@ -221,7 +221,7 @@ TURNOUT Z "Mrklin Curved Left Turnout 8568"
C 0 0 -7.677000 0.984000 7.677000 150.000000 30.000000
C 0 0 -7.677000 0.000000 7.677000 150.000000 30.000000
END
-TURNOUT Z "Mrklin Curved Right Turnout 8569"
+TURNOUT Z "Märklin Curved Right Turnout 8569"
P "Normal" 1 2
P "Reverse" 3
E 0.000000 0.000000 270.000000
@@ -234,8 +234,8 @@ TURNOUT Z "Mrklin Curved Right Turnout 8569"
##########################################################################
##########################################################################
-SUBCONTENTS Mrklin Z-Scale - Misc Track
-TURNOUT Z "Mrklin Uncoupler Track 8587"
+SUBCONTENTS Märklin Z-Scale - Misc Track
+TURNOUT Z "Märklin Uncoupler Track 8587"
P "P0" 1
E 0.000000 0.492126 270.000000
E 2.165000 0.492126 90.000000
@@ -251,7 +251,7 @@ TURNOUT Z "Mrklin Uncoupler Track 8587"
1.082677 0.393701 0
0.295276 0.393701 0
END
-TURNOUT Z "Mrklin Straight Isolating Track 8588"
+TURNOUT Z "Märklin Straight Isolating Track 8588"
P "Normal" 1
E 0.000000 0.590551 270.000000
E 2.165354 0.590551 90.000000
@@ -275,7 +275,7 @@ TURNOUT Z "Mrklin Straight Isolating Track 8588"
L3 0 0.026667 1.062992 0.551181 0 1.062992 0.393701 0
L3 0 0.026667 1.102362 0.551181 0 1.102362 0.393701 0
END
-TURNOUT Z "Mrklin Straight Circuit Track 8589"
+TURNOUT Z "Märklin Straight Circuit Track 8589"
P "Normal" 1
E 0.000000 0.590551 270.000000
E 2.165354 0.590551 90.000000
@@ -302,7 +302,7 @@ TURNOUT Z "Mrklin Straight Circuit Track 8589"
1.968504 0.787402 0
0.196850 0.787402 0
END
-TURNOUT Z "Mrklin Straight Feeder Track 8590"
+TURNOUT Z "Märklin Straight Feeder Track 8590"
P "P0" 1
E 0.000000 0.590551 270.000000
E 4.330709 0.590551 90.000000
@@ -324,20 +324,20 @@ TURNOUT Z "Mrklin Straight Feeder Track 8590"
2.362382 0.098425 0
2.263956 0.098425 0
END
-TURNOUT Z "Mrklin Curve 490mm 13 8591"
+TURNOUT Z "Märklin Curve 490mm 13° 8591"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 4.339607 -0.494436 103.000000
C 0 0 19.291000 0.000000 -19.291000 0.000000 13.000000
END
-TURNOUT Z "Mrklin Adjustable 10-12cm 8592"
+TURNOUT Z "Märklin Adjustable 10-12cm 8592"
P "Normal" 1
X adjustable 3.9370 4.7244
E 0.000000 0.000000 270.000000
E 4.7244 0.000000 90.000000
S 0 0 0.000000 0.000000 4.7244 0.000000
END
-STRUCTURE Z "Mrklin Track Bumper 16mm 8931"
+STRUCTURE Z "Märklin Track Bumper 16mm 8931"
X pier -1 ""
F3 12566463 0.000000 4
0.000000 0.197150 0
@@ -346,7 +346,7 @@ STRUCTURE Z "Mrklin Track Bumper 16mm 8931"
0.000000 -0.197150 0
G3 16711680 0.000000 0.098500 0.394000 0.00000 0
END
-STRUCTURE Z "Mrklin Track Bumper 15mm 8991"
+STRUCTURE Z "Märklin Track Bumper 15mm 8991"
X pier -1 ""
L3 0 0.026667 -0.395000 0.295000 0 -0.395000 -0.295000 0
L3 0 0.026667 -0.591000 0.197500 0 0.000000 0.197500 0
@@ -354,7 +354,7 @@ STRUCTURE Z "Mrklin Track Bumper 15mm 8991"
L3 0 0.013333 -0.395000 0.197500 0 0.000000 -0.197500 0
L3 0 0.013333 -0.395000 -0.197500 0 0.000000 0.197500 0
END
-TURNOUT Z "Mrklin Transfer Table 8994"
+TURNOUT Z "Märklin Transfer Table 8994"
P "P1" 1 2 3
P "P2" 4 5 6
P "P3" 7 8 9
@@ -371,19 +371,19 @@ TURNOUT Z "Mrklin Transfer Table 8994"
E 8.681333 6.317333 90.000000
E 8.681333 7.696333 90.000000
S 0 0.000000 0.013333 1.392333 0.801333 1.392333
- S 16777215 0.00000 0.801333 1.392333 7.893333 1.392333
+ S 0 0.00000 0.801333 1.392333 7.893333 1.392333
S 0 0.000000 7.893333 1.392333 8.681333 1.392333
S 0 0.000000 0.013333 3.362333 0.801333 3.362333
- S 16777215 0.00000 0.801333 3.362333 7.893333 3.362333
+ S 0 0.00000 0.801333 3.362333 7.893333 3.362333
S 0 0.000000 7.893333 3.362333 8.681333 3.362333
S 0 0.000000 0.013333 4.347333 0.801333 4.347333
- S 16777215 0.00000 0.801333 4.347333 7.893333 4.347333
+ S 0 0.00000 0.801333 4.347333 7.893333 4.347333
S 0 0.000000 7.893333 4.347333 8.681333 4.347333
S 0 0.000000 0.013333 6.317333 0.801333 6.317333
- S 16777215 0.00000 0.801333 6.317333 7.893333 6.317333
+ S 0 0.00000 0.801333 6.317333 7.893333 6.317333
S 0 0.000000 7.893333 6.317333 8.681333 6.317333
S 0 0.000000 0.013333 7.696333 0.801333 7.696333
- S 16777215 0.00000 0.801333 7.696333 7.893333 7.696333
+ S 0 0.00000 0.801333 7.696333 7.893333 7.696333
S 0 0.000000 7.893333 7.696333 8.681333 7.696333
L3 0 0.026667 0.013333 0.013333 0 8.681333 0.013333 0
L3 0 0.026667 8.681333 0.013333 0 8.681333 8.681333 0
@@ -398,7 +398,7 @@ TURNOUT Z "Mrklin Transfer Table 8994"
L3 0 0.026667 5.529333 0.407333 0 7.893333 0.407333 0
L3 0 0.026667 0.801333 0.407333 0 3.165333 0.407333 0
END
-TURNOUT Z "Mrklin Turntable 8599"
+TURNOUT Z "Märklin Turntable 8599"
P "1" 1 2 3
P "2" 4 5 6
P "3" 7 8 9
@@ -448,40 +448,40 @@ TURNOUT Z "Mrklin Turntable 8599"
E 0.866127 -3.232429 165.000000
E -0.866127 3.232429 345.000000
S 0 0 0.000000 3.346457 0.000000 2.598425
- S 16777215 0 0.000000 2.598425 -0.000000 -2.598425
+ S 0 0 0.000000 2.598425 -0.000000 -2.598425
S 0 0 -0.000000 -2.598425 -0.000000 -3.346457
S 0 0 0.866127 3.232429 0.672522 2.509886
- S 16777215 0 0.672522 2.509886 -0.672522 -2.509886
+ S 0 0 0.672522 2.509886 -0.672522 -2.509886
S 0 0 -0.672522 -2.509886 -0.866127 -3.232429
S 0 0 1.673228 2.898117 1.299213 2.250302
- S 16777215 0 1.299213 2.250302 -1.299213 -2.250302
+ S 0 0 1.299213 2.250302 -1.299213 -2.250302
S 0 0 -1.299213 -2.250302 -1.673228 -2.898117
S 0 0 2.366302 2.366302 1.837364 1.837364
- S 16777215 0 1.837364 1.837364 -1.837364 -1.837364
+ S 0 0 1.837364 1.837364 -1.837364 -1.837364
S 0 0 -1.837364 -1.837364 -2.366302 -2.366302
S 0 0 2.898117 1.673228 2.250302 1.299213
- S 16777215 0 2.250302 1.299213 -2.250302 -1.299213
+ S 0 0 2.250302 1.299213 -2.250302 -1.299213
S 0 0 -2.250302 -1.299213 -2.898117 -1.673228
S 0 0 3.232429 0.866127 2.509886 0.672522
- S 16777215 0 2.509886 0.672522 -2.509886 -0.672522
+ S 0 0 2.509886 0.672522 -2.509886 -0.672522
S 0 0 -2.509886 -0.672522 -3.232429 -0.866127
S 0 0 3.346457 0.000000 2.598425 0.000000
- S 16777215 0 2.598425 0.000000 -2.598425 -0.000000
+ S 0 0 2.598425 0.000000 -2.598425 -0.000000
S 0 0 -2.598425 -0.000000 -3.346457 -0.000000
S 0 0 3.232429 -0.866127 2.509886 -0.672522
- S 16777215 0 2.509886 -0.672522 -2.509886 0.672522
+ S 0 0 2.509886 -0.672522 -2.509886 0.672522
S 0 0 -2.509886 0.672522 -3.232429 0.866127
S 0 0 2.898117 -1.673228 2.250302 -1.299213
- S 16777215 0 2.250302 -1.299213 -2.250302 1.299213
+ S 0 0 2.250302 -1.299213 -2.250302 1.299213
S 0 0 -2.250302 1.299213 -2.898117 1.673228
S 0 0 2.366302 -2.366302 1.837364 -1.837364
- S 16777215 0 1.837364 -1.837364 -1.837364 1.837364
+ S 0 0 1.837364 -1.837364 -1.837364 1.837364
S 0 0 -1.837364 1.837364 -2.366302 2.366302
S 0 0 1.673228 -2.898117 1.299213 -2.250302
- S 16777215 0 1.299213 -2.250302 -1.299213 2.250302
+ S 0 0 1.299213 -2.250302 -1.299213 2.250302
S 0 0 -1.299213 2.250302 -1.673228 2.898117
S 0 0 0.866127 -3.232429 0.672522 -2.509886
- S 16777215 0 0.672522 -2.509886 -0.672522 2.509886
+ S 0 0 0.672522 -2.509886 -0.672522 2.509886
S 0 0 -0.672522 2.509886 -0.866127 3.232429
A 16711680 0 3.346457 0.000000 0.000000 0.000000 360.000000
A 16711680 0 2.598425 0.000000 0.000000 0.000000 360.000000
diff --git a/app/lib/params/mtl-z.xtp b/app/lib/params/mtl-z.xtp
index 45740f5..d56dbdd 100644
--- a/app/lib/params/mtl-z.xtp
+++ b/app/lib/params/mtl-z.xtp
@@ -1,253 +1,253 @@
-CONTENTS Micro Trains Z Scale Micro-Track Components
-
-SUBCONTENTS Micro-Trains Z-Scale - Micro-Track Straight Track
-TURNOUT Z "Micro-Trains Straight 110mm 990-40-901"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 12.500000 0.000000 90.000000
- S 0 0 0.000000 0.000000 12.500000 0.000000
- END
-TURNOUT Z "Micro-Trains Straight 110mm 990-40-902"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.330709 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.330709 0.000000
- L 11579568 0.053333 0.000000 0.300000 4.330709 0.300000
- L 11579568 0.053333 0.000000 -0.300000 4.330709 -0.300000
- END
-TURNOUT Z "Micro-Trains Straight 220mm 990-40-917"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.661417 0.000000 90.000000
- S 0 0 0.000000 0.000000 8.661417 0.000000
- L 11579568 0.053333 0.000000 0.300000 8.661417 0.300000
- L 11579568 0.053333 0.000000 -0.300000 8.661417 -0.300000
- END
-TURNOUT Z "Micro-Trains Uncoupler Track 990-40-906"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.330709 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.330709 0.000000
- L 11579568 0.053333 0.000000 0.300000 4.330709 0.300000
- L 11579568 0.053333 0.000000 -0.300000 4.330709 -0.300000
- F 12566463 0.000000 4
- 1.673223 -0.100000 0
- 2.657480 -0.100000 0
- 2.657480 0.100000 0
- 1.673223 0.100000 0
- END
-TURNOUT Z "Micro-Trains Straight Feeder Track 990-40-905"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.330709 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.330709 0.000000
- L 11579568 0.053333 0.000000 0.300000 4.330709 0.300000
- L 11579568 0.053333 0.000000 -0.300000 4.330709 -0.300000
- L 0 0.026667 2.065355 -0.300000 2.065355 -0.500000
- L 0 0.026667 2.065355 -0.500000 2.165355 -0.600000
- L 0 0.026667 2.065355 -0.500000 1.965355 -0.600000
- L 16711680 0.026667 2.265355 -0.300000 2.265355 -0.500000
- L 16711680 0.026667 2.265355 -0.500000 2.365355 -0.600000
- L 16711680 0.026667 2.265355 -0.500000 2.165355 -0.600000
- END
-
-SUBCONTENTS Micro-Trains Z-Scale - Micro-Track Curve Track
-TURNOUT Z "Micro-Trains Curved 195mm 45 990-40-904"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.428575 -2.248590 135.000000
- C 0 0 7.677165 0.000000 -7.677165 0.000000 45.000000
- A 11579568 0.053333 7.977165 0.000000 -7.677165 0.000000 45.000000
- A 11579568 0.053333 7.377165 0.000000 -7.677165 0.000000 45.000000
- END
-TURNOUT Z "Micro-Trains Curved 195mm 30 990-40-903"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.838583 -1.028545 120.000000
- C 0 0 7.677165 0.000000 -7.677165 0.000000 30.000000
- A 11579568 0.053333 7.977165 0.000000 -7.677165 0.000000 30.000000
- A 11579568 0.053333 7.377165 0.000000 -7.677165 0.000000 30.000000
- END
-TURNOUT Z "Micro-Trains Curved 220mm 45 990-40-913"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.124547 -2.536870 135.000000
- C 0 0 8.661417 0.000000 -8.661417 0.000000 45.000000
- A 11579568 0.053333 8.961417 0.000000 -8.661417 0.000000 45.000000
- A 11579568 0.053333 8.361417 0.000000 -8.661417 0.000000 45.000000
- END
-TURNOUT Z "Micro-Trains Curved 490mm 13 990-40-912"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.339607 -0.494436 103.000000
- C 0 0 19.291339 0.000000 -19.291339 0.000000 13.000000
- A 11579568 0.053333 19.591339 0.000000 -19.291339 0.000000 13.000000
- A 11579568 0.053333 18.991339 0.000000 -19.291339 0.000000 13.000000
- END
-
-SUBCONTENTS Micro-Trains Z-Scale - Micro-Track Turnouts
-TURNOUT Z "Micro-Trains Left Remote Turnout 990-40-914"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 4.330709 0.000000 90.000000
- E 4.339607 0.494436 77.000000
- S 0 0 0.000000 0.000000 4.330709 0.000000
- C 0 0 19.291339 0.000000 19.291339 167.000000 13.000000
- L 11579568 0.053333 0.000000 -0.300000 4.330709 -0.300000
- A 11579568 0.053333 18.991339 0.000000 19.291339 167.000000 13.000000
- END
-TURNOUT Z "Micro-Trains Right Remote Turnout 990-40-915"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 4.330709 0.000000 90.000000
- E 4.339607 -0.494436 103.000000
- S 0 0 0.000000 0.000000 4.330709 0.000000
- C 0 0 19.291339 0.000000 -19.291339 0.000000 13.000000
- L 11579568 0.053333 0.000000 0.300000 4.330709 0.300000
- A 11579568 0.053333 18.991339 0.000000 -19.291339 0.000000 13.000000
- END
-TURNOUT Z "Micro-Trains Left Manual Turnout 990-40-910"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 4.330709 0.000000 90.000000
- E 4.339607 0.494436 77.000000
- S 0 0 0.000000 0.000000 4.331000 0.000000
- C 0 0 19.291000 0.000000 19.291000 167.000000 13.000000
- L 11579568 0.053333 0.000000 -0.300000 4.330709 -0.300000
- A 11579568 0.053333 18.991339 0.000000 19.291339 167.000000 13.000000
- END
-TURNOUT Z "Micro-Trains Right Manual Turnout 990-40-911"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 4.330709 0.000000 90.000000
- E 4.339607 -0.494436 103.000000
- S 0 0 0.000000 0.000000 4.331000 0.000000
- C 0 0 19.291000 0.000000 -19.291000 0.000000 13.000000
- L 11579568 0.053333 0.000000 0.300000 4.330709 0.300000
- A 11579568 0.053333 18.991339 0.000000 -19.291339 0.000000 13.000000
- END
-SUBCONTENTS Micro-Trains Z-Scale - Micro-Track Bridges
-TURNOUT Z "Micro-Trains Girder Bridge (Black) 110mm 990-40-950"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.330709 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.330709 0.000000
- L 0 0.053333 0.000000 0.375000 4.330709 0.375000
- L 0 0.053333 0.000000 -0.375000 4.330709 -0.375000
- L 0 0.029527 0.196850 0.375000 0.196850 0.250000
- L 0 0.029527 0.984252 0.375000 0.984252 0.250000
- L 0 0.029527 1.771654 0.375000 1.771654 0.250000
- L 0 0.029527 2.559055 0.375000 2.559055 0.250000
- L 0 0.029527 3.346457 0.375000 3.346457 0.250000
- L 0 0.029527 4.133858 0.375000 4.133858 0.250000
- L 0 0.029527 0.196850 -0.375000 0.196850 -0.250000
- L 0 0.029527 0.984252 -0.375000 0.984252 -0.250000
- L 0 0.029527 1.771654 -0.375000 1.771654 -0.250000
- L 0 0.029527 2.559055 -0.375000 2.559055 -0.250000
- L 0 0.029527 3.346457 -0.375000 3.346457 -0.250000
- L 0 0.029527 4.133858 -0.375000 4.133858 -0.250000
- END
-TURNOUT Z "Micro-Trains Girder Bridge (Gray) 110mm 990-40-951"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.330709 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.330709 0.000000
- L 0 0.053333 0.000000 0.375000 4.330709 0.375000
- L 0 0.053333 0.000000 -0.375000 4.330709 -0.375000
- L 0 0.029527 0.196850 0.375000 0.196850 0.250000
- L 0 0.029527 0.984252 0.375000 0.984252 0.250000
- L 0 0.029527 1.771654 0.375000 1.771654 0.250000
- L 0 0.029527 2.559055 0.375000 2.559055 0.250000
- L 0 0.029527 3.346457 0.375000 3.346457 0.250000
- L 0 0.029527 4.133858 0.375000 4.133858 0.250000
- L 0 0.029527 0.196850 -0.375000 0.196850 -0.250000
- L 0 0.029527 0.984252 -0.375000 0.984252 -0.250000
- L 0 0.029527 1.771654 -0.375000 1.771654 -0.250000
- L 0 0.029527 2.559055 -0.375000 2.559055 -0.250000
- L 0 0.029527 3.346457 -0.375000 3.346457 -0.250000
- L 0 0.029527 4.133858 -0.375000 4.133858 -0.250000
- END
-TURNOUT Z "Micro-Trains Girder Bridge (UP) 110mm 990-40-952"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.330709 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.330709 0.000000
- L 0 0.053333 0.000000 0.375000 4.330709 0.375000
- L 0 0.053333 0.000000 -0.375000 4.330709 -0.375000
- L 0 0.029527 0.196850 0.375000 0.196850 0.250000
- L 0 0.029527 0.984252 0.375000 0.984252 0.250000
- L 0 0.029527 1.771654 0.375000 1.771654 0.250000
- L 0 0.029527 2.559055 0.375000 2.559055 0.250000
- L 0 0.029527 3.346457 0.375000 3.346457 0.250000
- L 0 0.029527 4.133858 0.375000 4.133858 0.250000
- L 0 0.029527 0.196850 -0.375000 0.196850 -0.250000
- L 0 0.029527 0.984252 -0.375000 0.984252 -0.250000
- L 0 0.029527 1.771654 -0.375000 1.771654 -0.250000
- L 0 0.029527 2.559055 -0.375000 2.559055 -0.250000
- L 0 0.029527 3.346457 -0.375000 3.346457 -0.250000
- L 0 0.029527 4.133858 -0.375000 4.133858 -0.250000
- END
-TURNOUT Z "Micro-Trains Girder Bridge (CSX) 110mm 990-40-953"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.330709 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.330709 0.000000
- L 0 0.053333 0.000000 0.375000 4.330709 0.375000
- L 0 0.053333 0.000000 -0.375000 4.330709 -0.375000
- L 0 0.029527 0.196850 0.375000 0.196850 0.250000
- L 0 0.029527 0.984252 0.375000 0.984252 0.250000
- L 0 0.029527 1.771654 0.375000 1.771654 0.250000
- L 0 0.029527 2.559055 0.375000 2.559055 0.250000
- L 0 0.029527 3.346457 0.375000 3.346457 0.250000
- L 0 0.029527 4.133858 0.375000 4.133858 0.250000
- L 0 0.029527 0.196850 -0.375000 0.196850 -0.250000
- L 0 0.029527 0.984252 -0.375000 0.984252 -0.250000
- L 0 0.029527 1.771654 -0.375000 1.771654 -0.250000
- L 0 0.029527 2.559055 -0.375000 2.559055 -0.250000
- L 0 0.029527 3.346457 -0.375000 3.346457 -0.250000
- L 0 0.029527 4.133858 -0.375000 4.133858 -0.250000
- END
-TURNOUT Z "Micro-Trains Girder Bridge (Santa Fe) 110mm 990-40-954"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.330709 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.330709 0.000000
- L 0 0.053333 0.000000 0.375000 4.330709 0.375000
- L 0 0.053333 0.000000 -0.375000 4.330709 -0.375000
- L 0 0.029527 0.196850 0.375000 0.196850 0.250000
- L 0 0.029527 0.984252 0.375000 0.984252 0.250000
- L 0 0.029527 1.771654 0.375000 1.771654 0.250000
- L 0 0.029527 2.559055 0.375000 2.559055 0.250000
- L 0 0.029527 3.346457 0.375000 3.346457 0.250000
- L 0 0.029527 4.133858 0.375000 4.133858 0.250000
- L 0 0.029527 0.196850 -0.375000 0.196850 -0.250000
- L 0 0.029527 0.984252 -0.375000 0.984252 -0.250000
- L 0 0.029527 1.771654 -0.375000 1.771654 -0.250000
- L 0 0.029527 2.559055 -0.375000 2.559055 -0.250000
- L 0 0.029527 3.346457 -0.375000 3.346457 -0.250000
- L 0 0.029527 4.133858 -0.375000 4.133858 -0.250000
- END
-TURNOUT Z "Micro-Trains Girder Bridge (Rock Island) 110mm 990-40-957"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.330709 0.000000 90.000000
- S 0 0 0.000000 0.000000 4.330709 0.000000
- L 0 0.053333 0.000000 0.375000 4.330709 0.375000
- L 0 0.053333 0.000000 -0.375000 4.330709 -0.375000
- L 0 0.029527 0.196850 0.375000 0.196850 0.250000
- L 0 0.029527 0.984252 0.375000 0.984252 0.250000
- L 0 0.029527 1.771654 0.375000 1.771654 0.250000
- L 0 0.029527 2.559055 0.375000 2.559055 0.250000
- L 0 0.029527 3.346457 0.375000 3.346457 0.250000
- L 0 0.029527 4.133858 0.375000 4.133858 0.250000
- L 0 0.029527 0.196850 -0.375000 0.196850 -0.250000
- L 0 0.029527 0.984252 -0.375000 0.984252 -0.250000
- L 0 0.029527 1.771654 -0.375000 1.771654 -0.250000
- L 0 0.029527 2.559055 -0.375000 2.559055 -0.250000
- L 0 0.029527 3.346457 -0.375000 3.346457 -0.250000
- L 0 0.029527 4.133858 -0.375000 4.133858 -0.250000
- END
+CONTENTS Micro Trains Z Scale Micro-Track Components
+
+SUBCONTENTS Micro-Trains Z-Scale - Micro-Track Straight Track
+TURNOUT Z "Micro-Trains Straight 110mm 990-40-901"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 12.500000 0.000000 90.000000
+ S 0 0 0.000000 0.000000 12.500000 0.000000
+ END
+TURNOUT Z "Micro-Trains Straight 110mm 990-40-902"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.330709 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+ L 11579568 0.053333 0.000000 0.300000 4.330709 0.300000
+ L 11579568 0.053333 0.000000 -0.300000 4.330709 -0.300000
+ END
+TURNOUT Z "Micro-Trains Straight 220mm 990-40-917"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.661417 0.000000 90.000000
+ S 0 0 0.000000 0.000000 8.661417 0.000000
+ L 11579568 0.053333 0.000000 0.300000 8.661417 0.300000
+ L 11579568 0.053333 0.000000 -0.300000 8.661417 -0.300000
+ END
+TURNOUT Z "Micro-Trains Uncoupler Track 990-40-906"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.330709 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+ L 11579568 0.053333 0.000000 0.300000 4.330709 0.300000
+ L 11579568 0.053333 0.000000 -0.300000 4.330709 -0.300000
+ F 12566463 0.000000 4
+ 1.673223 -0.100000 0
+ 2.657480 -0.100000 0
+ 2.657480 0.100000 0
+ 1.673223 0.100000 0
+ END
+TURNOUT Z "Micro-Trains Straight Feeder Track 990-40-905"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.330709 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+ L 11579568 0.053333 0.000000 0.300000 4.330709 0.300000
+ L 11579568 0.053333 0.000000 -0.300000 4.330709 -0.300000
+ L 0 0.026667 2.065355 -0.300000 2.065355 -0.500000
+ L 0 0.026667 2.065355 -0.500000 2.165355 -0.600000
+ L 0 0.026667 2.065355 -0.500000 1.965355 -0.600000
+ L 16711680 0.026667 2.265355 -0.300000 2.265355 -0.500000
+ L 16711680 0.026667 2.265355 -0.500000 2.365355 -0.600000
+ L 16711680 0.026667 2.265355 -0.500000 2.165355 -0.600000
+ END
+
+SUBCONTENTS Micro-Trains Z-Scale - Micro-Track Curve Track
+TURNOUT Z "Micro-Trains Curved 195mm 45° 990-40-904"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.428575 -2.248590 135.000000
+ C 0 0 7.677165 0.000000 -7.677165 0.000000 45.000000
+ A 11579568 0.053333 7.977165 0.000000 -7.677165 0.000000 45.000000
+ A 11579568 0.053333 7.377165 0.000000 -7.677165 0.000000 45.000000
+ END
+TURNOUT Z "Micro-Trains Curved 195mm 30° 990-40-903"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.838583 -1.028545 120.000000
+ C 0 0 7.677165 0.000000 -7.677165 0.000000 30.000000
+ A 11579568 0.053333 7.977165 0.000000 -7.677165 0.000000 30.000000
+ A 11579568 0.053333 7.377165 0.000000 -7.677165 0.000000 30.000000
+ END
+TURNOUT Z "Micro-Trains Curved 220mm 45° 990-40-913"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.124547 -2.536870 135.000000
+ C 0 0 8.661417 0.000000 -8.661417 0.000000 45.000000
+ A 11579568 0.053333 8.961417 0.000000 -8.661417 0.000000 45.000000
+ A 11579568 0.053333 8.361417 0.000000 -8.661417 0.000000 45.000000
+ END
+TURNOUT Z "Micro-Trains Curved 490mm 13° 990-40-912"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.339607 -0.494436 103.000000
+ C 0 0 19.291339 0.000000 -19.291339 0.000000 13.000000
+ A 11579568 0.053333 19.591339 0.000000 -19.291339 0.000000 13.000000
+ A 11579568 0.053333 18.991339 0.000000 -19.291339 0.000000 13.000000
+ END
+
+SUBCONTENTS Micro-Trains Z-Scale - Micro-Track Turnouts
+TURNOUT Z "Micro-Trains Left Remote Turnout 990-40-914"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 4.330709 0.000000 90.000000
+ E 4.339607 0.494436 77.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+ C 0 0 19.291339 0.000000 19.291339 167.000000 13.000000
+ L 11579568 0.053333 0.000000 -0.300000 4.330709 -0.300000
+ A 11579568 0.053333 18.991339 0.000000 19.291339 167.000000 13.000000
+ END
+TURNOUT Z "Micro-Trains Right Remote Turnout 990-40-915"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 4.330709 0.000000 90.000000
+ E 4.339607 -0.494436 103.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+ C 0 0 19.291339 0.000000 -19.291339 0.000000 13.000000
+ L 11579568 0.053333 0.000000 0.300000 4.330709 0.300000
+ A 11579568 0.053333 18.991339 0.000000 -19.291339 0.000000 13.000000
+ END
+TURNOUT Z "Micro-Trains Left Manual Turnout 990-40-910"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 4.330709 0.000000 90.000000
+ E 4.339607 0.494436 77.000000
+ S 0 0 0.000000 0.000000 4.331000 0.000000
+ C 0 0 19.291000 0.000000 19.291000 167.000000 13.000000
+ L 11579568 0.053333 0.000000 -0.300000 4.330709 -0.300000
+ A 11579568 0.053333 18.991339 0.000000 19.291339 167.000000 13.000000
+ END
+TURNOUT Z "Micro-Trains Right Manual Turnout 990-40-911"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 4.330709 0.000000 90.000000
+ E 4.339607 -0.494436 103.000000
+ S 0 0 0.000000 0.000000 4.331000 0.000000
+ C 0 0 19.291000 0.000000 -19.291000 0.000000 13.000000
+ L 11579568 0.053333 0.000000 0.300000 4.330709 0.300000
+ A 11579568 0.053333 18.991339 0.000000 -19.291339 0.000000 13.000000
+ END
+SUBCONTENTS Micro-Trains Z-Scale - Micro-Track Bridges
+TURNOUT Z "Micro-Trains Girder Bridge (Black) 110mm 990-40-950"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.330709 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+ L 0 0.053333 0.000000 0.375000 4.330709 0.375000
+ L 0 0.053333 0.000000 -0.375000 4.330709 -0.375000
+ L 0 0.029527 0.196850 0.375000 0.196850 0.250000
+ L 0 0.029527 0.984252 0.375000 0.984252 0.250000
+ L 0 0.029527 1.771654 0.375000 1.771654 0.250000
+ L 0 0.029527 2.559055 0.375000 2.559055 0.250000
+ L 0 0.029527 3.346457 0.375000 3.346457 0.250000
+ L 0 0.029527 4.133858 0.375000 4.133858 0.250000
+ L 0 0.029527 0.196850 -0.375000 0.196850 -0.250000
+ L 0 0.029527 0.984252 -0.375000 0.984252 -0.250000
+ L 0 0.029527 1.771654 -0.375000 1.771654 -0.250000
+ L 0 0.029527 2.559055 -0.375000 2.559055 -0.250000
+ L 0 0.029527 3.346457 -0.375000 3.346457 -0.250000
+ L 0 0.029527 4.133858 -0.375000 4.133858 -0.250000
+ END
+TURNOUT Z "Micro-Trains Girder Bridge (Gray) 110mm 990-40-951"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.330709 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+ L 0 0.053333 0.000000 0.375000 4.330709 0.375000
+ L 0 0.053333 0.000000 -0.375000 4.330709 -0.375000
+ L 0 0.029527 0.196850 0.375000 0.196850 0.250000
+ L 0 0.029527 0.984252 0.375000 0.984252 0.250000
+ L 0 0.029527 1.771654 0.375000 1.771654 0.250000
+ L 0 0.029527 2.559055 0.375000 2.559055 0.250000
+ L 0 0.029527 3.346457 0.375000 3.346457 0.250000
+ L 0 0.029527 4.133858 0.375000 4.133858 0.250000
+ L 0 0.029527 0.196850 -0.375000 0.196850 -0.250000
+ L 0 0.029527 0.984252 -0.375000 0.984252 -0.250000
+ L 0 0.029527 1.771654 -0.375000 1.771654 -0.250000
+ L 0 0.029527 2.559055 -0.375000 2.559055 -0.250000
+ L 0 0.029527 3.346457 -0.375000 3.346457 -0.250000
+ L 0 0.029527 4.133858 -0.375000 4.133858 -0.250000
+ END
+TURNOUT Z "Micro-Trains Girder Bridge (UP) 110mm 990-40-952"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.330709 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+ L 0 0.053333 0.000000 0.375000 4.330709 0.375000
+ L 0 0.053333 0.000000 -0.375000 4.330709 -0.375000
+ L 0 0.029527 0.196850 0.375000 0.196850 0.250000
+ L 0 0.029527 0.984252 0.375000 0.984252 0.250000
+ L 0 0.029527 1.771654 0.375000 1.771654 0.250000
+ L 0 0.029527 2.559055 0.375000 2.559055 0.250000
+ L 0 0.029527 3.346457 0.375000 3.346457 0.250000
+ L 0 0.029527 4.133858 0.375000 4.133858 0.250000
+ L 0 0.029527 0.196850 -0.375000 0.196850 -0.250000
+ L 0 0.029527 0.984252 -0.375000 0.984252 -0.250000
+ L 0 0.029527 1.771654 -0.375000 1.771654 -0.250000
+ L 0 0.029527 2.559055 -0.375000 2.559055 -0.250000
+ L 0 0.029527 3.346457 -0.375000 3.346457 -0.250000
+ L 0 0.029527 4.133858 -0.375000 4.133858 -0.250000
+ END
+TURNOUT Z "Micro-Trains Girder Bridge (CSX) 110mm 990-40-953"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.330709 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+ L 0 0.053333 0.000000 0.375000 4.330709 0.375000
+ L 0 0.053333 0.000000 -0.375000 4.330709 -0.375000
+ L 0 0.029527 0.196850 0.375000 0.196850 0.250000
+ L 0 0.029527 0.984252 0.375000 0.984252 0.250000
+ L 0 0.029527 1.771654 0.375000 1.771654 0.250000
+ L 0 0.029527 2.559055 0.375000 2.559055 0.250000
+ L 0 0.029527 3.346457 0.375000 3.346457 0.250000
+ L 0 0.029527 4.133858 0.375000 4.133858 0.250000
+ L 0 0.029527 0.196850 -0.375000 0.196850 -0.250000
+ L 0 0.029527 0.984252 -0.375000 0.984252 -0.250000
+ L 0 0.029527 1.771654 -0.375000 1.771654 -0.250000
+ L 0 0.029527 2.559055 -0.375000 2.559055 -0.250000
+ L 0 0.029527 3.346457 -0.375000 3.346457 -0.250000
+ L 0 0.029527 4.133858 -0.375000 4.133858 -0.250000
+ END
+TURNOUT Z "Micro-Trains Girder Bridge (Santa Fe) 110mm 990-40-954"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.330709 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+ L 0 0.053333 0.000000 0.375000 4.330709 0.375000
+ L 0 0.053333 0.000000 -0.375000 4.330709 -0.375000
+ L 0 0.029527 0.196850 0.375000 0.196850 0.250000
+ L 0 0.029527 0.984252 0.375000 0.984252 0.250000
+ L 0 0.029527 1.771654 0.375000 1.771654 0.250000
+ L 0 0.029527 2.559055 0.375000 2.559055 0.250000
+ L 0 0.029527 3.346457 0.375000 3.346457 0.250000
+ L 0 0.029527 4.133858 0.375000 4.133858 0.250000
+ L 0 0.029527 0.196850 -0.375000 0.196850 -0.250000
+ L 0 0.029527 0.984252 -0.375000 0.984252 -0.250000
+ L 0 0.029527 1.771654 -0.375000 1.771654 -0.250000
+ L 0 0.029527 2.559055 -0.375000 2.559055 -0.250000
+ L 0 0.029527 3.346457 -0.375000 3.346457 -0.250000
+ L 0 0.029527 4.133858 -0.375000 4.133858 -0.250000
+ END
+TURNOUT Z "Micro-Trains Girder Bridge (Rock Island) 110mm 990-40-957"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.330709 0.000000 90.000000
+ S 0 0 0.000000 0.000000 4.330709 0.000000
+ L 0 0.053333 0.000000 0.375000 4.330709 0.375000
+ L 0 0.053333 0.000000 -0.375000 4.330709 -0.375000
+ L 0 0.029527 0.196850 0.375000 0.196850 0.250000
+ L 0 0.029527 0.984252 0.375000 0.984252 0.250000
+ L 0 0.029527 1.771654 0.375000 1.771654 0.250000
+ L 0 0.029527 2.559055 0.375000 2.559055 0.250000
+ L 0 0.029527 3.346457 0.375000 3.346457 0.250000
+ L 0 0.029527 4.133858 0.375000 4.133858 0.250000
+ L 0 0.029527 0.196850 -0.375000 0.196850 -0.250000
+ L 0 0.029527 0.984252 -0.375000 0.984252 -0.250000
+ L 0 0.029527 1.771654 -0.375000 1.771654 -0.250000
+ L 0 0.029527 2.559055 -0.375000 2.559055 -0.250000
+ L 0 0.029527 3.346457 -0.375000 3.346457 -0.250000
+ L 0 0.029527 4.133858 -0.375000 4.133858 -0.250000
+ END
diff --git a/app/lib/params/peco turntable wo routes.xtp b/app/lib/params/peco turntable wo routes.xtp
index 798150a..72a9552 100644
--- a/app/lib/params/peco turntable wo routes.xtp
+++ b/app/lib/params/peco turntable wo routes.xtp
@@ -19,24 +19,24 @@ TURNOUT N "Peco Turn Table NB-55"
P "17" 17
P "18" 18
E 0.000000 0.000000 0.000000
- S 16777215 0.000000 0.000000 3.000000 0.000000 -3.000000
- S 16777215 0.000000 0.520945 2.954423 -0.520945 -2.954423
- S 16777215 0.000000 1.026060 2.819078 -1.026060 -2.819078
- S 16777215 0.000000 1.500000 2.598076 -1.500000 -2.598076
- S 16777215 0.000000 1.928363 2.298133 -1.928363 -2.298133
- S 16777215 0.000000 2.298133 1.928363 -2.298133 -1.928363
- S 16777215 0.000000 2.598076 1.500000 -2.598076 -1.500000
- S 16777215 0.000000 2.819078 1.026060 -2.819078 -1.026060
- S 16777215 0.000000 2.954423 0.520945 -2.954423 -0.520945
- S 16777215 0.000000 3.000000 0.000000 -3.000000 0.000000
- S 16777215 0.000000 2.954423 -0.520945 -2.954423 0.520945
- S 16777215 0.000000 2.819078 -1.026060 -2.819078 1.026060
- S 16777215 0.000000 2.598076 -1.500000 -2.598076 1.500000
- S 16777215 0.000000 2.298133 -1.928363 -2.298133 1.928363
- S 16777215 0.000000 1.928363 -2.298133 -1.928363 2.298133
- S 16777215 0.000000 1.500000 -2.598076 -1.500000 2.598076
- S 16777215 0.000000 1.026060 -2.819078 -1.026060 2.819078
- S 16777215 0.000000 0.520945 -2.954423 -0.520945 2.954423
+ S 0 0.000000 0.000000 3.000000 0.000000 -3.000000
+ S 0 0.000000 0.520945 2.954423 -0.520945 -2.954423
+ S 0 0.000000 1.026060 2.819078 -1.026060 -2.819078
+ S 0 0.000000 1.500000 2.598076 -1.500000 -2.598076
+ S 0 0.000000 1.928363 2.298133 -1.928363 -2.298133
+ S 0 0.000000 2.298133 1.928363 -2.298133 -1.928363
+ S 0 0.000000 2.598076 1.500000 -2.598076 -1.500000
+ S 0 0.000000 2.819078 1.026060 -2.819078 -1.026060
+ S 0 0.000000 2.954423 0.520945 -2.954423 -0.520945
+ S 0 0.000000 3.000000 0.000000 -3.000000 0.000000
+ S 0 0.000000 2.954423 -0.520945 -2.954423 0.520945
+ S 0 0.000000 2.819078 -1.026060 -2.819078 1.026060
+ S 0 0.000000 2.598076 -1.500000 -2.598076 1.500000
+ S 0 0.000000 2.298133 -1.928363 -2.298133 1.928363
+ S 0 0.000000 1.928363 -2.298133 -1.928363 2.298133
+ S 0 0.000000 1.500000 -2.598076 -1.500000 2.598076
+ S 0 0.000000 1.026060 -2.819078 -1.026060 2.819078
+ S 0 0.000000 0.520945 -2.954423 -0.520945 2.954423
A3 0 0.031250 3.000000 0.000000 0.000000 0 0.000000 360.000000
G3 0 0.000000 0.01 0.000000 0.000000 0
A 0 0.000000 3.218750 0.000000 0.000000 0.000000 360.000000
diff --git a/app/lib/params/pecohom.xtp b/app/lib/params/pecohom.xtp
index 8ebf1c0..bb22332 100644
--- a/app/lib/params/pecohom.xtp
+++ b/app/lib/params/pecohom.xtp
@@ -1,4 +1,4 @@
-CONTENTS Peco HOm and HOn3 Turnouts
+CONTENTS Peco HOm and HOn3½ Turnouts
TURNOUT HOm "Peco 10 Deg. LH SL-E1487"
U "Regular Turnout" "Phillip Cobden" "Peco" "10 Deg. LH" "SL-E1487" "10 Deg. RH" "SL-E1486" 6.220472 10.000000 0.708661 6.299213 0.000000 0.000000 0
P "Normal" 1 2
diff --git a/app/lib/params/rocho83.xtp b/app/lib/params/rocho83.xtp
index 224bd1b..1cbe2d2 100644
--- a/app/lib/params/rocho83.xtp
+++ b/app/lib/params/rocho83.xtp
@@ -28,49 +28,49 @@ TURNOUT HO "Roco straight G1/4, 57.5mm 42413"
S 0 0 0.000000 0.000000 2.263780 0.000000
END
# Curved Section Design by Peter Klapwijk - 35.800000 30.000000
-TURNOUT HO "Roco R2, rad.358mm/30 42422"
+TURNOUT HO "Roco R2, rad.358mm/30° 42422"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 7.047239 1.888300 60.000000
C 0 0 -14.094488 0.000019 14.094488 150.000076 30.000000
END
# Curved Section Design by Peter Klapwijk - 41.960000 30.000000
-TURNOUT HO "Roco R3, rad.419.6mm/30 42423"
+TURNOUT HO "Roco R3, rad.419.6mm/30° 42423"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 8.259836 2.213214 60.000000
C 0 0 -16.519685 0.000022 16.519685 150.000076 30.000000
END
# Curved Section Design by Peter Klapwijk - 48.120000 30.000000
-TURNOUT HO "Roco R4, rad.481.2mm/30 42424"
+TURNOUT HO "Roco R4, rad.481.2mm/30° 42424"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 9.472434 2.538129 60.000000
C 0 0 -18.944882 0.000025 18.944882 150.000076 30.000000
END
# Curved Section Design by Peter Klapwijk - 54.280000 30.000000
-TURNOUT HO "Roco R5, rad.542.8mm/30 42425"
+TURNOUT HO "Roco R5, rad.542.8mm/30° 42425"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 10.685031 2.863043 60.000000
C 0 0 -21.370079 0.000028 21.370079 150.000076 30.000000
END
# Curved Section Design by Peter Klapwijk - 88.880000 15.000000
-TURNOUT HO "Roco R10, 15/#4 turnout rev 42428"
+TURNOUT HO "Roco R10, 15°/#4 turnout rev 42428"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 9.056621 1.192326 75.000000
C 0 0 -34.992126 0.000046 34.992126 165.000076 15.000000
END
# Curved Section Design by Peter Klapwijk - 196.200000 5.000000
-TURNOUT HO "Roco R20, 5/#6 turnout rev 42430"
+TURNOUT HO "Roco R20, 5°/#6 turnout rev 42430"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 6.732261 0.293937 85.000000
C 0 0 -77.244094 0.000102 77.244094 175.000076 5.000000
END
# Regular Turnout Design by Peter Klapwijk - 23.000000 3.080000 15.000000 23.000000
-TURNOUT HO "Roco WL15, 230mm/rad87.35, 15 42440"
+TURNOUT HO "Roco WL15, 230mm/rad87.35, 15° 42440"
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -81,7 +81,7 @@ TURNOUT HO "Roco WL15, 230mm/rad87.35, 15 42440"
C 0 0 -29.479767 0.648639 29.479767 164.999924 15.000152
S 0 0 8.278594 1.004517 9.055118 1.212598
END
-TURNOUT HO "Roco WR15, 230mm/rad87.35, 15 42441"
+TURNOUT HO "Roco WR15, 230mm/rad87.35, 15° 42441"
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -100,21 +100,21 @@ TURNOUT HO "Roco 8mm straight c/w 440/441 D8"
S 0 0.000000 0.000000 0.000000 0.314961 0.000000
END
# Curved Section Design by Peter Klapwijk - 35.800000 7.500000
-TURNOUT HO "Roco R2 1/4, rad.358mm/7.5 42408"
+TURNOUT HO "Roco R2 1/4, rad.358mm/7.5° 42408"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 1.839698 0.120580 82.500000
C 0 0 -14.094488 0.000019 14.094488 172.500076 7.500000
END
# Curved Section Design by Peter Klapwijk - 41.960000 7.500000
-TURNOUT HO "Roco R3 1/4, rad419.6mm/7.5 42409"
+TURNOUT HO "Roco R3 1/4, rad419.6mm/7.5° 42409"
P "Normal" 1
E 0.000000 0.000000 270.000000
E 2.156250 0.141328 82.500000
C 0 0 -16.519685 0.000022 16.519685 172.500076 7.500000
END
# Regular Turnout Design by Peter Klapwijk - 34.500000 3.080000 10.000000 34.500000
-TURNOUT HO "Roco WL10, 345mm, rad.1946mm/10 42488"
+TURNOUT HO "Roco WL10, 345mm, rad.1946mm/10° 42488"
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -125,7 +125,7 @@ TURNOUT HO "Roco WL10, 345mm, rad.1946mm/10 42488"
C 0 0 -69.234030 0.648692 69.234030 169.999924 10.000152
S 0 0 12.671134 1.051851 13.582677 1.212598
END
-TURNOUT HO "Roco WR10, 345mm, rad.1946mm/10 42489"
+TURNOUT HO "Roco WR10, 345mm, rad.1946mm/10° 42489"
P "Normal" 1 2
P "Reverse" 1 3 4
E 0.000000 0.000000 270.000000
@@ -165,7 +165,7 @@ TURNOUT HO "Roco Curved Right 42559"
S 0 0.000000 0.648600 0.000000 2.682671 0.000000
END
# Crossing Design by Peter Klapwijk - 23.000000 15.000000 23.000000
-TURNOUT HO "Roco K15, 230mm, 15 42497"
+TURNOUT HO "Roco K15, 230mm, 15° 42497"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 9.055118 0.000000 90.000000
@@ -175,7 +175,7 @@ TURNOUT HO "Roco K15, 230mm, 15 42497"
S 0 0.000000 0.154271 1.171812 8.900847 -1.171812
END
# Single Slipswitch Design by Peter Klapwijk - 23.000000 15.000000 23.000000
-TURNOUT HO "Roco EKW15, 230mm/15/rad.531mm 42448"
+TURNOUT HO "Roco EKW15, 230mm/15°/rad.531mm 42448"
P "Normal" 1 2 0 3 4
P "Reverse" 1 5 4
E 0.000000 0.000000 270.000000
@@ -189,7 +189,7 @@ TURNOUT HO "Roco EKW15, 230mm/15/rad.531mm 42448"
C 0 0 24.536566 1.297226 -24.536566 0.000076 15.000152
END
# Double Slipswitch Design by Peter Klapwijk - 23.000000 15.000000 23.000000
-TURNOUT HO "Roco DKW15, 230mm, 15 42451"
+TURNOUT HO "Roco DKW15, 230mm, 15° 42451"
P "Normal" 1 2 3 0 4 5 6
P "Reverse" 1 7 6 0 4 8 3
E 0.000000 0.000000 270.000000
@@ -206,7 +206,7 @@ TURNOUT HO "Roco DKW15, 230mm, 15 42451"
C 0 0.000000 -24.536566 7.757826 24.536558 180.000076 15.000152
END
# 3-way Turnout Design by Peter Klapwijk - 23.000000 3.080000 15.000000 28.750000 15.000000 3.080000 28.750000
-TURNOUT HO "Roco DWW15, 287.5mm/rad.873.5/15 42454"
+TURNOUT HO "Roco DWW15, 287.5mm/rad.873.5/15° 42454"
P "Left" 1 2 3
P "Normal" 1 4 7
P "Right" 1 4 5 6
@@ -237,7 +237,7 @@ TURNOUT HO "Roco straight 12mm ext. c/w 497/448/451/454 D12"
S 0 0 0.000000 0.000000 0.472441 0.000000
END
# Crossing Design by Peter Klapwijk - 11.900000 30.000000 11.900000
-TURNOUT HO "Roco K30, 119mm, 30 42498"
+TURNOUT HO "Roco K30, 119mm, 30° 42498"
P "Normal" 1 0 2
E 0.000000 0.000000 270.000000
E 4.685039 0.000000 90.000000
@@ -247,7 +247,7 @@ TURNOUT HO "Roco K30, 119mm, 30 42498"
S 0 0.000000 0.313836 1.171256 4.371203 -1.171256
END
# Single Slipswitch Design by Peter Klapwijk - 34.500000 10.000000 34.500000
-TURNOUT HO "Roco EKW10, 345mm, 10 42493"
+TURNOUT HO "Roco EKW10, 345mm, 10° 42493"
P "Normal" 1 2 0 3 4
P "Reverse" 1 5 4
E 0.000000 0.000000 270.000000
@@ -261,7 +261,7 @@ TURNOUT HO "Roco EKW10, 345mm, 10 42493"
C 0 0.000000 62.796695 1.297239 -62.796695 0.000076 10.000152
END
# Double Slipswitch Design by Peter Klapwijk - 34.500000 10.000000 34.500000
-TURNOUT HO "Roco DKW10, 345mm, 10 42496"
+TURNOUT HO "Roco DKW10, 345mm, 10° 42496"
P "Normal" 1 2 3 0 4 5 6
P "Reverse" 1 7 6 0 4 8 3
E 0.000000 0.000000 270.000000
diff --git a/app/lib/params/tomix-n.xtp b/app/lib/params/tomix-n.xtp
index 737a4b8..bce69a7 100644
--- a/app/lib/params/tomix-n.xtp
+++ b/app/lib/params/tomix-n.xtp
@@ -1,1689 +1,1689 @@
-CONTENTS Tomix N-Scale Fine Track
-SUBCONTENTS Tomix N-Scale Fine Track - Straight Track
-TURNOUT N "Tomix Fine Track Straight 5.51 140mm 1021"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.511811 0.000000 90.000000
- S 0 0 0.000000 0.000000 5.511811 0.000000
- L 11579568 0.053333 0.000000 0.364173 5.511811 0.364173
- L 11579568 0.053333 0.000000 -0.364173 5.511811 -0.364173
- END
-TURNOUT N "Tomix Fine Track Straight 5.51 140mm (slab type) 1046/1047"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.511811 0.000000 90.000000
- S 0 0 0.000000 0.000000 5.511811 0.000000
- L 11579568 0.053333 0.000000 0.364173 5.511811 0.364173
- L 11579568 0.053333 0.000000 -0.364173 5.511811 -0.364173
- END
-TURNOUT N "Tomix Fine Track Straight 11.02 280mm 1022"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 11.023622 0.000000 90.000000
- S 0 0 0.000000 0.000000 11.023622 0.000000
- L 11579568 0.053333 0.000000 0.364173 11.023622 0.364173
- L 11579568 0.053333 0.000000 -0.364173 11.023622 -0.364173
- END
-TURNOUT N "Tomix Fine Track Straight 2.85 72.5mm 1023"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.854331 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.854331 0.000000
- L 11579568 0.053333 0.000000 0.364173 2.854331 0.364173
- L 11579568 0.053333 0.000000 -0.364173 2.854331 -0.364173
- END
-TURNOUT N "Tomix Fine Track Straight 2.75 70mm 1024"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.755906 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.755906 0.000000
- L 11579568 0.053333 0.000000 0.364173 2.755906 0.364173
- L 11579568 0.053333 0.000000 -0.364173 2.755906 -0.364173
- END
-TURNOUT N "Tomix Fine Track Straight 3.89 99mm 1025"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.897638 0.000000 90.000000
- S 0 0 0.000000 0.000000 3.897638 0.000000
- L 11579568 0.053333 0.000000 0.364173 3.897638 0.364173
- L 11579568 0.053333 0.000000 -0.364173 3.897638 -0.364173
- END
-TURNOUT N "Tomix Fine Track Straight 6.24 158.5mm 1026"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.240157 0.000000 90.000000
- S 0 0 0.000000 0.000000 6.240157 0.000000
- L 11579568 0.053333 0.000000 0.364173 6.240157 0.364173
- L 11579568 0.053333 0.000000 -0.364173 6.240157 -0.364173
- END
-TURNOUT N "Tomix Fine Track Straight 0.72 18.5mm 1099A"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 0.725346 0.000000 90.000000
- S 0 0 0.000000 0.000000 0.725346 0.000000
- L 11579568 0.053333 0.000000 0.364173 0.725346 0.364173
- L 11579568 0.053333 0.000000 -0.364173 0.725346 -0.364173
- END
-TURNOUT N "Tomix Fine Track Straight 1.29 33mm 1099B"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.299213 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.299213 0.000000
- L 11579568 0.053333 0.000000 0.364173 1.299213 0.364173
- L 11579568 0.053333 0.000000 -0.364173 1.299213 -0.364173
- END
-
-SUBCONTENTS Tomix N-Scale Fine Track - Straight PC Track
-TURNOUT N "Tomix Fine Track PC Straight 2.75 70mm 1014"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.755906 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.755906 0.000000
- L 11579568 0.053333 0.000000 0.364173 2.755906 0.364173
- L 11579568 0.053333 0.000000 -0.364173 2.755906 -0.364173
- END
-TURNOUT N "Tomix Fine Track PC Straight 2.85 72.5mm 1013"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.854331 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.854331 0.000000
- L 11579568 0.053333 0.000000 0.364173 2.854331 0.364173
- L 11579568 0.053333 0.000000 -0.364173 2.854331 -0.364173
- END
-TURNOUT N "Tomix Fine Track PC Straight 3.89 99mm 1015"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.897638 0.000000 90.000000
- S 0 0 0.000000 0.000000 3.897638 0.000000
- L 11579568 0.053333 0.000000 0.364173 3.897638 0.364173
- L 11579568 0.053333 0.000000 -0.364173 3.897638 -0.364173
- END
-TURNOUT N "Tomix Fine Track PC Straight 5.51 140mm 1011"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.511811 0.000000 90.000000
- S 0 0 0.000000 0.000000 5.511811 0.000000
- L 11579568 0.053333 0.000000 0.364173 5.511811 0.364173
- L 11579568 0.053333 0.000000 -0.364173 5.511811 -0.364173
- END
-TURNOUT N "Tomix Fine Track PC Straight 6.24 158.5mm 1016"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.240157 0.000000 90.000000
- S 0 0 0.000000 0.000000 6.240157 0.000000
- L 11579568 0.053333 0.000000 0.364173 6.240157 0.364173
- L 11579568 0.053333 0.000000 -0.364173 6.240157 -0.364173
- END
-TURNOUT N "Tomix Fine Track PC Straight 11.02 280mm 1012/1093"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 11.023622 0.000000 90.000000
- S 0 0 0.000000 0.000000 11.023622 0.000000
- L 11579568 0.053333 0.000000 0.364173 11.023622 0.364173
- L 11579568 0.053333 0.000000 -0.364173 11.023622 -0.364173
- END
-
-SUBCONTENTS Tomix N-Scale Fine Track - Widetrack PC Straight Track
-TURNOUT N "Tomix Fine Track Widetrack PC Straight 5.51 140mm 1731/1761"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.511811 0.000000 90.000000
- S 0 0 0.000000 0.000000 5.511811 0.000000
- L 11579568 0.053333 0.000000 0.728346 5.511811 0.728346
- L 11579568 0.053333 0.000000 -0.728346 5.511811 -0.728346
- END
-TURNOUT N "Tomix Fine Track Widetrack PC Straight(branch) 5.51 140mm 1739/1769"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.511811 0.000000 90.000000
- S 0 0 0.000000 0.000000 5.511811 0.000000
- L 11579568 0.053333 0.000000 0.728346 5.511811 0.728346
- L 11579568 0.053333 0.000000 -0.728346 5.511811 -0.728346
- END
-TURNOUT N "Tomix Fine Track Widetrack PC Straight 11.02 280mm 1730/1732/1762"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 11.023622 0.000000 90.000000
- S 0 0 0.000000 0.000000 11.023622 0.000000
- L 11579568 0.053333 0.000000 0.728346 11.023622 0.728346
- L 11579568 0.053333 0.000000 -0.728346 11.023622 -0.728346
- END
-TURNOUT N "Tomix Fine Track Widetrack PC Straight 2.85 72.5mm 1733/1763"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.854331 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.854331 0.000000
- L 11579568 0.053333 0.000000 0.728346 2.854331 0.728346
- L 11579568 0.053333 0.000000 -0.728346 2.854331 -0.728346
- END
-TURNOUT N "Tomix Fine Track Widetrack PC Straight 2.75 70mm 1734/1764"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.755906 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.755906 0.000000
- L 11579568 0.053333 0.000000 0.728346 2.755906 0.728346
- L 11579568 0.053333 0.000000 -0.728346 2.755906 -0.728346
- END
-TURNOUT N "Tomix Fine Track Widetrack PC Straight 3.89 99mm 1735"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.897638 0.000000 90.000000
- S 0 0 0.000000 0.000000 3.897638 0.000000
- L 11579568 0.053333 0.000000 0.728346 3.897638 0.728346
- L 11579568 0.053333 0.000000 -0.728346 3.897638 -0.728346
- END
-TURNOUT N "Tomix Fine Track Widetrack PC Straight 6.24 158.5mm 1736"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.240157 0.000000 90.000000
- S 0 0 0.000000 0.000000 6.240157 0.000000
- L 11579568 0.053333 0.000000 0.728346 6.240157 0.728346
- L 11579568 0.053333 0.000000 -0.728346 6.240157 -0.728346
- END
-TURNOUT N "Tomix Fine Track Widetrack PC Straight 0.72 18.5mm 1738A"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 0.725346 0.000000 90.000000
- S 0 0 0.000000 0.000000 0.725346 0.000000
- L 11579568 0.053333 0.000000 0.728346 0.725346 0.728346
- L 11579568 0.053333 0.000000 -0.728346 0.725346 -0.728346
- END
-TURNOUT N "Tomix Fine Track Widetrack PC Straight 1.29 33mm 1738B"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 1.299213 0.000000 90.000000
- S 0 0 0.000000 0.000000 1.299213 0.000000
- L 11579568 0.053333 0.000000 0.728346 1.299213 0.364173
- L 11579568 0.053333 0.000000 -0.728346 1.299213 -0.728346
- END
-
-SUBCONTENTS Tomix N-Scale Fine Track - Buffers
-TURNOUT N "Tomix Fine Track Buffer Trk 111mm 1421"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- S 0 0 0.000000 0.000000 4.370079 0.000000
- L 11579568 0.053333 0.000000 0.364173 4.370079 0.364173
- L 11579568 0.053333 0.000000 -0.364173 4.370079 -0.364173
- L 11579568 0.053333 4.370079 0.364173 4.370079 -0.364173
- L 0 0.106666 3.000000 0.000000 3.100000 0.000000
- L 0 0.053333 2.750000 0.190000 4.370079 0.190000
- L 0 0.053333 2.750000 -0.190000 4.370079 -0.190000
- L 0 0.053333 2.750000 0.190000 3.100000 0.000000
- L 0 0.053333 2.750000 -0.190000 3.100000 0.000000
- L 0 0.053333 3.100000 0.000000 4.370079 0.190000
- L 0 0.053333 3.100000 0.000000 4.370079 -0.190000
- END
-TURNOUT N "Tomix Fine Track Buffer Trk(LED) 80mm 1422"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- S 0 0 0.000000 0.000000 1.574803 0.000000
- L 11579568 0.053333 0.000000 0.364173 3.149606 0.364173
- L 11579568 0.053333 0.000000 -0.364173 3.149606 -0.364173
- L 11579568 0.053333 1.574803 0.364173 1.574803 -0.364173
- L 11579568 0.053333 3.149606 0.364173 3.149606 -0.364173
- F 11579568 0.000000 4
- 2.456693 -0.190000 0
- 3.055118 -0.190000 0
- 3.055118 0.190000 0
- 2.456693 0.190000 0
- END
-TURNOUT N "Tomix Fine Track Buffer Trk(LED2) 49mm 1423"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- S 0 0 0.000000 0.000000 1.299213 0.000000
- L 11579568 0.053333 0.000000 0.364173 1.929134 0.364173
- L 11579568 0.053333 0.000000 -0.364173 1.929134 -0.364173
- L 11579568 0.053333 1.299213 0.364173 1.299213 -0.364173
- L 11579568 0.053333 1.929134 0.364173 1.929134 -0.364173
- L 11579568 0.053333 0.852441 0.000000 1.629134 0.000000
- F 11579568 0.000000 4
- 0.472441 -0.190000 0
- 0.852441 -0.190000 0
- 0.852441 0.190000 0
- 0.472441 0.190000 0
- F 11579568 0.000000 4
- 1.529134 -0.100000 0
- 1.729134 -0.100000 0
- 1.729134 0.100000 0
- 1.529134 0.100000 0
- END
-TURNOUT N "Tomix Fine Track PC Buffer Trk(LED) 80mm 1427"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- S 0 0 0.000000 0.000000 1.574803 0.000000
- L 11579568 0.053333 0.000000 0.364173 3.149606 0.364173
- L 11579568 0.053333 0.000000 -0.364173 3.149606 -0.364173
- L 11579568 0.053333 1.574803 0.364173 1.574803 -0.364173
- L 11579568 0.053333 3.149606 0.364173 3.149606 -0.364173
- F 11579568 0.000000 4
- 2.456693 -0.190000 0
- 3.055118 -0.190000 0
- 3.055118 0.190000 0
- 2.456693 0.190000 0
- END
-
-
-SUBCONTENTS Tomix N-Scale Fine Track - Curved Track
-TURNOUT N "Tomix Fine Track Mini Curve 4.05R 103mm 30 1111A"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.027559 -0.543345 120.000000
- C 0 0 4.055118 0.000000 -4.055118 0.000000 30.000000
- A 11579568 0.053333 3.690945 0.000000 -4.055118 0.000000 30.000000
- A 11579568 0.053333 4.419291 0.000000 -4.055118 0.000000 30.000000
- END
-TURNOUT N "Tomix Fine Track Mini Curve 4.05R 103mm 60 1111B"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.511835 -2.027559 150.000000
- C 0 0 4.055118 0.000000 -4.055118 0.000000 60.000000
- A 11579568 0.053333 3.690945 0.000000 -4.055118 0.000000 60.000000
- A 11579568 0.053333 4.419291 0.000000 -4.055118 0.000000 60.000000
- END
-TURNOUT N "Tomix Fine Track Mini Curve 5.51R 140mm 30 1112A"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.755906 -0.738443 120.000000
- C 0 0 5.511811 0.000000 -5.511811 0.000000 30.000000
- A 11579568 0.053333 5.147638 0.000000 -5.511811 0.000000 30.000000
- A 11579568 0.053333 5.875984 0.000000 -5.511811 0.000000 30.000000
- END
-TURNOUT N "Tomix Fine Track Mini Curve 5.51R 140mm 60 1112B"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.773368 -2.755905 150.000000
- C 0 0 5.511811 0.000000 -5.511811 0.000000 60.000000
- A 11579568 0.053333 5.147638 0.000000 -5.511811 0.000000 60.000000
- A 11579568 0.053333 5.875984 0.000000 -5.511811 0.000000 60.000000
- END
-TURNOUT N "Tomix Fine Track Mini Curve 6.96R 177mm 30 1113A"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.484252 -0.933603 120.000000
- C 0 0 6.968504 0.000000 -6.968504 0.000000 30.000000
- A 11579568 0.053333 6.604331 0.000000 -6.968504 0.000000 30.000000
- A 11579568 0.053333 7.332677 0.000000 -6.968504 0.000000 30.000000
- END
-TURNOUT N "Tomix Fine Track Mini Curve 6.96R 177mm 60 1113B"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.034901 -3.484252 150.000000
- C 0 0 6.968504 0.000000 -6.968504 0.000000 60.000000
- A 11579568 0.053333 6.604331 0.000000 -6.968504 0.000000 60.000000
- A 11579568 0.053333 7.332677 0.000000 -6.968504 0.000000 60.000000
- END
-TURNOUT N "Tomix Fine Track Curve 9.56R 243mm 15 1143"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.476103 -0.325985 105.000000
- C 0 0 9.566929 0.000000 -9.566929 0.000000 15.000000
- A 11579568 0.053333 9.202756 0.000000 -9.566929 0.000000 15.000000
- A 11579568 0.053333 9.931102 0.000000 -9.566929 0.000000 15.000000
- END
-TURNOUT N "Tomix Fine Track Curve 9.56R 243mm 45 1125"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.764840 -2.802089 135.000000
- C 0 0 9.566929 0.000000 -9.566929 0.000000 45.000000
- A 11579568 0.053333 9.202756 0.000000 -9.566929 0.000000 45.000000
- A 11579568 0.053333 9.931102 0.000000 -9.566929 0.000000 45.000000
- END
-TURNOUT N "Tomix Fine Track Curve 11.02R 280mm 15 1124"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.853123 -0.375621 105.000000
- C 0 0 11.023622 0.000000 -11.023622 0.000000 15.000000
- A 11579568 0.053333 10.659449 0.000000 -11.023622 0.000000 15.000000
- A 11579568 0.053333 11.387796 0.000000 -11.023622 0.000000 15.000000
- END
-TURNOUT N "Tomix Fine Track Curve 11.02R 280mm 45 1121"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.794878 -3.228744 135.000000
- C 0 0 11.023622 0.000000 -11.023622 0.000000 45.000000
- A 11579568 0.053333 10.659449 0.000000 -11.023622 0.000000 45.000000
- A 11579568 0.053333 11.387796 0.000000 -11.023622 0.000000 45.000000
- END
-TURNOUT N "Tomix Fine Track Curve 12.48R 317mm 15 1127"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.230143 -0.425256 105.000000
- C 0 0 12.480315 0.000000 -12.480315 0.000000 15.000000
- A 11579568 0.053333 12.116143 0.000000 -12.480315 0.000000 15.000000
- A 11579568 0.053333 12.844488 0.000000 -12.480315 0.000000 15.000000
- END
-TURNOUT N "Tomix Fine Track Curve 12.48R 317mm 45 1122"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.824915 -3.655400 135.000000
- C 0 0 12.480315 0.000000 -12.480315 0.000000 45.000000
- A 11579568 0.053333 12.116143 0.000000 -12.480315 0.000000 45.000000
- A 11579568 0.053333 12.844488 0.000000 -12.480315 0.000000 45.000000
- END
-TURNOUT N "Tomix Fine Track Curve 13.93R 354mm 15 1144"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.607163 -0.474892 105.000000
- C 0 0 13.937008 0.000000 -13.937008 0.000000 15.000000
- A 11579568 0.053333 13.572835 0.000000 -13.937008 0.000000 15.000000
- A 11579568 0.053333 14.301181 0.000000 -13.937008 0.000000 15.000000
- END
-TURNOUT N "Tomix Fine Track Curve 13.93R 354mm 45 1126"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.854953 -4.082055 135.000000
- C 0 0 13.937008 0.000000 -13.937008 0.000000 45.000000
- A 11579568 0.053333 13.572835 0.000000 -13.937008 0.000000 45.000000
- A 11579568 0.053333 14.301181 0.000000 -13.937008 0.000000 45.000000
- END
-TURNOUT N "Tomix Fine Track Curve 15.39R 391mm 15 1145"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.984183 -0.524528 105.000000
- C 0 0 15.393701 0.000000 -15.393701 0.000000 15.000000
- A 11579568 0.053333 15.029528 0.000000 -15.393701 0.000000 15.000000
- A 11579568 0.053333 15.757874 0.000000 -15.393701 0.000000 15.000000
- END
-TURNOUT N "Tomix Fine Track Curve 15.39R 391mm 45 1128"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 10.884990 -4.508711 135.000000
- C 0 0 15.393701 0.000000 -15.393701 0.000000 45.000000
- A 11579568 0.053333 15.029528 0.000000 -15.393701 0.000000 45.000000
- A 11579568 0.053333 15.757874 0.000000 -15.393701 0.000000 45.000000
- END
-TURNOUT N "Tomix Fine Track Curve 21.29R 541mm 15 1123"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.512642 -0.725753 105.000000
- C 0 0 21.299213 0.000000 -21.299213 0.000000 15.000000
- A 11579568 0.053333 20.935040 0.000000 -21.299213 0.000000 15.000000
- A 11579568 0.053333 21.663386 0.000000 -21.299213 0.000000 15.000000
- END
-TURNOUT N "Tomix Fine Track Curve 23.82R 605mm 10 1150"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.136108 -0.361863 100.000000
- C 0 0 23.818898 0.000000 -23.818898 0.000000 10.000000
- A 11579568 0.053333 23.454725 0.000000 -23.818898 0.000000 10.000000
- A 11579568 0.053333 24.183071 0.000000 -23.818898 0.000000 10.000000
- END
-
-SUBCONTENTS Tomix N-Scale Fine Track - Curved PC Track
-TURNOUT N "Tomix Fine Track PC Curve 11.02R 280mm 15 1194"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.853123 -0.375621 105.000000
- C 0 0 11.023622 0.000000 -11.023622 0.000000 15.000000
- A 11579568 0.053333 10.659449 0.000000 -11.023622 0.000000 15.000000
- A 11579568 0.053333 11.387796 0.000000 -11.023622 0.000000 15.000000
- END
-TURNOUT N "Tomix Fine Track PC Curve 11.02R 280mm 45 1191"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.794878 -3.228744 135.000000
- C 0 0 11.023622 0.000000 -11.023622 0.000000 45.000000
- A 11579568 0.053333 10.659449 0.000000 -11.023622 0.000000 45.000000
- A 11579568 0.053333 11.387796 0.000000 -11.023622 0.000000 45.000000
- END
-TURNOUT N "Tomix Fine Track PC Curve 9.56R 243mm 45 1195"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.764840 -2.802089 135.000000
- C 0 0 9.566929 0.000000 -9.566929 0.000000 45.000000
- A 11579568 0.053333 9.202756 0.000000 -9.566929 0.000000 45.000000
- A 11579568 0.053333 9.931102 0.000000 -9.566929 0.000000 45.000000
- END
-TURNOUT N "Tomix Fine Track PC Curve 12.48R 317mm 45 1192"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.824915 -3.655400 135.000000
- C 0 0 12.480315 0.000000 -12.480315 0.000000 45.000000
- A 11579568 0.053333 12.116143 0.000000 -12.480315 0.000000 45.000000
- A 11579568 0.053333 12.844488 0.000000 -12.480315 0.000000 45.000000
- END
-TURNOUT N "Tomix Fine Track PC Curve 13.93R 354mm 45 1196"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.854953 -4.082055 135.000000
- C 0 0 13.937008 0.000000 -13.937008 0.000000 45.000000
- A 11579568 0.053333 13.572835 0.000000 -13.937008 0.000000 45.000000
- A 11579568 0.053333 14.301181 0.000000 -13.937008 0.000000 45.000000
- END
-TURNOUT N "Tomix Fine Track PC Curve 15.39R 391mm 45 1198"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 10.884990 -4.508711 135.000000
- C 0 0 15.393701 0.000000 -15.393701 0.000000 45.000000
- A 11579568 0.053333 15.029528 0.000000 -15.393701 0.000000 45.000000
- A 11579568 0.053333 15.757874 0.000000 -15.393701 0.000000 45.000000
- END
-TURNOUT N "Tomix Fine Track PC Curve 21.29R 541mm 15 1193"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.512642 -0.725753 105.000000
- C 0 0 21.299213 0.000000 -21.299213 0.000000 15.000000
- A 11579568 0.053333 20.935040 0.000000 -21.299213 0.000000 15.000000
- A 11579568 0.053333 21.663386 0.000000 -21.299213 0.000000 15.000000
- END
-TURNOUT N "Tomix Fine Track PC Curve 23.82R 605mm 10 1190"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.136108 -0.361863 100.000000
- C 0 0 23.818898 0.000000 -23.818898 0.000000 10.000000
- A 11579568 0.053333 23.454725 0.000000 -23.818898 0.000000 10.000000
- A 11579568 0.053333 24.183071 0.000000 -23.818898 0.000000 10.000000
- END
-
-SUBCONTENTS Tomix N-Scale Fine Track - Widetrack PC Curved Track
-TURNOUT N "Tomix Fine Track Widetrack PC Curve 11.02R 280mm 22.5 1751/1781"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.218558 -0.839123 112.500000
- C 0 0 11.023622 0.000000 -11.023622 0.000000 22.500000
- A 11579568 0.053333 10.295276 0.000000 -11.023622 0.000000 22.500000
- A 11579568 0.053333 11.751968 0.000000 -11.023622 0.000000 22.500000
- END
-TURNOUT N "Tomix Fine Track Widetrack PC Curve 11.02R 280mm 45 1741/1771"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.794878 -3.228744 135.000000
- C 0 0 11.023622 0.000000 -11.023622 0.000000 45.000000
- A 11579568 0.053333 10.295276 0.000000 -11.023622 0.000000 45.000000
- A 11579568 0.053333 11.751968 0.000000 -11.023622 0.000000 45.000000
- END
-TURNOUT N "Tomix Fine Track Widetrack PC Curve 12.48R 317mm 22.5 1752/1782"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.776010 -0.950007 112.500000
- C 0 0 12.480315 0.000000 -12.480315 0.000000 22.500000
- A 11579568 0.053333 11.751968 0.000000 -12.480315 0.000000 22.500000
- A 11579568 0.053333 13.208661 0.000000 -12.480315 0.000000 22.500000
- END
-TURNOUT N "Tomix Fine Track Widetrack PC Curve 12.48R 317mm 45 1742/1772"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.824915 -3.655400 135.000000
- C 0 0 12.480315 0.000000 -12.480315 0.000000 45.000000
- A 11579568 0.053333 11.751968 0.000000 -12.480315 0.000000 45.000000
- A 11579568 0.053333 13.208661 0.000000 -12.480315 0.000000 45.000000
- END
-TURNOUT N "Tomix Fine Track Widetrack PC Curve 13.93R 354mm 22.5 1753/1783"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.333462 -1.060892 112.500000
- C 0 0 13.937008 0.000000 -13.937008 0.000000 22.500000
- A 11579568 0.053333 13.208661 0.000000 -13.937008 0.000000 22.500000
- A 11579568 0.053333 14.665354 0.000000 -13.937008 0.000000 22.500000
- END
-TURNOUT N "Tomix Fine Track Widetrack PC Curve 13.93R 354mm 45 1743/1773"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.854953 -4.082055 135.000000
- C 0 0 13.937008 0.000000 -13.937008 0.000000 45.000000
- A 11579568 0.053333 13.208661 0.000000 -13.937008 0.000000 45.000000
- A 11579568 0.053333 14.665354 0.000000 -13.937008 0.000000 45.000000
- END
-TURNOUT N "Tomix Fine Track Widetrack PC Curve 15.39R 391mm 22.5 1754/1784"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.890914 -1.171776 112.500000
- C 0 0 15.393701 0.000000 -15.393701 0.000000 22.500000
- A 11579568 0.053333 14.665354 0.000000 -15.393701 0.000000 22.500000
- A 11579568 0.053333 16.122047 0.000000 -15.393701 0.000000 22.500000
- END
-TURNOUT N "Tomix Fine Track Widetrack PC Curve 15.39R 391mm 45 1744/1774"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 10.884990 -4.508711 135.000000
- C 0 0 15.393701 0.000000 -15.393701 0.000000 45.000000
- A 11579568 0.053333 14.665354 0.000000 -15.393701 0.000000 45.000000
- A 11579568 0.053333 16.122047 0.000000 -15.393701 0.000000 45.000000
- END
-TURNOUT N "Tomix Fine Track Widetrack PC Curve 21.29R 541mm 15 1740/1770"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.512642 -0.725753 105.000000
- C 0 0 21.299213 0.000000 -21.299213 0.000000 15.000000
- A 11579568 0.053333 20.570867 0.000000 -21.299213 0.000000 15.000000
- A 11579568 0.053333 22.027559 0.000000 -21.299213 0.000000 15.000000
- END
-TURNOUT N "Tomix Fine Track Widetrack PC Curve 23.82R 605mm 10 1750"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 4.136108 -0.361863 100.000000
- C 0 0 23.818898 0.000000 -23.818898 0.000000 10.000000
- A 11579568 0.053333 23.090552 0.000000 -23.818898 0.000000 10.000000
- A 11579568 0.053333 24.547244 0.000000 -23.818898 0.000000 10.000000
- END
-
-SUBCONTENTS Tomix N-Scale Fine Track - Viaduct Track
-TURNOUT N "Tomix Fine Track Viaduct Straight 3.89 99mm 1075"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.897638 0.000000 90.000000
- S 0 0 0.000000 0.000000 3.897638 0.000000
- L 11579568 0.053333 0.000000 0.701680 3.897638 0.701680
- L 11579568 0.053333 0.000000 -0.701680 3.897638 -0.701680
- END
-TURNOUT N "Tomix Fine Track Viaduct Straight 5.51 140mm 1071"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.511811 0.000000 90.000000
- S 0 0 0.000000 0.000000 5.511811 0.000000
- L 11579568 0.053333 0.000000 0.701680 5.511811 0.701680
- L 11579568 0.053333 0.000000 -0.701680 5.511811 -0.701680
- END
-TURNOUT N "Tomix Fine Track Viaduct Straight 6.24 158.5mm 1076"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.240157 0.000000 90.000000
- S 0 0 0.000000 0.000000 6.240157 0.000000
- L 11579568 0.053333 0.000000 0.701680 6.240157 0.701680
- L 11579568 0.053333 0.000000 -0.701680 6.240157 -0.701680
- END
-TURNOUT N "Tomix Fine Track Viaduct Straight 11.02 280mm 1072"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 11.023622 0.000000 90.000000
- S 0 0 0.000000 0.000000 11.023622 0.000000
- L 11579568 0.053333 0.000000 0.701680 11.023622 0.701680
- L 11579568 0.053333 0.000000 -0.701680 11.023622 -0.701680
- END
-TURNOUT N "Tomix Fine Track Viaduct Curve 9.56R 243mm 45 1173"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.764840 -2.802089 135.000000
- C 0 0 9.566929 0.000000 -9.566929 0.000000 45.000000
- A 11579568 0.053333 8.865249 0.000000 -9.566929 0.000000 45.000000
- A 11579568 0.053333 10.268609 0.000000 -9.566929 0.000000 45.000000
- END
-TURNOUT N "Tomix Fine Track Viaduct Curve 11.02R 280mm 45 1171"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.794878 -3.228744 135.000000
- C 0 0 11.023622 0.000000 -11.023622 0.000000 45.000000
- A 11579568 0.053333 10.321942 0.000000 -11.023622 0.000000 45.000000
- A 11579568 0.053333 11.725302 0.000000 -11.023622 0.000000 45.000000
- END
-TURNOUT N "Tomix Fine Track Viaduct Curve 12.48R 317mm 45 1127"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.824915 -3.655400 135.000000
- C 0 0 12.480315 0.000000 -12.480315 0.000000 45.000000
- A 11579568 0.053333 11.778635 0.000000 -12.480315 0.000000 45.000000
- A 11579568 0.053333 13.181995 0.000000 -12.480315 0.000000 45.000000
- END
-TURNOUT N "Tomix Fine Track Viaduct Curve 13.93R 354mm 45 1174"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.854953 -4.082055 135.000000
- C 0 0 13.937008 0.000000 -13.937008 0.000000 45.000000
- A 11579568 0.053333 13.235328 0.000000 -13.937008 0.000000 45.000000
- A 11579568 0.053333 14.638688 0.000000 -13.937008 0.000000 45.000000
- END
-
-SUBCONTENTS Tomix N-Scale Fine Track - Overhead PC Track
-TURNOUT N "Tomix Fine Track Overhead PC Straight 3.89 99mm 1825"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 3.897638 0.000000 90.000000
- S 0 0 0.000000 0.000000 3.897638 0.000000
- L 11579568 0.053333 0.000000 0.701680 3.897638 0.701680
- L 11579568 0.053333 0.000000 -0.701680 3.897638 -0.701680
- END
-TURNOUT N "Tomix Fine Track Overhead PC Straight 5.51 140mm 1821"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.511811 0.000000 90.000000
- S 0 0 0.000000 0.000000 5.511811 0.000000
- L 11579568 0.053333 0.000000 0.701680 5.511811 0.701680
- L 11579568 0.053333 0.000000 -0.701680 5.511811 -0.701680
- END
-TURNOUT N "Tomix Fine Track Overhead PC Straight 6.24 158.5mm 1826"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.240157 0.000000 90.000000
- S 0 0 0.000000 0.000000 6.240157 0.000000
- L 11579568 0.053333 0.000000 0.701680 6.240157 0.701680
- L 11579568 0.053333 0.000000 -0.701680 6.240157 -0.701680
- END
-TURNOUT N "Tomix Fine Track Overhead PC Straight 11.02 280mm 1822"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 11.023622 0.000000 90.000000
- S 0 0 0.000000 0.000000 11.023622 0.000000
- L 11579568 0.053333 0.000000 0.701680 11.023622 0.701680
- L 11579568 0.053333 0.000000 -0.701680 11.023622 -0.701680
- END
-TURNOUT N "Tomix Fine Track Overhead PC Curve 9.56R 243mm 45 1873"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 6.764840 -2.802089 135.000000
- C 0 0 9.566929 0.000000 -9.566929 0.000000 45.000000
- A 11579568 0.053333 8.865249 0.000000 -9.566929 0.000000 45.000000
- A 11579568 0.053333 10.268609 0.000000 -9.566929 0.000000 45.000000
- END
-TURNOUT N "Tomix Fine Track Overhead PC Curve 11.02R 280mm 45 1871"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 7.794878 -3.228744 135.000000
- C 0 0 11.023622 0.000000 -11.023622 0.000000 45.000000
- A 11579568 0.053333 10.321942 0.000000 -11.023622 0.000000 45.000000
- A 11579568 0.053333 11.725302 0.000000 -11.023622 0.000000 45.000000
- END
-TURNOUT N "Tomix Fine Track Overhead PC Curve 12.48R 317mm 45 1872"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 8.824915 -3.655400 135.000000
- C 0 0 12.480315 0.000000 -12.480315 0.000000 45.000000
- A 11579568 0.053333 11.778635 0.000000 -12.480315 0.000000 45.000000
- A 11579568 0.053333 13.181995 0.000000 -12.480315 0.000000 45.000000
- END
-TURNOUT N "Tomix Fine Track Overhead PC Curve 13.93R 354mm 45 1874"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 9.854953 -4.082055 135.000000
- C 0 0 13.937008 0.000000 -13.937008 0.000000 45.000000
- A 11579568 0.053333 13.235328 0.000000 -13.937008 0.000000 45.000000
- A 11579568 0.053333 14.638688 0.000000 -13.937008 0.000000 45.000000
- END
-
-SUBCONTENTS Tomix N-Scale Fine Track - Overhead Double Track
-TURNOUT N "Tomix Fine Track Overhead Dbl Trk Straight 5.51 140mm 1061"
- P "Normal" 1
- E 0.000000 0.728346 270.000000
- E 5.511811 0.728346 90.000000
- E 0.000000 -0.728346 270.000000
- E 5.511811 -0.728346 90.000000
- S 0 0 0.000000 0.728346 5.511811 0.728346
- S 0 0 0.000000 -0.728346 5.511811 -0.728346
- L 11579568 0.053333 0.000000 1.456692 5.511811 1.456692
- L 11579568 0.053333 0.000000 -1.456692 5.511811 -1.456692
- END
-TURNOUT N "Tomix Fine Track Overhead Dbl Trk Straight 11.02 280mm 1062"
- P "Normal" 1
- E 0.000000 0.728346 270.000000
- E 11.023622 0.728346 90.000000
- E 0.000000 -0.728346 270.000000
- E 11.023622 -0.728346 90.000000
- S 0 0 0.000000 0.728346 11.023622 0.728346
- S 0 0 0.000000 -0.728346 11.023622 -0.728346
- L 11579568 0.053333 0.000000 1.456692 11.023622 1.456692
- L 11579568 0.053333 0.000000 -1.456692 11.023622 -1.456692
- END
-TURNOUT N "Tomix Fine Track Overhead Dbl Trk Straight 44.09 1120mm 1069"
- P "Normal" 1
- E 0.000000 0.728346 270.000000
- E 44.094488 0.728346 90.000000
- E 0.000000 -0.728346 270.000000
- E 44.094488 -0.728346 90.000000
- S 0 0 0.000000 0.728346 44.094488 0.728346
- S 0 0 0.000000 -0.728346 44.094488 -0.728346
- L 11579568 0.053333 0.000000 1.456692 44.094488 1.456692
- L 11579568 0.053333 0.000000 -1.456692 44.094488 -1.456692
- END
-TURNOUT N "Tomix Fine Track Overhead Dbl Trk Curve 11.02/12.48R 280/317mm 45 1161"
- P "Normal" 1
- E 0.000000 0.728346 270.000000
- E 0.000000 -0.728346 270.000000
- E 8.824915 -2.927054 135.000000
- E 7.794878 -3.957090 135.000000
- C 0 0 12.480315 0.000000 -11.751968 0.000000 45.000000
- C 0 0 11.023622 0.000000 -11.751968 0.000000 45.000000
- A 11579568 0.053333 13.208661 0.000000 -11.751968 0.000000 45.000000
- A 11579568 0.053333 10.295276 0.000000 -11.751968 0.000000 45.000000
- END
-TURNOUT N "Tomix Fine Track Overhead Dbl Trk Curve 13.93/15.39R 354/391mm 45 1162"
- P "Normal" 1
- E 0.000000 0.728346 270.000000
- E 0.000000 -0.728346 270.000000
- E 10.884990 -3.780365 135.000000
- E 9.854953 -4.810401 135.000000
- C 0 0 15.393701 0.000000 -14.663354 0.000000 45.000000
- C 0 0 13.937008 0.000000 -14.663354 0.000000 45.000000
- A 11579568 0.053333 16.122047 0.000000 -14.663354 0.000000 45.000000
- A 11579568 0.053333 13.208662 0.000000 -14.663354 0.000000 45.000000
- END
-TURNOUT N "Tomix Fine Track Overhead Dbl Trk Curve 16.85/18.30R 428/465mm 45 1163"
- P "Normal" 1
- E 0.000000 0.728346 270.000000
- E 0.000000 -0.728346 270.000000
- E 12.945065 -4.633676 135.000000
- E 11.915028 -5.663712 135.000000
- C 0 0 18.307087 0.000000 -17.578740 0.000000 45.000000
- C 0 0 16.850394 0.000000 -17.578740 0.000000 45.000000
- A 11579568 0.053333 19.035433 0.000000 -17.578740 0.000000 45.000000
- A 11579568 0.053333 16.122048 0.000000 -17.578740 0.000000 45.000000
- END
-
-SUBCONTENTS Tomix N-Scale Fine Track - Viaduct Double Track Slab Type
-TURNOUT N "Tomix Fine Track Viaduct Dbl Trk Straight 5.51 140mm (slab type) 1066"
- P "Normal" 1
- E 0.000000 0.728346 270.000000
- E 5.511811 0.728346 90.000000
- E 0.000000 -0.728346 270.000000
- E 5.511811 -0.728346 90.000000
- S 0 0 0.000000 0.728346 5.511811 0.728346
- S 0 0 0.000000 -0.728346 5.511811 -0.728346
- L 11579568 0.053333 0.000000 1.456692 5.511811 1.456692
- L 11579568 0.053333 0.000000 -1.456692 5.511811 -1.456692
- END
-TURNOUT N "Tomix Fine Track Viaduct Dbl Trk Straight 11.02 280mm (slab type) 1067"
- P "Normal" 1
- E 0.000000 0.728346 270.000000
- E 11.023622 0.728346 90.000000
- E 0.000000 -0.728346 270.000000
- E 11.023622 -0.728346 90.000000
- S 0 0 0.000000 0.728346 11.023622 0.728346
- S 0 0 0.000000 -0.728346 11.023622 -0.728346
- L 11579568 0.053333 0.000000 1.456692 11.023622 1.456692
- L 11579568 0.053333 0.000000 -1.456692 11.023622 -1.456692
- END
-TURNOUT N "Tomix Fine Track Viaduct Dbl Trk Straight 44.09 1120mm (slab type) 1070"
- P "Normal" 1
- E 0.000000 0.728346 270.000000
- E 44.094488 0.728346 90.000000
- E 0.000000 -0.728346 270.000000
- E 44.094488 -0.728346 90.000000
- S 0 0 0.000000 0.728346 44.094488 0.728346
- S 0 0 0.000000 -0.728346 44.094488 -0.728346
- L 11579568 0.053333 0.000000 1.456692 44.094488 1.456692
- L 11579568 0.053333 0.000000 -1.456692 44.094488 -1.456692
- END
-TURNOUT N "Tomix Fine Track Viaduct Dbl Trk Curve 16.85/18.30R 428/465mm 45(slab type) 1168"
- P "Normal" 1
- E 0.000000 0.728346 270.000000
- E 0.000000 -0.728346 270.000000
- E 12.945065 -4.633676 135.000000
- E 11.915028 -5.663712 135.000000
- C 0 0 18.307087 0.000000 -17.578740 0.000000 45.000000
- C 0 0 16.850394 0.000000 -17.578740 0.000000 45.000000
- A 11579568 0.053333 19.035433 0.000000 -17.578740 0.000000 45.000000
- A 11579568 0.053333 16.122048 0.000000 -17.578740 0.000000 45.000000
- END
-TURNOUT N "Tomix Fine Track Viaduct Dbl Trk Curve 19.76/21.22R 502/539mm 22.5(slab type) 1169"
- P "Normal" 1
- E 0.000000 0.728346 270.000000
- E 0.000000 -0.728346 270.000000
- E 8.120723 -0.886966 112.500000
- E 7.563271 -2.232774 112.500000
- C 0 0 21.220472 0.000000 -20.492125 0.000000 22.500000
- C 0 0 19.763779 0.000000 -20.492125 0.000000 22.500000
- A 11579568 0.053333 21.948818 0.000000 -20.492125 0.000000 22.500000
- A 11579568 0.053333 19.035434 0.000000 -20.492125 0.000000 22.500000
- END
-
-
-SUBCONTENTS Tomix N-Scale Fine Track - Turnouts
-TURNOUT N "Tomix Fine Track Turnout 541mm-R15 (manual) 1209"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 5.511811 0.000000 90.000000
- E 5.512642 -0.725753 105.000000
- S 0 0 0.000000 0.000000 5.511811 0.000000
- C 0 0 21.299213 0.000000 -21.299213 0.000000 15.000000
- L 11579568 0.053333 0.000000 0.364173 5.511811 0.364173
- A 11579568 0.053333 20.935040 0.000000 -21.299213 0.000000 15.000000
- G 11579568 0.000000 0.187500 0.437500 -0.633274 0
- G 11579568 0.000000 0.187500 0.562500 -0.633274 0
- F 11579568 0.000000 4
- 0.437500 -0.364173 0
- 0.437500 -0.820774 0
- 0.562500 -0.820774 0
- 0.562500 -0.364173 0
- END
-TURNOUT N "Tomix Fine Track Turnout 541mm-L15 (manual) 1210"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 5.511811 0.000000 90.000000
- E 5.512642 0.725753 75.000000
- S 0 0 0.000000 0.000000 5.511811 0.000000
- C 0 0 21.299213 0.000000 21.299213 165.000000 15.000000
- L 11579568 0.053333 0.000000 -0.364173 5.511811 -0.364173
- A 11579568 0.053333 20.935040 0.000000 21.299213 165.000000 15.000000
- G 11579568 0.000000 0.187500 0.437500 0.633274 0
- G 11579568 0.000000 0.187500 0.562500 0.633274 0
- F 11579568 0.000000 4
- 0.437500 0.364173 0
- 0.437500 0.820774 0
- 0.562500 0.820774 0
- 0.562500 0.364173 0
- END
-TURNOUT N "Tomix Fine Track Turnout 541mm-R15 (elec) 1241"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 5.511811 0.000000 90.000000
- E 5.512642 -0.725753 105.000000
- S 0 0 0.000000 0.000000 5.511811 0.000000
- C 0 0 21.299213 0.000000 -21.299213 0.000000 15.000000
- L 11579568 0.053333 0.000000 0.364173 5.511811 0.364173
- A 11579568 0.053333 20.935040 0.000000 -21.299213 0.000000 15.000000
- G 11579568 0.000000 0.187500 0.437500 -0.633274 0
- G 11579568 0.000000 0.187500 0.562500 -0.633274 0
- F 11579568 0.000000 4
- 0.437500 -0.364173 0
- 0.437500 -0.820774 0
- 0.562500 -0.820774 0
- 0.562500 -0.364173 0
- END
-TURNOUT N "Tomix Fine Track Turnout 541mm-L15 (elec) 1242"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 5.511811 0.000000 90.000000
- E 5.512642 0.725753 75.000000
- S 0 0 0.000000 0.000000 5.511811 0.000000
- C 0 0 21.299213 0.000000 21.299213 165.000000 15.000000
- L 11579568 0.053333 0.000000 -0.364173 5.511811 -0.364173
- A 11579568 0.053333 20.935040 0.000000 21.299213 165.000000 15.000000
- G 11579568 0.000000 0.187500 0.437500 0.633274 0
- G 11579568 0.000000 0.187500 0.562500 0.633274 0
- F 11579568 0.000000 4
- 0.437500 0.364173 0
- 0.437500 0.820774 0
- 0.562500 0.820774 0
- 0.562500 0.364173 0
- END
-TURNOUT N "Tomix Fine Track 3-Way Turnout 541mm-L15 (elec) 1261"
- P "Left" 1
- P "Normal" 2
- P "Right" 3
- E 5.511811 0.000000 90.000000
- E 0.000000 0.000000 270.000000
- E 0.000000 -0.725753 255.000000
- E 0.000000 0.725753 285.000000
- C 0 0 21.299213 5.511811 21.299213 180.000000 15.000000
- S 0 0 0.000000 0.000000 5.511811 0.000000
- C 0 0 21.299213 5.511811 -21.299213 345.000000 15.000000
- A 11579568 0.053333 20.935040 5.511811 21.299213 180.000000 15.000000
- A 11579568 0.053333 20.935040 5.511811 -21.299213 345.000000 15.000000
- G 11579568 0.000000 0.187500 5.074311 0.633274 0
- G 11579568 0.000000 0.187500 4.949311 0.633274 0
- F 11579568 0.000000 4
- 5.074311 0.364173 0
- 5.074311 0.820774 0
- 4.949311 0.820774 0
- 4.949311 0.364173 0
- G 11579568 0.000000 0.187500 4.074311 0.633274 0
- G 11579568 0.000000 0.187500 3.949311 0.633274 0
- F 11579568 0.000000 4
- 4.074311 0.364173 0
- 4.074311 0.820774 0
- 3.949311 0.820774 0
- 3.949311 0.364173 0
- END
-TURNOUT N "Tomix Fine Track 3-Way Turnout 541mm-R15 (elec) 1262"
- P "Left" 1
- P "Normal" 2
- P "Right" 3
- E 0.000000 0.000000 270.000000
- E 5.511811 0.000000 90.000000
- E 5.512642 -0.725753 105.000000
- E 5.512642 0.725753 75.000000
- C 0 0 21.299213 0.000000 21.299213 165.000000 15.000000
- S 0 0 0.000000 0.000000 5.511811 0.000000
- C 0 0 21.299213 0.000000 -21.299213 0.000000 15.000000
- A 11579568 0.053333 20.935040 0.000000 21.299213 165.000000 15.000000
- A 11579568 0.053333 20.935040 0.000000 -21.299213 0.000000 15.000000
- G 11579568 0.000000 0.187500 0.437500 0.633274 0
- G 11579568 0.000000 0.187500 0.562500 0.633274 0
- F 11579568 0.000000 4
- 0.437500 0.364173 0
- 0.437500 0.820774 0
- 0.562500 0.820774 0
- 0.562500 0.364173 0
- G 11579568 0.000000 0.187500 1.437500 0.633274 0
- G 11579568 0.000000 0.187500 1.562500 0.633274 0
- F 11579568 0.000000 4
- 1.437500 0.364173 0
- 1.437500 0.820774 0
- 1.562500 0.820774 0
- 1.562500 0.364173 0
- END
-TURNOUT N "Tomix Fine Track Wye Turnout 280mm-15 (elec) 1240"
- P "Left" 1
- P "Right" 2
- E 0.000000 0.000000 270.000000
- E 2.853123 0.375621 75.000000
- E 2.853123 -0.375621 105.000000
- C 0 0 11.023622 0.000000 11.023622 165.000000 15.000000
- C 0 0 11.023622 0.000000 -11.023622 0.000000 15.000000
- A 11579568 0.053333 10.659449 0.000000 11.023622 165.000000 15.000000
- A 11579568 0.053333 10.659449 0.000000 -11.023622 0.000000 15.000000
- G 11579568 0.000000 0.187500 0.937500 0.633274 0
- G 11579568 0.000000 0.187500 1.062500 0.633274 0
- F 11579568 0.000000 4
- 0.937500 0.364173 0
- 0.937500 0.820774 0
- 1.062500 0.820774 0
- 1.062500 0.364173 0
- END
-TURNOUT N "Tomix Fine Track Turnout 280mm-R30 (elec) 1243"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 5.511811 0.000000 90.000000
- E 5.511811 -1.476885 120.000000
- S 0 0 0.000000 0.000000 5.511811 0.000000
- C 0 0 11.023622 0.000000 -11.023622 0.000000 30.000000
- L 11579568 0.053333 0.000000 0.364173 5.511811 0.364173
- A 11579568 0.053333 10.659449 0.000000 -11.023622 0.000000 30.000000
- L 11579568 0.053333 4.511811 -0.364173 5.511811 -0.364173
- A 11579568 0.053333 11.469396 0.000000 -11.023622 23.000000 7.000000
- G 11579568 0.000000 0.187500 0.437500 -0.633274 0
- G 11579568 0.000000 0.187500 0.562500 -0.633274 0
- F 11579568 0.000000 4
- 0.437500 -0.364173 0
- 0.437500 -0.820774 0
- 0.562500 -0.820774 0
- 0.562500 -0.364173 0
- END
-TURNOUT N "Tomix Fine Track Turnout 280mm-L30 (elec) 1244"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 5.511811 0.000000 90.000000
- E 5.511811 1.476885 60.000000
- S 0 0 0.000000 0.000000 5.511811 0.000000
- C 0 0 11.023622 0.000000 11.023622 150.000000 30.000000
- L 11579568 0.053333 0.000000 -0.364173 5.511811 -0.364173
- A 11579568 0.053333 10.659449 0.000000 11.023622 150.000000 30.000000
- L 11579568 0.053333 4.511811 0.364173 5.511811 0.364173
- A 11579568 0.053333 11.469396 0.000000 11.023622 150.000000 7.000000
- G 11579568 0.000000 0.187500 0.437500 0.633274 0
- G 11579568 0.000000 0.187500 0.562500 0.633274 0
- F 11579568 0.000000 4
- 0.437500 0.364173 0
- 0.437500 0.820774 0
- 0.562500 0.820774 0
- 0.562500 0.364173 0
- END
-TURNOUT N "Tomix Fine Track Mini-Turnout 140mm-R30 1231"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 2.755906 0.000000 90.000000
- E 2.755906 -0.738443 120.000000
- S 0 0 0.000000 0.000000 2.755906 0.000000
- C 0 0 5.511811 0.000000 -5.511811 0.000000 30.000000
- L 11579568 0.053333 0.000000 0.364173 2.755906 0.364173
- A 11579568 0.053333 5.147638 0.000000 -5.511811 0.000000 30.000000
- G 11579568 0.000000 0.187500 0.437500 -0.633274 0
- G 11579568 0.000000 0.187500 0.562500 -0.633274 0
- F 11579568 0.000000 4
- 0.437500 -0.364173 0
- 0.437500 -0.820774 0
- 0.562500 -0.820774 0
- 0.562500 -0.364173 0
- END
-TURNOUT N "Tomix Fine Track Mini-Turnout 140mm-L30 1232"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 2.755906 0.000000 90.000000
- E 2.755906 0.738443 60.000000
- S 0 0 0.000000 0.000000 2.755906 0.000000
- C 0 0 5.511811 0.000000 5.511811 150.000000 30.000000
- L 11579568 0.053333 0.000000 -0.364173 2.755906 -0.364173
- A 11579568 0.053333 5.147638 0.000000 5.511811 150.000000 30.000000
- G 11579568 0.000000 0.187500 0.437500 0.633274 0
- G 11579568 0.000000 0.187500 0.562500 0.633274 0
- F 11579568 0.000000 4
- 0.437500 0.364173 0
- 0.437500 0.820774 0
- 0.562500 0.820774 0
- 0.562500 0.364173 0
- END
-TURNOUT N "Tomix Fine Track Turnout 317/280mm Curve-R45 (elec) 1248"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 8.824915 -3.655400 135.000000
- E 7.794878 -3.228744 135.000000
- C 0 0 12.480315 0.000000 -12.480315 0.000000 45.000000
- C 0 0 11.023622 0.000000 -11.023622 0.000000 45.000000
- A 11579568 0.053333 12.844488 0.000000 -12.480315 0.000000 45.000000
- A 11579568 0.053333 10.659449 0.000000 -11.023622 0.000000 45.000000
- G 11579568 0.000000 0.187500 0.437500 -0.633274 0
- G 11579568 0.000000 0.187500 0.562500 -0.633274 0
- F 11579568 0.000000 4
- 0.437500 -0.364173 0
- 0.437500 -0.820774 0
- 0.562500 -0.820774 0
- 0.562500 -0.364173 0
- END
-TURNOUT N "Tomix Fine Track Turnout 317/280mm Curve-L45 (elec) 1249"
- P "Normal" 1
- P "Reverse" 2
- E 0.000000 0.000000 270.000000
- E 8.824915 3.655400 45.000000
- E 7.794878 3.228744 45.000000
- C 0 0 12.480315 0.000000 12.480315 135.000000 45.000000
- C 0 0 11.023622 0.000000 11.023622 135.000000 45.000000
- A 11579568 0.053333 12.844488 0.000000 12.480315 135.000000 45.000000
- A 11579568 0.053333 10.659449 0.000000 11.023622 135.000000 45.000000
- G 11579568 0.000000 0.187500 0.437500 0.633274 0
- G 11579568 0.000000 0.187500 0.562500 0.633274 0
- F 11579568 0.000000 4
- 0.437500 0.364173 0
- 0.437500 0.820774 0
- 0.562500 0.820774 0
- 0.562500 0.364173 0
- END
-TURNOUT N "Tomix Fine Track Double Crossover 1247"
- P "Normal" 1 2 3 0 4 5 6
- P "Reverse" 1 7 8 9 6 0 4 10 11 12 3
- E 0.000000 0.000000 270.000000
- E 11.023622 0.000000 90.000000
- E 0.000000 1.456693 270.000000
- E 11.023622 1.456693 90.000000
- S 0 0.000000 0.000000 0.000000 0.605392 0.000000
- S 0 0.000000 0.605392 0.000000 10.418230 0.000000
- S 0 0.000000 10.418230 0.000000 11.023622 0.000000
- S 0 0.000000 0.000000 1.456693 0.605392 1.456693
- S 0 0.000000 0.605392 1.456693 10.418230 1.456693
- S 0 0.000000 10.418230 1.456693 11.023622 1.456693
- C 0 0.000000 -16.804501 0.605415 16.804501 164.231537 15.768539
- S 0 0.000000 5.172043 0.632397 5.851579 0.824296
- C 0 0.000000 16.804501 10.418251 -15.347802 344.231537 15.768539
- C 0 0.000000 16.804501 0.605325 -15.347808 0.000000 15.768539
- S 0 0.000000 5.172043 0.824296 5.851579 0.632397
- C 0 0.000000 -16.804501 10.418251 16.804495 180.000000 15.768539
- L 11579568 0.053333 0.000000 -0.364173 11.023622 -0.364173
- L 11579568 0.053333 0.000000 0.364173 1.5 0.364173
- L 11579568 0.053333 0.000000 1.092520 1.5 1.092520
- L 11579568 0.053333 1.5 0.364173 1.5 1.092520
- L 11579568 0.053333 11.023622 0.364173 9.523622 0.364173
- L 11579568 0.053333 11.023622 1.092520 9.523622 1.092520
- L 11579568 0.053333 9.523622 0.364173 9.523622 1.092520
- L 11579568 0.053333 0.000000 1.820866 11.023622 1.820866
- END
-TURNOUT N "Tomix Fine Track Double Slip 140mm-15R 1245"
- P "Normal" 1 2 3 0 4 5 6
- P "Reverse" 1 7 6 0 4 8 3
- E 5.511811 0.000000 90.000000
- E 0.000000 0.000000 270.000000
- E 0.000000 0.738443 285.000000
- E 5.511811 -0.738443 105.000000
- S 0 0.000000 0.000000 0.000000 0.706236 0.000000
- S 0 0.000000 0.706236 0.000000 4.805575 0.000000
- S 0 0.000000 4.805575 0.000000 5.511811 0.000000
- S 0 0.000000 0.000000 0.738443 0.776077 0.530493
- S 0 0.000000 0.776077 0.530493 4.735734 -0.530493
- S 0 0.000000 4.735734 -0.530493 5.511811 -0.738443
- C 0 0.000000 15.568784 0.706236 -15.568784 0.000000 15.000000
- C 0 0.000000 -15.568784 4.805575 15.568784 180.000000 15.000000
- L 11579568 0.053333 0.000000 -0.364173 0.706236 -0.364173
- L 11579568 0.053333 4.620359 -0.882258 5.411811 -1.102616
- A 11579568 0.053333 15.204611 0.706236 -15.568784 0.000000 15.000000
- L 11579568 0.053333 0.100000 1.102616 0.891452 0.882258
- L 11579568 0.053333 4.805575 0.364173 5.511811 0.364173
- A 11579568 0.053333 15.204611 4.805575 15.568784 180.000000 15.000000
- G 11579568 0.000000 0.187500 1.437500 -0.633274 0
- G 11579568 0.000000 0.187500 1.562500 -0.633274 0
- F 11579568 0.000000 4
- 1.437500 -0.364173 0
- 1.437500 -0.820774 0
- 1.562500 -0.820774 0
- 1.562500 -0.364173 0
- G 11579568 0.000000 0.187500 3.937500 -1.033274 0
- G 11579568 0.000000 0.187500 4.062500 -1.033274 0
- F 11579568 0.000000 4
- 3.937500 -0.764173 0
- 3.937500 -1.220774 0
- 4.062500 -1.220774 0
- 4.062500 -0.764173 0
- END
-TURNOUT N "Tomix Fine Track Double Slip 140mm-15L 1246"
- P "Normal" 1 2 3 0 4 5 6
- P "Reverse" 1 8 6 0 4 7 3
- E 0.000000 0.000000 270.000000
- E 5.511811 0.000000 90.000000
- E 0.000000 -0.738443 255.000000
- E 5.511811 0.738443 75.000000
- S 0 0.000000 0.000000 0.000000 0.706236 0.000000
- S 0 0.000000 0.706236 0.000000 4.805575 0.000000
- S 0 0.000000 4.805575 0.000000 5.511811 0.000000
- S 0 0.000000 0.000000 -0.738443 0.776077 -0.530493
- S 0 0.000000 0.776077 -0.530493 4.735734 0.530493
- S 0 0.000000 4.735734 0.530493 5.511811 0.738443
- C 0 0.000000 15.568784 4.805575 -15.568784 345.000000 15.000000
- C 0 0.000000 -15.568784 0.706236 15.568784 165.000000 15.000000
- L 11579568 0.053333 0.000000 0.364173 0.706236 0.364173
- L 11579568 0.053333 4.620359 0.882258 5.411811 1.102616
- A 11579568 0.053333 15.204611 0.706236 15.568784 165.000000 15.000000
- L 11579568 0.053333 0.100000 -1.102616 0.891452 -0.882258
- L 11579568 0.053333 4.805575 -0.364173 5.511811 -0.364173
- A 11579568 0.053333 15.204611 4.805575 -15.568784 345.000000 15.000000
- G 11579568 0.000000 0.187500 3.937500 -0.633274 0
- G 11579568 0.000000 0.187500 4.062500 -0.633274 0
- F 11579568 0.000000 4
- 3.937500 -0.364173 0
- 3.937500 -0.820774 0
- 4.062500 -0.820774 0
- 4.062500 -0.364173 0
- G 11579568 0.000000 0.187500 1.437500 -1.033274 0
- G 11579568 0.000000 0.187500 1.562500 -1.033274 0
- F 11579568 0.000000 4
- 1.437500 -0.7641730
- 1.437500 -1.220774 0
- 1.562500 -1.220774 0
- 1.562500 -0.764173 0
- END
-
-SUBCONTENTS Tomix N-Scale Fine Track - Crossings
-TURNOUT N "Tomix Fine Track Crossing 15 140mm(R) 1322"
- P "Normal" 1 0 2
- E 5.511811 0.000000 90.000000
- E 0.000000 0.000000 270.000000
- E 0.000000 0.738443 285.000000
- E 5.511811 -0.738443 105.000000
- S 0 0.000000 0.000000 0.000000 5.511811 0.000000
- S 0 0.000000 0.000000 0.738443 5.511811 -0.738443
- L 11579568 0.053333 0.100000 1.102616 2.755906 0.364173
- L 11579568 0.053333 2.755906 0.364173 5.511811 0.364173
- L 11579568 0.053333 0.000000 -0.364173 2.755906 -0.364173
- L 11579568 0.053333 2.755906 -0.364173 5.411811 -1.102616
- END
-TURNOUT N "Tomix Fine Track Crossing 15 140mm(L) 1333"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 5.511811 0.000000 90.000000
- E 0.000000 -0.738443 255.000000
- E 5.511811 0.738443 75.000000
- S 0 0.000000 0.000000 0.000000 5.511811 0.000000
- S 0 0.000000 0.000000 -0.738443 5.511811 0.738443
- L 11579568 0.053333 0.100000 -1.102616 2.755906 -0.364173
- L 11579568 0.053333 2.755906 -0.364173 5.511811 -0.364173
- L 11579568 0.053333 0.000000 0.364173 2.755906 0.364173
- L 11579568 0.053333 2.755906 0.364173 5.411811 1.102616
- END
-TURNOUT N "Tomix Fine Track Crossing 30 72.5mm 1321"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 2.854331 0.000000 90.000000
- E 0.191204 -0.713583 240.000000
- E 2.663127 0.713583 60.000000
- S 0 0.000000 0.000000 0.000000 2.854331 0.000000
- S 0 0.000000 0.191204 -0.713583 2.663127 0.713583
- L 11579568 0.053333 0.000000 0.364173 1.327166 0.364173
- L 11579568 0.053333 1.327166 0.364173 2.454331 1.027756
- L 11579568 0.053333 0.400000 -1.027756 1.527166 -0.364173
- L 11579568 0.053333 1.527166 -0.364173 2.854331 -0.364173
- END
-TURNOUT N "Tomix Fine Track Crossing 90 1324"
- P "Normal" 1 0 2
- E 0.000000 0.000000 270.000000
- E 1.456693 0.000000 90.000000
- E 0.728346 0.728346 0.000000
- E 0.728346 -0.728346 180.000000
- S 0 0 0.000000 0.000000 1.456693 0.000000
- S 0 0 0.728346 0.728346 0.728346 -0.728346
- L 11579568 0.053333 0.000000 0.364173 0.364173 0.364173
- L 11579568 0.053333 0.000000 -0.364173 0.364173 -0.364173
- L 11579568 0.053333 1.092519 0.364173 1.456693 0.364173
- L 11579568 0.053333 1.092519 -0.364173 1.456693 -0.364173
- L 11579568 0.053333 0.364173 -0.728346 0.364173 -0.364173
- L 11579568 0.053333 1.092519 -0.728346 1.092519 -0.364173
- L 11579568 0.053333 0.364173 0.364173 0.364173 0.728346
- L 11579568 0.053333 1.092519 0.364173 1.092519 0.728346
- END
-
-SUBCONTENTS Tomix N-Scale Fine Track - Brigdes
-TURNOUT N "Tomix Fine Track Truss Bridge 11.02 280mm 3030/31/32"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 11.023622 0.000000 90.000000
- S 0 0 0.000000 0.000000 11.023622 0.000000
- L 0 0.053333 0.000000 0.701680 11.023622 0.701680
- L 0 0.053333 0.000000 -0.701680 11.023622 -0.701680
- L 0 0.053333 0.918635 -0.701680 0.918635 0.701680
- L 0 0.053333 0.918635 0.000000 1.837270 0.701680
- L 0 0.053333 0.918635 0.000000 1.837270 -0.701680
- L 0 0.053333 1.837270 0.701680 2.755905 0.000000
- L 0 0.053333 1.837270 -0.701680 2.755905 0.000000
- L 0 0.053333 2.755905 -0.701680 2.755905 0.701680
- L 0 0.053333 2.755905 0.000000 3.674540 0.701680
- L 0 0.053333 2.755905 0.000000 3.674540 -0.701680
- L 0 0.053333 3.674540 0.701680 4.593175 0.000000
- L 0 0.053333 3.674540 -0.701680 4.593175 0.000000
- L 0 0.053333 4.593175 -0.701680 4.593175 0.701680
- L 0 0.053333 4.593175 0.000000 5.511811 0.701680
- L 0 0.053333 4.593175 0.000000 5.511811 -0.701680
- L 0 0.053333 5.511811 0.701680 6.430445 0.000000
- L 0 0.053333 5.511811 -0.701680 6.430445 0.000000
- L 0 0.053333 6.430445 -0.701680 6.430445 0.701680
- L 0 0.053333 6.430445 0.000000 7.349080 0.701680
- L 0 0.053333 6.430445 0.000000 7.349080 -0.701680
- L 0 0.053333 7.349080 0.701680 8.267715 0.000000
- L 0 0.053333 7.349080 -0.701680 8.267715 0.000000
- L 0 0.053333 8.267715 -0.701680 8.267715 0.701680
- L 0 0.053333 8.267715 0.000000 9.186350 0.701680
- L 0 0.053333 8.267715 0.000000 9.186350 -0.701680
- L 0 0.053333 9.186350 0.701680 10.104985 0.000000
- L 0 0.053333 9.186350 -0.701680 10.104985 0.000000
- L 0 0.053333 10.104985 -0.701680 10.104985 0.701680
- END
-TURNOUT N "Tomix Fine Track Dbl Trk Truss Bridge 11.02 280mm 3051/52/53"
- P "Normal" 1
- E 0.000000 0.728346 270.000000
- E 11.023622 0.728346 90.000000
- E 0.000000 -0.728346 270.000000
- E 11.023622 -0.728346 90.000000
- S 0 0 0.000000 0.728346 11.023622 0.728346
- S 0 0 0.000000 -0.728346 11.023622 -0.728346
- L 0 0.053333 0.000000 1.430026 11.023622 1.430026
- L 0 0.053333 0.000000 -1.430026 11.023622 -1.430026
- L 0 0.053333 0.918635 -1.430026 0.918635 1.430026
- L 0 0.053333 0.918635 1.430026 2.755905 -1.430026
- L 0 0.053333 0.918635 -1.430026 2.755905 1.430026
- L 0 0.053333 2.755905 -1.430026 2.755905 1.430026
- L 0 0.053333 2.755905 1.430026 4.593175 -1.430026
- L 0 0.053333 2.755905 -1.430026 4.593175 1.430026
- L 0 0.053333 4.593175 -1.430026 4.593175 1.430026
- L 0 0.053333 4.593175 1.430026 6.430445 -1.430026
- L 0 0.053333 4.593175 -1.430026 6.430445 1.430026
- L 0 0.053333 6.430445 -1.430026 6.430445 1.430026
- L 0 0.053333 6.430445 1.430026 8.267715 -1.430026
- L 0 0.053333 6.430445 -1.430026 8.267715 1.430026
- L 0 0.053333 8.267715 -1.430026 8.267715 1.430026
- L 0 0.053333 8.267715 1.430026 10.104985 -1.430026
- L 0 0.053333 8.267715 -1.430026 10.104985 1.430026
- L 0 0.053333 10.104985 -1.430026 10.104985 1.430026
- END
-TURNOUT N "Tomix Fine Track Plate Grider Bridge 5.51 140mm 3029"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.511811 0.000000 90.000000
- S 0 0 0.000000 0.000000 5.511811 0.000000
- L 0 0.053333 0.000000 0.701680 5.511811 0.701680
- L 0 0.053333 0.000000 0.364173 0.000000 0.701680
- L 0 0.053333 1.102362 0.364173 1.102362 0.701680
- L 0 0.053333 2.204724 0.364173 2.204724 0.701680
- L 0 0.053333 3.307086 0.364173 3.307086 0.701680
- L 0 0.053333 4.409448 0.364173 4.409448 0.701680
- L 0 0.053333 5.511811 0.364173 5.511811 0.701680
- L 0 0.053333 0.000000 -0.701680 5.511811 -0.701680
- L 0 0.053333 0.000000 -0.364173 0.000000 -0.701680
- L 0 0.053333 1.102362 -0.364173 1.102362 -0.701680
- L 0 0.053333 2.204724 -0.364173 2.204724 -0.701680
- L 0 0.053333 3.307086 -0.364173 3.307086 -0.701680
- L 0 0.053333 4.409448 -0.364173 4.409448 -0.701680
- L 0 0.053333 5.511811 -0.364173 5.511811 -0.701680
- END
-TURNOUT N "Tomix Fine Track Deck Grider Bridge 5.51 140mm 3028"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.511811 0.000000 90.000000
- S 0 0 0.000000 0.000000 5.511811 0.000000
- F 11579568 0.000000 4
- 0.000000 0.364173 0
- 0.300000 0.364173 0
- 0.300000 0.701680 0
- 0.000000 0.701680 0
- F 11579568 0.000000 4
- 5.211811 0.364173 0
- 5.511811 0.364173 0
- 5.511811 0.701680 0
- 5.211811 0.701680 0
- END
-
-SUBCONTENTS Tomix N-Scale Fine Track - Turn Table
-TURNOUT N "Tomix Fine Track Turn Table 8.34 212mm 1631"
-# TT was designed with 212mm bridge, outside dia. is approx., 15 degree spacing
- P "1" 1 2 3
- P "2" 4 5 6
- P "3" 7 8 9
- P "4" 10 11 12
- P "5" 13 14 15
- P "6" 16 17 18
- P "7" 19 20 21
- P "8" 22 23 24
- P "9" 25 26 27
- P "10" 28 29 30
- P "11" 31 32 33
- P "12" 34 35 36
- E 0.000000 4.173228 0.000000
- E 1.080111 4.031029 15.000000
- E 2.086614 3.614121 30.000000
- E 2.950918 2.950918 45.000000
- E 3.614121 2.086614 60.000000
- E 4.031029 1.080111 75.000000
- E 4.173228 0.000000 90.000000
- E 4.031029 -1.080111 105.000000
- E 3.614121 -2.086614 120.000000
- E 2.950918 -2.950918 135.000000
- E 2.086614 -3.614121 150.000000
- E 1.080111 -4.031029 165.000000
- E 0.000000 -4.173228 180.000000
- E -1.080111 -4.031029 195.000000
- E -2.086614 -3.614121 210.000000
- E -2.950918 -2.950918 225.000000
- E -3.614121 -2.086614 240.000000
- E -4.031029 -1.080111 255.000000
- E -4.173228 0.000000 270.000000
- E -4.031029 1.080111 285.000000
- E -3.614121 2.086614 300.000000
- E -2.950918 2.950918 315.000000
- E -2.086614 3.614121 330.000000
- E -1.080111 4.031029 345.000000
-#0/360
- S 0 0 0.000000 4.173228 0.000000 3.676228
- S 16777215 0 0.000000 3.676228 0.000000 -3.676228
- S 0 0 0.000000 -3.676228 0.000000 -4.173228
-#15/195
- S 0 0 1.080111 4.031029 0.950701 3.548066
- S 16777215 0 0.950701 3.548066 -0.950701 -3.548066
- S 0 0 -0.950701 -3.548066 -1.080111 -4.031029
-#30/210
- S 0 0 2.086614 3.614121 1.836614 3.181109
- S 16777215 0 1.836614 3.181109 -1.836614 -3.181109
- S 0 0 -1.836614 -3.181109 -2.086614 -3.614121
-#45/225
- S 0 0 2.950918 2.950918 2.597364 2.597364
- S 16777215 0 2.597364 2.597364 -2.597364 -2.597364
- S 0 0 -2.597364 -2.597364 -2.950918 -2.950918
-#60/240
- S 0 0 3.614121 2.086614 3.181109 1.836614
- S 16777215 0 3.181109 1.836614 -3.181109 -1.836614
- S 0 0 -3.181109 -1.836614 -3.614121 -2.086614
-#75/255
- S 0 0 4.031029 1.080111 3.548066 0.950701
- S 16777215 0 3.548066 0.950701 -3.548066 -0.950701
- S 0 0 -3.548066 -0.950701 -4.031029 -1.080111
-#90/270
- S 0 0 4.173228 0.000000 3.676228 0.000000
- S 16777215 0 3.676228 0.000000 -3.676228 0.000000
- S 0 0 -3.676228 0.000000 -4.173228 0.000000
-#105/285
- S 0 0 4.031029 -1.080111 3.548066 -0.950701
- S 16777215 0 3.548066 -0.950701 -3.548066 0.950701
- S 0 0 -3.548066 0.950701 -4.031029 1.080111
-#120/300
- S 0 0 3.614121 -2.086614 3.181109 -1.836614
- S 16777215 0 3.181109 -1.836614 -3.181109 1.836614
- S 0 0 -3.181109 1.836614 -3.614121 2.086614
-#135/315
- S 0 0 2.950918 -2.950918 2.597364 -2.597364
- S 16777215 0 2.597364 -2.597364 -2.597364 2.597364
- S 0 0 -2.597364 2.597364 -2.950918 2.950918
-#150/330
- S 0 0 2.086614 -3.614121 1.836614 -3.181109
- S 16777215 0 1.836614 -3.181109 -1.836614 3.181109
- S 0 0 -1.836614 3.181109 -2.086614 3.614121
-#165/345
- S 0 0 1.080111 -4.031029 0.950701 -3.548066
- S 16777215 0 0.950701 -3.548066 -0.950701 3.548066
- S 0 0 -0.950701 3.548066 -1.080111 4.031029
-
- A 11579568 0.053333 4.173228 0.000000 0.000000 0.000000 360.000000
- A 11579568 0.053333 3.673228 0.000000 0.000000 0.000000 360.000000
- END
-
-SUBCONTENTS Tomix N-Scale Fine Track - Signal Track
-TURNOUT N "Tomix Fine Track 70mm 5 color 5560"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.755906 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.755906 0.000000
- L 11579568 0.053333 0.000000 0.364173 2.755906 0.364173
- L 11579568 0.053333 0.000000 -0.364173 2.755906 -0.364173
- F 11579568 0.000000 4
- 1.002953 0.364173 0
- 1.752953 0.364173 0
- 1.752953 0.864173 0
- 1.002953 0.864173 0
- END
-TURNOUT N "Tomix Fine Track 70mm 4 color(Yel/Grn) 5561"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.755906 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.755906 0.000000
- L 11579568 0.053333 0.000000 0.364173 2.755906 0.364173
- L 11579568 0.053333 0.000000 -0.364173 2.755906 -0.364173
- F 11579568 0.000000 4
- 1.002953 0.364173 0
- 1.752953 0.364173 0
- 1.752953 0.864173 0
- 1.002953 0.864173 0
- END
-TURNOUT N "Tomix Fine Track 70mm 4 color(Yel/Yel) 5562"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.755906 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.755906 0.000000
- L 11579568 0.053333 0.000000 0.364173 2.755906 0.364173
- L 11579568 0.053333 0.000000 -0.364173 2.755906 -0.364173
- F 11579568 0.000000 4
- 1.002953 0.364173 0
- 1.752953 0.364173 0
- 1.752953 0.864173 0
- 1.002953 0.864173 0
- END
-TURNOUT N "Tomix Fine Track 70mm 3 color 5564"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.755906 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.755906 0.000000
- L 11579568 0.053333 0.000000 0.364173 2.755906 0.364173
- L 11579568 0.053333 0.000000 -0.364173 2.755906 -0.364173
- F 11579568 0.000000 4
- 1.002953 0.364173 0
- 1.752953 0.364173 0
- 1.752953 0.864173 0
- 1.002953 0.864173 0
- END
-TURNOUT N "Tomix Fine Track 70mm 2 color 5565"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.755906 0.000000 90.000000
- S 0 0 0.000000 0.000000 2.755906 0.000000
- L 11579568 0.053333 0.000000 0.364173 2.755906 0.364173
- L 11579568 0.053333 0.000000 -0.364173 2.755906 -0.364173
- F 11579568 0.000000 4
- 1.002953 0.364173 0
- 1.752953 0.364173 0
- 1.752953 0.864173 0
- 1.002953 0.864173 0
- END
-
-SUBCONTENTS Tomix N-Scale Fine Track - Misc Track
-TURNOUT N "Tomix Fine Track Re-Railer 140mm 1523"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.511811 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 5.511811 0.000000
- L 11579568 0.053333 0.000000 0.364173 5.511811 0.364173
- L 11579568 0.053333 0.000000 -0.364173 5.511811 -0.364173
- L 0 0.053333 1.837270 0.364173 3.674541 0.364173
- L 0 0.053333 3.674541 0.364173 3.674541 -0.364173
- L 0 0.053333 3.674541 -0.364173 1.837270 -0.364173
- L 0 0.053333 1.837270 -0.364173 1.837270 0.364173
- END
-TURNOUT N "Tomix Fine Track PC Re-Railer 140mm 1524"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.511811 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 5.511811 0.000000
- L 11579568 0.053333 0.000000 0.364173 5.511811 0.364173
- L 11579568 0.053333 0.000000 -0.364173 5.511811 -0.364173
- L 0 0.053333 1.837270 0.364173 3.674541 0.364173
- L 0 0.053333 3.674541 0.364173 3.674541 -0.364173
- L 0 0.053333 3.674541 -0.364173 1.837270 -0.364173
- L 0 0.053333 1.837270 -0.364173 1.837270 0.364173
- END
-TURNOUT N "Tomix Fine Track Mag Uncoupler 70mm 1521"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.755906 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 2.755906 0.000000
- L 11579568 0.053333 0.000000 0.3641730 2.755906 0.3641730
- L 11579568 0.053333 0.000000 -0.3641730 2.755906 -0.3641730
- L 0 0.053333 0.253333 0.133560 2.280000 0.133560
- L 0 0.053333 2.280000 0.133560 2.280000 -0.146440
- L 0 0.053333 2.280000 -0.146440 0.253333 -0.146440
- L 0 0.053333 0.253333 -0.146440 0.253333 0.133560
- END
-TURNOUT N "Tomix Fine Track W/Insul. Gap 70mm 1671"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.755906 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 2.755906 0.000000
- L 11579568 0.053333 0.000000 0.3641730 2.755906 0.3641730
- L 11579568 0.053333 0.000000 -0.3641730 2.755906 -0.3641730
- END
-TURNOUT N "Tomix Fine Track Adjustable 70-90mm 1522"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.755906 0.000000 90.000000
- X adjustable 2.755906 3.543307
- S 0 0 0.000000 0.000000 2.755906 0.000000
- L 11579568 0.053333 0.000000 0.364173 2.755906 0.364173
- L 11579568 0.053333 0.000000 -0.364173 2.755906 -0.364173
- END
-TURNOUT N "Tomix Fine Track PC Adjustable 70-90mm 1526"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 2.755906 0.000000 90.000000
- X adjustable 2.755906 3.543307
- S 0 0 0.000000 0.000000 2.755906 0.000000
- L 11579568 0.053333 0.000000 0.364173 2.755906 0.364173
- L 11579568 0.053333 0.000000 -0.364173 2.755906 -0.364173
- END
-TURNOUT N "Tomix Fine Track Wheel Cleaner Rail 140mm 6414"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.511811 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 5.511811 0.000000
- L 11579568 0.053333 0.000000 0.364173 5.511811 0.364173
- L 11579568 0.053333 0.000000 -0.364173 5.511811 -0.364173
- F 11579568 0.000000 4
- 1.456693 0.364173 0
- 4.055118 0.364173 0
- 4.055118 1.092519 0
- 1.456693 1.092519 0
- END
-TURNOUT N "Tomix Fine Track PC Wheel Cleaner Rail 140mm 6415"
- P "Normal" 1
- E 0.000000 0.000000 270.000000
- E 5.511811 0.000000 90.000000
- S 0 0.000000 0.000000 0.000000 5.511811 0.000000
- L 11579568 0.053333 0.000000 0.364173 5.511811 0.364173
- L 11579568 0.053333 0.000000 -0.364173 5.511811 -0.364173
- F 11579568 0.000000 4
- 1.456693 0.364173 0
- 4.055118 0.364173 0
- 4.055118 1.092519 0
- 1.456693 1.092519 0
- END
-
-SUBCONTENTS Tomix N-Scale Fine Track - Wide Tram
-TURNOUT N "Tomix Fine Track Wide Tram Straight 18.5mm S18.5-WT/1798"
-P "Normal" 1
-E 0.000000 0.000000 270.000000
-E 0.728346 0.000000 90.000000
-S 0 0.000000 0.000000 0.000000 0.728346 0.000000
-L 0 0.039370 0.000000 -0.728346 0.728345 -0.728346
-L 0 0.039370 0.000000 0.728346 0.728346 0.728346
-END
-TURNOUT N "Tomix Fine Track Wide Tram Straight 37mm S37-WT/1798"
-P "Normal" 1
-E 0.000000 0.000000 270.000000
-E 1.456693 0.000000 90.000000
-S 0 0.000000 0.000000 0.000000 1.456693 0.000000
-L 0 0.039370 0.000000 -0.728346 1.456693 -0.728346
-L 0 0.039370 0.000000 0.728346 1.456693 0.728346
-END
-TURNOUT N "Tomix Fine Track Wide Tram Straight(Sensor) 37mm S37-WT-SE/5568"
-P "Normal" 1
-E 0.000000 0.000000 270.000000
-E 1.456693 0.000000 90.000000
-S 0 0.000000 0.000000 0.000000 1.456693 0.000000
-L 0 0.039370 0.000000 -0.728346 1.456693 -0.728346
-L 0 0.039370 0.000000 0.728346 1.456693 0.728346
-END
-TURNOUT N "Tomix Fine Track Wide Tram Straight 47.5mm S47.5-WT/1798"
-P "Normal" 1
-E 0.000000 0.000000 270.000000
-E 1.870079 0.000000 90.000000
-S 0 0.000000 0.000000 0.000000 1.870079 0.000000
-L 0 0.039370 0.000000 -0.728346 1.870077 -0.728346
-L 0 0.039370 0.000000 0.728346 1.870079 0.728346
-END
-TURNOUT N "Tomix Fine Track Wide Tram Straight 70mm S70-WT/1792/1790"
-P "Normal" 1
-E 0.000000 0.000000 270.000000
-E 2.755906 0.000000 90.000000
-S 0 0.000000 0.000000 0.000000 2.755906 0.000000
-L 0 0.039370 0.000000 -0.728346 2.755904 -0.728346
-L 0 0.039370 0.000000 0.728346 2.755906 0.728346
-END
-TURNOUT N "Tomix Fine Track Wide Tram Straight 140mm S140-WT/1793/1791"
-P "Normal" 1
-E 0.000000 0.000000 270.000000
-E 5.511811 0.000000 90.000000
-S 0 0.000000 0.000000 0.000000 5.511811 0.000000
-L 0 0.039370 0.000000 -0.728346 5.511809 -0.728346
-L 0 0.039370 0.000000 0.728346 5.511811 0.728346
-END
-TURNOUT N "Tomix Fine Track Wide Tram 30d Curve 103mm C103-30-WT/1795"
-P "Normal" 1
-E 0.000000 0.000000 270.000000
-E 2.027558 0.543282 60.000000
-C 0 0.000000 4.055118 0.000000 4.055118 150.000000 30.000000
-A3 0 0.039370 4.783465 0.000000 4.055118 0 150.000000 30.000000
-A3 0 0.039370 3.326772 0.000000 4.055118 0 150.000000 30.000000
-END
-TURNOUT N "Tomix Fine Track Wide Tram 60d Curve 103mm C103-60-WT/1795"
-P "Normal" 1
-E 0.000000 0.000000 270.000000
-E 3.511834 2.027556 30.000000
-C 0 0.000000 4.055118 0.000000 4.055118 120.000000 60.000000
-A3 0 0.039370 4.783465 0.000000 4.055118 0 120.000000 60.000000
-A3 0 0.039370 3.326772 0.000000 4.055118 0 120.000000 60.000000
-END
-TURNOUT N "Tomix Fine Track Wide Tram 30d Curve 140mm C140-30-WT/1796"
-P "Normal" 1
-E 0.000000 0.000000 270.000000
-E 2.755903 0.738441 60.000000
-C 0 0.000000 5.511811 0.000000 5.511811 150.000000 30.000000
-A3 0 0.039370 6.240157 0.000000 5.511811 0 150.000000 30.000000
-A3 0 0.039370 4.783465 0.000000 5.511811 0 150.000000 30.000000
-END
-TURNOUT N "Tomix Fine Track Wide Tram 60d Curve 140mm C140-60-WT/1796"
-P "Normal" 1
-E 0.000000 0.000000 270.000000
-E 4.773366 2.755901 30.000000
-C 0 0.000000 5.511811 0.000000 5.511811 120.000000 60.000000
-A3 0 0.039370 6.240157 0.000000 5.511811 0 120.000000 60.000000
-A3 0 0.039370 4.783465 0.000000 5.511811 0 120.000000 60.000000
-END
-TURNOUT N "Tomix Fine Track Wide Tram 30d Curve 177mm C177-30-WT/1799"
-P "Normal" 1
-E 0.000000 0.000000 270.000000
-E 3.484249 0.933601 60.000000
-C 0 0.000000 6.968504 0.000000 6.968504 150.000000 30.000000
-A3 0 0.039370 7.696850 0.000000 6.968504 0 150.000000 30.000000
-A3 0 0.039370 6.240157 0.000000 6.968504 0 150.000000 30.000000
-END
-TURNOUT N "Tomix Fine Track Wide Tram 60d Curve 177mm C177-60-WT/1799"
-P "Normal" 1
-E 0.000000 0.000000 270.000000
-E 6.034898 3.484247 30.000000
-C 0 0.000000 6.968504 0.000000 6.968504 120.000000 60.000000
-A3 0 0.039370 7.696850 0.000000 6.968504 0 120.000000 60.000000
-A3 0 0.039370 6.240157 0.000000 6.968504 0 120.000000 60.000000
-END
-TURNOUT N "Tomix Fine Track Wide Tram 90d Crossing 37mm X37-90-WT/1799"
-P "Normal" 1 0 2
-E 0.000000 0.000000 270.000000
-E 1.456693 0.000000 90.000000
-E 0.728346 0.728346 360.000000
-E 0.728346 -0.728346 180.000000
-S 0 0.000000 0.000000 0.000000 1.456693 0.000000
-S 0 0.000000 0.728346 0.728346 0.728346 -0.728346
+CONTENTS Tomix N-Scale Fine Track
+SUBCONTENTS Tomix N-Scale Fine Track - Straight Track
+TURNOUT N "Tomix Fine Track Straight 5.51 140mm 1021"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.511811 0.000000 90.000000
+ S 0 0 0.000000 0.000000 5.511811 0.000000
+ L 11579568 0.053333 0.000000 0.364173 5.511811 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 5.511811 -0.364173
+ END
+TURNOUT N "Tomix Fine Track Straight 5.51 140mm (slab type) 1046/1047"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.511811 0.000000 90.000000
+ S 0 0 0.000000 0.000000 5.511811 0.000000
+ L 11579568 0.053333 0.000000 0.364173 5.511811 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 5.511811 -0.364173
+ END
+TURNOUT N "Tomix Fine Track Straight 11.02 280mm 1022"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 11.023622 0.000000 90.000000
+ S 0 0 0.000000 0.000000 11.023622 0.000000
+ L 11579568 0.053333 0.000000 0.364173 11.023622 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 11.023622 -0.364173
+ END
+TURNOUT N "Tomix Fine Track Straight 2.85 72.5mm 1023"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.854331 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.854331 0.000000
+ L 11579568 0.053333 0.000000 0.364173 2.854331 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 2.854331 -0.364173
+ END
+TURNOUT N "Tomix Fine Track Straight 2.75 70mm 1024"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.755906 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.755906 0.000000
+ L 11579568 0.053333 0.000000 0.364173 2.755906 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 2.755906 -0.364173
+ END
+TURNOUT N "Tomix Fine Track Straight 3.89 99mm 1025"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.897638 0.000000 90.000000
+ S 0 0 0.000000 0.000000 3.897638 0.000000
+ L 11579568 0.053333 0.000000 0.364173 3.897638 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 3.897638 -0.364173
+ END
+TURNOUT N "Tomix Fine Track Straight 6.24 158.5mm 1026"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.240157 0.000000 90.000000
+ S 0 0 0.000000 0.000000 6.240157 0.000000
+ L 11579568 0.053333 0.000000 0.364173 6.240157 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 6.240157 -0.364173
+ END
+TURNOUT N "Tomix Fine Track Straight 0.72 18.5mm 1099A"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 0.725346 0.000000 90.000000
+ S 0 0 0.000000 0.000000 0.725346 0.000000
+ L 11579568 0.053333 0.000000 0.364173 0.725346 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 0.725346 -0.364173
+ END
+TURNOUT N "Tomix Fine Track Straight 1.29 33mm 1099B"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.299213 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.299213 0.000000
+ L 11579568 0.053333 0.000000 0.364173 1.299213 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 1.299213 -0.364173
+ END
+
+SUBCONTENTS Tomix N-Scale Fine Track - Straight PC Track
+TURNOUT N "Tomix Fine Track PC Straight 2.75 70mm 1014"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.755906 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.755906 0.000000
+ L 11579568 0.053333 0.000000 0.364173 2.755906 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 2.755906 -0.364173
+ END
+TURNOUT N "Tomix Fine Track PC Straight 2.85 72.5mm 1013"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.854331 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.854331 0.000000
+ L 11579568 0.053333 0.000000 0.364173 2.854331 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 2.854331 -0.364173
+ END
+TURNOUT N "Tomix Fine Track PC Straight 3.89 99mm 1015"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.897638 0.000000 90.000000
+ S 0 0 0.000000 0.000000 3.897638 0.000000
+ L 11579568 0.053333 0.000000 0.364173 3.897638 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 3.897638 -0.364173
+ END
+TURNOUT N "Tomix Fine Track PC Straight 5.51 140mm 1011"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.511811 0.000000 90.000000
+ S 0 0 0.000000 0.000000 5.511811 0.000000
+ L 11579568 0.053333 0.000000 0.364173 5.511811 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 5.511811 -0.364173
+ END
+TURNOUT N "Tomix Fine Track PC Straight 6.24 158.5mm 1016"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.240157 0.000000 90.000000
+ S 0 0 0.000000 0.000000 6.240157 0.000000
+ L 11579568 0.053333 0.000000 0.364173 6.240157 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 6.240157 -0.364173
+ END
+TURNOUT N "Tomix Fine Track PC Straight 11.02 280mm 1012/1093"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 11.023622 0.000000 90.000000
+ S 0 0 0.000000 0.000000 11.023622 0.000000
+ L 11579568 0.053333 0.000000 0.364173 11.023622 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 11.023622 -0.364173
+ END
+
+SUBCONTENTS Tomix N-Scale Fine Track - Widetrack PC Straight Track
+TURNOUT N "Tomix Fine Track Widetrack PC Straight 5.51 140mm 1731/1761"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.511811 0.000000 90.000000
+ S 0 0 0.000000 0.000000 5.511811 0.000000
+ L 11579568 0.053333 0.000000 0.728346 5.511811 0.728346
+ L 11579568 0.053333 0.000000 -0.728346 5.511811 -0.728346
+ END
+TURNOUT N "Tomix Fine Track Widetrack PC Straight(branch) 5.51 140mm 1739/1769"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.511811 0.000000 90.000000
+ S 0 0 0.000000 0.000000 5.511811 0.000000
+ L 11579568 0.053333 0.000000 0.728346 5.511811 0.728346
+ L 11579568 0.053333 0.000000 -0.728346 5.511811 -0.728346
+ END
+TURNOUT N "Tomix Fine Track Widetrack PC Straight 11.02 280mm 1730/1732/1762"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 11.023622 0.000000 90.000000
+ S 0 0 0.000000 0.000000 11.023622 0.000000
+ L 11579568 0.053333 0.000000 0.728346 11.023622 0.728346
+ L 11579568 0.053333 0.000000 -0.728346 11.023622 -0.728346
+ END
+TURNOUT N "Tomix Fine Track Widetrack PC Straight 2.85 72.5mm 1733/1763"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.854331 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.854331 0.000000
+ L 11579568 0.053333 0.000000 0.728346 2.854331 0.728346
+ L 11579568 0.053333 0.000000 -0.728346 2.854331 -0.728346
+ END
+TURNOUT N "Tomix Fine Track Widetrack PC Straight 2.75 70mm 1734/1764"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.755906 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.755906 0.000000
+ L 11579568 0.053333 0.000000 0.728346 2.755906 0.728346
+ L 11579568 0.053333 0.000000 -0.728346 2.755906 -0.728346
+ END
+TURNOUT N "Tomix Fine Track Widetrack PC Straight 3.89 99mm 1735"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.897638 0.000000 90.000000
+ S 0 0 0.000000 0.000000 3.897638 0.000000
+ L 11579568 0.053333 0.000000 0.728346 3.897638 0.728346
+ L 11579568 0.053333 0.000000 -0.728346 3.897638 -0.728346
+ END
+TURNOUT N "Tomix Fine Track Widetrack PC Straight 6.24 158.5mm 1736"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.240157 0.000000 90.000000
+ S 0 0 0.000000 0.000000 6.240157 0.000000
+ L 11579568 0.053333 0.000000 0.728346 6.240157 0.728346
+ L 11579568 0.053333 0.000000 -0.728346 6.240157 -0.728346
+ END
+TURNOUT N "Tomix Fine Track Widetrack PC Straight 0.72 18.5mm 1738A"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 0.725346 0.000000 90.000000
+ S 0 0 0.000000 0.000000 0.725346 0.000000
+ L 11579568 0.053333 0.000000 0.728346 0.725346 0.728346
+ L 11579568 0.053333 0.000000 -0.728346 0.725346 -0.728346
+ END
+TURNOUT N "Tomix Fine Track Widetrack PC Straight 1.29 33mm 1738B"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 1.299213 0.000000 90.000000
+ S 0 0 0.000000 0.000000 1.299213 0.000000
+ L 11579568 0.053333 0.000000 0.728346 1.299213 0.364173
+ L 11579568 0.053333 0.000000 -0.728346 1.299213 -0.728346
+ END
+
+SUBCONTENTS Tomix N-Scale Fine Track - Buffers
+TURNOUT N "Tomix Fine Track Buffer Trk 111mm 1421"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ S 0 0 0.000000 0.000000 4.370079 0.000000
+ L 11579568 0.053333 0.000000 0.364173 4.370079 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 4.370079 -0.364173
+ L 11579568 0.053333 4.370079 0.364173 4.370079 -0.364173
+ L 0 0.106666 3.000000 0.000000 3.100000 0.000000
+ L 0 0.053333 2.750000 0.190000 4.370079 0.190000
+ L 0 0.053333 2.750000 -0.190000 4.370079 -0.190000
+ L 0 0.053333 2.750000 0.190000 3.100000 0.000000
+ L 0 0.053333 2.750000 -0.190000 3.100000 0.000000
+ L 0 0.053333 3.100000 0.000000 4.370079 0.190000
+ L 0 0.053333 3.100000 0.000000 4.370079 -0.190000
+ END
+TURNOUT N "Tomix Fine Track Buffer Trk(LED) 80mm 1422"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ S 0 0 0.000000 0.000000 1.574803 0.000000
+ L 11579568 0.053333 0.000000 0.364173 3.149606 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 3.149606 -0.364173
+ L 11579568 0.053333 1.574803 0.364173 1.574803 -0.364173
+ L 11579568 0.053333 3.149606 0.364173 3.149606 -0.364173
+ F 11579568 0.000000 4
+ 2.456693 -0.190000 0
+ 3.055118 -0.190000 0
+ 3.055118 0.190000 0
+ 2.456693 0.190000 0
+ END
+TURNOUT N "Tomix Fine Track Buffer Trk(LED2) 49mm 1423"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ S 0 0 0.000000 0.000000 1.299213 0.000000
+ L 11579568 0.053333 0.000000 0.364173 1.929134 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 1.929134 -0.364173
+ L 11579568 0.053333 1.299213 0.364173 1.299213 -0.364173
+ L 11579568 0.053333 1.929134 0.364173 1.929134 -0.364173
+ L 11579568 0.053333 0.852441 0.000000 1.629134 0.000000
+ F 11579568 0.000000 4
+ 0.472441 -0.190000 0
+ 0.852441 -0.190000 0
+ 0.852441 0.190000 0
+ 0.472441 0.190000 0
+ F 11579568 0.000000 4
+ 1.529134 -0.100000 0
+ 1.729134 -0.100000 0
+ 1.729134 0.100000 0
+ 1.529134 0.100000 0
+ END
+TURNOUT N "Tomix Fine Track PC Buffer Trk(LED) 80mm 1427"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ S 0 0 0.000000 0.000000 1.574803 0.000000
+ L 11579568 0.053333 0.000000 0.364173 3.149606 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 3.149606 -0.364173
+ L 11579568 0.053333 1.574803 0.364173 1.574803 -0.364173
+ L 11579568 0.053333 3.149606 0.364173 3.149606 -0.364173
+ F 11579568 0.000000 4
+ 2.456693 -0.190000 0
+ 3.055118 -0.190000 0
+ 3.055118 0.190000 0
+ 2.456693 0.190000 0
+ END
+
+
+SUBCONTENTS Tomix N-Scale Fine Track - Curved Track
+TURNOUT N "Tomix Fine Track Mini Curve 4.05R 103mm 30° 1111A"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.027559 -0.543345 120.000000
+ C 0 0 4.055118 0.000000 -4.055118 0.000000 30.000000
+ A 11579568 0.053333 3.690945 0.000000 -4.055118 0.000000 30.000000
+ A 11579568 0.053333 4.419291 0.000000 -4.055118 0.000000 30.000000
+ END
+TURNOUT N "Tomix Fine Track Mini Curve 4.05R 103mm 60° 1111B"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.511835 -2.027559 150.000000
+ C 0 0 4.055118 0.000000 -4.055118 0.000000 60.000000
+ A 11579568 0.053333 3.690945 0.000000 -4.055118 0.000000 60.000000
+ A 11579568 0.053333 4.419291 0.000000 -4.055118 0.000000 60.000000
+ END
+TURNOUT N "Tomix Fine Track Mini Curve 5.51R 140mm 30° 1112A"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.755906 -0.738443 120.000000
+ C 0 0 5.511811 0.000000 -5.511811 0.000000 30.000000
+ A 11579568 0.053333 5.147638 0.000000 -5.511811 0.000000 30.000000
+ A 11579568 0.053333 5.875984 0.000000 -5.511811 0.000000 30.000000
+ END
+TURNOUT N "Tomix Fine Track Mini Curve 5.51R 140mm 60° 1112B"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.773368 -2.755905 150.000000
+ C 0 0 5.511811 0.000000 -5.511811 0.000000 60.000000
+ A 11579568 0.053333 5.147638 0.000000 -5.511811 0.000000 60.000000
+ A 11579568 0.053333 5.875984 0.000000 -5.511811 0.000000 60.000000
+ END
+TURNOUT N "Tomix Fine Track Mini Curve 6.96R 177mm 30° 1113A"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.484252 -0.933603 120.000000
+ C 0 0 6.968504 0.000000 -6.968504 0.000000 30.000000
+ A 11579568 0.053333 6.604331 0.000000 -6.968504 0.000000 30.000000
+ A 11579568 0.053333 7.332677 0.000000 -6.968504 0.000000 30.000000
+ END
+TURNOUT N "Tomix Fine Track Mini Curve 6.96R 177mm 60° 1113B"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.034901 -3.484252 150.000000
+ C 0 0 6.968504 0.000000 -6.968504 0.000000 60.000000
+ A 11579568 0.053333 6.604331 0.000000 -6.968504 0.000000 60.000000
+ A 11579568 0.053333 7.332677 0.000000 -6.968504 0.000000 60.000000
+ END
+TURNOUT N "Tomix Fine Track Curve 9.56R 243mm 15° 1143"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.476103 -0.325985 105.000000
+ C 0 0 9.566929 0.000000 -9.566929 0.000000 15.000000
+ A 11579568 0.053333 9.202756 0.000000 -9.566929 0.000000 15.000000
+ A 11579568 0.053333 9.931102 0.000000 -9.566929 0.000000 15.000000
+ END
+TURNOUT N "Tomix Fine Track Curve 9.56R 243mm 45° 1125"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.764840 -2.802089 135.000000
+ C 0 0 9.566929 0.000000 -9.566929 0.000000 45.000000
+ A 11579568 0.053333 9.202756 0.000000 -9.566929 0.000000 45.000000
+ A 11579568 0.053333 9.931102 0.000000 -9.566929 0.000000 45.000000
+ END
+TURNOUT N "Tomix Fine Track Curve 11.02R 280mm 15° 1124"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.853123 -0.375621 105.000000
+ C 0 0 11.023622 0.000000 -11.023622 0.000000 15.000000
+ A 11579568 0.053333 10.659449 0.000000 -11.023622 0.000000 15.000000
+ A 11579568 0.053333 11.387796 0.000000 -11.023622 0.000000 15.000000
+ END
+TURNOUT N "Tomix Fine Track Curve 11.02R 280mm 45° 1121"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.794878 -3.228744 135.000000
+ C 0 0 11.023622 0.000000 -11.023622 0.000000 45.000000
+ A 11579568 0.053333 10.659449 0.000000 -11.023622 0.000000 45.000000
+ A 11579568 0.053333 11.387796 0.000000 -11.023622 0.000000 45.000000
+ END
+TURNOUT N "Tomix Fine Track Curve 12.48R 317mm 15° 1127"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.230143 -0.425256 105.000000
+ C 0 0 12.480315 0.000000 -12.480315 0.000000 15.000000
+ A 11579568 0.053333 12.116143 0.000000 -12.480315 0.000000 15.000000
+ A 11579568 0.053333 12.844488 0.000000 -12.480315 0.000000 15.000000
+ END
+TURNOUT N "Tomix Fine Track Curve 12.48R 317mm 45° 1122"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.824915 -3.655400 135.000000
+ C 0 0 12.480315 0.000000 -12.480315 0.000000 45.000000
+ A 11579568 0.053333 12.116143 0.000000 -12.480315 0.000000 45.000000
+ A 11579568 0.053333 12.844488 0.000000 -12.480315 0.000000 45.000000
+ END
+TURNOUT N "Tomix Fine Track Curve 13.93R 354mm 15° 1144"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.607163 -0.474892 105.000000
+ C 0 0 13.937008 0.000000 -13.937008 0.000000 15.000000
+ A 11579568 0.053333 13.572835 0.000000 -13.937008 0.000000 15.000000
+ A 11579568 0.053333 14.301181 0.000000 -13.937008 0.000000 15.000000
+ END
+TURNOUT N "Tomix Fine Track Curve 13.93R 354mm 45° 1126"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.854953 -4.082055 135.000000
+ C 0 0 13.937008 0.000000 -13.937008 0.000000 45.000000
+ A 11579568 0.053333 13.572835 0.000000 -13.937008 0.000000 45.000000
+ A 11579568 0.053333 14.301181 0.000000 -13.937008 0.000000 45.000000
+ END
+TURNOUT N "Tomix Fine Track Curve 15.39R 391mm 15° 1145"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.984183 -0.524528 105.000000
+ C 0 0 15.393701 0.000000 -15.393701 0.000000 15.000000
+ A 11579568 0.053333 15.029528 0.000000 -15.393701 0.000000 15.000000
+ A 11579568 0.053333 15.757874 0.000000 -15.393701 0.000000 15.000000
+ END
+TURNOUT N "Tomix Fine Track Curve 15.39R 391mm 45° 1128"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 10.884990 -4.508711 135.000000
+ C 0 0 15.393701 0.000000 -15.393701 0.000000 45.000000
+ A 11579568 0.053333 15.029528 0.000000 -15.393701 0.000000 45.000000
+ A 11579568 0.053333 15.757874 0.000000 -15.393701 0.000000 45.000000
+ END
+TURNOUT N "Tomix Fine Track Curve 21.29R 541mm 15° 1123"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.512642 -0.725753 105.000000
+ C 0 0 21.299213 0.000000 -21.299213 0.000000 15.000000
+ A 11579568 0.053333 20.935040 0.000000 -21.299213 0.000000 15.000000
+ A 11579568 0.053333 21.663386 0.000000 -21.299213 0.000000 15.000000
+ END
+TURNOUT N "Tomix Fine Track Curve 23.82R 605mm 10° 1150"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.136108 -0.361863 100.000000
+ C 0 0 23.818898 0.000000 -23.818898 0.000000 10.000000
+ A 11579568 0.053333 23.454725 0.000000 -23.818898 0.000000 10.000000
+ A 11579568 0.053333 24.183071 0.000000 -23.818898 0.000000 10.000000
+ END
+
+SUBCONTENTS Tomix N-Scale Fine Track - Curved PC Track
+TURNOUT N "Tomix Fine Track PC Curve 11.02R 280mm 15° 1194"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.853123 -0.375621 105.000000
+ C 0 0 11.023622 0.000000 -11.023622 0.000000 15.000000
+ A 11579568 0.053333 10.659449 0.000000 -11.023622 0.000000 15.000000
+ A 11579568 0.053333 11.387796 0.000000 -11.023622 0.000000 15.000000
+ END
+TURNOUT N "Tomix Fine Track PC Curve 11.02R 280mm 45° 1191"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.794878 -3.228744 135.000000
+ C 0 0 11.023622 0.000000 -11.023622 0.000000 45.000000
+ A 11579568 0.053333 10.659449 0.000000 -11.023622 0.000000 45.000000
+ A 11579568 0.053333 11.387796 0.000000 -11.023622 0.000000 45.000000
+ END
+TURNOUT N "Tomix Fine Track PC Curve 9.56R 243mm 45° 1195"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.764840 -2.802089 135.000000
+ C 0 0 9.566929 0.000000 -9.566929 0.000000 45.000000
+ A 11579568 0.053333 9.202756 0.000000 -9.566929 0.000000 45.000000
+ A 11579568 0.053333 9.931102 0.000000 -9.566929 0.000000 45.000000
+ END
+TURNOUT N "Tomix Fine Track PC Curve 12.48R 317mm 45° 1192"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.824915 -3.655400 135.000000
+ C 0 0 12.480315 0.000000 -12.480315 0.000000 45.000000
+ A 11579568 0.053333 12.116143 0.000000 -12.480315 0.000000 45.000000
+ A 11579568 0.053333 12.844488 0.000000 -12.480315 0.000000 45.000000
+ END
+TURNOUT N "Tomix Fine Track PC Curve 13.93R 354mm 45° 1196"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.854953 -4.082055 135.000000
+ C 0 0 13.937008 0.000000 -13.937008 0.000000 45.000000
+ A 11579568 0.053333 13.572835 0.000000 -13.937008 0.000000 45.000000
+ A 11579568 0.053333 14.301181 0.000000 -13.937008 0.000000 45.000000
+ END
+TURNOUT N "Tomix Fine Track PC Curve 15.39R 391mm 45° 1198"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 10.884990 -4.508711 135.000000
+ C 0 0 15.393701 0.000000 -15.393701 0.000000 45.000000
+ A 11579568 0.053333 15.029528 0.000000 -15.393701 0.000000 45.000000
+ A 11579568 0.053333 15.757874 0.000000 -15.393701 0.000000 45.000000
+ END
+TURNOUT N "Tomix Fine Track PC Curve 21.29R 541mm 15° 1193"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.512642 -0.725753 105.000000
+ C 0 0 21.299213 0.000000 -21.299213 0.000000 15.000000
+ A 11579568 0.053333 20.935040 0.000000 -21.299213 0.000000 15.000000
+ A 11579568 0.053333 21.663386 0.000000 -21.299213 0.000000 15.000000
+ END
+TURNOUT N "Tomix Fine Track PC Curve 23.82R 605mm 10° 1190"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.136108 -0.361863 100.000000
+ C 0 0 23.818898 0.000000 -23.818898 0.000000 10.000000
+ A 11579568 0.053333 23.454725 0.000000 -23.818898 0.000000 10.000000
+ A 11579568 0.053333 24.183071 0.000000 -23.818898 0.000000 10.000000
+ END
+
+SUBCONTENTS Tomix N-Scale Fine Track - Widetrack PC Curved Track
+TURNOUT N "Tomix Fine Track Widetrack PC Curve 11.02R 280mm 22.5° 1751/1781"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.218558 -0.839123 112.500000
+ C 0 0 11.023622 0.000000 -11.023622 0.000000 22.500000
+ A 11579568 0.053333 10.295276 0.000000 -11.023622 0.000000 22.500000
+ A 11579568 0.053333 11.751968 0.000000 -11.023622 0.000000 22.500000
+ END
+TURNOUT N "Tomix Fine Track Widetrack PC Curve 11.02R 280mm 45° 1741/1771"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.794878 -3.228744 135.000000
+ C 0 0 11.023622 0.000000 -11.023622 0.000000 45.000000
+ A 11579568 0.053333 10.295276 0.000000 -11.023622 0.000000 45.000000
+ A 11579568 0.053333 11.751968 0.000000 -11.023622 0.000000 45.000000
+ END
+TURNOUT N "Tomix Fine Track Widetrack PC Curve 12.48R 317mm 22.5° 1752/1782"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.776010 -0.950007 112.500000
+ C 0 0 12.480315 0.000000 -12.480315 0.000000 22.500000
+ A 11579568 0.053333 11.751968 0.000000 -12.480315 0.000000 22.500000
+ A 11579568 0.053333 13.208661 0.000000 -12.480315 0.000000 22.500000
+ END
+TURNOUT N "Tomix Fine Track Widetrack PC Curve 12.48R 317mm 45° 1742/1772"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.824915 -3.655400 135.000000
+ C 0 0 12.480315 0.000000 -12.480315 0.000000 45.000000
+ A 11579568 0.053333 11.751968 0.000000 -12.480315 0.000000 45.000000
+ A 11579568 0.053333 13.208661 0.000000 -12.480315 0.000000 45.000000
+ END
+TURNOUT N "Tomix Fine Track Widetrack PC Curve 13.93R 354mm 22.5° 1753/1783"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.333462 -1.060892 112.500000
+ C 0 0 13.937008 0.000000 -13.937008 0.000000 22.500000
+ A 11579568 0.053333 13.208661 0.000000 -13.937008 0.000000 22.500000
+ A 11579568 0.053333 14.665354 0.000000 -13.937008 0.000000 22.500000
+ END
+TURNOUT N "Tomix Fine Track Widetrack PC Curve 13.93R 354mm 45° 1743/1773"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.854953 -4.082055 135.000000
+ C 0 0 13.937008 0.000000 -13.937008 0.000000 45.000000
+ A 11579568 0.053333 13.208661 0.000000 -13.937008 0.000000 45.000000
+ A 11579568 0.053333 14.665354 0.000000 -13.937008 0.000000 45.000000
+ END
+TURNOUT N "Tomix Fine Track Widetrack PC Curve 15.39R 391mm 22.5° 1754/1784"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.890914 -1.171776 112.500000
+ C 0 0 15.393701 0.000000 -15.393701 0.000000 22.500000
+ A 11579568 0.053333 14.665354 0.000000 -15.393701 0.000000 22.500000
+ A 11579568 0.053333 16.122047 0.000000 -15.393701 0.000000 22.500000
+ END
+TURNOUT N "Tomix Fine Track Widetrack PC Curve 15.39R 391mm 45° 1744/1774"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 10.884990 -4.508711 135.000000
+ C 0 0 15.393701 0.000000 -15.393701 0.000000 45.000000
+ A 11579568 0.053333 14.665354 0.000000 -15.393701 0.000000 45.000000
+ A 11579568 0.053333 16.122047 0.000000 -15.393701 0.000000 45.000000
+ END
+TURNOUT N "Tomix Fine Track Widetrack PC Curve 21.29R 541mm 15° 1740/1770"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.512642 -0.725753 105.000000
+ C 0 0 21.299213 0.000000 -21.299213 0.000000 15.000000
+ A 11579568 0.053333 20.570867 0.000000 -21.299213 0.000000 15.000000
+ A 11579568 0.053333 22.027559 0.000000 -21.299213 0.000000 15.000000
+ END
+TURNOUT N "Tomix Fine Track Widetrack PC Curve 23.82R 605mm 10° 1750"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 4.136108 -0.361863 100.000000
+ C 0 0 23.818898 0.000000 -23.818898 0.000000 10.000000
+ A 11579568 0.053333 23.090552 0.000000 -23.818898 0.000000 10.000000
+ A 11579568 0.053333 24.547244 0.000000 -23.818898 0.000000 10.000000
+ END
+
+SUBCONTENTS Tomix N-Scale Fine Track - Viaduct Track
+TURNOUT N "Tomix Fine Track Viaduct Straight 3.89 99mm 1075"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.897638 0.000000 90.000000
+ S 0 0 0.000000 0.000000 3.897638 0.000000
+ L 11579568 0.053333 0.000000 0.701680 3.897638 0.701680
+ L 11579568 0.053333 0.000000 -0.701680 3.897638 -0.701680
+ END
+TURNOUT N "Tomix Fine Track Viaduct Straight 5.51 140mm 1071"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.511811 0.000000 90.000000
+ S 0 0 0.000000 0.000000 5.511811 0.000000
+ L 11579568 0.053333 0.000000 0.701680 5.511811 0.701680
+ L 11579568 0.053333 0.000000 -0.701680 5.511811 -0.701680
+ END
+TURNOUT N "Tomix Fine Track Viaduct Straight 6.24 158.5mm 1076"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.240157 0.000000 90.000000
+ S 0 0 0.000000 0.000000 6.240157 0.000000
+ L 11579568 0.053333 0.000000 0.701680 6.240157 0.701680
+ L 11579568 0.053333 0.000000 -0.701680 6.240157 -0.701680
+ END
+TURNOUT N "Tomix Fine Track Viaduct Straight 11.02 280mm 1072"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 11.023622 0.000000 90.000000
+ S 0 0 0.000000 0.000000 11.023622 0.000000
+ L 11579568 0.053333 0.000000 0.701680 11.023622 0.701680
+ L 11579568 0.053333 0.000000 -0.701680 11.023622 -0.701680
+ END
+TURNOUT N "Tomix Fine Track Viaduct Curve 9.56R 243mm 45° 1173"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.764840 -2.802089 135.000000
+ C 0 0 9.566929 0.000000 -9.566929 0.000000 45.000000
+ A 11579568 0.053333 8.865249 0.000000 -9.566929 0.000000 45.000000
+ A 11579568 0.053333 10.268609 0.000000 -9.566929 0.000000 45.000000
+ END
+TURNOUT N "Tomix Fine Track Viaduct Curve 11.02R 280mm 45° 1171"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.794878 -3.228744 135.000000
+ C 0 0 11.023622 0.000000 -11.023622 0.000000 45.000000
+ A 11579568 0.053333 10.321942 0.000000 -11.023622 0.000000 45.000000
+ A 11579568 0.053333 11.725302 0.000000 -11.023622 0.000000 45.000000
+ END
+TURNOUT N "Tomix Fine Track Viaduct Curve 12.48R 317mm 45° 1127"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.824915 -3.655400 135.000000
+ C 0 0 12.480315 0.000000 -12.480315 0.000000 45.000000
+ A 11579568 0.053333 11.778635 0.000000 -12.480315 0.000000 45.000000
+ A 11579568 0.053333 13.181995 0.000000 -12.480315 0.000000 45.000000
+ END
+TURNOUT N "Tomix Fine Track Viaduct Curve 13.93R 354mm 45° 1174"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.854953 -4.082055 135.000000
+ C 0 0 13.937008 0.000000 -13.937008 0.000000 45.000000
+ A 11579568 0.053333 13.235328 0.000000 -13.937008 0.000000 45.000000
+ A 11579568 0.053333 14.638688 0.000000 -13.937008 0.000000 45.000000
+ END
+
+SUBCONTENTS Tomix N-Scale Fine Track - Overhead PC Track
+TURNOUT N "Tomix Fine Track Overhead PC Straight 3.89 99mm 1825"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 3.897638 0.000000 90.000000
+ S 0 0 0.000000 0.000000 3.897638 0.000000
+ L 11579568 0.053333 0.000000 0.701680 3.897638 0.701680
+ L 11579568 0.053333 0.000000 -0.701680 3.897638 -0.701680
+ END
+TURNOUT N "Tomix Fine Track Overhead PC Straight 5.51 140mm 1821"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.511811 0.000000 90.000000
+ S 0 0 0.000000 0.000000 5.511811 0.000000
+ L 11579568 0.053333 0.000000 0.701680 5.511811 0.701680
+ L 11579568 0.053333 0.000000 -0.701680 5.511811 -0.701680
+ END
+TURNOUT N "Tomix Fine Track Overhead PC Straight 6.24 158.5mm 1826"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.240157 0.000000 90.000000
+ S 0 0 0.000000 0.000000 6.240157 0.000000
+ L 11579568 0.053333 0.000000 0.701680 6.240157 0.701680
+ L 11579568 0.053333 0.000000 -0.701680 6.240157 -0.701680
+ END
+TURNOUT N "Tomix Fine Track Overhead PC Straight 11.02 280mm 1822"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 11.023622 0.000000 90.000000
+ S 0 0 0.000000 0.000000 11.023622 0.000000
+ L 11579568 0.053333 0.000000 0.701680 11.023622 0.701680
+ L 11579568 0.053333 0.000000 -0.701680 11.023622 -0.701680
+ END
+TURNOUT N "Tomix Fine Track Overhead PC Curve 9.56R 243mm 45° 1873"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 6.764840 -2.802089 135.000000
+ C 0 0 9.566929 0.000000 -9.566929 0.000000 45.000000
+ A 11579568 0.053333 8.865249 0.000000 -9.566929 0.000000 45.000000
+ A 11579568 0.053333 10.268609 0.000000 -9.566929 0.000000 45.000000
+ END
+TURNOUT N "Tomix Fine Track Overhead PC Curve 11.02R 280mm 45° 1871"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 7.794878 -3.228744 135.000000
+ C 0 0 11.023622 0.000000 -11.023622 0.000000 45.000000
+ A 11579568 0.053333 10.321942 0.000000 -11.023622 0.000000 45.000000
+ A 11579568 0.053333 11.725302 0.000000 -11.023622 0.000000 45.000000
+ END
+TURNOUT N "Tomix Fine Track Overhead PC Curve 12.48R 317mm 45° 1872"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 8.824915 -3.655400 135.000000
+ C 0 0 12.480315 0.000000 -12.480315 0.000000 45.000000
+ A 11579568 0.053333 11.778635 0.000000 -12.480315 0.000000 45.000000
+ A 11579568 0.053333 13.181995 0.000000 -12.480315 0.000000 45.000000
+ END
+TURNOUT N "Tomix Fine Track Overhead PC Curve 13.93R 354mm 45° 1874"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 9.854953 -4.082055 135.000000
+ C 0 0 13.937008 0.000000 -13.937008 0.000000 45.000000
+ A 11579568 0.053333 13.235328 0.000000 -13.937008 0.000000 45.000000
+ A 11579568 0.053333 14.638688 0.000000 -13.937008 0.000000 45.000000
+ END
+
+SUBCONTENTS Tomix N-Scale Fine Track - Overhead Double Track
+TURNOUT N "Tomix Fine Track Overhead Dbl Trk Straight 5.51 140mm 1061"
+ P "Normal" 1
+ E 0.000000 0.728346 270.000000
+ E 5.511811 0.728346 90.000000
+ E 0.000000 -0.728346 270.000000
+ E 5.511811 -0.728346 90.000000
+ S 0 0 0.000000 0.728346 5.511811 0.728346
+ S 0 0 0.000000 -0.728346 5.511811 -0.728346
+ L 11579568 0.053333 0.000000 1.456692 5.511811 1.456692
+ L 11579568 0.053333 0.000000 -1.456692 5.511811 -1.456692
+ END
+TURNOUT N "Tomix Fine Track Overhead Dbl Trk Straight 11.02 280mm 1062"
+ P "Normal" 1
+ E 0.000000 0.728346 270.000000
+ E 11.023622 0.728346 90.000000
+ E 0.000000 -0.728346 270.000000
+ E 11.023622 -0.728346 90.000000
+ S 0 0 0.000000 0.728346 11.023622 0.728346
+ S 0 0 0.000000 -0.728346 11.023622 -0.728346
+ L 11579568 0.053333 0.000000 1.456692 11.023622 1.456692
+ L 11579568 0.053333 0.000000 -1.456692 11.023622 -1.456692
+ END
+TURNOUT N "Tomix Fine Track Overhead Dbl Trk Straight 44.09 1120mm 1069"
+ P "Normal" 1
+ E 0.000000 0.728346 270.000000
+ E 44.094488 0.728346 90.000000
+ E 0.000000 -0.728346 270.000000
+ E 44.094488 -0.728346 90.000000
+ S 0 0 0.000000 0.728346 44.094488 0.728346
+ S 0 0 0.000000 -0.728346 44.094488 -0.728346
+ L 11579568 0.053333 0.000000 1.456692 44.094488 1.456692
+ L 11579568 0.053333 0.000000 -1.456692 44.094488 -1.456692
+ END
+TURNOUT N "Tomix Fine Track Overhead Dbl Trk Curve 11.02/12.48R 280/317mm 45° 1161"
+ P "Normal" 1
+ E 0.000000 0.728346 270.000000
+ E 0.000000 -0.728346 270.000000
+ E 8.824915 -2.927054 135.000000
+ E 7.794878 -3.957090 135.000000
+ C 0 0 12.480315 0.000000 -11.751968 0.000000 45.000000
+ C 0 0 11.023622 0.000000 -11.751968 0.000000 45.000000
+ A 11579568 0.053333 13.208661 0.000000 -11.751968 0.000000 45.000000
+ A 11579568 0.053333 10.295276 0.000000 -11.751968 0.000000 45.000000
+ END
+TURNOUT N "Tomix Fine Track Overhead Dbl Trk Curve 13.93/15.39R 354/391mm 45° 1162"
+ P "Normal" 1
+ E 0.000000 0.728346 270.000000
+ E 0.000000 -0.728346 270.000000
+ E 10.884990 -3.780365 135.000000
+ E 9.854953 -4.810401 135.000000
+ C 0 0 15.393701 0.000000 -14.663354 0.000000 45.000000
+ C 0 0 13.937008 0.000000 -14.663354 0.000000 45.000000
+ A 11579568 0.053333 16.122047 0.000000 -14.663354 0.000000 45.000000
+ A 11579568 0.053333 13.208662 0.000000 -14.663354 0.000000 45.000000
+ END
+TURNOUT N "Tomix Fine Track Overhead Dbl Trk Curve 16.85/18.30R 428/465mm 45° 1163"
+ P "Normal" 1
+ E 0.000000 0.728346 270.000000
+ E 0.000000 -0.728346 270.000000
+ E 12.945065 -4.633676 135.000000
+ E 11.915028 -5.663712 135.000000
+ C 0 0 18.307087 0.000000 -17.578740 0.000000 45.000000
+ C 0 0 16.850394 0.000000 -17.578740 0.000000 45.000000
+ A 11579568 0.053333 19.035433 0.000000 -17.578740 0.000000 45.000000
+ A 11579568 0.053333 16.122048 0.000000 -17.578740 0.000000 45.000000
+ END
+
+SUBCONTENTS Tomix N-Scale Fine Track - Viaduct Double Track Slab Type
+TURNOUT N "Tomix Fine Track Viaduct Dbl Trk Straight 5.51 140mm (slab type) 1066"
+ P "Normal" 1
+ E 0.000000 0.728346 270.000000
+ E 5.511811 0.728346 90.000000
+ E 0.000000 -0.728346 270.000000
+ E 5.511811 -0.728346 90.000000
+ S 0 0 0.000000 0.728346 5.511811 0.728346
+ S 0 0 0.000000 -0.728346 5.511811 -0.728346
+ L 11579568 0.053333 0.000000 1.456692 5.511811 1.456692
+ L 11579568 0.053333 0.000000 -1.456692 5.511811 -1.456692
+ END
+TURNOUT N "Tomix Fine Track Viaduct Dbl Trk Straight 11.02 280mm (slab type) 1067"
+ P "Normal" 1
+ E 0.000000 0.728346 270.000000
+ E 11.023622 0.728346 90.000000
+ E 0.000000 -0.728346 270.000000
+ E 11.023622 -0.728346 90.000000
+ S 0 0 0.000000 0.728346 11.023622 0.728346
+ S 0 0 0.000000 -0.728346 11.023622 -0.728346
+ L 11579568 0.053333 0.000000 1.456692 11.023622 1.456692
+ L 11579568 0.053333 0.000000 -1.456692 11.023622 -1.456692
+ END
+TURNOUT N "Tomix Fine Track Viaduct Dbl Trk Straight 44.09 1120mm (slab type) 1070"
+ P "Normal" 1
+ E 0.000000 0.728346 270.000000
+ E 44.094488 0.728346 90.000000
+ E 0.000000 -0.728346 270.000000
+ E 44.094488 -0.728346 90.000000
+ S 0 0 0.000000 0.728346 44.094488 0.728346
+ S 0 0 0.000000 -0.728346 44.094488 -0.728346
+ L 11579568 0.053333 0.000000 1.456692 44.094488 1.456692
+ L 11579568 0.053333 0.000000 -1.456692 44.094488 -1.456692
+ END
+TURNOUT N "Tomix Fine Track Viaduct Dbl Trk Curve 16.85/18.30R 428/465mm 45°(slab type) 1168"
+ P "Normal" 1
+ E 0.000000 0.728346 270.000000
+ E 0.000000 -0.728346 270.000000
+ E 12.945065 -4.633676 135.000000
+ E 11.915028 -5.663712 135.000000
+ C 0 0 18.307087 0.000000 -17.578740 0.000000 45.000000
+ C 0 0 16.850394 0.000000 -17.578740 0.000000 45.000000
+ A 11579568 0.053333 19.035433 0.000000 -17.578740 0.000000 45.000000
+ A 11579568 0.053333 16.122048 0.000000 -17.578740 0.000000 45.000000
+ END
+TURNOUT N "Tomix Fine Track Viaduct Dbl Trk Curve 19.76/21.22R 502/539mm 22.5°(slab type) 1169"
+ P "Normal" 1
+ E 0.000000 0.728346 270.000000
+ E 0.000000 -0.728346 270.000000
+ E 8.120723 -0.886966 112.500000
+ E 7.563271 -2.232774 112.500000
+ C 0 0 21.220472 0.000000 -20.492125 0.000000 22.500000
+ C 0 0 19.763779 0.000000 -20.492125 0.000000 22.500000
+ A 11579568 0.053333 21.948818 0.000000 -20.492125 0.000000 22.500000
+ A 11579568 0.053333 19.035434 0.000000 -20.492125 0.000000 22.500000
+ END
+
+
+SUBCONTENTS Tomix N-Scale Fine Track - Turnouts
+TURNOUT N "Tomix Fine Track Turnout 541mm-R15 (manual) 1209"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 5.511811 0.000000 90.000000
+ E 5.512642 -0.725753 105.000000
+ S 0 0 0.000000 0.000000 5.511811 0.000000
+ C 0 0 21.299213 0.000000 -21.299213 0.000000 15.000000
+ L 11579568 0.053333 0.000000 0.364173 5.511811 0.364173
+ A 11579568 0.053333 20.935040 0.000000 -21.299213 0.000000 15.000000
+ G 11579568 0.000000 0.187500 0.437500 -0.633274 0
+ G 11579568 0.000000 0.187500 0.562500 -0.633274 0
+ F 11579568 0.000000 4
+ 0.437500 -0.364173 0
+ 0.437500 -0.820774 0
+ 0.562500 -0.820774 0
+ 0.562500 -0.364173 0
+ END
+TURNOUT N "Tomix Fine Track Turnout 541mm-L15 (manual) 1210"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 5.511811 0.000000 90.000000
+ E 5.512642 0.725753 75.000000
+ S 0 0 0.000000 0.000000 5.511811 0.000000
+ C 0 0 21.299213 0.000000 21.299213 165.000000 15.000000
+ L 11579568 0.053333 0.000000 -0.364173 5.511811 -0.364173
+ A 11579568 0.053333 20.935040 0.000000 21.299213 165.000000 15.000000
+ G 11579568 0.000000 0.187500 0.437500 0.633274 0
+ G 11579568 0.000000 0.187500 0.562500 0.633274 0
+ F 11579568 0.000000 4
+ 0.437500 0.364173 0
+ 0.437500 0.820774 0
+ 0.562500 0.820774 0
+ 0.562500 0.364173 0
+ END
+TURNOUT N "Tomix Fine Track Turnout 541mm-R15 (elec) 1241"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 5.511811 0.000000 90.000000
+ E 5.512642 -0.725753 105.000000
+ S 0 0 0.000000 0.000000 5.511811 0.000000
+ C 0 0 21.299213 0.000000 -21.299213 0.000000 15.000000
+ L 11579568 0.053333 0.000000 0.364173 5.511811 0.364173
+ A 11579568 0.053333 20.935040 0.000000 -21.299213 0.000000 15.000000
+ G 11579568 0.000000 0.187500 0.437500 -0.633274 0
+ G 11579568 0.000000 0.187500 0.562500 -0.633274 0
+ F 11579568 0.000000 4
+ 0.437500 -0.364173 0
+ 0.437500 -0.820774 0
+ 0.562500 -0.820774 0
+ 0.562500 -0.364173 0
+ END
+TURNOUT N "Tomix Fine Track Turnout 541mm-L15 (elec) 1242"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 5.511811 0.000000 90.000000
+ E 5.512642 0.725753 75.000000
+ S 0 0 0.000000 0.000000 5.511811 0.000000
+ C 0 0 21.299213 0.000000 21.299213 165.000000 15.000000
+ L 11579568 0.053333 0.000000 -0.364173 5.511811 -0.364173
+ A 11579568 0.053333 20.935040 0.000000 21.299213 165.000000 15.000000
+ G 11579568 0.000000 0.187500 0.437500 0.633274 0
+ G 11579568 0.000000 0.187500 0.562500 0.633274 0
+ F 11579568 0.000000 4
+ 0.437500 0.364173 0
+ 0.437500 0.820774 0
+ 0.562500 0.820774 0
+ 0.562500 0.364173 0
+ END
+TURNOUT N "Tomix Fine Track 3-Way Turnout 541mm-L15 (elec) 1261"
+ P "Left" 1
+ P "Normal" 2
+ P "Right" 3
+ E 5.511811 0.000000 90.000000
+ E 0.000000 0.000000 270.000000
+ E 0.000000 -0.725753 255.000000
+ E 0.000000 0.725753 285.000000
+ C 0 0 21.299213 5.511811 21.299213 180.000000 15.000000
+ S 0 0 0.000000 0.000000 5.511811 0.000000
+ C 0 0 21.299213 5.511811 -21.299213 345.000000 15.000000
+ A 11579568 0.053333 20.935040 5.511811 21.299213 180.000000 15.000000
+ A 11579568 0.053333 20.935040 5.511811 -21.299213 345.000000 15.000000
+ G 11579568 0.000000 0.187500 5.074311 0.633274 0
+ G 11579568 0.000000 0.187500 4.949311 0.633274 0
+ F 11579568 0.000000 4
+ 5.074311 0.364173 0
+ 5.074311 0.820774 0
+ 4.949311 0.820774 0
+ 4.949311 0.364173 0
+ G 11579568 0.000000 0.187500 4.074311 0.633274 0
+ G 11579568 0.000000 0.187500 3.949311 0.633274 0
+ F 11579568 0.000000 4
+ 4.074311 0.364173 0
+ 4.074311 0.820774 0
+ 3.949311 0.820774 0
+ 3.949311 0.364173 0
+ END
+TURNOUT N "Tomix Fine Track 3-Way Turnout 541mm-R15 (elec) 1262"
+ P "Left" 1
+ P "Normal" 2
+ P "Right" 3
+ E 0.000000 0.000000 270.000000
+ E 5.511811 0.000000 90.000000
+ E 5.512642 -0.725753 105.000000
+ E 5.512642 0.725753 75.000000
+ C 0 0 21.299213 0.000000 21.299213 165.000000 15.000000
+ S 0 0 0.000000 0.000000 5.511811 0.000000
+ C 0 0 21.299213 0.000000 -21.299213 0.000000 15.000000
+ A 11579568 0.053333 20.935040 0.000000 21.299213 165.000000 15.000000
+ A 11579568 0.053333 20.935040 0.000000 -21.299213 0.000000 15.000000
+ G 11579568 0.000000 0.187500 0.437500 0.633274 0
+ G 11579568 0.000000 0.187500 0.562500 0.633274 0
+ F 11579568 0.000000 4
+ 0.437500 0.364173 0
+ 0.437500 0.820774 0
+ 0.562500 0.820774 0
+ 0.562500 0.364173 0
+ G 11579568 0.000000 0.187500 1.437500 0.633274 0
+ G 11579568 0.000000 0.187500 1.562500 0.633274 0
+ F 11579568 0.000000 4
+ 1.437500 0.364173 0
+ 1.437500 0.820774 0
+ 1.562500 0.820774 0
+ 1.562500 0.364173 0
+ END
+TURNOUT N "Tomix Fine Track Wye Turnout 280mm-15 (elec) 1240"
+ P "Left" 1
+ P "Right" 2
+ E 0.000000 0.000000 270.000000
+ E 2.853123 0.375621 75.000000
+ E 2.853123 -0.375621 105.000000
+ C 0 0 11.023622 0.000000 11.023622 165.000000 15.000000
+ C 0 0 11.023622 0.000000 -11.023622 0.000000 15.000000
+ A 11579568 0.053333 10.659449 0.000000 11.023622 165.000000 15.000000
+ A 11579568 0.053333 10.659449 0.000000 -11.023622 0.000000 15.000000
+ G 11579568 0.000000 0.187500 0.937500 0.633274 0
+ G 11579568 0.000000 0.187500 1.062500 0.633274 0
+ F 11579568 0.000000 4
+ 0.937500 0.364173 0
+ 0.937500 0.820774 0
+ 1.062500 0.820774 0
+ 1.062500 0.364173 0
+ END
+TURNOUT N "Tomix Fine Track Turnout 280mm-R30 (elec) 1243"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 5.511811 0.000000 90.000000
+ E 5.511811 -1.476885 120.000000
+ S 0 0 0.000000 0.000000 5.511811 0.000000
+ C 0 0 11.023622 0.000000 -11.023622 0.000000 30.000000
+ L 11579568 0.053333 0.000000 0.364173 5.511811 0.364173
+ A 11579568 0.053333 10.659449 0.000000 -11.023622 0.000000 30.000000
+ L 11579568 0.053333 4.511811 -0.364173 5.511811 -0.364173
+ A 11579568 0.053333 11.469396 0.000000 -11.023622 23.000000 7.000000
+ G 11579568 0.000000 0.187500 0.437500 -0.633274 0
+ G 11579568 0.000000 0.187500 0.562500 -0.633274 0
+ F 11579568 0.000000 4
+ 0.437500 -0.364173 0
+ 0.437500 -0.820774 0
+ 0.562500 -0.820774 0
+ 0.562500 -0.364173 0
+ END
+TURNOUT N "Tomix Fine Track Turnout 280mm-L30 (elec) 1244"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 5.511811 0.000000 90.000000
+ E 5.511811 1.476885 60.000000
+ S 0 0 0.000000 0.000000 5.511811 0.000000
+ C 0 0 11.023622 0.000000 11.023622 150.000000 30.000000
+ L 11579568 0.053333 0.000000 -0.364173 5.511811 -0.364173
+ A 11579568 0.053333 10.659449 0.000000 11.023622 150.000000 30.000000
+ L 11579568 0.053333 4.511811 0.364173 5.511811 0.364173
+ A 11579568 0.053333 11.469396 0.000000 11.023622 150.000000 7.000000
+ G 11579568 0.000000 0.187500 0.437500 0.633274 0
+ G 11579568 0.000000 0.187500 0.562500 0.633274 0
+ F 11579568 0.000000 4
+ 0.437500 0.364173 0
+ 0.437500 0.820774 0
+ 0.562500 0.820774 0
+ 0.562500 0.364173 0
+ END
+TURNOUT N "Tomix Fine Track Mini-Turnout 140mm-R30 1231"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 2.755906 0.000000 90.000000
+ E 2.755906 -0.738443 120.000000
+ S 0 0 0.000000 0.000000 2.755906 0.000000
+ C 0 0 5.511811 0.000000 -5.511811 0.000000 30.000000
+ L 11579568 0.053333 0.000000 0.364173 2.755906 0.364173
+ A 11579568 0.053333 5.147638 0.000000 -5.511811 0.000000 30.000000
+ G 11579568 0.000000 0.187500 0.437500 -0.633274 0
+ G 11579568 0.000000 0.187500 0.562500 -0.633274 0
+ F 11579568 0.000000 4
+ 0.437500 -0.364173 0
+ 0.437500 -0.820774 0
+ 0.562500 -0.820774 0
+ 0.562500 -0.364173 0
+ END
+TURNOUT N "Tomix Fine Track Mini-Turnout 140mm-L30 1232"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 2.755906 0.000000 90.000000
+ E 2.755906 0.738443 60.000000
+ S 0 0 0.000000 0.000000 2.755906 0.000000
+ C 0 0 5.511811 0.000000 5.511811 150.000000 30.000000
+ L 11579568 0.053333 0.000000 -0.364173 2.755906 -0.364173
+ A 11579568 0.053333 5.147638 0.000000 5.511811 150.000000 30.000000
+ G 11579568 0.000000 0.187500 0.437500 0.633274 0
+ G 11579568 0.000000 0.187500 0.562500 0.633274 0
+ F 11579568 0.000000 4
+ 0.437500 0.364173 0
+ 0.437500 0.820774 0
+ 0.562500 0.820774 0
+ 0.562500 0.364173 0
+ END
+TURNOUT N "Tomix Fine Track Turnout 317/280mm Curve-R45 (elec) 1248"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 8.824915 -3.655400 135.000000
+ E 7.794878 -3.228744 135.000000
+ C 0 0 12.480315 0.000000 -12.480315 0.000000 45.000000
+ C 0 0 11.023622 0.000000 -11.023622 0.000000 45.000000
+ A 11579568 0.053333 12.844488 0.000000 -12.480315 0.000000 45.000000
+ A 11579568 0.053333 10.659449 0.000000 -11.023622 0.000000 45.000000
+ G 11579568 0.000000 0.187500 0.437500 -0.633274 0
+ G 11579568 0.000000 0.187500 0.562500 -0.633274 0
+ F 11579568 0.000000 4
+ 0.437500 -0.364173 0
+ 0.437500 -0.820774 0
+ 0.562500 -0.820774 0
+ 0.562500 -0.364173 0
+ END
+TURNOUT N "Tomix Fine Track Turnout 317/280mm Curve-L45 (elec) 1249"
+ P "Normal" 1
+ P "Reverse" 2
+ E 0.000000 0.000000 270.000000
+ E 8.824915 3.655400 45.000000
+ E 7.794878 3.228744 45.000000
+ C 0 0 12.480315 0.000000 12.480315 135.000000 45.000000
+ C 0 0 11.023622 0.000000 11.023622 135.000000 45.000000
+ A 11579568 0.053333 12.844488 0.000000 12.480315 135.000000 45.000000
+ A 11579568 0.053333 10.659449 0.000000 11.023622 135.000000 45.000000
+ G 11579568 0.000000 0.187500 0.437500 0.633274 0
+ G 11579568 0.000000 0.187500 0.562500 0.633274 0
+ F 11579568 0.000000 4
+ 0.437500 0.364173 0
+ 0.437500 0.820774 0
+ 0.562500 0.820774 0
+ 0.562500 0.364173 0
+ END
+TURNOUT N "Tomix Fine Track Double Crossover 1247"
+ P "Normal" 1 2 3 0 4 5 6
+ P "Reverse" 1 7 8 9 6 0 4 10 11 12 3
+ E 0.000000 0.000000 270.000000
+ E 11.023622 0.000000 90.000000
+ E 0.000000 1.456693 270.000000
+ E 11.023622 1.456693 90.000000
+ S 0 0.000000 0.000000 0.000000 0.605392 0.000000
+ S 0 0.000000 0.605392 0.000000 10.418230 0.000000
+ S 0 0.000000 10.418230 0.000000 11.023622 0.000000
+ S 0 0.000000 0.000000 1.456693 0.605392 1.456693
+ S 0 0.000000 0.605392 1.456693 10.418230 1.456693
+ S 0 0.000000 10.418230 1.456693 11.023622 1.456693
+ C 0 0.000000 -16.804501 0.605415 16.804501 164.231537 15.768539
+ S 0 0.000000 5.172043 0.632397 5.851579 0.824296
+ C 0 0.000000 16.804501 10.418251 -15.347802 344.231537 15.768539
+ C 0 0.000000 16.804501 0.605325 -15.347808 0.000000 15.768539
+ S 0 0.000000 5.172043 0.824296 5.851579 0.632397
+ C 0 0.000000 -16.804501 10.418251 16.804495 180.000000 15.768539
+ L 11579568 0.053333 0.000000 -0.364173 11.023622 -0.364173
+ L 11579568 0.053333 0.000000 0.364173 1.5 0.364173
+ L 11579568 0.053333 0.000000 1.092520 1.5 1.092520
+ L 11579568 0.053333 1.5 0.364173 1.5 1.092520
+ L 11579568 0.053333 11.023622 0.364173 9.523622 0.364173
+ L 11579568 0.053333 11.023622 1.092520 9.523622 1.092520
+ L 11579568 0.053333 9.523622 0.364173 9.523622 1.092520
+ L 11579568 0.053333 0.000000 1.820866 11.023622 1.820866
+ END
+TURNOUT N "Tomix Fine Track Double Slip 140mm-15R 1245"
+ P "Normal" 1 2 3 0 4 5 6
+ P "Reverse" 1 7 6 0 4 8 3
+ E 5.511811 0.000000 90.000000
+ E 0.000000 0.000000 270.000000
+ E 0.000000 0.738443 285.000000
+ E 5.511811 -0.738443 105.000000
+ S 0 0.000000 0.000000 0.000000 0.706236 0.000000
+ S 0 0.000000 0.706236 0.000000 4.805575 0.000000
+ S 0 0.000000 4.805575 0.000000 5.511811 0.000000
+ S 0 0.000000 0.000000 0.738443 0.776077 0.530493
+ S 0 0.000000 0.776077 0.530493 4.735734 -0.530493
+ S 0 0.000000 4.735734 -0.530493 5.511811 -0.738443
+ C 0 0.000000 15.568784 0.706236 -15.568784 0.000000 15.000000
+ C 0 0.000000 -15.568784 4.805575 15.568784 180.000000 15.000000
+ L 11579568 0.053333 0.000000 -0.364173 0.706236 -0.364173
+ L 11579568 0.053333 4.620359 -0.882258 5.411811 -1.102616
+ A 11579568 0.053333 15.204611 0.706236 -15.568784 0.000000 15.000000
+ L 11579568 0.053333 0.100000 1.102616 0.891452 0.882258
+ L 11579568 0.053333 4.805575 0.364173 5.511811 0.364173
+ A 11579568 0.053333 15.204611 4.805575 15.568784 180.000000 15.000000
+ G 11579568 0.000000 0.187500 1.437500 -0.633274 0
+ G 11579568 0.000000 0.187500 1.562500 -0.633274 0
+ F 11579568 0.000000 4
+ 1.437500 -0.364173 0
+ 1.437500 -0.820774 0
+ 1.562500 -0.820774 0
+ 1.562500 -0.364173 0
+ G 11579568 0.000000 0.187500 3.937500 -1.033274 0
+ G 11579568 0.000000 0.187500 4.062500 -1.033274 0
+ F 11579568 0.000000 4
+ 3.937500 -0.764173 0
+ 3.937500 -1.220774 0
+ 4.062500 -1.220774 0
+ 4.062500 -0.764173 0
+ END
+TURNOUT N "Tomix Fine Track Double Slip 140mm-15L 1246"
+ P "Normal" 1 2 3 0 4 5 6
+ P "Reverse" 1 8 6 0 4 7 3
+ E 0.000000 0.000000 270.000000
+ E 5.511811 0.000000 90.000000
+ E 0.000000 -0.738443 255.000000
+ E 5.511811 0.738443 75.000000
+ S 0 0.000000 0.000000 0.000000 0.706236 0.000000
+ S 0 0.000000 0.706236 0.000000 4.805575 0.000000
+ S 0 0.000000 4.805575 0.000000 5.511811 0.000000
+ S 0 0.000000 0.000000 -0.738443 0.776077 -0.530493
+ S 0 0.000000 0.776077 -0.530493 4.735734 0.530493
+ S 0 0.000000 4.735734 0.530493 5.511811 0.738443
+ C 0 0.000000 15.568784 4.805575 -15.568784 345.000000 15.000000
+ C 0 0.000000 -15.568784 0.706236 15.568784 165.000000 15.000000
+ L 11579568 0.053333 0.000000 0.364173 0.706236 0.364173
+ L 11579568 0.053333 4.620359 0.882258 5.411811 1.102616
+ A 11579568 0.053333 15.204611 0.706236 15.568784 165.000000 15.000000
+ L 11579568 0.053333 0.100000 -1.102616 0.891452 -0.882258
+ L 11579568 0.053333 4.805575 -0.364173 5.511811 -0.364173
+ A 11579568 0.053333 15.204611 4.805575 -15.568784 345.000000 15.000000
+ G 11579568 0.000000 0.187500 3.937500 -0.633274 0
+ G 11579568 0.000000 0.187500 4.062500 -0.633274 0
+ F 11579568 0.000000 4
+ 3.937500 -0.364173 0
+ 3.937500 -0.820774 0
+ 4.062500 -0.820774 0
+ 4.062500 -0.364173 0
+ G 11579568 0.000000 0.187500 1.437500 -1.033274 0
+ G 11579568 0.000000 0.187500 1.562500 -1.033274 0
+ F 11579568 0.000000 4
+ 1.437500 -0.7641730
+ 1.437500 -1.220774 0
+ 1.562500 -1.220774 0
+ 1.562500 -0.764173 0
+ END
+
+SUBCONTENTS Tomix N-Scale Fine Track - Crossings
+TURNOUT N "Tomix Fine Track Crossing 15° 140mm(R) 1322"
+ P "Normal" 1 0 2
+ E 5.511811 0.000000 90.000000
+ E 0.000000 0.000000 270.000000
+ E 0.000000 0.738443 285.000000
+ E 5.511811 -0.738443 105.000000
+ S 0 0.000000 0.000000 0.000000 5.511811 0.000000
+ S 0 0.000000 0.000000 0.738443 5.511811 -0.738443
+ L 11579568 0.053333 0.100000 1.102616 2.755906 0.364173
+ L 11579568 0.053333 2.755906 0.364173 5.511811 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 2.755906 -0.364173
+ L 11579568 0.053333 2.755906 -0.364173 5.411811 -1.102616
+ END
+TURNOUT N "Tomix Fine Track Crossing 15° 140mm(L) 1333"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 5.511811 0.000000 90.000000
+ E 0.000000 -0.738443 255.000000
+ E 5.511811 0.738443 75.000000
+ S 0 0.000000 0.000000 0.000000 5.511811 0.000000
+ S 0 0.000000 0.000000 -0.738443 5.511811 0.738443
+ L 11579568 0.053333 0.100000 -1.102616 2.755906 -0.364173
+ L 11579568 0.053333 2.755906 -0.364173 5.511811 -0.364173
+ L 11579568 0.053333 0.000000 0.364173 2.755906 0.364173
+ L 11579568 0.053333 2.755906 0.364173 5.411811 1.102616
+ END
+TURNOUT N "Tomix Fine Track Crossing 30° 72.5mm 1321"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 2.854331 0.000000 90.000000
+ E 0.191204 -0.713583 240.000000
+ E 2.663127 0.713583 60.000000
+ S 0 0.000000 0.000000 0.000000 2.854331 0.000000
+ S 0 0.000000 0.191204 -0.713583 2.663127 0.713583
+ L 11579568 0.053333 0.000000 0.364173 1.327166 0.364173
+ L 11579568 0.053333 1.327166 0.364173 2.454331 1.027756
+ L 11579568 0.053333 0.400000 -1.027756 1.527166 -0.364173
+ L 11579568 0.053333 1.527166 -0.364173 2.854331 -0.364173
+ END
+TURNOUT N "Tomix Fine Track Crossing 90° 1324"
+ P "Normal" 1 0 2
+ E 0.000000 0.000000 270.000000
+ E 1.456693 0.000000 90.000000
+ E 0.728346 0.728346 0.000000
+ E 0.728346 -0.728346 180.000000
+ S 0 0 0.000000 0.000000 1.456693 0.000000
+ S 0 0 0.728346 0.728346 0.728346 -0.728346
+ L 11579568 0.053333 0.000000 0.364173 0.364173 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 0.364173 -0.364173
+ L 11579568 0.053333 1.092519 0.364173 1.456693 0.364173
+ L 11579568 0.053333 1.092519 -0.364173 1.456693 -0.364173
+ L 11579568 0.053333 0.364173 -0.728346 0.364173 -0.364173
+ L 11579568 0.053333 1.092519 -0.728346 1.092519 -0.364173
+ L 11579568 0.053333 0.364173 0.364173 0.364173 0.728346
+ L 11579568 0.053333 1.092519 0.364173 1.092519 0.728346
+ END
+
+SUBCONTENTS Tomix N-Scale Fine Track - Brigdes
+TURNOUT N "Tomix Fine Track Truss Bridge 11.02 280mm 3030/31/32"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 11.023622 0.000000 90.000000
+ S 0 0 0.000000 0.000000 11.023622 0.000000
+ L 0 0.053333 0.000000 0.701680 11.023622 0.701680
+ L 0 0.053333 0.000000 -0.701680 11.023622 -0.701680
+ L 0 0.053333 0.918635 -0.701680 0.918635 0.701680
+ L 0 0.053333 0.918635 0.000000 1.837270 0.701680
+ L 0 0.053333 0.918635 0.000000 1.837270 -0.701680
+ L 0 0.053333 1.837270 0.701680 2.755905 0.000000
+ L 0 0.053333 1.837270 -0.701680 2.755905 0.000000
+ L 0 0.053333 2.755905 -0.701680 2.755905 0.701680
+ L 0 0.053333 2.755905 0.000000 3.674540 0.701680
+ L 0 0.053333 2.755905 0.000000 3.674540 -0.701680
+ L 0 0.053333 3.674540 0.701680 4.593175 0.000000
+ L 0 0.053333 3.674540 -0.701680 4.593175 0.000000
+ L 0 0.053333 4.593175 -0.701680 4.593175 0.701680
+ L 0 0.053333 4.593175 0.000000 5.511811 0.701680
+ L 0 0.053333 4.593175 0.000000 5.511811 -0.701680
+ L 0 0.053333 5.511811 0.701680 6.430445 0.000000
+ L 0 0.053333 5.511811 -0.701680 6.430445 0.000000
+ L 0 0.053333 6.430445 -0.701680 6.430445 0.701680
+ L 0 0.053333 6.430445 0.000000 7.349080 0.701680
+ L 0 0.053333 6.430445 0.000000 7.349080 -0.701680
+ L 0 0.053333 7.349080 0.701680 8.267715 0.000000
+ L 0 0.053333 7.349080 -0.701680 8.267715 0.000000
+ L 0 0.053333 8.267715 -0.701680 8.267715 0.701680
+ L 0 0.053333 8.267715 0.000000 9.186350 0.701680
+ L 0 0.053333 8.267715 0.000000 9.186350 -0.701680
+ L 0 0.053333 9.186350 0.701680 10.104985 0.000000
+ L 0 0.053333 9.186350 -0.701680 10.104985 0.000000
+ L 0 0.053333 10.104985 -0.701680 10.104985 0.701680
+ END
+TURNOUT N "Tomix Fine Track Dbl Trk Truss Bridge 11.02 280mm 3051/52/53"
+ P "Normal" 1
+ E 0.000000 0.728346 270.000000
+ E 11.023622 0.728346 90.000000
+ E 0.000000 -0.728346 270.000000
+ E 11.023622 -0.728346 90.000000
+ S 0 0 0.000000 0.728346 11.023622 0.728346
+ S 0 0 0.000000 -0.728346 11.023622 -0.728346
+ L 0 0.053333 0.000000 1.430026 11.023622 1.430026
+ L 0 0.053333 0.000000 -1.430026 11.023622 -1.430026
+ L 0 0.053333 0.918635 -1.430026 0.918635 1.430026
+ L 0 0.053333 0.918635 1.430026 2.755905 -1.430026
+ L 0 0.053333 0.918635 -1.430026 2.755905 1.430026
+ L 0 0.053333 2.755905 -1.430026 2.755905 1.430026
+ L 0 0.053333 2.755905 1.430026 4.593175 -1.430026
+ L 0 0.053333 2.755905 -1.430026 4.593175 1.430026
+ L 0 0.053333 4.593175 -1.430026 4.593175 1.430026
+ L 0 0.053333 4.593175 1.430026 6.430445 -1.430026
+ L 0 0.053333 4.593175 -1.430026 6.430445 1.430026
+ L 0 0.053333 6.430445 -1.430026 6.430445 1.430026
+ L 0 0.053333 6.430445 1.430026 8.267715 -1.430026
+ L 0 0.053333 6.430445 -1.430026 8.267715 1.430026
+ L 0 0.053333 8.267715 -1.430026 8.267715 1.430026
+ L 0 0.053333 8.267715 1.430026 10.104985 -1.430026
+ L 0 0.053333 8.267715 -1.430026 10.104985 1.430026
+ L 0 0.053333 10.104985 -1.430026 10.104985 1.430026
+ END
+TURNOUT N "Tomix Fine Track Plate Grider Bridge 5.51 140mm 3029"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.511811 0.000000 90.000000
+ S 0 0 0.000000 0.000000 5.511811 0.000000
+ L 0 0.053333 0.000000 0.701680 5.511811 0.701680
+ L 0 0.053333 0.000000 0.364173 0.000000 0.701680
+ L 0 0.053333 1.102362 0.364173 1.102362 0.701680
+ L 0 0.053333 2.204724 0.364173 2.204724 0.701680
+ L 0 0.053333 3.307086 0.364173 3.307086 0.701680
+ L 0 0.053333 4.409448 0.364173 4.409448 0.701680
+ L 0 0.053333 5.511811 0.364173 5.511811 0.701680
+ L 0 0.053333 0.000000 -0.701680 5.511811 -0.701680
+ L 0 0.053333 0.000000 -0.364173 0.000000 -0.701680
+ L 0 0.053333 1.102362 -0.364173 1.102362 -0.701680
+ L 0 0.053333 2.204724 -0.364173 2.204724 -0.701680
+ L 0 0.053333 3.307086 -0.364173 3.307086 -0.701680
+ L 0 0.053333 4.409448 -0.364173 4.409448 -0.701680
+ L 0 0.053333 5.511811 -0.364173 5.511811 -0.701680
+ END
+TURNOUT N "Tomix Fine Track Deck Grider Bridge 5.51 140mm 3028"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.511811 0.000000 90.000000
+ S 0 0 0.000000 0.000000 5.511811 0.000000
+ F 11579568 0.000000 4
+ 0.000000 0.364173 0
+ 0.300000 0.364173 0
+ 0.300000 0.701680 0
+ 0.000000 0.701680 0
+ F 11579568 0.000000 4
+ 5.211811 0.364173 0
+ 5.511811 0.364173 0
+ 5.511811 0.701680 0
+ 5.211811 0.701680 0
+ END
+
+SUBCONTENTS Tomix N-Scale Fine Track - Turn Table
+TURNOUT N "Tomix Fine Track Turn Table 8.34 212mm 1631"
+# TT was designed with 212mm bridge, outside dia. is approx., 15 degree spacing
+ P "1" 1 2 3
+ P "2" 4 5 6
+ P "3" 7 8 9
+ P "4" 10 11 12
+ P "5" 13 14 15
+ P "6" 16 17 18
+ P "7" 19 20 21
+ P "8" 22 23 24
+ P "9" 25 26 27
+ P "10" 28 29 30
+ P "11" 31 32 33
+ P "12" 34 35 36
+ E 0.000000 4.173228 0.000000
+ E 1.080111 4.031029 15.000000
+ E 2.086614 3.614121 30.000000
+ E 2.950918 2.950918 45.000000
+ E 3.614121 2.086614 60.000000
+ E 4.031029 1.080111 75.000000
+ E 4.173228 0.000000 90.000000
+ E 4.031029 -1.080111 105.000000
+ E 3.614121 -2.086614 120.000000
+ E 2.950918 -2.950918 135.000000
+ E 2.086614 -3.614121 150.000000
+ E 1.080111 -4.031029 165.000000
+ E 0.000000 -4.173228 180.000000
+ E -1.080111 -4.031029 195.000000
+ E -2.086614 -3.614121 210.000000
+ E -2.950918 -2.950918 225.000000
+ E -3.614121 -2.086614 240.000000
+ E -4.031029 -1.080111 255.000000
+ E -4.173228 0.000000 270.000000
+ E -4.031029 1.080111 285.000000
+ E -3.614121 2.086614 300.000000
+ E -2.950918 2.950918 315.000000
+ E -2.086614 3.614121 330.000000
+ E -1.080111 4.031029 345.000000
+#0/360
+ S 0 0 0.000000 4.173228 0.000000 3.676228
+ S 0 0 0.000000 3.676228 0.000000 -3.676228
+ S 0 0 0.000000 -3.676228 0.000000 -4.173228
+#15/195
+ S 0 0 1.080111 4.031029 0.950701 3.548066
+ S 0 0 0.950701 3.548066 -0.950701 -3.548066
+ S 0 0 -0.950701 -3.548066 -1.080111 -4.031029
+#30/210
+ S 0 0 2.086614 3.614121 1.836614 3.181109
+ S 0 0 1.836614 3.181109 -1.836614 -3.181109
+ S 0 0 -1.836614 -3.181109 -2.086614 -3.614121
+#45/225
+ S 0 0 2.950918 2.950918 2.597364 2.597364
+ S 0 0 2.597364 2.597364 -2.597364 -2.597364
+ S 0 0 -2.597364 -2.597364 -2.950918 -2.950918
+#60/240
+ S 0 0 3.614121 2.086614 3.181109 1.836614
+ S 0 0 3.181109 1.836614 -3.181109 -1.836614
+ S 0 0 -3.181109 -1.836614 -3.614121 -2.086614
+#75/255
+ S 0 0 4.031029 1.080111 3.548066 0.950701
+ S 0 0 3.548066 0.950701 -3.548066 -0.950701
+ S 0 0 -3.548066 -0.950701 -4.031029 -1.080111
+#90/270
+ S 0 0 4.173228 0.000000 3.676228 0.000000
+ S 0 0 3.676228 0.000000 -3.676228 0.000000
+ S 0 0 -3.676228 0.000000 -4.173228 0.000000
+#105/285
+ S 0 0 4.031029 -1.080111 3.548066 -0.950701
+ S 0 0 3.548066 -0.950701 -3.548066 0.950701
+ S 0 0 -3.548066 0.950701 -4.031029 1.080111
+#120/300
+ S 0 0 3.614121 -2.086614 3.181109 -1.836614
+ S 0 0 3.181109 -1.836614 -3.181109 1.836614
+ S 0 0 -3.181109 1.836614 -3.614121 2.086614
+#135/315
+ S 0 0 2.950918 -2.950918 2.597364 -2.597364
+ S 0 0 2.597364 -2.597364 -2.597364 2.597364
+ S 0 0 -2.597364 2.597364 -2.950918 2.950918
+#150/330
+ S 0 0 2.086614 -3.614121 1.836614 -3.181109
+ S 0 0 1.836614 -3.181109 -1.836614 3.181109
+ S 0 0 -1.836614 3.181109 -2.086614 3.614121
+#165/345
+ S 0 0 1.080111 -4.031029 0.950701 -3.548066
+ S 0 0 0.950701 -3.548066 -0.950701 3.548066
+ S 0 0 -0.950701 3.548066 -1.080111 4.031029
+
+ A 11579568 0.053333 4.173228 0.000000 0.000000 0.000000 360.000000
+ A 11579568 0.053333 3.673228 0.000000 0.000000 0.000000 360.000000
+ END
+
+SUBCONTENTS Tomix N-Scale Fine Track - Signal Track
+TURNOUT N "Tomix Fine Track 70mm 5 color 5560"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.755906 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.755906 0.000000
+ L 11579568 0.053333 0.000000 0.364173 2.755906 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 2.755906 -0.364173
+ F 11579568 0.000000 4
+ 1.002953 0.364173 0
+ 1.752953 0.364173 0
+ 1.752953 0.864173 0
+ 1.002953 0.864173 0
+ END
+TURNOUT N "Tomix Fine Track 70mm 4 color(Yel/Grn) 5561"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.755906 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.755906 0.000000
+ L 11579568 0.053333 0.000000 0.364173 2.755906 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 2.755906 -0.364173
+ F 11579568 0.000000 4
+ 1.002953 0.364173 0
+ 1.752953 0.364173 0
+ 1.752953 0.864173 0
+ 1.002953 0.864173 0
+ END
+TURNOUT N "Tomix Fine Track 70mm 4 color(Yel/Yel) 5562"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.755906 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.755906 0.000000
+ L 11579568 0.053333 0.000000 0.364173 2.755906 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 2.755906 -0.364173
+ F 11579568 0.000000 4
+ 1.002953 0.364173 0
+ 1.752953 0.364173 0
+ 1.752953 0.864173 0
+ 1.002953 0.864173 0
+ END
+TURNOUT N "Tomix Fine Track 70mm 3 color 5564"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.755906 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.755906 0.000000
+ L 11579568 0.053333 0.000000 0.364173 2.755906 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 2.755906 -0.364173
+ F 11579568 0.000000 4
+ 1.002953 0.364173 0
+ 1.752953 0.364173 0
+ 1.752953 0.864173 0
+ 1.002953 0.864173 0
+ END
+TURNOUT N "Tomix Fine Track 70mm 2 color 5565"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.755906 0.000000 90.000000
+ S 0 0 0.000000 0.000000 2.755906 0.000000
+ L 11579568 0.053333 0.000000 0.364173 2.755906 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 2.755906 -0.364173
+ F 11579568 0.000000 4
+ 1.002953 0.364173 0
+ 1.752953 0.364173 0
+ 1.752953 0.864173 0
+ 1.002953 0.864173 0
+ END
+
+SUBCONTENTS Tomix N-Scale Fine Track - Misc Track
+TURNOUT N "Tomix Fine Track Re-Railer 140mm 1523"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.511811 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 5.511811 0.000000
+ L 11579568 0.053333 0.000000 0.364173 5.511811 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 5.511811 -0.364173
+ L 0 0.053333 1.837270 0.364173 3.674541 0.364173
+ L 0 0.053333 3.674541 0.364173 3.674541 -0.364173
+ L 0 0.053333 3.674541 -0.364173 1.837270 -0.364173
+ L 0 0.053333 1.837270 -0.364173 1.837270 0.364173
+ END
+TURNOUT N "Tomix Fine Track PC Re-Railer 140mm 1524"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.511811 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 5.511811 0.000000
+ L 11579568 0.053333 0.000000 0.364173 5.511811 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 5.511811 -0.364173
+ L 0 0.053333 1.837270 0.364173 3.674541 0.364173
+ L 0 0.053333 3.674541 0.364173 3.674541 -0.364173
+ L 0 0.053333 3.674541 -0.364173 1.837270 -0.364173
+ L 0 0.053333 1.837270 -0.364173 1.837270 0.364173
+ END
+TURNOUT N "Tomix Fine Track Mag Uncoupler 70mm 1521"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.755906 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 2.755906 0.000000
+ L 11579568 0.053333 0.000000 0.3641730 2.755906 0.3641730
+ L 11579568 0.053333 0.000000 -0.3641730 2.755906 -0.3641730
+ L 0 0.053333 0.253333 0.133560 2.280000 0.133560
+ L 0 0.053333 2.280000 0.133560 2.280000 -0.146440
+ L 0 0.053333 2.280000 -0.146440 0.253333 -0.146440
+ L 0 0.053333 0.253333 -0.146440 0.253333 0.133560
+ END
+TURNOUT N "Tomix Fine Track W/Insul. Gap 70mm 1671"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.755906 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 2.755906 0.000000
+ L 11579568 0.053333 0.000000 0.3641730 2.755906 0.3641730
+ L 11579568 0.053333 0.000000 -0.3641730 2.755906 -0.3641730
+ END
+TURNOUT N "Tomix Fine Track Adjustable 70-90mm 1522"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.755906 0.000000 90.000000
+ X adjustable 2.755906 3.543307
+ S 0 0 0.000000 0.000000 2.755906 0.000000
+ L 11579568 0.053333 0.000000 0.364173 2.755906 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 2.755906 -0.364173
+ END
+TURNOUT N "Tomix Fine Track PC Adjustable 70-90mm 1526"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 2.755906 0.000000 90.000000
+ X adjustable 2.755906 3.543307
+ S 0 0 0.000000 0.000000 2.755906 0.000000
+ L 11579568 0.053333 0.000000 0.364173 2.755906 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 2.755906 -0.364173
+ END
+TURNOUT N "Tomix Fine Track Wheel Cleaner Rail 140mm 6414"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.511811 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 5.511811 0.000000
+ L 11579568 0.053333 0.000000 0.364173 5.511811 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 5.511811 -0.364173
+ F 11579568 0.000000 4
+ 1.456693 0.364173 0
+ 4.055118 0.364173 0
+ 4.055118 1.092519 0
+ 1.456693 1.092519 0
+ END
+TURNOUT N "Tomix Fine Track PC Wheel Cleaner Rail 140mm 6415"
+ P "Normal" 1
+ E 0.000000 0.000000 270.000000
+ E 5.511811 0.000000 90.000000
+ S 0 0.000000 0.000000 0.000000 5.511811 0.000000
+ L 11579568 0.053333 0.000000 0.364173 5.511811 0.364173
+ L 11579568 0.053333 0.000000 -0.364173 5.511811 -0.364173
+ F 11579568 0.000000 4
+ 1.456693 0.364173 0
+ 4.055118 0.364173 0
+ 4.055118 1.092519 0
+ 1.456693 1.092519 0
+ END
+
+SUBCONTENTS Tomix N-Scale Fine Track - Wide Tram
+TURNOUT N "Tomix Fine Track Wide Tram Straight 18.5mm S18.5-WT/1798"
+P "Normal" 1
+E 0.000000 0.000000 270.000000
+E 0.728346 0.000000 90.000000
+S 0 0.000000 0.000000 0.000000 0.728346 0.000000
+L 0 0.039370 0.000000 -0.728346 0.728345 -0.728346
+L 0 0.039370 0.000000 0.728346 0.728346 0.728346
+END
+TURNOUT N "Tomix Fine Track Wide Tram Straight 37mm S37-WT/1798"
+P "Normal" 1
+E 0.000000 0.000000 270.000000
+E 1.456693 0.000000 90.000000
+S 0 0.000000 0.000000 0.000000 1.456693 0.000000
+L 0 0.039370 0.000000 -0.728346 1.456693 -0.728346
+L 0 0.039370 0.000000 0.728346 1.456693 0.728346
+END
+TURNOUT N "Tomix Fine Track Wide Tram Straight(Sensor) 37mm S37-WT-SE/5568"
+P "Normal" 1
+E 0.000000 0.000000 270.000000
+E 1.456693 0.000000 90.000000
+S 0 0.000000 0.000000 0.000000 1.456693 0.000000
+L 0 0.039370 0.000000 -0.728346 1.456693 -0.728346
+L 0 0.039370 0.000000 0.728346 1.456693 0.728346
+END
+TURNOUT N "Tomix Fine Track Wide Tram Straight 47.5mm S47.5-WT/1798"
+P "Normal" 1
+E 0.000000 0.000000 270.000000
+E 1.870079 0.000000 90.000000
+S 0 0.000000 0.000000 0.000000 1.870079 0.000000
+L 0 0.039370 0.000000 -0.728346 1.870077 -0.728346
+L 0 0.039370 0.000000 0.728346 1.870079 0.728346
+END
+TURNOUT N "Tomix Fine Track Wide Tram Straight 70mm S70-WT/1792/1790"
+P "Normal" 1
+E 0.000000 0.000000 270.000000
+E 2.755906 0.000000 90.000000
+S 0 0.000000 0.000000 0.000000 2.755906 0.000000
+L 0 0.039370 0.000000 -0.728346 2.755904 -0.728346
+L 0 0.039370 0.000000 0.728346 2.755906 0.728346
+END
+TURNOUT N "Tomix Fine Track Wide Tram Straight 140mm S140-WT/1793/1791"
+P "Normal" 1
+E 0.000000 0.000000 270.000000
+E 5.511811 0.000000 90.000000
+S 0 0.000000 0.000000 0.000000 5.511811 0.000000
+L 0 0.039370 0.000000 -0.728346 5.511809 -0.728346
+L 0 0.039370 0.000000 0.728346 5.511811 0.728346
+END
+TURNOUT N "Tomix Fine Track Wide Tram 30d Curve 103mm C103-30-WT/1795"
+P "Normal" 1
+E 0.000000 0.000000 270.000000
+E 2.027558 0.543282 60.000000
+C 0 0.000000 4.055118 0.000000 4.055118 150.000000 30.000000
+A3 0 0.039370 4.783465 0.000000 4.055118 0 150.000000 30.000000
+A3 0 0.039370 3.326772 0.000000 4.055118 0 150.000000 30.000000
+END
+TURNOUT N "Tomix Fine Track Wide Tram 60d Curve 103mm C103-60-WT/1795"
+P "Normal" 1
+E 0.000000 0.000000 270.000000
+E 3.511834 2.027556 30.000000
+C 0 0.000000 4.055118 0.000000 4.055118 120.000000 60.000000
+A3 0 0.039370 4.783465 0.000000 4.055118 0 120.000000 60.000000
+A3 0 0.039370 3.326772 0.000000 4.055118 0 120.000000 60.000000
+END
+TURNOUT N "Tomix Fine Track Wide Tram 30d Curve 140mm C140-30-WT/1796"
+P "Normal" 1
+E 0.000000 0.000000 270.000000
+E 2.755903 0.738441 60.000000
+C 0 0.000000 5.511811 0.000000 5.511811 150.000000 30.000000
+A3 0 0.039370 6.240157 0.000000 5.511811 0 150.000000 30.000000
+A3 0 0.039370 4.783465 0.000000 5.511811 0 150.000000 30.000000
+END
+TURNOUT N "Tomix Fine Track Wide Tram 60d Curve 140mm C140-60-WT/1796"
+P "Normal" 1
+E 0.000000 0.000000 270.000000
+E 4.773366 2.755901 30.000000
+C 0 0.000000 5.511811 0.000000 5.511811 120.000000 60.000000
+A3 0 0.039370 6.240157 0.000000 5.511811 0 120.000000 60.000000
+A3 0 0.039370 4.783465 0.000000 5.511811 0 120.000000 60.000000
+END
+TURNOUT N "Tomix Fine Track Wide Tram 30d Curve 177mm C177-30-WT/1799"
+P "Normal" 1
+E 0.000000 0.000000 270.000000
+E 3.484249 0.933601 60.000000
+C 0 0.000000 6.968504 0.000000 6.968504 150.000000 30.000000
+A3 0 0.039370 7.696850 0.000000 6.968504 0 150.000000 30.000000
+A3 0 0.039370 6.240157 0.000000 6.968504 0 150.000000 30.000000
+END
+TURNOUT N "Tomix Fine Track Wide Tram 60d Curve 177mm C177-60-WT/1799"
+P "Normal" 1
+E 0.000000 0.000000 270.000000
+E 6.034898 3.484247 30.000000
+C 0 0.000000 6.968504 0.000000 6.968504 120.000000 60.000000
+A3 0 0.039370 7.696850 0.000000 6.968504 0 120.000000 60.000000
+A3 0 0.039370 6.240157 0.000000 6.968504 0 120.000000 60.000000
+END
+TURNOUT N "Tomix Fine Track Wide Tram 90d Crossing 37mm X37-90-WT/1799"
+P "Normal" 1 0 2
+E 0.000000 0.000000 270.000000
+E 1.456693 0.000000 90.000000
+E 0.728346 0.728346 360.000000
+E 0.728346 -0.728346 180.000000
+S 0 0.000000 0.000000 0.000000 1.456693 0.000000
+S 0 0.000000 0.728346 0.728346 0.728346 -0.728346
END \ No newline at end of file
diff --git a/app/lib/xdg-open b/app/lib/xdg-open
new file mode 100755
index 0000000..a3fb099
--- /dev/null
+++ b/app/lib/xdg-open
@@ -0,0 +1,972 @@
+#!/bin/sh
+#---------------------------------------------
+# xdg-open
+#
+# Utility script to open a URL in the registered default application.
+#
+# Refer to the usage() function below for usage.
+#
+# Copyright 2009-2010, Fathi Boudra <fabo@freedesktop.org>
+# Copyright 2009-2010, Rex Dieter <rdieter@fedoraproject.org>
+# Copyright 2006, Kevin Krammer <kevin.krammer@gmx.at>
+# Copyright 2006, Jeremy White <jwhite@codeweavers.com>
+#
+# LICENSE:
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+# OTHER DEALINGS IN THE SOFTWARE.
+#
+#---------------------------------------------
+
+manualpage()
+{
+cat << _MANUALPAGE
+Name
+
+ xdg-open - opens a file or URL in the user's preferred
+ application
+
+Synopsis
+
+ xdg-open { file | URL }
+
+ xdg-open { --help | --manual | --version }
+
+Description
+
+ xdg-open opens a file or URL in the user's preferred
+ application. If a URL is provided the URL will be opened in the
+ user's preferred web browser. If a file is provided the file
+ will be opened in the preferred application for files of that
+ type. xdg-open supports file, ftp, http and https URLs.
+
+ xdg-open is for use inside a desktop session only. It is not
+ recommended to use xdg-open as root.
+
+Options
+
+ --help
+ Show command synopsis.
+
+ --manual
+ Show this manual page.
+
+ --version
+ Show the xdg-utils version information.
+
+Exit Codes
+
+ An exit code of 0 indicates success while a non-zero exit code
+ indicates failure. The following failure codes can be returned:
+
+ 1
+ Error in command line syntax.
+
+ 2
+ One of the files passed on the command line did not
+ exist.
+
+ 3
+ A required tool could not be found.
+
+ 4
+ The action failed.
+
+See Also
+
+ xdg-mime(1), xdg-settings(1), MIME applications associations
+ specification
+
+Examples
+
+xdg-open 'http://www.freedesktop.org/'
+
+ Opens the freedesktop.org website in the user's default
+ browser.
+
+xdg-open /tmp/foobar.png
+
+ Opens the PNG image file /tmp/foobar.png in the user's default
+ image viewing application.
+_MANUALPAGE
+}
+
+usage()
+{
+cat << _USAGE
+ xdg-open - opens a file or URL in the user's preferred
+ application
+
+Synopsis
+
+ xdg-open { file | URL }
+
+ xdg-open { --help | --manual | --version }
+
+_USAGE
+}
+
+#@xdg-utils-common@
+
+#----------------------------------------------------------------------------
+# Common utility functions included in all XDG wrapper scripts
+#----------------------------------------------------------------------------
+
+DEBUG()
+{
+ [ -z "${XDG_UTILS_DEBUG_LEVEL}" ] && return 0;
+ [ ${XDG_UTILS_DEBUG_LEVEL} -lt $1 ] && return 0;
+ shift
+ echo "$@" >&2
+}
+
+# This handles backslashes but not quote marks.
+first_word()
+{
+ read first rest
+ echo "$first"
+}
+
+#-------------------------------------------------------------
+# map a binary to a .desktop file
+binary_to_desktop_file()
+{
+ search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
+ binary="`which "$1"`"
+ binary="`readlink -f "$binary"`"
+ base="`basename "$binary"`"
+ IFS=:
+ for dir in $search; do
+ unset IFS
+ [ "$dir" ] || continue
+ [ -d "$dir/applications" ] || [ -d "$dir/applnk" ] || continue
+ for file in "$dir"/applications/*.desktop "$dir"/applications/*/*.desktop "$dir"/applnk/*.desktop "$dir"/applnk/*/*.desktop; do
+ [ -r "$file" ] || continue
+ # Check to make sure it's worth the processing.
+ grep -q "^Exec.*$base" "$file" || continue
+ # Make sure it's a visible desktop file (e.g. not "preferred-web-browser.desktop").
+ grep -Eq "^(NoDisplay|Hidden)=true" "$file" && continue
+ command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`"
+ command="`which "$command"`"
+ if [ x"`readlink -f "$command"`" = x"$binary" ]; then
+ # Fix any double slashes that got added path composition
+ echo "$file" | sed -e 's,//*,/,g'
+ return
+ fi
+ done
+ done
+}
+
+#-------------------------------------------------------------
+# map a .desktop file to a binary
+## FIXME: handle vendor dir case
+desktop_file_to_binary()
+{
+ search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
+ desktop="`basename "$1"`"
+ IFS=:
+ for dir in $search; do
+ unset IFS
+ [ "$dir" ] && [ -d "$dir/applications" ] || continue
+ file="$dir/applications/$desktop"
+ [ -r "$file" ] || continue
+ # Remove any arguments (%F, %f, %U, %u, etc.).
+ command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`"
+ command="`which "$command"`"
+ readlink -f "$command"
+ return
+ done
+}
+
+#-------------------------------------------------------------
+# Exit script on successfully completing the desired operation
+
+exit_success()
+{
+ if [ $# -gt 0 ]; then
+ echo "$@"
+ echo
+ fi
+
+ exit 0
+}
+
+
+#-----------------------------------------
+# Exit script on malformed arguments, not enough arguments
+# or missing required option.
+# prints usage information
+
+exit_failure_syntax()
+{
+ if [ $# -gt 0 ]; then
+ echo "xdg-open: $@" >&2
+ echo "Try 'xdg-open --help' for more information." >&2
+ else
+ usage
+ echo "Use 'man xdg-open' or 'xdg-open --manual' for additional info."
+ fi
+
+ exit 1
+}
+
+#-------------------------------------------------------------
+# Exit script on missing file specified on command line
+
+exit_failure_file_missing()
+{
+ if [ $# -gt 0 ]; then
+ echo "xdg-open: $@" >&2
+ fi
+
+ exit 2
+}
+
+#-------------------------------------------------------------
+# Exit script on failure to locate necessary tool applications
+
+exit_failure_operation_impossible()
+{
+ if [ $# -gt 0 ]; then
+ echo "xdg-open: $@" >&2
+ fi
+
+ exit 3
+}
+
+#-------------------------------------------------------------
+# Exit script on failure returned by a tool application
+
+exit_failure_operation_failed()
+{
+ if [ $# -gt 0 ]; then
+ echo "xdg-open: $@" >&2
+ fi
+
+ exit 4
+}
+
+#------------------------------------------------------------
+# Exit script on insufficient permission to read a specified file
+
+exit_failure_file_permission_read()
+{
+ if [ $# -gt 0 ]; then
+ echo "xdg-open: $@" >&2
+ fi
+
+ exit 5
+}
+
+#------------------------------------------------------------
+# Exit script on insufficient permission to write a specified file
+
+exit_failure_file_permission_write()
+{
+ if [ $# -gt 0 ]; then
+ echo "xdg-open: $@" >&2
+ fi
+
+ exit 6
+}
+
+check_input_file()
+{
+ if [ ! -e "$1" ]; then
+ exit_failure_file_missing "file '$1' does not exist"
+ fi
+ if [ ! -r "$1" ]; then
+ exit_failure_file_permission_read "no permission to read file '$1'"
+ fi
+}
+
+check_vendor_prefix()
+{
+ file_label="$2"
+ [ -n "$file_label" ] || file_label="filename"
+ file=`basename "$1"`
+ case "$file" in
+ [[:alpha:]]*-*)
+ return
+ ;;
+ esac
+
+ echo "xdg-open: $file_label '$file' does not have a proper vendor prefix" >&2
+ echo 'A vendor prefix consists of alpha characters ([a-zA-Z]) and is terminated' >&2
+ echo 'with a dash ("-"). An example '"$file_label"' is '"'example-$file'" >&2
+ echo "Use --novendor to override or 'xdg-open --manual' for additional info." >&2
+ exit 1
+}
+
+check_output_file()
+{
+ # if the file exists, check if it is writeable
+ # if it does not exists, check if we are allowed to write on the directory
+ if [ -e "$1" ]; then
+ if [ ! -w "$1" ]; then
+ exit_failure_file_permission_write "no permission to write to file '$1'"
+ fi
+ else
+ DIR=`dirname "$1"`
+ if [ ! -w "$DIR" ] || [ ! -x "$DIR" ]; then
+ exit_failure_file_permission_write "no permission to create file '$1'"
+ fi
+ fi
+}
+
+#----------------------------------------
+# Checks for shared commands, e.g. --help
+
+check_common_commands()
+{
+ while [ $# -gt 0 ] ; do
+ parm="$1"
+ shift
+
+ case "$parm" in
+ --help)
+ usage
+ echo "Use 'man xdg-open' or 'xdg-open --manual' for additional info."
+ exit_success
+ ;;
+
+ --manual)
+ manualpage
+ exit_success
+ ;;
+
+ --version)
+ echo "xdg-open 1.1.1+"
+ exit_success
+ ;;
+ esac
+ done
+}
+
+check_common_commands "$@"
+
+[ -z "${XDG_UTILS_DEBUG_LEVEL}" ] && unset XDG_UTILS_DEBUG_LEVEL;
+if [ ${XDG_UTILS_DEBUG_LEVEL-0} -lt 1 ]; then
+ # Be silent
+ xdg_redirect_output=" > /dev/null 2> /dev/null"
+else
+ # All output to stderr
+ xdg_redirect_output=" >&2"
+fi
+
+#--------------------------------------
+# Checks for known desktop environments
+# set variable DE to the desktop environments name, lowercase
+
+detectDE()
+{
+ # see https://bugs.freedesktop.org/show_bug.cgi?id=34164
+ unset GREP_OPTIONS
+
+ if [ -n "${XDG_CURRENT_DESKTOP}" ]; then
+ case "${XDG_CURRENT_DESKTOP}" in
+ # only recently added to menu-spec, pre-spec X- still in use
+ Cinnamon|X-Cinnamon)
+ DE=cinnamon;
+ ;;
+ ENLIGHTENMENT)
+ DE=enlightenment;
+ ;;
+ # GNOME, GNOME-Classic:GNOME, or GNOME-Flashback:GNOME
+ GNOME*)
+ DE=gnome;
+ ;;
+ KDE)
+ DE=kde;
+ ;;
+ LXDE)
+ DE=lxde;
+ ;;
+ MATE)
+ DE=mate;
+ ;;
+ XFCE)
+ DE=xfce
+ ;;
+ X-Generic)
+ DE=generic
+ ;;
+ esac
+ fi
+
+ if [ x"$DE" = x"" ]; then
+ # classic fallbacks
+ if [ x"$KDE_FULL_SESSION" != x"" ]; then DE=kde;
+ elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;
+ elif [ x"$MATE_DESKTOP_SESSION_ID" != x"" ]; then DE=mate;
+ elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome;
+ elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;
+ elif xprop -root 2> /dev/null | grep -i '^xfce_desktop_window' >/dev/null 2>&1; then DE=xfce
+ elif echo $DESKTOP | grep -q '^Enlightenment'; then DE=enlightenment;
+ fi
+ fi
+
+ if [ x"$DE" = x"" ]; then
+ # fallback to checking $DESKTOP_SESSION
+ case "$DESKTOP_SESSION" in
+ gnome)
+ DE=gnome;
+ ;;
+ LXDE|Lubuntu)
+ DE=lxde;
+ ;;
+ MATE)
+ DE=mate;
+ ;;
+ xfce|xfce4|'Xfce Session')
+ DE=xfce;
+ ;;
+ esac
+ fi
+
+ if [ x"$DE" = x"" ]; then
+ # fallback to uname output for other platforms
+ case "$(uname 2>/dev/null)" in
+ CYGWIN*)
+ DE=cygwin;
+ ;;
+ Darwin)
+ DE=darwin;
+ ;;
+ esac
+ fi
+
+ if [ x"$DE" = x"gnome" ]; then
+ # gnome-default-applications-properties is only available in GNOME 2.x
+ # but not in GNOME 3.x
+ which gnome-default-applications-properties > /dev/null 2>&1 || DE="gnome3"
+ fi
+}
+
+#----------------------------------------------------------------------------
+# kfmclient exec/openURL can give bogus exit value in KDE <= 3.5.4
+# It also always returns 1 in KDE 3.4 and earlier
+# Simply return 0 in such case
+
+kfmclient_fix_exit_code()
+{
+ version=`LC_ALL=C.UTF-8 kde-config --version 2>/dev/null | grep '^KDE'`
+ major=`echo $version | sed 's/KDE.*: \([0-9]\).*/\1/'`
+ minor=`echo $version | sed 's/KDE.*: [0-9]*\.\([0-9]\).*/\1/'`
+ release=`echo $version | sed 's/KDE.*: [0-9]*\.[0-9]*\.\([0-9]\).*/\1/'`
+ test "$major" -gt 3 && return $1
+ test "$minor" -gt 5 && return $1
+ test "$release" -gt 4 && return $1
+ return 0
+}
+
+#----------------------------------------------------------------------------
+# Returns true if there is a graphical display attached.
+
+has_display()
+{
+ if [ -n "$DISPLAY" ] || [ -n "$WAYLAND_DISPLAY" ]; then
+ return 0
+ else
+ return 1
+ fi
+}
+
+# This handles backslashes but not quote marks.
+last_word()
+{
+ read first rest
+ echo "$rest"
+}
+
+# Get the value of a key in a desktop file's Desktop Entry group.
+# Example: Use get_key foo.desktop Exec
+# to get the values of the Exec= key for the Desktop Entry group.
+get_key()
+{
+ local file="${1}"
+ local key="${2}"
+ local desktop_entry=""
+
+ IFS_="${IFS}"
+ IFS=""
+ while read line
+ do
+ case "$line" in
+ "[Desktop Entry]")
+ desktop_entry="y"
+ ;;
+ # Reset match flag for other groups
+ "["*)
+ desktop_entry=""
+ ;;
+ "${key}="*)
+ # Only match Desktop Entry group
+ if [ -n "${desktop_entry}" ]
+ then
+ echo "${line}" | cut -d= -f 2-
+ fi
+ esac
+ done < "${file}"
+ IFS="${IFS_}"
+}
+
+# Returns true if argument is a file:// URL or path
+is_file_url_or_path()
+{
+ if echo "$1" | grep -q '^file://' \
+ || ! echo "$1" | egrep -q '^[[:alpha:]+\.\-]+:'; then
+ return 0
+ else
+ return 1
+ fi
+}
+
+# If argument is a file URL, convert it to a (percent-decoded) path.
+# If not, leave it as it is.
+file_url_to_path()
+{
+ local file="$1"
+ if echo "$file" | grep -q '^file:///'; then
+ file=${file#file://}
+ file=${file%%#*}
+ file=$(echo "$file" | sed -r 's/\?.*$//')
+ local printf=printf
+ if [ -x /usr/bin/printf ]; then
+ printf=/usr/bin/printf
+ fi
+ file=$($printf "$(echo "$file" | sed -e 's@%\([a-f0-9A-F]\{2\}\)@\\x\1@g')")
+ fi
+ echo "$file"
+}
+
+open_cygwin()
+{
+ cygstart "$1"
+
+ if [ $? -eq 0 ]; then
+ exit_success
+ else
+ exit_failure_operation_failed
+ fi
+}
+
+open_darwin()
+{
+ open "$1"
+
+ if [ $? -eq 0 ]; then
+ exit_success
+ else
+ exit_failure_operation_failed
+ fi
+}
+
+open_kde()
+{
+ if [ -n "${KDE_SESSION_VERSION}" ]; then
+ case "${KDE_SESSION_VERSION}" in
+ 4)
+ kde-open "$1"
+ ;;
+ 5)
+ kde-open${KDE_SESSION_VERSION} "$1"
+ ;;
+ esac
+ else
+ kfmclient exec "$1"
+ kfmclient_fix_exit_code $?
+ fi
+
+ if [ $? -eq 0 ]; then
+ exit_success
+ else
+ exit_failure_operation_failed
+ fi
+}
+
+open_gnome3()
+{
+ if gvfs-open --help 2>/dev/null 1>&2; then
+ gvfs-open "$1"
+ else
+ open_generic "$1"
+ fi
+
+ if [ $? -eq 0 ]; then
+ exit_success
+ else
+ exit_failure_operation_failed
+ fi
+}
+
+open_gnome()
+{
+ if gvfs-open --help 2>/dev/null 1>&2; then
+ gvfs-open "$1"
+ elif gnome-open --help 2>/dev/null 1>&2; then
+ gnome-open "$1"
+ else
+ open_generic "$1"
+ fi
+
+ if [ $? -eq 0 ]; then
+ exit_success
+ else
+ exit_failure_operation_failed
+ fi
+}
+
+open_mate()
+{
+ if gvfs-open --help 2>/dev/null 1>&2; then
+ gvfs-open "$1"
+ elif mate-open --help 2>/dev/null 1>&2; then
+ mate-open "$1"
+ else
+ open_generic "$1"
+ fi
+
+ if [ $? -eq 0 ]; then
+ exit_success
+ else
+ exit_failure_operation_failed
+ fi
+}
+
+open_xfce()
+{
+ if exo-open --help 2>/dev/null 1>&2; then
+ exo-open "$1"
+ elif gvfs-open --help 2>/dev/null 1>&2; then
+ gvfs-open "$1"
+ else
+ open_generic "$1"
+ fi
+
+ if [ $? -eq 0 ]; then
+ exit_success
+ else
+ exit_failure_operation_failed
+ fi
+}
+
+open_enlightenment()
+{
+ if enlightenment_open --help 2>/dev/null 1>&2; then
+ enlightenment_open "$1"
+ else
+ open_generic "$1"
+ fi
+
+ if [ $? -eq 0 ]; then
+ exit_success
+ else
+ exit_failure_operation_failed
+ fi
+}
+
+#-----------------------------------------
+# Recursively search .desktop file
+
+search_desktop_file()
+{
+ local default="$1"
+ local dir="$2"
+ local target="$3"
+
+ local file=""
+ # look for both vendor-app.desktop, vendor/app.desktop
+ if [ -r "$dir/$default" ]; then
+ file="$dir/$default"
+ elif [ -r "$dir/`echo $default | sed -e 's|-|/|'`" ]; then
+ file="$dir/`echo $default | sed -e 's|-|/|'`"
+ fi
+
+ if [ -r "$file" ] ; then
+ command="$(get_key "${file}" "Exec" | first_word)"
+ command_exec=`which $command 2>/dev/null`
+ icon="$(get_key "${file}" "Icon")"
+ # FIXME: Actually LC_MESSAGES should be used as described in
+ # http://standards.freedesktop.org/desktop-entry-spec/latest/ar01s04.html
+ localised_name="$(get_key "${file}" "Name")"
+ set -- $(get_key "${file}" "Exec" | last_word)
+ # We need to replace any occurrence of "%f", "%F" and
+ # the like by the target file. We examine each
+ # argument and append the modified argument to the
+ # end then shift.
+ local args=$#
+ local replaced=0
+ while [ $args -gt 0 ]; do
+ case $1 in
+ %[c])
+ replaced=1
+ arg="${localised_name}"
+ shift
+ set -- "$@" "$arg"
+ ;;
+ %[fFuU])
+ replaced=1
+ arg="$target"
+ shift
+ set -- "$@" "$arg"
+ ;;
+ %[i])
+ replaced=1
+ shift
+ set -- "$@" "--icon" "$icon"
+ ;;
+ *)
+ arg="$1"
+ shift
+ set -- "$@" "$arg"
+ ;;
+ esac
+ args=$(( $args - 1 ))
+ done
+ [ $replaced -eq 1 ] || set -- "$@" "$target"
+ "$command_exec" "$@"
+
+ if [ $? -eq 0 ]; then
+ exit_success
+ fi
+ fi
+
+ for d in $dir/*/; do
+ [ -d "$d" ] && search_desktop_file "$default" "$d" "$target"
+ done
+}
+
+
+open_generic_xdg_mime()
+{
+ filetype="$2"
+ default=`xdg-mime query default "$filetype"`
+ if [ -n "$default" ] ; then
+ xdg_user_dir="$XDG_DATA_HOME"
+ [ -n "$xdg_user_dir" ] || xdg_user_dir="$HOME/.local/share"
+
+ xdg_system_dirs="$XDG_DATA_DIRS"
+ [ -n "$xdg_system_dirs" ] || xdg_system_dirs=/usr/local/share/:/usr/share/
+
+DEBUG 3 "$xdg_user_dir:$xdg_system_dirs"
+ for x in `echo "$xdg_user_dir:$xdg_system_dirs" | sed 's/:/ /g'`; do
+ search_desktop_file "$default" "$x/applications/" "$1"
+ done
+ fi
+}
+
+open_generic_xdg_file_mime()
+{
+ filetype=`xdg-mime query filetype "$1" | sed "s/;.*//"`
+ open_generic_xdg_mime "$1" "$filetype"
+}
+
+open_generic_xdg_x_scheme_handler()
+{
+ scheme="`echo $1 | sed -n 's/\(^[[:alnum:]+\.-]*\):.*$/\1/p'`"
+ if [ -n $scheme ]; then
+ filetype="x-scheme-handler/$scheme"
+ open_generic_xdg_mime "$1" "$filetype"
+ fi
+}
+
+open_envvar()
+{
+ local oldifs="$IFS"
+ local browser browser_with_arg
+
+ IFS=":"
+ for browser in $BROWSER; do
+ IFS="$oldifs"
+
+ if [ -z "$browser" ]; then
+ continue
+ fi
+
+ if echo "$browser" | grep -q %s; then
+ $(printf "$browser" "$1")
+ else
+ $browser "$1"
+ fi
+
+ if [ $? -eq 0 ]; then
+ exit_success
+ fi
+ done
+}
+
+open_generic()
+{
+ if is_file_url_or_path "$1"; then
+ local file="$(file_url_to_path "$1")"
+
+ check_input_file "$file"
+
+ if has_display; then
+ filetype=`xdg-mime query filetype "$file" | sed "s/;.*//"`
+ open_generic_xdg_mime "$file" "$filetype"
+ fi
+
+ if which run-mailcap 2>/dev/null 1>&2; then
+ run-mailcap --action=view "$file"
+ if [ $? -eq 0 ]; then
+ exit_success
+ fi
+ fi
+
+ if has_display && mimeopen -v 2>/dev/null 1>&2; then
+ mimeopen -L -n "$file"
+ if [ $? -eq 0 ]; then
+ exit_success
+ fi
+ fi
+ fi
+
+ if [ -n "$BROWSER" ]; then
+ open_envvar "$1"
+ fi
+
+ if has_display; then
+ open_generic_xdg_x_scheme_handler "$1"
+ fi
+
+ # if BROWSER variable is not set, check some well known browsers instead
+ if [ x"$BROWSER" = x"" ]; then
+ BROWSER=www-browser:links2:elinks:links:lynx:w3m
+ if has_display; then
+ BROWSER=x-www-browser:firefox:iceweasel:seamonkey:mozilla:epiphany:konqueror:chromium-browser:google-chrome:$BROWSER
+ fi
+ fi
+
+ open_envvar "$1"
+
+ exit_failure_operation_impossible "no method available for opening '$1'"
+}
+
+open_lxde()
+{
+ # pcmanfm only knows how to handle file:// urls and filepaths, it seems.
+ if is_file_url_or_path "$1"; then
+ local file="$(file_url_to_path "$1")"
+
+ # handle relative paths
+ if ! echo "$file" | grep -q ^/; then
+ file="$(pwd)/$file"
+ fi
+
+ pcmanfm "$file"
+ else
+ open_generic "$1"
+ fi
+
+ if [ $? -eq 0 ]; then
+ exit_success
+ else
+ exit_failure_operation_failed
+ fi
+}
+
+[ x"$1" != x"" ] || exit_failure_syntax
+
+url=
+while [ $# -gt 0 ] ; do
+ parm="$1"
+ shift
+
+ case "$parm" in
+ -*)
+ exit_failure_syntax "unexpected option '$parm'"
+ ;;
+
+ *)
+ if [ -n "$url" ] ; then
+ exit_failure_syntax "unexpected argument '$parm'"
+ fi
+ url="$parm"
+ ;;
+ esac
+done
+
+if [ -z "${url}" ] ; then
+ exit_failure_syntax "file or URL argument missing"
+fi
+
+detectDE
+
+if [ x"$DE" = x"" ]; then
+ DE=generic
+fi
+
+DEBUG 2 "Selected DE $DE"
+
+# sanitize BROWSER (avoid caling ourselves in particular)
+case "${BROWSER}" in
+ *:"xdg-open"|"xdg-open":*)
+ BROWSER=$(echo $BROWSER | sed -e 's|:xdg-open||g' -e 's|xdg-open:||g')
+ ;;
+ "xdg-open")
+ BROWSER=
+ ;;
+esac
+
+case "$DE" in
+ kde)
+ open_kde "$url"
+ ;;
+
+ gnome3|cinnamon)
+ open_gnome3 "$url"
+ ;;
+
+ gnome)
+ open_gnome "$url"
+ ;;
+
+ mate)
+ open_mate "$url"
+ ;;
+
+ xfce)
+ open_xfce "$url"
+ ;;
+
+ lxde)
+ open_lxde "$url"
+ ;;
+
+ enlightenment)
+ open_enlightenment "$url"
+ ;;
+
+ cygwin)
+ open_cygwin "$url"
+ ;;
+
+ darwin)
+ open_darwin "$url"
+ ;;
+
+ generic)
+ open_generic "$url"
+ ;;
+
+ *)
+ exit_failure_operation_impossible "no method available for opening '$url'"
+ ;;
+esac
diff --git a/app/lib/xtrkcad.xtq b/app/lib/xtrkcad.xtq
index 7b661e6..f36860e 100644
--- a/app/lib/xtrkcad.xtq
+++ b/app/lib/xtrkcad.xtq
@@ -94,6 +94,10 @@ SCALE On18, 48.0, 0.3543
1536,24,960
2016,30,1200
2592,36,1440
+SCALE P48, 48.0, 1.177
+ 1536,24,960
+ 2016,30,1200
+ 2592,36,1440
SCALE O(Fine), 43.5, 1.2598
1536,24,960
2016,30,1200
@@ -154,6 +158,10 @@ SCALE 1, 32.0, 1.77
1536,24,960
2016,30,1200
2592,36,1440
+SCALE 1/32, 32.0, 1.77
+ 1536,24,960
+ 2016,30,1200
+ 2592,36,1440
SCALE G, 22.5, 1.77
1536,24,960
2016,30,1200
@@ -166,6 +174,14 @@ SCALE Gn3, 20.0, 1.77
1536,24,960
2016,30,1200
2592,36,1440
+SCALE F, 20.32, 2.78
+ 1536,24,960
+ 2016,30,1200
+ 2592,36,1440
+SCALE LEGO, 24, 1.48
+ 1536,24,960
+ 2016,30,1200
+ 2592,36,1440
SCALE 8, 8, 7.5
1536,24,960
2016,30,1200
diff --git a/app/tools/CMakeLists.txt b/app/tools/CMakeLists.txt
index e6716f0..befe170 100644
--- a/app/tools/CMakeLists.txt
+++ b/app/tools/CMakeLists.txt
@@ -1,18 +1,15 @@
-ADD_EXECUTABLE(addcrlf addcrlf.c)
-ADD_EXECUTABLE(bin2c bin2c.c)
+set ( sources listxtp.c )
-SET ( SOURCES listxtp.c )
-
-IF (WIN32)
- SET ( SOURCES
- ${SOURCES}
+if (WIN32)
+ set ( sources
+ ${sources}
dirent.c)
- INCLUDE_DIRECTORIES( BEFORE ${CMAKE_CURRENT_SOURCE_DIR})
-ENDIF (WIN32)
+ include_directories( before ${CMAKE_CURRENT_SOURCE_DIR})
+endif ()
-ADD_EXECUTABLE( listxtp ${SOURCES})
+add_executable( listxtp ${sources})
-ADD_SUBDIRECTORY(halibut)
+add_subdirectory(halibut)
diff --git a/app/tools/addcrlf.c b/app/tools/addcrlf.c
deleted file mode 100644
index d36310e..0000000
--- a/app/tools/addcrlf.c
+++ /dev/null
@@ -1,242 +0,0 @@
-/**
- * \file addcrlf.c Convert text between DOS, UNIX and MAC
- *
- * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/tools/addcrlf.c,v 1.7 2007-02-13 19:46:25 m_fischer Exp $
- *
- * This is heavily based on flip by Craig Stuart Sapp <craig@ccrma.stanford.edu>
- * Web Address: http://www-ccrma.stanford.edu/~craig/utility/flip/flip.cpp
- */
-
-/* XTrkCad - Model Railroad CAD
- * Copyright (C) Marin Fischer 2006
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-
-void exitUsage( char *cmd );
-void translateToDos( char *infile, char *outfile );
-void translateToUnix(char* infilename, char *outfilename);
-void determineType(char* filename);
-
-int
-main( int argc, char ** argv)
-{
- char option;
-
- if( argc < 2 )
- exitUsage(argv[0]);
-
- if( argv[1][0] != '-' &&argv[1][0] != '/' )
- exitUsage(argv[0]);
-
- option = argv[1][1];
-
- if (!(option == 'u' || option == 'd' || option == 't' || option =='h' )) {
- exitUsage(argv[0]);
- }
-
- if( !((option == 't' && argc == 3)||(option !='t' && argc==4)||( option =='h' ))) {
- exitUsage(argv[0]);
- }
- switch( option )
- {
- case 'd':
- translateToDos(argv[2], argv[3]);
- break;
- case 'u':
- translateToUnix(argv[2], argv[3]);
- break;
- case 'm':
-/* translateToMacintosh(argv[i+2]); */
- break;
- case 'h':
- exitUsage(argv[0]);
- break;
- default:
- determineType(argv[2]);
- break;
- }
- return 0;
-}
-
-
-
-void
-translateToDos(char* infilename, char *outfilename)
-{
- FILE *in, *out;
- char ch, lastch;
- int peekch;
-
- in = fopen( infilename, "rb" );
- if (!in) {
- printf( "Error: cannot find file: %s\n", infilename );
- return;
- }
-
- out = fopen( outfilename, "wb" );
- if (!out) {
- printf( "Error: cannot open file: %s\n", outfilename );
- return;
- }
-
- ch = getc( in );
- lastch = ch;
-
- while( !feof( in ))
- {
- if (ch == 0x0a && lastch != 0x0d) {
- // convert newline from Unix to MS-DOS
- putc( (char)0x0d, out );
- putc( ch, out );
- lastch = ch;
- } else {
- if (ch == 0x0d) { // convert newline from Mac to MS-DOS
- peekch = getc( in ); // lookahead for following character
- ungetc( peekch, in );
-
- if (peekch != 0x0a) {
- putc( ch, out );
- putc( (char)0x0a, out );
- lastch = 0x0a;
- } else {
- lastch = 0x0d;
- // Bug fix here reported by Shelley Adams: running -d
- // twice in a row was generating Unix style newlines
- // without the following statement:
- putc( 0x0d, out );
- }
-
- } else {
- putc( ch, out );
- lastch = ch;
- }
- }
- ch = getc( in );
- }
-
- fclose( in );
- fclose( out );
-}
-
-void
-translateToUnix(char* infilename, char *outfilename)
-{
- FILE *in, *out;
- char ch, lastch;
-
- in = fopen( infilename, "rb" );
- if (!in) {
- printf( "Error: cannot find file: %s\n", infilename );
- return;
- }
-
- out = fopen( outfilename, "wb" );
- if (!out) {
- printf( "Error: cannot open file: %s\n", outfilename );
- return;
- }
-
- ch = getc( in );
- lastch = ch;
-
- while( !feof( in ))
- {
- if (ch == 0x0d) {
- putc( (char)0x0a, out );
- } else {
- if (ch == 0x0a) {
- if (lastch == 0x0d) {
- // do nothing: already converted MSDOS newline to Unix form
- } else {
- putc( (char)0x0a, out );
- }
- } else {
- putc( ch, out );
- }
- }
- lastch = ch;
- ch = getc( in );
- }
-
- fclose( in );
- fclose( out );
-}
-
-void
-determineType(char* filename)
-{
- FILE *in;
- int ch;
- int crcount = 0;
- int lfcount = 0;
-
- in = fopen( filename, "rb" );
- if (!in) {
- printf( "Error: cannot find file: %s\n", filename );
- return;
- }
-
- ch = getc( in );
- if( ch == EOF ) {
- printf( "Error: file could not be read: %s\n", filename );
- return;
- }
-
- while( !feof( in ))
- {
- if (ch == 0x0d) {
- crcount ++;
- } else {
- if (ch == 0x0a) {
- lfcount++;
- }
- }
- ch = getc( in );
- }
-
- fclose( in );
-
- if ((lfcount == crcount) && (crcount != 0)) {
- printf("%s : DOS\n", filename );
- } else if ((lfcount > 0) && (crcount == 0)) {
- printf("%s : UNIX\n", filename );
- } else if ((lfcount == 0) && (crcount > 0)) {
- printf("%s : MAC\n", filename );
- } else if ((lfcount > 0) && (crcount > 0)) {
- printf("%s : MIXED\n", filename );
- } else {
- printf("%s : UNKNOWN\n", filename );
- }
-}
-
-void
-exitUsage( char* commandName )
-{
- printf( "\nUsage: %s [-h] | [-t infile] | [[-u|-d|-m] infile outfile]\n"
- " Converts an ASCII file between Unix, MS-DOS/Windows, or Macintosh newline formats\n\n"
- " Options: \n"
- " -u = convert file to Unix newline format (newline)\n"
- " -d = convert file to MS-DOS/Windows newline format (linefeed + newline)\n"
- " -m = convert file to Macintosh newline format (linefeed)\n"
- " -t = display current file type, no file modifications\n"
- " -h = show this help\n",
- commandName );
-
- exit(1);
-}
diff --git a/app/tools/bin2c.c b/app/tools/bin2c.c
deleted file mode 100644
index bb619dc..0000000
--- a/app/tools/bin2c.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
-BIN2C V1.0 CODED BY CHRISTIAN PADOVANO ON 17-MAY-1995
-this little utility translates a binary file in a useful C structure
-that can be included in a C source.
-to contact me write to EMAIL: [[Email Removed]]
-*/
-
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <ctype.h>
-
-#define BUF_LEN 1024
-#define LINE 12
-
-/* Tell u the file size in bytes */
-
-long int filesize( FILE *fp )
-{
- long int save_pos, size_of_file;
-
- save_pos = ftell( fp );
- fseek( fp,0L, SEEK_END );
- size_of_file = ftell( fp );
- fseek( fp, save_pos, SEEK_SET );
- return( size_of_file );
-}
-
-
-/* lower chars --> upper chars */
-
-void Upper_chars(char *buffer)
-{
- unsigned int c;
-
- for (c=0; c <= strlen(buffer)-1; c++)
- *(buffer+c)=toupper( *( buffer+c) );
-}
-
-
-int main( int argc, char **argv )
-{
- FILE *source,*dest;
- char Dummy[BUF_LEN];
- int buffer;
- int c;
-
- if ( (argc < 4) )
- {
-
- if ( ( argc == 2 ) && ( strcmp(argv[1],"-h")==0 ) )
- {
- puts(" - <<< BIN2C V1.0 >>> by Christian Padovano - \n");
- puts("USAGE: bin2C <BINARY file name> <TARGET file name> <STRUCT name>");
- puts("\n <STRUCT > = name of the C structure in the destination file name.\n");
- puts(" <TARGET > = without extension '.h' it will be added by program.");
- return EXIT_SUCCESS;
- }
- else
- {
- puts("Bad arguments !!! You must give me all the parameters !!!!\n"
- "Type 'bin2c -h' to read the help !!!! ");
- return EXIT_SUCCESS;
- }
-
- }
-
- if( (source=fopen( argv[1], "rb" )) == NULL )
- {
- printf("ERROR : I can't find source file %s\n",argv[1]);
- return EXIT_FAILURE;
- }
-
- strcpy(Dummy,argv[2]);
- strcat(Dummy,".h"); /* add suffix .h to target name */
-
- if( (dest=fopen( Dummy, "wb+" )) == NULL )
- {
- printf("ERROR : I can't open destination file %s\n",Dummy);
- return EXIT_FAILURE;
- }
-
-
- strcpy(Dummy,argv[3]);
- Upper_chars(Dummy); /* lower to upper chars */
- strcat(Dummy,"_LEN"); /* add the suffix _LEN to the struct name */
- /* for the #define stantment */
-
-
- /* It writes the header information */
- fprintf( dest, "\n#define %s %ld\n\n", Dummy, filesize(source) );
- fprintf( dest, "static unsigned char %s[] = {\n ", argv[3] );
-
- if( ferror( dest ))
- {
- printf( "ERROR writing on target file: %s\n",argv[2] );
- return EXIT_FAILURE;
- }
-
-
- c = 0;
- buffer = fgetc( source );
-
- while( buffer != EOF )
- {
- fprintf(dest,"0x%02x", buffer);
-
- buffer = fgetc( source );
- if( !feof(source))
- fputc(',', dest);
-
- c++;
- if(c == LINE ) {
- fprintf(dest,"\n ");
- c = 0;
- }
-
- }
-
- fprintf(dest,"\n};\n\n");
-
- return EXIT_SUCCESS;
-}
-
-
diff --git a/app/tools/halibut/bk_html.c b/app/tools/halibut/bk_html.c
index 4f7c49b..b01d035 100644
--- a/app/tools/halibut/bk_html.c
+++ b/app/tools/halibut/bk_html.c
@@ -2222,6 +2222,8 @@ static void html_words(htmloutput *ho, word *words, int flags,
element_open(ho, "a");
c = utoa_dup(w->text, CS_ASCII);
element_attr(ho, "href", c);
+ if(!strncmp(c, "http://", strlen("http://")) || !strncmp(c, "https://", strlen("https://")))
+ element_attr(ho, "target", "_blank");
sfree(c);
}
break;
diff --git a/app/tools/listxtp.c b/app/tools/listxtp.c
index 384c0d5..35d0daa 100644
--- a/app/tools/listxtp.c
+++ b/app/tools/listxtp.c
@@ -31,6 +31,7 @@
#define TRUE 1
#define FALSE 0
+#define MAX_FILES 500
#ifdef _WIN32
#define WIKIFORMATOPTION "/w"
#pragma warning( disable : 4996 )
@@ -70,7 +71,7 @@ main( int argc, char **argv )
struct stat buf;
char filename[ 256 ];
char path[ 256 ];
- char *results[100];
+ char *results[MAX_FILES];
int cnt = 0;
int i;
int bWiki = FALSE;
@@ -115,7 +116,7 @@ main( int argc, char **argv )
/*
* get all files from the directory
*/
- while( ent = readdir( d ))
+ while((ent = readdir(d)))
{
/*
* create full file name and get the state for that file
@@ -152,7 +153,7 @@ main( int argc, char **argv )
results[ cnt ] = malloc( strlen( buffer ) + 1 );
strcpy( results[ cnt ], buffer );
cnt++;
- if( cnt == 100 ) {
+ if( cnt == MAX_FILES ) {
fprintf( stderr, "Error: too many files\n" );
exit( 1 );
}
diff --git a/app/tools/oldscripts/README b/app/tools/oldscripts/README
deleted file mode 100644
index a9ee346..0000000
--- a/app/tools/oldscripts/README
+++ /dev/null
@@ -1,4 +0,0 @@
-Not all of these scripts are fully tested. Use at your own risk.
-
-
-JBB
diff --git a/app/tools/oldscripts/checkall b/app/tools/oldscripts/checkall
deleted file mode 100644
index 51e6861..0000000
--- a/app/tools/oldscripts/checkall
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-cd ~/xtrkcad/src
-for d in bin help lib lib/params lib/demos lib/examples tools ; do
- rlog -R -L $d/RCS/*,v
-done
-cd ~/wlib/src
-for d in include mswlib test gtklib ; do
- rlog -R -L $d/RCS/*,v
-done
-
diff --git a/app/tools/oldscripts/diffall b/app/tools/oldscripts/diffall
deleted file mode 100644
index 0dd6695..0000000
--- a/app/tools/oldscripts/diffall
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/sh
-if [ $# -lt 1 ] ; then
- echo "Usage: checkall <RLSE> [<home>]"
- exit 1
-fi
-RLSE=$1
-HOMEDIR=$HOME
-if [ $# -eq 2 ] ; then
- HOMEDIR=$2
-fi
-cd ${HOMEDIR}/xtrkcad/$RLSE
-for d in bin help lib lib/params lib/demos lib/examples tools ; do
- echo === $d
- ( cd $d
- for f in `make rcssrc` ; do
- if rcsdiff -q -r$RLSE -r1. $f > /dev/null ; then
- true
- else
- echo $d/$f diffs
- fi
- done
- )
-done
-cd ${HOMEDIR}/wlib/$RLSE
-for d in include mswlib test gtklib ; do
- echo === $d
- ( cd $d
- for f in `make rcssrc` ; do
- if rcsdiff -q -r$RLSE -r1. $f > /dev/null ; then
- true
- else
- echo $d/$f diffs
- fi
- done
- )
-done
-
diff --git a/app/tools/oldscripts/fetchall b/app/tools/oldscripts/fetchall
deleted file mode 100644
index 5a88f73..0000000
--- a/app/tools/oldscripts/fetchall
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/bin/sh
-
-fetchdir() {
- echo fetching $1
- mkdir $1
- ( cd $1; ln -s ../$2/src/$1/RCS . ; co -r$RLSE Makefile ; co -r$RLSE `make rcssrc` )
-}
-
-if [ $# -lt 1 ] ; then
- echo fetchall RLSE
- exit 1
-fi
-RLSE=$1
-if [ -d ~/xtrkcad/$RLSE ] ; then
- echo ~/xtrkcad/$RLSE exists
- exit 1
-fi
-if [ -d ~/wlib/$RLSE ] ; then
- echo ~/wlib/$RLSE exists
- exit 1
-fi
-
-mkdir ~/xtrkcad/$RLSE
-cd ~/xtrkcad/$RLSE
-fetchdir bin ..
-fetchdir help ..
-fetchdir lib ..
-fetchdir lib/demos ../..
-fetchdir lib/examples ../..
-fetchdir lib/params ../..
-fetchdir tools ..
-mkdir ~/wlib/$RLSE
-cd ~/wlib/$RLSE
-fetchdir include ..
-fetchdir mswlib ..
-fetchdir test ..
-fetchdir gtklib ..
-
-mkdir ~/xtrkcad/$RLSE/help/images.orig
-cp ~/xtrkcad/dev/help/images.orig/*.png ~/xtrkcad/$RLSE/help/images.orig
-cp ~/xtrkcad/dev/bin/xtrkcad.ico ~/xtrkcad/$RLSE/bin/
-cp ~/xtrkcad/dev/lib/register.* ~/xtrkcad/$RLSE/lib/
-chmod 444 ~/xtrkcad/$RLSE/lib/register.*
-cp ~/wlib/dev/test/wtest.ico ~/wlib/$RLSE/test/
-ln -s ~/wlib/$RLSE ~/xtrkcad/$RLSE/bin/wlib
-
diff --git a/app/tools/oldscripts/makeall b/app/tools/oldscripts/makeall
deleted file mode 100644
index 896cb41..0000000
--- a/app/tools/oldscripts/makeall
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/sh
-
-if [ $# -lt 1 ] ; then
- echo mkrlse RLSE
- exit 1
-fi
-RLSE=$1
-if [ \! -d ~/xtrkcad/$RLSE ] ; then
- echo ~/xtrkcad/$RLSE does not exist
- exit 1
-fi
-
- cd ~/wlib/$RLSE/gtklib && \
- make update && \
- cd ~/xtrkcad/$RLSE/help && \
- make pngs && \
- make && \
- cd ../lib/params && \
- make && \
- cd .. && \
- make && \
- cd ../bin && \
- make update
diff --git a/app/tools/oldscripts/markall b/app/tools/oldscripts/markall
deleted file mode 100644
index ae41d71..0000000
--- a/app/tools/oldscripts/markall
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-if [ $# -lt 1 ] ; then
- echo "markall TAG"
- exit 1
-fi
-TAG=$1
-cd ~/xtrkcad/src
-for d in bin help lib lib/params lib/demos lib/examples tools ; do
- echo xtrkcad/src/$d:
- (cd $d ; co Makefile ; rcs -N$TAG:1. `make rcssrc`)
-done
-cd ~/wlib/src
-for d in include mswlib test gtklib ; do
- echo wlib/src/$d
- (cd $d ; co Makefile ; rcs -N$TAG:1. `make rcssrc`)
-done
-
diff --git a/app/tools/oldscripts/mkwinrlse b/app/tools/oldscripts/mkwinrlse
deleted file mode 100644
index 15358f5..0000000
--- a/app/tools/oldscripts/mkwinrlse
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/sh
-
-rm -fr mswrel
-if [ -d mswrel ] ; then
- echo ./mswrel already exists
- exit 1
-fi
-
-mkdir mswrel
-mkdir mswrel/demos
-mkdir mswrel/examples
-mkdir mswrel/params
-echo lib/demos
-(cd lib/demos; for f in *.xtr ; do addcr < $f > ../../mswrel/demos/$f ; done )
-echo lib/examples
-(cd lib/examples; for f in *.xtc ; do addcr < "$f" > ../../mswrel/examples/"$f" ; done )
-echo lib/params
-(cd lib/params; for f in *.xtp ; do addcr < $f > ../../mswrel/params/$f ; done )
-echo lib
-cp bin/Release/xtrkcad.exe mswrel
-echo release
-cp bin/Debug/xtrkcad.exe mswrel/xtrkcadd.exe
-echo debug
-addcr < COPYING > mswrel/license.txt
-echo license
-addcr < lib/aareadme.txt > mswrel/aareadme.txt
-addcr < lib/xtrkcad.bug > mswrel/xtrkcad.bug
-addcr < lib/xtrkcad.enh > mswrel/xtrkcad.enh
-addcr < lib/xtrkcad.fix > mswrel/xtrkcad.fix
-addcr < lib/xtrkcad.upd > mswrel/xtrkcad.upd
-addcr < help/xtrkcad.tip > mswrel/xtrkcad.tip
-addcr < lib/xtrkcad.xtq > mswrel/xtrkcad.xtq
-chmod -w -R mswrel
-chmod +w mswrel mswrel/demos mswrel/examples mswrel/params
diff --git a/app/tools/oldscripts/roall b/app/tools/oldscripts/roall
deleted file mode 100644
index 28f156b..0000000
--- a/app/tools/oldscripts/roall
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-if [ $# != 1 ] ; then
- echo "Usage: roall <RLSE>"
- exit 1
-fi
-cd ~/xtrkcad/$1
-for d in bin help lib lib/params lib/demos lib/examples tools ; do
- (cd $d; for f in `make rcssrc` ; do
- if [ -w $f ] ; then
- echo $d/$f is writable
- fi
- done)
-done
-cd ~/wlib/$1
-for d in include mswlib test gtklib ; do
- (cd $d;for f in `make rcssrc` ; do
- if [ -w $f ] ; then
- echo $d/$f is writable
- fi
- done)
-done
-
diff --git a/app/wlib/gtklib/CMakeLists.txt b/app/wlib/gtklib/CMakeLists.txt
index a8cae9f..bf20e91 100644
--- a/app/wlib/gtklib/CMakeLists.txt
+++ b/app/wlib/gtklib/CMakeLists.txt
@@ -1,9 +1,7 @@
+# Setup GTK UI library...
+file(GLOB headers *.h)
-FILE(GLOB HEADERS *.h)
-
-INCLUDE (FindGTKUnixPrint.cmake)
-
-SET(SOURCES
+set(sources
bitmap.c
boxes.c
button.c
@@ -25,6 +23,7 @@ SET(SOURCES
print.c
single.c
splash.c
+ statusbar.c
text.c
timer.c
tooltip.c
@@ -32,32 +31,43 @@ SET(SOURCES
util.c
window.c
wpref.c
-# cproto and cppcheck
-
# end of refactored sources
gtkdraw-cairo.c
)
-IF(APPLE)
- SET(SOURCES
- ${SOURCES}
- osxhelp.c)
-
-ELSE(APPLE)
- SET(SOURCES
- ${SOURCES}
- ixhelp.c)
-ENDIF(APPLE)
-
-SET_SOURCE_FILES_PROPERTIES(wpref.c PROPERTIES COMPILE_FLAGS -DEXPORT=)
-
-INCLUDE_DIRECTORIES(${XTrkCAD_BINARY_DIR})
-INCLUDE_DIRECTORIES(${GTK_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES(${GTK_UNIX_PRINT_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES(${GTK_WEBKIT_INCLUDE_DIRS})
-
-ADD_LIBRARY(xtrkcad-wlib ${HEADERS} ${SOURCES})
-TARGET_LINK_LIBRARIES(xtrkcad-wlib ${GTK_LIBRARIES})
-TARGET_LINK_LIBRARIES(xtrkcad-wlib ${GTK_UNIX_PRINT_LIBRARIES})
-TARGET_LINK_LIBRARIES(xtrkcad-wlib ${GTK_WEBKIT_LIBRARIES})
+# help system is OS and build specific, add appropriate source files
+if(APPLE)
+ set(sources
+ ${sources}
+ osxhelp.c)
+else()
+ if(XTRKCAD_USE_BROWSER)
+ set(sources
+ ${sources}
+ browserhelp.c)
+ else()
+ set(sources
+ ${sources}
+ ixhelp.c)
+ endif()
+endif()
+
+include_directories(${XTrkCAD_BINARY_DIR})
+
+add_library(xtrkcad-wlib ${headers} ${sources})
+
+# GTK
+include_directories(${GTK_INCLUDE_DIRS})
+target_link_libraries(xtrkcad-wlib ${GTK_LIBRARIES})
+
+# configure for GTK's native Unix print
+find_package (GTKUnixPrint)
+include_directories(${GTK_UNIX_PRINT_INCLUDE_DIRS})
+target_link_libraries(xtrkcad-wlib ${GTK_UNIX_PRINT_LIBRARIES})
+
+# add dependency to webkit if configured
+if(NOT XTRKCAD_USE_BROWSER)
+ include_directories(${GTK_WEBKIT_INCLUDE_DIRS})
+ target_link_libraries(xtrkcad-wlib ${GTK_WEBKIT_LIBRARIES})
+endif()
diff --git a/app/wlib/gtklib/ChangeLog b/app/wlib/gtklib/ChangeLog
deleted file mode 100644
index ef2bd09..0000000
--- a/app/wlib/gtklib/ChangeLog
+++ /dev/null
@@ -1,250 +0,0 @@
-Apr 28, 2010
- FIX: Daniel Spagnol
- gtkwindow.c, wpref.c: now, wGetAppLibDir can be called before
- wWinMainCreate is called.
-
-Dec 12, 2009
- FIX: Martin Fischer
- gtkint.h, gtkwindow.c: refactoring, remove unused globals and
- added some comments.
-
-Dec 07, 2010
- FIX: Martin Fischer / Robert Heller
- gtkfont.c: use newer Pango functions only after checking for correct
- version at compile time.
-
-Oct 03, 2009
- FIX: Daniel Spagnol
- gtkdraw-cairo.c: linux still crashed due to a cairo context access
- after its drawable destruction
-
-Oct 03, 2009
- FIX: Daniel Spagnol
- gtkbutton.c gtkint.h gtkmenu.c gtkmisc.c: workaround for OSX with
- GTK-Quartz -> pixmaps are not rendered when using the mask;
- and replaced gtk_pixmap_new deprecated function with
- gtk_image_new_from_pixmap
-
-Oct 02, 2009
- FIX: Daniel Spagnol
- gtkdraw-cairo.c: linux crashed due to a cairo context access after its
- drawable destruction
-
-Sep 27, 2009
- FIX: Daniel Spagnol
- gtkbitmap.c: image in about dialog box was not being displayed
-
-Sep 26, 2009
- FIX: Daniel Spagnol
- gtkfont: deallocate PangoFontDescription using the right function
-
-Sep 25, 2009
- FIX: Daniel Spagnol
- gtkbitmap.c: EXC_BAD_ACCESS when displaying about dialog
-
-Sep 25, 2009
- ENH: Daniel Spagnol
- gtkdraw-cairo.c gtkdraw.c gtkfont.c gtkint.h gtksimple.c wlib.h:
- replace the old font select dialog with the GTK standard one, and some
- code cleanup
-
-Sep 23, 2009
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- gtkbitmap.c gtkmisc.c: implement wCreateBitmap
-
-Sep 22, 2009
- FIX: Daniel Spagnol
- gtkdraw-cairo.c: text in layout and selection were not aligned
-
-Sep 22, 2009
- FIX: Daniel Spagnol
- CMakeLists.txt gtkbitmap.c gtkint.h: file created as a workaround to
- get the source compiled under POSIX and OSX after wCreateBitmap
- feature
-
-Aug 12, 2009
- ENH: Matthew Sheets
- wpref.c: initialize with system default config from /etc
-
-Jul 29, 2009
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- wpref.c: Create directory .xtrkcad silently
-
-Jun 24, 2009
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- gtkwindow.c gtkmisc.c gtkint.h wpref.c: add option
- to select configuration file
-
-Version 4.0.3a
-==============
-
-
-Jun 09, 2009
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- gtkdraw.c: Fix compiler warning
-May 31, 2009
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- gtksplash.c: popups during startup are now shown above
- splash screen
-
-May 31, 2009
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- gtkmisc.c: fixed problem with some icons
-
-May 30, 2009
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- gtklist.c: fixed the 'missing scrollbar' bug - finally!
-
-May 29, 2008
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- gtkmisc.c: bug fix in wNoticeEx
-
-May 21, 2009
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- gtkhelp.c: better error message
-
-May 15, 2009
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- gtkwindow.c, gtkmisc.c, psprint.c, gtktext.c
- gtkfilsel.c, gtksingle.c: new message box with icon
-
-Jul 11, 2008
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- gtkwindow.c: closing app can now be canceled by the user
-
-Jul 11, 2008
- ENH: Steve DeCaux
- gtdraw-cairo.c: convert strings to UTF8
-
-Jul 01, 2008
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- gtksplash.c: added #ifdef's for backward compatibility to GTK 2.4
-
-Feb 01. 2008
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- psprint.c, gtkint.h: added file selector for print to file, made
- Postscript digit representation independent of current locale
-
-Jan 28, 2008
- ENH: Mikko Nissinen <mni77@users.sourceforge.net>
- gtkfilsel.c: Gettext support added.
-
-Jan 28, 2008
- FIX: Mikko Nissinen <mni77@users.sourceforge.net>
- gtkwindow.c: Dynamically allocate and form some global translatable
- strings.
-
-Jan 27, 2008
- FIX: Mikko Nissinen <mni77@users.sourceforge.net>
- gtkhelp.c: String XTrkCad changed to XTrackCAD.
-
-Jan, 27, 2008
- FIX: Mikko Nissinen <mni77@users.sourceforge.net>
- gtkwindows.c: fixed problem with missing scroll bars
-
-Jan 24,2008
- IMPROVMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- wpref.c: increase floting point precision when storing floats in rc
- file
-
-Jan 22, 2008
- ENH: Mikko Nissinen <mni77@users.sourceforge.net>
- gtkwindow.c: wExit(): Free user locale before exit.
-
-Jan 21, 2008
- ENH: Gettext support added. Modified files:
- gtkbutton.c
- gtkfont.c
- gtkhelp.c
- gtklist.c
- psprint.c
- wpref.c
-
-Jan 20, 2008
- FIX: Mikko Nissinen <mni77@users.sourceforge.net>
- gtkdraw.c/gtkdraw-cairo.c: wDrawSetSize(): Return immediately,
- if given width or height is negative. Negative values crashed
- the program. This can be seen at least in Add Turnout and Add
- Structure dialogs by resizing the dialog vertically smaller.
-
-Jan 16, 2008
- FIX: Mikko Nissinen <mni77@users.sourceforge.net>
- gtkmisc.c: gtkConvertInput(): If the input string is already
- UTF-8 encoded, then return it untouched.
-
-Jan 15, 2008
- IMPROVEMENT: Mikko Nissinen <mni77@users.sourceforge.net>
- Basic gettext support added.
- CMakeLists.txt
-
-Nov 30, 2007
- FIX: Timothy M. Shead
- gtkfont.c: make sure that font initialization is run first
-
-Nov 29, 2007
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- gtkhelp.c: an existing help window is now brought to the foreground
- if the user selects Help
-
-Nov 12, 2007
- FIX: Mikko Nissinen <mni77@users.sourceforge.net>
- gtksimple.c: wMessageCreateEx -> Reset the pango font size back
- to normal before returning the function. All dialogs created after
- the tip of the day dialog had incorrectly positioned labels,
- because the width of the text was calculated with the large font.
-
-Nov 12, 2007
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- gtkhelp.c: Converted help system to gtkhtml-2. This allows to
- us standard HTML files to be used for help documentation.
-
-Oct 28, 2007
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- gtkmenu.c: Help drop-down is no longer right aligned.
-
-Sep 28, 2007
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- gtksimple.c: wMessageCreate has been extended to
- wMessageCreateEx. New function allows adding flags. Setting
- a large or a small font are first uses. Added a compatibility
- macro wMessageCreate for older code.
-
-Sep 15, 2007
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- gtksplash.c: added splash window for program startup
-
-Jul 24, 2007
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- gtkdraw.c: added support for wheel mouse
-
-Jun 16, 2007
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- wpref.c: added wGetUserHomeDir()
-
-Feb 25, 2007
- BUGFIX: Martin Fischer <m_fischer@users.sourceforge.net>
- wpref.c: Rephrased error message for lib-directory not found
-
-Feb 23, 2007
- BUGFIX: Martin Fischer <m_fischer@users.sourceforge.net>
- gtkfont.c: Typo in window title corrected
-
-Version 4.0.1
-=============
-
-Mar, 30th 2006
- BUGFIX: Martin Fischer <m_fischer@users.sourceforge.net>
- gtkmisc.c: changed wPause to use SYSV signal handling funtions
-
-Mar, 29th 2006
- BUGFIX: Martin Fischer <m_fischer@users.sourceforge.net>
- gtkmisc.c, gtkbutton.c, gtksimple.c: small changes to help Solaris port
-
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- wpref.c: Optimized the checking for directories in wGetAppLibDir and
- rephrased the error message if initialization files cannot be found
-
- BUGFIX: Martin Fischer <m_fischer@users.sourceforge.net>
- gtkwindow.c: Fixed resizing problems when enlarging dialog boxes
-
- BUGFIX:
diff --git a/app/wlib/gtklib/bitmap.c b/app/wlib/gtklib/bitmap.c
index dc7236b..eb5ef94 100644
--- a/app/wlib/gtklib/bitmap.c
+++ b/app/wlib/gtklib/bitmap.c
@@ -67,6 +67,7 @@ wBitmapCreate( wWin_p parent, wPos_t x, wPos_t y, long options, wIcon_p iconP )
/* create the bitmap from supplied xpm data */
pixbuf = gdk_pixbuf_new_from_xpm_data( (const char **)iconP->bits );
+ g_object_ref_sink(pixbuf);
image = gtk_image_new_from_pixbuf( pixbuf );
gtk_widget_show( image );
g_object_unref( (gpointer)pixbuf );
diff --git a/app/wlib/gtklib/boxes.c b/app/wlib/gtklib/boxes.c
index cce6649..cf419e6 100644
--- a/app/wlib/gtklib/boxes.c
+++ b/app/wlib/gtklib/boxes.c
@@ -129,6 +129,7 @@ void wlibDrawBox(
cairo_stroke_preserve(cr);
if (style < wBoxThickB) {
+ cairo_destroy(cr);
return;
}
diff --git a/app/wlib/gtklib/browserhelp.c b/app/wlib/gtklib/browserhelp.c
new file mode 100644
index 0000000..9351e86
--- /dev/null
+++ b/app/wlib/gtklib/browserhelp.c
@@ -0,0 +1,137 @@
+/** \file browserhelp.c
+ * use the default browser based help
+ */
+
+/* XTrkCad - Model Railroad CAD
+ * Copyright (C) 2015 Martin Fischer
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <stdlib.h>
+#include <assert.h>
+
+#include "gtkint.h"
+#include "i18n.h"
+
+#include "dynstring.h"
+
+#define DEFAULTBROWSERCOMMAND "xdg-open"
+
+#define HELPERRORTEXT "Help Error - help information can not be found.\n" \
+ "The help information you requested cannot be shown.\n" \
+ "Usually this is an installation problem, Make sure that a default browser" \
+ " is configured and that XTrackCAD and the included " \
+ "HTML files are installed properly and can be found via the XTRKCADLIB environment " \
+ "variable.\n Also make sure that the user has sufficient access rights to read these" \
+ "files."
+/**
+ * Create a fully qualified url froma topic
+ *
+ * \param helpUrl OUT pointer to url, free by caller
+ * \param topic IN the help topic
+ */
+
+static void
+TopicToUrl(char **helpUrl, const char *topic)
+{
+ DynString url;
+ DynStringMalloc(&url, 16);
+
+ // build up the url line
+ DynStringCatCStrs(&url,
+ "file://",
+ wGetAppLibDir(),
+ "/html/",
+ topic,
+ ".html",
+ NULL);
+
+ *helpUrl = strdup(DynStringToCStr(&url));
+ DynStringFree(&url);
+}
+/**
+ * Extend the PATH variable inthe environment to include XTrackCAD's
+ * script directory.
+ *
+ * \return pointer to old path
+ */
+
+static char *
+ExtendPath(void)
+{
+ char *path = getenv("PATH");
+ DynString newPath;
+ DynStringMalloc(&newPath, 16);
+
+ // append XTrackCAD's directory to the path as a fallback
+ DynStringCatCStrs(&newPath,
+ path,
+ ":",
+ wGetAppLibDir(),
+ NULL);
+
+ setenv("PATH",
+ DynStringToCStr(&newPath),
+ TRUE);
+
+ DynStringFree(&newPath);
+
+ return (path);
+}
+
+/**
+ * Invoke the system's default browser to display help for <topic>. First the
+ * system's standard xdg-open command is attempted. If that is not available, the
+ * version included with the XTrackCAD installation is executed.
+ *
+ * \param topic IN topic string
+ */
+
+void wHelp(const char * topic)
+{
+ int rc;
+ char *url;
+ DynString commandLine;
+ char *currentPath;
+
+ assert(topic != NULL);
+ assert(strlen(topic));
+
+ currentPath = ExtendPath();
+ TopicToUrl(&url, topic);
+
+ DynStringMalloc(&commandLine, 16);
+ DynStringCatCStrs(&commandLine,
+ DEFAULTBROWSERCOMMAND,
+ " ",
+ url,
+ NULL);
+
+ // the command should be found via the PATH
+ rc = system(DynStringToCStr(&commandLine));
+
+ if (rc) {
+ wNotice(HELPERRORTEXT, _("Cancel"), NULL);
+ }
+
+ // restore the PATH
+ setenv("PATH",
+ currentPath,
+ TRUE);
+
+ free(url);
+ DynStringFree(&commandLine);
+}
diff --git a/app/wlib/gtklib/button.c b/app/wlib/gtklib/button.c
index d9f4880..b5fabe8 100644
--- a/app/wlib/gtklib/button.c
+++ b/app/wlib/gtklib/button.c
@@ -101,8 +101,8 @@ void wlibSetLabel(
} else {
gtk_image_set_from_pixbuf(GTK_IMAGE(*imageG), pixbuf);
}
-
- g_object_unref(pixbuf);
+ g_object_ref_sink(pixbuf);
+ g_object_unref((gpointer)pixbuf);
} else {
if (*labelG==NULL) {
*labelG = (GtkLabel*)gtk_label_new(wlibConvertInput(labelStr));
diff --git a/app/wlib/gtklib/control.c b/app/wlib/gtklib/control.c
index e824c94..c891924 100644
--- a/app/wlib/gtklib/control.c
+++ b/app/wlib/gtklib/control.c
@@ -109,7 +109,9 @@ wPos_t wLabelWidth(
GtkRequisition requisition;
widget = gtk_label_new(wlibConvertInput(label));
gtk_widget_size_request(widget, &requisition);
+ g_object_ref_sink (widget);
gtk_widget_destroy(widget);
+ g_object_unref(widget);
return requisition.width+8;
}
@@ -162,7 +164,7 @@ wPos_t wControlGetPosX(
wPos_t wControlGetPosY(
wControl_p b) /* Control */
{
- return b->realY - BORDERSIZE - ((b->parent->option&F_MENUBAR)?MENUH:0);
+ return b->realY - BORDERSIZE - ((b->parent->option&F_MENUBAR)?b->parent->menu_height:0);
}
/**
@@ -179,15 +181,21 @@ void wControlSetPos(
wPos_t y)
{
b->realX = x;
- b->realY = y + BORDERSIZE + ((b->parent->option&F_MENUBAR)?MENUH:0);
+ b->realY = y + BORDERSIZE + ((b->parent->option&F_MENUBAR)?b->parent->menu_height:0);
if (b->widget) {
gtk_fixed_move(GTK_FIXED(b->parent->widget), b->widget, b->realX, b->realY);
}
if (b->label) {
+ GtkRequisition requisition, reqwidget;
+ gtk_widget_size_request(b->label, &requisition);
+ if (b->widget)
+ gtk_widget_size_request(b->widget, &reqwidget);
+ else
+ reqwidget.height = requisition.height;
gtk_fixed_move(GTK_FIXED(b->parent->widget), b->label, b->realX-b->labelW,
- b->realY+LABEL_OFFSET);
+ b->realY+(reqwidget.height/2 - requisition.height/2));
}
}
@@ -202,14 +210,18 @@ void wControlSetLabel(
wControl_p b,
const char * labelStr)
{
- GtkRequisition requisition;
+ GtkRequisition requisition,reqwidget;
if (b->label) {
gtk_label_set_text(GTK_LABEL(b->label), wlibConvertInput(labelStr));
gtk_widget_size_request(b->label, &requisition);
+ if (b->widget)
+ gtk_widget_size_request(b->widget, &reqwidget);
+ else
+ reqwidget.height = requisition.height;
b->labelW = requisition.width+8;
gtk_fixed_move(GTK_FIXED(b->parent->widget), b->label, b->realX-b->labelW,
- b->realY+LABEL_OFFSET);
+ b->realY+(reqwidget.height/2 - requisition.height/2));
} else {
b->labelW = wlibAddLabel(b, labelStr);
}
diff --git a/app/wlib/gtklib/droplist.c b/app/wlib/gtklib/droplist.c
index 3252905..5fbdd17 100644
--- a/app/wlib/gtklib/droplist.c
+++ b/app/wlib/gtklib/droplist.c
@@ -416,7 +416,7 @@ wList_p wDropListCreate(
if (b->widget == 0) {
abort();
}
-
+ g_object_ref_sink(b->listStore);
g_object_unref(G_OBJECT(b->listStore));
wlibDropListAddColumns(b->widget, DROPLIST_TEXTCOLUMNS);
diff --git a/app/wlib/gtklib/font.c b/app/wlib/gtklib/font.c
index c54f7de..68ba87b 100644
--- a/app/wlib/gtklib/font.c
+++ b/app/wlib/gtklib/font.c
@@ -86,7 +86,7 @@ static void fontSelectionDialogCallback(GtkFontSelectionDialog
*fontSelectionDialog, gint response, gpointer data)
{
if (response == GTK_RESPONSE_APPLY || response == GTK_RESPONSE_OK) {
- gchar *fontName;
+ gchar *fontName;
fontName = gtk_font_selection_dialog_get_font_name(fontSelectionDialog);
wPrefSetString("font", "name", fontName);
@@ -215,12 +215,14 @@ PangoLayout *wlibFontCreatePangoLayout(GtkWidget *widget,
pango_layout_set_font_description(layout, fontDescription);
/* get layout measures */
pango_layout_get_pixel_size(layout, width_p, height_p);
- context = gtk_widget_get_pango_context(widget);
+ context = gtk_widget_create_pango_context(widget);
metrics = pango_context_get_metrics(context, fontDescription,
pango_context_get_language(context));
*ascent_p = PANGO_PIXELS(pango_font_metrics_get_ascent(metrics));
*descent_p = PANGO_PIXELS(pango_font_metrics_get_descent(metrics));
pango_font_metrics_unref(metrics);
+ g_object_ref_sink(context);
+ g_object_unref(context);
#if WLIB_FONT_DEBUG >= 3
fprintf(stderr, "font layout created:\n");
fprintf(stderr, " widget: %p\n", widget);
@@ -242,7 +244,8 @@ PangoLayout *wlibFontCreatePangoLayout(GtkWidget *widget,
void wlibFontDestroyPangoLayout(PangoLayout *layout)
{
- g_object_unref(G_OBJECT(layout));
+ g_object_ref_sink(layout);
+ g_object_unref(layout);
}
/**
@@ -286,7 +289,7 @@ void wSelectFont(
gtk_window_set_title(GTK_WINDOW(fontSelectionDialog), title);
if (curFont != NULL) {
- gchar *fontName;
+ gchar *fontName;
/* the curFont description contains the latest font info
* which is depended on the current scale
diff --git a/app/wlib/gtklib/gtkdraw-cairo.c b/app/wlib/gtklib/gtkdraw-cairo.c
index a19eb2b..4f3b1d2 100644
--- a/app/wlib/gtklib/gtkdraw-cairo.c
+++ b/app/wlib/gtklib/gtkdraw-cairo.c
@@ -174,8 +174,9 @@ static cairo_t* gtkDrawCreateCairoContext(
}
case wDrawLineDash:
{
- double dashes[] = { 5, 5 };
- cairo_set_dash(cairo, dashes, 2, 0);
+ double dashes[] = { 5, 3 };
+ static int len_dashes = sizeof(dashes) / sizeof(dashes[0]);
+ cairo_set_dash(cairo, dashes, len_dashes, 0);
break;
}
}
@@ -183,13 +184,14 @@ static cairo_t* gtkDrawCreateCairoContext(
if(opts & wDrawOptTemp)
{
cairo_set_source_rgba(cairo, 0, 0, 0, 0);
+ cairo_set_operator(cairo, CAIRO_OPERATOR_OVER);
}
else
{
GdkColor* const gcolor = wlibGetColor(color, TRUE);
cairo_set_source_rgb(cairo, gcolor->red / 65535.0, gcolor->green / 65535.0, gcolor->blue / 65535.0);
- cairo_set_operator(cairo, CAIRO_OPERATOR_OVER);
+ cairo_set_operator(cairo, CAIRO_OPERATOR_SOURCE);
}
return cairo;
@@ -197,6 +199,7 @@ static cairo_t* gtkDrawCreateCairoContext(
static cairo_t* gtkDrawDestroyCairoContext(cairo_t *cairo) {
cairo_destroy(cairo);
+ return NULL;
}
void wDrawDelayUpdate(
@@ -442,7 +445,7 @@ static cairo_t* gtkDrawDestroyCairoContext(cairo_t *cairo) {
update_rect.x = (gint) x - ascent - descent - 1;
update_rect.y = (gint) y - (gint) ascent - 1;
update_rect.width = (gint) (w * cos( angle ) + 2 + ascent + descent);
- update_rect.height = (gint) (w * sin( angle ) + ascent + descent + 2 );
+ update_rect.height = (gint) (h * sin( angle ) + ascent + descent + 2 );
gtk_widget_draw(bd->widget, &update_rect);
}
@@ -469,8 +472,8 @@ static cairo_t* gtkDrawDestroyCairoContext(cairo_t *cairo) {
(int *) &ascent, (int *) &descent));
*w = (wPos_t) textWidth;
- *h = (wPos_t) ascent;
- *d = (wPos_t) descent;
+ *h = (wPos_t) textHeight;
+ *d = (wPos_t) textHeight-ascent;
if (debugWindow >= 3)
fprintf(stderr, "text metrics: w=%d, h=%d, d=%d\n", *w, *h, *d);
@@ -693,7 +696,7 @@ static cairo_t* gtkDrawDestroyCairoContext(cairo_t *cairo) {
wDrawColor color,
wDrawOpts opts )
{
- GdkGC * gc;
+ //GdkGC * gc;
GdkRectangle update_rect;
int i, j, wb;
wPos_t xx, yy;
@@ -703,7 +706,8 @@ static cairo_t* gtkDrawDestroyCairoContext(cairo_t *cairo) {
x = INMAPX( bd, x-bm->x );
y = INMAPY( bd, y-bm->y )-bm->h;
wb = (bm->w+7)/8;
- gc = selectGC( bd, 0, wDrawLineSolid, color, opts );
+ //gc = selectGC( bd, 0, wDrawLineSolid, color, opts );
+ cairo_t* cairo = gtkDrawCreateCairoContext(bd, 0, wDrawLineSolid, color, opts);
for ( i=0; i<bm->w; i++ )
for ( j=0; j<bm->h; j++ )
@@ -732,7 +736,9 @@ static cairo_t* gtkDrawDestroyCairoContext(cairo_t *cairo) {
continue;
}
/*printf( "gdk_draw_point( %ld, gc, %d, %d )\n", (long)gdk_window, xx, yy );*/
- gdk_draw_point( gdk_window, gc, xx, yy );
+ //gdk_draw_point( gdk_window, gc, xx, yy );
+ cairo_rectangle(cairo, xx-0.5, yy-0.5, 1, 1);
+ cairo_fill(cairo);
if ( b && b->type == B_DRAW ) {
update_rect.x = xx-1;
update_rect.y = yy-1;
@@ -741,6 +747,7 @@ static cairo_t* gtkDrawDestroyCairoContext(cairo_t *cairo) {
gtk_widget_draw( b->widget, &update_rect );
}
}
+ gtkDrawDestroyCairoContext(cairo);
#ifdef LATER
gdk_draw_pixmap(bd->pixmap, gc,
bm->pixmap,
@@ -836,9 +843,9 @@ static cairo_t* gtkDrawDestroyCairoContext(cairo_t *cairo) {
bd->pixmap = gdk_pixmap_new( bd->widget->window, w, h, -1 );
wDrawClear( bd );
- /*bd->redraw( bd, bd->context, w, h );*/
+ bd->redraw( bd, bd->context, w, h );
}
- /*wRedraw( bd );*/
+ /*wRedraw( bd )*/;
}
@@ -996,7 +1003,8 @@ static gint draw_button_event(
printf( "%s[%dx%d]\n", actionNames[action], bd->lastX, bd->lastY );
bd->action( bd, bd->context, action, bd->lastX, bd->lastY );
}
- gtk_widget_grab_focus( bd->widget );
+ if (!(bd->option & BD_NOFOCUS))
+ gtk_widget_grab_focus( bd->widget );
return TRUE;
}
@@ -1032,7 +1040,8 @@ static gint draw_motion_event(
if (drawVerbose >= 2)
printf( "%lx: %s[%dx%d] %s\n", (long)bd, actionNames[action], bd->lastX, bd->lastY, event->is_hint?"<Hint>":"<>" );
bd->action( bd, bd->context, action, bd->lastX, bd->lastY );
- gtk_widget_grab_focus( bd->widget );
+ if (!(bd->option & BD_NOFOCUS))
+ gtk_widget_grab_focus( bd->widget );
return TRUE;
}
@@ -1042,11 +1051,17 @@ static gint draw_char_event(
GdkEventKey *event,
wDraw_p bd )
{
+ GdkModifierType modifiers;
guint key = event->keyval;
wAccelKey_e extKey = wAccelKey_None;
switch (key) {
case GDK_KEY_Escape: key = 0x1B; break;
- case GDK_KEY_Return: key = 0x0D; break;
+ case GDK_KEY_Return:
+ modifiers = gtk_accelerator_get_default_mod_mask();
+ if (((event->state & modifiers)==GDK_CONTROL_MASK) || ((event->state & modifiers)==GDK_MOD1_MASK))
+ extKey = wAccelKey_LineFeed; //If Return plus Control or Alt send in LineFeed
+ key = 0x0D;
+ break;
case GDK_KEY_Linefeed: key = 0x0A; break;
case GDK_KEY_Tab: key = 0x09; break;
case GDK_KEY_BackSpace: key = 0x08; break;
@@ -1141,7 +1156,9 @@ int xw, xh, cw, ch;
(GtkSignalFunc) draw_char_event, bd);
gtk_signal_connect (GTK_OBJECT (bd->widget), "leave_notify_event",
(GtkSignalFunc) draw_leave_event, bd);
- GTK_WIDGET_SET_FLAGS(GTK_WIDGET(bd->widget), GTK_CAN_FOCUS);
+ gtk_widget_set_can_focus(bd->widget,!(option & BD_NOFOCUS));
+ //if (!(option & BD_NOFOCUS))
+ // GTK_WIDGET_SET_FLAGS(GTK_WIDGET(bd->widget), GTK_CAN_FOCUS);
gtk_widget_set_events (bd->widget, GDK_EXPOSURE_MASK
| GDK_LEAVE_NOTIFY_MASK
| GDK_BUTTON_PRESS_MASK
diff --git a/app/wlib/gtklib/gtkint.h b/app/wlib/gtklib/gtkint.h
index da0d9ae..9f6be72 100644
--- a/app/wlib/gtklib/gtkint.h
+++ b/app/wlib/gtklib/gtkint.h
@@ -47,7 +47,7 @@ typedef enum {
B_RADIO, B_TOGGLE,
B_DRAW, B_MENU, B_MULTITEXT, B_MESSAGE, B_LINES,
B_MENUITEM, B_BOX,
- B_BITMAP } wType_e;
+ B_BITMAP, B_STATUS } wType_e;
typedef void (*repaintProcCallback_p)( wControl_p );
typedef void (*doneProcCallback_p)( wControl_p b );
@@ -61,6 +61,7 @@ typedef void (*setTriggerCallback_p)( wControl_p b );
wPos_t realX, realY; \
wPos_t labelW; \
wPos_t w, h; \
+ int maximize_initially; \
long option; \
const char * labelStr; \
repaintProcCallback_p repaintProc; \
@@ -78,9 +79,12 @@ struct wWin_t {
wBool_t shown; /**< visibility state */
const char * nameStr; /**< window name (not title) */
GtkWidget * menubar; /**< menubar handle (if exists) */
+ int menu_height;
GdkGC * gc; /**< graphics context */
int gc_linewidth; /**< ??? */
wBool_t busy;
+ int resizeTimer; /** resizing **/
+ int resizeW,resizeH;
int modalLevel;
};
@@ -113,7 +117,7 @@ struct wList_t {
struct wListItem_t {
wBool_t active;
void * itemData;
- const char * label;
+ char * label;
GtkLabel * labelG;
wBool_t selected;
wList_p listP;
diff --git a/app/wlib/gtklib/ixhelp.c b/app/wlib/gtklib/ixhelp.c
index 6d85b2b..f1e3983 100644
--- a/app/wlib/gtklib/ixhelp.c
+++ b/app/wlib/gtklib/ixhelp.c
@@ -20,28 +20,14 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include <stdio.h>
#include <stdlib.h>
-#include <dirent.h>
-#include <sys/time.h>
-#include <signal.h>
-#include <unistd.h>
-#include <string.h>
-#include <ctype.h>
#include <assert.h>
-#include <errno.h>
-#include <fcntl.h>
-
-#include <stdint.h>
#include "gtkint.h"
#include "i18n.h"
#include <webkit/webkit.h>
-#include "gtkint.h"
-#include "i18n.h"
-
void load_into_view(char *file,
int requested_view); // Prototype to please clang.
diff --git a/app/wlib/gtklib/list.c b/app/wlib/gtklib/list.c
index bf3a56e..8e99efe 100644
--- a/app/wlib/gtklib/list.c
+++ b/app/wlib/gtklib/list.c
@@ -486,6 +486,8 @@ wIndex_t wListAddValue(
wlibTreeViewAddRow(b, (char *)labelStr, bm, id_p);
}
+ free(id_p->label);
+
b->count++;
b->recursion--;
diff --git a/app/wlib/gtklib/liststore.c b/app/wlib/gtklib/liststore.c
index eb53ea7..820366a 100644
--- a/app/wlib/gtklib/liststore.c
+++ b/app/wlib/gtklib/liststore.c
@@ -110,7 +110,8 @@ wlibListStoreGetContext(GtkListStore *ls, int inx)
/**
- * Clear the list store
+ * Clear the list store. All data in the list store will be automatically
+ * free'd when the list store is cleared.
*
* \param listStore IN
*/
@@ -118,9 +119,18 @@ wlibListStoreGetContext(GtkListStore *ls, int inx)
void
wlibListStoreClear(GtkListStore *listStore)
{
+ wListItem_p id_p;
+ int i = 0;
+
assert(listStore != NULL);
- /** \todo this looks like a memory leak. should probably free the id's */
+ id_p = wlibListStoreGetContext(listStore, i++);
+
+ while (id_p) {
+ g_free(id_p);
+ id_p = wlibListStoreGetContext(listStore, i++);
+ }
+
gtk_list_store_clear(listStore);
}
@@ -190,7 +200,9 @@ wlibListStoreUpdateIter(GtkListStore *ls, GtkTreeIter *iter, char *labels)
}
/**
- * Add a pixbuf to the list store
+ * Add a pixbuf to the list store. So pixbuf is unref'ed so it will be freed
+ * with the list store.
+ *
* \param ls IN list store
* \param iter IN position
* \param pixbuf IN pixbuf to add
@@ -200,6 +212,8 @@ void
wlibListStoreSetPixbuf(GtkListStore *ls, GtkTreeIter *iter, GdkPixbuf *pixbuf)
{
gtk_list_store_set(ls, iter, LISTCOL_BITMAP, pixbuf, -1);
+ g_object_ref_sink(pixbuf);
+ g_object_unref(pixbuf);
}
/**
* Add a row to the list store
diff --git a/app/wlib/gtklib/main.c b/app/wlib/gtklib/main.c
index 9075687..470f17b 100644
--- a/app/wlib/gtklib/main.c
+++ b/app/wlib/gtklib/main.c
@@ -24,6 +24,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
+#include <string.h>
#define GTK_DISABLE_SINGLE_INCLUDES
#define GDK_DISABLE_DEPRECATED
diff --git a/app/wlib/gtklib/menu.c b/app/wlib/gtklib/menu.c
index fb115a3..d19805a 100644
--- a/app/wlib/gtklib/menu.c
+++ b/app/wlib/gtklib/menu.c
@@ -32,6 +32,7 @@
#include <gtk/gtk.h>
#include <gdk/gdk.h>
+#include <gdk/gdkkeysyms.h>
#include "gtkint.h"
#include "i18n.h"
@@ -237,7 +238,14 @@ static wMenuItem_p createMenuItem(
return mi;
}
-
+/**
+ * Add a accelerator key to a widget
+ *
+ * @param w IN unused(?)
+ * @param menu IN unused(?)
+ * @param menu_item IN owning widget
+ * @param acclKey IN the accelerator key
+ */
static void setAcclKey( wWin_p w, GtkWidget * menu, GtkWidget * menu_item, int acclKey )
{
int mask;
@@ -262,19 +270,12 @@ static void setAcclKey( wWin_p w, GtkWidget * menu, GtkWidget * menu_item, int a
mask = 0;
if (acclKey) {
- int len;
- char acclStr[40];
- len = 0;
if (acclKey&WALT) {
mask |= GDK_MOD1_MASK;
- strcpy( acclStr+len, "Meta+" );
- len += 5;
}
if (acclKey&WSHIFT) {
mask |= GDK_SHIFT_MASK;
- strcpy( acclStr+len, "Shift+" );
- len += 6;
switch ( (acclKey&0xFF) ) {
case '0': acclKey += ')'-'0'; break;
case '1': acclKey += '!'-'1'; break;
@@ -302,11 +303,7 @@ static void setAcclKey( wWin_p w, GtkWidget * menu, GtkWidget * menu_item, int a
}
if (acclKey&WCTL) {
mask |= GDK_CONTROL_MASK;
- strcpy( acclStr+len, "Ctrl+" );
- len += 5;
}
- acclStr[len++] = (acclKey & 0xFF);
- acclStr[len++] = '\0';
gtk_widget_add_accelerator( menu_item, "activate",
(isalpha(acclKey&0xFF)?accel_alpha_group:accel_nonalpha_group),
toupper(acclKey&0xFF), mask, GTK_ACCEL_VISIBLE|GTK_ACCEL_LOCKED );
diff --git a/app/wlib/gtklib/message.c b/app/wlib/gtklib/message.c
index 396b696..af37d22 100644
--- a/app/wlib/gtklib/message.c
+++ b/app/wlib/gtklib/message.c
@@ -21,6 +21,7 @@
*/
#include <stdlib.h>
+#include <string.h>
#define GTK_DISABLE_SINGLE_INCLUDES
#define GDK_DISABLE_DEPRECATED
@@ -84,7 +85,6 @@ void wMessageSetWidth(
/**
* Get height of message text
- * \todo Constant height doesn't make sense, change to use the window's properties and retrieve the real font size
*
* \param flags IN text properties (large or small size)
* \return text height
@@ -93,7 +93,45 @@ void wMessageSetWidth(
wPos_t wMessageGetHeight(
long flags)
{
- return 14;
+ GtkWidget * temp;
+
+ if (!(flags&COMBOBOX)) {
+ temp = gtk_label_new("Test"); //To get size of text itself
+ } else {
+ temp = gtk_combo_box_text_new(); //to get max size of an object in infoBar
+ }
+
+ if (wMessageSetFont(flags)) {
+ GtkStyle *style;
+ PangoFontDescription *fontDesc;
+ int fontSize;
+ /* get the current font descriptor */
+ style = gtk_widget_get_style(temp);
+ fontDesc = style->font_desc;
+ /* get the current font size */
+ fontSize = PANGO_PIXELS(pango_font_description_get_size(fontDesc));
+
+ /* calculate the new font size */
+ if (flags & BM_LARGE) {
+ pango_font_description_set_size(fontDesc, fontSize * 1.4 * PANGO_SCALE);
+ } else {
+ pango_font_description_set_size(fontDesc, fontSize * 0.7 * PANGO_SCALE);
+ }
+
+ /* set the new font size */
+ gtk_widget_modify_font(temp, fontDesc);
+ }
+
+ if (flags&1L) {
+ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(temp),"Test");
+ }
+
+ GtkRequisition temp_requisition;
+ gtk_widget_size_request(temp,&temp_requisition);
+ g_object_ref_sink(temp);
+ gtk_widget_destroy(temp);
+ g_object_unref(temp);
+ return temp_requisition.height;
}
/**
@@ -109,7 +147,7 @@ wPos_t wMessageGetHeight(
* \return handle for created window
*/
- wMessage_p wMessageCreateEx(
+wMessage_p wMessageCreateEx(
wWin_p parent,
wPos_t x,
wPos_t y,
@@ -147,7 +185,7 @@ wPos_t wMessageGetHeight(
/* set the new font size */
gtk_widget_modify_font((GtkWidget *)b->labelWidget, fontDesc);
}
-
+
b->widget = gtk_fixed_new();
gtk_widget_size_request(GTK_WIDGET(b->labelWidget), &requisition);
gtk_container_add(GTK_CONTAINER(b->widget), b->labelWidget);
@@ -166,3 +204,33 @@ wPos_t wMessageGetHeight(
return b;
}
+
+/**
+ * Get the anticipated length of a message field
+ *
+ * \param testString IN string that should fit into the message box
+ * \return expected width of message box
+ */
+
+wPos_t
+wMessageGetWidth(const char *testString)
+{
+ GtkWidget *entry;
+ GtkRequisition requisition;
+
+ return( wLabelWidth(testString));
+// entry = gtk_entry_new();
+// g_object_ref_sink(entry);
+//
+// gtk_entry_set_has_frame(GTK_ENTRY(entry), FALSE);
+// gtk_entry_set_width_chars(GTK_ENTRY(entry), strlen(testString));
+// gtk_entry_set_max_length(GTK_ENTRY(entry), strlen(testString));
+//
+// gtk_widget_size_request(entry, &requisition);
+//
+// gtk_widget_destroy(entry);
+// g_object_unref(entry);
+//
+// return (requisition.width+8);
+}
+
diff --git a/app/wlib/gtklib/notice.c b/app/wlib/gtklib/notice.c
index cf4b59f..b72afd6 100644
--- a/app/wlib/gtklib/notice.c
+++ b/app/wlib/gtklib/notice.c
@@ -25,6 +25,7 @@
#include <stdlib.h>
#include <sys/time.h>
#include <signal.h>
+#include <string.h>
#define GTK_DISABLE_SINGLE_INCLUDES
#define GDK_DISABLE_DEPRECATED
@@ -82,7 +83,7 @@ int wNoticeEx(int type,
unsigned flag;
char *headline;
GtkWidget *dialog;
- GtkWindow *parent = GTK_WINDOW_TOPLEVEL;
+ GtkWindow *parent = NULL;
switch (type) {
case NT_INFORMATION:
diff --git a/app/wlib/gtklib/png.c b/app/wlib/gtklib/png.c
index e11869e..809de6a 100644
--- a/app/wlib/gtklib/png.c
+++ b/app/wlib/gtklib/png.c
@@ -59,6 +59,7 @@ wBool_t wBitMapWriteFile(wDraw_p d, const char * fileName)
return FALSE;
}
+ g_object_ref_sink(pixbuf);
g_object_unref(pixbuf);
return TRUE;
}
diff --git a/app/wlib/gtklib/print.c b/app/wlib/gtklib/print.c
index c0993f4..cad7e57 100644
--- a/app/wlib/gtklib/print.c
+++ b/app/wlib/gtklib/print.c
@@ -86,6 +86,8 @@ static double rBorder; /**< right margin */
static double lBorder; /**< left margin */
static double bBorder; /**< bottom margin */
+static double scale_adjust = 1.0;
+
static long printFormat = PRINT_LANDSCAPE;
/*****************************************************************************
@@ -118,7 +120,7 @@ WlibApplySettings(GtkPrintOperation *op)
dialog = gtk_message_dialog_new(GTK_WINDOW(gtkMainW->gtkwin),
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE,
- err->message);
+ "%s",err->message);
gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy(dialog);
} else {
@@ -144,7 +146,7 @@ WlibApplySettings(GtkPrintOperation *op)
dialog = gtk_message_dialog_new(GTK_WINDOW(gtkMainW->gtkwin),
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE,
- err->message);
+ "%s",err->message);
gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy(dialog);
} else {
@@ -193,7 +195,7 @@ WlibSaveSettings(GtkPrintOperation *op)
dialog = gtk_message_dialog_new(GTK_WINDOW(gtkMainW->gtkwin),
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE,
- err->message);
+ "%s",err->message);
g_error_free(err);
gtk_dialog_run(GTK_DIALOG(dialog));
@@ -216,7 +218,7 @@ WlibSaveSettings(GtkPrintOperation *op)
dialog = gtk_message_dialog_new(GTK_WINDOW(gtkMainW->gtkwin),
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE,
- err->message);
+ "%s",err->message);
g_error_free(err);
gtk_dialog_run(GTK_DIALOG(dialog));
@@ -279,21 +281,23 @@ static void setLineType(
wDrawOpts opts)
{
cairo_t *cr = psPrint_d.printContext;
- double dashLength = DASH_LENGTH;
+
+ double dashes[] = { DASH_LENGTH, 3 }; //Reduce gap in between dashes
+ static int len_dashes = sizeof(dashes) / sizeof(dashes[0]);
if (lineWidth < 0.0) {
- lineWidth = P2I(-lineWidth)*2.0;
+ lineWidth = P2I(-lineWidth)*2.0/scale_adjust;
}
// make sure that there is a minimum line width used
- if (lineWidth == 0.0) {
- lineWidth = 0.1;
+ if (lineWidth <= 0.09) {
+ lineWidth = 0.1/scale_adjust;
}
cairo_set_line_width(cr, lineWidth);
if (lineType == wDrawLineDash) {
- cairo_set_dash(cr, &dashLength, 1, 0.0);
+ cairo_set_dash(cr, dashes, len_dashes, 0.0);
} else {
cairo_set_dash(cr, NULL, 0, 0.0);
}
@@ -537,7 +541,7 @@ void psPrintFillCircle(
/**
* Print a string at the given position using specified font and text size.
- * The orientatoion of the y-axis in XTrackCAD is wrong for cairo. So for
+ * The orientation of the y-axis in XTrackCAD is wrong for cairo. So for
* all other print primitives a flip operation is done. As this would
* also affect the string orientation, printing a string has to be
* treated differently. The starting point is transformed, then the
@@ -568,7 +572,8 @@ void psPrintString(
{
char * cp;
double x0 = (double)x, y0 = (double)y;
- double text_height;
+ int text_height, text_width;
+ double ascent;
cairo_t *cr;
cairo_matrix_t matrix;
@@ -586,10 +591,13 @@ void psPrintString(
// get the current transformation matrix and transform the starting
// point of the string
+
+ cairo_save(cr);
+
cairo_get_matrix(cr, &matrix);
+
cairo_matrix_transform_point(&matrix, &x0, &y0);
- cairo_save(cr);
layout = pango_cairo_create_layout(cr);
@@ -597,26 +605,27 @@ void psPrintString(
/** \todo use a getter function instead of double conversion */
desc = pango_font_description_from_string(wlibFontTranslate(fp));
- //don't know why the size has to be reduced to 75% :-(
- pango_font_description_set_size(desc, fs * PANGO_SCALE *0.75);
+ pango_font_description_set_size(desc, fs * PANGO_SCALE );
// render the string to a Pango layout
pango_layout_set_font_description(layout, desc);
pango_layout_set_text(layout, s, -1);
pango_layout_set_width(layout, -1);
pango_layout_set_alignment(layout, PANGO_ALIGN_LEFT);
+ pango_layout_get_pixel_size(layout, &text_width, &text_height);
// get the height of the string
pcontext = pango_cairo_create_context(cr);
metrics = pango_context_get_metrics(pcontext, desc,
pango_context_get_language(pcontext));
- text_height = pango_font_metrics_get_ascent(metrics) / PANGO_SCALE;
- // transform the string to the correct position
+ ascent = pango_font_metrics_get_ascent(metrics) / PANGO_SCALE * scale_adjust ;
+
cairo_identity_matrix(cr);
- cairo_translate(cr, x0 + text_height * sin(-a * M_PI / 180.0) ,
- y0 - text_height * cos(a * M_PI / 180.0));
+ cairo_translate(cr, x0 + ((ascent + (bBorder*scale_adjust)) * sin(-a * M_PI / 180.0))+((lBorder*scale_adjust)* cos(a * M_PI / 180.0)),
+ y0 - ((ascent + (bBorder*scale_adjust)) * cos( a * M_PI / 180.0))+((lBorder*scale_adjust)* sin(a * M_PI / 180.0)));
+
cairo_rotate(cr, -a * M_PI / 180.0);
// set the color
@@ -633,7 +642,7 @@ void psPrintString(
}
/**
- * Create clipping retangle.
+ * Create clipping rectangle.
*
* \param x, y IN starting position
* \param w, h IN width and height of rectangle
@@ -800,6 +809,7 @@ wBool_t wPrintDocStart(const char * title, int fTotalPageCount, int * copiesP)
cairo_surface_type_t surface_type;
cairo_matrix_t matrix;
+
printDialog = gtk_print_unix_dialog_new(title, GTK_WINDOW(gtkMainW->gtkwin));
// load the settings
@@ -848,7 +858,10 @@ wBool_t wPrintDocStart(const char * title, int fTotalPageCount, int * copiesP)
if (surface_type == CAIRO_SURFACE_TYPE_PDF ||
surface_type == CAIRO_SURFACE_TYPE_PS ||
surface_type == CAIRO_SURFACE_TYPE_SVG) {
- psPrint_d.dpi = 72;
+ double p_def=600;
+ cairo_surface_set_fallback_resolution (psPrint_d.curPrintSurface, p_def, p_def);
+ psPrint_d.dpi = p_def;
+ scale_adjust = 72/p_def;
} else {
psPrint_d.dpi = (double)gtk_print_settings_get_resolution(settings);
}
@@ -856,11 +869,13 @@ wBool_t wPrintDocStart(const char * title, int fTotalPageCount, int * copiesP)
// in XTrackCAD 0,0 is top left, in cairo bottom left. This is
// corrected via the following transformations.
// also the translate makes sure that the drawing is rendered
- // within the paper margins
+ // within the paper margin
+
+ cairo_translate(psPrint_d.printContext, lBorder*72, (paperHeight-bBorder)*72 );
+
+ cairo_scale(psPrint_d.printContext, 1.0 * scale_adjust, -1.0 * scale_adjust);
- cairo_scale(psPrint_d.printContext, 1.0, -1.0);
- cairo_translate(psPrint_d.printContext, lBorder * psPrint_d.dpi,
- -(paperHeight-bBorder) *psPrint_d.dpi);
+ //cairo_translate(psPrint_d.printContext, 0, -paperHeight* psPrint_d.dpi);
WlibSaveSettings(NULL);
}
@@ -900,7 +915,7 @@ doPrintJobFinished(GtkPrintJob *job, void *data, GError *err)
dialog = gtk_message_dialog_new(GTK_WINDOW(gtkMainW->gtkwin),
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE,
- err->message);
+ "%s",err->message);
}
}
diff --git a/app/wlib/gtklib/statusbar.c b/app/wlib/gtklib/statusbar.c
new file mode 100644
index 0000000..3730eab
--- /dev/null
+++ b/app/wlib/gtklib/statusbar.c
@@ -0,0 +1,211 @@
+/** \file statusbar.c
+ * Status bar
+ */
+
+/* XTrkCad - Model Railroad CAD
+ * Copyright (C) 2005 Dave Bullis,
+ * 2017 Martin Fischer <m_fischer@sf.net>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ *
+ */
+
+
+#include <stdlib.h>
+#include <string.h>
+
+#define GTK_DISABLE_SINGLE_INCLUDES
+#define GDK_DISABLE_DEPRECATED
+#define GTK_DISABLE_DEPRECATED
+#define GSEAL_ENABLE
+
+#include <gtk/gtk.h>
+#include <gdk/gdk.h>
+
+#include "gtkint.h"
+
+struct wStatus_t {
+ WOBJ_COMMON
+ GtkWidget * labelWidget;
+ const char * message;
+ wPos_t labelWidth;
+};
+
+/**
+ * Set the message text
+ *
+ * \param b IN widget
+ * \param arg IN new text
+ * \return
+ */
+
+void wStatusSetValue(
+ wStatus_p b,
+ const char * arg)
+{
+ if (b->widget == 0) {
+ abort();
+ }
+
+ if (gtk_entry_get_max_length(GTK_ENTRY(b->labelWidget))<strlen(arg)) {
+ gtk_entry_set_max_length(GTK_ENTRY(b->labelWidget), strlen(arg));
+ gtk_entry_set_width_chars(GTK_ENTRY(b->labelWidget), strlen(arg));
+ }
+
+ gtk_entry_set_text(GTK_ENTRY(b->labelWidget), wlibConvertInput(arg));
+}
+/**
+ * Create a window for a simple text.
+ *
+ * \param IN parent Handle of parent window
+ * \param IN x position in x direction
+ * \param IN y position in y direction
+ * \param IN labelStr ???
+ * \param IN width horizontal size of window
+ * \param IN message message to display ( null terminated )
+ * \param IN flags display options
+ * \return handle for created window
+ */
+
+wStatus_p wStatusCreate(
+ wWin_p parent,
+ wPos_t x,
+ wPos_t y,
+ const char * labelStr,
+ wPos_t width,
+ const char *message)
+{
+ wStatus_p b;
+ GtkRequisition requisition;
+ b = (wStatus_p)wlibAlloc(parent, B_STATUS, x, y, NULL, sizeof *b, NULL);
+ wlibComputePos((wControl_p)b);
+ b->message = message;
+ b->labelWidth = width;
+ b->labelWidget = gtk_entry_new();
+ gtk_editable_set_editable(GTK_EDITABLE(b->labelWidget), FALSE);
+ gtk_entry_set_has_frame(GTK_ENTRY(b->labelWidget), FALSE);
+ gtk_widget_set_can_focus(b->labelWidget, FALSE);
+ gtk_entry_set_text(GTK_ENTRY(b->labelWidget),
+ message?wlibConvertInput(message):"");
+
+ b->widget = gtk_fixed_new();
+ gtk_container_add(GTK_CONTAINER(b->widget), b->labelWidget);
+ wlibControlGetSize((wControl_p)b);
+ gtk_fixed_put(GTK_FIXED(parent->widget), b->widget, b->realX, b->realY);
+ gtk_widget_show(b->widget);
+ gtk_widget_show(b->labelWidget);
+ wlibAddButton((wControl_p)b);
+
+ return b;
+}
+
+/**
+ * Get the anticipated length of a message field
+ *
+ * \param testString IN string that should fit into the message box
+ * \return expected width of message box
+ */
+
+wPos_t
+wStatusGetWidth(const char *testString)
+{
+ GtkWidget *entry;
+ GtkRequisition requisition;
+
+ entry = gtk_entry_new();
+ g_object_ref_sink(entry);
+
+ gtk_entry_set_has_frame(GTK_ENTRY(entry), FALSE);
+ gtk_entry_set_width_chars(GTK_ENTRY(entry), strlen(testString));
+ gtk_entry_set_max_length(GTK_ENTRY(entry), strlen(testString));
+
+ gtk_widget_size_request(entry, &requisition);
+
+ gtk_widget_destroy(entry);
+ g_object_unref(entry);
+
+ return (requisition.width+8);
+}
+
+/**
+ * Get height of message text
+ *
+ * \param flags IN text properties (large or small size)
+ * \return text height
+ */
+
+wPos_t wStatusGetHeight(
+ long flags)
+{
+ GtkWidget * temp;
+
+ if (!(flags&COMBOBOX)) {
+ temp = gtk_entry_new(); //To get size of text itself
+ gtk_entry_set_has_frame(GTK_ENTRY(temp), FALSE);
+ } else {
+ temp = gtk_combo_box_text_new(); //to get max size of an object in infoBar
+ }
+ g_object_ref_sink(temp);
+
+ if (wMessageSetFont(flags)) {
+ GtkStyle *style;
+ PangoFontDescription *fontDesc;
+ int fontSize;
+ /* get the current font descriptor */
+ style = gtk_widget_get_style(temp);
+ fontDesc = style->font_desc;
+ /* get the current font size */
+ fontSize = PANGO_PIXELS(pango_font_description_get_size(fontDesc));
+
+ /* calculate the new font size */
+ if (flags & BM_LARGE) {
+ pango_font_description_set_size(fontDesc, fontSize * 1.4 * PANGO_SCALE);
+ } else {
+ pango_font_description_set_size(fontDesc, fontSize * 0.7 * PANGO_SCALE);
+ }
+
+ /* set the new font size */
+ gtk_widget_modify_font(temp, fontDesc);
+ }
+
+ if (flags&1L) {
+ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(temp),"Test");
+ }
+
+ GtkRequisition temp_requisition;
+ gtk_widget_size_request(temp,&temp_requisition);
+ //g_object_ref_sink(temp);
+ //g_object_unref(temp);
+ gtk_widget_destroy(temp);
+ return temp_requisition.height;
+}
+
+/**
+ * Set the width of the widget
+ *
+ * \param b IN widget
+ * \param width IN new width
+ * \return
+ */
+
+void wStatusSetWidth(
+ wStatus_p b,
+ wPos_t width)
+{
+ b->labelWidth = width;
+ gtk_widget_set_size_request(b->widget, width, -1);
+}
diff --git a/app/wlib/gtklib/text.c b/app/wlib/gtklib/text.c
index 5445984..f7ba288 100644
--- a/app/wlib/gtklib/text.c
+++ b/app/wlib/gtklib/text.c
@@ -360,12 +360,12 @@ wBool_t wTextPrint(
dialog = gtk_message_dialog_new(GTK_WINDOW(gtkMainW->gtkwin),
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE,
- error->message);
+ "%s",error->message);
g_error_free(error);
gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy(dialog);
}
-
+ g_object_ref_sink(operation);
g_object_unref(operation);
return TRUE;
}
diff --git a/app/wlib/gtklib/tooltip.c b/app/wlib/gtklib/tooltip.c
index 15b46d2..20a1ba9 100644
--- a/app/wlib/gtklib/tooltip.c
+++ b/app/wlib/gtklib/tooltip.c
@@ -45,7 +45,7 @@ static int enableBalloonHelp = TRUE;
static GtkWidget * balloonF; /**< balloon help control for hotbar item */
static GtkWidget * balloonPI;
-static const char * balloonMsg = NULL;
+static char balloonMsg[100] = "";
static wControl_p balloonB;
static wPos_t balloonDx, balloonDy;
static wBool_t balloonVisible = FALSE;
@@ -136,54 +136,56 @@ void wControlSetBalloon( wControl_p b, wPos_t dx, wPos_t dy, const char * msg )
wPos_t w, h;
wPos_t xx, yy;
const char * msgConverted;
- GtkAllocation size;
+ GtkRequisition size;
/* return if there is nothing to do */
if (balloonVisible && balloonB == b &&
- balloonDx == dx && balloonDy == dy && msg != NULL && balloonMsg != NULL)
+ balloonDx == dx && balloonDy == dy && msg != NULL && !balloonMsg[0])
if (strcmp(msg,balloonMsg)==0)
return;
/* hide the tooltip */
if ( msg == NULL ) {
- if ( balloonF != NULL ) {
+ if ( balloonF != NULL && balloonVisible) {
gtk_widget_hide( balloonF );
balloonVisible = FALSE;
}
- balloonMsg = "";
+ balloonMsg[0] = '\0';
return;
}
msgConverted = wlibConvertInput(msg);
if ( balloonF == NULL ) {
- GtkWidget *alignment;
+ //GtkWidget *alignment;
- balloonF = gtk_window_new( GTK_WINDOW_TOPLEVEL );
+ balloonF = gtk_window_new( GTK_WINDOW_POPUP );
gtk_window_set_type_hint( GTK_WINDOW( balloonF), GDK_WINDOW_TYPE_HINT_TOOLTIP );
gtk_window_set_decorated (GTK_WINDOW (balloonF), FALSE );
gtk_window_set_resizable( GTK_WINDOW (balloonF), FALSE );
+ gtk_window_set_accept_focus(GTK_WINDOW( balloonF), FALSE);
- alignment = gtk_alignment_new (0.5, 0.5, 1.0, 1.0);
+ GtkWidget * alignment = gtk_alignment_new (0.5, 0.5, 1.0, 1.0);
gtk_alignment_set_padding( GTK_ALIGNMENT(alignment), 6, 6, 6, 6 );
-
+
gtk_container_add (GTK_CONTAINER (balloonF), alignment);
+
gtk_widget_show (alignment);
balloonPI = gtk_label_new(msgConverted);
gtk_container_add( GTK_CONTAINER(alignment), balloonPI );
- gtk_widget_show( balloonPI );
+ gtk_widget_show_all( balloonPI );
}
gtk_label_set_text( GTK_LABEL(balloonPI), msgConverted );
balloonDx = dx;
balloonDy = dy;
balloonB = b;
- balloonMsg = msg;
- gtk_widget_get_allocation(balloonPI, &size );
+ snprintf(balloonMsg, sizeof(balloonMsg), "%s", msg);
+ gtk_widget_get_requisition(balloonPI, &size );
w = size.width;
h = size.height;
- gdk_window_get_origin( gtk_widget_get_window( GTK_WIDGET(b->parent->gtkwin)), &x, &y );
+ gtk_window_get_position( GTK_WINDOW(b->parent->gtkwin), &x, &y);
x += b->realX + dx;
y += b->realY + b->h - dy;
@@ -200,7 +202,8 @@ void wControlSetBalloon( wControl_p b, wPos_t dx, wPos_t dy, const char * msg )
y = yy - h ;
}
gtk_window_move( GTK_WINDOW( balloonF ), x, y );
- gtk_widget_show( balloonF );
+ gtk_widget_show_all( balloonF );
+ gtk_widget_show( balloonPI );
balloonVisible = TRUE;
}
diff --git a/app/wlib/gtklib/treeview.c b/app/wlib/gtklib/treeview.c
index e2f2259..2b743cb 100644
--- a/app/wlib/gtklib/treeview.c
+++ b/app/wlib/gtklib/treeview.c
@@ -326,6 +326,7 @@ wlibTreeViewAddData(GtkWidget *tv, int cols, char *label, GdkPixbuf *pixbuf,
gtk_tree_view_column_set_visible(column,
TRUE);
}
+ return 0;
}
diff --git a/app/wlib/gtklib/util.c b/app/wlib/gtklib/util.c
index 61b5b95..e6587a0 100644
--- a/app/wlib/gtklib/util.c
+++ b/app/wlib/gtklib/util.c
@@ -23,6 +23,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
+#include <string.h>
#define GTK_DISABLE_SINGLE_INCLUDES
#define GDK_DISABLE_DEPRECATED
@@ -74,7 +75,7 @@ static wBool_t reverseIcon =
#endif
-
+
/*
*****************************************************************************
*
@@ -91,7 +92,7 @@ static wBool_t reverseIcon =
*/
GdkPixbuf* wlibPixbufFromXBM(
- wIcon_p ip )
+ wIcon_p ip)
{
GdkPixbuf * pixbuf;
@@ -99,39 +100,41 @@ GdkPixbuf* wlibPixbufFromXBM(
char line2[40];
char ** pixmapData;
- int row,col,wb;
+ int row, col, wb;
long rgb;
const char * bits;
- wb = (ip->w+7)/8;
- pixmapData = (char**)malloc((3+ip->h) * sizeof *pixmapData);
+ wb = (ip->w + 7) / 8;
+ pixmapData = (char**) malloc((3 + ip->h) * sizeof *pixmapData);
pixmapData[0] = line0;
rgb = wDrawGetRGB(ip->color);
sprintf(line0, " %d %d 2 1", ip->w, ip->h);
- sprintf(line2, "# c #%2.2lx%2.2lx%2.2lx", (rgb>>16)&0xFF, (rgb>>8)&0xFF,
- rgb&0xFF);
+ sprintf(line2, "# c #%2.2lx%2.2lx%2.2lx", (rgb >> 16)&0xFF, (rgb >> 8)&0xFF,
+ rgb & 0xFF);
pixmapData[1] = ". c None s None";
pixmapData[2] = line2;
bits = ip->bits;
- for (row = 0; row<ip->h; row++) {
- pixmapData[row+3] = (char*)malloc((ip->w+1) * sizeof **pixmapData);
+ for (row = 0; row < ip->h; row++) {
+ pixmapData[row + 3] = (char*) malloc((ip->w + 1) * sizeof **pixmapData);
- for (col = 0; col<ip->w; col++) {
- if (bits[ row*wb+(col>>3) ] & (1<<(col&07))) {
- pixmapData[row+3][col] = '#';
- } else {
- pixmapData[row+3][col] = '.';
+ for (col = 0; col < ip->w; col++) {
+ if (bits[ row * wb + (col >> 3) ] & (1 << (col & 07))) {
+ pixmapData[row + 3][col] = '#';
+ }
+ else {
+ pixmapData[row + 3][col] = '.';
}
}
- pixmapData[row+3][ip->w] = 0;
+ pixmapData[row + 3][ip->w] = 0;
}
- pixbuf = gdk_pixbuf_new_from_xpm_data((const char **)pixmapData);
+ pixbuf = gdk_pixbuf_new_from_xpm_data((const char **) pixmapData);
- for (row = 0; row<ip->h; row++) {
- free(pixmapData[row+3]);
+ for (row = 0; row < ip->h; row++) {
+ free(pixmapData[row + 3]);
}
+ free(pixmapData);
return pixbuf;
}
@@ -145,7 +148,7 @@ GdkPixbuf* wlibPixbufFromXBM(
int wlibAddLabel(wControl_p b, const char * labelStr)
{
- GtkRequisition requisition;
+ GtkRequisition requisition, reqwidget;
if (labelStr == NULL) {
return 0;
@@ -153,12 +156,15 @@ int wlibAddLabel(wControl_p b, const char * labelStr)
b->label = gtk_label_new(wlibConvertInput(labelStr));
gtk_widget_size_request(b->label, &requisition);
+ if (b->widget)
+ gtk_widget_size_request(b->widget, &reqwidget);
+ else
+ reqwidget.height = requisition.height;
gtk_container_add(GTK_CONTAINER(b->parent->widget), b->label);
gtk_fixed_move(GTK_FIXED(b->parent->widget), b->label,
- b->realX-requisition.width-8, b->realY+LABEL_OFFSET);
-
+ b->realX - requisition.width - 8, b->realY + (reqwidget.height/2 - requisition.height/2));
gtk_widget_show(b->label);
- return requisition.width+8;
+ return requisition.width + 8;
}
/**
@@ -175,15 +181,15 @@ int wlibAddLabel(wControl_p b, const char * labelStr)
*/
void * wlibAlloc(
- wWin_p parent,
- wType_e type,
- wPos_t origX,
- wPos_t origY,
- const char * labelStr,
- int size,
- void * data)
+ wWin_p parent,
+ wType_e type,
+ wPos_t origX,
+ wPos_t origY,
+ const char * labelStr,
+ int size,
+ void * data)
{
- wControl_p w = (wControl_p)malloc(size);
+ wControl_p w = (wControl_p) malloc(size);
char * cp;
memset(w, 0, size);
@@ -197,7 +203,7 @@ void * wlibAlloc(
w->origY = origY;
if (labelStr) {
- cp = (char*)malloc(strlen(labelStr)+1);
+ cp = (char*) malloc(strlen(labelStr) + 1);
w->labelStr = cp;
for (; *labelStr; labelStr++)
@@ -220,19 +226,21 @@ void * wlibAlloc(
*/
void wlibComputePos(
- wControl_p b)
+ wControl_p b)
{
wWin_p w = b->parent;
if (b->origX >= 0) {
b->realX = b->origX;
- } else {
+ }
+ else {
b->realX = w->lastX + (-b->origX) - 1;
}
if (b->origY >= 0) {
- b->realY = b->origY + BORDERSIZE + ((w->option&F_MENUBAR)?MENUH:0);
- } else {
+ b->realY = b->origY + BORDERSIZE + ((w->option & F_MENUBAR) ? w->menu_height : 0);
+ }
+ else {
b->realY = w->lastY + (-b->origY) - 1;
}
}
@@ -244,7 +252,7 @@ void wlibComputePos(
*/
void wlibControlGetSize(
- wControl_p b)
+ wControl_p b)
{
GtkRequisition requisition;
gtk_widget_size_request(b->widget, &requisition);
@@ -258,14 +266,15 @@ void wlibControlGetSize(
*/
void wlibAddButton(
- wControl_p b)
+ wControl_p b)
{
wWin_p win = b->parent;
wBool_t resize = FALSE;
if (win->first == NULL) {
win->first = b;
- } else {
+ }
+ else {
win->last->next = b;
}
@@ -275,7 +284,7 @@ void wlibAddButton(
win->lastX = b->realX + b->w;
win->lastY = b->realY + b->h;
- if (win->option&F_AUTOSIZE) {
+ if (win->option & F_AUTOSIZE) {
if (win->lastX > win->realX) {
win->realX = win->lastX;
@@ -312,20 +321,20 @@ void wlibAddButton(
*/
wControl_p wlibGetControlFromPos(
- wWin_p win,
- wPos_t x,
- wPos_t y)
+ wWin_p win,
+ wPos_t x,
+ wPos_t y)
{
wControl_p b;
wPos_t xx, yy;
- for (b=win->first; b != NULL; b = b->next) {
+ for (b = win->first; b != NULL; b = b->next) {
if (b->widget && gtk_widget_get_visible(b->widget)) {
xx = b->realX;
yy = b->realY;
- if (xx <= x && x < xx+b->w &&
- yy <= y && y < yy+b->h) {
+ if (xx <= x && x < xx + b->w &&
+ yy <= y && y < yy + b->h) {
return b;
}
}
@@ -334,7 +343,7 @@ wControl_p wlibGetControlFromPos(
return NULL;
}
-
+
/*
*****************************************************************************
*
@@ -352,13 +361,12 @@ void wBeep(void)
gdk_display_beep(gdk_display_get_default());
}
-
/**
* Flushs all commands to the Window.
*/
void wFlush(
- void)
+ void)
{
while (gtk_events_pending()) {
gtk_main_iteration();
@@ -427,36 +435,36 @@ char * wlibConvertInput(const char * inString)
/* Already UTF-8 encoded? */
if (g_utf8_validate(inString, -1, NULL))
- /* Yes, do not double-convert */
- {
- return (char*)inString;
+ /* Yes, do not double-convert */ {
+ return (char*) inString;
}
- for (cp=inString, extCharCnt=0; *cp; cp++) {
+ for (cp = inString, extCharCnt = 0; *cp; cp++) {
if (((*cp)&0x80) != '\0') {
extCharCnt++;
}
}
- inCharCnt = cp-inString;
+ inCharCnt = cp - inString;
if (extCharCnt == '\0') {
- return (char*)inString;
+ return (char*) inString;
}
- DYNARR_SET(char, conversionBuffer_da, inCharCnt+extCharCnt+1);
+ DYNARR_SET(char, conversionBuffer_da, inCharCnt + extCharCnt + 1);
- for (cp=inString, cq=(char*)conversionBuffer_da.ptr; *cp; cp++) {
+ for (cp = inString, cq = (char*) conversionBuffer_da.ptr; *cp; cp++) {
if (((*cp)&0x80) != 0) {
- *cq++ = 0xC0+(((*cp)&0xC0)>>6);
- *cq++ = 0x80+((*cp)&0x3F);
- } else {
+ *cq++ = 0xC0 + (((*cp)&0xC0) >> 6);
+ *cq++ = 0x80 + ((*cp)&0x3F);
+ }
+ else {
*cq++ = *cp;
}
}
*cq = 0;
- return (char*)conversionBuffer_da.ptr;
+ return (char*) conversionBuffer_da.ptr;
}
/**
@@ -472,31 +480,32 @@ char * wlibConvertOutput(const char * inString)
char * cq;
int extCharCnt, inCharCnt;
- for (cp=inString, extCharCnt=0; *cp; cp++) {
+ for (cp = inString, extCharCnt = 0; *cp; cp++) {
if (((*cp)&0xC0) == 0x80) {
extCharCnt++;
}
}
- inCharCnt = cp-inString;
+ inCharCnt = cp - inString;
if (extCharCnt == '\0') {
- return (char*)inString;
+ return (char*) inString;
}
- DYNARR_SET(char, conversionBuffer_da, inCharCnt+1);
+ DYNARR_SET(char, conversionBuffer_da, inCharCnt + 1);
- for (cp=inString, cq=(char*)conversionBuffer_da.ptr; *cp; cp++) {
+ for (cp = inString, cq = (char*) conversionBuffer_da.ptr; *cp; cp++) {
if (((*cp)&0x80) != 0) {
- *cq++ = 0xC0+(((*cp)&0xC0)>>6);
- *cq++ = 0x80+((*cp)&0x3F);
- } else {
+ *cq++ = 0xC0 + (((*cp)&0xC0) >> 6);
+ *cq++ = 0x80 + ((*cp)&0x3F);
+ }
+ else {
*cq++ = *cp;
}
}
*cq = '\0';
- return (char*)conversionBuffer_da.ptr;
+ return (char*) conversionBuffer_da.ptr;
}
/*-----------------------------------------------------------------*/
@@ -506,30 +515,32 @@ static dynArr_t accelData_da;
#define accelData(N) DYNARR_N( accelData_t, accelData_da, N )
static guint accelKeyMap[] = {
- 0, /* wAccelKey_None, */
- GDK_KEY_Delete, /* wAccelKey_Del, */
- GDK_KEY_Insert, /* wAccelKey_Ins, */
- GDK_KEY_Home, /* wAccelKey_Home, */
- GDK_KEY_End, /* wAccelKey_End, */
- GDK_KEY_Page_Up, /* wAccelKey_Pgup, */
- GDK_KEY_Page_Down, /* wAccelKey_Pgdn, */
- GDK_KEY_Up, /* wAccelKey_Up, */
- GDK_KEY_Down, /* wAccelKey_Down, */
- GDK_KEY_Right, /* wAccelKey_Right, */
- GDK_KEY_Left, /* wAccelKey_Left, */
- GDK_KEY_BackSpace, /* wAccelKey_Back, */
- GDK_KEY_F1, /* wAccelKey_F1, */
- GDK_KEY_F2, /* wAccelKey_F2, */
- GDK_KEY_F3, /* wAccelKey_F3, */
- GDK_KEY_F4, /* wAccelKey_F4, */
- GDK_KEY_F5, /* wAccelKey_F5, */
- GDK_KEY_F6, /* wAccelKey_F6, */
- GDK_KEY_F7, /* wAccelKey_F7, */
- GDK_KEY_F8, /* wAccelKey_F8, */
- GDK_KEY_F9, /* wAccelKey_F9, */
- GDK_KEY_F10, /* wAccelKey_F10, */
- GDK_KEY_F11, /* wAccelKey_F11, */
- GDK_KEY_F12 /* wAccelKey_F12, */
+ 0, /* wAccelKey_None, */
+ GDK_KEY_Delete, /* wAccelKey_Del, */
+ GDK_KEY_Insert, /* wAccelKey_Ins, */
+ GDK_KEY_Home, /* wAccelKey_Home, */
+ GDK_KEY_End, /* wAccelKey_End, */
+ GDK_KEY_Page_Up, /* wAccelKey_Pgup, */
+ GDK_KEY_Page_Down, /* wAccelKey_Pgdn, */
+ GDK_KEY_Up, /* wAccelKey_Up, */
+ GDK_KEY_Down, /* wAccelKey_Down, */
+ GDK_KEY_Right, /* wAccelKey_Right, */
+ GDK_KEY_Left, /* wAccelKey_Left, */
+ GDK_KEY_BackSpace, /* wAccelKey_Back, */
+ GDK_KEY_F1, /* wAccelKey_F1, */
+ GDK_KEY_F2, /* wAccelKey_F2, */
+ GDK_KEY_F3, /* wAccelKey_F3, */
+ GDK_KEY_F4, /* wAccelKey_F4, */
+ GDK_KEY_F5, /* wAccelKey_F5, */
+ GDK_KEY_F6, /* wAccelKey_F6, */
+ GDK_KEY_F7, /* wAccelKey_F7, */
+ GDK_KEY_F8, /* wAccelKey_F8, */
+ GDK_KEY_F9, /* wAccelKey_F9, */
+ GDK_KEY_F10, /* wAccelKey_F10, */
+ GDK_KEY_F11, /* wAccelKey_F11, */
+ GDK_KEY_F12, /* wAccelKey_F12, */
+ GDK_KEY_KP_Add, /* wAccelKey_Numpad_Add */
+ GDK_KEY_KP_Subtract /* wAccelKey_Numpad_Subtract */
};
/**
@@ -542,20 +553,20 @@ static guint accelKeyMap[] = {
*/
void wAttachAccelKey(
- wAccelKey_e key,
- int modifier,
- wAccelKeyCallBack_p action,
- void * data)
+ wAccelKey_e key,
+ int modifier,
+ wAccelKeyCallBack_p action,
+ void * data)
{
accelData_t * ad;
- if (key < 1 || key > wAccelKey_F12) {
- fprintf(stderr, "wAttachAccelKey(%d) out of range\n", (int)key);
- return;
- }
+// if (key < 1 || key > wAccelKey_F12) {
+// fprintf(stderr, "wAttachAccelKey(%d) out of range\n", (int) key);
+// return;
+// }
DYNARR_APPEND(accelData_t, accelData_da, 10);
- ad = &accelData(accelData_da.cnt-1);
+ ad = &accelData(accelData_da.cnt - 1);
ad->key = key;
ad->modifier = modifier;
ad->action = action;
@@ -570,7 +581,7 @@ void wAttachAccelKey(
*/
struct accelData_t * wlibFindAccelKey(
- GdkEventKey * event)
+ GdkEventKey * event)
{
accelData_t * ad;
int modifier = 0;
@@ -587,9 +598,9 @@ struct accelData_t * wlibFindAccelKey(
modifier |= WKEY_ALT;
}
- for (ad=&accelData(0); ad<&accelData(accelData_da.cnt); ad++)
+ for (ad = &accelData(0); ad<&accelData(accelData_da.cnt); ad++)
if (event->keyval == accelKeyMap[ad->key] &&
- modifier == ad->modifier) {
+ modifier == ad->modifier) {
return ad;
}
@@ -604,7 +615,7 @@ struct accelData_t * wlibFindAccelKey(
*/
wBool_t wlibHandleAccelKey(
- GdkEventKey *event)
+ GdkEventKey *event)
{
accelData_t * ad = wlibFindAccelKey(event);
@@ -615,7 +626,7 @@ wBool_t wlibHandleAccelKey(
return FALSE;
}
-
+
/**
* Add control to circular list of synonymous controls. Synonymous controls are kept in sync by
* calling wControlLinkedActive for one member of the list
@@ -652,8 +663,9 @@ void wControlLinkedActive(wControl_p b, int active)
wControl_p savePtr = b;
if (savePtr->type == B_MENUITEM) {
- wMenuPushEnable((wMenuPush_p)savePtr, active);
- } else {
+ wMenuPushEnable((wMenuPush_p) savePtr, active);
+ }
+ else {
wControlActive(savePtr, active);
}
@@ -662,8 +674,9 @@ void wControlLinkedActive(wControl_p b, int active)
while (savePtr && savePtr != b) {
if (savePtr->type == B_MENUITEM) {
- wMenuPushEnable((wMenuPush_p)savePtr, active);
- } else {
+ wMenuPushEnable((wMenuPush_p) savePtr, active);
+ }
+ else {
wControlActive(savePtr, active);
}
diff --git a/app/wlib/gtklib/window.c b/app/wlib/gtklib/window.c
index 489f35e..65706fd 100644
--- a/app/wlib/gtklib/window.c
+++ b/app/wlib/gtklib/window.c
@@ -48,6 +48,7 @@ extern wBool_t listHelpStrings;
static wControl_p firstWin = NULL, lastWin;
static int keyState;
static wBool_t gtkBlockEnabled = TRUE;
+static wBool_t maximize_at_next_show = FALSE;
/*
*****************************************************************************
@@ -58,6 +59,44 @@ static wBool_t gtkBlockEnabled = TRUE;
*/
/**
+ * Get the "monitor" size for the window (strictly the nearest or most used monitor)
+ * Note in OSX there is one giant virtual monitor so this doesn't work to force resize down...
+ *
+ */
+
+static GdkRectangle getMonitorDimensions(GtkWidget * widget) {
+
+ GdkRectangle monitor_dimensions;
+
+ GdkScreen *screen = NULL;
+
+ int monitor;
+
+ GtkWidget * toplevel = gtk_widget_get_toplevel(widget);
+
+ if (gtk_widget_is_toplevel(GTK_WIDGET(toplevel)) &&
+ gtk_widget_get_parent_window(GTK_WIDGET(toplevel))) {
+
+ GdkWindow * window = GDK_WINDOW(gtk_widget_get_parent_window(GTK_WIDGET(toplevel)));
+
+ screen = gdk_window_get_screen(GDK_WINDOW(window));
+
+ monitor = gdk_screen_get_monitor_at_window(screen,GDK_WINDOW(window));
+
+ } else {
+
+ screen = gdk_screen_get_default();
+
+ monitor = gdk_screen_get_primary_monitor(screen);
+
+ }
+
+ gdk_screen_get_monitor_geometry(screen,monitor,&monitor_dimensions);
+
+ return monitor_dimensions;
+}
+
+/**
* Get the window size from the resource (.rc) file. The size is saved under the key
* SECTIONWINDOWSIZE.window name
*
@@ -71,6 +110,16 @@ static void getWinSize(wWin_p win, const char * nameStr)
const char *cp;
char *cp1, *cp2;
+ /*
+ * Clamp window to be no bigger than one monitor size (to start - the user can always maximize)
+ */
+
+ GdkRectangle monitor_dimensions = getMonitorDimensions(GTK_WIDGET(win->gtkwin));
+
+ wPos_t maxDisplayWidth = monitor_dimensions.width-5;
+ wPos_t maxDisplayHeight = monitor_dimensions.height-25;
+
+
if ((win->option&F_RESIZE) &&
(win->option&F_RECALLPOS) &&
(cp = wPrefGetString(SECTIONWINDOWSIZE, nameStr)) &&
@@ -84,6 +133,9 @@ static void getWinSize(wWin_p win, const char * nameStr)
h = 10;
}
+ if (w > maxDisplayWidth) w = maxDisplayWidth;
+ if (h > maxDisplayHeight) h = maxDisplayHeight;
+
win->w = win->origX = w;
win->h = win->origY = h;
win->option &= ~F_AUTOSIZE;
@@ -103,7 +155,7 @@ static void saveSize(wWin_p win)
if ((win->option&F_RESIZE) &&
(win->option&F_RECALLPOS) &&
gtk_widget_get_visible(GTK_WIDGET(win->gtkwin))) {
- char pos_s[20];
+ char pos_s[20];
sprintf(pos_s, "%d %d", win->w,
win->h-(BORDERSIZE + ((win->option&F_MENUBAR)?MENUH:0)));
@@ -121,14 +173,13 @@ static void saveSize(wWin_p win)
static void getPos(wWin_p win)
{
char *cp1, *cp2;
- wPos_t gtkDisplayWidth = gdk_screen_width();
- wPos_t gtkDisplayHeight = gdk_screen_height();
+ GdkRectangle monitor_dimensions = getMonitorDimensions(GTK_WIDGET(win->gtkwin));
if ((win->option&F_RECALLPOS) && (!win->shown)) {
- const char *cp;
+ const char *cp;
if ((cp = wPrefGetString(SECTIONWINDOWPOS, win->nameStr))) {
- int x, y;
+ int x, y;
x = strtod(cp, &cp1);
@@ -142,12 +193,12 @@ static void getPos(wWin_p win)
return;
}
- if (y > gtkDisplayHeight-win->h) {
- y = gtkDisplayHeight-win->h;
+ if (y > monitor_dimensions.height+monitor_dimensions.y-win->h) {
+ y = monitor_dimensions.height+monitor_dimensions.y-win->h;
}
- if (x > gtkDisplayWidth-win->w) {
- x = gtkDisplayWidth-win->w;
+ if (x > monitor_dimensions.width+monitor_dimensions.x-win->w) {
+ x = monitor_dimensions.width+monitor_dimensions.x-win->w;
}
if (x <= 0) {
@@ -176,7 +227,7 @@ static void savePos(wWin_p win)
int x, y;
if ((win->option&F_RECALLPOS)) {
- char pos_s[20];
+ char pos_s[20];
gdk_window_get_position(gtk_widget_get_window(GTK_WIDGET(win->gtkwin)), &x, &y);
x -= 5;
@@ -216,7 +267,7 @@ void wWinGetSize(
}
*width = w;
- *height = h - BORDERSIZE - ((win->option&F_MENUBAR)?MENUH:0);
+ *height = h - BORDERSIZE - ((win->option&F_MENUBAR)?win->menu_height:0);
}
/**
@@ -234,8 +285,8 @@ void wWinSetSize(
{
win->busy = TRUE;
win->w = width;
- win->h = height + BORDERSIZE + ((win->option&F_MENUBAR)?MENUH:0);
- gtk_widget_set_size_request(win->gtkwin, win->w, win->h);
+ win->h = height + BORDERSIZE + ((win->option&F_MENUBAR)?win->menu_height:0);
+ //gtk_widget_set_size_request(win->gtkwin, win->w, win->h);
gtk_widget_set_size_request(win->widget, win->w, win->h);
win->busy = FALSE;
}
@@ -271,11 +322,15 @@ void wWinShow(
gtk_widget_size_request(win->gtkwin, &requisition);
if (requisition.width != win->w || requisition.height != win->h) {
- gtk_widget_set_size_request(win->gtkwin, win->w, win->h);
- gtk_widget_set_size_request(win->widget, win->w, win->h);
+ //gtk_window_resize(GTK_WINDOW(win->gtkwin), win->w, win->h);
+ gtk_widget_set_size_request(win->gtkwin, win->w, win->h);
+ gtk_widget_set_size_request(win->widget, win->w-20, win->h);
if (win->option&F_MENUBAR) {
- gtk_widget_set_size_request(win->menubar, win->w, MENUH);
+ gtk_widget_set_size_request(win->menubar, win->w-20, MENUH);
+ GtkAllocation allocation;
+ gtk_widget_get_allocation(win->menubar, &allocation);
+ win->menu_height = allocation.height;
}
}
}
@@ -299,6 +354,10 @@ void wWinShow(
} else {
wlibDoModal(win, TRUE);
}
+ if (maximize_at_next_show) {
+ gtk_window_maximize(GTK_WINDOW(win->gtkwin));
+ maximize_at_next_show = FALSE;
+ }
} else {
wFlush();
saveSize(win);
@@ -340,6 +399,18 @@ wBool_t wWinIsVisible(
}
/**
+ * Returns whether the window is maximized.
+ *
+ * \param win IN window
+ * \return TRUE if maximized, FALSE otherwise
+ */
+
+wBool_t wWinIsMaximized(wWin_p win)
+{
+ return win->maximize_initially;
+}
+
+/**
* Sets the title of <win> to <title>.
*
* \param varname1 IN window
@@ -480,6 +551,25 @@ void wWinDoCancel(
******************************************************************************
*/
+static int window_redraw(
+ wWin_p win,
+ wBool_t doWinProc)
+{
+ wControl_p b;
+
+ if (win==NULL) {
+ return FALSE;
+ }
+
+ for (b=win->first; b != NULL; b = b->next) {
+ if (b->repaintProc) {
+ b->repaintProc(b);
+ }
+ }
+
+ return FALSE;
+}
+
static gint window_delete_event(
GtkWidget *widget,
GdkEvent *event,
@@ -511,25 +601,6 @@ static gint window_delete_event(
return (TRUE);
}
-static int window_redraw(
- wWin_p win,
- wBool_t doWinProc)
-{
- wControl_p b;
-
- if (win==NULL) {
- return FALSE;
- }
-
- for (b=win->first; b != NULL; b = b->next) {
- if (b->repaintProc) {
- b->repaintProc(b);
- }
- }
-
- return FALSE;
-}
-
static int fixed_expose_event(
GtkWidget * widget,
GdkEventExpose * event,
@@ -542,27 +613,37 @@ static int fixed_expose_event(
}
}
+static int resizeTime(wWin_p win) {
+
+ if (win->resizeW == win->w && win->resizeH == win->h) { // If hasn't changed since last
+ win->resizeTimer = 0;
+ return FALSE; //Stop Timer and don't resize
+ }
+ if (win->busy==FALSE && win->winProc) { //Always drive once
+ win->winProc(win, wResize_e, win->data);
+ win->resizeW = win->w; //Remember this one
+ win->resizeH = win->h;
+ }
+ return TRUE; //Will redrive after another timer interval
+}
+
static int window_configure_event(
GtkWidget * widget,
GdkEventConfigure * event,
wWin_p win)
{
-// wPos_t h;
if (win==NULL) {
return FALSE;
}
- //h = event->height - BORDERSIZE;
-
- //if (win->option&F_MENUBAR) {
- //h -= MENUH;
- //}
-
if (win->option&F_RESIZE) {
if (event->width < 10 || event->height < 10) {
return TRUE;
}
+ int w = win->w;
+ int h = win->h;
+
if (win->w != event->width || win->h != event->height) {
win->w = event->width;
@@ -577,11 +658,18 @@ static int window_configure_event(
}
if (win->option&F_MENUBAR) {
- gtk_widget_set_size_request(win->menubar, win->w, MENUH);
+ GtkAllocation allocation;
+ gtk_widget_get_allocation(win->menubar, &allocation);
+ win->menu_height= allocation.height;
+ gtk_widget_set_size_request(win->menubar, win->w-20, win->menu_height);
}
-
- if (win->busy==FALSE && win->winProc) {
- win->winProc(win, wResize_e, win->data);
+ if (win->resizeTimer) { // Already have a timer
+ return FALSE;
+ } else {
+ win->resizeW = w; //Remember where this started
+ win->resizeH = h;
+ win->resizeTimer = g_timeout_add(200,(GSourceFunc)resizeTime,win); // 200ms delay
+ return FALSE;
}
}
}
@@ -590,6 +678,38 @@ static int window_configure_event(
}
/**
+ * Event handler for window state changes (maximize)
+ * Handles maximize event by storing the new state in the internal structure and
+ * calling the event handler
+ *
+ * \param widget gtk widget
+ * \param event event information
+ * \param win the wlib internal window data
+ * \return TRUE if win is valid,
+ */
+
+gboolean window_state_event(
+ GtkWidget *widget,
+ GdkEventWindowState *event,
+ wWin_p win)
+{
+ if (!win) {
+ return (FALSE);
+ }
+
+ win->maximize_initially = FALSE;
+
+ if (event->new_window_state & GDK_WINDOW_STATE_MAXIMIZED) {
+ win->maximize_initially = TRUE;
+ }
+
+ if (win->busy==FALSE && win->winProc) {
+ win->winProc(win, wState_e, win->data);
+ }
+
+ return TRUE;
+}
+/**
* Get current state of shift, ctrl or alt keys.
*
* \return or'ed value of WKEY_SHIFT, WKEY_CTRL and WKEY_ALT depending on state
@@ -680,19 +800,22 @@ static gint window_char_event(
*******************************************************************************
*/
+
/**
- * Create a window
+ * Create a window.
+ * Default width and height are replaced by values stored in the configuration
+ * file (.rc)
*
* \param parent IN parent window
* \param winType IN type of window
- * \param x IN x position
- * \param y IN y position
+ * \param x IN default width
+ * \param y IN default height
* \param labelStr IN window title
- * \param nameStr IN
- * \param option IN
+ * \param nameStr IN name of window
+ * \param option IN misc options for placement and sizing of window
* \param winProc IN window procedure
* \param data IN additional data to pass to the window procedure
- * \return describe the return value
+ * \return the newly created window
*/
static wWin_p wWinCommonCreate(
@@ -711,7 +834,9 @@ static wWin_p wWinCommonCreate(
w = wlibAlloc(NULL, winType, x, y, labelStr, sizeof *w, data);
w->busy = TRUE;
w->option = option;
- getWinSize(w, nameStr);
+ w->resizeTimer = 0;
+
+
h = BORDERSIZE;
if (w->option&F_MENUBAR) {
@@ -728,6 +853,9 @@ static wWin_p wWinCommonCreate(
GTK_WINDOW(gtkMainW->gtkwin));
}
}
+ if (winType != W_MAIN) {
+ getWinSize(w, nameStr);
+ }
if (option & F_HIDE) {
gtk_widget_hide(w->gtkwin);
@@ -738,6 +866,7 @@ static wWin_p wWinCommonCreate(
gtk_window_set_position(GTK_WINDOW(w->gtkwin), GTK_WIN_POS_CENTER_ON_PARENT);
}
+
w->widget = gtk_fixed_new();
if (w->widget == 0) {
@@ -748,7 +877,10 @@ static wWin_p wWinCommonCreate(
w->menubar = gtk_menu_bar_new();
gtk_container_add(GTK_CONTAINER(w->widget), w->menubar);
gtk_widget_show(w->menubar);
- gtk_widget_set_size_request(w->menubar, -1, MENUH);
+ GtkAllocation allocation;
+ gtk_widget_get_allocation(w->menubar, &allocation);
+ w->menu_height = allocation.height;
+ gtk_widget_set_size_request(w->menubar, -1, w->menu_height);
}
gtk_container_add(GTK_CONTAINER(w->gtkwin), w->widget);
@@ -758,14 +890,14 @@ static wWin_p wWinCommonCreate(
w->w = 0;
w->realY = h;
w->h = 0;
- } else {
+ } else if (w->origX != 0){
w->w = w->realX = w->origX;
w->h = w->realY = w->origY+h;
- gtk_widget_set_size_request(w->gtkwin, w->w, w->h);
- gtk_widget_set_size_request(w->widget, w->w, w->h);
+ gtk_window_set_default_size(GTK_WINDOW(w->gtkwin), w->w, w->h);
+ //gtk_widget_set_size_request(w->widget, w->w-20, w->h);
if (w->option&F_MENUBAR) {
- gtk_widget_set_size_request(w->menubar, w->w, MENUH);
+ gtk_widget_set_size_request(w->menubar, w->w-20, MENUH);
}
}
@@ -777,6 +909,8 @@ static wWin_p wWinCommonCreate(
G_CALLBACK(fixed_expose_event), w);
g_signal_connect(GTK_OBJECT(w->gtkwin), "configure_event",
G_CALLBACK(window_configure_event), w);
+ g_signal_connect(GTK_OBJECT(w->gtkwin), "window-state-event",
+ G_CALLBACK(window_state_event), w);
g_signal_connect(GTK_OBJECT(w->gtkwin), "key_press_event",
G_CALLBACK(window_char_event), w);
g_signal_connect(GTK_OBJECT(w->gtkwin), "key_release_event",
@@ -813,7 +947,16 @@ static wWin_p wWinCommonCreate(
lastWin = (wControl_p)w;
gtk_widget_show(w->widget);
gtk_widget_realize(w->gtkwin);
+ GtkAllocation allocation;
+ gtk_widget_get_allocation(w->gtkwin, &allocation);
+ w->menu_height = allocation.height;
+
w->busy = FALSE;
+
+ if (option&F_MAXIMIZE) {
+ maximize_at_next_show = TRUE;
+ }
+
return w;
}
@@ -846,8 +989,11 @@ wWin_p wWinMainCreate(
void * data) /* User context */
{
char *pos;
+ long isMaximized;
- if (pos = strchr(name, ';')) {
+ pos = strchr(name, ';');
+
+ if (pos) {
/* if found, split application name and configuration name */
strcpy(wConfigName, pos + 1);
} else {
@@ -855,8 +1001,12 @@ wWin_p wWinMainCreate(
strcpy(wConfigName, name);
}
+ wPrefGetInteger("draw", "maximized", &isMaximized, 0);
+ option = option | (isMaximized?F_MAXIMIZE:0);
+
gtkMainW = wWinCommonCreate(NULL, W_MAIN, x, y, labelStr, nameStr, option,
winProc, data);
+
wDrawColorWhite = wDrawFindColor(0xFFFFFF);
wDrawColorBlack = wDrawFindColor(0x000000);
return gtkMainW;
diff --git a/app/wlib/gtklib/wpref.c b/app/wlib/gtklib/wpref.c
index effc2a5..c2541f9 100644
--- a/app/wlib/gtklib/wpref.c
+++ b/app/wlib/gtklib/wpref.c
@@ -312,7 +312,7 @@ void wPrefSetString(
* \param name IN name of parameter
*/
-const char * wPrefGetString(
+char * wPrefGetStringBasic(
const char * section, /* Section */
const char * name ) /* Name */
{
@@ -358,7 +358,7 @@ const char * wPrefGetString(
* \return TRUE if value differs from default, FALSE if the same
*/
-wBool_t wPrefGetInteger(
+wBool_t wPrefGetIntegerBasic(
const char * section, /* Section */
const char * name, /* Name */
long * res, /* Address of result */
@@ -367,7 +367,7 @@ wBool_t wPrefGetInteger(
const char * cp;
char *cp1;
- cp = wPrefGetString( section, name );
+ cp = wPrefGetStringBasic( section, name );
if (cp == NULL) {
*res = def;
return FALSE;
@@ -410,7 +410,7 @@ wBool_t wPrefGetInteger(
*/
-wBool_t wPrefGetFloat(
+wBool_t wPrefGetFloatBasic(
const char * section, /* Section */
const char * name, /* Name */
double * res, /* Address of result */
@@ -419,7 +419,7 @@ wBool_t wPrefGetFloat(
const char * cp;
char *cp1;
- cp = wPrefGetString( section, name );
+ cp = wPrefGetStringBasic( section, name );
if (cp == NULL) {
*res = def;
return FALSE;
diff --git a/app/wlib/include/wcolors.h b/app/wlib/include/wcolors.h
index 46d15a8..525c98f 100644
--- a/app/wlib/include/wcolors.h
+++ b/app/wlib/include/wcolors.h
@@ -1,42 +1,42 @@
/* Some colors */
-#define wDrawColorWhite (0)
-#define wDrawColorBlack (1)
-#define wDrawColorRed (2)
-#define wDrawColorGreen (3)
-#define wDrawColorBlue (4)
-#define wDrawColorYellow (5)
-#define wDrawColorPurple (6)
-#define wDrawColorAqua (7)
-#define wDrawColorDkRed (8)
-#define wDrawColorDkGreen (9)
-#define wDrawColorDkBlue (10)
-#define wDrawColorDkYellow (11)
-#define wDrawColorDkPurple (12)
-#define wDrawColorDkAqua (13)
-#define wDrawColorRoyalBlue (14)
-#define wDrawColorDeepSkyBlue (15)
-#define wDrawColorLightSkyBlue (16)
-#define wDrawColorSteelBlue (17)
-#define wDrawColorPowderBlue (18)
-#define wDrawColorAquamarine (19)
-#define wDrawColorSeaGreen (20)
-#define wDrawColorPaleGreen (21)
-#define wDrawColorLawnGreen (22)
-#define wDrawColorLimeGreen (23)
-#define wDrawColorForestGreen (24)
-#define wDrawColorGold (25)
-#define wDrawColorRosyBrown (26)
-#define wDrawColorSaddleBrown (27)
-#define wDrawColorBeige (28)
-#define wDrawColorTan (29)
-#define wDrawColorChocolate (30)
-#define wDrawColorBrown (31)
-#define wDrawColorOrange (32)
-#define wDrawColorCoral (33)
-#define wDrawColorTomato (34)
-#define wDrawColorHotPink (35)
-#define wDrawColorPink (36)
-#define wDrawColorMaroon (37)
-#define wDrawColorViolet (38)
-#define wDrawColorPurple2 (39)
+//#define wDrawColorWhite (0)
+//#define wDrawColorBlack (1)
+//#define wDrawColorRed (2)
+//#define wDrawColorGreen (3)
+//#define wDrawColorBlue (4)
+//#define wDrawColorYellow (5)
+//#define wDrawColorPurple (6)
+//#define wDrawColorAqua (7)
+//#define wDrawColorDkRed (8)
+//#define wDrawColorDkGreen (9)
+//#define wDrawColorDkBlue (10)
+//#define wDrawColorDkYellow (11)
+//#define wDrawColorDkPurple (12)
+//#define wDrawColorDkAqua (13)
+//#define wDrawColorRoyalBlue (14)
+//#define wDrawColorDeepSkyBlue (15)
+//#define wDrawColorLightSkyBlue (16)
+//#define wDrawColorSteelBlue (17)
+//#define wDrawColorPowderBlue (18)
+//#define wDrawColorAquamarine (19)
+//#define wDrawColorSeaGreen (20)
+//#define wDrawColorPaleGreen (21)
+//#define wDrawColorLawnGreen (22)
+//#define wDrawColorLimeGreen (23)
+//#define wDrawColorForestGreen (24)
+//#define wDrawColorGold (25)
+//#define wDrawColorRosyBrown (26)
+//#define wDrawColorSaddleBrown (27)
+//#define wDrawColorBeige (28)
+//#define wDrawColorTan (29)
+//#define wDrawColorChocolate (30)
+//#define wDrawColorBrown (31)
+//#define wDrawColorOrange (32)
+//#define wDrawColorCoral (33)
+//#define wDrawColorTomato (34)
+//#define wDrawColorHotPink (35)
+//#define wDrawColorPink (36)
+//#define wDrawColorMaroon (37)
+//#define wDrawColorViolet (38)
+//#define wDrawColorPurple2 (39)
diff --git a/app/wlib/include/wlib.h b/app/wlib/include/wlib.h
index fa07454..9d055d7 100644
--- a/app/wlib/include/wlib.h
+++ b/app/wlib/include/wlib.h
@@ -2,8 +2,8 @@
* Common definitions and declarations for the wlib library
*/
-#ifndef WIN_H
-#define WIN_H
+#ifndef HAVE_WLIB_H
+#define HAVE_WLIB_H
#ifdef WINDOWS
#include <stdio.h>
#define FILE_SEP_CHAR "\\"
@@ -54,6 +54,7 @@ typedef struct wIcon_t * wIcon_p;
typedef struct wDrawBitMap_t * wDrawBitMap_p;
typedef struct wFont_t * wFont_p;
typedef struct wBitmap_t * wBitmap_p;
+typedef struct wStatus_t * wStatus_p;
typedef int wDrawWidth;
typedef int wDrawColor;
@@ -204,6 +205,7 @@ FILE * wFileOpen( const char *, const char * );
typedef enum {
wClose_e,
wResize_e,
+ wState_e,
wQuit_e,
wRedraw_e }
winProcEvent;
@@ -220,7 +222,8 @@ typedef void (*wWinCallBack_p)( wWin_p, winProcEvent, void * );
#define F_RECALLSIZE (1L<<10)
#define F_TOP (1L<<11)
#define F_CENTER (1L<<12)
-#define F_HIDE (1L<<12)
+#define F_HIDE (1L<<13)
+#define F_MAXIMIZE (1L<<14)
wWin_p wWinMainCreate( const char *, wPos_t, wPos_t, const char *, const char *, const char *,
long, wWinCallBack_p, void * );
@@ -232,6 +235,7 @@ void wWinSetBigIcon( wWin_p, wIcon_p );
void wWinSetSmallIcon( wWin_p, wIcon_p );
void wWinShow( wWin_p, wBool_t );
wBool_t wWinIsVisible( wWin_p );
+wBool_t wWinIsMaximized( wWin_p win);
void wWinGetSize ( wWin_p, wPos_t *, wPos_t * );
void wWinSetSize( wWin_p, wPos_t, wPos_t );
void wWinSetTitle( wWin_p, const char * );
@@ -372,6 +376,7 @@ void wListSetEditable( wList_p, wBool_t );
#define BM_LARGE (1L<<24)
#define BM_SMALL (1L<<25)
+#define COMBOBOX (1L)
#define wMessageSetFont( x ) ( x & (BM_LARGE | BM_SMALL ))
@@ -381,6 +386,7 @@ wMessage_p wMessageCreateEx( wWin_p, wPos_t, wPos_t, const char *,
void wMessageSetValue( wMessage_p, const char * );
void wMessageSetWidth( wMessage_p, wPos_t );
+wPos_t wMessageGetWidth( const char *testString );
wPos_t wMessageGetHeight( long );
@@ -466,7 +472,8 @@ typedef void (*wDrawActionCallBack_p)( wDraw_p, void*, wAction_t, wPos_t, wPos_t
/* Creation Options */
#define BD_TICKS (1L<<25)
#define BD_DIRECT (1L<<26)
-#define BD_NOCAPTURE (1L<<27)
+#define BD_NOCAPTURE (1L<<27)
+#define BD_NOFOCUS (1L<<28)
/* Create: */
wDraw_p wDrawCreate( wWin_p, wPos_t, wPos_t, const char *, long,
@@ -594,7 +601,10 @@ typedef enum {
wAccelKey_F9,
wAccelKey_F10,
wAccelKey_F11,
- wAccelKey_F12 }
+ wAccelKey_F12,
+ wAccelKey_Numpad_Add,
+ wAccelKey_Numpad_Subtract,
+ wAccelKey_LineFeed }
wAccelKey_e;
/* Creation CallBacks */
@@ -677,16 +687,43 @@ wDrawColor wColorSelectButtonGetColor( wButton_p );
* Preferences
*/
-void wPrefSetString( const char *, const char *, const char * );
-const char * wPrefGetString( const char *, const char * );
-void wPrefSetInteger( const char *, const char *, long );
-wBool_t wPrefGetInteger( const char *, const char *, long *, long );
+void wPrefSetString(const char *, const char *, const char * );
+char * wPrefGetString(const char *section, const char *name);
+char * wPrefGetStringBasic( const char *section, const char *name );
+char * wPrefGetStringExt(const char *section, const char *name);
+
+void wPrefSetInteger(const char *, const char *, long );
+wBool_t wPrefGetInteger(const char *section, const char *name, long *result, long defaultValue);
+wBool_t wPrefGetIntegerBasic(const char *section, const char *name, long *result, long defaultValue);
+wBool_t wPrefGetIntegerExt(const char *section, const char *name, long *result, long defaultValue);
+
void wPrefSetFloat( const char *, const char *, double );
-wBool_t wPrefGetFloat( const char *, const char *, double *, double );
+wBool_t wPrefGetFloat(const char *section, const char *name, double *result, double defaultValue);
+wBool_t wPrefGetFloatBasic(const char *section, const char *name, double *result, double defaultValue);
+wBool_t wPrefGetFloatExt(const char *section, const char *name, double *result, double defaultValue);
+
const char * wPrefGetSectionItem( const char * sectionName, wIndex_t * index, const char ** name );
void wPrefFlush( void );
void wPrefReset( void );
void CleanupCustom( void );
+/*------------------------------------------------------------------------------
+ *
+ * Statusbar
+ */
+
+wStatus_p wStatusCreate(
+ wWin_p parent,
+ wPos_t x,
+ wPos_t y,
+ const char * labelStr,
+ wPos_t width,
+ const char *message );
+
+wPos_t wStatusGetWidth(const char *testString);
+wPos_t wStatusGetHeight(long flags);
+
+void wStatusSetValue(wStatus_p b, const char * arg);
+void wStatusSetWidth(wStatus_p b, wPos_t width);
#endif
diff --git a/app/wlib/mswlib/CMakeLists.txt b/app/wlib/mswlib/CMakeLists.txt
index 0c69610..82d8371 100644
--- a/app/wlib/mswlib/CMakeLists.txt
+++ b/app/wlib/mswlib/CMakeLists.txt
@@ -19,6 +19,7 @@ SET(SOURCES
mswpref.c
mswprint.c
mswsplash.c
+ mswstatus.c
mswtext.c
gwin32.c
simple-gettext.c
diff --git a/app/wlib/mswlib/ChangeLog b/app/wlib/mswlib/ChangeLog
deleted file mode 100644
index 84c17a7..0000000
--- a/app/wlib/mswlib/ChangeLog
+++ /dev/null
@@ -1,146 +0,0 @@
-Apr 28, 2010
- FIX: Daniel Spagnol
- mswmisc.c: now, wGetAppLibDir can be called before wWinMainCreate is
- called.
-
-Jan 09, 2010
- ENH: Martin Fischer
- mswmisc.c: get command line parameter handling correct
- plus some refactoring
-
-Dec 12, 2009
- FIX: Martin Fischer
- mswmisc.c: minor refactoring to stay compatible with the
- work on gtkwindow.c
-
-Sep 20. 2009
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- CMakeLists.txt, mswbitmap.c, mswmisc.c, mswint.h:
- new source file for bitmap functions, added bitmap
- control to controls available to the application
-
-Sep 02, 2009
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- mswbutt.c, mswint.h, mswlist.c mswmisc.c:
- improved XPM reading including true transparency
-
-Aug 16, 2009
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- gwin32.c mswchoic.c mswint.h simple-gettext.c CMakeLists.txt:
- add simple gettext support
-
-Jul 24, 2009
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- mswmisc.c: correct initialization for argv, add option
- to select configuration file, remove obsolete Win16 code
-
-Jul 10, 2009
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- mswmisc.c: initialize the argument array properly
- CMakeLists.txt, getopt.c: add getopt()
-
-Version 4.0.3a
-==============
-
-Jun 05, 2009
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- mswmisc.c: GPF when loading XPM icons fixed
-
-May 28, 2009
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- mswmisc.c: wrong options for wNotice fixed
-
-May 15, 2009
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- mswdraw.c, mswmisc.c, mswpref.c: more message boxes with icon
-
- May 08, 2009
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- mswmisc.c, wlib.h: add new message box with icon
-
-Sep 05, 2008
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- mswmisc.c: enhance look of tooltip
-
-Jul 11, 2008
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- mswchoic.c: i18n support
- mswmenu.c, mswmisc.c: code cleanup and added comments
-
-Jul 10, 2008
- ENH: Martin Fischer <m_fischer@users.sourceforge.net>
- mswmisc.c: allow user to cancel window close request
-
-Jun 12, 2008
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- mswmsg.c: redraw problem for large font fixed
-
-Apr 05, 2008
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- mswmisc,.c mswint.c: improved XPM support
-
-Mar 29, 2008
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- mswbutt.c: new look for toolbar buttons
-
-Mar 17, 2008
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- mswchoic.c: Label size was not calculated correctly for radio button
- options.
-
-Feb 23,2008
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- mswpref.c: Create the correct full path for shared data directory
-
-Jan 24,2008
- FIX: Martin Fischer <m_fischer@users.sourceforge.net>
- mswdraw.c, mswmisc.c: fixed some compiler warnings
-
-Jan 28, 2008
- FIX: Mikko Nissinen <mni77@users.sourceforge.net>
- mswmisc.c: Dynamically allocate and form some global translatable
- strings.
-
-Jan 24,2008
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- mswpref.c: increase floting point precision when storing floats in INI
- file
-
-Jan 22, 2008
- ENH: Mikko Nissinen <mni77@users.sourceforge.net>
- mswmisc.c: WinMain(): Free user locale before exit.
-
-Dec 16, 2007
- IMPROVMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- mswpref.c: use XTrackCad as directory name for configuration files
-
-Aug 03, 2007
- IMPROVMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- mswmisc.c: use HTML Help as the help system
-
-Jul 22, 2007
- IMPROVMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- mswdraw.c, mswmisc.c: added support for mouse wheel in
- the drawing area
-
-Jun 17, 2007
- IMPROVMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- mswpref.c: added wGetUserHomeDir()
-
-Jun, 16 2007
- IMPROVEMENT: Martin Fischer <m_fischer@users.sourceforge.net>
- mswpref.c working directory is in the user profile directory tree now
-
-Feb, 05th 2007
- BUGFIX: Martin Fischer <m_fischer@users.sourceforge.net>
- mswmisc.c fixed protection fault when pressing ESC in describe dialog
-
-Feb, 04th 2007
- BUGFIX: Martin Fischer <m_fischer@users.sourceforge.net>
- mswmisc.c fixed protection fault when Tabbing through describe dialog
- See xtrkcad-fork Bug 1651117
-
-Oct, 13 2006 mswmisc.c
- BUGFIX Bob Blackwell
- Fixed a problem with 'No' and 'Cancel' buttons being mixed up
-
diff --git a/app/wlib/mswlib/mswbitmap.c b/app/wlib/mswlib/mswbitmap.c
index 7371834..e369e78 100644
--- a/app/wlib/mswlib/mswbitmap.c
+++ b/app/wlib/mswlib/mswbitmap.c
@@ -144,7 +144,7 @@ void mswDrawIcon(
COLORREF col;
/* draw the bitmap by dynamically creating a Windows DIB in memory */
-
+ /* BITMAPINFO already has one RGBQUAD color struct, so only allocate the rest */
bmiInfo = malloc( sizeof( BITMAPINFO ) + (bm->colorcnt - 1) * sizeof( RGBQUAD ));
if( !bmiInfo ) {
fprintf( stderr, "could not allocate memory for bmiInfo\n" );
@@ -201,17 +201,19 @@ void mswDrawIcon(
if( disabled ) {
/* create a gray scale palette */
for( i = 0; i < bm->colorcnt; i ++ ) {
- byt = ( 30 * bm->colormap[ i ].rgbRed +
- 59 * bm->colormap[ i ].rgbGreen +
- 11 * bm->colormap[ i ].rgbBlue )/100;
-
- /* if totally black, use a dark gray */
- if( byt == 0 )
- byt = 0x66;
-
- bmiInfo->bmiColors[ i ].rgbRed = byt;
- bmiInfo->bmiColors[ i ].rgbGreen = byt;
- bmiInfo->bmiColors[ i ].rgbBlue = byt;
+ if (i != bm->transparent) {
+ byt = (30 * bm->colormap[i].rgbRed +
+ 59 * bm->colormap[i].rgbGreen +
+ 11 * bm->colormap[i].rgbBlue) / 100;
+
+ /* if totally black, use a dark gray */
+ if (byt == 0)
+ byt = 0x66;
+
+ bmiInfo->bmiColors[i].rgbRed = byt;
+ bmiInfo->bmiColors[i].rgbGreen = byt;
+ bmiInfo->bmiColors[i].rgbBlue = byt;
+ }
}
} else {
/* copy the palette */
diff --git a/app/wlib/mswlib/mswbutt.c b/app/wlib/mswlib/mswbutt.c
index 24e669f..d213695 100644
--- a/app/wlib/mswlib/mswbutt.c
+++ b/app/wlib/mswlib/mswbutt.c
@@ -1,3 +1,25 @@
+/** \file mswbutt.c
+* Buttons
+*/
+
+/* XTrkCad - Model Railroad CAD
+* Copyright (C)
+*
+* This program is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 2 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*/
+
#include <windows.h>
#include <string.h>
#include <malloc.h>
diff --git a/app/wlib/mswlib/mswdraw.c b/app/wlib/mswlib/mswdraw.c
index 498b49e..652dde3 100644
--- a/app/wlib/mswlib/mswdraw.c
+++ b/app/wlib/mswlib/mswdraw.c
@@ -698,6 +698,8 @@ void wDrawGetTextSize(
HFONT newFont, prevFont;
DWORD extent;
int oldLfHeight;
+ TEXTMETRIC textMetric;
+
if (fp == NULL)
fp = &logFont;
fp->lfEscapement = 0;
@@ -707,11 +709,15 @@ void wDrawGetTextSize(
newFont = CreateFontIndirect( fp );
prevFont = SelectObject( bd->hDc, newFont );
extent = GetTextExtent( bd->hDc, CAST_AWAY_CONST text, strlen(text) );
+
+ GetTextMetrics(bd->hDc, &textMetric);
+
x = LOWORD(extent);
y = HIWORD(extent);
*w = XPIXELSTOINCH( bd, x );
*h = YPIXELSTOINCH( bd, y );
- *d = 0;
+ *d = YPIXELSTOINCH(bd, textMetric.tmDescent );
+
SelectObject( bd->hDc, prevFont );
DeleteObject( newFont );
fp->lfHeight = oldLfHeight;
diff --git a/app/wlib/mswlib/mswedit.c b/app/wlib/mswlib/mswedit.c
index 937a83e..fbae89f 100644
--- a/app/wlib/mswlib/mswedit.c
+++ b/app/wlib/mswlib/mswedit.c
@@ -135,7 +135,7 @@ void wStringSetWidth(
const char * wStringGetValue(
wString_p b )
{
- static char buff[256];
+ static char buff[1024];
SendMessage( b->hWnd, WM_GETTEXT, sizeof buff, (DWORD)buff );
return buff;
}
diff --git a/app/wlib/mswlib/mswlist.c b/app/wlib/mswlib/mswlist.c
index 18fa92d..2453a5e 100644
--- a/app/wlib/mswlib/mswlist.c
+++ b/app/wlib/mswlib/mswlist.c
@@ -214,8 +214,10 @@ wIndex_t wListGetValues(
}
cnt = (int)SendMessage( bl->hWnd, msg, inx, (DWORD)(LPSTR)mswTmpBuff );
mswTmpBuff[cnt] = '\0';
- if (s)
- strncpy( s, mswTmpBuff, siz );
+ if (s) {
+ strncpy(s, mswTmpBuff, siz);
+ s[siz-1] = '\0';
+ }
if (bl->last >= 0) {
ldp = (listData*)SendMessage( bl->hWnd,
(bl->type==B_LIST?LB_GETITEMDATA:CB_GETITEMDATA),
diff --git a/app/wlib/mswlib/mswmenu.c b/app/wlib/mswlib/mswmenu.c
index de49742..815752a 100644
--- a/app/wlib/mswlib/mswmenu.c
+++ b/app/wlib/mswlib/mswmenu.c
@@ -315,7 +315,9 @@ static long acclKeyMap[] = {
VK_F9, /* wAccelKey_F9, */
VK_F10, /* wAccelKey_F10, */
VK_F11, /* wAccelKey_F11, */
- VK_F12 /* wAccelKey_F12, */
+ VK_F12, /* wAccelKey_F12, */
+ VK_ADD, /* wAccelKey_Numpad_Add, */
+ VK_SUBTRACT /* wAccelKey_Numpad_Subtract, */
};
@@ -326,7 +328,7 @@ void wAttachAccelKey(
void * data )
{
acclTable_t * ad;
- if ( key < 1 || key > wAccelKey_F12 ) {
+ if ( key < 1 || key > wAccelKey_Numpad_Subtract ) {
mswFail( "wAttachAccelKey: key out of range" );
return;
}
@@ -908,7 +910,7 @@ wMenuToggle_p wMenuToggleCreate(
if ( vk & 0xFF00 )
modifier |= WKEY_SHIFT;
acclTable(acclTable_da.cnt-1).acclKey = (modifier<<8) | (vk&0x00FF);
- acclTable(acclTable_da.cnt-1).mp = mt;
+ acclTable(acclTable_da.cnt-1).mp = (wMenuPush_p)mt;
}
rc = AppendMenu( m->menu, MF_STRING, mt->index, label );
diff --git a/app/wlib/mswlib/mswmisc.c b/app/wlib/mswlib/mswmisc.c
index cc46e4e..b9383a2 100644
--- a/app/wlib/mswlib/mswmisc.c
+++ b/app/wlib/mswlib/mswmisc.c
@@ -34,14 +34,14 @@
#include "i18n.h"
#if _MSC_VER > 1300
- #define stricmp _stricmp
- #define strnicmp _strnicmp
- #define strdup _strdup
+#define stricmp _stricmp
+#define strnicmp _strnicmp
+#define strdup _strdup
#endif
#define OFN_LONGFILENAMES 0x00200000L
-char * mswStrdup( const char * );
+char * mswStrdup(const char *);
#define PAUSE_TIMER (901)
#define ALARM_TIMER (902)
@@ -80,33 +80,33 @@ double mswScale = 1.0;
callBacks_t *mswCallBacks[CALLBACK_CNT];
-void closeBalloonHelp( void );
-static wControl_p getControlFromCursor( HWND, wWin_p * );
+void closeBalloonHelp(void);
+static wControl_p getControlFromCursor(HWND, wWin_p *);
/*
* LOCAL VARIABLES
*/
struct wWin_t {
- WOBJ_COMMON
- wPos_t lastX, lastY;
- wPos_t padX, padY;
- wControl_p first, last;
- wWinCallBack_p winProc;
- BOOL_T busy;
+ WOBJ_COMMON
+ wPos_t lastX, lastY;
+ wPos_t padX, padY;
+ wControl_p first, last;
+ wWinCallBack_p winProc;
+ BOOL_T busy;
#ifdef OWNERICON
- HBITMAP wicon_bm;
- wPos_t wicon_w, wicon_h;
+ HBITMAP wicon_bm;
+ wPos_t wicon_w, wicon_h;
#endif
- DWORD baseStyle;
- wControl_p focusChainFirst;
- wControl_p focusChainLast;
- char * nameStr;
- wBool_t centerWin;
- DWORD style;
- int isBusy;
- int pendingShow;
- int modalLevel;
- };
+ DWORD baseStyle;
+ wControl_p focusChainFirst;
+ wControl_p focusChainLast;
+ char * nameStr;
+ wBool_t centerWin;
+ DWORD style;
+ int isBusy;
+ int pendingShow;
+ int modalLevel;
+};
static needToDoPendingShow = FALSE;
@@ -131,13 +131,14 @@ static UINT triggerTimer;
static UINT balloonHelpTimeOut = 500;
static wControl_p balloonHelpButton = NULL;
-static enum { balloonHelpIdle , balloonHelpWait, balloonHelpShow } balloonHelpState = balloonHelpIdle;
+static enum { balloonHelpIdle, balloonHelpWait, balloonHelpShow } balloonHelpState
+ = balloonHelpIdle;
static HWND balloonHelpHWnd = (HWND)0;
static int balloonHelpFontSize = 8;
static char balloonHelpFaceName[] = "MS Sans Serif";
static HFONT balloonHelpOldFont;
static HFONT balloonHelpNewFont;
-static int balloonHelpEnable = TRUE;
+static int balloonHelpEnable = TRUE;
static wControl_p balloonControlButton = NULL;
static BOOL_T helpInitted = FALSE;
@@ -145,8 +146,8 @@ static DWORD dwCookie;
#define CONTROL_BASE (1)
typedef struct {
- wControl_p b;
- } controlMap_t;
+ wControl_p b;
+} controlMap_t;
dynArr_t controlMap_da;
#define controlMap(N) DYNARR_N(controlMap_t,controlMap_da,N)
@@ -184,57 +185,66 @@ extern char *userLocale;
DWORD GetTextExtent(
- HDC hDc,
- CHAR * str,
- UINT len )
+ HDC hDc,
+ CHAR * str,
+ UINT len)
{
- SIZE size;
- GetTextExtentPoint( hDc, str, len, &size );
- return size.cx + (size.cy<<16);
+ SIZE size;
+ GetTextExtentPoint(hDc, str, len, &size);
+ return size.cx + (size.cy<<16);
}
static char * controlNames[] = {
- "MAIN", "POPUP",
- "BUTTON", "STRING", "INTEGER", "FLOAT",
- "LIST", "DROPLIST", "COMBOLIST",
- "RADIO", "TOGGLE",
- "DRAW", "TEXT", "MESSAGE", "LINES",
- "MENUITEM", "CHOICEITEM", "BOX" };
+ "MAIN", "POPUP",
+ "BUTTON", "STRING", "INTEGER", "FLOAT",
+ "LIST", "DROPLIST", "COMBOLIST",
+ "RADIO", "TOGGLE",
+ "DRAW", "TEXT", "MESSAGE", "LINES",
+ "MENUITEM", "CHOICEITEM", "BOX"
+};
static void doDumpControls(void)
{
- wControl_p b;
- int inx;
- if ( !dumpControls )
- return;
- if ( !dumpControlsF ) {
- dumpControlsF = fopen( "controls.lst", "w" );
- if ( !dumpControlsF )
- abort();
- }
- for ( inx=0; inx<controlMap_da.cnt-1; inx++ ) {
- b = controlMap(inx).b;
- if ( b ) {
- fprintf( dumpControlsF, "[%0.3d] [%x] %s %s %s\n", inx,
- (unsigned int)b->hWnd,
- (b->type>=0&&b->type<=B_BOX?controlNames[b->type]:"NOTYPE"),
- (b->labelStr?b->labelStr:"<NULL>"),
- (b->helpStr?b->helpStr:"<NULL>") );
- } else {
- fprintf( dumpControlsF, "[%0.3d] <NULL>\n", inx );
- }
- }
- fflush( dumpControlsF );
- fclose( dumpControlsF );
- dumpControls = 0;
+ wControl_p b;
+ int inx;
+
+ if (!dumpControls) {
+ return;
+ }
+
+ if (!dumpControlsF) {
+ dumpControlsF = fopen("controls.lst", "w");
+
+ if (!dumpControlsF) {
+ abort();
+ }
+ }
+
+ for (inx=0; inx<controlMap_da.cnt-1; inx++) {
+ b = controlMap(inx).b;
+
+ if (b) {
+ fprintf(dumpControlsF, "[%0.3d] [%x] %s %s %s\n", inx,
+ (unsigned int)b->hWnd,
+ (b->type>=0&&b->type<=B_BOX?controlNames[b->type]:"NOTYPE"),
+ (b->labelStr?b->labelStr:"<NULL>"),
+ (b->helpStr?b->helpStr:"<NULL>"));
+ } else {
+ fprintf(dumpControlsF, "[%0.3d] <NULL>\n", inx);
+ }
+ }
+
+ fflush(dumpControlsF);
+ fclose(dumpControlsF);
+ dumpControls = 0;
}
-void mswFail( const char * where )
+void mswFail(const char * where)
{
- sprintf( mswTmpBuff, "%s\n# Controls %d", where, controlMap_da.cnt );
- MessageBox( NULL, mswTmpBuff, "FAIL", MB_TASKMODAL|MB_OK );
- doDumpControls();
+ sprintf(mswTmpBuff, "%s\n# Controls %d", where, controlMap_da.cnt);
+ MessageBox(NULL, mswTmpBuff, "FAIL", MB_TASKMODAL|MB_OK);
+ doDumpControls();
}
/*
static UINT curSysRes = 100;
@@ -243,252 +253,283 @@ static UINT curUsrRes = 100;
static UINT curMinRes = 100;
*/
-wControl_p mswMapIndex( INDEX_T inx )
+wControl_p mswMapIndex(INDEX_T inx)
{
- if (inx < CONTROL_BASE || inx > controlMap_da.cnt) {
- mswFail("mswMapIndex- bad index");
- exit(1);
- }
- return controlMap(inx-CONTROL_BASE).b;
-}
-
-
-void mswRepaintLabel( HWND hWnd, wControl_p b )
-{
- HDC hDc;
- HBRUSH oldBrush, newBrush;
- RECT rect;
- DWORD dw;
- LABELFONTDECL
-
-
- if (b->labelStr) {
- hDc = GetDC( hWnd );
- LABELFONTSELECT
- newBrush = CreateSolidBrush( GetSysColor( COLOR_BTNFACE ) );
- oldBrush = SelectObject( hDc, newBrush );
- dw = GetTextExtent( hDc, CAST_AWAY_CONST b->labelStr, strlen(b->labelStr) );
- rect.left = b->labelX;
- rect.top = b->labelY;
- rect.right = b->labelX + LOWORD(dw);
- rect.bottom = b->labelY + HIWORD(dw);
- FillRect( hDc, &rect, newBrush );
- DeleteObject( SelectObject( hDc, oldBrush ) );
- /*SetBkMode( hDc, OPAQUE );*/
- SetBkColor( hDc, GetSysColor( COLOR_BTNFACE ) );
- if (!TextOut( hDc, b->labelX, b->labelY, b->labelStr, strlen(b->labelStr) ) )
- mswFail( "Repainting text label" );
- LABELFONTRESET
- ReleaseDC( hWnd, hDc );
- }
+ if (inx < CONTROL_BASE || inx > controlMap_da.cnt) {
+ mswFail("mswMapIndex- bad index");
+ exit(1);
+ }
+
+ return controlMap(inx-CONTROL_BASE).b;
+}
+
+
+void mswRepaintLabel(HWND hWnd, wControl_p b)
+{
+ HDC hDc;
+ HBRUSH oldBrush, newBrush;
+ RECT rect;
+ DWORD dw;
+ LABELFONTDECL
+
+ if (b->labelStr) {
+ hDc = GetDC(hWnd);
+ LABELFONTSELECT
+ newBrush = CreateSolidBrush(GetSysColor(COLOR_BTNFACE));
+ oldBrush = SelectObject(hDc, newBrush);
+ dw = GetTextExtent(hDc, CAST_AWAY_CONST b->labelStr, strlen(b->labelStr));
+ rect.left = b->labelX;
+ rect.top = b->labelY;
+ rect.right = b->labelX + LOWORD(dw);
+ rect.bottom = b->labelY + HIWORD(dw);
+ FillRect(hDc, &rect, newBrush);
+ DeleteObject(SelectObject(hDc, oldBrush));
+ /*SetBkMode( hDc, OPAQUE );*/
+ SetBkColor(hDc, GetSysColor(COLOR_BTNFACE));
+
+ if (!TextOut(hDc, b->labelX, b->labelY, b->labelStr, strlen(b->labelStr))) {
+ mswFail("Repainting text label");
+ }
+
+ LABELFONTRESET
+ ReleaseDC(hWnd, hDc);
+ }
}
int mswRegister(
- wControl_p w )
+ wControl_p w)
{
- int index;
- DYNARR_APPEND( controlMap_t, controlMap_da, 25 );
- index = controlMap_da.cnt-1+CONTROL_BASE;
- controlMap(controlMap_da.cnt-1).b = (wControl_p)w;
- return index;
+ int index;
+ DYNARR_APPEND(controlMap_t, controlMap_da, 25);
+ index = controlMap_da.cnt-1+CONTROL_BASE;
+ controlMap(controlMap_da.cnt-1).b = (wControl_p)w;
+ return index;
}
void mswUnregister(
- int index )
+ int index)
{
- if (index < 0 || index > controlMap_da.cnt) {
- mswFail("mswMapIndex- bad index");
- exit(1);
- }
- controlMap(index-CONTROL_BASE).b = NULL;
+ if (index < 0 || index > controlMap_da.cnt) {
+ mswFail("mswMapIndex- bad index");
+ exit(1);
+ }
+
+ controlMap(index-CONTROL_BASE).b = NULL;
}
void * mswAlloc(
- wWin_p parent,
- wType_e type,
- const char * labelStr,
- int size,
- void * data,
- int * index )
-{
- wControl_p w = (wControl_p)calloc( 1, size );
-
- if (w == NULL)
- abort();
- *index = mswRegister( w );
- w->type = type;
- w->next = NULL;
- w->parent = parent;
- w->x = 0;
- w->y = 0;
- w->w = 0;
- w->h = 0;
- w->option = 0;
- w->labelX = w->labelY = 0;
- w->labelStr = labelStr;
- w->helpStr = NULL;
- w->hWnd = (HWND)0;
- w->data = data;
- w->focusChainNext = NULL;
- w->shown = TRUE;
- return w;
+ wWin_p parent,
+ wType_e type,
+ const char * labelStr,
+ int size,
+ void * data,
+ int * index)
+{
+ wControl_p w = (wControl_p)calloc(1, size);
+
+ if (w == NULL) {
+ abort();
+ }
+
+ *index = mswRegister(w);
+ w->type = type;
+ w->next = NULL;
+ w->parent = parent;
+ w->x = 0;
+ w->y = 0;
+ w->w = 0;
+ w->h = 0;
+ w->option = 0;
+ w->labelX = w->labelY = 0;
+ w->labelStr = labelStr;
+ w->helpStr = NULL;
+ w->hWnd = (HWND)0;
+ w->data = data;
+ w->focusChainNext = NULL;
+ w->shown = TRUE;
+ return w;
}
void mswComputePos(
- wControl_p b,
- wPos_t origX,
- wPos_t origY )
-{
- wWin_p w = b->parent;
-
- if (origX >= 0)
- b->x = origX;
- else
- b->x = w->lastX + (-origX) - 1;
- if (origY >= 0)
- b->y = origY;
- else
- b->y = w->lastY + (-origY) - 1;
-
- b->labelX = b->x;
- b->labelY = b->y+2;
-
- if (b->labelStr) {
- int lab_l;
- HDC hDc;
- DWORD dw;
- LABELFONTDECL
-
- hDc = GetDC( w->hWnd );
- LABELFONTSELECT
- lab_l = strlen(b->labelStr);
- dw = GetTextExtent( hDc, CAST_AWAY_CONST b->labelStr, lab_l );
- b->labelX -= LOWORD(dw) + 5;
- LABELFONTRESET
- ReleaseDC( w->hWnd, hDc );
- }
+ wControl_p b,
+ wPos_t origX,
+ wPos_t origY)
+{
+ wWin_p w = b->parent;
+
+ if (origX >= 0) {
+ b->x = origX;
+ } else {
+ b->x = w->lastX + (-origX) - 1;
+ }
+
+ if (origY >= 0) {
+ b->y = origY;
+ } else {
+ b->y = w->lastY + (-origY) - 1;
+ }
+
+ b->labelX = b->x;
+ b->labelY = b->y+2;
+
+ if (b->labelStr) {
+ int lab_l;
+ HDC hDc;
+ DWORD dw;
+ LABELFONTDECL
+ hDc = GetDC(w->hWnd);
+ LABELFONTSELECT
+ lab_l = strlen(b->labelStr);
+ dw = GetTextExtent(hDc, CAST_AWAY_CONST b->labelStr, lab_l);
+ b->labelX -= LOWORD(dw) + 5;
+ LABELFONTRESET
+ ReleaseDC(w->hWnd, hDc);
+ }
}
void mswAddButton(
- wControl_p b,
- BOOL_T paintLabel,
- const char * helpStr )
-{
- wWin_p w = b->parent;
- BOOL_T resize = FALSE;
- RECT rect;
-
- if (w->first == NULL) {
- w->first = b;
- } else {
- w->last->next = b;
- }
- w->last = b;
- b->next = NULL;
- b->parent = w;
- w->lastX = b->x + b->w;
- w->lastY = b->y + b->h;
- if ((w->option&F_AUTOSIZE)!=0 && w->lastX > w->w) {
- w->w = w->lastX;
- resize = TRUE;
- }
- if ((w->option&F_AUTOSIZE)!=0 && w->lastY > w->h) {
- w->h = w->lastY;
- resize = TRUE;
- }
-
- if (resize) {
- w->busy = TRUE;
- rect.left = 0;
- rect.top = 0;
- rect.right = w->w+w->padX;
- rect.bottom = w->h+w->padY;
- AdjustWindowRect( &rect, w->style, (w->option&F_MENUBAR)?1:0 );
- rect.bottom += mFixBorderH;
- if (!SetWindowPos( w->hWnd, HWND_TOP, CW_USEDEFAULT, CW_USEDEFAULT,
- rect.right-rect.left, rect.bottom-rect.top,
- SWP_NOMOVE))
- mswFail("SetWindowPos");
- w->busy = FALSE;
- }
+ wControl_p b,
+ BOOL_T paintLabel,
+ const char * helpStr)
+{
+ wWin_p w = b->parent;
+ BOOL_T resize = FALSE;
+ RECT rect;
+
+ if (w->first == NULL) {
+ w->first = b;
+ } else {
+ w->last->next = b;
+ }
+
+ w->last = b;
+ b->next = NULL;
+ b->parent = w;
+ w->lastX = b->x + b->w;
+ w->lastY = b->y + b->h;
+
+ if ((w->option&F_AUTOSIZE)!=0 && w->lastX > w->w) {
+ w->w = w->lastX;
+ resize = TRUE;
+ }
+
+ if ((w->option&F_AUTOSIZE)!=0 && w->lastY > w->h) {
+ w->h = w->lastY;
+ resize = TRUE;
+ }
+
+ if (resize) {
+ w->busy = TRUE;
+ rect.left = 0;
+ rect.top = 0;
+ rect.right = w->w+w->padX;
+ rect.bottom = w->h+w->padY;
+ AdjustWindowRect(&rect, w->style, (w->option&F_MENUBAR)?1:0);
+ rect.bottom += mFixBorderH;
+
+ if (!SetWindowPos(w->hWnd, HWND_TOP, CW_USEDEFAULT, CW_USEDEFAULT,
+ rect.right-rect.left, rect.bottom-rect.top,
+ SWP_NOMOVE)) {
+ mswFail("SetWindowPos");
+ }
+
+ w->busy = FALSE;
+ }
+
+ if (paintLabel) {
+ mswRepaintLabel(w->hWnd, (wControl_p)b);
+ }
+
+ if (helpStr == NULL) {
+ return;
+ }
+
+ b->helpStr = mswStrdup(helpStr);
+#ifdef HELPSTR
- if (paintLabel)
- mswRepaintLabel( w->hWnd, (wControl_p)b );
+ if (helpStrF) {
+ fprintf(helpStrF, "HELPSTR - %s\n", helpStr?helpStr:"<>");
+ }
- if (helpStr == NULL)
- return;
- b->helpStr = mswStrdup( helpStr );
-
-#ifdef HELPSTR
- if (helpStrF)
- fprintf( helpStrF, "HELPSTR - %s\n", helpStr?helpStr:"<>" );
#endif
}
void mswResize(
- wWin_p w )
-{
- wControl_p b;
- RECT rect;
-
- w->lastX = 0;
- w->lastY = 0;
- for (b=w->first; b; b=b->next) {
- if (w->lastX < (b->x + b->w))
- w->lastX = b->x + b->w;
- if (w->lastY < (b->y + b->h))
- w->lastY = b->y + b->h;
- }
+ wWin_p w)
+{
+ wControl_p b;
+ RECT rect;
+ w->lastX = 0;
+ w->lastY = 0;
- if (w->option&F_AUTOSIZE) {
- w->w = w->lastX;
- w->h = w->lastY;
- w->busy = TRUE;
- rect.left = 0;
- rect.top = 0;
- rect.right = w->w + w->padX;
- rect.bottom = w->h + w->padY;
- AdjustWindowRect( &rect, w->style, (w->option&F_MENUBAR)?1:0 );
- rect.bottom += mFixBorderH;
- if (!SetWindowPos( w->hWnd, HWND_TOP, CW_USEDEFAULT, CW_USEDEFAULT,
- rect.right-rect.left, rect.bottom-rect.top,
- SWP_NOMOVE|SWP_NOZORDER))
- mswFail("SetWindowPos");
- w->busy = FALSE;
- }
+ for (b=w->first; b; b=b->next) {
+ if (w->lastX < (b->x + b->w)) {
+ w->lastX = b->x + b->w;
+ }
+
+ if (w->lastY < (b->y + b->h)) {
+ w->lastY = b->y + b->h;
+ }
+ }
+
+ if (w->option&F_AUTOSIZE) {
+ w->w = w->lastX;
+ w->h = w->lastY;
+ w->busy = TRUE;
+ rect.left = 0;
+ rect.top = 0;
+ rect.right = w->w + w->padX;
+ rect.bottom = w->h + w->padY;
+ AdjustWindowRect(&rect, w->style, (w->option&F_MENUBAR)?1:0);
+ rect.bottom += mFixBorderH;
+
+ if (!SetWindowPos(w->hWnd, HWND_TOP, CW_USEDEFAULT, CW_USEDEFAULT,
+ rect.right-rect.left, rect.bottom-rect.top,
+ SWP_NOMOVE|SWP_NOZORDER)) {
+ mswFail("SetWindowPos");
+ }
+
+ w->busy = FALSE;
+ }
}
void mswChainFocus(
- wControl_p b )
-{
- wWin_p w;
- w = b->parent;
- if (w->option&F_NOTAB)
- return;
- if (b->option&BO_NOTAB)
- return;
- if (w->focusChainFirst == NULL) {
- w->focusChainFirst = w->focusChainLast = w->focusChainNext = b;
- b->focusChainNext = b;
- } else {
- w->focusChainLast->focusChainNext = b;
- w->focusChainLast = b;
- b->focusChainNext = w->focusChainFirst;
- }
+ wControl_p b)
+{
+ wWin_p w;
+ w = b->parent;
+
+ if (w->option&F_NOTAB) {
+ return;
+ }
+
+ if (b->option&BO_NOTAB) {
+ return;
+ }
+
+ if (w->focusChainFirst == NULL) {
+ w->focusChainFirst = w->focusChainLast = w->focusChainNext = b;
+ b->focusChainNext = b;
+ } else {
+ w->focusChainLast->focusChainNext = b;
+ w->focusChainLast = b;
+ b->focusChainNext = w->focusChainFirst;
+ }
}
void mswSetFocus(
- wControl_p b )
+ wControl_p b)
{
- if (b && b->type != B_MENUITEM && b->focusChainNext)
- b->parent->focusChainNext = b;
+ if (b && b->type != B_MENUITEM && b->focusChainNext) {
+ b->parent->focusChainNext = b;
+ }
}
/*
@@ -500,171 +541,205 @@ void mswSetFocus(
*/
static void getSavedSizeAndPos(
- long option,
- const char * nameStr,
- wPos_t *rw,
- wPos_t *rh,
- wPos_t *rx,
- wPos_t *ry,
- int *showCmd )
-{
- int x, y, w, h;
- const char *cp;
+ long option,
+ const char * nameStr,
+ wPos_t *rw,
+ wPos_t *rh,
+ wPos_t *rx,
+ wPos_t *ry,
+ int *showCmd)
+{
char *cq;
- int state;
-
- *showCmd = SW_SHOWNORMAL;
-
- if ( (option&F_RECALLPOS) && nameStr ) {
- if ( (option & F_RESIZE) &&
- (cp = wPrefGetString( "msw window size", nameStr)) &&
- (state = (int)strtol( cp, &cq, 10 ), cp != cq) &&
- (cp = cq, w = (wPos_t)strtod( cp, &cq ), cp != cq ) &&
- (cp = cq, h = (int)strtod( cp, &cq ), cp != cq)
- ) {
- if (state == 1)
- *showCmd = SW_SHOWMINIMIZED;
- else if (state == 2)
- *showCmd = SW_SHOWMAXIMIZED;
- if (w < 10)
- w = 10;
- if (h < 10)
- h = 10;
- if (w > screenWidth)
- w = screenWidth;
- if (h > screenHeight)
- h = screenHeight;
- *rw = w;
- *rh = h;
- }
-
- if ((cp = wPrefGetString( "msw window pos", nameStr)) &&
- (x = (wPos_t)strtod( cp, &cq ), cp != cq) &&
- (cp = cq, y = (wPos_t)strtod( cp, &cq ), cp != cq)
- ) {
- if (y < 0)
- y = 0;
- if (x < 0)
- x = 0;
- if ( y > screenHeight-40 )
- y = screenHeight-40;
- if ( x > screenWidth-40 )
- x = screenWidth-40;
- *rx = x;
- *ry = y;
- }
- }
+ *showCmd = SW_SHOWNORMAL;
+
+ if ((option&F_RECALLPOS) && nameStr) {
+ int x, y, w, h;
+ const char *cp;
+ int state;
+
+ if ((option & F_RESIZE) &&
+ (cp = wPrefGetStringBasic("msw window size", nameStr)) &&
+ (state = (int)strtol(cp, &cq, 10), cp != cq) && // state is not used
+ (cp = cq, w = (wPos_t)strtod(cp, &cq), cp != cq) &&
+ (cp = cq, h = (int)strtod(cp, &cq), cp != cq)
+ ) {
+ if (w < 10) {
+ w = 10;
+ }
+
+ if (h < 10) {
+ h = 10;
+ }
+
+ if (w > screenWidth) {
+ w = screenWidth;
+ }
+
+ if (h > screenHeight) {
+ h = screenHeight;
+ }
+
+ *rw = w;
+ *rh = h;
+ }
+
+ if ((cp = wPrefGetStringBasic("msw window pos", nameStr)) &&
+ (x = (wPos_t)strtod(cp, &cq), cp != cq) &&
+ (cp = cq, y = (wPos_t)strtod(cp, &cq), cp != cq)
+ ) {
+ if (y < 0) {
+ y = 0;
+ }
+
+ if (x < 0) {
+ x = 0;
+ }
+
+ if (y > screenHeight-40) {
+ y = screenHeight-40;
+ }
+
+ if (x > screenWidth-40) {
+ x = screenWidth-40;
+ }
+
+ *rx = x;
+ *ry = y;
+ }
+ }
}
+/**
+ * Create a window. Retrieves the saved size and position and restores the created window accordingly.
+ *
+ * \param hWnd IN parent window
+ * \param typ IN type of window (W_MAIN or W_POPUP)
+ * \param option IN options for window creation
+ * \param classname IN pre-registered window class
+ * \param style IN
+ * \param labelStr IN window title
+ * \param winProc IN callback procedure
+ * \param w IN default window width
+ * \param h IN default window height
+ * \param data IN ??
+ * \param nameStr IN name of window
+ * \param pShowCmd IN/OUT window show option (maximize or show normal)
+ * \return window data structure
+ */
static wWin_p winCommonCreate(
- HWND hWnd,
- int typ,
- long option,
- const char * className,
- long style,
- const char * labelStr,
- wWinCallBack_p winProc,
- wPos_t w,
- wPos_t h,
- void * data,
- const char * nameStr,
- int * showCmd )
-{
- wWin_p win;
- int index;
- wPos_t ww, hh, xx, yy;
- RECT rect;
-
- win = (wWin_p)mswAlloc( NULL, typ, mswStrdup(labelStr), sizeof *win, data, &index );
- win->option = option;
- win->first = win->last = NULL;
- win->lastX = 0;
- win->lastY = 0;
- win->winProc = winProc;
- win->centerWin = TRUE;
- win->modalLevel = 0;
-#ifdef OWNERICON
- win->wicon_bm = (HBITMAP)0;
-#endif
- win->busy = TRUE;
- ww = hh = xx = yy = CW_USEDEFAULT;
- getSavedSizeAndPos( option, nameStr, &ww, &hh, &xx, &yy, showCmd );
- if (xx != CW_USEDEFAULT)
- win->centerWin = FALSE;
- if (option & F_RESIZE) {
- style |= WS_THICKFRAME;
- if ( ww != CW_USEDEFAULT ) {
- w = ww;
- h = hh;
- option &= ~F_AUTOSIZE;
- win->option = option;
- }
- }
-
- if ( option & F_AUTOSIZE ) {
- win->padX = w;
- win->padY = h;
- } else {
- win->padX = 0;
- win->padY = 0;
- win->w = w;
- win->h = h;
- }
- win->style = style;
- rect.left = 0;
- rect.top = 0;
- rect.right = win->w + win->padX;
- rect.bottom = win->h + win->padY;
- AdjustWindowRect( &rect, win->style, (win->option&F_MENUBAR)?1:0 );
- rect.bottom += mFixBorderH;
- win->hWnd = CreateWindow( className, labelStr, style,
- xx, yy,
- rect.right-rect.left, rect.bottom-rect.top,
- hWnd, NULL,
- mswHInst, NULL );
- if (win->hWnd == (HWND)0) {
- mswFail( "CreateWindow(POPUP)" );
- } else {
- SetWindowWord( win->hWnd, 0, (WORD)index );
- }
- win->baseStyle = WS_GROUP;
- win->focusChainFirst = win->focusChainLast = win->focusChainNext = NULL;
- if (winFirst == NULL) {
- winFirst = winLast = win;
- } else {
- winLast->next = (wControl_p)win;
- winLast = win;
- }
-#ifdef HELPSTR
- if (helpStrF)
- fprintf( helpStrF, "WINDOW - %s\n", labelStr );
-#endif
- win->nameStr = mswStrdup( nameStr );
- if (typ == W_MAIN)
- mswInitColorPalette();
-#ifdef LATER
- hDc = GetDC( win->hWnd );
- oldHPal = SelectPalette( hDc, mswPalette, 0 );
- ReleaseDC( win->hWnd, hDc );
-#endif
- return win;
+ HWND hWnd,
+ int typ,
+ long option,
+ const char * className,
+ long style,
+ const char * labelStr,
+ wWinCallBack_p winProc,
+ wPos_t w,
+ wPos_t h,
+ void * data,
+ const char * nameStr,
+ int * pShowCmd)
+{
+ wWin_p win;
+ int index;
+ wPos_t ww, hh, xx, yy;
+ RECT rect;
+ win = (wWin_p)mswAlloc(NULL, typ, mswStrdup(labelStr), sizeof *win, data,
+ &index);
+ win->option = option;
+ win->first = win->last = NULL;
+ win->lastX = 0;
+ win->lastY = 0;
+ win->winProc = winProc;
+ win->centerWin = TRUE;
+ win->modalLevel = 0;
+ win->busy = TRUE;
+ ww = hh = xx = yy = CW_USEDEFAULT;
+ getSavedSizeAndPos(option, nameStr, &ww, &hh, &xx, &yy, pShowCmd);
+
+ if (typ == W_MAIN) {
+ *pShowCmd = ((option & F_MAXIMIZE) ? SW_SHOWMAXIMIZED : SW_SHOWNORMAL);
+ }
+
+ if (xx != CW_USEDEFAULT) {
+ win->centerWin = FALSE;
+ }
+
+ if (option & F_RESIZE) {
+ style |= WS_THICKFRAME;
+
+ if (ww != CW_USEDEFAULT) {
+ w = ww;
+ h = hh;
+ option &= ~F_AUTOSIZE;
+ win->option = option;
+ }
+ }
+
+ if (option & F_AUTOSIZE) {
+ win->padX = w;
+ win->padY = h;
+ } else {
+ win->padX = 0;
+ win->padY = 0;
+ win->w = w;
+ win->h = h;
+ }
+
+ win->style = style;
+ rect.left = 0;
+ rect.top = 0;
+ rect.right = win->w + win->padX;
+ rect.bottom = win->h + win->padY;
+ AdjustWindowRect(&rect, win->style, (win->option&F_MENUBAR)?1:0);
+ rect.bottom += mFixBorderH;
+ win->hWnd = CreateWindow(className, labelStr, style,
+ xx, yy,
+ rect.right-rect.left, rect.bottom-rect.top,
+ hWnd, NULL,
+ mswHInst, NULL);
+
+ if (win->hWnd == (HWND)0) {
+ mswFail("CreateWindow(POPUP)");
+ } else {
+ SetWindowWord(win->hWnd, 0, (WORD)index);
+ }
+
+ ShowWindow(win->hWnd, *pShowCmd);
+ win->baseStyle = WS_GROUP;
+ win->focusChainFirst = win->focusChainLast = win->focusChainNext = NULL;
+
+ if (winFirst == NULL) {
+ winFirst = winLast = win;
+ } else {
+ winLast->next = (wControl_p)win;
+ winLast = win;
+ }
+
+ win->nameStr = mswStrdup(nameStr);
+
+ if (typ == W_MAIN) {
+ mswInitColorPalette();
+ }
+
+ return win;
}
void wInitAppName(char *_appName)
{
- appName = (char *)malloc( strlen(_appName) + 1 );
- strcpy(appName, _appName);
+ appName = (char *)malloc(strlen(_appName) + 1);
+ strcpy(appName, _appName);
}
/**
- * Initialize the application's main window. This function does the necessary initialization
+ * Initialize the application's main window. This function does the necessary initialization
* of the application including creation of the main window.
*
- * \param name IN internal name of the application. Used for filenames etc.
- * \param x IN size
- * \param y IN size
+ * \param name IN internal name of the application. Used for filenames etc.
+ * \param x IN default width
+ * \param y IN default height
* \param helpStr IN ??
* \param labelStr IN window title
* \param nameStr IN ??
@@ -675,257 +750,350 @@ void wInitAppName(char *_appName)
*/
wWin_p wWinMainCreate(
- const char * name,
- POS_T x,
- POS_T y,
- const char * helpStr,
- const char * labelStr,
- const char * nameStr,
- long option,
- wWinCallBack_p winProc,
- void * data )
-{
- wWin_p w;
- RECT rect;
- const char * appDir;
- const char * libDir;
- int showCmd;
- int error;
- HDC hDc;
- TEXTMETRIC tm;
- char *pos;
- char * configName;
-
- /* check for configuration name */
- if( pos = strchr( name, ';' )) {
- /* if found, split application name and configuration name */
- configName = (char *)malloc( strlen( name ) + 1 );
- strcpy( configName, pos + 1 );
- } else {
- /* if not found, application name and configuration name are same */
- configName = (char*)malloc( strlen(name)+1 );
- strcpy( configName, name );
- }
-
- appDir = wGetAppWorkDir();
- if ( appDir == NULL ) {
- free( configName );
- return NULL;
- }
- mswProfileFile = (char*)malloc( strlen(appDir)+1+strlen(configName)+1+3+1 );
- wsprintf( mswProfileFile, "%s\\%s.ini", appDir, configName );
- free( configName );
-
- error = WritePrivateProfileString( "mswtest", "test", "ok", mswProfileFile );
- if ( error <= 0 ) {
- sprintf( mswTmpBuff, "Can not write to %s.\nPlease make sure the directory exists and is writable", mswProfileFile );
- wNoticeEx( NT_ERROR, mswTmpBuff, "Ok", NULL );
- return NULL;
- }
- libDir = wGetAppLibDir();
- /* length of path + \ + length of filename + . + length of extension + \0 */
- helpFile = (char*)malloc( strlen(libDir) + 1 + strlen(appName) + 1 + 3 + 1 );
- wsprintf( helpFile, "%s\\%s.chm", libDir, appName );
-
- wPrefGetInteger( "msw tweak", "ThickFont", &mswThickFont, 0 );
-
- showCmd = SW_SHOW;
- w = winCommonCreate( NULL, W_MAIN, option|F_RESIZE, "MswMainWindow",
- WS_OVERLAPPEDWINDOW, labelStr, winProc, x, y, data,
- nameStr, &showCmd );
- mswHWnd = w->hWnd;
- if ( !mswThickFont ) {
- DWORD dw;
- SendMessage( w->hWnd, WM_SETFONT, (WPARAM)mswLabelFont, 0L );
- hDc = GetDC( w->hWnd );
- GetTextMetrics( hDc, &tm );
- mswEditHeight = tm.tmHeight+2;
- dw = GetTextExtent( hDc, "AXqypj", 6 );
- mswEditHeight = HIWORD(dw)+2;
- ReleaseDC( w->hWnd, hDc );
- }
- ShowWindow( w->hWnd, showCmd );
- UpdateWindow( w->hWnd );
- GetWindowRect( w->hWnd, &rect );
- GetClientRect( w->hWnd, &rect );
- w->busy = FALSE;
-
-
- return w;
+ const char * name,
+ POS_T x,
+ POS_T y,
+ const char * helpStr,
+ const char * labelStr,
+ const char * nameStr,
+ long option,
+ wWinCallBack_p winProc,
+ void * data)
+{
+ wWin_p w;
+ RECT rect;
+ const char * appDir;
+ const char * libDir;
+ int showCmd;
+ int error;
+ HDC hDc;
+ TEXTMETRIC tm;
+ char *pos;
+ char * configName;
+ long maximize;
+
+ /* check for configuration name */
+ if (pos = strchr(name, ';')) {
+ /* if found, split application name and configuration name */
+ configName = (char *)malloc(strlen(name) + 1);
+ strcpy(configName, pos + 1);
+ } else {
+ /* if not found, application name and configuration name are same */
+ configName = (char*)malloc(strlen(name)+1);
+ strcpy(configName, name);
+ }
+
+ appDir = wGetAppWorkDir();
+
+ if (appDir == NULL) {
+ free(configName);
+ return NULL;
+ }
+
+ mswProfileFile = (char*)malloc(strlen(appDir)+1+strlen(configName)+1+3+1);
+ wsprintf(mswProfileFile, "%s\\%s.ini", appDir, configName);
+ free(configName);
+ error = WritePrivateProfileString("mswtest", "test", "ok", mswProfileFile);
+
+ if (error <= 0) {
+ sprintf(mswTmpBuff,
+ "Can not write to %s.\nPlease make sure the directory exists and is writable",
+ mswProfileFile);
+ wNoticeEx(NT_ERROR, mswTmpBuff, "Ok", NULL);
+ return NULL;
+ }
+
+ libDir = wGetAppLibDir();
+ /* length of path + \ + length of filename + . + length of extension + \0 */
+ helpFile = (char*)malloc(strlen(libDir) + 1 + strlen(appName) + 1 + 3 + 1);
+ wsprintf(helpFile, "%s\\%s.chm", libDir, appName);
+ wPrefGetInteger("msw tweak", "ThickFont", &mswThickFont, 0);
+
+ wPrefGetInteger("draw", "maximized", &maximize, 0L);
+ option |= (maximize ? F_MAXIMIZE : 0);
+
+ showCmd = SW_SHOW;
+ w = winCommonCreate(NULL, W_MAIN, option|F_RESIZE, "MswMainWindow",
+ WS_OVERLAPPEDWINDOW, labelStr, winProc, x, y, data,
+ nameStr, &showCmd);
+ mswHWnd = w->hWnd;
+
+ if (!mswThickFont) {
+ DWORD dw;
+ SendMessage(w->hWnd, WM_SETFONT, (WPARAM)mswLabelFont, 0L);
+ hDc = GetDC(w->hWnd);
+ GetTextMetrics(hDc, &tm);
+ mswEditHeight = tm.tmHeight+2;
+ dw = GetTextExtent(hDc, "AXqypj", 6);
+ mswEditHeight = HIWORD(dw)+2;
+ ReleaseDC(w->hWnd, hDc);
+ }
+
+ ShowWindow(w->hWnd, showCmd);
+ UpdateWindow(w->hWnd);
+ GetWindowRect(w->hWnd, &rect);
+ GetClientRect(w->hWnd, &rect);
+ w->busy = FALSE;
+ return w;
}
wWin_p wWinPopupCreate(
- wWin_p parent,
- POS_T x,
- POS_T y,
- const char * helpStr,
- const char * labelStr,
- const char * nameStr,
- long option,
- wWinCallBack_p winProc,
- void * data )
-{
- wWin_p w;
- DWORD style;
- HMENU sysMenu;
- int showCmd;
- static DWORD overlapped = WS_OVERLAPPED;
- static DWORD popup = WS_POPUP;
-
- style = popup;
- style |= WS_BORDER | WS_CAPTION | WS_SYSMENU;
- w = winCommonCreate( parent?parent->hWnd:mswHWnd, W_POPUP, option,
- "MswPopUpWindow",
- style, labelStr, winProc, x, y, data, nameStr, &showCmd );
-
- w->helpStr = mswStrdup( helpStr );
-
- sysMenu = GetSystemMenu( w->hWnd, FALSE );
- if (sysMenu) {
- DeleteMenu( sysMenu, SC_RESTORE, MF_BYCOMMAND );
- /*DeleteMenu( sysMenu, SC_MOVE, MF_BYCOMMAND );*/
- /*DeleteMenu( sysMenu, SC_SIZE, MF_BYCOMMAND );*/
- DeleteMenu( sysMenu, SC_MINIMIZE, MF_BYCOMMAND );
- DeleteMenu( sysMenu, SC_MAXIMIZE, MF_BYCOMMAND );
- DeleteMenu( sysMenu, SC_TASKLIST, MF_BYCOMMAND );
- DeleteMenu( sysMenu, 4, MF_BYPOSITION );
- }
- w->busy = FALSE;
- return w;
+ wWin_p parent,
+ POS_T x,
+ POS_T y,
+ const char * helpStr,
+ const char * labelStr,
+ const char * nameStr,
+ long option,
+ wWinCallBack_p winProc,
+ void * data)
+{
+ wWin_p w;
+ DWORD style;
+ HMENU sysMenu;
+ int showCmd;
+ static DWORD popup = WS_POPUP;
+ style = popup;
+ style |= WS_BORDER | WS_CAPTION | WS_SYSMENU;
+ w = winCommonCreate(parent?parent->hWnd:mswHWnd, W_POPUP, option,
+ "MswPopUpWindow",
+ style, labelStr, winProc, x, y, data, nameStr, &showCmd);
+ w->helpStr = mswStrdup(helpStr);
+ sysMenu = GetSystemMenu(w->hWnd, FALSE);
+
+ if (sysMenu) {
+ DeleteMenu(sysMenu, SC_RESTORE, MF_BYCOMMAND);
+ /*DeleteMenu( sysMenu, SC_MOVE, MF_BYCOMMAND );*/
+ /*DeleteMenu( sysMenu, SC_SIZE, MF_BYCOMMAND );*/
+ DeleteMenu(sysMenu, SC_MINIMIZE, MF_BYCOMMAND);
+ DeleteMenu(sysMenu, SC_MAXIMIZE, MF_BYCOMMAND);
+ DeleteMenu(sysMenu, SC_TASKLIST, MF_BYCOMMAND);
+ DeleteMenu(sysMenu, 4, MF_BYPOSITION);
+ }
+
+ w->busy = FALSE;
+ return w;
}
void wWinSetBigIcon(
- wWin_p win,
- wIcon_p bm )
+ wWin_p win,
+ wIcon_p bm)
{
#ifdef OWNERICON
- win->wicon_w = bm->w;
- win->wicon_h = bm->h;
- win->wicon_bm = mswCreateBitMap(
- GetSysColor(COLOR_BTNTEXT), RGB( 255, 255, 255 ), RGB( 255, 255, 255 ),
- bm->w, bm->h, bm->bits );
+ win->wicon_w = bm->w;
+ win->wicon_h = bm->h;
+ win->wicon_bm = mswCreateBitMap(
+ GetSysColor(COLOR_BTNTEXT), RGB(255, 255, 255), RGB(255, 255, 255),
+ bm->w, bm->h, bm->bits);
#endif
}
void wWinSetSmallIcon(
- wWin_p win,
- wIcon_p bm )
+ wWin_p win,
+ wIcon_p bm)
{
#ifdef OWNERICON
- win->wicon_w = bm->w;
- win->wicon_h = bm->h;
- win->wicon_bm = mswCreateBitMap(
- GetSysColor(COLOR_BTNTEXT), RGB( 255, 255, 255 ), RGB( 255, 255, 255 ),
- bm->w, bm->h, bm->bits );
+ win->wicon_w = bm->w;
+ win->wicon_h = bm->h;
+ win->wicon_bm = mswCreateBitMap(
+ GetSysColor(COLOR_BTNTEXT), RGB(255, 255, 255), RGB(255, 255, 255),
+ bm->w, bm->h, bm->bits);
#endif
}
void wWinTop(
- wWin_p win )
-{
- /*BringWindowToTop( win->hWnd );*/
- SetWindowPos( win->hWnd, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE );
- SetFocus( win->hWnd );
-}
-
-
-DWORD mswGetBaseStyle( wWin_p win )
-{
- DWORD style;
- style = win->baseStyle;
- win->baseStyle = 0;
- return style;
-}
-
-
-static wAccelKey_e translateExtKey( UINT wParam )
-{
- wAccelKey_e extChar;
- extChar = wAccelKey_None;
- switch( wParam ) {
- case VK_DELETE: extChar = wAccelKey_Del; break;
- case VK_INSERT: extChar = wAccelKey_Ins; break;
- case VK_HOME: extChar = wAccelKey_Home; break;
- case VK_END: extChar = wAccelKey_End; break;
- case VK_PRIOR: extChar = wAccelKey_Pgup; break;
- case VK_NEXT: extChar = wAccelKey_Pgdn; break;
- case VK_UP: extChar = wAccelKey_Up; break;
- case VK_DOWN: extChar = wAccelKey_Down; break;
- case VK_RIGHT: extChar = wAccelKey_Right; break;
- case VK_LEFT: extChar = wAccelKey_Left; break;
- case VK_BACK: extChar = wAccelKey_Back; break;
- /*case VK_F1: extChar = wAccelKey_F1; break;*/
- case VK_F2: extChar = wAccelKey_F2; break;
- case VK_F3: extChar = wAccelKey_F3; break;
- case VK_F4: extChar = wAccelKey_F4; break;
- case VK_F5: extChar = wAccelKey_F5; break;
- case VK_F6: extChar = wAccelKey_F6; break;
- case VK_F7: extChar = wAccelKey_F7; break;
- case VK_F8: extChar = wAccelKey_F8; break;
- case VK_F9: extChar = wAccelKey_F9; break;
- case VK_F10: extChar = wAccelKey_F10; break;
- case VK_F11: extChar = wAccelKey_F11; break;
- case VK_F12: extChar = wAccelKey_F12; break;
- }
- return extChar;
+ wWin_p win)
+{
+ /*BringWindowToTop( win->hWnd );*/
+ SetWindowPos(win->hWnd, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);
+ SetFocus(win->hWnd);
+}
+
+
+DWORD mswGetBaseStyle(wWin_p win)
+{
+ DWORD style;
+ style = win->baseStyle;
+ win->baseStyle = 0;
+ return style;
+}
+
+
+static wAccelKey_e translateExtKey(UINT wParam)
+{
+ wAccelKey_e extChar;
+ extChar = wAccelKey_None;
+
+ switch (wParam) {
+ case VK_DELETE:
+ extChar = wAccelKey_Del;
+ break;
+
+ case VK_INSERT:
+ extChar = wAccelKey_Ins;
+ break;
+
+ case VK_HOME:
+ extChar = wAccelKey_Home;
+ break;
+
+ case VK_END:
+ extChar = wAccelKey_End;
+ break;
+
+ case VK_PRIOR:
+ extChar = wAccelKey_Pgup;
+ break;
+
+ case VK_NEXT:
+ extChar = wAccelKey_Pgdn;
+ break;
+
+ case VK_UP:
+ extChar = wAccelKey_Up;
+ break;
+
+ case VK_DOWN:
+ extChar = wAccelKey_Down;
+ break;
+
+ case VK_RIGHT:
+ extChar = wAccelKey_Right;
+ break;
+
+ case VK_LEFT:
+ extChar = wAccelKey_Left;
+ break;
+
+ case VK_BACK:
+ extChar = wAccelKey_Back;
+ break;
+
+ /*case VK_F1: extChar = wAccelKey_F1; break;*/
+ case VK_F2:
+ extChar = wAccelKey_F2;
+ break;
+
+ case VK_F3:
+ extChar = wAccelKey_F3;
+ break;
+
+ case VK_F4:
+ extChar = wAccelKey_F4;
+ break;
+
+ case VK_F5:
+ extChar = wAccelKey_F5;
+ break;
+
+ case VK_F6:
+ extChar = wAccelKey_F6;
+ break;
+
+ case VK_F7:
+ extChar = wAccelKey_F7;
+ break;
+
+ case VK_F8:
+ extChar = wAccelKey_F8;
+ break;
+
+ case VK_F9:
+ extChar = wAccelKey_F9;
+ break;
+
+ case VK_F10:
+ extChar = wAccelKey_F10;
+ break;
+
+ case VK_F11:
+ extChar = wAccelKey_F11;
+ break;
+
+ case VK_F12:
+ extChar = wAccelKey_F12;
+ break;
+ }
+
+ return extChar;
}
long notModKey;
int mswTranslateAccelerator(
- HWND hWnd,
- LPMSG pMsg )
-{
- long acclKey;
- long state;
- wWin_p win;
- wControl_p b;
-
- if ( pMsg->message != WM_KEYDOWN )
- return FALSE;
- acclKey = pMsg->wParam;
- b = getControlFromCursor( pMsg->hwnd, &win );
- if ( win == NULL )
- return 0;
- if ( b != NULL ) {
- switch (b->type) {
- case B_STRING:
- case B_INTEGER:
- case B_FLOAT:
- case B_LIST:
- case B_DROPLIST:
- case B_COMBOLIST:
- case B_TEXT:
- return 0;
- }
- }
- if ( acclKey == (long)VK_F1 ) {
- closeBalloonHelp();
- if (!b && win) {
- wHelp( win->helpStr );
- } else {
- if (b->helpStr)
- wHelp( b->helpStr );
- else if (b->parent)
- wHelp( b->parent->nameStr );
- }
- return 1;
- }
- /*acclKey = translateExtKey( (WORD)acclKey );*/
- state = 0;
- if ( GetKeyState(VK_CONTROL) & 0x1000 )
- state |= WKEY_CTRL;
- if ( GetKeyState(VK_MENU) & 0x1000 )
- state |= WKEY_ALT;
- if ( GetKeyState(VK_SHIFT) & 0x1000 )
- state |= WKEY_SHIFT;
- state <<= 8;
- acclKey |= state;
- if (pMsg->wParam > 0x12)
- notModKey = TRUE;
- return mswMenuAccelerator( win, acclKey );
+ HWND hWnd,
+ LPMSG pMsg)
+{
+ long acclKey;
+ long state;
+ wWin_p win;
+ wControl_p b;
+
+ if (pMsg->message != WM_KEYDOWN) {
+ return FALSE;
+ }
+
+ acclKey = pMsg->wParam;
+ b = getControlFromCursor(pMsg->hwnd, &win);
+
+ if (win == NULL) {
+ return 0;
+ }
+
+ if (b != NULL) {
+ switch (b->type) {
+ case B_STRING:
+ case B_INTEGER:
+ case B_FLOAT:
+ case B_LIST:
+ case B_DROPLIST:
+ case B_COMBOLIST:
+ case B_TEXT:
+ return 0;
+ }
+ }
+
+ if (acclKey == (long)VK_F1) {
+ closeBalloonHelp();
+
+ if (!b && win) {
+ wHelp(win->helpStr);
+ } else {
+ if (b->helpStr) {
+ wHelp(b->helpStr);
+ } else if (b->parent) {
+ wHelp(b->parent->nameStr);
+ }
+ }
+
+ return 1;
+ }
+
+ /*acclKey = translateExtKey( (WORD)acclKey );*/
+ state = 0;
+
+ if (GetKeyState(VK_CONTROL) & 0x1000) {
+ state |= WKEY_CTRL;
+ }
+
+ if (GetKeyState(VK_MENU) & 0x1000) {
+ state |= WKEY_ALT;
+ }
+
+ if (GetKeyState(VK_SHIFT) & 0x1000) {
+ state |= WKEY_SHIFT;
+ }
+
+ state <<= 8;
+ acclKey |= state;
+
+ if (pMsg->wParam > 0x12) {
+ notModKey = TRUE;
+ }
+
+ return mswMenuAccelerator(win, acclKey);
}
/*
@@ -938,272 +1106,320 @@ int mswTranslateAccelerator(
-void wGetDisplaySize( POS_T * width, POS_T * height )
+void wGetDisplaySize(POS_T * width, POS_T * height)
{
- *width = screenWidth;
- *height = screenHeight;
+ *width = screenWidth;
+ *height = screenHeight;
}
-void wWinGetSize( wWin_p w, POS_T * width, POS_T * height )
+void wWinGetSize(wWin_p w, POS_T * width, POS_T * height)
{
- RECT rect;
- GetWindowRect( w->hWnd, &rect );
- GetClientRect( w->hWnd, &rect );
- w->w = rect.right - rect.left;
- w->h = rect.bottom - rect.top;
- *width = w->w;
- *height = w->h;
+ RECT rect;
+ GetWindowRect(w->hWnd, &rect);
+ GetClientRect(w->hWnd, &rect);
+ w->w = rect.right - rect.left;
+ w->h = rect.bottom - rect.top;
+ *width = w->w;
+ *height = w->h;
}
-void wWinSetSize( wWin_p w, POS_T width, POS_T height )
+void wWinSetSize(wWin_p w, POS_T width, POS_T height)
{
- RECT rect;
- w->w = width;
- w->h = height;
- rect.left = 0;
- rect.top = 0;
- rect.right = w->w /*+w->padX*/;
- rect.bottom = w->h /*+w->padY*/;
- AdjustWindowRect( &rect, w->style, (w->option&F_MENUBAR)?1:0 );
- rect.bottom += mFixBorderH;
- if (!SetWindowPos( w->hWnd, HWND_TOP, CW_USEDEFAULT, CW_USEDEFAULT,
- rect.right-rect.left, rect.bottom-rect.top,
- SWP_NOMOVE|SWP_NOZORDER))
- mswFail("wWinSetSize");
- InvalidateRect( w->hWnd, NULL, TRUE );
+ RECT rect;
+ w->w = width;
+ w->h = height;
+ rect.left = 0;
+ rect.top = 0;
+ rect.right = w->w /*+w->padX*/;
+ rect.bottom = w->h /*+w->padY*/;
+ AdjustWindowRect(&rect, w->style, (w->option&F_MENUBAR)?1:0);
+ rect.bottom += mFixBorderH;
+
+ if (!SetWindowPos(w->hWnd, HWND_TOP, CW_USEDEFAULT, CW_USEDEFAULT,
+ rect.right-rect.left, rect.bottom-rect.top,
+ SWP_NOMOVE|SWP_NOZORDER)) {
+ mswFail("wWinSetSize");
+ }
+
+ InvalidateRect(w->hWnd, NULL, TRUE);
}
static int blocking;
-static void blockingLoop( void )
+static void blockingLoop(void)
{
- MSG msg;
- int myBlocking=blocking;
- while (blocking>=myBlocking && GetMessage( &msg, NULL, 0, 0 )) {
- if (
+ MSG msg;
+ int myBlocking=blocking;
+
+ while (blocking>=myBlocking && GetMessage(&msg, NULL, 0, 0)) {
+ if (
#ifdef DOTRANSACCEL
- (!TranslateAccelerator( mswWin->hWnd, hMswAccel, &msg )) &&
+ (!TranslateAccelerator(mswWin->hWnd, hMswAccel, &msg)) &&
#endif
- (!mswTranslateAccelerator( mswWin->hWnd, &msg )) ) {
- TranslateMessage( &msg );
- DispatchMessage( &msg );
- }
- }
+ (!mswTranslateAccelerator(mswWin->hWnd, &msg))) {
+ TranslateMessage(&msg);
+ DispatchMessage(&msg);
+ }
+ }
}
-static void savePos( wWin_p win )
-{
- char posStr[20];
- WINDOWPLACEMENT windowPlace;
- wPos_t w, h;
- RECT rect;
-
- if ( win->nameStr &&
- IsWindowVisible( win->hWnd) /*&& !IsIconic( win->hWnd )*/ ) {
- windowPlace.length = sizeof windowPlace;
- GetWindowPlacement( win->hWnd, &windowPlace );
- if (win->option&F_RECALLPOS) {
- wsprintf( posStr, "%d %d",
- windowPlace.rcNormalPosition.left,
- windowPlace.rcNormalPosition.top );
- wPrefSetString( "msw window pos", win->nameStr, posStr );
- if (win->option&F_RESIZE) {
- GetClientRect( win->hWnd, &rect );
- w = rect.right - rect.left;
- h = rect.bottom - rect.top;
- w = windowPlace.rcNormalPosition.right - windowPlace.rcNormalPosition.left;
- h = windowPlace.rcNormalPosition.bottom - windowPlace.rcNormalPosition.top;
- w -= mResizeBorderW*2;
- h -= mResizeBorderH*2 + mTitleH;
- if (win->option&F_MENUBAR)
- h -= mMenuH;
- wsprintf( posStr, "%d %d %d",
- ( windowPlace.showCmd == SW_SHOWMINIMIZED ? 1 :
- (windowPlace.showCmd == SW_SHOWMAXIMIZED ? 2 : 0 ) ),
- w, h );
- wPrefSetString( "msw window size", win->nameStr, posStr );
- }
- }
- }
+static void savePos(wWin_p win)
+{
+ WINDOWPLACEMENT windowPlace;
+ wPos_t w, h;
+ RECT rect;
+
+ if (win->nameStr &&
+ IsWindowVisible(win->hWnd) /*&& !IsIconic( win->hWnd )*/) {
+ windowPlace.length = sizeof windowPlace;
+ GetWindowPlacement(win->hWnd, &windowPlace);
+
+ if (win->option&F_RECALLPOS) {
+ char posStr[20];
+ wsprintf(posStr, "%d %d",
+ windowPlace.rcNormalPosition.left,
+ windowPlace.rcNormalPosition.top);
+ wPrefSetString("msw window pos", win->nameStr, posStr);
+
+ if (win->option&F_RESIZE) {
+ GetClientRect(win->hWnd, &rect);
+ w = windowPlace.rcNormalPosition.right - windowPlace.rcNormalPosition.left;
+ h = windowPlace.rcNormalPosition.bottom - windowPlace.rcNormalPosition.top;
+ w -= mResizeBorderW*2;
+ h -= mResizeBorderH*2 + mTitleH;
+
+ if (win->option&F_MENUBAR) {
+ h -= mMenuH;
+ }
+
+ wsprintf(posStr, "%d %d %d",
+ 0, // unused
+ w, h);
+ wPrefSetString("msw window size", win->nameStr, posStr);
+ }
+ }
+ }
}
void wWinShow(
- wWin_p win,
- BOOL_T show )
-{
- wPos_t x, y;
- wWin_p win1;
-
- win->busy = TRUE;
- if (show) {
- if (win->centerWin) {
- x = (screenWidth-win->w)/2;
- y = (screenHeight-win->h)/2;
- if (x<0)
- y = 0;
- if (x<0)
- y = 0;
- if (!SetWindowPos( win->hWnd, HWND_TOP, x, y,
- CW_USEDEFAULT, CW_USEDEFAULT,
- SWP_NOSIZE|SWP_NOZORDER))
- mswFail( "wWinShow:SetWindowPos()" );
- }
- win->centerWin = FALSE;
- win->shown = TRUE;
- if (mswHWnd == (HWND)0 || !IsIconic(mswHWnd) ) {
- ShowWindow( win->hWnd, SW_SHOW );
- if (win->focusChainFirst) {
- SetFocus( win->focusChainFirst->hWnd );
- }
- win->pendingShow = FALSE;
- if ( mswWinBlockEnabled && (win->option & F_BLOCK) ) {
- blocking++;
- inMainWndProc = FALSE;
- for ( win1 = winFirst; win1; win1=(wWin_p)win1->next ) {
- if ( win1->shown && win1 != win ) {
- if (win1->modalLevel == 0 )
- EnableWindow( win1->hWnd, FALSE );
- win1->modalLevel++;
- }
- }
- win->busy = FALSE;
- blockingLoop();
- }
- } else {
- win->pendingShow = TRUE;
- needToDoPendingShow = TRUE;
- }
- } else {
- savePos( win );
- ShowWindow( win->hWnd, SW_HIDE );
- /*SetWindowPos( win->hWnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE|SWP_HIDEWINDOW );*/
- if ( mswWinBlockEnabled && (win->option & F_BLOCK) ) {
- blocking--;
- for ( win1 = winFirst; win1; win1=(wWin_p)win1->next ) {
- if ( win1->shown && win1 != win ) {
- if ( win1->modalLevel > 0 )
- win1->modalLevel--;
- if (win1->modalLevel == 0 )
- EnableWindow( win1->hWnd, TRUE );
- }
- }
- }
- savePos( win );
- win->pendingShow = FALSE;
- win->shown = FALSE;
- }
- win->busy = FALSE;
+ wWin_p win,
+ BOOL_T show)
+{
+ wPos_t x, y;
+ wWin_p win1;
+ win->busy = TRUE;
+
+ if (show) {
+ if (win->centerWin) {
+ x = (screenWidth-win->w)/2;
+ y = (screenHeight-win->h)/2;
+
+ if (x<0) {
+ y = 0;
+ }
+
+ if (x<0) {
+ y = 0;
+ }
+
+ if (!SetWindowPos(win->hWnd, HWND_TOP, x, y,
+ CW_USEDEFAULT, CW_USEDEFAULT,
+ SWP_NOSIZE|SWP_NOZORDER)) {
+ mswFail("wWinShow:SetWindowPos()");
+ }
+ }
+
+ win->centerWin = FALSE;
+ win->shown = TRUE;
+
+ if (mswHWnd == (HWND)0 || !IsIconic(mswHWnd)) {
+ ShowWindow(win->hWnd, SW_SHOW);
+
+ if (win->focusChainFirst) {
+ SetFocus(win->focusChainFirst->hWnd);
+ }
+
+ win->pendingShow = FALSE;
+
+ if (mswWinBlockEnabled && (win->option & F_BLOCK)) {
+ blocking++;
+ inMainWndProc = FALSE;
+
+ for (win1 = winFirst; win1; win1=(wWin_p)win1->next) {
+ if (win1->shown && win1 != win) {
+ if (win1->modalLevel == 0) {
+ EnableWindow(win1->hWnd, FALSE);
+ }
+
+ win1->modalLevel++;
+ }
+ }
+
+ win->busy = FALSE;
+ blockingLoop();
+ }
+ } else {
+ win->pendingShow = TRUE;
+ needToDoPendingShow = TRUE;
+ }
+ } else {
+ savePos(win);
+ ShowWindow(win->hWnd, SW_HIDE);
+
+ /*SetWindowPos( win->hWnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE|SWP_HIDEWINDOW );*/
+ if (mswWinBlockEnabled && (win->option & F_BLOCK)) {
+ blocking--;
+
+ for (win1 = winFirst; win1; win1=(wWin_p)win1->next) {
+ if (win1->shown && win1 != win) {
+ if (win1->modalLevel > 0) {
+ win1->modalLevel--;
+ }
+
+ if (win1->modalLevel == 0) {
+ EnableWindow(win1->hWnd, TRUE);
+ }
+ }
+ }
+ }
+
+ savePos(win);
+ win->pendingShow = FALSE;
+ win->shown = FALSE;
+ }
+
+ win->busy = FALSE;
}
void wWinBlockEnable(
- wBool_t enabled )
+ wBool_t enabled)
{
- mswWinBlockEnabled = enabled;
+ mswWinBlockEnabled = enabled;
}
wBool_t wWinIsVisible(
- wWin_p w )
+ wWin_p w)
{
- return IsWindowVisible(w->hWnd);
+ return IsWindowVisible(w->hWnd);
}
+/**
+* Returns whether the window is maximized.
+*
+* \param win IN window
+* \return TRUE if maximized, FALSE otherwise
+*/
+
+wBool_t wWinIsMaximized(wWin_p w)
+{
+ return (IsZoomed(w->hWnd));
+}
void wWinSetTitle(
- wWin_p w,
- const char * title )
+ wWin_p w,
+ const char * title)
{
- SetWindowText( w->hWnd, title );
+ SetWindowText(w->hWnd, title);
}
void wWinSetBusy(
- wWin_p w,
- BOOL_T busy )
-{
- HMENU menuH;
- UINT uEnable;
- int cnt, inx;
- wControl_p b;
-
- w->isBusy = busy;
- menuH = GetMenu( w->hWnd );
- if (menuH) {
- uEnable = MF_BYPOSITION|(busy?MF_DISABLED:MF_ENABLED);
- cnt = GetMenuItemCount(menuH);
- for (inx=0; inx<cnt; inx++)
- EnableMenuItem( menuH, inx, uEnable );
- }
- for (b=w->first; b; b=b->next) {
- if ( (b->option&BO_DISABLED)==0) {
- if (mswCallBacks[b->type] != NULL &&
- mswCallBacks[b->type]->setBusyProc) {
- mswCallBacks[b->type]->setBusyProc( b, busy );
- } else {
- if (b->hWnd)
- EnableWindow( b->hWnd, (BOOL)!busy );
- }
- }
- }
+ wWin_p w,
+ BOOL_T busy)
+{
+ HMENU menuH;
+ UINT uEnable;
+ wControl_p b;
+ w->isBusy = busy;
+ menuH = GetMenu(w->hWnd);
+
+ if (menuH) {
+ int cnt, inx;
+ uEnable = MF_BYPOSITION|(busy?MF_DISABLED:MF_ENABLED);
+ cnt = GetMenuItemCount(menuH);
+
+ for (inx=0; inx<cnt; inx++) {
+ EnableMenuItem(menuH, inx, uEnable);
+ }
+ }
+
+ for (b=w->first; b; b=b->next) {
+ if ((b->option&BO_DISABLED)==0) {
+ if (mswCallBacks[b->type] != NULL &&
+ mswCallBacks[b->type]->setBusyProc) {
+ mswCallBacks[b->type]->setBusyProc(b, busy);
+ } else {
+ if (b->hWnd) {
+ EnableWindow(b->hWnd, (BOOL)!busy);
+ }
+ }
+ }
+ }
}
const char * wWinGetTitle(
- wWin_p w )
+ wWin_p w)
{
- return w->labelStr;
+ return w->labelStr;
}
void wWinClear(
- wWin_p win,
- wPos_t x,
- wPos_t y,
- wPos_t width,
- wPos_t height )
+ wWin_p win,
+ wPos_t x,
+ wPos_t y,
+ wPos_t width,
+ wPos_t height)
{
}
void wSetCursor(
- wCursor_t cursor )
-{
- switch ( cursor ) {
- case wCursorNormal:
- case wCursorQuestion:
- default:
- SetCursor( LoadCursor( NULL, IDC_ARROW ) );
- break;
- case wCursorWait:
- SetCursor( LoadCursor( NULL, IDC_WAIT ) );
- break;
- case wCursorCross:
- SetCursor( LoadCursor( NULL, IDC_CROSS ) );
- break;
- case wCursorIBeam:
- SetCursor( LoadCursor( NULL, IDC_IBEAM ) );
- break;
- }
- curCursor = cursor;
+ wCursor_t cursor)
+{
+ switch (cursor) {
+ case wCursorNormal:
+ case wCursorQuestion:
+ default:
+ SetCursor(LoadCursor(NULL, IDC_ARROW));
+ break;
+
+ case wCursorWait:
+ SetCursor(LoadCursor(NULL, IDC_WAIT));
+ break;
+
+ case wCursorCross:
+ SetCursor(LoadCursor(NULL, IDC_CROSS));
+ break;
+
+ case wCursorIBeam:
+ SetCursor(LoadCursor(NULL, IDC_IBEAM));
+ break;
+ }
+
+ curCursor = cursor;
}
-void wWinDoCancel( wWin_p win )
+void wWinDoCancel(wWin_p win)
{
- wControl_p b;
- for (b=win->first; b; b=b->next) {
- if ((b->type == B_BUTTON) && (b->option & BB_CANCEL) ) {
- mswButtPush( b );
- }
- }
+ wControl_p b;
+
+ for (b=win->first; b; b=b->next) {
+ if ((b->type == B_BUTTON) && (b->option & BB_CANCEL)) {
+ mswButtPush(b);
+ }
+ }
}
-unsigned long wGetTimer( void )
+unsigned long wGetTimer(void)
{
- return (unsigned long)GetTickCount();
+ return (unsigned long)GetTickCount();
}
@@ -1218,35 +1434,40 @@ unsigned long wGetTimer( void )
void wControlSetHelp(
- wControl_p b,
- const char * help )
+ wControl_p b,
+ const char * help)
{
- if (b->helpStr)
- free(CAST_AWAY_CONST b->helpStr);
- if (help)
- b->helpStr = mswStrdup( help );
- else
- b->helpStr = NULL;
+ if (b->helpStr) {
+ free(CAST_AWAY_CONST b->helpStr);
+ }
+
+ if (help) {
+ b->helpStr = mswStrdup(help);
+ } else {
+ b->helpStr = NULL;
+ }
}
/**
- * Add control to circular list of synonymous controls. Synonymous controls are kept in sync by
- * calling wControlLinkedActive for one member of the list
+ * Add control to circular list of synonymous controls. Synonymous controls are kept in sync by
+ * calling wControlLinkedActive for one member of the list
*
* \param IN first control
* \param IN second control
* \return none
*/
-
-void wControlLinkedSet( wControl_p b1, wControl_p b2 )
+
+void wControlLinkedSet(wControl_p b1, wControl_p b2)
{
- b2->synonym = b1->synonym;
- if( b2->synonym == NULL )
- b2->synonym = b1;
-
- b1->synonym = b2;
-}
+ b2->synonym = b1->synonym;
+
+ if (b2->synonym == NULL) {
+ b2->synonym = b1;
+ }
+
+ b1->synonym = b2;
+}
/**
* Activate/deactivate a group of synonymous controls.
@@ -1255,340 +1476,379 @@ void wControlLinkedSet( wControl_p b1, wControl_p b2 )
* \param IN state
* \return none
*/
-
-void wControlLinkedActive( wControl_p b, int active )
-{
- wControl_p savePtr = b;
-
- if( savePtr->type == B_MENUITEM )
- wMenuPushEnable( (wMenuPush_p)savePtr, active );
- else
- wControlActive( savePtr, active );
-
- savePtr = savePtr->synonym;
- while( savePtr && savePtr != b ) {
-
- if( savePtr->type == B_MENUITEM )
- wMenuPushEnable( (wMenuPush_p)savePtr, active );
- else
- wControlActive( savePtr, active );
+void wControlLinkedActive(wControl_p b, int active)
+{
+ wControl_p savePtr = b;
+
+ if (savePtr->type == B_MENUITEM) {
+ wMenuPushEnable((wMenuPush_p)savePtr, active);
+ } else {
+ wControlActive(savePtr, active);
+ }
+
+ savePtr = savePtr->synonym;
+
+ while (savePtr && savePtr != b) {
+ if (savePtr->type == B_MENUITEM) {
+ wMenuPushEnable((wMenuPush_p)savePtr, active);
+ } else {
+ wControlActive(savePtr, active);
+ }
+
+ savePtr = savePtr->synonym;
+ }
+}
+
+void wControlShow(wControl_p b, BOOL_T show)
+{
+ RECT rc;
+
+ if (show) {
+ if (mswCallBacks[b->type] != NULL &&
+ mswCallBacks[b->type]->repaintProc) {
+ mswCallBacks[b->type]->repaintProc(b->parent->hWnd, b);
+ }
+ } else {
+ if (b->labelStr) {
+ rc.left = b->labelX;
+ rc.right = b->x;
+ rc.top = b->labelY;
+ rc.bottom = b->labelY+b->h;
+ InvalidateRect(((wControl_p)b->parent)->hWnd, &rc, TRUE);
+ }
+ }
+
+ if (mswCallBacks[b->type] != NULL &&
+ mswCallBacks[b->type]->showProc) {
+ mswCallBacks[b->type]->showProc(b, show);
+ } else {
+ ShowWindow(b->hWnd, show?SW_SHOW:SW_HIDE);
+#ifdef SHOW_DOES_SETFOCUS
- savePtr = savePtr->synonym;
- }
-}
+ if (show && (b->option&BO_READONLY)==0 && b->hWnd != GetFocus()) {
+ hWnd = SetFocus(b->hWnd);
+ }
-void wControlShow( wControl_p b, BOOL_T show )
-{
- RECT rc;
- if (show) {
- if (mswCallBacks[b->type] != NULL &&
- mswCallBacks[b->type]->repaintProc)
- mswCallBacks[b->type]->repaintProc( b->parent->hWnd, b );
- } else {
- if( b->labelStr ) {
- rc.left = b->labelX;
- rc.right = b->x;
- rc.top = b->labelY;
- rc.bottom = b->labelY+b->h;
- InvalidateRect( ((wControl_p)b->parent)->hWnd, &rc, TRUE );
- }
- }
- if (mswCallBacks[b->type] != NULL &&
- mswCallBacks[b->type]->showProc) {
- mswCallBacks[b->type]->showProc( b, show );
- } else {
- ShowWindow( b->hWnd, show?SW_SHOW:SW_HIDE );
-#ifdef SHOW_DOES_SETFOCUS
- if (show && (b->option&BO_READONLY)==0 && b->hWnd != GetFocus() ) {
- hWnd = SetFocus( b->hWnd );
- }
#endif
- }
- b->shown = show;
+ }
+
+ b->shown = show;
}
void wControlSetFocus(
- wControl_p b )
+ wControl_p b)
{
- if ( b->hWnd )
- SetFocus( b->hWnd );
+ if (b->hWnd) {
+ SetFocus(b->hWnd);
+ }
}
void wControlActive(
- wControl_p b,
- int active )
-{
- if (active)
- b->option &= ~BO_DISABLED;
- else
- b->option |= BO_DISABLED;
- if (b->parent->isBusy)
- return;
- if (mswCallBacks[b->type] != NULL &&
- mswCallBacks[b->type]->setBusyProc) {
- mswCallBacks[b->type]->setBusyProc( b, !active );
- } else {
- EnableWindow( b->hWnd, (BOOL)active );
- InvalidateRect( b->hWnd, NULL, TRUE );
- }
+ wControl_p b,
+ int active)
+{
+ if (active) {
+ b->option &= ~BO_DISABLED;
+ } else {
+ b->option |= BO_DISABLED;
+ }
+
+ if (b->parent->isBusy) {
+ return;
+ }
+
+ if (mswCallBacks[b->type] != NULL &&
+ mswCallBacks[b->type]->setBusyProc) {
+ mswCallBacks[b->type]->setBusyProc(b, !active);
+ } else {
+ EnableWindow(b->hWnd, (BOOL)active);
+ InvalidateRect(b->hWnd, NULL, TRUE);
+ }
}
-const char * wControlGetHelp( wControl_p b )
+const char * wControlGetHelp(wControl_p b)
{
- return b->helpStr;
+ return b->helpStr;
}
-wPos_t wLabelWidth( const char * labelStr )
+wPos_t wLabelWidth(const char * labelStr)
{
- int lab_l;
- HDC hDc;
- DWORD dw;
- LABELFONTDECL
-
- hDc = GetDC( mswHWnd );
- lab_l = strlen(labelStr);
- LABELFONTSELECT
- dw = GetTextExtent( hDc, CAST_AWAY_CONST labelStr, lab_l );
- LABELFONTRESET
- ReleaseDC( mswHWnd, hDc );
- return LOWORD(dw) + 5;
+ int lab_l;
+ HDC hDc;
+ DWORD dw;
+ LABELFONTDECL
+ hDc = GetDC(mswHWnd);
+ lab_l = strlen(labelStr);
+ LABELFONTSELECT
+ dw = GetTextExtent(hDc, CAST_AWAY_CONST labelStr, lab_l);
+ LABELFONTRESET
+ ReleaseDC(mswHWnd, hDc);
+ return LOWORD(dw) + 5;
}
wPos_t wControlGetWidth(
- wControl_p b) /* Control */
+ wControl_p b) /* Control */
{
- return b->w;
+ return b->w;
}
wPos_t wControlGetHeight(
- wControl_p b) /* Control */
+ wControl_p b) /* Control */
{
- return b->h;
+ return b->h;
}
wPos_t wControlGetPosX(
- wControl_p b) /* Control */
+ wControl_p b) /* Control */
{
- return b->x;
+ return b->x;
}
wPos_t wControlGetPosY(
- wControl_p b) /* Control */
+ wControl_p b) /* Control */
{
- return b->y;
+ return b->y;
}
void wControlSetPos(
- wControl_p b,
- wPos_t x,
- wPos_t y )
-{
- b->labelX = x;
- b->labelY = y+2;
-
- if (b->labelStr) {
- int lab_l;
- HDC hDc;
- DWORD dw;
- LABELFONTDECL
-
- hDc = GetDC( b->parent->hWnd );
- LABELFONTSELECT
- lab_l = strlen(b->labelStr);
- dw = GetTextExtent( hDc, CAST_AWAY_CONST b->labelStr, lab_l );
- b->labelX -= LOWORD(dw) + 5;
- LABELFONTRESET
- ReleaseDC( b->parent->hWnd, hDc );
- }
-
- if (mswCallBacks[b->type] != NULL &&
- mswCallBacks[b->type]->setPosProc) {
- mswCallBacks[b->type]->setPosProc( b, x, y );
- } else {
- b->x = x;
- b->y = y;
- if (b->hWnd)
- if (!SetWindowPos( b->hWnd, HWND_TOP, x, y,
- CW_USEDEFAULT, CW_USEDEFAULT,
- SWP_NOSIZE|SWP_NOZORDER))
- mswFail("wControlSetPos");
- }
+ wControl_p b,
+ wPos_t x,
+ wPos_t y)
+{
+ b->labelX = x;
+ b->labelY = y+2;
+
+ if (b->labelStr) {
+ int lab_l;
+ HDC hDc;
+ DWORD dw;
+ LABELFONTDECL
+ hDc = GetDC(b->parent->hWnd);
+ LABELFONTSELECT
+ lab_l = strlen(b->labelStr);
+ dw = GetTextExtent(hDc, CAST_AWAY_CONST b->labelStr, lab_l);
+ b->labelX -= LOWORD(dw) + 5;
+ LABELFONTRESET
+ ReleaseDC(b->parent->hWnd, hDc);
+ }
+
+ if (mswCallBacks[b->type] != NULL &&
+ mswCallBacks[b->type]->setPosProc) {
+ mswCallBacks[b->type]->setPosProc(b, x, y);
+ } else {
+ b->x = x;
+ b->y = y;
+
+ if (b->hWnd)
+ if (!SetWindowPos(b->hWnd, HWND_TOP, x, y,
+ CW_USEDEFAULT, CW_USEDEFAULT,
+ SWP_NOSIZE|SWP_NOZORDER)) {
+ mswFail("wControlSetPos");
+ }
+ }
}
void wControlSetLabel(
- wControl_p b,
- const char * labelStr )
-{
- if ( b->type == B_RADIO || b->type == B_TOGGLE ) {
- ;
- } else {
- int lab_l;
- HDC hDc;
- DWORD dw;
- LABELFONTDECL
-
- hDc = GetDC( b->parent->hWnd );
- lab_l = strlen(labelStr);
- LABELFONTSELECT
- dw = GetTextExtent( hDc, CAST_AWAY_CONST labelStr, lab_l );
- LABELFONTRESET
- b->labelX = b->x - LOWORD(dw) - 5;
- ReleaseDC( b->parent->hWnd, hDc );
- b->labelStr = mswStrdup( labelStr );
- if (b->type == B_BUTTON)
- SetWindowText( b->hWnd, labelStr );
- }
+ wControl_p b,
+ const char * labelStr)
+{
+ if (b->type == B_RADIO || b->type == B_TOGGLE) {
+ ;
+ } else {
+ int lab_l;
+ HDC hDc;
+ DWORD dw;
+ LABELFONTDECL
+ hDc = GetDC(b->parent->hWnd);
+ lab_l = strlen(labelStr);
+ LABELFONTSELECT
+ dw = GetTextExtent(hDc, CAST_AWAY_CONST labelStr, lab_l);
+ LABELFONTRESET
+ b->labelX = b->x - LOWORD(dw) - 5;
+ ReleaseDC(b->parent->hWnd, hDc);
+ b->labelStr = mswStrdup(labelStr);
+
+ if (b->type == B_BUTTON) {
+ SetWindowText(b->hWnd, labelStr);
+ }
+ }
}
void wControlSetContext(
- wControl_p b,
- void * context )
+ wControl_p b,
+ void * context)
{
- b->data = context;
+ b->data = context;
}
static int controlHiliteWidth = 5;
static int controlHiliteWidth2 = 3;
void wControlHilite(
- wControl_p b,
- wBool_t hilite )
-{
- HDC hDc;
- HPEN oldPen, newPen;
- int oldMode;
-
- if ( b == NULL ) return;
- if ( !IsWindowVisible(b->parent->hWnd) ) return;
- if ( !IsWindowVisible(b->hWnd) ) return;
- hDc = GetDC( b->parent->hWnd );
- newPen = CreatePen( PS_SOLID, controlHiliteWidth, RGB(0,0,0) );
- oldPen = SelectObject( hDc, newPen );
- oldMode = SetROP2( hDc, R2_NOTXORPEN );
- MoveTo( hDc, b->x-controlHiliteWidth2, b->y-controlHiliteWidth2 );
- LineTo( hDc, b->x+b->w+controlHiliteWidth2, b->y-controlHiliteWidth2 );
- LineTo( hDc, b->x+b->w+controlHiliteWidth2, b->y+b->h+controlHiliteWidth2 );
- LineTo( hDc, b->x-controlHiliteWidth2, b->y+b->h+controlHiliteWidth2 );
- LineTo( hDc, b->x-controlHiliteWidth2, b->y-controlHiliteWidth2 );
- SetROP2( hDc, oldMode );
- SelectObject( hDc, oldPen );
- DeleteObject( newPen );
- ReleaseDC( b->parent->hWnd, hDc );
+ wControl_p b,
+ wBool_t hilite)
+{
+ HDC hDc;
+ HPEN oldPen, newPen;
+ int oldMode;
+
+ if (b == NULL) {
+ return;
+ }
+
+ if (!IsWindowVisible(b->parent->hWnd)) {
+ return;
+ }
+
+ if (!IsWindowVisible(b->hWnd)) {
+ return;
+ }
+
+ hDc = GetDC(b->parent->hWnd);
+ newPen = CreatePen(PS_SOLID, controlHiliteWidth, RGB(0,0,0));
+ oldPen = SelectObject(hDc, newPen);
+ oldMode = SetROP2(hDc, R2_NOTXORPEN);
+ MoveTo(hDc, b->x-controlHiliteWidth2, b->y-controlHiliteWidth2);
+ LineTo(hDc, b->x+b->w+controlHiliteWidth2, b->y-controlHiliteWidth2);
+ LineTo(hDc, b->x+b->w+controlHiliteWidth2, b->y+b->h+controlHiliteWidth2);
+ LineTo(hDc, b->x-controlHiliteWidth2, b->y+b->h+controlHiliteWidth2);
+ LineTo(hDc, b->x-controlHiliteWidth2, b->y-controlHiliteWidth2);
+ SetROP2(hDc, oldMode);
+ SelectObject(hDc, oldPen);
+ DeleteObject(newPen);
+ ReleaseDC(b->parent->hWnd, hDc);
}
/*
*****************************************************************************
*
- * Exported Utility Functions
+ * Exported Utility Functions
*
*****************************************************************************
*/
void wMessage(
- wWin_p w,
- const char * msg,
- int beep )
-{
- HDC hDc;
- int oldRop;
- POS_T h;
- RECT rect;
- LABELFONTDECL
-
- if (beep)
- MessageBeep(0);
- GetClientRect( w->hWnd, &rect );
- hDc = GetDC( w->hWnd );
- oldRop = SetROP2( hDc, R2_WHITE );
- h = w->h+2;
- Rectangle( hDc, 0, h, w->w, h );
- SetROP2( hDc, oldRop );
- LABELFONTSELECT
- TextOut( hDc, 0, h, msg, strlen(msg) );
- LABELFONTRESET
- ReleaseDC( w->hWnd, hDc );
-}
-
-
-void wExit( int rc )
-{
- INDEX_T inx;
- wControl_p b;
-
- mswPutCustomColors();
- wPrefFlush();
- for ( inx=controlMap_da.cnt-1; inx>=0; inx-- ) {
- b = controlMap(inx).b;
- if (b != NULL) {
- if (b->type == W_MAIN || b->type == W_POPUP) {
- wWin_p w = (wWin_p)b;
- savePos( w );
- if (w->winProc != NULL)
- w->winProc( w, wQuit_e, w->data );
- }
- }
- }
- for ( inx=controlMap_da.cnt-1; inx>=0; inx-- ) {
- b = controlMap(inx).b;
- if (b != NULL) {
- if (mswCallBacks[b->type] != NULL &&
- mswCallBacks[b->type]->doneProc != NULL)
- mswCallBacks[b->type]->doneProc( b );
- }
- controlMap(inx).b = NULL;
- }
- deleteBitmaps();
- if (mswOldTextFont != (HFONT)0)
- DeleteObject( mswOldTextFont );
- if (helpInitted) {
- WinHelp(mswHWnd, helpFile, HELP_QUIT, 0L );
- helpInitted = FALSE;
- }
- if (balloonHelpHWnd) {
- HDC hDc;
- hDc = GetDC( balloonHelpHWnd );
- SelectObject( hDc, balloonHelpOldFont );
- DeleteObject( balloonHelpNewFont );
- ReleaseDC( balloonHelpHWnd, hDc );
- }
+ wWin_p w,
+ const char * msg,
+ int beep)
+{
+ HDC hDc;
+ int oldRop;
+ POS_T h;
+ RECT rect;
+ LABELFONTDECL
+
+ if (beep) {
+ MessageBeep(0);
+ }
+
+ GetClientRect(w->hWnd, &rect);
+ hDc = GetDC(w->hWnd);
+ oldRop = SetROP2(hDc, R2_WHITE);
+ h = w->h+2;
+ Rectangle(hDc, 0, h, w->w, h);
+ SetROP2(hDc, oldRop);
+ LABELFONTSELECT
+ TextOut(hDc, 0, h, msg, strlen(msg));
+ LABELFONTRESET
+ ReleaseDC(w->hWnd, hDc);
+}
+
+
+void wExit(int rc)
+{
+ INDEX_T inx;
+ wControl_p b;
+ mswPutCustomColors();
+ wPrefFlush();
+
+ for (inx=controlMap_da.cnt-1; inx>=0; inx--) {
+ b = controlMap(inx).b;
+
+ if (b != NULL) {
+ if (b->type == W_MAIN || b->type == W_POPUP) {
+ wWin_p w = (wWin_p)b;
+ savePos(w);
+
+ if (w->winProc != NULL) {
+ w->winProc(w, wQuit_e, w->data);
+ }
+ }
+ }
+ }
+
+ for (inx=controlMap_da.cnt-1; inx>=0; inx--) {
+ b = controlMap(inx).b;
+
+ if (b != NULL) {
+ if (mswCallBacks[b->type] != NULL &&
+ mswCallBacks[b->type]->doneProc != NULL) {
+ mswCallBacks[b->type]->doneProc(b);
+ }
+ }
+
+ controlMap(inx).b = NULL;
+ }
+
+ deleteBitmaps();
+
+ if (mswOldTextFont != (HFONT)0) {
+ DeleteObject(mswOldTextFont);
+ }
+
+ if (helpInitted) {
+ WinHelp(mswHWnd, helpFile, HELP_QUIT, 0L);
+ helpInitted = FALSE;
+ }
+
+ if (balloonHelpHWnd) {
+ HDC hDc;
+ hDc = GetDC(balloonHelpHWnd);
+ SelectObject(hDc, balloonHelpOldFont);
+ DeleteObject(balloonHelpNewFont);
+ ReleaseDC(balloonHelpHWnd, hDc);
+ }
+
#ifdef HELPSTR
- fclose( helpStrF );
+ fclose(helpStrF);
#endif
- DestroyWindow( mswHWnd );
- if (mswPalette) {
- DeleteObject( mswPalette );
- /*DeleteObject( mswPrintPalette );*/
- }
+ DestroyWindow(mswHWnd);
+
+ if (mswPalette) {
+ DeleteObject(mswPalette);
+ /*DeleteObject( mswPrintPalette );*/
+ }
}
void wFlush(
- void )
+ void)
{
- wWin_p win;
+ wWin_p win;
+ inMainWndProc = FALSE;
+ mswRepaintAll();
- inMainWndProc = FALSE;
- mswRepaintAll();
- for (win=winFirst; win; win=(wWin_p)win->next)
- UpdateWindow( win->hWnd );
+ for (win=winFirst; win; win=(wWin_p)win->next) {
+ UpdateWindow(win->hWnd);
+ }
}
void wUpdate(
- wWin_p win )
+ wWin_p win)
{
- UpdateWindow( win->hWnd );
+ UpdateWindow(win->hWnd);
}
static wBool_t paused;
@@ -1598,85 +1858,103 @@ static wControl_p triggerControl;
/**
* Wait until the pause timer expires. During that time, the message loop is
- * handled and queued messages are processed
+ * handled and queued messages are processed
*/
-static void pausedLoop( void )
+static void pausedLoop(void)
{
- MSG msg;
- while (paused && GetMessage( &msg, NULL, 0, 0 )) {
- if ( (mswWin) && (!mswTranslateAccelerator( mswWin->hWnd, &msg )) ) {
- TranslateMessage( &msg );
- }
- DispatchMessage( &msg );
- }
+ MSG msg;
+
+ while (paused && GetMessage(&msg, NULL, 0, 0)) {
+ if ((mswWin) && (!mswTranslateAccelerator(mswWin->hWnd, &msg))) {
+ TranslateMessage(&msg);
+ }
+
+ DispatchMessage(&msg);
+ }
}
/**
- * Timer callback function for the pause timer. The only purpose of this
+ * Timer callback function for the pause timer. The only purpose of this
* timer proc is to clear the waiting flag and kill the timer itself.
*/
-void CALLBACK TimerProc( HWND hWnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime )
+void CALLBACK TimerProc(HWND hWnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)
{
- if (idEvent == PAUSE_TIMER) {
- paused = FALSE;
- KillTimer( hWnd, PAUSE_TIMER );
- }
+ if (idEvent == PAUSE_TIMER) {
+ paused = FALSE;
+ KillTimer(hWnd, PAUSE_TIMER);
+ }
}
/**
- * Pause the application for a specified time.
+ * Pause the application for a specified time.
*/
-void wPause( long msec )
+void wPause(long msec)
{
- paused = TRUE;
- if (msec > 65000L)
- msec = 65000L;
- pauseTimer = SetTimer( mswHWnd, PAUSE_TIMER, (UINT)msec, TimerProc );
- if (pauseTimer == 0)
- mswFail("wPause: No timers");
- else
- pausedLoop();
+ paused = TRUE;
+
+ if (msec > 65000L) {
+ msec = 65000L;
+ }
+
+ pauseTimer = SetTimer(mswHWnd, PAUSE_TIMER, (UINT)msec, TimerProc);
+
+ if (pauseTimer == 0) {
+ mswFail("wPause: No timers");
+ } else {
+ pausedLoop();
+ }
}
void wAlarm(
- long msec,
- wAlarmCallBack_p func )
+ long msec,
+ wAlarmCallBack_p func)
{
- alarmFunc = func;
- if (msec > 65000L)
- msec = 65000L;
- alarmTimer = SetTimer( mswHWnd, ALARM_TIMER, (UINT)msec, NULL );
- if (alarmTimer == 0)
- mswFail("wAlarm: No timers");
+ alarmFunc = func;
+
+ if (msec > 65000L) {
+ msec = 65000L;
+ }
+
+ alarmTimer = SetTimer(mswHWnd, ALARM_TIMER, (UINT)msec, NULL);
+
+ if (alarmTimer == 0) {
+ mswFail("wAlarm: No timers");
+ }
}
void mswSetTrigger(
- wControl_p control,
- setTriggerCallback_p func )
-{
- UINT msec = (UINT)500;
- triggerControl = control;
- triggerFunc = func;
- if (func == NULL && triggerTimer != 0) {
- KillTimer( mswHWnd, triggerTimer );
- triggerTimer = 0;
- return;
- }
- if (msec > 65000L)
- msec = 65000L;
- triggerTimer = SetTimer( mswHWnd, TRIGGER_TIMER, (UINT)msec, NULL );
- if (triggerTimer == 0)
- mswFail("wAlarm: No timers");
+ wControl_p control,
+ setTriggerCallback_p func)
+{
+ UINT msec = (UINT)500;
+ triggerControl = control;
+ triggerFunc = func;
+
+ if (func == NULL && triggerTimer != 0) {
+ KillTimer(mswHWnd, triggerTimer);
+ triggerTimer = 0;
+ return;
+ }
+
+ if (msec > 65000L) {
+ msec = 65000L;
+ }
+
+ triggerTimer = SetTimer(mswHWnd, TRIGGER_TIMER, (UINT)msec, NULL);
+
+ if (triggerTimer == 0) {
+ mswFail("wAlarm: No timers");
+ }
}
-void wBeep( void )
+void wBeep(void)
{
- MessageBeep( MB_OK );
+ MessageBeep(MB_OK);
}
/**
@@ -1690,41 +1968,46 @@ void wBeep( void )
*/
int wNoticeEx(
- int type,
- const char * msg,
- const char * yes,
- const char * no )
-{
- int res;
- UINT flag;
- char *headline;
-
- switch( type ) {
- case NT_INFORMATION:
- flag = MB_ICONINFORMATION;
- headline = _("Information");
- break;
- case NT_WARNING:
- flag = MB_ICONWARNING;
- headline = _("Warning");
- break;
- case NT_ERROR:
- flag = MB_ICONERROR;
- headline = _("Error");
- break;
- }
- res = MessageBox( mswHWnd, msg, headline, flag | MB_TASKMODAL|((no==NULL)?MB_OK:MB_YESNO) );
- return res == IDOK || res == IDYES;
+ int type,
+ const char * msg,
+ const char * yes,
+ const char * no)
+{
+ int res;
+ UINT flag;
+ char *headline;
+
+ switch (type) {
+ case NT_INFORMATION:
+ flag = MB_ICONINFORMATION;
+ headline = _("Information");
+ break;
+
+ case NT_WARNING:
+ flag = MB_ICONWARNING;
+ headline = _("Warning");
+ break;
+
+ case NT_ERROR:
+ flag = MB_ICONERROR;
+ headline = _("Error");
+ break;
+ }
+
+ res = MessageBox(mswHWnd, msg, headline,
+ flag | MB_TASKMODAL|((no==NULL)?MB_OK:MB_YESNO));
+ return res == IDOK || res == IDYES;
}
int wNotice(
- const char * msg,
- const char * yes,
- const char * no )
+ const char * msg,
+ const char * yes,
+ const char * no)
{
- int res;
- res = MessageBox( mswHWnd, msg, "Notice", MB_TASKMODAL|((no==NULL)?MB_OK:MB_YESNO) );
- return res == IDOK || res == IDYES;
+ int res;
+ res = MessageBox(mswHWnd, msg, "Notice",
+ MB_TASKMODAL|((no==NULL)?MB_OK:MB_YESNO));
+ return res == IDOK || res == IDYES;
}
/**
@@ -1739,235 +2022,279 @@ int wNotice(
int wNotice3(
- const char * msg,
- const char * yes,
- const char * no,
- const char * cancel )
+ const char * msg,
+ const char * yes,
+ const char * no,
+ const char * cancel)
{
- int res;
- res = MessageBox( mswHWnd, msg, _("Warning"), MB_ICONWARNING | MB_TASKMODAL|MB_YESNOCANCEL );
- if ( res == IDOK || res == IDYES )
- return 1;
- else if ( res == IDNO )
- return -1;
- else
- return 0;
+ int res;
+ res = MessageBox(mswHWnd, msg, _("Warning"),
+ MB_ICONWARNING | MB_TASKMODAL|MB_YESNOCANCEL);
+
+ if (res == IDOK || res == IDYES) {
+ return 1;
+ } else if (res == IDNO) {
+ return -1;
+ } else {
+ return 0;
+ }
}
void wHelp(
- const char * topic )
+ const char * topic)
{
- char *pszHelpTopic;
- HWND hwndHelp;
+ char *pszHelpTopic;
+ HWND hwndHelp;
- if (!helpInitted) {
- HtmlHelp( NULL, NULL, HH_INITIALIZE, (DWORD)&dwCookie) ;
- helpInitted = TRUE;
- }
-/* "c:\\help.chm::/intro.htm>mainwin", */
- /* attention: always adapt constant value (10) to needed number of formatting characters */
- pszHelpTopic = malloc( strlen( helpFile ) + strlen( topic ) + 10 );
- assert( pszHelpTopic != NULL );
+ if (!helpInitted) {
+ HtmlHelp(NULL, NULL, HH_INITIALIZE, (DWORD)&dwCookie) ;
+ helpInitted = TRUE;
+ }
+
+ /* "c:\\help.chm::/intro.htm>mainwin", */
+ /* attention: always adapt constant value (10) to needed number of formatting characters */
+ pszHelpTopic = malloc(strlen(helpFile) + strlen(topic) + 10);
+ assert(pszHelpTopic != NULL);
+ sprintf(pszHelpTopic, "/%s.html", topic);
+ hwndHelp = HtmlHelp(mswHWnd, helpFile, HH_DISPLAY_TOPIC,
+ (DWORD_PTR)pszHelpTopic);
- sprintf( pszHelpTopic, "/%s.html", topic );
- hwndHelp = HtmlHelp(mswHWnd, helpFile, HH_DISPLAY_TOPIC, (DWORD_PTR)pszHelpTopic);
- if( !hwndHelp )
- wNoticeEx( NT_ERROR, pszHelpTopic, "Ok", NULL );
+ if (!hwndHelp) {
+ wNoticeEx(NT_ERROR, pszHelpTopic, "Ok", NULL);
+ }
- free( pszHelpTopic );
+ free(pszHelpTopic);
}
-void doHelpMenu( void * context )
+void doHelpMenu(void * context)
{
- HH_FTS_QUERY ftsQuery;
-
- if( !helpInitted ) {
- HtmlHelp( NULL, NULL, HH_INITIALIZE, (DWORD)&dwCookie) ;
- helpInitted = TRUE;
- }
-
- switch ((int)(long)context) {
- case 1: /* Contents */
- HtmlHelp( mswHWnd, helpFile, HH_DISPLAY_TOC, (DWORD_PTR)NULL );
- break;
- case 2: /* Search */
- ftsQuery.cbStruct = sizeof( ftsQuery );
- ftsQuery.fExecute = FALSE;
- ftsQuery.fStemmedSearch = FALSE;
- ftsQuery.fTitleOnly = FALSE;
- ftsQuery.pszSearchQuery = NULL;
- ftsQuery.pszWindow = NULL;
-
- HtmlHelp( mswHWnd, helpFile, HH_DISPLAY_SEARCH,(DWORD)&ftsQuery );
- break;
- default:
- return;
- }
- helpInitted = TRUE;
+ HH_FTS_QUERY ftsQuery;
+
+ if (!helpInitted) {
+ HtmlHelp(NULL, NULL, HH_INITIALIZE, (DWORD)&dwCookie) ;
+ helpInitted = TRUE;
+ }
+
+ switch ((int)(long)context) {
+ case 1: /* Contents */
+ HtmlHelp(mswHWnd, helpFile, HH_DISPLAY_TOC, (DWORD_PTR)NULL);
+ break;
+
+ case 2: /* Search */
+ ftsQuery.cbStruct = sizeof(ftsQuery);
+ ftsQuery.fExecute = FALSE;
+ ftsQuery.fStemmedSearch = FALSE;
+ ftsQuery.fTitleOnly = FALSE;
+ ftsQuery.pszSearchQuery = NULL;
+ ftsQuery.pszWindow = NULL;
+ HtmlHelp(mswHWnd, helpFile, HH_DISPLAY_SEARCH,(DWORD)&ftsQuery);
+ break;
+
+ default:
+ return;
+ }
+
+ helpInitted = TRUE;
}
void wMenuAddHelp(
- wMenu_p m )
+ wMenu_p m)
{
- wMenuPushCreate( m, NULL, "&Contents", 0, doHelpMenu, (void*)1 );
- wMenuPushCreate( m, NULL, "&Search for Help on...", 0, doHelpMenu, (void*)2 );
+ wMenuPushCreate(m, NULL, "&Contents", 0, doHelpMenu, (void*)1);
+ wMenuPushCreate(m, NULL, "&Search for Help on...", 0, doHelpMenu, (void*)2);
}
-void wSetBalloonHelp( wBalloonHelp_t * bh )
+void wSetBalloonHelp(wBalloonHelp_t * bh)
{
- balloonHelpStrings = bh;
+ balloonHelpStrings = bh;
}
-void wEnableBalloonHelp( int enable )
+void wEnableBalloonHelp(int enable)
{
- balloonHelpEnable = enable;
+ balloonHelpEnable = enable;
}
-void wBalloonHelpUpdate ( void )
+void wBalloonHelpUpdate(void)
{
}
-void wControlSetBalloonText( wControl_p b, const char * text )
+void wControlSetBalloonText(wControl_p b, const char * text)
{
- b->tipStr = mswStrdup( text );
+ b->tipStr = mswStrdup(text);
}
-void startBalloonHelp( void )
+void startBalloonHelp(void)
{
- HDC hDc;
- DWORD extent;
- int w, h;
- RECT rect;
- POINT pt;
- wBalloonHelp_t * bh;
- const char * hs;
- HFONT hFont;
+ HDC hDc;
+ DWORD extent;
+ RECT rect;
+ POINT pt;
+ wBalloonHelp_t * bh;
+ const char * hs;
+ HFONT hFont;
- if (!balloonHelpStrings)
- return;
- if (!balloonHelpEnable)
- return;
- if (balloonHelpHWnd) {
- if ( balloonHelpButton->tipStr ) {
- hs = balloonHelpButton->tipStr;
- } else {
- hs = balloonHelpButton->helpStr;
- if (!hs)
- return;
- for ( bh = balloonHelpStrings; bh->name && strcmp(bh->name,hs) != 0; bh++ );
- if (!bh->name || !bh->value)
- return;
- balloonHelpButton->tipStr = hs = bh->value;
- }
-if (newHelp) {
- wControlSetBalloon( balloonHelpButton, 0, 0, hs );
-} else {
- hDc = GetDC( balloonHelpHWnd );
- hFont = SelectObject( hDc, mswLabelFont );
- extent = GetTextExtent( hDc, CAST_AWAY_CONST hs, strlen(hs) );
- w = LOWORD( extent );
- h = HIWORD( extent );
- pt.x = 0;
- if ( balloonHelpButton->type == B_RADIO ||
- balloonHelpButton->type == B_TOGGLE ) {
- pt.y = balloonHelpButton->h;
- } else {
- GetClientRect( balloonHelpButton->hWnd, &rect );
- pt.y = rect.bottom;
- }
- ClientToScreen( balloonHelpButton->hWnd, &pt );
- if (pt.x + w+2 > screenWidth)
- pt.x = screenWidth-(w+2);
- if (pt.x < 0)
- pt.x = 0;
- SetWindowPos( balloonHelpHWnd, HWND_TOPMOST, pt.x, pt.y, w+6, h+4,
- SWP_SHOWWINDOW|SWP_NOACTIVATE );
- SetBkColor( hDc, GetSysColor( COLOR_INFOBK ));
- TextOut( hDc, 2, 1, hs, strlen(hs) );
- SelectObject( hDc, hFont );
- ReleaseDC( balloonHelpHWnd, hDc );
+ if (!balloonHelpStrings) {
+ return;
+ }
+
+ if (!balloonHelpEnable) {
+ return;
+ }
+
+ if (balloonHelpHWnd) {
+ if (balloonHelpButton->tipStr) {
+ hs = balloonHelpButton->tipStr;
+ } else {
+ hs = balloonHelpButton->helpStr;
+
+ if (!hs) {
+ return;
+ }
+
+ for (bh = balloonHelpStrings; bh->name && strcmp(bh->name,hs) != 0; bh++);
+
+ if (!bh->name || !bh->value) {
+ return;
+ }
+
+ balloonHelpButton->tipStr = hs = bh->value;
+ }
+
+ if (newHelp) {
+ wControlSetBalloon(balloonHelpButton, 0, 0, hs);
+ } else {
+ int w, h;
+ hDc = GetDC(balloonHelpHWnd);
+ hFont = SelectObject(hDc, mswLabelFont);
+ extent = GetTextExtent(hDc, CAST_AWAY_CONST hs, strlen(hs));
+ w = LOWORD(extent);
+ h = HIWORD(extent);
+ pt.x = 0;
+
+ if (balloonHelpButton->type == B_RADIO ||
+ balloonHelpButton->type == B_TOGGLE) {
+ pt.y = balloonHelpButton->h;
+ } else {
+ GetClientRect(balloonHelpButton->hWnd, &rect);
+ pt.y = rect.bottom;
+ }
+
+ ClientToScreen(balloonHelpButton->hWnd, &pt);
+
+ if (pt.x + w+2 > screenWidth) {
+ pt.x = screenWidth-(w+2);
+ }
+
+ if (pt.x < 0) {
+ pt.x = 0;
+ }
+
+ SetWindowPos(balloonHelpHWnd, HWND_TOPMOST, pt.x, pt.y, w+6, h+4,
+ SWP_SHOWWINDOW|SWP_NOACTIVATE);
+ SetBkColor(hDc, GetSysColor(COLOR_INFOBK));
+ TextOut(hDc, 2, 1, hs, strlen(hs));
+ SelectObject(hDc, hFont);
+ ReleaseDC(balloonHelpHWnd, hDc);
+ }
+ }
}
- }
+
+void closeBalloonHelp(void)
+{
+ if (balloonHelpTimer) {
+ KillTimer(mswHWnd, balloonHelpTimer);
+ balloonHelpTimer = 0;
+ }
+
+ if (balloonHelpState == balloonHelpShow)
+ if (balloonHelpHWnd) {
+ ShowWindow(balloonHelpHWnd, SW_HIDE);
+ }
+
+ balloonHelpState = balloonHelpIdle;
}
-void closeBalloonHelp( void )
+
+void wControlSetBalloon(wControl_p b, wPos_t dx, wPos_t dy, const char * msg)
{
- if (balloonHelpTimer) {
- KillTimer( mswHWnd, balloonHelpTimer );
- balloonHelpTimer = 0;
- }
- if (balloonHelpState == balloonHelpShow)
- if (balloonHelpHWnd)
- ShowWindow( balloonHelpHWnd, SW_HIDE );
- balloonHelpState = balloonHelpIdle;
-}
-
-
-void wControlSetBalloon( wControl_p b, wPos_t dx, wPos_t dy, const char * msg )
-{
- HDC hDc;
- DWORD extent;
- int w, h;
- RECT rect;
- POINT pt;
- HFONT hFont;
-
- if ( msg ) {
- hDc = GetDC( balloonHelpHWnd );
- hFont = SelectObject( hDc, mswLabelFont );
- extent = GetTextExtent( hDc, CAST_AWAY_CONST msg, strlen(msg) );
- w = LOWORD( extent );
- h = HIWORD( extent );
- if ( b->type == B_RADIO ||
- b->type == B_TOGGLE ) {
- pt.y = b->h;
- } else {
- GetClientRect( b->hWnd, &rect );
- pt.y = rect.bottom;
- }
- pt.x = dx;
- pt.y -= dy;
- ClientToScreen( b->hWnd, &pt );
- if (pt.x + w+2 > screenWidth)
- pt.x = screenWidth-(w+2);
- if (pt.x < 0)
- pt.x = 0;
- SetWindowPos( balloonHelpHWnd, HWND_TOPMOST, pt.x, pt.y, w+6, h+4,
- SWP_SHOWWINDOW|SWP_NOACTIVATE );
- SetBkColor( hDc, GetSysColor( COLOR_INFOBK ) );
- TextOut( hDc, 2, 1, msg, strlen(msg) );
- SelectObject( hDc, hFont );
- ReleaseDC( balloonHelpHWnd, hDc );
-
- balloonHelpState = balloonHelpShow;
- balloonControlButton = b;
- } else {
- closeBalloonHelp();
- }
+ HDC hDc;
+ DWORD extent;
+ RECT rect;
+ POINT pt;
+ HFONT hFont;
+
+ if (msg) {
+ int w, h;
+ hDc = GetDC(balloonHelpHWnd);
+ hFont = SelectObject(hDc, mswLabelFont);
+ extent = GetTextExtent(hDc, CAST_AWAY_CONST msg, strlen(msg));
+ w = LOWORD(extent);
+ h = HIWORD(extent);
+
+ if (b->type == B_RADIO ||
+ b->type == B_TOGGLE) {
+ pt.y = b->h;
+ } else {
+ GetClientRect(b->hWnd, &rect);
+ pt.y = rect.bottom;
+ }
+
+ pt.x = dx;
+ pt.y -= dy;
+ ClientToScreen(b->hWnd, &pt);
+
+ if (pt.x + w+2 > screenWidth) {
+ pt.x = screenWidth-(w+2);
+ }
+
+ if (pt.x < 0) {
+ pt.x = 0;
+ }
+
+ SetWindowPos(balloonHelpHWnd, HWND_TOPMOST, pt.x, pt.y, w+6, h+4,
+ SWP_SHOWWINDOW|SWP_NOACTIVATE);
+ SetBkColor(hDc, GetSysColor(COLOR_INFOBK));
+ TextOut(hDc, 2, 1, msg, strlen(msg));
+ SelectObject(hDc, hFont);
+ ReleaseDC(balloonHelpHWnd, hDc);
+ balloonHelpState = balloonHelpShow;
+ balloonControlButton = b;
+ } else {
+ closeBalloonHelp();
+ }
}
-int wGetKeyState( void )
+int wGetKeyState(void)
{
- int rc, keyState;
- rc = 0;
- keyState = GetAsyncKeyState( VK_SHIFT );
- if (keyState & 0x8000)
- rc |= WKEY_SHIFT;
- keyState = GetAsyncKeyState( VK_CONTROL );
- if (keyState & 0x8000)
- rc |= WKEY_CTRL;
- keyState = GetAsyncKeyState( VK_MENU );
- if (keyState & 0x8000)
- rc |= WKEY_ALT;
- return rc;
+ int rc, keyState;
+ rc = 0;
+ keyState = GetAsyncKeyState(VK_SHIFT);
+
+ if (keyState & 0x8000) {
+ rc |= WKEY_SHIFT;
+ }
+
+ keyState = GetAsyncKeyState(VK_CONTROL);
+
+ if (keyState & 0x8000) {
+ rc |= WKEY_CTRL;
+ }
+
+ keyState = GetAsyncKeyState(VK_MENU);
+
+ if (keyState & 0x8000) {
+ rc |= WKEY_ALT;
+ }
+
+ return rc;
}
@@ -1980,30 +2307,28 @@ int wGetKeyState( void )
*/
FILE * wFileOpen(
- const char * fileName,
- const char * mode )
+ const char * fileName,
+ const char * mode)
{
- return fopen( fileName, mode );
+ return fopen(fileName, mode);
}
struct wFilSel_t {
- wWin_p parent;
- wFilSelMode_e mode;
- int option;
- const char * title;
- char * extList;
- wFilSelCallBack_p action;
- void * data;
- };
-
-static char selFileName[1024];
-static char selFileTitle[1024];
-static char sysDirName[1024];
+ wWin_p parent;
+ wFilSelMode_e mode;
+ int option;
+ const char * title;
+ char * extList;
+ wFilSelCallBack_p action;
+ void * data;
+};
+
+#define SELECTEDFILENAME_BUFFERSIZE (8*1024) /**<estimated size in case all param files are selected */
/**
* Run the file selector. After the selector is finished an array of filenames is
- * created. Each filename will be fully qualified. The array and the number of
+ * created. Each filename will be fully qualified. The array and the number of
* filenames are passed to a callback function. This is similar to the argc argv c
* convention in C. Once the callback returns, the allocated strings are free'd.
*
@@ -2013,163 +2338,177 @@ static char sysDirName[1024];
*/
int wFilSelect(
- struct wFilSel_t * fs,
- const char * dirName )
-{
- int rc;
- OPENFILENAME ofn;
- char **fileName;
- char *nextFileName;
- int cntFiles;
- const char * ext;
- char defExt[4];
- int i;
-
- if (dirName == NULL ||
- dirName[0] == '\0' ||
- strcmp(dirName, ".") == 0 ) {
- GetSystemDirectory( CAST_AWAY_CONST (dirName = sysDirName), sizeof sysDirName );
- }
- memset( &ofn, 0, sizeof ofn );
- ofn.lStructSize = sizeof ofn;
- ofn.hwndOwner = mswHWnd;
- ofn.lpstrFilter = fs->extList;
- ofn.nFilterIndex = 0;
- memset( selFileName, '\0', sizeof(selFileName));
- ofn.lpstrFile = selFileName;
- ofn.nMaxFile = sizeof selFileName;
- selFileTitle[0] = '\0';
- ofn.lpstrFileTitle = selFileTitle;
- ofn.nMaxFileTitle = sizeof selFileTitle;
- ofn.lpstrInitialDir = dirName;
- ofn.lpstrTitle = fs->title;
- ext = fs->extList + strlen(fs->extList)+1;
- if (*ext++ == '*' && *ext++ == '.') {
- for ( i=0; i<3 && ext[i] && ext[i]!=';'; i++ )
- defExt[i] = ext[i];
- defExt[i] = '\0';
- } else {
- defExt[0] = '\0';
- }
- ofn.lpstrDefExt = defExt;
-
- if ( fs->option & FS_MULTIPLEFILES ) {
- ofn.Flags = OFN_ALLOWMULTISELECT | OFN_LONGFILENAMES | OFN_EXPLORER;
- } else {
- ofn.Flags = OFN_LONGFILENAMES;
- }
-
- if (fs->mode == FS_LOAD) {
- ofn.Flags |= OFN_FILEMUSTEXIST;
- rc = GetOpenFileName( &ofn );
- } else if (fs->mode == FS_SAVE) {
- ofn.Flags |= OFN_OVERWRITEPROMPT;
- rc = GetSaveFileName( &ofn );
- } else if (fs->mode == FS_UPDATE) {
- rc = GetSaveFileName( &ofn );
- } else
- return FALSE;
- if (!rc)
- return FALSE;
-
- nextFileName = selFileName;
- selFileName[ofn.nFileOffset - 1] = '\0';
- cntFiles = 0;
-
- while (*nextFileName) {
- cntFiles++;
- nextFileName = nextFileName + strlen( nextFileName ) + 1;
- }
-
- // strings were counted including the path on its own so reduce the count
- cntFiles--;
-
- // build up the array of filenames
- fileName = malloc(sizeof(nextFileName) * cntFiles);
- nextFileName = selFileName + ofn.nFileOffset;
- for ( i=0; i < cntFiles; i++) {
- fileName[ i ] = malloc(strlen(selFileName) + strlen(nextFileName) + 2 );
- strcpy(fileName[ i ], selFileName);
- strcat(fileName[ i ], FILE_SEP_CHAR);
- strcat(fileName[ i ], nextFileName);
- nextFileName = nextFileName + strlen( nextFileName ) + 1;
- }
-
- fs->action( cntFiles, fileName, fs->data );
-
- for (i=0; i < cntFiles; i++) {
- free( fileName[ i ] );
- }
- free( fileName );
-
- return TRUE;
+ struct wFilSel_t * fs,
+ const char * dirName)
+{
+ int rc;
+ OPENFILENAME ofn;
+ char **fileName;
+ char *nextFileName;
+ char *selFileName;
+ int cntFiles;
+ const char * ext;
+ char defExt[4];
+ int i;
+
+ if (dirName == NULL ||
+ dirName[0] == '\0' ||
+ strcmp(dirName, ".") == 0) {
+ dirName = wGetUserHomeDir();
+ }
+
+ memset(&ofn, 0, sizeof ofn);
+ ofn.lStructSize = sizeof ofn;
+ ofn.hwndOwner = mswHWnd;
+ ofn.lpstrFilter = fs->extList;
+ ofn.nFilterIndex = 0;
+ selFileName = malloc(SELECTEDFILENAME_BUFFERSIZE);
+ memset(selFileName, '\0', SELECTEDFILENAME_BUFFERSIZE);
+ ofn.lpstrFile = selFileName;
+ ofn.nMaxFile = SELECTEDFILENAME_BUFFERSIZE;
+ ofn.lpstrFileTitle = NULL;
+ ofn.nMaxFileTitle = 0;
+ ofn.lpstrInitialDir = dirName;
+ ofn.lpstrTitle = fs->title;
+ ext = fs->extList + strlen(fs->extList)+1;
+
+ if (*ext++ == '*' && *ext++ == '.') {
+ for (i=0; i<3 && ext[i] && ext[i]!=';'; i++) {
+ defExt[i] = ext[i];
+ }
+
+ defExt[i] = '\0';
+ } else {
+ defExt[0] = '\0';
+ }
+
+ ofn.lpstrDefExt = defExt;
+
+ if (fs->option & FS_MULTIPLEFILES) {
+ ofn.Flags = OFN_ALLOWMULTISELECT | OFN_LONGFILENAMES | OFN_EXPLORER;
+ } else {
+ ofn.Flags = OFN_LONGFILENAMES;
+ }
+
+ if (fs->mode == FS_LOAD) {
+ ofn.Flags |= OFN_FILEMUSTEXIST;
+ rc = GetOpenFileName(&ofn);
+ } else if (fs->mode == FS_SAVE) {
+ ofn.Flags |= OFN_OVERWRITEPROMPT;
+ rc = GetSaveFileName(&ofn);
+ } else if (fs->mode == FS_UPDATE) {
+ rc = GetSaveFileName(&ofn);
+ } else {
+ return FALSE;
+ }
+
+ if (!rc) {
+ return FALSE;
+ }
+
+ nextFileName = selFileName;
+ selFileName[ofn.nFileOffset - 1] = '\0';
+ cntFiles = 0;
+
+ while (*nextFileName) {
+ cntFiles++;
+ nextFileName = nextFileName + strlen(nextFileName) + 1;
+ }
+
+ // strings were counted including the path on its own so reduce the count
+ cntFiles--;
+ // build up the array of filenames
+ fileName = malloc(sizeof(nextFileName) * cntFiles);
+ nextFileName = selFileName + ofn.nFileOffset;
+
+ for (i=0; i < cntFiles; i++) {
+ fileName[ i ] = malloc(strlen(selFileName) + strlen(nextFileName) + 2);
+ strcpy(fileName[ i ], selFileName);
+ strcat(fileName[ i ], FILE_SEP_CHAR);
+ strcat(fileName[ i ], nextFileName);
+ nextFileName = nextFileName + strlen(nextFileName) + 1;
+ }
+
+ fs->action(cntFiles, fileName, fs->data);
+
+ for (i=0; i < cntFiles; i++) {
+ free(fileName[ i ]);
+ }
+
+ free(fileName);
+ free(selFileName);
+ return TRUE;
}
struct wFilSel_t * wFilSelCreate(
- wWin_p parent,
- wFilSelMode_e mode,
- int option,
- const char * title,
- const char * extList,
- wFilSelCallBack_p action,
- void * data )
-{
- char * cp;
- struct wFilSel_t * ret;
- int len;
- ret = (struct wFilSel_t*)malloc(sizeof *ret);
- ret->parent = parent;
- ret->mode = mode;
- ret->option = option;
- ret->title = mswStrdup(title);
- len = strlen(extList);
- ret->extList = (char*)malloc(len+2);
- strcpy(ret->extList,extList);
- for ( cp=ret->extList; *cp; cp++ ) {
- if (*cp == '|')
- *cp = '\0';
- }
- *++cp = '\0';
- ret->action = action;
- ret->data = data;
- return ret;
-}
-
-
-const char * wMemStats( void )
-{
- int rc;
- static char msg[80];
- long usedSize = 0;
- long usedCnt = 0;
- long freeSize = 0;
- long freeCnt = 0;
- _HEAPINFO heapinfo;
- heapinfo._pentry = NULL;
-
- while ( (rc=_heapwalk( &heapinfo )) == _HEAPOK ) {
- switch (heapinfo._useflag) {
- case _FREEENTRY:
- freeSize += (long)heapinfo._size;
- freeCnt++;
- break;
- case _USEDENTRY:
- usedSize += (long)heapinfo._size;
- usedCnt++;
- break;
- }
- }
-
- sprintf( msg, "Used: %ld(%ld), Free %ld(%ld)%s",
- usedSize, usedCnt, freeSize, freeCnt,
- (rc==_HEAPOK)?"":
- (rc==_HEAPEMPTY)?"":
- (rc==_HEAPBADBEGIN)?", BADBEGIN":
- (rc==_HEAPEND)?"":
- (rc==_HEAPBADPTR)?", BADPTR":
- ", Unknown Heap Status" );
- return msg;
+ wWin_p parent,
+ wFilSelMode_e mode,
+ int option,
+ const char * title,
+ const char * extList,
+ wFilSelCallBack_p action,
+ void * data)
+{
+ char * cp;
+ struct wFilSel_t * ret;
+ int len;
+ ret = (struct wFilSel_t*)malloc(sizeof *ret);
+ ret->parent = parent;
+ ret->mode = mode;
+ ret->option = option;
+ ret->title = mswStrdup(title);
+ len = strlen(extList);
+ ret->extList = (char*)malloc(len+2);
+ strcpy(ret->extList,extList);
+
+ for (cp=ret->extList; *cp; cp++) {
+ if (*cp == '|') {
+ *cp = '\0';
+ }
+ }
+
+ *++cp = '\0';
+ ret->action = action;
+ ret->data = data;
+ return ret;
+}
+
+
+const char * wMemStats(void)
+{
+ int rc;
+ static char msg[80];
+ long usedSize = 0;
+ long usedCnt = 0;
+ long freeSize = 0;
+ long freeCnt = 0;
+ _HEAPINFO heapinfo;
+ heapinfo._pentry = NULL;
+
+ while ((rc=_heapwalk(&heapinfo)) == _HEAPOK) {
+ switch (heapinfo._useflag) {
+ case _FREEENTRY:
+ freeSize += (long)heapinfo._size;
+ freeCnt++;
+ break;
+
+ case _USEDENTRY:
+ usedSize += (long)heapinfo._size;
+ usedCnt++;
+ break;
+ }
+ }
+
+ sprintf(msg, "Used: %ld(%ld), Free %ld(%ld)%s",
+ usedSize, usedCnt, freeSize, freeCnt,
+ (rc==_HEAPOK)?"":
+ (rc==_HEAPEMPTY)?"":
+ (rc==_HEAPBADBEGIN)?", BADBEGIN":
+ (rc==_HEAPEND)?"":
+ (rc==_HEAPBADPTR)?", BADPTR":
+ ", Unknown Heap Status");
+ return msg;
}
/*
@@ -2180,480 +2519,629 @@ const char * wMemStats( void )
*****************************************************************************
*/
-static wControl_p getControlFromCursor( HWND hWnd, wWin_p * winR )
-{
- POINT pt;
- wWin_p w;
- wControl_p b;
- wIndex_t inx;
- HWND hTopWnd;
-
- if (winR)
- *winR = NULL;
- GetCursorPos( &pt );
- hTopWnd = GetActiveWindow();
- inx = GetWindowWord( hWnd, 0 );
- if ( inx < CONTROL_BASE || inx > controlMap_da.cnt ) {
- /* Unknown control */
- /*MessageBeep( MB_ICONEXCLAMATION );*/
- return NULL;
- }
- w=(wWin_p)controlMap(inx-CONTROL_BASE).b;
- if (!w)
- return NULL;
- if (w->type != W_MAIN && w->type != W_POPUP)
- return NULL;
- if ( winR )
- *winR = w;
- ScreenToClient( hWnd, &pt );
- for (b = w->first; b; b=b->next) {
- if (b->type == B_BOX || b->type == B_LINES)
- continue;
- if (b->hWnd == NULL)
- continue;
- if (IsWindowVisible( b->hWnd ) == FALSE)
- continue;
- if (pt.x > b->x && pt.x < b->x+b->w &&
- pt.y > b->y && pt.y < b->y+b->h )
- return b;
- }
- return b;
+static wControl_p getControlFromCursor(HWND hWnd, wWin_p * winR)
+{
+ POINT pt;
+ wWin_p w;
+ wControl_p b;
+ wIndex_t inx;
+
+ if (winR) {
+ *winR = NULL;
+ }
+
+ GetCursorPos(&pt);
+ inx = GetWindowWord(hWnd, 0);
+
+ if (inx < CONTROL_BASE || inx > controlMap_da.cnt) {
+ /* Unknown control */
+ return NULL;
+ }
+
+ w=(wWin_p)controlMap(inx-CONTROL_BASE).b;
+
+ if (!w) {
+ return NULL;
+ }
+
+ if (w->type != W_MAIN && w->type != W_POPUP) {
+ return NULL;
+ }
+
+ if (winR) {
+ *winR = w;
+ }
+
+ ScreenToClient(hWnd, &pt);
+
+ for (b = w->first; b; b=b->next) {
+ if (b->type == B_BOX || b->type == B_LINES) {
+ continue;
+ }
+
+ if (b->hWnd == NULL) {
+ continue;
+ }
+
+ if (IsWindowVisible(b->hWnd) == FALSE) {
+ continue;
+ }
+
+ if (pt.x > b->x && pt.x < b->x+b->w &&
+ pt.y > b->y && pt.y < b->y+b->h) {
+ return b;
+ }
+ }
+
+ return b;
}
/**
- * Window function for the main window and all popup windows.
+ * Window function for the main window and all popup windows.
*
*/
-LRESULT
-FAR
-PASCAL
-MainWndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
-{
- int inx;
- wWin_p w;
- wControl_p b, oldW;
- int child = ((GetWindowLong( hWnd, GWL_STYLE) & WS_CHILD) != 0);
- POS_T newW, newH;
- RECT rect;
- PAINTSTRUCT ps;
- HWND hWnd2;
- LRESULT ret;
- HDC hDc;
- wAccelKey_e extChar;
-
- switch (message) {
-
- case WM_MOUSEWHEEL:
- inx = GetWindowWord( hWnd, 0 );
- b = getControlFromCursor( hWnd, NULL );
- if( b && b->type == B_DRAW )
- if (mswCallBacks[b->type] != NULL &&
- mswCallBacks[b->type]->messageProc)
- return mswCallBacks[b->type]->messageProc( (wControl_p)b, hWnd,
- message, wParam, lParam );
- return( 0 );
- case WM_DRAWITEM:
- case WM_COMMAND:
- case WM_MEASUREITEM:
- case WM_NOTVALID:
- if (WCMD_PARAM_ID == IDM_DOHELP) {
- b = getControlFromCursor( hWnd, NULL );
- closeBalloonHelp();
- if (!b)
- return 0L;
- if (b->helpStr)
- wHelp( b->helpStr );
- return 0L;
- }
- closeBalloonHelp();
- if (WCMD_PARAM_ID < CONTROL_BASE || WCMD_PARAM_ID > (WPARAM)controlMap_da.cnt)
- break;
- b = controlMap(WCMD_PARAM_ID-CONTROL_BASE).b;
- if (!b)
- break;
- if( b->type == B_BITMAP ) {
- // draw the bitmap
- mswDrawIcon(((LPDRAWITEMSTRUCT)lParam)->hDC, 0, 0, (wIcon_p)(b->data), FALSE, (COLORREF)0, (COLORREF)0 );
- return( TRUE );
- } else {
- mswSetFocus( b );
- ret = 0L;
- if (!inMainWndProc) {
- inMainWndProc = TRUE;
- if (mswCallBacks[b->type] != NULL &&
- mswCallBacks[b->type]->messageProc) {
- ret = mswCallBacks[b->type]->messageProc( b, hWnd, message, wParam, lParam );
- }
- inMainWndProc = FALSE;
- }
- return ret;
- }
- case WM_PAINT:
- inx = GetWindowWord( hWnd, 0 );
- if (inx >= CONTROL_BASE && inx <= controlMap_da.cnt &&
- (w = (wWin_p)controlMap(inx-CONTROL_BASE).b) &&
- (w->type == W_MAIN || w->type == W_POPUP) &&
- (!IsIconic(mswHWnd)) &&
- (GetUpdateRect( hWnd, &rect, FALSE ) ) ) {
- BeginPaint( hWnd, &ps );
- for (b=w->first; b; b=b->next ) {
- if (b->shown &&
- mswCallBacks[b->type] != NULL &&
- mswCallBacks[b->type]->repaintProc)
- mswCallBacks[b->type]->repaintProc( hWnd, b );
- }
- EndPaint( hWnd, &ps );
- return 1L;
- }
- break;
-
- case WM_SIZE:
- inx = GetWindowWord( hWnd, 0 );
- if (inx < CONTROL_BASE || inx > controlMap_da.cnt)
- break;
- w = (wWin_p)controlMap(inx-CONTROL_BASE).b;
- if (!w)
- break;
- if (w->type != W_MAIN && w->type != W_POPUP)
- break;
- if (w->busy)
- break;
- switch( wParam ) {
- case SIZE_MAXIMIZED:
- case SIZE_MINIMIZED:
- case SIZE_RESTORED:
- newW = LOWORD( lParam ); /* WIN32?? */
- newH = HIWORD( lParam ); /* WIN32?? */
- if (newW <= 0 || newH <= 0)
- break;
- if (newW == w->w && newH == w->h)
- break;
- GetWindowRect( w->hWnd, &rect );
- GetClientRect( w->hWnd, &rect );
- InvalidateRect( w->hWnd, NULL, TRUE );
- w->w = newW;
- w->h = newH;
- if (w->winProc)
- w->winProc( w, wResize_e, w->data );
- break;
- default:
- break;
- }
- break;
-
- case WM_CHAR:
- case WM_KEYUP:
- inx = GetWindowWord( hWnd, 0 );
- if ( inx < CONTROL_BASE || inx > controlMap_da.cnt )
- break;
- w = (wWin_p)controlMap(inx-CONTROL_BASE).b;
- if (!w)
- break;
- if (w->type != W_MAIN && w->type != W_POPUP) {
- if (mswCallBacks[w->type] != NULL &&
- mswCallBacks[w->type]->messageProc)
- return mswCallBacks[w->type]->messageProc( (wControl_p)w, hWnd,
- message, wParam, lParam );
- break;
- }
- extChar = translateExtKey( WCMD_PARAM_ID );
- if (message == WM_KEYUP ) {
- if (extChar == wAccelKey_None)
- break;
- if (extChar == wAccelKey_Back)
- break;
- }
- b = getControlFromCursor( hWnd, NULL );
- closeBalloonHelp();
- if (b && b->type == B_DRAW) {
- return SendMessage( b->hWnd, WM_CHAR, wParam, lParam );
- }
- switch (WCMD_PARAM_ID) {
- case 0x0D:
- /* CR - push default button */
- for (b=w->first; b; b=b->next) {
- if (b->type == B_BUTTON && (b->option & BB_DEFAULT) != 0) {
- inMainWndProc = TRUE;
- if (mswCallBacks[B_BUTTON] != NULL &&
- mswCallBacks[B_BUTTON]->messageProc) {
- ret = mswCallBacks[B_BUTTON]->messageProc( b, b->hWnd,
- WM_COMMAND, wParam, lParam );
- }
- inMainWndProc = FALSE;
- break;
- }
- }
- return 0L;
- case 0x1B:
- /* ESC - push cancel button */
- for (b=w->first; b; b=b->next) {
- if (b->type == B_BUTTON && (b->option & BB_CANCEL) != 0) {
- inMainWndProc = TRUE;
- if (mswCallBacks[B_BUTTON] != NULL &&
- mswCallBacks[B_BUTTON]->messageProc) {
- ret = mswCallBacks[B_BUTTON]->messageProc( b, b->hWnd,
- WM_COMMAND, wParam, lParam );
- }
- inMainWndProc = FALSE;
- break;
- }
- }
- mswSetTrigger( (wControl_p)TRIGGER_TIMER, NULL );
- return 0L;
- case 0x20:
- /* SPC - push current button with focus */
- if ( (b=w->focusChainNext) != NULL ) {
- switch (b->type) {
- case B_BUTTON:
- case B_CHOICEITEM:
- inMainWndProc = TRUE;
- if (mswCallBacks[b->type] != NULL &&
- mswCallBacks[b->type]->messageProc) {
- ret = mswCallBacks[b->type]->messageProc( b, b->hWnd,
- WM_COMMAND, MAKELPARAM( LOWORD(wParam), BN_CLICKED), (LPARAM)(b->hWnd) );
- }
- inMainWndProc = FALSE;
- break;
- }
+LRESULT
+FAR
+PASCAL
+MainWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ int inx;
+ wWin_p w;
+ wControl_p b, oldW;
+ int child = ((GetWindowLong(hWnd, GWL_STYLE) & WS_CHILD) != 0);
+ POS_T newW, newH;
+ RECT rect;
+ PAINTSTRUCT ps;
+ HWND hWnd2;
+ LRESULT ret;
+ HDC hDc;
+ wAccelKey_e extChar;
+
+ switch (message) {
+ case WM_MOUSEWHEEL:
+ inx = GetWindowWord(hWnd, 0);
+ b = getControlFromCursor(hWnd, NULL);
+
+ if (b && b->type == B_DRAW)
+ if (mswCallBacks[b->type] != NULL &&
+ mswCallBacks[b->type]->messageProc)
+ return mswCallBacks[b->type]->messageProc((wControl_p)b, hWnd,
+ message, wParam, lParam);
+
+ return (0);
+
+ case WM_DRAWITEM:
+ case WM_COMMAND:
+ case WM_MEASUREITEM:
+ case WM_NOTVALID:
+ if (WCMD_PARAM_ID == IDM_DOHELP) {
+ b = getControlFromCursor(hWnd, NULL);
+ closeBalloonHelp();
+
+ if (!b) {
+ return 0L;
+ }
+
+ if (b->helpStr) {
+ wHelp(b->helpStr);
+ }
+
+ return 0L;
+ }
+
+ closeBalloonHelp();
+
+ if (WCMD_PARAM_ID < CONTROL_BASE || WCMD_PARAM_ID > (WPARAM)controlMap_da.cnt) {
+ break;
+ }
+
+ b = controlMap(WCMD_PARAM_ID-CONTROL_BASE).b;
+
+ if (!b) {
+ break;
+ }
+
+ if (b->type == B_BITMAP) {
+ // draw the bitmap
+ mswDrawIcon(((LPDRAWITEMSTRUCT)lParam)->hDC, 0, 0, (wIcon_p)(b->data), FALSE,
+ (COLORREF)0, (COLORREF)0);
+ return (TRUE);
+ } else {
+ mswSetFocus(b);
+ ret = 0L;
+
+ if (!inMainWndProc) {
+ inMainWndProc = TRUE;
+
+ if (mswCallBacks[b->type] != NULL &&
+ mswCallBacks[b->type]->messageProc) {
+ ret = mswCallBacks[b->type]->messageProc(b, hWnd, message, wParam, lParam);
+ }
+
+ inMainWndProc = FALSE;
+ }
+
+ return ret;
+ }
+
+ case WM_PAINT:
+ inx = GetWindowWord(hWnd, 0);
+
+ if (inx >= CONTROL_BASE && inx <= controlMap_da.cnt &&
+ (w = (wWin_p)controlMap(inx-CONTROL_BASE).b) &&
+ (w->type == W_MAIN || w->type == W_POPUP) &&
+ (!IsIconic(mswHWnd)) &&
+ (GetUpdateRect(hWnd, &rect, FALSE))) {
+ BeginPaint(hWnd, &ps);
+
+ for (b=w->first; b; b=b->next) {
+ if (b->shown &&
+ mswCallBacks[b->type] != NULL &&
+ mswCallBacks[b->type]->repaintProc) {
+ mswCallBacks[b->type]->repaintProc(hWnd, b);
+ }
+ }
+
+ EndPaint(hWnd, &ps);
+ return 1L;
+ }
+
+ break;
+
+ case WM_SIZE:
+ inx = GetWindowWord(hWnd, 0);
+
+ if (inx < CONTROL_BASE || inx > controlMap_da.cnt) {
+ break;
+ }
+
+ w = (wWin_p)controlMap(inx-CONTROL_BASE).b;
+
+ if (!w) {
+ break;
+ }
+
+ if (w->type != W_MAIN && w->type != W_POPUP) {
+ break;
+ }
+
+ if (w->busy) {
+ break;
+ }
+
+ switch (wParam) {
+ case SIZE_MAXIMIZED:
+ case SIZE_MINIMIZED:
+ case SIZE_RESTORED:
+ newW = LOWORD(lParam);
+ newH = HIWORD(lParam);
+
+ if (newW <= 0 || newH <= 0) {
+ break;
+ }
+
+ if (newW == w->w && newH == w->h) {
+ break;
+ }
+
+ GetWindowRect(w->hWnd, &rect);
+ GetClientRect(w->hWnd, &rect);
+ InvalidateRect(w->hWnd, NULL, TRUE);
+ w->w = newW;
+ w->h = newH;
+
+ if (w->winProc) {
+ w->winProc(w, wResize_e, w->data);
+ w->winProc(w, wState_e, w->data);
}
- return 0L;
- case 0x09:
- /* TAB - jump to next control */
- if ( w->focusChainNext ) {
- for ( b = w->focusChainNext->focusChainNext;
- b!=w->focusChainNext;
- b=b->focusChainNext ) {
- if( IsWindowVisible(b->hWnd) && IsWindowEnabled(b->hWnd))
- break;
- }
- oldW = w->focusChainNext;
- w->focusChainNext = b;
- if (!inMainWndProc) {
- inMainWndProc = TRUE;
- SetFocus( b->hWnd );
-/* if( b->type == B_BUTTON)
- InvalidateRect( b->hWnd, NULL, TRUE ); */
- if( oldW->type == B_BUTTON)
- InvalidateRect( oldW->hWnd, NULL, TRUE );
-
- inMainWndProc = FALSE;
- }
- }
- return 0L;
- }
- /* Not a Draw control */
- MessageBeep( MB_ICONHAND );
- return 0L;
- break;
-
- case WM_ENABLE:
- if (wParam == 1) { /* WIN32??? */
- hWnd2 = SetFocus( hWnd );
- }
- break;
-
- case WM_F1DOWN:
- if ((hWnd2 = GetActiveWindow()) == hWnd ||
- (inx=GetWindowWord(hWnd2,0)) < CONTROL_BASE || inx > controlMap_da.cnt )
- return DefWindowProc( hWnd, message, wParam, lParam );
- b=controlMap(inx-CONTROL_BASE).b;
- if (!b)
- break;
- closeBalloonHelp();
- wHelp( b->helpStr );
- return 0L;
-
- case WM_SETCURSOR:
- /*if (any buttons down)
- break;*/
- wSetCursor( curCursor );
- if (!mswAllowBalloonHelp)
- break;
- if (IsIconic(mswHWnd))
- break;
- b = getControlFromCursor(hWnd, NULL);
- if ( b == balloonControlButton )
- break;
- if ( /*(!IsWindowEnabled(hWnd))*/ GetActiveWindow() != hWnd ||
- (!b) || b->type == B_DRAW || b->helpStr == NULL ) {
- closeBalloonHelp();
- break;
- }
- if ( b != balloonHelpButton )
- closeBalloonHelp();
- if (balloonHelpState != balloonHelpIdle) {
- break;
- }
- balloonHelpTimer = SetTimer( mswHWnd, BALLOONHELP_TIMER,
- balloonHelpTimeOut, NULL );
- if (balloonHelpTimer == (UINT)0)
- break;
- balloonHelpState = balloonHelpWait;
- balloonHelpButton = b;
- break;
-
- case WM_SYSCOMMAND:
- inx = GetWindowWord( hWnd, 0 );
- if (inx < CONTROL_BASE || inx > controlMap_da.cnt)
- break;
- w = (wWin_p)controlMap(inx-CONTROL_BASE).b;
- if (!w)
- break;
- if (w->type != W_POPUP)
- break;
- if (w->busy)
- break;
- if ( (wParam&0xFFF0) != SC_CLOSE )
- break;
- if (w->winProc)
- w->winProc( w, wClose_e, w->data );
- wWinShow( w, FALSE );
- return 0L;
-
-
-
- case WM_CLOSE:
- inx = GetWindowWord( hWnd, 0 );
- if (inx < CONTROL_BASE || inx > controlMap_da.cnt)
- break;
- w = (wWin_p)controlMap(inx-CONTROL_BASE).b;
- if (!w)
- break;
- if (w->type == W_MAIN) {
- /* It's the big one! */
- /* call main window procedure for processing of shutdown */
- if( w->winProc )
- (w->winProc( w, wClose_e, NULL ));
- return 0L;
- }
- case WM_DESTROY:
- if ( hWnd == mswHWnd ) {
- PostQuitMessage(0L);
- return 0L;
- }
- break;
-
- case WM_TIMER:
- if (wParam == ALARM_TIMER) {
- KillTimer( mswHWnd, alarmTimer );
- alarmFunc();
- } else if (wParam == TRIGGER_TIMER) {
- KillTimer( mswHWnd, triggerTimer );
- triggerTimer = 0;
- if (triggerFunc)
- triggerFunc( triggerControl );
- } else if (wParam == BALLOONHELP_TIMER) {
- KillTimer( hWnd, balloonHelpTimer );
- balloonHelpTimer = (UINT)0;
- startBalloonHelp();
- }
- return 0L;
-
- case WM_MENUSELECT:
- mswAllowBalloonHelp = TRUE;
- closeBalloonHelp();
- break;
-
- case WM_WINDOWPOSCHANGED:
- if (hWnd == mswHWnd && !IsIconic(hWnd) && needToDoPendingShow) {
- for (w=winFirst; w; w=(wWin_p)w->next) {
- if (w->hWnd != mswHWnd &&
- w->pendingShow )
- ShowWindow( w->hWnd, SW_SHOW );
- w->pendingShow = FALSE;
- }
- needToDoPendingShow = FALSE;
- }
- break;
-
- case 51:
- count51++;
- /*return NULL;*/
-
-#ifdef LATER
- case WM_SETFOCUS:
- hDc = GetDC( hWnd );
- rc = RealizePalette( hDc );
- ReleaseDC( hWnd, hDc );
- inx = GetWindowWord( hWnd, 0 );
- if ( inx < CONTROL_BASE || inx > controlMap_da.cnt )
- break;
- w = (wWin_p)controlMap(inx-CONTROL_BASE).b;
- if (!w)
- break;
- if (w->type != W_MAIN && w->type != W_POPUP)
- break;
- for (b=w->first; b; b=b->next) {
- if (b->hWnd && (b->type == B_BUTTON || b->type==B_DRAW)) {
- hDc = GetDC( b->hWnd );
- rc = RealizePalette( hDc );
- ReleaseDC( b->hWnd, hDc );
- }
- }
- break;
-#endif
+ break;
- case WM_PALETTECHANGED:
- if (wParam == (WPARAM)hWnd)
- return 0L;
-
- case WM_QUERYNEWPALETTE:
- if (mswPalette) {
- hDc = GetDC( hWnd );
- SelectPalette( hDc, mswPalette, 0 );
- inx = RealizePalette( hDc );
- ReleaseDC( hWnd, hDc );
- if (inx>0)
- InvalidateRect( hWnd, NULL, TRUE );
- return inx;
- }
+ default:
+ break;
+ }
- case WM_ACTIVATE:
- if ( LOWORD(wParam) == WA_INACTIVE )
- closeBalloonHelp();
- break;
-
- case WM_HSCROLL:
- case WM_VSCROLL:
- b = getControlFromCursor( hWnd, NULL );
- if (!b)
- break;
- /*mswSetFocus( b );*/
- ret = 0L;
- if (!inMainWndProc) {
- inMainWndProc = TRUE;
- if (mswCallBacks[b->type] != NULL &&
- mswCallBacks[b->type]->messageProc) {
- ret = mswCallBacks[b->type]->messageProc( b, hWnd, message, wParam, lParam );
- }
- inMainWndProc = FALSE;
- }
- return ret;
-
- case WM_LBUTTONDOWN:
- case WM_MOUSEMOVE:
- case WM_LBUTTONUP:
- b = getControlFromCursor( hWnd, NULL );
- if (!b)
- break;
- /*mswSetFocus( b );*/
- ret = 0L;
- if (!inMainWndProc) {
- inMainWndProc = TRUE;
- if (mswCallBacks[b->type] != NULL &&
- mswCallBacks[b->type]->messageProc) {
- ret = mswCallBacks[b->type]->messageProc( b, hWnd, message, wParam, lParam );
- }
- inMainWndProc = FALSE;
- }
- return ret;
-
- default:
- ;
- }
- return DefWindowProc( hWnd, message, wParam, lParam );
+ break;
+
+ case WM_CHAR:
+ case WM_KEYUP:
+ inx = GetWindowWord(hWnd, 0);
+
+ if (inx < CONTROL_BASE || inx > controlMap_da.cnt) {
+ break;
+ }
+
+ w = (wWin_p)controlMap(inx-CONTROL_BASE).b;
+
+ if (!w) {
+ break;
+ }
+
+ if (w->type != W_MAIN && w->type != W_POPUP) {
+ if (mswCallBacks[w->type] != NULL &&
+ mswCallBacks[w->type]->messageProc)
+ return mswCallBacks[w->type]->messageProc((wControl_p)w, hWnd,
+ message, wParam, lParam);
+
+ break;
+ }
+
+ extChar = translateExtKey(WCMD_PARAM_ID);
+
+ if (message == WM_KEYUP) {
+ if (extChar == wAccelKey_None) {
+ break;
+ }
+
+ if (extChar == wAccelKey_Back) {
+ break;
+ }
+ }
+
+ b = getControlFromCursor(hWnd, NULL);
+ closeBalloonHelp();
+
+ if (b && b->type == B_DRAW) {
+ return SendMessage(b->hWnd, WM_CHAR, wParam, lParam);
+ }
+
+ switch (WCMD_PARAM_ID) {
+ case 0x0D:
+
+ /* CR - push default button */
+ for (b=w->first; b; b=b->next) {
+ if (b->type == B_BUTTON && (b->option & BB_DEFAULT) != 0) {
+ inMainWndProc = TRUE;
+
+ if (mswCallBacks[B_BUTTON] != NULL &&
+ mswCallBacks[B_BUTTON]->messageProc) {
+ ret = mswCallBacks[B_BUTTON]->messageProc(b, b->hWnd,
+ WM_COMMAND, wParam, lParam);
+ }
+
+ inMainWndProc = FALSE;
+ break;
+ }
+ }
+
+ return 0L;
+
+ case 0x1B:
+
+ /* ESC - push cancel button */
+ for (b=w->first; b; b=b->next) {
+ if (b->type == B_BUTTON && (b->option & BB_CANCEL) != 0) {
+ inMainWndProc = TRUE;
+
+ if (mswCallBacks[B_BUTTON] != NULL &&
+ mswCallBacks[B_BUTTON]->messageProc) {
+ ret = mswCallBacks[B_BUTTON]->messageProc(b, b->hWnd,
+ WM_COMMAND, wParam, lParam);
+ }
+
+ inMainWndProc = FALSE;
+ break;
+ }
+ }
+
+ mswSetTrigger((wControl_p)TRIGGER_TIMER, NULL);
+ return 0L;
+
+ case 0x20:
+
+ /* SPC - push current button with focus */
+ if ((b=w->focusChainNext) != NULL) {
+ switch (b->type) {
+ case B_BUTTON:
+ case B_CHOICEITEM:
+ inMainWndProc = TRUE;
+
+ if (mswCallBacks[b->type] != NULL &&
+ mswCallBacks[b->type]->messageProc) {
+ ret = mswCallBacks[b->type]->messageProc(b, b->hWnd,
+ WM_COMMAND, MAKELPARAM(LOWORD(wParam), BN_CLICKED), (LPARAM)(b->hWnd));
+ }
+
+ inMainWndProc = FALSE;
+ break;
+ }
+ }
+
+ return 0L;
+
+ case 0x09:
+
+ /* TAB - jump to next control */
+ if (w->focusChainNext) {
+ for (b = w->focusChainNext->focusChainNext;
+ b!=w->focusChainNext;
+ b=b->focusChainNext) {
+ if (IsWindowVisible(b->hWnd) && IsWindowEnabled(b->hWnd)) {
+ break;
+ }
+ }
+
+ oldW = w->focusChainNext;
+ w->focusChainNext = b;
+
+ if (!inMainWndProc) {
+ inMainWndProc = TRUE;
+ SetFocus(b->hWnd);
+
+ /* if( b->type == B_BUTTON)
+ InvalidateRect( b->hWnd, NULL, TRUE ); */
+ if (oldW->type == B_BUTTON) {
+ InvalidateRect(oldW->hWnd, NULL, TRUE);
+ }
+
+ inMainWndProc = FALSE;
+ }
+ }
+
+ return 0L;
+ }
+
+ /* Not a Draw control */
+ MessageBeep(MB_ICONHAND);
+ return 0L;
+ break;
+
+ case WM_ENABLE:
+ if (wParam == 1) { /* WIN32??? */
+ hWnd2 = SetFocus(hWnd);
+ }
+
+ break;
+
+ case WM_F1DOWN:
+ if ((hWnd2 = GetActiveWindow()) == hWnd ||
+ (inx=GetWindowWord(hWnd2,0)) < CONTROL_BASE || inx > controlMap_da.cnt) {
+ return DefWindowProc(hWnd, message, wParam, lParam);
+ }
+
+ b=controlMap(inx-CONTROL_BASE).b;
+
+ if (!b) {
+ break;
+ }
+
+ closeBalloonHelp();
+ wHelp(b->helpStr);
+ return 0L;
+
+ case WM_SETCURSOR:
+ /*if (any buttons down)
+ break;*/
+ wSetCursor(curCursor);
+
+ if (!mswAllowBalloonHelp) {
+ break;
+ }
+
+ if (IsIconic(mswHWnd)) {
+ break;
+ }
+
+ b = getControlFromCursor(hWnd, NULL);
+
+ if (b == balloonControlButton) {
+ break;
+ }
+
+ if (/*(!IsWindowEnabled(hWnd))*/ GetActiveWindow() != hWnd ||
+ (!b) || b->type == B_DRAW || b->helpStr == NULL) {
+ closeBalloonHelp();
+ break;
+ }
+
+ if (b != balloonHelpButton) {
+ closeBalloonHelp();
+ }
+
+ if (balloonHelpState != balloonHelpIdle) {
+ break;
+ }
+
+ balloonHelpTimer = SetTimer(mswHWnd, BALLOONHELP_TIMER,
+ balloonHelpTimeOut, NULL);
+
+ if (balloonHelpTimer == (UINT)0) {
+ break;
+ }
+
+ balloonHelpState = balloonHelpWait;
+ balloonHelpButton = b;
+ break;
+
+ case WM_SYSCOMMAND:
+ inx = GetWindowWord(hWnd, 0);
+
+ if (inx < CONTROL_BASE || inx > controlMap_da.cnt) {
+ break;
+ }
+
+ w = (wWin_p)controlMap(inx-CONTROL_BASE).b;
+
+ if (!w) {
+ break;
+ }
+
+ if (w->type != W_POPUP) {
+ break;
+ }
+
+ if (w->busy) {
+ break;
+ }
+
+ if ((wParam&0xFFF0) != SC_CLOSE) {
+ break;
+ }
+
+ if (w->winProc) {
+ w->winProc(w, wClose_e, w->data);
+ }
+
+ wWinShow(w, FALSE);
+ return 0L;
+
+ case WM_CLOSE:
+ inx = GetWindowWord(hWnd, 0);
+
+ if (inx < CONTROL_BASE || inx > controlMap_da.cnt) {
+ break;
+ }
+
+ w = (wWin_p)controlMap(inx-CONTROL_BASE).b;
+
+ if (!w) {
+ break;
+ }
+
+ if (w->type == W_MAIN) {
+ /* It's the big one! */
+ /* call main window procedure for processing of shutdown */
+ if (w->winProc) {
+ (w->winProc(w, wClose_e, NULL));
+ }
+
+ return 0L;
+ }
+
+ case WM_DESTROY:
+ if (hWnd == mswHWnd) {
+ PostQuitMessage(0L);
+ return 0L;
+ }
+
+ break;
+
+ case WM_TIMER:
+ if (wParam == ALARM_TIMER) {
+ KillTimer(mswHWnd, alarmTimer);
+ alarmFunc();
+ } else if (wParam == TRIGGER_TIMER) {
+ KillTimer(mswHWnd, triggerTimer);
+ triggerTimer = 0;
+
+ if (triggerFunc) {
+ triggerFunc(triggerControl);
+ }
+ } else if (wParam == BALLOONHELP_TIMER) {
+ KillTimer(hWnd, balloonHelpTimer);
+ balloonHelpTimer = (UINT)0;
+ startBalloonHelp();
+ }
+
+ return 0L;
+
+ case WM_MENUSELECT:
+ mswAllowBalloonHelp = TRUE;
+ closeBalloonHelp();
+ break;
+
+ case WM_WINDOWPOSCHANGED:
+ if (hWnd == mswHWnd && !IsIconic(hWnd) && needToDoPendingShow) {
+ for (w=winFirst; w; w=(wWin_p)w->next) {
+ if (w->hWnd != mswHWnd &&
+ w->pendingShow) {
+ ShowWindow(w->hWnd, SW_SHOW);
+ }
+
+ w->pendingShow = FALSE;
+ }
+
+ needToDoPendingShow = FALSE;
+ }
+
+ break;
+
+ case 51:
+ count51++;
+ /*return NULL;*/
+
+
+ case WM_PALETTECHANGED:
+ if (wParam == (WPARAM)hWnd) {
+ return 0L;
+ }
+
+ case WM_QUERYNEWPALETTE:
+ if (mswPalette) {
+ hDc = GetDC(hWnd);
+ SelectPalette(hDc, mswPalette, 0);
+ inx = RealizePalette(hDc);
+ ReleaseDC(hWnd, hDc);
+
+ if (inx>0) {
+ InvalidateRect(hWnd, NULL, TRUE);
+ }
+
+ return inx;
+ }
+
+ case WM_ACTIVATE:
+ if (LOWORD(wParam) == WA_INACTIVE) {
+ closeBalloonHelp();
+ }
+
+ break;
+
+ case WM_HSCROLL:
+ case WM_VSCROLL:
+ b = getControlFromCursor(hWnd, NULL);
+
+ if (!b) {
+ break;
+ }
+
+ /*mswSetFocus( b );*/
+ ret = 0L;
+
+ if (!inMainWndProc) {
+ inMainWndProc = TRUE;
+
+ if (mswCallBacks[b->type] != NULL &&
+ mswCallBacks[b->type]->messageProc) {
+ ret = mswCallBacks[b->type]->messageProc(b, hWnd, message, wParam, lParam);
+ }
+
+ inMainWndProc = FALSE;
+ }
+
+ return ret;
+
+ case WM_LBUTTONDOWN:
+ case WM_MOUSEMOVE:
+ case WM_LBUTTONUP:
+ b = getControlFromCursor(hWnd, NULL);
+
+ if (!b) {
+ break;
+ }
+
+ /*mswSetFocus( b );*/
+ ret = 0L;
+
+ if (!inMainWndProc) {
+ inMainWndProc = TRUE;
+
+ if (mswCallBacks[b->type] != NULL &&
+ mswCallBacks[b->type]->messageProc) {
+ ret = mswCallBacks[b->type]->messageProc(b, hWnd, message, wParam, lParam);
+ }
+
+ inMainWndProc = FALSE;
+ }
+
+ return ret;
+
+ default:
+ ;
+ }
+
+ return DefWindowProc(hWnd, message, wParam, lParam);
}
/*
@@ -2665,156 +3153,163 @@ MainWndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
*/
/**
- * Register window classes used by the application. These are the main window,
- * the popup windows, the tooltip window and the drawing area.
+ * Register window classes used by the application. These are the main window,
+ * the popup windows, the tooltip window and the drawing area.
*
* \param hinstCurrent IN application instance
* \return FALSE in case of error, else TRUE
*/
-static BOOL InitApplication( HINSTANCE hinstCurrent )
-{
- WNDCLASS wc;
-
- wc.style = 0L;
- wc.lpfnWndProc = MainWndProc;
-
- wc.cbClsExtra = 0;
- wc.cbWndExtra = 4;
- wc.hInstance = hinstCurrent;
- wc.hIcon = LoadIcon( hinstCurrent, "MSWAPPICON" );
- wc.hCursor = NULL;
- wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE+1);
- wc.lpszMenuName = NULL;
- wc.lpszClassName = "MswMainWindow";
- if (!RegisterClass(&wc)) {
- mswFail("RegisterClass(MainWindow)");
- return FALSE;
- }
-
- wc.style = CS_SAVEBITS;
- wc.lpfnWndProc = MainWndProc;
-
- wc.cbClsExtra = 0;
- wc.cbWndExtra = 8;
- wc.hInstance = hinstCurrent;
- wc.hIcon = LoadIcon( NULL, "wAppIcon" );
- wc.hCursor = NULL;
- wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE+1);
- wc.lpszMenuName = "GenericMenu";
- wc.lpszClassName = "MswPopUpWindow";
- if (!RegisterClass(&wc)) {
- mswFail("RegisterClass(PopUpWindow)");
- return FALSE;
- }
-
- wc.style = CS_SAVEBITS;
- wc.lpfnWndProc = DefWindowProc;
-
- wc.cbClsExtra = 0;
- wc.cbWndExtra = 4;
- wc.hInstance = hinstCurrent;
- wc.hIcon = 0;
- wc.hCursor = 0;
- wc.hbrBackground = CreateSolidBrush( GetSysColor( COLOR_INFOBK ) );
- wc.lpszMenuName = NULL;
- wc.lpszClassName = "MswBalloonHelp";
- if (!RegisterClass(&wc)) {
- mswFail("RegisterClass(BalloonHelp)");
- return FALSE;
- }
-
- wc.style = CS_VREDRAW | CS_HREDRAW | CS_OWNDC;
- wc.lpfnWndProc = mswDrawPush;
- wc.lpszClassName = mswDrawWindowClassName;
- wc.cbWndExtra = 4;
- if (!RegisterClass(&wc)) {
- mswFail("RegisterClass(drawClass)");
- return FALSE;
- }
- return TRUE;
+static BOOL InitApplication(HINSTANCE hinstCurrent)
+{
+ WNDCLASS wc;
+ wc.style = 0L;
+ wc.lpfnWndProc = MainWndProc;
+ wc.cbClsExtra = 0;
+ wc.cbWndExtra = 4;
+ wc.hInstance = hinstCurrent;
+ wc.hIcon = LoadIcon(hinstCurrent, "MSWAPPICON");
+ wc.hCursor = NULL;
+ wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE+1);
+ wc.lpszMenuName = NULL;
+ wc.lpszClassName = "MswMainWindow";
+
+ if (!RegisterClass(&wc)) {
+ mswFail("RegisterClass(MainWindow)");
+ return FALSE;
+ }
+
+ wc.style = CS_SAVEBITS;
+ wc.lpfnWndProc = MainWndProc;
+ wc.cbClsExtra = 0;
+ wc.cbWndExtra = 8;
+ wc.hInstance = hinstCurrent;
+ wc.hIcon = LoadIcon(NULL, "wAppIcon");
+ wc.hCursor = NULL;
+ wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE+1);
+ wc.lpszMenuName = "GenericMenu";
+ wc.lpszClassName = "MswPopUpWindow";
+
+ if (!RegisterClass(&wc)) {
+ mswFail("RegisterClass(PopUpWindow)");
+ return FALSE;
+ }
+
+ wc.style = CS_SAVEBITS;
+ wc.lpfnWndProc = DefWindowProc;
+ wc.cbClsExtra = 0;
+ wc.cbWndExtra = 4;
+ wc.hInstance = hinstCurrent;
+ wc.hIcon = 0;
+ wc.hCursor = 0;
+ wc.hbrBackground = CreateSolidBrush(GetSysColor(COLOR_INFOBK));
+ wc.lpszMenuName = NULL;
+ wc.lpszClassName = "MswBalloonHelp";
+
+ if (!RegisterClass(&wc)) {
+ mswFail("RegisterClass(BalloonHelp)");
+ return FALSE;
+ }
+
+ wc.style = CS_VREDRAW | CS_HREDRAW | CS_OWNDC;
+ wc.lpfnWndProc = mswDrawPush;
+ wc.lpszClassName = mswDrawWindowClassName;
+ wc.cbWndExtra = 4;
+
+ if (!RegisterClass(&wc)) {
+ mswFail("RegisterClass(drawClass)");
+ return FALSE;
+ }
+
+ return TRUE;
}
/**
- * Standard entry point for the app. Nothing special,
- * create some window classes, initialize some global
+ * Standard entry point for the app. Nothing special,
+ * create some window classes, initialize some global
* variables with system information, call the application main
* and finally process the message queue.
*/
-int PASCAL WinMain( HINSTANCE hinstCurrent, HINSTANCE hinstPrevious, LPSTR lpszCmdLine, int nCmdShow )
+int PASCAL WinMain(HINSTANCE hinstCurrent, HINSTANCE hinstPrevious,
+ LPSTR lpszCmdLine, int nCmdShow)
{
- MSG msg;
- HDC hDc;
- char **argv;
- int argc;
- TEXTMETRIC tm;
- DWORD dw;
+ MSG msg;
+ HDC hDc;
+ char **argv;
+ int argc;
+ TEXTMETRIC tm;
+ DWORD dw;
- if (!hinstPrevious)
- if (!InitApplication(hinstCurrent))
+ if (!hinstPrevious) {
+ if (!InitApplication(hinstCurrent)) {
return FALSE;
-
- mswHInst = hinstCurrent;
-
- mTitleH = GetSystemMetrics( SM_CYCAPTION ) - 1;
- mFixBorderW = GetSystemMetrics( SM_CXBORDER );
- mFixBorderH = GetSystemMetrics( SM_CYBORDER );
- mResizeBorderW = GetSystemMetrics( SM_CXFRAME );
- mResizeBorderH = GetSystemMetrics( SM_CYFRAME );
- mMenuH = GetSystemMetrics( SM_CYMENU ) + 1;
- screenWidth = GetSystemMetrics( SM_CXSCREEN );
- screenHeight = GetSystemMetrics( SM_CYSCREEN );
- mswLabelFont = GetStockObject( DEFAULT_GUI_FONT );
-
- hDc = GetDC( 0 );
- mswScale = GetDeviceCaps( hDc, LOGPIXELSX ) / 96.0;
- if ( mswScale < 1.0 )
- mswScale = 1.0;
- GetTextMetrics( hDc, &tm );
- mswEditHeight = tm.tmHeight + 8;
- dw = GetTextExtent( hDc, "AXqypj", 6 );
- mswEditHeight = HIWORD(dw)+2;
- ReleaseDC( 0, hDc );
-
- mswCreateCheckBitmaps();
-
- /*
- get the command line parameters in standard C style and pass them to the main function. The
- globals are predefined by Visual C
- */
- argc = __argc;
- argv = __argv;
-
- mswWin = wMain( argc, (char**)argv );
- if (mswWin == NULL)
- return 0;
-
- balloonHelpHWnd = CreateWindow( "MswBalloonHelp", "BalloonHelp",
- WS_POPUP|WS_BORDER,
- 0, 0, 80, 40, mswHWnd, NULL, mswHInst, NULL );
- if (balloonHelpHWnd == (HWND)0) {
- mswFail( "CreateWindow(BALLOONHELP)" );
- } else {
- hDc = GetDC( balloonHelpHWnd );
- /* We need to remember this because the hDc gets changed somehow,
- /* and we when we select the oldFont back in we don't get newFont */
- balloonHelpNewFont = CreateFont( - balloonHelpFontSize, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, balloonHelpFaceName );
- balloonHelpOldFont = SelectObject( hDc, balloonHelpNewFont );
- ReleaseDC( balloonHelpHWnd, hDc );
- }
-
- SetCursor( LoadCursor( NULL, IDC_ARROW ) );
- while (GetMessage( &msg, NULL, 0, 0 )) {
- if (!mswTranslateAccelerator( mswWin->hWnd, &msg )) {
- TranslateMessage( &msg );
- DispatchMessage( &msg );
}
}
- if( helpInitted == TRUE )
- HtmlHelp( NULL, NULL, HH_UNINITIALIZE, (DWORD)dwCookie);
-
- return msg.wParam;
+ mswHInst = hinstCurrent;
+ mTitleH = GetSystemMetrics(SM_CYCAPTION) - 1;
+ mFixBorderW = GetSystemMetrics(SM_CXBORDER);
+ mFixBorderH = GetSystemMetrics(SM_CYBORDER);
+ mResizeBorderW = GetSystemMetrics(SM_CXFRAME);
+ mResizeBorderH = GetSystemMetrics(SM_CYFRAME);
+ mMenuH = GetSystemMetrics(SM_CYMENU) + 1;
+ screenWidth = GetSystemMetrics(SM_CXSCREEN);
+ screenHeight = GetSystemMetrics(SM_CYSCREEN);
+ mswLabelFont = GetStockObject(DEFAULT_GUI_FONT);
+ hDc = GetDC(0);
+ mswScale = GetDeviceCaps(hDc, LOGPIXELSX) / 96.0;
+
+ if (mswScale < 1.0) {
+ mswScale = 1.0;
+ }
+
+ GetTextMetrics(hDc, &tm);
+ mswEditHeight = tm.tmHeight + 8;
+ dw = GetTextExtent(hDc, "AXqypj", 6);
+ mswEditHeight = HIWORD(dw)+2;
+ ReleaseDC(0, hDc);
+ mswCreateCheckBitmaps();
+ /*
+ get the command line parameters in standard C style and pass them to the main function. The
+ globals are predefined by Visual C
+ */
+ argc = __argc;
+ argv = __argv;
+ mswWin = wMain(argc, (char**)argv);
+
+ if (mswWin == NULL) {
+ return 0;
+ }
+
+ balloonHelpHWnd = CreateWindow("MswBalloonHelp", "BalloonHelp",
+ WS_POPUP|WS_BORDER,
+ 0, 0, 80, 40, mswHWnd, NULL, mswHInst, NULL);
+
+ if (balloonHelpHWnd == (HWND)0) {
+ mswFail("CreateWindow(BALLOONHELP)");
+ } else {
+ hDc = GetDC(balloonHelpHWnd);
+ /* We need to remember this because the hDc gets changed somehow,
+ /* and we when we select the oldFont back in we don't get newFont */
+ balloonHelpNewFont = CreateFont(- balloonHelpFontSize, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, balloonHelpFaceName);
+ balloonHelpOldFont = SelectObject(hDc, balloonHelpNewFont);
+ ReleaseDC(balloonHelpHWnd, hDc);
+ }
+
+ SetCursor(LoadCursor(NULL, IDC_ARROW));
+
+ while (GetMessage(&msg, NULL, 0, 0)) {
+ if (!mswTranslateAccelerator(mswWin->hWnd, &msg)) {
+ TranslateMessage(&msg);
+ DispatchMessage(&msg);
+ }
+ }
+
+ if (helpInitted == TRUE) {
+ HtmlHelp(NULL, NULL, HH_UNINITIALIZE, (DWORD)dwCookie);
+ }
+
+ return msg.wParam;
}
diff --git a/app/wlib/mswlib/mswmsg.c b/app/wlib/mswlib/mswmsg.c
index b128534..4a21921 100644
--- a/app/wlib/mswlib/mswmsg.c
+++ b/app/wlib/mswlib/mswmsg.c
@@ -121,6 +121,10 @@ void wMessageSetWidth(
#endif
}
+wPos_t wMessageGetWidth(const char *string)
+{
+ return(wLabelWidth(string));
+}
wPos_t wMessageGetHeight( long flags )
{
diff --git a/app/wlib/mswlib/mswpref.c b/app/wlib/mswlib/mswpref.c
index 90cf8fc..eaa39fe 100644
--- a/app/wlib/mswlib/mswpref.c
+++ b/app/wlib/mswlib/mswpref.c
@@ -149,7 +149,7 @@ void wPrefSetString( const char * section, const char * name, const char * sval
}
-const char * wPrefGetString( const char * section, const char * name )
+char * wPrefGetStringBasic( const char * section, const char * name )
{
prefs_t * p;
int rc;
@@ -181,7 +181,7 @@ void wPrefSetInteger( const char * section, const char * name, long lval )
}
-wBool_t wPrefGetInteger(
+wBool_t wPrefGetIntegerBasic(
const char * section,
const char * name,
long *res,
@@ -190,7 +190,7 @@ wBool_t wPrefGetInteger(
const char * cp;
char * cp1;
- cp = wPrefGetString( section, name );
+ cp = wPrefGetStringBasic( section, name );
if (cp == NULL) {
*res = def;
return FALSE;
@@ -218,7 +218,7 @@ void wPrefSetFloat(
}
-wBool_t wPrefGetFloat(
+wBool_t wPrefGetFloatBasic(
const char * section, /* Section */
const char * name, /* Name */
double * res, /* Address of result */
@@ -229,7 +229,7 @@ wBool_t wPrefGetFloat(
const char * cp;
char * cp1;
- cp = wPrefGetString( section, name );
+ cp = wPrefGetStringBasic( section, name );
if (cp == NULL) {
*res = def;
return FALSE;
diff --git a/app/wlib/mswlib/mswsplash.c b/app/wlib/mswlib/mswsplash.c
index bddd081..47df6b7 100644
--- a/app/wlib/mswlib/mswsplash.c
+++ b/app/wlib/mswlib/mswsplash.c
@@ -1,6 +1,5 @@
-/**
+/** \file mswsplash.c
* Splash window for Windows
- * $header$
*/
/* XTrkCad - Model Railroad CAD
@@ -60,6 +59,7 @@ PaintBitmap( HWND hWnd, HBITMAP hBmp )
{
HDC hdc, hdcMem;
RECT rect;
+ HGDIOBJ oldObject;
UpdateWindow( hWnd );
@@ -69,10 +69,10 @@ PaintBitmap( HWND hWnd, HBITMAP hBmp )
/* create a memory dc holding the bitmap */
hdcMem = CreateCompatibleDC( hdc );
- SelectObject( hdcMem, hBmp );
+ oldObject = SelectObject( hdcMem, hBmp );
/*
- show it in the uppler left corner
+ show it in the upper left corner
the window is created with the size of the bitmap, so there is no need
for any special transformation
*/
@@ -81,6 +81,7 @@ PaintBitmap( HWND hWnd, HBITMAP hBmp )
hdcMem, 0, 0, SRCCOPY );
/* release the DCs that are not needed any more */
+ SelectObject(hdcMem, oldObject);
DeleteDC( hdcMem );
ReleaseDC( hWnd, hdc );
diff --git a/app/wlib/mswlib/mswstatus.c b/app/wlib/mswlib/mswstatus.c
new file mode 100644
index 0000000..f9d72f4
--- /dev/null
+++ b/app/wlib/mswlib/mswstatus.c
@@ -0,0 +1,110 @@
+/** \file mswstatus.c
+ * Status bar
+ */
+
+/* XTrkCad - Model Railroad CAD
+ * Copyright (C) 2005 Dave Bullis,
+ * 2017 Martin Fischer <m_fischer@sf.net>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ *
+ */
+
+#include <stdlib.h>
+#include <string.h>
+#include <windows.h>
+
+#include "mswint.h"
+
+/**
+ * Set the message text
+ *
+ * \param b IN widget
+ * \param arg IN new text
+ * \return
+ */
+
+void wStatusSetValue(
+ wStatus_p b,
+ const char * arg)
+{
+ wMessageSetValue((wMessage_p)b, arg);
+}
+/**
+ * Create a window for a simple text.
+ *
+ * \param IN parent Handle of parent window
+ * \param IN x position in x direction
+ * \param IN y position in y direction
+ * \param IN labelStr ???
+ * \param IN width horizontal size of window
+ * \param IN message message to display ( null terminated )
+ * \param IN flags display options
+ * \return handle for created window
+ */
+
+wStatus_p wStatusCreate(
+ wWin_p parent,
+ wPos_t x,
+ wPos_t y,
+ const char * labelStr,
+ wPos_t width,
+ const char *message)
+{
+ return (wStatus_p)wMessageCreateEx(parent, x, y, labelStr, width, message, 0);
+}
+
+/**
+ * Get the anticipated length of a message field
+ *
+ * \param testString IN string that should fit into the message box
+ * \return expected width of message box
+ */
+
+wPos_t
+wStatusGetWidth(const char *testString)
+{
+ return (wMessageGetWidth(testString));
+}
+
+/**
+ * Get height of message text
+ *
+ * \param flags IN text properties (large or small size)
+ * \return text height
+ */
+
+wPos_t wStatusGetHeight(
+ long flags)
+{
+ return (wMessageGetHeight(flags));
+}
+
+/**
+ * Set the width of the widget
+ *
+ * \param b IN widget
+ * \param width IN new width
+ * \return
+ */
+
+void wStatusSetWidth(
+ wStatus_p b,
+ wPos_t width)
+{
+ wMessageSetWidth((wMessage_p)b, width);
+} \ No newline at end of file
diff --git a/app/wlib/mswlib/mswtext.c b/app/wlib/mswlib/mswtext.c
index 95f6268..293e2b4 100644
--- a/app/wlib/mswlib/mswtext.c
+++ b/app/wlib/mswlib/mswtext.c
@@ -1,3 +1,25 @@
+/** \file mswtext.c
+* Text entry field
+*/
+
+/* XTrkCad - Model Railroad CAD
+* Copyright (C) 2005 Dave Bullis
+*
+* This program is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 2 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*/
+
#include <windows.h>
#include <string.h>
#include <malloc.h>
@@ -16,368 +38,406 @@
*/
static LOGFONT fixedFont = {
- /* Initial default values */
- -18, 0, /* H, W */
- 0, /* A */
- 0,
- FW_REGULAR,
- 0, 0, 0,/* I, U, SO */
- ANSI_CHARSET,
- 0, /* OP */
- 0, /* CP */
- 0, /* Q */
- FIXED_PITCH|FF_MODERN, /* P&F */
- "Courier" };
+ /* Initial default values */
+ -18, 0, /* H, W */
+ 0, /* A */
+ 0,
+ FW_REGULAR,
+ 0, 0, 0,/* I, U, SO */
+ ANSI_CHARSET,
+ 0, /* OP */
+ 0, /* CP */
+ 0, /* Q */
+ FIXED_PITCH|FF_MODERN, /* P&F */
+ "Courier"
+};
static HFONT fixedTextFont, prevTextFont;
struct wText_t {
- WOBJ_COMMON
- HANDLE hText;
- };
+ WOBJ_COMMON
+ HANDLE hText;
+};
BOOL_T textPrintAbort = FALSE;
void wTextClear(
- wText_p b )
+ wText_p b)
{
- long rc;
- rc = SendMessage( b->hWnd, EM_SETREADONLY, 0, 0L );
+ long rc;
+ rc = SendMessage(b->hWnd, EM_SETREADONLY, 0, 0L);
#ifdef WIN32
- rc = SendMessage( b->hWnd, EM_SETSEL, 0, -1 );
+ rc = SendMessage(b->hWnd, EM_SETSEL, 0, -1);
#else
- rc = SendMessage( b->hWnd, EM_SETSEL, 1, MAKELONG( 0, -1 ) );
+ rc = SendMessage(b->hWnd, EM_SETSEL, 1, MAKELONG(0, -1));
#endif
- rc = SendMessage( b->hWnd, WM_CLEAR, 0, 0L );
- if ( b->option&BO_READONLY )
- rc = SendMessage( b->hWnd, EM_SETREADONLY, 1, 0L );
+ rc = SendMessage(b->hWnd, WM_CLEAR, 0, 0L);
+
+ if (b->option&BO_READONLY) {
+ rc = SendMessage(b->hWnd, EM_SETREADONLY, 1, 0L);
+ }
}
+/**
+ * Append text to a multiline text box:
+ * For every \n a \r is added
+ * the current text is retrieved from the control
+ * the new text is appended and then set
+ *
+ * \param b IN text box handle
+ * \param text IN text to add to text box
+ * \return
+ */
void wTextAppend(
- wText_p b,
- const char * text )
+ wText_p b,
+ const char * text)
{
- HANDLE hMem;
- char * pMem, *cp;
- int len, textSize;
- long rc;
- long lc;
- len = strlen(text);
- if (len <= 0)
- return;
- for (cp= CAST_AWAY_CONST text; *cp; cp++) {
- if ( *cp == '\n' )
- len++;
- }
- hMem = GlobalAlloc( GHND, (DWORD)len+10+1 );
- pMem = (char*)GlobalLock( hMem );
- for (cp=pMem; *text; cp++,text++) {
- if (*text == '\n') {
- *cp++ = '\r';
- *cp = '\n';
- } else
- *cp = *text;
- }
- textSize = LocalSize( b->hText );
- if ((long)textSize+(long)len > 10000L) {
- if (len < 1024)
- len = 1024;
-#ifdef WIN32
- rc = SendMessage( b->hWnd, EM_SETSEL, 0, len );
-#else
- rc = SendMessage( b->hWnd, EM_SETSEL, 0, MAKELONG( 0, len ) );
-#endif
- rc = SendMessage( b->hWnd, WM_CLEAR, 0, 0L );
-#ifdef WIN32
- rc = SendMessage( b->hWnd, EM_SCROLLCARET, 0, 0 );
-#else
- rc = SendMessage( b->hWnd, EM_SETSEL, 0, MAKELONG( 32767, 32767 ) );
-#endif
- }
- lc = SendMessage( b->hWnd, EM_GETFIRSTVISIBLELINE, 0, 0L );
- if ( lc < 0 )
- lc = 0;
- GlobalUnlock( hMem );
- rc = OpenClipboard( b->hWnd );
- rc = EmptyClipboard();
- rc = (long)SetClipboardData( CF_TEXT, hMem );
- rc = CloseClipboard();
- rc = SendMessage( b->hWnd, EM_SETREADONLY, 0, 0L );
- rc = SendMessage( b->hWnd, WM_PASTE, 0, 0L );
- lc -= SendMessage( b->hWnd, EM_GETFIRSTVISIBLELINE, 0, 0L );
-#ifdef LATER
- if ( lc < 0 )
- SendMessage( b->hWnd, EM_LINESCROLL, 0, MAKELPARAM((WPARAM)lc,0) );
-#endif
- lc = GetWindowTextLength( b->hWnd );
- if ( b->option&BO_READONLY )
- rc = SendMessage( b->hWnd, EM_SETREADONLY, 1, 0L );
+ char *cp;
+ char *buffer;
+ char *extText;
+ int textSize;
+ int len = strlen(text);
+
+ if (!len) {
+ return;
+ }
+
+ for (cp = (char *)text; *cp; cp++) {
+ if (*cp == '\n') {
+ len++;
+ }
+ }
+
+ extText = malloc(len + 1 + 10);
+
+ for (cp=extText; *text; cp++,text++) {
+ if (*text == '\n') {
+ *cp++ = '\r';
+ *cp = '\n';
+ } else {
+ *cp = *text;
+ }
+ }
+
+ *cp = '\0';
+ textSize = GetWindowTextLength(b->hWnd);
+ buffer = malloc((textSize + len + 1) * sizeof(char));
+
+ if (buffer) {
+ GetWindowText(b->hWnd, buffer, textSize + 1);
+ strcat(buffer, extText);
+ SetWindowText(b->hWnd, buffer);
+ free(extText);
+ free(buffer);
+ } else {
+ abort();
+ }
+
+ if (b->option&BO_READONLY) {
+ SendMessage(b->hWnd, EM_SETREADONLY, 1, 0L);
+ }
}
BOOL_T wTextSave(
- wText_p b,
- const char * fileName )
+ wText_p b,
+ const char * fileName)
{
- FILE * f;
- int lc, l, len;
- char line[255];
-
- f = wFileOpen( fileName, "w" );
- if (f == NULL) {
- MessageBox( ((wControl_p)(b->parent))->hWnd, "TextSave", "", MB_OK|MB_ICONHAND );
- return FALSE;
- }
-
- lc = (int)SendMessage( b->hWnd, EM_GETLINECOUNT, 0, 0L );
-
- for ( l=0; l<lc; l++ ) {
- *(WORD*)line = sizeof(line)-1;
- len = (int)SendMessage( b->hWnd, EM_GETLINE, l, (DWORD)(LPSTR)line );
- line[len] = '\0';
- fprintf( f, "%s\n", line );
- }
- fclose( f );
- return TRUE;
+ FILE * f;
+ int lc, l, len;
+ char line[255];
+ f = wFileOpen(fileName, "w");
+
+ if (f == NULL) {
+ MessageBox(((wControl_p)(b->parent))->hWnd, "TextSave", "", MB_OK|MB_ICONHAND);
+ return FALSE;
+ }
+
+ lc = (int)SendMessage(b->hWnd, EM_GETLINECOUNT, 0, 0L);
+
+ for (l=0; l<lc; l++) {
+ *(WORD*)line = sizeof(line)-1;
+ len = (int)SendMessage(b->hWnd, EM_GETLINE, l, (DWORD)(LPSTR)line);
+ line[len] = '\0';
+ fprintf(f, "%s\n", line);
+ }
+
+ fclose(f);
+ return TRUE;
}
BOOL_T wTextPrint(
- wText_p b )
+ wText_p b)
{
- int lc, l, len;
- char line[255];
- HDC hDc;
- int lineSpace;
- int linesPerPage;
- int currentLine;
- int IOStatus;
- TEXTMETRIC textMetric;
- DOCINFO docInfo;
-
- hDc = mswGetPrinterDC();
- if (hDc == (HDC)0) {
- MessageBox( ((wControl_p)(b->parent))->hWnd, "Print", "Cannot print", MB_OK|MB_ICONHAND );
- return FALSE;
- }
- docInfo.cbSize = sizeof(DOCINFO);
- docInfo.lpszDocName = "XTrkcad Log";
- docInfo.lpszOutput = (LPSTR)NULL;
- if (StartDoc(hDc, &docInfo) < 0) {
- MessageBox( ((wControl_p)(b->parent))->hWnd, "Unable to start print job", NULL, MB_OK|MB_ICONHAND );
- DeleteDC( hDc );
- return FALSE;
- }
- StartPage( hDc );
- GetTextMetrics( hDc, &textMetric );
- lineSpace = textMetric.tmHeight + textMetric.tmExternalLeading;
- linesPerPage = GetDeviceCaps( hDc, VERTRES ) / lineSpace;
- currentLine = 1;
-
- lc = (int)SendMessage( b->hWnd, EM_GETLINECOUNT, 0, 0L );
-
- IOStatus = 0;
- for ( l=0; l<lc; l++ ) {
- *(WORD*)line = sizeof(line)-1;
- len = (int)SendMessage( b->hWnd, EM_GETLINE, l, (DWORD)(LPSTR)line );
- TextOut( hDc, 0, currentLine*lineSpace, line, len );
- if (++currentLine > linesPerPage) {
- EndPage( hDc );
+ int lc, l, len;
+ char line[255];
+ HDC hDc;
+ int lineSpace;
+ int linesPerPage;
+ int currentLine;
+ int IOStatus;
+ TEXTMETRIC textMetric;
+ DOCINFO docInfo;
+ hDc = mswGetPrinterDC();
+ HFONT hFont, hOldFont;
+
+ if (hDc == (HDC)0) {
+ MessageBox(((wControl_p)(b->parent))->hWnd, "Print", "Cannot print",
+ MB_OK|MB_ICONHAND);
+ return FALSE;
+ }
+
+ docInfo.cbSize = sizeof(DOCINFO);
+ docInfo.lpszDocName = "XTrkcad Log";
+ docInfo.lpszOutput = (LPSTR)NULL;
+
+ // Retrieve a handle to the monospaced stock font.
+ hFont = (HFONT)GetStockObject(ANSI_FIXED_FONT);
+ hOldFont = (HFONT)SelectObject(hDc, hFont);
+
+ if (StartDoc(hDc, &docInfo) < 0) {
+ MessageBox(((wControl_p)(b->parent))->hWnd, "Unable to start print job", NULL,
+ MB_OK|MB_ICONHAND);
+ DeleteDC(hDc);
+ return FALSE;
+ }
+
+ StartPage(hDc);
+
+ GetTextMetrics(hDc, &textMetric);
+ lineSpace = textMetric.tmHeight + textMetric.tmExternalLeading;
+ linesPerPage = GetDeviceCaps(hDc, VERTRES) / lineSpace;
+ currentLine = 1;
+ lc = (int)SendMessage(b->hWnd, EM_GETLINECOUNT, 0, 0L);
+ IOStatus = 0;
+
+ for (l=0; l<lc; l++) {
+ *(WORD*)line = sizeof(line)-1;
+ len = (int)SendMessage(b->hWnd, EM_GETLINE, l, (DWORD)(LPSTR)line);
+ TextOut(hDc, 0, currentLine*lineSpace, line, len);
+
+ if (++currentLine > linesPerPage) {
+ IOStatus = EndPage(hDc);
+ if (IOStatus < 0 || textPrintAbort) {
+ break;
+ }
+ StartPage(hDc);
currentLine = 1;
- IOStatus = EndPage(hDc);
- if (IOStatus < 0 || textPrintAbort )
- break;
- StartPage( hDc );
}
- }
- if (IOStatus >= 0 && !textPrintAbort ) {
- EndPage( hDc );
- EndDoc( hDc );
- }
- DeleteDC( hDc );
- return TRUE;
+ }
+
+ if (IOStatus >= 0 && !textPrintAbort) {
+ EndPage(hDc);
+ EndDoc(hDc);
+ }
+
+ SelectObject(hDc, hOldFont);
+ DeleteDC(hDc);
+ return TRUE;
}
wBool_t wTextGetModified(
- wText_p b )
+ wText_p b)
{
- int rc;
- rc = (int)SendMessage( b->hWnd, EM_GETMODIFY, 0, 0L );
- return (wBool_t)rc;
+ int rc;
+ rc = (int)SendMessage(b->hWnd, EM_GETMODIFY, 0, 0L);
+ return (wBool_t)rc;
}
int wTextGetSize(
- wText_p b )
+ wText_p b)
{
- int lc, l, li, len=0;
- lc = (int)SendMessage( b->hWnd, EM_GETLINECOUNT, 0, 0L );
- for ( l=0; l<lc ; l++ ) {
- li = (int)SendMessage( b->hWnd, EM_LINEINDEX, l, 0L );
- len += (int)SendMessage( b->hWnd, EM_LINELENGTH, l, 0L ) + 1;
- }
- if ( len == 1 )
- len = 0;
- return len;
+ int lc, l, len=0;
+ lc = (int)SendMessage(b->hWnd, EM_GETLINECOUNT, 0, 0L);
+
+ for (l=0; l<lc ; l++) {
+ int charIndex = (int)SendMessage(b->hWnd, EM_LINEINDEX, l, 0L);
+ len += (int)SendMessage(b->hWnd, EM_LINELENGTH, charIndex, 0L) + 1;
+ }
+
+ if (len == 1) {
+ len = 0;
+ }
+
+ return len;
}
void wTextGetText(
- wText_p b,
- char * t,
- int s )
+ wText_p b,
+ char * t,
+ int s)
{
- int lc, l, len;
- s--;
- lc = (int)SendMessage( b->hWnd, EM_GETLINECOUNT, 0, 0L );
- for ( l=0; l<lc && s>=0; l++ ) {
- *(WORD*)t = s;
- len = (int)SendMessage( b->hWnd, EM_GETLINE, l, (DWORD)(LPSTR)t );
- t += len;
- *t++ = '\n';
- s -= len+1;
- }
- *t++ = '\0';
+ int lc, l, len;
+ s--;
+ lc = (int)SendMessage(b->hWnd, EM_GETLINECOUNT, 0, 0L);
+
+ for (l=0; l<lc && s>=0; l++) {
+ *(WORD*)t = s;
+ len = (int)SendMessage(b->hWnd, EM_GETLINE, l, (LPARAM)t);
+ t += len;
+ *t++ = '\n';
+ s -= len+1;
+ }
+
+ *(t - 1) = '\0'; // overwrite the last \n added
}
void wTextSetReadonly(
- wText_p b,
- wBool_t ro )
+ wText_p b,
+ wBool_t ro)
{
- if (ro)
- b->option |= BO_READONLY;
- else
- b->option &= ~BO_READONLY;
- SendMessage( b->hWnd, EM_SETREADONLY, ro, 0L );
+ if (ro) {
+ b->option |= BO_READONLY;
+ } else {
+ b->option &= ~BO_READONLY;
+ }
+
+ SendMessage(b->hWnd, EM_SETREADONLY, ro, 0L);
}
void wTextSetSize(
- wText_p bt,
- wPos_t width,
- wPos_t height )
+ wText_p bt,
+ wPos_t width,
+ wPos_t height)
{
- bt->w = width;
- bt->h = height;
- if (!SetWindowPos( bt->hWnd, HWND_TOP, 0, 0,
- bt->w, bt->h, SWP_NOMOVE|SWP_NOZORDER)) {
- mswFail("wTextSetSize: SetWindowPos");
- }
+ bt->w = width;
+ bt->h = height;
+
+ if (!SetWindowPos(bt->hWnd, HWND_TOP, 0, 0,
+ bt->w, bt->h, SWP_NOMOVE|SWP_NOZORDER)) {
+ mswFail("wTextSetSize: SetWindowPos");
+ }
}
void wTextComputeSize(
- wText_p bt,
- int rows,
- int lines,
- wPos_t * w,
- wPos_t * h )
+ wText_p bt,
+ int rows,
+ int lines,
+ wPos_t * w,
+ wPos_t * h)
{
- static wPos_t scrollV_w = -1;
- static wPos_t scrollH_h = -1;
- HDC hDc;
- TEXTMETRIC metrics;
-
- if (scrollV_w < 0)
- scrollV_w = GetSystemMetrics( SM_CXVSCROLL );
- if (scrollH_h < 0)
- scrollH_h = GetSystemMetrics( SM_CYHSCROLL );
- hDc = GetDC( bt->hWnd );
- GetTextMetrics( hDc, &metrics );
- *w = rows * metrics.tmAveCharWidth + scrollV_w;
- *h = lines * (metrics.tmHeight + metrics.tmExternalLeading);
- ReleaseDC( bt->hWnd, hDc );
- if (bt->option&BT_HSCROLL)
- *h += scrollH_h;
+ static wPos_t scrollV_w = -1;
+ static wPos_t scrollH_h = -1;
+ HDC hDc;
+ TEXTMETRIC metrics;
+
+ if (scrollV_w < 0) {
+ scrollV_w = GetSystemMetrics(SM_CXVSCROLL);
+ }
+
+ if (scrollH_h < 0) {
+ scrollH_h = GetSystemMetrics(SM_CYHSCROLL);
+ }
+
+ hDc = GetDC(bt->hWnd);
+ GetTextMetrics(hDc, &metrics);
+ *w = rows * metrics.tmAveCharWidth + scrollV_w;
+ *h = lines * (metrics.tmHeight + metrics.tmExternalLeading);
+ ReleaseDC(bt->hWnd, hDc);
+
+ if (bt->option&BT_HSCROLL) {
+ *h += scrollH_h;
+ }
}
void wTextSetPosition(
- wText_p bt,
- int pos )
+ wText_p bt,
+ int pos)
{
- long rc;
- rc = SendMessage( bt->hWnd, EM_LINESCROLL, 0, MAKELONG( -65535, 0 ) );
+ long rc;
+ rc = SendMessage(bt->hWnd, EM_LINESCROLL, 0, MAKELONG(-65535, 0));
}
-static void textDoneProc( wControl_p b )
+static void textDoneProc(wControl_p b)
{
- wText_p t = (wText_p)b;
- HDC hDc;
- hDc = GetDC( t->hWnd );
- SelectObject( hDc, mswOldTextFont );
- ReleaseDC( t->hWnd, hDc );
+ wText_p t = (wText_p)b;
+ HDC hDc;
+ hDc = GetDC(t->hWnd);
+ SelectObject(hDc, mswOldTextFont);
+ ReleaseDC(t->hWnd, hDc);
}
static callBacks_t textCallBacks = {
- mswRepaintLabel,
- textDoneProc,
- NULL };
+ mswRepaintLabel,
+ textDoneProc,
+ NULL
+};
wText_p wTextCreate(
- wWin_p parent,
- POS_T x,
- POS_T y,
- const char * helpStr,
- const char * labelStr,
- long option,
- POS_T width,
- POS_T height )
+ wWin_p parent,
+ POS_T x,
+ POS_T y,
+ const char * helpStr,
+ const char * labelStr,
+ long option,
+ POS_T width,
+ POS_T height)
{
- wText_p b;
- DWORD style;
- RECT rect;
- int index;
-
- b = mswAlloc( parent, B_TEXT, labelStr, sizeof *b, NULL, &index );
- mswComputePos( (wControl_p)b, x, y );
- b->option = option;
- style = ES_MULTILINE | ES_LEFT | ES_AUTOVSCROLL | ES_WANTRETURN |
- WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL;
+ wText_p b;
+ DWORD style;
+ RECT rect;
+ int index;
+ b = mswAlloc(parent, B_TEXT, labelStr, sizeof *b, NULL, &index);
+ mswComputePos((wControl_p)b, x, y);
+ b->option = option;
+ style = ES_MULTILINE | ES_LEFT | ES_AUTOVSCROLL | ES_WANTRETURN |
+ WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL;
#ifdef BT_HSCROLL
- if (option & BT_HSCROLL)
- style |= WS_HSCROLL | ES_AUTOHSCROLL;
+
+ if (option & BT_HSCROLL) {
+ style |= WS_HSCROLL | ES_AUTOHSCROLL;
+ }
+
#endif
-/* if (option & BO_READONLY)
- style |= ES_READONLY;*/
-
- b->hWnd = CreateWindow( "EDIT", NULL,
- style, b->x, b->y,
- width, height,
- ((wControl_p)parent)->hWnd, (HMENU)index, mswHInst, NULL );
- if (b->hWnd == NULL) {
- mswFail("CreateWindow(TEXT)");
- return b;
- }
+ /* if (option & BO_READONLY)
+ style |= ES_READONLY;*/
+ b->hWnd = CreateWindow("EDIT", NULL,
+ style, b->x, b->y,
+ width, height,
+ ((wControl_p)parent)->hWnd, (HMENU)index, mswHInst, NULL);
+
+ if (b->hWnd == NULL) {
+ mswFail("CreateWindow(TEXT)");
+ return b;
+ }
+
#ifdef CONTROL3D
- Ctl3dSubclassCtl( b->hWnd );
+ Ctl3dSubclassCtl(b->hWnd);
#endif
- if (option & BT_FIXEDFONT) {
- if (fixedTextFont == (HFONT)0)
- fixedTextFont = CreateFontIndirect( &fixedFont );
- SendMessage( b->hWnd, WM_SETFONT, (WPARAM)fixedTextFont, (LPARAM)MAKELONG( 1, 0 ) );
- } else if ( !mswThickFont ) {
- SendMessage( b->hWnd, WM_SETFONT, (WPARAM)mswLabelFont, 0L );
- }
-
- b->hText = (HANDLE)SendMessage( b->hWnd, EM_GETHANDLE, 0, 0L );
-
- if (option & BT_CHARUNITS) {
- wPos_t w, h;
- wTextComputeSize( b, width, height, &w, &h );
- if (!SetWindowPos( b->hWnd, HWND_TOP, 0, 0,
- w, h, SWP_NOMOVE|SWP_NOZORDER)) {
- mswFail("wTextCreate: SetWindowPos");
- }
- }
-
- GetWindowRect( b->hWnd, &rect );
- b->w = rect.right - rect.left;
- b->h = rect.bottom - rect.top;
-
- mswAddButton( (wControl_p)b, FALSE, helpStr );
- mswCallBacks[B_TEXT] = &textCallBacks;
- return b;
+ if (option & BT_FIXEDFONT) {
+ if (fixedTextFont == (HFONT)0) {
+ fixedTextFont = CreateFontIndirect(&fixedFont);
+ }
+
+ SendMessage(b->hWnd, WM_SETFONT, (WPARAM)fixedTextFont, (LPARAM)MAKELONG(1, 0));
+ } else if (!mswThickFont) {
+ SendMessage(b->hWnd, WM_SETFONT, (WPARAM)mswLabelFont, 0L);
+ }
+
+ b->hText = (HANDLE)SendMessage(b->hWnd, EM_GETHANDLE, 0, 0L);
+
+ if (option & BT_CHARUNITS) {
+ wPos_t w, h;
+ wTextComputeSize(b, width, height, &w, &h);
+
+ if (!SetWindowPos(b->hWnd, HWND_TOP, 0, 0,
+ w, h, SWP_NOMOVE|SWP_NOZORDER)) {
+ mswFail("wTextCreate: SetWindowPos");
+ }
+ }
+
+ GetWindowRect(b->hWnd, &rect);
+ b->w = rect.right - rect.left;
+ b->h = rect.bottom - rect.top;
+ mswAddButton((wControl_p)b, FALSE, helpStr);
+ mswCallBacks[B_TEXT] = &textCallBacks;
+ return b;
}
diff --git a/distribution/CMakeLists.txt b/distribution/CMakeLists.txt
index e97a4a4..fc63769 100644
--- a/distribution/CMakeLists.txt
+++ b/distribution/CMakeLists.txt
@@ -14,6 +14,8 @@ SET(CPACK_RESOURCE_FILE_LICENSE "${XTrkCAD_SOURCE_DIR}/app/COPYING")
SET(CPACK_SOURCE_GENERATOR "ZIP;TGZ")
SET(CPACK_SOURCE_PACKAGE_FILE_NAME "xtrkcad-source-${XTRKCAD_VERSION}")
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/downloadpage.wiki.in ${CMAKE_BINARY_DIR}/downloadpage.wiki)
+
# Setup platform-specific packaging ...
IF(APPLE)
ADD_SUBDIRECTORY(osx)
diff --git a/distribution/downloadpage.wiki.in b/distribution/downloadpage.wiki.in
new file mode 100644
index 0000000..2d65511
--- /dev/null
+++ b/distribution/downloadpage.wiki.in
@@ -0,0 +1,46 @@
+======Download ""XTrackCAD"" Version @XTRKCAD_VERSION@======
+=====Install (Binary) Packages=====
+|=|OS|=|Download Package||
+||Windows||[[http://sourceforge.net/projects/xtrkcad-fork/files/XTrackCad/Version%20@XTRKCAD_MAJOR_VERSION@.@XTRKCAD_MINOR_VERSION@.@XTRKCAD_RELEASE_VERSION@/xtrkcad-setup-@XTRKCAD_VERSION@.exe/download Windows Installer (32 Bit) ]]||
+||Mac OSX||[[http://sourceforge.net/projects/xtrkcad-fork/files/XTrackCad/Version%20@XTRKCAD_MAJOR_VERSION@.@XTRKCAD_MINOR_VERSION@.@XTRKCAD_RELEASE_VERSION@/xtrkcad-OSX-V@XTRKCAD_VERSION@.dmg/download OSX Installer (64 Bit) ]]||
+||(y:4)Linux||[[http://sourceforge.net/projects/xtrkcad-fork/files/XTrackCad/Version%20@XTRKCAD_MAJOR_VERSION@.@XTRKCAD_MINOR_VERSION@.@XTRKCAD_RELEASE_VERSION@/xtrkcad-setup-@XTRKCAD_VERSION@-1.i686.rpm/download Fedora RPM (32 Bit) ]]||
+||[[http://sourceforge.net/projects/xtrkcad-fork/files/XTrackCad/Version%20@XTRKCAD_MAJOR_VERSION@.@XTRKCAD_MINOR_VERSION@.@XTRKCAD_RELEASE_VERSION@/xtrkcad-setup-@XTRKCAD_VERSION@-1.i686.sh/download self-extracting install script (32 Bit) ]]||
+||[[http://sourceforge.net/projects/xtrkcad-fork/files/XTrackCad/Version%20@XTRKCAD_MAJOR_VERSION@.@XTRKCAD_MINOR_VERSION@.@XTRKCAD_RELEASE_VERSION@/xtrkcad-setup-@XTRKCAD_VERSION@-1.x86_64.rpm/download Fedora RPM (64 Bit) ]]||
+||[[http://sourceforge.net/projects/xtrkcad-fork/files/XTrackCad/Version%20@XTRKCAD_MAJOR_VERSION@.@XTRKCAD_MINOR_VERSION@.@XTRKCAD_RELEASE_VERSION@/xtrkcad-setup-@XTRKCAD_VERSION@-1.x86_64.sh/download self-extracting install script (64 Bit) ]]||
+=====Third Party Packages=====
+Robert Heller created a few additional packets for Raspbian, Ubuntu 14.04+, and EL6. Files are up at:
+
+[[http://files.deepsoft.com/Other/xtrkcad/]]
+or
+[[ftp://ftp.deepsoft.com/pub/deepwoods/Other/xtrkcad/]]
+
+====""MacOSX""====
+ - ""MacOSX"" There is a new package available as linked above with a simplified install.
+ - Please see instructions for extra install steps at [[MacOSX]]
+=====Source Code=====
+|=|Format|=|Download||
+||TGZ||[[http://sourceforge.net/projects/xtrkcad-fork/files/XTrackCad/Version%20@XTRKCAD_MAJOR_VERSION@.@XTRKCAD_MINOR_VERSION@.@XTRKCAD_RELEASE_VERSION@/xtrkcad-source-@XTRKCAD_VERSION@.tar.gz/download GZipped Tar Archive]]||
+||BZ2||[[http://sourceforge.net/projects/xtrkcad-fork/files/XTrackCad/Version%20@XTRKCAD_MAJOR_VERSION@.@XTRKCAD_MINOR_VERSION@.@XTRKCAD_RELEASE_VERSION@/xtrkcad-source-@XTRKCAD_VERSION@.tar.bz2/download BZipped2 Tar Archive]]||
+||ZIP||[[http://sourceforge.net/projects/xtrkcad-fork/files/XTrackCad/Version%20@XTRKCAD_MAJOR_VERSION@.@XTRKCAD_MINOR_VERSION@.@XTRKCAD_RELEASE_VERSION@/xtrkcad-source-@XTRKCAD_VERSION@.zip/download ZIP Archive]]||
+||Mercurial Bundle||[[http://sourceforge.net/projects/xtrkcad-fork/files/XTrackCad/Version%20@XTRKCAD_MAJOR_VERSION@.@XTRKCAD_MINOR_VERSION@.@XTRKCAD_RELEASE_VERSION@/xtrkcad_@XTRKCAD_MAJOR_VERSION@_@XTRKCAD_MINOR_VERSION@_@XTRKCAD_RELEASE_VERSION@@XTRKCAD_VERSIONMODIFIER@.hg/download Mercurial bundle]]||
+
+The Mercurial bundle provides a downloadable starting point for developers who are on bandwidth constrained / flakey connections.
+To use the .hg bundle download xtrkcad_@XTRKCAD_MAJOR_VERSION@_@XTRKCAD_MINOR_VERSION@_@XTRKCAD_RELEASE_VERSION@@XTRKCAD_VERSIONMODIFIER@.hg and perform the following steps:
+%%
+mkdir xtrkcad
+cd xtrkcad
+hg init
+hg unbundle ../xtrkcad_@XTRKCAD_MAJOR_VERSION@_@XTRKCAD_MINOR_VERSION@_@XTRKCAD_RELEASE_VERSION@@XTRKCAD_VERSIONMODIFIER@
+edit .hg/hgrc adding these lines:
+
+[paths]
+default = http://hg.code.sf.net/p/xtrkcad-fork/xtrkcad
+%%
+Optionally do an hg pull then hg update to get the latest changes.
+
+""XTrackCAD"" has been compiled and tested on ""FreeBSD"" and ""OpenSolaris"". But there is no official support for these operating systems.
+
+====Older Versions====
+For your convenience, older versions of ""XTrackCAD"" can be downloaded from [[DownloadPage here]].
+----
+CategoryUser \ No newline at end of file
diff --git a/distribution/osx/gtk-bundle/CMakeLists.txt b/distribution/osx/gtk-bundle/CMakeLists.txt
index 4aa1150..f93ad9c 100644
--- a/distribution/osx/gtk-bundle/CMakeLists.txt
+++ b/distribution/osx/gtk-bundle/CMakeLists.txt
@@ -11,7 +11,7 @@ DESTINATION ${XTRKCAD_SHARE_INSTALL_DIR}/XTrackCAD.help
)
INSTALL (
FILES ${CMAKE_CURRENT_SOURCE_DIR}/toc.js
-DESTINATION ${XTRKCAD_SHARE_INSTALL_DIR}/XTrackCAD.help/Contents/Resources/en.lproj
+DESTINATION ${XTRKCAD_SHARE_INSTALL_DIR}/XTrackCAD.help/Contents/Resources/en.lproj/scrpt
)
ADD_SUBDIRECTORY(XTrackCAD-help)
diff --git a/distribution/osx/gtk-bundle/gtk-bundle.README b/distribution/osx/gtk-bundle/gtk-bundle.README
index 139cec7..0c7c9ea 100644
--- a/distribution/osx/gtk-bundle/gtk-bundle.README
+++ b/distribution/osx/gtk-bundle/gtk-bundle.README
@@ -1,7 +1,7 @@
Readme for gtk-bundle directory.
Created 12-1-2016 by Adam Richards
-Date: Dec-2016.
+Date: Nov-2017.
The gtk-bundle technique replaces prior bundle techniques for OSX.
@@ -13,30 +13,25 @@ The bundler also requires a prior Macports install of GTK
"sudo port install webkit-gtk"
and that was the GTK level was used to build the xtrkcad binary.
-The ccmake process will place a copy of the binary in the /bin build subdirectory
+The ccmake install process will place a copy of the binary in the /bin install subdirectory
for use by G-M-B. It also copies over the resource share libraries into a subdirectory.
Process:
-Once ccmake has been run "make" followed by "make install", the G-M-B tool is run
-pointing at the xtrkcad.bundle file.
+Once ccmake has been run "make" followed by "make install", the G-M-B tool is run.
"cd /gtk-bundle"
-"gtk-mac-bundler xtrkcad-bundle"
+"bash xtrkcad-bundler.sh -i <install directory containing xtrkcad binary> -v <version name>"
Output:
-G-M-B produces an .app bundle that is a self-contained executable
-from the binary xtrkcad in gtk-bundle/bin. It recursively rewires all the link pointers to be
+G-M-B produces a dmg bundle and zips it in the binary directory that is a self-contained executable
+from the binary xtrkcad. It recursively rewires all the link pointers to be
self-referential - that is, to point within the bundle.
It uses the xtrkcad.plist to set properties of the app, including the
icon from the .icns file. It sets the pre-run script to be xtrkcad-launcher.sh
Next Steps:
-Once this xtrkcad.app file has been created, it can be moved to wherever is desirable
-- such as the Application folder. The app does not have dependencies on GTK components
-from MACPorts like the binary does - it is standalone.
-
-To produce an installable image from the .app, the disk utility can be used to create
-a RW image .dmg that the .app can be copied into.
+Once this xtrkcad.dmg file has been created, it can be opened and the included package can be moved to wherever is desirable - such as the Application folder. The app does not have dependencies on GTK components
+from MACPorts like the binary does - it is standalone. It does, however, need XQuartz.
NOTE -
It is expected that as long as the GTK level used in build can run on the OSX level used
diff --git a/distribution/posix/CMakeLists.txt b/distribution/posix/CMakeLists.txt
index 7a0ee50..96636b0 100644
--- a/distribution/posix/CMakeLists.txt
+++ b/distribution/posix/CMakeLists.txt
@@ -1,23 +1,32 @@
# Setup packaging ...
-SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "XTrackCAD is a CAD program for designing model railroad layouts.")
-SET(CPACK_GENERATOR "RPM" "STGZ")
-SET(CPACK_SOURCE_GENERATOR "TGZ" "TBZ2" "ZIP")
-SET(CPACK_PACKAGE_RELEASE 1)
-SET(CPACK_RPM_PACKAGE_LICENSE "GPL")
-SET(CPACK_RPM_PACKAGE_GROUP "Applications/Engineering")
-SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}////xtrkcad-desc.txt")
-SET(CPACK_PACKAGE_FILE_NAME "xtrkcad-setup-${XTRKCAD_VERSION}-${CPACK_PACKAGE_RELEASE}.${CMAKE_SYSTEM_PROCESSOR}")
-
-SET(CPACK_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} )
-SET(CPACK_PACKAGING_INSTALL_PREFIX ${CPACK_INSTALL_PREFIX})
+set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "XTrackCAD is a CAD program for designing model railroad layouts.")
+set(CPACK_GENERATOR "RPM" "STGZ")
+set(CPACK_SOURCE_GENERATOR "TGZ" "TBZ2" "ZIP")
+set(CPACK_PACKAGE_RELEASE 1)
+set(CPACK_RPM_PACKAGE_LICENSE "GPL")
+set(CPACK_RPM_PACKAGE_GROUP "Applications/Engineering")
+set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}////xtrkcad-desc.txt")
+set(CPACK_PACKAGE_FILE_NAME "xtrkcad-setup-${XTRKCAD_VERSION}-${CPACK_PACKAGE_RELEASE}.${CMAKE_SYSTEM_PROCESSOR}")
+
+set(CPACK_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} )
+set(CPACK_PACKAGING_INSTALL_PREFIX ${CPACK_INSTALL_PREFIX})
# get the specific configuration for each packager
-SET(CPACK_PROJECT_CONFIG_FILE ${CMAKE_CURRENT_SOURCE_DIR}/package.txt)
+set(CPACK_PROJECT_CONFIG_FILE ${CMAKE_CURRENT_SOURCE_DIR}/package.txt)
+
+set(CPACK_PACKAGE_VENDOR "XTrackCAD Fork Project")
+
+# common dependencies for all Linux builds
+set(CPACK_RPM_PACKAGE_REQUIRES "glibc gtk2")
+
+# Add dependency to webkitgtk if configured
+if(NOT XTRKCAD_USE_BROWSER)
+ set(CPACK_RPM_PACKAGE_REQUIRES
+ "${CPACK_RPM_PACKAGE_REQUIRES} webkitgtk")
+endif()
-SET(CPACK_PACKAGE_VENDOR "XTrackCAD Fork Project")
-SET(CPACK_RPM_PACKAGE_REQUIRES "glibc gtk2 webkitgtk")
-# exclude these directories from the rpm
-SET(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION
+# exclude these directories from the rpm
+set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION
"/usr/local"
"/usr/local/share"
"/usr/local/bin"
@@ -29,7 +38,7 @@ SET(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION
"/usr/share/pixmaps"
)
-SET(CPACK_RPM_CHANGELOG_FILE "${CMAKE_CURRENT_SOURCE_DIR}////changelog.txt")
+set(CPACK_RPM_CHANGELOG_FILE "${CMAKE_CURRENT_SOURCE_DIR}////changelog.txt")
-INCLUDE(CPack)
+include(CPack)
diff --git a/distribution/posix/xtrkcad.spec b/distribution/posix/xtrkcad.spec
index f94976a..a7f6033 100644
--- a/distribution/posix/xtrkcad.spec
+++ b/distribution/posix/xtrkcad.spec
@@ -1,7 +1,7 @@
Summary: XTrkCad
Name: xtrkcad
-Version: 4.2.4a
-Release: 4%{?dist}
+Version: 4.3.0
+Release: 1%{?dist}
License: GPL
Group: Applications/Engineering
Vendor: XTrkCad Fork Project
@@ -37,6 +37,7 @@ rm -rf $RPM_BUILD_ROOT
%files
%defattr(-, root, root)
+%defattr(755, root, root) /usr/local/share/xtrkcad/xdg-open
%{_bindir}/xtrkcad
%{_datadir}
diff --git a/distribution/win32/nsis/install.nsh b/distribution/win32/nsis/install.nsh
index 9f14625..dc4ed80 100644
--- a/distribution/win32/nsis/install.nsh
+++ b/distribution/win32/nsis/install.nsh
@@ -2,8 +2,10 @@
; This file is included from the CMake generated NSIS file during install.
;
-CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\XTrkCad Help.lnk" "$INSTDIR\share\xtrkcad\xtrkcad.chm" "" "" 0
-CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\XTrkCad ReadMe.lnk" "notepad.exe" "$INSTDIR\share\xtrkcad\ReadMe.txt"
+CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\XTrackCAD Help.lnk" "$INSTDIR\share\xtrkcad\xtrkcad.chm" "" "" 0
+CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\XTrackCAD ReadMe.lnk" "notepad.exe" "$INSTDIR\share\xtrkcad\ReadMe.txt"
+CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\XTrackCAD CHANGELOG.lnk" "notepad.exe" "$INSTDIR\share\xtrkcad\CHANGELOG.txt"
+
;
; create file association