hm_getconnected3delems

Detects and categorizes connections involving 3D elements and provides a list of entities involved in the connections.

Syntax

hm_getconnected3delems entity_type mark_id string_array number_of_strings

Type

HyperMesh Tcl Query Command

Description

Detects and categorizes connections involving 3D elements (either 3D-3D or 3D-2D) and provides a list of entities (elements and nodes) involved in the connections. It identifies the connected area and the dimensions of the area are used to determine the connection category. It returns the lists of nodes defining the connections and the involved elements. Advanced options are available to categorize the connections (T-connected, L-connected, butt-connected, or overlap connected) and to specify the format of the return values.

Two input angle parameters (overlap_angle and L-angle) and one input width parameter (weld_length) are used to determine the type of connection.

All connections between different components involving 3D elements with an angle between normals to the adjacent faces of 3D elements (angle between the normal to a face and the normal to a shell element in case of 3D-2D connection) less than (180 - L_angle) are considered as butt-connection, and with an angle greater that overlap_angle as an overlap-connection.

All connections with an angle between (180 - L_angle) and (180 - overlapped angle) are considered as T- or L- connections based on the minimum weld length (a closed loop with an average width less than weld_length considered as a T-connection, otherwise, it is an L-connection).

For 3D-2D connections in the case of a 2D flange and a 3D web connection, the same rules are applied as in the case of a 3D-3D connection. If a 3D flange and a 2D web, it is always a T-connection (shell elements embedded in the 3D mesh are excluded from the output).

The return from this command are lists of 3D and 2D elements and/or nodes. Each list is a unique continuous connection, based on the specified options. A unique connection is defined as one that is of a single type and spans only a single boundary.

For example, if an element with uncategorized output is requested:

{all elems elems1_1 elems1_2 … elems1_N}

If an element with categorized output is requested:

{t elems elems1_1 elems1_2 … elems1_N} {o elems elems elems2_1 elems2_2 … elems2_N}

{l elems elems3_1 elems3_2 … elems1_N} {b elems elems elems2_1 elems2_2 … elems2_N}

If an element-ordered output list is requested:

{ type1 elems elems_1 elems1_2 … elems1_N type2 elems elems2_1 elems2_2 … elems2_N} { type3 elems elems3_1 elems3_2 … elems3_N } … and so on, where each sequence in brackets represents one connection and elements are ordered.

A similar output is provided for nodes.

Inputs

entity_type
The type of entity to query. Valid values are comps and elems. Only 3D elements are considered from the input.
mark_id
The ID of the mark containing the entities. Valid values are 1 and 2.
string_array
The ID of the string array that contains the additional input options. The string array is created using the *createstringarray command. This should always be set to 1.
number_of_strings
Integer indicating the size (number of strings) in the string array created using *createstringarray. Each argument must be space separated.
Each string is required and is introduced as follows:
"find: t o l b"
t
0 - Do not find and include T-connected elements.
1 - Find and include T-connected elements.
o
0 - Do not find and include overlap-connected elements.
1 - Find and include overlap-connected elements.
l
0 - Do not find and include L-connected elements.
1 - Find and include L-connected elements.
b
0 - Do not find and include butt-connected elements.
1 - Find and include butt-connected elements.
"features: overlap_angle l_angle weld_length"
overlap_angle
The maximum angle allowed between two components when categorizing as an overlap connection. The angle measured is the smallest angle between the two components.
The overlap_angle value should be between 0 and 90 degrees. The angle measured is the smallest angle between the two components.
l_angle
The maximum angle allowed between two components when categorizing as an L or T-connection. The value must be greater than 90 degrees and less than 180 degrees.
weld_length
The minimum weld length to establish if an edge should be considered as part of the connection (weld). It also determines the maximum allowable thickness for a T-connection.
"output: elems nodes"
elems
0 - Do not return element lists.
1 - Return a flat list of uncategorized elements.
2 - Return lists of categorized elements.
3 - Return lists of categorized and grouped elements.
nodes
0 - Do not return node lists.
1 - Return a flat list of uncategorized nodes.
2 - Return lists of categorized nodes.
3 - Return lists of categorized and grouped nodes.

Example

To find and output categorized and grouped t-connected, overlapped-connected, l-connected, and butt-connected nodes and elements, with an overlap angle of 5 degrees, an L angle of 170 degrees, and minimum weld length of 30.0 from the displayed components:
*createmark comps 1 displayed
*createstringarray 3 "find: 1 1 1 1" "features: 5.0 170.0 30.0" "output: 0 3"
set connections_list [hm_getconnected3delems comps 1 1 3]

Errors

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

Version History

2021.2