*findholessolid

Finds holes in solid meshes.

Syntax

*findholessolid hole_type min_height max_height min_cone_angle max_offset_angle min_planar_dim max_planar_dim max_offset_plane_dev max_geom_dev_percent max_smooth_edge_angle capped_holes_filter organize create_hole_edges flag param

Type

HyperMesh Tcl Modify

Description

Finds holes in solid meshes. The solid elements are bounded by two connected and closed sequences of feature edges subject to the specified parameters. Note that only holes with two such sequences are found. Each sequence is referred to as a "rim". The output is shell elements for bounding faces of holes, and plot elements for rim perimeters.

The process of finding holes requires the initialization of the process using *findholesinit. This initialization process requires the components or elements utilized by subsequent *findholesshell and *findholessolid commands. To utilize different input components or elements, the *findholesinit command needs to be rerun. After completing the find hole process, the command *findholesend should be called to clear the memory.

Inputs

hole_type
The type of hole to find. Valid values are:
  • 0 - any
  • 1 - circular
  • 2 - square
  • 3 - rectangular
Hole type definitions use two parameters: max_geom_dev_percent and max_smooth_edge_angle. Any other value is interpreted as 0 for hole_type 0. This criteria is applied to both rims (edge sequences).
Circular holes
The distance from any of its nodes to the calculated center must not differ from the calculated radius by more than max_geom_dev_percent. Also, no edge must make an angle greater than max_smooth_edge_angle with either adjoining edge.
Square holes
At every node except four, no edge must make an angle greater than max_smooth_edge_angle. At those four nodes, the measured angle is within max_geom_dev_percent of 90 degrees. And, all four sides must have lengths within max_geom_dev_percent of their average.
Rectangular holes
At every node except four, no edge must make an angle greater than max_smooth_edge_angle. At those four nodes, the measured angle is within max_geom_dev_percent of 90 degrees. Opposite pairs of sides must have lengths within max_geom_dev_percent of each other.
Additional functionality is provided by this parameter for a value of -1. This finds all (any) holes, and also creates plot elements at any element edges exceeding the feature angle. No faces are output for this option.
min_height
The distance between the center of the rims must exceed this value. If less than or equal to 0.0, this check is skipped.
max_height
The distance between the center of the rims cannot exceed this value. If less than or equal to 0.0, this check is skipped.
min_cone_angle
The inward facing normal direction of all faces comprising the wall of the hole must make this angle with respect to the primary axis. The primary axis is between the centers of the rims. If less than or equal to 0.0, this check is skipped. A value of 45.0 is recommended.
max_offset_angle
The normal associated with each rim must not differ by more than this angle from the primary axis. If less than or equal to 0.0, this check is skipped. A value of 45.0 is recommended.
min_planar_dim
Applied to each rim. The minimum planar dimension of the hole must exceed this value. If less than or equal to 0.0, this check is skipped.
max_planar_dim
Applied to each rim. The maximum planar dimension of the hole cannot exceed this value. If less than or equal to 0.0, this check is skipped.
max_offset_plane_dev
Applied to each rim. No node on the perimeter of a hole must exceed this distance from the mean plane. If less than or equal to 0.0, this check is skipped.
max_geom_dev_percent
See hole_type. Acceptable values are [0.0, 100.0], otherwise closer extreme is used. If less than or equal to 0.0, this check is skipped.
max_smooth_edge_angle
See hole_type. Acceptable values are [0.0, 90.0], otherwise closer extreme is used.
capped_holes_filter
A flag used to define how capped holes are handled. Valid values are:
  • 0 - Output both open holes and those capped on one side.
  • 1 - Output only open holes.
  • 2 - Output only holes capped on one side.
organize
A flag used to define how found edge plot elements are organized. Valid values are:
  • 0 - Place found edge plot elements in ^edge_holes_shell component.
  • 1 - Place found edge plot elements in current component.
create_hole_edges
A flag used to define if plot elements are created. Valid values are:
  • 0 - Plot elements are not created.
  • 1 - Plot elements are created.
flag
Reserved for future use. Set to 0.
param
Reserved for future use. Must be set to 0.

Example

To find all open holes in the displayed 3D elements:
*createmark elems 1 displayed
*findholesinit elems 1 2 30 0 0
*findholessolid 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
*findholesend

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

11.0