/*
uf_process_aid_types.h
File Description:
This file cntains Open API s and macros that are used by PROCESS AID
ASSISTANT module.
*****************************************************************************/
#ifndef UF_PROCESS_AID_TYPES_INCLUDED
#define UF_PROCESS_AID_TYPES_INCLUDED
#include <uf_defs.h>
/*************************************************************************
Datum object types
*************************************************************************/
enum UF_PROCESS_AID_types_e
{
UF_PROCESS_AID_DATUM_LOC_SURF_TYPE = 1,
UF_PROCESS_AID_DATUM_LOC_HOLE_TYPE = 1<<1,
UF_PROCESS_AID_DATUM_LOC_SLOT_TYPE = 1<<2,
UF_PROCESS_AID_DATUM_LOC_PIN_TYPE = 1<<3,
UF_PROCESS_AID_DATUM_LOC_SURF_NA_TYPE = 1<<4,
UF_PROCESS_AID_DATUM_LOC_HOLE_NA_TYPE = 1<<5,
UF_PROCESS_AID_DATUM_LOC_SLOT_NA_TYPE = 1<<6,
UF_PROCESS_AID_DATUM_LOC_PIN_NA_TYPE = 1<<7,
UF_PROCESS_AID_DATUM_PT_TYPE = 1<<8,
UF_PROCESS_AID_CERT_PT_TYPE = 1<<9,
UF_PROCESS_AID_CERT_PT_NA_TYPE = 1<<10,
UF_PROCESS_AID_MEA_SURF_VEC_TYPE = 1<<11,
UF_PROCESS_AID_MEA_HOLE_VEC_TYPE = 1<<12,
UF_PROCESS_AID_MEA_SLOT_VEC_TYPE = 1<<13,
UF_PROCESS_AID_MEA_STUD_VEC_TYPE = 1<<14,
UF_PROCESS_AID_MEA_TRIM_VEC_TYPE = 1<<15,
UF_PROCESS_AID_MEA_HEM_VEC_TYPE = 1<<16,
UF_PROCESS_AID_MEA_VEC_NA_TYPE = 1<<17,
UF_PROCESS_AID_MEA_LOC_SURF_TYPE = 1<<18,
UF_PROCESS_AID_MEA_LOC_HOLE_TYPE = 1<<19,
UF_PROCESS_AID_MEA_LOC_SLOT_TYPE = 1<<20,
UF_PROCESS_AID_MEA_LOC_PIN_TYPE = 1<<21,
UF_PROCESS_AID_MEA_LOC_SURF_NA_TYPE = 1<<22,
UF_PROCESS_AID_MEA_LOC_HOLE_NA_TYPE = 1<<23,
UF_PROCESS_AID_MEA_LOC_SLOT_NA_TYPE = 1<<24,
UF_PROCESS_AID_MEA_LOC_PIN_NA_TYPE = 1<<25,
UF_PROCESS_AID_MEA_PT_TYPE = 1<<26,
UF_PROCESS_AID_ALL_DATUM_TYPES = (1<<27 )-1 /* All the types */
};
typedef enum UF_PROCESS_AID_types_e
UF_PROCESS_AID_types_t, *UF_PROCESS_AID_types_p_t;
#define UF_PROCESS_AID_DATUM_COUNT 27 /* Count is total enums - 1 */
/*************************************************************************
Datum Feature Types - Max 30 characters
*************************************************************************/
#define SURFACE_DATUM_LOCATION "SURFACE_DAT_LOCATION"
/* Feature name is DATUM_LOCATION */
#define HOLE_DATUM_LOCATION "HOLE_DAT_LOCATION"
/* Feature name is DATUM_LOCATION */
#define SLOT_DATUM_LOCATION "SLOT_DAT_LOCATION"
/* Feature name is DATUM_LOCATION */
#define PIN_DATUM_LOCATION "PIN_DAT_LOCATION"
/* Feature name is DATUM_LOCATION */
#define SURFACE_DATUM_LOCATION_NON_ASSOC "SURFACE_DAT_LOCATION_NON_ASSOC"
/* Feature name is DATUM_LOCATION */
#define HOLE_DATUM_LOCATION_NON_ASSOC "HOLE_DAT_LOCATION_NON_ASSOC"
/* Feature name is DATUM_LOCATION */
#define SLOT_DATUM_LOCATION_NON_ASSOC "SLOT_DAT_LOCATION_NON_ASSOC"
/* Feature name is DATUM_LOCATION */
#define PIN_DATUM_LOCATION_NON_ASSOC "PIN_DAT_LOCATION_NON_ASSOC"
/* Feature name is DATUM_LOCATION */
#define DATUM_POINT "DAT_POINT"
/* Feature name is DATUM_POINT */
#define CERTIFICATION_POINT "CERTIFICATION_POINT"
#define CERTIFICATION_POINT_NON_ASSOC "CERTIFICATION_POINT_NON_ASSOC"
/* Feature name is CERTIFICATION_POINT */
#define SURFACE_VECTOR "SURFACE_VECTOR"
#define HOLE_VECTOR "HOLE_VECTOR"
#define SLOT_VECTOR "SLOT_VECTOR"
#define STUD_VECTOR "STUD_VECTOR"
#define TRIM_VECTOR "TRIM_VECTOR"
#define HEM_VECTOR "HEM_VECTOR"
#define MEASUREMENT_VECTOR_NON_ASSOC "MEASUREMENT_VECTOR_NON_ASSOC"
#define SURFACE_MEASUREMENT_LOCATION "SURFACE_MEASUREMENT_LOCATION"
/* Feature name is MEASUREMENT_LOCATION */
#define HOLE_MEASUREMENT_LOCATION "HOLE_MEASUREMENT_LOCATION"
/* Feature name is MEASUREMENT_LOCATION */
#define SLOT_MEASUREMENT_LOCATION "SLOT_MEASUREMENT_LOCATION"
/* Feature name is MEASUREMENT_LOCATION */
#define PIN_MEASUREMENT_LOCATION "PIN_MEASUREMENT_LOCATION"
/* Feature name is MEASUREMENT_LOCATION */
#define SURFACE_MEASUREMENT_LOCATION_NON_ASSOC "SURFACE_MEA_LOCATION_NON_ASSOC"
/* Feature name is MEASUREMENT_LOCATION */
#define HOLE_MEASUREMENT_LOCATION_NON_ASSOC "HOLE_MEA_LOCATION_NON_ASSOC"
/* Feature name is MEASUREMENT_LOCATION */
#define SLOT_MEASUREMENT_LOCATION_NON_ASSOC "SLOT_MEA_LOCATION_NON_ASSOC"
/* Feature name is MEASUREMENT_LOCATION */
#define PIN_MEASUREMENT_LOCATION_NON_ASSOC "PIN_MEA_LOCATION_NON_ASSOC"
/* Feature name is MEASUREMENT_LOCATION */
#define MEASUREMENT_POINT "MEASUREMENT_POINT"
/*************************************************************************
Datum object types
*************************************************************************/
enum UF_PROCESS_AID_relation_type_e
{
UF_PROCESS_AID_RELATION_NONE_TYPE = 0,
UF_PROCESS_AID_RELATION_FLUSH_TYPE,
UF_PROCESS_AID_RELATION_GAP_TYPE,
UF_PROCESS_AID_RELATION_NON_SPECIFIC_TYPE
};
typedef enum UF_PROCESS_AID_relation_type_e
UF_PROCESS_AID_relation_type_t, *UF_PROCESS_AID_relation_type_p_t;
/*************************************************************************
Weld types applicable for distance checks
*************************************************************************/
enum UF_PROCESS_AID_WELD_types_e
{
UF_PROCESS_AID_WELD_ARC_SPOT_TYPE = 1,
UF_PROCESS_AID_WELD_SPOT_TYPE = 1<<1,
UF_PROCESS_AID_WELD_CLINCH_TYPE = 1<<2,
UF_PROCESS_AID_WELD_ARC_SPOT_NA_TYPE = 1<<3,
UF_PROCESS_AID_WELD_SPOT_NA_TYPE = 1<<4,
UF_PROCESS_AID_WELD_CLINCH_NA_TYPE = 1<<5,
UF_PROCESS_AID_ALL_WELD_TYPES = (1<<6)-1
};
typedef enum UF_PROCESS_AID_WELD_types_e
UF_PROCESS_AID_WELD_types_t, *UF_PROCESS_AID_WELD_types_p_t;
#define UF_PROCESS_AID_WELD_COUNT 6 /* Count is total enums -1 */
#define ARC_SPOT_WELD "ARC_SPOT_WELD"
#define SPOT_WELD "SPOT_WELD"
#define CLINCH "CLINCH"
#define ARC_SPOT_WELD_NON_ASSOC "ARC_SPOT_WELD_NON_ASSOCIATIVE"
#define SPOT_WELD_NON_ASSOC "SPOT_WELD_NON_ASSOCIATIVE"
#define CLINCH_NON_ASSOC "CLINCH_NON_ASSOCIATIVE"
struct UF_PROCESS_AID_dlf_s
{
uf_list_p_t *sel_set; /* Can be faces and curves for Surface DLF
Edges and Curves for Hole/Slot DLF */
int num_set; /* Number of sets */
tag_t dlf_plane; /* Selected Plane,
NULL_TAG for Hole/Slot DLF */
};
typedef struct UF_PROCESS_AID_dlf_s
UF_PROCESS_AID_dlf_t, *UF_PROCESS_AID_dlf_p_t;
struct UF_PROCESS_AID_dpt_s
{
tag_t ref_dlf_daxis; /* Selected DLF datum
axis */
uf_list_p_t sel_face_edges; /* Selected face/edges */
};
typedef struct UF_PROCESS_AID_dpt_s
UF_PROCESS_AID_dpt_t, *UF_PROCESS_AID_dpt_p_t;
struct UF_PROCESS_AID_cpt_s
{
tag_t ref_dpt; /* Datum Point picked */
uf_list_p_t sel_faces; /* Selected Face */
uf_list_p_t sel_crvs_edgs; /* List of tags of Bndry
curves and edges */
};
typedef struct UF_PROCESS_AID_cpt_s
UF_PROCESS_AID_cpt_t, *UF_PROCESS_AID_cpt_p_t;
struct UF_PROCESS_AID_svec_s
{
tag_t sel_face; /* Selected Face */
};
typedef struct UF_PROCESS_AID_svec_s
UF_PROCESS_AID_svec_t, *UF_PROCESS_AID_svec_p_t;
struct UF_PROCESS_AID_tvec_s
{
tag_t sel_face; /* Selected Face */
tag_t sel_edge; /* Selected Edge */
};
typedef struct UF_PROCESS_AID_tvec_s
UF_PROCESS_AID_tvec_t, *UF_PROCESS_AID_tvec_p_t;
struct UF_PROCESS_AID_hsvec_s
{
uf_list_p_t sel_edges; /* Selected Edges */
};
typedef struct UF_PROCESS_AID_hsvec_s
UF_PROCESS_AID_hsvec_t, *UF_PROCESS_AID_hsvec_p_t;
struct UF_PROCESS_AID_hvec_s
{
tag_t sel_face; /* Selected Face */
tag_t hem_plane; /* Selected Plane */
};
typedef struct UF_PROCESS_AID_hvec_s
UF_PROCESS_AID_hvec_t, *UF_PROCESS_AID_hvec_p_t;
union UF_PROCESS_AID_sel_data_u
{
UF_PROCESS_AID_dlf_t dlf_data; /* Datum Location */
UF_PROCESS_AID_dpt_t dpt_data; /* Datum_point */
UF_PROCESS_AID_cpt_t cpt_data; /* Certification Point */
UF_PROCESS_AID_svec_t svec_data; /* Surface Vector */
UF_PROCESS_AID_tvec_t tvec_data; /* Trim Vector */
UF_PROCESS_AID_hsvec_t hsvec_data; /* Hole/Slot Vector */
UF_PROCESS_AID_hvec_t hvec_data; /* Hem Vector */
};
typedef union UF_PROCESS_AID_sel_data_u
UF_PROCESS_AID_sel_data_u_t, *UF_PROCESS_AID_sel_data_u_p_t;
#endif /* UF_PROCESS_AID_TYPES_INCLUDED */