mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-02-22 15:35:37 +05:00
PAL20940 EDF 1426 SMESH: Get some measure functions on elements available in TUI
This commit is contained in:
parent
29787307a0
commit
6d0472b820
@ -428,7 +428,7 @@ double AspectRatio::GetValue( const TSequenceOfXYZ& P )
|
|||||||
|
|
||||||
return ar;
|
return ar;
|
||||||
}
|
}
|
||||||
else { // nbNodes==8 - quadratic quadrangle
|
else if( nbNodes == 8 ){ // nbNodes==8 - quadratic quadrangle
|
||||||
// return aspect ratio of the worst triange which can be built
|
// return aspect ratio of the worst triange which can be built
|
||||||
// taking three nodes of the quadrangle
|
// taking three nodes of the quadrangle
|
||||||
TSequenceOfXYZ triaPnts(3);
|
TSequenceOfXYZ triaPnts(3);
|
||||||
@ -449,6 +449,7 @@ double AspectRatio::GetValue( const TSequenceOfXYZ& P )
|
|||||||
|
|
||||||
return ar;
|
return ar;
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
double AspectRatio::GetBadRate( double Value, int /*nbNodes*/ ) const
|
double AspectRatio::GetBadRate( double Value, int /*nbNodes*/ ) const
|
||||||
@ -964,6 +965,8 @@ SMDSAbs_ElementType Skew::GetType() const
|
|||||||
*/
|
*/
|
||||||
double Area::GetValue( const TSequenceOfXYZ& P )
|
double Area::GetValue( const TSequenceOfXYZ& P )
|
||||||
{
|
{
|
||||||
|
double val = 0.0;
|
||||||
|
if ( P.size() > 2 ) {
|
||||||
gp_Vec aVec1( P(2) - P(1) );
|
gp_Vec aVec1( P(2) - P(1) );
|
||||||
gp_Vec aVec2( P(3) - P(1) );
|
gp_Vec aVec2( P(3) - P(1) );
|
||||||
gp_Vec SumVec = aVec1 ^ aVec2;
|
gp_Vec SumVec = aVec1 ^ aVec2;
|
||||||
@ -973,7 +976,9 @@ double Area::GetValue( const TSequenceOfXYZ& P )
|
|||||||
gp_Vec tmp = aVec1 ^ aVec2;
|
gp_Vec tmp = aVec1 ^ aVec2;
|
||||||
SumVec.Add(tmp);
|
SumVec.Add(tmp);
|
||||||
}
|
}
|
||||||
return SumVec.Magnitude() * 0.5;
|
val = SumVec.Magnitude() * 0.5;
|
||||||
|
}
|
||||||
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
double Area::GetBadRate( double Value, int /*nbNodes*/ ) const
|
double Area::GetBadRate( double Value, int /*nbNodes*/ ) const
|
||||||
|
@ -87,6 +87,7 @@
|
|||||||
## @defgroup l2_modif_tofromqu Convert to/from Quadratic Mesh
|
## @defgroup l2_modif_tofromqu Convert to/from Quadratic Mesh
|
||||||
|
|
||||||
## @}
|
## @}
|
||||||
|
## @defgroup l1_measurements Measurements
|
||||||
|
|
||||||
import salome
|
import salome
|
||||||
import geompyDC
|
import geompyDC
|
||||||
@ -3792,6 +3793,75 @@ class Mesh:
|
|||||||
def DoubleNodeElemGroupsInRegion(self, theElems, theNodesNot, theShape):
|
def DoubleNodeElemGroupsInRegion(self, theElems, theNodesNot, theShape):
|
||||||
return self.editor.DoubleNodeElemGroupsInRegion(theElems, theNodesNot, theShape)
|
return self.editor.DoubleNodeElemGroupsInRegion(theElems, theNodesNot, theShape)
|
||||||
|
|
||||||
|
def _valueFromFunctor(self, funcType, elemId):
|
||||||
|
fn = self.smeshpyD.GetFunctor(funcType)
|
||||||
|
fn.SetMesh(self.mesh)
|
||||||
|
if fn.GetElementType() == self.GetElementType(elemId, True):
|
||||||
|
val = fn.GetValue(elemId)
|
||||||
|
else:
|
||||||
|
val = 0
|
||||||
|
return val
|
||||||
|
|
||||||
|
## Get length of 1D element.
|
||||||
|
# @param elemId mesh element ID
|
||||||
|
# @return element's length value
|
||||||
|
# @ingroup l1_measurements
|
||||||
|
def GetLength(self, elemId):
|
||||||
|
return self._valueFromFunctor(SMESH.FT_Length, elemId)
|
||||||
|
|
||||||
|
## Get area of 2D element.
|
||||||
|
# @param elemId mesh element ID
|
||||||
|
# @return element's area value
|
||||||
|
# @ingroup l1_measurements
|
||||||
|
def GetArea(self, elemId):
|
||||||
|
return self._valueFromFunctor(SMESH.FT_Area, elemId)
|
||||||
|
|
||||||
|
## Get volume of 3D element.
|
||||||
|
# @param elemId mesh element ID
|
||||||
|
# @return element's volume value
|
||||||
|
# @ingroup l1_measurements
|
||||||
|
def GetVolume(self, elemId):
|
||||||
|
return self._valueFromFunctor(SMESH.FT_Volume3D, elemId)
|
||||||
|
|
||||||
|
## Get aspect ratio of 2D or 3D element.
|
||||||
|
# @param elemId mesh element ID
|
||||||
|
# @return element's aspect ratio value
|
||||||
|
# @ingroup l1_measurements
|
||||||
|
def GetAspectRatio(self, elemId):
|
||||||
|
if self.GetElementType(elemId, True) == SMESH.VOLUME:
|
||||||
|
ftype = SMESH.FT_AspectRatio3D
|
||||||
|
else:
|
||||||
|
ftype = SMESH.FT_AspectRatio
|
||||||
|
return self._valueFromFunctor(ftype, elemId)
|
||||||
|
|
||||||
|
## Get warping angle of 2D element.
|
||||||
|
# @param elemId mesh element ID
|
||||||
|
# @return element's warping angle value
|
||||||
|
# @ingroup l1_measurements
|
||||||
|
def GetWarping(self, elemId):
|
||||||
|
return self._valueFromFunctor(SMESH.FT_Warping, elemId)
|
||||||
|
|
||||||
|
## Get minimum angle of 2D element.
|
||||||
|
# @param elemId mesh element ID
|
||||||
|
# @return element's minimum angle value
|
||||||
|
# @ingroup l1_measurements
|
||||||
|
def GetMinimumAngle(self, elemId):
|
||||||
|
return self._valueFromFunctor(SMESH.FT_MinimumAngle, elemId)
|
||||||
|
|
||||||
|
## Get taper of 2D element.
|
||||||
|
# @param elemId mesh element ID
|
||||||
|
# @return element's taper value
|
||||||
|
# @ingroup l1_measurements
|
||||||
|
def GetTaper(self, elemId):
|
||||||
|
return self._valueFromFunctor(SMESH.FT_Taper, elemId)
|
||||||
|
|
||||||
|
## Get skew of 2D element.
|
||||||
|
# @param elemId mesh element ID
|
||||||
|
# @return element's skew value
|
||||||
|
# @ingroup l1_measurements
|
||||||
|
def GetSkew(self, elemId):
|
||||||
|
return self._valueFromFunctor(SMESH.FT_Skew, elemId)
|
||||||
|
|
||||||
## The mother class to define algorithm, it is not recommended to use it directly.
|
## The mother class to define algorithm, it is not recommended to use it directly.
|
||||||
#
|
#
|
||||||
# More details.
|
# More details.
|
||||||
|
Loading…
Reference in New Issue
Block a user