*separate_holes_in_3d_body_new
Detects holes in 3D models, groups them by diameter and moves the surfaces defining the holes to separate components created for each hole diameter group.
Syntax
*separate_holes_in_3d_body_new entity_type input_mark_id output_mark_id flags string_array number_of_strings
Type
HyperMesh Tcl Modify Command
Description
This command takes as input a mark of surfaces or solids of a 3D body. It finds holes in the 3D body, collects the found connected holes in tubes, and groups the tubes by diameter either according to the user-specified diameter ranges or by auto-creating the groups from the user-specified tolerance. The command creates a component with an auto-generated name for each diameter group and moves the relevant surfaces of the tubes to the corresponding components. Blind-holes and through-holes are considered as different groups, so they are grouped separately. Optionally, 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 selected input entities. surfaces and solids are supported:
- input_mark_id
- The input surfaces or solids mark id of the input. Valid values are 1 and 2.
- output_mark_id
- The mark ID to mark the surfaces of the detected holes. Valid values are 0, 1 or 2. If set to 0 the detected holes’ surfaces are not marked.
- flags
- Sets a filter for the shape of cross sections of holes to be recognized. Supported
values are:
- 0 - Holes are not filtered by shape (arbitrarily shaped).
- 1 - Only round holes are detected.
- 2 - Only rounded slots are detected.
- 3 - Both round holes and rounded slots are detected.
- 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.
- number_of_strings
- Integer indicating the size (number of strings) in the string array created using *createstringarray.
Examples
*createmark surfaces 2 ""
*createmark surfaces 1 "all"
*createstringarray 6 "cross_sect_size_max = 50 diams_ratio_max = 3.0" "10 11" "12 15" "17 20" "21 30" "30 50"
*separate_holes_in_3d_body_new surfs 1 2 0 1 6
*createmark surfaces 2 ""
*createmark surfaces 1 "all"
*createstringarray 6 "cross_sect_size_max = 50 diams_ratio_max = 3.0" "10 11" "12 15 0" "17 20" "21 30" "30 50"
*separate_holes_in_3d_body_new surfs 1 2 0 1 6
Errors
if { [ catch {command_name...} ] } {
# Handle error
}
Version History
10.0