![]() |
Open CASCADE Technology Reference Manual 8.0.0
|
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 a curve, surface, solid, or set of points. It is also possible to compose the properties of several "compound geometric systems". More...
#include <GProp_GProps.hxx>

Public Member Functions | |
| 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 global properties of the system. For greater accuracy, define this point close to the location of the system; for example a point near the centre of mass of the system. | |
| void | Add (const GProp_GProps &Item, const double Density=1.0) |
| Either: | |
| double | Mass () const |
| Returns the mass of the current system. | |
| gp_Pnt | CentreOfMass () const |
| Returns the centre of mass of the current system. With a uniform gravitational field this is also the centre of gravity. The coordinates returned for the centre of mass are expressed in the absolute Cartesian coordinate system. | |
| gp_Mat | MatrixOfInertia () const |
| Returns the matrix of inertia. It is a symmetric matrix whose coefficients are the quadratic moments of inertia: | |
| void | StaticMoments (double &Ix, double &Iy, double &Iz) const |
| Returns the static moments of inertia of the current system - i.e. the moments of inertia about the three axes of the absolute Cartesian coordinate system. | |
| double | MomentOfInertia (const gp_Ax1 &A) const |
| Computes the moment of inertia of the 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 coincides with the centre of mass of the system. The associated moments are called the principal moments of inertia. | |
| double | RadiusOfGyration (const gp_Ax1 &A) const |
| Returns the radius of gyration of the current system about the axis A. | |
Protected Attributes | |
| gp_Pnt | g |
| Centre of mass (absolute frame) | |
| gp_Pnt | loc |
| Reference point used for inertia accumulation. | |
| double | dim |
| Total mass / length / area / volume. | |
| gp_Mat | inertia |
| Quadratic moments of inertia matrix. | |
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 a curve, surface, solid, or set of points. It is also possible to compose the properties of several "compound geometric systems".
To compute the global properties of a compound geometric system:
To compute the global properties of the geometric components of the system, use the services of the following frameworks:
The global properties computed are:
Example:
| GProp_GProps::GProp_GProps | ( | ) |
The origin (0, 0, 0) of the absolute Cartesian coordinate system is used to compute the global properties.
| GProp_GProps::GProp_GProps | ( | const gp_Pnt & | SystemLocation | ) |
The point SystemLocation is used to compute the global properties of the system. For greater accuracy, define this point close to the location of the system; for example a point near the centre of mass of the system.
At initialization the framework is empty: it retains no dimensional information such as mass or inertia. It is, however, ready to bring together global properties of various other systems whose global properties have already been computed using another framework. To do this, use Add() to define the components of the system, once per component, and then use the interrogation functions to access the computed values.
| [in] | SystemLocation | reference point of the system used for inertia accumulation |
| void GProp_GProps::Add | ( | const GProp_GProps & | Item, |
| const double | Density = 1.0 ) |
Either:
The value Density (1.0 by default) is used as the density of the system analysed by Item. Sometimes the density has already been accounted for at construction time of Item - for example when Item is a GProp_PGProps framework built to compute the global properties of a set of weighted points, or another GProp_GProps object that already retains composite global properties. In these cases the real density was already taken into account at construction of Item. Note that this is not checked: if the density of parts of the system is taken into account two or more times, the result of the computation will be wrong.
Notes:
| [in] | Item | framework holding the global properties of the component to compose |
| [in] | Density | density of the component (default 1.0) |
| Standard_DomainError | if Density is less than or equal to gp::Resolution(). |
| gp_Pnt GProp_GProps::CentreOfMass | ( | ) | const |
Returns the centre of mass of the current system. With a uniform gravitational field this is also the centre of gravity. The coordinates returned for the centre of mass are expressed in the absolute Cartesian coordinate system.
| double GProp_GProps::Mass | ( | ) | const |
Returns the mass of the current system.
If no density has been attached to the components of the current system, the returned value corresponds to:
| gp_Mat GProp_GProps::MatrixOfInertia | ( | ) | const |
Returns the matrix of inertia. It is a symmetric matrix whose coefficients are the quadratic moments of inertia:
| Ixx Ixy Ixz |
matrix = | Ixy Iyy Iyz |
| Ixz Iyz Izz |
Ixx, Iyy, Izz are the moments of inertia; Ixy, Ixz, Iyz are the products of inertia.
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 are parallel to the X(1, 0, 0), Y(0, 1, 0) and Z(0, 0, 1) directions of the absolute Cartesian coordinate system. To compute the matrix of inertia at another location use GProp::HOperator() (Huygens' theorem).
Computes the moment of inertia of the system about the axis A.
| [in] | A | axis about which the moment of inertia is computed |
| GProp_PrincipalProps GProp_GProps::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 coincides with the centre of mass of the system. The associated moments are called the principal moments of inertia.
This function computes the eigen values and eigen vectors of the matrix of inertia of the system. Results are stored in a GProp_PrincipalProps framework which can be queried to access the value sought.
Returns the radius of gyration of the current system about the axis A.
| [in] | A | axis about which the radius of gyration is computed |
Returns the static moments of inertia of the current system - i.e. the moments of inertia about the three axes of the absolute Cartesian coordinate system.
| [out] | Ix | static moment of inertia about X |
| [out] | Iy | static moment of inertia about Y |
| [out] | Iz | static moment of inertia about Z |
|
protected |
Total mass / length / area / volume.
|
protected |
Centre of mass (absolute frame)
|
protected |
Quadratic moments of inertia matrix.
|
protected |
Reference point used for inertia accumulation.