Aligns the order of nodes in 3D elements based on the nodes of attached 2D/3D
elements.
Syntax
*element3Dalign
mark_id_3D mark_id_2D propagate
Type
HyperMesh Tcl Modify Command
Description
Aligns the order of nodes in 3D elements based on the nodes of attached 2D elements. This
is done in such a way that the base face of the 3D element has the same nodes as the 2D
element. This can also use aligned hexa elements to align all "attached by face" hexas with
the same node order.
Inputs
- mark_id_3D
- The mark ID containing the hexa elements to align.
- mark_id_2D
- The mark ID containing the 2D/3D elements to use as reference. 3D elements can only be
used when propagate is set to 1 or 2.
- propagate
- 0 - Aligns only 3D elements directly attached by face to 2D elements (1 layer).
- 1 - Propagate alignment to all attached by face hex elements. Several assumptions
apply to this option:
- Mesh has a regular structure in terms of connectivity in the base face normal
direction. "Regular" means that it is a drag-like structure.
- Mesh structure may contain holes, and layers may be truncated. For example, you
can take a regular 16x9x5 grid of hexas and delete any hexas from the grid, keeping
the rest connected by faces.
- Not more than one 2D element for alignment should contact any 3D element. To
avoid conflicts, aligning 2D elements should not be in different alignment
directions.
- For regular hexa meshes just one 2D or 3D element is enough to set alignment for
the whole grid. If there are other non-hexa 3D elements in the mesh, the command
aligns only the non-hexa elements directly attached to 2D elements.
- 2 - Same as 1, but shift base nodes to make a "checkerboard".
Example
To align all hex8 elements by quad4 elements use the
command:
*createmark elems 1 "by config" hex8
*createmark elems 2 "by config" quad4
*element3Dalign 1 2 1
To align 1 layer of 3D elements by attached shell elements
use:
*createmark elems 1 displayed
*createmark elems 2 displayed
*element3Dalign 1 2 0
Errors
Incorrect usage results in a
Tcl error. To detect
errors, you can use the
catch
command:
if { [ catch {command_name...} ] } {
# Handle error
}