Creo Simulate: Items
This section describes how to access the properties of Creo Simulate items. The functions described in this section evaluate the model's structural characteristics and thermal profile and provide powerful tools for examining mechanism performance.
Entering the Creo Simulate Environment
You can access the Creo Simulate functions in one of the following situations:
•  When the Creo Parametric session is in the Creo Simulate user interface for a given model.
•  When the application initializes the Creo Simulate environment for a given model.
Functions Introduced:
The function ProMechanicaEnter() allows you to enter the Creo Simulate environment to access information about the Creo Simulate items in a specified model. The model must be displayed in the window.
Note
•  You cannot call the function ProMechanicaEnter() from user_initialize().
•  Models created in Creo Simulate Lite mode, in both Structure and Thermal, are not supported by the Creo Parametric TOOLKIT functions. If you access a Creo Simulate Lite model in the Creo Simulate environment, the function ProMechanicaEnter() returns an error PRO_TK_CANT_ACCESS.
The function ProMechanicaLeave() exits the Creo Simulate environment entered using the previous function.
The function ProMechanicaIsActive() identifies whether the Creo Simulate environment is currently active. The environment might be active if the user has entered the Creo Simulate environment interactively, or if the function ProMechanicaEnter() has been called.
Note
Only functions related to the Creo Simulate database must be called between the calls to the functions ProMechanicaEnter() and ProMechanicaLeave(). ProMechanicaEnter() must not be used to initialize the Creo Simulate User Interface.
Entering the Creo Simulate Environment with Failed Features
You can open a model created in Creo Parametric with features that failed to regenerate in the Creo Simulate environment. The failed features appear on the Model Tree for the part.
You can use the functions described in this chapter to enter and run applications in Creo Simulate environment on a model with failed features or components. You can also create simulation objects on geometry from failed features or components and regenerate the model.
Selection of Creo Simulate Items
Creo TOOLKIT supports selection of certain Creo Simulate items. Refer to the section User Interface: Selection for details about selection in Creo Parametric. These items are selected using ProSelect() or are obtained from the selection buffer while Creo Parametric is in the Creo Simulate Environment. The following table lists the selectable items and their ProSelect() filter strings:
Item Type
ProSelect() Filter String
Model Item Type
Load
sim_load*
PRO_SIMULATION_LOAD
Constraint
sim_load*
PRO_SIMULATION_CONSTRAINT
Beam
sim_beam
PRO_SIMULATION_BEAM
Spring
sim_spring
PRO_SIMULATION_SPRING
Gap
sim_gap
PRO_SIMULATION_GAP
Mass
sim_mass
PRO_SIMULATION_MASS
Shell
sim_shell
PRO_SIMULATION_SHELL
Shell pair
sim_shlpair
PRO_SIMULATION_SHELL_PAIR
Weld
sim_weld
PRO_SIMULATION_WELD
Interface
sim_connect
PRO_SIMULATION_INTERFACE
*Interactive selection using this filter will by default allow the user to select both loads and constraints. Use the ProSelect() filters if you desire to only allow selection of one of these types.
Example 1: Interactively Selecting and Deleting a Creo Simulate Item
The sample code in the file PTMechExDelete.c located at <creo_toolkit_loadpoint>/protk_appls/pt_mech_examples/pt_mech_ex_src shows how to select a Creo Simulate item interactively and delete it.
Accessing Creo Simulate Items
The functions described in this section allow access to Creo Simulate items in Creo Parametric.
Functions Introduced:
The Creo Simulate item is a derivative of the structure ProModelitem and is defined as
typedef struct pro_model_item
{
  ProType type;
  int id;
  ProMdl owner;
  }ProMechItem;
The function ProSolidMechitemVisit() traverses the Creo Simulate items in a specified model. This function allows you to specify the type of item to be located, or optionally all item types can be visited.
The function ProMechitemNameGet() returns the name of the Creo Simulate item.
The function ProMechitemStatusGet() returns the visibility status of the item in the current Creo Simulate environment.
The function ProMechitemFilterAction() is used to filter Creo Simulate items for visiting them.
The function ProMechitemVisitAction() is used to visit a Creo Simulate item.
Creo Simulate Object References
References to specific Creo Simulate items are contained within the Creo Simulate object references structure. This structure is represented in Creo TOOLKIT by the opaque handle, ProMechObjectref.
Functions Introduced:
The function ProMechobjectrefAlloc() allocates memory for the Creo Simulate object references handle.
The function ProMechobjectrefTypeGet() returns the type of the specified Creo Simulate object. The output argument type is one of the PRO_SIMULATION* types.
The function ProMechobjectrefTypeSet() sets the type of the Creo Simulate object.
The function ProMechobjectrefIdGet() obtains the ID of the specified Creo Simulate object.
The function ProMechobjectrefIdSet() sets the ID of the specified Creo Simulate object.
The function ProMechobjectrefPathGet() returns the complete path of the Creo Simulate object reference from the root assembly to the part or assembly that owns the specified Creo Simulate object.
The function ProMechobjectrefPathSet() sets the complete path for the Creo Simulate object reference.
Use the function ProMechobjectrefFree() to release the memory assigned to the Creo Simulate object reference handle.
Use the function ProMechobjectrefProarrayFree() to release the memory assigned to a ProArray of Creo Simulate object reference handles.
Geometric References
Creo Simulate items use a geometric reference structure to contain references to Creo Parametric geometry items. This structure is represented in Creo TOOLKIT by the opaque handle ProMechGeomref.
Functions Introduced:
The function ProMechgeomrefAlloc() allocates memory for the geometric entity. The function returns a handle to the geometric entity.
The function ProMechgeomrefTypeGet() returns the type for the specified geometric entity. The output argument type can have one of the following values:
•  PRO_MECH_POINT—Specifies a point.
•  PRO_MECH_EDGE—Specifies an edge.
•  PRO_MECH_SURFACE—Specifies a surface.
•  PRO_MECH_VERTEX—Specifies a vertex.
•  PRO_MECH_QUILT—Specifies a quilt.
•  PRO_MECH_BOUNDARY—Specifies a boundary. This type is valid for all surfaces.
•  PRO_MECH_CURVE—Specifies a curve.
•  PRO_MECH_MODEL—Specifies a model. This type is valid for all parts and assemblies.
•  PRO_MECH_AXIS—Specifies the axis.
•  PRO_MECH_COORD_SYSTEM—Specifies the coordinate system.
•  PRO_MECH_LAYER—Specifies a layer.
•  PRO_MECH_VOLUME—Specifies a set of associated surfaces that visually represents an entity with volume.
•  PRO_MECH_INT*—Specifies the datum reference features that store the design intent objects. Intent objects are families of associated points, curves, edges, or surfaces that logically define boundaries of geometry created or modified by a feature. The types of datum reference features available are:
  PRO_MECH_INT_PNT—Specifies intent datum point references.
  PRO_MECH_INT_CURVE—Specifies intent curve references.
  PRO_MECH_INT_EDGE—Specifies intent edge references.
  PRO_MECH_INT_SURFACE—Specifies intent surface references.
•  PRO_MECH_FEAT—Specifies the references to a Weld Feature. The weld feature should be of type:
  Groove or Fillet
  A surface weld
•  PRO_MECH_COSMETIC—Specifies a cosmetic entity that is created as a container for lattice beams or walls. The cosmetic entities are created by simplified lattice features, and also by features that intersect or copy the lattices, such as extrude and mirror features.
•  PRO_MECH_BODY—Specifies a body.
The function ProMechgeomrefTypeSet() sets the type of the geometric entity.
The function ProMechgeomrefSubtypeGet() returns the subtypes of the specified geometric entity. Only certain types of geometric entities require subtypes. The geometric entity types and their respective subtypes are as follows:
•  PRO_MECH_POINT
  PRO_MECH_POINT_SINGLE—Specifies the placement of a point at any location.
  PRO_MECH_POINT_FEATURE—Specifies the placement of a point along a surface.
  PRO_MECH_POINT_PATTERN—Specifies the placement of a point along a curve.
•  PRO_MECH_VERTEX
  PRO_MECH_VERTEX_EDGE_START—Specifies the start point of the referenced edge.
  PRO_MECH_VERTEX_EDGE_END—Specifies the end point of the referenced edge.
•  PRO_MECH_COORD_SYSTEM
  PRO_MECH_CSYS_CARTESIAN—Specifies a Cartesian coordinate system.
  PRO_MECH_CSYS_CYLINDRICAL—Specifies a cylindrical coordinate system.
  PRO_MECH_CSYS_SPHERICAL—Specifies a spherical coordinate system.
•  PRO_MECH_SURFACE
  PRO_MECH_SURFACE_NORMAL—Specifies that the surface reference uses the standard normal direction.
  PRO_MECH_SURFACE_REVERSED—Specifies that the surface reference uses the standard normal direction.
•  PRO_MECH_CURVE
  PRO_MECH_CURVE_NORMAL—Specifies that the curve proceeds in the default direction (from t=0 to t=1).
  PRO_MECH_CURVE_REVERSED—Specifies that the curve reference uses the reverse direction of the curve.
•  PRO_MECH_EDGE
  PRO_MECH_EDGE_SURF_0
  PRO_MECH_EDGE_SURF_1
•  PRO_MECH_FEAT
  PRO_MECH_FEAT_3D_LATT—Specifies a 3D lattice.
  PRO_MECH_FEAT_2P5D_LATT—Specifies a 2.5D lattice.
