#ifndef PROASSEMBLY_H
#define PROASSEMBLY_H
#include <ProObjects.h>
PRO_BEGIN_C_DECLS
extern ProError ProAssemblyExplode ( ProAssembly assembly );
/*
Purpose: Explodes the specified assembly. The function invalidates the
display list, but the application needs to repaint the window.
Input Arguments:
assembly - The assembly to explode
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully exploded the assembly.
PRO_TK_BAD_INPUTS - The specified assembly is not an assembly, or is
NULL.
PRO_TK_NO_CHANGE - The specified assembly is already exploded.
*/
extern ProError ProAssemblyUnexplode ( ProAssembly assembly );
/*
Purpose: Unexplodes the specified assembly. The function invalidates the
display list, but the application needs to repaint the window.
Input Arguments:
assembly - The assembly to unexplode
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully unexploded the assembly.
PRO_TK_BAD_INPUTS - The specified assembly is not an assembly, or is
NULL.
PRO_TK_NO_CHANGE - The specified assembly is already unexploded.
*/
extern ProError ProAssemblyIsExploded ( ProAssembly assembly,
ProBoolean *p_is_exploded);
/*
Purpose: Determines whether the specified assembly is exploded.
Input Arguments:
assembly - The assembly whose state is to be determined.
Output Arguments:
p_is_exploded - If this is PRO_B_TRUE, the assembly is exploded. If
this is PRO_B_FALSE, the assembly is unexploded.
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the information.
PRO_TK_BAD_INPUTS - The specified assembly is not an assembly, or is
NULL.
*/
extern ProError ProAssemblyDynPosGet ( ProAssembly top_assem,
ProBoolean *p_enable);
/*
Purpose: Determines whether dynamic component positioning is enabled or
disabled for the specified assembly.
Input Arguments:
top_assem - The top-level assembly for which to determine the status of
dynamic positioning
Output Arguments:
p_enable - If this is PRO_B_TRUE, the specified assembly currently has
dynamic positioning enabled. If this is PRO_B_FALSE, the
specified assembly currently has dynamic positioning
disabled.
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the value.
PRO_TK_BAD_INPUTS - The input argument is invalid.
*/
extern ProError ProAssemblyDynPosSet ( ProAssembly top_assem,
ProBoolean enable);
/*
Purpose: Enables or disables dynamic component positioning. When enabled,
all the components can have a unique transformation with respect
to the top-level assembly.
Input Arguments:
top_assem - The top-level assembly for which to enable dynamic
positioning
enable - The Boolean value that enables or disables positioning
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully set the new value.
PRO_TK_BAD_INPUTS - One or more of the arguments are invalid.
*/
extern ProError ProMdlActiveGet (ProMdl *p_handle);
/*
Purpose: Initializes the <i>p_handle</i> with the active 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 active Creo Parametric object is not set.
*/
extern ProError ProAssemblyAutointerchange (
ProAssembly assembly,
int *component_ids,
ProMdl replacement_model
);
/*
Purpose: Performs the automatic replacement of an assembly member, in the
manner of Creo Parametric.
<p> Note that Creo Parametric enables automatic replacement of
assembly members using the following methods:
<ul>
<li>Interchange groups
<li>Instances of family tables
<li>Global reference datums in layouts
</ul>
Input Arguments:
assembly - The assembly or subassembly.
component_ids - The ProArray of component identifiers from the assembly
node <i>assembly</i> that identifies the replaced
members.
replacement_model - The replacement component. This can be a part or
subassembly.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function succeeded
PRO_TK_BAD_INPUTS - One or more arguments are invalid.
PRO_TK_GENERAL_ERROR - A general error occurred and the function
failed.
*/
PRO_END_C_DECLS
#endif /* PROASSEMBLY_H */