If no geometry has been selected, the user is asked to select objects to stretch. Otherwise, the stretch will be applied to currently selected objects.
After objects have been selected, specific vertices can be selected in boxes, polygons, and wires. The selection of vertices, which is available only in the menu version of the command, is accomplished by holding the Shift key, and clicking over a vertex, or dragging over one or more vertices. This operation can be repeated. Selecting a vertex a second time will deselect it. When a vertex is selected it is marked with a small highlighting box. When there are selected vertices, all selected vertices can be moved by clicking twice or dragging. The selected vertices will be translated according to the button-down location and the button up location, or the next button-down location if the pointer didn't move. While the translation is in progress, the new borders are ghost-drawn. While moving vertices, holding the Shift key will enable or disable constraining the translation angle to multiples of 45 degrees. If the Constrain angles to 45 degree multiples check box in the Editing Setup panel from the Edit Menu is checked, Shift will disable the constraint, otherwise the constraint will be enabled. The Shift key must be up when the button-down occurs which starts the translation operation, and can be pressed before the operation is completed to alter the constraint.
If a box is selected in the Stretch command, and one or more vertices of the box are selected by holding Shift, the vertices can be moved as for a polygon, and the box is converted to a polygon.
If no vertices are selected, the stretch operation applies to the nearest vertex of selected wires or polygons, or the nearest corner of a box. In this mode, boxes are stretched in a mode which preserves their rectangular shape. The user clicks on or drags to the new location, and the stretch is performed. If there are several objects selected, then the vertex closest to where the user points is taken as the reference vertex. This vertex is translated to the new location. In each of the other objects, the same transformation is applied to the vertex closest to the reference vertex. Thus, a group of wires, for example, can all be extended at once. During the operation, the Shift key and the Constrain angles to 45 degree multiples check box in the Editing Setup panel can be used to constrain the stretch angle as described above.
When the Stretch command is at the state where objects are selected, and the next button press would initiate the stretch operation or select a vertex, if either of the Backspace or Delete keys is pressed, the command will revert the state back to selecting objects. Then, other objects can be selected or selected objects deselected, and the command is ready to go again. This can be repeated, to build up the set of selections needed.
At any time, pressing the Deselect button to the left of the coordinate readout will revert the command state to the level where objects may be selected to stretch.
The undo and redo operations (the Tab and Shift-Tab keypreses and Undo/Redo in the Modify Menu) will cycle the command state forward and backward when the command is active. Thus, the last command operation, such as initiating the stretch by clicking, can be undone and restarted, or redone if necessary. If all command operations are undone, additional undo operations will undo previous commands, as when the undo operation is performed outside of a command. The redo operation will reverse the effect, however when any new modifying operation is started, the redo list is cleared. Thus, for example, if one undoes a box creation, then starts a stretch operation, the ``redo'' capability of the box creation will be lost.
The stretch operation works differently on Manhattan polygons than polygons containing nonorthogonal angles. For non-Manhattan polygons, a single vertex is moved, all others remain fixed. The stretch operation on Manhattan polygons is similar to the operation as applied to boxes, i.e., the corner and adjacent vertices are changed so as to keep the polygon Manhattan. A single vertex can be stretched arbitrarily either by selecting the vertex in the Edit Menu Stretch command, or by using the vertex editor in the polyg command.
If a wire end vertex is stretched to be coincident with the end vertex of another wire on the same layer with the same width, the wires will be merged, but only if the second wire is not selected.