*morphmaplinestolines

Maps selected elements lying on an initial set of lines to an interpolated cross section represented by another set of lines optionally rotating trailing nodes and/or mapping about an axis (axis and plane) or using a number of linear mapping options.

Syntax

*morphmaplinestolines m_entity_type m_mark_id t_entity_type t_mark_id i_line_list f_line_list r_plane rotate blend axis sym con

Type

HyperMesh Tcl Modify Command

Description

This command maps selected elements lying on an initial set of lines to an interpolated cross section represented by another set of lines optionally rotating trailing nodes and/or mapping about an axis (axis and plane) or using a number of linear mapping options.

This command interpolates a number of *morphmapdifference() calls between line pairs. It is critical that the order of the initial lines match the order of the final lines in their respective lists for this command to function properly. For best results the lines should be planar (cross-sections) and should intersect at right angles.

If blend is set to 1, no fixed nodes have been selected, and no mapped nodes are a part of any domain, this command will automatically assign all non-mapped nodes as fixed nodes.

If blend is set to 2, the blending will only be applied to nodes which lie along the mesh between the fixed nodes and the mapped nodes.

The axis option allows you to apply section mapping for sections that apply about an axis (option 1). Section lines should lie in one or more radial planes or lie in planes normal to the axis of rotation.

The axis option is also used to select the type of projection for the nodes to the section lines. This projection determines how the section lines influence the nodes. Option 0 is preferred, which projects each node normal to the plane of each section line. Option 2 approximates the section line as a straight line and projects the nodes normal to the line, which is better for non-planar lines. Option 3 projects the nodes along a specified vector. Option 4 is like Option 2, but the projection line is forced to be in the specified plane, which is better for non-planar lines which you want to behave like planar lines. Option 5 does not project the nodes to the lines, but instead uses kriging to determine the morphing of the nodes.

Inputs

m_entity_type
Must be set to elems.
m_mark_id
The mark ID for mapped elements. Valid values are 1 and 2.
t_entity_type
Must be set to nodes.
t_mark_id
The mark ID for trailing nodes. Valid values are 1 and 2.
i_line_list
The mark ID for the line list marking the initial position of the mapped elements. Valid values are 1 and 2.
f_line_list
The mark ID for the line list marking the final position of the mapped elements. Valid values are 1 and 2.
r_plane
Plane used for axis of rotation and projection options 3 and 4. Valid values are 1 and 2.
rotate
0 - Linear point to point mapping between lines.
1 - Rotate nodes along with curvature difference between lines
blend
0 - Do not blend unselected nodes.
1 - Blend all nodes other than mapped and fixed nodes
2 - Blend only nodes on mesh between mapped and fixed nodes
axis
0 - Project nodes to line normal to the plane of the line (preferred)
1 - Apply mapping about axis defined by r_plane
2 - Project nodes to line normal to the axis of the line
3 - Project nodes to line along vector (r_plane normal)
4 - Project nodes to line in plane (r_plane)
5 - Use kriging to map nodes
sym
0 - Do not use symmetry (only option).
con
0 - Do not use constraints.
1 - Use constraints

Examples

To map a mesh given two sets of three lines each using rotation, no blending, and projecting nodes normal to the planes of the lines:

*createmark elems 1 "all"
*createmark nodes 1
*createlist lines 1 11 12 13
*createlist lines 2 21 22 23
*createplane 1,1.0 0.0 0.0 1.0 0.0 0.0
*morphmaplinestolines elems 1 nodes 1 1 2 1 1 0 0 0 1

To map a mesh given two sets of three lines each about an axis using no rotation, and blending through the mesh:

*createmark elems 1 "all"
*createmark nodes 1
*createlist lines 1 11 12 13
*createlist lines 2 21 22 23
*createplane 1,1.0 0.0 0.0 1.0 0.0 0.0
*morphmaplinestolines elems 1 nodes 1 1 2 1 1 2 1 0 1

Errors

Incorrect usage results in a Tcl error. To detect errors, you can use the catch command:
if { [ catch {command_name...} ] } {
   # Handle error
}

"Number of lines in each list must be equal." - occurs if the number of lines found in i_line_list is different than the number of lines in f_line_list.

"Not enough memory." - occurs if there is not enough memory to complete the command.