User:Jcreer/New Arc Functions in SMS 13.2

From XMS Wiki
Jump to navigationJump to search

There have been repeated requests from users at training courses of SMS to add a few CAD like operations to SMS. The comments have been strong enough to imply that if we add these few operations the users will not need to use CAD at all (but I don’t believe that).

The operations are:

Specify Arc Length

The Specify Arc Length dialog

The Specify Arc Length tool can be used to create a new node/vertex a specified distance down the length of an arc. It is accessed by selecting an arc then right-clicking and selecting the Specify arc length command. In the Specify Arc Length dialog, there is the following option:

  • New Arc Length – Enter the desired arc length. The units for this length is either feet or meters based on projection.
    • If specified length is less than arc length, a new node is added to the arc at the specified distance along the arc.
    • If the distance specified is greater than the length of the arc, the end node of the arc is extended to make the arc length the specified distance.

Notes:

  • This can change the shape of any arc attached to the end of the selected arc.
  • This tool only operates on the arc in the defined arc direction.


Trim/Extend Arc

The Trim/Extend Arc dialog

SMS can either trim or extend an arc to match the length of another arc. This is done by selecting two arcs then right-clicking and selecting the Trim/Extend Arc command. This command appears if two and only two arcs are selected. The Trim/Extend Arc dialog has the following options:

  • Arc to be trimmed/extended – This option has a combo box of the two arc IDs. Select the arc that will be modified.
  • Arc to trim/extend to – This option has a combo box of the two arc IDs. Select the arc that will be used as the source arc.

The Trim/Extend Arc tool determines the number of intersections between the two arcs. It uses the following principles to do this:

  • The number of intersections included in the arc selection will indicate to the tool to use the "Extend" operation. This will do the following:
    • Find the end point of arc 1 that is closest to arc 2. This is the point that will be moved.
    • Extend the ending segment of the arc including the point to be moved to see if it intersects the trimming arc (arc 2). The tool will check to see if this operation can be done act as follows:
      • If yes the tool will move the point that is being moved to the intersection.
      • If no the tool will see if the last segment extended intersects either of the rays extending from the end of the trimming arc and do the following:
        • If intersects both then the tool will move the point that is being moved to the nearest intersection.
        • If intersects one the the tool will move the point that is being moved to the intersection.
        • If intersects none the the will will display an error saying it can’t extend the arc.
  • If 1 or more intersections are included in the selection, this indicates a "Trim" operation. The trim operation will do the following:
    • Insert a node into the first arc at the first intersection.
    • Delete the first portion of the newly split arc.

Create Horizontal or Vertical Segment

SMS allows creating horizontal or vertical segments when digitizing an arc. These are segments that are completely horizontal or completely vertical. This is done while digitizing an arc as follows:

  1. When creating the arc can hold down either the h or v key.
    • If h is held down, the next point on the arc will be at the same Y value as the previous point.
    • If the v is held down the next point on the arc will be at the same X value.

This process works similar to when creating the second direction of a grid frame.

Offset an Arc Graphically

See SMS:Map Module Tools#Select Feature Arc

SMS allows an arc to be offset graphically by doing the following:

  1. Selects an arc and hold down the mouse button (dragging). The button down (world location is saved)
  2. On button up, the button up world location is saved.
  3. The translation vector is computed as ButtonUpLoc - ButtonDownLoc.
  4. All nodes/vertices of the selected arc are translated by the translation vector.
Note: this also impacts the arcs attached to the end points of the arc being dragged.