#ifndef PROMDL_H
#define PROMDL_H
/* Creo Parametric TOOLKIT declarations for ProSolid object related actions */
#include <ProObjects.h>
#include <ProVerstamp.h>
#include <ProSelection.h>
#include <ProSimprepdata.h>
#include <ProSurface.h>
PRO_BEGIN_C_DECLS
typedef struct pro_object_info
{
wchar_t name[80];
wchar_t type[10];
wchar_t path[PRO_PATH_SIZE];
wchar_t device[20];
wchar_t host[80];
int version;
int subclass;
} ProMdldata;
typedef struct promodel
{
wchar_t name[80];
wchar_t type[10];
} ProModel;
typedef struct
{
ProMdlName name;
ProMdlExtension type;
} ProMdlnameShortdata;
typedef enum
{
PRO_MDL_UNUSED = PRO_TYPE_UNUSED,
PRO_MDL_ASSEMBLY = PRO_ASSEMBLY,
PRO_MDL_PART = PRO_PART,
PRO_MDL_DRAWING = PRO_DRAWING,
PRO_MDL_3DSECTION = PRO_3DSECTION,
PRO_MDL_2DSECTION = PRO_2DSECTION,
PRO_MDL_LAYOUT = PRO_LAYOUT, /* (*.lay file) Notebook model.
Formerly known as Layout model */
PRO_MDL_DWGFORM = PRO_DWGFORM,
PRO_MDL_MFG = PRO_MFG,
PRO_MDL_REPORT = PRO_REPORT,
PRO_MDL_MARKUP = PRO_MARKUP,
PRO_MDL_DIAGRAM = PRO_DIAGRAM,
PRO_MDL_CE_SOLID = PRO_CE_SOLID, /* Layout model; NOTE: this type is read-only,
passing it back to Creo may lead to unpredictable behavior */
PRO_MDL_CE_DRAWING = PRO_CE_DRAWING, /* reserved for internal use */
PRO_MDL_DRW_SOLID = PRO_DRW_SOLID /* reserved for internal use */
} ProMdlType;
typedef enum
{
PROMDLSTYPE_NONE = 0,
PROMDLSTYPE_BULK, /* Bulk items */
PROMDLSTYPE_PART_SOLID, /* Solid Part */
PROMDLSTYPE_PART_COMPOSITE, /* Composite Part */
PROMDLSTYPE_PART_SHEETMETAL, /* Sheetmetal part */
PROMDLSTYPE_PART_CONCEPT_MODEL, /* Concept Model */
PROMDLSTYPE_ASM_DESIGN, /* Design Assembly */
PROMDLSTYPE_ASM_INTERCHANGE, /* Interchange Assembly (both func & subst) */
PROMDLSTYPE_ASM_INTCHG_SUBST, /* Substutional interchange */
PROMDLSTYPE_ASM_INTCHG_FUNC, /* Functional interchange */
PROMDLSTYPE_ASM_CLASS_CAV, /* CAV */
PROMDLSTYPE_ASM_VERIFY, /* Verify */
PROMDLSTYPE_ASM_PROCPLAN, /* Assembly Manufacturing plan */
PROMDLSTYPE_ASM_NCMODEL, /* NC Model */
PROMDLSTYPE_MFG_NCASM, /* Manufacturing Assembly */
PROMDLSTYPE_MFG_NCPART, /* Part Manufacturing */
PROMDLSTYPE_MFG_EXPMACH, /* Expert Machinist */
PROMDLSTYPE_MFG_CMM, /* CMM Manufacturing */
PROMDLSTYPE_MFG_SHEETMETAL,/* sheet metal */
PROMDLSTYPE_MFG_CAST, /* cast */
PROMDLSTYPE_MFG_MOLD, /* mold design */
PROMDLSTYPE_MFG_DIEFACE, /* diaface */
PROMDLSTYPE_MFG_HARNESS, /* Harness Manufacture */
PROMDLSTYPE_MFG_PROCPLAN, /* Manufacturing Process */
PROMDLSTYPE_REGEN_BACKUP, /* Regeneration Backup */
PROMDLSTYPE_OLD_REG_MFG, /* Regular Manufacturing (outdated) */
PROMDLSTYPE_ASM_CLASS_SCAN_SET, /* CAV scan set part */
PROMDLSTYPE_ASM_EXT_SIMP_REP, /* External Simplify Representation */
PROMDLSTYPE_ASM_FIGURE, /* Figure Assembly */
PROMDLSTYPE_MANIKIN_TOP, /* Top level Manikin assembly */
PROMDLSTYPE_MANIKIN_SEG, /* Sub-assembly/part Manikin */
PROMDLSTYPE_ASM_CONFIGURE_ASM, /* Configure Assembly */
PROMDLSTYPE_CE_SOLID,
PROMDLSTYPE_CREO_INTRCH, /* Creo Container Model (interchange) */
PROMDLSTYPE_CREO_CNF_FACTORY, /* Creo conf. structure (variation factory) */
PROMDLSTYPE_ECAD_ASM, /* Ecad assembly */
PROMDLSTYPE_ECAD_BOARD_PART, /* Ecad board part */
PROMDLSTYPE_TRAY_ASSEM, /* Tray Assembly */
PROMDLSTYPE_INSTR_ASM, /* Instrumented Assembly */
PROMDLSTYPE_PART_CMPST /* Composite Part Q11*/
} ProMdlsubtype;
typedef enum
{
PRO_MDLFILE_UNUSED = PRO_TYPE_UNUSED,
PRO_MDLFILE_ASSEMBLY = PRO_MDL_ASSEMBLY,
PRO_MDLFILE_PART = PRO_MDL_PART,
PRO_MDLFILE_DRAWING = PRO_MDL_DRAWING,
PRO_MDLFILE_3DSECTION = PRO_MDL_3DSECTION,
PRO_MDLFILE_2DSECTION = PRO_MDL_2DSECTION,
PRO_MDLFILE_NOTEBOOK = PRO_MDL_LAYOUT,
PRO_MDLFILE_DWGFORM = PRO_MDL_DWGFORM,
PRO_MDLFILE_MFG = PRO_MDL_MFG,
PRO_MDLFILE_REPORT = PRO_MDL_REPORT,
PRO_MDLFILE_MARKUP = PRO_MDL_MARKUP,
PRO_MDLFILE_DIAGRAM = PRO_MDL_DIAGRAM,
PRO_MDLFILE_CE_DRAWING = PRO_MDL_CE_DRAWING, /* reserved for internal use */
PRO_MDLFILE_CE_SOLID = PRO_MDL_CE_SOLID, /* Layout model; NOTE: this type is read-only,
passing it back to Creo may lead to unpredictable behavior */
PRO_MDLFILE_CATIA_MODEL = PRO_CATIA_MODEL,
PRO_MDLFILE_UG = PRO_UG,
PRO_MDLFILE_SW_PART = PRO_SW_PART,
PRO_MDLFILE_SW_ASSEM = PRO_SW_ASSEM,
PRO_MDLFILE_CATIA_PART = PRO_CATIA_PART,
PRO_MDLFILE_CATIA_PRODUCT = PRO_CATIA_PRODUCT,
PRO_MDLFILE_CATIA_CGR = PRO_CATIA_CGR,
PRO_MDLFILE_CC_ASSEMBLY = PRO_CC_ASSEMBLY,
PRO_MDLFILE_CC_PART = PRO_CC_PART,
PRO_MDLFILE_INVENTOR_PART = PRO_INVENTOR_PART,
PRO_MDLFILE_INVENTOR_ASSEM = PRO_INVENTOR_ASSEM
} ProMdlfileType;
typedef enum
{
PRO_RETRIEVE_OP_NO = 0,
PRO_RETRIEVE_OP_NORMAL,
PRO_RETRIEVE_OP_SIMP_REP,
PRO_RETRIEVE_OP_VIEW_ONLY
} ProFileRetrieveOpt;
/*===========================================================================*/
extern ProError ProMdlInit (ProName name,
ProMdlType type,
ProMdl *p_mdl_handle);
/*
Purpose: <b>Note:</b> This function is deprecated Use ProMdlnameInit
instead. Initializes the <i>ProMdl</i> handle.
Input Arguments:
name - The model name
type - The model type
Output Arguments:
p_mdl_handle - The handle to initialize
Return Values:
PRO_TK_NO_ERROR - The function successfully initialized the handle.
PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid.
PRO_TK_E_NOT_FOUND - Unable to find the required model.
*/
extern ProError ProMdlnameInit ( ProMdlName name,
ProMdlfileType type,
ProMdl *p_mdl_handle);
/*
Purpose: Initializes the <i>ProMdl</i> handle. <b>Note:</b> In Creo 3 this
function does not support names longer than 80 characters. It will
return PRO_TK_BAD_INPUTS for longer names. The support for longer
names will be added in a future release.
Input Arguments:
name - The model name
type - The model type
Output Arguments:
p_mdl_handle - The handle to initialize
Return Values:
PRO_TK_NO_ERROR - The function successfully initialized the handle.
PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid.
PRO_TK_E_NOT_FOUND - Unable to find the required model.
*/
extern ProError ProMdlnameRename( ProMdl handle,
ProMdlName new_name);
/*
Purpose: Renames the specified model. <b>Note: </b> In Creo 3 this function
does not differ in behavior from superseded ProMdlRename. In
particular, new_name can be only of ProName length. This function
is reserved for future use.
Input Arguments:
handle - The model handle
new_name - The new name to assign to the model
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully renamed the model.
PRO_TK_BAD_INPUTS - One or more of the arguments are invalid.
PRO_TK_BAD_CONTEXT - The function is not available in Design Test Mode.
PRO_TK_UNSUPPORTED - Unsupported model. For instance, models which come
from Multi-CAD model approach, are not supported
in this release.
PRO_TK_NO_PERMISSION - The function does not have permission to operate
on this model.
See Also:
ProMdlCurrentGet()
ProMdlSave()
ProMdlModificationVerify()
*/
extern ProError ProMdlnameCopy( ProMdl handle,
ProMdlName new_name,
ProMdl *p_new_handle);
/*
Purpose: Copies the specified model to the new one. <b>Note: </b> In Creo 3
this function does not differ in behavior from superseded
ProMdlCopy. In particular, new_name can be only of ProName length.
This function is reserved for future use.
Input Arguments:
handle - The handle of the model to be copied.
new_name - The new name.
Output Arguments:
p_new_handle - The new model handle to be initialized. This can be
NULL.
Return Values:
PRO_TK_NO_ERROR - The function successfully copied the model.
PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid.
PRO_TK_NO_PERMISSION - The function does not have permission to operate
on this model.
PRO_TK_UNSUPPORTED - Unsupported model. For instance, models which come
from Multi-CAD model approach, are not supported
in this release.
*/
extern ProError ProMdlSave (ProMdl handle);
/*
Purpose: Stores the specified model to disk.
Input Arguments:
handle - The model to store. ProMdlDisplay should be called before this
so that graphics/preview data is savedn case of drawings,
sketch etc.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully stored the model along with
all its subordinate models, according to their
modification status and the configuration option
'save_objects'.
PRO_TK_CANT_WRITE - Failed to save the model or at least one of its
subordinate models due to unresolved
non-overridable conflicts in the target location.
To obtain the exact list of models that were not
saved a notification on PRO_MDL_DBMS_FAILURE event
can be applied.
PRO_TK_GENERAL_ERROR - The entire operation failed.
PRO_TK_BAD_INPUTS - The argument is invalid.
PRO_TK_NO_PERMISSION - The function does not have permission to operate
on this model.
PRO_TK_BAD_CONTEXT - The function is not available in Design Test Mode.
See Also:
ProMdlCurrentGet()
*/
extern ProError ProMdlnameBackup (ProMdl handle,
ProPath backup_dir);
/*
Purpose: Makes a backup of an object in memory to a disk in a specified
directory. This function is equivalent to the Creo Parametric
command File, Backup.
<p> You can pass NULL as the handle, in which case the
<i>backup_dir</i> path must contain filename of object in session
to be backed up.
<p> If the <i>backup_dir</i> is empty, the backup of the object is
made in the current directory. NOTE 1: The name of the file
created is the same as the model. NOTE 2: If successful, future
changes to the model will be saved to the backup directory.
<b>Note:</b> In Creo 3 this function does not support names longer
than 80 characters. It will return PRO_TK_BAD_INPUTS for longer
names. The support for longer names will be added in a future
release.
Input Arguments:
handle - The model to back up
backup_dir - The backup path information
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully made a backup of the model.
PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid.
PRO_TK_INVALID_PTR - The handle is not correct, or the name and type
are invalid (for example, the object is not in
memory).
PRO_TK_INVALID_TYPE - The specified type is invalid.
PRO_TK_CANT_WRITE - The system could not write to the specified
directory.
PRO_TK_INVALID_DIR - The specified directory (path) is invalid.
PRO_TK_GENERAL_ERROR - A general error occurred and the function
failed.
PRO_TK_NO_PERMISSION - The function does not have permission to operate
on this model.
PRO_TK_BAD_CONTEXT - The function is not available in Design Test Mode.
*/
extern ProError ProMdlnameRetrieve (ProFamilyMdlName name,
ProMdlfileType type,
ProMdl *p_handle);
/*
Purpose: Retrieves the specified model and initializes the handle.
<p> The function retrieves the model into memory, but neither
displays the model nor makes it the current model.
<p> If retrieving an assembly, and errors occur in regeneration,
the assembly will include suppressed features. The function
ProSolidRetrievalErrorsGet identifies if errors occurred.
<b>Note:</b> In Creo 3 this function does not support names longer
than 80 characters. It will return PRO_TK_BAD_INPUTS for longer
names. The support for ProFamilyMdlName will be added in a future
release.
Input Arguments:
name - The name of the model to retrieve
type - The type of the model to retrieve
Output Arguments:
p_handle - The handle to the retrieved model
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the model.
PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid.
PRO_TK_E_NOT_FOUND - The model was not found in the current directory.
PRO_TK_NO_PERMISSION - The function does not have permission to operate
on this model.
PRO_TK_BAD_CONTEXT - The Multi-CAD model is not being retrieved from an
active Windchill server.
See Also:
ProSolidRetrievalErrorsGet()
*/
extern ProError ProMdlMultipleRetrieve ( ProName* names, ProBoolean ui_flag);
/*
Purpose: <b>Note:</b> Use of this function is deprecated due to the limit
on the length of the model names.
<p> Retrieves the models specified in the names list and
initializes their handles.
<p> If retrieving an assembly, and errors occur in regeneration,
the assembly will include suppressed features. The function
ProSolidRetrievalErrorsGet identifies if errors occurred.
Input Arguments:
names - A list of the model names to be retrieved. Names must include
type suffix (e.g., ".prt"); version numbers will be ignored.
ui_flag - When true, this flag indicates that retrieved models will be
displayed.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved all of the
models.
PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid.
PRO_TK_NO_PERMISSION - The function does not have permission to operate
on these models.
Any positive integer - Some retrievals failed. The value of this error
indicates how many of the input objects failed
to retrieve.
See Also:
ProSolidRetrievalErrorsGet()
*/
extern ProError ProMdlErase (ProMdl handle);
/*
Purpose: Erases the specified model from memory. When erasing the active
model, graphic display is cleared immediately, but data is not
cleared until the next command gets processed.
<p> <b> NOTE:
<p> </b> The erasing action caused by this function will be
finished only after the execution control is returned to Creo
Parametric. Therefore, calling other functions after this function
without returning the control may lead to an unpredicted behavior.
Input Arguments:
handle - The model to erase
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully erased the model.
PRO_TK_BAD_INPUTS - The argument is invalid.
PRO_TK_E_DEADLOCK - The Creo Parametric user interface is not prepared
to handle this request (because it is blocked by
another process such as an OLE container
activation).
*/
extern ProError ProMdlEraseAll(
ProMdl model);
/*
Purpose: Erases a model and all the models that it uses, except those also
used by other models in session. For example, it erases
recursively all subassemblies of an assembly, and all solids
referenced from a drawing. It also works in cases where some of
the models to be erased have mutual dependencies. When erasing the
active model, graphic display is cleared immediately, but data is
not cleared until the next command gets processed.
<p> <b> NOTE:
<p> </b> The erasing action caused by this function will be
finished only after the execution control is returned to Creo
Parametric. Therefore, calling other functions after this function
without returning the control may lead to an unpredicted behavior.
Input Arguments:
model - The model to be erased
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR PRO_TK_BAD_INPUTS
PRO_TK_BAD_CONTEXT - Current User Interface context does not allow
erasure of models (for example, when the Erase
button is grayed out).
PRO_TK_E_IN_USE - The model could not be erased because it is in use,
for example by another model in the session.
*/
extern ProError ProMdlEraseNotDisplayed( void );
/*
Purpose: Erases all models not referenced in windows from session.
Input Arguments:
none
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully erased the models.
PRO_TK_E_BUSY - Creo Parametric is in a state where erase isn't
allowed.
PRO_TK_GENERAL_ERROR - The function failed.
*/
extern ProError ProMdlDelete (ProMdl handle);
/*
Purpose: Deletes the specified model from memory and disk.
Input Arguments:
handle - The model to delete
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully deleted the model.
PRO_TK_BAD_INPUTS - The argument is invalid.
PRO_TK_BAD_CONTEXT - The function is not available in Design Test Mode.
*/
extern ProError ProMdlfileMdlnameCopy ( ProMdlfileType mdl_type,
ProMdlName from_name,
ProMdlName to_name );
/*
Purpose: Copies the disk file for a specified object to another named file.
<b>Note: </b> In Creo 3 this function does not differ in behavior
from superseded ProMdlfileCopy. In particular, from_name and
to_name can be only of ProName length. This function is reserved
for future use.
Input Arguments:
mdl_type - The model type
from_name - The model to be copied from
to_name - The model copied to
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully copied the file.
PRO_TK_BAD_INPUTS - One or more of the arguments are invalid.
PRO_TK_GENERAL_ERROR - A general error occurred and the function
failed.
PRO_TK_NO_PERMISSION - The function does not have permission to operate
on this model.
PRO_TK_UNSUPPORTED - Unsupported model. For instance, models which come
from Multi-CAD model approach, are not supported
in this release.
*/
extern ProError ProMdlDisplay ( ProMdl model );
/*
Purpose: Displays the specified model in the current view. <b>Note</b>:
<ul>
<li>If no model is displayed, the specified model is placed in the
base window.
<li>If the specified model has been assigned a new window, the
model will be displayed in the new window.
</ul> If <i>model</i> is NULL, the function displays the object in
the current window. The valid types of model that can be displayed
are as follows:
<ul>
<li>PRO_MDL_ASSEMBLY
<li>PRO_MDL_PART
<li>PRO_MDL_2DSECTION
<li>PRO_MDL_DRAWING
<li>PRO_MDL_LAYOUT
<li>PRO_MDL_DWGFORM
<li>PRO_MDL_MFG
<li>PRO_MDL_REPORT
<li>PRO_MDL_MARKUP
<li>PRO_MDL_DIAGRAM
</ul> <b>Note: </b>Calling this function will update the display,
but may not activate the UI. To achieve it, the model window
should be activated (for instance, by the user).
Input Arguments:
model - The model to display
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully displayed the model.
PRO_TK_E_NOT_FOUND - The <i>model</i> is NULL, and there is no current
object.
PRO_TK_INVALID_PTR - The specified model is not in memory.
PRO_TK_GENERAL_ERROR - There was a general error and the function
failed.
PRO_TK_INVALID_TYPE - You specified an invalid model type.
*/
extern ProError ProMdlNameGet (ProMdl handle,
ProName name);
/*
Purpose: <b>Note:</b> This function is deprecated Use ProMdlMdlnameGet
instead. Retrieves the name of the specified model.
Input Arguments:
handle - The model handle.
Output Arguments:
name - The address of the memory area to be filled in with the model
name. You must allocate the space for this argument.
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the name.
PRO_TK_BAD_INPUTS - The input argument is invalid.
*/
extern ProError ProMdlMdlnameGet (ProMdl handle,
ProMdlName name);
/*
Purpose: Retrieves the name of the specified model. <b>Note:</b> In Creo 3
this function does not support names longer than 80 characters. It
will return PRO_TK_BAD_INPUTS for longer names. The support for
ProMdlName will be added in a future release.
Input Arguments:
handle - The model handle.
Output Arguments:
name - The address of the memory area to be filled in with the model
name. Free this argument using ProWstringFree.
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the name.
PRO_TK_BAD_INPUTS - The input argument is invalid.
*/
extern ProError ProMdlDisplaynameGet (ProMdl handle,
ProBoolean include_ext,
ProMdlFileName display_name);
/*
Purpose: Retrieves the display name of the model. <b>Note:</b> This name
may be different from the name returned by ProMdlMdlnameGet. For
example, when the active model is an instance of a native model,
the display name will be the instance name. For instances or
configurations of non-native models, the display name will consist
of the model name and the instance name or configuration name.
<b>Note:</b> In Creo 3 this function does not support names longer
than 80 characters. It will return PRO_TK_BAD_INPUTS for longer
names. The support for ProMdlFileName will be added in a future
release.
Input Arguments:
handle - The model handle.
include_ext - Indicates whether the name should include the file
extension. Use PRO_B_TRUE to use extension. Otherwise,
use PRO_B_FALSE.
Output Arguments:
display_name - The display name of the model.
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the name.
PRO_TK_BAD_INPUTS - The input argument is invalid.
*/
extern ProError ProMdlExtensionGet (ProMdl handle, ProMdlExtension ext);
/*
Purpose: Retrieves the file extension from which the specified model was
retrieved.
Input Arguments:
handle - The model handle.
Output Arguments:
ext - Buffer where file extension will be copied into.
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the information.
PRO_TK_BAD_INPUTS - The input argument is invalid.
PRO_TK_GENERAL_ERROR - The information could not be obtained.
*/
extern ProError ProMdlDirectoryPathGet (ProMdl handle, ProPath dir_path);
/*
Purpose: Retrieves path to the directory where the model will be saved. It
is the target (not origin) home directory of the model.
Input Arguments:
handle - The model handle.
Output Arguments:
dir_path - Path to the directory where the model will be saved.
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the information.
PRO_TK_BAD_INPUTS - The input argument is invalid.
PRO_TK_GENERAL_ERROR - The information could not be obtained.
*/
extern ProError ProMdlCurrentGet (ProMdl *p_handle);
/*
Purpose: Initializes the <i>p_handle</i> with the current Creo Parametric
object.
Input Arguments:
none
Output Arguments:
p_handle - The model handle
Return Values:
PRO_TK_NO_ERROR - The function successfully initialized the handle.
PRO_TK_BAD_CONTEXT - The current Creo Parametric object is not set.
*/
extern ProError ProMdlModificationVerify (ProMdl handle,
ProBoolean *p_modified);
/*
Purpose: Verifies whether the specified model has been modified since the
last save.
Input Arguments:
handle - The <i>ProMdl</i> to verify.
Output Arguments:
p_modified - This is PRO_B_TRUE if the model has been modified.
Otherwise, this is PRO_B_FALSE.
Return Values:
PRO_TK_NO_ERROR - The function successfully verified the model.
PRO_TK_BAD_INPUTS - The input argument is invalid.
*/
extern ProError ProMdlVisibleModificationVerify (ProMdl handle,
ProBoolean *p_modified);
/*
Purpose: Verifies whether the visible model of specified model has been
modified since the last save.
Input Arguments:
handle - The <i>ProMdl</i> to verify.
Output Arguments:
p_modified - This is PRO_B_TRUE if the model has been modified.
Otherwise, this is PRO_B_FALSE.
Return Values:
PRO_TK_NO_ERROR - The function successfully verified the model.
PRO_TK_BAD_INPUTS - The input argument is invalid.
*/
extern ProError ProMdlVerstampGet (ProMdl model,
ProWVerstamp *p_stamp);
/*
Purpose: Retrieves the version stamp of the specified model.
Input Arguments:
model - The model from which to retrieve the stamp.
Output Arguments:
p_stamp - The version stamp. The function allocates the memory for the
version stamp. To free the memory, call
<b>ProVerstampFree()</b>.
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the stamp.
PRO_TK_BAD_INPUTS - The input argument is invalid.
See Also:
ProVerstampFree()
*/
extern ProError ProMdlTypeGet ( ProMdl model,
ProMdlType* p_type );
/*
Purpose: Returns the type of model (such as PRO_PART or PRO_ASSEMBLY).
Input Arguments:
model - A model pointer whose type needs to returned.
Output Arguments:
p_type - The type of model. If the function fails, this is set to
PRO_TYPE_UNUSED.
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the type
PRO_TK_BAD_INPUTS - The input argument is invalid.
*/
extern ProError ProMdlSubtypeGet( ProMdl model,
ProMdlsubtype *subtype);
/*
Purpose: Returns the subtype of a model
Input Arguments:
model - A model pointer whose subtype needs to returned
Output Arguments:
subtype - The type of model. If the function fails, this is set to
PROMDLSTYPE_NONE.
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the type
PRO_TK_BAD_INPUTS - The input argument is invalid.
PRO_TK_BAD_CONTEXT - the model has no subtype
*/
extern ProError ProFileSubtypeGet(ProPath file, ProMdlfileType *file_type,
ProMdlType *type, ProMdlsubtype *subtype);
/*
Purpose: Returns the file_type, model_type and/or subtype of a file. For
native Creo models, file_type == type.
Input Arguments:
file - The path to the file.
Output Arguments:
file_type - The type of the file.
type - The type of the model the file will be in Creo session.
subtype - The subtype of the model, PROMDLSTYPE_NONE for types which do
not have subtypes. Each of these can be NULL.
Return Values:
PRO_TK_NO_ERROR - The values were successfully determined.
PRO_TK_BAD_INPUTS - file was NULL, empty, or invalid.
PRO_TK_NOT_EXIST - The file could not be found.
PRO_TK_CANT_OPEN - The file could not be opened, or could not be read.
*/
extern ProError ProMdlIdGet ( ProMdl model,
int* p_id );
/*
Purpose: Returns the identifier of the model.
Input Arguments:
model - A model pointer whose identifier needs to returned.
Output Arguments:
p_id - The identifier of the model. If the function fails, this is set
to PRO_VALUE_UNUSED.
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the identifier.
PRO_TK_BAD_INPUTS - The input argument is invalid.
*/
extern ProError ProMdlDeclaredDataList (ProMdl model,
ProMdlnameShortdata **p_declared_list,
ProMdlfileType **model_file_types,
int* p_count);
/*
Purpose: Finds all the first-level objects declared for the specified
object. For example, if notebook A is declared in notebook B and
notebook B is declared in part P, only notebook B will be
returned. <b>Note:</b> In Creo 3 this function does not support
names longer than 80 characters. It will return PRO_TK_BAD_INPUTS
for longer names. The support for longer names will be added in a
future release.
Input Arguments:
model - The part, assembly or notebook. Cannot be NULL.
Output Arguments:
p_declared_list - A <i>ProArray</i> of <i>ProModel</i> declared object
names and types. Call ProArrayFree to free this
memory. Cannot be NULL.
model_file_types - A ProArray of dependency types, same length as
p_dependencies_list and in the same order of
dependencies. Cannot be NULL.
p_count - The number of objects in <i>p_declared_list</i>. Cannot be
NULL.
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the information.
PRO_TK_E_NOT_FOUND - No objects were found.
PRO_TK_BAD_INPUTS - The input argument is invalid.
See Also:
ProArrayFree()
*/
extern ProError ProMdlDependenciesDataList (ProMdl model,
ProMdlnameShortdata **p_dependencies_list,
ProMdlfileType **model_file_types,
int* p_count );
/*
Purpose: Finds the first-level dependencies for an object in the Creo
Parametric workspace. Be sure to cleanup dependencies database by
calling ProMdlDependenciesCleanup() to ensure up to date results.
<b>Note:</b> The returned dependencies are not sorted.
<b>Note:</b> In Creo 3 this function does not support names longer
than 80 characters. It will return PRO_TK_BAD_INPUTS for longer
names. The support for longer names will be added in a future
release.
Input Arguments:
model - A valid model pointer. Cannot be NULL.
Output Arguments:
p_dependencies_list - A ProArray of dependencies. Call ProArrayFree to
free this memory. Cannot be NULL.
model_file_types - A ProArray of dependency types, same length as
p_dependencies_list and in the same order of
dependencies. Cannot be NULL.
p_count - The number of objects in the <i>p_dependencies_list</i> (or
less if returns PRO_TK_BAD_CONTEXT). Cannot be NULL.
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the information.
PRO_TK_E_NOT_FOUND - No dependencies were found.
PRO_TK_BAD_CONTEXT - Some dependencies could not be processed and were
skipped. In this case p_count will be less than
the length of both ProArrays.
PRO_TK_BAD_INPUTS - The input argument is invalid.
See Also:
ProArrayFree()
*/
extern ProError ProMdlDependenciesCleanup (ProMdl p_model);
/*
Purpose: Forces cleaning up dependencies database of an object in the Creo
Parametric workspace. This function should not be called during
reference altering operations like feature create, edit definition
or restructure.
Input Arguments:
p_model - A valid model pointer.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully cleaned up the database.
PRO_TK_BAD_INPUTS - The input argument is invalid.
PRO_TK_NOT_VALID - The supplied solid is in the state, not allowing to
cleanup dependencies i.e. inside feature creation.
*/
extern ProError ProMdlWindowGet ( ProMdl mdl,
int* window_id );
/*
Purpose: Finds the window with the specified model as the top-level object.
Input Arguments:
mdl - The model that is a top-level object
Output Arguments:
window_id - The window identifier
Return Values:
PRO_TK_NO_ERROR - The function successfully found the window.
PRO_TK_E_NOT_FOUND - The function was not able to find the window.
*/
extern ProError ProSessionMdlList (ProMdlType model_type,
ProMdl **p_model_array,
int *p_count);
/*
Purpose: Retrieves the list of objects of the specified type in the Creo
Parametric workspace.
Input Arguments:
model_type - A valid model type (PRO_PART, PRO_ASSEMBLY, and so on).
Output Arguments:
p_model_array - An array of objects found. The function allocates the
memory for this argument. To free it, call the function
<b>ProArrayFree()</b>.
p_count - The number of models in <i>p_model_array</i>.
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the information.
PRO_TK_E_NOT_FOUND - No objects were found in the workspace.
PRO_TK_BAD_INPUTS - The input argument is invalid.
See Also:
ProArrayFree()
*/
extern ProError ProMdlToModelitem ( ProMdl mdl,
ProModelitem* p_model_item );
/*
Purpose: Converts a <i>ProMdl</i> to a <i>ProModelitem</i>.
Input Arguments:
mdl - The handle to a valid model
Output Arguments:
p_model_item - The <i>ProModelitem</i>
Return Values:
PRO_TK_NO_ERROR - The function was successful.
PRO_TK_BAD_INPUTS - An argument is NULL.
PRO_TK_INVALID_PTR - The handle is invalid.
*/
extern ProError ProTreetoolRefresh (ProMdl model);
/*
Purpose: Refreshes the display of the model tree.
Input Arguments:
model - The model whose tree is to be refreshed
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully refreshed the tree.
PRO_TK_BAD_INPUTS - The input argument is invalid.
PRO_TK_E_NOT_FOUND - The model tree is not present.
*/
typedef ProError (*ProModelSavePreAction) (ProPath r_model_path);
/*
Purpose: This is the notification function called before saving a model.
<p> Users must supply this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MODEL_SAVE_PRE. If the model name is initialized by this
function, the saving utility will not interactively prompt for the
model name to be saved.
<p> If this function returns an error, the saving action will be
aborted by Creo Parametric.
Input Arguments:
none
Output Arguments:
r_model_path - The user-supplied function should initialize this
variable to the path to the model to be saved. If it is
not initialized, the system prompts for the model path
interactively.
Return Values:
PRO_TK_NO_ERROR - Successful exit from this function.
Other - An error was encountered. Model saving will be stopped.
See Also:
ProNotificationSet()
*/
typedef ProError (*ProModelSavePreAllAction) (ProMdl p_mdl);
/*
Purpose: This is the notification function called before saving each model.
<p> Users must supply this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MODEL_SAVE_PRE_ALL.
<p> If this function returns an error, the saving action will be
aborted by Creo Parametric for this model. This is called for
kinds of user actions (Save A Copy, Checkin) which do NOT call
ProModelSavePreAction. May be called more than once due to
conflict resolution.
Input Arguments:
p_mdl - The model being saved.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - Successful exit from this function.
Other - An error was encountered. Model saving will be stopped.
See Also:
ProNotificationSet()
*/
typedef ProError (*ProModelSavePostAction) (ProPath model_path,
ProMdlfileType model_file_type);
/*
Purpose: This is the notification function called after an explicit save of
a model.
<p> The user supplies this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MODEL_SAVE_POST.
<p> <b> NOTE:
<p> </b> This function is not called on saves of models dependent
upon the model explicitly called.
Input Arguments:
model_path - Path to the model that was just saved
model_file_type - Model file type that was just saved
Output Arguments:
none
Return Values:
Return values are not interpreted by Creo Parametric.
See Also:
ProNotificationSet, ProModelSavePostAllAction()
*/
typedef ProError (*ProModelSavePostAllAction) (ProPath model_path,
ProMdlfileType model_file_type);
/*
Purpose: This is the notification function called after a save of any
model, including models dependant on the model explicitly called.
This function differs from <b>ProModelSavePostAction()</b> in that
it is called only once, even if a top-level model save causes a
recursive saving action.
<p> The user supplies this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MODEL_SAVE_POST_ALL.
Input Arguments:
model_path - Path the top-level model that was just saved
model_file_type - Model file type that was just saved
Output Arguments:
none
Return Values:
Return values are not interpreted by Creo Parametric.
See Also:
ProNotificationSet, ProModelSavePostAction()
*/
typedef ProError (*ProModelCopyPreAction) (ProMdl *r_from, ProPath r_to);
/*
Purpose: This is the notification function called before copying a model.
<p> Users must supply this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MODEL_COPY_PRE.
<p> If the function supplies the model to be copied
(<i>r_from</i>) and the model path to be copied to (<i>r_to</i>),
the interactive prompting of this information is skipped. If this
function returns an error, the copying action will be aborted by
Creo Parametric.
Input Arguments:
none
Output Arguments:
r_from - The data of the model to be copied
r_to - The model path to which to copy
Return Values:
PRO_TK_NO_ERROR - Successful exit, proceed.
Other - An internal error was encountered, so the copy action will be
stopped.
See Also:
ProNotificationSet()
*/
typedef ProError (*ProModelCopyPostAction) (ProMdl from, ProPath to, ProMdlfileType to_model_type);
/*
Purpose: This is the notification function called after an explicit copy of
a model.
<p> The user supplies this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MODEL_COPY_POST.
<p> <b> NOTE:
<p> </b> This function is not called on copies of models dependent
upon the model explicitly called.
Input Arguments:
from - The model data from which the copy was made
to - The path of model to which the copy was made
to_model_type - The type of model to which the copy was made
Output Arguments:
none
Return Values:
Return values are not interpreted by Creo Parametric.
See Also:
ProNotificationSet, ProModelCopyPostAllAction()
*/
typedef ProError (*ProModelCopyPostAllAction) (ProMdl from, ProPath to, ProMdlfileType to_model_type);
/*
Purpose: This is the notification function called after a copy of any
model, including models dependant on the model explicitly called.
This function differs from <b>ProMdlCopyPostAction()</b> in that
it is called only once, even if a top-level model save causes a
recur- sive saving action.
<p> The user supplies this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MODEL_COPY_POST_ALL.
Input Arguments:
from - The top-level model data from which the copy was made
to - The model to which the copy was made
to_model_type - The type of model to which the copy was made
Output Arguments:
none
Return Values:
Return values are not interpreted by Creo Parametric.
See Also:
ProNotificationSet, ProModelCopyPostAction()
*/
typedef ProError (*ProModelRenamePreAction) (ProMdl *r_from,
ProMdlFileName r_to);
/*
Purpose: This is the notification function called before renaming a model.
<p> Users must supply this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MODEL_RENAME_PRE.
<p> If the function does not supply the model to be renamed
(<i>r_from</i>) and the model file name to be renamed to
(<i>r_to</i>), the system prompts interactively for this
information.
<p> If this function returns an error, the renaming action will be
aborted by Creo Parametric.
Input Arguments:
none
Output Arguments:
r_from - The model to be renamed
r_to - The new name of the model
Return Values:
PRO_TK_NO_ERROR - Successful exit, proceed.
Other - An internal error was encountered, so the rename action will be
stopped.
See Also:
ProNotificationSet()
*/
typedef ProError (*ProModelRenamePostAction) (ProMdl model, ProMdlFileName old_name);
/*
Purpose: This is the notification function called after renaming a model.
<p> Users must supply this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MODEL_RENAME_POST.
Input Arguments:
model - The data of the renamed model
old_name - The old name of the model that was renamed
Output Arguments:
none
Return Values:
Return values are not interpreted by Creo Parametric.
See Also:
ProNotificationSet()
*/
typedef ProError (*ProModelRenamePostAllAction) (ProMdl model,
ProMdlFileName old_name);
/*
Purpose: This is the notification function called after renaming each
model.
<p> Users must supply this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MODEL_RENAME_POST_ALL.
Input Arguments:
model - The data of the renamed model
old_name - The old name of the model that was renamed
Output Arguments:
none
Return Values:
Return values are not interpreted by Creo Parametric.
See Also:
ProNotificationSet()
*/
typedef ProError (*ProMdlErasePreAction) ( void );
/*
Purpose: This is the notification function called before erasing a model.
<p> Users must supply this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MDL_ERASE_PRE.
<p> If this function returns an error, the erasing action will be
aborted by Creo Parametric.
Input Arguments:
none
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - Successful exit from this function.
Other - An error was encountered. Model erasing will be stopped.
See Also:
ProNotificationSet()
*/
typedef ProError (*ProModelErasePostAction) (ProMdl p_erased_mdl);
/*
Purpose: This is the notification function called after an explicit erase
of a model.
<p> The user supplies this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MODEL_ERASE_POST.
<p> <b> NOTE:
<p> </b> This function is not called on erases of models dependent
upon the model explicitly called.
Input Arguments:
p_erased_mdl - The information for the model that was just erased
Output Arguments:
none
Return Values:
Return values are not interpreted by Creo Parametric.
See Also:
ProNotificationSet, ProModelErasePostAllAction()
*/
typedef ProError (*ProModelErasePostAllAction) (ProMdl p_model_data);
/*
Purpose: This is the notification function called after an erase of any
model, including models dependant on the model explicitly called.
This function differs from <b>ProModelErasePostAction()</b> in
that it is called only once, even if a top-level model save causes
a recursive saving action.
<p> The user supplies this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MODEL_ERASE_POST_ALL.
Input Arguments:
p_model_data - The information for the top-level model that was just
erased
Output Arguments:
none
Return Values:
Return values are not interpreted by Creo Parametric.
See Also:
ProNotificationSet, ProModelErasePostAction()
*/
typedef ProError (*ProMdlPurgePreAction) (ProModel *r_model_name);
/*
Purpose: <b>Note:</b> This function is deprecated. Use
ProModelPurgePreAction instead. This is the notification function
called before purging a model.
<p> Users must supply this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MDL_PURGE_PRE.
<p> If the model name is initialized by this function, the purging
utility will not interactively prompt for the model name to be
purged.
<p> If this function returns an error, the purging action will be
aborted by Creo Parametric.
Input Arguments:
none
Output Arguments:
r_model_name - The user-supplied function should initialize this
variable to the model name to be purged. If this is not
initialized, the system prompts for the model name
interactively.
Return Values:
PRO_TK_NO_ERROR - Successful exit from this function.
Other - An error was encountered. Model purging will be stopped.
See Also:
ProNotificationSet()
*/
typedef ProError (*ProModelPurgePreAction) (ProMdlName r_model_name, ProMdlExtension mdl_ext);
/*
Purpose: This is the notification function called before purging a model.
<p> Users must supply this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MODEL_PURGE_PRE.
<p> If the model name is initialized by this function, the purging
utility will not interactively prompt for the model name to be
purged.
<p> If this function returns an error, the purging action will be
aborted by Creo Parametric.
Input Arguments:
none
Output Arguments:
r_model_name - The user-supplied function should initialize this
variable to the model name to be purged. If this is not
initialized, the system prompts for the model name
interactively.
mdl_ext - The model type extension
Return Values:
PRO_TK_NO_ERROR - Successful exit from this function.
Other - An error was encountered. Model purging will be stopped.
See Also:
ProNotificationSet()
*/
typedef ProError (*ProMdlPurgePostAction) (ProModel *p_purged_mdl);
/*
Purpose: <b>Note:</b> This function is deprecated. Use
ProModelPurgePostAction instead. This is the notification function
called after purging a model.
<p> Users must supply this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MDL_PURGE_POST.
Input Arguments:
p_purged_mdl - The information for the model that was just purged
Output Arguments:
none
Return Values:
Return values are not interpreted by Creo Parametric.
See Also:
ProNotificationSet()
*/
typedef ProError (*ProModelPurgePostAction) (ProMdlName r_model_name, ProMdlExtension mdl_ext);
/*
Purpose: This is the notification function called after purging a model.
<p> Users must supply this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MODEL_PURGE_POST.
Input Arguments:
r_model_name - The information for the model that was just purged
mdl_ext - The model type extension
Output Arguments:
none
Return Values:
Return values are not interpreted by Creo Parametric.
See Also:
ProNotificationSet()
*/
typedef ProError (*ProMdlDeletePreAction) ( void );
/*
Purpose: This is the notification function called before deleting a model.
<p> Users must supply this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MDL_DELETE_PRE.
<p> If this function returns an error, the deleting action will be
aborted by Creo Parametric.
Input Arguments:
none
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - Successful exit from this function.
Other - An error was encountered. Model deletion will be stopped.
See Also:
ProNotificationSet()
*/
typedef ProError (*ProMdlDeletePostAction) (ProModel *p_deleted_mdl);
/*
Purpose: <b>Note:</b> This function is deprecated. Use
ProModelDeletePostAction instead. This is the notification
function called after an explicit delete of a model.
<p> The user supplies this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MDL_DELETE_POST.
<p> <b> NOTE:
<p> </b> This function is not called on deletes of models
dependent upon the model explicitly called.
Input Arguments:
p_deleted_mdl - The information for the model that was just deleted
Output Arguments:
none
Return Values:
Return values are not interpreted by Creo Parametric.
See Also:
ProNotificationSet, ProMdlDeletePostAllAction()
*/
typedef ProError (*ProModelDeletePostAction) (ProMdlName p_deleted_mdl, ProMdlExtension mdl_ext);
/*
Purpose: This is the notification function called after an explicit delete
of a model.
<p> The user supplies this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MODEL_DELETE_POST.
<p> <b> NOTE:
<p> </b> This function is not called on deletes of models
dependent upon the model explicitly called.
Input Arguments:
p_deleted_mdl - The information for the model that was just deleted
mdl_ext - The model type extension
Output Arguments:
none
Return Values:
Return values are not interpreted by Creo Parametric.
See Also:
ProNotificationSet, ProModelDeletePostAllAction()
*/
typedef ProError (*ProMdlDeletePostAllAction) (ProMdldata *p_model_data);
/*
Purpose: <b>Note:</b> This function is deprecated. Use
ProModelDeletePostAllAction instead. This is the notification
function called after a delete of any model, including models
dependant on the model explicitly called. This function differs
from <b>ProMdlDeletePostAction()</b> in that it is called only
once, even if a top-level model save causes a recursive saving
action.
<p> The user supplies this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MDL_DELETE_POST_ALL.
Input Arguments:
p_model_data - The information for the top-level model that was just
deleted
Output Arguments:
none
Return Values:
Return values are not interpreted by Creo Parametric.
See Also:
ProNotificationSet, ProMdlDeletePostAction()
*/
typedef ProError (*ProModelDeletePostAllAction) (ProMdlName p_deleted_mdl, ProMdlExtension mdl_ext);
/*
Purpose: This is the notification function called after a delete of any
model, including models dependant on the model explicitly called.
This function differs from <b>ProModelDeletePostAction()</b> in
that it is called only once, even if a top-level model save causes
a recursive saving action.
<p> The user supplies this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MODEL_DELETE_POST_ALL.
Input Arguments:
p_deleted_mdl - The information for the top-level model that was just
deleted
mdl_ext - The model type extension
Output Arguments:
none
Return Values:
Return values are not interpreted by Creo Parametric.
See Also:
ProNotificationSet, ProMdlDeletePostAction()
*/
typedef ProError (*ProModelRetrievePreAction) (
ProPath path,
ProFileRetrieveOpt **p_retr_options_arr);
/*
Purpose: This is the notification function called before retrieving a
model.
<p> Users must supply this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MODEL_RETRIEVE_PRE.
<p> <b>NOTE:</b> This function is not called on retrieval of
models using drag or double click in browser window. It gets
called only when user clicks <b>File -> Open</b> button.
<p> <b>Warning:</b> This notification blocks Creo Parametric's
standard file open dialog. It is developer's responsibility to
substitute it with his own dialog through this function.
Input Arguments:
none
Output Arguments:
path - Specify the full path to the model file to be retrieved. This
must be a valid path that includes the filename, extension, and
version of the model.Do not use this argument if you do not want
the Creo Parametric Toolkit application to retrieve any model.
p_retr_options_arr - ProArray that contains the options to retrieve the
model. The Creo Parametric Toolkit application
should allocate the memory for the retrieval
options.
Return Values:
PRO_TK_NO_ERROR - The Toolkit application will send a request to Creo
Parametric to retrieve the model specified by the
arguments.
Other - Creo Parametric will not retrieve the model.
See Also:
ProNotificationSet()
*/
typedef ProError (*ProModelRetrievePostAction) (ProMdl p_retrieved_mdl);
/*
Purpose: This is the notification function called after explicit retrieval
of a model.
<p> The user supplies this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MODEL_RETRIEVE_POST.
<p> <b> NOTE:
<p> </b> This function is not called on retrieval of models
dependent upon the model explicitly called.
Input Arguments:
p_retrieved_mdl - The information for the model that was just retrieved
Output Arguments:
none
Return Values:
Return values are not interpreted by Creo Parametric.
See Also:
ProNotificationSet, ProModelRetrievePostAllAction()
*/
typedef ProError (*ProModelRetrievePostAllAction) (ProMdl p_model_data);
/*
Purpose: This is the notification function called after retrieval of any
model, including models dependant on the model explicitly called.
This function differs from <b>ProModelRetrievePostAction()</b> in
that it is called only once, even if a top-level model retrieve
causes a recursive retrieval of a particular model.
<p> The user supplies this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MODEL_RETRIEVE_POST_ALL.
Input Arguments:
p_model_data - The information for the top-level model that was just
retrieved
Output Arguments:
none
Return Values:
Return values are not interpreted by Creo Parametric.
See Also:
ProNotificationSet, ProModelRetrievePostAction()
*/
typedef ProError (*ProMdlCreatePreAction) (ProMdlType mdl_type,
int sub_type,
ProName r_model_name,
ProBoolean *r_allow_override);
/*
Purpose: <b>Note:</b> This function is deprecated. Use
ProModelCreatePreAction instead. This is the notification function
called before creating a model.
<p> Users must supply this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MDL_CREATE_PRE.
<p> This function is invoked after the user specifies the type and
subtype of a Creo Parametric model.
Input Arguments:
mdl_type - The model type (PRO_MDL_PART, PRO_MDL_ASSEMBLY, and so on)
sub_type - The model subtype
Output Arguments:
r_model_name - The model name assigned by the callback.
r_allow_override - If this is PRO_B_FALSE, the supplied model name
cannot be overridden by the user.
Return Values:
PRO_TK_NO_ERROR - Successful exit from this function.
Other - An error was encountered. Model creation will be stopped.
See Also:
ProNotificationSet()
*/
typedef ProError (*ProModelCreatePreAction) (ProMdlType mdl_type,
ProMdlsubtype sub_type,
ProMdlName r_model_name,
ProBoolean *r_allow_override);
/*
Purpose: This is the notification function called before creating a model.
<p> Users must supply this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MODEL_CREATE_PRE.
<p> This function is invoked after the user specifies the type and
subtype of a Creo Parametric model.
Input Arguments:
mdl_type - The model type (PRO_MDL_PART, PRO_MDL_ASSEMBLY, and so on)
sub_type - The model subtype
Output Arguments:
r_model_name - The model name assigned by the callback.
r_allow_override - If this is PRO_B_FALSE, the supplied model name
cannot be overridden by the user.
Return Values:
PRO_TK_NO_ERROR - Successful exit from this function.
Other - An error was encountered. Model creation will be stopped.
See Also:
ProNotificationSet()
*/
typedef ProError (*ProMdlStartAction)(ProName name,
ProMdlType type,
ProMdlsubtype subtype);
/*
Purpose: <b>Note:</b> This function is deprecated. Use ProModelStartAction
instead. Type for callback function for notification option
PRO_MDL_START. The function is called after the user selects OK on
the New dialog, if the option "Use default template" is
unselected, and the notification has been defined by a call to
ProNotificationSet(). The callback replaces Creo Parametric's
interaction by which the user selects the start-part and defines
its parameters.
Input Arguments:
name - The name of the new model entered by the user on the New dialog.
type - The type of the new model
subtype - The subtype of the new model
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The Creo Parametric TOOLKIT callback successfully
created the new model.
PRO_TK_CONTINUE - Creo Parametric should use the regular user interface
for defining the model.
PRO_TK_USER_ABORT - The user quit from the interaction controlled by
the callback. The File New command will terminate.
Other - Some other error prevented the Creo Parametric TOOLKIT
application from creating the model. The File New command will
be teminated.
*/
typedef ProError (*ProModelStartAction)(ProMdlName name,
ProMdlType type,
ProMdlsubtype subtype);
/*
Purpose: Type for callback function for notification option
PRO_MODEL_START. The function is called after the user selects OK
on the New dialog, if the option "Use default template" is
unselected, and the notification has been defined by a call to
ProNotificationSet(). The callback replaces Creo Parametric's
interaction by which the user selects the start-part and defines
its parameters.
Input Arguments:
name - The name of the new model entered by the user on the New dialog.
type - The type of the new model
subtype - The subtype of the new model
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The Creo Parametric TOOLKIT callback successfully
created the new model.
PRO_TK_CONTINUE - Creo Parametric should use the regular user interface
for defining the model.
PRO_TK_USER_ABORT - The user quit from the interaction controlled by
the callback. The File New command will terminate.
Other - Some other error prevented the Creo Parametric TOOLKIT
application from creating the model. The File New command will
be teminated.
*/
typedef ProError (*ProMdlCreatePostAction) (ProModel *p_created_mdl);
/*
Purpose: <b>Note:</b> This function is deprecated. Use
ProModelCreatePostAction instead. This is the notification
function called after creating a model.
<p> Users must supply this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MDL_CREATE_POST.
Input Arguments:
p_created_mdl - The information for the model that was just created
Output Arguments:
none
Return Values:
Return values are not interpreted by Creo Parametric.
See Also:
ProNotificationSet()
*/
typedef ProError (*ProModelCreatePostAction) (ProMdlName p_created_mdl, ProMdlExtension mdl_ext);
/*
Purpose: This is the notification function called after creating a model.
<p> Users must supply this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MODEL_CREATE_POST.
Input Arguments:
p_created_mdl - The information for the model that was just created
mdl_ext - The model type extension
Output Arguments:
none
Return Values:
Return values are not interpreted by Creo Parametric.
See Also:
ProNotificationSet()
*/
typedef ProError (*ProModelDbmsFailureAction) (char *dbms_action_string,
ProPath mdl1_path,
ProMdlfileType mdl1_file_type,
ProPath mdl2_path,
ProMdlfileType mdl2_file_type,
ProError status);
/*
Purpose: This is the notification function called whenever any file
management functionality was invoked and failed.
<p> Users must supply this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MODEL_DBMS_FAILURE.
<p> The general format for the action (the argument
<i>dbms_action_string</i>) is as follows:<pre>
"menu_dbms_<action>_object"</pre>
<p> Therefore, the possible failures are as follows:
<ul>
<li>"menu_dbms_create_object" -- Creation failure
<li>"menu_dbms_purge_object" -- Purge failure
<li>"menu_dbms_rename_object" -- Rename failure
<li>"menu_dbms_save_object" -- Save failure
<li>"menu_dbms_copy_object" -- Copy failure
<li>"dbms_save_object_all" -- Failure saving a list of models,
<li>"dbms_copy_object_all" -- Failure copying a list of models,
<li>"dbms_retrieve_object_all" -- Failure retrieving a list of
models.
</ul>
Input Arguments:
dbms_action_string - The file management action that failed.
mdl1_path - Path the main model.
mdl1_file_type - File type for the main model.
mdl2_path - Path to the auxiliary model. This is initialized only in
cases like copy and rename.
mdl2_file_type - File type for the auxiliary model. This is initialized
only in cases like copy and rename.
status - The internal error generated.
Output Arguments:
none
Return Values:
Return values are not interpreted by Creo Parametric.
See Also:
ProNotificationSet()
*/
typedef ProError (*ProMdlDisplayPreAction) (ProMdl mdl_handle);
/*
Purpose: This is the notification function called before starting to
display a model.
<p> Users must supply this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MDL_DISPLAY_PRE.
Input Arguments:
mdl_handle - The model about to be displayed
Output Arguments:
none
Return Values:
Return values are not interpreted by Creo Parametric.
See Also:
ProNotificationSet()
*/
typedef ProError (*ProMdlDisplayPostAction) ( void );
/*
Purpose: This is the notification function called after displaying a model.
<p> Users must supply this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MDL_DISPLAY_POST.
Input Arguments:
none
Output Arguments:
none
Return Values:
Return values are not interpreted by Creo Parametric.
See Also:
ProNotificationSet()
*/
typedef ProError (*ProGtolVisitAction) ( ProGtol *gtol,
ProError filter_status,
ProAppData data );
/*
Purpose: Specifies function type for gtol visit action.
Input Arguments:
gtol - The gtol being visited
filter_status - The return value from the preceding call to the the
visit filter function
data - The application data passed to ProMdlGtolVisit()
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - Continue visiting.
other - Stop visiting and return from ProMdlGtolVisit() with this
value.
*/
typedef ProError (*ProGtolFilterAction) ( ProGtol *gtol,
ProAppData data );
/*
Purpose: Specifies function type for gtol filter action.
Input Arguments:
gtol - The gtol being visited
data - The application data passed to ProMdlGtolVisit()
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - Calls the visit function if not NULL.
PRO_TK_CONTINUE - Skips to next gtol.
PRO_TK_GENERAL_ERROR - Stops visiting.
*/
typedef ProError (*ProModelEmbedExtractPostAction) (ProMdl pro_mdl_new,
ProMdl pro_mdl_old);
/*
Purpose: This is the notification function called after embedding or
extracting a model.
<p> Users must supply this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MODEL_EMBED_EXTRACT_POST. <b>NOTE:</b> This notification is
called when model is replaced by embed/extract operation. Embedded
model name will not be always available on CB side. Notification
is meant to enable the listener to update the model handle only.
Input Arguments:
pro_mdl_new - The new model after the operation
pro_mdl_old - The old model before the operation
Output Arguments:
none
Return Values:
Return values are not interpreted by Creo Parametric.
See Also:
ProNotificationSet()
*/
extern ProError ProMdlGtolVisit( ProMdl model,
ProGtolVisitAction visit_action,
ProGtolFilterAction filter_action,
ProAppData data );
/*
Purpose: Visits all gtols stored in the specified model.
Input Arguments:
model - The model that contains the gtols to be visited
visit_action - The visit action function
filter_action - The filter action. If NULL, all gtols are visited using
the action function.
data - Pointer to application-specific data to be passed to the action
functions.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function visited all the items.
PRO_TK_BAD_INPUTS - One or more inputs was invalid.
PRO_TK_GENERAL_ERROR - Visiting was stopped by the return from the
visit action.
PRO_TK_E_NOT_FOUND - There are no valid gtols in the model.
*/
extern ProError ProMdlIsModifiable(ProMdl p_model,
ProBoolean show_ui,
ProBoolean* can_modify);
/*
Purpose: Check if given model is modifiable, indicating that the model
could be saved (without checking for any subordinate models). For
a generic model, if show_ui is PRO_B_TRUE, all its instances are
also checked.
Input Arguments:
p_model - model to check access to.
show_ui - Indicates whether the Conflicts dialog should be shown to
user to resolve conflicts (if they are detected); when set to
PRO_B_FALSE no UI is enabled and the model is considered as
modifiable if there are no conflicts that could not be
overridden or resolved by default resolution actions.
Output Arguments:
can_modify - The access status. If it is PRO_B_TRUE, the model is
modifiable.
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the information.
PRO_TK_BAD_INPUTS - One or more arguments are invalid.
PRO_TK_GENERAL_ERROR - The function could not check access to the
model.
*/
extern ProError ProMdlIsSaveAllowed(ProMdl p_model,
ProBoolean show_ui,
ProBoolean* save_allowed);
/*
Purpose: Check if given model can be saved along with all its subordinate
models that are to be saved together with it according to their
modification status and the configuration option 'save_objects'.
Note this will also check the current UI context to see if it is
currently safe to save the model, and so calling this function at
different times might return different results. A negative result
indicates that ProMdlSave() would fail for this model.
Input Arguments:
p_model - Model to check access to.
show_ui - Indicates whether the Conflicts dialog should be shown to
user to resolve conflicts (if they are detected); when set to
PRO_B_FALSE no UI is enabled and the model is considered as
modifiable if there are no conflicts that could not be
overridden or resolved by default resolution actions.
Output Arguments:
save_allowed - The save access status. If it is PRO_B_TRUE, the check
is successful. If it is PRO_B_FALSE, the model or at
least one of its subordinate models can not be saved due
to remaining unresolved non-overridable conflicts.
Conflicts will not be shown if the model currently
cannot be saved due to UI restrictions; the function
will return PRO_B_FALSE regardless of this flag.
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the information.
PRO_TK_BAD_INPUTS - One or more arguments are invalid.
PRO_TK_GENERAL_ERROR - The function could not check access to the
model.
*/
extern ProError ProMdlLocationIsStandard(ProMdl model, ProBoolean *is_standard);
/*
Purpose: Check if given model is to be saved to a standard disk location.
Input Arguments:
model - Model to check.
Output Arguments:
is_standard - PRO_B_TRUE if the storage path is one that would be
expected to work with normal OS commands.
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the information.
PRO_TK_BAD_INPUTS - One or more arguments are invalid.
*/
extern ProError ProMdlCommonnameGet (ProMdl model, wchar_t** common_name,
ProBoolean* is_modifiable);
/*
Purpose: Obtains a model common name. This is the name to identify a PDM
object containing this model file.
Input Arguments:
model - The model.
Output Arguments:
common_name - The model common name. Free this string using
ProWstringFree().
is_modifiable - PRO_B_TRUE if the common name can be modified,
PRO_B_FALSE if it has been locked by PDM and cannot be
modified. This argiment can be NULL if not interested.
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
PRO_TK_GENERAL_ERROR - The function failed.
*/
extern ProError ProMdlCommonnameSet (ProMdl model, wchar_t* common_name);
/*
Purpose: Assigns a model common name. This is the name to identify a PDM
object containing this model file.
Input Arguments:
model - The model.
common_name - The common name.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
PRO_TK_CANT_MODIFY - The common name for the given model has been
locked by PDM and cannot be modified.
PRO_TK_GENERAL_ERROR - The function failed.
*/
extern ProError ProMdlObjectdefaultnameGet (ProType object_type, ProLine name);
/*
Purpose: Returns the next available default name for given object type
Input Arguments:
object_type - only these types are allowed:<ul> <li>PRO_PART
<li>PRO_ASSEMBLY <li>PRO_CABLE <li>PRO_DRAWING
<li>PRO_REPORT <li>PRO_2DSECTION <li>PRO_3DSECTION
<li>PRO_LAYOUT <li>PRO_DWGFORM <li>PRO_MARKUP</ul>
Output Arguments:
name - resulting name.
Return Values:
PRO_TK_NO_ERROR - The function successfully created the name.
PRO_TK_UNSUPPORTED - the type is not supported.
*/
extern ProError ProMdlDetailOptionGet(ProMdl mdl, ProName option, ProLine value);
/*
Purpose: Get the model detail option
Input Arguments:
mdl - The model
option - The detail option name
Output Arguments:
value - The value of the detail option
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
PRO_TK_GENERAL_ERROR - The function failed
PRO_TK_E_NOT_FOUND - The option string is not a valid detail option
name for this model.
PRO_TK_NO_LICENSE - The option is restricted by a license the user does
not have.
PRO_TK_BAD_CONTEXT - The detail option is not available in this
application type (e.g. assembly, part)
*/
extern ProError ProMdlDetailOptionSet(ProMdl mdl, ProName option, ProLine value);
/*
Purpose: Set the model detail option
Input Arguments:
mdl - The model
option - The detail option name
value - The value of the detail option
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
PRO_TK_GENERAL_ERROR - The function failed
PRO_TK_E_NOT_FOUND - The option string is not a valid detail option
name for this model.
PRO_TK_NO_LICENSE - The option is restricted by a license the user does
not have.
PRO_TK_BAD_CONTEXT - The detail option is not available in this
application type (e.g. assembly, part)
*/
extern ProError ProMdlFiletypeGet (ProMdl model, ProMdlfileType *filetype);
/*
Purpose: provides ProMdlfileType for a given model.
Input Arguments:
model - the model. Not allowed to be NULL.
Output Arguments:
filetype - file type. Not allowed to be NULL.
Return Values:
PRO_TK_NO_ERROR - the function successfully provided the filetype.
PRO_TK_BAD_INPUTS - the model argument is NULL.
PRO_TK_INVALID_PTR - the model argument does not represent a correct
model.
*/
extern ProError ProMdlFiletypeLoad (ProPath full_path,
ProMdlfileType type,
ProBoolean ask_user_about_reps,
ProMdl *p_handle);
/*
Purpose: Retrieves the specified model and initializes the handle.
<p> The function retrieves the model into memory, but neither
displays the model nor makes it the current model. Differs from
ProMdlnameRetrieve in that the caller can specify the location of
the model in addition to its name.
<p> If retrieving an assembly, and errors occur in regeneration,
the assembly will include suppressed features. The function
ProSolidRetrievalErrorsGet identifies if errors occurred.
Input Arguments:
full_path - The full path of the model to be retrieved, including the
name, and optionally the location and extension.
type - The type of the model to retrieve, or PRO_MDLFILE_UNUSED if
full_path includes an extension.
ask_user_about_reps - If TRUE, the Open Rep dialog may be presented,
allowing the user to specify which simplified
representation of the model should be retrieved.
Output Arguments:
p_handle - The handle to the retrieved model
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the model.
PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid.
PRO_TK_CANT_OPEN - The model exists but is not readable.
PRO_TK_E_NOT_FOUND - The model does not exist, or was not found
PRO_TK_INVALID_FILE - The model is not a Creo Parametric model.
PRO_TK_INVALID_NAME - The model name is too long.
PRO_TK_NO_PERMISSION - The function does not have permission to operate
on this model.
PRO_TK_BAD_CONTEXT - The Multi-CAD model is not being retrieved from an
active Windchill server.
PRO_TK_GENERAL_ERROR - The model could not be retrieved.
See Also:
ProSolidRetrievalErrorsGet()
*/
extern ProError ProMdlRepresentationFiletypeLoad (ProPath assembly_file,
ProMdlfileType type,
ProName simprep_name,
ProSimprepdata *p_simp_rep_data,
ProMdl *result);
/*
Purpose: Retrieves the specified simplified representation of an assembly.
<p><b> NOTE:
<p></b> The function ProSolidRetrievalErrorsGet identifies errors
if occurred.
Input Arguments:
assembly_file - The assembly file location. Cannot be NULL. May
include: generic name, instance name, file extension,
file version, absolute or relative path to a local
folder or a url. Example:
wtpub://asm_1<gen_asm_1>.asm.3 Example: just gen_asm_1
(will look for a file in the current dirrectory; in
this case the type must be passed in).
type - Model type. May be PRO_MDLFILE_UNUSED if assembly_file includes
file extension
simprep_name - The name of the simplified representation. Must be NULL
if not user-defined (if not NULL, it is considered to be
user-defined).
p_simp_rep_data - The simplified representation data. Can be NULL for a
user defined represenation. The instructions in the
data will be used to create a new representation on
the fly if such representation does not exist.
Output Arguments:
result - The handle to the model. Cannot be NULL. <p><b>Note:</b> The
function retrieves the model into memory, but neither displays
the model nor makes it the current model. If during retrieving
an assembly errors occur on regeneration then the assembly
will include suppressed features. <p>Use
ProSolidRetrievalErrorsGet to get the errors.
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the model.
PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid
PRO_TK_E_NOT_FOUND - The file was not found.
PRO_TK_CANT_OPEN - The file exists but is not readable.
PRO_TK_EMPTY - The specified representation was not stored in the file
(for non user-defined representations).
PRO_TK_INVALID_FILE - The model is not a Creo Parametric model.
PRO_TK_GENERAL_ERROR - The model could not be retrieved.
PRO_TK_LINE_TOO_LONG - The model name is too long.
PRO_TK_INVALID_NAME - The specified user defined representation was not
found (in which case it may be created
on the fly following instructions in p_simp_rep_data - check p_result
for being not
NULL)
PRO_TK_NO_PERMISSION - The function does not have permission to operate
on this model.
See Also:
ProSolidRetrievalErrorsGet()
*/
extern ProError ProMdlOriginGet(ProMdl handle, ProPath origin);
/*
Purpose: Retrieves the full path from which the model was retrieved.
Returns an empty string for models which are new in session. For
instances, returns the full path of the file that created the
instance: the accelerator file if applicable or otherwise the
generic. You can call ProFileMdlnameParse with the output origin
to get just the location of the file.
Input Arguments:
handle - The model handle.
Output Arguments:
origin - The address where the full path will be written. You must
allocate the memory for this argument.
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the information.
PRO_TK_BAD_INPUTS - The input arguments are invalid.
PRO_TK_GENERAL_ERROR - The origin of the model could not be found.
*/
typedef ProError (*ProModelReplacePostAction) (ProMdl p_replaced_mdl);
/*
Purpose: This is the notification function called after replace of a model.
<p> The user supplies this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_MODEL_REPLACE_POST.
<p> <b> NOTE:
<p> </b> This function is not called on replace of models
dependent upon the model explicitly called.
Input Arguments:
p_replaced_mdl - The information for the model that was just replaced
Output Arguments:
none
Return Values:
Return values are not interpreted by Creo Parametric.
See Also:
ProNotificationSet()
*/
extern ProError ProMdlVisibleSideAppearancepropsSet(ProAsmitem* item,
int surf_side,
ProSurfaceAppearanceProps *appearance_properties);
/*
Purpose: Sets the appearance properties of the part, assembly component,
subassembly, on given side of quilt or surface. These may or may
not be visible depending on the properties set by the higher level
assembly. Call ProWindowRepaint() after this API to see the
changes in UI.
Input Arguments:
item - The asmitem representing the part, assembly component,
subassembly, quilt or surface.
surf_side - Set to 0 (the direction of the surface normal) or 1 (the
other side).
appearance_properties - Structure containing surface appearance
properties. Pass NULL to set default surface
appearance properties.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
*/
extern ProError ProMdlVisibleSideTextureplacementpropsSet(ProAsmitem *item,
int surf_side,
ProSurfaceTexturePlacementProps *texture_placement_properties);
/*
Purpose: Sets the texture placement placement properties of the part,
assembly component, subassembly, on given side of quilt or
surface. These may or may not be visible depending on the
properties set by the higher level assembly. Call
ProWindowRepaint() after this API to see the changes in UI.
Input Arguments:
item - The asmitem representing the part, assembly component,
subassembly, quilt or surface.
surf_side - Set to 0 (the direction of the surface normal) or 1 (the
other side).
texture_placement_properties - ProArray of structures containing
texture placement properties.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
*/
extern ProError ProMdlVisibleSideTexturepropsSet(ProAsmitem *item,
int surf_side,
ProSurfaceTextureProps *texture_properties);
/*
Purpose: Sets the texture related properties of the part, assembly
component, subassembly, on given side of quilt or surface. These
may or may not be visible depending on the properties set by the
higher level assembly. Call ProWindowRepaint() after this API to
see the changes in UI.
Input Arguments:
item - The asmitem representing the part, assembly component,
subassembly, quilt or surface.
surf_side - Set to 0 (the direction of the surface normal) or 1 (the
other side).
texture_properties - Structure containing texture related properties.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
*/
extern ProError ProMdlVisibleSideAppearancepropsGet(ProAsmitem *item,
int surf_side,
ProSurfaceAppearanceProps *appearance_properties);
/*
Purpose: Gets the appearance properties of the part, assembly component,
subassembly, given side of quilt or surface. <b>Note</b> : In case
of assembly model, set the modelitem's owner to top-level
assembly.
Input Arguments:
item - The asmitem representing the part, assembly component,
subassembly, quilt or surface.
surf_side - Set to 0 (the direction of the surface normal) or 1 (the
other side).
Output Arguments:
appearance_properties - Structure containing appearance related
properties.
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
PRO_TK_NOT_EXIST - The property does not exists.
*/
extern ProError ProMdlVisibleSideTextureplacementpropsGet(ProAsmitem *item,
int surf_side,
ProSurfaceTexturePlacementProps **texture_placement_properties);
/*
Purpose: Gets the texture placement related properties of the part,
assembly component, subassembly, given side of quilt or surface.
<b>Note</b> : In case of assembly model, set the modelitem's owner
to top-level assembly.
Input Arguments:
item - The asmitem representing the part, assembly component,
subassembly, quilt or surface.
surf_side - Set to 0 (the direction of the surface normal) or 1 (the
other side).
Output Arguments:
texture_placement_properties - ProArray of structures containing
texture placement properties. The
function allocates memory for this
argument. To free it, call the function
ProArrayFree.
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
PRO_TK_NOT_EXIST - Properties does not exist on item.
*/
extern ProError ProMdlVisibleSideTexturepropsGet(ProAsmitem *item,
int surf_side,
ProSurfaceTextureProps *texture_properties);
/*
Purpose: Gets the texture related properties of the part, assembly
component, subassembly, on given side of quilt or surface.
<b>Note</b> : In case of assembly model, set the modelitem's owner
to top-level assembly.
Input Arguments:
item - The asmitem representing the part, assembly component,
subassembly, quilt or surface.
surf_side - Set to 0 (the direction of the surface normal) or 1 (the
other side).
Output Arguments:
texture_properties - Pointer to structure containing texture related
properties.
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
PRO_TK_NOT_EXIST - Properties does not exist on item.
*/
extern ProError ProMdlLockGet(ProMdl model, ProBoolean* is_locked);
/*
Purpose: Obtains a lock/unlock state of the model.
Input Arguments:
model - The model.
Output Arguments:
is_locked - PRO_B_TRUE if the model is locked, PRO_B_FALSE if it is
unlocked.
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
PRO_TK_GENERAL_ERROR - The function failed.
*/
extern ProError ProMdlLockSet(ProMdl model, ProBoolean lock);
/*
Purpose: Set lock/unlock state to the model.
Input Arguments:
model - The model.
lock - PRO_B_TRUE to lock the model, PRO_B_FALSE to unlock the model.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
PRO_TK_GENERAL_ERROR - The function failed. User also receive this
error if user call this API to lock/unlock the
model which is already locked/unlocked
correspondingly.
*/
extern ProError ProMdlIsEmbeddedName(ProPath name, ProBoolean* is_embedded_name);
/*
Purpose: Check if given model name or full path including model name is an
embedded model name.
Input Arguments:
name - The model name or full path including model name.
Output Arguments:
is_embedded_name - PRO_B_TRUE if the model name is embedded name,
PRO_B_FALSE if it is not.
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
PRO_TK_GENERAL_ERROR - The function failed.
*/
extern ProError ProMdlVisibleGet(ProMdl model, ProMdl* visible_model);
/*
Purpose: Return visible/generic model handle for input model.
Input Arguments:
model - The model
Output Arguments:
visible_model - Visible instance model handle.
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
PRO_TK_E_NOT_FOUND - Visible/generic model doesn't exist or not found
in session
*/
PRO_END_C_DECLS
#endif /* PROMODEL_H */