#ifndef PRO_SOLID_BODY_H #define PRO_SOLID_BODY_H #include <ProToolkit.h> #include <ProObjects.h> #include <ProSolid.h> PRO_BEGIN_C_DECLS typedef enum tk_body_state { PRO_BODY_STATE_NONE = -1 ,PRO_BODY_STATE_MISSING = 0 ,PRO_BODY_STATE_CONSUMED ,PRO_BODY_STATE_NO_CONTR_FEAT ,PRO_BODY_STATE_NO_GEOMETRY ,PRO_BODY_STATE_ACTIVE } ProSolidBodyState; extern ProError ProSolidBodyCreate (ProSolid sld, ProSolidBody *body); /* Purpose: Create new body Input Arguments: sld - The solid owner. Output Arguments: body - Newly created body. Return Values: PRO_TK_NO_ERROR - The function successfully initialized body. PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid. */ extern ProError ProSolidBodiesCollect (ProSolid sld, ProSolidBody** bodies); /* Purpose: Collect all bodies in the solid. Input Arguments: sld - visit bodies of this solid Output Arguments: bodies - ProArray of ProSolidBody Return Values: PRO_TK_NO_ERROR - API returned bodies. PRO_TK_BAD_INPUTS - NULL or invalid inputs . */ extern ProError ProSolidDefaultBodyGet (ProSolid sld, ProSolidBody *default_body); /* Purpose: Get default body in solid. Input Arguments: sld - solid Output Arguments: none Return Values: PRO_TK_NO_ERROR - Function is successful. PRO_TK_GENERAL_ERROR - Function failed. */ extern ProError ProSolidDefaultBodySet (ProSolidBody *default_body); /* Purpose: Set specified body as default. Input Arguments: default_body - set this body as default body Output Arguments: none Return Values: PRO_TK_NO_ERROR - Function is successful. PRO_TK_NO_CHANGE - Body is already default body. PRO_TK_GENERAL_ERROR - Function failed. */ extern ProError ProSolidBodySurfaceVisit (ProSolidBody *body, ProSurfaceVisitAction visit_action, ProAppData app_data); /* Purpose: Visits surface in a body Input Arguments: body - body visit_action - action function app_data - application data. Output Arguments: none Return Values: PRO_TK_NO_ERROR - Function is successful. PRO_TK_E_NOT_FOUND- There are no surfaces in specified body. */ extern ProError ProSolidBodyDelete (ProSolidBody *body); /* Purpose: Delete body Input Arguments: body - the body Output Arguments: none Return Values: PRO_TK_NO_ERROR - Function is successful. PRO_TK_BAD_INPUTS- invalid inputs. */ extern ProError ProSolidBodyStateGet (ProSolidBody *body, ProSolidBodyState *state); /* Purpose: Get state of the body Input Arguments: body - the body Output Arguments: none Return Values: PRO_TK_NO_ERROR - Function is successful. PRO_TK_BAD_INPUTS- invalid inputs. */ extern ProError ProSolidBodyIsConstruction (ProSolidBody *body, ProBoolean *is_constr); /* Purpose: Checks if specified body is construction body. Input Arguments: body - body Output Arguments: none Return Values: PRO_TK_NO_ERROR - Function is successful. PRO_TK_GENERAL_ERROR - Function failed. */ extern ProError ProSolidBodyConstructionSet (ProSolidBody *constr_body); /* Purpose: Set specified body as construction. Input Arguments: constr_body - set this body as construction body. Output Arguments: none Return Values: PRO_TK_NO_ERROR - Function is successful. PRO_TK_NO_CHANGE - Body is already construction body. PRO_TK_GENERAL_ERROR - Function failed. */ extern ProError ProSolidBodyIsSheetmetal(ProSolidBody *body, ProBoolean *is_smt); /* Purpose: Checks if specified body is active sheetmetal body. Input Arguments: body - body Output Arguments: none Return Values: PRO_TK_NO_ERROR - Function is successful. PRO_TK_GENERAL_ERROR - Function failed. */ extern ProError ProSolidBodyOutlineGet(ProSolidBody *body, ProOutline body_outline); /* Purpose: Retrieves the regeneration outline of a solid body, with respect to the base coordinate system orientation. Input Arguments: body - The body whose outline is to be determined Output Arguments: body_outline - The outline that defines the boundary box of the body, in the orientation of the base coordinate system Return Values: PRO_TK_NO_ERROR - Function is successful. PRO_TK_E_NOT_FOUND - The solid body is empty PRO_TK_GENERAL_ERROR - Function failed. */ extern ProError ProSolidBodyFeaturesGet (ProSolidBody *body, ProFeature **features); /* Purpose: Lists all features associated with the specified body Input Arguments: body - The body handle. Output Arguments: features - ProArray of features. Free this using ProArrayFree(). Return Values: PRO_TK_NO_ERROR - The function successfully retrieved features. PRO_TK_BAD_INPUTS - The input argument is invalid. PRO_TK_E_NOT_FOUND - No contributing features. */ extern ProError ProSolidBodyDensityGet (ProSolidBody *body, double *density); /* Purpose: Determines the density of the body. <p><b>NOTE: </b> This function returns density of material assigned to body. Input Arguments: body - The body handle. Output Arguments: density - The body density (in the units of the model). Density of material assigned to body. Return Values: PRO_TK_NO_ERROR - The function retrieved the density. PRO_TK_BAD_INPUTS - The input argument is invalid. PRO_TK_E_NOT_FOUND - The part has not been assigned a density value. */ extern ProError ProSolidBodyMassPropertyGet ( ProSolidBody *body, ProName csys_name, ProMassProperty *mass_prop ); /* Purpose: Calculates the mass properties of a body in the specified coordinate system. Input Arguments: body - The handle to a part or an assembly. csys_name - The name of the coordinate system. If this is NULL, the function uses the default coordinate system. Output Arguments: mass_prop - The mass property. Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the information. PRO_TK_BAD_INPUTS - The solid handle is invalid. PRO_TK_E_NOT_FOUND - The specified coordinate system was not found. PRO_TK_GENREAL_ERROR - A general error occurred and the function failed. */ extern ProError ProSolidBodyIsComposite(ProSolidBody* body, ProBoolean* is_cmpst); /* Purpose: Checks if specified body is active composite body. Input Arguments: body - body Output Arguments: none Return Values: PRO_TK_NO_ERROR - Function is successful. PRO_TK_GENERAL_ERROR - Function failed. */ PRO_END_C_DECLS #endif