*find_holes_in_3d_body

Syntax

*find_holes_in_3d_body entity input_mark output_mark mode flags min_diam max_diam max_lensize

Type

HyperMesh Tcl Modify Command

Inputs

entity
The entity type in which the holes reside. Valid options are surfs and solids.
input_mark
A mark containing the desired surfaces or solids.
output_mark
A mark that will contain the surfaces recognized as sides of the holes in 3D body.
mode
Selects the search algorithm to use (see the comments section below for known limitations of each mode):
  • 1 - Recognize all circular holes passing through the entire solid. Recognizes filleted ends/rims. Ignores all other parameters.
  • 2 - Recognize elongated or circular holes that do not pass through the entire solid. Does not recognize holes with filleted ends/rims.
flags
Sets a filter for the shape of holes to be recognized:
  • 0 - No filtering (arbitrary shapes allowed).
  • 1 - Only round holes are found.
  • 2 - Only rounded slots are found.
  • 3 - Round holes and round slots are found.
min_diam
Smallest diameter of holes to be found.
  • 0 - No limit
max_diam
Largest diameter or width of the holes to be found.
  • 0 - HyperMesh uses no upper limit.
max_lensize
Maximum length for elongated holes/slots.
  • 0 - To allow any length (no limit).

Example

To take the surfaces from the input mark 1, find the holes using algorithm 1 (from the midsurface tool) and put the result into mark 2:
*find_holes_in_3d_body (surfaces 1 2 1 0 0 0 0)
To take the surfaces from the input mark 1, use algorithm 2 to find round holes ranging from 1-5mm, and up to 10mm deep, and put the result into mark 2:
*find_holes_in_3d_body (surfaces 1 2 2 1 1 5 10)

Mode=1 does not utilize the arguments for flags, min_diam, max_diam, and max_lensize. Thus, these are each treated as being zero.

Mode=2 utilizes all arguments, but only locates holes with sharp edges.

Both modes assume that the element normals around holes face outward. If this is not so, the results may be unpredictable and unsatisfactory.
Note: This command also does not clean the surfaces mark output after completion, so holes are added to the surfaces mark.