summaryrefslogtreecommitdiff
path: root/app/doc
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff-webhosting.net>2020-08-24 21:26:53 +0200
committerJörg Frings-Fürst <debian@jff-webhosting.net>2020-08-24 21:26:53 +0200
commitdf247efec654e512242e4f4f1b0212034f9e01fe (patch)
tree25c02e16957f3aa613af30c140fd8e8a3d52fda6 /app/doc
parentd0b6a8a4ec298024f14f704f9e40a6f9d324ccf3 (diff)
parenta5ade52caa489cf0a713e0f02b764000d203140e (diff)
Merge branch 'release/debian/1%5.2.0Beta2.1-1' into masterHEADdebian/1%5.2.0Beta2.1-1master
Diffstat (limited to 'app/doc')
-rw-r--r--app/doc/CMakeLists.txt11
-rw-r--r--app/doc/addm.but312
-rw-r--r--app/doc/appendix.but26
-rw-r--r--app/doc/changem.but679
-rw-r--r--app/doc/drawm.but436
-rw-r--r--app/doc/editm.but58
-rw-r--r--app/doc/filem.but184
-rw-r--r--app/doc/helpm.but16
-rw-r--r--app/doc/hotbar.but38
-rw-r--r--app/doc/intro.but.in192
-rw-r--r--app/doc/managem.but27
-rw-r--r--app/doc/navigation.but156
-rw-r--r--app/doc/optionm.but67
-rw-r--r--app/doc/png.d/bcornu.pngbin0 -> 4346 bytes
-rw-r--r--app/doc/png.d/bfile.pngbin0 -> 681 bytes
-rw-r--r--app/doc/png.d/bjoin.pngbin277 -> 4433 bytes
-rw-r--r--app/doc/png.d/bjoinline.pngbin0 -> 4329 bytes
-rw-r--r--app/doc/png.d/blayer.pngbin1620 -> 70247 bytes
-rw-r--r--app/doc/png.d/blink.pngbin0 -> 626 bytes
-rw-r--r--app/doc/png.d/bnote.pngbin250 -> 600 bytes
-rw-r--r--app/doc/png.d/bparalle.pngbin239 -> 0 bytes
-rw-r--r--app/doc/png.d/bparallel.pngbin0 -> 4402 bytes
-rw-r--r--app/doc/png.d/bparalleline.pngbin0 -> 4357 bytes
-rw-r--r--app/doc/png.d/cmdopt.pngbin19624 -> 7407 bytes
-rw-r--r--app/doc/png.d/convertfrom.pngbin0 -> 4169 bytes
-rw-r--r--app/doc/png.d/convertto.pngbin0 -> 4169 bytes
-rw-r--r--app/doc/png.d/cornuendanchor.pngbin0 -> 5312 bytes
-rw-r--r--app/doc/png.d/dcprofile.pngbin8234 -> 11508 bytes
-rw-r--r--app/doc/png.d/displayopt.pngbin68298 -> 86476 bytes
-rw-r--r--app/doc/png.d/dprmfile.pngbin24735 -> 13308 bytes
-rw-r--r--app/doc/png.d/greendot.pngbin0 -> 301 bytes
-rw-r--r--app/doc/png.d/greenstar.pngbin0 -> 415 bytes
-rw-r--r--app/doc/png.d/greydot.pngbin0 -> 262 bytes
-rw-r--r--app/doc/png.d/greystar.pngbin0 -> 431 bytes
-rw-r--r--app/doc/png.d/iconfile.pngbin0 -> 165 bytes
-rw-r--r--app/doc/png.d/iconlink.PNGbin0 -> 230 bytes
-rw-r--r--app/doc/png.d/iconnote.pngbin479 -> 211 bytes
-rw-r--r--app/doc/png.d/layout.pngbin13213 -> 72958 bytes
-rw-r--r--app/doc/png.d/madd.pngbin7895 -> 13693 bytes
-rw-r--r--app/doc/png.d/main.pngbin36744 -> 397486 bytes
-rw-r--r--app/doc/png.d/maintagged.pngbin0 -> 400969 bytes
-rw-r--r--app/doc/png.d/mmovedraw.pngbin1037 -> 0 bytes
-rw-r--r--app/doc/png.d/mnote.pngbin0 -> 1392 bytes
-rw-r--r--app/doc/png.d/notefile.pngbin0 -> 6830 bytes
-rw-r--r--app/doc/png.d/notelink.pngbin0 -> 6780 bytes
-rw-r--r--app/doc/png.d/notetext.pngbin0 -> 6928 bytes
-rw-r--r--app/doc/png.d/paramsearch.pngbin0 -> 14516 bytes
-rw-r--r--app/doc/png.d/print.pngbin14306 -> 46869 bytes
-rw-r--r--app/doc/png.d/printmargin.pngbin0 -> 10613 bytes
-rw-r--r--app/doc/png.d/reddot.pngbin0 -> 301 bytes
-rw-r--r--app/doc/png.d/redstar.pngbin0 -> 364 bytes
-rw-r--r--app/doc/png.d/satusbarparallel.pngbin1617 -> 0 bytes
-rw-r--r--app/doc/png.d/statusbarparallel.pngbin0 -> 12964 bytes
-rw-r--r--app/doc/png.d/yellowdot.pngbin0 -> 326 bytes
-rw-r--r--app/doc/png.d/yellowstar.pngbin0 -> 414 bytes
-rw-r--r--app/doc/statusbar.but13
-rw-r--r--app/doc/upgrade.but74
-rw-r--r--app/doc/view_winm.but25
58 files changed, 1835 insertions, 479 deletions
diff --git a/app/doc/CMakeLists.txt b/app/doc/CMakeLists.txt
index a01d7af..adc21b3 100644
--- a/app/doc/CMakeLists.txt
+++ b/app/doc/CMakeLists.txt
@@ -6,14 +6,12 @@ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/hhc.cmake.in ${CMAKE_CURRENT_BINARY_D
FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html)
-GET_TARGET_PROPERTY(HALIBUT_COMMAND halibut LOCATION)
-
SET(HALIBUT_SOURCES
${CMAKE_CURRENT_BINARY_DIR}/intro.but
${CMAKE_CURRENT_SOURCE_DIR}/addm.but
${CMAKE_CURRENT_SOURCE_DIR}/changem.but
${CMAKE_CURRENT_SOURCE_DIR}/drawm.but
- ${CMAKE_CURRENT_SOURCE_DIR}/editm.but
+ ${CMAKE_CURRENT_SOURCE_DIR}/editm.but
${CMAKE_CURRENT_SOURCE_DIR}/filem.but
${CMAKE_CURRENT_SOURCE_DIR}/helpm.but
${CMAKE_CURRENT_SOURCE_DIR}/hotbar.but
@@ -38,7 +36,7 @@ ADD_CUSTOM_TARGET(clean-html
# If we're using the GTK back-end, just generate "vanilla" HTML help files for use with gtkhtml
IF(XTRKCAD_USE_GTK)
- IF (APPLE)
+ IF (APPLE)
SET(HALIBUT_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/osxconf.but ${HALIBUT_SOURCES})
ELSE(APPLE)
SET(HALIBUT_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/linconf.but ${HALIBUT_SOURCES})
@@ -49,7 +47,7 @@ IF(XTRKCAD_USE_GTK)
DEPENDS halibut ${HALIBUT_SOURCES}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/clean-html.cmake
- COMMAND ${HALIBUT_COMMAND} ${HALIBUT_SOURCES}
+ COMMAND halibut ${HALIBUT_SOURCES}
)
ADD_CUSTOM_TARGET(help-html ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/html/index.html)
@@ -106,7 +104,7 @@ ELSE(XTRKCAD_USE_GTK)
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/clean-html.cmake
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/png.d ${CMAKE_CURRENT_BINARY_DIR}/html/png.d
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/xtrkcad_win.css ${CMAKE_CURRENT_BINARY_DIR}/html
- COMMAND ${HALIBUT_COMMAND} ${HALIBUT_SOURCES}
+ COMMAND halibut ${HALIBUT_SOURCES}
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/hhc.cmake
)
@@ -118,4 +116,3 @@ ELSE(XTRKCAD_USE_GTK)
)
ENDIF(XTRKCAD_USE_GTK)
-
diff --git a/app/doc/addm.but b/app/doc/addm.but
index 724e5fd..f2caf26 100644
--- a/app/doc/addm.but
+++ b/app/doc/addm.but
@@ -12,63 +12,63 @@
\H{addM}\i{Add Menu}
-\G{png.d/madd.png}
+\G{png.d/madd.png}
-The \f{Add Menu} has all the actions related to adding track pieces to the layout.
+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}).
\u000
-\dd \f{Curved Track} - lay curved track pieces using different modes for selecting start and endpoints and radius (\K{cmdCurve}).
+\dd \f{Curved Track} - lay curved track pieces using different modes for selecting start and endpoints and radius (\K{cmdCurve}).
\u000
-\dd \f{Hand-laid Turnout} - lay a turnout in place on the layout.
+\dd \f{Hand-laid Turnout} - lay a turnout in place on the layout. (\K{cmdHandLaidTurnout})
\u000
-\dd \f{Helix} - Add a helix.
+\dd \f{Helix} - Add a helix. (\K{cmdHelix})
\u000
-\dd \f{Parallel} - create parallel track to existing flex-track, straight or curved.
+\dd \f{Parallel} - create parallel track or line to existing flex-track, straight or curved track. (\K{cmdParallel})
\u000
-\dd \f{Straight Track} - lay straight track pieces of arbitrary lengths
+\dd \f{Straight Track} - lay straight track pieces of arbitrary lengths
\u000
-\dd \f{Structure} - Add a predefined structure to the layout.
+\dd \f{Structure} - Add a predefined structure to the layout.
\u000
-\dd \f{Turnout} - select a turnout or a piece of fixed track and place on layout.
+\dd \f{Predefined Track} - select a turnout or a piece of fixed track and place on layout.
\u000
-\dd \f{Turntable} - Place a turntable.
+\dd \f{Custom Turntable} - Place a turntable. (\K{cmdTurntable})
\u000
-\dd \f{Block} - Create a block.
+\dd \f{Block} - Create a block. (\K{cmdBlock})
\u000
-\dd \f{Switchmotor} - Create a switchmotor.
+\dd \f{Switchmotor} - Create a switchmotor. (\K{cmdSwitchmotor})
\u000
-\dd \f{Signal} - Create a signal.
+\dd \f{Signal} - Create a signal. (\K{cmdSignal})
\u000
-\dd \f{Control} - Create a control.
+\dd \f{Control} - Create a control. (\K{cmdControl})
\u000
-\dd \f{Sensor} - Create a sensor.
+\dd \f{Sensor} - Create a sensor. (\K{cmdSensor})
\S{cmdCircle} Circle Track
@@ -76,17 +76,23 @@ The \f{Add Menu} has all the actions related to adding track pieces to the layou
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:
-\dd \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}). Drag the Circle track into position.
+\u000
+
+\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.
\u000
-\dd \G{png.d/bcircl2.png} (\c{Control-9}) Drag from tangent point (Edge) of the Circle track to the Center.
+\dd (\K{cmdCircleTangent}). \c{Left-Drag} from tangent point (Edge) of the Circle track to the Center.
\u000
-\dd \G{png.d/bcircl3.png} (\c{Control-0}) Drag from the Center of the Circle track to the edge.
+\dd (\K{cmdCircleCenter}). \c{Left-Drag} from the Center of the Circle track to the edge.
+
+\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}.
+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/bmcircle.png}
@@ -100,57 +106,171 @@ You can join to and from circles, after which they become curved tracks.
\rule
+\S2{cmdCircleFixedRadius} Circle Fixed Radius
+
+\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.
+
+\rule
+
+\S2{cmdCircleTangent} Circle Fixed Tangent
+
+\G{png.d/bcircl2.png}
+
+(\c{Control-9}) \c{Left-Drag} from tangent point (Edge) of the Circle track to the Center.
+
+\rule
+
+\S2{cmdCircleCenter} Circle From Center
+
+\G{png.d/bcircl3.png}
+
+(\c{Control-0}) \c{Left-Drag} from the Center of the Circle track to the edge.
+
+\rule
+
\S{cmdCurve} Curved Track
\G{png.d/bcurve.png}
-Creating a curve is a two step operation. The four methods (with their Shortcut keys) used to create a Curved Track are:
+Creating a curve is a two step operation.
+
+The five methods (with their Shortcut keys) used to create a Curved Track are:
+
+\dd
-\dd \G{png.d/bcurve1.png} (\c{Control-4}) Drag from one endpoint in the direction of the Curve at that point and release. Click and Drag the red arrows to position the second endpoint.
-If Shift is held down when the first endpoint is being placed and the cursor is on a track, the new curve end will "Snap" to the nearest open track endpoint and you can drag out the second end aligned to that track. After a track is competed, the new track will be connected to this first track.
+\dd \K{cmdCurveEndPt}. Drag out the end and then set its radius by dragging the endpoint.
\u000
-\dd \G{png.d/bcurve2.png} (\c{Control-5}) Drag from one of the endpoints to the Center of the Curved track and release. Click and Drag to position the second endpoint.
-If Shift is held down when the first endpoint is being placed and the cursor is on a track, the new curve end will "Snap" to the nearest open track endpoint and you can drag out the center at right angles aligned to that end. After a track is competed, the new track will be connected to this first track.
+\dd \K{cmdCurveTangent}. Drag from the an endpoint to the center and then drag the second enpoint around that center.
\u000
-\dd \G{png.d/bcurve3.png} (\c{Control-6}) Drag from the Center of the Curved track to one of the endpoints and release. Click and Drag to position the second endpoint.
-Shift has no effect.
+\dd \K{cmdCurveCenter}. Drag from the Center of the Curved track to one of the endpoints. Position the second endpoint around the center.
\u000
-\dd \G{png.d/bcurve4.png} (\c{Control-7}) Drag from one endpoint to the other endpoint to form the Chord of the Curve and release. Click on the center of the track and Drag to form the Curve.
-Shift has no effect.
+\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.
\u000
-\dd \G{png.d/bezier.png} Place one endpoint and drag out the first control point and release, Place the second Endpoint and drag out the second control point and release. Once all 4 points are placed, you can pick one at a time and drag it to move it. Complete the Curve by pressing Enter, or Reject it with Esc.
-If Shift is held down when either endpoint is being placed it will "Snap" to an open track endpoint of the track underneath the cursor and you can only drag out the control point aligned to the end of the track. After the new track is competed, it will be connected to this existing track.
+\dd \K{cmdBezier}. Construct a 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} or \G{png.d/bcurve4.png}.
+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/bmcurved.png}
\dd \e{Curved Track Button Menu}
-In all but the bezier case, two Red arrow heads will be drawn after the first step to indicate where you can Drag to complete the second step.
+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.
+A straight track will be created if the second endpoint is lined up with the first endpoint except for Bezier tracks.
-If the Snap Grid (\K{cmdGrid}) is enabled then the endpoints will be constrained to the grid.
+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.
+
+
+\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.
+
+\rule
+
+\S2{cmdCurveEndPt} Curved Track from End Point
+
+\G{png.d/bcurve1.png}
+
+(\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} 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.
+
+\rule
+
+\S2{cmdCurveTangent} Curved track from Tangent
+
+\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{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.
+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.
+
+\rule
+
+\S2{cmdCurveCenter} Curved Track From Center
+
+\G{png.d/bcurve3.png}
-Optionally, the curve center point and radius can be displayed for the Curve. This is enabled by the Move Label (\K{cmdMoveLabel}) command.
+(\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.
-For Beziers, the active control point will be drawn in red and the available endpoints are shown with circles.
+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.
+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.
-\f{Note:} You can also create Straight and Curved tracks using \k{cmdModify} by dragging out extra track from an open end-point.
+\rule
+
+\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.
+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.
+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.
\rule
+\S2{cmdBezier} Curved Bezier Track
+
+\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.
+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.
+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.
+
+\rule
+
+\S{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}.
+If \f{MagneticSnap} is disabled this will only happen if \e{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.
+
+\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.
+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.
+
+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.
+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.
+
+If the end is not connected, an anchor will enable the end-angle and radius to be set by dragging. Initially the end radius is set to be zero and the angle will be picked to create a smooth curve given the end angle. Altering the end angle with the anchor resets the radius to zero.
+
+\u000
+
\S{cmdHandLaidTurnout} Hand-laid Turnouts
@@ -166,7 +286,7 @@ Hand-laid turnouts are created by specifying 3 values:
First select the position for the Frog (\K{generalTerms}) on an existing track and then \e{Drag} away to specify the angle of the \e{Frog}. The angle in degrees and equivalent frog number is displayed on the status bar. When you release, the line indicating the angle jumps to one side of the track to show you the center line of the new leg of the turnout.
-Next \e{Click} and \e{Drag} to position the Points (\K{generalTerms}) for the turnout. As you \e{Drag}, tracks will be drawn showing the turnout. When you release the turnout is created.
+Next \c{Left-Click} and \c{Left-Drag} to position the Points (\K{generalTerms}) for the turnout. As you \c{Left-Drag}, tracks will be drawn showing the turnout. When you release the turnout is created.
You cannot place the \e{Frog} or \e{Points} on a turnout, circle or helix. However, you can create overlapping Hand-laid Turnouts.
@@ -191,7 +311,7 @@ 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.
-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{cmdElev}) command to do this.
+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.
@@ -201,34 +321,66 @@ A label for the helix is drawn at it's the center. If the elevations are set (e
\rule
+\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.
+
+\u000
+
+\dd \K{cmdParallelLine}. You can create a line parallel to any straight, curved, bezier, cornu or easement track or straight lines, curved lines and PolyLines.
+
+\rule
+
+\S2{cmdParallelTrack} Parallel Track
-\S{cmdParallel} Parallel Track
+\G{png.d/bparallel.png}
-\G{png.d/bparalle.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.
-You can create a new track parallel to any straight, curved or easement track.
+\G{png.d/statusbarparallel.png}
-\G{png.d/satusbarparallel.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.
-The \f{Parallel Separation} control (Visible in the Status Bar) displays the current separation between parallel tracks. This value can be changed before selecting a track. The value must be greater than 0.0.
+\b The seperation can be automatically increased using the \f{Radius Factor} value. If this is set to 0.0 (default) the seperation value will be used regardless of radius.
+If the value is set to 1.0, the seperation will be increased by a scaled 2864 inches per inch of curvature of the paralled track - this is in accordance with North American prototype practice.
+Other values of Radius Factor will alter by an equivalent percentage. For example, 0.5 would use 50% of this increase.
-Select the track you want to parallel, and the new parallel track will appear beside it. You control which side the new track will be on by moving the cursor from one side to the other of the selected track.
+\u000
-This is very useful for creating sidings and yards.
+This command is very useful for creating sidings and yards as well as dual track.
-You cannot create tracks parallel to turnouts or sectional track.
+\b No parallel to a turnouts or a non-straight piece of sectional track is created.
-It is possible to create tracks that abut (the endpoints are very close and aligned). These endpoints will be automatically connected.
+\b It is possible to create tracks that abut (the endpoints are very close and aligned).
+These endpoints will be automatically connected.
\rule
+\S2{cmdParallelLine} Parallel Lines
+
+\G{png.d/bparalleline.png}
+
+Select the Track or Line you want to parallel with \c{Left-Click}, and the new parallel line will appear beside it.
+
+\b Note that Lines are not joined - if you wish you can select a series of Lines and turn them into a PolyLine using \K{cmdJoinLine}.
+
+\rule
\S{cmdStraight} Straight Track
\G{png.d/bstraigh.png}
-Straight track is a created by selecting the first endpoint then dragging the cursor to the point where you want the second endpoint to be.
-If Shift is held down when the first endpoint is being placed and the cursor is on a track, the new straight end will "Snap" to the nearest open track endpoint and you can drag out the second end aligned to that track. After a track is competed, the new track will be connected to the existing track.
+Straight track is a created by \c{Left-Click} to select the first endpoint then \c{Left-Drag}ing the cursor to the point where you want the second endpoint to be.
+Unless \c{Shift} is held down when the first endpoint is being placed and the cursor is on a track, the new straight end will "Snap" to the nearest open track endpoint and you can drag out the second end aligned to that track. After a track is competed, the new track will be connected to the existing track.
If the Snap Grid (\K{cmdGrid}) is enabled then the endpoints will be constrained to the grid.
@@ -264,7 +416,7 @@ You can use the Parameter File Dialog (\K{cmdPrmfile}) to control what turnouts
\G{png.d/turnsel.png}
-Select a turnout from the scrolling list. A picture of the selected turnout is drawn in the diagram canvas. You can pick the Active endpoint (\K{generalTerms}) by clicking on an endpoint in the diagram. The Active endpoint (\K{generalTerms}) is indicated by a highlighted square.
+Select a turnout from the scrolling list by \c{Left-Click}ing on it. Move to the Layout and \c{Left-Click} where the turnout should be placed. The Turnout will snap to nearby flextracks or open endpoints. By \c{Left-Drag}ing you can move the turnout around. Additional \c{Left-Click}s change the way the turnout is placed.
The \f{New} button invokes the Turnout Designer (\K{cmdTurnoutNew}) dialog. This button displays a pop-up-menu list of various types of turnouts and sectional track.
@@ -295,14 +447,14 @@ The \f{Turntable Angle} control on the Preferences (\K{cmdPref}) dialog controls
\G{png.d/bblock.png}
-A block is created by first selecting the track segments in the block and then
-selecting \f{Create Block} from either the Add menu \K{cmdAdd} or from the block menu on the
-hotbar. A block gets a name and a script. The name is only used for
-identification and the script is used by the layout control software. The
-script should provide whatever information is needed by the layout control
-software to determine block occupancy. This could be a code snippet to
-retrieve the state of the block occupancy or it could be the address of the
-sensor, etc.
+A block is created by first selecting the track segments in the block and then
+selecting \f{Create Block} from either the Add menu \K{cmdAdd} or from the block menu on the
+hotbar. A block gets a name and a script. The name is only used for
+identification and the script is used by the layout control software. The
+script should provide whatever information is needed by the layout control
+software to determine block occupancy. This could be a code snippet to
+retrieve the state of the block occupancy or it could be the address of the
+sensor, etc.
\G{png.d/block.png}
@@ -310,9 +462,9 @@ The create block dialog has spaces for two text strings. One is the name and
the other is a block occupancy script. The name identifies the block and the
script is information used by the layout control software to detect block
occupancy. The script could be a code snippet or I/O device address
-information, etc.
+information, etc.
-\rule
+\rule
\S{cmdSwitchmotor} Switchmotor
@@ -325,7 +477,7 @@ identification and the three scripts are used by the layout control software.
The three scripts are for throwing the turnout to its "normal" position,
throwing the turnout to its "reverse" position, and a script to read a point
position sensor. These scripts could be code snippets or they could be
-addresses of I/O devices, etc.
+addresses of I/O devices, etc.
\G{png.d/switchmotor.png}
@@ -344,20 +496,20 @@ could be code snippets or I/O device address information, etc.
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,
+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.
\G{png.d/signal.png}
-The create/edit signal dialog has spaces for the name of the signal, its
-location and orientation, the number of heads (1, 2, or 3), and a list of
-aspects. Each aspect has a name and a script. The name could be a rule book
-name (Clear, Aproach, Stop, etc.) or the actual color(s) displayed (green,
-yellow, red, etc.). The script is just some information for the layout
-control software to actually effect the display of the aspect -- this could be
-the LCC event id to trigger the aspect or it could be a code snippet that
+The create/edit signal dialog has spaces for the name of the signal, its
+location and orientation, the number of heads (1, 2, or 3), and a list of
+aspects. Each aspect has a name and a script. The name could be a rule book
+name (Clear, Aproach, Stop, etc.) or the actual color(s) displayed (green,
+yellow, red, etc.). The script is just some information for the layout
+control software to actually effect the display of the aspect -- this could be
+the LCC event id to trigger the aspect or it could be a code snippet that
causes the aspect to be displayed.
\rule
@@ -366,11 +518,11 @@ causes the aspect to be displayed.
\G{png.d/bControl.png}
-A control is created by selecting \f{Create Control} 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 control to where you want it. Once the left
-button is released, a Create/Edit Control dialog box is displayed, and you can
-fill in the control's properties: name, fine tune the location, and the on and
+A control is created by selecting \f{Create Control} 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 control to where you want it. Once the left
+button is released, a Create/Edit Control dialog box is displayed, and you can
+fill in the control's properties: name, fine tune the location, and the on and
off scripts.
\G{png.d/control.png}
@@ -394,6 +546,6 @@ fill in the sensor's properties: name, fine tune the location, and the script.
\G{png.d/sensor.png}
-The create/edit sensor dialog has spaces for the name of the sensor, its
-location, and a script. The script is just some information for the layout
-control software to actually return the state of the sensor (on or off). \ No newline at end of file
+The create/edit sensor dialog has spaces for the name of the sensor, its
+location, and a script. The script is just some information for the layout
+control software to actually return the state of the sensor (on or off).
diff --git a/app/doc/appendix.but b/app/doc/appendix.but
index 2c16319..7c45c4a 100644
--- a/app/doc/appendix.but
+++ b/app/doc/appendix.but
@@ -12,9 +12,10 @@
The best way to move your design from computer to roadbed is to print out a full scale copy (or portions) of the layout. During the print process the orientation of the print grid can be adjusted so the printout will line up with the tracks.
-If you have cut-sheet printer (like a laser or ink-jet) set the Ignore Page Margins toggle on the print dialog. Normally there is an unprintable margin around the edge of the page and \e{XTrackCAD} only prints on the printable area, which means you would have to trim or overlay the pages. Setting the Ignore Page Margins toggle makes \e{XTrackCAD} ignore this margin so you can just abut the paper. Also, turn on Print Roadbed Outline and set your roadbed width.
+If you have cut-sheet printer (like a laser or ink-jet) set the Ignore Page Margins toggle on the print dialog. Normally there is an unprintable margin around the edge of the page and \e{XTrackCAD} only prints on the printable area, which means you would have to trim or overlay the pages.
+Setting the Ignore Page Margins toggle makes \e{XTrackCAD} ignore this margin so you can just abut the paper. Also, turn on Print Roadbed Outline and set your roadbed width.
-If you have a continuous form printer (like a dot matrix) you can print a series of pages to form a continuous strip as long as you need. I use an old wide carriage printer that was being thrown out and can print 8' by 13.2" strips. Accuracy is not critical, 9-pin will do fine. You may need to experiment with setting the Landscape/Portrait modes on the Printer Setup and the Print dialogs and rotating the Print Grid to get the pages in the correct orientation. In particular I've found it best to set the Printer Setup dialog to Portrait mode and select Landscape Page Format on the \e{XTrackCAD} Printer dialog.
+For large scale printouts, the ability of many platforms to print as PDF is very helpful. Commercial printers can oftem print very large strips of paper.
Once you have a full scale print-out of your layout (or portion, if you have a larger layout you don't want to do it all at once) you need to transfer this to the roadbed. Here's two methods that can be used:
@@ -24,6 +25,8 @@ Once you have a full scale print-out of your layout (or portion, if you have a l
\b Tape the print-out to the roadbed then using a tracing wheel (available at Sewing shops), trace the center-line of the track and roadbed outline. At this point consider places when you'll want to widen the roadbed to support signals, switch machines, joints etc.
+\b Some users have reported that they successfully used the DXF export to get a file into Computer Controlled Machines that can cut out trackbed.
+
\rule
@@ -71,17 +74,6 @@ Other prototype definitions can be created using the Car Prototype dialog. Refer
\rule
-\H{faqsButtonColor} Button Bar Icons Missing or Obscure
-
-\f{Why are Button Bar icons missing or obscure?}
-
-On systems restricted to 256 colors, it's not possible to display all colors on button faces. In this case, Windows chooses the closest matching color, which may be the same as the buttons background color. When this occurs the Button Bar icon may be obscured or appear to be missing.
-
-In cases where Layer Buttons are affected the number on the button may not be visible. Although it may not be possible to view the layer number, the correct color will be used to color objects that appear on the layer.
-
-\rule
-
-
\H{faqsJoin} How Do I Place and Join Tracks
\f{How do I join tracks, place turnouts, build a yard etc?}
@@ -115,6 +107,8 @@ Menu and sub-menu items are indicated by \e{File>Open}, which means select the \
\f{Edit Box} - an area where you can enter a String, Integer or Floating Point value.
+\f{FlexTrack} - an automatic object on the ToolBar that creates a Cornu Track element
+
\f{Highlighted} - an area on the Canvas which is in inverse-video.
\f{Left-Click} - same as \e{Click}, used in contexts where \e{Right-Click} is also used.
@@ -152,6 +146,12 @@ Menu and sub-menu items are indicated by \e{File>Open}, which means select the \
\f{Block Gap} - provides control by dividing the layout into electrically isolated blocks, where trains can be slowed or stopped by lowering or cutting the power to a block. Dividing a layout into blocks also permits operators to run more than one train on a layout with much less risk of a fast train catching up with and hitting a slow train. Blocks can also trigger signals or other animated accessories on the layout, adding more realism (or whimsy) to the layout. Three-rail systems will often insulate one of the common rails on a section of track, and use a passing train to complete the circuit and activate an accessory.
+\f{Cornu} - * Cornu curves are a family of mathematically defined curves that define spirals that Euler spirals and elastica come from.
+They have the useful property for us that curvature increases linearly along the curve which
+means the acceleration towards the center of the curve also increases evenly. Railways have long understood that
+smoothly changing the radius is key to passenger comfort and reduced derailments. The railway versions of these
+curves were variously called easements, Talbot or Euler spirals.
+
\f{DXF Format} - Abbreviation of \f{D}ata \f{E}xchange \f{F}ile, a two-dimensional graphics file format supported by virtually all PC-based CAD products. It was created by AutoDesk for the AutoCAD system.
\f{Easement} - 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!
diff --git a/app/doc/changem.but b/app/doc/changem.but
index c8cb189..97238fb 100644
--- a/app/doc/changem.but
+++ b/app/doc/changem.but
@@ -8,7 +8,7 @@
\H{changeM}\i{Change Menu}
-\G{png.d/mchange.png}
+\G{png.d/mchange.png}
The \f{Change Menu} has all functions related to modifying objects that exist on the layout drawing.
@@ -24,7 +24,11 @@ The \f{Change Menu} has all functions related to modifying objects that exist on
\u000
-\dd \f{Elevation} - define an elevation at specified track location (\K{cmdElev}).
+\dd \f{Convert Tracks} - chnages fixed tracks (Straight, Curve, Joint, Bezier) into a Smooth Cornu or vice versa. (\K{cmdConvert}).
+
+\u000
+
+\dd \f{Elevation} - define an elevation at specified track location (\K{cmdElevation}).
\u000
@@ -50,7 +54,7 @@ The \f{Change Menu} has all functions related to modifying objects that exist on
\dd \f{Pan/Zoom} - move or resize the viewport using the mouse.
-\u000
+\u000
\dd \f{Profile} - display the elevation profile of a definable stretch of track (\K{cmdProfile}).
@@ -125,15 +129,17 @@ Using the \f{Select} command, select the track that is to have its elevation set
This command is frequently used with \e{Sectional Track}. But it can be useful to reattach ordinary track which has become disconected or split.
-There are three modes,
+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".
+
+There are three modes,
\u000
\b a \f{Left} click on a track near a disconnected end-point followed by a second on a close-by disconnected end-point on another track will try to join two tracks
-\b a \f{Shift-Left} click on a connected track will "Tighten Tracks" moving other tracks connected to this track to reduce any small distance or angle differences
+\b a \f{Shift-Left} click on a connected track will "Tighten Tracks" moving other tracks connected to this track to reduce any small distance or angle differences
-\b selecting a set of tracks followed by a \f{Right} click will prompt for confirmation that all selected tracks with unconnected endpoints should be joined to nearby selected track at an unconnected end point. This mode allows for an entire layout to be reconnected after a Select-All.
+\b Selecting a set of tracks followed by a \e{"S" key} or using the Context menu will prompt for confirmation that all selected tracks with unconnected endpoints should be joined to nearby selected track at an unconnected end point. This mode allows for an entire layout to be reconnected after a Select-All.
\f{Notes for two track mode:} Occasionally pieces of sectional track do not line up exactly, especially when creating figure-8's or passing sidings. When laying out the actual track you can compensate for this by adjusting the individual tracks to provide a bit of slack. This command simulates that process.
@@ -147,12 +153,57 @@ You can undo the effect of the \f{Connect} command by splitting (\K{splitDisconn
\rule
+\S{cmdConvert} Convert Tracks
+
+\dd (\K{cmdConvertTo}). Convert Fixed to Cornu
+
+\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.
+Dependent upon previous selection, the Convert Track button will look like \G{png.d/convertto.png} or \G{png.d/convertfrom.png}.
+
+\rule
+
+\S2{cmdConvertTo} Convert Fixed Track(s) to Cornu(s)
+
+\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.
+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.
+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.
+
+\rule
+
+\S2{cmdConvertFrom} Convert Cornu(s) and Bezier(s) to Fixed Track(s)
+
+\G{png.d/convertfrom.png}
-\S{cmdElev} Elevation
+This command will take a pre-selected set of Cornu and Bezier Tracks and convert them into a set of equivalent Straights or Curves,
+
+The resulting track(s) will mimic the shape of the Cornu/Bezier(s) exactly. This command is intended to allow easier layout of smoothed shapes.
+
+\rule
+
+\S{cmdElevation} Elevation
\G{png.d/belev.png}
-The \f{Elevation} command changes the elevation of track endpoints. After opening this dialog, you can click on the respective endpoint to set its elevation properties. The endpoint on which you work is indicated with a big red dot.
+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.
+
+Moving around the layout will show you the elevation at the point indicated by a blue dot.
+
+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{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).
+
+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.
\G{png.d/celev.png}
@@ -174,14 +225,12 @@ An endpoint can have one of several elevation types:
\b \f{Station} - assigns a name to the endpoint.
-\f{Note:} Only one of these attributes can be assigned to an endpoint. For example, an endpoint can not be defined as a Grade and a Station at the same time.
+\f{Note:} Only one of these attributes can be assigned to an endpoint at a time. For example, an endpoint can not be defined as a Grade and a Station at the same time.
When an endpoint is selected on the layout by \e{Left-Click}, it is highlighted by a large red dot and its elevation type and values are displayed in the dialog.
Additionally, \f{Defined Elevation} endpoints are indicated on the layout by gold colored dots. \f{Ignored Elevation} endpoints are indicated by blue colored dots.
-\e{Shift+Left-Click} splits the track at the specified point and adds an elevation point.
-
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.
\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.
@@ -255,17 +304,43 @@ Certain turnouts, such as a Wye's, Three-Way or Crossings are symmetrical and th
\rule
-\S{cmdJoin} Join
+\S{cmdJoin} Join Tracks and Lines
+
+The \f{Join} command has two variatons,
+
+\dd (\K{cmdJoinTrack}). Join Tracks by connecting them.
+
+\u000
+
+\dd (\K{cmdJoinLine}). Create a PolyLine from two Draw Objects or Close a PolyLine as a Polygon.
+
+\rule
+
+\S2{cmdJoinLine} Join Lines
+
+\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.
+If the two ends are of the same PolyLine, an unfilled Polygon will be created.
+
+\rule
+
+\S2{cmdJoinTrack} Join Tracks
\G{png.d/bjoin.png}
-The \f{Join} command is used to bring together and connect any two segments of track. During the join process, \e{XTrackCAD} ensures the connecting tracks are properly aligned.
+The \f{Join Track} command is used to bring together and connect any two segments of track. During the join process, \e{XTrackCAD} ensures the connecting tracks are properly aligned.
See \f{Help>Demo} (\K{cmdDemo}) for examples of how to join tracks.
For detail about;
-\dd Using curved flex-track to join track segments refer to \K{joinTrackCurve}.
+\dd Using complex curves if Easement is set to Cornu \K{joinCornu}.
+
+\u000
+
+\dd Using Normal Easments 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
@@ -277,11 +352,6 @@ For detail about;
\rule
-
-\S2{joinTrackCurve} Using Curved Flex-Track
-
-This method of joining track may be used using Normal Easments where tracks are either joined with a 'simple curve'\k{joinNormalEasment}, e.g. one which uses a curve in a single direction as opposed to using reverse curves (\K{generalTerms}) or using complex curves if Easement is set to Cornu \K{joinCornu}.
-
\S2{joinNormalEasment} Join with Normal Easement
\u000
@@ -314,10 +384,19 @@ This method of joining track may be used using Normal Easments where tracks are
}
-\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. If the track appears in black (and you are happy with the curve as its drawn), release the mouse button.
+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.
\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.
+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.
+
+
+
\u000
\G{png.d/joincrv3.png}
@@ -360,29 +439,55 @@ For detail about;
\dd Moving one segment of track to join with another refer to \K{joinTrackMove}.
-\S2{joinCornu} \i{Creating a Cornu} \i{Cornu Easements} Join with Cornu Easement
+\rule
-\u000
+\S2{joinCornu} Join with Cornu Easement
-\n First, ensure that the Easement type option is set to Cornu - see \k{cmdEasement}
+\i{Creating a Cornu} \i{Modifying a Cornu} \i{Cornu Easements}
-\n Start the join process by clicking on the Join button (\G{png.d/bjoin.png}).
+A Cornu is a form of curve that uses a mathematical approach to creating a curve between two sets of end conditions.
-\lcont{
+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.
-\u000
+The conditions used at each end are the radius, angle and position.
-\G{png.d/joincornu1.png}
+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.
+
+Cornus can be used in XtrackCAD to both Join tracks smoothly and form smooth curves that are not joined to other tracks.
+
+Because Cornu are mathematically generated, they can also be regenerated at will and so Cornu Joins have the unique characteristic in XTrackCAD that they remain connected even if the tracks at the ends are moved or even change shape.
+
+Cornu Joins will use whatever space is available - that is their "tightness" (rate of change of curvature) is variable and dynamic. The minimum radius is calculated and will show as an exception, but the acceptable rate of change of curvature is the choice of the designer.
+
+It is not always the case that the Cornu will be the most efficient way to get from A to B - because of its shape it will be the smoothest. If you want to bias the result, you can add TrackPins (\K{cornuTrackPins}).
+
+\rule
+
+\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.
+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}.
+
+When a Cornu Track with pins is saved, it is split into two Cornu joined at the pin. If a Cornu that is joined to another Cornu is Modified with \K{cmdModify}, the joints are rendered as Pins and the Modify is done for one continuous Cornu.
\u000
-}
+\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}).
+
+As you move over tracks a blue roundel will indicate the end that will be chosen with \e{Left-Click}.
+
+\G{png.d/joincornu1.png}
-\dd \e{Left-Click} the open endpoint of one of the two tracks being joined. A red dot within a red circle will appear at the end of the join.
+\dd \c{Left-Click} the open endpoint of one of the two tracks being joined. A red dot within a red circle will appear at the end of the join.
\u000
-\dd \e{Left-Drag} the endpoint to where you want it and release the button. The point will only move along the piece of track with the open endpoint (if this track type can be split) as far as the opposite end, or as an extension of that track at the selected end with the same curvature (if this track can be extended). Note that you will be able to fine-tune the end positions later.
+\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{
@@ -394,11 +499,13 @@ For detail about;
}
-\dd \e{Left-Click} the endpoint of the other track being joined. Another red dot within a circle will appear at that end of the join.
+\dd \c{Left-Click} the endpoint of the other track being joined. Another red dot within a circle will appear at that end of the join.
\u000
-\dd \e{Left-Drag} the endpoint to where you want it and release the button. The second endpoint can only be moved along the second track as far as the other end (if it can be split) or as an extension beyond the end of this track (if it can be extended). The initial curve will be drawn - it will be red if the minimum radius is smaller than the minimum radius option.
+\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{
@@ -410,11 +517,23 @@ For detail about;
}
-\dd You are now in "Select Points" mode. You can select one end point at a time with \e{Left-Click} and move it with \e{Left-Drag}.
+\dd You are now in "Select Points" mode.
\u000
-\dd Once you are happy, hit \e{Enter} or the \e{SpaceBar} to finish editing the easement. Or hit \e{Esc} to cancel.
+\dd 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
+
+\dd You can select a pin by \c{Left-Click}ing on it and move it with \c{Left-Drag}. \c{Delete} will remove the last selected Pin.
+
+\u000
+
+\dd You can add a Pin by \c{Left-Click}ing on an area of the track with no Pin or end.
+
+\u000
+
+\dd Once you are happy, hit \e{Enter} or the \e{SpaceBar} to finish editing the easement. Or hit \e{Esc} to cancel.
\dd If you want to modify the Cornu later (even if it is joined at both ends) see \k{chgCornu}
@@ -467,13 +586,13 @@ When this command is used to join;
Any tracks created during the \f{Join} command will have the following properties inherited from the first track: selected state, hidden state, scale, track gauge and Layer.
-Turnouts and Sectional (\K{cmdHotBar}) tracks can be joined to other tracks. \e{XTrackCAD} extends the selected endpoint with a straight track when making the connection.
+Turnouts and Sectional (\K{cmdHotBar}) tracks can be joined to other tracks. \e{XTrackCAD} extends the selected endpoint with a straight track when making the connection.
A Turntable (\K{cmdTurntable}) can be joined however it must be used as the second endpoint for normal easements but can be connected to either end with Cornu.
For detail about;
-\dd Using curved flex-track to join track segments refer to \K{joinTrackCurve}.
+\dd Using curved flex-track to join track segments refer to \K{joinCornu}.
\u000
@@ -493,7 +612,7 @@ This method of joining track may be used to move, align and join one section of
\u000
-\n Before initiating the \f{Join} command, the track that will be moved, aligned then joined must be selected using the \f{Select} command (\K{cmdSelect}).
+\n Before initiating the \f{Join} command, the track that will be moved, aligned and then joined must be selected using the \f{Select} command (\K{cmdSelect}).
\lcont{
@@ -529,11 +648,11 @@ This method of joining track may be used to move, align and join one section of
}
-\n Move the mouse pointer over the endpoint of the other track then \e{Shift+Left-Click}. The selected track will be moved, aligned then joined to the stationary section of track.
+\n Then move the mouse pointer over the endpoint of the other (unselected and stationary) track with \e{Shift+Left-Click}. The selected track will be moved, aligned then joined to the stationary section of track.
For detail about;
-\dd Using curved flex-track to join track segments refer to \K{joinTrackCurve}.
+\dd Using curved flex-track to join track segments refer to \K{joinCornu}.
\u000
@@ -546,23 +665,30 @@ For detail about;
\G{png.d/bmodify.png}
-The \f{Modify} command is used to change characteristics of or extend existing track by adding new track. This command works with any unconnected track endpoint, or with a \e{Cornu} or \e{Bezier} track even if connected
+The \f{Modify} command is used to change characteristics of tracks or draw elements or extend existing track by adding new track. The extend type of Modify command works with any unconnected track endpoint, or with \e{Turntables}. \e{Cornu(s)} or \e{Bezier} track can be modified even if connected. Selecting one Cornu which is connected to other Cornu(s) results in a single modification curve with control "Pins" at the connections.
-The \f{Modify} command can be invoked using the \f{Change>Modify} menu item, the \f{Modify} button or the menu raised by a \e{Right-Click} over the \f{Main Canvas}.
+The \f{Modify} command can be invoked using the \f{Change>Modify} menu item, the \f{Modify} button, by \e{Double-Click} in Select when hovering over a selected item or the menu raised by a \e{Right-Click} over the \f{Main Canvas}.
-Either the left mouse button (for changing length or creating a tangent track) or the right mouse button (for extending with a new track) is used to modify the unconnected endpoint.
+Before a track is selected for Modify, a dynamic blue anchor will show which track the command will take effect on if the cursor is close enough to a modifyable track or object. Arrows are shown to indicate if the track can be extended or trimmed and also if its radius can be modified if Shift is depressed as the cursor is moved over the track.
-The endpoints of a \e{Line}, \e{Dimension Line}, \e{Table Edge} or \e{Bench-work} can be dragged to new positions. A \e{Box} or a \e{FilledBox} can be modified by selecting a corner and dragging in two dimensions, or a side and dragging it orthogonally. These modifications preserve a 4-sided rectangle.
+\S2{extendModify} Extending Track
-The controlpoints of a \e{Cornu Track}, \e{Bezier Track} or \e{Bezier Line} can be changed.
+Either the left mouse button (for changing length or creating a tangent track) or the right mouse button (for extending with a new track) is used to modify an unconnected endpoint.
-\e{Curved Lines} are modified in same manner as curved track.
+\S2{objectModify} Modifying Objects
-Selecting a corner of a \e{Poly Line} or \e{Polygon} moves that corner to a new position, and if moved close to a neighboring corner will merge the two corners and delete the edge between them. Selecting an edge will create a corner that can be dragged to a new position.
+\n The endpoints of a \e{Line}, \e{Dimension Line}, \e{Table Edge} or \e{Bench-work} can be dragged to new positions.
-Any tracks created during the \f{Modify} command will have the following properties inherited from the first track: selected state, hidden state, scale, track gauge and Layer.
+\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.
-For detail about;
+\n The controlpoints of a \e{Cornu Track}, \e{Bezier Track} or \e{Bezier Line} can be changed. Control "Pins" can be added, moved or selected and removed from \e{Cornus}.
+
+\n \e{Curved Lines} are modified by dragging the end points and dragging the amount of central deflection (radius).
+
+
+Any tracks created during the \f{Modify} command will have the following properties inherited from the first track: selected state, hidden state, scale, track gauge and Layer.
+
+For more detail about;
\dd Changing track length refer to \K{chgTrackLength}.
@@ -580,6 +706,14 @@ For detail about;
\u000
+\dd Modifying Draw elements refer to \K{chgDraw}
+
+\u000
+
+\dd Modifying Polygons and PolyLines refer to \K{polyModify}
+
+\u000
+
\dd Modifying a Cornu refer to \K{chgCornu}
\u000
@@ -716,29 +850,146 @@ For detail about;
\rule
-\S2{chgCornu} \i{Cornu Easements} Modifying a Cornu
+\S2{chgDraw} Modifying Draw Elements
+
+Draw elements have blue handles that show how they can be modified. They also have text entry boxes that allow precise entry of parameters. These values become active when a \e{Tab} is entered, or the cursor is moved out of the text box.
+
+There is a context menu accessed via \e{Right-Click} for Draw Objects that can change the edit mode from the initial "Points Mode" to "Origin Mode" where \e{Click} sets the position of the drawn object's origin - which will cause subsequent rotations using \K{cmdModify} or \K{cmdDescribe} to be centered about that point.
+
+The context menu can be used to go back to Points Mode, or to set the origin to one of a number of defined points.
+There are text shortcuts - "o" for Origin Mode and "p" for Points Mode.
+
+In Origin Mode, the context menu allows the origin to be set to be -
+
+\dd \e{Absolute} (shortcut "0") with the origin at the layout origin or
+
+\dd \e{Relative} by dragging the origin to a point, or snapping to the position of the first 4 corner points (shortcut "1" through "4"), or to the middle/centroid of the shape (shortcut "m"). For a Polygon or Polyline the \e{Relative} origin can be snapped to a last selected node (shortcut "l").
+
+\u000
+
+In Points Mode,
+
+\u000
+
+\dd Lines have end points that can be dragged. \e{Shift-Drag} will snap the end to the end of a nearby Draw object, while \e{Ctrl+Drag} will snap to any point on a nearby Draw object. They have text entry boxes for length and angle.
+
+\u000
+
+\dd Curves have end points that work like Lines but also have a middle anchor that can be used to alter the curve radius. They have text box entry for Arc Length (in degrees) and Radius.
+
+\u000
+
+\dd Boxes have anchors for all corners and the middle of all sides. They have text entry boxes for width and height.
+
+\u000
+
+\dd Bezier Lines - see \K{chgBezier}
+
+\S3{polyModify} Modifying PolyLines and Polygons
+
+When a Polygon or a PolyLine is modified, open blue circle anchors show the position of its "nodes", these are selected with \f{Left-Click} and are shown as filled circles.
+
+\b \f{Left-Drag} of a selected node of a \e{PolyLine} or \e{Polygon} moves that node to a new position, and if moved close enough to a neighboring node will merge the two nodes and delete the edge between them.
+
+\u000
+
+\b \f{Delete} will remove a selected node.
+
+\u000
+
+\b \f{Left-Clicking} on an edge will create a new node that can be dragged to position it.
+
+\u000
+
+\b Multiple points can be selected using \f{Shift+Left-Click}. If these are then \f{Left-Drag}ed all the selected points move together, preserving relative position.
+
+\u000
+
+\b There is a context menu that has controls for a selected point. It has options to alter the node into a rounded node (shortcut "r") or a smooth node (shortcut "s"). To turn it back into a sharp (vertex) node (shortcut "v").
+
+\u000
+
+\b If \e{Shift} is held down while dragging, the relative angle for the first selected point to its predecessor point will be locked to a multiple of 90 degrees.
+
+\u000
+
+\b When a node or nodes is/are selected, text entry boxes for length and relative angle (the deviation angle from the direction of preceeding side) can be used to fine-tune the position of the first node in the sequence. A arc indicator identifies the angle in question.
+
+\u000
+
+If no nodes are selected,
+
+\u000
+
+\b A context menu can be used to close a polyline into a polygon (shortcut "g") or open it (shortcut "l") into a non-filled polygon between its last and first nodes.
+
+\u000
+
+\b A unfilled polygon can also be filled (shortcut "f") or a filled one emptied (shortcut "u").
+
+\u000
+
+Notes
+
+\u000
+
+\dd A selected Polygon or Polyline node can only be deleted if there are at least three nodes left. It can only be round or smooth if long as it isn't an end node of a Polyline.
+
+\u000
+
+\dd Smoothed nodes implement a short Bezier curve that goes from halfway along the line of to the next node and which has a control arm that ends at the node. These are typically of most use to fine-tune a series of nodes that simulate a complex curve.
+
+\u000
+
+\dd Rounded nodes start at a distance that is half the shorter of the lines from the last node and to the next node and has control arms that extend to the half-way point to the node.
+This produces an arc whose radius is determined by the distance of the closet node. By manipulating the nearest node (for example, by adding a point) the radius at the node can be controlled.
+
+\u000
+
+\rule
+
+\S2{chgCornu} \i{Cornu Easements} Modifying a Cornu Track
-Because a Cornu is defined by its end points position, angle and radius - it can only be directly modified by dragging an end point along a track.
+Because a Cornu Track is defined by its end points position, angle and radius - it can only be directly modified by dragging an end point along a track, or altering its end conditions if it is not joined to another track.
+It can also have added "Pins" which constrain the curve to smoothly pass through a point.
\n Click the \f{Modify} button (\G{png.d/bmodify.png}) to activate the \f{Modify} function.
\lcont{\u000}
-\n Click on the Cornu track. The track ends will turn into roundels
+\n Click on the Cornu track. The track ends will turn into roundels. If any other Cornus are connected at either end, the entire connected set will be modifyable as one Cornu with intermediate "Pins" at the connections.
+
+\lcont{\u000}
+
+\n \e{Left-Click} an endpoint and \e{Left-Drag} it to move the endpoint along a connected track, or beyond it if you want that track extended. If there is no track the endpoint is free to move.
+
+\lcont{\u000}
+
+\n For an unconnected end point, \e{Left-Click} on the Radius or Angle anchors and \e{Left-Drag} it to adjust them.
+
+\lcont{\u000}
+
+\n \e{Left-Click} an Pin and \e{Left-Drag} it to move the pin and make the curve to pass through it.
+
+\lcont{\u000}
+
+\n \e{Left-Click} the track where a Pin doesn't exist to add a Pin and \e{Left-Drag} it to alter the curve to pass through a defined point.
\lcont{\u000}
-\n \e{Left-Click} the endpoint and \e{Left-Drag} it to move the endpoint along the connected track, or beyond it if you want that track extended ( but this only works in the direction of the Cornu).
+\n \e{Delete} to delete the last seelcted Pin, the curve will change to meet the end conditions and pass through any remaining Pins.
\lcont{\u000}
-\n Repeat with the other end-pint if desired
+\n Repeat with the other end-point or Pins if desired
\lcont{\u000}
\n Once you are happy, hit the \e{spacebar} or \e{Enter}, or to cancel hit \e{Escape}.
-\f{Note:} A Cornu can also be modified by moving or rotating a connected track.
+\f{Note:} If the Modify command contained Pins, \e{spacebar} or \e{Enter} it will output a set of connected Cornu(s) joined at the Pin points.
+
+\f{Note:} A Cornu can also be modified by moving or rotating a connected track.
\rule
@@ -791,45 +1042,31 @@ A move can be achieved using one of the following methods;
\u000
-\rule
-
-A pop-up menu with commands controlling how objects are drawn during moves can be activated by entering a \e{Shift+Right-Click} command while hovering over the \f{Main Canvas}
-
-\b \f{Normal} - objects are drawn normally. This can be time-consuming when using a slow machine and moving a large number of objects.
-
-\u000
-
-\b \f{Simple} - objects are drawn using one line (instead of two when zoomed in). Structures are drawn as outlines, no endpoints or lines are drawn.
-
-\u000
-
-\b \f{Endpoints} - only the endpoints are drawn (as stars).
-
-\G{png.d/mmovedraw.png}
+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.
+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.
\rule
-\f{Note:} If the moved track is connected but the track it is connect to is not moved, it will be disconnected, unless that track or the last selected track is a Cornu, in which case the Cornu concenred will be modified (if possible) to remain connected.
+\f{Note:} If the moved track is connected but the track it is connect to is not moved, it will be disconnected, unless that track or the last selected track is a Cornu, in which case the Cornu concenred will be modified (if possible) to remain connected.
\f{Note:} Cornu tracks connected to a turntable will be modified if it is moved or rotated. They remain connected at the point on the radius where they started, so it may be desireable to delete and redraw them if the rotation is large.
-\f{Note:} The \f{Draw Moving Tracks} Radio box on the \f{Command Options} (\K{cmdCmdopt}) dialog can also be used to select how objects are drawn during drags to move or rotate objects. The options for this feature are:
-
\rule
\S2{moveByMouse} Using Mouse
-Once object(s) are selected, \e{Left+Drag} is used to move them around the layout using the mouse.
+Once object(s) are selected, \e{Left+Drag} is used to move them around the layout using the mouse.
Alternatively, \e{Shift+Ctrl+Arrow} can be used to micro-move the selected object(s). The amount micro-moved is dependent on the zoom in use. To move by smaller increments, zoom in further. My moving to macro-zoom modes extremely fine adjustments can be made.
-Remember that unattached objects can also be moved to exact positions using the \K{cmdDescribe} Command or by the \K{moveByMenu}.
+Remember that unattached objects can also be moved to exact positions using the \K{cmdDescribe} Command or by the \K{moveByMenu}.
\S2{moveByMenu} Using Values of X and Y Translation
Move An Object Using Fixed or Specified amounts of X and Y Translation.
-A pop-up menu with additional menu items allows you to \f{Move} the selected object(s) through through any amount you specify.
+A pop-up menu with additional menu items allows you to \f{Move} the selected object(s) through through any amount you specify.
\G{png.d/mmovevariable.png}
@@ -839,7 +1076,7 @@ The \f{Move} command is executed as follows;
\lcont{\u000}
-\n \e{Shift+Right-Click} to raise the Move/Rotate menu.
+\n \e{Shift+Right-Click} to raise the Move/Rotate menu.
\lcont{\u000
@@ -851,7 +1088,7 @@ Any amount of precise transalation may be entered by \e{Left-Click}ing the \f{En
\u000
-}
+}
\rule
@@ -860,23 +1097,55 @@ 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{cmdElev}), Curved Track (\K{cmdCurve}), Helix (\K{cmdHelix}) or Turnout (\K{cmdHotBar}) Labels.
+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.
+
+The \f{Move Description} command can be invoked using the \f{Change>Move Description} menu item or the \f{Move Description} button.
-The \f{Move Description} command can be invoked using the \f{Change>Move Description} menu item, the \f{Move Description} button or the menu raised by a \e{Right-Click} over the \f{Main Canvas}.
+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. Use \e{Left+Drag} to move the label to a new position. 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.
+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 mode (\K{cmdSelect}).
+This operation can also be invoked by \e{Ctrl+Left+Drag} when in Select command (\K{cmdSelect}).
-\e{Shift+Right-Click} (\K{cmdAcclKeys}) can be used to toggle display of individual Curved Track, Bezier Track, Cornu, Helix or Turnout Labels.
+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 - existing defined elevation labels can be moved, but controlling thier visbility is done with the \K{cmdElevation} command.
\rule
-\S{cmdPan} Pan/Zoom
+\S{cmdPan} Pan/Zoom
\G{png.d/pan.png}
-This command is used to move or resize the viewport using the mouse or keyboard. \e{Left+Drag} Pans the viewport up and down, left and right keping it within the boundaries of the layout. \e{Right+Drag} selects an area of the screen to zoom into. The \f{"0"}- key resets the display to the origin but leaves the zoom as is. Keys between \f{1} and \f{9} set the zoom to that zoom level. The \f{"e"} - key resets the origin to zero and the zooms to show the whole layout.
+This command is used to move or resize the viewport using the mouse or keyboard. \e{Left+Drag} Pans the viewport up and down, left and right keping it within the boundaries of the layout. \e{Ctrl+Left-Drag} selects an area of the screen to zoom into. The \f{"0"} or \f{"o"} - key resets the display to the origin but leaves the zoom as is. Keys between \f{1} and \f{9} set the zoom to that zoom level. The \f{"e"} - key resets the origin to zero and the zooms to show the whole layout.
+
+There is a context menu that contains these text based items as well.
+
+\dd \e{\i{Zoom/Pan Shortcut Keys}}
+
+\lcont{
+
+\u000
+
+\b Keys '1'-'9' set the zoom to between 1::1 and 1::9.
+
+\u000
+
+\b Key 'e' sets the zoom to a value that allows all the room to be shown and moves the origin of the bottomm left of the window to 0,0
+
+\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
+
+\b Key 'c' moves the center of the window to the cursor position but leaves the zoom alone
+
+}
+
+As the window is Zoomed in and out, the setting of \f{Constrain Drawing Area to Room Boundaries} setting in the \f{Display} \K{cmdDisplay} dialog determines where the zoom is about.
+If it is not set, the center of the Drawing Area will stay fixed as the zoom changes.
+Otherwise, position of the Drawing Area will be constraned so any \f{grey} area will be to the right or above the room boundaries.
\S{cmdProfile} Profile
@@ -888,11 +1157,11 @@ Choose a path by using \e{Left-Click} on endpoints. As each endpoint is chosen,
If no route is possible an error message is displayed. There are several reasons why this might happen:
-\b The tracks are not connected. Check this by using \e{Shift+Left-Click} on one track using the \f{Select} command (\K{cmdSelect}). This selects all tracks connected (directly or indirectly). See if the other track is selected.
+\b The tracks are not connected. You can see this more easily if you turn on Display->Option->"Display Unconnected End Points" as Exception. You can also check this by using \e{Shift+Left-Click} on one track using the \f{Select} command (\K{cmdSelect}). This selects all tracks connected (directly or indirectly). See if the other track is selected.
\u000
-\b One of the endpoints on the route is \f{Ignored} (\K{cmdElev}). Look for blue dots on the expected path when using the Profile or \f{Elevation} (\K{cmdElev}) commands.
+\b One of the endpoints on the route is \f{Ignored} (\K{cmdElevation}). Look for blue dots on the expected path when using the Profile or \f{Elevation} (\K{cmdElevation}) commands.
\u000
@@ -900,7 +1169,7 @@ If no route is possible an error message is displayed. There are several reason
The path is drawn in the Profile Color (\K{cmdRgbcolor}) (default Purple) on the layout.
-If the shortest path is not what you want, you can choose endpoints that are closer to the end of the path. Also, you can \f{Ignore} (\K{cmdElev}) endpoints to prevent the path from choosing a route through that endpoint. Shift+Right-Click (\K{cmdAcclKeys}) displays a pop-up menu that allows you to change the specified endpoint to be a \f{Defined}, \f{Ignored} or \f{None} Elevation endpoint.
+If the shortest path is not what you want, you can choose endpoints that are closer to the end of the path. Also, you can \f{Ignore} (\K{cmdElevation}) endpoints to prevent the path from choosing a route through that endpoint. Shift+Right-Click (\K{cmdAcclKeys}) displays a pop-up menu that allows you to change the specified endpoint to be a \f{Defined}, \f{Ignored} or \f{None} Elevation endpoint.
Each \f{Defined Elevation} endpoint on the path is drawn as a Vertical bar, labeled with its height and distance from the beginning of the path.
@@ -910,12 +1179,16 @@ The \f{Grade} between points is displayed between the vertical bars. The \f{Gra
The heights of \f{Defined Elevations} can be changed by using \e{Left+Drag} on the profile window. As you \f{Drag}, the new elevation and grades to each side are displayed at the bottom of the profile dialog.
-The \f{Done} button closes the dialog.
+The \f{Change} button makes the changes in the Profile dialog permanent.
+
+The \f{Reset} button deletes all changes since the last press of \f{Change} or the start of the dialog.
The \f{Clear} button preserves elevation settings established along the current profile path, removes all profile points and leaves the \f{Profile} dialog open for selection of the next set of profile points. This function is useful when there's a need to view elevations along multiple profile paths.
The \f{Print} button prints the dialog. The aspect ratio is preserved on the print-out. You will probably want to print in landscape format.
+The dialog can be closed with the 'X' button in the window's titlebar.
+
\rule
@@ -925,14 +1198,130 @@ The \f{Print} button prints the dialog. The aspect ratio is preserved on the pr
Clicking on the \f{Properties} (Describe Mode) button cancels all active commands, closes any open dialog windows and places focus on the main window.
-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. Certain values can be changed to modify the object. If a track is connected to other tracks, then some values, e.g., endpoint positions, can not be changed.
+Until an object is selected, the object under the cursor that will be selected with \e{Left-Click} is highlighted in blue.
+
+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.
+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.
\G{png.d/dproperties.png}
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
+
+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.
+
+\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.
+
+\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.
+
+\dt Lock Rotation Origin
+
+\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.
+
+\dt Layer
+
+\dd The object can be moved between layers
+
+\dt Color
+
+\dd The color of the line or the fill can be set
+
+\S3{drawDescribeStr} Straight Line Objects
+
+\dt End Pt 1
+
+\dd For Straight Lines the object has a starting position (or first point) - altering this value causes the whole object to move relative to the layout origin.
+
+\dt End Pt 2
+
+\dd Straight Lines have a second point, altering this, moves just that end of the line, altering its length as needed.
+
+\dt Angle
+
+\dd Straight Lines have an angle - this is the angle between the two points, altering this moves End Pt2.
+
+\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.
+
+\S3{drawDescribeDim} Dimension Line Objects
+
+\dt Size
+
+\dd The size of the arrows and text can be set to Tine, Small, Medium or Large.
+
+\S3{drawDescribeBench} BenchWork Objects
+
+\dt Lumber
+
+\dd A set of standard dimensions of timber sizes that are often used to construct benchwork. They are specified in "nominal" dimensions but drawn in "actual" dimensions.
+
+\dt Orientation
+
+\dd The timber can be orientated "On Edge" which will draw the smaller dimension or "Flat".
+
+\S3{drawDescribeCurve} Curved and Circle Objects
+
+\dt Center
+
+\dd Curved Lines and Circles have a center. Moving this moves the object.
+
+\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
+
+\S3{drawDescribePoly} Polygon Objects
+
+\dt Fill
+
+\dd Some draw objects (Circles, Polygons) can be filled or emptied - note that Polylines can not be filled - they have to be closed first.
+
+\dt Open
+
+\dd Polygons can be opened to become Polylines or Polylines closed to become Polygons using Describe.
+
+\dt Point Count
+
+\dd Polygons and PolyLines have a count of nodes - this is read-only.
+
+\dt Height and Width
+
+\dd Rectangular Polygons have two properties that can alter the Height and Width of the Polygon
+
+\dt Line Type
+
+\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
+
+\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.
+
+
Most commands return to \f{Properties} mode then they terminate unless the command is sticky (\K{cmdSticky}).
Note: the Default Command radio button on the \f{Command Options} (\K{cmdCmdopt}) dialog controls whether the \f{Properties} or the \f{Select} (\K{cmdSelect}) command is used as the default command.
@@ -957,12 +1346,14 @@ The entered value is added to all Defined Elevations on the Selected tracks. A
This command is used to rotate selected (\K{cmdSelect}) objects.
-The \f{Rotate} command can be invoked using the \f{Change>Rotate} menu item, the \f{Rotate} button, the menu raised by a \e{Right-Click} over the \f{Main Canvas} or by the \e{Shift+Right+Drag} command when in \f{Select} mode.
+The \f{Rotate} command can be invoked using the \f{Change>Rotate} menu item, the \f{Rotate} button, the menu raised by a \e{Right-Click} over the \f{Main Canvas} or by the \e{Ctrl+Right-Drag} command when over a selected trak in \f{Select} mode.
-Successful use of this command requires selection of the object(s) to be rotated before attempting to rotate it. An object is selected by using the \e{Left-Click} command. A group of connected objects can be selected using the \e{Shift+Left-Click} command.
+Successful use of this command requires selection of the object(s) to be rotated before attempting to rotate it. An object is selected by using the \e{Left-Click} command. A group of connected objects can be selected using the \e{Shift+Left-Click} command, or indivdual tracks added with \e{Ctrl+Left-Click}.
A pop-up menu with commands controlling how objects move during the \f{Rotate} function can be activated by entering a \e{Shift+Right-Click} command while hovering over the \f{Main Canvas}.
+Note that a Rotate command for a Draw object does not use the Rotation Origin of that Object, even if has been defined as non-zero, instead it uses the position defined by the mouse or context command, and does not rotate the rotation origin.
+
\G{png.d/mrotatemove.png}
Rotation can be achieved using one of the following methods;
@@ -979,6 +1370,11 @@ 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.
+If \f{MagneticSnap} is disabled, the snap will only occur if \e{Alt} is held.
+Note that this also applies to \K{cmdMove}.
+
\rule
@@ -998,14 +1394,20 @@ 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. \f{Note:} If the \e{Ctrl} key is pressed in conjunction with \e{Left+Drag}, the object will rotate in increments of 15\u00B0.
+\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.
+If the anchor shows and the rotate is completed, the tracks will Snap to Alignment and Join.
+
+\u000
+
Rotation can also be achieved through use of one of these alternate methods;
\u000
@@ -1023,7 +1425,7 @@ Rotation can also be achieved through use of one of these alternate methods;
Rotate An Object Using Fixed or Specified Degree's of Rotation
-A pop-up menu with additional menu items allows you to \f{Rotate} the selected object(s) through various predefined angles or through any angle you specify.
+A pop-up menu with additional menu items allows you to \f{Rotate} the selected object(s) through various predefined angles or through any angle you specify.
\G{png.d/mrotatemove.png}
@@ -1037,17 +1439,17 @@ The \f{Rotate} command is executed as follows;
\lcont{\u000}
-\n With the mouse pointer hovering over the point about which the object(s) are to be rotated, \e{Shift+Right-Click} to raise the Rotate menu then select the desired degree and direction of rotation from the list of predefined angles (180\u00B0, 90\u00B0 CW, 45\u00B0 CW, 30\u00B0 CW, 15\u00B0 CW, 15\u00B0 CCW, 30\u00B0 CCW, 45\u00B0 CCW, 90\u00B0 CCW).
+\n With the mouse pointer hovering over the point about which the object(s) are to be rotated, \e{Shift+Right-Click} to raise the Rotate menu then select the desired degree and direction of rotation from the list of predefined angles (180\u00B0, 90\u00B0 CW, 45\u00B0 CW, 30\u00B0 CW, 15\u00B0 CW, 15\u00B0 CCW, 30\u00B0 CCW, 45\u00B0 CCW, 90\u00B0 CCW).
\lcont{\u000}
\G{png.d/mrotatefixed.png}
-\u000
+\u000
\rule
-Alternately, any angle may be entered by \e{Left-Click}ing the \f{Enter Angle...} menu item
+Alternately, any angle may be entered by \e{Left-Click}ing the \f{Enter Angle...} menu item
\n \f{Select} the object(s) to be rotated.
@@ -1125,7 +1527,7 @@ Rotation can also be achieved through use of one of these alternate methods;
\rule
-\S{cmdSelect} Select
+\S{cmdSelect} Select
\G{png.d/bselect.png}
@@ -1133,20 +1535,52 @@ 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 \e{Left-Click} - selects an object (or unselects a selected object). Selected objects appear in red (unless changed in the \f{Color} (\K{cmdRgbcolor}) dialog).
+\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
+
+\dd Objects that are part of a \f{Module Layer} are selected or deselected together.
+
+\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.
+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 \f{SelectZero} is selected in \K{cmdCmdopt} and an point that is not near to any objects is selected, all objects are deselected.
+
+\u000
+
+\dd \e{Shift+Left-Click} - selects all unselected tracks connected to a track you select. Selection stops at already selected tracks. Caution: This can select all tracks on the layout.
\u000
-\dd \e{Shift+Left-Click} - selects all unselected tracks connected to the track you select. Selection stops at selected tracks. Caution: This can select all tracks on the layout.
+\dd \e{Left+Drag} - highlights an area, and all the objects within the area are selected, if \f{SelectMode} is in \K{cmdCmdopt} is set to "Add", already selected objects outside the area remain selected, otherwise "Only", they are deselected.
\u000
-\dd \e{Left+Drag} - highlights an area, and all objects within the area are selected.
+\dd \e{Right-Drag} - highlights an area, and all the objects within the area are unselected regardless of \f{SelectMode}.
\u000
\dd \e{Right-Click} - displays a pop-up menu of commands.
+\u000
+
+\dd \e{"?"} - displays the Property menu for the object hovered over
+
+\u000
+
+\dd \e{"@"} - moves the center of the window (i.e., Pans) to be at the cursor position
+
+\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.
+
\lcont{
\u000
@@ -1159,29 +1593,28 @@ In combination with the mouse, the \f{Select} command can be used as follows;
\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 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.
\u000
-\dd \e{Right+Drag} - highlights an area, and all objects within the area are unselected.
+\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.
\u000
-\dd \e{Shift+Left-Click+Drag} - moves the selected objects (the Move (\K{cmdMove}) command).
+\dd \e{Shift+Left-Click+Drag} - on a selected object moves the selected objects (the Move (\K{cmdMove}) command).
\u000
-\dd \e{Shift+Right-Click+Drag} - rotates the selected objects (the \f{Rotate} (\K{cmdRotate}) command).
+\dd \e{Ctrl+Left-Click+Drag} - on a selected object rotates the selected objects (the \f{Rotate} (\K{cmdRotate}) command).
\lcont{
-\b If the \e{Ctrl} key is pressed while dragging then rotation will occur in 15\u00B0 increments.
+\b If the \e{Shift} key is pressed while dragging in rotation then rotation will occur in 15\u00B0 increments.
-}
-
-\u000
+\b If the selected items(s) are moved or rotated using the cursor, and an open end of unselected tracks is close to an end of the selected tracks that will be open after the move, a pair ot anchors shows that an autosnap with alignment will occur.
+Upon release of the button, all the selected tracks will be moved and aligned and the tracks joined.
-\dd \e{Ctrl+Left-Click+Drag} - moves turnout and elevations labels (Also see the \f{Move Description} (\K{cmdMoveLabel}) command).
+}
\u000
@@ -1209,15 +1642,15 @@ The following commands operate on the objects you have selected:
\b \f{Rescale} (\K{cmdRescale}) the selected objects.
-The \f{Cut}, \f{Copy} and \f{Paste} commands found on the \f{Edit} (\K{editM}) menu will also operate on selected objects.
+The \f{Cut}, \f{Copy}, \f{Clone} and \f{Paste} commands found on the \f{Edit} (\K{editM}) menu will also operate on selected objects.
Notes:
-\b A Filled Shape (\K{cmdDraw}) can be selected by clicking on its edge.
+\b Connections between selected and unselected tracks will be broken when selected tracks are moved. If the Drawing Scale is 8:1 or smaller, these about-to-be broken connections are marked with a red X.
\u000
-\b Connections between selected and unselected tracks will be broken when selected tracks are moved. If the Drawing Scale is 8:1 or smaller, these about-to-be broken connections are marked with a red X.
+\b During Move or Rotate operations, if an track end that will be disconnected during the operation comes close to a disconnected end of track that isn't selected, a pair of blue circles (one empty and one filled) will turn on. This shows that if the drag is stopped, those two points will be joined and the other selected tracks aligned. This represents a faster alternative to the \K{joinTrackMove} command.
\u000
@@ -1229,7 +1662,7 @@ Notes:
\u000
-\b Pressing the \e{Escape} key will deselect all selected tracks.
+\b Pressing the \e{Escape} key will deselect all selected tracks. Alternatively left-clicking on an empty area will also work.
\rule
@@ -1240,6 +1673,8 @@ Notes:
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.
+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.
+
For detail about;
\u000
@@ -1263,9 +1698,9 @@ Disconnecting a joint between two pieces of connected track;
\n Click the \f{Split} button (\G{png.d/bsplit.png}) to activate the \f{Split} command.
-\lcont{\u000}
+\n Place the mouse pointer right over the joint between the two track endpoints (so the "X" is shown) then \e{Left-Click}.
-\n Place the mouse pointer right over the joint between the two track endpoints then \e{Left-Click}.
+\n A blue marker will show where a split will occur, but if the cursor is a near connected joint, it will show a blue "X".
\lcont{\u000}
@@ -1304,9 +1739,9 @@ 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.
-\lcont{\u000}
+\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}.
-\n Place the mouse pointer over the point on the track where the it should be divided then \e{Left-Click}.
+\n To divide a Turnout, \e{Shift} must be held. The result will be a shorter Turnout with plain track replacing the rest of it. Note that the program will not stop division of the turnout between the switch blades and the frog - which would not be desireable in the real world.
\lcont{\u000}
@@ -1328,7 +1763,7 @@ Dividing a section of flex track into two connected pieces;
It's not possible to create a track shorter than the \e{Minimum Track Length} (\K{cmdPref}).
-This command is useful for placing tunnel portals or elevation points (\K{cmdElev}) at specific track locations.
+This command is useful for placing tunnel portals or elevation points (\K{cmdElevation}) at specific track locations.
Normally a turnout cannot be split however, if the \e{Shift} key is held when executing this command then the turnout can be \e{trim}med. \e{Trim}ming replaces the portion of track between the split point and the turnouts endpoint with flex-track. For turnouts with more than one set of points (\K{generalTerms}), such as a slip switch or scissors crossover, a \e{trim} point cannot be selected between the \e{points} of the turnout.
@@ -1368,12 +1803,12 @@ The \f{Split} command can be used to add block gaps (\K{generalTerms}) at the po
\u000
\dd \G{png.d/blockBoth.png}
-
+
\dd \e{Block Gaps in both rails}
\u000
-After starting the \f{Split} command use the \e{Shift+Right-Click} over a joint to display one of two pop-up menus which can be used to add, change or remove \e{block gaps} for the selected endpoint.
+After starting the \f{Split} command use the \e{Shift+Right-Click} over a joint (with the blue "X" anchor showing) to display one of two pop-up menus which can be used to add, change or remove \e{block gaps} for the selected endpoint.
\dd \G{png.d/msplitblock.png}
@@ -1397,4 +1832,4 @@ For detail about;
\dd Dividing a section of track into two connected pieces see \K{splitDivide}.
-\rule \ No newline at end of file
+\rule
diff --git a/app/doc/drawm.but b/app/doc/drawm.but
index b8469b1..76335bc 100644
--- a/app/doc/drawm.but
+++ b/app/doc/drawm.but
@@ -16,11 +16,11 @@ There are 4 command buttons on the tool-bar used to draw Straight Objects, Curve
Functions for drawing basic shapes and objects like lines and curves can be accessed from this menu.
-\dd \f{Circle Lines} - draw empty or filled circles. (\K{cmdCircleL})
+\dd \f{Circle Lines} - draw empty or filled circles. (\K{cmdDrawCircles})
\u000
-\dd \f{Curved Lines} - are created in the same manner as curved tracks. (\K{cmdCurvedL})
+\dd \f{Curved Lines} - are created in the same manner as curved tracks. (\K{cmdDrawCurves})
\u000
@@ -32,11 +32,11 @@ Functions for drawing basic shapes and objects like lines and curves can be acce
\u000
-\dd \f{Shapes} - draw boxes and poly-lines. (\K{cmdShapes})
+\dd \f{Shapes} - draw boxes, polygons and poly-lines. (\K{cmdDrawShapes})
\u000
-\dd \f{Straight Objects} - draw straight objects. (\K{cmdStraightL})
+\dd \f{Straight Objects} - draw straight objects. (\K{cmdDrawStraight})
\u000
@@ -46,80 +46,221 @@ Some commands display controls on the Status Line (\K{mainW}) to change line wid
\rule
+\S{cmdDrawCircles} Circles and Filled Circles
-\S{cmdCircleL} Circles and Filled Circles
-
-\G{png.d/mdrawcircles.png}
+\G{png.d/mdrawcircles.png}
\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 \G{png.d/dcircle2.png} \G{png.d/dflcrcl2.png} Select a point on the edge of the circle and drag to the center.
+\dd \K{cmdDrawCircleTangent}. Draw a Circle from the Edge.
+
+\u000
+
+\dd \K{cmdDrawCircleCenter}. Draw a Circle from the Center.
+
+\u000
+
+\dd \K{cmdDrawFilledCircleTangent}. Draw a Filled Circle from the Edge.
\u000
-\dd \G{png.d/dcircle3.png} \G{png.d/dflcrcl3.png} Select the center and drag to set the radius.
+\dd \K{cmdDrawFilledCircleCenter}. Draw a Filled Circle from the Center.
+
+\rule
+
+\S2{cmdDrawCircleTangent} Draw Circle from Tangent
+
+\G{png.d/dcircle2.png}
+
+\c{Left-Drag} a point on the edge of the circle to specify the radius.
\rule
+\S2{cmdDrawCircleCenter} Draw Circle from Center
+
+\G{png.d/dcircle3.png}
+
+\c{Left-Drag} from the center of the circle to the edge.
+
+\rule
+
+\S2{cmdDrawFilledCircleTangent} Draw Filled Circle from Tangent
+
+\G{png.d/dflcrcl2.png}
+
+\c{Left-Drag} from the center of the circle to the edge.
+
+\rule
+
+\S2{cmdDrawFilledCircleCenter} Draw Filled Circle from Center
+
+\G{png.d/dflcrcl3.png}
+
+\c{Left-Drag} a point on the edge of the circle to specify the radius.
-\S{cmdCurvedL} Curved Lines
+\rule
+
+\S{cmdDrawCurves} Curved Lines
\G{png.d/mdrawcurve.png}
\f{Curved Lines} are created in the same manner as curved tracks.
-\dd \G{png.d/dcurve1.png} Select the start of the curve and drag in the direction of the curve.
-
-If \e{Shift} is held down as the left mouse button is clicked for the first end point of the curve and the cursor is over a line object the position will snap to the nearest end of that line.
-If \e{Shift} is held down when the button is released for the second end, it will snap to the nearest end of a line object if it is over one.
+\dd (\K{cmdDrawCurveEndPt}). Drag out the end point and then curve it.
\u000
-\dd \G{png.d/dcurve2.png} Select one end of the curve and drag to the center.
+\dd (\K{cmdDrawCurveCenter}). Select the center and then an endpoint and drag out the curve.
-To complete the command, drag on the red arrows to adjust the curve.
+\u000
+
+\dd (\K{cmdDrawCurveTangent}). Select the end and drag out the center.
\u000
-\dd \G{png.d/dcurve3.png} Select the center of the curve and drag to one end.
+\dd (\K{cmdDrawCurveChord}). Drag from one end of the curve to the other to form the chord of the curve.
-To complete the command, drag on the red arrows to adjust the curve.
-
\u000
-\dd \G{png.d/dcurve4.png} Drag from one end of the curve to the other to form the chord of the curve.
+\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.
-To complete the command, drag on the red arrows to adjust the curve.
+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.
-\u000
+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.
+
+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.
+
+\rule
+
+\S2{cmdDrawCurveEndPt} Draw Curve from End Point
+
+\G{png.d/dcurve1.png}
+
+\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.
+
+\rule
+
+\S2{cmdDrawCurveTangent} Draw Curve from Tangent
+
+\G{png.d/dcurve2.png}
+
+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.
+To complete the command, drag on the red arrows to adjust the curve from the initial end.
+
+\rule
+
+\S2{cmdDrawCurveCenter} Draw Curve from Center
+
+\G{png.d/dcurve3.png}
-\dd \G{png.d/dbezier.png} \e{Left-Drag} out control point from one end of the curve and then \e{Left-Drag} out the second control point from the other end.
+Select the center of the curve and \c{left-drag} to one end.
-If \e{Shift} is held while the end points are selected, the curve will lock to the ends of nearby line objects.
+\rule
+
+\S2{cmdDrawCurveChord} Draw Curve from Chord
+
+\G{png.d/dcurve4.png}
+
+\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.
+
+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.
+
+To complete the command, drag on the red arrows to adjust the curve.
+
+\rule
+
+\S2{cmdDrawBezierCurve} Draw Bezier Curve
+
+\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.
+Repeat for the other end and control point.
-To adjust the curve, \e{Left-Click} and \e{Left-Drag} an end or a control point. Hit \e{Enter} to accept, \e{Esc} to reject.
+The first and second ends will act like \K{cmdDrawCurveEndPt} with \f{MagneticSnap} unless \e{Alt} is held.
\rule
+\S{cmdNote} Note Variants
-\S{cmdNote} Note
+\G{png.d/mnote.png}
-\G{png.d/bnote.png}
+The \f{Note} command allows you to
-The \f{Notepad} command allows you to attach notes (\G{png.d/iconnote.png}) to selected places on the layout.
+\dd Attach \f{plain text notes} (\K{cmdTextNote}),
-Click and drag on the Main Canvas (\K{mainW}) to place the note.
+\u000
+
+\dd Attach \f{weblinks} (\K{cmdLinkNote}) or
+
+\u000
+
+\dd Attach \f{document references} (\K{cmdFileNote}) to selected places on the layout.
+
+\rule
+
+\S2{cmdTextNote} Plain Text
+
+\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.
-When in \f{Properties} (\K{cmdDescribe}) mode, clicking on a \e{Note} will display the \e{Property Sheet} to let you read or modify the note.
+\G{png.d/notetext.png}
+
+When in \f{Properties} (\K{cmdDescribe}) mode, clicking on a \e{Note} will display the \e{Property Sheet} to let you read or modify the note.
+
+\rule
+
+\S2{cmdLinkNote} Weblink
+
+\G{png.d/blink.png} \G{png.d/iconlink.png} Similar to text notes you can place a weblink on the layout.
+
+After releasing the mouse button, the \e{Link Editor} dialog is displayed.
+
+\G{png.d/notelink.png}
+
+You can enter the URL
+of the website and a short description. When clicking on the Open button, your default browser is
+used to display the website.
+
+ When in \f{Properties} (\K{cmdDescribe}) mode, clicking on a \e{Weblink Note}
+ will display the \e{Property Sheet} to let you read or modify the URL or the
+ description.
+
+Double clicking on a weblink icon opens the website in your default browser.
+
+\rule
+
+\S2{cmdFileNote} Document
+
+\G{png.d/bfile.png} \G{png.d/iconfile.png} Similar to text notes you can place a reference to a file on the layout.
+
+After releasing the mouse button, the \e{Document Editor} dialog is displayed.
+
+\G{png.d/notefile.png}
+
+You can select the file and a enter a short description. When clicking on the Open button the file is opened with the default program for that file type.
+
+When in \f{Properties} (\K{cmdDescribe}) mode, clicking on a \e{Document Note} will display the \e{Property Sheet} to let you read or modify the filename or the
+ description.
+
+Double clicking on a document reference icon opens the document in the default program.
\rule
\S{cmdRuler} Ruler
-\G{png.d/bruler.png}
+\G{png.d/bruler.png}
The \f{Ruler} command displays a ruler on the layout. Click where you want the ruler to begin and drag the cursor to measure distances from the origin. The measured length is displayed in the \f{Status-bar} (\K{mainW}).
@@ -130,43 +271,200 @@ Subsequent clicks on the \f{Ruler} button will hide or display the ruler.
\rule
-\S{cmdShapes} Shapes
+\S{cmdDrawShapes} Shapes
\G{png.d/mdrawshapes.png}
Shapes are drawn by:
-\dd \G{png.d/dbox.png} \G{png.d/dfilbox.png} \f{Boxes} and \f{Filled Boxes} are created by selecting one corner and dragging the opposite corner.
+\dd (\K{cmdDrawBox}). Boxes
+
+\u000
+
+\dd (\K{cmdDrawFilledBox}. Filled Boxes
+
+\u000
+
+\dd (\K{cmdDrawPolygon}. Polygons
+
+\u000
+
+\dd (\K{cmdDrawFilledPolygon}. Filled Polygons
+
+\u000
+
+\dd (\K{cmdDrawPolyline}. PolyLines
\u000
-\dd \G{png.d/dpoly.png} \G{png.d/dfilpoly.png} \f{Poly Lines} and \f{Polygons} are created by \e{Left+Drag}, and a corner is placed when you release the left mouse button. The \f{Poly} shape is finished by pressing the \e{Space} key or by selecting another 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.
+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.
\rule
+\S2{cmdDrawBox} Draw Box
-\S{cmdStraightL} Straight Objects
+\G{png.d/dbox.png}
-\G{png.d/mdrawstraight.png}
+\f{Boxes} are created by selecting one corner and dragging the opposite corner.
+
+\u000
+
+\rule
+
+\S2{cmdDrawFilledBox} Draw Filled Box
+
+\G{png.d/dfilbox.png}
+
+\f{Filled Boxes} are created by selecting one corner and dragging the opposite corner.
+
+\u000
+
+\rule
+
+\S2{cmdDrawPolygon} Draw Polygon
+
+\G{png.d/dpoly.png}
+
+\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 it is disabled, the snap will only occur if \e{Alt} is held.
+
+\dd If \c{Ctrl} is held down when a new point is placed, it will snap the relative angle of the new side to a multiple of 90 degrees from the previous side.
+On the first polygon side this will be at a multiple of 90 degrees to the axes. The line from the previous point will be highlighted in Blue.
+
+\dd A special blue square anchor will show when the cursor is in a position such that it is 90 degrees away from both the last point and the first point of the Polygon.
+
+\dd The last polygon segment dimensions can be altered using the text boxes that appear showing the segment length and the relative angle to the previous segment.
+
+\dd A polygon is closed if the next node is place over the start of the polygon
+
+\dd The polygon is ended using \c{Enter} or \c{Space}. The polygon will be auto-closed.
+
+\rule
+
+\S2{cmdDrawFilledPolygon} Drae Filled Polygon
+
+\G{png.d/dfilbox.png}
+
+\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 it is disabled, the snap will only occur if \e{Alt} is held.
+
+\dd If \c{Ctrl} is held down when a new point is placed, it will snap the relative angle of the new side to a multiple of 90 degrees from the previous side.
+
+On the first polygon side this will be at a multiple of 90 degrees to the axes. The line from the previous point will be highlighted in Blue.
+
+\dd A special blue square anchor will show when the cursor is in a position such that it is 90 degrees away from both the last point and the first point of the Polygon.
+
+\dd The last polygon segment dimensions can be altered using the text boxes that appear showing the segment length and the relative angle to the previous segment.
+
+\dd The polygon is closed if the next node is place over the start of the polygon
+
+\dd The Filled Polygon is ended using \c{Enter} or \c{Space}. The polygon will be auto-closed.
+
+
+\rule
+
+\S2{cmdDrawPolyline} Draw PolyLine
-Straight Objects are created by a \e{Left+Drag} (\K{windowTerms}) on the layout. If \e{Draw Straight Objects} is Sticky (\K{cmdSticky}), \e{Cntl+Left+Drag} will use the endpoint of the previous line as the starting point.
+\G{png.d/dpolyline}
-\dd \G{png.d/dline.png} Creates a \f{Straight Line} of specified color and width.
-If \e{Shift} is held down for the first end point and the cursor is over a line object the new line start position will snap to the nearest end of the line.
-If \e{Shift} is held down when the button is released at the end of the \e{Left+Drag} the line end position will snap to the nearest end of any line object it is over.
+\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 it is disabled, the snap will only occur if \e{Alt} is held.
+
+\dd If \c{Ctrl} is held down when a new point is placed, it will snap the relative angle of the new side to a multiple of 90 degrees from the previous side.
+On the first polyline segemnt this will be at a multiple of 90 degrees to the axes. The line from the previous point will be highlighted in Blue.
+
+\dd A special blue square anchor will show when the cursor is in a position such that it is 90 degrees away from both the last point and the first point of the Polyline.
+
+\dd The last drawn polyline segment dimensions can be altered using the text boxes that appear showing the segment length and the relative angle to the previous segment.
+
+\dd The polyline is ended using \c{Enter} or \c{Space}.
+
+\dd While drawing the Polyline certain short cuts are available by keystroke and via the Context Menu:
+
+\dd \c{'p'} - to cover to a Polygon
+
+\dd \c{'s'} - to smooth the last selected point
+
+\dd \c{'r'} - to make the last selected point round
+
+\dd \c{'v'} - to make the last selected point sharp (a vertex)
+
+\dd \c{'o'} - to change to \K{DrawOrigin} mode
+
+\rule
+
+\S{cmdDrawStraights} Straight Objects
+
+\G{png.d/mdrawstraight.png}
+
+Straight Objects are created by a \e{Left+Drag} (\K{windowTerms}) on the layout.
+
+\dd (\K{cmdDrawLine}). Creates a Straight Line
\u000
-\dd \G{png.d/ddimlin.png} Creates a \f{Dimension Line} of various sizes.
+\dd (\K{cmdDrawDimLine}). Creates a \f{Dimension Line} of various sizes.
\u000
-\dd \G{png.d/dbench.png} Creates \i\f{Bench-work} using different types and orientation of lumber.
+\dd (\K{cmdDrawBench}). Creates \i\f{Bench-work} using different types and orientation of lumber.
\u000
-\dd \G{png.d/dtbledge.png} Creates a \f{Table Edge}
+\dd (\K{cmdDrawTableEdge}). Creates a \f{Table Edge}
+
+\S2{cmdDrawLine} Draw Straight Line
+
+\G{png.d/dline.png} Creates a \f{Straight Line} of specified color and width.
+
+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} 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.
+
+\rule
+
+\S2{cmdDrawDimLine} Draw Dimension Line
+
+\G{png.d/ddimlin.png}
+
+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.
+
+\S2{cmdDrawBench} Draw Benchwork.
+
+\G{png.d/dbench.png}
+
+Creates \i\f{Bench-work} using different types and orientation of lumber.
\i{Bench-work Notes}
@@ -180,25 +478,65 @@ If \e{Shift} is held down when the button is released at the end of the \e{Left+
\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.
+
+\S2{cmdDrawTableEdge} Draw Table Edge
+
+\G{png.d/dtbledge.png}
+
+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.
+
\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.
+
+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.
+
+As a practical matter, the object will appear identical until a subsequent rotation value is entered in the \K{cmdDescribe} window in both cases.
+
+In Origin Mode (entered using \c{'o'} or the Context Menu, there are certain shortcuts available -
+
+\dd \c{'p'} Go to Points Mode
+
+\dd \c{'0'} Move to Absolute (Origin to 0,0)
+
+\dd \c{'1-4'} Move the Relative Origin to the shape point 1 to 4
+
+\dd \c{'l'} Move the Relative Origin to the last selected point
+
+\dd \c{'m'} Move the Relative Origin to the middle of the shape (centeroid).
+
\S{cmdText} Text
-\G{png.d/btext.png}
+\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.
-\G{png.d/statustext.png}
+\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 can be selected by the \f{Font Selection} (\K{fontSelW}) dialog invoked by the \f{Options>Fonts} menu item or by \e{Shift+Right-Click} (\K{cmdAcclKeys}).
+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 position where text is to be placed on the layout must be selected prior to text entry. The position is select by \e{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 \e{Left-Click+Drag}ing the text to any desired postion on the layout.
+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 \f{Properties} (\K{cmdDescribe}) command can be used to modify the contents of existing \f{Text} objects.
+The \f{Properties} (\K{cmdDescribe}) command can be used to modify the contents of existing \f{Text} objects and to draw boxes around them.
Note: loading fonts (or changing sizes) can take a noticeable amount of time.
-\rule \ No newline at end of file
+\rule
diff --git a/app/doc/editm.but b/app/doc/editm.but
index f31b6d6..166ec11 100644
--- a/app/doc/editm.but
+++ b/app/doc/editm.but
@@ -22,6 +22,12 @@ The \f{Edit Menu} shows commands affecting the \f{Main Canvas} (\K{mainW}).
\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.
+
+\u000
+
\dd \f{Cut} - Moves the selected objects to the clipboard.
\u000
@@ -42,7 +48,10 @@ The \f{Edit Menu} shows commands affecting the \f{Main Canvas} (\K{mainW}).
\u000
-\dd \f{Paste} - Copies the contents of the clipboard to the layout. The newly pasted parts are in \f{Selected} state and can easily be moved into place. Any previously selected objects are unselected.
+\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.
\u000
@@ -62,28 +71,32 @@ The \f{Edit Menu} shows commands affecting the \f{Main Canvas} (\K{mainW}).
\u000
-\dd \f{Thin, Medium and Thick Tracks} - set rail width of selected tracks.
+\dd \f{Thin, Medium and Thick Tracks} - set displayed rail width of selected tracks.
\u000
-\dd \f{Tunnel} - Hides or reveals selected tracks.
+\dd \f{Tunnel} - Hides or reveals selected tracks and adds a tunnel portal symbol where the track passes from one to the other.
\u000
-\dd \f{Undo} - Undoes 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 \f{Bridge} - Adds parapet symbols to the sides of the track.
+
+\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}).
For more information on working with selected objects, see the Select (\K{cmdSelect}) command.
\rule
-\S{cmdAboveBelow} Above and Below
+\S{cmdAboveBelow} "Move To Front" and "Move to Back"
\G{png.d/btop_bottom.png}
-The Above/Below commands move the selected objects (\K{cmdSelect}) into the \f{Foreground} or \f{Background} making them more or less visible or prominent.
+The Move to Front and Move To Back commands move the selected objects (\K{cmdSelect}) to the top of the drawing list - the \f{Foreground} or to the bottom of the list - the \f{Background} making them more or less visible or prominent.
-The effect is to make the objects appear in front or behind other objects. This command is most useful when dealing with filled shapes (\K{cmdDraw}).
+The effect is to make the objects move to be in front of all or behind all other objects. This command is useful when dealing with filled shapes (\K{cmdDraw}).
Selected objects moved to the \f{Background} become unselected.
@@ -94,23 +107,23 @@ Selected objects moved to the \f{Background} become unselected.
Additional Shortcut keys perform the following:
-\dd \e{Shift+Backspace} - Undo
+\dd \c{Shift+Backspace} - Undo
\u000
-\dd \e{Ctrl+Insert} - Copy
+\dd \c{Ctrl+Insert} - Copy
\u000
-\dd \e{Shift+Insert} - Paste
+\dd \c{Shift+Insert} - Paste
\u000
-\dd Shift+Delete - Cut
+\dd \c{Shift+Delete} - Cut
\u000
-\dd Esc - Deselect All
+\dd \c{Esc} - Deselect All
\rule
@@ -123,7 +136,7 @@ The \f{Delete} button is used to delete selected objects. Remember, the \f{Undo
Deleting a track that is connected to an easement (\K{cmdEasement}) causes the easement to be deleted as well.
-The \f{Delete} key invokes the Delete command.
+The \e{Delete} key invokes the Delete command.
\rule
@@ -143,6 +156,25 @@ The \f{Draw Tunnels} Radio button group on the \f{Options>Display} dialog (\K{cm
\rule
+\S{cmdBridge} Bridge (Draw Abutments)
+
+The \f{Bridge} command is used to add abutments to a track (as on an underbridge).
+
+Select the tracks you want to be a bridge. Bridge abutments are drawn alongside the track. You can split (\K{cmdSplitTrack}) a track to shorten the length of the bridge, or to add an extra pier to the drawing.
+
+If you perform this action (or use Tunnel) the bridge is removed.
+
+\rule
+
+\S{cmdTies} Ties (Draw or Hide Ties)
+
+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.
+
+\rule
+
+
\S{cmdUndo} Undo and Redo
\G{png.d/bgundo.png}
diff --git a/app/doc/filem.but b/app/doc/filem.but
index c1c694e..a0cce82 100644
--- a/app/doc/filem.but
+++ b/app/doc/filem.but
@@ -10,16 +10,26 @@
\G{png.d/mfile.png}
The \f{File Menu} shows file oriented commands for loading and saving layout files.
+\i{File Types} The main two filetypes that XTrackCAD uses are normal Layout Files (*.xtc) and Archive Files (*.xtce). The internals of both formats are described in the XtrkCAD Wiki at \W{http://www.xtrkcad.org/Wikka/FileFormats}{Wiki FileFormats}.
+
+\i{Layout File} The layout file is named with a \e{*.xtc} extenstion and is a text-based description file of all the objects used in the layout plus some information about the options currently in use.
+\i{Archive} An archive is named with a \e{*.xtce} extension, is a zipped collection of -
+
+\b a \e{manifest} JSON file that lists the contents,
+
+\b the .xtc layout file, and
+
+\b any other content listed in the manifest -> such as referenced image files. Initially the only such content is the background image which is added to the archive if it is present.
\dd \f{Exit} - Exits \e{XTrackCAD}. You will be asked to confirm your choice if there are unsaved changes.
\u000
-\dd \f{Export} - Exports the selected objects to a file in \e{XTrackCAD} (*.xti) format. The exported file can then be imported into another layout design. Refer to the Import command listed above.
+\dd \f{Export} - Exports the selected objects to a file in \e{XTrackCAD} (*.xti) format. The exported file can then be imported into another layout design. Refer to the Import command listed below.
\u000
-\dd \f{Export to Bitmap} - Creates a bitmap file (\K{cmdOutputbitmap}) of the layout.
+\dd \f{Export to Bitmap} - Creates a bitmap file (\K{cmdOutputbitmap}) of the layout. The bitmap will be saved in PNG format.
\u000
@@ -27,14 +37,17 @@ The \f{File Menu} shows file oriented commands for loading and saving layout fil
\u000
-\dd \f{File List} - List of the five most recently used \e{XTrackCAD} files.
+\dd \f{File List} - List of the five most recently used \e{XTrackCAD} files or archives.
\u000
-\dd \f{Import} - Displays the file selection dialog which allows selection of an existing \e{XTrackCAD} Import (\K{cmdExport}) file. This function can be used to transfer parts like a yard design from one layout design to another.
+\dd \f{Import} - Displays the file selection dialog which allows selection of an existing \e{XTrackCAD} Import (\K{cmdExport} *.xti) files. This function can be used to transfer parts like a yard design from one layout design to another.
\u000
+\dd \f{Import Module} - Displays the file selection dialog which allows selection of an existing \e{XTrackCAD} Import (\K{cmdExport} *.xti) file. The imported parts are put into a empty layer, sets the layer name to the imported filename and sets the layer to be a module - see (\K{cmdLayer}).
+\u000
+
\dd \G{png.d/bnew.png} \f{New} - Clears the current layout. In case there are any unsaved changes on the current plan, a warning pop-up will be displayed and you'll have the option to cancel the operation. After that the Layout Options (\K{cmdLayout}) dialog will be opened.
\u000
@@ -43,7 +56,7 @@ The \f{File Menu} shows file oriented commands for loading and saving layout fil
\u000
-\dd \G{png.d/bopen.png} \f{Open} - Displays the \f{File Open} dialog which allows an existing \e{XTrackCAD} file to be selected and opened. In case there are any unsaved changes on the current plan, a warning pop-up will be displayed and you'll have the option to cancel the operation.
+\dd \G{png.d/bopen.png} \f{Open} - Displays the \f{File Open} dialog which allows an existing \e{XTrackCAD} file or archive to be selected and opened. In case there are any unsaved changes on the current plan, a warning pop-up will be displayed and you'll have the option to cancel the operation.
\u000
@@ -59,15 +72,15 @@ The \f{File Menu} shows file oriented commands for loading and saving layout fil
\u000
-\dd \f{Revert} - Undoes all changes and returns to the last saved layout plan.
+\dd \f{Revert} - Undoes all changes and returns to the last saved layout plan.
\u000
-\dd \G{png.d/bsave.png} \f{Save} - Saves the layout under the current file name. If a filename has not yet been assigned then the \f{File Save} dialog is shown so you enter a file name.
+\dd \G{png.d/bsave.png} \f{Save} - Saves the layout under the current file name and with the same file type as was opened. If a filename has not yet been assigned then the \f{File Save} dialog is shown so you enter a file (.xtc) or archive name (.xtce).
\u000
-\dd \f{Save As} - This command lets you make a copy of the track plan you are currently working on. It differs from the regular Save command. Save stores your data back into the folder (directory) it originally came from. "Save As" lets you give your plan a different name and/or put it in a different folder on your hard disk or floppy disk.
+\dd \f{Save As} - This command lets you make a copy of the track plan you are currently working on as an file (.xtc) or an archive (.xtce). It differs from the regular Save command. Save stores your data back into the folder (directory) it originally came from in the same filetype. "Save As" lets you give your plan a different name and/or put it in a different folder on your hard disk and chnage its filetype using the selection box at the bottom of the list of files or by hardcoding the extensions .xtc or .xtce (for an archive).
\rule
@@ -89,7 +102,7 @@ This menu item creates a bitmap file of the layout.
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.
-Printing the track centerlines (also seen when zoomed in 1:1) is useful when you later print the bitmap
+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.
@@ -102,7 +115,7 @@ 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 depends on the Operating System: on MS-Windows it is a Windows Bitmap (.BMP) file, on Linux it is a X11 Pixmap (.XPM) file.
+The format of the file is PNG on all operating systems.
\rule
@@ -128,25 +141,83 @@ After importing the objects from the file, the imported objects are in selected
\S{cmdPrmfile} \i{Parameter Files}
-\e{Parameter Files} contain turnout, sectional track and structure definitions. Parameter Files are loaded and unloaded with the \f{Parameter Files} dialog.
+\e{Parameter Files} contain turnout, sectional track and structure definitions. Loaded Parameter Files are managed with the \f{Parameter Files} dialog.
\G{png.d/dprmfile.png}
-The dialog contains a list of parameter files. Each file is preceded by a checked box. If the box is checked, the parameter file is loaded. If the box is not checked the file is unloaded.
+The dialog contains a list of parameter files. Each file is preceded by a color indicator. These indicators show whether a parameter file contains definitions that
+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.
+
+\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.
-Loaded definition files associated with current scale settings 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}. An unloaded file may be \e{reloaded} by selecting the \f{Reload} button (The \f{Unload} button changes to \f{Reload} when a selected file is unloaded).
+\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.
+
+Definition 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.
+
+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.
+
+Note that loading a file does not change the existing definitions in the layout. To do that after loading, use \K{cmdRefreshSpecial}.
It is possible to change the state of several files at once. The \f{Select All} button allows you to select all parameter files for the next operation.
-\e{Unloaded} files are removed from the list when \e{XTrackCAD} terminates.
+In case unloaded files are marked as favorite, their state will be preserved
+between runs of the program.
+This makes it possible to keep a list of preferred parameter sets between
+runs of XTrackCAD but hide temporary unused files from the hotbar. That
+way the hotbar contents can be kept short containing only the currently needed elements.
+
+In order to update the defintion of an already loaded file from disk, you can use the \e{Reload} button. This will reload the file contents - with any changes made.
+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.
-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
+shows the all files included the system library so they can be added.
-The \f{Browse} button allows you to load other \e{parameter files} such as provided by other users or downloaded from the Internet.
+The \f{Browse} button opens a file window that allows the user to add additional files
+to directly load other non-system \e{parameter files} such as provided by other users or
+downloaded from the Internet.
-When first installed, all available parameter files are loaded. You can unload parameter files you don't use to speed up \e{XTrackCAD} startup time.
+When first installed, parameter files for all common scales are loaded.
+You can unload parameter files you don't use to speed up \e{XTrackCAD} startup time.
-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.
+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}
+
+Selecting and loading additional parameter files from the System Library is done in the
+\f{Search 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.
+
+Select the files you're interested in and press the \f{Add} button to add them to your
+parameter list.
\rule
@@ -204,27 +275,36 @@ Whether tracks are printed with one or two lines (representing the center line a
\u000
-\dd \f{Ignore Page Margins} - use the physical page size. This allows the printouts to abut without trimming.
+\dd \f{Registration Marks} - at 1:1 scale, print location markers every 3" (or 10cm). This option is only enabled at 1:1. This is useful for aligning multiple pages printed at different angles.
\u000
-\dd \f{Print Registration Marks} - at 1:1 scale, print location markers every 3" (or 10cm). This option is only enabled at 1:1. This is useful for aligning multiple pages printed at different angles.
+\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.
+As an additional aid, the numbers of the next pages are printed on each edge.
\u000
-\dd \f{Print Snap Grid} - if the Snap Grid (\K{cmdGrid}) is visible then it may be drawn on the printout. This option is only enabled if the \e{Snap Grid} is visible.
+\dd \f{Snap Grid} - if the Snap Grid (\K{cmdGrid}) is visible then it may be drawn on the printout. This option is only enabled if the \e{Snap Grid} is visible.
\u000
-\dd \f{Print 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} - print rulers on all edges of the page. This option is only enabled if the \f{Angle} is \e{0.000}.
\u000
-\dd \f{Print centerline below Scale 1:1} - dotted line down the center of the Track/Roadbed. This line will always be printed at Scale 1:1, but selecting this option will print it at smaller scales. This option is disabled if tracks would be drawn with only one line (instead of two).
+\dd \f{Centerline below Scale 1:1} - dotted line down the center of the Track/Roadbed. This line will always be printed at Scale 1:1, but selecting this option will print it at smaller scales. This option is disabled if tracks would be drawn with only one line (instead of two).
\u000
-\dd \f{Print Roadbed Outline} - lines representing the edge of the Roadbed. The Roadbed will be printed if the \e{Width} is greater than the track gauge. Note: this option is most useful at 1:1. This option is disabled if tracks would be drawn with only one line (instead of two).
+\dd \f{Roadbed Outline} - lines representing the edge of the Roadbed. The Roadbed will be printed if the \e{Width} is greater than the track gauge. Note: this option is most useful at 1:1. This option is disabled if tracks would be drawn with only one line (instead of two).
+
+\u000
+
+\dd \f{Ignore Page Margins} - use the physical page size. This allows the printouts to abut without trimming.
+
+\u000
+
+\dd \f{Margins} - examine and update the printer margins for the current printer. (\K{cmdPrintMargin})
\u000
@@ -241,13 +321,15 @@ Whether tracks are printed with one or two lines (representing the center line a
\dd \f{Angle} - of the grid.
-These values can be set directly or by dragging on the layout. \e{Shift+Left+Drag} moves the grid and \e{Shift+Right+Drag} rotates the grid. The \f{Reset} button resets the values to 0.
+These values can be set directly or by dragging on the layout. \c{Shift+Left+Drag} moves the grid and \c{Shift+Right+Drag} rotates the grid. The \f{Reset} button resets the values to 0.
The \f{Print} button prints the selected pages and closes the \f{Print} dialog. It is not enabled until you have selected some pages to print.
The \f{Setup} button invokes the Printer Setup (\K{printSetup}) dialog.
-The \f{Clear} button unselects all selected pages.
+The \f{Select All} button selects all pages for printing.
+
+The \f{Clear} button unselects all selected pages, so no pages will be printed.
\e{Suggested Uses:}
@@ -285,7 +367,7 @@ The \f{Printer Setup} window contains:
\u000
-\dd \f{Orientation} - a Radio button to select various Landscape or Portrait formats.
+\dd \f{Orientation} - a Radio button to select various Landscape or Portrait formats. This setting is ignored, use the \f{Page Format} entry on the \f{Print} dialog.
\u000
@@ -333,6 +415,52 @@ The \f{Printer Setup} window contains:
\u000
-\dd \f{Orientation} - a Radio button to select either Landscape or Portrait format.
+\dd \f{Orientation} - a Radio button to select either Landscape or Portrait format. This setting is ignored, use the \f{Page Format} entry on the \f{Print} dialog.
+
+\rule
+
+\S{cmdPrintMargin} \i{Printer Margin}
+
+\G{png.d/printmargin.png}
+
+The \f{Printer Margins} dialog allows you to configure the selected printer's margins.
+
+The margins for the four edges of the printed page are displayed.
+The default values are fetched from the Operating System.
+You can enter updated values if the System values don't match your actual printer.
+
+The \f{Reset} is enabled if the displayed values don't match the System values and will reload the System's values.
+
+To check your printer's margin:
+
+\dd Set \f{Scale} to 1
+
+\u000
+
+\dd Set \f{Origin} and \f{Angle} to 0.000 by clicking the \f{Reset} button
+
+\u000
+
+\dd Enable \f{Registration Marks}
+
+\u000
+
+\dd Enable \f{Ignore Page Margins}
+
+\u000
+
+\dd Select and \f{Print} the lower left page of you layout
+
+\u000
+
+\dd Measure the distance from the left and bottom edges to the Registration Mark at (3",3") or (10cm,10cm).
+
+\u000
+
+\dd Update the \f{Printer Margin} values for the left and bottom edges. You can also update the top and right edges.
+
+\u000
+
+Margins values are stored for each printer.
\rule
diff --git a/app/doc/helpm.but b/app/doc/helpm.but
index 08ccd49..b1e3666 100644
--- a/app/doc/helpm.but
+++ b/app/doc/helpm.but
@@ -10,11 +10,9 @@
The \f{Help Menu} displays information on various topics. The contents of the menu vary depending on the operating system.
-\dd \G{png.d/mhelpdemos.png}
-
-\dd \e{Demo Menu}
+\dd The \f{Help} command opens the Help Window at the Contents Page.
-The \f{Demos} command (\K{cmdDemo}) opens a cascading menu which invokes various demonstrations of \e{XTrackCAD} features.
+\dd The \f{Help Command Context} command opens the Help Window at the page for the current Command.
\dd \G{png.d/mhelprecent.png}
@@ -28,6 +26,14 @@ The \f{Recent Messages} command opens a cascading menu containing recent error m
The \f{Tip of the Day} item displays a useful tip about the operation of \e{XTrackCAD}. By default, a new tip is displayed each time you start the program.
+\dd \G{png.d/mhelpdemos.png}
+
+\dd \e{Demo Menu}
+
+The \f{Demos} command (\K{cmdDemo}) opens a cascading menu which invokes various demonstrations of \e{XTrackCAD} features.
+
+The \f{Examples} command displays the list of included example programs which you can examine.
+
\rule
\S{cmdDemo} Demo Mode
@@ -63,4 +69,4 @@ A number of options and controls (such as scale) are changed while running demon
You can adjust Window sizes and positions while the demonstration is running to better see what is happening.
-\rule \ No newline at end of file
+\rule
diff --git a/app/doc/hotbar.but b/app/doc/hotbar.but
index 9683c5e..fcaddce 100644
--- a/app/doc/hotbar.but
+++ b/app/doc/hotbar.but
@@ -8,16 +8,34 @@
\G{png.d/hotbar.png}
-The \e{Hot Bar} is a scrolling list of all the turnouts, sectional track and structures available through the Turnout (\K{cmdTurnout}) and Structure (\K{cmdStructure}) commands. The Description and/or Part Number under each object can be displayed by enabling the \e{Hot Bar Labels} radio button on the Display (\K{cmdDisplay}) dialog.
+The \e{Hot Bar} starts with a flextrack of the current gauge, and then a scrolling list of all the turnouts, sectional track and structures available through the Turnout (\K{cmdTurnout}) and Structure (\K{cmdStructure}) commands. The Description and/or Part Number under each object can be displayed by enabling the \e{Hot Bar Labels} radio button on the Display (\K{cmdDisplay}) dialog.
-The arrow buttons on either side of the \e{Hot bar} move the list one object to the right or left. Holding down the Shift key will move the list by greater amounts. About eight Shift+Clicks are required to move the list through the entire range of objects. Also, pressing the keys \e{1} through \e{9} and \e{0} will cause the \e{Hot Bar} to jump relative spots on the list.
+Only those items taken from files which are in the current scale/gauge are displayed in the HotBar. They are shown in order - A FlexTrack - then the Contents of Files in the File->Parameter Files... List in listed order - and then any Custom objects created in this Layout as listed in the Manage->Custom Defined Parts dialog.
-A \e{Right-Click} over the \e{Hot Bar} will display a pop-up menu listing the contents of the \e{Hot Bar}. Selecting an item from this list causes the \e{Hot Bar} to jump to the relative spot on the list.
+The arrow buttons on either side of the \e{Hot bar} move the list one object to the right or left. Holding down the Shift key will move the list by greater amounts. About eight \c{Shift+Click}s are required to move the list through the entire range of objects. Also, pressing the keys \c{1} through \c{9} and \c{0} will cause the \e{Hot Bar} to jump relative spots on the 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, positioning it then pressing the \e{Space} key to set it in place.
+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.
\rule
+\S{Flextrack} FlexTrack
+
+A FlexTrack unit can be placed for convienience on the left-hand side of the HotBar.
+This is can be hidden by an option in \K{cmdPref}. It can be recognised because it is the only diagonally facing track element and has a label "FLEX".
+It is used by \c{Left-Click} selecting it, and \c{Left-Click} clicking on the layout where the first end should be placed, and then \c{Left-Click} for the second end.
+If either end is over an unconnected end and \f{Shift} was not held, the flextrack will be connected to the track and the end angle and radius will be set from the track.
+If an end was not over an unconnected end, it can be manipulated by left dragging out the end angle before releasing.
+If the second end is not on a track end, differing end angles will produce a smooth curve, if both ends are unconnected, simply \c{Left-Click} without dragging produces a straight track.
+Once both ends have been defined, the track can then be manipulated like a \k{chgCornu} Cornu Curved Track, by selecting and moving ends, adding and removing "pins" and altering the end anchor angle and radius if the flextrack is not connected at that end.
+If the disconnected end is dragged and the button released while over an open end of another track, it will be connected to it in the manner of a Join with a Cornu easement.
+
+A FlexTrack will form a Straight Track if the ends have zero radius and are in a line with opposed end angles.
+If the ends are not aligned but the end angles are opposed it will be a simple S-curve.
+It will be a smooth monotonic curve if the ends are not in a line and the end angle lines and chord form a triangle. Otherwise it will be a complex S-curve. .
+
+\rule
\S{hbStructures} Structures
@@ -30,19 +48,19 @@ 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 \e{Shift+Left-Click} which causes the next endpoint to become Active.
+\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.
-If you \e{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}.
+\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}.
-\e{Right+Drag} (\K{windowTerms}) can be used to rotate the turnout on the layout. \e{Shift+Right-Click} (\K{cmdAcclKeys}) displays a pop-up menu allowing you to rotate the turnout by various angles.
+\c{Right+Drag} or \c{Ctrl+Left+Drag} (\K{windowTerms}) can be used to rotate the turnout on the layout. \c{Shift+Right-Click} (\K{cmdAcclKeys}) displays a pop-up menu allowing you to rotate the turnout by various angles.
-When you press the \e{Space} key, the turnout is positioned on the layout. Any tracks that are aligned with any of the turnout's endpoints will be connected to the turnout automatically. If you are using the Turnout (\K{cmdTurnout}) command then you can also click the \e{OK} button on the dialog.
+When you press the \c{Space} key, the turnout is positioned on the layout. Any tracks that are aligned with any of the turnout's endpoints will be connected to the turnout automatically. If you are using the Turnout (\K{cmdTurnout}) command then you can also click the \e{OK} button on the dialog.
If you choose another turnout or change commands after beginning to place a turnout on the layout, the turnout will be created as if it is attached to another track. Otherwise it will be removed.
-If the Drawing Scale is smaller or equal to the Label Scale (\K{cmdDisplay}) then Turnouts will be labeled with their description when drawn. The individual labels can be can be turned off by the Move Description(\K{cmdMoveLabel}) command, or all Turnout labels can be disabled by using the Display (\K{cmdDisplay}) dialog. As well, the length of any connected Flex-track will be indicated at each endpoint.
+If the Drawing Scale is smaller or equal to the Label Scale (\K{cmdDisplay}) then Turnouts will be labeled with their description when drawn. The individual labels can be can be turned off by the Move Description(\K{cmdMoveLabel}) command, or all Turnout labels can be disabled by using the Display (\K{cmdDisplay}) dialog. As well, the length of any connected Flex-track will be indicated at each endpoint.
Refer to \K{cmdTurnout} for information pertaining to use of the \e{Turnout} dialog.
diff --git a/app/doc/intro.but.in b/app/doc/intro.but.in
index 51203f8..1a423f0 100644
--- a/app/doc/intro.but.in
+++ b/app/doc/intro.but.in
@@ -15,7 +15,8 @@
\define{XTCStgzPack} xtrkcad-setup-@XTRKCAD_VERSION@.i386.sh
\define{XTCCopyRight} Copyright 2003, Sillub Technology and
-Copyright 2007, Bob Blackwell and Martin Fischer
+Copyright 2007, Bob Blackwell and Martin Fischer and
+Copyright 2020, Martin Fischer, Adam Richards and Dave Bullis
\# Index Groupings
@@ -80,7 +81,7 @@ Using it, you can
\u000
-\b Automatically generated Spiral \e{transition curves} (easements) whenever the track radius changes.
+\b Automatically generated Cornu \e{transition curves} (easements) whenever the track radius changes.
\u000
@@ -88,6 +89,10 @@ 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.
+
+\u000
+
\b Print the design in a scale of your choice. When printed in 1:1 scale the printout can be used as a template for laying the track to build your dream layout.
\u000
@@ -105,31 +110,47 @@ Be sure to visit the project web page for latest news and updates: \W{http://www
\f{Easy to use}
-As much as possible, \e{XTrackCAD} is designed to operate the same as pencil and paper: create tracks by simply dragging the mouse, place turnouts anywhere on existing tracks, use circles for initial design and create stall tracks by drawing from the turntable.
+ \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 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.
+
+As you zoom in, the two rails are drawn and then ties are added.
+
+\f{Free}
-You don't have to be an expert CAD user to make the most of \e{XTrackCAD}. You don't specify line lengths or angles, just draw.
+Thanks to the generosity of Dave Bullis, who wrote the progam, and the active help of open-source volunteers, XTrackCAD is free to own and use. You can even take up the cudgels and help!
-\e{XTrackCAD} deals with tracks as tracks, not line segments. Tracks are connected to each other and can be drawn showing endpoints of turnouts and other components. As you zoom in, both rails are drawn.
+\f{Available Help}
-On-line demonstrations show the actual operation of many of the program's features. Extensive help is available for all commands and operations.
+On-line demonstrations show the actual operation of many of the program's features. Extensive help is available for all commands and operations. There are communities of users and developers who can answer quaestions.
\f{Packed with features}
-\e{XTrackCAD} is designed from the ground up to be a complete tool for 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.
\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. But be careful you don't crash!
+\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.
+\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.
+\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
@@ -137,25 +158,32 @@ On-line demonstrations show the actual operation of many of the program's featur
\u000
-\dd The Parallel command easily creates new straight or curved tracks, laying out yards and sidings in a few easy steps.
+\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
+
+\dd The Parallel command easily creates new straight or curved tracks, laying out yards and sidings in a few easy steps. Accurate platforms can be created with the Parallel Lines command followed by the Join Lines command.
\u000
-\dd The Join command links any two tracks (straight, curved, Turnouts or Turntables) with accurate aligned connecting track segments. 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 to 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
+
\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 drag 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
@@ -165,11 +193,15 @@ On-line demonstrations show the actual operation of many of the program's featur
\dt \e{Layers}
-\dd Layers are an important feature for designing 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.
\u000
-\dd \e{XTrackCAD} allows up to 99 layers and the first 20 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 Modular Layout assembly is supported with Modular Layers which ensure thier contents are moved as a set.
\u000
@@ -179,11 +211,11 @@ On-line demonstrations show the actual operation of many of the program's featur
\dt \e{Elevations and Profile}
-\dd Elevations are one of the most powerful features of \e{XTrackCAD}.
+\dd Elevations are one of the most powerful features of \e{XTrackCAD} they are dynamically recalulated as the layout changes.
\u000
-\dd Traditional layout designs (such as published in magazines) show elevations at selected spots on the layout. They may also show grades between elevations.
+\dd Traditional layout designs (such as published in magazines) show elevations at selected spots on the layout. They may also show grades between elevations. These can be input into XtrkCAD.
\u000
@@ -195,7 +227,7 @@ On-line demonstrations show the actual operation of many of the program's featur
\u000
-\dt \e{Easements (Spiral Transition Curves)}
+\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!
@@ -207,7 +239,7 @@ On-line demonstrations show the actual operation of many of the program's featur
\dt \e{Flexible and Powerful Printing}
-\dd Printing is an important part of a layout design program, and \e{XTrackCAD} has a flexible Print command to get your design onto the layout.
+\dd Printing is an important part of a layout design program, and \e{XTrackCAD} has a flexible Print command to get your design onto the layout.
\u000
@@ -257,7 +289,7 @@ On-line demonstrations show the actual operation of many of the program's featur
\u000
-\dd The \e{XTrackCAD} Draw command is used to draw lines (straight, curved and circles) and shapes (filled boxes, circles and polygons). These can be different colors and lines can have different widths. 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
@@ -269,11 +301,11 @@ On-line demonstrations show the actual operation of many of the program's featur
\u000
-\dd Text can be drawn on the layout too.
+\dd Text can be added to the layout.
\u000
-\dd Notes can be attached to particular spots on the layout. When selected they can display special information about that part of the layout, such as prototype features, construction details or operation notes.
+\dd Notes can be attached to particular spots on the layout. When selected they can display special information about that part of the layout, such as prototype features, construction details or operation notes. This includes URL links to files on the Internet.
\u000
@@ -330,7 +362,7 @@ Refer to \K{keyFeatures} and \K{addFeatures} for a listing of \e{XTrackCAD} feat
\u000
-\b Draw lines, arcs and filled shapes (for showing river edges etc.)
+\b Draw lines, arcs, polylines and polygons and filled polygons or circular shapes (for showing river edges etc.)
\u000
@@ -386,11 +418,11 @@ Refer to \K{keyFeatures} and \K{addFeatures} for a listing of \e{XTrackCAD} feat
\u000
-\b Panning via a map window
+\b Panning and zooming via a map window and also in Pan/Zoom Mode
\u000
-\b Price lists
+\b Price lists can be entered to allow the layout to be priced
\u000
@@ -439,7 +471,11 @@ Refer to \K{keyFeatures} and \K{addFeatures} for a listing of \e{XTrackCAD} feat
\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
+
+\b Sections of track can be tagged as bridge tracks which draws a bridge parapet on each side.
\u000
@@ -485,8 +521,9 @@ Refer to \K{keyFeatures} and \K{addFeatures} for a listing of \e{XTrackCAD} feat
\b You can rescale and flip objects, trim turnouts and create block gaps.
-\rule
+\u000
+\rule
\H{aboutmanual} About This Manual
@@ -525,7 +562,7 @@ Throughout this manual the following typographic conventions are used to make fi
\H{installSoftware} Installation
-\e{XTrackCAD} is designed to operate under Linux or MS Windows. Information within this section of the manual pertains to installation of the application in either of these environments.
+\e{XTrackCAD} is designed to operate under Linux, Apple MacOS or Microsoft Windows. Information within this section of the manual pertains to installation of the application in either of these environments.
\rule
@@ -553,6 +590,27 @@ Throughout this manual the following typographic conventions are used to make fi
\rule
+\S{OSXInstall} \i{OSX Installation} \i{Mac Installation}
+
+\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.
+
+\lcont{\u000}
+
+\n To run on Apple MacOS, the \e{XQuartz} package must first have been installed - see \W{http://www.xquartz.org}{http://www.xquartz.org}. XQuartz will need to be upgraded after each OS version upgrade.
+
+\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.
+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.
+
+\n On Mac OS Catalina, the program will need to be started by right-clicking it and selecting \f{Open}.
+
+\rule
+
\S{LinuxInstall} \i{Linux Installation}
\e{XTrackCAD} for LINUX is shipped as a self-extracting archive (executable).
@@ -576,7 +634,9 @@ If you install \e{XTrackCAD} into another directory, set the \c{XTRKCADLIB} envi
\H{startSoftware} \i{Start the Program}
-The \e{XTrackCAD} executable is named xtrkcad.exe on Windows and xtrkcad on Linux.
+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.
\f{Command Line}
@@ -584,6 +644,11 @@ On Windows:
\c xtrkcad [/c config] [/v] [/l logfile] [/d logcontrol] layoutfile
+On Mac OSX:
+
+\c cd /Applications
+\c ./open xtrkcad --args [-c config] [-v] [-l logfile] [-d logcontrol] layoutfile
+
On Linux:
\c xtrkcad [-c config] [-v] [-l logfile] [-d logcontrol] layoutfile
@@ -616,7 +681,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.
+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
@@ -625,22 +690,21 @@ 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.
-
-
-
\H{introQT} Quick Tour
\G{png.d/main.png}
When \e{XTrackCAD} starts, it displays the \f{Main} (\K{mainW}) and \f{Map} (\K{cmdMap}) windows. The \f{Map} window is used to change the origin of the \f{Main} window when the entire layout cannot be displayed at one time.
-The Menu bar across the top of the \f{Main} window contains standard Windows menus. Some of these are particularly useful to the new user:
+\G{png.d/maintagged.png}
+
+The Menu Bar across the top of the \f{Main} window contains standard Windows menus. Some of these are particularly useful to the new user:
\b The \f{File>Exit} menu exits \e{XTrackCAD}. You can also exit by selecting the System menu in the upper left corner of the Window.
\u000
-\b The \f{File>Open} menu opens existing layout files. When first installed, the default directory contains some example programs you can look at.
+\b The \f{File>Open} menu opens existing layout files and archives. When first installed, the default directory contains some example programs you can look at.
\u000
@@ -655,22 +719,42 @@ The Menu bar across the top of the \f{Main} window contains standard Windows men
\b The \f{Options>Preferences} menu specifies some less frequently changed items.
You can use this menu to choose Metric units (\K{cmdPref}).
+\u000
+
\rule
+The Tool Bar contains icons for each of the commands in the Menus. The icons shown can be customized using the \f{View->ToolBar} submenu.
-\H{performance} Performance Issues
+\b The main drawing Mode command is \f{Select} - which is shown with the red arrow icon. From this mode, selected objects can be \f{Modified} as well. A close second is the \f{Describe} mode which allows properties of Objects to be seen and Changed.
-This section lists some things that can improve the performance of \e{XTrackCAD}.
+\u000
-\b To speed up initialization, remove unused parameter files (See \f{Parameter Files} dialog - \K{cmdPrmfile}).
+\b A different mode is \f{Train} which allows trains to be simulated on the Layout.
\u000
-\b During moves and rotates, draw tracks \f{Simply} or as \f{Endpoints} (See \f{Command Options} dialog - \K{cmdCmdopt}). Also \f{Zoom In} (\K{viewM}) to reduce the number of tracks that are being displayed.
+Under the Tool Bar is the Hot Bar. This contains defined track and drawing objects taken from parameter files. To use a template you select it and then click on the Drawing Area.
+
+\rule
+
+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
+
+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.
+
+\rule
+
+\H{performance} Performance Issues
+
+This section lists some things that can improve the performance of \e{XTrackCAD}.
+
+
+\b On the \f{View} dialog (\K{cmdView}) turn off \f{Show Snap Grid} or \f{Change Grid...} to have fewer grid points.
\u000
-\b If you have to move a lot of track a large distance, create a temporary track at the destination and use the \f{Join} (\K{cmdJoin}) command to move the selected track to join with the temporary track. Then remove the temporary track.
+\b To speed up initialization, remove unused parameter files (See \f{Parameter Files} dialog - \K{cmdPrmfile}).
\u000
@@ -698,14 +782,20 @@ 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,
+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 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}
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.
+In MacOS Catalina, the program has no access to certain directories - the Documents and Download directories in particular.
+
Example layouts can be found in the \c{example} directory under the \e{XTrackCAD} install directory.
\rule
@@ -724,7 +814,7 @@ Example layouts can be found in the \c{example} directory under the \e{XTrackCAD
\u000
-\b \c{xtrkcad.exe} (MS-Windows) or \c{xtrkcad} (Linux) is the \e{XTrackCAD} program.
+\b \c{xtrkcad.exe} (MS-Windows) or \c{xtrkcad} (Linux or Mac OSX) is the \e{XTrackCAD} program.
\u000
@@ -758,15 +848,15 @@ The check-point frequency is set by the \e{Check Point} field found in the \f{Pr
\u000
-\b The \c{xtrkcad.ini} (on MS-Windows) or the \c{xtrkcad.rc} (on Linux) file contains various parameter settings from each use of \e{XTrackCAD}. Most changes you make (such as scale, room size, window position) are saved in this file for the next time you use \e{XTrackCAD}.
+\b The \c{xtrkcad.ini} (on MS-Windows) or the \c{xtrkcad.rc} (on Linux or Mac OSX) file contains various parameter settings from each use of \e{XTrackCAD}. Most changes you make (such as scale, room size, window position) are saved in this file for the next time you use \e{XTrackCAD}.
\rule
\H{uninstall} \i{Removing \e{XTrackCAD}}
-Remove \e{XTrackCAD} by deleting the \e{XTrackCAD Install} directory, deleting any \c{xtrkcad.*} files from the \e{Working} directory, and deleting any \e{*.xtc} and \e{*.xti} files.
+Remove \e{XTrackCAD} by deleting the \e{XTrackCAD Install} directory, or application (on Mac OSX), deleting any \c{xtrkcad.*} files from the \e{Working} directory, and deleting any \e{*.xtc} and \e{*.xti} files.
-On MS-Windows, you can also use the \f{Uninstall} icon in the \e{XTrackCAD} program group.
+On MS-Windows only, you can also use the \f{Uninstall} icon in the \e{XTrackCAD} program group.
\rule
@@ -810,7 +900,7 @@ If you encounter an unreported bug please submit detail regarding such to the \f
\f{If you don't understand an error message, ask for help.} Don't report an error message you don't understand as a bug. There are a lot of places you can ask for help in understanding what is going on before you can claim that an error message you do not understand is a bug. (Once you've understood the error message and have a good suggestion for a way to make the error message clearer, you might consider reporting it as a \W{https://sourceforge.net/p/xtrkcad-fork/feature-requests/}{\e{XTrackCAD} Feature Request}).
-\f{Be brief, but don't leave any important details out.} This is a fine line to walk. But there are some general guidelines:
+\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.
@@ -827,4 +917,8 @@ If you can recreate the problem the \f{Macro>Record} command can be used to reco
Suggestions for improvements are encouraged and welcome. Submit your suggestion to the \e{XTrackCAD} \f{Feature Tracker} located at the \W{https://sourceforge.net/p/xtrkcad-fork/feature-requests/}{\e{XTrackCAD} Fork Project Site}.
+\S{support} \i{User Support}
+
+The developers maintain a forum \W{https://xtrackcad.groups.io/g/main}{\e{XtrackCAD} User Forum} a Wiki at \W{http://www.xtrkcad.org/Wikka/HomePage}{\e{XTrackCAD} Wiki}
+
\rule
diff --git a/app/doc/managem.but b/app/doc/managem.but
index 9153b52..7996ef1 100644
--- a/app/doc/managem.but
+++ b/app/doc/managem.but
@@ -121,7 +121,7 @@ The \f{Import} and \f{Export} buttons read and write a \e{Comma-Separated-Value
\u000
-\dd \e{CarLength}, \e{CarWidth}, \e{CoupledLength} and \e{TruckCenter} - car dimensions in inches
+\dd \e{CarLength}, \e{CarWidth}, \e{CoupledLength}, \e{Truch Center Offset} and \e{TruckCenter} - car dimensions in inches
\u000
@@ -219,7 +219,7 @@ The middle section contains:
\u000
-\dd \f{Car Dimensions} which contain the major dimensions of the car and how the coupler is mounted on the car. The \f{Coupler Length} is measured from the edge of the car body to the pulling face of the coupler. It is equivalent to half the separation between two coupled cars.
+\dd \f{Car Dimensions} which contain the major dimensions of the car and how the coupler is mounted on the car. The \f{Coupler Length} is measured from the edge of the car body to the pulling face of the coupler. It is equivalent to half the separation between two coupled cars.
\lcont{
@@ -237,6 +237,13 @@ The middle section contains:
\dd \f{Coupled Length = Car Length + 2 * Coupler Length}
+\u000
+
+\dd The \e{Center Offset} moves the center of the two trucks from the center of the Car.
+This is a common feature of steam locomotives and means the envelope of the engine requires greater seperation between tracks on small radius curves.
+The minimum clearance needed can be seen by placing the car with the greatest distance from the center of the trucks to the corner on the inner radius and the car with the greatest distance between the trucks on the outer radius.
+See NMRA TN-7 Curved Track Centerline and Obstacle Clearance Calculation Methodology.
+
}
}
@@ -351,7 +358,7 @@ 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. 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}.
@@ -363,7 +370,7 @@ The drop down list at the top of the dialog selects the \f{Layer} you are intere
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}.
-The \f{Color} button specifies the color of tracks if \f{Color Layers} (\K{cmdDisplay}) radio button on the \f{Display} dialog is checked.
+The \f{Color} button specifies the color of tracks if either of the two \f{Color Layers} (\K{cmdDisplay}) radio buttons on the \f{Display} dialog is checked and the \f{Use Color} button for this layer is checked.
The \f{Visible} check-box controls whether the \f{Layer} is drawn on the Main (\K{mainW}) window.
@@ -371,6 +378,8 @@ 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.
+
You cannot uncheck \f{Visible} or check \f{Frozen} for the \f{Current Layer}.
The \f{Count} field displays the number of objects in the selected Layer.
@@ -391,8 +400,8 @@ The current layer is selected by picking a value from the drop down layer list.
You can hide (or show if not visible) the different layers by pushing one of the \f{Layer Buttons} on the Tool-bar (if you have configured the tool-bar (\K{toolbarM}) to show the Layer buttons). If a layer is not visible then the corresponding layer button will be raised. The active or current layer cannot be hidden.
-The color of each layer button shows the color that will be used to draw tracks in that layer, if you select \f{Color Layers} (\K{cmdDisplay}) on the \f{Display} dialog.
-
+The color of each layer button shows the color that will be used to draw tracks or draw objects in that layer, if you have selected the \f{Color Layers} (\K{cmdDisplay}) on the \f{Display} dialog. The \f{Use Color} button allows this layer to opt in or out - which can be usefu if you want to color other layers but a layer contains pre-colored objects (like Structures or Scenery).
+
Any selected objects are unselected when the Layer is set to not visible. If a layer is not visible, you cannot select objects in the Layer. It is as if the objects do not exist until you show the layer again.
The \f{Move To Current Layer} command on Edit menu (\K{editM}) will move all selected (\K{cmdSelect}) tracks to the current Layer.
@@ -673,6 +682,8 @@ The \f{Cancel} button removes the \f{Turnout Designer} dialog.
\u000
+\b The new \i{Cornu Turnouts} allow you to build turnouts that have curved ends. The dialogs include radius information that can be set to zero for a straight end. The turnouts will be composed of simple curves and tracks and when extended the end radius will be used.
+
\b The Group (\K{cmdGroup}) command can be used to add cosmetic details to \f{Turnout} definitions.
\rule
@@ -681,7 +692,9 @@ The \f{Cancel} button removes the \f{Turnout Designer} dialog.
This command updates (or refreshes) selected turnouts, sectional tracks and structures on your layout with the current definitions from the loaded parameter files (\K{cmdPrmfile}). Each selected object that is found in a parameter file is updated with the current definition.
-If an object can not be found or if the new definition does not fit (same number of endpoints and all the endpoints have the same position and angle) then a dialog is displayed which contains suitable definitions that you can choose from. You can \f{Skip} the current object or \f{Cancel} to skip all the remaining objects.
+If an object can be found and if a new track definition fits in the same footprint, (i.e., has the same number of endpoints and all the endpoints have the same position and angle) then a dialog is displayed which contains suitable definitions that you can choose from. You can \f{Skip} the current object or \f{Cancel} to skip all the remaining objects.
+
+Otherwise the update fails and must be done manually using \f{Delete} and \f{Add}.
If an object has been updated then it is unselected, otherwise it will remain selected at the end of this command.
diff --git a/app/doc/navigation.but b/app/doc/navigation.but
index 47051f7..e0269f4 100644
--- a/app/doc/navigation.but
+++ b/app/doc/navigation.but
@@ -9,8 +9,7 @@
The Main Window includes a title bar along the top that describes the contents of the window, followed by a tool bar that contains user interface buttons. Most of the window's remaining area is used to display the layout. A footer border contains information including system messages.
-Most windows can be opened, closed, resized, minimized, and moved around the screen. The close, minimize, and zoom buttons are located on the right side of the title bar. Minimizing a window will close the contents of the window, but store a reference to it in the Task bar. Closing a window will make it disappear completely (so you may be asked to save your changes first). To move a window, click on the title bar and drag the window where you want it. To resize a window, either click the Zoom button
-
+Most windows can be opened, closed, resized, minimized, and moved around the screen. The close, minimize, and zoom buttons are located on the right side of the title bar. Minimizing a window will close the contents of the window, but store a reference to it in the Task bar. Closing a window will make it disappear completely (so you may be asked to save your changes first). To move a window, click on the title bar and drag the window where you want it.
\H{mainW} \i{Main Window Overview}
@@ -18,7 +17,7 @@ Most windows can be opened, closed, resized, minimized, and moved around the scr
\u000
-\dd \G{png.d/main1.png}
+\dd \G{png.d/maintagged.png}
\u000
@@ -87,6 +86,17 @@ Most windows can be opened, closed, resized, minimized, and moved around the scr
\u000
\dd Manipulate track and other objects
+The toolbar buttons size can be adjusted using a User Preference in the .ini or .rc file
+(on Windows or Mac/Linux) in the xtrkcad directory.
+If running Linux or Mac
+a line \c{"Preference.LargeIcons: 1.5"} can be added. The scale value can be from 1.0 to 2.0 only.
+The corresponding configuration Windows would be
+
+\c [Preference]
+\c LargeIcons=1.5
+
+\e{Note} The configuration file uses the language specific definitions for the decimal separator.
+Eg. in Germany, where the comma is used, the correct value would be\c{LargeIcons=1,5}.
\u000
@@ -110,7 +120,34 @@ Most windows can be opened, closed, resized, minimized, and moved around the scr
\u000
-\dd The \f{Main Canvas} is where all tracks and objects are drawn.
+\dd The \f{Main Canvas} is where all tracks and objects (and optional background image) are drawn.
+
+\u000
+
+\dd The \f{Background Image} is drawn on the main canvas if specified in the \K{cmdLayout} menu.
+
+\u000
+
+\dd The center of the \f{Main Canvas} can be moved (Panned) using the;
+
+\lcont{
+
+\b ARROW Keys
+
+\b Left-Click and drag in \K{cmdZoom}
+
+\b "@" key in \f{Select}, \f{Modify} and \f{Pan/Zoom}.
+
+\b Mouse Wheel - adding \e{Shift} key or the \e{Mouse Middle Button} will Pan the screen. adding \e{Ctrl} as well makes up Pan left and down Pan right.
+
+\b Horizontal Mouse Wheel - adding \e{Shift} or the \e{Mouse Middle Button} will Pan the screen left and Right (if available)
+
+\b Scroll Left and Right - if the scroll left and right guestures are mapped to the trackpad by the operating system, with \e{Shift} depressed the screen will Pan.
+
+}
+
+\dd The \f{Main Canvas} can be panned so that the area beyond the room boundaries is shown (the \f{grey} area). The \f{Constrain Drawing Area to Room Boundaries} option on the \f{Display} (\K{cmdDisplay}) dialog under the \f{Options} (\K{optionM}) menu forces the \f{Main Canvas} stop panning once the room boundary is reached.
+Holding the \e{Control} key while panning will invert the value of this setting.
\u000
@@ -124,12 +161,18 @@ Most windows can be opened, closed, resized, minimized, and moved around the scr
\b Mouse Wheel
-\b PAGE UP and PAGE DOWN keys.
+\b PAGE UP and PAGE DOWN keys
+
+\b \f{Pan/Zoom} \K{cmdPan} button on the \f{Tool-bar}
-\f{Note:} If The scale 1::1 is reached, "Macro Zoom" mode can be entered using CTRL+PageDown - with repeated presses a scale of 10::1 is possible.
+\f{Note:} If The scale 1:1 is reached, "Macro Zoom" mode can be entered using CTRL+PageDown - with repeated presses a scale of 10::1 is possible.
}
+\dd When \f{Zooming}, the Main Canvas will retain the center of the display if
+\f{Constrain Drawing Area to Room Boundaries} is not set.
+Otherwise, as much of the room as possible is displayed, and any \f{grey} area will be to the right and above the room.
+
\u000
\dd Tracks will be drawn with two lines and ties if you zoom in. When the drawing scale is 1:1 a dashed centerline is also drawn for each track.
@@ -140,6 +183,10 @@ Most windows can be opened, closed, resized, minimized, and moved around the scr
\u000
+\dd In many commands, the result that will result from clicking the mouse is shown by \e{anchors} which highlight the track object or feature in blue that will be affected as the mouse is dragged over the canvas and becomes close enough to select it.
+
+\u000
+
\dt \e{Map Window}
\dd \G{png.d/map.png}
@@ -241,6 +288,10 @@ Instead of using the menus or the buttons on the \f{Tool-bar} (\K{mainW}), most
\u000
+\dd The \c{F1} key opens the Help page for the currently selected command. \c{Shift+F1} opens the Contents Help Page.
+
+\u000
+
\dd The \c{PAGE UP} and \c{PAGE DOWN} keys will zoom out or zoom in.
\u000
@@ -640,7 +691,7 @@ Note Dialog
}
-\b Pop-up menu of Hot Bar contents - \e{Right-Click}
+\b Pop-up menu of Hot Bar categories - \e{Right-Click}
\u000
@@ -815,47 +866,75 @@ Note Dialog
\H{cmdAcclKeys} \i{Mouse Actions}
-\dt \e{XTrackCAD} uses the left and right mouse buttons when manipulating tracks and other objects on the layout. Their meaning depends on the particular command but in general:
+\e{XTrackCAD} uses the left and right mouse buttons when manipulating tracks and other objects on the layout. Their meaning depends on the particular command:
-\u00
+\e{Select Command}
-\dd \e{Left-Click} - selects an object or an endpoint.
+The \e{Select} command actions are affected by the mode selected in \f{Options->Command->Select}.
+Note - Objects in a Module Layer are selected and deselected as a group.
-\u00
+\dt \e{Left-Click}
+
+\dd Single Item Mode -> Selects one object at a time, deselects other objects.
+Add Item Mode -> Adds unselected objects, deselects if the object is already selected.
+If the click is on an area without objects and \f{SelectZero} is set, all objects are deselected.
-\dd \e{Left+Drag} - modifies an object, such as extending it.
+\dt \e{Shift-Left-Click}
-\u00
+\dd Selects all connected tracks from the one clicked up to the next selected item in each direction.
-\dd \e{Right-Click} - displays a pop-up menu of commands.
+\dt \e{Ctrl+Left-Click}
-\u00
+\dd Single Item Mode -> Adds an object to the selection, deselects if the object is already selected.
+Add Item Mode -> Selects just this item and deselects other objects.
+If the click is on an area without objects and \f{SelectZero} is set, all objects are deselected.
-\dd \e{Shift+Right-Click} - displays a pop-up menu of command options (for some commands).
+\dt \e{Double-Left-Click}
-\u00
+\dd Opens Modify for Cornu and Draw Objects other than Text, Activates Link and Document Notes, otherwise opens Describe.
-\dd \e{Rotate Wheel} - zooms drawing area in and out.
+\dt \e{Left+Drag}
-\u000
+\dd Single Item Mode -> Selects all objects in an rubber-banded area and deselects all others.
+Add Item Mode -> Adds items in the rubber-banded area.
-\u000
+\dt \e{Shift+Left-Drag}
-\dt When Moving and Rotating ( Placing Turnouts and Structures, Moving the Print and Snap Grids, ... ):
+\dd Moves selected objects if in a selected area, if off selected objects, like Left-Drag.
-\u00
+\dt \e{Ctrl+Left-Drag}
-\dd \e{(Left+Drag)} - moves the objects or grid.
+\dd Rotates selected objects if in a selected area, if off selected objects, like Left-Drag.
-\u00
+\dt \e{Right-Click}
-\dd \e{(Right+Drag)} - rotates the objects or grid about the pivot point, which is
-the point you started the drag operation.
+\dd Displays a pop-up menu of context commands (in Select, Move, Modify and Rotate commands). If some track is selected, the menu has operations to perform on it, if not, it will have a command context menu.
-Some commands use the \c{Shift} or \c{Ctrl} key to modify the meaning of button presses.
+\dt \e{Shift+Right-Click}
-\rule
+\dd Displays a pop-up menu of commands. Displays the other context menu than Right-Click.
+
+\dt \e{Right+Drag}
+
+\dd Deselects all objects in an rubber-banded area from the current set.
+
+\dt \e{Rotate Wheel}
+
+\dd Zooms drawing area in and out. Modern computers with Trackpads often map this guesture to two-finger drag.
+
+\e{When Moving and Rotating} ( Placing Turnouts and Structures, Moving the Print and Snap Grids, ... ):
+
+\dt \e{(Shift+Left+Drag)}
+\dd Moves the objects or grid.
+
+\dt \e{(Ctrl+Left+Drag)}
+
+\dd Rotates the objects or grid about the pivot point, which is the point you started the drag operation.
+
+Some other commands use the \c{Shift} or \c{Ctrl} key to modify the meaning of button presses.
+
+\rule
\S{mouseBcmd} Context Sensitive Menus
@@ -916,7 +995,7 @@ The Shortcut key for each command is listed after the command name.
\u000
-\dt Elevation Command (\K{cmdElev}) - \e{Ctrl+Shift+E}
+\dt Elevation Command (\K{cmdElevation}) - \e{Ctrl+Shift+E}
\dd Choose endpoint - \e{Left-Click}
@@ -1072,25 +1151,12 @@ The Shortcut key for each command is listed after the command name.
}
-\dd Unselect all objects within the highlighted area - \e{Right+Drag}
-
-\dd Rotate selected objects - \e{Shift+Right+Drag}
-
-\lcont{
-
-\b in increments of 15\u00B0 - \e{Ctrl+Shift+Right+Drag}
-
-}
-
-\dd Select (or unselect) the object - \e{Left-Click}
-\dd Select all objects
+\dd Rotate selected objects - \e{Ctrl+Left-Drag}
\lcont{
-\b connected to object - \e{Shift+Left+Click}
-
-\b within the highlighted area - \e{Left+Drag}
+\b in increments of 15\u00B0 - \e{Ctrl+Shift+Left+Drag}
}
@@ -1176,4 +1242,4 @@ The Shortcut key for each command is listed after the command name.
\dd Suppress auto-adjustment positioning when placing Turnouts - \e{Shift+Left+Drag}
-\rule \ No newline at end of file
+\rule
diff --git a/app/doc/optionm.but b/app/doc/optionm.but
index 0c2adfb..8876d96 100644
--- a/app/doc/optionm.but
+++ b/app/doc/optionm.but
@@ -27,7 +27,7 @@ The \f{Options Menu} shows commands to change configuration options.
\u000
-\dd \f{Fonts} - Displays the font selection (\K{fontSelW}) dialog which selects the font used by the text (\K{cmdText}) command. This command is only available on UNIX based systems.
+\dd \f{Fonts} - Displays the font selection (\K{fontSelW}) dialog which selects the font used by the text (\K{cmdText}) command. This command is only available on UNIX based systems.
\u000
@@ -101,15 +101,19 @@ The \f{Command Option} dialog is invoked from the Options (\K{optionM}) menu
The \f{Command Option} dialog contains items which control the behavior of some commands.
-\dd \f{Draw Moving Tracks} - how to draw tracks during move and rotate operations. See \K{cmdSelect} and \K{cmdMove} for additional detail.
+\dd \f{Default Command} - selects the \f{Properties} (\K{cmdDescribe}) or \f{Select} (\K{cmdSelect}) as the default command which is invoked when any other command (if not \f{Sticky} (\K{cmdSticky})) is canceled or completed.
\u000
-\dd \f{Default Command} - selects the \f{Properties} (\K{cmdDescribe}) or \f{Select} (\K{cmdSelect}) as the default command which is invoked when any other command (if not \f{Sticky} (\K{cmdSticky})) is canceled or completed.
+\dd \e{Right-Click} - will either display a pop-up menu of available commands or command-specific options depending on whether the \e{Shift} key is being held down or not. This option allows you to choose which operation occurs.
\u000
-\dd \e{Right-Click} - will either display a pop-up menu of available commands or command-specific options depending on whether the \e{Shift} key is being held down or not. This option allows you to choose which operation occurs.
+\dd \e{Select-Mode} - will either (a) only select the current item unless Ctrl is added or (b) will add the current item to the selection unless Ctrl is added in which case it will only select this item.
+
+\u000
+
+\dd \e{Select-Zero} - if selected will perform \f{Deselect All} if the selection is not on an object.
\rule
@@ -130,7 +134,18 @@ The \f{Display} dialog contains items which control the display of objects on th
\u000
-\dd \f{Color Layers} - when set, tracks and/or non-tracks (lines, table edges and structures) are drawn with color of the layer (\K{cmdLayer}) they belong to.
+\dd \f{Color Tracks} - when set to layers, tracks are drawn with color of the layer (\K{cmdLayer}) they belong to and not the normal track color.
+This can be disabled in the Layer dialog for each Layer by unchecking the \f{Use Color} checkbox.
+
+\u000
+
+\dd \f{Color Draws} - when set to layers, non-tracks (lines, table edges and structures) are drawn with color of the layer (\K{cmdLayer}) they belong to rather than based on thier own object setting.
+This can be disabled in the Layer dialog for each Layer by unchecking the \f{Use Color} checkbox.
+
+\u000
+
+\dd \f{Constrain Drawing Area to Room Boundaries} - when Zooming and moving the Main Canvas (\K{mainW}) may show areas beyond the boundaries of the room.
+Setting this option constrains the Main Canvas to minimize these areas (the \f{grey} area).
\u000
@@ -142,7 +157,7 @@ The \f{Display} dialog contains items which control the display of objects on th
\u000
-\dd \f{Draw Ties} - how to draw ties under the rails when the drawing Scale is smaller than half of the \f{Two Rail Scale}.
+\dd \f{Draw Ties} - how to draw ties under the rails when the drawing Scale is smaller than half of the \f{Two Rail Scale}. Note that \K{cmdTies} can be used to hide ties for selected tracks.
\u000
@@ -259,7 +274,7 @@ To draw an cornu easement see \k{joinCornu}, to Modify it afterwards see \k{chgC
\S2{EasementsTraditional} \i{Easements with Fixed Sharpness}
-The values \f{R}, \f{X} and \f{L} are read-only. They are set using the radio buttons or the \f{Value} field which can be set to 0 (No Easment) or between 0.21 (sharpest Easement) 100 (broadest Easment).
+The values \f{R}, \f{X} and \f{L} are read-only. They are set using the radio buttons or the \f{Value} field which can be set to 0 (No Easment) or between 0.21 (sharpest Easement) 100 (broadest Easment).
These values indicate the worst case of joining a straight track with a curve of radius \f{R}. The two tracks are separated by the offset \f{X} while the easement curve extends for \f{L/2} inches or centimeters to each side of the endpoints.
@@ -290,7 +305,7 @@ The following diagrams illustrates the \f{R}, \f{X} and \f{L} values and the res
\G{png.d/easeex2.png}
-If curves with a radius larger than \f{R} or two curves (that bend in the same direction) are being connecting then the easement curve will be shorter and the offset smaller. If the computed offset is small then no easement is generated.
+If curves with a radius larger than \f{R} or two curves (that bend in the same direction) are being connecting then the easement curve will be shorter and the offset smaller. If the computed offset is small then no easement is generated.
A curved track that bends in one direction and then bends in the opposite direction is an \e{S-curve}. This will generate the worst case easement which is two easement curves placed end to end.
@@ -349,8 +364,32 @@ The \f{Layout Options} dialog, displayed by the Options (\K{optionM}) or the Fil
\dd \f{Minimum Track Radius} - Specifies minimum track radius (in inches or centimeters). Curved tracks with a smaller radius are considered exceptional and drawn in the exception (\K{cmdRgbcolor}) color.
-\rule
+\u000
+
+\dd \f{Background File Name} - The last 40 characters of the full file pathname for the image used for a temporary background behind all the drawn objects. It is set using the \f{Browse} and reset with the \f{Clear} buttons.
+It is also cleared along with all the other background values after a \f{Open} or \f{New} command.
+The file is initally specified to be in the local file system. In order to send it along with the layout, use \f{Save As} command and specify the \i{Archive} Archive format (*.xtce).
+This will create a single zipped package file containing the layout and the image file which can be sent and will open on a different system.
+If this has been done, after \f{Open} of the archive, the image file path will point into the extracted archive file directory.
+It can be changed to a new local file and the next \f{Save} will rebuild the package using the new image file instead of the old one.
+
+\u000
+\dd \f{Background Pos X, Y} - The offset of the bottom left corner of the background image from the origin (in inches or centimeters) after rotation.
+
+\u000
+
+\dd \f{Background Size} - The model size (in inches or cm) to scale the base of the background image to (measured from bottom left to bottom right as displayed after any rotation has been applied). Note - A value of 0.0 means that no scaling is applied and the image is shown at its current size in pixels regardless of scale or zoom.
+
+\u000
+
+\dd \f{Background Screen} - The amount of screening (from 0 to 100%) to apply to the background image. Screening allows objects drawn over the image to be seen more clearly. 0 means no screening, while 100% means noting will be shown.
+
+\u000
+
+\dd \f{Background Angle} - The rotation angle to apply to the background image (in degrees) about its center before it is moved so that its bottom left corner is offset by the \f{Background Pos} setting.
+
+\rule
\S{cmdPref} Preferences Dialog
@@ -364,11 +403,19 @@ This dialog controls some parameters which likely will not be changed frequently
\u000
+\dd \f{AutoSave} \i{AutoSave} - specifies the number of Check Points taken before an AutoSave. The same number of checkpoints are retained in a circular archive set in the (\K{workDir}) named for the layout file. Setting this value to 0 disables AutoSave.
+
+\u000
+
\dd \f{Balloon Help} - disables the display of \f{Balloon Help} (\K{windowTerms}) which usually is shown when the cursor is placed over a control.
\u000
-\dd \f{Check Point} - specifies the Check Point frequency; the number of modifications made to the layout since the last save. The layout is automatically saved to the Check Point file (\K{workDir}) when the Check Point frequency is reached. Setting this value to 0 disables use of the Checkpoint file.
+\dd \f{Show FlexTrack} - disables the display or \f{FlexTrack} (\K{generalTerms}) which is shown on the left of the Toolbar.
+
+\u000
+
+\dd \f{Check Point} \i{AutoSave} - specifies the Check Point frequency; the number of modifications made to the layout since the last save. The layout is automatically saved to the Check Point file (\K{workDir}) when the Check Point frequency is reached. Setting this value to 0 disables use of the Checkpoint file \e{and AutoSave}. Upon restart, if the program was not saved normally, the user will be prompted to see if they want to resume at the last checkpoint.
\u000
diff --git a/app/doc/png.d/bcornu.png b/app/doc/png.d/bcornu.png
new file mode 100644
index 0000000..6844a84
--- /dev/null
+++ b/app/doc/png.d/bcornu.png
Binary files differ
diff --git a/app/doc/png.d/bfile.png b/app/doc/png.d/bfile.png
new file mode 100644
index 0000000..895f376
--- /dev/null
+++ b/app/doc/png.d/bfile.png
Binary files differ
diff --git a/app/doc/png.d/bjoin.png b/app/doc/png.d/bjoin.png
index 57e0d36..673793e 100644
--- a/app/doc/png.d/bjoin.png
+++ b/app/doc/png.d/bjoin.png
Binary files differ
diff --git a/app/doc/png.d/bjoinline.png b/app/doc/png.d/bjoinline.png
new file mode 100644
index 0000000..0d88a58
--- /dev/null
+++ b/app/doc/png.d/bjoinline.png
Binary files differ
diff --git a/app/doc/png.d/blayer.png b/app/doc/png.d/blayer.png
index 1712726..8b2fe72 100644
--- a/app/doc/png.d/blayer.png
+++ b/app/doc/png.d/blayer.png
Binary files differ
diff --git a/app/doc/png.d/blink.png b/app/doc/png.d/blink.png
new file mode 100644
index 0000000..4dfbbe7
--- /dev/null
+++ b/app/doc/png.d/blink.png
Binary files differ
diff --git a/app/doc/png.d/bnote.png b/app/doc/png.d/bnote.png
index d48173b..da70589 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/bparalle.png b/app/doc/png.d/bparalle.png
deleted file mode 100644
index 5634f3f..0000000
--- a/app/doc/png.d/bparalle.png
+++ /dev/null
Binary files differ
diff --git a/app/doc/png.d/bparallel.png b/app/doc/png.d/bparallel.png
new file mode 100644
index 0000000..5f92b6d
--- /dev/null
+++ b/app/doc/png.d/bparallel.png
Binary files differ
diff --git a/app/doc/png.d/bparalleline.png b/app/doc/png.d/bparalleline.png
new file mode 100644
index 0000000..43a6223
--- /dev/null
+++ b/app/doc/png.d/bparalleline.png
Binary files differ
diff --git a/app/doc/png.d/cmdopt.png b/app/doc/png.d/cmdopt.png
index 67503d2..b721bbc 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/convertfrom.png b/app/doc/png.d/convertfrom.png
new file mode 100644
index 0000000..9c16665
--- /dev/null
+++ b/app/doc/png.d/convertfrom.png
Binary files differ
diff --git a/app/doc/png.d/convertto.png b/app/doc/png.d/convertto.png
new file mode 100644
index 0000000..9c16665
--- /dev/null
+++ b/app/doc/png.d/convertto.png
Binary files differ
diff --git a/app/doc/png.d/cornuendanchor.png b/app/doc/png.d/cornuendanchor.png
new file mode 100644
index 0000000..38eaea6
--- /dev/null
+++ b/app/doc/png.d/cornuendanchor.png
Binary files differ
diff --git a/app/doc/png.d/dcprofile.png b/app/doc/png.d/dcprofile.png
index 359e64f..7d8d25a 100644
--- a/app/doc/png.d/dcprofile.png
+++ b/app/doc/png.d/dcprofile.png
Binary files differ
diff --git a/app/doc/png.d/displayopt.png b/app/doc/png.d/displayopt.png
index 3124e2b..be769a1 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/dprmfile.png b/app/doc/png.d/dprmfile.png
index 7e10970..7733a1c 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/greendot.png b/app/doc/png.d/greendot.png
new file mode 100644
index 0000000..c89c38b
--- /dev/null
+++ b/app/doc/png.d/greendot.png
Binary files differ
diff --git a/app/doc/png.d/greenstar.png b/app/doc/png.d/greenstar.png
new file mode 100644
index 0000000..e5f0f10
--- /dev/null
+++ b/app/doc/png.d/greenstar.png
Binary files differ
diff --git a/app/doc/png.d/greydot.png b/app/doc/png.d/greydot.png
new file mode 100644
index 0000000..f57745c
--- /dev/null
+++ b/app/doc/png.d/greydot.png
Binary files differ
diff --git a/app/doc/png.d/greystar.png b/app/doc/png.d/greystar.png
new file mode 100644
index 0000000..7398038
--- /dev/null
+++ b/app/doc/png.d/greystar.png
Binary files differ
diff --git a/app/doc/png.d/iconfile.png b/app/doc/png.d/iconfile.png
new file mode 100644
index 0000000..d5ed09c
--- /dev/null
+++ b/app/doc/png.d/iconfile.png
Binary files differ
diff --git a/app/doc/png.d/iconlink.PNG b/app/doc/png.d/iconlink.PNG
new file mode 100644
index 0000000..0f189e2
--- /dev/null
+++ b/app/doc/png.d/iconlink.PNG
Binary files differ
diff --git a/app/doc/png.d/iconnote.png b/app/doc/png.d/iconnote.png
index b4d3a7f..d5772d2 100644
--- a/app/doc/png.d/iconnote.png
+++ b/app/doc/png.d/iconnote.png
Binary files differ
diff --git a/app/doc/png.d/layout.png b/app/doc/png.d/layout.png
index cbcc42b..d5607da 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 f689ebe..e8a664f 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/main.png b/app/doc/png.d/main.png
index fc70899..e40f0df 100644
--- a/app/doc/png.d/main.png
+++ b/app/doc/png.d/main.png
Binary files differ
diff --git a/app/doc/png.d/maintagged.png b/app/doc/png.d/maintagged.png
new file mode 100644
index 0000000..814757a
--- /dev/null
+++ b/app/doc/png.d/maintagged.png
Binary files differ
diff --git a/app/doc/png.d/mmovedraw.png b/app/doc/png.d/mmovedraw.png
deleted file mode 100644
index 579735d..0000000
--- a/app/doc/png.d/mmovedraw.png
+++ /dev/null
Binary files differ
diff --git a/app/doc/png.d/mnote.png b/app/doc/png.d/mnote.png
new file mode 100644
index 0000000..6aa4acf
--- /dev/null
+++ b/app/doc/png.d/mnote.png
Binary files differ
diff --git a/app/doc/png.d/notefile.png b/app/doc/png.d/notefile.png
new file mode 100644
index 0000000..699efad
--- /dev/null
+++ b/app/doc/png.d/notefile.png
Binary files differ
diff --git a/app/doc/png.d/notelink.png b/app/doc/png.d/notelink.png
new file mode 100644
index 0000000..a3863fa
--- /dev/null
+++ b/app/doc/png.d/notelink.png
Binary files differ
diff --git a/app/doc/png.d/notetext.png b/app/doc/png.d/notetext.png
new file mode 100644
index 0000000..af5b353
--- /dev/null
+++ b/app/doc/png.d/notetext.png
Binary files differ
diff --git a/app/doc/png.d/paramsearch.png b/app/doc/png.d/paramsearch.png
new file mode 100644
index 0000000..ec6b2b8
--- /dev/null
+++ b/app/doc/png.d/paramsearch.png
Binary files differ
diff --git a/app/doc/png.d/print.png b/app/doc/png.d/print.png
index 368e272..e8a6863 100644
--- a/app/doc/png.d/print.png
+++ b/app/doc/png.d/print.png
Binary files differ
diff --git a/app/doc/png.d/printmargin.png b/app/doc/png.d/printmargin.png
new file mode 100644
index 0000000..5fee30d
--- /dev/null
+++ b/app/doc/png.d/printmargin.png
Binary files differ
diff --git a/app/doc/png.d/reddot.png b/app/doc/png.d/reddot.png
new file mode 100644
index 0000000..2de371c
--- /dev/null
+++ b/app/doc/png.d/reddot.png
Binary files differ
diff --git a/app/doc/png.d/redstar.png b/app/doc/png.d/redstar.png
new file mode 100644
index 0000000..f4309e7
--- /dev/null
+++ b/app/doc/png.d/redstar.png
Binary files differ
diff --git a/app/doc/png.d/satusbarparallel.png b/app/doc/png.d/satusbarparallel.png
deleted file mode 100644
index 50bd6ab..0000000
--- a/app/doc/png.d/satusbarparallel.png
+++ /dev/null
Binary files differ
diff --git a/app/doc/png.d/statusbarparallel.png b/app/doc/png.d/statusbarparallel.png
new file mode 100644
index 0000000..0ab73a5
--- /dev/null
+++ b/app/doc/png.d/statusbarparallel.png
Binary files differ
diff --git a/app/doc/png.d/yellowdot.png b/app/doc/png.d/yellowdot.png
new file mode 100644
index 0000000..107165b
--- /dev/null
+++ b/app/doc/png.d/yellowdot.png
Binary files differ
diff --git a/app/doc/png.d/yellowstar.png b/app/doc/png.d/yellowstar.png
new file mode 100644
index 0000000..8ee0574
--- /dev/null
+++ b/app/doc/png.d/yellowstar.png
Binary files differ
diff --git a/app/doc/statusbar.but b/app/doc/statusbar.but
index 6390722..67f0991 100644
--- a/app/doc/statusbar.but
+++ b/app/doc/statusbar.but
@@ -6,9 +6,9 @@
\H{cmdStatusbar} Status Bar
-The \e{Status Bar} contains:
+The \e{Status Bar} contains fields that can be modified depending on command:
-\dd The Line Width and Color for \e{Straight Line}, \e{Curved Line}, \e{Circle}, \e{Box} or \e{Poly Line} objects. The Line Width is specified in pixels for the current Drawing Scale. Zooming (\K{viewM}) in or out causes the lines to be drawn wider or narrower.
+\dd The Line Width and Color for \e{Straight Line}, \e{Curved Line}, \e{Circle}, \e{Polygon}, \e{Box} or \e{PolyLine} objects. The Line Width is specified in pixels for the current Drawing Scale. Zooming (\K{viewM}) in or out causes the lines to be drawn wider or narrower.
\u000
@@ -22,9 +22,16 @@ The \e{Status Bar} contains:
\dd The type, size and orientation of lumber used for \e{Bench-work} (regular rectangular, L-Girder or T-Girder).
+\u000
+
+\dd The seperation and radius factor for Parallel commands
+
+\u000
+
+\dd The diameter of a Turntable
\u000
-If the \e{Ctrl} key is held down while creating or modifying lines and shapes then the cursor will be attracted to other objects.
+\dd After and add or during a Modify of a Draw object or segment, length, radius and/or relative angles are shown in modifiable fields. These will change the dimensions of the last object when \f{Enter} or \f{Tab} is pressed or the cursor leaves the entry field.
\rule \ No newline at end of file
diff --git a/app/doc/upgrade.but b/app/doc/upgrade.but
index efd0908..7540c9c 100644
--- a/app/doc/upgrade.but
+++ b/app/doc/upgrade.but
@@ -10,6 +10,12 @@ This section contains helpful information regarding program changes and the effe
\rule
+\H{v5} Version 5.x
+
+Version 5.x.x of XTrackCAD introduced many enhancements an additions including Layout Control Objects, Cornu Tracks and Bezier Tracks and Lines. It is upward compatible from earlier versions but if the new objects are included in layouts, the files will not be readable by earlier versions.
+
+Users should take a backup of thier Layout files if they will want to use the previous level of code before opening them.
+
\H{cmdUpdatetitle} Version 2.x
\f{Updated Titles}
@@ -34,39 +40,6 @@ Not updating the titles prevents the customization of the way titles are present
\rule
-
-\H{v4.0.x_revisions} Version 4.0.x
-
-\f{Check-point Files}
-
-Version 4 of \e{XTrkCad} introduces a new way of handling check-point files. This will allow resuming your work after a system crash much easier than before.
-
-If you start \e{XTrkCad} V.4.0.x the first time after an upgrade from a earlier version, a pop-up with the question: "Program was not terminated properly. Do you want to resume working on the
-previous track plan?"
-
-Select "Ignore" only if you're sure that the work from your last session has been correctly saved. If uncertain or restarting after an earlier failure select "Resume".
-
-\u000
-
-\f{Help System}
-
-The built in help system has been converted to a much more flexible and widely used HTML format. With many new graphics and extensively rewritten text the help information is now up-to-date with recent development.
-
-\f{Layer Colour Settings}
-
-Your personal layer color settings are now stored in your preferences. This allows you to apply the same settings to other layouts you design.
-
-\f{Parameter Files Updated}
-
-Thanks to Ralph Boyd, Dwayne Ward, Casey Sterbenz and others, many new and updated parameter files were added to this release.
-
-\f{Wheel mouse}
-
-The wheel on a wheel mouse can now be used to zoom in and out on a layout design.
-
-\rule
-
-
\H{v4.0.3_revisions} Version 4.0.3
\f{Internationalization}
@@ -163,4 +136,37 @@ With release of this version of \e{XTrackCAD} there's been a subtle change in th
Why was the name changed? This release gives \e{XTrackCAD} developers an opportunity to included a much sought after feature; Internationalization (Through i18n). On the surface this doesn't sound that big however having the ability to internationalize or localize the product has great advantages for all users. Not only is there great potential for the application to become available to a larger audience, our hope it that the developer pool will expand which should result in more features being added to the application.
-\rule \ No newline at end of file
+\rule
+
+\H{v4.0.x_revisions} Version 4.0.x
+
+\f{Check-point Files}
+
+Version 4 of \e{XTrkCad} introduces a new way of handling check-point files. This will allow resuming your work after a system crash much easier than before.
+
+If you start \e{XTrkCad} V.4.0.x the first time after an upgrade from a earlier version, a pop-up with the question: "Program was not terminated properly. Do you want to resume working on the
+previous track plan?"
+
+Select "Ignore" only if you're sure that the work from your last session has been correctly saved. If uncertain or restarting after an earlier failure select "Resume".
+
+\u000
+
+\f{Help System}
+
+The built in help system has been converted to a much more flexible and widely used HTML format. With many new graphics and extensively rewritten text the help information is now up-to-date with recent development.
+
+\f{Layer Colour Settings}
+
+Your personal layer color settings are now stored in your preferences. This allows you to apply the same settings to other layouts you design.
+
+\f{Parameter Files Updated}
+
+Thanks to Ralph Boyd, Dwayne Ward, Casey Sterbenz and others, many new and updated parameter files were added to this release.
+
+\f{Wheel mouse}
+
+The wheel on a wheel mouse can now be used to zoom in and out on a layout design.
+
+\rule
+
+
diff --git a/app/doc/view_winm.but b/app/doc/view_winm.but
index 01f8a8c..cb115a9 100644
--- a/app/doc/view_winm.but
+++ b/app/doc/view_winm.but
@@ -30,6 +30,10 @@ 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.
+
+\u000
+
\dd \G{png.d/bmap.png} \f{ Show/Hide Map} - Toggles display of the \f{Map Window} on and off.
\u000
@@ -111,21 +115,29 @@ Command button groups displayed on the \f{Tool-bar} are selected using the Tool-
\G{png.d/bgzoom.png}
-The \f{Zoom In} and \f{Zoom Out} actions can also be accessed using buttons on the Tool Bar. The Mouse Wheel, PAGE DOWN and PAGE UP keys can also be used to zoom in and out.
+The \f{Zoom In} and \f{Zoom Out} actions can also be accessed using buttons on the Tool Bar or usig the \f{Pan/Zoom} Mode button. The Mouse Wheel, PAGE DOWN and PAGE UP keys can also be used to zoom in and out.
Holding down the Shift key while clicking the \f{Zoom In} or \f{Zoom Out} buttons sets the Drawing Scale to a \e{Programmed Zoom} value.
-\dd \e{\i{Programmed Zoom}}
+\dd \e{\i{Zoom/Pan Shortcut Keys}}
\lcont{
\u000
-\b The \e{Programmed Zoom} value for the \f{Zoom In} button is set to the current Drawing Scale by holding down the Shift and Ctrl keys while clicking on the \f{Zoom In} button.
+\b Keys '1'-'9' set the zoom to between 1::1 and 1::9.
+
+\u000
+
+\b Key '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
\u000
-\b The \e{Programmed Zoom} value for the \f{Zoom Out} button is set to the current Drawing Scale by holding down the Shift and Ctrl keys while clicking on the \f{Zoom Out} button.
+\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
+
+\b Key 'c' moves the center of the window to the cursor position
}
@@ -133,6 +145,11 @@ Normally a zoom in more of more than 1:1 is not possible, however if the Ctrl ke
Pressing the middle Zoom button on the Tool Bar pop-ups a list of Zoom factors that can be select from.
+\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).
+
\rule