summaryrefslogtreecommitdiff
path: root/app/doc
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff-webhosting.net>2022-02-06 16:04:38 +0100
committerJörg Frings-Fürst <debian@jff-webhosting.net>2022-02-06 16:04:38 +0100
commitd0ca838c7ab297036b4a7c45351761a48fe05efd (patch)
treef0f3cc006e8157d6bd699bd644b7dd7b35387ac2 /app/doc
parentfd6639655b399a79fb72f494786a4f57da9c90e7 (diff)
parent5d2c2b27a6323e2666378b986129b2a7c2c39e5c (diff)
Update upstream source from tag 'upstream/5.2.2GA'
Update to upstream version '5.2.2GA' with Debian dir 9c80045d0b4f9e463647bc8af8c090a673df4132
Diffstat (limited to 'app/doc')
-rw-r--r--app/doc/addm.but206
-rw-r--r--app/doc/changem.but563
-rw-r--r--app/doc/drawm.but179
-rw-r--r--app/doc/editm.but74
-rw-r--r--app/doc/filem.but97
-rw-r--r--app/doc/hotbar.but10
-rw-r--r--app/doc/intro.but.in144
-rw-r--r--app/doc/managem.but34
-rw-r--r--app/doc/navigation.but14
-rw-r--r--app/doc/optionm.but22
-rw-r--r--app/doc/png.d/bangle.pngbin0 -> 4818 bytes
-rw-r--r--app/doc/png.d/bblock.pngbin713 -> 389 bytes
-rw-r--r--app/doc/png.d/bcircl1.pngbin324 -> 433 bytes
-rw-r--r--app/doc/png.d/bcircl2.pngbin340 -> 531 bytes
-rw-r--r--app/doc/png.d/bcircl3.pngbin328 -> 520 bytes
-rw-r--r--app/doc/png.d/bcircle.pngbin370 -> 475 bytes
-rw-r--r--app/doc/png.d/bconnect.pngbin307 -> 415 bytes
-rw-r--r--app/doc/png.d/bcontrol.pngbin619 -> 303 bytes
-rw-r--r--app/doc/png.d/bcornu.pngbin4346 -> 4358 bytes
-rw-r--r--app/doc/png.d/bcurve.pngbin386 -> 355 bytes
-rw-r--r--app/doc/png.d/bcurve1.pngbin336 -> 304 bytes
-rw-r--r--app/doc/png.d/bcurve2.pngbin354 -> 302 bytes
-rw-r--r--app/doc/png.d/bcurve3.pngbin342 -> 298 bytes
-rw-r--r--app/doc/png.d/bcurve4.pngbin355 -> 303 bytes
-rw-r--r--app/doc/png.d/bdelete.pngbin603 -> 285 bytes
-rw-r--r--app/doc/png.d/bdescrib.pngbin292 -> 273 bytes
-rw-r--r--app/doc/png.d/bdraw.pngbin689 -> 936 bytes
-rw-r--r--app/doc/png.d/beasement.pngbin689 -> 399 bytes
-rw-r--r--app/doc/png.d/belev.pngbin296 -> 268 bytes
-rw-r--r--app/doc/png.d/bfile.pngbin681 -> 757 bytes
-rw-r--r--app/doc/png.d/bflip.pngbin267 -> 296 bytes
-rw-r--r--app/doc/png.d/bgsnap.pngbin372 -> 378 bytes
-rw-r--r--app/doc/png.d/bgundo.pngbin303 -> 310 bytes
-rw-r--r--app/doc/png.d/bgzoom.pngbin511 -> 521 bytes
-rw-r--r--app/doc/png.d/bhelix.pngbin237 -> 262 bytes
-rw-r--r--app/doc/png.d/bhndldto.pngbin285 -> 275 bytes
-rw-r--r--app/doc/png.d/bitmap.pngbin7090 -> 7777 bytes
-rw-r--r--app/doc/png.d/bmap.pngbin353 -> 357 bytes
-rw-r--r--app/doc/png.d/bmcircle.pngbin1831 -> 1225 bytes
-rw-r--r--app/doc/png.d/bmcurved.pngbin2283 -> 2246 bytes
-rw-r--r--app/doc/png.d/bmenu.pngbin485 -> 221 bytes
-rw-r--r--app/doc/png.d/bmodify.pngbin328 -> 296 bytes
-rw-r--r--app/doc/png.d/bmove.pngbin319 -> 296 bytes
-rw-r--r--app/doc/png.d/bmovedes.pngbin377 -> 311 bytes
-rw-r--r--app/doc/png.d/bnewcar.pngbin367 -> 305 bytes
-rw-r--r--app/doc/png.d/bnote.pngbin600 -> 684 bytes
-rw-r--r--app/doc/png.d/brotate.pngbin345 -> 291 bytes
-rw-r--r--app/doc/png.d/bruler.pngbin255 -> 250 bytes
-rw-r--r--app/doc/png.d/bselect.pngbin282 -> 273 bytes
-rw-r--r--app/doc/png.d/bsensor.pngbin563 -> 281 bytes
-rw-r--r--app/doc/png.d/bsignal.pngbin581 -> 256 bytes
-rw-r--r--app/doc/png.d/bsplit.pngbin286 -> 326 bytes
-rw-r--r--app/doc/png.d/bstraigh.pngbin285 -> 329 bytes
-rw-r--r--app/doc/png.d/bstruct.pngbin289 -> 338 bytes
-rw-r--r--app/doc/png.d/bswitchmotor.pngbin679 -> 316 bytes
-rw-r--r--app/doc/png.d/btext.pngbin241 -> 374 bytes
-rw-r--r--app/doc/png.d/btop_bottom.pngbin705 -> 375 bytes
-rw-r--r--app/doc/png.d/btrain.pngbin273 -> 261 bytes
-rw-r--r--app/doc/png.d/btunnel.pngbin245 -> 428 bytes
-rw-r--r--app/doc/png.d/bturnout.pngbin278 -> 456 bytes
-rw-r--r--app/doc/png.d/bturntbl.pngbin282 -> 357 bytes
-rw-r--r--app/doc/png.d/cmdopt.pngbin7407 -> 20629 bytes
-rw-r--r--app/doc/png.d/colorw.pngbin8380 -> 4684 bytes
-rw-r--r--app/doc/png.d/convertto.pngbin4169 -> 3940 bytes
-rw-r--r--app/doc/png.d/dcircle3.pngbin296 -> 496 bytes
-rw-r--r--app/doc/png.d/displayopt.pngbin86476 -> 80557 bytes
-rw-r--r--app/doc/png.d/dlayers.pngbin8594 -> 89877 bytes
-rw-r--r--app/doc/png.d/dprmfile.pngbin13308 -> 11394 bytes
-rw-r--r--app/doc/png.d/layout.pngbin72958 -> 39585 bytes
-rw-r--r--app/doc/png.d/madd.pngbin13693 -> 3174 bytes
-rw-r--r--app/doc/png.d/maddcircle.pngbin0 -> 1812 bytes
-rw-r--r--app/doc/png.d/maddcontrol.pngbin0 -> 1355 bytes
-rw-r--r--app/doc/png.d/maddcurve.pngbin0 -> 2394 bytes
-rw-r--r--app/doc/png.d/maddparallel.pngbin0 -> 1247 bytes
-rw-r--r--app/doc/png.d/mchange.pngbin23214 -> 5142 bytes
-rw-r--r--app/doc/png.d/mconvert.pngbin0 -> 1125 bytes
-rw-r--r--app/doc/png.d/mdraw.pngbin10174 -> 2053 bytes
-rw-r--r--app/doc/png.d/mdrawcircles.pngbin2758 -> 1934 bytes
-rw-r--r--app/doc/png.d/mdrawcurve.pngbin2570 -> 2032 bytes
-rw-r--r--app/doc/png.d/mdrawmeasure.pngbin0 -> 588 bytes
-rw-r--r--app/doc/png.d/mdrawnotes.pngbin0 -> 881 bytes
-rw-r--r--app/doc/png.d/mdrawshapes.pngbin2181 -> 1853 bytes
-rw-r--r--app/doc/png.d/mdrawstraight.pngbin2233 -> 1818 bytes
-rw-r--r--app/doc/png.d/medit.pngbin7035 -> 5981 bytes
-rw-r--r--app/doc/png.d/mfile.pngbin6016 -> 7770 bytes
-rw-r--r--app/doc/png.d/mhelp.pngbin2251 -> 2240 bytes
-rw-r--r--app/doc/png.d/mhelpdemos.pngbin4031 -> 3407 bytes
-rw-r--r--app/doc/png.d/mjoin.pngbin0 -> 978 bytes
-rw-r--r--app/doc/png.d/mmacro.pngbin1203 -> 941 bytes
-rw-r--r--app/doc/png.d/mmanage.pngbin8632 -> 4331 bytes
-rw-r--r--app/doc/png.d/mmanageturnoutdesign.pngbin3742 -> 3271 bytes
-rw-r--r--app/doc/png.d/moptions.pngbin3378 -> 2285 bytes
-rw-r--r--app/doc/png.d/mselect.pngbin4055 -> 0 bytes
-rw-r--r--app/doc/png.d/mselectcmd.pngbin0 -> 78701 bytes
-rw-r--r--app/doc/png.d/mselectcontext.pngbin0 -> 47076 bytes
-rw-r--r--app/doc/png.d/mselected.pngbin5004 -> 0 bytes
-rw-r--r--app/doc/png.d/mselectedcontext.pngbin0 -> 68960 bytes
-rw-r--r--app/doc/png.d/msplit.pngbin0 -> 1399 bytes
-rw-r--r--app/doc/png.d/mview.pngbin15591 -> 4108 bytes
-rw-r--r--app/doc/png.d/paramsearch.pngbin14516 -> 124132 bytes
-rw-r--r--app/doc/png.d/pref.pngbin12308 -> 46567 bytes
-rw-r--r--app/doc/png.d/statustext.pngbin1681 -> 12102 bytes
-rw-r--r--app/doc/png.d/sticky.pngbin12075 -> 8324 bytes
-rw-r--r--app/doc/view_winm.but40
-rw-r--r--app/doc/warranty.but74
105 files changed, 1051 insertions, 406 deletions
diff --git a/app/doc/addm.but b/app/doc/addm.but
index f2caf26..3ab07ec 100644
--- a/app/doc/addm.but
+++ b/app/doc/addm.but
@@ -16,91 +16,107 @@
The \f{Add Menu} has all the actions related to adding track pieces to the layout.
-\dd \f{Circle Track} - place a circle of track by selecting radius, tangent and or center (\K{cmdCircle}).
+\dd \i\f{Straight Track} \c{Ctrl+G} - lay straight track pieces of arbitrary lengths
\u000
-\dd \f{Curved Track} - lay curved track pieces using different modes for selecting start and endpoints and radius (\K{cmdCurve}).
+\dd \i\f{Curve Track} - lay curved track pieces using different modes for selecting start and endpoints and radius (\K{cmdCurve}).
+
+\dd \G{png.d/maddcurve.png}
\u000
-\dd \f{Hand-laid Turnout} - lay a turnout in place on the layout. (\K{cmdHandLaidTurnout})
+\dd \i\f{Circle Track} \I{Track, Circle} - place a circle of track by selecting radius, tangent and or center (\K{cmdCircle}).
+
+\dd \G{png.d/maddcircle.png}
\u000
-\dd \f{Helix} - Add a helix. (\K{cmdHelix})
+\dd \i\f{Parallel} - \I{Parallel Track} \I{Track, Parallel} \I{Parallel Line} \I{Line, Parallel}
+create parallel track or line to existing flex-track, straight or curved track. (\K{cmdParallel})
+
+\dd \G{png.d/maddparallel.png}
\u000
-\dd \f{Parallel} - create parallel track or line to existing flex-track, straight or curved track. (\K{cmdParallel})
+\dd \i\f{Predefined Track} \I{Track, Predefined} \c{Ctrl+T} - select a turnout or a piece of fixed track and place on layout.
\u000
-\dd \f{Straight Track} - lay straight track pieces of arbitrary lengths
+\dd \i\f{Hand-laid Turnout} \I{Turnout, Hand-laid} \c{Ctrl+Shift+I} - lay a turnout in place on the layout. (\K{cmdHandLaidTurnout})
\u000
-\dd \f{Structure} - Add a predefined structure to the layout.
+\dd \i\f{Structure} \c{Ctrl+Shift+C} - Add a predefined structure to the layout.
\u000
-\dd \f{Predefined Track} - select a turnout or a piece of fixed track and place on layout.
+\dd \i\f{Helix} \c{Ctrl+Shift+H} - Add a helix. (\K{cmdHelix})
\u000
-\dd \f{Custom Turntable} - Place a turntable. (\K{cmdTurntable})
+\dd \i\f{Custom Turntable} \I{Turntable, Custom} \c{Ctrl+Shift+N} - Place a turntable. (\K{cmdTurntable})
\u000
-\dd \f{Block} - Create a block. (\K{cmdBlock})
+\dd \i\f{Control Element} - Create a control element.
\u000
-\dd \f{Switchmotor} - Create a switchmotor. (\K{cmdSwitchmotor})
+\dd \i\f{Block} \I{Control Element, Block} - Create a block. (\K{cmdBlock})
\u000
-\dd \f{Signal} - Create a signal. (\K{cmdSignal})
+\dd \i\f{Switchmotor} \I{Control Element, Switchmotor} - Create a switchmotor. (\K{cmdSwitchmotor})
\u000
-\dd \f{Control} - Create a control. (\K{cmdControl})
+\dd \i\f{Signal} \I{Control Element, Signal} - Create a signal. (\K{cmdSignal})
\u000
-\dd \f{Sensor} - Create a sensor. (\K{cmdSensor})
+\dd \i\f{Control} \I{Control Element, Control} - Create a control. (\K{cmdControl})
+
+\u000
+
+\dd \i\f{Sensor} \I{Control Element, Sensor} - Create a sensor. (\K{cmdSensor})
+
+\rule
\S{cmdCircle} Circle Track
-\G{png.d/bcircle.png}
+\G{png.d/maddcircle.png}
-A circle track is a special form of a curved track that extends 360\u00B0 and has no endpoints. The three methods (with their Shortcut keys) used to create a Circle Track are:
+A circle track \I{Circle Track} \I{Track, Circle} is a special form of a curved track that extends 360\u00B0 and has no endpoints.
+The drop down menu, which allows selection of the Circle Track creation method, is invoked from the down arrow button located on the right side the Circle track button.
-\u000
+\dd \G{png.d/bcircle.png}
-\dd (\K{cmdCircleFixedRadius}). Use the Fixed Radius specified on the \e{Circle Radius} control displayed on the Status Bar (\K{mainW}).
-\c{Left-Drag} the Circle track into position.
+\dd \G{png.d/bmcircle.png}
-\u000
+\dd \e{Circle Track Button Menu}
-\dd (\K{cmdCircleTangent}). \c{Left-Drag} from tangent point (Edge) of the Circle track to the Center.
+The three methods (with their Icons and Shortcut keys) used to create a Circle Track are:
\u000
-\dd (\K{cmdCircleCenter}). \c{Left-Drag} from the Center of the Circle track to the edge.
+\dd \G{png.d/bcircl1.png} (\K{cmdCircleFixedRadius}) \c{Control+8} - Use the Fixed Radius specified on the \i\e{Circle Radius}
+control displayed on the Status Bar (\K{mainW}). \c{Left-Drag} the Circle track into position.
\u000
-A drop down menu, which allows selection of the Circle Track creation method, is invoked from the down arrow button (\G{png.d/bmenu.png}) located on the right side the Circle track button.
-Dependent upon previous selection, the Circle Track button will look like \G{png.d/bcircl1.png}, \G{png.d/bcircl2.png} or \G{png.d/bcircl3.png}.
+\dd \G{png.d/bcircl2.png} (\K{cmdCircleTangent}) \c{Control+9} - \c{Left-Drag} from tangent point (Edge) of the Circle track to the Center.
-\dd \G{png.d/bmcircle.png}
+\u000
-\dd \e{Circle Track Button Menu}
+\dd \G{png.d/bcircl3.png} (\K{cmdCircleCenter}) \c{Control+0} - \c{Left-Drag} from the Center of the Circle track to the edge.
+
+\u000
If Snap Grid (\K{cmdGrid}) is enabled then circle centers will be constrained to the grid.
-Circle tracks are useful for fitting curves into corners and other tight places. They're also handy when establishing an initial layout and finding out "what will fit".
+Circle tracks are useful for fitting curves into corners and other tight places. They're also handy when establishing an
+initial layout and finding out "what will fit".
You can join to and from circles, after which they become curved tracks.
@@ -110,8 +126,8 @@ You can join to and from circles, after which they become curved tracks.
\G{png.d/bcircl1.png}
-(\c{Control-8}) Use the Fixed Radius specified on the \e{Circle Radius} control displayed on the Status Bar (\K{mainW}).
-\c{Left-Drag} the Circle track into position.
+(\c{Ctrl+8}) Use the Fixed Radius specified on the \i\e{Circle Radius} control displayed on the Status Bar (\K{mainW}).
+\c{Left-Drag} the Circle track into position.
\rule
@@ -119,7 +135,7 @@ You can join to and from circles, after which they become curved tracks.
\G{png.d/bcircl2.png}
-(\c{Control-9}) \c{Left-Drag} from tangent point (Edge) of the Circle track to the Center.
+(\c{Ctrl+9}) \c{Left-Drag} from tangent point (Edge) of the Circle track to the Center.
\rule
@@ -127,142 +143,164 @@ You can join to and from circles, after which they become curved tracks.
\G{png.d/bcircl3.png}
-(\c{Control-0}) \c{Left-Drag} from the Center of the Circle track to the edge.
+(\c{Ctrl+0}) \c{Left-Drag} from the Center of the Circle track to the edge.
\rule
\S{cmdCurve} Curved Track
-\G{png.d/bcurve.png}
+\G{png.d/maddcurve.png}
+
+Creating a curve is a two step operation. You will select a point and then \c{Left-Drag} to specify the control point depending on the drawing method.
-Creating a curve is a two step operation.
+A drop-down menu, which allows selection of the Curved Track creation method, is invoked from the down arrow button
+located on the right side the Curved track button.
-The five methods (with their Shortcut keys) used to create a Curved Track are:
+\dd \G{png.d/bcurve.png}
+
+\dd \G{png.d/bmcurved.png}
+
+\dd \e{Curved Track Button Menu}
+
+The six methods (with their Shortcut keys) used to create a Curved Track are:
\dd
-\dd \K{cmdCurveEndPt}. Drag out the end and then set its radius by dragging the endpoint.
+\dd \G{png.d/bcurve1.png} \K{cmdCurveEndPt} \c{Control+4} - \I{End Point, Curved Track} \I{Curved Track, End Point}
+Drag out the end and then set its radius by dragging the endpoint.
\u000
-\dd \K{cmdCurveTangent}. Drag from the an endpoint to the center and then drag the second enpoint around that center.
+\dd \G{png.d/bcurve2.png} \K{cmdCurveTangent} \c{Control+5} - \I{Tangent, Curved Track} \I{Curved Track, Tangent}
+Drag from the an endpoint to the center and then drag the second enpoint around that center.
\u000
-\dd \K{cmdCurveCenter}. Drag from the Center of the Curved track to one of the endpoints. Position the second endpoint around the center.
+\dd \G{png.d/bcurve3.png} \K{cmdCurveCenter} \c{Control+6} - \I{Center, Curved Track} \I{Curved Track, Center}
+Drag from the Center of the Curved track to one of the endpoints. Position the second endpoint around the center.
\u000
-\dd \K{cmdCurveChord}. Drag from one endpoint to the other endpoint to form the Chord of the Curve. Drag the arc out to form the Curve.
+\dd \G{png.d/bcurve4.png} \K{cmdCurveChord} \c{Control+7} - \I{Chord, Curved Track} \I{Curved Track, Chord}
+Drag from one endpoint to the other endpoint to form the Chord of the Curve. Drag the arc out to form the Curve.
\u000
-\dd \K{cmdBezier}. Construct a Bezier by placing its four control points.
+\dd \G{png.d/bezier.png} \K{cmdBezier} - Construct a \i{Bezier Track} \I{Track, Bezier} by placing its four control points.
\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}, \G{png.d/bcurve4.png}, \G{png.d/bezier.png} or \G{png.d/bcornu.png}.
+\dd \G{png.d/bcornu.png} \K{cmdCornu} - Construct a \i{Cornu Track} \I{Track, Cornu} curve by selecting the end points and dragging to set the curve values.
-\dd \G{png.d/bmcurved.png}
+\u000
-\dd \e{Curved Track Button Menu}
+For the first four curve mthods, two Red arrow heads will be drawn after the first step to indicate where you can \c{Left-Drag} to complete the second step.
-For all but the Bezier Curve, two Red arrow heads will be drawn after the first step to indicate where you can \c{Left-Drag} to complete the second step.
+A straight track will be created if the second endpoint is lined up with the first endpoint except for Bezier and Cornu tracks.
-A straight track will be created if the second endpoint is lined up with the first endpoint except for Bezier tracks.
+The radius of the curve is designed to be in 1/8" increments unless the \e{desired radius} field is set non-zero and the radius drawn is close to that value, in which case the radius will snap to that value.
If the Snap Grid (\K{cmdGrid}) is enabled then the endpoints will be constrained to the grid if they are not snapped to another object. \c{Shift} ensures that other objects will be ignored.
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.
+For Beziers and Cornus, 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 \c{Left-Drag}ing out extra track from an open end-point.
+\f{Note:} You can also create Straight and Curved tracks using \k{cmdModify} by \c{Left-Drag}ging out extra track from an open end-point.
\rule
\S2{cmdCurveEndPt} Curved Track from End Point
-\G{png.d/bcurve1.png}
+\G{png.d/bcurve1.png}
+
+(\c{Ctrl+4}) Drag from one endpoint in the direction of the Curve at that point and release. \c{Left-Drag} the red arrows to position the second endpoint.
-(\c{Control-4}) Drag from one endpoint in the direction of the Curve at that point and release. \c{Left-Drag} the red arrows to position the second endpoint.
+While the first endpoint is being placed, and \f{MagneticSnap} (\K{cmdMagneticSnap}) is enabled, unless \e{Alt} is held,
+if the cursor is on a track, the new curve end will "Snap" to the nearest open track endpoint and you will drag out the second end in aligned to that track,
+once you are dragging the second end it will be restricted to an arc that has the same end angle as the first endpoint.
+After a track is competed, the new track will be connected to this first track.
+This will also happen with \f{MagneticSnap} set off - if \e{Alt} is held.
-While the first endpoint is being placed, and \f{MagneticSnap} is enabled, unless \e{Alt} is held, if the cursor is on a track, the new curve end will "Snap" to the nearest open track endpoint and you will drag out the second end in aligned to that track, once you are dragging the second end it will be restricted to an arc that has the same end angle as the first endpoint. After a track is competed, the new track will be connected to this first track.
-This will also happen with \f{MagneticSnap} if \e{Alt} is held.
+If Magnetic Snap does not find a end, if \f{SnapGrid} is enabled, the ends will snap to the nearest grid point unless \f{Alt} is held.
\rule
\S2{cmdCurveTangent} Curved track from Tangent
-\G{png.d/bcurve2.png}
+\G{png.d/bcurve2.png}
-(\c{Control-5}) Drag from one of the endpoints (which will behave like the first point in "CurvedTrack From End" to the Center of the Curved track and release.
+(\c{Ctrl+5}) Drag from one of the endpoints (which will behave like the first point in "CurvedTrack From End" to the Center of the Curved track and release.
\c{Left-Drag} on the arrows to position the second endpoint.
-While the endpoints are being placed, if \f{MagneticSnap} is enabled, unless \c{Alt} is held down, they will "Snap" to an open track endpoint of the tracks underneath the cursor and you can only drag out the control point aligned to the end of those tracks.
+While the endpoints are being placed, if \f{MagneticSnap} (\K{cmdMagneticSnap}) is enabled, unless \c{Alt} is held down, they will "Snap" to an open track endpoint of the tracks underneath the cursor and you can only drag out the control point aligned to the end of those tracks.
After the new track is completed, it will be connected to these existing track.
If \f{MagneticSnap} is disabled, the snap will only happen if \e{Alt} is held.
+If Magnetic Snap does not find a end, if \f{SnapGrid} is enabled, the end will snap to the nearest grid point unless \f{Alt} is held.
\rule
\S2{cmdCurveCenter} Curved Track From Center
-\G{png.d/bcurve3.png}
+\G{png.d/bcurve3.png}
-(\c{Control-6}) Drag from the Center of the Curved track to one of the endpoints and release. \c{Left-Drag} to position the second endpoint.
+(\c{Ctrl+6}) Drag from the Center of the Curved track to one of the endpoints and release. \c{Left-Drag} to position the second endpoint.
-While the endpoints are being placed, if \f{MagneticSnap} is enabled, unless \c{Alt} is held down, they will "Snap" to an open track endpoint of the tracks underneath the cursor and you can only drag out the control point aligned to the end of those tracks.
+While the endpoints are being placed, if \f{MagneticSnap} (\K{cmdMagneticSnap}) is enabled, unless \c{Alt} is held down, they will "Snap" to an open track endpoint of the tracks underneath the cursor and you can only drag out the control point aligned to the end of those tracks.
After the new track is completed, it will be connected to these existing track.
If \f{MagneticSnap} is disabled, the snap will only happen if \e{Alt} is held.
+If Magnetic Snap does not find a end, if \f{SnapGrid} is enabled, the end will snap to the nearest grid point unless \f{Alt} is held.
\rule
-\S2{cmdCurveChord} Curved Track from Chord
+\S2{cmdCurveChord} Curved Track from Chord
-\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. \c{Left-Click} on the center of the track and Drag to form the Curve.
+\G{png.d/bcurve4.png} (\c{Ctrl+7}) Drag from one endpoint to the other endpoint to form the Chord of the Curve and release. \c{Left-Click} on the center of the track and Drag to form the Curve.
The first end point acts like "CurvedTrack From End". If an exitsing track end is selected, the Chord will only move along line orthogonal to the track.
-While the endpoints are being placed, if \f{MagneticSnap} is enabled, unless \c{Alt} is held down, they will "Snap" to an open track endpoint of the tracks underneath the cursor and you can only drag out the control point aligned to the end of those tracks.
+While the endpoints are being placed, if \f{MagneticSnap} (\K{cmdMagneticSnap}) is enabled, unless \c{Alt} is held down, they will "Snap" to an open track endpoint of the tracks underneath the cursor and you can only drag out the control point aligned to the end of those tracks.
After the new track is completed, it will be connected to these existing track.
If \f{MagneticSnap} is disabled, the snap will only happen if \e{Alt} is held.
+If Magnetic Snap does not find a end, if \f{SnapGrid} is enabled, the end will snap to the nearest grid point unless \f{Alt} is held.
\rule
\S2{cmdBezier} Curved Bezier Track
-\G{png.d/bezier.png}
+\G{png.d/bezier.png}
-\c{Left-Click} to place one endpoint and \c{Left-Drag} out the first control point and release, \c{Left-Click} to place the second Endpoint and \c{Left-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.
+\c{Left-Click} to place one endpoint and \c{Left-Drag} out the first control point and release, \c{Left-Click} to place the second Endpoint and \c{Left-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 \c{Enter|, or Reject it with c\{Esc}.
-While the endpoints are being placed, if \f{MagneticSnap} is enabled, unless \c{Alt} is held down, they will "Snap" to an open track endpoint of the tracks underneath the cursor and you can only drag out the control point aligned to the end of those tracks.
+While the endpoints are being placed, if \f{MagneticSnap} (\K{cmdMagneticSnap}) is enabled, unless \c{Alt} is held down, they will "Snap" to an open track endpoint of the tracks underneath the cursor and you can only drag out the control point aligned to the end of those tracks.
After the new track is completed, it will be connected to these existing track.
If \f{MagneticSnap} is disabled, the snap will only happen if \e{Alt} is held.
+If Magnetic Snap does not find a end, if \f{SnapGrid} is enabled, the end will snap to the nearest grid point unless \f{Alt} is held.
\rule
-\S{cmdCornu} Create Cornu Track
+\S2{cmdCornu} Create Cornu Track
\dd \G{png.d/bcornu.png} \c{Left-Click} to place each endpoint on an open track end or just on the layout.
-During the move to the click, if \f{MagneticSnap} is enabled, an anchor will show when the cursor is near an open end point. This can be inhibited with \e{Alt}.
+During the move to the click, if \f{MagneticSnap} (\K{cmdMagneticSnap}) is enabled, an anchor will show when the cursor is near an open end point. This can be inhibited with \e{Alt}.
If \f{MagneticSnap} is disabled this will only happen if \e{Alt} is held.
+If Magnetic Snap does not find a end, if \f{SnapGrid} is enabled, the end will snap to the nearest grid point unless \f{Alt} is held.
-\c{Left-Drag} if the endpoint not on an existing track drags out the end angle of the new track. This is shown by the Cornu endanchor.
+\c{Left-Drag} if the endpoint not on an existing track drags out the end angle of the new track. This is shown by the Cornu endanchor.
\G{png.d/cornuendanchor.png}
-The anchor is only drawn for Cornu ends that are not joined to existing tracks and it shows the position, direction and radius of the track, and has anchors for altering these properties.
-When the Cornu is joined to a track, it uses the properties of the end of that track instead.
+The anchor is only drawn for Cornu ends that are not joined to existing tracks and it shows the position, direction and radius of the track, and has anchors for altering these properties.
+When the Cornu is joined to a track, it uses the properties of the end of that track instead.
Anchor point handles are drawn outside the end of the Cornu track to allow track-pins to be edited on the track itself.
-\c{Left-Click} to place the second Endpoint either on a track endpoint or not. \c{Left-Drag} sets the second end angle like the first for unconnected end-points.
+\c{Left-Click} to place the second Endpoint either on a track endpoint or not. \c{Left-Drag} sets the second end angle like the first for unconnected end-points.
Complete the Curve by pressing \c{Enter}, or Reject it with \c{Esc}.
The radius and angle of the selected open Cornu end can also be set with text entry boxes in the Status Bar.
-When either endpoint is being moved it will "Snap" to an open track endpoint of the tracks underneath the cursor unless \c{Shift} is held.
+When either endpoint is being moved it will "Snap" to an open track endpoint of the tracks underneath the cursor unless \c{Shift} is held.
You can then only move the endpoint along that track if it is splitable, or in an extension of it. After the new track is completed, it will be connected to these existing tracks.
Cornu Track Pins are further explained in \K{joinCornu} - they constrain the Cornu curve to smoothly pass through thier position as well as satisfying the end conditions. You can place them by clicking on the Cornu and select, \e{Drag} to move them around or hit \e{Delete} to remove them.
@@ -311,6 +349,8 @@ In the case where different parameters could be affected (for instance changing
Changing \e{Vertical Separation} affects \e{Turns} which must be an integer value (no fractions), and this in turn affects the \e{Vertical Separation}. When you set \e{Vertical Separation} you are specifying the minimum separation which is adjusted upwards to the actual value.
+The separation is rail-head to rail-head and you need to ensure this is enough to provide clearance when track, sleepers, ballast, baseboard/benchwork is included.
+
Note: only the \e{Radius} and \e{Turns} are used when creating the helix. After joining the helix to other tracks, you will want to establish the heights of the endpoints at each end of the helix. You can use the Elevation (\K{cmdElevation}) command to do this.
A helix is placed the same way as a Circle Track (\K{cmdCircle}) with the addition that you specify the number of turns as well the as the radius of the helix. Then the helix is dragged into position on the layout.
@@ -321,15 +361,15 @@ A label for the helix is drawn at it's the center. If the elevations are set (e
\rule
+\dd \G{png.d/maddparallel.png}
+
\S{cmdParallel} Parallel Track or Line
You can pick between two Parallel Commands:
-\dd
-
\u000
-\dd \K{cmdParallelTrack}. You can create a new track parallel to any straight, curved, bezier, cornu or easement track.
+\dd \K{cmdParallelTrack}. You can create a new track parallel to any straight, curved, bezier, cornu or easement track.
\u000
@@ -339,14 +379,14 @@ You can pick between two Parallel Commands:
\S2{cmdParallelTrack} Parallel Track
-\G{png.d/bparallel.png}
+\G{png.d/bparallel.png}
Select the Track you want to parallel with \c{Left-Click}, and the new parallel track will appear beside it. You control which side the new track will be on by \c{Left-Drag}ging the cursor from one side to the other of the selected track before releasing it.
\G{png.d/statusbarparallel.png}
The \f{Parallel Separation} control (Visible in the Status Bar) displays the intended separation between parallel tracks/line. This value can be changed before selecting a track. The value must be greater than 0.0 if the gauges are equal.
-
+
\b If the gauges are equal, a value of 0.0 means that the rail of the second track is overlaid on the first to simulate dual guage track. The railside that the new track "shares" is set by which side of center the cursor is on when released.
The new track will have NoTies set on.
@@ -360,7 +400,7 @@ This command is very useful for creating sidings and yards as well as dual track
\b No parallel to a turnouts or a non-straight piece of sectional track is created.
-\b It is possible to create tracks that abut (the endpoints are very close and aligned).
+\b It is possible to create tracks that abut (the endpoints are very close and aligned).
These endpoints will be automatically connected.
\rule
@@ -494,12 +534,12 @@ could be code snippets or I/O device address information, etc.
\G{png.d/bsignal.png}
-A signal is created by selecting \f{Create Signal} from either the Add menu \K{cmdAdd} or
-from the hotbar. Use the mouse to select a location (left button) and then
-draging (left button down) the signal to set its orientation. Once the left
-button is released, a Create/Edit Signal dialog box is displayed, and you can
-fill in the signal's properties: name, fine tune the location and orientation,
-number of heads, and the aspects.
+A signal is created by selecting \f{Create Signal} from either the Add menu
+\K{cmdAdd} or from the hotbar. Use the mouse to select a location (left button)
+and then dragging (left button down) the signal to set its orientation. Once
+the left button is released, a Create/Edit Signal dialog box is displayed, and
+you can fill in the signal's properties: name, fine tune the location and
+orientation, number of heads, and the aspects.
\G{png.d/signal.png}
diff --git a/app/doc/changem.but b/app/doc/changem.but
index 97238fb..0e1fc8a 100644
--- a/app/doc/changem.but
+++ b/app/doc/changem.but
@@ -12,85 +12,90 @@
The \f{Change Menu} has all functions related to modifying objects that exist on the layout drawing.
-\dd \f{Change Scale} - change model scale and / or gauge of layout design. (\K{cmdRescale})
+\dd \i\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{Clear Elevations} - remove elevation parameters from selected track(s).
+\dd \i\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
+\rule
-\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}).
+\dd \i\f{Move} - move selected object(s). (\K{cmdMove}).
\u000
-\dd \f{Convert Tracks} - chnages fixed tracks (Straight, Curve, Joint, Bezier) into a Smooth Cornu or vice versa. (\K{cmdConvert}).
+\dd \i\f{Rotate} - rotate selected object(s). (\K{cmdRotate}).
\u000
-\dd \f{Elevation} - define an elevation at specified track location (\K{cmdElevation}).
+\dd \i\f{Flip} - turn selected object(s) over or around. (\K{cmdFlip}).
\u000
-\dd \f{Flip} - turn selected object(s) over or around. (\K{cmdFlip}).
+\dd \i\f{Loosen Tracks} \I{Track, Loosen} - this command reverses the effect of Connect Two Tracks as applied to sectional track.
\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. (\K{cmdJoin}).
+\dd \i\f{Modify} - modify an existing track, or lines. (\K{cmdModify}).
\u000
-\dd \f{Modify} - modify an existing track, or lines. (\K{cmdModify}).
+\dd \G{png.d/mjoin.png}
+
+\dd \f{Join} \I{Join Lines} \I{Join Track} \I{Track, Join} - connect two separate pieces of track or two lines. 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{Move} - move selected object(s). (\K{cmdMove}).
+\dd \i\f{Connect Two Tracks} \I{Track, Connect} - 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
-\dd \f{Move Description} - move the endpoint description of a track piece to another location. (\K{cmdMoveLabel}).
+\dd \G{png.d/msplit.png}
-\u000
+\dd \i\f{Split} - the \f{Split} commands are used to divide up tracks (\K{cmdSplitTrack}) or split draw objects (\K{cmdSplitDraw}) or use a second Object to Trim (\K{cmdTrimDraw}).
+The (\K{cmdSplitTrack}) command can be used in one of two ways;
-\dd \f{Pan/Zoom} - move or resize the viewport using the mouse.
+\lcont{
\u000
-\dd \f{Profile} - display the elevation profile of a definable stretch of track (\K{cmdProfile}).
+\b split a section of flex-track into two connected pieces at the point where a \e{Left-Click} is invoked or;
-\u000
+\b disconnect turnouts or sectional track pieces at their point of connection.
-\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 \i\f{Move Description} - move the endpoint description of a track piece to another location. (\K{cmdMoveLabel}).
-\dd \f{Raise/Lower Elevations} - raise or lower elevation of selected tracks. (\K{cmdRaiseElev}).
+\rule
+
+\dd \i\f{Raise/Lower Elevations} - raise or lower elevation of selected tracks. (\K{cmdRaiseElev}).
\u000
-\dd \f{Rotate} - rotate selected object(s). (\K{cmdRotate}).
+\dd \i\f{Elevation} - define an elevation at specified track location (\K{cmdElevation}).
\u000
-\dd \f{Recompute Elevations} - performs a global re-computation of dynamic elevations. It should not be necessary to issue this command as elevations are recomputed as required.
+\dd \i\f{Profile} - display the elevation profile of a definable stretch of track (\K{cmdProfile}).
\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}). (\K{cmdSelect}).
+\dd \i\f{Clear Elevations} - remove elevation parameters from selected track(s).
\u000
-\dd \f{Split Track} - the \f{Split Track} (\K{cmdSplitTrack}) command can be used in one of two ways;
+\dd \i\f{Recompute Elevations} - performs a global re-computation of dynamic elevations. It should not be necessary to issue this command as elevations are recomputed as required.
-\lcont{
+\rule
-\u000
+\dd \i\f{Change Scale} - change model scale and/or gauge of layout design. (\K{cmdRescale})
-\b split a section of flex-track into two connected pieces at the point where a \e{Left-Click} is invoked or;
+\rule
-\b disconnect turnouts or sectional track pieces at their point of connection.
+\dd \G{png.d/mconvert.png}
-}
+\dd \i\f{Convert} - chnages fixed tracks (Straight, Curve, Joint, Bezier) into a Smooth Cornu or vice versa. (\K{cmdConvert}).
\rule
@@ -113,7 +118,6 @@ If resizing by modeling scale then track dimensions, e.g., lengths and radii, wi
\rule
-
\S{clrElev} Clear Elevations
The \f{Clear Elevations} command is used to remove elevation points from selected track on the layout.
@@ -122,12 +126,11 @@ Using the \f{Select} command, select the track that is to have its elevation set
\rule
-
\S{cmdConnect} Connect Tracks
\G{png.d/bconnect.png}
-This command is frequently used with \e{Sectional Track}. But it can be useful to reattach ordinary track which has become disconected or split.
+This command is frequently used with \i\e{Sectional Track}. But it can be useful to reattach ordinary track which has become disconected or split.
When in this connect, ends of tracks that can be selected are highlighted with a blue arrow. With \e{Shift} added, ends that can be tighten are highlighted with a blue "X".
@@ -159,7 +162,7 @@ You can undo the effect of the \f{Connect} command by splitting (\K{splitDisconn
\dd (\K{cmdConvertFrom}). Convert Cornu to Fixed.
-A drop down menu, which allows selection of the Convert Mode, is invoked from the down arrow button (\G{png.d/bmenu.png}) located on the right side the Convert Tracks button.
+A drop down menu, which allows selection of the Convert Mode, is invoked from the down arrow button (\G{png.d/bmenu.png}) located on the right side the Convert Tracks button.
Dependent upon previous selection, the Convert Track button will look like \G{png.d/convertto.png} or \G{png.d/convertfrom.png}.
\rule
@@ -168,11 +171,11 @@ Dependent upon previous selection, the Convert Track button will look like \G{pn
\G{png.d/convertto.png}
-This command will take a pre-selected set of fixed track elements (Straights, Curves, Joint or Bezier) and convert them into a set of Cornu Tracks.
+This command will take a pre-selected set of fixed track elements (Straights, Curves, Joint or Bezier) and convert them into a set of Cornu Tracks.
If there are no selected Tracks, the user can click on a single track.
-The Cornu(s) will smoothly pass through all the end points of the selected tracks and smoothly join to the end-points (if any).
-This may change the internal shape of the resulting track(s) due to smoothing.
+The Cornu(s) will smoothly pass through all the end points of the selected tracks and smoothly join to the end-points (if any).
+This may change the internal shape of the resulting track(s) due to smoothing.
A subsequent \k{cmdModify} can be used to fine tune the Cornu(s) by moving, adding and deleting "pins" in the combined shape.
This command is intended to help conversion of track designs that were made before Cornu Track existed to Cornu.
@@ -193,17 +196,19 @@ The resulting track(s) will mimic the shape of the Cornu/Bezier(s) exactly. This
\G{png.d/belev.png}
-The \f{Elevation} command changes the elevation of track endpoints. After opening this dialog, The Message Bar will show the computed elevation at the cursor. There will be an open blue circle if an endpoint will be selected with \f{Left-Click}. You click on the respective endpoint to set its elevation properties.
+The \f{Elevation} command changes the elevation of track endpoints. After opening this dialog, The Message Bar will show the computed elevation at the cursor. There will be an open blue circle if an endpoint will be selected with \f{Left-Click}. You click on the respective endpoint to set its elevation properties.
+
+The endpoint which you are working on is indicated with a big red dot. Note that when an endpoint is selected, the Elevation Window will have focus. To select a different endpoint without closing this window, two clicks (or a double click) will be needed. The first click restores focus to the main window, the second selects the point.
-The endpoint which you are working on is indicated with a big red dot.
+If you add \f{Shift} as you move the cursor before clicking you will see a blue bar when it is over a track if a \f{Shift+Left-Click} will split the Track at that point (which will give you the opportunity to specify an elevation).
-Moving around the layout will show you the elevation at the point indicated by a blue dot.
+Adding \f{Ctrl} allows you to \f{Ctrl+Left-Click} to Select and \f{Left-Drag} to move existing Elevation Labels if the option is set for them to be displayed and the Zoom level is adequate, Only "Defined" and "Station" endpoint labels can be moved.
-If you hover over a point where two unconnected tracks pass over one another, a blue square will be drawn and the Message Bar will show the two elevations and the Clearance between them.
+If you add \f{Alt}, while moving around the layout close to tracks will show you the elevation at the point indicated by a blue closed dot.
-If you add \f{Shift} as you move the cursor before clicking you will see a blue bar when it is over a track if a \f{Shift-Left-Click} will split the Track at that point (which will give you the opportunity to specify an elevation).
+With \f{Alt} held, if you hover over a point close to where two unconnected tracks pass over one another, a blue square will be drawn and the Message Bar will show the two elevations and the Clearance between them.
-Adding \f{Ctrl} allows you to \f{Ctrl+Left-Click} to Select and \f{Left-Drag} to move Elevation Labels if both the option is set for them to be displayed and the Zoom level is correct,, Only Defined and Station endpoint labels can be moved.
+Clicking with \f{Shift} at this point will split the track, allowing the elevation to be adjusted to provide adequate clearance.
\G{png.d/celev.png}
@@ -211,17 +216,17 @@ An endpoint can have one of several elevation types:
\u000
-\b \f{None} - no elevation defined.
+\b \f{None} - no elevation control defined. This is the default state and the elevation will be computed. It will be shown if the Display Option \K{cmdDisplay} \f{EndPt Elevations} setting is on.
-\b \f{Defined} - a defined elevation at a specified height.
+\b \f{Defined} - the defined elevation is set to a specified height. The elevation will be shown.
-\b \f{Hidden} - a defined elevation but not displayed on the layout.
+\b \f{Hidden} - a defined elevation like \f{Defined} but not displayed on the layout.
-\b \f{Computed} - height is based on height of closest neighbors.
+\b \f{Computed} - height is calculated and displayed even if the Display Option \K{cmdDisplay} \e{EndPt Elevations} is on.
-\b \f{Grade} - grade is based on height of closest neighbors.
+\b \f{Grade} - grade is based on height of closest neighbors and displayed.
-\b \f{Ignored} - endpoint is not considered in computations.
+\b \f{Ignored} - endpoint is not considered in computations. This breaks the flow of the elevation influence from one side to the other, resulting in an elevation that is not dependent on the connected track but on the other connected tracks. A common use would be to ensure a mainline dictates the elevation of the start of a branch.
\b \f{Station} - assigns a name to the endpoint.
@@ -231,9 +236,11 @@ When an endpoint is selected on the layout by \e{Left-Click}, it is highlighted
Additionally, \f{Defined Elevation} endpoints are indicated on the layout by gold colored dots. \f{Ignored Elevation} endpoints are indicated by blue colored dots.
-The grade at the specified endpoint is displayed next to the \f{Grade} radio button. For \f{Defined Elevation} endpoints, the grade on each side of the endpoint is displayed.
+The grade at the specified endpoint is displayed next to the \f{Grade} radio button. For \e{Defined Elevation} endpoints, the grade on each side of the endpoint is displayed.
-\f{Defined Elevation} endpoints are used to specify fixed heights of track endpoints. Typically, this would be where a grade changes or where clearances must be maintained. \f{Computed} Elevations and \f{Grade} markers can place between \f{Defined Elevation} endpoints. These values are not entered directly but are computed dynamically based on \f{Defined Elevations} of connected tracks. This allows labeling of elevations at intermediate endpoints without having the enter specific values. \f{Computed} markers can also placed between a \f{Defined Elevation} point and the end of a track.
+\f{Defined Elevation} endpoints are used to specify fixed heights of track endpoints. Typically, this would be where a grade changes or where clearances must be maintained. \f{Computed} Elevations and \f{Grade} markers can place between \f{Defined Elevation} endpoints.
+These values are not entered directly but are computed dynamically based on \f{Defined Elevations} of connected tracks.
+This allows labeling of elevations at intermediate endpoints without having the enter specific values. \f{Computed} markers can also placed between a \f{Defined Elevation} point and the end of a track.
\f{Stations} are used to provide information for the Profile (\K{cmdProfile}) command.
@@ -246,7 +253,7 @@ All \f{Elevation} labels (including \f{Grade} and \f{Station}) are drawn on the
Elevations of Tracks are computed in following steps. The colors listed in each step are used as the background color of the Track Elevation Markers (if they are enabled (\K{cmdDisplay})).
-\b The Shortest Paths between all \e{Defined Elevations} are computed. A Path stops at \e{Ignored} or \e{Defined} endpoints. The Elevation of any Turnouts on these Paths with more than two connections are computed as the average Elevation inversely weighted by distance along the tracks to the \e{Defined Elevation} points (\e{Blue}).
+\b The Shortest Paths between all \e{Defined Elevations} are computed. A Path stops at \f{Ignored} or \e{Defined} endpoints. The Elevation of any Turnouts on these Paths with more than two connections are computed as the average Elevation inversely weighted by distance along the tracks to the \e{Defined Elevation} points (\e{Blue}).
\u000
@@ -260,7 +267,8 @@ Elevations of Tracks are computed in following steps. The colors listed in each
\b Any remaining tracks are not connected to a \e{Defined Elevation} and do not have an Elevation.
-The elevation computation is performed incrementally every time the layout is changed to keep all elevations in sync. The performance of the computation is affected by the placement of the \e{Defined Elevation} endpoints and the number of Paths between them. Place the \e{Defined Elevations} at points where tracks begin to branch (such as the throat of a yard or at the ends of a siding). Also, use \e{Defined Elevations} to break the layout into areas so recomputation has fewer tracks and Paths to deal with.
+The elevation computation is performed incrementally every time the layout is changed to keep all elevations in sync. The performance of the computation is affected by the placement of the \e{Defined Elevation} endpoints and the number of Paths between them.
+Place the \e{Defined Elevations} at points where tracks begin to branch (such as the throat of a yard or at the ends of a siding). Also, use \e{Defined Elevations} or \e{Ignore Elevations} to break the layout into areas so recomputation has fewer tracks and Paths to deal with.
\rule
@@ -306,9 +314,9 @@ Certain turnouts, such as a Wye's, Three-Way or Crossings are symmetrical and th
\S{cmdJoin} Join Tracks and Lines
-The \f{Join} command has two variatons,
+The \f{Join} command has two variatons,
-\dd (\K{cmdJoinTrack}). Join Tracks by connecting them.
+\dd (\K{cmdJoinTrack}). Join Tracks by connecting them.
\u000
@@ -320,7 +328,7 @@ The \f{Join} command has two variatons,
\G{png.d/bjoinline.png}
-The \f{Join Line} command produces a PolyLine from two Draw objects (Straight Line, Curved Line, Bezier Line or PolyLine). You select the two ends to join and the new Polyline will replace the two Draw objects, filling in any gap with a straight line segment.
+The \f{Join Line} command produces a PolyLine from two Draw objects (Straight Line, Curved Line, Bezier Line or PolyLine). You select the two ends to join and the new Polyline will replace the two Draw objects, filling in any gap with a straight line segment.
If the two ends are of the same PolyLine, an unfilled Polygon will be created.
\rule
@@ -339,7 +347,7 @@ For detail about;
\u000
-\dd Using Normal Easments where tracks are either joined with a straight or a 'simple curve' \k{joinNormalEasment},
+\dd Using Normal Easements where tracks are either joined with a straight or a 'simple curve' \k{joinNormalEasment},
e.g. one which uses a curve in a single direction as opposed to using reverse curves (\K{generalTerms})
\u000
@@ -354,6 +362,8 @@ e.g. one which uses a curve in a single direction as opposed to using reverse cu
\S2{joinNormalEasment} Join with Normal Easement
+This type of join does not work for Bezier or Cornu tracks, use Cornu Easements (\K{joinCornu}) for these tracks instead.
+
\u000
\dd \G{png.d/joincrv1.png}
@@ -384,15 +394,15 @@ e.g. one which uses a curve in a single direction as opposed to using reverse cu
}
-After the first track is selected, an entry field for prefered radius will be shown. A non-zero value will enable the snap anchor for the join radius.
+After the first track is selected, an entry field for prefered radius will be shown. A non-zero value will enable the snap anchor for the join radius.
-\n Move the mouse pointer over the endpoint of the other track then \e{Left-Click} and hold the mouse button down. A track connecting the two endpoints will appear.
+\n Move the mouse pointer over the endpoint of the other track then \e{Left-Click} and hold the mouse button down. A track connecting the two endpoints will appear.
\lcont{
If the track appears in black (and you are happy with the curve as its drawn), release the mouse button.
-If the radius snap-anchor is active, and the position of the cursor is close to a position where the Join is exactly the desired radius, a blue circle will be shown.
+If the radius snap-anchor is active, and the position of the cursor is close to a position where the Join is exactly the desired radius, a blue circle will be shown.
Releasing the button while it shows will snap the Join to the desired radius. If Easements are enabled as well, this fixed radius Join track will be joined to by easements.
@@ -445,11 +455,11 @@ For detail about;
\i{Creating a Cornu} \i{Modifying a Cornu} \i{Cornu Easements}
-A Cornu is a form of curve that uses a mathematical approach to creating a curve between two sets of end conditions.
+A Cornu is a form of curve that uses a mathematical approach to creating a curve between two sets of end conditions.
The curve is designed to change curvature linearly along its length - which is the characteristic of a railway easement because it minimizes sudden changes in acceleration towards the center of curvature.
-The conditions used at each end are the radius, angle and position.
+The conditions used at each end are the radius, angle and position.
Cornus can have added constraints in the form of track "pins" that force the curve to smoothly pass through that point while still respecting the end conditions.
@@ -465,7 +475,7 @@ It is not always the case that the Cornu will be the most efficient way to get f
\S2{cornuTrackPins} Cornu Track Pins
-XTrackCAD Cornu can have "track pins" added that constrain the track to pass through those points in addition to meeting the end-conditions.
+XTrackCAD Cornu can have "track pins" added that constrain the track to pass through those points in addition to meeting the end-conditions.
This allows the track to be skewed or slewed around obstacles, or to suit some other constraint.
The pins can be added when Cornus are created \K{cmdCornu} or during \K{cmdModify} after clicking on the track. They can be selected and then \c{Left-Drag} dragged to alter the curve shape or deleted with \c{Delete}.
@@ -476,7 +486,7 @@ When a Cornu Track with pins is saved, it is split into two Cornu joined at the
\n First, ensure that the Easement type option is set to Cornu - see \k{cmdEasement}
-\n Start the Join Track process by clicking on the Join Track button (\G{png.d/bjoin.png}).
+\n Start the Join Track process by clicking on the Join Track button (\G{png.d/bjoin.png}).
As you move over tracks a blue roundel will indicate the end that will be chosen with \e{Left-Click}.
@@ -486,7 +496,7 @@ As you move over tracks a blue roundel will indicate the end that will be chosen
\u000
-\dd \c{Left-Drag} the endpoint to where you want it and release the button.
+\dd \c{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{
@@ -503,8 +513,8 @@ The point will only move along the piece of track with the open endpoint (if thi
\u000
-\dd \c{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).
+\dd \c{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{
@@ -517,11 +527,11 @@ The initial curve will be drawn - it will be red if the minimum radius is smalle
}
-\dd You are now in "Select Points" mode.
+\dd You are now in "Select Points" mode.
\u000
-\dd You can select one end point at a time with \c{Left-Click} and move it with \c{Left-Drag}. If you drag the end point off the original track it will extend.
+\dd You can select one end point at a time with \c{Left-Click} and move it with \c{Left-Drag}. If you drag the end point off the original track it will extend.
\u000
@@ -677,7 +687,9 @@ Either the left mouse button (for changing length or creating a tangent track) o
\S2{objectModify} Modifying Objects
-\n The endpoints of a \e{Line}, \e{Dimension Line}, \e{Table Edge} or \e{Bench-work} can be dragged to new positions.
+\n The endpoints of a \e{Line}, \e{Dimension Line}, \e{Table Edge} or \e{Benchwork} can be dragged to new positions.
+
+\n The ends of a \e{Ruler} or the ends and origin of a \e{Protractor} can be dragged to new positions
\n 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. This modifications preserve a 4-sided rectangle.
@@ -730,12 +742,15 @@ For more detail about;
\lcont{\u000}
\n With the mouse pointer hovering over the endpoint of the object to be modified, \e{Left+Drag} (\K{windowTerms}) to change the length of the track segment, table edge, bench-work, dimension line or line.
+If \f{MagneticSnap} is enabled, the end will snap to any close draw object. \c{Alt} inverts the MagneticSnap setting. If there is no nearby object and \f{SnapGrid} is enabled, the end will snap to a grid point unless \f{Alt} is added.
\lcont{\u000}
\e{Left+Drag}ging the endpoint of a turnout (or other sectional track) causes a straight length of flex-track to be created from the selected endpoint to the cursor.
-\e{Left+Drag}ging the endpoint of a \f{Table Edge} (\K{cmdDraw}) allows the endpoint to be moved to a new position. If the endpoint is moved close to another \f{Table Edge} then the endpoint will be moved to it.
+\e{Left+Drag}ging the endpoint of a \f{Table Edge} (\K{cmdDraw}) allows the endpoint to be moved to a new position. If \c{Ctrl} is added and the endpoint is moved close to another \f{Table Edge} then the endpoint will be moved to it if not, the line will be a multiple of 90 degrees.
+
+
The length of a curved track can be changed to form an almost complete circle by selecting one endpoint of the curved track then dragging the cursor to the other endpoint. Going past the other endpoint creates a very small curve. Curves greater than 360\u00B0 cannot be created.
@@ -893,7 +908,7 @@ When a Polygon or a PolyLine is modified, open blue circle anchors show the posi
\u000
-\b \f{Delete} will remove a selected node.
+\b \f{Delete} or \f{Backspace} will remove a selected node.
\u000
@@ -1042,7 +1057,7 @@ A move can be achieved using one of the following methods;
\u000
-During a Move of tracks, and \f{MagneticSnap} is enabled, if one of the end-points of the selected objects is close to an open end of a unselected point, two anchors (an open an closed blue ball) will appear.
+During a Move of tracks, and \f{MagneticSnap} (\K{cmdMagneticSnap}) is enabled, if one of the end-points of the selected objects is close to an open end of a unselected point, two anchors (an open an closed blue ball) will appear.
This indicates that the two points will auto-join and that all the moved tracks will align to the unselected point if the Move is stopped.
This behaviour can be suppressed with \e{Alt}. If \f{MagneticSnap} is disabled, the alignment will only occur if \e{Alt} is pressed.
@@ -1097,17 +1112,70 @@ Any amount of precise transalation may be entered by \e{Left-Click}ing the \f{En
\G{png.d/bmovedes.png}
-This command is used to move Elevation, Grade, Station (\K{cmdElevation}), Curved Track (\K{cmdCurve}), Bezier, Cornu, Helix (\K{cmdHelix}) and Structure or Turnout (\K{cmdHotBar}) Labels.
+This command is used to move Elevation, Grade, or Station (\K{cmdElevation}), and to enable/disable and move
+Straight Track (\K{cmdStraight}), Curved Track (\K{cmdCurve}), Bezier (\K{cmdBezier}, Cornu (\K{cmdCornu}), Joint (\K{cmdJoin}), Helix (\K{cmdHelix}) and Structure or Turnout (\K{cmdHotBar}) Labels.
The \f{Move Description} command can be invoked using the \f{Change>Move Description} menu item or the \f{Move Description} button.
-Click the \f{Move Description} button to activate the \f{Move Description} command. As the cursor passes close to an object that can display a label it will be highlighted. A dark blue indicates a label that has "Show Description" set on, a light blue set off.
+Click the \f{Move Description} button to activate the \f{Move Description} command. As the cursor passes close to an object that can display a label it will be highlighted.
+A dark blue indicates a label that has "Show Description" set on, a teal color means it is set to hide.
Use \e{Left+Drag} to move the label to a new position and unhide if hidden. Once moved, the label becomes fixed in a position relative to the object. Subsequent moves of that object will cause the label to move as well.
This operation can also be invoked by \e{Ctrl+Left+Drag} when in Select command (\K{cmdSelect}).
-The letter "\f{h}", can be used to hide display of individual Curved Track, Bezier Track, Cornu, Helix or Turnout Labels. The letter"\f{s} will show a hidden description. There is a \f{Context Menu} Show/Hide Toggle as well.
+Note that labels need to be visible in the Display menu and the layout needs to be zoomed in enough to show labels for them to be moved.
+
+There are keys that control the display of description when hovering over a description or a track.
+
+\b The letter "\f{s}" when hovering over a track will show the hidden description - the teal highlight will show which tracks can have descriptions.
+
+\b The letter "\f{h}", when hovering over the track or description, can be used to hide display of individual Curved Track, Bezier Track, Cornu, Helix, Joint or Turnout Labels.
+
+\b The letter "\f{d}" will enable and disable a detailed description which is intended for tracklaying - it is a table of points and track angles that lie along the track path.
+
+Using these detailed values a curve can be constructed even for complex objects such as Bezier or Cornu.
+
+There is a \f{Context Menu} invoked with \e{Right-Click} or \e{Shift plus Right-Click} to Show/Hide individual descriptions as well as set the description to detailed.
+
+Labels can be moved by hovering the "hot spots" or over the attached track object. \e{Left-Drag} will reposition it. Elevation labels can be selected by hovering of thier centers or the end point they refer to.
+Note that end points with elevation mode "None" are not selectable.
+
+\b Cornu, Bezier, Straight, Curve and Joint (Easement) Labels can be moved along the line between the end-points and also laterally.
+
+\lcont{\u000
+
+\b Cornu and Bezier Tracks show the "chord" length, its absolute angle, and the length of the track and the minimum radius.
+To help lay these variable radius curves out, the detailed description information about track centers and angles selected by \f{'d'} is suggested.
+
+\b Joint/Easement Tracks show the "chord" length and abslute angle and easement curve constructing values of Radius and Lengths.
+For laying out larger easmements, the detailed position and angle description selected by \f{'d'} may be useful.
+
+\b Straight Tracks show the length and the absolute angle.
+For laying out long straights, the detailed track center position and angle descriptions selected by \f{'d'} may be useful.
+
+\b Curved Tracks show the radius, chord length, deflection at the center from the chord and the angular length.
+For laying out curves, the detailed track center position and angle descriptions selected by \f{'d'} may be useful.
+
+}
+
+\u000
+
+\b Curve Track Labels can be moved so that the label is somewhere on a radial line from the center to a position within the arc.
+A Curve label shows the absolute angle of the chord, its length, the Curve Radius and the deflection from the chord at the center of it.
+This enables the curve to be laid out even if the center point of the arc is inaccesible. Note that the detailed description may also be helpful in this case.
+
+\u000
+
+\b Compound (Structure and Turnout) Labels can be moved without restriction. They show the Object's Title information.
+
+\u000
+
+\b Elevation points labels can be moved without restriction - they show the Grade, Elevation, or Station Name as appropriate.
+
+\u000
+
+\b The detailed description setting is not preserved in the saved layout. It is designed for use when transferring a complex part of the plan to a real layout.
Note - existing defined elevation labels can be moved, but controlling thier visbility is done with the \K{cmdElevation} command.
@@ -1199,9 +1267,10 @@ The dialog can be closed with the 'X' button in the window's titlebar.
Clicking on the \f{Properties} (Describe Mode) button cancels all active commands, closes any open dialog windows and places focus on the main window.
Until an object is selected, the object under the cursor that will be selected with \e{Left-Click} is highlighted in blue.
+Objects in Frozen Layers will only be highlighted and selected if \f{Shift} is added.
A \e{Left-Click} on an object while in \f{Properties} mode causes a properties dialog window to appear.
-The properties dialog contains information pertaining to the selected objects position, size, color and layer as appropriate for each type of object.
+The properties dialog contains information pertaining to the selected objects size, position, size, color and layer as appropriate for each type of object.
Certain values can be changed to modify the object. Some values, e.g., endpoint positions, can not be changed if, for example, a Track is joined to another Track.
The values will take effect when \f{Enter}, \f{Tab} is pressed or the cursor leaves the entry field.
@@ -1209,47 +1278,61 @@ The values will take effect when \f{Enter}, \f{Tab} is pressed or the cursor lea
The selected object is highlighted by a grey area.
-If it is a Line, Curve, Circle or Polygon object, and the rotation origin is non-zero, a large blue cross will show its position.
-
\G{png.d/dpropertieshighlight.png}
-\S2{drawDescribe} Draw Object Fields
+\S2{drawDescribe} Draw Object Describe Fields
+
+\S3{drawDescribeCommon} Common Draw Object Fields
+
+If the Object is a Line, Curve, Circle or Polygon object, and the rotation origin is non-zero, a large blue cross will show its position.
+If it is zero, the command starts with the \f{Lock Origin} field unticked and the \f{Rotate By} field greyed out.
Some fields are used by multiple types of objects - these are listed below
\dt Line Width
\dd The width of the line for a line, curve or unfilled object can be set. 0 means a pixel width at all scales.
-Other values are the width of the line in scale units.
+Other values are the width of the line in scale units. If the value is negative, it is the absolute value of pixels wide at all scales.
\dt Pivot
-\dd The Pivot control can be set to the start, or the middle or the end, and it applies to the Length and Angle controls
-
-\dt Rotation Angle
-
-\dd Some Draw objects (Polygon, Polyline, Lines, Curves, Circles) can be rotated about their rotation origin in Describe.
-After the rotation completes, the rotation angle will be set to zero, as all the points of the object will be adjusted to thier absolute position in the layout.
+\dd The Pivot control can be set to fix in place the start, or the middle or the end, and it applies to the Length, Line Angle and Angular Length controls.
+When these are changed the new dimensions are applied so as to keep the locked position in place.
\dt Rotation Origin
\dd By default the rotation origin is the Layout origin \{0,0\}.
-By setting a different Rotation Origin, subsequent Rotations will be about that new point. This may be useful when using Draw objects as part of larger collections.
+If the origin is not at the Layout origin, it will be displayed with a blue cross.
+When the origin is changed with the \f{Lock} off, the object is not moved.
+But if the origin is changed with the \f{Lock} on, the object will be moved as well.
+Enabling the \f{Lock To Origin} allows subsequent Rotations to be about the origin.
+This may be especially useful when using creating larger groups of Draw objects.
+
+\dt Lock To Origin
+
+\dd Locking to the rotation origin makes the distance between the First Point and the origin fixed.
+If this is set on, altering either the First Point or the Rotation Origin will move the both values.
+This value is initially set to locked if the Draw origin is non-zero when the \K{cmdDescribe} command is started
+but can be unset to allow repositioning of the Rotate Origin without moving the object in the layout.
+If the Rotate Origin is set to \{0,0\}, the Object has an \e{Absolute} origin.
-\dt Lock Rotation Origin
+\dt Rotate By
-\dd For ease of use, the rotation origin can be \e{Relative} to the First Point. If this is done, altering either the First Point or the Rotation Origin will move the both values.
-This value is always set to locked if the Draw origin is non-zero when the \K{cmdDescribe} command is started but can be unset to allow repositioning of the Rotate Origin without moving the object. If the Rotate Origin is set to zero, the Object has an \e{Absolute} origin.
+\dd Some Draw objects (Polygon, Polyline, Lines, Curves, Circles, Text) can be rotated about their rotation origin in Describe.
+In order to rotate them, the \f{Lock To Origin} must be enabled.
+After the rotation completes, the rotation angle will be set back to zero and all the points of the object will be adjusted to their absolute position in the layout.
+Negative values of rotation are counter-clockwise.
+Note that for Text objects, the Rotation also changes the \f{Text Angle}.
\dt Layer
-\dd The object can be moved between layers
+\dd The layer of the object. The object can be moved between layers if the layer is not frozen. Only non-frozen layers are listed as options.
\dt Color
\dd The color of the line or the fill can be set
-\S3{drawDescribeStr} Straight Line Objects
+\S3{drawDescribeStr} Straight Line Objects Describe Fields
\dt End Pt 1
@@ -1259,13 +1342,13 @@ This value is always set to locked if the Draw origin is non-zero when the \K{cm
\dd Straight Lines have a second point, altering this, moves just that end of the line, altering its length as needed.
-\dt Angle
+\dt Line Angle
-\dd Straight Lines have an angle - this is the angle between the two points, altering this moves End Pt2.
+\dd Straight Lines have an angle - this is the angle between the two points, altering this moves the ends so as to respect the \f{Pivot} control setting.
\dt Length
-\dd The Length control can add to the start or end or both of a Line object depending on the setting of the Pivot control.
+\dd The Length control can add to the start or end or both of a Line object depending on the setting of the \f{Pivot} control setting.
\S3{drawDescribeDim} Dimension Line Objects
@@ -1273,7 +1356,7 @@ This value is always set to locked if the Draw origin is non-zero when the \K{cm
\dd The size of the arrows and text can be set to Tine, Small, Medium or Large.
-\S3{drawDescribeBench} BenchWork Objects
+\S3{drawDescribeBench} BenchWork Objects Describe Fields
\dt Lumber
@@ -1283,7 +1366,7 @@ This value is always set to locked if the Draw origin is non-zero when the \K{cm
\dd The timber can be orientated "On Edge" which will draw the smaller dimension or "Flat".
-\S3{drawDescribeCurve} Curved and Circle Objects
+\S3{drawDescribeCurve} Curved and Circle Objects Describe Fields
\dt Center
@@ -1291,9 +1374,13 @@ This value is always set to locked if the Draw origin is non-zero when the \K{cm
\dt CW Angle and CCW Angle
-\dd Curved Lines have an angle relative to the center that the arc starts and and one where it ends
+\dd Curved Lines have an angle relative to the center that the arc starts and and one where it ends.
+
+\dt Angular Length
+
+\dd For Curved Lines this is the length of the arc in degrees. If altered it will move the arc to respect the \f{Pivot} control setting.
-\S3{drawDescribePoly} Polygon Objects
+\S3{drawDescribePoly} Polygon Objects Describe Fields
\dt Fill
@@ -1301,7 +1388,7 @@ This value is always set to locked if the Draw origin is non-zero when the \K{cm
\dt Open
-\dd Polygons can be opened to become Polylines or Polylines closed to become Polygons using Describe.
+\dd Unfilled Polygons can be opened to become Polylines or Polylines closed to become Polygons. Note that PolyLines can't be filled, they have to be closed first.
\dt Point Count
@@ -1315,12 +1402,149 @@ This value is always set to locked if the Draw origin is non-zero when the \K{cm
\dd Straight and Curved Lines, PolyLines, Polygons and Structures can be drawn with dotted, dashed, dash-dotted and dash-dot-dotted lines.
-\S3{drawDescribeText} Text Objects
+\S3{drawDescribeText} Text Objects Describe Fields
\dt Text Angle
-\dd For Text objects, the Text Angle determines the angle the text is rendered at. This is independent of the rotation of the starting position which is gained from the Rotation Angle and the Rotation Origin.
+\dd For Text objects, the Text Angle determines the absolute angle the text is rendered at.
+
+This will be set by itself or by rotation of the starting position about the Rotation Origin with \f{Lock to Origin} set.
+
+\dt Boxed
+
+\dd For Text objects, whether a line is drawn around the text.
+
+\S2{DescribeCompound} Structures, Sectional Track and Turnouts Describe Fields
+
+\dt Pivot
+
+\dd The Pivot fixes the point about which the Angle of Rotation will occur to be the Start (Bottom Left) Point, the middle of the object, or End (Top Right) of the object.
+These relative positions are calculated as though the object was rotated by zero degrees.
+
+\dt Angle
+
+\dd The Angle rotates the object about the Pivot point.
+
+\S2{DescribeTrack} Describe Track Fields
+
+\S3{trackDescribeCommon} Common Track Object Fields
+
+\dt End Pt 1
+
+\dd For the starting position (or first point) - altering this value causes the whole object to move relative to the layout origin.
+This can only be changed if the track is unconnected at that end. The elevation is shown beneath the X,Y as a read-only Z value.
+
+\dt End Pt 2
+
+\dd The end position (or second point), altering this, moves just that end of the line, altering its length as needed.
+This can only be changed if the track is unconnected at that end. The elevation is shown beneath the X,Y as a read-only Z value.
+
+\dt Grade
+
+\dd The calculated grade between the two end-points
+
+\dt Layer
+
+\dd The layer of the object. The object can be moved between layers if the layer is not frozen. Only non-frozen layers are listed as options.
+
+\dt Length
+
+\dd The length of the track object. This can be set for a Straight Track if it is not connected, and will respect the value of the \f{Pivot} field.
+
+\dt Pivot
+
+\dd The Pivot control can be set to fix in place the start, or the middle or the end, and it applies to the Length, Track Angle and Angular Length controls.
+When these are changed the new dimensions are applied so as to keep the locked position in place.
+
+\S3{trackDescribeStr} Straight Track Describe Fields
+
+
+\dt Track Angle
+
+\dd The angle of the Track object. This can be set if the track is not connected. It respects the value of the \f{Pivot} field
+
+
+\S3{trackDescribeCurve} Curved Track Describe Fields
+
+\dt Center
+
+\dd The center point of the curve. The center can only be modified if both ends are unconnected.
+\dt Radius
+
+\dd The radius of the curve. The radius can only be modified if one end is not connected.
+
+\dt Angular Length
+
+\dd The length of the curve in degrees. Modifications respect the \f{Pivot} value and are only available if at least one end is disconnected.
+
+\dt CCW Angle
+
+\dd The Counter-Clockwise Angle (the angle from the center to the first position). Can only be modified if the first end of the curve is not connected.
+
+\dt CW Angle
+
+\dd The ClockWise Angle (the angle from the center to the end position). Can only be modified if the second end of the curve is not connected.
+
+
+\S3{trackDescribeCornu} Cornu Track Describe Fields
+
+\dt End Angle
+
+\dd Each end has an angle which helps determine the curve shape. It can only be set if the Track is not joined at that end.
+
+\dt End Radius
+
+\dd Each end has an radius which helps determine the curve shape. It can only be set if the Track is not joined at that end.
+
+\dt End Pt
+
+\dd Each End Point has a position. It can only be set if the Track is not joined at that end.
+
+\dt Center
+
+\dd Each End shows the center of the curve of the end segment - this is a read-only field. If the radius is zero, the field will show \{0,0\}.
+
+\dt Minimum Radius
+
+\dd This is the approximate smallest radius along the curve based on curve fitting to the Cornu.
+
+\dt Maximum Rate of Curvature
+
+\dd The maximum rate that the radius is changing over its length based on curve fitting.
+It gives an idea of the "sharpness" of the curve.
+
+\dt Total Winding Angle
+
+\dd The number of degrees that the curve executes - this number will rise if there are loops in the curve.
+
+\S3{trackDescribeBezier} Cornu Track Describe Fields
+
+\dt Ctl Pt
+
+\dd The positions of the two Bezier control points. These will only be adjustable if the end they control is not attached to another track.
+
+\dt End Angle
+
+\dd Each end has an angle which is set by the control arm at that end - this is a read-only field
+
+\dt End Radius
+
+\dd Each end has an radius which is driven by the curve shape - this is a read-only field
+
+\dt End Pt
+
+\dd Each End Point has a position. It can only be set if the Track is not joined at that end.
+
+\dt Center
+
+\dd Each End shows the center of the curve of the end segment - this is a read-only field. If the radius is zero, the field will show \{0,0\}.
+
+\dt Minimum Radius
+
+\dd This is the approximate smallest radius along the curve based on curve fitting to the Bezier.
+
+\rule
Most commands return to \f{Properties} mode then they terminate unless the command is sticky (\K{cmdSticky}).
@@ -1370,8 +1594,8 @@ Rotation can be achieved using one of the following methods;
\dd Aligning the selected object with another object on the layout. See \K{rotateByAlign} for detail.
-During Rotation of a track, if \f{MagneticSnap} is enabled, if one of the end-points of the selected objects is close to an open end of a unselected point, two anchors (an open an closed blue ball) will appear.
-This indicates that the two points will auto-snap and the moved track will align to the unselected point if the Rotation is stopped. This does not happen if \e{Alt} is used.
+During Rotation of a track, if \f{MagneticSnap} (\K{cmdMagneticSnap}) is enabled, if one of the end-points of the selected objects is close to an open end of a unselected point, two anchors (an open an closed blue ball) will appear.
+This indicates that the two points will auto-snap and the moved track will align to the unselected point if the Rotation is stopped. This does not happen if \e{Alt} is used.
If \f{MagneticSnap} is disabled, the snap will only occur if \e{Alt} is held.
Note that this also applies to \K{cmdMove}.
@@ -1394,19 +1618,19 @@ Rotate An Object Using the Mouse
\lcont{\u000}
-\n Click and hold the left mouse button then drag (\e{Left+Drag}) the mouse away from the axis point to create a "handle". This handle will be used to rotate the object. While continuing to hold the left mouse button, drag (\e{Left+Drag}) the handle in the desired direction of rotation.
+\n Click and hold the left mouse button then drag (\e{Left+Drag}) the mouse away from the axis point to create a "handle". This handle will be used to rotate the object. While continuing to hold the left mouse button, drag (\e{Left+Drag}) the handle in the desired direction of rotation.
\f{Note:} If the \e{Shift+Ctrl} key is pressed in conjunction with \e{Left+Drag}, the object will rotate in increments of 15\u00B0.
\lcont{\u000}
-\n Release the mouse key once desired rotation is obtained.
+\n Release the mouse key once desired rotation is obtained.
\u000
-\n If \f{Magnetic Snap} is enabled and the \e{Alt} button is not pressed, or ifthe \e{Alt} button is pressed when it is disabled, a magnetic anchor will be displayed if an end of the rotated tracks is near an open end.
+\n If \f{Magnetic Snap} is enabled and the \e{Alt} button is not pressed, or ifthe \e{Alt} button is pressed when it is disabled, a magnetic anchor will be displayed if an end of the rotated tracks is near an open end.
If the anchor shows and the rotate is completed, the tracks will Snap to Alignment and Join.
-\u000
+\u000
Rotation can also be achieved through use of one of these alternate methods;
@@ -1535,7 +1759,7 @@ Clicking on the \f{Select} button cancels all active commands, closes any open d
In combination with the mouse, the \f{Select} command can be used as follows;
-\dd Unselected Objects that will be added to the selected set with a \e{Left-Click} are highlighted in Blue as the mouse moves over them. Items that will be deselected are highlighted in Gold.
+\dd Unselected Objects that will be added to the selected set with a \e{Left-Click} are highlighted in Blue as the mouse moves over them. Items that will be deselected are highlighted in Gold.
\u000
@@ -1543,16 +1767,16 @@ In combination with the mouse, the \f{Select} command can be used as follows;
\u000
-\dd \e{Left-Click} - if the \f{SelectMode} in \K{cmdCmdopt} is set to Single Item Mode it selects just an object near the cursor.
-If it is set to Add Item Mode, it will add the nearby object or remove it if is already selected.
-Already selected objects appear in red (unless changed in the \f{Color} (\K{cmdRgbcolor}) dialog) and a blue selection box surrounds all currently selected objects.
+\dd \e{Left-Click} - if the \f{SelectMode} in \K{cmdCmdopt} is set to Single Item Mode it selects just an object near the cursor.
+If it is set to Add Item Mode, it will add the nearby object or remove it if is already selected.
+Already selected objects appear in red (unless changed in the \f{Color} (\K{cmdRgbcolor}) dialog) and a blue selection box surrounds all currently selected objects.
If \f{SelectZero} is selected in \K{cmdCmdopt} and an point that is not near to any object is selected, all objects are deselected.
\u000
\dd \e{Ctrl+Left-Click} - if \f{SelectMode} in \K{cmdCmdopt} is set to Single Item Mode it adds an object near to the cursor to the selected objects, or removes if it is already selected.
-If set to Add Item Mode, it will select only the nearby object and delselect all the others.
-Already selected objects appear in red (unless changed in the \f{Color} (\K{cmdRgbcolor}) dialog) and a blue selection box surrounds all currently selected objects.
+If set to Add Item Mode, it will select only the nearby object and delselect all the others.
+Already selected objects appear in red (unless changed in the \f{Color} (\K{cmdRgbcolor}) dialog) and a blue selection box surrounds all currently selected objects.
If \f{SelectZero} is selected in \K{cmdCmdopt} and an point that is not near to any objects is selected, all objects are deselected.
\u000
@@ -1569,7 +1793,21 @@ If \f{SelectZero} is selected in \K{cmdCmdopt} and an point that is not near to
\u000
-\dd \e{Right-Click} - displays a pop-up menu of commands.
+\dd \e{Right-Click} and \e{Shift-Right-Click} - either display a pop-up menu of commands or a set of context commands for the item under the cursor depending on the setting of "Right-Click" in \K{cmdCmdopt}.
+
+\lcont{
+
+\u000
+
+\G{png.d/mselectcmd.png} or \G{png.d/mselectcontext.png}
+
+\u000
+
+}
+
+\u000
+
+\dd \e{Double-Click} - invokes \K{cmdModify} on the object after selecting it for eligible objects. Otherwise it acts as \e{Left-Click}.
\u000
@@ -1577,27 +1815,38 @@ If \f{SelectZero} is selected in \K{cmdCmdopt} and an point that is not near to
\u000
-\dd \e{"@"} - moves the center of the window (i.e., Pans) to be at the cursor position
+\b \e{"e"} sets the zoom to a value that allows all the room to be shown and moves the origin of bottom left of the window to be 0,0
-\dd \e{Shift+Ctrl} plus the \e{Arrow Keys} will move the selected items a pixel at a time at the current zoom level. No autosnap will occur to permit fine tuning.
+\u000
-\lcont{
+\b \e{"s"} sets the zoom to show the selected set of objects and pans the window to center the highlit area.
\u000
-\G{png.d/mselect.png} or \G{png.d/mselected.png}
+\dd \e{"c"} - moves the center of the window (i.e., Pans) to be at the cursor position
\u000
+\dd Hovering over a selected object (inside the blue highlight area) displays an anchor. The Anchor shows the actions available -
+
+\lcont{
+
+\b If the \e{Shift} key is depressed, a "cross-arrows" anchor shows that a \K{cmdMove} will occur with \e{Left-Click}.
+
+\b If the \e{Ctrl} key is depresesed, a "rotation-circle" anchor shows that a \K{cmdRotate} will occur with \e{Left-Click}.
+
+\b With neither depressed a "target" anchor shows that a \e{Double-Click} will invoke \K{cmdModify} within Select for the object hovered over.
+
}
\u000
-\dd Hovering over a selected object (inside the blue highlight area) with either a \e{Shift} or a \e{Ctrl} button depressed displays an anchor that shows that a Left-Drag will either Move or Rotate the selected items.
+\dd \e{Shift+Ctrl} plus the \e{Arrow Keys} will move the selected items a pixel at a time at the current zoom level. No autosnap will occur to permit fine tuning.
\u000
-\dd \e{Shift+Right-Click} (\K{cmdAcclKeys}) - displays a pop-up menu of options controlling how objects are drawn during moves and rotates (below). If there are selected objects then additional menu items allow you to rotate the selected objects by various angles.
+\dd \e{Shift+Right-Click} or \e{Right-Click} (depending on the setting of \f{Right-Click} in \K{cmdCmdopt}) -
+Shows context menu items that allow you to perform actions on the selected item(s) including rotating them by various angles and moving them fixed amounts.
\u000
@@ -1618,7 +1867,26 @@ Upon release of the button, all the selected tracks will be moved and aligned an
\u000
-The following commands operate on the objects you have selected:
+\dd \e{Double-Click} - on a eligible object such as a Link Object will Activate it, and on a Modifyable object will go into Modify Mode (\K{cmdModify}) within Select.
+
+\u000
+
+\dd \e{Right-Click} and \e{Shift-Right-Click} - either display a pop-up menu of commands or a set of context commands for the items selected depending on the setting of "Right-Click" in \K{cmdCmdopt}.
+The options effects depend on the type of object(s) selected and hovered over.
+
+\lcont{
+\u000
+
+\G{png.d/mselectcmd.png} or \G{png.d/mselectedcontext.png}
+
+\u000
+
+}
+
+Once Objects are
+
+
+Once objects are selected, the following commands operate on them:
\b \f{Move} (\K{cmdMove}) the selected objects.
@@ -1638,7 +1906,7 @@ The following commands operate on the objects you have selected:
\b \f{Export} (\K{cmdExport}) the selected objects.
-\b Creates a structure or turnout definition from \f{Grouped} (\K{cmdGroup}) objects.
+\b \f{Group} Creates a structure or turnout definition (\K{cmdGroup}) from the objects.
\b \f{Rescale} (\K{cmdRescale}) the selected objects.
@@ -1666,12 +1934,15 @@ Notes:
\rule
+\S{cmdSplit} Split Commands
-\S{cmdSplitTrack} Split Track
+There are two split commands, \K{cmdSplitTrack} and \K{cmdSplitDraw}.
+
+\S2{cmdSplitTrack} Split Track
\G{png.d/bsplit.png}
-The \f{Split} command provides several functions. It can be used to disconnect the joint between two sections of connected track, to divide a section of track into two pieces at a selected point or to place block gaps at an existing joint.
+The \f{Split Track} command provides several functions. It can be used to disconnect the joint between two sections of connected track, to divide a section of track into two pieces at a selected point or to place block gaps at an existing joint.
Until a split point is selected, the split point under the cursor will have a blue marker and if it is near a connected end a blue "X" will indicate that a split will occur.
@@ -1733,11 +2004,11 @@ For detail about;
\rule
-\S2{splitDivide} Divide Track
+\S3{splitDivide} Divide Track
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.
+\n Click the \f{Split Track} button (\G{png.d/bsplit.png}) to activate the \f{Split Track} command.
\n Place the mouse pointer over the point on the track where the it should be divided. A blue anchor bar across the track under the cursor will indicate the current split point. Then \e{Left-Click}.
@@ -1745,7 +2016,7 @@ Dividing a section of flex track into two connected pieces;
\lcont{\u000}
-\dd When the \f{Split} command completes, a connected joint will appear in the track at the point of selection. To split and disconnect at a point, execute the \f{Split} track command twice. The first command will split the track, the second command will disconnect it.
+\dd When the \f{Split Track} command completes, a connected joint will appear in the track at the point of selection. To split and disconnect at a point, execute the \f{Split} track command twice. The first command will split the track, the second command will disconnect it.
\u000
@@ -1780,7 +2051,7 @@ For detail about;
\rule
-\S2{splitBlockGap} Adding \i{Block Gaps}
+\S3{splitBlockGap} Adding \i{Block Gaps}
The \f{Split} command can be used to add block gaps (\K{generalTerms}) at the point where two track endpoints join. Block gaps are drawn as a thick line and can be placed in either of the rails or both if total isolation is required.
@@ -1833,3 +2104,41 @@ For detail about;
\dd Dividing a section of track into two connected pieces see \K{splitDivide}.
\rule
+
+\S2{cmdSplitDraw} Split a Draw Object
+
+The \f{Split Draw} command can be used to split many draw object (Straight Lines, Curved Lines, Circles, Polygons, PolyLines).
+
+Until a split point is selected, the split point under the cursor will have a blue marker.
+
+\n If the object being split is a Polyline, the split will either result in a Straight Line and a PolyLine or two PolyLines depending on where the split is along the line. (PolyLines must always have at least 2 segments).
+
+\n Filled Circles and Polygons will be unfilled after the split.
+
+\n If the split object is a Circle, the result is an circular arc split at the point with a small (5 degree) gap.
+
+\n If the split object is a Polygon, a PolyLine with two end points at the split results.
+
+\rule
+
+\S2{cmdTrimDraw} Trim a Draw Object using another Draw object
+
+The \f{Trim Draw} command can be used to trim many draw objects (Straight Lines, Curved Lines, Circles, Polygons, PolyLines). Polygons and Circles are split into PolyLines and Curves.
+
+\n First a Trimming object (draw object) is selected with \f{Left-Click}. Until the trim draw object is selected, a draw object under the cursor will be highlit in blue. Once it is selected it will be highlit in the current Select Color.
+
+\n Next the point of intersection between the trim object and an object to be trimmed is selected. Until a split point is selected, a suitable split point under the cursor will have a blue trim anchor that is a T shape aligned with the trimming object.
+
+The trim anchor base has an arm that indicates which side of the trimmed object will be deleted. A \f{Left-Click} will trim the object.
+
+\u000
+
+If the trimmed object is a circle or a polygon, the result will be the same as a Split (\K{cmdSplitDraw}), a 355 degree circle and an open polyline with ends at the split will result.
+
+Once a trim has occured, the trimming object remains selected for another trim.
+
+To leave the command use the spacebar. If \e{Sticky} (\K{cmdSticky}) is set for Split commands you will be able to select another trim object.
+
+\rule
+
+
diff --git a/app/doc/drawm.but b/app/doc/drawm.but
index 76335bc..a9555b2 100644
--- a/app/doc/drawm.but
+++ b/app/doc/drawm.but
@@ -32,6 +32,10 @@ Functions for drawing basic shapes and objects like lines and curves can be acce
\u000
+\dd \f{Protractor} - create protractor and set visibility (\K{cmdAngle})
+
+\u000
+
\dd \f{Shapes} - draw boxes, polygons and poly-lines. (\K{cmdDrawShapes})
\u000
@@ -50,6 +54,9 @@ Some commands display controls on the Status Line (\K{mainW}) to change line wid
\G{png.d/mdrawcircles.png}
+Before a Circle is drawn its line width and color can be set. For Filled Circles, the color can be set.
+The \f{Circle Line Width} field is a scaled dimension in inches if >0. If 0 it is a 1 pixel wide line at all zooms. If the value is negative, it is a scale-independent number of pixels wide.
+
\f{Circles} and \f{Filled Circles} are created by selecting either the center position or a point on the edge of the circle and dragging to specify the radius.
\dd \K{cmdDrawCircleTangent}. Draw a Circle from the Edge.
@@ -70,33 +77,33 @@ Some commands display controls on the Status Line (\K{mainW}) to change line wid
\S2{cmdDrawCircleTangent} Draw Circle from Tangent
-\G{png.d/dcircle2.png}
+\G{png.d/dcircle3.png}
-\c{Left-Drag} a point on the edge of the circle to specify the radius.
+\c{Left-Drag} a point from the edge of the circle to the center to specify the radius.
\rule
\S2{cmdDrawCircleCenter} Draw Circle from Center
-\G{png.d/dcircle3.png}
+\G{png.d/dcircle2.png}
-\c{Left-Drag} from the center of the circle to the edge.
+\c{Left-Drag} from the center of the circle to the edge to specify the radius.
\rule
\S2{cmdDrawFilledCircleTangent} Draw Filled Circle from Tangent
-\G{png.d/dflcrcl2.png}
+\G{png.d/dflcrcl3.png}
-\c{Left-Drag} from the center of the circle to the edge.
+\c{Left-Drag} from the edge of the circle to the center to specify the radius.
\rule
\S2{cmdDrawFilledCircleCenter} Draw Filled Circle from Center
-\G{png.d/dflcrcl3.png}
+\G{png.d/dflcrcl2.png}
-\c{Left-Drag} a point on the edge of the circle to specify the radius.
+\c{Left-Drag} a point from the center to the edge of the circle to specify the radius.
\rule
@@ -104,6 +111,9 @@ Some commands display controls on the Status Line (\K{mainW}) to change line wid
\G{png.d/mdrawcurve.png}
+Before a Curved Line is created, its width and color can be set.
+The \f{Curved Line Width} or \f{Bezier Line Width} field is a scaled dimension in inches if >0. If 0 it is a 1 pixel wide line at all zooms. If the value is negative, it is a scale-independent number of pixels wide.
+
\f{Curved Lines} are created in the same manner as curved tracks.
\dd (\K{cmdDrawCurveEndPt}). Drag out the end point and then curve it.
@@ -124,12 +134,17 @@ Some commands display controls on the Status Line (\K{mainW}) to change line wid
\dd (\K{cmdDrawBezierCurve} \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 \f{MagneticSnap} is enabled, the curve ends will snap to the nearest part of nearby Draw objects unless \e{Alt} is held.
-If it is disabled, snapping will only occure if \e{Alt} is held.
+If \f{MagneticSnap} (\K{cmdMagneticSnap}) is enabled, the curve ends will snap to the nearest part of nearby Draw objects unless \e{Alt} is held.
+If Magnetic Snap is disabled, snapping to objects will only occur if \e{Alt} is held.
-The precise values of Radius and Arc Length can be set using the text boxes on the bottom rail once the mouse button is released.
+If \f{Grid Snap} is on and magnetic snap does not find a draw object, the curve ends will snap to the grid. \e{Alt} suppresses this snap.
-To adjust the curve, \e{Left-Click} and \e{Left-Drag} an end or a the radius. Hit \e{Enter} or \e{Space} to accept, \e{Esc} to reject.
+If \e{Sticky} is set for curved line objects, after the curve is drawn there will be two text fields on the bottom rail, to allow fine-tuning of the radius and the arc angle.
+Pressing \c{Enter} or \c{Tab} with the cursor in these boxes will apply the new values to the curve. Pressing \c{Space} or \c{Enter} or \c{Tab} on the drawing surface will move to drawing a new curve.
+Pressing \c{Shift+Tab} with the cursor on the drawing surface will remove the current curve, but allow a new curve to be drawn.
+Even if \c{Esc} is pressed, the curve will already exist, it can be removed with \f{Undo}.
+
+To adjust the curve with the mouse, \e{Left-Click} and \e{Left-Drag} an end or a the radius. Hit \e{Enter} or \e{Space} to accept, \e{Esc} to reject.
\rule
@@ -140,8 +155,9 @@ To adjust the curve, \e{Left-Click} and \e{Left-Drag} an end or a the radius. Hi
\c{Left-drag} from the start of the curve and drag in the direction of the curve.
Then \c{left-drag} to form the curve.
-If the cursor is over a Draw object and \f{MagneticSnap} is on, the first position will snap to the nearest part of that object. If \e{Alt} is held the snap will be suppressed.
-If \f{MagneticSnap} is disabled, the snap will happen if \e{Alt} is held. The second end will act similarly.
+If the cursor is over a Draw object and \f{MagneticSnap} (\K{cmdMagneticSnap}) is on, the first position will snap to the nearest part of that object. If \e{Alt} is held the snap will be suppressed.
+If \f{MagneticSnap} is disabled, the snap will happen if \e{Alt} is held. If \f{GridSnap} is enabled and MagneticSnap does not find a postion, the first position will snap to the Grid. This is
+suppressed if \f{Alt} is held. The second end will act similarly.
\rule
@@ -152,7 +168,10 @@ If \f{MagneticSnap} is disabled, the snap will happen if \e{Alt} is held. The s
Select one end of the curve and \c{left-drag} to the center.
Then \c{left-drag} the curve around the center.
-The first and second ends will act like \K{cmdDrawCurveEndPt} with \f{MagneticSnap} unless \e{Alt} is held.
+The first and second ends will act like \K{cmdDrawCurveEndPt} with \f{MagneticSnap} (\K{cmdMagneticSnap}) unless \e{Alt} is held.
+If \f{GridSnap} is enabled and MagneticSnap does not find a postion, the first position will snap to the Grid. This is
+suppressed if \f{Alt} is held.
+
To complete the command, drag on the red arrows to adjust the curve from the initial end.
\rule
@@ -161,7 +180,8 @@ To complete the command, drag on the red arrows to adjust the curve from the ini
\G{png.d/dcurve3.png}
-Select the center of the curve and \c{left-drag} to one end.
+Select the center of the curve and \c{left-drag} to one end. If \f{GridSnap} is enabled, the first position will snap to the Grid. This is
+suppressed if \f{Alt} is held.
\rule
@@ -171,7 +191,7 @@ Select the center of the curve and \c{left-drag} to one end.
\c{Left-drag} from one end of the curve to the other to form the chord of the curve.
-The first and second ends will act like \K{cmdDrawCurveEndPt} with \f{MagneticSnap} unless \e{Alt} is held.
+The first and second ends will act like \K{cmdDrawCurveEndPt} with \f{MagneticSnap} (\K{cmdMagneticSnap}) and \f{SnapGrid} unless \e{Alt} is held.
If the mouse is over a draw object the second position will snap to the nearst part of that object. If \e{Shift} is held the snap will be suppressed.
@@ -186,7 +206,7 @@ To complete the command, drag on the red arrows to adjust the curve.
\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.
Repeat for the other end and control point.
-The first and second ends will act like \K{cmdDrawCurveEndPt} with \f{MagneticSnap} unless \e{Alt} is held.
+The first and second ends will act like \K{cmdDrawCurveEndPt} with \f{MagneticSnap} and \f{SnapGrid} unless \e{Alt} is held.
\rule
@@ -213,6 +233,7 @@ The \f{Note} command allows you to
\G{png.d/bnote.png} \G{png.d/iconnote.png} Click and drag on the Main Canvas (\K{mainW}) to place the note.
When you release, the \e{Note Editor} dialog is displayed. You can enter the note in the text area.
+Text is limited to about 10 thousand characters.
\G{png.d/notetext.png}
@@ -270,6 +291,20 @@ Subsequent clicks on the \f{Ruler} button will hide or display the ruler.
\rule
+\S{cmdAngle} Protractor
+
+\G{png.d/bangle.png}
+
+The \f{Angle} command displays a \e{Protractor} on the layout. Click for the protractor origin and \c{left-drag} the cursor to set the base angle. Adding \c{Ctrl} will snap the angle to a multiple of 90 degrees.
+
+Then \{Left-Drag the second line. Adding \c{Ctrl} will snap the angle to 90 degree relative to the base line. The angle between the lines is displayed.
+
+Sunsequent clicks on the \f{Angle} button will hide or display the \e{Protractor}.
+
+The points of the \e{Protractor} can be modified using the \f{Modify} (\K{cmdModify}) command.
+
+\rule
+
\S{cmdDrawShapes} Shapes
@@ -298,10 +333,9 @@ Shapes are drawn by:
\u000
+If \e{Sticky} is set for many draw line and curve objects, after the object is created, precise dimensions can be entered to alter the new object, before it is completed either with a \c{Space} or \c{Return} or \c{Tab} or by selecting a new operation.
-If \e{Sticky} is set for draw line and curve objects, after the object is created, precise dimensions can be entered to alter the new object, before it is completed either with a \c{Space} or \c{Return} or by selecting a new operation.
-
-The \f{Polygon} and \f{PolyLine} shapes are finished by pressing the \c{Space} or \c{Return} key or by selecting another operation. Before they are finished, precise dimensions can be entered for the last side drawn.
+The \f{Polygon} and \f{PolyLine} shapes are finished by pressing the \c{Space} or \c{Return} \c{Tab} key or by selecting another operation. Before they are finished, precise dimensions can be entered for the last side drawn.
All Polylines and Polygons must have more than 2 corners to be created successfully.
Note that \K{cmdModify} can be used on a Polygon or a Polyline after it has been finished to alter individual points and to make them curved or rounded points.
@@ -312,6 +346,9 @@ Note that \K{cmdModify} can be used on a Polygon or a Polyline after it has been
\G{png.d/dbox.png}
+Before the box is drawn, the line width and color can be specified.
+The \f{Box Line Width} field is a scaled dimension in inches if >0. If 0 it is a 1 pixel wide line at all zooms. If the value is negative, it is a scale-independent number of pixels wide.
+
\f{Boxes} are created by selecting one corner and dragging the opposite corner.
\u000
@@ -332,10 +369,13 @@ Note that \K{cmdModify} can be used on a Polygon or a Polyline after it has been
\G{png.d/dpoly.png}
+Before the polygon is started the line width and color can be set.
+The \f{PolyGon Line Width} field is a scaled dimension in inches if >0. If 0 it is a 1 pixel wide line at all zooms. If the value is negative, it is a scale-independent number of pixels wide.
+
\f{Polygons} are created by either a series for \c{Left-Click}s or \c{Left+Drag}s, and a new "node" is placed for each.
When using \c{Left-drag}, the node will be positioned when you release the button.
-\dd If \f{MagneticSnap} is enabled, An anchor point will be shown on nearby draw objects that the next point will be snapped to unless \c{Alt} is held.
+\dd If \f{MagneticSnap} (\K{cmdMagneticSnap}) is enabled, An anchor point will be shown on nearby draw objects that the next point will be snapped to unless \c{Alt} is held.
\dd If it is disabled, the snap will only occur if \e{Alt} is held.
@@ -352,16 +392,18 @@ On the first polygon side this will be at a multiple of 90 degrees to the axes.
\rule
-\S2{cmdDrawFilledPolygon} Drae Filled Polygon
+\S2{cmdDrawFilledPolygon} Draw Filled Polygon
\G{png.d/dfilbox.png}
+Before the Polygon is started, the fill color can be set.
+
\f{Filled Polygons} are created by either a series for \c{Left-Click}s or \c{Left+Drag}s, and a new "node" is placed for each.
When using \c{Left-drag}, the node will be positioned when you release the button.
\dd The fill color can be adjusted using the color control at the bottom of the window
-\dd If \f{MagneticSnap} is enabled, An anchor point will be shown on nearby draw objects that the next point will be snapped to unless \c{Alt} is held.
+\dd If \f{MagneticSnap} (\K{cmdMagneticSnap}) is enabled, An anchor point will be shown on nearby draw objects that the next point will be snapped to unless \c{Alt} is held.
\dd If it is disabled, the snap will only occur if \e{Alt} is held.
@@ -384,10 +426,13 @@ On the first polygon side this will be at a multiple of 90 degrees to the axes.
\G{png.d/dpolyline}
+Before the polygon is started the line width and color can be set.
+The \f{Polyline Line Width} field is a scaled dimension in inches if >0. If 0 it is a 1 pixel wide line at all zooms. If the value is negative, it is a scale-independent number of pixels wide.
+
\f{PolyLines} are created by either a series for \c{Left-Click}s or \c{Left+Drag}s, and a new "node" is placed for each.
When using \c{left-drag}, the node will be positioned when you release the button.
-\dd If \f{MagneticSnap} is enabled, An anchor point will be shown on nearby draw objects that the next point will be snapped to unless \c{Alt} is held.
+\dd If \f{MagneticSnap} (\K{cmdMagneticSnap}) is enabled, An anchor point will be shown on nearby draw objects that the next point will be snapped to unless \c{Alt} is held.
\dd If it is disabled, the snap will only occur if \e{Alt} is held.
@@ -436,15 +481,22 @@ Straight Objects are created by a \e{Left+Drag} (\K{windowTerms}) on the layout.
\S2{cmdDrawLine} Draw Straight Line
-\G{png.d/dline.png} Creates a \f{Straight Line} of specified color and width.
+\G{png.d/dline.png}
+
+Creates a \f{Straight Line} of specified color and width.
+The \f{Straight Line Width} field is a scaled dimension in 75ths of an inch if >0. If 0 it is a 1 pixel wide line at all zooms. If the value is negative, it is a scale-independent number of pixels wide.
-If \c{Ctrl} is held down during \c{Left+Drag} the line will snap the relative angle of the new side to a multiple of 90 degrees.
+If \c{Ctrl} is held down during \c{Left+Drag} the line will snap the angle of the new side to a multiple of 90 degrees.
-If \e{Sticky} is set for draw line and curve objects, after the object is created, precise dimensions can be entered to alter the new object,
-before it is completed either with a \c{Space} or \c{Return} or \c{Tab} or by selecting a new operation.
+With \f{MagneticSnap} (\K{cmdMagneticSnap}) enabled, the new line start position will snap to the nearest draw object, as shown by the anchor. If \c{Alt} is held down, the magnetic Snap is reversed.
+If \f{GridSnap} is enabled and MagneticSnap does not find a postion, the first position will snap to the Grid. This is suppressed if \f{Alt} is held.
-With \f{MagneticSnap} enabled, the new line start position will snap to the nearest draw object, as shown by the anchor unless \c{Shift} is held down.
-If it is diabled, it will onlt snap if \e{Shift} is held.
+The \f{Width} field is a scaled dimension in inches if >0. If 0 it is a 1 pixel wide line at all zooms. If the value is negative, it is a scale-independent number of pixels wide.
+
+If \e{Sticky} is set for straight draw, after the line is drawn there will be two text fields on the bottom rail, to allow fine-tuning of the angle and the length.
+Pressing \c{Enter} or \c{Tab} with the cursor in these boxes will apply the value to the line. Pressing \c{Space} or \c{Enter} on the drawing surface will move to drawing a new line.
+Pressing \c{Shift+Tab} will remove the current object and allow a new one to drawn.
+Even if \c{Esc} is pressed, the line will already exist, it can be removed with \f{Undo}.
\rule
@@ -454,11 +506,11 @@ If it is diabled, it will onlt snap if \e{Shift} is held.
Creates a \f{Dimension Line} of various sizes.
-With \f{MagneticSnap} enabled, the new line start position will snap to the nearest draw object, as shown by the anchor unless \c{Shift} is held down.
-If it is disabled, it will onlt snap if \e{Shift} is held.
-If \c{Ctrl} is held down during \c{Left+Drag} the line will snap the relative angle of the new side to a multiple of 90 degrees.
-If \e{Sticky} is set for draw line and curve objects, after the object is created, precise dimensions can be entered to alter the new object,
-before it is completed either with a \c{Space} or \c{Return} or \c{Tab} or by selecting a new operation.
+With \f{MagneticSnap} (\K{cmdMagneticSnap}) enabled, the new line start position will snap to the nearest draw object, as shown by the anchor unless \c{Alt} is held down.
+If it is disabled, it will only snap if \e{Alt} is held. If \f{GridSnap} is enabled and MagneticSnap does not find a postion, the first position will snap to the Grid. This is
+suppressed if \f{Alt} is held.
+
+If \c{Ctrl} is held down during \c{Left+Drag} the line will snap the angle of the new side to a multiple of 90 degrees.
\S2{cmdDrawBench} Draw Benchwork.
@@ -478,11 +530,16 @@ Creates \i\f{Bench-work} using different types and orientation of lumber.
\dd When using metric units (\K{cmdPref}), a 1" x 2" is labeled 50mm x 25mm
-With \f{MagneticSnap} enabled, the new line start position will snap to the nearest draw object, as shown by the anchor unless \c{Shift} is held down.
-If it is diabled, it will onlt snap if \e{Shift} is held.
-If \c{Ctrl} is held down during \c{Left+Drag} the line will snap the relative angle of the new side to a multiple of 90 degrees.
-If \e{Sticky} is set for draw line and curve objects, after the object is created, precise dimensions can be entered to alter the new object,
-before it is completed either with a \c{Space} or \c{Return} or \c{Tab} or by selecting a new operation.
+With \f{MagneticSnap} (\K{cmdMagneticSnap}) enabled, the new line start position will snap to the nearest draw object, as shown by the anchor unless \c{Alt} is held down.
+If it is disabled, it will only snap if \e{Alt} is held. If \f{GridSnap} is enabled and MagneticSnap does not find a postion, the first position will snap to the Grid. This is
+suppressed if \f{Alt} is held.
+
+If \c{Ctrl} is held down during \c{Left+Drag} the line will snap the angle of the new side to a multiple of 90 degrees.
+
+If \e{Sticky} is set for straight draw, after the benchwork is drawn there will be two text fields on the bottom rail, to allow fine-tuning of the angle and the length.
+Pressing \c{Enter} or \c{Tab} with the cursor in these boxes will apply the value to the benchwork. Pressing \c{Space} or \c{Enter} or \c{Tab} on the drawing surface will move to drawing a new benchwork line.
+Pressing \c{Shift+Tab} on the drawing surface will remove the current object and allow a new one to be drawn.
+Even if \c{Esc} is pressed, the benchwork will already exist, it can be removed with \f{Undo}.
\S2{cmdDrawTableEdge} Draw Table Edge
@@ -490,21 +547,27 @@ before it is completed either with a \c{Space} or \c{Return} or \c{Tab} or by se
Creates a \f{Table Edge}
-With \f{MagneticSnap} enabled, the new line start position will snap to the nearest draw object, as shown by the anchor unless \c{Shift} is held down.
-If it is diabled, it will onlt snap if \e{Shift} is held.
-If \c{Ctrl} is held down during \c{Left+Drag} the line will snap the relative angle of the new side to a multiple of 90 degrees.
-If \e{Sticky} is set for draw line and curve objects, after the object is created, precise dimensions can be entered to alter the new object,
-before it is completed either with a \c{Space} or \c{Return} or \c{Tab} or by selecting a new operation.
+With \f{MagneticSnap} (\K{cmdMagneticSnap}) enabled, the new line start position will snap to the nearest draw object, as shown by the anchor unless \c{Alt} is held down.
+If it is disabled, it will only snap if \e{Alt} is held. If \f{GridSnap} is enabled and MagneticSnap does not find a postion, the first position will snap to the Grid. This is
+suppressed if \f{Alt} is held.
+
+If \c{Ctrl} is held down during \c{Left+Drag} the edge will to a end point of another table edge or to a multiple of 90 degrees if that isn't available.
+
+If \e{Sticky} is set for straight draw, after the edge is drawn there will be two text fields on the bottom rail, to allow fine-tuning of the angle and the length.
+Pressing \c{Enter} or \c{Tab} with the cursor in these boxes will apply the value to the edge. Pressing \c{Space} or \c{Enter} or \c{Tab} on the drawing surface will move to drawing a new edge.
+Pressing \c{Shift+Tab} on the drawing surface will remove the current object and allow a new one to be drawn.
+Even if \c{Esc} is pressed, the edge will already exist, it can be removed with \f{Undo}.
\rule
\S{DrawOrigin} Draw Objects Origin
-Some objects have a natural rotation point within them. By setting the origin to this point, subsequent rotation will be about that point and not the layout origin.
-This is referred to as a \e{Relative} origin.
-When one of these is moved or rotated, the origin and angle are adjusted but the relative draw point values remain the same.
+Some objects will a natural rotation point within them. By setting the object origin to this point, subsequent rotation will be about that point and not the layout origin.
+This is referred to as a \e{Relative} origin and will be present if the origin is non-zero.
+When an object with a Relative is moved or rotated, the origin and angle are adjusted but the relative draw point values remain the same.
+If an object has a zero origin, it is called Absolute. If it is moved or rotated, the origin and angle remain zero, but all the obect point(s) are adjusted.
-You can choose to set the origin to make it Relative or put it back to Absolute during \K{cmdDrawShapes} or \K{cmdModify} or by using the \K{cmdDescribe} settings.
+You can choose to set the origin to make it Relative or put it back to Absolute (origin zero) during \K{cmdDrawShapes} or \K{cmdModify} or by using the \K{cmdDescribe} settings.
As a practical matter, the object will appear identical until a subsequent rotation value is entered in the \K{cmdDescribe} window in both cases.
@@ -525,17 +588,23 @@ In Origin Mode (entered using \c{'o'} or the Context Menu, there are certain sho
\G{png.d/btext.png}
-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.
+The \f{Text} command lets you enter a Text Draw object 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}
-The font size can be changed by the Font Size drop list on the \f{Status-bar} (\K{mainW}). The font size is scaled along with everything else on the layout so text is always the same relative size as other layout objects.
+The font size can be changed by the Font Size drop list on the \f{Status-bar} (\K{mainW}). The font size is scaled along with everything else on the layout so text is always the same relative size as other layout objects.
+
+The color used can be selected by the Color icon on the \f{Status-bar} (\K{mainW}).
+
+The new text object can be "boxed" by having a line drawn around it using the Boxed tick-mark on the \f{Status-bar} (\K{mainW}).
+
+The position where text is to be placed on the layout is selected prior to text entry by \c{Left-Click}ing on the layout at the point where the text is to appear. Desired text is input after the position is selected. If necessary, the location can be changed once text entry begins by \c{Left-Click+Drag}ing the text to any desired postion on the layout.
-The font can be selected by the \f{Font Selection} (\K{fontSelW}) dialog invoked by the \f{Options>Fonts} menu item or by \c{Shift+Right-Click} (\K{cmdAcclKeys}).
+The \f{Properties} (\K{cmdDescribe}) command can be used to modify the contents, color and fontsize of existing \f{Text} objects and to set the boxes property.
-The position where text is to be placed on the layout must be selected prior to text entry. The position is select by \c{Left-Click}ing on the layout at the point where the text is to appear. Desired text is entered after the position is selected. If necessary, the location can be changed once text entry begins by \c{Left-Click+Drag}ing the text to any desired postion on the layout.
+The new Text object is committed when another command is entered (or \e{Enter} is used if the Text command is Sticky).
-The \f{Properties} (\K{cmdDescribe}) command can be used to modify the contents of existing \f{Text} objects and to draw boxes around them.
+The font used for all Text objects can be selected by the \f{Font Selection} (\K{fontSelW}) dialog invoked by the \f{Options>Fonts} menu item or by \c{Shift+Right-Click} (\K{cmdAcclKeys}).
Note: loading fonts (or changing sizes) can take a noticeable amount of time.
diff --git a/app/doc/editm.but b/app/doc/editm.but
index 166ec11..1e1e572 100644
--- a/app/doc/editm.but
+++ b/app/doc/editm.but
@@ -10,85 +10,103 @@
The \f{Edit Menu} shows commands affecting the \f{Main Canvas} (\K{mainW}).
-\dd \f{Above} - Moves selected object to foreground.
+\dd \i\f{Undo} - Reverses the last command. Up to the last ten commands can be undone. If there are no commands that can be undone the \f{Undo} item is disabled. The \f{Undo} command can also be invoked by the \f{Undo} button (\K{cmdUndo}).
\u000
-\dd \f{Below} - Moves selected object to background.
+\dd \i\f{Redo} - Undoes the last Undo command. The \f{Redo} command can also be invoked by the \f{Redo} button (\K{cmdUndo}).
\u000
-\dd \f{Copy} - Copies the selected objects to the clipboard.
+\dd \i\f{Cut} - Moves the selected objects to the clipboard.
\u000
-\dd \f{Clone} - Copies the selected objects to the clipboard and duplicates them offset from the original.
-Repeated Clone commands result in a series of offset copies.
-The new objects are selected and the old ones un-selected.
+\dd \i\f{Copy} - Copies the selected objects to the clipboard.
\u000
-\dd \f{Cut} - Moves the selected objects to the clipboard.
+\dd \i\f{Paste} - Copies the contents of the clipboard to the layout. Using the paste Menu command it will be placed at the center of the screen.
+If the context menu paste is used or the short-cuts \e{Ctrl+v} or \e{Shift+Insert}, the parts will be placed at the cursor position.
+Repeated Pastes without moving the cursor result in overlaid copies.
+The newly pasted parts are in \f{Selected} state and can easily be moved into place. Any previously selected objects are unselected.
\u000
-\dd \f{Delete} - Deletes the selected objects.
+\dd \i\f{Delete} - Deletes the selected objects.
\u000
-\dd \f{Deselect All} - unselects all objects on the layout. The same action can be achieved by pressing the ESC key.
+\dd \i\f{Move To Current Layer} - move all selected objects to the current Layer (\K{cmdLayer}).
\u000
-\dd \f{Invert Selection} - selects all unselected objects and unselects all previously selected objects.
+\dd \i\f{Select All} - Selects all objects on the layout.
\u000
-\dd \f{Move To Current Layer} - move all selected objects to the current Layer (\K{cmdLayer}).
+\dd \i\f{Select Current Layer} - selects all objects in the current Layer (\K{cmdLayer}).
\u000
-\dd \f{Paste} - Copies the contents of the clipboard to the layout. Using the paste Menu command it will be placed at the center of the screen.
-If the context menu paste is used or the short-cuts \e{Ctrl+v} or \e{Shift+Insert}, the parts will be placed at the cursor position.
-Repeated Pastes without moving the cursor result in overlaid copies.
-The newly pasted parts are in \f{Selected} state and can easily be moved into place. Any previously selected objects are unselected.
+\dd \i\f{Select By Index} - selects object by index number (\K{cmdSelectIndex}).
+
+\u000
+
+\dd \i\f{Deselect All} - unselects all objects on the layout. The same action can be achieved by pressing the ESC key.
\u000
-\dd \f{Redo} - Undoes the last Undo command. The \f{Redo} command can also be invoked by the \f{Redo} button (\K{cmdUndo}).
+\dd \i\f{Invert Selection} - selects all unselected objects and unselects all previously selected objects.
\u000
-\dd \f{Select All} - Selects all objects on the layout.
+\dd \i\f{Select Stranded Track} - selects all track pieces that are not connected to any other objects. This helps cleaning up a drawing after many changes have been made.
\u000
-\dd \f{Select Current Layer} - selects all objects in the current Layer (\K{cmdLayer}).
+\dd \i\f{Tunnel}\I{Track, Tunnel} - Hides or reveals selected tracks and adds a tunnel portal symbol where the track passes from one to the other.
\u000
-\dd \f{Select Stranded Track} - selects all track pieces that are not connected to any other objects. This helps cleaning up a drawing after many changes have been made.
+\dd \i\f{Bridge}\I{Track, Bridge} - Adds parapet symbols to the sides of the track.
\u000
-\dd \f{Thin, Medium and Thick Tracks} - set displayed rail width of selected tracks.
+\dd \i\f{Ties/No Ties}\I{Track Ties}\I{Track No Ties} - Hides or reveals the ties on selected tracks.
\u000
-\dd \f{Tunnel} - Hides or reveals selected tracks and adds a tunnel portal symbol where the track passes from one to the other.
+\dd \i\f{Move to Front} - Moves selected object to foreground.
\u000
-\dd \f{Bridge} - Adds parapet symbols to the sides of the track.
+\dd \i\f{Move to Back} - Moves selected object to background.
\u000
-\dd \f{Undo} - Reverses the last command. Up to the last ten commands can be undone. If there are no commands that can be undone the \f{Undo} item is disabled. The \f{Undo} command can also be invoked by the \f{Undo} button (\K{cmdUndo}).
+\dd \i\f{Thin, Medium and Thick Tracks} \I{Thin Tracks}\I{Medium Tracks}
+ \I{Thick Tracks}\I{Tracks, Thin}\I{Tracks, Medium}\I{Tracks, Thick}
+ \I{Track Width}
+ - set displayed rail width of selected tracks.
+
+\u000
For more information on working with selected objects, see the Select (\K{cmdSelect}) command.
\rule
+\S{cmdSelectIndex} Select By Index
+
+An input window allows one or more index numbers to be entered. Multiple indexes are seperated by commas.
+
+The object can not be selected if its Layer is frozen.
+
+If the object is part of a module layer, all objects in the layer will be selected.
+
+If the object is a tunnel object, and the Display Tunnel option is None, it will be set to Dashed. See Display options (\K{cmdDisplay}).
+
+When an individual object is selected, its index number is displayed in the Info Message area, another source is the List Parts (\K{cmdEnum}) command with the \f{List Indexes} option.
\S{cmdAboveBelow} "Move To Front" and "Move to Back"
@@ -107,19 +125,19 @@ Selected objects moved to the \f{Background} become unselected.
Additional Shortcut keys perform the following:
-\dd \c{Shift+Backspace} - Undo
+\dd \c{Ctrl+Z} - Undo
\u000
-\dd \c{Ctrl+Insert} - Copy
+\dd \c{Ctrl+C} - Copy
\u000
-\dd \c{Shift+Insert} - Paste
+\dd \c{Ctrl+V} - Paste
\u000
-\dd \c{Shift+Delete} - Cut
+\dd \c{Ctrl+X} - Cut
\u000
@@ -170,7 +188,7 @@ If you perform this action (or use Tunnel) the bridge is removed.
The \f{Ties} command is used to hide Ties (or reshow them). This may be useful for overlapping track, like dual gauge, or in areas like docks or yards where the track is covered.
-Select the tracks you want to hide or show ties for.
+Select the tracks you want to hide or show ties for.
\rule
diff --git a/app/doc/filem.but b/app/doc/filem.but
index a0cce82..2fa4dba 100644
--- a/app/doc/filem.but
+++ b/app/doc/filem.but
@@ -29,7 +29,7 @@ The \f{File Menu} shows file oriented commands for loading and saving layout fil
\u000
-\dd \f{Export to Bitmap} - Creates a bitmap file (\K{cmdOutputbitmap}) of the layout. The bitmap will be saved in PNG format.
+\dd \f{Export to Bitmap} - Creates a bitmap file (\K{cmdOutputbitmap}) of the layout. The bitmap can be saved in either JPEG or PNG format.
\u000
@@ -37,6 +37,11 @@ The \f{File Menu} shows file oriented commands for loading and saving layout fil
\u000
+\dd \f{Export to SVG} - Exports the selected objects to a file in SVG format. The exported file can then be imported into a vector drawing program like Inkscape
+or used for publishing on the web.
+
+\u000
+
\dd \f{File List} - List of the five most recently used \e{XTrackCAD} files or archives.
\u000
@@ -100,14 +105,21 @@ This menu item creates a bitmap file of the layout.
\G{png.d/bitmap.png}
-The \f{Bitmap} dialog specifies the style and size of the bitmap. The three check-boxes (\f{Print Titles}, \f{Print Borders} and \f{Print Centerline}) control whether the Layout Title (\K{cmdLayout}), the borders or the track centerlines are printed on the bitmap. The size of the bitmap is smaller if these are disabled.
+The \f{Bitmap} dialog specifies the style and size of the bitmap. The check-boxes (\f{Layout Titles}, \f{Borders}, \f{Centerline of Track} and
+\f{Background Image}) control
+whether the Layout Title (\K{cmdLayout}), the borders or the track centerlines are printed on the bitmap. If a background image is used it will be
+printed if the option is set.
+
+ The size of the bitmap is smaller if these are disabled.
Printing the track centerlines (also seen when zoomed in 1:1) is useful when you later print the bitmap
full size for laying out track.
If the Snap Grid (\K{cmdGrid}) is visible then it will be printed on the bitmap.
-The \f{DPI} (or \f{DPCM} if using metric units (\K{cmdPref})) control specifies the number of pixels per inch (or centimeter) in the bitmap. You can enter values from 0.1 to 100. Larger values will result in a larger bitmap file. bitmaps must be less than 32000 pixels in height or width.
+The \f{DPI} control specifies the number of pixels per inch in the bitmap. Bitmaps must be less than 32,000 pixels in height or width.
+The upper value you can enter depends on the size of your trackplan. It is made sure that your bitmap does not exceed these limits.
+Larger values will result in a larger bitmap file.
The bitmap width, height and approximate file size is indicated.
@@ -115,7 +127,8 @@ Note: This command can create a very large file and consume a lot of memory and
Pressing the \f{OK} button invokes a \f{File Save} dialog so you can choose the file name for the Bitmap.
-The format of the file is PNG on all operating systems.
+You can select to create JPEG or PNG files. As a rule of thumb JPEG results in smaller files when you use a backgound image, PNG
+does so for trackplans without an image background.
\rule
@@ -129,6 +142,22 @@ Exported files can then be imported into other CAD programs.
\rule
+\S{ExportSVG} \i{Export to SVG}
+
+This menu item displays a file selection dialog where a file name for exported objects can be entered. All selected (\K{cmdSelect}) objects are exported to the file. The export file will have an \c{svg} extension.
+
+Files in SVG format can be used for different purposes.
+
+\b SVG files can be loaded into many drawing programs. This makes it possible to enhance and resize the image. Vector images have the advantage of
+allowing lossless resizing.
+
+\b Most modern browsers support SVG as an image format. So the resulting file can directly be used to publish your plan on the web. By adding a bit of
+Javascript, zooming and panning can be enabled. Appropiate scripts can easily be found using your favorite search engine.
+The generated SVG uses the layout description as a title that is shown by some browser. Also the drawing has an 'id' for manipulation by Javascript.
+This id is derived from the filename by removing all spaces and sticking the word 'id' in front. Eg exporting \c{stonega.xtc} the resulting id will be \c{idstonega}.
+
+\rule
+
\S{cmdImport} Import
Importing displays a file selection dialog to specify the file to import.
@@ -149,26 +178,27 @@ The dialog contains a list of parameter files. Each file is preceded by a color
are usable in the current scale and gauge.
\G{png.d/greendot.png} \G{png.d/greenstar.png} Definitions from this file are a perfect fit for the current layout options. The file has been loaded and will be visible in the \f{HotBar}. For track this means that gauge and scale of the track elements
-are identical to the layout settings.
+are identical to the layout settings. Prototype definitions (Scale "*") are always a perfect fit. Turnouts and Sectional Track must have the same gauge and usually the same scale unless the scale/gauge combination has been defined to fit.
+OO layouts use HO track as an example.
\G{png.d/yellowdot.png} \G{png.d/yellowstar.png} Definitions from this file can be used with this layout but do not fit perfectly. A typical example is On30 where HO scale track can be used because the
-gauge is the same. But differences in scale may make the track look out of scale.
+gauge is the same. But differences in scale may make the track look out of scale. Structures are considered compatible if the scale is within +/-20%. Cars are compatible if the gauge is the same, but the scale can be +/-20%.
+Exceptions to this can be defined in the scale definitions.
\G{png.d/reddot.png} \G{png.d/redstar.png} This parameter file doesn't contain any usable definitions with current settings. You may want to change the layout options if you want to use elements from
this file (for example altering the Layout Scale).
\G{png.d/greydot.png} \G{png.d/greystar.png} This file is loaded but hidden.
If it is marked as favorite it will be kept on the
-list between runs. Otherwise it will be removed from the list when
-the program is terminated.
+list between runs.
-Definition files can be marked as \e{favorite}. The indicator for favorites is a star.
+Parameter files can be marked as \e{favorite}. The indicator for favorites is a star.
The meaning of the colors isn't changed.
Loaded definition files that are marked with a yellow or a green indicator appear on the \f{Hot Bar} (\K{cmdHotBar}).
If you \e{unload} a file the definitions are removed from the selection lists and the \f{Hot Bar}.
-If the unloaded file was marked as a favorite it can be \e{reloaded} by selecting the \f{Reload} button.
+If the unloaded file was marked as a favorite it can be \e{reloaded} by selecting the \f{Reload} button.
Files that are still loaded can be \e{reloaded} as well. In that case the old definitions are refreshed and extended by the
rereading the file. This can be useful if you want to check changes you made by hand-editing a parameter file.
@@ -189,7 +219,7 @@ It is the equivalent of using \f{Browse} and selecting the file again.
Files can be listed by either their file name or by their contents description.
This is controlled by the \f{Show File Names} check box.
-The \f{Search} button opens the \e{Search Parameter File} dialog (\K{cmdSearchgui}) this
+The \f{Library} button opens the \e{Choose Parameter File} dialog (\K{cmdSearchgui}) this
shows the all files included the system library so they can be added.
The \f{Browse} button opens a file window that allows the user to add additional files
@@ -203,18 +233,23 @@ The order in this list controls the order of turnouts and structures on the
\f{Hot Bar} (\K{cmdHotBar}). You can move a parameter file to the end of the
list by \e{Unloading} it, and then loading it via the \f{Browse} button.
-\S{cmdSearchgui} \i{Search Parameter Files}
+\S{cmdSearchgui} \i{Choose Parameter Files}
Selecting and loading additional parameter files from the System Library is done in the
-\f{Search Parameter Files} dialog.
+\f{Choose Parameter Files} dialog.
\G{png.d/paramsearch.png}
Using the Search function you can find and select parameter files that are
part of the XTrackCAD installation.
-Enter a search string and select the Search button. Search results are
-shown in the list box. A blank search or the value "*" resets the search results to
-show the entire libary.
+Enter a set of one or more words and select the Search button. Search results are
+shown in the list box. Pressing the \i{Clear Filter} button shows the complete
+list again.
+
+You can subset the search to only search for parameter files who start with contents that fit the current Layout Scale using the \f{Fit} Mode.
+The options are "Fit All", "Fit Compatible" and "Fit Exact". Fit Compatible means that structures with
+Note that the code only looks at the first Turnout, Structure or Car entry to decide on the scale for the entire file.
+They will correspond to the color icons on the Parameter Files menu once they are loaded \K{cmdPrmfile} when the same Layout scale is in use.
Select the files you're interested in and press the \f{Add} button to add them to your
parameter list.
@@ -279,7 +314,8 @@ Whether tracks are printed with one or two lines (representing the center line a
\u000
-\dd \f{Page Numbers} - to help positioning the individual pages the page number is printed in the center of the page in the format (x/y). x is the position from left to right, y in from bottom to top, So (1/1) is the page at the bottom left.
+\dd \f{Page Numbers} - to help positioning the individual pages the page number is printed in the center of the page in the format (x/y).
+x is the page position from left to right, y in from bottom to top, So (1/1) is the page at the bottom left.
As an additional aid, the numbers of the next pages are printed on each edge.
\u000
@@ -288,7 +324,7 @@ As an additional aid, the numbers of the next pages are printed on each edge.
\u000
-\dd \f{Rulers} - print rulers on all edges of the page. This option is only enabled if the \f{Angle} is \e{0.000}.
+\dd \f{Rulers} - choose to print rulers at the layout edge, or on all edges of the page, an option is only enabled if the \f{Angle} is \e{0.000}, or None - which means print no rulers.
\u000
@@ -377,6 +413,29 @@ The \f{Printer Setup} window contains:
\dd \f{Cancel} - ends the dialog without update.
+\u000
+
+\e{Note} -
+Printing uses a default of 600ppi. It scales the print and text from a default size of 72dpi.
+This is often the expected value for a standard printer driver to work correctly, but will not work if the driver is not accurately setting the ppi available.
+To override the printer ppi you can use either the configuration file settings for print or environmental variables.
+These values are set in the Preferences section.
+\u000
+
+\n Preferences.PrintScale - The floating point ratio of the real printer dpi to 72.
+
+\n Preferences.PrintTextScale - The floating point ratio of the real printer text support to a dpi of 72. This value has no effect unless PrintScale is set to > 0.0.
+
+\u000
+These values can also be set using environmental variables if the configuration preference values are not set or they are set to <=0.0.
+\u000
+
+\n XTRKCADPRINTSCALE
+
+\n XTRKCADPRINTTEXTSCALE
+
+\u000
+
\rule
\S2{MS-Windows} \i{Microsoft Windows}
@@ -441,7 +500,7 @@ To check your printer's margin:
\u000
-\dd Enable \f{Registration Marks}
+\dd Enable \f{Registration Marks} this prints crosshairs every 6" at scale 1:1.
\u000
diff --git a/app/doc/hotbar.but b/app/doc/hotbar.but
index fcaddce..d6b9cc7 100644
--- a/app/doc/hotbar.but
+++ b/app/doc/hotbar.but
@@ -16,7 +16,9 @@ The arrow buttons on either side of the \e{Hot bar} move the list one object to
A \c{Right-Click} over the \e{Hot Bar} will display a pop-up menu listing the files with contents on the \e{Hot Bar}. Selecting an item from this list causes the \e{Hot Bar} to jump to the relative spot on the whole list.
-Objects on the \e{Hot Bar} are placed on the drawing canvas by first clicking on the object, \e{Dragging} it the Main window, rotating it with \c{Ctrl+Left-Drag} or \c{Right-Drag} positioning it then pressing the \c{Space} key to set it in place.
+Objects on the \e{Hot Bar} are placed on the drawing canvas by first selecting an object by \e{Cicking} it on the \e{Hot Bar}. Then \e{Click} and \e{Drag} on the Main window, rotating it with \c{Right-Drag} to position it, and then pressing the \c{Space} key to set it in place.
+
+For \e{Turnouts}, see below for additional details on the \e{Active EndPoint}.
\rule
@@ -39,7 +41,7 @@ It will be a smooth monotonic curve if the ends are not in a line and the end an
\S{hbStructures} Structures
-\e{Structures} are placed on the layout in the same way as turnouts (\K{hbTurnouts}) except no active endpoint exists and they do not align with existing track.
+\e{Structures} are placed on the layout in the same way as turnouts (\K{hbTurnouts}) except no Active EndPoint exists and they do not align with existing track.
Refer to \K{cmdStructure} for information pertaining to use of the \e{Structure} dialog.
@@ -48,9 +50,9 @@ Refer to \K{cmdStructure} for information pertaining to use of the \e{Structure}
\S{hbTurnouts} Turnouts
-\e{Turnouts} have an active endpoint (\K{generalTerms}) which is the handle used to position the \e{Turnout}. You can change the \e{active endpoint} by a \c{Shift+Left-Click} which causes the next endpoint to become Active.
+\e{Turnouts} have an \e{Active EndPoint} (\K{generalTerms}) which is the handle used to position the \e{Turnout}. You can change the \e{Active EndPoint} by a \c{Shift+Left-Click} which causes the next endpoint to become Active.
-If you \c{Left+Drag} a turnout onto a track, the active endpoint (\K{generalTerms}) is aligned with the selected track. On flex-track, you can flip the turnout by moving the cursor from one side of the track centerline to the other. On another turnout, the new turnout will be placed at the endpoint closest to the cursor.
+If you \c{Left+Drag} a turnout onto a track, the Active EndPoint (\K{generalTerms}) is aligned with the selected track. On flex-track, you can flip the turnout by moving the cursor from one side of the track centerline to the other. On another turnout, the new turnout will be placed at the endpoint closest to the cursor.
\e{XTrackCAD} will automatically connect the turnout's endpoints to any other tracks they are aligned with. The number of endpoints that will be connected is displayed on the Status Bar, as well as the Maximum displacement between these endpoints and the tracks they will be connected to. \e{XTrackCAD} will adjust the position of the Turnout to give you the best fit for locating the turnout. You can override this adjustment by holding down the \e{Shift} key while \e{Dragging}.
diff --git a/app/doc/intro.but.in b/app/doc/intro.but.in
index 1a423f0..90109cc 100644
--- a/app/doc/intro.but.in
+++ b/app/doc/intro.but.in
@@ -6,7 +6,7 @@
\# Identify XTrackCAD Version, Microsoft Windows software installation package name and Copyright information
-\define{XTCVer} Version @XTRKCAD_VERSION@
+\define{XTCVer} Version @XTRKCAD_VERSION@
\define{XTCWinPack} xtrkcad-setup-@XTRKCAD_VERSION@.exe
@@ -61,7 +61,7 @@ Copyright 2020, Martin Fischer, Adam Richards and Dave Bullis
\cfg{html-local-head}{<meta name="AppleTitle" content="org.xtrkcad.help" />}
-\e{XTrackCAD} is a CAD (computer-aided design) program for designing Model Railroad layouts. \e{XTrackCAD} supports any scale, has libraries of popular brands of turnouts and sectional track (plus you add your own easily), can automatically use spiral transition curves when joining track and has extensive on-line help and demonstrations. \e{XTrackCAD} lets you manipulate track much like you would with actual flex-track to modify, extend and join tracks and turnouts. Additional features include tunnels, 'post-it' notes, on-screen ruler, parts list, 99 drawing layers, undo/redo commands, bench-work, 'Print to Bitmap', elevations, train simulation and car inventory.
+\e{XTrackCAD} is a CAD (computer-aided design) program for designing Model Railroad layouts. \e{XTrackCAD} supports any scale, has libraries of popular brands of turnouts and sectional track (plus you add your own easily), can automatically use spiral transition curves when joining track and has extensive on-line help and demonstrations. \e{XTrackCAD} lets you manipulate track much like you would with actual flex-track to modify, extend and join tracks and turnouts. Additional features include tunnels, 'post-it' notes, on-screen ruler, parts list, 99 drawing layers, undo/redo commands, bench-work, 'Print to Bitmap', elevations, train simulation and car inventory.
Using it, you can
@@ -89,7 +89,7 @@ Using it, you can
\u000
-\b Trace tracks and other objects over a background image of a real-world location map, a scanned trackplan, or other image.
+\b Trace tracks and other objects over a background image of a real-world location map, a scanned trackplan, or other image.
\u000
@@ -110,17 +110,17 @@ Be sure to visit the project web page for latest news and updates: \W{http://www
\f{Easy to use}
- \e{XTrackCAD} was designed to operate in a similar way to pencil and paper: You can draw tracks by dragging the mouse, you select and place turnout "templates" anywhere on existing tracks, and you can use fixed radii for initial design.
-
+ \e{XTrackCAD} was designed to operate in a similar way to pencil and paper: You can draw tracks by dragging the mouse, you select and place turnout "templates" anywhere on existing tracks, and you can use fixed radii for initial design.
+
But extra capabilities have been added that give more power by using FlexTracks (Cornu) you have tracks that automatically redraw as you drag turnouts around, creating smooth curves, you can zoom in and out, and of course, undo and deleting tracks are easier!
-You don't have to be an expert CAD user to make the most of \e{XTrackCAD} but the program will ensure that dimensions, radii and angles are accurate.
+You don't have to be an expert CAD user to make the most of \e{XTrackCAD} but the program will ensure that dimensions, radii and angles are accurate.
You don't have to specify line lengths or angles and just draw. But if you want to be more precise, you can enter precise dimensions both in real-world and scale sizes.
-\e{XTrackCAD} is a specialized CAD for railway modelling, it deals with tracks as tracks, not as line segments. Tracks are connected correctly to each other and with endpoints of turnouts and other components.
+\e{XTrackCAD} is a specialized CAD for railway modelling, it deals with tracks as tracks, not as line segments. Tracks are connected correctly to each other and with endpoints of turnouts and other components.
-As you zoom in, the two rails are drawn and then ties are added.
+As you zoom in, the two rails are drawn and then ties are added.
\f{Free}
@@ -132,33 +132,35 @@ On-line demonstrations show the actual operation of many of the program's featur
\f{Packed with features}
-\e{XTrackCAD} is designed from the ground up to be a complete tool for many aspects of Model Railroad layout design.
+\e{XTrackCAD} is designed from the ground up to be a complete tool for many aspects of Model Railroad layout design.
\dt \e{Active UI Prompting}
\dd As the mouse moves over the layout objects, a set of different anchors are shown to indicate what is possible in each command with each modifier key if clicked or double clicked at that location.
+\u000
+
\dt \e{Train Simulation and Car Inventory}
\dd Any number of Cars and Locomotives can be placed on your layout to check clearances, siding capacities and track layout. Trains can be animated to simulate operations and switching on your layout.
\u000
-\dd The Car Inventory dialog records your cars and locomotives and these can be exported and imported from spreadsheets.
+\dd The Car Inventory dialog records your cars and locomotives and these can be exported and imported from spreadsheets.
\u000
\dt \e{Track Manipulation}
-\dd Track segments can be lengthened or shortened by simple click and drag. Tangents to a curve are created by dragging away from the curve. Tracks are extended by dragging from an Endpoint, creating new straight or curved segments. New tracks can be snapped into place or precisely placed and then Joined.
+\dd Track segments can be lengthened or shortened by simple click and drag. Tangents to a curve are created by dragging away from the curve. Tracks are extended by dragging from an Endpoint, creating new straight or curved segments. New tracks can be snapped into place or precisely placed and then Joined.
\u000
-\dd Track circles are especially handy for determining overall designs and seeing what will fit in a given area.
+\dd Track circles are especially handy for determining overall designs and seeing what will fit in a given area.
\u000
-\dd The Cornu flextrack features create dynamically variable tracks that optimise the curvature of tracks to ensure a protypical appearance. They alter as the other tracks are moved just as flextrack will in the 12 inches to the foot world!
+\dd The Cornu flextrack features create dynamically variable tracks that optimise the curvature of tracks to ensure a protypical appearance. They alter as the other tracks are moved just as flextrack will in the 12 inches to the foot world!
\u000
@@ -166,38 +168,40 @@ On-line demonstrations show the actual operation of many of the program's featur
\u000
-\dd The Join command links any two tracks (Straights, Curves, Turnouts or Turntables) with accurate aligned connecting track segments which can be easements including Cornu easements. The connected tracks are trimmed or extended as required.
+\dd The Join command links any two tracks (Straights, Curves, Turnouts or Turntables) with accurate aligned connecting track segments which can be easements including Cornu easements. The connected tracks are trimmed or extended as required.
\u000
-\dd The Helix Track command computes the number of turns, radius, grade and vertical separation based on your criteria.
+\dd The Helix Track command computes the number of turns, radius, grade and vertical separation based on your criteria.
\u000
\dd Turntables can be constructed with any radius and can either have fixed or dynamic bay tracks
+\u000
+
\dt \e{Turnout Select and Placement}
-\dd The Turnout Hot Bar contains a scrolling list of Turnouts, Sectional Tracks and Structures available in the current Scale. Simply click on one and click again drop it onto the layout.
+\dd The Turnout Hot Bar contains a scrolling list of Turnouts, Sectional Tracks and Structures available in the current Scale. Simply click on one and click again drop it onto the layout.
\u000
-\dd As Turnouts are dragged over existing tracks they are automatically aligned. \e{XTrackCAD} searches for any other tracks that align with each of the Turnout's Endpoints, and shows you the number of connections that will be made and the maximum offset as you position the Turnout.
-Just adjust the Turnout's position to minimize the offset to ensure the best fit.
+\dd As Turnouts are dragged over existing tracks they are automatically aligned. \e{XTrackCAD} searches for any other tracks that align with each of the Turnout's Endpoints, and shows you the number of connections that will be made and the maximum offset as you position the Turnout.
+Just adjust the Turnout's position to minimize the offset to ensure the best fit.
\u000
-\dd When a turnout is placed, each Endpoint is examined to see if it aligned to an existing track. If so, the track is split to create a perfect connection to the turnout. Placing Turnouts is a 'snap'.
+\dd When a turnout is placed, each Endpoint is examined to see if it aligned to an existing track. If so, the track is split to create a perfect connection to the turnout. Placing Turnouts is a 'snap'.
\u000
\dt \e{Layers}
-\dd Layers are an important feature for manageing the design for layouts of any complexity. Use one layer for the main-line and others for staging tracks, Bench-work or scenery. Multilevel designs can have groups of layers for each level.
+\dd Layers are an important feature for manageing the design for layouts of any complexity. Use one layer for the main-line and others for staging tracks, Bench-work or scenery. Multilevel designs can have groups of layers for each level.
\u000
-\dd \e{XTrackCAD} allows up to 99 layers layers can have their own button to control visibility. Each layer can have a name which is displayed as the balloon help for the layer button.
+\dd \e{XTrackCAD} allows up to 99 layers layers can have their own button to control visibility. Each layer can have a name which is displayed as the balloon help for the layer button.
\u000
@@ -205,13 +209,13 @@ Just adjust the Turnout's position to minimize the offset to ensure the best fit
\u000
-\dd Tracks and other objects can be colored according to which layer they are in. Also, each layer can be frozen to prevent accidental changes to parts of the layout that are finalized.
+\dd Tracks and other objects can be colored according to which layer they are in. Also, each layer can be frozen to prevent accidental changes to parts of the layout that are finalized.
\u000
\dt \e{Elevations and Profile}
-\dd Elevations are one of the most powerful features of \e{XTrackCAD} they are dynamically recalulated as the layout changes.
+\dd Elevations are one of the most powerful features of \e{XTrackCAD} they are dynamically recalulated as the layout changes.
\u000
@@ -219,21 +223,21 @@ Just adjust the Turnout's position to minimize the offset to ensure the best fit
\u000
-\dd \e{XTrackCAD} lets you define the elevation of any Endpoint on the layout. You can also have \e{XTrackCAD} automatically compute the elevation and grade between defined elevation points. You can define the elevation at the bottom and top of a sloped track, then have \e{XTrackCAD} compute the elevation at each riser position between.
+\dd \e{XTrackCAD} lets you define the elevation of any Endpoint on the layout. You can also have \e{XTrackCAD} automatically compute the elevation and grade between defined elevation points. You can define the elevation at the bottom and top of a sloped track, then have \e{XTrackCAD} compute the elevation at each riser position between.
\u000
-\dd Once you have defined a few elevations, you can display the Elevation Profile for the layout along a path of connected track segments. The Profile display shows the length of the track, the elevation of each defined elevation point and the grades between them. You can even adjust the elevations directly on the Profile display.
+\dd Once you have defined a few elevations, you can display the Elevation Profile for the layout along a path of connected track segments. The Profile display shows the length of the track, the elevation of each defined elevation point and the grades between them. You can even adjust the elevations directly on the Profile display.
\u000
\dt \e{Easements (Cornu Transition Curves)}
-\dd Easements are special sections of gradually curving track used to connect straight and curved tracks (or two curved tracks). Easements reduce the effects of sudden changes in track curves which can cause derailments. They also look great!
+\dd Easements are special sections of gradually curving track used to connect straight and curved tracks (or two curved tracks). Easements reduce the effects of sudden changes in track curves which can cause derailments. They also look great!
\u000
-\dd \e{XTrackCAD} can use Easements anytime the radius of the track changes. The Modify and Join commands will automatically insert Easement Track segments whenever needed. Each Easement is computed based on the radius of the neighboring tracks. You don't even have to think about it!
+\dd \e{XTrackCAD} can use Easements anytime the radius of the track changes. The Modify and Join commands will automatically insert Easement Track segments whenever needed. Each Easement is computed based on the radius of the neighboring tracks. You don't even have to think about it!
\u000
@@ -257,51 +261,51 @@ Just adjust the Turnout's position to minimize the offset to ensure the best fit
\u000
-\dd The Print command lets you scale the printout from a one page overall view (with the handy Snap-Shot button) right up to full size 1:1.
+\dd The Print command lets you scale the printout from a one page overall view (with the handy Snap-Shot button) right up to full size 1:1.
\u000
-\dd Multiple page printouts are easy to do. A gird representing each page is drawn over the layout and you can click on the pages you want to print. The gird can be moved and rotated to any position so the orientation of the printout matches your layout. Pages can be printed in Portrait or Landscape format.
+\dd Multiple page printouts are easy to do. A gird representing each page is drawn over the layout and you can click on the pages you want to print. The gird can be moved and rotated to any position so the orientation of the printout matches your layout. Pages can be printed in Portrait or Landscape format.
\u000
-\dd At 1:1, registration marks can be printed every 3" (or 10cm) to help align different sets of printouts. Also, the roadbed outline can be drawn at a user-specified width to assist cutting the roadbed from sheet material.
+\dd At 1:1, registration marks can be printed every 3" (or 10cm) to help align different sets of printouts. Also, the roadbed outline can be drawn at a user-specified width to assist cutting the roadbed from sheet material.
\u000
\dt \e{Turnout and Structure Creation}
-\dd \e{XTrackCAD} comes with Turnout, Sectional Track and Structure Parameter Files for many brands of tracks and accessories. However, your brand may not supplied. The Turnout Designer dialogs and the Group command make it easy to add your own custom definitions.
+\dd \e{XTrackCAD} comes with Turnout, Sectional Track and Structure Parameter Files for many brands of tracks and accessories. However, your brand may not supplied. The Turnout Designer dialogs and the Group command make it easy to add your own custom definitions.
\u000
-\dd The Turnout Editor has separate screens for designing Turnouts (Regular, Curved, Wye and 3-way), Crossings, Slip-switch, Crossovers and Sectional Track. In each dialog a few measurements are required to create a new definition. Full size printouts can be made directly from the dialog to check your design.
+\dd The Turnout Editor has separate screens for designing Turnouts (Regular, Curved, Wye and 3-way), Crossings, Slip-switch, Crossovers and Sectional Track. In each dialog a few measurements are required to create a new definition. Full size printouts can be made directly from the dialog to check your design.
\u000
-\dd The Group command can create Structure definitions from selected tracks, lines and shapes. You can make structures as simple as a rectangle or highly detailed. You can also modify existing designs to add details or make adjustments.
+\dd The Group command can create Structure definitions from selected tracks, lines and shapes. You can make structures as simple as a rectangle or highly detailed. You can also modify existing designs to add details or make adjustments.
\u000
\dt \e{Lines, Shapes, Table Edges, Text and Notes}
-\dd Layout designs are more than track!
+\dd Layout designs are more than track!
\u000
-\dd The \e{XTrackCAD} Draw command is used to draw lines (straight, curved and circles) and shapes (filled boxes, circles, polylines and polygons). These can be different colors and lines can have different widths. The Polylines and Polygons can have curved sides. These are useful for drawing scenic features (rivers, bridges, mountains).
+\dd The \e{XTrackCAD} Draw command is used to draw lines (straight, curved and circles) and shapes (filled boxes, circles, polylines and polygons). These can be different colors and lines can have different widths. The Polylines and Polygons can have curved sides. These are useful for drawing scenic features (rivers, bridges, mountains).
\u000
-\dd You can add Bench-work and dimension lines too.
+\dd You can add Bench-work and dimension lines too.
\u000
-\dd Special types of lines are drawn by the Table Edge command are used to represent the boundary at the edge of the layout.
+\dd Special types of lines are drawn by the Table Edge command are used to represent the boundary at the edge of the layout.
\u000
-\dd Text can be added to the layout.
+\dd Text can be added to the layout.
\u000
@@ -311,21 +315,21 @@ Just adjust the Turnout's position to minimize the offset to ensure the best fit
\dt \e{Parts and Price Lists}
-\dd The Parts List command generates a list of the number of the different types of Turnouts, Sectional Track and Structures selected on the layout. You can select everything or just the areas you are working on. As well, the total length of flex-track (for each track scale/gauge used on the layout) is listed.
+\dd The Parts List command generates a list of the number of the different types of Turnouts, Sectional Track and Structures selected on the layout. You can select everything or just the areas you are working on. As well, the total length of flex-track (for each track scale/gauge used on the layout) is listed.
\u000
-\dd You can enter the price of each type of Turnout, Sectional Track and Structure, plus the length and price of flex-track. \e{XTrackCAD} will compute the price of each types and the grand total. The total number of flex-track sections is also listed.
+\dd You can enter the price of each type of Turnout, Sectional Track and Structure, plus the length and price of flex-track. \e{XTrackCAD} will compute the price of each types and the grand total. The total number of flex-track sections is also listed.
\u000
\dt \e{Support for Sectional Track}
-\dd Numerous Sectional Track Parameter Files are included with \e{XTrackCAD} (Atlas, Marklin, Peco, ...). The Hot Bar allows easy selection.
+\dd Numerous Sectional Track Parameter Files are included with \e{XTrackCAD} (Atlas, Marklin, Peco, ...). The Hot Bar allows easy selection.
\u000
-\dd The automatic alignment feature of Turnout and Sectional Track placements makes track pieces just 'snap' together.
+\dd The automatic alignment feature of Turnout and Sectional Track placements makes track pieces just 'snap' together.
\u000
@@ -469,9 +473,9 @@ Refer to \K{keyFeatures} and \K{addFeatures} for a listing of \e{XTrackCAD} feat
\H{addFeatures} Additional \e{XTrackCAD} Features
-\e{XTrackCAD} has many other carefully selected features:
+\e{XTrackCAD} has many other carefully selected features:
-\b Sections of track can be hidden, which can be drawn as dashed lines, or completely hidden. A Tunnel Portal is drawn when a hidden track connects with normal track.
+\b Sections of track can be hidden, which can be drawn as dashed lines, or completely hidden. A Tunnel Portal is drawn when a hidden track connects with normal track.
\u000
@@ -519,7 +523,7 @@ Refer to \K{keyFeatures} and \K{addFeatures} for a listing of \e{XTrackCAD} feat
\u000
-\b You can rescale and flip objects, trim turnouts and create block gaps.
+\b You can rescale and flip objects, trim turnouts and create block gaps.
\u000
@@ -586,7 +590,7 @@ Throughout this manual the following typographic conventions are used to make fi
\lcont{\u000}
-\n A program folder named \c{XTrkCad4} will be created during the installation process. The folder contains the program, documentation, parameter and example files.
+\n A program folder named \c{XTrkCad} will be created during the installation process. The folder contains the program, documentation, parameter and example files.
\rule
@@ -594,8 +598,8 @@ Throughout this manual the following typographic conventions are used to make fi
\e{XTrackCAD} for OSX is shipped as a package containing an application.
-\n Start the installation by opening the package and dragging the contained application into the \e{Applications} folder using the shortcut in the package.
-The application includes the program, documentation, parameter and example files within it.
+\n Start the installation by opening the package and dragging the contained application into the \e{Applications} folder using the shortcut in the package.
+The application includes the program, documentation, parameter and example files within it.
\lcont{\u000}
@@ -603,7 +607,7 @@ The application includes the program, documentation, parameter and example files
\lcont{\u000}
-\n \i{OSX Run Security} When the application is first run, it will need to be authorized by OSX. There will be a OSX prompt that asks if it should be opened. And then it will still fail to run.
+\n \i{OSX Run Security} When the application is first run, it will need to be authorized by OSX. There will be a OSX prompt that asks if it should be opened. And then it will still fail to run.
After opening it for the first time, go to \e{System Preferences>Security & Privacy} and you will see that the app is named as having been blocked. Hit the \e{Run Anyway} button and the program should start.
This sequence may be necessary after each OS upgrade.
@@ -613,17 +617,17 @@ This sequence may be necessary after each OS upgrade.
\S{LinuxInstall} \i{Linux Installation}
-\e{XTrackCAD} for LINUX is shipped as a self-extracting archive (executable).
-
+\e{XTrackCAD} for LINUX is shipped as a self-extracting archive (executable).
+
\n Installing from the self-extracting archive.
\lcont{
-\dd After downloading open a command line then
+\dd After downloading open a command line then
-\dd \c{./\XTCStgzPack --prefix=/usr/local --exclude-subdir}
+\dd \c{./\XTCStgzPack --prefix=/usr/local --exclude-subdir}
-\dd This will install the executable in /usr/local/bin. A directory named \c{xtrkcad} will be created in
+\dd This will install the executable in /usr/local/bin. A directory named \c{xtrkcad} will be created in
/usr/local/share and all files will be unpacked into it.
}
@@ -636,7 +640,7 @@ If you install \e{XTrackCAD} into another directory, set the \c{XTRKCADLIB} envi
The \e{XTrackCAD} executable is named xtrkcad.exe on Windows and xtrkcad on Linux and OSX.
-It is usually started by clicking on its icon, or right-click and \f{Open} in OSX Catalina, but there are command line options as well.
+It is usually started by clicking on its icon, or right-click and \f{Open} in OSX Catalina, but there are command line options as well.
\f{Command Line}
@@ -657,19 +661,19 @@ On Linux:
\dt \c{c config}
-\dd configuration to use. This allows you to have several distinct configurations (eg.
+\dd configuration to use. This allows you to have several distinct configurations (eg.
parameter files, display options).
\u000
\dt \c{layoutfile}
-\dd filename for the layout to load.
+\dd filename for the layout to load.
This parameter takes precedence over the option to resume with the last layout (\K{cmdPref}).
\f{Debugging Parameters}
-The following parameters are for debugging purposes and are mainly of interest to the
+The following parameters are for debugging purposes and are mainly of interest to the
developers.
\dt \c{v}
@@ -681,7 +685,7 @@ developers.
\dt \c{d logcontrol}
\dd specifies the amount of logging. The argument logcontrol has the format \c{logmodule[=level]}.
-logmodule defines the functionality that should be logged, the optional level specifies the loglevel. Zero means no logging.
+logmodule defines the functionality that should be logged, the optional level specifies the loglevel. Zero means no logging.
Defaults are no modules are logged and loglevel is 1 if omitted from logonctrol parameter.
\u000
@@ -690,6 +694,12 @@ Defaults are no modules are logged and loglevel is 1 if omitted from logonctrol
\dd set logfile, only needed in conjunction with the debug option.
+\dt \c{V}
+
+\dd Display the xtrkcad version and exit(0).
+
+\u000
+
\H{introQT} Quick Tour
\G{png.d/main.png}
@@ -739,7 +749,7 @@ Under the Tool Bar is the Hot Bar. This contains defined track and drawing objec
The main part of the window is the Drawing Area, this is where the Layout is shown in 2D. The view can be zoomed or panned. The \f{Pan-Zoom} command whise symbol is the crossed arrows allows easiest control, but in \f{Select} command you can pan with the arrow keys and zoom with the trackpad or mousewheel or \f{Ctrl}+"+" or "-" can affect the zoom level.
-\rule
+\rule
At the bottom on the screen are two more areas. The Status Bar contains messages about commands as they are being used, and the Info Bar shows the zoom level and the position of the cursor.
@@ -768,7 +778,7 @@ This section lists some things that can improve the performance of \e{XTrackCAD}
\H{directories} Files and Directories
-Information within this section of the manual identifies installation directory names, file names and directory and file locations.
+Information within this section of the manual identifies installation directory names, file names and directory and file locations.
\rule
@@ -782,15 +792,15 @@ Information within this section of the manual identifies installation directory
\b The \e{XTrackCAD Working} directory, which contains configuration and Check Point files.
-On MS Windows, the \e{Install} directory is set when you install \e{XTrackCAD}. All data files (parameters,
-demos, examples) can be found in the \c{share/xtrkcad} subdirectory underneath the \e{Install} directory.
+On MS Windows, the \e{Install} directory is set when you install \e{XTrackCAD}. All data files (parameters,
+demos, examples) can be found in the \c{share/xtrkcad} subdirectory underneath the \e{Install} directory.
The \e{Working} directory is in your personal profile.
On Linux, the \e{Install} directory is usually \c{/usr/local/lib/xtrkcad/}, but you can change this by defining the \c{XTRKCADLIB} environment variable before starting \e{XTrackCAD}. The working directory is \c{\{HOME\}/.xtrkcad/}.
On Mac OSX, the \e{Install} directory is the application package, usually located in the \c{/Applications} directory.
All the included parameters, demos and examples can be found inside the package under the \c{/Applications/xtrkcad/Contents/Resources/xtrkcad} directory.
-The \e{Working} directory is created as \c{.xtrkcad} - a hidden directory - under the active user's directory in \c{/Users}
+The \e{Working} directory is created as \c{.xtrkcad} - a hidden directory - under the active user's directory in \c{/Users}
Layout files (\c{*.xtc}) and export (\K{cmdExport}) files (\c{*.xti}) can be saved anywhere you wish, as specified in the \f{Save File} and \f{Open File} dialogs.
@@ -863,7 +873,7 @@ On MS-Windows only, you can also use the \f{Uninstall} icon in the \e{XTrackCAD}
\H{bugs_enhancements} Bugs and Enhancements
-This section of the manual describes how and where to report a bug or seek an enhancement.
+This section of the manual describes how and where to report a bug or seek an enhancement.
\rule
@@ -890,7 +900,7 @@ If you encounter an unreported bug please submit detail regarding such to the \f
\u000
-\dd The error can be replicated by opening the file named cascade.xtc. Set the magnification at 4:1. Attempting to move the text label named "Granville Island" located at the approximate grid coordinates of x=8", y=4' 5". Selecting the label causes the error to occur.
+\dd The error can be replicated by opening the file named cascade.xtc. Set the magnification at 4:1. Attempting to move the text label named "Granville Island" located at the approximate grid coordinates of x=8", y=4' 5". Selecting the label causes the error to occur.
\u000
@@ -902,7 +912,7 @@ If you encounter an unreported bug please submit detail regarding such to the \f
\f{Please be brief, but don't leave any important details out.} This is a fine line to walk. But there are some general guidelines:
-Remember the three basics: what you were doing, what you expected to happen, and what happened.
+Remember the three basics: what you were doing, what you expected to happen, and what happened.
If you can recreate the problem the \f{Macro>Record} command can be used to record what happened. Try to isolate the problem by creating a minimal layout and recording as few commands as possible.
diff --git a/app/doc/managem.but b/app/doc/managem.but
index 7996ef1..2a835c3 100644
--- a/app/doc/managem.but
+++ b/app/doc/managem.but
@@ -129,7 +129,7 @@ The \f{Import} and \f{Export} buttons read and write a \e{Comma-Separated-Value
\u000
-\dd \e{PurchPrice}, \e{CurrPrice}, \e{PurchDate} and \e{ServiceDate} - numeric values
+\dd \e{PurchPrice}, \e{CurrPrice}, \e{PurchDate} and \e{ServiceDate} - numeric values - dates are in the form yyyymmdd, where yyyy is the year, mm the month, dd the day
\u000
@@ -215,7 +215,7 @@ This dialog is similar the the \f{Car Item} dialog except that the \f{Car Item I
The middle section contains:
-\dd The \f{Road}, \f{Reporting Mark}, \f{Number} and \f{Color}. You can choose a \f{Road name} from the list of known road names or enter a new value. If known, the \e{reporting mark} (road name abbreviation) is filled in.
+\dd The \f{Road}, \f{Reporting Mark}, \f{Number} and \f{Color}. You can choose a \f{Road name} from the list of known road names or enter a new value. If known, the \e{reporting mark} (road name abbreviation) is filled in. These values control what label content is shown for Cars. If a reporting number is present the rep mark and the rep number will be used if the Cars Label Option is on in \K{cmdDisplay}
\u000
@@ -358,15 +358,18 @@ If you modify a definition from a \e{XTrackCAD} Library parameter file, the new
\S{cmdLayer} Layers Dialog
-Each object is contained in a layer - which is a custom group of objects that do not have a particular visual order, but can be treated as a set for certain commands. Objects which are created independently of other objects (such as straight tracks (\K{cmdStraight}) or text (\K{cmdText})) are created in the current layer. Objects which are associated with other objects (such as tracks created by the \f{Modify} (\K{cmdModify}) or \f{Join} (\K{cmdJoin}) commands) are created in the same layer as the associated object(s).
+Each object is contained in a layer - which is a custom group of objects that do not have a particular visual order, but can be treated as a set for certain commands.
+Objects which are created independently of other objects (such as straight tracks (\K{cmdStraight}) or text (\K{cmdText})) are created in the current layer.
+Objects which are associated with other objects (such as tracks created by the \f{Modify} (\K{cmdModify}) or \f{Join} (\K{cmdJoin}) commands) are created in the same layer as the associated object(s).
The \f{Layers} dialog allows you to change various attributes of each of the 99 possible \f{layers}.
-Attributes associated with a layout are stored within the associated layout file and apply only to the layout that's open at the time of a change. It is possible to apply attributes from one layout file to another using the \f{Load} and \f{Save} buttons.
+Attributes associated with a layout are stored within the associated layout file and apply only to the layout that's open at the time of a change.
+It is possible to apply attributes from one layout file to another using the \f{Load} and \f{Save} buttons.
\G{png.d/dlayers.png}
-The drop down list at the top of the dialog selects the \f{Layer} you are interested in. Non-empty layers are preceded by a \c{+}.
+The drop down list at the top of the dialog selects the \f{Layer} you are interested in. Frozen layers are preceeded by a \c{*}, Module layers are proceeded by a \c{m}, non-empty layers are preceded by a \c{+} and empty layers by a \c{-}.
The \f{Name} edit box contains the name of the \f{Layer}. This name is listed in the \f{Current Layer} drop down list on the \f{Tool-bar} (\K{mainW}). Also the \f{Name} is displayed as the balloon help for the corresponding \f{Layer Button}.
@@ -378,10 +381,19 @@ The \f{Frozen} check-box indicates that tracks in that \f{Layer} can not be modi
The \f{On Map} check-box controls whether the \f{Layer} is drawn on the Map (\K{cmdMap}) window.
-The \f{Module} check-box controls whether the \f{Layer} is selected/deselected and so moved or rotated as a group - this can be used to denote a track module in a modular layout - allowing the modules to be positioned as units. Objects in a Module Layer can not be individually modified. One way of getting a modules in is to build a library with \f{Export} and then \f{Import As Module} - this creates one layer per module, names it and sets the \f{Module} check-box.
+The \f{Module} check-box controls whether the \f{Layer} is selected/deselected and so moved or rotated as a group - this can be used to denote a track module in a modular layout - allowing the modules to be positioned as units.
+Objects in a Module Layer can not be individually modified.
+One way of getting a modules in is to build a library with \f{Export} and then \f{Import As Module} - this creates one layer per module, names it and sets the \f{Module} check-box.
+
+The \f{No Button} check-box selects if the \f{Layer} has a button to hide/show it. You may choose not to have a button if the layer is empty or if it is a sub-layer controlled by another layer.
+
+The \f{Linked Layers} text box can contain a semi-colon-delimited set of layer numbers that will be shown and hidden along with this layer when its show/hidden state is changed. A blank means no layers are linked. The layers can have buttons or not.
You cannot uncheck \f{Visible} or check \f{Frozen} for the \f{Current Layer}.
+The \f{Load Settings} specifies a settings (.xset) filename in the XTrackCAD working directory that is loaded when this layer is made current. Only the values contained in the file will be set.
+If this name is blank the default values (all those in use when any layer that has no Load Settings file value was last used) will be reloaded (or retained). The dropbox contains all the names of files in that directory.
+
The \f{Count} field displays the number of objects in the selected Layer.
The \f{Save} button stores layer attributes in the \c{xtrkcad.ini} file so they may be loaded into an existing or new file. Once saved and unless reset to \e{XTrackCAD} \f{Default}, modified layer information is applied to each new file.
@@ -390,7 +402,7 @@ The \f{Load} button reads layer attributes from the \c{xtrkcad.ini} file then ap
The \f{Defaults} button restores layer attributes to default \e{XTrackCAD} settings.
-The bottom of the dialog contains the \f{Number of Layer Buttons} integer edit box. This controls the number of \f{Layer Buttons} displayed on the \f{Tool-bar} (\K{mainW}). These buttons make it easy to switch between layers. The maximum number of \f{Layer Buttons} that can be displayed is 20. Therefore you should use layers one to twenty for objects which you will be showing and hiding frequently.
+The bottom of the dialog contains the \f{Number of Layer Buttons} integer edit box. This controls the number of \f{Layer Buttons} displayed on the \f{Tool-bar} (\K{mainW}). These buttons make it easy to switch between layers. The maximum number of \f{Layer Buttons} that can be displayed is 99. Layers with "no-button" set do not count towards the Number of Layer Buttons.
\G{png.d/blayer.png}
@@ -414,6 +426,8 @@ Objects are drawn on the map window, if the Layer they are on has \f{On Map} che
The \f{Parts List} command produces a list of all selected (\K{cmdSelect}) turnouts, sectional track and bench-work. It also computes total length of selected flex-track.
+If no objects are selected, all objects are enumerated.
+
\G{png.d/partslist.png}
The \f{Save As...} button opens a \e{File Save} dialog window that's used to name and save the parts list to a file.
@@ -424,7 +438,9 @@ The \f{Close} button terminates the \f{Parts List} command.
The \f{Parts List} dialog will list pricing for selected objects if the \e{Prices} check box is checked. Prices are set using the Price List (\K{cmdPricelist}) dialog.
-Hint: use the \f{Parts List} command to measure the length of selected flex-track.
+The \f{Parts List} dialog will list the index numbers of each type of named track in a comma delimited list on a new line if the \e{Indexes} check box is checked. This list can be used in the Select By Index (\K{cmdSelectIndex}) command.
+
+Hint: you can use the \f{Parts List} command to measure the length of selected flex-track.
\rule
@@ -602,7 +618,7 @@ The Parts List (\K{cmdEnum}) dialog lists prices for selected objects if the \e{
\u000
-\dd Turntables can be turned by using \e{Shift+Left-Click} on the endpoint you want the Turntable to move to. To turn the Turntable 180\u00B0, \e{Shift+Left-Click} on the endpoint again.
+\dd Turntables can be turned by using \e{Shift+Left-Click} on the endpoint you want the Turntable bridge to move to. If you click on the Turntable where there is no endpoint, the Turntable will turn to the next endpoint beyond that point in the direction of the click relative to the nearest end of the turntable bridge. To turn the Turntable 180\u00B0, \e{Shift+Left-Click} on the current endpoint again.
\rule
diff --git a/app/doc/navigation.but b/app/doc/navigation.but
index e0269f4..f648a70 100644
--- a/app/doc/navigation.but
+++ b/app/doc/navigation.but
@@ -245,15 +245,17 @@ Lengths and Distances can be entered in a variety of formats;
\u000
-\dd Pressing the Equal Sign (\c{=}) key after an entry will reformat the value entered to your preferred length format (\K{cmdPref}).
+\dd Adding the Equal Sign (\c{=}) key after an entry will reformat the value entered to your preferred length format (\K{cmdPref}).
\u000
-\dd Pressing the "\c{p}" key after an entry will convert a prototype measurement to a scale measurement by dividing the value entered by the ratio for the current scale.
+\dd Adding the "\c{p}" key after an entry will convert a prototype measurement to a scale measurement by dividing the value entered by the ratio for the current scale.
\u000
-\dd Pressing the "\c{s}" key after an entry will convert a scale measurement to a prototype measurement.
+\dd Adding the "\c{s}" key after an entry will convert a scale measurement to a prototype measurement.
+
+The conversion will happen when the \e{Tab} key is used, or the cursor is moved to a different entry box.
\rule
@@ -300,7 +302,7 @@ Instead of using the menus or the buttons on the \f{Tool-bar} (\K{mainW}), most
\u000
-\dd The \c{DELETE} key invokes the \f{Delete} (\K{cmdDelete}) command.
+\dd The \c{DELETE} or the \c{BackSpace} key invokes the \f{Delete} (\K{cmdDelete}) command.
Several Shortcut key commands are used in conjunction with the mouse. These commands are listed in \K{cmdAcclKeys}.
@@ -1136,6 +1138,10 @@ The Shortcut key for each command is listed after the command name.
\u000
+\dt Angle Command (\K{cmdAngle})
+
+\dd Position Protractor - \e{Left-Drag}
+
\dt Select Command (\K{cmdSelect}) - \e{Ctrl+E}
diff --git a/app/doc/optionm.but b/app/doc/optionm.but
index 8876d96..7e3a69f 100644
--- a/app/doc/optionm.but
+++ b/app/doc/optionm.but
@@ -149,6 +149,10 @@ Setting this option constrains the Main Canvas to minimize these areas (the \f{g
\u000
+\dd \f{Dont Hide System Cursor} - when XTrackCAD substitutes a specialized cursor to show actions that will occur (or are occuring) it will normallly hide the System Cursor. This option suppresses this behaviour and leaves the system cursor in place.
+
+\u000
+
\dd \f{Draw EndPts} - when to draw endpoints between connected track: never, only for turnouts or for all tracks.
\u000
@@ -183,13 +187,13 @@ Setting this option constrains the Main Canvas to minimize these areas (the \f{g
\u000
-\b \e{Cars} - Reporting mark labels on cars.
+\b \e{Cars} - Reporting mark labels on cars - the content shown on the Cars label is either the Repmarks (if the Rep Number is set), or the car index number (with a "#" before it). See the Car Part dialog \K{carpart}.
\b \e{EndPt Elevations} - Elevation markers attached to endpoints.
-\b \e{Lengths} - Length of flex-track attached to ends of turnouts.
+\b \e{Lengths} - Length of flex-track attached to ends of turnouts all the way to the next turnout.
-\b \e{Track Descriptions} - Title of each turnout and sectional track.
+\b \e{Track Descriptions} - Title of each turnout and sectional track, optional details of each piece of Flexible Track. These can be shown or hidden using the Move Description \K{cmdMoveLabel} command.
\b \e{Track Elevations} - Computed elevations at the center of each track.
@@ -201,11 +205,11 @@ Setting this option constrains the Main Canvas to minimize these areas (the \f{g
\u000
-\dd \f{Layout Labels} - controls the format of titles for turnouts and structures displayed on the Layout.
+\dd \f{Layout Labels} - controls the format of titles for Turnouts and Structures displayed on the Layout.
\u000
-\dd \f{Label Scale} - draw labels only when the drawing Scale is smaller or equal to this value.
+\dd \f{Label Scale} - the program will draw labels only when the drawing Scale is smaller or equal to this value.
\u000
@@ -461,6 +465,14 @@ This dialog controls some parameters which likely will not be changed frequently
\dd \f{Units} - choose between English (inches) or Metric (centimeters) measurements.
+\u000
+
+\dd \f{Write Settings} - Save the current settings to a named settings file
+
+\u000
+
+\dd \f{Read Settings} - Load settings from a named settings file
+
\rule
diff --git a/app/doc/png.d/bangle.png b/app/doc/png.d/bangle.png
new file mode 100644
index 0000000..ee50dc6
--- /dev/null
+++ b/app/doc/png.d/bangle.png
Binary files differ
diff --git a/app/doc/png.d/bblock.png b/app/doc/png.d/bblock.png
index ccd90d9..f5d3593 100644
--- a/app/doc/png.d/bblock.png
+++ b/app/doc/png.d/bblock.png
Binary files differ
diff --git a/app/doc/png.d/bcircl1.png b/app/doc/png.d/bcircl1.png
index aa53512..af861ee 100644
--- a/app/doc/png.d/bcircl1.png
+++ b/app/doc/png.d/bcircl1.png
Binary files differ
diff --git a/app/doc/png.d/bcircl2.png b/app/doc/png.d/bcircl2.png
index 1df9bfc..41c6087 100644
--- a/app/doc/png.d/bcircl2.png
+++ b/app/doc/png.d/bcircl2.png
Binary files differ
diff --git a/app/doc/png.d/bcircl3.png b/app/doc/png.d/bcircl3.png
index 4e7a34c..7736f53 100644
--- a/app/doc/png.d/bcircl3.png
+++ b/app/doc/png.d/bcircl3.png
Binary files differ
diff --git a/app/doc/png.d/bcircle.png b/app/doc/png.d/bcircle.png
index 3fecbe3..327a837 100644
--- a/app/doc/png.d/bcircle.png
+++ b/app/doc/png.d/bcircle.png
Binary files differ
diff --git a/app/doc/png.d/bconnect.png b/app/doc/png.d/bconnect.png
index 840fa82..602dc60 100644
--- a/app/doc/png.d/bconnect.png
+++ b/app/doc/png.d/bconnect.png
Binary files differ
diff --git a/app/doc/png.d/bcontrol.png b/app/doc/png.d/bcontrol.png
index 131bb94..4b35f1e 100644
--- a/app/doc/png.d/bcontrol.png
+++ b/app/doc/png.d/bcontrol.png
Binary files differ
diff --git a/app/doc/png.d/bcornu.png b/app/doc/png.d/bcornu.png
index 6844a84..60c632e 100644
--- a/app/doc/png.d/bcornu.png
+++ b/app/doc/png.d/bcornu.png
Binary files differ
diff --git a/app/doc/png.d/bcurve.png b/app/doc/png.d/bcurve.png
index 8cb3ae7..72b852c 100644
--- a/app/doc/png.d/bcurve.png
+++ b/app/doc/png.d/bcurve.png
Binary files differ
diff --git a/app/doc/png.d/bcurve1.png b/app/doc/png.d/bcurve1.png
index f6e594c..c5bebb3 100644
--- a/app/doc/png.d/bcurve1.png
+++ b/app/doc/png.d/bcurve1.png
Binary files differ
diff --git a/app/doc/png.d/bcurve2.png b/app/doc/png.d/bcurve2.png
index 6ad7001..e165b7e 100644
--- a/app/doc/png.d/bcurve2.png
+++ b/app/doc/png.d/bcurve2.png
Binary files differ
diff --git a/app/doc/png.d/bcurve3.png b/app/doc/png.d/bcurve3.png
index 1e84751..766758c 100644
--- a/app/doc/png.d/bcurve3.png
+++ b/app/doc/png.d/bcurve3.png
Binary files differ
diff --git a/app/doc/png.d/bcurve4.png b/app/doc/png.d/bcurve4.png
index 87fb172..81e9856 100644
--- a/app/doc/png.d/bcurve4.png
+++ b/app/doc/png.d/bcurve4.png
Binary files differ
diff --git a/app/doc/png.d/bdelete.png b/app/doc/png.d/bdelete.png
index 75038e7..245596a 100644
--- a/app/doc/png.d/bdelete.png
+++ b/app/doc/png.d/bdelete.png
Binary files differ
diff --git a/app/doc/png.d/bdescrib.png b/app/doc/png.d/bdescrib.png
index f501f13..29e011c 100644
--- a/app/doc/png.d/bdescrib.png
+++ b/app/doc/png.d/bdescrib.png
Binary files differ
diff --git a/app/doc/png.d/bdraw.png b/app/doc/png.d/bdraw.png
index 540cce9..0d282c1 100644
--- a/app/doc/png.d/bdraw.png
+++ b/app/doc/png.d/bdraw.png
Binary files differ
diff --git a/app/doc/png.d/beasement.png b/app/doc/png.d/beasement.png
index 1e4bd1a..b1c456a 100644
--- a/app/doc/png.d/beasement.png
+++ b/app/doc/png.d/beasement.png
Binary files differ
diff --git a/app/doc/png.d/belev.png b/app/doc/png.d/belev.png
index 6ecb86a..9a73e90 100644
--- a/app/doc/png.d/belev.png
+++ b/app/doc/png.d/belev.png
Binary files differ
diff --git a/app/doc/png.d/bfile.png b/app/doc/png.d/bfile.png
index 895f376..6c140fb 100644
--- a/app/doc/png.d/bfile.png
+++ b/app/doc/png.d/bfile.png
Binary files differ
diff --git a/app/doc/png.d/bflip.png b/app/doc/png.d/bflip.png
index cdf548a..6ec7a00 100644
--- a/app/doc/png.d/bflip.png
+++ b/app/doc/png.d/bflip.png
Binary files differ
diff --git a/app/doc/png.d/bgsnap.png b/app/doc/png.d/bgsnap.png
index 1cf93fa..4aebf61 100644
--- a/app/doc/png.d/bgsnap.png
+++ b/app/doc/png.d/bgsnap.png
Binary files differ
diff --git a/app/doc/png.d/bgundo.png b/app/doc/png.d/bgundo.png
index 25dcac1..42d0bce 100644
--- a/app/doc/png.d/bgundo.png
+++ b/app/doc/png.d/bgundo.png
Binary files differ
diff --git a/app/doc/png.d/bgzoom.png b/app/doc/png.d/bgzoom.png
index 9de3726..ce244bd 100644
--- a/app/doc/png.d/bgzoom.png
+++ b/app/doc/png.d/bgzoom.png
Binary files differ
diff --git a/app/doc/png.d/bhelix.png b/app/doc/png.d/bhelix.png
index fab3d1a..c7ce099 100644
--- a/app/doc/png.d/bhelix.png
+++ b/app/doc/png.d/bhelix.png
Binary files differ
diff --git a/app/doc/png.d/bhndldto.png b/app/doc/png.d/bhndldto.png
index 7b362c2..6e13542 100644
--- a/app/doc/png.d/bhndldto.png
+++ b/app/doc/png.d/bhndldto.png
Binary files differ
diff --git a/app/doc/png.d/bitmap.png b/app/doc/png.d/bitmap.png
index 33471c8..28fcabb 100644
--- a/app/doc/png.d/bitmap.png
+++ b/app/doc/png.d/bitmap.png
Binary files differ
diff --git a/app/doc/png.d/bmap.png b/app/doc/png.d/bmap.png
index 7a99724..98b4a6f 100644
--- a/app/doc/png.d/bmap.png
+++ b/app/doc/png.d/bmap.png
Binary files differ
diff --git a/app/doc/png.d/bmcircle.png b/app/doc/png.d/bmcircle.png
index fc26dbf..ca7017f 100644
--- a/app/doc/png.d/bmcircle.png
+++ b/app/doc/png.d/bmcircle.png
Binary files differ
diff --git a/app/doc/png.d/bmcurved.png b/app/doc/png.d/bmcurved.png
index 0feef79..1c76f6a 100644
--- a/app/doc/png.d/bmcurved.png
+++ b/app/doc/png.d/bmcurved.png
Binary files differ
diff --git a/app/doc/png.d/bmenu.png b/app/doc/png.d/bmenu.png
index 75cc557..34ef253 100644
--- a/app/doc/png.d/bmenu.png
+++ b/app/doc/png.d/bmenu.png
Binary files differ
diff --git a/app/doc/png.d/bmodify.png b/app/doc/png.d/bmodify.png
index c33196a..9a534a9 100644
--- a/app/doc/png.d/bmodify.png
+++ b/app/doc/png.d/bmodify.png
Binary files differ
diff --git a/app/doc/png.d/bmove.png b/app/doc/png.d/bmove.png
index 311d9aa..54dc628 100644
--- a/app/doc/png.d/bmove.png
+++ b/app/doc/png.d/bmove.png
Binary files differ
diff --git a/app/doc/png.d/bmovedes.png b/app/doc/png.d/bmovedes.png
index fcff047..b76b878 100644
--- a/app/doc/png.d/bmovedes.png
+++ b/app/doc/png.d/bmovedes.png
Binary files differ
diff --git a/app/doc/png.d/bnewcar.png b/app/doc/png.d/bnewcar.png
index a83f9da..61b8ff9 100644
--- a/app/doc/png.d/bnewcar.png
+++ b/app/doc/png.d/bnewcar.png
Binary files differ
diff --git a/app/doc/png.d/bnote.png b/app/doc/png.d/bnote.png
index da70589..b91518b 100644
--- a/app/doc/png.d/bnote.png
+++ b/app/doc/png.d/bnote.png
Binary files differ
diff --git a/app/doc/png.d/brotate.png b/app/doc/png.d/brotate.png
index b2bdd6e..db7b615 100644
--- a/app/doc/png.d/brotate.png
+++ b/app/doc/png.d/brotate.png
Binary files differ
diff --git a/app/doc/png.d/bruler.png b/app/doc/png.d/bruler.png
index 85184dd..a44a0c3 100644
--- a/app/doc/png.d/bruler.png
+++ b/app/doc/png.d/bruler.png
Binary files differ
diff --git a/app/doc/png.d/bselect.png b/app/doc/png.d/bselect.png
index b47a3f4..f980d62 100644
--- a/app/doc/png.d/bselect.png
+++ b/app/doc/png.d/bselect.png
Binary files differ
diff --git a/app/doc/png.d/bsensor.png b/app/doc/png.d/bsensor.png
index 7d9834b..c573757 100644
--- a/app/doc/png.d/bsensor.png
+++ b/app/doc/png.d/bsensor.png
Binary files differ
diff --git a/app/doc/png.d/bsignal.png b/app/doc/png.d/bsignal.png
index f6b52f8..a1c1ab0 100644
--- a/app/doc/png.d/bsignal.png
+++ b/app/doc/png.d/bsignal.png
Binary files differ
diff --git a/app/doc/png.d/bsplit.png b/app/doc/png.d/bsplit.png
index f9ea955..7185efe 100644
--- a/app/doc/png.d/bsplit.png
+++ b/app/doc/png.d/bsplit.png
Binary files differ
diff --git a/app/doc/png.d/bstraigh.png b/app/doc/png.d/bstraigh.png
index 5b556c0..4c8aac6 100644
--- a/app/doc/png.d/bstraigh.png
+++ b/app/doc/png.d/bstraigh.png
Binary files differ
diff --git a/app/doc/png.d/bstruct.png b/app/doc/png.d/bstruct.png
index 7ec6620..b361450 100644
--- a/app/doc/png.d/bstruct.png
+++ b/app/doc/png.d/bstruct.png
Binary files differ
diff --git a/app/doc/png.d/bswitchmotor.png b/app/doc/png.d/bswitchmotor.png
index 68d9a4a..93333ae 100644
--- a/app/doc/png.d/bswitchmotor.png
+++ b/app/doc/png.d/bswitchmotor.png
Binary files differ
diff --git a/app/doc/png.d/btext.png b/app/doc/png.d/btext.png
index 253a810..530a18e 100644
--- a/app/doc/png.d/btext.png
+++ b/app/doc/png.d/btext.png
Binary files differ
diff --git a/app/doc/png.d/btop_bottom.png b/app/doc/png.d/btop_bottom.png
index 6f3300f..d2fb217 100644
--- a/app/doc/png.d/btop_bottom.png
+++ b/app/doc/png.d/btop_bottom.png
Binary files differ
diff --git a/app/doc/png.d/btrain.png b/app/doc/png.d/btrain.png
index 2e39236..2cdba2d 100644
--- a/app/doc/png.d/btrain.png
+++ b/app/doc/png.d/btrain.png
Binary files differ
diff --git a/app/doc/png.d/btunnel.png b/app/doc/png.d/btunnel.png
index 4f4a81f..d861dde 100644
--- a/app/doc/png.d/btunnel.png
+++ b/app/doc/png.d/btunnel.png
Binary files differ
diff --git a/app/doc/png.d/bturnout.png b/app/doc/png.d/bturnout.png
index a63d6d5..f25a568 100644
--- a/app/doc/png.d/bturnout.png
+++ b/app/doc/png.d/bturnout.png
Binary files differ
diff --git a/app/doc/png.d/bturntbl.png b/app/doc/png.d/bturntbl.png
index 9561901..9f13800 100644
--- a/app/doc/png.d/bturntbl.png
+++ b/app/doc/png.d/bturntbl.png
Binary files differ
diff --git a/app/doc/png.d/cmdopt.png b/app/doc/png.d/cmdopt.png
index b721bbc..992426d 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/colorw.png b/app/doc/png.d/colorw.png
index ffe5347..4d7fa91 100644
--- a/app/doc/png.d/colorw.png
+++ b/app/doc/png.d/colorw.png
Binary files differ
diff --git a/app/doc/png.d/convertto.png b/app/doc/png.d/convertto.png
index 9c16665..bd70934 100644
--- a/app/doc/png.d/convertto.png
+++ b/app/doc/png.d/convertto.png
Binary files differ
diff --git a/app/doc/png.d/dcircle3.png b/app/doc/png.d/dcircle3.png
index 31043e3..70a2d30 100644
--- a/app/doc/png.d/dcircle3.png
+++ b/app/doc/png.d/dcircle3.png
Binary files differ
diff --git a/app/doc/png.d/displayopt.png b/app/doc/png.d/displayopt.png
index be769a1..cf0178a 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/dlayers.png b/app/doc/png.d/dlayers.png
index a965062..923787c 100644
--- a/app/doc/png.d/dlayers.png
+++ b/app/doc/png.d/dlayers.png
Binary files differ
diff --git a/app/doc/png.d/dprmfile.png b/app/doc/png.d/dprmfile.png
index 7733a1c..ba5170a 100644
--- a/app/doc/png.d/dprmfile.png
+++ b/app/doc/png.d/dprmfile.png
Binary files differ
diff --git a/app/doc/png.d/layout.png b/app/doc/png.d/layout.png
index d5607da..54f35c9 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/madd.png b/app/doc/png.d/madd.png
index e8a664f..bde4a7f 100644
--- a/app/doc/png.d/madd.png
+++ b/app/doc/png.d/madd.png
Binary files differ
diff --git a/app/doc/png.d/maddcircle.png b/app/doc/png.d/maddcircle.png
new file mode 100644
index 0000000..57708a1
--- /dev/null
+++ b/app/doc/png.d/maddcircle.png
Binary files differ
diff --git a/app/doc/png.d/maddcontrol.png b/app/doc/png.d/maddcontrol.png
new file mode 100644
index 0000000..0a0e167
--- /dev/null
+++ b/app/doc/png.d/maddcontrol.png
Binary files differ
diff --git a/app/doc/png.d/maddcurve.png b/app/doc/png.d/maddcurve.png
new file mode 100644
index 0000000..7b63b71
--- /dev/null
+++ b/app/doc/png.d/maddcurve.png
Binary files differ
diff --git a/app/doc/png.d/maddparallel.png b/app/doc/png.d/maddparallel.png
new file mode 100644
index 0000000..c821f4a
--- /dev/null
+++ b/app/doc/png.d/maddparallel.png
Binary files differ
diff --git a/app/doc/png.d/mchange.png b/app/doc/png.d/mchange.png
index f891411..e09079c 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/mconvert.png b/app/doc/png.d/mconvert.png
new file mode 100644
index 0000000..879777d
--- /dev/null
+++ b/app/doc/png.d/mconvert.png
Binary files differ
diff --git a/app/doc/png.d/mdraw.png b/app/doc/png.d/mdraw.png
index 46b1f69..24d46ce 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/mdrawcircles.png b/app/doc/png.d/mdrawcircles.png
index 30f9f00..42e1854 100644
--- a/app/doc/png.d/mdrawcircles.png
+++ b/app/doc/png.d/mdrawcircles.png
Binary files differ
diff --git a/app/doc/png.d/mdrawcurve.png b/app/doc/png.d/mdrawcurve.png
index 20501f0..6a638c3 100644
--- a/app/doc/png.d/mdrawcurve.png
+++ b/app/doc/png.d/mdrawcurve.png
Binary files differ
diff --git a/app/doc/png.d/mdrawmeasure.png b/app/doc/png.d/mdrawmeasure.png
new file mode 100644
index 0000000..e090704
--- /dev/null
+++ b/app/doc/png.d/mdrawmeasure.png
Binary files differ
diff --git a/app/doc/png.d/mdrawnotes.png b/app/doc/png.d/mdrawnotes.png
new file mode 100644
index 0000000..2b0a128
--- /dev/null
+++ b/app/doc/png.d/mdrawnotes.png
Binary files differ
diff --git a/app/doc/png.d/mdrawshapes.png b/app/doc/png.d/mdrawshapes.png
index d7a8a30..7d81c96 100644
--- a/app/doc/png.d/mdrawshapes.png
+++ b/app/doc/png.d/mdrawshapes.png
Binary files differ
diff --git a/app/doc/png.d/mdrawstraight.png b/app/doc/png.d/mdrawstraight.png
index c0767a3..dbf4363 100644
--- a/app/doc/png.d/mdrawstraight.png
+++ b/app/doc/png.d/mdrawstraight.png
Binary files differ
diff --git a/app/doc/png.d/medit.png b/app/doc/png.d/medit.png
index 3b69b83..2ffa681 100644
--- a/app/doc/png.d/medit.png
+++ b/app/doc/png.d/medit.png
Binary files differ
diff --git a/app/doc/png.d/mfile.png b/app/doc/png.d/mfile.png
index 4bbd678..3318d9e 100644
--- a/app/doc/png.d/mfile.png
+++ b/app/doc/png.d/mfile.png
Binary files differ
diff --git a/app/doc/png.d/mhelp.png b/app/doc/png.d/mhelp.png
index e06e37d..158657e 100644
--- a/app/doc/png.d/mhelp.png
+++ b/app/doc/png.d/mhelp.png
Binary files differ
diff --git a/app/doc/png.d/mhelpdemos.png b/app/doc/png.d/mhelpdemos.png
index 1b935bc..f67ee8e 100644
--- a/app/doc/png.d/mhelpdemos.png
+++ b/app/doc/png.d/mhelpdemos.png
Binary files differ
diff --git a/app/doc/png.d/mjoin.png b/app/doc/png.d/mjoin.png
new file mode 100644
index 0000000..29034d6
--- /dev/null
+++ b/app/doc/png.d/mjoin.png
Binary files differ
diff --git a/app/doc/png.d/mmacro.png b/app/doc/png.d/mmacro.png
index 4bb4203..b88580f 100644
--- a/app/doc/png.d/mmacro.png
+++ b/app/doc/png.d/mmacro.png
Binary files differ
diff --git a/app/doc/png.d/mmanage.png b/app/doc/png.d/mmanage.png
index 8ea36f7..34647cc 100644
--- a/app/doc/png.d/mmanage.png
+++ b/app/doc/png.d/mmanage.png
Binary files differ
diff --git a/app/doc/png.d/mmanageturnoutdesign.png b/app/doc/png.d/mmanageturnoutdesign.png
index 9a1fbec..9473414 100644
--- a/app/doc/png.d/mmanageturnoutdesign.png
+++ b/app/doc/png.d/mmanageturnoutdesign.png
Binary files differ
diff --git a/app/doc/png.d/moptions.png b/app/doc/png.d/moptions.png
index 3548abf..c8dbeb5 100644
--- a/app/doc/png.d/moptions.png
+++ b/app/doc/png.d/moptions.png
Binary files differ
diff --git a/app/doc/png.d/mselect.png b/app/doc/png.d/mselect.png
deleted file mode 100644
index 3d0f78a..0000000
--- a/app/doc/png.d/mselect.png
+++ /dev/null
Binary files differ
diff --git a/app/doc/png.d/mselectcmd.png b/app/doc/png.d/mselectcmd.png
new file mode 100644
index 0000000..07a4c20
--- /dev/null
+++ b/app/doc/png.d/mselectcmd.png
Binary files differ
diff --git a/app/doc/png.d/mselectcontext.png b/app/doc/png.d/mselectcontext.png
new file mode 100644
index 0000000..fe6a34c
--- /dev/null
+++ b/app/doc/png.d/mselectcontext.png
Binary files differ
diff --git a/app/doc/png.d/mselected.png b/app/doc/png.d/mselected.png
deleted file mode 100644
index c6ac4a3..0000000
--- a/app/doc/png.d/mselected.png
+++ /dev/null
Binary files differ
diff --git a/app/doc/png.d/mselectedcontext.png b/app/doc/png.d/mselectedcontext.png
new file mode 100644
index 0000000..607398f
--- /dev/null
+++ b/app/doc/png.d/mselectedcontext.png
Binary files differ
diff --git a/app/doc/png.d/msplit.png b/app/doc/png.d/msplit.png
new file mode 100644
index 0000000..2fe2d48
--- /dev/null
+++ b/app/doc/png.d/msplit.png
Binary files differ
diff --git a/app/doc/png.d/mview.png b/app/doc/png.d/mview.png
index 7bf2037..61fff8c 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/paramsearch.png b/app/doc/png.d/paramsearch.png
index ec6b2b8..2aca111 100644
--- a/app/doc/png.d/paramsearch.png
+++ b/app/doc/png.d/paramsearch.png
Binary files differ
diff --git a/app/doc/png.d/pref.png b/app/doc/png.d/pref.png
index e72b459..57940a6 100644
--- a/app/doc/png.d/pref.png
+++ b/app/doc/png.d/pref.png
Binary files differ
diff --git a/app/doc/png.d/statustext.png b/app/doc/png.d/statustext.png
index 6435000..ac9fc02 100644
--- a/app/doc/png.d/statustext.png
+++ b/app/doc/png.d/statustext.png
Binary files differ
diff --git a/app/doc/png.d/sticky.png b/app/doc/png.d/sticky.png
index fbc2316..2683cce 100644
--- a/app/doc/png.d/sticky.png
+++ b/app/doc/png.d/sticky.png
Binary files differ
diff --git a/app/doc/view_winm.but b/app/doc/view_winm.but
index cb115a9..f814c3f 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{Magnetic Snap On/Off} - Toggles Magnets for Add Operations on and off. The magnets make tracks auto-align and shapes touch when the cursor or object is close. They can be defeated on each operation by holding down \e{Alt}. If the Magnets are off, holding down \e{Alt} will enable them.
+\dd \f{Magnetic Snap On/Off} - Toggles Magnets (\K{cmdMagneticSnap}) for Add Operations on and off. The magnets make tracks auto-align and shapes touch when the cursor or object is close. They can be defeated on each operation by holding down \e{Alt}. If the Magnets are off, holding down \e{Alt} will enable them.
\u000
@@ -42,6 +42,10 @@ The \f{View Menu} shows commands affecting the display of the \f{Main Canvas} (\
\u000
+\dd \f{Pan/Zoom} - move or resize the viewport using the mouse (\K{cmdPan}).
+
+\u000
+
\dd \G{png.d/mzoomscale.png}
\u000
@@ -62,15 +66,34 @@ When zooming in or out, the corresponding highlighted area of the \f{Map Window}
\rule
+\S{cmdMagneticSnap} Magnetic Snap
+
+The \f{MagneticSnap} feature eases constructing and assembling Tracks and Draw objects by "snapping" the end of new objects to existing objects.
+For existing track objects the point snapped to is always an open end point.
+The snap operates when "close" to the object (a few pixels distant) and an anchor point (a blue circle) is displayed when this will occur if the mouse is clicked.
+
+\u000
+When Adding Draw line objects, the snap point is the nearest point on the existing object.
+A snap to the end of a line object can be selected by positioning the cursor close to the end of the line but off it, in the direction of the line. This will ensure the closest point is the end.
+
+\u000
+The \f{MagneticSnap} feature is enabled and disabled using either the magnet icon which is part of the \f{SnapGrid} Toolbar button set, or using the View (\K{viewM}) menu.
+
+For each part of an Add or Move or Rotate operation, the current state of \f{MagneticSnap} can be temporarily inverted using the \f{Alt} key.
+This enables snapping to be inhibited for a single part of an operation (or conversely enabled for just one part).
+
+\rule
+
\S{cmdGrid} Grid Dialog
-The \f{Grid} dialog, displayed by \f{Change Grid} on the View (\K{viewM}) menu, specifies the origin, angle and other parameters of the Snap Grid. The Snap Grid controls the position of the cursor during the \f{Curve} (\K{cmdCurve}), \f{Circle} (\K{cmdCircle}), \f{Modify} (\K{cmdModify}), \f{Straight} (\K{cmdStraight}), \f{Line Drawing} (\K{cmdDraw}) and \f{Turntable} (\K{cmdTurntable}) commands.
+The \f{Grid} dialog, displayed by \f{Change Grid} on the View (\K{viewM}) menu, specifies the origin, angle and other parameters of the Snap Grid.
+The Snap Grid can sbe used to snap the position of the cursor during the \f{Curve} (\K{cmdCurve}), \f{Circle} (\K{cmdCircle}), \f{Cornu} (\K{cmdCornu}), \f{Modify} (\K{cmdModify}), \f{Straight} (\K{cmdStraight}), \f{Draw} (\K{cmdDraw}) and \f{Turntable} (\K{cmdTurntable}) commands.
\G{png.d/grid.png}
The \f{Grid} dialog contains controls affecting the horizontal and vertical snap grid lines. Each dimension can be independently controlled.
-\dd The \f{Spacing} value specifies the distance between major grid lines, which are drawn as solid lines on the layout.
+\dd The \f{Spacing} value specifies the distance between major grid lines, which are drawn as solid lines on the layout. The value of the distance is entered in either inches or centimeters depending on the value of the \f{Units} setting in Options->Preferencecs (\K{cmdPref}) menu.
\u000
@@ -78,7 +101,7 @@ The \f{Grid} dialog contains controls affecting the horizontal and vertical snap
\u000
-\dd The Grid can be enabled or disabled in each dimension via the \f{Enable} check box.
+\dd The Grid can be enabled or disabled in each dimension via the \f{Enable} check box. The action of snapping is secondary to \f{Magnetic Snap} if enabled, and is suppressed if \f{Alt} is held.
\u000
@@ -110,7 +133,6 @@ Command button groups displayed on the \f{Tool-bar} are selected using the Tool-
\rule
-
\S{cmdZoom} \i{Zoom}
\G{png.d/bgzoom.png}
@@ -133,6 +155,10 @@ Holding down the Shift key while clicking the \f{Zoom In} or \f{Zoom Out} button
\u000
+\b Key 's' sets the zoom to show the selected set of objects and pans the window to center the highlit area.
+
+\u000
+
\b Key '0' or 'o' keeps the zoom as is, but moves the origin of the bottom left of the window to 0,0
\u000
@@ -147,6 +173,10 @@ Pressing the middle Zoom button on the Tool Bar pop-ups a list of Zoom factors t
\u000
+\e{Note} - The value of Zoom 1:1 will be set using 96 dpi as a default, it can be overriden using a Configuration Value in the Preferences section of ScreenDPI.
+
+\u000
+
\dd The Pan function can be accessed using the Mouse Wheel with \e{Shift} of the \e{Mouse Middle Button}. Adding \e{Ctrl} as well as \e{Shift} chnages Up to Left and Down to Right.
Pan Left and Right can also be driven by the Horizontal Mouse Wheel (if available) or the Scroll Left/Right Guestures (if mapped by the Operating System).
diff --git a/app/doc/warranty.but b/app/doc/warranty.but
index 357a0cb..d52b7fa 100644
--- a/app/doc/warranty.but
+++ b/app/doc/warranty.but
@@ -150,3 +150,77 @@ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE
\f{END OF TERMS AND CONDITIONS}
\rule
+
+\H{Contributions} \ii{Contributions}
+
+XTrackCAD incorporates the following software:
+
+\c This program uses FreeImage, a free, open source image library supporting all common bitmap formats.
+\e bbbbbbbbb
+\c See http://freeimage.sourceforge.net for details
+
+\u000
+
+\c uthash, utlist
+\e bbbbbb bbbbbb
+\c Copyright (c) 2005-2015, Troy D. Hanson http://troydhanson.github.com/uthash/
+\c All rights reserved.
+
+\u000
+
+\c CJson - https://github.com/DaveGamble/cJSON/blob/master/README.md#license
+\e bbbbb
+\c Copyright (c) 2009-2017 Dave Gamble and cJSON contributors
+
+\u000
+
+\c zlib - https://opensource.org/licenses/zlib-license.php
+\e bbbb
+
+\u000
+
+\c libzip - https://libzip.org/license/
+\e bbbbbb
+\c Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
+
+\c The authors can be contacted at <libzip@nih.at>
+
+\c Redistribution and use in source and binary forms, with or without
+\c modification, are permitted provided that the following conditions
+\c are met:
+
+\c 1. Redistributions of source code must retain the above copyright
+\c notice, this list of conditions and the following disclaimer.
+
+\c 2. Redistributions in binary form must reproduce the above copyright
+\c notice, this list of conditions and the following disclaimer in
+\c the documentation and/or other materials provided with the
+\c distribution.
+
+\c 3. The names of the authors may not be used to endorse or promote
+\c products derived from this software without specific prior
+\c written permission.
+
+\c THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+\c OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+\c WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+\c ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+\c DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+\c DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+\c GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+\c INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+\c IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+\c OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+\c IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+\u000
+
+\c minixml - https://github.com/michaelrsweet/mxml/commit/f166ad1977f2f13295689772a5d9e442f73d46f1
+\e bbbbbbb
+
+\c Copyright (C) 2003-2019 by Michael R Sweet.
+\c The Mini-XML library is licensed under the Apache License Version 2.0 with an
+\c exception to allow linking against GPL2/LGPL2-only software.
+
+
+