#ifndef PRO_MLDLAY_H #define PRO_MLDLAY_H #include <ProToolkit.h> #include <ProObjects.h> #include <ProGeomitem.h> #include <ProCavlayrule.h> typedef void *ProCavityLayout; PRO_BEGIN_C_DECLS /* Functions to initiate and set data to the Cavity Layout handle */ extern ProError ProCavitylayoutAlloc (ProMdl owner, ProCavityLayout *cvlayout); /* Purpose: Allocates the handle of a new cavity layout Input Arguments: owner - The top assembly to own the layout (may be either regular assembly or mold/casting model) Output Arguments: cvlayout - Pointer to the layout handle Return Values: PRO_TK_NO_ERROR - The handle is successfully allocated. PRO_TK_E_NOT_FOUND - The owner handle is invalid PRO_TK_OUT_OF_MEMORY - Cannot allocate the handle */ extern ProError ProCavitylayoutFree (ProCavityLayout *cvlayout); /* Purpose: Frees the handle of a cavity layout Input Arguments: cvlayout - Pointer to the layout handle Output Arguments: none Return Values: PRO_TK_NO_ERROR - The handle is successfully freed. PRO_TK_BAD_INPUTS - Can not free the handle */ extern ProError ProCavitylayoutGetByNumber (ProMdl owner_assem, int n, ProCavityLayout *cvlayout); /* Purpose: Initializes the handle of the n-th cavity layout. The function ProCavitylayoutCountGet() should be called first to find out the number of existing layouts. Input Arguments: owner_assem - The top assembly to own the layout (may be either regular assembly or mold/casting model) n - the number identifying the layout Output Arguments: cvlayout - Pointer to the layout handle Return Values: PRO_TK_NO_ERROR - The handle is successfully initialized. PRO_TK_BAD_INPUTS - The owner type is not allowed PRO_TK_GENERAL_ERROR - The selected component does not belong to any cavity layout. */ extern ProError ProCavitylayoutSelect (ProMdl owner_assem, ProCavityLayout *cvlayout); /* Purpose: Upon selection of a component initializes the handle of the cavity layout where this component belongs Input Arguments: owner_assem - The top assembly to own the layout (may be either regular assembly or mold/casting model) Output Arguments: cvlayout - Pointer to the layout handle Return Values: PRO_TK_NO_ERROR - The handle is successfully initialized. PRO_TK_BAD_INPUTS - The owner type is not allowed PRO_TK_E_NOT_FOUND - The selected component does not belong to any cavity layout. PRO_TK_GENERAL_ERROR - Cannot initialize the handle */ extern ProError ProCavitylayoutLeaderMdlnameSet (ProCavityLayout cvlayout, ProMdl in_leader, ProMdlName ref_name, ProMdl *out_leader); /* Purpose: Sets a leader model for the cavity layout (NOTE: The leader model cannot be reset in the handle of the existing cavity layout) <b>Note: </b> In Creo 3 this function does not differ in behavior from superseded ProCavitylayoutLeaderSet. In particular, ref_name can be only of ProName length. This function is reserved for future use. Input Arguments: cvlayout - Pointer to the layout handle; in_leader - The leader model (must be a mold/casting model if the layout owner is a regular assembly, and mold/casting design model if the owner is mold/casting); ref_name - Unique name for the reference model to be created for the design model in_leader. This argument has sense only if the owner is mold/casting. Output Arguments: out_leader - The result leader model set. It is the same as in_leader if if the layout owner is a regular assembly, and mold/casting reference model if the owner is mold/casting) Return Values: PRO_TK_NO_ERROR - The model is successfully set. PRO_TK_BAD_INPUTS - The layout handle is not initialized or the leader type is not allowed or does not correspond to the owner type. PRO_TK_GENERAL_ERROR - Cannot set the leader model. */ extern ProError ProCavitylayoutOriginSet (ProCavityLayout cvlayout, ProAsmcomppath *csys_comp_path, ProCsys owner_csys); /* Purpose: Sets the cavity layout origin Input Arguments: cvlayout - Pointer to the layout handle; csys_comp_path - component path from the layout owner to the Csys owner; owner_csys - Coordinate system belonging to the model set by csys_comp_path. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The origin is successfully set. PRO_TK_BAD_INPUTS - The given csys does not belong to the specified owner. PRO_TK_GENERAL_ERROR - Cannot set the layout origin. */ extern ProError ProCavitylayoutLeaderCsysSet (ProCavityLayout cvlayout, ProAsmcomppath *csys_comp_path, ProCsys leader_csys); /* Purpose: Sets coordinate system in the leader model to be used for placement of the layout members Input Arguments: cvlayout - Pointer to the layout handle; csys_comp_path - component path from the layout leader to the Csys owner. leader_csys - Coordinate system belonging to the model set by csys_comp_path. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The layout leader csys is successfully set. PRO_TK_BAD_INPUTS - The given csys does not belong to the layout leader model. PRO_TK_GENERAL_ERROR - Cannot set the layout leader csys. */ extern ProError ProCavitylayoutRuleSet (ProCavityLayout cvlayout, ProCvLayoutRule rule); /* Purpose: Sets a rule for the cavity layout Input Arguments: cvlayout - Pointer to the layout handle rule - The cavity layout rule Output Arguments: none Return Values: PRO_TK_NO_ERROR - The rule is successfully set. PRO_TK_BAD_INPUTS - The rule has invalid data PRO_TK_GENERAL_ERROR - Cannot set the layout rule. */ extern ProError ProCavitylayoutModelMdlnamesSet (ProCavityLayout cvlayout, ProMdlName *repl_models); /* Purpose: For Cavity Layout with Rule set to Variable replaces patern models with their family table instances. The leader model will not be replaced. <b>Note: </b> In Creo 3 this function does not differ in behavior from superseded ProCavitylayoutModelnamesSet. In particular, repl_models can be only of ProName length. This function is reserved for future use. Input Arguments: cvlayout - Pointer to the layout handle repl_models - <i>ProArray</i> of instance names replacing layout model. Number of elements in the array should be equal to the number of rows in variable layout table. The name coresponding to the layout leader will be ignored. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The models are successfully replaced. PRO_TK_BAD_INPUTS - The entered data is incorrect. PRO_TK_GENERAL_ERROR - Cannot replace the layout models. */ extern ProError ProCavitylayoutCreate (ProCavityLayout cvlayout); /* Purpose: Creates a new Cavity Layout (component pattern) according to the data from the handle. Input Arguments: cvlayout - Pointer to the layout handle Output Arguments: none Return Values: PRO_TK_NO_ERROR - The layout is successfully created. PRO_TK_BAD_INPUTS - The handle has invalid data or not initiated PRO_TK_E_FOUND - The cavity layout corresponding to the handle already exists. PRO_TK_GENERAL_ERROR - Cannot create the cavity layout */ extern ProError ProCavitylayoutRedefine (ProCavityLayout cvlayout); /* Purpose: Recreates an existing Cavity Layout according to the data from its handle. Input Arguments: cvlayout - Pointer to the layout handle Output Arguments: none Return Values: PRO_TK_NO_ERROR - The layout is successfully recreated. PRO_TK_BAD_INPUTS - The handle has invalid data or not initiated PRO_TK_E_NOT_FOUND - The cavity layout corresponding to the handle does not exists. PRO_TK_GENERAL_ERROR - Cannot create the cavity layout */ /* Functions to get data from the Cavity Layout handle */ extern ProError ProCavitylayoutLeaderCompGet (ProCavityLayout cvlayout, ProAsmcomppath *leader_comp); /* Purpose: Given the Cavity Layout handle of an existing layout, gets the leader component of the layout Input Arguments: cvlayout - Pointer to the layout handle Output Arguments: leader_comp - Component path to the leader component Return Values: PRO_TK_NO_ERROR - The information is successfully received. PRO_TK_BAD_INPUTS - The handle has invalid data or not initiated PRO_TK_E_NOT_FOUND - The cavity layout corresponding to the handle does not exists. */ extern ProError ProCavitylayoutLeaderGet (ProCavityLayout cvlayout, ProMdl *leader_model); /* Purpose: Given the Cavity Layout handle of an existing layout, gets the model of the pattern leader component Input Arguments: cvlayout - Pointer to the layout handle Output Arguments: leader_model - model of the pattern leader component Return Values: PRO_TK_NO_ERROR - The information is successfully received. PRO_TK_BAD_INPUTS - The handle has invalid data or not initiated PRO_TK_E_NOT_FOUND - The cavity layout corresponding to the handle does not exists. */ extern ProError ProCavitylayoutOriginGet (ProCavityLayout cvlayout, ProAsmcomppath *csys_comp_path, ProCsys *owner_csys); /* Purpose: Given the Cavity Layout handle of an existing layout, gets the coordinate system of the top assembly used for the placement of layout Input Arguments: cvlayout - Pointer to the layout handle Output Arguments: csys_comp_path - component path to coordinate system owner_csys - top assembly coordinate system Return Values: PRO_TK_NO_ERROR - The information is successfully received. PRO_TK_BAD_INPUTS - The handle has invalid data or not initiated PRO_TK_E_NOT_FOUND - The cavity layout corresponding to the handle does not exists. */ extern ProError ProCavitylayoutLeaderCsysGet (ProCavityLayout cvlayout, ProAsmcomppath *csys_comp_path, ProCsys *owner_csys); /* Purpose: Given the Cavity Layout handle of an existing layout, gets the coordinate system of the model used for the placement of layout Input Arguments: cvlayout - Pointer to the layout handle Output Arguments: csys_comp_path - component path to coordinate system owner_csys - coordinate system of the model Return Values: PRO_TK_NO_ERROR - The information is successfully received. PRO_TK_BAD_INPUTS - The handle has invalid data or not initiated PRO_TK_E_NOT_FOUND - The cavity layout corresponding to the handle does not exists. */ extern ProError ProCavitylayoutRuleGet (ProCavityLayout cvlayout, ProCvLayoutRule *rule); /* Purpose: Given the Cavity Layout handle of an existing layout, gets the coordinate system of the model used for the placement of layout Input Arguments: cvlayout - Pointer to the layout handle Output Arguments: rule - Rule currently used by the layout Return Values: PRO_TK_NO_ERROR - The information is successfully received. PRO_TK_BAD_INPUTS - The handle has invalid data or not initiated PRO_TK_E_NOT_FOUND - The cavity layout corresponding to the handle does not exists. */ extern ProError ProCavitylayoutModelMdlnamesGet (ProCavityLayout cvlayout, ProMdlName **repl_models); /* Purpose: For Cavity Layout with Rule set to Variable gets the information about patern models replacement. Input Arguments: cvlayout - Pointer to the layout handle Output Arguments: repl_models - <i>ProArray</i> of instance names replacing layout model. Number of elements in the array will be equal to the number of rows in variable layout table. Free this argument using ProArrayFree. Return Values: PRO_TK_NO_ERROR - The information is successfully received. PRO_TK_BAD_INPUTS - The entered data is incorrect. PRO_TK_GENERAL_ERROR - Cannot get the requested info. */ extern ProError ProCavitylayoutOutlineGet (ProCavityLayout cvlayout, double *min_x, double *min_y, double *min_z, double *max_x, double *max_y, double *max_z); /* Purpose: Given the Cavity Layout handle of an existing layout get the information about its outline. Input Arguments: cvlayout - Pointer to the layout handle Output Arguments: min_x - minimal value along X axis min_y - minimal value along Y axis min_z - minimal value along Z axis max_x - maximal value along X axis max_y - maximal value along Y axis max_z - maximal value along Z axis Return Values: PRO_TK_NO_ERROR - The information is successfully received. PRO_TK_BAD_INPUTS - The entered data is incorrect. PRO_TK_GENERAL_ERROR - Cannot get the requested info. */ extern ProError ProCavitylayoutCountGet (ProMdl owner_assem, int *count); /* Purpose: Gets the number of layouts owned by given top assembly. Input Arguments: owner_assem - The top assembly to own the layout (may be either regular assembly or mold/casting model) Output Arguments: count - number of layouts Return Values: PRO_TK_NO_ERROR - The information is successfully received. PRO_TK_BAD_INPUTS - The entered data is incorrect. */ /* Notification functions */ PRO_END_C_DECLS #endif