#ifndef PROSREPDATA_H #define PROSREPDATA_H /* Creo Parametric TOOLKIT declarations for ProSimprep related actions */ #include <ProObjects.h> PRO_BEGIN_C_DECLS /* Types of actions that can be applied to assembly components by a simplified representation */ typedef enum pro_simprep_actions { PRO_SIMPREP_NONE, /* No action is specified. */ PRO_SIMPREP_REVERSE, /* Reverse the default rule for this component (for example, include it if the default rule is exclude). */ PRO_SIMPREP_INCLUDE, /* Include this component in the simplified rep. */ PRO_SIMPREP_EXCLUDE, /* Exclude this component from the simplified rep. */ PRO_SIMPREP_SUBSTITUTE, /* Substitute the component in the simplified rep. */ PRO_SIMPREP_GEOM, /* Use Geom Only rep of the component */ PRO_SIMPREP_GRAPHICS, /* Use Graphics only rep */ PRO_SIMPREP_SYMB, /* Use Symbolic only rep */ PRO_SIMPREP_BOUNDBOX, /* Use Boundary Box rep */ PRO_SIMPREP_DEFENV, /* Use Default Envelope rep */ PRO_SIMPREP_LIGHT_GRAPH, /* Use Light Graphics rep */ PRO_SIMPREP_AUTO, /* Use Automatic rep */ PRO_SIMPREP_ASSEM_ONLY /* Reserved for internal use */ } ProSimprepActionType; /* Types of substitutions that can used in the simplified representation */ typedef enum pro_simprep_subst_types { PRO_SUBST_NONE, /* No substitution is defined. */ PRO_SUBST_INTERCHG, /* Substitute using an interchange assembly or a family table. */ PRO_SUBST_PRT_REP, /* Substitute a part with a simplified rep. */ PRO_SUBST_ASM_REP, /* Substitute an assembly with a simplified rep. */ PRO_SUBST_ENVELOPE /* Substitute with an envelope. */ } ProSubstType; /* ProSimprepitemPath - Used to specify a simplified representation item. */ typedef struct pro_sr_item_path { int path_size; /* Use PRO_VALUE_UNUSED to specify a feature, or use the size of the comp_path array to specify a component. */ ProIdTable comp_path; /* Not used for features. */ int feat_id; /* Set to PRO_VALUE_UNUSED if you specify path_size. */ } ProSimprepitemPath; /* ProSubstitution - Specifies the substitution type and substitute data. */ typedef struct pro_substitution { ProSubstType type; /* type of substitution */ int path_size; /* PRO_VALUE_UNUSED to specify substitute by a simplified rep. */ ProIdTable subst_path; /* path to the substitute component */ ProSimprep simp_rep; /* simplified rep. handle (PRO_SUBST_PRT_REP or PRO_SUBST_ASM_REP */ } ProSubstitution; /* ProSimprepAction - Specifies the action (exclude, include, substitute, etc.) to apply to the simplified representation items. */ typedef struct pro_simprep_act { ProSimprepActionType type; /* type of the action (such as PRO_SIMPREP_INCLUDE) */ ProSubstitution subst_data; /* if type == PRO_SIMPREP_SUBSTITUTE */ } ProSimprepAction; /* ProSimprepitem - Defines the status of the component or feature in a simplified representation. */ typedef struct pro_sr_item_status { ProSimprepitemPath item_path; /* Specifies the item to which to apply the action. */ ProSimprepAction action; /* The action to be applied. */ } ProSimprepitem; /* ProSimprepdata - Specifies the internal data required to define a simplified representation. */ typedef struct pro_simprepdata { ProName name; /* name of the simplified rep. */ ProBoolean temp; /* PRO_B_TRUE if the rep is temporary */ ProSimprepActionType deflt; /* default action to be applied to the components (PRO_SIMPREP_INCLUDE or PRO_SIMPREP_EXCLUDE ) */ ProSimprepitem *items; /* an array of actions to apply to the components or features in this simplified rep */ } ProSimprepdata; /*===========================================================================*/ extern ProError ProSimprepActionInit (ProSimprepActionType action_type, ProSubstitution *p_subst_data, ProSimprepAction *p_action); /* Purpose: Fills the <i>ProSimprepAction</i> data structure. <p><b> NOTE: <p></b> Operates on assemblies only, not parts. <p> Input Arguments: action_type - The type of action p_subst_data - The substitution data (if the <i>action_type</i> is PRO_SIMPREP_SUBSTITUTE) Output Arguments: p_action - The filled action structure Return Values: PRO_TK_NO_ERROR - The function successfully filled the data structure. PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid. */ extern ProError ProSimprepdataAlloc (ProName name, ProBoolean temp, ProSimprepActionType deflt, ProSimprepdata **p_result); /* Purpose: Allocates a <i>ProSimprepdata</i> structure. <p><b> NOTE: <p></b> Operates on assemblies only, not parts. <p> Input Arguments: name - The name of the simplified representation. temp - Set this to PRO_B_TRUE if the representation is temporary. Otherwise, set this to PRO_B_FALSE. deflt - The default action to be applied to the items (PRO_SIMP_INCLUDE or PRO_SIMPREP_EXCLUDE). Output Arguments: p_result - The pointer to the allocated structure. To free the memory, call <b>ProSimprepdataFree()</b>. Return Values: PRO_TK_NO_ERROR - The function successfully allocated the structure. PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid. See Also: ProSimprepdataFree() */ extern ProError ProSimprepdataDefltGet (ProSimprepdata *p_data, ProSimprepActionType *p_action); /* Purpose: Retrieves the default action from the <i>ProSimprepdata</i> structure. <p><b> NOTE: <p></b> Operates on assemblies only, not parts. <p> Input Arguments: p_data - The pointer to the <i>ProSimprepdata</i> structure Output Arguments: p_action - The pointer to the default action type (PRO_SIMPREP_INCLUDE or PRO_SIMPREP_EXCLUDE) Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the information. PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid. */ extern ProError ProSimprepdataDefltSet (ProSimprepdata *p_data, ProSimprepActionType action); /* Purpose: Sets the default action in the <i>ProSimprepdata</i> structure. <p><b> NOTE: <p></b> Operates on assemblies only, not parts. <p> Input Arguments: p_data - The pointer to the <i>ProSimprepdata</i> structure action - The default action type (PRO_SIMPREP_INCLUDE or PRO_SIMPREP_EXCLUDE) Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully set the default action. PRO_TK_BAD_INPUTS - One or more of the arguments are invalid. */ extern ProError ProSimprepdataNameGet (ProSimprepdata *p_data, ProName name); /* Purpose: Retrieves the name from the <i>ProSimprepdata</i> structure. <p><b> NOTE: <p></b> Operates on assemblies only, not parts. <p> Input Arguments: p_data - The pointer to the <i>ProSimprepdata</i> structure Output Arguments: name - The name of the simplified representation extracted from the <i>p_data</i> Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the name. PRO_TK_BAD_INPUTS - The input argument is invalid. */ extern ProError ProSimprepdataNameSet (ProSimprepdata *p_data, ProName name); /* Purpose: Sets the name of the simplified representation in the <i>ProSimprepdata</i> structure. <p><b> NOTE: <p></b> Operates on assemblies only, not parts. <p> Input Arguments: p_data - The pointer to the <i>ProSimprepdata</i> structure name - The name of the simplified representation Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully set the name. PRO_TK_BAD_INPUTS - One or more of the arguments are invalid. */ extern ProError ProSimprepdataTmpvalGet (ProSimprepdata *p_data, ProBoolean *p_temp); /* Purpose: Retrieves the value of the <i>temp</i> field from the specified <i>ProSimprepdata</i> structure. <p><b> NOTE: <p></b> Operates on assemblies only, not parts. <p> Input Arguments: p_data - The pointer to the <i>ProSimprepdata</i> structure Output Arguments: p_temp - The pointer to the retrieved <i>temp</i> value Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the value. PRO_TK_BAD_INPUTS - The input argument is invalid. */ extern ProError ProSimprepdataTmpvalSet (ProSimprepdata *p_data, ProBoolean temp); /* Purpose: Sets the value of the <i>temp</i> field in the specified <i>ProSimprepdata</i> structure. <p><b> NOTE: <p></b> Operates on assemblies only, not parts. <p> The temporary simplified representation value can be set only for newly created representations. For existing representations it is controlled by Creo. <p> Input Arguments: p_data - The pointer to the <i>ProSimprepdata</i> structure temp - A Boolean value that indicates whether it is a temporary simplified representation (PRO_B_TRUE if it is temporary) Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully set the value. PRO_TK_BAD_INPUTS - One or more of the arguments are invalid. */ extern ProError ProSimprepdataitemAdd (ProSimprepdata *p_data, ProSimprepitem *p_item); /* Purpose: Adds a simplified representation data item to the specified <i>ProSimprepdata</i> structure. <p><b> NOTE: <p></b> Operates on assemblies only, not parts. <p> Input Arguments: p_data - The pointer to the <i>ProSimprepdata</i> structure p_item - The item to add to the structure Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully added the information to the structure. PRO_TK_BAD_INPUTS - One or more of the arguments are invalid. */ extern ProError ProSimprepdataitemDelete (ProSimprepdata *p_data, ProSimprepitem *p_item); /* Purpose: Deletes the specified item from the <i>ProSimprepdata</i> structure. <p><b> NOTE: <p></b> If an item is deleted from ProSimprepdata, its last status in the simplified representation will remain unchanged after calling ProSimprepdataSet. This should not be confused with deleting the item from the simplified representation, which can be achieved by setting the item action to PRO_SIMPREP_NONE. <p> Input Arguments: p_data - The pointer to the <i>ProSimprepdata</i> structure p_item - The item to delete Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully deleted the item from the structure. PRO_TK_BAD_INPUTS - One or more of the arguments are invalid. PRO_TK_E_NOT_FOUND - The function did not find the specified item in the structure. */ extern ProError ProSimprepdataitemInit (ProIdTable compidtab, int table_num, int feat_id, ProSimprepAction *p_action, ProSimprepitem *p_item); /* Purpose: Initializes the specified item in the <i>ProSimprepitem</i> structure. <p><b> NOTE: <p></b> Operates on assemblies only, not parts. <p> Input Arguments: compidtab - The component path (for assembly simplified representations) table_num - Size of the component path (for assembly simplified representations) feat_id - Not supported in this release. For part simplified representations only. The feature identifier, if <i>table_num</i> is PRO_VALUE_UNUSED p_action - The action structure Output Arguments: p_item - The filled structure Return Values: PRO_TK_NO_ERROR - The function successfully initialized the structure. PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid. */ extern ProError ProSimprepdataitemsVisit (ProSimprepdata *p_data, ProFunction filter, ProFunction action, ProAppData app_data); /* Purpose: Visits the items in the <i>ProSimprepdata</i> structure and executes the user-supplied action function. <p><b> NOTE: <p></b> Operates on assemblies only, not parts. <p> Input Arguments: p_data - The handle to the <i>ProSimprepdata</i> structure. filter - The filter function. If NULL, all items are visited using the action function. action - The visiting function. If it returns anything other than PRO_TK_NO_ERROR, visiting stops. app_data - The application data passed to the filter and visiting functions. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function visited all the items. PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid. Other - Any other value is the value returned by the action function (visiting stopped). */ extern ProError ProSimprepdataFree (ProSimprepdata **p_data); /* Purpose: Frees the memory occupied by the <i>ProSimprepdata</i> structure. <p><b> NOTE: <p></b> Operates on assemblies only, not parts. <p> Input Arguments: p_data - The <i>ProSimprepdata</i> structure to be released Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully freed the memory. PRO_TK_BAD_INPUTS - The argument is invalid. */ extern ProError ProSubstitutionInit (ProSubstType type, int path_size, ProIdTable subst_path, ProSimprep *p_simp_rep, ProSubstitution *p_subst); /* Purpose: Initializes a <i>ProSubstitution</i> structure. <p><b> NOTE: <p></b> Operates on assemblies only, not parts. <p> Input Arguments: type - The type of substitution. path_size - Set this to PRO_VALUE_UNUSED to specify substitution with a simplified representation. subst_path - The path to the substitution component. p_simp_rep - The handle to the simplified representation (used with PRO_SUBST_PRT_REP or PRO_SUBST_ASM_REP). Output Arguments: p_subst - The initialized substitution data. Return Values: PRO_TK_NO_ERROR - The function successfully initialized the structure. PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid. */ PRO_END_C_DECLS #endif /* PROSREPDATA_H */