*surfacecreatedragnodesalongline
Create one or more surfaces by dragging a line which is created by a set of input nodes along another line.
Syntax
*surfacecreatedragnodesalongline sectionnodelist draglinelist method options comp_mode ?node_id? ?refplane?
Type
HyperMesh Tcl Modify Command
Description
This command creates surface(s) by dragging a section line along a line. The section line is constructed smoothly from the nodes in sectionnodelist. The direction of the drag line is determined by choosing its start point, S, as the closest end of the line to the section line vertices.
node_id and refplane arguments are optional and determines how the input lines are transformed before drag.
The reconfiguration of the geometries before the drag is done as follows. Let P be the point referred by the node_id, N be the normal and B be the base point of the refplane and T be the tangent vector of drag line at S. First, section lines are translated by the direction vector PB. If Bit3 of the options is not set, then the section lines are rotated by the rotation from vector N to vector T. Also, the drag line is translated by the direction vector SB. The drag is applied to along this line L. So, if P is selected on a section line, the new location of P is going to be at B. Moreover, if P is one of the vertex points of the section lines, one gets an exact geometric copy of the drag line at B, no matter which drag method is chosen. This is because, prior to drag, P is moved to B and B moves on drag line since it coincides with the start point of the drag line L.
If node_id is not given, it is chosen as the same point as S, the start of the drag line. This means, with the default value of node_id, the drag line is not transformed.
Inputs
- sectionnodelist
- The list containing the input nodes, forming the section line.
- lines_list
- The list ID containing the lines that will be used to from the drag line.
- method
- Parameter specifying the method of how the drag is performed. Valid options are:
- options
- Flags that indicate different modes for the drag. Bit values are used and the value is
calculated as (Bit0 + 4*Bit2 + 8*Bit3). Note that Bit1
is not used.
- Bit0
- 0 - Drag along the direction of the drag line.
- Bit2
- 0 - Use the ref_plane input.
- Bit3
- 0 - Use the whole ref_plane for transformation if it is given.
- comp_mode
- Parameter specifying how entities are organized into components:
- ?node_id? (optional)
- The ID of the node that is used as a reference point while determining how the surfaces are transformed prior to drag.
- ?ref_plane? (optional)
- When provided, its value must always be 1. It is used to determine the initial reference frame. This plane is created using the *createplane command.
Examples
Assume that you want to drag nodes with IDs 5, 6, 7 and 8 along the line that is formed by combining lines with IDs 37 and 25, using the fixed frame method. Assume that you want to drag along the direction opposite to the direction of line 37. Moreover, you want the resultant surfaces to be organized in the component of the lines. Then, options = 1, and comp_mode = 1. If you do not want to use any reference plane, use the following commands to create dragged surfaces. As a result one edge of the surfaces will be the input section lines, while the opposite edge will be an exact translated copy of that section line, and the side edged will be an exact translated copy of the drag-lines broken at possible vertex points.
*createlist nodes 1 5 6 7 8
*createlist lines 1 37 25
*surfacecreatedraglinealongline 1 1 0 1 1
In addition if you now want to use a reference node with ID 12 with some reference plane, then use:
*createlist nodes 1 5 6 7 8
*createlist lines 1 37 25
*createplane 1 1.0000 1.0000 1.0000 2678.0 -737.7 548.1
*surfacecreatedragnodesalongline 1 1 0 3 1 12 1
The surfaces created will be in such a way that the new location of the point on which node 12 located, will be at the base point (2678.0, -737.7, 548.1) of the reference plane.
Errors
if { [ catch {command_name...} ] } {
# Handle error
}
Version History
10.0