*prepare_solid_holes_for_meshing

Detects holes in a 3D model and prepares them for meshing.

Syntax

*prepare_solid_holes_for_meshing entity_type input_mark_id output_mark_id string_array number_of_strings

Type

HyperMesh Tcl Modify

Description

This command takes as input a mark of surfaces or solids of a 3D body. It finds holes in the 3D body, and collects the found connected holes in "tubes”. It also trim and merges hole surfaces to make more surfaces suitable for the mapping mesh algorithm.

It sets element densities on surface edges. Moreover, independent holes can also be removed.

Optionally, this command groups holes by diameter, and creates a component with auto generated name for each holes group and moves the surfaces of the tubes to the corresponding components. Blind and through holes are considered as different separation groups, so they are grouped separately. the surfaces of the detected holes can be put to an output mark.

The command parameters have the following meaning

Inputs

entity_type
The type of input entities. Valid values are surfaces or solids.
input_mark_id
The ID of the input mark. Valid values are 1 and 2.
output_mark_id
The ID of the output mark to put the surfaces of the detected holes. Valid values are 0, 1 or 2. If set to 0, no surfaces are placed on the mark.
string_array
The ID of the string array that contains the fillet width and radius group information. The string array is created using the *createstringarray command. This should always be set to 1.
The first string in quotations should contain the following parameters as keywords followed by the parameters values. Keywords and the corresponding values can be separated by blanks and/or by "=":
cross_sect_size_max
Maximum length of the holes normal to the holes axes cross sections. This applies only to elongated holes (rounded slots or elliptical holes). If
cross_sect_size_max
0 - Then no limitation is applied.
diams_ratio_max
Maximum ratio of diameters of adjacent co-axial cylindrical hole sections when the sections are considered within the same tube.
elem_size
The element size used in meshing parameters.
min_elem_size
The minimum element size used in meshing parameters.
separate_holes
The values 0 and 1 are supported.
1 - Means holes will be distributed into different groups.
All other strings may contain 4 quotes values:
min_diam
(double)
max_diam
(double)
num_of_circumference_elems
(int) – used in seeding the circular edges of a hole.
elem_size_for_longitudinal_edges
(double) – used in seeding operation.
The intervals for min_diam and max_diam should not overlap between groups.
If num_of_circumference_elems is set to 0, the holes in the group are removed when possible. In this case, elem_size_for_longitudinal_edges is not required. If some holes can not be properly removed, then they are seeded normally with num_of_circumference_elems set to 3 and elem_size_for longitudinal_edges set to elem_size. Currently, only independent holes can be removed.
number_of_strings
Integer indicating the size (number of strings) in the string array created using *createstringarray.

Examples

To recognize and prepare holes with diameters in three different intervals 0 – 15, 15 – 20 and 20.0 – 40.0, and separate them according to different seeding design:

*createmark surfaces 1 "all"
*createstringarray 4 "cross_sect_size_max = 100 diams_ratio_max = 2.5 min_elem_size = 2.0 seperate_holes = 1"  
"0 15 6 6.0" "15 20 6 8.0" "20 40 8 10.0"   
*prepare_solid_holes_for_meshing surfaces 1 2 1 4

To remove holes with diameter in the range 0 – 5.0:

*createmark surfaces 1 "all"
*createstringarray 2 "cross_sect_size_max = 100 diams_ratio_max = 2.5 min_elem_size = 2.0 separate_holes = 1"  
"0 5 0"
*prepare_solid_holes_for_meshing surfaces 1 2 1 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

10.0