# Flexing lines of nodes graphically
The flex command flexes a set of nodes into a specified shape. Typically the nodes are originally in a line, though this need not necessarily be the case. One of the set of nodes is identified as being the one to be shifted explicitly and the new position of this node is specified. The flex shape can be specified as linear, circular, elliptical or parabolic. When flexing linearly any node can be selected as the shift node; otherwise, the nodes at the ends of the line of nodes may not be shifted. End nodes are not flexed except when an end node is explicitly shifted in a linear flex. The flex operation moves the nodes to result in the specified shape, anchored by the end nodes and the explicitly shifted node.
Nodes can be flexed using the Sculpt > Flex line of nodes menu command. General commands > Flex line of nodes is also available on the right-click menu that is displayed when the cursor mode is set to Select nodes. Invoking Flex via the Sculpt > Flex line of nodes menu command assumes the middle node as the node to be explicitly shifted; Flex via the right-click menu requires that a node has been right-clicked and this node is assumed as the shift node. Either way the shift node can be re-selected from within the Flex dialog box. Since right-clicking on the shift node is the quicker method, that method is described in the following procedure.
- Set the cursor mode to Select nodes.
- Select the nodes to be flexed.
- Right-click on the node to be shifted explicitly.
- Click on the Flex selection command on the floating menu.
- Specify the flex in the Flex dialog box.
Flex is a high level operation designed to cope with a wide variety of circumstances. Understanding the internal processes will help determine the outcome of some, apparently less predictable, flex requests. The following notes describe some of the internal flex processes.
- On entry to the Flex dialog box the current set of nodes is organised, internally, into a line, referred to as the flex line. The flex line is established as follows.
- The nodes are ordered along a vector pointing from the most extreme node to the centre of the set of nodes.
- The end nodes are identified.
- Nodes are re-ordered along a vector stretching between the end nodes.
- This internal organisation of the nodes is the starting point of any flex operation. So, flexing a set of randomly dispersed nodes linearly by shifting an end node by nothing will result in that set of nodes being dispersed along the line between end nodes.
- When flexing linearly:
- Any of the set of nodes may be selected as the shift node.
- The nodes to be flexed are dispersed along the line(s) formed between the end nodes and the shifted node.
- Even spacing results in separate, even spacing on either side of the shifted node.
- Proportional spacing results in spacing that is proportional to the position of the nodes on the flex line.
- When flexing in circular shape:
- Only internal nodes (not end nodes) of the set of nodes may be selected as the shift node.
- If the circle radius is not specified the centre and radius of the circle are established from the three points on the circle: the two end nodes and the shifted node.
- If the circle radius is specified the centre of the circle is established from the two end nodes and the radius. Note that the shifted position of the shift node is used only to indicate the general direction of the flex. The circular arc is formed in the plane of the end nodes and the shifted position of the shift node, arcing towards the shifted position. The shift node is then flexed onto the circle, which is not necessarily the specified shift position.
- Spacing is then based upon angles around the centre.
- Even spacing results in separate, even angles on either side of the shift node.
- Proportional spacing results in angles that are proportional to the position of the nodes on the flex line.
- The methods for flexing in elliptical and parabolic shapes are similar, as follows.
- Only internal nodes (not end nodes) of the set of nodes may be selected as the shift node.
- An ellipse/parabola is established symmetrical about a line normal to the flex line, through the end nodes and the position of the shift node shifted by only the component normal to the flex line.
- The nodes to be flexed are dispersed along the flex line.
- Even spacing results in separate, even spacing on either side of the shift node along the flex line.
- Proportional spacing results in spacing undisturbed from the ordered position on the flex line.
- The nodes are then flexed normal to the flex line onto the parabola.
- If the shift node has been shifted by a component parallel to the flex line then the ellipse/parabola is sheared to result in the shift node arriving at its shifted position.
- Note that this method does not result in flexed nodes that are actually evenly or proportionally spaced.
- Use the Preview command in the Flex dialog box to confirm the consequence of a flex operation before committing to the operation.
Note: If the coincidence tolerance is too coarse and oincident nodes are collapsed during the operation, this will result in unusual modifications to the topology of the model.