The function ProMechgeomrefSubtypeSet() sets the subtypes for the specified geometric entity.
The function ProMechgeomrefIdGet() returns the ID of the specified entity.
The function ProMechgeomrefIdSet() sets the ID of the specified entity.
The function ProMechgeomrefPathGet()returns the complete path of the assembly-component references from the root assembly to the part or assembly that owns the specified geometric reference entity.
The function ProMechgeomrefPathSet()sets the complete path of the assembly-component references.
Use the function ProMechgeomrefFree()o free the geometric reference entity from the memory.
Use the function ProMechgeomrefProarrayFree()to free the array of geometric entities from the memory.
Y-directions
Several types of Creo Simulate items require a Y-direction (indicating a direction governing the properties of the item). In Creo TOOLKIT , Y-directions are represented using the opaque handle ProMechYDirection. The functions described in this section provide access to the y-direction handle.
Functions Introduced:
The function ProMechydirectionAlloc() allocates memory for the y-direction handle.
The function ProMechydirectionTypeGet() returns the type of the y-direction. Pass the y-direction handle as the input to this function. The output value type can have the following values:
•  PRO_MECH_YDIR_VECTOR—Specifies a direction vector.
•  PRO_MECH_YDIR_REF—Specifies a referenced coordinate system.
•  PRO_MECH_YDIR_CSYS—Specifies a world coordinate system.
The function ProMechydirectionCsysGet() returns the coordinate system if the specified y-direction handle is of type PRO_MECH_YDIR_CSYS.
The function ProMechydirectionCsysSet() sets the coordinate system for the specified y-direction handle. Calling this function changes the Y-direction type to the appropriate type and discards any data related to its previous type.
The function ProMechydirectionReferenceGet() returns the reference entity if the specified y-direction handle is of type PRO_MECH_YDIR_REF.
The function ProMechydirectionReferenceSet() sets the reference entity for the specified y-direction handle. Calling this function changes the Y-direction type to the appropriate type and discards any data related to its previous type.
The function ProMechydirectionVectorGet() returns the vector direction if the specified y-direction handle is of type PRO_MECH_YDIR_VECTOR.
The function ProMechydirectionVectorSet() sets the vector for the specified y-direction handle. Calling this function changes the Y-direction type to the appropriate type and discards any data related to its previous type.
Use the function ProMechydirectionFree() to free the y-direction handle.
Functions
The functions described in this section provide access to the data and contents of Creo Simulate function items.
Function items use the ProType field in the ProMechitem structure as PRO_SIMULATION_FUNCTION.
Functions Introduced:
The function ProMechfuncCsysGet() gets the reference co-ordinate system for the specified Creo Simulate function item. Use the function ProMechfuncCsysSet() to set the reference co-ordinate system for the specified Creo Simulate function item.
The function ProMechfuncDataGet() returns the handle to the function data of the Creo Simulate item. Use the function ProMechfuncDataSet() to set the value of the function data from the Creo Simulate function item
The function ProMechfuncDescriptionGet() returns the description of the Creo Simulate function item. Use the function ProMechfuncDescriptionSet() to set the function description of the Creo Simulate item
The function ProMechfuncdataVartypeGet() gets the function variation type of the Creo Simulate item. Use the function ProMechfuncdataVartypeSet() to set the function variation type for the Creo Simulate item.
The function variation types are defined by the enumerated type ProMechfuncVarType, which has the following values:
•  PRO_MECH_FUNC_UNIVERSAL—Specifies the default function type for the load.
•  PRO_MECH_FUNC_COORD—Specifies the load as a function of the current coordinate system.
•  PRO_MECH_FUNC_TIME—Specifies the load as a function of time.
•  PRO_MECH_FUNC_TEMPERATURE—Specifies the load as a function of temperature.
•  PRO_MECH_FUNC_DEFLECTION—Specifies the load as a function of deflection.
•  PRO_MECH_FUNC_ARCLENGTH—Specifies the load as a function of arc length.
•  PRO_MECH_FUNC_COORDS_TIME—Specifies the load as a combination of spatial (function of current coordinate system) and temporal (function of time) functions.
•  PRO_MECH_FUNC_ARCLENGTH_TIME—Specifies the load as a combination of spatial (function of arc length) and temporal (function of time) functions.
The function ProMechfuncdataTypeGet() determines the type of the function used to create the Creo Simulate item. Specify the handle to the function data as the input for this function.
The output argument value specifies the type of the function and can have the following values:
•  PRO_MECH_FUNCTION_SYMBOLIC—Specifies a symbolic expression for a function.
•  PRO_MECH_FUNCTION_TABLE—Specifies a function created using data from an interpolation table.
Use the function ProMechfuncdataTypeSet() to set the function type to be used to create the Creo Simulate item.
The function ProMechfuncdataExpressionGet() returns the symbolic expression for the specified symbolic function. Use the function ProMechfuncdataExpressionSet() to set the symbolic expression for the specified symbolic function.
The function ProMechfuncdataFuncvalueinterpGet() specifies the interpolation method used for the function value of the tabular function. The output argument value can have the following values:
•  PRO_MECH_TABLE_LINEAR—This method linearly interpolates the variable between the values.
•  PRO_MECH_TABLE_LOGARITHMIC—This method linearly interpolates the log of the variable between values.
Use the function ProMechfuncdataFuncvalueinterpSet() to set the interpolation method for the function value of the tabular function.
The function ProMechfuncdataIndependentvarGet() returns the type of the independent variable for the specified tabular function. The independent variable corresponds to the coordinate system axes and has the following values:
•  PRO_MECH_INDEP_VAR_X—Specifies the value of the X-axis in the Cartesian coordinate system.
•  PRO_MECH_INDEP_VAR_Y—Specifies the value of the Y-axis in Cartesian coordinate system
•  PRO_MECH_INDEP_VAR_Z—Specifies the value of the Z-axis in the Cartesian or cylindrical coordinate system.
•  PRO_MECH_INDEP_VAR_R—Specifies the value of the radius in a cylindrical or spherical coordinate system.
•  PRO_MECH_INDEP_VAR_THETA—Specifies the value of the angle in a cylindrical or spherical coordinate system.
•  PRO_MECH_INDEP_VAR_PHI—Specifies the value of the second angle in a spherical coordinate system.
•  PRO_MECH_INDEP_VAR_TIME—Specifies the value of the time variable (for a time-dependent function).
Use the function ProMechfuncdataIndependentvarSet() to set the independent variable type for the specified tabular function.
The function ProMechfuncdataIndepvarinterpGet() specifies the interpolation method used for the independent variable of the tabular function. Use the function ProMechfuncdataIndepvarinterpSet() to set the interpolation method to be used for the independent variable of the tabular function.
The function ProMechfuncdataMirrordeflectionflagGet() gets the value of the mirror flag for negative deflections from the function data.
Use the function ProMechfuncdataMirrordeflectionflagSet() to set the value of the mirror flag for the negative deflections in the function data
The function ProMechfuncdataFunctableGet() returns an array of table entries for the specified tabular function. Free the array of table entries using the function ProMechtablentryProarrayFree(). Use the function ProMechfuncdataFunctableSet() to set an array of table entries for the specified tabular function.
The function ProMechtablentryFunctionvalueGet() returns the value of the specified function in the table entry. Use the function ProMechtablentryFunctionvalueSet() to set the value of the specified function in the table entry.
The function ProMechtablentryIndepedentvarGet() returns the value for the specified independent variable in the table entry. Use the function ProMechtablentryIndependentvarSet() to set the value for the specified independent variable in the table entry.
Use the function ProMechfuncdataFree() to free the array containing the function data.
Creo Simulate Expressions
Most of the ProMech*Get() functions described in the following sections return mathematical expressions of the type ProMechExpression. This mathematical expression specifies a numeric or relational value, which is expressed and stored as a string. Use the function ProMathExpressionEvaluate() to evaluate such a mathematical expression. Refer to the Evaluating Mathematical Expressions for a Solid section in the Core: Solids, Parts, and Materials section for more information on this function.
Accessing the Properties used for Loads and Constraints
Loads and constraints use complicated structures to mirror the number and type of properties available in the user interface. Several structures recur in different types of loads and constraints, and are described by the following table:
Property
Creo TOOLKIT Opaque Handle
Vectored value—Specifies a value applied in a specified direction.
ProMechvectoredvalue
Direction vector—Represents a defined direction.
ProMechdirvector
Value—Specifies a scalar value potentially affected by a defined variation.
ProMechvalue
Variation—Specifies the components of a defined variation (either by function or by interpolation).
ProMechvariation
Interpolation point—Specifies an individual interpolation point used to define a variation.
ProMechinterpolationpnt
The types specified in the preceding table and the functions required to access these types are defined in the header file ProMechValue.h and ProMechValueSet.h.
Functions Introduced:
The function ProMechvectoredvalueAlloc() allocates memory for the directed value.
The function ProMechvectoredvalueDirectiontypeGet() returns the method used to specify the direction for the vectored value. The output argument type can have one of the following values:
•  PRO_MECH_DIRECTION_BY_VECTOR—The vector is defined by specifying a direction.
•  PRO_MECH_DIRECTION_BY_2_POINTS—The direction of the vector is specified using two points.
The function ProMechvectoredvalueDirectiontypeSet() sets the direction for the vectored value.
The function ProMechvectoredvalueDirectionvectorGet() returns the direction of vector for the vectored load of type PRO_MECH_DIRECTION_BY_VECTOR.
The function ProMechvectoredvalueDirectionvectorSet()sets the direction vector.
The function ProMechvectoredvalueMagnitudeGet() specifies the magnitude of the vectored load. If the value of the magnitude is positive, the load acts in the same direction as the vector and if the value of the magnitude is negative, the load acts in the direction opposite to that of the vector.
The function ProMechvectoredvalueMagnitudeSet() sets the magnitude of the vectored load.
The function ProMechvectoredvaluePointsGet() returns an array of points that define the direction of the vector if type of the vector is PRO_MECH_DIRECTION_BY_2_POINTS. Use the function ProMechvectoredvaluePointsSet() to set the array of points.
Use the function ProMechvectoredvalueFree() to free the memory containing the directed value.
The function ProMechdirvectorComponentsGet() returns the components of the vector for each coordinate direction. Use the function ProMechdirvectorComponentsSet() to set the component values of the vector.
The function ProMechdirvectorCsysGet() returns the coordinate system used to calculate the vector. Use the function ProMechdirvectorCsysSet() to set the coordinate system.
The function ProMechdirvectorVariationGet() specifies the spatial or time-based variation applied to the direction vector. Use the function ProMechdirvectorVariationSet() to set the spatial variation to the direction vector.
The function ProMechvalueValueGet() returns the expression used to specify the load or constraint value. Use the function ProMechvalueValueSet() to set the load or constraint value.
The function ProMechvalueVariationGet() returns the spatial or time-based variation assigned to the specified value. Use the function ProMechvalueVariationSet() to set the spatial variation.
The function ProMechvariationTypeGet() returns the variation type for the specified variation handle. The output argument type can have one of the following values:
•  PRO_MECH_VARIATION_UNIFORM—Specifies that the variation of the load is uniform over the entity.
•  PRO_MECH_VARIATION_INTERPOLATION—Specifies that the load varies along the entity as defined by the interpolation points.
•  PRO_MECH_VARIATION_FUNCTION—Indicates that the variation is defined by specifying a function that is used to vary the property.
The function ProMechvariationFunctionidGet() returns the function id for the specified variation handle if the variation is of type PRO_MECH_VARIATION_FUNCTION. The function id is always extracted from the same model from where the varied value was obtained. Use the function ProMechvariationFunctionidSet() to set the function id for the variation.
The function ProMechvariationInterpolationGet() returns an array of interpolation points for the specified variation handle if the variation is of type PRO_MECH_VARIATION_INTERPOLATION. Use the function ProMechvariationInterpolationSet() to set the interpolation points for the specified variation.
The function ProMechinterpolationpntAlloc() allocates memory for the interpolation points.
The function ProMechinterpolationpntPointGet() specifies the geometric entity associated with the specified interpolation point. Use the function ProMechinterpolationpntPointSet() to set the geometric entity.
The function ProMechinterpolationpntMagnitudeGet() returns the magnitude of the load at the specified interpolation point. Use the function ProMechinterpolationpntMagnitudeSet() to set the magnitude of the load.
Use the function ProMechinterpolationpntFree() to free the memory containing the interpolation point. Use ProMechinterpolationpntProarrayFree() as a shortcut to free an entire array of interpolation points.
The function ProMechexternalfielddataAlloc() allocates memory for the external data structure.
The function ProMechexternalfielddataCsysGet() returns the reference coordinate system for the external field data. Use the function ProMechexternalfielddataCsysSet() to set the reference coordinate system for the external field data.
The function ProMechexternalfielddataFileGet() returns the information related to the external (FEM Neutral Format) FNF file to be imported for the external field. Use the function ProMechexternalfielddataFileSet() to set the path to the fnf file.
The function ProMechvariationExternalfielddataGet() returns the external field assigned for variation of a value.
Use the function ProMechvariationExternalfielddataSet to set the external field assigned for variation of a value.
Creo Simulate Loads
Loads are used to simulate forces that act on the model in the real world. Once you create the loads, you can examine the response of the mechanism to the loads.
Accessing Creo Simulate Loads
The functions described in this section provide a handle to the to the different types of Creo Simulate loads. Loads use the ProType field in the ProMechitem structure as PRO_SIMULATION_LOAD.
Functions Introduced:
The function ProMechLoadTypeGet() returns the type of load contained in the structure ProModelItem.
The output argument value can have one of the following values:
•  PRO_MECH_LOAD_FORCE—Specifies a force load. Use the function ProMechloadForcedataGet() to access the data and contents of the force load structure.
•  PRO_MECH_LOAD_PRESSURE—Specifies a pressure load. Use the function ProMechloadPressuredataGet() to access the data and contents of the pressure load structure.
•  PRO_MECH_LOAD_BEARING—Specifies a bearing load. Use the function ProMechloadBearingdataGet() to access the data and contents of the bearing load structure.
•  PRO_MECH_LOAD_CENTRIFUGAL—Specifies a centrifugal load. Use the function ProMechloadCentrifugaldataGet() to access the data and contents of the centrifugal load structure.
•  PRO_MECH_LOAD_GRAVITY—Specifies a gravity load. Use the function ProMechloadGravitydataGet() to access the data and contents of the gravity load structure.
•  PRO_MECH_LOAD_STRUCTURAL_TEMPERATURE—Specifies a temperature load. Use the function ProMechloadStructtempdataGet() to access the data and contents of the temperature load.
•  PRO_MECH_LOAD_MECT_TEMPERATURE—Specifies a Mechanical temperature load. Use the function ProMechloadMecttempdataGet() to access the data and contents of the mechanical temperature load.
•  PRO_MECH_LOAD_HEAT—Specifies a heat load. Use the function ProMechloadHeatdataGet() to access the data and contents of the heat load.
Note
From Creo Parametric onward, the load types PRO_MECH_LOAD_GLOBAL_TEMPERATURE and PRO_MECH_LOAD_EXTERNAL_TEMPERATURE have been deprecated. The functions ProMechloadGlobaltempdataGet() and ProMechloadExttempdataGet() have also been deprecated. The global temperature loads and external temperature are converted to equivalent structural temperature loads. Use the function ProMechloadStructtempdataGet() instead to access the data and contents of the temperature load.
The function ProMechloadReferencesGet() returns the geometric references. It specifies the geometric references used to define the load.
The function ProMechloadLoadsetsGet() returns the load set(s) that contain the given load. (Currently, Creo Simulate allows a load to be assigned to only one set).
Modifying the Creo Simulate Loads
The functions in this section assign load data to a load in the model. The load should have been created already using ProMechitemCreate(). Changes made via these functions will not be reflected in the user interface until you call the function ProMechitemUpdateComplete().
Note
Once a load has been created and updated successfully, its load type cannot be changed.
The following is the procedure to create a new user-visible load:
1. Create the load using ProMechitemCreate()
2. Set the load references using ProMechloadReferencesSet().
3. Set the load type-specific data using one of the ProMechload*dataSet() functions.
4. Assign the load to a load set using ProMechloadLoadsetAssign().
5. Check the status of the load using ProMechitemStatusGet().
6. Complete the load set using ProMechitemUpdateComplete().
Functions Introduced:
Use the functionProMechloadForcedataSet() to set the data and the contents of the force load structure.
Use the function ProMechloadPressuredataSet() to set the data and contents of the pressure load structure.
Use the function ProMechloadBearingdataSet() to set the data and contents of the pressure load structure.
Use the function ProMechloadCentrifugaldataSet() to set the data and contents of the centrifugal load structure.
Use the function ProMechloadGravitydataSet() to set the data for the gravity load structure.
Use the function ProMechloadStructtempdataSet() to set the data of the temperature load.
Use the function ProMechloadMecttempdataSet() to set the data of the mechanical temperature load.
Use the function ProMechloadHeatdataSet() to set the data and contents of the heat load.
Use the function ProMechloadReferencesSet() to set the geometric references for the load. This must be a valid set of references for the load type.
Use the function ProMechloadLoadsetAssign() to assign a load to a particular loadset.
Note
The functions ProMechloadGlobaltempdataSet() and ProMechloadExttempdataSet() have been deprecated. From Creo Parametric onward, the global temperature loads and external temperature are converted to equivalent structural temperature loads. Use the function ProMechloadStructtempdataSet() instead to set the data for the temperature load.
Example 2: Modifying Magnitude of Force or Pressure Load
The sample code in the file PTMechExMagChange.c located at <creo_toolkit_loadpoint>/protk_appls/pt_mech_examples/pt_mech_ex_src shows how to modify the magnitude of a force or pressure load.
Force and Moment Loads
The functions described in this section provide read access to the data and contents of Creo Simulate force loads.
Functions Introduced:
The function ProMechforcedataAlloc() allocates memory for the Creo Simulate force load data.
The function ProMechforcedataTypeGet() specifies the distribution of the load over the selected entity. The output argument value can have one of the following values:
•  PRO_MECH_FORCE_AT_POINT—Specifies a total load applied to a single point.
•  PRO_MECH_FORCE_TOTAL—Specifies a load distributed along the length or area of the entity such that the integral of the load over the selected entity equals the total prescribed value.
•  PRO_MECH_FORCE_TOTAL_AT_POINT—Specifies a Total Load At Point (TLAP) load.
•  PRO_MECH_FORCE_PER_UNIT—Specifies a load applied to each unit that makes up the selected entity.
•  PRO_MECH_FORCE_TLAP_UNASSOCIATED—Specifies that the Total Load At Point (TLAP) loads are un-associated from the selected entities in the model.
•  PRO_MECH_FORCE_TBLAP—Specifies a Total Bearing Load At Point (TBLAP) for cylindrical surfaces or curves.
Use function ProMechforcedataTypeSet() to set the type of the force load.
The function ProMechforcedataForceGet() returns the magnitude and direction of the force applied to a geometric entity.
The function ProMechforcedataAxialForceIgnoreflagGet() returns a boolean flag indicating whether the axial force is ignored in case of a Total Bearing Load At Point (TBLAP). ProMechforcedataAxialForceIgnoreflagSet() sets a boolean flag indicating whether the axial force is to be applied in case of a Total Bearing Load At Point (TBLAP).
The function ProMechforcedataForceSet() sets the force component for the load data.
The function ProMechforcedataMomentGet() returns the magnitude and direction of the moment applied to a geometric entity.
ProMechforcedataAxialMomentIgnoreflagGet() returns a boolean flag indicating whether the axial moment applied is ignored in case of a Total Bearing Load At Point (TBLAP). ProMechforcedataAxialMomentIgnoreflagSet() sets a boolean flag indicating whether the axial moment is to be applied in case of a Total Bearing Load At Point (TBLAP).
The function ProMechforcedataMomentSet() sets the moment component for the load data.
The function ProMechforcedataRefpntGet() returns the reference point for the specified load if the load was applied at a given point. Use the function ProMechforcedataRefpntSet() to set the reference point.
The function ProMechforcedataFree() frees the memory of the force load data handle.
Pressure, Gravity, and Bearing Loads
The functions described in this section provide read access to the data and contents of the Creo Simulate pressure, gravity, and bearing loads.
Functions Introduced:
The function ProMechpressuredataAlloc() allocates memory for the Creo Simulate pressure load data.
The function ProMechpressuredataValueGet() returns the value of the pressure load.
The function ProMechpressuredataValueSet() sets the value of the pressure load.
The function ProMechpressuredataFree() frees the memory of the pressure load data handle.
The function ProMechbearingdataValueGet() returns the value of the bearing load.
The function ProMechbearingdataValueSet() sets the value of the bearing load.
The function ProMechbearingdataFree() frees the memory of the bearing load data handle.
The function ProMechgravitydataAlloc() allocates memory for the Creo Simulate gravity load data.
The function ProMechgravitydataValueGet() returns the value of the gravity load.
The function ProMechgravitydataValueSet() sets the value of the gravity load.
The function ProMechgravitydataFree() frees the memory of the gravity load data handle.
Centrifugal Loads
A centrifugal load results due to the rigid body rotation of the model and is applied on the entire model. The functions described in this section provide read access to the data and structure of the Creo Simulate centrifugal loads.
Functions Introduced:
The function ProMechcentrifugaldataAlloc() allocates memory for the centrifugal load data.
The function ProMechcentrifugaldataVelocityGet() returns the magnitude and direction of the angular velocity of the centrifugal load.
The function ProMechcentrifugaldataVelocitySet() sets the value of the angular velocity of the centrifugal load.
The function ProMechcentrifugaldataAccelerationGet() returns the acceleration vector for the centrifugal load. The acceleration vector is the rate of change of the angular velocity vector, and represents a change in magnitude or direction of the angular velocity.
The function ProMechcentrifugaldataAccelerationSet() sets the acceleration vector for the centrifugal load.
The function ProMechcentrifugaldataFree() releases the memory assigned to the centrifugal load data.
Temperature Loads
Temperature loads enable you to simulate a temperature change over your model. Temperature loads provide valuable information on how the structure of your model deforms due to a particular temperature change.
Creo Simulate Temperature Loads
The functions described in this section provide access to the data and contents of Creo Simulate temperature loads.
Functions Introduced:
The function ProMechtemperaturedataAlloc() allocates memory for the temperature load data.
The function ProMechtemperaturedataValueGet() returns a structure that contains the value of the temperature and the spatial variation of the load.
The function ProMechtemperaturedataValueSet() sets the value of the temperature and the spatial variation of the load.
The function ProMechtemperaturedataFree() releases the memory assigned to the temperature load data.
Structural Temperature Loads
Structural temperature loads are thermal loads resulting from a temperature change over a geometric entity or a set of geometric entities. This load is applied to curves or surfaces. If the model is an assembly, the structural load can be applied to specific assembly components.
The functions described in this section provide access to the data and contents of the Creo Simulate structural temperature loads.
Functions Introduced:
The function ProMechstructtempdataAlloc() allocates memory for the structural temperature load data.
The function ProMechstructtempdataValueGet() returns a structure containing the temperature applied to the load and the variation of the load.
The function ProMechstructtempdataValueSet() sets the value of the structural temperature data.
The function ProMechstructtempdataReftempGet() returns the reference temperature of the structural temperature object. The reference temperature is the stress-free temperature for the model.
The function ProMechstructtempdataReftempSet() sets the reference temperature of the structural temperature data.
The function ProMechstructtempdataFree() releases the memory assigned to structural temperature load data.
Note
From Creo Parametric onward, the global and external temperature loads are converted to equivalent structural temperature loads. The functions previously available to access Creo Simulate global and external temperature loads have been deprecated. The structural temperature load functions supersede the global and external temperature load functions.
Global Temperature Loads
A global temperature load specifies a thermal load resulting from a temperature change over the entire model.
From Creo Parametric onward, the global temperature loads are converted to equivalent structural temperature loads. The data structure ProMechglobaltempdata for global temperature loads in ProMechLoad.h has been deprecated. Functions previously available to access Creo Simulate global temperature load have also been deprecated. Use the structural temperature load data structure ProMechstructtempdata and the functions that access this data structure instead.For more information on structural load functions, see the section Structural Temperature Loads.
The folowing functions have been deprecated:
•  ProMechglobaltempdataAlloc()
•  ProMechglobaltempdataReftempGet()
•  ProMechglobaltempdataReftempSet()
•  ProMechglobaltempdataValueGet()
•  ProMechglobaltempdataValueSet()
•  ProMechglobaltempdataFree()
MEC/T Temperature Loads
The MEC/T temperature load applies a temperature load across the entire model based on a temperature field developed from the results of a steady state or transient thermal analysis. The functions described in this section provide read and write access to the data and contents of the MEC/T temperature loads.
Functions Introduced:
The function ProMechmecttempdataAlloc() allocates memory for the MEC/T temperature data structure.
The function ProMechmecttempdataAnalysisidGet() returns the ID of the thermal analysis defined for the model.
The function ProMechmecttempdataAnalysisidSet() sets the ID of the thermal analysis.
The function ProMechmecttempdataLoadsetidGet() returns the ID of the load set. The load set is applicable only if the MEC/T temperature load is coming from a steady state thermal analysis.
The function ProMechmecttempdataLoadsetidSet() sets the ID of the load set.
The function ProMechmecttempdataLoadsetGet() returns the load set in the form of the ProMechObjectref object for the MEC/T temperature data.
The function ProMechmecttempdataLoadsetSet() assigns the load set.
The function ProMechmecttempdataReftempGet() returns the reference temperature for the MEC/T temperature data.
The function ProMechmecttempdataReftempSet() sets the reference temperature.
The function ProMechmecttempdataTimestepGet() returns the time step value if the MEC/T temperature load is coming from a transient thermal analysis.
The function ProMechmecttempdataTimestepSet() sets the time step value.
The function ProMechmecttempdataDesignstudyGet() returns the name of the design study for the MEC/T temperature load.
The function ProMechmecttempdataDesignstudySet() assigns the design study name for the MEC/T temperature load.
The function ProMechmecttempdataFree() releases the memory assigned to the MEC/T temperature data structure.
External Temperature Loads
An external temperature load involves importing an externally calculated or measured temperature field as a temperature load. The external temperature field must contain connectivity of a linear solid element mesh, node locations, and temperature values at the nodes.
From Creo Parametric onward, the external temperature loads are converted to equivalent structural temperature loads. The data structure ProMechexttempdata for external temperature loads in ProMechLoad.h has been deprecated. Functions previously available to access Creo Simulate external temperature load have also been deprecated. Use the structural temperature load data structure ProMechstructtempdata and the functions that access this data structure instead. For more information on structural load functions, see the section Structural Temperature Loads
The following functions are deprecated:
•  ProMechexttempdataAlloc()
•  ProMechexttempdataReftempGet()
•  ProMechexttempdataReftempSet()
•  ProMechexttempdataFemneutralfileGet()
•  ProMechexttempdataFemneutralfileSet()
•  ProMechexttempdataFree()
Heat Loads
Heat loads are entity loads and can be placed on one or more points, edgescurves, surfaces, components, or volumes. Heat loads provide local heat sources and sinks for the model and can be used to model internal heat generation or flux.
The functions described in this section provide access to the data and contents of the Creo Simulate heat loads.
Functions Introduced:
Functions Superseded:
•  ProMechheatdataTimefunctionidGet()
•  ProMechheatdataTimefunctionidSet()
The function ProMechheatdataAlloc() allocates memory for the heat load data.
The function ProMechheatdataTypeGet() returns the type of distribution for the heat load across the geometric entities. The output argument type can have one of the following values:
•  PRO_MECH_HEAT_TOTAL—Specifies that the heat load is distributed along the length or area of the entity such that the integral of the load over the selected entity equals the total prescribed value.
•  PRO_MECH_HEAT_PER_UNIT—Specifies that the heat load is applied to each unit that makes up the selected load.
•  PRO_MECH_HEAT_AT_POINT—Specifies that the heat load is applied to a single point, a feature, or a pattern of points.
•  PRO_MECH_HEAT_NONE—No heat load type is assigned.
The function ProMechheatdataTypeSet() sets the type of heat load.
The function ProMechheatdataValueGet() returns the total or distributed heat transfer rate, depending on the distribution option specified for the entities.
The function ProMechheatdataValueSet()sets the value of the heat load.
The function ProMechheatdataTemporalvariationGet() returns the time variation for the specified heat load.
ProMechheatdataTemporalvariationSet() sets the time variation for the specified heat load.
The functions ProMechheatdataTimefunctionidGet() and ProMechheatdataTimefunctionidSet() have been deprecated. Use the functions ProMechheatdataTemporalvariationGet() and ProMechheatdataTemporalvariationSet() instead.
The function ProMechheatdataFree() releases the memory assigned to the heat load data.
Creo Simulate Load Sets
A load set is a collection of loads that act together on the model. The functions described in this section provide access to data and contents of the Creo Simulate load set items. Load sets use the ProType field in the ProMechitem structure as PRO_SIMULATION_LOAD_SET.
Functions Introduced:
The function ProMechloadsetDescriptionGet() returns the name and the description of the specified load set.
The function ProMechloadsetDescriptionSet() sets the description of the specified load set.
The function ProMechloadsetLoadsGet() returns an array containing the different loads that are included in the specified load set.
The function ProMechloadsetTypeGet() returns the type of the specified load set. The type can be as follows:
•  PRO_MECH_LOADSET_STRUCTURAL—Specifies a structural load set.
•  PRO_MECH_LOADSET_THERMAL—Specifies a thermal load set.
Use the function ProMechloadLoadsetAssign() to assign a load to a particular loadset.
Creo Simulate Constraints
To perform analyses on the models you need to apply constraints to at least one area of the model. The constraints are associated with the model geometry and can be applied to a single geometric entity or to multiple entities.
Accessing the Creo Simulate Constraints
The functions described in this section provide access to the data and contents of the Creo Simulate constraints item. Constraints use the ProType field in the ProMechitem structure as PRO_SIMULATION_CONSTRAINTS.
Functions Introduced:
The function ProMechconstrTypeGet() returns the type of constraint contained in the structure ProModelItem. The output can have one of the following values:
•  PRO_MECH_CONSTR_CONVECTION—Specifies a linear convective heat exchange condition for one or more geometric or model entities for thermal mode. Use the function ProMechconstrConvectiondataGet() to access the data and contents of this constraint type.
•  PRO_MECH_CONSTR_DISPLACEMENT—Specifies a displacement constraint for structural mode. Use the function ProMechconstrDisplacementdataGet() to access the data and contents of this constraint type.
•  PRO_MECH_CONSTR_SYMMETRY—Specifies cyclic symmetry for structural mode. Use the function ProMechconstrSymmetrydataGet() to access the data and contents of this constraint type.
•  PRO_MECH_CONSTR_RADIATION—Specifies a thermal radiation exchange between the model surface and the surroundings. Use the function ProMechconstrRadiationdataGet() to access the data and contents of radiation constraint type from the Creo Simulate item. The function ProMechconstrRadiationdataSet() sets the handle to the data and contents of radiation constraint type from the Creo Simulate item.
•  PRO_MECH_CONSTR_TEMPERATURE—Specifies a temperature boundary condition for one or more geometric or model entities for thermal mode. Use the function to() to access the data and contents of this constraint type.
•  PRO_MECH_CONSTR_SYMMETRY_THERM—Specifies a cyclic symmetry thermal constraint for thermal mode. Use the function ProMechconstrThermalsymmetrydataGet() to access the data and contents of this constraint type.
•  PRO_MECH_CONSTR_INIT_TEMP—Specifies the initial temperature boundary condition for one or more geometric entities for thermal mode.
The function ProMechconstrReferencesGet() returns the geometric references. It specifies the geometric references used to define the constraint.
The function ProMechconstrConstrsetsGet() returns the constraint set(s) that contain the given constraint. Currently, Creo Simulate allows a constraint to be assigned to only one set.
Modifying the Creo Simulate Constraints
The functions in this section assign load data to a constraint in the model. The load should have been already created using ProMechitemCreate(). The changes made using these functions will not be reflected in the user interface until you call ProMechitemUpdateComplete().
Note
Once a constraint has been created and updated successfully, its constraint type cannot be changed.
The following is the procedure to create a new user-visible constraint:
1. Create the load using ProMechitemCreate().
2. Set the constraint references using ProMechconstrReferencesSet().
3. Set the constraint type-specific data using one of the ProMechconstr*dataSet() functions.
4. Assign the constraint to a constraint set using ProMechconstrConstrsetAssign().
5. Check the status of the constraint using ProMechitemStatusGet().
6. Complete the constraint using ProMechitemUpdateComplete().
Functions Introduced:
The function ProMechconstrConvectiondataSet() sets the convection constraint data.
The function ProMechconstrDisplacementdataSet() sets the displacement constraint data.
The function ProMechconstrRadiationdataSet() sets the value for the radiation constraint data.
The function ProMechconstrSymmetrydataSet() sets the value of the symmetry constraint data.
The function ProMechconstrTemperaturedataSet() sets the value of the temperature constraint data.
The function ProMechconstrThermalsymmetrydataSet() sets the value of the thermal symmetry constraint data.
The function ProMechconstrReferencesSet() sets the value of the constraint geometric references. This must be a valid set of references for the constraint type.
Use the function ProMechconstrConstrsetAssign() to assign a constraint to a constraint set.
Convection Constraints
Convection constraints specify a boundary condition on the convective heat exchange between a moving fluid and geometric entities and/or element entities within your model.
The functions described in this section provide access to the data and contents of the Creo Simulate convection constraints. You can define the value of the convection constraint as a function of temperature.
Functions Introduced:
The function ProMechconvectiondataAlloc() allocates memory for the convection load data.
The function ProMechconvectiondataBulktempGet() returns the value of the bulk temperature. The bulk temperature specifies the temperature of the fluid in contact with the surface, during convective heat transfer through a surface.
The function ProMechconvectiondataBulktempSet() sets the value of the bulk temperature.
The function ProMechconvectiondataFilmcoefficientGet() returns the value of the film coefficient. The film coefficient specifies the constant of proportionality between the flux through the surface and the difference between the surface temperature and the bulk temperature, in convective heat transfer through a surface.
Use the function ProMechconvectiondataFilmcoefficientSet() to set the value of the film coefficient.
The function ProMechconvectiondataTemperaturedependenceGet() returns the temperature variation of the convection constraint. The convection constraint is specified as a function of temperature. Use the function ProMechconvectiondataTemperaturedependenceSet() to set the temperature variation for the convection constraint.
The function ProMechconvectiondataTemporalvariationGet() returns the temporal variation for the convection constraint. Use the function ProMechconvectiondataTemporalvariationSet() to set the temporal variation of the convection constraint. The temporal variation specifies whether the convection condition is in steady state or a function of time
Note
The function ProMechconvectiondataTimefunctionidGet() and ProMechconvectiondataTimefunctionidSet() have been deprecated. Use the functions ProMechconvectiondataTemporalvariationGet() and ProMechconvectiondataTemporalvariationSet() instead
The function ProMechconvectiondataFree() releases the memory assigned to the convection load data.
Radiation Constraints
A thermal radiation exchanges heat between the model surface and the surroundings. Radiation does not take place between the model surfaces. You can define the value of the radiation constraint as a function of temperature.
The functions described in this section provide access to the data and contents of the Creo Simulate radiation constraints.
Functions Introduced:
The function ProMechradiationdataAlloc() allocates memory for the radiation load data.
The model emits and absorbs energy from the surroundings at a fixed ambient temperature. Use the function ProMechradiationdataAmbienttempExprGet() to get the value of the ambient temperature for the radiation constraint data. Use the function ProMechradiationdataAmbienttempExprSet() to set the value of the ambient temperature for the radiation constraint data.
The function ProMechradiationdataEmissivityGet() gets the emissivity value. Use the function ProMechradiationdataEmissivitySet() to set the emissivity value.
The function ProMechradiationdataTemperaturedependenceGet() returns the temperature variation of the radiation constraint. Use the function ProMechradiationdataTemperaturedependenceSet() to set the temperature variation of the radiation constraint.
The function ProMechradiationdataFree() releases the memory assigned to the radiation load data.
Displacement Constraints
The functions described in this section provide access to the data and contents of the Creo Simulate displacement constraints.
Functions Introduced:
The function ProMechdisplacementdataAlloc() allocates the memory for the displacement constraint data handle.
The function ProMechdisplacementdataTypeGet() returns the type of displacement constraint data. The types of displacement constraints are:
•  PRO_MECH_DISPLACEMENT_REGULAR—Specifies an external limit on the movement of a portion of the model.
•  PRO_MECH_DISPLACEMENT_PLANE—This constraint type allows full planar movement, but constrains any off-plane displacement.
•  PRO_MECH_DISPLACEMENT_PIN— Creates a constraint along a cylindrical surface for 3D models.
•  PRO_MECH_DISPLACEMENT_BALL— Creates a constraint along a spherical surface for 3D models.
Use the function ProMechdisplacementdataTypeSet() to set the displacement constraint data.
The function ProMechdisplacementdataCsysGet() returns the reference coordinate system for the displacement constraint. Use the function ProMechdisplacementdataCsysSet() to set the reference coordinate system for the displacement constraint.
The function ProMechdisplacementdataRotationconstrsGet() returns the rotational component of the displacement about the X, Y, and Z axis. Use the function ProMechdisplacementdataRotationconstrsSet() to set the rotational component of displacement.
The function ProMechdisplacementdataTranslationconstrsGet() returns the translational component of the displacement about the X, Y, and Z directions. Use the function ProMechdisplacementdataTranslationconstrsSet() to set the translational component of displacement.
The function ProMechdisplacementregularconstrAlloc() allocates memory for the regular displacement constraint data structure.
The method ProMechdisplacementregularconstrTypeGet() returns the type of setting for the displacement constraint. Valid values are:
•  PRO_MECH_DISPLACEMENT_FREE—Allows freedom of movement in the specified direction.
•  PRO_MECH_DISPLACEMENT_FIXED—Constrains the entity, preventing movement in the specified direction.
•  PRO_MECH_DISPLACEMENT_ENFORCED—Specifies an enforced displacement or rotation in the specified direction.
The function ProMechdisplacementregularconstrTypeSet() sets the type of the displacement constraint.
The function ProMechdisplacementregularconstrValueGet() returns the variation settings of the displacement if the type of displacement constraint is PRO_MECH_DISPLACEMENT_ENFORCED. The variation settings are as follows:
•  An enforced displacement value in length units for the translational component
•  An enforced rotation in radians for the rotational component
Use the function ProMechdisplacementregularconstrValueSet() to set the variation settings of the displacement.
The function ProMechdisplacementdataTranslationinterpretinradiansflagGet() returns the value true if the angular translations are interpreted in radians. This is applicable only if the displacement is of type PRO_MECH_DISPLACEMENT_REGULAR and if cylindrical or spherical coordinate system is selected for the translations. Use the function ProMechdisplacementdataTranslationinterpretinradiansflagSet() to set the value of the flag interpret angular translations in radians.
The function ProMechdisplacementregularconstrFree() releases the memory assigned to the regular displacement constraint data handle.
The function ProMechdisplacementregularconstrProarrayFree() releases the memory assigned to an array of regular displacement contraints.
The function ProMechdisplacementpinconstrAlloc() allocates memory for the pin constraint data structure.
The function ProMechdisplacementdataPinconstrGet() returns the pin constraint data structure. The pin constraint can have the following properties:
•  Angular—Allows you to control the rotation about the axis of the selected cylindrical surface.
•  Axial—Allows you to control translation along the axis of the selected cylindrical surface.
The function ProMechdisplacementdataPinconstrSet() sets the value for the pin constraint data structure.
The function ProMechdisplacementdataPinangularconstrTypeGet() returns the angular constraint type for the pin constraint. Use the function ProMechdisplacementdataPinangularconstrTypeSet() to set the angular constraint type. Valid values are:
•  PRO_MECH_DISPLACEMENT_FREE—Allows freedom of movement in the specified direction.
•  PRO_MECH_DISPLACEMENT_FIXED—Constrains the entity, preventing movement in the specified direction.
Note
The angular constraint cannot be of type PRO_MECH_DISPLACEMENT_ENFORCED.
The function ProMechdisplacementdataPinaxialconstrTypeGet() returns the axial constraint type for the pin constraint.
Use the method ProMechdisplacementdataPinaxialconstrTypeSet() to set the axial constraint for the pin constraint. Valid values are:
•  PRO_MECH_DISPLACEMENT_FREE—Allows freedom of movement in the specified direction.
•  PRO_MECH_DISPLACEMENT_FIXED—Constrains the entity, preventing movement in the specified direction.
Note
The axial constraint cannot be of type PRO_MECH_DISPLACEMENT_ENFORCED.
Use the function ProMechdisplacementpinconstrFree() to free the memory containing the pin constraint data structure.
Example 3: Copying and Assigning a Displacement Constraint to a New Reference
The sample code in the file PTMechExCopy.c located at <creo_toolkit_loadpoint>/protk_appls/pt_mech_examples
/pt_mech_ex_src
shows how to copy a displacement constraint and assign it to a new reference.
Symmetry Constraints
A symmetry constraint allows you to analyze a section of a symmetric model that simulates the behavior of the whole part or assembly to which it belongs.
The functions described in this section provide read and write access to the data and contents of the Creo Simulate symmetry constraints.
Functions Introduced:
The function ProMechsymmetrydataAlloc() allocates the memory for the symmetry constraint data handle.
The function ProMechsymmetrydataTypeGet() returns the type of symmetry constraint. The argument type can have the following values:
•  PRO_MECH_SYMMETRY_CYCLIC—Specifies a cyclic symmetry
•  PRO_MECH_SYMMETRY_MIRROR—Specifies a mirror symmetry
Use the function ProMechsymmetrydataTypeSet() to set the type of symmetry constraint.
The function ProMechsymmetrydataAxisGet() returns the axis of symmetry of the section. Use the function ProMechsymmetrydataAxisSet() to set the axis of symmetry.
The function ProMechsymmetrydataSide1Get() returns the first side of the cut section. Use the function ProMechsymmetrydataSide1Set() to set the geometric references of the first side.
The function ProMechsymmetrydataSide2Get() returns the second side of the cut section. Use the function ProMechsymmetrydataSide2Set() to set the geometric references of the second side.
The function ProMechsymmetrydataFree() releases the memory assigned to the symmetry constraint data handle.
Creo Simulate Constraint Sets
A constraint set is a collection of constraints that act together, and at the same time, on the model. Constraint sets do not contain loads.
The functions referring to the Creo Simulate constraint sets use the structure ProModelItem. Constraint sets use the ProType field in the ProMechitem structure as PRO_SIMULATION_CONSTR_SET.
Functions Introduced:
The function ProMechconstrsetTypeGet() returns the type of the constraint sets that are applied to the model. The types are as follows:
•  PRO_MECH_LOADSET_STRUCTURAL—Specifies a structural constraint set.
•  PRO_MECH_LOADSET_THERMAL—Specifies a thermal constraint set.
The function ProMechconstrsetDescriptionGet() returns the description of the constraint set. The function ProMechconstrsetDescriptionSet() enables you to change the description of the constraint set.
The function ProMechconstrsetConstrsGet() returns the constraints specified in the constraint set.
Use the function ProMechconstrConstrsetAssign() to assign a constraint to a constraint set.
Creo Simulate Matrix Functions
The functions described in this section provide read and write access to the matrix data of the Creo Simulate mass properties, spring properties, beam orientation, and beam section items.
Functions Introduced:
The function ProMechMatrixAlloc() allocates memory for the Creo Simulate matrix handle.
The function ProMechMatrixComponentGet() gets the individual matrix component value at the given index values. The function ProMathExpressionEvaluate() is used to evaluate the expression.
The function ProMechMatrixComponentSet() sets the individual matrix component value at the given index values. You can also set an expression in the specified index value.
The function ProMechMatrixFree() releases the memory assigned for the Creo Simulate matrix handle.
Creo Simulate Vector Functions
The functions described in this section provide read and write access to the vector data of the Creo Simulate a mass properties, spring properties, beam orientation, and beam section items.
Functions Introduced:
The function ProMechVectorAlloc() allocates memory for the Creo Simulate vector handle.
The function ProMechVectorComponentGet() gets the individual vector component value at the given index values. The function ProMathExpressionEvaluate() is used to evaluate the expression.
The function ProMechVectorComponentSet() sets the individual vector component value at the given index values. You can also set an expression in the specified index value.
The function ProMechVectorFree() releases the memory assigned for the Creo Simulate vector handle.
Creo Simulate Beams
A beam is a one-dimensional idealization that, in three dimensions, represents a structure whose length is much greater than its other two dimensions.
The functions described in this section provide read and write access to the data and contents of Creo Simulate beam items. Beams use the ProType field in the ProMechitem structure as PRO_SIMULATION_BEAM.
Functions Introduced:
The function ProMechbeamdataAlloc() allocates the memory for the beam data handle.
The function ProMechbeamTypeGet() returns the types of beams.
The different types of beams are as follows:
•  PRO_MECH_BEAM_BEAM—Specifies a beam. Use the function ProMechbeamBeamdataGet() to access the data structure for the beam. Use the function ProMechbeamBeamdataSet() to modify the beam.
•  PROMECH_BEAM_TRUSS—Specifies a truss. Use the function ProMechbeamTrussdataGet() to access the data structure for the truss. Use the function ProMechbeamTrussdataSet() to modify the truss.
The function ProMechbeamMaterialIdGet() returns the ID of the Creo Parametric material used to create the beam. Use the function ProMechbeamMaterialIdSet() to set the material ID for the beam.
The function ProMechbeamReferencesGet() returns the start and end points of the beam or a curve or surface of the beam. Use the function ProMechbeamReferencesSet() to set the beam references.
The function ProMechbeamsideAlloc() allocates the memory for the beam side data handle.
The function ProMechbeamdataCompcrvrelGet() returns a boolean that indicates whether the beam releases are applied only to the ends of the selected composite curve or to the ends of the individual curves. Use the function ProMechbeamdataCompcrvrelSet() to set whether the beam releases are to be applied only to the ends of the selected composite curve or to the ends of the individual curves.
The function ProMechbeamdataSidesGet() returns a structure containing the cross section properties for beam elements, the orientation properties for angle and offsets, and the degrees of freedom at each beam end. Use the function ProMechbeamdataSidesSet() to set the cross section properties and orientation properties of the beam data.
The function ProMechbeamsideOrientGet() returns the orientation ID for the specified beam elements. Use the function ProMechbeamsideOrientSet() to set the orientation ID.
The function ProMechbeamsideReleaseGet() returns the beam release ID for the specified beam elements. Use the function ProMechbeamsideReleaseSet() to set the beam release ID.
The function ProMechbeamsideSectionGet() returns the cross section ID for the specified beam elements. Use the function ProMechbeamsideSectionSet() to set the cross section ID.
The function ProMechbeamsideFree() releases the memory assigned to the beam side handle.
The function ProMechbeamsideProarrayFree() releases the memory assigned to a ProArray of beam side handles.
The function ProMechbeamdataStressrecoveryGet() returns a boolean that indicates whether stress recovery is included while creating the beam. If this option is specified as true, you can access the beam stress at a specific location on the beam section. Use the function ProMechbeamdataStressrecoverySet() to set the value of the boolean.
The function ProMechbeamdataXyshearGet() returns the shear relief coefficient due to taper for the XY planes. Use the function ProMechbeamdataXyshearSet() to set the shear relief coefficient relative to the XY plane.
The function ProMechbeamdataXzshearGet() returns the shear relief coefficient due to taper for the XZ planes. Use the function ProMechbeamdataXzshearSet() to set the shear relief coefficient relative to the XZ plane.
The function ProMechbeamdataYdirectionGet() returns the orientation of the XY plane of a beam by defining its Y-direction. Use the function ProMechbeamdataYdirectionSet() to set the Y-direction of the beam.
The function ProMechbeamdataFree() releases the memory assigned to the beam data handle.
The function ProMechtrussdataAlloc() allocates the memory for the truss data handle.
The function ProMechtrussdataSectionGet() returns the cross section ID for the specified truss elements. Use the function ProMechtrussdataSectionSet() to set the beam section ID for the truss data.
The function ProMechtrussdataFree() releases the memory assigned to the truss data handle.
Creo Simulate Beams: Sections, Sketched Sections, and General Sections
The functions described in this section provide read and write access to the data and contents of the Creo Simulate beam sections, sketched beam sections, and general beam sections items.
Functions Introduced:
These functions use the enumerated type ProMechBeamsectionPropertyType to define the beam section property type.
typedef enum
{
  PRO_MECH_BEAMSECTION_SKETCHED_FEATURE_ID       = 0,  
/* int */ PRO_MECH_BEAMSECTION_SKETCHED_SHEARCENTER = 1,
/* ProMechVector (2) [Dy, Dz] */ PRO_MECH_BEAMSECTION_SKETCHED_ORIENTTYPE = 2,
/* ProMechSketchedSectionOrient (int) */ PRO_MECH_BEAMSECTION_SQUARE_DIMENSION = 3,
/* ProMechExpression [a] */ PRO_MECH_BEAMSECTION_RECTANGLE_DIMENSION = 4,
/* ProMechVector (2) [b, d] */ PRO_MECH_BEAMSECTION_HOLLOWRECTANGLE_DIMENSION = 5,
/* ProMechVector (4) [b, d, bi, di] */ PRO_MECH_BEAMSECTION_CHANNEL_DIMENSION = 6,
/* ProMechVector (4) [b, t, di, tw] */ PRO_MECH_BEAMSECTION_CHANNEL_SHEARFACTOR = 7,
/* ProMechVector (2) [Fy, Fz] */ PRO_MECH_BEAMSECTION_IBEAM_DIMENSION = 8,
/* ProMechVector (4) [b, t, di, tw] */ PRO_MECH_BEAMSECTION_LSECTION_DIMENSION = 9,
/* ProMechVector (4) [b, t, di, tw] */ PRO_MECH_BEAMSECTION_LSECTION_SHEARFACTOR = 10,
/* ProMechVector (2) [Fy, Fz] */ PRO_MECH_BEAMSECTION_DIAMOND_DIMENSION = 11,
/* ProMechVector (2) [b, d] */ PRO_MECH_BEAMSECTION_SOLIDCIRCLE_DIMENSION = 12,
/* ProMechExpression [R] */ PRO_MECH_BEAMSECTION_HOLLOWCIRCLE_DIMENSION = 13,
/* ProMechVector (2) [R, Ri] */ PRO_MECH_BEAMSECTION_SOLIDELLIPSE_DIMENSION = 14,
/* ProMechVector (2) [a, b]*/ PRO_MECH_BEAMSECTION_HOLLOWELLIPSE_DIMENSION = 15,
/* ProMechVector (3) [a, b, ai] */ PRO_MECH_BEAMSECTION_HOLLOWELLIPSE_SHEARFACTOR = 16,
/* ProMechVector (2) [Fy, Fz] */ PRO_MECH_BEAMSECTION_GENERAL_AREA = 17,
/* ProMechExpression [Area] */ PRO_MECH_BEAMSECTION_GENERAL_INERTIA = 18,
/* ProMechMatrix (2x2, symmetrical) [ Ixx Ixy ] [ Iyy ] */ PRO_MECH_BEAMSECTION_GENERAL_TORSIONSTIFFNESS = 19,
/* ProMechExpression [j] */ PRO_MECH_BEAMSECTION_GENERAL_SHEARFACTOR = 20,
/* ProMechVector (2) [Fy, Fz] */ PRO_MECH_BEAMSECTION_GENERAL_SHEARCENTER = 21,
/* ProMechVector (2) [Dy, Dz] */ PRO_MECH_BEAMSECTION_GENERAL_POINT_1 = 22,
/* ProMechVector (2) [y1, z1] */ PRO_MECH_BEAMSECTION_GENERAL_POINT_2 = 23,
/* ProMechVector (2) [y2, z2] */ PRO_MECH_BEAMSECTION_GENERAL_POINT_3 = 24,
/* ProMechVector (2) [y3, z3] */ PRO_MECH_BEAMSECTION_GENERAL_POINT_4 = 25,
/* ProMechVector (2) [y4, z4] */ PRO_MECH_BEAMSECTION_GENERAL_POINT_5 = 26,
/* ProMechVector (2) [y5, z5] */ PRO_MECH_BEAMSECTION_GENERAL_POINT_6 = 27,
/* ProMechVector (2) [y6, z6] */ PRO_MECH_BEAMSECTION_GENERAL_POINT_7 = 28,
/* ProMechVector (2) [y7, z7] */ PRO_MECH_BEAMSECTION_GENERAL_POINT_8 = 29,
/* ProMechVector (2) [y8, z8] */ PRO_MECH_BEAMSECTION_GENERAL_POINT_9 = 30,
/* ProMechVector (2) [y9, z9] */ PRO_MECH_BEAMSECTION_WARPCOEFFICIENT = 31,
/* ProMechExpression [Warp Coefficient] */ PRO_MECH_BEAMSECTION_NONSTRUCTMASS = 32,
/* ProMechExpression [Non-Str Mass] */ PRO_MECH_BEAMSECTION_NONSTRUCTMASSMOMENT = 33,
/* ProMechExpression [Non-Str Mass Moment] */ PRO_MECH_BEAMSECTION_CENTERGRAVITY = 34
/* ProMechVector (2) [cg:y, cg:z] */ } ProMechBeamsectionPropertyType;
The function ProMechBeamsectionTypeGet() returns the type of beam section. Use the function ProMechBeamsectionTypeSet() to set the type of beam section.
The types of beam sections are as follows:
•  PRO_MECH_BEAM_SECTION_SKETCHED—Specifies a cross section created using either the sketch solid beam or sketch thin beam type. Use the enumerated type ProMechBeamsectionPropertyType to get and set the properties of the sketched beam section.
•  PRO_MECH_BEAM_SECTION_SQUARE—Specifies a square beam section type. The cross section dimension is specified by the length of the sides of the square. Use the function ProMechBeamsectionExpressionGet() to get the square beam section data. Use the function ProMechBeamsectionExpressionSet() to set the properties of the square beam section.
•  PRO_MECH_BEAM_SECTION_RECTANGLE—Specifies a rectangular beam section type. The cross section dimension is specified by the height and width of the rectangle. Use the function ProMechBeamsectionVectorGet() to get the rectangular beam section data. Use the function ProMechBeamsectionVectorSet() to set the properties of the rectangular beam section
•  PRO_MECH_BEAM_SECTION_HOLLOW_RECTANGLE—Specifies a hollow rectangular beam section type. The cross section dimension for this beam type is specified by the Outer height and width, and the inner height and width of the rectangle. Use the function ProMechBeamsectionVectorGet() to get the hollow beam section data. Use the function ProMechBeamsectionVectorSet() to set the properties of the hollow beam section.
•  PRO_MECH_BEAM_SECTION_CHANNEL—Specifies a channel beam section type. The cross section dimension is specified by the flange width, flange thickness, web height, and web thickness. Use the function ProMechBeamsectionVectorGet() to get the channel section data. Use the function ProMechBeamsectionVectorSet() to set the properties of the channel beam section.
•  PRO_MECH_BEAM_SECTION_I_BEAM—Specifies an L-section beam section type. The cross section dimension for this beam type is specified by the overall flange width, flange thickness, web height, and web thickness. Use the function ProMechBeamsectionVectorGet() to get the L-section data. Use the function ProMechBeamsectionVectorSet() to set the properties of the L-section beam type.
•  PRO_MECH_BEAM_SECTION_L_SECTION—Specifies an L-section beam section type. The cross section dimension for this beam type is specified by the overall flange width, flange thickness, web height, and web thickness. Use the function ProMechBeamsectionVectorGet() to get the L-section data. Use the function ProMechBeamsectionVectorSet() to set the properties of the L-section beam type.
•  PRO_MECH_BEAM_SECTION_DIAMOND—Specifies a diamond beam section type. The cross section dimension is specified by the width and height of the sides. Use the function ProMechBeamsectionVectorGet() to get the diamond beam section data. Use the function ProMechBeamsectionVectorSet() to set the properties of the diamond beam section.
•  PRO_MECH_BEAM_SECTION_SOLID_CIRCLE—Specifies a solid circle beam section type. The cross section dimension for this beam type is specified by the radius of the circular beam cross-section. Use the function ProMechsectiondataCirclesectdataGet() to access the solid circle beam section data structure. Use the function ProMechsectiondataCirclesectdataSet() to modify the solid circle beam section data structure.
•  PRO_MECH_BEAM_SECTION_HOLLOW_CIRCLE—Specifies a hollow circle beam section type. The cross section dimension for this beam type is specified by the outside radius and the inside radius of the hollow beam cross-section. Use the function ProMechBeamsectionVectorGet() to get the hollow circle beam section data. Use the ProMechBeamsectionVectorSet() to set the properties of the hollow circle beam section.
•  PRO_MECH_BEAM_SECTION_SOLID_ELLIPSE—Specifies a solid ellipse beam section type. The cross section dimension for this beam type is specified by the length of the major axis and the length of the minor axis. Use the function ProMechBeamsectionVectorGet() to get the solid ellipse beam data. Use the function ProMechBeamsectionVectorSet() to set the properties of the solid ellipse beam section.
•  PRO_MECH_BEAM_SECTION_HOLLOW_ELLIPSE—Specifies a hollow ellipse beam section type. The cross section dimension for this beam type is specified by the length of the major axis, length of the minor axis, and the inside major axis. Use the function ProMechBeamsectionVectorGet() to get the hollow ellipse beam data. Use the function ProMechBeamsectionVectorSet() to set the properties of the hollow ellipse beam section
•  PRO_MECH_BEAM_SECTION_GENERAL—Specifies a general beam section type. A general beam section type does not have a predefined shape. Use the enumerated type ProMechBeamsectionPropertyType to get and set the properties of the general beam data.
The function ProMechBeamsectionIntegerGet() returns the integer value of the specified beam type property. Use the function ProMechBeamsectionIntegerSet() to set an integer value for the specified beam type. For example, you can get and set the beam sketch feature id, the type of orientation used for the sketched beam section, and so on.
The function ProMechBeamsectionExpressionGet() returns the expression of type ProMechExpression for the specified beam section type. To evaluate the expression use the function ProMathExpressionEvaluate(). The function ProMechBeamsectionExpressionSet() sets the expression of type ProMechExpression for the specified beam section type. For example, you can get and set the section area, torsion stiffness (J parameter) of the beam section, and so on.
The function ProMechBeamsectionExpressionGet() returns the expression of type ProMechExpression for the specified beam section type. To evaluate the expression use the function ProMathExpressionEvaluate(). The function ProMechBeamsectionExpressionSet() sets the expression of type ProMechExpression for the specified beam section type. For example, you can get and set the section area, torsion stiffness (J parameter) of the beam section, and so on.
The function ProMechBeamsectionMatrixGet() returns the Creo Simulate matrix handle ProMechMatrix. Use the function ProMechBeamsectionMatrixSet() to set the handle to ProMechMatrix. The functions ProMechMatrixComponentGet/Set provide read and write access to the individual matrix components of the specified beam section property type. For example, you can get/set the values for moments of intertia Ixx, Ixy, and Izz. See the section Creo Simulate Matrix Functions, for more information on handling matrix components.
The function ProMechBeamsectionMatrixGet() automatically allocates memory for the Creo Parametric Creo Simulate matrix handle. Use the function ProMechMatrixFree() to free the assigned memory.
The function ProMechBeamsectionVectorGet() returns the Creo Simulate vector handle ProMechVector. Use the function ProMechBeamsectionVectorSet() to set the handle to ProMechVector. The functions ProMechVectorComponentGet/Set provide read and write access to the individual vector components of the specified beam section property type. For example, you can get/set the values for circular, square, channel, I-beam sections, and so on. See the section Creo Simulate Vector Functions, for more information on handling vector components.
The function ProMechBeamsectionVectorGet() automatically allocates the memory for the Creo Simulate vector handle. Use the function ProMechVectorFree() to free the memory.
Creo Simulate Beam Sections
The functions described in this section provide read and write access to the data and contents of the Creo Simulate beam section items. Beam sections use the ProType field in the ProMechitem structure as PRO_SIMULATION_BEAM_SECTION.
Functions Introduced:
The beam section functions listed under Functions Superseded have been deprecated. Use the functions described in the section Creo Simulate Beams: Sections, Sketched Sections, and General Sections instead.
Functions Superseded:
The function ProMechsectiondataAlloc() allocates the memory for the beam section data handle.
The function ProMechbeamsectionDataGet() provides access to the data structure containing the properties of the beam section data. Use the function ProMechbeamsectionDataSet() to set the properties of the beam section data.
The function ProMechsectiondataSectiontypeGet() returns the types of beam sections.
The types of beam sections are as follows:
•  PRO_MECH_BEAM_SECTION_SKETCHED—Specifies a cross section created using either the sketch solid beam or sketch thin beam type. Use the function ProMechsectiondataSketchedsectdataGet() to access the sketched beam data structure. Use the function ProMechsectiondataSketchedsectdataSet() to set the properties of the sketched beam data structure.
•  PRO_MECH_BEAM_SECTION_SQUARE—Specifies a square beam section type. The cross section dimension is specified by the length of the sides of the square. Use the function ProMechsectiondataSquaresectdataGet() to access the square section data structure. Use the function ProMechsectiondataSquaresectdataSet() to set the properties of the square section data structure.
•  PRO_MECH_BEAM_SECTION_RECTANGLE—Specifies a rectangular beam section type. The cross section dimension is specified by the height and width of the rectangle. Use the function ProMechsectiondataRectanglesectdataGet() to access the rectangular section data structure. Use the function ProMechsectiondataRectanglesectdataSet() to access the rectangular section data structure.
•  PRO_MECH_BEAM_SECTION_HOLLOW_RECTANGLE— Specifies a hollow rectangular beam section type. The cross section dimension for this beam type is specified by the Outer height and width, and the inner height and width of the rectangle. Use the function ProMechsectiondataHollowrectsectdataGet() to access the hollow section data structure. Use the function ProMechsectiondataHollowrectsectdataSet() to access the hollow section data structure.
•  PRO_MECH_BEAM_SECTION_CHANNEL—Specifies a channel beam section type. The cross section dimension is specified by the flange width, flange thickness, web height, and web thickness. Use the function ProMechsectiondataChannelsectdataGet() to access the channel section data structure. Use the function ProMechsectiondataChannelsectdataSet() to access the channel section data structure.
•  PRO_MECH_BEAM_SECTION_I_BEAM—Specifies an I-beam section type. The cross section dimension for this beam type is specified by the flange width, flange thickness, web height, and web thickness. Use the function ProMechsectiondataIbeamsectdataGet() to access the I-beam section data structure. Use the function ProMechsectiondataIbeamsectdataSet() to access the I-beam section data structure.
•  PRO_MECH_BEAM_SECTION_L_SECTION—Specifies an L-section beam section type. The cross section dimension for this beam type is specified by the overall flange width, flange thickness, web height, and web thickness. Use the function ProMechsectiondataLsectionsectdataGet() to access the L-section data structure. Use the function ProMechsectiondataLsectionsectdataSet() to access the L-section data structure.
•  PRO_MECH_BEAM_SECTION_DIAMOND—Specifies a diamond beam section type. The cross section dimension is specified by the width and height of the sides. Use the function ProMechsectiondataDiamondsectdataGet() to access the diamond beam section data structure. Use the function ProMechsectiondataDiamondsectdataSet() to modify the diamond beam section data structure.
•  PRO_MECH_BEAM_SECTION_SOLID_CIRCLE—Specifies a solid circle beam section type. The cross section dimension for this beam type is specified by the radius of the circular beam cross-section. Use the function ProMechsectiondataCirclesectdataGet() to access the solid circle beam section data structure. Use the function ProMechsectiondataCirclesectdataSet() to modify the solid circle beam section data structure.
•  PRO_MECH_BEAM_SECTION_HOLLOW_CIRCLE—Specifies a hollow circle beam section type. The cross section dimension for this beam type is specified by the outside radius and the inside radius of the hollow beam cross-section. Use the function ProMechsectiondataHollowcirclesectdataGet() to access the hollow circle beam section data structure. Use the function ProMechsectiondataHollowcirclesectdataSet() to modify the hollow circle beam section data structure.
•  PRO_MECH_BEAM_SECTION_SOLID_ELLIPSE—Specifies a solid ellipse beam section type. The cross section dimension for this beam type is specified by the length of the major axis and the length of the minor axis. Use the function ProMechsectiondataEllipsesectdataGet() to access the solid ellipse beam data structure. Use the function ProMechsectiondataEllipsesectdataSet() to modify the solid ellipse beam data structure.
•  PRO_MECH_BEAM_SECTION_HOLLOW_ELLIPSE—Specifies a hollow ellipse beam section type. The cross section dimension for this beam type is specified by the length of the major axis, length of the minor axis, and the inside major axis. Use the function ProMechsectiondataHollowellipsesectdataGet() to access the hollow ellipse beam data structure. Use the function ProMechsectiondataHollowellipsesectdataSet() to access the hollow ellipse beam data structure.
•  PRO_MECH_BEAM_SECTION_GENERAL—Specifies a general beam section type. A general beam section type does not have a predefined shape. Use the function ProMechsectiondataGeneralsectdataGet() to access the general beam data structure. Use the function ProMechsectiondataGeneralsectdataSet() to access the general beam data structure.
The function ProMechbeamsectionDescriptionGet() returns the description for the specified beam section. Use the function ProMechbeamsectionDescriptionSet() to set the description of the specified beam section.
The function ProMechsectiondataNonstructcogGet() returns the Y and Z coordinates of the non-structural mass center of gravity. A non-structural mass is a mass that responds to gravity, but does not strengthen the structure. Non-structural masses can have different moments of inertia and gravitational centers than the specified beam. The function ProMechsectiondataNonstructcogSet() sets the Y and Z coordinates of the non-structural mass center of gravity.
The function ProMechsectiondataNonstructmassGet() returns the non-structural mass per unit length. Use the function ProMechsectiondataNonstructmassSet() to set the non-structural mass per unit length the beam section.
The function ProMechsectiondataNonstructmomentGet() returns the non-structural mass moment of inertia per unit length. Use the function ProMechsectiondataNonstructmomentSet() to set the non-structural mass moment of inertia per unit length of the beam section.
The function ProMechsectiondataWarpcoeffGet() returns the warp coefficient of the beam section. Use the function ProMechsectiondataWarpcoeffSet() to set the warp coefficient of the beam section.
The function ProMechsectiondataFree() releases the memory assigned to the beam section data.
Sketched Beam Section
The sketched beam section functions described below have been deprecated. Use the functions described in the section Creo Simulate Beams: Sections, Sketched Sections, and General Sections instead.
Functions Superseded:
The function ProMechsketchedsctndataAlloc()allocates the memory for the sketched beam section data handle.
The function ProMechsketchedsctndataFeatureidGet() returns the sketch feature id of the sketched beam section.
The function ProMechsketchedsctndataOrienttypeGet() returns the type of orientation for the sketched beam section. The beam orientation defines the Y direction of the beam, that is, how it rotates on the XY plane. The types of orientation is as follows:
•  PRO_MECH_BEAM_SECTION_SKET_XY_AS_YZ—The beam section X and Y coordinates correspond to the beam Y and Z directions, respectively.
•  PRO_MECH_BEAM_SECTION_SKET_XY_AS_ZY—The beam section X and Y coordinates correspond to the beam Z and Y directions, respectively.
Use the function ProMechsketchedsctndataOrienttypeSet() to set the type of orientation for the sketched beam section.
The function ProMechsketchedsctndataShearcenterGet() returns the shear center of the beam section. The shear center is the point on a beam section about which the section rotates under deflection. The function ProMechsketchedsctndataShearcenterSet() sets the shear center of the beam section.
The function ProMechsketchedsctndataFree() releases the memory assigned to sketched beam section data.
General Beam Section
The general beam section functions described below have been deprecated. Use the functions described in the section Creo Simulate Beams: Sections, Sketched Sections, and General Sections instead.
Functions Superseded:
The function ProMechgeneralsctndataAlloc() allocates the memory for the general beam section data handle.
The function ProMechgeneralsctndataAreaGet() returns the cross-sectional area for each beam section. Use the function ProMechgeneralsctndataAreaSet() to set the cross-sectional area for the beam section.
The function ProMechgeneralsctndataAreaproductGet() returns the area product of the moments of inertia. Use the function ProMechgeneralsctndataAreaproductSet() to set the area product of inertia.
The function ProMechgeneralsctndataMomentsGet() returns the second moments of area for each beam section. These properties describe the stiffness in bending about a beam's principle Y and Z axes. Use the function ProMechgeneralsctndataMomentsSet() to set the second moments of area for each beam section.
The function ProMechgeneralsctndataShearcenterGet() returns the Shear DY and Shear DZ values. These values specify the distance between shear center (the point on a beam section about which the section rotates under deflection) and the centroid of the beam section, with respect to the principal axes. Use the function ProMechgeneralsctndataShearcenterSet() to set the Shear DY and Shear DZ values.
The function ProMechgeneralsctndataShearfactorGet() returns the Shear FY and Shear FZ values for the beam section. These values represent the ratio of a beam's effective "shear area" to its true cross-sectional area for shear in the principal Y and Z directions. Use the function ProMechgeneralsctndataShearfactorSet() to set the Shear FY and Shear FZ values for the beam section.
The function ProMechgeneralsctndataTorsionstiffnessGet() returns the second polar moment of area for each beam section. This property describes the stiffness in torsion. Use the function ProMechgeneralsctndataTorsionstiffnessSet() to set the torsion stiffness for each beam section.
The function ProMechgeneralsctndataStressrecoverypntsGet() returns the stress recovery points of the beam section. Use the ProMechgeneralsctndataStressrecoverypntsSet() to set the stress recovery points of the beam section.
The function ProMechgeneralsctndataFree() releases the memory assigned to the sketched beam section data.
Beam Orientations
The functions described in this section provide read and write access to the data and contents of the Creo Simulate beam orientations data structure. Beam orientations use the ProType field in the ProMechitem structure as PRO_SIMULATION_BEAM_ORIENT.
Functions Introduced:
Functions Superseded:
The function ProMechbeamorientDataGet() provides access to the data structure containing the properties of the beam orientation. Use the function ProMechbeamorientDataSet() to set the properties of the beam orientation data. The functions ProMechbeamorientDataGet() and ProMechbeamorientDataSet() have been deprecated. Use the functions ProMechBeamorientIntegerGet() and ProMechBeamorientIntegerSet() instead.
The function ProMechbeamorientDescriptionGet() returns the description of the beam orientation. Use the function ProMechbeamorientDescriptionSet() to set the description of the beam orientation.
The functions ProMechBeamorientExpressionGet/Set, ProMechBeamorientIntegerGet/Set, and ProMechBeamorientVectorGet/Set use the enumerated type ProMechBeamorientPropertyType to define the beam orientation property type.
The values are as follows:
typedef enum
{
  PRO_MECH_BEAM_ORIENT_OFFSET_TYPE = 0,  /* ProMechBeamOrientType (int) */

  PRO_MECH_BEAM_ORIENT_ANGLE       = 1,  /* ProMechExpression */

  PRO_MECH_BEAM_ORIENT_OFFSET      = 2   /* ProMechVector (3)
                                            [ Dx Dy Dz ]
                                         */
}
ProMechBeamorientPropertyType;
The function ProMechBeamorientExpressionGet() gets the value for the defined beam orientation property type. If an expression is defined, the output value is calculated using ProMathExpressionEvaluate(). Use the function ProMechBeamorientExpressionSet() to set the value for the beam orientation property type. For the functions ProMechBeamorientExpressionGet/Set, the only enumerated value allowed is PRO_MECH_BEAM_ORIENT_ANGLE. You can get and set the angle of the beam orientation.
The function ProMechBeamorientIntegerGet() gets the integer of the specified beam orientation property type. Use the function ProMechBeamorientIntegerSet() to set an integer value for the specified beam orientation property type. For the functions ProMechBeamorientIntegerGet/Set, the only enumerated value allowed is PRO_MECH_BEAM_ORIENT_OFFSET_TYPE.
PRO_MECH_BEAM_ORIENT_OFFSET_TYPE returns the handle to ProMechBeamOrientType. You can specify the type of orientation using the enumerated type ProMechBeamOrientType.
The types of orientations are as follows:
•  PRO_MECH_BEAM_ORIENT_OFFSET_SHAPE_ORIGIN— Specifies the point of origin of the beam shape coordinate system.
•  PRO_MECH_BEAM_ORIENT_OFFSET_CENTROID— Specifies the origin of the principal coordinate system which is at the centroid of the section. For general sections and all standard sections, it is coincident with PRO_MECH_BEAM_ORIENT_OFFSET_SHAPE_ORIGIN.
•  PRO_MECH_BEAM_ORIENT_OFFSET_SHEAR_CENTER— Specifies the point on a beam section about which the section rotates under deflection.
The function ProMechBeamorientVectorGet() returns the Creo Simulate vector handle ProMechVector. Use the function ProMechBeamorientVectorSet() to set the handle to ProMechVector. The functions ProMechVectorComponentGet/Set provide read and write access to the individual vector components of the specified beam orientation property type. For more information about handling vector components, see Creo Simulate Vector Functions.
For the functions ProMechBeamorientVectorGet/Set, the only enumerated value allowed is PRO_MECH_BEAM_ORIENT_OFFSET. For example, you can get/set the direction of the beam vector.
The function ProMechBeamorientVectorGet() automatically allocates the memory for the Creo Simulate vector handle. Use the function ProMechVectorFree() to free the memory.
The function ProMechbeamorientdataTypeGet() returns the type of the orientation specified for the Creo Simulate beam orientation item. Use the function ProMechbeamorientdataTypeSet() to set the type of orientation The functions ProMechbeamorientdataTypeGet() and ProMechbeamorientdataTypeSet() have been deprecated. Use the enumerated type ProMechBeamOrientType instead.
The function ProMechbeamorientdataAngleGet() returns the angle of the beam orientation. Use the function ProMechbeamorientdataAngleSet() to set the angle of the beam orientation. The functions ProMechbeamorientdataAngleGet() and ProMechbeamorientdataAngleSet() have been deprecated. Use the functions ProMechBeamorientExpressionGet() and ProMechBeamorientExpressionSet() instead.
The function ProMechbeamorientdataVectorGet() returns the direction of the beam vector. Use the function ProMechbeamorientdataVectorSet() to set the direction of the beam vector. The functions ProMechbeamorientdataVectorGet() and ProMechbeamorientdataVectorSet() have been deprecated. Use the functions ProMechBeamorientVectorGet() and ProMechBeamorientVectorSet() instead.
Use the function ProMechbeamorientdataFree() to free the memory allocated to the beam orientation data structure. The function ProMechbeamorientdataFree() has been deprecated.
Beam Releases
The beam releases specify the degrees of freedom you want to release for a beam end or beam ends. Beam releases determine the degrees of freedom that do not participate in a connection at the end of a beam. You can specify beam releases for both straight and curved beams.
The beam releases data structure contains a combination of the six degrees of freedom relative to the beam's local axes, that is, translation in X, Y, and Z and rotation in X, Y, and Z.
The functions described in this section provide read and write access to the data and contents of the Creo Simulate beam releases data structure. Beam releases use the ProType field in the ProMechitem structure as PRO_SIMULATION_BEAM_RELEASE.
Functions Introduced:
The function ProMechbeamreleasedataAlloc() allocates the memory for the beam release data handle.
The function ProMechbeamreleaseDataGet() provides access to the data structure containing the properties of the beam release item.
The translation and rotation flags correspond to translation or rotation about the X, Y, and Z directions. Set the value of each flag to PRO_B_TRUE, to indicate that the beam is not constrained in the specified direction. Set the value to PRO_B_FALSE to indicate that the beam is constrained in the specified direction.
The function ProMechbeamreleasedataFree() releases the memory assigned to the beam release data handle.
Creo Simulate Spring Items
A spring connects two points or a point to the ground in the specified model. It provides the stiffness that you specify at the location on the model where you place it. The stiffness can be translational (force per unit length) or torsional (torque). The force generated by the spring is proportional to the amount of displacement that occurs. The functions described in this section enable you to access the data and contents of the Creo Simulate spring items. Springs use the ProType field in the ProMechitem structure as PRO_SIMULATION_SPRING.
Functions Introduced:
The function ProMechspringReferencesGet() returns the geometrical references specified while modeling the spring. The references define the location of the spring on the model. Use the function ProMechspringReferencesSet() to set the geometrical references for the spring.
The function ProMechspringTypeGet() returns the type of the specified spring. The output argument Type has one of the following values:
•  PRO_MECH_SPRING_SIMPLE—Specifies a simple spring. This type of spring connects two points, two vertices, a point to an edge, a point to a surface, a point to a pattern of points, a point to a single point feature. The extensional and torsional stiffness properties will be defined for this spring.
Use the function ProMechspringSimpledataGet() to provide access to the data structure containing the simple spring data. Use the function ProMechspringSimpledataSet() to modify the data structure containing the simple spring data.
•  PRO_MECH_SPRING_GROUND—Specifies a To Ground spring. This type of string connects a point, a single point feature, or a single pattern of points to ground. The spring stiffness properties and the orientation are defined for this spring.
A separate properties object can be defined for this type of spring.
Use the function ProMechspringGrounddataGet() to provide access to the data structure containing the ground spring data. Use the function ProMechspringGrounddataSet() to modify the data structure containing the ground spring data.
•  PRO_MECH_SPRING_ADVANCED—Specifies an Advanced spring. This type of spring connects two points, a point to an edge, a point to a surface, a point to a pattern of points, or a point to a single point feature. The stiffness properties, orientation properties, and an additional rotation are defined for this spring. Use the function ProMechspringAdvanceddataGet() to provide access to the data structure containing the advanced spring data. Use the function ProMechspringAdvanceddataSet() to modify the data structure containing the advanced spring data.
Extensional stiffness of a spring resists the stretching or compression of the spring. The extensional stiffness of the spring is of constant stiffness or is defined by a force-deflection curve. The function ProMechsimplespringdataExtensionalstiffnessValueGet() returns the extensional stiffness of the spring. Use the function ProMechsimplespringdataExtensionalstiffnessValueSet() to set the extensional stiffness for the spring.
Note
Note: The functions ProMechsimplespringdataExtensionalstiffnessGet() and ProMechsimplespringdataExtensionalstiffnessSet() have been deprecated. Use the functions ProMechsimplespringdataExtensionalstiffnessValueGet() and ProMechsimplespringdataExtensionalstiffnessValueSet() instead.
Creo Simulate Spring Property Items
The functions described in this section provide access to the data and contents of the Creo Simulate spring property items. Spring properties use the ProType field in the ProMechitem structure as PRO_SIMULATION_SPRING_PROPS.
Functions Introduced:
Functions Superseded:
The function ProMechspringpropsDataGet() provides access to the data structure containing the Spring Properties data. The function ProMechspringpropsDataGet() has been deprecated. Use either ProMechspringpropsMatrixGet() or ProMechspringpropsVectorGet() instead.
The functions listed above provide read and write access to the definition of the spring properties. You can access the name, description, extensional, torsional and coupling stiffness, and the damping coefficients for the spring properties.
The function ProMechspringpropsDescriptionGet() returns the description for the spring property. Use the function ProMechspringpropsDescriptionSet() to set the description for the spring property.
The functions ProMechSpringpropsBooleanGet/Set, ProMechSpringpropsMatrixGet/Set, and ProMechSpringpropsVectorGet/Set use the enumerated type ProMechSpringpropsPropertyType to define the spring property type.
The enumerated type ProMechSpringpropsPropertyType has the following values:
•  PRO_MECH_SPRINGPROPS_EXTENSIONAL
•  PRO_MECH_SPRINGPROPS_TORSIONAL
•  PRO_MECH_SPRINGPROPS_COUPLING
•  PRO_MECH_SPRINGPROPS_DAMPING
•  PRO_MECH_SPRINGPROPS_AUTOCOUPLING
The function ProMechSpringpropsBooleanGet() gets the Boolean value for the autocoupling option. Use the function ProMechSpringpropsBooleanSet() to set the Boolean value for the autocoupling option.
The function ProMechSpringpropsMatrixGet() returns the Creo Simulate matrix handle ProMechMatrix. Use the function ProMechSpringpropsMatrixSet() to set the handle to ProMechMatrix. The functions ProMechMatrixComponentGet/Set provide read and write access to the individual matrix components. For more information about handling matrix components, see Creo Simulate Matrix Functions.
The output matrix gets the following values depending on the spring property type:
•  Extensional coefficients (Kxx,Kyy,Kzz,Kxy,Kxz,Kyz)
•  Torsional coefficients (Txx,Tyy,Tzz,Txy,Txz,Tyz)
•  Coupling coefficients (KTxx, KTxy, KTxz, KTyx, KTyy, KTyz, KTzx, KTzy, KTzz)
The function ProMechSpringpropsMatrixGet() automatically allocates memory for the Creo Simulate matrix handle. Use the function ProMechMatrixFree() to free the assigned memory.
The function ProMechSpringpropsVectorGet() returns the Creo Simulate vector handle ProMechVector. Use the function ProMechSpringpropsVectorSet() to set the handle to ProMechVector. The functions ProMechVectorComponentGet/Set provide read and write access to the individual vector components. For more information about handling vector components, see Creo Simulate Vector Functions.. The vector returns the damping coefficients (Cxx, Cyy, Czz) as output. The function ProMechSpringpropsVectorGet() automatically allocates the memory for the Creo Simulate vector handle. Use the function ProMechVectorFree() to free the memory.
Creo Simulate Mass Items
A mass is an idealization that you can use to represent a concentrated mass without a specified shape. The mass of an object determines how that object resists translation and rotation. You can also add mass that is distributed over features such as curves, edges, or surfaces.
The functions described in this section provide access to the data and contents of the Creo Simulate mass items. Masses use the ProType field in the ProMechitem structure as PRO_SIMULATION_MASS.
Functions Introduced:
The function ProMechmassDistributionGet() returns the types of masses that can be applied to curves, surfaces, and edges in FEM Mode.
The output argument type can have the following values:
•  PRO_MECH_MASS_DISTR_AT_POINT—Specifies that the mass is added to a point, vertex, multiple single points, point features, and point patterns.
•  PRO_MECH_MASS_DISTR_TOTAL—Specifies the total distribution of mass along a surface or curve.
•  PRO_MECH_MASS_DISTR_PER_UNIT—Specifies the distribution of mass along a curve or surface per unit length or per unit area respectively.
Use the function ProMechmassDistributionSet() to set the types of masses that can be applied to curves, surfaces, and edges in FEM Mode.
The function ProMechmassReferencesGet() returns the mass reference objects. The references can be either curves, edges, or surfaces. Use the function ProMechmassReferencesSet() to set the mass reference objects.
The function ProMechmassTypeGet() returns the types of masses defined for a point or vertex. The output argument type can have one of the following values:
•  PRO_MECH_MASS_SIMPLE—Specifies a simple mass type. Specify an integer as the mass value and points, single point, multiple single points, point features, point patterns, edges, curves, or surfaces as the reference for the simple mass type. Use the function ProMechmassSimpledataGet() to access the simple mass data structure. Use the function ProMechmassSimpledataSet() to modify the simple mass data structure.
•  PRO_MECH_MASS_ADVANCED—Specifies the advanced mass type. Specify the coordinate system and the mass property object for a single point, multiple single points, point features, and point patterns. Use the function ProMechmassAdvanceddataGet() to access the advanced mass data structure. Use the function ProMechmassAdvanceddataSet() to modify the advanced mass data structure.
•  PRO_MECH_MASS_COMP_AT_POINT—Specifies the component mass data for a part or subassembly of an assembly. For this type of mass, the mass definition is specified using the component's mass, moment of inertia, and center of gravity. This mass type can be created using points, edges or curves, or Surfaces as the reference. Use the function ProMechmassComponentdataGet() to access the component mass data structure. Use the function ProMechmassComponentpointdataSet() to modify the component at point mass data structure.
•  This mass type is applicable only for the assembly mode.
•  PRO_MECH_MASS_COMP_DISTRIBUTED—Specifies the component distributed mass data for a part or subassembly of an assembly. For this type of mass, only the component’s mass is used to specify the mass definition. This mass type can be created using points, edges or curves, or surfaces as the reference. Use the function ProMechmassComponentdataGet() to access the component mass data structure. Use the function ProMechmassComponentdistributeddataSet() to modify the component distributed mass data structure.
•  This mass type is applicable only for the assembly mode.
The function ProMechsimplemassdataAlloc() allocates memory for a simple mass data structure.
The function ProMechsimplemassdataMassGet() returns the value of the mass for a simple mass data and the function ProMechsimplemassdataMassSet() sets the value of the mass for a simple mass data.
The function ProMechadvancedmassdataAlloc() allocates memory for the advanced mass data structure.
The function ProMechadvancedmassdataCsysGet() returns the reference co-ordinate system for the advanced mass data and the function ProMechadvancedmassdataCsysSet() sets the reference co-ordinate system for the advanced mass data.
The function ProMechadvancedmassdataPropertiesGet() returns the mass property for the advanced mass data.
The function ProMechadvancedmassdataPropertiesSet() sets the mass property for the advanced mass data.
The function ProMechcomponentmassdataAlloc() allocates memory for the component mass data structure.
The function ProMechcomponentmassdataComponentGet() specifies a reference for the component mass data. You can specify only one datum point or vertex as reference for the mass type PRO_MECH_MASS_COMP_AT_POINT. You can specify points, edges, curves, or surfaces as reference for the mass type PRO_MECH_MASS_COMP_DISTRIBUTED.
The function ProMechcomponentmassdataComponentSet() sets the reference type for the component mass data.
Creo Simulate Mass Properties
The functions described in this section provide read and write access to the data and contents of the Creo Simulate property items. Mass properties use the ProType field in the ProMechitem structure as PRO_SIMULATION_MASS_PROPS.
Functions Introduced:
Functions Superseded:
The function ProMechmasspropsDescriptionGet() returns the description for the mass property. Use the function ProMechmasspropsmassSet() to set the description for the mass property.
The function ProMechmasspropsMassGet() returns the value of the mass specified for the mass properties object. Use the function ProMechmasspropsMassSet() to set the value of the mass. The functions ProMechmasspropsMassGet() and ProMechmasspropsMassSet() have been deprecated. Use the functions ProMechMasspropsExpressionGet() and ProMechMasspropsExpressionSet() instead.
The function ProMechmasspropsMomentsGet() returns the moment of inertia about each mass element’s center of gravity with respect to the axes and principal planes of the WCS. The moment of inertia is returned in the form of a matrix. Use the function ProMechmasspropsMomentsSet() to set the moment of inertia matrix. The functions ProMechmasspropsMomentsGet() and ProMechmasspropsMomentsSet() have been deprecated. Use the functions ProMechMasspropsMatrixGet() and ProMechMasspropsMatrixSet() instead
The functions ProMechMasspropsExpressionGet() and ProMechMasspropsExpressionSet() use the enumerated type ProMechMasspropsPropertyType. The values are:
•  PRO_MECH_MASSPROPS_MASS
•  PRO_MECH_MASSPROPS_MOMENTS
The function ProMechMasspropsExpressionGet() gets the value of the defined mass property object. If an expression is defined, the output value can be calculated using ProMathExpressionEvaluate(). Use the function ProMechMasspropsExpressionSet() to set the value for the mass property object.
The function ProMechMasspropsMatrixGet() returns the Creo Simulate matrix handle ProMechMatrix. Use the function ProMechMasspropsMatrixSet() to set the handle to ProMechMatrix. The functions ProMechMatrixComponentGet/Set provide read and write access to the individual matrix components. For more information about handling matrix components, see Creo Simulate Matrix Functions.
Creo Simulate Material Assignment
The functions described in this section allow you to assign materials to the 2D and 3D models. Material assignment uses the ProType field in the ProMechitem structure as PRO_SIMULATION_MATL_ASSIGN.
Functions referring to the material assignment elements use the structure ProMechMatlAssignData which is defined as:
typedef struct pro_matlassign_data
 {
   int  matl_id;
   int  matl_orient_id;
  }
  ProMatlassignData; 
