Open CASCADE Technology
6.5.4
|
Implements a general mechanism to compute the global properties of
a "compound geometric system" in 3d space by composition of the
global properties of "elementary geometric entities" such as
(curve, surface, solid, set of points). It is possible to compose
the properties of several "compound geometric systems" too.
To computes the global properties of a compound geometric
system you should :
. declare the GProps using a constructor which initializes the
GProps and defines the location point used to compute the inertia
. compose the global properties of your geometric components with
the properties of your system using the method Add.
To compute the global properties of the geometric components of
the system you should use the services of the following classes :
More...
#include <GProp_GProps.hxx>
Public Member Functions | |
DEFINE_STANDARD_ALLOC | GProp_GProps () |
The origin (0, 0, 0) of the absolute cartesian coordinate system is used to compute the global properties. | |
GProp_GProps (const gp_Pnt &SystemLocation) | |
The point SystemLocation is used to compute the gobal properties of the system. For more accuracy it is better to define this point closed to the location of the system. For example it could be a point around the centre of mass of the system. This point is referred to as the reference point for this framework. For greater accuracy it is better for the reference point to be close to the location of the system. It can, for example, be a point near the center of mass of the system. At initialization, the framework is empty; i.e. it retains no dimensional information such as mass, or inertia. However, it is now able to bring together global properties of various other systems, whose global properties have already been computed using another framework. To do this, use the function Add to define the components of the system. Use it once per component of the system, and then use the interrogation functions available to access the computed values. | |
void | Add (const GProp_GProps &Item, const Standard_Real Density=1.0) |
Either | |
Standard_Real | Mass () const |
Returns the mass of the current system. If no density is attached to the components of the current system the returned value corresponds to : | |
gp_Pnt | CentreOfMass () const |
Returns the center of mass of the current system. If the gravitational field is uniform, it is the center of gravity. The coordinates returned for the center of mass are expressed in the absolute Cartesian coordinate system. | |
gp_Mat | MatrixOfInertia () const |
returns the matrix of inertia. It is a symmetrical matrix. The coefficients of the matrix are the quadratic moments of inertia. | Ixx Ixy Ixz | matrix = | Ixy Iyy Iyz | | Ixz Iyz Izz | The moments of inertia are denoted by Ixx, Iyy, Izz. The products of inertia are denoted by Ixy, Ixz, Iyz. The matrix of inertia is returned in the central coordinate system (G, Gx, Gy, Gz) where G is the centre of mass of the system and Gx, Gy, Gz the directions parallel to the X(1,0,0) Y(0,1,0) Z(0,0,1) directions of the absolute cartesian coordinate system. It is possible to compute the matrix of inertia at another location point using the Huyghens theorem (you can use the method of package GProp : HOperator). | |
void | StaticMoments (Standard_Real &Ix, Standard_Real &Iy, Standard_Real &Iz) const |
Returns Ix, Iy, Iz, the static moments of inertia of the current system; i.e. the moments of inertia about the three axes of the Cartesian coordinate system. | |
Standard_Real | MomentOfInertia (const gp_Ax1 &A) const |
computes the moment of inertia of the material system about the axis A. | |
GProp_PrincipalProps | PrincipalProperties () const |
Computes the principal properties of inertia of the current system. There is always a set of axes for which the products of inertia of a geometric system are equal to 0; i.e. the matrix of inertia of the system is diagonal. These axes are the principal axes of inertia. Their origin is coincident with the center of mass of the system. The associated moments are called the principal moments of inertia. This function computes the eigen values and the eigen vectors of the matrix of inertia of the system. Results are stored by using a presentation framework of principal properties of inertia (GProp_PrincipalProps object) which may be queried to access the value sought. | |
Standard_Real | RadiusOfGyration (const gp_Ax1 &A) const |
Returns the radius of gyration of the current system about the axis A. | |
Protected Attributes | |
gp_Pnt | g |
gp_Pnt | loc |
Standard_Real | dim |
gp_Mat | inertia |
the dimension (length, area or volume)
GProp_GProps::GProp_GProps | ( | const gp_Pnt & | SystemLocation | ) |
void GProp_GProps::Add | ( | const GProp_GProps & | Item, |
const Standard_Real | Density = 1.0 |
||
) |
gp_Pnt GProp_GProps::CentreOfMass | ( | ) | const |
Standard_Real GProp_GProps::Mass | ( | ) | const |
gp_Mat GProp_GProps::MatrixOfInertia | ( | ) | const |
Standard_Real GProp_GProps::MomentOfInertia | ( | const gp_Ax1 & | A | ) | const |
Standard_Real GProp_GProps::RadiusOfGyration | ( | const gp_Ax1 & | A | ) | const |
void GProp_GProps::StaticMoments | ( | Standard_Real & | Ix, |
Standard_Real & | Iy, | ||
Standard_Real & | Iz | ||
) | const |
Standard_Real GProp_GProps::dim [protected] |
gp_Pnt GProp_GProps::g [protected] |
gp_Mat GProp_GProps::inertia [protected] |
gp_Pnt GProp_GProps::loc [protected] |