#ifndef PROSURFFINISH_H #define PROSURFFINISH_H #include <ProObjects.h> #include <ProSelection.h> #include <ProDtlsyminst.h> #include <ProAnnotationElem.h> PRO_BEGIN_C_DECLS typedef ProError (*ProSurffinishFilterAction) (ProSurfFinish* surf_finish, ProAppData application_data); /* Purpose: The filter action for a surface finish item. Input Arguments: surf_finish - The surface finish item. application_data - Visit user data. Output Arguments: none Return Values: PRO_TK_CONTINUE - Do not call the visit action for this item. Other - Call the visit action for this item and pass this value to the visit action. */ typedef ProError (*ProSurffinishVisitAction) (ProSurfFinish* surf_finish, ProError filter_status, ProAppData appdata); /* Purpose: The visit action for a surface finish item. Input Arguments: surf_finish - The surface finish item. filter_status - The error return from the filter function. appdata - Visit user data. Output Arguments: none Return Values: PRO_TK_NO_ERROR - Continue visiting. Other - terminate visiting and pass this value as the return status of the visit function. */ extern ProError ProSolidSurffinishVisit (ProSolid solid, ProSurffinishVisitAction visit_action, ProSurffinishFilterAction filter_action, ProAppData appdata); /* Purpose: Visit the surface finishes in the model. Input Arguments: solid - The solid model. visit_action - Action performed for each surface finish visited. filter_action - Used to filter the search. Pass NULL to visit all surface finishes. appdata - User data passed to the visit and filter functions. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more arguments is invalid. PRO_TK_E_NOT_FOUND - No surface finish entities were found in the model. Other - Returned from the visit action. */ extern ProError ProSurffinishValueGet (ProSurfFinish* surface_finish, double* value); /* Purpose: Retrieve the value of a surface finish annotation. If getting the value of a surface finish based on a symbol, this gets the value of the variable text "roughness_height". Retrieve other values using ProSurffinishDataGet(). Input Arguments: surface_finish - The surface finish item. Output Arguments: value - The value of the surface finish. Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more arguments is invalid. PRO_TK_NO_LICENSE - License check failure. PRO_TK_BAD_CONTEXT - The surface finish does not have a value named 'roughness_height' (for symbol based surface finishes). PRO_TK_INVALID_TYPE - The surface finish roughness height is not a numeric value. */ extern ProError ProSurffinishValueSet (ProSurfFinish* surface_finish, double value); /* Purpose: Set the value of a surface finish annotation. If setting the value of a surface finish based on a symbol, this sets the value of the variable text "roughness_height". Modify other values using ProSurffinishModify(). Input Arguments: surface_finish - The surface finish item. value - The value of the surface finish. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more arguments is invalid. PRO_TK_NO_LICENSE - License check failure. PRO_TK_BAD_CONTEXT - The surface finish does not have a value named 'roughness_height' (for symbol based surface finishes). PRO_TK_INVALID_TYPE - The surface finish roughness height is not a numeric value. PRO_TK_CANT_WRITE - Could not modify the given item because it has read-only access. */ extern ProError ProSurffinishReferencesGet (ProSurfFinish* surface_finish, ProSelection** surface); /* Purpose: Retrieve the surfaces referenced by a surface finish annotation. Licensing Requirement: UNRECOGNIZED Input Arguments: surface_finish - The surface finish item. Output Arguments: surface - ProArray of surfaces referenced by the surface finish. Free this array using ProSelectionarrayFree(). Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - The function failed. PRO_TK_NO_LICENSE - License check failure. */ extern ProError ProSurffinishCreate (ProMdl mdl, ProDtlsyminstdata data, ProSurfFinish* item); /* Purpose: Create a surface finish in the specified model. ProAnnotationShow() should be called after creating the surface finish in order for the surface finish to be displayed. Licensing Requirement: UNRECOGNIZED Input Arguments: mdl - The model handle. data - The symbol instance data. This data must contain: <UL> <LI> Zero or more leaders pointing to model surfaces, or, a model surface used for the attachment point. <LI> An annotation plane (for solid owned surface finishes). <LI> Optionally, variant texts for the surface finish. </UL> Consult the Creo Parametric TOOLKIT user's guide for information about how to find the standard surface finish symbols in order to use them during creation. Output Arguments: item - The created surface finish. Return Values: PRO_TK_NO_ERROR - The function successfully created the surface finish. PRO_TK_BAD_INPUTS - One or more input arguments was invalid. PRO_TK_INVALID_TYPE - Invalid type of leader or attachment for creation of a surface finish. PRO_TK_E_FOUND - Leader or attachment to surface which already has a surface finish. PRO_TK_GENERAL_ERROR - Can't create the surface finish. PRO_TK_NO_LICENSE - License check failure */ extern ProError ProSurffinishDelete (ProSurfFinish* surface_finish); /* Purpose: Delete a surface finish. Input Arguments: surface_finish - The surface finish item. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - The function failed. PRO_TK_NO_LICENSE - License check failure. PRO_TK_CANT_WRITE - Could not delete the given item because it has read-only access. */ extern ProError ProSurffinishModify (ProSurfFinish* item, ProDtlsyminstdata data); /* Purpose: Modify a surface finish. Licensing Requirement: UNRECOGNIZED Input Arguments: item - The surface finish. data - The symbol instance data that governs the surface finish. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully modified the surface finish. PRO_TK_BAD_INPUTS - One or more input arguments was invalid. PRO_TK_INVALID_TYPE - Invalid type of leader or attachment for creation of a surface finish. PRO_TK_E_FOUND - Leader or attachment to surface which already has a surface finish other than the one being modified. PRO_TK_GENERAL_ERROR - Can't modify the symbol instance. PRO_TK_BAD_CONTEXT - The surface finish is not based on a symbol (and cannot be modified using symbol data). PRO_TK_NO_LICENSE - License check failure PRO_TK_CANT_WRITE - Could not modify the given item because it has read-only access. */ extern ProError ProSurffinishDataGet (ProSurfFinish* item, ProDisplayMode mode, ProDtlsyminstdata* data); /* Purpose: Retrieve the data from a surface finish. Licensing Requirement: UNRECOGNIZED Input Arguments: item - The surface finish. mode - The display mode for the symbol retrieval. If PRODISPMODE_NUMERIC, callouts in test will be represented by their values. If PRODISPMODE_SYMBOLIC, callouts will contain the names of the referenced parameters. Output Arguments: data - The symbol instance data that governs the surface finish. Return Values: PRO_TK_NO_ERROR - The function successfully modified the surface finish. PRO_TK_BAD_INPUTS - One or more input arguments was invalid. PRO_TK_GENERAL_ERROR - Can't modify the symbol instance. PRO_TK_BAD_CONTEXT - The surface finish is not based on a symbol (and cannot be represented using symbol data). PRO_TK_NO_LICENSE - License check failure */ extern ProError ProSurffinishSrfcollectionGet (ProSurfFinish* surf_finish, ProCollection* srf_collection); /* Purpose: Obtains the surface collection reference assigned to the surface finish. <B>Note:</B> surface collections may only be used for surface finishes in annotation elements. Licensing Requirement: UNRECOGNIZED Input Arguments: surf_finish - The surface finish. Output Arguments: srf_collection - The surface collection assigned to the surface finish. Free this using ProCollectionFree(). Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments was invalid. PRO_TK_BAD_CONTEXT - The surface finish is not in an annotation element and cannot use a surface collection reference. PRO_TK_NO_LICENSE - License check failure. See Also: ProSurffinishSrfcollectionSet() ProSurffinishReferencesGet() */ extern ProError ProSurffinishSrfcollectionSet (ProSurfFinish* surf_finish, ProCollection srf_collection); /* Purpose: Assigns the surface collection references assigned to the surface finish. This overwrites all current surface finish references. <B>Note:</B> surface collections may only be used for surface finishes in annotation elements. Licensing Requirement: UNRECOGNIZED Input Arguments: surf_finish - The surface finish. srf_collection - The surface collection assigned to the surface finish. 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_BAD_CONTEXT - The surface finish is not in an annotation element and cannot use a surface collection reference. PRO_TK_NO_LICENSE - License check failure. PRO_TK_CANT_WRITE - Could not modify the given item because it has read-only access. See Also: ProSurffinishSrfcollectionGet() */ extern ProError ProSurffinishAdditionalReferencesAdd(ProSurfFinish* surf_finish, ProAnnotationReference* refs); /* Purpose: Add surface finish references Input Arguments: surf_finish - valid surface finish. refs - ProArray of surface finish references. Only 1 reference from type PRO_ANNOT_REF_SRF_COLLECTION is allowed. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function completed successfully. PRO_TK_BAD_INPUTS - The input argument is invalid. PRO_TK_BAD_CONTEXT - The surface finish owner is drawing. PRO_TK_MAX_LIMIT_REACHED - More than 1 references from type PRO_ANNOT_REF_SRF_COLLECTION. PRO_TK_CANT_MODIFY - Refercnce from type PRO_ANNOT_REF_SRF_COLLECTION already exist. */ extern ProError ProSurffinishAdditionalReferencesGet(ProSurfFinish* surf_finish, ProAnnotationReference** p_refs); /* Purpose: Get surface finish references Input Arguments: surf_finish - valid surface finish. Output Arguments: p_refs - ProArray of surface finish references. Free it using ProAnnotationreferencearrayFree() Return Values: PRO_TK_NO_ERROR - The function completed successfully. PRO_TK_BAD_INPUTS - The input argument is invalid. PRO_TK_BAD_CONTEXT - The surface finish owner is drawing. See Also: ProAnnotationElementGet() */ extern ProError ProSurffinishAdditionalReferenceDelete(ProSurfFinish* surf_finish, int index_ref); /* Purpose: Delete surface finish reference Input Arguments: surf_finish - valid surface finish. index_ref - Indices start from 0. Get existing references from ProDtlsyminstReferencesGet() Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function completed successfully. PRO_TK_BAD_INPUTS - The input argument is invalid. PRO_TK_BAD_CONTEXT - The gtol owner is drawing. */ PRO_END_C_DECLS #endif /* PROSURFFINISH_H */