#ifndef PROMECHFUNCTION_H #define PROMECHFUNCTION_H #include <ProToolkit.h> #include <ProObjects.h> #include <ProMechGeomref.h> typedef enum { PRO_MECH_FUNC_UNIVERSAL = PRO_VALUE_UNUSED, PRO_MECH_FUNC_COORD = 0, PRO_MECH_FUNC_TIME = 2, PRO_MECH_FUNC_TEMPERATURE = 3, PRO_MECH_FUNC_DEFLECTION = 4, PRO_MECH_FUNC_ARCLENGTH = 5, PRO_MECH_FUNC_COORDS_TIME = 6, PRO_MECH_FUNC_ARCLENGTH_TIME = 7 } ProMechfuncVarType; typedef enum { PRO_MECH_FUNCTION_NONE = PRO_VALUE_UNUSED, PRO_MECH_FUNCTION_SYMBOLIC = 0, PRO_MECH_FUNCTION_TABLE = 1 } ProMechfuncType; typedef enum { PRO_MECH_INDEP_VAR_NONE = PRO_VALUE_UNUSED, PRO_MECH_INDEP_VAR_X = 0, PRO_MECH_INDEP_VAR_Y = 1, PRO_MECH_INDEP_VAR_Z = 2, PRO_MECH_INDEP_VAR_R = 3, PRO_MECH_INDEP_VAR_THETA = 4, PRO_MECH_INDEP_VAR_PHI = 5, PRO_MECH_INDEP_VAR_TIME = 6, PRO_MECH_INDEP_VAR_TEMPERATURE = 7, PRO_MECH_INDEP_VAR_DEFLECTION = 8, PRO_MECH_INDEP_VAR_ARCLENGTH = 9, PRO_MECH_INDEP_VAR_FREQUENCY = 10 } ProMechIndepvarType; #define PRO_MAX_FUNC_EXPR_LENGTH 1024 typedef wchar_t ProMechFuncExpression[PRO_MAX_FUNC_EXPR_LENGTH]; typedef enum { PRO_MECH_TABLE_NONE = PRO_VALUE_UNUSED, PRO_MECH_TABLE_LINEAR = 0, PRO_MECH_TABLE_LOGARITHMIC = 1 } ProMechfuncTableInterpType; typedef struct pro_sim_func_data* ProMechFuncData; typedef struct pro_sim_func_table_entry* ProMechfuncTableEntry; PRO_BEGIN_C_DECLS extern ProError ProMechfuncCsysGet (ProMechItem* item, ProMechGeomref* csys); /* Purpose: Obtains the reference csys (if this is the function of coordinates ). Licensing Requirement: UNRECOGNIZED Input Arguments: item - The function. Output Arguments: csys - The reference csys. Free this using ProMechgeomrefFree(). Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. PRO_TK_GENERAL_ERROR - A general error is encountered. PRO_TK_INVALID_PTR - The Input ProMechItem Solid pointer is invalid. PRO_TK_OUT_OF_MEMORY - There is not enough memory to perform the operation. */ extern ProError ProMechfuncDescriptionGet (ProMechItem* item, ProComment description); /* Purpose: Obtains the function description. Licensing Requirement: UNRECOGNIZED Input Arguments: item - The item. Output Arguments: description - The description. Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. PRO_TK_GENERAL_ERROR - A general error is encountered. PRO_TK_INVALID_PTR - The Input ProMechItem Solid pointer is invalid. */ extern ProError ProMechfuncVartypeGet (ProMechItem* item, ProMechfuncVarType* value); /* Purpose: Obtains the value of the function Var Type from the Creo Simulate item. Licensing Requirement: UNRECOGNIZED Input Arguments: item - The item. Output Arguments: value - The function Var Type. Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. PRO_TK_GENERAL_ERROR - A general error is encountered. PRO_TK_INVALID_PTR - The Input ProMechItem Solid pointer is invalid. */ extern ProError ProMechfuncDataGet (ProMechItem* item, ProMechFuncData* value); /* Purpose: Obtains the value of the function data from the Creo Simulate item. Licensing Requirement: UNRECOGNIZED Input Arguments: item - The item. Output Arguments: value - The function data. Free this using ProMechfuncdataFree(). Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. PRO_TK_GENERAL_ERROR - A general error is encountered. PRO_TK_INVALID_PTR - The Input ProMechItem Solid pointer is invalid. PRO_TK_OUT_OF_MEMORY - There is not enough memory to perform the operation. */ extern ProError ProMechfuncdataTypeGet (ProMechFuncData data, ProMechfuncType* value); /* Purpose: Obtains the function type. Licensing Requirement: UNRECOGNIZED Input Arguments: data - The function data. Output Arguments: value - The type of function. Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. */ extern ProError ProMechfuncdataExpressionGet (ProMechFuncData data, ProMechFuncExpression value); /* Purpose: Obtains the symbolic expression for the function. Licensing Requirement: UNRECOGNIZED Input Arguments: data - The function data. Output Arguments: value - The symbolic expression. Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_INVALID_TYPE - The Function data does not contain this type of function. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. See Also: ProMechfuncdataTypeGet() */ extern ProError ProMechfuncdataIndependentvarGet (ProMechFuncData data, ProMechIndepvarType* value); /* Purpose: Obtains the type of independent variable for a tabular function. Licensing Requirement: UNRECOGNIZED Input Arguments: data - The function data. Output Arguments: value - The independent variable type. Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_INVALID_TYPE - The Function data does not contain this type of function. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. See Also: ProMechfuncdataTypeGet() */ extern ProError ProMechfuncdataIndepvarinterpGet (ProMechFuncData data, ProMechfuncTableInterpType* value); /* Purpose: Obtains the type of interpolation for the function value. Valid only for a tabular function. Licensing Requirement: UNRECOGNIZED Input Arguments: data - The function data. Output Arguments: value - The interpolation type for the function value. Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_INVALID_TYPE - The Function data does not contain this type of function. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. See Also: ProMechfuncdataTypeGet() */ extern ProError ProMechfuncdataFuncvalueinterpGet (ProMechFuncData data, ProMechfuncTableInterpType* value); /* Purpose: Obtains the type of interpolation for the independent variable. Valid only for a tabular function. Licensing Requirement: UNRECOGNIZED Input Arguments: data - The function data. Output Arguments: value - The interpolation type for the independent variable. Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_INVALID_TYPE - The Function data does not contain this type of function. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. See Also: ProMechfuncdataTypeGet() */ extern ProError ProMechfuncdataFunctableGet (ProMechFuncData data, ProMechfuncTableEntry** value); /* Purpose: Obtains the table entries for the tabular function. Licensing Requirement: UNRECOGNIZED Input Arguments: data - The function data. Output Arguments: value - ProArray of table entries. Free this using ProMechtablentryProarrayFree(). Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_INVALID_TYPE - The Function data does not contain this type of function. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. PRO_TK_OUT_OF_MEMORY - There is not enough memory to perform the operation. PRO_TK_GENERAL_ERROR - A general error is encountered. See Also: ProMechfuncdataTypeGet() */ extern ProError ProMechfuncdataFree (ProMechFuncData data); /* Purpose: Frees the memory for a Creo Simulate function data handle. Licensing Requirement: UNRECOGNIZED Input Arguments: data - The function data. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. */ extern ProError ProMechtablentryFunctionvalueGet (ProMechfuncTableEntry entry, double* value); /* Purpose: Obtains the function value in this table entry. Licensing Requirement: UNRECOGNIZED Input Arguments: entry - The function table entry. Output Arguments: value - The value. Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. */ extern ProError ProMechtablentryFree (ProMechfuncTableEntry entry); /* Purpose: Frees the memory for a Creo Simulate tabular function entry. Licensing Requirement: UNRECOGNIZED Input Arguments: entry - The function table entry. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. */ extern ProError ProMechtablentryProarrayFree (ProMechfuncTableEntry* array); /* Purpose: Frees the memory for a Creo Simulate tabular function entry array. Licensing Requirement: UNRECOGNIZED Input Arguments: array - The function table entry array. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. */ extern ProError ProMechtablentryIndependentvarGet (ProMechfuncTableEntry entry, double* value); /* Purpose: Obtains the independent variable value for this table entry. Licensing Requirement: UNRECOGNIZED Input Arguments: entry - The function table entry. Output Arguments: value - The value. Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. */ extern ProError ProMechfuncdataMirrordeflectionflagGet (ProMechFuncData data, ProBool * value); /* Purpose: Obtains the mirror flag value. Licensing Requirement: UNRECOGNIZED Input Arguments: data - The function data. Output Arguments: value - Mirror flag. Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. */ extern ProError ProMechfuncCsysSet (ProMechItem* item, ProMechGeomref csys); /* Purpose: Sets the reference csys (if this is the function of coordinates). Licensing Requirement: UNRECOGNIZED Input Arguments: item - The function. csys - The reference csys. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_CANT_ACCESS - Cannot access the object in the current mode. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. PRO_TK_INVALID_PTR - The Input ProMechItem Solid pointer is invalid. PRO_TK_CANT_MODIFY - Cannot modify the item. PRO_TK_GENERAL_ERROR - A general error is encountered. */ extern ProError ProMechfuncDescriptionSet (ProMechItem* item, ProComment description); /* Purpose: Sets the function description. Licensing Requirement: UNRECOGNIZED Input Arguments: item - The item. description - The description. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_CANT_ACCESS - Cannot access the object in the current mode. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. PRO_TK_INVALID_PTR - The Input ProMechItem Solid pointer is invalid. PRO_TK_CANT_MODIFY - Cannot modify the item. PRO_TK_GENERAL_ERROR - A general error is encountered. */ extern ProError ProMechfuncDataSet (ProMechItem* item, ProMechFuncData data); /* Purpose: Sets the value of the function data from the function item. Licensing Requirement: UNRECOGNIZED Input Arguments: item - The item. data - The function data. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_CANT_ACCESS - Cannot access the object in the current mode. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. PRO_TK_INVALID_PTR - The Input ProMechItem Solid pointer is invalid. PRO_TK_CANT_MODIFY - Cannot modify the item. PRO_TK_GENERAL_ERROR - A general error is encountered. */ extern ProError ProMechfuncVartypeSet (ProMechItem* item, ProMechfuncVarType value); /* Purpose: Sets the value of the function Var Type to the function item. Licensing Requirement: UNRECOGNIZED Input Arguments: item - The item. value - The function Var Type. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_CANT_ACCESS - Cannot access the object in the current mode. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. PRO_TK_INVALID_PTR - The Input ProMechItem Solid pointer is invalid. PRO_TK_CANT_MODIFY - Cannot modify the item. PRO_TK_GENERAL_ERROR - A general error is encountered. */ extern ProError ProMechfuncdataTypeSet (ProMechFuncData data, ProMechfuncType type); /* Purpose: Sets the function type. Licensing Requirement: UNRECOGNIZED Input Arguments: data - The function data. type - The type of function. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. */ extern ProError ProMechfuncdataExpressionSet (ProMechFuncData data, ProMechFuncExpression value); /* Purpose: Sets the symbolic expression for the function. Licensing Requirement: UNRECOGNIZED Input Arguments: data - The function data. value - The symbolic expression. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_INVALID_TYPE - The function is not of symbolic type. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. See Also: ProMechfuncdataTypeSet() */ extern ProError ProMechfuncdataIndependentvarSet (ProMechFuncData data, ProMechIndepvarType value); /* Purpose: Sets the type of independent variable for a tabular function. Licensing Requirement: UNRECOGNIZED Input Arguments: data - The function data. value - The independent variable type. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_INVALID_TYPE - The function is not of tabular type. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. See Also: ProMechfuncdataTypeSet() */ extern ProError ProMechfuncdataIndepvarinterpSet (ProMechFuncData data, ProMechfuncTableInterpType type); /* Purpose: Sets the type of interpolation for the function value. Valid only for a tabular function. Licensing Requirement: UNRECOGNIZED Input Arguments: data - The function data. type - The interpolation type for the function value. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_INVALID_TYPE - The function is not of tabular type. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. See Also: ProMechfuncdataTypeSet() */ extern ProError ProMechfuncdataFuncvalueinterpSet (ProMechFuncData data, ProMechfuncTableInterpType type); /* Purpose: Sets the type of interpolation for the independent variable. Valid only for a tabular function. Licensing Requirement: UNRECOGNIZED Input Arguments: data - The function data. type - The interpolation type for the independent variable. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_INVALID_TYPE - This function is not of tabular type. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. See Also: ProMechfuncdataTypeSet() */ extern ProError ProMechfuncdataFunctableSet (ProMechFuncData data, ProMechfuncTableEntry* value); /* Purpose: Sets the table entries for the tabular function. Licensing Requirement: UNRECOGNIZED Input Arguments: data - The function data. value - ProArray of table entries. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_INVALID_TYPE - The function is not of tabular type. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. PRO_TK_OUT_OF_MEMORY - There is not enough memory to perform the operation. */ extern ProError ProMechfuncdataAlloc (ProMechFuncData* data); /* Purpose: Allocates the memory for a function data handle. Licensing Requirement: UNRECOGNIZED Input Arguments: none Output Arguments: data - The function data. Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. PRO_TK_OUT_OF_MEMORY - There is not enough memory to perform the operation. */ extern ProError ProMechtablentryIndependentvarSet (ProMechfuncTableEntry entry, double value); /* Purpose: Sets the independent variable value for this table entry. Licensing Requirement: UNRECOGNIZED Input Arguments: entry - The function table entry. value - The value. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. */ extern ProError ProMechtablentryFunctionvalueSet (ProMechfuncTableEntry entry, double value); /* Purpose: Sets the function value in this table entry. Licensing Requirement: UNRECOGNIZED Input Arguments: entry - The function table entry. value - The value. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. */ extern ProError ProMechtablentryAlloc (ProMechfuncTableEntry* entry); /* Purpose: Allocates the memory for a Creo Simulate tabular function entry. Licensing Requirement: UNRECOGNIZED Input Arguments: none Output Arguments: entry - The function table entry. Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. PRO_TK_OUT_OF_MEMORY - There is not enough memory to perform the operation. */ extern ProError ProMechfuncdataMirrordeflectionflagSet (ProMechFuncData data, ProBool value); /* Purpose: Sets the mirror flag value. <B>Note</B>: Used only for PRO_MECH_FUNC_DEFLECTION type. Licensing Requirement: UNRECOGNIZED Input Arguments: data - The function data. value - Mirror flag. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments are invalid. PRO_TK_BAD_CONTEXT - The Creo Simulate session is not initialized. */ PRO_END_C_DECLS #endif /* PROMECHFUNCTION_H */