Accessing ProMechmatlassign
Functions Introduced:
The function ProMechmatlassignReferencesGet() returns the model references for material assignment. Use the function ProMechmatlassignReferencesSet() to set the model references for material assignment.
The function ProMechmatlassignDataGet() provides access to the data structure containing the properties of the material assignment item. Use the function ProMechmatlassignDataSet() to set the data structure containing the properties of the material assignment item.
Material Assignment Data
Functions Introduced:
The function ProMechmecttempdataAlloc() allocates the memory for a Creo Simulate material assignment data handle.
The function ProMechmatlassigndataFree() releases the memory assigned to the Creo Simulate material assignment data handle.
The function ProMechmatlassigndataMaterialidGet() returns the material id defined for the model references. Use the function ProMechmatlassigndataMaterialidSet() to set the material id for the model references.
The function ProMechmatlassigndataMaterialorientidGet() returns the material orientation id of the model references. Use the function ProMechmatlassigndataMaterialorientidSet() to set the material orientation id for the model references.
Material Orientations
The functions described in this section specify material orientation for surfaces, volumes, shells, solids, 2D solids, and 2D plates. These functions provide read and write access to the data and contents of Creo Simulate material orientation objects. Material orientations use the ProType field in the ProMechitem structure as PRO_SIMULATION_MATL_ORIENT.
Functions Introduced:
The function ProMechMaterialorientDataGet() provides access to the data structure containing the properties of the material orientation item. Use the function ProMechmaterialorientDataSet() to set the data structure containing the properties of the material orientation item.
The function ProMechmaterialorientDescriptionGet() returns the description of the material orientation. Use the function ProMechmaterialorientDescriptionSet() to set the description of the material orientation.
The function ProMechmaterialorientdataObjecttypeGet() returns the type of object to which the material orientation is applied. The types of object are:
•  PRO_MECH_MATLORI_MODEL—Specifies a model.
•  PRO_MECH_MATLORI_SURFACE—Specifies a surface.
Use the function ProMechmaterialorientdataObjecttypeSet() to set the type of object.
The function ProMechmaterialorientReferencesGet() returns the geometric references specified for the material orientation object.
The function ProMechmaterialorientdataCsysdataGet() returns a handle to the data structure containing the coordinate system data for the material orientation. Use the function ProMechmaterialorientdataCsysdataSet() to set the coordinate system data for the material orientation.
The function ProMechmaterialorientdataTypeGet() returns the type of the material direction. The types are as follows:
•  PRO_MECH_MATLORI_COORD_SYSTEM—Specifies that the material orientation direction is determined by the reference coordinate system.
•  PRO_MECH_MATLORI_1_DIR—Specifies that the material orientation direction is determined by the first parametric direction of the material. Use the function ProMechmaterialorientdataFirstdirectionSet() to set the first direction of the material as the orientation type.
•  PRO_MECH_MATLORI_2_DIR—Specifies that the material orientation direction is determined by the second parametric direction of the material. Use the function ProMechmaterialorientdataSeconddirectionSet() to set the second direction of the material as the orientation type.
•  PRO_MECH_MATLORI_PROJ_VECTOR—Specifies that the material orientation direction is determined by the projection vector.
The function ProMechmaterialorientdataProjectiondataGet() returns the structure containing the projection data for the material orientation. Use the function ProMechmaterialorientdataProjectiondataSet() to set the projection data for the material orientation.
The function ProMechmaterialorientdataRotationGet() returns additional rotations about one or more material directions only if the material orientation type is PRO_MECH_MATLORI_MODEL. Use the function ProMechmaterialorientdataRotationSet() to set the additional rotations about one or more material directions only if the material orientation type is PRO_MECH_MATLORI_MODEL.
The function ProMechmaterialorientdataSurfacerotationGet() returns the rotation angle for the material orientation if the orientation type is PRO_MECH_MATLORI_SURFACE.
Use the function ProMechmaterialorientdataSurfacerotationSet() to set the rotation angle for the material orientation if the orientation type is PRO_MECH_MATLORI_SURFACE.
Use the function ProMechmaterialorientdataSurfacerotationUnset() removes the rotation angle for the material orientation if the orientation type is PRO_MECH_MATLORI_SURFACE.
The function ProMechmaterialorientprojTypeGet() returns the type of projection assigned to the material orientation. The types of materials are:
•  PRO_MECH_MATLORI_PROJ_XYZ—Specifies the values for the X, Y, and Z components to define the projection vector for the material orientation. Use the function ProMechmaterialorientprojXyzvectorGet() to access the projection vector. Use the function ProMechmaterialorientprojXyzvectorSet() to set the projection vector for the material orientation.
•  PRO_MECH_MATLORI_PROJ_POINTS—Specifies the two points used to define the projection vector for the material orientation. Use the function ProMechmaterialorientprojPointsGet() to access the two points. Use the function ProMechmaterialorientprojPointsSet() to set the two points used for projection.
The function ProMechmaterialorientcsysCsysGet() returns the coordinate system used to specify the material directions. Use the function ProMechmaterialorientcsysCsysSet() to set the coordinate system for the material directions.
The function ProMechmaterialorientcsysProjectiontypeGet() returns the projection vector for the material orientation object. The valid projection types are as follows:
•  PRO_MECH_MATLORI_CSYS_PROJ_CLOSEST—Specifies the material Direction 1 through a series of calculations.
•  PRO_MECH_MATLORI_CSYS_PROJ_X—Specifies that the material direction 1 is along the direction of the X axis of the referenced coordinate system projected onto the surface.
Use the function ProMechmaterialorientcsysProjectiontypeSet() to set the projection type for the material orientation data.
The function ProMechmaterialorientcsysXaxisGet() returns the material direction to which the x-axis of the coordinate system is mapped. Use the function ProMechmaterialorientcsysXaxisSet() to set the material direction to which the x-axis of the coordinate system is mapped.
The function ProMechmaterialorientcsysYaxisGet() returns the material direction to which the y-axis of the coordinate system is mapped. Use the function ProMechmaterialorientcsysYaxisSet() to set the material direction to which the y-axis of the coordinate system is mapped.
The function ProMechmaterialorientcsysZaxisGet() returns the material direction to which the z-axis of the coordinate system is mapped. Use the function ProMechmaterialorientcsysZaxisSet() to set the material direction to which the z-axis of the coordinate system is mapped.
Example 4: Creating Material Orientations Referencing a Selected Coordinate System
The sample code in the file PTMechExMatOrient.c located at <creo_toolkit_loadpoint>/protk_appls/pt_mech_examples/pt_mech_ex_src shows how to create a new material orientation item in the current model, referencing a selected coordinate system.
Creo Simulate Shells
Shells are used to model a thin layer of a defined thickness for a specified part. If the part is relatively thin compared to its length and width, use of shell modeling is more efficient.
The functions described in this section provide read and write access to the data and contents of the Creo Simulate shell objects. Shells use the ProType field in the ProMechitem structure as PRO_SIMULATION_SHELL.
Functions Introduced:
The function ProMechshellTypeGet() returns the shell types. You can define the following types of shells:
•  PRO_MECH_SHELL_SIMPLE—Specifies a simple shell of uniform thickness. Use the function ProMechshellSimpledataGet() to access the data structure for the simple shell. Use the function ProMechshellSimpledataSet() to modify the data structure for the simple shell.
•  PRO_MECH_SHELL_ADVANCED—Specifies an advanced shell that uses specified shell properties. Use the function ProMechshellAdvanceddataGet() to access the data structure for the advanced shells. Use the function ProMechshellAdvanceddataSet() to modify the data structure for the advanced shell.
The function ProMechshellMaterialGet() returns the material defined for the shell.
Use the function ProMechshellMaterialIdSet() to set the material id for the shell.
The function ProMechshellReferencesGet() returns the surfaces associated with the shell. Use the function ProMechshellReferencesSet() to set the references for the shell.
The function ProMechshellsimpleThicknessGet() returns the value of the thickness for the shell. Use the function ProMechshellsimpleThicknessSet() to set value of the thickness of the shell.
The function ProMechshelladvancedMaterialorientGet() returns the material orientations assigned to the advanced shell. Use the function ProMechshelladvancedMaterialorientSet() to set the material orientation for the advanced shell.
The function ProMechshelladvancedShellpropsGet() returns the shell properties associated with the model. Use the function ProMechshelladvancedShellpropsSet() to set the shell properties associated with the model.
Shell Properties
Shell properties are used to create shells that are not homogeneous, or to create shells that are comprised of several layers. A shell property can be assigned to a face, region, or datum surface.
The functions described in this section provide read and write access to data and contents of the Creo Simulate shell property objects. Shell properties use the ProType field in the ProMechitem structure as PRO_SIMULATION_SHELL_PROPS.
Functions Introduced:
  • ProMechshellpropsTypeGet()
  • ProMechshellpropsDescriptionGet()
  • ProMechshellpropsDescriptionSet()
  • ProMechshellpropsHomogeneousdataGet()
  • ProMechshellpropsHomogeneousdataSet()
  • ProMechshellpropsLaminatelayupdataGet()
  • ProMechshellpropsLaminatelayupdataSet()
  • ProMechshellpropsLaminatestiffdataGet()
  • ProMechshellpropsLaminatestiffdataSet()
  • ProMechshlprophomogeneousAlloc()
  • ProMechshlprophomogeneousThicknessGet()
  • ProMechshlprophomogeneousThicknessSet()
  • ProMechshlprophomogeneousFree()
  • ProMechshlproplaminatestiffAlloc()
  • ProMechshlproplaminatestiffAppliedstressGet()
  • ProMechshlproplaminatestiffAppliedstressSet()
  • ProMechshlproplaminatestiffBendingstiffnessGet()
  • ProMechshlproplaminatestiffBendingstiffnessSet()
  • ProMechshlproplaminatestiffCouplingstiffnessGet()
  • ProMechshlproplaminatestiffCouplingstiffnessSet()
  • ProMechshlproplaminatestiffExtensionalstiffnessGet()
  • ProMechshlproplaminatestiffExtensionalstiffnessSet()
  • ProMechshlproplaminatestiffIntertiaperunitareaGet()
  • ProMechshlproplaminatestiffIntertiaperunitareaSet()
  • ProMechshlproplaminatestiffMassperunitareaGet()
  • ProMechshlproplaminatestiffMassperunitareaSet()
  • ProMechshlproplaminatestiffTansverseshearGet()
  • ProMechshlproplaminatestiffTansverseshearSet()
  • ProMechshlproplaminatestiffThermalresforceGet()
  • ProMechshlproplaminatestiffThermalresforceSet()
  • ProMechshlproplaminatestiffThermalresmomentGet()
  • ProMechshlproplaminatestiffThermalresmomentSet()
  • ProMechshlproplaminatestiffFree()
  • ProMechstresscalcdataAlloc()
  • ProMechstresscalcdataCzGet()
  • ProMechstresscalcdataCzSet()
  • ProMechstresscalcdataMaterialIdGet()
  • ProMechstresscalcdataMaterialIdSet()
  • ProMechstresscalcdataPlyorientationGet()
  • ProMechstresscalcdataPlyorientationSet()
  • ProMechstresscalcdataFree()
  • ProMechstresscalcdataProarrayFree()
  • ProMechstiffmatrixEntry11Get()
  • ProMechstiffmatrixEntry11Set()
  • ProMechstiffmatrixEntry12Get()
  • ProMechstiffmatrixEntry12Set()
  • ProMechstiffmatrixEntry16Get()
  • ProMechstiffmatrixEntry16Set()
  • ProMechstiffmatrixEntry22Get()
  • ProMechstiffmatrixEntry22Set()
  • ProMechstiffmatrixEntry26Get()
  • ProMechstiffmatrixEntry26Set()
  • ProMechstiffmatrixEntry66Get()
  • ProMechstiffmatrixEntry66Set()
  • ProMechstiffmatrixFree()
  • ProMechtransverseshearEntry44Get()
  • ProMechtransverseshearEntry44Set()
  • ProMechtransverseshearEntry45Get()
  • ProMechtransverseshearEntry45Set()
  • ProMechtransverseshearEntry55Get()
  • ProMechtransverseshearEntry55Set()
  • ProMechtransverseshearFree()
  • ProMechthermalrescoeffEntry11Get()
  • ProMechthermalrescoeffEntry11Set()
  • ProMechthermalrescoeffEntry12Get()
  • ProMechthermalrescoeffEntry12Set()
  • ProMechthermalrescoeffEntry22Get()
  • ProMechthermalrescoeffEntry22Set()
  • ProMechthermalrescoeffFree()
  • ProMechshlproplaminatelayupAlloc()
  • ProMechshlproplaminatelayupLayersGet()
  • ProMechshlproplaminatelayupLayersSet()
  • ProMechshlproplaminatelayupTypeGet()
  • ProMechshlproplaminatelayupTypeSet()
  • ProMechshlproplaminatelayupFree()
  • ProMechshlproplamlayuplayerMaterialIdGet()
  • ProMechshlproplamlayuplayerMaterialIdSet()
  • ProMechshlproplamlayuplayerNumberGet()
  • ProMechshlproplamlayuplayerNumberSet()
  • ProMechshlproplamlayuplayerOrientationGet()
  • ProMechshlproplamlayuplayerOrientationSet()
  • ProMechshlproplamlayuplayerThicknessGet()
  • ProMechshlproplamlayuplayerThicknessSet()
  • ProMechshlproplamlayuplayerShellpropsGet()
  • ProMechshlproplamlayuplayerShellpropsSet()
  • ProMechshlproplamlayuplayerFree()
  • ProMechshlproplamlayuplayerProarrayFree()
  • The function ProMechshellpropsTypeGet() returns the type of properties that have been defined for the shell. The types of shell properties are:
    •  PRO_MECH_SHLPROP_HOMOGENEOUS—Assigned to homogenous shells. A homogeneous shell consists of a single material whose properties do not vary through the thickness of the shell. Use the function ProMechshellpropsHomogeneousdataGet() to access the data structure for homogeneous shell property. Use the function ProMechshellpropsHomogeneousdataSet() to set the homogeneous shell property.
    •  PRO_MECH_SHLPROP_LAMINATE_STIFFNESS—Assigned to laminate shells to specify their degree of stiffness. Laminate shells consists of one or more materials whose properties may vary through the thickness of the shell. Use the function ProMechshellpropsLaminatestiffdataGet() to access the data structure for the laminate stiffness shell property. Use the function ProMechshellpropsLaminatestiffdataSet() to set the laminate stiffness shell property.
    •  PRO_MECH_SHLPROP_LAMINATE_LAYUP—Assigned to laminate shells to define them as layers of shells. Use the function ProMechshellpropsLaminatelayupdataGet() to access the data structure for the laminate layup shell property. Use the function ProMechshellpropsLaminatelayupdataSet() to set the laminate layup shell property.
    The function ProMechshellpropsDescriptionGet() returns the description for the shell properties. Use the function ProMechshellpropsDescriptionSet() to modify the description for the shell properties.
    The function ProMechshlprophomogeneousThicknessGet() returns the shell thickness defined for shells. Use the function ProMechshlprophomogeneousThicknessSet() to set the thickness for the shell properties.
    The function ProMechshlproplaminatestiffAppliedstressGet() returns the calculation of stresses and strains for the laminate stiffness shell property type. The resultant array contains the shell "Top" location and the shell "Bottom" location. The values specified in these areas are used to calculate the stresses and strains for the corresponding areas. Use the function ProMechshlproplaminatestiffAppliedstressSet()to set the value of the stress and strain in the calculation array.
    The function ProMechstresscalcdataCzGet() returns the distance from the midsurface of the shell at which the stresses and strains for the laminate shell is calculated. The Cz is defined relative to material direction 3 of the material orientation assigned to the shell. Use the function ProMechstresscalcdataCzSet() to set the Cz value used to calculate the stress and strain.
    The function ProMechstresscalcdataMaterialIdGet() returns the material specified at the CZ location. Use the function ProMechstresscalcdataMaterialIdSet() to set the material id.
    The function ProMechstresscalcdataPlyorientationGet() returns the orientation of the ply material. The ply orientation angle is measured as a counter-clockwise rotation from material direction 1 about material direction 3. Use the function ProMechstresscalcdataPlyorientationSet()to set the orientation of the ply material.
    The function ProMechshlproplaminatestiffBendingstiffnessGet() returns the shell bending stiffness matrix. Use the function ProMechshlproplaminatestiffBendingstiffnessSet() to set the shell bending stiffness matrix.
    The function ProMechshlproplaminatestiffCouplingstiffnessGet() returns the shell coupling stiffness matrix. Use the function ProMechshlproplaminatestiffCouplingstiffnessSet()to set the shell coupling stiffness matrix.
    The function ProMechshlproplaminatestiffExtensionalstiffnessGet() returns the shell extensional stiffness matrix. Use the function ProMechshlproplaminatestiffExtensionalstiffnessSet() to set the shell extensional stiffness matrix.
    The functions ProMechstiffmatrixEntry11Get(), ProMechstiffmatrixEntry12Get(), ProMechstiffmatrixEntry16Get(), ProMechstiffmatrixEntry22Get(), ProMechstiffmatrixEntry26Get(), and ProMechstiffmatrixEntry66Get() provide access the elements of the stiffness matrix.
    Use the functions ProMechstiffmatrixEntry11Set(), ProMechstiffmatrixEntry12Set(), ProMechstiffmatrixEntry16Set(), ProMechstiffmatrixEntry22Set(), ProMechstiffmatrixEntry26Set(), and ProMechstiffmatrixEntry66Set() to modify the elements of the stiffness matrix.
    The function ProMechshlproplaminatestiffIntertiaperunitareaGet() returns the rotary inertia per unit area for the laminate stiffness properties. Use the function ProMechshlproplaminatestiffIntertiaperunitareaSet() to set the inertia per unit area for the laminate stiffness properties.
    The function ProMechshlproplaminatestiffMassperunitareaGet() returns the mass per unit area for the laminate stiffness properties. Use the function ProMechshlproplaminatestiffMassperunitareaSet() to set the mass per unit area for the laminate stiffness properties.
    The function ProMechshlproplaminatestiffTansverseshearGet() returns the transverse sheer stiffness for the laminate shell. Use the function ProMechshlproplaminatestiffTansverseshearSet() to set the transverse sheer stiffness for the laminate shell.
    The functions ProMechtransverseshearEntry44Get(), ProMechtransverseshearEntry45Get(), and ProMechtransverseshearEntry55Get() provide access to the elements 44, 45, and 55 of the transverse shear matrix. Use the functions ProMechtransverseshearEntry44Set(), ProMechtransverseshearEntry45Set(), and ProMechtransverseshearEntry55Set() to set the elements 44, 45, and 55 of the transverse shear matrix.
    The functions ProMechshlproplaminatestiffThermalresforceGet() and ProMechshlproplaminatestiffThermalresmomentGet() return the thermal resultant coefficients for the laminate shell. The thermal coefficients are specified as Force and Moment. Use the functions ProMechshlproplaminatestiffThermalresforceSet() and ProMechshlproplaminatestiffThermalresmomentSet() to set the thermal resultant coefficients for the laminate shell.
    The functions ProMechthermalrescoeffEntry11Get(), ProMechthermalrescoeffEntry12Get(), and, ProMechthermalrescoeffEntry22Get() provide access to the elements 11, 12, and 22 of the thermal resultant coefficient matrix. Use the functions ProMechthermalrescoeffEntry11Set(), ProMechthermalrescoeffEntry12Set(), ProMechthermalrescoeffEntry22Set() to set the elements 11, 12, and 22 of the thermal resultant coefficient matrix.
    The function ProMechshlproplaminatelayupLayersGet() returns an array of layers, or plies, stacked on each other to form the laminate. Use the function ProMechshlproplaminatelayupLayersSet() to set the layers assigned to the laminate shell properties.
    The function ProMechshlproplaminatelayupTypeGet() returns the layer repetition pattern for the laminate layup type shells. The types of repetition patterns are:
    •  PRO_MECH_LAMLAYUP_SYMMETRIC—Specifies that the layers are repeated in reverse order.
    •  PRO_MECH_LAMLAYUP_ANTISYMMETRIC—Specifies that the layers are repeated in reverse order, and the orientation is also changed.
    •  PRO_MECH_LAMLAYUP_NEITHER—Specifies that the layers are not repeated.
    Use the function ProMechshlproplaminatelayupTypeSet() to set the type of laminate layup shell properties.
    The function ProMechshlproplamlayuplayerMaterialIdGet() returns the name of the material assigned to the specified layer Use the function ProMechshlproplamlayuplayerMaterialIdSet() to set the id of the specified laminate layer.
    The function ProMechshlproplamlayuplayerNumberGet() returns the number of times a particular layer is repeated for the laminate. Use the function ProMechshlproplamlayuplayerNumberSet() to set the number for the laminate layup layer.
    The function ProMechshlproplamlayuplayerOrientationGet() returns the orientation of the specified layer of the laminate. Use the function ProMechshlproplamlayuplayerOrientationSet() to set the orientation of the specified layer of the laminate.
    The function ProMechshlproplamlayuplayerThicknessGet() returns the thickness of the specified layer of the laminate. Use the function ProMechshlproplamlayuplayerThicknessSet() to set the thickness of the specified layer of the laminate.
    The function ProMechshlproplamlayuplayerShellpropsGet() returns the shell properties for the specified laminate layer. Use the function ProMechshlproplamlayuplayerShellpropsSet() to set the shell properties.
    Shell Pairs
    The shell pairs are created based on the surfaces belonging to a part. The shell pairs are compressed to a mid surface or set of mid surfaces and shell elements are assigned to it.
    The functions described in this section provide read and write access to the data and contents of the Creo Simulate shell pair objects. Shell pairs use the ProType field in the ProMechitem structure as PRO_SIMULATION_SHELL_PAIR.
    Functions Introduced:
    The function ProMechshellpairMaterialIdGet() returns the material used to create the shell pair. Use the function ProMechshellpairMaterialIdSet() to set the material id of the shell pair.
    The function ProMechshellpairReferencesGet() returns the geometric references for the shell pair item. Use the function ProMechshellpairReferencesSet() to set the geometric references for the shell pair item.
    The function ProMechshlpairrefsTypeGet() returns the type of shell pair references. The types of shell pairs are:
    •  PRO_MECH_SHELL_PAIR_CONSTANT—Specifies a shell pair with constant thickness. All opposing surfaces parallel to each other and equidistant from the opposing surface for a constant-thickness shell pair.
    •  PRO_MECH_SHELL_PAIR_VARIABLE—Specifies a variable thickness shell pair. Both opposing surfaces are neither parallel nor concentric for a variable thickness shell pair.
    Note
    From Creo Parametric onwards, the shell type PRO_MECH_SHELL_PAIR_VARIABLE is also supported in the Native mode of Creo Simulate .
    •  PRO_MECH_SHELL_PAIR_MULTI_CONSTANT—Specifies a shell pair with multiple pairs of surfaces. For a pair of surfaces, each surface is parallel to and equidistant from the opposing surface. However, the distance between the surfaces for each of the multiple pairs may vary.
    Note
    From Creo Parametric onwards, the thickness type PRO_MECH_SHELL_PAIR_MULTI_CONSTANT has been deprecated and the function ProMechshlpairrefsTypeSet() will return an error type PRO_TK_UNSUPPORTED.
    Use the function ProMechshlpairrefsTypeSet() to set the type of shell pair references.
    The functions ProMechshlpairrefsTopreferencesGet() and ProMechshlpairrefsBottomreferencesGet() provide access to the top and bottom references for the shell pair. This should be defined for all shell pair types. Use the functions ProMechshlpairrefsBottomreferencesSet() and ProMechshlpairrefsTopreferencesSet() to set the top and bottom references for the shell pair.
    The function ProMechshlpairrefsPlacementtypeGet() returns the placement of shell pair. The types of placement references are as follows:
    •  PRO_MECH_SHELL_PAIR_PLACEMENT_TOP—Specifies that the placement uses the top surface of the surface pair.
    •  PRO_MECH_SHELL_PAIR_PLACEMENT_BOTTOM— Specifies that the placement uses the bottom surface of the surface pair.
    •  PRO_MECH_SHELL_PAIR_PLACEMENT_MIDDLE— Specifies that the placement uses the mid surface of the surface pair.
    •  — Specifies that the placement uses an arbitrary selected surface, which can be a datum surface.
    Use the function ProMechshlpairrefsPlacementtypeSet() to set the placement type of the shell pair.
    Use the function ProMechshlpairrefsSelectedplacementGet() to access the data structure containing the selected surface. Use the function ProMechshlpairrefsSelectedplacementSet() to set the surface for the placement reference of type SELECTED.
    Use the function ProMechshlpairrefsExtendAdjacentSurfacesGet() to retrieve the value of the flag that indicates whether the adjacent surfaces in a shell pair will be extended during meshing or not. For a mixed model, you can set this flag to extend surfaces adjacent to the top and bottom surfaces of the shell pair by using the function ProMechshlpairrefsExtendAdjacentSurfacesSet(). However, this is possible only if the angle between the shell pair surfaces and their adjacent surfaces is less than the value specified by the configuration option.
    Note
    For a midsurface model, Creo Simulate extends the adjacent surfaces regardless of the value of sim_extend_surf_max_angle. The default value of sim_extend_surf_max_angle is 30 degrees.
    You must initialize the Creo Simulate environment to use these functions. For shell pairs defined in Pro/ENGINEER Mechanica 4.0 and earlier, this flag is set to 1 by default.
    Use the function ProMechshlpairrefsFree() to free the simple shell data handle in Creo Simulate .
    Interfaces
    Interfaces, also called connections, are used to connect surfaces. When you create an interface in Creo Simulate , specify how Creo Simulate will treat the connected surfaces during meshing and analysis. Interfaces use the ProType field in the ProMechitem structure as PRO_SIMULATION_INTERFACE.
    Functions Introduced:
    The function ProMechinterfaceTypeGet() returns the type of interface used to connect surfaces. The types of interfaces are:
    •  Structural—Specifies the default for the interfaces created between the geometry in a structural model for meshing and running.
      PRO_MECH_INTERFACE_BOND_STRUCT—Specifies that the contacting surfaces as bonded. This means that matching nodes on contacting surfaces merge.
      PRO_MECH_INTERFACE_CONTACT_STRUCT—Specifies an interface between components when you want the components to have the freedom to remain separate from each other, and also when you want the components to transfer forces between them when they touch, or come into contact with each other.
      PRO_MECH_INTERFACE_FREE_STRUCT—Specifies two surfaces as contacting, but does not merge the nodes. Meshes on the contacting surfaces are identical, and matching nodes are coincident.
    •  Thermal—Specifies the default for the interfaces created between the geometry in a thermal model for meshing and running.
      PRO_MECH_INTERFACE_BOND_THERM—Specifies that coincident geometry is bonded.
      PRO_MECH_INTERFACE_FREE_THERM—Specifies that no geometry in the assembly is merged.
      PRO_MECH_INTERFACE_RESIST_THERM—Specify this interface type to create a thermal resistance interfaces at run-time.
    The function ProMechinterfaceReferencesGet() returns the geometric entities selected to create the interface. Use the function ProMechinterfaceReferencesSet() to set the geometric entities selected to create the interface.
    The function ProMechinterfacebonddataAlloc() allocates memory for the Creo Simulate bonded interface data.
    The function ProMechinterfaceBonddataGet() provides access to the bonded interface data. The function returns whether the specified bonded interface should use links between pairs of nodes.
    Use the function ProMechinterfaceBonddataSet() to assign the bonded interface data to the Creo Simulate item.
    Use the function ProMechinterfacebonddataFree() to free the memory of the bonded interface data.
    The function ProMechinterfacefreedataAlloc() allocates memory for the Creo Simulate free interface data structure.
    The function ProMechinterfaceFreedataGet() provides access to the free interface data. The function returns a flag that indicates whether the meshes generated on the surfaces of the interface are coincident or not. Use the function ProMechinterfaceFreedataSet() to assign the free interface data to the Creo Simulate item.
    The function ProMechinterfacecontactdataAlloc() allocates memory for the Creo Simulate contact interface data structure.
    The function ProMechinterfaceContactdataGet() provides access to the properties of the contact interface data. Use the function ProMechinterfaceContactdataSet() to assign the contact interface data to the Creo Simulate item.
    The function ProMechinterfacethrresistdataAlloc() allocates memory for the Creo Simulate thermal resistance interface data structure.
    The function ProMechinterfaceThrresistdataGet() provides access to the thermal resistance interface data. Use the function ProMechinterfaceThrresistdataSet() to assign the thermal resistance interface data to the Creo Simulate item.
    Bonded Interface
    Functions Introduced:
    The function ProMechbondinterfacedataMergenodesGet() specifies if coincident nodes of components or surfaces touching each other are merged during meshing. Use the function ProMechbondinterfacedataMergenodesSet() to set whether coincident nodes for bonded interface should merge.
    Contact Interface
    Functions Introduced:
    To create a contact interface between two components of an assembly, with the reference type as component-component, specify the selection filter tolerance criteria. You can specify the selection filter tolerance criteria using the following functions.
    Use the function roMechcontactinterfacedataSeparationdistanceExprGet()to retrieve the separation distance. Separation distance is the distance between the surface pairs that you want to use to define a contact interface. This separation distance is the limit beyond which a contact interface cannot be created. If the distance between the surfaces of two components is smaller than the separation distance, the surfaces are used for creation of the contact interface.
    The separation distance is returned as an expression of type ProMechExpression.
    Note
    The function ProMechcontactinterfacedataSeparationdistanceExprGet() supersedes the function ProMechcontactinterfacedataSeparationdistanceGet().
    The function ProMechcontactinterfacedataSeparationdistanceExprSet() sets the separation distance. Specify this distance as an expression of type ProMechExpression.
    Note
    The function ProMechcontactinterfacedataSeparationdistanceExprSet() supersedes the function ProMechcontactinterfacedataSeparationdistanceSet().
    The function ProMechcontactinterfacedataAnglebetweensurfacesExprGet() returns the angle between planar surfaces while creating contact interface. This angle is returned as an expression of type ProMechExpression.
    Note
    The function ProMechcontactinterfacedataAnglebetweensurfacesExprGet() supersedes the function ProMechcontactinterfacedataAnglebetweensurfacesGet().
    The function ProMechcontactinterfacedataAnglebetweensurfacesExprSet() sets the angle between surfaces while creating contact interface. Specify this angle as an expression of type ProMechExpression.
    Note
    The function ProMechcontactinterfacedataAnglebetweensurfacesExprSet() supersedes the function ProMechcontactinterfacedataAnglebetweensurfacesSet().
    The function ProMechcontactinterfacedataCheckonlyplanarGet() returns a true if the contact is created between planar surfaces in a component-component type interface.
    Use the function ProMechcontactinterfacedataCheckonlyplanarSet() to create contacts only between planar surfaces.
    The properties of the contact interface are as follows:
    Use the function ProMechcontactinterfacedataFrictionSet() to set the type of the friction at the contact interface, between the pairs of nodes, using the enumerated type ProMechInterfaceFrictionType. The valid values are:
    •  PRO_MECH_INTERFACE_FRICTION_INFINITE—Specifies that infinite friction exists at the contact interface that is, the two components or surfaces cannot slide relative to each other.
    •  PRO_MECH_INTERFACE_FRICTION_FINITE—Specifies that finite friction exists at the contact interface that is, that is, the two components or surfaces are able to slide relative to each other.
    Use the function ProMechcontactinterfacedataFrictionGet() to obtain the type of friction present at the contact interface.
    The function ProMechcontactinterfacedataSlippageGet() returns true if slippage has occurred in the contact region during the analysis. Use the function ProMechcontactinterfacedataSlippageSet() to check for slippage in the contact area during analysis.
    The function ProMechcontactinterfacedataCoefffrictionGet() returns the coefficient of friction used to calculate the slippage in the contact region during analysis. Use the function ProMechcontactinterfacedataCoefffrictionSet() to set the coefficient of friction for computing the slippage. Specify a positive value as the coefficient of friction.
    The function ProMechcontactinterfacedataSplitsurfacesGet() returns true if you split the surface shared by the volumes used to define the interface.
    Use the function ProMechcontactinterfacedataSplitsurfacesSet() to specify whether the interface should split surfaces.
    The function ProMechcontactinterfacedataCompatiblemeshGet() specifies if a compatible mesh is created when components in the assembly are touching.
    Use the function ProMechcontactinterfacedataCompatiblemeshSet() to create geometrically-consistent node locations when the mesh for the surfaces of your interface is generated.
    Use the function ProMechcontactinterfacedataDynamicCoefffrictionSet() to set the dynamic coefficient of friction for the contact interface. The dynamic coefficient of friction prevents the axis surfaces from moving freely against each other which slows down the motion.
    Note
    Set a value less than or equal to the value of static coefficient of friction for this interface.
    Use the function ProMechcontactinterfacedataDynamicCoefffrictionGet() to obtain the dynamic coefficient of friction for the specified contact interface data. Use the function ProMathExpressionEvaluate() to evaluate the dynamic coefficient of friction.
    Use the function ProMechcontactinterfacedataDynamicCoeffSameAsStaticSet() to set the dynamic coefficient of friction same as the static coefficient of friction. Pass the value PRO_B_TRUE to set the dynamic coefficient of friction same as static coefficient of friction.
    Use the function ProMechcontactinterfacedataDynamicCoeffSameAsStaticGet() to identify whether the dynamic coefficient of friction is same as the static coefficient of friction. This function returns the value PRO_B_TRUE if the dynamic and static coefficient of friction possess the same value.
    Use the function ProMechcontactinterfacedataUseSelectionFilterTolSet() to set the selection filter tolerance between contact surfaces. Pass the value PRO_B_TRUE to switch on the selection filter tolerances.
    Use the function ProMechcontactinterfacedataUseSelectionFilterTolGet() to identify whether the specified contact interface uses the selection filter tolerances between the contact surfaces. This function returns the value PRO_B_TRUE if the contact surfaces use the selection filter tolerances.
    Thermal Resistance Interface
    Functions Introduced:
    The function ProMechthrresistinterfacedataConductivityGet() returns the heat transfer coefficient for the interface. The heat transfer coefficient is the heat that passes through the interface per unit time per unit area when the temperature difference between opposite interface surfaces is one unit.
    Use the function ProMechthrresistinterfacedataConductivitySet() to set the heat transfer coefficient for the interface. Specify a positive number as the heat transfer coefficient.
    Free Interface
    Functions Introduced:
    The function ProMechfreeinterfacedataSplitsurfacesGet() returns true if you split the surface shared by the volumes used to define the free interface.
    The function ProMechfreeinterfacedataSplitsurfacesSet() to specify whether the free interface should split surfaces.
    Gaps
    A gap is a nonlinear element, used to model connection between points, edges and curves, or surfaces in your model by connecting two nodes in separated geometries. Gaps use the ProType field in the ProMechitem structure as PRO_SIMULATION_GAP.
    Functions Introduced:
    The function ProMechgapTypeGet() returns the type of gap for the specified Creo Simulate Gap.
    The function ProMechgapReferencesGet() returns the geometric entities of the model that are selected to create the gap. Use the function ProMechgapReferencesSet() to set the valid geometric references for the specified gap.
    The function ProMechgapSimpledataGet() returns the data structure for the Creo Simulate gap data. The Creo Simulate gap data structure defines the y-direction and the stiffness properties of the gap. Use the function ProMechgapSimpledataSet() to set the Creo Simulate gap data structure.
    The function ProMechsimplegapdataAlloc() allocates memory for the Creo Simulate gap data structure.
    ProMechsimplegapdataYdirectionGet() returns the orientation of the XY-plane of the gap. Use the function ProMechsimplegapdataYdirectionSet() to set the Y-direction of the gap data.
    The function ProMechsimplegapdataDistributiontypeGet() returns the method used to calculate the axial and transverse stiffnesses for the gap data. The types of distribution are as follows:
    •  PRO_MECH_GAP_DISTR_TOTAL—Specifies the sum of stiffness of all the contact elements.
    •  PRO_MECH_GAP_DISTR_PER_UNIT—Specifies that the stiffness value is calculated using the area of the first selected surface.
    Use the function ProMechsimplegapdataDistributiontypeSet() to set the distribution type for the gap data.
    The function ProMechsimplegapdataAxialstiffnessGet() returns the axial stiffness for the gap. The axial stiffness defines a stiffness or spring factor. Use the function ProMechsimplegapdataAxialstiffnessSet() to set the axial stiffness for the gap.
    The function ProMechsimplegapdataTransversestiffnessGet() returns the transverse stiffness for the gap. The transverse stiffness defines the elastic stiffness of the material. Use the function ProMechsimplegapdataTransversestiffnessSet() to set the transverse stiffness of the gap.
    The function ProMechsimplegapdataClearanceGet() returns the distance between two nodes at which the axial and transverse stiffnesses are active due to displacement during analysis. Use the function ProMechsimplegapdataClearanceSet() to set the clearance for the gap data.
    Mesh Control
    Mesh controls define the characteristics of a mesh. Mesh controls specify the minimum or maximum size of the elements, the distribution of nodes along edges, hard points and hard curves, mesh ID numbering, mesh ID offsets, and the displacement coordinate system. The functions described in this section provide access to the data and contents of the Creo Simulate mesh control objects. Mesh controls use the ProType field in the ProMechitem structure as PRO_SIMULATION_MESH_CNTRL.
    Functions Introduced:
    The function ProMechmeshcntrlTypeGet() returns the type of mesh control. The types of mesh controls are:
    •  PRO_MECH_MC_AGEM_EDGE_DISTR—Specifies the edge distribution data for AutoGEM. Use the function ProMechmeshcntrlAutogemedgedistrdataGet() to access the AutoGEM edge distribution data for the mesh control item. Use the function ProMechmeshcntrlAutogemedgedistrdataSet() to modify the AutoGEM edge distribution data for the mesh control item.
    Note
    If you are creating a new mesh control using this type of data, you should assign the model as a reference using the function ProMechmeshcntrlReferencesSet().
    •  PRO_MECH_MC_AGEM_MIN_EDGE—Specifies the minimum edge and face angles for AutoGEM. Use the function ProMechmeshcntrlAutogemminedgedataGet() to access the AutoGEM minimum edge data for the mesh control item. Use the function ProMechmeshcntrlAutogemminedgedataSet() to modify the AutoGEM minimum edge data for the mesh control item.
    Note
    If you are creating a new mesh control using this type of data, you should assign the model as a reference using the function ProMechmeshcntrlReferencesSet().
    •  PRO_MECH_MC_AGEM_MAX_ELEMENT_SIZE—Specifies the maximum element size for the AutoGEM mesh. Use the function ProMechmeshcntrlAutogemelemsizedataGet() to access the AutoGEM maximum element data for the mesh control item. Use the function ProMechmeshcntrlAutogemelemsizedataSet() to modify the AutoGEM maximum element data for the mesh control item.
    Note
    If you are creating a new mesh control using this type of data, you should assign the model as a reference using the function ProMechmeshcntrlReferencesSet().
    •  PRO_MECH_MC_AGEM_EDGE_LEN_CRV—Specifies the ratio of edge lengths of mesh elements adjacent to concave surfaces to the radius of curvature of the concave surfaces. Use the function ProMechmeshcntrlAutogemedgelencrvdataGet() to access the edge length by curvature data for the mesh control item. Use the function ProMechmeshcntrlAutogemedgelencrvdataSet() to set the edge length by curvature ratio.
    •  PRO_MECH_MC_EDGE_DISTRIBUTION—Specifies the number of nodes on one or more edges of the curves in the model. Use the function ProMechmeshcntrlEdgedistrdataGet() to access the edge distribution data for the mesh control item. Use the function ProMechmeshcntrlEdgedistrdataSet() to set the edge distribution data.
    Note
    If you are creating a new mesh control using this type of data, you should assign the model as a reference using the function ProMechmeshcntrlReferencesSet().
    •  PRO_MECH_MC_DISPL_CSYS—Specifies the displacement coordinate system used for displaying results for nodes associated with points, edges, curves, or surfaces.
    •  PRO_MECH_MC_MAX_ELEMENT_SIZE—Specifies the maximum element size for the mesh. Use the function ProMechmeshcntrlElemsizedataGet() to access the maximum element size data for the mesh control item. Use the function ProMechmeshcntrlElemsizedataSet() to set the maximum element size for the mesh.
    Note
    If you are creating a new mesh control using this type of data, you should assign the model as a reference using the function ProMechmeshcntrlReferencesSet().
    •  PRO_MECH_MC_MIN_ELEMENT_SIZE—Specifies the minimum element size for the mesh. Use the function ProMechmeshcntrlElemsizedataGet() to access the minimum element size data for the mesh control item. Use the function ProMechmeshcntrlElemsizedataSet() to set the maximum element size for the mesh.
    •  PRO_MECH_MC_SHELL_CSYS—Specifies the coordinate system used for displaying results for nodes associated with shell or quilt surfaces. Use the function ProMechmeshcntrlShellcsysGet() to access the shell coordinate system for the mesh control item. Use the function ProMechmeshcntrlShellcsysSet() to set the shell coordinate system for the mesh control item.
    •  PRO_MECH_MC_HARD_POINT—Specifies a datum point that is defined as a hard point. Use the function ProMechmeshcntrlHardpointGet() to access the hard point data for the mesh control item. Use the function ProMechmeshcntrlHardpointSet() to set the hard point data for the mesh control item.
    •  PRO_MECH_MC_HARD_CURVE—Specifies a datum curve that is defined as a hard curve. This type has no data, only references. Use the function ProMechmeshcntrlHardcurveSet() to set the mesh control item to be of the type hard curve. The reference for the item will be used for the control.
    •  PRO_MECH_MC_IDS_OFFSET—Specifies the offset for the node IDs and element IDs for a component. Use the function ProMechmeshcntrlIdsoffsetGet() to access the offset data for the mesh control item. Use the function ProMechmeshcntrlIdsoffsetSet() to set the offset data.
    •  PRO_MECH_MC_MESH_NUMBERING—Specifies a node and an element ID range for a component. Use the function ProMechmeshcntrlNumberingGet() to access the numbering data for the mesh control item. Use the function ProMechmeshcntrlNumberingSet() to set the numbering data for the mesh control item.
    •  PRO_MECH_MC_SUPPRESS—Specifies the components that must be ignored while applying the mesh control to the assembly level. Use the function ProMechmeshcntrlSuppressGet() to access the suppress data for the mesh control item. Use the function ProMechmeshcntrlSuppressSet() to set the suppress data for the mesh control item.
    •  PRO_MECH_MC_AGEM_SUPPRESS—Specifies the type of AutoGEM controls that you want the mesh generator to ignore at the assembly level. Use the function ProMechmcautogemsuppressTypeGet() to access the types of AutoGEM control suppressed by this AutoGEM control data. Use the function ProMechmcautogemsuppressTypeSet() to set the type of AutoGEM control suppressed by this AutoGEM control data.
    The functions ProMechmeshcntrlAutogemsuppressGet() and ProMechmeshcntrlAutogemsuppressSet() access and set the suppress data for the AutoGEM control items.
    These functions support only the following AGEM mesh control types:
      PRO_MECH_MC_AGEM_EDGE_DISTR
      PRO_MECH_MC_AGEM_MIN_EDGE
      PRO_MECH_MC_AGEM_ISOLATE_EXCLUDE
      PRO_MECH_MC_AGEM_MAX_ELEMENT_SIZE
      PRO_MECH_MC_AGEM_EDGE_LEN_CRV
      PRO_MECH_MC_AGEM_HARD_POINT
      PRO_MECH_MC_AGEM_HARD_CURVE
      PRO_MECH_MC_ALL
    •  PRO_MECH_MC_AGEM_ISOLATE_EXCLUDE—Specifies points, edges, curves, and surfaces from the model to isolate during analysis. The function ProMechmeshcntrlAutogemisolateexcludedataGet() returns the list of entities that AutoGEM can detect and isolate using mesh refinement. Use the function ProMechmeshcntrlAutogemisolateexcludedataSet() to set the entities for AutoGEM isolation using mesh refinement.
    •  PRO_MECH_MC_AGEM_HARD_POINT—Specifies points, point features, or point patterns on the model to guide the AutoGEM mesh creation process. This control type has only references and no data associated with it. Use the function ProMechmcautogemHardpointSet() to set the AutoGEM mesh control item as hard point.
    •  PRO_MECH_MC_AGEM_HARD_CURVE—Specifies the datum curves on the model to guide the AutoGEM mesh creation process. This control type has only references and no data associated with it. Use the function ProMechmcautogemHardcurveSet() to set the AutoGEM mesh control item as hard curve.
    •  PRO_MECH_MC_ALL—Specifies all the types of mesh controls.
    Note
    If you are creating a new mesh control using this type of data, you should assign the model as a reference using the function ProMechmeshcntrlReferencesSet().
    The function ProMechmeshcntrlReferencesGet() returns the references for each of the mesh control type. Use the function ProMechmeshcntrlReferencesSet() to set the references used by the mesh control item.
    Accessing AutoGEM Edge Distribution and Minimum Edge Mesh Control Data
    The functions described in this section provide access to the data for the AutoGEM edge distribution Mesh Control.
    Functions Introduced:
    The function ProMechmcautogemedgedistrNodesGet() returns the number of nodes distributed along the selected edge. Use the function ProMechmcautogemedgedistrNodesSet() to set the number of nodes.
    The function ProMechmcautogemedgedistrRatioGet() returns the aspect ratio defined while creating and editing elements. The aspect ratio is defined as the ratio of a length to the width of any surface in the model. Use the function ProMechmcautogemedgedistrRatioSet() to set the aspect ratio for the AutoGEM edge distribution mesh control data.
    The function ProMechmcautogemedgedistrStrictGet() returns the value true, if the aspect ratio is within the maximum allowable range while creating and editing elements. Use the function ProMechmcautogemedgedistrStrictSet() to set the aspect ratio within the maximum allowable range.
    Use the function ProMechmcautogemedgedistrFree() to free the memory containing the AutoGEM edge distribution data structure.
    The function ProMechmcautogemminedgeEdgesGet() specifies the number of edges in a model for the AutoGEM minimum edge data. Use the function ProMechmcautogemminedgeEdgesSet() to set the number of edges.
    The function ProMechmcautogemminedgeLengthGet() specifies the minimum length of any edge in the model. Use the function ProMechmcautogemminedgeLengthSet() to specify the minimum length of the edge for the AutoGEM min edge mesh control data.
    Use the function ProMechmcautogemminedgeFree() to free the memory containing the AutoGEM minimum edge data structure.
    Accessing the AutoGEM Edge Length by Curvature Mesh Control Data
    The functions described in this section enable you to create a denser element mesh adjacent to areas such as curves, fillets, and holes, that are likely to have high stress, using the edge length by curve ratio.
    The function ProMechmcautogemedgelencrvAlloc() allocates memory for the Creo Simulate mesh control edge length by curvature data handle.
    The function ProMechmcautogemedgelencrvRatioGet() returns the ratio of the expected edge lengths of mesh elements to the radius of the concave surface. Use the function ProMechmcautogemedgelencrvRatioSet() to set this ratio. Specify the ratio as a positive real number.
    The function ProMechmcautogemedgelencrvMinradiusGet() returns the cut-off value for the radius of curvature below which the AutoGEM mesh control data will not be applied. Use the function ProMechmcautogemedgelencrvMinradiusSet() to set the cut-off value for the radius of curvature. This value can be specified in the current units of the model or as a percentage of the model size.
    ProMechmcautogemedgelencrvIgnoreRadiusGet()returns true, if the curves having a radius of curvature lower than the cut-off value must be ignored by the AutoGEM mesh control data. Use the function ProMechmcautogemedgelencrvIgnoreRadiusSet() to specify whether to ignore curves having a radius of curvature lower than the cut-off value.
    Use the function ProMechmcautogemedgelencrvFree() to free the memory containing the edge length by curvature mesh control data structure.
    Accessing the AutoGEM Maximum Element Size Mesh Control Data
    The functions described in this section enable you to control the size of the elements created by the mesh generator for components, volumes, surfaces, edges, or curves.
    Functions Introduced:
    The function ProMechmcautogemelemsizeAlloc() allocates memory for the AutoGEM maximum element size mesh control data.
    The function ProMechmcautogemelemsizeSizeGet() returns the maximum element size in the mesh. Use the function ProMechmcautogemelemsizeSizeSet() to set the element size.
    Use the function ProMechmcautogemelemsizeFree() to free the memory containing the maximum element size mesh control data structure.
    Accessing Edge Distribution Mesh Control Data
    The functions described in this section provide access to the edge distribution mesh control data.
    Functions Introduced:
    The function ProMechmcedgedistrNodesGet() returns the minimum number of nodes that are distributed along the selected edge or curve. Use the function ProMechmcedgedistrNodesSet() to set the number of nodes for the mesh control data.
    The function ProMechmcedgedistrRatioGet() returns the ratio of the first interval on the edge or curve to the last interval on the edge or curve. Use the function ProMechmcedgedistrRatioSet() to set the ratio for the mesh control data.
    The function ProMechmcedgedistrStrictGet() returns a boolean flag indicating whether the number of nodes must be used exactly. Use the function ProMechmcedgedistrStrictSet() to set the maximum allowable nodes for the mesh control data.
    Accessing AutoGEM Isolation Data
    The functions in this section provide access to the entities that AutoGEM can detect and isolate using mesh refinement.
    Functions Introduced:
    The function ProMechmcautogemisolateexcludeExcludeGet() returns the value of the exclude boolean for the AutoGEM isolation for exclusion mesh control data. Use the function ProMechmcautogemisolateexcludeExcludeSet() to set the value of the exclude boolean for the AutoGEM isolation for exclusion mesh control data.
    The function ProMechmcautogemisolateexcludeShellIsolMaxSizeGet() returns the value of maximum element size of isolation of shells for the AutoGEM isolation for exclusion mesh control data. Use the function ProMechmcautogemisolateexcludeShellIsolMaxSizeSet() to set the value of maximum element size of isolation of shells for the AutoGEM isolation.
    The function ProMechmcautogemisolateexcludeShellIsolTypeGet() returns the value of shell isolation type for the AutoGEM isolation for exclusion mesh control data. Use the function ProMechmcautogemisolateexcludeShellIsolTypeSet() to set the value of shell isolation type for the AutoGEM isolation for exclusion mesh control data.
    The function ProMechmcautogemisolateexcludeSolidIsolMaxSizeGet() returns the value of maximum element size of isolation of solids for the AutoGEM isolation for exclusion mesh control data. Use the function ProMechmcautogemisolateexcludeSolidIsolMaxSizeSet() to set the maximum element size of isolation of solids for the AutoGEM isolation.
    The function ProMechmcautogemisolateexcludeSolidIsolTypeGet() returns the value of solid isolation type for the AutoGEM isolation for exclusion mesh control data. Use the function ProMechmcautogemisolateexcludeSolidIsolTypeSet() to set the value of the solid isolation type for the AutoGEM isolation.
    Accessing the Displacement Coordinate System Data
    The functions described in this section provide read and write access to the displacement coordinate system control data.
    Functions Introduced:
    The function ProMechmcdisplacementcsysCsysGet() returns the coordinate system used to display the results for the nodes associated with points, edges, curves, or surfaces.
    The function ProMechmcdisplacementcsysCsysSet() sets the co-ordinate system for the mesh control data.
    Accessing the Mesh Control Element Size Data
    Functions Introduced:
    The function ProMechmcelemsizeSizeGet() returns the size of the elements for the mesh control data. Use the function ProMechmcelemsizeSizeSet() to set the size of the elements for the mesh control data.
    Accessing the Mesh Control Shell Coordinate System Data
    Functions Introduced:
    The function ProMechmcshellcsysCsysGet() returns the coordinate system specified for the mesh control data. Use the function ProMechmcshellcsysCsysSet() to set the coordinate system specified for the mesh control data.
    The function ProMechmcshellcsysDirectionGet() returns the positive direction along the x, y, and z axis. Use the function ProMechmcshellcsysDirectionSet() to set the positive direction along the x, y, and z axis.
    Accessing the Mesh Control Hard Point Data
    Functions Introduced:
    The function ProMechmchardpntNodeGet() returns the id of the node that is defined as a hard point. Use the function ProMechmchardpntNodeSet() to set the id of the node for the mesh control data.
    Accessing the Mesh Control ID Offset Data
    Functions Introduced:
    The function ProMechmcidoffsetOffsetGet() returns a positive integer value to be added to the IDs of each node, element, and local mesh entity. Use the function ProMechmcidsoffsetOffsetSet() to set the offset value for the mesh control data.
    Accessing the Mesh Control Numbering Data
    Functions Introduced:
    The function ProMechmcnumberingFirstGet() returns the first ID for the nodes, elements, and local mesh entities. Use the function ProMechmcnumberingFirstSet() to set the first value of the mesh control data.
    The function ProMechmcnumberingIncrementGet() returns the increment id for the nodes, elements, and local mesh entities. Use the function ProMechmcnumberingIncrementSet() to set the increment value for the mesh control data.
    The function ProMechmcnumberingLastGet() returns the last ID for the nodes, elements, and local mesh entities. Use the function ProMechmcnumberingLastSet() to set the last value for the mesh control data.
    Accessing the Suppressed Mesh Control Data
    Functions Introduced:
    The function ProMechmcsuppressTypeGet() returns the type of mesh control data that should be suppressed. Use the function ProMechmcsuppressTypeSet() to set the type of data to be suppressed.
    Welds
    Welds are used to bridge gaps that are formed during shell compression between plates that have been mated because they touch or overlap. Welds use the ProType field in the ProMechitem structure as PRO_SIMULATION_WELD.
    Functions Introduced:
    The function ProMechweldReferencesGet() returns the geometric entities selected to create the weld. Use the function ProMechweldReferencesSet() to set the references for the specified weld.
    The function ProMechweldTypeGet() returns the type of weld used to connect the gaps. The types of weld are:
    •  PRO_MECH_WELD_PERIMETER—Specifies a perimeter weld. Perimeter welds are used to connect parallel plates along the perimeter of one of the plates in an assembly model.
    •  PRO_MECH_WELD_END—Specifies an end weld. End welds are used to connect plates in assembly models.
    •  PRO_MECH_WELD_SPOT—Specifies a spot weld. Spot welds are used to connect two parallel surfaces at the specified datum point.
    •  PRO_MECH_WELD_FEAT—Specifies a Weld Feature. This weld connection can be used to select Fillet and Groove types of weld connections for inclusion in a mid-surface compressed model.
    The function ProMechweldPerimeterdataGet() provides access to the perimeter weld data structure. Use the function ProMechweldPerimeterdataSet() to set the perimeter weld data structure.
    Use the function ProMechweldperimeterFree() to free the memory contained in the perimeter weld data structure.
    The function ProMechweldperimeterEdgesGet() returns the perimeter edges of the top plate to be connected to the base plate. Use the function ProMechweldperimeterEdgesSet() to set the perimeter edges in the perimeter weld data.
    The function ProMechweldedgeEdgeGet() returns the id of the edge selected to create the perimeter weld. Use the function ProMechweldedgeEdgeSet() to set the id of the edge.
    The function ProMechweldedgeThicknessGet() returns the thickness of the weld on the selected edge in the perimeter weld. Use the function ProMechweldedgeThicknessSet() to set the thickness of the weld edge data.
    The function ProMechweldedgeMaterialidGet() returns the type of material used in shell elements created on the Perimeter Weld surfaces.
    Use the function ProMechweldedgeMaterialidSet() to select the material for the shell elements created on the Perimeter Weld surfaces. Specify the material ID as the input parameter of this function. In addition to the materials already present in the model, the input can be the material ID of one of the following surfaces:
    •  PRO_MECH_WELD_MTL_BASE—Specifies the base surface to which the weld extends.
    •  PRO_MECH_WELD_MTL_DOUBLER—Specifies the doubler surface on which the Perimeter weld is placed.
    The functions ProMechweldedgeFree() and ProMechweldedgeProarrayFree() free the memory containing the edge data structure.
    The function ProMechweldperimeterFree() frees the memory containing the data structure for the perimeter weld.
    The function ProMechweldSpotdataGet() provides access to the spot weld data structure. Use the function ProMechweldSpotdataSet() to assign data to the spot weld data structure.
    The function ProMechweldspotPointsGet() returns the datum points at which the spot weld is located. Use the function ProMechweldspotPntsSet() to set the points for the spot weld data.
    The function ProMechweldspotDiameterGet() returns the diameter for the spot weld. Use the function ProMechweldspotDiameterSet() to set the diameter for the spot weld data.
    The function ProMechweldspotMaterialIdGet() returns the material for the spot weld. Use the function ProMechweldspotMaterialIdSet() to set the material for the spot weld.
    Use the function ProMechweldspotFree() to free the memory contained in the spot weld data structure.
    Use the function ProMechweldendSet() to set the weld to be an end weld.
    The function ProMechweldEnddataGet() returns the end weld data structure.
    Use the function ProMechweldendAlloc() to allocate memory for the end weld data handle.
    Use the method ProMechweldEnddataSet() to set the end weld data structure.
    The function ProMechweldendTypeGet() returns the type of end weld defined between different surfaces. The valid types of end welds are:
    •  PRO_MECH_WELD_END_SINGLE_TO_SINGLE—Specifies a weld defined between a side surface and a shell or shell paired surface.
    •  PRO_MECH_WELD_END_MANY_TO_SINGLE—Specifies a weld defined from a solid surface to a solid surface.
    •  PRO_MECH_WELD_END_SINGLE_TO_MANY—Specifies a weld surface defined from a solid surface to a shell surface.
    Use the function ProMechweldendTypeSet() to set the type of end welds.
    The function ProMechweldendExtendAdjacentSurfacesGet() specifies whether or not surfaces adjacent to the selected source surface will be extended to the target surface to create the weld. Use the function ProMechweldendExtendAdjacentSurfacesSet() to control the placement of the weld on the extension of the adjacent surfaces.
    Use the function ProMechweldendFree() to free the memory of the end weld data structure.
    The function ProMechweldFeaturedataGet() returns the Weld Feature data structure.
    Use the function ProMechweldfeatureAlloc() to allocate memory for the Weld Feature data structure.
    Use the function ProMechweldFeaturedataSet() to set the Weld Feature data structure.
    The function ProMechweldfeatureOverrideflagGet() specifies if the material and thickness properties that will be applied to the shell idealizations resulting from the weld definitions are inherited from the Weld Feature or not.
    Specify the input value of the function ProMechweldfeatureOverrideflagSet() as true to specify the properties for the shell idealizations. Specify the value as false to inherit the properties from the Weld Feature.
    You can use the following functions to access and modify the material property and thickness of the Weld Feature only if you specify the input value as true for the function ProMechweldfeatureOverrideflagSet() or you select the option Override Weld Feature Settings from the Creo Simulate user interface.
    The function ProMechweldfeatureMaterialidGet() returns the material type used for the Weld Feature. Use the function ProMechweldfeatureMaterialidSet() to set the material for the shell idealizations. Specify the material ID as the input parameter of this function.
    The function ProMechweldfeatureThicknessGet() returns the thickness of the Weld Feature. Use the function ProMechweldfeatureThicknessSet() to set the thickness of the shell idealizations.
    Use the function ProMechweldfeatureFree() to free the memory contained in the Weld Feature data structure.
    Creo Simulate Features
    Functions Introduced:
    The function ProMechFeaturePromote() promotes the specified Creo Simulate feature making it accessible in Creo Parametric. The promoted feature however cannot be transferred back to Creo Simulate .
    Validating New and Modified Simulation Objects
    You can check the validity of simulation objects that are created new or modified. During validation, an error object is created or updated with error, warning, and information messages.
    Functions Introduced:
    The function ProMechitemValidate() validates the specified Creo Simulate item and returns an error object that collects the error, warning, and information messages. The function sets the error checking mode, validates the Creo Simulate item, resets the error checking mode, and returns the error object.
    The error, warning and information messages are given by the enumerated type ProMechErrobjType, which has the following values:
    •  PRO_MECH_ERROBJ_ERROR
    •  PRO_MECH_ERROBJ_WARNING
    •  PRO_MECH_ERROBJ_INFO
    The function ProMecherrobjDataGet() returns the number of events of an error object for the given ProMechErrobjType. To get the event message at a given index in an error object, you can use the function ProMecherrobjMessageGet().