hm_collisioninit
Initializes the collision detection module.
Syntax
hm_collisioninit ?config? ?tolerance? ?allowable_depth? ?min_overlap?
Type
HyperMesh Tcl Query
Description
Initializes the collision detection module. This must precede any calls to hm_collisionentitycreate and hm_collisioncheck, and must be followed by a call to hm_collisionend.
Inputs
- config
- The configuration that defines the collision behavior. This value is obtained by running hm_collisiongetconfig. Default is 0.
- tolerance
- The tolerance to use for intersection checks (for hm_collisiongetconfig intersect_planar keyword) or penetration checks (for hm_collisiongetconfig penetrat_min_overlap keyword). If not specified, the default is 1.e-08.
- allowable_depth
- The allowable depth to use when finding and reporting interferences. If specified, config should be 0 and tolerance should be -1.0. If not specified, this is ignored.
- min_overlap
- For allowable_depth, in cases where collision entities overlap, there may be many intersections, and sorting out which ones are false or not is expensive. This option allows for calculating percentages by measuring the number of intersection segments against the half the number of nodes in each collision entity. If both percentages exceed the min_overlap value, we do not perform the allowable_depthanalysis and instead report all of the intersections as true.
Example
To find intersecting surfaces from IDs 1-10:
*createmark surfs 1 1-10
hm_collisioninit
hm_collisionentitycreate surfs 1 0 1 0 0 0 0 0 0
hm_collisioncheck 0 0 1 0 0 0 0
hm_collisionend
hm_getmark surfs 1
To find penetrating surfaces from IDs 1-10, using the thickness assigned to the surface components:
*createmark surfs 1 1-10
hm_collisioninit
hm_collisionentitycreate surfs 1 0 1 0 0 0 0 0 0
hm_collisioncheck 0 0 0 1 0 0 0
hm_collisionend
hm_getmark surfs 1
To find both penetrating and intersecting surfaces from IDs 1-10, using the thickness assigned to the surface components:
*createmark surfs 1 1-10
hm_collisioninit
hm_collisionentitycreate surfs 1 0 1 0 0 0 0 0 0
hm_collisioncheck 0 0 1 2 0 0 0
hm_collisionend
hm_getmark surfs 1
hm_getmark surfs 2
To find both penetrating and intersecting surfaces from IDs 1-10, using the thickness assigned to the surface components, and using an allowable depth of 0.1:
*createmark surfs 1 1-10
hm_collisioninit 0 -1 0.1
hm_collisionentitycreate surfs 1 0 1 0 0 0 0 0 0
hm_collisioncheck 0 0 1 2 0 0 0
hm_collisionend
hm_getmark surfs 1
hm_getmark surfs 2
Errors
None.
Version History
11.0.130
2017.2 – Added new optional argument min_overlap.