PK_hole_component_t   

struct PK_hole_component_s
    {
    PK_hole_comp_t hole_comp;  --- type of hole component
    double         depth;      --- depth at bottom of component
    double         data;       --- a parameter of component (eg radius)
    PK_ENTITY_t    entity;     --- entity associated with component
    };
typedef struct PK_hole_component_s PK_hole_component_t;



This structure contains information defining a hole component.

Used in:

PK_detail_def_hole_t
PK_FACE_details_hole_o_t


Its fields are:

'hole_comp'     this specifies the type of the hole component.  For its values
                see PK_hole_comp_t

'depth'         the distance along the hole's 'origin's 'axis' from the hole's
                'origin's 'location' to the bottom of the component.  Note
                that since the hole's 'origin's axis points out of the hole,
                all depths are negative.  Components for which no
                meaningful depth can be calculated will have the 'depth' set to
                0.0

'data'          a parameter of the component; see table below

'entity'        an entity associated with the component; see table below

The 'data' and 'entity' associated with each hole component type are:

    'hole_comp'                   'data'              'entity'

  PK_hole_comp_cyl_c              radius              cylindrical surface
  PK_hole_comp_cone_in_c          semi-vertical angle conical surface
  PK_hole_comp_cone_out_c         semi-vertical angle conical surface
  PK_hole_comp_blnd_in_concave_c  blend radius        blend surface
  PK_hole_comp_blnd_out_concave_c blend radius        blend surface
  PK_hole_comp_blnd_in_convex_c   blend radius        blend surface
  PK_hole_comp_blnd_out_convex_c  blend radius        blend surface
  PK_hole_comp_zero_depth_in_c    annular width       surface
  PK_hole_comp_zero_depth_out_c   annular width       surface
  PK_hole_comp_open_end_c         radius (Note 1)     face    (Note 2)
  PK_hole_comp_closed_end_c       radius              surface (Note 3)
  PK_hole_comp_unknown_c          N/A                 face

If the option 'face_tracking' is PK_LOGICAL_true, the surface entities will
instead be new groups containing the surface and all faces making up the
component. Applications should delete these groups after use.

Note 1: In cases where the bounding edge or edges of the hole at the open end
        do not form a circle orthogonal to the hole's axis, the value given
        here is the distance from the hole's axis to the extreme point on
        those bounding edges in the direction of the hole's axis.  For the
        bottom open end of a through hole the point is the extreme in the
        opposite direction to the hole's axis.

Note 2: Generally this is the face into which the hole is drilled.  If the
        open end of a hole is not within a single face then the face is
        selected which maximises the depth of the hole (ie such that all of
        the hole is "below" the face).  If more than one face satisfies this
        condition then one is arbitrarily selected.

Note 3: If a closed hole is closed by a face bounded by a single loop, then
        that face's surface will be returned.  A blind drilled hole will have a
        PK_hole_comp_cone_in_c component which reduces the radius to zero and
        the following PK_hole_comp_closed_end_c component will have its
        entity set to its conical surface and the data will be zero.