hm_getmeshvolumesinfo

Returns the number of volumes and lists containing the element IDs and volume indices for each input element.

Syntax

hm_getmeshvolumesinfo mark_id mode

Type

HyperMesh Tcl Query Command

Description

This command returns the number of volumes and multiple lists containing the element IDs and volume indices for each input element.

Inputs

mark_id
The mark of elements to find volumes for. Valid values are 1 and 2.
mode
0: internal voids considered as "voids" and do not make a new volume
1: internal voids considered as new volumes

The output from this command is in the following format:

{n} {elem_id1 volume_i1 volume_j1} {elem_id2 volume_i2 volume_j2} ...

{n} - The number of identified volumes.

{elem_id volume_i volume_j} - List containing the ID of the shell element and a pair of volumes of corresponding element sides. The first volume (i) corresponds to the volume on the shell element side with normal pointing out. A volume of 0 represents free space (no volume).

If 0 volumes are detected, only {n} is returned.

Example

To orient all shell elements so that the normal points toward the inside of the volume with the smallest ID (or inside if there is only one volume):

*createmark elements 1 displayed
set volumes_list [hm_getmeshvolumesinfo 1 0]
set num_volumes [lindex $volumes_list 0]
set volumes_list [lreplace $volumes_list 0 0]
set reverse_list""
foreach elem $volumes_list{
    set elemid [lindex $elem 0] 
    set vol1 [lindex $elem 1]
    set vol2 [lindex $elem 2]
    if {$vol1 > $vol2} {
        lappend reverse_list $elemid
    }
}
if { [llength $reverse_list ] } {
    *clearmark elements 2
    eval *createmark elements 2 $reverse_list
    eval *normalsreverse elements 2 1.e-10
    *clearmark elements 2
}

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

9.0