/*
uf_fbm_geom.h
* File description:
*
* This file contains the Open API interface to FBM_GEOM in CAM.
*
* The CAM FBM_GEOM routines in this file provide an API to the Feature
* Geometry Groups that are used in the Feature Based Hole Making Module
*
******************************************************************************/
#ifndef UF_FBM_GEOM_H_INCLUDED
#define UF_FBM_GEOM_H_INCLUDED
#include <uf.h>
#include <uf_defs.h>
#include <uf_cam.h>
#include <libufun_cam_exports.h>
/*
**************************************************************************
*************************** Definitions ***************************
**************************************************************************
*/
/*******************************************************************************
This is the identifier of the object which holds the results of the
classification applied to a FBM_GEOM group.
Environment: Internal and External
*******************************************************************************/
typedef void *UF_FBM_GEOM_classified_crit_t;
/*
**************************************************************************
*************************** Structures ***************************
**************************************************************************
*/
/*******************************************************************************
Types of the classification criteria of the FBM_GEOM group.
Environment: Internal and External
*******************************************************************************/
enum UF_FBM_GEOM_crit_value_type_e
{
UF_FBM_GEOM_crit_value_type_undefined,
UF_FBM_GEOM_crit_value_type_logical,
UF_FBM_GEOM_crit_value_type_integer,
UF_FBM_GEOM_crit_value_type_double,
UF_FBM_GEOM_crit_value_type_string
};
typedef enum UF_FBM_GEOM_crit_value_type_e UF_FBM_GEOM_crit_value_type_t , *UF_FBM_GEOM_crit_value_type_p_t;
/*
**************************************************************************
****************** Functions Relating to FBM_GEOM *****************
**************************************************************************
*/
/*******************************************************************************
Return all the names of the features that are valid for the FBM_GEOM group
History: Released in V19.0
*******************************************************************************/
extern UFUN_CAMEXPORT int UF_FBM_GEOM_ask_list_of_feature_names
(
tag_t fbm_geom_tag, /* <I> The tag of the fbm_geom group of interest */
int *count, /* <O> The number of feature names returned */
char ***feature_names /* <OF> The array of the feature names.
The memory for the names allocated
by this function and must be freed
by calling UF_free_string_array. */
);
/*******************************************************************************
Set the name of the feature in the FBM_GEOM group and create the feature
objects from the name.
Environment: Internal and External
History: Released in V19.0
*******************************************************************************/
extern UFUN_CAMEXPORT int UF_FBM_GEOM_set_feature_name
(
tag_t fbm_geom_tag, /*<I> The tag of the fbm_geom group of interest */
char *feature_name /*<I> One of the names that is returned by the call to
UF_FBM_GEOM_ask_list_of_feature_names */
);
/*******************************************************************************
Return the name of the feature in the FBM_GEOM group
Environment: Internal and External
History: Released in V19.0
*******************************************************************************/
extern UFUN_CAMEXPORT int UF_FBM_GEOM_ask_feature_name
(
tag_t fbm_geom_tag, /*<I> The tag of the fbm_geom group of interest */
char **feature_name /*<OF> Name of the feature on which the
fbm_geom group is applied. The
memory must be freed by calling
UF_free */
);
/*******************************************************************************
Return the feature objects of FBM_GEOM group
Environment: Internal and External
History: Released in V19.0
*******************************************************************************/
extern UFUN_CAMEXPORT int UF_FBM_GEOM_ask_features
(
tag_t fbm_geom_tag, /*<I> The tag of the fbm_geom group of interest */
int *count, /*<O> The number of feature objects returned */
UF_NCFEAT_t **ncfeat_objs /*<OF> The array of ncfeat objects.
The memory for the objects
allocated by this function
and must be freed by calling
UF_free */
);
/*******************************************************************************
Remove the feature object from the FBM_GEOM group. If the feature object
is not in the FBM_GEOM group, then an error is returned
Environment: Internal and External
History: Released in V19.0
*******************************************************************************/
extern UFUN_CAMEXPORT int UF_FBM_GEOM_remove_feature
(
tag_t fbm_geom_tag, /*<I> The tag of the fbm_geom group of interest */
UF_NCFEAT_t feature /*<I> The feature object to be removed from the fbm_geom group */
);
/*******************************************************************************
Return the feature objects that represent the all other feature objects
in FBM_GEOM group.
Environment: Internal and External
History: Released in V19.0
*******************************************************************************/
extern UFUN_CAMEXPORT int UF_FBM_GEOM_ask_representative_features
(
tag_t fbm_geom_tag, /*<I> The tag of the fbm_geom group of interest */
int *count, /*<O> The number of representative features in this group */
UF_NCFEAT_t **rep_feature_list /*<OF> The array of representative
features in this group.
The memory is allocated
by this function and has
to be freed by calling
UF_free */
);
/*******************************************************************************
Return all the available criteria of the FBM_GEOM group.
Environment: Internal and External
History: Released in V19.0
*******************************************************************************/
extern UFUN_CAMEXPORT int UF_FBM_GEOM_ask_available_criteria
(
tag_t fbm_geom_tag, /*<I> The tag of the fbm_geom group of interest */
int *count, /*<O> The number of criteria */
char ***criteria_list /*<OF> The criteria that are available
for classification. Memory is
allocated by this function and
has to be freed by calling
UF_free_string_array */
);
/*******************************************************************************
Return the criteria that has been specified to be used for classification
of the feature objects in the FBM_GEOM group.
Environment: Internal and External
History: Released in V19.0
*******************************************************************************/
extern UFUN_CAMEXPORT int UF_FBM_GEOM_ask_used_criteria
(
tag_t fbm_geom_tag, /*<I> The tag of the fbm_geom group of interest */
int *count, /*<O> The number of criteria */
char ***used_criteria_list /*<OF> The criteria that will be used
for classification. Memory is
allocated by this function and
has to be freed by calling
UF_free_string_array */
);
/*******************************************************************************
Return the data type of a criterion of the FBM_GEOM group.
Environment: Internal and External
History: Released in V19.0
*******************************************************************************/
extern UFUN_CAMEXPORT int UF_FBM_GEOM_ask_type_of_criterion
(
tag_t fbm_geom_tag, /*<I> The tag of the fbm_geom group of interest */
char *criterion, /*<I> The criterion for which the type has to be returned */
UF_FBM_GEOM_crit_value_type_p_t type /*<O> The type of the criterion */
);
/*******************************************************************************
Return the value of a logical type of criteria for a specific feature
object that is present in the FBM_GEOM group.
If the feature object is not present in the FBM_GEOM group, an error
will be returned. Also, if the criteria type does not match, an error
will be returned.
Environment: Internal and External
History: Released in V19.0
*******************************************************************************/
extern UFUN_CAMEXPORT int UF_FBM_GEOM_ask_logical_of_criteria
(
tag_t fbm_geom_tag, /*<I> The tag of the fbm_geom group of interest */
UF_NCFEAT_t ncfeat_obj, /*<I> The ncfeat_obj object for which the criteria value has to be evaluated*/
char *criterion, /*<I> The criterion for which the value is requested */
logical *value /*<O> The logical value */
);
/*******************************************************************************
Return the value of a double type of criteria for a
specific feature object that is present in the FBM_GEOM group.
If the feature object is not present in the FBM_GEOM group,
an error will be returned. Also, if the criteria type does
not match, an error will be returned.
Environment: Internal and External
History: Released in V19.0
*******************************************************************************/
extern UFUN_CAMEXPORT int UF_FBM_GEOM_ask_double_of_criteria
(
tag_t fbm_geom_tag, /*<I> The tag of the fbm_geom group of interest */
UF_NCFEAT_t ncfeat_object, /*<I> The ncfeat_obj object for which the criteria value has to be evaluated*/
char *criterion, /*<I> The criterion for which the value is requested */
double *value /*<O> The double value */
);
/*******************************************************************************
Return the value of a integer type of criteria for a
specific feature object that is present in the FBM_GEOM group.
If the feature object is not present in the FBM_GEOM group,
an error will be returned. Also, if the criteria type does
not match, an error will be returned.
Environment: Internal and External
History: Released in V19.0
*******************************************************************************/
extern UFUN_CAMEXPORT int UF_FBM_GEOM_ask_integer_of_criteria
(
tag_t fbm_geom_tag, /*<I> The tag of the fbm_geom group of interest */
UF_NCFEAT_t ncfeat_obj, /*<I> The ncfeat_obj object for which the criteria value has to be evaluated*/
char *criterion, /*<I> The criterion for which the value is requested */
int *value /*<O> The integer value */
);
/*******************************************************************************
Return the value of a string type of criteria for a
specific feature object that is present in the FBM_GEOM group.
If the feature object is not present in the FBM_GEOM group,
an error will be returned. Also, if the criteria type does
not match, an error will be returned.
Environment: Internal and External
History: Released in V19.0
*******************************************************************************/
extern UFUN_CAMEXPORT int UF_FBM_GEOM_ask_string_of_criteria
(
tag_t fbm_geom_tag, /*<I> The tag of the fbm_geom group of interest */
UF_NCFEAT_t ncfeat_obj, /*<I> The ncfeat_obj object for which the criteria value has to be evaluated*/
char *criterion, /*<I> The criterion whose value has to be evaluated*/
char **value /*<OF> The string value. Memory has to be
freed by calling UF_free */
);
/*******************************************************************************
Return the result of the classification based on the given criteria.
Environment: Internal and External
History: Released in V19.0
*******************************************************************************/
extern UFUN_CAMEXPORT int UF_FBM_GEOM_classify_by_criteria
(
tag_t fbm_geom_tag, /*<I> The tag of the fbm_geom group of interest */
int num_of_criteria, /*<I> The number of criteria that have to be considered */
char **criteria, /*<I>
The criteria to be considered */
int *num_of_classified_sets, /*<O> The count of criteria sets possible */
UF_FBM_GEOM_classified_crit_t *classified_set_list /*<OF>
The object containing the results of the classification.
This has to be freed calling the function
UF_FBM_GEOM_free_classified_set_list */
);
/*******************************************************************************
Set the classified set of feature objects in FBM_GEOM group.
Environment: Internal and External
History: Released in V19.0
*******************************************************************************/
extern UFUN_CAMEXPORT int UF_FBM_GEOM_set_classified_features
(
tag_t fbm_geom_tag, /*<I> The tag of the fbm_geom group of interest */
UF_FBM_GEOM_classified_crit_t classified_set_list, /*<I> The result of the classification */
int classified_set_index /*<I> The index of the set which should be used */
);
/*******************************************************************************
Return the integer value of a criterion for the set indicated by the
classified_set index . If the type of criterion is not an integer, an error
will be returned.
Environment: Internal and External
History: Released in V19.0
*******************************************************************************/
extern UFUN_CAMEXPORT int UF_FBM_GEOM_ask_int_value_of_classified_crit
(
tag_t fbm_geom_tag, /*<I> The tag of the fbm_geom group of interest */
char *criterion, /*<I> The criteria for which the value is asked for */
UF_FBM_GEOM_classified_crit_t classified_set_list, /*<I> The result of the classification */
int classified_set_index, /*<I> The index of the set which should be used */
int *value /*<O> The value of the criterion */
);
/*******************************************************************************
Return the double value of a criterion for the set indicated by the
classified_set index . If the type of criterion is not a double, an error
will be returned.
Environment: Internal and External
History: Released in V19.0
*******************************************************************************/
extern UFUN_CAMEXPORT int UF_FBM_GEOM_ask_double_value_of_classified_crit
(
tag_t fbm_geom_tag, /*<I> The tag of the fbm_geom group of interest */
char *criterion, /*<I> The criteria for which the value is asked for */
UF_FBM_GEOM_classified_crit_t classified_set_list, /*<I> The result of the classification */
int classified_set_index, /*<I> The index of the set which should be used */
double *value /*<O> The value of the criterion */
);
/*******************************************************************************
Return the string value of a criterion for the set indicated by the
classified_set index . If the type of criterion is not a string, an error
will be returned.
Environment: Internal and External
History: Released in V19.0
*******************************************************************************/
extern UFUN_CAMEXPORT int UF_FBM_GEOM_ask_string_value_of_classified_crit
(
tag_t fbm_geom_tag, /*<I> The tag of the fbm_geom group of interest */
char *criterion, /*<I> The criteria for which the value is asked for */
UF_FBM_GEOM_classified_crit_t classified_set_list, /* <I> The result of the classification */
int classified_set_index, /* <I> The index of the set which should be used */
char **value /* <OF> The value of the criterion. Memory has to be freed by calling UF_free */
);
/*******************************************************************************
Return the logical value of a criterion for the set indicated by the
classified_set index . If the type of criterion is not a logical, an error
will be returned.
Environment: Internal and External
History: Released in V19.0
*******************************************************************************/
extern UFUN_CAMEXPORT int UF_FBM_GEOM_ask_logical_value_of_classified_crit
(
tag_t fbm_geom_tag, /*<I> The tag of the fbm_geom group of interest */
char *criterion, /*<I> The criteria for which the value is asked for */
UF_FBM_GEOM_classified_crit_t classified_set_list, /*<I> The result of the classification */
int classified_set_index, /*<I> The index of the set which should be used */
logical *value /*<O> The value of the criterion */
);
/*******************************************************************************
Free the classification object.
Environment: Internal and External
History: Released in V19.0
*******************************************************************************/
extern UFUN_CAMEXPORT int UF_FBM_GEOM_free_classified_set_list
(
tag_t fbm_geom_tag, /*<I> The tag of the fbm_geom group of interest */
UF_FBM_GEOM_classified_crit_t classified_set_list /* <I> The object that has to be freed */
);
/*******************************************************************************
Return the list of entities associated to the feature of the FBM_GEOM group.
Environment: Internal and External
History: Released in V19.0
*******************************************************************************/
extern UFUN_CAMEXPORT int UF_FBM_GEOM_ask_feature_entities
(
tag_t fbm_geom_tag, /*<I> The tag of the fbm_geom group of interest */
UF_NCFEAT_t representative_feature, /*<I> A representative feature object of the group */
int *count, /*<O> The number of entities of the feature object */
tag_t **entities /*<OF> The array of entities of the feature object. Memory has to be freed by calling UF_free */
);
/*******************************************************************************
Return the list of accessibility vectors associated to the feature of the
FBM_GEOM group.
Environment: Internal and External
History: Released in V19.0
*******************************************************************************/
extern UFUN_CAMEXPORT int UF_FBM_GEOM_ask_accessibility_vectors
(
tag_t fbm_geom_tag, /*<I> The tag of the fbm_geom group of interest */
UF_NCFEAT_t representative_feature, /*<I> A representative feature object of the group */
int *count, /*<O> The number of accessibility vectors */
tag_t **smart_vectors /*<OF> The array of accessibility vectors. Memory has to be freed calling UF_free */
);
/*******************************************************************************
Set the list of accessibity vectors associated to the feature of
FBM_GEOM group.
Environment: Internal and External
History: Released in V19.0
*******************************************************************************/
extern UFUN_CAMEXPORT int UF_FBM_GEOM_set_accessibility_vectors
(
tag_t fbm_geom_tag, /*<I> The tag of the fbm_geom group of interest */
UF_NCFEAT_t representative_feature, /*<I> A representative feature object of the group */
int count, /*<I> The number of accessibility vectors */
tag_t *smart_vectors /*<I> count
The array of accessibility vectors */
);
/*******************************************************************************
Remove all the accessibility vectors associated to the feature of
FBM_GEOM group.
Environment: Internal and External
History: Released in V19.0
*******************************************************************************/
extern UFUN_CAMEXPORT int UF_FBM_GEOM_remove_accessibility_vectors
(
tag_t fbm_geom_tag, /*<I> The tag of the fbm_geom group of interest */
UF_NCFEAT_t representative_feature /*<I> A representative feature object of the group */
);
/*******************************************************************************
Create FBM_GEOM groups from the features in the part geometry of the
parent group. Only those features in the part geometry that are also in
the selected list of the Machining Feature Manager are used to create groups.
Refer to uf_mfm.h for details of selected features in the Machining Feature Manager.
Environment: Internal and External
History: Released in NX4
*******************************************************************************/
extern UFUN_CAMEXPORT int UF_FBM_GEOM_create
(
char *type, /*<I> The template type */
char *subtype, /*<I> The template sub-type */
tag_t parent_geom, /*<I> The parent geometry group of new feature groups */
tag_t *new_object /*<O> The first new feature group object */
);
#undef EXPORTLIBRARY
#endif /* UF_FBM_GEOM_H_INCLUDED */